Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Princpio da Localidade
Apenas uma parte relativamente pequena do
espao de endereamento dos programas
acessada em um instante qualquer
Localidade Temporal
Um item referenciado tende a ser referenciado
novamente dentro de um espao de tempo curto
Localidade Espacial
Se um item referenciado, itens cujos endereos
sejam prximos ao dele tendem a ser logo
referenciados
Localidade em Programas
Localidade temporal:
Em funo de sua estrutura, as instrues e dados
da maioria dos programas tendem a ser acessados
de maneira repetitiva
Localidade espacial:
As instrues so acessadas quase sempre de
maneira seqencial
Elementos de arrays ou registros
Nveis de Memria - 01
Dados sempre copiados entre nveis de memria
adjacentes
Anlise focada apenas em dois nveis, um superior
e um inferior
Bloco:
Unidade mnima de informao trocada entre
nveis
Nveis de Memria - 02
Processador
Dados transferidos
Taxa/Razo de Acertos
Mede desempenho da Hierarquia
Acerto:
Informao solicitada pelo processador encontra-se no
nvel superior
Taxa de acerto: frao de acessos com acerto
Falta:
Memria Cache
Originalmente, nvel da hierarquia de memria
situado entre o processador e a memria
principal
Termo estendido para qualquer memria
gerenciada de modo a tirar vantagem da
localidade de acesso
Caractersticas - 01
Diminui o gargalo existente entre processador e
memria principal
Diferena de velocidade
10
Caractersticas - 02
Tecnologia semelhante da CPU e, em
conseqncia, possui tempos de acesso
compatveis com a mesma, resultando numa
considervel reduo da espera da CPU para
receber dados e instrues da cache
11
Nveis De Cache - 01
L1 Level 1 (nvel 1)
Dentro do processador
Mesma velocidade do processador
L2 Level 2 (nvel 2)
Dentro do invlucro, fora do chip
Metade da velocidade do processador
L3 Level 3 (nvel 3)
Cache externa, situada na placa me
12
Nveis De Cache - 02
Invlucro do processador
Processador
Cache L2
Cache L1
Memria
principal
13
Diviso da Cache L1
A cache L1 geralmente dividida em cache de
dados e cache de instrues: processamento
mais rpido
processador
dados
instrues
Cache L1
14
Localidade
Devido ao princpio da localidade, interessante
que a memria cache armazene o pedao do
programa que executado repetidas vezes,
deixando o restante do programa que no est
sendo utilizado na memria principal
15
Utilizao da Cache - 01
Sempre que o processador vai buscar uma nova
instruo (ou dado), ele acessa a memria cache:
Se a instruo estiver na cache (acerto ou hit), ela
transferida em alta velocidade para o processador
Se a instruo no estiver na cache (falta ou miss), a
execuo do programa interrompida e a instruo
desejada transferida da MP para a MC
16
Utilizao da Cache - 02
No feita a transferncia somente da instruo,
mas sim de um bloco que, segundo o princpio
da localidade, contm instrues que sero
usadas em seguida
17
controlador
de cache
Processador
Memria
principal
Cache
Palavra
(instruo
ou dado)
Bloco
de palavras
18
19
Funo de Mapeamento
A funo de mapeamento indica quais blocos da
MP esto presentes na cache e onde eles esto
localizados na cache
A MC e MP esto divididas em blocos de x
palavras
A MC pode conter m blocos (linhas)
A MP pode conter b blocos
20
MP
Bloco 0
.
.
.
Byte 0
Byte 1
Byte 63
Bloco 1
.
.
.
Byte 0
Byte 1
Byte 63
.
.
.
Bloco
226 -1
.
.
.
Byte 0
Byte 1
Byte 63
Diviso da MP de 4G bytes
em blocos de 64 bytes ento
tem-se 226 blocos de 64 bytes
21
MC
Byte 63
...
Byte 1
Byte 0
Linha 0
Byte 63
...
Byte 1
Byte 0
Linha 1
Byte 63
...
.
.
.
Byte 1
Byte 0
Linha 2
Byte 63
Tag ou
rtulo
...
Byte 1
Byte 0
Linha 1023
22
Mapeamento Direto - 01
Cada bloco da MP tem uma linha de cache
previamente definida para ser armazenado
Muitos blocos iro ser destinados a uma mesma
linha
23
B0
.
.
.
Byte 0
Byte 1
tag
Byte 63
B1
.
.
.
Byte 0
Byte 1
Byte 63
...
Byte 1 Byte 0
Linha 0
Byte 63
...
Byte 1 Byte 0
Linha 1
Byte 63
...
.
.
.
Byte 1 Byte 0
Linha 2
...
Byte 63
.
.
.
26
-1
.
.
.
Bloco 1023
Byte 0
Byte 1
Byte 63
Byte 63
24
Mapeamento Direto - 02
Cada linha da MC dever acomodar 216 blocos ou
65536 blocos (um de cada vez)
O campo tag serve para identificar qual bloco a
linha est armazenando no momento
25
Mapeamento Direto - 03
Cada endereo de MP pode ser dividido nos
seguintes elementos:
32 bits
Nmero do bloco
Nmero da linha
na linha
16 bits
216= 64K blocos
10 bits
210= 1024 linhas
Nmero do byte
6 bits
26= 64 bytes
26
Mapeamento Direto - 04
Exemplo:
O processador manda para a MC o seguinte
endereo:
00000000000001000000011001001000
4
25
27
00000000000001000000011001001000
25
Byte 63
...
Byte 1
Byte 0
Linha 0
Byte 63
...
Byte 1
Byte 0
Linha 1
Byte 63
...
Byte 1
Byte 0
Linha 2
Byte 1
Byte 0
Byte 63
Byte 63
Tag ou
rtulo
Byte 8
...
Byte 1
Byte 0
Linha 25
Linha 1023
28
Mapeamento Direto - 05
Se o campo tag do endereo for igual ao campo
tag da linha da cache, o contedo do byte
solicitado enviado para o processador
29
Mapeamento Direto - 06
Se os campos tag forem diferentes, isso significa
que o bloco desejado no se encontra na cache e,
portanto, deve ser transferido da MP para a
linha 25, substituindo o atual bloco para, em
seguida, a palavra (o byte) requerida ser
transferida para o processador pelo barramento
de dados
30
Mapeamento Direto - 08
A tcnica de mapeamento direto simples e de
baixo custo
Desvantagem: fixao da localizao para os
blocos
Imagine se durante a execuo de um programa um
dado cdigo fizer referncias repetidas a palavras
situadas em blocos alocados na mesma linha, ento
haver necessidade de sucessivas idas MP para
substituio de blocos (muitas faltas) e queda no
desempenho do sistema
31
Mapeamento Associativo - 01
Os blocos no tm uma linha fixada previamente
para seu armazenamento
O bloco armazenado em uma linha que
selecionada de acordo com o algoritmo de
substituio de cache
32
B0
.
.
.
Byte 0
Byte 1
Byte 63
B1
.
.
.
Byte 0
Byte 1
tag
Byte 63
...
Byte 1 Byte 0
Linha 0
Byte 63
...
Byte 1 Byte 0
Linha 1
Byte 63
...
.
.
.
Byte 1 Byte 0
Linha 2
...
Byte 63
.
.
.
26
-1
.
.
.
Byte 63
Byte 0
Byte 1
Byte 63
33
Mapeamento Associativo - 02
Cada linha da MC pode acomodar um dos 226
blocos da memria principal
O campo tag tem agora 26 bits de tamanho
34
Mapeamento Associativo - 03
Cada endereo de MP dividido nos
seguintes elementos:
32 bits
Nmero do bloco
Nmero do byte
26 bits
226 blocos
6 bits
26 bytes
35
Mapeamento Associativo - 04
Quando o processador realiza um acesso
memria, o campo bloco do endereo
comparado com todos os 1024 tags da cache
para verificar se o bloco est ou no presente
36
Mapeamento Associativo - 05
Se o bloco estiver presente, o byte transferido
para a CPU seno o endereo do bloco usado
para buscar na memria principal o bloco
ausente
37
Mapeamento Associativo - 06
Desvantagem: teste do campo bloco do endereo
de memria com todos os tags da cache
38
39
Bits de Validade
Quando o processador inicializado, a cache
est vazia e os rtulos no tm significado
Bits de validade so adicionados cache para
identificar se um bloco tem informaes vlidas
Bit igual a zero -> Informao invlida
40
Tratamento de Faltas 01
Atividades do controle principal:
Parar o processador
Congelar o contedo dos registradores
41
Tratamento de Faltas 02
1. Enviar memria o valor original de PC
2. Comandar uma leitura da unidade de memria e
esperar o resultado
3. Escrever o resultado da leitura na entrada da
cache, seu rtulo e bit de validade
4. Reiniciar a execuo da instruo no passo 1
42
Parada em Uso
Tcnica para reduo do nmero de ciclos
parados pela falta no acesso cache
Baseia-se no processamento de outras instrues
durante o tratamento de faltas
Na falta produzidas pelo acesso a dados novas
instrues que no dependem do dado podem ser
executadas
No ajuda para faltas no acesso a instrues
43
Algoritmos De
Substituio De Cache - 01
Qual bloco atualmente armazenado na cache
deve ser retirado para dar lugar a um novo bloco
que est sendo transferido?
LRU (Least Recently Used): O controlador de cache
escolhe o bloco que est h mais tempo sem ser
utilizado pela CPU
FIFO (First in first out): O controlador de cache
escolhe o bloco que est armazenado h mais tempo
na cache, independentemente de estar sendo usado ou
no com freqncia pela CPU
44
Algoritmos De
Substituio De Cache - 02
LFU (Least Frenquently Used): o controlador de
cache escolhe o bloco que tem tido menos acessos
(menos referncias) por parte da CPU
Escolha aleatria
45
46
Antes da execuo
da instruo X = Y + Z
Memria Principal
Cache
Processador
X=1
Y=7
Z=2
X=Y+Z
X=1
Y=7
Z=2
X=Y+Z
X=Y+Z
Bloco 4
Bloco 4
47
Depois da execuo
da instruo X = Y + Z
Memria Principal
Cache
Processador
X=1
Y=7
Z=2
X=Y+Z
X=9
Y=7
Z=2
X=Y+Z
X=Y+Z
Bloco 4
Bloco 4
48
Processador
Processador
Processador
X=Y+Z
Cache
X=1
Cache
X=1
cache
X=9
X=9
MP
X=9
X=1
X=9
49
50
Write Through - 01
Cada escrita em uma palavra da cache acarreta
em uma escrita na palavra correspondente na
MP, assegurando validade permanente e igual ao
contedo de ambas as memrias
Caso haja outras CPUs, estas alteraro tambm
suas caches
51
Write Through - 02
Simples, mas no favorece o desempenho
Qualquer escrita faz com que a informao seja
escrita tambm na memria principal
Aumento do nmero de ciclos de clock
Buffer de escrita:
Armazena o dado enquanto este aguarda sua escrita na
memria
Reduz o problema das escritas na mem. principal
Buffer cheio Processador parado em escritas
52
Write Through - 03
Faltas de escrita:
Processador simplesmente atualiza a memria
principal, como antes
No ocorrem leituras da memria principal
durante a escrita pelo processador
53
Write Back
54
Tamanho do Bloco 01
Relaciona-se com a explorao da localidade
espacial e desempenho
Em geral, a taxa de faltas cai com o aumento
do tamanho do bloco
55
Tamanho do Bloco 02
Taxa de faltas pode crescer se o bloco
representar uma frao considervel do tamanho
da cache
Pequeno nmero de blocos -> Alta competio
Blocos retirados da cache sem muita explorao