Interval Simülasyon

        Interval simülasyon, çok-çekirdekli ve çok işlemcili sistemleri, ayrıntılı döngü hassas(cycle-accurate) simülasyonun mevcut uygulamasına kıyasla daha yüksek bir soyutlama seviyesinde simüle etmek için yakın zamanda önerilen bir simülasyon yaklaşımıdır.Bu teknik, mekanistik bir analitik modelden yararlanır. Bu model çekirdeklerin pipeline aşamaları boyunca bireysel komutların ayrıntılı takibi olmadan, tek bir çekirdeğin zamanlama simülasyonunu gerçekleştirir. Modelin temeli, ıska olaylarının (dallanma yanlış tahminleri, önbellek ve TLB ıskaları, serileştirme komutları vb.), pipeline'daki komutların kesintisiz akışını aralıklarla bölmesidir. Dallanma tahminleyicisi, bellek hiyerarşisi, önbellek tutarlılığı ve arabağlantı ağ simülatörleri ıska olaylarını belirler; analitik model, her bir aralığın zamanlamasını türetir. Mekanistik analitik model ile ıska olayı simülatörleri arasındaki işbirliği, çok çekirdekli işlemcilerde ortak yürütülen iş parçacıklarının arasındaki sıkı performans karmaşıklığının modellenmesini sağlar.

        Çok çekirdekli interval simülatörü, bireysel çekirdeklerin zamanlamasını modellemektedir. Simülatör, her simüle edilmiş çekirdek için bir komut penceresini muhafaza eder. Bu komut penceresi, bir süper-ölçek(superscalar) sırasız(out-of-order) işlemcinin yeniden sıralama arabelleğine(reorder buffer) karşılık gelir ve uzun gecikmeli yükleme(load) ıskalarıyla örtüşen ıska olaylarını belirlemek için kullanılır. Fonksiyonel simülatör, pencere kuyruğunda bu pencereye komutları besler. Çekirdek seviyesinde ilerleme (yani zamanlama simülasyonu), pencere başındaki komut dikkate alınarak türetilir.


        Bir I-önbellek ıskası olması durumunda, çekirdek simüle süresi ıska gecikmesiyle artırılır. Bir dallanmanın yanlış tahmin edilmesi durumunda, dallanma çözüm süresi ve ön yüz(front-end) pipeline derinliği çekirdek simüle edilen süreye eklenir, yani, yanlış tahmin edilmiş dallanma ve ön yüz pipeline'ın yeniden doldurulması için gereken döngü sayısına yol açan bağımlı komutlar zincirinin yürütülmesi için cezanın modellenmesidir. Uzun gecikmeli bir yükleme durumunda (yani, bir son seviye önbellek ıskası veya önbellek uyumluluğu(cache coherence) ıskası), ıska süresini çekirdek simulasyon zamanına ekleriz ve uzun gecikmeli yükleme - ikinci dereceden etkiler ile örtüşen bağımsız ıska olayları için pencereyi tararız (önbellek ıskaları ve dallanma yanlış tahminleri). Bir serileştirme komutu için, pencere tahliye süresini simüle edilen çekirdek zamanına ekliyoruz. Yukarıdaki durumların hiçbiri yoksa, komutlar arası bağımlılıkların yanı sıra yürütme gecikmelerini de dikkate alan etkili gönderim oranında komutlar göndeririz.

Davy Genbrugge, Stijn Eyerman and Lieven Eeckhout. Interval Simulation: Raising the Level of Abstraction in Architectural Simulation

Interval Core Model