İçeriğe atla

Önbellek tutarlılığı

Ön bellek tutarlılığı, paylaşılan kaynağın yerel ön belleğinde kaydedilen verinin tutarlılığını ifade eder.[1] 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.[2]

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.[3]

Kaynakça

  1. ^ "Önbellek Tutarlılığı Nedir? - Önbellek Tutarlılığının Amacı Nedir?". 20 Temmuz 2024 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Temmuz 2024. 
  2. ^ "Önbellek tutarlılığı". www.ibm.com. 20 Temmuz 2024 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Temmuz 2024. 
  3. ^ GeeksforGeeks (3 Haziran 2024). "Cache coherence protocols in multiprocessor system". 10 Ağustos 2024 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Temmuz 2024. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">RAM</span> herhangi bir sırada okunabilen ve değiştirilebilen bir tür geçici veri deposu

Rastgele erişimli hafıza veya rastgele erişimli bellek mikroişlemcili sistemlerde kullanılan, genellikle çalışma verileriyle birlikte makine kodunu depolamak için kullanılan herhangi bir sırada okunabilen ve değiştirilebilen bir tür geçici veri deposudur. Buna karşın diğer hafıza aygıtları saklama ortamındaki verilere önceden belirlenen bir sırada ulaşabilmektedir, çünkü mekanik tasarımları ancak buna izin vermektedir.

Durağan Rastgele Erişimli Bellek, yarı-iletken bir bellek türüdür.

Bellek bilgisayarı oluşturan 3 ana bileşenden biridir.. İşlemcinin çalıştırdığı programı, lar ve programa ait bilgiler bellek üzerinde saklanır. Bellek geçici bir depolama alanıdır. Bellek üzerindeki bilgiler güç kesildiği anda kaybolurlar. Bu nedenle bilgisayarlarda programları daha uzun süreli ve kalıcı olarak saklamak için farklı birimler mevcuttur.

<span class="mw-page-title-main">DRAM (bilgisayar)</span>

Dinamik Rastgele Erişimli Bellek, dinamik rastgele erişimli bellek bir tümleşik devre içinde her bir veri bitini ayrı bir kapasitör içinde saklayan Rastgele Erişimli Bellek türüdür. Kapasitörler yapıları gereği bir süre sonra boşalacağından yenileme/tazeleme (refresh) devresine ihtiyaçları vardır. Bu yenileme ihtiyacından dolayı DRAM, SRAM ve diğer statik belleklerin zıddı durumundadır. DRAM’in SRAM üzerindeki avantajı onun yapısal basitliğidir: 1 bit için 1 transistör ve 1 kapasitör DRAM için yeterliyken SRAM için 6 transistör gerekir. DRAM, yenileme devresinden dolayı çok yer kaplar. Güç kaynağı açık olduğu durumda DRAM ve SRAM sakladığı verileri korur bu nedenle her iki bellek aygıtı da volatiledir.

<span class="mw-page-title-main">Athlon 64</span>

Athlon 64, AMD firması tarafından 2003 yılından beri üretilen işlemci ailesidir.

i486

Intel 80486 yazılım (software) açısından I486 ailesinin yazılım içeriği, Intel 80386 içeriğiyle birkaç değişiklik dışında hemen hemen aynısıdır.

İşlemci önbelleği, CPU'nun hafızadaki verilere ulaşma süresini azaltan bir donanımdır. Ana belleğe(RAM) kıyasla küçük, hızlı ve işlemci çekirdeğine yakındır. Sık kullanılan veriler ya da en güncel veriler işlemci önbelleğinde saklanır. Günümüzde pek çok CPU, birden çok seviyede önbellek içerir, bu önbellekler verilerin yanı sıra komutları da bünyesinde tutar.

Mikroişlemcinin programı işletmesi sırasında geçici olarak kullandığı bölgedir.

NUMA, Düzensiz Bellek Erişimi veya Düzensiz Bellek MimarisiNon-Uniform Memory Access veya Non-Uniform Memory Architecture” (NUMA) çok işlemcililerde bellek erişim zamanının belleğin işlemci üzerindeki yerine bağlı olduğu bir bilgisayar belleği tasarımıdır. NUMA altında bir işlemci kendi yerel belleğine yerel olmayan bellekten daha hızlı bir şekilde ulaşır, diğer bir ifadeyle, bir başka işlemcinin yerel belleğinden veya işlemciler arasında paylaşılan bellekten daha hızlı erişir.

<span class="mw-page-title-main">Bilgisayar mimarisi</span>

Bilgisayar mimarisi, en küçüğe ve en başarılıya ulaşmayı hedeflerken aynı zamanda maliyeti de göz önünde bulundurduğu için sanat ve bilimin ortak buluştuğu nokta olarak da tanımlanır. Bilgisayar Mimarisi, bilgisayar parçalarının iç yapıları ve aralarındaki haberleşme bağlantıları ile ilgilidir.

Sanal bellek, fiziksel belleğin görünürdeki miktarını arttırarak uygulama programına (izlence) fiziksel belleğin boyutundan bağımsız ve sürekli bellek alanı sağlayan bilgisayar tekniğidir. Ana belleğin, diskin (ikincil saklama) önbelleği (cache) gibi davranmasıyla; yani disk yüzeyini belleğin bir uzantısıymış gibi kullanmasıyla gerçekleştirilir. Ancak gerçekte, yalnızca o anda ihtiyaç duyulan veri tekerden ana belleğe aktarılıyor olabilir. Günümüzde genel amaçlı bilgisayarların işletim sistemleri çoklu ortam uygulamaları, kelime işlemcileri, tablolama uygulamaları gibi sıradan uygulamalar için sanal bellek yöntemi kullanılmaktadır.

Çok çekirdekli işlemci, ikiden fazla işlemciden (çekirdek) oluşan bir hesaplama birimi. Bilgisayarlarda temel komut kümesi işlemlerini gerçekleştirir.

<span class="mw-page-title-main">MESI Protokolü</span>

Aynı zamanda Illinois protokolü olarak da bilinen MESI protokolü yaygın olarak kullanılan bir ön bellek tutarlılığı protokolüdür. Intel'in Pentium işlemcilerinde kullanılan ön belleklerde verimliliği artırmak için kullanılmıştır.

Bellek hiyerarşisi çeşitli veri depolama birimlerinin veri iletim hızı/işlem gücüne göre hiyerarşik olarak sıralanmasına verilen addır. İşlemcilerin hızı ve işlem gücü arttıkça bilgisayar mimarisini oluşturan veri saklama birimlerinin işlemciyle arasındaki senkron farkı gitgide artmaktadır. Veri depolama birimleri arasındaki bu tür farklılıkların önüne geçmek, işlemcinin döngülerce diğer birimlerin veri işlemesi/iletmesi sırasında beklemesini engellemek için önbellek (cache) adı verilen geçiş birimleri oluşturulmuştur.

<span class="mw-page-title-main">Yazmaç öbeği</span>

Yazmaç öbeği, bir merkezi işlem birimindeki işlemci yazmaçlarının bir dizisini ifade etmektedir. Modern tümleşik devre tabanlı yazmaç öbekleri genellikle çok portlu hızlı durağan rastgele erişimli bellekleri (SRAM) kullanılarak sistemlere tümleştirilmektedirler. Bu tür rastgele erişimli bellekleri kullandıkları okuma ve yazma girişlerine göre ayrılır, fakat normal çok portlu durağan rastgele erişimli bellekler okuma ve yazma işlemlerini aynı girişleri kullanarak gerçekleştirebilmektedirler.

Önden yürütüm işlemcinin ön bellekte bulamama durumunda boşa harcayacağı çevrimlerin beklemekte olan buyrukların önceden yürütülmesi ile faydalı şekilde kullanılması esasına dayalı bir bilgisayar mimarisi tekniğidir. Bu şekilde önceden yürütülecek olan buyruklar ile gelecekte oluşacak olan önbellekte bulamama durumları tespit edilerek, işlemcinin boşta olan yürütüm kaynakları kullanılarak faydalı buyruk ve veri ön yüklemeleri yapılması sağlanır.

MSI protokolü temel bir ön bellek tutarlılığı protokolü olup, çoklu işlemci sistemlerinde çalışır. Diğer ön bellek tutarlılığı protokollerinde olduğu gibi, protokol isminin baş harfleri ön bellek satırının bulunabileceği olası durumların İngilizce isimlerini söyler. .MSI dosya uzantılı bir dosya bir Windows Installer Paketi dosyasıdır. MSI için, ön bellekte bulunan her öbek olası üç durumdan birinde olabilir:

MOESI diğer ön bellek tutarlılığı protokollerinin çoğunda kullanılan durumları kapsayan tam bir protokoldür. Yaygın olan dört yaygın MESI durumları yanında, bu protokolde beşinci bir "Sahip (Owned)" durumu mevcuttur ki hem değiştirilmiş hem de paylaşılan veriyi ifade eder. Bu değiştirilmiş veriyi paylaşmadan önce ana belleğe geri yazma ihtiyacını ortadan kaldırır. Neticede veri yine de ana belleğe yazılmak zorunda olsa da, bu yazma ertelenmiş olur.

<span class="mw-page-title-main">Önbellek</span>

Hesaplamada, önbellek ; veri depolayan bir donanım veya yazılım bileşenidir, böylece bu veriler için gelecekteki talepler daha hızlı bir şekilde yerine getirilebilir; Bir önbellekte depolanan veriler daha önceki bir hesaplamanın sonucu veya başka bir yerde depolanan verilerin bir kopyası olabilir. İstenen veriler bir önbellekte bulunduğunda, önbellek kaçması, yapamadığında önbellek kaçırma şeklinde göründüğünde önbellek isabet oluşur. Önbellek isabetleri, bir sonucu yeniden hesaplamadan veya daha yavaş bir veri deposundan okumadan daha hızlı olan önbellekten veri okuyarak yapılır; bu nedenle, önbellekten ne kadar fazla istek yapılabiliyorsa, sistem o kadar hızlı çalışır.

Bellek tutarlılığı, ortak bir bellek alanı paylaşan bir veya daha fazla işlemci veya çekirdek içeren bilgisayar sistemlerinin tasarımını etkileyen bir konudur.