US5564028A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Pipelined data processing including instruction trace
Assignee: Texas Instruments Inc
•
Filing: 1994-01-11
•
Granted: 1996-10-08
•
Expires: 2014-01-11
Abstract
Abstract In a pipelined data processor (11), an address pipeline (39, 41) is provided to hold the addresses of the instructions presently in the instruction pipeline (23, 25) . The address pipeline facilitates tracing only executed instructions, and permits stopping the data processor during a branch delay slot without losing the branch information.
Inventors
- 👤 Gary L. Swoboda
- 👤 Mark R. Hammes
- 👤 Douglas Deao
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 16:25
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/3636; G06F11/3648; G06F9/00; G06F9/06; G06F9/30; G06F9/32; G06F9/321; G06F9/322; G06F9/324; G06F9/38; G06F9/3861; G06F9/3863
Claims Analysis
Total Claims: 25
Claim 1
Independent Claim
182 words
A data processor which performs operations specified by instructions fetched from a memory, comprising: a program counter for holding an address of a next instruction to be fetched from memory; an instruction pipeline which permits the data processor to perform operations specified by a first instruction, which has already been fetched from a first address in memory, while simultaneously fetching from memory a second instruction at a second address contained in said program counter, wherein said first address immediately preceded said second address in said program counter, said instruction pipeline including a first instruction register for holding therein said first instruction while said second instruction is being fetched; an address pipeline coupled to said program counter for maintaining a record of said first address while said data processor performs the operations specified by said first instruction, said address pipeline including a first history register for holding therein said first address while said first instruction is in said first instruction register, said program counter operatively interconnected with said first history register; and trace circuitry for selectively tracing addresses output by said address pipeline.
Claim 2
Dependent Claim
182 words
A data processor which performs operations specified by instructions fetched from a memory, comprising: a program counter for holding an address of a next instruction to be fetched from memory; an instruction pipeline which permits the data processor to perform operations specified by a first instruction, which has already been fetched from a first address in memory, while simultaneously fetching from memory a second instruction at a second address contained in said program counter, wherein said first address immediately preceded said second address in said program counter, said instruction pipeline including a first instruction register for holding therein said first instruction while said second instruction is being fetched; an address pipeline coupled to said program counter for maintaining a record of said first address while said data processor performs the operations specified by said first instruction, said address pipeline including a first history register for holding therein said first address while said first instruction is in said first instruction register, said program counter operatively interconnected with said first history register; and trace circuitry for selectively tracing addresses output by said address pipeline.
Claim 3
Dependent Claim
54 words
The data processor of claim 1, wherein said trace circuitry provides a first bit which is associated with said first address and which progresses through said address pipeline with said first address and whose value indicates whether said first address defines a discontinuity in a consecutive sequence of addresses passing through said program counter.
Claim 4
Dependent Claim
30 words
The data processor of claim 2, wherein said trace circuitry includes a trace memory connected to an output of said address pipeline for selectively receiving addresses from said address pipeline.
Claim 5
Dependent Claim
48 words
The data processor of claim 3, wherein said trace memory is selectively activated to store said first address therein if said first address and said first bit reach said output of said address pipeline and if said first bit indicates that said first address defines an address discontinuity.
Claim 6
Dependent Claim
71 words
The data processor of claim 2, wherein said trace circuitry provides a second bit which is associated with said first address and which progresses through said address pipeline with said first address and which is used whenever said first address does define an address discontinuity and whose value indicates whether said first address is an end of a block of consecutive addresses or a start of a block of consecutive addresses.
Claim 7
Dependent Claim
36 words
The data processor of claim 2, wherein said trace circuitry is responsive to said first bit to prohibit tracing of said first address unless said first bit indicates that said first address defines an address discontinuity.
Claim 8
Dependent Claim
21 words
The data processor of claim 1, wherein said first and second addresses, in that order, constitute a continuous sequence of addresses.
Claim 9
Dependent Claim
16 words
The data processor of claim 1, wherein said first and second addresses define a discontinuity therebetween.
Claim 10
Dependent Claim
26 words
The data processor of claim 1, wherein said address pipeline includes a plurality of pipeline stages which respectively correspond to pipeline stages in said instruction pipeline.
Claim 11
Dependent Claim
26 words
The data processor of claim 1, wherein said first address progresses through said address pipeline synchronously with progression of said first instruction through said instruction pipeline.
Claim 12
Dependent Claim
14 words
The data process of claim 1, wherein said address pipeline has a first-in-first-out structure.
Claim 13
Dependent Claim
343 words
A data processor which performs operations specified by instructions fetched from a memory, comprising: a program counter for holding an address of a next instruction to be fetched from memory; an instruction pipeline which permits the data processor to perform operations specified by a first instruction, which has already been fetched from a first address in memory, while simultaneously fetching from memory a second instruction at a second address contained in said program counter; an address pipeline coupled to said program counter for maintaining a record of said first address while said data processor performs the operations specified by said first instruction; trace circuitry for selectively tracing addresses output by said address pipeline, wherein said trace circuitry provides a first bit which is associated with said first address and which progresses through said address pipeline with said first address and whose value indicates whether said first address defines a discontinuity in a consecutive sequence of addresses passing through said program counter, wherein said trace circuitry provides a second bit which is associated with said first address and which progresses through said address pipeline with said first address and which is used whenever said first address does define an address discontinuity and whose value indicates whether said first address is an end of a block of consecutive addresses or a start of a block of consecutive addresses, and wherein said trace circuitry provides first and second bits which are associated with said second address and which progress through said address pipeline with said second address and which indicate respectively whether said second address defines an address discontinuity and if so whether said second address is an end address of a block of consecutive addresses or a start address of a block of consecutive addresses; and circuitry which, if said second address arrives in said program counter via a loading of said program counter rather than via an incrementing of said program counter, manipulates said pair of bits associated with said second address to indicate that said second address defines a start of block discontinuity.
Claim 14
Dependent Claim
343 words
A data processor which performs operations specified by instructions fetched from a memory, comprising: a program counter for holding an address of a next instruction to be fetched from memory; an instruction pipeline which permits the data processor to perform operations specified by a first instruction, which has already been fetched from a first address in memory, while simultaneously fetching from memory a second instruction at a second address contained in said program counter; an address pipeline coupled to said program counter for maintaining a record of said first address while said data processor performs the operations specified by said first instruction; trace circuitry for selectively tracing addresses output by said address pipeline, wherein said trace circuitry provides a first bit which is associated with said first address and which progresses through said address pipeline with said first address and whose value indicates whether said first address defines a discontinuity in a consecutive sequence of addresses passing through said program counter, wherein said trace circuitry provides a second bit which is associated with said first address and which progresses through said address pipeline with said first address and which is used whenever said first address does define an address discontinuity and whose value indicates whether said first address is an end of a block of consecutive addresses or a start of a block of consecutive addresses, and wherein said trace circuitry provides first and second bits which are associated with said second address and which progress through said address pipeline with said second address and which indicate respectively whether said second address defines an address discontinuity and if so whether said second address is an end address of a block of consecutive addresses or a start address of a block of consecutive addresses; and circuitry which, if said second address arrives in said program counter via a loading of said program counter rather than via an incrementing of said program counter, manipulates said pair of bits associated with said second address to indicate that said second address defines a start of block discontinuity.
Claim 15
Dependent Claim
53 words
The data processor of claim 12, wherein said bit manipulating circuitry is operative, if said second address has been loaded into said program counter in response to a branch instruction, to manipulate said pair of bits associated with said first address to indicate that said first address defines an end of block discontinuity.
Claim 16
Dependent Claim
292 words
A data processor which performs operations specified by instructions fetched from a memory, comprising: a program counter for holding an address of a next instruction to be fetched from memory; an instruction pipeline which permits the data processor to perform operations specified by a first instruction, which has already been fetched from a first address in memory, while simultaneously fetching from memory a second instruction at a second address contained in said program counter an address pipeline coupled to said program counter; an address pipeline coupled to said program counter for maintaining a record of said first address while said data processor performs the operations specified by said first instruction; trace circuitry for selectively tracing addresses output by said address pipeline, wherein said trace circuitry provides a first bit which is associated with said first address and which progresses through said address pipeline with said first address and whose value indicates whether said first address defines a discontinuity in a consecutive sequence of addresses passing through said program counter and wherein said trace circuitry provides a second bit which is associated with said first address and which progresses through said address pipeline with said first address and which is used whenever said first address does define an address discontinuity and whose value indicates whether said first address is an end of a block of consecutive addresses or a start of a block of consecutive addresses; and interrupt control circuitry responsive to a processor interrupt for loading said program counter with a starting address of an interrupt routine, said interrupt control circuitry being coupled to said first and second bits and operative before loading said starting address to manipulate said bits to indicate that said first address defines an end of block discontinuity.
Claim 17
Dependent Claim
292 words
A data processor which performs operations specified by instructions fetched from a memory, comprising: a program counter for holding an address of a next instruction to be fetched from memory; an instruction pipeline which permits the data processor to perform operations specified by a first instruction, which has already been fetched from a first address in memory, while simultaneously fetching from memory a second instruction at a second address contained in said program counter an address pipeline coupled to said program counter; an address pipeline coupled to said program counter for maintaining a record of said first address while said data processor performs the operations specified by said first instruction; trace circuitry for selectively tracing addresses output by said address pipeline, wherein said trace circuitry provides a first bit which is associated with said first address and which progresses through said address pipeline with said first address and whose value indicates whether said first address defines a discontinuity in a consecutive sequence of addresses passing through said program counter and wherein said trace circuitry provides a second bit which is associated with said first address and which progresses through said address pipeline with said first address and which is used whenever said first address does define an address discontinuity and whose value indicates whether said first address is an end of a block of consecutive addresses or a start of a block of consecutive addresses; and interrupt control circuitry responsive to a processor interrupt for loading said program counter with a starting address of an interrupt routine, said interrupt control circuitry being coupled to said first and second bits and operative before loading said starting address to manipulate said bits to indicate that said first address defines an end of block discontinuity.
Claim 18
Dependent Claim
137 words
The data processor of claim 14, wherein said trace circuitry provides first and second bits which are associated with said second address and which progress through said address pipeline with said second address and which indicate respectively whether said second address defines an address discontinuity and if so whether said second address is an end address of a block of consecutive addresses or a start address of a block of consecutive addresses, said interrupt control circuitry being coupled to said pair of bits associated with said second address, and said interrupt control circuitry being operative, if said second address has been loaded into said program counter as the starting address of the interrupt routine, for manipulating said pair of bits associated with said second address to indicate that said second address defines a start of block discontinuity.
Claim 19
Dependent Claim
55 words
The data processor of claim 14, wherein said coupling of said interrupt control circuitry to said first and second bits prohibits said interrupt control circuitry from manipulating said bits to designate said first address as an end of block discontinuity if said first address has already been previously designated as a start of block discontinuity.
Claim 20
Dependent Claim
215 words
A data processing system, comprising: a data processor which performs operations specified by instructions fetched from a memory; a plurality of peripheral devices coupled to said data processor for providing information to said data processor and receiving information from said data processor; said data processor including a program counter for holding an address of the next instruction to be fetched from memory, an instruction pipeline for permitting the data processor to perform operations specified by a first instruction which has already been fetched from a first address in memory while simultaneously fetching from memory a second instruction at a second address contained in said program counter, wherein said first address immediately preceded said second address in said program counter, said instruction pipeline including a first instruction register for holding therein said first instruction while said second instruction is being fetched, and an address pipeline coupled to said program counter for maintaining a record of said first address while said data processor performs the operations specified by said first instruction, said address pipeline including a first history register for holding therein said first address while said first instruction is in said first instruction register, said program counter operatively interconnected with said first history register; and trace circuitry for selectively tracing addresses output by said address pipeline.
Claim 21
Dependent Claim
215 words
A data processing system, comprising: a data processor which performs operations specified by instructions fetched from a memory; a plurality of peripheral devices coupled to said data processor for providing information to said data processor and receiving information from said data processor; said data processor including a program counter for holding an address of the next instruction to be fetched from memory, an instruction pipeline for permitting the data processor to perform operations specified by a first instruction which has already been fetched from a first address in memory while simultaneously fetching from memory a second instruction at a second address contained in said program counter, wherein said first address immediately preceded said second address in said program counter, said instruction pipeline including a first instruction register for holding therein said first instruction while said second instruction is being fetched, and an address pipeline coupled to said program counter for maintaining a record of said first address while said data processor performs the operations specified by said first instruction, said address pipeline including a first history register for holding therein said first address while said first instruction is in said first instruction register, said program counter operatively interconnected with said first history register; and trace circuitry for selectively tracing addresses output by said address pipeline.
Claim 22
Dependent Claim
19 words
The data processing system of claim 17, wherein said data processing system is provided on a single semiconductor chip.
Claim 23
Dependent Claim
27 words
The data processing system of claim 17, wherein said address pipeline includes a plurality of pipeline stages which respectively correspond to pipeline stages in said instruction pipeline.
Claim 24
Dependent Claim
27 words
The data processing system of claim 17, wherein said first address progresses through said address pipeline synchronously with progression of said first instruction through said instruction pipeline.
Claim 25
Dependent Claim
15 words
The data processing system of claim 17, wherein said address pipeline has a first-in-first-out structure.
References Cited (Backward Citations)
US3673573A
Cited
US3886523A
Cited
US4176394A
Cited
US4674089A
Cited
US4860195A
Cited
US5058114A
Cited
US5287465A
Cited
US5333280A
Cited
US5303356A
Cited
US5287466A
Cited
US5345569A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-10-08 | 2000-04-08 | 2000-10-08 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-10-08 | 2004-04-08 | 2004-10-08 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-10-08 | 2008-04-08 | 2008-10-08 | $7700.00 | Window Closed / Lapsed |