Estimation et optimisation de la consommation d’énergie des circuits asynchrones
description
Transcript of Estimation et optimisation de la consommation d’énergie des circuits asynchrones
1Concurrent Integrated Systems
Estimation et optimisation de la Estimation et optimisation de la consommation d’énergie des consommation d’énergie des
circuits asynchronescircuits asynchrones
K. Slimani, Y. Remond, A. Sirianni,
G. Sicard, L. Fesquet, M. Renaudin
2FTFC, Paris France, Mai 2003CIS Group
“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
1. Introduction1. Objectifs2. Flot de conception TAST
2. Principes 1. Estimation statique 2. Estimation dynamique
3. Caractéristiques de l’outil Trace
4. Optimisations
5. Exemple d’une application
6. Conclusion et perspectives
PlanPlan
3FTFC, Paris France, Mai 2003CIS Group
“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
IntroductionIntroduction
• Estimer la consommation d’un circuit au niveau HDL – Avant synthèse
– Réduction du temps de conception
• Faire du « Profiling »– Identifier les parties du circuit les plus activées
• Optimiser– Tirer parti du « profiling »
– Agir sur l’architecture et le codage des données
Objectifs :
4FTFC, Paris France, Mai 2003CIS Group
“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Le flot de conception TASTLe flot de conception TAST
VHDL Simulator
Reports
Back-end Tools
Standard Design Flow
CHP Code
CHP Compiler
Petri Net
Simulation Model Generator
VHDL Custom Libraries
for Simulation
Behavioral Asynchronous
VHDL Model
DTL1 Compliance Checker
Synthesizable Petri Net
µP2 Flavor Synthesizer
Custom Cell Libraries
QDI FlavorSynthesizer
VHDL Gate Level Netlist
TAST Compiler
TAST Model GeneratorStd Cell Libraries
TAST Synthesizer
Energy estimator
5FTFC, Paris France, Mai 2003CIS Group
“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
1. Introduction1. Objectifs2. Flot de conception TAST
2. Principes 1. Estimation statique 2. Estimation dynamique
3. Caractéristiques de l’outil Trace
4. Optimisations
5. Exemple d’une application
6. Conclusion et perspectives
PlanPlan
6FTFC, Paris France, Mai 2003CIS Group
“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Estimation statiqueEstimation statique
Component multiplexer Port ( cmd : in DI DR ; Input0mn : in DI MR[m][n] ;
Input1mn : in DI MR[m][n] ;
Outputmn : out DI MR[m][n]
)Begin process P_multiplexer
Port (cmd : in DI DR ; Input0mn : in DI MR[m][n] ;
Input1mn : in DI MR[m][n] ;
Outputmn : out DI MR[m][n]
)begin[cmd ? G ; @[G=0 => Intput0mn ? x ;
label_1 :Outputmn ! x ; break
G=1 => Input1mn ? x ;
label_2 : Outputmn ! x ; break
]; loop ];end ; -- processend ; -- component
Le code CHP du multiplexeur : Représentation graphique du réseau de pétri :
P0skipTRUE
No_label : [ ]
TRUE
P6label_1 :Outputmn ! x P7label_2 : Outputmn ! x
P1
P8
P3
P4Input0mn ? x P5Input1mn ? x
G0 G1
TRUE
No_label : @[ ]
TRUE TRUE
No_label : break
P2cmd ? G
TRUE TRUE
7FTFC, Paris France, Mai 2003CIS Group
“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Estimation statiqueEstimation statique
);0;0(0 ackoutputmnInputGdonnéesWCHB
FmnOutput
);1;1(1 ackOutputmnInputGdonnéesWCHB
FmnOutput
)1;0( mnOutputmnOutputdonnéesunionFmnOutput
))0((0 mnInputVackvalide
FackmnInput
))1((1 mnInputVackvalide
FackmnInput
)1;0( ackmnInputackmnInputackunionFackCmd
(1)
(3)
(2)
(4)
Equations de dépendances : Circuit synthétisé :
Output(m-1)(n-1)
Input0ack
Input1ack
C CR
C CR
Input000
Input0(m-1)0
C CR
C CR
Input00(n-1)
Input0(m-1)(n-1)
C
C CR
C CR
Input100
Input1(m-1)0
C CR
C CR
Input10(n-1)
Inputp1(m-1)(n-1)
C
Output00
Output(m-1)0
Output0(n-1)
OutputackG0
G1Cmdack
8FTFC, Paris France, Mai 2003CIS Group
“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Estimation statiqueEstimation statique
Coût1 = n*muller(2) + n*muller_R(2) + Fourche(m*n) + Fourche(G*m*n)
C C_R
C C_R
Input000
Input0(m-1)0
C C_R
C C_R
Input00(n-1)
Input0(m-1)(n-1)
C
C C_R
C C_R
Input100
Input1(m-1)0
C C_R
C C_R
Input10(n-1)
Inputp1(m-1)(n-1)
C
Input0ack
Input1ack
Output00
Output(m-1)0
Output0(n-1)
Output(m-1)(n-1)
OutputackG0
G1Cmd_ack
Etape 1 :
);0;0(0 ackOutputmnInputGdonnéesWCHB
FmnOutput
);1;1(1 ackOutputmnInputGdonnéesWCHB
FmnOutput
)1;0( mnOutputmnOutputdonnéesunionFmnOutput
))0((0 mnInputVackvalide
FackmnInput
))1((1 mnInputVackvalide
FackmnInput
)1;0( ackmnInputackmnInputackunionFackCmd
(1)
(3)
(2)
(4)
9FTFC, Paris France, Mai 2003CIS Group
“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Estimation statiqueEstimation statique
Coût1 = n*muller(2) + n*muller_R(2) + Fourche(m*n) + Fourche(G*m*n)Coût2 = n*OR(G)
C C_R
C C_R
Input000
Input0(m-1)0
C C_R
C C_R
Input00(n-1)
Input0(m-1)(n-1)
C
C C_R
C C_R
Input100
Input1(m-1)0
C C_R
C C_R
Input10(n-1)
Inputp1(m-1)(n-1)
C
Input0ack
Input1ack
Output00
Output(m-1)0
Output0(n-1)
Output(m-1)(n-1)
OutputackG0
G1Cmd_ack
Etape 2 :
);0;0(0 ackOutputmnInputGdonnéesWCHB
FmnOutput
);1;1(1 ackOutputmnInputGdonnéesWCHB
FmnOutput
)1;0( mnOutputmnOutputdonnéesunionFmnOutput
))0((0 mnInputVackvalide
FackmnInput
))1((1 mnInputVackvalide
FackmnInput
)1;0( ackmnInputackmnInputackunionFackCmd
(1)
(3)
(2)
(4)
10FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Estimation statiqueEstimation statique
Coût1 = n*muller(2) + n*muller2_R + Fourche(m*n) + Fourche(G*m*n)Coût2 = n*OR(G)Coût3 = n*NOR(m) + muller(n)
C C_R
C C_R
Input000
Input0(m-1)0
C C_R
C C_R
Input00(n-1)
Input0(m-1)(n-1)
C
C C_R
C C_R
Input100
Input1(m-1)0
C C_R
C C_R
Input10(n-1)
Inputp1(m-1)(n-1)
C
Input0ack
Input1ack
Output00
Output(m-1)0
Output0(n-1)
Output(m-1)(n-1)
OutputackG0
G1Cmd_ack
Etape 3 :
);0;0(0 ackOutputmnInputGdonnéesWCHB
FmnOutput
);1;1(1 ackOutputmnInputGdonnéesWCHB
FmnOutput
)1;0( mnOutputmnOutputdonnéesunionFmnOutput
))0((0 mnInputVackvalide
FackmnInput
))1((1 mnInputVackvalide
FackmnInput
)1;0( ackmnInputackmnInputackunionFackCmd
(1)
(3)
(2)
(4)
11FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
);0;0(0 ackOutputmnInputGdonnéesWCHB
FmnOutput
);1;1(1 ackOutputmnInputGdonnéesWCHB
FmnOutput
)1;0( mnOutputmnOutputdonnéesunionFmnOutput
))0((0 mnInputVackvalide
FackmnInput
))1((1 mnInputVackvalide
FackmnInput
)1;0( ackmnInputackmnInputackunionFackCmd
(1)
(3)
(2)
(4)
Coût1 = n*muller(2) + n*muller2_R + Fourche(m*n) + Fourche(G*m*n)Coût2 = n*OR(G)Coût3 = n*NOR(m) + muller(n)Coût4 = AND(G)
Estimation statiqueEstimation statique
C C_R
C C_R
Input000
Input0(m-1)0
C C_R
C C_R
Input00(n-1)
Input0(m-1)(n-1)
C
C C_R
C C_R
Input100
Input1(m-1)0
C C_R
C C_R
Input10(n-1)
Inputp1(m-1)(n-1)
C
Input0ack
Input1ack
Output00
Output(m-1)0
Output0(n-1)
Output(m-1)(n-1)
OutputackG0
G1Cmd_ack
Etape 4 :
12FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Coût statique = 2*(Coût1 + Coût2 + Coût3 + Coût4)
Estimation statiqueEstimation statique
Coût statique total = Somme des coûts partiels
Exclusion mutuelle et additivité
Application à un protocole 4 phases
13FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Estimation dynamiqueEstimation dynamique
• Parcours du réseau de pétri lors de la simulation
•Accumulation des coûts statiques
label_1 :Outputmn ! x
skip
TRUE
No_label : [ ]
TRUE
P6
P0
label_2 : Outputmn ! x
P1
P8
P3
P4Input0mn ? x P5Input1mn ? x
G0 G1
TRUE
No_label : @[ ]
TRUE TRUE
No_label : break
P2cmd ? G
TRUE TRUECoût (label_1)
P7Coût (label_2)
skip
TRUE
No_label : [ ]
TRUEP7
P0
label_2 : Outputmn ! x
P1
P8
P3
P4Input0mn ? x P5Input1mn ? x
G0 G1
TRUE
No_label : @[ ]
TRUE TRUE
No_label : break
P2cmd ? G
TRUE TRUECoût (label_1) Coût (label_2)
P6label_1 : Outputmn ! x
Execution statiqueCoûtdynamiqueCoût
14FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
1. Introduction1. Objectifs2. Flot de conception TAST
2. Principes 1. Estimation statique 2. Estimation dynamique
3. Caractéristiques de l’outil Trace
4. Optimisations
5. Exemple d’une application
6. Conclusion et perspectives
PlanPlan
15FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Caractéristiques de l’outil TraceCaractéristiques de l’outil Trace
Nb de transitions
labels label_1 Label_2 Label_4
10000
5000
1500
Label_3
0
Consommation d’énergie des instructions labellisées
Activité
labels label_1 Label_2 Label_4
50
9075
Label_3
0
Activité des instructions labellisées
Trace -label
Nb de transitions
processus process_1 process_2
10000
5000
1500
process_3
Consommation d’énergie des processus
Activité
processus process_1 process_2 process_3
Activité des processus
Trace -process
50
9075
16FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Caractéristiques de l’outil TraceCaractéristiques de l’outil TraceNb de transitions
composants composant_1
11500
5000
composant_2
Consommation d’énergie des composants
Activité
composants composant_1 composant_2
Activité des composants
Trace -component
90
125
composant_1
Nb de transitions
11500
5000
composant_2
Consommation d’énergie de l’ensemble
all
process_1 process_2
10000
1500
5000
process_3
Label_3
0
Label_2
1500
10000
5000
Label_4
Activité
Activité de l’ensemble
0
Trace -all
90
125
50
9075
50
9075
Label_1
composant_1 composant_2 all
process_1 process_2 process_3
Label_3Label_2 Label_4Label_1
17FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
1. Introduction1. Objectifs2. Flot de conception TAST
2. Principes 1. Estimation statique 2. Estimation dynamique
3. Caractéristiques de l’outil Trace
4. Optimisations
5. Exemple d’une application
6. Conclusion et perspectives
PlanPlan
18FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Optimisations Optimisations
Déséquilibrer les structures de choix
Probabilité
Output
Input0
Input1
Input2
Input3
cmd
+
-
cmd
OutputInput0
Input1
Input2
Input3
cmd
cmd
Codage des données :
MR[2][2]
2 fils « commutent »
MR[4][1]
1 fil « commute »
19FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Optimisations Optimisations
cmd
OutputInput0
Input1
Input2
Input3
cmd
cmd
cmd0
OutputInput0
Input1
Input2
Input3
cmd2
cmd1
Découper les canaux
20FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
1. Introduction1. Objectifs2. Flot de conception TAST
2. Principes 1. Estimation statique 2. Estimation dynamique
3. Caractéristiques de l’outil Trace
4. Optimisations
5. Exemple d’une application
6. Conclusion et perspectives
PlanPlan
21FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
ApplicationApplication
ENVIRONMENT
Component ALU
Arithmetic Process
Logical ProcessLabel_andLabel_or
Label_add
Component Register
Register R0 Process
Register R1 Process
Register R2 Process
Register R3 Process
22FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
ApplicationApplication
PROGRAM :
R2 = R0 AND R1R3 = R0 OR R2R1 = R0 AND R3R3 = R0 AND R2R2 = R0 AND R1R3 = R0 AND R2R1 = R0 AND R3R3 = R0 ADD R1R2 = R0 OR R2R3 = R0 AND R3R1 = R0 AND R1
Base Digitm = 2 n = 32
Nb de transitions
Label_and Label_or Label_addlabels
896
224
196
Trace -label
R0 R1 R2 R3 logical arithmetic
processus
Nb de transitions
1120
196
3223
2519 2519 3124
Trace -process
Total = 1316
Total = 12701
23FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
ApplicationApplication
R0 R1 R2 R3 logical arithmetic
processus
Nb de transitions
800156
21671991 1991
2596
Trace -process
PROGRAM :
R2 = R0 AND R1R3 = R0 OR R2R1 = R0 AND R3R3 = R0 AND R2R2 = R0 AND R1R3 = R0 AND R2R1 = R0 AND R3R3 = R0 ADD R1R2 = R0 OR R2R3 = R0 AND R3R1 = R0 AND R1
Label_and Label_or Label_addlabels
Nb de transitions
640
160
156
Trace -label
Base Digitm = 4 n = 16 Total = 956
Total = 9701Réduction 31%
Réduction 38%
24FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Conclusion et perspectivesConclusion et perspectives
• Un outil d’estimation de l’activité et de la consommation au niveau HDL (avant synthèse) a été développé
• L’outil permet le « profiling » afin de déterminer les zones les plus actives dans le circuit
• les optimisations sont guidées par l’outil et sont faites très tôt dans le flot de conception
• Poursuivre le développement et étalonner l’outil
• Illustrer les bénéfices de cette approche par la réalisation d’un microprocesseur asynchrone
Conclusion
Perspectives
25FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
Merci de votre attention !Merci de votre attention !
26FTFC, Paris France, Mai 2003
CIS Group“Concurrent Integrated Systems”
TIMA-CNRS-INPG-UJF
46 Av. Félix Viallet38031 Grenoble Cedex
ApplicationApplication
Coût moyen d’un opérateur AND et OR : • en base m=2 : Coût(avg) = n*(muller(2) + 3/4*OR(3))• en base m=4 : Coût(avg) = n*(muller(2) + 6/16*OR(3) + 9/16*OR(9))
Coût moyen d’un opérateur ADD :• en base m=2 : Coût(avg) = n*(2*muller(2) + 2*OR(2))• en base m=4 : Coût(avg) = n*(2*muller(2) + 3*OR(2) + 1.125*OR(3) + 0.25*OR(4))
Coût d’une lecture d’un registre :Coût = n*muller2 + n*AND2 + Fourche(m*n) + n*OR(Nb registre) +
n*NOR(m) + muller(n) + AND(Nb registre) + Fourche(Nb registre)
Coût d’écriture d’un registre : Coût = n*muller2 + Fourche(m*n) + n*NOR(m) + muller(n) +
AND(Nb registre) + m*n*Fourche(Nb registre)