Discuss 8237 DMA controller in detail.
The 8237 DMA Controller : 8237 is a programmable DMA controller present in 40 pin package. 8237 has a 4 channels with channel capable of transferring 64kb. It must interface with two types of devices : the MPU and peripherals such as floppy disks. As mentioned earlier, the DMA plays two roles in a given system : It is an I/O to the microprocessor (slave mode) and it is a data transfer processor to peripherals such as floppy disks (master mode). Many of its signals that are input in the I/O mode become outputs in the processor mode. It also needs additional signals lines to communicate with the address 64 k data bytes and these signals must be generated externally by using latches and buffers. The 8237 is complex device. To maintain clarity, the following discussion is divided into five segments : DMA channels and interfacing. DMA signals, system interface programming, and DMA execution.
Block Diagram of 8237 : Figure shows the internal block diagram of 8237. It contains blocks of control logic and internal registers.
The block diagram of 8237 DMA controller |
Control Logic : The 8237 A contains three blocks of control logic.
- Timing Control Block : It generates internal timing and external control signal for the 8237A.
- Program Command Control Block : It decodes various commands given to 8237A by the microprocessor before servicing a DMA request. It also decodes the 'Mode control word, which is used to select the type of DMA during the servicing.
- Priority Encoder Block : It resolves the priority between DMA channels requesting services simultaneously.
- Internal Registers : The 8237 contains 344 bits internal memory in the form of registers.