Acceso directo a Memoria

Documentos relacionados
Controlador de Interrupciones (Versión programable) Manual de Usuario

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

PROBLEMAS TEMA 3: Unidad de Entrada/Salida

CICLOS DEL PROCESADOR

Manejo de Entrada-Salida. Arquitectura de Computadoras

Tema: Microprocesadores

ITT-327-T Microprocesadores

Manejo de Entrada-Salida. Arquitectura de Computadoras

Electrónica Digital II

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

Bus I 2 C. Introducción

4. Escribe con palabras lo que significan las siguientes letras y di cuántos bytes hay aproximadamente: a) 1 Gb? b) 1 Mb? C) 1 Kb?

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

1) Se dispone de un computador de 32 bits con la siguiente estructura:

Tema 6: Periféricos y entrada-salida

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Estructura del Computador

Modulo LCD MODULO LCD

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III

SISTEMAS OPERATIVOS Arquitectura de computadores

DIAGRAMA A BLOQUES DE UNA COMPUTADORA

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O

MICROCONTROLADORES PIC

Introducción a los Sistemas Operativos

Mapeo en el P 8086 de Intel

Estructura y Tecnología de Computadores. Módulo D. Buses del computador. Tema 6. Características y protocolos de los buses

TEMA 1: Concepto de ordenador

ESTRUCTURA BÁSICA DE UN ORDENADOR

INFORMATICA I EJERCICIOS PROPUESTOS Buscar en el diccionario Qué es INFORMÁTICA?, Qué es

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

1. DATOS e INFORMACIÓN.

PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS

Diagrama a bloques de una computadora

Arquitectura de Computadores. Apellidos, Nombre:

Introducción a la arquitectura de computadores

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

Tema 5: Memorias. Espacio reservado para notas del alumno

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5.

La memoria del ordenador

Registros de desplazamiento

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

AUTOMATIZACIÓN INDUSTRIAL

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

Programador de riego una estación Manual de Instrucciones

TEMA 6.- INTERFACES PARA DISCOS DUROS. nexo de conexión que facilita la comunicación entre dos dispositivos

MODBus RTU en los registradores CAMRegis

(1) Unidad 1. Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

Conexión de los sistemas SLC como E/S remotas a procesadores PLC-5

ENIAC, Primer computador electrónico y su panel de conexiones

PIC MICRO ESTUDIO Reloj en tiempo real RTCU2 Clave: 719

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas MARCO TEORICO. Estructura Interna

Arquitectura de Computadoras. Anexo Clase 8 Buses del Sistema

FUNCIONAMIENTO DEL ORDENADOR

EL ORDENADOR A. PERIFÉRICOS. B. UNIDAD CENTRAL. 1. HARDWARE Y SOFTWARE. 2. FUNCIONAMIENTO DE UN SISTEMA INFORMÁTICO 3. CONCEPTO DE SISTEMA INFORMÁTICO

Manipulación de procesos

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Estructura de Computadores Ingeniería Técnica en Informática de Sistemas. BOLETIN 4: Memoria

16bits: Tamaño total: 2 16 Tamaño página: 2 13 nº de páginas: 2 16 / 2 13 = 2 3 = 8 páginas Tamaño de tabla: 2 3 *2B = 16B por tabla

Tema 8: Organización de la Entrada/salida

Memoria Cache. Departamento de Arquitectura de Computadores

Conceptos de Arquitectura de Computadoras Curso 2015

4.2 Servicio de exploración de E/S

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

Guía rápida para gestionar el puerto paralelo del PC

Convivencia. Gestión del Sistema de Entrada/Salida

MANUAL DEL USUARIO BALANZA ELECTRÓNICA PROGRAMABLE MX8F MIXER VERSION C-1.7

Tema 1: Arquitectura de ordenadores, hardware y software

Instrucciones de uso. Unidad de direccionamiento AC1144

1.2.- EL MICROPROCESADOR.

COMPONENTES PRINCIPALES DEL HARDWARE DE UN ORDENADOR:

Diseño Basado en Microcontroladores. Programa Detallado

TEMA 1. Arquitecturas multiprocesador: MIMD de memoria compartida (multiprocesadores) V 2.0

}Transparencias de clase en

Solución de problemas de fax. Preguntas frecuentes sobre fax Solución de problemas de envío de faxes... 3

Contenido TEMA 2 ENTRADA / SALIDA. Interfaz HW: buses del sistema. Interfaz HW de E/S

1. Componentes básicos

Todos los sistemas basados en procesadores tienen dos tipos de memorias:

Dispositivos de Procesamiento y Dispositivos de Memoria. Dra. Leticia Flores Pulido Introducción a la Ingeniería en Computación

TECLADO TACTIL CAPACITIVO SIGMA ELECTRONICA

Definición de Memoria

Qué es un Microcontrolador?

EL ORDENADOR Y SUS COMPONENTES

Organización lógica Identificación de bloque

HARDWARE DE UN ORDENADOR. Elementos básicos

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

1. Almacenamiento redundante

Movistar Imagenio Recarga de Móviles MANUAL DE USUARIO

Tema 9 Periféricos de Entrada

Nivel ISA. Revisión y resultados parcial 1

Memoria. M. en C. Erika Vilches. Parte 6

Funcionamiento de la computadora

QUE SON Y PARA QUE SIRVEN LAS DIRECCIONES IP, LA MASCARA DE SUBRED, LA PUERTA DE ENLACE Y LAS DNS.

INTRODUCCIÓN. Interrupciones.

1. Qué es un automatismo?

Anexo C. Manual del usuario

Manual de Usuario. Aplicación de Autoevaluación de Centros

1.4 Biestables síncrono

Transcripción:

Acceso directo a Memoria Página 1

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 2

Espacios de direcciones del 8088/86 FFFFF 00001H 00000H Espacio de memoria Puerto 1 Puerto 0 FFFF 0001H 0000H Espacio de I/O Puerto 1 Puerto 0 Página 3

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 4

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 5

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.

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 7

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 8

Escuela de Ingeniería Electrónica 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 9

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 10

Página 11 Escuela de Ingeniería Electrónica Aclaración A2 A11 A7 A1 A9 A10 A0 A6 A15 U5 8282 1 2 3 4 5 6 7 8 9 11 19 18 17 16 15 14 13 12 I0 I1 I2 I3 I4 I5 I6 I7 OE STB O0 O1 O2 O3 O4 O5 O6 O7 A8 A12 A3 A5 A14 U1 8237 5 6 12 13 11 7 19 18 17 16 36 1 2 32 33 34 35 37 38 39 40 30 29 28 27 26 23 22 21 25 24 14 15 3 4 10 9 8 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 A4 A13

Página 12

Para 8086 en modo mínimo: 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 13

MODO MINIMO Página 14

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 DMA 5. 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 15

MODO MAXIMO Página 16

Página 17

Página 18

Página 19

Aclaración Escuela de Ingeniería Electrónica Página 20

Página 21

Importante La solicitud de DMA se puede realizar por software o por hardware por medio de un dispositivo externo. Página 22

Ciclos de operación El DMA tiene dos ciclos de operación Inactivo (idle) Activo Página 23

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 24

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 25

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. Página 26

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. Página 27

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 28

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.

Página 30

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 31

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 32

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. Página 33

Escuela de Ingeniería Electrónica 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 34

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 35

Página 36

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. Página 37

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 38

Canal Dirección A3 A2 A1 A0 Registro(s) 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 0 0 0 1 Contador de palabras en curso 0 0 1 0 Base de dirección y de dirección en curso Escribir Leer 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 0 0 1 1 Contador de palabras en curso 0 1 0 0 Base de dirección y de dirección en curso Escribir Leer 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 0 1 0 1 Contador de palabras en curso 0 1 1 0 Base de dirección y de dirección en curso Escribir Leer Escribir 0 1 1 0 De dirección en curso Leer Página 39 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

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 40

Página 41

Registro de modo (Mode Register) Escuela de Ingeniería Electrónica 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 42

Página 43

Registro de solicitud (Request Register) Escuela de Ingeniería Electrónica 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 44

Página 45

Página 46 Registro de máscara (Mask Register) Escuela de Ingeniería Electrónica 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

Página 48

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.

Página 50

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 51

Escuela de Ingeniería Electrónica Resumen de registros Página 52

Página 53

Página 54

Comandos Escuela de Ingeniería Electrónica Página 55

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 56

CH2 dirección CH2 cuenta Command Mode Register Solución 354H 355H 358H 35BH Nota se asume que A0-A3 del CPU se conectan a A0- A3 del 8237. Página 57

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 58

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? Página 59