← Back to Patent Explorer
US5694589A Expired / Lapsed US ⏱️ 0.0 years remaining

Instruction breakpoint detection apparatus for use in an out-of-order microprocessor

Assignee: Intel Corp
•
Filing: 1995-06-13
•
Granted: 1997-12-02
•
Expires: 2015-06-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Code breakpoint detection logic for a superscalar microprocessor. Superscalar operation in a microprocessor is maintained with a single breakpoint detection mechanism which performs breakpoint detection prior to instruction decoding. One bit for each byte in an instruction packet is provided as a result of a comparison of the aligned instruction fetch to the debug registers. After decoding, if the first byte of an instruction has an appended breakpoint true bit, then an event is signaled for breakpoint handling by the superscalar microprocessor.

Inventors

  • 👤 Andrew F. Glew
  • 👤 Ashwani Kumar Gupta

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 09:14
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/3648; G06F9/00; G06F9/06; G06F9/30; G06F9/30145; G06F9/30149; G06F9/30152; G06F9/38; G06F9/3818; G06F9/382

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 158 words
An instruction breakpoint detection apparatus comprising: a memory element to store a linear breakpoint address; an instruction fetch mechanism to retrieve a packet of aligned instruction data in accordance with a provided fetch instruction pointer, said packet of aligned instruction data including (N) bytes; a comparing circuit coupled to said instruction fetch mechanism and in communication with said memory element, said comparing circuit to compare said fetch instruction pointer to said linear breakpoint address; and a byte marking circuit, coupled and responsive to said comparing circuit, to generate a breakpoint marking sequence including (N) bits, each of which is associated with a respective byte of said packet of aligned instruction data, and identifying at least one byte of said packet of aligned instruction data as a code breakpoint, said breakpoint marking sequence being generated responsive to a match between at least a portion of said fetch instruction pointer and at least a portion of said linear breakpoint address.
Claim 2
Dependent Claim 158 words
An instruction breakpoint detection apparatus comprising: a memory element to store a linear breakpoint address; an instruction fetch mechanism to retrieve a packet of aligned instruction data in accordance with a provided fetch instruction pointer, said packet of aligned instruction data including (N) bytes; a comparing circuit coupled to said instruction fetch mechanism and in communication with said memory element, said comparing circuit to compare said fetch instruction pointer to said linear breakpoint address; and a byte marking circuit, coupled and responsive to said comparing circuit, to generate a breakpoint marking sequence including (N) bits, each of which is associated with a respective byte of said packet of aligned instruction data, and identifying at least one byte of said packet of aligned instruction data as a code breakpoint, said breakpoint marking sequence being generated responsive to a match between at least a portion of said fetch instruction pointer and at least a portion of said linear breakpoint address.
Claim 3
Dependent Claim 50 words
The instruction breakpoint detection apparatus of claim 1 wherein instruction addresses comprise (T) total bits comprising (U) upper bits and (L) lower bits, the comparing circuit comprising circuitry to compare the upper (U) bits of the fetch instruction pointer with the upper (U) bits of the stored linear breakpoint address.
Claim 4
Dependent Claim 56 words
The instruction breakpoint apparatus of claim 2 wherein said byte marking circuit comprises an L:N decoding circuit to convert the lower (L) bits of the stored breakpoint address to said breakpoint marking sequence for marking said packet of aligned instruction data with a breakpoint bit which identifies said at least one byte as said code breakpoint.
Claim 5
Dependent Claim 50 words
The instruction breakpoint detection apparatus of claim 3 wherein said (T) total bits of (U) upper bits and (L) lower bits comprises 32 bits with 28 upper bits and 4 lower bits, said packet of aligned instruction data comprises 16 bytes, and said L:N decoding circuit comprises a 4:16 decoder.
Claim 6
Dependent Claim 66 words
The instruction breakpoint detection apparatus of claim 3 further comprising: an additional plurality of (M) memory elements to store a plurality of linear breakpoint addresses; and an additional plurality of (M) byte marking circuits, each associated with one of said additional plurality of memory elements, wherein said comparing circuit includes circuitry to compare said fetch instruction pointer to each of said plurality of linear breakpoint addresses.
Claim 7
Dependent Claim 49 words
The instruction breakpoint detection apparatus of claim 3 further including an instruction decoding mechanism to receive fetch instruction data, said instruction decoding mechanism including: detection circuitry to determine if the first byte of an instruction is marked with a breakpoint bit; and signaling circuitry to signal a breakpoint condition.
Claim 8
Dependent Claim 27 words
The instruction breakpoint detection apparatus of claim 5 wherein said breakpoint marking sequence includes only 1 bit for each byte of said packet of aligned instruction data.
Claim 9
Dependent Claim 26 words
The instruction breakpoint detection apparatus of claim 5 wherein said breakpoint marking sequence includes M bits for each byte of said packet of aligned instruction data.
Claim 10
Dependent Claim 217 words
A microprocessor comprising: an instruction execution block to execute instructions; an instruction fetch and decode block coupled to communicate with said instruction execution block, said instruction fetch and decoding block to fetch and decode instruction data for providing said instructions to said instruction execution block; and an instruction break point detection apparatus incorporated within said instruction fetch and decode block, said instruction breakpoint detection apparatus comprising: a memory element to store a linear breakpoint address; an instruction fetch mechanism to retrieve a packet of aligned instruction data in accordance with a provided fetch instruction pointer, said packet of aligned instruction data including (N) bytes; a comparing circuit coupled to said instruction fetch mechanism and in communication with said memory element, said comparing circuitry to compare said fetch instruction pointer to said linear breakpoint address; and a byte marking circuit, coupled and responsive to said comparing circuit, to generate a breakpoint marking sequence including (N) bits, each of which is associated with a respective byte of said packet of aligned instruction data, and identifying at least one byte of said packet of aligned instruction data as a code breakpoint, said breakpoint marking sequence being generated responsive to a match between at least a portion of said fetch instruction and at least a portion of said linear breakpoint address.
Claim 11
Dependent Claim 217 words
A microprocessor comprising: an instruction execution block to execute instructions; an instruction fetch and decode block coupled to communicate with said instruction execution block, said instruction fetch and decoding block to fetch and decode instruction data for providing said instructions to said instruction execution block; and an instruction break point detection apparatus incorporated within said instruction fetch and decode block, said instruction breakpoint detection apparatus comprising: a memory element to store a linear breakpoint address; an instruction fetch mechanism to retrieve a packet of aligned instruction data in accordance with a provided fetch instruction pointer, said packet of aligned instruction data including (N) bytes; a comparing circuit coupled to said instruction fetch mechanism and in communication with said memory element, said comparing circuitry to compare said fetch instruction pointer to said linear breakpoint address; and a byte marking circuit, coupled and responsive to said comparing circuit, to generate a breakpoint marking sequence including (N) bits, each of which is associated with a respective byte of said packet of aligned instruction data, and identifying at least one byte of said packet of aligned instruction data as a code breakpoint, said breakpoint marking sequence being generated responsive to a match between at least a portion of said fetch instruction and at least a portion of said linear breakpoint address.
Claim 12
Dependent Claim 47 words
The microprocessor of claim 9 wherein instruction addresses comprise (T) total bits comprising (U) upper bits and (L) lower bits, the comparing circuit comprising circuitry to compare the upper (U) bits of the fetch instruction pointer with the upper (U) bits of the stored linear breakpoint address.
Claim 13
Dependent Claim 54 words
The microprocessor of claim 10 wherein said byte marking circuit comprises an L:N decoding circuit to convert the lower (L) bits of the stored breakpoint address to said breakpoint marking sequence for marking said packet of aligned instruction data with a breakpoint bit which identifies said at least one byte as said code breakpoint.
Claim 14
Dependent Claim 47 words
The microprocessor of claim 11 wherein said (T) total bits of (U) upper bits and (L) lower bits comprises 32 bits with 28 upper bits and 4 lower bits, said packet of aligned instruction data comprises 16 bytes, and said L:N decoding circuit comprises a 4:16 decoder.
Claim 15
Dependent Claim 63 words
The microprocessor of claim 11 further comprising: an additional plurality of (M) memory elements to store a plurality of linear breakpoint addresses; and an additional plurality of (M) byte marking circuits, each associated with one of said additional plurality of memory elements, wherein said comparing circuit includes circuitry to compare said fetch instruction pointer to each of said plurality of linear breakpoint addresses.
Claim 16
Dependent Claim 46 words
The microprocessor of claim 11 further including an instruction decoding mechanism to receive fetch instruction data, said instruction decoding mechanism including: detection circuitry to determine if the first byte of an instruction is marked with a breakpoint bit; and signaling circuitry to signal a breakpoint condition.
Claim 17
Dependent Claim 24 words
The microprocessor of claim 13 wherein said breakpoint marking sequence includes only 1 bit for each byte of said packet of aligned instruction data.
Claim 18
Dependent Claim 23 words
The microprocessor of claim 13 wherein said breakpoint marking sequence includes M bits for each byte of said packet of aligned instruction data.
Claim 19
Dependent Claim 238 words
A computer system comprising: a bus; a main memory, coupled to said bus to store digital data; and a microprocessor, coupled to said bus, to process said digital data, said microprocessor comprising: an instruction fetch and decode block coupled to communicate with an execution block, said instruction fetch and decode block to fetch and decode instruction data for providing said instructions to said instruction execution block; and an instruction break point detection apparatus incorporated within said instruction fetch and decode block, said instruction breakpoint detection apparatus comprising: a memory element to store a linear breakpoint address; an instruction fetch mechanism to retrieve a packet of aligned instruction data in accordance with a provided fetch instruction pointer, said packet of aligned instruction data including (N) bytes; a comparing circuit coupled to said instruction fetch mechanism and in communication with said memory element, said comparing circuit to compare said fetch instruction pointer to said linear breakpoint address; and a byte marking circuit, coupled and responsive to said comparing circuit, to generate a breakpoint marking sequence including (N) bits, each of which is associated with a respective byte of said packet of aligned instruction data, and identifying at least one byte of said packet of aligned instruction data as a code breakpoint, said breakpoint marking sequence being generated responsive to a match between at least a portion of said fetch instruction and at least a portion of said linear breakpoint address.
Claim 20
Dependent Claim 238 words
A computer system comprising: a bus; a main memory, coupled to said bus to store digital data; and a microprocessor, coupled to said bus, to process said digital data, said microprocessor comprising: an instruction fetch and decode block coupled to communicate with an execution block, said instruction fetch and decode block to fetch and decode instruction data for providing said instructions to said instruction execution block; and an instruction break point detection apparatus incorporated within said instruction fetch and decode block, said instruction breakpoint detection apparatus comprising: a memory element to store a linear breakpoint address; an instruction fetch mechanism to retrieve a packet of aligned instruction data in accordance with a provided fetch instruction pointer, said packet of aligned instruction data including (N) bytes; a comparing circuit coupled to said instruction fetch mechanism and in communication with said memory element, said comparing circuit to compare said fetch instruction pointer to said linear breakpoint address; and a byte marking circuit, coupled and responsive to said comparing circuit, to generate a breakpoint marking sequence including (N) bits, each of which is associated with a respective byte of said packet of aligned instruction data, and identifying at least one byte of said packet of aligned instruction data as a code breakpoint, said breakpoint marking sequence being generated responsive to a match between at least a portion of said fetch instruction and at least a portion of said linear breakpoint address.
Claim 21
Dependent Claim 48 words
The computer system of claim 17 wherein instruction addresses comprise (T) total bits comprising (U) upper bits and (L) lower bits, the comparing circuit comprising circuitry to compare the upper (U) bits of the fetch instruction pointer with the upper (U) bits of the stored linear breakpoint address.
Claim 22
Dependent Claim 55 words
The computer system of claim 18 wherein said byte marking circuit comprises an L:N decoding circuit to convert the lower (L) bits of the stored breakpoint address to said breakpoint marking sequence for marking said packet of aligned instruction data with a breakpoint bit which identifies said at least one byte as said code breakpoint.
Claim 23
Dependent Claim 48 words
The computer system of claim 19 wherein said (T) total bits of (U) upper bits and (L) lower bits comprises 32 bits with 28 upper bits and 4 lower bits, said packet of aligned instruction data comprises 16 bytes, and said L:N decoding circuit comprises a 4:16 decoder.
Claim 24
Dependent Claim 64 words
The computer system of claim 19 further comprising: an additional plurality of (M) memory elements to store a plurality of linear breakpoint addresses; and an additional plurality of (M) byte marking circuits, each associated with one of said additional plurality of memory elements, wherein said comparing circuit includes circuitry to compare said fetch instruction pointer to each of said plurality of linear breakpoint addresses.
Claim 25
Dependent Claim 47 words
The computer system of claim 19 further including an instruction decoding mechanism for receiving fetch instruction data, said instruction decoding mechanism including: detection circuitry to determine if the first byte of an instruction is marked with a breakpoint bit; and signaling circuitry to signal a breakpoint condition.
Claim 26
Dependent Claim 25 words
The computer system of claim 21 wherein said breakpoint marking sequence includes only 1 bit for each byte of said packet of aligned instruction data.
Claim 27
Dependent Claim 24 words
The computer system of claim 21 wherein said breakpoint marking sequence includes M bits for each byte of said packet of aligned instruction data.
Claim 28
Independent Claim 109 words
A method of detecting instruction code breakpoints comprising the steps of: storing a breakpoint address in a memory element; fetching an aligned packet of (N) bytes of instruction data based on a fetch instruction pointer; comparing the fetch instruction pointer to the breakpoint address; generating a breakpoint marking sequence including (N) bits, each of which is associated with a respective byte of said aligned packet, and identifying at least one byte of said (N) bytes of said aligned packet as a code breakpoint, if said comparing step produces a match between at least a portion of said fetch instruction pointer and at least a portion of said breakpoint address.
Claim 29
Independent Claim 109 words
A method of detecting instruction code breakpoints comprising the steps of: storing a breakpoint address in a memory element; fetching an aligned packet of (N) bytes of instruction data based on a fetch instruction pointer; comparing the fetch instruction pointer to the breakpoint address; generating a breakpoint marking sequence including (N) bits, each of which is associated with a respective byte of said aligned packet, and identifying at least one byte of said (N) bytes of said aligned packet as a code breakpoint, if said comparing step produces a match between at least a portion of said fetch instruction pointer and at least a portion of said breakpoint address.
Claim 30
Dependent Claim 27 words
The method of claim 25 further comprising the step of signaling a breakpoint event if a first byte of an instruction is identified as the code breakpoint.
Claim 31
Dependent Claim 23 words
The method of claim 26 wherein said comparing step comprises the step of comparing said fetch instruction pointer with multiple stored breakpoint addresses.
Claim 32
Dependent Claim 26 words
The method of claim 26 wherein after said signaling step, said method comprises the step of determining which stored breakpoint address matched said fetch instruction pointer.
Claim 33
Dependent Claim 56 words
The method of claim 28 wherein sad comparing step comprises the step of comparing the upper bits of said breakpoint address with the upper bits of said fetch instruction pointer and said generating step comprises the steps of decoding the lower bits of said breakpoint address and appending said breakpoint marking sequence to said aligned packet.

References Cited (Backward Citations)

US5165027A Cited
US5442757A Cited
US5481685A Cited
US5479616A Cited
US5479652A Cited
US5479652B1 Cited
US5491793A Cited
US5537559A Cited
US5404473A Cited
US5530804A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag