17.11.2012 Views

Soft-Core Processor Design - CiteSeer

Soft-Core Processor Design - CiteSeer

Soft-Core Processor Design - CiteSeer

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!