发明名称 Cache as point of coherence in multiprocessor system
摘要 In a multiprocessor system, a conflict checking mechanism is implemented in the L2 cache memory. Different versions of speculative writes are maintained in different ways of the cache. A record of speculative writes is maintained in the cache directory. Conflict checking occurs as part of directory lookup. Speculative versions that do not conflict are aggregated into an aggregated version in a different way of the cache. Speculative memory access requests do not go to main memory.
申请公布号 US9507647(B2) 申请公布日期 2016.11.29
申请号 US201113008531 申请日期 2011.01.18
申请人 GLOBALFOUNDRIES INC. 发明人 Blumrich Matthias A.;Ceze Luis H.;Chen Dong;Gara Alan;Heidelberger Phlip;Ohmacht Martin;Steinmacher-Burow Burkhard;Zhuang Xiaotong
分类号 G06F12/00;G06F13/00;G06F13/28;G06F9/52;G06F12/08 主分类号 G06F12/00
代理机构 Scully, Scott, Murphy & Presser, P.C. 代理人 Scully, Scott, Murphy & Presser, P.C.
主权项 1. A method for managing memory accesses in a multiprocessor system, the method comprising carrying out operations within the system, the operations comprising: running a plurality of threads in parallel in a plurality of parallel processors; holding speculative writes in a cache memory, the holding including: providing a data storage in the cache memory to each of the plurality of threads;generating a read or write cache memory access footprint per a request of each of the plurality of thread accessing the provided data storage, the footprint including bits indicating: a type of the request of each of the plurality of threads, a size of a cache line associated with the request of each of the plurality of threads, an atomic operation code associated with the request of each of the plurality of threads, and what section of the cache line is to be accessed by the request of each of the plurality of threads;reading, by the each of the plurality of threads from the provided data storage, a first speculative write performed by the each of the plurality of threads and a second speculative write performed by a first thread spawned earlier than the each of the plurality of threads in an execution order of a program associated with the each of the plurality of threads;preventing the each of the plurality of threads from reading a third speculative write performed by a second thread spawned later than the each of the plurality of threads in the execution order of the program;maintaining, based on the first speculative write of the each of the plurality of threads, multiple data values in the cache line of the cache memory;allowing non-speculative writes to go to main memory; andmaintaining a conflict record in the cache memory with respect to the speculative writes, the maintaining the conflict record including: performing a conflict checking, the performing including: evaluating whether there exists an overlap between the generated footprint and dirty bits of the cache line associated with each request of the plurality of threads;if there exists the overlap, determining that there exists no conflict;otherwise, determining that there exists the conflict;combining the multiple data values in the cache line associated with each request of the plurality of threads if there exists no conflict between the multiple data values.
地址 Grand Cayman KY