Você está na página 1de 6

Princpios de

Localidade Espacial e Temporal

Estudo de Caso: Programa de Multiplicao de Matrizes


Localidade Espacial
Se o programa est acessando EndN
Bloco
um determinado endereo de ..
..
memria (E) em um instante ..
qualquer do tempo (t), este ..
princpio diz que grande a End5
End4
probabilidade deste mesmo
End3
programa acessar os 11101101 End2
endereos vizinhos de E nos 10001101 End1

instantes seguintes do tempo.


O que est acontecendo no programa?
Est no cache? Memria Cache
Passo 1:
k=i=j=0 -> A[0][0] EndN
Bloco
Passo 2: 1 2 ..
k=1; i=j=0 -> A[0][1] ..
..
Est no cache?
..
Localidade End5
Nosso programa: Espacial 4 End4
A
for(int i=0;i<N;i++) 3 End3
for(int j=0;j<N;j++) 2 End2
for(int k=0;k<N;k++) A
1 End1
C[i][j]+=A[i][k]*B[k][j]; Alocao
1 2 Mem. Principal
3 4
Matriz A
Localidade Temporal
Se o programa est acessando EndN
Bloco
um determinado endereo de ..
..
memria (E) em um instante ..
qualquer do tempo (t), este ..
princpio diz que grande a End5
End4
probabilidade deste mesmo
End3
programa acessar o mesmo 11101101 End2
endereo E nos instantes 10001101 End1

seguintes do tempo.
Resumindo
Quanto menos acessos memria principal,
maior o desempenho do programa!
Aumentar a localidade, espacial e temporal,
diminui o tempo de execuo do programa!
Diminuir a taxa de paginao (SO) torna a
execuo mais rpida!
Aproveitar conhecimento de SO + ARQUITETURA
na programao = cdigo mais eficiente!
Programar Bem!
Atividade sobre o Artigo
1. O que o controlador de memria? Explique
sua funo.
2. Explique como funciona a tecnologia multi-
channel.
3. Explique as diferenas entre: dual, triple e
quad channel.
4. O que devemos ter de suporte para que esta
tecnologia seja ativada na mquina?