Streaming SIMD Extensions
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ストリーミング SIMD 拡張命令 (SSE, Streaming SIMD Extensions) は、インテルが開発したCPUのSIMD拡張命令セット、およびその拡張版の総称である。
目次 |
[編集] 概要
SSEは、x86アーキテクチャに8本の128bitレジスタを新設し、浮動小数点演算のSIMD処理を実現したものである。4個の32bit単精度浮動小数点データを一本のレジスタに格納し、同一の命令を一括処理することが出来る。拡張命令であるため、その機能を使用するためにはSSEに対応したソースコードを作成し、プログラムをコンパイルする必要がある。
当初は主要な演算命令の処理に2クロックが必要であり、RISC系CPUに搭載されているSIMD命令やAMDの実装した3D Now!命令と比べて、最適化が煩雑で性能的なディスアドバンテージとなっていたが、Core2マイクロアーキテクチャより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のみが実装。
[編集] SSE5
AMDが2007年8月に発表した。AMDの進めるTorrenza(開発コード)アーキテクチャに従い、これまで別途プログラムを作成する必要があった内蔵GPUユニットや暗号化アクセラレータなどを、CPUコア側からシームレスに扱えるようになる。
[編集] 歴史
- 1999年 2月: インテルがSSE搭載のPentium III プロセッサを発表。
- 2000年 11月: インテルがSSE2搭載のPentium 4 プロセッサを発表。
- 2004年 2月: インテルがSSE3搭載のPentium 4 プロセッサを発表。
- 2006年 6月: インテルがSSSE3搭載のXeon 5100 プロセッサを発表。
- 2006年 7月: インテルがSSSE3搭載のIntel Core 2 プロセッサを発表。