Local non-volatile memory express virtualization device
US-2021349841-A1 · Nov 11, 2021 · US
US12223210B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12223210-B2 |
| Application number | US-202318229902-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 3, 2023 |
| Priority date | Jun 2, 2021 |
| Publication date | Feb 11, 2025 |
| Grant date | Feb 11, 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.
A system includes a virtual computational storage emulation module configured to provide a virtual computational storage device. The system further includes a storage element, where the virtual computational storage emulation module is configured to store data associated with the virtual computational storage device at the storage element. The system further includes a compute element. The virtual computational storage emulation module is configured to send a compute request associated with the virtual computational storage device to the compute element.
Opening claim text (preview).
What is claimed is: 1. A system comprising: a first storage element configured to store first data; a first compute element; a second compute element; and a processor configured to execute instructions for providing a virtual computational storage device, the instructions further causing the processor to: receive a first compute request associated with the virtual computational storage device; determine that the first compute request is directed to the first data stored in the first storage element; based on the instructions that cause the processor to determine that the first compute request is directed to the first data, send the first compute request to the first compute element for generating a first output based on the first compute request, wherein the first compute request is associated with the first data; receive a second compute request associated with the virtual computational storage device; and send the second compute request to the second compute element for generating a second output based on the second compute request. 2. The system of claim 1 , wherein the first storage element comprises a solid state drive, and wherein the first storage element, the first compute element, and the second compute element correspond to components of a computational storage device. 3. The system of claim 1 , wherein the first storage element, the first compute element, and the second compute element correspond to components of a server device. 4. The system of claim 1 , wherein the first storage element corresponds to a component of a storage device, and wherein one of the first compute element or the second compute element corresponds to a component of a device distinct from the storage device. 5. The system of claim 1 , wherein the instructions further cause the processor to advertise availability of the virtual computational storage device. 6. The system of claim 1 , wherein the system further includes a second storage element, wherein the instructions further cause the processor to store second data associated with the virtual computational storage device at the second storage element. 7. The system of claim 6 , wherein a first address range of the virtual computational storage device is associated with the first storage element, wherein a second address range of the virtual computational storage device is associated with the second storage element, and wherein the instructions further cause the processor to: store the first data at the first storage element in response to a first request to store the first data for the first address range; and store the second data at the second storage element in response to a second request to store the second data for the second address range. 8. The system of claim 6 , wherein the instructions further cause the processor to select the second storage element to store the second data based on a load balancing algorithm. 9. The system of claim 1 , wherein the instructions further cause the processor to: translate the first compute request to generate a translated first compute request, wherein the translated first compute request is configured to be sent to the first compute element for generating the first output. 10. The system of claim 1 , wherein the instructions further cause the processor to select the second compute element for the second compute request based on an address of second data associated with the second compute request. 11. The system of claim 1 , wherein the instructions further cause the processor to select the second compute element for the second compute request based on a load balancing algorithm. 12. The system of claim 1 , wherein the instructions further cause the processor to provide a second virtual computational storage device. 13. The system of claim 12 , wherein the instructions further cause the processor to store second data associated with the second virtual computational storage device at the first storage element. 14. The system of claim 12 , wherein the instructions further cause the processor to send a third compute request associated with the second virtual computational storage device to the first compute element. 15. A method comprising: providing, by a processor, a virtual computational storage device, wherein first data associated with the virtual computational storage device is stored at a first storage element; receiving, by the processor, a first compute request associated with the virtual computational storage device; determining, by the processor, that the first compute request is directed to the first data stored in the first storage element; based on the determining that the first compute request is directed to the first data, sending the first compute request to a first compute element for generating a first output based on the first compute request, wherein the first compute request is associated with the first data; receiving, by the processor, a second compute request associated with the virtual computational storage device; and sending, by the processor, the second compute request to a second compute element for generating a second output based on the second compute request. 16. The method of claim 15 , wherein second data associated with the virtual computational storage device is stored at a second storage element. 17. The method of claim 16 , wherein a first address range of the virtual computational storage device is associated with the first storage element, wherein a second address range of the virtual computational storage device is associated with the second storage element, the method further comprising: storing the first data at the first storage element in response to a first request to store the first data for the first address range; and storing the second data at the second storage element in response to a second request to store the second data for the second address range. 18. The method of claim 15 , further comprising: receiving a storage request identifying a first address of the virtual computational storage device; and sending a translated storage request to the first storage element, the translated storage request identifying a translated address of the first storage element. 19. The method of claim 15 further comprising: translating, by the processor, the first compute request to generate a translated first compute request, wherein the translated first compute request is sent to the first compute element for generating the first output. 20. The method of claim 15 further comprising: selecting the second compute element for the second compute request based on an address of second data associated with the second compute request.
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
by changing the path, e.g. traffic rerouting, path reconfiguration · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
I/O management, e.g. providing access to device drivers or storage · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.