A memória cache é utilizada em diferentes níveis em arquiteturas de computadores para minimizar o número de acessos à memória principal, que é geralmente maior, mais lenta e mais barata. Considere, a seguir, dois programas em linguagem C a serem executados em uma CPU com uma cache de 64 linhas de 64bytes.
Programa 1:
double a[1024][8];
double sum = 0;
int i,j;
for (i = 0; i < 1024; i++){
for(j = 0; j < 8; j++){
sum += a[i][j];
}
}
Programa 2:
double a[1024][8];
double sum = 0;
int i,j;
for (j = 0; j < 1024; j++){
for(i = 0; i < 8; i++){
sum += a[i][j];
}
}
O número de acessos à memória principal que serão feitos pelo Programa 1 e pelo Programa 2 em decorrência da cache instalada entre a memória e a CPU são, respectivamente,