Présentation
EnglishRÉSUMÉ
Cet article introduit la conception conjointe matériel/logiciel des systèmes intégrés sur puce, en exposant les principes et concepts généraux servant à décrire, évaluer/analyser et mettre en œuvre ces systèmes. Il s’appuie sur les étapes clés telles que : la spécification et la modélisation des caractéristiques d’un système (exigences, fonctionnalités), le partitionnement en parties matérielle et logicielle, la synthèse et vérification permettant d’inférer des mises-en-œuvre des deux parties et garantir les exigences des systèmes ; sans oublier la question méthodologique, cruciale pour le concepteur. Il se termine par une réflexion sur l’impact des technologies émergentes (mémoires non volatiles) et des nouveaux paradigmes de calcul (neuro-inspiré, quantique) sur la conception conjointe.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleAuteur(s)
-
Abdoulaye GAMATIE : Directeur de Recherche au CNRS, - Laboratoire d’Informatique, de Robotique et de Microélectronique de Montpellier (LIRMM)
-
Lionel TORRES : Professeur à l’Université de Montpellier, Polytech’Montpellier - Laboratoire d’Informatique, de Robotique et de Microélectronique de Montpellier (LIRMM)
INTRODUCTION
Les circuits intégrés permettent l’intégration de fonctions logiques dans une puce de silicium, fonctions basées sur un élément unitaire qui est le transistor. La puissance de ces circuits augmente avec le nombre de transistors, mais une limitation apparaît. En effet, la dissipation thermique devient trop importante en présence d’un grand nombre de composants. Les architectures parallèles offrent une réponse intéressante à cette limitation, puisque la puissance dissipée ne varie plus exponentiellement avec la puissance de calcul comme dans une machine monoprocesseur, mais linéairement sur une machine multiprocesseur.
Par ailleurs, des évolutions importantes apparaissent également aux niveaux logiciel et applicatif. Au regard de tous ces changements, la méthodologie dite de conception-conjointe ou « co-conception » matériel/logiciel apporte une réponse intéressante pour une implantation efficace des systèmes intégrés sur puce.
Cet article offre un aperçu général des principes et concepts généraux relatifs à la conception conjointe matériel/logiciel. Cela est organisé autour des principales étapes d’un flot classique de conception : dans un premier temps, nous abordons la question de la spécification et de la modélisation ; ensuite, nous introduisons les enjeux du partitionnement matériel/logiciel, suivi d’une présentation générale concernant la synthèse et les techniques de vérification ; enfin, des aspects méthodologiques sont discutés au travers d’une illustration basée sur quelques environnements de conception conjointe basée sur des modèles. En guise de discussion ouverte sur une évolution possible des pratiques courantes en conception conjointe matériel/logiciel, nous proposons une brève réflexion concernant les technologies émergentes et les nouveaux paradigmes de calcul.
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
4. Synthèse et vérification
4.1 Synthèse
La synthèse couvre trois aspects principaux :
-
génération de l’architecture matérielle, notamment l’inférence des différents composants identifiés à l’issue du partitionnement logiciel/matériel (par exemple, les microprocesseurs, les mémoires ou les FPGA) et leur assemblage ;
-
génération de la partie logicielle qui consiste en diverses fonctions à implanter ;
-
inférence des interfaces adéquates entre les parties matérielle et logicielle.
En pratique, les composants matériels sont obtenus au travers de définitions dans des langages de description appropriés tels que VHDL ou Verilog, supportant des outils de synthèse architecturale. L’assemblage de ces composants est réalisé avec des outils de saisie de schémas d’interconnexions. La partie logicielle est, quant à elle, abordée généralement sous la forme d’une organisation multi-tâches pouvant être orchestrée à l’aide d’un exécutif ou d’un noyau [H 8 200] [H 1 570]. Ainsi, la nature synchrone/asynchrone des fonctions logicielles est capturée via des mécanismes classiques de communication et de synchronisation prévus dans les exécutifs (sémaphores, événements, etc.). Enfin, les interfaces entre le logiciel et le matériel sont générées sur la base d’un couplage adapté utilisant typiquement un bus.
HAUT DE PAGE4.2 Techniques de vérification
La vérification occupe une place très importante dans la conception d’un système dans la mesure où...
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Synthèse et vérification
BIBLIOGRAPHIE
-
(1) - BENVENISTE (A.), CASPI (P.), EDWARDS (S.A.), HALBWACHS (N.), LE GUERNIC (P.), DE SIMONE (R.) - « The synchronous languages twelve years later ». - Proceedings of the IEEE, 91 (1) : 64-83 (January 2003).
-
(2) - AUGUIN (M.), SENTIEYS (O.) - Conception de systèmes sur puce : nécessité d'approches globales face à la concentration des difficultés. - In M. Jemni and D. Trystram, editors, État des lieux en Architecture, Parallélisme et Système. Hermes (2005).
-
(3) - HOARE (C.A.R.) - « Communicating sequential processes », Communications of the ACM. - Vol. 21, n° 8, p. 666-677 (1978).
-
(4) - MILNER (R.) - Communication and Concurrency. - Prentice Hall, International Series in Computer Science, ISBN 0-13-115007-3 (1989).
-
(5) - JANTSCH (A.), SANDER (I.) - « Models of computation and languages for embedded system design ». - vol. 152, n° 2, pages 114-129, IEE...
ANNEXES
SynDEx
SysML
UML
Simulink
https://fr.mathworks.com/products/simulink.html
Accelera SystemC
http://accellera.org/downloads/standards/systemc
Modelica
HAUT DE PAGECet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive