Couvre le passage aux processeurs multicœurs, à l'architecture de mémoire de processeur, aux défis de concurrence et aux problèmes de synchronisation dans l'informatique moderne.
Explore les principes de synchronisation à l'aide de verrous et de barrières, en mettant l'accent sur des implémentations matérielles efficaces et des mécanismes de coordination tels qu'OpenMP.
Explore la conception de datapath et la logique de contrôle pour l'exécution des instructions ISA, en mettant l'accent sur le contrôle filaire et l'analyse des performances.
Explore la mise en œuvre d'algorithmes dans le matériel, couvrant les registres, les instructions de base, le langage de montage, et l'architecture von Neumann.
Couvre les implémentations sans attente d'objets atomiques, en se concentrant sur les compteurs et les instantanés, en discutant des idées clés pour renforcer l'atomicité et la liberté d'attente.
Couvre la pipelining dans l'architecture informatique, en mettant l'accent sur son rôle dans l'amélioration des performances grâce à un parallélisme au niveau de l'instruction et en abordant les défis associés.
Explore la mémoire transactionnelle et la simplification matérielle pour le contrôle de la concurrence dans les logiciels, mettant l'accent sur les avantages de la spéculation matérielle et de la concurrence déclarative.
Couvre les bases de la programmation parallèle, y compris la concurrence, les formes de parallélisme, la synchronisation et les modèles de programmation tels que PThreads et OpenMP.
Couvre l'abstraction des threads dans les systèmes informatiques, en se concentrant sur la concurrence, le parallélisme et la gestion des threads à l'aide de l'API POSIX.