16
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 13: MEMÓRIA CACHE: FUNÇÃO DE MAPEAMENTO (PARTE 2) Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação

ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

Embed Size (px)

Citation preview

Page 1: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

AULA 13: MEMÓRIA CACHE: FUNÇÃO DE

MAPEAMENTO (PARTE 2)

Prof. Max Santana Rolemberg Farias [email protected]

Colegiado de Engenharia de Computação

Page 2: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

• Nesse mapeamento, são combinadas vantagens, e diminui suas desvantagens.

– A memória cache é dividida em v conjuntos, cada qual com k linhas.

– Em um mapeamento totalmente associativo, o rótulo de um endereço de memória é muito grande e =e comparado com rótulos de cada linha de memória cache.

FUNÇÃO DE MAPEAMENTO: MAPEAMENTO ASSOCIATIVO POR CONJUNTO

Page 3: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

• Em um mapeamento associativo por conjuntos de k linhas, o rótulo de um endereço de memória é muito menor e é comparado apenas com k rótulos de um mesmo conjunto.

• A figura a seguir, mostra o sistema utilizando um mapeamento associativo por conjunto com duas linhas em cada conjunto, denominado mapeamento associativo por conjunto de duas linhas.

FUNÇÃO DE MAPEAMENTO: MAPEAMENTO ASSOCIATIVO POR CONJUNTO

Page 4: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

FUNÇÃO DE MAPEAMENTO: MAPEAMENTO ASSOCIATIVO POR CONJUNTO

Page 5: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

FUNÇÃO DE MAPEAMENTO: MAPEAMENTO ASSOCIATIVO POR CONJUNTO

Page 6: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

Endereço 1111 1111 1111 1111 1111 1100 (binário)

F F F F F C

Tag 1FF

Linha 1111 1111 1111 1

Palavra 00

FUNÇÃO DE MAPEAMENTO: MAPEAMENTO ASSOCIATIVO POR CONJUNTO

Page 7: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

• A organização de mapeamento associativo por conjunto mais comum é a que usa duas linhas por conjunto.

• Sua taxa de acertos é significativamente maior do que no caso do mapeamento direto.

• Um maior número de linhas por conjunto não apresenta melhoras significativas de desempenho.

FUNÇÃO DE MAPEAMENTO: MAPEAMENTO ASSOCIATIVO POR CONJUNTO

Page 8: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

• Mapeamento direto – Simples e barrato – Lento – Mais faltas

• Associativo – Rápido – Menos falta – Cara (comparação do endereço em paralelo)

• Associativa por conjunto – Se o número de conjuntos da cache for igual ao número de blocos da cache,

usa o mapeamento direto – Se o número de conjuntos da cache for igual a 1, usa o mapeamento

associativo.

COMPARAÇÃO DE MÉTODOS DE MAPEAMENTO

Page 9: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

• Quando um novo bloco é trazido para a memória cache, um dos blocos existentes deve ser substituído.

• No mapeamento direto, cada bloco é mapeado em uma única linha, o que determina o bloco a ser substituído, não havendo alternativa possível.

• Nos demais mapeamento, existe o uso de um algoritmo de substituição. Esse algoritmo é implementado em hardware para aumentar a velocidade de acesso à memória.

ALGORITMO DE SUBSTITUIÇÃO

Page 10: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

• Os quatro algoritmos mais comum são:

– Least Recently Used (LRU): Substitui o bloco menos recentemente usado. É usado um bit uso para indicar quando uma linha foi referenciada.

– First-inFirst-out (FIFO): Substitui o bloco do conjunto que foi armazenado primeiro na memória cache.

– Least Frequently Used (LFU): Substitui o bloco do conjunto menos frequentemente utilizado. É usado um contador a cada linha de memória cache.

– Substituição aleatória

ALGORITMO DE SUBSTITUIÇÃO

Page 11: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

Associatividade

2-way 4-way 8-way

Size LRU Random LRU Random LRU Random

16 KB 5.18 5.69 4.67 5.29 4.39 4.96

64 KB 1.88 2.01 1.54 1.66 1.39 1.53

1.15 1.17 1.13 1.13 1.12 1.12

ALGORITMO DE SUBSTITUIÇÃO (LRU) MENOR TAXA DE FALTAS

Page 12: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

• Antes que um bloco residente na memória cache possa ser substituído, é necessário verificar se ele foi alterado: – Se isso não ocorreu, então o novo bloco pode ser escrito sobre o

bloco antigo.

– Caso contrário, se pelo menos uma operação de escrita foi feita, sobre uma palavra dessa linha de memória cache, então a memória principal deve ser atualizada.

• Dois problemas devem ser considerados: – Alteração da memória principal por um dispositivo de E/S

– Múltiplos processadores com múltiplas memórias cache.

POLITICA DE ATUALIZAÇÃO

Page 13: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

• A técnica de atualização mais simples é denominada escrita direta (write-through):

– Todas as operações são feitas tanto na memória cache quanto na memória principal.

– A desvantagem é que ela gera um tráfego de memória considerável.

• Uma técnica alternativa é a escrita de volta (write-back)

– As escritas são feitas apenas na memória cache

– O bloco só é substituido se seu bit de atualização estiver com o valor 1.

– Desvantagem> acesso de módulos de E/Se direto à cache.

POLITICA DE ATUALIZAÇÃO

Page 14: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

• Se um padrão de execução envolve um número muito maior de busca de instruções do que de busca de dados, a memória cache tende a ser preenchida com instruções, se o padrão envolver maior número de busca de dados ocorre o contrário.

• Apenas uma memória de cache precisa ser projetada e implementada.

MEMÓRIA CACHE UNIFICADA

Page 15: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição

• Elimina a disputa por acesso à memória cache entre o processador de instruções e a unidade de execução.

• Realiza busca de instruções a serre

MEMÓRIA CACHE SEPARADA

Page 16: ORGANIZAÇÃO E ARQUITETURA DE …max.santana/material/aoc-i/Aula13-AOC-I.pdf · menos frequentemente utilizado. É usado um contador a cada linha de memória cache. –Substituição