Hafıza tutarlılığı - Memory coherence

Hafıza tutarlılığı tasarımını etkileyen bir konudur bilgisayar sistemleri iki veya daha fazla işlemciler veya çekirdek ortak bir alanı paylaşmak hafıza.[1][2][3][4]

İçinde tek işlemcili sistemi (bugünün terimleriyle, yalnızca bir çekirdek vardır), yalnızca bir işleme öğesi tüm işi ve dolayısıyla belirli bir bellek konumundan okuyabilen veya bu konuma yazabilen yalnızca bir işlem öğesi. Sonuç olarak, bir değer değiştirildiğinde, karşılık gelen bellek konumuna ait sonraki tüm okuma işlemleri, değiştirilmiş olsa bile güncellenmiş değeri görecektir. önbelleğe alınmış.

Tersine, içinde çok işlemcili (veya çok çekirdekli ) sistemlerde, aynı anda çalışan iki veya daha fazla işlem öğesi vardır ve bu nedenle aynı bellek konumuna aynı anda erişmeleri mümkündür. Hiçbirinin bu konumdaki verileri değiştirmemesi koşuluyla, süresiz olarak paylaşabilir ve istedikleri gibi önbelleğe alabilirler. Ancak biri konumu güncellediği anda diğerleri, örneğin yerel önbelleklerinde bulunan güncel olmayan bir kopya üzerinde çalışabilir. Sonuç olarak, paylaşılan değerlerdeki değişikliklerin tüm işleme unsurlarını bildirmek için bazı şemalar gereklidir; böyle bir şema olarak bilinir bellek tutarlılık protokolüve eğer böyle bir protokol kullanılırsa, sistemin bir tutarlı hafıza.

Hafıza tutarlılığının kesin doğası ve anlamı, tutarlılık modeli tutarlılık protokolünün uyguladığı. Doğru eşzamanlı programlar yazmak için, programcılar kendi sistemleri tarafından kullanılan kesin tutarlılık modelinin farkında olmalıdır.

Donanıma uygulandığında, tutarlılık protokolü, örneğin, dizin tabanlı veya gözetleme tabanlı (ayrıca denir koklama). Özel protokoller şunları içerir: MSI protokolü ve türevleri MESI, MOSI ve MOESI.

Ayrıca bakınız

Referanslar

  1. ^ Censier, L.M .; Feautrier, P. (Aralık 1978). "Çok Önbellekli Sistemlerde Tutarlılık Sorunlarına Yeni Bir Çözüm". Bilgisayarlarda IEEE İşlemleri. C-27 (12): 1112–18. doi:10.1109 / TC.1978.1675013.
  2. ^ Smith, Alan Jay (Eylül 1982). "Önbellek Anıları". ACM Hesaplama Anketleri. 14 (3): 473–530. doi:10.1145/356887.356892.
  3. ^ Li, Kai; Hudak, Paul (Kasım 1989). "Paylaşılan sanal bellek sistemlerinde bellek tutarlılığı". Bilgisayar Sistemlerinde İşlemler. 7 (4): 321–59. doi:10.1145/75104.75105.
  4. ^ Stenstrom, Per (Haziran 1990). "Çok işlemciler için önbellek tutarlılık şemaları incelemesi". IEEE Bilgisayar. 23 (6): 12–24. doi:10.1109/2.55497.