06-memoria-cache
26 pág.

06-memoria-cache


DisciplinaArquitetura e Organização de Computadores1.259 materiais7.481 seguidores
Pré-visualização1 página
Memória Cache
\uf0a2 Devido a grande diferença de velocidade 
existente entre o processador e a memória 
principal, foi desenvolvido um elemento 
intermediário que tem o propósito de minimizar 
o impacto desse problema no sistema de 
computação: A memória Cache.
Introdução
Introdução
\uf0a2 Principio de Localidade
\uf097 Localidade temporal:
\uf0a2 Ao acessar uma palavra na memória principal é muito 
provável que o processador volte a acessar essa mesma 
palavra novamente durante a execução dos programas 
(loops).
\uf097 Localidade Espacial:
\uf0a2 Ao acessar uma palavra na memória principal é provável 
que em seguida o processador tente acessar uma palavra 
de memória subjacente à acessada préviamente.
Introdução
\uf0a2 A Memória Cache (MC) se baseia 
fundamentalmente nos princípios de localidade 
temporal e espacial.
\uf0a2 Funcionando como um elemento intermediário 
entre a CPU e a MP e armazenando as 
informações que muito provavelmente serão 
requisitadas pela CPU.
Utilização da MC
\uf0a2 Uma vez introduzida no sistema de 
computação o funcionamento do sistema é 
alterado de forma que antes de realizar um 
acesso direto a MP a informação é 
primeiramente buscada na Memória Cache.
\uf097 Se a informação requisitada estiver presente na 
Memória Cache ocorre um acerto(hit) e a 
informação é transferida para a CPU em \u201calta\u201d 
velocidade.
\uf097 Caso contrario ocorre uma falta (miss) e o sistema 
busca a informação na MP, e a transfere para a 
memória Cache (juntamente com outras 
informações determinadas pelo principio da 
localidade). 
Utilização da MC
CPU
Memória Cache
Memória Principal
Considerações sobre a Utilização da MC
\uf0a2 Para haver aumento de desempenho do 
sistema é necessário que hajam muito mais 
acertos (hits) do que faltas (misses). de 
maneira que as eventuais perdas de 
desempenho com faltas seja sobrepujada pela 
taxa de acertos.
\uf0a2 A taxa de acertos mais comum em sistemas 
atuais varia entre 80% e 99%, o que garante 
um ganho de desempenho considerável com a 
utilização de memórias Cache.
Tipos de Memória Cache
\uf0a2 Pelo ganho de desempenho que proporciona ao 
sistema de computação as memórias cache 
vêm se tornando um elemento imprescindível 
nos sistemas atuais e sendo utilizadas além da 
relação CPU-MP.
\uf0a2 Também vêm sendo empregadas para 
aumentar o desempenho do sistema na relação 
 MP-MS (Memória Secundária) ex:
\uf097Memórias \u201cCache\u201d para discos rígidos.
Níveis de Memória Cache 
\uf0a2 Com o aumento crescente da velocidade da 
CPU e visando minimizar um grande impacto 
no custo da Memória Cache os fabricantes vêm 
estabelecendo diferentes níveis de memória 
cache.
\uf097 L1 (Memórias Cache internas ao processador);
\uf097 L2 (internas ou externas ao processador);
\uf097 L3 (externas ao processador , e existente em 
poucos processadores);
Funções de Mapeamento
\uf0a2 Técnicas para estabelecer uma associação 
entre as células da MP e os blocos da Memória 
Cache.
\uf097Mapeamento Direto;
\uf097Mapeamento Associativo;
\uf097Mapeamento Associativo por Conjuntos.
Funções de Mapeamento-Mapeamento 
direto
\uf0a2 A Memória Principal é sub-dividida em 
agrupamentos de células que podem ser 
armazenados diretamente nas \u201ccélulas\u201d da 
memória Cache.
\uf0a2 Estabelece um mapeamento direto entre os 
blocos da MP e as \u201ccélulas\u201d da memória Cache 
de tal forma que um bloco X estará sempre 
associado a uma mesma \u201ccélula\u201d na memória 
cache.
Rótulo Linha Palavra
Funções de Mapeamento-Mapeamento 
direto
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
00
01
10
11
Memória Principal
Funções de Mapeamento-Mapeamento 
direto
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
tag informação
01 00
01
10
11
aaaa
bbbb
cccc
dddd
eeee
ffff
gggg
hhhh
iiii
jjjj
kkkk
llll
mmmm
nnnn
oooo
pppp
eeee
índice
Memória Principal
Cache
Funções de Mapeamento-Mapeamento 
direto
Funções de Mapeamento-Mapeamento 
direto
\uf0a2 Vantagens
\uf097 Implementação simples;
\uf097 Funcionamento simples;
\uf0a2 Desvantagens
\uf097 Inflexível em relação ao estabelecimento da 
associação entre MP e MC;
\uf0a2 O que pode acarretar em um aumento na taxa de faltas 
em acessos a MC e degradar o desempenho do sistema.
Funções de Mapeamento-Mapeamento 
Associativo
\uf0a2 Diferente do mapeamento direto o 
Mapeamento associativo não determina um 
local fixo na MC para os blocos da MP;
\uf0a2 Os endereços de acesso a MP são interpretados 
da mesma forma que no mapeamento direto. 
Porém o número de Bits demandados para a 
determinação do rótulo é maior;
Rótulo
Palavra
Funções de Mapeamento-Mapeamento 
Associativo
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
00
01
10
11
Memória Principal
Funções de Mapeamento-Mapeamento 
Associativo
\uf0a2 Vantagens
\uf097 Flexibilidade na associação entre MP e MC;
\uf0a2 Desvantagens
\uf097 Complexidade de implementação;
\uf097Maior demanda de processamento;
Funções de Mapeamento-Mapeamento 
Associativo por Conjuntos
\uf0a2 Criada com o objetivo de eliminar os problemas 
das técnicas de mapeamento direto e 
mapeamento associativo;
\uf097 Blocos da MP são associados a um conjunto de 
linhas na MC.
Rótulo Conjunto
Palavra
Funções de Mapeamento-Mapeamento 
Associativo por Conjuntos
Algoritmos de substituição de dados
\uf0a2 A capacidade de armazenamento da MP é 
muito maior do que a capacidade de 
armazenamento da MC; 
\uf0a2 Os algoritmos de substituição de dados na MC 
têm a tarefa de definir qual dos blocos já 
armazenados na Memória Cache deve ser 
retirado para o armazenamento de um novo 
bloco.
\uf097 Algoritmos de substituição de dados não são 
aplicáveis quando a função de mapeamento é o 
mapeamento direto visto que, utilizando essa 
técnica a localização do bloco na MP é que 
determinará a posição da informação na MC.
Algoritmos de substituição de dados
\uf0a2 Algoritmos:
\uf097 LRU (least Recently Used): Determina como 
candidatos à substituição os que não foram 
acessados recentemente.
\uf097 FIFO (First-In-First-Out): Seleciona como 
candidado para substituição o bloco que foi 
armazenado primeiro na MC;
\uf097 LFU (least Frequently Used ): o sistema de 
controle selecionará o bloco que tem tido menos 
acessos por parte do processador;
\uf097 Escolha Aleatória: O sistema de controle da 
memória Cache escolhe aleatoriamente o bloco 
que será removido.
Políticas de escrita
\uf0a2 Mecanismos para garantir a integridade das 
informações processadas no sistema, apesar 
das transferências entre a MP e a MC;
\uf0a2 Escrita em Ambas (write through)
\uf097 toda modificação de dados na Cache acarreta uma 
modificação na MP.
\uf0a2 Escrita somente no retorno (write back)
\uf097 A informação modificada na Cache só será 
repassada para a MP quando estiver a ponto de ser 
substituída.
Tamanho da Memória Cache
\uf0a2 A definição da faixa de tamanho (capacidade 
de armazenamento) de uma cache depende:
\uf097 Capacidade de armazenamento da MP;
\uf097 Razão acertos/falhas aceitavel;
\uf097 Tempo de acesso da MP e da MC;
\uf097 Custo da MP e MC;
\uf097Natureza dos programas em execução.
\uf0a2 Estudos apontam que capacidades aceitáveis 
para MC como:
\uf097 Entre 32K e 256Kbytes para Caches L1;
\uf097 Entre 64K e 4Mbytes para Caches L2;
Memória Cache