專利名稱:信號處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理信號流的裝置,并涉及一種操縱這種裝置的方法以及一種制造這種裝置的方法。
背景技術(shù):
在諸如電視/互聯(lián)網(wǎng)訪問設(shè)備、圖形處理器、攝像機、音頻設(shè)備等用于媒體訪問的設(shè)備中要求信號流處理?,F(xiàn)代設(shè)備要求執(zhí)行的流處理計算量越來越大。流處理涉及在信號單元到達(dá)的同時處理(至少原則上)此類信號單元的無限流的連續(xù)信號單元。
在這種設(shè)備中,流處理計算的實現(xiàn)必須滿足幾個要求必須滿足實時信號流處理約束條件,必須可以執(zhí)行靈活的作業(yè)組合并且必須每秒能夠執(zhí)行大量計算。需要實時流處理要求是為了,例如,避免音頻再現(xiàn)中的遲鈍、凍結(jié)顯示圖像或由于緩沖過剩造成的廢棄輸入音頻或視頻數(shù)據(jù)。需要靈活性要求,是因為用戶必須能夠在運行時間選擇應(yīng)該同時執(zhí)行哪些信號處理作業(yè)組合,總是滿足實時約束條件。大量計算的要求通常意味著應(yīng)該將所有的這些都實現(xiàn)在一個多處理器的系統(tǒng)中,所述多個處理器并行工作,執(zhí)行作為信號處理作業(yè)一部分的不同任務(wù)。
在這種靈活的分布式系統(tǒng)中,很難保證能夠滿足實時約束條件。產(chǎn)生數(shù)據(jù)需要的時間不僅依賴于實際計算時間,而且依賴于處理器等待輸入數(shù)據(jù)和等待緩沖間隔以便能夠?qū)戄敵鰯?shù)據(jù)的等待時間,直到處理器能用的等待時間等等。不可預(yù)知的等待會使實時性能變得不可預(yù)知。如果進(jìn)程彼此等待產(chǎn)生數(shù)據(jù)和或釋放資源,等待可能會導(dǎo)致死鎖。
盡管在通常情況下等待不會妨礙實時性能,但在特殊情況下也會無法滿足實時約束條件,所述特殊情況為信號數(shù)據(jù)導(dǎo)致在異常(但并非錯誤)短或長的時間內(nèi)完成流組塊的某些計算任務(wù)時。當(dāng)然,可以讓用戶自行嘗試設(shè)備是否總是支持作業(yè)組合。但這會導(dǎo)致用戶只能在事后發(fā)現(xiàn)視頻信號的一部分沒有被記錄下來或者該系統(tǒng)在無法預(yù)知的時刻崩潰。盡管在某些系統(tǒng)中,用戶被迫接受這種性能,但這當(dāng)然不十分令人滿意。
稱為同步數(shù)據(jù)流圖(SDF)的理論框架的使用為個別作業(yè)提供了這一問題的解決方案。SDF圖背后的理論使得能夠事先計算將流處理作業(yè)任務(wù)分布到多個處理器中實施時是否能夠在所有情況下滿足實時約束條件或其它吞吐量要求。SDF圖理論的基本方法是為并行執(zhí)行所有任務(wù)的理論處理器組計算執(zhí)行時間。SDF圖理論證明,在某些條件下,為該組理論處理器計算的吞吐率(產(chǎn)生流連續(xù)部分之間需要的時間)總是低于任務(wù)的實際實施的吞吐率。因此,如果證明任務(wù)組合對于理論處理器組而言是實時工作的,則可保證實際實施的實時性能。
通過將必須執(zhí)行的作業(yè)分成任務(wù)來構(gòu)造SDF圖。這些任務(wù)對應(yīng)SDF圖中的節(jié)點。典型地,通過反復(fù)執(zhí)行從其它任務(wù)或向其它任務(wù)輸入和/或輸出一個或多個輸入數(shù)據(jù)流的操作來實施每個任務(wù)。SDF圖節(jié)點之間的連線(edge)表示任務(wù)之間的流通信。在理論處理器組中,由各個處理器執(zhí)行每個任務(wù)的操作。在啟動操作執(zhí)行之前,理論處理器等待足夠的時間。在SDF模型中,假定每個流都由連續(xù)“標(biāo)記(token)”組成,每個“標(biāo)記”對應(yīng)流數(shù)據(jù)的各個塊。當(dāng)處理器的輸入端有指定數(shù)目的標(biāo)記可用時便假定該處理器立即開始處理,從其輸入端輸入(移除)標(biāo)記,并且在其輸出端產(chǎn)生結(jié)果標(biāo)記之前占用預(yù)定時間間隔。對于這種理論模型,可以計算輸出標(biāo)記的時間點。
為了將這些計算出來的理論時間點轉(zhuǎn)換成實際組處理器的最壞情況時間點,首先必須將理論處理器要求的預(yù)定時間間隔持續(xù)時間選為等于(或長于)實際處理器所需的最壞情況時間間隔。
其次,必須使理論模型“認(rèn)識到”實際處理器的多種限制。例如,實際中,如果處理器仍在為先前的標(biāo)記處理操作,那么它無法啟動一個操作的執(zhí)行。這一限制在SDF圖中通過添加從節(jié)點出發(fā)回到該節(jié)點的“自連線”表示。對應(yīng)這個節(jié)點的處理器被建模為,在開始執(zhí)行之前要求來自于這一自連線的一個標(biāo)記并且在執(zhí)行結(jié)束時輸出一個標(biāo)記。當(dāng)然,每個執(zhí)行期間也處理來自處理器常規(guī)輸入的標(biāo)記。將自連線初始化為包含一個標(biāo)記。這樣,給定理論處理器組以下的實際特性,即在執(zhí)行一個標(biāo)記任務(wù)之前必須等待先前標(biāo)記執(zhí)行完畢。類似地,可使SDF圖認(rèn)識到由于緩沖容量導(dǎo)致的實際限制,這在輸出緩沖器內(nèi)沒有可用空間時將導(dǎo)致處理器等待。
實際處理器的其它限制一般由如下情形導(dǎo)致,即每個處理器通常以時間多路方式執(zhí)行多個不同任務(wù)的操作。這意味著,實際啟動操作執(zhí)行不僅要等待標(biāo)記的可用性,而且要等待由相同處理器執(zhí)行的其它任務(wù)操作的完成。在某些條件下,這一限制可以在SDF圖中表現(xiàn)出來。特別地,當(dāng)存在多路任務(wù)將按其執(zhí)行的預(yù)定順序時,這在SDF圖上可通過根據(jù)該預(yù)定順序附加從一個多路任務(wù)到下一個多路任務(wù)的循環(huán)連線并將初始標(biāo)記附加到這一循環(huán)的第一連線上表現(xiàn)出來。這樣,理論處理器組被賦予了以下實際特性,即循環(huán)中每個任務(wù)執(zhí)行的開始都要等待先前任務(wù)完成。
應(yīng)該注意,這種使SDF圖模型“認(rèn)識”實際實施的限制的方法并非對所有可能的限制都適用。例如,如果沒有預(yù)先確定處理器執(zhí)行時間多路任務(wù)的順序,則在SDF圖中無法表示出定時的順序。因此,例如,如果沒有足夠標(biāo)記來啟動特定任務(wù)時便安排處理器跳過該特定任務(wù)(行進(jìn)至下一個任務(wù)),無法在SDF圖中表示出這種效果。實際上,這意味著在這種情況下不可能保證實時吞吐量。因此,實時保證要付出高昂代價僅可使用某些實施。通??梢哉f,為了適應(yīng)SDF圖理論,實施必須滿足“單調(diào)性條件”更快速的任務(wù)執(zhí)行不能導(dǎo)致任何其它任務(wù)的更遲執(zhí)行。
此外,應(yīng)該注意,很難將SDF圖理論應(yīng)用到多個并行作業(yè)的靈活組合的執(zhí)行中。原則上,這要求并行執(zhí)行的所有不同作業(yè)任務(wù)必須包含在同一個SDF圖中。這在表示任務(wù)間的相互定時影響時是需要的。但是,如果不同作業(yè)的輸入和/或輸出數(shù)據(jù)速率不同步,則無法以這種方式提供實時保證。此外,每當(dāng)附加或從作業(yè)組中刪除一個作業(yè)時便執(zhí)行一次新的吞吐量時間計算將需要相當(dāng)可觀的開銷。
發(fā)明內(nèi)容
本發(fā)明的目的之一是通過能在運行時間以較小開銷應(yīng)用的SDF圖理論技術(shù)來提供實時保證。
本發(fā)明的目的之一是在必須通過處理器組執(zhí)行靈活作業(yè)組合時降低使用SDF圖理論技術(shù)提供實時保證所需的計算量。
本發(fā)明的目的之一是在必須通過處理器組執(zhí)行非同步作業(yè)的靈活組合時提供實時保證。
本發(fā)明的目的之一是能夠在多處理器電路中提供實時保證,所述多處理器電路中一個處理器在循環(huán)的基礎(chǔ)上執(zhí)行多個任務(wù),若沒有充分的輸入數(shù)據(jù)可用于前一任務(wù),則繼續(xù)行進(jìn)至循環(huán)序列中的下一個任務(wù)。
本發(fā)明的目的之一是使用SDF圖理論在較小的資源浪費下提供實時保證。
本發(fā)明提供了一種根據(jù)權(quán)利要求1的設(shè)備和一種根據(jù)權(quán)利要求4的方法。根據(jù)本發(fā)明,通過一個兩階段過程保證多個同時執(zhí)行的流處理作業(yè)的實時吞吐量。在第一階段,孤立考慮各個作業(yè),并且將這些作業(yè)的執(zhí)行參數(shù)(諸如用于緩沖來自任務(wù)之間流的數(shù)據(jù)的緩沖器尺寸)選擇在一個假定范圍內(nèi),其中至多間隔為該任務(wù)規(guī)定的周期T就出現(xiàn)啟動任務(wù)執(zhí)行的機會。優(yōu)選地,還需要檢查是否能夠根據(jù)所需的實時要求執(zhí)行作業(yè),即是否能以最多一個指定延遲產(chǎn)生連續(xù)數(shù)據(jù)塊。在第一階段,不必知道必須同時執(zhí)行哪些流處理作業(yè)的組合。
在第二階段,考慮并發(fā)執(zhí)行的處理作業(yè)的組合。在這一階段,多個處理單元中的每一個都從選定作業(yè)組合中分配一組任務(wù)。分配期間,為每個特定處理單元檢查分配給該特定處理單元的任務(wù)的最壞情況執(zhí)行時間總和不超出分配給該特定處理單元的任何任務(wù)所規(guī)定的循環(huán)時間T。這個總和反映在處理器單元使用調(diào)度算法處理任務(wù)(例如,循環(huán)調(diào)度)的條件下最壞情況執(zhí)行時間如何影響連續(xù)執(zhí)行機會之間的最大可能延遲。最后,并發(fā)執(zhí)行選定的作業(yè)組合,時分多路復(fù)用各個處理單元上任務(wù)循環(huán)的執(zhí)行。通常,處理單元不必等到任務(wù)可以執(zhí)行。如果使用了保證實時性能的發(fā)明過程,對由于缺少輸入和/輸出緩沖空間而無法行進(jìn)的任務(wù)處理單元可跳至下一個任務(wù)。這在提高處理相互不同步的數(shù)據(jù)流的不同作業(yè)的性能方面是非常有利的。
優(yōu)選將所有任務(wù)的循環(huán)時間T選為相同。這簡化第二階段的操作。但是,根據(jù)第二實施例,當(dāng)實時要求不能得到滿足時便對選定任務(wù)的循環(huán)時間進(jìn)行調(diào)整。通過降低特定任務(wù)的循環(huán)時間,我們能夠有效允許相同的處理單元處理更少的特定任務(wù),以便提高性能。循環(huán)時間的調(diào)整使得能夠在第一階段搜索可能的實時實施,即在不知道那些必須并行執(zhí)行的任務(wù)組合時。
可通過SDF圖技術(shù)計算假定情況下所需的最小緩沖器尺寸。一個實施例中,通過在過程的SDF圖中將虛擬節(jié)點附加在真實任務(wù)節(jié)點之前來計算緩沖器尺寸。將這些虛擬節(jié)點的最壞情況執(zhí)行時間設(shè)置為表示最壞情況延遲,這種最壞情況延遲由執(zhí)行一個任務(wù)循環(huán)時等待處理單元到達(dá)任務(wù)引起。然后,通過考慮從產(chǎn)生數(shù)據(jù)流的節(jié)點到消耗該數(shù)據(jù)流的另一個節(jié)點穿過SDF圖的所有路徑,并確定每條路徑上的節(jié)點的最壞情況執(zhí)行時間的總和,來確定緩沖器尺寸。正如實時吞吐量要求確定的那樣,由連續(xù)標(biāo)記間最大允許時間分割后,這些總和中的最大者可用來確定緩沖器尺寸。
通過下面的附圖對本發(fā)明的這些和其它目的和優(yōu)勢進(jìn)行更詳細(xì)的闡述,這些附圖對實施例的非限制性示例進(jìn)行說明。
圖1示出一個多處理器電路的示例圖1a-c示出一個簡單作業(yè)的SDF2示出一個保證實時性能的過程的流程3示出一個保證實時性能的兩階段過程的流程4示出保證實時性能的兩階段過程中一個步驟的流程5示出一個簡單作業(yè)的精細(xì)SDF6示出一個實現(xiàn)本發(fā)明的典型系統(tǒng)具體實施方式
圖1示出一個多處理器電路的示例。該電路包含多個處理單元10,它們通過互連電路12互相連接。盡管只示出了3個處理單元10,但應(yīng)該理解可提供更多或更少數(shù)目的處理單元。每個處理單元包含一個處理器14、一個指令存儲器15、一個緩沖存儲器16和一個互連接口17。應(yīng)該理解,盡管沒有示出,但處理單元10可包含其它元件,諸如數(shù)據(jù)存儲器、高速緩沖存儲器等。每個處理單元中,處理器14耦合到指令存儲器15,并經(jīng)由緩沖存儲器16和互連接口17耦合到互連電路12。例如,互連電路12包括一個總線或一個網(wǎng)絡(luò)等,用于在處理單元10之間傳輸數(shù)據(jù)。
操作中,多處理器電路能夠并行執(zhí)行多個信號處理作業(yè)。一個信號處理作業(yè)涉及各自的多個任務(wù),一個作業(yè)的不同任務(wù)可由不同處理單元10執(zhí)行。信號處理應(yīng)用的一個示例是這樣一種應(yīng)用,它涉及兩個MPEG流的MPEG解碼以及所述流中視頻部分?jǐn)?shù)據(jù)的混合。這樣一個應(yīng)用可被劃分為多個作業(yè),例如兩個MPEG解碼作業(yè)、一個音頻解碼作業(yè)、一個視頻混合作業(yè)合以及一個對比度校正作業(yè)。反過來,每個作業(yè)涉及一個或多個重復(fù)執(zhí)行的任務(wù)。例如,一個MPEG作業(yè)包括一個可變長度解碼任務(wù)、一個余弦塊變換任務(wù)等。
一個作業(yè)的不同任務(wù)由不同處理單元10并行執(zhí)行。例如,這樣做是為了實現(xiàn)足夠的吞吐量。由不同處理單元執(zhí)行任務(wù)的另一個原因是某些處理單元10專門高效處理某些任務(wù),而其它處理單元專門高效執(zhí)行其它任務(wù)。每個任務(wù)輸入和/或輸出一個或多個信號數(shù)據(jù)流。這些信號數(shù)據(jù)流被分組到預(yù)定最大尺寸的塊中(通常表示預(yù)定時間間隔的信號數(shù)據(jù)或圖像的預(yù)定部分,并優(yōu)選為預(yù)定尺寸),例如這包括一個傳輸數(shù)據(jù)包、單個象素或單個象素線的數(shù)據(jù)、一個8×8象素塊、一個象素幀、一個音頻采樣、一定時間間隔的音頻采樣集合等等。
在作業(yè)的執(zhí)行期間,對每個任務(wù)而言,重復(fù)執(zhí)行對應(yīng)該任務(wù)的操作,每次將流的預(yù)定數(shù)目塊(例如一個塊)用作輸入和/或產(chǎn)生預(yù)定數(shù)目塊作為輸出。一個任務(wù)的輸入數(shù)據(jù)塊通常由其它任務(wù)產(chǎn)生,并且輸出數(shù)據(jù)塊通常由其它任務(wù)使用。當(dāng)?shù)谝蝗蝿?wù)輸出被第二任務(wù)使用的流塊時,將在輸出之后和使用之前將該流塊緩沖在緩沖存儲器16中。如果第一和第二任務(wù)由不同處理單元10執(zhí)行,則流塊經(jīng)由互連電路12傳送到將該流塊用作輸入的處理單元10的緩沖存儲器16中。
SDF圖理論在SDF(同步數(shù)據(jù)流)圖理論的基礎(chǔ)上對多處理器電路的性能進(jìn)行管理。從現(xiàn)有技術(shù)可基本了解SDF圖理論本身。
圖1a示出一個SDF圖示例。SDF圖理論概念性地將應(yīng)用描繪為帶有“節(jié)點”100的圖,所述節(jié)點100對應(yīng)不同的任務(wù)。這些節(jié)點由直接“連線”102連接,直接連線102連接節(jié)點對,并表示流塊由對應(yīng)該節(jié)點對中第一節(jié)點的任務(wù)輸出并由對應(yīng)該節(jié)點對中第二節(jié)點的任務(wù)使用。流塊由“標(biāo)記(token)”符號表示。對每個節(jié)點規(guī)定在執(zhí)行相應(yīng)任務(wù)之前應(yīng)該在其輸入連接處出現(xiàn)多少標(biāo)記,并規(guī)定執(zhí)行時任務(wù)將輸出多少標(biāo)記。在產(chǎn)生流塊之后且在其被使用之前,在一條連線上呈現(xiàn)一個標(biāo)記。這對應(yīng)于流塊在緩沖存儲器16中的存儲。連線上標(biāo)記的出現(xiàn)與否規(guī)定了SDF圖的狀態(tài)。當(dāng)節(jié)點“消耗”一個或多個標(biāo)記和/或產(chǎn)生一個或多個標(biāo)記時,這個狀態(tài)發(fā)生改變。
SDF圖基本上描繪了數(shù)據(jù)流和一個作業(yè)執(zhí)行期間的處理操作、同可在一個操作中處理的數(shù)據(jù)流塊相對應(yīng)的標(biāo)記。但是,也可在SDF圖中表示諸如總線訪問判優(yōu)、并行性執(zhí)行量限制、緩沖器尺寸限制等多個方面。
例如,可通過附加一個表示傳輸任務(wù)的節(jié)點來建模經(jīng)由總線或網(wǎng)絡(luò)的傳輸(假定使用了總線或網(wǎng)絡(luò)訪問機制,確保在預(yù)定時間內(nèi)的訪問)。作為另一個示例,原則上假定一旦存在足夠的可用輸入標(biāo)記,圖形中的任何節(jié)點就會啟動任務(wù)的執(zhí)行。這隱含這樣一個假定,即在先任務(wù)的執(zhí)行不妨礙執(zhí)行的啟動。這可通過不限制數(shù)目地為同一個任務(wù)提供并行處理器來保證。實際上,處理器的數(shù)目當(dāng)然是有限的,通常限制為不多于一個,這意味著在前一執(zhí)行完成之前不能開始下一個任務(wù)的執(zhí)行。圖1b示出這是如何通過將“自連線”104附加到SDF圖上來建模的,每個自連線104都從節(jié)點出發(fā)并回到該節(jié)點,自連線上初始附帶多個標(biāo)記106,對應(yīng)可并行實施的執(zhí)行數(shù)量,例如一個標(biāo)記106。這表示可通過消耗該標(biāo)記來初始啟動任務(wù),但其在該任務(wù)完成并由此替換該標(biāo)記之前不能再次啟動。實際上,由于一個節(jié)點上任務(wù)的有限啟動可能性自動隱含對將被啟動的連接節(jié)點上的任務(wù)的啟動次數(shù)限制,因此將此類自連線附加到選定節(jié)點就足夠了。
圖1c示出一個示例,其中通過附加返回連線108并通過在這個返回連線108上安置多個標(biāo)記110來表達(dá)對緩沖器的尺寸限制,該緩沖器用于從第一任務(wù)向第二任務(wù)通信,所述返回連線108從第二任務(wù)的節(jié)點返回到第一任務(wù)的節(jié)點,標(biāo)記110的數(shù)目對應(yīng)可在緩沖器中存儲的流塊數(shù)目。這表示第一任務(wù)最初可執(zhí)行同初始標(biāo)記相對應(yīng)的次數(shù),并且只有第二任務(wù)完成執(zhí)行并由此替代標(biāo)記時才可能實施后續(xù)執(zhí)行。
SDF圖表示從任何特定實施中提取出來的任務(wù)之間的數(shù)據(jù)通信。為了清楚地呈現(xiàn),可認(rèn)為每個節(jié)點對應(yīng)一個專門執(zhí)行相應(yīng)任務(wù)的處理器,并且可認(rèn)為每個連線對應(yīng)一個通信連接,在一對處理器之間包括一個FIFO緩沖器。但是,從下述提取SDF圖它同樣表示這樣的情況,其中由相同的處理器執(zhí)行不同任務(wù),并且不同任務(wù)的流塊經(jīng)由一個諸如總線或網(wǎng)絡(luò)的共享連接進(jìn)行通信。
SDF圖理論的主要吸引力之一是它通過實施SDF圖的處理器支持最壞情況吞吐量的預(yù)測。這一預(yù)測的起始點是帶有自定時處理單元的SDF圖理論實施,每一個都專用于特定任務(wù),并且每一個都被安排為在接收到足夠的輸入標(biāo)記來執(zhí)行任務(wù)時便立即啟動執(zhí)行任務(wù)。這一理論實施中,假定每個處理單元對其相應(yīng)任務(wù)的每次執(zhí)行都要求一個預(yù)定執(zhí)行時間。
對于這一實施,可以很容易地計算任務(wù)(由標(biāo)注“v”識別)的各個執(zhí)行(由不同標(biāo)注值k=0,1,2…識別)的啟動時間s(v,k)。通過有限的計算量可為無限數(shù)目的k值確定啟動時間s(v,k),因為現(xiàn)有技術(shù)已通過SDF圖理論證明,這一實施導(dǎo)致啟動時間s(v,k)的重復(fù)模式s(v,k+N)=s(v,k)+λN在此,N表示其后模式重復(fù)的執(zhí)行數(shù)目,并且λ是在該周期內(nèi)兩個連續(xù)執(zhí)行之間的平均延遲,即1/λ是平均吞吐率,每個單位時間內(nèi)產(chǎn)生的平均流塊數(shù)目。
現(xiàn)有技術(shù)SDF圖理論已經(jīng)示出,可通過識別SDF圖中的簡單循環(huán)來確定λ(簡單循環(huán)是沿著至多包含節(jié)點一次的連線的閉合環(huán)路)。對于每個此類循環(huán)“c”,可以計算一個標(biāo)稱平均執(zhí)行時間CM(c),它是該循環(huán)內(nèi)節(jié)點的執(zhí)行時間總和被循環(huán)連線上的初始標(biāo)記數(shù)目相除得到的。λ是具有最長平均執(zhí)行時間的循環(huán)cmax的平均執(zhí)行時間CM(cmax)。類似地,現(xiàn)有技術(shù)SDF圖理論提出了一種計算一個周期內(nèi)執(zhí)行次數(shù)N的方法??梢宰⒁獾?,實際情況中的圖至少包含一個循環(huán),因為否則的話該圖將對應(yīng)無限數(shù)目的處理器,它們能夠并行執(zhí)行任務(wù)無限次,而這將導(dǎo)致無限的吞吐率。
理論實施所得到的結(jié)果可用來確定SDF圖實際實施的最小吞吐率。基本思想是確定實際實施中每個任務(wù)的最壞情況執(zhí)行時間。隨后,將這個最壞情況執(zhí)行時間作為執(zhí)行時間分配給對應(yīng)理論實施中該任務(wù)的節(jié)點。SDF圖理論通過這個最壞情況執(zhí)行時間為理論實施計算啟動時間sth(v,k)。在一定條件下,可以保證這些最壞情況啟動時間總是至少同實際實施中的執(zhí)行啟動simp(v,k)一樣遲simp(v,k)≤sth(v,k)這使得能夠保證最壞情況吞吐率和得到數(shù)據(jù)之前的最大延遲。但是,只有在SDF圖中對可能延遲任務(wù)執(zhí)行的所有實施細(xì)節(jié)進(jìn)行建模時才能提供這一保證。這將實施限制為其中的未建模方面具有單調(diào)影響的實施一個任務(wù)的執(zhí)行時間降低不會導(dǎo)致任何任務(wù)啟動時間的延遲。
預(yù)定任務(wù)組合的調(diào)度圖2示出在圖1處理電路上通過SDF圖理論調(diào)度任務(wù)組合過程的流程圖。第一步21中,該過程接收任務(wù)組合以及任務(wù)之間的通信的說明。第二步22中,該過程將特定任務(wù)的執(zhí)行分配給不同的處理單元10。由于實際電路中的處理單元數(shù)通常遠(yuǎn)小于任務(wù)數(shù),因此至少多個處理單元10之一被分配多個任務(wù)。
第三步23中,該過程調(diào)度一個順序和一個相對頻率,將按其執(zhí)行任務(wù)(將在運行時間無限重復(fù)順序的執(zhí)行)。這個順序必須保證不會出現(xiàn)死鎖處理單元10中的任何特定任務(wù)都直接或間接地從該處理單元10執(zhí)行的另一個任務(wù)要求流塊,應(yīng)該在所述特定任務(wù)之前如此頻繁地調(diào)度其它任務(wù)使其產(chǎn)生足夠的流塊來啟動該特定任務(wù)。這需要被所有處理器保持。
第四步24中,該過程選擇存儲流塊的緩沖器尺寸。對于相同處理單元10中執(zhí)行的任務(wù),根據(jù)調(diào)度得到緩沖器尺寸的最小值,它必須能夠在其它任務(wù)使用該數(shù)據(jù)或在重復(fù)調(diào)度之前將任務(wù)產(chǎn)生的數(shù)據(jù)存儲起來。正如下面討論的那樣,根據(jù)第六和第七步26、27的結(jié)果,可任意選擇在不同處理單元上執(zhí)行的任務(wù)之間的緩沖器尺寸。
第五步25中,該過程通過特定任務(wù)及其產(chǎn)生節(jié)點和連線的從屬關(guān)系有效形成SDF圖表示。盡管通俗地說該過程形成SDF圖并以一定方式修正這個圖,但應(yīng)該理解這意味著產(chǎn)生了表征至少同SDF圖等價的信息的數(shù)據(jù),即可由此清楚地導(dǎo)出這個SDF圖的相關(guān)特性。
該過程在調(diào)度于不同處理單元10上的任務(wù)節(jié)點之間的連線上以及表示緩沖器尺寸限制的連線上附加“通信處理器”節(jié)點,并附加能夠并行實施的任務(wù)執(zhí)行數(shù)。該過程還將各個執(zhí)行時間ET同每個特定節(jié)點相關(guān)聯(lián),它對應(yīng)在相同處理單元10上以相同順序調(diào)度的任務(wù)的最壞執(zhí)行時間總和WCET,所述處理單元10具有對應(yīng)該特定節(jié)點的特定任務(wù)。這對應(yīng)從可能的輸入數(shù)據(jù)直到執(zhí)行完成之間的最壞情況等待時間。
第六步26中,該過程分析SDF圖,以便計算該SDF圖的最壞情況啟動時間sth(v,k),通常包括計算前述的平均吞吐量延遲λ和重復(fù)頻率N。第七步27中,該過程測試求得的最壞情況啟動時間Sth(vk)是否滿足任務(wù)組合指定的實時要求(即,這些啟動時間位于必須得到流塊的指定時間點之前或之上,它們通常是周期性重復(fù)的時間點,諸如輸出視頻幀的時間點)。如果是這樣,該過程執(zhí)行第八步28,加載任務(wù)的程序代碼和信息,以便迫使調(diào)度進(jìn)入調(diào)度這些任務(wù)的處理單元10,或者至少輸出隨后用于這一加載的信息。如果第七步顯示調(diào)度不滿足實時要求,則該過程通過處理單元10的不同任務(wù)分配和/或在不同處理單元10上執(zhí)行的任務(wù)之間的不同緩沖器尺寸從第二步22開始重復(fù)。
執(zhí)行調(diào)度任務(wù)期間,當(dāng)輪到調(diào)度中的一個任務(wù)時,相關(guān)處理單元10一直等待,直到有足夠的輸入數(shù)據(jù)和輸出緩沖器空間來執(zhí)行該任務(wù)為止(或者等價地,該任務(wù)本身被啟動之后一直等待)。也就是說,即使清楚地看到一個任務(wù)無法執(zhí)行而調(diào)度中的后續(xù)任務(wù)可以執(zhí)行也不允許背離調(diào)度。這樣作的原因是,背離調(diào)度將會導(dǎo)致違背實時約束條件。
靈活的任務(wù)運行時間組合圖3示出另一個過程的流程圖,它將多個作業(yè)的任務(wù)動態(tài)分配給處理單元10。這一過程包括第一步31,其中該過程接收多個作業(yè)的說明。不必要在第一步31中指定哪些作業(yè)必須組合執(zhí)行。每個作業(yè)都可能包含將被組合執(zhí)行的多個通信任務(wù)。第二步32中,該過程單獨為每個作業(yè)實施初始緩沖器尺寸選擇??稍趯嶋H運行時間操作之前脫機實施第一步和第二步。
在運行時間,該過程動態(tài)調(diào)度作業(yè)組合。通常,作業(yè)被逐個添加,并且如果多處理器電路執(zhí)行了任何一個作業(yè),該過程便執(zhí)行第三步33,其中該過程接收一個向所述多個作業(yè)添加一個作業(yè)的請求。第四步34中,在運行時間,該過程將任務(wù)分配給處理單元10。第五步35中,附加作業(yè)的任務(wù)被加載至處理單元10并被啟動(或僅當(dāng)它們被提前加載時才啟動)。
優(yōu)選地,第四步34中選定的分配為各個處理單元10指定各個任務(wù)順序。指定任務(wù)的執(zhí)行期間使用無阻塞執(zhí)行。也就是說,盡管處理單元10測試其中一個處理單元10選定順序的任務(wù)是否存在足夠的可用標(biāo)記,但如果沒有足夠的標(biāo)記該處理單元10可跳過這個任務(wù)的執(zhí)行并執(zhí)行該選定順序中有足夠可用標(biāo)記的下一個任務(wù)。這樣,執(zhí)行順序不必同用來測試標(biāo)記可用性的選定順序?qū)?yīng)。這使得能夠執(zhí)行信號流不同步的作業(yè)。
初始緩沖器尺寸選擇步驟32為每個任務(wù)計算輸入緩沖器尺寸。這一計算基于各個作業(yè)的SDF圖理論計算,假設(shè)在執(zhí)行相同處理單元10上執(zhí)行其它作業(yè)的最壞情況時間。
圖4示出圖3中初始緩沖器尺寸選擇步驟32的詳細(xì)流程圖。第一步41中,該過程選擇一個作業(yè)。第二步42中,構(gòu)造該作業(yè)的初始SDF表示,包括該作業(yè)中涉及的任務(wù)。第三步43中,在處理單元10之一如同未知其它任務(wù)一樣以時間多路技術(shù)方式執(zhí)行每個任務(wù)的假定下,該過程添加節(jié)點和連線來表示實際實施特性,所述未知其它任務(wù)的組合的最壞情況執(zhí)行時間沒有超過預(yù)定值。
第四步44中,該過程對SDF圖實施分析,用以計算任務(wù)之間要求的緩沖器尺寸。非強制地,該過程還可計算SDF圖的最壞情況啟動時間sth(v,k),通常包括計算前述的平均吞吐量延遲λ和重復(fù)頻率N。
第五步45中,該過程測試所計算的最壞情況啟動時間sth(v,k)是否滿足任務(wù)組合指定的實時要求(也就是說,這些啟動時間位于必須得到流塊的指定時間點之前或之上,所述指定時間點為例如輸出視頻幀的時間點)。如果是這樣,該過程執(zhí)行第六步46,輸出信息,該信息包括用于隨后加載的選定緩沖器尺寸和保留時間。然后,該過程從第一步41開始重復(fù)另一個作業(yè)。
圖5示出可用于這一目的的虛擬SDF圖的一個示例。通過在每個特定任務(wù)100之前附加虛擬任務(wù)50的節(jié)點獲得該虛擬SDF圖。虛擬任務(wù)50不對應(yīng)執(zhí)行期間的任何真實任務(wù),但表示延遲,這種延遲由將被分配至相同處理單元的(仍未知的)其它任務(wù)導(dǎo)致,這就如同特定任務(wù)100跟在虛擬任務(wù)50后面一樣。此外,從每個原始節(jié)點100返回它的前一個虛擬任務(wù)50節(jié)點來添加第一附加連線54。在圖的初始狀態(tài),這些第一附加連線中的每一個都包括一個標(biāo)記。這些第一附加連線54表示對應(yīng)特定節(jié)點100的任務(wù)的完成會啟動由虛擬任務(wù)50的節(jié)點表示的延遲時間間隔。
此外,從每個特定原始節(jié)點100向虛擬任務(wù)的節(jié)點50添加第二附加連線52,該虛擬任務(wù)節(jié)點50位于具有至所述特定原始節(jié)點100的連線的供給節(jié)點100的前面??烧J(rèn)為將每條第二附加連線52初始化為具有各自的待定標(biāo)記數(shù)目N1、N2、N3。第二附加連線52表示所涉及任務(wù)之間緩沖量的影響。第二附加連線52上的標(biāo)記數(shù)N1、N2、N3表示這些緩沖器至少能夠存儲的信號流塊數(shù)目。第二附加連線52被耦合回到虛擬任務(wù)節(jié)點50,用以表征這樣一個事實,即,當(dāng)向后續(xù)任務(wù)供給信號數(shù)據(jù)的緩沖存儲器滿了,使得需要跳過任務(wù)時,可能出現(xiàn)處理單元10上整個任務(wù)循環(huán)的等待時間。
現(xiàn)已發(fā)現(xiàn),可以證明,能夠通過等于或高于下列表達(dá)式值的最近整數(shù)從圖5所示類型的虛擬圖計算緩沖器容量(∑WCETi)/MCM其中,MCM是要求的實時吞吐量時間(產(chǎn)生連續(xù)流塊之間的最長時間),且WCETi是任務(wù)(由i標(biāo)注)的最壞情況執(zhí)行時間??偤椭猩婕暗娜蝿?wù)依賴于為其計算容量的緩沖器,或者在SDF圖方面,依賴于第二附加連線52上的起始節(jié)點同表示緩沖器的末端節(jié)點之間出現(xiàn)的節(jié)點100、50。從選定數(shù)目的任務(wù)i得到總和,所述選定數(shù)目任務(wù)出現(xiàn)在從末端節(jié)點到起始節(jié)點的整個SDF圖上的最壞情況路徑上。應(yīng)該只考慮“簡單”路徑如果圖包含循環(huán),則應(yīng)該只考慮穿過任何節(jié)點都不多于一次的路徑。
例如,在圖5所示示例中,考慮從任務(wù)A3返回到虛擬任務(wù)W1的第二附加連線52。最初有N3(仍然未知的一個數(shù)目)個標(biāo)記出現(xiàn)在這條連線上,表示N3流塊尺寸的緩沖器尺寸用于從任務(wù)A1向任務(wù)A3傳輸數(shù)據(jù)流?,F(xiàn)通過尋找從W1(具有N3個標(biāo)記的連線的末端點)到A3(這條連線的起點)穿過圖的路徑來計算緩沖器尺寸N3。存在兩條這樣的路徑W1-A1-W2-A2-W3-A3、W1-A1-W3-A3。由于循環(huán),還存在其它路徑,例如W1-A1-W2-A2-W1-A2(等)-W3-A3或者W1-A1-W2-A2-W1-A2-W3-A2,但不應(yīng)該考慮這些路徑,因為這些路徑通過某些節(jié)點兩次。但是,在更復(fù)雜的路徑中,可提供通過后向連線的路徑(只要它們是簡單路徑)。對于兩個簡單路徑W1-A1-W2-A2-W3-A3、W1-A1-W3-A3中的每一個,必須計算沿路徑節(jié)點100、50所表示任務(wù)的最壞情況執(zhí)行時間總和,并且這些總和中的最大者用來計算標(biāo)記數(shù)N3。
在此,最壞情況執(zhí)行時間同虛擬任務(wù)50相關(guān)聯(lián)。這些最壞情況執(zhí)行時間被設(shè)為T-Ti。其中T為循環(huán)時間。特定任務(wù)的循環(huán)時間T對應(yīng)將同該特定任務(wù)一起分配給相同處理單元10的任務(wù)的最壞執(zhí)行時間的最大允許總和(所述特定任務(wù)的執(zhí)行時間包含在這個總和當(dāng)中)。優(yōu)選地,為每個任務(wù)分配相同的預(yù)定循環(huán)時間T。
能夠重新執(zhí)行特定任務(wù)之前的最壞情況等待時間是T-Ti,其中Ti是該特定任務(wù)的最壞情況執(zhí)行時間。
對其它緩沖器尺寸實施類似計算,計算示例圖中的數(shù)目N1和N2,通過路徑W1-A1-W2-A2和W1-A1-W3-A3-W2-A2計算N1,通過路徑W2-A2-W3-A3和W2-A2-W1-A1-W3-A3計算N2。
這樣,在給定以循環(huán)方式執(zhí)行任務(wù)的前提下,如果可得到足夠的數(shù)據(jù)和輸出緩沖量,那么可在每個任務(wù)都同未知的其它任務(wù)一起被處理單元10執(zhí)行的情況下確定任務(wù)之間緩沖的最小緩沖量。
在圖3的第四步34中,在運行時間,當(dāng)過程將任務(wù)分配給處理單元10時,該過程會為每個處理單元檢驗分配給同一個處理器的任務(wù)的最壞情況執(zhí)行時間總和是否超過循環(huán)時間T,這個循環(huán)時間T是在緩沖器尺寸的脫機計算期間為任何分配任務(wù)所假定的。如果分配任務(wù)超出這個循環(huán)時間,則為處理單元選擇不同的任務(wù)分配,直到發(fā)現(xiàn)分配不再超出所假定的循環(huán)時間T為止。如果沒有找到這樣的分配,則該過程報告無法給出實時保證。
如果圖4第五步45顯示已經(jīng)脫機,無法滿足實時要求,則可非強制性降低某些節(jié)點100的假定循環(huán)時間T。一方面,這樣使得由相應(yīng)虛擬任務(wù)節(jié)點50引入的延遲降低,使得更容易滿足實時要求。另一方面,這樣做,在圖3中第四步34期間,對連同這樣一個假定循環(huán)時間T降低的任務(wù)一起的多個任務(wù)進(jìn)行調(diào)度的空間減小。
圖6示出實現(xiàn)本發(fā)明的一個典型系統(tǒng)。提供計算機60來執(zhí)行圖3中的最初步驟32。計算機60具有一個輸入端,用于接收有關(guān)作業(yè)任務(wù)結(jié)構(gòu)和最壞情況執(zhí)行時間的信息。提供運行時間控制計算機62,用于組合作業(yè)。提供用戶接口64,以便用戶附加或刪除作業(yè)(這常常通過啟用和停用諸如家庭視頻系統(tǒng)的設(shè)備的功能來隱含完成)。用戶接口64耦接到運行時間控制計算機62,該運行時間控制計算機62具有一個耦接到計算機60的輸入端,用于接收計算機60選定作業(yè)的執(zhí)行參數(shù)。運行時間控制計算機62耦合到處理單元10,用以控制在哪些處理單元10中啟用哪些任務(wù),以及哪些執(zhí)行參數(shù)(諸如緩沖器尺寸)將用于處理單元10上。
計算機60和運行時間控制計算機62可以是同一臺計算機?;蛘撸嬎銠C60可以是一臺獨立計算機,它只在名義上耦合到運行時間控制計算機62,因為計算機60所計算的參數(shù)被存儲或程序化在運行時間控制計算機62中,而不要求計算機60和62之間存在永久鏈接??蓪⑦\行時間控制計算機62同處理單元10集成在同一個集成電路中,或者可為運行時間控制計算機62和處理單元10提供獨立電路。作為備選,一個處理單元10可以作為運行時間控制計算機62運行。
進(jìn)一步實施例至此,應(yīng)該認(rèn)識到,本發(fā)明能夠為潛在處理無限信號數(shù)據(jù)流的作業(yè)組合的同步執(zhí)行提供實時保證。這通過一個兩階段過程實現(xiàn)。第一階段為獨立作業(yè)計算諸如緩沖器尺寸的執(zhí)行參數(shù)并驗證實時能力。這在這樣的假定下完成,即如果處理單元執(zhí)行的任務(wù)的總循環(huán)時間不超過假定循環(huán)時間T,作業(yè)任務(wù)由多個處理單元10通過時間多路技術(shù)執(zhí)行,該多個處理單元10執(zhí)行同所述作業(yè)任務(wù)相連的其它未指定的任務(wù)。第二階段組合這些作業(yè),并檢查分配給相同處理單元10的任務(wù)的最壞情況執(zhí)行時間沒有超出其中任何一個任務(wù)的假定循環(huán)時間T。
與傳統(tǒng)SDF圖技術(shù)相比,存在許多不同點(a)使用了兩階段過程;(b)首先為各個作業(yè)計算實時保證;(c)對于所執(zhí)行的作業(yè)組合,不需要完整的實時保證計算足以計算分配給處理單元10的任務(wù)序列的最壞情況執(zhí)行時間總和沒有超出所分配任務(wù)的任一假定循環(huán)時間;以及(d)在分配任務(wù)循環(huán)中,處理單元10可跳過一個任務(wù)的執(zhí)行,而不是像傳統(tǒng)SDF圖技術(shù)要求的那樣等待足夠的輸入數(shù)據(jù)和輸出緩沖空間。
這具有多種優(yōu)勢可保證不相關(guān)的作業(yè)組合的實時性,這種組合的調(diào)度要求更少的開銷,并且作業(yè)的數(shù)據(jù)供給和產(chǎn)生不必同步。
應(yīng)該理解,本發(fā)明不限于公開的實施例。首先,盡管通過SDF圖對本發(fā)明進(jìn)行了闡述,但當(dāng)過程由機器執(zhí)行時不必產(chǎn)生明確的圖形。只要產(chǎn)生并處理表示這些圖主要特性的數(shù)據(jù)就足夠了。許多其它表示也可用于這一目的。本文中,能夠理解,也僅僅將等待任務(wù)到圖的附加闡述為方便的比喻。并沒有添加實際任務(wù),并且有許多實用方法來考慮同此類概念上等待的任務(wù)的影響相等價的影響。
其次,盡管初始階段優(yōu)選脫機為各個作業(yè)選定緩沖器尺寸,但當(dāng)然也可以聯(lián)機執(zhí)行,即,只在作業(yè)附加到被執(zhí)行的作業(yè)中之前。緩沖器尺寸計算只是可計算的執(zhí)行參數(shù)計算的一個示例。正如解釋的那樣,任務(wù)自身使用的循環(huán)時間是能夠在第一階段計算的另一個參數(shù)。作為另一個示例,能夠為連續(xù)流塊處理相同任務(wù)的處理單元個數(shù)是能在第一階段確定的另一個執(zhí)行參數(shù),用以確保實時能力。例如,這可以通過下述實現(xiàn)對SDF圖附加任務(wù)以便使流塊周期地分布到連續(xù)處理器上,附加該任務(wù)的復(fù)本用以處理不同的分布流塊,并且附加一個組合任務(wù)用以將復(fù)本的結(jié)果組合到一個組合輸出流中。依賴復(fù)本的數(shù)量可在假定環(huán)境中確保與實時吞吐量條件的兼容。
此外,可使用到處理單元10更精細(xì)的分配形式。例如,一個實施例中,初始階段還可涉及這樣的強加約束,即一個作業(yè)的任務(wù)組應(yīng)該由同一個處理單元10執(zhí)行。這種情況下,需要更少的虛擬任務(wù)50來表示等待時間(如果該組中的任務(wù)被連續(xù)調(diào)度),或者表示等待時間的虛擬任務(wù)50可具有更短的等待時間,表示可能在該組任務(wù)之間稍后調(diào)度的部分(已知)其它任務(wù)的最壞情況執(zhí)行時間。實際上,在該組內(nèi)任務(wù)前面的虛擬任務(wù)50的組合等待時間只需要對應(yīng)一個循環(huán)時間T,而不是n個循環(huán)時間T,在不限定為由同一個處理單元10執(zhí)行的情況下考慮n個任務(wù)時便才需要n個循環(huán)時間T。這使得更容易保證實時約束的滿足。此外,這種方式可以降低所需的某些緩沖器的尺寸。
此外,如果不同作業(yè)數(shù)據(jù)流存在某種形式的同步,則在執(zhí)行期間不必使用任務(wù)跳過。可在SDF圖中表示出這種同步。
此外,盡管就能夠處理任何任務(wù)的通用處理單元10闡述了本發(fā)明,但是可替代地,某些處理單元可以是只能執(zhí)行選定任務(wù)的專用單元。正如理解的那樣,這并不影響本發(fā)明原理,而只是強加一個限制條件,限定任務(wù)到處理單元的分配的最終可能性。同樣正如理解的那樣,盡管為了說明清楚圖中省略了通信任務(wù)(或者認(rèn)為合并到任務(wù)當(dāng)中),但實際上可以增加通信任務(wù),以及相應(yīng)定時和等待關(guān)系。
此外,盡管就其中每個處理單元10都使用一個循環(huán)調(diào)度方案的實施例(其中任務(wù)以固定的順序執(zhí)行)對本發(fā)明進(jìn)行闡述,但應(yīng)該理解只要能夠為該方案計算出任務(wù)執(zhí)行之前的最大等待時間就可以使用任何調(diào)度方案,所述方案對處理單元10所執(zhí)行任務(wù)的最壞執(zhí)行時間(非指定的)給定一個預(yù)定義約束。顯然,用來確定任務(wù)是否獲得足夠執(zhí)行機會的最壞情況執(zhí)行時間總和的類型依賴于調(diào)度的類型。
優(yōu)選地,通過能夠在運行時間靈活添加和/或刪除作業(yè)的處理系統(tǒng)執(zhí)行作業(yè)。這種情況下,可結(jié)合關(guān)于所需要的緩沖器尺寸和假定的循環(huán)時間T的計算信息來提供作業(yè)任務(wù)的程序代碼??蓮牧硪粋€處理系統(tǒng)提供所述信息,或者可在執(zhí)行這些作業(yè)的處理系統(tǒng)中本地產(chǎn)生所述信息。然后,可在運行時間采用這個信息添加作業(yè)?;蛘?,調(diào)度作業(yè)執(zhí)行所要求的信息可永久存儲在一個信號處理集成電路中,該集成電路具有執(zhí)行作業(yè)的多個處理單元。甚至可以將它應(yīng)用到一種集成電路上,所述集成電路被編程為靜態(tài)執(zhí)行預(yù)定作業(yè)組合。后一種情況下,不必在運行時間動態(tài)實施處理器的任務(wù)分配。
因此,依賴于實施,可為執(zhí)行作業(yè)組合的實際設(shè)備提供在運行時間確定緩沖器尺寸和將任務(wù)分配給處理單元的完整能力,或者只為實際設(shè)備提供在運行時間將任務(wù)分配給處理單元的能力,甚或只為其提供預(yù)定分配。可利用適當(dāng)程序?qū)υ撛O(shè)備進(jìn)行編程來實現(xiàn)這些能力,該程序可以是駐留的或者從諸如磁盤的計算機程序產(chǎn)品提供或從表示該程序的互聯(lián)網(wǎng)信號提供。或者,一種專用硬連線電路可用來支持這些能力。
權(quán)利要求
1.一種系統(tǒng),用于執(zhí)行信號流處理作業(yè)組合,其中作業(yè)包含多個任務(wù)(100),每個任務(wù)(100)通過重復(fù)執(zhí)行一個操作來實施,該操作處理來自任務(wù)(100)接收流的數(shù)據(jù)塊和/或從任務(wù)(100)產(chǎn)生的流輸出一個塊,每個作業(yè)包括多個彼此流通信的任務(wù)(100),該系統(tǒng)被設(shè)置執(zhí)行一種檢查,以確定是否滿足實時要求,該系統(tǒng)包括多個相互耦合的處理單元(10),用于信號流的通信;初始計算單元(60),它被設(shè)置來為每個作業(yè)單獨地實施初始確定,用以在相應(yīng)環(huán)境中執(zhí)行了每個作業(yè)任務(wù)時確定支持需要的最小流吞吐率所要求的作業(yè)執(zhí)行參數(shù),所述相應(yīng)環(huán)境中啟動任務(wù)執(zhí)行的機會至多間隔為了該任務(wù)而規(guī)定的循環(huán)周期T而出現(xiàn);控制單元(62),用于在運行時間選擇應(yīng)當(dāng)并行執(zhí)行的任務(wù)組合;分配單元(62),設(shè)置來將選定作業(yè)組合的任務(wù)組分配給各個處理單元(10),為每個特定處理單元(10)檢查分配給該處理單元(10)的任務(wù)最壞情況執(zhí)行時間總和沒有超出對該特定處理單元(10)分配的任何任務(wù)所規(guī)定的循環(huán)周期T;處理單元(10)并發(fā)執(zhí)行選定的作業(yè)組合,每個處理單元(10)時分多路復(fù)用對分配給該處理單元(10)的該組任務(wù)(100)的執(zhí)行。
2.根據(jù)權(quán)利要求1的系統(tǒng),其中設(shè)置初始計算單元(60)計算緩沖器的緩沖存儲尺寸,用于緩沖各個任務(wù)(100)對之間的塊,由此緩沖器尺寸足以確保滿足吞吐率,保留至少所計算尺寸的緩沖器存儲空間,用以在執(zhí)行期間在任務(wù)(100)對之間緩沖。
3.根據(jù)權(quán)利要求1的系統(tǒng),其中至少設(shè)置一個處理單元(10)在沒有足夠可用塊實施任務(wù)(100)的操作和/或沒有足夠可用緩沖空間來寫入操作結(jié)果塊時跳過分配給該處理單元(10)的該組的任務(wù)的執(zhí)行。
4.一種方法,用于處理信號流處理作業(yè)的組合,該方法包括實施一種檢查來確定是否滿足實時要求,該方法包括步驟規(guī)定多個處理任務(wù)(100),每個處理任務(wù)(100)通過重復(fù)執(zhí)行一個操作來實施,該操作處理來自任務(wù)(100)接收流的數(shù)據(jù)塊和/或從任務(wù)(100)產(chǎn)生的流輸出一個塊;規(guī)定多個作業(yè),每個作業(yè)包括多個彼此流通信的處理任務(wù)(100);對每個作業(yè)獨立地實施初始確定,用以在相應(yīng)環(huán)境中執(zhí)行了每個作業(yè)任務(wù)(100)時確定支持需要的最小流吞吐率所要求的作業(yè)執(zhí)行參數(shù),所述相應(yīng)環(huán)境中啟動任務(wù)執(zhí)行的機會至多間隔為了該任務(wù)而規(guī)定的循環(huán)周期T而出現(xiàn);選擇并行執(zhí)行的作業(yè)組合;將選定作業(yè)組合的多組任務(wù)(100)分配給各個處理單元(10),為每個特定處理單元(10)檢查分配給該特定處理單元(10)的任務(wù)的最壞情況執(zhí)行時間總和沒有超出對該特定處理單元(10)分配的任何任務(wù)(100)所規(guī)定的循環(huán)時間T;由多個處理單元(10)并發(fā)執(zhí)行選定作業(yè)組合,時分多路復(fù)用這些組任務(wù)的執(zhí)行。
5.根據(jù)權(quán)利要求4的方法,其中初始確定的實施包括計算緩沖器的緩沖存儲尺寸,用于緩沖各個任務(wù)(100)對之間的塊,由此緩沖器尺寸足以確保滿足吞吐率,保留至少所計算尺寸的緩沖器存儲空間,用以在執(zhí)行期間在緩沖任務(wù)(100)對之間緩沖。
6.根據(jù)權(quán)利要求5的方法,其中通過以下步驟計算至少一個在第一和第二任務(wù)之間緩沖數(shù)據(jù)的緩沖尺寸識別作業(yè)的連續(xù)任務(wù)(100)的路徑,其中在每個路徑上,該路徑中每個連續(xù)任務(wù)(100)依賴于該路徑中前一任務(wù)(100)的性能來啟動操作,每個路徑從第一任務(wù)(100)開始并在第二任務(wù)(100)結(jié)束;為每個識別出的路徑計算與沿該路徑的任務(wù)的最壞情況執(zhí)行時間總和有關(guān)的信息,加上在相應(yīng)環(huán)境中執(zhí)行時該任務(wù)(100)被賦予執(zhí)行機會之前的最大等待時間,所述相應(yīng)環(huán)境中啟動任務(wù)(100)執(zhí)行的機會至多間隔在由任務(wù)(100)規(guī)定的循環(huán)時間而出現(xiàn);根據(jù)任何所識別的路徑的所述總和的最大值同連續(xù)塊之間所要求的最大吞吐量時間的比率確定緩沖器尺寸。
7.根據(jù)權(quán)利要求4的方法,其中所述初始確定的實施包括選擇作業(yè)的任務(wù)(100)的一個子組,以便通過多個處理單元中的一個通用單元以時分多路復(fù)用來執(zhí)行,當(dāng)在相應(yīng)環(huán)境中執(zhí)行該作業(yè)的每個任務(wù)(100)時確定所要求的多個執(zhí)行參數(shù)是否支持所要求的最低流吞吐率,所述相應(yīng)環(huán)境中啟動任務(wù)(100)的子組執(zhí)行的機會至多間隔為該子組所規(guī)定的循環(huán)時間T而出現(xiàn)。
8.根據(jù)權(quán)利要求4的方法,其中在沒有足夠的可用塊來執(zhí)行該任務(wù)的操作和/或沒有足夠的可用緩沖空間來寫入操作的結(jié)果塊時在所述組中跳過這一任務(wù)(100)的執(zhí)行。
9.根據(jù)權(quán)利要求4的方法,其中所述初始計算的執(zhí)行包括實施這樣一種確定,即確定是否可能在所述環(huán)境中保證一直滿足吞吐率。
10.根據(jù)權(quán)利要求9的方法,包括當(dāng)不能保證一直滿足吞吐率時減小為至少任務(wù)(100)之一而規(guī)定的循環(huán)時間T,并以這個降低的循環(huán)時間重復(fù)初始確定的所述實施。
11.根據(jù)權(quán)利要求4的方法,包括產(chǎn)生與同步數(shù)據(jù)流(SDF)圖的一種表示等價的信息,并通過圖分析等價技術(shù)計算參數(shù)。
12.一種設(shè)備,用于執(zhí)行信號流處理作業(yè)組合,其中作業(yè)包含多個任務(wù)(100),每個任務(wù)(100)通過重復(fù)執(zhí)行一個操作來實施,該操作處理來自任務(wù)(100)接收的流的數(shù)據(jù)塊并且/或從任務(wù)(100)產(chǎn)生的流輸出一個塊,每個作業(yè)包括多個彼此流通信的處理任務(wù)(100),該設(shè)備被設(shè)置執(zhí)行一種檢查,以確定是否滿足實時要求,該設(shè)備包括多個耦合的處理單元(10),用于信號流的通信;控制單元(62),用于在運行時間選擇應(yīng)該并行執(zhí)行的任務(wù)組合;電路(62),設(shè)置來將選定作業(yè)組合的任務(wù)組分配給各個處理單元(10),為每個特定處理單元檢查分配給該特定處理單元的任務(wù)最壞情況執(zhí)行時間總和沒有超出對該特定處理單元(10)分配的任何任務(wù)所規(guī)定的循環(huán)時間T;處理單元(10)并發(fā)執(zhí)行選定的作業(yè)組合,每個處理單元(10)時分多路復(fù)用對分配給該處理單元(10)的任務(wù)組的執(zhí)行。
13.一種裝置,用于計算作業(yè)所要求的執(zhí)行參數(shù),其中作業(yè)包含多個任務(wù)(100),每個任務(wù)(100)通過重復(fù)執(zhí)行一個操作來實施,該操作處理來自任務(wù)(100)接收的流的數(shù)據(jù)塊和/或從任務(wù)(100)產(chǎn)生的流輸出一個塊,每個作業(yè)包括多個彼此流通信的處理任務(wù)(100),該裝置被設(shè)置來為各個作業(yè)獨立地實施初始計算,用以在相應(yīng)環(huán)境中執(zhí)行每個作業(yè)任務(wù)時確定該作業(yè)所要求的執(zhí)行參數(shù),來支持所要求的最低流吞吐率,所述相應(yīng)環(huán)境中啟動執(zhí)行的機會至多間隔由該任務(wù)規(guī)定的循環(huán)時間T而發(fā)生。
14.根據(jù)權(quán)利要求13的裝置,其中初始計算的所述實施包括計算緩沖器的緩沖存儲尺寸,以緩沖各個任務(wù)(100)對之間的塊,由此緩沖器尺寸足以確保滿足吞吐率,保留至少所計算尺寸的緩沖存儲空間,用以在執(zhí)行期間在任務(wù)對之間進(jìn)行緩沖。
15.根據(jù)權(quán)利要求14的裝置,其中至少一個在第一和第二任務(wù)之間緩沖數(shù)據(jù)的緩沖尺寸通過下述步驟計算識別作業(yè)的連續(xù)任務(wù)(100)的路徑,其中在每個路徑上,每個連續(xù)任務(wù)(100)依賴于該路徑上前一任務(wù)(100)的性能來啟動操作,每個路徑從第一任務(wù)(100)開始并在第二任務(wù)(100)處結(jié)束;為每個識別路徑計算與沿該路徑任務(wù)(100)的最壞情況執(zhí)行時間總和有關(guān)的信息,加上在相應(yīng)環(huán)境中執(zhí)行時該任務(wù)(100)被賦予執(zhí)行機會之前的最大等待時間,所述相應(yīng)環(huán)境中啟動任務(wù)執(zhí)行的機會至多間隔為任務(wù)(100)所規(guī)定的循環(huán)時間而出現(xiàn);從任何識別路徑的最大所述總和同連續(xù)塊之間所要求的最大吞吐量時間的比率確定緩沖器尺寸。
16.根據(jù)權(quán)利要求14的裝置,其中初始計算的所述實施包括實施這樣一種確定,即在所述環(huán)境中確定是否總能保證滿足吞吐率,當(dāng)不能保證一直滿足吞吐率時減小為至少這些任務(wù)(100)之一而規(guī)定的循環(huán)時間,并以這個降低的循環(huán)時間重復(fù)初始確定的所述實施。
17.一種方法,用于處理信號流處理作業(yè)的組合,該方法包括執(zhí)行一種檢查來確定是否滿足實時要求,該方法包括步驟規(guī)定多個處理任務(wù)(100),每個處理任務(wù)(100)通過重復(fù)執(zhí)行一個操作來實施,該操作處理來自任務(wù)(100)接收的流的數(shù)據(jù)塊和/或從任務(wù)(100)產(chǎn)生的流輸出一個塊;規(guī)定多個作業(yè),每個作業(yè)包括多個彼此流通信的處理任務(wù)(100);選擇并行執(zhí)行的作業(yè)組合;將選定作業(yè)組合的任務(wù)(100)組分配給各個處理單元(10),為每個特定處理單元檢查分配給該特定處理單元(10)的任務(wù)最壞情況執(zhí)行時間總和沒有超出對該特定處理單元(10)分配的任何任務(wù)(100)所規(guī)定的預(yù)定循環(huán)時間T;并發(fā)執(zhí)行選定作業(yè)組合,時分多路復(fù)用任務(wù)組的執(zhí)行。
18.一種方法,計算用來執(zhí)行信號流處理作業(yè)組合的執(zhí)行參數(shù),該方法包括規(guī)定多個處理任務(wù)(100),每個處理任務(wù)(100)通過重復(fù)執(zhí)行一個操作來實施,該操作處理來自任務(wù)(100)接收的流的數(shù)據(jù)塊和/或從任務(wù)(100)產(chǎn)生的流輸出一個塊;規(guī)定多個作業(yè),每個作業(yè)包括多個彼此流通信的處理任務(wù)(100);為每個作業(yè)獨立地實施初始計算,用以在相應(yīng)環(huán)境中執(zhí)行每個作業(yè)任務(wù)時確定該作業(yè)所要求的執(zhí)行參數(shù),以支持所要求的最低流吞吐率,所述相應(yīng)環(huán)境中啟動執(zhí)行任務(wù)(100)的機會至多間隔為該任務(wù)規(guī)定的循環(huán)時間T而出現(xiàn)。
19.一種計算機程序產(chǎn)品,包含使可編程處理器執(zhí)行權(quán)利要求17方法的指令。
20.一種計算機程序產(chǎn)品,包含使可編程處理器執(zhí)行權(quán)利要求18方法的指令。
全文摘要
信號流處理作業(yè)包含多個任務(wù)(100),每個任務(wù)(100)通過重復(fù)執(zhí)行一個操作而實施,該操作處理來自流的數(shù)據(jù)塊。每個作業(yè)包括多個彼此流通信的任務(wù)(100)。為使信號流通信而相互耦合的多個處理單元(10)執(zhí)行所述多個任務(wù)。對每個獨立作業(yè)實施初始計算,用以在相應(yīng)環(huán)境中執(zhí)行各個作業(yè)任務(wù)時確定該作業(yè)要求的執(zhí)行參數(shù),來支持所要求的最低流吞吐率,所述相應(yīng)環(huán)境中至多間隔為該任務(wù)規(guī)定的循環(huán)時間T就出現(xiàn)啟動任務(wù)執(zhí)行的機會。在運行時,選擇用于執(zhí)行的作業(yè)組合。將選定作業(yè)組合的任務(wù)組分配給各個處理單元(10),為每個特定處理單元(10)檢查分配給該特定處理單元(10)的任務(wù)的最壞情況執(zhí)行時間總和沒有超出該特定處理單元(10)上分配的任何組合(100)所規(guī)定的循環(huán)時間T。處理單元(10)并發(fā)執(zhí)行選定作業(yè)組合,每個處理單元(10)時分多路復(fù)用分配給該處理單元(10)的任務(wù)(100)組的執(zhí)行。
文檔編號G06F9/48GK1957329SQ200580017063
公開日2007年5月2日 申請日期2005年5月20日 優(yōu)先權(quán)日2004年5月27日
發(fā)明者M·J·G·貝庫伊 申請人:皇家飛利浦電子股份有限公司