PLD デバイス・アーキテクトの決断 ――Altera社 ARM-based Excalibur の場合
●なぜARM9コアなのか
ハードIPとしてPLDに組み込むCPUについて,頻繁に議論されるテーマがあります.それは,標準的なCPUアーキテクチャと独自仕様のCPUアーキテクチャのどちらを選択するべきかということです.選択肢は多数存在します.筆者らは,CPUを選択するにあたって,以下のような条件を考えました.
- 世の中で幅広く受け入れられている業界標準の32ビットまたは64ビット・アーキテクチャをとる
- ワイヤレス通信やネットワーク,産業用機器,自動車,ディジタル機器といった市場のターゲット・アプリケーションに対応可能
- 次世代のCPUへの移行が容易(移行する際には,既存のコードと開発ツールへの投資をむだにしないため,コードの互換性を維持する必要がある)
- ファウンドリのパートナ企業が製品を量産できる
筆者らは,さまざまな業界標準のCPUと独自仕様のCPUを評価しました.その結果,独自仕様のアーキテクチャでは,特定の市場分野にターゲットが狭く絞られすぎると考えました.そして筆者らは,現在,すでに広く受け入れられているCPUアーキテクチャ,つまり代表的な開発ツールによって幅広くサポートされているアーキテクチャが今回の製品のロードマップに適していると判断しました.結果的に,英国ARM社のARM922T CPUコアを用いた回路構成を選びました.CPUコア・ベンダであるARM社のアーキテクチャは,モバイル・ワイヤレス通信分野や通信応用分野の業界標準として普及しています.また,ワイヤレス通信やネットワーク,産業用機器,自動車,ディジタル・エンターテインメントの分野でも急速にその地位を高めています.
ARM9は,v4TアーキテクチャのARM命令セット(ISA)を利用しています.このISAは,Thumb命令セットに対応しています.Thumb命令は16ビット長ですが,32ビット命令との切り替え時にオーバヘッドが発生しません.大量 のメモリを必要とするアプリケーションの場合,Thumb命令セットを用いることで最大35%のメモリ容量 を節約できます.また,ARM v4Tは,ARM7xxT/ARM7TDMIのコードと下位 互換性があります.これにより,ARM7のコードは,より高性能なARM9でも動作します.つまり,ARM7のコードはARM-based Excaliburデバイスでも利用できるというわけです.v5TE/v6(編集部注1)命令セットとのコード互換性が保証されているので,将来のアプリケーション機能の増大に対応していけます.
編集部注1;v5TEはThumb命令セット,信号処理用の命令拡張などの特徴がある.v6はSIMD命令や内部・外部バスの拡張,キャッシュ・アーキテクチャの拡張などの特徴を持つ.