BİLGİSAYAR MİMARİLERİ 5.Hafta: Bellek Hiyerarşisi-3

Slides:



Advertisements
Benzer bir sunumlar
Bilgi Teknolojisinin Temel Kavramları
Advertisements

X86 Assembly Programlama Dilinde
İşlemci Zaman Planlaması
BİLGİSAYAR NEDİR?.
Bilgi Teknolojisinin Temel Kavramları
CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı
Numbers of Opcodes Nihal Güngör.
Bellek Yönetimi Process H 2 KB
İşletim Sistemi.
Bölüm 1: Introductions (Tanıtım,Tanım)
İleri Mikroişlemci Özellikleri
Bellek Yönetimi.
MİMARİ ESASLAR Bir bilgisayarın komut kümesi, programcının makineyi programlarken kullanabileceği ilkel emirleri veya makine komutlarının tamamının oluşturduğu.
Dağıtık Ortak Hafızalı Çoklu Mikroişlemcilere Sahip Optik Tabanlı Mimari Üzerinde Dizin Protokollerinin Başarım Çözümlemesi I. Ulusal Yüksek Başarım ve.
RAID Nedir?.
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
CPU (Merkezi İşlem Ünitesi)
BÖLÜM 2: BİLGİSAYAR SİSTEM YAPILARI
CEIT 101 Teorik Emrah Soykan - Konu 2 -.
CEIT 101 Teorik Vasfi Tuğun - Konu 2 -.
BUYRUK İşlem kodu İşlemci yazacı veri
Görsel C# ile Windows Programlama
Bilgisayar Programlama
Register ve Türleri Nihal GÜNGÖR.
Temel Bilgisayar Yapısı ve Devreleri
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
İŞLEMCİ MİMARİLERİ – Derya Işık
Ümran Onay.
Bilişim Teknolojileri Öğretmeni İsmail ÖZTÜRK
Temel Bilgisayar Yapısı ve Devreleri
Bilgisayar, Yazılım ve Algoritma
Makine Öğrenmesinde Yeni Problemler
İŞLEM BİRİMLERİ RAM İŞLEMCİ Örnek: ANAKART
CACHE MEMORY Ersin ERSOY
Bilgi Teknolojisinin Temel Kavramları
BİLGİSAYAR DONANIMI Hazırlayan: Emre ŞENTÜRK ( )
Algoritmalar ve Programlama I Ders 2: Akış Diyagramları
Ölümcül Kilitlenme (Deadlock)
Bilgi Teknolojisinin Temel Kavramları
BİLGİSAYAR MİMARİLERİ 12.Hafta: Çok İşlemcili Sistemler
BİLGİSAYAR MİMARİLERİ 4.Hafta: Bellek Hiyerarşisi-2
BELLEK YÖNETİMİ Memory Management
BİLGİSAYAR MİMARİLERİ 1.Hafta: Bilgisayar Mimarisine Giriş
BİLGİSAYAR MİMARİLERİ 2.Hafta: Bilgisayar Bileşenleri
BİLGİSAYAR MİMARİLERİ 6.Hafta: Sanal Bellek
BİLGİSAYAR MİMARİLERİ 7.Hafta: Çoklu-Çevrim İşlemci
BİLGİSAYAR MİMARİLERİ 3.Hafta: Bellek Hiyerarşisi-1
ENDÜSTRİYEL GÖMÜLÜ BİLGİSAYAR SİSTEMLERİ
BİLGİSAYAR MİMARİLERİ 11.Hafta: Pipeline Sorunları
BİLGİSAYAR MİMARİLERİ 13
BİLGİSAYAR MİMARİLERİ 10.Hafta: Pipeline İşlemci
Ders 2 Algoritma İfade Şekilleri
İŞLETİM SİSTEMLERİ ISE 206 DR. TUĞRUL TAŞCI. Dersin Amacı Bilgisayar sistemlerinin temel organizasyonunu tanımak İşletim sistemlerinin ana bileşenlerini.
İŞLEMCİLER İŞLEMCİLER.
Makine Öğrenmesinde Yeni Problemler YILDIZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ.
Bilgisayar Mühendisliğine Giriş
GPU Önbelleklerinde Yerelliğe Bağlı Dinamik Yazma Politikası
BİLGİSAYAR NEDİR?.
Anakartın Temel Bileşenleri
Mikrobilgisayar Tasarım Yapıları
Turgutlu Meslek Yüksek Okulu Bilgisayar Programcılığı
MALTEPE ÜNİVERSİTESİ Paralel Hesaplama MATLAB ve Paralel Hesaplama
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemciler Giriş.
Makine Öğrenmesinde Yeni Problemler
İşletim Sistemleri (Operating Systems)
Mikrobilgisayar Tasarım Yapıları
DERS 14 PIC 16F84 ile EEPROM VERİ BELLEĞİ KULLANIMI
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
Önbellek Hafızalar BIL-304: Bilgisayar Mimarisi
Sunum transkripti:

BİLGİSAYAR MİMARİLERİ 5.Hafta: Bellek Hiyerarşisi-3 Doç.Dr. Ahmet ÖZMEN Sakarya Üniversitesi Bilgisayar Mühendisliği Bölümü

Ders Planı Özet (Ön bellek ile ilgili 4 temel soru) Blok tanımlama Blok yerleştirme (replacement) Blok yazma politikası Ön bellek miss sebeplerinin sınıflandırılması AMAT hesabı Örnekler

Özet 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

Blok tanımlama Her blok bellekte konumunu belirleyen bir adres etiketi “tag” barındırır. Aranılan adres içindeki kısım ile etiket eşleşirse “hit” oluşur. Karşılaştırma donanımda yapılır. Ön bellek bloğu tamamen boş ise ne olacak? Bu durum “valid bit” ile belirlenir (blok boşsa 0)

Blok tanımlama (devam) Set associative: Associativity artarsa index için ayrılan bit sayısı azalır, “tag” artar Associative ön bellek: Index yok, “tag” = “blok adres”

Direk-map ön bellek tasarımı

Direk-map ön bellek tasarımı

Set-asociative ön bellek tasarımı Temel fikir: Ön belleği kümelere ayır Blok set içinde herhangi bir yerde olabilir Avantaj: Yüksek hit oranı Dezavantaj: Fazla “tag” biti Fazla donanım Yüksek erişim süresi

Fully associative ön bellek tasarımı Temel fikir: Küme boyutu 1 blok. Her blok için bir karşılaştırıcı devre gerekiyor Adres kod çözücü yok Aşırı derecede donanım gerektirdiği için, pratik olarak sadece küçük ön-belleklerde kullanılabilir

Ön bellek içindeki bit’lerin miktarı 32 bitlik zahiri adres olduğunu düşünelim. 64 Kbyte veri tutabilecek bir direk-map ön bellek ve bir word blok boyutu verildiğinde, toplam kaç bitlik bellek gerekirdi. Aynı ön bellek eğer 4-way set associative ön bellek olarak tasarlanmak istenseydi, toplamda kaç bitlik bir belleğe ihtiyaç olurdu? Her bir blok içinde 8-word barındıran 64 Kbyte’lık direk-map bir ön bellek için (32 bitlik zahiri adres ) toplam kaç bitlik bir bellek gerekirdi?

Ön bellek içindeki bit’lerin miktarı 1. Soru: 2. Soru:

Ön bellek içindeki bit’lerin miktarı 3. Soru: Associativity artarsa => ön bellekteki bit sayısı artar Blok boyutu artarsa => ön bellekteki bit sayısı azalır

Blok replacement (tekrar) Miss durumunda veri ana bellekten okunması gerekiyor Yeni gelen veri nereye konmalı? Direk map ön bellek: sabit bir bölgeye gidiyor (hep aynı yere) Set-associative, fully associative: Küme içinde herhangi bir yere Optimal algoritma: Gelecekte ihtiyaç olmayacak veriyi kaldır (geleceği bilmek gerekiyor!) LRU: Yakın zamanda kullanılmayanı kaldır (gerçeklenmesi zor!) FIFO: Önce gelen, önce gider (kümeyi dairesel bir kuyruk gibi düşünmek ve kuyruğun en önündekini atmak) Random: Rastgele seçim (en kolay gerçeklenebilir yöntem)

Yazma stratejisi Yazma durumunda ne olacak? Özel durumlar: Write through: Belleğe yaz, iş bitinceye kadar işlemciyi beklet. Write buffer: Yazılacak veriyi bir buffer’a koy. CPU bekleme yapmadan işine devam edebilir Write back: Belleğe yazma işini, blok ön bellekten kaldırılıncaya (replace) kadar geciktir. Özel durumlar: DMA kullanılıyorsa, Çoklu işlemcili sistemlerde birçok ön bellek arasında “tutarlılığın” sağlanması.

Yazma stratejisi (write-through) CPU tarafından yazma komutu icra edildiğinde; hem ön bellek ve hem de ana bellek güncellenir Ana bellek ile ön-bellek daima tutarlı WT stratejisinde genelde write-buffer kullanılır, bu şekilde alt seviye bellek (ana bellek) beklenmez.

Write back İşlemci tarafından yazmalar, sadece ön bellek satırını günceller Güncellenen satır sadece ön-bellekten kaldırılması gerektiği zaman (yeni gelen için yer arandığında seçilenin bu olması durumunda) bir alt düzey belleğe yazılır. Her satır için «dirty bit» olması gerekir, öyle ki; blok modifiye edildiğinde set edilmeli Böylece ön-bellek satırının güncel olmadığı anlaşılır Bellek her zaman güncel değil Tekrarlanan yazmaların her seferinde alt seviyeye yazılması gerekmiyor

Store miss Write allocate: No-write allocate: Yazılacak blok ön belleğe getirilir Bloktaki word güncellenir Blok gelecekte de kullanılabilir No-write allocate: Ana bellek güncellenir Ön bellek güncellenmez, kopya varsa iptal edilir

Ön bellek temelleri (özet, tekrar) Ön bellek: CPU ile ana bellek arasında geçici bellek katmanıdır. Zamanda lokallik prensibinden hareketle toplam bellek erişimini hızlandırır Ön bellek kümelere bölünmüştür; her küme içinde ana bellekteki verilerin bir kısmını barındırır Ön bellek parametreleri: Ön bellek boyutu, blok boyutu, associativity 3 tür ön bellek (w/n blok): Direk map: n küme, her kümede 1 blok var Fully associative: 1 küme, bu kümede n adet blok var Set associative: n/m küme, her kümede m blok var

Ön bellek temelleri (özet, tekrar)

Ön bellek performansının arttırılması Ön belleğin ve bellek erişim performansının arttırılması: Ön bellek performansı: 1. Miss oranın azaltılması ile, 2. Miss cezasının azaltılması ile veya, 3. Hit zamanın azaltılması ile; arttırılabilir.

Miss’lerin sınıflandırılması Zorunlu (compulsory): Ön belleğe ilk erişimde blok yoktur ve getirilmek zorundadır. Buna «cold start misses» de denir. Bellek boyutu sonsuz bile olsa, bu tür miss olur Kapasite: Program icrası sırasında ihtiyaç duyulan tüm blokları ön-bellek barındıramıyorsa oluşan miss’lere «kapasite miss» denir. Çakışma (conflict): Eğer blok yerleştirme algoritması direk-map ya da set-associative ise (zorunlu ve kapasite miss’lerinin yanında bir de) çakışma miss’leri oluşur.

3 miss sebebi

3 miss sebebi (%100 içinde)

Miss oranı nasıl azaltılır? 3 C’ler: Compulsory, capacity, conflict Tüm durumlarda ön bellek boyutu değişmesin Aşağıdaki durumları değerlendirelim: Blok boyutu değiştirilirse: Hangi «C» bu durumdan etkilenir? Associativity değiştirilirse: Derleyici değiştirilirse:

1. Blok boyutu değiştirilirse? Lokallik prensibinden; daha büyük blok, kullanılacak kısımları bulundurma şansını arttırır.

1 Blok boyutu değiştirilirse? Blok boyutunun arttırılması miss oranını azaltır: Yerllik (lokallik) avantajı artıyor Zorunlu (Compulsary) misleri azaltıyor Ancak; Miss cezası artabilir (daha çok veri getirilmeli) Hit zamanı artabilir (ön bellekten daha fazla veri okunmalı ve büyük mux kullanılmalı) Conflict miss’ler nedeniyle toplam miss oranı artabilir Blok boyutunun arttırılması yardım edebilir fakat abartılmamalıdır. Blok boyutunun arttırılması genelde miss oranını azaltır, fakat miss cezası artar

2 Yüksek associativity Associativity’nin arttırılması çakışma (conflict) miss’lerinin azalmasına yardımcı olur. 2:1 kuralı: N boyutundaki direk-map ön belleğin miss oranı, yaklaşık yarı boyuttaki 2-way set associative ön belleğin miss oranına eşittir. Örneğin; 32 Kbyte direk map bir önbelleğin miss oranı, yaklaşık 16 Kbyte 2-way set associative ön belleğin miss oranına eşittir. Yüksek associativitenin dezavantajları: Çok fazla sayıda karşılaştırma yapılması gerekli N to 1 mux gerekli Hit zamanını arttırabilir

AMAT vs Associativity Kırmızı yerlerde associativity ile AMAT iyileşmemiş

Multilevel ön bellek Eğer direk-map bir ön bellek %95 hit oranına sahipse ve hit zamanı 4 ns, miss cezası ise 100 ns ise AMAT nedir? AMAT = Hit time + miss oranı X miss cezası = 4 + 0.05 x 100 = 9 ns. Eğer, hit zamanı 20 ns olan ve hit oranı %50 olan bir L2 ön bellek ilave edilse, yeni AMAT ne olur? AMAT = Hit zamanıL1 + miss oranıL1 X (Hit zamanıL2+miss oranıL2 X miss cezasıL2) = 4 + 0.05 X (20 + 0.5 X 100) = 7.5 ns

Örnek: Hit zamanı 5 ns ve miss cezası 100 ns olan ön bellek 2-way set associative olsun. Hit oranı %97 olduğuna göre AMAT ? AMAT = Hit zamanı + miss oranı X miss cezası = 5 + 0.03 X 100 = 8 ns. Bir işlemci 200 MHz ‘de çalışıyor (5 ns saat çevrim süresi) ve ideal CPI = 1.1 olsun (hiç miss olmadığı zaman). Komutların dağılımı (instruction mix): %50 ALU, %30 ld/st, %20 kontrol (dallanma) buna göre, %10 bellek verileri 50 çevrim miss cezası alıyor, Komutların %1’i aynı miss cezasını alıyor kabul edin. Buna göre AMAT?

Örnek: CPI = ideal CPI + ortalama komut başına stalls (boş çevrimler) CPI = 1.1 (cycle/inst) + [0.30(veriBellekKomut) X 0.10 (miss/veriBellekKomut) X 50 (çevrim/miss)] + [ 1 (komutBellek/komut) X 0.01 (miss / komutBellekKomut) X 50 (çevrim/miss)] = = (1.1 + 1.5 + 0.5) = 3.1 çevrim/komut AMAT = (1/1.3) X [1 + 0.01 X 50] + (0.3/1.3) X [1+0.1X50] = 2.54

Tümleşik & Ayrık ön bellek Örnek: 16 Kb I&D: ins. miss oranı = %0,64, data miss oranı = %6.47 32 Kb tümleşik, miss rate = %1.99 L2 görmezden gelinirse hangisi daha iyidir? %33 data işlemi olsun => %75 erişimkomutlardan (1.0 /1.33) Hit zamanı = 1, miss cezası = 50 Not: tümleşik ön bellek için data hit 1 stall (sadece tek portu var)

Tümleşik & Ayrık ön bellek