国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

線程耗時對程序時序的影響分析

2022-10-08 12:40:08高榮榮鄭佳晶付純鶴
電子工業(yè)專用設備 2022年4期
關鍵詞:片晶待處理晶圓

高榮榮,張 葉,鄭佳晶,付純鶴

(中國電子科技集團公司第四十五研究所,北京100176)

隨著芯片集成度和工藝復雜性的提高,對于半導體代工廠(FAB)來說,生產設備的性能直接影響到成本和利潤,因此生產設備性能提升一直是半導體代工廠最為關注的問題之一[1]。對于生產線上的設備而言,不僅要滿足復雜工藝的適應性問題,還需不斷提高設備的生產效率和穩(wěn)定性。這些因素對設備軟件的流程控制提出了更高的挑戰(zhàn)和要求。

1 軟件方案設計

1.1 軟件介紹

半導體設備軟件的功能是指揮設備各個硬件協同工作,使其按照工藝要求穩(wěn)定運行。以半導體設備為例,為降低各模塊之間的耦合度,將軟件分為流程調度層和設備分控層。流程調度層主要負責業(yè)務流程的調度,即指揮各個分控層在正確的時間內執(zhí)行正確的動作;設備分控層主要是控制硬件執(zhí)行相應的動作。

流程控制時,常用多線程并行方式,充分利用計算機系統資源,從而加快系統工作效率[2]。

1.2 流程調度層軟件設計

半導體工藝過程中,將使用同一工藝參數的晶圓處理定義為一批。將批處理晶圓的數量定義為批大小。流程調度分為批調度和批隊列調度。批隊列調度是以批為單位,調度批的啟動和結束;批調度是以晶圓為單位,調度各個環(huán)節(jié)的晶圓處理。晶圓處理過程包括加載晶圓、工藝處理、卸載晶圓/交換晶圓。晶圓的加載、交換、卸載動作異步執(zhí)行,在設備分控層實現,通過事件觸發(fā)的方式與批流程進行交互,批處理流程如圖1所示。

圖1 批處理流程圖

批隊列的啟停由界面觸發(fā),與隊列中批的個數無關,即隊列為空時,仍可啟動批隊列。批隊列啟動后,若隊列不為空,則隊列中的首批被啟動,批隊列調度流程如圖2所示。

圖2 批啟動流程圖

2 異常現象及分析

2.1 異常場景

定義多個大小為2的批,并啟動批隊列,正常情況下,批隊列中的批按順序執(zhí)行,第一批的第一片晶圓被加載到工位,第二片晶圓及其它批的晶圓被交換到工位,每個晶圓在工位均需做工藝處理。出現的偶發(fā)異?,F象為,第一批的第一片晶圓正常執(zhí)行,第二片晶圓只被傳輸,未被工藝處理。查看異常日志,發(fā)現異常批的加載晶圓動作執(zhí)行了2次,交換晶圓動作執(zhí)行了1次,卸載晶圓執(zhí)行了1次。

2.2 異常分析

在批生產過程中,晶圓傳輸的動作執(zhí)行結果通過事件WaferStateEvenet與批流程進行交互,事件WaferStateEvenet為自動觸發(fā)機制(AutoResetEvent)。事件的信號只允許單一狀態(tài)改變,獨占訪問,即使多線程設置為并行,每次也只能觸發(fā)1次待處理(WaitOne)信號。

異常流程中,批啟動的線程被啟動了2次,即一個批對象被線程1和線程2同時控制。根據日志分析,發(fā)現批的首片晶圓加載動作執(zhí)行了2次,則說明事件待處理信號(WaitOne)被執(zhí)行了2次,首片晶圓加載晶圓操作執(zhí)行完成后,事件被設置(Set),由于資源搶占的原因,只有線程1的待處理信號(WaitOne)被觸發(fā),線程2的待處理信號(WaitOne)繼續(xù)等待。

晶圓進入工藝處理階段,處理完成后,進入交換晶圓操作,線程1的待處理信號(WaitOne)被執(zhí)行。交換晶圓執(zhí)行完成后,首片晶圓被卸載,第二片晶圓被加載,事件被設置(Set),被線程2的待處理信號(WaitOne)搶占資源,線程2執(zhí)行首片晶圓加載完成后的邏輯,由于此時首片晶圓的狀態(tài)為已處理,則線程2執(zhí)行卸載晶圓操作,線程2的事件待處理信號(WaitOne)被執(zhí)行。

卸載晶圓操作將批處理的第二片晶圓從工件臺上卸載,執(zhí)行完成后,事件被設置(Set),被線程1的待處理信號(WaitOne)搶占到資源,進入交換晶圓結束的后續(xù)邏輯,線程1根據第二片(批的最后一片)晶圓狀態(tài)判斷該晶圓工藝結束且被卸載,進入批結束狀態(tài)(Complete),線程1結束,批對象被釋放。

通過以上分析,發(fā)現該批只有首片晶圓被處理,第二片晶圓被加載,但是未被工藝處理,批處理屬于異常結束。

2.3 因果驗證

啟動批處理線程的代碼如下所示:因是線程啟動,標志位IsCurrentLotStart被置為true后,被外部置為false,循環(huán)檢測時,發(fā)現批滿足啟動條件而未啟動,再次啟動批處理線程。

批處理線程由批隊列管理,批隊列的線程啟動代碼如下:

批隊列線程啟動成功分兩步,第一步是開辟ScanJobTask運行空間,第二步是啟動線程,兩步執(zhí)行完成后,ScanJobTask開始工作,即開始循環(huán)檢測批狀態(tài),并啟動批。C#代碼的Thread.Start內部執(zhí)行完線程啟動功能后,還需置線程狀態(tài),需要消耗時間。若置線程狀態(tài)的時間大于ScanJobTask開辟運行空間的時間,則ScanJobTask啟動批在先,隊列置concurrentQueue[0]狀態(tài)在后。即批處理線程啟動后,標志位狀態(tài)IsCurrentLotStart被隊列置為false,下一次循環(huán)時,根據標志位狀態(tài)判斷該批未啟動,對批處理進行了第二次啟動。

由于代碼執(zhí)行過程中的運行時間跟當前PC機的內存占用率有關,在特定的時間內,會出現線程啟動時,線程啟動時間開銷大于ScanJobTask開始循環(huán)的時間,所以批異常為偶發(fā)現象。

2.4 解除異常

從批線程標志位著手,解決批線程重復啟動的根本原因。調整批隊列線程啟動順序,先置狀態(tài),后創(chuàng)建線程,可避免因時間差原因而導致批異常,代碼如下所示:

3 結束語

半導體設備軟件中,經常將復雜的流程進行解耦,用不同的線程執(zhí)行不同的控制流程。這種多線程并行的方式,減少了CPU周期的浪費,提高了應用程序的執(zhí)行效率,從軟件層面提高了設備的性能和產率。但是在使用多線程時,要考慮線程開銷問題,將線程狀態(tài)標志位前置,避免時間差問題引起時序錯亂,而導致程序運行異常。

猜你喜歡
片晶待處理晶圓
改進型晶圓預對準算法
半導體制造領域的晶圓預對準系統綜述
聚乙烯醇連續(xù)自成核退火實驗研究
安徽化工(2022年5期)2022-09-28 05:25:44
基于片晶滑移的水樹結晶破壞機理
財產清查結果的賬務處理
“待處理”事項在科學事業(yè)單位的核算探討
會計之友(2018年4期)2018-02-02 22:05:21
政府會計核算中待處理財產損溢賬戶應用探究
金融經濟(2017年14期)2017-12-23 14:52:09
基于圖像處理的晶圓表面缺陷檢測
熱處理條件對聚丙烯流延基膜取向片晶結構及拉伸成孔性的影響
中國塑料(2015年2期)2015-10-14 05:34:27
超薄晶圓的貼膜研究
高邑县| 保靖县| 丹凤县| 西畴县| 禹城市| 农安县| 贵阳市| 绥滨县| 蒙自县| 本溪市| 新干县| 桓台县| 忻城县| 福泉市| 堆龙德庆县| 巴彦县| 丰顺县| 宕昌县| 南部县| 柯坪县| 新蔡县| 曲阜市| 湘乡市| 营口市| 延川县| 景德镇市| 上蔡县| 宽城| 合阳县| 福州市| 理塘县| 大洼县| 河南省| 梁河县| 鄯善县| 阳曲县| 江山市| 长宁区| 鄂伦春自治旗| 遂昌县| 峨边|