汎用マイクロプロセッサには、コストと電力効率のトレードオフがあるものの、あらゆるプロセッサ・アーキテクチャの中で最高の柔軟性と処理パフォーマンスを実現している。マイクロプロセッサは、予期せぬ処理動作が発生したときにも最大限の処理パフォーマンスを達成し、複雑な回路で予測不能な変化が起きても対応できる。この複雑な回路には、深いパイプライン、複数レベルのオンチップ/オフチップキャッシュメモリー、分岐予測ロジック、多重命令発行エンジン、アウトオブオーダー実行、投機実行を用いるスーパースカラーアーキテクチャが採用されていることもある。
最高レベルの柔軟性を維持するため、マイクロプロセッサは実世界との接続に外部のメモリー、デバイス、コントローラを使用する。そのため、大規模で複雑なOS(operating system)を実行することもできる上、従来のソフトウエアを再利用することにより成熟した開発ツールインフラのサポートを受けることもできる。マイクロプロセッサ搭載システムは、コストや電力消費量、システムサイズよりも開発サイクルの短縮を優先した高速プロトタイピングとPOC(proof of concept:機能検証)に向いている。このことは、DARPA(defense advanced research products agency:高等研究計画局)主催のGrand Challengeに参加したチームが車載用に選択した多くのプロセッサを見ても明らかだ*4)。
汎用マイクロプロセッサの特長は、同じプロセッサリソースで異種の処理スレッドを実行、管理、マルチタスキングする場合など、処理動作と負荷の不確実性が高いシステムをサポートできることだ。デスクトップ型パソコンやノート型パソコンは、こうしたシステムの典型例である。マイクロプロセッサの柔軟性により、これらのシステムはユーザーインターフェースと高レベルなアプリケーションコードの開発を容易にサポートできる。
市場には多種多様なマイクロプロセッサが出回っている。一般的なマイクロプロセッサ・アーキテクチャとしてはx86、ARM、MIPS、PowerPCがあり、これらのアーキテクチャは数多くのサプライヤにサポートされている。一方、マイクロコントローラにも多数のアーキテクチャがあり、様々なデバイスに組み込まれている(マイクロコントローラのサプライヤに提供されているデバイスについては*5)を参照のこと。
マイクロコントローラは、マイクロプロセッサのような柔軟性と高い処理性能を犠牲にする代わりに、コストと電力効率を追求した特殊なプロセッサである。ターゲットアプリケーションのニーズに合わせ、オンチップリソースを最大限に活用できる1つのデバイスコンフィギュレーションを実現することで、これを可能にしている。各デバイスにはプロセッサコアの他、オンチップメモリー、タイマー、I/Oライン、ペリフェラル、デバイスコントローラが組み込まれている。オンチップペリフェラルには、A-Dコンバータ、D-Aコンバータ、PWMの他、I2C、SPI、UARTなどのシリアル通信インターフェースなどがある。一般にマイクロコントローラは、マイクロプロセッサに比べるとはるかに少ない外部コンポーネントで動作する、自己完結型の処理・制御システムと言える。
マイクロコントローラのサプライヤは、処理パフォーマンス、統合ペリフェラル群、オンチップメモリー、メモリー管理、パッケージングオプション、電力管理、開発サポートなどで特長を出すことによって製品の差異化を図っている。1つのマイクロコントローラファミリは、多くの類似した派生的コンフィギュレーションで構成されていることが多く、設計者は処理量やオンチップリソースのサポートに応じた価格のものを選ぶことができる。マイクロコントローラは、ターゲットの組み込みシステムアプリケーションに合わせてボードスペース、コードサイズ、電力損失を最適化しているため、柔軟性では汎用マイクロプロセッサに劣るが、コスト効果は高い。
マイクロコントローラとマイクロプロセッサのもう1つの違いは、リアルタイム処理の制約条件を満たすために設計者が利用できるリソースの抽象化のレベルにある。一般にマイクロプロセッサを使用する設計者は、機能が豊富なOSに依存してペリフェラルリソースの抽象化と管理を行うが、マイクロコントローラを使用する設計者は、オンチップペリフェラルとコントローラリソースに直接アクセスするか、よく使われている汎用のRTOSを使用する。RTOSは、マイクロプロセッサのOSに比べると機能が少ないため、決定的なシステム動作をより効果的にサポートできる。
マイクロコントローラが得意とする領域は、遅延許容幅が少ないマシン制御やモーター制御など、外部の実世界イベントに対してリアルタイムに応答しなくてはならないシステムである。マイクロコントローラは、高速で頻繁に発生する、優先度に基づくコンテキストスイッチに対応している。多くのマイクロコントローラには、システムが数クロックサイクル内で外部イベントを検知して応答し、リアルタイム制御アプリケーションに適した、小さく予測可能な応答ウィンドウを提供できるよう、特殊なハードウエア割り込み処理が採用されている。この高速で決定的な割り込み応答機能に比べると、OSを介して割り込み処理を行うこともあるマイクロプロセッサの割り込みシステムは遅く、予測不能である。
マルチプロセッサにはマイクロプロセッサにない利点がある。複数の8ビットデバイスで構成される小さなマイクロコントローラは、あらゆるプロセッサの中でも消費電力が最も少ない。これらのデバイスは、電流損失が非常に少ないディープスリープモードに対応しており、外部イベントや経過時間に基づいてウェークアップできる。この機能は、電力消費量が大きくアイドル時間が長いシステムにおいて、ヘルスモニタリングやシステム起動シーケンスといった周期的タスクの処理を実行するのに理想的である。
マイクロコントローラと同様、DSPもまた、マイクロプロセッサのような柔軟性と汎用処理パフォーマンスを犠牲にして、コストと電力効率を追求した特殊なプロセッサである。しかし、DSPがマイクロコントローラと異なるのは、データストリームに対する連続的かつ大量の計算処理をリアルタイムでサポートするためにオンチップリソースを最大限に利用して、マルチタスキングやコンテキストスイッチには重点を置いていない点である。
DSPは小数形式をサポートしており、配列、循環バッファ、ビット反転アルゴリズムに特殊なアドレス生成を使用する。DSPの多重バスとメモリー構造は、単一サイクルMAC(積和演算)の実行をサポートする同時メモリー処理を可能にしている。DSPのレジスタは、メモリーアクセスを最小限に抑え、ゼロ・オーバヘッド・ルーピングを実現する。DSPの特殊な構造により、演算ユニットには常に新しいリアルタイムデータが供給される。DSPアーキテクチャの構造は、ターゲットアプリケーションによっても異なる(DSPのサプライヤおよび供給されているデバイスについては、*6)を参照のこと)。
DSPのサプライヤは、持続可能な計算パフォーマンス、コード密度、電力消費量、開発サポートによって差異化をはかっている。マイクロプロセッサやマイクロコントローラの場合とは異なり、信号処理開発者は信号処理アプリケーションにおける計算効率とコンテキストスイッチ量の低減を重視しているため、RTOSのサポートはほとんど、あるいはまったく必要としない。今日のDSPアーキテクチャには、ほとんどの信号処理コードを効率的にコンパイルできる直交命令セットアーキテクチャが採用されている。
DSPの特長は、最低限のコストと電力で高い演算性能を持続できることだ。制御が難しく計算負荷の高いアルゴリズムを除き、上位領域は徐々にFPGAと重なりつつある。VoIP(voice over internet protocol)は、FPGAのみの実装ではうまく機能しない、計算負荷の高いアルゴリズムの一例である。なぜなら、ドメイン固有のVoIPデータ圧縮方式には演算制御状態と決定実行が多すぎるからだ。VoIPのケースでは、アルゴリズムがよりコスト効果の高いソフトウエアとして実装される。下位領域は、制御とシグナル処理の構造を1つの命令エンジンに結合した統合アーキテクチャをベースとするプロセッサと重なる。
統合プロセッサ・アーキテクチャは、マイクロプロセッサよりも、マイクロコントローラとDSPに近い。1つの命令エンジンで、マイクロコントローラ・アーキテクチャを拡張して信号処理機能を追加したものか、制御ロジックを処理する回路をDSPアーキテクチャに組み込んだものである。統合プロセッサ・アーキテクチャではRTOSがサポートされていることが多い。制御と演算処理という異なる動作をつなげる特別な回路を組み込む必要があるため、最適化と特殊化の面ではマイクロコントローラやDSPほどでもない。同じ命令エンジンで制御と信号処理を行うため、2つのプロセッサ間の共有データを密結合させるのは容易であろう。
統合プロセッサ・アーキテクチャは、制御要件あるいは信号処理要件がそれほど厳しくないシステムに適している。2つの異なるプロセッサを使用する必要がないため、システムBOM(bill of materials:部品表)を低減できる。統合プロセッサをマルチプロセッサ設計で使用する利点は、開発にかかる労力を最小限に抑えられることだ。プロセッサの役割を制御と信号処理に分ける場合でも各プロセッサの設計者は同じツールを使用することになるため、一方のプロセッサ向けに開発されたコードを他方のプロセッサに移植できる可能性がある。
※4…"Operating alone" EDN, Dec 5, 2005, pg 49.
※5…"The 32nd annual Microprocessor Directory : Charting your cource" EDN, Aug 4, 2005, pg 57.
※6…“用途に最適なDSPを選ぶ”EDN 2005年9月号, pp.77-88
Copyright © ITmedia, Inc. All Rights Reserved.