martes, 13 de mayo de 2008

Memoria Cache



1. Niveles de caché

Los diferentes tipos de caché se organizan por niveles, formando una jerarquía. En general se cumple que, a mayor cercanía a la CPU, se presenta mayor velocidad de acceso y menor capacidad de almacenamiento.
1. Caché de memoria: De acuerdo a la ubicación física que tienen en el sistema se denominan o identifican por niveles:

1. Nivel 1 (L1): Conocido como caché interno, es el nivel más cercano a la CPU (está en el mismo núcleo) con lo que el acceso se produce a la velocidad de trabajo del procesador (la máxima velocidad). Presenta un tamaño muy reducido, en Intel (4 a 32 KB), en VIA/Cyrix (1 a 64 KB), en AMD (8 a 128 KB).

2. Nivel 2 (L2): Conocido como caché externo, inicialmente se instalaba en la placa base (en el exterior de la CPU). A partir de los procesadores Pentium 4 vienen incorporado en el procesador (no precisamente en el núcleo). El nivel L2 apareció con el procesador Pentium Pro, es una memoria más lenta que L1, pero de mayor capacidad. Los tamaños típicos de la memoria caché L2 oscilan en la actualidad entre 256 KB y 4 MB.

3. Nivel 3 (L3): Se encuentra en algunas placas base, procesadores y tarjetas de interfaz. El procesador de Intel Itanium trae contenida en su cartucho al nivel L3 que soporta un tamaño hasta de 4 MB, y el Itanium 2 tolera hasta 6 MB de caché L3.

4. Nivel 4 (L4): Se encuentra ubicado en los periféricos y en algunos procesadores como el Itanium.

2. Caché de memoria RAM: La memoria principal RAM suele hacer de caché para los dispositivos de almacenamiento y otros tipos de periféricos.

3. Caché en disco duro: Utilizadas por los navegadores Web y algunos periféricos.

La búsqueda de información comienza por la caché L1, y se va subiendo nivel a nivel en caso de no encontrar lo que se busca en el nivel actual. Cuantas más capas se asciende, mayor es el tiempo de espera. Pero, a mayor cercanía a la CPU, la probabilidad de encontrar lo que se busca es mayor. Esta forma de trabajo resulta una excelente relación de compromiso entre diversos factores, y consigue mejorar el rendimiento del ordenador de forma notable.

2. Estructura y funcionamiento interno de una caché de memoria

La memoria caché está estructurado por celdas, donde cada celda almacena un byte. La entidad básica de almacenamiento la conforman las filas, llamados también líneas de caché. Por ejemplo, una caché L2 de 512 KB se distribuye en 16.384 filas (16 KB) y 32 columnas (32 bytes).

Cuando se copia o se escribe información de la RAM, por cada movimiento siempre cubre una línea de caché (en la caché anterior, siempre se mueven 32 bytes).

La memoria caché tiene incorporado, un espacio de almacenamiento llamado Tag RAM, que indica a que porción de la RAM se halla asociada cada línea de caché, es decir permite traducir una dirección de RAM en una línea de caché concreta.

Para que la RAM se reparte entre las líneas de caché disponibles, existen 3 técnicas:

1. Caché de mapeo directo: La memoria RAM se divide en porciones de igual tamaño, de acuerdo a la cantidad de líneas de caché existan. Cada línea de caché es un recurso a compartir por las direcciones de memoria de una porción diferente. Por ejemplo, si se dispone de una RAM de 64 MB y la caché de 512 KB, cada línea podrá almacenar 32 de las 4.096 direcciones que contiene la porción de RAM asociada (64 MB/ 16.384 líneas = 4.096 bytes / línea).

Esta técnica permite una búsqueda muy rápida, ya que cada posición de RAM sólo puede estar en una determinada línea. Sin embargo, la probabilidad de encontrar la información buscada es mínima.

2. Caché completamente asociativa: Cada línea de caché se puede llenar con cualquier grupo de posiciones de la memoria RAM. En este caso, el porcentaje de acierto es máximo. En cambio, el tiempo de acceso es muy elevado, puesto que una posición de RAM puede estar en cualquier línea de caché (esto es lento, incluso empleando algoritmos de búsqueda avanzados).

3. Caché asociativa por conjuntos de N líneas: La caché se divide en conjuntos de N líneas, a cada conjunto se le asocia un grupo de posiciones de RAM. Dentro del conjunto asignado, una posición de RAM puede ir a parar a cualquiera de las N líneas que lo forman, es decir dentro de cada conjunto la caché es totalmente asociativa. Esta situación es la más equilibrada, puesto que se trata de un compromiso entre las técnicas anteriores. Si se hace N=1, se tiene una caché. De mapeo directo. Si N es igual al número de líneas de la caché, se tiene una caché completamente asociativa. Si se escoge un valor de N apropiado, se alcanza la solución óptima.

Normalmente, la caché L2 es de mapeo directo, mientras que la caché L1 es asociativa por conjuntos de N líneas.

lunes, 12 de mayo de 2008

Bienvenidos

Bienvenidos al segundo blog de la carrera...
Otra vez no hace falta que coloquen sus datos
Colocaremos aqui informacion relacionada a la materia.
Cristian