Patent US5659679A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5659679A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system

Assignee: Intel Corp
•
Filing: 1995-05-30
•
Granted: 1997-08-19
•
Expires: 2015-05-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract According to one aspect of the invention, an apparatus for providing the source address of an instruction which causes a branch to be taken (e.g., instructs the processor to transfer the flow of execution) is described. In one embodiment, a processor includes a circuit coupled to a source address storage area. In response to the processor executing an instruction which instructs the processor to transfer the flow of execution to another instruction, the circuit stores in the source address storage area the address of the instruction which is causing the transfer in flow of execution. According to another aspect of the invention, a method for profiling is provided. According to this method, a starting address for execution is stored. Then for the instruction currently being executed, it is determined if that instruction will cause a branch from a source address to a destination address. If it was determined a branch will be taken, then the source address of the branch is stored in a source address storage area, the destination address of the branch is stored in another storage area, and a handler is executed. The handler stores indications indicating the instructions identified by the addresses within the address range defined by the starting address and the source address have been executed.

Inventors

  • 👤 Donald Alpert
  • 👤 Gary N. Hammond

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 17:36
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/3648; G06F11/3636

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 141 words
A processor comprising: a source address storage area; a first circuit coupled to said source address storage area, said first circuit configured to store in said source address storage area a first address at which a first instruction is stored in response to said processor determining that said first instruction instructs said processor to transfer flow of execution to a second instruction stored at a second address; an instruction pointer storage area; a suspended instruction pointer storage area; and a second circuit coupled to said instruction pointer storage area and said suspended instruction pointer storage area, said second circuit configured to store said second address in said suspended instruction pointer storage area and store a third address in said instruction pointer storage area in response to said processor determining that said first instruction instructs said processor to transfer flow of execution.
Claim 2
Dependent Claim 141 words
A processor comprising: a source address storage area; a first circuit coupled to said source address storage area, said first circuit configured to store in said source address storage area a first address at which a first instruction is stored in response to said processor determining that said first instruction instructs said processor to transfer flow of execution to a second instruction stored at a second address; an instruction pointer storage area; a suspended instruction pointer storage area; and a second circuit coupled to said instruction pointer storage area and said suspended instruction pointer storage area, said second circuit configured to store said second address in said suspended instruction pointer storage area and store a third address in said instruction pointer storage area in response to said processor determining that said first instruction instructs said processor to transfer flow of execution.
Claim 3
Dependent Claim 16 words
The processor of claim 1, wherein said third address identifies a starting address of a handler.
Claim 4
Dependent Claim 15 words
The processor of claim 1, further comprising means for enabling and disabling said first circuit.
Claim 5
Dependent Claim 15 words
The processor of claim 3, further comprising means for enabling and disabling said second circuit.
Claim 6
Dependent Claim 108 words
A processor comprising: a first storage area configured to store a current instruction pointer; a second storage area; a third storage area; an execution unit coupled to said first, said second, and said third storage areas, said execution unit configured to execute instructions identified by said instruction pointer, and in response to said processor determining that an instruction identified by said current instruction pointer causes said processor to transfer flow of execution to an instruction stored at a destination address, said execution unit causing said current instruction pointer to be stored in said second storage area and said destination address to be stored in said third storage area.
Claim 7
Dependent Claim 108 words
A processor comprising: a first storage area configured to store a current instruction pointer; a second storage area; a third storage area; an execution unit coupled to said first, said second, and said third storage areas, said execution unit configured to execute instructions identified by said instruction pointer, and in response to said processor determining that an instruction identified by said current instruction pointer causes said processor to transfer flow of execution to an instruction stored at a destination address, said execution unit causing said current instruction pointer to be stored in said second storage area and said destination address to be stored in said third storage area.
Claim 8
Dependent Claim 38 words
The processor of claim 5, wherein said execution unit is also configured to cause said current instruction pointer to identify a starting instruction in a handler in response to storing said destination address in said third storage area.
Claim 9
Independent Claim 217 words
An apparatus for use in a computer system comprising: a storage device; a first series of instructions stored in said storage device for execution by said processor, said first series of instructions including a first instruction and a second instruction respectively stored at a first address and a second address; a second series of instructions stored in said storage device for execution by said processor, said second series of instructions including a third instruction stored at a third address; and a processor coupled to said storage device, said processor comprising: a source address storage area; a first circuit coupled to said source address storage area, said first circuit configured to store in said source address storage area said first address in response to said processor determining that said first instruction instructs said processor to transfer flow of execution to said second instruction; an instruction pointer storage area; a suspended instruction pointer storage area; a second circuit coupled to said instruction pointer storage area and said suspended instruction pointer storage, said second circuit configured to store said second address in said suspended instruction pointer storage area and said third address in said instruction pointer storage area in response to said processor determining that said first instruction instructs said processor to transfer flow of execution to said second instruction.
Claim 10
Independent Claim 217 words
An apparatus for use in a computer system comprising: a storage device; a first series of instructions stored in said storage device for execution by said processor, said first series of instructions including a first instruction and a second instruction respectively stored at a first address and a second address; a second series of instructions stored in said storage device for execution by said processor, said second series of instructions including a third instruction stored at a third address; and a processor coupled to said storage device, said processor comprising: a source address storage area; a first circuit coupled to said source address storage area, said first circuit configured to store in said source address storage area said first address in response to said processor determining that said first instruction instructs said processor to transfer flow of execution to said second instruction; an instruction pointer storage area; a suspended instruction pointer storage area; a second circuit coupled to said instruction pointer storage area and said suspended instruction pointer storage, said second circuit configured to store said second address in said suspended instruction pointer storage area and said third address in said instruction pointer storage area in response to said processor determining that said first instruction instructs said processor to transfer flow of execution to said second instruction.
Claim 11
Dependent Claim 134 words
A computer system comprising: a storage device; a handler stored in said storage device; and a processor coupled to said storage device containing: a first storage area for storing a current instruction pointer; a second storage area; a third storage area; and an execution unit coupled to said first, said second and said third storage areas, said execution unit configured to execute instructions identified by said instruction pointer, and in response to said processor determining that an instruction identified by said current instruction pointer causes said processor to transfer flow of execution to an instruction stored at a destination address, said execution unit causing said current instruction pointer to be copied into said second storage area, said destination address to be stored in said third storage area, and causing said handler to be executed.
Claim 12
Dependent Claim 134 words
A computer system comprising: a storage device; a handler stored in said storage device; and a processor coupled to said storage device containing: a first storage area for storing a current instruction pointer; a second storage area; a third storage area; and an execution unit coupled to said first, said second and said third storage areas, said execution unit configured to execute instructions identified by said instruction pointer, and in response to said processor determining that an instruction identified by said current instruction pointer causes said processor to transfer flow of execution to an instruction stored at a destination address, said execution unit causing said current instruction pointer to be copied into said second storage area, said destination address to be stored in said third storage area, and causing said handler to be executed.
Claim 13
Dependent Claim 69 words
In a computer system, a method comprising the steps of: storing a first address in a first storage area; accessing a first instruction identified by said first address for execution; determining that said first instruction will cause a jump to be taken from said first address to a second address; storing said first address in a second storage area; and storing said second address in a third storage area.
Claim 14
Dependent Claim 69 words
In a computer system, a method comprising the steps of: storing a first address in a first storage area; accessing a first instruction identified by said first address for execution; determining that said first instruction will cause a jump to be taken from said first address to a second address; storing said first address in a second storage area; and storing said second address in a third storage area.
Claim 15
Dependent Claim 13 words
The method of claim 9, further including the step of executing a handler.
Claim 16
Dependent Claim 26 words
The method of claim 10, further including the step of: executing code starting at said second address upon completion of said step of executing said handler.
Claim 17
Dependent Claim 130 words
In a computer system, a method for profiling, said method comprising the steps of: storing a first address, said first address identifying a first instruction that is part of a program; beginning execution of said program with said first instruction; determining that a second instruction that is stored at a second address and that is part of said program will cause a branch from said second address to a third address; storing said second address; storing said third address; suspending execution of said program; executing a handler to store indications indicating instructions identified by addresses within an address range defined by said first address and said second address have been executed; and resuming execution of said program at said third address upon completion of said step of executing said handler.
Claim 18
Dependent Claim 130 words
In a computer system, a method for profiling, said method comprising the steps of: storing a first address, said first address identifying a first instruction that is part of a program; beginning execution of said program with said first instruction; determining that a second instruction that is stored at a second address and that is part of said program will cause a branch from said second address to a third address; storing said second address; storing said third address; suspending execution of said program; executing a handler to store indications indicating instructions identified by addresses within an address range defined by said first address and said second address have been executed; and resuming execution of said program at said third address upon completion of said step of executing said handler.
Claim 19
Dependent Claim 21 words
The method of claim 12, wherein said step of storing said first address is performed in response to an initialization routine.
Claim 20
Dependent Claim 26 words
The method of claim 12, wherein said step of storing said first address is performed in response to execution of a branch to said first address.
Claim 21
Dependent Claim 95 words
In computer system, a method comprising the steps of: starting execution at a first instruction identified by a first address; determining that a second instruction instructs said computer system to transfer the flow of execution to a third instruction, said second instruction and said third instruction identified respectively by a second address and a third address; storing said second address in a first storage area; storing said third address in a second storage area; and storing an indication indicating instructions within an address range defined by said first address and said second address were executed.
Claim 22
Dependent Claim 95 words
In computer system, a method comprising the steps of: starting execution at a first instruction identified by a first address; determining that a second instruction instructs said computer system to transfer the flow of execution to a third instruction, said second instruction and said third instruction identified respectively by a second address and a third address; storing said second address in a first storage area; storing said third address in a second storage area; and storing an indication indicating instructions within an address range defined by said first address and said second address were executed.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-08-18 2001-02-17 2001-08-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-08-18 2005-02-17 2005-08-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-08-18 2009-02-17 2009-08-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag