concurrency - estados - modos de ejecucion de un proceso
¿Qué es un golpe de caché y un error de caché? ¿Por qué el cambio de contexto causa la falta de caché? (5)
Desde el 11 ° Capítulo ( Rendimiento y escalabilidad ) y la sección denominada Conmutación de contexto del libro JCIP :
Cuando se conecta un hilo nuevo, es poco probable que los datos que necesita estén en el caché del procesador local, por lo que un cambio de contexto causa una ráfaga de errores de caché y, por lo tanto, los hilos se ejecutan un poco más lentamente cuando se programan por primera vez.
- ¿Alguien puede explicar de una manera fácil de entender el concepto de falta de caché y su probable opuesto ( golpe de caché )?
- ¿Por qué el cambio de contexto causaría una gran cantidad de errores de caché?
¿Alguien puede explicar de una manera fácil de entender el concepto de falta de caché y su probable opuesto (golpe de caché)?
Por lo general, una falla de caché se produce cuando se busca algo en la memoria caché y no se encuentra: la memoria caché no contenía el elemento que se buscaba. El golpe de caché se produce cuando busca algo en un caché y almacena el elemento y puede satisfacer la consulta.
¿Por qué el cambio de contexto causaría una gran cantidad de errores de caché?
En términos de memoria, cada procesador tiene una memoria caché , una copia de alta velocidad de pequeñas porciones de la memoria principal. Cuando un nuevo hilo se cambia de contexto en un procesador, la memoria caché local está vacía o no corresponde a los datos necesarios para el hilo. Esto significa que todas (o la mayoría) de las búsquedas de memoria realizadas por ese nuevo subproceso resultan en errores de caché porque los datos que necesita no se almacenan en el caché de memoria local. El hardware tiene que realizar una serie de solicitudes a la memoria principal para llenar el caché de memoria local, lo que hace que el hilo se ejecute inicialmente más lento.
Si el procesador encuentra que la ubicación de la memoria está en la memoria caché, decimos que un golpe de caché, de lo contrario, hablamos de una falta de caché.
Si los datos deseados están en L1, entonces es un golpe de caché. Y si los datos deseados están en otro nivel de memoria caché, entonces es una falta de caché.
Siempre que el procesador quiera obtener datos de la memoria principal, primero observará el búfer de caché para ver si la dirección correspondiente está presente en el búfer. Si está allí, llevará a cabo la operación utilizando el caché; no es necesario buscar desde la memoria principal. Esto se llama un "golpe de caché".
Si la dirección no está presente en la memoria caché, se llama "falta de caché". Si se ha producido una falta de caché, eso significa que el procesador ha ido a la memoria principal para recuperar la dirección y le lleva algo más de tiempo.
También debe observar que si un cambio de contexto causa un retorno de un hilo ejecutado previamente al estado activo en un procesador con acceso a los datos en caché, existe la posibilidad de que el "conjunto de trabajo" requerido aún esté en el caché. La probabilidad de que esto sea cierto depende del tamaño de la caché (y de la estructura). También depende de la carga de trabajo: cuánta demanda de memoria caché estuvo allí durante los hilos inactivos o período de espera, y cuánto tiempo dura el período de espera o inactividad.