330 likes | 659 Views
ENTRADA / SALIDA. 1. ENTRADA / SALIDA. 2. Estructura General Espacios de Direccionamiento Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones 3.3. DMA. ENTRADA / SALIDA. 3. Estructura General. Estructura General. DD1. DD2. CPU. Memoria. 4. Entrada / Salida.
E N D
ENTRADA / SALIDA 2 • Estructura General • Espacios de Direccionamiento • Métodos de Entrada / Salida 3.1. Polling 3.2. Interrupciones 3.3. DMA
ENTRADA / SALIDA 3 • Estructura General
Estructura General DD1 DD2 CPU Memoria 4 Entrada / Salida
Estructura General DD1 DD2 CPU Memoria Controlador de vídeo Controlador de Teclado Controlador de Disquete Controlador Impresora Controlador de Discos 5 Entrada / Salida
Estructura General DD1 DD2 CPU Memoria Driver de teclado Driver de vídeo Controlador de vídeo Controlador de Teclado Controlador de Disquete Controlador Impresora : : : : Controlador de Discos 6 Entrada / Salida
ENTRADA / SALIDA 7 • Espacios de Direccionamiento
Espacios de Direccionamiento Direccionamiento de la E/S E/S Explícita E/S Mapeada Espacios de direccionamiento separados Espacio de direccionamiento único 8 Entrada / Salida
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 9 Entrada / Salida
ENTRADA / SALIDA 10 • Métodos de Entrada / Salida
Métodos de Entrada / Salida SW. HW. 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: Baja • Por Polling • Por Interrupciones • Por DMA Eficiencia Alta Polling Interrupciones DMA Sincronización SW-CPU HW. HW. Transferencia SW-CPU SW-CPU HW. 11 Entrada / Salida
ENTRADA / SALIDA 12 3.1. Polling
Polling Métodos de Entrada / Salida 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; 13 Entrada / Salida
Polling Métodos de Entrada / Salida Lectura de Teclado y Eco por Pantalla inic_ES ........ ........ rts env_car btst.b #2,SRA beq env_car move.b D5,TBA rts rec_car btst.b #0,SRA beq rec_car move.b RBA,D5 rts Inicio bsr inic_ES Bucle bsr rec_car bsr env_car bra bucle 14 Entrada / Salida
Polling Métodos de Entrada / Salida 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. 15 Entrada / Salida
ENTRADA / SALIDA 16 3.2. Interrupciones
Interrupciones Métodos de Entrada / Salida R T I DD1 Flujo Normalde Ejecución IN R5 MOV R6,R5 MOV R7,0 OUT FFF4 . . . RTE 2 . . . MOV R1,R2 CMP 0,R3 . . . 1 3 Int 4 17 Entrada / Salida
Interrupciones Métodos de Entrada / Salida DD CPU Memoria Controlador de Disco La CPU programa el dispositivo 18 Entrada / Salida
Interrupciones Métodos de Entrada / Salida DD CPU Memoria Controlador de Disco La CPU continúa ejecutando 19 Entrada / Salida
Interrupciones Métodos de Entrada / Salida DD CPU Memoria Controlador de Disco El dispositivo envía una interrupción 20 Entrada / Salida
Interrupciones Métodos de Entrada / Salida DD CPU Memoria Controlador de Disco La CPU acepta la interrupción 21 Entrada / Salida
Interrupciones Métodos de Entrada / Salida DD CPU Memoria Controlador de Disco El dispositivo envía el número de vector de interrupción 22 Entrada / Salida
Interrupciones Métodos de Entrada / Salida Tabla de vectores DD Se utiliza el número de vector para acceder a la tabla de vectores de interrupción CPU Memoria Controlador de Disco 23 Entrada / Salida
Interrupciones Métodos de Entrada / Salida DD Rut :::: rte Se da control a la rutina de tratamiento de la interrupción CPU Memoria Rut Controlador de Disco 24 Entrada / Salida
Interrupciones Métodos de Entrada / Salida DD CPU Memoria Controlador de Disco Se devuelve el control al programa que estaba ejecutando la CPU 25 Entrada / Salida
Interrupciones Métodos de Entrada / Salida - Externas (asíncronas) - Internas (síncronas) Tipos de Interrupciones (Excepciones, Traps) - Instr. ilegal - Bus error - Div. por cero - Overflow - Anomalías en instrucciones - Interrupciones Software -Trap #7 26 Entrada / Salida
Interrupciones Métodos de Entrada / Salida - Reset - Error de Bus - NMI No Enmascarables Interrupciones • De forma global • Enable/Disable • De forma selectiva • Prioridades Enmascarables 27 Entrada / Salida
Interrupciones Métodos de Entrada / Salida 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 28 Entrada / Salida
ENTRADA / SALIDA 29 3.3. DMA
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 La CPU no puede dedicarse a otra tarea 30 Entrada / Salida
DMA Métodos de Entrada / Salida DD CPU DMA Memoria Controlador de Disco La CPU programa al DMA 31 Entrada / Salida
DMA Métodos de Entrada / Salida DD CPU DMA Memoria Controlador de Disco La CPU continúa ejecutando El DMA monitoriza a la memoria y al controlador 32 Entrada / Salida
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 33 Entrada / Salida