検索
特集

マルチプロセッサのアーキテクチャ最適な設計を行うための基礎知識を整理する(3/4 ページ)

シングルコアのプロセッサでは、アーキテクチャに関して適切な分類を行うことで、それぞれが得意とする分野を理解することができた。マルチコアのプロセッサについても、同様なことが言える。適切な分類を行うことにより、チップ開発者、ボードレベルのシステム設計者、ソフトウエア開発者、開発ツールベンダーの間で、各種用途で用いられる用語や主要要件に対する認識の共有を図ることが可能になる。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

FPGA

 FPGAは、ハードウエアアクセラレーションブロックとして利用することができる。その場合、任意の並列性を持つ信号処理アルゴリズムを扱えるプログラマブルなプラットフォームとして働く。信号処理アルゴリズムの並列性が十分に高く、DSPで提供される以上の処理ユニットを効率的に使用できる場合には、DSPより優位性がある。

 FPGAの信号処理ブロックは、決定状態が少なく、データ当たりの処理量が多い用途に適している。DSP、マイクロプロセッサ、またはその両方とともに動作するアクセラレータ/コプロセッサとしてうまく機能する。

アクセラレータ/コプロセッサ

 ハードウエアアクセラレータ/コプロセッサは、特定のタスクに対して高速化の実現と電力効率の改善というメリットを提供する。メインプロセッサの演算負荷を軽減することにより、その処理能力をほかの差異化機能に利用することができるようになる。

 ハードウエアアクセラレータ/コプロセッサのカテゴリに含まれるものとしては、ネットワークプロセッサ、グラフィックスプロセッサ、ビデオプロセッサなどがある。

マイクロプロセッサ

 シングルコアのアーキテクチャとして最後に取り上げるのはマイクロプロセッサである。マイクロプロセッサは汎用性の高いアーキテクチャを採用しており、多種多様な処理タスクに対して十分な性能を実現する。通常、割り込み処理にはソフトウエアを利用するため、マイクロコントローラほど高速/決定的にはコンテキストスイッチングを実行しない。また、オーバーヘッドのないループ処理や、すべてのサイクルにシングルサイクルMACを詰め込むようなバス/メモリー構造は採用しないので、DSPほど高速/効率的にはループ処理を実行できない。マイクロプロセッサは、ユーザーが任意にロードしたアプリケーションをサポートするシステムなど、システムがサポートしなければならない処理要件が事前に明らかではない用途に適している。

 一般的に、マイクロプロセッサは、広いメモリーアドレス空間をサポートし、オフチップメモリーへの低速なアクセスを補うために大容量のオンチップキャッシュを使用する。複雑なOSに対応し、さまざまなレガシーコードもサポートすることができる。また、開発サイクルさえ短ければ、コストと電力効率はそれほど重要ではない「quick and dirty(見栄えは悪いが早く作成できる)」なプロトタイピングや概念検証実験にも適している。

 マイクロプロセッサが得意とする分野は、同一のプロセッサリソース上で多種多様なスレッドを実行するなど、処理の動作や負荷の不確定性が高いシステムである。マイクロプロセッサは、その柔軟性と、ハードウエア周辺機能によるOSの抽象化により、高度なユーザーインターフェースや高レベルのアプリケーションコードの開発に非常に適している。

 マイクロプロセッサは、コストと消費電力は高くなるものの、ほかのプロセッサアーキテクチャで実行可能なほとんどの機能を実行することができる。設計上、もともとマイクロプロセッサを必要とし、処理を収容できるだけの十分なヘッドルームがある場合は、マイクロプロセッサを制御や信号処理タスクに使用してもよい。このような条件が多くの場合には満たされない組み込みシステムでは、コストと消費電力を削減するために、専用プロセッサが使われることが多い。

 デスクトップ型パソコンやサーバーでは、マルチコアのマイクロプロセッサを利用して設計が行われる。また、携帯電話機が進化し、高度なグラフィックスやユーザーインターフェースを搭載するようになるに連れ、マイクロプロセッサやグラフィックスアクセラレータが、携帯電話の内部でDSPの隣に位置するマイクロコントローラに取って代わりつつある。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る