IP Library Granted Patent US 10,776,046
Granted Patent B1
US 10,776,046 · App. 16/029,381 · Granted Sep 15, 2020

Optimized non-uniform memory access

Inventors: Roland Dreier (Mountain View, CA); Peter E. Kirkpatrick (Mountain View, CA); Naveen Neelakantam (Mountain View, CA)
Assignee: PURE STORAGE, INC.
G06F3/0659G06F3/0604G06F3/0679
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,776,046
App. No.
16/029,381
Granted
Sep 15, 2020
Kind
B1
Abstract

In one implementation, a method includes receiving code associated with two or more cores of a storage array controller. The method further includes determining, by the storage array controller, that the code is executable and read-only. The method further includes loading, based on the determination, the code into two or more memory pages corresponding to the two or more cores, wherein each of the two or more memory pages is local to each of the two or more cores, respectively.

Claims (34)

1. A method comprising:

receiving code associated with two or more cores of a storage array controller, the storage array controller comprising a plurality of cores logically divided into two or more non-uniform memory access (NUMA) nodes, and wherein each of the two or more NUMA nodes is associated with one or more memory circuits;

determining, by the storage array controller, that the code is executable and read-only;

detecting a configuration of the two or more NUMA nodes, and

loading, based on the configuration of the two or more NUMA node, the code into two or more memory pages, each of the two or more memory pages included within a memory circuit associated with a NUMA node that includes at least one of the two or more cores.

2. The method of claim 1 , further comprising receiving a notification that the two or more cores have opted into a replication mode of the storage array controller.

3. The method of claim 1 , wherein the two or more cores are physical cores of the storage array controller.

4. The method of claim 1 , wherein the two or more cores are logical cores of the storage array controller.

5. The method of claim 1 , wherein the code is loaded by a kernel of an operating system associated with the storage array controller.

6. The method of claim 1 , wherein loading the code comprises adding two or more physical addresses to two or more page tables associated with the two or more cores, wherein each of the two or more physical addresses corresponds to separate physical locations of the code in the two or more memory pages.

7. The method of claim 6 , wherein the two or more physical addresses are stored at a same virtual address across the two or more page tables.

8. A method comprising:

receiving code associated with two or more cores of a storage array controller, the storage array controller comprising a plurality of cores logically divided into two or more non-uniform memory access (NUMA) nodes, and wherein each of the two or more NUMA nodes is associated with one or more memory circuits of a storage array comprising a plurality of memory circuits;

determining, by the storage array controller, that the code is executable and read-only;

detecting a configuration of the two or more NUMA nodes; and

loading the code into two or more memory pages, each of the two or more memory pages included within a memory circuit associated with a NUMA node of the two or more NUMA nodes that includes at least one of the two or more cores, wherein the loading is in response to the determination that the code is executable and read-only.

9. The method of claim 8 , wherein the storage array comprises a plurality of direct-mapped, flash-based storage devices.

10. The method of claim 9 , further comprising receiving, by the storage array controller, an indication of a geometry of the plurality of direct-mapped, flash-based storage devices.

11. The method of claim 8 , further comprising receiving a notification that the two or more cores have opted into a replication mode of the storage array controller.

12. The method of claim 8 , wherein the two or more cores are physical cores of the storage array controller.

13. The method of claim 8 , wherein the two or more cores are logical cores of the storage array controller.

14. The method of claim 8 , wherein the code is loaded by a kernel of an operating system associated with the storage array controller.

15. The method of claim 8 , wherein loading the code comprises adding two or more physical addresses to two or more page tables associated with the two or more cores, wherein each of the two or more physical addresses corresponds to separate physical locations of the code in the two or more memory pages.

16. The method of claim 15 , wherein the two or more physical addresses are stored at a same virtual address across the two or more page tables.

17. A storage system comprising:

a plurality of storage devices in a storage array; and

a storage array controller, operatively coupled to the storage array, the storage array controller comprising a plurality of cores logically divided into two or more non-uniform memory access (NUMA) nodes, and wherein each of the two or more NUMA nodes is associated with one or more of the plurality of storage devices, the storage array controller to:

receive code associated with two or more cores of the storage array controller;

determine that the code is executable and read-only;

detect a configuration of the two or more NUMA nodes, and

load, based on the configuration of the two or more NUMA nodes, the code into two or more memory pages, each of the two or more memory pages included within a memory circuit associated with a NUMA node that includes at least one of the two or more cores, respectively.

18. The storage system of claim 17 , wherein the two or more cores are physical cores of the storage array controller.

19. The storage system of claim 17 , wherein the two or more cores are logical cores of the storage array controller.

20. The storage system of claim 17 , wherein the code is loaded by a kernel of an operating system associated with the storage array controller.

Assignments (3)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2018
From: DREIER, ROLAND; KIRKPATRICK, PETER E.; NEELAKANTAM, NAVEEN
To: PURE STORAGE, INC.
Reel/Frame 046321/0073 →
Cited By (2)
US 12,189,982 US 12,717,511