Cache interface protocol including arbitration and hints
AssigneeNVIDIA Corporation
InventorsAlexander L. Minkin, Steven J. Heinrich, Rajeshwaran Selvanesan, Charles McCarver, Stewart Glenn Carlton, Anjana Rajendran, Yan Yan Tang
Life of this patent
Estimating the term…
Abstract
One embodiment of the present invention sets forth a technique for arbitrating requests received from one of the multiple clients of an L1 cache and for providing hints to the client to assist in arbitration. The L1 cache services multiple clients with diverse latency and bandwidth requirements and may be reconfigured to provide memory spaces for clients executing multiple parallel threads, where the memory spaces each have a different scope.
Claims20
A method for interfacing between a level-one (L1) cache and multiple clients that share the L1 cache, comprising:
- preparing a request by one of the multiple clients for output to the L1 cache, the request specifying a read operation, a write operation, or a read/write (read and write) operation;
- receiving hint information by the one of the multiple clients from the L1 cache;
- determining that a read bubble, a write bubble, or a read/write bubble should be inserted into the request based on the hint information;
- updating the request to produce an updated request by:
- removing the read operation when the hint information specifies that the read bubble should be inserted into the request,
- removing the write operation when the hint information specifies that the write bubble should be inserted into the request, or
- removing the read/write operation when the hint information specifies that the read/write bubble should be inserted into the request;
- and
- outputting the updated request to the L1 cache.
A computer-readable storage medium storing instructions that, when executed by a processor including a level-one (L1) cache and multiple clients, cause the multiple clients to interface with the L1 cache, by performing the steps of:
- preparing a request by one of the multiple clients for output to the L1 cache, the request specifying a read operation, a write operation, or a read/write (read and write) operation;
- preparing a request by one of the multiple clients for output to the L1 cache, the request specifying a read operation, a write operation, or a read/write (read and write) operation;
- receiving hint information by the one of the multiple clients from the L1 cache;
- determining that a read bubble, a write bubble, or a read/write bubble should be inserted into the request based on the hint information;
- updating the request to produce an updated request by:
- removing the read operation when the hint information specifies that the read bubble should be inserted into the request,
- removing the write operation when the hint information specifies that the write bubble should be inserted into the request, or
- removing the read/write operation when the hint information specifies that the read/write bubble should be inserted into the request;
- and
- outputting the updated request to the L1 cache.
A system for interfacing between a level-one (L1) cache and multiple clients that share the L1 cache, the system comprising:
- the L1 cache;
- and
- the multiple clients that are coupled to the L1 cache, wherein a first client of the multiple clients is configured to:
- prepare a request by one of the multiple clients for output to the L1 cache, the request specifying a read operation, a write operation, or a read/write (read and write) operation;
- receive hint information by one of the multiple clients from the L1 cache;
- determine that a read bubble, a write bubble, or a read/write bubble should be inserted into the request based on the hint information;
- update the request to produce an updated request by:
- removing the read operation when the hint information specifies that the read bubble should be inserted into the request,
- removing the write operation when the hint information specifies that the write bubble should be inserted into the request, or
- removing the read/write operation when the hint information specifies that the read/write bubble should be inserted into the request;
- and
- output the updated request to the L1 cache.
A computing device, comprising:
- a processing unit;
- and
- a subsystem that includes:
- an L1 cache, and
- multiple clients that are coupled to the L1 cache, wherein a first client of the multiple clients is configured to:
- prepare a request by one of the multiple clients for output to the L1 cache, the request specifying a read operation, a write operation, or a read/write (read and write) operation,
- receive hint information by one of the multiple clients from the L1 cache,
- determine that a read bubble, a write bubble, or a read/write bubble should be inserted into the request based on the hint information,
- update the request to produce an updated request by:
- removing the read operation when the hint information specifies that the read bubble should be inserted into the request,
- removing the write operation when the hint information specifies that the write bubble should be inserted into the request, or
- removing the read/write operation when the hint information specifies that the read/write bubble should be inserted into the request, and
- output the updated request to the L1 cache.
Dependencies are inferred from the claim text.