本發(fā)明涉及計算機數(shù)據(jù)處理領(lǐng)域,特別是計算機圖像檢測處理領(lǐng)域和計算機實時數(shù)據(jù)處理領(lǐng)域。
背景技術(shù):
在數(shù)據(jù)處理領(lǐng)域,特別是在圖像數(shù)據(jù)處理領(lǐng)域,數(shù)據(jù)常以數(shù)據(jù)分組的形式進入數(shù)據(jù)處理裝置。在一些特定領(lǐng)域,一個數(shù)據(jù)分組的處理不是以該數(shù)據(jù)分組到達數(shù)據(jù)處理裝置的先后次序處理,而是以該數(shù)據(jù)分組和其他特定數(shù)據(jù)分組的關(guān)聯(lián)性來決定該數(shù)據(jù)分組的處理時刻和處理流程。
例如,在Blecher等人的美國專利No.7,379,847中描述了使用任務(wù)管理進程(job manager)管理數(shù)據(jù)分組的處理時刻和處理流程。
在高速、實時、大數(shù)據(jù)量、多計算節(jié)點集群的應(yīng)用場合,這種數(shù)據(jù)處理方式帶來了許多挑戰(zhàn):數(shù)據(jù)分組之間的關(guān)聯(lián)性迫使任務(wù)管理進程必須設(shè)計復(fù)雜的時序邏輯以處理數(shù)據(jù)分組之間復(fù)雜的時序關(guān)系;任務(wù)管理進程和計算節(jié)點之間基于消息的通訊機制又使管理這種時序關(guān)系更加復(fù)雜化;任務(wù)管理進程還需要優(yōu)化計算節(jié)點和計算任務(wù)的分配。這些挑戰(zhàn)都可能會造成數(shù)據(jù)處理系統(tǒng)整體效率的降低,或者發(fā)生互鎖事件,導(dǎo)致系統(tǒng)的停滯。
圖1是示出常規(guī)數(shù)據(jù)處理系統(tǒng)的示意圖。在高速、實時、大容量基于圖像的缺陷檢測領(lǐng)域,數(shù)據(jù)處理系統(tǒng)100至少包括數(shù)據(jù)產(chǎn)生設(shè)備110和數(shù)據(jù)處理裝置120。數(shù)據(jù)產(chǎn)生設(shè)備110可以是例如應(yīng)用光學(xué)技術(shù)或電子束掃描技術(shù)對硅片進行檢測的設(shè)備,其通常具備一個或更多個光學(xué)的或電子的傳感器。任務(wù)書130為數(shù)據(jù)處理系統(tǒng)100規(guī)定了工件111上應(yīng)該檢測的區(qū)域112和檢測算法。
由基于光學(xué)的或電子束的數(shù)據(jù)產(chǎn)生設(shè)備110產(chǎn)生數(shù)據(jù)分組(即圖像數(shù)據(jù)),并經(jīng)由數(shù)據(jù)鏈路140傳入數(shù)據(jù)處理裝置120。數(shù)據(jù)處理裝置120通常是多個計算節(jié)點121組成的集群式計算機系統(tǒng)。
根據(jù)任務(wù)書130的要求,數(shù)據(jù)產(chǎn)生設(shè)備110掃描工件111上某特定區(qū)域而產(chǎn)生的圖像數(shù)據(jù)Ia送入數(shù)據(jù)處理裝置120后,需與工件上另一特定區(qū)域的圖像數(shù)據(jù)Ib進行比較,以進行缺陷檢測。而數(shù)據(jù)產(chǎn)生設(shè)備,為保證其工作效率,并不保證順序地產(chǎn)生圖像數(shù)據(jù)Ia和圖像數(shù)據(jù)Ib,而是有可能在掃描Ia之后,掃描多個其它圖像以后再來掃描Ib。這種圖像產(chǎn)生時序和圖像處理時序的不同,對圖像處理裝置提出了協(xié)調(diào)兩個時序的要求。
現(xiàn)行的解決方法是用任務(wù)管理進程來協(xié)調(diào)這兩個不同的時序。
在高速、大數(shù)據(jù)量、并有實時性要求的應(yīng)用場合,編寫一個好的、優(yōu)化的任務(wù)管理進程的是十分復(fù)雜的任務(wù),很難在一個較寬數(shù)據(jù)量、計算節(jié)點數(shù)的范圍內(nèi)達到最好的效果。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的至少部分地在于提供一種高效的數(shù)據(jù)處理方法和裝置。
根據(jù)本發(fā)明的第一方案,提供了一種數(shù)據(jù)處理方法,包括:接收數(shù)據(jù)分組;向數(shù)據(jù)分組指派相應(yīng)代碼,所述代碼指定了需要對數(shù)據(jù)分組執(zhí)行的處理;以及根據(jù)所指派的代碼,對數(shù)據(jù)分組執(zhí)行處理。
優(yōu)選地,將指派了代碼的、待處理的數(shù)據(jù)分組存入數(shù)據(jù)池。
優(yōu)選地,如果數(shù)據(jù)分組的代碼指定對該數(shù)據(jù)分組的單獨處理,則直接對該數(shù)據(jù)分組進行處理。
優(yōu)選地,如果數(shù)據(jù)分組的代碼指定對該數(shù)據(jù)分組以及一個或更多個其他數(shù)據(jù)分組進行共同處理,則等待所述一個或更多個其他數(shù)據(jù)分組到達數(shù)據(jù)池,然后一并處理。
優(yōu)選地,代碼指定要對數(shù)據(jù)分組執(zhí)行的處理序列以及各處理步驟所涉及的相關(guān)數(shù)據(jù)分組。
優(yōu)選地,數(shù)據(jù)分組由數(shù)據(jù)產(chǎn)生裝置根據(jù)任務(wù)書產(chǎn)生;代碼是根據(jù)任務(wù)書來編寫。
優(yōu)選地,在對數(shù)據(jù)分組處理結(jié)束后,對該數(shù)據(jù)分組的代碼進行更新。
優(yōu)選地,將完成代碼所指定的全部處理的數(shù)據(jù)分組清除出數(shù)據(jù)池。
根據(jù)本發(fā)明的第二方案,提供了一種數(shù)據(jù)處理裝置,包括:接收單元,用于接收數(shù)據(jù)分組;處理器,被配置為:向數(shù)據(jù)分組指派相應(yīng)代碼,所述代碼指定了需要對數(shù)據(jù)分組執(zhí)行的處理;以及基于所指派的代碼,對數(shù)據(jù)分組執(zhí)行處理。
優(yōu)選地,其中所述處理器還被配置為:將指派了代碼的待處理的數(shù)據(jù)分組存入數(shù)據(jù)池。
優(yōu)選地,其中所述處理器還被配置為:如果數(shù)據(jù)分組的代碼指定對該數(shù)據(jù)分組的單獨處理,則將該數(shù)據(jù)分組指派給一個處理器進行處理。
優(yōu)選地,所述處理器還被配置為:如果數(shù)據(jù)分組的代碼指定對該數(shù)據(jù)分組以及一個或更多個其他數(shù)據(jù)分組的共同處理,則令所述數(shù)據(jù)分組在數(shù)據(jù)池中等待所述一個或更多個其他數(shù)據(jù)分組到達數(shù)據(jù)池。
優(yōu)選地,所述處理器還被配置為:指派如下代碼,所述代碼指定要對數(shù)據(jù)分組執(zhí)行的處理序列以及各處理所涉及的相關(guān)數(shù)據(jù)分組。
優(yōu)選地,數(shù)據(jù)分組由數(shù)據(jù)產(chǎn)生裝置根據(jù)任務(wù)書產(chǎn)生,所述處理器還被配置為根據(jù)任務(wù)書來指派代碼。。
優(yōu)選地,所述處理器還被配置為:在對數(shù)據(jù)分組處理結(jié)束后,對該數(shù)據(jù)分組的代碼進行更新。
優(yōu)選地,其中所述處理器還被配置為:將完成代碼所指定的全部處理的數(shù)據(jù)分組清除出數(shù)據(jù)池。
在傳統(tǒng)的方法中,數(shù)據(jù)和處理數(shù)據(jù)的程序信息是分離的:數(shù)據(jù)就是數(shù)據(jù),該怎樣處理這些數(shù)據(jù)是由程序決定。具體地,數(shù)據(jù)由任務(wù)書指定數(shù)據(jù)產(chǎn)生裝置產(chǎn)生;在數(shù)據(jù)處理裝置中,由任務(wù)管理進程來保證任務(wù)書所規(guī)定的數(shù)據(jù)處理得到忠實地執(zhí)行。任務(wù)管理進程必須時刻追蹤兩個不同的時序,在高速、實時、大數(shù)據(jù)量的情況下很難達到高效、穩(wěn)定、且不受互鎖事件干擾的要求。
根據(jù)實施例,擯棄基于消息機制的任務(wù)管理進程,代之以一種全新的基于“自律代碼”的數(shù)據(jù)處理機制。具體地,數(shù)據(jù)和處理這些數(shù)據(jù)的程序信息以自律代碼的形式結(jié)合在數(shù)據(jù)分組里了。因而,可以避開了兩個不同時序所產(chǎn)生的問題,因而可以設(shè)計和優(yōu)化更可靠的任務(wù)分配進程,更高效地利用計算資源。而在傳統(tǒng)的方法中,由于數(shù)據(jù)產(chǎn)生的時序和數(shù)據(jù)處理的時序的不同給任務(wù)管理進程的設(shè)計和實現(xiàn)帶來了很大的挑戰(zhàn),而且很難擴展到更大規(guī)模的數(shù)據(jù)處理應(yīng)用場合。
由此,可以至少部分地消除任務(wù)管理中復(fù)雜的時序邏輯,減少錯誤發(fā)生和互鎖的概率,提高數(shù)據(jù)處理裝置的效率和魯棒性。使數(shù)據(jù)處理任務(wù)分配盡可能不再受復(fù)雜的時序關(guān)系所帶來的各種限制,從而可以更好的優(yōu)化任務(wù)分配算法,增加數(shù)據(jù)處理裝置的效率和可靠性。
附圖說明
圖1是示出常規(guī)數(shù)據(jù)處理系統(tǒng)的示意圖。
圖2是示出根據(jù)本公開實施例的數(shù)據(jù)處理裝置的示意圖。
圖3是示出根據(jù)本公開實施例的數(shù)據(jù)處理方法的流程圖。
圖4是示出根據(jù)本公開附加實施例的數(shù)據(jù)處理方法的流程圖。
具體實施方式
下面將詳細描述本發(fā)明的具體實施例,應(yīng)當(dāng)注意,這里描述的實施例只用于舉例說明,并不用于限制本發(fā)明。在以下描述中,為了提供對本發(fā)明的透徹理解,闡述了大量特定細節(jié)。然而,對于本領(lǐng)域普通技術(shù)人員顯而易見的是:不必采用這些特定細節(jié)來實行本發(fā)明。在其他實例中,為了避免混淆本發(fā)明,未具體描述公知的電路、材料或方法。
在整個說明書中,對“一個實施例”、“實施例”、“一個示例”或“示例”的提及意味著:結(jié)合該實施例或示例描述的特定特征、結(jié)構(gòu)或特性被包含在本發(fā)明至少一個實施例中。因此,在整個說明書的各個地方出現(xiàn)的短語“在一個實施例中”、“在實施例中”、“一個示例”或“示例”不一定都指同一實施例或示例。此外,可以以任何適當(dāng)?shù)慕M合和/或子組合將特定的特征、結(jié)構(gòu)或特性組合在一個或多個實施例或示例中。此外,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)理解,在此提供的附圖都是為了說明的目的,并且附圖不一定是按比例繪制的。這里使用的術(shù)語“和/或”包括一個或多個相關(guān)列出的項目的任何和所有組合。
以下參考附圖對本發(fā)明的實施例進行具體描述。
圖2是示出根據(jù)本公開實施例的數(shù)據(jù)處理裝置的示意圖。
數(shù)據(jù)處理裝置220可以包括接收單元221和處理器222。
接收單元221可以是實現(xiàn)為任何類型標(biāo)準(zhǔn)接口或?qū)S媒涌陔娐?,例如以太網(wǎng)接口、通用串行總線(USB)和/或PCI快速接口。處理器222可以實現(xiàn)為來自家族、家族或家族的一個或多個微處理器。當(dāng)然,也可以使用來自其它家族的其它處理器。處理器222可以實現(xiàn)為集中式或分布式配置,或者采用其他計算平臺技術(shù),例如云計算技術(shù)。
處理器222可以包括編碼器2221、數(shù)據(jù)池2222和計算節(jié)點2223。
數(shù)據(jù)池2222可以實現(xiàn)為易失性存儲器(同步動態(tài)隨機存取存儲器(SDRAM)、動態(tài)隨機存取存儲器(DRAM)、RAMBUS動態(tài)隨機存取存儲器(RDRAM)和/或任何其他類型的隨機存取存儲器設(shè)備)或非易失性存儲器(閃存、磁盤文件系統(tǒng)和/或任何其他所需類型的存儲設(shè)備)。
可以將任務(wù)書(recipe)230下達給數(shù)據(jù)產(chǎn)生設(shè)備210和數(shù)據(jù)處理裝置220二者。任務(wù)書230為數(shù)據(jù)處理系統(tǒng)規(guī)定了工件211上應(yīng)該檢測的區(qū)域和檢測算法。任務(wù)書230還可以規(guī)定不同區(qū)域之間的關(guān)聯(lián)性,例如,需要進行比較以進行缺陷檢測的兩個或多個區(qū)域。本文所述的工件211可以是例如硅片、基板等。
數(shù)據(jù)產(chǎn)生設(shè)備210根據(jù)任務(wù)書230產(chǎn)生n個數(shù)據(jù)分組I1,…,In,(n≥2),并經(jīng)由數(shù)據(jù)鏈路240傳入數(shù)據(jù)處理裝置220。例如,數(shù)據(jù)產(chǎn)生設(shè)備210可以根據(jù)任務(wù)書230,對需要檢測的區(qū)域進行拍攝,來獲得圖像數(shù)據(jù),并因此獲得相應(yīng)的數(shù)據(jù)分組。
接收單元221接收經(jīng)由數(shù)據(jù)鏈路240傳入數(shù)據(jù)處理裝置220的n個數(shù)據(jù)分組I1,…,In。數(shù)據(jù)鏈路240可以使用不同的協(xié)議,例如千兆以太網(wǎng)、火線(FireWire)、高速USB和快速寬超級SCSI等。與數(shù)據(jù)處理系統(tǒng)的其他組件相組合使用時,光纖與其他組件相比具有更大的帶寬,并因此優(yōu)選光纖。
編碼器2221根據(jù)任務(wù)書230賦予每一個進入數(shù)據(jù)處理裝置220的數(shù)據(jù)分組一個特定的自律代碼N,該自律代碼N是根據(jù)任務(wù)書230針對數(shù)據(jù)分組Ix定制的,并可以將數(shù)據(jù)分組Ix與所指派的相應(yīng)自律代碼N相組合,形成具備自律代碼的數(shù)據(jù)分組IxN。
一個數(shù)據(jù)分組的自律代碼是規(guī)定了這一數(shù)據(jù)分組在數(shù)據(jù)處理裝置中需要和哪些數(shù)據(jù)分組相互作用,需要完成哪些處理的代碼。即,規(guī)定了這個數(shù)據(jù)分組在數(shù)據(jù)處理裝置中的發(fā)生、成長、相互作用、以及變化、消亡的過程。該自律代碼的作用與生物體的DNA相類似。
根據(jù)一些實施例,某些數(shù)據(jù)分組之間具備一定的關(guān)聯(lián)性,例如從需要彼此比較的區(qū)域獲得的數(shù)據(jù)分組彼此之間具有關(guān)聯(lián)性。由于這種關(guān)聯(lián)性是根據(jù)任務(wù)書230產(chǎn)生的,因此接收到任務(wù)書230的數(shù)據(jù)處理裝置220可以知道這種關(guān)聯(lián)性,并可以在數(shù)據(jù)分組中標(biāo)注這種關(guān)聯(lián)性。例如,編碼器2221可以在根據(jù)任務(wù)書230需要彼此比較的數(shù)據(jù)分組中標(biāo)注相匹配的標(biāo)記。此外,編碼器2221可以將任務(wù)書230中針對各數(shù)據(jù)分組規(guī)定的處理以代碼形式進行標(biāo)注。
將被賦予自律代碼的數(shù)據(jù)分組,IaN,送入數(shù)據(jù)池2222(Pool),等待。當(dāng)與數(shù)據(jù)分組IaN相匹配的數(shù)據(jù)分組IbN進入數(shù)據(jù)池后(例如,根據(jù)自律代碼中所標(biāo)注的相匹配標(biāo)記),它們根據(jù)各自的自律代碼配成一個任務(wù)。該任務(wù)被派送給一個計算節(jié)點2223進行數(shù)據(jù)處理。數(shù)據(jù)處理完畢后,該兩個數(shù)據(jù)分組的自律代碼根據(jù)處理結(jié)果被更新,并重新送回數(shù)據(jù)池2222。
如果在數(shù)據(jù)池2222中的數(shù)據(jù)分組IcN不需等待另外一個數(shù)據(jù)分組,那么它將被派送給一個計算節(jié)點2223進行處理。數(shù)據(jù)處理完畢后,該數(shù)據(jù)分組的自律代碼根據(jù)處理結(jié)果被更新,并送回數(shù)據(jù)池2222。直到該數(shù)據(jù)分組所有自律代碼規(guī)定的處理全部完成。
最后,將完成所有自律代碼指定處理的數(shù)據(jù)分組(例如,IdN)清除出數(shù)據(jù)池2222,從而完成數(shù)據(jù)處理裝置對該數(shù)據(jù)分組的工作。
圖3是示出根據(jù)本公開實施例的數(shù)據(jù)處理方法的流程圖。
首先,在步驟S310中,接收數(shù)據(jù)分組。這些數(shù)據(jù)分組如上所述可以是數(shù)據(jù)產(chǎn)生設(shè)備根據(jù)任務(wù)書而產(chǎn)生的。
在步驟S320中,向數(shù)據(jù)分組指派相應(yīng)代碼,所述代碼指定需要對數(shù)據(jù)分組執(zhí)行的處理。這些代碼可以是如上所述的“自律代碼”,并指定了需要對數(shù)據(jù)分組執(zhí)行的處理,更具體地,指定要對數(shù)據(jù)分組執(zhí)行的處理序列以及各處理所涉及的相關(guān)數(shù)據(jù)分組。
在步驟S330中,基于所指派的代碼,對數(shù)據(jù)分組執(zhí)行處理。例如,可以根據(jù)代碼所指定的處理序列,依次對數(shù)據(jù)分組執(zhí)行相應(yīng)的處理。當(dāng)代碼指定某一處理涉及其他的數(shù)據(jù)分組時,可以等到所涉及到的其他數(shù)據(jù)分組的到來,并對它們一起執(zhí)行相應(yīng)處理。
圖4是示出根據(jù)本公開附加實施例的數(shù)據(jù)處理方法的流程圖。
圖4包括圖3中的全部步驟,因此為了簡潔,對于圖3中所包括的步驟不再進行描述。
如圖4所示,在一個實施例中,步驟S330具備包括步驟S3311,其中如果數(shù)據(jù)分組的代碼指定對該數(shù)據(jù)分組的單獨處理,則直接對該數(shù)據(jù)分組進行處理。
在另一實施例中,步驟S330具備包括步驟S3312,其中如果數(shù)據(jù)分組的代碼指定對該數(shù)據(jù)分組以及一個或更多個其他數(shù)據(jù)分組的共同處理,則等待所述一個或更多個其他數(shù)據(jù)分組一并處理。
在另一實施例中,在執(zhí)行步驟S3311或S3312之后,即在對所述具備相應(yīng)自律代碼的數(shù)據(jù)分組的處理結(jié)束后,執(zhí)行步驟S332。在步驟S332中,對所述具備相應(yīng)自律代碼的數(shù)據(jù)分組的自律代碼進行更新,并將具備更新后的自律代碼的數(shù)據(jù)分組送回所述數(shù)據(jù)池。
在另一實施例中,還可以包括步驟S333,將待處理的數(shù)據(jù)分組存入數(shù)據(jù)池,且將完成代碼所指定的全部處理的數(shù)據(jù)分組清除到數(shù)據(jù)池之外。
以上的詳細描述通過使用示意圖、流程圖和/或示例,已經(jīng)闡述了數(shù)據(jù)處理方法和裝置的多個實施例。在這種示意圖、流程圖和/或示例包含一個或多個功能和/或操作的情況下,本領(lǐng)域技術(shù)人員應(yīng)理解,這種示意圖、流程圖或示例中的每一功能和/或操作可以通過各種結(jié)構(gòu)、硬件、軟件、固件或?qū)嵸|(zhì)上它們的任意組合來單獨和/或共同實現(xiàn)。在一個實施例中,本發(fā)明的實施例所述主題的若干部分可以通過專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、數(shù)字信號處理器(DSP)、或其他集成格式來實現(xiàn)。然而,本領(lǐng)域技術(shù)人員應(yīng)認識到,這里所公開的實施例的一些方面在整體上或部分地可以等同地實現(xiàn)在集成電路中,實現(xiàn)為在一臺或多臺計算機上運行的一個或多個計算機程序(例如,實現(xiàn)為在一臺或多臺計算機系統(tǒng)上運行的一個或多個程序),實現(xiàn)為在一個或多個處理器上運行的一個或多個程序(例如,實現(xiàn)為在一個或多個微處理器上運行的一個或多個程序),實現(xiàn)為固件,或者實質(zhì)上實現(xiàn)為上述方式的任意組合,并且本領(lǐng)域技術(shù)人員根據(jù)本公開,將具備設(shè)計電路和/或?qū)懭胲浖?或固件代碼的能力。此外,本領(lǐng)域技術(shù)人員將認識到,本公開所述主題的機制能夠作為多種形式的程序產(chǎn)品進行分發(fā),并且無論實際用來執(zhí)行分發(fā)的信號承載介質(zhì)的具體類型如何,本公開所述主題的示例性實施例均適用。信號承載介質(zhì)的示例包括但不限于:可記錄型介質(zhì),如軟盤、硬盤驅(qū)動器、緊致盤(CD)、數(shù)字通用盤(DVD)、數(shù)字磁帶、計算機存儲器等;以及傳輸型介質(zhì),如數(shù)字和/或模擬通信介質(zhì)(例如,光纖光纜、波導(dǎo)、有線通信鏈路、無線通信鏈路等)。
需要注意的是,以上僅為本發(fā)明的較佳實施例及原理。本領(lǐng)域的技術(shù)人員會理解,本發(fā)明不限于這里的特定實施例。本領(lǐng)域的技術(shù)人員能夠做出各種明顯變化、調(diào)整和替代,而不脫離本發(fā)明的保護范圍。本發(fā)明的范圍由所附權(quán)利要求界定。