SWAR - SWAR

Bir kayıt içinde SIMD ( SWAR ), aynı zamanda "Paketlenmiş SIMD" adıyla da bilinir, bir işlemci kaydında bulunan veriler üzerinde paralel işlemler gerçekleştirmek için bir tekniktir . SIMD , tek komut, çoklu veri anlamına gelir . Flynn'in 1972 Taksonomisi, SWAR'ı "Pipelined Processing" olarak sınıflandırır .

Birçok modern genel amaçlı bilgisayar işlemcisi, SIMD için bir grup kayıt ve bunları kullanmak için talimatlar şeklinde bazı hükümlere sahiptir . SWAR, SIMD işlemlerinde daha iyi olacak şekilde tasarlanmış özel işleme motorlarının kullanılmasının aksine, bu kayıtların ve talimatların kullanılması anlamına gelir. Aynı zamanda, SIMD'nin, çeşitli yeni yazılım hileleri yoluyla, o sırada yapması amaçlanmayan genel amaçlı kayıtlar ve talimatlarla kullanımına da atıfta bulunur.

SWAR mimarileri

Bir SWAR mimarisi, bir kaydın bağımsız alt sözcüklerinde veya alanlarında depolanan veriler arasında paralel işlemler gerçekleştirmeyi açıkça amaçlayan talimatları içeren bir mimaridir. SWAR özellikli bir mimari, bu alanlarda depolanan verilerin bağımsız olarak ele alınmasına izin vermek için yeterli bir dizi talimat içeren bir mimaridir, ancak mimari bu amaç için açıkça tasarlanmış talimatları içermemektedir.

SWAR mimarisinin ilk örneği , MMX uzantı setini uygulayan MMX özellikli Intel Pentium'du . Intel Pentium , aksine, bu tür talimatları içermiyordu, ancak yine de dikkatli elle kodlama veya derleyici teknikleriyle bir swar mimarisi olarak rol oynayabilir.

Erken Swar mimariler şunlardır DEC Alpha MVI , Hewlett-Packard'ın PA-RISC MAX , Silicon Graphics Incorporated MIPS MDMX ve Sun'ın SPARC V9 VIS . MMX gibi, SWAR komut setlerinin çoğu daha hızlı video kodlaması için tasarlanmıştır.

SWAR programlama modelinin tarihi

Wesley A. Clark , 1950'lerde bölümlenmiş alt kelime veri işlemlerini tanıttı. Bu, SWAR'ın çok erken bir öncülü olarak görülebilir.

1996'da Intel'in MMX multimedya komut seti uzantılarının piyasaya sürülmesiyle, SIMD paralel işleme özelliklerine sahip masaüstü işlemciler yaygınlaştı. Başlangıçta, bu talimatlar yalnızca elle yazılmış derleme koduyla kullanılabilirdi.

1996 sonbaharında, Profesör Hank Dietz, Purdue Üniversitesi Elektrik ve Bilgisayar Mühendisliği Okulu'nda Compiler Construction lisans dersinin eğitmeniydi. Bu ders için, öğrencilerin MMX'i hedefleyen basit bir derleyici oluşturacakları bir dizi proje verdi. Giriş dili, MasPar'ın MPL'sinin NEMPL (Tam Olarak MPL Değil) adlı bir alt kümesi lehçesiydi .

Dönem boyunca, kurs öğretim asistanı Randall (Randy) Fisher, MMX ile ilgili NEMPL derleyicisinin arka ucunu oluşturmayı zorlaştıracak bir dizi sorun olduğunu açıkça anladı. Örneğin, MMX'in 16 bitlik verileri çarpmak için bir talimatı vardır, ancak 8 bitlik verileri çarpmamak için. NEMPL dili bu sorunu hesaba katmadı ve programcının 8 bitlik çarpma gerektiren programlar yazmasına izin verdi.

Intel'in x86 mimarisi, SIMD benzeri paralel yönergeleri içeren tek mimari değildi. Sun'ın VIS , SGI'nın MDMX'i ve diğer multimedya komut setleri, yeni medya uygulamalarını desteklemek için diğer üreticilerin mevcut komut seti mimarilerine eklendi . Bu uzantılar, verilerin kesinliği ve desteklenen talimat türleri açısından önemli farklılıklara sahipti.

Dietz ve Fisher, programlamanın, hedef mimarinin özelliklerini bilmeden modeli hedeflemesine izin verecek, iyi tanımlanmış bir paralel programlama modeli fikrini geliştirmeye başladılar. Bu model Fisher'in tezinin temeli olacaktı. "SWAR" kısaltması Dietz ve Fisher tarafından bir gün Hank'in Purdue Üniversitesi'ndeki MSEE binasındaki ofisinde icat edildi. Bu paralel işleme biçimine, bu tür işlemeyi yerel olarak gerçekleştirmek için tasarlanmış mimarilere ve Fisher'ın tezi olan genel amaçlı programlama modeline atıfta bulunur.

Bu çok çeşitli mimariler için derleme sorunu, LCPC98'de sunulan bir makalede tartışıldı.

SWAR'ın bazı uygulamaları

SWAR işleme, görüntü işlemede, kriptografik eşleştirmelerde, raster işlemede kullanılmıştır. Hesaplamalı Akışkanlar Dinamiği ve iletişim.

Ayrıca bakınız

Referanslar

  1. ^ Miyaoka, Y.; Choi, J.; Togawa, N.; Yanagisawa, M.; Ohtsuki, T. (2002). Paketlenmiş SIMD tipi talimatlarla işlemci çekirdeği sentezi için bir donanım birimi oluşturma algoritması . Asya-Pasifik Devreler ve Sistemler Konferansı. 1 . s. 171-176. doi : 10.1109/APCCAS.2002.1114930 . hdl : 2065/10689 .
  2. ^ Flynn, Michael J. (Eylül 1972). "Bazı Bilgisayar Kuruluşları ve Etkililikleri" (PDF) . Bilgisayarlarda IEEE İşlemleri . C-21 (9): 948-960. doi : 10.1109/TC.1972.5009071 .
  3. ^ Fisher, Randall J (2003). Bir Kayıt İçinde Genel Amaçlı SIMD: Tüketici Mikroişlemcilerinde Paralel İşleme (PDF) (Ph.D.). Purdue Üniversitesi.
  4. ^ a b Fisher, Randall J.; Henry G. Dietz (Ağustos 1998). S. Chatterjee; JF Baskıları; L. Carter; J. Ferrante; Z.Li; D. Sehr; P.-C.Yew (ed.). "Bir Kayıt İçinde SIMD için Derleme". Paralel Hesaplama için Diller ve Derleyiciler Üzerine 11. Uluslararası Çalıştay Tutanakları .
  5. ^ Dietz, Hank. "Toplu Sihirli Algoritmalar" .
  6. ^ Padua, Flavio LC; Pereira, Guilherme AS; Neto, Jose P. de Queiroz; Campos, Mario FM; Fernandes, Antonio O. (2001). "Talimat düzeyinde paralellik ile büyük görüntülerin işleme süresinin iyileştirilmesi" (PDF) . Alıntı günlüğü gerektirir |journal=( yardım )
  7. ^ Grabher, Philipp; Johann Großschädl; Dan Sayfa (2009). Kriptografik Eşleştirmelerin Yazılım Paralel Uygulaması Üzerine . Kriptografide Seçilmiş Alanlar . Bilgisayar Bilimleri Ders Notları. 5381 . s. 35–50. doi : 10.1007/978-3-642-04159-4_3 . ISBN'si 978-3-642-04158-7.
  8. ^ Persada, Onil Nazra; Thierry Goubier (12-14 Eylül 2004). "GRASS'ta İnce ve Kaba Tane Paralelliği ile Hızlandırılmış Raster İşleme". FOSS/GRASS Kullanıcıları Konferansı 2004 Tutanakları .
  9. ^ Hauser, Thomas; TI Mattoks; RP LeBeau; HG Dietz; PG Huang (Nisan 2003). "CFD Yazılımına Uygulanan Karmaşık Mikroişlemciler için Kod Optimizasyonları". SIAM Bilimsel Hesaplama Dergisi . 25 (4): 1461–1477. doi : 10.1137/S1064827502410530 . ISSN  1064-8275 .
  10. ^ Spracklen, Lawrence A. (2001). SWAR Sistemleri ve İletişim Uygulamaları (PDF) (Ph.D.). Aberdeen Üniversitesi.

Dış bağlantılar