Está en la página 1de 20

ACCESO DIRECTO A MEMORIA

Utiliza los ciclos en que la CPU no accede a los buses. Transferencias entre perifricos y la memoria. Transferencia de bloques de memoria a memoria.
BPRI HLDA CONTROL

CPU
DMA

DATOS

PERIF. 1 CONTROL DIRECCIONES PERIF. 2 PERIF. 3 PERIF. 4

BPRI HLDA

MEMORIA

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A


El bus de direcciones para los accesos DMA

DRAM EPROM

Subsistema de memoria

Dispositivos E/S

A3 A36 BE0 BE7

Lgica digital

CPU
A0-A23 Bus para las transferencias DMA

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A


HOLD MEMW# MEMR# IOW# HLDA

EOP RESET CS READY CLOCK AEN

IOR#

A0..A3

8237-A

A4..A7 ADSTB

A8..A15 D0..D7

DREQ0 DREQ1 DREQ2 DREQ3

Controla hasta 4 canales de DMA Expandible indefinidamente Permite transferencias E/S-Memoria y Memoria-Memoria Hasta 1,6 Mbytes/s (Reloj de 5 MHz) Bloques de hasta 64 Kbytes

DACK0 DACK1 DACK2 DACK3

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A

Smbolo Tipo
Vcc Vss CLK CS RESET READY HLDA HOLD DREQ0 DREQ3 DACK0 DACK3 A0-A3 A4-A7

Nombre
POWER GROUND

Funcin
+5 V Tierra Entrada de reloj (3 a 5 MHz) Habilitacin del CI para acceder a sus registros Inicializa el CI Extiende la duracin del ciclo de bus Confirma que la CPU ha liberado los buses

E E E E E S E

CLOCK INPUT CHIP SELECT RESET READY HOLD ACKN.

HOLD REQUEST Peticin de los buses a la CPU (BPRI) DMA REQUEST Entradas de peticin de DMA por parte de los perifricos (4 canales) Notifica concesin de ciclo DMA a los perifricos solicitantes Entradas para direccionar regs. Internos Salida de los 4 bits ms bajos de la dir. DMA 4 bits siguientes de la direccin DMA Bus de datos y direcciones multiplexado:

DMA ACKN.

E/S S

ADDR. BUS ADDR. BUS.

A8-A15

ADDR. BUS

E/S
(D0-D7) (DATA BUS)

Permite lectura y escritura en regs. internos Salida de byte alto de la direccin en DMA Entrada/salida de datos en memoria en las transferencias entre memoria y memoria Indicacin de captura de direccin en LATCH

ADSTB

ADDR. STROBE

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A


Smbolo Tipo
IOR IOW MEMR MEMW EOP AEN

Nombre
I/O READ I/O WRITE MEMORY READ

Funcin
Entrada indica lectura en regs. Internos Salida indica ciclo DMA de escritura Entrada indica escritura en regs. Internos Salida indica ciclo DMA de lectura Indica ciclo de lectura en memoria

E/S E/S S S E/S S

MEMORY WRITE Indica ciclo de escritura en memoria END OF PROCESS ADDR. ENABLE Como entrada, detiene el ciclo DMA Como salida indica final del ciclo DMA Indica que se est produciencdo ciclo DMA

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A


Hacia el bus de direcciones Estructura de un canal de DMA 16 bits
SLO LECTURA

Contador de palabras transferidas

Contador de direcciones

UP/ DOWN

SLO ESCRITURA

Registro base de palabras a transferir

Registro base de direcciones

Bus interno 8 bits

Registros de 16 bits Bus interno de 8 bits Un conjunto de 4 por cada canal

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A

Registros comunes a los 4 canales


Indica el estado actual de las transferencias DMA que estn siendo atendidas Configura el modo de funcionamiento del controlador de DMA Se utiliza para las transferencias entre memoria y memoria Permite enmascarar de forma individual los diferentes canales de peticin de DMA Permite realizar peticiones por software, en lugar de activar la lnea DREQ.

ESTADO (8 bits)

COMANDOS (8 bits)

TEMPORAL (8 bits)

MSCARA (4 bits)

PETICIN (4 bits)

Registros replicados en cada uno de los 4 canales


DIRECCIN BASE (16 bits) PALABRAS TRANSFERIDAS (16 b) CONTADOR DE DIRECCIONES (16 bits) CONTADOR DE PALABRAS (16 bits) MODO (4 bits)

Direccin inicial de la transferencia de datos

Nmero de palabras que van a transferirse

Direccin actual de la transferencia

Nmero de palabras que quedan por transferir

Indica el tipo de transferencia DMA que debe llevarse a cabo.

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A

Bus de direcciones de transferencias DMA (A0-A23)

Lgica de seleccin

A8-A15

CS DREQ (x4)

A0-A3 A4-A7 ADSTB AEN STB OE

8237 A
DACK (x4)

8 bits

LATCH 8 bit

MEMWT

MEMRD

IOWT

IORD

Bus multiplexado A8-A15 (D0-D7)

Conectado a 8 bits ms bajos (XBUS) Bus de datos 64 bits

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A


LOS REGISTROS DE PGINA
Controlan las lneas ms altas del bus de direcciones DMA Se cargan a travs de puertos de E/S

Registro de Pgina canal 0

BUFFER
OE

A16-A23

Bus de datos (XBUS) (D0 D7)

Registro de Pgina canal 1

BUFFER

A16-A23
OE

A16-A23
OE

Registro de Pgina canal 3

A16-A23
OE

AEN DACK3

8237A

A0-A15

Bus de direcciones DMA (A0 A23)

Registro de Pgina canal 2

BUFFER

BUFFER

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A

Lgica digital

DRAM
Bus de direcciones de transferencias DMA (A0 A23)

MEMRD MEMWT IORD

Perifrico 1

Bus de control

Bus de datos

IOWT

Perifrico 2

MEMRD MEMWT IORD IOWT

DACK0 DREQ0

8237

DACK1 DREQ1

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A

MODOS DE TRANSFERENCIA DMA

1. TRANSFERENCIA SINGLE Transfiere los datos uno a uno La CPU recupera el control entre cada transferencia

2. TRANSFERENCIA BLOQUE El controlador de DMA mantiene el control de los buses hasta que se finaliza la transferencia del bloque completo. La transferencia puede interrumpirse si se activa la seal EOP.

3. TRANSFERENCIA DEMANDA Transferencia bajo control del perifrico. Se transfieren datos mientras la lnea DREQ se mantenga activa. Cuando se desactiva la seal DREQ se detiene la transferencia. Los buses pertencen al controlador mientras DREQ es activa.

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A

MODO CASCADA Permite expandir indefinidamente el controlador 8237A Lneas HOLD y HLDA conectadas a DREQ y DACK
8237A
DREQ0 DACK0 DREQ1 DACK1 DREQ2 DACK2 DREQ3 DACK3

HOLD HLDA

8237A
DREQ0 DACK0 DREQ1 DACK1 DREQ2 DACK2 DREQ3 DACK3

HOLD HLDA

8237A
DREQ0 DACK0 DREQ1 DACK1 DREQ2 DACK2 DREQ3 DACK3

HOLD HLDA

8237A
DREQ0 DACK0 DREQ1 DACK1 DREQ2 DACK2 DREQ3 DACK3

HOLD HLDA

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A


TIPOS DE TRANSFERENCIA
En todos los modos: SINGLE, BLOQUE y DEMANDA: Lectura en memoria y escritura en perifrico Activas: MEMRD e IOWT Escritura en memoria y lectura en perifrico Activas: MEMWT e IORD Direcciona la memoria pero no activa ninguna de las lneas de control

LECTURA ESCRITURA VERIFY

Slo en modo BLOQUE:

Copia zonas de memoria MEMORIA A MEMORIA (en desuso) Utiliza dos canales de DMA: Canal 0 como fuente Canal 1 como destino Se inicia haciendo peticin por software al canal 0 Utiliza el registro temporal como almacn El ciclo dura el doble.

AUTOINICIALIZACIN
Los registros de base (direccin inicial y palabras a transferir) conservan su valor despus de terminada la transferencia. No es necesario reinicializarlos de nuevo.

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A


REGISTROS INTERNOS (todos de 8 bits)
Dir. (A0-A3)
0 1 2 3 4 5 6 7 8 9 A B C D E F REGISTRO TEMPORAL

LECTURA
DIRECCIN ACTUAL CONTADOR, VALOR ACTUAL DIRECCIN ACTUAL CONTADOR, VALOR ACTUAL DIRECCIN ACTUAL CONTADOR, VALOR ACTUAL DIRECCIN ACTUAL CONTADOR, VALOR ACTUAL REGISTRO DE ESTADO

ESCRITURA
DIRECCIN BASE CONTADOR BASE DIRECCIN BASE CONTADOR BASE DIRECCIN BASE CONTADOR BASE DIRECCIN BASE CONTADOR BASE REGISTRO DE COMANDO REGISTRO DE PETICIN MSCARA SET/RESET REGISTRO DE MODO CLEAR FLIP FLOP MASTER CLEAR BORRAR REG. DE MSCARA MSCARAS INDIVIDUALES

CANAL
0 1 2 3

En direcciones 0 a 7: registros de 16 bits FLIP FLOP a 0 FLIP FLOP a 1 Conmuta automticamente Se accede al byte bajo Se accede al byte alto

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A


REGISTRO de COMANDO (escritura)
BIT
0 1 2 3 4 5 6 7

FUNCIN
Habilita / deshabilita transferencias entre memoria y memoria Mantener direccin del canal 0 (Para transferir el mismo byte mltiples veces) Habilita / deshabilita el controlador DMA Temporizacin normal o comprimida Prioridad fija o rotativa No utilizado Flanco activo de DREQ (subida / bajada) Flanco activo de DACK (subida / bajada)

REGISTRO de ESTADO (lectura)


BIT
0 1 2 3 4 5 6 7

FUNCIN
Alcanzado fin de cuenta en canal 0 Alcanzado fin de cuenta en canal 1 Alcanzado fin de cuenta en canal 2 Alcanzado fin de cuenta en canal 3 Peticin pendiente en canal 0 Peticin pendiente en canal 1 Peticin pendiente en canal 2 Peticin pendiente en canal 3

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A


REGISTRO de MODO (escritura)
BIT
0,1

FUNCIN
Selecciona el canal al que se refiere 00 01 Transferencia en modo VERIFY Transferencia modo ESCRITURA Transferencia modo LECTURA Ilegal Deshabilita AUTOINICIALIZACIN Habilita AUTOINICIALIZACIN Direcciones se incrementan Direcciones se decrementan Modo DEMANDA Modo SINGLE Modo BLOQUE Modo CASCADA

2,3 10 11 0 4 1 0 5 1 00 01 6,7 10 11

REGISTRO TEMPORAL (lectura)


Usado durante las transferencias memoria a memoria Slo puede leerse Almacena el ltimo byte transferido

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A


REGISTRO de PETICIN (escritura)
BIT
0,1

FUNCIN
Selecciona el canal al que se refiere 0 Activa peticin por SOFTWARE Desactiva peticin

2 1

REGISTRO de MSCARA (escritura) Puede modificarse de dos formas: A travs de la direccin 0A:
BIT
0,1

FUNCIN
Selecciona el canal al que se refiere 0 Activa mscara Desactiva mscara

2 1

A travs de la direccin 0F:


BIT
0 1 2 3 Mscara del canal 0 Mscara del canal 1 Mscara del canal 2 Mscara del canal 3

FUNCIN

ACCESO DIRECTO A MEMORIA El controlador de DMA 8237 A


REGISTRO de BORRADO DE MSCARA (escritura) Pone a 0 la mscara de los 4 canales al mismo tiempo

REGISTRO de MASTER CLEAR (escritura) Efecta el RESET de la pastilla. Similar a activar la patilla correspondiente

REGISTRO de PUESTA A 0 DEL FLIP FLOP (escritura) Pone a 0 el flip flop interno que habilita el acceso a los registros de 16 bits.

ACCESO DIRECTO A MEMORIA El DMA en los PC


Se emplean dos controladores en cascada
DMA 1
DREQ0 DACK0 DREQ1 DACK1 DREQ2 DACK2 DREQ3 DACK3

CH 0 CH 1 CONTROLADOR DEL DISKETTE CH 3

HOLD HLDA

DMA 2
DREQ0 DACK0 DREQ1 DACK1 DREQ2 DACK2 DREQ3 DACK3

CH 5 CH 6 CH 7

CPU

HOLD HLDA

CH0, CH1 y CH3 CH5, CH6 y CH7

Transferencias de 8 bits Transferencias de 16 bits

Registros de pgina correspondientes: CANAL 0 1 2 3 Puerto E/S 87h 83h 81h 82h CANAL 5 6 7 Puerto E/S 8Bh 89h 8Ah

Posicin de los controladores DMA en el mapa de E/S DMA1 DMA2 Puertos: 00 a 0Fh Puertos C0h a DFh

ACCESO DIRECTO A MEMORIA El DMA en los PC


Conexin del segundo controlador (DMA2) para permitir transferencias de 16 bits

A23 A22

8237 DMA-2
A15 (D7) A14 (D6) A13 (D5) A12 (D4) A11 (D3) A10 (D2) A9 (D1) A8 (D0) A7 A6 A5 A4 A3 A2 A1 A0

Registro de pgina

A21 A20 A19 A18 A17 A16 A15

LATCH AUXILIAR (activado por seal ADSTB)

A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

Conectado a tierra en las transferencias DMA-2

Bus de direcciones DMA (A0 A23)

También podría gustarte