Sei sulla pagina 1di 63

Universidade Federal do Cear

Campus de Russas

Arquitetura de Computadores
Aula 04 Memria cache

Pablo Soares
pablo.soares@ufc.br

Memria

Grande variedade

Tipo, tecnologia, organizao, desempenho e custo

Hierarquia de memrias

Internas ao computador

Externas

Acessadas por mdulos de E/S

Memria

Caractersticas das memrias

Localizao

Capacidade

Unidade de transferncia

Mtodo de acesso

Desempenho

Tipo fsico

Caractersticas fsicas

Organizao
3

Memria

Localizao

Interna

CPU (registradores)
Cache
Memria principal (RAM)

Externa (secundria ou auxiliar)

Mdulos de E/S

Disco
Fita

Quanto mais interna, mais rpida


4

Memria

Capacidade

Dada em bytes

Quanto maior, mais dados podem ser armazenados

Palavra

Unidade de organizao da memria

Geralmente, de tamanho igual ao de um inteiro e ao tamanho de


uma instruo

Unidade enderevel

Geralmente, uma palavra

Alguns sistemas com palavras de mais de 1 byte podem


enderear bytes individuais

Memria

Unidade de transferncia

Igual ao nmero de linhas no barramento de dados

Nmero de bits lidos ou escritos de uma vez

Igual ou maior que o tamanho da palavra

Geralmente, maior

Transferncia por blocos

Memria

Mtodo de acesso

Sequencial

Direto

Aleatrio

Associativo

Memria

Mtodo de acesso

Sequencial

Memria organizada em registros

Para ler um registro, todos os anteriores precisam ser lidos

Mecanismo de leitura/escrita compartilhado


Tempo de acesso varivel
Fita

Direto

Endereo individual para blocos ou registros

Baseado na localizao fsica


Bloco acesso direto ao bloco, sequencial ao registro

Mecanismo de leitura/escrita compartilhado


Tempo de acesso varivel
Disco rgido

Memria

Mtodo de acesso

Aleatrio

Cada registro tem um endereo exclusivo


Tempo de acesso constante

Independe de acessos anteriores

RAM e alguns tipos de cache

Associativo

Como o acesso aleatrio

Usando apenas alguns bits do endereo

Tempo de acesso constante


Cache
9

Memria

Desempenho

Tempo de acesso (latncia)

Tempo de ciclo de memria

Taxa de transferncia

10

Memria

Desempenho

Tempo de acesso (latncia)

Memrias de acesso aleatrio

Tempo de uma operao de leitura ou escrita


Tempo desde a apresentao de um endereo memria
at
Armazenamento dos dados, ou

Disponibilidade dos dados

Memrias de acesso no aleatrio

Tempo gasto para posicionar o mecanismo no local desejado

11

Memria

Desempenho

Tempo de ciclo de memria

Somente para memria de acesso aleatrio

Tempo de acesso +
Tempo adicional para que um segundo acesso possa iniciar
Extino de transientes nas linhas de sinal
Regenerao de dados

12

Memria

Desempenho

Taxa de transferncia

Taxa em que dados podem ser transferidos para dentro


ou para fora da memria

Acesso aleatrio

1
tempo de ciclo
Acesso no aleatrio
(n) / ( (tempo mdio para ler ou escrever n bits) (tempo
mdio de acesso))

n
tempo mdio de leitura/escrita de n bitstempo mdio de acesso
13

Memria

Tipo fsico

Tecnologia de fabricao

Semicondutores

De superfcie magntica

Disco rgido, disquete, fita

ptica

RAM, cache, flash, SSD

CD, DVD

Magneto-ptica

CD-RW

14

Memria

Caractersticas fsicas

Volatilidade

Memria apagada sem energia


Voltil

No-voltil

RAM, cache
HD, SSD, flash, CD, DVD

Somente leitura

No pode ser modificada

No-voltil

Tecnologia de semicondutores ROM


15

Memria

Organizao

Arranjo fsico dos bits

Captulo 5

16

Hierarquia de memria

Questes principais

Capacidade

Maior capacidade mais dados guardados

Velocidade

Maior velocidade mais dados processados por vez

Idealmente, da mesma velocidade da CPU

Custo

Custo razovel

Comparado com o custo do sistema computacional todo

17

Hierarquia de memria

Questes principais

Maior velocidade

Maior custo por bit

Maior capacidade

Menor custo por bit


Tempo de acesso maior

Menor velocidade

18

Hierarquia de memria

Hierarquia
Maior custo por bit
Menor capacidade
Maior velocidade
Maior frequncia de acesso

Menor custo por bit


Maior capacidade
Menor velocidade
Menor frequncia de acesso
19

Hierarquia de memria

Hierarquia

Frequncia de acesso

Busca por dados/instrues em memrias mais rpidas


Caso no estejam

Localidade de referncia

Busca por dados/instrues em memrias mais lentas

Porcentagem de acesso cai quando se desce na


hierarquia

CPU registradores cache L1 cache L2


cache L3 RAM HD

Memrias volteis de semicondutores (rpidas)


Memrias no-volteis externas

20

Memria cache

Cache

Voltil

De semicondutor

Baixa capacidade

Muito rpida

Velocidade prxima a do processador

Localizada entre a CPU e a RAM

21

Memria cache

22

Memria cache

Conceitos

Endereos de n bits

Memria principal

2n palavras endereveis
Srie de blocos de K palavras

M = 2n / K blocos

23

Memria cache

Conceitos

Memria cache

m linhas (m << M)
Cada linha tem

K palavras Armazena um bloco


Tag (alguns bits)
Parte do endereo na memria principal
Indica qual bloco est na linha
Bits de controle (no mostrados)
Se houve modificao ou no

Tamanho da linha tamanho do bloco (ignora tag e


controle)
24

Memria cache

Conceitos

Memria cache

Bloco

Princpio da localidade

Palavra desejada juntamente com palavras adjacentes


Dados nas vizinhanas de uma palavra referenciada
provavelmente sero referenciadas num futuro prximo

Dados na cache

Dado est na cache acerto de cache, cache hit


Dado no est na cache falha de cache, cache miss
Razo de acerto quantidade de acertos de cache em uma
determinada quantidade de acessos
acertos / (acertos + falhas)

25

Memria cache

26

Memria cache

Leitura de dados pela CPU

27

Memria cache

Leitura de dados pela CPU

28

Memria cache

Elementos do projeto de memria cache


1.Endereos de cache
2.Tamanho
3.Funo de mapeamento
4.Algoritmo de substituio
5.Poltica de escrita
6.Tamanho da linha
7.Nmero de caches
29

Memria cache
1)Endereos de cache

Endereo fsico x endereo virtual


Memria

Programa 1

Programa 2

0
1

P1
P1+1

P1+T1

P2
P2+1

P2+T2

N-1

Memria

0
1
Programa 1

T1-1
0
1
Programa 2

T2-1

30

Memria cache
1)Endereos de cache

Converso entre endereos

MMU

Memory
Management
Unit

Cache

Lgica

Endereos
virtuais

Fsica

Endereos
fsicos

31

Memria cache
1)Endereos de cache

Cache

Lgica Entre CPU e MMU


Fsica Entre MMU e Memria principal

Consideraes

Acesso mais rpido na lgica que na fsica

Lgica usa mesma memria virtual para vrias memrias


fsicas

Em programas diferentes

Cache deve ser esvaziada na troca de contexto

No passa pela MMU

De um programa para outro

Bits extras para identificar a memria fsica


correspondente
32

Memria cache
2.Tamanho da cache

Pequeno

Grande

Tempo de acesso mdio prximo ao tempo de acesso


somente da cache

Caches grandes

Custo por bit prximo ao da RAM

Ligeiramente mais lentas que caches pequenas

Tamanho ideal

Difcil de ser determinado


Vrias caches em nveis diferentes

Caches mais internas, mais rpidas e menores


33

Memria cache
3. Funo de mapeamento

Menos linhas de cache que blocos na RAM

Modo de determinar qual bloco da RAM est em


qual linha da cache

Mapeamento de blocos para linhas

Uso da tag

Funes

Direta
Associativa
Associativa em conjunto
34

Memria cache

Mapeamento direto

35

Memria cache
RAM

Mapeamento direto

Cada bloco
mapeado a
somente
uma linha

Cache

m nmero de
linhas da cache
i linha
j bloco
i=j%m
36

Memria cache
Bloco

Mapeamento direto

RAM (5 bits)

Cache

4 linhas
2 palavras

Cache

Linha
0
1
2
3

RAM

32 palavras

0
1
2
3
4
5

RAM

32 / 2 = 16 blocos

Bloco 5

5%4=1
Linha 1

37

Memria cache
Bloco

Endereo

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

00 00 0
00 00 1
00 01 0
00 01 1
00 10 0
00 10 1
00 11 0
00 11 1
01 00 0
01 00 1
01 01 0
01 01 1
01 10 0
01 10 1
01 11 0
01 11 1
10 00 0
10 00 1
10 01 0
10 01 1
10 10 0
10 10 1
10 11 0
10 11 1
11 00 0
11 00 1
11 01 0
11 01 1
11 10 0
11 10 1
11 11 0
11 11 1

RAM

Cache

Linha
0
1
2
3

38

Memria cache
Bloco
0
1
2
3
4
5
6
7

Endereo
0 00 00
0 00 01
0 00 10
0 00 11
0 01 00
0 01 01
0 01 10
0 01 11
0 10 00
0 10 01
0 10 10
0 10 11
0 11 00
0 11 01
0 11 10
0 11 11
1 00 00
1 00 01
1 00 10
1 00 11
1 01 00
1 01 01
1 01 10
1 01 11
1 10 00
1 10 01
1 10 10
1 10 11
1 11 00
1 11 01
1 11 10
1 11 11

RAM

Cache

Linha
0
1
2
3

39

Memria cache

Mapeamento Direto (Exemplo)

Cache de 64 Kbytes

Linha de Cache de 4 bytes

Ou seja, cache de 16K (214) linhas de 4 bytes

Memria principal

16MB

Endereo de 24 bits
(214 = 16MB )

Linha ou slot r
14

Palavra w
2

Identificador de palavras

Tag s-r

2 bits (w)

Identificador de bloco

Tag de 8 bits (s-r)


Slot ou linha de 14 bits (r)

40

Memria cache

Mapeamento direto

41

Memria cache

Mapeamento direto

42

Memria cache

Mapeamento direto

Simples e barato

Local fixo para cada bloco

Referencias repetidas a blocos diferentes mapeados a


mesma linha

Troca contnua de bloco na cache


Thrashing

43

Memria cache

Mapeamento associativo

44

Memria cache

Mapeamento associativo

Qualquer bloco em qualquer linha

Tag identifica o bloco, mas no a linha

Endereo (s+w bits)

Bits de tag (s)


Bits de palavra (w)

Tag

Palavra

Endereo de 24 bits 224 bytes = 16 Mbytes de


RAM

Cache de 64 Kbytes = 216 bytes

Bloco de 4 bytes linha de 4 bytes 214 linhas


Bloco de 4 = 22 bytes w = 2
Tag s = 24 2 = 22

45

Memria cache

Mapeamento associativo

46

Memria cache

Mapeamento associativo

47

Memria cache

Mapeamento associativo

Qualquer bloco em qualquer linha

Mais flexibilidade

Diminui o thrashing

Comparar tag do endereo desejado com as tags


de todas as linhas

Circuito mais complexo


Mais lento de se determinar se o dado est na cache

48

Memria cache

Mapeamento associativo em conjunto

Combinao do direto com o associativo

Vantagens dos dois mapeamentos

Cache

Srie de conjuntos
Conjunto

Mapeamento direto para um conjunto

Srie de linhas (k linhas por conjunto, k-way, k vias)

Mapeamento associativo para uma linha

Mapeamento associativo para um conjunto

Mapeamento direto para uma linha

49

Memria cache

Mapeamento associativo em conjunto

Mapeamento direto para conjunto

50

Memria cache

Mapeamento associativo em conjunto

Mapeamento associativo para conjunto

51

Memria cache

Mapeamento associativo em conjunto

Endereo (s+w bits)

Bits de tag (s-d)


Bits de conjunto (d)
Bits de palavra (w)

Tag

Conjunto

Palavra

s-d

Mapeamento direto para conjunto

Usando bits de conjunto

Encontra o conjunto diretamente

Usando bits de tag

Busca associativa pela tag


52

Memria cache

Mapeamento associativo em conjunto

53

Memria cache

Mapeamento associativo em conjunto

54

Memria cache

4 Algoritmo de substituio

Mapeamentos associativos

Caso de cache miss

Qual linha da cache ser substituda pelo bloco da RAM?

Usando bits de controle por linha

No existe um consenso sobre o melhor

Depende da aplicao

55

Memria cache

4 Algoritmo de substituio

Usado menos recentemente

Primeiro a entrar, primeiro a sair

FIFO first in, first out


Buffer circular

Usado menos frequentemente

LRU least recently used (tempo)


Algoritmo mais popular e provavelmente o mais eficiente

LFU least frequently used (acesso)

Aleatrio

Apenas ligeiramente pior que os outros

56

Memria cache

5 Poltica de escrita

Escrita da cache para a RAM

Escrita da RAM para a cache

Alterao de dados por mdulo de E/S

De uma cache para outra cache

Alterao dos dados pela CPU

Uma cache para cada CPU

Polticas

Write-through
Write-back
57

Memria cache

5 Poltica de escrita

Write-through

Alteraes feitas na cache e na RAM assim que


acontecem

Caches

Monitoramento do trfego para a RAM


Manter a consistncia da cache

Vantagem

Memria principal sempre vlida

Validade e consistncia

Desvantagem

Trfego considervel / monitoramento constante


58

Memria cache

5 Poltica de escrita

Write-back

Alteraes pela CPU feitas apenas na cache


No momento da substituio

Vantagem

Escreve de volta na RAM, em caso de modificao


Menos trfego no barramento

Desvantagem

Dados na RAM invlidos


Acesso de E/S a dados em cache no permitidos
Circuitos mais complexos
59

Memria cache

6 Tamanho da linha

Aumento do tamanho de linhas pequenas

Aumenta a probabilidade de cache hit

Mais aumento do tamanho das linhas

Aumenta a probabilidade de cache miss

Probabilidade de uso das prximas palavras diminui

Linhas maiores

Diminui o nmero de linhas na cache

Dados modificados pouco depois de serem buscados

Palavras adicionais mais distantes da desejada

Princpio da localidade

Menos probabilidade de ser necessria

No existe tamanho ideal

60

Memria cache

7 Nmero de memrias cache

Caches multinvel

Caches no chip

Cache dentro e fora do chip

No ligados ao barramento principal


Libera barramento para outras transferncias
L1 no chip e L2 no barramento
L1 e L2 no chip, L3 no barramento

Tamanho das caches

L2 geralmente, 2 vezes maior que a L1


L3 geralmente, 2 vezes maior que a L2
61

Memria cache

7 Nmero de memrias cache

Caches unificadas ou separadas

Cache unificada

Uma nica cache para dados e para instrues


Aumenta a taxa de acerto (cache hit)
Mais simples de implementar

Caches separadas

Uma cache para dados e outra para instrues


Acaba com disputa entre
Unidade de busca e decodificao de instruo
Unidade de execuo (lgica e aritmtica)
Melhor para processamentos paralelos
62

Memria cache

7 Nmero de memrias cache

Caches multinvel

63

Potrebbero piacerti anche