Farklı önbelleklerin etiket, dizin ve ofset bitlerinin sayısı nasıl hesaplanır?


20

özellikle:

1) Her blokta 8 adet 32 ​​bit sözcük bulunan 4096 blok / satır içeren doğrudan eşlenmiş önbellek . 32 bit adres varsayıldığında, etiket ve dizin alanları için kaç bit gerekir?

2) 1 ile aynı soru ama tam ilişkilendirilebilir önbellek için ?

Yanlışsam beni düzeltin, değil mi?

etiket bitleri = adres bit uzunluğu - dizin üssü - ofset üssü?

[Ofset = 3, 2 ^ 3 = 8 nedeniyle mi, yoksa 2 ^ 5 = 32'den 5 mi?]


Yanıtlar:


20

Belirtilen soru oldukça cevapsız değildir. Bir kelime 32 bit olarak tanımlanmıştır. Sistemin "byte-adreslenebilir" (8 bitlik bir veri parçasına erişebilirsiniz) veya "word-adreslenebilir" (erişilebilir en küçük yığın 32 bit) veya hatta "yarım sözcük adreslenebilir" ( erişebileceğiniz en küçük veri yığını 16 bittir.) Bir adresin en düşük dereceli bitinin size ne söylediğini bilmek için bunu bilmeniz gerekir.

Sonra aşağıdan yukarıya doğru çalışırsınız. Sistemin bayt olduğunu varsayalım adreslenebilir .

Sonra her önbellek bloğu 8 kelime içerir * (4 bayt / kelime) = 32 = 2 5 bayt, yani ofset 5 bittir.

Göstergesi doğrudan eşleştirilmiş önbellek (bu durumda 12 bitlik 2 için önbellek blok sayısı olan 12 = 4096).

Ardından, belirttiğiniz gibi etiket kalan tüm bitlerdir.

Önbellek daha ilişkilendirilebilir hale geldiğinde ancak aynı boyutta kaldıkça daha az dizin biti ve daha fazla etiket biti vardır.


yup adreslenebilir bayt ama baktığım soru özellikle belirtmedi
compski

3

Etiket bitleri için formülünüz doğru.

Ofsetin üç bit mi yoksa beş bit mi olduğu, işlemcinin bayt (sekizli) adresleme mi yoksa kelime adresleme mi kullandığına bağlıdır. DSP'lerin dışında, neredeyse tüm yeni işlemciler bayt adresleme kullanır, bu nedenle bayt adresleme (ve beş ofset biti) kabul etmek güvenli olacaktır.


Böyle bir ayrım olduğunu bilmiyordum, evet bayt adresleme
compski

1
1970'lerin ortalarından önce, bir "kelimenin" adreslenebilir en küçük veri biriminin boyutu olduğunu kabul edebiliriz. Bu üzerinde wikipedia sayfadaki tablo kelimenin eğlenceli (eğer bu tür şeyler, (ı yapmak) gibi.)
Dolaşan Mantık

1

Bilgisayar Sistemi konusunun final sınavı için öğreniyorum, bir süre googledim ve bu soruyu buldum. Ve sorunun bu kısmı kafa karıştırıyor: "her blokta 8 adet 32 ​​bit kelime var". Bir kelime 4 bayttır (veya 32 bit), bu yüzden soru "... her bloğun 8 kelime içerdiği" olmalıdır.

Cevap - Her blok 32 bayttır (8 kelime), bu yüzden her blokta hangi baytı belirlemek için 5 ofset bitine ihtiyacımız var - Doğrudan eşlemeli => set sayısı = blok sayısı = 4096 => 12 indeks bitine ihtiyacımız var hangi seti belirle

=> etiket biti = 32-12-5 = 15

Tam ilişkilendirilebilirlik için, küme sayısı 1 => dizin biti yok => etiket biti = 32 - 0 - 5 = 27


1

Tamamen ilişkilendirilebilir bir önbellekte dizin biti yoktur. Dizin bitleri, bloğun hangi kümeye ait olduğunu benzersiz bir şekilde tanımlamak için kullanılır. Tamamen ilişkilendirilebilir bir önbellekte, tüm bloklar esasen aynı kümenin parçasıdır.


-1

tam ilişkilendirme eşleme dizininde, set = 1 dediğiniz gibi 0 b / s'dir; bu nedenle, dizin 2 = taban 2'deki 1 günlüğü = 0 set ofseti = bayt taban 2'nin blok boyutu günlüğü, bu nedenle 8 = 2 ^ 3 veya 32 = 2 ^ kullanın 5 etiket = 32-0-5 = 27 doğrudan dizin için = 2 ^ 12 = 12 ofset = 0 bit etiketi = 32-12-0 = 20


Bunu okumayı imkansız buluyorum. Lütfen biraz noktalama işareti kullanın.
David Richerby
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.