IP Library › Granted Patent US 10,567,166
Granted Patent B2
US 10,567,166 · App. 15/856,556 · Granted Feb 18, 2020

Technologies for dividing memory across socket partitions

Inventors: Murugasamy K. Nachimuthu (Beaverton, OR); Mohan J. Kumar (Aloha, OR)
Assignee: Intel Corporation
H04L9/0819G06F3/0604G06F3/0605G06F3/065G06F3/067G06F3/0611G06F3/0613G06F3/0629G06F3/0631G06F3/0632G06F3/0644G06F3/0647G06F3/0659G06F3/0673G06F3/0683G06F3/0685G06F9/28G06F9/445G06F9/4406G06F9/4411G06F9/4494G06F9/5044G06F9/5088G06F12/023G06F12/06G06F12/0607G06F12/14G06F13/1663G06F13/1668G06F13/4068G06F13/42G06F15/161G06F15/17331G06F16/119G06F16/221G06F16/2237G06F16/2255G06F16/2282G06F16/2365G06F16/248G06F16/2453G06F16/2455G06F16/24553G06F16/25G06F16/9014G11C8/12G11C29/028G11C29/36G11C29/38G11C29/44H04L9/0894H04L41/0213H04L41/0668H04L41/0677H04L41/0893H04L41/0896H04L45/28H04L45/7453H04L47/11H04L47/125H04L49/30H04L49/351H04L49/9005H04L69/12H04L69/22H04L69/32H04L69/321G06F12/0802G06F12/1054G06F12/1063G06F2201/85G06F2209/509G06F2212/1044G06F2212/1052G06F2212/601G06F2213/0064
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 10,567,166
App. No.
15/856,556
Granted
Feb 18, 2020
Kind
B2
Abstract

Technologies for dividing resources across partitions include a compute sled. The compute sled is to determine partitions among sockets of the compute sled. Each socket is associated with a corresponding processor. The compute sled is also to establish a separate memory space for each determined partition, obtain, from an application executed in one of the sockets, a request to access a logical memory address, identify the partition associated with the memory access request, determine a corresponding physical memory address as a function of the identified partition and the logical memory address, and access a memory of the compute sled at the determined physical memory address. Other embodiments are also described and claimed.

Claims (44)

1. A compute sled comprising:

a compute engine having (i) multiple processors and sockets, wherein each processor is associated with a respective socket of the compute sled and (ii) a memory, wherein the compute engine is to:

determine partitions among the sockets;

establish a separate memory space for each determined partition;

obtain, from an application executed in one of the sockets, a request to access a logical memory address;

identify the partition associated with the memory access request;

add a partition identifier to the to the memory access request;

determine a corresponding physical memory address as a function of the identified partition and the logical memory address, including multiplying the partition identifier by a predefined memory space size to determine a base physical memory address, and adding the logical address to the base physical memory address; and

access the memory at the determined physical memory address.

2. The compute sled of claim 1 , wherein to determine partitions among the sockets comprises to establish at least one separate partition for each socket.

3. The compute sled of claim 2 , wherein to establish at least one separate partition for each socket comprises to:

establish a first partition for a first set of cores in one of the processors; and

establish a second partition for a second set of cores in the same processor.

4. The compute sled of claim 3 , wherein to establish a first partition for a first set of cores in one of the processors and establish a second partition for second set of cores in the same processor comprises to establish a separate partition associated with each set of cores assigned to execute a different instance of an operating system.

5. The compute sled of claim 1 , wherein to establish a separate memory space for each determined partition comprises to map one or more I/O devices to one or more of the memory spaces.

6. The compute sled of claim 5 , wherein to map one or more I/O devices to one or more of the memory spaces comprises to exclude an I/O device from one of the memory spaces and map the I/O device to another of the memory spaces.

7. The compute sled of claim 1 , wherein the compute engine is further to assign a partition identifier to each of multiple I/O devices.

8. One or more machine-readable storage media comprising a plurality of executable computer program instructions stored thereon that, in response to being executed, cause a compute sled to:

determine partitions among sockets of the compute sled, wherein each socket is associated with a corresponding processor of the compute sled;

establish a separate memory space for each determined partition;

obtain from an application executed in one of the sockets, a request to access a logical memory address;

identify the partition associated with the memory access request;

add a partition identifier to the to the memory access request;

determine a corresponding physical memory address as a function of the identified partition and the logical memory address, including multiplying the partition identifier by a predefined memory space size to determine a base physical memory address, and adding the logical address to the base physical memory address; and

access a memory of the compute sled at the determined physical memory address.

9. The one or more machine-readable storage media of claim 8 , wherein to determine the partitions among the sockets comprises to establish at least one separate partition for each socket.

10. The one or more machine-readable storage media of claim 9 , wherein to establish at least one separate partition for each socket comprises to:

establish a first partition for a first set of cores in one of the processors; and

establish a second partition for a second set of cores in the same processor.

11. The one or more machine-readable storage media of claim 10 , wherein to establish a first partition for a first set of cores in one of the processors and establish a second partition for second set of cores in the same processor comprises to establish a separate partition associated with each set of cores assigned to execute a different instance of an operating system.

12. The one or more machine-readable storage media of claim 8 , wherein to establish a separate memory space for each determined partition comprises to map one or more I/O devices to one or more of the memory spaces.

13. A method comprising:

determining, by a compute sled, partitions among sockets of the compute sled, wherein each socket is associated with a corresponding processor of the compute sled;

establishing, by the compute sled, a separate memory space for each determined partition;

obtaining, by the compute sled, from an application executed in one of the sockets, a request to access a logical memory address;

identifying, by the compute sled, the partition associated with the memory access request;

adding a partition identifier to the to the memory access request;

determining, by the compute sled, a corresponding physical memory address as a function of the identified partition and the logical memory address, including multiplying the partition identifier by a predefined memory space size to determine a base physical memory address, and adding the logical address to the base physical memory address; and

accessing, by the compute sled, a memory of the compute sled at the determined physical memory address.

14. The method of claim 13 , wherein determining the partitions among the sockets comprises establishing at least one separate partition for each socket.

15. The method of claim 14 , wherein establishing at least one separate partition for each socket comprises:

establishing a first partition for a first set of cores in one of the processors; and

establishing a second partition for a second set of cores in the same processor.

16. The method of claim 15 , wherein establishing a first partition for a first set of cores in one of the processors and establishing a second partition for second set of cores in the same processor comprises establishing a separate partition associated with each set of cores assigned to execute a different instance of an operating system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2018
From: NACHIMUTHU, MURUGASAMY K; KUMAR, MOHAN J.
To: INTEL CORPORATION
Reel/Frame 044683/0720 →
Priority Claims (1)
IN 201741030632 · Aug 30, 2017 · national
Continuity (2)
Provisional Application 62584401 · Nov 10, 2017
Related Publication 20190042136A1 · Feb 7, 2019