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

BPRI
HLDA

DIRECCIONES

MEMORIA

PERIF. 1
CONTROL

DATOS

DMA

PERIF. 2
PERIF. 3
PERIF. 4

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

EOP
RESET
CS
READY
CLOCK
AEN

HLDA

HOLD

IOW#

IOR#

MEMW#

MEMR#

El controlador de DMA 8237 A

8237-A

A0..A3

A4..A7
ADSTB
A8..A15
D0..D7

DACK0
DACK1
DACK2
DACK3

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

ACCESO DIRECTO A MEMORIA


El controlador de DMA 8237 A

Smbolo Tipo

Nombre

Funcin

Vcc

POWER

+5 V

Vss

GROUND

Tierra

CLK

CLOCK INPUT

Entrada de reloj (3 a 5 MHz)

CS

CHIP SELECT

Habilitacin del CI para acceder a sus registros

RESET

RESET

Inicializa el CI

READY

READY

Extiende la duracin del ciclo de bus

HLDA

HOLD ACKN.

HOLD

HOLD REQUEST Peticin de los buses a la CPU (BPRI)

DREQ0
DREQ3

DMA REQUEST

DACK0
DACK3

DMA ACKN.

Notifica concesin de ciclo DMA a los


perifricos solicitantes

A0-A3

E/S

ADDR. BUS

Entradas para direccionar regs. Internos


Salida de los 4 bits ms bajos de la dir. DMA

A4-A7

ADDR. BUS.

4 bits siguientes de la direccin DMA

Confirma que la CPU ha liberado los buses

Entradas de peticin de DMA por parte de los


perifricos (4 canales)

Bus de datos y direcciones multiplexado:


A8-A15

ADDR. BUS
(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

ADDR. STROBE

Indicacin de captura de direccin en LATCH

E/S
(D0-D7)

ADSTB

ACCESO DIRECTO A MEMORIA


El controlador de DMA 8237 A
Smbolo Tipo

Nombre

Funcin

IOR

E/S

I/O READ

Entrada indica lectura en regs. Internos


Salida indica ciclo DMA de escritura

IOW

E/S

I/O WRITE

Entrada indica escritura en regs. Internos


Salida indica ciclo DMA de lectura

MEMR

MEMORY READ

MEMW

MEMORY WRITE Indica ciclo de escritura en memoria

EOP

E/S

END OF
PROCESS

AEN

ADDR. ENABLE

Indica ciclo de lectura en memoria

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

SLO
LECTURA

Contador de
palabras
transferidas

Contador de
direcciones

SLO
ESCRITURA

16 bits

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

UP/
DOWN

ACCESO DIRECTO A MEMORIA


El controlador de DMA 8237 A

Registros comunes a los 4 canales

ESTADO (8 bits)

Indica el estado actual de las transferencias DMA que estn


siendo atendidas

COMANDOS (8 bits)

Configura el modo de funcionamiento del controlador de


DMA

TEMPORAL (8 bits)

Se utiliza para las transferencias entre memoria y memoria

MSCARA (4 bits)

Permite enmascarar de forma individual los diferentes canales


de peticin de DMA

PETICIN (4 bits)

Permite realizar peticiones por software, en lugar de activar


la lnea DREQ.

Registros replicados en cada uno de los 4 canales


DIRECCIN BASE
(16 bits)

Direccin inicial de la transferencia de datos

PALABRAS
TRANSFERIDAS (16 b)

Nmero de palabras que van a transferirse

CONTADOR DE
DIRECCIONES (16 bits)

Direccin actual de la transferencia

CONTADOR DE
PALABRAS (16 bits)
MODO (4 bits)

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

CS

A8-A15

A0-A3 A4-A7
ADSTB

DREQ
(x4)

AEN

STB
OE

8237 A

IOWT

8 bits

IORD

MEMWT

MEMRD

DACK
(x4)

LATCH
8 bit

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

Registro de
Pgina canal 0

BUFFER

Registro de
Pgina canal 1

BUFFER

Registro de
Pgina canal 2

BUFFER

Registro de
Pgina canal 3

BUFFER

A16-A23
OE

A16-A23
OE

A16-A23
OE

A16-A23
OE

AEN
DACK3

8237A

A0-A15

Bus de direcciones DMA (A0 A23)

Bus de datos (XBUS) (D0 D7)

Controlan las lneas ms altas del bus de direcciones DMA


Se cargan a travs de puertos de E/S

ACCESO DIRECTO A MEMORIA

Lgica
digital

El controlador de DMA 8237 A

MEMRD

Perifrico
1

MEMWT

Bus de control

IORD

Bus de datos

Bus de direcciones de transferencias DMA (A0 A23)

DRAM

IOWT

Perifrico
2

MEMRD
MEMWT
IORD
IOWT

8237

DACK0
DREQ0

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

HOLD
HLDA

8237A
DREQ0
DACK0

HOLD
HLDA

8237A
DREQ0
DACK0

HOLD
HLDA

DREQ1
DACK1
DREQ2
DACK2
DREQ3
DACK3

DREQ1
DACK1
DREQ2
DACK2

8237A

DREQ3
DACK3

DREQ0
DACK0

HOLD
HLDA

DREQ1
DACK1
DREQ2
DACK2
DREQ3
DACK3

DREQ1
DACK1
DREQ2
DACK2
DREQ3
DACK3

ACCESO DIRECTO A MEMORIA


El controlador de DMA 8237 A
TIPOS DE TRANSFERENCIA
En todos los modos: SINGLE, BLOQUE y DEMANDA:

LECTURA

Lectura en memoria y escritura en perifrico


Activas: MEMRD e IOWT

ESCRITURA

Escritura en memoria y lectura en perifrico


Activas: MEMWT e IORD

VERIFY

Direcciona la memoria pero no activa ninguna de


las lneas de control

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)

LECTURA

ESCRITURA

DIRECCIN ACTUAL

DIRECCIN BASE

CONTADOR, VALOR ACTUAL

CONTADOR BASE

DIRECCIN ACTUAL

DIRECCIN BASE

CONTADOR, VALOR ACTUAL

CONTADOR BASE

DIRECCIN ACTUAL

DIRECCIN BASE

CONTADOR, VALOR ACTUAL

CONTADOR BASE

DIRECCIN ACTUAL

DIRECCIN BASE

CONTADOR, VALOR ACTUAL

CONTADOR BASE

REGISTRO DE ESTADO

REGISTRO DE COMANDO

REGISTRO DE PETICIN

MSCARA SET/RESET

REGISTRO DE MODO

CLEAR FLIP FLOP

REGISTRO TEMPORAL

MASTER CLEAR

BORRAR REG. DE MSCARA

MSCARAS INDIVIDUALES

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

CANAL
0
1
2
3

ACCESO DIRECTO A MEMORIA


El controlador de DMA 8237 A
REGISTRO de COMANDO (escritura)
BIT

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

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

FUNCIN

0,1

Selecciona el canal al que se refiere


00

Transferencia en modo VERIFY

01

Transferencia modo ESCRITURA

10

Transferencia modo LECTURA

11

Ilegal

Deshabilita AUTOINICIALIZACIN

Habilita AUTOINICIALIZACIN

Direcciones se incrementan

Direcciones se decrementan

00

Modo DEMANDA

01

Modo SINGLE

10

Modo BLOQUE

11

Modo CASCADA

2,3

6,7

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

FUNCIN

0,1

Selecciona el canal al que se refiere


0

Activa peticin por SOFTWARE

Desactiva peticin

REGISTRO de MSCARA (escritura)


Puede modificarse de dos formas:
A travs de la direccin 0A:
BIT

FUNCIN

0,1

Selecciona el canal al que se refiere


0

Activa mscara

Desactiva mscara

A travs de la direccin 0F:


BIT

FUNCIN

Mscara del canal 0

Mscara del canal 1

Mscara del canal 2

Mscara del canal 3

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

HOLD
HLDA

DMA 2
DREQ0
DACK0

HOLD
HLDA

CPU

CH0, CH1 y CH3


CH5, CH6 y CH7

DREQ1
DACK1

CH 5

DREQ2
DACK2

CH 6

DREQ3
DACK3

CH 7

DREQ0
DACK0

CH 0

DREQ1
DACK1

CH 1

DREQ2
DACK2

CONTROLADOR
DEL DISKETTE

DREQ3
DACK3

CH 3

Transferencias de 8 bits
Transferencias de 16 bits

Registros de pgina correspondientes:


CANAL

Puerto E/S

CANAL

Puerto E/S

0
1
2
3

87h
83h
81h
82h

5
6
7

8Bh
89h
8Ah

Posicin de los controladores DMA en el mapa de E/S


DMA1

Puertos: 00 a 0Fh

DMA2

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

Registro
de
pgina

A21
A20
A19
A18
A17

A15 (D7)

A16

A14 (D6)

A15

A13 (D5)
A12 (D4)
A11 (D3)
A10 (D2)

LATCH
AUXILIAR

A14

(activado por
seal ADSTB)

A12

A13

A11

A9 (D1)

A10

A8 (D0)

A9

A7

A8

A6

A7

A5

A6

A4

A5

A3

A4

A2

A3

A1

A2

A0

A1
A0
Conectado a tierra en
las transferencias DMA-2

Bus de direcciones DMA (A0 A23)

8237
DMA-2

También podría gustarte