B*LG*SAYAR M*MAR*LER* 1.Hafta: Bilgisayar Mimarisine

advertisement
Doç.Dr. Ahmet ÖZMEN
Sakarya Üniversitesi
Bilgisayar Mühendisliği Bölümü
Ders Planı
 Giriş: Zahiri bellek
 Zahiri bellek tasarımında temel sorunlar
 Sayfalama organizasyonu
 Adres map algoritması, fragmantation & relocation
 Sayfa tablosu
 Sayfa yerleştirme algoritmaları
 Demand paging
 Translation Lookaside Buffer (TLB)
2
Giriş: Zahiri bellek
 Zahiri bellek çok büyük bellek görüntüsü oluşturuyor
 Birçok işin kapladığı alan fiziksel bellekten çok büyük olabilir
 Her bir prosesin adres alanı fiziksel bellekten büyük olabilir
 Fiziksel belleğin çok iyi kullanılmasını sağlıyor (utilization yüksek)
 Bellek yönetimini kolaylaştırıyor (bugün için ana neden)
 Bellek hiyerarşisinden (ön bellek yapısından) istifade ederek
ortalama erişim süresini düşük tutmak
 İki hafıza birimi de konu ile ilgili: Ana bellek ve ikincil bellek
 Zahiri adres: Programcının kullandığı adres
 Zahiri adres alanı: Zahiri adreslerden oluşan bölge
 Bellek adresi: Fiziksel bellekteki word-byte’ların adresi, gerçek adres
3
Zahiri bellek tasarımında temel sorunlar
 İkincil bellekten (sabit diskten) ana belleğe taşınacak veri
bloğunun boyutu ne olmalıdır?
 Ana belleğe blok olarak veri getiriliyor. Eğer ana bellek dolu ise
bellekten bazı verilerin atılıp yerine yenisinin konulması lazım.
Hangi blok atılacak? (replacement poltikası)
 Yeni gelen blok ana belleğin neresine konmalı (placement
politikası).
 Eksik blok sadece hata (page fault) olması durumunda ikincil
bellekten getirilmelidir. (fetch/load politikası)
4
Sayafalama organizasyonu
 Zahiri ve fiziksel adres alanı eşit boyutta bloklara ayrılır
 Zahiri bloklara sayfa – page denir
 Fiziksel bloklara çerçeve – frame denir
5
Adres map
 V = {0, 1, 2, …, n-1} zahiri adres alanı
 M = {0, 1, 2, …, m-1} fiziksel adres alanı
 MAP: V  M U {Ø} adres map fonksiyonu
 MAP(a) = a’ Eğer zahiri adres a daki veri, fiziksel adres a’
de mevcutsa
 MAP(a) = Ø Eğer zahiri adres a daki veri bellekte yok ise
6
Sayfa tablosu (page table)
 Sayfa tablosu, adres dönüşümünü (address translation)
sağlamak için sıkça kullanılır
7
Sayfa organizasyonu
8
Adres mapping (haritalama) algoritması
 Eğer V = 1 ise
 sayfa page table’da belirtilen adreste, ana bellektedir
 aksi halde, sayfa ikincil bellektedir
 Erişim izinleri:
 R: salt oku, R/W: yaz-oku, X: icra edilebilir
 Eğer erişim izinleri belirlenen erişim izinleri ile uyumlu değilse 
«protection_violation_fault» oluşur
 Eğer V = 0 ise  «page_fault» oluşur
 Protection Fault (koruma hatası): Erişim hakları ihlali; kesme
«trap» oluşmasına sebep olur
 Page fault (sayfa hatası): Sayfa ana bellekte değil. Bu durumda da
kesme «trap» oluşur, genelde beraberinde context switch oluşur.
Proses sayfası ikincil bellekten getirilene kadar bekletilir.
9
Fragmentation ve Relocation
 Fragmentation: Parçalama nedenlerinden dolayı bellek
yetersizliği
 Relocation: Program veya verinin bellekte başka
bölgelere taşınabilmesi (tüm pointer değerlerinin
ayarlanmasını gerektirir)
 Internal Fragmentation: Sayfa içinde kullanılamayan
kısımlar
10
Optimum sayfa boyutu
 Fragmentation’ı minimum yapacak sayfa boyutu seçilir
 Büyük sayfa boyutu  internal fragmentation kötüleşir
 Küçük sayfa boyutu  çok fazla sayfa adedi  büyük
sayfa tablosu
 Genel eğilim daha büyük sayfa boyutu yönündedir
 RAM fiyatı düştükçe ana bellek büyüyor
 İşlemci hızı ile disk erişim hızı arasındaki açık gittikçe
artmaktadır
 Programcılar daha büyük zahiri adres istiyorlar
 Birçok makine 4 Kbyte sayfa boyutuna sahip ve gittikçe
artıyor
11
Sayfa yerleştirme (replacement)
algoritmaları
 Ön-bellek replacement algoritması gibi
 LRU (Least Recently Used):
 Yakın zamanda kullanılmayan sayfa seçilir
 Eski erişimlerin tutulmasını gerektirir, gerçeklenmesi zordur
 İyi performans, lokality prensibi
 Örnek: En son erişilen sayfa listesi (sıralı olarak) :
10, 12, 9, 7, 11, 10 olsun;
 Bellekte olmayan 9 nolu sayfa erişilmek istendiğinde ve
bellek dolu ise, hangi sayfa kaldırılıp yeni sayfa yerine
konmalıdır? (LRU’ya göre)
12
Sayfa yerleştirme (replacement)
algoritmaları
 Not Recently Used: (Yakında kullanılmayan)
 Her sayfa için bir referans bayrağı (biti) kullanılabilir :


Eğer bayrak = 1 ise sayfa yakın geçmişte kullanıldı (referans)
Diğer durumlarda bayrak = 0
 Eğer bir sayfa kaldırılacaksa, referans biti 0 olanı kaldır. Bu
sayfa bu yakında kullanılmayan sayfadır.
 NRU’nun saat gerçeklemesi:
13
Talep karşılığında sayfa getirme
(demand paging)
 Getirme politikası:
 Sayfa belleğe ne zaman getirildi?

Eğer bri talep sonrası getirildi ise buna demand-paging getirme
politikası denir
 Bir başka sayfa getirme yöntemi:
 Gelecek referansları tahmin ederek, henüz ihtiyaç olmayan
sayfaları önceden getirmek


Sayfa transfer zaman kayıplarını (overhead) azaltır
Gelecek referansları tahmin etmek çok zordur
 Birçok sistem demand-paging sistemini pre-paging olmadan
gerçekler
(Pre-fetching etkisini elde etmenin bir diğer yolu da sayfa
boyutunu arttırmaktır.)
14
Zahiri adres ve ön bellek
 VAPA dönüşümü bir fazla bellek erişimi gerektiriyor
 Bu durum, ön bellek erişimini çok geciktirmektedir ve bu
en hızlı olunması gereken yerdir
15
Neden ön belleğe PA ile erişilir?
 VA ön belleklerinin problemi: iki farklı VA aynı fiziksel
adrese map edebilir (sinonim problemi)  iki farklı ön
bellek verisi aynı fiziksel adres için veri tutuyor olabilir
 Update (güncelleme): Tüm ön bellek verileri aynı fiziksel
adres ile güncellenmeli aksi halde bellek tutarsız olur
 Bu durumun çözümlenmesi oldukça karışık donanım
gerektirir.
16
TLB: Adres dönüşümünün hızlı
yapılması
 TLB (Translation Lookaside Buffer): Adres dönüşümünün
hızlandırılması.
17
Translation Lookaside Buffer
 Tamamıyla diğer ön-bellek gibi. TLB dirk map, fully associative ya da
set associative olarak organize edilebilir.
 TLB’ler genelde küçüktür (128-256 satırlıktır). Bu çok hızlı
bilgisayarlar için bile yeterlidir.
 Bu nedenle genelde fully-associative ön bellek olarak gerçeklenir.
Birçok orta ölçekli makinelerde küçük n-way set associative ön
bellek kullanılır
18
Download