Après la théorie bien violente de la dernière fois, il est temps de passer à des choses plus concrètes.

ATTENTION: Je vais vulgariser au point que certains diront que ce que je dis est faux ou déconnecté de la réalité des processeurs.
C’est effectivement le cas, mais il s’agit ici d’avoir des notions vagues de l’influence de certains termes comme la fréquence d’horloge, la mémoire, le nombre de bits, etc…

Et à la fin, vous comprendrez pas tout, mais juste à quel point c’est un bordel monstre et surtout à quel point les fabricants de processeurs ne nous aident pas DU TOUT à appréhender la puissance de leurs processeurs.

Un petit rappel : on a vu la dernière fois que les puces électroniques étaient des machines transformant une instruction en entrée en une nouvelle information dépendante de conditions prédéterminées.

Cela permet déjà pas mal de choses, mais que des choses simples car une entrée donnée donnera toujours la même sortie. Il n’y a pas de notion de “suite”.
je rentre “une pomme” + “une pomme” => ça me dit “deux pommes”.
Je ne peux pas dire, “là j’ajoute une pomme”. Parce que ça demande de mémoriser le fait qu’il y a déjà 2 pommes et que ça demande aussi une notion de temps. D’avant et d’après.
Pour cela on a donc besoin de mémoire et de temporisation, d’une horloge.

Je ne vais pas rentrer plus dans les détails, de peur de vous re-donner mal à la tête, mais vous pouvez déjà comprendre que si la mesure du temps se fait toutes les minutes, vous ne pourrez pas rajouter 2x l’instruction “une pomme de +” dans la même minute.

Cette horloge est, dans les processeurs actuels, bien plus rapide que la pendule à Mémé. Elle ne “tic” pas toutes les secondes, mais plusieurs miliards de fois par seconde.
La façon d’exprimer “X fois par seconde” c’est une unité particulière: le Hertz.
1 fois par seconde, 1Hz.
Un film au cinéma en 24 images par seconde, est donc à 24Hz
Votre vidéo YouTube en 60 images seconde est à 60Hz
Et votre télévision 120Hz peut donc afficher 120 images par seconde… ou 60 images par seconde en 3D, mais on fera sûrement un jour une chronique sur la 3D si ça vous intéresse.

Un MegaHertz c’est donc 1 milion de “tic” d’horloge par seconde. Vous pouvez donc ajouter 1 milion de fois une pomme par seconde.
Un GigaHertz, c’est un MILLIARD de pommes par secondes potentiellement. (c’est environ 100 fois la production annuelle française CHAQUE SECONDE)

Bon, comme on s’en sert pas “juste” pour compter des pommes, la fréquence d’horloge est un des paramètres intéressants mais pas le seul.

Un processeur a ce qu’on appelle un jeu d’instructions. Certains d’entre vous connaissent “x86” pour l’avoir entendu quelque part, surtout en opposition à x64. Autant x64 s’applique aux processeurs 64bits, que je développerai plus tard, autant x86 ne s’applique pas à des processeurs 86bits. Non. Cela vient du processeur intel 8086 (un processeur 16bits pour info) qui a imposé un standard tant il a été une référence. A l’époque AMD copiaient ce processeur CISC.

CISC c’est Complex instruction set computer : microprocesseur à jeu d'instruction étendu. En gros ça veut dire qu’il y a TOUT UN STOCK de fonctions pré-programmées (du code ou des schémas logiques) dans le processeur. Un exemple juste pour illustrer : c’est un peu comme une calculatrice scientifique qui a une touche dédiée à Pi ou mieux, une touche pour calculer le carré du nombre que vous avez entré. Vous tapez 3, appuyez sur la touche “au carré”, hop, ça sort 9.

Dans le camp d’en face il y avait les “Reduced instruction set computer” ou RISC, soit en français « microprocesseur à jeu d'instructions réduit ». Si on continue avec les calculatrices, ça pourrait être la calculatrice carrefour sur laquelle il n’y a que les classiques +/- multiplication/division. On peut toujours calculer le carré de 3, mais il faut alors faire 3x3.

Vous pouvez déjà apercevoir qu’il y a des avantages et des inconvénients: l’un c’est plus simple à faire mais c’est plus cher, l’autre c’est plus complexe à programmer mais la calculatrice coûte 2€.
Et au final ça peut prendre le même temps entre plein de petites opérations simples et une grosse opération complexe.

En terme de réalité physique au niveau des processeurs, ça fait que les processeur RISC chauffent moins que les CISC… c’est pour cela que les puces ARM des smartphones sont en RISC et que votre ordinateur de bureau est probablement en CISC.
Parce que les smartphone sont petits, et les constructeurs n'ont pas la place pour installer du matos pour les refroidir et que chauffer plus c’est consommer plus d’électricité et donc + de batterie.

Mais au final on peut faire la même chose avec les deux, même si l’un est plus sobre, dans sa conception, que l’autre.

Vous croyez avoir compris? Hum… pas de bol, parce que :
Les Macs (dont les macs de bureau) utilisaient des processeurs powerPC, qui sont RISC

2) les Pentium sont hybrides: ce sont des processeurs RISC qui émulent du CISC. Physiquement simples, un petit “programme interne” rajoute les jeux d’instructions manquants ou plutot qui les traduit en opérations plus simples.

Pour le x64, c’est cette fois AMD qui a introduit ce nouveau jeu d’instructions et qui a été ensuite suivi par Intel, mais c’est un simple dérivé du x86 prévu pour gérer 64bits de registre de mémoire.

Oui parce qu’en fait c’est principalement ça un processeur 64bit, c’est un processeur capable de gérer un registre de mémoire sur 64 caractères. Et comme vous avez appris à compter en binaire la dernière fois, vous pouvez de tête me dire que ça fait…. une chiée de combinaisons, bonne réponse !

Avec 2 bits, je vais de 00 à 11, et j’ai donc 4 valeurs possibles.
Avec 4 bits j’ai 16 valeurs possibles
Avec 8 bits, j’ai 2^8=2x2...x2= 256 valeurs… comme 256 couleurs par exemple
Avec 32 bits plus de 4 MILLIARDS de combinaisons un milliard, on dit un Giga, ça fait 4 G

Hé ça vous dit rien ça? Mais si, vous avez du entendre un petit malin vous dire que 8 go de ram sur votre ordi 32 bit c’est con, et qu’on peut mettre que 4Go maxi. Ben ça vient de là.
32bits, 4Giga de combinaisons, 4 Giga de l’unité de mémoire utilisée en informatique: l’octet.

L’octet c’est 8 bits, 8x 0 ou 1. Par exemple une lettre de l’alphabet codée en ASCII ou UTF8. (On en reparlera un jour probablement. Dans une chronique sur les emojis?)

Donc en 32bit on ne peut garder en mémoire “que” 1000x la Bible (qui fait 4 073 275 caractères). Un KiloBible quoi, à une vache près.

Du coup en 64bits, ça fait un chiffre tellement grand (2 305 843 To), que le plus simple est de vous dire que ça fait 4217 GigaBibles soit 4,11 TeraBibles, nom de zeus !
Pour ceux que ça choque, que 4217 deviennent 4,11, c’est juste parce qu’on divise par 1024, on en reparlera un autre jour, dans une autre chronique.. quoi que allez :

Si votre disque dur annoncé comme 1To n’affiche jamais 1To mais de l’ordre de 931Go sur votre ordinateur c’est à cause des puissances de 2 :

=> Pour passer d’un bit à un Mégabit on passe d’une puissance de 2^1 à une puissance de 2^10, ce qui ne fait pas 1000 mais 1024.
Le Gigabit? 2^20, soit 1 048 576 et non 1 000 000.
Et le Téra? 2^30= 1 073 741 824
Sont votre disque dur est indiqué 1Tb=> 1 000 000 000/ 1 073 741 824 => 0,931… Soit les fameux 931 Go que vous affiche votre OS. VOILA. Plié.

Revenons aux processeurs :

En fait un processeur 64bit n’est pas plus rapide qu’un 32bit et l’ordi ou le smartphone ne sera plus “puissant” que si cette mémoire supplémentaire est nécessaire et exploitée par le système ET le logiciel.
En gros c’est comme un scooter 50cm2 et un tracteur avec un moteur V12 : les deux peuvent aller jusqu’à, disons, 50km/h mais jamais le scooter ne pourra tracter une machine de ferme. Si vous roulez en ville, pas besoin d’un tracteur, ça ne va pas vous rendre plus mobile. Le 64bit c’est le tracteur et le 32bit c’est le scooter. Un scooter est finalement, souvent bien suffisant.

Donc on résume un peu: la fréquence c’est le nombre de cycles par seconde, dans ces cycles, on peut utiliser des instructions préprogrammées simples ou complexes, avec des processeurs capables de gérer +/- de mémoire.

Mais ce n’est pas tout: un processeur de nos jours n’est pas unique, il contient plusieurs “coeurs”. Un coeur, c’est un processeur dans un processeur.
Pour résumer, vous avez une puce qui contient plusieurs processeurs. Dual core: 2 coeurs, Quad-core: quatre coeurs, Octo-core: 8 coeurs.

Là aussi si vous avez + de coeurs, c’est mieux mais pas obligatoirement utile:

Vous ne compterez pas plus vite les pommes, mais vous pourrez compter des pommes et des poires en même temps plutôt que toutes les pommes puis après toutes les poires.
Mais il faut avoir des poires à compter, sinon ce n’est pas plus intéressant.

Vous pensez avoir compris?
Pas de bol encore une fois parce que le processeur intel i5 qui équipe mon macbook Air a 2 coeurs physiques mais 4 coeurs logiques qu’on appelle “threads”. HyperThreading, ça vous dit quelque chose? sur le P4 3,06Ghz par exemple, il y en avait certains avec “HT” marqués dessus. Ben voilà c’est la signification. (même si la vanne à l’époque était de dire que ça voulait dire “haute temperature” vu comment un P4 chauffait à mort)

Plus fort encore: les processeurs ont ce qu’on appelle des “pipeline” dont je ne sais même pas en quoi cela diffère d’un thread mais c’est un peu sur le même concept de plusieurs tâches en même temps..

Mais c’est pas fini ! Je n’ai abordé que la surface du problème.
Je ne parlerai pas des processeurs capables d’augmenter leur fréquence quand un seul coeur est utilisé, ceux qui adaptent leur fréquence en fonction de l’usage (notamment sur les ordis portables), ceux designés pour consommer le moins possible etc etc etc.

Parce que déjà avec ces bases-là, on n’est pas sortis de l’auberge :

Faisons un petit test réel:
On choisit deux processeurs Intel, i3, 64bit, 2 coeurs physiques avec 4 coeurs logiques au total, tous à la même fréquence (3,2 Ghz).

En théorie, on devrait avoir le même score sur un benchmark (un test de puissance brute), non?

Ou bien non : si on regarde les référence, l’un c’est marqué 3210 et l’autre 6100, donc l’un est au moins 2x plus puissant que l’autre.

Ben en fait ni l’un ni l’autre: le 6100 est 20% plus puissant et consommerait environ 35% de moins d’énergie.
Juste parce qu’il s’agit de 2 générations différentes, l’une de 2013, l’autre de 2015.

Encore l’énergie qui baisse ça peut se comprendre: on grave plus fin le coeur du processeur et on a toujours dit que c’était plus efficace en terme de gestion de l’énergie. Donc soit.

Mais la puissance devrait être la même, non? Ben non. et c’est ça le problème.

http://ark.intel.com/compare/90734,71053
http://www.cpubenchmark.net/compare.php?cmp[]=1865&cmp[]=2639

http://ark.intel.com/products/71053/Intel-Core-i3-3210-Processor-3M-Cache-3_20-GHz
http://ark.intel.com/products/90734/Intel-Core-i3-6100T-Processor-3M-Cache-3_20-GHz

Vous me direz “voici la solution: on prend des benchmarks et on compare”. Et ben non….
parce que les benchmarks ne sont pas standardisés. Je peux pas comparer les valeurs venant de deux sites de benchmark différents. Le protocole de test et sa façon de pondérer, de donner de l’importance à tel ou tel paramètre, varie d’un moteur de benchmark à l’autre.
parce qu’un benchmark ne reflète pas la réalité, mais juste une utilisation hypothétique.
Parce qu’on peut raisonnablement soupçonner un fabriquant de trouver le moyen de gonfler s’il le veut son score de benchmark comme VW a pu tricher aux tests antipollution.

Un exemple avec mes deux processeurs : si on regarde le score obtenu pour 1 seul coeur logique par rapport au score global, la différence passe de 20% à moins de 7%. Donc si votre utilisation n’exploite qu’un coeur, la différence déjà pas si énorme, sera ici négligeable.

On a donc deux processeur semblables en apparence qui sont “pas identiques mais presque, enfin ça dépend quoi, pfiou c’est compliqué”.

Et je pourrais vous trouver deux processeurs dont l’un a un score de benchmark de malade et l’autre un score pourri, mais où le score en coeur unique pourra inverser le classement.

Hum, c’est à s’arracher les cheveux.

Je suppose que vous avez probablement appris 2-3 trucs et vous avez sûrement encore plus de questions concernant les processeurs qu’avant cette chronique.
Si c’est le cas, c’est normal, j’ai l’impression que plus l’on sait comment ça marche, moins c’est clair, plus c’est subtil.

Comparer les processeurs entre eux c’est difficile à la base tant les appellations sont nombreuses (Pentium, Core2duo, core2quad, Atom, celeron, Xeon, i3, i5, i7…et j’ai fait que intel) mais en plus il y a des générations différentes sous des noms identiques.

Et pour comparer entre un processeur de PC et un autre de smartphone c’est borderline impossible.

Et cela deviendra extrêmement problématique avec un W10 identique sur des appareils bien différents et donc avec des processeurs de tous bords qu’il faudra jauger avant l’achat.