algorithms for dma communications
A Direct Memory Access /DMA/ is previously used to transfer data between the main memory of host computer /PC/ and the network ? to another one PC. This method is used to free the processor from the burden of transfer operations. DMA procedures commonly are initiated by the operating system kernel to separate one application and its data with another.A cluster of PCs architecture suggests that interconnections get faster and overhead and latency in networks go down while operating system operations get slower. In clusters these factors are very important because an intensive data transfer between hosts. These trends imply that DMA operation becomes slower /using operating system kernel/, compared to interconnection network. The important aspect here is ability to transfer data directly between the network interface and application buffers. Such direct data path requires the network interface "to know" the virtual-to-physical address translation of a user buffer.This paper proposes several algorithms that allow applications to start DMA operation without OS kernel. The algorithms allow user-level applications to have direct access to the DMA engine and TLB library. This approach is achieved without requiring changes to the OS kernel. Using our algorithms, DMA operation can be initiated faster /in comparison to OS kernel/.
networks operating system kernel dma operation tlb library memory allocation