← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag