連載第8回ではCPUの命令セットについて解説した。今回はその応用編ともいえる「拡張命令」について説明しよう。CPUについての説明で「SSE2」や「SSE3」といった表記を見かけたことがあるかもしれないが、それが拡張命令のことなのだ。
拡張命令が動画や音楽のエンコードを高速化している
拡張命令とは、文字通り基本的な命令セットに「追加」された新たな命令のことだ。CPUの命令セットには、演算や比較、分岐などの基本的な命令が揃っており、それらを組み合わせることで複雑な処理ができる。それに対して、特定の処理に特化した命令を追加することで、パフォーマンスを向上させようというのが、拡張命令の考え方だ。
その代表が、動画や音楽のエンコードやデコードといったマルチメディア関連の処理だ。マルチメディア処理では多くのデータに対して同じ演算を繰り返していくことが多い。だから1つの命令で複数のデータに対して同じ演算を行なうことができればパフォーマンスを大きく向上させられる。このような命令が拡張命令の代表的なもので、「SIMD」(Single Instruction Multiple Data、シムド)と呼ばれている。
拡張命令を使用できるのは対応アプリだけ
拡張命令はマルチメディア処理などの特定の処理に特化しているため、そうした処理のパフォーマンスを大きく向上させるが、命令セットに含まれる基本命令ではないため、アプリケーション側の対応が必要になる。逆に言えば、たとえば「A」という拡張命令に対応したCPUに交換したところで、「B」という拡張命令に対応したアプリケーションでのパフォーマンスは変わらない。
また、拡張命令はCPUメーカーが独自に追加しているため、インテル製CPUではサポートしている拡張命令でもAMD製CPUではサポートしていないことがある(その逆もある)。そのためCPUがサポートしている拡張命令をフルに活かすためには、アプリケーション側でCPUがどの拡張命令に対応しているかを事前に調べ、それに応じたプログラムを動かす必要がある。
基本的にはアプリケーションがCPUのパフォーマンスを最大限に発揮できる拡張命令を自分から判断して動作するので、ユーザーが拡張命令のことを特に意識するタイミングはない。ただし、アプリケーションによっては拡張命令に関する設定をユーザーが変更できるものもある。
(次のページにつづく)
この連載の記事
-
第13回
PC
パソコンがうるさいと思ったときの「最高動作温度」 -
第12回
PC
パソコンが「故障かな?」と思ったときのエラッタ知識 -
第11回
PC
パソコンを速くしたい人の「ステッピング」教室 -
第10回
PC
モバイルPCユーザーなら常識?! TDPの最新知識 -
第8回
PC
意外と知らない? 命令セットの正しい知識 -
第7回
PC
思わず人に教えたくなる64bit CPUの話 -
第6回
PC
知らなきゃPCは選べない、プロセスルールの基礎知識 -
第5回
PC
Centrino 2モデル購入以前のマルチコアCPUの基本 -
第4回
PC
3Dゲーム購入前に知っておきたいチップセットの常識 -
第3回
PC
KGBみたいなバスってな~んだ? - この連載の一覧へ