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.

Recursion<br />

Level<br />

# of recursive<br />

calls<br />

# of reg.<br />

windows<br />

available<br />

Figure 5.6 Execution tree of the Fibo benchmark<br />

2 3 4 5 6 7 8<br />

2 4 8 16 22 12 2<br />

exception. The levels at which the register window exceptions occur are marked with checkmarks<br />

( ) in the table. Since the Fibo benchmark performs a different number of recursive procedure<br />

calls on different levels of recursion, the total number of register window exceptions is the sum of<br />

the recursive calls at all levels where exceptions occur. The total number of exceptions is shown<br />

in the third last column in Table 5.1. The second last column shows the number of memory<br />

operations performed by the CWP manager per each register window exception, according to the<br />

expression 72 + 32n<br />

, where n is the number of the available register windows. The total<br />

number of memory operations performed by the CWP Manager is equal to the number of register<br />

window exceptions times the number of memory operations per exception, as shown in the last<br />

column of the table. The last column of the table is represented graphically in Figure 5.7.<br />

The figure shows that the number of memory accesses actually increases when the number of<br />

available register windows increases from 4 to 5. The increase is caused by the structure of the<br />

execution tree that results in the increasing number of register window exceptions when the<br />

61<br />

Total # of<br />

exceptions<br />

# of mem.<br />

operations<br />

per<br />

exception<br />

Total # of<br />

mem.<br />

operations<br />

¡ ¡ ¡ ¡ ¡ ¡ ¡<br />

¡ ¡ ¡<br />

¡ ¡<br />

¡<br />

¡<br />

¡<br />

¡<br />

1 66 104 6864<br />

2 32 136 4352<br />

3 20 168 3360<br />

4 16 200 3200<br />

5 22 232 5104<br />

6 12 264 3168<br />

7 2 296 592<br />

8 0 328 0<br />

Table 5.1 Number of memory operations performed by the CWP Manager vs. the number of<br />

register windows available

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

Saved successfully!

Ooh no, something went wrong!