¿Inclusivo o exclusivo? L1, L2 caché en el procesador Intel Core IvyBridge

Tengo un procesador Intel Core IvyBridge, CPU Intel (R) Core (TM) i7-3770 a 3,40 GHz (L1-32KB, L2-256KB, L3-8MB). Sé que L3 es inclusivo y compartido entre múltiples núcleos. Quiero saber lo siguiente con respecto a mi sistema.

PARTE 1 :

¿L1 es inclusivo o exclusivo?¿L2 es inclusivo o exclusivo?

PARTE 2 :

Si L1 y L2 son ambos inclusive, para encontrar el tiempo de acceso de L2, primero declaramos una matriz (1 MB) de tamaño más que la caché L2 (256 KB), luego comenzamos a acceder a toda la matriz para cargarla en la caché L2. Después de eso, accedemos al elemento de la matriz desde el índice de inicio hasta el índice final con un paso de 64B, ya que el tamaño de la línea de caché es 64B. Para obtener un mejor resultado preciso, repetimos este proceso (accediendo a los elementos de la matriz en el índice, inicio y fin) varias veces, digamos 1 millón de veces y tomamos el promedio.

Entiendo por qué este enfoque da el resultado correcto de la siguiente manera: cuando accedemos a la matriz de tamaño mayor que el tamaño de caché L2, la matriz completa se carga desde la memoria principal a L3, luego desde L3 a L2, luego L2 a L1. Los últimos 32 KB de toda la matriz están en L1, ya que se accedió recientemente. La matriz completa también está presente en la caché L2 y L3 también debido a la coherencia de la caché y la propiedad inclusiva. Ahora, cuando comienzo a acceder a la matriz nuevamente desde el inicio del índice, que esno en la memoria caché L1, pero en la memoria caché L2, por lo que habrá una falta de memoria caché y se cargará desde la memoria caché L2. Y de esta manera, se requerirá un mayor tiempo de acceso para todos los elementos de toda la matriz y, en total, obtendré el tiempo de acceso total de toda la matriz. Para obtener el acceso único tomaré el promedio del total no de acceso.

Mi pregunta es -Estoy en lo correcto ?

Gracias por adelantado .

Respuestas a la pregunta(1)

Su respuesta a la pregunta