Acceso Directo a Memoriapdf

59
Página 1 EL - 4311 Estructura de Microprocesadores Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Acceso Directo a Memoria Acceso directo a Memoria

description

fsdfsdf

Transcript of Acceso Directo a Memoriapdf

Page 1: 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

Page 2: Acceso Directo a Memoriapdf

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.

Page 3: Acceso Directo a Memoriapdf

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

Page 4: Acceso Directo a Memoriapdf

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.

Page 5: Acceso Directo a Memoriapdf

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.

Page 6: Acceso Directo a Memoriapdf

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.

Page 7: Acceso Directo a Memoriapdf

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.

Page 8: Acceso Directo a Memoriapdf

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.

Page 9: Acceso Directo a Memoriapdf

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.

Page 10: Acceso Directo a Memoriapdf

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.

Page 11: Acceso Directo a Memoriapdf

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

Page 12: Acceso Directo a Memoriapdf

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

Page 13: Acceso Directo a Memoriapdf

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.

Page 14: Acceso Directo a Memoriapdf

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

Page 15: Acceso Directo a Memoriapdf

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.

Page 16: Acceso Directo a Memoriapdf

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

Page 17: Acceso Directo a Memoriapdf

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

Page 18: Acceso Directo a Memoriapdf

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

Page 19: Acceso Directo a Memoriapdf

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

Page 20: Acceso Directo a Memoriapdf

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

Page 21: Acceso Directo a Memoriapdf

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

Page 22: Acceso Directo a Memoriapdf

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.

Page 23: Acceso Directo a Memoriapdf

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

Page 24: Acceso Directo a Memoriapdf

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.

Page 25: Acceso Directo a Memoriapdf

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

Page 26: Acceso Directo a Memoriapdf

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.

Page 27: Acceso Directo a Memoriapdf

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.

Page 28: Acceso Directo a Memoriapdf

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.

Page 29: Acceso Directo a Memoriapdf

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.

Page 30: Acceso Directo a Memoriapdf

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

Page 31: Acceso Directo a Memoriapdf

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.

Page 32: Acceso Directo a Memoriapdf

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.

Page 33: Acceso Directo a Memoriapdf

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.

Page 34: Acceso Directo a Memoriapdf

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.

Page 35: Acceso Directo a Memoriapdf

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.

Page 36: Acceso Directo a Memoriapdf

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

Page 37: Acceso Directo a Memoriapdf

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.

Page 38: Acceso Directo a Memoriapdf

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.

Page 39: Acceso Directo a Memoriapdf

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

Page 40: Acceso Directo a Memoriapdf

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

Page 41: Acceso Directo a Memoriapdf

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

Page 42: Acceso Directo a Memoriapdf

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.

Page 43: Acceso Directo a Memoriapdf

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

Page 44: Acceso Directo a Memoriapdf

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.

Page 45: Acceso Directo a Memoriapdf

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

Page 46: Acceso Directo a Memoriapdf

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.

Page 47: Acceso Directo a Memoriapdf

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

Page 48: Acceso Directo a Memoriapdf

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

Page 49: Acceso Directo a Memoriapdf

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.

Page 50: Acceso Directo a Memoriapdf

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

Page 51: Acceso Directo a Memoriapdf

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.

Page 52: Acceso Directo a Memoriapdf

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

Page 53: Acceso Directo a Memoriapdf

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

Page 54: Acceso Directo a Memoriapdf

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

Page 55: Acceso Directo a Memoriapdf

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

Page 56: Acceso Directo a Memoriapdf

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 ?

Page 57: Acceso Directo a Memoriapdf

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.

Page 58: Acceso Directo a Memoriapdf

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.

Page 59: Acceso Directo a Memoriapdf

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?