3. La complexité croissante des architectures
La poursuite de la miniaturisation des circuits entraîne des taux d'intégration vertigineux : actuellement, un circuit peut contenir plus d'un milliard de transistors. A ce stade, le circuit devient « système » puisqu'il est capable d'absorber une application complète, prenant en compte les aspects logiciels et matériels.
La complexité croissante des architectures soulève de nombreux défis au niveau de la modélisation du circuit, de l'optimisation de ses performances etc. Des solutions innovantes doivent dont être trouvées pour concevoir, tester et réaliser les systèmes intégrés du futur.
En outre, comme il a été indiqué précédemment, à ce stade de miniaturisation, la technologie ne garantit plus la stabilité des paramètres physiques. Les architectures de calcul embarquées doivent donc être repensées afin d'assurer la robustesse et la fiabilité des futurs systèmes sur puces.
Une réponse possible est le développement des architectures parallèles comprenant des briques élémentaires toutes capables d'effectuer des fonctions demandées par l'application et interconnectées sous forme matricielle par l'intermédiaire d'interconnexions sur silicium 14 ( * ) .
A plus long terme, la recherche s'oriente vers des architectures autoadaptatives, c'est-à-dire capables de réagir et de s'adapter à leur environnement et à leur état interne sans intervention extérieure. Ainsi, chaque puce contiendra une série de processeurs capables de renvoyer certaines opérations vers d'autres processeurs en cas de surchauffe ou de dupliquer les opérations sur plusieurs processeurs.
Les avantages attendus de ces nouvelles architectures sont nombreux :
- une augmentation de la flexibilité matérielle/logicielle ;
- une augmentation de la tolérance aux fautes puisque suite à un diagnostic, il sera possible de remplacer une brique de base par une autre ;
- une amélioration de la gestion d'énergie du circuit à travers le contrôle naturel des tensions d'alimentation et des fréquences de fonctionnement ;
- la possibilité d'adapter l'application aux usages.
* 14 Ce réseau d'interconnexions permet globalement d'être asynchrone (s'affranchissant donc de processus de synchronisation global très complexe) mais localement synchrone (c'est-à-dire que chaque coeur de calcul du réseau matriciel peut fonctionner à sa propre fréquence).