MMX (komut seti) - MMX (instruction set)

MMX ile Pentium

MMX bir tek talimat, çoklu veri (SIMD ) komut seti tarafından tasarlandı Intel, Ocak 1997'de kullanıma sunuldu[1][2] onunla P5 tabanlı Pentium hattı mikroişlemciler, "MMX Teknolojili Pentium" olarak belirlenmiştir.[3] Üzerinde tanıtılan benzer bir birimden geliştirilmiştir. Intel i860,[4] ve daha önce Intel i750 video piksel işlemcisi. MMX bir işlemci ek yeteneği son zamanlarda desteklenen IA-32 Intel ve diğer satıcılardan işlemciler.

New York Times, aşağıdakiler de dahil olmak üzere ilk baskıyı açıkladı: Final karşılaşması reklamlar, "videolu telefonlar ve 3 boyutlu video oyunları dahil yeni nesil gösterişli multimedya ürünlerine" odaklanıyor.[5]

MMX daha sonra Intel ve diğerleri tarafından çeşitli programlar tarafından genişletildi: 3DNow!, Akış SIMD Uzantıları (SSE) ve devam eden revizyonlar Gelişmiş Vektör Uzantıları (AVX).

Genel Bakış

Adlandırma

MMX resmi olarak anlamsız ilkcilik[6] ticari markalı Intel tarafından;[7] gayri resmi olarak, baş harfleri çeşitli şekillerde açıklanmıştır.

  • MultiMedia eXtension,[1]
  • Çoklu Matematik eXtensionveya
  • Matrix Math eXtension.

AMD Intel ile yaptığı sayısız mahkeme savaşından birinde, Intel'den MMX'in "Matrix Math Extensions" anlamına geldiğini belirten pazarlama materyalleri üretti. Bir baş harflendirme ticari marka olamayacağından, bu Intel'in ticari markasını geçersiz kılma girişimiydi. 1995 yılında Intel, MMX ticari markasının kötüye kullanılması nedeniyle AMD ve Cyrix Corp. aleyhine dava açtı. AMD ve Intel, AMD'nin MMX'i Intel'e ait bir ticari marka olarak kabul etmesiyle ve Intel'in AMD'ye MMX ticari markasını bir işlemci adı olarak değil, bir teknoloji adı olarak kullanma hakları vermesiyle anlaştı.[8]

Teknik detaylar

MMX teknolojisine sahip Pentium II işlemci

MMX sekiz kayıtlar, MM0'dan MM7'ye ve bunlar üzerinde çalışan işlemler olarak adlandırılır. Her kayıt 64 bit genişliğindedir ve 64 bitlik tam sayıları veya "paketlenmiş" bir biçimde birden çok küçük tamsayıyı tutmak için kullanılabilir: tek bir komut daha sonra iki 32 bit tam sayıya, dört 16 bit tam sayıya uygulanabilir veya aynı anda sekiz adet 8 bitlik tam sayı.[9]

MMX yalnızca tamsayı işlemleri sağlar. Başlangıçta geliştirildiğinde Intel i860, tam sayı matematiğinin kullanımı mantıklıydı (hem 2D hem de 3D hesaplamalar gerektiriyordu), ancak bunun çoğunu yapan grafik kartları yaygınlaştıkça, tamsayı SIMD CPU'da grafiksel uygulamalar için biraz gereksiz hale geldi.[kaynak belirtilmeli ] Öte yandan, doygunluk aritmetiği MMX'teki işlemler[belirsiz ] bazılarını önemli ölçüde hızlandırmak dijital sinyal işleme uygulamalar.[kaynak belirtilmeli ]

İle uyumluluk sorunlarını önlemek için bağlam anahtarı mevcut işletim sistemlerindeki mekanizmalar, MMX kayıtları mevcut x87 FPU kayıtlar, bu bağlam anahtarları zaten kaydeder ve geri yükler. Gibi davranan x87 kayıtlarından farklı olarak yığın MMX kayıtlarının her biri doğrudan adreslenebilir (rastgele erişim).

Kayan nokta yığınını içeren herhangi bir işlem MMX kayıtlarını da etkileyebilir ve bunun tersi de geçerlidir, bu nedenle bu örtüşme aynı uygulamada kayan nokta ve SIMD işlemleriyle çalışmayı zorlaştırır.[10] Performansı en üst düzeye çıkarmak için, programcılar genellikle işlemciyi yalnızca bir modda veya diğerinde kullandılar ve aralarındaki nispeten yavaş geçişi mümkün olduğu kadar ertelediler.

Her 64 bit MMX kaydı, mantis 80 bitlik bir x87 kaydının parçası. X87 yazmaçlarının üst 16 biti böylece MMX'te kullanılmaz ve bu bitlerin tümü birlere ayarlanmıştır, NaN'ler veya kayan nokta gösteriminde sonsuzluklar. Bu, uygulamalar tarafından belirli bir kaydın içeriğinin kayan nokta mı yoksa SIMD verisi mi olarak tasarlandığına karar vermek için kullanılabilir.

Yazılım desteği

MMX için yazılım desteği gelmekte yavaştı.[5] Intel'in C Derleyicisi ve ilgili geliştirme araçları elde edildi içsel MMX talimatlarını çağırmak için ve Intel yayınlandı kütüphaneler MMX kullanarak ortak vektörleştirilmiş algoritmalar. Hem Intel hem de Metrowerks teşebbüs otomatik vektörleştirme derleyicilerinde, ancak operasyonlar C MMX komut setine zayıf bir şekilde eşlenmiş programlama dili ve 2000 yılı itibariyle özel algoritmalar tipik olarak hala yazılmalıdır. montaj.[10]

Halef

AMD, rakip bir x86 mikroişlemci satıcısı, Intel'in MMX'ini kendi 3DNow! komut seti. 3DNow, diğer tam sayı ve daha genel geliştirmelerin yanı sıra, SIMD komut kümesine tek duyarlıklı (32 bit) kayan nokta desteği eklemesiyle bilinir.

MMX'in ardından Intel'in bir sonraki büyük x86 uzantısı, SSE, Pentium-III ailesiyle tanıtıldı[11] 1999'da[12] AMD'nin 3DNow'undan yaklaşık bir yıl sonra! tanıtılmıştı.

SSE, yeni bir 128 bit genişliğinde kayıt dosyası (XMM0 – XMM7) ve bunun için yeni SIMD talimatları oluşturarak MMX'in temel eksikliklerini (tamsayı-SIMD işlemlerini herhangi bir kayan noktalı işlemle karıştıramama) ele aldı. 3DNow! Gibi, SSE de özellikle tek hassasiyetli kayan nokta işlemlerine (32 bit) odaklandı; MMX yazmacı ve komut seti kullanılarak tamsayı SIMD işlemleri gerçekleştirildi. Ancak, yeni XMM kayıt dosyası, SSE SIMD işlemlerinin MMX veya x87 FPU işlemleriyle serbestçe karıştırılmasına izin verdi.

SSE2 Pentium 4 ile birlikte sunulan, x86 SIMD komut setini tamsayı (8/16/32 bit) ve XMM kayıt dosyası için çift duyarlıklı kayan nokta veri desteği ile daha da genişletti. SSE2 ayrıca MMX işlem kodlarının XMM yazmaç işlenenlerini kullanmasına da izin vererek, daha sonraki SSE revizyonlarıyla daha geniş YMM ve ZMM kayıtlarına genişletildi.

Gömülü uygulamalarda MMX

Intel ve Marvell 's XScale PXA270 ile başlayan mikroişlemci çekirdeği, bir SIMD komut seti ARM çekirdeğinin uzantısı iwMMXt işlevleri ile benzer olan IA-32 MMX uzantısı. iwMMXt, "Intel Kablosuz MMX Teknolojisi" anlamına gelir. 64-bit tamsayı sayıları üzerinde aritmetik ve mantıksal işlemler sağlar (yazılım bunun yerine tek bir komutta iki 32-bit, dört 16-bit veya sekiz 8-bit işlemi yapmayı seçebilir). Uzantı, 64 bitlik 16 veri kaydı ve 32 bitlik sekiz kontrol kaydı içerir. Tüm kayıtlara standart olarak erişilir ARM mimarisi yardımcı işlemci eşleme mekanizması. iwMMXt, yardımcı işlemciler 0 ve 1 alanında yer kaplar ve işlem kodları önceki kayan nokta uzantısı olan FPA'nın işlem kodları ile çatışır.

Sonraki sürümleri Marvell ARM işlemcileri hem WMMX (Kablosuz MMX) hem de WMMX2 (Kablosuz MMX2) işlem kodlarını destekler.

Ayrıca bakınız

Referanslar

  1. ^ a b 8 Ocak '97'de tanıtıldı. "Üreticiler Intel’in MMX Çipiyle Bilgisayarları Tanıttı". NYTimes.com. 9 Ocak 1997. Intel'in MMX adı verilen yeni multimedya genişletme teknolojisi ...
  2. ^ "Intel daha hızlı Pentium çipini ortaya çıkaracak". Washington post. 8 Ocak 1997.
  3. ^ "MMX ™ Teknolojili Gömülü Pentium® İşlemciler". Intel.
  4. ^ Mittal, Millind; Peleg, Alex; Weiser, Uri (1997). "MMX Teknoloji Mimarisine Genel Bakış" (PDF). Intel Teknoloji Dergisi. 1 (3).
  5. ^ a b Robert E. Calem (24 Ocak 1997). "Intel MMX: Hoopla'nın Arkasındaki Teknoloji". NYTimes.com.
  6. ^ Jennifer Tanaka (16 Şubat 1997). "Bloktan yeni bir çip". Newsweek. hiçbir şey ifade etmeyen isim
  7. ^ http://www.intel.com/content/www/us/en/trademarks/mmx.html
  8. ^ "Intel ve Advance Micro, çip ticari markası üzerinde anlaştı". New York Times. 22 Nisan 1997.
  9. ^ "MMX Teknolojisine ve Pentium® II Mikroişlemcilere Sahip Pentium® İşlemcilerin MMX ™ Mikro Mimarisi" (PDF). Intel Teknoloji Dergisi. 1997. Arşivlenen orijinal (PDF) 12 Ocak 2011. Alındı 1 Eylül, 2017.
  10. ^ a b Conte, G .; Tommesani, S .; Zanichelli, F. (2000). MMX / SSE ile yüksek performanslı görüntü işlemeye giden uzun ve dolambaçlı yol (PDF). Proc. Makine Algılama için Bilgisayar Mimarileri üzerine IEEE Uluslararası Çalıştayı. Arşivlenen orijinal (PDF) 28 Ocak 2016.
  11. ^ Alan S. Kay (26 Şubat 1999). "Pentium III: Sayıları Satın Almak mı?". Washington post.
  12. ^ "Mikroişlemci Onur Listesi". Intel Müzesi. Arşivlenen orijinal 6 Nisan 2008.

Dış bağlantılar