II.4. Les systèmes monopuces :
Les progrès réalisés par les fondeurs de
circuits permettent maintenant d'envisager l'intégration sur une
même puce d'un système embarqué complet. Ces
systèmes monopuces (SoC : system on chip) apportent des changements
importants dans les flots de conception classique.
Dans les systèmes électroniques classiques, les
grandes dimensions des cartes électroniques entraînaient des
problèmes électriques. Ils limitaient notamment la vitesse de
communication. Cela pouvait conduire à des communications lentes entre
des composants potentiellement très rapides. C'était
particulièrement critique pour la communication entre le processeur et
la mémoire : quelle
Chapitre II conception des logiciels embarqués
que soit la vitesse du processeur, il devait aller lire ses
instructions en mémoire. Pour pallier à ces problèmes, il
était nécessaire d'utiliser des caches. L'inconvénient des
caches est dû à la très grande complexité
d'étude de leur système. Ils induisent en plus de gros facteurs
d'indéterminisme. Avec les systèmes monopuces, la communication
reste toujours un goulet d'étranglement, car elle est très
consommatrice de surface, mais avec un facteur bien moindre. En effet le fait
d'avoir sur la même puce l'ensemble du système raccourcit les
chemins de communication et facilite la construction d'architecture s'accordant
aux localités de calcul de l'application. Ces facilités
permettent ainsi souvent de s'affranchir des caches. Les systèmes
monopuces sont aussi moins encombrants et surtout, ils peuvent consommer moins
: en effet les données doivent transiter par des chemins beaucoup moins
longs, l'énergie nécessaire à cette transmission est donc
plus faible.
Les systèmes monopuces apportent aussi des changements
dans les habitudes de conception. Notamment, la frontière entre le
logiciel et le matériel n'est plus aussi nette : en effet avec les
anciens systèmes le matériel était déjà
conçu lorsqu'il fallait concevoir le logiciel. Avec les systèmes
monopuces, les deux doivent être conçus en même temps. Cela
augmente la complexité de la conception, mais cela offre aussi plus de
liberté : chaque partie peut être réalisée en
logiciel, en matériel, ou de manière mixte.
II.5. Conception des systèmes embarqués :
Les systèmes embarqués de première
génération étaient suffisamment simples pour que leur
conception ne requière pas de méthodologie particulière :
quelques essais-erreurs pouvaient suffire pour satisfaire aux contraintes. Avec
la seconde génération, la complexité est devenue trop
importante pour que la conception puisse être menée à bien
sans méthode. Un premier type de flot de conception a donc
été utilisé, inspiré par les flots de conception
pour les systèmes généralistes. Ce flot est
présenté dans la première section. La troisième
génération remet en question ce type de flot, et de nouvelles
méthodes émergent. Elles sont présentées dans la
section suivante.
II.5.1. Flots classiques de conception des systèmes
embarqués : II.5.1.1. Le flot :
Le flot classique de conception des systèmes
embarqués est représenté sur les figures II.4a et II.4b.
Ce flot part d'une spécification souvent informelle du système.
Il distingue immédiatement les parties logicielles des parties
matérielles. Ces parties sont développées
indépendamment l'une de l'autre par des équipes
différentes. A la fin, une équipe d'intégration assemble
les parties, ce qui pose souvent des problèmes d'incompatibilité.
Cette intégration donne directement un prototype à tester. En cas
d'erreur, il peut être nécessaire de recommencer
complètement le flot.
Dans un tel flot il peut être difficile de
développer complètement le logiciel sans que le matériel
soit défini. C'est pour cela que son développement devait souvent
attendre que la partie matérielle soit décrite pour être
achevé.
Equipe logicielle
Spécification logicielle
Conception logicielle
Prototype logiciel
Partitionnement logiciel
/matériel
Prototype final
Compte-rendu
Spécification générale
Sur le matériel
Information
Intégration
TEST
Spécification matérielle
Conception matérielle
Prototype matériel
Equipe test
Equipe intégration
Equipe matériell
Equipe système
Figure II.4a : Les flots de conception classiques
pour les systèmes
Equipe intégration
Equipe test
Equipe matérielle
Equipe architecture
Equipe système
TEST final
Compte-rendu
Equipe logicielle
Spécification logicielle
Conception logicielle
Prototype logiciel
Partitionnement synthèse
allocations
Architecture globale raffinée/annotée
Intégration
Prototype
Spécification matérielle
Conception matérielle
Prototype matériel
Spécification générale
Définition
de l'architecture
Architecture globale
Figure II.4b :
Codéveloppement pour les systèmes
embarqués
Chapitre II conception des logiciels embarqués
II.5.1.2. Les limitations du flot classique :
Le flot classique de conception de systèmes
embarqués possède de nombreuses faiblesses qui le rendent
inadapté pour supporter la complexité des systèmes
embarqués de troisième génération.
Tout d'abord, il manque une description globale qui
accompagnerait la conception du système (logiciel et matériel) du
début à la fin. Cette description permettrait à toutes les
équipes de conception de bien connaître l'ensemble du
système, ce qui éviterait de nombreuses erreurs. Il devrait
également être possible d'effectuer des vérifications du
système complet à tous les stades de la conception.
La séparation entre le logiciel et le matériel
est effectuée trop tôt dans le flot de conception : au stade
où elle est effectuée il n'est souvent pas possible de savoir
quelle est la meilleure configuration. A l'inverse, l'intégration des
différentes parties est effectuée trop tard dans le flot : il est
souvent trop tard pour lever les incompatibilités.
Les faiblesses de ce type de flot font que les temps de
développement ne sont plus réalistes pour la conception des
systèmes embarqués actuels.
|