Embedded Design Handbook

ID 683689
Date 8/28/2023
Public
Document Table of Contents

7.4.3.1.2. Hardware Optimizations

  • Processor Performance—You can increase the performance of the Nios® II processor in the following ways:
    • Computational Efficiency—Selecting the most computationally efficient Nios® II processor core is the quickest way to improve overall application performance. The following Nios® II processor cores are available, in decreasing order of performance:
      • Nios® II/f—optimized for speed
      • Nios® II/e—conserves on-chip resources at the expense of speed
    • Memory Bandwidth—Using low-latency, high speed memory decreases the amount of time required by the processor to fetch instructions and move data. Additionally, increasing the processor’s arbitration share of the memory increases the processor’s performance by allowing the Nios® II processor to perform more transactions to the memory before another Avalon® master port can assume control of the memory.
    • Instruction and Data Caches—Adding an instruction and data cache is an effective way to decrease the amount of time the Nios® II processor spends performing operations, especially in systems that have slow memories, such as SDRAM or double data rate (DDR) SDRAM. In general, the larger the cache size selected for the Nios® II processor, the greater the performance improvement.
    • Clock Frequency—Increasing the speed of the processor’s clock results in more instructions being executed per unit of time. To gain the best performance possible, ensure that the processor’s execution memory is in the same clock domain as the processor, to avoid the use of clock-crossing adapters.

      One of the easiest ways to increase the operational clock frequency of the processor and memory peripherals is to use a pipeline bridge IP core to isolate the slower peripherals of the system. With this peripheral, the processor, memory, and Ethernet device are connected on one side of the bridge. On the other side of the bridge are all of the peripherals that are not performance dependent.

  • Hardware Acceleration—Hardware acceleration can provide tremendous performance gains by moving time-intensive processor tasks to dedicated hardware blocks in the system. The following list contains most common ways to accelerate application level algorithms:
    • Custom Instruction—Offload the Nios® II processor by using hardware to implement a custom instruction.
    • Custom Peripheral—Create a block of hardware that performs a specific algorithmic task, as a peripheral controlled by the Nios® II processor.