Streaming SIMD Extensions

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内, 検索

ストリーミングSIMD拡張命令 (Streaming SIMD Extensions, SSE) は、インテルが開発したCPUSIMD拡張命令セット、およびその拡張版の総称である。

目次

[編集] 概要

SSEは、x86アーキテクチャに8本の128bitレジスタを新設し、浮動小数点演算のSIMD処理を実現したものである。4個の32bit単精度浮動小数点データを一本のレジスタに格納し、同一の命令を一括処理することが出来る。拡張命令であるため、その機能を使用するためにはSSEに対応したソースコードを作成し、プログラムコンパイルする必要がある。

当初の64Bit演算機では128Bit演算命令の処理に2クロックが必要であり、RISC系CPUに搭載されているSIMD命令やAMDの実装した3DNow!命令と比べて、最適化が煩雑で性能的なディスアドバンテージとなっていたが、Coreマイクロアーキテクチャ/K10マイクロアーキテクチャより1クロック処理が可能な形態へと改良された。

元々はインターネット・ストリーミング SIMD 拡張命令 (Internet Streaming SIMD Extensions, ISSE)と呼ばれていたが、命令内容そのものはインターネットとは直接関係が無くマーケティング的な要素が強かったため、現在ではインターネットの文字が外され単にSSEと呼ばれるようになっている。

SSEの機能を強化したものにSSE2やSSE3、SSSE3 (Supplemental Streaming SIMD Extensions 3) がある。また、SSEは他社製品にも採用されている。

[編集] SSE

Pentium III にはじめて実装された。追加された命令数は70。Pentium III の開発コードネームが Katmai であったことから、KNI (Katmai New Instructions) やMMX2とも呼ばれていた。廉価製品のCeleronにおいても、その第三世代製品 Coppermine-128k よりSSEに対応している。

AMD社によるSIMD拡張命令セット、3DNow! プロフェッショナル・テクノロジは、SSEと互換性がある。

[編集] SSE2

SSE2は従来のSSEに144個の新たな命令が加えられ、一度に扱えるデータの数も増加した。具体的には64ビットの倍精度浮動小数点データ及び整数演算の追加、キャッシュの制御機能の強化がなされた。

SSE2はPentium4で初めて実装された。AMD社のAMD64アーキテクチャでは、拡張命令ではなく基本命令としてSSE,SSE2が取り込まれている。

[編集] SSE3

SSE3はSSE2に13個の新たな命令が加えられた。具体的にはメモリアクセス及び複素数計算の高速化、仮想CPUのスレッドの動作制御などの機能が搭載され、主に動画圧縮の処理が向上した。

SSE3の名称が発表される前はPNI(Prescott New Instructions)と呼ばれていた。Pentium4のPrescottコアで初めて実装された。

[編集] SSSE3

SSSE3はSSE3に32個の新たな命令が加えられた。 Coreマイクロアーキテクチャベースのマイクロプロセッサで初めて実装された。

SSSE3と名付けられる前はMNI(Merom New Instructions; 旧称Tejas New Instructions)という名称があった。登場当初はSSE4と呼ばれると一般的には思われていた。

[編集] SSE4

45nm世代の Core 2 の Penryn で搭載。 54個の命令が追加になる。そのうち47個がSSE4.1、7個がSSE4.2と呼ばれる。 PenrynではSSE4.1のみが実装。

[編集] SSE4a

AMD Phenomで搭載。 キャッシュ関連や挿入、展開の4命令が追加。IntelのSSE4とは名前は似ているが互換性は無い。

[編集] Intel AVX

MMX/SSE後継のSIMD拡張命令セットで、呼称がIntel Advanced Vector eXtensionsとなった。Sandy Bridgeマイクロアーキテクチャから搭載され、演算幅がSSEの2倍の256bitとなるため理論上の演算性能も2倍になる。また、命令デコード性能向上のため、新しい命令フォーマットが採用されている。3 or 4オペランドの非破壊型命令もサポートするため、レジスタ退避・復元処理の記述を省くことができる。

AMDはBulldozer世代向けに当初予定していたSSE5拡張命令をキャンセルし、AMD FXではAVXがサポートされることになった。

[編集] Intel AVX2

インテルはHaswellマイクロアーキテクチャ から搭載。SIMD整数演算が128ビットから256ビットになるなど。

[編集] 歴史

[編集] 関連項目

個人用ツール
名前空間
変種
操作
案内
ヘルプ
ツールボックス
他の言語