Escolar Documentos
Profissional Documentos
Cultura Documentos
Perifricos
- Presentacin de datos (pantalla, impresora,...) - Adquisicin de datos (teclado, sensores,...) - Soportes de informacin (discos, cintas,...) - Otros (motores, vlvulas,...)
CPU
MEM
Kp
Perifrico
Controlador
Justificacin
gran variedad de perifricos con diferentes conexiones fsicas a los buses y controlados de forma muy diferente electrnicamente.
Controlador
Dispositivo electrnico que se interpone entre los buses del sistema y el perifrico y que es visible a nivel de LM como un conjunto de registros. El controlador descarga a la CPU del control directo del dispositivo La CPU se comunica con los perifricos a travs de los registros del controlador.
Subsistema de Entrada-Salida (ACI) 4
Multiplexado
Controla varios perifricos Multiplexado por caracteres: perifricos lentos Multiplexado por bloques: perifricos de velocidad intermedia
No Multiplexado
Multiplexado
P3
6
datos
DATOS
CPU
@
ESTADO
control
CONTROL
invisible a L.M.
controlador
Subsistema de Entrada-Salida (ACI)
perifrico
8
Registro de control
Informacin de control: la operacin a realizar (r/w), la forma de trabajar del perifrico, etc. Informacin escrita por la CPU
Registro de datos
Informacin a transferir entre el perifrico y la CPU
Subsistema de Entrada-Salida (ACI) 9
CPU
MEM
Kp
Perifrico
Cmo se accede a los registros del controlador? E/S mapeada en memoria E/S no mapeada en memoria
Subsistema de Entrada-Salida (ACI) 10
E/S
C000h BFFFh Registros de E/S
RAM
4000h 3FFFh
32 K
64 K
ROM
0000h
16 K
11
DATOS
6 1 0 6 1 0 6 1 0
@
16
16
16
CS
RAM
[0xxxxxx]
CS = A 6
datos
OE = A 6 A1 A0
control
LD = A 6 A 1 A 0
estado
OE = A 6 A 1 A 0
RAM
0000000
Desventajas
Menor espacio direccionable de memoria Dificultad para controlar el acceso a los reg. E/S por parte de los programas de usuario Modo privilegiado (SO) para accesos a E/S
Subsistema de Entrada-Salida (ACI) 13
RAM ROM
Reg. E/S
IO/M (=1)
14
DATOS
1 0 1 0 1 0
@
16
16
16
CS
@ RD/WR RAM
[xxxxxxx] OE RD/WR [0000001] LD RD/WR [0000011] OE RD/WR [0000010]
datos
OE = IO/M A1 A0
control
LD = IO/M A1 A0
estado
OE = IO/M A1 A0
CS = IO/M
RAM
0000000
Instrucciones in/out
Desventajas
Necesidad de nuevas instrucciones: in y out Necesidad de una seal de control ms en el bus
16
17
Desventajas:
Se complica el hardware (mecanismo de ejecucin de las instrucciones)
19
20
INT
. . . . . . . . .
INT
Rutina de servicio CPU Kp PC Aplicacin
Per.
21
Deteccin de la interrupcin
La CPU dispone de una o varias lneas a travs de las que los dispositivos pueden interrumpir a la CPU INT: seal de entrada a la unidad de control La CPU muestrea el valor de la seal de peticin de interrupcin
En alguna de las fases de ejecucin de la instruccin
Deteccin de interrupciones
IF
K1 K2
I nt1 I nt2
*
U.C.
Kn
I nt n
CPU
K1 K2
Kn
INT n CPU
24
La rutina de interrupcin salva los registros que utilice Dnde se salva esta informacin? PILA
Subsistema de Entrada-Salida (ACI) 25
Identificacin de la interrupcin
problemas
Cmo determinar quin ha interrumpido? Si varios han interrumpido por la misma lnea INT, a quin se atiende?
alternativas
Identificacin software (por ejemplo, MC68000) Identificacin hardware
26
Identificacin software
Tras la deteccin de la seal INT y si IF=1, la CPU ejecuta una rutina de atencin general que determina mediante encuesta qu dispositivo ha interrumpido
for (i=0;i<n;i++) if (leer_reg_estado (Ki) == PREPARADO) { rut_atencion_Ri(); break; }
Una vez determinado el perifrico, se ejecuta la rutina de atencin correspondiente a ese perifrico Interrupciones simultneas? El orden en que se realiza la encuesta determina la prioridad entre los dispositivos
Subsistema de Entrada-Salida (ACI) 27
Identificacin hardware
El propio dispositivo es quien se identifica El controlador enva a la CPU (tres opciones):
la propia direccin de la rutina de atencin, o bien el cdigo de una instruccin (salto) que ser ejecutada por la CPU para lanzar la ejecucin de la rutina de atencin, o bien un identificador que es usado por la CPU para acceder a una tabla (vector de interrupcin) donde se encuentra la direccin de la rutina a ejecutar interrupcin vectorizada (i80x86)
La CPU acepta la peticin de interrupcin por medio de una seal INTA hacia el controlador del perifrico
Subsistema de Entrada-Salida (ACI) 28
Identificacin hardware
Bus (@, Dat, Control) INTA
INT
INT1 INT2 INTn
CPU
Controlador 1
Controlador 2
Controlador n
29
Interrupciones simultneas
Si varios perifricos han interrumpido por la misma lnea INT, a quin se atiende? Alternativas
1. Codificador con prioridad: + un codificador proporciona, adems de la seal INT, el cdigo del perifrico con mayor prioridad + un decodificador utiliza este cdigo para llevar la seal INTA de la CPU al controlador correspondiente
30
INT
Controlador 1 Controlador 2
INT 2 INT n
p INTA 1 INTA 2
decodificador
CPU
Controlador n
INTA n
INTA
31
Interrupciones simultneas
alternativas
2. Daisy-chain o cadena de margaritas: + la CPU activa la seal INTA + cuando el controlador detecta la seal INTA + si no ha pedido la interrupcin, activa la seal de salida INTA hacia el siguiente controlador (as hasta que la seal llega al controlador que ha pedido la interrupcin) + si ha pedido la interrupcin, no pasa la seal INTA al siguiente controlador y enva a la CPU la informacin necesaria para el tratamiento de la interrupcin + los controladores ms cercanos a la CPU son los ms prioritarios
Subsistema de Entrada-Salida (ACI) 32
CPU
INTA
Controlador n INTAin Controlador 2 INTAout Controlador 1 INTAout INTAin
33
Interrupciones multinivel
La CPU puede ser interrumpida mientras est ejecutando otra rutina de atencin a una interrupcin previa
+ se pospone la ejecucin de la rutina de interrupcin actual y se atiende la nueva interrupcin + IF no se desactiva por defecto al tratar una interrupcin
Prioridades decrecientes:
+ se atiende la interrupcin de un perifrico de prioridad n si estn permitidas y si en ese momento se est ejecutando una rutina de atencin a una interrupcin menos prioritaria
34
Interrupciones multinivel
Aplicacin
INTx
. . . . . . . . .
Rutina de servicio x
INTy
Rutina de servicio y
Retorno de la interrupcin x
Retorno de la interrupcin y
Subsistema de Entrada-Salida (ACI) 35
INT*
Controlador 1
B Comparador A
A>B
Controlador 2
CPU
decodificador
INTA
36
CPU
S INT S INT INTA in INTAout Controlador 1 S INTAin
INTA
Controlador n
Controlador 2
Controlador de interrupciones
Circuito intermediario entre la CPU y los controladores de los perifricos de E/S Circuito que resuelve todos los aspectos comentados:
+ gestiona la comunicacin entre la CPU y el controlador del perifrico + determina el perifrico a atender en funcin de prioridades + gestiona las interrupciones multinivel, ...
38
@ DAT CONT
A Kp CPU M
Perifrico
@ DAT CONT
A KDMA CPU M Kp
CON DMA
Perifrico
40
Memoria
K1
K2 CPU KDMA
P1
P2
P3
K1 CPU M P1
K2
K3 KDMA
P2
P3
Controlador de DMA
Registro de direccin: direccin de lectura/escritura de la
informacin a transferir
42
Controlador de DMA
Sincronizacin bus Seal al CI
BR Bus
Request
KDMA
DIRECCIN DMAR LONGITUD CONTROL
BR BG
DMAG
IRQ
ESTADO
Sincronizacin perifrico
44
BR M CPU BG KDMA
INTR
45
Perifrico Memoria
Memoria Perifrico
46
Kper DMAR (Peticin de DMA) KDMA BR (Peticin del uso de los buses) CPU BG (Concesin del uso de los buses) KDMA realiza la transferencia del dato/datos
Direccin en el bus de direcciones Activa la seal (R/W) Activa DMAG Kper acta sobre el bus de datos