-
1.
公开(公告)号:US11281582B2
公开(公告)日:2022-03-22
申请号:US16742380
申请日:2020-01-14
Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
Inventor: Derek E. Williams , Guy L. Guthrie , William J. Starke , Hugh Shen
IPC: G06F12/0815
Abstract: A data processing system includes multiple processing units all having access to a shared memory system. A processing unit includes a lower level cache configured to serve as a point of systemwide coherency and a processor core coupled to the lower level cache. The processor core includes an upper level cache, an execution unit that executes a store-conditional instruction to generate a store-conditional request that specifies a store target address and store data, and a flag that, when set, indicates the store-conditional request can be completed early in the processor core. The processor core also includes completion logic configured to commit an update of the shared memory system with the store data specified by the store-conditional request based on whether the flag is set.
-
公开(公告)号:US11157409B2
公开(公告)日:2021-10-26
申请号:US16717868
申请日:2019-12-17
Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
Inventor: Derek E. Williams , Guy L. Guthrie , Hugh Shen , Luke Murray
IPC: G06F12/08 , G06F12/0817 , G06F12/0891 , G06F12/0842
Abstract: A cache memory includes a data array, a directory of contents of the data array that specifies coherence state information, and snoop logic that processes operations snooped from a system fabric by reference to the data array and the directory. The snoop logic, responsive to snooping on the system fabric a request of a first flush/clean memory access operation that specifies a target address, determines whether or not the cache memory has coherence ownership of the target address. Based on determining the cache memory has coherence ownership of the target address, the snoop logic services the request and thereafter enters a referee mode. While in the referee mode, the snoop logic protects a memory block identified by the target address against conflicting memory access requests by the plurality of processor cores until conclusion of a second flush/clean memory access operation that specifies the target address.
-
公开(公告)号:US11106608B1
公开(公告)日:2021-08-31
申请号:US16908272
申请日:2020-06-22
Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
Inventor: Derek E. Williams , Guy L. Guthrie , Hugh Shen , Sanjeev Ghai
Abstract: A processing unit includes a processor core that executes a store-conditional instruction that generates a store-conditional request specifying a store target address. The processing unit further includes a reservation register that records shared memory addresses for which the processor core has obtained reservations and a cache that services the store-conditional request by conditionally updating the shared memory with the store data based on the reservation register indicating a reservation for the store target address. The cache includes a blocking state machine configured to protect the store target address against access by any conflicting memory access request snooped on a system interconnect during a protection window extension following servicing of the store-conditional request. The cache is configured to vary a duration of the protection window extension for different snooped memory access requests based on one of broadcast scopes and the relative locations of masters of the snooped memory access requests.
-
公开(公告)号:US10831660B1
公开(公告)日:2020-11-10
申请号:US16455340
申请日:2019-06-27
Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
Inventor: Derek E. Williams , Guy L. Guthrie , Hugh Shen
IPC: G06F12/0811 , G06F12/0897 , G06F12/12 , G06F9/38 , G06F9/48 , G06F9/52 , G06F12/084
Abstract: A processing unit for a multiprocessor data processing system includes a processor core having an upper level cache and a lower level cache coupled to the processor core. The lower level cache includes one or more state machines for handling requests snooped from the system interconnect. The processing unit includes an interrupt unit configured to, based on receipt of an interrupt request while the processor core is in a powered up state, record which of the one or more state machines are active processing a prior snooped request that can invalidate a cache line in the upper level cache and present an interrupt to the processor core based on determining that each state machine that was active processing a prior snooped request that can invalidate a cache line in the upper level cache has completed processing of its respective prior snooped request.
-
公开(公告)号:US10346255B2
公开(公告)日:2019-07-09
申请号:US16108583
申请日:2018-08-22
Applicant: International Business Machines Corporation
Inventor: Guy Lynn Guthrie , Naresh Nayar , Geraint North , Hugh Shen , William Starke , Phillip Williams
IPC: G06F12/00 , G06F11/14 , G06F12/0806 , G06F9/455 , G06F12/0875 , G06F12/109 , G06F11/20 , G06F3/06 , G06F12/0804 , G06F12/0891 , G06F12/12
Abstract: A computer system comprises a processor unit arranged to run a hypervisor running one or more virtual machines; a cache connected to the processor unit and comprising a plurality of cache rows, each cache row comprising a memory address, a cache line and an image modification flag; and a memory connected to the cache and arranged to store an image of at least one virtual machine. The processor unit is arranged to define a log in the memory and the cache further comprises a cache controller arranged to set the image modification flag for a cache line modified by a virtual machine being backed up, but not for a cache line modified by the hypervisor operating in privilege mode; periodically check the image modification flags; and write only the memory address of the flagged cache rows in the defined log.
-
公开(公告)号:US10339009B2
公开(公告)日:2019-07-02
申请号:US16108236
申请日:2018-08-22
Applicant: International Business Machines Corporation
Inventor: Guy Lynn Guthrie , Naresh Nayar , Geraint North , Hugh Shen , William Starke , Phillip Williams
IPC: G06F12/00 , G06F11/14 , G06F12/0806 , G06F9/455 , G06F12/0875 , G06F12/109 , G06F11/20 , G06F3/06 , G06F12/0804 , G06F12/0891 , G06F12/12
Abstract: A computer system comprises a processor unit arranged to run a hypervisor running one or more virtual machines; a cache connected to the processor unit and comprising a plurality of cache rows, each cache row comprising a memory address, a cache line and an image modification flag; and a memory connected to the cache and arranged to store an image of at least one virtual machine. The processor unit is arranged to define a log in the memory and the cache further comprises a cache controller arranged to set the image modification flag for a cache line modified by a virtual machine being backed up, but not for a cache line modified by the hypervisor operating in privilege mode; periodically check the image modification flags; and write only the memory address of the flagged cache rows in the defined log.
-
公开(公告)号:US10152385B2
公开(公告)日:2018-12-11
申请号:US14903833
申请日:2014-07-03
Applicant: International Business Machines Corporation
Inventor: Guy Lynn Guthrie , Naresh Nayar , Geraint North , Hugh Shen , William Starke , Phillip Williams
IPC: G06F12/00 , G06F11/14 , G06F12/0806 , G06F9/455 , G06F12/0875 , G06F12/109 , G06F3/06 , G06F12/0804 , G06F12/0891 , G06F12/12 , G06F11/20
Abstract: A computer system comprises a processor unit arranged to run a hypervisor running one or more virtual machines; a cache connected to the processor unit and comprising a plurality of cache rows, each cache row comprising a memory address, a cache line and an image modification flag; and a memory connected to the cache and arranged to store an image of at least one virtual machine. The processor unit is arranged to define a log in the memory and the cache further comprises a cache controller arranged to set the image modification flag for a cache line modified by a virtual machine being backed up, but not for a cache line modified by the hypervisor operating in privilege mode; periodically check the image modification flags; and write only the memory address of the flagged cache rows in the defined log.
-
公开(公告)号:US09898416B2
公开(公告)日:2018-02-20
申请号:US14977889
申请日:2015-12-22
Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
Inventor: Guy L. Guthrie , Hugh Shen , Derek E. Williams
IPC: G06F12/00 , G06F9/26 , G06F9/34 , G06F12/10 , G06F9/52 , G06F12/0802 , G06F12/0808 , G06F12/0815 , G06F12/084 , G06F12/1045 , G06F12/0842
CPC classification number: G06F12/10 , G06F9/524 , G06F12/08 , G06F12/0802 , G06F12/0808 , G06F12/0811 , G06F12/0815 , G06F12/084 , G06F12/0842 , G06F12/0891 , G06F12/1027 , G06F12/1045 , G06F2212/1024 , G06F2212/251 , G06F2212/62 , G06F2212/621 , G06F2212/682 , G06F2212/683
Abstract: In a multithreaded data processing system including a plurality of processor cores and a system fabric, translation entries can be invalidated without deadlock. A processing unit forwards translation invalidation request(s) received on the system fabric to a processor core via a non-blocking channel. Each of the translation invalidation requests specifies a respective target address and requests invalidation of any translation entry in the processor core that translates its respective target address. Responsive to a translation snoop machine of the processing unit snooping broadcast of a synchronization request on the system fabric of the data processing system, the translation synchronization request is presented to the processor core, and the translation snoop machine remains in an active state until a signal confirming completion of processing of the one or more translation invalidation requests and the synchronization request at the processor core is received and thereafter returns to an inactive state.
-
公开(公告)号:US09858188B2
公开(公告)日:2018-01-02
申请号:US14733665
申请日:2015-06-08
Applicant: International Business Machines Corporation
Inventor: Guy L. Guthrie , Hien M. Le , Hugh Shen , Derek E. Williams , Phillip G. Williams
IPC: G06F12/08 , G06F12/0831 , G06F12/0862
CPC classification number: G06F12/0831 , G06F12/0862 , G06F2212/621 , Y02D10/13
Abstract: Statistical data is used to enable or disable snooping on a bus of a processor. A command is received via a first bus or a second bus communicably coupling processor cores and caches of chiplets on the processor. Cache logic on a chiplet determines whether or not a local cache on the chiplet can satisfy a request for data specified in the command. In response to determining that the local cache can satisfy the request for data, the cache logic updates statistical data maintained on the chiplet. The statistical data indicates a probability that the local cache can satisfy a future request for data. Based at least in part on the statistical data, the cache logic determines whether to enable or disable snooping on the second bus by the local cache.
-
公开(公告)号:US09830198B2
公开(公告)日:2017-11-28
申请号:US14977867
申请日:2015-12-22
Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
Inventor: Guy L. Guthrie , Hugh Shen , Derek E. Williams
IPC: G06F9/52 , G06F12/0831 , G06F12/0808
CPC classification number: G06F9/524 , G06F9/522 , G06F12/08 , G06F12/0808 , G06F12/0833 , G06F12/1027 , G06F2212/1024 , G06F2212/682 , G06F2212/683
Abstract: In a multithreaded data processing system including a plurality of processor cores, storage-modifying and synchronization requests of a plurality of concurrently executing hardware threads are received in a shared queue. The plurality of storage-modifying requests includes a translation invalidation request of an initiating hardware thread, and the synchronization requests includes a synchronization request of the initiating hardware thread. The translation invalidation request is broadcast such that the translation invalidation request is received and processed by the plurality of processor cores to invalidate any translation entry that translates a target address of the translation invalidation request. In response to receiving the synchronization request in the shared queue, the synchronization request is removed from the shared queue, buffered in sidecar logic, iteratively broadcast until all of the plurality of processor cores have completed processing the translation invalidation request, and thereafter removed from the sidecar logic.
-
-
-
-
-
-
-
-
-