Você está na página 1de 44

Aula 2

Professores:
Lcia M. A. Drummond
Simone de Lima Martins
1
Contedo:
Subsistemas de memria
- Memria Cache
- Detalhes

Memria Cache
Diferena de velocidade UCP/MP
MP transfere bits para a UCP em velocidades sempre inferiores s
que a UCP pode receber e operar os dados - tempo de espera na
UCP (wait state)
Difcil de resolver. Enquanto o desempenho dos processadores dobra
a cada 18 ou 24 meses, o mesmo no acontece com as memrias
DRAM (aumento de 10% a cada ano)
Tecnologia para aumentar a velocidade de MP bem conhecida -
problema: CUSTO!!
2
Memria Cache
Conceitos de Localidade
A execuo de programas se realiza, na mdia, em pequenos grupos
de instrues.
Duas facetas: espacial e temporal
Localidade espacial: se o programa acessa uma palavra de memria,
h uma boa probabilidade de que ele acesse uma palavra subseqente
ou de endereo adjacente
Localidade temporal: Se um programa acessa uma palavra de
memria, h uma boa probabilidade de que em breve ele acesse
a mesma palavra novamente
3
Memria Cache
Conceitos de Localidade
4
(Fig. 5.20 do livro texto)
Outro programa
Call sub-rotina 1
Parte 1 do
progr. A
Executado em
seqncia
loop 2
loop 1
sub-rotina 1
parte 2
parte 3
MP
Memria Cache
Utilizao da Memria Cache
Sempre que a UCP vai buscar uma nova instruo (ou dado), ela
acessa a memria cache
Se a instruo estiver na cache, chama-se de acerto (hit). Ela
transferida em alta velocidade
Se a instruo no estiver na cache, chama-se de falta (miss).
O grupo de instrues a que a instruo pertence transferida
da MP para a cache, considerando o princpio da localidade
5
(Fig. 5.21 do livro texto)
Transferncia cache/UCP:
bloco por bloco
de palavras
MP
CACHE
UCP
Transferncia cache/UCP:
palavra por palavra
Memria Cache
Utilizao da Memria Cache
Para melhorar o desempenho necessrio muito mais acertos do
que faltas
6
(Fig. 5.22 do livro texto)
MP UCP
MEMRIA
CACHE
SISTEMA
DE
E/S
BARRAMENTO NICO - DADOS, ENDEREOS E CONTROLE
CONTROLADOR
DE
DISCO
Memria Cache
Tipos de Memria Cache
Dois tipos bsicos de emprego de cache:
Na relao UCP/MP (cache de RAM)
Na relao MP/disco (cache de disco)
Funciona segundo o mesmo princpio da cache de memria RAM
porm em vez de utilizar a memria de alta velocidade SRAM para
servir de cache, o sistema usa uma parte da memria principal,
DRAM como se fosse um espao em disco
7
Memria Cache
Nveis de Cache da Memria RAM
Para no aumentar muito o custo da cache, conforme o aumento
da sua capacidade: sistema hierrquico de caches
Nvel 1 ou L1 sempre localizada no interior do processador
Nvel 2 ou L2 localizada em geral na placa me, externa ao processador
Nvel 3 ou L3 existente em poucos processadores, localizada
externamente ao processador
Cache tambm pode ser dividida: dados e instruo
8
Memria Cache
Nveis de Cache da Memria RAM
9
Processadores Fabricante Tamanho
486
C6
K5
K7
Pentium
Pentium MMX
Pentium III
Power PC601
Pentium PRO
Intel
Cyrix
AMD
AMD
Intel
Intel
Intel
Motorola/IBM
Intel
8KB, unificado
64KB, dividido
24KB, dividido
128KB, dividido
16KB, dividido
32KB, dividido
32KB, dividido
32KB
16KB, dividido
Memria Cache
Elementos de Projeto de uma Memria Cache
10
Definio do tamanho das memrias cache, L1 e L2
Funo de mapeamento de dados MP/cache
Algoritmos de substituio de dados na cache
Poltica de escrita pela cache
Memria Cache
Elementos de Projeto de uma Memria Cache
11
Tamanho da Memria Cache (fatores):
Tamanho da memria principal
Relao acertos/faltas
Tempo de acesso da MP
Custo mdio por bit, da MP, e da memria cache L1 ou L2
Tempo de acesso da cache L1 ou L2
Natureza do programa em execuo (princpio da localidade)
Memria Cache
Elementos de Projeto de uma Memria Cache
12
Mapeamento de dados MP/Cache:
A memria RAM est dividida em conjuntos de B blocos, cada um
com K clulas e a cache com Q linhas, cada uma com K clulas.
Q muito menor do que B
Para garantir acerto de 90% a 95% - conceito da localidade
Memria Cache
Elementos de Projeto de uma Memria Cache
13
Mapeamento de dados MP/Cache:
(Fig. 5.23 do livro texto)
Clula de end. 0
Clula de end. 1
Clula de end. 2
MP

End. N-1
Bloco 0
(K clulas)
Bloco 1
-
-
-
-
Bloco (B-1)
tag
tamanho do bloco
(K palavras)
CACHE

- MP possui N palavras (clulas).
- MP dividida em B blocos com K palavras cada.
- Cache possui Q quadros (linhas de dados), cada uma
contendo K palavras = tamanho do bloco da MP.
- Cada quadro possui um campo(campo TAG) que contm o
nmero de identificao do bloco que est nele armazenado.
Memria Cache
Elementos de Projeto de uma Memria Cache
14
Para efetuar a transferncia de um bloco da MP para uma especfica
linha da memria cache, escolhe-se um das 3 alternativas:
Mapeamento Direto
Mapeamento Associativo
Mapeamento Associativo por conjuntos
Memria Cache
Mapeamento Direto
15
(Fig. 5.24 do livro texto)
MP = 4 Gbytes
Bloco 0
Bloco 1
Bloco 2
Bloco 1024
Bloco 1025
Bloco 64M-1
64 bytes = 6 palavras
64 bytes = 6 palavras
64 bytes = 6 palavras

Cache = 64 Kbytes
Quadro
Tag Bloco
Quadro 0
Quadro 1
Quadro 1023

16 bits
16 bits
16 bits 64 bytes
16 bits 10 bits 6 bits
N
o
do bloco
no quadro (tag)
N
o
do quadro End. da
palavra
Endereo da MP = 32 bits
Memria Cache
Mapeamento Direto
16
Cada bloco da MP tem uma linha de cache
Como h mais blocos do que linhas de cache, muitos blocos vo
ser destinados a uma mesma linha
Memria Cache
Mapeamento Direto
17
Exemplo:
1. MP com 4G palavras (N) e endereos de 32 bits
2. Cache com 64Kbytes, 1024 linhas (Q) com 64 bytes de dados cada uma (K)
3. Nmero de blocos da MP = B = N/K = 4G/64= 64 M blocos
4. Para localizar um endereo de MP (end) em Cache (EQ): EQ= end mdulo 1024
(Fig. 5.24 do livro texto)
Quadro
Cache = 64 Kbytes
Tag Bloco
Quadro 0
Quadro 1
Quadro 1023

16 bits
16 bits
16 bits 64 bytes
MP = 4 Gbytes
Bloco 0
Bloco 1
Bloco 2
Bloco 1024
Bloco 1025
Bloco 64M-1
64 bytes = 6 palavras
64 bytes = 6 palavras
64 bytes = 6 palavras

Memria Cache
Mapeamento Direto
18
Cada endereo da memria pode ser dividido da seguinte forma:
6 bits menos significativos: indicam a palavra (2
6
= 64 palavras no bloco B e na linha Q)
10 bits do meio: indicam o endereo da linha da cache (2
10
= 1024 linhas)
16 bits mais significativos: qual o bloco dentre os 64 K blocos que podem ser
alocados na linha
MP = 4 Gbytes
Bloco 0
Bloco 1
Bloco 2
Bloco 1024
Bloco 1025
Bloco 64M-1
64 bytes = 6 palavras
64 bytes = 6 palavras
64 bytes = 6 palavras

Cache = 64 Kbytes
Quadro
Tag Bloco
Quadro 0
Quadro 1
Quadro 1023

16 bits
16 bits
16 bits 64 bytes
16 bits 10 bits 6 bits
N
o
do bloco
no quadro (tag)
N
o
do quadro End. da
palavra
Endereo da MP = 32 bits
Memria Cache
Mapeamento Direto
19
Exemplo:
UCP apresenta endereo de 32 bits ao circuito da
cache: 00000000000001000000011001001000
Parte 1: 0000000000000100 (comparado com o tag do quadro 25 da cache)
Parte 2: 0000011001 (quadro 25)
Parte 3: 001000 (palavra 8 acessada)
(Fig. 5.25 do livro texto)
0000000000000100 0000011001 001000

byte 63 ------ ------ byte 8 byte 0


Quadro 0
Quadro 25
Quadro 1023
Tag Dados
Cache
4
Endereo de leitura
enviada pela UCP
4 = 4
4
Tag Quadro Palavra
Memria Cache
Mapeamento Direto
20
Se os valores dos campos tag, do endereo e da linha cache no
forem iguais - bloco deve ser transferido da MP para o quadro 25,
substituindo o atual bloco.
Em seguida, o byte 8 transferido para a UCP
26 bits mais significativos so utilizados como o endereo do bloco
desejado (2
26
= 64M)

byte 63 ------ ------ byte 0


Quadro 0
Quadro 1023
Tag Dados
Cache
Mapeamento
Direto
Quadro 25 4 byte 8
Voltar
Tag Quadro Palavra
Endereo de leitura
enviada pela UCP
0000000000000100 0000011001 001000
4 = 4
4
Memria Cache
Mapeamento Direto
21
Consideraes:
simples, de baixo custo, no acarreta sensveis atrasos de
processamento de endereos
Problema: fixao da localizao para os blocos
(65.536 blocos destinados a uma linha)
Se durante a execuo houver repetidas referncias a palavras situadas
em blocos alocados na mesma linha: muitas substituies de blocos
Memria Cache
Mapeamento Associativo
22
Os blocos no tm uma linha fixada previamente para seu
armazenamento
Se for verificado que o bloco no est armazenado na cache,
este ser transferido, substituindo um bloco j armazenado
Endereo da MP dividido em duas partes:
6 bits menos significativos: palavra desejada
26 bits restantes: endereo do bloco desejado
Memria Cache
Mapeamento Associativo
23
Sempre que a UCP realizar um acesso, o controlador da cache deve
examinar e comparar os 26 bits de endereo do bloco com o valor
dos 26 bits do campo de tag de todas as 1024 linhas.
(Fig. 5.26 do livro texto)

Bloco 0
Bloco 1
Bloco (64M-1)
Quadro 0
Quadro 1
Quadro 1023
Tag Palavras

538 bits
(26 + 8 64)
26 bits 6
Memria Cache
Mapeamento Associativo
24
Consideraes:
Evita a fixao de blocos s linhas
Necessidade de uma lgica complexa para examinar cada campo
de tag de todas as linhas de cache
Memria Cache
Mapeamento Associativo por Conjuntos
25
Compromisso entre as duas tcnicas anteriores:
tentar resolver o problema de conflito de blocos e
da busca exaustiva e comparao do campo tag
Organiza as linhas da cache em grupos, denominados conjuntos
Nos conjuntos, as linhas so associativas
Memria Cache
Mapeamento Associativo por Conjuntos
26
A cache dividida em C conjuntos de D linhas:
Quantidade de linhas Q = C x D
Endereo da linha no conjunto K = E mdulo C
Memria Cache
Mapeamento Associativo por Conjuntos
27
O algoritmo estabelece que:
O endereo da MP dividido da seguinte forma:
Tag Nmero do conjunto Endereo da palavra
17 bits 9 bits 6 bits
Memria Cache
Mapeamento Associativo por Conjuntos
28
O algoritmo estabelece que:
Ao se iniciar uma operao de leitura, o controlador da cache interpreta os bits do
campo de conjuntos para identificar qual o conjunto desejado.
Em seguida, o sistema compara, no conjunto encontrado, o valor do campo tag do
endereo com o valor do campo tag de cada linha do conjunto encontrado.
(Fig. 5.27 do livro texto)
Bloco 0
Bloco 1
Bloco (64M-1)

Palavras

Quadro 0
Quadro 2
Quadro 1
Quadro 3
Quadro 1022 Quadro 1023
Conjunto 0
Conjunto 1
Conjunto 511
17 bits 6 bits 9 bits
Tag
N
o
do
conjunto
End. da
palavra
Memria Cache
Mapeamento Associativo por Conjuntos
29
Conjunto 1
Conjunto 511
Conjunto 0
Bloco 0
Bloco 1
Bloco(64M-1)

Exemplo Voltar
0 1023
Palavras

Quadro 0 Quadro 1
byte 63 -- -- byte 0 byte 8

byte 63 ----- byte 0 byte 8


Endereo de leitura
enviada pela UCP
Tag Conjunto Palavra
00000000000000000 000000000 001000
30
Memria Cache
Algoritmos de Substituio de Dados na Cache
Definir qual dos blocos atualmente armazenados na cache deve ser
retirado para dar lugar a um novo bloco que est sendo transferido
(j que Q<<B)
31
Memria Cache
Algoritmos de Substituio de Dados na Cache
Dependendo de qual tcnica de mapeamento se esteja usando, pode-se
ter algumas opes de algoritmos:
Se o mtodo de mapeamento for o direto, somente h uma nica linha
possvel para um dado bloco
Para os outros dois mtodos - associativo e associativo por conjunto -
existem vrias opes
32
Memria Cache
Algoritmos de Substituio de Dados na Cache
LRU: o sistema escolhe para ser substitudo o bloco que est h mais
tempo sem ser utilizado
FILA: o primeiro a chegar o primeiro a ser atendido. O sistema escolhe
o bloco que est armazenado h mais tempo na cache.
LFU: o sistema escolhe o bloco que tem tido menos acessos por parte
da CPU
Escolha aleatria: trata-se de escolher aleatoriamente um bloco para
ser substitudo
33
Memria Cache
Poltica de Escrita pela Memria Cache
Toda vez que a UCP realiza uma operao de escrita, esta ocorre
imediatamente na cache.
Quando atualizar a MP?
34
Memria Cache
Poltica de Escrita pela Memria Cache
Consideraes:
MP pode ser acessada tanto pela cache quanto por elementos de E/S.
possvel que uma palavra da MP tenha sido alterada s na cache,
ou um elemento de E/S pode ter alterado a palavra da MP e a cache
esteja desatualizada
MP pode ser acessada por vrias UCPs. Uma palavra da MP
atualizada para atender alterao de uma cache especfica e as
demais caches estaro desatualizadas.
35
Memria Cache
Poltica de Escrita pela Memria Cache
Tcnicas:
Escrita em ambas (write through): cada escrita em uma palavra de
cache acarreta escrita igual na palavra correspondente da MP
Escrita somente no retorno (write back):atualiza a MP apenas quando
o bloco for substitudo e se tiver ocorrido alguma alterao na cache.
Uso do bit ATUALIZA
Escrita uma vez (write once): uma tcnica apropriada para sistemas
multi UCP/cache, que compartilhem o mesmo barramento. Primeira
atualizao: write through + alerta os demais componentes que
compartilham o barramento nico.
36
Memria Cache
Poltica de Escrita pela Memria Cache
Comparaes:
Com write through pode haver uma grande quantidade de escritas
desnecessrias na MP
Com write back, a MP fica desatualizada para dispositivos de E/S,
por exemplo, o que os obriga a acessar o dado atravs da cache
(problema!)
write once conveniente para sistemas com mltiplas UCPs
Estudos mostram que a percentagem de escritas na MP baixa (15%),
o que aponta para uma simples poltica write through
37
Detalhes
Localizao da Clula desejada
O processo de localizao de uma determinada clula para efeito de
uma operao de leitura ou escrita o mesmo, qualquer que seja a
tecnologia de fabricao de MP
38
Detalhes
Organizao de memria
Tipo Seleo Linear - 1 Dimenso
Com esta tcnica todos os bits de uma dada palavra esto na mesma
pastilha
Arranjo fsico igual ao arranjo lgico: o conjunto organizado em N
palavras de M bits cada
Ex: uma pastilha de 16 K bits pode conter 1024 palavras de 16 bits cada
Elementos de cada conjunto so conectados por linhas horizontais e
verticais
39
Detalhes
Organizao de memria
Tipo Seleo Linear - 1 Dimenso
Cada linha horizontal da memria uma sada do decodificador de linha
e cada linha vertical da memria se conecta ao sensor de dados para
receber ou enviar 1 bit de palavra
O decodificador tem 2
E
sadas para E entradas, isto , se cada
endereo armazenado no REM tem E bits, a ligao
REM-decodificador tem E linhas
Circuitos de E/S
p/ colunas
Decodificador
por seleo
de linha
(1 entre
N linhas)
Linhas de dados
Memria
REM
E bits
Linhas de endereos
(E = log
2
N linhas)
Linha de bit Linha de clula
N

c

l
u
l
a
s
Read / Write
8 bits
(Fig. 5.35 do livro texto)
40
Detalhes
Organizao de memria
Tipo Seleo Linear - 1 Dimenso
Ex: a pastilha de 16K bits teria um REM de 10 bits, 10 linhas de sada do REM
para o decodificar e deste sairiam 1024 linhas, uma para cada clula da memria
Tomemos, o endereo 12 decimal, armazenado no REM. Isto acarretaria uma
sada 1 na 13 linha do decodificador e as demais linhas seriam
iguais zero.
Circuitos de E/S
p/ colunas
Decodificador
por seleo
de linha
(1 entre
N linhas)
Linhas de dados
Memria
REM
E bits
Linhas de endereos
(E = log
2
N linhas)
Linha de bit Linha de clula
N

c

l
u
l
a
s
Read / Write
8 bits
(Fig. 5.35 do livro texto)
41
Detalhes
Organizao de memria
Tipo Matriz Linha/Coluna
Uma memria com 16K clulas, onde cada endereo um nmero
com 14 bits, visto que 2
14
=16K
Cada pastilha possui 14 linhas de endereo, identificadas pela
nomenclatura A
0
a A
13

Divididas em duas: A0 a A6 conectadas ao decodificador de colunas,
A7 a A13 conectadas ao decodificador de linhas
42
Detalhes
Organizao de memria
Tipo Matriz Linha/Coluna
O cruzamento de linha e coluna ativadas pelos respectivos decodificadores
corresponde clula desejada endereada pelos 14 bits
Ocorrem 128x128 cruzamentos = 16K clulas. Uma memria com
16K clulas, onde cada endereo um nmero com 14 bits,
visto que 2
14
=16K
7 a 128 - decodificador de linha
127 126 124 123 122 2 1 0
Clula de memria 4095 Clula de memria 3968
7

a

1
2
8

-

d
e
c
o
d
i
f
i
c
a
d
o
r

d
e

l
i
n
h
a
A
13
A
12
A
8
A
7
129
126
123
3
2
1
0
Decodificador de linha
Entrada
de
dados
Sada
de
dados
Decodificador de coluna
A
6
A
5
A
4
A
1
A
0
Clula de memria 0 Clula de memria 127
(Fig. 5.37 do livro texto)
43
Detalhes
Organizao de memria
Comparao
Seleo linear: nmero de linhas de sada muito maior, mais circuitos
em uma nica pastilha
Na tcnica de matriz por linhas e colunas que seleciona 1 bit de palavra
por pastilha so usadas vrias pastilhas mais simples para totalizar
a quantidade de bits por palavra.
44
Memria Cache
Captulo 5 do livro texto.
Questes:
1 at 15, 17, 20, 21, 23, 24 e 28.
Exerccios:

Você também pode gostar