MSI protokolü temel bir ön bellek tutarlılığı protokolü olup, çoklu işlemci sistemlerinde çalışır. Diğer önbellek tutarlılığı protokollerinde olduğu gibi, protokol isminin baş harfleri önbellek 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.[1] MSI için, ön bellekte bulunan her öbek olası üç durumdan birinde olabilir:
- M - Modified (değiştirilmiş): Öbek değiştirilmiştir, dolayısıyla ön bellekteki veri ana bellekteki veriyle uyumlu değildir. Bir öbeğe "M" durumunda sahip olan önbellek, bu öbek tahliye edileceği zaman onu ana belleğe yazmakla sorumludur.
- S - Shared (paylaşımda): Bu öbek değiştirilmemiştir ve diğer ön belleklerin en az birinde bulunmaktadır. Önbellek ana belleğe yazmadan öbeği tahliye edebilir.
- I - Invalid (geçersiz): Bu öbek geçersizdir ve geçersiz olduğu ön belleğin bağlı olduğu işlemcinin bu öbeği kullanabilmesi için, bu öbeğin ana bellekten veya bir başka ön bellekten getirilmesi gerekir.
Bu tutarlılık durumları, ön bellekler ile ana bellek arasındaki iletişim yoluyla korunur. Öbekler okunduğunda veya yazıldığında ya da başka ön belleklerin okuma veya yazma istekleri öğrenildiğinde, ön belleklerin farklı sorumlulukları vardır.
“M” veya “S” durumundaki bir öbeğe bağlı olduğu işlemciden okuma isteği ulaştığında önbellek veriyi sağlar. Eğer öbek ön bellekte değilse (“I” durumunda), öbeğin bir başka ön bellekte “M” durumunda olmadığından emin olması gerekir. Bu durumu farklı önbellek mimarileri farklı şekilde halleder. Örneğin, veri yolu mimariler genellikle gözetleme (snooping) mekanizmasını kullanır. Gözetleme yönteminde okuma isteği bütün ön belleklere yayılır (broadcast). Diğer bir önbellek mimarisi ise dizinlerdir (directories). Dizin mekanizmasında her öbeğin hangi ön belleklerde ve durumda olduklarını bilen dizin kaydı vardır. Öbek ön bellekte değilken (“I” durumunda) işlemcisinden okuma isteği gelirse ve bir başka önbellek öbeğe “M” durumunda sahipse, “M” durumundaki önbellek veriyi ana belleğe yazmak ve “S” ya da “I” durumuna geçmek zorundadır. “M” öbeği ana belleğe geri yazıldığında, istekte bulunan önbellek öbeği ana bellekten alır ve “S” durumuna geçer.
“M” durumundaki bir ön belleğe bağlı olduğu işlemciden yazma isteği gelirse, önbellek veri yoluna hiçbir şey yollamasına gerek olmaksızın, yerel olarak öbeğe yazabilir. İşlemcisinden yazma isteği geldiğinde öbek “S” durumundaysa, ön belleğin, başka ön belleklerin de öbeğe “S” durumunda sahip olma ihtimali bulunduğundan bu isteği bildirmesi gerekir ki diğer ön bellekler kendilerinde bulunan kopyaların artık geçersiz olduğunu bilsinler. Bu bilgilendirme de, mimariye göre, gözetleme veya dizin yöntemiyle gerçekleşebilir. Bilgilendirme sonrası yazma işlemi gerçekleşir. İşlemcisinden yazma isteği gelen ön bellekte öbek mevcut değilse (“I” durumu), ön belleğin öbeğe S" veya “M” durumunda sahip olan diğer ön belleklere yazma niyetini bilgilendirmesi gerekir. Bu ön bellekler öbek kopyasına “S” durumunda sahiplerse kopyalarını geçersizleştirsinler. Ancak “M” durumunda sahipse ana belleğe ve/veya istekte bulunan ön belleğe öbeği gönderir. Yazmayı yapan işlemciye bağlı önbellek sonuçta “M” durumuna geçer.
Bu protokol SGI 4D makinesinde kullanılmıştır.
Kaynakça