IP Library Granted Patent US 11,068,397
Granted Patent B2
US 11,068,397 · App. 16/374,800 · Granted Jul 20, 2021

Accelerator sharing

Inventors: Peng Fei BG Gou (Shanghai, CN); Yang Liu (Shanghai, CN); Yang Fan EL Liu (Shanghai, CN); Yong Lu (Shanghai, CN)
Assignee: International Business Machines Corporation
G06F12/0813G06F12/0824G06F2212/1021G06F2212/154G06F2212/62
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,068,397
App. No.
16/374,800
Granted
Jul 20, 2021
Kind
B2
Abstract

Disclosed aspects relate to accelerator sharing among a plurality of processors through a plurality of coherent proxies. The cache lines in a cache associated with the accelerator are allocated to one of the plurality of coherent proxies. In a cache directory for the cache lines used by the accelerator, the status of the cache lines and the identification information of the coherent proxies to which the cache lines are allocated are provided. Each coherent proxy maintains a shadow directory of the cache directory for the cache lines allocated to it. In response to receiving an operation request, a coherent proxy corresponding to the request is determined. The accelerator communicates with the determined coherent proxy for the request.

Claims (43)

1. A device for sharing an accelerator among a plurality of processors, the device comprising:

a local store for storing cache allocation information indicating allocation of cache lines to one of a plurality of coherent proxies; and

a cache directory for the cache lines used by the accelerator, the cache directory providing a status of the cache lines and identification information of the coherent proxies to which the cache lines are allocated,

wherein, in response to receiving an operation request, the device determines a presence of a cache line within the cache directory, determines a coherent proxy of the plurality of coherent proxies corresponding to the request based on the cache line, and communicates with the coherent proxy for the request.

2. The device of claim 1 , wherein determining the presence of the cache line further comprises:

determining the cache line is absent from the cache directory; and

identifying the operation request as a cache-miss request.

3. The device of claim 1 , wherein determining the presence of the cache line further comprises:

determining the cache line is present within the cache directory; and

identifying the operation request as a cache-hit request.

4. The device of claim 1 , wherein each coherent proxy maintains a shadow directory for cache lines allocated to that coherent proxy, the device further configured to:

in response to communication associated with the operation request, update a cache line status of a cache line within the shadow directory of the coherent proxy corresponding to the operation request.

5. The device of claim 4 , wherein the accelerator maintains a cache with a local store for storing cache allocation information, and each shadow directory includes a subset of cache lines and cache line status information of the cache of the accelerator, the subset of cache lines and cache line status information being associated with the coherent proxy maintaining the shadow directory.

6. A method for sharing an accelerator among a plurality of processors, the method comprising:

obtaining cache allocation information indicating allocation of cache lines to one of a plurality of coherent proxies;

in a cache directory for the cache lines, providing a status of the cache lines and identification information of the coherent proxies to which the cache lines are allocated;

in response to receiving an operation request, determining a presence of a cache line within the cache directory;

based on the cache line, determining a coherent proxy of the plurality of coherent proxies corresponding to the request; and

communicating with the coherent proxy for the request.

7. The method of claim 6 , wherein determining the presence of the cache line further comprises:

determining the cache line is absent from the cache directory; and

identifying the operation request as a cache-miss request.

8. The method of claim 6 , wherein determining the presence of the cache line further comprises:

determining the cache line is present within the cache directory; and

identifying the operation request as a cache-hit request.

9. The method of claim 6 , wherein each coherent proxy maintains a shadow directory for cache lines allocated to that coherent proxy, the method further comprising:

in response to communication associated with the operation request, updating a cache line status of a cache line within the shadow directory of the coherent proxy corresponding to the operation request.

10. The method of claim 9 , wherein the accelerator maintains a cache with a local store for storing cache allocation information, and each shadow directory includes a subset of cache lines and cache line status information of the cache of the accelerator, the subset of cache lines and cache line status information being associated with the coherent proxy maintaining the shadow directory.

11. A computer program product being tangibly stored on a non-transient machine-readable medium and comprising machine-executable instructions for sharing an accelerator among a plurality of processors, the instructions, when executed on a device, cause the device to perform operations comprising:

obtaining cache allocation information indicating allocation of cache lines to one of a plurality of coherent proxies;

in a cache directory for the cache lines, providing a status of the cache lines and identification information of the coherent proxies to which the cache lines are allocated;

in response to receiving an operation request, determining a presence of a cache line within the cache directory;

based on the cache line, determining a coherent proxy of the plurality of coherent proxies corresponding to the request; and

communicating with the coherent proxy for the request.

12. The computer program product of claim 11 , wherein determining the presence of the cache line further comprises:

determining the cache line is absent from the cache directory; and

identifying the operation request as a cache-miss request.

13. The computer program product of claim 11 , wherein determining the presence of the cache line further comprises:

determining the cache line is present within the cache directory; and

identifying the operation request as a cache-hit request.

14. The computer program product of claim 11 , wherein each coherent proxy maintains a shadow directory for cache lines allocated to that coherent proxy, the operations further comprising:

in response to communication associated with the operation request, updating a cache line status of a cache line within the shadow directory of the coherent proxy corresponding to the operation request.

15. The computer program product of claim 14 , wherein the accelerator maintains a cache with a local store for storing cache allocation information, and each shadow directory includes a subset of cache lines and cache line status information of the cache of the accelerator, the subset of cache lines and cache line status information being associated with the coherent proxy maintaining the shadow directory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2019
From: GOU, PENG FEI BG; LIU, YANG; LIU, YANG FAN EL; LU, YONG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048789/0896 →
Continuity (2)
Continuation 15335724 · Oct 27, 2016
Related Publication 20190227933A1 · Jul 25, 2019
Cited By (3)
US 12,197,350 US 12,541,456 US 12,632,385