COMPTOIR
register

×

Intel 4004 : ses entrailles

Hard du hard • Ça fonctionne comment, un processeur ? (Partie 2)
Intel 4004 : ses entrailles
Un i9, c'est couillu !

• Des cpu multicore, du parallélisme

Des cœurs, mais pourquoi faire ?

Les optimisations vues précédemment avaient pour vue d'augmenter l'IPC (Instruction Par Cycle). Or l'hypothèse de Moore (prononcée en 1965 par Gordon E. Moore, un des fondateurs d'Intel) énonce que la densité des transistors intégrable dans un circuit électronique double tous les deux ans. Alors qu'elle que ne repose sur aucune démonstration, cette prédiction s'est révèlée étrangement véridique, malgré un ralentissement des performances vers les années 2010. Pourquoi ? Comme nous l'avons vu précédemment, il est difficile d'augmenter la fréquence pour gagner en performance, et les processeurs deviennent de plus en plus complexes, si bien qu'il n'existe plus (enfin, qu'on ne trouve plus) de nouvelles optimisations permettant de rendre nos chers bouzins plus rapides, malgré une surface en silicium toujours plus grande.

 

intel 4004 die

Schéma logique du premier CPU Intel, le 4004. La simplicité même : un unique cœur, pas de pipeline, pas de calcul flottant.

 

Intel 4004 : ses entrailles [cliquer pour agrandir]

Et pourtant, ses entrailles sont loin d'être simples ! (Schémas en provenance d'Intel)

 

Les fondeurs ont alors commencé à utiliser le gain de transistors induit par la conjoncture de Moore pour coller deux processeurs ensembles sur le même package. Il en résulte un CPU capable d'effectuer deux tâches simultanément : le premier dual-core était né !

Par la suite, on définit un cœur comme une partie d'un CPU capable de recevoir une liste d'instructions et de les exécuter les unes à la suite des autres.

 

Si, de nos jours, un CPU monocœur est tout à fait capable d'exécuter plusieurs applications en même temps, il ne s'agit que d'une illusion crée par l'OS. Sur Linux, une application dispose d'environ 20 ms pour effectuer ses opérations, puis est mise en pause par une partie du noyau nommée ordonnanceur, qui décide par la suite de la prochaine application à exécuter. Ainsi, on a l'impression que les applications tournent en même temps.

 

Hyper-threading, SMT ?

Sur les CPU actuels, on différencie les cœurs physiques des cœurs logiques. Cela est dû au fait qu'un CPU monocœur contient de nombreuses parties, vue précédemment, (unités de calcul entier, flottant, vectoriel, etc), mais que ces dernières ne sont jamais utilisées toutes en même temps. Il est alors possible de mutualiser les ressources : on parle alors de Simultaneous Multi-Threading (SMT), plus connu sous l'appellation commerciale d'Intel HyperThreading (HT). Son implémentation est simple : dans un cœur physique, tout est partagé sauf le pipeline qui est dupliqué ; en cas de conflit, une des deux instructions attend que l'unité utilisée se libère avant de l'utiliser à son tour.

 

Un i9, c'est couillu ! [cliquer pour agrandir]

Les i9 skylake (nommée i9-7XXX) proposent jusqu'à 18 cœurs hyperthreadés, soit 36 cœurs logiques, bien visibles sur son die. Le multicœur a de beaux jours devant lui !

 

A l'inverse, AMD avait tenté une architecture à base de modules avant Ryzen (qui lui utilise le SMT). Cela consistait en une fusion de deux cœurs, dont certaines unitées étaient partagées mais d'autre non. Si, théoriquement, un module possédait 90% de la puissance de deux cœurs, le processeur devenait également plus complexe, et la performance monocœur était en deça de la concurrence. Les applications nécessitaient d'être optimisées pour tirer correctement parti des modules AMD, là où les CPU utilisant l'hyperthreading étaient moins impactés par ces optimisations, mais proposaient des performances monocœurs bien meilleures. Et comme les jeux, même de nos jours, sont particulièrement sensibles aux performances monocœur, vous connaissez la sombre destinée des FX.

 

Synchronisation

Pour comprendre en quoi le multicœur nécessite des optimisations là où le pipeline ou le prédicteur de branchement n'en ont pas besoin, il faut revenir aux bases de la programmation. Et la programmation, c'est simplement une liste de courses effectuée par le CPU : les étapes sont effectuées les unes après les autres. Avec deux cœurs (et pire encore, avec 4 ou 8), il faut coordonner les calculs, s'échanger des valeurs entre cœurs, s'informer de l'état actuel des opérations... Le travail que vous pouvez faire en deux mois à vous seul ne se fait pas toujours à deux en un mois ! Partir d'un programme séquentiel (i.e. monocœur) pour le multi-threader n'est pas une chose aisée : il faut répartir la charge de travail efficacement entre plusieurs processus, qui travailleront plus ou moins en même temps à l'exécution : il convient donc de définir des points de synchronisation entre ces processus, notamment lors d'échange de données (ne serait-ce que pour attendre la fin du calcul avant de consulter la case mémoire correspondant au résultat !). Heureusement, le hardware offre des instructions dites atomiques qui garantissent qu'aucune autre opération n'interfèrent pendant leur exécution, ce qui permet les synchronisations de s'effectuer sans problème. Cependant, il faut faire extrêmement attention aux phénomènes de famine, c'est-à-dire lorsque plusieurs processus sont bloqués dans l'attente d'une même ressource.

 

Pour accélérer ces échanges, les extentions Intel TSX apportent le support des mémoires transactionnelles. Cette technologie permet, dans certains cas, de se passer de blocages inutiles en effectuant spéculativement les opérations sur la mémoire sans tenir compte des changements apportés par les autres cœurs. Les conflits (par exemple si deux variables sont modifiées par deux cœurs différents dans des zones non désirées), sont détectés automatiquement mais mènent à un surcoût en temps d'exécution : on ne risque pas de voir le TSX utilisé autre part que dans les bases de données avant un bon moment.



Un poil avant ?

AMD sur un projet GPU Zen ?

Un peu plus tard ...

Kezako ce Core i7-8086K ?

Les 28 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par TiboleGentleman, le Jeudi 10 Mars 2022 à 07h34  
par Un rat goth à l'heure embusqué le Mercredi 25 Avril 2018 à 15h41
"Comment coller plusieurs processeurs ensemble ?"

Prendre des p'tits bouts d'trucs et puis les assembler ensemble
Et écouter le résultat, tranquille, dans sa chambre
Message de Un ragoteur qui pipotronne en Île-de-France supprimé par un modérateur : ragot vide, fail ?
par Nanabozo732, le Vendredi 18 Mai 2018 à 12h59  
par Jemporte le Vendredi 18 Mai 2018 à 12h26
Incapable de voler, sa chair était dure, et elle avait mauvais goût.
Beaucoup de volailles incapables de voler et parfois volumineuses ont très bon gout.
par Jemporte, le Vendredi 18 Mai 2018 à 12h26  
par Un alsacien à l'heure embusqué le Mercredi 18 Avril 2018 à 20h09
Non, ce n'est pas une conjecture mais bel et bien une loi empirique. Une conjecture, c'est en mathématique. En physique, son équivalent est appelé une loi empirique. Or la conception et la gravure de circuit imprimé est du domaine de la physique et non des mathématiques.
@ragoteur sans nom embusqué : le dodo n'est pas une espèce menacée mais une espèce éteinte. Éteinte à cause de l'homme déjà.
Le dodo s'est éteint à l'image de ses proches parents, à savoir les espèces de pigeons incapables de voler, quand il a été en contact avec le reste du monde vivant. En Afrique continentale, il aurait disparu. Si un couple de lions était parvenu, sur un branche d'arbre flottante, dans les îles de son habitat, il aurait disparu tout aussi bien. L'animal semblait particulièrement stupide, se déplaçant difficilement, et inapte à se rendre compte de l'existence d'éventuels prédateurs. Ce ne sont pas les hommes qui les ont tué, mais vraisemblablement, les rats venus sur leurs navires qui se sont attaqués à leurs oeufs. La chair des dodos n'était absolument pas appréciée. Incapable de voler, sa chair était dure, et elle avait mauvais goût.
par Un rat goth à l'heure embusqué, le Mercredi 25 Avril 2018 à 15h41  
"Comment coller plusieurs processeurs ensemble ?"

Prendre des p'tits bouts d'trucs et puis les assembler ensemble
par un alsacien à l'heure embusqué, le Jeudi 19 Avril 2018 à 08h50  
Non, une conjecture et une loi empirique sont deux nom pour un même concept mais utilisé dans deux domaines différents : exprimer une causalité révélée expérimentalement mais non démontrée.
par Un #ragoteur déconnecté embusqué le Jeudi 19 Avril 2018 à 07h52
Une loi empirique se vérifie (répétabilité ), même si on ne sait pas pourquoi (il est là le côté empirique de la chose : effectivement, peu importe la Pierre qu'on tape avec le gourdin, au bout d'un moment elle ne fera plus "Aïe", on pourrait en conclure que le gourdin est tombé en panne, mais puisque changer de cible résout le problème, c'est la fragilité des Pierres qui est en cause ), la conjecture n'est qu'un énoncé pouvant y mener (avec un peu de chance, ce qu'on a déjà vu se répètera).
par Un #ragoteur déconnecté embusqué, le Jeudi 19 Avril 2018 à 07h52  
par Un alsacien à l'heure embusqué le Mercredi 18 Avril 2018 à 20h09
Non, ce n'est pas une conjecture mais bel et bien une loi empirique. Une conjecture, c'est en mathématique. En physique, son équivalent est appelé une loi empirique. Or la conception et la gravure de circuit imprimé est du domaine de la physique et non des mathématiques.
@ragoteur sans nom embusqué : le dodo n'est pas une espèce menacée mais une espèce éteinte. Éteinte à cause de l'homme déjà.
Une loi empirique se vérifie (répétabilité ), même si on ne sait pas pourquoi (il est là le côté empirique de la chose : effectivement, peu importe la Pierre qu'on tape avec le gourdin, au bout d'un moment elle ne fera plus "Aïe", on pourrait en conclure que le gourdin est tombé en panne, mais puisque changer de cible résout le problème, c'est la fragilité des Pierres qui est en cause ), la conjecture n'est qu'un énoncé pouvant y mener (avec un peu de chance, ce qu'on a déjà vu se répètera).
par Un alsacien à l'heure embusqué, le Mercredi 18 Avril 2018 à 20h09  
Non, ce n'est pas une conjecture mais bel et bien une loi empirique. Une conjecture, c'est en mathématique. En physique, son équivalent est appelé une loi empirique. Or la conception et la gravure de circuit imprimé est du domaine de la physique et non des mathématiques.
@ragoteur sans nom embusqué : le dodo n'est pas une espèce menacée mais une espèce éteinte. Éteinte à cause de l'homme déjà.
par Un #ragoteur déconnecté embusqué le Mercredi 18 Avril 2018 à 16h31
Vu que c'était une conjecture basée sur le passé récent et pas une loi, OSEF
par Un alsacien à l'heure embusqué, le Mercredi 18 Avril 2018 à 20h02  
Étant donné que l'hélium est issu de la distillation du gaz naturel pour l'essentiel, on peut effectivement considérer que la ressource est amenée à diminuer au cours des prochaines années. Mais à mon avis les HDD vont disparaître avant que l'extraction de gaz naturel ne devienne problématique pour la production d'hélium.
Maintenant si tu ne vois pas de problème dans le fait d'utiliser un matériau rare et difficile à se procurer pour une production de masse et amenée à augmenter au fil des années à venir, je ne vois pas trop comment t'aider.
par Un ragoteur sans nom embusqué le Mercredi 18 Avril 2018 à 18h55
Si on suis ton délire la production de HDD à l'hélium serait une espèce menacée comme le dodo...
par Un ragoteur sans nom embusqué, le Mercredi 18 Avril 2018 à 18h55  
par un alsacien à l'heure embusqué le Mercredi 18 Avril 2018 à 08h23
Et dans ton alliage, la proportion de germanium est de combien ? Et si on rapporte cela à la quantité de matériau nécessaire pour remplacer tous les processeurs produits actuellement, on arrive à combien de tonnes par an ? Et être dépendant d'une d'une nation respectant les accords commerciaux uniquement quand ça l'arrange, que ce soit à 70% ou 80%, cela revient au même.
De toute façon, le principe même d'utiliser un matériau rare pour une production de masse est par essence problématique.
Si on suis ton délire la production de HDD à l'hélium serait une espèce menacée comme le dodo...
par Un #ragoteur déconnecté embusqué, le Mercredi 18 Avril 2018 à 16h31  
Vu que c'était une conjecture basée sur le passé récent et pas une loi, OSEF
par Un ragoteur Gauleois embusqué, le Mercredi 18 Avril 2018 à 14h33  
par Scrabble le Lundi 16 Avril 2018 à 17h59
Oui, c'est vrai, mais le terme "Loi de Moore" a été inventé en 1965, c'est à dire il y a 53 ans, essaye de te mettre un peu dans le contexte. C'était juste une manière de parler, tout le monde savait dès le début que ça ne durerais pas éternellement.
NON rien avoir, meme en 1900 les gens avaient un minimum de sens de la Logique, comme on dit "les Arbres ne poussent pas jusque au ciel", donc on devait parfaitement se douter que on arriverait a une limite, d'ailleurs on aurait du aretter de parler de loi de Moore depuis déjà facilement 10ans tant ça devenait previsible (chez les gens qui savent) que on as atteint la limite