Visible to Intel only — GUID: ljd1723705286664
Ixiasoft
4.3.1. General-Purpose Register File
4.3.2. Arithmetic Logic Unit
4.3.3. Multipy and Divide Units
4.3.4. Floating-Point Unit
4.3.5. Custom Instruction
4.3.6. Reset and Debug Signals
4.3.7. Control and Status Registers
4.3.8. Trap Controller
4.3.9. Memory and I/O Organization
4.3.10. RISC-V based Debug Module
4.3.11. Error Correction Code (ECC)
4.3.12. Branch Prediction
4.3.13. Lockstep Module
Visible to Intel only — GUID: ljd1723705286664
Ixiasoft
4.3.12. Branch Prediction
Nios® V/g processor core supports Static Branch Prediction. This core implements Backward Taken, Forward Not Taken (BTFN) mechanism. This technique is a simple form of branch prediction because it does not rely on the history of the branches. It predicts the outcome of a branch instruction as follows:
- Always taken, when backward branches, or
- Always not taken when forward branches.
- Backward branch - When the target branch address is less than the Program Counter.
- Forward branch - When the target branch address is greater than the Program Counter.
For example, the assembly code below shows a forward branch. ef0 is the Program Counter, and f10 is the targeted branch address. Since the targeted branch address is greater than the Program Counter, the processor core does not take the branch.
Figure 12. Branch Prediction
Note: Enabling branch prediction can improve the core performance (such as the Dhrystone and CoreMark benchmark), but it may also increase logic resource utilization.