ハードウェアアクセラレーション

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

コンピューティングにおいて、ハードウェア・アクセラレーションとは、ある機能を通常の(汎用)CPUの上でソフトウェアを実行する場合より高速に行なうため、CPUに対し付加的なハードウェアを使用することである。この付加的なハードウェアを総称してアクセラレータと呼ぶ。

ハードウェア・アクセラレーションの例としては、CPUの中の複雑な演算命令(浮動小数点演算など)、GPUBit Block Transfer機能や動画再生支援機能、DSPによるデジタル信号処理などが挙げられる。

ハードウェア・アクセラレーションはパフォーマンスを改善するために使用される様々な技術のうちの1つである。通常、CPUによるソフトウェアの実行では、CPUが備えるプリミティブな命令の並びで処理を実現し、その命令を逐次的に一つずつ実行する。一方ハードウェアによるアクセラレーションでは特定の処理のための専用のハードウェアを設計し、そのハードウェア内では回路の並列性を生かして演算を並列に行うことで逐次的な命令実行の場合よりはるかに高速に演算を実行する。しかし専用に設計されたハードウェアとして処理を実現した場合、CPUが備えるプリミティブな命令の組み合わせによりソフトウェアとして処理を実現する場合に比べて柔軟性が減少する。またハードウェアの設計及び製造にはソフトウェアに比べて桁違いのコストが必要になる。このような実行性能と柔軟性やコストとのトレードオフから、ハードウェアによるアクセラレーションはソフトウェアの中でも特定のパターンの演算を集中的に処理するようなパフォーマンスの上重要な部分について利用される。ハードウェア・アクセラレーションは小さな機能ユニットからMPEG2の動作予測のように大きな機能ブロックまでさまざまな粒度にわたる。一般に粒度が大きくできれば実行性能が向上する一方、用途が固定化され柔軟性は低下する傾向がある。

ユニットがCPUから分かれている場合、アクセラレーションを行なうハードウェアは、ハードウェア・アクセラレータ、あるいはそれぞれの担う機能に応じてより限定的にグラフィックアクセラレータ、浮動小数点ユニット(FPU)などと呼ばれる。

グラフィックアクセラレータは古い用語であり、ビデオカードまたはグラフィックカードのようなそれほど記述的でない用語へと変わっている。またFPUについてはCPUの標準的な機能として組み込まれるようになり、スーパースケーラによりFPUを整数演算と並列に動作させることができる。

関連項目[編集]