Title: Gwenol
1Ordonnancement sous contrainte de mémorisation
une optimisation efficace des ressources lors de
la synthèse d'architecture
- Gwenolé CORRE, Nathalie JULIEN, Eric SENN, Eric
MARTIN - LESTER, Université de Bretagne Sud
- Centre de recherches, BP 92116
- 56321 Lorient Cedex France
2Plan
- I Introduction
- II Stratégie de conception développée.
- III Ordonnancement sous contrainte de
mémorisation - Les contraintes de synthèse.
- Ordonnancement proposé.
- Exemple.
- IV Résultats.
- V Conclusion et perspectives.
3Pourquoi s'intéresser à la partie mémoire lors
de la synthèse d'architecture ?
I Introduction
- Pour des applications en traitements du signal et
de l'image. - Vitesse La partie mémoire limite les
performances dun système. - Surface La mémoire représente une part
importante de la surface dun système, 90 en
2010. - Consommation La mémoire représente 50 à 80 de
la consommation globale dun système.
- Objectifs
- déterminer la meilleure organisation de lunité
de mémorisation possible en fonction des
contraintes dune application. - Prendre en compte cette organisation lors de la
synthèse d architecture.
4II Stratégie de conception développée au LESTER
II Stratégie de conception développée
Description comportementale de lapplication
- fichiers de mapping mémoire
-
- X, numbancs, adresse, taille Placement des
structures de données - H, numbancs, adresse, taille
- x(0), numbancs, adresse, Eclatement des
structures de données, - x(1), numbancs, adresse, Placement des données
scalaires - x(2), numbancs, adresse,
- x(3), numbancs, adresse,
- h(0), numbancs, adresse,
- h(1), numbancs, adresse,
- h(2), numbancs, adresse,
- h(3), numbancs, adresse,
Première étape Optimisation amont
Analyse Transformation de code Définition de
hiérarchie mémoire Distribution des structures de
données
Bibliothèque mémoire
DFG Mapping mémoire
Deuxième étape Synthèse d architecture
Bibliothèque opérateurs
Synthèse d'architecture réaliser par l'outil de
synthèse GAUT
Troisième étape Optimisation aval
Génération du circuit en VHDL RTL Placement des
données, génération des adresses
Description RTL
5II Stratégie de conception développée au LESTER
II Stratégie de conception développée
Description comportementale de lapplication
component ram_16x1024 generic ( time
integer 5 temps daccès en ns area
integer 4265 surface en nombre de
CLB consovar integer 348 consommation
dynamique en mW/MHz consocst integer
36 consommation dynamique en mW size
integer 16384 Taille mémoire en nombre de
bits ) port ( a in std_logic_vector(9 downto
0) clk in std_logic we in std_logic oe
in std_logic in in std_logic_vector(nb_bit-
1 downto 0) out out std_logic_vector(nb_bit-1
downto 0) ) end component
Première étape Optimisation amont
Analyse Transformation de code Définition de
hiérarchie mémoire Distribution des structures de
données
Bibliothèque mémoire
DFG Mapping mémoire
Deuxième étape Synthèse d architecture
Bibliothèque opérateurs
Synthèse d'architecture réaliser par l'outil de
synthèse GAUT
Troisième étape Optimisation aval
Génération du circuit en VHDL RTL Placement des
données, génération des adresses
Description RTL
6II Stratégie de conception développée au LESTER
II Stratégie de conception développée
Description comportementale de lapplication
Première étape Optimisation amont
Analyse Transformation de code Définition de
hiérarchie mémoire Distribution des structures de
données
Bibliothèque mémoire
DFG Mapping mémoire
Deuxième étape Synthèse d architecture
Bibliothèque opérateurs
Synthèse d'architecture réaliser par l'outil de
synthèse GAUT
Troisième étape Optimisation aval
Génération du circuit en VHDL RTL Placement des
données, génération des adresses
Description RTL
7Ordonnancement proposé
III Ordonnancement sous contrainte de mémorisation
cycle 0 Faire Trier la liste des Ops_exe
(mobilité) Parcourir la liste des
Ops_exe si (Ops_courante Ops_accessible)
alors (accessibilité) conserver Ops_courante
dans la liste Ops-exe mettre à jour la liste
des mémoires accessibles sinon retirer
Ops_courante de la liste Ops_exe fin si
Ops_courante Ops_suivante tant que
Ops_courante ? ? Ordonnancer Ops_exe en
fonction des Opr_libre Mettre à jour la liste
des mémoires accessibles Mettre à jour les
listes des Opr_libre et des Ops_exe cycle
cycle1 Tant que toutes les opérations ne sont
pas ordonnancées
8Exemple
III Ordonnancement sous contrainte de mémorisation
Code source VHDL
entity test is port (a, b, c, d, e, fin
integer x, y, zout integer) end
add architecture test_arch of test is begin
constant latency 40 ns time Process
variable tmp, tmp2 integer begin tmp
ab z a f x tmp c tmp2
de y lt tmp2 f wait for
latency end process end test_arch
9Contrainte de mapping mémoire
III Ordonnancement sous contrainte de mémorisation
0
DFG
deb
Fichier de contrainte mapping
a, 1, 0, d, 1, 1, x, 1, 2, y, 1, 3,
z, 1, 4, b, 2, 0, e, 2, 1, f, 3, 0,
c, 3, 1,
13
12
6
3
9
2
a
f
c
b
d
e
14
4
7
15
5
tmp2
tmp
10
16
8
z
17
11
y
x
fin
1
10Influence sur l'ordonnancement
III Ordonnancement sous contrainte de mémorisation
DFG
Sans contraintes de mapping
cadence
4
add1
7
16
14
add2
10
Contraintes de synthèse Contrainte de cadence
40 ns période de l'horloge 10ns temps de
traversée des opérateurs additionneur 10 ns
temps d'accès aux ram 10 ns
11IV RésultatsEvaluation de la synthèse d'une FFT
32 points en fonction du placement des données en
mémoire
IV Résultats
- Conditions de synthèse
- Contrainte de cadence 8000 ns
- Bibliothèque VirtexE_400_6_16b
- période de l'horloge 10ns
- temps de traversée des opérateurs additionneur
10 ns - soustracteur 10ns
- multiplieur 20 ns
- temps d'accès aux ram 10 ns
banc1
banc2
Placement des données en mémoires
nomap pas de contraintes de mapping mémoire
Map6 échantillons pairs dans le banc1 échantillons
impairs dans le banc2
map5
map4
map3
map2
map1 tous les échantillons sont placés dans un
seul banc mémoire
R
I
R
I
R
I
R
I
12Résultats FFT 32 points
IV Résultats
- Les ressources arithmétiques 1additionneur, 1
soustracteur et 1multiplieur. - Par rapport à une synthèse sans contrainte de
mapping - réduction du nombre de ressources et du nombre de
bus. - temps de traversée de larchitecture identique.
- Réduction de la consommation, Résultats obtenus à
l'aide de l'outil Xpower après synthèse sur un
FPGA Xilinx, virtexE xcv400e_ 8bg432.
13Résultats FFT 32 points
IV Résultats
- Comparaison entre les solutions map2 et map4
- plus de ressources et plus de surface pour map4.
- temps de traversée de larchitecture identique.
- la consommation est réduite de moitié en fonction
des contraintes de mapping mémoire.
14V Conclusion et perspectivesModifications
V Conclusion et perspectives
- Prise en compte dun fichier de contraintes de
mapping mémoire. - Ordonnancement des opérations en fonction des
accès mémoire en lecture et en écriture. - Vérification fonctionnelle de lunité de
traitement et de lunité de contrôle.
Impacts
- Réduction du nombre daccès mémoire simultanés.
- Réduction du nombre de bus entre lunité de
mémorisation et lunité de traitement. - Réduction de la consommation en fonction du
placement des données en mémoire.
15Perspectives
V Conclusion et perspectives
- Gestions des modes daccès mémoires (burst ou
séquentiel). - Gestion des contraintes dordonnancement (critère
de stabilité des données ou critère
daccessibilité des données). - Evaluation de la consommation dans loutil GAUT
lors de la synthèse darchitecture
16Version de loutil de synthèse darchitecture
GAUT intégrant les contraintes de mapping mémoire
disponible sur le site http//gaut.univ-ubs.fr
http//lester.univ-ubs.fr8080 à partir de début
juin