Önbellek tutarlılığı

Ön bellek tutarlılığı, paylaşılan kaynağın yerel ön belleğinde kaydedilen verinin tutarlılığını ifade eder. Bir bilgisayar sistemindeki istemciler ortak bir bellek kaynağının ön belleğini kullandıklarında, tutarsız verilerle ilgili sorunlar ortaya çıkabilir. Bu, bilhassa, çoklu işleme yapan sistemlerdeki merkezi işlem birimi için geçerlidir.[1]

Paylaşılan Belleğe Bağlı Ön bellekler

Paylaşılan belleğe bağlı ön bellekler şekline istinaden, üstteki istemcide bir önceki okumasından kalan bir bellek öbeği kopyası varsa ve alttaki istemci o bellek öbeğini değiştirirse, üstteki istemci değişiklikten habersiz olarak geçersiz bir ön bellek bilgisiyle kalacaktır. Ön bellek tutarlılığı bu gibi çakışmaları idare etmek ve ön bellek ile bellek arasındaki tutarlılığı muhafaza etmeyi amaçlar.

Tutarlılık protokolü

Tutarlılık protokolü dağıtık-paylaşımlı bir bellek sisteminde, ön bellekler arasındaki tutarlılığı muhafaza eden protokoldür. Bu protokol belirli bir uyumluluk (consistency) modeline göre bellek tutarlılığını sağlar. Eski çoklu işlemci sistemleri sıralı uyumluluk (sequential consistency) modelini desteklerken yeni sistemler genellikle serbest (release) veya zayıf (weak) uyumluluk modellerini destekler.

Bu protokollerin durumlar arası geçişleri her gerçekleştirme için farklı olabilir. Örneğin belli bir gerçekleştirme, okumada-güncelle, yazmada-güncelle, okumada-geçersiz-kıl, yazmada-geçersiz-kıl gibi güncelleme ve geçersiz kılma durum geçişlerinden birini seçebilir. Geçiş seçimi ön bellekler arası trafik miktarını etkileyebilir. Bu da gerçekte mümkün olan bant genişliğine bağlı olabilir. İşlemci ön bellekleri arasında yoğun çekişmeye sebep olabilecek dağıtık yazılım tasarımında bunun dikkate alınması gerekir.

Ön bellek tutarlılığını muhafaza etmek için muhtelif model ve protokoller tasarlanmıştır. MSI, MESI (Illinois protokolü), MOSI, MOESI, MERSI, MESIF, tek-yaz, Synapse, Berkeley, Firefly ve Dragon protokolleri bunlardan bazılarıdır.

Bir protokol işlemci ön belleklerini, ön bellekteki veri hedef belleğe transfer edilmeden önce kaybedilmeyecek şekilde idare eder. İki veya daha fazla bilgisayar işlemcisi bir program üzerinde birlikte çalıştığında, her bir işlemci genellikle ortak kullanılan ve daha büyük olan RAM'den ayrı olarak kendi ön belleğine sahiptir. Ön bellek, bellek için kullanılan dinamik RAM'e (DRAM) göre yüksek hızlı statik RAM'den (SRAM) yapılmış bir parçadır. Programların çoğu aynı veri veya buyruklara sık sık eriştiklerinden, bellek verisini ön belleğe almak çok etkin bir yöntemdir. Erişilen bilgiyi olabildiğince SRAM'de tutarak bilgisayar, daha yavaş olan DRAM'e erişmek durumunda kalmaz. Kendi ön belleklerine sahip birden çok işlemci ortak bir ana-belleği paylaştığında, paylaşılan ve herhangi bir ön bellekte değiştirilmiş verinin bütün sistemde değiştirilmiş olmasını temin ederek ön bellekleri tutarlı tutmak gerekir. Bu iki yolla yapılır: dizin (directory) veya gözetleme (snooping) tabanlı bir sistemle.

Dizin-tabanlı bir sistemde paylaşılan veri, ön bellekler arası tutarlılığı idare eden ortak bir dizine konulur. Bu dizin, işlemcinin ana bellekten bir öğeyi kendi ön belleğine yüklemek için izin istemesi gereken bir filtre gibidir. Bir öğe değiştirildiğinde, dizin bu öğeye sahip diğer ön bellekleri günceller veya geçersiz kılar.

Gözetleme tabanlı bir sistemde veri yolu üzerindeki bütün ön bellekler, veri yolundan istenen veri öbeğinin bir kopyasına sahip olup olmadıklarını belirlemek için veri yolunu gözetler. Her bir ön bellek, sahip olduğu bütün veri öbeklerinin paylaşım durum bilgilerine sahiptir. Paylaşılan veri öbeklerinden kaynaklı bağlı ön bellekte bulamama ve veri yolu trafiği, çok işlemcili sistemlerde paralel programlama performansını sınırlar. Ön bellek tutarlılığı veri paylaşımıyla ilgili problemleri çözmeyi amaçlar. Uyumluluk modeli seçimi tutarlı ön belleğe sahip bir sistem tasarlamak için çok önemlidir. Tutarlılık modelleri performans ve ölçeklenebilirlik olarak farklılık gösterir ve her sistem tasarımı için farklı değerlendirilmesi gerekir.[2]

Kaynakça

"Önbellek Tutarlılığı Nedir?". Erişim tarihi: 19 Temmuz 2024. Arşivlenmesi gereken bağlantıya sahip kaynak şablonu içeren maddeler (link)

"Önbellek Tutarlılığı Nedir? - Önbellek Tutarlılığının Amacı Nedir?". Erişim tarihi: 19 Temmuz 2024. Arşivlenmesi gereken bağlantıya sahip kaynak şablonu içeren maddeler (link)

[2]

  1. ^ "Önbellek tutarlılığı". www.ibm.com. Erişim tarihi: 19 Temmuz 2024. Arşivlenmesi gereken bağlantıya sahip kaynak şablonu içeren maddeler (link)
  2. ^ a b GeeksforGeeks. (2024, June 3). Cache coherence protocols in multiprocessor system. https://www.geeksforgeeks.org/cache-coherence-protocols-in-multiprocessor-system/
  • g
  • t
  • d
Paralel hesaplama
Genel
Koşutluk düzeyleri
Bit · Komut · Veri · Görev
İzlekler
Üst izlekleme · Yüksek izlekleme
Kuram
Amdahl yasası · Gustafson yasası · Karp-Flatt ölçütü · Yavaşlama · Hızlanma
Ögeler
İşlem · İzlek · Lif · PRAM · Buyruk penceresi · Dizi
Eşgüdüm
Çoklu işleme · Çoklu izlekleme · Bellek tutarlılığı · Ön bellek tutarlılığı · Engel · Eşzamanlılaştırma · Aşamalı uygulama denetimi
Programlama
Modeller (Gizli koşutluk · Açık koşutluk · Koşutzamanlılık)
Donanım
Flynn Sınıflandırması (SISD • SIMD • MISD • MIMD) · Boru hattı yöntemi · Çoklu işleme (Bakışımlı · Bakışımsız) · Bellek (NUMA · COMA · Dağıtık · Paylaşımlı · Dağıtık paylaşımlı) · SMT
MPP · Sayılüstü · Dizi işlemcisi · Süper bilgisayar · Beowulf
APIler
POSIX Threads · OpenMP · MPI · OpenCL · UPC · Intel İzlekleme Yapıtaşları · Boost.Thread · Evrensel Diziler · Charm++ · Cilk · CUDA · PVM
Sorunsallar
Olağanüstü koşutluk · Büyük Sorun · Yazılım durağanlığı  · Ölçeklenebilirlik  · Yarışma koşulları  · Deadlock  · Gerekirci algoritma
  • Kategori Kategori
  • Commons sayfası Paralel hesaplama