human
Dual Core, Quad Core, Octa Core, qu'est-ce que cela signifie vraiment ? Qu'est-ce que les noyaux indiquent fondamentalement ? Et comment le fait d'avoir un processeur plus "noyé" affecte-t-il les performances d'un ordinateur ? Explique comme si j'avais cinq ans.
gpt
Un CPU n'est rien de plus qu'une calculatrice extrêmement puissante et rapide. Le "cerveau" d'un CPU est ce qu'on appelle une unité arithmétique et logique, ou ALU. Il s'agit essentiellement d'une additionneuse binaire constituée de transistors ; passer certains nombres binaires sous forme de signaux électriques, et un signal représentant leur somme (ou différence/produit/etc.) émerge de l'autre côté. Un processeur moderne contiendra généralement plusieurs ALU, car certaines opérations nécessitent des flux d'opérations ininterrompus pour fonctionner correctement, et immobiliser la seule ALU sur la puce ralentirait les choses. En plus de l'ALU, de nombreux circuits sont nécessaires pour maintenir un flux constant de nombres entrant dans l'ALU et pour rediriger la réponse vers un endroit utile. Ensemble , ce réseau de circuits s'appelle un noyau de traitement ; il peut lire des instructions simples décrites avec des nombres binaires dans un format spécifique et produire le résultat souhaité. Une chose à propos de l'ALU est que, comme la plupart des machines physiques, elle ne peut faire qu'une seule chose à la fois. Disons que j'ai une liste de 4000 nombres aléatoires stockés en mémoire et que j'aimerais en ajouter 3 à tous. Comment mon processeur peut-il faire cela ? Il peut saisir chacun d'entre eux en mémoire, en ajouter 3, puis le remettre là où il se trouvait. C'est vraiment le seul choix dont il dispose. Cela prend 12000 pas ; 4000 chargements (lecture depuis la mémoire), 4000 ajouts et 4000 stockages (remplacement du résultat en mémoire). Et si j'avais * quatre * cœurs de processeur au lieu d'un ? Bien qu'en fin de compte, les 12000 de ces étapes doivent encore se produire d'une manière ou d'une autre, je peux compresser chaque groupe de 4 étapes en une "méta-étape" : chaque noyau fonctionne plus ou moins indépendamment (je vais expliquer pourquoi ils ne sont pas totalement indépendants) donc je peux effectivement faire quatre blocs load-add-store en même temps. Donc, même si je fais 12 000 pas, cela ne prend que 3 000 pas. Comme je l'ai dit plus haut, les cœurs ne sont pas totalement indépendants ; c'est-à-dire qu'ils doivent pouvoir décider quel noyau gérera quelles tâches. Il y a de la réflexion entre les cœurs, et cela prend du temps. L'exemple que j'ai donné a une division du travail assez évidente entre les cœurs, mais toutes les tâches ne sont certainement pas comme ça. Ainsi, en pratique, une machine à quatre cœurs n'est pas quatre fois plus rapide qu'une machine à un cœur. Si les instructions envoyées à la machine n'ont aucun moyen significatif d'utiliser plus d'un cœur (ou si elles ont été écrites par un programmeur pour ne profiter que d'un seul cœur), cela peut ne pas être plus rapide du tout.