Administración de Memoria
Administración de Memoria
Administración de Memoria
Concepto y Tipos
Jeraquía de memoria
El segundo componente importante en cualquier computadora, luego
del procesador, es la memoria. En teoría, una memoria debe ser en
extremo rápida (más rápida que la velocidad de ejecución de una
instrucción, de manera que la memoria no detenga a la CPU), de gran
tamaño y muy económica. Ninguna tecnología en la actualidad
cumple con todos estos objetivos, por lo que se adopta una solución
distinta. El sistema de memoria está construido como una jerarquía
de capas, como se muestra en la gráfica mostrada arriba. Las capas
superiores tienen mayor velocidad, menor capacidad y mayor costo
por bit que las capas inferiores, a menudo por factores de mil millones
o más.
Registros
La capa superior consiste en los registros internos de la CPU. Están
compuestos del mismo material que la CPU y, por ende, tienen la
misma rapidez. En consecuencia no hay retraso a la hora de
utilizarlos. La capacidad de almacenamiento disponible en estos
registros es generalmente de 32 32 bits en una CPU de 32 bits y de 64
64 bits en una CPU de 64 bits. Menos de 1 KB en ambos casos. Los
programas deben administrar los registros (es decir, decidir qué
deben guardar en ellos) por su cuenta, en el software.
Caché
El siguiente nivel es la memoria caché, que el hardware controla de
manera parcial. La memoria principal se divide en líneas de caché,
que por lo general son de 64 bytes, con direcciones de 0 a 63 en la
línea de caché 0, direcciones de 64 a 127 en la línea de caché 1 y así
sucesivamente. Las líneas de caché que se utilizan con más frecuencia
se mantienen en una caché de alta velocidad, ubicada dentro o muy
cerca de la CPU. Cuando el programa necesita leer una palabra de
memoria, el hardware de la caché comprueba si la línea que se
requiere se encuentra en la caché. Si es así (a lo cual se le conoce como
acierto de caché), la petición de la caché se cumple y no se envía una
petición de memoria a través del bus hacia la memoria principal. Los
aciertos de caché por lo general requieren un tiempo aproximado de
dos ciclos de reloj. Los fallos de caché tienen que ir a memoria, con un
castigo considerable de tiempo. La memoria caché está limitada en
tamaño debido a su alto costo. Algunas máquinas tienen dos o incluso
tres niveles de caché, cada una más lenta y más grande que la anterior.
/home/ast/proyectos/minix3/src/kernel/reloj.c
En la gráfica (a) hay una sola caché L2 compartida por todos los
núcleos; esta metodología se utiliza en los chips multinúcleo de Intel.
En contraste, en la gráfica (b) cada núcleo tiene su propia caché L2;
AMD utiliza esta metodología. Cada estrategia tiene sus pros y sus
contras. Por ejemplo, la caché L2 compartida de Intel requiere un
dispositivo controlador de caché más complicado, pero la manera en
que AMD utiliza la caché hace más difícil la labor de mantener las
cachés L2 consistentes.
IC Serial EEPROM
Además de la memoria principal, muchas computadoras tienen una
pequeña cantidad de memoria de acceso aleatorio no volátil. A
diferencia de la RAM, la memoria no volátil no pierde su contenido
cuando se desconecta la energía. La ROM (Read Only Memory,
Memoria de sólo lectura) se programa en la fábrica y no puede
modificarse después. Es rápida y económica. En algunas
computadoras, el cargador de arranque (bootstrap loader) que se
utiliza para iniciar la computadora está contenido en la ROM. Además,
algunas tarjetas de E/S vienen con ROM para manejar el control de
los dispositivos de bajo nivel. La EEPROM (Electrically Erasable
PROM, PROM eléctricamente borrable) y la memoria flash son
también no volátiles, pero en contraste con la ROM se pueden borrar
y volver a escribir datos en ellas. Sin embargo, para escribir en este
tipo de memorias se requiere mucho más tiempo que para escribir en
la RAM, por lo cual se utilizan en la misma forma que la ROM, sólo con
la característica adicional de que ahora es posible corregir los errores
en los programas que contienen, mediante la acción de volver a
escribir datos en ellas en el campo de trabajo.
Técnicas de almacenamiento
Los programas y datos tienen que estar en la memoria principal para
poder ejecutarse o ser referenciados, pero los programas y datos que
no son necesarios de inmediato pueden mantenerse en el
almacenamiento secundario. El almacenamiento principal es más
costoso y menor que el secundario pero de acceso más rápido.