亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用在多處理器數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理方法和相應(yīng)的數(shù)據(jù)處理系統(tǒng)的制作方法

文檔序號:6432961閱讀:148來源:國知局
專利名稱:用在多處理器數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理方法和相應(yīng)的數(shù)據(jù)處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及到用在多處理器數(shù)據(jù)處理系統(tǒng)中數(shù)據(jù)處理方法和相應(yīng)的具有多個處理器的數(shù)據(jù)處理系統(tǒng)。
用于高性能、依賴數(shù)據(jù)的媒體處理,例如用于高清晰度MPEG解碼的不同種類的多處理器結(jié)構(gòu)是已知的。媒體處理應(yīng)用可以被規(guī)定為一系列并行執(zhí)行的任務(wù),該任務(wù)只通過單向數(shù)據(jù)流來交換信息。G.Kahn在1974年就介紹了這種應(yīng)用的形式模型,記錄在North-Holland出版的74年8月5-10日瑞典斯德哥爾摩IFIP會議的會刊卷1974第471-475頁上發(fā)表的“The Semantics of a SimpleLanguage for Parallel Programming”中,其后由Kahn和MacQueen在1977年在下述文章中對它進(jìn)行了操作上描述“Co-routines andNetworks of Parallel Programming”,信息處理77,B.Gilchhirst(編輯),North-Holland出版社,1977,pp993-998。這個形式模型現(xiàn)在通常稱之為Kahn進(jìn)程網(wǎng)絡(luò)。
一個應(yīng)用被認(rèn)為是一系列并行執(zhí)行的任務(wù)。信息僅僅可以通過單向數(shù)據(jù)流在任務(wù)間交換。任務(wù)應(yīng)當(dāng)通過對預(yù)定數(shù)據(jù)流的讀和寫動作來唯一確定地通信。數(shù)據(jù)流基于FIFO特性被緩沖。因為緩沖,所以通過一個流通信的兩個任務(wù)不必在單獨(dú)的讀或者寫動作上同步。
在流處理中,對數(shù)據(jù)流的連續(xù)操作由不同的處理器來執(zhí)行。例如第一個流可能由圖像的象素值組成,它被第一處理器處理從而產(chǎn)生8×8象素塊的DCT(離散余弦變換)系數(shù)塊的第二流。第二處理器可能處理DCT系數(shù)塊以便為每一個DCT系數(shù)塊產(chǎn)生選擇和壓縮的系數(shù)塊的流。


圖1示出了如現(xiàn)有技術(shù)已知的將應(yīng)用映射到處理器的例圖。為了實(shí)現(xiàn)數(shù)據(jù)流處理,提供多個處理器,每個處理器能夠重復(fù)地執(zhí)行特定操作,每次使用來自于數(shù)據(jù)對象流的下一個數(shù)據(jù)對象和/或產(chǎn)生在這種數(shù)據(jù)流中的下一個數(shù)據(jù)對象。流從一個處理器傳遞到另一個,所以由第一處理器產(chǎn)生的流可以被第二處理器處理,等等。從第一處理器傳遞數(shù)據(jù)到第二處理器的一個機(jī)制是通過將由第一處理器產(chǎn)生的數(shù)據(jù)塊寫入存儲器中。
在網(wǎng)絡(luò)中的數(shù)據(jù)流被緩沖。每個緩沖器被實(shí)現(xiàn)為正好具有一個寫裝置(writer)和一個或者多個讀裝置(reader)的FIFO。因為這種緩沖,所以寫裝置和讀裝置不需要在信道上互相同步單獨(dú)的讀和寫動作。從沒有足夠可用數(shù)據(jù)的信道中讀出會導(dǎo)致讀任務(wù)停止。處理器可以是僅可微弱編程的專用硬件功能單元。所有的處理器并行運(yùn)行并且執(zhí)行它們自己的控制線程。它們一起執(zhí)行Kahn類型的應(yīng)用,其中每個任務(wù)被映射到單獨(dú)一個處理器。該處理器允許多任務(wù),也就是多個Kahn可以被映射到單獨(dú)一個處理器。
本發(fā)明的一個目的是改進(jìn)Kahn類型數(shù)據(jù)處理系統(tǒng)的操作。
這個目的通過根據(jù)權(quán)利要求1的在數(shù)據(jù)處理系統(tǒng)中處理數(shù)據(jù)的方法和根據(jù)權(quán)利要求11的相應(yīng)數(shù)據(jù)處理系統(tǒng)來解決。
本發(fā)明是基于從讀和寫操作中分離同步操作的思想。因此提供了一種在數(shù)據(jù)處理系統(tǒng)中處理數(shù)據(jù)的方法,其中,所述數(shù)據(jù)處理系統(tǒng)包括用于處理數(shù)據(jù)對象流的一個第一和至少一個第二處理器,其中所述第一處理器將數(shù)據(jù)對象從數(shù)據(jù)對象流傳遞到第二處理器。所述數(shù)據(jù)處理系統(tǒng)還包括用于存儲和檢索數(shù)據(jù)對象的至少一個存儲器,其中提供了所述第一和第二處理器的共享存取。處理器執(zhí)行讀操作和/或?qū)懖僮饕员愫退乃龃鎯ζ鹘粨Q數(shù)據(jù)對象。所述處理器還執(zhí)行查詢操作和/或提交(commit)操作以便同步由所述處理器執(zhí)行的任務(wù)之間的數(shù)據(jù)對象轉(zhuǎn)移。所述查詢操作和所述提交操作獨(dú)立于所述讀操作和所述寫操作由所述處理器執(zhí)行。
這具有分離同步操作和讀/或?qū)懖僮鲗?dǎo)致更有效地實(shí)現(xiàn)并且通常提供它們的組合的優(yōu)點(diǎn)。此外,單個同步操作可以一次覆蓋一系列的讀或者寫操作,從而減少了同步操作的頻率。,在本發(fā)明的另一個方面,所述查詢操作通過第二處理器中的一個執(zhí)行,以便請求存取所述存儲器中的一組數(shù)據(jù)對象的權(quán)利,其中所述數(shù)據(jù)對象組通過所述處理器的一系列讀/寫操作在所述存儲器中產(chǎn)生或者消耗。而且,所述提交操作由所述第二處理器中的一個執(zhí)行,以便將存取所述數(shù)據(jù)對象組的權(quán)利轉(zhuǎn)移到另一個所述第二處理器。
在本發(fā)明的優(yōu)選方面,所述讀/寫操作啟動所述第二處理器從而隨機(jī)存取在所述存儲器中的所述數(shù)據(jù)元素組之一中的位置。在所述存儲器中的一個數(shù)據(jù)對象組中提供隨機(jī)存取產(chǎn)生幾個有趣的可能,例如數(shù)據(jù)處理無序和/或通過讀和寫存儲器讀取暫時存儲中間數(shù)據(jù)。
在本發(fā)明的另一個優(yōu)選方面,在任務(wù)被中斷之后,數(shù)據(jù)對象組的部分處理的實(shí)際任務(wù)狀態(tài)被丟棄,并且阻止對部分?jǐn)?shù)據(jù)對象組的提交操作。在避免保存任務(wù)實(shí)際狀態(tài)的成本的同時,這允許中斷任務(wù)。
在本發(fā)明再另一個優(yōu)選方面,在恢復(fù)被中斷的任務(wù)之后,處理器重新開始處理數(shù)據(jù)對象組,在此對所述數(shù)據(jù)對象組的先前處理結(jié)果被丟棄。在避免狀態(tài)恢復(fù)的成本的同時,這允許重新開始處理被中斷任務(wù)的完整的數(shù)據(jù)對象組。
在本發(fā)明的另一個方面,第三處理器從所述第一處理器接收存取數(shù)據(jù)對象組的權(quán)利。此后,它對所述數(shù)據(jù)對象組執(zhí)行讀和/寫操作,并最終將存取權(quán)利轉(zhuǎn)移到所述第二處理器,而不將所述數(shù)據(jù)對象組拷貝到共享存儲器中的另一個位置。這允許糾正或者替換單個數(shù)據(jù)對象。
本發(fā)明也涉及到一種數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括用于處理數(shù)據(jù)對象流的一個第一和至少一個第二處理器,所述第一處理器被安排用來將數(shù)據(jù)對象從數(shù)據(jù)對象流傳遞到第二處理器;和至少一個用于存儲和檢索數(shù)據(jù)對象的存儲器,其中,為所述第一和所述第二處理器提供共享存取,采用所述處理器執(zhí)行讀操作和/或?qū)懖僮饕员愫退龃鎯ζ鹘粨Q數(shù)據(jù)對象,和采用所述處理器執(zhí)行查詢操作和/或提交操作以便同步由所述處理器執(zhí)行的任務(wù)間的數(shù)據(jù)對象轉(zhuǎn)移,其中采用所述處理器來獨(dú)立于所述讀操作和所述寫操作執(zhí)行所述查詢操作和所述提交操作。
本發(fā)明的其它實(shí)施例在從屬權(quán)利要求中描述。
本發(fā)明的這些和其它方面參考附圖進(jìn)行更詳細(xì)的描述;這些圖示出了圖1是根據(jù)現(xiàn)有技術(shù)將應(yīng)用映射到處理器的示意圖;圖2a是處理器的主要處理流程圖;圖3a是根據(jù)第二實(shí)施例的基于流的處理系統(tǒng)的結(jié)構(gòu)示意方框圖;圖4是圖3系統(tǒng)中的同步操作和I/O操作的示意圖;圖5是循環(huán)FIFO存儲器示意圖;圖6是根據(jù)圖3在每個外殼中更新本地空間值的機(jī)制;
圖7是具有單個寫入裝置和多個讀裝置的FIFO緩沖器的示意圖;和圖8是用于三站流的有限存儲緩沖器實(shí)現(xiàn)。
本發(fā)明的優(yōu)選實(shí)施例涉及基于流的多處理器數(shù)據(jù)處理系統(tǒng),優(yōu)選地包括CPU和幾個處理器或者協(xié)處理器。該CPU將數(shù)據(jù)對象從數(shù)據(jù)對象流傳遞到這些處理器中的一個。CPU和處理器經(jīng)總線被耦合到至少一個存儲器。CPU和處理器使用該存儲器來存儲和檢索數(shù)據(jù)對象,其中CPU和處理器具有到存儲器的共享存取。
為了和他的所述存儲器交換數(shù)據(jù)對象,處理器執(zhí)行讀操作和/或?qū)懖僮?。所述處理器進(jìn)一步執(zhí)行查詢操作和/或提交操作以便同步在由所述處理器執(zhí)行的任務(wù)之間的所述對象的傳送。所述的查詢操作和所述提交操作由所述處理器獨(dú)立于所述度操作和所述寫操作執(zhí)行。
如上所述的同步操作可以被分離成查詢操作和提交操作。查詢操作告知處理器用于后繼讀操作的數(shù)據(jù)對象的可用性或用于后繼寫操作的存儲空間的可用性,也就是說,這也可以分別通過獲取數(shù)據(jù)(get_data)操作和獲取存儲空間(get_room)操作來實(shí)現(xiàn)。在處理器被告知了可用窗口或者可用數(shù)據(jù)組之后,它可以以它所喜歡的任何一種方式來存取緩沖器中可用窗口或者數(shù)據(jù)對象組。一旦處理器對數(shù)據(jù)對象組或者至少對所述數(shù)據(jù)對象組中的部分所述數(shù)據(jù)對象或所述存取窗口已經(jīng)執(zhí)行了必要的處理,處理器就可以分別使用釋放數(shù)據(jù)(put_data)或者釋放存儲空間(put_room)操作來發(fā)出提交信號到另一個處理器,用于指示在存儲器中數(shù)據(jù)或者存儲空間最近是可用的。
然而,在優(yōu)選地實(shí)施例中,這四個同步操作并沒有在數(shù)據(jù)和存儲空間操作的處理之間強(qiáng)加任何不同。因此,將這些操作概括為單個空間操作并且僅僅留下用于同步的兩個操作是有利的,這兩個操作分別是用于查詢和提交的獲取空間(get_space)和釋放空間(put_space)。
處理器明確地選定任務(wù)運(yùn)行期間所述任務(wù)可以被中斷的時刻。處理器持續(xù)到一個點(diǎn),在該點(diǎn)沒有或者僅僅有有限數(shù)量的例如足夠的輸入數(shù)據(jù)、緩沖存儲器中足夠的可用空間等等處理資源對處理器是可用的。這些點(diǎn)表示處理器發(fā)起任務(wù)切換的最好時機(jī)。任務(wù)切換的發(fā)起是由處理器通過發(fā)出對下一個將被處理的任務(wù)的調(diào)用來執(zhí)行。處理器對下一個任務(wù)的這種調(diào)用之間的間隔可以被定義為處理步驟。處理步驟可以包括讀出一個或者多個分組或者數(shù)據(jù)組,對獲得的數(shù)據(jù)執(zhí)行一些操作和寫入一個或者多個分組或者數(shù)據(jù)組。
讀出和寫入數(shù)據(jù)組的分組的概念沒有被整個系統(tǒng)結(jié)構(gòu)定義或者強(qiáng)迫執(zhí)行。數(shù)據(jù)組或者分組的概念在系統(tǒng)結(jié)構(gòu)的一般基礎(chǔ)結(jié)構(gòu)的層次上是不可見的。數(shù)據(jù)傳輸操作(也就是從緩沖存儲器中將數(shù)據(jù)讀出或者將數(shù)據(jù)寫入)和同步操作(也就是為了緩沖器管理目的的讀裝置和寫裝置之間的數(shù)據(jù)的實(shí)際消耗信令)被設(shè)計為在無格式字節(jié)流上操作。分組或者數(shù)據(jù)組的概念僅僅在系統(tǒng)結(jié)構(gòu)中的下一個功能層中出現(xiàn),也就是在實(shí)際執(zhí)行媒體處理的處理器中。
在處理器上運(yùn)行的每個任務(wù)可以作為處理步驟的副本被模擬,其中每個處理步驟試圖處理分組或者數(shù)據(jù)組。在執(zhí)行這種處理步驟之前,該任務(wù)和所述數(shù)據(jù)處理系統(tǒng)中的任務(wù)調(diào)度表交互以便確定處理器應(yīng)該繼續(xù)那個任務(wù)并提供明確的任務(wù)切換時刻。
在圖2中示出了處理器的一般處理的流程圖。在步驟S1,處理器執(zhí)行對引導(dǎo)到任務(wù)調(diào)度表的下一個任務(wù)的調(diào)用,以便確定它應(yīng)當(dāng)繼續(xù)哪個任務(wù)。在步驟S2,處理器從任務(wù)調(diào)度表中接收關(guān)于要被處理的下一個任務(wù)的相應(yīng)信息。此后,在步驟S3,處理繼續(xù)檢測屬于下一個要被處理的相關(guān)任務(wù)的輸入流,以便確定是否有足夠的數(shù)據(jù)或者其它處理資源視可用來執(zhí)行所請求的處理。這個初始的調(diào)查研究可以包含試圖讀出一些部分輸入和試圖解碼分組報頭。如果在步驟S4確定因為所有需要的處理資源都具備而可以繼續(xù)處理,那么流程跳到S5,并且相應(yīng)的處理器繼續(xù)處理當(dāng)前任務(wù)。當(dāng)處理器在步驟S6中已經(jīng)完成這個處理之后,流程將跳到下一個處理步驟,并且上述步驟被重復(fù)。
然而,如果在步驟S4確定處理器不能繼續(xù)當(dāng)前任務(wù)的處理,也就是,因為例如在輸入流的一個中缺少數(shù)據(jù)之類的不充足的處理資源,它不能完成當(dāng)前處理步驟,流程將轉(zhuǎn)到步驟S7,并且到此為止所做的部分處理的所有結(jié)果將不作任何狀態(tài)保存地被丟棄,也就是不保存在這個處理步驟中到此為止處理的處理的任何部分處理結(jié)果。該部分處理可能包含一些同步調(diào)用、數(shù)據(jù)讀操作或者對獲得數(shù)據(jù)的一些處理。此后,在步驟S8,流程將引導(dǎo)重新開始并在后面的階段中完全重作未完成的處理步驟。然而,只有在當(dāng)前任務(wù)沒有通過發(fā)送同步消息而提交它的任何流動作的時候,拋棄當(dāng)前任務(wù)并丟棄部分處理結(jié)果才是可能的。
尤其是在特定功能的硬件處理器中,排除了用于支持中間狀態(tài)存儲和恢復(fù)它的必要性可以簡化它們的設(shè)計并且降低它們所需的硅面積。
圖3示出了用于根據(jù)本發(fā)明第二實(shí)施例處理數(shù)據(jù)對象流的處理系統(tǒng)。該系統(tǒng)可以被分為不同層,即計算層1,通信支持層2和通信網(wǎng)絡(luò)層3。計算層1包括CPU 11和兩個處理器12a、12b。這僅僅是示例,顯然該系統(tǒng)可能包含更多的處理器。通信支持層2包括與CPU11相關(guān)的外殼21和分別與處理器12a、12b相關(guān)的外殼22a、22b。通信網(wǎng)絡(luò)層3包括通信網(wǎng)絡(luò)31和存儲器32。
優(yōu)選地,處理器12a、12b是專用處理器;每一個專門執(zhí)行有限范圍的流處理。每個處理器被設(shè)置為重復(fù)地將相同的處理操作應(yīng)用到流中的連續(xù)數(shù)據(jù)對象。處理器12a、12b每個可以執(zhí)行不同的任務(wù)或者功能,例如可變長度解碼、游程解碼、運(yùn)動補(bǔ)償、圖像縮放或者執(zhí)行DCT變換。在操作中,每個處理器12a、12b對一個或者多個數(shù)據(jù)流執(zhí)行操作。這些操作可能包含例如接收流而產(chǎn)生另一個流,或者接收流而不產(chǎn)生新的流,或者產(chǎn)生流而不接收流,或者修改接收的流。處理器12a、12b能夠處理由其它處理器12b、12a或者由CPU 11產(chǎn)生的流,甚至是它們自己產(chǎn)生的流。流包括一系列數(shù)據(jù)對象,該數(shù)據(jù)對象通過存儲器32從/向處理器12a、12b轉(zhuǎn)移。
外殼22a、22b包括面向作為通信層的通信網(wǎng)絡(luò)層的第一接口。這個層對于所有的外殼是統(tǒng)一的或者普通的。此外,外殼22a、22b包括面向分別與外殼22a、22b相關(guān)的處理器12a、12b的第二接口。第二接口是任務(wù)級接口并且面向相關(guān)處理器12a、12b定制以便能夠處理所述處理器12a、12b的特定需要。因此,外殼22a、22b具有作為第二接口的處理器特定接口,但是對于所有的處理器,外殼的整體結(jié)構(gòu)是統(tǒng)一的或者普通的,以便在整體系統(tǒng)結(jié)構(gòu)中,便于外殼的重新使用,同時還允許特定應(yīng)用的參數(shù)確定或者采用。
外殼22a、22b包括用于數(shù)據(jù)傳輸?shù)淖x/寫單元、同步單元和任務(wù)切換單元。這三個單元基于主/從基礎(chǔ)與相關(guān)的處理器進(jìn)行通信,其中處理器作為主設(shè)備。因此,相應(yīng)的三個單元通過來自處理器的請求被初始化。優(yōu)選地,在處理器和三個單元之間的通信通過請求-確認(rèn)握手機(jī)制來實(shí)現(xiàn),以便移交變元(argument)值和等待被請求的值返回。因此,通信被阻塞,也就是各自的控制線等待它們的完成。
優(yōu)選地,讀/寫單元實(shí)現(xiàn)兩個不同的操作,即讀操作使處理器12a、12b能夠從存儲器中讀出數(shù)據(jù)對象,寫操作使處理器12a、12b能夠?qū)?shù)據(jù)對象寫入存儲器32。每個任務(wù)具有預(yù)定義的一系列對應(yīng)于數(shù)據(jù)流附著點(diǎn)的端口。這些操作的變元是各自端口的ID“port_id”、、讀/寫發(fā)生的偏移“offset”、和數(shù)據(jù)對象的可變長度“n_bytes”。通過“port_id”變元來選擇端口。
同步單元實(shí)現(xiàn)同步的兩個操作以便在從空FIFO中讀出或者向滿FIFO寫入時處理本地阻塞狀態(tài)。第一操作(即,獲取空間操作)是在實(shí)現(xiàn)為FIFO的存儲器中請求空間的操作,第二操作(也就是釋放空間操作)是在FIFO中請求釋放空間。這些操作的變元是“port_id”和“n_bytes”可變長度。
獲取空間操作和釋放空間操作是基于同步的線性帶或FIFO順序來執(zhí)行的,當(dāng)在由所述操作獲得的窗口之內(nèi)時,支持隨機(jī)訪問讀/寫動作。
任務(wù)切換單元將處理器的任務(wù)切換實(shí)現(xiàn)為獲取任務(wù)操作。這些操作的變元是“blocked”、“error”和“task_info“。
變元”blocked”是布爾值,如果因為對輸入端口或者輸出端口的獲取空間調(diào)用已經(jīng)返回錯誤,所以最后處理步驟沒有被成功完成時,該布爾值被設(shè)定為真。因此,任務(wù)調(diào)度單元被迅速通知,除非對于阻塞的端口新的“space(空間)”消息到達(dá),否則這個任務(wù)最好不要被重新調(diào)度。這個變元值被認(rèn)為是僅僅通向改進(jìn)的調(diào)度但永遠(yuǎn)不會影響到功能性的建議。變元“error”是布爾值,如果在最后處理步驟在協(xié)處理器內(nèi)部發(fā)生致命的錯誤,那么該布爾值被設(shè)定為真。來自mpeg解碼的例子是例如出現(xiàn)未知的可變長度代碼或者無效的運(yùn)動矢量。如果是這樣,那么外殼清除任務(wù)表使能標(biāo)志以便防止進(jìn)一步的調(diào)度,并且中斷被發(fā)送到主CPU以便修復(fù)系統(tǒng)狀態(tài)。直到CPU通過軟件交互,當(dāng)前任務(wù)才被明確地調(diào)度。
上述操作被來自于處理器的讀調(diào)用、寫調(diào)用、獲取空間調(diào)用、釋放空間調(diào)用或者獲取任務(wù)發(fā)起。
圖4描述了處理器的讀和寫及其相關(guān)同步操作。從處理器的觀點(diǎn)來看,數(shù)據(jù)流看起來像具有當(dāng)前存取點(diǎn)的無限數(shù)據(jù)帶。從處理器發(fā)出的獲取空間調(diào)用要求允許存取在圖4a中小箭頭所示的當(dāng)前存取點(diǎn)之前的特定數(shù)據(jù)空間。如果授予了權(quán)限,那么處理器可以在請求的空間中,也就是圖4b中的外加框的窗口中,使用如由n_bytes變元指示的可變長度數(shù)據(jù),在由offset變元指示的隨機(jī)存取位置執(zhí)行讀和寫動作。
如果沒有授予權(quán)限,那么調(diào)用返回假。在一個或者多個獲取空間調(diào)用(和任意幾個讀/寫動作)之后,處理器可以決定是否完成處理或者數(shù)據(jù)空間的某些部分并發(fā)出釋放空間調(diào)用。這個調(diào)用使存取點(diǎn)前進(jìn)一定數(shù)目的字節(jié),也就是在圖4d中前面的n_bytes2,其中該空間大小被前面已授權(quán)的空間約束。
根據(jù)圖2所示優(yōu)選實(shí)施例的方法的普通處理步驟也可以基于根據(jù)圖3的數(shù)據(jù)處理系統(tǒng)來執(zhí)行。主要的不同在于,圖3中各自處理器12的外殼接管處理器和存儲器之間的通信。
因此,在圖2中示出了處理器12a、12b的主要處理流程圖。在步驟S1,處理器執(zhí)行指向所述處理器12中的外殼22中的任務(wù)調(diào)度單元的獲取任務(wù)調(diào)用,以便確定應(yīng)該繼續(xù)哪個任務(wù)。在步驟S2,處理器從它相關(guān)的外殼,或者更精確地講,從所述外殼22的任務(wù)調(diào)度單元接收關(guān)于要被處理的下一個任務(wù)的相應(yīng)信息。此后,在步驟S3,處理器繼續(xù)檢查屬于下一個要被處理的相關(guān)任務(wù)的輸入流,以便確定是否有足夠的數(shù)據(jù)或者其它處理資源可用于執(zhí)行請求的處理。初始調(diào)查可以包括試圖讀出某部分輸入以及解碼分組報頭。如果在步驟S4中確定,因為具備所有需要的處理資源,所以處理可以繼續(xù),那么流程跳到步驟S5,并且相應(yīng)的處理器12繼續(xù)處理當(dāng)前任務(wù)。在處理器12已經(jīng)在步驟S6完成這個任務(wù)之后,流程將跳到下一個處理步驟,并且上述步驟將被重復(fù)。
然而,如果在步驟S4中確定,因為缺少足夠的處理資源,如缺少在一個輸入流中的數(shù)據(jù),處理器12不能繼續(xù)當(dāng)前任務(wù)的處理,也就是它不能完成當(dāng)前的處理步驟,那么流程前進(jìn)到步驟S7,并且到此為止完成的部分處理的所有結(jié)果都在沒有保存任何狀態(tài)的情況下被丟棄,也就是,沒有保存在這個處理步驟中到此為止處理的部分處理的結(jié)果。該部分處理可能包括某些獲取空間調(diào)用、數(shù)據(jù)讀操作或者對獲得數(shù)據(jù)的某些處理。此后,在步驟S8,流程將引導(dǎo)重新開始并在后面的階段完全重作未完成的處理步驟。然而,只有在當(dāng)前任務(wù)沒有通過發(fā)送同步消息而提交它的任何流動作時,拋棄當(dāng)前任何并丟棄部分處理結(jié)果才是可能的。
圖5描述了循環(huán)FIFO存儲器的示意圖。數(shù)據(jù)流的通信需要FIFO緩沖器,優(yōu)選地,該緩沖器具有有限和固定的大小。優(yōu)選地,它在存儲器中是預(yù)分配的,并且在線性存儲器地址范圍中,循環(huán)尋址機(jī)制被應(yīng)用于適當(dāng)?shù)腇IFO行為。
圖5中心的旋轉(zhuǎn)箭頭描述了來自處理器的獲取空間調(diào)用確認(rèn)用于讀/寫的授權(quán)窗口的方向,這是和先前釋放空間調(diào)用向前移動存取點(diǎn)的方向是一樣的。小箭頭51、52指示任務(wù)A和B的當(dāng)前存取點(diǎn)。在這個例子中,A是一個寫裝置,因此在后面留下適當(dāng)?shù)臄?shù)據(jù),而B是讀裝置,留下空白空間(或者無意義的垃圾)。在每個存取點(diǎn)之前的陰影區(qū)域(A1、B1)指示通過獲取空間操作獲得的存取窗口。
任務(wù)A和B可以以不同的速度進(jìn)行,和/或者因為多任務(wù),在某個時間段可以不被服務(wù)。外殼22a、22b向A和B在其上運(yùn)行的處理器12a、12b提供信息以便確保A和B的存取點(diǎn)保持它們相應(yīng)的順序,或者更嚴(yán)格地,授權(quán)的存取窗口永遠(yuǎn)不重疊。處理器12a、12b的責(zé)任是使用由外殼22a、22b提供的信息以便實(shí)現(xiàn)所有功能的正確性。例如,外殼22a、22b有時可能以非來回答來自處理器的獲取空間請求,例如因為在緩沖器中沒有足夠可用空間。然后,處理器應(yīng)當(dāng)根據(jù)存取的否認(rèn)請求抑制對緩沖器的存取。
外殼22a、22b被這樣分布,使得每個外殼可以靠近與之相關(guān)的處理器12a、12b來實(shí)現(xiàn)。每個外殼22a、22b本地包含用于流的配置數(shù)據(jù),該流伴隨著映射到它的處理器上的任務(wù),并且每個外殼22a、22b本地實(shí)現(xiàn)了所有的控制邏輯以便適當(dāng)?shù)靥幚磉@個數(shù)據(jù)。因此,本地流表在外殼22a、22b中被實(shí)現(xiàn),該外殼22a、22b對于每個流包含一行字段,換句話說,對于每個存取點(diǎn)包含一行字段。
為了處理圖5的排列,任務(wù)A和B的處理器外殼的流表每個包含一個這種行,“space”字段,包含(可能是不利的)從它自己的存取點(diǎn)到這個緩沖器中的其它存取點(diǎn)之間的距離和指示具有在這個緩沖器中的其它存取點(diǎn)的任務(wù)和端口的遠(yuǎn)端外殼的ID。此外,所述的本地流表可能包含相應(yīng)于當(dāng)前存取點(diǎn)的存儲器地址和緩沖器基地址的編碼以及緩沖器大小以便支持引用地址的增加。
優(yōu)選地,這些流表是映射到每個所述外殼22中的小存儲器的存儲器,例如寄存器堆。因此,獲取空間調(diào)用可以通過將請求的大小和本地存儲的可用空間相比較在本地被立即回答。在釋放空間調(diào)用時,這個本地空間域被減少指示的數(shù)量并且釋放空間消息被發(fā)送到保存先前存取點(diǎn)的另一個外殼以便增加它的空間值。相應(yīng)地,一旦從遠(yuǎn)程源接收到這種釋放消息,外殼22就增加本地域。因為在外殼之間的消息傳送占用時間,因此,可能發(fā)生兩個空間域不需要相加為整個緩沖器大小但是可能立即包含不利值的情況。然而,這并不違反同步安全。這甚至可以在多個消息同時都在通向目的地的路上并且它們次序混亂地被維護(hù)的異常情況下發(fā)生,但是即使在那種情況下,同步仍保持正確。
圖6示出了在每個外殼中更新本地空間值并發(fā)送“釋放空間”消息的機(jī)制。這這個方案中,來自處理器12a、12b的獲取空間請求(也就是獲取空間調(diào)用)可以通過將請求的大小和本地存儲空間信息相比較而在相關(guān)的外殼22a、22b中在本地立即被回答。在釋放空間調(diào)用時,本地外殼22a、22b減少它的空間域指示的數(shù)量并發(fā)送釋放空間消息給遠(yuǎn)程外殼。該遠(yuǎn)程外殼(即,另一個處理器的外殼)保存其它的存取點(diǎn)并增加那里的空間值。相應(yīng)地,本地外殼在從遠(yuǎn)程源中接收到這種釋放空間消息時增加它的空間域。
屬于存取點(diǎn)的空間域通過兩個源被修改在本地釋放空間調(diào)用時被減小和在接收到釋放空間消息時增加。這種增加或者減小不是作為原子操作來實(shí)現(xiàn)的,這將導(dǎo)致錯誤的結(jié)果。在這種情況下,分離的本地空間和遠(yuǎn)程空間域可能被使用,其中的每一個僅僅通過單個源來修改。在本地獲取空間調(diào)用時,這些值被減小。外殼22總是控制它自己的本地表的更新并且以原子方式執(zhí)行這些。非常清楚,這僅僅是外殼實(shí)現(xiàn)問題,這對于它外部的功能是不可見的。
如果獲取空間調(diào)用返回假,那么處理器免于決定怎樣反映。可能性是a)處理器可以發(fā)出具有更小n_bytes變元的新的獲取空間調(diào)用,b)處理器可能等待一會然后重試,或者c)處理器可能退出當(dāng)前任務(wù)并允許在這個處理器上進(jìn)行另一個任務(wù)。
這允許任務(wù)切換的決定取決于更多數(shù)據(jù)的期望達(dá)到時間和具有相關(guān)狀態(tài)保存成本的內(nèi)部累加狀態(tài)的數(shù)量。對于不可編程的專用硬件處理器,這個決定是結(jié)構(gòu)設(shè)計過程的一部分。
外殼22的實(shí)現(xiàn)和操作在讀和寫端口之間沒有區(qū)別,盡管特定的示例可能造成這些不同。由外殼22實(shí)現(xiàn)的操作有效地隱藏了諸如FIFO緩沖器大小、它在存儲器中的位置、任何關(guān)于存儲器邊界循環(huán)FIFO的地址的繞回機(jī)制、高速緩存策略、高速緩存一致性、全局I/O對準(zhǔn)限制、數(shù)據(jù)總線寬度、存儲器對準(zhǔn)限制、通信網(wǎng)絡(luò)結(jié)構(gòu)和存儲器組織之類的實(shí)現(xiàn)方面。
優(yōu)選地,外殼22a、22b對無格式字節(jié)序列操作。不需要在傳遞數(shù)據(jù)流的寫裝置和度裝置使用的同步分組大小之間的任何相關(guān)。數(shù)據(jù)內(nèi)容的語義解釋留給處理器。任務(wù)不知道應(yīng)用圖形關(guān)聯(lián)結(jié)構(gòu),例如它正在傳遞其它哪些任務(wù),這些任務(wù)映射到哪些處理器上,或者其它還有哪些任務(wù)被映射到相同的處理器上。
在外殼22的高性能實(shí)現(xiàn)中,讀調(diào)用、寫調(diào)用、獲取空間調(diào)用、釋放空間調(diào)用可以通過外殼22a、22b的讀/寫單元和同步單元被并行發(fā)出。對外殼22的不同端口起作用的調(diào)用沒有相互排序限制,而對外殼22的相同端口起作用的調(diào)用必須根據(jù)調(diào)用者任務(wù)或者處理器來排序。對于這種情況,當(dāng)先前的調(diào)用已經(jīng)返回時,在軟件實(shí)現(xiàn)中通過從函數(shù)調(diào)用中返回,在硬件實(shí)現(xiàn)中通過提供確認(rèn)信號,可以使來自于處理器的下一個調(diào)用開始。
為了在由port-ID和offset變元指示的位置執(zhí)行從存儲器到外殼高速緩存的數(shù)據(jù)預(yù)取,在讀調(diào)用中的大小變元(即n_bytes)的零值可以被保留。這種操作可以被用于由外殼執(zhí)行的自動預(yù)取。同樣,對于高速緩存刷新請求來說,寫調(diào)用中的零值可以被保留,雖然自動高速緩存刷新是外殼的責(zé)任。
可選地,所有的五個操作接受附加的最后任務(wù)ID變元。這通常是作為結(jié)果值從更早獲取任務(wù)調(diào)用中獲得的小正數(shù)。這個變元的零值為非任務(wù)特定的但與處理器控制相關(guān)的調(diào)用保留。
在優(yōu)選實(shí)施例中,建立通信數(shù)據(jù)流是一個具有連接到有限大小FIFO緩沖器的一個寫裝置和一個讀裝置的流。這種流需要具有有限和固定大小的FIFO緩沖器。它將在存儲器中預(yù)先分配并且它的線性地址范圍是循環(huán)的,尋址機(jī)制應(yīng)用于適當(dāng)?shù)腇IFO行為。
然而在基于圖3和圖7的另一個實(shí)施例中,由一個任務(wù)產(chǎn)生的數(shù)據(jù)流由具有不同輸入端口的兩個或者更多不同的消費(fèi)者消費(fèi)。這種情況可以通過術(shù)語分支(forking)來描述。然而,對于多任務(wù)硬件處理器和運(yùn)行在CPU上的軟件任務(wù),我們想要重新使用任務(wù)實(shí)現(xiàn)。這是通過具有固定數(shù)目端口的任務(wù)來實(shí)現(xiàn)的,相應(yīng)于它們的基本功能,并且由應(yīng)用配置誘發(fā)的對分支的任何需求由外殼來解決。
很清楚,流分支可以由外殼22僅僅通過保持兩個分離的正常流緩沖器、加倍所有的寫和釋放空間操作和對加倍的獲取空間檢測的結(jié)果值執(zhí)行AND操作來實(shí)現(xiàn)。優(yōu)選地,因為成本包含加倍的寫帶寬并可能包含更多的緩沖器空間,所以不實(shí)現(xiàn)這個。優(yōu)選地,這個實(shí)現(xiàn)通過共享相同F(xiàn)IFO緩沖器的兩個或者更多讀裝置和一個寫裝置來完成。
圖7示出了具有單個寫裝置和多個讀裝置的FIFO緩沖器的圖示。同步機(jī)制必須確保A和B之間的正常成對排序緊接著A和C之間的成對排序,而B和C沒有相互制約,例如假設(shè)它們是單純的讀裝置。這在與執(zhí)行寫操作的處理器相關(guān)的外殼中通過分別為每個讀裝置(A到B和A到C)跟蹤可用的空間來完成。當(dāng)寫裝置執(zhí)行本地獲取空間調(diào)用時,它的n_bytes變元與這些空間值中的每一個相比較。這是通過對于由一個額外的域或者列連接的分支在所述流表中使用額外行從而指示變化到下一行來實(shí)現(xiàn)的。
對于分支沒有被使用并且同時沒有限制分支為僅僅兩路的多數(shù)情況下,這提供了非常少的開銷。優(yōu)選地,分支僅僅通過寫裝置來實(shí)現(xiàn),而讀裝置并不知道這種情況。
在基于圖3和圖8的另一個實(shí)施例中,根據(jù)帶模型,數(shù)據(jù)流被實(shí)現(xiàn)為三站流(three station stream)。每一個站執(zhí)行通過數(shù)據(jù)流的一些更新。三站流應(yīng)用的一個例子是一個寫裝置、中間監(jiān)視器和最終的讀裝置。在第二任務(wù)的這種例子中,優(yōu)選地監(jiān)視通過的數(shù)據(jù)并可能檢查一些,而多數(shù)允許數(shù)據(jù)通過而不作修改。相對不頻繁地,它可能決定改變流中的幾個項目或者數(shù)據(jù)對象。這可以通過處理器適當(dāng)更新緩沖器從而避免全部流內(nèi)容從一個緩沖器復(fù)制到另一個來有效地實(shí)現(xiàn)。實(shí)際上,當(dāng)硬件處理器通信和主要CPU 11干涉從而修改流以便糾正硬件錯誤、適應(yīng)稍微不同的流格式、或者僅僅用于調(diào)試原因時,這可能是有用的。這種建立可以通過所有三個共享存儲器中單個流緩沖器的處理器來實(shí)現(xiàn),從而減少存儲器業(yè)務(wù)和處理器工作負(fù)荷。實(shí)際上,任務(wù)B并不讀出或?qū)懭胝麄€數(shù)據(jù)流。
圖8描述了三站流的有限存儲緩沖器的實(shí)現(xiàn)。這種三路緩沖器適當(dāng)?shù)恼Z義包括使A、B和C相互之間保持嚴(yán)格的順序并確保沒有重疊的窗口。通過這種方式,三路緩沖器是圖5所示兩路緩沖器的擴(kuò)展。這種多路循環(huán)FIFO由如上所述的外殼的操作以及如優(yōu)選實(shí)施例中描述的帶有釋放消息的分布式實(shí)現(xiàn)類型來直接支持。在單個FIFO中并沒有限制正好有三個站。一個站既消耗又產(chǎn)生有用數(shù)據(jù)的適當(dāng)處理可以通過僅僅兩個站來應(yīng)用。在這種情況下,兩個任務(wù)執(zhí)行適當(dāng)處理以便相互交換數(shù)據(jù),并且在緩沖器中沒有留下空白空間。
在基于圖2的優(yōu)選實(shí)施例的另一個實(shí)施例中,讀/寫操作和同步操作的邏輯分離思想被實(shí)現(xiàn)為數(shù)據(jù)傳輸?shù)奈锢矸蛛x,也就是讀和寫操作以及同步的物理分離。優(yōu)選地,允許傳輸(即,數(shù)據(jù)的讀/寫操作)的高帶寬的寬總線被實(shí)現(xiàn)。一個獨(dú)立的通信網(wǎng)被實(shí)現(xiàn)用于同步操作,因為,將相同的寬總線用于同步看起來不是優(yōu)選的。這種安排具有這樣的優(yōu)點(diǎn),兩個網(wǎng)絡(luò)均為各自的用途被優(yōu)化。因此,數(shù)據(jù)傳輸網(wǎng)為存儲器I/O(也就是讀和寫操作)被優(yōu)化,同步網(wǎng)絡(luò)為處理器間消息被優(yōu)化。
優(yōu)選地,同步網(wǎng)絡(luò)被實(shí)現(xiàn)為消息傳遞環(huán)形網(wǎng)絡(luò),為了這個目的,它已經(jīng)被特別調(diào)諧和優(yōu)化。這種環(huán)形網(wǎng)絡(luò)是小和可伸縮的,從而支持可伸縮結(jié)構(gòu)的靈活性要求。因為同步延遲被數(shù)據(jù)流緩沖器和存儲器吸收了,所以環(huán)形網(wǎng)絡(luò)的更高延遲不會負(fù)面地影響網(wǎng)絡(luò)性能。環(huán)形網(wǎng)絡(luò)總的吞吐量是非常高的,并且環(huán)形網(wǎng)絡(luò)中的每一條鏈路可以允許通過同步消息,從而允許同時出現(xiàn)和處理器一樣多的消息。
在基于圖3的另一個實(shí)施例中,數(shù)據(jù)傳輸和同步的物理分離思想被實(shí)現(xiàn)。在外殼22a中的同步單元連接到在另一個外殼22b中的其它同步單元。同步單元確保在被處理的流的有效數(shù)據(jù)已經(jīng)被寫入這些存儲器位置中之前處理器不存取該存儲器位置。相似地,同步接口被用于確保處理器12a不覆蓋存儲器32中的有用數(shù)據(jù)。同步單元通過同步消息網(wǎng)絡(luò)通信。優(yōu)選地,它們形成環(huán)形網(wǎng)絡(luò)的一部分,其中,同步信號從一個處理器被傳遞到另一個處理器,或者當(dāng)在任何隨后處理器中不需要這些信號時,它們被阻塞和覆蓋。同步單元一起形成同步信道。同步單元維持關(guān)于存儲器空間的信息,該存儲空間用于從處理器12a向處理器12b傳送數(shù)據(jù)對象流。
權(quán)利要求
1.一種用于在數(shù)據(jù)處理系統(tǒng)中處理數(shù)據(jù)的方法,所述系統(tǒng)包括用于處理數(shù)據(jù)對象流的一個第一處理器和至少一個第二處理器,所述第一處理器被安排用來將數(shù)據(jù)對象從數(shù)據(jù)對象流傳遞到第二處理器,和至少一個用于存儲和檢索數(shù)據(jù)對象的存儲器,其中提供了用于所述第一和所述第二處理器的共享存取,所述方法包括步驟-所述處理器執(zhí)行讀操作和/或?qū)懖僮饕员愫退龃鎯ζ鹘粨Q數(shù)據(jù)對象;和-所述處理器執(zhí)行查詢操作和/或提交操作以便同步由所述處理器執(zhí)行的任務(wù)之間的數(shù)據(jù)對象轉(zhuǎn)移;其中,所述查詢操作和所述提交操作獨(dú)立于所述讀操作和所述寫操作由所述處理器執(zhí)行。
2.根據(jù)權(quán)利要求1的方法,其特征在于,所述查詢操作由所述第二處理器中的一個執(zhí)行以便請求存取所述存儲器中的一組數(shù)據(jù)對象的權(quán)利,其中所述數(shù)據(jù)對象組通過所述處理器的一系列讀/寫操作在所述存儲器中產(chǎn)生或者消耗;和所述提交操作由所述第二處理器中的一個執(zhí)行,以便將存取所述數(shù)據(jù)對象組的權(quán)利轉(zhuǎn)移到所述第二處理器中的另一個。
3.根據(jù)權(quán)利要求1或者2的方法,其特征在于,所述存儲器是FIFO緩沖器,和使用所述查詢和提交操作來控制所述存儲緩沖器的FIFO行為以便通過所述共享存儲緩沖器在所述第一和第二處理器間傳輸數(shù)據(jù)對象流。
4.根據(jù)權(quán)利要求1、2或者3的方法,其特征在于,第三處理器從所述第一處理器接收存取數(shù)據(jù)對象組的權(quán)利,對所述數(shù)據(jù)對象組執(zhí)行讀和/或?qū)懖僮?,以及將存取?quán)利轉(zhuǎn)移到所述第二處理器,而不將所述數(shù)據(jù)對象組拷貝到所述共享存儲器中的另一個位置。
5.根據(jù)權(quán)利要求1的方法,其特征在于,所述第二處理器是多任務(wù)處理器,能夠?qū)χ辽俚谝缓偷诙蝿?wù)進(jìn)行交織處理,其中所述的至少第一和第二任務(wù)處理數(shù)據(jù)對象流。
6.根據(jù)權(quán)利要求1或者5的方法,其特征在于,所述第二處理器是用于執(zhí)行一個范圍的流處理任務(wù)的功能特定的專用處理器。
7.根據(jù)權(quán)利要求2的方法,其特征在于,所述讀/寫操作使得所述第二處理器能夠隨機(jī)存取在所述存儲器中的所述數(shù)據(jù)對象組之一中的位置。
8.根據(jù)權(quán)利要求1的方法,其特征在于,當(dāng)?shù)谝蝗蝿?wù)對數(shù)據(jù)對象組的處理被中斷時,暫時阻止對所述數(shù)據(jù)對象組的進(jìn)一步處理,其中當(dāng)所述第一任務(wù)對所述數(shù)據(jù)元素組的處理被中斷時,執(zhí)行第二任務(wù)對數(shù)據(jù)對象的處理。
9.根據(jù)權(quán)利要求8的方法,其特征在于,在任務(wù)被中斷之后,數(shù)據(jù)對象組的部分處理的實(shí)際任務(wù)狀態(tài)被丟棄,并且阻止該部分?jǐn)?shù)據(jù)對象組的提交操作。
10.根據(jù)權(quán)利要求7的方法,其特征在于,在恢復(fù)了被中斷的任務(wù)之后,處理器重新開始處理數(shù)據(jù)對象組,從而丟棄對所述組的先前處理。
11.一種數(shù)據(jù)處理系統(tǒng),包括-用于處理數(shù)據(jù)對象流的一個第一處理器和至少一個第二處理器,所述第一處理器被安排用來將數(shù)據(jù)對象從數(shù)據(jù)對象流傳遞到第二處理器,和-至少一個用于存儲和檢索數(shù)據(jù)對象的存儲器,其中提供了用于所述第一和所述第二處理器的共享存取,-所述處理器被用來執(zhí)行讀操作和/或?qū)懖僮饕员愫退龃鎯ζ鹘粨Q數(shù)據(jù)對象;和-所述處理器被用來執(zhí)行查詢操作和/或提交操作以便同步由所述處理器執(zhí)行的任務(wù)之間的數(shù)據(jù)對象轉(zhuǎn)移;其中,所述處理器被用來獨(dú)立于所述讀操作和所述寫操作執(zhí)行所述查詢操作和/或所述提交操作。
12.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其特征在于,所述第二處理器被用來執(zhí)行所述查詢操作以便請求存取所述存儲器中的一組數(shù)據(jù)對象的權(quán)利,其中所述數(shù)據(jù)對象組通過所述處理器的一系列讀/寫操作在所述存儲器中產(chǎn)生或者消耗;和所述第二處理器被用來執(zhí)行所述提交操作,以便將存取所述數(shù)據(jù)對象組的權(quán)利轉(zhuǎn)移到所述第二處理器中的另一個。
13.根據(jù)權(quán)利要求11或者12的數(shù)據(jù)處理系統(tǒng),其特征在于,所述存儲器是FIFO緩沖器,和所述處理器被用來執(zhí)行所述查詢和提交操作以便控制所述存儲緩沖器的FIFO行為,從而通過所述共享存儲緩沖器在所述第一和第二處理器之間傳輸數(shù)據(jù)對象流。
14.根據(jù)權(quán)利要求11、12或者13的數(shù)據(jù)處理系統(tǒng),包括第三處理器,它被用來從所述第一處理器接收存取數(shù)據(jù)對象組的權(quán)利,對所述數(shù)據(jù)對象組執(zhí)行讀和/或?qū)懖僮鳎约皩⒋嫒?quán)利轉(zhuǎn)移到所述第二處理器,而不將所述數(shù)據(jù)對象組拷貝到所述共享存儲器中的另一個位置。
15.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其特征在于,所述第二處理器是多任務(wù)處理器,能夠?qū)χ辽俚谝缓偷诙蝿?wù)進(jìn)行交織處理,其中所述的至少第一和第二任務(wù)處理數(shù)據(jù)對象流。
16.根據(jù)權(quán)利要求11或者16的數(shù)據(jù)處理系統(tǒng),其特征在于,所述第二處理器是用于執(zhí)行一個范圍流處理任務(wù)的功能特定的專用處理器。
17.根據(jù)權(quán)利要求12的數(shù)據(jù)處理系統(tǒng),其特征在于,所述第二處理器被用來執(zhí)行讀和/或?qū)懖僮?,從而使得能夠隨機(jī)存取在所述存儲器中的所述數(shù)據(jù)對象組之一中的位置。
18.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其特征在于,當(dāng)?shù)谝蝗蝿?wù)對數(shù)據(jù)對象組的處理被中斷時,暫時阻止對所述數(shù)據(jù)對象組的進(jìn)一步處理,其中當(dāng)所述第一任務(wù)對所述數(shù)據(jù)元素組的處理被中斷時,執(zhí)行第二任務(wù)對數(shù)據(jù)對象的處理。
19.根據(jù)權(quán)利要求18的數(shù)據(jù)處理系統(tǒng),其特征在于,在任務(wù)被中斷之后,數(shù)據(jù)對象組的部分處理的實(shí)際任務(wù)狀態(tài)被丟棄,并且阻止該部分?jǐn)?shù)據(jù)對象組的提交操作。
20.根據(jù)權(quán)利要求19的數(shù)據(jù)處理系統(tǒng),其特征在于,在恢復(fù)了被中斷的任務(wù)之后,處理器重新開始處理數(shù)據(jù)對象組,從而丟棄對所述組的先前處理。
全文摘要
本發(fā)明是基于從讀和寫操作中分離同步操作的思想。因此提供了一種在數(shù)據(jù)處理系統(tǒng)中處理數(shù)據(jù)的方法,其中所述數(shù)據(jù)處理系統(tǒng)包括用于處理數(shù)據(jù)對象流的一個第一和至少一個第二處理器,其中所述第一處理器將數(shù)據(jù)對象從數(shù)據(jù)對象流傳遞到第二處理器。所述數(shù)據(jù)處理系統(tǒng)還包括用于存儲和檢索數(shù)據(jù)對象的至少一個存儲器,其中提供了所述第一和第二處理器的共享存取。處理器執(zhí)行讀操作和/或?qū)懖僮饕员愫退乃龃鎯ζ鹘粨Q數(shù)據(jù)對象。所述處理器還執(zhí)行查詢操作和/或提交操作以便同步由所述處理器執(zhí)行的任務(wù)之間的數(shù)據(jù)對象轉(zhuǎn)移。所述查詢操作和所述提交操作獨(dú)立于所述讀操作和所述寫操作由所述處理器執(zhí)行。
文檔編號G06F15/167GK1602469SQ02824765
公開日2005年3月30日 申請日期2002年12月5日 優(yōu)先權(quán)日2001年12月14日
發(fā)明者J·T·J·范埃德霍文, E·J·波, M·J·魯特坦 申請人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1