El principio de la caché de composición de la computadora se explica en detalle al final del período.

1. ¿Por qué utilizar Cache (qué es Cache)?

  • Todos sabemos que el aumento en la frecuencia de la CPU conducirá a la mejora del rendimiento del sistema, pero la mejora del rendimiento del sistema depende no solo de la CPU, sino también de la arquitectura del sistema, la estructura de las instrucciones, la velocidad de transmisión de información entre varios componentes y la velocidad de acceso de los componentes de almacenamiento. Otros factores están relacionados, especialmente la velocidad de acceso entre la CPU y la memoria principal .
  • Si la velocidad de trabajo de la CPU es particularmente alta, pero la velocidad de acceso a la memoria es relativamente baja, hará que la CPU espere y reduzca la velocidad de procesamiento, lo que es un desperdicio de capacidad de la CPU hasta cierto punto.
  • De los dos puntos anteriores, sabemos que si queremos mejorar aún más el rendimiento del sistema informático, debemos reducir la diferencia de velocidad entre la CPU y la memoria, para que podamos insertar uno o más niveles de velocidad entre la DRAM lenta y la CPU rápida. La SRAM rápida y de pequeña capacidad juega un papel de almacenamiento en búfer; permite que la CPU acceda a los datos en la memoria principal rápidamente sin que el costo del sistema aumente demasiado, esto esMétodo de caché
    El papel de Cache

2. El principio de localidad del acceso al programa adoptado por Cache

1. ¿Cuál es el principio de localidad de acceso al programa?

  • La localidad de acceso al programa: en un intervalo de tiempo corto, las direcciones generadas por el programa tienden a concentrarse en un rango pequeño del espacio de direcciones lógicas de la memoria. Este tipo de acceso frecuente a la dirección de memoria del rango local y la dirección fuera de este rango. Un fenómeno en el que rara vez se accede a las direcciones.
    Principio de localidad del acceso al programa
  • La relación entre el principio de localidad del acceso al programa y la caché : utilizando el principio de localidad del acceso al programa, la caché se puede configurar entre la memoria principal y los registros de propósito general de la CPU, y una parte de las instrucciones o datos cerca de la dirección de la instrucción que se está ejecutando se puede transferir desde la memoria principal Este registro es utilizado por la CPU durante un período de tiempo, lo que aumenta la velocidad de la CPU para acceder al sistema de almacenamiento. Cuando el programa continúa ejecutándose, el principio de localidad de acceso al programa cambia constantemente y los nuevos datos se transferirán continuamente desde la memoria principal a la caché para reemplazar los datos originales.

Tres. Principio de funcionamiento de la caché

1. División de la dirección de la memoria principal

Inserte la descripción de la imagen aquí

  • Para facilitar la comparación y la búsqueda rápida, tanto la caché como la memoria principal se dividen en varios bloques del mismo tamaño, y cada bloque contiene varias palabras. Obviamente, el número de bloques de caché es mucho menor que el de la memoria principal.
  • Las funciones de los diferentes campos en la dirección anterior son las siguientes:
  • Dirección del bloque de memoria principal : es una dirección obtenida después de que la CPU accede a la dirección de la unidad de memoria principal dividida por el tamaño del bloque, y se utiliza para identificar el número de bloque de memoria principal donde se encuentra la unidad de memoria principal a la que accede la CPU. El rango de búsqueda se puede reducir a través de esta dirección.
  • Dirección de compensación dentro del bloque : también conocida como la dirección dentro del bloque, indica el valor de compensación de la unidad a la que accederá la CPU en un bloque determinado. Después de encontrar el bloque donde se encuentran los datos, la unidad específica a la que accederá la CPU se puede ubicar de acuerdo con este valor.
  • Índice : como indicador de dirección del banco de memoria caché, señala el rango de acceso de la CPU al banco de memoria caché, como especificar una determinada fila o algunas filas del caché.
  • Marcado : El marcado es también una dirección más detallada que se obtiene después de dividir aún más la dirección del bloque de memoria principal, como base para juzgar si el contenido al que accederá la CPU está en la caché.

2. La estructura básica de Cache

La estructura de Cache incluye principalmente 3 partes:

  • Almacenamiento de datos: se utiliza para almacenar una copia de los datos de almacenamiento principales.
  • Almacenamiento de etiquetas: se utiliza para almacenar etiquetas. Los diferentes tipos de métodos de asignación tienen diferentes números de etiquetas. Por lo tanto, la capacidad requerida del banco de memoria de etiquetas también es diferente.
  • Bit válido: se utiliza para identificar si los datos almacenados en la caché son válidos. La CPU necesita usar el bit válido cuando busca la caché y actualiza la caché.

Inserte la descripción de la imagen aquí

3. Organización de la caché y acceso de la CPU al proceso de la caché

Inserte la descripción de la imagen aquí

  • La figura muestra el proceso de acceso de la CPU a la caché en diferentes condiciones, a continuación tomaremos la operación de lectura como ejemplo para analizarla con más detalle.
  • Proceso de acierto de caché:
    (1) Divida lógicamente la dirección donde la CPU accede a la memoria para obtener la etiqueta, el índice y la dirección en el bloque.
    (2) De acuerdo con el valor del campo de índice, leemos el valor de la etiqueta de la unidad específica del banco de memoria de etiquetas Cache y lo comparamos con el valor de la etiqueta en (1).
    (3) Si el resultado de la comparación es el mismo (hit), se forma la dirección de caché.
    (4) Acceda al cuerpo de almacenamiento de datos de la caché de acuerdo con la dirección de la caché formada, donde la parte marcada ubica el rango del cuerpo de almacenamiento de datos de acceso, y la dirección en el bloque encuentra la unidad de acceso a la que se debe acceder en este rango
    (5) La información leída de la caché se envía a UPC.
  • Proceso de falta de caché:
    (1) Divida lógicamente la dirección de la CPU para acceder a la memoria y obtener la etiqueta, el índice y la dirección en el bloque.
    (2) De acuerdo con el valor del campo de índice, leemos el valor de la etiqueta de la unidad específica del banco de memoria de etiquetas Cache y lo comparamos con el valor de la etiqueta en (1).
    (3) El resultado de la comparación es diferente (llamado error), lo que indica que la unidad de acceso requerida por la CPU no está en el caché y entra en la estrategia de reemplazo del caché.
    (4) Si el cuerpo de almacenamiento de datos de la caché está lleno, intercambie el bloque de datos de una determinada unidad en el cuerpo de almacenamiento de datos de la caché a la memoria principal, y la dirección de la unidad de los datos intercambiados también se indica mediante el campo de índice; si el cuerpo de almacenamiento de datos de la caché no está lleno, La información se transfiere desde la memoria principal al cuerpo de almacenamiento de datos de la caché, y la ubicación de almacenamiento está relacionada con el método de mapeo, y el campo de índice puede señalar.
    (5) Después de que el bloque de datos se transfiere desde la memoria principal al cuerpo de almacenamiento de datos de la caché, la información de la unidad de acceso a la CPU se envía directamente a la CPU al mismo tiempo.
    (6) Actualice la etiqueta de una unidad específica en la etiqueta Cache. La dirección de la unidad está relacionada con el método de asignación de direcciones utilizado, y el campo de índice puede señalarlo.

4. Cálculo detallado de la tasa de aciertos de caché

Para evaluar el efecto del sistema Cache, se introduce el concepto de tasa de aciertos.

  • Supongamos que Nc es el número de veces que un programa llega a la caché durante el proceso de ejecución, y Nm es el número de veces que se accede a un programa desde la memoria principal, entonces la radio de hit H se define como:
    Inserte la descripción de la imagen aquí
    • Entonces 1-H es la radio perdida, o tasa de perdida . Si Tc representa el tiempo de acceso a la caché durante un acierto, y Tm representa el tiempo para acceder a la memoria principal durante una falla, el tiempo de acceso promedio Ta del caché / sistema de memoria principal es:
      Inserte la descripción de la imagen aquí
    • El propósito de diseñar la memoria caché es hacer que el tiempo de acceso promedio Ta del sistema de memoria caché / principal sea más cercano a Tc con una sobrecarga de hardware menor . Si se usa E = Tc / Ta como la eficiencia de acceso , hay:
      Inserte la descripción de la imagen aquídonde r = Tm / Tc , que representa el múltiplo del tiempo de acceso a la memoria principal y el tiempo de acceso a la caché.
    • No es difícil ver que la eficiencia de acceso del sistema de almacenamiento está relacionada principalmente con H y r. Cuanto más cerca esté la tasa de aciertos H de 1, mayor será la E. Además, el valor de r no puede ser demasiado grande, generalmente alrededor de 5-10.

4. Método de conversión y asignación de direcciones de caché

1. ¿Qué es la asignación de direcciones de caché?

  • El mapeo de direcciones se refiere a mapear el espacio de direcciones de la memoria principal al espacio de direcciones de la caché, es decir, cargar los programas o los datos almacenados en la memoria principal en la caché de acuerdo con una regla determinada y establecer la correspondencia entre las dos direcciones.

2. ¿Qué es la conversión de direcciones de caché?

  • La conversión de direcciones se refiere a convertir la dirección de la memoria principal en la dirección de caché de acuerdo con la función de asignación de direcciones cuando el programa se está ejecutando. La asignación de direcciones está relacionada con el método de conversión y los diferentes métodos de asignación de direcciones tienen diferentes métodos de conversión de direcciones.

3. Tres métodos de asignación de direcciones:

(1) Mapeo completamente asociativo

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

(2) Mapeo directo

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

(3) Mapeo asociativo grupal

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquíInserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

Cinco. Los tres algoritmos de reemplazo de caché

1. Primero en entrar, primero en salir (FIFO)

El algoritmo FIFO selecciona el primer bloque transferido a la caché para su reemplazo. No necesita registrar el uso de cada bloque, que es relativamente fácil de implementar y tiene una sobrecarga baja. Sin embargo, no sigue el principio de localidad de acceso a la memoria, por lo que no puede mejorar la tasa de aciertos de la caché. Porque la información importada más antigua se puede utilizar más tarde.

2. Menos utilizado recientemente (LRU) y menos utilizado (LFU)

LRU intercambia líneas que no han sido visitadas durante mucho tiempo en un futuro próximo. Con este fin, se establece un contador para cada fila. Cada vez que el caché golpea, el contador de filas de golpe se borra y los contadores de otras filas se incrementan en 1. Por lo tanto, es un contador de tiempos no visitados, que puede mejorar efectivamente la tasa de aciertos del caché.
LFU intercambia la fila de datos con el menor número de visitas en un período de tiempo. Se establece un contador para cada fila. Los datos de la nueva fila se cuentan desde 0 y el contador se incrementa en uno cada vez que se accede. Sin embargo, la desventaja de LFU es que no puede reflejar estrictamente las visitas recientes. Si dos filas A y B en una fila en particular, A se visita con frecuencia en el período inicial pero no se visita en el período posterior, y B no se visita en el período inicial y se visita con frecuencia en el período posterior, entonces B puede reemplazarse porque el recuento es menor que A.

3. Método aleatorio

El método aleatorio consiste en determinar aleatoriamente el bloque que se reemplazará. Este método es el más fácil de implementar, pero no puede mejorar la tasa de aciertos de la caché y, en algunos casos, incluso puede reducir la tasa de aciertos.

Supongo que te gusta

Origin blog.csdn.net/qq_43663263/article/details/102797565
Recomendado
Clasificación