14
Componentes de un computador Casi todas las computadoras se han basado en el modelo diseñado por John von Neumann en el Instituto de Estudios Avanzados de Princeton. Tal diseño se conoce como arquitectura de von Neumann y se basa en tres conceptos claves: o 1. Datos e instrucciones almacenados en una sola memoria de lectura-escritura. o 2. Los contenidos de esta memoria se direccionan indicando su posición, sin considerar el tipo de dato contenido en la misma. o 3. La ejecución se produce siguiendo una secuencia de instrucción tras instrucción (a no ser que dicha secuencia se modifique explícitamente). Surge el concepto de programa almacenado. Memoria principal almacena datos e instrucciones. La ALU (Unidad Aritmético Lógica) opera con datos en formato binario. La UC (Unidad de Control) interpreta las instrucciones de la memoria y las ejecuta. Un equipo de E/S (Entradas/Salidas) dirigido por la UC. Surge el computador IAS que es un prototipo para toda una serie de computadoras de uso general (1952). Detalles del computador IAS 1,000 posiciones de memoria de 40 bits o palabra c/u. o Formato de número en binario o 2 Instrucciones 20 bits c/u Conjuntos de registros (storage in CPU): o Registro temporal de memoria (MBR) contiene o recibe una palabra procedente de la memoria. o Registro de dirección de memoria (MAR) especifica la dirección de la palabra que será escrita o leída en MBR. o Registro de Instrucción (IR) contiene los 8 bits del código de operación de la instrucción a ejecutar. o Registro temporal de instrucción (IBR) contiene la instrucción de la parte derecha de una palabra en memoria.

Resumen de Stallings

Embed Size (px)

DESCRIPTION

resumen del capitulo 2 de Stallings- arquitectura y organización del computador

Citation preview

Componentes de un computador Casi todas las computadoras se han basado en el modelo diseado por John von Neumann en el Instituto de Estudios Avanzados de Princeton. Tal diseo se conoce como arquitectura de von Neumann y se basa en tres conceptos claves: 1. Datos e instrucciones almacenados en una sola memoria de lectura-escritura. 2. Los contenidos de esta memoria se direccionan indicando su posicin, sin considerar el tipo de dato contenido en la misma. 3. La ejecucin se produce siguiendo una secuencia de instruccin tras instruccin (a no ser que dicha secuencia se modifique explcitamente). Surge el concepto de programa almacenado. Memoria principal almacena datos e instrucciones. La ALU (Unidad Aritmtico Lgica) opera con datos en formato binario. La UC (Unidad de Control) interpreta las instrucciones de la memoria y las ejecuta. Un equipo de E/S (Entradas/Salidas) dirigido por la UC. Surge el computador IAS que es un prototipo para toda una serie de computadoras de uso general (1952).Detalles del computador IAS 1,000 posiciones de memoria de 40 bits o palabra c/u. Formato de nmero en binario 2 Instrucciones 20 bits c/u Conjuntos de registros (storage in CPU): Registro temporal de memoria (MBR) contiene o recibe una palabra procedente de la memoria. Registro de direccin de memoria (MAR) especifica la direccin de la palabra que ser escrita o leda en MBR. Registro de Instruccin (IR) contiene los 8 bits del cdigo de operacin de la instruccin a ejecutar. Registro temporal de instruccin (IBR) contiene la instruccin de la parte derecha de una palabra en memoria. Contador de Programa (PC) contiene la direccin de la prxima pareja de instrucciones que van a ser captadas de la memoria. Acumulador (AC) y Multiplicador Cociente (MQ) se emplean para almacenar operandos y resultados de operaciones de la ALU. La computadora IAS tena un total de 21 instrucciones, agrupadas de la siguiente manera: Transferencia de datos: transferir datos entre la memoria y los registros de la ALU o entre dos registros de la ALU. Salto incondicional: normalmente la UC ejecuta instrucciones secuencialmente en la memoria. Las instrucciones de salto pueden cambiar esta secuencialidad y facilitar tambin las operaciones repetitivas. Aritmtica: operaciones realizadas por la ALU. Modificacin de direcciones: permite a la ALU realizar operaciones con las direcciones e insertarlas en instrucciones almacenadas en la memoria. Lo anterior permite flexibilidad en el direccionamiento de un programa.Componentes de una computadora: De la computadora IAS surge el concepto de programa cableado es decir, un hardware especfico para una tarea particular. Si se deseaba realizar un clculo concreto, se utilizaba una configuracin de componentes lgicos diseados especficamente para dicho clculo. La otra alternativa que surgi posteriormente fue construir una configuracin de uso general de funciones lgicas y aritmticas. El hardware realizaba funciones diferentes segn las seales de control aplicadas. Con el hardware de uso general, el sistema acepta datos y seales de control, y produce resultados En lugar de reconfigurar el hardware para cada nuevo programa, el programador simplemente necesitaba proporcionar un nuevo conjunto de seales de control. Las seales de control se suministraban desde el programa asociando un cdigo especfico para cada posible conjunto de seales de control. Luego se aada un hardware de uso general para generar las seales de control a partir del cdigo. Nace un nuevo mtodo denominado software (secuencia de cdigos o instrucciones). Programacin software Para cada operacin se provee de un nico cdigo (ADD, MOVE) Una porcin del hardware (UC) acepta el cdigo y genera las seales de control.Funcionamiento de una computadora La funcin bsica que realiza una computadora es la ejecucin de un programa, constituido por un conjunto de instrucciones almacenadas en la memoria. El procesador lee (capta) la instruccin de memoria, y la ejecuta. La ejecucin a su vez puede estar compuesta por un cierto nmero de pasos. El procesamiento que requiere una instruccin se denomina ciclo de instruccin. Ciclo de instruccin bsico, compuesto por dos pasos (ciclo de captacin y ciclo de ejecucin): CPU capta (fetch) CPU ejecuta (execute) La ejecucin del programa se para, slo si se desconecta la mquina, si se produce un error o si se ejecuta una instruccin que lo detiene.Ciclo de Captacin: El PC contiene la direccin de la prxima instruccin a ejecutar. El procesador capta la instruccin desde la memoria en la direccin indicada por el PC. Se incrementa en 1 el PC (a no ser que se indique otro valor) La instruccin captada se almacena en el IR (registro de instrucciones). El procesador interpreta la instruccin y lleva a cabo la accin requerida.Ciclo de Ejecucin: La ejecucin de una instruccin puede implicar una combinacin de las siguientes acciones: Procesador-memoria: transferir datos desde la CPU a la memoria, o desde la memoria a la CPU. Procesador E/S: transferir datos a o desde el exterior mediante la transferencia entre la CPU y un mdulo de E/S. Procesamiento de datos: la CPU debe realizar alguna operacin aritmtica o lgica con los datos. Control: alteracin de la secuencia de ejecucin, ej. JUMPEjecucin del Programa: Con un conjunto de instrucciones ms complejos se hubieran necesitado menos ciclos (ej. ADD B,A) Los procesadores modernos incluyen instrucciones que contienen ms de una direccin. As el ciclo de ejecucin de un instruccin particular puede ocasionar ms de una referencia a memoria. Los estados de la parte superior del diagrama, ocasionan intercambios entre la CPU y la memoria o un mdulo de E/S. Los estados de la parte inferior del diagrama, slo ocasionan operaciones internas a la CPU. Obsrvese adems que se considera en el diagrama la posibilidad de que una instruccin necesite mltiples operandos y de lugar a mltiples resultados. Adems de que se puede especificar una instruccin que realice operacin con un vector (matriz unidimensional) de nmeros o con una cadena (matriz unidimensional) de caracteres.Interrupciones: Prcticamente todas las computadoras contienen un mecanismo mediante el cual otros mdulos (E/S, memoria) pueden interrumpir el procesamiento normal de la CPU. Interrupciones generadas por programa: Ej. overflow (desbordamiento aritmtico, divisin por cero, instruccin inexistente, etc. Interrupciones generadas por tiempo: Generadas por un temporizador interno al procesador. Interrupciones generadas por E/S: Generadas por un controlador E/S, para indicar la finalizacin de una operacin o para indicar condiciones de error. Interrupciones generadas por fallo de hardware: Generadas por un fallo tal como la falta de potencia de alimentacin o un error de paridad en la memoria. Las interrupciones proporcionan una forma de mejorar la eficiencia del procesador. Debido a que la mayora de los dispositivos externos son mucho ms lentos que el procesador, con las interrupciones podemos lograr que el procesador se ocupe en otras tareas y no quede a la espera de las respuestas procedentes de los dispositivos externos que le generan un considerable tiempo muerto. Para permitir el uso de interrupciones se aade un ciclo de interrupcin al ciclo de instruccin. El procesador comprueba si se ha generado alguna interrupcin. Si no hay seales de interrupcin pendientes, el procesador contina con el ciclo de captacin y accede a la siguiente instruccin del programa en curso. Si hay alguna interrupcin pendiente: Suspende la ejecucin del programa y guarda su contexto (almacena el contenido actual del PC y cualquier otro dato relacionado con la actividad en curso) Carga el PC con la direccin de comienzo de una rutina de gestin de interrupciones. Luego el procesador prosigue con el ciclo de captacin y accede a la primera instruccin del programa de gestin de interrupciones. Generalmente el programa de gestin de interrupciones forma parte del Sistema Operativo. Atiende al programa de gestin de interrupciones y luego contina con el ciclo de instrucciones del programa principal. Lo anterior se repite por cada interrupcin que reciba el procesador.Interrupciones mltiples: Qu hacer si el procesador est atendiendo una interrupcin y en ese momento surge otra(s) llamada(s) a interrupcin(es)? Interrupcin inhabilitada: Cuando surge una interrupcin, el procesador para atenderla ignora a las dems interrupciones desactivndolas. Luego que termina de atender a la interrupcin el procesador comprueba si se produjo alguna otra adicional y procede a atenderla. El ciclo anterior se repite. Interrupcin por prioridades: Alternativa que consiste en definir prioridades para las interrupciones y permitir que una interrupcin de prioridad ms alta pueda interrumpir a un gestor de interrupcin de prioridad menor.Estructura de interconexin: Computador: red de mdulos elementales (procesador, memoria, E/S) enlazados entre s mediante una estructura de interconexin. El diseo de la estructura de interconexin depender de los intercambios que deban producirse entre los mdulos. Se tendr diferentes tipos de conexiones para los diferentes mdulos Memoria N palabras de igual longitud con direcciones que van desde la 0 a la N-1. Recibe y enva datos. Recibe direcciones. Recibe seales de control: Lectura, Escritura y Reloj o tiempo Mdulos E/S Similar a la memoria desde el punto de vista de la computadora. Lectura y escritura. Un mdulo puede controlar ms de un dispositivo externo mediante sus puertos. Cada puerto (interface) con una direccin. Lneas externas para la entrada salida de datos de un dispositivo externo. Puede enviar seales de interrupcin al procesador. Procesador Lee instrucciones y datos. Enva datos procesados. Utiliza seales de control. Recibe interrupciones. La estructura de interconexin debe dar cobertura a los siguientes tipos de transferencias: Memoria a procesador: el procesador lee una instruccin o un dato desde la memoria. Procesador a memoria: el procesador escribe un dato en la memoria. E/S a procesador: el procesador lee datos de un dispositivo de E/S a travs de un mdulo de E/S. Procesador a E/S: el procesador enva datos al dispositivo de E/S. Memoria a E/S y viceversa: en estos dos casos, un mdulo de E/S puede intercambiar datos directamente con la memoria, sin que tengan que pasar a travs del procesador, utilizando el acceso directo a memoria (DMA =Direct Memory Access).Interconexin con buses: Camino de interconexin entre dos dispositivos. Medio compartido. Usualmente broadcast. Seales disponibles para todos los dispositivos conectados al bus. Solo un dispositivo puede transmitir a la vez con xito. Formado por varias lneas o caminos de comunicacin. Buses paralelos, varias lneas para transmitir datos binarios. Ej. dato de 8 bits en bus de 8 lneas. A cada lnea (o conjunto) se le asigna una funcin en particular. Se pueden clasificar en tres grupos funcionales: Lneas de control, de direccin y de datos; tambin pueden existir lneas de alimentacin para suministrar energa a los mdulos conectados a los buses.Bus de datos: Camino para los datos (o instrucciones). Su anchura determina cuantos bits se pueden transferir al mismo tiempo (8, 16, 32, 64 bits). Su anchura es un factor clave para determinar su performance: Si es de 8 bits y las instrucciones son de 16 bits entonces el procesador debe acceder dos veces al mdulo de memoria por cada instruccin.Bus de direcciones: Se utilizan para designar la fuente o el destino del dato (o la instruccin) situado en el bus de datos. Ej., si el procesador desea leer una palabra (dato o instruccin) situado en la memoria (o en un mdulo de E/S) situar la direccin de la palabra en el bus de direcciones. Su anchura determina la mxima capacidad de memoria posible del sistema. Ej. en el procesador 8080 su bus era de 16 bits, lo que permita direccionar hasta 64k (64* 103= 64,000 posiciones) de memoria. Tambin se utiliza para direccionar los puertos de los mdulos de E/S. Direcciones inferiores para memoria y altas para puertos.Bus de control: Controla el acceso a las lneas de datos y de direcciones. Transmiten tanto rdenes como seales de temporizacin o sincronizacin entre los mdulos del sistema. Las seales de temporizacin indican la validez de los datos y las direcciones. Las seales de rdenes indican la operacin a realizar. Lneas de control tpicas: Memory write: dato del bus se escribe en la posicin direccionada. Memory read: dato de la posicin direccionada se sita en el bus. I/O write: dato del bus se transfiere al puerto de E/S direccionado. I/O read: dato del puerto de E/S direccionado se sita en el bus. Transfer ACK (transferencia reconocida): dato aceptado o situado en el bus. Bus request (peticin del bus): indica que un mdulo necesita disponer del control del bus. Bus grant (cesin del bus): indica que se cede el control del bus a un mdulo que lo haba solicitado. Interrupt request (peticin de interrupcin): indica si hay una interrupcin pendiente. Interrupt Ack (interrupcin reconocida): seala que la interrupcin pendiente se ha aceptado. Clock: sincroniza operaciones. Reset: coloca los mdulos conectados al bus en su estado inicialFuncionamiento del bus: Para enviar un dato: 1. Obtener el uso del bus. 2. Transferir el dato a travs del bus. Para pedir un dato: 1. Obtener el uso del bus. 2. Transferir la peticin al otro mdulo mediante las lneas de control y direccin. 3. Esperar al que el segundo mdulo enve el dato.Problemas para un bus: A mayor cantidad de dispositivos conectados, mayor retardo de propagacin. Si el control del bus pasa de un dispositivo a otro, aumentan los retardos de propagacin y las prestaciones disminuyen. Cuello de botella a medida que las peticiones del bus se acercan a la capacidad del bus. Solucin: utilizar varios buses organizados jerrquicamente con diferentes capacidades.Tipos de buses: Dedicado: est permanentemente asignado a una funcin1 o a un subconjunto fsico de componentes2. Ej. dedicacin funcional1: lneas separadas para direcciones y para datos. Ej. subconjunto fsico de componentes2: bus de E/S para interconectar todos los mdulos E/S. Lo anterior, eleva el rendimiento del sistema debido a que existe menos conflicto por el acceso al bus. Desventaja, incremento del tamao y costo del sistema. Multiplexado: se utilizan las mismas lneas para transmitir diferentes tipos de informacin, como por ejemplo datos y direcciones. Con una lnea de control de Direccin Vlida situamos al comienzo de la transferencia de datos, la direccin se sita en el bus y se activa la lnea de control. Luego cada mdulo tiene un tiempo para copiar la direccin y determinar si l es el mdulo direccionado. Despus la direccin se quita del bus, y se utilizan las mismas lneas para transferir el dato (lectura o escritura). Lo anterior se conoce como multiplexado por tiempo. Multiplexacin en las redes de cmputo: Es el proceso por medio del cual mltiples canales de datos se combinan para viajar por un mismo medio fsico.Mtodos de arbitraje de buses: Centralizado: un nico dispositivo de hardware, denominado controlador de bus o rbitro es el responsable de asignar tiempos al bus. El rbitro puede ser un dispositivo separado o estar integrado al procesador. Distribuido: no existe un controlador central, cada mdulo dispone de lgica para controlar el acceso, y los mdulos actan conjuntamente para compartir el bus. En ambos mtodos de arbitraje se designa un dispositivo, el procesador o un mdulo de E/S, como maestro del bus. El maestro podra iniciar la transferencia de datos (lectura o escritura) con otro dispositivo, que acta como esclavo.Temporizacin de buses: (Hace referencia a la forma en que se coordinan los eventos en el bus.) Sncrona: en esta los eventos estn coordinados por un reloj. El bus incluye una lnea de reloj a travs de la que se transmite una secuencia de 1s y 0s. Un ciclo de reloj es cuando tengo un nico intervalo de 1 seguido a 0, tambin se conoce como ciclo de bus y define un intervalo de tiempo unidad (o time slot). Todos los dispositivos pueden leer la lnea de reloj, y todos los eventos comienzan al principio del ciclo de reloj. Asncrona: la presencia de un evento es en el bus es consecuencia y depende de que se produzca un evento previo. Es ms difcil de implementar y comprobar que la sncrona. Es ms flexible que la sncrona ya que los dispositivos no deben utilizar una misma frecuencia de reloj para sincronizar sus operaciones. Pueden compartir el bus dispositivos lentos con dispositivos rpidos, utilizando tanto las tecnologas ms antiguas como las ms recientes.Anchura del bus: La anchura del bus de datos afecta a las prestaciones del sistema. Cuanto ms ancho es el bus de datos, mayor cantidad de datos se transmiten a la vez. La anchura del bus de direcciones afecta la capacidad del sistema. Cuanto ms ancho es el bus de direcciones, mayor es el rango de posiciones de memoria a las que puedo hacer referencia.Tipos de transferencia de datos de bus: Lectura /escritura no multiplexada: dato y direccin enviados por el mdulo maestro en el mismo ciclo sobre lneas de bus distintas. Escritura multiplexada: direccin primer ciclo, dato segundo ciclo. Lectura modificacin escritura: lectura seguida inmediatamente de una escritura en la misma direccin.El bus PCI:( Peripheral Componet Interconnect, interconexin de componente perifrico) es un bus muy popular, de ancho de banda elevado, independiente del procesador. Est diseado para permitir una cierta variedad de configuraciones basadas en sistemas monoprocesador y sistemas multiprocesador Proporciona un conjunto de funciones de uso general Las direcciones y datos estn multiplexadas en el tiempo El esquema de arbitraje empleado es centralizado Utiliza temporizacin sncrona El diseo del bus PCI se ha realizado especficamente para ajustarse a los requisitos de E/S de los sistemas actuales. Podemos distinguir tres ventajas del bus PCI: Es econmico: se implementa con muy pocos circuitos Es flexible: permite que otros buses se conecten a l Es rpido: comparado con otras especificaciones comunes de bus, proporciona un mejor rendimiento para los subsistemas de E/S de alta velocidad. Las especificaciones del bus PCI son de dominio pblico. Son respetadas por un amplio abanico de fabricantes de procesadores y perifricos, por lo que los productos de diferentes compaas son compatibles. La asociacin PCI SIG (Special Interest Group) contina el desarrollo de las especificaciones y vela por que se mantenga la compatibilidad. El resultado ha sido que el bus PCI no solo est ampliamente adoptado en la actualidad sino que su uso se sigue extendiendo. Un dispositivo integra el controlador de memoria y el adaptador al bus PCI: Proporciona el acoplamiento al procesador (buffer temporal). Asla la capacidad de E/S del procesador de la velocidad real del bus, lo que posibilita transmitir datos a alta velocidad. Se pueden conectar una o varias configuraciones PCI al bus del sistema por medio de adaptadores Al bus del sistema slo se conectan las unidades procesador/cach, la memoria principal y los adaptadores. Los adaptadores mantienen la independencia procesador-PCI. El estndar actual permite configurar el bus PCI como un bus de 32 o 64 bits. La especificacin tambin define 51 seales opcionales que se dividen en los siguientes grupos funcionales: Terminales de interrupcin: no son lneas compartidas cada dispositivo tiene sus propias lneas para generar peticiones a un controlador de interrupciones Terminales de soporte de cach: necesarios para permitir memorias cach en el bus asociadas a un procesador o a otro dispositivo Terminales de ampliacin a bus de 64 bits: 32 lneas para direcciones y datos multiplexadas en el tiempo que se pueden combinar con las obligatorias para tener un total de 64. Lneas adicionales para interpretar y validar las direcciones y datos, as como para permitir que dos dispositivos acuerden el uso de los 64 bits Terminales de test: siguen estndar IEEE para procedimientos de test. La actividad del bus consiste en transferencias entre dispositivos conectados al bus: El dispositivo que inicia la transferencia es el maestro. Cuando el maestro adquiere el control del bus determina el tipo de transferencia que se realizar (lneas C/BE). El bus PCI utiliza un esquema de arbitraje centralizado sncrono en el que cada maestro tiene una nica seal de peticin (REQ) y cesin (GNT) del bus. Estas lneas se conectan a un rbitro central, lo que permite que los dispositivos accedan al bus tras un simple intercambio de seales de peticin y cesin. La especificacin del bus PCI no indica un algoritmo particular de arbitraje El rbitro puede utilizar cualquier esquema de prioridad Primero en llegar, primero en servirse Rotatorio (round robin) El maestro establece, para cada transferencia que desee realizar, si tras la fase de direccin sigue una o ms fases de datos consecutivas.