Soft-Core Processor Design - CiteSeer
Soft-Core Processor Design - CiteSeer
Soft-Core Processor Design - CiteSeer
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Another argument in favour of simple applications is the Nios instruction set, which supports<br />
only simple arithmetic and logic operations. Therefore, the benchmark set should be based on a<br />
set of simple programs. We base our benchmark set on MiBench [56], a freely available<br />
benchmark suite representing applications for commercial embedded systems. The MiBench is<br />
divided into six categories according to the application field, which include automotive and<br />
industrial control, network, security, consumer devices, office automation, and<br />
telecommunications. Many of the benchmarks in the MiBench suite perform computationally<br />
intensive operations such as the Fast Fourier Transform (FFT), image<br />
compression/decompression, or GSM encoding/decoding. The UT Nios benchmark set does not<br />
include any computationally intensive applications. It also does not include benchmarks that use<br />
floating point numbers, because we believe that most applications running on Nios-based systems<br />
will not use floating point numbers. Some of the programs in the MiBench suite that originally<br />
used the floating point numbers were adapted to use only the integer types.<br />
According to the established criteria, the following MiBench benchmarks were selected:<br />
• Bitcount: assesses the bit manipulation capabilities of a processor. The program<br />
counts the number of bits in an array of integers with an equal number of 1s and 0s.<br />
Five different algorithms on two dataset sizes are used. Algorithms include 1-bit per<br />
loop counter, recursive bit count by nibbles, non-recursive bit count by nibbles using<br />
a table look-up, non-recursive bit count by bytes using a table look-up, and shift and<br />
count bits. A small dataset consists of 75,000 integers, while large dataset contains<br />
1,125,000 integers.<br />
• CRC32: calculates a 32-bit Cyclic Redundancy Check (CRC) on an input text (305<br />
Kbytes).<br />
• Dijkstra: calculates the shortest path between the pairs of nodes in a graph given in the<br />
form of an adjacency matrix. Two versions of the benchmark are used, differing in the<br />
number of the pairs of nodes for which the shortest paths are calculated. Small version<br />
calculates 20, while large version calculates 100 shortest paths. The adjacency matrix<br />
has size 100 X 100 for both benchmark versions.<br />
• Patricia: searches for a node with a given key in the Patricia trie data structure, and<br />
inserts a new node if the one does not already exist. Patricia trie data structure is often<br />
used to represent the routing tables in network applications. The dataset is a list of<br />
11,000 entries representing the IP traffic of a web server [56].<br />
48