The programmer's view The programmer's view
- f a dynamically reconfigurable
- f a dynamically reconfigurable
The programmer's view The programmer's view of a dynamically - - PowerPoint PPT Presentation
The programmer's view The programmer's view of a dynamically reconfigurable of a dynamically reconfigurable architecture architecture Luciano Lavagno Lavagno Luciano Politecnico di di Torino Torino Politecnico lavagno@polito.it
1.E-05 1.E-04 1.E-03 1.E-02 1.E-01 1.E+00 1.E+01 1.E+02 1.E+03 1.E+04 1.E+05 Jan-90 Jan-95 Jan-00 Jan-05 Jan-10 ASIC altera xilinx DSP MIPS intel trend MPU
Mapping Pga_op2 Mapping Pga_op1 Data Flow Graph Data out Data in
Func
. 1 Func
. 2 Func
. 3 Func
. 4 Func
. n
HIR
LIR
int bar (int a, int b) { int c; #pragma pgaop sa 0x12 5 1 2 c a b c = (a << 2) + b; #pragma end return c + a; } main() { i = bar(2,3); return; } int i; int bar (int a, int b) { int c; #if defined(PGA) asm ("pga5 0x12,%0,%1,%2":"=r"(c):"r"(a),"r"(b)); #else asm ("topga %1, %2, $0"::"r"(a),"r"(b)); asm ("jal _sa"); asm ("fmpga %0, $0, $0": "=r"(c): ); #endif return c + a; } ... #if !defined(PGA) void _sa () { int c,a,b; asm("move %0,$2;move %1,$3": "=r"(a),"=r"(b):"r"(c): "$2","$3","$4"); c = (a << 2) + b; /* delay by 5 cycles */ asm("move $2,%0; li $4,5": : "r"(c) : "$2","$3","$4" ); } #endif
5 5 10 10 15 15 20 20 25 25 30 30 35 35 40 40
8
1
2
3
1
3
1
1
3
1
2
1
2
3
4
5
6
7
4
5
1
2
6
7
3
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
4
5
2
3
6
7
1
4
5
2
3
6
7
a +
b)
1x 177834 Original
1.02x 173706 Gamma (1) 4128 1.83x 96913 LLR (2) 1.53x 115816 Butterfly (3) 80921 62018
(1)+(2)+(3)+(4)
11.90x 14795 (1) + (2) + (3) + (4) 162907 1.91x 92785 (1) + (2) 5.78x 30767 (1) + (2) +(3) 85049 147067
Estimation
1.10x 161826 Reorder (4) 15972
Profile
Speed Speed-
up (vs. std. (vs. std. XiRisc XiRisc) ) Energy Energy reduction reduction (vs. (vs. std std. . XiRisc XiRisc) )