BİLGİSAYAR MİMARİSİ-II İÇERİK ADRESLEMELİ BELLEK

Benzer belgeler
William Stallings Computer Organization and Architecture 9 th Edition

BM-311 Bilgisayar Mimarisi

Şekil. 64 Kelimelik Yığıtın Blok Şeması

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

6.4.1 Önbellek Eşleme Planları

ASENKRON (Eş Zamanlı Olmayan) HABERLEŞME ARA YÜZEYİ

BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı

2011 Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

ALGORİTMA VE PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler.

Sanal Bellek (Virtual Memory)

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

Gidilen sayfadan bir önceki sayfaya geçilir. Şekil Git İşlemi diyalog kutusu

BILGISAYAR ARITMETIGI

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

Özyineleme (Recursion)

BM-311 Bilgisayar Mimarisi

ALGORİTMA VE PROGRAMLAMA II

Bellekler. Mikroişlemciler ve Mikrobilgisayarlar

Görüntü Bellek. Ana Bellek. Fiziksel Adres. Belek Uzayı. Bellek hiyerarşisi. Hız Maliyet (+) Ana Bellek. Boyut (+) DISK. Görüntü Adres.

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

Yrd. Doç. Dr. Caner ÖZCAN

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. MİB Yapısı. Kütükler. Kütükler

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

ALGORİTMA VE PROGRAMLAMA I

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Dosyalama İşlemleri. Ders Notları

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. Örnek MİB ile Adresleme. Adresleme Yöntemleri. Doğal Adresleme. İvedi Adresleme

William Stallings Computer Organization and Architecture 9 th Edition

UYGUN MATEMATİK 5 SORU BANKASI. HAZIRLAYANLAR Fatih KOCAMAN Meryem ER. : Sad k Uygun E itim Yay nlar. : Yaz n Matbaas / stanbul

Dosya Saklama Ortamları (Devam) Kütük Organizasyonu 1

T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ

BM-311 Bilgisayar Mimarisi

BILGISAYAR ARITMETIGI

Yrd.Doç.Dr. Celal Murat KANDEMİR

(Random-Access Memory)

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

BM-311 Bilgisayar Mimarisi

Fiziksel Veritabanı Modelleme

EXCEL 2007 ELEKTRONİK ÇİZELGE

BİLGİSAYAR MİMARİSİ. << Bus Yapısı >> Özer Çelik Matematik-Bilgisayar Bölümü

<fn> FORMAT (a1,a2,a3,...) : format deyiminin satır numarasıdır READ, WRITE deyimleri ile verilir. : alan bildirim deyimleridir.

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

9. MERKEZİ İŞLEM BİRİM MODÜLÜ TASARIMI

Öğr. Gör. Ümit ATİLA

Pointer Kavramı. Veri Yapıları

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Bilgisayar Mimarisi ve Organizasyonu Giriş

VERİ YAPILARI VE PROGRAMLAMA

Background (Arka Plan)

Şubeler, kampanya sınav(uts) yapmak istediklerinde, bu modül üzerinde bulunan adımları sırası ile tamamlamak durumundadırlar.

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

ALGORİTMA VE PROGRAMLAMA II

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1

Spatial locality nin getirdigi avantaji kullanmak

Bellek. Hiyerarşisi. Tek işlemcinin saniyedeki ortalama bellek erişimi isteği. Kaynak: Hennesy, Patterson, Computer Architecture, 5/e

İşletim Sistemlerine Giriş

Bölüm 8, Yrd. Doç. Dr. A. Kadir YALDIR PAÜ Bilgisayar Mühendisliği Bölümü BÖLÜM 8: DİZİLER

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

VERİ YAPILARI. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ HASH TABLOLARI.

6 Bellek Organizasyonu (İç / Dış) 6.1 Bellek Hiyerarşisi:

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

DERS NOTLARI. Yard. Doç. Dr. Namık AKÇAY İstanbul Üniversitesi Fen Fakültesi

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

BELLEK YÖNETY. Bellek Yönetimi

Algoritma ve Programlamaya Giriş

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

YZM 2116 Veri Yapıları

ALGORİTMA VE PROGRAMLAMA II

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

Yrd. Doç. Dr. Caner ÖZCAN

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

AGSoft Çocuk Gelişim Takip Programı Kullanım Kılavuzu

Mikroişlemcili Sistemler ve Laboratuvarı

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

NB Ekran Seri Port Üzerinden Veri Okuma/Yazma. Genel Bilgi Protokol Oluşturma Veri Okuma Veri Yazma

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Göstericiler (Pointers)

BÖLÜM 1 GİRİŞ 1.1 GİRİŞ

AĞ TEMELLERI. İSİM SOYİSİM: EMRE BOSTAN BÖLÜM: BİLGİSAYAR PROGRAMCILIĞI ÜNİVERSİTE: NİŞANTAŞI KONU: Konu 5. TCP/IP

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. Kütükler. Kütükler. Merkezi İşlem Biriminin İç Yapısı

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Transkript:

İÇERİK ADRESLEMELİ BELLEK Bellekte bulunan bir değerin aranıp bulunması, adres yerine verinin içeriği ile olursa içerik adreslemeli bellek ya da CAM (Content Addressable Memory) denir. Bu belleğe aynı anda ve paralel olarak erişilebilir. Adrese veya yer belirtmeye gerek yoktur. Bellek kullanılmayan boş bir alanı bularak kelimeyi yerleştirir. Eğer bu bellekten bir kelime okunacak ise, kelimenin içeriği veya onun bir kısmı belirtilir. Bellek bu verilene uygun ve onunla çakışan bütün kelimeleri belirler ve bunları okumak için işaret koyar. Tasarımından dolayı bu bellek paralel aramalara uygundur. Ayrıca aramalar bütün bir kelime veya kelime içinde belli bir alan üzerinde yapılabilir. Bu bellek RAM bellekten çok daha pahalıdır. Çünkü her hücre saklama yeteneği dışında içeriğin karşılaştıracak devrelere gerek duyar. Dolayısıyla ancak arama süresinin çok kritik olduğu ve çok kısa olması gerektiğinde kullanılır. Donanım Tasarımı İçerik adreslemeli belleğin donanım tasarımında bir bellek dizisi ve mantık devreleri vardır. Bellek kelime başına n bit olarak m kelimeden oluşur. Değişken yazacı A ve anahtar yazacı K, n-bit içerir. Çakıştırma yazacında m-bit vardır. Her bir bellek kelimesi değişken yazacının içeriği ile paralel olarak karşılaştırılabilir. Değişken yazacının bitleriyle çakışan kelimeler, çakıştırma yazacında karşılık gelen biti 1 yapar. Çakışma işleminden sonra, çakıştırma yazacı içinde 1 yapılan bitler karşılık gelen kelimelerin çakıştığını belirtir. Okuma işlemi, çakıştırma yazacında karşılık gelen bitleri 1 olan kelimelerde sıralı olarak yapılır. Anahtar yazacı Değişken yazacındaki kelimenin belli bir alanını seçmek için bir maskeleme oluşturur. Eğer anahtar yazacı içeriğinin tümü 1 lerden oluşuyorsa değişken yazacının tamamı her bir bellek kelimesiyle karşılaştırılır. Aksi durumda anahtar yazacında 1 olan bitlerin değişken yazacındaki karşılığı, bellek kelimelerinin karşılık gelen bitleriyle karşılaştırılır. Dolayısıyla anahtar yazacı bir maskeleme oluşturur. Bu maskeleme bellekte aranacak bilgi parçasını gösterir. Bu sayısal bir örnekle gösterilirse, A ve K yazaçlarında aşağıda gösterilen değerler bulunsun. K nın ilk üç biti 1 olduğundan A nın sadece sol 3 biti bellek kelimeleri ile karşılaştırılacaktır. A 101 111100 K 111 000000 Kelime 1 100 111100 çakışma yok Kelime 2 101 000001 çakışma var Bellek dizisi ile dış yazaçlar arasındaki bağlantı aşağıdaki şekilde gösterilmektedir. Dizi içindeki hücreler C ve iki indis ile gösterilmiştir. Birinci indis kelime numarasını, ikinci indis bit numarasını gösterir. Cij i nci kelimedeki j inci bittir. Değişken yazacındaki j inci A biti, j inci sütundaki bütün bitlerle karşılaştırılır. (Kj = 1 olma şartı ile). Bu işlem j = 1, 2,..., m için bütün sütunlara uygulanır. Eğer çakışma olursa, çakıştırma yazacındaki Mi biti 1 yapılır. Değişkenin bir veya daha fazla maskelenmemiş bitleri çakışmazsa Mi 0 yapılır. 1

Şekil. Her kelime n-bitlik içerik adreslemeli bellek Cij hücresinin tipik iç tasarımı aşağıdaki şekilde gösterilmektedir. Bir tane Fij yaz-bozu, okuma, yazma ve çakıştırma devreleri vardır. Yazma işlemi sırasında giriş biti depolama hücresine aktarılır. Depolanan bit okuma işlemi ile okunur. Çakıştırma mantığı depolama hücresi ile değişken yazacının maskelenmemiş bitini karşılaştırır ve bir çıkış yollar. Çıkışta bir karar vardır ve uygunsa Mi biti 1 yapılır. Şekil. İçerik adreslemeli belleğin tek bir hücresi 2

Çakıştırma Mantığı Çakıştırma mantığı her bir kelime için karşılaştırma algoritmasından türetilir. Önce anahtar bitleri ihmal edilerek, A içindeki değişken hücrelerdeki kelimelerle karşılaştırma yapılsın. i inci kelime A değişkenine eğer Aj = Fij (j = 1, 2... n) ise eşittir. İki bit ya ikisi de 1 veya ikisi de 0 ise eşittir. Buna göre Boole fonksiyonu; xj =Aj Fij + A j F ij şeklindedir. İstenen sağlanırsa xj = 1 olur. A ya eşit olan i inci kelime için bütün xj değişkenleri 1 olur. Bu da Mi bitini 1 yapar. Bunun Boole fonksiyonu ise; şeklindir. Mi = x1 x2 x3... xn Karşılaştırma mantığına Kj anahtar biti de katılırsa eğer Kj = 0 ise Aj ve Fij bitlerinin, karşılaştırılmalarına gerek yoktur. Sadece Kj = 1 ise karşılaştırılırlar. Bu durum her bir terim OR-VEYA lanarak elde edilir. x j + K j = x j eğer K j = 1 ise 1 eğer K j = 0 ise Kj = 1 olunca K j = 0 ve xj +0 = xj elde edilir. Kj = 0 olunca K j = 1 ve xj + 1 = 1 olur. xj + K j terimi, ilgili bit çifti karşılaştırılmıyorsa 1 durumundadır. Çünkü her bir terim diğer terimlerle VE leneceğinden 1 in etkisi olmaz. Bitlerin karşılaştırılması sadece Kj = 1 ise etkilidir. İçerik adreslemeli bellekte çakıştırma mantığı i inci kelime için aşağıdaki Boole fonksiyonu ile ifade edilebilir. Mi = (x1 + K 1) (x2 + K 2) (x3 + K 3)... (xn + K n) Eğer Kj = 0 ise her terim 1 olur. Kj = 1 ise terim xj ye bağlı olarak 0 veya 1 olabilir. Eğer bütün terimler 1 ve Mi = 1 ise çakışma olur. 3

İlk tanıma uygun olarak içerik adreslemeli belleğin i inci kelimesi için açılımı şöyledir; Mi = (x1 + K 1) (x2 + K 2) (x3 + K 3)... (xn + K n) Kısaca fonksiyon şöyle tanımlanabilir; n Mi = (A1 Fij + A 1 F ij + K j) j = 1 Her i = 1,2,3...m için m tane böyle fonksiyona gerek vardır. Okuma İşlemi Eğer bellekte birden fazla kelime maskelenmemiş değişken alanı ile çakışırsa bu kelimelerin çakıştırma yazacındaki karşılık gelen bitleri 1 olur. Okuma işleminde karşılaştırma yazacının bitlerine tek tek bakılarak eğer değeri 1 ise bellekteki o kelime okunur. Bu işlem karşılaştırma yazacının son bitine kadar devam eder. İçeriği sıfır olan kelimeler dikkate almazsa, sıfır çıktısı çakışma olmadığını yani arananın bellekte olmadığını gösterir. Yazma İşlemi CAM belleğin bilgiyi aramak için önce o bilgiyi yazabilmesi gerekir. Bu belleğe yazma işlemi uygulamaya göre değişir Eğer belleğin tümüne yeni bilgi girişi toplu halde yapılacaksa, her kelime sırayla adreslenerek doldurulur. Bu durumda belleğimiz yazarken adreslenebilir bellek, okurken CAM olacaktır. Buradaki avantaj RAM daki adresleme yeteneğinin kullanılmasıdır. Çünkü m tane kelimesi olan bu bellek d tane (2 d = m) bitle adreslenebilir. Eğer istenmeyen kelimeler silinecek ise bir zamanda bir tane olarak yeni kelimeler girilir. Yalnız bir yazaç ile işe yarayan ve yaramayan kelimelerin listesi tutulmalıdır. Bu yazaca başlık (tag register) yazacı denir. Bellekteki kelime sayısı kadar biti vardır. İşe yarayan kelimelerin bitleri 1, yaramayanlar 0 yapılır. Bir kelimenin silinmesi için başlık biti 0 yapılır. Yeni kelime yazılacağı zaman başlık yazacına bakılır ve ilk 0 yerine yeni kelime yazılır. Kelime yazıldıktan sonra başlık biti 1 yapılır. Bir kelimeyi tamamen silmek yani orayı boş yapmak için 0 lar girilir. Başlık biti 0 olan kelimeler, çakışmaya alınmamalıdır. Bunun için K yazacı ile maskelenir. 4

CACHE BELLEK Kaynakların Yöreselliği: Belleğe erişimin belli bir zaman aralığında belleğin belirli bölgelerine yapılmasına kaynakların yöreselliği denir. Bu özelliğin nedeni; tipik bir programın lineer (doğrusal) bir çizgide hareket eder. Fakat sık sık döngüler ve alt program çağrıları olur. Bir döngüye girildiğinde MİB tekrar tekrar aynı buyrukları çağırır. Yani tekrar tekrar belleğin aynı bölgelerine hatta aynı adreslere gider. Bir alt programın her çağrılışında aynı buyruklar bellekten alınıp getirilir, dolayısıyla buyrukların al-getir durumunda, alt programlar ve döngüler belleğin daima bazı bölgeleriyle ilişkilidir. Daha az olmakla beraber verilerde de aynı durum bulunmaktadır. Dizilerin bakımını yapan işlemler daima dizinin bulunduğu bölgeye giderler yinelenen işlemler ve dizi işlemleri daima belleğin aynı bölgelerinde bulunurlar. Bunlar hep kaynakların yöreselliği gözlemleridir. Kısa zaman aralıklarında belleğin çoğunlukla hep aynı bölgeleri kullanılır. Diğer kısımlar ise nadiren kullanılır. Programın çalışan kısımları ve verilerin o anda kullanılan kısımları küçük ve hızlı bir belleğe konursa ortalama bellek erişim süresi kısaltılabilir. Böylece programın icra süresi de kısalabilir. Böyle bir belleğe ön bellek (CACHE) denir. Bu bellek küçük ve hızlıdır. Erişim süresi ara belleğin 5 te biri ile 10 da biri arasındadır. MİB ile ana bellek arasında bulunur. Bellek hiyerarşisinde en hızlı bellektir. Hızı MİB bileşenlerine yakındır. Ön bellek tasarımının temel fikri en sık kullanılan buyruk ve verileri bu bellekte tutmaktır. Böylece ortalama bellek erişim süresi ön bellek erişim süresine yaklaşır. Ön bellek küçük bir bellektir. Ancak kaynakların yöreselliğine uygun çalıştırıldığından bellek erişimlerinin çoğu buradan karşılanır. Ön belleğin temel işlemi şöyledir. MİB belleğe erişmek istediğinde ön belleği inceler. İstenen ön bellekte ise buradan okunur. Eğer bu adres ön bellekte bulunmazsa o zaman ana belleğe gidilerek okunur. Sonra bu okunan bilginin bulunduğu blok ön belleğe aktarılır. Blok büyüklüğü erişilen kelimeye komşu yaklaşık 16 kelimeden oluşur. Böylece erişilene yakın verilere (veya buyruklara) yeniden erişmek kolay hale gelir. Bulma Oranı (Hit Ratio): Ön belleğin verimi bulma oranı denilen bir sayı ile ölçülür. MİB belleğe erişmek ister ve aradığını ön bellekte bulursa buna bulma (hit) denir. Eğer aranan kelime ön bellekte değilse ve ana bellekte bulunursa, buna da bulamama (miss) denir. Oran = Bulma sayısı Toplam erişim sayısı veya Cache bellek erişim sayısı = olarak tanımlanır. Cache bellek erişim sayısı + Ana bellek erişim sayısı 5

Bu oran deneysel olarak ölçülerek 0.9 veya daha yüksek oranlar rapor edilmiştir. Bu oranlar kaynakların yöreselliği ile ön bellek olayının doğruluğunu kanıtlar. HARİTALAMA Ana bellekten ön belleğe verilerin aktarılmasına haritalama işlemi denir. 3 tip haritalama işlemi kullanılmaktadır. 1. İçerik Adreslemeli Haritalama (Associative Mapping) 2. Doğrudan Haritalama (Direct Mapping) 3. Kümelenmiş İçerik Adreslemeli Haritalama (Set-Associative Mapping) Ana bellek 12 bitlik 32 K-byte kelimeden oluşsun Ön bellek ise bunların 512 tanesini taşıyor olsun. Ön bellekte bulunan her kelimenin ana bellekte bir kopyası bulunur. MİB her iki bellekle haberleşir. Önce ön belleğe 15 bit adres yollar. Eğer aranan kelime ön bellekte varsa buradan 12 bit veriyi okur. Eğer aranan kelimeyi ön bellekte bulamaz ise MİB kelimeyi ana bellekten okur ve kelimeyi ön belleğe aktarır. 1. İçerik Adreslemeli Haritalama (Associative Mapping) En hızlı ve çok yönlü kullanılabilen ön bellek tasarımı içerik adreslemeli (CAM) bellek alanıdır. Buradaki CAM bellek hem adresi hem veriyi tutar. Böylece belleğin herhangi bir alanındaki veriler veya buyruklar ön belleğin herhangi bir yerine yazılabilir. Şekilde bellekte duran 3 adres beş basamaklı (digit) sekizlik (octal) düzendeki (15 bit) sayılarla ve bunlara karşılık gelen veriler 4 basamak (12 bit) sekizlik (octal) düzende sayılarla verilmiştir. 15 bit MİB adresi değişken yazacına yazılır ve çakıştırma yapılır. Adres varsa veri okunur, sonra bulunduğu adres ve veri ön belleğe aktarılır. Eğer ön bellek doluysa burada ihtiyaç olmayan bir adres-veri çifti silinir. Hangi çiftin silineceği yer değiştirme algoritmasıyla bulunur. Algoritmayı tasarımcı seçer. En basit yöntem dolap beygiri (round robin) yöntemidir. Bu yöntem FIFO tipine denktir. 6

Şekil. Cache belleğin içerik adreslemeli haritalaması 2. Doğrudan Haritalama (Direct Mapping) Başlık Alanı; CAM bellekler RAM a göre pahalıdırlar. Çünkü hücrelere birçok devre eklenir. RAM belleği ön bellek olarak kullanma durumu aşağıdaki şekilde gösterilmektedir. 15 bit MİB adresi 2 alana bölünür. 9 önemsiz bit indis alanını oluşturur. Kalan 6 bit ise başlık alanı olur. Şekilde görüldüğü gibi ana bellek adresleme için her iki alana da gerek duyar. Oysa ki; ön bellekte adresleme için sadece indis alanı yani 9 bit yeterlidir. Dolayısıyla indis alanı, ön belleği adreslemek için gerekli bit sayısı kadar seçilir. Genel olarak 2 k kelime ön bellekte ve 2 n kelime bellekte bulunuyorsa n-bit bellek adres alanı k ve (n k) olarak iki alana ayrılır. k bit indis olup ön belleği adresler. Ön bellek içindeki her bir kelime veriyi ve bunun ekli başlığını bulundurur. Yeni bir kelime ön belleğe getirildiğinde başlık bitleri veri bitlerinin yanına yazılır. MİB bir bellek isteminde bulunduğunda ön belleğe erişmek için indis alanı kullanılır. MİB adresinin başlık alanı, ön bellekten okunan kelimenin başlık alanı ile karşılaştırılır. İki başlık çakışırsa istenen kelime ön bellek içindedir (hit). Çakışma yoksa istenen kelime bellekten okunur (miss). Bu kelime daha sonra başlığıyla beraber ön belleğe yazılır. Eski kelime atılır. Doğrudan haritalamadaki dezavantaj iki veya daha fazla kelimenin indis alanları aynı, başlık alanları farklı ise ve bunlara tekrar tekrar erişiliyorsa bulma oranının (hit ratio) azalmasıdır. Bu dezavantaj bu tip kelimelerin belleğin uzak adres aralıklarına yerleştirilmesiyle azaltılabilmektedir. 7

Şekil. Ana ve ön bellek adresleri arasındaki ilişki Şekil. Ön bellek tasarımında doğrudan haritalama Doğrudan haritalamanın nasıl çalıştığına bakılırsa; sıfır adresinde bulunan kelime ön bellek içindedir. İndisi 000 ve başlığı 00 dır. Veri 1220 dir. MİB nin 02000 adresindeki kelimeyi istediğini varsayalım. İndis 000 dır. Ön belleğe gidilir ve başlıklar karşılaştırılır. Ön bellek başlığı 00 ve adres başlığı 02 dir. Çakışma olmaz. Ana belleğe gidilir ve 5670 verisi ön belleğe aktarılır. Bunun indisi 000 ve başlığı 02 dir. Bu örnek sadece 1 kelimelik blok büyüklüğü içindir. Aynı organizasyon 8 kelimelik blok için aşağıdaki şekilde gösterilmektedir. İndis alanı 2 parçaya bölünmüştür. Blok alanı ve kelime alanı 512 kelimelik bir ön bellekte her biri 8 kelimelik 64 blok vardır (64 x 8 = 512). Blok numarası 6 bitlik bir alanla verilir. Kelime alanı ise blok içinde 3 bit yer kaplar. Ön bellek içindeki başlık alanı blok içindeki 8 kelime 8

için aynıdır. Bir bulamama (miss) olduğunda 8 kelimenin tamamı bellekten ön belleğe aktarılır, bu da zaman kaybına neden olur. Fakat daha büyük bir blok büyüklüğü ile bulma oranı arttırılabilir. Şekil. 8 kelimelik bloklar ile doğrudan haritalanmış ön bellek 3. Kümelenmiş İçerik Adreslemeli Haritalama Doğrudan erişimli ön bellek tasarımında, adreslerinde aynı indis fakat farklı başlık değeri bulunan iki kelime, aynı anda ön bellekte bulunamazlar. Buda direk adreslemenin dezavantajıdır. Üçüncü bir ön bellek tasarımı kümelenmiş içerik adreslemeli haritalama adını taşır. Direk adreslemenin geliştirilmiş şeklidir. Aynı ön bellek kelimesi içinde birden fazla aynı indis adresli bellek kelimesi bulunabilir. Her bir veri kelimesi başlığı ile beraber depolanır ve bunlar bir küme oluşturur. Küme sayısı birden fazladır. Şekilde iki yollu kümelenmiş içerik adreslemeli bir ön bellek tasarımı gösterilmiştir. Her bir indis adresi iki veri kelimesini gösterir. Her bir başlık 6 bit ve her bir veri kelimesi 12 bittir. Kelime uzunluğu 2 (6 + 12) = 36 bit olur. 9 bit indis adresi ile 512 kelime taşıyabilir. Ön belleğin büyüklüğü 512 x 36 olur. Böylece; 1024 kelime ana belleğe yerleştirilebilir. k büyüklüğünde kümelenmiş içerik adreslemeli ön bellekteki her kelimede ana belleğin k kelimesi bulunur. Şekilde ana belleğin 01000 ve 02000 adresindeki sayılar, ön bellekte 000 indis adresinde yer alırlar. Benzer şekilde 02777 ve 00777 adresleri ön belleğin 777 indis adresinde bulunur. MİB bir bellek isteminde bulunduğunda adresin indis kısmı ile ön belleğe erişilir. MİB adresinin başlık alanı ön bellek içindeki başlıklarla karşılaştırılır ve çakışmaya bakılır. Karşılaştırma ve arama mantığı CAM belleğin aynısıdır. Küme sayısı arttıkça bulma sayısı artar. Çünkü aynı indisli farklı başlık numaraları ön bellekte bulunabilir. Ancak küme sayısının artması ön bellekteki bit sayısını arttırır ve karşılaştırma mantığını karışık hale sokar. 9

Şekil. İki yollu kümelenmiş içerik adreslemeli haritalamalı ön bellek Yer Değiştirme Algoritmaları: Bir bulamama olduğunda veya ön bellek dolu ise bir tane başlık-veri elemanını değiştirmek gerekir. En çok kullanılan algoritmalar; Rasgele (Random) Yerdeğiştirme, FIFO (First in First Out) ve LRU (Least Recently Used) dur. Rasgelede herhangi biri değiştirilir. FIFO, ön bellekte en çok kalanı değiştirir. LRU son kullanımı en eski olanı değiştirir. FIFO ve LRU nun kullanımı için ön belleğin her bir kelimesine bir kaç bit eklenmesi gerekir. Ön Belleğe Yazma: Ön bellek tasarımının önemli bir kısmı belleğe yazma istemiyle ilgilidir. Okuma işlemi sırasında kelime ön bellekte bulunur ve okunur. Ana bellek bu olayın dışındadır. Fakat işlem yazma işlemi ise sistemin bu işi yapmak için 2 seçeneği vardır. a. Doğrudan Doğruya Yazma (Write-Through); Basit ve çok kullanılan bir yöntemdir. Her yazma isteminde ana belleğe yazmaktır. Eğer yazılan adres ön bellek içinde ise ön bellekte beraberce güncelleştirilir. Buna doğrudan doğruya yazma adı verilir. Avantajı bellek ile ön belleğin daima aynı bilgileri taşımalarıdır. Özellikle DMA işlemlerinde bu önemlidir. Bellek daima en güncel bilgileri taşır. b. Geri Yazma (Write-Back); Bu yöntemde yazma isteminde sadece ön belleğe yazılır. Bu alan bir bayrakla belirlenir. Bu kelime ön bellekten silineceği zaman ise kelimenin bir kopyası ana belleğe yazılır. Bunun nedeni ön bellekte bulunan bir değerin ön bellekten çıkmadan önce birkaç defa değişmiş olmasıdır. Kelime ön bellekten çıkmadığı sürece bellekteki değerin güncellenmesi gerekmez 10

Ön Bellek Başlatma: Geçerli Bit: Ön bellek tasarımının bir başka sorunu başlatma sorunudur. Ön bellek bilgisayar ilk açıldığında, ana bellek ve yardımcı bellekten programlar yüklendiği zaman başlatılmış olur. Başlatma işleminden sonra ön belleğin boş olduğu kabul edilir. Fakat gerçekte bazı geçersiz eski veriler bulunabilir. O zaman ön bellekteki her kelimeye geçerli veri biti (valid-bit) koymak gerekir. Dolayısıyla başlatma işlemi bütün geçerli veri bitlerini sıfır yapmakla sağlanır. Ana bellekten bir kelime yüklenince bu kelimenin geçerli veri biti 1 yapılır. Bu bit ön bellek tekrar başlatılıncaya kadar 1 değerinde kalır. Eğer geçerli veri biti 0 olursa yeni kelime otomatik olarak geçerli verinin yerine yazılır. 11