Donanım Yazılım Değişimi
Donanım maliyetini düşürmenin birçok yöntemi vardır. Bir yöntem, iletişim yardımını ve ağı işlem düğümüne daha az sıkı bir şekilde entegre etmek ve iletişim gecikmesini ve doluluğu artırmaktır.
Diğer bir yöntem, donanımdan çok yazılımda otomatik çoğaltma ve tutarlılık sağlamaktır. İkinci yöntem, ana bellekte çoğaltma ve tutarlılık sağlar ve çeşitli tanecikliklerde yürütülebilir. Düğümler ve ara bağlantı için kullanıma hazır emtia parçalarının kullanımına izin vererek donanım maliyetini en aza indirir. Bu, iyi performans elde etmek için programcıya baskı uygular.
Rahat Bellek Tutarlılık Modelleri
Paylaşılan bir adres alanı için bellek tutarlılık modeli, aynı veya farklı konumlardaki bellek işlemlerinin birbirine göre yürütüldüğü sırada sınırlamaları tanımlar. Aslında, paylaşılan bir adres alanı adlandırma modelini destekleyen herhangi bir sistem katmanı, programcının arabirimini, kullanıcı-sistem arabirimini ve donanım-yazılım arabirimini içeren bir bellek tutarlılık modeline sahip olmalıdır. Bu katmanla etkileşime giren yazılım, kendi bellek tutarlılık modelinin farkında olmalıdır.
Sistem Özellikleri
Bir mimarinin sistem özelliği, bellek işlemlerinin sıralanmasını ve yeniden sıralanmasını ve bundan gerçekte ne kadar performans elde edilebileceğini belirtir.
Aşağıda, gevşemeleri program sırasına göre kullanan birkaç spesifikasyon modeli verilmiştir -
Relaxing the Write-to-Read Program Order- Bu model sınıfı, donanımın birinci seviye önbellekte kaçırılan yazma işlemlerinin gecikmesini bastırmasına izin verir. Yazma hatası, yazma arabelleğinde olduğunda ve diğer işlemciler tarafından görülmediğinde, işlemci, önbelleğine giren okumaları veya hatta önbelleğinde eksik olan tek bir okumayı tamamlayabilir.
Relaxing the Write-to-Read and Write-to-Write Program Orders- Yazmaların çeşitli konumlara önceki olağanüstü yazma işlemlerini atlamasına izin verilmesi, ana belleği güncellemeden önce yazma arabelleğinde birden çok yazma işleminin birleştirilmesini sağlar. Böylelikle birden fazla yazma, örtüşmeyi özler ve sıra dışı görünür hale gelir. Motivasyon, yazma gecikmesinin işlemci kırılma süresi üzerindeki etkisini daha da azaltmak ve yeni veri değerlerini diğer işlemciler tarafından görülebilir hale getirerek işlemciler arasındaki iletişim verimliliğini artırmaktır.
Relaxing All Program Orders- Bir süreç içindeki veri ve kontrol bağımlılıkları dışında hiçbir program siparişi varsayılan olarak garanti edilmez. Bu nedenle, avantaj, birden fazla okuma talebinin aynı anda olağanüstü olabilmesi ve program sırasında sonraki yazmalarla atlanabilmesidir ve kendileri sıra dışı olarak tamamlayarak okuma gecikmesini gizlememize olanak tanır. Bu tür modeller, dinamik olarak zamanlanmış işlemciler için özellikle kullanışlıdır ve diğer bellek referanslarına yönelik geçmiş okumaları okumaya devam edebilir. Derleyici optimizasyonları tarafından yapılan erişimlerin ortadan kaldırılmasına kadar birçok yeniden sıralamaya izin verirler.
Programlama Arayüzü
Programlama arayüzleri, senkronizasyon işlemleri arasında program siparişlerinin hiçbir şekilde sürdürülmesi gerekmediğini varsayar. Tüm senkronizasyon işlemlerinin açıkça etiketlenmesi veya bu şekilde tanımlanması sağlanır. Çalışma zamanı kitaplığı veya derleyici, bu senkronizasyon işlemlerini, sistem özelliği tarafından istenen uygun sipariş koruma işlemlerine çevirir.
Sistem daha sonra, bir işlem içindeki bir konuma bağımlılıkları bozmadan, senkronizasyon işlemleri arasında işlemleri istediği şekilde yeniden sıralayabilse bile, sıralı olarak tutarlı yürütmeleri garanti eder. Bu, derleyiciye, istediği yeniden sıralama için senkronizasyon noktaları arasında yeterli esneklik sağlar ve aynı zamanda işlemciye, bellek modelinin izin verdiği kadar yeniden sıralama gerçekleştirmesini sağlar. Programcının arayüzünde, tutarlılık modeli en azından donanım arayüzününki kadar zayıf olmalıdır, ancak aynı olması gerekmez.
Çeviri Mekanizmaları
Çoğu mikroişlemcide, etiketleri koruma mekanizmaları sırasına çevirmek, senkronizasyon olarak etiketlenen her işlemden önce ve / veya sonra uygun bir bellek bariyeri talimatının eklenmesi anlamına gelir. Hangi siparişlerin uygulanacağını ve ekstra talimatlardan kaçınılacağını belirten bireysel yükler / mağazalar ile talimatları kaydeder. Bununla birlikte, işlemler genellikle seyrek olduğundan, bu, çoğu mikroişlemcinin şimdiye kadar yaptığı yöntem değildir.
Kapasite Sınırlamalarını Aşmak
Sadece işlemci önbelleğinde donanımda otomatik çoğaltma ve tutarlılık sağlayan sistemleri tartıştık. Bir işlemci önbelleği, önce yerel ana bellekte çoğaltılmadan, doğrudan referans üzerine uzaktan tahsis edilen verileri çoğaltır.
Bu sistemlerle ilgili bir sorun, yerel çoğaltma kapsamının donanım önbelleği ile sınırlı olmasıdır. Önbellekten bir blok değiştirilirse, tekrar ihtiyaç duyulduğunda uzak bellekten getirilmesi gerekir. Bu bölümde tartışılan sistemlerin temel amacı, çoğaltma kapasitesi sorununu çözmektir, ancak yine de donanımda tutarlılık ve verimlilik için önbellek bloklarının ince ayrıntı düzeyini sağlamaktır.
Üçüncül Önbellekler
Çoğaltma kapasitesi sorununu çözmek için bir yöntem, büyük ancak daha yavaş bir uzaktan erişim önbelleği kullanmaktır. Bu, makinenin düğümlerinin kendilerinin küçük ölçekli çok işlemciler olduğu ve performans için basitçe daha büyük hale getirilebildiği durumlarda işlevsellik için gereklidir. Ayrıca, yerel işlemci önbelleğinden değiştirilen çoğaltılmış uzak blokları da tutacaktır.
Yalnızca Önbellek Bellek Mimarileri (COMA)
COMA makinelerinde, tüm ana bellekteki her bellek bloğunun kendisine bağlı bir donanım etiketi vardır. Her zaman bir bellek bloğu için ayrılan alan güvencesinin olduğu sabit bir düğüm yoktur. Veriler, onlara erişen / çeken düğümlerin ana belleklerine dinamik olarak taşınır veya bu belleklerde çoğaltılır. Uzak bir bloğa erişildiğinde, çekim belleğine kopyalanır ve önbelleğe getirilir ve donanım tarafından her iki yerde tutarlı tutulur. Bir veri bloğu herhangi bir çekim belleğinde bulunabilir ve birinden diğerine kolayca hareket edebilir.
Donanım Maliyetini Düşürmek
Maliyetin düşürülmesi, özel donanımın bazı işlevlerinin mevcut donanım üzerinde çalışan yazılıma taşınması anlamına gelir. Yazılımın ana bellekte çoğaltma ve tutarlılığı yönetmesi donanım önbelleğine göre çok daha kolaydır. Düşük maliyetli yöntemler, ana bellekte çoğaltma ve tutarlılık sağlama eğilimindedir. Tutarlılığın verimli bir şekilde kontrol edilebilmesi için, yardımın diğer işlevsel bileşenlerinin her biri, donanım uzmanlığı ve entegrasyonundan yararlanılabilir.
Araştırma çabaları, örneğin özel donanımlarda erişim kontrolü gerçekleştirmek, ancak diğer faaliyetleri yazılım ve emtia donanımına atamak gibi farklı yaklaşımlarla maliyeti düşürmeyi amaçlamaktadır. Diğer bir yaklaşım, yazılımda erişim kontrolü gerçekleştirmektir ve özel donanım desteği olmayan ticari düğümler ve ağlar üzerinde tutarlı bir paylaşılan adres alanı soyutlaması tahsis etmek için tasarlanmıştır.
Paralel Yazılım için Çıkarımlar
Rahat bellek tutarlılık modeli, paralel programların istenen çakışan erişimleri senkronizasyon noktaları olarak etiketlemesine ihtiyaç duyar. Bir programlama dili, bazı değişkenlerin senkronizasyon olarak etiketlenmesi için destek sağlar ve bu daha sonra derleyici tarafından uygun sipariş koruma talimatına çevrilir. Derleyicilerin paylaşılan belleğe erişimlerin yeniden sıralanmasını kısıtlamak için, derleyici etiketleri kendi başına kullanabilir.