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

Non-intrusive software breakpoints in a processor instruction execution pipeline

Assignee: Texas Instruments Inc
•
Filing: 1997-11-19
•
Granted: 2000-01-18
•
Expires: 2017-11-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A data processing system on an integrated circuit 42 with microprocessor 1 and peripheral devices 60-61 is provided with an emulation unit 50 which allows debugging and emulation of integrated circuit 42 when connected to an external test system 51. Microprocessor 1 has in instruction execution pipeline which has several execution phases which involve fetch/decode units 10a-c and functional execution units 12, 14, 16 and 18. The pipeline of microprocessor 1 is unprotected so that memory access latency to data memory 22 and register file 20 can be utilized by system program code which is stored in instruction memory 23. Emulation unit 50 provides means for emulating the unprotected pipeline of microprocessor 1 and for rapidly uploading and downloading memories 22-23. Emulation unit 50 operates in a manner to prevent extraneous operations from occurring which could otherwise affect memories 22-23 or peripheral devices 60-61 during emulation.

Inventors

  • 👤 Douglas E. Deao
  • 👤 Natarajan Seshan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 00:33
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/3005; G06F9/30072; G06F9/30181; G06F9/30185; G06F9/38; G06F9/3867

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 199 words
A method for debugging a processor within a data processing system, the processor having an instruction execution pipeline with at least a first pipeline phase followed by a second pipeline phase, comprising the steps of: forming a software breakpoint instruction within a sequence of instructions by replacing a field within an operational instruction with a predetermined breakpoint code; fetching and executing a portion of the sequence of instructions in the processor instruction execution pipeline in a normal operational manner to initiate a plurality of overlapping operations in the instruction pipeline; fetching and partially executing the software breakpoint instruction in the first pipeline phase of the instruction pipeline; halting the normal operation of the instruction pipeline in response to decoding the breakpoint code in the second pipeline phase of the instruction pipeline; performing a debug function in response to decoding the breakpoint code; and restarting the normal operation of the instruction pipeline after the step of performing a debug function without refetching the operational instruction which was replaced by the software breakpoint instruction in a manner such that the operational instruction is executed as if the field within the operational instruction had not been replaced with the predetermined breakpoint code.
Claim 2
Independent Claim 199 words
A method for debugging a processor within a data processing system, the processor having an instruction execution pipeline with at least a first pipeline phase followed by a second pipeline phase, comprising the steps of: forming a software breakpoint instruction within a sequence of instructions by replacing a field within an operational instruction with a predetermined breakpoint code; fetching and executing a portion of the sequence of instructions in the processor instruction execution pipeline in a normal operational manner to initiate a plurality of overlapping operations in the instruction pipeline; fetching and partially executing the software breakpoint instruction in the first pipeline phase of the instruction pipeline; halting the normal operation of the instruction pipeline in response to decoding the breakpoint code in the second pipeline phase of the instruction pipeline; performing a debug function in response to decoding the breakpoint code; and restarting the normal operation of the instruction pipeline after the step of performing a debug function without refetching the operational instruction which was replaced by the software breakpoint instruction in a manner such that the operational instruction is executed as if the field within the operational instruction had not been replaced with the predetermined breakpoint code.
Claim 3
Dependent Claim 37 words
The method of claim 1, wherein the step of halting further comprises preserving memory access latency by halting the normal operation of the instruction pipeline in a manner that suspends completion of the plurality of overlapping operations.
Claim 4
Dependent Claim 16 words
The method of claim 2, wherein the field within the operational instruction is a single bit.
Claim 5
Dependent Claim 17 words
The method of claim 2, wherein the field within the operational instruction is not the opcode field.
Claim 6
Dependent Claim 26 words
The method of claim 2, further comprising the step of transferring a state representative of the suspended plurality of overlapping states to an external test system.
Claim 7
Dependent Claim 49 words
The method of claim 1, wherein the step of restarting further comprises replacing the breakpoint code in the operational instruction after the breakpoint code is decoded in the second phase of the instruction pipeline such that the operational instruction is executed with the original field of the operational instruction.
Claim 8
Independent Claim 240 words
A method for debugging a processor within a data processing system the processor having an instruction execution pipeline with at least a first pipeline phase followed by a second pipeline phase, comprising the steps of: forming a software breakpoint instruction within a sequence of instructions by replacing a field within an operational instruction with a predetermined breakpoint code, wherein the field within the operational instruction is the opcode field; fetching and executing a portion of the sequence of instructions in the processor instruction execution pipeline in a normal operational manner to initiate a plurality of overlapping operations in the instruction pipeline; fetching and partially executing the software breakpoint instruction in the first pipeline phase of the instruction pipeline; halting the normal operation of the instruction pipeline in response to decoding the breakpoint code in the second pipeline phase of the instruction pipeline in a manner that suspends completion of the plurality of overlapping operations; performing a debug function in response to decoding the breakpoint code; and restarting the normal operation of the instruction pipeline after the step of performing a debug function without refetching the operational instruction which was replaced by the software breakpoint instruction; and wherein the step of restarting further comprises replacing a decoded value of the software breakpoint instruction in a register associated with the second phase of the pipeline with a decoded value representative of the operational instruction which was replaced by the software breakpoint instruction.
Claim 9
Independent Claim 240 words
A method for debugging a processor within a data processing system the processor having an instruction execution pipeline with at least a first pipeline phase followed by a second pipeline phase, comprising the steps of: forming a software breakpoint instruction within a sequence of instructions by replacing a field within an operational instruction with a predetermined breakpoint code, wherein the field within the operational instruction is the opcode field; fetching and executing a portion of the sequence of instructions in the processor instruction execution pipeline in a normal operational manner to initiate a plurality of overlapping operations in the instruction pipeline; fetching and partially executing the software breakpoint instruction in the first pipeline phase of the instruction pipeline; halting the normal operation of the instruction pipeline in response to decoding the breakpoint code in the second pipeline phase of the instruction pipeline in a manner that suspends completion of the plurality of overlapping operations; performing a debug function in response to decoding the breakpoint code; and restarting the normal operation of the instruction pipeline after the step of performing a debug function without refetching the operational instruction which was replaced by the software breakpoint instruction; and wherein the step of restarting further comprises replacing a decoded value of the software breakpoint instruction in a register associated with the second phase of the pipeline with a decoded value representative of the operational instruction which was replaced by the software breakpoint instruction.
Claim 10
Independent Claim 196 words
A method for debugging a processor within a data processing system, the processor having an instruction execution pipeline for executing a sequence of instructions fetched from an instruction memory, comprising the steps of: selecting a target instruction within the sequence of instructions; forming a software breakpoint instruction within the sequence of instructions by replacing a selected field within the target instruction with a predetermined breakpoint code; fetching and executing a portion of the sequence of instructions in the processor instruction execution pipeline in a normal operational manner to initiate a plurality of overlapping operations in the instruction pipeline; fetching and partially executing the target instruction in the instruction pipeline; halting the normal operation of the instruction pipeline in response to decoding the breakpoint code in the instruction pipeline; performing a debug function in the processor in response to decoding the breakpoint code; and restarting the normal operation of the instruction pipeline after the step of performing a debug function in a manner such that the target instruction is executed as if the selected field within the target instruction had not been replaced with a predetermined breakpoint code without refetching the target instruction from the instruction memory.
Claim 11
Independent Claim 196 words
A method for debugging a processor within a data processing system, the processor having an instruction execution pipeline for executing a sequence of instructions fetched from an instruction memory, comprising the steps of: selecting a target instruction within the sequence of instructions; forming a software breakpoint instruction within the sequence of instructions by replacing a selected field within the target instruction with a predetermined breakpoint code; fetching and executing a portion of the sequence of instructions in the processor instruction execution pipeline in a normal operational manner to initiate a plurality of overlapping operations in the instruction pipeline; fetching and partially executing the target instruction in the instruction pipeline; halting the normal operation of the instruction pipeline in response to decoding the breakpoint code in the instruction pipeline; performing a debug function in the processor in response to decoding the breakpoint code; and restarting the normal operation of the instruction pipeline after the step of performing a debug function in a manner such that the target instruction is executed as if the selected field within the target instruction had not been replaced with a predetermined breakpoint code without refetching the target instruction from the instruction memory.
Claim 12
Dependent Claim 37 words
The method of claim 8, wherein the step of halting further comprises preserving memory access latency by halting the normal operation of the instruction pipeline in a manner that suspends completion of the plurality of overlapping operations.
Claim 13
Dependent Claim 17 words
The method of claim 8, wherein the selected field within the target instruction is a single bit.
Claim 14
Dependent Claim 18 words
The method of claim 8, wherein the selected field within the target instruction is not the opcode field.
Claim 15
Dependent Claim 66 words
The method of claim 8, wherein the step of restarting further comprises the step of replacing the breakpoint code in the target instruction with the original contents of the selected field after the breakpoint code is decoded in the instruction pipeline such that the target instruction is executed with the original selected field of the target instruction without refetching the target instruction from the instruction memory.
Claim 16
Dependent Claim 34 words
The method of claim 12, wherein the step of forming a software breakpoint instruction saves the original contents of the selected field of the target instruction in a test system connected to the processor.
Claim 17
Dependent Claim 36 words
The method of claim 12, wherein during the step of replacing the breakpoint code the original contents of the selected field of the target instruction is provided by an external test system connected to the processor.
Claim 18
Dependent Claim 201 words
A digital system having a processor, the processor comprising: an instruction register for holding an instruction to be executed; an instruction execution pipeline connected to the instruction register to execute instructions; memory circuitry connected to the processor for holding data and instructions; emulation circuitry connected to the instruction register and to the instruction execution pipeline; a test port connected to the emulation circuitry for connecting an external test system; wherein the emulation circuitry comprises detection circuitry operable to detect when a selected field of a target instruction contains a software breakpoint code; emulation control circuitry operable to halt the normal operation of the instruction execution pipeline in response to the detection circuitry detecting a software breakpoint code so that an external test system connected to the test port can perform a debug operation on the digital system; and wherein the emulation control circuitry is further operable to restart the normal operation of the instruction pipeline after the detection circuitry detects a software breakpoint code in a manner such that the target instruction is executed as if an original contents of the selected field within the target instruction had not been replaced with the software breakpoint code without refetching the target instruction.
Claim 19
Dependent Claim 201 words
A digital system having a processor, the processor comprising: an instruction register for holding an instruction to be executed; an instruction execution pipeline connected to the instruction register to execute instructions; memory circuitry connected to the processor for holding data and instructions; emulation circuitry connected to the instruction register and to the instruction execution pipeline; a test port connected to the emulation circuitry for connecting an external test system; wherein the emulation circuitry comprises detection circuitry operable to detect when a selected field of a target instruction contains a software breakpoint code; emulation control circuitry operable to halt the normal operation of the instruction execution pipeline in response to the detection circuitry detecting a software breakpoint code so that an external test system connected to the test port can perform a debug operation on the digital system; and wherein the emulation control circuitry is further operable to restart the normal operation of the instruction pipeline after the detection circuitry detects a software breakpoint code in a manner such that the target instruction is executed as if an original contents of the selected field within the target instruction had not been replaced with the software breakpoint code without refetching the target instruction.
Claim 20
Dependent Claim 45 words
The digital system of claim 15, wherein the emulation circuitry further comprises circuitry for replacing the software breakpoint code in the selected field of the target instruction with the original contents of the selected field while the target instruction is in the instruction execution pipeline.
Claim 21
Dependent Claim 51 words
The digital system of claim 15, wherein the emulation circuitry further comprises circuitry for replacing decoded results of the software breakpoint code in the selected field of the target instruction with decoded results of the original contents of the selected field while the target instruction is in the instruction execution pipeline.
Claim 22
Dependent Claim 18 words
The digital system of claim 15, wherein the selected field within the target instruction is a single bit.
Claim 23
Dependent Claim 19 words
The digital system of claim 15, wherein the selected field within the target instruction is not an opcode field.
Claim 24
Dependent Claim 32 words
The digital system of claim 15, further comprising at least one peripheral device selected from the group consisting of a timer, a serial port, a disk drive, a ROM and a RAM.

References Cited (Backward Citations)

US4429368A Cited
US4701921A Cited
US4860290A Cited
US5535331A Cited
US5084814A Cited
US5564028A Cited
US5724563A Cited
US5778230A Cited
US5778208A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-01-17 2003-07-19 2004-01-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-01-17 2007-07-19 2008-01-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-01-17 2011-07-19 2012-01-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag