Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
O
DMAC
Datos
Direcciones
NTR*
5-39
W DMA-#EQ: solicitud de servicio DMA
a activa el perifrico para indicar al DMAC que est listo para transmitir/recibir
W DMA-ACK: Concesin del servicio DMA
a activa el DMAC para indicar al perifrico que puede realizar la transferencia
Antes de activar esta seal el DMAC debe estar en posesin del bus
W #/W*-IO: Sentido de la transferencia para el perifrico
El perifrico no puede utilizar la misma seal de R/W* que la memoria, ya que la transferencia tiene sentidos
opuestos desde el punto de vista de uno y otro dispositivo
Operacin DMA de Iectura (memoria Fperifrico )
W Para la memoria es una lectura: R/W* = 1
W Para el perifrico es una escritura: R/W*-O = 0
Operacin DMA de escritura (perifrico Fmemoria )
W Para la memoria es una escritura: R/W* = 0
W Para el perifrico es una lectura: R/W*-O = 1
SeaIes de controI deI perifrico
CPU
DMA
R/W*
DMA-RE"
DMA-ACK
E/S
R/W*-O
Mem.
R/W*
DMA-ACK
0
0
1
1
#/W*
0
1
0
1
#/W*-IO
0
1
1
0
Operacin de E/S normal
(controlada por la CP&)
R/W*-O = R/W*
Operacin de E/S
controlada por DMA
R/W*-O = NOT (R/W*)
PosibIe esquema de conexin de #/W* y #/W*-IO
5-40
W Fase de iniciaIizacin
a CP& le indica al interfaz del perifrico la operacin a realizar
a CP& accede a los registros del DMAC para indicar los parmetros de la transferencia
W Direccin inicial de memoria F#eg. dir. memoria
W Nmero de palabras a transferir F#eg. N palabras
W Sentido de la transferencia F#eg. Sentido
a CP& regresa a sus tareas
W Fase de transferencia
Cuando el perifrico est listo para transmitir/recibir lo indica al DMAC activando la seal #EQ
El DMA solicita el control del bus mediante las lneas de arbitraje
El DMA recibe la concesin del bus y activa la seal DMA-ACK para indicar al perifrico que puede iniciar la transfer.
El DMAC debe generar y procesar las seales del bus adecuadas
W Direccin de memoria sobre la que se realiza la transferencia
W Seales de sincronizacin de la transferencia (master-syncro, slave-syncro, etc.)
W Seales de lectura/escritura (R/W* y R/W*-O)
Despus de transferir cada palabra el DMAC debe actualizar sus registros
W Decrementar el registro de n de palabras
W ncrementar/decrementar el reg. de direcciones de mem. (segn sean direcciones crecientes o decrecientes)
En transferencias de robo de ciclo
W Se libera el bus despus de transferir cada palabra y se vuelve a solicitar para transferir la siguiente
En transferencias en modo rfaga
W El DMAC mantiene el control del bus hasta que se ha transferido el bloque completo
W Fase de finaIizacin de Ia transferencia
Cuando el registro de n de palabras llega a cero el DMAC activa la seal de interrupcin para indicrselo a la CP&
Funcionamiento de una transferencia DMA
5-41
W Transferencia modo robo de ciclo de disco a memoria (leer disco - escribir memoria)
W Protocolo de bus asncrono y protocolo de arbitraje de dos hilos
EjempIo de una transferencia DMA
DMA-RE"
DMA-ACK
B&S-RE"
B&S-NT
M-SYNC
S-SYNC
DR
DATOS
R/W*
R/W*-O
NTR*
Dir. 1
Disco FMem.
Dir. 2
Disco FMem.
Dir. n
Disco FMem.
5-42
ControIador DMA de varios canaIes
W Permiten conectar ms de un
perifrico al DMAC
W Cada canal controla las
transferencias de un nico
dispositivo
CPU
Bus datos
Bus direcc.
Bus controI
R/W*
Arbitraje
Sincroniz.
Memoria
Datos
Direcciones
NTR*
E/S
NTERFAZ B&S NTERNO
gica de descodific. y control
D
M
A
-
R
E
"
D
M
A
-
A
C
K
R
/
W
*
-
O
DMAC
Reg. dir. Mem.
Reg. N pal.
Reg. sentido
CANA 0
Reg. dir. Mem.
Reg. N pal.
Reg. sentido
CANA n
E/S n
D
M
A
-
R
E
"
D
M
A
-
A
C
K
R
/
W
*
-
O
5-43
. EjempIo: controIador de DMA i82C . EjempIo: controIador de DMA i82C
ControIador de DMA i82C
W Diseado para el i80386 (versin actualizada del i8237 e i82237 diseados para i8086 e i80286 respect.)
W Controlador de 4 canales enmascarables selectivamente
W Trabaja con direcciones de 16 bits y puede realizar transferencias de 8 y 16 bits.
W Protocolo de transferencia semisncrono y protocolo de arbitraje de 2 hilos (similar al i8086)
D#EQ- (DMA #equest): Seales de peticin de servicio DMA (4 canales)
DACK- (DMA Ack.): Seales de concesin de servicio DMA (4 canales)
H#Q (HoId #equest): Seales de peticin del control del bus
HDA (HoId Ack.): Seales de concesin del control del bus
EOP* (End of Process): Seal bidireccional con 2 funciones
Puede activarla la CP& para abortar una transferencia DMA
Puede activarla el DMAC para informar a la CP& el fin de la transferencia
CS* (Chip SeIect): a activa la CP& para programar el DMAC en la inicializ.
CK (CIock): Seal de reloj comn a la CP&, DMAC, memoria y perifricos
#EADY: a activa la memoria o el perifrico cuando no pueden realizar la
transferencia DMA en el tiempo mnimo establecido
#ESET: Reinicia el DMAC poniendo a cero los registros programables por la CP&
ADSTB (Address Strobe): Se utiliza para almacenar la direccin en un latch
(registro) externo
AEN (Address EnabIe): Se utiliza para capacitar la salida del latch donde est
almacenada la direccin y volcar la direccin sobre el bus
Jneas deI controIador
5-44
MEM#*-MEMW* (memory read - memory write): a activa el DMAC para indicar que la transferencia es de tipo:
W MEMR*: lectura de memoria (memFperif). Se activa simultneamente a OW*
W MEMW*: escritura en memoria (perifFmem). se activa simultneamente a OR*
IO#*-IOW* (I/O read - I/O write): Seales bidireccional con 2 funciones
a) Durante la fase de inicializacin (seales de entrada al DMAC)
a activa la CP& para indicar que se va a leer (OR*) o escribir (OW*) alguno de los registros del DMAC
b) Durante la fase de transferencia DMA (seales de salida del DMAC)
a activa el DMAC para indicar al perifrico que la transferencia es de tipo:
W OR*: lectura de E/S (perifFmem). Se activa simultneamente a MEMW*
W OW*: escritura en E/S (memFperif). Se activa simultneamente a MEMR*
DB-DB (Data bus): Seales con 2 funciones
a) Durante la fase de inicializacin
as usa la CP& para leer o escribir sobre los registros del DMAC (registros de 16 bits necesita dos accesos)
b) Durante la fase de transferencia DMA
as utiliza el DMAC para especificar los 8 bits ms signif. de la dir. de mem. sobre la que se realiza la transfer.
A-A (Address): Seales con 2 funciones
a) Durante la fase de inicializacin
a CP& usa las lneas A0-A3 para indicar cual de los registros del DMAC va a leer o escribir
b) Durante la fase de transferencia
as utiliza el DMAC para especificar los 8 bits menos signif. de la dir. de mem. sobre la que se realiza la transfer.
Jneas deI controIador (cont.)
5-45
Esquema de conexin deI controIador DMA i82C
5-46
Funcionamiento deI controIador
W El controlador puede estar en dos estados: inactivo y activo
W Estado inactivo (idIe)
El DMAC est en estado inactivo siempre que no hay ningn canal solicitando servicio DMA
En este estado la CP& puede leer o programar los registros del DMAC
W CP& activa la seal CS*
W Mediante las lneas A0-A3 la CP& selecciona el registro del DMAC
W Mediante OR*/OW* la CP& indica si se va a leer o escribir el registro seleccionado
W Estado inactivo (idIe)
El DMAC pasa a estado activo cuando se activa alguna de las seales DRE"i
Entonces el DMAC solicita el control del bus y cuando la CP& lo concede se realiza la transferencia
a transferencia puede ser de 2 tipos: simple o de bloque
W Modo de transferencia simpIe (robo de cicIo)
Cuando el DMAC controla el bus se transfiere una nica palabra (de 8 o 16 bits segn el ancho programado)
Despus de cada palabra el DMAC libera el bus y vuelve a solicitarlo hasta que se finaliza la transferencia completa
El perifrico puede desactivar su seal DRE"i una vez que detecta DACKi activada
W El bus se libera despus de cada palabra aunque el perifrico mantenga activada la peticin DRE"i
W Modo de transferencia de bIoque (modo rfaga)
Cuando el DMAC toma el control del bus se transfiere un bloque completo hasta que el cont. de palabras llega a cero
El perifrico puede desactivar su seal DRE"i una vez que detecta DACKi activada
5-47
Programacin deI controIador DMA i82C
W #egistros de direcciones y contadores de paIabras ( bits cada uno)
Dos registros de direcciones (base y actual) y dos registros contadores de palabras (base y actual) por cada canal
W 16 bits cada uno
#egistro de direccin base y registro contador base
W Almacenan la direccin inicial de la transferencia y el n inicial de palabras a transferir
W Su contenido no se modifica durante toda la transferencia
W Permiten realizar varias transferencias similares sin necesidad de reprogramar el DMAC
#egistro de direccin actuaI y registro contador actuaI
W Almacenan la direccin de la siguiente palabra a transferir y el n de palabras que quedan por transferir
W Se actualizan despus de la transferencia de cada palabra
W Cuando el contador de palabras actual llega a cero indica que la transferencia ha finalizado
W #egistro de rdenes (8 bits)
Permiten a la CP& programar el funcionamiento del DMAC. as principales funciones que pueden programarse son:
W Activacin deI DMAC: DMAC activado o desactivado
W Tipos de prioridad de Ios canaIes: fija o rotante
W Forma de Ias seaIes D#EQi: activadas a alta o a baja
W Forma de Ias seaIes DACKi: activadas a alta o a baja
W #egistros de modo (uno por canaI bits cada uno)
Permiten a la CP& programar el funcionamiento de cada canal. as principales funciones son:
W Sentido de Ia transferencia: lectura o escritura
W Modo de transferencia: simple o de bloque
W Orden de direcciones de memoria: creciente o decreciente
5-48
Programacin deI controIador DMA i82C (cont.)
W #egistro de mscara ( bits)
Cada canal tiene un asociado un bit de mscara programable por la CP&
Si el bit de mscara de un canal est activado ese canal no puede atender peticiones DMA por su lnea DRE"i
W #egistro de estado (8 bits)
Permiten a la CP& consultar el estado del DMAC
W Bit 0/1/2/3 FCanal 0/1/2/3 ha alcanzado el final de la cuenta
W Bit 4/5/6/7 FSolicitud de servicio por canal 0/1/2/3 (DRE"0/DRE"1/DRE"2/DRE"3 activada)
Transferencias DMA
W as etapas en una transferencia DMA son las siguientes
1. El perifrico activa DRE"i para solicitar servicio DMA
2. El DMAC solicita el control del bus activando HR"
3. a CP& concede el uso del bus activando HDA
4. El DMAC activa DACKi
5. Se realiza la transferencia de una palabra
W Tras la activacin de DACKi cada transferencia individual dura como mnimo 3 ciclos de reloj
W Si el perifrico o la memoria necesitan ms tiempo deben desactivar la seal READY
6. Se actualizan los registros de direccin actual y contador de palabras actual
W Si la transferencia es modo simple el DMAC libera el uso del bus y se vuelve al paso 1
W Si la transferencia es modo de bloque se vuelve al paso 5
5-49
Diagrama de estados de Ia transferencia DMA
S
i
nactivo
S
0
Activar
HR"
S
1
Activar
DACKi
S
2
Poner dir.
en bus
S
4
Actualizar
registros
S
3
Transferir
dato
No DRE"i activado
DRE"i
activado
HDA desactivado
HDA
activado
READY desactivado
Contador no ha llegado a cero
Contador ha llegado a cero / liberar bus
Transferencia modo bIoque
Transferencia modo simpIe
Similar salvo que despus de transmitir cada palabra se salta siempre de S
4
a S
i
5-50
. Procesadores de E/S . Procesadores de E/S
#evisin de mtodos de E/S
W E/S programada con espera de respuesta
a CP& ejecuta un bucle de espera hasta que el perifrico est preparado para la transferencia
Durante una operacin de E/S, la CP& est completamente dedicada a la atencin del perifrico
W E/S por interrupciones
El perifrico es capaz de interrumpir a la CP& para indicar que est preparado
a CP& puede realizar otras tareas y solamente atiende al perifrico cuando se produce una interrupcin
a CP& es la encargada de controlar la operacin de E/S mediante la ejecucin de la RT
W Acceso directo a memoria (DMA)
a CP& slo debe preocuparse de inicializar el DMAC indicndole los parmetros de la transferencia
&na vez inicializado, el DMAC se encarga de controlar totalmente la transferencia
Durante la transferencia de E/S la CP& puede dedicarse a otras tareas
Procesadores de E/S (PE/S) o canaIes
W &n PE/S o canal es un procesador auxiliar dedicado a realizar las operaciones de E/S
Disponen de un repertorio de instrucciones limitado y especializado en operaciones de E/S
Son capaces de controlar totalmente las operaciones de E/S mediante la ejecucin de instrucciones de E/S
W as instrucciones o programas de E/S se almacenan en la memoria principal del computador
Para iniciar una transferencia de E/S la CP& nicamente indica al procesador de E/S la direccin de memoria donde
comienza el programa de E/S
El procesador de E/S ejecuta estas instrucciones y controla totalmente la transferencia de datos
W a CP& queda completamente liberada de las operaciones de E/S
5-51
Tipos de procesadores de E/S
W Dependiendo de su funcionamiento y del tipo de perifricos que se conectan se distinguen tres tipos de
PE/S o canales:
Canal multiplexor
Canal selector
Canal multiplexor por bloques
Esquema tJpico de conexin
E/S
B&S de E/S
E/S
E/S
PE/S-1
E/S
B&S de E/S
E/S
E/S
PE/S-n
E/S
CP& Memoria
B&S del sistema
5-52
W CanaI muItipIexor
Diseado para trabajar con dispositivos de baja velocidad
Puede manejar la transferencia de varios dispositivos simultneamente
Idea bsica
W El intercambio de datos entre el canal y memoria se realiza
mucho ms rpidamente que la transferencia entre el canal
y cada uno de los perifricos individualmente
W El canal puede atender de modo alternativo a los distintos
perifricos durante cortos intervalos de tiempo en los que se
transmite una palabra (multiplexacin en el tiempo)
Estructura
W Est formado por varios subcanales, cada uno de los
cuales atiende a un perifrico
W El n de subcanales determina el n de perifricos que
pueden atenderse de forma simultnea
W CanaI seIector
Diseado para trabajar con dispositivos de alta velocidad
Puede atender a varios dispositivos pero no de forma simultnea
W Cuando se inicia una transferencia con un perifrico no se puede atender a ningn otro hasta que la
transferencia haya finalizado por completo
W CanaI muItipIexor por bIoques
Diseado para trabajar con dispositivos de alta velocidad que transmiten su informacin en bloques separados
El canal controla las transferencias de varios dispositivos de forma multiplexada en el tiempo pero por bloques
W El canal atiende de forma alternativa a los distintos perifricos durante intervalos tiempo en los que se transmite
un bloque de informacin
E/S 1 E/S 1 E/S k
Subcanal 1 Subcanal 2 Subcanal n
Buffer con
memoria
B&S de E/S
B&S interno
B&S del sistema
CanaI
MuItipIexor
Tipos de procesadores de E/S (cont.)
5-53
W Procesadores de E/S o canaIes de propsito especJfico
os procesadores de E/S clsicos son procesadores especficamente diseados para realizar operaciones de E/S
Disponen de un conjunto reducido de instrucciones, que incluyen:
W Tipos de datos y modos de direccionamiento simpes
W nstrucciones simples de aritmtica bsica (suma, incremento, decremento, complemento,...)
W nstrucciones de movimiento de datos (MOVE, N, O&T, ...), que soportan movimientos de bloque
W nstrucciones especficas de control de perifricos (avance, rebobinado, etc.)
EjempIos
W BM 370 (diseado para mainframes basados en el BM 360)
W ntel 8089 (procesador de E/S compatible con i8086)
W Microprocesadores de propsito generaI
Actualmente es ms comn utilizar microcontroladores de
E/S basados en microproc. RSC de propsito general
EjempIo: i89 #P IOP
W Microcontrolador de E/S integrado basado en el
procesador intel 80890 (procesador RSC de 32 bits)
W ntegra, ente otros, los siguientes elementos:
Procesador (+ cache de datos e intrucc.)
Controlador de memoria local
Bus interno de 32 bits
Soporte para conexin de 2 buses PC
Controlador de interrupciones avanzado
Tres canales DMA independientes
EvoIucin de Ios procesadores de E/S
5-54