Seminar Room, ground floor (Building IMAG)
11 décembre 2017 - 14h00
Simulation SystemC/TLM Parallèle de Composants Matériels Décrits pour la Synthèse de Haut Niveau (Phd Defense)
par Denis Becker de Verimag / STMicroelectronics
Résumé : Les systèmes sur puce sont constitués dâune partie matérielle (un circuit intégré) et dâune partie logicielle (un programme) qui utilise les ressources matérielles de la puce. La conséquence de cela est que le logiciel dâun système sur puce est intrinsèquement lié à sa partie matérielle. Les composants matériels dâaccélération sont des facteurs clés de différenciation dâun produit à lâautre. Il est nécessaire de pouvoir simuler ces systèmes très tôt lors de leur conception; bien avant que la puce ne soit physiquement disponible, et même avant que la puce ne soit complètement spécifiée. Pour cela, un modèle du système sur puce est réalisé à lâaide du langage SystemC, au niveau dâabstraction TLM (Transaction Level Modeling). La partie matérielle dâun système sur puce est constituée de composants, qui sâexécutent en parallèle. Pour autant, la simulation avec le simulateur SystemC de référence est séquentielle. Ceci permet de garantir les bonnes propriétés des simulations SystemC, en particulier la reproductibilité et le confort dâécriture des modèles.
Les travaux de cette thèse portent sur la simulation parallèle de modèles SystemC/TLM. Lâobjectif de lâexécution parallèle est dâaccélérer les simulations dans un mode dâutilisation correspondant à la phase de développement, où il est primordial de disposer de simulations qui donnent rapidement un résultat. Afin de cerner le problème de performance remarqué sur des modèles complexes à STMicroelectronics, le premier travail de cette thèse a été dâanalyser le profil dâexécution dâune étude de cas représentative de la complexité actuelle des platformes SystemC/TLM. Pour cette étude, nous avons développé un outil de collecte de traces et de visualisation. Les résultats de cette analyse ont indiqué que la lenteur dâexécution en simulation était due à la complexité des composants matériels dâaccélération. Lâétude de lâétat de lâart en simulation parallèle de modèles SystemC nous a conduit à chercher dâautres pistes que celles actuellement existantes. Pour réaliser les composants matériels plus rapidement, et permettre dâaugmenter la réutilisabilité de composants dâun projet à lâautre, le flot de conception HLS (High Level Synthesis) est utilisé, notamment à STMicroelectronics. Ce flot de conception permet, à partir de la description dâune fonction en C++ , de générer un plan de composant matériel qui va réaliser la même fonction. La description des composants est découpée en sous-fonctions, individuellement plus simples. Afin dâobtenir de bonnes performances, les sous-fonctions sont assemblées en chaîne, à travers laquelle circulent les données à traiter. Il est indispensable de pouvoir réutiliser le code écrit pour la HLS dans les simulations SystemC/TLM: cette situation deviendra de plus en plus fréquente, et il nâa pas assez de temps pour réécrire ces modèles dans ces projets courts.
Nous avons développé une infrastructure de simulation parallèle permettant dâintégrer et de simuler efficacement des composants de traitement de données écrits pour la HLS. Lâapplication de cette infrastructure à un exemple a permis dâaccélérer lâexécution de la simulation dâun facteur 1.6 avec 4 processeurs. Au-delà de ce résultat, les conclusions principales de cette thèse sont que la simulation parallèle de modèles à haut niveau dâabstraction, en SystemC/TLM, passe par la combinaison de plusieurs techniques de parallélisation. Il est également important dâidentifier les parties parallélisables dans des simulations industrielles, notamment pour les nouveaux défis que sont les simulations multi-physiques et lâinternet des objets.