Reader set encoding for directory of shared cache memory in multiprocessor system
AssigneeInternational Business Machines Corporation
InventorsDaniel Ahn, Luis H. Ceze, Alan Gara, Martin Ohmacht, Zhuang Xiaotong
Life of this patent
Estimating the term…
Abstract
In a parallel processing system with speculative execution, conflict checking occurs in a directory lookup of a cache memory that is shared by all processors. In each case, the same physical memory address will map to the same set of that cache, no matter which processor originated that access. The directory includes a dynamic reader set encoding, indicating what speculative threads have read a particular line. This reader set encoding is used in conflict checking. A bitset encoding is used to specify particular threads that have read the line.
Claims25
In a multiprocessor system comprising
- a plurality of processors running speculative threads in parallel;
- and
- 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 record comprising for each cache line a format specification indication specifying a reader encoding format responsive to whether a read access has occurred and/or what type of read access has occurred;
- directing memory accesses for a same physical address from any of 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.
A multiprocessor system, comprising
- a plurality of processors adapted to carry out speculative execution in parallel;
- at least one data pathway adapted to direct all memory accesses for a same physical address to a shared cache resource;
- a cache memory comprising
- the shared cache resource and
- a directory based conflict checking mechanism, the mechanism comprising a reader set encoding format that dynamically represents threads that have read from the shared resource and/or types of read accesses to the shared resource that have occurred.
Dependencies are inferred from the claim text.