Method for minimizing the translation overhead for large I/O transfers
AssigneeInternational Business Machines Corporation
InventorsPatrick Buckland, Binh Hua, Sivarama Kodukula
Life of this patent
Estimating the term…
Abstract
A number of DMA addresses are resolved to system memory addresses at a time to decrease latency time. The number of addresses resolved at a time is preferably correlated to the number of DMA addresses that can be stored in a single cache line. Additionally, system memory is allocated in larger blocks that can store all of the information from the DMA addresses in a cache line. No change is required to the operating system, which can continue to operate on the page size it is set for. All changes are made in the hardware mapping programs and in the device driver software.
Claims13
A method for performing direct memory access (DMA) input/output (I/O), said method comprising the steps:
- providing n DMA addresses to be resolved to n respective system memory addresses in a single call to an address mapping routine;
- when said n respective system memory addresses have been resolved, storing the information from said n DMA addresses in n contiguous pages of system memory, and setting n respective indicators to a first value;
- when an operating system releases one of said n pages of system memory, setting a respective one of said n indicators to a second value that is different from said first value;
- and
- when all of said n respective indicators are set to said second value, adding said n DMA addresses to an output buffer pool.
A method for managing system memory, said method comprising the steps:
- in an operating system using said system memory, requesting and releasing system memory in pages that consist of a given number of bytes of memory;
- in a device driver writing directly to said system memory and in hardware mapping of said system memory, allocating and freeing said system memory in blocks that consist of n contiguous pages of memory, where n is an integer greater than 1.
A computer system comprising:
- an operating system running on a processor;
- a system memory accessed by said processor;
- and
- a device connected to perform direct memory access (DMA) on said system memory;
- wherein said operating system requests and releases system memory in pages that consist of a fixed number of bytes of memory;
- wherein a device driver writing to said system memory allocates and frees said system memory in blocks that consist of n contiguous pages of memory, where n is an integer greater than 1.
Dependencies are inferred from the claim text.