Direct Memory Access (DMA) :
The DMAC (Direct Memory Access Controller) allows the devices to read/write from/to the memory location without the use of processor. They are used in Sound cards, Video cards, Disk controllers, etc.An Basic Direct Memory Access operation goes like,
- The I/O interface requests DMAC for an DMA operation.
- DMAC sends hold signal to the processor requesting for the data and address bus
- The processor sends the hold acknowaldge signal to the DMAC indicating the data and address bus were given.
- DMAC send the address of the data to the address bus
- Then DMAC requests I/O interface for the data
- Data recieved is sent to the data bus
- DMAC latches the interface
- Sends hold low signal to drop the hold cycle to the processor
- Processor drops the HLDA signal
- Increases the address register by one
- Increases the Program counter by one
DMAC uses two signals for requesting and acknowladging the DMA operations:
HOLD: If active, indicates the data bus and address bus were given to the DMAC and the processor is in hold.
HLDA: If active, indicates the processor that the DMA operation is active.
DMAC allows different types of data transfer processes,
Cycle steal:
DMAC can use the data bus either when the Processor is not using it or it can force the CPU to suspend it's current operation and use the data bus. The Latter method is called cycle stealing. Note: Cycle Stealing can be only done in certain break points in the instruction cycle.
Brust Transfer:
In brust mode, the DMAC forces the operations of Processor to be halted for the duration of data transfer.
Hidden DMA:
DMAC allows Hidden DMA operation as well. DMAC monitor's every execution of the processor's instruction and when it reconizes that there is an instruction with sufficient empty clock cycle for a byte of data transfer, it waits until the processor is decoding the opcode then grabs the bus for the data transfer...
No comments:
Post a Comment