見出し画像

半導体製造とDeep learning

 タイトルが若干大それたものですが、内容はかなり現場で困っている内容となります。半導体製造の現場で一番頭を悩まされるものは物をどのように流すかです。これがかなり大変です。というのも製造装置が一部メンテナンスだったりとか、待ち時間が違ったり、さらにバッチ式だったり枚葉式だったりとかが入り乱れています。さらにロットに応じて優先度だったり時間制限があったりして複雑な構造になっています。これがDeep learningとかで最適化できればと思い書いてみました。
 比較でよく出るのが、車の製造ラインです。車の製造ラインはとてつもなく長い一本のラインがあり、そこに車体が流れどんどんと組み立てられています。このラインは一定のスピードで流れるため、各工程での待ち時間は決まっており、変動することはありません。また優先度という概念もほぼないです。なので全く違うものと考えてください。

自己紹介

 ベイエリア(サンフランシスコからサンノゼを含むあたり)で半導体エンジニアをしています。7年前に家族で移住しGCを取得後、大手Tech企業に転職し今に至ります。日本では半導体製造の現場で製品開発をしていました。


どんな制約があるのか

 簡単に、半導体製造ラインで存在する制約条件を簡単にまとめておきたいと思います。実際はもっと細かい制約条件がありますがそれは製造ラインのノウハウだったりするのでここでは詳しく話しません。

処理方法の違い

 半導体製造装置の処理方法を大きく分けると以下の2種類になります。この2種類が混在しているのが通常で、どちらかしか存在しないという製造ラインは今まで自分は見たことがないです。

  1. バッチ式

  2. 枚葉式

 バッチ式は複数のロットを一度にまとめて処理する方式です。枚葉は名前の通り一枚ずつ処理する方式です。装置効率を考えるとバッチ式は1ロットだけで処理することは稀で、複数のロットがまとまったら処理を開始します。つまり最初に来たロットは規定数のロット数になるまで処理がされない待機となります。またはどこかの待機場に行き待つことになります。
 枚葉式は、一枚ずつ順番に処理されていきます。処理の前処理(減圧など)とかが一枚ずつ実行されるので、バッチ処理と比較すると若干オーバーヘッドが大きくなりがちです。装置側でも前処理時間を効率的にできるような仕組みがされているのでそこまで気になるようなものではないです。

装置稼働状況

 半導体製造ラインでは、同じ工程に複数の装置が並んでいます。装置があるときはメンテのために止まっていたり、実験のために借用されていたりしていつも稼働しているとは限りません。なのでこのような状況を加味する必要があります。

時間制限

 処理方法のとこでも少し書きましたが、処理方法だけではなく、装置や処理するレシピによって待ち時間が異なります。これがかなり厄介で処理時間が長く、製造装置の数が限られたりしていると、そこがボトルネックになります。
 製造工程によっても時間制限があったりします。主に表面状況がすぐに変わってしまうとか、クリーンルーム内の照明に反応してしまう等です。この制限時間Overになってしまうと、品質管理の観点でロットごとNGとなる場合もあります。なのでこれらも考慮する必要があります。

ロット優先度

 知っている人はかなり通です。ロットには優先度があります。大抵は3つぐらいに分かれています。(普通、優先、特急とか)優先度が高いものは早く流れるように設定されます。理由は簡単で高いお金を払うからです。つまり時間をお金で買っています。なので工場運営上この優先度が高いロットは、何がなんでも納期に間に合わせる必要があります。じゃないと工場の信用問題になります。
 優先度が高い中でもさらに緊急を要する場合は、口開け対応というのをする場合もあります。イメージ的には江戸自体の大名行列みたいなものです。このロットが通る装置は、すぐに処理ができるように口を開けて(要するに装置の入り口をいつでも使えるように開けておく)待機させておきます。

現場の対応方法

 半導体製造現場には前の章で話した内容を一目に見れるシステムがあります。また事前にメンテや借用情報および、優先ロットの情報を入れておけばどこがボトルネックになりそうだがから調整が必要などがわかります。
 半導体製造現場のオペレーションチームは1日に3回ぐらいこれらの情報を確認し適宜調整をすることをしています。ただ優先度とか装置状況は常に変わっていくので調整が大変です。

Deep learningの使い所

 これはあくまで自分の意見ですが、経路最適化にDeep learningを使うという意見もありますが、それよりも過去の流動実績を学習Dataとして用い、現時点の状況下で各優先度のロットがどのくらいの日数で製造できるかの確率を算出して、日々の管理をする方が現実的かと思っています。
 Deep learningを用いて計算を回すと、注目点というかどこがCriticalになりそうかがある程度予測できるので、それを用いてメンテスケジュールとかを決めるという使い方も可能かと思います。

 LLMとかの基幹として使われているTransformerとかは結構この手の計算に向いているのではと思っています。というのもTransformerは前後の単語のつながりを見ており、その重みを待機時間等に置き換えたら上手くいきそうな気がします。専門家ではないので・・・。

まとめ

 今回は半導体の製造現場での困りごとがDeep Learningで解決できないかを考察しました。自分はDeep learning等に関しては素人で趣味で勉強して遊んでいる程度なので間違っていたら指摘してください。


アメリカSilicon Valley在住のエンジニアです。日本企業から突然アメリカ企業に転職して気が付いた事や知って役に立った事を書いています。