Direct Memory Access(直接内存存取) Used to avoid programmed w/o for large data movement (用来避免编程Ⅳo来传输大量的数据) ° Requires DMA controller(需要DMA控制器) Bypasses CPU to transfer data directly between I/O device and memory(绕过cPU来在O设备和内存之间直接传输数据 Applied Operating System Concepts 12 Silberschatz, Galvin, and Gagne @1999
12.6 Silberschatz, Galvin, and Gagne ©1999 Applied Operating System Concepts Direct Memory Access(直接内存存取) • Used to avoid programmed I/O for large data movement (用来避免编程I/O来传输大量的数据) • Requires DMA controller(需要DMA控制器) • Bypasses CPU to transfer data directly between I/O device and memory (绕过CPU来在I/O设备和内存之间直接传输数据)
Six step process to perform DMa transfer 道讨六 传输 1. device driver is told to transfer disk data to buffer at address x CPU DMA controller transfers 2 device driver tells disk bytes to buffer X controller to transfer c increasing memory bytes from disk to buffer cache address and decreasing at address x C until C= 0 6. when C=0. DMA interrupts CPU to signal DMA/bus/interrupt -CPU memory bus controller memorybuffer transfer completion PCI bus 3. disk controller initiates DMA transfer iDE disk controller 4. disk controller send each byte to DMA controller Applied Operating System Concepts 12.7 Silberschatz, Galvin, and Gagne @1999
12.7 Silberschatz, Galvin, and Gagne ©1999 Applied Operating System Concepts Six step process to perform DMA transfer (通过六步来完成DMA传输)