Acceso Directo a Memoriapdf
description
Transcript of Acceso Directo a Memoriapdf
Página 1
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Acceso directo a Memoria
Página 2
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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.
Página 3
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria Espacios de direcciones del 8088/86
FFFF
0001H
0000H
Espacio de I/O
Puerto 1
Puerto 0
FFFFF
00001H
00000H
Espacio de
memoria
Puerto 1
Puerto 0
Página 4
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria ¿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.
Página 5
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria ¿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.
Página 6
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria ¿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.
Página 7
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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.
Página 8
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria Como trabaja el DMA
1. El CPU carga los registros del controlador: Direcciones, cantidad de bytes a transferir, dispositivo.
2. Dispositivo envia DRQ (solicitud de datos) al controlador de DMA; el controlador envia la señal de HOLD al CPU (solicitando los buses)
3. El CPU envía al controlador HOLDA indicando que en el próximo ciclo se liberan los buses.
4. El controlador envía al dispositivo un DACK: para que inicie la transferencia.
5. 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.
Página 9
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria ¡¡ 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.
Página 10
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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.
Página 11
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria Aclaración
A2
A11
A7
A1
A9A10
A0
A6
A15
U5
8282
12345678
911
1918171615141312
I0I1I2I3I4I5I6I7
OESTB
O0O1O2O3O4O5O6O7
A8
A12
A3
A5
A14
U1
8237
5
6121311
7
19181716
3612
3233343537383940
3029282726232221
25241415
341098
VX
READYCLKRESETCS
HLDA
DRQ0DRQ1DRQ2DRQ3
EOPIORIOW
A0A1A2A3A4A5A6A7
DB0DB1DB2DB3DB4DB5DB6DB7
DAK0DAK1DAK2DAK3
MEMRMEMW
HRQAEN
ASTB
A4
A13
Página 12
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 13
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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.
Página 14
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria MODO MINIMO
Página 15
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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. El periférico activa alguno de los pines RQ/GT1 o RQ/GT0
(RQ/GT0 tiene la prioridad más alta)2. El procesador finaliza su ciclo de bus y entra en un estado de
HOLD.3. El procesador activa la señal correspondiente para indicar que
la solicitud ha sido reconocida.4. Inicia la operación de DMA5. Una vez finalizada la operación de DMA, el periférico activa la
señal correspondiente para indicar que se liberará el bus.
Página 16
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
MODO MAXIMO
Página 17
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 18
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 19
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 20
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Aclaración
Página 21
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 22
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria Importante
• La solicitud de DMA se puede realizar por software o por hardware por medio de un dispositivo externo.
Página 23
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria Ciclos de operación
• El DMA tiene dos ciclos de operación– Inactivo (idle)– Activo
Página 24
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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.
Página 25
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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 transferencia única (Single Transfer Mode):• Modo de transferencia de bloque (Block Transfer
Mode).• Modo de transferencia por demanda (Demand Transfer
Mode).• Modo de cascada
Página 26
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Modo de transferencia única (Single TransferMode)
• 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.
Página 27
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Modo de transferencia de bloque (BlockTransfer 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.
Página 28
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
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.
Página 29
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
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.
Página 30
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 31
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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.
Página 32
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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.
Página 33
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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/decrementadosegú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 byteen todo un bloque de la memoria.
Página 34
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
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.
Página 35
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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.
Página 36
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 37
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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 bytesconsecutivos; 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 bytesconsecutivos; en modo autoinicialización, su contenido inicial se restaura cuando ésta se produce; de lo contrario continúa con un valor 0FFFFh.
Página 38
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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.
Página 39
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
CanalDirección
Registro(s)
A3 A2 A1 A0
0 0 0 0 Base de dirección y dirección en curso Escribir
0 0 0 0 De dirección en curso Leer
0 0 0 1 Base contador de palabras y contador de palabras en curso
Escribir
0 0 0 1 Contador de palabras en curso Leer
0 0 1 0 Base de dirección y de dirección en curso Escribir
0 0 1 0 De dirección en curso Leer
0 0 1 1 Base contador de palabras y contador de palabras en curso
Escribir
0 0 1 1 Contador de palabras en curso Leer
0 1 0 0 Base de dirección y de dirección en curso Escribir
0 1 0 0 De dirección en curso Leer
0 1 0 1 Base contador de palabras y contador de palabras en curso
Escribir
0 1 0 1 Contador de palabras en curso Leer
0 1 1 0 Base de dirección y de dirección en curso Escribir
0 1 1 0 De dirección en curso Leer
0 1 1 1 Base contador de palabras y contador de palabras en curso
Escribir
0 1 1 1 Contador de palabras en curso Leer
Página 40
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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
Página 41
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 42
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
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.
Página 43
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 44
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
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.
Página 45
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 46
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
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.
Página 47
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 48
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 49
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
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.
Página 50
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 51
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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.
Página 52
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Resumen de registros
Página 53
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 54
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Página 55
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria
Comandos
Página 56
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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 ?
Página 57
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria Solución
• CH2 dirección 354H• CH2 cuenta 355H• Command 358H• Mode Register 35BH
• Nota se asume que A0-A3 del CPU se conectan a A0-A3 del 8237.
Página 58
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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.
Página 59
EL - 4311Estructura de
Microprocesadores
Ing. José Alberto Díaz García
Escuela de Ingeniería ElectrónicaA
cces
o D
irec
to a
Mem
oria 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?