Beruflich Dokumente
Kultur Dokumente
NDICE
1. 2. 3. 4.
Introduccin. Mdulos de Entrada/Salida: comunicacin CPU - Perifricos. Mapa de Entrada/Salida: comn y separada. Introduccin a los mtodos de programacin de E/S. E/S programada. E/S por interrupciones. Acceso directo a memoria. Canales y procesadores de E/S. Ejemplo de dispositivo de E/S: puerto paralelo (interfaz centronics).
5. 6.
Introduccin (I)
Un computador no puede estar formado slo por la CPU y la memoria. Para darle alguna utilidad debe comunicarse con el mundo exterior (perifricos) a travs del subsistema de entrada/salida.
CPU
Interconexiones
Memoria
E/S
Perifricos
1. Introduccin
Introduccin (II)
La misin principal del subsistema de E/S es adaptar los dispositivos externos antes de conectarlos al bus del sistema.
La velocidad de transmisin de datos de los perifricos es siempre menor que la de la memoria y la CPU. Es necesario amortiguar esa diferencia de velocidades. Debido a la gran diversidad de perifricos no es posible incorporar toda la lgica necesaria en el computador para manejar cada uno de stos. Los tamaos y formatos de datos de los perifricos son diferentes a los del resto del computador.
3
1. Introduccin
Construir a medida el subsistema utilizando elementos bsicos. (Ejemplo: circuito para que al escribir un 1 en una direccin de memoria se ilumine un LED). o bien incorporar y programar dispositivos estndares ms complejos y genricos (Ej. 8255).
2.
(2)
(1)
1. Introduccin
Direccionamiento: Seleccin del dispositivo correspondiente de entre todos los dispositivos presentes en el sistema. Sincronizacin: Permitir que la CPU y la memoria (alta
velocidad transferencia de datos) se puedan comunicar con los dispositivos de E/S (baja velocidad) sincronizando los envos de datos entre ambos. (Inicio de la transferencia).
1. Introduccin
Elemento que permite la transferencia de informacin entre la CPU y el mundo exterior. Interfaz que traduce la informacin asncrona y analgica del mundo exterior a la informacin sncrona y codificada del computador. Dos partes: mdulo de E/S (controlador) y dispositivo externo.
2. Perifrico
Dispositivo
Comunicacin exterior
2. Perifrico
CPU
Memoria
Mdulo E/S
Mdulo E/S
Mdulo E/S
2. Perifrico
Mdulo de E/S
Funciones
Elemento que permite la conexin de un dispositivo externo al bus del sistema.
1.
Control y Temporizacin:
Coordina el trfico entre dispositivos internos (memoria, CPU) y externos (impresora, monitor, ).
2.
3. 4. 5.
Comunicacin con el/los dispositivo/s (rdenes, estado, datos). Almacenamiento temporal de datos. Deteccin de errores.
Control Estado
Datos
Dispositivo Externo
SEALES DE CONTROL (mandatos/comandos enviados por la CPU), ESTADO (informacin sobre el funcionamiento del dispositivo) y DATOS.
CONTROL ESTADO DATOS
TRANSDUCTOR
DATOS
Funciona a modo de interfaz, transformando la informacin asincrona y analgica del mundo exterior a la informacin sincrona y codificada del computador (transductor) Internamente suele haber una serie de buffers que son capaces de almacenar temporalmente datos o informacin adicional de contexto.
12
13
14
15
16
MAPA DE E/S:
E/S comn y separada
Segn el modo de seleccionar el perifrico y el acceso a sus registros de control, datos y estado:
El acceso a estos mdulos se realiza de igual modo a como se accede a un dato de memoria principal. Los perifricos se integran en el computador como si fueran parte de la memoria Comunicarse con un mdulo de E/S es leer y escribir en memoria. Ej: 68000. VENTAJA: Se aprovecha la potencia del juego de instrucciones. INCONVENIENTE: Se desperdicia parte del espacio de direcciones.
Bus del sistema
CPU
Memoria
Unidad de E/S 1
...
Unidad de E/S n
3. Mapa de E/S
17
MAPA DE E/S:
E/S comn y separada
El acceso a la E/S est contemplado en la arquitectura. Existen dos mapas de memoria separados: uno para memoria y otro para E/S Existen seales e instrucciones especficas. Ej: intel 80x86.
Bus del sistema
MEM/IO Unidad de E/S 1 Unidad de E/S n
CPU
Memoria
...
Bus de memoria
CPU Memoria
Bus de E/S
Unidad de E/S 1
...
Unidad de E/S n
3. Mapa de E/S
18
3. Mapa de E/S
19
3. Mapa de E/S
20
10
E/S Programada (Encuesta o pooling). E/S por interrupciones. Acceso directo a memoria (DMA).
21
La CPU tiene el control absoluto de la operacin de E/S. Ventaja: Hardware mnimo. Inconvenientes:
Malgasta tiempo de proceso (interroga continuamente al perifrico). Dificultad para atender varios perifricos.
Inicio ... Inicializar Periferico() Mientras existan datos que transferir hacer Recoger estado del perifrico() Si el estado del periferico es PREPARADO entonces Transferir informacion() Fin Si Fin Mientras ... Fin
22
11
La E/S le indica a la CPU cuando est preparada para transferir datos (genera una interrupcin a la CPU), activando una lnea especial conectada a la CPU (lnea de interrupcin).
Lnea de interrupcin
CPU
Mod E/S
Mem
23
Funcionamiento
1.
El procesador ejecuta instrucciones de un programa. Al finalizar cada instruccin comprueba si se ha producido una interrupcin. En caso afirmativo se salva el estado actual del programa (contador del programa y registros) y se salta a ejecutar la rutina de servicio correspondiente.
2.
Programa ... Inic. perifrico ... Instr i ... Instr j ... Instr k ...
Rutina de Servicio
3.
La rutina de servicio efecta las operaciones apropiadas en la E/S para realizar la transferencia de datos solicitada. Al finalizar la rutina de servicio se recupera el estado de la CPU y se contina ejecutando el programa que se estaba ejecutando antes de la interrupcin.
4.
24
12
Clasificacin de Interrupciones
Interrupciones HARDWARE
INTERNAS (producidas por la CPU) EXTERNAS (producidas por los dispositivos de E/S)
Vectorizadas No vectorizadas
Segn MODO DE CONOCER el VECTOR DE INTERRUPCIN (la direccin donde se encuentra la rutina de servicio de la interrupcin):
Interrupciones AUTOVECTORIZADAS: el vector de interrupcin es FIJO. Interrupciones VECTORIZADAS: el vector de interrupcin lo suministra el propio perifrico
25
Interrupciones Vectorizadas
Con el vector de interrupcin se indexa una tabla de vectores en memoria principal para obtener la direccin de la rutina de servicio a la que hay que saltar.
26
13
Generalmente existen VARIOS PERIFRICOS conectados (y no uno slo) que pueden realizar interrupciones. Es necesario: Decidir cmo se conectan los perifricos a la CPU.
27
Todos los perifricos interrumpen por la misma lnea. El vector de interrupcin es fijo y comn a todos los perifricos. Mediante polling (Consulta software del Registro de Estado) la CPU identifica el perifrico y desactiva la interrupcin. La prioridad viene determinada por el orden de la encuesta.
28
14
Cada perifrico tiene su lnea de interrupcin. Cada lnea tiene su propio vector de interrupcin asociado. La CPU determina la prioridad.
CPU
PERIFERICO 0
PERIFERICO 1
...
PERIFERICO n
29
Una nica lnea INT para todos los perifricos. El vector de interrupciones es fijo. La CPU enva la seal INTA, como reconocimiento de la interrupcin. Si el perifrico que recibe la seal INTA, no gener la interrupcin, entonces la transmite al siguiente elemento de la cadena. La seal INTA se propaga de un perifrico a otro y el perifrico de mayor prioridad desactiva la peticin de interrupcin INT. La prioridad viene determinada por la posicin del perifrico en la cadena.
30
15
Controlador de interrupciones
(PIC, programmable interrupt controller)
varios
perifricos
una
misma
lnea
de
Enmascarar interrupciones por software Definir vectores de interrupciones asociados a cada interrupcin Gestionar prioridades.
Ej: el i8259
31
32
16
E/S programada
La CPU entra en un bucle y enva un nuevo byte cada vez que la impresora est preparada. La impresora tarda 10s en imprimir 10 Kbytes. La CPU est ocupada 10 s con la operacin de E/S (la CPU podra haber ejecutado 1000 millones de
instrucciones).
CPU
200MhZ CPI = 2
MEMORIA
10 KBytes
Modulo E/S
Tc = 1/FREC = 1/200x106seg = 1/200x106x 10-9 ns = 5ns Tiempo promedio de ejecucin de una instruccin = 2 x 5ns = 10ns
La impresora genera una interrupcin cada vez que est preparada. Si la Rutina de Interrupcin tiene 10 instrucciones
(salvar contexto, comprobar estado, transferir byte, restaurar contexto, rti), para transferir 10 Kbytes se ejecuta 10.000 x 10 instrucciones. La CPU est ocupada 0,001 s con la operacin de E/S.
33
E/S programada
La CPU entra en un bucle y enva un nuevo byte cada vez que el disco est preparado. El disco tarda 1s en recibir 10 Mbytes. La CPU est ocupada 1 s con la operacin de E/S (la CPU podra haber ejecutado 100 millones de instrucciones).
CPU
200MhZ CPI = 2
MEMORIA
10 MBytes
Modulo E/S
Tc = 1/FREC = 1/200x106seg = 1/200x106x 10-9 ns = 5ns Tiempo promedio de ejecucin de una instruccin = 2 x 5ns = 10ns
El disco genera una interrupcin cada vez que est preparado. Si la Rutina de Interrupcin tiene 10 instrucciones
(salvar contexto, comprobar estado, transferir byte, restaurar contexto, rti), para transferir 10Mbytes se ejecuta 10.000000 x 10 instrucciones. La CPU est ocupada 1 s con la operacin de E/S.
10 Mbytes/s
10 MBytes
34
17
La E/S programada y la E/S por interrupcin tienen un impacto negativo sobre la actividad del procesador y la velocidad de E/S:
E/S programada: La CPU transfiere datos a alta velocidad al precio de no hacer nada. E/S por interrupciones: Libera en parte al procesador a expensas de reducir la velocidad de E/S (sobrecarga por el cambio de contexto).
Es un dispositivo capaz de controlar una transferencia de datos entre un perifrico y memoria sin intervencin de la CPU.
peticin concecin
B. DIR
MEMORIA
CPU
B. DATOS
35
36
18
2. 3.
4.
Finaliza la transferencia:
DMAC libera el bus y devuelve el control a la CPU (generalmente con una interrupcin)
37
Rutina de Servicio ... Se comprueba el estado ... del DMA por si ha habido ... algn error. ...
38
19
Robo de ciclos (ms usual): EL DMA toma control del bus y lo retiene durante un solo ciclo. (Transmite una palabra y libera el
bus).
Transparente: El DMA accede al bus solo en los ciclos en los que la CPU no lo utiliza. (En diferentes fases
de ejecucin de las instrucciones).
39
Solucin mas econmica. El DMA cada vez que quiere tomar el control del bus del sistema para realizar la transferencia de un dato, lo solicita a la CPU mediante la seal HOLD. La CPU concede el control del bus mediante la seal HLDA. Despus de realizar la transferencia el controlador de DMA lo comunica a la CPU mediante las seales de control correspondientes.
40
20
Bus nico, DMA independiente: Acta como una CPU de E/S. Necesita un ciclo para acceder al mdulo de E/S o perifrico y otro para acceder a memoria.
2.
Bus nico, DMA y E/S integradas: alternativa para reducir un ciclo de bus en la transferencias.
3.
Bus de E/S: es una variacin de la anterior que permite hacer la arquitectura ms escalable.
41
Ejemplo de DMA: i8237. Posee 4 canales (procesadores de DMA) programables con tres modos diferentes y adems se puede poner en cascada con otros i8237.
Esquema de conexin:
42
21
43
Evolucin de la E/S
La CPU controla directamente los perifricos. Se agrega un mdulo de E/S o controlador. Aparece la gestin de E/S por interrupcin. El mdulo de E/S provee el acceso directo a memoria (DMA). El mdulo de E/S tiene su propio procesador con su pequeo conjunto de instrucciones (canal de E/S). El mdulo adems tiene su memoria local o sea se convierte en una computadora en s mismo (procesador de E/S).
44
22
Los canales representan una extensin al concepto DMA. Tienen la habilidad de ejecutar instrucciones de E/S. Completo control de la transferencia de datos, por lo tanto, la CPU no ejecuta instrucciones de E/S. Instrucciones almacenadas en memoria principal que sern ejecutadas por un procesador especial en el canal. La CPU inicia la transferencia de E/S instruyendo al canal para ejecutar el programa que est en memoria. Este programa especifica dispositivos reas de memoria a usar, prioridades y acciones ante errores. El canal siguiendo las instrucciones controla la transferencia de datos.
45
Bus de Memoria
CPU
Bus de E/S
Procesador E/S
Impr. 1
Term. 1
Term. 2
Term. 3
46
23
Funcionamiento
Para realizar una transferencia de E/S, la CPU primero ha de indicar qu canal de E/S ejecuta un determinado programa. La CPU tambin debe definir el rea de almacenamiento temporal, establecer una prioridad y establecer las correspondientes acciones en caso de error. El programa a ejecutar est cargado en memoria principal y puede contener instrucciones propias slo procesables por el canal de E/S. Despus de terminar la operacin de E/S, el canal de E/S deja el resultado en un rea de memoria y a continuacin genera una interrupcin para indicar que ha acabado.
47
48
24
Es un controlador de E/S que est pensado, en principio, para ser usado solamente por impresoras. Para ello habra que utilizar un cable adaptado al bus de puerto paralelo diferente al Centronics, que es el que se utiliza habitualmente. Un PC tiene dos puertos paralelos llamados LPT1 y LPT2 a partir de las direcciones o puertos de E/S 378 (LPT1) y 278 (LPT2). NOTA: no confundir puerto de E/S (direccin) con puerto hardware (puerto serie, puerto paralelo, ...) !!
49
Registro de datos: es de slo escritura. Direcciones 378 (LPT1) y 278 (LPT2). Compuesto por un byte. Registro de estado: es de slo lectura. Direcciones 379 (LPT1) y 279 (LPT2). Compuesto por un byte.
Registro de control: es de lectura/escritura. Direcciones 37A (LPT1) y 27A (LPT2). Compuesto por un byte.
50
25