Présentation

Article

1 - ÉVOLUTION TECHNOLOGIQUE ET INTÉRÊT DE LA CO-CONCEPTION

2 - SPÉCIFICATION ET MODÉLISATION

3 - PARTITIONNEMENT MATÉRIEL/LOGICIEL

4 - SYNTHÈSE ET VÉRIFICATION

  • 4.1 - Synthèse
  • 4.2 - Techniques de vérification

5 - MÉTHODOLOGIES DE CO-CONCEPTION

6 - TECHNOLOGIES ÉMERGENTES ET NOUVEAUX PARADIGMES DE CALCUL

7 - CONCLUSION

8 - GLOSSAIRE

Article de référence | Réf : H8450 v1

Partitionnement matériel/logiciel
Introduction à la conception conjointe matériel/logiciel - Une vision générale

Auteur(s) : Abdoulaye GAMATIE, Lionel TORRES

Date de publication : 10 août 2017

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

RÉ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’article

ABSTRACT

Introduction to hardware/software codesign. A general overview

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.

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

KEYWORDS

embedded system   |   hadware/software codesign   |   system-on-chip

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h8450


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(238 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

ABONNEZ-VOUS

Lecture en cours
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 est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(238 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

ABONNEZ-VOUS

Lecture en cours
Partitionnement matériel/logiciel
Sommaire
Sommaire

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...

Cet article est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(238 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

ABONNEZ-VOUS