在半導體製造過程中,由於製程複雜且成本高昂,維持產品良率、週期時間和品質至關重要。合格裝置的單元探針 (UP) 分級缺陷率上升會引發交付方面的擔憂,並需要採取風險緩解措施。管理階層經常要求評估低於最低良率和/或超出統計分級限制可能導致的報廢風險。規劃團隊需要了解是否需要新的晶圓批次來彌補晶片缺口,而產品團隊則專注於單元探針的良率變化。身為裝置負責人,我運用資料探勘技術來識別與單元探針缺陷率上升相對應的參數探針參數的變化,並基於預測模型做出高階決策。
在本演示中,我們從生產資料庫中提取並清理了單元探針和類別探針資料。收集的資料被分為訓練集、驗證集和測試集。我們在晶圓層級評估並分析了四個模型。對於分類反應分析(報廢或非報廢),我們選擇了分類決策樹模型和自助森林分類模型;對於連續反應分析(UP 箱的損失百分比),我們比較了線性迴歸模型和自助森林迴歸模型。模型篩選幫助我們將參數從數百個減少到幾個。最終,我們基於建構的預測模型,對晶圓的處置方式做出了最終決策。
我叫林蘇恆,來自恩智浦半導體公司。身為半導體製造營運中的裝置負責人,由於半導體製造流程成本高且複雜,維持產品良率、週期時間和品質至關重要。任何良率問題都可能導致交付延誤,需要採取風險緩解措施。在本案例研究中,我將示範如何使用預測建模平台 JMP 在半導體製造營運中做出先進的決策。
以下是一個半導體晶圓製造廠(FAB)製程的範例。我們從一批25片矽晶圓開始。這25片晶圓將經過各種製程,以生長介電層或導電材料。之後,我們將申請專利,用於在晶片內建構積體電路*。在本案例研究中,該技術涉及300多個製程步驟。完成晶圓製造大約需要9週的週期時間,之後我們將申請專利,以便繼續進行後續工序。
但在晶圓送往海外進行電路測試之前,需要先通過晶圓驗收測試,也稱為級探針測試。級探針測試會對每個晶圓上的單一裝置進行測試,以確保其健康狀況。如果晶圓健康狀況良好並被送往海外,則會進行單元探針測試。此時,測試將針對每個單獨的晶片進行,從而對整個積體電路進行全面檢測。
所有骰子都經過測試,要么被歸類為合格品箱,要么被歸類為不合格品箱。圖中白色的骰子是合格品,而不合格品箱的骰子顏色則有所不同。除了追蹤我負責的零件(A零件)的良率之外,我們還會追蹤各個品箱的效能。這裡,我將向您展示6號品箱。這是我們最近遇到一些問題的品箱之一。
這是所有晶圓的標準化 BIN#6 值曲線圖。可以看到,這個統計限值是我們根據歷史資料計算出來的。這條線表示,如果任何晶圓(即圖表中的每個數據點)超過這六個標準,則該晶圓將被報廢。這並不意味著報廢的晶圓良率為零,而是會被報廢。可以看到,最近在黃色區域(時間區域)中,由於 BIN#6 值過高,導致大量晶圓被報廢。
還有另一批晶圓,看起來還行,沒超標,但數值也偏高。管理階層進來問:「我們沒問題吧?我們A部分的晶圓健康狀況如何?」 為了回答這個問題,我需要做幾個決定。首先,我有150片晶圓,來自六個不同的批次。它們正在進行生產線末端的等級探針檢測。他們有等級探針檢測的數據,但我們是否要將這批晶圓送去進行單元探針檢測?它們會不會被判定為BIN#6報廢?這是我首先需要知道的,我需要做出決定。我該送去檢測嗎?它們的風險高嗎?
其次,如果確實出現了良率損失,但並未達到晶圓級,那麼會有多少晶圓受到影響?我們會損失多少晶片?是否會因為我們無法準時交付晶片而導致客戶不滿?最後,身為設備擁有者,我需要了解生產線可能有哪些偏差。雖然類探針測試沒有失敗,但或許是類探針參數之間存在相互作用,導致了BIN#6缺陷率的增加。我需要知道答案。這樣我才能向生產線製程工程師提出建議,說明我們能做些什麼來幫助維持晶圓染料的良好品質。
我需要的是一個預測模型來幫助我進行這種情況下的風險評估。建立預測模型的第一步是定義反應變數和預測變數。我將使用從每個晶圓上採集的 Class Probe 參數。由於我們採集了多個位置的數據,我將使用這些 Class Probe 的晶圓中位數。這裡總共有 173 個連續因子。這 173 個因子之間存在一定的自相關性,因為對於晶體管,我們需要提取閾值電壓,並設定驅動電流。這 173 個參數之間存在著一定的自相關性。
對於響應數據,顯然我們將使用 BIN#6 的損失值。我的資料庫中總共有超過 2000 個晶圓數據,我將全部使用。歸一化的 BIN#6 損失值就是我將要使用的連續響應值。您可以看到,這是我的歸一化 BIN#6 損失模式的直方圖。這是統計分箱的界線。任何高於此界限的數據我都已捨棄。
但我希望在資料探勘過程中採用更嚴格的標準。我將標準收緊至 BIN#6 分佈的 90% 分位數,在本例中等於 0.187。任何低於或等於 0.187 的晶圓都被定義為合格晶圓。如果高於 0.187,則為不合格晶圓,即使它們可能並非報廢品。這就是我定義預測模型中分類反應的方式。透過這種方式,我將得到大約 200 個參數。這些是我的合格參數,以及 1800 個晶圓。
我們在上一張投影片中定義了參數、反應變數和預測變數。接下來,我將介紹 JMP(預測建模平台)中的四種簡單模型技術,它們可以幫助我快速且準確地進行預測,從而做出正確的決策。對於分類反應變數(六分之一的好壞),我將使用決策樹和自助森林。自助森林將再次用於預測迴歸反應變量,即我歸一化的 BIN#6 值。我將把它與一個擬合模型——逐步線性回歸——進行比較。
在示範了其中四個模型之後,我將向您展示如何選擇使用哪個模型。我會比較 R² 值來決定要使用哪個模型。此外,使用預測模型的好處在於,它有望告訴我,哪些關鍵的類別參數導致了我的 BIN#6 樣本流失。
在預測建模中進行資料探勘的第一步是,假設我有 2000 個資料集,我會將其分為訓練集和驗證集。我們可以在 JMP 預測建模工具中完成這一步驟。我們需要遵循誠實評估建議。 JMP 的預設設定很好,我稍後會向您展示。是的,我們可以依序點擊“分析”、“預測建模”,然後進入“建立驗證集”列。
我想確認一點,由於每個批次有 25 片晶圓,它們現在會一起處理。我希望確保每個批次都有代表晶圓分別用於訓練集和驗證集。我已經使用來源批次(即我的晶圓批次 ID)進行了認證,然後我會點擊「確定」。您可以看到 JMP 中的預設值已經遵循了誠實評估建議,即 75% 用於訓練集,25% 用於驗證集。我不會在這裡運行它,因為我已經創建了驗證列。您可以按照以下步驟產生驗證列,我們將把它用於我們即將演示的模型。
我們回到這裡。記得我之前提到過,我在 Class Probe 中有 150 片晶圓,但我沒有 Unit Probe 的回饋。我不知道 BIN#6 的缺陷是什麼,我很想知道。即使我用 Class Probe 中的這 150 片晶圓做了測試資料集,它們仍然符合誠實評估組的標準,所以我可以繼續了。首先,我將向您展示使用決策樹的分類回應。我們回到 JMP。這是我的數據集。它在“分析預測建模”下。今天我們會多次訪問這裡,它在“請求”下。我們點擊“請求”,您可以看到,是的,我在這裡有決策樹。
這就是我將用於預測模型的方法。我把建立的驗證列放在這裡。我使用 BIN#6 類,它區分好壞。您可以看到,這就是我的 BIN#6 類別。這裡有我的 173 個探針資料。我把它隱藏在這個資料表中,但您可以看到這裡有 173 個。我們點選「確定」。是的,這就是我的決策樹。我已經預先將壞的標記為紅色,好的標記為藍色。我可以先手動示範如何進行劃分。 JMP 會根據好壞之間最顯著的差異進行劃分。這裡顯示的是 RSP+ 的電阻值。如果電阻值高於 148,則壞晶圓的數量比電阻值低於 148 時多得多。這是第一次劃分。 JMP 基金。
我可以繼續做第二個。它找到了 ToxP,如果低於 145,哇,我有很多壞晶圓,這些晶圓可能具有較高的標準化 BIN#6 缺陷,這是由於較高的電阻和較低的病害程度共同造成的。我可以繼續主要做這個,或者我可以先進行下一步,然後我們可以讓 JMP 幫助我進行分片。它在第六次分片後停止了。
我們來看看R²。訓練集的R²約67%,驗證集的R²約60%,還不錯。在BIN#6類別請求旁邊的紅色三角形裡,有一些資訊。我想看看列貢獻值。這可以幫助我了解JMP總結的參數有哪些。除了ISP+和ToxP這兩個參數之外,JMP還找到了另外兩個參數,但它們對BIN#6類別的貢獻值最低。我們關閉這個窗口,最小化JMP窗口,然後回到這裡。這就是我記錄的兩項內容:該模型的R²值和列貢獻值。
我們來看下一個模型。我將展示相同的分類回應,但這次我會使用另一個分區模型,叫做 Bootstrap Forest。打開我的 JMP。好的。依序點擊“分析”、“預測”、“建模”,Bootstrap Forest 就在這裡下方。驗證,我們再來驗證一下。這裡我將進行分類回應,區分好與壞。我的預測變數 Class Probe 位於 X 因子。
假設,好的。 JMP 預設設置,為了簡單起見,我們按照 JMP 的建議,在森林中建立 100 棵樹。我們來看看。它會總結變異性的平均值。它比決策樹更穩定,因為決策樹只有一棵樹。現在,我們有了 100 棵樹的平均值,我們可以在這裡找到 R²。泛化 R² 後,它告訴我:「哇,我的訓練資料集的 R² 可以高達 90%,驗證集的 R² 也有 80%。」你可以看到,在 Bootstrap Forest 中,它確實提高了訓練集和驗證集的 R²。
我們還可以查看列貢獻。電阻器和氧化層厚度再次被突出顯示。除了總共四個參數之外,由於 Bootstrap Forest 運行了 100 棵樹,它提供了更多的參數,但對歸一化的 BIN#6(好壞)的影響卻非常小。我打算保留這個模型,因為它比決策樹表現更好。現在我先將其最小化,然後回到我的演示。我們得到了非常好的 R²,並且有兩個突出顯示的參數。
接下來我們來看連續響應變數。這裡我要示範的是迴歸模型。我們將使用逐步擬合線性迴歸。這是我的數據表。點選“分析”>“擬合模型”。我將使用擬合模型而不是預測模型。這是構建模型的另一種方法。由於我將使用全部 2000 多個數據點來計算相關性,所以這裡沒有地方進行驗證。我們假設要建立迴歸模型。我將使用連續歸一化的 BIN#6 落差作為 Y 變量,並將 Class Probe 173 參數選為模型效應的主效應。
你可以運行二階宏。現在你可以看到這兩個因素之間的交互作用。但這需要很長時間,所以我在這裡就不運行了。我只使用一階模型。由於預測變數很多,我喜歡使用逐步迴歸法。它更穩健。運行模型。同樣,我將遵循 JMP 的建議。我將使用最小 BIC 作為停止規則,並且逐步回歸方向為向前。我們將不斷添加參數,直到獲得一個良好的模型。
您將運行模型。稍等片刻。好的。運行完成後,您可以看到我這裡得到了 R² 和 R² 調整值。大約是 74%,還不錯。這兩個數字非常接近。我們來看看模型。這是我的線性迴歸模型。它確實給出了 ISP+ 值。現在,選取它,但是氧化層厚度,也就是另一個值,有點低。我還有很多其他參數與我的 BIN#6 值有很強的相關性,這些參數對歸一化 BIN#6 損失有貢獻。這是因為我有一個很大的資料集,超過 2000 片晶圓,所以很容易找到相關性。我們先到這裡,然後回到我的 PowerPoint。
這是 R²,它總結了逐步擬合線性迴歸模型中哪些參數比較重要。接下來我要示範的模型是 Bootstrap Forest。這是一個精度很高的模型,因為它也能很好地處理迴歸問題。我們再次打開我的 JMP 檔案。選擇“分析預測模型”和“Bootstrap Forest”。
如果您之前使用過 JMP,您就知道我們可以回溯目前的設定。但我將用歸一化的 BIN#6 損失值(連續因子)來取代分類的 BIN#6 損失值。我將再次遵循 JMP 的建議,在我的森林中使用 100 棵樹。這需要幾秒鐘,但不會太久。我們來看看。歸一化 BIN#6 的 Bootstrap Forest 的結果…哇,我的 R² 值約為 0.977,訓練集的 R² 值達到了 98%。驗證集的 R² 值為 91%。以上結果皆基於我剛才展示的另一個模型——線性迴歸。我將保留這個模型,在繼續之前,我們先來看看它。
列貢獻者。我們有兩個相同的電阻和氧化層厚度,它們已高亮顯示。還有另外兩個值很高的參數,以及許多其他對模型貢獻較小的參數。在這種情況下,如果您想建立一個簡化模型,可以高亮顯示這兩個參數,然後依序點擊“分析”、“擬合模型”,再點擊“巨集”,我喜歡使用回應服務。為什麼呢?因為它可以捕捉到主效應、交互效應和二次效應。
我可以將歸一化的 BIN#6 值設為 Y,由於預測變數不多,我將使用標準化最小平方法進行分析。這就是您可以得到的模型,然後您可以在此基礎上進行簡化。這是一個簡化後的模型,R² 值只有 65%。雖然不錯,但由於預測變數較少,穩定性還可以更高。模型更容易解釋,但由於缺乏 Bootstrap Forest 模型所強調的所有其他參數,偏差會更高。
讓我們回到我的演示。現在,我們已經完成了所有四個模型,接下來我們來看看 R² 的比較。直接比較逐步線性迴歸不太公平,因為它使用的平台不同,也不是訓練集和驗證集的比較,而是 R² 和調整後的 R² 的比較。但你可以看到,我的 Bootstrap Forest 模型在分類資料和迴歸資料上的反應值都非常高,訓練集的反應值超過 90%,驗證集的反應值也最高。我決定將這兩個模型都用於區分好壞的預測,以及 BIN#6 損失的估計。
那麼,我們來看看,我該如何估算呢?我回到這裡,我記得這是我的 Bootstrap Forest 模型,用於區分好壞兩類資料。為了使用預測模型,我點擊紅色三角形並儲存列。我會保存預測公式。你可以很快看到,JMP 給出了壞與好的機率。然後你會說,這裡最有可能的是 BIN#6 類別。
如果你查看我的資料集最底部,你會看到我在建造模型時隱藏了那150片晶圓。但模型產生的方程式適用於這150片晶圓,它預測:「好的,D批次中會有一片晶圓是壞的,就是第1片晶圓,其他的晶圓也是如此。C批次中有很多壞晶圓,A批次也有一些壞晶圓。」這是一種快速告訴我有多少晶圓有風險的方法。但這種方法只能告訴我好壞晶圓的數量。我接下來要看看,如果我知道…
BIN#6 的預計損失是多少?如果能得到這個數值,將有助於我做出正確的決策。這不是我想要的。是這個。我想要的是這個。這是歸一化 BIN#6 損失的 Bootstrap Forest 模型,也就是迴歸模型。類似地,我將向您展示一個紅色三角形並保存預測公式。它會給出歸一化的預測值。讓我來最小化這個值。對於驗證列中待測的 150 片晶圓,我都得到了 BIN#6 損失的預測值。這就是如何在 JMP 中使用預測模型來評估這 150 片晶圓的風險。
最後,我們知道大約有 47 片晶圓會是壞的,這意味著 BIN#6 缺陷率會上升。但這些缺陷都不會達到報廢上限。我們決定:「好吧,我們將這 150 片晶圓全部送去 Uniprobe 檢測,4 週後我們會收到 Uniprobe 的數據,然後評估我們模型的準確性。」我們最終的決定是,我們把這些晶圓送去檢測,因為我們不需要…現在,這些晶圓有報廢風險。此外,我們也不需要重新開始生產,因為預期的 BIN#6 缺陷對晶片整體的影響不足以讓我們大幅增加投入。
我還了解到,導致 BIN#6 出現問題的兩個關鍵參數是什麼。在與我們的領域專家討論後,團隊決定著手解決電阻過高的問題。我們可以進行製程視窗測試,看看能否降低電阻並保持 A 零件的良率。另一個參數 ToxP 是一個批次工藝,可以使用相同的工藝處理不同的零件,因此不適合進行製程變更。團隊決定收緊生產線上的控制限值,以確保 ToxP 的效能穩定。
四周後,我們收到了這150片晶圓的Uniprobe回饋。可以看到,確實有兩個批次的主要BIN#6缺陷率高於四個批次。這是BIN#6缺陷的預測百分比。相關性約71%,還不錯,有助於我做出正確的決策。現在,我已經超過了0.187的標準,但風險並不高。不過,很明顯,有一個批次(批次C)表現異常。我們檢視了實驗室的處理歷史,發現批次C並非標準產品,而是用於製程變更評估。我們必須將其從模型中排除。這樣一來,我們的R²值可以提高到80%。
總而言之,我正在尋找一種預測模型,以幫助我快速做出正確的決策,而不是使用耗時數月才能獲得批次的實驗設計(DOE)。該模型需要能夠處理自相關性,且無需進行大量資料處理,也不會因電腦記憶體限製而受到限制。我們討論的是針對分類資料的預先劃分和Bootstrap Forest,它們擅長處理大型預測變數和大量預測變數。此外,它們也不關心預測變數是否存在自相關性。
我們討論了Bootstrap Forest演算法,它的表現也優於線性迴歸。 Bootstrap Forest可以處理分類和迴歸數據,尤其擅長處理大型預測變數和自相關預測變數。希望這對您有所幫助,並能幫助您使用JMP軟體進行首次預測建模,從而根據數據做出明智的決策。我的演講到此結束。謝謝大家的聆聽。