Önbellek (Cache) Nedir? Nasıl Çalışır? Ne İşe Yarar?
Önbellek Nedir?
Bir bilgisayar işlemcisi yani CPU çok hızlıdır ve sürekli olarak hafızadan veri okur. Sistem belleğinden gelen veriler ise çoğunlukla CPU’nun hızına yetişemez ve işlemci verinin ulaşmasını beklemek zorunda kalır. Bu problemi çözmek için CPU içinde yüksek hızlı hafızalar bulunur, buna ön bellek denir. Ön bellek çalışmakta olan programa ait komutların, verilerin geçici olarak saklandığı yüksek hızlı hafızalardır.
Verileri getirmek için sürekli olarak ana hafızaya erişilmemesi amacıyla sıkça kullanılan veri önbelleğe kopyalanır. Önbellek yazarımızın masası gibi düzenlenmemiş halde olabilir ya da adres defteriniz gibi düzenli olabilir. Her iki şekilde de veri erişilebilir olmalıdır. Bilgisayardaki önbellek gerçek hayattaki örneklerden önemli bir farklılık gösterir: Bilgisayar hangi verinin erişilmesi muhtemel olduğunu bilemez, böylece yer ilkesini kullanır ve ana hafızaya erişmesi gerektiğinde bütün bir bloğu önbellekten ana hafızaya aktarır. Eğer bu blokta kullanılma olasılığı yüksek olan bir başka parça varsa, bütün bir blok erişim zamanını azaltır. Bu yeni bloğun önbellekteki yeri iki şeye bağlıdır: Önbellek eşleme planı ve önbellek boyutu.
Önerilen Yazı » Rom Bellek Nedir? Ne İşe Yarar?
Önbelleğin Amacı Nedir?
Önbelleğin amacı, yakın geçmişte kullanılmış olan verileri işlemciye ana hafızadan daha yakın bir yerde tutarak hafıza erişimini hızlandırmaktır. Önbellek ana hafıza kadar büyük olmasa da oldukça hızlıdır. Ana hafıza genellikle 60 nanosaniye(ns) erişim süresi olan DRAM’dan oluşur, önbellek ise genellikle DRAM’dan çok daha hızlı ve kısa dönüş süreli olan SRAM’den oluşur (genellikle 10 ns erişim süresi vardır). İyi performans vermesi için önbelleğin çok büyük olması gerekmez. Genel fikir önbelleği yeterince küçük yapmaktır. Böylelikle bit başına ortalama maliyeti ana hafızanınkine yakın olur, yararlı olmak için de yeterince büyüktür. Bu hızlı hafıza oldukça pahalı olduğundan tüm ana hafızanın bu teknolojiyle yapılması mümkün değildir.
Önbellek Nasıl Çalışır?
Önbellek adresle erişilmez, içerikle erişilir. Bu nedenle önbelleğe içeriği adreslenebilen hafıza (content addressable memory – CAM) adı da verilir. Birçok önbellek eşleme planına göre, istenen verinin önbellekte olup olmadığı denetlenmelidir. İstenen verinin yerinin belirlenmesi işlemini basitleştirmek için pek çok önbellek eşleme algoritması kullanılır.
♦ L1 ön bellek (cache) : Önemli kodlar ve veriler bellekten buraya kopyalanır ve işlemci bunlara daha hızlı ulaşabilir. Kodlar için olan Code cache ve veriler için olan Data cache olmak üzere ikiye ayrılır. Kapasitesi 2 KB ile 256 KB arasında değişir.
♦ L2 ön bellek (cache) : L1 belleklerine göre kapasiteleri 256 KB ile 2 MB arasında değişir. Başlangıçta L2 önbellek anakart üzerinde işlemciye yakın bir yerde yer almaktaydı. Daha sonra slot işlemciler ortaya çıkınca işlemci çekirdeğinin üzerinde kartuş şeklindeki paketlerde yer aldı. Bununla beraber çekirdeğin dışında ve işlemciyle aynı yapıda kullanılmaya başlandı. Bu kısa geçiş döneminden sonraysa L2 önbellek işlemci çekirdeklerine entegre edildi.
♦ L3 ön bellek (cache): L3 ön belleklerinin kapasiteleri 2MB ile 256 MB arasında değişir. Yeni bir teknolojidir. Çok çekirdekli işlemcilerde bütün çekirdeklere tek bir bellekle hizmet vermek akıllıca bir yaklaşım olacağı düşüncesiyle geliştirilmiştir.