Nios® V プロセッサー・ソフトウェア開発者ハンドブック

ID 743810
日付 7/08/2024
Public
ドキュメント目次

9.5.1.8. ネストされたハードウェア割り込みの使用

デフォルトでは、HAL は ISR をディスパッチする際に割り込みを無効にします。つまり、一度に実行できる ISR は 1 つだけであり、ISR は先着順で実行されます。これにより、割り込み処理に関連するシステムのオーバーヘッドが削減され、ISR 開発が簡素化されます。ISR は再入可能である必要はありません。ISR は、アプリケーション・コードと共有されていないグローバルまたは静的データ構造またはハードウェア・レジスターを使用および変更することができます。

ただし、先着順実行とは、HAL ハードウェア割り込みの優先度が、2 つの IRQ が同時にアクティブになっている場合にのみ、効果があることを意味します。優先度の高い割り込みの前に優先度の低い割り込みが発生すると、優先度の高い ISR の実行が妨げられる可能性があります。これは一種の優先順位の逆転であり、頻繁に割り込みを生成するシステムでは ISR のパフォーマンスに大きな影響を与える可能性があります。

ソフトウェア・システムは、ネストされた ISR を使用することで、完全なハードウェア割り込みの優先順位付けを実現できます。ネストされた ISR では、優先度の高い割り込みが優先度の低い ISR に割り込むことができます。

この手法を使用すると、優先順位の高い ISR の割り込みレイテンシーを改善することができます。

注: ネストした ISR によって、優先順位の低いハードウェア割り込みの処理時間が長くなります。

ISR が非常に短い場合、ネストされたハードウェア割り込みを有効にするオーバーヘッドに見合わない可能性があります。短い ISR のネストされた割り込みを有効にすると、実際には、優先度の高い割り込みの応答時間が長くなる可能性があります。

注: IIC を持つ個別の例外スタックを使用する場合、ハードウェア割り込みをネストすることはできません。