Présentation
En anglaisRÉ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’articleABSTRACT
This article is an introduction to system-on-chip hardware/software codesign. It sets out general principles and concepts to describe, evaluate/analyze and implement these systems. It states key design steps, found in usual codesign approaches: specification and modeling of system characteristics (requirements, functionalities, etc.), partitioning into hardware and software components, synthesis and verification for inferring an implementation of both components while guaranteeing that system requirements are met. Methodological issues for the designer are also addressed. The article ends with an open discussion on possible impacts of emerging technologies (nonvolatile memories, etc.) and new computing paradigms (neuro-inspired, quantum computing, etc.) on system codesign.
Auteur(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.
KEYWORDS
embedded system | hadware/software codesign | system-on-chip
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 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
3. Partitionnement matériel/logiciel
3.1 Idée générale
Le partitionnement logiciel/matériel consiste généralement en la séparation de la réalisation d’un système d’une part en composante logicielle et d’autre part en composante matérielle dans l’objectif de satisfaire les contraintes de conception données. Le niveau de granularité du raisonnement considéré lors de ce partitionnement est variable : le niveau gros grain se concentre par exemple sur les fonctions, tâches ou processus, le niveau grain fin se focalise typiquement sur les instructions/opérations élémentaires et les blocs de base. Le partitionnement à gros grain est souvent plus simple à inférer à partir des spécifications, au prix d’une sous-optimalité du point de vue de la réalisation. Le partitionnement à grain fin a l’avantage d’être plus précis, mais il présente l’inconvénient d’être moins pratique à l’échelle globale de la conception conjointe du fait d’un très grand nombre de solutions à considérer, qui dépendent du choix des composants matériels et du type de synthèse architecturale.
La prise de bonnes décisions quant au dimensionnement d’une architecture matérielle satisfaisant les exigences d’un système repose sur l’opération d’estimation. Grâce à cette dernière, le concepteur peut évaluer assez tôt l’espace des choix de conception possibles, lui permettant par la même occasion de réduire le coût global d’implémentation. Lors des évaluations, différentes métriques sont généralement considérées selon les critères à optimiser en vue de la réalisation du système-cible : performance (par exemple, temps d’exécution, latences d’accès à la mémoire, latence de circuit), consommation (par exemple, puissance ou énergie dissipée), surface (typiquement le nombre de portes/transistors), etc. En particulier, l’estimation de métriques telles que les performances et les coûts du système joue un rôle important dans la répartition en logiciel et en matériel. En effet, suivant la granularité choisie, chaque élément de raisonnement (par exemple, fonction, opération ou bloc de base) se voit affecter des valeurs estimées selon ces métriques et d’après un type de réalisation, i.e., en logiciel ou matériel. Cette information est exploitable par la...
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 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
Partitionnement matériel/logiciel
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
(239 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