DMA Controller 8257
DMA stands for direct memory access, thus 8257 is a controller chip required whenever we want direct memory access of some other device.
Three Transaction Methods
- Programmed IOs (like 8255 port used without handshake and Intr signals)
- Interrupt Driven IOs (like 8255 port used without handshake and Intr signals)
- DMA Transactions using a DMAC
Direct Memory Access Control (Peripheral Transactions Server) IOs
- Controller or server sends hold request for processor to grant on acknowledgement, the access to address and data buses, IORD, IOWR, MEMRD, MEMWR and IO buses.
- Once programmed for address of RAM block for transfer and for data counts of IO transactions with RAM, interrupts only at the end of a block transaction or last transaction.
8257 Four Channel DMAC Features
- Four channels
- Priority Resolution support
- TC output and Mark output (after 126 bytes transfer) for interrupts to processor for attention
- Auto-load on TC mode support for repeat transactions without reprogramming TC and MAR and mode
- TTL level inputs/outputs compatible with INTEL families
Programming the 8257
- Each channel has 16 bit register with an access address (write LSB and then MSB at that address to program
- Each channel has 16 bit register for TC register (written LSB and then MSB)
- A3 = 0 for selecting a channel’s address and TC registers
- 0000 means ch0 MAR address, 0001TC address
- 0010 means ch1 MAR address, 0011TC address
- 0100 means ch2 MAR address, 0101TC address
- 0110 means ch1 MAR address, 0111TC address
- A3 = 1, IORD = 0 for selecting status register






