US2019042408A1PendingUtilityA1

Technologies for interleaving memory across shared memory pools

Assignee: INTEL CORPPriority: Aug 30, 2017Filed: Jan 11, 2018Published: Feb 7, 2019
Est. expiryAug 30, 2037(~11 yrs left)· nominal 20-yr term from priority
G06F 9/4401G06F 30/34G06F 3/0683G06F 3/0632G11C 29/028G06F 3/0611G06F 3/0604H04L 49/9005G06F 12/023G06F 12/1063H04L 9/0894G06F 16/248H04L 69/12G06F 3/067G06F 3/0613G11C 29/38G06F 16/2365G06F 16/2255G06F 3/0647G06F 2212/1044G06F 2212/1052G06F 3/0673G06F 15/17331G06F 13/1663G06F 9/4406G06F 3/0605G06F 2212/601G06F 16/2453G06F 9/5088G06F 13/1668G06F 9/4494G11C 29/36G06F 12/06G06F 15/161G06F 9/28G06F 12/14G06F 16/25G06F 2201/85G06F 16/119G06F 13/4068G06F 12/0607H04L 41/0677H04L 47/125G06F 9/445G11C 8/12G06F 13/42G06F 16/2237H04L 45/7453G06F 3/065G06F 16/9014G06F 2209/509H04L 41/0668H04L 41/0213G11C 29/44G06F 16/2282G06F 3/0659G06F 12/0802H04L 49/351G06F 16/24553H04L 47/11G06F 12/1054G06F 3/0631G06F 3/0685G06F 16/221H04L 45/28G06F 3/0644H04L 49/30G06F 9/4411G06F 2213/0064H04L 69/22G06F 3/0629G06F 16/2455H04L 69/32H04L 41/14H04L 41/0893H04L 41/0896H04L 9/0819H04L 69/321H04L 47/83H04L 43/20H04L 41/149H04L 41/0895H04L 41/40H04L 41/34H04L 69/18G06F 2209/5019G06F 9/5055G06F 9/5022G06F 9/5044H04L 67/1001Y02D10/00G06F 2201/885G06F 2201/86G06F 11/3466G06F 11/3442G06F 11/3006G06F 11/3409H05K 7/1498H04L 43/0876H04L 43/065H04L 41/0816H04L 41/044G06N 3/063H04L 43/16H04L 41/5019H04L 41/5025H04L 49/40G06Q 30/0283G06Q 10/0631G06F 21/105G06F 13/4022G06F 9/5061G06F 9/4856G06F 9/44H05K 7/20736H05K 7/20209H05K 7/18H05K 7/1489H04L 67/1008H04L 63/0428G06F 2200/201G06F 15/7867G06F 9/505G06F 2213/3808G06F 2213/0026G06F 15/1735H04L 47/781H04L 41/16H04L 41/142G06F 3/0665G06F 15/173H04Q 11/0062H04Q 11/0005
70
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Technologies for interleaving memory that is accessible via a shared memory pool include a memory sled. The memory sled includes a memory pool of byte-addressable memory devices. The memory sled also includes a memory pool controller coupled to the memory pool. The memory pool controller receives a request to allocate memory addresses of the memory pool to a compute sled. The memory pool controller determines an interleaving configuration for the compute sled as a function of memory characteristics of the compute sled and configures the memory addresses according to the determined interleaving configuration.

Claims

exact text as granted — not AI-modified
1 . A memory sled, comprising:
 a memory pool comprising one or more byte-addressable memory devices;   a memory pool controller coupled to the memory pool, wherein the memory pool controller is to: (i) receive a request to allocate a plurality of memory addresses of the memory pool to a compute sled, (ii) determine an interleaving configuration for the compute sled as a function of one or more memory characteristics associated with the compute sled, wherein the interleaving configuration is indicative of a mapping of the plurality of memory addresses of the memory pool to an interleaved access to the one or more memory devices, and (iii) configure the one or more memory addresses of the memory pool according to the determined interleaving configuration.   
     
     
         2 . The memory sled of  claim 1 , wherein to determine the interleaving configuration for the compute sled comprises to:
 determine a processor bandwidth and one or more quality of service (QoS) targets associated with the compute sled; and   identify, as a function of the determination of the processor bandwidth and the QoS targets, one or more memory channels connecting with the one or more memory devices to interleave.   
     
     
         3 . The memory sled of  claim 2 , wherein to configure the plurality of memory addresses of the memory pool comprises to expose an address space that includes the one or more memory addresses. 
     
     
         4 . The memory sled of  claim 3 , wherein each of the one or more memory addresses corresponds to an interleaving of the identified one or more memory channels connecting with the one or more memory devices. 
     
     
         5 . The memory sled of  claim 1 , wherein the memory pool controller is further to send a notification, to a compute device, in response to the request to allocate the plurality of memory addresses of the memory pool. 
     
     
         6 . The memory sled of  claim 1 , wherein the memory pool controller is further to:
 receive, from the compute sled, a command to write to the one or more memory addresses configured according to the determined interleaving configuration; and   write, in response to the command, to the one or more memory addresses.   
     
     
         7 . The memory sled of  claim 1 , wherein the memory pool controller is further to:
 receive, from the compute sled, a command to read from the one or more memory addresses configured according to the determined interleaving configuration; and   read, in response to the command, from the one or more memory addresses.   
     
     
         8 . The memory sled of  claim 1 , wherein the interleaved access is to a subset of the one or more memory devices of the memory pool. 
     
     
         9 . The memory sled of  claim 1 , wherein the memory pool controller is further to:
 receive, from an orchestrator server, a modification of the determined interleaving configuration.   
     
     
         10 . The memory sled of  claim 9 , wherein the modification of the interleaving configuration is determined as a function of a QoS target. 
     
     
         11 . The memory sled of  claim 9 , wherein the modification is indicative of an addition of one or more of the memory devices to the interleaving configuration. 
     
     
         12 . The memory sled of  claim 11 , wherein the memory pool controller is further to configure one or more additional memory addresses of the memory pool according to the modification of the determined interleaving configuration, wherein each of the one or more additional memory addresses corresponds to an interleaving of additional memory channels connecting with the one or more memory devices. 
     
     
         13 . The memory sled of  claim 9 , wherein the modification is indicative of a removal of one or more of the memory devices from the interleaving configuration. 
     
     
         14 . One or more non-transitory machine-readable storage media comprising a plurality of instructions stored thereon that, in response to being executed, cause a memory sled to:
 receive a request to allocate a plurality of memory addresses of a memory pool to a compute sled, wherein the memory pool includes one or more byte-addressable memory devices,   determine an interleaving configuration for the compute sled as a function of one or more memory characteristics associated with the compute sled, wherein the interleaving configuration is indicative of a mapping of the plurality of memory addresses of the memory pool to an interleaved access to the one or more memory devices; and   configure the one or more memory addresses of the memory pool according to the determined interleaving configuration.   
     
     
         15 . The one or more non-transitory machine-readable storage media of  claim 14 , wherein to determine the interleaving configuration for the compute sled comprises to:
 determine a processor bandwidth and one or more quality of service (QoS) targets associated with the compute sled; and   identify, as a function of the determination of the processor bandwidth and the QoS targets, one or more memory channels connecting with the one or more memory devices to interleave.   
     
     
         16 . The one or more non-transitory machine-readable storage media of  claim 15 , wherein to configure the plurality of memory addresses of the memory pool comprises to expose an address space that includes the one or more memory addresses. 
     
     
         17 . The one or more non-transitory machine-readable storage media of  claim 16 , wherein each of the one or more memory addresses corresponds to an interleaving of the identified one or more memory channels connecting with the one or more memory devices. 
     
     
         18 . The one or more non-transitory machine-readable storage media of  claim 14 , wherein the plurality of instructions further cause the memory sled to send a notification, to a compute device, in response to the request to allocate the plurality of memory addresses of the memory pool. 
     
     
         19 . The one or more non-transitory machine-readable storage media of  claim 14 , wherein the plurality of instructions further cause the memory sled to:
 receive, from the compute sled, a command to write to the one or more memory addresses configured according to the determined interleaving configuration; and   write, in response to the command, to the one or more memory addresses.   
     
     
         20 . The one or more non-transitory machine-readable storage media of  claim 14 , wherein the plurality of instructions further cause the memory sled to:
 receive, from the compute sled, a command to read from the one or more memory addresses configured according to the determined interleaving configuration; and   read, in response to the command, from the one or more memory addresses.   
     
     
         21 . The one or more non-transitory machine-readable storage media of  claim 14 , wherein the interleaved access is to a subset of the one or more memory devices of the memory pool. 
     
     
         22 . A method comprising:
 receiving, by a memory sled, a request to allocate a plurality of memory addresses of a memory pool to a compute sled, wherein the memory pool includes one or more byte-addressable memory devices,   determining, by the memory sled, an interleaving configuration for the compute sled as a function of one or more memory characteristics associated with the compute sled, wherein the interleaving configuration is indicative of a mapping of the plurality of memory addresses of the memory pool to an interleaved access to the one or more memory devices; and   configuring, by the memory sled, the one or more memory addresses of the memory pool according to the determined interleaving configuration.   
     
     
         23 . The method of  claim 22 , wherein determining the interleaving configuration for the compute sled comprises:
 determining a processor bandwidth and one or more quality of service (QoS) targets associated with the compute sled; and   identifying, as a function of the determination of the processor bandwidth and the QoS targets, one or more memory channels connecting with the one or more memory devices to interleave.   
     
     
         24 . The method of  claim 23 , wherein configuring the plurality of memory addresses of the memory pool comprises exposing an address space that includes the one or more memory addresses. 
     
     
         25 . A system comprising:
 a compute sled; and   a memory sled coupled to the compute sled, wherein the memory sled includes:
 a memory pool comprising one or more byte-addressable memory devices; 
 a memory pool controller coupled to the memory pool, wherein the memory pool controller is to: (i) receive a request to allocate a plurality of memory addresses of the memory pool to the compute sled, (ii) determine an interleaving configuration for the compute sled as a function of one or more memory characteristics associated with the compute sled, wherein the interleaving configuration is indicative of a mapping of the plurality of memory addresses of the memory pool to an interleaved access to the one or more memory devices, and (iii) configure the one or more memory addresses of the memory pool according to the determined interleaving configuration.

Join the waitlist — get patent alerts

Track US2019042408A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.