Está en la página 1de 4

1.

JERARQUIA DE MEMORIA Las restricciones de diseo en la memoria de un ordenador se pueden resumir en tres preguntas: Cunto? Qu tan rpido? Cunto cuesta? La pregunta de cuanto esta algo termin. Si la capacidad est ah, probablemente las aplicaciones se desarrollarn a usarlo. La pregunta de qu tan rpido es, de un modo ms fcil de contestar. Para lograr mayor rendimiento, la memoria debe ser capaz de mantenerse al da 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 tambin debe ser considerada. Para un sistema prctico, el costo de memoria debe ser la razn en relacin a otros componentes. Como era de esperar, existe un equilibrio entre las tres caractersticas clave de la memoria, esto es: capacidad, tiempo de acceso, y costo. Una variedad de tecnologas se utilizan para poner en prctica los sistemas de memoria, y por otro lado de este espectro de tecnologas, las siguientes relaciones se mantienen: Tiempo de acceso ms rpido, mayor costo por bit. Mayor capacidad, menor costo por bit. Mayor capacidad, velocidad de acceso lento. El dilema frente al diseo es claro. El diseo desea utilizar tecnologas 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 diseo necesita usar costosos, relativamente memorias de baja capacidad tiempos de acceso rpidos. El camino para salir de este dilema es no confiar en un solo componente de memoria o tecnologa, pero para emplear una jerarqua de memoria. Una jerarqua tpica se representa en la figura 1.14. Como uno va abajo en la jerarqua, 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 rpidas son suplementadas por ser mayor, baratos, memorias mas lentas. la clave para el xitos de esta organizacin disminuye la frecuencia de acceso a niveles mas bajos. Vamos a examinar este concepto en mayor detalle despus en este capitulo, cuando hablemos sobre la memoria Cache, y cuando hablemos sobre memoria virtual despus en el libro. Una breve explicacin 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

1.5 / THE MEMORY HIERARCHY 27

Procesador accede directamente. Si es en el nivel 2, entonces el byte primeramente es transferido al nivel 1 y luego es accedido por el procesador. Por simplicidad, ignoramos el tiempo requerido para que el procesador determine si el byte esta en el nivel 1 o en el nivel 2. La figura 1.15 muestra la forma general de la curva de modelo de esta simulacin. La figura muestra el promedio de tiempo de acceso a dos niveles de memoria como una funcin de probabilidad de aciertos H , donde H es definido como la fraccin de toda la memoria accesible que se encuentra en la memoria mas rpida (ex., La memoria cache), es el tiempo 1 de acceso al nivel 1, y en un tiempo T 2 es el tiempo de acceso al nivel 2. Como puede observarse, para altos porcentajes de acceso al nivel 1, el promedio total de tiempo de acceso es mas cerrado en el nivel 1 que en el nivel 2. En nuestro ejemplo, suponiendo 95% del acceso a memoria se encuentra en la Cache (H =0.95). Luego el promedio de tiempo de acceso a un byte puede expresarse como

Si la palabra visitada se encuentra en la memoria ms rpida, que se define como un golpe o hit. Se produce una perdida si la palabra accedida no se encuentra en la memoria ms rpida.

(0.95) (0.1 microsegundos) + (0.05) (0.1 microsegundos + 1 microsegundo) = 0.095 + 0.055 = 0.15 microsegundos

Figure 1.15 Performance de una memoria de dos niveles simple

El resultado esta esta cerrado al tiempo de acceso de la memoria mas rpida. peroo la estrategia de usar dos niveles de memoria funciona en principio, solo si las condiciones (a) a travs de (d) se aplica en la lista anterior. Por estar empleando una variedad de tecnologas, existe un espectro de los sistemas de memoria que satisface esas condiciones (a) a travs de (c). Afortunadamente, la condicin (d) tambin es valida. La base para validar la condicin (d) es un principio conocido como LOCALIDAD DE REFERENCIA [DENN68], Durante el curso de la ejecucin de un programa, las referencias a memoria por parte del procesador, tanto para instrucciones y datos tienden a agruparse. Programas usuales contienen un nmero de iteraciones y procedimientos. Una ves que se ingresa a un ciclos, hay referencias repetidas a un pequeo conjunto de instrucciones. De igual forma, Operaciones en tabla y matrices implican el acceso a un conjunto agrupado de los bytes de datos. Sobre un largo periodo de tiempo, los agrupamientos en uso cambian, pero sobre un periodo de tiempo corto, el procesador trabaja principalmente con grupos fijos de referencias de memoria. Por tanto, es posible organizar datos a travs de la jerarqua de forma que el porcentaje de acceso a cada nivel inferior sucesivamente es sustancialmente menor que la del nivel superior. Considerando el ejemplo de dos niveles todava presente. Que la memoria de nivel 2 contiene todas las instrucciones y datos del programa. Los grupos actuales pueden ser colocados temporalmente en el nivel 1. De ves en cuando, 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. En promedio, sin embargo, la mayora de las referencias sern a las instrucciones y datos contenidos en el nivel 1. Este principio puede ser aplicado a travs de ms de 2 niveles de memoria. El ms rpido, el ms pequeo, y el ms costoso tipo de memoria son los registros internos del procesador. Habitualmente, y procesador va a contener unas cuantas docenas de dichos registros, aunque algunos procesadores contienen cientos de registros. Saltando abajo dos niveles, la memoria principal es el sistema principal de memoria interna de la computadora.

Cada ubicacin en la memoria tiene una direccin nica, y la mayora de las instrucciones se refieren a una o ms direcciones de memoria principal. La memoria principal es usualmente extendida con una mayor velocidad, con menor memoria cache. La memoria cache no suele ser visible para el programador o inclusive al procesador. Es un dispositivo para organizar el movimiento de datos entre la memoria principal y los registros del procesador para mejorar el rendimiento. Las tres formas de memoria que describimos son, habitualmente, voltiles y emplean la tecnologa de semiconductores. El uso de tres niveles explota el hecho de que la memoria de semiconductores viene en una variedad de tipos, que difieren en la velocidad y el costo. Los datos se almacenan de forma ms permanente en los dispositivos externos de almacenamiento masivo, de los cuales los ms comunes son el disco duro y medios extrables, como discos extrables, cintas y dispositivos de almacenamiento ptico. Externamente, la memoria no voltil tambin se conoce como memoria secundaria o memoria auxiliar. Estos se utilizan para almacenar los archivos de programa y de datos y son por lo general son visibles para el programador slo en trminos de archivos y registros, en lugar de bytes o palabras individuales. Un disco duro tambin se utiliza para proporcionar una extensin a la memoria principal conocida como memoria virtual, que esta descrita en el Captulo 8. Algunos niveles adicionales se pueden aadir eficazmente a la jerarqua en el software. Por ejemplo, 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. Tal tcnica, denominada a veces como memoria cach de disco (examinado en detalle en el captulo 11), mejora el rendimiento de dos maneras: Los discos escritos se agrupan. En lugar de muchas pequeas transferencias de datos, obtenemos grandes transferencias de datos. Esto mejora el rendimiento del disco y la participacin del procesador se reduce. Algunos de los datos destinados a la escritura pueden ser referenciados por un programa antes del prximo volcado en el disco. En ese caso, los datos se recuperan rpidamente de la memoria cach de software en lugar que desde el disco de forma lenta.