El documento resume los principales temas relacionados con la entrada y salida (E/S) en sistemas de computación. Explica los diferentes métodos de E/S como la E/S programada, mediante interrupciones y acceso directo a memoria. También describe los componentes clave del subsistema de E/S como los dispositivos externos, módulos de E/S y canales de procesamiento de E/S.
2. Organizaci ón y Arquitectura de Computadores CAP ÍTULO IV “ ENTRADA/SALIDA” Capítulo IV Arquitectura de Computadores
3.
4.
5.
6. Arquitectura Capítulo IV Arquitectura de Computadores • Un computador no puede estar formado sólo por la CPU y la memoria. • Para darle alguna utilidad debe de comunicarse con el mundo exterior a través del subsistema de entrada/salida (I/O input/output).
45. Resumen T écnicas de E/S Capítulo IV Arquitectura de Computadores E/S programada E/S Interrupciones DMA
46. 6. Canales y procesadores de E/S Capítulo IV Arquitectura de Computadores
47.
48.
49.
50.
51.
52.
53. 7. La interfaz externa Capítulo IV Arquitectura de Computadores
54.
55.
56.
57.
58.
59.
60.
Hinweis der Redaktion
¿Por qué no se conectan directamente al bus del sistema? 1. La velocidad de transmisión de datos de los periféricos es siempre menor que la de la memoria y la CPU. 2. Debido a la gran diversidad de periféricos no es posible incorporar toda la lógica necesaria en el computador para manejar cada uno de éstos. 3. Los formatos de datos de los periféricos son diferentes a los del resto del computador.
PERIFÉRICO: – Elemento que permiten la transferencia de información entre la CPU y el mundo exterior. – Interfaz que traduce la información asíncrona y analógica del mundo exterior a la información síncrona y codificada del computador. – Dos partes: módulo de E/S y dispositivo (externo).
El enlace se utiliza para intercambiar señales de: control, estado y datos. Un dispositivo externo conectado a un módulo de E/S se denomina dispositivo periférico. Las señales de control determinan la función que debe realizar el dispositivo: entrada, lectura, salida, escritura Las señales de estado indican el estado del dispositivo: listo, no listo. Operación en respuesta a operaciones Internamente suele haber una serie de buffers que son capaces de almacenar temporalmente datos o información adicional de contexto. Un componente importante suele ser el transductor que transforma la información analógica en digital.
Estructua interna
– Coordina el correcto flujo de información entre uno o varios dispositivos externos (impresora, monitor, ...) e internos (memoria, procesador). – FUNCIONES: 1. Reconocer la dirección de la CPU que identifica al dispositivo externo. 2. Transferencia de datos entre la CPU y el dispositivo externo. 3. Recepción de mandatos (comandos) desde la CPU. 4. Mantener información del estado del periférico y mantener el protocolo de comunicaciones con el periférico. – Un módulo de E/S puede controlar varios dispositivos externos. FUNCIONES DE UN MODULO Control y temporización.- para coordinar el tráfico entres recursos internos y los dispositivos externos. Comunicación con el procesador.- Implica decodificación de órdenes, datos, información de estado, reconocimiento de dirección Comunicación con los dispositivos.- intercambio de órdenes, información del estado y datos Almacenamiento temporal de datos.- Los datos se almacenan temporalmente en el módulo de E/S y después se envían al periférico a la velocidad de este. Detección de errores.- El módulo de E/S se encarga de informar errores al procesador. OBTENER EJEMPLOS..
El la E/S programada los datos se intercambian entre el procesador y el módulo de E/S El polling, utilizado en las primeras computadoras personales (como Apple II), consiste en que la CPU sondea peri´odicamente al dispositivo para ver cu´al es su estado. Ese sondeo se puede hacer, por ejemplo, leyendo de una direcci´on de entrada/salida correspondiente a uno 4 o varios registros de estado del dispositivo. Los bits de esos registros de estado nos dir´an cu´al es la situaci´on concreta del dispositivo (por ejemplo, si se trata de una impresora, podemos saber si est á lista para recibir nuevos caracteres; si se trata de un teclado, podemos saber si el usuario ha presionado una tecla y el car´acter a´un no se ha le´ıdo, etc). Otras veces no hay tal registro de estado, y simplemente se lee lo que haya en la direcci´on I/O desde programa, decidiendo luego qu´e hacer con el dato le´ıdo. Este es el caso, por ejemplo, de un joystick anal´ogico conectado al puerto de juegos del PC. Esta forma de entrada/salida es sencilla, pero claramente ineficiente. Por ejemplo, si un usuario tarda 10 segundos en mover el rat´on, se habr´an realizado miles de encuestas al dispositivo sin detectar un nuevo evento, con la consecuente p´erdida de tiempo para realizar otras tareas en la CPU. Por otra parte, el ritmo de transferencia de datos est´a limitado por la velocidad de la CPU, ya que no podremos encuestar al dispositivo con una frecuencia arbitrariamente alta. Por tanto, esta forma de entrada/salida debe evitarse en lo posible. Sin embargo, en algunas ocasiones no quedar´a otra opci´on, ya que el dispositivo en cuesti´on no genera interrupciones (como es el caso del joystick que veremos en este proyecto).
Asignado en memoria.- existe un único espacio de direcciones para las posiciones de memoria y los dispositivos de E/S E/S aislada.- El espacio de direcciones de E/S está aislado del de memoria DIFERENCIA ENTRE AISLADO Y ASIGNADO EN MEMORIA – E/S común o asignada/mapeada en memoria: en la que el procesador no contempla el acceso a módulos de E/S. El acceso a los periféricos se hace como si se accediese a un dato almacenado en la memoria principal. A los periféricos se le asigna posiciones de memoria como si fueran variables. Ej: el procesador Motorola 68000 E/S Localizada en memoria La E/S y la memoria comparten el mismo espacio de direcciones. No se requieren instrucciones específicas de E/S No existen líneas especiales en el bus para distinguir operaciones con memoria de operaciones de E/S. Los datos que se transfieren entre la CPU y el periférico deben tener la misma longitud que los que se transfieren entre memoria y la CPU. Ejemplo: MC68000 – E/S aislada o 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. Esto implica que existen instrucciones específicas de E/S (inport/outport) y también señales específicas. Ej: la familia i80x86 E/S Aislada El espacio de direcciones que utiliza la memoria y el que utiliza la E/S son independientes. Los datos que se transfieren entre la CPU y el periférico pueden tener distinta longitud que los datos que se transfieren entre memoria y CPU. La CPU dispone de líneas de control específicas para indicar si se trata de una operación con memoria o una operación de E/S. Existen instrucciones específicas de E/S. Ejemplo: Computadores de la familia Intel x86 • Mapear la E/S en memoria tiene como ventajas: – no utilizar instrucciones de prop 耀 ito espec 断 ico y aprovechar toda la potencia del juegos de instrucciones, permitiendo una mejor programaci 溶 – el acceso a memoria es mucho m � eficiente – el compilador tiene mas libertad para elegir el lugar y el modo de
Forma de realizar la E/S: polling-encuesta-consulta.programada Debido a la diferencia de velocidad entre procesador y perif 屍 icos es necesario proporcionar mecanismos para sincronizar las operaciones de E/S A la hora de clasificar los diferentes m 師 odos para llevar a cabo las operaciones de E/S hay que tener en cuenta los siguientes factores: – Inicio de la transferencia ( タ qui 始 comienza la transferencia?) – Transferencia ( タ qui 始 realiza la transferencia?)
• Esta t 残 nica tiene la ventaja de utilizar un hardware m 地 imo aunque malgasta tiempo de proceso ya que ha de interrogar continuamente al perif 屍 ico ( espera activa , en sistemas multiproceso)
En el caso de la entrada/salida por interrupciones, es el dispositivo quien establece el momento en que se realiza la transferencia de los datos, avisando a la CPU de que ha ocurrido un evento (por ejemplo, que el usuario haya presionado una tecla). En este punto, debemos aclarar que en la familia 80x86 existen tres tipos de interrupciones, que a veces producen confusi´on por la nomenclatura empleada en diversos textos: • Para evitar la degradaci 溶 en las prestaciones del sistema que supone la espera activa, en este caso es el dispositivo el que solicita la operaci 溶 de E/S cuando se encuentra preparado para realizarla ( interrupci 溶 )
1. Las traps o interrupciones software son interrupciones invocadas por el usuario desde programa. En este caso, la CPU pasa a ejecutar el manejador de trap asociado (su rutina de atenci´on a la interrupci´on o ISR2). 2. Las excepciones son traps generadas autom´aticamente en respuesta a alguna condici´on excepcional producida al intentar ejecutar una instrucci´on: divisi´on por cero, c´odigo de operaci´on ilegal. . .Tambi´en en este caso se ejecuta la ISR asociada, decidiendo, en su caso, qu´e hacer con la situaci´on an´omala. 3. Las interrupciones hardware, a las que llamaremos simplemente “interrupciones”, se basan en un evento hardware externo a la CPU y no relacionado con la secuencia de instrucciones que se est´e ejecutando en ese momento. Son las que un ingeniero electr´onico m´as intuitivamente relacionar´ıa con el t´ermino “interrupci´on”, y con las que vamos a tratar en este proyecto.
Programada y con interrupciones necesita la intervenci ón directa de la CPU la velocidad de transferencia es limitada la CPU permanece ocupada mucho tiempo Dma es la solución, en trasferir grandes volúmenes de datos
• El acceso directo a memoria requiere un m 妖 ulo adicional en el bus – Posici 溶 inicial de memoria de donde se lee o se escribe – El tipo transferencia: lectura o escritura – El tama 撲 de la transferencia (n 徇 ero de palabras a transferir) • El DMAC transfiere el bloque de datos completo, palabra a palabra, directamente desde, o hacia, la memoria, sin que tenga que pasar a trav 市 del procesador • Cuando la transferencia ha concluido el DMAC env 誕 una se 紡 l de interrupci 溶 al procesador (TC, Terminal Count ) • Periférico está preparado para recibir un dato de la memoria y solicita operación de DMA a DMAC – La CPU (mi programa) configuró previamente el periférico para recibir datos por DMA • DMAC pide el control del bus a la CPU (Bus request) • CPU deja de controlar el bus y avisa a DMAC • DMAC pone dirección del dato a leer de memoria – La CPU programó en el DMAC una dirección de inicio y un número de transferencias • Memoria pone dato en el bus • DMAC ordena a la interfaz del periférico leer del bus • Interfaz del periférico lee el dato del bus • DMAC avisa a la CPU para que recupere el control del bus • A así nuevamente: DMAC va robando ciclos de la CPU de control del bus de sistema hasta realizar toda la transferencia – Otros modos: bloque o ráfaga //////// //////////// //////////// El controlador de DMA • El acceso directo a memoria requiere un m 妖 ulo adicional en el bus del sistema: el Controlador de DMA (DMAC) • La 從 ica tarea de la CPU es programar el DMAC. Hay que enviarle al menos la siguiente informaci 溶 : – Direcci 溶 del perif 屍 ico de E/S – Posici 溶 inicial de memoria de donde se lee o se escribe – El tipo transferencia: lectura o escritura – El tama 撲 de la transferencia (n 徇 ero de palabras a transferir) • El DMAC transfiere el bloque de datos completo, palabra a palabra, directamente desde, o hacia, la memoria, sin que tenga que pasar a trav 市 del procesador • Cuando la transferencia ha concluido el DMAC env 誕 una se 紡 l de interrupci 溶 al procesador (TC, Terminal Count )
ROBO DE CICLO El módulo de DMA roba el bus durante un ciclo. Transfiere una palabra. No es una interrupción. El procesador no guarda el contexto. El procesador se detiene justo antes de acceder al bus. Ejemplo: Antes de un operando o una carga de datos. La CPU es más lenta pero no tanto como si relizara la transferencia. • Existen varias formas de realizar el acceso directo a memoria: – Memoria multipuerto : la memoria permite realizar transferencias simult � eas por parte de la CPU y el DMAC. La memoria tiene dos puertos: uno para la CPU y otro para el DMAC. Es posible el acceso concurrente a un mismo bloque de memoria por lo que hay que establecer mecanismos de control – Acceso a memoria por robo de ciclo : es una soluci 溶 m � econ 洋 ica y es la utilizada habitualmente. El DMAC cada vez que quiere tomar el control del bus del sistema para realizar una transferencia, lo solicita a la CPU activando una se 紡 l (HOLD). La CPU concede el control del bus (se activa la se 紡 l HLDA), el DMAC se hace due 撲 del bus y realiza la transferencia. Ejemplo 80x86 y 8237: • Transferencia en bloque o r � aga • Transferencia bajo demanda • Transferencia simple
O Como se conecta el DMA al sistema , la conexi ón del DMAC al sistema puede realizarse en varias formas
Actúa como una CPU de E/S. Necesita un ciclo para acceder al módulo de E/S o periférico y otro para acceder a memoria.
Alternativa para reducir un ciclo de bus en la transferencia
Variaci ón de la alternativa enterior q permite hacer la arquitectura más escalable
• La conexi 溶 del DMAC al sistema puede realizarse de varias formas diferentes: – Bus 從 ico, DMA independiente: El m 妖 ulo de DMA act 彗 como un procesador suplementario. Es econ 洋 ica pero ineficiente: la transferencia de cada palabra consume dos ciclos de bus – Bus 從 ico, DMA-E/S: El n 徇 ero de ciclos de bus necesarios puede reducirse sustancialmente si se integran las funciones de DMA y E/S (el camino entre el DMA y los m 妖 ulos de E/S no incluye al bus del sistema) – Bus de E/S: El concepto anterior puede llevarse algo m � lejos conectado los m 妖 ulos de E/S a un m 妖 ulo de DMA mediante un bus de E/S. Se reduce a uno el n 徇 ero de interfaces de E/S en el m 妖 ulo de DMA y es una configuraci 溶 f � ilmente ampliable