0% encontró este documento útil (0 votos)
17 vistas8 páginas

Memoria Caché en Computadores

Computación

Cargado por

wendyxiloj
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas8 páginas

Memoria Caché en Computadores

Computación

Cargado por

wendyxiloj
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CAPÍTULO 4

M e m o ria cach é

4.1. Conceptos básicos sobre sistem as de memoria de com putadores


Características de los sistem as de memoria
Jerarquía de memoria
4.2. Principios básicos de las m em orias caché
4.3. Elementos de diseño de la caché
Tamaño de caché
Función de correspondencia
Algoritm os de sustitución
Política de escritura
Tamaño de línea
Núm ero de cachés
4.4. Organización de la caché en el Pentium 4 y el Power PC
Organización de caché en el Pentium 4
Organización de caché en el Power PC
4.5. Lecturas recom endadas
4.6. Palabras clave, preguntas de repaso y problem as
Palabras clave
Preguntas de repaso
Problemas
Apéndice 4A. Prestaciones de las m em orias de dos niveles
Localidad
Funcionamiento de la memoria de dos niveles
Prestaciones
104 Organización y arquitectura de computadores

PUNTOS CLAVE
> La memoria de un computador tiene una organización jerárquica. En el nivel superior (el
más próximo al procesador) están los registros del procesador. A continuación se encuen­
tran uno o más niveles de caché, denominados Ll, L2, etc. Posteriormente la memoria
principal, normalmente construida con memorias dinámicas de acceso aleatorio (DRAM).
Todas ellas se consideran memorias internas del computador. La jerarquía prosigue con la
memoria externa, siendo el siguiente nivel usualmente un disco duro fijo, y uno o más
niveles de soportes extraíbles tales como discos ópticos y cintas magnéticas.
> A medida que descendemos en la jerarquía de memoria disminuye el coste por bit,
aumenta la capacidad y crece el tiempo de acceso. Sería deseable poder utilizar solo la
memoria más rápida, pero al ser la más costosa se llega a un compromiso entre tiempo de
acceso y coste, empleando más cantidad de memoria más lenta. La estrategia a seguir
consiste en organizar los datos y los programas en memoria de manera que las palabras de
memoria necesarias estén normalmente en la memoria más rápida.
> En general, es probable que la mayoría de los accesos futuros a la memoria principal, por
parte del procesador, sean a posiciones accedidas recientemente. Por eso la caché auto­
máticamente retiene una copia de algunas de las palabras de la DRAM utilizadas recien­
temente. Si la caché se diseña adecuadamente, la mayor parte del tiempo el procesador
solicitará palabras de memoria que están ya en la caché.

as memorias de los computadores, aunque parezcan conceptualmente sencillas, presentan tal

L vez la más amplia diversidad de tipos, tecnología, estructura, prestaciones y coste, de entre
todos los componentes de un computador. Ninguna tecnología es óptima para satisfacer las
necesidades de memoria de un computador. En consecuencia, un computador convencional está equi­
pado con una jerarquía de subsistemas de memoria, algunos internos (directamente accesibles por el
procesador), y otros extemos (accesibles por el procesador mediante módulos de entrada/salida).
Este capítulo y el siguiente se centran en el estudio de la memoria interna, mientras que el
Capítulo 6 se dedicará a la memoria extema. Para comenzar, en la primera sección de este capítulo
examinaremos características clave de las memorias de un computador. El resto del capítulo se dedi­
ca al estudio de un elemento esencial de cualquier computador moderno: la memoria caché.

4.1. CO N CEP TO S BÁSICOS SOBRE SISTEM AS DE MEMORIA


DE CO M PU TAD O RES

CARACTERÍSTICAS DE LOS S IS T E M A S DE M EM O R IA

El complejo tema de las memorias es más abordable si clasificamos los sistemas de memoria según
sus características clave. Las más importantes se listan en la Tabla 4.1.
Memoria cachó 105

Tabla 4.1. Características clave de los sistem as de m em oria de computadores.

Ubicación Pestaciones
Proce sad or T ie m p o de acceso
Interna (principal) T ie m p o de ciclo
Externa (secundaria) Velocidad de transferencia

Capacidad Dispositivo físico


T am añ o de la palabra Se m ic o n d u c to r
N ú m e ro de p alab ras S o p o rte m agnético
So p o rte óptico
Unidad de transferencia
M a gn e to -ó p tico
Palabra
Bloque Características físicas
Volátil/no volátil
M é to d o de acceso
Borrable/no borrable
A c c e so secuencia 1
A c c e so directo O rganización
A c c e so aleatorio
A c c e so asociativo

El término ubicación que aparece en la Tabla 4.1 indica si la memoria es interna o extema al
computador. La memoria interna suele identificarse con la memoria principal. Sin embargo hay ade­
más otras formas de memoria interna. El procesador necesita su propia memoria local en forma de
registros (véase por ejemplo la Figura 2.3). Además, como veremos, la unidad de control del proce­
sador también puede necesitar su propia memoria interna. Postponemos la discusión de estos dos últi­
mos tipos de memoria interna para capítulos posteriores. La memoria caché es también otro tipo de
memoria interna. La memoria externa consta de dispositivos periféricos de almacenamiento, tales
como discos y cintas, que son accesibles por el procesador a través de controladores de E/S.
Una característica obvia de las memorias es su capacidad. Para memorias internas se expresa
normalmente en términos de bytes (1 byte = 8 bits) o de palabras. Longitudes de palabra comunes
son 8, 16, y 32 bits. La capacidad de las memorias externas se suele expresar en bytes.
Un concepto relacionado es la unidad de trasferencia. Para memorias internas, la unidad de
transferencia es igual al número de líneas de entrada/salida de datos del módulo de memoria. A menu­
do es igual a la longitud de palabra, pero suele ser mayor, por ejemplo 64, 128, o 256 bits. Para acla­
rarlo consideremos tres conceptos relacionados con la memoria interna:

• Palabra: es la unidad «natural» de organización de la memoria. El tamaño de la palabra suele


coincidir con el número de bits utilizados para representar números y con la longitud de las
instrucciones. Por desgracia hay muchas excepciones. Por ejemplo, el CRAY C90 tiene una
longitud de palabra de 64 bits, pero utiliza una representación de números enteros de 46 bits.
El VAX tiene una gran variedad de longitudes de instrucción, expresadas como múltiplos de
bytes, y una longitud de palabra de 32 bits.
• Unidades direccionables: en algunos sistemas la unidad direccionable es la palabra. Sin
embargo muchos de ellos permiten direccionar a nivel de bytes. En cualquier caso, la relación
entre la longitud A de una dirección y el número JVde unidades direccionables, es 2A= N.
106 Organización y arquitectura de computadores

• Unidad de transferencia: para la memoria principal es el número de bits que se leen o escri­
ben en memoria a la vez. La unidad de transferencia no tiene por qué coincidir con una pala­
bra o con una unidad direccionable. Para la memoria externa, los datos se transfieren
normalmente en unidades más grandes que la palabra denominadas bloques.

Otro distintivo entre tipos de memorias es el método de acceso, que incluye las siguientes variantes:

• Acceso secuencial: la memoria se organiza en unidades de datos llamadas registros. El acce­


so debe realizarse con una secuencia lineal específica. Se hace uso de información almacena­
da de direccionamiento que permite separar los registros y ayudar en el proceso de
recuperación de datos. Se utiliza un mecanismo de lectura/escritura compartida que debe ir
trasladándose desde su posición actual a la deseada, pasando y obviando cada registro inter­
medio. Así pues, el tiempo necesario para acceder a un registro dado es muy variable. Las uni­
dades de cinta que se tratan en el Capítulo 6 son de acceso secuencial.
• Acceso directo: como en el caso de acceso secuencial, el directo tiene asociado un mecanis­
mo de lectura/escritura. Sin embargo, los bloques individuales o registros tienen una dirección
única basada en su dirección física. El acceso se lleva a cabo mediante un acceso directo a una
vecindad dada, seguido de una búsqueda secuencial, bien contando, o bien esperando hasta
alcanzar la posición final. De nuevo el tiempo de acceso es variable. Las unidades de disco,
que se tratan en el Capítulo 6, son de acceso directo.
• Acceso aleatorio (randoni): cada posición direccionable de memoria tiene un único mecanis­
mo de acceso cableado físicamente. El tiempo para acceder a una posición dada es constante
e independiente de la secuencia de accesos previos. Por tanto, cualquier posición puede selec­
cionarse «aleatoriamente» y ser direccionada y accedida directamente. La memoria principal
y algunos sistemas de caché son de acceso aleatorio.
• Asociativa: es una memoria del tipo de acceso aleatorio que permite hacer una comparación
de ciertas posiciones de bits dentro de una palabra buscando que coincidan con unos valores
dados, y hacer esto para todas las palabras simultáneamente. Una palabra es por tanto recupe­
rada basándose en una porción de su contenido en lugar de su dirección. Como en las memo­
rias de acceso aleatorio convencionales, cada posición tiene su propio mecanismo de
direccionamiento, y el tiempo de recuperación de un dato es una constante independiente de la
posición o de los patrones de acceso anteriores. Las memorias caché pueden emplear acceso
asociativo.

Desde el punto de vista del usuario, las dos características más importantes de una memoria son
su capacidad y sus prestaciones. Se utilizan tres parámetros de medida de prestaciones:

• Tiempo de acceso (latencia): para memorias de acceso aleatorio es el tiempo que tarda en
realizarse una operación de escritura o de lectura, es decir, el tiempo que transcurre desde el
instante en el que se presenta una dirección a la memoria hasta que el dato, o ha sido memo-
rizado, o está disponible para su uso. Para memorias de otro tipo, el tiempo de acceso es el que
se tarda en situar el mecanismo de lectura/escritura en la posición deseada.
• Tiempo de ciclo de memoria: este concepto se aplica principalmente a las memorias de acce­
so aleatorio y consiste en el tiempo de acceso y algún tiempo más que se requiere antes de que
pueda iniciarse un segundo acceso a memoria. Este tiempo adicional puede que sea necesario
Memoria cachó 107

para que finalicen las transiciones en las líneas de señal o para regenerar los datos en el caso
de lecturas destructivas. Tenga en cuenta que el tiempo de ciclo de memoria depende de las
características del bus del sistema y no del procesador.
• Velocidad de transferencia: es la velocidad a la que se pueden transferir datos a, o desde, una
unidad de memoria. Para memorias de acceso aleatorio coincide con el inverso del tiempo de
ciclo.

Para otras memorias se utiliza la siguiente relación:

donde:

Tn = Tiempo medio de escritura o de lectura de N bits


Ta = Tiempo de acceso medio
N = Número de bits
R = Velocidad de transferencia, en bits por segundo (bps)

Se han empleado soportes físicos muy diversos para las memorias. Las más comunes en la actua­
lidad son las memorias semiconductoras, las memorias de superficie magnética, utilizadas para dis­
cos y cintas, y las memorias ópticas y magneto-ópticas.
Del almacenamiento de datos son importantes varias características físicas. En memorias volátiles
la información se va perdiendo o desaparece cuando se desconecta la alimentación. En las memorias no
volátiles la información, una vez grabada, permanece sin deteriorarse hasta que se modifique intencio­
nadamente; no se necesita la fuente de alimentación para retener la información. Las memorias de
superficie magnética son no volátiles. Las memorias semiconductoras pueden ser volátiles o no voláti­
les. Las memorias no borrables no pueden modificarse, salvo que se destruya la unidad de almacena­
miento. Las memorias semiconductoras de este tipo se conocen por el nombre de memorias de solo
lectura (ROM, Read Only Memory). Una memoria no borrable es necesariamente no volátil.
En memorias de acceso aleatorio, su organización es un aspecto clave de diseño. Por organiza­
ción se entiende su disposición o estructura física en bits para formar palabras. Como explicaremos
pronto, la estructura más obvia no es siempre la utilizada en la práctica.

JERARQ U ÍA DE M EM O R IA

Las restricciones de diseño de la memoria de un computador se pueden resumir en tres cuestiones:


¿cuánta capacidad? ¿cómo de rápida? ¿de qué coste?
La cuestión del tamaño es un tema siempre abierto. Si se consigue hasta una cierta capacidad, pro­
bablemente se desarrollarán aplicaciones que la utilicen. La cuestión de la rapidez es, en cierto sentido,
fácil de responder. Para conseguir las prestaciones óptimas, la memoria debe seguir al procesador. Es
decir, cuando el procesador ejecuta instrucciones, no es deseable que tenga que detenerse a la espera
de instrucciones o de operandos. La última de las cuestiones anteriores también debe tenerse en cuen­
ta. En la práctica, el coste de la memoria debe ser razonable con relación a los otros componentes.
108 Organización y arquitectura de computadores

Como es de esperar, existe un compromiso entre las tres características clave de coste, capacidad,
y tiempo de acceso. En un momento dado, se emplean diversas tecnologías para realizar los sistemas
de memoria. En todo el espectro de posibles tecnologías se cumplen las siguientes relaciones:

• A menor tiempo de acceso, mayor coste por bit.


• A mayor capacidad, menor coste por bit.
• A mayor capacidad, mayor tiempo de acceso.

El dilema con que se enfrenta el diseñador está claro. El diseñador desearía utilizar tecnologías
de memoria que proporcionen gran capacidad, tanto porque esta es necesaria como porque el coste
por bit es bajo. Sin embargo, para satisfacer las prestaciones requeridas, el diseñador necesita utilizar
memorias costosas, de capacidad relativamente baja y con tiempos de acceso reducidos.
La respuesta a este dilema es no contar con un solo componente de memoria, sino emplear una
jerarquía de memoria. La Figura 4.1 ilustra una jerarquía típica. Cuando se desciende en la jerar­
quía ocurre:

Figura 4.1. Jerarquía de memoria.


Memoria cachó 109

a) Disminuye el coste por bit.


b) Aumenta la capacidad.
c) Aumenta el tiempo de acceso.
d) Disminuye la frecuencia de accesos a la memoria por parte del procesador.

Así pues, memorias más pequeñas, más costosas y másrápidas, se complementan con otras más
grandes, más económicas y más lentas. La clave deléxito de estaorganización está en el último item
(d): la disminución de la frecuencia de acceso. Examinaremos con detalle este concepto cuando
hablemos de la caché (después, en este mismo capítulo) y de la memoria virtual (en el Capítulo 8),
pero daremos aquí una breve explicación.

Ejem plo 4.1. S u p o n g a m o s q u e el p roce sad or tiene que acceder a d o s niveles d e la m e m o ­


ria. El nivel 1 contiene 1 000 p alabras y tiene un tie m p o d e acceso de 0,01 /xs. El nivel 2 c o n ­
tiene 100 000 p alabras y tiene un tie m p o de acceso de 0,1 /xs. S u p o n g a m o s que si la palabra
a la q u e se va a acceder está en el nivel 1, el p ro ce sa d o r accede a ella directamente. S i está
en el nivel 2, en ton ce s e s prim eram ente transferida al nivel 1 y d e sp u é s accedida por el p ro­
cesador. Por sim p licid ad ig n o ra m o s el tie m p o necesario para que el p roce sad or determ ine
si la palabra está en un nivel u otro. La Figura 4.2 m uestra la fo rm a q u e en general tiene la
curva q u e representa esta situación. La figu ra m uestra el tie m p o de a cceso m e d io a una
m em oria de d o s niveles, en fu n ció n d e la tasa de acierto H, d o n d e H se define c o m o la frac­
ción del total de a cc e so s a m e m o ria e n con tra d o s en la m e m o ria m á s rápida (por ejemplo,
en la caché); T7e s el tie m p o de acceso al nivel 1, y 7^el tie m po de acceso al nivel 2 1. C o m o
puede verse, para porcentajes altos de a c c e so s al nivel 1, el tie m p o de acceso total p ro m e ­
d io e s m u ch o m á s p ró x im o al del nivel 1 que al del nivel 2.
En nuestro ejemplo, si s u p o n e m o s que el 95 por ciento de lo s a cc e so s a m e m o ria se
encuentran co n éxito en la caché, en ton ce s el tie m p o m e d io para acceder a una palabra
puede e xp resa rse en la form a:

(0,95) (0,01 /xs) + (0,05) (0,01 /xs + 0,1 /xs) = 0,0095 /xs + 0,0055 /xs = 0,015 /xs

C o m o era deseable, el tie m p o de acceso m e d io está m u c h o m á s p ró x im o a 0,01 /xs que


a 0,1 /xs.

En principio, el uso de dos niveles de memoria para reducir el tiempo de acceso medio funciona,
pero solo si se aplican las condiciones (a) a (d) anteriores. Empleando diversas tecnologías se tiene
todo un espectro de sistemas de memoria que satisfacen las condiciones (a) a (c). Afortunadamente,
la condición (d) es también generalmente valida.
La base para la validez de la condición (d) es el principio conocido como localidad de las referen­
cias [DENN68]. En el curso de la ejecución de un programa, las referencias a memoria por parte del
procesador, tanto para instrucciones como para datos, tienden a estar agrupadas. Los programas nor­
malmente contienen un número de bucles iterativos y subrutinas. Cada vez que se entra en un bucle o
una subrutina, hay repetidas referencias a un pequeño conjunto de instrucciones. De manera similar, las

1 Si la palabra accedida se encontraba en la memoria más rápida, se dice que se ha producido un acierto. Y si no se
encontraba en la memoria más rápida, se dice que ha tenido lugar un fallo.
110 Organización y arquitectura de computadores

Fracción de accesos que implican solo al nivel 1 (tasa de aciertos)

Figura 4.2. Pre stacion e s de una m e m o ria de d o s niveles sencilla.

operaciones con tablas o con matrices conllevan accesos a un conjunto de palabras de datos agrupadas.
En periodos de tiempo largos, las agrupaciones (clusters) en uso cambian, pero en periodos de tiempo
cortos, el procesador trabaja principalmente con agrupaciones fijas de referencias a memoria.
De acuerdo con lo anterior, es posible organizar los datos a través de la jerarquía de tal manera
que el porcentaje de accesos a cada nivel siguiente más bajo sea sustancialmente menor que al nivel
anterior. Considérese el ejemplo de dos niveles ya presentado, y que la memoria del nivel 2 contiene
todos los datos e instrucciones de programa. Las agrupaciones actuales pueden ubicarse temporal­
mente en el nivel 1. De vez en cuando, una de las agrupaciones del nivel 1 tendrá que ser devuelta al
nivel 2 a fin de que deje sitio para que entre otra nueva agrupación al nivel 1. En general, sin embar­
go, la mayoría de las referencias serán a instrucciones y datos contenidos en el nivel 1.
Este principio puede aplicarse a través de más de dos niveles de memoria, como sugiere la jerar­
quía mostrada en la Figura 4.1. El tipo de memoria más rápida, pequeña y costosa, lo constituyen los
registros internos al procesador. Un procesador suele contener unas cuantas docenas de tales registros,
aunque algunas máquinas contienen cientos de ellos. Descendiendo dos niveles, la memoria principal
es el principal sistema de memoria interna del computador. Cada posición de memoria principal tiene
una única dirección. La memoria principal es normalmente ampliada con una caché, que es más
pequeña y rápida. La caché no suele estar visible al programador, y realmente tampoco al procesador.
Es un dispositivo para escalonar las transferencias de datos entre memoria principal y los registros del
procesador a fin de mejorar las prestaciones.
Las tres formas de memoria que acabamos de describir son, normalmente, volátiles y de tecnolo­
gía semiconductora. El uso de tres niveles aprovecha la variedad existente de tipos de memorias semi­
conductoras, que difieren en velocidad y coste. El almacenamiento de datos de forma más permanente
se hace en dispositivos de memoria masiva, de los cuales los más comunes son el disco duro y los dis­
positivos extraíbles, tales como discos extraíbles, cintas y dispositivos ópticos de almacenamiento.

También podría gustarte