**Etkin sayfalar ön belleği** (ESÖ) *(Translation Lookaside Buffer (TLB))* sanal bellek kullanan işlemcilerde adres dönüştürme işleminin hızlandırılmasını sağlayan bir tekniktir.

 *Etkin sayfalar ön belleği (ESÖ) (Translation Lookaside Buffer (TLB)) sayfa tablosu satırlarını tutar ve adres dönüşümlerinin izini sürer.*
Programın belleğe ulaşması önce fiziksel adrese ve daha sonra veriye ulaşmasıyla mümkündür. Bu yüzden başarımın arttırılmasında *alanda yerellik* özelliğinden yararlanılır. Sanal bir sayfanın adresi dönüştürüldüğünde sayfadaki öbeklere ulaşımın tekrarı ve dolayısıyla o dönüşümün yakın bir zamanda tekrar kullanılma ihtimali yüksektir. Günümüz makineleri yakın zamanda kullanılan sayfa tablosu satırlarını tutan ve adres dönüşümlerinin izini süren bir ön belleğe sahiptir. Bu özel yapıya Etkin sayfalar ön belleği (ESÖ) adı verilir.

*Etkin sayfalar ön belleği (ESÖ) (Translation Lookaside Buffer (TLB)) kullanılarak adres dönüşümü*
Etkin sayfalar ön belleği sadece sayfa tablosu eşleştirmelerini tutan bir ön bellektir. Sayfa bulma olayı gerçekleştiğinde gerçek adres numarası adresin yapılandırılması için kullanılır ve karşılık gelen bit mantıksal bire işaret eder. Eğer ESÖ’de bir sayfa bulamama olayı gerçekleşirse bunun nedeninin bir sayfa hatası mı yoksa sadece ESÖ’den kaynaklanan bir sayfa bulamama (miss) mı olduğuna karar verilmelidir. Eğer sayfa bellekte mevcut ise sorunun ESÖ’de bir dönüştürme hatasından ve eksikliğinden kaynaklandığı anlaşılır. Bu durumda işlemci sayfa tablosundaki adres dönüşümlerini Etkin sayfalar ön belleğine baştan yükleyerek, *başvuruyu (reference)* tekrar eder. ESÖ sayfa bulamama durumu donanımla veya yazılım kullanılarak halledilebilir. Eğer sayfa bellekte mevcut değil ise gerçek bir sayfa hatası söz konusudur. Bu durumda işlemci, işletim sistemini kural dışı durum ile uyarır.

*Etkin sayfalar ön belleği (ESÖ) sayfa tablosunda gerçek adreslere eşlenen kayıtları tutan bir ön bellek işlevi görür.*
Etkin sayfalar ön belleği, diğer sıradan ön bellekler gibi *tam ilişkili, kümeli ilişkili* ya da *doğrudan eşlemeli* olarak tasarlanabilir.
Etkin sayfalar ön bellekleri çoğunlukla küçüktür, satır sayısı çok hızlı bilgisayarlarda bile 128-256’yı geçmediğinden bu ön belleklerde karmaşık olan *tam ilişkili arama*nın masrafı fazla değildir. Çoğu orta düzey işlemcide küçük n yollu kümeli ilişkili düzen kullanılır. ESÖ kullanan bilgisayarlar ön bellek erişimi için gereken çevrim sayısını azaltmak için ön bellek erişimini ESÖ erişimi ile koşut olarak (aynı anda, eşzamanlı) yapar. Bu yöntem ile sanal adreslerin sayfa numaraları ESÖ’de arama işlemi için kullanılırken sayfa eklemesi kısmı ön bellek erişiminde dizin olarak görev yapar.

#### Eşzamanlı ESÖ ve ön bellek erişiminin sorunları

Eş zamanlı erişim ancak ön belleğe dizin olarak gönderilen bitler sanal adres dönüştürmesi sırasında değişmezse işe yarar. Bu durum küçük ön bellekler, büyük sayfa boyutları ya da yüksek n yollu kümeli ilişkili ön bellekler kullanma gereksinimini doğurur.

#### Sanal bellek, etkin sayfalar ön belleği (ESÖ) ve ön bellek

En iyi koşullarda bir sanal adres ESÖ tarafından dönüştürülerek ön belleğe yollanır ve ilgili veri bulunur, getirilir ve daha sonra işlemciye geri gönderilir. En kötü durumda ise *başvuru (reference)* sıradüzendeki bu üç yapıda da; yani ESÖ, sayfa tablosu ve ön bellekte bulunamaz.

#### MIPS R2000 Etkin Sayfalar Ön belleği (ESÖ) (Translation Lookaside Buffer (TLB))

*DECStation3100 Etkin sayfalar ön belleği (ESÖ) ve ön belleğinde (cache) gerçekleştirilen okuma/yazma işleminin adımları*
DECStation 3100’de kullanılan MIPS R2000 her ne kadar basit bir uygulamaya sahip olsa da özyapısı günümüz Etkin sayfalar belleklerininkine çok benzerdir. Bellek sistemi
4-KB sayfalar ve 32-bitlik adres uzayına sahiptir. Dolayısıyla, sanal sayfa numaraları 20 bit uzunluktadır. Sanal adres ile gerçek adres aynı boyutlara sahiptir. Etkin sayfalar ön belleği (ESÖ) 64 kayıt tutabilir ve tam eşlemelidir. ESÖ buyruk ve veri başvuruları tarafından paylaşılır. Her kayıt 64 bit genişliğindedir ve 20 bitlik etikete sahiptir ki bu etiket kaydın ESÖ’de tutulan sanal sayfa numarasıdır. Sanal sayfa numarasına karşılık gelen gerçek sayfa numarası da 20 bit uzunluğundadır ve geçerli bit, kirli bit gibi sayman bitlerine yer verir.

Bir ESÖ sayma bulamama durumu meydana geldiğinde, MIPS donanımı başvurunun sayfa numarasını özel bir yazmaca kaydeder ve kural dışı durum üretir. Kural dışı durum işletim sistemini uyararak sorunun yazılım katmanında halledilmesini sağlar. Bulunamayan sayfanın gerçek adresini bulmak için ESÖ sayfa tablosunu sanal adres numarası ve yürürlükte olan sayfa tablosunun başlangıç adresini tutan yazmaç yardımıyla dizinler. Bir takım buyruk kümesi ile etkin sayfalar ön belleği güncellenir. İşletim sistemi sayfa tablosundaki eşlenen gerçek adresleri etkin sayfalar ön belleğine yerleştirir. Eğer geçersiz bir gerçek adresle karşılaşılmışsa hata oluşur. Bir ESÖ’de sayfa bulamama durumu en az 10, ortalama olarak da 16 çevrimlik bir gecikmeye neden olur. Donanım değiştirilmek sayfa için bir önerme dizini tutar ve bu dizinden rastgele bir kayıt seçilir.

ESÖ’de *koruma (protection)* sağlanması için yazma erişiminin denetimini sağlayan bir bit mevcuttur. Bu özellik, salt okunur sayfaların üzerine yazmayı engeller böyle bir istekle karşılaşıldığında da bir hata üretir.

Kaynakça
--------

Ayrıca bakınız
--------------

* Sanal bellek

Dış bağlantılar
---------------

* Oğuz ERGİN *BİL 361 – Bilgisayar Mimarisi ve Organizasyonu, Sanal Bellek*
* John L. Hennessy, David A. Patterson, *Computer Architecture, A Quantitative Approach* (ISBN 1-55860-724-2)
* *Operational Characteristics for the Processors for Burroughs*
* *The Multics Virtual Memory: Concepts and Design*
* wikipedia: virtual memory 23 Aralık 2007 tarihinde Wayback Machine sitesinde arşivlendi.
* howstuffworks: virtual memory
* www.cs.gmu.edu/cne :virual memory
* courses.cs.vt.edu : virtual memory tutorial
* belgeler.org: sanal bellek[*ölü/kırık bağlantı*]

| * g
* t
* d
Bellek yönetimi |
| --- |
| Manuel bellek yönetimi | Delete (C++) **·**  C devingen bellek ayırma **·**  new (C++) **·**  Durağan bellek ayırma |
| Sanal bellek | Sayfa tablosu **·**  Sayfalama **·**  Sayfalama istemi |
| Donanım | Etkin sayfalar ön belleği **·**  Bellek yönetim birimi |
| Çöp toplama | Çöp **·**  Güçlü referans **·**  Referans sayımı **·**  Sonlandırıcı **·**  Zayıf referans

|  |  |
| --- | --- |
| Uygulamalar | Boehm çöp toplayıcı **·**  Çöp öncelikli toplayıcı |

 |
| Bellek segmentasyonu | Gerçek kip **·**  Korumalı kip **·**  Sanal 8086 kip **·**  x86 bellek segmentasyonu |
| Bellek güvenliği | Arabellek aşımı **·**  Sarkan işaretçi **·**  Yığın taşması |
| Konular | Bellek sızıntısı **·**  Erişilemez bellek **·**  Parçalanma |
| Diğer | Bölge tabanlı bellek yönetimi **·**  International Symposium on Memory Management **·**  Otomatik değişken |

|  |  |
| --- | --- |
| Otorite kontrolü Bunu Vikiveri'de düzenleyin | 
* GND: 4620645-0

 |