2 Arquitectura del computador.pdf

29
GUIA 1 ARQUITECTURA DEL COMPUTADOR UNIMET Prof. Sandro Costantini ARQUITECTURA DEL COMPUTADOR De las subáreas en que se descompone el estudio de un computador hay dos íntimamente relacionadas con la asignatura: la Arquitectura de Computadores y La Estructura de Computadores. Estas subáreas tienen fronteras comunes lo que puede dificultar su diferenciación. El conocimiento de la arquitectura es imprescindible para estudiar la estructura que la implementa. De las muchas definiciones de Arquitectura que existen damos dos que son, en cierta medida, el compendio de todas las demás. Bell y Newell, en su libro Computer Structures. Principles and examples definen arquitectura como los atributos del computador que puede ver el programador de lenguaje máquina. Por su parte, Hennessy y Patterson realizan una interesante definición. Arquitectura es la interface entre el Software de bajo nivel y el Hardware, indicando que esta interfaz es la que posibilita implementaciones de diverso costo/rendimiento en las que corre software idéntico. La arquitectura debe contener todo lo que los programadores necesitan conocer para que el programa SW (Lenguaje Máquina) funcione correctamente. Según indican Hennessy y Patterson todos los lenguajes máquina son parecidos. Esto se debe a que la mayoría de los computadores se construyen con tecnologías basadas en los mismos principios básicos, y a que deben ser pocas las operaciones que debe suministrar el computador. El objetivo perseguido al diseñar una arquitectura es encontrar un lenguaje máquina que haga fácil la construcción del hardware y del compilador, al tiempo que se maximiza el rendimiento y se minimiza el costo. Ejemplos de atributos de arquitectura son: Repertorio de instrucciones Formato de las instrucciones Códigos de operación Modos de direccionamiento Registros y posiciones de memoria que se pueden manipular directamente Número de bits utilizados para representar diferentes tipos de datos Mecanismos de entrada/salida La Estructura de un computador estudia las unidades operacionales de un computador así como y las formas de relacionarlas para que implementen las especificaciones de la arquitectura. Atributos de la estructura son los detalles del hardware transparentes al programador como: Las señales de control Interfaces entre el computador y los periféricos La tecnología de memoria utilizada El tipo de operadores aritméticos seleccionado Con el ejemplo que se da a continuación se ven las diferencias entre los dos conceptos. Una decisión que afecta a la arquitectura es determinar si el computador va a disponer de una determinada operación aritmética, por ejemplo, el producto. Una decisión de estructura es estudiar cómo implementar dicha operación, si mediante un sistema secuencial o combinacional; mediante una unidad especial o en la UAL del computador. La decisión de diseño de la estructura se fundamenta en: La velocidad de ejecución En el tamaño Consumo de potencia Etc. La diferencia entre arquitectura y estructura aparece de manera clara en las familias de computadores, que comparten una misma arquitectura pero tienen diferentes estructuras. Consecuentemente, los diferentes modelos de la familia tienen diferentes precios y características de rendimiento. Aún más, el

Transcript of 2 Arquitectura del computador.pdf

  • GUIA 1

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    ARQUITECTURA DEL COMPUTADOR De las subreas en que se descompone el estudio de un computador hay dos ntimamente relacionadas con la asignatura: la Arquitectura de Computadores y La Estructura de Computadores. Estas subreas tienen fronteras comunes lo que puede dificultar su diferenciacin. El conocimiento de la arquitectura es imprescindible para estudiar la estructura que la implementa. De las muchas definiciones de Arquitectura que existen damos dos que son, en cierta medida, el compendio de todas las dems. Bell y Newell, en su libro Computer Structures. Principles and examples definen arquitectura como los atributos del computador que puede ver el programador de lenguaje mquina. Por su parte, Hennessy y Patterson realizan una interesante definicin. Arquitectura es la interface entre el Software de bajo nivel y el Hardware, indicando que esta interfaz es la que posibilita implementaciones de diverso costo/rendimiento en las que corre software idntico. La arquitectura debe contener todo lo que los programadores necesitan conocer para que el programa SW (Lenguaje Mquina) funcione correctamente. Segn indican Hennessy y Patterson todos los lenguajes mquina son parecidos. Esto se debe a que la mayora de los computadores se construyen con tecnologas basadas en los mismos principios bsicos, y a que deben ser pocas las operaciones que debe suministrar el computador. El objetivo perseguido al disear una arquitectura es encontrar un lenguaje mquina que haga fcil la construccin del hardware y del compilador, al tiempo que se maximiza el rendimiento y se minimiza el costo. Ejemplos de atributos de arquitectura son:

    Repertorio de instrucciones Formato de las instrucciones Cdigos de operacin Modos de direccionamiento Registros y posiciones de memoria que se pueden manipular directamente Nmero de bits utilizados para representar diferentes tipos de datos Mecanismos de entrada/salida

    La Estructura de un computador estudia las unidades operacionales de un computador as como y las formas de relacionarlas para que implementen las especificaciones de la arquitectura. Atributos de la estructura son los detalles del hardware transparentes al programador como:

    Las seales de control Interfaces entre el computador y los perifricos La tecnologa de memoria utilizada El tipo de operadores aritmticos seleccionado

    Con el ejemplo que se da a continuacin se ven las diferencias entre los dos conceptos. Una decisin que afecta a la arquitectura es determinar si el computador va a disponer de una determinada operacin aritmtica, por ejemplo, el producto. Una decisin de estructura es estudiar cmo implementar dicha operacin, si mediante un sistema secuencial o combinacional; mediante una unidad especial o en la UAL del computador. La decisin de diseo de la estructura se fundamenta en:

    La velocidad de ejecucin En el tamao Consumo de potencia Etc.

    La diferencia entre arquitectura y estructura aparece de manera clara en las familias de computadores, que comparten una misma arquitectura pero tienen diferentes estructuras. Consecuentemente, los diferentes modelos de la familia tienen diferentes precios y caractersticas de rendimiento. An ms, el

  • GUIA 2

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    concepto de estructura est ligado a la tecnologa de fabricacin, mientras que la arquitectura es independiente de l, de tal manera que una arquitectura puede perpetuarse durante aos, mientras es muy extrao que una estructura dure demasiado tiempo. El primer ejemplo de familia de computadores fue el IBM 360. En lo que respecta al rendimiento del computador, en un principio eran las mejoras tecnolgicas las que aumentaban el rendimiento de los computadores. En la actualidad, es la mejora en las arquitecturas la que ha logrado un gran avance en el rendimiento. En esta direccin ha habido adelantos tan importantes como:

    La segmentacin - pipeline El paralelismo Los computadores RISC

    Conviene recordar que pueden existir muchas estructuras diferentes para implementar un conjunto de instrucciones pero, en definitiva, es el repertorio de instrucciones el factor principal que determina la razn coste/rendimiento . Antes de pasar al siguiente apartado quiero recalcar que la frontera entre arquitectura y estructura no est tan clara como puede parecer. De hecho, existen autores que consideran, que tanto lo que hemos definido como arquitectura, como lo que hemos definido como estructura, Para Baron y Higbie son arquitectura de computadores: Arquitectura de computadores es el diseo de computadores incluyendo su conjunto de instrucciones, sus componentes hardware y su organizacin de sistema. Existen dos partes esenciales en la arquitectura de computadores: la arquitectura del conjunto de instrucciones (ACI) y la arquitectura del sistema hardware (ASH). La ACI incluye las especificaciones que determinan cmo el programador de lenguaje mquina interacta con el computador. Un computador se ve generalmente en trminos de su ACI que determina sus caractersticas computacionales. En contraste, el ASH est relacionado con los principales subsistemas hardware del computador, incluyendo su unidad central de proceso, su sistema de almacenamiento, y su sistema de entrada/salida. El ASH incluye tanto diseo lgico como organizacin del flujo de datos de dichos subsistemas, por eso el ASH determina en gran medida la eficiencia de la mquina.

    ARQUITECTURA VON NEUMANN

    Las computadoras no son mas que sofisticados circuitos secuenciales. La mayora de las computadoras actuales siguen los mismos patrones de la Arquitectura de Von Neumann, aunque se haya progresado en cada uno de los niveles de arquitectura de la mquina.

    La Maquina de Von Neumann fue el primer avance de la arquitectura y apareci para superar la dificultad de programacin. Esta programacin se realizaba manualmente manipulando cables e interruptores. La solucin fue almacenar los programas en la memoria. La arquitectura a la que dio lugar consta de cuatro bloques bsicos:

    La memoria principal La unidad de control La unidad aritmtico lgica Los sistemas de entrada/salida.

  • GUIA 3

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    La memoria estaba formada por 1024 palabras (1 Kpalabras) de 40 bits. Cada palabra poda contener 2 instrucciones o un nmero entero de 39 bits.

    Las instrucciones tenan 8 bits para indicar el tipo de instruccin, y 12 bits para indicar una palabra de memoria.

    La unidad aritmtico-lgica tena un registro interno de 40 bits llamado Acumulador. Una instruccin tpica sumaba el contenido de una palabra de memoria al acumulador, o almacenaba el contenido del acumulador en una palabra de memoria.

    Esta mquina tenan las siguientes caractersticas que hoy pueden parecer obvias:

    La memoria era unidimensional, organizada como un vector de celdas del mismo tamao y de direcciones secuenciales

    Una misma memoria para instrucciones y datos

    No haba distincin explicita entre instrucciones y datos

    No haba especificacin explicita del tipo de datos

    Cada instruccin especificaba la direccin de la siguiente instruccin a ejecutar. Posteriormente se le aadi el concepto del Registro Contador de Programa, dando lugar a la ejecucin secuencial de las instrucciones, y a la inclusin de las instrucciones de salto para alterar el flujo de control

    Esta arquitectura es la que se mantiene hoy en da en la inmensa mayora de las mquinas de propsito general, en las que la Unidad de Control y la Unidad Aritmtico-Lgica se han integrado en la actual CPU.

    Datos

    MEMORIA SECUNDARIA

    MEMORIA PRINCIPAL

    (Datos e Instrucciones)

    UNIDAD DE CONTROL

    (UC)

    PROCESADOR CENTRAL (CPU)

    Datos

    UNIDAD ARITMTICO

    LOGICA (ALU)

    SALIDA ENTRADA Instrucciones

    Resultados o Datos de salida

    Datos e instrucciones

    Seales de control y de estado

  • GUIA 4

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    CLASIFICACION DE ARQUITECTURAS La clasificacin ms aceptada de los modelos de arquitectura es la que se debe a Flynn, la cual se realiza segn el nmero de instrucciones o datos implicados en cada ciclo de reloj. Es una organizacin realizada desde el punto de vista de la Estructura del Ordenador y los clasifica en:

    SISD SIMD MISD MIMD

    SISD ( Single Instruction Single Data ) Un nico procesador interpreta una nica secuencia de instrucciones para operar con los datos de una nica memoria

    Solo una instruccin solo un dato Es tpico el Von Neumann Una CPU que ejecuta una instruccin cada vez y busca o almacena un dato cada vez Es una arquitectura con un nico procesador

    SIMD ( Single Instruction - Mltiple Data ) Una nica instruccin controla la ejecucin simultnea de varias unidades de proceso. Cada unidad de proceso tiene una memoria asociada. Cada instruccin es ejecutada en cada procesador por un conjunto de datos diferente. Sistemas tpicos son los procesadores vectoriales y matriciales

    Solo una instruccin mltiples datos Una unidad de control Varias unidades de proceso Tpico de arrays de procesadores Se ejecuta la misma instruccin sobre datos diferentes Distribuyen el proceso sobre una gran cantidad de hw Operan concurrentemente sobre muchos datos Ejecutan el mismo clculo sobre todos los elementos La unidad de control es por si misma un computador de Von Neumann y se le llama UC porque

    esta diseada para controlar los procesadores Adems puede incluir computadores host que realizan tareas especificas como:

    Carga de programas Configuracin del array de elementos de proceso Supervisin de entrada/salida

    MISD ( Mltiple Instruction Simple Data ) Se transmite una secuencia de datos a un conjunto de procesadores. Cada procesador ejecutauna instruccin diferente sobre el mismo conjunto de datos. Nunca se ha implementado.

    Mltiples instrucciones y solo un dato Ejecucin de diferentes programas sobre el mismo datos Conocidos como arrays sistlicos

    MIMD ( Mltiple Instruction Multiple Data ) Conjunto de procesadores que ejecutan conjuntos de instrucciones diferentes sobre conjuntos de datos diferentes. Los procesadores son de carcter general.

    Mltiples instrucciones mltiples datos Distribuyen el procesamiento entre un n de procesadores independientes Distribucin de recursos, incluyendo la MP, entre los procesadores Cada procesador opera concurrentemente y en paralelo con el resto

  • GUIA 5

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Cada procesador ejecuta su propio programa Diferentes arquitecturas se diferencian por Diferente red de interconexin Diferentes procesadores Diferente estructura de direccionamiento de memoria Diferente control y estructura de sincronizacin Multiprocesadores : tienen memoria comn Multicomputadores : tienen memorias locales.

    Otra clasificacin desde el punto de vista de la Arquitectura Arquitectura CISC (Complex Instruction Set Computer) La utilizacin de lenguajes de alto nivel ha provocado un salto semntico debido a la diferencia que existe entre estos lenguajes y el lenguaje mquina que ejecuta un computador. El efecto inmediato de este salto es una creciente complejidad de los computadores y un tamao excesivo de los programas en lenguaje mquina lo que en ocasiones les haca ineficientes. Para reducir este salto semntico los diseadores optaron por incrementar la complejidad de la arquitectura de los computadores incluyendo tipos de datos complejos, decenas de modos de direccionamiento y grandes repertorio de instrucciones, incluyendo algunas que implementaban directamente sentencias complejas de los LAN. Arquitecturas RISC (Reduced Instruction Set Computer) Los estudios realizados por algunos investigadores sobre las caractersticas de ejecucin de programas en lenguaje mquina a partir de programas escritos en LAN daba como resultado que las instrucciones mquina que se ejecutan con mayor frecuencia dinmica son las de movimiento de datos, control de flujo, comparacin lgicas y aritmtica simple, representando estas ms del 90% de las instrucciones ejecutadas. Adems, los modos de direccionamiento simples representan ms del 75 % de los usados dinmicamente. Basndose en estos estudios surgen las arquitecturas RISC que reducen la complejidad de los computadores al implementar solo aquellas instrucciones ms usadas, y utilizar slo modos de direccionamiento sencillo, tipos de datos bsicos y gran nmero de registros que sirven para almacenar datos temporales. La arquitectura RISC es con toda probabilidad la principal aportacin a la arquitectura que se ha producido en los aos ochenta, debido a que a roto la tendencia evolutiva de las arquitecturas que cada vez se hacan ms complejas

  • GUIA 6

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    ESTRUCTURA BASICA DE LOS COMPUTADORES La estructura bsica de la mayora de los ordenadores actuales se representa mediante los siguientes elementos bsicos: La Unidad Central de Procesamiento, CPU La memoria principal Los subsistemas de E/S Los buses del sistema

    LA UNIDAD CENTRAL DE PROCESAMIENTO (CPU) La unidad central de procesamiento, conocida tambin como Procesador, es la encargada de controlar las operaciones de la computadora y realizar las funciones de procesamiento de datos. La funcin de la CPU es la de ejecutar una secuencia de instrucciones que estn almacenadas en la memoria principal de la computadora. Al disear un procesador se especifica un repertorio de instrucciones que ser capaz de realizar y que se conoce como conjunto de instrucciones. El procesador trabajar a manera de interprete decodificando las instrucciones para ser ejecutadas. Las funciones que realiza la CPU para ejecutar una instruccin son:

    Buscar instrucciones: El CPU debe leer instrucciones de la memoria. Interpretar instrucciones: La instruccin debe ser decodificada para determinar la accin a

    realizar. Buscar datos: La ejecucin de una instruccin posiblemente requiera de leer datos de la memoria

    o de algn mdulo de E/S. Procesar datos: La ejecucin de una instruccin posiblemente requiera desarrollar algunos

    clculos aritmticos o realizar operaciones lgicas con los datos. Escribir datos: El resultado de una ejecucin posiblemente requiera escribir datos en la memoria

    o en algn modulo de E/S. La CPU para realizar sus funciones se compone de varias partes:

    La Unidad de Control (UC): Controla el funcionamiento del CPU. La Unidad Lgica y Aritmtica (ULA): Ejecuta funciones de procesamiento de datos. Registros: Proveen almacenamiento interno al CPU Interconexiones: Permiten la comunicacin entre la UC, la ULA y los Registros.

    E/S

    MEMORIA

    BUS DE DATOS

    BUS DE DIRECCIONES

    BUS DE CONTROL

    CPU

    REGISTROS

    ULA

    UNIDAD DE CONTROL

  • GUIA 7

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    UNIDAD LOGICA ARITMTICA ULA

    Es la encargada de realizar todos los clculos aritmticos y lgicos. Una operacin bsica de todas las computadoras es la adicin o sustraccin de dos nmeros. Tales operaciones se proporcionan en el nivel de instrucciones de mquina. Se implantan, junto con las funciones lgicas AND, OR, NOT y EXOR en la ULA del CPU. Los operandos se le presentan a la ULA como salidas de dos registros del CPU, a travs de un bus. Por lo general, el resultado se enva a otro registro del CPU para que la lgica combinatoria termine con los clculos. Adems una operacin de la ULA es ms veloz que una operacin de acceso a memoria. Esto significa que en una instruccin en la que haya una operacin de la ULA, el operando que deba traerse de memoria no requerir mucho ms tiempo de ejecucin que una instruccin que slo traslada el contenido de una localidad de memoria a otra. En comparacin, las operaciones de multiplicacin y divisin son ms complejas que las de adicin y sustraccin. Por lo general, estas operaciones se incluyen en el conjunto bsico de instrucciones, sin embargo, sus tiempos de ejecucin pueden ser significativamente ms lentos que los de otras instrucciones tales como sumar, mover, etc. Esto se debe a que estn implantadas como una secuencia de pasos de adicin y sustraccin que realiza la ULA, controlada por un microprograma. En las computadoras de alto rendimiento, a menudo se utiliza hardware multiplicador y divisor para incrementar la velocidad de las operaciones aritmticas. Desde luego, siempre y cuando se cuente con las instrucciones de mquina de Suma y Sustraccin, ser posible suministrar operaciones tanto de multiplicacin como de divisin, mediante rutinas de software. Estas rutinas implantan bsicamente la multiplicacin como una secuencia de sumas y desplazamientos y, la divisin, como una secuencia de sustracciones y desplazamientos. Comparadas con las operaciones aritmticas, las operaciones lgicas son simples desde el punto de vista de la circuitera combinatoria. Slo requieren de que se realicen operaciones booleanas independientes en posiciones individuales de bits de los operandos. Como mencionamos anteriormente, la ULA es la parte de la computadora que se encarga de ejecutar operaciones aritmticas y lgicas a los datos. El resto de los componentes, unidad de control, registros, memoria, E/S, se encargan de llevar datos a la ULA para procesarlos y despus toman el resultado de regreso. REGISTROS

    Para ejecutar las instrucciones la CPU requiere de algn tipo de almacenamiento temporal. Esta pequea memoria interna, de alta velocidad, est constituida por registros, los cuales se pueden utilizar para el almacenamiento temporal de operandos o datos que se utilicen con frecuencia. Cada registro puede almacenar una palabra de dato. Los tiempos de acceso a los registros son generalmente de 5 a 10 veces ms rpidos que los de acceso a memoria. En la figura se muestra un esquema simplificado de las conexiones entre registros ULA y unidad de control en el CPU.

    ULA

    MAR

    MDR

    PC

    IR

    R0

    R1

    ...... Rn

    UNIDAD DECONTROL

    PSW

    BU

    S INT

    ER

    NO

    M E M O R I A

    CPU

    BUS DE DATOS

    BUS DE DIRECCIONES

    BUS DE CONTROL

  • GUIA 8

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Los registros de la CPU estn clasificados en dos categoras de acuerdo a sus funciones, aunque no existe una clara separacin entre las dos. Registros visibles al usuario. Permiten al programador de lenguaje de mquina o ensamblador

    minimizar las referencias a la memoria principal, cuando optimiza el uso de los registros. Registros de control y estado. Son utilizados por la unidad de control para controlar el

    funcionamiento de la CPU, y por programas privilegiados del sistema operativo para controlar la ejecucin de programas.

    (Antes mencionamos que no existe una clara separacin entre las dos categoras, por ejemplo aunque en la mayora de las mquinas el Contador de Programa(PC) no es visible al usuario, en algunas si lo es. REGISTROS VISIBLES AL USUARIO: Son aquellos que pueden ser referenciados por medio del lenguaje de mquina que ejecuta la CPU. Se pueden clasificar en las siguientes categoras: Registros de Propsito General: pueden ser asignados por el programador a una gran variedad de

    funciones. Puede contener el operando de cualquier instruccin. Registros de Datos: Se utilizan nicamente para almacenar datos, y no pueden utilizarse para el

    clculo de la direccin de un operando. REGISTROS DE DIRECCIONES Pueden ser de uso mas o menos general, o pueden estar dedicados a un modo particular de direccionamiento. Como ejemplo tenemos:

    Apuntadores de segmento: contiene la direccin de la base del segmento en una mquina con direccionamiento segmentado.

    Registros ndices: Utilizados para direccionamiento indexado, y pueden ser autoindexados.

    Apuntadores de Pila: Si existe un direccionamiento de pila visible al usuario, entonces la pila est en memoria y hay un registro dedicado que apunta al tope de esta.

    REGISTROS DE CODIGOS DE CONDICION (banderas(flags)) Son bits fijados por el hardware de la CPU como resultados de una operacin. Por ejemplo una operacin aritmtica puede producir un resultado positivo, negativo, nulo o con desbordamiento. Adems de almacenar el propio resultado en memoria, se obtiene tambin un cdigo de condicin, que puede ser consultado como parte de una bifurcacin condicional. Los bits de cdigos de condicin se renen en uno o mas registros. Normalmente forman parte del registro de control. Generalmente las mquinas permiten que estos bits se lean mediante referencias implcitas, pero no pueden ser alterados por el programador. En algunas mquinas, una llamada a una subrutina implica guardar el contenido de los registros visibles al usuario, para reestablecerlos al regreso. Esta tarea es realizada por el CPU como parte de la ejecucin de la llamada y del regreso. Esto permite que cada subrutina utilice los registros independientemente. En otras mquinas es responsabilidad del programador guardar y reestablecer los valores de los registros Al momento de disear los registros de un CPU hay varios puntos que hay que considerar. Uno muy importante es la especializacin, que trata de si deben utilizarse nicamente registros de propsito general o especializar su uso. Con el uso de registros especializados puede estar implcito en el cdigo de operacin el tipo de registro al que har referencia un operando. Este debe identificar nicamente un registro de un conjunto especializado, en lugar de uno de entre todos los registros. Esto por un lado ahorra bits, pero la especializacin limita la flexibilidad del programador. No existe una solucin nica en este punto, pero la tendencia es el uso de los registros especializados.

  • GUIA 9

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Otro punto es el Numero de Registros, ya sean de propsito general, de datos o de direcciones. Esto afecta el diseo del conjunto de instrucciones dado que ms registros requieren ms bits de operandos. Al parecer de 8 a 32 registros son opt5imos. Utilizar pocos registros produce ms referencias a la memoria; muchos registros no reducen notablemente el nmero de referencias a memoria. Sin embargo, existe un nuevo planteamiento, el cual encuentra ventajas en el uso de cientos de registros, y se encuentra en algunos sistemas RISC Un ltimo punto en el diseo es la Longitud de los Registros. Los registros que contienen direcciones deben ser lo suficientemente grandes para contener direcciones grandes. Los registros de datos deben ser capaces de almacenar valores de la mayora de los tipos de datos. Algunas mquinas permiten el uso de dos registros contiguos para almacenar valores de longitud doble. REGISTROS DE CONTROL Y ESTADO Hay una gran variedad de registros que son utilizados para controlar la operacin del CPU. La mayora de estos, en muchsimas mquinas, no son visibles al usuario. Algunos duden ser visibles a instrucciones de mquina realizadas en un modo de control o de sistema operativo. Por supuesto, existen diferentes organizaciones de registros y utilizan diferentes tecnologa. A continuacin se muestra una lista, razonablemente completa, de tipos de registros y una breve descripcin. Registros esenciales para la ejecucin de una instruccin: Registro de direccin de memoria MAR: Especifica la direccin de memoria a la que se est

    accediendo. Est conectado al bus de direccin. Registro de datos de memoria MDR: Contiene el valor a escribir en la memoria o el ltimos valor

    ledo de la memoria. Est conectado al bus de datos. Contador de Programa PC: Contiene la direccin de la prxima instruccin a captar. Registro de Instruccin IR: Almacena la instruccin que actualmente se est ejecutando MAR: Memory Address Register; MDR: Memory Data Register; PC:Program Counter; IR:Instruction Register El PC es actualizado por el CPU despus de cada bsqueda de instruccin, por lo que siempre apunta a la siguiente instruccin a ser ejecutada. Una instruccin de salto tambin modifica al PC. La instruccin buscada se coloca en el IR donde el cdigo de operacin y el operando son analizados. Los datos se intercambian utilizando MAR y MDR. Estos cuatro registros se utilizan para la transferencia de datos entre el CPU y la memoria. Dentro del CPU los datos son presentados a la ULA para procesarlos. La ULA debe tener acceso directo al MDR y a los registros visibles al usuario.

  • GUIA 10

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    En la figura se muestran los dos registros involucrados directamente con el acceso a memoria.

    Todos los diseos del CPU incluyen un registro, o conjunto de registros, conocido como palabra de estado del programa PSW (program status word). Frecuentemente el PSW contiene cdigos de condicin y otra informacin de estado. Entre los campos comunes se incluyen los siguientes:

    Signo: Contiene el bit de signo resultante en la ltima operacin aritmtica. Cero: Puesto a 1 cuando el resultado es cero. Acarreo: Puesto a 1 si la operacin da como resultado un acarreo del bit ms significativo. Igual: Puesto en 1 si el resultado de una comparacin lgica es la igualdad. Overflow: Utilizado para indicar un desbordamiento en una operacin aritmtica. Interrupt enable disable: Utilizada para habilitar o deshabilitar las interrupciones.

    Supervisor: Indica cuando el CPU est operando en modo supervisor o en modo usuario. Ciertas instrucciones y reas de memoria solo pueden accesarse en modo supervisor

    0 1 0 1 0 1 1 1

    DECOD

    UNIDAD DE CONTROL

    0 1 0 1 0 1 1 1 0 0 1 1 0

    CPU

    MDR MAR

    Bus de direcciones

    Bus de datos

    MEMORIA

  • GUIA 11

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    UNIDAD DE CONTROL UC. La funcin de una computadora es la de ejecutar programas. Estos programas estn compuestos de una serie de instrucciones, las cuales son ejecutadas una cada vez. Es decir, que la ejecucin de un programa consiste en realizar una secuencia de ciclos de instruccin, con una instruccin de mquina por ciclo. La funcin de la unidad de control de un computador es la bsqueda de las instrucciones en memoria, su interpretacin y la generacin en los instantes adecuados, de las seales de control necesarias para ejecutar la operacin especificada por cada instruccin. En este proceso se distinguen dos aspectos fundamentales:

    El secuenciamiento de las instrucciones. La interpretacin de las instrucciones.

    SECUENCIAMIENTO El secuenciamiento de las instrucciones es el proceso por el cual las instrucciones de un programa van siendo seleccionadas para su ejecucin en un orden determinado. La mayor parte de las instrucciones de un programa tienen una sola sucesora, por lo que resulta natural almacenadas en posiciones consecutivas de memoria. Para su secuenciamiento, se utiliza un registro denominado contador de programa (CP). En general, si la instruccin i necesita p palabras de memoria, el incremento del CP para pasar a la instruccin i+1 ser CP CP+p. Las instrucciones de ruptura son las que permiten la seleccin de un camino entre varios posibles. Cuando es necesario transferir el control del programa principal a una subrutina o una interrupcin, lo que se hace es guardar el contenido del CP (que ser la direccin de la siguiente instruccin del programa principal) en algn registro de la CPU o en una posicin determinada de la memoria principal llamada direccin de retorno. Despus se carga en el CP la direccin en la que se encuentra la instruccin que arranca el subprograma, que se ejecuta hasta que finaliza, volviendo luego el control al programa principal recuperando el contenido del CP de la direccin de retorno. INTERPRETACIN: Es el proceso por el cual la unidad de control obtiene las instrucciones almacenadas en memoria y las ejecuta. Esto se realiza en lo que llamaremos ciclo de instruccin. CICLO DE INSTRUCCIN La ejecucin de un programa consiste en la ejecucin secuencial de sus instrucciones. Cada instruccin se ejecuta durante un ciclo de instruccin que est compuesto de subciclos ms pequeos (bsqueda, direccionamiento indirecto, ejecucin e interrupcin) La realizacin de cada uno de esos subciclos implica una o ms operaciones ms pequeas llamadas microoperaciones.

    Ciclo de captacin Ciclo de decodificacin Ciclo de ejecucin

    CICLO DE CAPTACIN Las instrucciones que forman un programa se almacenan en forma secuencial en la memoria. Para ejecutar este programa la CPU trae una instruccin a la vez de la memoria y realiza las funciones especificadas. A este proceso se le conoce como ciclo de captacin y ocurre al comienzo de cada ciclo

  • GUIA 12

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    de instruccin produciendo que una instruccin sea obtenida de la memoria. Se utilizan los cuatro registros siguientes: Registro de direccin de memoria MAR Registro de datos de memoria MDR. Contador de Programa PC Registro de Instruccin IR (su descripcin se mencion en la seccin correspondiente a los registros) Para explicar las microoperaciones del ciclo de captacin consideremos los eventos que se van sucediendo, y su efecto sobre los registros del CPU. El primer paso consiste en traer de la memoria la instruccin a ejecutar. Al comienzo del ciclo de captacin la direccin de la prxima instruccin a ejecutarse se encuentra almacenada en el contador de programa (PC). Entonces debemos colocar el contenido del PC en el registro de direccin de memoria(MAR), ya que este es el registro que est conectado a las lneas de direccin del bus del sistema. El segundo paso consiste en traer la instruccin. Para esto la direccin (contenida en el MAR) se coloca en el bus de direcciones y la unidad de control emite una seal de LECTURA en el bus de control. El resultado aparece en el bus de datos y se copia en el registro de datos de memoria (MDR). Es necesario adems actualizar el valor del PC para que contenga la direccin de la siguiente instruccin. Esto se realiza incrementando el PC en I (longitud de la instruccin), para que est preparado para la prxima instruccin. Dado que las dos operaciones no interfieren entre s, se pueden realizar simultneamente para ahorrar tiempo. El tercer paso consiste en transferir el dato almacenado en MDR al registro de instruccin (IR). Esto libera MDR para su posible uso durante un ciclo indirecto. De esta forma, el ciclo de captacin consta de 4 microoperaciones que se realizan en 3 pasos. Las secuencias de pasos en el ciclo de bsqueda pueden representarse simblicamente de la siguiente forma: t1: MAR [PC] Transferir el contenido de PC a MAR t2: MDR Memoria Transferir el contenido de la posicin de memoria sealada por MAR a MDR. PC [PC] + I Incrementar en I el contenido de PC t3: IR MDR Transferir el contenido de MDR a IR. ti representa unidades sucesivas de tiempo y los corchetes [ ] se utilizan para denotar el contenido de. CICLO DE DECODIFICACION Una vez que se tiene la microinstruccin, el siguiente consiste en analizar los bits correspondientes al codigo de operacin de la instruccin y determinar las operaciones a ejecutarse en el ciclo de ejecucin. CICLO DE EJECUCIN El ciclo de ejecucin no tiene una secuencia fija de operaciones, sino que para cada cdigo de operacin y modo de direccionamiento hay una secuencia distinta. De forma general se efectuan las siguientes operaciones:

    Calculo de las direcciones efectivas de los operandos (dependen del modo de direccionamiento) Lectura de los operandos (se leen de la memoria principal y se almacenan en registros a la

    entrada de la Unidad Aritmtico lgica) Operacin con los datos (en la Unidad Aritmtico Lgica) Almacenamiento de operando (escritura del resultado en la memoria)

    Al terminar con el ciclo de instruccin se sigue el mismo procedimiento con la instruccin siguiente.

  • GUIA 13

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    NOTAS ADICIONALES Algunos autores especifican un ciclo indirecto que hemos considerado como parte del ciclo de ejecucin CICLO INDIRECTO Una vez que se tiene la microinstruccin, el siguiente paso consiste en captar los operandos. Supongamos que el formato de instruccin requiere de un direccionamiento directo o indirecto. Si la instruccin especifica un direccionamiento indirecto (consiste en obtener la direccin almacenada en otra localidad de memoria), entonces se debe realizar un Ciclo Indirecto. Esto incluye las siguientes microoperaciones: t1: MAR [IR(Direccin)] t2: MDR Memoria t3: IR(direccin) [MDR(Direccin)] El campo de direccin en la instruccin se transfiere a MAR. Este se utiliza despus para captar la direccin del operando. Por ltimo, el campo de direccin de IR se actualiza con el contenido de MDR, de modo que contenga una direccin directa en lugar de una indirecta. IR tiene ahora el mismo estado que si no se hubiera usado direccionamiento indirecto, y est listo para el ciclo de ejecucin. CICLO DE INTERRUPCION Cuando termina el ciclo de ejecucin, se realiza una comprobacin para determinar si se ha habilitado alguna interrupcin. Si es as, entonces antes de captar la siguiente instruccin tiene lugar el ciclo de interrupcin. La secuencia es la siguiente: t1: MDR [PC] t2: MAR Direccin de regreso PC Direccin de rutina t3: Memoria [MDR] Aqu el contenido de PC se almacena en el MDR para que cuando la rutina termine de ejecutarse, el CPU sepa en donde debe continuar. Se coloca en el MAR la direccin donde se almacenar el contenido de PC y la direccin de la rutina a ejecutar se almacena en el PC. Posteriormente la unidad de control especifica que se debe realizar una escritura para almacenar en memoria el dato contenido en MDR.

  • GUIA 14

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    INSTRUCCIONES Las instrucciones maquinas son las acciones elementales que puede ejecutar un computador. Una accin compleja deber codificarse como una secuencia de instrucciones mquina en lo que se denomina un programa. La arquitectura de un procesador entendida como el conjunto de recursos operativos disponibles por un programador a nivel de lenguaje maquina queda definida por el repertorio de instrucciones ISA (Instruction Set Architecture). En general, una instruccin bsica que el computador realiza sobre unos datos ubicados en la memoria o en los registros de la maquina y a los que accede utilizando un modo de direccionamiento. Por consiguiente, la arquitectura ISA de un procesador viene determinada por los siguientes factores.

    Tipos de datos y formatos que pueden manejar las instrucciones: naturales, enteros, reales, caracteres, etc.

    Modos de direccionamiento de los datos ubicados en la memoria: inmediato, directo, indirecto, etc. Estos dos factores son determinantes para la implantacin eficiente de las estructuras complejas de datos de un lenguaje de alto nivel

    Conjunto bsico de operaciones que se pueden realizar sobre los datos: suma, resta, etc. FORMATO DE LAS INSTRUCCIONES El formato de una instruccin mquina define la disposicin y el reparto de sus bits entre los componentes de la instruccin. El formato de una instruccin debe incluir el cdigo e, implcita o explcitamente, cero o mas operandos. Los operandos son datos que estn en alguno de los registros internos de la CPU, en la memoria principal o en algn controlador de entrada/salida. A cada operando se accede mediante uno de los distintos modos de direccionamiento que veremos posteriormente. A la hora de disear un juego de instrucciones, se deben tener en cuenta ciertas consideraciones sobre dos cuestiones bsicas: la longitud de la instruccin y el reparto de los bits que la componen. LONGITUD DE LAS INSTRUCCIONES Hay un claro compromiso entre el deseo de un rico y variado repertorio de instrucciones, y la necesidad de ahorrar espacio. Los programadores quieren muchos cdigos de operacin distintos (requieren muchos bits en el campo de cdigo de operacin) para disponer de operaciones que se ajusten lo ms posible a sus necesidades, y as escribir programas ms cortos. De igual manera, cuanto ms modos de direccionamiento estn disponibles, ms flexibilidad tendrn para manejar estructuras de datos complejas, como tablas o matrices. Por otro lado, puesto que cada vez se dispone de mayor cantidad de memoria, se requieren muchos bits para hacer referencia a un gran espacio de direccionamiento. Pero claro, una instruccin que ofrezca todo esto puede ocupar posiblemente el doble de bits que otra similar que no ofrezca tanta flexibilidad. Est claro que una instruccin larga ocupa ms espacio en memoria que una corta, se tarda ms tiempo en llevarla de memoria a la CPU, y se tarda ms tiempo en decodificarla. Se debe tener en cuenta que el ancho del bus de datos sea mltiplo de la longitud de un carcter, para evitar desaprovechar el espacio de almacenamiento. Y esta restriccin afecta a la longitud de las instrucciones, que deben ocupar un nmero entero de palabras, o en una palabra debe caber un nmero entero de instrucciones. Por esto los tamaos de las instrucciones suelen ser mltiplos de 8. Un diseo con caracteres de 9 bits, instrucciones de 12 y palabras de 31 bits sera una catstrofe. REPARTO DE LOS BITS Aqu el compromiso est en el reparto de los bits disponibles entre el nmero de cdigos de operacin y la versatilidad de los operandos. Esta versatilidad genera las siguientes preguntas: cuntos operandos hay en una instruccin? de cuantos modos de direccionamiento se dispone? dnde estn los operandos, en registro o en memoria? Cuntos registros hay? Las informaciones relativas a los factores mencionados anteriormente se codifican en cada una de las instrucciones siguiendo un formato preestablecido. El formato determinar la longitud en bits de las instrucciones y los campos que codifican el valor de los factores citados.

  • GUIA 15

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    En general una instruccin se compone de los siguientes campos del programa.

    Cdigo de operacin (CO) Operandos fuentes (OP1,OP2,...) Operando destino (Opd) Instruccin siguiente (IS)

    El cdigo de operacin determina la operacin que se realiza sobre los operandos 1,2,... El resultado se deja en el Operando Destino. Lo normal es que el numero de operandos fuentes de un repertorio no pase de 2. La direccin de la instruccin siguiente IS queda implcita en todas las instrucciones (se trata de la instruccin siguiente del programa) salvo en las instrucciones de ruptura condicional o incondicional de secuencia. Instrucciones con 3 operandos:

    Constan de un campo de cdigo de operacin y 3 operandos que corresponden a las direcciones de las dos entradas y la salida de la operacin.

    Presenta la mxima flexibilidad pero ocupa muchos bits si los operandos estn en memoria.

    Ejemplo ADD B, C, A : A B+C

    (A, B, C son direcciones de memoria)

    Instrucciones con 2 operandos:

    Como la de 3 operandos, solo que en una de las direcciones se almacena tambin el resultado. Con esto se reduce el tamao de la instruccin pero se pierde uno de los operandos. Ejemplo: ADD B, C : B B+C

    CO OP1 OP2 ....... OPd IS

    CO OP1(fuente1) OP2(fuente2) OP3(destino)

    REG B

    CO OP1 OP2 OP3 ULA

    ACUMULADOR

    REG A

    REGISTRO DE INSTRUCCION

    REG B

    CO OP1 OP2 ULA

    ACUMULADOR

    REG A

    REGISTRO DE INSTRUCCION

    CO OP1(fuente1) OP2(fuente2)

  • GUIA 16

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Instrucciones con 1 operando:

    Supone que fuente1 y destino es un registro predeterminado (acumulador). Se pierde un operando fuente.

    Ejemplo: ADD B :

    Acumulador [Acumulador] + B

    Instrucciones con 0 operando:

    Se trata de computadores que trabajan sobre una pila

    Ejemplo: ADD : Tope de pila [ Tope de pila] + [Tope de pila -1]

    REG B

    CO OP1 ULA

    ACUMULADOR

    REG A

    REGISTRO DE INSTRUCCION

    CO OP1(fuente1)

    CO

  • GUIA 17

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    METODOS DE DIRECCIONAMIENTO Como las instrucciones del programa y los datos se almacenan en memoria central antes de ejecutar el programa es fundamental que el procesador disponga de mecanismos para acceder tanto a las posiciones de memoria ocupadas por las instrucciones y las posiciones de memoria ocupadas por los datos. En el capitulo anterior se ha escrito la memoria como un conjunto de posiciones de memoria cada una conteniendo una palabra de memoria. La manera de acceder a memoria depender de como se utilizan los buses del sistema tanto de direcciones como de datos para transportar las direcciones y los contenidos de memoria correspondientes tanto a datos como a instrucciones. En la prctica esto no es tan simple: -Las instrucciones ocupan mas de una palabra de memoria -Las direcciones transferidas a travs del bus de direcciones no son siempre direcciones fsicas. Existen diferentes tcnicas para averiguar las direcciones fsicas de la informacin en memoria. Se conocen como modos de direccionamiento. Estos modos de direccionamiento, que son transparentes para todos menos para los programadores de lenguaje ensamblador, estn diseadas para facilitar el acceso a los datos o a grupos de datos en memoria. No todos los procesadores implementan todos los modos de direccionamiento. Escribir un compilador para un procesador (o lo que es lo mismo dispone de un medio para pasar un algoritmo de alto nivel a las instrucciones bsicas de su repertorio) suele resultar ms fcil si estn implementados los siguientes modos de direccionamiento, que permitan el acceso a los operandos de las instrucciones o a las instrucciones mismas. Direccionamiento Inmediato

    La forma ms simple de indicar un operando es incluyndolo en la propia instruccin. Ya que las instrucciones no son modificables, este es el modo que se utiliza en operaciones con constantes. Si la constante es un valor numrico, se almacena en complemento a dos. La ventaja del direccionamiento inmediato es que no se requieren referencias adicionales a memoria para obtener el operando, ahorrando por lo tanto espacio y tiempo. El inconveniente es que el espacio reservado para este operando suele estar restringido y suele ser menor que el tamao de la palabra, por lo que en algunos procesadores solamente se utiliza para constantes de valores pequeos. Direccionamiento Directo

    Otra forma muy simple de hacer referencia a un operando es indicando su direccin en memoria principal, y solamente requiere una referencia adicional a memoria para obtener un operando. Es el modo de direccionamiento comn para las variables globales de los programas. La instruccin siempre accesar a la misma localidad de memoria exactamente. Si bien el valor contenido en ella puede cambiar, la direccin no puede alterarse.

    CO OPERANDO

    operando

    CO A MEMORIA

    A

    operando

  • GUIA 18

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Direccionamiento a Registro

    Similar al direccionamiento directo, pero en este caso, el campo de direccin se refiere a uno de los registros generales del procesador en lugar de una posicin de memoria. Las ventajas que tiene son que solo necesita 3 0 4 bits para indicar uno de los registros generales, y que no requiere referencias adicionales a memoria. El inconveniente es que no se suele disponer de muchos registros, aunque con el advenimiento de las maquinas RISC, la tendencia es a ir incrementando su nmero. Se utiliza para guardar valores temporales en la evaluacin de expresiones, o para mantener en registros algunas variables que se referencian muy a menudo. Direccionamiento Indirecto

    En este modo se hace referencia a una palabra de memoria principal en la que se encuentra la direccin del operando. Con una indireccin se requieren dos accesos adicionales a memoria para obtener el operando. Se utiliza cuando la direccin de las variables no se conoce en el tiempo de compilacin, sino que es durante la ejecucin del programa cuando se calcula la direccin del operando y se guarda sta en memoria (o en un registro como se ve en el siguiente modo).

    Direccionamiento Indirecto por Registro

    En este mtodo, el operando hace referencia a un registro general en el que se encuentra la direccin del dato. Cuando una direccin se usa de esta manera, se llama apuntador. Una gran ventaja del direccionamiento indirecto por registro es que puede hacer referencias a la memoria sin pagar el precio de tener una direccin de memoria completa en la instruccin.

    Direccionamiento Indexado

    En este modo para formar la direccin del dato se utilizan un registro ms un desplazamiento que viene explcitamente en el campo de operando. Direccin del operando es igual al contenido del registro + una constante.

    CO R

    MEMORIA

    A

    operando

    operando

    CO R REGISTROS

    R

    operando

    CO R

    R

    operando

    MEMORIA

    operando

    operando

    REGISTROS

    CO 5

    R

    operando

    MEMORIA

    operando

    operando

    REGISTROS

    R

    +

  • GUIA 19

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    SISTEMAS DE MEMORIA La memoria es un medio fsico capaz de almacenar informacin (programas y datos) de forma temporal o permanente. Sin memoria no puede haber computadoras como las conocemos ahora. Aunque conceptualmente parezcan sencillas, presentan una gran variedad de tipos, tecnologa, estructura, prestaciones y costo. Ninguna tecnologa es ptima para satisfacer todas las necesidades de un computador por lo existe una jerarqua de subsistemas de memoria, algunos directamente accesibles por el procesador (internos) y otros accesibles mediante mdulos de entrada/salida (externos). Examinaremos las caractersticas claves de las memorias y luego analizaremos el subsistema de memoria principal. CARACTERISTICAS DE LOS SISTEMAS DE MEMORIA CONCEPTOS BASICOS Y TERMINOLOGIA. Con el el fin de diferenciar entre las diferentes memorias, es necesario conocer cuales son sus caractersticas principales, y a que se refiere cada una de ellas. Las caractersticas que se consideran son localizacin, capacidad, unidad de transferencia, mtodo de acceso, desempeo y tipo. Estas caractersticas se describen a continuacin. Localizacin: Segn su localizacin existen tres grandes grupos:

    Memoria interna del procesador: la utiliza la CPU como elemento de almacenamiento temporal de instrucciones y datos, y consta de un pequeo conjunto de registros de alta velocidad.

    Memoria Principal: es una memoria relativamente grande y rpida utilizada para el almacenamiento de los programas y sus correspondientes datos, siendo la tecnologa ms empleada la de circuito integrado.

    Memoria externa o secundaria: son dispositivos perifricos de almacenamiento accesible a la CPU a travs de controladores de E/S. Suele ser ms grande y ms lenta que la memoria central, y se utiliza fundamentalmente para el almacenamiento de programas y conjuntos de datos que no estn siendo utilizados continuamente por la CPU.

    Jerarqua: Las restricciones de diseo de la memoria de un computador se resumen en tres puntos: Capacidad, velocidad y costo.

    Por una tenemos que es importante disponer de una gran cantidad de memoria. Para facilitar la ejecucin de programas que son grandes o que trabajan con una gran cantidad de datos.

    Por otra parte tenemos que la velocidad de ejecucin de los programas es muy dependiente de la velocidad a la que se pueden transferir los datos entre la CPU y la memoria. Por esto, idealmente, la memoria debera ser rpida, grande y barata. Como cabria esperar, hay un compromiso entre estas tres caractersticas de la memoria que mantienen las siguientes relaciones:

    A menor tiempo de acceso mayor costo por bit. A mayor capacidad menor costo por bit. A mayor capacidad mayor tiempo de acceso.

  • GUIA 20

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    De cara al diseador el dilema est claro; le gustara disponer de una tecnologa de memoria que le proporcionara una gran capacidad, tanto porque se necesita cantidad de memoria, como porque el costo por bit es pequeo. Sin embargo, para conseguir buen rendimiento y velocidad se necesitan memorias de rpido acceso, que son de poca capacidad y ms caras. La jerarqua de memorias se emplea para solucionar las diferentes necesidades que tienen cada tipo de memoria. Una jerarqua tpica es la siguiente:

    A medida que se va de arriba hacia abajo, disminuye el costo por bit, aumenta la capacidad, aumenta el tiempo de acceso y disminuye la frecuencia de acceso a la memora por parte de la CPU.

    La clave del xito de la jerarqua es esta ltima, la decreciente frecuencia de acceso. Esto simplemente quiere decir que no se accede a todos los datos con la misma frecuencia; obviamente se accede ms a los datos del programa en ejecucin que a los de uno que no se ejecuta desde hace un ao; y de igual manera, en un momento dado se accede ms a los datos de una expresin que se est evaluando en ese preciso instante que a otros datos del programa.

    En lugar de decidirnos por un solo tipo de tecnologa o un nico tipo de memoria, lo que hay que hacer es construir una estructura con una jerarqua de memoria de manera de situar en los niveles superiores los datos o instrucciones que se necesitan ms frecuentemente. Los pocos datos con los que se est ejecutando la instruccin en curso estn en los registros; los datos de las ltimas instrucciones, en la memoria cach, el resto de los datos del programa en ejecucin estarn repartido entre la memoria principal y secundaria de acceso rpido(discos magnticos); los programas o datos que no se estn ejecutando se guardan en memorias secundarias masivas de mayor tiempo de acceso, como la cinta magntica y el disco ptico, La CPU y el sistema operativo se encargarn de ir llevando y trayendo los datos de las memorias lentas a las rpidas y viceversa, a medida que se vayan referenciando los distintos datos o programas. Capacidad: forma de especificar cuantos bits se pueden almacenar un dispositivo de memoria particular o en un sistema de memoria completo. Para ilustrar esto, suponga que se tiene una memoria que puede almacenar 4096 palabras de 20 bits. Esto representa una capacidad total de 81.920 bits. Tambin podramos expresar esta capacidad de la memoria como 4096 x 20. Cuando se expresa de esta manera, el primer numero representa el nmero de palabras y el segundo es el tamao de la palabra (numero de bits por palabra). El nmero de palabras contenidas en una memoria , a menudo es un mltiplo de 1024. Es comn utilizar la designacin 1K (kilo) para representar 210 = 1024 cuando nos referimos a la capacidad de la memoria. Por tanto, una memoria que tiene una capacidad de almacenamiento de 4K x 20, es en realidad una memoria de 4096 x 20. Tambin puede venir expresada en bits o en bytes (1 byte = 8 bits). El desarrollo de memoria grande ha dado origen a otras designaciones que son el Mega, el Giga y el Tera. 1 K = 210 = 1024 1 M = 220 = 1024 K 1 G = 230 = 1024 M 1 T = 240 = 1024 G As un circuito integrado de memoria que se especifica como 2K x 8, tendr una capacidad de 2048 X 8 = 16.384 bits o, lo que es lo mismo, 2048 bytes ( 2 Kbytes)

    REGISTROS CPU

    MEMORIA CACH

    MEMORIA PRINCIPAL

    DISCOS MAGNETICOS

    CINTAS MAGNETICAS

  • GUIA 21

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Direccin o ubicacin. Cada celda de memoria es asociada unvocamente a una direccin, de tal manera que mediante esa direccin se puede acceder a ella para escribir o leer un dato. No se debe confundir el espacio de direccionamiento de un procesador con la cantidad de memoria disponible. El espacio de direccionamiento viene impuesto por el nmero de hilos, n , del bus de direcciones, de tal manera que el espacio de direccionamiento de un procesador es 2n unidades direccionables, con lo que su rango de direcciones va desde 0 hasta 2n 1. La cantidad de memoria de un ordenador se corresponde solamente con la memoria realmente instalada. El mximo de memoria que se puede instalar es 2n. Palabra: Es la unidad comn de organizacin de la memoria. Su tamao viene determinado por el tamao de los registros internos de la CPU. El tamao de las palabras en las computadoras modernas vara comnmente de 4 a 64 bits, segn la dimensin de la computadora. Byte: Grupo de 8 bits Unidad direccionable: En muchos sistemas, la unidad direccionable es la palabra, sin embargo, algunos de ellos permiten direccionar a nivel de byte. Unidad de transferencia: Para la memoria principal es el numero de bits que se leen o escriben en memoria a la vez. Viene impuesto por el numero de hilos del bus de datos. No tiene por qu coincidir con una palabra o con una unidad direccionable. Mtodos de acceso. Se distinguen 4 tipos:

    Acceso Aleatorio: cuando puede accederse a las informaciones almacenadas en la memoria en cualquier orden, siendo el tiempo de acceso constante e independiente de la posicin donde est localizada la informacin. La localizacin fsica real de la palabra.

    Acceso Secuencial solamente se puede acceder a una informacin almacenada mediante una secuencia lineal. Por tanto, el tiempo de acceso es variable y depende de la posicin donde est almacenada la informacin.

    Acceso Directo: Incorpora un mecanismo de lectura/escritura compartido. Sin embargo, los bloques o registros individuales tienen una direccin nica, que se basa en su posicin fsica. El tiempo de acceso es variable. Un ejemplo clsico son las unidades de disco

    Acceso Asociativo: son tambin de acceso aleatorio, diferencindose en que no se pregunta por el contenido de una direccin, sino que se pregunta si existe una posicin de memoria que contiene una palabra determinada. La ventaja fundamental es que dividiendo la palabra en campos, se puede asociar un campo a una regin concreta de la memoria, haciendo la bsqueda ms rpida. Una palabra es recuperada basndose en una porcin de su contenido en lugar de su direccin. Cada posicin tiene su propio mecanismo de recuperacin que es constante e independiente de la posicin. Las memorias cach a veces emplean este mtodo.

    Desempeo: para medir el rendimiento de velocidad se utilizan los tres parmetros siguientes:

  • GUIA 22

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Tiempo de acceso (tA): Para las memorias de acceso aleatorio, es el tiempo que toma realizar una operacin de lectura o escritura. Para las no aleatorias es el tiempo que tarda el mecanismo de lectura/escritura en posicionarse en la localidad deseada.

    Tiempo de Ciclo de memoria (tC): es el tiempo mnimo entre dos lecturas consecutivas. Velocidad de transferencia (fA): es la velocidad a la que se pueden transferir datos a o

    desde una unidad de memoria. Para las memorias de acceso aleatorio coincide con el inverso del tiempo de ciclo.

    Tipos fsicos: Existe una gran variedad de tipos fsicos de memoria. Los tres ms utilizados son:

    Memorias de Semiconductor como memoria principal Memorias Magnticas como memoria secundaria Memorias pticas, tambin como memoria secundaria

    Caractersticas fsicas: Alterabilidad: Las memorias cuyo contenido no puede ser modificado se denominan memorias de slo lectura o memorias ROM, y las que pueden realizar operaciones de lectura y escritura se llaman memorias de lectura/escritura.

    Permanencia de la informacin: Hay tres caractersticas que pueden redundar en la destruccin de la informacin:

    Lectura destructiva: las operaciones de lectura ocasionan la destruccin de la informacin.

    Volatilidad : prdida de la informacin ante el fallo de corriente. Almacenamiento estatico/dinmico: una memoria es estatica si la informacin que contiene no

    vara con el tiempo y es dinmica si la informacin se va perdiendo por lo que hay que refrescarla para evitar su prdida.

  • GUIA 23

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    MEMORIA PRINCIPAL

    Aunque la CPU dispone de una memoria interna (los registros), sta es demasiado pequea como para albergar solamente la instruccin a ejecutar , sus operandos y poco ms. Por eso es necesario disponer de un sistema de memoria externa suficientemente grande. Para ello se cuenta con la Memoria Principal que hoy en da est construida a base de semiconductores y estn formadas por una serie de celdas que contienen datos.

    Hay diversos tipos de memorias de semiconductor, y tambin varios criterios de clasificacin. Uno de estos criterios puede ser el cmo se referencia cada una de las celdas de datos de la memoria. Segn este criterio hay dos tipos de memorias: Asociativas: esto es seleccionadle por el contenido Convencionales: seleccionables por la direccin de la celda Las memorias asociativas son las que utiliza la memoria cach. Por su parte las convencionales tienen distintos usos dependiendo de su tecnologa, y podemos encontrarlos memoria RAM, ROM, PROM, EPROM, Flash y EEPROM. Entre todas estas, la que suele ocupar la mayor parte del mapa de memoria principal es la memoria RAM, es decir, memoria voltil de acceso directo de lectura/escritura. La memoria RAM a su vez admite distintas tecnologas, como las memorias estticas (ms rpidas y que suelen emplearse para las memorias cach) y las dinmicas (ms lentas y utilizadas para la memoria principal), pero no vamos a bajar a este nivel, y nos ocuparemos solo de las caractersticas y conexiones de los mdulos de memoria RAM y ROM en general. Los mdulos de memoria ROM los consideraremos con las mismas caractersticas que la memoria Ram, excepto la posibilidad de escribir en ella. Aunque un mapa de memoria principal puede estar formado por distintos tipos de memoria, lo ms frecuente es encontrar simplemente memoria RAM y ROM (o alguna variedad), donde la RAM ocupa la inmensa mayora del espacio de direcciones. En la memoria ROM de los ordenadores es donde se encuentra el programa inicial de arranque (IPL) y un conjunto de rutinas bsicas de entrada/salida. Con ayuda de este programa se arranca el mecanismo de carga del sistema operativo de cada ordenador. ORGANIZACION

    Sabemos que la memoria est compuesta por bits, y el elemento bsico de una memoria semiconductora es la celda binaria de almacenamiento, capaz de contener un bit de informacin.

    Pero un bit resulta insuficiente como unidad lgica de almacenamiento por lo que se procesan en grupos de un tamao predefinido llamado palabra. El nmero de celdas en cada palabra se denomina longitud de palabra. A cada una se le asocia una direccin que determina la localidad en la que se encuentra la palabra.

    En la figura se muestra como organizar de varias formas distintas una memoria de 96 bits.

    0123456789

    1011

    01234567

    012345

    16 bits

    12 bits

    8 bits

  • GUIA 24

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Aunque el nmero de bits por celda ha variado mucho, hoy da casi todos los fabricantes de ordenadores de propsito general han estandarizado el grupo de 8 bits, llamado byte. Un byte es capaz de almacenar datos tale como caracteres, pero resulta insuficiente para manejar nmeros de cierta magnitud. Por esto los bytes se agrupan a su vez en palabras. El tamao de una palabra viene determinado por el ancho de los registros generales de la CPU, por lo que un procesador con registros de 32 bits, tiene una palabra de 32 bits. Esto quiere decir que se pueden hacer operaciones con datos de hasta 32 bits (en este caso). EL MAPA DE MEMORIA

    Los ordenadores personales convencionales suelen contar actualmente con un vasto espacio de direccionamiento, pero no suele ser necesario llenar todo este espacio de direccionamiento con los chips de memoria correspondiente. Por otra parte, tambin resulta normal contar con varios tipos de memoria. La mayor parte es RAM, que suele comenzar en las direcciones bajas, un poco de ROM que suele estar en las direcciones mas altas de la memoria. En algunos sistemas tambin se puede contar con una pequea cantidad de EEPROM que puede estar situada en cualquier parte del hueco entre la RAM y la ROM.

    As, nos encontramos con que el espacio de direccionamiento est formado por varias zonas o rango de direcciones en las que hay distintos tipos de memoria y huecos en los que no hay instalada ningn tipo de memoria. El Mapa de Direcciones representa la distribucin del espacio de direccionamiento de una mquina entre los distintos tipos de memoria instalados.

    CHIPS DE MEMORIA

    Como otros circuitos integrados, las memorias semiconductoras vienen en chips encapsulados. Cada chip contiene una matriz de celdas de memoria. Supongamos por ejemplo que tenemos una pastilla de memoria RAM de 1 Mbit x 8. Veamos la interfaz que nos ofrece con el mundo exterior.

    Pines de direccion: A0-A19. Puesto que tiene un espacio de direccionamiento de 1 Mega( 1.048.576 direcciones) necesita 20 pines para poder seleccionar la celda deseada, pues 220 =1.048.576. Estas son seales de entrada. Pines de datos: D0-D7. Cada celda direccionada es de un byte (8 bits), luego necesita 8 lneas. Como es una RAM, se puede leer o escribir en ella, por lo que estas patas son de entrada/salida, dependiendo de si la operacin es escritura o lectura. Seales de lectura/escritura: OE y WE.: Cuando se desea realizar una operacin de lectura, adems de indicar la direccin correspondiente en los pines de direccin, debe activarse la seal OE(Output Enable) Si lo que se desea es una operacin de escritura, debe activarse la seal WE (Write Enable). Obviamente, estas seales son mutuamente excluyentes. Selector de chip: CS. Un computador est compuesto por varios chips de memoria a los que llegan las seales de direccin que vienen de la CPU. Sin embargo, en cada operacin concreta de lectura/escritura no debe leerse o escribirse en todos los chips sino solamente el que contenga la direccin. Un decodificador se encargar de seleccionar el o los chips que deben recibir las seales OE o WE y para ello activar la seal CS (Chip Select) del chip o de los chips que deban responder o no a la operacin de lectura/escritura que se arranca. Tensin de alimentacin Vcc: Pin el voltaje de alimentacin. Tierra (GND) : Pin para la toma de tierra.

    RAM

    EEPROM

    ROM/PROM

    32 Mb

    4 Kb

    16 Kb

    A 12 A 13 A 14 A 15 A 16 A 17 A 18 A 19 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 Vcc

    A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 WE OE CS GND Vcc

    RAM

    1 Mb x 8

  • GUIA 25

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Las pastillas de memoria se comercializan con un numero de celdas de memoria (direcciones) y un tamao de celda (bits por celda) que no coinciden con el tamao de la palabra de la CPU, ni con las necesidades de memoria que hay que instalar. Por esto es normal que haya que agrupar varios chips de memoria para poder ofrecerle a la CPU la imagen de una nica memoria con tantas direcciones como se desea y con un tamao de celda igual al tamao de la palabra de la CPU. ORGANIZACIN DE LAS CELDAS DE MEMORIA Existen 2 organizaciones principales, la 2D en la cual la disposicin fsica de las celdas de la matriz de memoria es la misma que la disposicin lgica, y la 2D en la que los datos se leen o escriben por bits. Ambas organizaciones se explican a continuacin.

    ORGANIZACIN 2D La matriz est organizada en w palabras de b bits cada una. Todos los bits de una palabra se localizan en el mismo chip. Es una organizacin rpida, ya que el nico retardo es el asociado con los circuitos de decodificacin. Sin embargo, ya que el nmero de palabras es mucho mayor que el nmero de bits por palabras, la utilizacin de esta organizacin dara lugar a matrices de celdas excesivamente largas y estrechas, que no resultan adecuadas para su realizacin en un circuito integrado.

    En este tipo de organizacin se necesitan conocer los siguientes datos:

    Numero de lneas de direccin Capacidad ( Numero de celdas de memoria) Numero de palabras( Numero de unidades direccionables) Longitud de la palabra (Numero de bits por palabra)

    Estos datos se relacionan de la siguiente manera. Numero de palabras = 2 (numero de lneas de direccin)

    Capacidad = (numero de palabras) x (longitud de palabra)

    CIRCUITO ENTRADA

    SALIDA

    DE

    CO

    DIF

    ICA

    DO

    R

    ARREGLO DE MEMORIA

    2n X B

    LINEAS DE DIRECCION

    n

    LECTURA/ESCRITURA

    B bits

    2n

    pal

    abra

    s

    LINEAS DE DATOS

    2n

  • GUIA 26

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Si tenemos una memoria organizada en 2D con 32k palabras de 8 bits cada una: Capacidad = 32k x 8 bits = 256 kbits = 1024 x 256 = 262.144 bits Palabras = 32 x 1024 = 32.768 Lneas de direccin = 15 (215 = 32.768) (lneas de entradas al decodificador) Lneas de datos = 8 (longitud de la palabra) ORGANIZACIN 2D Los bits de una palabra estn repartidos en mas de un chip. La organizacin ms comn es la que permite almacenar 1 bit de una palabra en un chip. El chip contiene un arreglo de bits tpicamente cuadrado. Para escoger un bit de una palabra en particular, la direccin se divide en 2. Se utilizan 2 decodificadores con n/2 entradas. Uno de ellos realiza la seleccin sobre el eje X y el otro sobre el eje Y. Para obtener el resto de los bits que constituyen la palabra se utilizarn otros chips.

    En esta organizacin , con la restriccin de que la longitud de la palabra es de 1 bit, si tenemos una capacidad de 1 Kbit entonces: Capacidad = 1 Kbit = 1024 bits Palabras = 1 K = 1024 Lneas de direccin = 10 (210 = 1024) (5 para la X y 5 para la Y) Lneas de datos = 1 (longitud de la palabra) La matriz cuadrada de memoria es de 32 x 32 (25 X 25 ) = 1024 Ventajas de 2D sobre 2D

    El arreglo 2D es un arreglo cuadrado mientras que el 2D puede llegar a ser muy largo y estrecho

    Una organizacin 2D requiere mayor nmero de lneas externas de datos. Con una organizacin 2D se obtiene mayor capacidad de memoria.

    SELECTOR COLUMNA ENTRADA/SALIDA

    DE

    CO

    DIF

    ICA

    DO

    R

    FIL

    AS

    ARREGLO DE MEMORIA

    2n/2 X 2n/2

    LIN

    EA

    S D

    E D

    IRE

    CC

    ION

    n

    LECTURA/ESCRITURA

    2n/2 bits

    2n

    /2

    bit

    s

    ENTRADA bit

    2n/2

    SALIDA bit

    n/2

    n/2

  • GUIA 27

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    ORGANIZACIN POR MODULOS Las memorias disponibles se pueden ampliar para incrementar la longitud de palabra (nmeros de bits en cada direccin) o la capacidad de palabras (numero de direcciones diferentes), o ambas. La expansin de memoria se consigue aadiendo el nmero apropiado de chips de memoria a los buses de direccin, datos y control como se explica a continuacin.

    Expansin de la longitud de palabra Para aumentar la longitud de palabra de una memoria, debe aumentarse el nmero de bits del bus de datos. Por ejemplo supongamos que queremos conseguir un banco de memoria de 16 Kpalabras de 8 bits (memoria de 16K x 8) y se dispone de mdulos de 16 K x 4. Por una parte se deben unir directamente los pines de direcciones de los dos chips puesto que ambos tiene 16K direcciones. Por otra parte se formaran palabras de 8 bits a partir de dos bloques de 4 bits, Un chip para los 4 bits de mayor peso y el otro para los 4 bits de menor peso. La figura muestra la solucin. Expansin de la capacidad de palabras Supongamos que para implantar la memoria de 16K x 8 del ejemplo anterior disponemos de mdulos de 4K x 8. Como vemos cada modulo ahora ofrece palabras completas, por lo que tendremos que agrupar 4 chips para obtener el espacio de direccionamiento de 16K requerido. Un modulo contendr las primeras 4 direcciones, otro modulo el segundo cuarto y as sucesivamente. En este caso cada chip entrega los 8 bits de cada palabra, pero no se tienen que seleccionar todas simultneamente, sino que solamente tendr que seleccionarse la que contenga la direccin referenciada por la CPU. En estas situaciones en las que cada uno de los espacios de direccionamiento est repartido entre mltiples chips , se requiere un decodificador de direcciones para que la CPU active la seal de Chip Select (CS) del chip que contenga la direccion referenciada.

    En el caso que se quiera obtener por ejemplo una memoria de 64K x 8 con chips de 16K x 1 se necesita expansin de longitud de palabra y de capacidad de palabra. Trate de obtener el circuito.

    D4 D7D0 D7 D0 D3

    A0 A13

    CS

    OE

    WE

    A0 A13

    AS

    R/W

    D0 D7 D0 D3

    A0 A13

    CS

    OE

    WE D0 D3

    CHIP 2 CHIP 1 CPU

    D0 D7

    CS

    OE

    WE

    CH

    IP 4

    D0 D7

    D0 D7

    CS

    OE

    WE

    CH

    IP 3

    D0 D7

    D0 7

    CS

    OE

    WE

    CH

    IP 2

    D0 D7

    D0 D7

    CS

    OE

    WE

    CH

    IP 1

    D0 D7

    A0 A13

    ASR/W

    D0 D7

    CPU

    D0 D7

    A0 A11 A0 A11 A0 A11 A0 A11

    DIRECCIONES ( A0 A13 )

    DATOS ( D0 D7 )

    A0 A11 A0 A11 A0 A11 A0 A11

    DECODIFICADOR

    A0 A11

    A12 A13

  • GUIA 28

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Memoria Cach La velocidad de ejecucin de las instrucciones es altamente dependiente de la velocidad a la cual se transfieren los datos hacia o desde la memoria principal. Por ello no debe sorprendernos que el diseo de la memoria es, y seguir siendo un tpico importante en el desempeo de una computadora. Uno de los problemas bsicos a considerar en el diseo de memorias es la velocidad. Este problema surge debido a que por lo general la CPU puede procesar instrucciones y datos ms rpido de lo que dura su trada desde unidades de memoria principal. Es decir. El tiempo del ciclo de la memoria principal es el cuello de botella. En todos los ciclos de instruccin, la CPU accesa a la memoria por lo menos una vez, para buscar la instruccin, y generalmente una o ms veces para buscar los operandos o almacenar los resultados. El rango en el cual la CPU puede ejecutar instrucciones est claramente delimitado por el ciclo de memoria de la computadora. La velocidad de la memoria es mucho menor que la velocidad del CPU. En forma idnea, la memoria principal debera construirse con la misma tecnologa que los registros de la CPU, obteniendo ciclos de memoria comparables con los ciclos de este. Sin embargo, sta es una estrategia muy costosa. La solucin se encuentra en explotar el principio de localidad para proveer una pequea y rpida memoria entre la CPU y la memoria principal denominada memoria cach. Esta memoria se utiliza para agilizar el movimiento de los datos entre la memoria principal y la CPU mejorando as el desempeo de la computadora. Desde hace aos se sabe que los programadores no acceden la memoria en forma completamente aleatoria. Si una referencia a memoria es la direccin A, es comn que la siguiente referencia se realice a los alrededores de A. Un ejemplo es un programa en s, con excepcin de los saltos y las llamadas a procedimientos, las instrucciones se extraen de localidades de memoria consecutivas. Es ms, la mayora del tiempo de ejecucin se emplea en iteraciones, en las que ciertas instrucciones se ejecutan de manera repetida. Se le llama principio de localidad a la observacin de que las referencias a memoria realizadas en un intervalo de tiempo corto, tienden a usar slo una fraccin de la memoria local, y representa la base para todos los sistemas de memoria cach. La idea general es que, cuando una palabra es referenciada, se le trae de la memoria grande y lenta a la cach, de modo que la siguiente vez que se utilice, se pueda accesar rpido. Si una palabra se lee o escribe k veces en un intervalo de tiempo corto, la computadora necesitar de una referencia a la memoria lenta y k-1 referencias a la memoria rpida. Entre ms grande es k mejor es el desempeo general. La memoria cach contiene una copia de partes de la memoria principal. Cuando la CPU requiere de una palabra de la memoria, primero verifica si la palabra se encuentra ya en la memoria cach. Si es as, la palabra se enva a la CPU. De lo contrario un bloque de la memoria principal, formado por un nmero determinado de palabras, se lee dentro de la cach y se enva posteriormente al CPU. La memoria principal est formada por 2n palabras direccionable. Para propsitos de mapeo, se considera est formada por un nmero determinado de bloques con k palabras cada uno. Esto significa que tenemos M= 2n /k bloques. La memoria cach consiste en C lneas de k palabras cada uno (C

  • GUIA 29

    ARQUITECTURA DEL COMPUTADOR

    UN

    IME

    T

    Prof. Sandro Costantini

    Algoritmo de sustitucin: cuando se introduce un nuevo bloque a la cach, debe sustituirse por uno de los bloques existentes. En el caso de correspondencia directa, solo hay una posible lnea para el bloque particular, mientras que en las tcnicas asociativas existen cuatro algoritmos: usado menos recientemente(LRU), primero en entrar en salir (FIFO), usado menos frecuentemente, ente (LFU) y aleatoria. Poltica de escritura: antes de poder reemplazar un bloque que est en la cach es necesario considerar si este ha sido modificado en la cach y no en la memoria principal. Si no se ha modificado entonces se puede reemplazar el bloque, en caso contrario la memoria principal debe actualizarse. Existen dos problemas que combatir: un modulo de E/S puede esribir/leer directamente de la memoria y es posible que esta no sea vlida. El problema se vuelve ms complejo cuando carias CPU se conectan al mismo bus y cada una tiene su propia cach Las tcnicas ms utilizadas son escritura inmediata y postescritura. Tamao del bloque : Cuando se recupera y ubica un bloque de datos en la cach, se recupera no solo la palabra deseada, sino adems algunas palabras adyacentes. A medida que el tamao de bloque aumenta, la probabilidad de que los datos sean referenciados prximamente se incrementa. Sin embargo si el tamao es mucho mayor esta probabilidad decrecer Numero de cachs: originalmente un sistema tena normalmente slo una cach. Recientemente es habitual utilizar mltiples cach. Los aspectos de diseo relacionados son el nmero de niveles de cach y el uso de cach unificada frente a cach partida.