Scalable low-latency storage interface
US-10503434-B2 · Dec 10, 2019 · US
US11467764B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11467764-B2 |
| Application number | US-202017072038-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 16, 2020 |
| Priority date | Jun 30, 2018 |
| Publication date | Oct 11, 2022 |
| Grant date | Oct 11, 2022 |
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 non-volatile memory express (NVMe)-based data read method, apparatus, and system are provided. In various embodiments, a read instruction can be triggered by a host. The read instruction carries indication information of a first address opened by the host to an NVMe controller for addressing and accessing. In those embodiments, the host after obtaining the read instruction can send a data packet to the host. The data packet carries the first address and payload data. Still in those embodiments, the host can, after receiving the data packet, determine a second address based on the first address, and store the payload data into storage space indicated by the second address. The second address may be a private memory address of the host. Because a relationship between the second address and a communication protocol is broken, and the host may access the second address without being restricted by the communication protocol.
Opening claim text (preview).
What is claimed is: 1. A non-volatile memory express (NVMe)-based data read system, wherein the system comprises: a host; an NVMe controller; and a storage medium; wherein the host is configured to: use a first address as a data portal address for the NVMe controller; and trigger a read instruction, wherein the read instruction carries indication information indicating the first address; wherein the NVMe controller is configured to: obtain the read instruction; read, from the storage medium, data corresponding to the read instruction; and send a first data packet to the host, wherein the first data packet carries the first address and first payload data, wherein the first address is a destination address of the first data packet, and wherein the data read from the storage medium comprises the first payload data; and wherein the host is further configured to: receive the first data packet carrying the first address and the first payload data; and without writing the first payload data into a storage space indicated by the first address, determine a second address based on the first address carried in the first data packet, and write the first payload data into a storage space indicated by the second address. 2. The system according to claim 1 , wherein the host is further configured to, after completing a write operation on the storage space indicated by the second address, perform an operation on data in the storage space indicated by the second address. 3. The system according to claim 2 , wherein the NVMe controller is further configured to trigger a completion queue entry (CQE), wherein the CQE indicates that the NVMe controller has completed a read operation specified by the read instruction; and wherein the host is further configured to, after performing the operation on the data in the storage space indicated by the second address, obtain the CQE. 4. The system according to claim 2 , wherein the host is further configured to, after performing the operation on the data in the storage space indicated by the second address, release the storage space indicated by the second address. 5. The system according to claim 1 , wherein the host is further configured to, before triggering the read instruction, allocate the storage space indicated by the second address to the read instruction, and record a correspondence between the first address and the second address. 6. The system according to claim 5 , wherein the data corresponding to the read instruction corresponds to at least two data packets, and wherein the host is configured to allocate at least two storage units to the read instruction. 7. The system according to claim 6 , wherein the host is configured to determine the second address based on the first address and a sequence of the first payload data with respect to the data read from the storage medium. 8. The system according to claim 7 , wherein the NVMe controller is further configured to send a second data packet to the host, the second data packet carries the first address and second payload data, and the data read from the storage medium comprises the second payload data; and wherein the host is further configured to: receive the second data packet; and determine a sequence of the first payload data and the second payload data with respect to the data read from the storage medium based on a sequence of receiving the first data packet and the second data packet. 9. The system according to claim 7 , wherein the first data packet further carries an offset of the first payload data with respect to the data, and the offset indicates the sequence of the first payload data with respect to the data read from the storage medium. 10. The system according to claim 1 , wherein the first address is a PCIe address, the first data packet is a PCIe packet, and the storage space indicated by the second address is memory space of the host. 11. A non-volatile memory express (NVMe)-based data read method, wherein the method comprises: using, by a host, a first address as a data portal address for an NVMe controller; triggering, by the host, a read instruction, wherein the read instruction carries indication information indicating the first address; receiving, by the host, a first data packet from the NVMe controller, wherein the first data packet carries the first address and first payload data, wherein the first address is a destination address of the first data packet; and without writing the first payload data into a storage space indicated by the first address, determining, by the host, a second address based on the first address carried in the first data packet, and writing, by the host, the first payload data into a storage space indicated by the second address. 12. The method according to claim 11 , wherein after the host completes a write operation on the storage space indicated by the second address, the method further comprises: performing, by the host, an operation on data in the storage space indicated by the second address. 13. The method according to claim 12 , wherein after the host performs the operation on the data in the storage space indicated by the second address, the method further comprises: obtaining, by the host, a completion queue entry (CQE) triggered by the NVMe controller, wherein the CQE indicates that the NVMe controller has completed a read operation specified by the read instruction. 14. The method according to claim 12 , wherein after the host performs the operation on the data in the storage space indicated by the second address, the method further comprises: releasing, by the host, the storage space indicated by the second address. 15. The method according to claim 11 , wherein before the host triggers the read instruction, the method further comprises: allocating, by the host, the storage space indicated by the second address to the read instruction, and recording a correspondence between the first address and the second address. 16. The method according to claim 15 , wherein to-be-read data corresponding to the read instruction corresponds to at least two data packets, and the host allocates at least two storage units to the read instruction. 17. The method according to claim 16 , wherein the host determines the second address based on the first address and a sequence of the first payload data with respect to the to-be-read data. 18. The method according to claim 11 , wherein the first address is a PCIe address, the first data packet is a PCIe packet, and the storage space indicated by the second address is memory space of the host. 19. A host, comprising: a processor; a memory configured to store instructions; and a bus, wherein the processor and the memory are coupled through the bus; and wherein the processor is configured to execute the instructions stored in the memory to facilitate the following being performed by the host: using a first address as a data portal address for a non-volatile memory express (NVMe) controller; triggering a read instruction, wherein the read instruction carries indication information indicating the first address; receiving a first data packet from the NVMe controller, wherein the first data packet carries the first address and first payload data, wherein the first address is a destination address of the first data packet; and without writing the first payload data into a storage space indicated by the first address, determining a second address based on the first address carried in the first data packet, and writing the first pa
Improving or facilitating administration, e.g. storage management · CPC title
Address translation · CPC title
PCI express · CPC title
Management of blocks · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.