Soft-Core Processor Design - CiteSeer
Soft-Core Processor Design - CiteSeer
Soft-Core Processor Design - CiteSeer
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Slowdown Over 29 Available Register Windows<br />
30<br />
25<br />
20<br />
15<br />
10<br />
5<br />
0<br />
0 1 2 3 4 5 6 7 8 9 10 11 12<br />
Number of Register Windows Available to the Programs<br />
Figure 5.5 Performance vs. register file size for the SRAM system<br />
number of register windows available is small. This is due to the higher memory latency, which<br />
increases the overhead of the register file save and restore operations. The benchmark that suffers<br />
the greatest slowdown when a small number of register windows are available is Fibo, on both<br />
ONCHIP and SRAM systems. This is because the Fibo benchmark is a recursive algorithm with<br />
very low computation, so the procedure calls dominate the run time. To understand why the<br />
performance of recursive procedures follows the observed trends, a model of the register file<br />
saving and restoring has to be developed.<br />
When the CWP Manager is called on a register underflow, 8 global registers are first stored on<br />
the stack, so that they may be used by the CWP Manager. The CWP Manager performs<br />
operations in different register windows, so it can only use the global registers, because they are<br />
visible in all register windows. Next, the Local and Input registers in a register window in which<br />
the CWP Manager initially runs, and all the register windows from LO_LIMIT to HI_LIMIT are<br />
stored on the stack. Finally, the Global registers are restored from the stack, along with the Input<br />
registers of the register window at the position HI_LIMIT. Input registers are loaded with the<br />
contents of the Output registers forwarded by the calling procedure before the window underflow<br />
occurred, as required by the normal SAVE operation. After all the registers have been saved, the<br />
CWP Manager returns the control to the program, with CWP at HI_LIMIT. Counting the number<br />
59<br />
Fibo<br />
Non-recursive<br />
by bytes<br />
Recursive by<br />
nibbles<br />
Qsort Large<br />
Multiply