Virtual Remote Direct Memory Access Management
US-2016239323-A1 · Aug 18, 2016 · US
US12026103B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-12026103-B1 |
| Application number | US-202117444352-A |
| Country | US |
| Kind code | B1 |
| Filing date | Aug 3, 2021 |
| Priority date | Apr 14, 2016 |
| Publication date | Jul 2, 2024 |
| Grant date | Jul 2, 2024 |
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 resource request is received by a peripheral device from host processing logic. The resource request includes a requested resource size. The peripheral device allocates resource of the peripheral device in response to the resource request. A resource response is sent by the peripheral device to the host processing logic. The resource response includes a location of the allocated resource.
Opening claim text (preview).
What is claimed is: 1. A system comprising: host processing logic; a host memory accessible to the host processing logic; a peripheral device including a device memory, a bus interface, and a communication interface; and a peripheral bus communicatively coupling the host processing logic and the peripheral device, wherein the host processing logic is configured to send a queue request to the peripheral device over the peripheral bus, the queue request including a size of a queue to be created in the device memory, wherein the peripheral device is configured to: allocate queue memory space in the device memory for the size of the queue in response to receiving the queue request; send, by the bus interface, a queue response to the host processing logic, the queue response including a location of the queue memory space and locations of queue registers for managing the queue; receive, by the bus interface, a descriptor addressed to the queue memory space; store the descriptor to the queue memory space; fetch data from the host memory based on a host memory location of the data included in the descriptor; and transmit, by the communication interface, the data from the peripheral device. 2. The system of claim 1 , wherein the location of the queue memory space and the locations of the queue registers are base address register (BAR) offsets of a BAR. 3. The system of claim 1 , wherein the peripheral device is a network device. 4. The system of claim 1 , wherein the queue request is generated by a virtual machine or a processor core. 5. A peripheral device comprising: an interface; a device memory; and processing logic coupled to the interface and configured to read and write to the device memory, wherein the peripheral device is configured to: receive, by the interface, a resource request from host processing logic, wherein the resource request includes a requested resource size; allocate a resource of the peripheral device in response to the resource request, wherein a size of the allocated resource corresponds to the requested resource size included in the resource request; and transmit, by the interface, a resource response to the host processing logic, the resource response including an address of the allocated resource, a resource identifier, and a size of the allocated resource. 6. The peripheral device of claim 5 , wherein the address of the allocated resource is determined by the peripheral device. 7. The peripheral device of claim 5 , wherein the resource request is a first resource request from a first resource requester of the host processing logic, and the requested resource size is a first requested resource size, and wherein the peripheral device is configured to: receive, by the interface, a second resource request from a second resource requester of the host processing logic, wherein the second resource request includes a second requested resource size of the resource; and allocate the resource of the peripheral device to the second resource requester according to the second requested resource size in response to the second resource request. 8. The peripheral device of claim 5 , wherein the resource request is a first resource request from a resource requester of the host processing logic, and the requested resource size is a first requested resource size, and wherein the peripheral device is configured to: receive, by the interface, a second resource request from the resource requester of the host processing logic, wherein the second resource request includes a second requested resource size of the resource; and adjust the size of the allocated resource according to the second requested resource size in response to the second resource request. 9. The peripheral device of claim 8 , wherein the resource requester is a virtual machine or a processor core of the host processing logic. 10. The peripheral device of claim 5 , wherein the resource is a queue in the device memory. 11. The peripheral device of claim 10 , wherein the queue is a submission queue or a completion queue. 12. The peripheral device of claim 10 , wherein the peripheral device is configured to further allocate a queue register for managing the queue. 13. The peripheral device of claim 12 , wherein the queue register is a doorbell register or an unmask interrupt register. 14. The peripheral device of claim 5 , wherein the peripheral device is configured to transmit the address of the allocated resource as a base address register (BAR) offset. 15. The peripheral device of claim 5 , wherein the resource is a buffer or a table. 16. The peripheral device of claim 5 , wherein the peripheral device is a network device. 17. A method comprising: receiving, by an interface of a peripheral device, a resource request from host processing logic, wherein the resource request includes a requested resource size; allocating a resource of the peripheral device in response to the resource request, wherein a size of the allocated resource corresponds to the requested resource size included in the resource request; and transmitting, by the interface, a resource response to the host processing logic, the resource response including an address of the allocated resource, a resource identifier, and a size of the resource. 18. The method of claim 17 , wherein the address of the allocated resource is determined by the peripheral device. 19. The method of claim 17 , wherein the resource request is a first resource request from a first resource requester of the host processing logic, and the requested resource size is a first requested resource size, and wherein the method further comprises: receiving, by the interface, a second resource request from a second resource requester of the host processing logic, wherein the second resource request includes a second requested resource size of the resource; and allocating the resource of the peripheral device to the second resource requester according to the second requested resource size in response to the second resource request. 20. The method of claim 17 , wherein the resource request is a first resource request from a resource requester of the host processing logic, and the requested resource size is a first requested resource size, and wherein the method further comprises: receiving, by the interface, a second resource request from the resource requester of the host processing logic, wherein the second resource request includes a second requested resource size of the resource; and adjusting the size of the allocated resource according to the second requested resource size in response to the second resource request.
Network integration; Enabling network access in virtual machine instances · CPC title
Memory management, e.g. access or allocation · CPC title
Hypervisor-specific management and integration aspects · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
by allocating resources to storage systems · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.