icBellekMimarisi08

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