Bellek tutarlılığı
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.[1][2][3][4]
Tek işlemcili (tek çekirdek içeren) bir sistemde, tüm işi yapan sadece bir işlemci birimi vardır ve bu nedenle bu birim belirli bir bellek konumunu okuyabilir veya yazabilir. Sonuç olarak, değer değiştiği zaman, ilgili bellek bölgesine yönelik tüm okuma işlemleri güncellenmiş değeri, öncelleklenmiş olsa bile görecektir.
Diğer tarafından, çok işlemcili (veya çok çekirdekli) sistemlerde aynı anda çalışan iki veya daha işleme birimi vardır, bu yüzden aynı bellek konumuna eşzamanlı olarak erişme ihtimali vardır. Hiçbirinin bu konumu değiştirmediği durumda, o kısmı süresiz paylaşabilirler ve istedikleri gibi önbellekleyebililrler. Ancak herhangi biri ilgili konumu güncellediği anda, diğerleri örneğin kendi yerel önbelleklerinde yer alan eski kopyayla çalışmaya devam edebilirler. Sonuç olarak, paylaşımlı değerlerin değişikliklerini tüm işleme birimlerine bildirecek bir şemaya ihtiyaç vardır; bu tür bir şema bellek tutarlılık protokolü olarak bilinir ve eğer sistemde böyle bir protokol varsa o sistemin tutarlı bir belleği olduğu söylenir.
Bir bellek tutarlılığın gerçek doğası ve anlamı, bu tutarlılık protokolünün gerçekleştirdiği tutarlılık modeliyle belirlenir. Doğru eş zamanlı programlar yazılabilmek için programcıların sistemleri tarafından uygulanan kesin tutarlılık modelinin farkında olmalıdır.
Donanım düzeyinde gerçekleştirildiğinde tutarlılık protokolü örneğin dizin tabanlı veya gözetleme tabanlı (ayrıca dinleme de denir) olabilir. Belirli protokoller arasında MSI protokolü ve ondan türeyen MESI, MOSI ve MOESI sayılabilir.
Ayrıca bakınız
değiştirKaynakça
değiştir- ^ Censier, L.M.; Feautrier, P. (December 1978). "A New Solution to Coherence Problems in Multicache Systems". IEEE Transactions on Computers. C-27 (12). ss. 1112-18. doi:10.1109/TC.1978.1675013.
- ^ Smith, Alan Jay (September 1982). "Cache Memories". ACM Computing Surveys. 14 (3). ss. 473-530. doi:10.1145/356887.356892.
- ^ Li, Kai; Hudak, Paul (November 1989). "Memory coherence in shared virtual memory systems". Transactions on Computer Systems. 7 (4). ss. 321-59. doi:10.1145/75104.75105.
- ^ Stenstrom, Per (June 1990). "A survey of cache coherence schemes for multiprocessors". IEEE Computer. 23 (6). ss. 12-24. doi:10.1109/2.55497.