Arquitetura de Computadores - Memoria Cache
Por: Douglas Souza • 28/9/2018 • Pesquisas Acadêmicas • 459 Palavras (2 Páginas) • 301 Visualizações
Arquitetura de Computadores
Memória Cache
- É uma pequena porção de memória de alta velocidade, do tipo estática, que se encaixa entre a CPU e a memória principal(MP).
- Mantém cópias da MP que está em uso corrente com o objetivo de diminuir o tempo de acesso da CPU a instruções e dados requisitados.
- Primeiramente, a CPU acessa a cache. Caso encontre a informação requerida, diz-se que ocorreu um cache-hit(acerto na cache), e a transferência é realizada com grande velocidade.
- Caso a informação não esteja na cache, diz-se que ocorreu um cache-miss(falha na cache). Nesse caso, a informação é transferida da MP para a cache e daí para a CPU, aumentando o tempo de acesso.
- Dois tipos de cache quanto à gravação dos dados:
- write-through: Grava os dados para a memória e também para a cache, limitando-se apenas a leitura de dados na cache.
- write-back: Grava os dados para a cache e, em momentos de não utilização do BUS pela CPU, atualiza a memória.
[pic 1]
[pic 2]
Princípios de Localidade
- Localidade Temporal: Quando um programa acessa uma palavra de memória, há uma grande probabilidade de que em breve a mesma palavra seja acessada novamente.
- Localidade Espacial: Quando um programa acessa uma palavra de memória, há uma grande probabilidade de que o próximo acesso solicitado seja a uma palavra de endereço adjacente àquela que ele acabou de acessar.
[pic 3]
[pic 4]
Organização Cache/MP
- Para efetuar a transferência de um bloco da MP para uma específica linha da memória cache, pode-se escolher uma das três alternativas:
- Mapeamento direto
- Mapeamento associativo
- Mapeamento associativo por conjunto
[pic 5]
Mapeamento Direto
[pic 6]
MP: 64 células (64 bytes).
Cache: 16 bytes (4 linhas de 4 bytes cada).
Cada linha pode armazenar 4 blocos, um de cada vez.
Ex: a linha 0 pode armazenar os blocos 0, 4 , 8 e 12.
[pic 7]
MP: 4G Bytes (64M blocos de 64 bytes cada).
Cache: 64K Bytes (1024 linhas de 64 bytes cada).
Cada linha da cache armazena um bloco da MP de cada vez.
Um bloco só pode ser armazenado na linha mapeada para seu endereço.
[pic 8]
[pic 9]
Mapeamento Associativo
[pic 10]
MP: 32 células (32 bytes).
Cache: 4 linhas de 2 bytes cada.
Um bloco pode ser armazenado em qualquer linha da cache.
[pic 11]
MP: 32 células (32 bytes).
Cache: 4 linhas (2 conjuntos de duas linhas).
Um bloco só pode ser armazenado numa linha mapeada em seu conjunto.
Ex: o Bloco 1001 só pode ser encontrado numa linha do conjunto 1.
Algoritmos de Substituição de dados
- Utilizado pelo Mapeamento Associativo ou Associativo por Conjunto:
- LRU (Least Recenly Used): Descarta o bloco que não é utilizado a mais tempo.
- FIFO (First In-First Out): Descarta o bloco armazenado a mais tempo.
- LFU (Least Frequently Used): Descarta o bloco que tem tido menos acessos por parte da CPU.
- Aleatório
...