Verificar la existencia de Cache Miss
[toc]
El propósito local es verificar el CacheMiss que puede aparecer en el protocolo de coherencia del caché en el caché de la CPU mencionado en "Análisis en profundidad de palabras clave volátiles";
El caché se compone de líneas de caché. Normalmente una línea de caché tiene 64 bytes. La CPU opera el caché en unidades de líneas de caché. Puede verificar el tamaño de la línea de caché mediante el siguiente comando:
Porque la CPU accede al caché y opera en la unidad más pequeña de líneas. Para el tipo largo, un tipo largo de datos tiene 64 bits, que son 8 bytes. Por lo tanto, para una matriz, dado que las direcciones de los elementos de la matriz son consecutivas, al cargar el primer elemento de la matriz, cargue los elementos posteriores. la línea de caché también. Si la longitud de una matriz de tipo largo es 8, entonces es de 64 bytes. Cuando la CPU opera la matriz, parece que debería colocar todos los elementos de la matriz en la línea de caché, pero la respuesta es no. En Java, la estructura de un objeto en la memoria contiene el encabezado del objeto. Hay una descripción relevante en la sección de diseño de la memoria de un objeto en "Análisis en profundidad de la palabra clave sincronizada";
Una línea de caché clásica
Un subproceso que se ejecuta en el núcleo 1 del procesador quiere actualizar el valor del mensaje variable, tomando posesión de esta línea de caché. Cuando el núcleo 1 obtiene la propiedad y comienza a actualizar X, la línea de caché correspondiente al núcleo 2 debe establecerse en el estado I. Cuando el núcleo 2 obtiene la propiedad y comienza a actualizar. Y, entonces el núcleo 1 corresponde a La línea de caché debe establecerse en el estado I (estado no válido). Turnarse para tomar la propiedad no solo genera una gran cantidad de mensajes RFO, sino también si un hilo necesita leer esta línea de datos. , las cachés L1 y L2 tendrán datos no válidos, y solo la caché L3. Lo anterior son datos sincronizados, pero el rendimiento de la caché L3 no es bueno;
Veamos primero los resultados
<; p> El documento de referencia está mejor escrito que yo. Si desea obtener más información, consulte los artículos de referencia de Connect.Comprender el uso compartido falso desde una perspectiva de Java
Comprender la caché de CPU desde una perspectiva de Java
Comprender la caché de CPU
p>
Dirección de recompensa