Paralel Sistemlerde İşlemci
80'lerde, özel amaçlı bir işlemci, çoklu bilgisayarların adı verilen Transputer. Bir transputer, hepsi tek bir çip üzerinde olmak üzere bir çekirdek işlemci, küçük bir SRAM bellek, bir DRAM ana bellek arayüzü ve dört iletişim kanalından oluşuyordu. Paralel bir bilgisayar iletişimi yapmak için, kanallar bir Transputers ağı oluşturmak için bağlandı. Ancak hesaplama gücü eksiktir ve bu nedenle paralel uygulamaların artan talebini karşılayamaz. Bu sorun, RISC işlemcilerin geliştirilmesiyle çözüldü ve aynı zamanda ucuzdu.
Modern paralel bilgisayar, talimat düzeyinde paralellik ve veri düzeyinde paralellik gibi çeşitli düzeylerde paralellik kullanan mikroişlemciler kullanır.
Yüksek Performanslı İşlemciler
RISC ve RISCy işlemcileri günümüzün paralel bilgisayar pazarına hakimdir.
Geleneksel RISC'nin özellikleri şunlardır:
- Birkaç adresleme moduna sahiptir.
- Talimatlar için sabit bir formatı vardır, genellikle 32 veya 64 bittir.
- Hafızadan verileri kaydetmek ve kayıttan hafızaya veri kaydetmek için özel yükleme / saklama talimatları vardır.
- Aritmetik işlemler her zaman yazmaçlar üzerinde gerçekleştirilir.
- Ardışık düzen kullanır.
Bugünlerde mikroişlemcilerin çoğu süper skalardır, yani paralel bir bilgisayarda çoklu talimat boru hatları kullanılmaktadır. Bu nedenle, süper skalar işlemciler aynı anda birden fazla talimatı yürütebilir. Süper skalar işlemcilerin etkinliği, uygulamalarda bulunan talimat düzeyinde paralellik (ILP) miktarına bağlıdır. Ardışık düzenleri dolu tutmak için, donanım düzeyindeki talimatlar program sırasından farklı bir sırada yürütülür.
Birçok modern mikroişlemci süper boru hattı yaklaşımı kullanır. In süper boru hattı , bir boru hattı aşaması dahilinde yapılan çalışmalar azalır ve boru hattı kademelerinin sayısı artar, saat frekansını artırmak.
Çok Büyük Yönerge Word (VLIW) İşlemcileri
Bunlar, yatay mikro programlamadan ve skalar üstü işlemeden türetilmiştir. VLIW işlemcilerdeki talimatlar çok büyük. Tek bir talimat içindeki işlemler paralel olarak yürütülür ve yürütülmesi için uygun fonksiyonel birimlere iletilir. Bu nedenle, bir VLIW komutunu getirdikten sonra, işlemlerinin kodu çözülür. Daha sonra işlemler paralel olarak yürütüldüğü fonksiyonel birimlere gönderilir.
Vektör İşlemciler
Vektör işlemciler, genel amaçlı mikro işlemciye ortak işlemcidir. Vektör işlemciler genellikle kayıt-kayıt veya hafıza-hafızadır. Bir vektör talimatı getirilir ve kodu çözülür ve daha sonra işlenen vektörlerin her bir elemanı için belirli bir işlem gerçekleştirilirken, normal bir işlemcide bir vektör işlemi kodda bir döngü yapısına ihtiyaç duyar. Daha verimli hale getirmek için, vektör işlemciler birkaç vektör işlemini birlikte zincirler, yani bir vektör işleminin sonucu işlenen olarak diğerine iletilir.
Önbelleğe almak
Önbellekler, yüksek performanslı mikroişlemcilerin önemli unsurlarıdır. Her 18 ayda bir, mikroişlemcilerin hızı iki katına çıkar, ancak ana bellek için DRAM yongaları bu hızla rekabet edemez. Bu nedenle, işlemci ve bellek arasındaki hız farkını kapatmak için önbellekler tanıtıldı. Önbellek, hızlı ve küçük bir SRAM belleğidir. Translation Look-aside Buffers (TLBs) önbellekleri, talimat ve veri önbellekleri gibi modern işlemcilerde çok daha fazla önbellek uygulanır.
Doğrudan Eşlenmiş Önbellek
Doğrudan eşlenmiş önbelleklerde, ana bellekteki adreslerin önbellek konumlarına bire bir eşlenmesi için bir 'modulo' işlevi kullanılır. Aynı önbellek girişi, kendisiyle eşlenmiş birden fazla ana bellek bloğuna sahip olabileceğinden, işlemci, önbellekteki bir veri bloğunun gerçekten ihtiyaç duyulan veri bloğu olup olmadığını belirleyebilmelidir. Bu tanımlama, bir önbellek bloğu ile birlikte bir etiket saklanarak yapılır.
Tamamen İlişkili Önbellek
Tamamen ilişkisel bir eşleme, önbellekte herhangi bir yere bir önbellek bloğu yerleştirmeye izin verir. Bazı değiştirme ilkelerini kullanarak, önbellek, içinde bir önbellek bloğu depoladığı bir önbellek girdisi belirler. Tamamen ilişkilendirilebilir önbellekler, önbellek girişi çakışmalarının sayısını en aza indiren esnek eşlemeye sahiptir. Tamamen ilişkisel bir uygulama pahalı olduğu için, bunlar asla büyük ölçekte kullanılmaz.
İlişkili Önbelleği Ayarla
Bir küme-ilişkisel eşleme, doğrudan bir eşleme ve tamamen ilişkisel eşlemenin bir kombinasyonudur. Bu durumda, önbellek girişleri, önbellek kümelerine bölünür. Doğrudan haritalamada olduğu gibi, bellek bloklarının önbellekteki bir kümeye sabit bir eşlemesi vardır. Ancak bir önbellek kümesinin içinde, bir bellek bloğu tamamen ilişkisel bir şekilde eşleştirilir.
Önbellek stratejileri
Eşleme mekanizmasının yanı sıra, önbelleklerin belirli olaylar durumunda ne olması gerektiğini belirleyen bir dizi stratejiye de ihtiyacı vardır. (Set-) ilişkisel önbelleklerin olması durumunda, önbellek hangi önbellek bloğunun önbelleğe giren yeni bir blokla değiştirileceğini belirlemelidir.
Bazı iyi bilinen değiştirme stratejileri şunlardır:
- İlk Giren İlk Çıkar (FIFO)
- En Son Kullanılanlar (LRU)