このページの本文へ

前へ 1 2 次へ

ぱそぢえ~3分で分かるPCの基本 第9回

ゲームマシン買うなら拡張命令の違いは知っとかなきゃ!

2008年09月19日 16時00分更新

文● 石井英男 漫画● 太田虎一郎

  • この記事をはてなブックマークに追加
  • 本文印刷

 連載第8回ではCPUの命令セットについて解説した。今回はその応用編ともいえる「拡張命令」について説明しよう。CPUについての説明で「SSE2」や「SSE3」といった表記を見かけたことがあるかもしれないが、それが拡張命令のことなのだ。


拡張命令が動画や音楽のエンコードを高速化している

 拡張命令とは、文字通り基本的な命令セットに「追加」された新たな命令のことだ。CPUの命令セットには、演算や比較、分岐などの基本的な命令が揃っており、それらを組み合わせることで複雑な処理ができる。それに対して、特定の処理に特化した命令を追加することで、パフォーマンスを向上させようというのが、拡張命令の考え方だ。

通常の命令は1つのデータに対してのみ演算を行なうが、SIMDは一度に複数のデータに対して演算を行なえる。図のように通常は4回命令を実行するところを1回の命令で済むわけだ

 その代表が、動画や音楽のエンコードやデコードといったマルチメディア関連の処理だ。マルチメディア処理では多くのデータに対して同じ演算を繰り返していくことが多い。だから1つの命令で複数のデータに対して同じ演算を行なうことができればパフォーマンスを大きく向上させられる。このような命令が拡張命令の代表的なもので、「SIMD」(Single Instruction Multiple Data、シムド)と呼ばれている。


拡張命令を使用できるのは対応アプリだけ

 拡張命令はマルチメディア処理などの特定の処理に特化しているため、そうした処理のパフォーマンスを大きく向上させるが、命令セットに含まれる基本命令ではないため、アプリケーション側の対応が必要になる。逆に言えば、たとえば「A」という拡張命令に対応したCPUに交換したところで、「B」という拡張命令に対応したアプリケーションでのパフォーマンスは変わらない。

動画エンコードソフト「TMPGEnc 4.0 XPress」はほとんどの拡張命令に対応しており、どの拡張命令を使うか指定できる(CPUが対応していない拡張命令はグレーアウトされている)

 また、拡張命令はCPUメーカーが独自に追加しているため、インテル製CPUではサポートしている拡張命令でもAMD製CPUではサポートしていないことがある(その逆もある)。そのためCPUがサポートしている拡張命令をフルに活かすためには、アプリケーション側でCPUがどの拡張命令に対応しているかを事前に調べ、それに応じたプログラムを動かす必要がある。

 基本的にはアプリケーションがCPUのパフォーマンスを最大限に発揮できる拡張命令を自分から判断して動作するので、ユーザーが拡張命令のことを特に意識するタイミングはない。ただし、アプリケーションによっては拡張命令に関する設定をユーザーが変更できるものもある。

 (次のページにつづく)

■キャラクター紹介

デコ

ど近眼。パソコンなどのデジものが大好きで、パーツ屋にもよく通っている。頭に耳のようなものがついており、メガネがどうなっているのかは謎。


アコ

ど天然。デジものはすべて間違ったスイッチを押すと爆発するものと信じている。「よく食べ、よく遊び、よく眠る」を信条とする健康優良少女。


前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン