Distributed cache with in-network prefetch
AssigneeWestern Digital Technologies, Inc.
InventorsMarjan Radi, Dejan Vucinic
Life of this patent
Estimating the term…
Abstract
A programmable switch receives a cache line request from a client of a plurality of clients on a network to obtain a cache line. One or more additional cache lines are identified based on the received cache line request and prefetch information. The cache line and the one or more additional cache lines are requested from one or more memory devices on the network. The requested cache line and the one or more additional cache lines are received from the one or more memory devices, and are sent to the client.
Claims28
A programmable switch, comprising:
- a plurality of ports for communication with devices on a network;
- and
- circuitry configured to:
- receive program instructions to program the programmable switch for processing packets within the network;
- receive a cache line request from a client of a plurality of clients on the network to obtain a cache line;
- identify one or more additional cache lines to obtain based on the received cache line request and prefetch information received from a host in communication with the programmable switch, in accordance with the received program instructions;
- request the cache line and the identified one or more additional cache lines from one or more memory devices on the network via one or more ports of the plurality of ports;
- receive the requested cache line and the one or more additional cache lines from the one or more memory devices;
- and
- send the requested cache line and the one or more additional cache lines to the client.
A method of providing a distributed cache, the method comprising:
- receiving a cache line request from a client of a plurality of clients on a network to obtain a cache line;
- identifying one or more additional cache lines to obtain based on the received cache line request and prefetch information;
- requesting the cache line and the identified one or more additional cache lines from one or more memory devices on the network;
- receiving the requested cache line and the one or more additional cache lines from the one or more memory devices;
- and
- sending the requested cache line and the one or more additional cache lines to the client.
A non-transitory computer readable medium storing computer-executable instructions, wherein when the computer-executable instructions are executed by a controller of a programmable switch, the computer-executable instructions cause the controller to:
- receive a cache line request from a client of a plurality of clients on a network to obtain a cache line;
- identify one or more additional cache lines to obtain based on the received cache line request and prefetch information;
- request the cache line and the identified one or more additional cache lines from one or more memory devices on the network;
- receive the requested cache line and the one or more additional cache lines from the one or more memory devices;
- and
- send the requested cache line and the one or more additional cache lines to the client.
A system, comprising:
- a programmable switch;
- one or more memory devices configured to communicate with the programmable switch;
- and a host configured to communicate with the programmable switch;
- and
- wherein the programmable switch is configured to:
- receive prefetch information from the host;
- receive cache line requests from one or more clients to obtain cache lines from the one or more memory devices;
- send cache miss data to the host, the cache miss data representing the cache line requests received by the programmable switch;
- and
- identify additional cache lines to obtain for at least a portion of the received cache line requests based on the received cache line requests and the prefetch information received from the host.
Dependencies are inferred from the claim text.