La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Synthèse Haut Niveau de Circuits

Présentations similaires


Présentation au sujet: "Synthèse Haut Niveau de Circuits"— Transcription de la présentation:

1 Synthèse Haut Niveau de Circuits
Présenté par: Betânia STEFFEN ABDALLAH GONÇALVES Articles: Scheduling Algorithms For High-Level Synthesis Using Global Code Motions to Improve the Quality of Results for High-Level synthesis

2 Synthèse Haut Niveau de Circuits
Plan Scheduling Algorithms For High-Level Synthesis Introduction Ordonnancemment Classification des Algorithmes d’ordonnancement Considération Importantes Future de la Synthèse Haut Niveau Using Global Code Motions to Improve the Quality of Results for High-Level synthesis Spark Mouvements de Code L’Algorithme d’ordonnancement Résultats Experimentaux Conclusion Critique Synthèse Haut Niveau de Circuits

3 Scheduling Algorithms For High-Level Sysnthesis
Auteurs Sriram Govindarajan

4 “Design” des Systèmes Digitaux
Introduction “Design” des Systèmes Digitaux Niveau transistor Ou Niveau Logique Réduire la Complexité Niveau abstract: Synthèse Haut Niveau Synthèse Haut Niveau de Circuits

5 Qu’est-ce “Synthèse Haut Niveau“?
Introduction Qu’est-ce “Synthèse Haut Niveau“? Description Comportamental Description Structural Description Structural Compilation Partage S Allocation Génération du Contrôle Chemin de Données Ordonnancement Contrôlleur Synthèse Haut Niveau de Circuits

6 Representation Intermediaire
Ordonnancement “L’ordonnancement est une tâche important dans la synthèse haut niveau parce qu’il va impacter l’équilibre entre design et performance" Representation Intermediaire Etats et Pas de Contrôle Modèle FSMD Diviser Synthétiser Mapping Temporel FSMD: Finite State Machine with Data-Path Synthèse Haut Niveau de Circuits

7 Synthèse Haut Niveau de Circuits
Ordonnancement Synthèse Haut Niveau de Circuits

8 Classification des Algorithmes d’ordonnancement
Synthèse Haut Niveau de Circuits

9 Classification des Algorithmes d’ordonnancement
Les Algorithmes Basiques Synthèse Haut Niveau de Circuits

10 Classification des Algorithmes d’ordonnancement
Ordonnancement avec des Contraintes de Temps Systèmes en temps réels  minimiser coût du hardware Programation Mathematique (Integer Linear Programming) Minimiser les FUs Garantir l’éxecution de l’opération entre les limites ASAP et ALAP et Garantir la dépendence de données Ek  ASAP et Lk  ALAP Nk  nombre de FUs Ck  coût de chaque FU xi,j =1 si l’opération i se passe dans le pas de contrôle j, sinon xi,j =0 p et q sont des pas de contrôle des opérations xi et xj Synthèse Haut Niveau de Circuits

11 Classification des Algorithmes d’ordonnancement
Ordonnancement avec des Contraintes de Temps Heuristiques Constructive (Force directed Scheduling) Réduire le nombre de FUs utilisés Prob = 1/ Mobilité Force α Prob + Force successeur + Force prédécesseur Synthèse Haut Niveau de Circuits

12 Classification des Algorithmes d’ordonnancement
Ordonnancement avec des Contraintes de Temps Iterative Refinement (Réordonnancement Iteratif) Les mouvements possibles sont determinés Une position aléatoire est pris pour chaque opération Les coûts sont calculés est les opérations avec les coût plus petits restent dans la position Pour les autres opérations, la procédure se repète La qualité de la solution dépend de la solution inicial Synthèse Haut Niveau de Circuits

13 Classification des Algorithmes d’ordonnancement
Ordonnancement avec des Contraintes de Resources Contrainte de design  surface de silicium List-Based Scheduling ASAP + contraintes de resources Liste de priorité dynamique ↑mobilité ↓priorité Liste des noeuds qui ont ses prédécesseurs déjà ordonnancés Static List Scheduling GCS (clé primaire) et LCS (clé secondaire) ASAP et ALAP Liste de priorité statique GCS: greatest control step LCS: least control step Synthèse Haut Niveau de Circuits

14 Classification des Algorithmes d’ordonnancement
Miscellaneous Simulated Annealing Table de 2 dimensions : Les Pas de Contrôle Versus FU (Unités Fonctionnels) 1 opération  1 pas de contrôle et 1 FU Modification iteratif de la table  Coût du déplacement de l’operation Path-Based Scheduling Minimisation du nombre de Pas de Contrôle Les chemins d’éxecution sont ordonnancés indépendamment Les ordonnancements de chaque chemin sont combinés pour générer l’ordonnancement final Synthèse Haut Niveau de Circuits

15 Considérations Importantes
Unités Fonctionnels (FU) avec différents delays Cycle d’horloge déterminé par l’unité la plus lente Unité Multi Fonctionnels Il y a des unités foctionnels qui peuvent éxecuter plusiers opérations Description Comportammental Constructions conditionnels: l’ordonnanceur doit être capable de partager les resources entre les opérations qui s’éxcluent. Boucles: peuvent contenir parallelism entre les iterations Synthèse Haut Niveau de Circuits

16 Future de la Synthèse Haut-Niveau
Problèmes à Solutionner L’ordonnancement Pipeliné Coût du Contrôleur (il faut le considerer) Contraints de Surface (prendre en compte) Réalisme (constructions spéciales de langage) Synthèse Haut Niveau de Circuits

17 Auteurs: Sumit Gupta Nick Savoiu Nikil Dutt Rajesh Gupta Alex Nicolau
Using Global Code Motions to Improve the Quality of Results for High-Level Synthesis Auteurs: Sumit Gupta Nick Savoiu Nikil Dutt Rajesh Gupta Alex Nicolau

18 Synthèse Haut Niveau de Circuits
Introduction Nécessités Trasformations de haut niveau pour optimiser la synthèse indépendamment du flux de contrôle de la description d’entrée. Propositions de Solution Algorithmes d’ordonnancement qui utilisent des techniques de mouvement de code Extraire parallelisme Spéculation Augmenter l’utilisation des resources Synthèse Haut Niveau de Circuits

19 Spark: Framework de Synthèse de Haut Niveau
Optimisation de la qualité de la synthèse haut niveau  delays et surface Synthèse Haut Niveau de Circuits

20 Spark – Description du Modèle
ANSI-C: Description Comportamental Pas de pointers Pas de gotos Pas de fonctions recursifs Répresentation Intermédiaire: HTG, CFG et DFG HTG: mantient les constructions de contrôle et de boucle Exécute les pasages d’analyse de dépendence de données Fait l’ordonnancement du design Mouvement de Code Héuristiques d’ordonnancement Modification des transformations de compilation de parallelisme Fait la liaison des resources Réalise la Synthèse de Contrôle VHDL: Evaluation des optimisations Génère une sortie RTL (register transfer level) VHDL Synthèse Haut Niveau de Circuits

21 Spark – Description du Modèle
Les Réprésentations Graphiques Code C HTG HTG avec CFG et DFG CFG: Graphique de Flux de Contrôle DFG: Graphique de Flux de Données Synthèse Haut Niveau de Circuits

22 Synthèse Haut Niveau de Circuits
Mouvements de Code Resource idle = pas d’opération à exécuter Spéculation Respect des dépendences de données Exécuter une opération précédente ou suivante Synthèse Haut Niveau de Circuits

23 Mouvements de Code Spéculation:
Chaîne Sequenciel d’une comparaison suivi d’une adition Parallelism de la comparaison et de l’addition Synthèse Haut Niveau de Circuits

24 Mouvements de Code Spéculation Inverse: Exemple
Spéculation Inverse de b Spéculation de d Synthèse Haut Niveau de Circuits

25 Synthèse Haut Niveau de Circuits
Mouvements de Code Exécution de condition au plus tôt: L’exécution du teste de condition au plus tôt va résoudre la dépendence de contrôle dans les branches IF-HTG. Opérations disponibles plus tôt pour l’ordonnancement. Design original C est scheduled au plus tôt. Les opérations avant le If sont spéculé inversement. Synthèse Haut Niveau de Circuits

26 Mouvements de Code Spéculation Conditionel: x et y sont spéculés.
Exemple x et y sont spéculés. Les ressources dans le branche conditionel sont idle. z est spéculé conditionelement Synthèse Haut Niveau de Circuits

27 Synthèse Haut Niveau de Circuits
Mouvement de Code Trailblazing: Technique hiérarchique de mouvement de code op se déplace de BB2 à BB1 sans passer pour les blocs intermédiaires du bloc IF Synthèse Haut Niveau de Circuits

28 Mouvement de Code Changement Dynamique de Nom
Elimination de la dépendence de données DFG après scheduling Code C DFG (d) Maintenace du flux de dependence de données (e) Maitenance aussi du non-flux de dependence de données Importance du non-flux de données: Manutention du nom original des variables pour permettre la visualisation des effets des transformations Synthèse Haut Niveau de Circuits

29 L’Algorithme d’ordonnancement
Priority-Based Global List Scheduling Heuristic BUT: minimiser le plus long delay Priorité α taille de la chaine de dépéndence de données Priorité = 0  opérations qui produisent des sorties Priorité = 1  opérations dont les résultats sont urilisés par les opérations de sorties Etc... Priorité maximal (IF-HTG)  teste de condition Synthèse Haut Niveau de Circuits

30 L’Algorithme d’ordonnancement
Ordonnancement des Boucles Spark peut ordonnancer tous les types de boucles Fin du boucle Condition pas satisfaite Condition satisfaite Premier état du boucle Premier état après le boucle Synthèse Haut Niveau de Circuits

31 L’Algorithme d’ordonnancement
Heuristique pour l’application de la Spéculation Conditionnel La Spéculation Conditionnel: Peut augmenter la taille de l’ordonnancement Peut augmenter complexité à cause des duplications des opérations Synthèse Haut Niveau de Circuits

32 Résultats Expérimentaux
OBS: Le multiplicateur (*) s’exécute en 2 cycles Le diviseur (/) s’exécute en 5 cycles Tous les autres opérations s’exécutent en 1 cycle Synthèse Haut Niveau de Circuits

33 Résultats Expérimentaux
Effets dans la Performance et dans la Taille du Contrôlleur Spéculation Donne des meilleurs résultats Synthèse Haut Niveau de Circuits

34 Résultats Expérimentaux
Effets dans la Surface et dans le Période de l’Horloge Delay: moitié avec mouvement de code Taille du chemin: constant Période de clock n’augmente pas Surface: augmenté par les mouvements de code Synthèse Haut Niveau de Circuits

35 Synthèse Haut Niveau de Circuits
Conclusion Mouvements de code  importants pour minimiser les effets du choix de flux de controle e style de programmation Les mouvements de code Il réduit le delays Mais... Augmente la surface!!! Spark prendre en compte de contraintes de delay e surface Contraintes de surface: pas de solution dans le premier article Pas d’améllioration en comparaison avec des autres travaux Synthèse Haut Niveau de Circuits

36 Synthèse Haut Niveau de Circuits
Questions ? Synthèse Haut Niveau de Circuits


Télécharger ppt "Synthèse Haut Niveau de Circuits"

Présentations similaires


Annonces Google