Administración de Memoria

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 7

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.

El uso de cachés juega un papel importante en muchas áreas de las


ciencias computacionales, no sólo en la caché de las líneas de RAM.
Cada vez que hay un recurso extenso que se puede dividir en piezas,
algunas de las cuales se utilizan con mucho más frecuencia que otras,
a menudo se invoca a la caché para mejorar el rendimiento. Los
sistemas operativos la utilizan todo el tiempo.

Por ejemplo, la mayoría de los sistemas operativos mantienen (piezas


de) los archivos que se utilizan con frecuencia en la memoria principal
para evitar tener que obtenerlos del disco en forma repetida. De
manera similar, los resultados de convertir nombres de rutas
extensas tales como

/home/ast/proyectos/minix3/src/kernel/reloj.c

a la dirección en disco donde se encuentra el archivo, se pueden


colocar en la caché para evitar búsquedas repetidas. Por último,
cuando una dirección de una página Web (URL) se convierte en una
dirección de red (dirección IP), el resultado se puede poner en la
caché para usarlo a futuro (existen muchos otros usos).
En cualquier sistema de caché surgen con rapidez varias preguntas,
incluyendo:

 Cuando se debe poner un nuevo elemento en la caché.


 En qué línea de caché se debe poner el nuevo elemento.
 Qué elemento se debe eliminar de la caché cuando se necesita una
posición.
 Dónde se debe poner un elemento recién desalojado en la memoria
de mayor tamaño.
No todas las preguntas son relevantes para cada situación de uso de
la caché. Para poner líneas de la memoria principal en la caché de la
CPU, por lo general se introduce un nuevo elemento en cada fallo de
caché. La línea de caché a utilizar se calcula generalmente mediante
el uso de algunos de los bits de mayor orden de la dirección de
memoria a la que se hace referencia. Por ejemplo, con 4096 líneas de
caché de 64 bytes y direcciones de 32 bits, los bits del 6 al 17 podrían
utilizarse para especificar la línea de caché, siendo los bits del 0 al 5
el byte dentro de la línea de la caché. En este caso, el elemento a
quitar es el mismo en el que se colocan los nuevos datos, pero en otros
sistemas podría ser otro. Por último, cuando se vuelve a escribir una
línea de caché en la memoria principal (si se ha modificado desde la
última vez que se puso en caché), la posición en memoria donde se
debe volver a escribir se determina únicamente por la dirección en
cuestión.

Memoria Caché en Intel y AMD


Las cachés son una idea tan útil que las CPUs modernas tienen dos de
ellas. La caché L1 o de primer nivel está siempre dentro de la CPU, y
por lo general alimenta las instrucciones decodificadas al motor de
ejecución de la CPU. La mayoría de los chips tienen una segunda caché
L1 para las palabras de datos que se utilizan con frecuencia. Por lo
general, las cachés L1 son de 16 KB cada una. Además, a menudo hay
una segunda caché, conocida como caché L2, que contiene varios
megabytes de palabras de memoria utilizadas recientemente. La
diferencia entre las cachés L1 y L2 está en la velocidad. El acceso a la
caché L1 se realiza sin ningún retraso, mientras que el acceso a la
caché L2 requiere un retraso de uno o dos ciclos de reloj. En los chips
multinúcleo, los diseñadores deben decidir dónde deben colocar las
cachés.

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.

Memoria Principal o RAM


Memoria Kingston RAM DIMM DDR3 de 4 Gb
La memoria principal viene a continuación en la jerarquía de la
gráfica 81. Es el “caballo de batalla” del sistema de memoria. Por lo
general a la memoria principal se le conoce como RAM (Random
Access Memory, Memoria de Acceso Aleatorio). Los usuarios de
computadora antiguos algunas veces la llaman memoria de núcleo
debido a que las computadoras en las décadas de 1950 y 1960
utilizaban pequeños núcleos de ferrita magnetizables para la
memoria principal. En la actualidad, las memorias contienen desde
cientos de megabytes hasta varios gigabytes y su tamaño aumenta
con rapidez. Todas las peticiones de la CPU que no se puedan
satisfacer desde la caché pasan a la memoria principal.

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.

Los sistemas con varios niveles de almacenamiento requieren


destinar recursos para administrar el movimiento de programas y
datos entre los niveles.

Se contemplan diversas estrategias para el almacenamiento de los


procesos en memoria:
Estrategia de mejor ajuste
Un trabajo nuevo es colocado en el agujero en el cual quepa de forma
más ajustada: debe dejarse el menor espacio sin usar.

Estrategia de primer ajuste


Un trabajo nuevo es colocado en el primer espacio disponible con
tamaño suficiente para alojarlo.

Estrategia de peor ajuste


Consiste en colocar un programa en el espacio en el que quepa de la
peor manera, es decir en el más grande posible. El espacio restante es
también grande para poder alojar a un nuevo programa
relativamente grande.

También podría gustarte