Professional Documents
Culture Documents
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)