dma

20
ACCESO DIRECTO A MEMORIA Utiliza los ciclos en que la CPU no accede a los buses. Transferencias entre periféricos y la memoria. Transferencia de bloques de memoria a memoria. BPRI HLDA CPU CONTROL DMA MEMORIA PERIF. 1 PERIF. 2 PERIF. 3 PERIF. 4 DATOS CONTROL DIRECCIONES BPRI HLDA

Upload: alan

Post on 14-Nov-2014

530 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Dma

ACCESO DIRECTO A MEMORIA

♦ Utiliza los ciclos en que la CPU no accede a los buses.

♦ Transferencias entre periféricos y la memoria.

♦ Transferencia de bloques de memoria a memoria.

BPRI

HLDA

CPUCONTROL

DMA

MEMORIA

PERIF. 1

PERIF. 2

PERIF. 3

PERIF. 4

DAT

OS

CO

NTR

OL

DIR

ECC

ION

ES

BPRI

HLDA

Page 2: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

El bus de direcciones para los accesos DMA

Subsistema dememoria

DRAM

EPROM

Dispositivos E/S

CPU

A3 – A36

BE0 – BE7

Lógica digital

A0-A23Bus para lastransferencias DMA

Page 3: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

8237-A

4

4

8

DR

EQ0

DR

EQ1

DR

EQ2

DR

EQ3

DAC

K0D

ACK1

DAC

K2D

ACK3

A0..A3

A4..A7

A8..A15D0..D7

MEM

R#

MEM

W#

IOR

#

IOW

# HO

LD

HLD

A

ADSTB

EOPRESET

CSREADYCLOCK

AEN

• 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

Page 4: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

Símbolo Tipo Nombre Función

Vcc POWER +5 V

Vss GROUND Tierra

CLK E CLOCK INPUT Entrada de reloj (3 a 5 MHz)

CS E CHIP SELECT Habilitación del CI para acceder a sus registros

RESET E RESET Inicializa el CI

READY E READY Extiende la duración del ciclo de bus

HLDA E HOLD ACKN. Confirma que la CPU ha liberado los buses

HOLD S HOLD REQUEST Petición de los buses a la CPU (BPRI)

DREQ0DREQ3 E DMA REQUEST Entradas de petición de DMA por parte de los

periféricos (4 canales)

DACK0DACK3 S DMA ACKN. Notifica concesión de ciclo DMA a los

periféricos solicitantes

A8-A15

(D0-D7)E/S

ADDR. BUS

(DATA BUS)

Bus de datos y direcciones multiplexado:

• Permite lectura y escritura en regs. internos• Salida de byte alto de la dirección en DMA• Entrada/salida de datos en memoria en lastransferencias entre memoria y memoria

A0-A3 E/S ADDR. BUS Entradas para direccionar regs. InternosSalida de los 4 bits más bajos de la dir. DMA

A4-A7 S ADDR. BUS. 4 bits siguientes de la dirección DMA

ADSTB S ADDR. STROBE Indicación de captura de dirección en LATCH

Page 5: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

Símbolo Tipo Nombre Función

MEMR S MEMORY READ Indica ciclo de lectura en memoria

MEMW S MEMORY WRITE Indica ciclo de escritura en memoria

EOP E/S END OFPROCESS

Como entrada, detiene el ciclo DMAComo salida indica final del ciclo DMA

IOR E/S I/O READ Entrada indica lectura en regs. InternosSalida indica ciclo DMA de escritura

IOW E/S I/O WRITE Entrada indica escritura en regs. InternosSalida indica ciclo DMA de lectura

AEN S ADDR. ENABLE Indica que se está produciencdo ciclo DMA

Page 6: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

Registro basede palabrasa transferir

Registro basede direcciones

Contador depalabras

transferidas

Contador dedirecciones

16 bits

UP/DOWN

Bus interno8 bits

Estructura de un canal de DMA

SÓLO

LEC

TUR

ASÓ

LOES

CR

ITU

RA

Hacia el busde direcciones

Registros de 16 bitsBus interno de 8 bitsUn conjunto de 4 por cada canal

Page 7: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

ESTADO (8 bits)

COMANDOS (8 bits)

TEMPORAL (8 bits)

MÁSCARA (4 bits)

PETICIÓN (4 bits)

Indica el estado actual de las transferencias DMA que estánsiendo 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 canalesde petición de DMA

Permite realizar peticiones por software, en lugar de activarla línea DREQ.

Registros comunes a los 4 canales

PALABRASTRANSFERIDAS (16 b)

CONTADOR DEDIRECCIONES (16 bits)

CONTADOR DEPALABRAS (16 bits)

MODO (4 bits)

Dirección inicial de la transferencia de datos

Número de palabras que van a transferirse

Dirección actual de la transferencia

Número de palabras que quedan por transferir

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

Registros replicados en cada uno de los 4 canales

DIRECCIÓN BASE(16 bits)

Page 8: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

Bus de direcciones de transferencias DMA (A0-A23)

8237 A

Lógica deselección

CS A0-A3 A4-A7

LATCH8 bit

STB

OE

ADSTB

AEN

Bus de datos

64 bits

8 bits

Bus multiplexadoA8-A15 (D0-D7)

Conectado a 8 bitsmás bajos (XBUS)

A8-A15

MEM

RD

MEM

WT

IOR

D

IOW

T

DREQ(x4)

DACK(x4)

Page 9: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

LOS REGISTROS DE PÁGINAControlan las líneas más altas del bus de direcciones DMASe cargan a través de puertos de E/S

Bus

de

dire

ccio

nes

DMA

(A0

–A2

3)

8237A A0-A15

Reg

istro

de

Pági

na c

anal

0R

egis

tro d

ePá

gina

can

al 1

Reg

istro

de

Pági

na c

anal

2R

egis

tro d

ePá

gina

can

al 3

BUFF

ERBU

FFER

BUFF

ERBU

FFER

A16-A23

A16-A23

A16-A23

A16-A23

Bus

de

dato

s (X

BU

S) (D

0 –

D7)

OE

AENDACK3

OE

OE

OE

Page 10: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

Bus

de

dire

ccio

nes

de tr

ansf

eren

cias

DM

A (A

0 –

A23)

Bus

de

dato

s

Bus

de

cont

rol

DRAMLó

gica

digi

tal

Periférico1

Periférico2

MEMRD

MEMWT

IORD

IOWT

8237

MEMRDMEMWTIORDIOWT

DACK0DREQ0

DACK1DREQ1

Page 11: Dma

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 hastaque se finaliza la transferencia del bloque completo.

La transferencia puede interrumpirse si se activa la señal EOP.

3. TRANSFERENCIA DEMANDA

Transferencia bajo control del periférico. Se transfieren datosmientras la línea DREQ se mantenga activa. Cuando se desactivala señal DREQ se detiene la transferencia.

Los buses pertencen al controlador mientras DREQ es activa.

Page 12: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

MODO CASCADA

DREQ0DACK0

DREQ1DACK1

DREQ2DACK2

DREQ3DACK3

HOLDHLDA

DREQ0DACK0

DREQ1DACK1

DREQ2DACK2

DREQ3DACK3

HOLDHLDA

DREQ0DACK0

DREQ1DACK1

DREQ2DACK2

DREQ3DACK3

HOLDHLDA

DREQ0DACK0

DREQ1DACK1

DREQ2DACK2

DREQ3DACK3

HOLDHLDA

Permite expandir indefinidamente el controlador 8237A

Líneas HOLD y HLDA conectadas a DREQ y DACK

8237A

8237A

8237A

8237A

Page 13: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 ATIPOS DE TRANSFERENCIA

LECTURA

ESCRITURA

VERIFY

Lectura en memoria y escritura en periféricoActivas: MEMRD e IOWT

Escritura en memoria y lectura en periféricoActivas: MEMWT e IORD

Direcciona la memoria pero no activa ninguna de las líneas de control

En todos los modos: SINGLE, BLOQUE y DEMANDA:

MEMORIAA

MEMORIA

(en desuso)

Copia zonas de memoriaUtiliza dos canales de DMA:

Canal 0 como fuenteCanal 1 como destino

Se inicia haciendo petición por software al canal 0Utiliza el registro temporal como almacénEl ciclo dura el doble.

Sólo en modo BLOQUE:

AUTOINICIALIZACIÓN

Los registros de base (dirección inicial y palabras a transferir) conservan su valor después de terminada la transferencia. No es necesarioreinicializarlos de nuevo.

Page 14: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 AREGISTROS INTERNOS

(todos de 8 bits)

Dir.(A0-A3) LECTURA ESCRITURA

0 DIRECCIÓN ACTUAL DIRECCIÓN BASE1 CONTADOR, VALOR ACTUAL CONTADOR BASE2 DIRECCIÓN ACTUAL DIRECCIÓN BASE3 CONTADOR, VALOR ACTUAL CONTADOR BASE4 DIRECCIÓN ACTUAL DIRECCIÓN BASE5 CONTADOR, VALOR ACTUAL CONTADOR BASE6 DIRECCIÓN ACTUAL DIRECCIÓN BASE7 CONTADOR, VALOR ACTUAL CONTADOR BASE

CANAL

0

1

2

3

8 REGISTRO DE ESTADO REGISTRO DE COMANDO9 REGISTRO DE PETICIÓNA MÁSCARA SET/RESETB REGISTRO DE MODOC CLEAR FLIP FLOPD REGISTRO TEMPORAL MASTER CLEARE BORRAR REG. DE MÁSCARAF MÁSCARAS INDIVIDUALES

En direcciones 0 a 7: registros de 16 bits

FLIP FLOP a 0 Se accede al byte bajoFLIP FLOP a 1 Se accede al byte alto

Conmuta automáticamente

Page 15: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

REGISTRO de COMANDO (escritura)

BIT FUNCIÓN

0 Habilita / deshabilita transferencias entre memoria y memoria

1 Mantener dirección del canal 0 (Para transferir el mismo byte múltiples veces)

2 Habilita / deshabilita el controlador DMA

3 Temporización normal o comprimida

4 Prioridad fija o rotativa

5 No utilizado

6 Flanco activo de DREQ (subida / bajada)

7 Flanco activo de DACK (subida / bajada)

REGISTRO de ESTADO (lectura)

BIT FUNCIÓN

0 Alcanzado fin de cuenta en canal 0

2 Alcanzado fin de cuenta en canal 2

3 Alcanzado fin de cuenta en canal 3

4 Petición pendiente en canal 0

5 Petición pendiente en canal 1

6 Petición pendiente en canal 2

7 Petición pendiente en canal 3

1 Alcanzado fin de cuenta en canal 1

Page 16: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

REGISTRO de MODO (escritura)

BIT FUNCIÓN

0,1 Selecciona el canal al que se refiere

2,3

00 Transferencia en modo VERIFY

01 Transferencia modo ESCRITURA

10 Transferencia modo LECTURA

11 Ilegal

40 Deshabilita AUTOINICIALIZACIÓN

1 Habilita AUTOINICIALIZACIÓN

50 Direcciones se incrementan

1 Direcciones se decrementan

6,7

00 Modo DEMANDA

01 Modo SINGLE

10 Modo BLOQUE

11 Modo CASCADA

REGISTRO TEMPORAL (lectura)

• Usado durante las transferencias memoria a memoria• Sólo puede leerse• Almacena el último byte transferido

Page 17: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

REGISTRO de PETICIÓN (escritura)

BIT FUNCIÓN

0,1 Selecciona el canal al que se refiere

20 Activa petición por SOFTWARE

1 Desactiva petición

REGISTRO de MÁSCARA (escritura)

BIT FUNCIÓN

0,1 Selecciona el canal al que se refiere

20 Activa máscara

1 Desactiva máscara

Puede modificarse de dos formas:

A través de la dirección 0A:

BIT FUNCIÓN

0 Máscara del canal 0

A través de la dirección 0F:

1 Máscara del canal 1

2 Máscara del canal 2

3 Máscara del canal 3

Page 18: Dma

ACCESO DIRECTO A MEMORIA

El controlador de DMA 8237 A

REGISTRO de BORRADO DE MÁSCARA (escritura)

Pone a 0 la máscara de los 4 canales al mismo tiempo

REGISTRO de MASTER CLEAR (escritura)

Efectúa el RESET de la pastilla. Similar a activar la patillacorrespondiente

REGISTRO de PUESTA A 0 DEL FLIP FLOP (escritura)

Pone a 0 el flip flop interno que habilita el acceso a losregistros de 16 bits.

Page 19: Dma

ACCESO DIRECTO A MEMORIA

El DMA en los PCSe emplean dos controladores en cascada

CPU

DREQ0DACK0

DREQ1DACK1

DREQ2DACK2

DREQ3DACK3

HOLDHLDA

DREQ0DACK0

DREQ1DACK1

DREQ2DACK2

DREQ3DACK3

HOLDHLDA

DMA 2

DMA 1

CONTROLADORDEL DISKETTE

CH 0

CH 1

CH 3

CH 5

CH 6

CH 7

CH0, CH1 y CH3 Transferencias de 8 bitsCH5, CH6 y CH7 Transferencias de 16 bits

Registros de página correspondientes:

Posición de los controladores DMA en el mapa de E/S

DMA1 Puertos: 00 a 0Fh

DMA2 Puertos C0h a DFh

CANAL Puerto E/S CANAL Puerto E/S

0 87h 5 8Bh1 83h 6 89h2 81h 7 8Ah3 82h

Page 20: Dma

ACCESO DIRECTO A MEMORIA

Conexión del segundo controlador (DMA2) para permitir transferencias de 16 bits

El DMA en los PC

Bus

de

dire

ccio

nes

DMA

(A0

–A2

3)

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9

A10

A11

A12

A13

A14

A15

A16

A17

A18

A19

A20

A21

A22

A23

8237DMA-2

LATCHAUXILIAR

(activado porseñal ADSTB)

Registrode

página

A15 (D7)

A14 (D6)

A13 (D5)

A12 (D4)

A11 (D3)

A10 (D2)

A9 (D1)

A8 (D0)

A7

A6

A5

A4

A3

A2

A1

A0

Conectado a tierra en las transferencias DMA-2