アルテラのエンべデッド・ソフトコア・ポートフォリオを活用することにより、FPGA が得意な並列処理を最大限に活用して高いシステム性能を実現することができます。複数のプロセッサが同時にコードを実行しながら、ハードウェア・アクセラレータによって計算量の多いアルゴリズム処理の負荷を軽減できます。製品ライフ・サイクルのあらゆる段階で、ボードの再設計や手作業でのアセンブリ・コードの最適化を行うことなく、組み込みシステムの性能をアップグレードすることができます。
システム性能をアップグレードする方法はいくつかあります。
- ソフトプロセッサ・コア
- カスタム・インストラクション
- ハードウェア・アクセラレータ
- コンフィギュレーション可能なキャッシュと密結合メモリ
- マルチプロセッサ・システム
- 高いバンドを実現するシステム・インタコネクト
ソフトプロセッサ・コア
Nios® II プロセッサでは、以下の3 種類のソフトプロセッサ・コア(図 1参照)から選択する事ができます。
- 最大のシステム性能を実現するために最適化されたソフトコア・プロセッサ
- 最小のロジック使用を実現するために最適化されたソフトコア・プロセッサ
- 2つのソフトコア・プロセッサ間でバランスを図ったソフトコア・プロセッサ
これらのコアは、ユーザの必要とするニーズに合わせて、乗算器、ユーザ指定キャッシュ・メモリ、カスタム・インストラクション、ハードウェア・デバッグ・ロジックなどの機能を容易にコンフィギュレーションできます。
図 1. Nios II ソフト・プロセッサ・コア性能

アルテラのエンべデッド・ポートフォリオで提供するその他のソフトコア・プロセッサとして以下をご用意しています。
- MP32 プロセッサ: 業界初の MIPS® 互換ソフトコア・プロセッサ
- ARM® Cortex-M1 プロセッサ: 3ステージ 32ビット ARM Cortex プロセッサ
- Freescale V1 ColdFire プロセッサ: 完全に合成可能なコアと可変長 RISC 16ビット、32ビット、48ビット インストラクションを搭載
- Intel® Atom® E6x5C プロセッサ: マルチチップ・パッケージにて、Intel Atom プロセッサ E6xx と アルテラ FPGA の組み合わせを提供
カスタム・インストラクション
Nios II インストラクション・セットにカスタム・インストラクションを追加することにより、負荷の大きいソフトウェア・アルゴリズムの高速化が可能です。3つのプロセッサ・コア共通で最大 256 のカスタム・インストラクションを追加して、数値計算、ビット操作、およびその他の複雑な処理アルゴリズム(図 2 参照)に必要なクロック・サイクル数を低減することができます。
図 2. カスタム・インストラクション・ロジック

ハードウェア・アクセラレータ
C言語のサブルーチンを、クロック周波数や消費電力を増加させずに性能を向上させるハードウェア・アクセラレータに変換することにより、ソフトウェアを自動的に高速化することができます。Nios II C-to-Hardware(C2H)アクセラレーション・コンパイラを使用して、高速処理が要求される性能が求められるファンクションを「右クリック」メニューで指定するだけで高速化できます。Verilog または VHDL アクセラレータ (図 3 参照) を手動で生成する時間と費用が不要になります。
図 3. ハードウェア・アクセラレータの例

コンフィギュレーション可能なキャッシュとタイトリ・カップルド・メモリ
プロセッサ・インストラクションまたはデータ・キャッシュのサイズを調整して、アプリケーションの性能要求に応えることができます。 頻繁に使用するルーチンへの高速アクセスが必要な場合、キャッシュ・ミスのペナルティを伴わずにキャッシュと同様のアクセスを提供するタイトリ・カップルド・メモリを最大 4個追加することができます。
- キャッシュおよびタイトリ・カップルド・メモリについては 「Nios II ソフトウェア開発ハンドブック」 (PDF) を参照してください
- Using Nios II Tightly Coupled Memory Tutorial (PDF) のダウンロード
マルチプロセッサ・システム
複数のプロセッサを使用して、システムの性能を向上させることや、小さくシンプルなタスクに分割する事で、ソフトウェア・アプリケーションの書き込み、デバッグ、およびメンテナンスを容易することができます。Nios II エンベデッド・デザイン・スイート(EDS) および業界をリードするエンベデッド・ソフトウェア・パートナーのツールは、マルチプロセッサ・アプリケーションの開発およびデバッグを協力にサポートします。Nios II プロセッサは、Stratix® FPGA ファミリ や HardCopy® のような高集積デバイスと組み合わせるとで、高性能のマルチプロセッサ・システム (図 4 参照) の構築に最適なプラットフォームとなります。
図 4. マルチプロセッサの例

高いバンド幅を実現するシステム・インタコネクト
Quartus® II 開発ソフトウェアに搭載される、アルテラの Qsys システム統合ツール によって、FPGA の固有の並列処理を利用する高いスループットのシステムを生成することができます。 マスタ・コンポーネントとスレーブ・コンポーネント間の専用接続により、システム・インタコネクト・ファブリックが完全に切り換わるため、従来のバス・アーキテクチャに見られるアービトレーション・ストールを伴わない複数の同時トランザクションが可能になります。インテリジェントな ダイレクト・メモリ・アクセス (DMA) チャネルを使用して、プロセッサの負荷を軽減できます。
