| デザイナー | アルテラ |
|---|---|
| ビット | 32ビット |
| デザイン | RISC |
| エンディアン | リトルエンディアン |
| 開ける | いいえ |
| レジスター | |
| 汎用 | 32 |
Nios IIは、 Alteraファミリのフィールド プログラマブル ゲート アレイ(FPGA)集積回路専用に設計された32 ビットの組み込みプロセッサ アーキテクチャです。Nios II は、オリジナルの Nios アーキテクチャに比べて多くの機能強化が組み込まれており、デジタル信号処理(DSP) からシステム制御まで、 より幅広い組み込みコンピューティング アプリケーションに適しています。
Nios IIは、2000年に発表されたアルテラ初のコンフィギュラブル16ビット組み込みプロセッサNiosの後継製品です。 [1]
主な特徴
オリジナルの Nios と同様に、Nios II アーキテクチャは、Altera FPGA のプログラマブル ロジックとメモリ ブロックに完全に実装されたRISC ソフトコアアーキテクチャです。前身とは異なり、完全な32 ビット設計です。
- 32個の汎用32ビットレジスタ、
- 完全な32ビット命令セット、データパス、アドレス空間、
- 単一命令で 32 × 32 の乗算と除算を実行し、32 ビットの結果を生成します。
Nios II プロセッサのソフトコア特性により、システム設計者は、特定のアプリケーション要件に合わせてカスタマイズされたカスタム Nios II コアを指定して生成できます。システム設計者は、たとえば、定義済みのメモリ管理ユニットを追加したり、カスタム命令やカスタム周辺機器を定義したりして、Nios II の基本機能を拡張できます。
カスタム指示
ネイティブ Nios II 命令と同様に、ユーザー定義命令は最大 2 つの 32ビットソース レジスタから値を受け入れ、オプションで結果を 32 ビット デスティネーション レジスタに書き戻します。カスタム命令を使用することで、システム設計者はシステム ハードウェアを微調整してパフォーマンス目標を満たすことができ、また設計者は命令をCのマクロとして簡単に処理できます。
カスタム周辺機器
CPU サイクルのほとんどを特定のコードセクションの実行に費やすパフォーマンスが重要なシステムの場合、ユーザー定義の周辺機器を使用すると、ソフトウェア アルゴリズムの実行の一部またはすべてをユーザー定義のハードウェアロジックにオフロードして、電力効率やアプリケーションのスループットを向上させることができます。
メモリ管理ユニット
Quartus 8.0で導入されたオプションの MMU により、Nios II は Linux カーネルなどのハードウェアベースのページングと保護を必要とするオペレーティング システムを実行できます。MMU がない場合、Nios は、μClinuxやFreeRTOSなどの簡素化された保護と仮想メモリ モデルを使用するオペレーティング システムに制限されます。
メモリ保護ユニット
Quartus 8.0 で導入されたオプションの MPU は、MMU が提供するものと同様のメモリ保護を提供しますが、プログラミング モデルがより単純で、MMU に関連するパフォーマンス オーバーヘッドがありません。
Nios II CPU ファミリー
Nios II classic は、Nios II/f (高速)、Nios II/s (標準)、および Nios II/e (エコノミー) の 3 つの異なる構成で提供されます。Nios II gen2 は、Nios II/f (高速)、および Nios II/e (エコノミー) の 2 つの異なる構成で提供されます。
ニオス II/f
Nios II/f コアは、コア サイズを犠牲にしてパフォーマンスを最大化するように設計されています。Nios II/f の機能は次のとおりです。
- 命令キャッシュとデータキャッシュを分離(512 B~ 64 KB)
- オプションのMMUまたはMPU
- 最大2 GBの外部アドレス空間へのアクセス
- 命令とデータ用のオプションの密結合メモリ
- 最大DMIPS /MHzを達成するための6段パイプライン
- シングルサイクルハードウェア乗算およびバレルシフター
- オプションのハードウェア分割オプション
- 動的分岐予測
- 最大256のカスタム命令と無制限のハードウェアアクセラレータ
- JTAGデバッグモジュール
- オプションのJTAGデバッグモジュール拡張機能(ハードウェアブレークポイント、データトリガー、リアルタイムトレースなど)
ニオス II/s
Nios II/s コアは、パフォーマンスとコストのバランスを維持するように設計されています。このコア実装は、Altera Quartus II v.17 以降ではサポートされなくなりました。Nios II/s の機能は次のとおりです。
- 命令キャッシュ
- 最大2 GBの外部アドレス空間
- オプションの命令用密結合メモリ
- 5段階パイプライン
- 静的分岐予測
- ハードウェア乗算、除算、シフトオプション
- 最大256個のカスタム命令
- JTAGデバッグモジュール
- オプションのJTAGデバッグモジュール拡張機能(ハードウェアブレークポイント、データトリガー、リアルタイムトレースなど)
ニオス II/e
Nios II/e コアは、FPGA のロジック使用率を可能な限り小さくするように設計されています。これは、低コストの Cyclone II FPGA アプリケーションに特に効果的です。Nios II/e の機能は次のとおりです。
Avalon スイッチファブリックインターフェース
Nios II は、組み込み周辺機器へのインターフェイスとして Avalonスイッチ ファブリックを使用します。プロセッサ ベース システムの従来のバスでは、一度に 1 つのバス マスターのみがバスにアクセスできますが、Avalon スイッチ ファブリックでは、スレーブ側の調停方式を使用して、複数のマスターが同時に動作できます。
開発プロセス
Nios II の開発は、ハードウェア生成とソフトウェア作成という 2 つの別々のステップで構成されます。
開発は、Embedded Design Suite (EDS) と呼ばれる Altera アプリケーション内でホストされます。EDS には、ハードウェアとソフトウェアの両方を 2 つの別々のステップで管理するための完全な統合開発環境が含まれています。
ハードウェア生成プロセス
Nios II ハードウェア設計者は、Quartus-II パッケージのコンポーネントである Qsys システム統合ツールを使用して、Nios システムを構成して生成します。構成グラフィカル ユーザー インターフェイス(GUI) を使用すると、ユーザーは Nios-II の機能セットを選択し、組み込みシステムに周辺機器や I/O ブロック (タイマー、メモリ コントローラ、シリアル インターフェイスなど) を追加できます。ハードウェア仕様が完了すると、Quartus-II は合成、配置配線を実行し、選択した FPGA ターゲットにシステム全体を実装します。Qsys
は、Nios II システムの構築にも使用できる古い SOPC (System-on-a-Programmable-Chip) Builder に代わるものであり、新しいプロジェクトに推奨されています。[2]
ソフトウェア作成プロセス
ソフトウェア開発は、Embedded Design Suite (EDS) と呼ばれる別のパッケージで管理されます。Eclipse IDE をベースにした EDS には、 C/C++ コンパイラ ( GNU ツールチェーンベース)、デバッガー、命令セット シミュレーターが含まれています。EDS を使用すると、プログラマーはシミュレーションでアプリケーションをテストしたり、コンパイルしたアプリケーションをダウンロードして実際の FPGA ホストで実行したりできます。
C/C++ 開発チェーンは GCC に基づいているため、Linux用のオープンソースソフトウェアの大部分は、最小限の変更または変更なしでコンパイルおよび実行されます。サードパーティのオペレーティング システムも Nios II に移植されています。これには、Micrium MicroC/OS-II、eCos、Segger Microcontroller embOS、ChibiOS/RT、μCLinux、FreeRTOSが含まれます。
ライセンス
Nios II は、 Xilinx FPGA ファミリの競合ソフトコア CPU であるMicroBlazeに匹敵します。MicroBlaze とは異なり、Nios II は、サードパーティの IP プロバイダーであるSynopsys Designware を通じて標準セルASICにライセンス供与できます。Designware ライセンスを通じて、設計者は Nios ベースの設計を FPGA プラットフォームから量産 ASIC デバイスに移植できます。
参照
- ラティスミコ8
- ラティスMico32
- マイクロブレイズ
- ピコブレイズ
- マイコンP200
参考文献
- ^ Altera. 「Nios II 組み込みプロセッサの背景情報」(PDF)。
- ^ 「SOPC Builder から Qsys に切り替える 5 つの理由」Altera 。2012年3 月 16 日閲覧。
外部リンク
- Nios II に関する Intel のサイト
- Nios II Embedded Design Suite フォーラム
- Nios コミュニティ ウィキ
- RTEMSリアルタイムオペレーティングシステム
- NiosII を使用したコーネル ECE576 マイクロコントローラ コース
- NiosII の FreeRTOS デモ ドキュメント
- Nios II を使用した UPB ECE31289 コース
