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?