La formule du yield (microprocesseurs)

Si vous vous intéressez un peu au monde de l’électronique vous avez peut-être entendu parler du terme “yield” employé pour les microprocesseurs. Ce terme qui signifie en gros, le pourcentage de processeurs fonctionnant correctement rapporté à la capacité théorique de la ligne de production. Ce que je vais explorer ici, ce sont les modèles théoriques qui permettent de le calculer, les raisons des malfonctions et leur influence sur le coût d’un processeur.

Qualité du process de production

Lorsque vous construisez des systèmes complexes avec des traits caractéristiques dont la taille ne dépasse pas le micromètre, voire approchent du nanomètre, vous savez probablement que des erreurs dans la construction de ces systèmes sont inévitables. La moindre poussière dont notre monde est rempli apparaitra de la taille d’un boing 747 ou d’une montagne une fois rapporté à ces échelles microscopiques. De même les défauts dans la structure atomique du substrat qui composent votre gaufrette de silicone (wafer) vont affecter négativement le fonctionnement de votre puce. Bien entendu les usines qui produisent ces puces ont des atmosphères filtrées et sont entièrement automatisées pour réduire l’impact des êtres humains pourvoyeurs de poussière. Mais même dans ces conditions les possibilités d’erreur sont là.

La possibilité de voir une erreur apparaître est dépendante de la qualité du process de production. Paradoxalement les process archaïques mais éprouvés ont une faible probabilité d’erreur. Au contraire les méthodes hi-tech qui poussent plus loin les limites de ce qui est faisable en terme de taille de gravure et de nombre de couches superposées vont être plus soumis aux risques d’erreur.

La formule du yield

Ceci dit en général on raisonne en terme de process donné. Tout simplement parce que le choix de ce process est fait pour des raisons externes. D’une part il n’y a pas tant de fondeurs que ça et d’autre part la pression du marché fait que l’on devra migrer tôt ou tard sur un process qui nous permettra de monter en fréquence et d’augmenter la taille de la puce. Et la plupart du temps la qualité du process n’est pas quelque chose qui est directement influençable (même s’il doit rentrer en ligne de compte dans les coûts du silicium).

La formule du yield est une mesure statistique, du nombre de chips défectueux en fonction du nombre d’erreurs par unité de surface. Elle considère d’une part que la disposition de ces erreurs est totalement aléatoire et uniforme sur la surface du wafer. Donc la distribution est totalement caractérisée par cette quantité (ou probabilité) d’erreurs par unité de surface et la gravité de ces erreurs est identique (on reviendra sur cela plus tard). Et donc le résultat d’une erreur sur la surface du chip est une puce défectueuse.

Il y a plusieurs modèles pour les défauts, celui que j’ai énoncé est celui d’une loi de Poisson et qui n’est pas forcément vraie dans la réalité mais suffira pour la démonstration. Dans ce modèle (distribution totalement aléatoire et uniforme), la probabilité qu’une puce ait au moins un défaut et donc soit défectueuse est 1 - exp(-AD). A étant l’aire couverte par la puce et D étant la probabilité d’erreur par unité de surface. Cette formule du yield va déterminer la quantité de puces que l’on peut produire par wafer.

Influence de la taille

On voit donc que si l’on construit une puce grosse on est doublement perdant, d’une part parce que pour une taille de wafer donnée on pourra mettre moins de grosses puces que de petites puces (et ce n’est pas une relation strictement linéaire à l’aire, parce qu’au fur et à mesure que la puce augmente, la quantité de surface non utilisable sur les bords augmente aussi), et que parmi cette quantité réduite de puces une plus grosse proportion sera non fonctionnelle. Cela se voit dans la formule lorsque l’aire devient très grande, l’exponentielle tend vers zèro et la proportion de puces défectueuse tend vers 1. La limite est bien entendu la taille du wafer et même s’il est théoriquement possible de faire une puce qui couvre toute la surface utile du wafer, on se ruinerait en silicium à vouloir en sortir ne serait-ce qu’une seule puce fonctionnelle.

Influence sur les coûts

Les systèmes de facturation sont variables d’un fondeur à un autre et d’un contrat à un autre. Le modèle économique du fondeur (qui fabrique la puce) n’est pas forcément le même que de celui de son client (qui a commandé la puce au fondeur). Ce qui fait qu’il n’est pas forcément évident d’établir des lois toutes faites pour extraire de la formule du yield, celle des coûts et des potentiels revenus issus de la vente de la puce.

Par contre ce qui est clair c’est que le yield influence directement la capacité de production et donc la capacité d’inonder le marché de puces fonctionnelles et de répondre à la demande. Ceci dit dans l’industrie du semi-conducteur il n’est pas rare qu’une meme entreprise ait deux modèles simultanés, l’un reposant sur une puce facile à produire en grande quantité et à faibles marges, et une autre puce reposant sur une construction plus complexe, avec un faible débit mais en contrepartie des marges à la vente plus élevées. Déterminer à l’avance quel modèle va créer le plus de revenu pour l’entreprise n’est pas forcément évident.

Utilité de la redondance

On a déterminé naïvement qu’une puce plus grosse va influencer négativement la capacité de production (et si ce n’est le coût, au moins la capacité à faire de l’argent). Mais cela n’est pas toujours vrai. Dans certains cas, faire des puces plus grandes va avoir des conséquences positives à la fois sur la capacité de production et sur les revenus.

Une puce aura toujours une taille minimale nécessaire pour implémenter ses fonctionalités et pour atteindre une performance cible. Mais ceci dit on n’est pas forcément satisfait du yield initial d’une telle puce. On peut faire le choix de couper des fonctionalités ou de couper de la performance pour atteindre un yield plus raisonnable. Mais ce faisant on risque de changer de segment de marché, empiétant sur les plates bandes des produits des gammes inférieures ou d’être mis à mal par la concurrence. De même passer du temps pour optimiser le design pour réduire sa taille, peut signifier un retard important qui se traduira par une introduction tardive et une plus faible résistance aux actions de la concurrence. Ou on peut choisir de prendre le chemin de la redondance.

La redondance est le procédé qui consiste à rajouter des unités doublons, qui peuvent être désactivées sans invalider la puce. Le procédé est fréquemment utilisé pour les processeurs comme ceux d’Intel dont la moitié de la surface est prise par la mémoire cache. La mémoire cache est une unité relativement simple par rapport au reste de la puce mais qui prend une large place par simple duplication d’unité de base. Qu’est-ce qu’on y gagne ? direz-vous, on peut certes désactiver une unité défectueuse mais en contrepartie on doit payer le coût de cette unité superfétatoire.

Imaginez qu’une erreur fatale si elle arrive a 50% de chance d’arriver dans une de ces unités doublon si elles couvrent la moitié du chip. Le yield consistera donc comme ci dessus de la totalité des puces ayant zéro erreur, à cela s’ajoutera la moitié des puces qui auront une erreur, etc. Si il y avait typiquement une erreur par puce, cela peut donc faire passer une puce du statut de “non produisible”, à une puce au yield acceptable et cela pour une inactivation de x% de ses transistors. Inversement si le yield était déjà à 90% sans redondance, ajouter de la redondance peut faire avancer le yield vers 95% mais en contrepartie de x% moins de puces par wafer, et donc ce n’est pas toujours un bon choix.

Là encore il y a un choix économique à faire. Multiplier les unités strictement par deux en pratique diminue le nombre maximal de puces produisibles par plus de deux (en comptant les déchets). Pour y gagner il faut donc que l’augmentation du yield soit également supérieure à deux.

Conclusion

Le sujet est vaste, il y aurait encore beaucoup à en dire, mais j’espère qu’il aura contribué à vous faire voir de manière un peu plus clair la notion de yield et ses conséquences sur la production de microprocesseurs. Envoyez vos questions à <>

Comments

Leave your comment