¿Cómo funciona el calificador volátil de C en el sistema informático?

Requisito previo: Sistemas informáticos , Unidad de procesamiento

Unidad de procesamiento:

  • Las unidades de procesamiento también tienen una memoria pequeña llamada registros.
  • La interfaz entre el procesador (unidad de procesamiento) y la memoria debe funcionar a la misma velocidad para un mejor rendimiento del sistema.

Memoria:

En la memoria, hay dos tipos, SRAM y DRAM. SRAM es costoso pero rápido y DRAM es barato pero lento. Los primeros días se utilizó la SRAM como memoria. Cuando el tamaño de la memoria comenzó a aumentar, el uso de DRAM aumentó y hoy en día solo se usa DRAM como memoria principal.

Durante el período, la velocidad del procesador aumentó, pero la velocidad de la memoria no . Por lo tanto, el rendimiento del sistema no aumentó, incluso se incrementó la velocidad del procesador. Para resolver el problema, los diseñadores han introducido SRAM de alta velocidad entre el procesador y la memoria principal.

Esta memoria se llama caché . Dado que la SRAM es costosa, el tamaño de la SRAM es pequeño. Almacena solo el acceso más reciente desde la memoria principal. Para almacenar el acceso más reciente y verificar si el contenido está disponible en Caché, el controlador de caché está incluido en el diseño.

El procesador puede deshabilitar el controlador de caché en su totalidad o puede indicarle al controlador de caché que almacene o no almacene en caché cualquier bloque específico de memoria.

A continuación se muestra un ejemplo de almacenamiento de datos en la memoria:

C

// C program to execute for loop 100 times
#include <stdio.h>
  
// Driver Code
int main()
{
    int i, j;
    j = 0;
  
    // For loop execute 100 times
    for (i = 0; i < 100; i++) {
        j = j + i;
    }
    return 0;
}

Explicación:
en el código anterior, cuando el bucle for se ejecuta 100 veces, la primera vez las variables se obtienen de la memoria principal y las 99 veces restantes las variables se obtienen de la memoria caché . Así se mejora el rendimiento. Esto se llama Cache Hit y Cache Miss . En este caso, el acierto de caché es del 99 % y el error de caché es del 1 %. De forma predeterminada, el controlador de caché está habilitado para mejorar el rendimiento.

Analicemos dos casos:

Caso 1: La memoria principal se comparte entre el Procesador y un Controlador.


En este caso, si la memoria caché está habilitada para el bloque de memoria compartido por el procesador y el controlador, y si el controlador de memoria caché almacena en caché el bloque de memoria compartida, el procesador no conocerá las actualizaciones realizadas por el controlador en la memoria compartida. El procesador obtendrá los datos solo de la memoria caché. Por lo tanto, esta área de memoria compartida debe deshabilitarse del caché. Por lo tanto, el procesador debe indicarle al controlador de caché que haga este trabajo. Un calificador volátil hace este trabajo .

Caso 2: El procesador está leyendo y escribiendo los registros del controlador. En este caso, si el controlador registra un cambio debido a alguna función interna, eso será leído por el procesador. Este controlador registra las ubicaciones de memoria que deben deshabilitarse del almacenamiento en caché. En este caso, también se utiliza el calificador volátil .

Publicación traducida automáticamente

Artículo escrito por manikumartharmaraj 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 *