Intel 8237
Encyclopedia
Intel 8237 is a direct memory access
(DMA) controller , a part of the MCS 85 microprocessor family. It was used as the DMA controller in the original IBM PC
and IBM XT. Later IBM-compatible personal computers may have chip sets that emulate the functions of the 8237 for backward compatibility.
The 8237 DMA controller supplies the memory with control signals and memory address information during the DMA transfer. The 8237 permits high-speed data transfer between memory and the I/O with reduced load on the system main processor.
The 8237 is a four-channel device that can be expanded to include any number of DMA channel inputs, although four channels is common for many small systems. The 8237 is capable of DMA transfers at rates of up to per second. Each channel is capable of addressing a full 64k-byte section of memory and can transfer up to 64k bytes with a single programming.
Memory-to-memory transfer can be performed. However channel 0 is used for DRAM refresh on IBM PC compatibles.
In auto initialize mode the address and count values are restored upon reception of an end of process (EOP) signal. This happens without any CPU intervention. It's used to repeat the last transfer.
The terminal count (TC) signals end of transfer to ISA cards. At the end of transfer an auto initialize will occur configured to do so.
/88
microprocessors. A limitation on the IBM PC (AT) compatibles is that the 8237 at 0x00 and 74LS612 at 0x80 only can address 16 megabyte of memory; this is because the IBM AT, which introduced the dual 8237 DMA controller design, has an Intel 80286 microprocessor, which can directly address a maximum of 16 MB. This means that for other memory areas the data has to be transferred to a buffer first, and then moved to the final memory by the CPU. This is called "bounce buffer".
Direct memory access
Direct memory access is a feature of modern computers that allows certain hardware subsystems within the computer to access system memory independently of the central processing unit ....
(DMA) controller , a part of the MCS 85 microprocessor family. It was used as the DMA controller in the original IBM PC
IBM PC
The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...
and IBM XT. Later IBM-compatible personal computers may have chip sets that emulate the functions of the 8237 for backward compatibility.
The 8237 DMA controller supplies the memory with control signals and memory address information during the DMA transfer. The 8237 permits high-speed data transfer between memory and the I/O with reduced load on the system main processor.
The 8237 is a four-channel device that can be expanded to include any number of DMA channel inputs, although four channels is common for many small systems. The 8237 is capable of DMA transfers at rates of up to per second. Each channel is capable of addressing a full 64k-byte section of memory and can transfer up to 64k bytes with a single programming.
Modes
Four transfer modes exist:- Single - One DMA cycle, one CPU cycle interleaved until address counter reaches zero.
- Block - Transfer progresses until the word count reaches zero or the EOP signal goes active.
- Demand - Transfers continue until TC or EOP goes active or DRQ goes inactive. The CPU is permitted to use the bus when no transfer is requested.
- Cascade - Used to cascade additional DMA controllers. DREQ and DACK is matched with HRQ and HLDA from the next chip to establish a priority chain. Actual bus signals is executed by cascaded chip.
Memory-to-memory transfer can be performed. However channel 0 is used for DRAM refresh on IBM PC compatibles.
In auto initialize mode the address and count values are restored upon reception of an end of process (EOP) signal. This happens without any CPU intervention. It's used to repeat the last transfer.
The terminal count (TC) signals end of transfer to ISA cards. At the end of transfer an auto initialize will occur configured to do so.
IBM PC use
Although the 8237 was introduced with the 8-bit 8085 processor family, it is compatible with the 8086Intel 8086
The 8086 is a 16-bit microprocessor chip designed by Intel between early 1976 and mid-1978, when it was released. The 8086 gave rise to the x86 architecture of Intel's future processors...
/88
Intel 8088
The Intel 8088 microprocessor was a variant of the Intel 8086 and was introduced on July 1, 1979. It had an 8-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers and the one megabyte address range were unchanged, however...
microprocessors. A limitation on the IBM PC (AT) compatibles is that the 8237 at 0x00 and 74LS612 at 0x80 only can address 16 megabyte of memory; this is because the IBM AT, which introduced the dual 8237 DMA controller design, has an Intel 80286 microprocessor, which can directly address a maximum of 16 MB. This means that for other memory areas the data has to be transferred to a buffer first, and then moved to the final memory by the CPU. This is called "bounce buffer".
Integration into chipsets
Although this device may not appear as a discrete component in modern personal computer systems, it does appear within system controller chip sets. For example, the 82875P ISP integrated system peripheral controller has two DMA internal controllers programmed almost exactly like the 8237.See also
- Parallel ATA (P-ATA)
- Industry Standard ArchitectureIndustry Standard ArchitectureIndustry Standard Architecture is a computer bus standard for IBM PC compatible computers introduced with the IBM Personal Computer to support its Intel 8088 microprocessor's 8-bit external data bus and extended to 16 bits for the IBM Personal Computer/AT's Intel 80286 processor...
(ISA) - Input/output base addressInput/Output Base AddressIn the x86 architecture, an input/output base address is a base address of an I/O port. In other words, this is the first address of a range of consecutive I/O port addresses that device uses....
on IBM PC compatibles
External links
- [ftp://www.si.freebsd.org/www/data//doc/en_US.ISO8859-1/books/developers-handbook/dma.html DMA: What it is and How it Works] FreeBSD Developers' Handbook. 1997.