Bellek Tutarlılığı Nedir ve Nasıl Çalışır?

Bir an için birkaç çekirdekli bir sistemimiz olduğunu, ancak hiçbirinin bir önbellek hiyerarşisine sahip olmadığını ve dolayısıyla paylaşılan bir bellek görünümüne sahip olmadığını hayal edin.

Bellek Tutarlılığı

Sorun, RAM ve işlemciler arasındaki hız farkı nedeniyle, işlemcinin her zaman yürüttüğü koda en yakın olan sayfaları veya bellek satırlarını kopyalayan önbellek kullanılmaya son verilmiş olmasıdır.

İşlemci RAM Mesafesi

Performans darboğazlarını önleyen önbelleklerin kullanılması, işlemciler yönergeleri doğrudan RAM’de değil, önbelleklerde yürüttüğü için tutarlılık sorunları yaratır, bu nedenle önbelleklerde depolanan bilgilerin olduğundan emin olmak için bir tutarlılık sistemi uygulamak gerekir. doğru.

Veri tutarlılığı ve bellek tutarlılığı

Veri tutarlılığı

Verilerin tutarlılığı, programlar ve RAM arasındaki sözleşmeye, yani hafızayı nasıl kullanacaklarına, özellikle de farklı yürütme işlemlerinin birbirleriyle nasıl iletişim kuracaklarına işaret eder. Örneğin, iş parçacığı 1, iş parçacığının 2 verisine B ve veri A’ya ihtiyaç duyar, böylece verilerin doğru olması, çalıştırılan programın doğru çalışması için idealdir.

Bellek tutarlılığı, bunun yerine, yazılım için tamamen şeffaf olan ve arka planda otomatik olarak çalışan, farklı çekirdeklerin ortak, yani tamamen bellek görünümüne sahip olmasını sağlayan, donanım düzeyindeki bir mekanizmadır. tutarlı.

Önbellek Bilgi Problemi

Çift çekirdek

Daha önce de söylediğimiz gibi, karmaşık bir tutarlılık sistemini gerekli kılan şey önbelleklerdir, bunun nedeni çok basittir ve iki tür önbellek olduğu gerçeğiyle ilgilidir:

  • Özel Önbellekler : Çekirdeklere yakın, onlardan çok daha küçük ve tamamen özel, özel önbelleklerdeki bellek adreslerinin kopyalarında önbellek uyum sistemi olmadan yapılan herhangi bir değişiklik kopyalara yansımayacaktır.
  • Paylaşılan Önbellekler: Çekirdeklerden daha uzaktadırlar, özel önbelleklerden çok daha büyüktürler.

Donanım mühendisleri için en kolay şey, farklı özel önbellekleri RAM’e bağlamak olacaktır; karşılaştıkları sorun, RAM belleğinin ortalama olarak birkaç bellek kanalına sahip olmasıdır, bu nedenle bir çekirdek RAM’e erişirken diğerlerinin yanında olacaklardır. Bu nedenle paylaşılan bir önbellek her zaman son seviyede kullanılır, bu da RAM’in bağlı olduğu şeydir.

Önbellek Hiyerarşisi

Önbellek hiyerarşisinde, her bir önbellek düzeyinin tek iletişimi, özel önbelleklerin doğrudan RAM’e değil, yalnızca paylaşılan önbelleğe veya önbelleğin sonraki veya önceki düzeylerine bağlanacağı şekilde, bağlı olduğu düzeydedir. varsa özel önbellek.

Bellek tutarlılığı için koklama mekanizması

önbellek

Önbellek tutarlılığı herhangi bir yardımcı işlemci aracılığıyla uygulanmaz, ancak donanıma entegre edilmiş bir dizi mekanizma aracılığıyla en çok kullanılan iki tutarlılık protokolü şunlardır:

  • Yaz ve geçersiz kıl: Bir belleğe yazma işlemi gerçekleştirildiğinde, bu bellek satırının farklı önbelleklerdeki tüm kopyaları geçersiz kılınır. Çekirdekleri verilerini güncellemeye zorlar.
  • Yaz ve güncelle: Bu sistemde, bir işlemci bir önbellek satırına yazdığında, farklı önbelleklerdeki tüm kopyalar güncellenir.

Hangi önbellek hatlarının değiştirildiğini bulmak için, farklı çekirdekler tarafından belleğe ve önbelleklere erişimi izleyen bir donanım mekanizması olan “algılayıcı” kullanılır, böylece tutarlılık sistemi her an hangi bellek değişikliklerini adreslediğini bilir. Bu yöntemin sorunu, çok sayıda çekirdekle çok iyi ölçeklenmemesidir.

Dizin tabanlı bellek tutarlılık mekanizması

Elektronik Devre Mikroskobu

Bu tutarlılık sistemi, farklı bellek satırlarının bulunduğu önbelleklerin bir dizinini korumaya dayanmaktadır. Bu sistem, bir işletim sisteminin dizin organizasyonunun donanım düzeyinde bir uygulamasıdır. Dizin, farklı önbellek hatlarının verilerini değil, farklı bellek hatlarının hangi önbellek satırlarında kopyalandığını saklamaktadır.

Çekirdek sayısı ile koklama mekanizmasından çok daha iyi ölçeklendirilmesi özelliğine sahiptir, ancak yine de belleğe yapılan tüm erişimleri farklı olacak şekilde kaydeden daha gelişmiş bir koklama mekanizmasıdır. çekirdekler, hangi işlemcilerin önceden bir önbellek hattından verilere eriştiğini bilir.