DMA channels
AssigneeMicrosoft Technology Licensing, LLC
InventorsShaun David Cox, Fehim Soner Terek, Jinsong Yu, Christopher Wellington Brumme, Gregory Michael Neverov
Life of this patent
Estimating the term…
Abstract
Communicating between an application and a hardware device. A method includes an application writing data to host physical memory using an application view of the memory. The method further includes mapping the data in the physical memory to a hardware driver view, usable by a hardware driver, without needing to copy the data to a different physical storage location. The method further includes mapping the data to a hardware accessible view accessible by a hardware device without needing to copy the data to a different physical storage location.
Claims19
In a computing environment comprising one or more processors and a physical memory, a method of limiting an amount of data that is copied when communicating between an application and a hardware device, the method comprising:
- an application writing data to a physical memory using an application view of the physical memory;
- mapping the data in the physical memory to a hardware driver view, usable by a hardware driver, without copying the data to a different physical storage location;
- and
- mapping the data in the physical memory to a hardware accessible view accessible by a hardware device without copying the data to a different physical storage location,
- wherein the physical memory comprises a mapped chunk of memory holding a plurality of control messages at different offsets of the mapped memory for communicating with the hardware device, and wherein mapping the data to the hardware accessible view comprises communicating to the hardware device an offset in the mapped chunk of memory corresponding to each control message, enabling the hardware device to retrieve each control message from the mapped chunk of memory.
In a computing environment, a method of limiting an amount of data that is copied when communicating between an application and a hardware device, the method comprising:
- a hardware device writing data to a physical memory using a hardware view of the physical memory;
- mapping the data in the physical memory to a hardware driver view, usable by a hardware driver, without copying the data to a different physical storage location;
- and
- mapping the data to an application accessible view accessible by an application without copying the data to a different physical storage location,
- wherein the physical memory comprises a mapped chunk of memory holding a plurality of control messages at different offsets of the mapped memory for communicating with the hardware device, and wherein the hardware view of the physical memory communicates to the hardware device an offset in the mapped chunk of memory corresponding to each control message, thereby enabling the hardware device to retrieve each control message from the mapped chunk of memory.
A system comprising:
- one or more processors;
- a hardware device;
- system memory;
- and
- one or more hardware storage devices having stored thereon computer-executable instructions that, when executed by the one or more processors, limit an amount of data that is copied in the system memory when facilitating communication between an application executing at the one or more processors and the hardware device, wherein the computer-executable instructions cause the computer system to perform at least the following:
- presenting an application view of the system memory to the application, wherein when the application produces first payload data to be sent to the hardware device or consumes second payload data from the hardware device, the application writes the first payload data to the system memory or reads the second payload data from the system memory using the application view of the system memory;
- presenting a hardware driver view of the system memory to a hardware driver, wherein when the hardware driver to produces or consumes control data, the hardware driver accesses the system memory using the hardware driver view of the system memory;
- and
- presenting a hardware device view of the system memory to the hardware device, wherein the hardware device is configured to receive the first payload data directly from the system memory and write the second payload data directly to the system memory using the hardware device view of the system memory, such that the first payload data and the second payload data are transferred between the hardware device and the application, and the control data is transferred between the driver and the hardware device without actually copying the data,
- wherein the memory comprises a mapped chunk of memory holding the control data, the control data comprising a plurality of control messages at different offsets of the mapped memory for communicating with the hardware device, and wherein the hardware device view of the system memory communicates to the hardware device an offset in the mapped chunk of memory corresponding to each control message, thereby enabling the hardware device to retrieve each control message from the mapped chunk of memory.
Dependencies are inferred from the claim text.