17.11.2012 Views

Soft-Core Processor Design - CiteSeer

Soft-Core Processor Design - CiteSeer

Soft-Core Processor Design - CiteSeer

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!