A newer version of this document is available. Customers should click here to go to the newest version.
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
4.3.9.3.5. Using Cache Memory Effectively
The effectiveness of cache memory to improve performance is based on the following conditions:
- Regular memory is located off-chip and has a longer access time than on-chip memory.
- The largest, performance-critical instruction loop is smaller than the instruction cache.
- The largest block of performance-critical data is smaller than the data cache.
The optimal cache configuration is application-specific, but you can define a configuration that works for a variety of applications. Refer to the following examples:
- If a Nios® V/g processor system only has fast on-chip memory and never accesses slow off-chip memory, an instruction or data cache is unlikely to boost the performance.
- If a program's critical loop is 2 KB but the instruction cache is 1 KB, an instruction cache does not improve execution speed. In this case, an instruction cache can actually degrade performance.