Haldia Institute of Technology,Haldia • INTRODUCTION Direct Memory Access(DMA) is a method of allowing data to be moved from one location to another in a computer without intervention from the central processing unit(CPU).
The DMA I/O technique provides direct access to the memory
while the microprocessor is temporarily disabled.
The DMA controller temporarily borrows the address bus ,data
bus and control bus from the microprocessor and transfers the data directly from the external devices to a series of memory locations (and vice versa). The 8237 supplies memory & I/O with control signals and memory address information during the DMA transfer. It is actually a special-purpose microprocessor whose job is high speed data transfer between memory and I/O. Expandable to any number of DMA channel inputs. 8237 is capable of DMA transfers at rates upto 1.6 MB per second. CURRENT ADDRESS REGISTER(16 bits) This register holds the value of the address used during DMA transfers .The address is automatically incremented or decremented (by one) after each transfer
CURRENT WORD COUNT REGISTER (16 bits)
This register determines the number of transfers to be performed .The actual number of transfers is one more than the number programmed in the current word count register. BASE ADDRESS AND BASE WORD COUNT REGISTERS(16 bits) Each channel has a pair of base address and base word count registers.These 16-bit registers store the original value of their associated current registers.
COMMAND REGISTER(8 bits)
This 8-bit register controls the operation of the 8237.It is programmed by the microprocessor and is cleared by the reset or master clear instruction. MODE REGISTER(6 bits) Each channel has a mode register associated with it.When the register is being written into by the microprocessor in the program condition,the least significant bits 0 andz 1 determine which channel is chosen. STATUS REGISTER(8 bits) The status register contains information about the status of the devices to be read by the processor at any time.
• TEMPORARY REGISTER(8 bits)
The temporary register is used to hold data during memory-to-memory transfers.The temporary register always contains the last byte transferred in the previous memory-to-memory operations ,if not cleared by a reset or master clear. DMA saves lots of CPU time so that CPU can have more time to execute CPU bound tasks. High transfer rates. Fewer CPU cycles for each transfer. Provides direct access to the memory while the microprocessor is temporarily disabled. More expensive system. The CPU will be fully occupied in any read/write operation,enabling DMA reading writing data in the internal memory. • [1].Microprocessors and Microcontrollers by N.Senthil Kumar,Second Edition,OXFORD University Press. [2] “The 8051 Microcontroller and Embedded Systems” by Mazidi and Mazidi.