Rappels sur le CPU et l'architecture Von Neumann

C'est en 1945 que John Von Neumann, mathématicien et physicien américano-hongrois (1903-1957) qui a eu l'idée d'utiliser une structure de stockage unique pour les données et les instructions.

Architecture de Von NeumannInformations[1]

Sur ce schéma, nous avons :

  • La mémoire qui contient à la fois les données et le programme qui indiquera à l'unité de commande quels sont les calculs à faire sur ces données.

  • L'unité arithmétique et logique (UAL ou ALU en anglais), autrement appelée « unité de traitement », permet d'effectuer les opérations de base (l'accumulateur est un registre permettant de stocker les résultats intermédiaires lors d'un calcul)

  • L'unité de commande qui gère l'exécution et le séquençage des instructions machines (page suivante). À noter que cette unité de commande est aussi parfois appelée « unité de contrôle »

  • Le système "entrée-sortie" qui permet de communiquer avec "le monde extérieur" au système CPU + RAM (clavier, souris, écran, carte graphique, disque dur...)

Encore aujourd'hui, tous les ordinateurs fonctionnent sur ce principe défini par von Neumann.

À noter que John von Neumann était un véritable génie "touche à tout" puisqu'il a laissé son nom dans l'histoire de la mécanique quantique, dans l'histoire de la théorie des ensembles...et comme nous venons de le voir, dans l'histoire de l'informatique. Il a aussi participé à l'élaboration de la bombe atomique américaine lors de la 2e guerre mondiale (projet Manhattan).

ComplémentÉvolution des CPU

Pendant des années, pour augmenter les performances des ordinateurs, les constructeurs augmentaient la fréquence d'horloge des microprocesseurs : la fréquence d'horloge d'un microprocesseur est liée à sa capacité d'exécuter un nombre plus ou moins important d'instructions machines par seconde. Plus la fréquence d'horloge du CPU est élevée, plus ce CPU est capable d'exécuter un grand nombre d'instructions machines par seconde (en fait, c'est un peu plus compliqué que cela, mais nous nous contenterons de cette explication).

Évolution de la fréquence et de la consommation des CPU au fil des annéesInformations[2]

Comme on peut le voir sur le graphique ci-dessus, la puissance augmente de manière identique et donc la chauffe des processeurs. C'est pourquoi, à partir de 2006, on a cessé d'augmenter la fréquence d'horloge.

Les constructeurs (AMD et Intel) ont adopté une nouvelle stratégie : augmenter le nombre de cœurs dans un CPU.

Mais qu'est qu'un cœur dans un microprocesseur ?

Dans un microprocesseur, un cœur est principalement composé : d'une UAL, de registres (R0, R1...) et d'une unité de commande, un cœur est donc capable d'exécuter des programmes de façon autonome. La technologie permettant de graver toujours plus de transistors sur une surface donnée, il est donc possible, sur une même puce, d'avoir plusieurs cœurs, alors qu'auparavant on trouvait un seul cœur dans un CPU.

Cette technologie a été implémentée dans les ordinateurs grand public à partir de 2006. Aujourd'hui, on trouve sur le marché des CPU possédant jusqu'à 18 cœurs !

Même les smartphones possèdent des microprocesseurs multi-cœurs : le Snapdragon 845 possède 8 cœurs.

48 cœurs au travail !

On pourrait se dire que l'augmentation du nombre de cœurs entraîne obligatoirement une augmentation des performances du CPU. En fait, c'est plus que complexe que cela : pour une application qui n'aura pas été conçue pour fonctionner avec un microprocesseur multicœur, le gain de performance sera très faible, voir même nul. En effet, la conception d'applications capables de tirer profit d'un CPU multicœur demande la mise en place de certaines techniques de programmation (non abordées ici).

Il faut aussi avoir conscience que les différents cœurs d'un CPU doivent se « partager » l'accès à la mémoire vive : quand un cœur travaille sur une certaine zone de la RAM, cette même zone n'est pas accessible aux autres cœurs, ce qui, bien évidemment va brider les performances.

De plus, on trouve à l'intérieur des microprocesseurs de la mémoire « ultrarapide » appelée mémoire cache (il ne faut pas confondre mémoire cache et registres).

Le CPU peut stocker certaines données dans cette mémoire cache afin de pouvoir y accéder très rapidement dans le futur, en effet, l'accès à la mémoire cache est beaucoup plus rapide que l'accès à la RAM.

La mémoire cache ayant un coût assez important, la quantité présente au sein d'un CPU est assez limitée, les différents cœurs vont donc devoir se partager cette mémoire cache, ce qui peut aussi provoquer des ralentissements (en fait, il existe plusieurs types de mémoire cache appelés L1, L2 et L3, chaque cœur possède son propre cache L1, alors que les caches L2 et L3 sont partagés par les différents cœurs).