IP Library › Granted Patent US 12,014,066
Granted Patent B2
US 12,014,066 · App. 17/902,598 · Granted Jun 18, 2024

Selective use of high-performance memory in a software defined system

Inventors: Kenny Van Alstyne (Mechanicsville, VA); Phillip Edward Straw (Newark, CA)
Assignee: SOFTIRON LIMITED
G06F3/065G06F3/0604G06F3/0634G06F3/067
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 12,014,066
App. No.
17/902,598
Granted
Jun 18, 2024
Kind
B2
Abstract

A system includes control logic to boot to a waking state, configure the system, and check for the presence of non-volatile DIMMs. Based on a determination that non-volatile DIMMs are not present, the control logic is to create one or more block devices to overcome CPU utilization limitations. Based on a determination that non-volatile DIMMs are present, the control logic is to use a non-volatile DIMM for storage.

Claims (48)

1. An apparatus, comprising:

an interface to a plurality of non-volatile random-access memory (NV-RAM) configured to receive results of a hardware accelerator; and

a memory management circuit configured to:

access the plurality of non-volatile random access memory;

access a software-defined-system (SDS), the SDS to manage replication of data across a cluster of memory devices;

generate a block device from the plurality of NV-RAM;

determine that the block device is to be used to receive results of the hardware accelerator, the hardware accelerator to create the results from execution of a workload, the results from execution of the workload to be replicated in the SDS in at least one other storage location;

determine that the results of the hardware accelerator as stored in the block device are to be replicated in the SDS;

based on a determination that the results of the hardware accelerator as stored in the block device are to be replicated in the SDS, configure the block device for use with the SDS, the block device configured to be included by the SDS in the cluster of memory devices and be controlled by the memory management circuit after inclusion in the cluster of memory devices; and

configure the block device to be replicated by an SDS manager application of the SDS system while retaining selective control by the memory management circuit for access to and replication of the block device, including to:

cause one or more workloads to be loaded into the hardware accelerator for execution and the results from the one or more workloads to be stored in the block device as part of the SDS;

during execution of the one or more workloads and storing of the results into the block device, turn off replication of the block device in the SDS while maintaining the block device as part of the SDS; and

upon completion of execution of the one or more workloads and storing of the results into the block device, turn on replication of the block device in the SDS.

2. The apparatus of claim 1 , wherein the memory management circuit is further configured to communicate with an SDS manager application of the SDS system to add the block device to the cluster of memory devices.

3. The apparatus of claim 1 , wherein the memory management circuit is further configured to configure the block device to be replicated by an SDS manager application of the SDS system while retaining selective control by the memory management circuit for access to and replication of the block device.

4. The apparatus of claim 1 , wherein the memory management circuit is further configured to selectively control access to the block device by an SDS manager application of the SDS system.

5. The apparatus of claim 1 , wherein the memory management circuit is further configured to erase the block device after the block device has been added to the cluster of memory devices.

6. The apparatus of claim 1 , wherein the memory management circuit is further configured to, upon completion of a workload by the hardware accelerator and storage of contents of the completion of the workload in the block device, determine whether to retain or erase the contents of the completion of the workload in the cluster of memory devices of the SDS.

7. The apparatus of claim 6 , wherein the memory management circuit is further configured to, upon a determination to retain the contents of the completion of the workload in the cluster of memory devices of the SDS, mark the block device as a primary source for replication in the cluster of memory devices of the SDS.

8. The apparatus of claim 7 , wherein the memory management circuit is further configured to, upon a replication of at least one complete copy of the contents of the completion of the workload in the cluster of memory devices of the SDS from the block device, remove the block device as a source for replication of the at least one complete copy of the contents of the completion of the workload in the cluster of memory devices.

9. The apparatus of claim 1 , wherein the memory management circuit is further configured to mark the block device with an attribute to allow control by the memory management circuit after ingestion of the block device into the cluster of memory devices of the SDS.

10. The apparatus of claim 1 , wherein the memory management circuit is further configured to selectively enable or disable replication of contents of the block device by an SDS manager application of the SDS system after the block device has been ingested into the cluster of memory devices of the SDS.

11. The apparatus of claim 1 , wherein the memory management circuit is further configured to selectively enable or disable data access of the block device by an SDS manager application of the SDS system after the block device has been ingested into the cluster of memory devices of the SDS.

12. The apparatus of claim 1 , wherein the memory management circuit is further configured to block replication of data of other elements of the cluster of memory devices of the SDS after the block device has been ingested into the cluster of memory devices of the SDS.

13. The apparatus of claim 1 , wherein the memory management circuit is further configured to selectively control access to the block device from the SDS after the block device has been ingested into the cluster of memory devices of the SDS based upon use of the hardware accelerator to execute the workload and store results into the block device.

14. A method, comprising:

accessing a plurality of non-volatile random access memory (NV-RAM);

from a memory management circuit, accessing a software-defined-system (SDS), the SDS to manage replication of data across a cluster of memory devices;

generating a block device from the plurality of NV-RAM;

determining that the block device is to be used to receive results of a hardware accelerator, the hardware accelerator to create the results from execution of a workload, the results from execution of the workload to be replicated in the SDS in at least one other storage location;

determining that the results of the hardware accelerator as stored in the block device are to be replicated in the SDS;

based on a determination that the results of the hardware accelerator as stored in the block device are to be replicated in the SDS, configuring the block device for use with the SDS, the block device configured to be included by the SDS in the cluster of memory devices and be controlled by the memory management circuit after inclusion in the cluster of memory devices; and

configuring the block device to be replicated by an SDS manager application of the SDS system while retaining selective control by the memory management circuit for access to and replication of the block device, including:

causing one or more workloads to be loaded into the hardware accelerator for execution and the results from the one or more workloads to be stored in the block device as part of the SDS;

during execution of the one or more workloads and storing of the results into the block device, turning off replication of the block device in the SDS while maintaining the block device as part of the SDS; and

upon completion of execution of the one or more workloads and storing of the results into the block device, turn on replication of the block device in the SD.

15. The method of claim 14 , comprising communicating with an SDS manager application of the SDS system to add the block device to the cluster of memory devices.

16. The method of claim 14 , comprising configuring the block device to be replicated by an SDS manager application of the SDS system while retaining selective control by the memory management circuit for access to and replication of the block device.

17. The method of claim 14 , comprising selectively controlling access to the block device by an SDS manager application of the SDS system.

18. The method of claim 14 , comprising erasing the block device after the block device has been added to the cluster of memory devices.

19. The method of claim 14 , comprising, upon completion of a workload by the hardware accelerator and storage of contents of the completion of the workload in the block device, determining whether to retain or erase the contents of the completion of the workload in the cluster of memory devices of the SDS.

20. The method of claim 19 , comprising, upon a determination to retain the contents of the completion of the workload in the cluster of memory devices of the SDS, marking the block device as a primary source for replication in the cluster of memory devices of the SDS.

21. The method of claim 20 , comprising, upon a replication of at least one complete copy of the contents of the completion of the workload in the cluster of memory devices of the SDS from the block device, removing the block device as a source for replication of the at least one complete copy of the contents of the completion of the workload in the cluster of memory devices.

22. The method of claim 14 , comprising marking the block device with an attribute to allow control by the memory management circuit after ingestion of the block device into the cluster of memory devices of the SDS.

23. The method of claim 14 , comprising selectively enabling or disabling replication of contents of the block device by an SDS manager application of the SDS system after the block device has been ingested into the cluster of memory devices of the SDS.

24. The method of claim 14 , comprising selectively enabling or disabling data access of the block device by an SDS manager application of the SDS system after the block device has been ingested into the cluster of memory devices of the SDS.

25. The method of claim 14 , comprising blocking replication of data of other elements of the cluster of memory devices of the SDS after the block device has been ingested into the cluster of memory devices of the SDS.

26. The method of claim 14 , comprising selectively controlling access to the block device from the SDS after the block device has been ingested into the cluster of memory devices of the SDS based upon use of the hardware accelerator to execute the workload and store results into the block device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2024
From: STRAW, PHILLIP EDWARD; VAN ALSTYNE, KENNETH L., JR.
To: SOFTIRON LIMITED
Reel/Frame 067446/0001 →
Continuity (2)
Provisional Application 63241828 · Sep 8, 2021
Related Publication 20230273739A1 · Aug 31, 2023