專利名稱:并行化仿真多線程管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域和集成電路裝備領(lǐng)域,特別涉及一種基于設(shè)備控 制軟件的面向半導(dǎo)體制造裝備功能仿真的并行化仿真多線程管理方法。
背景技術(shù):
隨著集成電路芯片集成度的不斷提升和芯片功能的不斷提高,人們對(duì)工藝的要求 越來(lái)越高,這對(duì)半導(dǎo)體制造裝備是一個(gè)巨大的挑戰(zhàn)。在半導(dǎo)體制造裝備的研究、開發(fā)和測(cè)試 工作中,包括硬件和軟件的研發(fā)。而所開發(fā)軟件中絕大部分是設(shè)備控制軟件,這些軟件在進(jìn) 行測(cè)試時(shí),需要首先在仿真環(huán)境下進(jìn)行驗(yàn)證,而單純?yōu)槟骋粋€(gè)項(xiàng)目開發(fā)軟件測(cè)試平臺(tái)不僅 耗時(shí)過大而且可重用性很差,為了提高軟件測(cè)試的效率和準(zhǔn)確定位系統(tǒng)所存在問題,迫切 需要一個(gè)通用的軟件測(cè)試平臺(tái)系統(tǒng)。它需要提供各項(xiàng)目使用的所有硬件的仿真程序,使開 發(fā)出來(lái)的軟件能在此基礎(chǔ)之上運(yùn)行,從而進(jìn)行測(cè)試。仿真平臺(tái)的使用,能夠準(zhǔn)確測(cè)試設(shè)備 控制系統(tǒng)軟件,可以減少控制系統(tǒng)軟件執(zhí)行與集成電路制造工藝過程的失敗,能解決集成 電路工藝設(shè)備的工藝穩(wěn)定性,工藝可靠性,減少設(shè)備維修時(shí)間,最大程度的提高設(shè)備的利用 率。在實(shí)際的半導(dǎo)體制造裝備中,很多信息的交互,設(shè)備的行為,參數(shù)的改變等等都是 在同一時(shí)間同步并行完成的,而對(duì)于半導(dǎo)體仿真平臺(tái)而言,要做到這點(diǎn)必須運(yùn)用并行的多 線程機(jī)制才能實(shí)現(xiàn)。所謂多線程,是在計(jì)算機(jī)編程中,一個(gè)基本的概念就是同時(shí)對(duì)多個(gè)任務(wù)加以控制。 許多程序設(shè)計(jì)問題都要求程序能夠停下手頭的工作,改為處理其他一些問題,再返回主進(jìn) 程??梢酝ㄟ^多種途徑達(dá)到這個(gè)目的。最開始的時(shí)候,那些掌握機(jī)器低級(jí)語(yǔ)言的程序員編 寫一些“中斷服務(wù)例程”,主進(jìn)程的暫停是通過硬件級(jí)的中斷實(shí)現(xiàn)的。盡管這是一種有用的 方法,但編出的程序很難移植,由此造成了另一類的代價(jià)高昂?jiǎn)栴}。中斷對(duì)那些實(shí)時(shí)性很強(qiáng) 的任務(wù)來(lái)說是很有必要的。但對(duì)于其他許多問題,只要求將問題劃分進(jìn)入獨(dú)立運(yùn)行的程序 片斷中,使整個(gè)程序能更迅速地響應(yīng)用戶的請(qǐng)求。最開始,線程只是用于分配單個(gè)處理器的 處理時(shí)間的一種工具。但假如操作系統(tǒng)本身支持多個(gè)處理器,那么每個(gè)線程都可分配給一 個(gè)不同的處理器,真正進(jìn)入“并行運(yùn)算”狀態(tài)。從程序設(shè)計(jì)語(yǔ)言的角度看,多線程操作最有 價(jià)值的特性之一就是程序員不必關(guān)心到底使用了多少個(gè)處理器。程序在邏輯意義上被分割 為數(shù)個(gè)線程;假如機(jī)器本身安裝了多個(gè)處理器,那么程序會(huì)運(yùn)行得更快,毋需作出任何特殊 的調(diào)校。根據(jù)前面的論述,大家可能感覺線程處理非常簡(jiǎn)單。但必須注意一個(gè)問題共享資 源!如果有多個(gè)線程同時(shí)運(yùn)行,而且它們?cè)噲D訪問相同的資源,就會(huì)遇到一個(gè)問題。舉個(gè)例 子來(lái)說,兩個(gè)進(jìn)程不能將信息同時(shí)發(fā)送給一臺(tái)打印機(jī)。為解決這個(gè)問題,對(duì)那些可共享的資 源來(lái)說(比如打印機(jī)),它們?cè)谑褂闷陂g必須進(jìn)入鎖定狀態(tài)。所以一個(gè)線程可將資源鎖定, 在完成了它的任務(wù)后,再解開(釋放)這個(gè)鎖,使其他線程可以接著使用同樣的資源。多線 程是為了同步完成多項(xiàng)任務(wù),不是為了提高運(yùn)行效率,而是為了提高資源使用效率來(lái)提高 系統(tǒng)的效率。線程是在同一時(shí)間需要完成多項(xiàng)任務(wù)的時(shí)候?qū)崿F(xiàn)的。
發(fā)明內(nèi)容
本發(fā)明的目的旨在至少解決上述的技術(shù)缺陷,提出了一種基于設(shè)備控制軟件的面 向半導(dǎo)體制造裝備功能仿真的并行化仿真多線程管理方法。為達(dá)到上述目的,本發(fā)明一方面提出了一種面向半導(dǎo)體制造裝備功能仿真的并行 化仿真多線程管理方法,包括以下步驟將所有通訊方式實(shí)例為通訊對(duì)象分別用一個(gè)線程 承載,且托付給相應(yīng)的設(shè)備對(duì)象;對(duì)所述所有通訊對(duì)象的接收和發(fā)送方法進(jìn)行多線程管理; 將所有設(shè)備類實(shí)例為設(shè)備對(duì)象分別托付給相應(yīng)的子系統(tǒng)對(duì)象;對(duì)所述設(shè)備對(duì)象命令的解 析,動(dòng)作的執(zhí)行,條件的判斷進(jìn)行多線程管理;將所有子系統(tǒng)類實(shí)例為子系統(tǒng)對(duì)象分別托付 給相應(yīng)的系統(tǒng)對(duì)象;和對(duì)所述子系統(tǒng)對(duì)象包括的所述設(shè)備對(duì)象之間的邏輯關(guān)系進(jìn)行多線程 管理。在本發(fā)明的一個(gè)實(shí)施例中,所述將所有通訊方式實(shí)例為通訊對(duì)象分別用一個(gè)線程 承載,且托付給相應(yīng)的設(shè)備對(duì)象,還包括所述不同的通訊對(duì)象有不同的通訊參數(shù)。在本發(fā)明的一個(gè)實(shí)施例中,所述對(duì)所述所有通訊對(duì)象的接收和發(fā)送方法進(jìn)行多線 程管理,進(jìn)一步包括所述通訊對(duì)象的接收和發(fā)送方法是唯一的;所述接收和發(fā)送方法為 一個(gè)互斥段,且同一時(shí)刻擁有互斥對(duì)象的線程具有訪問資源的權(quán)限;所述當(dāng)前具有訪問資 源的權(quán)限的線程在任務(wù)處理完后將所述互斥對(duì)象交出,以為其它線程使用。在本發(fā)明的一個(gè)實(shí)施例中,所述互斥段為lock標(biāo)記,所述lock把某一代碼定義為 互斥段,其中,所述互斥段在一個(gè)時(shí)刻內(nèi)只允許一個(gè)線程進(jìn)入執(zhí)行。在本發(fā)明的一個(gè)實(shí)施例中,所述將所有設(shè)備類實(shí)例為設(shè)備對(duì)象分別托付給相應(yīng)的 子系統(tǒng)對(duì)象,還包括解析所述通訊對(duì)象的各種信息;和分析所述設(shè)備對(duì)象的一些屬性行 為,以及根據(jù)所述各種信息執(zhí)行的相關(guān)動(dòng)作。在本發(fā)明的一個(gè)實(shí)施例中,對(duì)所述設(shè)備對(duì)象命令的解析,動(dòng)作的執(zhí)行,條件的判斷 進(jìn)行多線程管理,進(jìn)一步包括保證某段代碼在執(zhí)行的時(shí)候以某一設(shè)備線程獨(dú)占的方式執(zhí) 行;在所述某一設(shè)備線程獨(dú)占的方式執(zhí)行時(shí),如果有另外的設(shè)備線程訪問所述代碼則會(huì)被 暫停,直到獨(dú)占的代碼執(zhí)行完畢。在本發(fā)明的一個(gè)實(shí)施例中,所述將所有子系統(tǒng)類實(shí)例為子系統(tǒng)對(duì)象分別托付給相 應(yīng)的系統(tǒng)對(duì)象,其中,所述子系統(tǒng)還用于協(xié)調(diào)所述設(shè)備對(duì)象之間的操作。在本發(fā)明的一個(gè)實(shí)施例中,所述對(duì)所述子系統(tǒng)對(duì)象包括的所述設(shè)備對(duì)象之間的邏 輯關(guān)系進(jìn)行多線程管理,進(jìn)一步包括每一個(gè)設(shè)備線程表示為一個(gè)信號(hào)量;多個(gè)所述設(shè)備 線程同時(shí)使用共享資源,且標(biāo)出同時(shí)訪問共享資源的所述設(shè)備線程最大數(shù)目;子系統(tǒng)層在 創(chuàng)建所述信號(hào)量時(shí)指出允許的最大資源計(jì)數(shù)和當(dāng)前可用資源計(jì)數(shù);線程在處理完共享資源 后,應(yīng)在離開的同時(shí)將當(dāng)前可用資源計(jì)數(shù)加1。在本發(fā)明的一個(gè)實(shí)施例中,在任何時(shí)候所述當(dāng)前可用資源計(jì)數(shù)不能大于所述最大 資源計(jì)數(shù)。本發(fā)明的方法主要完成靈活管理仿真系統(tǒng)內(nèi)共享內(nèi)存和消息傳遞的各線程之間 的操作,避免線程之間共享資源時(shí)造成的線程沖突,使系統(tǒng)能夠清晰流暢的運(yùn)行,并能最大 限度的節(jié)約開啟線程所使用的系統(tǒng)資源。且具有準(zhǔn)確性、實(shí)時(shí)性的特點(diǎn),可以與其他相關(guān)的 系統(tǒng)以及一個(gè)完整的半導(dǎo)體制造裝備功能仿真平臺(tái)配合使用。
5
本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本發(fā)明的實(shí)踐了解到。
本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變 得明顯和容易理解,其中圖1為本發(fā)明仿真系統(tǒng)并行化線程層次框圖舉例;圖2為本發(fā)明協(xié)議層的線程處理流程圖;圖3為本發(fā)明設(shè)備線程模塊;和圖4為本發(fā)明子系統(tǒng)層線程模塊。
具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。該面向半導(dǎo)體制造裝備功能仿真的并行化仿真多線程管理方法主要是實(shí)現(xiàn)在一 個(gè)仿真系統(tǒng)中各線程之間并行化運(yùn)行的管理機(jī)制,簡(jiǎn)單來(lái)說,就是使系統(tǒng)內(nèi)各個(gè)設(shè)備在接 收消息和執(zhí)行行為時(shí)能夠同時(shí)同步的執(zhí)行,在同時(shí)同步執(zhí)行期間,不會(huì)產(chǎn)生任何操作之間 的沖突。當(dāng)然,必要的操作等待時(shí)間是存在的。該面向半導(dǎo)體制造裝備功能仿真的并行化仿真多線程管理方法是只針對(duì)半導(dǎo)體 制造裝備功能仿真平臺(tái)使用的,前提是建立在已經(jīng)完成的功能仿真平臺(tái)上的,我們將該系 統(tǒng)運(yùn)用到已經(jīng)開發(fā)完成的一套的半導(dǎo)體制造裝備功能仿真平臺(tái)上,但是考慮到將來(lái)的開發(fā) 和發(fā)展,需要做到通用性和可擴(kuò)展的要求,方便用戶的操作和使用,也便于和其他廠商或自 身其他產(chǎn)品兼容。在面向半導(dǎo)體制造裝備功能仿真的并行化仿真多線程管理方法的實(shí)現(xiàn)過程中,完 全是按照仿真平臺(tái)的層次來(lái)搭建的。由于仿真平臺(tái)分為了協(xié)議層,設(shè)備層,系統(tǒng)層3個(gè)層 次,在每個(gè)層次中都建立一套并行化仿真多線程機(jī)制,便于對(duì)個(gè)層次線程并行化的管理和 操作,由于該套管理方法和系統(tǒng)都是在后臺(tái)執(zhí)行的,因此沒有可視化界面給用戶操作,但是 考慮到將來(lái)的開發(fā)和兼容性問題,預(yù)留出了程序接口函數(shù)便于再次開發(fā)。當(dāng)然,在實(shí)際系統(tǒng)中,會(huì)分為若干個(gè)子系統(tǒng),而這些子系統(tǒng)又包含了若干種設(shè)備, 這些設(shè)備的通訊方式也有若干種,在實(shí)際運(yùn)行時(shí),所有的通訊方式、設(shè)備以及子系統(tǒng)都是同 步運(yùn)行,并行的實(shí)時(shí)執(zhí)行操作的,仿真平臺(tái)為了滿足這個(gè)要求,我們分別對(duì)每個(gè)子系統(tǒng)、子 系統(tǒng)包含的設(shè)備和設(shè)備需要使用的協(xié)議都單獨(dú)運(yùn)用一個(gè)線程來(lái)運(yùn)行仿真,以保證和實(shí)際系 統(tǒng)相接近。具體地,在本發(fā)明的一個(gè)實(shí)施例中,面向半導(dǎo)體制造裝備功能仿真的并行化仿真 多線程管理方法的并行化線程層次框圖如圖1所示,圖1為本發(fā)明仿真系統(tǒng)并行化線程層 次框圖舉例。針對(duì)每一層來(lái)說,每個(gè)線程里面還會(huì)包含了新的線程關(guān)系,例如對(duì)于一個(gè)設(shè)備線 程,當(dāng)設(shè)備接收到不同的控制命令時(shí),需要執(zhí)行各種不同的行為,這些行為也是由線程控制并統(tǒng)一管理的,為了盡量的接近實(shí)際設(shè)備的情況,在設(shè)計(jì)的時(shí)候考慮了多線程的并行化實(shí) 現(xiàn)。由前面可知,該管理方法以系統(tǒng)分為了協(xié)議層、設(shè)備層、子系統(tǒng)層3層來(lái)分別管 理,但是在每一層之間都會(huì)有上下傳遞消息的接口用來(lái)系統(tǒng)內(nèi),避免各層之間的脫節(jié),下面 分別做詳細(xì)介紹。在本發(fā)明的實(shí)施例中,協(xié)議層線程管理對(duì)于整個(gè)系統(tǒng)而言,協(xié)議層是系統(tǒng)的最底 層,它是系統(tǒng)與外界通信的關(guān)鍵層次,在協(xié)議層中,會(huì)不停的出現(xiàn)接收和發(fā)送事件以及無(wú)數(shù) 的通訊信息,如果不能實(shí)時(shí)準(zhǔn)確的處理好這些邏輯,仿真平臺(tái)就不能實(shí)現(xiàn)該有的功能。因 此,采用了一種多線程并行的管理方法來(lái)實(shí)現(xiàn)。首先,將通訊類實(shí)例成一個(gè)個(gè)的對(duì)象交給上層的設(shè)備,簡(jiǎn)單來(lái)說就是該設(shè)備對(duì)象 需要什么通訊方式,就將該通訊方式的實(shí)例用一個(gè)線程承載,托付給該設(shè)備對(duì)象,這樣就如 同實(shí)際設(shè)備一樣,不同的仿真設(shè)備能在同一時(shí)間并行的接收和發(fā)送信息,避免了上層仿真 設(shè)備線程同時(shí)訪問一個(gè)通訊對(duì)象,發(fā)生沖突。前提是這些通訊類對(duì)象需要有不同的通訊參 數(shù),如果通訊參數(shù)相同則會(huì)出現(xiàn)通訊沖突。在每一個(gè)通訊對(duì)象中,所做的主要工作就是按照協(xié)議格式在設(shè)備與控制系統(tǒng)或者 設(shè)備與設(shè)備之間接收和發(fā)送各種信息,當(dāng)設(shè)備在同一時(shí)間接受或者發(fā)送命令的時(shí)候就會(huì)出 現(xiàn)沖突,因此對(duì)接收和發(fā)送的方法采用了一種線程管理方法。如圖2所示,為本發(fā)明協(xié)議層 的線程處理流程圖。每個(gè)線程都有自己的資源,但是代碼區(qū)是共享的,即每個(gè)線程都可以執(zhí)行相同的 函數(shù)。但是多線程環(huán)境下,可能帶來(lái)的問題就是幾個(gè)線程同時(shí)執(zhí)行一個(gè)函數(shù),導(dǎo)致數(shù)據(jù)的混 亂,產(chǎn)生不可預(yù)料的結(jié)果,因此必須避免這種情況的發(fā)生。C#提供了一個(gè)關(guān)鍵字lock,它可 以把一段代碼定義為互斥段(critical section),互斥段在一個(gè)時(shí)刻內(nèi)只允許一個(gè)線程進(jìn) 入執(zhí)行,而其他線程必須等待。更為具體地在每一個(gè)通訊實(shí)例中,接收和發(fā)送方法是唯一的,當(dāng)不同的接收和發(fā) 送線程同時(shí)調(diào)用接收和發(fā)送方法時(shí),就需要保證在某一時(shí)刻只有一個(gè)線程能訪問數(shù)據(jù)。接 收和發(fā)送方法就是一個(gè)互斥段,只有擁有互斥對(duì)象的線程才具有訪問資源的權(quán)限,由于互 斥對(duì)象只有一個(gè),因此就決定了任何情況下此共享資源都不會(huì)同時(shí)被多個(gè)線程所訪問。當(dāng) 前占據(jù)資源的線程在任務(wù)處理完后應(yīng)將擁有的互斥對(duì)象交出,以便其他線程在獲得后得以 訪問資源。因?yàn)槭褂没コ獠粌H僅能夠在同一應(yīng)用程序不同線程中實(shí)現(xiàn)資源的安全共享,而 且可以在不同應(yīng)用程序的線程之間實(shí)現(xiàn)對(duì)資源的安全共享。因?yàn)楫?dāng)接收線程接收到一個(gè)信 息之后,會(huì)馬上將該信息傳遞到通往上層的接口處,然后釋放掉了該線程,發(fā)送也是相同的 操作,是個(gè)很短暫的過程,因此在接收和發(fā)送的時(shí)候不會(huì)出現(xiàn)太大的延遲狀況甚至丟失信 息的情況。在本發(fā)明的實(shí)施例中,設(shè)備層線程管理對(duì)于設(shè)備層而言,是整個(gè)仿真平臺(tái)的靈魂 所在,需要在軟件層次模擬出實(shí)際設(shè)備的種種行為。在設(shè)備層,不但需要解析協(xié)議層傳遞過 來(lái)的各種信息,還有自己本身的一些屬性行為以及根據(jù)信息執(zhí)行的相關(guān)動(dòng)作。對(duì)于如此繁 雜的邏輯,也采用一種多線程機(jī)制進(jìn)行管理。設(shè)備層與協(xié)議層相同,將設(shè)備類實(shí)例成一個(gè)個(gè)的對(duì)象交給上層的子系統(tǒng),簡(jiǎn)單來(lái) 說就是該子系統(tǒng)包含了多少設(shè)備對(duì)象,就將這些設(shè)備對(duì)象用線程承載運(yùn)行,托付給上層子系統(tǒng),這樣就如同實(shí)際系統(tǒng)一樣,不同的仿真設(shè)備能在同一時(shí)間實(shí)現(xiàn)不同的功能,避免了不 同子系統(tǒng)同時(shí)訪問一個(gè)設(shè)備對(duì)象,發(fā)生沖突。在設(shè)備對(duì)象中,命令的解析,動(dòng)作的執(zhí)行,條件的判斷等等邏輯都是需要同步同時(shí) 執(zhí)行的,對(duì)于這些功能我們都開啟了線程來(lái)同步執(zhí)行,同時(shí),設(shè)備對(duì)象中也存在很多共享資 源,例如設(shè)備的參數(shù),設(shè)備的命令等等,不同的線程會(huì)在同一時(shí)間訪問這些共享資源,因此 會(huì)出現(xiàn)線程之間的沖突情況出現(xiàn),于是用一種方法來(lái)避免這種情況的發(fā)生,該線程管理方 法用來(lái)保護(hù)某段代碼在執(zhí)行的時(shí)候以獨(dú)占的方式執(zhí)行,這時(shí)如果有第二個(gè)線程想訪問這個(gè) 對(duì)象時(shí)就會(huì)被暫停。一直等到獨(dú)占的代碼執(zhí)行為止。設(shè)備線程模塊如圖3所示,為本發(fā)明 設(shè)備線程模塊。更為具體地,正常來(lái)說,被允許執(zhí)行的線程首先會(huì)擁有對(duì)變量或?qū)ο蟮呐潘栽L 問權(quán)。當(dāng)?shù)谝粋€(gè)線程訪問對(duì)象時(shí),第一個(gè)線程會(huì)給訪問對(duì)象加鎖,而這個(gè)鎖會(huì)導(dǎo)致其它也想 訪問同一對(duì)象的線程被阻塞,直至第一個(gè)線程釋放它加在對(duì)象上的鎖。因此在線程之間要 相互通信、相互協(xié)調(diào)才能完成任務(wù)。舉例說明當(dāng)有多個(gè)線程共同訪問同一個(gè)資源時(shí),就必 須保證第一個(gè)線程在正讀取這個(gè)資源數(shù)據(jù)的時(shí)候,其它線程不能夠修改它,這就需要線程 之間相互通信。再有當(dāng)一個(gè)線程要準(zhǔn)備執(zhí)行下一個(gè)任務(wù)之前,它必須等待另一個(gè)線程終止 才能運(yùn)行,這也需要彼此相互通信。該共享資源就是一個(gè)臨界區(qū)(Critical Section),是保 證在某一時(shí)刻只有一個(gè)線程能訪問數(shù)據(jù)的簡(jiǎn)便辦法。在任意時(shí)刻只允許一個(gè)線程對(duì)共享資 源進(jìn)行訪問。如果有多個(gè)線程試圖同時(shí)訪問臨界區(qū),那么在有一個(gè)線程進(jìn)入后其他所有試 圖訪問此臨界區(qū)的線程將被掛起,并一直持續(xù)到進(jìn)入臨界區(qū)的線程離開。臨界區(qū)在被釋放 后,其他線程可以繼續(xù)搶占,并以此達(dá)到用原子方式操作共享資源的目的。而不同的線程之 間則是運(yùn)用了線程池來(lái)管理,對(duì)于運(yùn)行邏輯而言,訪問共享資源是個(gè)非常短暫的間隔時(shí)間, 因此并不會(huì)妨礙整個(gè)系統(tǒng)運(yùn)行的效率,該多線程管理方法的運(yùn)用使得多個(gè)線程并行的工作 以完成多項(xiàng)任務(wù),提高了系統(tǒng)的效率和資源的利用率。在本發(fā)明的實(shí)施例中,子系統(tǒng)層線程管理子系統(tǒng)層對(duì)整個(gè)仿真平臺(tái)而言,就是將 整個(gè)半導(dǎo)體制造裝備按照功能細(xì)化為一塊一塊的功能模塊,每個(gè)功能模塊都是有若干個(gè)設(shè) 備組合而成的,因此子系統(tǒng)還需要協(xié)調(diào)這些設(shè)備之間的操作,保證這些設(shè)備能夠整合成一 個(gè)整體準(zhǔn)確的實(shí)現(xiàn)功能,所以清晰的子系統(tǒng)層線程管理方法是必要的。在本發(fā)明的實(shí)施例中,將子系統(tǒng)類實(shí)例成一個(gè)個(gè)的對(duì)象,這些對(duì)象里面包含了許 多設(shè)備之間的邏輯關(guān)系,簡(jiǎn)單來(lái)說就是該系統(tǒng)包含了多少子系統(tǒng)對(duì)象,就將這些子系統(tǒng)對(duì) 象用線程承載運(yùn)行,這樣就如同實(shí)際系統(tǒng)一樣,不同的子系統(tǒng)以及其包含的設(shè)備能在同一 時(shí)間實(shí)現(xiàn)不同的功能,避免了不同子系統(tǒng)同時(shí)訪問一個(gè)設(shè)備對(duì)象,發(fā)生沖突。在子系統(tǒng)層中,包含了很多設(shè)備之間的邏輯關(guān)系,例如當(dāng)一個(gè)設(shè)備執(zhí)行什么動(dòng)作 或者該設(shè)備的屬性達(dá)到某個(gè)臨界值時(shí),另一個(gè)設(shè)備會(huì)執(zhí)行相關(guān)的動(dòng)作或者其屬性發(fā)生改 變,或者幾個(gè)設(shè)備控制著另一個(gè)設(shè)備的狀態(tài)改變等等,這些設(shè)備之間的邏輯關(guān)系往往是比 較復(fù)雜的,我們都將它們儲(chǔ)存在子系統(tǒng)層中,作為一個(gè)共享資源供子系統(tǒng)包含的設(shè)備訪問, 為了達(dá)到設(shè)備并行訪問的目的,我們?cè)O(shè)計(jì)了一套并行化的實(shí)現(xiàn)方法。子系統(tǒng)層線程模塊如 圖4所示,為本發(fā)明子系統(tǒng)層線程模塊。更為具體地在本發(fā)明的實(shí)施例中,子系統(tǒng)層就是一個(gè)共享資源,包含了若干設(shè)備 之間的邏輯關(guān)系,每一個(gè)設(shè)備線程就是一個(gè)信號(hào)量,子系統(tǒng)層允許多個(gè)線程同時(shí)使用共享資源。它指出了同時(shí)訪問共享資源的線程最大數(shù)目。它允許多個(gè)線程在同一時(shí)刻訪問同一 資源,但是需要限制在同一時(shí)刻訪問此資源的最大線程數(shù)目。子系統(tǒng)層在創(chuàng)建信號(hào)量時(shí)即 要同時(shí)指出允許的最大資源計(jì)數(shù)和當(dāng)前可用資源計(jì)數(shù)。一般是將當(dāng)前可用資源計(jì)數(shù)設(shè)置 為最大資源計(jì)數(shù),每增加一個(gè)線程對(duì)共享資源的訪問,當(dāng)前可用資源計(jì)數(shù)就會(huì)減1,只要當(dāng) 前可用資源計(jì)數(shù)是大于0的,就可以發(fā)出信號(hào)量信號(hào)。但是當(dāng)前可用計(jì)數(shù)減小到0時(shí)則說 明當(dāng)前占用資源的線程數(shù)已經(jīng)達(dá)到了所允許的最大數(shù)目,不能在允許其他線程的進(jìn)入,此 時(shí)的信號(hào)量信號(hào)將無(wú)法發(fā)出。線程在處理完共享資源后,應(yīng)在離開的同時(shí)將當(dāng)前可用資源 計(jì)數(shù)加1。在任何時(shí)候當(dāng)前可用資源計(jì)數(shù)決不可能大于最大資源計(jì)數(shù)。因?yàn)橐粋€(gè)子系統(tǒng)涉 及的設(shè)備數(shù)是固定的,在已知設(shè)備數(shù)的前提下,線程數(shù)目是已知的,同時(shí)為了便于以后的開 發(fā),我們也預(yù)留了線程數(shù)目接口,方便用戶在需要添加設(shè)備的情況下增加線程數(shù)目。本發(fā)明主要在于,為了解決半導(dǎo)體制造裝備控制軟件測(cè)試的效率和準(zhǔn)確定位系統(tǒng) 所存在問題,而提出一種基于設(shè)備控制軟件的面向半導(dǎo)體制造裝備功能仿真的并行化仿真 多線程管理方法以及其系統(tǒng)。盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以 理解在不脫離本發(fā)明的原理和精神的情況下可以對(duì)這些實(shí)施例進(jìn)行多種變化、修改、替換 和變型,本發(fā)明的范圍由所附權(quán)利要求及其等同限定。
9
權(quán)利要求
一種并行化仿真多線程管理方法,包括以下步驟將所有通訊方式實(shí)例為通訊對(duì)象分別用一個(gè)線程承載,且托付給相應(yīng)的設(shè)備對(duì)象;對(duì)所述所有通訊對(duì)象的接收和發(fā)送方法進(jìn)行多線程管理;將所有設(shè)備類實(shí)例為設(shè)備對(duì)象分別托付給相應(yīng)的子系統(tǒng)對(duì)象;對(duì)所述設(shè)備對(duì)象命令的解析,動(dòng)作的執(zhí)行,條件的判斷進(jìn)行多線程管理;將所有子系統(tǒng)類實(shí)例為子系統(tǒng)對(duì)象分別托付給相應(yīng)的系統(tǒng)對(duì)象;和對(duì)所述子系統(tǒng)對(duì)象包括的所述設(shè)備對(duì)象之間的邏輯關(guān)系進(jìn)行多線程管理。
2.如權(quán)利要求1所述的并行化仿真多線程管理方法,其特征在于,所述將所有通訊方 式實(shí)例為通訊對(duì)象分別用一個(gè)線程承載,且托付給相應(yīng)的設(shè)備對(duì)象,還包括所述不同的通訊對(duì)象有不同的通訊參數(shù)。
3.如權(quán)利要求1所述的并行化仿真多線程管理方法,其特征在于,所述對(duì)所述所有通 訊對(duì)象的接收和發(fā)送方法進(jìn)行多線程管理,進(jìn)一步包括所述通訊對(duì)象的接收和發(fā)送方法是唯一的;所述接收和發(fā)送方法為一個(gè)互斥段,且同一時(shí)刻擁有互斥對(duì)象的線程具有訪問資源的 權(quán)限;所述當(dāng)前具有訪問資源的權(quán)限的線程在任務(wù)處理完后將所述互斥對(duì)象交出,以為其它 線程使用。
4.如權(quán)利要求3所述的并行化仿真多線程管理方法,其特征在于,所述互斥段為lock 標(biāo)記,所述lock把某一代碼定義為互斥段,其中,所述互斥段在一個(gè)時(shí)刻內(nèi)只允許一個(gè)線 程進(jìn)入執(zhí)行。
5.如權(quán)利要求1所述的并行化仿真多線程管理方法,其特征在于,所述將所有設(shè)備類 實(shí)例為設(shè)備對(duì)象分別托付給相應(yīng)的子系統(tǒng)對(duì)象,還包括解析所述通訊對(duì)象的各種信息;和分析所述設(shè)備對(duì)象的一些屬性行為,以及根據(jù)所述各種信息執(zhí)行的相關(guān)動(dòng)作。
6.如權(quán)利要求1所述的并行化仿真多線程管理方法,其特征在于,對(duì)所述設(shè)備對(duì)象命 令的解析,動(dòng)作的執(zhí)行,條件的判斷進(jìn)行多線程管理,進(jìn)一步包括保證某段代碼在執(zhí)行的時(shí)候以某一設(shè)備線程獨(dú)占的方式執(zhí)行; 在所述某一設(shè)備線程獨(dú)占的方式執(zhí)行時(shí),如果有另外的設(shè)備線程訪問所述代碼則會(huì)被 暫停,直到獨(dú)占代碼執(zhí)行完畢。
7.如權(quán)利要求1所述的并行化仿真多線程管理方法,其特征在于,所述將所有子系統(tǒng) 類實(shí)例為子系統(tǒng)對(duì)象分別托付給相應(yīng)的系統(tǒng)對(duì)象,其中,所述子系統(tǒng)還用于協(xié)調(diào)所述設(shè)備 對(duì)象之間的操作。
8.如權(quán)利要求1所述的并行化仿真多線程管理方法,其特征在于,所述對(duì)所述子系統(tǒng) 對(duì)象包括的所述設(shè)備對(duì)象之間的邏輯關(guān)系進(jìn)行多線程管理,進(jìn)一步包括每一個(gè)設(shè)備線程表示為一個(gè)信號(hào)量;多個(gè)所述設(shè)備線程同時(shí)使用共享資源,且標(biāo)出同時(shí)訪問共享資源的所述設(shè)備線程最大 數(shù)目;子系統(tǒng)層在創(chuàng)建所述信號(hào)量時(shí)指出允許的最大資源計(jì)數(shù)和當(dāng)前可用資源計(jì)數(shù); 線程在處理完共享資源后,應(yīng)在離開的同時(shí)將當(dāng)前可用資源計(jì)數(shù)加1。
9.如權(quán)利要求8所述的并行化仿真多線程管理方法,其特征在于,在任何時(shí)候所述當(dāng) 前可用資源計(jì)數(shù)不能大于所述最大資源計(jì)數(shù)。
全文摘要
本發(fā)明提出一種并行化仿真多線程管理方法,包括以下步驟將所有通訊方式實(shí)例為通訊對(duì)象分別用一個(gè)線程承載;對(duì)所述所有通訊對(duì)象的接收和發(fā)送方法進(jìn)行多線程管理;將所有設(shè)備類實(shí)例為設(shè)備對(duì)象;對(duì)所述設(shè)備對(duì)象命令的解析,動(dòng)作的執(zhí)行,條件的判斷進(jìn)行多線程管理;將所有子系統(tǒng)類實(shí)例為子系統(tǒng)對(duì)象;和對(duì)所述子系統(tǒng)對(duì)象包括的所述設(shè)備對(duì)象之間的邏輯關(guān)系進(jìn)行多線程管理。通過該方法能夠解決半導(dǎo)體制造裝備控制軟件測(cè)試的效率和準(zhǔn)確定位系統(tǒng)所存在問題,該裝置能夠決集成電路工藝設(shè)備的工藝穩(wěn)定性,工藝可靠性,減少設(shè)備維修時(shí)間,最大程度的提高設(shè)備的利用率。
文檔編號(hào)G06F9/46GK101976203SQ201010291919
公開日2011年2月16日 申請(qǐng)日期2010年9月26日 優(yōu)先權(quán)日2010年9月26日
發(fā)明者徐華, 李壘, 王巍, 高士云 申請(qǐng)人:清華大學(xué)