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 Entrada / Salida Int . MOV CMP . . . R1,R2 0,R3 . . 3 4 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