memória cache. princípio da localidade apenas uma parte relativamente pequena do espaço de...

55
Memória Cache

Upload: pietra-franca-faria

Post on 07-Apr-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Memória Cache

Page 2: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

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

Page 3: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Localidade em Programas•Localidade temporal:

▫Em função de sua estrutura, as instruções e dados da maioria dos programas tendem a ser acessados de maneira repetitiva

•Localidade espacial:▫As instruções são acessadas quase sempre

de maneira seqüencial Elementos de arrays ou registros

3

Page 4: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Níveis de Memória - 01•Dados sempre copiados entre níveis de

memória adjacentes▫Análise focada apenas em dois níveis, um

superior e um inferior•Bloco:

▫Unidade mínima de informação trocada entre níveis

4

Page 5: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Níveis de Memória - 02

5

Processador

Dados transferidos

Page 6: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Taxa/Razão de Acertos•Mede desempenho da Hierarquia•Acerto:

▫Informação solicitada pelo processador encontra-se no nível superior

▫Taxa de acerto: fração de acessos com acerto•Falta:

▫Informação solicitada pelo processador não se encontrada no nível superior Nível inferior acessado em busca do bloco.

▫Taxa de faltas = (1 – taxa de acerto)

6

Page 7: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Tempo de Acerto e Penalidade por Faltas

•Determinam a eficiência da implementação de uma hierarquia de memória▫Tempo de acerto – tempo para acesso ao

nível superior, incluindo o tempo para determinar o acerto ou falta

▫Penalidade por falta – tempo para a substituição dos blocos mais o tempo de envio da informação ao processador

▫Tempo de acerto <<< penalidade por falta

7

Page 8: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Memória Cache•Originalmente, nível da hierarquia de

memória situado entre o processador e a memória principal

•Termo estendido para qualquer memória gerenciada de modo a tirar vantagem da localidade de acesso

8

Page 9: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Características - 01•Diminui o gargalo existente entre

processador e memória principal▫Diferença de velocidade

•5 a 10 vezes mais rápidas que a memória principal

•Ligada diretamente à MP

9

Page 10: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Características - 02•Tecnologia semelhante à da CPU e, em

conseqüência, possui tempos de acesso compatíveis com a mesma, resultando numa considerável redução da espera da CPU para receber dados e instruções da cache

10

Page 11: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Níveis De Cache - 01• L1 – Level 1 (nível 1)

▫Dentro do processador▫Mesma velocidade do processador

• L2 – Level 2 (nível 2)▫Dentro do invólucro, fora do chip▫Metade da velocidade do processador

• L3 – Level 3 (nível 3)▫Cache externa, situada na placa mãe

11

Page 12: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Níveis De Cache - 02

12

Cache L1

ProcessadorCache L2 Memória

principal

Invólucro do processador

Page 13: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Divisão da Cache L1•A cache L1 é geralmente dividida em

cache de dados e cache de instruções: processamento mais rápido

13

dados

processador

instruções

Cache L1

Page 14: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Localidade•Devido ao princípio da localidade, é

interessante que a memória cache armazene o pedaço do programa que é executado repetidas vezes, deixando o restante do programa que não está sendo utilizado na memória principal

14

Page 15: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Utilização da Cache - 01•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 MP para a MC

15

Page 16: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Utilização da Cache - 02•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

16

Page 17: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

17

Processador Cache

controlador de cache

Memóriaprincipal

Bloco de palavrasPalavra

(instruçãoou dado)

Page 18: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Elementos de Projetos de uma Cache•Função de mapeamento MP/MC•Algoritmos de substituição de dados na

cache•Políticas de escrita

18

Page 19: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Função de Mapeamento•A função de mapeamento indica quais

blocos da MP estão presentes na cache e onde eles estão localizados na cache▫A MC e MP estão divididas em blocos de x

palavras▫A MC pode conter m blocos (linhas)▫A MP pode conter b blocos

19

Page 20: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

20

.

.

.Bloco 0

Byte 0Byte 1

Byte 63

.

.

.

Byte 0Byte 1

Byte 63

Bloco 1

.

.

.

Byte 0Byte 1

Byte 63

Bloco 226 -1

.

.

.

MP

Divisão da MP de 4G bytes em blocos de 64 bytes então tem-se 226 blocos de 64 bytes

Page 21: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

21

Byte 0

Byte 0

Byte 0

Tag ou rótulo

MC

Byte 0

Byte 1

Byte 1

Byte 1

Byte 1

Byte 63

Byte 63

Byte 63

Byte 63 ...

...

...

...

.

.

.

Linha 0Linha 1Linha 2

Linha 1023

Divisão da MC de 64K bytes em linhas de 64 bytes então tem-se 1024 linhas de 64 bytes

Page 22: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Direto - 01•Cada bloco da MP tem uma linha de

cache previamente definida para ser armazenado

•Muitos blocos irão ser destinados a uma mesma linha

22

Page 23: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

23

.

.

.B 0

Byte 0Byte 1

Byte 63

.

.

.

Byte 0Byte 1

Byte 63

B 1

.

.

.

Byte 0Byte 1

Byte 63

B 226 -1

.

.

.

Byte 0

Byte 0

Byte 0

Byte 0

Byte 1

Byte 1

Byte 1

Byte 1

Byte 63

Byte 63

Byte 63

Byte 63 ...

...

...

...

.

.

.

Linha 0

Linha 1

Linha 2

Linha 1023

tag

Bloco 1023

Page 24: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Direto - 02•Cada linha da MC deverá acomodar 216

blocos ou 65536 blocos (um de cada vez)•O campo tag serve para identificar qual

bloco a linha está armazenando no momento

24

Page 25: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Direto - 03•Cada endereço de MP pode ser dividido

nos seguintes elementos:

25

Número do bloco na linha Número da linha Número do byte

16 bits216= 64K blocos

10 bits210= 1024 linhas

6 bits26= 64 bytes

32 bits

Page 26: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Direto - 04•Exemplo:

▫O processador manda para a MC o seguinte endereço:

26

00000000000001000000011001001000

4 25 8

Page 27: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

27

Byte 0

Byte 0

Byte 0

Tag ou rótulo

Byte 0

Byte 1

Byte 1

Byte 1

Byte 1

Byte 63

Byte 63

Byte 63

Byte 63 ...

...

...

... Linha 0Linha 1Linha 2

Linha 1023

00000000000001000000011001001000

4 25 8

Byte 0Byte 1Byte 63 Byte 84 Linha 25

Page 28: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Direto - 05•Se o campo tag do endereço for igual ao

campo tag da linha da cache, o conteúdo do byte solicitado é enviado para o processador

28

Page 29: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Direto - 06•Se os campos tag forem diferentes, isso

significa que o bloco desejado não se encontra na cache e, portanto, deve ser transferido da MP para a linha 25, substituindo o atual bloco para, em seguida, a palavra (o byte) requerida ser transferida para o processador pelo barramento de dados

29

Page 30: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Direto - 08•A técnica de mapeamento direto é simples

e de baixo custo•Desvantagem: fixação da localização para

os blocos▫Imagine se durante a execução de um

programa um dado código fizer referências repetidas a palavras situadas em blocos alocados na mesma linha, então haverá necessidade de sucessivas idas à MP para substituição de blocos (muitas faltas) e queda no desempenho do sistema

30

Page 31: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Associativo - 01•Os blocos não têm uma linha fixada

previamente para seu armazenamento•O bloco é armazenado em uma linha que é

selecionada de acordo com o algoritmo de substituição de cache

31

Page 32: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

32

.

.

.B 0

Byte 0Byte 1

Byte 63

.

.

.

Byte 0Byte 1

Byte 63

B 1

.

.

.

Byte 0Byte 1

Byte 63

B 226 -1

.

.

.

Byte 0

Byte 0

Byte 0

Byte 0

Byte 1

Byte 1

Byte 1

Byte 1

Byte 63

Byte 63

Byte 63

Byte 63 ...

...

...

...

.

.

.

Linha 0

Linha 1

Linha 2

Linha 1023

tag

Page 33: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Associativo - 02•Cada linha da MC pode acomodar um dos

226 blocos da memória principal•O campo tag tem agora 26 bits de

tamanho

33

Page 34: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Associativo - 03•Cada endereço de MP é dividido nos

seguintes elementos:

34

Número do bloco Número do byte

26 bits226 blocos

6 bits26 bytes

32 bits

Page 35: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Associativo - 04•Quando o processador realiza um acesso

à memória, o campo bloco do endereço é comparado com todos os 1024 tags da cache para verificar se o bloco está ou não presente

35

Page 36: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Associativo - 05•Se o bloco estiver presente, o byte é

transferido para a CPU senão o endereço do bloco é usado para buscar na memória principal o bloco ausente

36

Page 37: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Associativo - 06•Desvantagem: teste do campo bloco do

endereço de memória com todos os tags da cache

37

Page 38: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Mapeamento Associativo por Conjunto de N Posições - 01•Esquema intermediário entre o direto e o

totalmente associativo•Número fixo de posições onde um bloco

pode ser armazenado na cache•Cache associativa de n posições:

▫n posições possíveis para cada bloco▫Cache com conjuntos de n posições▫Blocos mapeados diretamente em um conjunto

e colocado em qualquer elemento do conjunto

38

Page 39: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Bits de Validade•Quando o processador é inicializado, a

cache está vazia e os rótulos não têm significado

•Bits de validade são adicionados à cache para identificar se um bloco tem informações válidas▫Bit igual a zero -> Informação inválida

39

Page 40: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Tratamento de Faltas – 01•Atividades do controle principal:

▫Parar o processador▫Congelar o conteúdo dos registradores

•Um controle separado trata as faltas:▫Busca a informação necessária na memória▫Atualiza a informação na cache

•Execução retomada no ciclo gerador da falta

40

Page 41: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Tratamento de Faltas – 021.Enviar à memória o valor original de PC2.Comandar uma leitura da unidade de

memória e esperar o resultado3.Escrever o resultado da leitura na

entrada da cache, seu rótulo e bit de validade

4.Reiniciar a execução da instrução no passo 1

41

Page 42: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Parada em Uso•Técnica para redução do número de ciclos

parados pela falta no acesso à cache•Baseia-se no processamento de outras

instruções durante o tratamento de faltas▫Na falta produzidas pelo acesso a dados novas

instruções que não dependem do dado podem ser executadas

▫Não ajuda para faltas no acesso a instruções•Geralmente, não mostra ganhos

expressivos pela dependência do dado sendo acessado

42

Page 43: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Algoritmos De Substituição De Cache - 01•Qual bloco atualmente armazenado na cache

deve ser retirado para dar lugar a um novo bloco que está sendo transferido?▫LRU (Least Recently Used): O controlador de

cache escolhe o bloco que está há mais tempo sem ser utilizado pela CPU

▫FIFO (First in first out): O controlador de cache escolhe o bloco que está armazenado há mais tempo na cache, independentemente de estar sendo usado ou não com freqüência pela CPU

43

Page 44: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Algoritmos De Substituição De Cache - 02

▫LFU (Least Frenquently Used): o controlador de cache escolhe o bloco que tem tido menos acessos (menos referências) por parte da CPU

▫Escolha aleatória

44

Page 45: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Políticas de Escrita pela Memória Cache - 01•Quando o processador realiza uma

operação de escrita, esta acorre imediatamente na cache

•A memória cache é uma memória intermediária logo é necessário que a MP seja atualizada para que o sistema mantenha sua correção e integridade

45

Page 46: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

46

Cache

Memória Principal

X = 1Y = 7Z = 2

X = Y + Z

X = 1Y = 7Z = 2

X = Y + Z

Bloco 4 Bloco 4

Processador

X = Y + Z

Antes da execução da instrução X = Y + Z

Page 47: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

47

Cache

Memória Principal

X = 9Y = 7Z = 2

X = Y + Z

X = 1Y = 7Z = 2

X = Y + Z

Bloco 4 Bloco 4

Processador

X = Y + Z

Depois da execução da instrução X = Y + Z

Page 48: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

48

Processador

CacheX = 1

Processador

CacheX = 1

ProcessadorX = Y + Z

cacheX = 9

MP X = 1

X = 9X = 9X = 9

Page 49: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Políticas de Escrita pela Memória Cache - 02•O bloco 4 (o valor de X) precisa ser

atualizado na memória•Quando?

▫Depende da política de escrita

49

Page 50: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Write Through - 01•Cada escrita em uma palavra da cache

acarreta em uma escrita na palavra correspondente na MP, assegurando validade permanente e igual ao conteúdo de ambas as memórias

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

50

Page 51: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

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

51

Page 52: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Write Through - 03•Faltas de escrita:

▫Processador simplesmente atualiza a memória principal, como antes

▫Não ocorrem leituras da memória principal durante a escrita pelo processador

52

Page 53: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

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

53

Page 54: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Tamanho do Bloco – 01 •Relaciona-se com a exploração da

localidade espacial e desempenho•Em geral, a taxa de faltas cai com o

aumento do tamanho do bloco

54

Page 55: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer

Tamanho do Bloco – 02•Taxa de faltas pode crescer se o bloco

representar uma fração considerável do tamanho da cache▫Pequeno número de blocos -> Alta

competição▫Blocos retirados da cache sem muita

exploração

55