Vous êtes sur la page 1sur 74

Arquitetura)de)Computadores)

Prof.)Alexandro)Baldassin)
1o)semestre/2014)

Exerccio)de)xao)(1))
Para)um)projeto)de)cache)mapeada)diretamente)com)
endereos)de)32)bits,)os)seguintes)bits)so)usados)para)
acesso:)
Tag"

ndice"

Oset"

31K10)

9K4)

3K0)

Qual)o)tamanho)do)bloco)(em)palavras)?)
4)bits)(0K3))=)24)=)16)bytes)=)4"palavras)

Quantos)blocos)a)cache)possue?)
6)bits)(4K9))=)26)=)64"blocos"
Arquitetura)de)Computadores)

2)

Exerccio)de)xao)(2))
Os)seguintes)endereos)(memria)endereada)por)
palavras))so)referenciados)por)um)programa:))
2,)3,)11,)16,)21,)13,)64,)48,)19,)11,)3,)22,)4,)25,)6)e)11)

Assumindo)uma)cache)mapeada)diretamente)com)16)
blocos)de)uma)palavra)(inicialmente)vazia),)indique)se)
cada)ocorrncia)da)lista)foi)um)HIT)ou)um)MISS)e)faa)
um)desenho)da)cache)no)seu)estado)nal)

Arquitetura)de)Computadores)

3)

Exerccio)de)xao)(2))
ndice"

2)M)
3)M)
11)M))
16)M))
21)M))
13)M))
64)M))
48)M))
19)M))
11)H))
3)M))
22)M))
4)M)
25)M))
6)M))
11)H)

0)

Dado"
[16])[64])[48])

1)
2)

[2])

3)

[3])[19])[3])

4)

[4])

5)

[21])

6)

[22])[6])

7)
8)
9)

[25])

10)
11)

[11])

12)
13)

[13])

14)
15)
Arquitetura)de)Computadores)

4)

Exerccio)de)xao)(3))
Repita)o)exerccio)anterior)para)uma)cache)mapeada)
diretamente)com)4)blocos)de)4)palavras)
2)M,)3)H,)11)M,)16)M,)21)M,)13)M,)64)M,)48)M,)19)M,)
11)H,))3)M,)22)H,)4)M,)25)M,)6)H)e)11)M)
ndice"

Dado"

0)

[0K3])[16K19])[64K67])[48K51])[16K19])[0K3])

1)

[20K23])[4K7])

2)

[8K11])[24K27])[8K11])

3)

[12K15])

Arquitetura)de)Computadores)

5)

Problemas)com)mapeamento)direto)
No)mapeamento)direto))
Dois)blocos)de)memria)que)so)mapeados)para)a)mesma)posio)
na)cache)no)podem)estar)presentes)ao)mesmo)tempo))
um)ndice)=>)um)bloco)

Assuma)que)dois)endereos)X,Y)mapeiem)para)o)mesmo)
bloco)da)cache))
Qual)a)taxa)de)acerto)da)sequncia)a)seguir?)
X,)Y,)X,)Y,)X,)Y,)X,)Y,))

Como)melhorar)o)mapeamento?)
Um)mesmo)ndice)representar)mais)de)um)bloco!)
Caches)conhecidas)como)caches)associajvas)
Arquitetura)de)Computadores)

6)

Caches)associajvas)
Associajvidade)
Cada)bloco)de)memria)pode)ser)mapeado)para)dois)ou)mais)
blocos)na)cache)

Nveis)de)associajvidade)
Totalmente)associajva)
Bloco)pode)ser)mapeado)para)qualquer)bloco)na)cache)
No)existe)campo)ndice'

Associajva)por)conjunto)
Bloco)pode)ser)mapeado)para)um)determinado)conjunto)na)cache)
Cada)conjunto)possui)pelo)menos)dois)blocos)(duas)vias))2'ways))
Campo)ndice)determina)o)conjunto)
Arquitetura)de)Computadores)

7)

Mapeamento)de)blocos)
Mapeada)diretamente)
Posio)na)cache)=)endereo)do)bloco)%)#blocos)da)cache)
bloco)11)
bloco)10)
bloco)9)

bloco)7)

bloco)8)

bloco)6)

bloco)7)

bloco)5)

bloco)6)

bloco)4)

bloco)5)

bloco)3)

bloco)4)

bloco)2)

bloco)3)

bloco)1)

bloco)2)

bloco)0)

bloco)1)
bloco)0)

Memria)

Cache)com)8)blocos)
Arquitetura)de)Computadores)

8)

Mapeamento)de)blocos)
Totalmente)associajva)
Posio)na)cache)=)qualquer)lugar)
bloco)11)
bloco)10)
bloco)9)

bloco)7)

bloco)8)

bloco)6)

bloco)7)

."
."
."

bloco)6)
bloco)5)

bloco)5)
bloco)4)
bloco)3)

bloco)4)

bloco)2)

bloco)3)

bloco)1)

bloco)2)

bloco)0)

bloco)1)
bloco)0)

Memria)

Cache)com)8)blocos)
Arquitetura)de)Computadores)

9)

Mapeamento)de)blocos)
Associajva)com)2)vias)(4)conjuntos)))2Kway)
Posio)na)cache)=)endereo)do)bloco)%)#conjuntos)da)cache)
bloco)11)
bloco)10)
bloco)9)

conjunto)3)

bloco)8)
bloco)7)

conjunto)2)

bloco)6)
bloco)5)

conjunto)1)

bloco)4)
bloco)3)

conjunto)0)

bloco)2)
bloco)1)
bloco)0)

Memria)

Cache)com)4)conjuntos)
Arquitetura)de)Computadores)

10)

Mapeamento)de)blocos)
Associajva)com)2)vias)(4)conjuntos)))2Kway)
Posio)na)cache)=)endereo)do)bloco)%)#conjuntos)da)cache)
bloco)11)
bloco)10)
bloco)9)
bloco)8)
bloco)7)

conjunto)3)

bloco)6)
bloco)5)

conjunto)2)

bloco)4)

conjunto)1)

bloco)3)
bloco)2)

conjunto)0)

bloco)1)
bloco)0)

via)0)

Memria)

via)1)

Cache)com)4)conjuntos)
Arquitetura)de)Computadores)

11)

Mapeamento)de)blocos)
Mapeada)diretamente)
Posio)na)cache)=)endereo)do)bloco)%)#blocos)da)cache)
bloco)11)
bloco)10)
bloco)9)

bloco)7)

bloco)8)

bloco)6)

bloco)7)

bloco)5)

Cache"mapeada"
diretamente""um"caso"
especial"da"associa>va"com"
1"via"

bloco)6)
bloco)5)
bloco)4)
bloco)3)

bloco)4)
bloco)3)
bloco)2)
bloco)1)

bloco)2)

bloco)0)

bloco)1)
bloco)0)

Memria)

Cache)com)8)blocos)
Arquitetura)de)Computadores)

12)

Acesso)a)uma)cache)associajva)
Campos)tag)e)oset)funcionam)como)na)cache)com)
mapeamento)direto)
Campo)ndice'
indica)qual"conjunto)(no)qual)bloco))deve)ser)pesquisado)

Qual)o)tamanho)do)campo)ndice)para)...)
cache)com)mapeamento)direto)com)B)blocos? log
)) 2B"
cache)totalmente)associajva? ) ) ) ))
0"
cache)associajva)com)S)conjuntos?)
log2S"
"

"

Arquitetura)de)Computadores)

13)

Cache)associajva)de)NKvias)
Dado)um)endereo)de)memria,)o)acesso)a)uma)cache)
associajva)de)NKvias))feito)da)seguinte)forma:)
1. Encontrar)o)respecjvo)conjunto)usando)o)campo)ndice'
2. Comparar)o)campo)tag)do)endereo)com)o)tag)de)todas)as)
vias)dentro)do)conjunto)
3. Em)caso)da)comparao)ser)verdadeira)para)alguma)via,)
acerto!)Caso)contrrio,)falta)
4. Finalmente,)o)campo)oset))usado)para)encontrar)o)dado)
dentro)da)via)
Arquitetura)de)Computadores)

14)

Circuito)para)associajvidade)

.)associajvidade)com)4)vias)
)
.)blocos)de)uma)palavra)
)
.)256)conjuntos)(1024)
blocos))
)
)

Arquitetura)de)Computadores)

15)

Colocao)de)blocos)na)cache)
Cache)mapeada)diretamente)
O)campo)ndice)determina)unicamente)a)posio)do)bloco)na)
cache)

Cache)associajva)de)NKvias)
Campo)ndice)determina)o)conjunto)
Dentro)do)conjunto,)o)bloco)pode)ir)para)qualquer)uma)das)N)
vias)

Cache)totalmente)associajva)
Bloco)pode)ser)colocado)em)qualquer)posio)

)
Arquitetura)de)Computadores)

16)

Poljca)de)subsjtuio)(1))
Para)as)caches)associajvas)temos)uma)escolha)de)onde)
colocar)os)blocos)
Se)temos)uma)escolha,)em)que)lugar)devemos)colocar)
um)determinado)bloco)no)caso)de)uma)falta?)
Se)houver)vias)com)o)bit)de)validade)0,)ento)usar)a)primeira)
delas)
Se)todas)as)vias)esjverem)ocupadas,)devemos)escolher)uma)
pol>ca"de"subs>tuio:)uma)regra)para)determinar)qual)
bloco)ser)subsjtudo)(jogado)para)a)memria))

Arquitetura)de)Computadores)

17)

Poljca)de)subsjtuio)(2))
LRU))Least'Recently'Used'
Subsjtuir)bloco)que)foi)acessado)(leitura)ou)escrita))menos)
recentemente)
Explora)localidade)temporal)(geralmente)muito)bom))
Para)associajvas)com)NKvias,)N)>)2,)hardware)para)
implementar)tornaKse)complexo)

Outro)esquema?)
Randmico))subsjtuir)uma)via)aleatoriamente)

Arquitetura)de)Computadores)

18)

Exemplo)
Assuma)trs)caches)pequenas,)cada)uma)com)4)blocos)
de)uma)palavra.)Uma))mapeada)diretamente,)a)outra))
associajva)com)2)vias,)e)a)terceira)totalmente)
associajva)
Qual)a)menor)taxa)de)faltas)possvel)para)sequncia)
abaixo?)
0,)8,)0,)6,)8)
3"faltas"em"5"accessos"="3/5"="60%"

Arquitetura)de)Computadores)

19)

Exemplo:)mapeamento)direto)
Mapeamento)direto
bloco"de"memria"
acessada"

acerto"ou"
falta?"

)0,)8,)0,)6,)8)
dado"(via"nica)"
bloco"0"

bloco"1"

bloco"2"

)))))))))))))))falta )

)))))[0])

)))))))))))))))falta )

)))))[8])

)))))))))))))))falta )

)))))[0])

)))))))))))))))falta )

))))))))))))))))))))))))))))))))))))))))))))))[6])

)))))))))))))))falta )

)))))[8]))))))))))))))))))))))))))))))))))))[6])

bloco"3"

5)faltas)em)5)acessos)
taxa)de)faltas)=)100%)
)

Arquitetura)de)Computadores)

20)

Exemplo:)associajva)de)2)vias)
Associajva)com)2)vias)
bloco"de"memria"
acessada"

acerto"ou"
falta?"

)0,)8,)0,)6,)8)
dado"(via"nica)"
conjunto"0"
via"0"

via"1"

conjunto"1"
via"0"

0
8

)
)

)))))))))))))))falta )
)))))))))))))))falta )

)))))[0]))))))))))))))))))))))))))))))))))))
)))))[0])))))))))))))))[8])))))))))))))))))))

))))))))))))))acerto )

)))))[0])))))))))))))))[8])))))))))))))))))))

)))))))))))))))falta )

)))))[0])))))))))))))))[6])))))))))))))))))))

)))))))))))))))falta )

)))))[8])))))))))))))))[6])))))))))))))))))))

via"1"

4)faltas)em)5)acessos)
taxa)de)faltas)=)80%)
Arquitetura)de)Computadores)

21)

Exemplo:)totalmente)associajva)
Totalmente)associajva
bloco"de"memria"
acessada"

acerto"ou"
falta?"

)0,)8,)0,)6,)8)
dado"(via"nica)"
via"0"

via"1"

via"2"

via"3"

)))))))))))))))falta )

)))))[0]))))))))))))))))))))))))))))))))))))

)))))))))))))))falta )

)))))[0]))))))))))))))[8]))))))))))))))))))))))))))))))))))

))))))))))))))acerto )

)))))[0]))))))))))))))[8]))))))))))))))))))))))))))))))))))

)))))))))))))))falta )

)))))[0]))))))))))))))[8])))))))))))))))))[6])))))))))))))))))))

))))))))))))))acerto )

)))))[0]))))))))))))))[8])))))))))))))))))[6])))))))))))))))))))))))

3)faltas)em)5)acessos)
taxa)de)faltas)=)60%)
)

Arquitetura)de)Computadores)

22)

Escrevendo)na)cache)
At)agora)vimos)a)cache)como)sendo)acessada)por)
operaes)de)leitura)
Considere)que)uma)operao)de)escrita)aconteceu)e))
houve)uma)falta)na)cache)
Trazemos)o)bloco)para)cache)(write6allocate))ou)simplesmente)
escrevemos)diretamente)na)memria)(write6no6allocate)?)

houve)um)acerto)na)cache)
Escrevemos)o)dado)apenas)no)bloco)na)cache)(write6back))ou)tambm)
nos)demais)nveis)da)hierarquia)(write6through)?)

Arquitetura)de)Computadores)

23)

Poljca)de)escrita)na)cache)
Write6through'
Dado))atualizado)tanto)na)cache)quanto)na)memria)
Mais)simples)
Possvel)perda)em)desempenho)
Toda)escrita)requer)acesso))memria)
Latncia)pode)ser)tolerada)com)buers)de)escrita)

Write6back'
Dado))atualizado)SOMENTE)na)cache)
Quando)o)bloco)precisar)ser)subsjtudo,)ele)deve)ser)escrito)
na)memria)
dirty'bit))adicionado)por)bloco)para)detectar)se)o)mesmo)foi)escrito)
Arquitetura)de)Computadores)

24)

Cache)de)instruo)vs)cache)de)dados)
Separada:)instrues)e)dados)
possuem)cache)prpria)

Evita)conitos)estruturais)no)pipeline)
(estgios)IF)e)MEM))
Geralmente)usada)para)L1)

Unicada:)ambos)instrues)e)dados)
usam)a)mesma)cache)
Pode)proporcionar)melhor)uso)de)
espao,)mas)instrues)e)dados)podem)
colidir)
Geralmente)usada)para)L2,)L3,)...)
Arquitetura)de)Computadores)

CPU
I$

D$

Memria

CPU

Memria
25)

Desempenho)da)cache)
Idealmente))
taxa)de)acertos)=)100%)

Taxa)de)acertos)
taxa)de)acertos)=)nmero)de)acertos)/)nmero)total)de)acessos)

Taxa)de)faltas)
taxa)de)faltas)=)nmero)de)faltas)/)nmero)total)de)acessos)=)1K)taxa)de)acertos)

Tempo)mdio)de)acesso))memria)(TMAM))
TMAM)=)tempo)de)acerto)+)(taxa)de)faltas)*)penalidade)por)falta))
Arquitetura)de)Computadores)

26)

Tempo)mdio)de)acesso)
Suponha)que)um)processador)tenha)perodo)de)clock)de)
1ns,)taxa)de)faltas)de)5%,)penalidade)por)falta)de)20)
ciclos)e)tempo)de)acesso))cache)de)1)ciclo)
Qual)o)TMAM?)
TMAM)=)tempo)de)acerto)+)(taxa)de)faltas)*)penalidade)por)falta))
TMAM)=)1ns)+)(0.05)*)20ns))
TMAM)=)1ns)+)1ns)=)2ns)

Arquitetura)de)Computadores)

27)

Fatores)que)afetam)o)desempenho)
TMAM)=)tempo)de)acerto)+)(taxa)de)faltas)*)penalidade)por)falta))

Reduzir)
tempo)de)acerto)
cache)pequena)e)simples)

taxa)de)faltas)
aumentar)nmero)de)blocos)
tornar)mapeamento)de)blocos)mais)exvel)(associajvidade))

penalidade)por)falta)
inuenciado)pelo)tamanho)do)bloco)

Arquitetura)de)Computadores)

28)

Tempo)de)acesso)versus)tamanho)e)
associajvidade)

Arquitetura)de)Computadores)

29)

Energia)por)leitura)versus)tamanho)e)
associajvidade)

Arquitetura)de)Computadores)

30)

Custo)da)associajvidade)
Aps)localizar)o)conjunto)em)uma)cache)associajva,)as)tags)
e)bits'de'validade)de)todas)as)vias)devem)ser)comparadas)
em)paralelo)para)detecter)acerto)ou)falta)
Cache)totalmente)associajva)
maior)potencial)para)ganho)de)desempenho)
no)entanto,))necessrio)um)comparador)para)cada)bloco)de)
memria)(custo)de)hardware)muito)alto))
Maior)latncia)de)acesso)

Em)geral)associajvidade)reduz)taxa)de)faltas)(aumentando)
desempenho),)mas)custo)do)circuito)extra)pode)aumentar)o)
tempo)de)acerto)(hit'=me))
Arquitetura)de)Computadores)

31)

Caches)Associajvas)
Melhora)pica)para)uma)cache)de)dados)de)64KB,)com)
blocos)de)16)palavras)e)diversas)associajvidades)
Associa>vidade"

Taxa"de"faltas"

1)

10.3%)

2)

8.9%)

4)

8.3%)

8)

8.1%)

Quanto)a)associajvidade)reduz)a)taxa)de)faltas?)
Depois)de)um)certo)valor,)o)ganho))muito)baixo)
Arquitetura)de)Computadores)

32)

Tamanho)do)bloco)
Blocos)maiores)exploram)localidade)espacial)
Potencial)decremento)na)taxa)de)faltas)

No)entanto)...))
Se)o)tamanho)do)bloco)for)uma)frao)signicante)da)cache,)a)
taxa)de)faltas)pode)aumentar)
O)aumento)do)tamanho)do)bloco)tambm)pode)causar)uma)
penalidade)por)falta)maior)

Arquitetura)de)Computadores)

33)

Taxa)de)faltas)por)tamanho)de)bloco)

Arquitetura)de)Computadores)

34)

Os)3Cs)de)cache)misses)
Compulsory'miss'
Primeira)referncia)a)um)bloco)

Capacity'miss'
Misses)que)ocorreriam)mesmo)em)
uma)cache)de)mesmo)tamanho)
totalmente)associajva)

Prefetching)

Ujlizar)melhor)a)cache))
manter)blocos)que)sero)
referenciados)
Alterar)soware)de)forma)que)
o)working'set'de)cada)fase)de)
execuo)caiba)na)cache)
Aumentar)tamanho)

Conict'miss'
Nem)compulsrio)nem)por)
capacidade)
Arquitetura)de)Computadores)

Aumentar)associajvidade)
Outros)mtodos)como,)por)
exemplo,)cache)vjma)
35)

Intel)Penjum)

Arquitetura)de)Computadores)

36)

Intel)Penjum)III)

Arquitetura)de)Computadores)

37)

Concluindo)sobre)caches)
Decises)de)projeto)
Velocidade)versus)Capacidade)
Mapeada)diretamente)versus)associajva)
Para)associajvas:))escolha)do)nmero)de)vias)e)poljca)de)
troca)
Mais)nveis)de)cache)(2,)3...)?)
Na)escrita:)write6trough'versus)write'back'

Escolha)depende)da)aplicao,)tecnologia)e)custo)
Leitura)recomendada)(TelEduc))
A'Day'in'the'Life'of'a'Data'Cache'Miss'(WMPI'2002)'
Arquitetura)de)Computadores)

38)

MEMRIA"VIRTUAL"
Traduo)de)endereos,)paginao,)TLB)

P&H:)5.4,)5.5)
H&H:)8.4)
Arquitetura)de)Computadores)

39)

Relembrando)hierarquia)de)memria)
rpido,)mas)espao)reduzido)

Registradores)
operandos)de)instrues)

Cache)(L1))
blocos)

Cache)(L2))
blocos)

Memria)
pginas)

Disco)
arquivos)
Arquitetura)de)Computadores)

lento,)mas)grande)volume)
40)

Mojvao)
Imagine)que)voc)tenha)somente)128MB)de)memria)e)um)
disco)rgido)de)20GB)
E)se)o)programa)necessita)de)mais)de)128MB)de)memria?)
E)se)o)espao)de)endereamento)do)processador))maior)que)227?)

Por)que)no)usar)espao)no)disco)para)dar)iluso)de)uma)
memria)maior)para)os)programas?)
Por)exemplo,)2GB)

Esse)espao)maior)(2GB))chamamos)de)memria'virtual)
para)diferenciar)da)memria)principal,)chamada)de)
memria',sica'
Arquitetura)de)Computadores)

41)

Memria)virtual)
Memria)virtual)(VM))Virtual'Memory))
Iluso)de)uma)memria)muito)grande)(disco),)com)velocidade)
da)memria)principal)
Usa)memria)sica)como)uma)cache)para)disco)

Mesmo)conceito)visto)em)cache,)porm)com)tradeos)
diferentes)
Hardware)e)soware)(SO))cooperam)para)manter)a)
iluso,)mesmo)a)memria)sica)no)sendo)innita)
A)iluso))manjda)para)cada)processo)independente)
Arquitetura)de)Computadores)

42)

Memria)virtual)hoje)
Inicialmente)o)conceito)de)memria)virtual)foi)
introduzido)para)permijr)um)espao)em)memria)maior)
para)os)programas)
Programador)no)precisa)estruturar)seu)cdigo)para)lidar)com)
limites)sicos)de)memria)

Atualmente,)memria)virtual)tambm))o)mecanismo)
usado)para)garanjr)proteo)em)sistemas)muljtarefas)
Permite)que)mljplos)processos)ocupem)a)memria)
simultaneamente,)sem)que)um)interra)no)outro)
Cada)programa)tem)a)iluso)de)ter)toda)a)memria)s)para)si)
Arquitetura)de)Computadores)

43)

Relembrando)a)analogia))
Voltando))analogia)da)biblioteca)usada)para)ilustrar)
cache)...)
Ttulo)do)livro)pode)ser)encarado)como)endereo)virtual)
Posio)do)livro)na)estante)ou)biblioteca))seu)endereo)sico)

Para)encontrar)o)livro)precisamos)de)uma)tabela)que)
mapeie)cada)tulo)a)sua)posio)
Da)mesma)forma,)vamos)precisar)de)uma)tabela)que)
armazene)o)endereo)sico)correspondente)a)cada)endereo)
virtual)
Arquitetura)de)Computadores)

44)

Ideia)de)funcionamento)
Esquema"com"memria"_sica"

2n)K1)

."
."
."
endereo))
sico)

2000)

2n)K2)

2000)
1999)

Processador)

."
."
."
3)
2)
1)
0)

Memria)sica)
Arquitetura)de)Computadores)

45)

Ideia)de)funcionamento)
Esquema"com"memria"virtual"

endereo))
virtual)

10000)

Processador)

2n)K1)

endereo))
sico)

Tabela)de)
pginas)

2000)

."
."
."

2n)K2)

2000)
1999)

."
."
."
3)
2)
1)

Se)a)pgina)no)esjver)na)
memria)sica,)disco))
ujlizado)

0)

Disco)

Arquitetura)de)Computadores)

Memria)sica)
46)

Terminologia)
Memria)virtual)usa)uma)terminologia)diferente)para)os)
mesmos)princpios)que)vimos)em)caches)

Arquitetura)de)Computadores)

47)

Viso)geral)
Memria)virtual)e)sica)so)divididas)em)pginas)(geralmente)4KB))

Arquitetura)de)Computadores)

48)

Viso)geral)
Uma)pgina)virtual)pode)estar)armazenada)na)memria)sica)ou)no)disco)

Arquitetura)de)Computadores)

Memria)sica)armazena))
subconjuntos)mais)
recentemente)acessados)da)
memria)virtual)
)

49)

Viso)geral)
O)processo)de)determinar)o)endereo)sico)a)parjr)do)virtual))conhecido)como)
traduo)de)endereo)

Arquitetura)de)Computadores)

50)

Mapeamento)
Endereo)virtual))dividido)em)nmero'de'pgina'virtual)
(VPN))e)deslocamento'de'pgina'(oset))
VPN))usada)para)determinar)um)nmero'de'pgina'
Nsico)(PPN))
PPN'|'oset'forma)o)endereo'Nsico'nal,)usado)para)
acessar)efejvamente)a)memria)

Arquitetura)de)Computadores)

51)

Exemplo)de)mapeamento)

12)bits)=)pginas)de)4KB)

Arquitetura)de)Computadores)

52)

Traduo)de)endereo)(1))
As)decises)de)projeto)para)implementar)o)processo)de)
traduo)so)guiadas)pelo)alto)custo)ocasionado)no)caso)de)
faltas)de)pginas)(page'faults))
Tempo)de)acesso)ao)disco))da)ordem)de)105)comparado)com)
memria)sica))

Consequncias)principais)
Tamanho)da)pgina)no)pode)ser)muito)pequeno))
Atualmente)varia)de)4KB)a)16KB)

Permijr)mapeamento)totalmente)associajvo)
Uma)pgina)virtual)pode)ser)mapeada)para)qualquer)pgina)sica))

Tratamento)da)falta))feito)pelo)sistema)operacional)(soware))
Arquitetura)de)Computadores)

53)

Traduo)de)endereo)(2))
A)estrutura)principal)usada)para)fazer)a)traduo))
conhecida)como)tabela"de"pginas"(page'table))
Para)cada)VPN,)a)tabela)armazena)o)respecjvo)PPN)e)outras)
informaes)(como)bits)de)proteo)e)de)validade))

A)tabela)de)pginas))armazenada)na)memria)principal)
(por)qu?))
Um)registrador)do)processador)armazena)o)endereo)sico)da)
tabela))
Cada)programa)possui)sua)prpria)tabela)

Arquitetura)de)Computadores)

54)

Processo)de)traduo)

Arquitetura)de)Computadores)

55)

Exemplo)com)2)processos)
Programa)A)
)

Programa)B)
64MB)

Tabela)de)pginas)

Tabela)de)pginas)

0)
Memria)Fsica)
0)

VM)

VM)
Arquitetura)de)Computadores)

0)
56)

Exemplo)de)traduo)
Assuma)a)seguinte)tabela)de)pginas)
Qual)o)endereo)sico)equivalente)ao)endereo)
virtual)0x247C)(assuma)pginas)de)4KB)?)

0x2)))))))))))47C)

0x7FFF)|47C))=)0x7FFF47C)
Arquitetura)de)Computadores)

57)

Falta)de)pgina)(page'fault))
Quando,)no)processo)de)traduo,)uma)pgina)no))
encontrada)(bit)de)validade)0),)o)processador)gera)uma)
exceo)que))capturada)pelo)sistema)operacional)
Um)vez)capturada)a)exceo,)o)sistema)operacional)
deve)localizar)a)referida)pgina)no)disco)e)decidir)em)
qual)lugar)da)memria)sica)colocKla)
O)sistema)operacional)geralmente)aloca)um)espao)em)
disco)(swap'space))para)todas)as)pginas)de)um)
processo)
Arquitetura)de)Computadores)

58)

Cache)versus)VM)
Cache"

Memria"Virtual"

Bloco)(ou)linha))

Pgina)

Falta)(miss))

Falta)(page'fault))

Falta)tratada)em)hardware)

Falta)tratada)em)soware)

Tamanho)do)bloco:)32K64)bytes)

Tamanho)da)pgina:)4K16KB)

Mapeada)diretamente)ou)associajva)
Totalmente)associajva)
com)N)vias)
Poljca)de)troca:)LRU)ou)aleatria)

LRU)

Write)trough)ou)write)back)

Write)back)

Arquitetura)de)Computadores)

59)

Alguns)problemas)com)VM)
Tamanho)da)tabela)de)pgina)
Velocidade)de)acesso)
Quando)fazer)a)traduo)dos)endereos)

Arquitetura)de)Computadores)

60)

Tamanho)da)tabela)de)pgina)(PT))
Imagine)um)sistema)com)memria)virtual)de)48)bits)
com)pginas)de)4KB)e)memria)sica)de)32)bits)
Qual)o)tamanho)de)uma)tabela)de)pginas?)
Endereo"virtual"de"48"bits"
PO)

VPN)

12)bits)
VPN)=)36)bits)
Tamanho)=)236)entradas)x)4)bytes)por)entrada)=)238)bytes)=)256GB!)
E)apenas)para)uma)tabela!)LembreKse)que)cada)processo)deve)ter)uma!)
Arquitetura)de)Computadores)

61)

Problema)com)tamanho)da)PT)
Como)armazenar)as)tabelas)de)pginas)ecientemente)
sem)necessitar)de)memria)sica)para)armazenar)todas)
elas?)
Aumentar)tamanho)de)pgina?)

Usar)mljplos)nveis)para)as)tabelas)de)pginas)
Somente)o)primeiro)nvel)precisa)car)na)memria)sica)
O)restante)pode)car)na)memria)virtual)
Ainda)podem)ser)manjdas)na)memria)sica)quando)acessadas)
(cacheadas))

Arquitetura)de)Computadores)

62)

Tabela)de)pginas)com)mljplos)nveis)
Endereo)virtual)
Diretrio)

Page)directory)entry)

VPN)

Page)table)entry)

PO)

+)

=)Endereo)sico)

Somente)este)nvel)necessita)
car)em)memria)sica!)
Arquitetura)de)Computadores)

63)

Velocidade)de)acesso)
Qual)o)principal)problema)de)desempenho)com)o)esquema)de)
memria)virtual)apresentado)at)agora?)
Indireo)adicionada)devido))tabela)de)pginas))
Uma)instruo)que)referencia)memria)gera)pelo)menos)dois)acessos))
memria)sica:)um)para)acessar)a)tabela)de)pginas,)e)outro)para)acessar)
o)dado)
Pior)se)mljplos)nveis)foram)usados)

Como)resolver)o)problema?)
Notar)que)h)localidade)no)acesso)s)pginas)
Adicionar)uma)cache)pequena)para)a)traduo)dos)endereos)virtuais)para)
sicos)(em)hardware))
Por)mojvos)histricos,)essa)cache))conhecida)como)transla=on'
lookaside'buer'(TLB))
Arquitetura)de)Computadores)

64)

TLB)
Uma)TLB)geralmente)tem)de)16)a)512)entradas)
Cada)entrada)da)TLB)armazena)um)VPN)e)o)PPN)
correspondente)
Totalmente)associajva)

Se)houver)um)acerto)(hit))na)TLB,)o)PPN))retornado)
rapidamente)
Do)contrrio,)o)processador)(ou)SO))precisa)acessar)a)tabela)
de)pginas)na)memria)sica)

Taxa)de)acertos)pica)em)TLBs))de)99%)
Arquitetura)de)Computadores)

65)

Acesso)usando)TLB)

Arquitetura)de)Computadores)

66)

Traduo)de)endereos)
Quando)fazer)a)traduo)de)endereo?)
Processador)

Cache"_sica"

virtual)
sico)

TLB)

Qual)o)principal)problema?)
Cache)(L1))

TLB)est)no)caminho)crjco!)

Resto)da)
hierarquia)

Arquitetura)de)Computadores)

67)

Traduo)de)endereos)
Quando)fazer)a)traduo)de)endereo?)
Processador)

Cache)(L1))
virtual)

TLB)

sico)

Resto)da)
hierarquia)

Cache"virtual"
Qual)o)principal)problema?)

Inconsistncias)(considere)dois)
endereos)virtuais)diferentes)
mapeando)para)o)mesmo)endereo)
sico))

Arquitetura)de)Computadores)

68)

Cache)virtual))Problemas)
Homnimo)(Homonym))
Mesmo)endereo)virtual)(em)processos)diferentes))pode)ser)
mapeado)para)endereos)sicos)diferentes)
Soluo:)Armazenar)tambm)um)ID)do)processo)junto)com)a)
tag)

Sinnimo)(Synonym))
Dois)ou)mais)endereos)virtuais)disjntos)(em)processos)
diferentes))podem)se)referenciar)ao)mesmo)endereo)sico)
Solues:)vrias)(veja)mais)adiante))

Arquitetura)de)Computadores)

69)

Na)prjca))
Um)esquema)que)usa)cache)indexada)virtualmente,)mas)
com)tags)sicas))usado)
Processador)

virtual)

Cache)(L1))

TLB)

sico)

Resto)da)
hierarquia)
Arquitetura)de)Computadores)

70)

Cache)com)ndice)virtual,)tag)sica)
Endereo)virtual)
VPN)

PO)
ndice)

TLB"

PPN)

Problemas)de)homnimo)e)
sinnimo)possveis)

=)

tag)

oset)

Cache"_sica"

bloco)

cache)hit)

Arquitetura)de)Computadores)

71)

Solues)para)o)problema)do)sinnimo)
Limitar)tamanho)da)cache)
Usar)como)ndice)apenas)os)bits)de)oset)da)pgina)(PO))

Em)uma)escrita)do)bloco,)procurar)todos)os)ndices)que)
podem)conter)o)mesmo)bloco)sico)(atualizar)ou)
invalidar))
Usado)no)Alpha)21264,)MIPS)R10K)

Sistema)operacional)restringe)colocao)de)pginas)
Cerjcar)que)ndice)virtual)seja)igual)a)ndice)sico)
Tcnica)conhecida)como)page'coloring'
Usado)em)processadores)SPARC)
Arquitetura)de)Computadores)

72)

Exemplo:)TLB)+)L1)+)L2)

Arquitetura)de)Computadores)

73)

Intel)Penjum)

Arquitetura)de)Computadores)

74)