Rendimiento de la memoria caché

Tipos de cachés:

  • Caché L1: el caché integrado en la propia CPU se conoce como caché L1 o nivel 1. Este tipo de caché contiene los datos más recientes, por lo que cuando se requieren los datos nuevamente, el microprocesador inspecciona primero este caché para que no tenga que pasar por la memoria principal o el caché de nivel 2. El significado principal detrás del concepto anterior es «Localidad de referencia», según la cual una ubicación recién accedida por la CPU tiene una mayor probabilidad de ser requerida nuevamente.
  • Caché L2: este tipo de caché reside en un chip separado junto a la CPU, también conocido como caché de nivel 2. Esta memoria caché almacena datos usados ​​recientemente que no se pueden encontrar en la memoria caché L1. Algunas CPU tienen caché L1 y L2 incorporado y designan el chip de caché separado como caché de nivel 3 (L3).

           El caché integrado en la CPU es más rápido que el caché separado. El caché separado es más rápido que la RAM. El caché incorporado se ejecuta a la velocidad de un microprocesador.

  • Caché de disco: contiene los datos de lectura más recientes del disco duro y esta caché es mucho más lenta que la RAM.
  • Caché de instrucciones frente a caché de datos: la instrucción o I-cache almacena instrucciones solo, mientras que Data o D-cache solo almacena datos. Distinguir los datos almacenados por este método reconoce el diferente patrón de comportamiento de acceso de instrucciones y datos. Por ejemplo: los programas necesitan involucrar pocos accesos de escritura y, a menudo, exhiben más localidad temporal y espacial que los datos que procesan.
  • Caché unificado frente a caché dividido: un caché que almacena tanto instrucciones como datos se denomina caché unificado. Un caché dividido, por otro lado, consta de dos unidades asociadas pero en gran medida independientes: un I-cache y D-cache. Este tipo de caché también se puede diseñar para tratar dos unidades independientes de manera diferente.

El rendimiento de la memoria caché se mide en términos de una cantidad llamada Ratio de aciertos . Cuando la CPU se refiere a la memoria y revela la palabra en el caché, se indica que se ha producido un éxito con éxito. Si la palabra no se descubre en la memoria caché, la CPU recurre a la memoria principal para encontrar la palabra preferida y se denomina pérdida de la memoria caché.

  • Proporción de aciertos (h) :

Relación de aciertos (h) = Número de aciertos / Número total de referencias de CPU a la memoria = Número de aciertos / (Número de aciertos + Número de errores)

La proporción de aciertos no es más que una probabilidad de obtener aciertos de una cierta cantidad de referencias de memoria realizadas por la CPU. Entonces su rango es 0 <= h <= 1 .

  • Tiempo medio de acceso (t avg ):

t promedio = h X t c   + ( 1- h ) X ( t c + t metro ) = t c + ( 1- h ) X t metro

Sean t c , hy t m el tiempo de acceso a la memoria caché, la tasa de aciertos en la memoria caché y el tiempo de acceso principal, respectivamente. 

Tiempo medio de acceso a la memoria = Tiempo de acierto + Tasa de fallos X Penalización de fallos

Miss Rate: Se puede definir como la fracción de accesos que no están en el caché (ie (1-h)).

Miss Penalty: se puede definir como los ciclos de reloj adicionales para dar servicio a la falla, el tiempo adicional necesario para llevar la información favorecida a la caché desde la memoria principal en caso de falla en la memoria caché.

Estructura de la memoria caché

Tipos de errores de caché:

  • Error obligatorio (errores de arranque en frío o errores de primera referencia): este tipo de error se produce cuando se accede por primera vez a un bloque. En este tipo de fallo, el bloque debe llevarse al caché.
  • Falta de capacidad: este tipo de falta ocurre cuando el conjunto de trabajo de un programa es mucho mayor que la capacidad de almacenamiento de la memoria caché. Los bloques deben descartarse ya que no es posible mantener todos los bloques durante la ejecución del programa.
  • Falta de conflicto (fallas de colisión o fallas de interferencia): esta falla se encuentra principalmente en el caso de estrategias de colocación de bloques de mapeo directo o asociativo establecido, la falla de conflicto ocurre cuando varios bloques se asignan al mismo conjunto o marco de bloque.
  • Falta de coherencia (invalidación): ocurre cuando otros procesadores externos (p. ej., E/S) actualizan la memoria.

Rendimiento de la CPU:
el tiempo de la CPU se divide en ciclos de reloj que se dedican a ejecutar paquetes/programas y ciclos de reloj que se dedican a esperar el sistema de memoria. Los hits de caché son parte del ciclo regular de la CPU.

Tiempo de CPU = (Ciclos de reloj de ejecución de CPU + ciclos de reloj de parada de memoria) X Tiempo de ciclo de reloj

1. Ciclos de reloj de bloqueo de memoria (para caché de reescritura):

  • Ciclos de reloj de bloqueo de memoria = Ciclos de bloqueo de lectura + Ciclos de bloqueo de escritura
  • Ciclo de lectura-escritura = (Lectura/Programas) X Tasa de errores de lectura X Penalización de errores de lectura
  • Ciclo de parada de escritura = (Escritura/Programas) X Tasa de errores de escritura X Penalización de errores de escritura + Paradas del búfer de escritura

2. Ciclos de reloj de bloqueo de memoria (para caché de escritura simultánea):

  • Suponga que las paradas del búfer de escritura son insignificantes. Todos los accesos (lectura/escritura) se tratan de forma similar.
  • Ciclos de reloj de atasco de memoria = (Acceso a memoria/Programa) X Tasa de fallas X Penalizaciones de fallas
  • Ciclos de reloj de bloqueo de memoria = (Instrucciones/Programa) X (Errores/Instrucciones) X Penalizaciones por error

Medición y mejora del rendimiento de la caché:

1. Técnica utilizada para minimizar el tiempo medio de acceso a la memoria:

  • Reducir el tiempo de acierto, la penalización por error o la tasa de error.
  • Reducción de la penalización por error X tasa de error.

2. Técnicas para reducir el Hit time:

  • Caché pequeño y simple.
  • Cachés de seguimiento y acceso a caché canalizado
  • Evite la pérdida de tiempo en la traducción de direcciones.

3. Técnicas para reducir Miss Penalty:

  • Uso de caché multinivel.
  • Dar prioridad a la lectura falla sobre la escritura.
  • Cachés de víctimas

4. Técnicas para reducir la tasa de fallas:

  • Tamaño de bloque aumentado
  • Asociatividad superior.
  • Optimización del compilador
  • Caché grande.

5. Técnicas para reducir (Miss Rate X Miss Penalty):

  • Caché sin bloqueo
  • Precarga de hardware
  • Obtención previa controlada por el compilador

Publicación traducida automáticamente

Artículo escrito por infoutkarsh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *