IP Library › Granted Patent US 11,693,588
Granted Patent B2
US 11,693,588 · App. 15/929,272 · Granted Jul 4, 2023

Precise longitudinal monitoring of memory operations

Inventors: Ahmad Yasin (Haifa, IL); Michael Chynoweth (Placitas, NM); Rajshree Chabukswar (Sunnyvale, CA); Muhammad Taher (Umm El Fahm, IL)
Assignee: Intel Corporation
G06F3/0656G06F3/0604G06F3/0653G06F3/0673G06F11/3466
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,693,588
App. No.
15/929,272
Granted
Jul 4, 2023
Kind
B2
Abstract

A processor includes a memory subunit that includes a status register and an execution engine unit to: randomly select a load operation to monitor; determine a re-order buffer identifier of the load operation; and transmit the re-order buffer identifier to the memory subsystem. Responsive to receipt of the re-order buffer identifier, the first memory subunit is to store a piece of information, related to a status of the load operation, in the status register. The processor also includes logic to, responsive to detection of retirement of the load operation, store memory information in memory-related fields of a record of a memory buffer. The memory information includes auxiliary information (AUX) and access latency information, wherein one of the auxiliary information or the access latency information includes the piece of information, from the status register, stored in a particular field of the memory-related fields.

Claims (47)

1. A processor comprising:

a memory subsystem comprising a first memory subunit;

an execution engine unit coupled to the memory subsystem, the execution engine unit to:

select a load operation to monitor;

determine an identifier of the load operation; and

transmit the identifier to the memory subsystem; and

wherein, responsive to receipt of the identifier, the first memory subunit is to store a piece of information, related to a status of the load operation; and

logic coupled to the memory subsystem, the logic to, responsive to detection of retirement of the load operation, store memory information in memory-related fields of a record of a memory buffer, the memory information comprising auxiliary information (AUX) and access latency information, wherein one of the auxiliary information or the access latency information includes the piece of information stored in a particular field of the memory-related fields.

2. The processor of claim 1 , wherein the auxiliary information comprises data stored in a scratch control register (SCR) and the memory information further comprises a data load address (DLA) for the load operation.

3. The processor of claim 1 , wherein the first memory subunit is a data translation lookaside buffer and the piece of information, of the auxiliary information, is a DTLB-miss bit indicating whether a miss occurred at the data translation lookaside buffer.

4. The processor of claim 1 , wherein the first memory subunit is a memory ordering buffer and the piece of information, of the auxiliary information, is a STORE_FWD_BLK bit indicating whether the load operation is blocked due to an address collision with an earlier store operation.

5. The processor of claim 1 , wherein the first memory subunit is a memory ordering buffer and the piece of information, of the auxiliary information, is a STORE_ADDR_BLK bit indicating an unknown store address block of the load operation.

6. The processor of claim 1 , wherein the access latency information comprises an instruction latency value that records a number of clock cycles to complete the load operation.

7. The processor of claim 1 , wherein the first memory subunit is a data cache unit and the piece of information, of the access latency information, is a cache latency value of clock cycles for cache access during execution of the load operation.

8. The processor of claim 1 , wherein the logic is further to store transaction information related to transaction synchronization extensions (TSX) architecture in a particular field of the memory-related fields of the record.

9. A system comprising:

a memory from which to retrieve data to complete load operations;

a processor coupled to the memory, the processor comprising:

a memory subsystem coupled to the memory, wherein the memory subsystem comprises a plurality of memory subunits; and

an execution engine unit coupled to the memory subsystem, the execution engine unit to:

select a load operation to monitor from the load operations, the load operation associated with a thread currently executed by the processor;

determine an identifier of the load operation; and

transmit the identifier to the memory subsystem;

wherein, responsive to receipt of the identifier, each of the plurality of memory subunits is to store a piece of information, related to a status of the load operation; and

logic coupled to the memory subsystem, the logic to, responsive to detection of retirement of the load operation, store memory information in memory-related fields of a record of a memory buffer, the memory information comprising auxiliary information (AUX) and access latency information, wherein each piece of information is stored in one of the auxiliary information or the access latency information in particular fields of the memory-related fields.

10. The system of claim 9 , wherein the auxiliary information comprises data stored in a scratch control register (SCR) and the memory information further comprises a data load address (DLA) for the load operation.

11. The system of claim 9 , wherein the plurality of memory subunits comprises a data translation lookaside buffer and a corresponding piece of information, is a DTLB-miss bit indicating whether a miss occurred at the data translation lookaside buffer.

12. The system of claim 9 , wherein the plurality of memory subunits comprises a memory ordering buffer and a corresponding piece of information, of the auxiliary information, is a STORE_FWD_BLK bit indicating whether the load operation is blocked due to an address collision with an earlier store operation.

13. The system of claim 9 , wherein the plurality of memory subunits comprises a memory ordering buffer and a corresponding piece of information, of the auxiliary information, is a STORE_ADDR_BLK bit indicating an unknown store address block of the load operation.

14. The system of claim 9 , wherein the access latency information comprises an instruction latency value that records a number of clock cycles to complete the load operation.

15. The system of claim 9 , wherein the plurality of memory subunits comprises a data cache unit and a corresponding piece of information, of the access latency information, is a cache latency value of clock cycles for cache access during execution of the load operation.

16. The system of claim 9 , wherein the memory subsystem is further to store transaction information related to transaction synchronization extensions (TSX) architecture in a particular field of the memory-related fields of the record.

17. A method comprising:

selecting, by an execution engine unit coupled to a memory subsystem of a processor, a load operation to monitor;

determining, by the execution engine unit, an identifier of the load operation;

transmitting, by the execution engine unit, the identifier to the memory subsystem;

storing, by a first memory subunit of the memory subsystem, responsive to receipt of the identifier, a piece of information related to a status of the load operation; and

storing, by the processor in response to detecting retirement of the load operation, memory information in memory-related fields of a record of a memory buffer, the memory information comprising auxiliary information (AUX) and access latency information, wherein one of the auxiliary information or the access latency information includes the piece of information stored in a particular field of the memory-related fields.

18. The method of claim 17 , wherein the first memory subunit comprises a memory ordering buffer, the method further comprising:

detecting, by the memory ordering buffer, the load operation is blocked by a preceding store forward operation with an overlapping linear address, wherein the piece of information is an indication of a store forward block of the load operation; and

setting, by the processor, a STORE_FWD_BLK bit of the auxiliary information of the memory-related fields of the record.

19. The method of claim 17 , wherein the first memory subunit is a memory ordering buffer, the method further comprising:

detecting, by the memory ordering buffer, the load operation is blocked due to an address collision with an earlier store operation, wherein the piece of information is an indication of a store address block of the load operation; and

setting, by the processor, a STORE_ADDR_BLK bit of the auxiliary information of the memory-related fields of the record.

20. The method of claim 17 , wherein the first memory subunit is a data cache unit, the method further comprising:

tracking, by the data cache unit, a number of clock cycles for cache access during execution of the load operation, wherein the piece of information is a cache latency value; and

storing, by the processor, the cache latency value to a subset of particular fields of the memory-related fields of the record.

Continuity (2)
Continuation 16177642 · Nov 1, 2018
Related Publication 20200249866A1 · Aug 6, 2020