Buscar

Arquitetura de Computadores 3

Prévia do material em texto

Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Memória Cache
Prof. Dr. Mauŕıcio Fernando Lima Pereira
Instituto de Computação - UFMT
4 de julho de 2018
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Conteúdo
1 Visão geral do sistema de memória do computador
2 Prinćıpios da memória cache
3 Elementos de projeto da memória cache
Conteúdo extráıdo de
Caṕıtulo 4 do livro do Stallings
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Memória de computador é composta por uma vasta gama de:
tipos
tecnologias
organização
desempenho
custo
Hierarquia de memória
Internas (Processador)
Externas (Dispositivos de E/S)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Caracteŕısticas dos sistemas de memória
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Caracteŕısticas dos sistemas de memória
Localização
CPU (registradores, memória de microprograma)
Interna (cache, RAM)
Externa (discos, fitas)
Capacidade
Internamente relacionado ao tamanho de palavra da máquina(8, 16, 32 bits)
A unidade de organização natural
Em geral o tamanho em bits de um inteiro e da instrução
Variações na arquiteturas: x86 tem instruções de tamanhos diferentes
Externamente ao número de Bytes ou palavras
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Caracteŕısticas dos sistemas de memória
Unidades endereçáveis
Menor local que pode ser endereçado exclusivamente.
Por Byte
Por Palavra
Endereço com A bits permite endereçar 2A unidades
Unidade de transferência
Interna:
Normalmente controlada pela largura do barramento.
Externa:
Normalmente um bloco que é muito maior que uma palavra.
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Caracteŕısticas dos sistemas de memória
Métodos de acesso
Sequencial:
Começa no ińıcio e lê em ordem.
Tempo de acesso depende da localização dos dados e local anterior.
Por exemplo, fita.
Direto:
Blocos individuais possuem endereço exclusivo.
Acesso saltando para vizinhança com busca sequencial para localização final
Tempo de acesso depende da localização e local anterior.
Por exemplo, disco.
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Caracteŕısticas dos sistemas de memória
Métodos de acesso
Aleatório:
Endereços individuais identificam localizações com exatidão.
Tempo de acesso é independente da localização ou acesso anterior.
P.e., RAM.
Associativo:
Dados são localizados por uma comparação com conteúdo de uma parte do
armazenamento
Analisa-se alguns bits do endereço
Tempo de acesso é independente do local ou acesso anterior.
P.e., cache.
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Caracteŕısticas dos sistemas de memória
Para o usuário, tão importante quanto a capacidade é o desempenho
Como avaliar este desempenho?
Três parâmetros de desempenho
Tempo de acesso (latência):
Memória de acesso aleatório: Tempo entre apresentar o endereço e obter os dados
válidos
Memória de acesso não aleatório: Tempo gasto para posicionar mecanismo de leitura
Tempo de ciclo de memória
Tempo de ciclo = tempo de acesso + recuperação.
Recuperação: Tempo que pode ser exigido para a memória se ”recuperar”antes do
próximo acesso.
Eliminação de transientes nas linhas de sinais ou restauração caso os dados sejam
lidos de forma destrutiva
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Caracteŕısticas dos sistemas de memória
Três parâmetros de desempenho:
Taxa de transferência
Taxa em que os dados podem ser movidos
Memória de acesso aleatório
Taxa de transferencia =
1
Tempo de ciclo
Memória de acesso não aleatório
Tn = TA +
n
R
Tn → Tempo médio pra ler ou escrever n bits
TA → Tempo de acesso médio
n → Número de bits
R → Taxa de transferência em bits por segundo (bps)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Caracteŕısticas dos sistemas de memória
Tipo f́ısico
Semicondutor: RAM, cache, registradores.
Magnético: Disco e fita.
Óptico: CD e DVD
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Hierarquia de memória
Restrições de memória de um computador estão relacionadas a três questões:
Quanto? Capacidade.
Que velocidade?
Quanto mais rápido a CPU for atendida melhor.
Menor tempo de acesso
A que custo?
Boa relação de custo
Diversas tecnologias para implementar sistemas de memória
Tempo de acesso mais rápido e maior custo por bit
Maior capacidade, menor custo por bit
Maior capacidade, tempo de acesso mais lento
Solução é a hierarquia de memória
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Hierarquia de memória
Enquanto se desce na hierarquia
1 Diminuição do custo por bit
2 Aumento da capacidade
3 Aumento do tempo de acesso
4 Frequência de acesso à memória do
computador
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Hierarquia de memória - Estudo de caso
Suponha um computador com 2 ńıveis de memória
Nivel 1 - capacidade 1.000 palavras e tempo de acesso 0,01µs
Ńıvel 2 - capacidade 100.000 palavras e tempo de acesso 0,1µs
Se informação em ńıvel 1: processador acesso diretamente
Se informação no ńıvel 2: processador traz para ńıvel 1 e depois acesso
Ignoramos o tempo de trazer do ńıvel 2 para o 1
P1 e P2: % de acertos no ńıvel
Tempo(Médio) = P1 ∗ 0, 01µs + P2 ∗ (0, 1 + 0, 01)µs
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Hierarquia de memória - Estudo de caso
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Hierarquia de memória
O uso de dois ńıveis de memória funciona bem se as condições forem satisfeitas
1 Diminuição do custo por bit
2 Aumento da capacidade
3 Aumento do tempo de acesso
4 Frequência de acesso à memória do computador
Para o item 1 a 3 tem-se que diferentes tecnologias podem ser aplicadas na
construção de memórias
Mas o que garante que o item 4 será atendido?
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Hierarquia de memória
Prinćıpio da localidade
Durante execução de um programa instruções e dados tendem a se agrupar
Por exemplo: loops iterativos, funções (instruções)
Localidade espacial
Localizações de memória com endereços numericamente similares a uma localização
de memória recentemente acessada provavelmente serão acessadas no futuro
próximo.
Caches exploram essa caracteŕıstica dos programas trazendo mais dados dos que os
requisitados, na esperança de antecipar futuras utilizações
Localidade temporal
Localizações de memória recentemente acessadas são acessadas novamente
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Hierarquia de memória
Prinćıpio da localidade- Exemplo
1 i n t A [ 2 0 0 ] ;
i n t B [ 2 0 0 ] ;
3 i n t C [ 2 0 0 ] ;
i n t i , j , k , d ;
5 . . .
f o r ( i = 0 ; i < 2 0 0 ; i ++)
7 A [ i ]= B [ i ]+C [ i ] ;
. . .
9 d = k ;
Listing 1: Código exemplo em C
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Hierarquia de memória - Prinćıpio da localidade
No estudo de caso anterior
Ńıvel 2 - Todo o programa e todos os dados
Ńıvel 1 - Os conjuntos de dados e programas atuais
Eventualmente ocorre uma troca de conjuntos, com trechos saindo do ńıvel 1 para o
ńıvel 2 para dar espaço para um novo trecho
Processadores com centenas de registradores para aumentar a localidade dos
dados e ganhar velocidade
Por outro lado, memória é o principal local de armazenamento do computador
Cache com uma porção menor e mais rápida
Inviśıvel para CPU (programador)
Dispositivo para organizar a movimentação de dados entre memória e registradores
(melhorar desempenho)
Conjunto de dispositivos de memória volátil
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Introdução
Hierarquia de memória - Prinćıpio da localidade
Memórias não voláteis - tecnologias ópticas e magnéticas
Técnicas de cache por software para maximizar o uso destes dispositivos
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Exerćıcio de Fixação 1
Hierarquia de memória
1 Em um computador com 2 ńıveis de memória, um ńıvel possui uma taxa média de
acerto de 60%, o tempo de acesso é de 9 ns para dados que se encontram nesse
ńıvel, e de 60 ns no outro ńıvel. Determine o tempo de acesso médio desse ńıvel.
2 Um sistema de memória com dois ńıveis tem um tempo médio de acesso de 15 ns.
O ńıvel mais alto do sistema de memória tem uma taxa de acertos de 85% e um
tempo de acesso de 8 ns. Qual é o tempo de acesso do ńıvel mais baixo?
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
Cache é uma pequena quantidade de memória rápida
Fica entre a memória principal normal e a CPU
Pode estar localizada no chip da CPU
Visa obter velocidade
Cópia parcial do que está presente na memória principal
Solicitações da CPU a memória, busca da solicitação na cache
Caso esteja presente a palavra solicitada, cache atende CPU
Caso contrário, cache traz um bloco de palavras é lido para a cache e depois
entregue a CPU
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
Cópia do bloco traz além da palavra de interesse, palavras adjacentes (explorar
localidade)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
Exemplo atual
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
Exemplo atual
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Função de mapeamento
Memória principal
Dec End Dado
0 00000000 F3
1 00000001 A1
2 00000010 12
3 00000011 00
. . . . . . . . .
Cache
Tag Dados
0
1
2
3
4
...
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
Memória principal tem 2n palavras (bytes) endereçáveis, com cada palavra tendo
um endereço distinto de n bits
Memória principal está dividida em M blocos de K palavras (M = 2
n
K )
Cache está dividida em C linhas que contém o bloco de K palavras, bits de
controle e tags
M >> C
Como existem mais blocos do que linhas, não é posśıvel colocar todos os M blocos
na cache.
Assim a tag identifica a que bloco da memória principal pertence o dado que está
em um determinada linha
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
Observações
Na linha de cache existe espaço para tag e bits de controle
A largura da linha sem tag e bits de controle é do tamanho do bloco de memória
A qualquer momento um subconjunto de blocos da memória pode estar nas linhas
da cache
Tag ajuda a identificar de qual bloco da memória vieram os dados que estão na linha.
Tag em geral é parte do endereço
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
1 CPU requisita conteúdo do local de memória.
2 Verifica se os dados estão em cache.
3 Se estiverem, apanha da cache (rápido).
4 Se não, lê bloco solicitado da memória principal para a cache.
5 Depois, entrega da cache à CPU.
6 Cache inclui tags para identificar qual bloco da memória principal está em cada
slot da cache.
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Prinćıpios da memória cache
Existe menos linhas de cache do que bloco de memória principal
Necessidade de estabelecer um algoritmo para mapear blocos da memória
principal para a cache
Criar mecanismos para se saber em que linha da cache está um determinado bloco
da memória principal
A escolha da função de mapeamento determinada o desempenho e como a cache
está organizada.
Existem 3 técnicas:
Direta
Associativa
Associativa em conjunto
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Função de mapeamento - Mapeamento direto
A técnica mais simples de mapeamento
Cada bloco da memória principal há apenas uma linha de cache posśıvel
O mapeamento direto expresso como
Linha de cache = Bloco de memória mod Nro. de linhas da cache
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Memória
principal
Dec End Dado
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Cache
Tag Dados
0
1
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Função de mapeamento - Mapeamento direto
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Função de mapeamento - Mapeamento direto
O efeito deste mapeamento é que os blocos da memória principal são alocados
nas linhas da cache da seguinte forma:
Linha de cache Blocos de memória principal mapeados
0 0, m, 2m, . . . , 2s -m
1 1, m+1, 2m+1,. . . , 2s -m+1
...
...
m-1 m-11, 2m-1,3m-1,. . . , 2s -1
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto damemória cache
Mapeamento direto - Exemplo
Considere uma máquina com uma memória principal endereçavel por byte com 1024
bytes (210) e um tamanho de bloco de 4 bytes. Suponha que uma cache mapeada
diretamente, consistindo em 16 linhas com 4 bytes cada (64 bytes - 24 linhas), seja
usada nessa máquina.
Bloco da memória Endereços Linha na cache
Bloco 0 0, 1, 2, 3 Linha 0
Bloco 1 4, 5, 6, 7 Linha 1
Bloco 2 8, 9, 10, 11 Linha 2
Bloco 3 12, 13, 14, 15 Linha 3
Bloco 4 16, 17, 18, 19 Linha 4
. . . . . . . . .
Bloco 15 60, 61, 62, 63 Linha 15
Bloco 16 64, 65, 66, 67 Linha 0
Bloco 17 68, 69, 70, 71 Linha 1
... Linha ...
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento direto
A função de mapeamento pode ser implementada por meio do endereço da
memória principal
Para fins de mapeamento e acesso a cache cada endereço de memória pode ser
visto como 3 partes
1 Tag (s-r)
2 Linha (r)
3 Byte ou Palavra (w bits menos significativos)
Informações para mapeamento
Tamanho de endereço = (s+w) bits
Número de unidades endereçáveis = 2(s+w) palavras ou bytes
Tamanho do bloco = Tamanho da linha = 2w palavras ou bytes
Número de blocos na memória principal = 2
(s+w)
2w = 2
s
Número de linhas na cache = 2r linhas
Tamanho da cache = 2r+w bytes ou palavras
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento direto - Exemplo simples
Memória com 1 KB e endereçada por byte (210 bytes ou end.)
Cache com 64 Bytes de memória (26) bytes
Em cada bloco da memória e linha de cache se tem 4 bytes
Informações para mapeamento
Tamanho de endereço = (10) bits (s+w)
Número de unidades endereçáveis = 210 bytes
Tamanho do bloco e da linha = 4 ou 22 bytes (w = 2)
Número de blocos na memória principal = 28 blocos (s = 8)
Número de linhas na cache = 24 linhas (r=4)
Tag precisa 4 bits (s-r)
0000 0000 00
TAG LINHA PALAVRA
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Memória principal
Dec End Dado
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Cache
Tag Dados
0
1
2
3
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Simulador de Cache
ParaCache Simulator
http://www.ntu.edu.sg/home/smitha/ParaCache/Paracache/start.html
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento direto - Exerćıcio de Fixação 2
A partir das configurações abaixo determine a quantidade de bits reservada para
tag(s-r), linha(r) e palavra(w)
Cache de 64 KBytes
Memória principal de 16 MBytes com cada byte endereçável diretamente por
endereço
Bloco de 4 bytes (Memória principal ↔ cache)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento direto - Exerćıcio de Fixação 3
A partir das configurações abaixo determine a quantidade de bits reservada para
tag(s-r), linha(r) e palavra(w) e mapeie os endereços
Memória com 1 KB e endereçada por byte (210 bytes ou end.)
Cache com 64 Bytes de memória (26) bytes
Em cada bloco da memória e linha de cache se tem 4 bytes
Mapear o endereço 95 (0001011111)
Mapear o endereço 335 (0101001111)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento direto - Exerćıcio de Fixação 4
Memória com 256 MB e endereçada por byte
Cache com 8 MB
Em cada bloco da memória e linha de cache se tem 64 bytes
Mapear o endereço 6984
Mapear o endereço 3492
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento direto - Exerćıcio de Fixação 5
Um sistema de computador possui um mapa de memória de 4 Gbytes, usando
endereçamento a byte e uma memória cache com organização de mapeamento direto.
A cache tem capacidade de armazenar até 1.024 palavras de 32 bits provenientes do
mapa de memória. Assuma que a cache sempre é escrita de forma atômica com quatro
bytes vindos de um endereço de memória alinhado em uma fronteira de palavra de 32
bits, e que ela usa 1 bit de validade por linha de cache. Neste caso, as dimensões do
rótulo (tag) da cache, do ı́ndice da cache e o tamanho da cache são, respectivamente:
a) 12 bits, 18 bits e 54.272 bits.
b) 14 bits, 18 bits e 56.320 bits.
c) 20 bits, 10 bits e 54.272 bits.
d) 20 bits, 12 bits e 54.272 bits.
e) 22 bits, 10 bits e 56.320 bits.
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento direto
Como descobrir se a linha de cache está presente
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento direto
Cache de 64 KBytes
Memória principal de 16 MBytes com cada byte endereçável diretamente por
endereço de 224 (224 = 16 M)
Bloco de 4 bytes (Memória principal ↔ cache)
Memória principal consiste de 4M blocos de 4 bytes.
Cache consiste de 16K linhas
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento direto
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento direto - Vantagens e desvantagens
Simples e pouco dispendiosa para se implementar
Porém implica que existe um local de cache fixo para cada bloco
Se o programa referenciar frequentemente dois blocos diferentes que estejam
mapeados para a mesma linha, os blocos serão repetidamente trocados.
Exemplo Matriz de 64KB × 64KB com acesso por elementos na linha
Uso de cache v́ıtima entre a cache mapeada diretamente e memória
Menor penalidade de falha.
Lembra-se do que foi descartado. Já buscado.
Usa novamente com pouca penalidade.
Totalmente associativa.
4 a 16 linhas de cache.
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento associativo - Caracteŕısticas
Compensa a desvantagem do mapeamento direto, permitindo que cada bloco da
memória principal seja carregado em qualquer linha da cache
Endereço de memória é dividido em 2 partes
1 Tag (s)
2 Palavra (w)
Controle dos blocos carregados na cache se dá pela Tag, a qual identifica que
bloco da memória principal ele corresponde.
Para determinar se um bloco está na cache, compara-se simultaneamente as tags
de cada linha
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento associativo - Exemplo simples
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Memória principal
Dec End Dado
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Cache
Tag Dados
0
1
2
3
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento associativo - Exemplo simples
Memória com 1 KB e endereçada por byte (210 bytes ou end.)
Cache com 64 Bytes de memória (26) bytes
Em cada bloco da memória e linhade cache se tem 4 bytes
Informações para mapeamento
Tamanho de endereço = (10) bits (s+w)
Número de unidades endereçáveis = 210 bytes
Tamanho do bloco e da linha = 4 ou 22 bytes (w = 2)
Número de blocos na memória principal = 28 blocos (s = 8)
Tag tem 8 bits
00000000 00
TAG PALAVRA
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento associativo
Como descobrir se a linha de cache está presente ?
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento associativo - Exemplo
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento Associativo - Exerćıcio de Fixação 6
Memória com 1GB e endereçada por byte
Cache com 4 MB
Em cada bloco da memória e linha de cache se tem 128 bytes
Determine a quantidade de bits para palavra e tag
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento Associativo - Vantagens e desvantagens
Flexibilidade sobre qual bloco substituir
Algoritmos de substituição
Pesquisa da tag na cache é dispendiosa.
Complexidade do circuito necessário para comparar tags
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento Associativo em Conjunto (Set Associtative)
Meio termo entre o mapeamento direto e o associativo, onde se reforça os pontos
fortes e se minimiza as desvantagens de cada técnica
Divide-se a cache em conjuntos que correspondem a uma série de k linhas (k-way)
Determinado bloco da memória principal é mapeado a qualquer linha em
determinado conjunto da cache.
Por exemplo: Bloco B pode estar em qualquer linha do conjunto i.
Outro exemplo: 2 linhas por conjunto:
Mapeamento associativo com 2 linhas.
Determinado bloco pode estar em uma de 2 linhas em apenas um conjunto.
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento Associativo em Conjunto (Set Associtative)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento Associativo em Conjunto (Set Associtative)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento Associativo em Conjunto (Set Associtative)
Lógica de controle de cache interpreta um endereço da memória como três
campos
Tag (s-d bits) ,Set (d bits) e Palavra (w bits)
Utiliza-se d bits para se representar os 2d conjuntos existentes na cache
Utiliza-se w bits para se determinar em qual dos 2w bytes ou palavras em cada linha
Tal como nos outros mapeamentos os bits da Tag servem para determinar se houve
um cache hit ou cache miss
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento Associativo em Conjunto (Set Associtative)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento Associativo em Conjunto - Exemplo simples
Memória com 1 KB e endereçada por byte (210 bytes ou end.)
Cache com 64 Bytes de memória (26) bytes
Em cada bloco da memória e linha de cache se tem 4 bytes
Cada conjunto tem 2 linhas
Informações para mapeamento
Tamanho de endereço = (10) bits (s+w)
Número de unidades endereçáveis = 210 bytes
Tamanho do bloco e da linha = 4 ou 22 bytes (w = 2)
Número de blocos na memória principal = 28 blocos (s = 8)
Número de linhas na cache = 24 linhas (r=4)
Número de linhas no conjunto = 2
Total de conjuntos → d = Nro. de linhas/linhas no cjto. = 23 conjuntos
Tag precisa 5 bits (s-d)
00000 000 00
TAG CONJUNTO PALAVRA
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Mapeamento Associativo em Conjunto (Set Associtative)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Desempenho de cache pelo pelo tamanho do conjunto (Set-Associative)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Diferenças de desempenho
Significativo até pelo menos 64 KB para 2 linhas.
Diferença entre 2 e 4 linhas em 4 KB muito menor que 4 KB para 8 KB.
Complexidade da cache aumenta com a associatividade.
Não justificado contra aumento da cache para 8kB ou 16kB.
Acima de 32 KB não gera melhoria. (resultados de simulação)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Algoritmos de substituição
Quando a cache fica ”cheia”, uma das linhas deve ser substitúıda quando um
novo bloco de informação for trazida da memória
Mapeamento direto não oferece diversas possibilidades, visto que apenas uma
posição é posśıvel
Porém para o mapeamento associativo e conjunto associativo é necessário
estabelecer politicas de substituição
Estas politicas devem estar implementadas em hardware
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Algoritmos de substituição
1 LRU (Last Recently Used):
Substitui aquele bloco no conjunto que permaneceu na cache por mais tempo sem
qualquer referência a ele.
Mais popular.
Associativo 2-way : bit USE (1 utilizado recentemente e 0 caso contrário)
Associativo completo: Lista separada de ı́ndices para todas as linhas na cache.
Linhas recentemente acessadas ficam na frente da lista.
2 FIFO (First-In, First-out)
Substitui o bloco no conjunto que esteve na cache por mais tempo
Buffer circular
3 LFU (Least Frequently Used)
Substitua o bloco no conjunto que teve menos referências.
Contador para cada linha
4 Aleatória: Estudo mostram que é apenas ligeiramente inferior aos algoritmos
baseado no uso
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Exerćıcio de Fixação 7
Neste exerćıcio considere uma memória de 64 KB e uma cache de capacidade de 64 bytes que utiliza associativo
em conjunto de 2 linhas e que tem em cada linha 8 bytes. Considere que o bit LRU quando 1 mostra o mais
recentemente utilizado. Determine se ocorreria um cache miss ou um cache hit para uma requisição de leitura
dos endereços abaixo. Caso ocorra um cache hit, qual seria o dado obtido. Caso ocorra um cache miss, qual
seria a linha substitúıda?
266(100001010) e 45 (101101)
Bytes da linha
Conjunto Bit LRU TAG 0 1 2 3 4 5 6 7
0 0 13 0 1 2 3 4 5 6 7
1 3 0 1 2 3 4 5 6 7
1 1 3 0 1 2 3 4 5 6 7
0 8 0 1 2 3 4 5 6 7
2 0 9 0 1 2 3 4 5 6 7
1 12 0 1 2 3 4 5 6 7
3 0 34 0 1 2 3 4 5 6 7
1 12 0 1 2 3 4 5 6 7
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Simulador de Cache
ParaCache Simulator
http://www.ntu.edu.sg/home/smitha/ParaCache/Paracache/start.html
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cachePoĺıtica de escrita
Não deve sobrescrever bloco de cache a menos que a memória principal esteja
atualizada.
Múltiplas CPUs podem ter caches individuais.
E/S pode endereçar memória principal diretamente.
1. Poĺıtica Write-through
Técnica mais simples
Todas as operações de escrita são feitas na cache e na memória principal
Garante que em todos os ńıveis a informações esteja consistente
Qualquer outro processador-cache pode manter seus dados consistentes monitorando
a memória principal
Desvantagem: tráfego de memória considerável que pode tornar-se um gargalo do
sistema
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Poĺıtica de escrita
2. Write-back
Minimiza escritas na memória principal, com atualizações apenas na memória cache
Quando ocorre uma escrita, ativa-se um bit de modificação associado a linha
Quando o bloco é substitúıdo, ele é escrito de volta na memória principal se o bit de
modificação estiver ativo
Desvantagem: Partes da memória ficam inválidas e isto bloqueia o acesso de outros
dispositivos de entrada e sáıda. A cache irá liberar o acesso aos dispositivos de E/S
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Poĺıtica de escrita - Tratamento de problemas em múltiplos processadores com cache
1 Observação de barramento com write-through
cada controlador monitora as linhas de barramento para detectar operações de escrita
escrita de outros mestres invalidam cópia local
2 Transparência de hardware
Hardware extra que garante que as atualizações de uma cache na memória principal
são refletidas nas demais caches
3 Memória não cacheavel
Uma parte da memória principal compartilhada mantida fora das linhas de cache
Acessos aos endereços compartilhados sempre ocasional cache miss
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Tamanho da linha
Recupere não apenas a palavra desejada, mas também uma série de palavras
adjacentes.
Tamanho de bloco aumentado aumentará razão de acerto a prinćıpio.
O prinćıpio da localidade.
Razão de acerto diminuirá à medida que o bloco se tornar ainda maior.
Probabilidade de uso de informações recém buscadas torna-se menor que
probabilidade de reutilizar informações substitúıdas
Blocos maiores:
Reduzem número de blocos que cabem na cache.
Dados sobrescritos pouco depois de serem buscados.
Nenhum valor ideal definitivo foi descoberto.
8 a 64 bytes parece ser razoável (Em HPC o tamanho fica entre 64 a 128)
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Número de memórias caches
Alta densidade lógica permite caches no chip.
Mais rápido que acesso ao barramento.
Libera barramento para outras transferências.
Comum usar cache dentro e fora do chip.
L1 no chip, L2 fora do chip na RAM estática.
Acesso L2 muito mais rápido que DRAM ou ROM.
L2 normalmente usa caminho de dados separado.
L2 pode agora estar no chip.
Resultando em cache L3.
Acesso ao barramento agora no chip.
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Elementos de projeto da memória cache
Caches unificadas versus separadas
Uma cache para dados e instruções ou duas, uma para dados e uma para
instruções (Harvard)
Vantagens da cache unificada:
Maior taxa de acerto.
Equilibra carga entre buscas de instrução e dados.
Apenas uma cache para projetar e implementar.
Vantagens da cache separada:
Elimina disputa pela cache entre a unidade de busca/decodificação de instrução e a
unidade de execução.
Importante no pipeline de instruções (disputa entre unidade de busca e unidade de
execução)
Maior tendência de utilização nas CPU recentes
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Cache no Pentium 4
Caracteŕısticas dos sistemas de memória
Visão geral do sistema de memória do computador Prinćıpios da memória cache Elementos de projeto da memória cache
Exerćıcios
No caṕıtulo 4 do livro do Stallings
Perguntas de revisão (Todas)
Problemas 4.5;4.6;4.8;4.10;4.11;4.12;
	Visão geral do sistema de memória do computador
	Princípios da memória cache
	Elementos de projeto da memória cache

Mais conteúdos dessa disciplina