Depuis le début des années 2000, on perçoit un ralentissement de l’accroissement exponentiel (loi de Moore) des vitesses de calcul d’une génération de processeur à la suivante. Sur les ordinateurs personnels, l’accroissement en puissance de calcul est maintenu par un accroissement du nombre de cœurs de calcul sur une même puce. Ce phénomène peut être expliqué par la miniaturisation atteinte par les fondeurs de processeurs sur une technologie basée sur des transistors en silicium : pour une taille de transistors donnée, accélérer la vitesse de calcul a un coût quadratique en énergie. Or, la taille d’un transistor n’est aujourd’hui que de quelques atomes ; elle est donc de plus en plus difficile à diminuer, et les gains en fréquence des calculateurs se font alors de moins en moins sentir.
Lorsque les calculateurs sont
embarqués
sur un
procédé
(avion, automobile, train, satellite artificiel, etc.) contrôlé par un système, le compromis entre puissance de traitement et énergie consommée penche souvent en faveur de la limitation des fréquences de calcul des processeurs embarqués lorsque ceux-ci sont alimentés sur batterie, énergie ambiante ou en consommant du carburant. La diminution de la puissance des calculateurs est alors compensée par la multiplication de leur nombre pour une même puissance globale de calcul.
On peut naturellement envisager deux façons de multiplier les calculateurs : connecter plusieurs calculateurs par des réseaux de communication (on parle alors de systèmes
répartis
) ou bien mettre sur une même puce plusieurs cœurs de calculs (on parle alors de systèmes
multiprocesseurs
ou
multicœurs
lorsque les cœurs de calcul sont sur une même puce). Bien entendu, on peut associer les deux et avoir des réseaux de communication reliant des systèmes multicœurs.
Sur un
système critique
complexe, tel qu’un avion civil, le système de contrôle est constitué d’un système réparti de systèmes monoprocesseurs. L’architecture avionique de demain, et vraisemblablement celle des autres types systèmes embarqués complexes doit augmenter les ressources de calcul sans augmenter la complexité du réseau de communication déjà très complexe dans ces systèmes. Ainsi, l’architecture des systèmes critiques de demain sera constituée de systèmes répartis multicœurs.
Les systèmes embarqués critiques sont généralement soumis à des
contraintes de temps
: chaque fonctionnalité doit s’exécuter dans un intervalle de temps donné, malgré le fait que...