Você está na página 1de 3

Exerccios Cache e Memria Virtual (MPROF)

Adriano Sarmento
Centro de Informtica-UFPE
Discentes: Giovani Felie !anh e !an"erson #ilva "e #ou$a
%& 'uest(o
Considere que um computador possua uma cache de 1KB com mapeamento direto,
que use endereos de !" #its e que cada #$oco tenha 1% #&tes' Assuma que um
pro(rama acessa a se(uinte sequencia de endereos de #&tes) *, +, 1%, 1!", "!",
""+, 1*"+, !*, 1+*, !1**, 1,* e "1,*' Ca$cu$e a ta-a de fa$tas .miss rate/'
0amanho do index 1 .1*/ #its
0amanho da cache 1 1KB 1 "
1*
#&tes

0amanho do B$oco e $inha 1 1% #&tes 1 "
+

0amanho de endereo 1 !" #its 1 + #&tes 1 "
"
#&tes
23mero de #$ocos da mem4ria principa$ 1 "
1*
5"
+
1 "
%

#$ocos 1 %+ #$ocos
23mero de $inhas da cache1 "
+
1 1%

En"
"ec
)inha "a cache
) * En" mod linhas "a cache
* *mod %+ 1 *
+ +mod %+ 1 +
1% 1% mod %+ 1 1%
1!" 1!" mod %+ 1 +
"!" "!" mod %+ 1 +*
""+ ""+ mod %+ 1 !"
1*"+ 1*"+ mod %+ 1 *
!* !* mod %+ 1 !*
1+* 1+* mod %+ 1 1"
!1** !1** mod %+ 1 ",
1,* 1,* mod %+ 16"
"1,* "1,* mod %+ 1 +

En"ere+o )inha "a cache ,certo ou Falha -loco "a Cache
* * Fa$ha 7em8*9
+ + Fa$ha 7em8+9
1% 1% Fa$ha 7em81%9
1!" + Fa$ha 7em81!"9
"!" +* Fa$ha 7em8"!"9
""+ !" Fa$ha 7em8""+9
1*"+ * Fa$ha 7em81*"+9
!* !* Fa$ha 7em8!*9
1+* 1" Fa$ha 7em81+*9
!1** ", Fa$ha 7em8!1**9
1,* 6" Fa$ha 7em81,*9
"1,* + Fa$ha 7em8"1,*9

.axa "e /alha * %01%0 * %223 "e /alha
0& 'uest(o
Considere que um computador possua uma cache de 1KB de dados com #$ocos
de + pa$a:ras, associati:a de (rau + e que uti$i;e endereos de !" #its' Ca$cu$e o
tamanho rea$ desta cache em #its, $em#rando que para cada #$oco da cache tam#<m
de:e ser arma;enada um #it de :a$idade e um dirt& #it'
Cache 1 "
1*
=o(o >ndice 1 1* 1 2
Como e-iste + ?ords tenho 1% #&tes por #$oco ou se@a ..+-,/-+.Aords// 1 1", #its
Cada (rau de associati:idade diminui o n3mero de con@untos por um fator de dois e, portanto, diminui o
n3mero de #its usados para inde-ar a cache por um e aumento o n3mero de #its na ta( por um'
Como um endereo de !" #its produ; !"-+ 1 ", #its para ta( e Bndice'
A cache diretamente mapeada possui um mesmo n3mero de con@untos e #$ocos e, portanto, 1* #its de
Bndice, @ que $o(
"
.15+KB/1 "
1*5
"
"1
"
,
23mero de #$ocos 1 "
1*5
"
+1
"
%
C n3mero tota$ de #its de ta( < .",-,/ 1 "* - 1D 1 "* D#its

",-,E+E1K5+1"* .0a(/
)o4o: 0
5
6 (%0789602)89 * %:;0< =>its * %;5< =-

:& 'uest(o
Considere uma arquitetura com um sistema de mem4ria :irtua$ com as se(uintes
caracterBsticas)
Endereo :irtua$ de 6+ #its "
6+

0amanho de p(ina 1 + KB"
1"

0amanho de uma entrada da ta#e$a de p(inas 1 + #&tes, ou se@a, !" #its'
.a/ Assumindo que uma entrada de ta#e$a de p(inas reser:a oito #its para
contro$e .proteFo, :a$idade, dirt& #it, etc/, qua$ < o maior tamanho de
mem4ria fBsica .em #&tes/ suportada por este formato de entrada de ta#e$aG
Endereo :irtua$ 1 6+
Cffset .tamanho da p(ina/ 1 1"
Bit de contro$e 1 ,
0a#e$a da p(ina 1 endereo :irtua$ H offset 1 6+ H 1" 1 +"
7em4ria fBsica 1 80a#e$a de p(ina9 H 8#it de contro$e9 I 8offset9 1 +" H , I 1" 1 +% #its 1 "
+%

=o(o) 59 .>?tes

.#/ Jua$ < o tamanho desta ta#e$a de p(inas em #&tesG
Endereo :irtua$ 5 0amanho da p(ina 1K "
6+
5 "
1"
1 "
+"
1 9 .>?tes








9& 'uest(o Considere um sistema que tenha suporte, tanto de LA como de SA, para
mem4ria :irtua$ com pa(inaFo' A arquitetura possui um 3nico nB:e$ de cache,
uma0=B, mem4ria principa$ e disco' A cache < inde-ada por endereos fBsicos
.endereamento por #&te/, enquanto o processador e o processo tra#a$ham com
endereos :irtuais' C sistema operaciona$ mant<m uma ta#e$a de p(inas por
processo na mem4ria principa$'
Considere a(ora que o processador e-ecute uma instruFo de um processo que faa
uma $eitura da mem4ria e que o endereo so$icitado este@a na cache, mas que a
entrada da p(ina que cont<m o endereo nFo este@a na 0=B .s4 este@a na ta#e$a de
p(inas/'
Mescre:a o f$u-o de processamento que < feito neste sistema, desde a requisiFo do
dado atra:<s do en:io do endereo :irtua$ pe$a CPU at< que o dado che(ue N CPU' Cu
se@a, descre:a quais componentes do sistema sFo acessados, por que sFo acessados e
a ordem em que sFo acessados'
No caso temos uma substituio de pgina na TLB. Conforme tabelinha, vemos ue !
poss"vel.
Cache .)- .a>ela "e P@4ina Possvel
Lit 7iss Lit Sim, 0=B su#stituBda'

#rimeiramente a C#$ ir buscar o endereo na cache, neste caso o encontrando %cache
hit&. 'eguindo a hieraruia de mem(ria, o endereo da cache aponta pra o n)mero da
pgina virtual na TLB %acesso mais rpido a mem(ria f"sica sem decodificao na
tabela de pgina&, mas o dado no est l%TLB miss&. *p(s isso com o mesmo endereo
de pgina virtual, a solicitao ! feita a tabela de pgina %pagetable hit&, ue possui o
endereo f"sico para ser acessado na mem(ria principalou disco. * partir do endereo
na tabela de pgina pode+se encontrar o dado, ue por sua ve, pode est arma,enado
em disco ou na memria principal. -ncontrando em um dos dois %disco ou mem(ria
principal&, o '.. efetua a atuali,ao da TLB, se houver algum espao, ou usa algum
algoritmo de substituio %/0/. ou L1$&uando no houver. 'e uma pgina for
removida, est deve ser salva em disco, se estiver alterada. Com a TLB atuali,ada o '.
reinicia a instruo ue causou a falta. * CPU acessar novamente o dado na cache e
esse ser encontrado.
Temos2

C#$


nFo
sim
Cache
3em(ria principal 4isco
Tabela de pgina
o
3em(ria principal
4isco

Você também pode gostar