Two-tier distributed memory
First Claim
1. A method for redirecting data read requests, comprising:
- recording, by a first data interface associated with storage of a first data set in a memory module, an identity associated with a first compute element that has requested, and has received, said first data set from the first data interface, such that an association is made between said first compute element and the first data set;
receiving, from a second compute element, in the first data interface, a current request to obtain said first data set;
detecting, by said first data interface, in conjunction with the current request, and based on the association made, that the second compute element is currently requesting the first data set that was previously requested by the first compute element; and
,based on said detection, causing the second compute element, by the first data interface, in conjunction with the current request, to receive the first data set from the first compute element or a cache thereof instead of receiving said first data set from said first data interface or associated memory module, thereby effectively redirecting the current request.
3 Assignments
0 Petitions
Accused Products
Abstract
Described herein are systems and methods to redirect data read requests from the first tier to the second tier of a two-tier distributed memory. The first tier includes memory modules with data sets. Data interfaces associated with the first tier memory modules, receive from a second tier including compute elements and associated cache memories, requests to fetch data from the first tier. If a data set has not recently been fetched by the second tier, then the data interface will send the data set from the first tier to the cache memory associated with the requesting compute element. If a data set has recently been fetched by the second tier, the data interface will redirect the requesting compute element to fetch the data set from the cache memory in which the data set is currently located.
-
Citations
25 Claims
-
1. A method for redirecting data read requests, comprising:
-
recording, by a first data interface associated with storage of a first data set in a memory module, an identity associated with a first compute element that has requested, and has received, said first data set from the first data interface, such that an association is made between said first compute element and the first data set; receiving, from a second compute element, in the first data interface, a current request to obtain said first data set; detecting, by said first data interface, in conjunction with the current request, and based on the association made, that the second compute element is currently requesting the first data set that was previously requested by the first compute element; and
,based on said detection, causing the second compute element, by the first data interface, in conjunction with the current request, to receive the first data set from the first compute element or a cache thereof instead of receiving said first data set from said first data interface or associated memory module, thereby effectively redirecting the current request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system operative to decide on redirecting data read requests in conjunction with memory disaggregation, comprising:
-
a plurality of compute elements; a first data interface associated with a first memory module storing a plurality of data sets, in which the first memory module belongs to a shared memory pool operative to achieve, in conjunction with the plurality of compute elements, memory disaggregation in the system; and a registry associated with the first data interface, wherein; the first data interface is configured to record, in the registry, information associated with prior distribution of any of the data sets to any of the compute elements in conjunction with operation of the memory disaggregation; and the first data interface is further configured to; receive from one of the compute elements a current request for one of the data sets; and decide, based at least in part on the information recorded, whether to (i) respond to said current request by transporting, in conjunction with said memory disaggregation, the data set from the first memory module to the compute element making the current request, or (ii) respond to said current request by causing the compute element making the current request to receive the data set from one of the compute elements to which the data set was previously distributed, thereby boosting performance of the memory disaggregation. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A system operative to produce a two-tier distributed memory, comprising:
-
a plurality of compute elements associated respectively with a plurality of cache memories; a plurality of data interfaces associated respectively with a plurality of memory modules storing distributively a plurality of data sets; and a switching network configured to communicatively interconnect the plurality of compute elements and the plurality of data interfaces, wherein; each of the compute elements is configured to request and receive from any of the data interfaces, via the switching network, at least one of the data sets stored in the associated memory module, thereby creating, in conjunction with the plurality of cache memories, a distributed copy of at least some of the data sets; and each of the data interfaces is configured to; record, in conjunction with said requests for the data sets made therewith, an identity of the compute element which made the request; and redirect any current request for one of the data sets to one of the compute elements whose identity has been recorded, thereby producing a two-tier distributed memory, in which one tier is associated with the plurality of memory modules, and a second tier is associated with the plurality of cache memories. - View Dependent Claims (22, 23, 24, 25)
-
Specification