IP Library Granted Patent US 11,119,149
Granted Patent B2
US 11,119,149 · App. 16/264,039 · Granted Sep 14, 2021

Debug command execution using existing datapath circuitry

Inventors: Deepak Panwar (Austin, TX); Muhammad Tauseef Rab (Austin, TX); Robert T. Golla (Austin, TX); Matthew B. Smittle (Allen, TX)
Assignee: Western Digital Technologies, Inc.
G01R31/31705G06F9/30029G06F9/30141G06F11/263
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 11,119,149
App. No.
16/264,039
Granted
Sep 14, 2021
Kind
B2
Abstract

Techniques are disclosed relating to using non-debug path circuitry to perform debug commands. In some embodiments, an apparatus includes a processor core that includes path circuitry configured to access data for instructions executed by the processor core and storage elements which the path circuitry is configured to access via one or more ports. In some embodiments, the apparatus includes debug circuitry configured to receive external debug inputs and send abstract commands to the processor core based on the external debug inputs. In some embodiments, the apparatus includes control circuitry in the processor core configured to, in response to an abstract command to access one or more of the storage elements: generate signaling to access the one or more storage elements using the path circuitry, access read data from the one or more storage elements based on the signaling, and transmit the accessed read data to the debug circuitry.

Claims (48)

1. An apparatus, comprising:

a processor core that includes:

control circuitry;

path circuitry configured to access data for instructions executed by the processor core;

a plurality of storage elements, wherein the path circuitry is configured to access the storage elements via a port; and

intercept circuitry configured to intercept, between the port and the path circuitry, data accessed from the storage elements and provide the intercepted data to the control circuitry; and

debug circuitry configured to receive external debug inputs and send abstract commands to the processor core based on the external debug inputs;

wherein the control circuitry is configured to, in response to an abstract command to access one or more of the storage elements:

generate an instruction that causes data to be read from one or more of the plurality of storage elements such that the read data proceeds to the path circuitry and the intercept circuitry, wherein the path circuitry is configured to execute the instruction to process the read data and the execution does not change the architectural state of the processor core;

access, via the intercept circuitry, the read data based on the execution of the instruction; and

transmit the accessed read data to the debug circuitry.

2. The apparatus of claim 1 , wherein the one or more storage elements include one or more general purpose registers and the instruction is an OR instruction that specifies a logical OR of logical zeros with the contents of the one or more general purpose registers.

3. The apparatus of claim 1 , wherein the one or more storage elements include one or more control status registers and the instruction is an instruction that transfers a value between the one or more control status registers and one or more other registers.

4. The apparatus of claim 3 , wherein the instruction that transfers the value is a RISC-V csrrs or csrrw instruction.

5. The apparatus of claim 1 , wherein the control circuitry is further configured to:

insert write data from the debug circuitry for storage in the one or more storage elements.

6. The apparatus of claim 1 , wherein the one or more storage elements include memory and the control circuitry is further configured to issue a direct memory access (DMA) command to DMA circuitry of the apparatus based on an abstract command.

7. The apparatus of claim 6 , wherein the control circuitry is further configured to send a request to the DMA circuitry to stop accepting requests and to wait to send the DMA command until the DMA circuitry sends a ready signal.

8. A method, comprising:

receiving, by debug circuitry of a processor, external debug inputs;

sending, by the debug circuitry, abstract commands to a processor core based on the external debug inputs, wherein the processor core includes:

control circuitry;

a plurality of storage elements,

path circuitry that accesses data for instructions executed by the processor core, including accessing the storage elements via one or more ports; and

intercept circuitry that intercepts, between the port and the path circuitry, data accessed from the storage elements and provides the intercepted data to the control circuitry;

generating, by the control circuitry in response to an abstract command to access one or more of the storage elements, an instruction that causes data to be read from one or more of the plurality of storage elements such that the read data proceeds to the path circuitry and the intercept circuitry;

executing, by the path circuitry, the instruction to process the read data, wherein the executing does not change the architectural state of the processor core;

accessing, by the control circuitry via the intercept circuitry, the read data based the execution of the instruction; and

transmitting the accessed read data to the debug circuitry.

9. The method of claim 8 , wherein the instruction is an OR instruction that specifies a logical OR of logical zeros with the contents of one or more general purpose registers.

10. The method of claim 8 , wherein the instruction transfers a value between one or more control status registers and one or more other registers.

11. The method of claim 8 , further comprising:

inserting write data from the debug circuitry for storage in the one or more storage elements.

12. A non-transitory computer readable storage medium having stored thereon design information that specifies a design of at least a portion of a hardware integrated circuit in a format recognized by a semiconductor fabrication system that is configured to use the design information to produce the circuit according to the design, including:

a processor core that includes:

control circuitry;

path circuitry configured to access data for instructions executed by the processor core;

a plurality of storage elements, wherein the path circuitry is configured to access the storage elements via a port; and

intercept circuitry configured to intercept, between the port and the path circuitry, data accessed from the storage elements and provide the intercepted data to the control circuitry; and

debug circuitry configured to receive external debug inputs and send abstract commands to the processor core based on the external debug inputs;

wherein the control circuitry is configured to, in response to an abstract command to access one or more of the storage elements:

generate an instruction that causes data to be read from one or more of the plurality of storage elements such that the read data proceeds to the path circuitry and the intercept circuitry, wherein the path circuitry is configured to execute the instruction to process the read data and the execution does not change the architectural state of the processor core;

access, via the intercept circuitry, the read data based on the execution of the instruction; and

transmit the accessed read data to the debug circuitry.

13. The non-transitory computer readable storage medium of claim 12 , wherein the one or more storage elements include one or more general purpose registers and the instruction is an OR instruction that specifies a logical OR of logical zeros with the contents of the one or more general purpose registers.

14. The non-transitory computer readable storage medium of claim 12 , wherein the one or more storage elements include one or more control status registers and the instruction transfers a value between the one or more control status registers and one or more other registers.

15. The non-transitory computer readable storage medium of claim 12 , wherein the control circuitry is further configured to:

insert write data from the debug circuitry for storage in the one or more storage elements.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2022
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: CADENCE DESIGN SYSTEMS, INC.
Reel/Frame 060334/0340 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2019
From: PANWAR, DEEPAK; RAB, MUHAMMAD TAUSEEF; GOLLA, ROBERT T.; SMITTLE, MATTHEW B.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 048212/0261 →
Continuity (2)
Provisional Application 62773870 · Nov 30, 2018
Related Publication 20200174071A1 · Jun 4, 2020