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

Trace analysis of data processing

Assignee: ARM Ltd
•
Filing: 1995-01-05
•
Granted: 1997-06-24
•
Expires: 2015-01-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A data processing system is described in which trace signals are provided upon a trace bus 12 to track the address of an instruction code currently being executed and the latest address to which a data access was made. The system incorporates a central processing unit core 14 and an instruction pipeline 16 via which instruction codes are fed to the central processing unit core 14. When a non-sequential instruction code fetch is made, a number of cycles must pass before that non-sequential instruction has made its way along the instruction pipeline 16 to the central processing unit core 14. This period is utilised to output the address of the non-sequential instruction code fetch upon the trace bus. The multiple cycles available for this allow a time division multiplexing technique to be employed for different portions of the address thereby enabling the trace bus to be narrower. The same technique can be used to output data access addresses using time division multiplexing, but in this case a portion of the time taken to output the address overlaps with execution of some other instruction.

Inventors

  • 👤 David Walter Flynn

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 23:04
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/3636; G06F11/364

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 215 words
Apparatus fop processing data, said apparatus comprising: (i) a central processing unit cope fop executing instruction codes, each instruction code having an address within a memory, an address bus extending between said central processing unit cope and said memory; (ii) an instruction pipeline for feeding instruction codes to said central processing unit cope, instruction codes being fetched from said memory to said instruction pipeline and then passed along said instruction pipeline to said central processing unit core fop execution; and (iii) tracing means fop generating trace data signals upon a trace bus, said tracing means comprising: (a) trace address increment signal generating means for generating an trace address increment signal upon said trace bus when execution occurs of an instruction code having an address sequentially following an address of a preceding executed instruction code; and (b) trace address generating means fop time division multiplexing onto said trace bus a plurality of portions of a trace address indicative of a fetched code address of an instruction code fetched to said pipeline when said fetched code address does not sequentially follow an address of a preceding fetched instruction code, said time division multiplexing occurring whilst said instruction code having said fetched code address moves along said instruction pipeline to reach said central processing unit cope for execution.
Claim 2
Dependent Claim 215 words
Apparatus fop processing data, said apparatus comprising: (i) a central processing unit cope fop executing instruction codes, each instruction code having an address within a memory, an address bus extending between said central processing unit cope and said memory; (ii) an instruction pipeline for feeding instruction codes to said central processing unit cope, instruction codes being fetched from said memory to said instruction pipeline and then passed along said instruction pipeline to said central processing unit core fop execution; and (iii) tracing means fop generating trace data signals upon a trace bus, said tracing means comprising: (a) trace address increment signal generating means for generating an trace address increment signal upon said trace bus when execution occurs of an instruction code having an address sequentially following an address of a preceding executed instruction code; and (b) trace address generating means fop time division multiplexing onto said trace bus a plurality of portions of a trace address indicative of a fetched code address of an instruction code fetched to said pipeline when said fetched code address does not sequentially follow an address of a preceding fetched instruction code, said time division multiplexing occurring whilst said instruction code having said fetched code address moves along said instruction pipeline to reach said central processing unit cope for execution.
Claim 3
Dependent Claim 98 words
Apparatus as claimed in claim 1, comprising: (i) data access address increment signal generating means for generating a data access address increment signal upon said trace bus when a data access operation occurs to a data word having an address sequentially following a preceding accessed data word; and (ii) data access address generating means responsive to a data access operation to a data access address not sequentially following an address of a preceding data access operation for time division multiplexing a plurality of portions of a data address indicative of said data access address onto said trace bus.
Claim 4
Dependent Claim 15 words
Apparatus as claimed in claim 2, wherein said data address is said data access address.
Claim 5
Dependent Claim 24 words
Apparatus as claimed in claim 3, wherein said plurality of portions of said data address are contiguous multibit segments of said data access address.
Claim 6
Dependent Claim 44 words
Apparatus as claimed in claim 2, wherein said data access address generating means time division multiplexes said plurality of portions of said data address onto said trace bus during an overrun period extending beyond execution of said instruction code involving a data access operation.
Claim 7
Dependent Claim 65 words
Apparatus as claimed in claim 5, wherein said trace address generating means starts time division multiplexing said plurality of portions of said trace address onto said trace bus after a starting delay during which execution of an instruction code that initiated fetching of said instruction code from said fetched code address is completed such that said overrun period may be accommodated within said starting delay.
Claim 8
Dependent Claim 28 words
Apparatus as claimed in claim 2, wherein said data access address generating means multilevel bit encodes said plurality of portions of said data address onto said trace bus.
Claim 9
Dependent Claim 49 words
Apparatus as claimed in claim 2, comprising means for generating portion identifying signals upon said trace bus, said portion identifying signals being indicative of which of said plurality of portions of said trace address or said plurality of portions of said data address is present upon said trace bus.
Claim 10
Dependent Claim 50 words
Apparatus as claimed in claim 2, comprising inference logic for receiving a plurality of status flags from said central processing unit core and inferring whether sequential fetches of instruction codes are being made independently of monitoring said address bus and wherein data access addresses are interleaved with instruction code addresses.
Claim 11
Dependent Claim 15 words
Apparatus as claimed in claim 1, wherein said trace address is said fetched code address.
Claim 12
Dependent Claim 24 words
Apparatus as claimed in claim 10, wherein said plurality of portions of said trace address are contiguous multibit segments of said fetched code address.
Claim 13
Dependent Claim 33 words
Apparatus as claimed in claim 1, wherein, when a non-sequential fetch to said pipeline occurs, a pipeline purging means purges pending instruction codes already fetched to said pipeline from said pipeline without execution.
Claim 14
Dependent Claim 59 words
Apparatus as claimed in claim 1, wherein said trace address generating means comprises fetched code address capturing means for capturing and storing said fetched code address from said address bus and a multiplexer for successively selecting different portions of said fetched code address from said fetched code address capturing means as said plurality of portions of said trace address.
Claim 15
Dependent Claim 39 words
Apparatus as claimed in claim 1, comprising inference logic for receiving a plurality of status flags from said central processing unit core and inferring whether sequential fetches of instruction codes are being made independently of monitoring said address bus.
Claim 16
Dependent Claim 27 words
Apparatus as claimed in claim 1, wherein said trace address generating means multilevel bit encodes said plurality of portions of said trace address onto said trace bus.
Claim 17
Dependent Claim 98 words
Apparatus for receiving trace data from a trace bus, said apparatus comprising: (i) a shadow program counter register for storing a shadow instruction code address of an instruction code being currently executed by said central processing unit core; (ii) an incrementer for incrementing said shadow instruction code address in response to a trace address increment signal received from said trace bus; and (iii) means for time division demultiplexing a plurality of portions of a trace address received from said trace bus to derive a new shadow instruction code address to be loaded into said shadow program counter register.
Claim 18
Dependent Claim 98 words
Apparatus for receiving trace data from a trace bus, said apparatus comprising: (i) a shadow program counter register for storing a shadow instruction code address of an instruction code being currently executed by said central processing unit core; (ii) an incrementer for incrementing said shadow instruction code address in response to a trace address increment signal received from said trace bus; and (iii) means for time division demultiplexing a plurality of portions of a trace address received from said trace bus to derive a new shadow instruction code address to be loaded into said shadow program counter register.
Claim 19
Dependent Claim 93 words
Apparatus as claimed in claim 16, comprising: a shadow data access address register for storing a shadow data access address of latest data word to be accessed by said central processing unit core; an incrementer for incrementing said shadow data access address in response to a data access address increment signal received from said trace bus; and means for time division demultiplexing a plurality of portions of a data address received from said trace bus to derive a new shadow data access address to be loaded into said shadow data access address register.
Claim 20
Independent Claim 156 words
A method of processing data, said method comprising the steps of: (i) fetching instruction codes from a memory to an instruction pipeline and then passing said instruction codes along said instruction pipeline to a central processing unit core for execution, each instruction code having an address within said memory; (ii) generating an trace address increment signal upon a trace bus when execution occurs of an instruction code having an address sequentially following an address of a preceding executed instruction code; and (iii) time division multiplexing onto said trace bus a plurality of portions of a trace address indicative of a fetched code address of an instruction code fetched to said pipeline when said fetched code address does not sequentially follow an address of a preceding fetched instruction code, said time division multiplexing occurring whilst said instruction code having said fetched code address moves along said instruction pipeline to reach said central processing unit core for execution.
Claim 21
Independent Claim 156 words
A method of processing data, said method comprising the steps of: (i) fetching instruction codes from a memory to an instruction pipeline and then passing said instruction codes along said instruction pipeline to a central processing unit core for execution, each instruction code having an address within said memory; (ii) generating an trace address increment signal upon a trace bus when execution occurs of an instruction code having an address sequentially following an address of a preceding executed instruction code; and (iii) time division multiplexing onto said trace bus a plurality of portions of a trace address indicative of a fetched code address of an instruction code fetched to said pipeline when said fetched code address does not sequentially follow an address of a preceding fetched instruction code, said time division multiplexing occurring whilst said instruction code having said fetched code address moves along said instruction pipeline to reach said central processing unit core for execution.

References Cited (Backward Citations)

US4503495A Cited
US4511960A Cited
GB2214334A Cited
US5289587A Cited
US5488688A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag