インテルのみ表示可能 — GUID: iga1409336736276
Ixiasoft
3.4.2.1. status レジスター
3.4.2.2. estatus レジスター
3.4.2.3. bstatus レジスター
3.4.2.4. ienable レジスター
3.4.2.5. ipending レジスター
3.4.2.6. cpuid レジスター
3.4.2.7. exception レジスター
3.4.2.8. pteaddr レジスター
3.4.2.9. tlbacc レジスター
3.4.2.10. tlbmisc レジスター
3.4.2.11. badaddr レジスター
3.4.2.12. config レジスター
3.4.2.13. mpubase レジスター
3.4.2.14. mpuacc レジスター
8.5.1. add
8.5.2. addi
8.5.3. and
8.5.4. andhi
8.5.5. andi
8.5.6. beq
8.5.7. bge
8.5.8. bgeu
8.5.9. bgt
8.5.10. bgtu
8.5.11. ble
8.5.12. bleu
8.5.13. blt
8.5.14. bltu
8.5.15. bne
8.5.16. br
8.5.17. break
8.5.18. bret
8.5.19. call
8.5.20. callr
8.5.21. cmpeq
8.5.22. cmpeqi
8.5.23. cmpge
8.5.24. cmpgei
8.5.25. cmpgeu
8.5.26. cmpgeui
8.5.27. cmpgt
8.5.28. cmpgti
8.5.29. cmpgtu
8.5.30. cmpgtui
8.5.31. cmple
8.5.32. cmplei
8.5.33. cmpleu
8.5.34. cmpleui
8.5.35. cmplt
8.5.36. cmplti
8.5.37. cmpltu
8.5.38. cmpltui
8.5.39. cmpne
8.5.40. cmpnei
8.5.41. custom
8.5.42. div
8.5.43. divu
8.5.44. eret
8.5.45. flushd
8.5.46. flushda
8.5.47. flushi
8.5.48. flushp
8.5.49. initd
8.5.50. initda
8.5.51. initi
8.5.52. jmp
8.5.53. jmpi
8.5.54. ldb / ldbio
8.5.55. ldbu / ldbuio
8.5.56. ldh / ldhio
8.5.57. ldhu / ldhuio
8.5.58. ldw / ldwio
8.5.59. mov
8.5.60. movhi
8.5.61. movi
8.5.62. movia
8.5.63. movui
8.5.64. mul
8.5.65. muli
8.5.66. mulxss
8.5.67. mulxsu
8.5.68. mulxuu
8.5.69. nextpc
8.5.70. nop
8.5.71. nor
8.5.72. or
8.5.73. orhi
8.5.74. ori
8.5.75. rdctl
8.5.76. rdprs
8.5.77. ret
8.5.78. rol
8.5.79. roli
8.5.80. ror
8.5.81. sll
8.5.82. slli
8.5.83. sra
8.5.84. srai
8.5.85. srl
8.5.86. srli
8.5.87. stb / stbio l
8.5.88. sth / sthio
8.5.89. stw / stwio
8.5.90. sub
8.5.91. subi
8.5.92. sync
8.5.93. trap
8.5.94. wrctl
8.5.95. wrprs
8.5.96. xor
8.5.97. xorhi
8.5.98. xori
インテルのみ表示可能 — GUID: iga1409336736276
Ixiasoft
3.7.11.2. 外部割り込みコントローラーによるネスト式例外
EIC では、ネスト型割り込みの処理は、内部割り込みコントローラーよりも洗練されています。ただし、割り込みではない例外の処理は同様です。
個々の外部割り込みに専用のシャドー・レジスター・セットがある場合、Nios II プロセッサーはレジスター・コンテンツを保存するためにオーバーヘッドなしで高速割り込み処理をサポートします。高速割り込み処理を最大限に活用するには、システム・ソフトウェアが特定の条件を設定する必要があります。次の条件を満たすと、ISR は開始と終了時のレジスター内容の保存および復元の必要はありません。
- 自動ネスト型割り込みが有効になる場合
- 各割り込みが専用のシャドー・レジスター・セットに割り当てられている場合
- 同じ RIL を持つすべての割り込みが専用のシャドー・レジスター・セット二割荒れられている場合
- 異なる RIL を持つ複数の割り込みが 1 つのシャドー・レジスター・セットに割り当てられる場合。ただし、複数のレジスターセットがある場合、あるシャドー・レジスター・セットに割り当てられた RIL を別のレジスターセットに割り当てられた RIL とオーバーラップさせないようにする必要がある。
次の表は、レジスターセット内のプリエンプションが有効状態の際のレジスターセットの割り当ての妥当性を示しています。
RIL | レジスターセット 1 | レジスターセット 2 |
---|---|---|
1 | IRQ0 | |
2 | IRQ1 | |
3 | IRQ2 | |
4 | IRQ3 | |
5 | IRQ4 | |
6 | IRQ5 | |
7 | IRQ6 |
RIL | レジスターセット 1 | レジスターセット 2 |
---|---|---|
1 | IRQ0 | |
2 | IRQ1 | |
3 | IRQ3 | |
4 | IRQ2 | |
5 | IRQ4 | |
6 | IRQ5 | |
7 | IRQ6 |
注: 割り込み以外の例外ハンドラーは通常のレジスターセットで実行されるため、常にレジスター内容を保存して復元する必要があります。
複数の割り込みは、レジスターセットを共有できますが、パフォーマンスはいくらか低下します。レジスターセットの共有は、次の 2 つの方法があります。
- status.RSIEを 0 に設定します。ISR が特定のレジスターセットで実行中の場合、プロセッサーは同じレジスターセットに割り当てられたマスク可能割り込みを受け取りません。このような割り込みは、それらの割り込みレベルに関係なく、実行中の ISR が完了するまで待機する必要があります。
注: この方法は優先順位を逆にする可能性があります。
- それぞれの ISR がエントリーおよび終了時にレジスターを保存および復元し、レジスターが保存された後にstatus.RSIEを 1 に設定するようにします。特定のレジスターセットで ISR が実行されている場合、プロセッサーはより高い割り込みレベルを有する場合、同じレジスターセット内の割り込みを取ります。
Nios II プロセッサーはマスク可能割り込みを受け取る際に割り込みを無効にします ( マスク不能割り込みは常にマスク可能割り込みを無効にします )。個別の ISR は、この章の「内部割り込みコントローラーのネスト式例外」の説明に従って、status.PIEを 1 に設定することで、ネスト化割り込みを再び有効にできます。