IP Library › Granted Patent US 11,941,266
Granted Patent B2
US 11,941,266 · App. 17/558,587 · Granted Mar 26, 2024

Resource isolation in computational storage devices

Inventors: Ilgu Hong (Santa Clara, CA); Changho Choi (San Jose, CA); Yang Seok Ki (Palo Alto, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F3/0631G06F3/0619G06F3/0659G06F3/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 11,941,266
App. No.
17/558,587
Granted
Mar 26, 2024
Kind
B2
Abstract

A method includes receiving, at a controller of a computational storage (CS) device, a request to allocate computational storage to an application of a host device. The request includes a resource set ID associated with the application. The method further includes identifying a memory range within a memory region of the CS device. The method further includes storing, in a data structure associated with the resource set ID, an association between a memory range identifier (ID) of the memory range, the memory region, and an offset within the memory region. The method further includes sending the memory range ID to the host device.

Claims (46)

1. A method comprising:

receiving, at a controller of a computational storage (CS) device, a request to allocate computational storage to an application of a host device, wherein the request includes a resource set identifier (ID) associated with the application;

identifying a memory range within a memory region of the CS device;

storing, in a data structure associated with the resource set ID, an association between a memory range ID of the memory range, the memory region, and an offset within the memory region; and

sending the memory range ID to the host device,

wherein the application is further associated with a second resource set ID, the second resource set ID associated with a second memory range ID.

2. The method of claim 1 , further comprising:

receiving a CS command including the resource set ID and a requested memory range ID; and

determining whether the CS command is valid based in part on whether the data structure associated with the resource set ID includes the requested memory range ID.

3. The method of claim 2 , wherein determining whether the CS command is valid further includes, in response to determining that the requested memory range ID corresponds to the memory range ID of the memory range, determining whether a second offset with respect to the memory range and size of access by the CS command exceeds a boundary of the memory range.

4. The method of claim 3 , further comprising translating the second offset to a third offset within the memory region of the CS device based on the data structure in response to determining that CS command is valid.

5. The method of claim 2 , further comprising returning an error report to the host device in response to determining that the CS command is invalid.

6. The method of claim 2 , further comprising determining whether a requested memory range corresponding to the requested memory range ID is in use by another CS command.

7. The method of claim 6 , further comprising rescheduling execution of the CS command in response to determining that the requested memory range is in use.

8. The method of claim 1 , further comprising selecting the memory range from the memory region based on the memory region corresponding to a memory type indicated by the request to allocate computational storage.

9. A computational storage (CS) device comprising:

a memory; and

a controller configured to:

receive a request to allocate computational storage to an application of a host device, wherein the request includes a resource set identifier (ID) associated with the application;

identify a memory range within a memory region of the memory;

store, in a data structure associated with the resource set ID, an association between a memory range ID of the memory range, the memory region, and an offset within the memory region; and

send the memory range ID to the host device,

wherein the application is further associated with a second resource set ID, the second resource set ID associated with a second memory range ID.

10. The CS device of claim 9 , wherein the controller is further configured to:

receive a CS command including the resource set ID and a requested memory range ID; and

determine whether the CS command is valid based in part on whether the data structure associated with the resource set ID includes the requested memory range ID.

11. The CS device of claim 10 , wherein determining whether the CS command is valid further includes, in response to a determination that the requested memory range ID corresponds to the memory range ID of the memory range, determining whether a second offset with respect to the memory range and size of access by the CS command exceeds a boundary of the memory range.

12. The CS device of claim 11 , wherein the controller is further configured to translate the second offset to a third offset within the memory region of the CS device based on the data structure in response to determining that CS command is valid.

13. The CS device of claim 10 , wherein the controller is further configured to return an error report to the host device in response to determining that the CS command is invalid.

14. The CS device of claim 10 , wherein the controller is further configured to determine whether a requested memory range corresponding to the requested memory range ID is in use by another CS command.

15. The CS device of claim 14 , wherein the controller is further configured to reschedule execution of the CS command in response to determining that the requested memory range is in use.

16. The CS device of claim 9 , wherein the data structure comprises a hash table.

17. The CS device of claim 9 , wherein the controller is further configured to send a size of the memory range to the host device.

18. A system comprising:

a host device configured to:

store a session context identifying an application executing at the host device, the session context associated with a resource set identifier (ID);

in response to receiving a request to allocate computational storage from the application, insert the resource set ID into the request; and

a computational storage device comprising:

a memory; and

a controller configured to:

receive the request to allocate computational storage;

identify a memory range within a memory region of the memory;

store, in a data structure associated with the resource set ID, an association between a memory range ID of the memory range, the memory region, and an offset within the memory region; and

send the memory range ID to the host device.

19. The system of claim 18 , wherein the request to allocate computational storage is associated with a session ID and a random number, and wherein the host device is further configured to determine whether the session ID and the random number match an expected session ID and expected random number associated with the session context.

20. The system of claim 19 , wherein the host device is further configured to store an updated expected random number associated with the session ID.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2023
From: HONG, ILGU; CHOI, CHANGHO; KI, YANG SEOK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 065079/0769 →
Continuity (2)
Provisional Application 63270049 · Oct 20, 2021
Related Publication 20230124665A1 · Apr 20, 2023