Vous êtes sur la page 1sur 69

Vis

ao geral do sistema de mem


oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Memoria Cache
Prof. Dr. Maurcio Fernando Lima Pereira
Instituto de Computacao - UFMT

2 de maio de 2012

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Conteudo

Visao geral do sistema de mem


oria do computador

Princpios da memoria cache

Elementos de projeto da mem


oria cache

Conte
udo extrado de
Captulo 4 do livro do Stallings

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao

Memoria de computador e composta por uma vasta gama de:


tipos
tecnologias
organizacao
desempenho
custo

Hierarquia de mem
oria
Internas (Processador)
Externas (Dispositivos de E/S)

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Introducao
Caractersticas dos sistemas de mem
oria

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Caractersticas dos sistemas de mem
oria

Localizac
ao
CPU (registradores, mem
oria de microprograma)
Interna (cache, RAM)
Externa (discos, fitas)

Capacidade
Internamente relacionado ao tamanho de palavra da
maquina(8, 16, 32 bits)
A unidade de organizac
ao natural
Em geral o tamanho em bits de um inteiro e da instruc
ao
Variaco
es na arquiteturas: x86 tem instruco
es de tamanhos
diferentes

Externamente ao n
umero de Bytes ou palavras

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Caractersticas dos sistemas de mem
oria

Unidades enderec
aveis
Menor local que pode ser enderecado exclusivamente.
Por Byte
Por Palavra
Endereco com A bits permite enderecar 2A unidades

Unidade de transfer
encia
Interna:
Normalmente controlada pela largura do barramento.

Externa:
Normalmente um bloco que e muito maior que uma palavra.

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Caractersticas dos sistemas de mem
oria

M
etodos de acesso
Sequencial:
Comeca no incio e le em ordem.
Tempo de acesso depende da localizac
ao dos dados e local
anterior.
Por exemplo, fita.

Direto:
Blocos individuais possuem endereco exclusivo.
Acesso saltando para vizinhanca com busca sequencial para
localizac
ao final
Tempo de acesso depende da localizac
ao e local anterior.
Por exemplo, disco.

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Caractersticas dos sistemas de mem
oria

M
etodos de acesso
Aleat
orio:
Enderecos individuais identificam localizaco
es com exatid
ao.
Tempo de acesso e independente da localizac
ao ou acesso
anterior.
P.e., RAM.

Associativo:
Dados s
ao localizados por uma comparac
ao com conte
udo de
uma parte do armazenamento
Analisa-se alguns bits do endereco
Tempo de acesso e independente do local ou acesso anterior.
P.e., cache.

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Caractersticas dos sistemas de mem
oria

Para o usuario, tao importante quanto a capacidade e o


desempenho
Como avaliar este desempenho?
Tres parametros de desempenho
Tempo de acesso (lat
encia):
Mem
oria de acesso aleat
orio: Tempo entre apresentar o
endereco e obter os dados v
alidos
Mem
oria de acesso n
ao aleat
orio: Tempo gasto para
posicionar mecanismo de leitura

Tempo de ciclo de mem


oria
Tempo de ciclo = tempo de acesso + recuperac
ao.
Recuperac
ao: Tempo que pode ser exigido para a mem
oria se
recuperarantes do pr
oximo acesso.
Eliminac
ao de transientes nas linhas de sinais ou restaurac
ao
caso os dados sejam lidos de forma destrutiva

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Caractersticas dos sistemas de mem
oria

Tres parametros de desempenho:


Taxa de transfer
encia
Taxa em que os dados podem ser movidos
Mem
oria de acesso aleat
orio
Taxa de transferencia =

1
T empo de ciclo

Mem
oria de acesso n
ao aleat
orio
TN = TA +

n
R

TN Tempo medio pra ler ou escrever N bits


TA Tempo de acesso medio
n N
umero de bits
R Taxa de transferencia em bits por segundo (bps)

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Caractersticas dos sistemas de mem
oria

Tipo fsico
Semicondutor: RAM, cache, registradores.
Magnetico: Disco e fita.

Optico:
CD e DVD

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Hierarquia de mem
oria

Restricoes de mem
oria de um computador estao relacionadas
a tres questoes:
Quanto? Capacidade.
Que velocidade?
Quanto mais r
apido a CPU for atendida melhor.
Menor tempo de acesso

A que custo?
Boa relac
ao de custo

Diversas tecnologias para implementar sistemas de memoria


Tempo de acesso mais rapido e maior custo por bit
Maior capacidade, menor custo por bit
Maior capacidade, tempo de acesso mais lento

Solucao e a hierarquia de mem


oria

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Hierarquia de mem
oria

Enquanto se desce na hierarquia


1
2
3
4

Diminuicao do custo por bit


Aumento da capacidade
Aumento do tempo de acesso
Frequencia de acesso `a
mem
oria do computador

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Hierarquia de mem
oria - Estudo de caso

Suponha um computador com 2 nveis de memoria


Nivel 1 - capacidade 1.000 palavras e tempo de acesso 0,01s
Nvel 2 - capacidade 100.000 palavras e tempo de acesso 0,1s
Se informacao em nvel 1: processador acesso diretamente
Se informacao no nvel 2: processador traz para nvel 1 e
depois acesso
Ignoramos o tempo de trazer do nvel 2 para o 1
P1 e P2: % de acertos no nvel
T empoM edio = P 1 0, 01s + P 2 (0, 1 + 0, 01)s

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Hierarquia de mem
oria - Exerccios

Em um computador com 2 nveis de mem


oria, um nvel possui
uma taxa media de acerto de 60%, o tempo de acesso e de 9
ns para dados que se encontram nesse nvel, e de 60 ns no
outro nvel. Determine o tempo de acesso medio desse nvel.

Um sistema de mem
oria com dois nveis tem um tempo medio
de acesso de 14 ns. O nvel mais alto do sistema de memoria
tem uma taxa de acertos de 85% e um tempo de acesso de 8
ns. Qual e o tempo de acesso do nvel mais baixo?

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Hierarquia de mem
oria

O uso de dois nveis de mem


oria funciona bem se as condicoes
forem satisfeitas
1
2
3
4

Diminuicao do custo por bit


Aumento da capacidade
Aumento do tempo de acesso
Frequencia de acesso `a mem
oria do computador

Para o item 1 a 3 tem-se que diferentes tecnologias podem ser


aplicadas na construcao de mem
orias
Mas o que garante que o item 4 sera atendido?

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Hierarquia de mem
oria - Princpio da localidade

Durante execucao de um programa instruc


oes e dados tendem
a se agrupar
Por exemplo: loops iterativos, func
oes (instrucoes)
Localidade espacial
Localizac
oes de mem
oria com enderecos numericamente
similares a uma localizacao de mem
oria recentemente acessada
provavelmente serao acessadas no futuro pr
oximo.
Caches exploram essa caracterstica dos programas trazendo
mais dados dos que os requisitados, na esperanca de antecipar
futuras utilizac
oes

Localidade temporal
Localizac
oes de mem
oria recentemente acessadas sao
acessadas novamente

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Introducao
Hierarquia de mem
oria - Princpio da localidade

No estudo de caso anterior


Nvel 2 - Todo o programa e todos os dados
Nvel 1 - Os conjuntos de dados e programas atuais
Eventualmente ocorre uma troca de conjuntos, com trechos
saindo do nvel 1 para o nvel 2 para dar espaco para um novo
trecho

Processadores com centenas de registradores para aumentar a


localidade dos dados e ganhar velocidade
Por outro lado, mem
oria e o principal local de armazenamento
do computador
Cache com uma porcao menor e mais rapida
Invisvel para CPU (programador)
Dispositivo para organizar a movimentacao de dados entre
mem
oria e registradores (melhorar desempenho)
Conjunto de dispositivos de mem
oria volatil

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Princpios da memoria cache


Cache e uma pequena quantidade de mem
oria rapida
Fica entre a mem
oria principal normal e a CPU
Pode estar localizada no chip da CPU
Visa obter velocidade

Copia do que esta presente na mem


oria principal
Solicitacoes da CPU a mem
oria, busca da solicitacao na cache
Caso esteja presente a palavra solicitada, cache atende CPU
Caso contrario, cache traz um bloco de palavras e lido para a
cache e depois entregue a CPU

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Princpios da memoria cache

Copia do bloco traz alem da palavra que se esta interessado,


palavras adjacentes (explorar localidade)

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Princpios da memoria cache

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Princpios da memoria cache

Memoria principal tem 2n palavras enderecaveis, com cada


palavra tendo um endereco distinto de n bits
Memoria principal esta dividida em M blocos de K palavras
n
(M = 2K )
Cache esta dividida em C linhas que contem o bloco de K
palavras, bits de controle e tags
M >> C
Como existem mais blocos do que linhas, nao e possvel
colocar todos os M blocos na cache.
Assim a tag identifica a que bloco da mem
oria principal
pertence o dado que esta em um determinada linha

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Princpios da memoria cache

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Princpios da memoria cache

Observac
oes
Na linha de cache existe espaco para tag e bits de controle
A largura da linha sem tag e bits de controle e do tamanho do
bloco de mem
oria
A qualquer momento um subconjunto de blocos da memoria
pode estar nas linhas da cache
Tag ajuda a identificar de qual bloco da memoria vieram os
dados que estao na linha.
Tag em geral e parte do endereco

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Princpios da memoria cache

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Princpios da memoria cache

CPU requisita conte


udo do local de mem
oria.

Verifica se os dados estao em cache.

Se estiverem, apanha da cache (rapido).

Se nao, le bloco solicitado da mem


oria principal para a cache.

Depois, entrega da cache `a CPU.

Cache inclui tags para identificar qual bloco da memoria


principal esta em cada slot da cache.

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Princpios da memoria cache

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Princpios da memoria cache

Existe menos linhas de cache do que bloco de memoria


principal
Necessidade de estabelecer um algoritmo para mapear blocos
da memoria principal para a cache
Criar mecanismos para se saber em que linha da cache esta um
determinado bloco da mem
oria principal

A escolha da funcao de mapeamento determinada o


desempenho e como a cache esta organizada.
Existem 3 tecnicas:
Direta
Associativa
Associativa em conjunto

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da memoria cache

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Func
ao de mapeamento - Mapeamento direto

A tecnica mais simples de mapeamento


Cada bloco da mem
oria principal a apenas uma linha de cache
possvel
O mapeamento direto expresso como
Linha de cache = Bloco de mem
oria mod Nro. de linhas da cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da memoria cache


Func
ao de mapeamento - Mapeamento direto

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Func
ao de mapeamento - Mapeamento direto

O efeito deste mapeamento e que os blocos da memoria


principal sao alocados nas linhas da cache da seguinte forma:
Linha de cache Blocos de mem
oria 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
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento direto - Exemplo

Considere uma maquina com uma mem


oria principal enderecavel
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
maquina.
Bloco da memoria
Enderecos
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 15
60, 61, 62, 63
Linha 15
Bloco 16
64, 65, 66, 67
Linha 0
...
Linha ...

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento direto

A funcao de mapeamento pode ser implementada por meio do


endereco da mem
oria principal
Para fins de mapeamento e acesso a cache cada endereco de
memoria pode ser visto como 3 partes
1
2
3

Tag (s-r)
Linha (r)
Byte ou Palavra (w bits menos significativos)

Informacoes para mapeamento


Tamanho de endereco = (s+w) bits
N
umero de unidades enderecaveis = 2(s+w) palavras ou bytes
Tamanho do bloco = Tamanho da linha = 2w palavras ou
bytes
(s+w)
N
umero de blocos na mem
oria principal = 2 2w = 2s
N
umero de linhas na cache = 2r linhas
Tamanho da cache = 2r+w bytes ou palavras

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento direto - Exemplo simples

Memoria com 1 KB e enderecada por byte (210 bytes ou end.)


Cache com 64 Bytes de mem
oria (26 ) bytes
Em cada bloco da mem
oria e linha de cache se tem 4 bytes
Informacoes para mapeamento
Tamanho de endereco = (10) bits (s+w)
N
umero de unidades enderecaveis = 210 bytes
Tamanho do bloco e da linha = 4 ou 22 bytes (w = 2)
N
umero de blocos na mem
oria principal = 28 blocos (s = 8)
N
umero de linhas na cache = 24 linhas (r=4)
Tag precisa 4 bits (s-r)

0000
TAG

0000
LINHA

00
PALAVRA

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento direto

Como descobrir se a linha de cache esta presente

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento direto - Exerccio 1

Cache de 64 KBytes
Memoria principal de 16 MBytes com cada byte enderecavel
diretamente por endereco
Bloco de 4 bytes (Mem
oria principal cache)

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento direto - Exerccio 2

Memoria com 1 KB e enderecada por byte (210 bytes ou end.)


Cache com 64 Bytes de mem
oria (26 ) bytes
Em cada bloco da mem
oria e linha de cache se tem 4 bytes
Mapear o endereco 95 (0001011111)2
Mapear o endereco 335 (0101001111)2

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento direto - Exerccio 3

Memoria com 256 MB e enderecada por byte


Cache com 8 MB
Em cada bloco da mem
oria e linha de cache se tem 64 bytes
Mapear o endereco 6984 (0001101101001000)2
Mapear o endereco 3492 (110110100100)2

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento direto

Cache de 64 KBytes
Memoria principal de 16 MBytes com cada byte enderecavel
diretamente por endereco de 224 (224 = 16 M)
Bloco de 4 bytes (Mem
oria principal cache)
Memoria principal consiste de 4M blocos de 4 bytes.
Cache consiste de 16K linhas

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da memoria cache


Mapeamento direto

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento direto - Vantagens e desvantagens

Simples e pouco dispendiosa para se implementar


Porem 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 serao repetidamente trocados.
Exemplo Matriz de 64KB 64BK com acesso por elementos
na linha

Uso de cache vtima entre a cache mapeada diretamente e


memoria
Menor penalidade de falha.
Lembra-se do que foi descartado. Ja buscado.
Usa novamente com pouca penalidade.
Totalmente associativa.
4 a 16 linhas de cache.

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento associativo - Caractersticas

Compensa a desvantagem do mapeamento direto, permitindo


que cada bloco da mem
oria principal seja carregado em
qualquer linha da cache
Endereco de mem
oria e dividido em 2 partes
1
2

Tag (s)
Palavra (w)

Controle dos blocos carregados na cache se da pela Tag, a


qual identifica que bloco da mem
oria principal ele corresponde.
Para determinar se um bloco esta na cache, compara-se
simultaneamente as tags de cada linha

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da memoria cache


Mapeamento associativo - Exemplo simples

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento associativo - Exemplo simples

Memoria com 1 KB e enderecada por byte (210 bytes ou end.)


Cache com 64 Bytes de mem
oria (26 ) bytes
Em cada bloco da mem
oria e linha de cache se tem 4 bytes
Informacoes para mapeamento
Tamanho de endereco = (10) bits (s+w)
N
umero de unidades enderecaveis = 210 bytes
Tamanho do bloco e da linha = 4 ou 22 bytes (w = 2)
N
umero de blocos na mem
oria principal = 28 blocos (s = 8)
Tag tem 8 bits

00000000
TAG

00
PALAVRA

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento associativo

Como descobrir se a linha de cache esta presente ?

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da memoria cache


Mapeamento associativo - Exemplo

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento Associativo - Exerccio 4

Memoria com 1GB e enderecada por byte


Cache com 4 MB
Em cada bloco da mem
oria e linha de cache se tem 128 bytes
Determine a quantidade de bits para palavra e tag

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento Associativo - Vantagens e desvantagens

Flexibilidade sobre qual bloco substituir


Algoritmos de substituicao

Pesquisa da tag na cache e dispendiosa.


Complexidade do circuito necessario para comparar tags

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Exerccio

Um sistema de computador possui um mapa de memoria de 4


Gbytes, usando enderecamento a byte e uma memoria cache com
organizacao de mapeamento direto. A cache tem capacidade de
armazenar ate 1.024 palavras de 32 bits provenientes do mapa de
memoria. Assuma que a cache sempre e escrita de forma atomica
com quatro bytes vindos de um endereco de mem
oria 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
oes do rotulo (tag) da
cache, do ndice e o tamanho da cache sao, 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
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento Associativo em Conjunto (Set Associtative)

Meio termo entre o mapeamento direto e o associativo, onde


se reforca os pontos fortes e se minimiza as desvantagens de
cada tecnica
Divide-se a cache em conjuntos que correspondem a uma serie
de k linhas (k-way )
Determinado bloco da mem
oria principal e 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
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da memoria cache


Mapeamento Associativo em Conjunto (Set Associtative)

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da memoria cache


Mapeamento Associativo em Conjunto (Set Associtative)

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento Associativo em Conjunto (Set Associtative)

Logica de controle de cache interpreta um endereco da


memoria como tres 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
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da memoria cache


Mapeamento Associativo em Conjunto (Set Associtative)

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento Associativo em Conjunto - Exemplo simples

Memoria com 1 KB e enderecada por byte (210 bytes ou end.)


Cache com 64 Bytes de mem
oria (26 ) bytes
Em cada bloco da mem
oria e linha de cache se tem 4 bytes.
Cada conjunto tem 2 linhas. Informac
oes para mapeamento
Tamanho de endereco = (10) bits (s+w)
N
umero de unidades enderecaveis = 210 bytes
Tamanho do bloco e da linha = 4 ou 22 bytes (w = 2)
N
umero de blocos na mem
oria principal = 28 blocos (s = 8)
N
umero de linhas na cache = 24 linhas (r=4)
N
umero de linhas no conjunto = 2
Total de conjuntos = 2d
Nro. de linhas/linhas no cjto. = 23 conjuntos
Tag precisa 5 bits (s-d)

00000
TAG

000
CONJUNTO

00
PALAVRA

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Mapeamento em conjunto associativo 4 - Exerccio 4

Memoria com 4GB e enderecada por byte


Cache com 1 MB
Em cada bloco da mem
oria e linha de cache se tem 128 bytes
Determine a quantidade de bits para palavra, conjunto e tag

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da memoria cache


Mapeamento Associativo em Conjunto (Set Associtative)

Elementos de projeto da mem


oria cache

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Desempenho de cache pelo pelo tamanho do conjunto (Set-Associative)

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Diferencas de desempenho

Significativo ate pelo menos 64 KB para 2 linhas.


Diferenca entre 2 e 4 linhas em 4 KB muito menor que 4 KB
para 8 KB.
Complexidade da cache aumenta com a associatividade.
Nao justificado contra aumento da cache para 8kB ou 16kB.
Acima de 32 KB nao gera melhoria. (resultados de simulacao)

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Exerccio

Neste exerccio considere uma cache de capacidade de 64 bytes que


utiliza associativo em conjunto de 2 linhas e que tem em cada linha 8
bytes e uma mem
oria de 64 KB. Determine se ocorreria um cache miss
ou um cache hit para uma requisicao de leitura dos enderecos abaixo.
Caso ocorra um cache hit, qual seria o dado
266(100001010) e 45 (101101)
Conjunto
0
1
2
3

TAG
13
3
3
8
9
12
34
12

0
0
0
0
0
0
0
0
0

1
1
1
1
1
1
1
1
1

Bytes da linha
2 3 4 5
2 3 4 5
2 3 4 5
2 3 4 5
2 3 4 5
2 3 4 5
2 3 4 5
2 3 4 5
2 3 4 5

6
6
6
6
6
6
6
6
6

7
7
7
7
7
7
7
7
7

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Algoritmos de substituic
ao

Quando a cache fica cheia, uma das linhas deve ser


substituda quando um novo bloco de informacao for trazida
da memoria
Mapeamento direto nao oferece diversas possibilidades, visto
que apenas uma posicao e possvel
Porem para o mapeamento associativo e conjunto associativo
e necessario estabelecer politicas de substituicao
Estas politicas devem estar implementadas em hardware

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Algoritmos de substituic
ao
1

LRU (Last Recently Used):


Substitui aquele bloco no conjunto que permaneceu na cache
por mais tempo sem qualquer referencia a ele.
Mais popular.
Associativo 2-way : bit USE (1 utilizado recentemente e 0 caso
contrario)
Associativo completo: Lista separada de ndices para todas as
linhas na cache. Linhas recentemente acessadas ficam na
frente da lista.

FIFO (First-In, First-out)


Substitui o bloco no conjunto que esteve na cache por mais
tempo
Buffer circular

LFU (Least Frequently Used)


Substitua o bloco no conjunto que teve menos referencias.
Contador para cada linha

Aleat
oria: Estudo mostram que e apenas ligeiramente inferior
aos algoritmos baseado no uso

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Poltica de escrita

Nao deve sobrescrever bloco de cache a menos que a memoria


principal esteja atualizada.
M
ultiplas CPUs podem ter caches individuais.
E/S pode enderecar mem
oria principal diretamente.
1. Poltica Write-through
Tecnica mais simples
Todas as operac
oes de escrita sao feitas na cache e na
mem
oria principal
Garante que em todos os nveis a informac
oes esteja
consistente
Qualquer outro processador-cache pode manter seus dados
consistentes monitorando a mem
oria principal
Desvantagem: trafego de mem
oria consideravel que pode
tornar-se um gargalo do sistema

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Poltica de escrita

2. Write-back
Minimiza escritas na mem
oria principal, com atualizacoes
apenas na mem
oria cache
Quando ocorre uma escrita, ativa-se um bit de modificac
ao
associado a linha
Quando o bloco e substitudo, ele e escrito de volta na
mem
oria principal se o bit de modificac
ao estiver ativo
Desvantagem: Partes da mem
oria ficam invalidas e isto
bloqueia o acesso de outros dispositivos de entrada e sada. A
cache ira liberar o acesso aos dispositivos de E/S

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Poltica de escrita - Tratamento de problemas em m
ultiplos processadores com cache

Observac
ao de barramento com write-through
cada controlador monitora as linhas de barramento para
detectar operac
oes de escrita
escrita de outros mestres invalidam c
opia local

Transpar
encia de hardware
Hardware extra que garante que as atualizacoes de uma cache
na mem
oria principal sao refletidas nas demais caches

Mem
oria n
ao cacheavel
Uma parte da mem
oria principal compartilhada mantida fora
das linhas de cache
Acessos aos enderecos compartilhados sempre ocasional cache
miss

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Tamanho da linha

Recupere nao apenas a palavra desejada, mas tambem uma


serie de palavras adjacentes.
Tamanho de bloco aumentado aumentara razao de acerto a
princpio.
O princpio da localidade.

Razao de acerto diminuira `a medida que o bloco se tornar


ainda maior.
Probabilidade de uso de informac
oes recem buscadas torna-se
menor que probabilidade de reutilizar informacoes substitudas
Blocos maiores:
Reduzem n
umero 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 razoavel

Vis
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


N
umero de mem
orias caches

Alta densidade logica permite caches no chip.


Mais rapido que acesso ao barramento.
Libera barramento para outras transferencias.

Comum usar cache dentro e fora do chip.


L1 no chip, L2 fora do chip na RAM estatica.
Acesso L2 muito mais rapido 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
ao geral do sistema de mem
oria do computador

Princpios da mem
oria cache

Elementos de projeto da mem


oria cache

Elementos de projeto da memoria cache


Caches unificadas versus separadas

Uma cache para dados e instruc


oes ou duas, uma para dados
e uma para instruc
oes (Harvard)
Vantagens da cache unificada:
Maior taxa de acerto.
Equilibra carga entre buscas de instrucao e dados.
Apenas uma cache para projetar e implementar.

Vantagens da cache separada:


Elimina disputa pela cache entre a unidade de
busca/decodificacao de instrucao e a unidade de execucao.
Importante no pipeline de instruc
oes (disputa entre unidade de
busca e unidade de execucao)
Maior tendencia de utilizacao nas CPU recentes

Vous aimerez peut-être aussi