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
3.5.2. MPU の初期化
システム・ソフトウェアは、この章の「メモリー領域」の項で説明する領域情報を含んだデータ構造を、各アクティブスレッドに提供する必要があります。データ構造には、理想的には、mpubaseおよびmpuaccレジスター・フォーマットに対応する 2 つの 32 ビット値が含まれています。
システムリセット時に MPU は無効になります。MPU を使用可能にする前に、アルテラはすべての MPU 領域を初期化することを推奨します。目的の命令およびデータ領域を有効にするには、この章の「MPU 領域の読み出しおよび書き込み動作」の項に記載のとおりに、各領域の属性をmpubaseおよびmpuaccレジスターに書き込みます。未使用領域も無効にする必要があります。領域サイズを使用する場合、mpuacc.MASKをゼロにクリアーします。制限を使用する場合は、mpubase.BASEをゼロ以外の値に設定し、 mpuacc.LIMITを 0 にクリアーします。
注: 少なくとも 1 つの命令と 1 つのデータ領域を有効にする必要があり、有効にしない場合は予期しない動作が発生する可能性があります。
コンテキスト・スイッチを実行するには、wrctlを使用してconfigレジスターのPEフィールドにゼロを書き込んで MPU を無効にし、新しいスレッドのデータ構造からすべての MPU 領域を定義し、別のwrctlを使用してconfig.PEMPUを有効にします。
この章の「MPU領域の読み出しおよび書き込み動作」で説明のある、wrctl命令のペアを使用して各領域を定義します。必要なすべての領域が定義されるまで、このデュアルwrctl命令シーケンスを繰り返します。