Önbellek Organizasyonu ve Politikaları
Önbellek organizasyonu, bir önbelleğin bellek bloklarını depolamaya nasıl eşlediği — yerleşimi ve ilişkilendirilebilirliği — ile değiştirme ve yazma işlemlerini yöneten politikalarla ilgilenmektedir; bunlar birlikte önbelleğin isabet sıklığını ve ana bellekle etkileşimini belirlemektedir.
Tanım
Önbellek organizasyonu ve politikaları, bir önbelleğin yapısal ve yönetimsel tercihleridir — blokların nereye yerleştirilebileceği, bir kaçırma durumunda hangi bloğun çıkarılacağı ve yazma işlemlerinin alt seviyelere nasıl yayıldığı gibi konuları kapsar — ve önbelleğin isabet oranını ve davranışını yönetmektedir.
Kapsam
Bu konu, tek bir önbelleğin iç tasarımını kapsamaktadır: doğrudan eşlemeli, küme-ilişkilendirilebilir ve tam ilişkili yerleşim; LRU ve yaklaşımları gibi değiştirme politikaları; yazma politikaları (doğrudan yazma (write-through) ve geri yazma (write-back)) ve yazma tahsisi (write-allocation); blok boyutu; ve kaçırmaların zorunlu, kapasite ve çakışma olarak sınıflandırılması. Çoklu önbellek tutarlılığı (önbellek tutarlılık protokolleri) ve adres çevirisi (sanal bellek ve sayfalama) bu kapsamın dışındadır.
Temel sorular
- Doğrudan eşlemeli, küme-ilişkilendirilebilir ve tam ilişkili yerleşim, maliyet ve çakışma davranışı açısından nasıl farklılık göstermektedir?
- Bir kaçırma durumunda hangi değiştirme politikası bir bloğu çıkarmalıdır ve bu nasıl ucuza yaklaşık olarak uygulanmaktadır?
- Doğrudan yazma (write-through) ve geri yazma (write-back) politikaları trafik ve karmaşıklık açısından nasıl farklılık göstermektedir?
- Kaçırmalar nasıl sınıflandırılmaktadır ve hangi tasarım değişiklikleri her bir türü azaltmaktadır?
Anahtar kavramlar
- doğrudan eşlemeli önbellek
- küme-ilişkilendirilebilir önbellek
- tam ilişkili önbellek
- en az kullanılan (LRU) değiştirme
- doğrudan yazma (write-through) ve geri yazma (write-back)
- yazma tahsisi (write-allocate)
- blok (satır) boyutu
- zorunlu, kapasite ve çakışma kaçırmaları
Temel kuramlar
- Üç C kaçırma modeli
- Önbellek kaçırmaları zorunlu (ilk erişim), kapasite (önbelleğin çalışma kümesi için çok küçük olması) ve çakışma (çok az ilişkilendirilebilirlik) olarak kategorize edilebilmektedir; bu, her bir tasarım parametresini — boyut, blok boyutu, ilişkilendirilebilirlik — azalttığı kaçırmalarla ilişkilendiren bir çerçevedir.
Mekanizmalar
Bir bellek adresi etiket (tag), indeks ve ofset alanlarına ayrılmaktadır. İndeks bir kümeyi seçer, etiket küme içindeki bloğu tanımlar ve ilişkilendirilebilirlik, bir kümeyi kaç bloğun paylaştığını belirler. Bir kaçırma durumunda önbellek bloğu getirir ve bir değiştirme politikası (genellikle en az kullanılanın (least-recently-used) bir yaklaşımı) tarafından seçilen başka bir bloğu çıkarır. Yazma işlemleri ya ana belleği hemen günceller (doğrudan yazma (write-through)) ya da bloğu kirli olarak işaretler ve güncellemeyi erteler (geri yazma (write-back)).
Klinik önem
Önbellek organizasyonu, isabetlere kıyasla kaçırma cezaları büyük olduğundan etkin performansı yönetmektedir. Programcılar, veri düzeni, bloklama ve yerelliği artıran erişim desenleri aracılığıyla önbellek davranışını iyileştirirken, mimarlar ise isabet oranını alan, güç ve bant genişliği ile dengelemek için ilişkilendirilebilirliği, blok boyutunu ve yazma politikasını ayarlamaktadır.
Tarihçe
Wilkes, 1965 yılında yardımcı (önbellek) belleği önermiş ve önbellekler kısa sürede ticari olarak benimsenmiştir. Alan Jay Smith'in 1982 tarihli araştırması, yerleşim, değiştirme ve yazma politikalarına ilişkin kapsamlı ölçümleri sentezleyerek bugün hala kullanılan tasarım terminolojisini oluşturmuştur. Üç C modeli daha sonra kaçırma nedenleri ve çözümleri hakkında akıl yürütmek için yapılandırılmış bir yol sunmuştur.
Öne çıkan isimler
- Maurice Wilkes
- Alan Jay Smith
- John L. Hennessy
- David A. Patterson
İlgili konular
Temel eserler
- smith1982cache
- hennessy2019
Sıkça sorulan sorular
- Doğrudan yazma (write-through) ve geri yazma (write-back) önbellekleri arasındaki fark nedir?
- Doğrudan yazma (write-through) önbelleği, her yazma işleminde hem önbelleği hem de ana belleği güncelleyerek belleği güncel tutar ancak daha fazla trafik oluşturur. Geri yazma (write-back) önbelleği ise yalnızca önbelleği günceller, bloğu kirli olarak işaretler ve belleğe yalnızca çıkarıldığında yazar, bu da ek muhasebe maliyetiyle trafiği azaltır.
- Neden doğrudan eşlemeli önbellekler yerine küme-ilişkilendirilebilir önbellekler kullanılmaktadır?
- Doğrudan eşlemeli bir önbellek, her bloğa tam olarak bir konum atar, bu nedenle aynı yuvaya eşlenen bloklar çakışır. Küme ilişkilendirilebilirliği, her bloğa bir küme içinde birkaç olası konum vererek, daha fazla karşılaştırma donanımı ve biraz daha yavaş isabetler pahasına çakışma kaçırmalarını azaltır.