Intel 8237
# Intel 8237

El Intel 8237 es un circuito integrado que cumple con la función de controlador de acceso directo a memoria (DMA), es parte de la familia de los microprocesadores MCS 85. Fue usado como el controlador DMA en IBM PC original y en el IBM XT. Posteriormente, los computadores personales compatibles con IBM podían tener chipsets que emulaban las funciones del 8237 para la compatibilidad hacia atrás.

El controlador DMA 8237 suministraba a la memoria señales de control y direcciones de memoria durante la transferencia DMA. El 8237 permite transferencia de datos de alta velocidad entre la memoria y la I/O con una reducida carga sobre el procesador principal del sistema.

El 8237 es un dispositivo de cuatro canales que puede ser expandido para incluir cualquier número de canales DMA de entrada, aunque cuatro canales es común para muchos sistemas pequeños. El 8237 es capaz de transferencias DMA a índices de hasta 1,6 MB por segundo. Cada canal es capaz de direccionar una sección completa de memoria de 64 KB y puede transferir hasta 64 KB con una sola programación.

## Modos

Existen cuatro modos de transferencia:

* Single (Solo) - Un ciclo DMA, un ciclo del CPU, intercalados hasta que el contador de direcciones llegue a cero.
* Block (Bloque) - La transferencia progresa hasta que la cuenta de palabra alcance cero o la señal EOP se vuelva activada.
* Demand (Demanda) - La transferencia continúan hasta el TC o el EOP se hace activo o el DRQ se hace inactivo. Al CPU se le permite usar el bus cuando no es solicitada la transferencia.
* Cascade (Cascada) - Usada para conectar en cascada controladores DMA adicionales. El DREQ y el DACK se emparejan con el HRQ y el HLDA del siguiente chip para establecer una cadena de prioridad. Las señales reales del bus son ejecutadas por el chip en cascada.

Puede ser realizada una transferencia de memoria a memoria. Sin embargo, en el IBM PC y los compatibles, el canal 0 es usado para el refrescamiento de la memoria DRAM.

En el modo de autoinicialización, los valores de direcciones y contador son restaurados al recibir una señal de fin de proceso (EOP). Esto sucede sin ninguna intervención del CPU. Es usado para repetir la última transferencia.

Las señales del conteo terminal (TC) finalizan la transferencia a las tarjetas ISA. Al final de la transferencia, una autoinicialización ocurrirá si está configurada para hacer eso.

