Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula4 p2
Aula4 p2
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
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
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: