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
1. Estructura General
ENTRADA / SALIDA
3
Estructura General
Entrada / Salida 4
CPU
Memoria
DD1 DD2
Estructura General
Entrada / Salida 5
CPU
Memoria
DD1 DD2
Controlador de vídeo
Controlador de
Teclado
Controlador de
Disquete
Controlador Impresora
Controlador de Discos
Estructura General
Entrada / Salida 6
CPU
Memoria
DD1 DD2
Controlador de vídeo
Controlador de
Teclado
Controlador de
Disquete
Controlador Impresora
Controlador de Discos
Driver de vídeo
Driver de teclado
: :
: :
2. Espacios de Direccionamiento
ENTRADA / SALIDA
7
Espacios de Direccionamiento
Entrada / Salida 8
Direccionamiento de la E/S
Espacios de direccionamiento separados
E/SExplícita
E/SMapeada
Espacio de direccionamien
to único
Espacios de Direccionamiento
Entrada / Salida 9
E/S Explícita
Intel: Instrucciones explícitas de E/SIN (AX, FFF4);OUT (AX, FFF6);
PowerPC: Registro de control para conmutar de espacio de direccionamiento
E/S Mapeada
68000: Instrucciones normalesMOVE.B $EFFA07,D0MOVE.B D0,$EFFA07
3. Métodos de Entrada / Salida
ENTRADA / SALIDA
10
Métodos de Entrada / Salida
Entrada / Salida 11
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: Por Polling
Por Interrupciones
Por DMA
SW.
HW.
Baja
Alta
Polling Interrupciones DMA
SincronizaciónSW-CPU HW. HW.
Transferencia SW-CPU SW-CPU HW.
3.1. Polling
ENTRADA / SALIDA
12
Entrada / Salida 13
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;
Lectura de Teclado y Eco por Pantalla
Métodos de Entrada / Salida Polling
Entrada / Salida 14
Lectura de Teclado y Eco por Pantallainic_ES ........
........rts
env_car btst.b #2,SRAbeq env_carmove.b D5,TBArts
rec_car btst.b #0,SRAbeq rec_carmove.b RBA,D5rts
Inicio bsr inic_ESBucle bsr rec_car
bsr env_carbra bucle
Métodos de Entrada / Salida Polling
Entrada / Salida 15
Inconvenientes de la E/S por polling
El dispositivo no puede actuar cuando lo necesita sino sólo cuando le atienden.
Se realiza espera activa.
Métodos de Entrada / Salida Polling
3.2. Interrupciones
ENTRADA / SALIDA
16
Entrada / Salida 17
Métodos de Entrada / Salida Interrupciones
. . .MOV R1,R2CMP 0,R3 . . .
Flujo Normal
de Ejecución
R T I
Int
IN R5MOV R6,R5MOV R7,0OUT FFF4 . . .RTE
DD1
1
2
3
4
Entrada / Salida 18
Métodos de Entrada / Salida
CPU Memoria
DD
Controlador de Disco
La CPU programa el dispositivo
Interrupciones
Entrada / Salida 19
Métodos de Entrada / Salida
CPU Memoria
DD
Controlador de Disco
La CPU continúa
ejecutando
Interrupciones
Entrada / Salida 20
Métodos de Entrada / Salida
CPU Memoria
DD
Controlador de Disco
El dispositivo envía una
interrupción
Interrupciones
Entrada / Salida 21
Métodos de Entrada / Salida
CPU Memoria
DD
Controlador de Disco
La CPU acepta la interrupción
Interrupciones
Entrada / Salida 22
Métodos de Entrada / Salida
CPU Memoria
DD
Controlador de Disco
El dispositivo envía el número de vector de
interrupción
Interrupciones
Entrada / Salida 23
Métodos de Entrada / Salida
CPU Memoria
DD
Controlador de Disco
Interrupciones
Se utiliza el número de vector para acceder a la tabla de vectores de
interrupción
Tabla de vectores
Entrada / Salida 24
Métodos de Entrada / Salida
CPU Memoria
DD
Controlador de Disco
Interrupciones
Se da control a la rutina de tratamiento de la interrupción
Rut :::: rte
Rut
Entrada / Salida 25
Métodos de Entrada / Salida
CPU Memoria
DD
Controlador de Disco
Se devuelve el control al programa que
estaba ejecutando la CPU
Interrupciones
Entrada / Salida 26
Métodos de Entrada / Salida Interrupciones
Tipos
de
Interrupciones
(Excepciones, Traps)
- Anomalías en instrucciones
- Interrupciones Software
- Externas(asíncronas)
- Internas(síncronas)
- Instr. ilegal
- Bus error
- Div. por cero
- Overflow
-Trap #7
Entrada / Salida 27
Métodos de Entrada / Salida Interrupciones
Interrupciones
No Enmascarables
- Reset
- Error de Bus
- NMI
Enmascarables
De forma global
- Enable/Disable
De forma selectiva
- Prioridades
Entrada / Salida 28
Métodos de Entrada / Salida Interrupciones
inicio move.b #%00110011,MR1Amove.b #%00000111,MR2Amove.b #%10111011,CSRAmove.b #%00000101,CRAmove.b #$40,IVRmove.l #rutint,$40*4andi.w #%1111100011111111,SRmove.b #%00000010,IMR
tarea bra tarea
rutint move.b RBA,D0esp btst.b #2,SRA
beq espmove.b D0,TBArte
Lectura de Teclado y Eco por Pantalla
Entrada Interrupciones Salida Polling
3.3. DMA
ENTRADA / SALIDA
29
Entrada / Salida 30
Métodos de Entrada / Salida DMA
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
La CPU no puede dedicarse a otra tarea
Entrada / Salida 31
Métodos de Entrada / Salida DMA
CPU DMA Memoria
DD
Controlador de Disco
La CPU programa al
DMA
Entrada / Salida 32
Métodos de Entrada / Salida DMA
CPU DMA Memoria
DD
Controlador de Disco
La CPU continúa
ejecutando
El DMA monitoriza a la memoria y al
controlador
Entrada / Salida 33
Métodos de Entrada / Salida DMA
CPU DMA Memoria
DD
Controlador de Disco
El DMA (o el controlador) avisa a la CPU de que la transferencia ha
finalizado
Top Related