Você está na página 1de 79

1

Sistemas, Processadores e Perifricos


Aula 7 - Reviso
AdaptadoapartirdosSlidesdeOrganizaodeComputadores2006/02
doprofessoresLeandroGalvo(DCC/UFAM galvao@dcc.ufam.edu.br)
eoRicardodeOliveiraDuarte(DELT/UFMG)
Prof. Frank Sill Torres
DELT Escola de Engenharia
UFMG
Dividindo Instrues em Estgios
:: Linhas de controle
Shift
left 2
PC
M
u
x
0
1
Registers
Write
register
Write
data
Read
data 1
Read
data 2
Read
register 1
Read
register 2
Instruction
[1511]
M
u
x
0
1
M
u
x
0
1
4
Instruction
[150]
Sign
extend
32 16
Instruction
[2521]
Instruction
[2016]
Instruction
[150]
Instruction
register
ALU
control
ALU
result
ALU
Zero
Memory
data
register

A
B
IorD
MemRead
MemWrite
MemtoReg
PCWriteCond
PCWrite
IRWrite
ALUOp
ALUSrcB
ALUSrcA
RegDst
PCSource
RegWrite
Control
Outputs
Op
[5 0]
Instruction
[31-26]
Instruction [50]
M
u
x
0
2
Jump
address [31-0] Instruction [250]
26 28
Shift
left 2
PC [31-28]
1
1
M
u
x
0
3
2
M
u
x
0
1
ALUOut
Memory
MemData
Write
data
Address
2
3
Estgio Ao Tipo R Action Memria Ao Branch Ao Jump
Carga de Instruo IR = Memory[PC]
PC = PC + 4
Decodificao Instruo A = Reg [IR[25-21]]
Carga de Registrador B = Reg [IR[20-16]]
ALUOut = PC + (sign-extend (IR[15-0]) << 2)
Execuo ALUOut = A op B ALUOut = A + sign-extend if (A ==B) then PC = PC [31-28] II
Computo de Endereo (IR[15-0]) PC = ALUOut (IR[25-0]<<2)
Finalizao branch/jump
Acesso memria Reg [IR[15-11]] = Load: MDR = Memory[ALUOut]
Finalizao tipo R ALUOut or
Store: Memory [ALUOut] = B
Finalizao Leitura Mem.
Load: Reg[IR[20-16]] = MDR
(IF)
(ID)
(EX)
(MEM)
(WB)
Tipo de instruo
Resumo Multi-ciclo
4
FSM
Controle
IF
ID
EX
MEM
WB
PCWrite
PCSource =10
ALUSrcA =1
ALUSrcB =00
ALUOp =01
PCWriteCond
PCSource =01
ALUSrcA =1
ALUSrcB =00
ALUOp=10
RegDst =1
RegWrite
MemtoReg =0
MemWrite
IorD =1
MemRead
IorD =1
ALUSrcA =1
ALUSrcB =10
ALUOp =00
RegDst=0
RegWrite
MemtoReg=1
ALUSrcA =0
ALUSrcB =11
ALUOp =00
MemRead
ALUSrcA =0
IorD =0
IRWrite
ALUSrcB =01
ALUOp =00
PCWrite
PCSource =00
Instruction fetch
Instruction decode/
register fetch
J ump
completion
Branch
completion Execution
Memory address
computation
Memory
access
Memory
access
R-type completion
Write-back step
(
O
p
=
'
J
'
)
(
O
p
=
'
L
W
'
)
4
0
1
9 8 6 2
7 5 3
Start
Fig. 5.38
Exemplo: CPI em uma CPU multi-
ciclo
Soluo:
,
1
,
N
instr i i
i
total
instr total
N CPI
CPI
N

,
1
,
N
instr i
i
i
instr total
N
CPI
N

0,22 0,11 0,49 0,16 0 5 4 4 3 3 ,02


4,04
5
6
Ganho de desempenho com Pipelining Ganho de desempenho com Pipelining
Supondo:
N instrues
K estgiosdeduraoT
Tempodeexecuosem pipelining:
NKT
Tempodeexecuocom pipelining:
KT+(N1)T
N
K
T
N
K
7
Processador RISC de cinco estgios Processador RISC de cinco estgios
Cincoestgiosdeexecuodecadainstruo:
IF Busca(fetch)dainstruo
ID Decodificaodainstruo
EX Execuoouclculodoendereoefetivo
MEM Acessomemriaoudesvio
WB Atualizaodosregistradores(writeback)
Cada fase deumainstruoprocessada por um estgio,emum ciclo de
clock
Umanova instruoiniciada acada ciclo
Instruo
Ciclo de clock
1 2 3 4 5 6 7 8 9
i IF ID EX MEM WB
i+1 IF ID EX MEM WB
i+2 IF ID EX MEM WB
i+3 IF ID EX MEM WB
i+4 IF ID EX MEM WB
8
Processador RISC de cinco estgios Processador RISC de cinco estgios
Duranteummesmociclodeclock,temosdegarantirqueno
ocorramduasoperaescomosmesmoscomponentes do
caminhodedados:
Utilizaseumamemriacachededados(DM) separadadamemria
cachedeinstrues(IM)
Obancoderegistradoresutilizadoduasvezes:
Estgio IDparaleitura,na2.metadedociclodeclock
Estgio WBparaescrita,na1.metadedociclodeclock
9
Processador RISC de cinco estgios Processador RISC de cinco estgios
IF/ID ID/EX
EX/MEM MEM/WB
10
Sistemas Processadores e Perifricos
Aula 8 - Hierarquia de Memria
(captulo 7)
Adaptado a partir dos Slides de Organizao de Computadores 2006/02 do professor
Leandro Galvo DCC/UFAM - galvao@dcc.ufam.edu.br e do Ricardo de Oliveira Duarte (UFMG)
Prof. Frank Sill Torres
DELT Escola de Engenharia
UFMG
Introduo - Memria
Pode ser definida como um local para
armazenamento de informaes, onde as duas nicas
aes possveis so a leitura e a escrita
A informao pode ser representada pelo bit ou por
um conjunto de n bits que possuem um endereo
definido
Em um sistema computacional, temos diferentes tipos
de memrias, para diferentes finalidades, que se
interligam de forma estruturada e que formam o
subsistema de memria
11
Hierarquia de Memria
Os usurios querem memrias grandes e velozes,
mas elas so caras
Possvel soluo:
Fazer com que a memria parea ser grande e veloz a um
custo razovel
Hierarquia de Memria
Inclusiva: cada nvel um sub-conjunto do nvel inferior
O desempenho depende das taxas de acerto (hit rates)
12
Hierarquia de Memria
Tempo de
Acesso,
Capacidade
Custo,
Velocidade
Registradores
Memria Cache
Memria Principal
Memria Auxiliar
13
14
Hierarquia de Memria
Hierarquia de Memria
Os dados contidos num nvel mais prximo do
processador so sempre um sub-conjunto dos dados
contidos no nvel anterior
O nvel mais baixo contm a totalidade dos dados
Disco
Memria
Principal
Cache
15
Tecnologias
DRAM (Dynamic Random Access Memory):
Valor armazenado com uma carga em um capacitor que deve ser
periodicamente atualizado por isso chamada dinmica
Muito pequeno 1 transistor por bit
De 5 a 10 vezes mais lento que a SRAM
Usada para memria principal
SRAM (Static Random Access Memory):
Valor armazenado em um par de portas lgicas indefinidamente,
enquanto houver energia por isso chamada esttica
Muito rpida, mas toma mais espao que a DRAM 4 a 6
transistores por bit
Usada para memria cache
16
Localidade: estatstica de comportamento do
acesso aos dados da memria
Se um item referenciado
Ele tende a ser referenciado em breve novamente
Os itens na sua vizinhana tambm o sero
O princpio de localidade faz com que a
hierarquia de memria funcione na prtica
Localidade
17
Localidade
Localidade temporal:
Um item referenciado tende a ser referenciado
novamente em um curto espao de tempo
Ex: laos
Localidade espacial:
Os itens prximos na memria a um item
referenciado tendem a ser tambm referenciados
Ex: matrizes e estruturas
18
Localidade
:: Exemplo 1
Localidade temporal: mesmas instrues so
executadas seguidamente M N vezes
Localidade espacial: Matrizes so arrumadas linha a
linhaAqui, percorre-se a matriz linha a linha
assim, faz-se sempre acesso a posies de memria
contguas
int soma_linhas(int a[M][N]) {
int i, j, sum = 0;
for (i = 0; i < M; i++)
for (j = 0; j < N; j++)
sum += a[i][j];
return sum;
}
19
Localidade
:: Exemplo 2
Localidade temporal: mesmas instrues so
executadas seguidamente M N vezes
Localidade espacial: o percurso da matriz feito
coluna a coluna, portanto, dois acessos consecutivos
no fazem acesso a posies de memria contguas
int soma_coluna(int a[M][N]) {
int i, j, sum = 0;
for (j = 0; j < N; j++)
for (i = 0; i < M; i++)
sum += a[i][j];
return sum
}
20
Memria Cache
21
Memria Cache
Memria rpida e de pequena capacidade
Guarda somente os itens que sero
referenciados com frequncia em determinado
momento
Para tal, explora os conceitos de Localidade
Temporal e de Localidade Espacial
Tais itens podem ser tanto dados, como
instrues
22
Memria Cache
Cache
CPU
Memria
Principal
Transferncia
de words
Transferncia
de blocos
23
Memria Cache
:: Terminologia
Sejam dois nveis adjacentes na hierarquia de
memria:
Nvel superior prximo CPU
Nvel inferior longe da CPU
Bloco menor unidade de dados transferidos de um
nvel inferior para a cache
Hit ocorre quando o dado requisitado pelo
processador se encontra na memria cache
Miss ocorre quando o dado requisitado pelo
processador no se encontra na memria cache,
sendo necessrio l-lo do nvel inferior
24
Memria Cache
:: Terminologia
Hit rate porcentagem de hits ocorridos em relao
ao total de acessos memria
Miss rate porcentagem de misses ocorridos em
relao ao total de acessos memria (igual a 1-hit
rate)
Hit time tempo para determinar se o acesso um hit
+ tempo para acessar e entregar o dado de um nvel
inferior para a CPU
Miss penalty tempo para determinar se o acesso
um miss + tempo para substituir o bloco no nvel
inferior + tempo de entregar o bloco CPU
25
Quatro Perguntas Bsicas sobre a
Hierarquia de Memria
1. Posicionamento do bloco: Onde o bloco deve ser
colocado na memria de nvel mais alto?
2. Identificao do bloco: Como bloco encontrado
na memria de nvel mais alto?
3. Substituio de bloco: Quais blocos sero trocados
em um miss?
4. Estratgia de gravao: O que acontece em uma
escrita?
26
P1 Posicionamento do bloco
:: Esquemas de endereamento
Mapeamento direto (directed-mapped)
Cada bloco pode ser colocado em uma nica posio na
cache
Totalmente associativa (fully associative)
Cada bloco pode ser colocado em qualquer posio na cache
Parcialmente associativa (n-way set-associative)
Cada bloco pode ser colocado em um conjunto restrito de
posies na cache
27
2
2 0 1 2 3 4 5 6 7 8 9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
1
2
3
2
4
2
5
2
6
2
7
2
8
2
9
2
0
Memory
Block no.
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0
0 1
1
2 3
2
4 5
3
6 7
Cache
Totalmente
associativa
Mapeamento direto
(12 % 8) = 4
Set no.
Parc. associativa
(12 % 4) = Set 0
P1 Posicionamento do bloco
:: Esquemas de endereamento
3
0
3
1
Block no. Block no. Block no.
28
P1 Posicionamento do bloco
:: Mapeamento direto
Endereo do
bloco na cache
endereo do bloco
na memria
tamanho
da cache
% =
00 00 1 0 01 01 01 00 1 0 11 01 10 00 1 1 01 01 1 1 00 1 11 1 01
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
Cache
Memria
Principal
Bloco
29
P1 Posicionamento do bloco
:: Mapeamento completamente associativo
Cada bloco da memria principal pode ser
alocado em qualquer posio da cache
A busca por um bloco feita ao mesmo tempo
em paralelo em todas as entradas da cache
30
P1 Posicionamento do bloco
:: Mapeamento parcialmente associativo
Cada bloco pode ser colocado em um conjunto
restrito de posies
Um conjunto um grupo de blocos na cache
Um bloco mapeado:
Primeiramente, em um conjunto
Depois, inserido em qualquer lugar desse conjunto
Endereo no
bloco da cache
Endereo no bloco
de memria
No. de conjuntos
na cache
% =
31
P1 Posicionamento do bloco
:: Mapeamento parcialmente associativo
Se h n blocos em um conjunto, o posicionamento da
cache chamado associativo de conjunto de n vias
Note que a cache de mapeamento direto
simplesmente uma cache associativa de conjunto de
uma via
A cache completamente associativa pode ser
imaginada como uma cache que contm um nico
conjunto
32
P1 Posicionamento do bloco
:: Mapeamento parcialmente associativo
A busca por um bloco feita ao mesmo tempo
em paralelo em todas as entradas da cache
dentro de um conjunto
Aumento do grau de associatividade
Aumenta o tamanho dos conjuntos
Reduz o miss rate
Aumenta o tempo de hit por causa da busca paralela
33
P1 Posicionamento do bloco
Exemplo: processadores Blackfin
Cache de dados: associativo de conjunto de 2 vias
Cache de instrues: associativo de conjunto de 4 vias
Lembre-se: o nmero de vias aumenta o nmero de
locais na cache onde o contedo de cada endereo de
memria pode ser colocado
Assim, faz sentido ter mais locais para instrues, onde
saltos e desvios abrem maior intervalo de
endereamento
34
P1 Posicionamento do bloco
Na maioria dos processadores atuais, as
caches so de:
mapeamento direto
associativas de conjunto de 2 vias
associativas de conjunto de 4 vias
35
P2 Identificao do bloco
Inicialmente, assuma:
Tamanho de bloco de uma palavra
Mapeamento direto
36
P2 Identificao do bloco
:: Mapeamento direto
00
01
10
11
Memria Principal Memria Cache
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Endereo no
bloco de cache
endereo no bloco
de memria
tamanho
da cache
% =
37
Se o tamanho da cache = 2
m
, endereo (ndice) da cache =
m bits mais baixos de um endereo de memria de n bits
P2 Identificao do bloco
:: Mapeamento direto
00
01
10
11
Memria Principal Memria Cache
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
tamanho da
cache = 2
2
words
m = 2
n = 4
38
1 0
31
m
Os (n-m-2) bits restantes do endereo de memria so
usados como tag bits em cada bloco da cache
(-2: porque no MIPS os words so alinhados como
mltiplos de 4 Bytes)
Os tag bits servem para identificar de que parte da
memria superior veio o bloco copiado para a cache
P2 Identificao do bloco
:: Mapeamento direto
ndice
Tag
Word
n-m-2
Endereo
de memria
39
P2 Identificao do bloco
:: Acessando dados na cache
Alm de armazenar dados, a memria cache reserva
espao para armazenar os bits de tag e o bit de
validade
Por conveno, porm, conta-se apenas o campo de
dados
O bit de validade serve para reconhecer se um bloco
de cache vlido
Por exemplo, quando o processador iniciado, a
cache no contm dados vlidos e os campos do tag
no tero significado
40
P2 Identificao do bloco
:: Acessando dados na cache
Endereo da memria principal:
Dados guardados em cache, endereados por
cada ndice:
1 0
31
m
ndice Tag Word
n-m-2
Tag Dados Valid
41
P2 Identificao do bloco
:: Acessando dados na cache
Cada bloco da cache endereado por um ndice,
que corresponde aos bits menos significativos do
endereo de memria
Tag Dados Valid
ndice 1
ndice 2
ndice 3
ndice 4
ndice 5
42
P2 Identificao do bloco
:: Acessando dados na cache
Valid Tag Bloco de dados
(32 bits)
Endereo
de memria
1K
linhas
11 ndice 12 31
Tag
2 1 0
M
e
m

r
i
a

C
a
c
h
e
Byte
43
P2 Identificao do bloco
:: Acessando dados na cache
O tamanho do bloco at agora era de uma word
Normalmente, tm-se blocos de vrias words
Valid Tag Bloco de dados (128 bits) 44
P2 Identificao do bloco
:: Acessando dados na cache
Cache
CPU
Memria
Principal
Transferncia
de words
Transferncia
de blocos
45
P2 Identificao do bloco
:: Acessando dados na cache :: Exemplo
Considere:
Uma mquina com espao de endereamento de 32 bits
Uma memria cache de 64 KB
Blocos de 4 words
Mapeamento direto
Quantos bits so necessrios no total para
implementar tal cache?
46
P2 Identificao do bloco
:: Acessando dados na cache :: Exemplo
Valid Tag Bloco de dados (128 bits)
Endereo
de memria
4K
linhas
15 ndice 16 31
Tag
2 1 0
M
e
m

r
i
a

C
a
c
h
e
4 3
MUX
47
P2 Identificao do bloco
:: Acessando dados na cache :: Exemplo
Cada linha da figura anterior (bloco) contm:
1 bit de validade
x bits de tag
Blocos de dados de 128 bits (4 words)
Como encontrar o nmero de tag bits (x)?
32 bits de endereo na memria principal
2 bits de offset de word
2 bits de endereamento do bloco
128 Bit = 16 Byte
64KB / 16 Byte = 4 K = 2
12
12 bits de ndice
tag bits: 32 2 2 12 = 16 bits
48
P2 Identificao do bloco
:: Acessando dados na cache :: Exemplo
Cada linha contm:
1 bit de validade
16 bits de tag
Blocos de dados de 128 bits (4 words)
1 + 16 + 128 = 145 bits por linha
Tamanho total:
no. de linhas bits/linha
4 K 145 bits = 580 Kbits
ou 72,5 KB para uma cache de 64 KB de dados
49
Tag
Dados
ndice de
linha
0
1
2
3
4
5
6
7
cache associativa de conjunto de 1 via
(mapeamento direto)
cache associativa de conjunto de 2 vias
Tag
Dados
Conjunto
0
1
2
3
Tag
Dados
P2 Identificao do bloco
:: Associatividade
50
cache associativa de conjunto de 4 vias
T
D
Conjunto
0
1
T
D
T
D
T
D
cache associativa de conjunto de 8 vias
(totalmente associativa)
T
D
T
D
T
D
T
D
T
D
T
D
T
D
T
D
P2 Identificao do bloco
:: Associatividade
51
P2 Identificao do bloco
:: Associatividade
Considere uma memria cache com capacidade
para 2
14
Bytes e blocos de 8 words
O tamanho do campo tag varia conforme o
esquema de posicionamento de bloco utilizado:
mapeamento direto
parcialmente associativo
totalmente associativo
52
P2 Identificao do bloco
:: Associatividade
Considere uma memria cache com capacidade para 2
14
Bytes e blocos de 8 words
Direto:
Tamanho bloco: Tamanho word * words/bloco = 4 Byte * 8 = 32 Byte = 2^5 Byte
Tamanho conjunto = Tamanho bloco * blocos/conjunto = 2^5 * 2^0 = 2^5 Byte
N conjuntos = Tamanho cache / Tamanho conjunto = 2^14 / 2^5 = 2^9
ndice () = log
2
(N conjuntos) = 9
Tag = 32 log
2
(Bytes/word) log
2
(words/bloco) = 32 2 3 = 18
Associativa de 2 vias:
Tamanho bloco: Tamanho word * words/bloco = 4 Byte * 8 = 32 Byte = 2^5 Byte
Tamanho conjunto = Tamanho bloco * blocos/conjunto = 2^5 * 2^1 = 2^6 Byte
N conjuntos = Tamanho cache / Tamanho conjunto = 2^14 / 2^6 = 2^8
ndice (): log
2
(N conjuntos) = 8
Tag = 32 log
2
(Bytes/word) log
2
(words/bloco) = 32 2 3 = 19
53
P2 Identificao do bloco
:: Associatividade
Considere uma memria cache com capacidade para 2
14
Bytes e blocos de 8 words
Associativa de 4 vias:
Tamanho bloco: Tamanho word * words/bloco = 4 Byte * 8 = 32 Byte = 2^5 Byte
Tamanho conjunto = Tamanho bloco * blocos/conjunto = 2^5 * 2^2 = 2^7 Byte
N conjuntos = Tamanho cache / Tamanho conjunto = 2^14 / 2^7 = 2^7
ndice (): log
2
(N conjuntos) = 7
Tag = 32 log
2
(Bytes/word) log
2
(words/bloco) = 32 2 3 = 20
Totalmente associativa:
N conjuntos = 1
ndice (): log
2
(N conjuntos) = 0
Tag = 32 log
2
(Bytes/word) log
2
(words/bloco) = 32 2 3 = 27
54
P2 Identificao do bloco
:: Associatividade
ndice
Tag
Word
offset
Mapeamento direto
18 bits 9 3 2
Block
offset
Associativa de 2 vias
19 bits 8 3 2
Associativa de 4 vias
20 bits 7 3 2
Associativa de 256 vias
26 bits 1 3 2
Totalmente associativa
27 bits 3 2
.
.
.
Associativa de 128 vias
25 bits 2 3 2
P3 Substituio do bloco
:: Falhas de Cache
Uma falha de cache (ou miss) ocorre quando o
processador requisita dados que no esto presentes
na memria cache
Nesse caso, o processador congela seu
funcionamento (stall), at que a memria cache
busque no nvel inferior o dado requisitado
56
P3 Substituio do bloco
:: Falhas de Cache
Mapeamento direto: somente o bloco no encontrado
substitudo, simplificando o hardware
No caso das caches organizadas associativamente,
h muitos blocos dentro de um mesmo conjunto a
escolher no caso de uma falha
Trs estratgias so comumente empregadas:
Aleatria
Menos recentemente usado (LRU)
Primeiro a entrar, primeiro a sair (FIFO)
57
P3 Substituio do bloco
:: Estratgias de seleo
Aleatria o bloco a substituir escolhido
aleatoriamente
Menos recentemente usado (LRU) substitui-se o
bloco que no usado h mais tempo
Primeiro a entrar, primeiro a sair (FIFO) substitui-
se o bloco mais antigo (ainda que tenha sido
recentemente usado)
58
P3 Substituio do bloco
:: Estratgias de seleo
Substituio aleatria a estratgia mais simples de
ser implementada em hardware
medida que o nmero de blocos a controlar
aumenta (aumento de associatividade), a LRU se
torna cada vez mais dispendiosa
Normalmente implementa-se uma aproximao da
LRU
59
P3 Substituio do bloco
:: Falhas de Cache
Aumentar o tamanho de bloco normalmente diminui a
taxa de falhas (miss rate), pois blocos maiores
exploram a propriedade de localidade espacial
Mas a taxa de falhas pode subir novamente se o
tamanho do bloco se tornar uma frao significativa
do tamanho de cache
O nmero de blocos que pode ser armazenado na cache se tornar
pequeno e haver uma competio entre esses blocos
Assim, um bloco pode ser retirado da cache antes que muitas de
suas words sejam utilizadas
60
P3 Substituio do bloco
:: Falhas de Cache :: Exemplo
V Tag Dados
V Tag Dados
Aumento do
tamanho de
bloco
61
P3 Substituio do bloco
:: Falhas de Cache
O aumento do tamanho do bloco tambm aumenta o
custo de uma falha (miss)
O custo de uma falha est associado ao tempo
necessrio para se transferir um bloco do nvel inferior
e carreg-lo na cache
Quanto maior o bloco, mais dados tm de ser
transferidos e maior ser o tempo de transferncia
62
P4 Estratgia de gravao
:: Leitura e Escrita de dados
Leituras dominam os acessos cache:
Todos os acessos s instrues so de leitura
Maioria das instrues no grava na memria
fcil tornar o caso comum (leitura) mais rpido:
Dados podem ser lidos enquanto sua tag verificada
Se a tag for vlida, ganha-se tempo
Se a tag no for vlida, fica no mesmo
As gravaes no permitem esse recurso, requerendo
validao da tag antes da escrita
63
P4 Estratgia de gravao
:: Escrita de dados
Dois modos de escrita de dados:
Write-through: a informao escrita tanto para
o bloco da cache quanto para a memria de
nvel mais baixo
Write-back: a informao escrita somente
para o bloco da cache este bloco s escrito
na memria de nvel inferior quando for trocado
64
P4 Estratgia de gravao
:: Escrita de dados
Processador
Memria
Cache de
dados
atualizado ao
mesmo tempo
Write-
through
Write-back
Processador
Memria
Cache de
dados
atualizado
na reposio
de bloco
65
P4 Estratgia de gravao
:: Vantagens
Write-back
Words individuais podem ser gravadas pelo
processador na velocidade da cache (mais rpida)
Mltiplas gravaes dentro de um bloco requer
somente uma gravao no nvel inferior
Write-Through
Falhas de leitura consomem menos tempo, pois no
requer gravao no nvel mais baixo
mais fcil de ser implementado
66
P4 Estratgia de gravao
:: Desvantagens
Write-back
Aumenta a penalidade de falha (miss), pois o
processador dever esperar a atualizao da
memria antes de gravar na cache
Mais complexo de implementar
Write-Through
Vrias escritas no mesmo bloco implicam em vrias
escritas na memria principal
As escritas so feitas velocidade da memria
principal e no da cache
67
Esquema Write-through
Hit de escrita: substituir o dado na cache e na memria
em cada hit, para evitar inconsistncia
Miss de escrita: escrever a palavra na cache e na
memria (obviamente, no h necessidade de buscar
da memria a palavra que gerou o miss)
Esquema lento, pois sempre exige acesso memria
Desempenho melhorado com um buffer de escrita
As palavras so armazenadas enquanto esperam ser escritas na
memria
O processador continua execuo das demais instrues
Buffer pode no ser suficiente caso tenha-se vrias instrues
de escrita nesse caso, o processador congela, at liberao
do buffer
P4 Estratgia de gravao
:: Hit/Miss na Escrita de dados
P4 Estratgia de gravao
:: Miss na Escrita de dados (WT)
Memria
Cache de
dados
Processador
?
69
P4 Estratgia de gravao
:: Miss na Escrita de dados (WT)
Memria
Cache de
dados
Buffer
Processador
Para o processador no precisar
aguardar transferncia de dados
com nveis inferiores de memrias,
utiliza-se um buffer
70
Esquema Write-back
Hit de escrita:
Bloco escrito somente na cache
Um bit de status (dirty bit) indica se um certo bloco da cache foi ou
no modificado
Caso tenha-se de reescrever um bloco da cache, o valor do bloco
atual s atualizado na memria de nvel inferior se dirty bit = 1
Se o bloco estiver limpo, no h necessidade de grav-lo de volta
na memria, pois os dados so idnticos
Miss de escrita:
Se o bloco presente na cache estiver sujo, dados da CPU so
escritos em um buffer at que a memria seja atualizada
Se o bloco estiver limpo, grava-se direto na cache
P4 Estratgia de gravao
:: Hit/Miss na Escrita de dados
71
P4 Estratgia de gravao
:: Miss na Escrita de dados (WB)
Memria
Cache de
dados
Processador
?
Buffer
72
Write allocate: bloco trazido para cache se ocorrer
um miss de escrita, e as escritas subsequentes so
realizadas apenas na cache
No-write allocate: bloco modificado somente no nvel
mais baixo, e no carregado na cache, at que uma
leitura desse bloco seja realizada
Write-through geralmente utilizado com no-write
allocate
Write-back geralmente utilizado com write allocate
P4 Estratgia de gravao
:: Hit/Miss na Escrita de dados
73
Polticas de gravao no so aplicveis a caches de
instrues, pois modificaes de cdigo durante o
tempo de execuo no constituem um modelo de
programao tpico
Portanto, estratgias de gravao so implementadas
apenas em caches de dados
P4 Estratgia de gravao
:: Instrues
74
P4 Estratgia de gravao
:: Aplicaes
Write-back
Servidores, por consumir menos largura de banda de
memria
Sistemas embutidos, por poupar energia ao deixar de
utilizar menos recursos de hardware para escrita de
dados
Write-Through
Dispositivos com duplo processamento, onde ambos
compartilham uma memria comum
75
O que vocs aprenderam hoje?
Hierarquia de memria
Localidade
Cache:
Posicionamento do bloco
Identificao do bloco
Substituio de bloco
Estratgia de gravao:
76
Questes
Umamquinacomespaodeendereamentode16bits,umamemria
cachede32Kbytes,mapeamentoassociativoporconjunto,cache
organizadacom4blocosporconjunto,blocosde2words,tamanho da
word iguala16 bits.
Qualotamanhoembitsdondicedacache?
Dadosporlinhadacache?
=>
bIocos
con]unto

wods
bIoco

Btcs
wod
=>4 2 2 = 16Bytesdedadosporlinhadacache
=>
tumunho du cuchc
dudos po Inhu du cuchc
= 2k linbos Jc cocbc = 2k endereos
=>11bits paraenderear2kendereos
77
Questes
Umamquinacomespaodeendereamentode16bits,umamemria
cachede32KBytes,mapeamentoassociativoporconjunto,cache
organizadacom4blocosporconjunto,blocosde2words,tamanho da
word iguala16 bits.
Qualotamanhoembitsdotag?
Wordoffset=log
2
(Bytes/word)=log
2
(2)=log
2
(2^1)=1
Block offset=log
2
(words/bloco) =log
2
(2)=log
2
(2^1)=1
Tag:16bit ndice Block offset word offset=(16 11 1 1)bits=3bits
78
3 bits 11 bits 1 1
ndice
Tag
Word
offset
Block
offset
Prova 2
Na aula do dia 14/05/2012: Avaliao 2
Assuntos da prova
Todos os assuntos das aulas 5 a 8*
Incluindo:
Arquitetura e sinais de controle para ciclo nico e multiciclo
Pipelining
Hierarquia de memria
Cache (Mapeamento, acesso, falhas, ...)
...
Conhecimento necessrio das aulas anteriores
(cdigo assembly, ... )
79
*provas no so contadas como aulas