Computational storage for logical volumes that span physical devices
US-2022365709-A1 · Nov 17, 2022 · US
US12306774B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12306774-B2 |
| Application number | US-202318206264-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 6, 2023 |
| Priority date | Dec 7, 2022 |
| Publication date | May 20, 2025 |
| Grant date | May 20, 2025 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
An operating method of a computational storage device includes: setting a first computing namespace, including a first queue and a first accelerator and having a first value as its first ID, per instructions from a first host; setting a second computing namespace, including a second queue and a second accelerator and having a second value as its first ID, per instructions from a second host; loading a first program from the first host in the first computing namespace; loading a second program from the second host in the second computing namespace; setting a second ID of the first computing namespace to a third value based on an ID of the first program per instructions to activate the first program; and setting the second ID of the second computing namespace to a fourth value based on an ID of the second program per instructions to activate the second program.
Opening claim text (preview).
What is claimed is: 1. A method of operating a computational storage device, comprising: setting, by a storage controller, a first computing namespace, which comprises a first queue and a first accelerator, and has a first identifier (ID) of the first computing namespace, in response to an instruction to set the first computing namespace being received from a first host device; setting, by the storage controller, a second computing namespace, which comprises a second queue and a second accelerator, and has a first ID of the second computing namespace, in response to an instruction to set the second computing namespace being received from a second host device; receiving, by the storage controller, a first program from the first host device and loading the first program in the first computing namespace; receiving, by the storage controller, a second program from the second host device and loading the second program in the second computing namespace; setting, by the storage controller, a second ID of the first computing namespace based on an ID of the first program in response to instruction to activate the first program being received from the first host device; setting, by the storage controller, a second ID of the second computing namespace based on an ID of the second program in response to instruction to activate the second program being received from the second host device; and instructing, by the storage controller, one of the first accelerator and the second accelerator to compute a first execute command based on the first ID of the first computing namespace, the first ID of the second computing namespace, the second ID of the first computing namespace, and the second ID of the second computing namespace having different value. 2. The method of claim 1 , wherein the first ID of the first computing namespace and the first ID of the second computing namespace have different values based on the first accelerator and the second accelerator being different from each other, or wherein the first ID of the first computing namespace and the first ID of the second computing namespace have a same value based on the first accelerator and the second accelerator being the same. 3. The method of claim 1 , wherein the second ID of the first computing namespace and the second ID of the second computing namespace have different values based on the ID of the first program and the ID of the second program being different from each other; and wherein the second ID of the first computing namespace and the second ID of the second computing namespace have a same value based on the ID of the first program and the ID of the second program being the same. 4. The method of claim 3 , wherein each of the ID of the first program and the ID of the second program is one of a program unique ID (PUID) and a unique program ID (UPI). 5. The method of claim 1 , wherein the first accelerator and the second accelerator are different from each other, wherein the first ID of the first computing namespace and the first ID of the second computing namespace are different from each other, wherein the ID of the first program and the ID of the second program are the same, and wherein the second ID of the first computing namespace and the second ID of the second computing namespace have a same value. 6. The method of claim 1 , further comprising: setting, by the storage controller, a third computing namespace, which comprises a third queue and the second accelerator, and a first ID of the third computing namespace has a same value as the first ID of the second computing namespace, in response to an instruction to set the third computing namespace being received from a third host device. 7. The method of claim 1 , wherein the instructing the one of the first accelerator and the second accelerator to compute a first execute command comprises: receiving, by the storage controller, the first execute command from the first host device; storing, by the storage controller, the first execute command in the first queue; selecting, by the storage controller, one of the first accelerator and the second accelerator based on the first ID of the first computing namespace, the first ID of the second computing namespace, the second ID of the first computing namespace, and the second ID of the second computing namespace having different value; and computing, by the selected accelerator, stored data in accordance with the first execute command, using the first program. 8. The method of claim 1 , wherein the selecting, by the storage controller, one of the first accelerator and the second accelerator comprises: selecting, by the storage controller, the first accelerator in response to the first accelerator not being busy; selecting, by the storage controller, the second accelerator in response to the first accelerator being busy, and the first ID of the first computing namespace and the first ID of the second computing namespace being the same; and selecting, by the storage controller, the second accelerator in response to the first accelerator being busy, the first ID of the first computing namespace and the first ID of the second computing namespace being different, and the second ID of the first computing namespace and the second ID of the second computing namespace being the same. 9. The method of claim 1 , wherein the first execute command is an execute command in accordance with a Non-Volatile Memory express (NVMe) standard. 10. A method of operating a computational storage device, comprising: receiving, by a storage controller, from a host device, an execute command giving an instruction to process a computation using a first computing namespace, wherein the first computing namespace comprises a first queue and a first accelerator, and a first program, and wherein the first accelerator has a first identifier (ID); storing, by the storage controller, the execute command in the first queue; selecting, by the storage controller, the first accelerator in response to the first accelerator not being busy; identifying, by the storage controller, a second accelerator from among a plurality of accelerators, in response to the first accelerator being busy based on a first ID of the second accelerator having a same value as the first ID of the first accelerator; selecting, by the storage controller, the second accelerator in response to the second accelerator not being busy; selecting a third accelerator from among the plurality of accelerators, in response to the second accelerator being busy based on a second ID of the third accelerator having a same value as a second ID of the first accelerator and based on a first ID of the third accelerator having a different value than the second ID of the third accelerator; and computing, by whichever of the first accelerator, the second accelerator, and the third accelerator is selected, data in accordance with the execute command, using the first program. 11. The method of claim 10 , wherein the second accelerator is mapped to the first queue. 12. The method of claim 10 , wherein the first program is activated in a computing namespace comprising the third accelerator. 13. The method of claim 10 , wherein the data is stored in a nonvolatile memory of the computational storage device. 14. The method of claim 10 , wherein the execute command is an execute command in accordance with the Non-Volatile Memory express (NVMe) standard. 15. A computational storage device comprising: a nonvolatile memory storing data; a storage controller configured to control the nonvolatile memory; and a plurality of accelerators c
by maintaining request order · CPC title
Wear leveling · CPC title
Cleaning, compaction, garbage collection, erase control · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
Garbage collection, i.e. reclamation of unreferenced memory · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.