IP Library Granted Patent US 9,720,695
Granted Patent B2
US 9,720,695 · App. 14/271,886 · Granted Aug 1, 2017

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 9,720,695
App. No.
14/271,886
Granted
Aug 1, 2017
Kind
B2
Abstract

The invention is a method and system for providing trace data in a pipelined data processor. Aspects of the invention include providing a trace pipeline in parallel to the execution pipeline, providing trace information on whether conditional instructions 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 a trace output buffer.

Claims (25)

1. A method of reporting performance information relating to the execution of a program in a data processor, comprising:

replacing within the program an existing instruction that performs a primary task, with an alternative instruction that is capable of configuring the data processor to perform the same primary task and which alternative instruction has an additional function of configuring the data processor to report, to a trace output, performance information relating to one or more of (1) execution of the alternative instruction and (2) information relating to a result from executing of the alternative instruction; and

within the data processor, decoding the alternative instruction and executing the alternative instruction, comprising performing both the primary task and the additional function of reporting performance information.

2. A method according to claim 1 , wherein the alternative instruction is selected from a pre-determined set of trace side effect instructions and the method further comprises placing a trace side effect instruction from the set of trace side effect instructions in a preamble or post-amble of a function contained within the program.

3. A method according to claim 1 , wherein the alternative instruction is selected from a pre-determined set of trace side effect instructions and the method further comprises placing a trace side effect instruction from the set of trace side effect instructions in a portion of the program that performs tasks outside the direct control of a user-level code in the program.

4. A method according to claim 1 , further comprising selecting the existing instruction from among instructions that construct and destruct a frame pointer of a function contained within the program.

5. A method according to claim 1 , wherein the replacing is performed by a compiler.

6. A method according to claim 1 , wherein the replacing is performed by a compiler while translating source code for the program into machine code.

7. A method according to claim 1 , wherein the execution of the additional function of reporting performance information comprises reporting one or more of a location of the instruction, values of data being manipulated during the performance of the primary task of the instruction, and timing information.

8. A method according to claim 1 , wherein the replacing comprises identifying a move instruction, and substituting an instruction that performs the same function as the move instruction and also the additional function.

9. A method according to claim 8 , wherein the additional function for the substituted instruction comprises reporting call entry and exit points.

10. A method according to claim 9 , further comprising conditioning performance of the additional function of the substituted instruction on trace recording being enabled.

11. A method according to claim 9 , further comprising conditioning reporting of trace data on a value of data manipulated by the primary function of the substituted instruction.

12. A data processor comprising:

an execution pipeline for processing program instructions;

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

an instruction decoder configured to decode a pre-determined set of program instructions, wherein one or more of the pre-determined set of program instructions are of a trace-side effect instruction type, wherein a program instruction of the trace-side effect instruction type performs the same primary function as a previously existing instruction from the pre-determined set of program instructions, which previously existing instruction was replaced in the pre-determined set of program instructions with said instruction of the trace-side effect instruction type, and which program instruction of the trace-side effect instruction type also performs an additional function of reporting performance information to a trace output, the performance information relating to execution of that instruction or information about a result of executing that instruction.

13. The data processor of claim 12 , wherein the data processor comprises a plurality of functional units, each comprising an execution pipeline, and a trace pipeline having a same number of stages as the execution pipelines.

14. The data processor of claim 12 , wherein the data processor comprises an instruction scheduler configured for scheduling the execution pipeline and coupled to a trace pipeline to provide a program counter value to the trace pipeline.

15. The data processor of claim 14 , wherein the trace pipeline has a same number of stages as the execution pipeline and is coupled to receive trace event data from the instruction scheduler, propagate the trace event data through the trace pipeline and supply the trace event data to a write selector for determining what trace data is to be provided to the trace output.

16. The data processor of claim 15 , wherein the write selector is configured to select from among different data available on a write back bus based on the trace event data.

17. The data processor of claim 12 , wherein the performance information comprises a location of the program instruction.

18. The data processor of claim 12 , wherein the performance information comprises one or more values of data being manipulated during performance of the primary function of the program instruction.

19. The data processor of claim 12 , wherein the performance information comprises one or more values of event counters.

20. The data processor of claim 12 , wherein the data processor is further configured to conditionally report the performance information based on one or more criteria selected from (1) a location of the program instruction (2) a value being manipulated during performance of the primary function and (3) performance data that would be reported by the program instruction.

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/0573 →
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 →