You are on page 1of 4

1.

5

JERARQUIA DE MEMORIA Las restricciones de diseño en la memoria de un ordenador se pueden resumir en tres preguntas: ¿Cuánto? ¿Qué tan rápido? ¿Cuánto cuesta? La pregunta de cuanto esta algo terminó. Si la capacidad está ahí, probablemente las aplicaciones se desarrollarán a usarlo. La pregunta de qué tan rápido es, de un modo más fácil de contestar. Para lograr mayor rendimiento, la memoria debe ser capaz de mantenerse al día con el procesador. Es decir, como el procesador está ejecutando instrucciones, no deseamos que se tenga que hacer una pausa esperando instrucciones u operandos. La última pregunta también debe ser considerada. Para un sistema práctico, el costo de memoria debe ser la razón en relación a otros componentes. Como era de esperar, existe un equilibrio entre las tres características clave de la memoria, esto es: capacidad, tiempo de acceso, y costo. Una variedad de tecnologías se utilizan para poner en práctica los sistemas de memoria, y por otro lado de este espectro de tecnologías, las siguientes relaciones se mantienen: • Tiempo de acceso más rápido, mayor costo por bit. • Mayor capacidad, menor costo por bit. • Mayor capacidad, velocidad de acceso lento. El “dilema” frente al diseño es claro. El diseño desea utilizar tecnologías de memoria que proporcionen grandes capacidades de memoria, tanto que la capacidad es necesitada y porque el costo por bit es bajo. Por el contrario, para cumplir con los requerimientos, el diseño necesita usar costosos, relativamente memorias de baja capacidad tiempos de acceso rápidos. El camino para salir de este “dilema” es no confiar en un solo componente de memoria o tecnología, pero para emplear una jerarquía de memoria. Una jerarquía típica se representa en la figura 1.14. Como uno va abajo en la jerarquía, ocurre lo siguiente: a. Disminuye el costo por bit. b. Se incrementa la capacidad. c. Se incrementa el tiempo de acceso. d. Disminuye la frecuencia de acceso a la memoria por el procesador. Así, menor, mas costoso, las memorias rápidas son suplementadas por ser mayor, baratos, memorias mas lentas. la clave para el éxitos de esta organización disminuye la frecuencia de acceso a niveles mas bajos. Vamos a examinar este concepto en mayor detalle después en este capitulo, cuando hablemos sobre la memoria Cache, y cuando hablemos sobre memoria virtual después en el libro. Una breve explicación se detalla en este punto. Suponiendo que ese procesador tiene acceso a dos niveles de memoria. El nivel 1 tiene 1000 bytes y tiene un tiempo de acceso de 0.1 microsegundos; el nivel 2 tiene 100,000 bytes y tiene un tiempo de acceso de 1 microsegundo. Asumir que si un byte accede al nivel 1, luego el

Como puede observarse. es el tiempo 1 de acceso al nivel 1.5 / THE MEMORY HIERARCHY 27 Procesador accede directamente. La memoria cache).1. La figura muestra el promedio de tiempo de acceso a dos niveles de memoria como una función de probabilidad de aciertos H . que se define como un golpe o “hit”. En nuestro ejemplo. . Por simplicidad. el promedio total de tiempo de acceso es mas cerrado en el nivel 1 que en el nivel 2.. donde H es definido como la fracción de toda la memoria accesible que se encuentra en la memoria mas rápida (ex. suponiendo 95% del acceso a memoria se encuentra en la Cache (H =0. entonces el byte primeramente es transferido al nivel 1 y luego es accedido por el procesador.95). La figura 1. para altos porcentajes de acceso al nivel 1. Si es en el nivel 2. ignoramos el tiempo requerido para que el procesador determine si el byte esta en el nivel 1 o en el nivel 2. Se produce una perdida si la palabra accedida no se encuentra en la memoria más rápida.15 muestra la forma general de la curva de modelo de esta simulación. Luego el promedio de tiempo de acceso a un byte puede expresarse como 1 Si la palabra visitada se encuentra en la memoria más rápida. y en un tiempo T 2 es el tiempo de acceso al nivel 2.

la mayoría de las referencias serán a las instrucciones y datos contenidos en el nivel 1. peroo la estrategia de usar dos niveles de memoria funciona en principio. Este principio puede ser aplicado a través de más de 2 niveles de memoria.055 = 0. Saltando abajo dos niveles. existe un espectro de los sistemas de memoria que satisface esas condiciones (a) a través de (c). Habitualmente.1 microsegundos) + (0. tanto para instrucciones y datos tienden a agruparse.095 + 0. La base para validar la condición (d) es un principio conocido como LOCALIDAD DE REFERENCIA [DENN68]. De ves en cuando. y el más costoso tipo de memoria son los registros internos del procesador. De igual forma. El más rápido. es posible organizar datos a través de la jerarquía de forma que el porcentaje de acceso a cada nivel inferior sucesivamente es sustancialmente menor que la del nivel superior.15 microsegundos Figure 1. y procesador va a contener unas cuantas docenas de dichos registros. Por tanto. las referencias a memoria por parte del procesador.05) (0. el procesador trabaja principalmente con grupos fijos de referencias de memoria. Que la memoria de nivel 2 contiene todas las instrucciones y datos del programa. Programas usuales contienen un número de iteraciones y procedimientos. Afortunadamente.15 Performance de una memoria de dos niveles simple El resultado esta esta cerrado al tiempo de acceso de la memoria mas rápida. la condición (d) también es valida. . Por estar empleando una variedad de tecnologías. uno de los grupos en el nivel 1 tendrá que ser cambiado de nuevo a nivel 2 para hacer espacio para un nuevo grupo que viene en el nivel 1.1 microsegundos + 1 microsegundo) = 0.(0. solo si las condiciones (a) a través de (d) se aplica en la lista anterior.95) (0. el más pequeño. hay referencias repetidas a un pequeño conjunto de instrucciones. los agrupamientos en uso cambian. Los grupos actuales pueden ser colocados temporalmente en el nivel 1. Una ves que se ingresa a un ciclos. la memoria principal es el sistema principal de memoria interna de la computadora. aunque algunos procesadores contienen cientos de registros. pero sobre un periodo de tiempo corto. Operaciones en tabla y matrices implican el acceso a un conjunto agrupado de los bytes de datos. sin embargo. Sobre un largo periodo de tiempo. Durante el curso de la ejecución de un programa. En promedio. Considerando el ejemplo de dos niveles todavía presente.

la memoria no volátil también se conoce como memoria secundaria o memoria auxiliar. volátiles y emplean la tecnología de semiconductores. Tal técnica. Por ejemplo. En lugar de muchas pequeñas transferencias de datos. obtenemos grandes transferencias de datos. Externamente. que difieren en la velocidad y el costo. Un disco duro también se utiliza para proporcionar una extensión a la memoria principal conocida como memoria virtual. Estos se utilizan para almacenar los archivos de programa y de datos y son por lo general son visibles para el programador sólo en términos de archivos y registros. • Algunos de los datos destinados a la escritura pueden ser referenciados por un programa antes del próximo volcado en el disco. como discos extraíbles. Los datos se almacenan de forma más permanente en los dispositivos externos de almacenamiento masivo. habitualmente. Esto mejora el rendimiento del disco y la participación del procesador se reduce. en lugar de bytes o palabras individuales.Cada ubicación en la memoria tiene una dirección única. Es un dispositivo para organizar el movimiento de datos entre la memoria principal y los registros del procesador para mejorar el rendimiento. una parte de la memoria principal se puede utilizar como una memoria intermedia para almacenar temporalmente datos que se van a leer en el disco. El uso de tres niveles explota el hecho de que la memoria de semiconductores viene en una variedad de tipos. Las tres formas de memoria que describimos son. con menor memoria cache. denominada a veces como memoria caché de disco (examinado en detalle en el capítulo 11). . La memoria principal es usualmente extendida con una mayor velocidad. Algunos niveles adicionales se pueden añadir eficazmente a la jerarquía en el software. En ese caso. mejora el rendimiento de dos maneras: • Los discos escritos se agrupan. cintas y dispositivos de almacenamiento óptico. que esta descrita en el Capítulo 8. La memoria cache no suele ser visible para el programador o inclusive al procesador. de los cuales los más comunes son el disco duro y medios extraíbles. los datos se recuperan rápidamente de la memoria caché de software en lugar que desde el disco de forma lenta. y la mayoría de las instrucciones se refieren a una o más direcciones de memoria principal.