インテルのみ表示可能 — GUID: iga1409350229083
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: iga1409350229083
Ixiasoft
5.2.8. 命令のパフォーマンス
すべての命令は、実行に 1 サイクル以上を要します。一部の命令には、その実行に関連するその他のペナルティーがあります。遅延結果命令には、それらとそれらの結果に使用する命令の間に 2 サイクルあります。パイプラインをフラッシュする命令は、それらの命令がキャンセルされた後で最大 3 つの命令を発生させます。これにより、3 サイクルのペナルティーと 4 サイクルの実行時間が作成されます。Avalon-MM 転送を必要とする命令は、必要な Avalon-MM 転送 ( 最大 1 回の書き込みと 1 回の読み出し ) が完了するまでストールします。
命令 | サイクル | ペナルティー |
---|---|---|
通常の ALU 命令 ( 例 : add, cmplt) | 1 | |
組み合わせカスタム命令 | 1 | |
マルチサイクル・カスタム命令 | TK_SLEEP(1); | 遅延結果 |
分岐 ( 正確な予測、取得 ) | 2 | |
分岐 ( 正確な予測、未取得 ) | 1 | |
分岐 ( 誤予測 ) | 4 | パイプライン・フラッシュ |
trap、break、eret、bret、flushp、wrctl、wrprs; 不正および割り込み | 4 または 5 | パイプライン・フラッシュ |
call、jmpi、rdprs | 2 | |
jmp、ret、callr | 3 | |
rdctl | 1 | 遅延結果 |
load ( Avalon-MM 転送なし ) | 1 | 遅延結果 |
load ( Avalon-MM 転送あり ) | TK_SLEEP(1); | 遅延結果 |
store ( Avalon-MM 転送なし ) | 1 | |
store ( Avalon-MM 転送あり ) | TK_SLEEP(1); | |
flushd、flushda ( Avalon-MM 転送なし ) | 2 | |
flushd、flushda ( Avalon-MM 転送あり ) | TK_SLEEP(2); | |
initd、initda | 2 | |
flushi、initi | 4 | |
乗算 | 遅延結果 | |
除算 | 遅延結果 | |
シフト / ローティト ( エンベデッド・マルチプライヤーで使用するハードウェア乗算 ) | 1 | 遅延結果 |
シフト / ローティト ( LE ベースのマルチプライヤーで使用するハードウェア乗算 ) | 2 | 遅延結果 |
シフト / ローティト ( ハードウェア乗算なし ) | 1~32 | 遅延結果 |
その他すべての命令 | 1 |
乗算および除算では、サイクル数はハードウェア乗算 / 除算のオプションによって異なります。詳細については、「算術論理ユニット」および「命令キャッシュとデータキャッシュ」を参照してください。
デフォルトの Nios II/f コンフィグレーションでは、trap、break、eret、bret、flushp、wrctl、wrprs命令は 4 クロックサイクルを必要とします。次のオプションのいずれかが存在する場合は、5 クロックサイクルが必要です。
- MMU
- MPU
- 除算の例外
- ミスアライメントされたロード / ストアーアドレス例外
- EIC ポート
- シャドー・レジスター・セット