Résumé
Pendant trois décennies, l'observation auto-réalisatrice énoncée par Gordon Moore (le fondateur d'Intel) sur l’augmentation des performances des circuits électroniques a offert des années dorées aux concepteurs de processeurs. Ils ont pu construire des mécanismes de plus en plus sophistiqués pour exploiter un nombre toujours plus grand de transistors calculant de plus en plus vite. Ce mouvement a été accompagné par la conception de langages de programmation portables et sûrs, dotés d’environnements de programmation riches et de compilateurs qui traduisent leurs programmes en codes machine exécutables en appliquant des optimisations fines, le plus souvent à l'insu des programmeurs.
Mais, depuis une dizaine d’années, un coup d'arrêt a été porté à la course à la vitesse des processeurs, de par l’atteinte de limites de consommation énergétique et de dissipation thermique conduisant à des rendements décroissants en termes de performances. Les constructeurs n'ont eu d'autre choix que de s'engouffrer dans une nouvelle course au parallélisme, avec des calculateurs et processeurs comportant de plus en plus de cœurs de calcul. Ce choix, imposé aux concepteurs de systèmes et aux programmeurs, rendra la programmation et la vérification beaucoup plus difficile. Il conduira à une augmentation de productivité bien moindre que précédemment. La domination à venir des multi-cœurs fondés sur des mécanismes de cohérence de cache et d’optimisation statistique menace également la sûreté des systèmes critiques, car il rend quasi impossible l'analyse du temps d'exécution maximal d’un code, indispensable à toute preuve de sûreté des applications temps-réel.