L'unité centrale de traitement (UC) est le cerveau d'un système informatique - c'est essentiellement elle qui indique à l'ordinateur ce qu'il doit faire et comment le faire. Une unité centrale de traitement est composée de circuits, qui comprennent trois éléments principaux: une unité de contrôle, une unité arithmétique/logique (UAL) et un gaming de registres. L'unité de contrôle récupère les instructions de la mémoire, les décode, détermine l'adresse des données stockées dans la mémoire (si nécessaire), puis transmet les informations sur les données et les instructions à l'UAL pour qu'elle les traite. L'UAL effectue le calcul ou la logique requis par chaque instruction, stocke les résultats intermédiaires dans des registres si nécessaire, puis renvoie le résultat en mémoire où il peut être consulté par d'autres programmes ou écrit sur le disque. Les registres sont utilisés pour conserver les données à court terme pendant qu'elles sont traitées par l'unité centrale.
Que sont les cœurs?
Un cœur est une instance d'une unité d'exécution au sein d'un processeur multicœur. Chaque cœur dispose de son propre cache privé, ce qui lui permet d'effectuer des tâches de manière indépendante sans avoir à accéder aussi souvent à la mémoire principale ; toutefois, plusieurs cœurs peuvent partager des ressources telles qu'un cache L2. Les cœurs multiples permettent un plus grand parallélisme lors de l'exécution des instructions, ce qui signifie que davantage d'instructions peuvent être exécutées simultanément et donc que davantage de travail peut être effectué en moins de temps qu'avec un processeur à un seul cœur. Les processeurs multicœurs sont donc idéaux pour les tâches informatiques intensives telles que l'édition vidéo ou le rendu 3D.
Comment fonctionne une unité centrale?
Une unité centrale fonctionne en exécutant des instructions qui ont été lues dans la mémoire - ces instructions indiquent à l'unité centrale quelles opérations doivent être effectuées sur des données particulières stockées dans la mémoire ou dans les registres. Lorsqu'une instruction est extraite de la mémoire, elle est envoyée à l'unité de contrôle qui la décode et détermine les adresses/éléments de données nécessaires ; ces informations sont ensuite transmises à l'UAL où les opérations sont effectivement effectuées conformément à ce qui a été spécifié dans l'instruction. Une fois les opérations terminées, les valeurs résultantes sont stockées dans la mémoire si nécessaire avant d'aller chercher une autre instruction et de répéter ce processus jusqu'à ce que toutes les instructions du programme aient été exécutées.
Qu'est-ce qu'un fil?
Les threads sont des séquences d'exécution qui peuvent être exécutées simultanément au sein d'un seul processus ou d'une seule application sur un seul cœur de processeur. Les threads permettent aux applications/programmes de donner l'impression de fonctionner plus rapidement qu'ils ne le font en réalité, car ils sont capables d'utiliser plusieurs cœurs à la fois. Grâce à l'exécution simultanée de plusieurs threads sur différents cœurs, il est possible d'effectuer davantage de travail sans avoir à attendre qu'un thread ait fini de s'exécuter avant qu'un autre thread puisse recommencer à s'exécuter sur un autre cœur. Les applications multithreads sont donc beaucoup plus efficaces que leurs homologues monothreads, car il n'est pas nécessaire de changer de contexte entre les threads lors de l'exécution de plusieurs processus à la fois sur des cœurs différents, contrairement à un seul cœur avec de nombreux threads en file d'attente pour un traitement séquentiel, comme c'est le cas avec une application monothread.
Qu'est-ce que l'hyperthreading?
L'Hyper-Threading (HT) est une technologie propriétaire d'Intel qui permet d'intégrer plusieurs processeurs logiques dans chaque cœur de processeur physique, ce qui permet d'avoir deux flux d'instructions simultanés par cœur physique (cela se traduit par quatre processeurs "virtuels" au lieu de deux). L'introduction de la technologie HT dans les processeurs a permis aux processeurs Intel d'améliorer leurs performances multitâches grâce à l'augmentation de leurs capacités de traitement par cycle d'horloge, ce qui leur permet de traiter des charges de travail importantes plus rapidement que les générations précédentes, qui étaient limitées par les seules vitesses d'horloge (qui n'avaient que des possibilités d'augmentation limitées). En outre, le HT permet également d'augmenter le débit dans certains cas, ainsi que les gains en termes d'IPC grâce à une meilleure efficacité de l'ordonnancement lors de la gestion d'un plus grand nombre de threads par rapport à un HT désactivé dans ces mêmes scénarios.
Qu'est-ce que l'architecture RISC ou CISC?
RISC signifie Reduced Instruction Set Computer (ordinateur à gaming d'instructions réduit) - il s'agit généralement d'architectures qui utilisent beaucoup moins de types d'instructions complexes que les architectures CISC (Complex Instruction Set Computers, ordinateurs à gaming d'instructions complexe). Les architectures CISC se composent généralement de gaming d'instructions très variés, allant d'opérations arithmétiques simples à des opérations complexes impliquant plusieurs étapes, telles que la manipulation de chaînes de caractères, etc., tandis que les architectures RISC ont tendance à utiliser des instructions plus simples mais plus rapides (qui occupent moins d'espace par puce en raison de leur complexité réduite), ce qui leur confère des caractéristiques de performance plus élevées pour des vitesses d'horloge similaires dans les deux architectures.
Qu'est-ce qu'un pipeline?
Les pipelines dans les unités centrales de traitement se réfèrent spécifiquement aux architectures qui divisent les différentes étapes impliquées dans l'exécution d'une instruction en parties discrètes de sorte que les résultats des premières étapes deviennent disponibles plus rapidement aux étapes ultérieures, permettant ainsi d'autres optimisations telles que la distribution et l'exécution hors ordre - cela permet à certaines parties de fonctionner plus rapidement ou plus lentement en fonction de leurs besoins individuels plutôt que d'avoir toutes les étapes en attente les unes des autres, ce qui conduit à des gains de performance significatifs par rapport aux conceptions non pipelinées, rendant ainsi possible les processeurs modernes à grande vitesse et multithread.
Que sont les caches?
Les caches sont de petits blocs de mémoire vive relativement rapide situés à proximité de l'unité centrale de traitement ou directement à l'intérieur de celle-ci. Ils remplissent deux fonctions: premièrement, ils soulagent la lecture et l'écriture de la mémoire principale, puisque les caches fonctionnent avec une latence plus faible, et deuxièmement, ils accélèrent le processus.
Qu'est-ce qu'une ligne de cache?
Une ligne de cache est le plus petit bloc de données pouvant être transféré de la mémoire principale au cache de l'unité centrale. Une ligne de cache se compose généralement de 64 octets sur un processeur avec des instructions de 4 octets, et de 128 octets pour des instructions de 8 octets. Chaque fois que l'unité centrale demande des données à la mémoire, elle récupère la ligne entière plutôt qu'un seul morceau de données ou d'instructions ; cela permet de réduire le temps de latence en garantissant que tous les morceaux de données liés seront également dans la mémoire cache de l'unité centrale s'ils sont nécessaires lors d'opérations ultérieures.
Qu'est-ce que le multiprocessing?
Le multiprocessing est un terme générique utilisé pour décrire plusieurs unités centrales de traitement travaillant ensemble, soit dans le cadre d'un système informatique unique, soit réparties sur plusieurs systèmes/appareils. Dans la plupart des ordinateurs/serveurs/réseaux modernes, le multiprocessing peut prendre plusieurs formes: le multiprocessing symétrique (SMP), où deux unités centrales ou plus partagent l'accès à la mémoire vive et à d'autres ressources ; le multiprocessing asymétrique (AMP), où un ou plusieurs processeurs agissent en tant que maîtres et délèguent des tâches à des processeurs subordonnés ; et le traitement massivement parallèle (MPP), où plusieurs processeurs coopèrent pour effectuer rapidement des tâches de calcul complexes sur d'énormes quantités de données.
Qu'est-ce qu'une architecture superscalaire?
L'architecture superscalaire fait référence aux unités centrales de haute performance qui sont capables d'exécuter plus d'une instruction à la fois - ce qui leur permet d'augmenter les performances en permettant l'exécution simultanée de plusieurs instructions plutôt que séquentielle comme cela aurait été le cas dans les générations précédentes, réduisant ainsi la latence et augmentant le débit en utilisant les unités d'exécution inutilisées lorsque cela est nécessaire. Ce faisant, les architectures superscalaires utilisent plus efficacement les ressources disponibles du processeur, ce qui se traduit par des vitesses de traitement plus élevées, même par rapport à leurs prédécesseurs à cadence plus élevée.
Qu'est-ce qu'un microprocesseur?
Un microprocesseur est essentiellement une version réduite d'un processeur de taille normale conçu pour des appareils plus petits tels que les systèmes intégrés, les PDA, les téléphones portables, etc. où la consommation d'énergie et la taille physique sont deux facteurs importants. Les microprocesseurs utilisent généralement des architectures plus simples que leurs homologues plus grands afin de réduire le coût et la complexité tout en offrant des performances comparables pour l'usage auquel ils sont destinés.
Comment fonctionne la virtualisation?
La technologie de virtualisation permet de diviser les ressources matérielles d'un système informatique (telles que les cœurs de l'unité centrale, la mémoire, etc.) en différentes machines "virtuelles" qui exécutent chacune son propre système d'exploitation indépendamment des autres VM. Cela permet à plusieurs utilisateurs/applications au sein d'une organisation ou d'un ménage d'utiliser les ressources d'une machine physique sans s'affecter mutuellement, puisque chaque VM fonctionne de manière totalement distincte de toutes les autres VM exécutées sur la même machine, avec son propre sous-ensemble de ressources matérielles disponibles en conséquence. La virtualisation est donc très utile pour économiser de l'espace et de l'énergie, tout en permettant une utilisation plus efficace du matériel existant grâce à la réduction de la duplication entre les machines/appareils.