Les processeurs modernes ont-ils une redondance dans leurs unités logiques pour compenser les défauts de production?

10

Les processeurs modernes sont constitués de milliards de transistors et les nouvelles technologies de production ont souvent des problèmes de rendement, au moins dans les premiers mois, mais je suppose que même après des années, il y aura de temps en temps des puces défectueuses.

Je sais que dans les gros blocs (par exemple le cache), il est possible d'en désactiver simplement certaines parties et de réduire ainsi la quantité de mémoire disponible (vous pouvez donc au moins vendre la puce à un prix inférieur au lieu de la jeter). Mais y a-t-il quelque chose de similaire pour les unités logiques? Je suis conscient qu'il existe plusieurs ALU pour la distribution, mais est-ce une chose de simplement désactiver l'un d'eux en cas de défaut de production? Ou existe-t-il même des ALU de rechange supplémentaires? Parce que pour moi, il est difficile de croire que les fabricants disposent simplement de chaque puce où il y a un transistor défectueux dans les parties logiques, alors que la désactivation d'une ALU complète réduirait considérablement la puissance de traitement réalisable.

jusaca
la source
Juste ma conjecture. Le prix de la production de plaquettes de silicium est relativement faible sur de grandes quantités, et vous pouvez le tester avant de le loger dans le boîtier, afin de pouvoir produire des puces complètes avec un taux de défaillance relativement faible. > 50% du prix est purement marketing. Je pense également que de nombreuses variantes de processeur au sein de la même famille sont réalisées sur la même topologie et ne diffèrent que par certaines fonctionnalités / cœurs / caches désactivés (comme vous l'avez écrit), donc le fabricant a le grand écart pour maintenir un faible taux d'échec de production même avec unités endommagées. Mais je doute qu'ils aient, disons, plusieurs ALU réservées pour le même noyau.
cyclone125
Je pense que l'exemple le plus connu de ceci était l'Intel 486SX, qui était le même dé que le DX avec un FPU désactivé. Mais je serais intéressé d'entendre quel est l'état actuel de la situation.
pjc50
J'en doute fortement. La quantité de logique et de temps de conception nécessaire pour permettre une redondance de bas niveau à la vitesse des processeurs contemporains n'en valait pas la peine. La redondance au niveau des blocs (core, fpu, cache) ou simplement la désactivation des blocs serait beaucoup plus que suffisante pour augmenter considérablement le rendement. Et aux prix et aux tailles de plaquette actuels, même un rendement de 5% pourrait être rentable.
Edgar Brown
Vous pensez donc que chaque fois qu'une ALU n'est pas utilisable, elle désactive simplement le noyau. Ouais, ça pourrait être une possibilité. J'espérais que quelqu'un ici le saurait vraiment.
jusaca
1
Oui, ils désactivent le noyau. C'est une pratique appelée "binning".
DKNguyen

Réponses:

3

Comme d'autres l'ont dit, il est difficile de voir une logique ALU redondante dans un noyau.

Un cœur a été conçu pour optimiser le débit. Toute logique supplémentaire pour une ALU redondante aurait un impact sur les performances et une surface accrue ralentirait le cœur entier. Au fur et à mesure que la technologie évoluait, le silicium devenait plus petit, rendant les cœurs plus rapides, mais utilisant essentiellement la même propriété intellectuelle. Pourquoi avoir des ALU redondants, alors que l'espace est disponible pour les cœurs redondants pour augmenter les rendements de production?

En 2011, Intel a déposé un brevet pour au moins 32 cœurs avec 16 actifs et 16 de rechange. Le brevet indique que les cœurs défaillants auraient des températures plus élevées permettant à un cœur de rechange d'être commuté. Essentiellement, l'allocation dynamique des cœurs selon les besoins.

Vous pouvez avoir des cœurs haute et basse puissance alloués selon les besoins des tâches. Ou éteignez un noyau défectueux détecté par des niveaux de température plus élevés. Faites fonctionner les noyaux en damier pour réduire la chaleur.

Brevet Intel: amélioration de la fiabilité d'un processeur à plusieurs cœurs

StainlessSteelRat
la source
Cela a beaucoup de sens, je n'ai pas pensé à l'impact sur les performances que peuvent avoir les zones de silicium de rechange à l'intérieur d'un cœur. La désactivation des cœurs entiers semble être la voie à suivre, comme les autres réponses impliquent également.
jusaca
5

Pas dans la logique.

Cependant, s'il existe de grandes mémoires (SRAM), il est courant d'utiliser une mémoire avec «redondance». Celles-ci ont une logique spéciale qui peut être programmée pour remplacer une zone, souvent un certain nombre de lignes ou de colonnes.

La zone défaillante est détectée pendant le test, puis la mémoire redondante est programmée pour remplacer le ou les emplacements défectueux.

Cependant, ce «remplacement» doit être configuré à l'aide de bits OTP (One-Time-Programmable) ou d'une autre mémoire qui contient sa valeur. Ainsi, ces mémoires ne sont utilisées que dans des puces qui ont une telle fonctionnalité de «mémoire permanente», ou une telle fonctionnalité de programmation doit également être ajoutée, avec tous les coûts que cela implique.

Oldfart
la source
Pensez-vous que ces bits OTP sont programmés électroniquement, comme brûler un fusible ou quelque chose, ou les grands fabricants doivent-ils aller directement sur la matrice avec un découpage au laser?
jusaca
1
Les OTP sont des fusibles sur puce qui peuvent être programmés électroniquement (un peu comme l'EEPROM mais en permanence) Les utilisateurs finaux peuvent également les graver pour les numéros de série, l'adresse Ethernet, les clés de cryptage, etc.
Oldfart
4

Ce n'est certainement pas le cas pour les MCU simples ou les processeurs monocœur typiques. Le coût d'avoir des blocs de rechange n'en vaut pas la peine, et ces processeurs n'utilisent pas de processus de gravure de pointe, et ne nécessitent pas d'énormes zones de silicium, donc le rendement est assez bon.

Cependant, cela est fait pour certains processeurs multicœurs, pour lesquels la zone de silicium est assez grande, et qui utilise des processus de gravure plus fins qui peuvent conduire à des taux de défauts plus élevés. Sur ces processeurs, des cœurs entiers peuvent être désactivés (qui sont des blocs logiques assez gros, contenant bien plus qu'une ALU) lorsqu'ils sont défectueux. Le processeur est ensuite vendu comme un modèle bas de gamme.

Source: /skeptics/15704/are-low-spec-computer-parts-just-faulty-high-spec-computer-parts

faible confiance perdue en SE
la source
3

Je ne peux certainement pas répondre à votre question avec certitude. Cela n'a pas beaucoup de sens de désactiver les unités inférieures à 1 cœur, car cela devient un "ensemble de fonctionnalités" à grain très fin qui peut être activé ou non, et le produit cartésien de toutes les fonctionnalités possibles ferait une myriade de modèles de CPU possibles. Il existe déjà de nombreux modèles de CPU, ce qui les rend 10 à 100 fois plus n'aidera certainement pas!

Un autre aspect est que les milliards de transistors sont utilisés (pour la plupart) dans la création de caches, et pour les transistors défectueux, les fabricants vendent définitivement des processeurs avec des parties de leur cache en ligne désactivées (par exemple, voir AMD Thorton vs AMD Barton).

Mais je peux vous raconter une anecdote que j'ai entendue d'une personne en qui j'ai confiance. Il y a longtemps, j'étais un overclocker curieux. À mon époque, le processeur overclockable économique de choix était le pur-sang AMD Athlon:

Athlon Thoroughbred

Lors du montage de solutions de refroidissement personnalisées, il fallait être très prudent lors de la fixation du dissipateur thermique, car il appuie directement contre la matrice. Si vous appliquiez une pression inégale, les matrices étaient réputées pour se fissurer facilement aux coins, si vous appliquiez d'abord une force à un coin.

Cette personne avait fait exactement la même chose, une partie importante d'un coin avait disparu, mais le CPU fonctionnait miraculeusement bien, même si les performances de la mémoire étaient beaucoup plus réduites. Le coin ne contenait que du cache L2, donc avec cette partie disparue, le protocole de mise en cache fonctionnait d'une manière ou d'une autre autour du dé désormais très défectueux. Il signalait probablement des échecs de cache pour toutes les requêtes de cette partie, donc le processeur a été réduit à son cache L1 uniquement (ou seulement une partie de L2), il était donc beaucoup plus lent dans la plupart des tests, mais avait pratiquement les mêmes performances sur les boucles serrées.

Dans le même ordre d'idées, il pourrait être fait que si une ALU est défectueuse et est capable de signaler en quelque sorte qu'elle a rejeté le travail, le CPU peut être capable de retomber sur d'autres ALU. On ne sait pas si cela est fait par les fabricants de CPU (et j'en doute), mais l'exemple de cache (d'il y a 15 ans) montre que c'est certainement faisable.

anrieff
la source
C'est certainement très impressionnant, et cela semble même être une sorte de processus dynamique, car le système a détecté la pièce défectueuse de la puce par lui-même. En posant la question, j'avais plus une détection par un système de test en ligne de production à l'esprit. Mais cette histoire est définitivement intéressante;)
jusaca