IP Library Granted Patent US 8,868,837
Granted Patent B2
US 8,868,837 · App. 13/008,602 · Granted Oct 21, 2014

Cache directory lookup reader set encoding for partial cache line speculation support

Inventors: Alan Gara (Mount Kisco, NY); Martin Ohmacht (Yorktown Heights, NY)
Assignee: International Business Machines Corporation
G06F12/08
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,868,837
App. No.
13/008,602
Granted
Oct 21, 2014
Kind
B2
Abstract

In a multiprocessor system, with conflict checking implemented in a directory lookup of a shared cache memory, a reader set encoding permits dynamic recordation of read accesses. The reader set encoding includes an indication of a portion of a line read, for instance by indicating boundaries of read accesses. Different encodings may apply to different types of speculative execution.

Claims (29)

1. In a multiprocessor system comprising

a plurality of processors running speculative threads in parallel;

at least one cache shared by the processors,

a method comprising:

in a control unit of the cache, maintaining a dynamic record of read accesses to the cache, the dynamic record comprising an indication of an encoding of a superset of speculative reading threads and access footprints of those processes within a cache line; said encoding of a superset of speculative reading threads and access footprints including a multi-bit field, each bit of said field representing a group of IDs, wherein an aggregate of all IDs is represented as the aggregate of all bits of this field; and a bit set in a field representing the cache line has been read by at least one ID of a corresponding group;

directing memory accesses for a same physical address from all the processors through a same memory addressing scheme of the control unit; and

performing conflict checking for all the processors of the system using the record to locate potential conflicts.

2. The method of claim 1 , wherein each speculative thread identifier comprises a speculative thread identification number, said indication further comprising an associated read access boundary.

3. The method of claim 2 , wherein the indication comprises an identification of both a left and right boundary, wherein said first speculative thread ID reads from an associated leftmost read access boundary to an end of said single cache line, and said second speculative thread ID reads from an associated rightmost read access boundary to a beginning of said single cache line.

4. The method of claim 1 , wherein for two or more speculative threads having an age order, the indication comprises an identification of youngest and oldest reading threads along with left and right boundaries of an aggregation of all accesses recorded.

5. The method of claim 1 , wherein an access to less than a doubleword is treated as an access to the whole doubleword.

6. The method of claim 1 , wherein the identification comprises an encoding of a superset of a footprint by storing left and right boundaries of the footprint.

7. The method of claim 3 , wherein the identification comprises encoding a superset of two footprints by storing a gap between two footprints or overlap of two footprints.

8. The method of claim 7 , comprising storing the footprint boundaries facing the other footprint.

9. The method of claim 1 , wherein the control unit comprises a cache directory mechanism for storing the record.

10. A multiprocessor system comprising:

a plurality of processors adapted to run threads in parallel;

at least one data path directing all memory access requests from the processors and relating to a same physical address to a shared cache resource; and

at least one cache memory, shared by the processors, comprising a control unit adapted to perform operations comprising:

conflict checking for the processors, and

maintaining at least one dynamic record associated with at least one line of cache and comprising an indication of an encoding of a superset of speculative reading threads and access footprints of those processes within a cache line; said encoding of a superset of speculative reading threads and access footprints including a multi-bit field, each bit of said field representing a group of IDs, wherein an aggregate of all IDs is represented as the aggregate of all bits of this field; and a bit set in a field representing the cache line has been read by at least one ID of a corresponding group.

11. The system of claim 10 , wherein each speculative thread identifier comprises a speculative thread identification number, said indication further comprising an associated read access boundary.

12. The system of claim 11 , wherein the indication comprises an identification of both a left and right boundary, wherein said first speculative thread ID reads from an associated leftmost read access boundary to an end of said single cache line, and said second speculative thread ID reads from an associated rightmost read access boundary to a beginning of said single cache line.

13. The system of claim 12 , wherein for two or more speculative threads having an age order, the indication comprises an identification of youngest and oldest reading threads along with left and right boundaries of an aggregation of all accesses recorded.

14. The system of claim 10 , wherein an access to less than a doubleword is treated as an access to the whole doubleword.

15. The system of claim 10 , wherein the identification comprises an encoding of a superset of a footprint by storing left and right boundaries of the footprint.

16. The system of claim 12 , wherein the identification comprises an encoding a superset of two footprints by storing a gap between two footprints or overlap of two footprints.

17. The system of claim 16 , comprising storing the footprint boundaries facing the other footprint.

18. The system of claim 10 , wherein the control unit comprises a speculative reader cache directory mechanism for storing the record.

Assignments (8)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
CONFIRMATORY LICENSE Recorded Jun 8, 2013
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 030583/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2011
From: GARA, ALAN; OHMACHT, MARTIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026314/0607 →
Continuity (3)
Provisional Application 61299911 · Jan 29, 2010
Provisional Application 61295669 · Jan 15, 2010
Related Publication 20110219187A1 · Sep 8, 2011