Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Doç.Dr. Ahmet ÖZMEN Sakarya Üniversitesi Bilgisayar Mühendisliği Bölümü.

Benzer bir sunumlar


... konulu sunumlar: "Doç.Dr. Ahmet ÖZMEN Sakarya Üniversitesi Bilgisayar Mühendisliği Bölümü."— Sunum transkripti:

1 Doç.Dr. Ahmet ÖZMEN Sakarya Üniversitesi Bilgisayar Mühendisliği Bölümü

2 Ders Planı Giriş Ön belleğin iç yapısı Ön bellek ile ilgili temel sorular Adresleme yöntemleri Direk map, fully associative, set associative ön bellekler 2

3 Geçen hafta bilgisayarın bellek hiyerarşisi aşağıdaki gibi anlatıldı: Bugünün ön (cache) bellek nasıl çalışır? Giriş 3

4 Ön belleğin iç yapısı? 4

5 Blok yapısı ve bellek adresi 5 Blok bellek ile ön bellek arasında veri transfer birimi Büyük blok boyutu avantaj oluşturur. Daha az etiket (tag) yer kaybı DRAM’dan bir defada hızlı bir şekilde büyük oranda veri transferi Geniş bus üzerinden çok miktarda veri transferi

6 Ön bellek: 4 temel tasarım sorusu? 6 Soru 1: Veri bloğu üst seviyede nereye konulabilir? Blok yerleştirme (placement) Soru 2: Aranan blok üst seviyede değilse, nasıl bulunacak? Blok tanımlama Soru 3: Miss durumunda hangi blok değiştirilecek? Üzerine yazılacak blok seçimi (blok re-placement) Soru 4: Yazma işlemi nasıl yapılacak? Yazma stratejisi

7 Soru 1: Blok yerleştirme 7 Veri bloğu üst seviyede nereye konulabilir? Ön bellek içinde önceden belirlenmiş bir yere: Direk map Adresin bir kısmı blok yerini belirlemek için kullanılır. Blok var/yok testi, ön bellek içindeki sadece bir adresteki bloğun etiketi (tag) üzerinden yapılır. Ön bellek içinde herhangi bir yere: Fully-associative Ön bellek içindeki tüm blokların etiketlerine (tag) karşılaştırma yoluyla bakılır. Sınırlı bir kümenin içinde bir yere: Set-associative Adresin bir kısmı küme (set) belirlemek için kullanılır (direk map’te olduğu gibi). Küme içindeki her bloğun etiketkerine (tag) karşılaştırma yoluyla bakılır. Bu yöntem direk-map ile fully-associative modelin bir orta karışımıdır.

8 Direk-map blok yerleştirme 8

9 Örnek: Direk-map ön belleğe erişim 9 Direk map ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim paterni (adres sırası) : 0, 8, 0, 6, 8 olsun buna göre: Erişim 1: Adres map: 0 modulo 4 = 0

10 Örnek: Direk-map ön belleğe erişim 10 Direk map ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim paterni (adres sırası) : 0, 8, 0, 6, 8 olsun buna göre: Erişim 1: Adres map: 0 modulo 4 = 0

11 Örnek: Direk-map ön belleğe erişim 11 Direk map ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim paterni (adres sırası) : 0, 8, 0, 6, 8 olsun buna göre: Erişim 2: Adres map: 8 modulo 4 = 0

12 Örnek: Direk-map ön belleğe erişim 12 Direk map ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim paterni (adres sırası) : 0, 8, 0, 6, 8 olsun buna göre: Erişim 2: Adres map: 8 modulo 4 = 0

13 Örnek: Direk-map ön belleğe erişim 13 Direk map ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim paterni (adres sırası) : 0, 8, 0, 6, 8 olsun buna göre: Erişim 3: Adres map: 0 modulo 4 = 0

14 Örnek: Direk-map ön belleğe erişim 14 Direk map ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim paterni (adres sırası) : 0, 8, 0, 6, 8 olsun buna göre: Erişim 3: Adres map: 0 modulo 4 = 0

15 Örnek: Direk-map ön belleğe erişim 15 Direk map ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim paterni (adres sırası) : 0, 8, 0, 6, 8 olsun buna göre: Erişim 4: Adres map: 6 modulo 4 = 2

16 Örnek: Direk-map ön belleğe erişim 16 Direk map ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim paterni (adres sırası) : 0, 8, 0, 6, 8 olsun buna göre: Erişim 4: Adres map: 6 modulo 4 = 2

17 Örnek: Direk-map ön belleğe erişim 17 Direk map ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim paterni (adres sırası) : 0, 8, 0, 6, 8 olsun buna göre: Erişim 5: Adres map: 8 modulo 4 = 0

18 Örnek: Direk-map ön belleğe erişim 18 Direk map ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim paterni (adres sırası) : 0, 8, 0, 6, 8 olsun buna göre: Erişim 5: Adres map: 8 modulo 4 = 0

19 Direk-map genel durum İyi tarafı: Veri hızlı olarak bulunabilir. Kötü tarafı: Ya veri erişimi hep ve şeklinde olursa? (bir patern takip ederse) Her erişim bir miss olurdu. 19

20 Direk map ön bellek yapısı 20

21 Fully-associative ön bellek Blok ön bellekte herhangi bir yere gidebilir. 21

22 Örnek: Fully-associative ön bellek 22 Fully associative ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 1: Adres: 0 NOT: Blok yerleştirme kuralı “LRU: Least recently used” olsun. (LRU: Yakın zamanda kullanılmayan)

23 Örnek: Fully-associative ön bellek 23 Fully associative ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 1: Adres: 0

24 Örnek: Fully-associative ön bellek 24 Fully associative ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 2: Adres: 8

25 Örnek: Fully-associative ön bellek 25 Fully associative ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 2: Adres: 8

26 Örnek: Fully-associative ön bellek 26 Fully associative ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 3: Adres: 0

27 Örnek: Fully-associative ön bellek 27 Fully associative ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 3: Adres: 0

28 Örnek: Fully-associative ön bellek 28 Fully associative ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 4: Adres: 6

29 Örnek: Fully-associative ön bellek 29 Fully associative ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 4: Adres: 6

30 Örnek: Fully-associative ön bellek 30 Fully associative ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 5: Adres: 8

31 Örnek: Fully-associative ön bellek 31 Fully associative ön bellek 4 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 5: Adres: 8

32 Fully-associative ön bellek: özet 32 Blok yerleştirmede hiçbir adresleme (map) kısıtı yok. Örnek: 1 set, 8 blok FA ön bellek Avantaj: İhtiyaç duyulan verinin kaldırılma ihtimali düşük Dezavantaj: Hit/miss için tüm ön bellek taranmalı

33 3. sorunun cevabı: Yeni gelen bir blok olduğunda, her yer dolu ise; yer açmak için hangi blok atılacak? 1. Random 2. LRU: Least recently used (yakın zamanda kullanılmayan) Ön belleğin LRU durumu her erişimde güncellenmeli Gerçekleme ancak çok küçük sayıda kümeler için mümkün (örneğin 2) Sözde LRU gerçeklemeleri 4, 5 kümeler için yapılabilir 3. FIFO: First in first out (ilk gelen ilk çıkar) Yüksek oranda blok bulunduran (highly associative) ön belleklerde kullanılır. Round-Robin gibi. 4. NLRU: Not least recently used, most recently used (yakın zamanda kullanılan) Fully-associative veri yerleştirme 33

34 Fully associative ön bellek yapısı 34

35 Set-associative ön bellek Blok ön bellekte bir küme içinde herhangi bir yere gidebilir. Küme seçimi direk map yöntemi ile yapılır. 35

36 Örnek: Set-associative ön bellek 36 2 kümeli associative ön bellek 2 kümeli her kümede 1 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 1: Adres: 0, mapping: 0 mod 2

37 Örnek: Set-associative ön bellek 37 2 kümeli associative ön bellek 2 kümeli her kümede 1 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 1: Adres: 0, mapping: 0 mod 2

38 Örnek: Set-associative ön bellek 38 2 kümeli associative ön bellek 2 kümeli her kümede 1 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 2: Adres: 8, mapping: 8 mod 2

39 Örnek: Set-associative ön bellek 39 2 kümeli associative ön bellek 2 kümeli her kümede 1 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 2: Adres: 8, mapping: 8 mod 2

40 Örnek: Set-associative ön bellek 40 2 kümeli associative ön bellek 2 kümeli her kümede 1 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 3: Adres: 0, mapping: 0 mod 2

41 Örnek: Set-associative ön bellek 41 2 kümeli associative ön bellek 2 kümeli her kümede 1 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 3: Adres: 0, mapping: 0 mod 2

42 Örnek: Set-associative ön bellek 42 2 kümeli associative ön bellek 2 kümeli her kümede 1 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 4: Adres: 6, mapping: 6 mod 2

43 Örnek: Set-associative ön bellek 43 2 kümeli associative ön bellek 2 kümeli her kümede 1 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 4: Adres: 6, mapping: 6 mod 2

44 Örnek: Set-associative ön bellek 44 2 kümeli associative ön bellek 2 kümeli her kümede 1 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 5: Adres: 8, mapping: 8 mod 2

45 Örnek: Set-associative ön bellek 45 2 kümeli associative ön bellek 2 kümeli her kümede 1 adet 1 word (4 Byte) blok içersin. Erişim adres sırası: 0, 8, 0, 6, 8 olsun buna göre: Erişim 5: Adres: 8, mapping: 8 mod 2

46 Blok yerleştirmede maping var. Küme içinde associative yöntemler kullanılabilir. Örnek: 4 set 2-way, toplam 8 blok SA ön bellek Avantaj: Blok bulması kolay ve her zaman üstüne yazması gerekmiyor Dezavantaj: Hit/miss için küme içinde arama yapılmalı Set-associative ön bellek: özet 46

47 Set associative ön bellek yapısı 47


"Doç.Dr. Ahmet ÖZMEN Sakarya Üniversitesi Bilgisayar Mühendisliği Bölümü." indir ppt

Benzer bir sunumlar


Google Reklamları