半導體製造業正處於變革時代的邊緣,而先進的分析技術正是推動這項變革的動力。本次演講將深入探討如何在JMP軟體中應用預測建模和診斷分析,以顯著提升製造成果,尤其是在至關重要的早期分類和等級測試階段。透過利用在半導體生產過程各個階段收集的全面參數數據,我們將著手改進單元級合格/不合格結果的預測,並揭示潛在缺陷的根本原因。
我們的研究重點闡述如何策略性地運用JMP的預測建模功能,以準確預測半導體產品的最終系統級測試狀態。這種方法不僅能夠及早發現問題,還能及時採取糾正措施,確保更高的良率和更優的產品品質。同時,JMP內建的診斷分析功能可以深入挖掘數據,幫助製造商識別並解決複雜生產流程中各種故障的根本原因。
本次演講將展示 JMP 各項功能的實際應用,以闡明它們在簡化半導體製造工作流程中的關鍵作用。了解如何有效運用預測建模和診斷分析來優化生產成果、降低成本並提高產品可靠性。歡迎加入我們,共同探索可望重新定義半導體製造未來的前沿分析策略。
大家早安。我叫徐約翰,我的同事叫蘇拉傑·辛迪亞。我們都來自英特爾公司。眾所周知,英特爾是一家半導體製造公司,我們生產電腦晶片和其他晶片。今天,我們想向大家介紹我們的一項研究成果,題為《利用JMP革新半導體製造測試》。
我們在 JMP 中應用了一些人工智慧方法,以幫助我們進行測試指導的預測建模。我們的預測分為四個部分。第一部分簡要介紹半導體製造業的概況,然後我們將描述我們在 JMP 中使用的基於神經網路和 Boosting 演算法的預測建模方法。
接下來,我們將展示 JMP 的示範案例,介紹如何將測試方法應用於 JMP 的生產測試。我們將詳細介紹 JMP 應用程序,並使用 JMP 神經網路和主成分分析 (PCA)。最後,我們將進行總結和得出結論。
本文概述了半導體技術。半導體產業至關重要,發展日新月異,是現代科技的核心。我們通常將半導體稱為積體電路(IC),它是智慧型手機、電腦、汽車等各種電子設備以及家用冰箱等眾多設備中不可或缺的組成部分。
該行業的特點是創新水平高、資本支出巨大,可能一個晶圓廠的建設成本就高達 100 億美元,而矽市場需求,我們只能說,至少某些與半導體相關的市場領域,例如記憶體、磁珠、快速記憶體或微處理器。
隨著普及程度的提高,人們逐漸認識到電腦中的CPU(中央處理器)。通用積體電路(ICC)就像用於多種設備類型的標準電路,例如汽車或其他設備;而ASIC(專用積體電路)則可能用於交通號誌等類比電路。
接下來,我將簡單概述半導體製造模式。我們可以把公司大致分為三類:整合式元件製造商 (IDM)、無晶圓廠公司和純晶圓代工廠。無晶圓廠公司只負責晶片設計,並不會自行製造晶片。我們稱這類公司為無晶圓廠公司,例如 AMD、英偉達和高通。
此外,有些公司沒有自己的產品,也沒有自己設計的積體電路,而是為其他無晶圓廠公司代工。少數這樣的公司是台積電或代工廠。但也有一些公司,像是英特爾或三星,他們包辦所有環節。
基本上,我們擁有自己的晶片設計,然後自行生產晶片,並建立自己的晶圓廠。之後,我們也會組裝並製造最終晶片,然後將其交付給惠普或戴爾等客戶,由他們負責生產最終用戶的電腦。此外,我們還提供高水準的半導體製造流程。
實際上,半導體製造過程涉及數百個不同的步驟。但這裡只概述了一個大致情況,基本上是從矽晶圓開始的。例如像Seasonic這樣的公司,他們生產矽,並將矽切割成晶圓,然後運送給英特爾。之後,我們再經過許多步驟,最後從晶圓上製造出晶片。
第一步是氧化,也就是在晶圓表面生長一層二氧化矽。然後進行光刻,利用光敏化學物質在晶圓上形成電路圖案。接著進行蝕刻,去除不需要的材料,從而形成所需的圖案。之後進行摻雜,也就是引入雜質來改變矽的電子特性,最後進行沉積。
實際上,我們透過各種技術在晶圓上逐層添加材料。例如,一層一層地疊加。之後,我們會進行電子晶片分類和測試。但今天,我們的研究將重點放在我們稱之為測試的這個過程中。
下一張投影片將詳細介紹我們的測試流程。
謝謝你,約翰。謝謝你,約翰。感謝你對半導體製造流程的概述。正如約翰所示範的,半導體製造流程包含多個階段。測試是整個製程的主要階段,用於驗證晶片的技術性能。在這個階段,所有先前的製造步驟都會進行測試,以檢驗它們是否符合積體電路或晶片的設計要求。
半導體測試主要分為三個階段。第一階段是晶片電氣測試。在這個階段,晶片無需切割即可在晶圓上進行測試。測試中使用晶圓探針(如圖),探測晶片內部節點,測量電壓、電源電流、漏電流等參數。
通過電氣晶片分類測試的單元隨後從晶圓上切割下來並封裝,封裝後的單元看起來或類似於我們大多數人可能在電腦主機板上見過的東西,那些黑色的小部件,集成電路。
這些產品現在已經包裝完畢,並使用數百萬個測試模式進行功能和性能測試。如果一個單元未能通過其中任何一項測試,就會被淘汰。如果它的性能不達標或未達到某個等級的性能閾值,則會被降級並進行性能測試。如果仍然達不到最低等級,則會繼續測試,以達到更低等級,以此類推。如果仍然達不到最低性能等級,則會被淘汰,以此類推。
這是製造測試流程中的第二個主要階段,稱為等級測試或封裝測試。封裝測試階段之後,我們進入一個名為「測試導引」的環節。在這個階段,離線工具會將零件導向三個或更多測試通道中的一個,對晶片進行所謂的最終系統級測試。
這是測試插槽,或者說是最昂貴的測試插槽,封裝好的晶片會被安裝在主機板上,進行高水準的、類似應用場景的測試。
這些測試包括Windows作業系統或Linux作業系統的啟動,以及Chrome瀏覽器等高級應用程序,甚至包括類似JMP的應用程序,這些程序都會在晶片安裝到主機板後運行。這樣做是為了盡可能接近最終用戶的使用體驗。如果晶片通過了系統級測試(即最終系統級測試),則會交付給英特爾的客戶或半導體製造商的客戶。
為什麼需要進行超大規模積體電路(VLSI)測試或積體電路測試?測試對於功能保證至關重要。每個製造出來的晶片都不可避免地有缺陷。製造過程中的每一個環節都可能引入缺陷,因此,在這些製造環節之後,就需要透過測試來剔除這些缺陷零件。
在許多情況下,有缺陷的部件無法使晶片達到其設計的功能,在某些情況下,甚至無法滿足晶片設計的性能要求。
測試在功能保證和性能保證方面都發揮著至關重要的作用。除了缺陷檢測和功能保證之外,測試還有助於良率學習,即改善製造流程。透過測試過程檢測到的任何新增缺陷點都可以用於改進製造工藝,例如,對光刻或蝕刻等工藝進行調整,從而控制製造流程,避免缺陷的產生。
這對於最大限度地提高營業收入和降低成本至關重要,因為良率每提高一個百分點,製造商就能節省大量成本。
半導體測試或超大規模積體電路(VLSI)測試面臨哪些挑戰? VLSI 代表超大規模積體電路,原因是現代微處理器中整合的電晶體數量超過 100 億個。
右側是一張現代微處理器的簡圖,其中單一電晶體的尺寸可以小到奈米級。這就像把一千個電晶體或一千個頭髮絲的組成部分塞進去一樣。
由於需要對每個電晶體進行單獨測試,因此測試成本高且耗時。您可以想像,在這種設計中,要對每個電晶體進行單獨測試,需要多少測試模式。這會產生大量的測試數據,需要分析這些數據來診斷出哪些電晶體有缺陷,並處理這些海量數據以驗證其優劣,以及進行性能表徵,以確定晶片是否符合最高等級標準,或者在交付給客戶之前是否需要將其歸入較低的等級標準。
基於您之前所了解的情況,預測建模在超大規模積體電路(VLSI)測試中的作用現在可以預見了…您不僅有可能大幅節省成本,還有可能從龐大的資料集中挖掘出有用的可操作見解。這種預測建模技術可以透過識別潛在問題,利用極少的測試模式儘早發現缺陷。
透過預測哪些晶片可能通過或失敗,只需少量測試即可完成,無需等到測試的最後階段,從而顯著節省成本和測試時間。預測建模還可以用於完全消除某些測試階段,例如在本案例研究中,我們將消除測試引導階段。在該階段,我們安排了一名測試人員專門負責將晶片分配到多個測試通道之一,以便進行最終的系統級測試。
預測建模可以有效地用於徹底消除某些相關性較高的測試階段。從產量學習和品質提升的角度來看,預測建模具有巨大的改進潛力。因此,在本案例研究中,我們將探討如何使用 JMP 和基於 JMP 訓練的神經網路模型來消除一個名為「測試指導階段」的測試階段。
如果您還記得,在我們從排序到分類、從分類到SLT的三個不同測試階段中,有一個中間測試聽證階段,在這個階段會進行離線測量,以引導部件進入眾多最終系統級測試通道之一。
在本案例研究中,我們設定了三個測試通道,測試時間分別標示為 TT1 至 TT3。其中,TT1 為最長的測試通道,用於測試性能最佳的晶片;TT3 為最短的測試通道,用於測試性能最差的晶片。我們嘗試利用 JMP 的預測模型,將各個晶片分配到對應的測試通道,而不是使用離線測量工具進行 XC2 測量。
我們嘗試利用分類和等級測試階段已獲得的線上測量數據,來預測每個晶片需要進行哪一條測試通道的測試。我們的資料集包含 13,186 個測試單元。在這 13,186 個單元中,每個單元都有 16 個現場測量的感測器訊號。其中 5 個訊號為類別型輸入,11 個訊號為數值型輸入,輸出為 TT1 至 TT3 三個類別值之一。
從圖中可以看出,分佈相當不均勻,TT3 在所有單元中占主導地位,而 TT1 最少,大約有 564 到 10,488 個單元。
X1 到 X5 是分類輸入。它們的類別範圍很廣,從最少的 2 個級別到最多 22 個級別不等。數值輸入 X6 到 X16 的分佈也相當廣泛。例如,X6 的取值範圍最小為 0.01,最大為 1.5。而 X14 的值範圍最大,從零到 2500 以上。因此,這些輸入的分佈相當廣泛。
我們將探討如何在 JMP 中建立基於神經網路的基準模型,利用現場擷取的 16 個輸入訊號來預測這三個類別值之一。為了快速入門,我們將從最簡單的神經網路模型入手,該模型仍能為我們提供一些關於分類準確率的有用資訊。
我們將從一個包含三個神經元的單層神經網路開始。我們將採用五折交叉驗證。學習率設定為 0.1。我們不使用提升演算法,這意味著額外模型的數量設定為零。我們將迭代次數設為 1,這表示在收斂後我們不進行任何增量反向傳播訓練。
對於每個神經元,我們將激活函數設定為雙曲正切函數(Tanh)。現在我們將進入 JMP 來演示模型建構過程。我的數據表在這裡。好的,我現在就分享我的資料表。
好的,我這裡有數據表。您可以看到,這裡顯示的是來自 X1-X16 的輸入數據,以及測試時間平面,也就是 TT1-TT3 這三個值中的一個。現在我們開始進行預測建模。在「分析」下拉式功能表中,您可以找到預測建模選項,然後我們開始神經網路訓練。
對於我們的 X 因子(即輸入),我們將使用 X1-X16。對於 Y 響應,我們將使用 TT Lane。點選“確定”。這將打開神經網路訓練選單。在此選單中,我們將使用 K 折交叉驗證。正如我之前提到的,我們將折數設為 5。
為了確保數字的一致性,我們將使用先前在幻燈片中使用過的隨機種子。第一層將包含三個神經元,這是基線模型。第二層將不包含任何神經元。我們將使用雙曲正切函數(Tanh)作為激活函數。
它本質上是一個 sigmoid 函數。我們不使用 boosting。我們將模型數量設為零,學習率設定為 0.1。現在點擊「開始」按鈕啟動訓練過程。模型正在建造和訓練中,瞧,這是一個簡單的模型。我們很快就建構好了模型。你在這裡看到的是一個相當不錯的廣義 R 平方值。即使對於這個包含 13,000 個單元的資料集,也只有三個神經元。
由於我們使用了 K 折交叉驗證,並將折數設為 5,這意味著在整個資料集中,80% 的資料用於訓練,20% 用於驗證。在此過程中,您會注意到訓練集和驗證集的 R 平方值分別高達 92.9% 和 93%。我們存在一些誤分類。如果您查看混淆矩陣,您可以看到 y 軸代表實際的 TT 車道(即真實值),x 軸代表預測狀態。
本資料集的誤分類率約為 20%,這是最高的誤分類率。神經網路模型將 TT1 預測為 TT2 的機率高達 20%。考慮到我們的需求,理想的誤分類率應為 15% 或更低,但 20% 或更低也是可以接受的。接下來,我們將展示如何進一步降低誤分類率。
現在我們在這裡繪製神經網路圖。可以看到,我們有全部 16 個輸入。第一層有三個神經元。每個神經元都使用雙曲正切函數作為活化函數,輸出為 TT Lane。現在我們將增加模型的複雜度。正如我所說,這是基準模型。現在讓我們增加模型的複雜度,以降低誤分類率。
第一階段我們有三個神經元,第二階段沒有神經元。現在我們將神經元數量增加到兩個。我們仍然不使用提升演算法,並保持學習率不變。學習率是可以調節的,可以根據你希望以犧牲準確率為代價來加快收斂速度的程度進行調整。
如果提高學習率,演算法可能會陷入局部最小值而非全局最小值。雖然收斂速度會更快,但風險也更高,因為這樣更容易陷入局部最小值而非全域最小值。我們可以嘗試不同的懲罰方法。這裡我們主要採用均方誤差平方和。並將迭代次數設為 1。
隨著模型的構建,你會發現我們的 R 平方值已經比基準模型有所提升。如果你還記得的話,基準模型的 R 平方值在 0.92 到 0.93 之間,而我們採用 3x2 矩陣的模型 R 平方值有所提高。誤分類率也從 0.2% 降低到 0.18%,大約降低了 18%。我們可以看一下模型的示意圖。這裡模型分為兩個階段:第一階段有三個神經元,第二階段有兩個神經元。
現在我們繼續增加模型複雜度,看看這會如何改變誤分類率。增加模型複雜度時需要注意的一點是,要避免模型過度擬合資料而失去泛化能力。但當模型樣本量達到 13,000 個時,我們將檢視這會產生多少參數。
你會注意到,隨著模型中神經元數量的增加,訓練週期也會延長。這裡我們給了模型複雜度增加後的廣義R平方值。正如你所看到的,並非總是透過簡單地增加模型參數就能提高準確率。原因正如我之前提到的,這會導致過度擬合的風險。
如您所見,R平方值分別為0.937和0.936,略高於3×2網絡,但差距不大。您還會看到,隨著複雜度的增加,誤分類率實際上略有下降。如圖所示,如果我們繪製圖表,第一階段有五個神經元,第二階段有七個神經元。
並非模型複雜度的增加總是能帶來更低的誤分類率。這時就需要運用智慧調優技術,例如提升演算法(boosting)以及模型參數與提昇演算法的結合,來提高準確率。現在,假設我們已經達到了一定的準確率和誤分類率,我們將探討如何降低輸入複雜度。
我們目前使用了 16 個輸入。在這種情況下,如何減少輸入數量以保持相同的準確率?正如我之前提到的,我們增加了模型的複雜度,但導致誤分類準確率略有下降。如何透過減少輸入數量來改善模型的過度擬合問題?這時 JMP 就派上用場了,我們可以使用 JMP 中提供的多元主成分分析方法來建立輸入數量較少的模型。
現在,我們將從現有的輸入資料集中選擇主成分,並選取使誤差最小的主成分數量。如您所見,我們的輸入資料為 X1 到 X16。我們只選擇數值型輸入,因為對於主成分分析,JMP 只能分析數值型輸入。
如您所見,我們得到了資料集的11個主成分。但每個新增的主成分所捕獲的輸入變異數都會減少。我們可以繪製碎石圖來觀察主成分分析的拐點位置,如您所見,拐點大約出現在兩個主成分處。實際上,絕大部分變異數僅由這兩個主成分捕獲。
但我們也不妨繪製一下特徵值的增量累積分佈函數 (CDF)。如您所見,僅六個特徵向量或六個主成分就捕獲了大約 90% 的輸入變異數。現在,我們將使用這六個主成分,並結合分類輸入資料進行神經網路訓練。如果您還記得,當我們啟動主成分分析工具時,JMP 只接受數值輸入,不接受分類輸入。
對於我們的神經網絡,我們需要補充分類數據,並使用我們選擇的主成分來建立網路。現在我們回到之前的數據表。我已經保存了本次分析的主成分。我們將選擇這些主成分,然後再次建立我們的神經網路模型。
我生成了六個主成分。我將它們保存為輸入,然後用 X1-X5 作為其他輸入進行補充。我仍然希望 TT Lane 作為我的 Y 響應或輸出。我使用相同的 K 折交叉驗證和隨機種子。第一層使用三個神經元,第二層使用兩個神經元。
我們擁有的增量模型數量為零,這意味著最初不進行任何提升。然後我們將使用提升演算法進行測試。現在點擊“開始”。你會注意到我使用了相同的折數,即 20% 的資料用於驗證,80% 的資料用於訓練。
好了,準備好了嗎?我們注意到,目前的準確率與使用全部16個輸入時基本相同。首先要檢查的是,現在我們只有11個輸入:六個主成分和五個類別。我們使用的是神經網絡,一個3×2的神經網路。誤分類率相當不錯,與使用全部11個輸入以及更複雜的5×7網路時的結果基本一致。
接下來我們該怎麼做?現在,讓我們增加模型中的神經元數量,看看這會如何降低誤分類率。隨著模型複雜度的增加,訓練時間也會延長。你會注意到,當我引入提升演算法(boosting)時,訓練時間會更長。
現在你會看到,使用 7x5 網路後,我們的準確率提高了,這是因為我們減少了輸入。這似乎有悖常理。減少輸入有時反而會提高準確率,這是因為模型複雜度的選擇會影響準確率。
這就是我們從中得出的重要結論,或者說重要的見解。現在,如果我們進一步分析…讓我們看一下圖表。正如我所說,我們有六個主成分和五個分類輸入。模型複雜度增加了七乘五的網路。
現在,我們來做提升操作。讓我們輔助提升。關於 JMP,需要記住的一點是,提升操作只作用於第一層,這意味著 JMP 會忽略第二層中指定的任何數量的神經元。提升操作只使用第一層的神經元。
現在第一層將沒有神經元,提升率設為 5,第一層神經元數量為 3。提升是指收斂後預測值與輸入值之間的誤差。每次模型提升都會最小化目標預測值與真實值之間的誤差率。在這種情況下,我們總共有 15 個神經元。
接下來,我們將示範提升演算法。模型會根據您在此處選擇的模型數量進行縮放。在本例中,我們選擇 5 作為縮放因子,用於調整第一階段的神經元數量。最終模型將包含 15 個神經元,這是針對訓練資料集進行的 5 折交叉驗證。現在我們將查看擬合後的模型。之後,我們將結束本次演示。
正如我之前提到的,使用 Boosting 會延長訓練時間。現在,正如你所看到的,由於我們只使用了一層 Boosting,我們的 R 平方值相比 5x7 網路有所下降,但它仍然優於我們最初建立的基線模型。這裡展示的是基準模型與 5 折交叉驗證結果的比較。
如您所見,這裡展示了提升後的模型。這是提升後的模型與基準模型的比較。準確率也在這裡。提升後的模型和基準模型的準確率非常接近。
現在我們結束演示。讓我們回到幻燈片。好的,我們回到幻燈片。正如您所看到的,我們訓練了基線模型。然後,我們透過主成分分析 (PCA) 降低了輸入複雜度。我們選擇了六個主成分,並補充了分類資料 X1-X5,然後訓練了我們的神經網路。
輸入。減少輸入可以提高準確率。關鍵在於,模型複雜度的增加並不一定意味著模型準確度的提升。但減少輸入複雜度確實有助於提高準確度。然後,我們展示了碎石圖,並選擇了六個神經元或六個基底向量作為主成分進行訓練。
這是我們今天跳過的另一個例子,它只包含分類輸入。正如你所看到的,準確率大幅下降,這意味著你不能無限降低輸入複雜度,否則只會導致模型準確率降低。
然後我們選擇了一個 5 級的提升層數。在這種情況下,我們使用的是 2 級提升,包含 3 個神經元。正如你所看到的,當我們把提升層數從 2 增加到 5 時,誤分類率和 R 平方值都有所改善。
我們可以對這些網路進行比較。雖然我們建立了許多模型,但我只比較了最終使用的三個主要模型。對我們來說,一個簡單的兩層神經網絡,提升係數為 5,包含六個主成分和五個輸入,就達到了我們預期的準確率閾值。
在每種情況下,您都需要仔細檢查應用程式的特定精度要求。然後,在嘗試調整訓練參數、模型複雜度和輸入複雜度之後,謹慎地選擇模型。在今天的示範中,我們探討如何在 JMP 中使用神經網路模型來實現我們的目標應用,即積體電路的自適應測試控制。
我們研究了不同的預測模型。我們建構了一個簡單的神經網絡,以及一個基於主成分分析的神經網絡。我們也研究了結合主成分分析和提升演算法的神經網路。我們從所需額外測試資源的角度展示了這些改進。
在這種情況下,我們利用特定類別測試階段已完成的C2測量資料來預測系統級測試流程,從而省去了XC2測量工具的費用,而該工具每台機器的成本可能高達10萬美元。這種測試成本的降低可以透過簡單的雙層神經網路來實現。
我必須提一下,在 JMP 的使用者介面中,只能訓練兩層神經網絡,但您可以使用 JSL 擴展神經網路的複雜性,在 JSL 中您可以自訂並建立更深層的神經網絡,以滿足處理大型資料集的高端應用的需求。今天的演講就到這裡。謝謝聆聽。