Acceso directo a Memoria - Escuela de Ingeniería Electrónica

Anuncio
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 1
Acceso directo a Memoria
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 2
Manejo de periféricos
• El 8088 y 8086 emplean dos formas diferentes
para el manejo de entrada/salida:
– Entrada/salida aislada
– Entrada/salida mapeada (en memoria)
• Estos métodos para el manejo de
entrada/salida difieren en como los puertos se
mapean en los dos espacios de direcciones del
8088/8086.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 3
Espacios de direcciones del 8088/86
FFFFF
Espacio
de
memoria
FFFF
Espacio
de I/O
00001H
00000H
Puerto 1
Puerto 0
0001H
Puerto 1
0000H
Puerto 0
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 4
¿Cuáles son las ventajas y desventajas de aislar
los puertos de entrada/salida?
• Ventajas:
– El Mega Byte de espacio de memoria se puede
utilizar para cualquier cosa excepto para el manejo
de dispositivos periféricos.
– Se cuenta con instrucciones especiales para las
operaciones de entrada y salida.
• Desventajas:
– Todas las transferencias de datos se realizan
utilizando los registros AL y AX y los puertos de
entrada/salida.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 5
¿Cuáles son las ventajas y desventajas de utilizar puertos
mapeados?
Ventajas:
•
–
–
Se cuenta con muchas instrucciones y modos de
direccionamiento para realizar las operaciones de
entrada/salida.
Las transferencias entre los dispositivos se pueden
realizar utilizando cualquier registro de trabajo.
Desventajas:
•
–
–
Las instrucciones de memoria son más lentas en
ejecutarse que las diseñadas para el manejo de
entrada/salida.
Se pierde parte de la memoria.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 6
¿Qué es DMA?
• Es un proceso para transferir datos entre la memoria y
otros dispositivos sin que intervenga el procesador. En
otras palabras el dispositivo externo toma control
sobre los buses del sistema.
• Es una transferencia de datos a alta velocidad entre los
periféricos que almacenan datos, por ejemplo, discos
duros, cintas magnéticas, CD-ROM, y algunas veces
los controladores de video.
• Por ejemplo, en un disco duro la tasa de transferencia
es de 5 MBytes por segundo, se transfiere un Byte cada
200 ns.
• La transferencia normal de un Byte toma 29 ciclos de
reloj. Mientras que con un DMA las transferencias
requieren de solo 5 ciclos de reloj.
• Los DMAs actuales pueden operar a tasas de
transferencia de 60 MBytes por segundo. La tasa de
transferencia esta limitada por el tiempo de acceso de
la memoria y los dispositivos periféricos.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 7
Antes de DMA
• PIO (I/O programada).
– CPU controla la transferencia de datos.
– El procesador controla todas la
transferencias, y se producen cuellos de
botella.
– Solamente se aplica en donde la
transferencia de datos es muy baja y son
pocas las tareas.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 8
Como trabaja el DMA
1.
2.
3.
4.
5.
El CPU carga los registros del controlador: Direcciones,
cantidad de bytes a transferir, dispositivo.
Dispositivo envia DRQ (solicitud de datos) al controlador de
DMA; el controlador envia la señal de HOLD al CPU
(solicitando los buses)
El CPU envía al controlador HOLDA indicando que en el
próximo ciclo se liberan los buses.
El controlador envía al dispositivo un DACK: para que inicie
la transferencia.
Una vez finalizado, el controlador interrumpe el CPU,
restablece el HOLD, y el CPU restablece HOLDA. A partir
de este momento el CPU toma control nuevamente de los
buses.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 9
¡¡ IMPORTANTE ¡¡
• Observe que la entrada HOLD tiene una
prioridad mayor que las entradas de
interrupción INTR o NMI.
• La interrupción tiene efecto al final de una
instrucción, mientras que HOLD tiene efecto a
la mitad de la misma.
• La única señal del microprocesador que tiene
una prioridad mayor que HOLD es reset.
• La entrada HOLD no debe estar activa durante
el RESET o no se garantiza la restauración.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 10
Controlador de memoria
El controlador de DMA interconecta diferentes dispositivos
que solicitan acceso a la memoria.
El controlador “decide” la prioridad cuando se solicita el
acceso simultáneo por medio de dos periféricos distintos, se
comunica con los periféricos y provee direccionamiento de
memoria para que se realicen las transferencias.
El controlador DMA más comúnmente utilizado con la familia
86/88 es el 8237.
El 8237 de hecho es un microprocesador con funciones
dedicadas. Normalmente aparece como una parte funcional de
un chip set.
El 8237 es un dispositivo con cuatro canales para la
transferencia de datos. Cada canal se dedica a un dispositivo
periférico y es capaz de direccionar bloques de hasta 64 K
Bytes de memoria.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 11
Aclaración
8237
5
6
12
13
11
7
19
18
17
16
36
1
2
VX
READY
CLK
RESET
CS
HLDA
DRQ0
DRQ1
DRQ2
DRQ3
EOP
IOR
IOW
A0
A1
A2
A3
A4
A5
A6
A7
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
DAK0
DAK1
DAK2
DAK3
MEMR
MEMW
HRQ
AEN
ASTB
U1
32
33
34
35
37
38
39
40
8282
30
29
28
27
26
23
22
21
1
2
3
4
5
6
7
8
25
24
14
15
9
11
3
4
10
9
8
A0
A1
A2
A3
A4
A5
A6
A7
I0
I1
I2
I3
I4
I5
I6
I7
O0
O1
O2
O3
O4
O5
O6
O7
OE
STB
U5
19
18
17
16
15
14
13
12
A8
A9
A10
A11
A12
A13
A14
A15
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 12
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 13
Modo mínimo
Para 8086 en modo mínimo:
Las señales en los pines HOLD y HLDA son utilizadas
para recibir y reconocer las solicitudes de utilización
del bus.
Normalmente el CPU tiene control total de los buses del
sistema. En la operación de DMA, los periféricos toman
control del bus en forma temporal.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 14
MODO MINIMO
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 15
Modo máximo
Para el 8086 en modo máximo:
Se utilizan los pines RQ/GT1 y RQ/GT0 para solicitar y recibir las
señales de solicitud del bus.
Secuencia de eventos para un proceso de DMA:
1.
2.
3.
4.
5.
El periférico activa alguno de los pines RQ/GT1 o RQ/GT0
(RQ/GT0 tiene la prioridad más alta)
El procesador finaliza su ciclo de bus y entra en un estado de
HOLD.
El procesador activa la señal correspondiente para indicar que
la solicitud ha sido reconocida.
Inicia la operación de DMA
Una vez finalizada la operación de DMA, el periférico activa la
señal correspondiente para indicar que se liberará el bus.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 16
MODO MAXIMO
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 17
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 18
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 19
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 20
Aclaración
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 21
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 22
Importante
• La solicitud de DMA se puede realizar
por software o por hardware por medio
de un dispositivo externo.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 23
Ciclos de operación
• El DMA tiene dos ciclos de operación
– Inactivo (idle)
– Activo
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 24
Ciclo inactivo (idle)
– Este es el estado en el que el 8237 espera pacientemente a
que aparezca alguna solicitud de DMA, comprobando las
líneas DREQ en los flancos de bajada de las señales de
reloj: en esto consisten los estados SI.
– En esta situación, el 8237 puede ser programado por la
CPU.
– Para ello, las líneas A0..A3 seleccionan el registro interno
y -IOR e -IOW indican si se trata de leer o escribir.
– Como algunos de los registros internos son de 16 bits,
existe un flip-flop interno que conmuta en cada operación
de escritura sobre ellos, para que el 8237 sepa si está
recibiendo el byte alto o el bajo (este flip-flop se pone en
cero en un Reset o en un comando Master Clear,
existiendo también comandos especiales para controlarlo).
– Algunas combinaciones de A0..A3 y las líneas -IOR e IOW, en lugar de acceder a los registros, constituyen
comandos especiales.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 25
Ciclo activo
– Cuando el 8237 está en el ciclo inactivo y se produce
una petición por software o un canal no enmascarado
solicita servicio DMA, se pasa al estado activo y se
opera en uno de estos 4 modos:
• Modo de
• Modo de
Mode).
• Modo de
Mode).
• Modo de
transferencia única (Single Transfer Mode):
transferencia de bloque (Block Transfer
transferencia por demanda (Demand Transfer
cascada
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 26
Modo de transferencia única (Single Transfer
Mode)
• El dispositivo es programado para realizar una única
transferencia.
• El registro contador de palabras es decrementado y el de
direcciones se incrementa/decrementa según ha sido
programado.
• Cuando el registro contador de palabras se desborda (pasa de
0 a 0FFFFh) se activa el bit Terminal Count (fin de cuenta) en
el registro de estado y la patilla -EOP genera un pulso.
• Si el canal estaba programado para autoinicializarse esto es
lo que realiza; en caso contrario, se activa automáticamente
el bit de máscara para inhibir hasta nueva orden ese canal.
• DREQ debe permanecer activo hasta que DACK responda.
• Sin embargo, si DREQ permanece activo hasta que acaba el
proceso de transferencia, la línea HRQ baja y se ceden
momentáneamente los buses al sistema.
• Después, vuelve a subir, y cuando se recibe el HLDA del CPU
se pueden realizar más transferencias de este tipo. En la serie
8080 y 80x86, esto asegura al menos un ciclo para la CPU
entre las sucesivas transferencias del DMA.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 27
Modo de transferencia de bloque (Block
Transfer Mode).
• Se diferencia del anterior en que en lugar de
transferir una sola palabra se mueven todas las
necesarias hasta que el registro contador de
palabras se desborda. Lógicamente, también
se acaba el proceso si alguien actúa sobre la
patilla -EOP.
• DREQ sólo es preciso activarlo hasta que
DACK responda.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 28
Modo de transferencia por demanda
(Demand Transfer Mode).
• Se diferencia del anterior en que la transferencia se
realiza sólo mientras DREQ permanece activo.
• Esto significa que se pueden transferir datos hasta
agotar las posibilidades del dispositivo; cuando el
dispositivo tenga más datos listos puede volver a activar
DREQ para continuar donde lo dejó.
• Esta modalidad permite dejar ciclos a la CPU cuando
no es realmente necesario que el DMA opere.
• Además, en los períodos de inactividad, los valores de
dirección en curso y contador de palabras son
almacenados en el Registro de direcciones en curso y en
el Registro contador de palabras en curso
correspondientes al canal implicado; mientras tanto,
otros canales de mayor prioridad pueden ser atendidos
por el 8237.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 29
Conexión en cascada de varios 8237
• Esta conexión es empleada para conectar más de un
8237 en el sistema.
• La línea HRQ de los 8237 hijo es conectada a la DREQ
del 8237 padre; la HLDA lo es a la DACK. Esto permite
que las peticiones en los diversos 8237 se propaguen
de uno a otro a través de la escala de prioridades del
8237 que cuelgan.
• La estructura de prioridades es por tanto preservada.
Teniendo en cuenta que el canal del 8237 padre es
empleado sólo para priorizar el 8237 adicional que
cuelga (hijo), no puede emitir direcciones ni señales de
control por sí mismo: esto podría causar conflictos con
las salidas del canal activo en el 8237 hijo.
• Por tanto, el 8237 padre se limita en el canal del que
cuelga el 8237 hijo a controlar DREQ, DACK y HRQ,
dejando inhibidas las demás señales. El -EOP externo
será ignorado por el 8237 padre, pero sí tendrá efecto
en el 8237 hijo correspondiente.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 30
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 31
Modos de transferencia
•
Cada uno de los 3 modos de transferencia puede
realizar 3 tipos distintos de transferencias:
– Lectura
• La lectura pasa datos de la memoria al dispositivo E/S
(activando -IOW y -MEMR);
– Escritura
• la escritura mueve datos desde los dispositivos E/S a la
memoria (activando -IOR y -MEMW).
– Verificación
• Las transferencias de tipo verificación son
pseudotransferencias: el funcionamiento es similar a la lectura
o escritura pero sin tocar las líneas de control de la memoria
ni de los periféricos; durante el modo de verificación se ignora
la línea READY; este modo no es permitido en las operaciones
memoria-memoria.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 32
Auto inicialización
• Cualquier canal puede ser programado para incluir esta
característica.
• En el momento de programar el chip, los registros base
de dirección y base contador de palabras son cargados
a la vez y con el mismo valor que los registros de
dirección en curso y contador de palabras en curso.
• Los registros base permanecen inalterados en todo
momento, por lo que al final del servicio sirven, en este
modo de trabajo, para recargar de nuevo los registros
en curso.
• Esto sucede justo tras la señal -EOP, quedando el 8237
listo para repetir de nuevo la misma transferencia
(cuando se solicite a través de la línea DREQ o por
software). En esta modalidad, los bits de máscara están
a 0.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 33
Memoria a memoria
•
•
•
•
•
•
•
En este tipo de transferencia se emplean siempre los canales 0 y 1.
La transferencia comienza activando la línea DREQ del canal 0, bien por
hardware o por software.
El 8237 solicita entonces un servicio de DMA ordinario, con el que lee el byte
de la memoria a través de 4 estados y empleando el Block Transfer Mode.
El registro de dirección en curso del canal 0, que indica la dirección origen en
la memoria, es incrementado/decrementado (según haya sido programado) y el
dato es almacenado en el registro temporal del 8237.
En otros 4 estados más, el dato es pasado del 8237 de nuevo a la memoria,
usando la dirección del registro de dirección en curso del canal 1, que indica la
dirección destino en memoria, el cual es también incrementado/decrementado
según proceda.
Además, se decrementa el registro contador de palabras en curso del canal 1: si
al decrementar se desborda (pasa de 0 a 0FFFFh) se activa el bit TC del registro
de estado (Terminal Count, fin de cuenta) y se genera un pulso -EOP,
finalizando el proceso. En el caso de que el valor del registro contador de
palabras del canal 0 pase de 0 a 0FFFFh, sin embargo, no se actúa sobre TC ni
sobre EOP (no finaliza el proceso) aunque este canal se autoinicializa si así
estaba programado.
El canal 0 puede ser también programado para retener siempre la misma
dirección durante todas las transferencias, lo que permite copiar un mismo byte
en todo un bloque de la memoria.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 34
Prioridad
• El 8237 tiene dos maneras de codificar la prioridad, seleccionables
por software.
– La primera es la prioridad fija, basada en el número
del canal (0-máxima, 3-mínima). Una vez que un
canal es atendido, los demás esperan hasta que
acabe.
– La segunda modalidad es la prioridad rotatoria: el
último canal servido pasa a tener la menor
prioridad y el que le sigue la máxima. La rotación
de prioridades se produce cada vez que se
devuelven los buses a la CPU. Esta última
modalidad de prioridad asegura que un canal sea
atendido al menos después de haber atendido los
otros 3, evitando que un solo canal monopolice el
uso del DMA. Con independencia del tipo de
prioridad programada, ésta es evaluada cada vez
que el 8237 recibe un HLDA.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 35
Compresión del tiempo
• De cara a mejorar el rendimiento en los
sistemas más potentes, el 8237 puede
ser programado para comprimir el
tiempo de transferencia a dos ciclos de
reloj. En cualquier caso, esta
posibilidad no está disponible en las
transferencias memoria-memoria.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 36
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 37
Registros internos
• Registro de dirección en curso (Current Address Register).
– Cada canal tiene un registro de dirección en curso que
almacena la dirección de memoria empleada durante las
transferencias del DMA. Su contenido es
incrementado/decrementado después de cada transferencia.
– Este registro es inicializado por la CPU enviando dos bytes
consecutivos; en modo autoinicialización, su contenido
inicial se restaura cuando ésta se produce.
• Registro contador de palabras en curso (Current Word Register).
– Cada canal tiene un registro contador de palabras en curso,
que determina el número de bytes a transferir en la
operación menos uno (para un valor inicial 100, por ejemplo,
se transmiten 101 bytes).
– Tras cada transferencia se decrementa: cuando pasa de 0 a
0FFFFh se genera el TC (Terminal Count) y el proceso
finaliza.
– Este registro es inicializado por la CPU enviando dos bytes
consecutivos; en modo autoinicialización, su contenido
inicial se restaura cuando ésta se produce; de lo contrario
continúa con un valor 0FFFFh.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 38
Registros internos continuación
• Registros base de dirección y base contador de palabras (Base Address
& Base Word Count Registers).
– Cada canal tiene también un registro base de
dirección y otro base contador de palabras. Estos
registros almacenan el valor inicial de los registros
de dirección en curso y contador de palabras en
curso, ya que ambos tipos de registros se cargan
simultáneamente durante la programación. El valor
almacenado en estos registros se emplea en la
autoinicialización, para recargar los registros en
curso.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 39
Canal
Dirección
Registro(s)
A3 A2 A1 A0
0 0 0 0
Base de dirección y dirección en curso
0 0 0 0
De dirección en curso
0 0 0 1
Base contador de palabras y contador de
palabras en curso
0 0 0 1
Contador de palabras en curso
0 0 1 0
Base de dirección y de dirección en curso
0 0 1 0
De dirección en curso
0 0 1 1
Base contador de palabras y contador de
palabras en curso
0 0 1 1
Contador de palabras en curso
0 1 0 0
Base de dirección y de dirección en curso
0 1 0 0
De dirección en curso
0 1 0 1
Base contador de palabras y contador de
palabras en curso
0 1 0 1
Contador de palabras en curso
0 1 1 0
Base de dirección y de dirección en curso
0 1 1 0
De dirección en curso
0 1 1 1
Base contador de palabras y contador de
palabras en curso
0 1 1 1
Contador de palabras en curso
Escribir
Leer
Escribir
Leer
Escribir
Leer
Escribir
Leer
Escribir
Leer
Escribir
Leer
Escribir
Leer
Escribir
Leer
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 40
Registro de comando (Command Register)
• Es un registro de 8 bits que controla el
funcionamiento del 8237. Se borra tras
un Reset o un comando Master Clear
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 41
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 42
Registro de modo
(Mode Register)
• Cada canal tiene un registro de modo
asociado, de 6 bits. Cuando se escribe en el
registro de modo, se envía un Byte al 8237 que
selecciona (en los bits 0 y 1) el canal cuyo
registro de modo se desea escribir, y el resto
de los bits cargan el registro de modo. Cuando
se lee, dichos bits estarán a 1 (para leer un
registro de modo hay que utilizar antes el
comando Clear Mode Register Counter.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 43
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 44
Registro de solicitud
(Request Register)
• El 8237 puede responder a peticiones de DMA tanto
por hardware (línea DREQ) como por software.
• Este registro posee un bit para cada canal de DMA
con peticiones por software, las cuales no se
pueden enmascarar, aunque están sujetas a la
lógica de evaluación de prioridades.
• Todo el registro es borrado ante un Reset.
• Para modificar sus bits, se debe enviar el comando
Write Request register.
• Si se lee el registro, los bits 0 al 3 muestran el
estado de las peticiones en los canales 0 al 3 (los
demás bits están a 1).
• Las peticiones de DMA por software pueden serlo
indistintamente en el modo single o en block.
• Para operaciones memoria-memoria, hay que hacer
una petición de DMA por software en el canal 0.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 45
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 46
Registro de máscara
(Mask Register)
• Cada canal tiene asociado un bit de máscara que puede ser
activado para inhibir las solicitudes de DMA a través de la línea
DREQ.
• Este bit se activa automáticamente cada vez que se produce un EOP (fin de la transferencia) a menos que el canal esté en modo
autoinicialización.
• Cada bit de máscara puede ser modificado por separado, o
todos a la vez, con el comando apropiado. Todo el registro es
puesto a 1 a través del comando Master Clear o debido a un
Reset, lo que inhibe las solicitudes de DMA por hardware hasta
que se envía un comando para limpiar el registro de máscara (o
se borran los bits que se desee en el mismo).
• Existen tres órdenes para actuar sobre el registro de máscara;
– la primera es a través del comando Clear Mask Register, que borra
todos los bits de máscara.
– la segunda es por medio del comando Write Single Mask Bit,
modificando un solo bit
– la tercera forma consiste en los comandos Read y Write All Mask
Bits, con los que se pueden consultar y alterar todos los bits de
máscara a la vez.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 47
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 48
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 49
Registro de Estado
(Status Register)
• Contiene información del estado de la máquina lista
para ser leída por la CPU.
• Los bits 0 al 3 indican si los respectivos canales han
alcanzado un TC (Terminal Count) o se les ha aplicado
una señal -EOP externa.
• Estos bits se borran ante un Reset, un comando Master
Clear o, simplemente, al leer el propio registro de
estado.
• Los bits 4 al 7 indican qué canales están solicitando
servicio, con independencia de que estén enmascarados
o no. De esta manera, enmascarando todos los canales
y leyendo el registro de estado, por software se puede
decidir qué canales conviene desenmascarar, pudiendo
el sistema operativo aplicar la gestión de prioridades
que desee llegado el caso.
• Estos bits (4 al 7) son actualizados cuando el reloj está
en alto; un Reset o un comando Master Clear los
borran.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 50
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 51
Otros registros
• Registro temporal (Temporary Register)
– Contiene los bytes que se transfieren en las
operaciones memoria-memoria. Tras
completar el proceso de transferencia, el
CPU puede identificar la última palabra
transferida leyendo este registro, a no ser
que el registro haya sido borrado por un
Reset o un comando Master Clear.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 52
Resumen de registros
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 53
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 54
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 55
Comandos
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 56
Ejercicio
Se codifica un 8237 en el espacio de
puertos de entrada salida, su CS se
asocia a la dirección 350H. ¿Cuáles
son las direcciones de los registros de
modo, comando, dirección del canal 2,
cuenta del canal 2 ?
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 57
Solución
•
•
•
•
CH2 dirección
CH2 cuenta
Command
Mode Register
354H
355H
358H
35BH
• Nota se asume que A0-A3 del CPU se conectan a A0A3 del 8237.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 58
Ejercicio #2
Un bloque de datos que inicia en la
dirección D4200 debe ser transferida a
un puerto de entrada salida utilizando el
canal 2. Escriba un programa para
inicializar la dirección y el registro de
cuentas.
Acceso Directo a Memoria
Escuela de Ingeniería Electrónica
EL - 4311
Estructura de
Microprocesadores
Ing. José Alberto
Díaz García
Página 59
Ejercicio #3
¿Cuál es la palabra de comando, si el área de memoria
que se desea llenar con un Byte de datos almacenado en
otra posición de memoria?
Descargar