İç Bellek Mimarisi
Bilgisayar Mimarisi
İşlemci-Bellek Arabağlantısı
MAR MBR
PC IR
MİB Ana Bellek
G/Ç Modül
buffers
0 1 2
n
komut komut komut
...
...
veri veri veri Ön
Bellek AC
MİB = Merkezi İşlem Birimi AC = Akümlatör PC = Program Sayacı IR = Komut Kaydedicisi MAR = Bellek Adres Kaydedicisi MBR = Ara Bellek Kaydedicisi
disk
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 Başarım
MİB Erişim Zamanı
Dahili(ana, birincil) Çevrim Zamanı
Harici(ikincil) İletim hızı
Kapasite Fiziksel Tip
Kelime büyüklüğü Yarı iletken
Kelime sayısı Manyetik yüzey
Veri İletim Birimi Fiziksel Karakteristikler
Kelime Volatile/nonvolatile
Blok Silinebilir/Silinemez
Erişim Yöntemi Organizasyon
Sıralı Erişim Doğrudan Erişim Rastgele Erişim
İlişkilendirilebilir Erişim Bellek Hiyerarşisi
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
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.
Karakteristikler - devam
Bazı Bellek Özellikleri
Sembol Tanım Intel Intel IBM/Moto.
8088 8086 601
w MİB Kelime Büyüklüğü 16bits 16bits 64 bits
m Mantıksal Bellek Adresindeki bit Sayısı 20 bits 20 bits 32 bits s En küçük adreslenebilir birimdeki bit sayısı 8 8 8
b Veri yolu büyüklüğü 8 16 64
2m Bellek kelime kapasitesi 220 220 232 2mxs Bellek bit kapasitesi 220x8 220x8 232x8
Bellek Hiyerarşisi - Diagram
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
AB CD
msb ... lsb
ABCD
0 1
CDAB
0 1
Little Endian Big Endian
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
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
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
Statik Hücre
Daha hızlı
Ön bellek
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.
Yarı İletken Bellek Tipleri – Özet
Ön Bellek (Cache memory)
Bilgisayar Mimarisi
BELLEKLER
YAZMAÇ ÖN
BELLEK
ANA BELLEK
DİSK ÖN BELLEĞİ
DİSK
HIZ
KAPASİTE MALİYET
Önbellek
İşlemci
Bellek
İkincil Bellek
ÖNBELLEK GÖRÜNTÜ BELLEK
Ö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 ile Önbellek arasında kelime transferi
Ana bellek ile önbellek arasında ise kelimenin bulunduğu bloğun transferi söz konusudur.
MİB Önbellek Ana Bellek
Kelime Transfer
Blok Transfer
• 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
Ö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.
Önbellek Tasarım Bileşenleri
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.
İçeriklerine Göre
Yazma Yöntemine Göre
Doğrudan Yazma (WriteThrough)
Geriplanda yazma (Writeback/CopyBack)
Önbellek Tasarım Bileşenleri
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.
Önbellek Tasarım Bileşenleri
Yazma Yöntemine Göre
İşlemci
Adres Bilgileri Denetim Birimi
Veriler
Ana Bellek Veriler önbellekte bulunuyorsa okuma (Read hit)
Doğrudan Yazma Önbellek (WriteThrough Cache)
İstenen program/veri bloğu önbellekte ise okuma yapılır.
İşlemci
Adres Bilgileri Denetim Birimi
Veriler
Ana Bellek Veriler önbellekte bulunmuyorsa (Read miss)
Doğrudan Yazma Önbellek (WriteThrough Cache)
İstenen blok önbellekte değilse ana belllekten önbelleğe getirilir ve okuma yapılır.
İşlemci
Adres Bilgileri Denetim Birimi
Veriler
Ana Bellek Veriler önbellekte bulunuyorsa (Write hit)
Doğrudan Yazma Önbellek (WriteThrough Cache)
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.
İşlemci
Adres Bilgileri Denetim Birimi
Veriler
Ana Bellek Doğrudan Yazma Önbellek (WriteThrough Cache)
Yazılacak veri önbellekte yoksa doğrudan ana belleğe yazma yapılır.
Veriler önbellekte bulunmuyorsa (Write miss)
İşlemci
Adres Bilgileri Denetim Birimi
Veriler
Ana Bellek Geri Planda Yazma (Write Back Cache)
Veriler önbellekte bulunuyorsa okuma (Read hit)
İşlemci
Adres Bilgileri Denetim Birimi
Veriler
Ana Bellek Geri Planda Yazma (Write Back Cache)
Veriler önbellekte bulunmuyorsa okuma (Read miss)
Veriler önbellekte bulunuyorsa (Write hit) Geri Planda Yazma (Write Back Cache)
İşlemci
Adres Bilgileri Denetim Birimi
Veriler
Ana Bellek
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.
İşlemci
Adres Bilgileri Denetim Birimi
Veriler
Ana Bellek Veriler önbellekte bulunmuyorsa (Write miss)
Geri Planda Yazma (Write Back Cache)
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.
Kullanılan üç eşleştirme tekniği bulunmaktadır:
Doğrudan Eşleştirme
(Direct Mapping Cache)
Tam Çağrışımlı Eşleştirme
(Fully Associative Cache)
Kümeli Çağrışımlı Eşleştirme
(Set Associative Cache)
Erişim Yöntemine – Eşleştirme Fonksiyonuna Göre
Önbellek Tasarım Bileşenleri
Erişim Yöntemine – Eşleştirme Fonksiyonuna Göre Doğrudan Eşleştirme
Her bir bloğun önbellekte bulunabileceği sadece bir yuva (slot) mevcuttur.
Tam Çağrışımlı Eşleştirme
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.
Önbellek Tasarım Bileşenleri
Doğrudan Eşleştirme
Ana Bellek
Blok 0 Blok 1
Blok 127 Blok 128 Blok 129 Önbellek
Blok (K kelime)
Yuva Büyüklüğü Blok+Etiket Uzunluğu Yuva 0 Yuva 1 Yuva 2
Yuva 125 Yuva 126 Yuva 127
Blok 8190 Blok 8191
• 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.
Doğrudan Eşleştirme Avantaj- Dezavantaj
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.
Tam Çağrışımlı Eşleştirme
Ana Bellek
Blok 0 Blok 1
Blok j
Önbellek
Blok (K kelime)
Yuva 0 Yuva 1
Yuva 125 Yuva 126 Yuva 127
Blok 8190 Blok 8191
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.
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 63 Blok 64 Blok 65 Önbellek
Blok (K kelime)
Blok 8190 Blok 8191
Yuva 0 Yuva 1
Yuva 2 Yuva 3
Yuva 126 Yuva 127
Yuva Büyüklüğü Blok+Etiket Uzunluğu ( K kelime=71 bit) Küme 0
Küme 63 Küme 1
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.
Ö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.