Ouvrir le menu principal

MacGeneration

Recherche

Un bug dans un CPU AMD le fait planter après 1 044 jours

Pierre Dandumont

lundi 05 juin 2023 à 18:00 • 15

Matériel

Vous ne le savez peut-être pas, mais les CPU ont des bugs. Ils sont généralement documentés par les fabricants — du moins ceux qui vendent leurs CPU, comme Intel ou AMD — et parfois corrigés. Et AMD a un bug particulier dans ses processeurs EPYC 7002 (l'équivalent serveur des Ryzen 3000) : le CPU peut ne plus répondre après 1 044 jours (un peu moins de 3 ans).

Un EPYC Rome (Fritzchens Fritz, CC0)

Les bugs sont courants

Les CPU contiennent des milliards de transistors et peuvent donc avoir des bugs. Pour les corrections, les fabricants ont trois choix : corriger matériellement le CPU avec une nouvelle révision, corriger de façon logicielle le problème avec du microcode ou ne rien faire. Le bug le plus célèbre est évidemment celui du Pentium, dans les années 90 : l'image d'Intel avait été sérieusement écornée à l'époque et avait remplacé les CPU défectueux par une nouvelle révision. Dans certains cas particuliers, les premiers Pentium pouvaient en effet donner une réponse inadéquate à un type de calcul précis, ce qui est évidemment un problème.

Un Pentium touché par le fameux bug (Konstantin Lanzet, CC BY-SA 3.0)

La correction par microcode, plus courante, consiste à passer par du code intégré dans le firmware (BIOS, UEFI, etc.) qui va prendre en charge les bugs. C'est une solution efficace si le bug est rare et n'arrive que dans des conditions extrêmement précises, étant donné qu'il peut y avoir une perte de performances.

Dans le cas du bug d'AMD, la marque indique que le problème ne va pas être corrigé, car le bug reste assez peu probable : même dans les serveurs, un uptime de pratiquement 3 ans demeure finalement assez rare (mais pas improbable). Qui plus est, un redémarrage reste nécessaire de temps en temps pour appliquer les corrections de bugs par microcode.

Pas de correction attendue.

Un problème de temps

Maintenant, d'où vient cette valeur de 1 044 jours ? Probablement de la fréquence du CPU et d'un compteur, selon ce message sur Reddit. En effet, en prenant comme base la fréquence du TSC — Time Stamp Counter, le composant qui compte le nombre de cycles — et en supposant qu'il stocke le nombre de cycles dans une variable flottante en double précision, le nombre de jours est proche de la limite de la variable.

Vous n'avez rien compris ? Expliquons. Le compteur de cycle dépend généralement d'une fréquence de base, qui est souvent de 100 MHz dans un CPU moderne. Chaque cent-millionième de seconde, c'est-à-dire toutes les 10 ns, un compteur est incrémenté. Une variable flottante en double précision contient 64 bits, mais avec une structure particulière : 1 bit pour le signe (+ ou -), 11 bits pour l'exposant et 53 bits pour les données. Avec un compteur de ce type, il est donc possible de compter jusqu'à 9 007 199 254 740 989 (253). Maintenant, prenons ce nombre et faisons le calcul : avec un compteur incrémenté toutes les 10 ns, la valeur maximale est de 1 042 jours et 12 heures environ, un nombre très proche de celui annoncé par AMD. Une fois la valeur dépassée, le compteur repart probablement à 0, ce qui provoque une erreur.

Pourquoi est-ce qu'AMD parle de 1 044 jours et pas 1 042 ? Parce que comme l'explique le document de la marque, la valeur de référence (REFCLK) peut varier légèrement en fonction des cartes mères. Si la fréquence de base attendue est de 100 MHz, elle peut être légèrement plus élevée1 ou plus faible pour des raisons matérielles et donc induire un léger décalage.

Notons enfin qu'Apple a probablement des bugs de ce type dans ses CPU, mais que la documentation n'est pas publique : ce qui se passe chez Apple reste chez Apple.


  1. C'est une astuce assez courante pour grappiller une première place dans des benchmarks, en fournissant une fréquence un rien plus élevée que celle prévue.  ↩︎

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner

Les leçons de la WWDC 2025, et ce qu’elle laisse entrevoir de la suite : la semaine Apple

15/06/2025 à 21:00

• 19


Nouveautés d’iOS 26, macOS Tahoe, Liquid Glass… Tous nos articles pour tout savoir sur la WWDC 2025

14/06/2025 à 15:00

• 10


Aperçu de Spotlight dans macOS Tahoe : le lanceur idéal pour débuter ?

14/06/2025 à 11:00

• 35


Sortie de veille : une WWDC 2025 réussie ? Notre débrief d’iOS 26, Liquid Glass…

14/06/2025 à 08:00

• 11


SAV : Apple lance un programme de réparation pour des Mac mini M2 qui ne s'allument plus

14/06/2025 à 07:38

• 41


Avec Tahoe, les applications macOS pourront s’afficher sur le Vision Pro

13/06/2025 à 21:57

• 17


Les Youtubeurs de Linus Tech Tips voulaient se moquer des Mac pendant un mois, mais décident finalement de rester chez Apple

13/06/2025 à 18:56

• 102


watchOS 26 : découverte de la nouvelle interface de l'app Exercice

13/06/2025 à 18:27

• 4


Découvrez le tout nouveau UPDF 2.0 – l’éditeur PDF ultime pour Mac et iOS !

13/06/2025 à 15:18

• 0


macOS 26 peut faire le ménage dans les icônes de la barre des menus

13/06/2025 à 14:52

• 11


Avec EnergyKit, Apple veut charger votre watture au moment le plus opportun

13/06/2025 à 13:45

• 12


3DMark, une référence pour comparer les performances des GPU, débarque sur Mac

13/06/2025 à 13:02

• 31


Promo : des MacBook Air M3 16 Go à partir de 850 €

13/06/2025 à 12:50

• 13


Des nouvelles de Cyberpunk 2077 sur Mac, qui tourne visiblement bien sur un MacBook Pro M4 Max

13/06/2025 à 11:56

• 36


Les vélos arrivent dans Plans sur le web et les apps tierces pour watchOS

13/06/2025 à 11:30

• 22


TSMC est toujours le plus gros fondeur, mais SMIC rattrape Samsung pour la gravure

13/06/2025 à 11:10

• 11