ESTRUCTURA DE INTERCONEXIÓN DE UN COMPUTADOR 1 Arquitectura Von Neumann se fundamente en tres ideas: ◦ En la memoria del ordenador se almacenan indistintamente datos e instrucciones. ◦ Se puede acceder a la información de la memoria especificando su dirección. ◦ La ejecución de un programa se hace de forma secuencial pasando de una instrucción a la siguiente a no ser que se modifique dicha secuencia por medio de una ruptura. 2 Los componentes básicos de un ordenador son: La CPU tiene dos componentes básicos fundamentales: Unidad de control. ALU La unidad de entrada/salida (E/S) La memoria principal: principal El que el contenido de una dirección de memoria sea considerado un dato o una instrucción depende de quien recibe esa información. 3 La CPU dispone de dos registros internos: Registro de dirección de memoria(MAR) próxima dirección de memoria donde se va a leer o escribir. Registro de datos de memoria (MBR) Así mismo la unidad E/S tiene registros análogos: Registro de dirección E/S(MAR E/S) Registro de datos de E/S (MBR E/S) 4 El ciclo de instrucción es la secuencia de operaciones en la ejecución de una instrucción. Esta compuesta de dos fases: Fase o ciclo de búsqueda memoria y se lee. se localiza instrucción en Fase o ciclo de ejecución 5 1. Se busca la siguiente instrucción en la dirección de memoria indicada por el contador de programa (PC). 2. Se carga dicha instrucción en el registro de instrucciones (RI). 3. Se ejecuta la instrucción que puede ser de cuatro tipos: CPU-Memoria CPU – E/S Procesamiento de los datos. Instrucciones de control. 4. Se incrementa el PC en +1 6 7 Mecanismo por el que otros módulos (como por ejemplo E/S) pueden interrumpir el procesamiento normal de la CPU. 1. CPU comprueba si se ha producido alguna interrupción. 2. En caso afirmativo activa la señal apropiada. 3. Si no existe ninguna señal pendiente de ser atendida continúa con la siguiente instrucción del programa que está ejecutando. 4. Si hay alguna interrupción activada: 1. 2. 5. Guarda el contexto del programa que se está ejecutando. Carga en el PC la primera instrucción del programa encargado de gestionar la interrupción. Una vez finalizada la atención de la interrupción vuelve a cargar el contexto del programa que estaba ejecutando y prosigue su ejecución. 8 Principales entradas y salidas de cada módulo: Las estructuras de interconexión permiten que todos estos módulos se relacione entre sí. Hay cuatro posibles estructuras de interconexión. 9 1. E/S a través de la CPU: CPU CPU y E/S comparten misma vía de acceso a memoria. La CPU controla todos los intercambios. CPU deberá parar su procesamiento cuando se están transfiriendo datos. No es posible DMA La más económica pero la de menor rendimiento. 10 2. E/S a través de la memoria: memoria Módulo de memoria dispone de la lógica de control necesaria para resolver conflictos. 3. E/S mediante un conmutador central: central Gran flexibilidad, su inconveniente es el gran coste y su complejidad. 11 4. Arquitectura con bus de E/S: E/S Conjunto de líneas compartidas por todos los módulos. Solo puede transferir un módulo a la vez. Una o mas unidades se deben encargar de controlar la utilización del bus. Es el estándar en estos momentos para los microcomputadores y minicomputadores. 12 Estructura de bus: bus Consta de entre 50 a 100 líneas a las que se les asigna una función. Grupos funcionales de líneas: Líneas de datos: determinan cuantos bits se pueden transmitir de forma simultánea. Líneas de dirección: determina la capacidad de direccionamiento. Líneas de control: gobiernan el uso y acceso a las líneas de datos y dirección. Estructura jerárquica de buses: buses Según aumenta el número de elementos al bus su rendimiento disminuye debido a: Retardo de propagación aumenta. Si demasiados elementos piden el bus este se “atasca” Solución aumentar la velocidad del bus o su número de líneas. Diferente naturaleza de los dispositivos conectados al bus. Solución: usar un conjunto de buses organizados jerárquicamente. 13 Tipos de buses: Dedicado No dedicado o compartido multiplexación en el tiempo. Método de arbitraje (para buses no dedicados): Esquema centralizado Esquema distribuido Temporización: Síncrona: la ocurrencia de sucesos determinada por un reloj. De hecho la mayoría de sucesos solo ocupan un ciclo de reloj. Asíncrona: La ocurrencia de un suceso en el bus sigue y depende de la aparición de un suceso previo sin que tenga que producirse en un instante correcto. Anchura del bus: Nº de líneas del mismo. Transferencia de datos: El bus se usa para operaciones de: lectura y escritura. Si hay multiplexación en el tiempo: Primero se usa el bus para especificar la dirección de lectura/escritura Luego se usa para enviar el dato. Si hay líneas dedicadas se pone la dirección en las líneas de memoria y se mantienen mientras el dato se sitúa en el bus de datos. 14 Hay un árbitro que no sabe cuántos elementos hay colocados, solo distingue si hay solicitud de uso del bus o no. Se usa estructura de encadenamiento Daisy Chaining para el control del bus: El modulo activa la solicitud del bus. Cuando un modulo recibe la autorización comprueba si la ha solicitado el (empieza a transmitir) en caso contrario propaga la señal. Los módulos tienen prioridades implícitas respecto a su posición en el bus. Se pueden crear varios niveles de prioridad del bus, para ello usaremos n líneas de solicitud de bus y n líneas de autorización del bus. Cada línea de solicitud tendrá su nivel de prioridad. 15 Esquema distribuido: en este no hay un árbitro, cada módulo tiene la lógica de control necesaria para poder acceder al bus. (diapositiva 6) Modulo primero comprueba si libre (ocupado=0) Y si su Ent está activada. Desactiva su señal de salida (Sal=0). Solo un modulo tendrá Ent=1 y Sal=0, pasará a ser el maestro del bus. Activa ocupada=1 y Sal=1 e inicia transferencia. Método más barato, rápido y fiable. 16 Uso del bus por distintas unidades implica el uso de circuitos para garantizar su correcto funcionamiento. Para ello usamos puertas triestado. Si varias puertas triestado tienen conectadas sus salidas a una misma línea de un bus, solo puede activar la señal de control una de ellas. Si una puerta triestado tiene su señal de control desactivada (C=0) la puerta se desconecta de su salida, se dice que está en estado de alta impedancia. 17 18 19 20 En un bus con arbitraje centralizado: A) Cualquier dispositivo puede decidir en qué momento toma el control del bus. B) La temporización debe ser asíncrona. C) Todos los dispositivos actúan de forma cooperativa para compartir el bus. D) Todas las afirmaciones anteriores son falsas. 21 En un bus con arbitraje centralizado: A) Cualquier dispositivo puede decidir en qué momento toma el control del bus. B) La temporización debe ser asíncrona. C) Todos los dispositivos actúan de forma cooperativa para compartir el bus. D) Todas las afirmaciones anteriores son falsas. 22 Una CPU con bus de direcciones de 16 bits y un bus de datos de 8 bits tiene un registro de 8 bits conectado al bus de datos y a la unidad de control. Este registro puede ser uno de los siguientes: siguientes A) Contador de programa (PC). B) De instrucción (IR). C) De direcciones de memoria (MAR). D) Ninguna de las anteriores. 23 Una CPU con bus de direcciones de 16 bits y un bus de datos de 8 bits tiene un registro de 8 bits conectado al bus de datos y a la unidad de control. Este registro puede ser uno de los siguientes: siguientes A) Contador de programa (PC). B) De instrucción (IR). C) De direcciones de memoria (MAR). D) Ninguna de las anteriores. (Como el bus de direcciones tiene 16 bits, las respuestas A y C no pueden ser ya que el PC y el MAR deberían tener necesariamente una longitud de 16 bits. El registro IR cumpliría las especificaciones de la pregunta al tener 8 bits y estar conectado al bus de datos y a la Unidad de Control.) 24 A) CONT1 B) CONT2 C) CONT4 D)Ninguna de las anteriores 25 A) CONT1 B) CONT2 C) CONT4 D)Ninguna de las anteriores 26 Indique si las siguientes afirmaciones son verdaderas. En un bus con arbitraje distribuido: I. La posición de conexión de los dispositivos a la línea de arbitraje no determina la prioridad de aquellos en el uso del bus. II. El uso del bus por un dispositivo se interrumpe cuando otro dispositivo con mayor prioridad solicita el uso del bus. A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no. 27 Indique si las siguientes afirmaciones son verdaderas. En un bus con arbitraje distribuido: I. La posición de conexión de los dispositivos a la línea de arbitraje no determina la prioridad de aquellos en el uso del bus. II. El uso del bus por un dispositivo se interrumpe cuando otro dispositivo con mayor prioridad solicita el uso del bus. A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no. 28 Indique si las siguientes afirmaciones son verdaderas. I. Una transferencia de datos en un bus que utiliza la técnica de multiplexación en el tiempo de direcciones y datos se realiza de la forma siguiente: se coloca la dirección en el Bus de Direcciones y se mantiene mientras el dato se sitúa en el Bus de Datos. II. Cuando las salidas de varias puertas triestado se encuentran conectadas a una misma línea de un bus, sólo una de ellas puede estar en estado de alta impedancia. A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no. 29 Indique si las siguientes afirmaciones son verdaderas. I. Una transferencia de datos en un bus que utiliza la técnica de multiplexación en el tiempo de direcciones y datos se realiza de la forma siguiente: se coloca la dirección en el Bus de Direcciones y se mantiene mientras el dato se sitúa en el Bus de Datos. II. Cuando las salidas de varias puertas triestado se encuentran conectadas a una misma línea de un bus, sólo una de ellas puede estar en estado de alta impedancia. A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no. no 30 Considere una CPU en la que tanto las instrucciones como los datos tienen una longitud de 12 bits. El formato de las instrucciones es el siguiente: los 4 bits más significativos de la instrucción representan el código de operación y los otros 8 bits representan la dirección de memoria. A continuación, se muestra una lista parcial de los códigos de operación: 0111: Cargar el registro acumulador desde memoria. 1101: Almacenar en memoria el contenido del registro acumulador. 1110: Restar al acumulador el contenido de una dirección de memoria. El resultado se almacena en el acumulador. Indique cual de los siguientes fragmentos de programa resta al contenido de la dirección de memoria 3B16 el contenido de la dirección de memoria 3A16 y almacena el resultado en la dirección de memoria 3A16. A) 73A16, E3B16, D3A16 B) 73B16, E3A16, D3A16 C) Los anteriores son correctos D) Ninguno de los anteriores 31 Véase el ejemplo 1.2.2 del libro de teoría. En primer lugar se expresa cada uno de los códigos de operación que se indica en el enunciado en hexadecimal, codificando la operación que se efectúa con cada uno: 0111 = 716: AC ← [MEM] 1101 = D16: [MEM] ← AC 1110 = E16: AC ← AC – [MEM] La operación que se pide es restar al contenido de la dirección de memoria 3B16 el contenido de la dirección de memoria 3A16 y almacena el resultado en la dirección de memoria 3A16, o lo que es lo mismo: [3A16] ← [3B16] - [3A16]. Por tanto las instrucciones son: 73B16 E3A16 D3A16 Respuesta: B 32