IP Library Granted Patent US 8,775,875
Granted Patent B2
US 8,775,875 · App. 12/387,152 · Granted Jul 8, 2014

System for providing trace data in a data processor having a pipelined architecture

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 8,775,875
App. No.
12/387,152
Granted
Jul 8, 2014
Kind
B2
Abstract

The invention is a method and system for providing trace data in a pipelined data processor. Aspects of the invention including providing a trace pipeline in parallel to the execution pipeline, providing trace information on whether conditional instructions are complete or not, providing trace information on the interrupt status of the processor, replacing instructions in the processor with functionally equivalent instructions that also produce trace information and modifying the scheduling of instructions in the processor based on the occupancy of the trace output buffer.

Claims (22)

1. A method of providing trace data from a data processor, the data processor including a scheduler for scheduling instructions to be executed by the data processor and a trace unit including a trace output buffer for storing trace data prior to output of the trace data to an external device, comprising:

sending an indication of space available in the trace output buffer to the scheduler;

pausing the scheduling of instructions based on the indication of space available; and

including in the trace data the number of cycles for which the scheduling of instructions has been paused.

2. A data processor according to claim 1 , wherein the indication of space available in the trace output buffer is an indication that the trace output buffer is full.

3. A data processor comprising:

an instruction scheduler for scheduling instructions to be executed by the data processor; and

a trace unit coupled to the instruction scheduler for receiving trace data relating to scheduled instructions, the trace unit having a trace output for connection with an external device, a trace output buffer connected to the trace output for storing trace data prior to passing it to the trace output, and a trace impact counter connected to the trace output buffer and to the scheduler,

wherein the trace output buffer is configured to send buffer occupancy data to the scheduler, the scheduler is configured to pause the scheduling of instructions based on the buffer occupancy data and is configured to send an indication of the pause of scheduling to the trace impact counter, and the trace impact counter is configured to add the number of cycles for which scheduling of instructions has been paused to trace data sent to the trace output buffer.

4. A data processor according to claim 3 , wherein the buffer occupancy data is an indication that the trace output buffer is full.

5. A data processor comprising:

a plurality of functional units for processing program instructions;

an instruction fetch unit for fetching program instructions from a memory;

an instruction scheduler, connected to the instruction fetch unit and to the plurality of functional units for determining when the fetched instructions are issued to the functional units;

a trace pipeline data output connected to the scheduler for outputting trace data relating to the operation of the processor, wherein the trace pipeline data output comprises a plurality of stages corresponding to stages of execution in the plurality of functional units; and

a trace output buffer connected between the output of the trace pipeline and the trace output for storing trace data prior to passing it to the trace output and a trace impact counter connected to the trace output buffer and to the scheduler,

wherein the instruction fetch unit includes branch prediction logic that is used to determine which instructions are fetched from memory following the fetching of a branch instruction, wherein the instruction fetch unit is configured to output branch prediction information associated with fetched instructions to a sideband register and the scheduler is configured to receive the branch prediction information from the sideband register and to determine if the branch prediction information is correct by checking if a condition associated with the branch instruction has been met and is configured to add a result of the determination to the trace data, and

wherein the trace output buffer is configured to send buffer occupancy data to the scheduler, the scheduler is configured to modify the scheduling of instructions based on the buffer occupancy data and is configured to send an indication of the modification of scheduling to the trace impact counter, the trace impact counter configured to track a number of cycles for which scheduling of instructions has been paused, and the trace impact counter is configured to add an indication of the modification of scheduling to trace data sent to the trace output buffer.

6. A data processor according to claim 5 , wherein the branch prediction information is sent from the instruction fetch unit to the scheduler in parallel with, and synchronously with, corresponding fetched instructions.

7. A data processor according to claim 5 , wherein the scheduler is configured to receive or determine interrupt or exception status information indicative of the processor entering a different operating mode, and wherein the scheduler is configured to include an indication of the interrupt or exception status information in the trace data.

8. A data processor according to claim 5 , wherein the scheduler is configured to pause scheduling of instructions based on the buffer occupancy data.

9. A data processor according to claim 5 , wherein the buffer occupancy data is an indication that the trace output buffer is full.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Dec 29, 2022
From: CAPITAL FINANCE ADMINISTRATION, LLC, AS ADMINISTRATIVE AGENT
To: MIPS TECH, LLC; WAVE COMPUTING INC.
Reel/Frame 062251/0251 →
SECURITY INTEREST Recorded Jun 14, 2021
From: MIPS TECH, LLC; WAVE COMPUTING, INC.
To: CAPITAL FINANCE ADMINISTRATION, LLC
Reel/Frame 056558/0903 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2021
From: WAVE COMPUTING LIQUIDATING TRUST
To: MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.; MIPS TECH, LLC; WAVE COMPUTING, INC.
Reel/Frame 056589/0606 →
SECURITY INTEREST Recorded Feb 26, 2021
From: WAVE COMPUTING, INC.; MIPS TECH, LLC; MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.
To: WAVE COMPUTING LIQUIDATING TRUST
Reel/Frame 055429/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2018
From: MIPS TECH LIMITED
To: MIPS TECH, LLC
Reel/Frame 045555/0475 →
CHANGE OF NAME Recorded Jan 26, 2018
From: HELLOSOFT LIMITED
To: MIPS TECH LIMITED
Reel/Frame 045168/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2018
From: IMAGINATION TECHNOLOGIES LIMITED
To: HELLOSOFT LIMITED
Reel/Frame 044712/0386 →