IP Library Granted Patent US 7,346,758
Granted Patent B1
US 7,346,758 · App. 11/125,456 · Granted Mar 18, 2008

System and method for trace messaging

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 7,346,758
App. No.
11/125,456
Granted
Mar 18, 2008
Kind
B1
Abstract

Disclosed herein are exemplary techniques for generating trace information streams to facilitate the reconstruction of the instruction execution history of a processing device for a given time period. The linear instruction pointers or other representations of the instructions executed by a processing device are output as a trace information stream. When one or more translation lookaside buffers (TLBs) used by the processing device are modified by the addition of a new linear-to-physical translation and/or the eviction of an old linear-to-physical translation, a representation of the newly added translation entry, or, alternatively the evicted translation entry, is inserted into the trace information stream. In this manner, the context for the address mapping of the instruction pointers of the trace information stream is provided and, consequently, the execution instruction history of the processing device may be more fully reconstructed.

Claims (53)

1. A method comprising:

providing a first set of linear address representations for storage in a buffer of a processing device in response to executing a first set of instructions during a first execution period, each of the linear address representations corresponding to an instruction of the first set of instructions;

providing a second set of linear address representations for storage in the buffer in response to executing a second set of instructions during a second execution period subsequent to the first execution period, each of the linear address representations corresponding to an instruction of the second set of instructions;

providing address translation information for storage in the buffer after the first set of linear address representations and before the second set of linear address representations, the address translation information representing a change in a linear address-to-physical address mapping of a translation look aside buffer (TLB) between the first execution period and the second execution period; and

providing a trace information stream for output from the buffer of the processing device to a debug component external to the processing device, the trace information stream comprising the first set of linear address representations, the address translation information, and the second set of linear address representations.

2. The method of claim 1 , wherein the address translation information is provided in response to a modification of the TLB.

3. The method of claim 2 , wherein the modification of the TLB comprises an addition of a first translation entry to the TLB and wherein the address translation information comprises a representation of the first translation entry.

4. The method of claim 2 , wherein the modification of the TLB comprises an eviction of a first translation entry from the TLB and wherein the address translation information comprises a representation of the first translation entry.

5. The method of claim 1 , further comprising reconstructing an executed instruction history for the first and second time periods based on the first and second sets of linear address information and the address translation information.

6. A method comprising:

executing, at a processing device, a first instruction at a first time;

outputting from the processing device via a debug interface of the processing device a first linear address information associated with the first instruction at a second time;

modifying a first entry of a translation lookaside buffer (TLB) of the processing device at a third time subsequent to the first time;

outputting from the processing device via the debug interface a first address translation information associated with the modification of the first entry of the TLB at a fourth time subsequent to the third time;

executing, at the processing device, a second instruction at a fifth time subsequent to the third time; and

outputting from the processing device via the debug interface a second linear address information associated with the second instruction at a sixth time subsequent to the fifth time.

7. The method of claim 6 , further comprising:

executing, at the processing device, a third instruction at a seventh time subsequent to the fifth time;

outputting from the processing device a third linear address information associated with the third instruction at an eighth time subsequent to the seventh time;

modifying a second entry of the TLB at a ninth time subsequent to the seventh time; and

outputting from the processing device a second address translation information associated with the modification of the second entry of the TLB at a tenth time subsequent to the ninth time.

8. The method of claim 6 , further comprising:

outputting the first linear address information, the first address information, and the second linear address information from the processing device as part of a trace information stream.

9. The method of claim 8 , further comprising:

reconstructing an executed instruction history based on the trace information stream.

10. The method of claim 6 , wherein:

the first linear address information comprises a representation of a first instruction pointer associated with the first instruction;

the second linear address information comprises a representation of a second instruction pointer associated with the second instruction.

11. The method of claim 6 , wherein:

modifying the first translation entry of the TLB comprises adding the first translation entry to the TLB; and

wherein the first address translation information comprises a representation of the first translation entry.

12. The method of claim 6 , wherein:

modifying the first translation entry of the TLB comprises evicting the first translation entry from the TLB; and

wherein the first address translation information comprises a representation of the first translation entry.

13. A system comprising:

a processing device comprising:

an instruction pipeline configured to, for each instruction of a set of instructions, provide a linear address information associated with the instruction in response to executing the instruction;

a translation lookaside buffer (TLB) configured to provide an address translation information in response to a modification of the TLB during execution of the set of instructions, the address translation information representative of the modification of the TLB; and

a trace module configured to generate a trace information stream for output from the processing device, the trace information stream including the linear address information and the address translation information.

14. The system of claim 13 , further comprising:

a debug module coupled to the processing device, the debug module configured to receive the trace information stream and to reconstruct an executed instruction history based on the trace information stream.

15. The system of claim 13 , wherein the linear address information associated with an instruction of the series of instructions comprises a representation of an instruction pointer associated with the instruction.

16. The system of claim 13 , wherein:

the modification of the TLB comprises an addition of a translation entry to the TLB; and

the address translation entry comprises a representation of the translation entry.

17. The system of claim 13 , wherein:

the modification of the TLB comprises an eviction of a translation entry from the TLB; and

the address translation entry comprises a representation of the translation entry.

18. The system of claim 13 , wherein:

the linear address information associated with an instruction comprises a representation of an instruction pointer associated with the instruction;

the address translation information associated with the modification of the TLB comprises a representation of a modified translation entry of the TLB; and

the trace information stream comprises a sequence of values, the sequence of values comprising a sequence of representations of instruction pointers and the representation of the modified translation entry.

19. The system of claim 13 , wherein a position of the representation of the modified translation entry in the sequence of values relative to the representations of instruction pointers corresponds to an occurrence of the modification of the TLB relative to the execution of instructions of the set of instructions.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2020
From: GLOBALFOUNDRIES INC.
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 054633/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
AFFIRMATION OF PATENT ASSIGNMENT Recorded Aug 18, 2009
From: ADVANCED MICRO DEVICES, INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 023119/0083 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2005
From: BARING-GOULD, SENGAN; JAROSH, DAVID
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 016556/0290 →