Taxa de falta de cache da matriz

Eu estou tentando descobrir como calcular a taxa de falta de uma matriz. Eu tenho a resposta, mas não estou entendendo como a resposta chegou. Eu tenho o seguinte código:

int C[N1][N2];
int A[N1][N3];
int B[N3][N2];

initialize_arrays(A, B, C, N1, N2, N3);

for(i=0; i<N1; ++i)
   for(j=0; j<N2; ++j)
      for(k=0; k<N3, ++k)
         C[i][j] += A[i][k] * B[k][j];

Eu também tenho as seguintes informações:N1=N2=N3=2048 (O que isto significa??). O processador possui um cache de dados L1 de 32kB com tamanho de linha de 64B (sem cache L2). (qual é o tamanho da linha?)

Eu sei que a taxa de erro da matriz C é(N^2/16)/N^3. Eu sei que a fórmula é(total misses)/(total accesses). Vejo que existemN^3 total de acessos, mas como eles conseguiram o total de erros?

Eu também sei a taxa de falta da matriz B:(N^3)/(N^3) e A:(N^2/16)/N^3. Alguém poderia me explicar como eles conseguiram as falhas totais aqui também?

questionAnswers(1)

yourAnswerToTheQuestion