Download UNDAV- Informatica - UNIDAD 3
Document related concepts
no text concepts found
Transcript
Ingeniería en Informática Primer cuatrimestre de 2012 Informática UNIDAD 3: Arquitectura de computadoras El procesador Los dos puntos más importantes a tener en cuenta son: Todos los datos y las instrucciones se representan en código binario y se almacenarán juntos en la memoria de la computadora. La computadora no hará distinciones entre datos e instrucciones. Una máquina de Von Neumann consta de 3 unidades básicas: Procesador, también llamado CPU (siglas de Unidad Central de Proceso, en inglés Central Process Unit), memoria y unidad de E/S, que serán estudiados en este tema y en sucesivos. La unidad de E/S permite que la computadora reciba y envíe información al exterior. La memoria esta compuesta de varias celdas, cada una de las cuales es capaz de contener 1 byte y que tiene una dirección para permitirnos acceder a la misma, como se muestra en la figura adjunta. Unidad 3 – Arquitectura de las computadoras 1 Ingeniería en Informática Primer cuatrimestre de 2012 Informática Para que el procesador pueda acceder a un determinado byte (para leerlo o para escribir en él) es preciso que conozca su dirección. El procesador esta conectado con la memoria a través de dos buses, que se llaman bus de datos y bus de direcciones. El primero sirve para que el procesador intercambie datos con la memoria y el segundo, para especificar que dirección de memoria debe emplear para ello. Además, existen unas señales de control que permiten, entre otras cosas, decir si queremos leer o escribir. Concepto de procesador El objetivo principal de un procesador es el de ejecutar los distintos pasos de una tarea. Debe también conseguir funcionar lo más rápidamente posible, consumiendo la mínima potencia y evitando errores y paradas. Para ello, el procesador utiliza una serie de operaciones elementales, a partir de las cuales se pueden resolver tareas más complejas. Cada una de las operaciones elementales tiene un código binario y puede tener uno, o varios operando sobre los que actuar. El procesador dispone habitualmente de un conjunto reducido de posiciones de memoria internas, que se conocen como registros, y que le permiten almacenar los datos y los resultados con los que está trabajando en ese momento. El procesador, o CPU, consta básicamente de dos partes: La unidad aritmética-lógica (ALU, es decir aritmetic-logic unit) y la unidad de control (CU o control unit). Ambas las veremos a continuación con más detalle. La unidad aritmética lógica La unidad aritmética lógica o ALU de la computadora es la encargada de realizar las operaciones aritméticas (suma, resta, comparación, producto, cociente) y lógicas (y, o, no, o exclusivo). Está formada por el acumulador, un conjunto de circuitos lógicos, y el registro decódigos de condición o flags. Los códigos de condición (o flags de estado del programa), informan acerca de la operación más reciente que ha ejecutado la ALU. Los flags más importantes son C (carry), Z (zero) y OV (overflow). El primero (carry) se Unidad 3 – Arquitectura de las computadoras 2 Ingeniería en Informática Primer cuatrimestre de 2012 Informática activa (pone a 1) cuando el resultado de la última operación aritmética, considerando los operandos sin signo, no puede almacenarse correctamente; por ejemplo, suponiendo que la CPU fuera de 4 bits, al sumar 1010 con 1101, el resultado es 0111 y C=1, ya que el resultado real es 10111, que no puede almacenarse con 4 bits. El segundo (zero) se activa cuando el resultado es cero, por ejemplo al sumar 1001 con 0111. Finalmente, el overflow es como el carry, pero para operandos con signo. Todas las operaciones realizadas por la ALU se expresan en términos de un gran número de pequeños pasos, involucrando cada una, a uno o varios de los circuitos lógicos. La unidad de control La unidad de control, reducida a la mínima expresión, consta de contador de programa (normalmente llamado PC), decodificador de instrucciones, puntero de pila (comúnmente llamado SP, en inglés Stack Pointer) y, opcionalmente, de registro índice. La unidad de control tiene, así mismo, algo muy necesario, que es el generador de impulsos de reloj, encargado de sincronizar el funcionamiento del procesador. Las funciones de la unidad de control son las de controlar el funcionamiento paso a paso del procesador, mientras éste ejecuta cada una de las instrucciones de un programa. De forma más especifica, las funciones de la unidad de control son: Controlar la secuencia en que se ejecutan las instrucciones. Controlar el acceso del procesador a la memoria principal. Regular las temporizaciones de todas las operaciones que ejecuta el procesador. Enviar y recibir señales de control desde los periféricos. Para realizar sus funciones, consta de los siguientes elementos: Contador de programa (CP): también denominado registro de control de secuencia, contiene permanentemente la dirección de memoria de la siguiente instrucción a ejecutar. Registro de instrucción (RI): Contiene la instrucción que se esta ejecutando en cada momento. Esta instrucción llevará consigo el código de operación (CO) y en su caso los operandos o las direcciones de memoria de los mismos. Decodificador (D): Analiza las instrucciones y emite las señales necesarias al resto de elementos para su ejecución a través del secuenciador. Reloj (R): Marca los instantes en que se han de comenzar los distintos pasos de cada instrucción. Secuenciador (S): En este dispositivo se generan ordenes muy elementales (microordenes) que, sincronizadas por los impulsos del reloj, hacen que se vaya ejecutando poco a poco la instrucción que esta cargada en el RI. Unidad 3 – Arquitectura de las computadoras 3 Ingeniería en Informática Primer cuatrimestre de 2012 Informática Buses del sistema Hasta ahora nos hemos ocupado de cómo es el procesador por dentro. Veamos ahora como se comunica con el exterior. El procesador está encapsulado en plástico y tiene una serie de patas a través de las que se conecta al resto de componentes de la computadora. Se puede dividir el conjunto de patas en tres bloques: el bus de datos, el bus de direcciones y las señales de control. Además necesita unas patas dedicadas a la alimentación eléctrica del chip. El bus de datos son las líneas por las que el procesador lee o escribe datos en la memoria o en los periféricos. Consta normalmente de 8, 16, 32 o 64 hilos, cada uno de ellos representa un bit del dato que el procesador lee o escribe. El bus de direcciones son las líneas por las que el procesador decide la posición de memoria con la que quiere comunicarse. Cada posición tiene un número y dependiendo del número de hilos que compongan dicho bus, el procesador podrá manejar más o menos memoria. Aunque el bus de datos sea de más de 8 bits, por razones de compatibilidad las posiciones de memoria se numeran de 8 en 8 bits. Análogamente al bus de datos, por cada hilo del bus de direcciones circula un bit, y la dirección se forma con el número binario que representan dichos bits. Los tamaños más comunes de bus de direcciones son 16 (lo que permite tener 64Kb de memoria), 20 (1Mb), 24 (16Mb) y 32 (4Gb). NOTA: estos valores corresponden a una palabra de memoria de 1 byte (8 bits). Las señales de control sirven para que el procesador pueda controlar lo que hace, por ejemplo hay una llamada W/ R que le sirve al procesador para indicar cuando quiere leer y cuando quiere escribir, si la señal está a 0 se trata de una lectura y si está a 1 el procesador necesita escribir. Para acceder a los periféricos el procesador emplea tres estrategias: Escrutinio: Consiste en leer periódicamente el estado del periférico para decidir lo que debe hacer. Por ejemplo, si se usa un teclado de esta forma, periódicamente (por ejemplo, cada centésima de segundo) se lee a través de un puerto un registro de estado del teclado, que informa de sí hay una tecla pendiente de ser leída, en ese caso el procesador lee la tecla a través de otro puerto. Interrupción: El periférico interrumpe al procesador cuando necesita ser atendido, para ello el procesador dispone de una señal de control llamada INTR, que debe ser usada en ese caso, existe además un controlador de interrupciones externo encargado de canalizar todas las posibles peticiones de interrupción. Cuando se interrumpe al procesador, éste para lo que está haciendo y ejecuta un programa Unidad 3 – Arquitectura de las computadoras 4 Ingeniería en Informática Primer cuatrimestre de 2012 Informática de atención al periférico. Cuando acaba dicho programa, se vuelve al estado anterior y continúa con lo que hacía al ser interrumpido. La pila sirve para conservar el estado del procesador cuando se produce la interrupción, y poder continuar más adelante. Por ejemplo, el reloj funciona de esta forma. Cada cierto tiempo (por ejemplo, una centésima de segundo) interrumpe al procesador y le fuerza a que ejecute un programa que se encarga de incrementar la hora, que está almacenada en varias posiciones de memoria (una para las centésimas de segundo, otra para los segundos, etc.). Acceso directo a memoria: Cuando un periférico necesita enviar varios datos consecutivamente a memoria, los dos métodos anteriores son muy difíciles de emplear y se emplea éste, que consiste en tener un chip de apoyo al procesador que se llama controlador de DMA (acceso directo a memoria) que es capaz de leer y escribir en memoria sin ayuda del procesador. Memoria La memoria es el componente de la computadora que almacena la información que éste posee, es decir, sus datos y programas. Es como un bloc de notas que mantiene la información mientras estamos trabajando con ella. La memoria de la computadora está organizada en unidades de bytes, cada uno compuesto por 8 bits. Cada celda de memoria almacena un número fijo de bits, a este número se lo denomina palabra de memoria. No importa que tipo de información estemos almacenando; estará codificada en una estructura particular de bits, que será interpretada de la forma adecuada al tipo de datos en cuestión. Los mismos bytes de memoria se emplean para almacenar códigos de instrucciones, datos numéricos, datos alfabéticos, sonidos, vídeo, etc. Para ser capaces de trabajar con la memoria, cada unidad de bytes tiene una dirección, un número que sólo identifica a esa unidad. Las direcciones de memoria están numeradas una a una, empezando por cero. Las operaciones básicas que permite una memoria son dos: escritura o almacenamiento y lectura. En la escritura, o almacenamiento, la memoria necesita que le suministren una información y una dirección. La operación consiste en grabar la información en la dirección especificada. En la lectura, la memoria debe recibir una dirección. La operación consiste en recuperar información previamente escrita en esa dirección. Por tanto, podemos ver las memorias como cajas negras, a las que hay que suministrar una dirección y unas señales de control, que especifican la operación que se desea realizar, además de enviar o recibir el dato, o bloque de datos, correspondiente. Características de las memorias En la computadora hay dos tipos básicos de memorias, las memorias de sólo lectura, o ROM (Read Only Memory), y las memorias de lectura/escritura, o RAM (Random Access Memory). Para poder estudiarlas vamos a introducir en este apartado una serie de conceptos que permiten caracterizar los diversos tipos de memoria. Duración de la información En relación a la permanencia de la información grabada en las memorias, hay dos principales clasificaciones: Unidad 3 – Arquitectura de las computadoras 5 Ingeniería en Informática Primer cuatrimestre de 2012 Informática Memorias permanentes: Son memorias que contienen siempre la misma información y no pueden borrarse. Como ejemplo de este tipo de memorias se pueden citar las memorias de semiconductores tipo ROM, de las que hablaremos posteriormente. Memorias Volátiles: Precisan estar continuamente alimentadas de energía. Si se corta dicho suministro se borra la información que poseen. En contraposición están las no volátiles, en las que la información permanece aunque se elimine la alimentación. Modo de acceso Acceso aleatorio: En las memorias de acceso aleatorio se accede directamente al byte o posición deseada, en un tiempo independiente de la dirección a la que se quiere acceder, por ejemplo las memorias RAM son de acceso aleatorio. Acceso secuencial: En las memorias de acceso secuencial se llega a la posición deseada a través de una secuencia de posiciones, que depende de donde esté la información en el momento en el que se quiere acceder a ella, por ejemplo para acceder a una información en una cinta magnética es necesario recorrer la cinta hasta encontrar la información deseada. Tiempo de acceso Se denomina tiempo de acceso al que transcurre entre el instante en que se envía una operación de acceso a memoria y el instante en que se dispone de la primera información buscada. Según el tiempo de acceso se puede hablar de memorias rápidas o lentas, pero como eso no es demasiado preciso, es mejor citar el tiempo de acceso, que se mide normalmente en nanosegundos. Capacidad Es la cantidad de información que puede almacenar una memoria. Dado que la información se almacena en formato binario, la capacidad se mide en bytes. Se utiliza el byte porque es el menor tamaño de información, a la que se puede acceder en una operación de acceso a memoria, ya que cada posición de memoria almacena un byte. Aunque a la hora de hablar de la capacidad de memoria, se utilizan múltiplos de él (KByte, MByte, GByte, TByte). Memorias de sólo lectura: ROM Como indica su propio nombre son memorias que sólo permiten la lectura, también son de acceso aleatorio y no volátiles. Este tipo de memorias se utilizan para guardar una serie de programas que vienen con la computadora desde fábrica, como son los contenidos en la ROM-BIOS (Basic Input-Output System). En ella básicamente están unos programas de diagnóstico, encargados de chequear el hardware para comprobar que todo es correcto antes de arrancar. Además, tiene el programa de arranque, encargado de cargar el sistema operativo en memoria y, los programas para controlar los periféricos más comunes: unidades de disco, teclado, puertos serie y paralelo, tarjeta gráfica, etc. Algunos periféricos requieren tener una memoria ROM para contener el Unidad 3 – Arquitectura de las computadoras 6 Ingeniería en Informática Primer cuatrimestre de 2012 Informática programa encargado de gestionarlos, por ejemplo las tarjetas VGA cuentan con una memoria ROM de esas características ya que el BIOS sólo controla tarjetas CGA o MDA. Atendiendo a la manera en que son grabadas se pueden distinguir varios tipos: ROM: La palabra ROM puede ser aplicada a cualquiera de estos tipos de memoria, pero en este caso vamos a reservarla para memorias grabadas de fábrica en las que los transistores están dispuestos de la manera necesaria para que se lean los valores que debe contener. PROM (Programable Read Only Memory): Este tipo de memorias son similares a las anteriores. Son memorias de sólo lectura pero en vez de grabarse en fábrica, pueden grabarse, aunque una sola vez. Una vez grabada la información no podemos cambiarla, tan sólo leerla. EPROM (Erasable Programable Read Only Memory): La información puede ser modificada por el usuario un número limitado de veces. Para grabar la información se necesita un aparato especial, llamado grabador de EPROM. Antes de regrabar una EPROM hay que borrar el contenido anterior, para ello se emplea luz ultravioleta y posee una ventana que permite el paso de la misma, normalmente esta tapada para evitar un borrado accidental. EEPROM (Electricaly Erasable Programable Read Only Memory): Se diferencian de las anteriores en que pueden borrarse y grabarse en el mismo sistema informático y, en este caso, tanto la operación de borrado como de escritura se hace mediante el paso de corriente eléctrica. La información es borrada simultáneamente en todas las células de memoria. Memorias de lectura/escritura: RAM Son memorias de lectura/escritura, acceso aleatorio y volátiles. La memoria principal de una computadora es RAM, ya que la ROM al no permitir la escritura tiene un uso limitado. El sistema operativo y los programas y datos del usuario se almacenan en memoria RAM para poder ser usados por el procesador. Podemos distinguir dos tipos de memorias RAM: DRAM (Dinamic Random Access Memory): Son memorias en las cuales el estado (0 ó 1) se almacena en un dispositivo electrónico cuya forma de funcionamiento podemos compararla con un condensador que tiende a descargarse. Por ello, cada cierto tiempo, entre 1 y 18 millones de veces cada segundo, hay que enviar una señal, que se denomina señal de refresco, que recuerde a la memoria la información que posee, ya que ésta, se pierde poco después de haberse introducido. SRAM (Static Random Access Memory): La diferencia fundamental con las memorias anteriores es que no necesitan refresco, para ello emplean varios transistores por bit, lo cual reduce la capacidad de la memoria y hace que sean más caras que las DRAM (a igualdad de capacidad), a cambio son más rápidas que las DRAM, van de 50ns a 15ns. Unidad 3 – Arquitectura de las computadoras 7 Ingeniería en Informática Primer cuatrimestre de 2012 Informática Jerarquía de memoria Se conoce como jerarquía de memoria a la organización piramidal de la memoria en niveles, que tienen las computadoras. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basándose en el principio de cercanía de referencias. Los puntos básicos relacionados con la memoria pueden resumirse en: Cantidad Velocidad Costo La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer operandos o guardar resultados. En suma, el costo de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible. Como puede esperarse los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son válidas: A menor tiempo de acceso mayor costo A mayor capacidad mayor costo A mayor capacidad menor velocidad Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado Unidad 3 – Arquitectura de las computadoras 8 Ingeniería en Informática Primer cuatrimestre de 2012 Informática cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida. Los niveles que componen la jerarquía de memoria habitualmente son: Nivel 0: Registros Nivel 1: Memoria caché Nivel 2: Memoria principal Nivel 3: Memorias flash Nivel 4: Disco duro (con el mecanismo de memoria virtual) Nivel 5: Cintas Magnéticas Consideradas las más lentas, con mayor capacidad. Nivel 6: Redes (Actualmente se considera un nivel más de la jerarquía de memorias) Leyendo de la memoria Cuando el procesador quiere acceder a un dato, es decir para leer un dato de la memoria, realiza la siguiente secuencia: 1. Coloca la dirección del dato en el bus de direcciones. 2. Coloca en la pata W / R (línea de control) un 0 para indicar que desea leer. 3. Espera un tiempo prefijado a que la memoria coloque en el bus de datos el dato en cuestión. 4. Lee el dato del bus de datos y da por concluida la secuencia. Escribiendo en memoria Cuando el procesador transfiere un dato hacia la memoria, es decir, cuando se escribe en la memoria, se produce la siguiente secuencia: 1. Coloca la dirección del dato en el bus de direcciones. 2. Coloca en la pata W / R un 1 para indicar que desea escribir. 3. Coloca el dato en el bus de datos. 4. Espera un tiempo prefijado a que la memoria lea el dato del bus de datos y almacene dicho valor en la dirección pedida, pasado ese tiempo da por concluida la operación. Ciclo de instrucción Un ciclo de instrucción es el período que tarda la unidad central de proceso (CPU) en ejecutar una instrucción de lenguaje máquina. Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para ejecutar cada instrucción en un programa. Cada instrucción del juego de instrucciones de una CPU puede requerir diferente número de ciclos de instrucción para su ejecución. Un ciclo de instrucción está formado por uno o más ciclos máquina. Para que cualquier sistema de proceso de datos basado en microprocesador (por ejemplo una computadora) o microcontrolador (por ejemplo un reproductor de MP3) realice una tarea (programa) primero debe buscar cada instrucción en la memoria principal y luego ejecutarla. Unidad 3 – Arquitectura de las computadoras 9 Ingeniería en Informática Primer cuatrimestre de 2012 Informática Un ciclo de instrucción se divide en dos fases: fase de búsqueda y fase de ejecución. Fase de búsqueda 1. 2. 3. 4. 5. La unidad de control (UC) envía una micro orden para que el contenido del registro contador de programa (RCP) que contiene la dirección de la siguiente instrucción (la que corresponde procesar), sea transferido al registro de dirección de memoria (RDM). La posición de memoria que figura en el RDM es utilizada por el selector para transferir su contenido (instrucción) al registro de intercambio de memoria (RIM). Se transfiere la instrucción desde el registro de intercambio de memoria (RIM) al registro de instrucción (RI). El decodificador procede a interpretar la instrucción que llega desde el registro de instrucción (RI), y queda dispuesta la activación de UAL y se informa al secuenciador. El registro contador de programa se autoincrementa a través de la UAL con un valor 1 (o n en caso de utilizar la longitud de palabra de memoria), para quedar apuntando a la próxima instrucción consecutiva. Si la instrucción en ejecución es de ruptura de secuencia, el CP se cargará con la dirección que corresponda. Unidad 3 – Arquitectura de las computadoras 10 Ingeniería en Informática Primer cuatrimestre de 2012 Informática Fase de ejecución 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Se transfiere la dirección del 1º operando desde el registro de instrucción (RI) al registro de dirección de memoria (RDM). El selector extrae de la memoria dicho dato depositándolo en el registro de intercambio de memoria (RIM). Se lleva el operando desde el registro de intercambio de memoria (RIM) al registro de entrada 1 (REN1) de la UAL. Se transfiere la dirección del 2º operando desde el RI al registro de dirección de memoria (RDM). El selector extrae de la memoria dicho dato depositándolo en el registro de intercambio de memoria (RIM). Se lleva este operando desde el registro de intercambio de memoria (RIM) al registro de entrada 2 (REN2) de la UAL. El secuenciador envía una micro orden a la UAL para que se ejecute la operación de que se trate. El resultado de la operación queda almacenado en el registro acumulador (RA) o (ACUM). Este resultado es enviado desde el ACUM al registro de intercambio de memoria (RIM). Se transfiere desde el registro de instrucción (RI) al registro de dirección de memoria (RDM) la dirección donde ha de almacenarse el resultado en la memoria. Se transfiere el resultado desde el (RIM) a la dirección de memoria indicada en el registro de dirección de memoria (RDM). La familia de procesadores Intel 80x86 Unidad 3 – Arquitectura de las computadoras 11 Ingeniería en Informática Primer cuatrimestre de 2012 Unidad 3 – Arquitectura de las computadoras Informática 12