Architectures et systèmes Evolués 2025-2026
Introduction :
Dans les vingt dernières années, les systèmes informatiques ont connu une évolution formidable, tant au niveau matériel que logiciel. Pour répondre aux besoins croissants en performance, fiabilité, scalabilité et sécurité, les architectures ont dû se réinventer. Les contraintes de miniaturisation, de consommation énergétique, d’optimisation des accès mémoire, de parallélisme et de virtualisation ont stimulé des innovations radicales.
Ce cours d’architectures systèmes évoluées propose d’explorer cette trajectoire : du transistor moderne jusqu’aux systèmes distribués, en passant par l’architecture parallèle, l’augmentation de la fréquence d’horloge, et la virtualisation. L’objectif est de donner aux étudiants une vision d’ensemble des défis d’optimisation et des solutions qui émergent dans les architectures modernes, et de les préparer à concevoir, analyser et sécuriser des systèmes de plus en plus complexes.
Objectifs du cours
À l’issue de ce module, les étudiants seront capables de :
-
Comprendre les fondements : maîtriser les principes des composants matériels (transistor, circuits intégrés, microarchitecture) et leur impact sur la performance.
-
Analyser les contraintes d’évolutivité : identifier les limites liées au scaling (loi de Moore, consommation, dissipation, goulots d’étranglement mémoire).
-
Étudier l’architecture parallèle : comprendre comment le parallélisme (multi-cœurs, SIMD, multicœurs, multithreading) améliore ou complique les performances.
-
Mesurer et justifier l’évolution des fréquences : comprendre pourquoi on ne peut pas augmenter indéfiniment la fréquence d’horloge, et les compromis (pouvoir dynamique, fuites).
-
Explorer la virtualisation : expliquer les principes de la virtualisation (hyperviseurs, containers, paravirtualisation), ses enjeux en performance et sécurité.
-
Concevoir et analyser des systèmes distribués : aborder les architectures distribuées, les modèles de communication, les problèmes de cohérence, de tolérance aux pannes, d’ordonnancement, de consensus.
-
Mettre en perspective les compromis : sécurité, performance, fiabilité, coût, latence — comprendre que chaque choix architectural implique des compromis.
-
Étudier des cas concrets actuels : analyser des architectures réelles (cloud, edge computing, microservices, systèmes distribués à grande échelle) et identifier les défis et solutions.