Browse Prior Art Database

Method for Using Scatter-Gather Techniques to Bypass Hardware Limits on Maximum DMA Transfer Size

IP.com Disclosure Number: IPCOM000235994D
Publication Date: 2014-Apr-01
Document File: 2 page(s) / 31K

Publishing Venue

The IP.com Prior Art Database

Abstract

A method is disclosed for using scatter-gather techniques to bypass hardware limits on maximum Direct Memory Access (DMA) transfer size.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 01 of 2

Method for Using Scatter-Gather Techniques to Bypass Hardware Limits on Maximum DMA Transfer Size

When producing a hardware device to be used in a virtualized environment where it is shared by multiple virtual machines, it is important that the hardware device implements some sort of fairness scheme in order to prevent a virtual machine from monopolizing access to the hardware device. Often this fairness scheme is implemented using a combination of request-size and request-rate or throughput limits. Unfortunately, size limits imposed by the hardware device may have undesirable side effects making it difficult to perform tasks like updating firmware and performing function-level hardware testing and validation. For example, if a 30MB firmware update image is required to be transmitted to a device that limits data transfers to 1MB, then it is difficult to transmit.

Typically, an initial request is broken into multiple fragments; transmit each fragment to its destination where such fragments are then reassembled in the proper order. This leads to excessive handshaking between sender and receiver. Additionally, there may be insufficient memory to reassemble the fragments into a cohesive final image.

Disclosed is a method for using scatter-gather techniques to bypass hardware limits on maximum Direct Memory Access (DMA) transfer size.

In accordance with the method, each request is fragmented using a host driver. The host driver creates a pilot header that is used to describe a nature of request, overall size of the request, number of fragments and fragment size. A standalone request is

assembled around the pilot header. Additionally, the pilot header is constructed such that it causes a DMA engine to stall and notify an embedded firmware of an error condition.

The host driver breaks the request into N fragments of equal size (p...