Você está na página 1de 15

Memória Cache

Prof. Marcos Dantas Ortiz


Slides de autoria do professor Michel sales

1 Arquitetura de Computadores
Princípio da Localidade
“Apenas uma parte relativamente pequena do espaço de endereçamento dos
programas é acessada em um instante qualquer”

Localidade Temporal
Um item referenciado tende a ser referenciado novamente dentro de um espaço de tempo
curto
Localidade Espacial
Se um item é referenciado, itens cujos endereços sejam próximos ao dele tendem a ser logo
referenciados

2 Arquitetura de Computadores
Memória Cache

Originalmente, nível da hierarquia de memória situado entre o processador e


a memória principal

Consiste em uma pequena quantidade de memória SRAM embutida no


processador

3 Arquitetura de Computadores
Memória Cache

Diminui o gargalo existente entre processador e memória principal:


Diferença de velocidade
Ligada diretamente à memória principal;
5 a 10 vezes mais rápidas que a memória principal:
Consistem em uma Static RAM (SRAM).
Menor capacidade que a memória principal;
Acesso Associativo;
Localizada dentro do chip do processador, resultando numa considerável
redução da espera da CPU para receber dados e instruções da cache.

4 Arquitetura de Computadores
Funcionamento Básico
Sempre que o processador vai buscar uma nova instrução (ou dado), ele
acessa a memória cache:
Se a instrução estiver na cache (acerto ou hit), ela é transferida em alta velocidade para o
processador
Se a instrução não estiver na cache (falta ou miss), a execução do programa é interrompida e a
instrução desejada é transferida da memória principal para a memória cache pelo controlador de
cache.

5 Arquitetura de Computadores
Funcionamento Básico
Não é feita a transferência somente da instrução, mas sim de um bloco que,
segundo o princípio da localidade, contém instruções que serão usadas em
seguida.

6 Arquitetura de Computadores
7 Arquitetura de Computadores
Níveis de Memória Cache

O nível de memória cache L1 é subdivido em duas partes, sendo um dedicado


para instruções e outro para dados.

processador

dados instruções

Cache L1

8 Arquitetura de Computadores
Níveis de Memória Cache

A memória cache L2 é programada para salvar dados e informações.

Já a memória cache L3 é uma memória de maior tamanho para salvar


conteúdos “genéricos”, que supostamente podem ser requisitados por
quaisquer núcleos para dar continuidade às tarefas.

9 Arquitetura de Computadores
Exemplo de Capacidade
Intel Core i3 2120: Intel Core i9 9900k
L1 Data: 32 KB L1 Data: 256 KB
L1 Instruction: 32 KB L1 Instruction: 256 KB
Level 2: 256 MB Level 2: 2 MB
Level 3: 3 MB Level 3: 16 MB
Intel Core i7 8550U
L1 Data: 128 KB
L1 Instruction: 128 KB
Level 2: 1 MB
Level 3: 8 MB

10 Arquitetura de Computadores
Algoritmos de Substituição

Uma vez que a cache esteja cheia, e um novo bloco seja


trazido para a cache, um dos blocos existentes precisa se
substituído.
Usado menos recentemente (LRU — do inglês, Least Recently Used)
Primeiro a entrar, primeiro a sair (FIFO — do inglês, First In, First
Out)
Usado menos frequentemente (LFU — do inglês, Least Frequently
Used)
Aleatória

11
Políticas de Escrita pela Memória Cache

Exemplo: O bloco 4 precisa ser atualizado na memória principal;

Quando?
Depende da política de escrita:
Write Through
Write Back

12
Write Through - 01

Cada escrita em uma palavra da cache acarreta em uma escrita na palavra


correspondente na memória principal, assegurando validade permanente e
igual ao conteúdo de ambas as memórias;

Caso haja outras CPUs, estas alterarão também suas caches.

13
Write Through - 02
Simples, mas não favorece o desempenho
Qualquer escrita faz com que a informação seja escrita também na memória
principal
Aumento do número de ciclos de clock
Buffer de escrita:
Armazena o dado enquanto este aguarda sua escrita na memória
Reduz o problema das escritas na mem. principal
Buffer cheio – Processador parado em escritas

14
Write Back

Quando ocorre uma escrita, o novo valor é escrito apenas


no bloco da cache
O bloco só será escrito na memória principal quando ele precisar
ser substituído na cache

Pode melhorar muito o desempenho, porém é mais


complexo que o write through

15

Você também pode gostar