Methods for internal data movements of a flash memory device and apparatuses using the same
US-2019095123-A1 · Mar 28, 2019 · US
US11093177B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11093177-B2 |
| Application number | US-201916447094-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 20, 2019 |
| Priority date | Dec 21, 2017 |
| Publication date | Aug 17, 2021 |
| Grant date | Aug 17, 2021 |
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 reception of a request from a first application to create a virtual open-channel solid state drive associated with a first bandwidth and first capacity, association, in response to the request, of block addresses of a virtual address space of the first application with block addresses of one or more blocks of a first one of a first plurality of channels of a first open-channel solid state drive and with block addresses of one or more blocks of a second one of the first plurality of channels, reception, from the first application, of a first I/O call associated with one or more block addresses of the virtual address space, determination of block addresses of one or more blocks of the first one of the first plurality of channels which are associated with the one or more block addresses of the virtual address space, and execution of the first I/O call on the determined block addresses of one or more blocks of the first one of the first plurality of channels.
Opening claim text (preview).
What is claimed is: 1. A system comprising: a first open-channel solid state drive comprising a first plurality of channels, each of the first plurality of channels comprising a respective plurality of blocks; and a data server comprising a processing unit to execute program code to cause the data server to: associate block addresses of a virtual address space of a first application with block addresses of one or more blocks of a first one of the first plurality of channels and with block addresses of one or more blocks of a second one of the first plurality of channels; receive, from the first application, a first I/O call associated with one or more block addresses of the virtual address space; determine block addresses of one or more blocks of the first one of the first plurality of channels which are associated with the one or more block addresses of the virtual address space; and execute the first I/O call on the determined block addresses of one or more blocks of the first one of the first plurality of channels. 2. The system according to claim 1 , wherein the processing unit is to execute program code to cause the data server to: receive, from the first application, a second VO call associated with a second one or more block addresses of the virtual address space; determine block addresses of one or more blocks of the one of the second one of the first plurality of channels which are associated with the second one or more block addresses of the virtual address space; and execute the second VO call on the determined block addresses of one or more blocks of the second one of the first plurality of channels. 3. The system according to claim 1 , further comprising a second open-channel solid state drive located remote from the first open-channel solid state drive. 4. The system according to claim 1 , wherein the processing unit is to execute program code to cause the data server to: receive, from the first application, a second VO call associated with a second one or more block addresses of the virtual address space; determine block addresses of a second one or more blocks of the first one of the first plurality of channels which are associated with the second one or more block addresses of the virtual address space; and execute the second VO call on the determined block addresses of the second one or more blocks of the first one of the first plurality of channels. 5. The system according to claim 1 , wherein the processing unit is to execute program code to cause the data server to: associate block addresses of a virtual address space of a second application with block addresses of a second one or more blocks of a third one of the first plurality of channels and with block addresses of a second one or more blocks of a fourth one of the first plurality of channels; receive, from the second application, a second VO call associated with one or more block addresses of the virtual address space of the second application; determine block addresses of one or more blocks of the third one of the first plurality of channels which are associated with the one or more block addresses of the virtual address space of the second application; and execute the second VO call on the determined block addresses of one or more blocks of the third one of the first plurality of channels which are associated with the one or more block addresses of the virtual address space of the second application. 6. A computer-implemented method comprising: receiving a request from a first application to create a virtual open-channel solid state drive associated with a first bandwidth and first capacity; in response to the request, associating block addresses of a virtual address space of the first application with block addresses of one or more blocks of a first one of a first plurality of channels of a first open-channel solid state drive and with block addresses of one or more blocks of a second one of the first plurality of channels of the first open-channel solid state drive; receiving, from the first application, a first I/O call associated with one or more block addresses of the virtual address space; determining block addresses of one or more blocks of the first one of the first plurality of channels which are associated with the one or more block addresses of the virtual address space; and executing the first I/O call on the determined block addresses of one or more blocks of the first one of the first plurality of channels. 7. The method according to claim 6 , wherein associating block addresses of the virtual address space of the first application with block addresses of one or more blocks of the first one of the first plurality of channels and with block addresses of one or more blocks of the second one of the first plurality of channels comprises: associating block addresses of the virtual address space of the first application with block addresses of one or more blocks of the first one of the first plurality of channels, with block addresses of one or more blocks of the second one of the first plurality of channels, and with block addresses of one or more blocks of a third one of the first plurality of channels. 8. The method according to claim 7 , further comprising: receiving, from the first application, a second VO call associated with a second one or more block addresses of the virtual address space; determining block addresses of one or more blocks of the third one of the first plurality of channels which are associated with the second one or more block addresses of the virtual address space; and executing the second VO call on the determined block addresses of one or more blocks of the third one of the first plurality of channels. 9. The method according to claim 6 , further comprising: receiving, from the first application, a second VO call associated with a second one or more block addresses of the virtual address space; determining block addresses of one or more blocks of the second one of the first plurality of channels which are associated with the second one or more block addresses of the virtual address space; and executing the second VO call on the determined block addresses of one or more blocks of the second one of the first plurality of channels. 10. The method according to claim 6 , further comprising: receiving a request from a second application to create a second virtual open-channel solid state drive associated with a second bandwidth and second capacity; in response to the request, associating block addresses of a virtual address space of the second application with block addresses of a third one or more blocks of the first one of the first plurality of channels and with block addresses of a fourth one or more blocks of the first one of the second plurality of channels; receiving, from the second application, a second VO call associated with one or more block addresses of the virtual address space of the second application; determining block addresses of one or more blocks of the third one of the first plurality of channels which are associated with the one or more block addresses of the virtual address space of the second application; and executing the second VO call on the determined block addresses of one or more blocks of the third one of the first plurality of channels which are associated with the one or more block addresses of the virtual address space of the second application. 11. The method according to claim 10 , wherein associating the block addresses of the virtual address space of the first application with block addresses of one or more blocks of the first one of the first plurality of channels and with block addresses of one or more block
by allocating resources to storage systems · CPC title
Non-volatile semiconductor memory arrays · CPC title
Isolation or security of virtual machine instances · CPC title
where tasks reside in different layers, e.g. user- and kernel-space · CPC title
Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.