IP Library Granted Patent US 10,296,441
Granted Patent B2
US 10,296,441 · App. 15/203,659 · Granted May 21, 2019

Debugging support unit for microprocessor

Inventors: Xiao Kang Jiao (Beijing, CN); PengFei Zhu (Beijing, CN)
Assignee: STMICROELECTRONICS (BEIJING) R&D CO. LTD
G06F11/3624G06F11/2236G06F11/36G06F11/3636G06F11/3648
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,296,441
App. No.
15/203,659
Granted
May 21, 2019
Kind
B2
Abstract

A debug-enabled processing device includes a processor, a communication transceiver circuit, and a debug support unit. The debug support unit has a plurality of dedicated debug registers to facilitate debugging a software program under execution by the processor. One of the plurality of debug registers is a control register having at least four bits, which are used to enable/disable a plurality of debugging operations. Others of the debug registers include a set of index registers that may be configured to pass data to and from the processor.

Claims (65)

1. A debug-enabled processing device, comprising:

a processor, wherein the processor is a reduced instruction set computing (RISC) device;

a communication transceiver circuit; and

a debug support unit, the debug support unit having a plurality of dedicated debug registers that facilitate debugging a software program under execution by the processor, the plurality of debug registers including:

a control register having at least four bits, the at least four bits including control bits to enable/disable a plurality of debugging operations; and

a set of index registers, the set of index registers configurable to pass data to and from the processor.

2. A debug-enabled processing device according to claim 1 , wherein the control register comprises:

a first one of the at least four bits arranged to enable a debug mode when the first one of the at least four bits takes a first value and further arranged to disable the debug mode when the first one of the at least four bits takes a second value;

a second one of the at least four bits arranged to provide status regarding a pipeline flushing operation;

a third one of the at least four bits arranged to enable and disable a trap handling operation; and

a fourth one of the at least four bits arranged to control the trap handling operation.

3. A debug-enabled processing device according to claim 1 , wherein the set of index registers comprises:

a write enable register to control whether a data transfer operation is a read operation or a write operation;

an address register to store a value representing an architecture state of the processor; and

a data register to store data being transferred.

4. A debug-enabled processing device according to claim 1 , comprising:

an integrated circuit package, the integrated circuit package having the processor, the communication transceiver circuit, and the debug support unit formed therein.

5. A debug-enabled processing device according to claim 1 , wherein the processor includes a multi-stage execution pipeline, the multi-stage execution pipeline including at least a fetch stage, a decode stage, an execution stage, and a write back stage.

6. A debug-enabled processing device according to claim 1 , comprising:

a memory, the memory having the software program stored therein.

7. A debug-enabled processing device according to claim 6 , wherein the memory is a non-transitory read only memory (ROM).

8. A debug-enabled processing device according to claim 1 , wherein the debug support unit is an electronic circuit having an absence of any software.

9. A debug-enabled processing device according to claim 1 , wherein the debug support unit comprises:

a debug control circuit, the debug control circuit arranged to pass signals between the processor and at least one register of the debug support unit.

10. A debugging method performed via a target device, the target device having a processor, a communication transceiver circuit, and a debug support unit, the debug support unit having a plurality of dedicated debug registers, the method comprising:

writing a first value to a control register of the dedicated debug registers to enable a debug mode of the target device;

writing a second value to the control register of the dedicated debug registers to suspend an execution of instructions of a program being debugged;

polling the control register of the dedicated debug registers for a signal indicating that the processor has flushed any instructions that were in an execution pipeline of the processor before suspending execution of the instructions of the program being debugged;

passing data to or from registers of the processor via a set of index registers of the dedicated debug registers; and

writing a second value to the control register of the dedicated debug registers to disable the debug mode of the target device.

11. A debugging method according to claim 10 , further comprising:

writing a third value to the control register of the dedicated debug registers to enable a single-step mode of the target device;

writing an address of a selected instruction of the program being debugged;

polling the control register of the dedicated debug registers for a signal indicating that the processor trapped on the address of the selected instruction;

passing second data to or from registers of the processor via the set of index registers of the dedicated debug registers;

writing a next address of the program being debugged as the address of the selected instruction;

writing a fourth value to the control register of the dedicated debug registers to restart program execution; and

polling the control register of the dedicated debug registers for the signal indicating that the processor trapped on the address of the selected instruction.

12. A debugging method according to claim 11 , wherein passing the data to or from the registers of the processor comprises:

communicatively coupling the communication transceiver circuit to a host computing device external to the target device; and

communicating the data via the communication transceiver circuit and the host computing device according to a Joint Test Action Group (JTAG) protocol.

13. A debugging method according to claim 12 , comprising:

receiving a plurality of debugging instructions from the host computing device, the plurality of debugging instructions drawn from a set of debugging instructions including a stop instruction, a run instruction, a single-step instruction, a data read instruction, and a data write instruction.

14. A debugging method according to claim 10 , wherein the execution pipeline includes at least a fetch stage, a decode stage, and an execution stage, the method comprising:

accepting a first debugging instruction from a host computing device, the first debugging instruction including an instruction to be executed by the processor;

passing the first debugging instruction from a dedicated debug register of the debug support unit to at least one stage of the execution pipeline of the processor.

15. An embedded processing system, comprising:

a processor means for executing software instructions of a target program, wherein the processor means has a reduced instruction set computing (RISC) architecture;

a transceiver means for communicating first data between the embedded processing system and an external host computing device; and

a debug support unit means for directing debug operations on the target program, the debug support means including:

a control register means for enabling and disabling a plurality of debugging operations; and

an index register means for passing second data to and from the processor.

16. An embedded processing system according to claim 15 , wherein the control register means comprises:

a first means for enabling a debug mode and for disabling the debug mode;

a second means for indicating a status of a pipeline flushing operation;

a third means for enabling a trap handling operation and for disabling the trap handling operation; and

a fourth means for controlling the trap handling operation.

17. An embedded processing system according to claim 15 , wherein the index register means comprises:

a write enable means for directing read operations and write operations;

an address means for storing an address to be accessed; and

a data storage means to store data being transferred.

18. An embedded processing system according to claim 15 , comprising:

a memory means, the memory means storing the target program.

19. An embedded processing system according to claim 15 , comprising:

software to direct operations of the debug support unit means.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2016
From: JIAO, XIAO KANG; ZHU, PENGFEI
To: STMICROELECTRONICS (BEIJING) R&D CO. LTD
Reel/Frame 039111/0840 →
Priority Claims (1)
CN 2016 1 0289784 · May 4, 2016 · national
Continuity (1)
Related Publication 20170322867A1 · Nov 9, 2017