You are on page 1of 14

Acceso Directo a

Memoria y E/S
Controlado por DMA
Documento de Apoyo a la Docencia

Inga. Tatiana Vallejo


Arquitectura De Computadoras 2
OPERACIN BASICA DEL DMA
En un sistema basado en el microprocesador, la seal enviada por la terminal HOLD es la
encargada de solicitar una accin de DMA y la terminal HLDA es la encargada de reconocer esta
transferencia.
Cuando la seal HOLD est en alto, indica que se ha solicitado una accin de DMA. El
microprocesador suspende la ejecucin del programa y coloca los buses de direccionamiento, de
datos y de control en estado de alta impedancia, prcticamente pareciera que el microprocesador
ha sido retirado, pero en realidad le est permitiendo a los dispositivos E/S y a otros
microprocesadores (si hubiesen) accesar a los buses del sistema y por supuesto directamente a la
memoria.
A diferencia de la instruccin INTR o NMI que se ejecuta al final de una instruccin; la seal HOLD
tiene efecto a media instruccin. La nica terminal que tiene prioridad por encima de HOLD es la
terminal RESET.

La Lectura de DMA transfiere dados de memoria a dispositivo E/S, mientras que la escritura de
DMA transfiere datos de dispositivo E/S a memoria. El sistema debe poseer seales de control de
memoria y E/S independientes debido a que ambas operaciones son controladas simultneamente.
La lectura de DMA causa que la seal
e
se activen al mismo tiempo mientras que en
escritura las seales
e
se activen. Para controlar el bus del sistema se podra requerir
un circuito como el de la figura No. 1

Figura No. 1
Circuito Generador de Seales de Control de Sistema en un Ambiente DMA

La velocidad de transferencia depende de la velocidad del dispositivo de memoria o del controlador


DMA aunque generalmente el controlador DMA reduce la velocidad del sistema cuando est
ocurriendo una trasferencia DMA.

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 1
EL CONTROLADOR DE DMA 8237

Figura No. 2
Controlador de DMA programable 8237A-5 (Intel Corporation)

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 2
Este controlador (que en realidad es un microprocesador de propsito especfico) proporciona las
seales de control y direccionamiento necesarias durante la transferencia de DMA. Su misin
principal es realizar la transferencia de datos a alta velocidad entre dispositivos de E/S y memoria.
Es compatible con el microprocesador 8086 y 8088 y puede realizar transferencias de DMA a
velocidades de hasta 1.6 Mbps. Tiene cuatro canales que pueden direccionar secciones de memoria
de 64 KB y transferirlas con una sola programacin.

Figura No. 3
Terminales del controlador DMA programable

Sus terminales son:


CLK: Reloj de hasta 5 MHz

CS: Seleccin de dispositivo (generalmente conectada a la salida de un


decodificador)
RESET: Inicializa los registro de comando, estado, solicitud y temporales.
READY: Si la terminal est en 0 lgico, el CI entrada a esto de espera; con esto se logra
adaptar a componentes ms lentos.
HLDA: Le indica al microprocesador un reconocimiento de suspensin, para que este
ceda el control de buses

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 3
DREQ3-DREQ0: Entradas de solicitud de DMA. Una para cada uno de los cuatro canales

DN7-DB0: Terminales de bus de datos conectadas al bus de datos de microprocesador


IOR: Lectura de E/S (Bidireccional)
IOW: Escritura de E/S (Bidireccional)

EOP: Fin de proceso (Bidireccional) Termina el proceso de DMA. Se utiliza


frecuentemente para interrumpir una transferencia de DMA al final del ciclo de
DMA.
A3-A0: Terminales de direccin que selecciona un registro interno durante la
programacin y proporcionan la parte baja de la direccin de transferencia de
DMA
A7-A4: Terminales de direccin que proporcionan la parte alta de la direccin de
transferencia
HRQ: Solicitud de suspensin. Se conecta a la entrada HOLD del microprocesador
para solicitarle una transferencia de DMA.

DACK3-DACK0: Salidas de reconocimiento del canal DMA, son las encargadas de confirmar una
solicitud de canal. Son programables y a menudo se conecta con el dispositivo
de E/S controlado por el DMA para seleccionarlo.
AEN: Seal de habilitacin de direccin. Habilita el registro de direccin de DMA
conectado a las terminales DB
ADSTB: Pulso de direccin, es usado para escribir los bits de direccin A15.A8 en un
registro durante la transferencia de DMA

MEMR: Lectura de memoria. Indica a la memoria para que lea datos durante la
transferencia de DMA
MEMW: Escritura de memoria que le indica a la memoria para que escriba datos durante
un ciclo de lectura.

REGISTROS INTERNOS DEL CONTROLADOR


CAR: Registro de direccin actual. Se utiliza para retener la direccin de memoria de
16 bits para la transferencia de DMA. Existe un registro para cada canal.
CWCR: Registro de cuenta actual de palabras. Programa un canal para el nmero de
bytes transferidos en una accin de DMA. Si se necesita transferir 8 bytes el
registro debe contener un 7.

BA y BWC: Registros de direccin base y cuenta de palabras base. EN la auto inicializacin


estos dos registros se utilizan para recargar CAR y CWCR una vez terminada la
accin DMA, lo que permite utilizar la misma cuenta y direccin para la
trasferencia de datos en la misma rea de memoria.
CR: Registro de comandos. Programa la operacin del controlador.

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 4
Bit 0-Modo de transferencia. De memoria a memoria utilizan el canal 0 para
retener la direccin fuente y el canal 1 para retener la direccin destino.
Bit 1-programa el canal 0 para las transferencias de memoria a memoria. Por
ejemplo, si se debe llenar un rea de memoria con datos, el canal 0 puede
mantenerse en la misma direccin mientras que el canal 1 cambia para la
transferencia de memoria a memoria
Bit 2-Habilitacion/Deshabilitacin. Conecta y desconecta el controlador por
completo.
Bit 3-Sincronizacin normal y comprimida. Determina si un ciclo de DMA
contiene dos o cuatro periodos de reloj.
Bit 5-Temporizacin normal para extender el pulso de escritura para los
dispositivos de E/S que requieren un pulso de escritura ms ancho.
Bit 4-Prioridad de las entradas DREQ. Fija-el canal 0 tiene la prioridad ms alta y
el 3 la ms baja. Rotatoria-El canal recientemente atendido pasa a la prioridad
ms baja.
Bits 6 y 7-Programan las polaridades de las entradas DREQ y salidas DACK.

Figura No. 4
Registro de Comandos 8237A-5

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 5
CR: Registro de modo. Programa el modo de operacin de un canal. Cada canal
tiene su propio registro de modo.
Bits 0 y 1-Seleccionan el canal
Bits 2 y 3-Seleccionan la operacin

Bit 4-Selecciona la autoinicializacin


Bit 5-Selecciona modo de direccin.
Bits 6 y 7-Seleccionan modo de operacin
En el modo por demanda se transeren datos hasta que externo es
aplicado o hasta que la DREQ se inactive. El modo de dato sencillo libera a
HOILD despus de que un byte de datos es transferido. El modo de bloque de
datos transfiere automticamente el nmero de bytes que indica el registro de
cuenta correspondiente. El modo en cascada se utiliza cuando hay ms de un
8237 en el sistema.

Figura No. 5
Registro de Modo 8237A-5

RR: Registro de solicitud. Se utiliza para solicitar una transferencia de DMA a travs
de software esto es muy til en transferencias de memoria a memoria donde
una seal externa no est disponible para comenzar la transferencia de DMA.

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 6
MRSR: El conjunto de registro de mscara / restablecimiento establece o borra la
mscara de canal. Si la mscara est configurada, el canal est deshabilitado.
Recuerde que la seal RESET establece todas las mscaras de canal para
desactivarlas.

MSR: El registro de mscara borra o establece todas las mscaras con un comando en
lugar de canales individuales como con el MRSR.
SR: El registro de estado muestra el estado de cada canal DMA Los bits TC indican si
el canal ha alcanzado su conteo terminal (transferido todos sus bytes). Cada vez
que se alcanza el recuento de terminales, la transferencia de DMA se termina
para la mayora de los modos de operacin. Los bits de solicitud indican si la
entrada DREQ para un canal determinado est activa.

Figura No. 6
Registro de Estado 8237A-5

COMANDOS DE SOFTWARE
El controlador utiliza tres comandos de software. Estos comandos no tienen un patrn de bits
binarios, al igual que los diversos registros de control dentro del 8237. Una salida simple al nmero
de puerto correcto habilita el comando del software. Las asignaciones de puertos de E/S que
acceden a todos los registros y los comandos del software se muestran en la figura 7
Los comandos son:
1. Limpia el biestable primero/ltimo. Selecciona qu byte (bajo o alto) se lee o escribe
en los registros actuales de direccin y cuenta. la direccin actual y registros de conteo
actual. Si P/U=0 se selecciona el byte menos significativo. Si P/U=1 se selecciona el
byte ms significativo. Cualquier lectura o escritura en la direccin o registro de conteo
invierte automticamente el flip-flop P/U.
2. Limpieza Maestra. Actua exactamente igual que la seal RESET al 8237. Este comando
desactiva todos los canales.
3. Limpiar registro de mscara: habilita a los cuatro canales DMA.

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 7
Figura No. 7
Asignaciones de puerto de comandos y de control

PROGRAMACIN DE LOS REGISTROS DE DIRECCIN Y CUENTA


En la figura se ilustran las ubicaciones del puerto de E/S para programar los registros de cuenta y
direcciones para cada canal. Observe que el estado del biestable determina si qu byte se
programa: LSB o MSB. Si se desconoce el estado del biestable, la cuenta y la direccin podran
programarse incorrectamente. Tambin es importante desactivar el canal DMA antes de programar
su direccin y su cuenta.
Se requieren cuatro pasos para programar el 8237:
(1) El flip-flop se borra usando un comando de limpieza P/U
(2) el canal est deshabilitado,
(3) Son programados primero el LSB de la direccin y luego el MSB, y
(4) el LSB y MSB de la cuenta son programados.

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 8
Una vez que se realizan estas cuatro operaciones, el canal est programado y listo para usar. Se
requiere programacin adicional para seleccionar el modo de operacin antes de que el canal se
active y se inicie.

Figura No. 8
Direecciones de puerto E/S de los canales DMA (Intel Corporation)

OPERACIN DEL BUS COMPARTIDO

Los complejos sistemas informticos actuales tienen tantas tareas para realizar que algunos
sistemas utilizan ms de un microprocesador para realizar el trabajo. Esto se llama un sistema
multiprocesamiento sistema distribuido. Un sistema que realiza ms de una tarea se llama un
sistema multitarea. En sistemas que contienen ms de un microprocesador, se debe desarrollar y
emplear algn mtodo de control. En un entorno distribuido, de multiprocesamiento y multitarea,
cada microprocesador accede a dos buses: (l) el bus local y (2) el bus remoto o compartido.
Los microprocesadores 8086 y 8088 comparten bus usando el rbitro del bus 8289. El 80286 utiliza
el rbitro del bus 82289 y el 80386/80486 usa el 82389. El Pentium y el Pentium Pro admiten
directamente un entorno multiusuario. Estos sistemas son mucho ms complejos y difciles de
ilustrar pero su terminologa y operacin es esencialmente la misma que para el 8086/8088.
El bus local est conectado a la memoria y a los dispositivos de E / S a los que se accede
directamente mediante un solo microprocesador sin ningn protocolo especial o reglas de acceso.
El bus remoto (compartido) contiene memoria y E/S a los que cualquier microprocesador en el
sistema accede. La figura 9 ilustra esta idea. La computadora personal tambin est configurada de
la misma manera. El maestro de bus es el microprocesador principal en la computadora personal.
Lo que llamamos bus local en la computadora personal es el bus compartido en esta ilustracin. El
Documento de Apoyo a la Docencia
Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 9
bus ISA se utiliza como esclavo para el microprocesador de la computadora personal, as como para
cualquier otro dispositivo conectado al bus compartido.

Figura No. 9
Direecciones de puerto E/S de los canales DMA (Intel Corporation)

TIPOS DE BUSES
El bus local es el bus que es residente para el microprocesador. El bus local contiene la memoria
local o residente y E/S. La memoria local la E/S local son accedidos por el microprocesador que
est conectado directamente a ellos.
Un bus compartido es uno que est conectado a todos los microprocesadores en el sistema. El bus
compartido se usa para intercambiar datos entre microprocesadores. Un bus compartido puede
contener memoria y dispositivos de E / S a los que acceden todos los microprocesadores del
sistema. El acceso al bus compartido est controlado por algn rbitro que permite que solo un
microprocesador acceda al espacio de bus compartido del sistema.
El trmino maestro de bus se aplica a cualquier dispositivo (microprocesador o de otro tipo) que
puede controlar un bus que contiene memoria y E/S. El controlador DMA-8237 es un ejemplo de
maestro de bus remoto. El controlador DMA tiene acceso a la memoria del sistema y al espacio de
E / S para provocar una transferencia de datos. Del mismo modo, un maestro de bus remoto
obtiene acceso al bus compartido con el mismo propsito. La diferencia es que el microprocesador
maestro remoto puede ejecutar software variable, mientras que el controlador DMA solo puede
transferir datos.
El acceso al bus compartido se realiza usando el pin HOLD en el microprocesador para el
controlador DMA. El acceso al bus compartido se realiza a travs de un rbitro de busque
determina la prioridad entre los maestros de bus y permite que solo un dispositivo a la vez acceda
al bus compartido.

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 10
El microprocesador 8088 tiene una interfaz tanto para un bus local y residente como para el bus
compartido. Esta configuracin permite que el 8088 tenga acceso a la memoria local y E / S o, a
travs del rbitro del bus y los bferes, al bus compartido. La tarea asignada al microprocesador
puede ser comunicaciones de datos y, despus de recopilar un bloque de datos de la interfaz de
comunicaciones, puede transferir esos datos al bus compartido y la memoria compartida para que
otros microprocesadores conectados al sistema puedan acceder a los datos. Esto permite que
muchos microprocesadores compartan datos comunes. De la misma manera, a varios
microprocesadores se les pueden asignar varias tareas en el sistema, mejorando drsticamente el
rendimiento.

RBITRO DE BUS 8289


El bus compartido se usa solo para pasar informacin de un microprocesador a otro; de lo
contrario, los maestros de bus funcionan en sus propios modos de bus locales utilizando sus
propios programas locales, memoria y espacio de E / S. Los microprocesadores conectados en un
sistema como este a menudo se denominan procesadores paralelos o distribuidos porque pueden
ejecutar software y realizar tareas en paralelo.

Figura No. 10
Diagrama de Bloques del 8289 (Intel Corporation)

Figura No. 11
Distribucin de Terminales del 8289

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 11
AEN: La salida de habilitacin de direccin hace que los controladores de bus de un
sistema cambien a su estado de alta impedancia.
ANYRQST: La entrada de cualquier solicitud es una opcin de alambrado que evita que un
microprocesador de menor prioridad obtenga acceso al bus compartido.

BCLK: La entrada del reloj del bus sincroniza todos los maestros de bus compartidos.
BPRN: La entrada de prioridad del bus permite que el 8289 adquiera el bus compartido
en el prximo flanco descendente de la seal BLCK.
BPRO: La salida de prioridad de bus es una seal que se usa para resolver la prioridad
en un sistema que contiene varios maestros de bus.
BREQ: La salida de solicitud de bus se usa para solicitar acceso al bus compartido.
BUSY: La entrada / salida de ocupado indica, como salida, que un 8289 ha adquirido el
bus compartido. Como una entrada BUSY se usa para detectar que otro 8289 ha
adquirido el bus compartido.
CBRQ: La entrada / salida de solicitud de bus comn se utiliza cuando un
microprocesador de prioridad ms baja solicita el uso del bus compartido. Como
resultado, CBRQ se convierte en una lgica 0 siempre que el 8289 solicita el bus
compartido, y permanece bajo hasta que el 8289 obtiene acceso al bus
compartido.

CLK: La entrada del reloj es generada por el generador de reloj 8284A y proporciona
la fuente de temporizacin interna al 8289.
CRQLCK: La entrada de bloqueo de solicitud comn impide que el 8289 entregue el bus
compartido a cualquiera de los 8289 en el sistema. Esta seal funciona en
conjunto con el pin CBRQ.
INIT: La entrada de inicializacin restablece el 8289 y normalmente se conecta a la
seal RESET del sistema.
IOB: La E/S del bus selecciona si el 8289 funciona en un sistema de bus compartido
(si fue seleccionado con RESB) con E/S (IOB =0 ) o con memoria y E/S (IOB =
1).
LOCK: La entrada de bloqueo impide que el 8289 permita que cualquier otro
microprocesador obtenga acceso al bus compartido. Una instruccin 8086/8088
que contenga un prefijo LOCK evitar que otros microprocesadores accedan al
bus compartido.

RESB: La entrada del bus residente es una conexin de alambrado que permite que el
8289 funcione en sistemas que tienen un sistema de bus compartido o de bus
de residente. Si RESB es 1 lgico se configura como un maestro de bus
compartido. Si es 0 lgico se configura como un maestro de bus local. Cuando
se configura como un maestro de bus compartido, se solicita acceso a travs del
pin de entrada de SYSB / RESB

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 12
S2, S1 y S0: Las entradas de estado inician solicitudes y concesiones de bus compartido.
Estos pines se conectan a los pines de estado del controlador del bus del
sistema 8288.
SYSB/RESB: La entrada de bits del bus del sistema/bus residente selecciona el sistema de
bus compartido cuando se coloca RESB en 1 lgico, o en bus local residente
cuando se coloca en cero lgico.

OPERACIN GENERAL DEL 8289.


El 8289 puede funcionar en tres modos bsicos:
(1) modo de bus perifrico E/S. Todos los dispositivos en el bus local se tratan como E/S
incluida la memoria y se accede por instrucciones de E/S
(2) modo de bus residente. Permite accesos a memoria y E/S tanto como bus local o como bus
compartido
(3) modo de bus nico. Conecta un microprocesador a un bus compartido. pero el
microprocesador no tiene memoria local ni local E/S

El maestro de bus compartido controla el sistema por medio de la memoria y la E/S compartidas.
Los microprocesadores adicionales son conectados al bus compartido como maestros de bus
residentes o de bus perifricos de E/S. Estos maestros de bus adicionales normalmente ejecturan
tareas independientes que son reportadas al maestro de bus compartido por medio del bus
compartido.

Figura No. 12
Modos de Operacin

BIBLIOGRAFA

[1] Brey, B. The Intel Microprocessors. 8086/8088, 80186/80188, 80286, 80386, 80486,
Pentium, and Pentium Pro Processor. Architecture, Programming, and Interfacing . Fifth
Edition. (2000) Prentice-Hall International

Documento de Apoyo a la Docencia


Inga. Tatiana Vallejo
UMG - Arquitectura de Computadoras 2 Page 13

You might also like