8. ENTRADA / SALIDA
1
ENTRADA / SALIDA
1. Estructura General
2. Espacios de Direccionamiento
3. Métodos de Entrada / Salida
3.1. Polling
3.2. Interrupciones
3.3. DMA
2
ENTRADA / SALIDA
1. Estructura General
3
Estructura General
CPU
Memoria
DD1
Entrada / Salida
DD2
4
Estructura General
CPU
Memoria
Controlador
de vídeo
Controlador
de Teclado
Controlador
de Disquete
Controlador
Impresora
Controlador
de Discos
DD1
Entrada / Salida
DD2
5
Estructura General
CPU
Memoria
Driver de
teclado
Driver de
vídeo
:
:
:
:
Controlador
de vídeo
Controlador
de Teclado
Controlador
de Disquete
Controlador
Impresora
Controlador
de Discos
DD1
Entrada / Salida
DD2
6
ENTRADA / SALIDA
2. Espacios de Direccionamiento
7
Espacios de Direccionamiento
Direccionamiento de la E/S
E/S
Explícita
E/S
Mapeada
Espacios de
direccionamiento
separados
Espacio de
direccionamiento
único
Entrada / Salida
8
Espacios de Direccionamiento
E/S Explícita
Intel: Instrucciones explícitas de E/S
IN (AX, FFF4);
OUT (AX, FFF6);
PowerPC: Registro de control para conmutar de
espacio de direccionamiento
E/S Mapeada
68000: Instrucciones normales
MOVE.B $EFFA07,D0
MOVE.B D0,$EFFA07
Entrada / Salida
9
ENTRADA / SALIDA
3. Métodos de Entrada / Salida
10
Métodos de Entrada / Salida
La comunicación
entre CPU y
dispositivo se
realiza en dos fases
1º Sincronización CPU - Dispositivo
2º Transferencia del Dato
Estos 2 pasos pueden realizarse:
SW. Baja
 Por Polling
 Por Interrupciones
 Por DMA
HW. Alta
Polling Interrupciones DMA
Sincronización SW-CPU
HW.
HW.
Transferencia SW-CPU
SW-CPU
HW.
Entrada / Salida
11
ENTRADA / SALIDA
3.1. Polling
12
Métodos de Entrada / Salida
Polling
Lectura de Teclado y Eco por Pantalla
repeat
Esperar a que se pulse una tecla;
Leer la tecla (carácter) pulsada;
Esperar a que la pantalla esté lista;
Enviar carácter a la pantalla;
until false;
Entrada / Salida
13
Polling
Métodos de Entrada / Salida
Lectura de Teclado y Eco por Pantalla
Entrada / Salida
inic_ES
........
........
rts
env_car
btst.b
beq
move.b
rts
#2,SRA
env_car
D5,TBA
rec_car
btst.b
beq
move.b
rts
#0,SRA
rec_car
RBA,D5
Inicio
Bucle
bsr
bsr
bsr
bra
inic_ES
rec_car
env_car
bucle
14
Métodos de Entrada / Salida
Polling
El dispositivo no puede
actuar cuando lo necesita
sino sólo cuando le
atienden.
Inconvenientes de la
E/S por polling
Se realiza espera activa.
Entrada / Salida
15
ENTRADA / SALIDA
3.2. Interrupciones
16
Interrupciones
Métodos de Entrada / Salida
Flujo Normal
de Ejecución
R T I
2
1
DD1
Int
.
MOV
CMP
.
. .
R1,R2
0,R3
. .
3
4
Entrada / Salida
IN R5
MOV R6,R5
MOV R7,0
OUT FFF4
. . .
RTE
17
Métodos de Entrada / Salida
Interrupciones
DD
CPU
Memoria
Controlador
de Disco
La CPU programa
el dispositivo
Entrada / Salida
18
Métodos de Entrada / Salida
Interrupciones
DD
CPU
Memoria
Controlador
de Disco
La CPU continúa
ejecutando
Entrada / Salida
19
Métodos de Entrada / Salida
Interrupciones
DD
CPU
Memoria
Controlador
de Disco
El dispositivo envía
una interrupción
Entrada / Salida
20
Métodos de Entrada / Salida
Interrupciones
DD
CPU
Memoria
Controlador
de Disco
La CPU acepta la
interrupción
Entrada / Salida
21
Métodos de Entrada / Salida
Interrupciones
DD
CPU
Memoria
Controlador
de Disco
El dispositivo envía el número
de vector de interrupción
Entrada / Salida
22
Métodos de Entrada / Salida
Interrupciones
Tabla de
vectores
CPU
DD
Memoria
Controlador
de Disco
Se utiliza el número de vector para acceder
a la tabla de vectores de interrupción
Entrada / Salida
23
Interrupciones
Métodos de Entrada / Salida
Rut
DD
CPU
Memoria
Rut
::::
rte
Controlador
de Disco
Se da control a la rutina de
tratamiento de la interrupción
Entrada / Salida
24
Métodos de Entrada / Salida
Interrupciones
DD
CPU
Memoria
Controlador
de Disco
Se devuelve el control
al programa que estaba
ejecutando la CPU
Entrada / Salida
25
Interrupciones
Métodos de Entrada / Salida
Tipos
- Externas
(asíncronas)
de
Interrupciones
- Internas
(Excepciones, Traps)
(síncronas)
- Instr. ilegal
- Anomalías en - Bus error
instrucciones
- Div. por cero
- Overflow
- Interrupciones -Trap #7
Software
Entrada / Salida
26
Interrupciones
Métodos de Entrada / Salida
- Reset
No
Enmascarables - Error de Bus
- NMI
Interrupciones
De forma global
Enmascarables
- Enable/Disable
De forma selectiva
- Prioridades
Entrada / Salida
27
Interrupciones
Métodos de Entrada / Salida
Lectura de Teclado y Eco por Pantalla
Entrada
Interrupciones
inicio
tarea
move.b
move.b
move.b
move.b
move.b
move.l
andi.w
move.b
bra
rutint move.b
esp
btst.b
beq
move.b
rte
Entrada / Salida
Salida
Polling
#%00110011,MR1A
#%00000111,MR2A
#%10111011,CSRA
#%00000101,CRA
#$40,IVR
#rutint,$40*4
#%1111100011111111,SR
#%00000010,IMR
tarea
RBA,D0
#2,SRA
esp
D0,TBA
28
ENTRADA / SALIDA
3.3. DMA
29
DMA
Métodos de Entrada / Salida
Polling
Interrupciones
MOVE PUERTO_DATOS,R0
+
Actualizar puntero buffer E/S
+
Llevar la cuenta Nº bytes transferidos
+
Si INTS.  Salvar y restaurar SR y PC
¡ Problemas !
Velocidad Máxima
Limitada
Entrada / Salida
La CPU no puede
dedicarse a otra tarea
30
DMA
Métodos de Entrada / Salida
DD
CPU
DMA
Memoria
Controlador
de Disco
La CPU programa
al DMA
Entrada / Salida
31
DMA
Métodos de Entrada / Salida
DD
CPU
DMA
Memoria
Controlador
de Disco
La CPU continúa
ejecutando
Entrada / Salida
El DMA monitoriza
a la memoria y al
controlador
32
DMA
Métodos de Entrada / Salida
DD
CPU
DMA
Memoria
Controlador
de Disco
El DMA (o el controlador) avisa a la CPU
de que la transferencia ha finalizado
Entrada / Salida
33
Descargar

entrada / salida