ENTRADA / SALIDA 1
Espacios de Direccionamiento Métodos de Entrada / Salida 3.1. Polling Estructura General Espacios de Direccionamiento Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones 3.3. DMA 2 2
ENTRADA / SALIDA Estructura General 3 3
Estructura General CPU Memoria DD1 DD2 Entrada / Salida 4
Estructura General Entrada / Salida CPU Memoria Controlador de vídeo Controlador de Teclado Controlador de Disquete Controlador Impresora Controlador de Discos DD1 DD2 Entrada / Salida 5
Estructura General Entrada / Salida CPU Memoria Controlador de vídeo Driver de teclado Driver de vídeo Controlador de vídeo Controlador de Teclado Controlador de Disquete Controlador Impresora : : Controlador de Discos DD1 DD2 Entrada / Salida 6
Espacios de Direccionamiento ENTRADA / SALIDA Espacios de Direccionamiento 7 7
Direccionamiento de la E/S 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
Métodos de Entrada / Salida 10 10
La comunicación entre CPU y dispositivo se realiza en dos fases 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. HW. Baja Por Polling Por Interrupciones Por DMA Eficiencia 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 12
Lectura de Teclado y Eco por Pantalla 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
Lectura de Teclado y Eco por Pantalla Métodos de Entrada / Salida Polling Lectura de Teclado y Eco por Pantalla inic_ES ........ ........ rts env_car btst.b #2,SRA beq env_car move.b D5,TBA rec_car btst.b #0,SRA beq rec_car move.b RBA,D5 Inicio bsr inic_ES Bucle bsr rec_car bsr env_car bra bucle Entrada / Salida 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 16
Flujo Normal de Ejecución Métodos de Entrada / Salida Interrupciones Flujo Normal de Ejecución R T I 2 IN R5 MOV R6,R5 MOV R7,0 OUT FFF4 . . . RTE . . . MOV R1,R2 CMP 0,R3 1 3 DD1 Int 4 Entrada / Salida 17
La CPU programa el dispositivo Métodos de Entrada / Salida Interrupciones CPU Memoria DD Controlador de Disco La CPU programa el dispositivo Entrada / Salida 18
La CPU continúa ejecutando Métodos de Entrada / Salida Interrupciones CPU Memoria DD Controlador de Disco La CPU continúa ejecutando Entrada / Salida 19
El dispositivo envía una interrupción Métodos de Entrada / Salida Interrupciones CPU Memoria DD Controlador de Disco El dispositivo envía una interrupción Entrada / Salida 20
La CPU acepta la interrupción Métodos de Entrada / Salida Interrupciones CPU Memoria DD Controlador de Disco La CPU acepta la interrupción Entrada / Salida 21
El dispositivo envía el número de vector de interrupción Métodos de Entrada / Salida Interrupciones CPU Memoria DD Controlador de Disco El dispositivo envía el número de vector de interrupción Entrada / Salida 22
CPU Memoria Interrupciones Métodos de Entrada / Salida Se utiliza el número de vector para acceder a la tabla de vectores de interrupción Tabla de vectores DD Controlador de Disco Entrada / Salida 23
Se da control a la rutina de tratamiento de la interrupción Métodos de Entrada / Salida Interrupciones CPU Memoria Rut DD Se da control a la rutina de tratamiento de la interrupción Rut :::: rte Controlador de Disco Entrada / Salida 24
Se devuelve el control al programa que estaba ejecutando la CPU Métodos de Entrada / Salida Interrupciones CPU Memoria DD Controlador de Disco Se devuelve el control al programa que estaba ejecutando la CPU Entrada / Salida 25
Tipos de Interrupciones Interrupciones Métodos de Entrada / Salida - Externas (asíncronas) Tipos de Interrupciones (Excepciones, Traps) - Instr. ilegal - Bus error - Div. por cero - Overflow - Anomalías en instrucciones - Internas (síncronas) - Interrupciones Software -Trap #7 Entrada / Salida 26
Interrupciones Interrupciones Métodos de Entrada / Salida - Reset - Error de Bus - NMI No Enmascarables Interrupciones De forma global Enable/Disable De forma selectiva Prioridades Enmascarables Entrada / Salida 27
Métodos de Entrada / Salida Interrupciones Lectura de Teclado y Eco por Pantalla Entrada Interrupciones Salida Polling inicio move.b #%00110011,MR1A move.b #%00000111,MR2A move.b #%10111011,CSRA move.b #%00000101,CRA move.b #$40,IVR move.l #rutint,$40*4 andi.w #%1111100011111111,SR move.b #%00000010,IMR tarea bra tarea rutint move.b RBA,D0 esp btst.b #2,SRA beq esp move.b D0,TBA rte Entrada / Salida 28
ENTRADA / SALIDA 3.3. DMA 29 29
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 30
CPU DMA Memoria DMA Métodos de Entrada / Salida La CPU programa al DMA DD Controlador de Disco La CPU programa al DMA Entrada / Salida 31
CPU DMA Memoria DMA Métodos de Entrada / Salida DD Controlador de Disco La CPU continúa ejecutando El DMA monitoriza a la memoria y al controlador Entrada / Salida 32
CPU DMA Memoria DMA Métodos de Entrada / Salida DD Controlador de Disco El DMA (o el controlador) avisa a la CPU de que la transferencia ha finalizado Entrada / Salida 33