Real time instruction trace processors, methods, and systems

US9262163B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9262163-B2
Application numberUS-201213730834-A
CountryUS
Kind codeB2
Filing dateDec 29, 2012
Priority dateDec 29, 2012
Publication dateFeb 16, 2016
Grant dateFeb 16, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method of an aspect includes generating real time instruction trace (RTIT) packets for a first logical processor of a processor. The RTIT packets indicate a flow of software executed by the first logical processor. The RTIT packets are stored in an RTIT queue corresponding to the first logical processor. The RTIT packets are transferred from the RTIT queue to memory predominantly with firmware of the processor. Other methods, apparatus, and systems are also disclosed.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor comprising: at least a first logical processor; and real time instruction trace (RTIT) logic coupled with the first logical processor, the RTIT logic including: RTIT packetizer logic to generate RTIT packets for the first logical processor, the RTIT packets to indicate a flow of software executed by the first logical processor; an RTIT queue corresponding to the first logical processor, the RTIT queue coupled with the RTIT packetizer logic, the RTIT queue to store the RTIT packets; and RTIT queue contents transfer logic coupled with the RTIT queue, the RTIT queue contents transfer logic to transfer the RTIT packets to memory, wherein the RTIT queue contents transfer logic is implemented predominantly in firmware. 2. The processor of claim 1 , wherein the RTIT queue contents transfer logic comprises a firmware service sub-routine. 3. The processor of claim 1 , wherein the RTIT queue contents transfer logic is to transfer the RTIT packets to a set of architectural registers and then transfer the RTIT packets from the set of architectural registers to the memory through a store operation. 4. The processor of claim 3 , wherein the store operation comprises one selected from an uncacheable speculative write combining operation and a cacheable store operation. 5. The processor of claim 1 , wherein at least a portion of the RTIT queue is capable of being configured as a last branch record (LBR). 6. The processor of claim 1 , further comprising a non-renamed bus coupled with the RTIT packetizer logic, the non-renamed bus having a width in bits that is at least as large as a width of a line of the RTIT queue. 7. The processor of claim 1 , wherein a size of the RTIT queue ranges from 0.3 to 4 kilobytes corresponding to the first logical processor. 8. The processor of claim 7 , wherein the size of the RTIT queue ranges from 0.4 to 4 kilobytes corresponding to the first logical processor. 9. The processor of claim 1 , wherein the RTIT packetizer logic is implemented predominantly in hardware. 10. The processor of claim 1 , wherein the RTIT packetizer logic is to perform an intermediate level of compression in which non-operations (NOPs) are left between RTIT packets in the RRQ. 11. The processor of claim 1 , wherein the RTIT packetizer logic is to store packets of a given type in fixed locations of chunks. 12. The processor of claim 1 , wherein the RTIT logic is to provide a level of intrusiveness that ranges from 2% to 20% for the first logical processor. 13. A method comprising: generating real time instruction trace (RTIT) packets for a first logical processor of a processor, the RTIT packets to indicate a flow of software executed by the first logical processor; storing the RTIT packets in an RTIT queue corresponding to the first logical processor; and transferring the RTIT packets from the RTIT queue to memory with predominantly firmware of the processor. 14. The method of claim 13 , wherein transferring comprises transferring the RTIT packets with a firmware service sub-routine. 15. The method of claim 13 , wherein transferring comprises: transferring the RTIT packets from the RTIT queue to a set of architectural registers; and transferring the RTIT packets from the set of architectural registers to the memory through a store operation. 16. The method of claim 15 , wherein transferring comprises transferring the RTIT packets from the set of architectural registers to the memory through a store operation selected from an uncacheable speculative write combining operation and a cacheable store operation. 17. The method of claim 13 , further comprising using at least a portion of the RTIT queue as a last branch record (LBR). 18. The method of claim 13 , further comprising transmitting a line of the RTIT queue on a non-renamed bus having a width in bits that is at least as wide as a width of the line of the RTIT queue. 19. The method of claim 13 , wherein storing comprises storing the RTIT packets in an RTIT queue having a size that ranges from 0.3 to 4 kilobytes corresponding to the first logical processor. 20. The method of claim 19 , wherein the size of the RTIT queue ranges from 0.4 to 4 kilobytes corresponding to the first logical processor. 21. The method of claim 13 , wherein generating the RTIT packets is performed predominantly by hardware of the processor. 22. The method of claim 13 , wherein storing the RTIT packets in the RTIT queue leaves non-operations (NOPs) between RTIT packets. 23. The method of claim 13 , further comprising providing a level of intrusiveness of RTIT that ranges from 2% to 20% for the first logical processor. 24. A system comprising: an interconnect; a dynamic random access memory (DRAM) coupled with the interconnect; and a processor coupled with the interconnect, the processor including: at least a first logical processor; and real time instruction trace (RTIT) logic coupled with the first logical processor, the RTIT logic including: RTIT packetizer logic to generate RTIT packets for the first logical processor, the RTIT packets to indicate a flow of software executed by the first logical processor; an RTIT queue corresponding to the first logical processor, the RTIT queue coupled with the RTIT packetizer logic, the RTIT queue to store the RTIT packets; and RTIT queue contents transfer logic coupled with the RTIT queue, the RTIT queue contents transfer logic to transfer the RTIT packets to the DRAM, wherein the RTIT queue contents transfer logic is implemented predominantly in fin ware of the processor. 25. The system of claim 24 , wherein the RTIT queue contents transfer logic comprises a firmware service sub-routine, and wherein the RTIT queue contents transfer logic is to transfer the RTIT packets to a set of architectural registers and then transfer the RTIT packets from the set of architectural registers to the DRAM through a store operation. 26. The system of claim 24 , wherein at least a portion of the RTIT queue is capable of being configured as a last branch record (LBR), and further comprising a non-renamed bus coupled with the RTIT packetizer logic, the non-renamed bus having a width in bits that is at least as large as a width of a line of the RTIT queue. 27. A processor comprising: a real time instruction trace (RTIT) queue to store RTIT packets for a first logical processor, the RTIT packets to indicate a flow of software executed by the first logical processor; and RTIT queue contents transfer logic coupled with the RTIT queue, the RTIT queue contents transfer logic to: transfer the RTIT packets from the RTIT queue to a set of architectural registers; and transfer the RTIT packets from the set of architectural registers to memory through a store operation. 28. The processor of claim 27 , wherein the RTIT queue contents transfer logic comprises a firmware service sub-routine. 29. The processor of claim 27 , wherein at least a portion of the RTIT queue is capable of being configured as a last branch record (LBR).

Assignees

Inventors

Classifications

  • Electrical coupling · CPC title

  • Monitoring of software · CPC title

  • Address tracing · CPC title

  • Instruction analysis, e.g. decoding, instruction word fields · CPC title

  • Error detection; Error correction; Monitoring (error detection, correction or monitoring in information storage based on relative movement between record carrier and transducer G11B20/18; monitoring, i.e. supervising the progress of recording or reproducing G11B27/36; in static stores G11C29/00) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9262163B2 cover?
A method of an aspect includes generating real time instruction trace (RTIT) packets for a first logical processor of a processor. The RTIT packets indicate a flow of software executed by the first logical processor. The RTIT packets are stored in an RTIT queue corresponding to the first logical processor. The RTIT packets are transferred from the RTIT queue to memory predominantly with firmwar…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F11/3471. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 16 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).