Bilgisayar Mimarisi: Bilgisayarda Cache (önbellek) İşlemleri
Bilgisayar mimarisi konusu olan cache işlemleri örnek soru ile daha iyi anlayacağız.
Cache Örnek Soru
Yukarıdaki cache örnek sorunun tamamıdır. Adım adım çözüldüğünde aslında korkulacak kadar değildir.
1) İlk olarak soru ile ilgili özellikleri okuduğumuzda fiziksel adres 13 bit genişliktedir. Yani bundan fazlasını alamaz. Soru çözülürken değineceğim. Sonra 13 fiziksel adresli hafızamız da blok boyutu 4 byte ve 8 kümeden oluşmakta imiş bu. Buradan şu sonuç çıkar.
Burada 2^n formülünü kullanarak adreslere yerleştireceğiz. (Hafızanın en sağından başlayarak) 4 byte 2^n den n=2 olur yani bizim CO (önbellek ofset) değerimiz 2 bitlik olacak. Aynı şekilde 8 Küme olan ise 2^n den n=3 olur ve bu da CI (küme indeksi) bitini verir diğer kalan bitler ise CT (ön bellek etiketi) olur bunları 1. kutularımıza yerleştirelim. Bu bize hafızanın şeklini vermektedir.
2) Soruda bizlere 0x0E35 fiziksel adresi vermektedir. Kutulara yerleştirmek için (0x0E35) adresin en sağından başlarız. En sağında 5 var. 5 i 2 lik tabana çevirdiğimizde 0101 olur bunu kutuya direk yazıyoruz sağdan başlayarak. Sonra 3 var onu 2 lik tabana çevirdiğimizde 0011 sonra bunu da aynen kutulara yerleştiririz sırası ile sonra E gelir E de 14 e karşılık gelmektedir bunun 2lik tabandaki değeri 1110 dır. bunu da kutulara yerleştiririz ve geriye 1 kutu kalıyor ona da 0 veririz. Boş kutular 0 dır. Kutularımızı bulduğumuza göre şimdi en sağdan başlayarak ilk 2 bit CO sonraki 3 bit CI geriye kalan CT ama burada 8 bit var bunu 4 bitlere ayırmalıyız yani 4 bite 4 bit oluyor. Eğer 7 bit kalsa idi 4 e 3 bit diye ayırırdık. Buradaki bitlerin değerlerini onluk tabana çevirdiğimizde CT=0x71 CI=0x5 ve CO=0x1 bulunur.
3) Bu adımda ise sorunun 2. adımında bulduğumuz kutulara göre parametrelerin değerlerini yazarız.
Sadece isabet durumu ve dönülen byte değeri kaldı bunu da en yukarıdaki tabloya göre bulacağız.
Tabloya baktığımızda ilk bulduğumuz küme indeksi CI yı tabloda bakıyoruz bizim CI=5 tabloda 5 bulduk artık sadece o satır ile ilgileneceğiz demektir. Sonra Küme etiketine ye bakıyoruz CT=71 o satırda 71 buluyoruz (yoksa isabet değeri 0 yani hayır olur) 71 var bundan sonra geçerli mi değil mi ona bakıyoruz evet 1 olduğu için geçerli. sonraki adım bizim byte değerimiz yukarıdaki kutularda bulduğumuz ne idi CO=1 yani byte değeri 1 olan bakıyoruz o satırdaki. Satırımız DE ye işaret ediyor.
Bütün bunlardan sonra aşağıdaki tabloya göre 0x0E35 adresinin işaret ettiği yer DE