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

具有多處理器的數(shù)據(jù)處理系統(tǒng)和在具有多處理器的數(shù)據(jù)處理系統(tǒng)中的通信裝置的制作方法

文檔序號(hào):6433221閱讀:123來(lái)源:國(guó)知局
專利名稱:具有多處理器的數(shù)據(jù)處理系統(tǒng)和在具有多處理器的數(shù)據(jù)處理系統(tǒng)中的通信裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及具有多處理器的數(shù)據(jù)處理系統(tǒng),和在具有多處理器的數(shù)據(jù)處理系統(tǒng)中的通信裝置。
用于高性能、依賴數(shù)據(jù)的媒體處理(例如用于高清晰度MPEG解碼)的異類多處理器結(jié)構(gòu)是已知的。媒體處理應(yīng)用程序可以定義為一組并行執(zhí)行的任務(wù),這些任務(wù)只通過(guò)單向數(shù)據(jù)流交換信息。G..Kahn已經(jīng)在1974年介紹了這種應(yīng)用程序的一種形式模型,“The Semantics ofa Simple Language for Parallel Programming”,(并行編程用的簡(jiǎn)單語(yǔ)言的語(yǔ)義學(xué))IFIP第74次會(huì)議會(huì)議錄,8月5-10日,斯德哥爾摩,瑞典,North-Holland publ.Co.1974,第471-475頁(yè),隨后在1977年又由Kahn和MacQueen在下面的文章中進(jìn)行操作說(shuō)明,“Co-routines and Networks of parallel Programming”,(并行編程的協(xié)同程序和網(wǎng)絡(luò))Information Processing 77,BGilchhirst(ED.),North-Holland publ.1977,第993-998頁(yè)。這一形式模型現(xiàn)在一般稱為Kahn處理網(wǎng)絡(luò)。
公知一個(gè)應(yīng)用程序是一組可并行執(zhí)行的任務(wù)。信息只可以通過(guò)單向數(shù)據(jù)流在這些任務(wù)間交換。任務(wù)只應(yīng)該通過(guò)關(guān)于預(yù)定數(shù)據(jù)流的讀寫(xiě)過(guò)程確定性地進(jìn)行通信。數(shù)據(jù)流是在FIFO行為的基礎(chǔ)上實(shí)現(xiàn)緩沖存儲(chǔ)。由于這一緩沖存儲(chǔ),通過(guò)數(shù)據(jù)流通信的兩個(gè)任務(wù)不必為各個(gè)的讀寫(xiě)處理進(jìn)行同步。
在流處理中,對(duì)數(shù)據(jù)流的連續(xù)操作是在不同的處理器上實(shí)現(xiàn)的。例如,第一流可能包含圖像的像素值,這些值由第一處理器處理以產(chǎn)生8×8像素塊的DCT(離散余弦變換)系數(shù)塊的第二流。第二處理器可以處理所述DCT系數(shù)塊,以為每一DCT系數(shù)塊產(chǎn)生所選擇的和經(jīng)壓縮的系數(shù)塊的流。


圖1表示現(xiàn)有技術(shù)中公知的將應(yīng)用程序向處理器映射的示意圖。為實(shí)現(xiàn)數(shù)據(jù)流處理,提供一些處理器,每一處理器能夠重復(fù)執(zhí)行一種特定的操作,每次使用從數(shù)據(jù)對(duì)象流的下一數(shù)據(jù)對(duì)象來(lái)的數(shù)據(jù),和/或產(chǎn)生這種流中的下一數(shù)據(jù)對(duì)象。所述流從一個(gè)處理器傳遞到另一個(gè),使得由第一處理器產(chǎn)生的流可以由第二處理器處理,如此等等。從第一處理器傳送數(shù)據(jù)到第二處理器的機(jī)制是通過(guò)把由第一處理器產(chǎn)生的數(shù)據(jù)塊寫(xiě)入存儲(chǔ)器。
網(wǎng)絡(luò)中的數(shù)據(jù)流被緩沖存儲(chǔ)。每一緩沖器按FIFO實(shí)現(xiàn),其確切地具有一個(gè)寫(xiě)入者和一個(gè)或多個(gè)讀取者。由于這一緩沖存儲(chǔ),寫(xiě)入者和讀取者不需要在通道上使各個(gè)讀和寫(xiě)動(dòng)作互相同步。從沒(méi)有足夠可用數(shù)據(jù)的通道的讀取將引起讀任務(wù)的停止。處理器可以是專用硬件功能單元,它只可以進(jìn)行很有限的編程。所有處理器并行運(yùn)行,執(zhí)行它們自己的控制線程。它們一起執(zhí)行Kahn型的應(yīng)用程序,其中每一任務(wù)被映射到一個(gè)單一的處理器。這些處理器允許多任務(wù),亦即多個(gè)Kahn任務(wù)可以映射到單一處理器。
因此,本發(fā)明的一個(gè)目的是改進(jìn)Kahn型數(shù)據(jù)處理系統(tǒng)的操作。
這一目的通過(guò)根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng)以及根據(jù)權(quán)利要求24的數(shù)據(jù)處理方法解決。
本發(fā)明基于這樣的思想,即通過(guò)為每一處理器引入一個(gè)通信裝置而有效地將數(shù)據(jù)處理系統(tǒng)中的通信硬件(例如總線和存儲(chǔ)器)與計(jì)算硬件例如(處理器)分開(kāi)。通過(guò)引入這一分離,處理器可以集中于執(zhí)行它們的功能特定的任務(wù),同時(shí)通信裝置提供對(duì)各處理器的通信支持。
因此給數(shù)據(jù)處理系統(tǒng)提供計(jì)算、通信支持和通信網(wǎng)絡(luò)層。計(jì)算層包括第一和至少一個(gè)第二處理器,用于處理數(shù)據(jù)對(duì)象流。第一處理器把一個(gè)流中的一些數(shù)據(jù)對(duì)象傳送給第二處理器,后者然后可以處理這些數(shù)據(jù)對(duì)象。通信網(wǎng)絡(luò)層包括存儲(chǔ)器和用于鏈接第一處理器和第二處理器與該存儲(chǔ)器的通信網(wǎng)絡(luò)。通信支持層安排在計(jì)算層和通信網(wǎng)絡(luò)層之間,包括用于計(jì)算層中的每一第二處理器的一個(gè)通信裝置。每一第二處理器的該通信裝置控制在所述第二處理器和存儲(chǔ)器之間通過(guò)通信網(wǎng)絡(luò)層中的通信網(wǎng)絡(luò)的通信。
在一個(gè)第二處理器和通信網(wǎng)絡(luò)層之間引入通信裝置提供一個(gè)明確定義的系統(tǒng)級(jí)抽象層,這特別是通過(guò)提供了在通信和存儲(chǔ)器實(shí)現(xiàn)方面的抽象。此外,實(shí)現(xiàn)了具有局部責(zé)任的分布式組織,從而改善了系統(tǒng)的可擴(kuò)展性。
在本發(fā)明的另外一個(gè)實(shí)施例中,所述通信裝置包括讀/寫(xiě)單元,用于允許所述關(guān)聯(lián)的第二處理器從/向通信網(wǎng)絡(luò)層中的存儲(chǔ)器的讀/寫(xiě),一個(gè)同步單元,用于使所述關(guān)聯(lián)的第二處理器的讀/寫(xiě)同步和/或存儲(chǔ)器訪問(wèn)的處理器間的同步,和/或一個(gè)任務(wù)調(diào)度單元,用于調(diào)度與所連接的處理器相關(guān)的任務(wù),用于管理要由所述第二處理器處理的一組任務(wù),和/或管理任務(wù)間通信信道。相應(yīng)地,通過(guò)提供分開(kāi)的單元,可以由通信裝置獨(dú)立地控制讀/寫(xiě)、讀/寫(xiě)的同步和任務(wù)切換,允許在實(shí)現(xiàn)不同應(yīng)用程序時(shí)有更大的自由度。
在本發(fā)明的再一個(gè)實(shí)施例中,所述通信單元能夠處理多個(gè)向內(nèi)的和向外的流和/或每一任務(wù)的多個(gè)流。它的積極效果是,由一個(gè)第二處理器處理的一個(gè)任務(wù)所產(chǎn)生的數(shù)據(jù)流可以轉(zhuǎn)發(fā)給幾個(gè)其它的任務(wù)供進(jìn)一步處理,反之亦然。
在本發(fā)明的另一個(gè)實(shí)施例中,通信裝置能夠?qū)崿F(xiàn)控制在所述連接著的第二處理器和獨(dú)立于所述連接著的處理器的所述存儲(chǔ)器之間的通信的同樣的功能。因此,通信裝置的設(shè)計(jì)可以主要針對(duì)要由所述通信裝置實(shí)現(xiàn)特定的功能而優(yōu)化,避免第二處理器的設(shè)計(jì)的強(qiáng)烈影響。
在本發(fā)明的另外一個(gè)實(shí)施例中,在所述第二處理器和它們相關(guān)的通信裝置之間的通信是主/從通信,所述第二處理器起主的作用。
在本發(fā)明的另外一個(gè)實(shí)施例中,在所述通信支持層中的所述通信裝置包括一個(gè)朝向所述相關(guān)的第二處理器的可適配的第一任務(wù)級(jí)接口和一個(gè)朝向所述通信網(wǎng)絡(luò)和存儲(chǔ)器的第二系統(tǒng)級(jí)接口,其中,所述第一和第二接口可同時(shí)或非同時(shí)激活。通過(guò)提供可修正的任務(wù)級(jí)接口,在允許特定第二處理器對(duì)特定應(yīng)用程序進(jìn)行參數(shù)化和采用的同時(shí),便利了在總體系統(tǒng)結(jié)構(gòu)中重新使用通信裝置。
在本發(fā)明的再一個(gè)實(shí)施例中,至少一個(gè)所述第二處理器是可編程的,所述一個(gè)第二處理器的通信裝置的第一任務(wù)級(jí)接口至少部分可編程,其中,通信裝置的部分功能可編程。
本發(fā)明還涉及一種用于在數(shù)據(jù)處理系統(tǒng)中處理數(shù)據(jù)的方法,所述數(shù)據(jù)處理系統(tǒng)包括用于處理數(shù)據(jù)對(duì)象流的第一和至少一個(gè)第二處理器,所述第一處理器被設(shè)計(jì)成把數(shù)據(jù)對(duì)象流中的數(shù)據(jù)對(duì)象傳送給第二處理器;至少一個(gè)存儲(chǔ)器用于存儲(chǔ)和檢索數(shù)據(jù)對(duì)象;和用于每一所述第二處理器的一個(gè)通信裝置,其中,提供對(duì)所述第一和所述第二處理器的共享訪問(wèn),其中,每一所述第二處理器的通信裝置控制所述第二處理器和所述存儲(chǔ)器之間的通信。
本發(fā)明另外還涉及在具有計(jì)算層的數(shù)據(jù)處理系統(tǒng)中的通信裝置,所述計(jì)算層包括用于處理數(shù)據(jù)對(duì)象流的第一和至少一個(gè)第二處理器,所述第一處理器被設(shè)計(jì)成傳送數(shù)據(jù)對(duì)象流中的數(shù)據(jù)對(duì)象給第二處理器,所述數(shù)據(jù)處理系統(tǒng)還具有一個(gè)包括通信網(wǎng)絡(luò)和存儲(chǔ)器的通信網(wǎng)絡(luò)層;以及一個(gè)安排在所述計(jì)算層和所述通信網(wǎng)絡(luò)層之間的通信支持層。該通信裝置適于在第二處理器和通信網(wǎng)絡(luò)之間有效工作,并和第二處理器關(guān)聯(lián),并控制經(jīng)由通信網(wǎng)絡(luò)層中的所述通信網(wǎng)絡(luò)的所述第二處理器和所述存儲(chǔ)器之間的通信。
本發(fā)明的另外的實(shí)施例在從屬權(quán)利要求中說(shuō)明。
現(xiàn)在參考附圖來(lái)詳細(xì)說(shuō)明本發(fā)明的這些和其它方面,附圖中圖1表示根據(jù)現(xiàn)有技術(shù)的將應(yīng)用程序映射到處理器的示意圖;圖2是基于流的處理系統(tǒng)結(jié)構(gòu)的原理框圖;圖3是在圖2的系統(tǒng)中的同步操作和I/O操作的示意圖;圖4是一個(gè)循環(huán)FIFO存儲(chǔ)器的示意圖;圖5是更新根據(jù)圖2的每一外殼(shell)中的局部空間值的機(jī)制;圖6是具有單一寫(xiě)入者和多個(gè)讀取者的FIFO緩沖器的示意圖;圖7是用于一個(gè)三站流的有窮存儲(chǔ)器緩沖器實(shí)現(xiàn);和圖8是讀取和管理超高速緩沖存儲(chǔ)器中的數(shù)據(jù)的有效性的示意圖。
圖2表示根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例用于處理數(shù)據(jù)對(duì)象流的處理系統(tǒng)。該系統(tǒng)可以分為不同的層,即計(jì)算層1、通信支持層2和通信網(wǎng)絡(luò)層3。計(jì)算層1包括CPU11和兩個(gè)處理器12a、12b。這只是舉例,顯然在該系統(tǒng)中可以包括更多處理器。通信支持層2包括與CPU11關(guān)聯(lián)的外殼21和分別與處理器12a、12b關(guān)聯(lián)的外殼22a、22b。通信網(wǎng)絡(luò)層3包括通信網(wǎng)絡(luò)31和存儲(chǔ)器32。
處理器12a、12b優(yōu)選是專用處理器;每一個(gè)專門(mén)用于執(zhí)行一個(gè)有限范圍的流處理。每一處理器被安排成重復(fù)對(duì)一個(gè)流的連續(xù)數(shù)據(jù)對(duì)象施加同樣的處理操作。處理器12a、12b每一個(gè)可以執(zhí)行一個(gè)不同的任務(wù)或功能,例如可變長(zhǎng)度解碼,運(yùn)行長(zhǎng)度解碼,運(yùn)動(dòng)補(bǔ)償,圖像縮放或者執(zhí)行DCT變換。在操作中,每一處理器12a、12b對(duì)一個(gè)或者多個(gè)數(shù)據(jù)流執(zhí)行操作。所述操作例如可以包括接收一個(gè)流和產(chǎn)生另一個(gè)流或接收一個(gè)流而不產(chǎn)生新流或產(chǎn)生一個(gè)流而不接收流或修改一個(gè)接收的流。處理器12a、12b能夠處理由其它處理器12b、12a或由CPU11產(chǎn)生的數(shù)據(jù)流,或者甚至產(chǎn)生它們自身的流。一個(gè)流包括連續(xù)的數(shù)據(jù)對(duì)象,這些數(shù)據(jù)對(duì)象通過(guò)所述存儲(chǔ)器32從或向處理器12a、12b傳輸。
外殼22a、22b包括朝向作為通信層的通信網(wǎng)絡(luò)層的第一接口。該層對(duì)于所有外殼是一致的或同類的。此外,外殼22a、22b包括一個(gè)朝向這些外殼22a、22b所分別關(guān)聯(lián)的處理器12a、12b的第二接口。該第二接口是一個(gè)任務(wù)級(jí)接口,并且是為相關(guān)的處理器12a、12b定制的,以便能夠處理所述處理器12a、12b的特定需要。相應(yīng)地,外殼22a、22b具有一個(gè)處理器特定的接口作為第二接口,但是這些外殼的總體結(jié)構(gòu)對(duì)于所有處理器是同類的和一致的,以便便利在總體系統(tǒng)結(jié)構(gòu)中重新使用這些外殼,同時(shí)允許對(duì)于特定應(yīng)用程序的參數(shù)化和采用。
外殼22a、22b包括一個(gè)用于數(shù)據(jù)傳輸?shù)淖x/寫(xiě)單元、一個(gè)同步單元和一個(gè)任務(wù)切換單元。這三個(gè)單元在主/從基礎(chǔ)上與相關(guān)的處理器通信,其中處理器起主的作用。相應(yīng)地,這三個(gè)單元的每一個(gè)由來(lái)自處理器的請(qǐng)求啟動(dòng)。優(yōu)選地,在處理器和這三個(gè)單元之間的通信由請(qǐng)求-應(yīng)答握手機(jī)制實(shí)現(xiàn),以便傳遞參數(shù)值和等待請(qǐng)求的值返回。因此,通信是阻塞的(blocking),亦即各控制線程要等待它們的完成。
讀/寫(xiě)單元優(yōu)選實(shí)現(xiàn)兩個(gè)不同的操作,亦即允許處理器12a、12b從存儲(chǔ)器讀數(shù)據(jù)對(duì)象的讀操作和允許處理器12a、12b向存儲(chǔ)器32寫(xiě)數(shù)據(jù)對(duì)象的寫(xiě)操作。每一任務(wù)具有一組預(yù)先定義的端口,它相應(yīng)于對(duì)該數(shù)據(jù)流的連接點(diǎn)。這些操作的參量是各相應(yīng)端口的ID“port_id”,讀/寫(xiě)應(yīng)該發(fā)生處的偏移量“offset”,和數(shù)據(jù)對(duì)象的可變長(zhǎng)度“n_bytes”。端口由“port_id”參量選擇。這一參量是一個(gè)小的非負(fù)數(shù),具有只用于當(dāng)前任務(wù)的局部范圍。
同步單元執(zhí)行用于同步的兩種操作以處理從空的FIFO讀時(shí)的或向滿的FIFO寫(xiě)時(shí)的局部阻塞條件。第一操作亦即獲取空間(getspace)操作是在存儲(chǔ)器中請(qǐng)求空間以用于實(shí)現(xiàn)FIFO,第二操作亦即釋放空間(putspace)操作是請(qǐng)求釋放在FIFO中的空間。這些操作的參量是“port_id”和“n_bytes”可變長(zhǎng)度。
獲取空間操作和釋放空間操作是在同步的線性帶或FIFO級(jí)上執(zhí)行的,而在由所述操作獲得的窗口內(nèi)則支持隨機(jī)存取讀/寫(xiě)動(dòng)作。
任務(wù)切換單元以獲取任務(wù)(gettask)操作來(lái)實(shí)現(xiàn)處理器的任務(wù)切換。這些操作的參量是“blocked(受阻的)”、“error(出錯(cuò))”和“task_info(任務(wù)信息)”。
參量“blocked”是二進(jìn)制值,如果由于對(duì)于輸入端口或者輸出端口的獲取空間調(diào)用返回“假”而使最后的處理步驟不能成功完成,則它被設(shè)定為“真”。相應(yīng)地,任務(wù)調(diào)度單元被迅速告知,這一任務(wù)最好不要再作調(diào)度,除非對(duì)該受阻的端口到來(lái)一個(gè)新的“space(空間)”消息。這一參量值被認(rèn)為是一個(gè)勸告,只導(dǎo)致改善的調(diào)度而決不會(huì)影響功能。參量“error”是一個(gè)二進(jìn)制值,如果在最后的處理步驟期間在協(xié)處理器內(nèi)發(fā)生致命錯(cuò)誤,則它設(shè)定為“真”。從mpeg解碼來(lái)的例子例如是出現(xiàn)不認(rèn)識(shí)的可變長(zhǎng)代碼或非法運(yùn)動(dòng)矢量。如果是這樣,則外殼清除任務(wù)表允許標(biāo)志以防止進(jìn)一步的調(diào)度,和給主CPU發(fā)送一個(gè)中斷以修復(fù)系統(tǒng)狀態(tài)。當(dāng)前任務(wù)肯定不被調(diào)度,直到CPU通過(guò)軟件作出反應(yīng)。
上面剛剛說(shuō)明的操作由來(lái)自處理器的讀調(diào)用、寫(xiě)調(diào)用、獲取空間調(diào)用、釋放空間調(diào)用或者獲取任務(wù)調(diào)用來(lái)啟動(dòng)。
圖3表示讀和寫(xiě)處理以及它們相關(guān)的同步操作的示意圖。從處理器的觀點(diǎn)看,一個(gè)數(shù)據(jù)流像一個(gè)具有當(dāng)前訪問(wèn)點(diǎn)的無(wú)窮的數(shù)據(jù)帶。從處理器發(fā)布的獲取空間調(diào)用請(qǐng)求對(duì)由圖3中的小箭頭指示的當(dāng)前訪問(wèn)點(diǎn)前面的一定的數(shù)據(jù)空間的訪問(wèn)許可。如果這一許可被授予,則該處理器可以在所請(qǐng)求的空間亦即圖3b的帶框的窗口內(nèi)執(zhí)行讀和寫(xiě)動(dòng)作,使用由n_bytes參量指示的變長(zhǎng)數(shù)據(jù)和由offset參量指示的隨機(jī)訪問(wèn)位置。
如果許可未被授予,則該調(diào)用返回“假”。在一個(gè)或者多個(gè)獲取空間調(diào)用(和可選幾個(gè)讀/寫(xiě)動(dòng)作)后,處理器可以決定該處理或該數(shù)據(jù)空間的某些部分是否已經(jīng)結(jié)束,并發(fā)布一個(gè)釋放空間調(diào)用。這一調(diào)用把訪問(wèn)點(diǎn)前移一定數(shù)目的字節(jié)(亦即圖3d的n_bytes2),其中,其大小由先前授予的空間所限制。
圖4表示循環(huán)FIFO存儲(chǔ)器的示意圖。傳送數(shù)據(jù)流需要FIFO緩沖器,它優(yōu)選地具有有限的和固定的大小。優(yōu)選地,它是在存儲(chǔ)器中預(yù)先分配的,并且應(yīng)用程序一個(gè)循環(huán)尋址機(jī)制,以便在線性存儲(chǔ)器地址范圍內(nèi)有適當(dāng)?shù)腇IFO行為。
在圖4中心的旋轉(zhuǎn)箭頭50指示一個(gè)方向,在該方向上來(lái)自處理器的獲取空間調(diào)用確認(rèn)為讀/寫(xiě)所授予的窗口,它與釋放空間調(diào)用把訪問(wèn)點(diǎn)向前移動(dòng)是同一個(gè)方向。小箭頭51、52表明任務(wù)A和B的當(dāng)前訪問(wèn)點(diǎn)。在本例中,A是寫(xiě)入者,因此在后面留下適當(dāng)?shù)臄?shù)據(jù),而B(niǎo)是讀取者,在后面留下空的空間(或者無(wú)意義的垃圾)。在每一訪問(wèn)點(diǎn)前面的陰影區(qū)域(A1,B1)表明通過(guò)獲取空間操作獲得的訪問(wèn)窗口。
任務(wù)A和B可以以不同速度進(jìn)行,和/或由于多任務(wù)可能在某些時(shí)間期間得不到及時(shí)服務(wù)。外殼22a、22b給A和B在其上運(yùn)行的處理器12a、12b提供信息,以保證A和B的訪問(wèn)點(diǎn)維持它們各自的排序,或者嚴(yán)格說(shuō),授予的訪問(wèn)窗口永不重疊。使用由外殼22a、22b提供的信息使得實(shí)現(xiàn)總功能的正確性是處理器12a、12b的責(zé)任。例如,由于緩沖器中的可用空間不夠,外殼22a、22b有時(shí)可能回答來(lái)自處理器的獲取空間請(qǐng)求為“假”。于是該處理器應(yīng)該根據(jù)被拒絕的訪問(wèn)請(qǐng)求避免訪問(wèn)緩沖器。
外殼22a、22b是分布式的,使得每一個(gè)可以接近它們所關(guān)聯(lián)的處理器12a、12b來(lái)實(shí)現(xiàn)。每一外殼局部包含用于與映射在其處理器上的任務(wù)相關(guān)的流的配置數(shù)據(jù),并局部實(shí)現(xiàn)所有控制邏輯以適當(dāng)?shù)靥幚磉@一數(shù)據(jù)。相應(yīng)地,在外殼22a、22b中實(shí)現(xiàn)一個(gè)局部流表,它包含用于每一流各字段(fields)的一個(gè)行,或者換句話說(shuō),用于每一訪問(wèn)點(diǎn)各字段的一個(gè)行。
為處理圖4的安排,任務(wù)A和B的處理器外殼22a、22b的流表每一個(gè)包含這樣的一行,該行保存一個(gè)“空間(space)”字段,其中包含從它自己的訪問(wèn)點(diǎn)朝向在該緩沖器中的另一訪問(wèn)點(diǎn)的(可能是不利的)距離,和一個(gè)指示在該緩沖器中具有所述另一訪問(wèn)點(diǎn)的任務(wù)和端口的遠(yuǎn)程外殼的ID。另外,所述局部流表可以包含相應(yīng)于當(dāng)前訪問(wèn)點(diǎn)的存儲(chǔ)器地址和用于緩沖器基地址和緩沖器大小的編碼,以便支持所引用的地址增量。
這些流表優(yōu)選是映射在在每一所述外殼22中的小存儲(chǔ)器-像寄存器文件-上的存儲(chǔ)器。因此,獲取空間調(diào)用可以通過(guò)比較所請(qǐng)求的大小與局部存儲(chǔ)的可用空間而立即在局部回答。在釋放空間調(diào)用時(shí),這一局部空間字段減少指定的數(shù)量,并且給保持前一訪問(wèn)點(diǎn)的另一個(gè)外殼發(fā)送一個(gè)釋放空間消息以增加它的空間值。相應(yīng)地,在接收到來(lái)自一個(gè)遠(yuǎn)程源的這種釋放消息時(shí),外殼22將它的局部字段增加。因?yàn)樵谕鈿ぶg傳輸消息需要時(shí)間,因此可能出現(xiàn)兩個(gè)空間字段加起來(lái)不必等于整個(gè)緩沖器大小的情形,而是暫時(shí)含有不利的值。然而,這不會(huì)破壞同步的安全性。在例外環(huán)境下甚至可能發(fā)生多個(gè)消息同時(shí)在通往目的地的途中,對(duì)它們的服務(wù)不按順序,不過(guò)甚至在這種場(chǎng)合,同步仍保持正確。
圖5表示更新每一外殼中的局部空間值和發(fā)送“釋放空間”消息的機(jī)制。在這一安排中,來(lái)自處理器12a、12b的獲取空間請(qǐng)求-即獲取空間調(diào)用-可以通過(guò)比較所請(qǐng)求的大小與局部存儲(chǔ)的空間信息而立即在相關(guān)的外殼22a、22b中得到回答。在釋放空間調(diào)用時(shí),局部外殼22a、22b以指明的數(shù)量減少空間字段,并且給遠(yuǎn)程外殼發(fā)送一個(gè)釋放空間消息。該遠(yuǎn)程外殼-亦即另一處理器的外殼-保存另一個(gè)訪問(wèn)點(diǎn),并且增量那里的空間值。相應(yīng)地,在從一個(gè)遠(yuǎn)程源接收到這種釋放消息時(shí),本地外殼將它的空間字段增加。
屬于訪問(wèn)點(diǎn)的空間字段由兩個(gè)源修改在本地的釋放空間調(diào)用時(shí)它減少,和在接收到釋放空間消息時(shí)它增加。如果這種增加或者減少不作為原子操作(atomic operation)實(shí)現(xiàn),則這將導(dǎo)致錯(cuò)誤的結(jié)果。在這種情況下可以使用分開(kāi)的本地空間和遠(yuǎn)程空間字段,它們每一個(gè)只通過(guò)單一源更新。在本地的獲取空間調(diào)用時(shí),這些值被減去。外殼22總在控制它自己的本地表的更新和以一種基本的方式執(zhí)行這些。顯然這只是一個(gè)外殼實(shí)現(xiàn)的事項(xiàng),這對(duì)于它的外部功能來(lái)說(shuō)不可見(jiàn)。
如果獲取空間調(diào)用返回“假”,則處理器可自由決定如何反應(yīng)??赡苄允莂)處理器可以用較小的n_bytes參量發(fā)布一個(gè)新的獲取空間調(diào)用,b)處理器可以等待一會(huì)兒然后再試,或c)處理器可以退出該任務(wù),而允許另一任務(wù)在該處理器上進(jìn)行。
這將允許任務(wù)切換的決定取決于更多數(shù)據(jù)的期望到達(dá)時(shí)間和內(nèi)部積累狀態(tài)的數(shù)量,相關(guān)聯(lián)的狀態(tài)節(jié)省費(fèi)用。對(duì)于不可編程的專用硬件處理器,該決定是結(jié)構(gòu)設(shè)計(jì)過(guò)程的一部分。
外殼22的實(shí)現(xiàn)和操作在讀和寫(xiě)端口之間沒(méi)有區(qū)別,雖然特別的實(shí)例也許對(duì)這些有區(qū)別。外殼22所實(shí)現(xiàn)的操作有效地隱藏了實(shí)現(xiàn)中的各個(gè)方面,諸如FIFO緩沖器的大小、它在存儲(chǔ)器中的位置、受存儲(chǔ)器制約的循環(huán)FIFO的地址的任何折返(wrap-around)機(jī)制、超高速緩沖存儲(chǔ)策略、超高速緩沖存儲(chǔ)一致性、全局I/O定位限制、數(shù)據(jù)總線寬度、存儲(chǔ)器定位限制、通信網(wǎng)絡(luò)結(jié)構(gòu)和存儲(chǔ)器組織。
優(yōu)選地,外殼22a、22b對(duì)未格式化的字節(jié)序列進(jìn)行操作。在由傳送數(shù)據(jù)流的寫(xiě)入者和讀取者使用的同步包的大小之間不需要任何相關(guān)性。數(shù)據(jù)內(nèi)容的語(yǔ)義解釋留給處理器。任務(wù)不知道應(yīng)用圖表關(guān)聯(lián)結(jié)構(gòu)(application graph incidence structure),諸如它正與哪一些其它任務(wù)在通信,這些任務(wù)映射在哪些處理器上,和哪些其它的任務(wù)映射在同一個(gè)處理器上。
在外殼22的高性能實(shí)現(xiàn)中,可以通過(guò)外殼22a、22b的讀/寫(xiě)單元和同步單元并行發(fā)布讀調(diào)用、寫(xiě)調(diào)用、獲取空間調(diào)用、釋放空間調(diào)用。作用于外殼22的不同端口的調(diào)用沒(méi)有互相的排序(ordering)的限制,而作用于外殼22的相同端口上的調(diào)用則必須根據(jù)調(diào)用任務(wù)或處理器排序。對(duì)于這種情況,當(dāng)前一調(diào)用返回時(shí),處理器可以發(fā)布下一調(diào)用,在軟件實(shí)現(xiàn)中是通過(guò)從函數(shù)調(diào)用的返回而在硬件實(shí)現(xiàn)中則通過(guò)提供一個(gè)確認(rèn)信號(hào)。
在讀調(diào)用中的大小參量即n_bytes的零值可以被預(yù)留以執(zhí)行從存儲(chǔ)器向由port_ID和offset參量指示的位置處的外殼超高速緩沖存儲(chǔ)器預(yù)取數(shù)據(jù)。這種操作可以用于由外殼執(zhí)行的自動(dòng)預(yù)取。相似地,可以預(yù)留寫(xiě)調(diào)用中的零值用于超高速緩沖存儲(chǔ)器的刷新請(qǐng)求,雖然自動(dòng)的超高速緩沖存儲(chǔ)器刷新是外殼的責(zé)任。
可選地,所有5種操作都接受另外一個(gè)最后的task_ID參量。這通常是一個(gè)從先前的獲取任務(wù)(gettask)調(diào)用作為結(jié)果值而得到的小的正數(shù)。預(yù)留為這一參量的零值用于不是任務(wù)特定的而是與處理器控制有關(guān)的調(diào)用。
在優(yōu)選實(shí)施例中,用于傳送數(shù)據(jù)流的建立(set-up)是具有連接到有限大小FIFO緩沖器上的一個(gè)寫(xiě)入者和一個(gè)讀取者的流。這種流需要具有有限的和固定大小的FIFO緩沖器。它預(yù)先分配在存儲(chǔ)器中,并且在其線性地址范圍內(nèi)為適當(dāng)?shù)腇IFO行為應(yīng)用程序一個(gè)循環(huán)尋址機(jī)制。
然而,在基于圖2和圖6的另外的實(shí)施例中,由一個(gè)任務(wù)產(chǎn)生的數(shù)據(jù)流要由具有不同輸入端口的兩個(gè)或者多個(gè)不同的使用者使用。這種情形可以用術(shù)語(yǔ)分叉(forking)描述。然而,我們希望既為多任務(wù)硬件處理器也為在CPU上運(yùn)行的軟件任務(wù)重新使用該任務(wù)實(shí)現(xiàn)。這是通過(guò)各任務(wù)具有與它們的基本功能相對(duì)應(yīng)的固定數(shù)目的端口、并且由應(yīng)用程序配置引發(fā)的任何分叉的需要都要外殼解決來(lái)實(shí)現(xiàn)的。
顯然流分叉可以由外殼22通過(guò)只維持兩個(gè)分開(kāi)的正常的流緩沖器實(shí)現(xiàn),即通過(guò)倍增所有寫(xiě)和釋放空間操作和通過(guò)對(duì)所倍增的獲取空間檢查的結(jié)果值執(zhí)行與操作。優(yōu)選地,這是不予執(zhí)行的,因?yàn)槠浯鷥r(jià)將包括雙倍的寫(xiě)帶寬和或許更多的緩沖器空間。相反,優(yōu)選的是用兩個(gè)或者更多讀取者和一個(gè)寫(xiě)入者共享同一FIFO緩沖器來(lái)實(shí)現(xiàn)。
圖6表示具有單一寫(xiě)入者和多個(gè)讀取者的FIFO緩沖器的示意圖。同步機(jī)制必須保證在A和C之間的配對(duì)順序及其后在A和B之間的正常的配對(duì)順序,而B(niǎo)和C沒(méi)有相互的限制,例如假定它們是純粹的讀取者。這是通過(guò)跟蹤分別為每一讀取者(A到B和A到C)可用的空間而在與執(zhí)行寫(xiě)操作的處理器關(guān)聯(lián)的外殼中實(shí)現(xiàn)的。當(dāng)寫(xiě)入者執(zhí)行一個(gè)局部獲取空間調(diào)用時(shí),它的n_bytes參量與每一這些空間值比較。這是通過(guò)使用在所述流表中用于分叉的額外的行而實(shí)現(xiàn)的,它由一個(gè)額外的字段或列連接以指示改變到下一行。
這對(duì)于大多數(shù)不使用分叉同時(shí)不限定只以兩路分叉的場(chǎng)合帶來(lái)非常小的開(kāi)銷。優(yōu)選地,分叉僅由寫(xiě)入者實(shí)現(xiàn),而讀取者不知道這種情況。
在基于圖2和圖7的另外一個(gè)實(shí)施例中,數(shù)據(jù)流作為根據(jù)帶模型的一個(gè)三站流實(shí)現(xiàn)。每一站執(zhí)行對(duì)流過(guò)的數(shù)據(jù)流的某些更新。三站流的應(yīng)用程序的一個(gè)例子是一個(gè)寫(xiě)入者、一個(gè)中間的監(jiān)督者和最后一個(gè)讀取者。在這樣的例子中,第二任務(wù)優(yōu)選地觀察通過(guò)的數(shù)據(jù),并且可能檢查某些數(shù)據(jù),而基本上允許數(shù)據(jù)通過(guò),不進(jìn)行修改。相對(duì)較不經(jīng)常的是它可以決定改變流中的少數(shù)項(xiàng)。這可以通過(guò)處理器在緩沖器中就地更新而有效實(shí)現(xiàn),避免把整個(gè)流內(nèi)容從一個(gè)緩沖器復(fù)制到另一個(gè)。在實(shí)際中,這在下述情形下可以是有用的當(dāng)硬件處理器12在通信,而主CPU11進(jìn)行干預(yù)以修改該流來(lái)改正硬件缺陷,進(jìn)行修正以適應(yīng)稍微不同的流格式,或者只是為了調(diào)試。這一安排可以由共享存儲(chǔ)器中的單一流緩沖器的所有三個(gè)處理器實(shí)現(xiàn),以減少存儲(chǔ)器流量和處理器工作負(fù)載。任務(wù)B并不實(shí)際讀或?qū)懻麄€(gè)數(shù)據(jù)流。
圖7表示一個(gè)用于三站流的有窮存儲(chǔ)器緩沖器的實(shí)現(xiàn)。這一三路緩沖器的正確的語(yǔ)義包括維持A、B和C彼此之間一個(gè)嚴(yán)格的排序和保證窗口不重疊。在這種方式下,該三路緩沖器是圖4的所示的兩路緩沖器的擴(kuò)展。這種多路循環(huán)FIFO由上述外殼的操作和由在優(yōu)選實(shí)施例中討論的帶釋放空間消息的分布式實(shí)現(xiàn)方式直接支持。在單一FIFO中的站并不僅局限于3個(gè)。在一個(gè)站既使用又產(chǎn)生有用數(shù)據(jù)的就地處理中也可以只用兩個(gè)站。在這種情況下兩個(gè)任務(wù)都執(zhí)行就地處理來(lái)彼此交換數(shù)據(jù),在緩沖器中不留空的空間。
在基于圖2的另外的實(shí)施例中說(shuō)明了對(duì)緩沖器的單一訪問(wèn)。這種單一訪問(wèn)緩沖器只包括單一端口。在這一例子中任務(wù)或者處理器之間將不執(zhí)行數(shù)據(jù)交換。相反,這僅是所述外殼的一個(gè)標(biāo)準(zhǔn)通信操作的應(yīng)用程序供局部使用。外殼的配置包括標(biāo)準(zhǔn)緩沖器存儲(chǔ)器,它有單一訪問(wèn)點(diǎn)與其連接。這時(shí)任務(wù)使用該緩沖器作為局部的中間結(jié)果暫存器或超高速緩沖存儲(chǔ)器。從結(jié)構(gòu)的觀點(diǎn)看來(lái),這可能具有下述優(yōu)點(diǎn),諸如為幾個(gè)目的和任務(wù)組合使用較大的存儲(chǔ)器,和例如使用可由軟件配置的存儲(chǔ)器大小。此外,除了用作中間結(jié)果暫存器存儲(chǔ)器以便這一配置為任務(wù)特定的算法服務(wù),此配置還可以很好地應(yīng)用程序于在多任務(wù)處理器中存儲(chǔ)和檢索任務(wù)狀態(tài)。在這種情況下為狀態(tài)交換執(zhí)行讀/寫(xiě)操作不是任務(wù)的功能代碼自身的一部分,而是處理器控制代碼的一部分。由于緩沖器不用于與其它任務(wù)通信,因此通常不需要對(duì)該緩沖器執(zhí)行釋放空間和獲取空間操作。
在基于圖2和圖8的另一個(gè)實(shí)施例中,根據(jù)優(yōu)選實(shí)施例的外殼22另外包括一個(gè)數(shù)據(jù)超高速緩沖存儲(chǔ)器,用于在處理器12和通信網(wǎng)絡(luò)31和存儲(chǔ)器32之間的數(shù)據(jù)傳輸(亦即讀操作和寫(xiě)操作)。在外殼22中的數(shù)據(jù)超高速緩沖存儲(chǔ)器的實(shí)現(xiàn)提供數(shù)據(jù)總線寬度的透明變換,對(duì)全局互聯(lián)亦即通信網(wǎng)絡(luò)31的定位限制的解決,和對(duì)全局互聯(lián)的I/O操作數(shù)目的減少。
優(yōu)選地,外殼22在讀和寫(xiě)接口中包括該超高速緩沖存儲(chǔ)器,然而這些超高速緩沖存儲(chǔ)器從應(yīng)用程序功能的觀點(diǎn)是看不見(jiàn)的。這里,使用釋放空間和獲取空間操作的機(jī)制用于明確控制超高速緩沖存儲(chǔ)器一致性。超高速緩沖存儲(chǔ)器在把處理器讀和寫(xiě)端口從通信網(wǎng)絡(luò)3的全局互聯(lián)的解耦中起重要作用。這些超高速緩沖存儲(chǔ)器對(duì)于系統(tǒng)在有關(guān)速度、功率和區(qū)域的性能方面有主要的影響。
對(duì)于授予一個(gè)任務(wù)端口的流數(shù)據(jù)的窗口的訪問(wèn)被保證為專有的。其結(jié)果是在這一區(qū)域上的讀和寫(xiě)操作是安全的,并且在第一側(cè)不需要中間的處理器內(nèi)通信。通過(guò)局部獲取空間請(qǐng)求來(lái)從循環(huán)FIFO的一個(gè)前任獲得新的存儲(chǔ)器空間來(lái)擴(kuò)展該訪問(wèn)窗口。如果超高速緩沖存儲(chǔ)器某些部分被標(biāo)記以響應(yīng)這種擴(kuò)展,而且任務(wù)有興趣讀取該擴(kuò)展中的數(shù)據(jù),則超高速緩沖存儲(chǔ)器中這種部分需要被無(wú)效化。然后在高速緩存發(fā)生失誤的這一位置發(fā)生讀操作,并且新的有效數(shù)據(jù)被加載到該超高速緩沖存儲(chǔ)器。完善的外殼實(shí)現(xiàn)可以使用獲取空間來(lái)發(fā)布預(yù)取請(qǐng)求以減少超高速緩沖存儲(chǔ)器失誤的代價(jià)。利用局部釋放空間請(qǐng)求給循環(huán)FIFO的后繼者留下新的存儲(chǔ)器空間來(lái)收縮該訪問(wèn)窗口。如果這種收縮的某些部分正好在超高速緩沖存儲(chǔ)器中發(fā)生,并且該部分已經(jīng)被寫(xiě)亦即臟(dirty)或不可用,則超高速緩沖存儲(chǔ)器的該部分需要被刷新,以使得局部數(shù)據(jù)可用于其它處理器。給其它處理器發(fā)送釋放空間消息必須推遲,直到超高速緩沖存儲(chǔ)器的刷新完成和存儲(chǔ)器操作的安全排序得到保證。
與其它類超高速緩沖存儲(chǔ)器一致性機(jī)制諸如總線探聽(tīng)(snooping)相比,為明確的超高速緩沖存儲(chǔ)器一致性控制而只使用局部獲取空間和釋放空間事件在大系統(tǒng)結(jié)構(gòu)中相對(duì)容易實(shí)現(xiàn)。另外它不提供通信開(kāi)銷,例如像在超高速緩沖存儲(chǔ)器通體寫(xiě)結(jié)構(gòu)中那樣。
獲取空間和釋放空間操作規(guī)定要在字節(jié)粒度上操作。超高速緩沖存儲(chǔ)器的主要責(zé)任是對(duì)處理器隱藏全局互聯(lián)數(shù)據(jù)傳輸大小和數(shù)據(jù)傳輸定位的限制。優(yōu)選地,數(shù)據(jù)傳輸大小在上述定位上設(shè)定為16字節(jié),而小到2字節(jié)的同步的數(shù)據(jù)量可以被有效地使用。因此,同一存儲(chǔ)器字或傳輸單元可以同時(shí)在不同處理器的超高速緩沖存儲(chǔ)器中存儲(chǔ),而無(wú)效信息在每一超高速緩沖存儲(chǔ)器中在字節(jié)的粒度上被處理。
圖8表示在三種不同的情形下讀取和管理超高速緩沖存儲(chǔ)器中的數(shù)據(jù)的有效性。在該圖中每一種情形都假定讀請(qǐng)求發(fā)生在空的超高速緩沖存儲(chǔ)器中,導(dǎo)致超高速緩沖存儲(chǔ)器失誤。圖8a表示讀請(qǐng)求導(dǎo)致取出一個(gè)存儲(chǔ)器傳輸單元800-亦即一個(gè)字-它整個(gè)被包含在所授予的窗口810內(nèi)。顯然,這整個(gè)字在存儲(chǔ)器中是有效的,不需要特定的有效(或無(wú)效)性測(cè)量。
在圖8b中所取的字801部分延伸到處理器獲得的空間811之外,不過(guò)仍保留在在外殼中作為可以使用的受到局部管理的空間內(nèi)。如果僅僅使用獲取空間參量的話,則該字將被部分地被宣布為無(wú)效,且一旦獲取空間窗口被擴(kuò)展的話則它將需要被重新讀。然而,如果對(duì)可用空間的實(shí)際值進(jìn)行檢查的話,則整個(gè)字可以標(biāo)記為有效。
在圖8c中預(yù)取的字802部分延伸到不知道要被保存的、并且仍有可能被某些其它處理器寫(xiě)入的空間820內(nèi)。這時(shí)在當(dāng)該字被加載到超高速緩沖存儲(chǔ)器中時(shí),必須把該字中的這一區(qū)域標(biāo)記為無(wú)效。如果后來(lái)該字的這一部分被訪問(wèn),則需要重新讀該字,因?yàn)椴恢赖牟糠衷谠撟种幸话阋矔?huì)延伸到位于當(dāng)前訪問(wèn)點(diǎn)左邊。
此外,一個(gè)單一讀請(qǐng)求可以覆蓋多于一個(gè)存儲(chǔ)器字,這或者是因?yàn)樗鼨M跨兩個(gè)連續(xù)字的邊界,或者是因?yàn)樘幚砥鞯淖x接口比存儲(chǔ)器字寬。圖8表示對(duì)所請(qǐng)求的緩沖器空間來(lái)說(shuō)相當(dāng)大的存儲(chǔ)器字。在實(shí)際中,所請(qǐng)求的窗口常常大很多,然而在極端的情況下,整個(gè)循環(huán)通信緩沖器也可以和單一存儲(chǔ)器字一樣小。
在超高速緩沖存儲(chǔ)器一致性控制中,在獲取空間、讀操作和有效(或無(wú)效)標(biāo)記之間,以及在釋放空間、寫(xiě)操作和“臟”標(biāo)記和刷新之間有緊密的關(guān)系。在一個(gè)“Kahn”型應(yīng)用程序中,端口具有指定的方向,或輸入或輸出。優(yōu)選使用分開(kāi)讀和寫(xiě)的超高速緩沖存儲(chǔ)器,這將簡(jiǎn)化一些實(shí)現(xiàn)中的問(wèn)題。對(duì)于處理器將在整個(gè)循環(huán)地址空間線性處理的多個(gè)流,讀超高速緩沖存儲(chǔ)器可任選地支持預(yù)取數(shù),而寫(xiě)超高速緩沖存儲(chǔ)器可選支持預(yù)刷新,在朝向下一個(gè)字的兩個(gè)讀取移動(dòng)內(nèi),使得前一個(gè)字的超高速緩沖存儲(chǔ)器設(shè)置可提供,以供預(yù)期的未來(lái)使用。讀和寫(xiě)數(shù)據(jù)路徑的分開(kāi)實(shí)現(xiàn)也更容易支持來(lái)自處理器的并行發(fā)生的讀和寫(xiě)請(qǐng)求,例如在流水線式處理器的實(shí)現(xiàn)中并行發(fā)生的情況。
另外處理器以字節(jié)粒度寫(xiě)數(shù)據(jù),超高速緩沖存儲(chǔ)器逐字節(jié)管理在該超高速緩沖存儲(chǔ)器中的“臟”比特。在釋放空間請(qǐng)求時(shí),超高速緩沖存儲(chǔ)器從超高速緩沖存儲(chǔ)器把這些字刷新到與由這一請(qǐng)求所指明的地址范圍重疊的共享存儲(chǔ)器中。所述“臟”比特位要用于總線寫(xiě)請(qǐng)求中的寫(xiě)屏蔽,以保證該存儲(chǔ)器決不會(huì)在訪問(wèn)窗口之外的字節(jié)位置被寫(xiě)入。
在基于圖2的另一個(gè)實(shí)施例中,外殼22a中的同步單元連接到另一外殼22b的另外的同步單元。同步單元保證一個(gè)處理器在為一個(gè)已處理的流的有效數(shù)據(jù)被寫(xiě)到一些存儲(chǔ)器位置之前不訪問(wèn)這些存儲(chǔ)器位置。相似地,使用同步接口來(lái)保證處理器12a不覆蓋寫(xiě)入存儲(chǔ)器32中的有效數(shù)據(jù)。同步單元通過(guò)同步消息網(wǎng)絡(luò)通信。優(yōu)選地,它們形成一個(gè)環(huán)的一部分,在該環(huán)內(nèi)同步信號(hào)從一個(gè)處理器傳送到下一個(gè)處理器,或當(dāng)這些信號(hào)不再為任何后繼的處理器需要時(shí)被封鎖和覆蓋。同步單元一起形成一個(gè)同步通道。同步單元維持關(guān)于用于從處理器12a向處理器12b傳輸數(shù)據(jù)對(duì)象流的存儲(chǔ)器空間的信息。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),包括-包括用于處理數(shù)據(jù)對(duì)象流的第一和至少一個(gè)第二處理器的計(jì)算層,所述第一處理器被安排成從一個(gè)數(shù)據(jù)對(duì)象流把數(shù)據(jù)對(duì)象傳送給第二處理器;-包括通信網(wǎng)絡(luò)和存儲(chǔ)器的通信網(wǎng)絡(luò)層;和-包括用于每個(gè)所述第二處理器的一個(gè)通信裝置的通信支持層,所述通信支持層被安排在所述計(jì)算層和所述通信網(wǎng)絡(luò)層之間;其中,每個(gè)所述第二處理器的該通信裝置控制在所述第二處理器和所述存儲(chǔ)器之間通過(guò)所述通信網(wǎng)絡(luò)層中的通信網(wǎng)絡(luò)所進(jìn)行的通信。
2.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,所述第二處理器是一個(gè)多任務(wù)處理器,它能夠交錯(cuò)處理第一和第二任務(wù),所述第一和第二任務(wù)分別處理第一和第二數(shù)據(jù)對(duì)象流。
3.根據(jù)權(quán)利要求2的數(shù)據(jù)處理系統(tǒng),其中,所述通信單元被安排成處理多個(gè)向內(nèi)的和向外的流和/或每一任務(wù)的多個(gè)流。
4.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,每一所述通信裝置包括-用于允許所述關(guān)聯(lián)的第二處理器從/向通信網(wǎng)絡(luò)層中的所述存儲(chǔ)器進(jìn)行讀/寫(xiě)的讀/寫(xiě)單元;-用于使所述關(guān)聯(lián)的第二處理器的讀/寫(xiě)同步和/或存儲(chǔ)器訪問(wèn)的處理器間的同步的同步單元;和/或-用于調(diào)度與所連接的處理器相關(guān)的任務(wù)的任務(wù)調(diào)度單元,用于管理要由所述第二處理器處理的一組任務(wù),和/或管理任務(wù)間的通信信道。
5.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,采用該通信裝置以實(shí)施控制在所述連接著的第二處理器和在獨(dú)立于所述連接著的處理器的所述存儲(chǔ)器之間的通信的同樣功能。
6.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,所述通信裝置提供將所傳輸?shù)臄?shù)據(jù)映射到存儲(chǔ)器范圍內(nèi)的功能。
7.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,在所述第二處理器和與它們相關(guān)聯(lián)的通信裝置之間的通信是主/從通信,所述第二處理器起主設(shè)備的作用。
8.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,所述第二處理器是功能特定的專用處理器,用于執(zhí)行一個(gè)范圍的流處理任務(wù)。
9.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,在所述通信支持層中的所述通信裝置包括一個(gè)朝向在所述計(jì)算層中的所述相關(guān)聯(lián)的第二處理器的一個(gè)可適配的第一任務(wù)級(jí)接口和一個(gè)朝向所述通信網(wǎng)絡(luò)和所述存儲(chǔ)器的第二系統(tǒng)級(jí)接口,其中,所述第一和第二接口同時(shí)或非同時(shí)激活。
10.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,-至少一個(gè)所述第二處理器是可編程的,-所述第二處理器之一的通信裝置的第一任務(wù)級(jí)接口至少部分可編程,和其中,該通信裝置的部分功能可編程。
11.根據(jù)權(quán)利要求1或者9的數(shù)據(jù)處理系統(tǒng),其中,所述通信裝置包括附加的接口,用于直接與所述數(shù)據(jù)處理系統(tǒng)中的其它通信裝置交換控制信息和/或同步信息。
12.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其中,所述通信裝置通過(guò)它們的附加的接口連接在令牌環(huán)結(jié)構(gòu)中。
13.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,采用所述通信裝置把一個(gè)輸出流多點(diǎn)傳送給多于一個(gè)的接收的第二處理器,而不通知發(fā)送該輸出流的第二處理器。
14.根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,采用所述通信裝置以便對(duì)關(guān)聯(lián)的第二處理器隱藏該通信網(wǎng)絡(luò)的實(shí)現(xiàn)方面。
15.數(shù)據(jù)處理系統(tǒng)中的通信裝置,所述數(shù)據(jù)處理系統(tǒng)包括一個(gè)包括用于處理數(shù)據(jù)對(duì)象流的第一和至少一個(gè)第二處理器的計(jì)算層,所述第一處理器被安排來(lái)從數(shù)據(jù)對(duì)象流傳送數(shù)據(jù)對(duì)象給第二處理器;一個(gè)包括通信網(wǎng)絡(luò)和存儲(chǔ)器的通信網(wǎng)絡(luò)層;一個(gè)被安排在所述計(jì)算層和所述通信網(wǎng)絡(luò)層之間的通信支持層;其中,該通信裝置與一個(gè)第二處理器相關(guān)聯(lián),并控制經(jīng)由該通信網(wǎng)絡(luò)層中的通信網(wǎng)絡(luò)在所述第二處理器和所述存儲(chǔ)器之間的通信。
16.根據(jù)權(quán)利要求15的通信裝置,其中,所述通信單元被安排成處理多個(gè)向內(nèi)的和向外的流和/或每一任務(wù)的多個(gè)流。
17.根據(jù)權(quán)利要求15的通信裝置,還包括-用于允許所述關(guān)聯(lián)的第二處理器從/向通信網(wǎng)絡(luò)層中的所述存儲(chǔ)器進(jìn)行讀/寫(xiě)的讀/寫(xiě)單元;-用于使所述關(guān)聯(lián)的第二處理器的讀/寫(xiě)同步和/或存儲(chǔ)器訪問(wèn)的處理器間的同步的同步單元;和/或-任務(wù)調(diào)度單元,用于調(diào)度與所連接的處理器相關(guān)的任務(wù)、管理要由所述第二處理器處理的一組任務(wù)、和/或管理任務(wù)間的通信信道。
18.根據(jù)權(quán)利要求15的通信裝置,其中,在通信裝置和第二處理器之間的通信是主/從通信,其中所述第二處理器起主設(shè)備的作用。
19.根據(jù)權(quán)利要求15的通信裝置,還包括-一個(gè)朝向所述計(jì)算層中的所述相關(guān)聯(lián)的第二處理器的可適配的第一任務(wù)級(jí)接口和一個(gè)朝向所述通信網(wǎng)絡(luò)和所述存儲(chǔ)器的第二系統(tǒng)級(jí)接口,其中,所述第一和第二接口同時(shí)或非同時(shí)激活。
20.根據(jù)權(quán)利要求15的通信裝置,其中,第一任務(wù)級(jí)接口至少部分可編程,和其中通信裝置的部分功能是可編程的。
21.根據(jù)權(quán)利要求15的通信裝置,還包括附加的接口,用于與所述數(shù)據(jù)處理系統(tǒng)中的其它通信裝置直接交換控制信息和/或同步信息。
22.根據(jù)權(quán)利要求15的通信裝置,其中,采用所述通信裝置把一個(gè)輸出流多點(diǎn)傳送給多于一個(gè)接收的第二處理器,而不通知發(fā)送該輸出流的第二處理器。
23.根據(jù)權(quán)利要求15的通信裝置,其中,采用所述通信裝置以便對(duì)關(guān)聯(lián)的第二處理器隱藏該通信網(wǎng)絡(luò)的實(shí)現(xiàn)方面。
24.用于在數(shù)據(jù)處理系統(tǒng)中處理數(shù)據(jù)的方法,所述數(shù)據(jù)處理系統(tǒng)包括用于處理數(shù)據(jù)對(duì)象流的第一和至少一個(gè)第二處理器,所述第一處理器被安排成從數(shù)據(jù)對(duì)象流傳送數(shù)據(jù)對(duì)象給第二處理器;至少一個(gè)用于存儲(chǔ)和檢索數(shù)據(jù)對(duì)象的存儲(chǔ)器;和用于每個(gè)所述第二處理器的一個(gè)通信裝置,其中,提供對(duì)所述第一和所述第二處理器的共享訪問(wèn),所述方法包括下列步驟每個(gè)所述第二處理器的通信裝置控制在所述第二處理器和所述存儲(chǔ)器之間的通信。
25.根據(jù)權(quán)利要求24的處理數(shù)據(jù)的方法,還包括下列步驟所述通信單元處理多個(gè)向內(nèi)的和向外的流和/或每一任務(wù)的多個(gè)流。
26.根據(jù)權(quán)利要求24的處理數(shù)據(jù)的方法,其中,所述控制步驟包括以下步驟-允許所述關(guān)聯(lián)的第二處理器從/向通信網(wǎng)絡(luò)層中的所述存儲(chǔ)器進(jìn)行讀/寫(xiě);-使所述關(guān)聯(lián)的第二處理器的讀/寫(xiě)同步和/或存儲(chǔ)器訪問(wèn)的處理器間的同步;和/或-調(diào)度與所連接的處理器相關(guān)的任務(wù)、管理要由所述第二處理器處理的一組任務(wù)、和/或管理任務(wù)間的通信信道。
27.根據(jù)權(quán)利要求24的處理數(shù)據(jù)的方法,其中,在所述第二處理器和與它們相關(guān)的通信裝置之間的通信是主/從通信,所述第二處理器起主設(shè)備的作用。
28.根據(jù)權(quán)利要求24的處理數(shù)據(jù)的方法,其中,所述通信裝置把一個(gè)輸出流多點(diǎn)傳送給多于一個(gè)接收的第二處理器,而不通知發(fā)送該輸出流的第二處理器。
29.根據(jù)權(quán)利要求24的處理數(shù)據(jù)的方法,其中,所述通信裝置對(duì)關(guān)聯(lián)的第二處理器隱藏該通信網(wǎng)絡(luò)的實(shí)現(xiàn)方面。
全文摘要
本發(fā)明基于這樣一種思想,即通過(guò)為每一處理器引入通信裝置以有效地把數(shù)據(jù)處理系統(tǒng)中的通信硬件(例如總線和存儲(chǔ)器)和計(jì)算硬件(例如處理器)分開(kāi)。通過(guò)引入這一分離,處理器可以集中于執(zhí)行它們功能特定的任務(wù),同時(shí)通信裝置對(duì)各處理器提供通信支持。因此給數(shù)據(jù)處理系統(tǒng)提供了計(jì)算層、通信支持層和通信網(wǎng)絡(luò)層。計(jì)算層包括第一和至少一個(gè)第二處理器,用于處理數(shù)據(jù)對(duì)象流。第一處理器把一個(gè)流中的一些數(shù)據(jù)對(duì)象傳送給第二處理器,后者然后可以處理這些數(shù)據(jù)對(duì)象。通信網(wǎng)絡(luò)層包括存儲(chǔ)器和用于鏈接第一處理器和第二處理器與所述存儲(chǔ)器的通信網(wǎng)絡(luò)。通信支持層安排在計(jì)算層和通信網(wǎng)絡(luò)層之間,包括為計(jì)算層中的每一第二處理器所用的一個(gè)通信裝置。每一第二處理器的該通信裝置控制在所述第二處理器和存儲(chǔ)器之間通過(guò)通信網(wǎng)絡(luò)層中的通信網(wǎng)絡(luò)所進(jìn)行的通信。
文檔編號(hào)G06F9/46GK1605064SQ02824916
公開(kāi)日2005年4月6日 申請(qǐng)日期2002年12月5日 優(yōu)先權(quán)日2001年12月14日
發(fā)明者J·T·J·范埃德霍文, E·J·波, M·J·魯特坦, P·范德沃夫, O·P·岡瓦 申請(qǐng)人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1