この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "ストリーミングSIMD拡張命令"
ストリーミングSIMD拡張命令(英: Streaming SIMD Extensions、略称:SSE)は、インテルが開発したCPUのSIMD拡張命令セット、およびその拡張版の総称である。後継の Advanced Vector Extensions (AVX) と Advanced Matrix Extensions (AMX) についても本項で記載する。 SSEは、x86アーキテクチャに8本の128ビットレジスタを新設し、浮動小数点演算のSIMD処理を実現したものである。AMDのK6-2に実装されたSIMD拡張命令3DNow!に対抗する形でPentium IIIから実装された。4個の32ビット単精度浮動小数点データを一本のレジスタに格納し、同一の命令を一括処理することができる。拡張命令であるため、その機能を使用するためにはSSEに対応したソースコードを作成し、プログラムをコンパイルする必要がある。 Core Duoまでのインテル製CPU、K8までのAMD製CPUでは、64ビット幅の演算器を用いて128ビット演算命令を2クロックかけて実行するという実装であったため、128ビット演算命令を用いても実質的なスループットはクロックあたり64ビットであった[注 1]。そのため従来から存在するMMX命令やAMDの3DNow!命令に対する性能面でのアドバンテージは128ビット幅のレジスタを使えるという点以外では小さく、むしろ並列度が上がった分だけ最適化も煩雑になるという欠点が目立った。また当時のRISC系CPUに搭載されているSIMD命令では128ビット演算命令を1クロックで実行できるものがあり、これらに対する性能的なディスアドバンテージは小さくなかった。最終的にはCoreマイクロアーキテクチャ/AMD K10より128ビット演算命令も1クロック処理が可能な形態へと改良され、SSE命令の実用性は大幅に向上した。 元々はインターネット・ストリーミングSIMD拡張命令(英: Internet Streaming SIMD Extensions、ISSE)と呼ばれていたが [1]、命令内容そのものはインターネットとは直接関係が無くマーケティング的な要素が強かったため、現在ではインターネットの文言が外され単にSSEと呼ばれるようになっている。 SSEの機能を強化したものにSSE2やSSE3、SSSE3(Supplemental/補足的なSSE3)、SSE4がある。また、SSEは他社製品にも採用されている。
概要
沿革
1999年 2月: インテルがSSE搭載のPentium IIIプロセッサを発表。
2000年 3月: インテルがSSE搭載のCeleronプロセッサを発表。
2000年 11月: インテルがSSE2搭載のPentium 4プロセッサを発表。
2002年 5月: インテルがSSE2搭載のCeleronプロセッサを発表。
2003年 3月: インテルがSSE2搭載のPentium Mプロセッサを発表。
2004年 1月: インテルがSSE2搭載のCeleron Mプロセッサを発表。
2004年 2月: インテルがSSE3搭載のPentium 4プロセッサを発表。