ニオス II

ニオス II
デザイナーアルテラ/インテル
ビット32ビット
デザインRISC
エンディアンリトルエンディアン
開けるいいえ
レジスター
汎用32

Nios IIは、アルテラフィールドプログラマブルゲートアレイ(FPGA)集積回路ファミリ向けに特別に設計された32ビットの組み込みプロセッサアーキテクチャです。Nios IIは、オリジナルのNios組み込みプロセッサアーキテクチャに対して多くの機能強化が組み込まれており、デジタル信号処理(DSP)からシステム制御まで、より幅広い組み込みコンピューティングアプリケーションに適しています。Nios IIは、2000年に導入されたアルテラ初のコンフィギュラブル16ビット組み込みプロセッサNiosの後継です。 [ 1 ] Intelは、2023年にNios IIの製造を中止し、RISC-Vアーキテクチャに基づくNios Vを後継として発表しました。[ 2 ]

主な特徴

Nios IIアーキテクチャは、初代Niosと同様に、Altera FPGAのプログラマブルロジックとメモリブロックに完全に実装されたRISCソフトコアアーキテクチャです。前身とは異なり、Nios IIは完全な32ビット設計となっています。

  • 32個の汎用32ビットレジスタ、
  • 完全な32ビット命令セット、データパス、アドレス空間、
  • 単一命令で 32 × 32 の乗算と除算を実行し、32 ビットの結果を生成します。

Nios IIプロセッサのソフトコア特性により、システム設計者は特定のアプリケーション要件に合わせてカスタマイズされたNios IIコアを指定・生成できます。システム設計者は、例えば定義済みのメモリ管理ユニット(MMU)を追加したり、カスタム命令やカスタムペリフェラルを定義したりすることで、Nios IIの基本機能を拡張できます。

カスタム指示

ネイティブNios II命令と同様に、ユーザー定義命令は最大2つの32ビットソースレジスタから値を受け取り、オプションで結果を32ビットデスティネーションレジスタに書き戻すことができます。カスタム命令を使用することで、システム設計者はシステムハードウェアを微調整してパフォーマンス目標を満たすことができ、また、命令をC言語のマクロとして簡単に扱うことができます。

カスタム周辺機器

CPU サイクルのほとんどを特定のコードセクションの実行に費やすパフォーマンスが重要なシステムの場合、ユーザー定義の周辺機器を使用すると、ソフトウェア アルゴリズムの実行の一部またはすべてをユーザー定義のハードウェア ロジックにオフロードして、電力効率やアプリケーションのスループットを向上させることができます。

メモリ管理ユニット

Quartus 8.0で導入されたオプションのMMUにより、Nios IIはLinuxカーネルなど、ハードウェアベースのページングと保護を必要とするオペレーティングシステムを実行できるようになります。MMUがない場合、NiosはμClinuxFreeRTOSなど、簡素化された保護と仮想メモリモデルを使用するオペレーティングシステムのみで動作します。

メモリ保護ユニット

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の機能は以下のとおりです。

  • 最大2 GBの外部アドレス空間
  • JTAGデバッグモジュール
  • 700 LE未満で完全なシステムを実現 
  • オプションのデバッグ強化
  • 最大256個のカスタム命令
  • 無料、ライセンス不要

Avalon スイッチファブリックインターフェース

Nios II は、組み込みペリフェラルへのインターフェースとして Avalonスイッチファブリックを使用します。プロセッサベースシステムの従来のバスでは、一度に 1 つのバスマスターしかバスにアクセスできませんが、Avalon スイッチファブリックでは、スレーブ側の調停方式を採用することで、複数のマスターが同時に動作できます。

開発プロセス

Nios II の開発は、ハードウェア生成とソフトウェア作成という 2 つの個別のステップで構成されます。

開発は、アルテラのアプリケーション「Embedded Design Suite(EDS)」内で行われます。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に代わるものであり、新規プロジェクトにはQsysが推奨されています。[ 3 ]

ソフトウェア作成プロセス

ソフトウェア開発は、Embedded Design Suite(EDS)と呼ばれる別のパッケージによって管理されます。Eclipse IDEをベースにしたEDSは、C/C++コンパイラ( GNUツールチェーンベース)、デバッガ、命令セットシミュレータで構成されています。EDSを使用することで、プログラマはシミュレーションでアプリケーションをテストしたり、コンパイル済みのアプリケーションをダウンロードして実際のFPGAホスト上で実行したりできます。

C/C++開発チェーンはGCCをベースとしているため、 Linux向けのオープンソースソフトウェアの大部分は、最小限の変更、あるいは変更なしでコンパイル・実行できます。サードパーティ製のオペレーティングシステムもNios IIに移植されています。これには、Micrium MicroC/OS-IIeCosSegger Microcontroller embOS、ChibiOS/RTμCLinuxFreeRTOSが含まれます。

GCC 15では、Nios IIの製造中止に伴い、Nios IIプロセッサのサポートが削除されました。[ 4 ]

ライセンス

Nios IIは、 Xilinx FPGAファミリー向けの競合ソフトコアCPUであるMicroBlazeに匹敵します。MicroBlazeとは異なり、Nios IIはサードパーティIPプロバイダーであるSynopsys Designwareを通じてスタンダードセルASIC向けのライセンスを取得できます。Designwareライセンスを通じて、設計者はNiosベースの設計をFPGAプラットフォームから量産ASICデバイスに移植できます。

参照

参考文献