Dans une usine de fabrication de semi-conducteurs, il est crucial de maintenir le rendement, le temps de cycle et la qualité des produits en raison des processus complexes et coûteux. L'augmentation des rebuts lors du contrôle unitaire (UP) d'un dispositif qualifié a soulevé des inquiétudes quant à la livraison et a nécessité des mesures d'atténuation des risques. La direction demande fréquemment une estimation du risque de rebut potentiel lié à des rendements inférieurs aux seuils minimaux et/ou au dépassement des limites statistiques des lots. Les équipes de planification doivent savoir si de nouveaux lots de plaquettes sont nécessaires pour pallier la pénurie de puces, tandis que les équipes de production souhaitent connaître l'impact sur le rendement lors du contrôle unitaire. En tant que responsable de dispositif, j'ai utilisé des techniques d'exploration de données pour identifier les variations des paramètres de contrôle paramétrique correspondant aux rebuts lors du contrôle unitaire et j'ai pris des décisions éclairées basées sur des modèles prédictifs.
Dans cette démonstration, les données de sondage unitaire et de sondage de classe ont été extraites et nettoyées de la base de données de production. Les données collectées ont été divisées en ensembles d'entraînement, de validation et de test. Quatre modèles ont été évalués et analysés au niveau de la plaquette. Les modèles d'arbres de décision et les modèles de forêt bootstrap ont été sélectionnés pour l'analyse de la réponse catégorielle (rebut ou non), tandis que les modèles de régression linéaire et les modèles de régression par forêt bootstrap ont été comparés pour l'analyse de la réponse continue (pourcentage de rebut dans le bac UP). Le criblage des modèles a permis de réduire le nombre de paramètres de plusieurs centaines à quelques-uns. La décision finale concernant le traitement des plaquettes a été prise sur la base du modèle prédictif construit.
Lorsque la réponse UP était disponible à partir de l'ensemble de données de test, la précision des deux modèles de prédiction a été comparée entre les retombées de bacs prédites et sondées.
Je m'appelle Su-Heng Lin et je travaille chez NXP Semiconductors. En tant que responsable de la production dans une usine de semi-conducteurs, il est crucial de maintenir le rendement, les délais et la qualité des produits, compte tenu des processus complexes et coûteux. Tout problème de rendement peut compromettre les livraisons et nécessite des mesures d'atténuation des risques. Dans cette étude de cas, je vais vous montrer comment utiliser JMP, une plateforme de modélisation prédictive, pour une prise de décision optimale dans les opérations de fabrication de semi-conducteurs.
Voici un exemple de processus de fabrication de plaquettes de semi-conducteurs. Le lot initial comprend 25 plaquettes de silicium. Ces 25 plaquettes subissent diverses étapes de traitement pour la croissance de diélectriques ou de matériaux conducteurs. Elles sont ensuite brevetées pour la fabrication de circuits intégrés* au sein d'une puce. Dans cette étude de cas, la technologie a nécessité plus de 300 étapes de traitement. Le cycle de fabrication d'une plaquette dure environ 9 semaines. Une fois brevetée, la production peut se poursuivre.
Avant d'être expédiée à l'étranger pour les tests de circuits, la plaquette doit réussir le test d'acceptation, également appelé test de classe. Ce test vérifie chaque composant individuellement afin de garantir l'intégrité de chaque plaquette. Si la plaquette est jugée conforme et envoyée à l'étranger, elle subit alors le test unitaire. Ce test est réalisé sur chaque puce individuellement, ce qui permet de tester l'ensemble du circuit intégré.
Tous les dés sont testés et classés dans les bacs de conformité ou dans l'un des bacs de non-conformité. Le dé blanc est conforme, tandis que les couleurs différentes indiquent les défectueux. Outre le suivi du rendement de ma pièce (la pièce A), nous surveillons également la performance des bacs. Je vais vous montrer le bac n° 6, qui a récemment posé problème.
Voici le graphique d'évolution du BIN#6 normalisé pour toutes les plaquettes. Vous pouvez constater que cette limite statistique a été calculée à partir de données historiques. Cette ligne représente la mise au rebut de toute plaquette (chaque plaquette de ce graphique dépassant ce critère de BIN#6). Cela ne signifie pas pour autant qu'elle est vouée à la mise au rebut à rendement nul. Elle sera simplement mise au rebut. Vous pouvez observer que récemment, dans la zone jaune, nous avons constaté une augmentation significative du nombre de plaquettes mises au rebut en raison de ce problème de BIN#6 élevé.
Il y a un autre lot qui semble correct, sans dépasser la limite, mais dont le taux est également élevé. La direction est venue nous voir et nous a demandé : « Est-ce que tout va bien ? Connaissons-nous l’état de nos plaquettes pour la partie A ? » Pour répondre à cette question, je dois prendre plusieurs décisions. Tout d’abord, j’ai 150 plaquettes provenant de six lots différents. Elles sont en fin de ligne pour le contrôle de classe. Les données de ce contrôle sont disponibles, mais devons-nous envoyer le lot pour un contrôle unitaire ? Risquent-elles d’être mises au rebut (BIN n° 6) ? C’est la première chose que je dois savoir et décider. Dois-je les envoyer ? Présentent-elles un risque élevé ou non ?
Deuxièmement, s'ils ont subi une perte de rendement, mais pas au niveau prévu, combien de plaquettes sont impactées ? Combien de puces allons-nous perdre ? Vais-je mettre le client en difficulté parce que nous ne pouvons pas livrer les puces à temps ? Enfin, en tant que responsable de l'équipement, je dois savoir ce qui peut se produire sur la ligne de production. Bien que le test de classe n'ait pas échoué, il pourrait y avoir une interaction entre les paramètres de ce test. Ces interactions seraient responsables du taux de rebut élevé du lot n° 6. J'ai besoin de le savoir. Je peux formuler des recommandations aux ingénieurs des procédés en ligne, sur tout ce que nous pouvons faire pour maintenir la qualité de l'encre des plaquettes.
Ce dont j'ai besoin, c'est d'un modèle prédictif pour m'aider à évaluer les risques dans cette situation. La première étape consiste à définir les variables de réponse et les prédicteurs. J'utiliserai le paramètre Class Probe collecté sur chaque plaquette. Comme nous collectons des données sur plusieurs sites, j'utiliserai la médiane par plaquette pour ces Class Probe. Nous avons un total de 173 facteurs continus. Il existe une certaine autocorrélation entre ces 173 facteurs, car pour un transistor, nous extrairons la tension de seuil et le courant de commande. Il y a donc une autocorrélation entre ces 173 paramètres.
Pour la réponse, nous allons évidemment utiliser le taux de retombées BIN#6. Ma base de données contient plus de 2 000 données de plaquettes, que je vais toutes utiliser. Le taux de retombées BIN#6 normalisé constitue la réponse continue que j'utiliserai. Voici l'histogramme de ce taux normalisé. Il s'agit de la limite statistique des intervalles. Tout ce qui se trouvait au-dessus a été éliminé.
Cependant, je souhaite appliquer des critères plus stricts lors de ce processus d'exploration de données. Je restreint ces critères au 90e percentile de la distribution BIN#6, soit 0,187 dans ce cas. Les plaquettes dont la valeur est inférieure ou égale à 0,187 sont considérées comme bonnes. Au-delà, il s'agit d'une plaquette défectueuse, même si elle n'est pas nécessairement destinée à la mise au rebut. C'est ainsi que je définis la réponse catégorielle dans ces modèles prédictifs. De cette manière, j'obtiens environ 200 paramètres (mes paramètres de référence) et 1 800 plaquettes de référence.
Dans la diapositive précédente, nous avons défini les paramètres, la réponse et les prédicteurs. Je vais vous présenter quatre techniques de modélisation simples dans JMP, une plateforme de modélisation prédictive, qui me permettront d'effectuer une prédiction rapide et précise afin de prendre une décision éclairée. Pour la réponse catégorielle (bon/mauvais dans la catégorie 6), j'utiliserai l'arbre de décision et la forêt de bootstrap. Cette dernière servira à prédire la réponse de régression, qui correspond à la chute normalisée de la catégorie 6. Je comparerai ensuite ce résultat à un modèle ajusté, à savoir la régression linéaire pas à pas.
Après la démonstration de quatre de ces modèles, je vous montrerai comment choisir le modèle le plus adapté. Je comparerai les coefficients de détermination (R²) afin de déterminer le modèle à utiliser. De plus, l'avantage d'utiliser un modèle prédictif est qu'il devrait me permettre d'identifier les principaux paramètres de classe responsables des retombées de mon bac n° 6.
La première étape pour l'exploration de données dans le cadre de la modélisation prédictive consiste à diviser mon jeu de données (qui contient 2 000 éléments) en un ensemble d'entraînement et un ensemble de validation. Cette opération est possible grâce à l'outil de modélisation prédictive de JMP. Il est important de suivre les recommandations d'évaluation honnête. JMP propose une configuration par défaut, que je vais vous présenter. Ensuite, accédez à « Analyser », puis à « Modélisation prédictive » et enfin à la colonne « Validation ».
Je tiens à m'assurer que, puisque j'ai 25 plaquettes par lot, elles suivent le même processus. Je veux garantir qu'un représentant de chaque lot soit affecté à l'ensemble d'entraînement et un autre à l'ensemble de validation. J'ai effectué la certification à l'aide du lot source, qui correspond à l'identifiant de mon lot de plaquettes. Je validerai ensuite l'opération. Vous pouvez constater que JMP respecte déjà la recommandation d'évaluation honnête par défaut : 75 % pour l'ensemble d'entraînement et 25 % pour l'ensemble de validation. Je ne vais pas exécuter cette opération ici, car j'ai déjà créé la colonne « validation ». Voici comment générer cette colonne, que nous utiliserons pour le modèle que nous allons présenter.
Revenons-en à notre point de départ. Comme je l'ai mentionné, j'ai 150 plaquettes dans le système de contrôle de classe, mais pas les résultats du système de contrôle unitaire. Je ne connais pas le taux de retombées du lot n° 6 et je souhaite le savoir. Même en intégrant mon jeu de données de test avec ces 150 plaquettes dans le système de contrôle de classe, les résultats restent conformes au groupe d'évaluation honnête ; tout est donc en ordre. Je vais d'abord vous montrer la réponse de classification à l'aide de l'arbre de décision. Retournons dans JMP. Voici mon jeu de données. Il se trouve dans « Analyser la modélisation prédictive ». Nous y reviendrons plusieurs fois aujourd'hui, sous « Pétition ». Cliquez dessus ; vous pouvez constater que l'arbre de décision est bien présent.
Voici la méthode que je vais utiliser pour mon modèle prédictif. J'ai placé ici la colonne de validation que j'ai créée. J'utilise la classe BIN#6, qui distingue les plaquettes conformes des plaquettes non conformes. Vous pouvez voir ici ma classe BIN#6. J'ai ici mes données de sonde de classe 173. Je les ai masquées dans ce tableau de données, mais vous pouvez constater qu'il y en a 173. Cliquez sur OK. Voilà mon arbre de décision. J'ai déjà coloré les plaquettes non conformes en rouge et les conformes en bleu. Je peux vous montrer manuellement comment effectuer la première division. JMP effectuera la division en fonction du critère qui fait la différence la plus significative entre les plaquettes conformes et non conformes. Ici, il affiche la résistance RSP+. Si elle est supérieure à 148, j'ai beaucoup plus de plaquettes non conformes que lorsque la résistance est inférieure à 148. C'est la première division. JMP Fund.
Je peux continuer avec la deuxième. Elle a détecté le ToxP ; s'il est inférieur à 145, waouh, j'ai beaucoup plus de plaquettes défectueuses qui peuvent présenter un taux de retombées BIN#6 normalisé élevé, avec une combinaison de résistance plus élevée et de faible contamination. Je peux continuer comme ça, ou bien je peux passer à autre chose, et ensuite on pourra demander à JMP de m'aider à effectuer le fractionnement. Le processus s'est arrêté après le sixième fractionnement.
Examinons le R². Le R² pour l'entraînement est d'environ 67 %, et pour la validation d'environ 60 %, ce qui est plutôt bon. Il y a quelque chose ici, dans le triangle rouge à côté de la requête pour la classe BIN#6. Je souhaite consulter la contribution de chaque colonne. C'est ce qui me permettra de comprendre quels paramètres JMP a résumés. Outre ISP+ et ToxP, JMP a également trouvé deux autres paramètres, mais avec la dernière contribution à l'échec de la classe BIN#6. Nous allons fermer cette fenêtre, réduire JMP et revenir ici. Voici donc les deux éléments que j'ai enregistrés : le R² de ce modèle et la contribution de chaque colonne.
Passons au modèle suivant. Je vais vous montrer la même réponse de classification, mais j'utiliserai un autre modèle de partition appelé Bootstrap Forest. Ouvrons JMP. Oui. Allons dans Analyser, Prédire, Modélisation ; Bootstrap Forest se trouve juste en dessous. Validation, retournons dans Validation. Je vais utiliser la réponse catégorielle : bon ou mauvais. Mon prédicteur dans Class Probe se trouve dans les facteurs X.
Admettons que JMP utilise sa configuration par défaut ; je vais simplifier. Nous suivons les recommandations de JMP, qui va créer une forêt de 100 arbres. Voyons voir. La variabilité moyenne sera ainsi synthétisée. Cette méthode est plus stable que l'arbre de décision, qui ne comporte qu'un seul arbre. Nous avons maintenant la moyenne des 100 arbres et pouvons calculer le R². Le R² généralisé indique : « Mon R² peut atteindre 90 % pour mon ensemble d'entraînement et 80 % pour ma validation. » On constate donc que la forêt bootstrap améliore le R² aussi bien pour l'entraînement que pour la validation.
Nous pouvons également examiner la contribution des colonnes. Nous retrouvons les résistances et l'épaisseur d'oxyde mises en évidence. Outre les quatre paramètres totaux, la forêt Bootstrap, grâce à ses 100 arbres, nous fournit bien plus de paramètres, tout en ayant un impact minime sur le BIN#6 normalisé (bon/mauvais). Je conserve ce modèle car ses performances sont supérieures à celles de l'arbre de décision. Je vais le minimiser temporairement et revenir à ma présentation. Nous obtenons un excellent R² et les deux paramètres mis en évidence.
Passons à la réponse continue. Je vais vous présenter ici le modèle de régression. Nous utiliserons la régression linéaire par étapes. Voici mon tableau de données. Cliquez sur « Analyser » puis « Modèle ajusté ». Au lieu de la modélisation prédictive, j'utiliserai le modèle ajusté. C'est une autre façon de construire un modèle. Je n'ai pas la possibilité d'inclure la validation car j'utiliserai l'ensemble des plus de 2 000 données pour établir la corrélation. Nous allons effectuer une régression. J'utiliserai la variable continue normalisée « retombées BIN#6 » dans ma variable Y et je choisirai le paramètre « Sonde de classe 173 » comme effet principal de mon modèle.
Vous pouvez exécuter la macro jusqu'au degré deux. Vous allez alors observer l'interaction entre les deux facteurs. Cependant, le calcul étant long, je ne vais pas l'effectuer ici. Je vais me contenter d'un modèle du premier ordre. Compte tenu du nombre important de prédicteurs, je préfère utiliser une approche pas à pas, plus robuste. Exécutons les modèles. Je vais suivre la recommandation JMP : utiliser le BIC minimal comme critère d'arrêt et procéder par étapes en avant. Nous ajouterons des paramètres jusqu'à obtenir un modèle satisfaisant.
Vous allez exécuter le modèle. Veuillez patienter quelques secondes. Une fois l'exécution terminée, vous constaterez que j'ai obtenu le R² et le R² ajusté. Ils sont d'environ 74 %, ce qui est plutôt bon. Ces deux valeurs sont très proches. Examinons maintenant notre modèle. Il s'agit de mon modèle de régression linéaire. Il m'a bien fourni l'ISP+. Maintenant, mettez-le en évidence. Cependant, l'épaisseur d'oxyde, l'autre paramètre, est légèrement inférieure à la valeur attendue. J'ai constaté que de nombreux autres paramètres présentent une forte corrélation avec mon BIN#6, contribuant ainsi à la retombée normalisée du BIN#6. Cela s'explique par la taille importante de mon ensemble de données, plus de 2 000 plaquettes, ce qui facilite la mise en évidence des corrélations. Nous allons nous arrêter ici et retourner ensuite à ma présentation PowerPoint.
Voici le R², et voici un résumé des paramètres importants dans ce modèle de régression linéaire par étapes. Le modèle suivant que je vais vous présenter est la forêt Bootstrap. C'est un modèle très précis car il gère également très bien la régression. Retournons à mon fichier JMP. Analysez le modèle prédictif et la forêt Bootstrap.
Si vous avez déjà utilisé JMP, vous savez que nous pouvons rappeler les paramètres utilisés. Je vais remplacer les données catégorielles de BIN#6 par leurs données normalisées, qui sont des facteurs continus. Je suivrai à nouveau la recommandation de JMP d'utiliser 100 arbres dans ma forêt. Cela prendra quelques secondes. Voyons voir. La forêt Bootstrap pour les données normalisées de BIN#6 me donne… Waouh ! Mon R² est d'environ 0,977, soit 98 % pour mon ensemble d'entraînement. Pour l'ensemble de validation, j'obtiens 91 %. Ces résultats concernent le modèle que je viens de vous présenter : la régression linéaire. Je vais conserver celui-ci et l'examiner avant de passer à la suite.
Contributeurs de la colonne. Nous avons les mêmes deux résistances et l'épaisseur d'oxyde, elles sont mises en évidence. Nous avons deux autres valeurs élevées, mais de nombreux autres paramètres ont une faible contribution au modèle. Dans ce cas, si vous souhaitez créer un modèle réduit, vous pouvez mettre en évidence les deux paramètres ici, puis aller dans Analyser, Ajuster le modèle, puis Macro, et j'aime utiliser le service de réponse. Pourquoi ? Parce que je capture l'effet principal, ainsi que l'interaction et l'effet quadratique.
Je peux affecter ma variable BIN#6 normalisée à Y. Comme je n'ai pas beaucoup de prédicteurs, j'utiliserai une régression linéaire par les moindres carrés standardisés. Voici le modèle obtenu, que vous pouvez ensuite simplifier. Ce modèle simplifié ne représente que 65 % du R². Il est satisfaisant, mais pourrait être plus stable car il utilise moins de prédicteurs. Il est plus facile à expliquer, mais le biais sera plus élevé car il ne prend pas en compte tous les paramètres mis en évidence par le modèle Bootstrap Forest.
Revenons à ma présentation. Nous avons maintenant terminé les quatre modèles et examinons la comparaison des R². Il n'est pas tout à fait pertinent de comparer la régression linéaire pas à pas, car elle n'utilise pas la même plateforme et ne compare pas les données d'entraînement et de validation. Il s'agit de comparer le R² au R² ajusté. Cependant, vous pouvez constater que mon modèle Bootstrap Forest, tant pour les données de classification que pour les données de régression, présente un R² très élevé, supérieur à 90 % pour les données d'entraînement. Il est également le plus élevé pour l'ensemble de validation. J'ai décidé d'utiliser les deux pour ma prédiction de pertinence par rapport aux prédictions erronées, ainsi que pour mon estimation des retombées de BIN#6.
Alors, voyons comment je procède pour l'estimer. Je reviens ici et je me souviens qu'il s'agit de ma forêt Bootstrap pour les données de classe, « bon » contre « mauvais ». Pour utiliser le modèle prédictif, je clique sur le triangle rouge et j'enregistre les colonnes. J'enregistre la formule de prédiction. Vous pouvez constater rapidement que JMP me donne la probabilité pour « mauvais » par rapport à « bon ». On peut alors dire : « Très probablement la classe BIN#6 ici. »
Si vous allez tout en bas de mon jeu de données, vous verrez que j'ai masqué les 150 plaquettes lors de la création du modèle. L'équation générée par ce modèle s'applique à ces 150 plaquettes et prédit : « Dans le lot D, il y aura une plaquette défectueuse (la plaquette 1), et dans les autres lots C et A, il y en aura également beaucoup. » C'est une méthode rapide pour évaluer le nombre de plaquettes à risque. Cependant, cette méthode ne me donne qu'une indication entre les plaquettes conformes et défectueuses. Je vais vérifier si…
Quel est le taux de retombées estimé pour le lot n° 6 ? Si je pouvais obtenir cette valeur, ce serait encore mieux pour prendre la bonne décision. Ce n'est pas celle-ci que je recherche. C'est celle-ci. C'est celle-ci que je veux. Il s'agit de la forêt Bootstrap pour le taux de retombées normalisé du lot n° 6, le modèle de régression. De la même manière, je vais vous montrer un triangle rouge et enregistrer la formule de prédiction. Elle me donnera ici le prédicteur normalisé. Permettez-moi de le minimiser. Pour chacune des 150 plaquettes testées dans la colonne de validation, j'ai obtenu une valeur prédictive pour le taux de retombées du lot n° 6. C'est ainsi que l'on utilise la modélisation prédictive dans JMP pour obtenir une estimation permettant d'évaluer le risque associé à ces 150 plaquettes.
Au final, nous savons qu'environ 47 plaquettes seront défectueuses, ce qui signifie un taux de rebut élevé pour le lot n° 6. Cependant, aucune ne dépassera le seuil de rebut. Nous avons donc décidé d'envoyer ces 150 plaquettes à Uniprobe. Dans quatre semaines, nous recevrons les données et nous pourrons évaluer la fiabilité de notre modèle. La décision a été prise : nous envoyons ces plaquettes car elles présentent un risque de rebut. De plus, l'impact global sur les puces dû au taux de rebut estimé pour le lot n° 6 ne justifie pas le lancement d'une nouvelle production.
J'ai également appris quels sont les deux paramètres clés responsables du problème de BIN#6. Après discussion avec notre expert, l'équipe a décidé de se concentrer sur la résistance élevée. Nous allons effectuer une analyse de la fenêtre de processus afin de déterminer si nous pouvons réduire la résistance tout en maintenant le rendement de la pièce A. L'autre paramètre, ToxP, concerne un processus par lots. Il est possible de traiter différentes pièces avec la même technologie. Il n'est donc pas adapté à une modification du processus. L'équipe a décidé de renforcer les limites de contrôle de la ligne afin de garantir la stabilité des performances de ToxP.
Quatre semaines plus tard, nous avons reçu les résultats de l'analyse Uniprobe sur ces 150 plaquettes. On constate que deux lots présentent un pourcentage de rebuts BIN#6 supérieur à quatre. Il s'agit du pourcentage prévu de rebuts BIN#6. La corrélation est d'environ 71 %, ce qui est satisfaisant et m'aide à prendre la bonne décision. Le seuil de 0,187 est désormais dépassé, ce qui indique un risque faible. Cependant, le lot C présente un comportement anormal. Après examen de l'historique de traitement en laboratoire, nous avons constaté que le lot C n'est pas un produit standard. Il a été utilisé pour l'évaluation d'une modification de processus. Nous devons donc l'exclure de la modélisation. Grâce à cela, notre coefficient de détermination (R²) peut atteindre 80 %.
En résumé, je recherche un modèle prédictif pour prendre rapidement une décision éclairée, sans recourir à la méthode DOE (plan d'expériences) qui prend des mois pour obtenir les données. Ce modèle doit gérer l'autocorrélation sans nécessiter de manipulations de données importantes ni être limité par la mémoire vive. Nous avons évoqué le pré-partitionnement et la méthode Bootstrap Forest pour les données catégorielles ; ces méthodes sont performantes pour gérer un grand nombre de prédicteurs. De plus, elles ne sont pas affectées par l'autocorrélation des prédicteurs.
Nous avons abordé la forêt Bootstrap, qui surpasse également la régression linéaire. Elle permet de traiter des données de classification et de régression, et se montre particulièrement performante avec un grand nombre de prédicteurs, ainsi qu'avec des prédicteurs autocorrélés. J'espère que ces informations vous auront été utiles et vous aideront à réaliser vos premiers modèles prédictifs avec le logiciel JMP, afin de prendre des décisions éclairées basées sur vos données. Ma présentation est maintenant terminée. Merci de votre attention.