Bilgisayar Mimarisi İç Bellek Mimarisi İşlemci-Bellek Arabağlantısı MİB Ana Bellek MAR 0 ... MBR 1 komut 2 komut AC Ön Bellek PC komut ... IR veri G/Ç Modül veri veri MİB = Merkezi İşlem Birimi AC = Akümlatör PC = Program Sayacı IR = Komut Kaydedicisi MAR = Bellek Adres Kaydedicisi MBR = Ara Bellek Kaydedicisi n buffers disk 1 Giriş Belleği, adres bitleri sayısıyla limitlenmiş, wordlerden oluşan bir dizi olarak düşünebiliriz. maliyet • hız • boyut • güç tüketimi • volatility • etc. Bunların dışında bellek dizaynını etkileyecek başka ne gibi konular düşünülebilir? Bilgisayar Ana Bellek Sistem – Genel Bakış Bilgisayar Ana Bellek Sistemine Ait Anahtar Karakteristikler Yer MİB Dahili(ana, birincil) Harici(ikincil) Kapasite Kelime büyüklüğü Kelime sayısı Veri İletim Birimi Kelime Blok Erişim Yöntemi Sıralı Erişim Doğrudan Erişim Rastgele Erişim İlişkilendirilebilir Erişim Başarım Erişim Zamanı Çevrim Zamanı İletim hızı Fiziksel Tip Yarı iletken Manyetik yüzey Fiziksel Karakteristikler Volatile/nonvolatile Silinebilir/Silinemez Organizasyon Bellek Hiyerarşisi 2 Karakteristikler - devam Kapasite: Byte veya kelime cinsinden ifade edilir. Kelime (Word): Bellek organizasyonunun doğal birimidir. VAX Makinelerinde 32-bitlik kelimeye sahipken, Cray-1’ler 64 bitlik kelimeye sahiptirler. Adreslenebilir birim sayısı: Eğer adres bilgisi A bit uzunluğunda ise adreslenebilir birim sayısı en fazla 2A olur Veri iletim birimi: Ana belleğe yazılan veya ana bellekten okunan bit sayısıdır. Erişim yöntemi: Sıralı, Doğrudan, Rastgele ve İlişkilendirilebilir Karakteristikler - devam Başarın Ölçütleri: Erişim Zamanı: rastgele erişimli bellekler için okuma veya yazma işlemini gerçekleştirmek için gerekli zamandır; bu zaman, bellekte erişilecek adresin adres yoluna konulmasından erişimi yapılan belleğe anlık veri saklanması veya o adresteki bellekten anlık veri okunması için geçen süredir. Bellek çevrim zamanı: RAM’e uygulanabilen bir kavramdır. Birim bilgiye (bellek bölgesine) erişmek ve ikinci erişimin başlatılmasından önce, geçiş için gerekli ek süreyi kapsar. Veri iletim hızı: Bellek birimine ve bellek biriminden veri iletimi gerçekleştirmek için ihtiyaç olan süredir. RAM için, 1/(çevrim süresi) olarak formülize edilir. 3 Bazı Bellek Özellikleri Sembol w m s b 2m 2mxs Tanım Intel 8088 MİB Kelime Büyüklüğü 16bits Mantıksal Bellek Adresindeki bit Sayısı 20 bits En küçük adreslenebilir birimdeki bit sayısı 8 Veri yolu büyüklüğü 8 Bellek kelime kapasitesi 2 20 Bellek bit kapasitesi 220x8 Intel 8086 IBM/Moto. 601 16bits 64 bits 20 bits 32 bits 8 8 16 64 220 232 20 2 x8 232x8 Bellek Hiyerarşisi - Diagram 4 Bellek Hiyerarşisi Birçok bellek teknolojisi için aşağıdaki kurallar geçerlidir: - Daha küçük erişim zamanı, bit başına maliyet artar - Daha büyük kapasite, bit başına maliyette düşüş - Daha büyük kapasite, daha büyük erişim zamanı Bellek hiyerarşisinde aşağı doğru gidildikçe: a. Bit başına maliyet azalır b. Kapasite artar c. Erişim zamanı artar d. MİB tarafından erişim sıklığı azalır Big-Endian ve Little-Endian Depolama En küçük adreslenebilir birimden daha büyük boyutu olan bir kelimeye sahip veri tipleri belleğe depolandığında şu sorular oluşur; “Kelimenin en düşük mertebeli kısmı mı daha düşük adrese depolanır (little Endian, little end first) veya Kelimenin en yüksek mertebeli kısmı mı daha düşük adrese depolanır (big Endian, big end first)”? Örnek: The hexadecimal 16-bit sayıABCDH, saklansın 1 0 msb AB Little Endian AB CD ... lsb CD Big Endian 1 0 CD AB 5 Yarı İletken Bellekler RAM Tüm yarı iletken bellekler hatalı olarak RAM diye isimlendirilirler. Okuma/yazma yapılabilir. Enerjisi kesildiğinde sakladığı veriler silinir. (Volatile) Geçici saklama birimidir Statik veya dinamik olabilir Dinamik RAM Bitler kapasitörlerde yük olarak saklanır Yük boşalabilir Enerji verildiğinde dahi tazelemeye gerek vardır. Tazeleme devrelerine ihtiyaç duyar. Yapımı kolaydır Bit başına küçüktür Daha az pahalıdır Yavaştır Ana bellek Esasen analogtur Yük seviyesi değeri belirler 6 Statik RAM Bitler aç/kapa anahtarlar şeklinde saklanır. Yük boşalması söz konusu değildir. Güç verildiğinde tazelemeye ihtiyaç duymaz Tazeleme devrelerine ihtiyaç duymaz Oldukça karmaşık yapıdadırlar Fiziksel boyut olarak bit başına daha büyük boyutludur Daha pahalıdır Daha hızlıdır Ön bellek Sayısal devreler Flip-floplar kullanırlar SRAM ve DRAM Karşılaştırması Har ikisi de volatil’dir Veriyi tutabilmek için güce ihtiyaç vardır Statik Hücre Daha hızlı Ön bellek Dinamik hücre Yapımı kolay, daha küçük Daha yoğundur Daha az pahalıdır Tazelemeye ihtiyaç vardır Daha yüksek kapasitede birimler 7 Salt Okunur Bellekler Read Only Memory (ROM) Kalıcı saklama birimleridir. Enerji kesildiğinde sakladığı veriler kaybolmaz. (Nonvolatile) Mikroprogramlamaları Kütüphane altprogramları Sistem programları (BIOS) Fonksiyon tabloları Gibi programları saklamak amacıyla kullanılır. ROM Tipleri Üretim aşamasında yazılanlar Küçük yürütmeler için oldukça pahalıdır. Programlanabilri bellek (birkez) PROM Programlamak için özel ekipmanlara ihtiyaç duyar. Daha çok okunan Silinebilir Programlanabilir(EPROM) UV ile silinebilir Elektriksel silinebilir. (EEPROM) Yazma için okumadan daha uzun sürer Flash bellek Tüm bellek elektriksel olarak silinebilir. 8 Yarı İletken Bellek Tipleri – Özet Bilgisayar Mimarisi Ön Bellek (Cache memory) 9 BELLEKLER YAZMAÇ ÖN BELLEK ANA BELLEK DİSK ÖN BELLEĞİ DİSK HIZ MALİYET KAPASİTE Önbellek İşlemci İkincil Bellek Bellek ÖNBELLEK GÖRÜNTÜ BELLEK 10 Önbellek Küçük boyutlu hızlı bir bellektir. Ana bellek ve MİB arasında yeralır. MİB çipi veya ayrı bir modül üzerinde bulunabilir. MİB önce önbelleğe erişir ve aradığı veri yoksa ana belleğe erişir. Eğer aranan veri ana bellekte ise içinde bulunduğu blok ile birlikte alınarak Önbelleğe ve MİB’ne aktarılır. Önbellek MİB MİB ile Önbellek arasında kelime transferi Ana bellek ile önbellek arasında ise kelimenin bulunduğu bloğun transferi söz konusudur. Blok Transfer Kelime Transfer Önbellek Ana Bellek 11 • • • • • • • • • • Line Number: Hat numarası: Önbellekteki yuva (slot) numarası Tag: Etiket: Bloktaki verilerin anabellekteki adreslerinin bulunmasında kullanılan bilgi. Block: Blok: Ana bellekte ardışıl olarak bulunan K adet kelime. Word: Kelime: Ana bellekteki herbir satıra karşılık gelir. K words: K kelime: Ana bellekteki K adet satıra karşılık gelir. Word length: Kelime uzunluğu 8-bit, 16-bit v.s. Block length: Blok uzunluğu: K adet kelimeden oluşan bloğun uzunluğu. Memory address: Bellek adresi: n adres hattına sahip bellekte 2n adet satır bulunmaktadır. Adre snumaraları 0 ile 2n -1 arasında değişir. Main memory: Ana Bellek. Cache memory: Önbellek Önbellek İşlemci Adres Bilgileri Denetim Birimi Veriler Ana Bellek 12 Önbellek Ölçütleri Hit oranı: program parçasının önbellekte bulunması Miss oranı= 1 - Hit Oranı: program parçasının önbellekte bulunmaması Hit zamanı (tönbellek): önbelleğe erişim zamanı Miss cezası (tanabellek): önbellekte bulunmayan bloğun değiştirilmesi için harcanan zaman. Erişim zamanı: önbellekte bulunmayan bloğa anabellekte erişim zamanı. Transfer zamanı: Blok transferi geçen zaman Ortalama bellek erişim zamanı = Hit süresi + Miss oranı x Miss cezası Önbellek Tasarım Bileşenleri İçeriklerine Göre Birleşik (Unified): Komut ve veriler birlikte önbelleklenir. Hit oranı yüksektir. Komut ve veri arasındaki getirme (fetch) yoğunluğuna göre kendini günceller. Tek önbellek olduğu için kolay meydana getirilir. 13 Önbellek Tasarım Bileşenleri İçeriklerine Göre Bölünmüş (Split): Komut ve veriler birbirinden ayrı olarak önbelleklenir. Bölünmüş önbelleğin en önemli avantajı, komut döngüsünde (instruction cycle) komut getir/çöz birimi (instruction fetch/decode unit) ile çalıştırma (execution) birimi bağımsız yapar. Ardışık düzen çalışma (Pipeline) için önemlidir. L1 önbellek bölünmüş, L2 önbellek birleşik yapıdadırlar. Önbellek Tasarım Bileşenleri Yazma Yöntemine Göre Doğrudan Yazma (WriteThrough) Geriplanda yazma (Writeback/CopyBack) 14 Önbellek Tasarım Bileşenleri Yazma Yöntemine Göre Doğrudan yazma: Veri hem önbellekteki bloğa hem de ana belleğe aynı anda yazılır. Geri planda yazma: Veri sadece önbellekteki bloğa yazılır. İçeriği değişen önbellek (güncellenen önbellek) ait olduğu blok anabelekteki başka bir bellek ile yerdeğiştireceği zaman ana belleğe yazılır. Bloğun yazılıp yazılmayacağı bloktaki GÜNCELLEME (update) biti kullanımıyla belirlenir. Önbellek Tasarım Bileşenleri Yazma Yöntemine Göre Avantaj ve Dezavantajlar: Doğrudan yazma Okuma esnasında önbellekte bulunmama (read miss) belleğe yazma işlemini etkilemez. Gerçeklemesi kolaydır Ana belleğe yazarkenki gecikmeyi engellemek için her zaman yazma tampon bellekleri ile birleştirilerek kullanılırlar. Geri planda yazma Düşük bellek trafiği Yazma işlemleri önbellek hızında gerçekleşir. 15 Doğrudan Yazma Önbellek (WriteThrough Cache) Veriler önbellekte bulunuyorsa okuma (Read hit) İşlemci Adres Bilgileri Veriler Ana Bellek Denetim Birimi İstenen program/veri bloğu önbellekte ise okuma yapılır. Doğrudan Yazma Önbellek (WriteThrough Cache) Veriler önbellekte bulunmuyorsa (Read miss) İşlemci Adres Bilgileri Denetim Birimi Veriler Ana Bellek İstenen blok önbellekte değilse ana belllekten önbelleğe getirilir ve okuma yapılır. 16 Doğrudan Yazma Önbellek (WriteThrough Cache) Veriler önbellekte bulunuyorsa (Write hit) İşlemci Adres Bilgileri Veriler Ana Bellek Denetim Birimi Tüm yazma işlemlerinde önbelleğe yazma ile aynı anda ana belleğe yazma yapılır. Gereksiz ana bellek yazma işlemi oranı yüksektir. Doğrudan Yazma Önbellek (WriteThrough Cache) Veriler önbellekte bulunmuyorsa (Write miss) İşlemci Adres Bilgileri Denetim Birimi Veriler Ana Bellek Yazılacak veri önbellekte yoksa doğrudan ana belleğe yazma yapılır. 17 Geri Planda Yazma (Write Back Cache) Veriler önbellekte bulunuyorsa okuma (Read hit) İşlemci Adres Bilgileri Veriler Ana Bellek Denetim Birimi Geri Planda Yazma (Write Back Cache) Veriler önbellekte bulunmuyorsa okuma (Read miss) İşlemci Adres Bilgileri Denetim Birimi Veriler Ana Bellek 18 Geri Planda Yazma (Write Back Cache) Veriler önbellekte bulunuyorsa (Write hit) İşlemci Adres Bilgileri Veriler Ana Bellek Denetim Birimi Veri güncellemeleri önbellekte gerçekleşir. Bir güncelleme olduğunda ilgili verinin bulunduğu yuvada (slot) bulunan güncelleme (UPDATE) biti 1 (set) yapılır. Sadece güncelleme biti 1 olan bloklar ana belleğe yazılır. Gereksiz bellek erişimi ortadan kalkar. Geri Planda Yazma (Write Back Cache) Veriler önbellekte bulunmuyorsa (Write miss) İşlemci Adres Bilgileri Denetim Birimi Veriler Ana Bellek 19 Erişim Yöntemine – Eşleştirme Fonksiyonuna Göre Önbellekteki satır sayısı ana bellekten çok az olduğu için eşleştirme fonksiyonu kullanılarak aktarma yapılır. Eşleştirme fonksiyonu (Mapping function) hafızadaki bir bloğun önbelleğe nasıl yerleştirileceğini belirler. Önbellek Tasarım Bileşenleri Erişim Yöntemine – Eşleştirme Fonksiyonuna Göre Kullanılan üç eşleştirme tekniği bulunmaktadır: Doğrudan Eşleştirme Tam Çağrışımlı Eşleştirme (Direct Mapping Cache) (Fully Associative Cache) Kümeli Çağrışımlı Eşleştirme (Set Associative Cache) 20 Önbellek Tasarım Bileşenleri Erişim Yöntemine – Eşleştirme Fonksiyonuna Göre Doğrudan Eşleştirme Tam Çağrışımlı Eşleştirme Her bir bloğun önbellekte bulunabileceği sadece bir yuva (slot) mevcuttur. Her bir blok önbellekte herhangi bir yuvada bulunabilir. Küme Çağrışımlı Eşleştirme Her bir blok önbellekte sınırlı yuva kümesi içinde bulunabilir. Eğer bir kümede n blok varsa; n-yollu küme çağrışımlı eşleştirme olarak isimlendirilir. Doğrudan Eşleştirme • Blok 0, 128, 256, … 8064 Yuva 0 ile • Blok 1, 129, 257, … 8065 Yuva 1 ile • Blok 127, 255, …8191 Yuva 128 ile eşleştirilir. •Aynı önbellek yuvasında aynı etiket değerine sahip iki ana bellek bloğu bulunamaz. •Önbellek içeriği yuva numarası ve etiket değeri kontrol edilerek bulunur. •Blok 0, 128, 256, …8064 bloklarına ait etiket değerleri 0, 1, 2, …,63 olmaktadır. Ana Bellek Blok 0 Blok 1 Önbellek Blok (K kelime) Blok 127 Blok 128 Blok 129 Yuva 0 Yuva 1 Yuva 2 Blok 8190 Blok 8191 Yuva 125 Yuva 126 Yuva 127 Yuva Büyüklüğü Blok+Etiket Uzunluğu ( K kelime=70 bit) 21 Doğrudan Eşleştirme AvantajDezavantaj Basit Ucuz Ana bellekte verilen bir blok için sabit bir önbellek yuvasının mevcut olması Eğer program tarafından aynı yuvaya eşleştirilmiş 2 bloğa tekrar tekrar erişilmek istenirse önbellek miss oranı çok yüksek olmaktadır. Tam Çağrışımlı Eşleştirme Doğrudan eşleştirmedeki bir bloğun sadece tek yuvaya eşleştirilmesi dezavantajı ortadan kaldırılır. Bir blok önbellekte istenilen yuvaya eşleştirilir. Aranan bilginin önbellekte olup olmadığı tüm yuvalarda eşzamanlı kontrol edilir. Hafızadan alınan bloğun önbellekte hangi yuvaya yazılacağı yerine koyma (replacement) algoritmasıyla belirlenir. 22 Tam Çağrışımlı Eşleştirme Ana Bellek Blok 0 Blok 1 Blok (K kelime) Blok j Önbellek Yuva 0 Yuva 1 Blok 8190 Blok 8191 Yuva 125 Yuva 126 Yuva 127 Yuva Büyüklüğü Blok+Etiket Uzunluğu ( K kelime=77 bit) Tam Çağrışımlı Eşleştirme Avantaj-Dezavantaj Yapısı karmaşıktır. Bir blok uygun olan bir satıra yazılabilir. Önbellekte eşzamanlı arama hızı düşüktür. 23 Kümeli Çağrışımlı Eşleştirme Doğrudan ve tam çağrışımlı eşleştirme birleşimidir. Önbellek belirli sayıda kümeden oluşur. Her küme kendi içinde tam çağrışımlı yapıdadır ve hafızadan alınan bloğun kümede hangi satıra yazılacağı yerine koyma (replacement) algoritmasıyla belirlenir. Kümeli Çağrışımlı Eşleştirme Ana Bellek Blok 0 Blok 1 Blok (K kelime) Önbellek Blok 63 Blok 64 Blok 65 Küme 0 Küme 1 Yuva 0 Yuva 2 Yuva 1 Yuva 3 Küme 63 Yuva 126 Yuva 127 Yuva Büyüklüğü Blok+Etiket Uzunluğu ( K kelime=71 bit) Blok 8190 Blok 8191 24 Kğmeli Çağrışımlı Eşleştirme Avantaj-Dezavantaj Yapısı doğrudan eşleştirmeye göre karmaşıktır. Bir blok sadece kendisine ait bir kümedeki istenilen satıra yazılabilir. Önbellekte küme içinde eşzamanlı arama hızı düşüktür. Önbelleğe yeni gelen veriye yer açma stratejileri Yerine koyma Teknikleri Doğrudan eşleştirmede sadece bir satır seçilebildiği için yerine koyma (replacement) algoritması kullanılmaz. Tam çağrışımlı ve Kümeli çağrışımlı eşleştirme fonksiyonlarında önbellekte yazılacak satır için yerine koyma (replacement) algoritmaları kullanılır. 25 Önbelleğe yeni gelen veriye yer açma stratejileri Least recently used (LRU): En uzun süre kullanılmayan satıra yazılır. Her satır için USE field kullanılır. First in first out (FIFO): İlk gelen satıra yazılır. Least frequently used (LFU): En az kullanılan satıra yazılır. Her satır için counter kullanılır. Random: Rastgele bir satır seçilir ve o satıra yazılır. 26
© Copyright 2024 Paperzz