NU32v2: Benchmark Test

From Mech
Revision as of 10:08, 21 February 2011 by Nelson Rosa (talk | contribs)
Jump to navigationJump to search

*** UNDER CONSTRUCTION ***

Benchmarking is a useful tool in testing how fast a processor can run. With the PIC32, we are primarily interested in seeing how fast its CPU can perform mathematical operations.

Overview

The PIC32 uses a 32-bit MIPS processor core as its CPU. It has a five-stage pipeline that enables it to have a high throughput.

The processor executes instructions in an assembly line fashion similar to how cars are assembled. In any given clock cycle, the processor could be executing several instructions at once (each instruction occupying a different stage in the assembly line of course). One issue that commonly arises is when assembly instruction $i$ needs the result of instruction $i-1$ (where $i-1$ is one stage ahead of $i$), but the processor has not yet finished computing the result of $i-1$. Unfortunately, the processor has no choice but to stall instruction $i$ until the value for $i-1$ becomes available. Your timing results will include both the time to execute an instruction and any processor stalls.

Details

Library Functions

Sample Code

More Information