Nios II Gen2 プロセッサー・リファレンス・ガイド

ID 683836
日付 10/28/2016
Public
ドキュメント目次

4.7.7. 例外チェック

Exception Checking 設定では、次のオプションがあります。

Misaligned memory access—ミスアライメントされたメモリーアクセス検出は、Nios II/f コアでのみ使用可能です。ミスアライメントされたメモリーアクセスがオンになると、プロセッサーはミスアライメントされたメモリーアクセスをチェックします。

注: システムに MMU または MPU を含んでいる場合、プロセッサーは自動的にミスアライメントされたメモリーアクセスの例外を生成します。したがって、Core Nios IIタブのInclude MMUまたはInclude MPUがオンの場合、Misaligned memory accessのチェックボックスは常に無効です。

下に 2 つのミスアライメントされたメモリーアドレスの例外を示します。

  • ミスアライメント・メモリー・アドレス—ロード / ストア命令のデータアドレスのミスアライメントがチェックされます。バイトアドレスがロード命令またはストア命令のデータ幅の倍数でない場合 ( データの場合は 4 バイト、ハーフワードの場合は 2 バイト )、データアドレスはミスアライメントとみなされます。バイトロード命令とストア命令は常に整列しており、ミスアライメントされたデータアドレス例外を生成することはありません。
  • ミスアライメント・デスティネーション・アドレス—brcallrjmpreteretおよびbret命令のデスティネーション命令アドレスのミスアライメントがチェックされます。命令のターゲット・バイトアドレスが 4 の倍数でない場合、デスティネーション命令アドレスはミスアライメントとみなされます。

例外ハンドラーはこのコードを使用して、命令デコーディングの原因を判断するよりも迅速に適切な実行すべきアクションを判断することができます。さらに、一部の例外は命令またはbadaddrレジスターの例外に関連のあるデータアドレスも格納します。

例外、例外処理およびコントロール・レジスターについて詳しくは、Nios II プロセッサー・リファレンス・ハンドブックの「プログラミング・モデル」の章を参照してください。