專(zhuān)利名稱(chēng):在硬實(shí)時(shí)系統(tǒng)中軟件部件的時(shí)間盒驅(qū)動(dòng)的調(diào)度的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在用于處理依賴(lài)于時(shí)間的數(shù)據(jù)元素流的實(shí)時(shí)系統(tǒng)中定義部件的可調(diào)度性的方法。本發(fā)明進(jìn)一步涉及用于處理依賴(lài)于時(shí)間的數(shù)據(jù)元素流的實(shí)時(shí)系統(tǒng)。
背景技術(shù):
在部件數(shù)目大于可用處理器數(shù)目的實(shí)時(shí)軟件系統(tǒng)中,部件競(jìng)爭(zhēng)處理時(shí)間,需要可靠而快速調(diào)度部件。在本文中,任何軟件系統(tǒng),其中產(chǎn)生輸出的時(shí)間是基本的,被稱(chēng)為實(shí)時(shí)軟件系統(tǒng)。從實(shí)時(shí)軟件系統(tǒng)的輸入時(shí)間到它的輸出時(shí)間的滯后即延遲必須足夠小,以獲得可接受的及時(shí)性。硬實(shí)時(shí)軟件系統(tǒng)必須在規(guī)定的時(shí)間區(qū)間內(nèi)對(duì)外部產(chǎn)生的輸入作出響應(yīng)。在本文中的軟件系統(tǒng)通常由一些互聯(lián)的部件構(gòu)造,在這些部件之間的僅有的交互是通過(guò)它們的接口進(jìn)行的,部件不共享狀態(tài)信息。
在這種系統(tǒng)中,調(diào)度器以滿(mǎn)足系統(tǒng)級(jí)別上所遇到的實(shí)時(shí)限制這種方式來(lái)給部件分配處理時(shí)間區(qū)間。部件的調(diào)度包括兩個(gè)階段,它們?cè)跁r(shí)間上持續(xù)重復(fù)。首先決定可調(diào)度部件集合,然后從這一集合根據(jù)某一優(yōu)先度策略選擇部件的一個(gè)子集,在處理器上執(zhí)行實(shí)際這一子集。執(zhí)行期間在每一處理器上執(zhí)行一個(gè)部件。
存在一些方法來(lái)定義在上述類(lèi)型的系統(tǒng)中部件何時(shí)是可調(diào)度的時(shí)間驅(qū)動(dòng)的可調(diào)度性,這里,當(dāng)一定量的時(shí)間流逝后一個(gè)部件是可調(diào)度的。
算法-時(shí)間-驅(qū)動(dòng)的,這一方法相似于時(shí)間驅(qū)動(dòng)方法,但是代替實(shí)時(shí)使用虛擬時(shí)間軸。
數(shù)據(jù)驅(qū)動(dòng)的,這里,當(dāng)一定量的輸入數(shù)據(jù)可用時(shí)一個(gè)部件是可調(diào)度的。
事件驅(qū)動(dòng)的,這一方法是數(shù)據(jù)驅(qū)動(dòng)的專(zhuān)門(mén)化,數(shù)據(jù)要么是成為true的布爾變量,要么是一個(gè)布爾變量集,對(duì)該變量集某個(gè)一定的布爾表達(dá)式成為ture。
命令驅(qū)動(dòng)的,在這一方法中,當(dāng)來(lái)自一個(gè)特定部件的輸出數(shù)據(jù)的使用,要求一定量數(shù)據(jù)時(shí)部件是可調(diào)度的。
在基于流的系統(tǒng)中,在該系統(tǒng)中輸入是依賴(lài)時(shí)間的數(shù)據(jù)元素流,特別重要的是從輸入時(shí)間到輸出時(shí)間的滯后要小。另外,重要的是僅當(dāng)在輸入上的準(zhǔn)備就緒時(shí)再調(diào)度部件,從而使處理器的使用最大化。
WO 9525313說(shuō)明了在處理期間多個(gè)數(shù)據(jù)流之間的同步的實(shí)現(xiàn)。由觸發(fā)條件決定調(diào)度準(zhǔn)則,例如根據(jù)流式傳輸處理的狀態(tài)。然后再次把這種狀態(tài)與流的時(shí)間標(biāo)記和系統(tǒng)時(shí)間相關(guān)。該文獻(xiàn)沒(méi)有解決通過(guò)執(zhí)行部件調(diào)度使用一個(gè)處理器執(zhí)行流式傳輸和控制流式傳輸?shù)膯?wèn)題。
發(fā)明目標(biāo)和概述本發(fā)明的目的是提供一種調(diào)度方法,其適合實(shí)現(xiàn)系統(tǒng)的實(shí)時(shí)操作。
這一目的通過(guò)決定實(shí)時(shí)系統(tǒng)中部件何時(shí)可調(diào)度來(lái)處理依賴(lài)時(shí)間的數(shù)據(jù)元素流的方法而實(shí)現(xiàn),在該實(shí)時(shí)系統(tǒng)中部件的數(shù)目大于可用于處理所述部件的處理器的數(shù)目,每一所述部件具有至少一個(gè)輸入和至少一個(gè)輸出,所提供的數(shù)據(jù)元素帶有時(shí)間印記,當(dāng)來(lái)自所述依賴(lài)時(shí)間的帶有時(shí)間印記的數(shù)據(jù)元素流的預(yù)定的時(shí)間區(qū)間的帶有時(shí)間印記的數(shù)據(jù)元素在所述部件的所有輸入上可用時(shí)該部件可調(diào)度。
在一個(gè)具體的實(shí)施例中,時(shí)間印記是在一個(gè)內(nèi)部定義的算法時(shí)間軸上的點(diǎn)。
從而,可調(diào)度部件具有來(lái)自可能是不同數(shù)據(jù)輸入流的足夠數(shù)據(jù)元素,這些數(shù)據(jù)輸入流在分配給該部件的時(shí)間區(qū)間期間可用于由該部件處理。從而實(shí)現(xiàn)實(shí)時(shí)操作,諸如系統(tǒng)的硬實(shí)時(shí),因?yàn)樘幚砥鞯氖褂玫玫礁纳疲貏e是如果流速率是恒定的或者幾乎是恒定的,則處理器的使用率幾乎是100%。另外改善的是效率,當(dāng)一個(gè)部件被調(diào)度時(shí),在預(yù)定的時(shí)間區(qū)間內(nèi)、在不同輸入流上的所有數(shù)據(jù)元素實(shí)際上可以被處理,從而因?yàn)槿鄙贁?shù)據(jù)部件不能被調(diào)度并且立即返回。此外,當(dāng)處理數(shù)據(jù)元素時(shí),該部件將不被其他部件預(yù)清空。因此,每秒的進(jìn)程切換數(shù)目減至最少,改善了處理器超高速緩沖存儲(chǔ)器的效率,因?yàn)槌咚倬彌_存儲(chǔ)器的錯(cuò)誤數(shù)目的減少。本方法還使得為硬實(shí)時(shí)系統(tǒng)的基于部件的設(shè)計(jì)變得更加簡(jiǎn)單,因?yàn)?對(duì)于一個(gè)給定的應(yīng)用實(shí)例,相對(duì)較直接計(jì)算為實(shí)現(xiàn)硬實(shí)時(shí)特性所需要的計(jì)算資源,這一計(jì)算可以以獨(dú)立于應(yīng)用的工具實(shí)現(xiàn)。
-部件可以在很大程度上意識(shí)不到實(shí)時(shí)事項(xiàng),這簡(jiǎn)化了它們的設(shè)計(jì)。實(shí)現(xiàn)實(shí)時(shí)特性的復(fù)雜性集中于調(diào)度器,這是一次性努力。部件只需要提供為處理時(shí)間盒中的數(shù)據(jù)最差情況下的計(jì)算時(shí)間。
本發(fā)明可以用于實(shí)時(shí)系統(tǒng)中,諸如在被處理的(MPEG2,MPEG4)和不被處理的域中的視頻和音頻處理系統(tǒng)。另外的實(shí)時(shí)系統(tǒng)可以是圖像處理、圖像識(shí)別、工業(yè)自動(dòng)化、模式識(shí)別和雷達(dá)和遠(yuǎn)程通信。
在另外一個(gè)實(shí)施例中帶有時(shí)間印記的數(shù)據(jù)元素的預(yù)定時(shí)間區(qū)間包括在所述部件的預(yù)定輸入上的預(yù)定數(shù)目的數(shù)據(jù)元素的時(shí)間區(qū)間。從而本發(fā)明可以用于具有要從一個(gè)一定的輸入連接器待使用的優(yōu)選數(shù)目的數(shù)據(jù)元素的特定類(lèi)型部件,例如固定數(shù)目的音頻樣本。另外,當(dāng)預(yù)定義的時(shí)間區(qū)間應(yīng)該包含例如正好一個(gè)數(shù)據(jù)元素和該數(shù)據(jù)元素并不正好相等的距離到達(dá)時(shí)這是有利的。
在一個(gè)具體的實(shí)施例中,當(dāng)來(lái)自所述依賴(lài)于時(shí)間的帶有時(shí)間印記的數(shù)據(jù)元素流的基本同一預(yù)定時(shí)間區(qū)間的數(shù)據(jù)元素在所有輸入上可用時(shí),該部件是可調(diào)度的。這將導(dǎo)致一個(gè)容易實(shí)現(xiàn)和較容易為一個(gè)部件分配緩沖器存儲(chǔ)器的系統(tǒng)。
而在另一個(gè)具體的實(shí)施例中,所述預(yù)定時(shí)間區(qū)間的長(zhǎng)度對(duì)于每一輸入基本上是相同的,并且其中至少第一輸入的時(shí)間區(qū)間從至少第二輸入的時(shí)間區(qū)間移開(kāi)一個(gè)預(yù)定的值。從而可以避免死鎖。一般,通過(guò)移置部件的輸出來(lái)得到位移,由此得出該部件可以獨(dú)立于系統(tǒng)中的其它部件。
在一個(gè)具體的實(shí)施例中,通過(guò)定義所述預(yù)定的時(shí)間區(qū)間的開(kāi)始時(shí)間和結(jié)束時(shí)間,并檢查當(dāng)由一個(gè)處理部件已經(jīng)處理數(shù)據(jù)的時(shí)間比所述預(yù)定時(shí)間區(qū)間的結(jié)束時(shí)間新時(shí),決定所述帶有時(shí)間印記的數(shù)據(jù)元素的所述預(yù)定時(shí)間區(qū)間的可用性。從而對(duì)于特定的所產(chǎn)生的連接器容易決定一個(gè)預(yù)定的時(shí)間區(qū)間何時(shí)處于“滿(mǎn)”狀態(tài), 直到產(chǎn)生過(guò)程截止時(shí)間比預(yù)定時(shí)間區(qū)間的結(jié)尾大為止。
本發(fā)明另外涉及一個(gè)用于處理依賴(lài)于時(shí)間的數(shù)據(jù)元素流的系統(tǒng),所述系統(tǒng)包括一些部件和一些為處理這些部件的處理器,所述部件的數(shù)目大于處理器的數(shù)目,每一所述部件具有至少一個(gè)輸入和至少一個(gè)輸出,所述系統(tǒng)包括用于定義所述部件的可調(diào)度性的裝置,其特征在于,所述系統(tǒng)包括用于給數(shù)據(jù)元素提供時(shí)間印記的裝置,和使所述定義可調(diào)度性的裝置適應(yīng)當(dāng)在所述部件的所有輸入上來(lái)自所述依賴(lài)于時(shí)間的帶有時(shí)間印記的數(shù)據(jù)元素流的預(yù)定時(shí)間區(qū)間的數(shù)據(jù)元素可用時(shí),定義該部件可被調(diào)度。
附圖簡(jiǎn)述下面參考
本發(fā)明的優(yōu)選實(shí)施例,其中,圖1表示兩個(gè)部件之間的連接器,圖2以一般步驟表示定義部件的可調(diào)度性的過(guò)程和執(zhí)行一個(gè)調(diào)度的部件,圖3以流程圖表示如何決定是否可以為一個(gè)特定的部件分配一個(gè)當(dāng)前時(shí)間盒,圖4表示為每一連接器當(dāng)前時(shí)間盒的位移,圖5表示當(dāng)決定部件的可調(diào)度性時(shí)調(diào)度器如何使用時(shí)間盒,圖6-11表示結(jié)合再?gòu)?fù)用器(remultiplexer)使用時(shí)間盒驅(qū)動(dòng)的調(diào)度的一個(gè)例子。
圖12表示根據(jù)本發(fā)明的系統(tǒng)的實(shí)施例。
優(yōu)選實(shí)施例說(shuō)明下面說(shuō)明在用于流處理的硬實(shí)時(shí)系統(tǒng)中軟件部件的時(shí)間盒驅(qū)動(dòng)的調(diào)度中使用的術(shù)語(yǔ)。
系統(tǒng)是執(zhí)行特定任務(wù)的裝置,其中執(zhí)行這一任務(wù)的方式可以由管理和控制施加影響。在一個(gè)優(yōu)選的實(shí)施例中,特定的任務(wù)將被限制為流式數(shù)據(jù)的硬實(shí)時(shí)處理。部件是系統(tǒng)的一個(gè)自包含部件,執(zhí)行是“原子”的子任務(wù),亦即認(rèn)為再細(xì)分該子任務(wù)將沒(méi)有用處。進(jìn)一步細(xì)分或不細(xì)分子任務(wù)的動(dòng)機(jī)是基于再?gòu)?fù)用器、編碼器等的應(yīng)用領(lǐng)域中的經(jīng)驗(yàn)。帶有時(shí)間印記的數(shù)據(jù)元素是一個(gè)流中的數(shù)據(jù)的表示。假定流式數(shù)據(jù)具有數(shù)據(jù)內(nèi)容和時(shí)間信息。使用這一時(shí)間信息來(lái)排序元素和把數(shù)據(jù)與時(shí)間相關(guān)。時(shí)間盒是帶有時(shí)間印記的數(shù)據(jù)元素的預(yù)定時(shí)間區(qū)間。
對(duì)于根據(jù)本發(fā)明的系統(tǒng),使用算法時(shí)間s。在最后,將為輸出流產(chǎn)生的時(shí)間信息再次與實(shí)際時(shí)間相關(guān)。從系統(tǒng)時(shí)間到算法時(shí)間的變換,例如可以由放置在系統(tǒng)輸入和系統(tǒng)輸出的常規(guī)時(shí)間過(guò)濾器執(zhí)行。
圖1表示在兩個(gè)部件之間的連接;該連接器是系統(tǒng)100的一個(gè)自包含部件。源部件101由連接器105連接到接收器部件103。連接器105的動(dòng)態(tài)狀態(tài)由在包括di自身數(shù)據(jù)元素和直到時(shí)間spc所產(chǎn)生的數(shù)據(jù)元素(直到源部件已經(jīng)產(chǎn)生數(shù)據(jù)的時(shí)間)的連接器105上的一些元件組成。數(shù)據(jù)元素用算法時(shí)間si標(biāo)記,并因?yàn)樵谶B接器的源側(cè)的源部件的調(diào)度而可以附在連接器之上。源部件的調(diào)度還為特定連接器更新產(chǎn)生過(guò)程截止時(shí)間。在連接器的接收器側(cè)的部件在被調(diào)度時(shí)可以通過(guò)處理數(shù)據(jù)元素而去除該數(shù)據(jù)元素。對(duì)于每一部件,定義一個(gè)當(dāng)前時(shí)間盒,該時(shí)間具有開(kāi)始時(shí)間和結(jié)束時(shí)間。為調(diào)度部件,時(shí)間盒在該部件的輸入必須為所有連接器滿(mǎn),意味著在該時(shí)間盒的開(kāi)始時(shí)間和結(jié)束時(shí)間之間的時(shí)間區(qū)間中所有具有時(shí)間印記si的數(shù)據(jù)元素都就緒/存在,或者換句話說(shuō)直到產(chǎn)生過(guò)程截止時(shí)間比當(dāng)前時(shí)間盒的結(jié)束時(shí)間新。
圖2解釋定義部件的可調(diào)度性和執(zhí)行調(diào)度的部件的處理的一般步驟。該處理包括給部件的每個(gè)連接器分配時(shí)間盒的步驟和執(zhí)行調(diào)度的部件的步驟。在201給部件分配一個(gè)時(shí)間盒,這通過(guò)定義待該部件處理的下一數(shù)據(jù)元素的時(shí)間區(qū)間的開(kāi)始時(shí)間和結(jié)束時(shí)間來(lái)實(shí)現(xiàn)。調(diào)度器,例如可以執(zhí)行當(dāng)前時(shí)間盒的分配。當(dāng)在一個(gè)特定的連接器上的數(shù)據(jù)元素就緒時(shí),意味著該數(shù)據(jù)元素已經(jīng)由源部件處理,在該當(dāng)前時(shí)間盒內(nèi)的數(shù)據(jù)準(zhǔn)備就緒。當(dāng)前時(shí)間盒為部件的每一輸入連接器都滿(mǎn),以便為該部件可調(diào)度。在203部件已經(jīng)被調(diào)度,當(dāng)被調(diào)度后,位于當(dāng)前時(shí)間盒的限度內(nèi)、在所有連接器上的數(shù)據(jù)元素由該部件使用和處理。被處理的數(shù)據(jù)元素在該部件的輸出上準(zhǔn)備就緒,并且對(duì)每一輸出連接器的產(chǎn)生過(guò)程截止時(shí)間spc進(jìn)行更新。在201給該部件分配一個(gè)新的當(dāng)前時(shí)間盒,這通過(guò)定義一個(gè)與該部件的先前時(shí)間盒的結(jié)束時(shí)間相等的新的開(kāi)始時(shí)間,來(lái)實(shí)現(xiàn)。
圖3是一個(gè)流程圖,表示如何決定是否可以為一個(gè)特定的部件分配一個(gè)當(dāng)前時(shí)間盒。該決定可以根據(jù)兩種情況進(jìn)行,取決于部件類(lèi)型。第一類(lèi)型是Δs部件,第二類(lèi)型是#n部件。如果該部件是Δs部件301,則在303檢查當(dāng)前算法時(shí)間CS是否大于當(dāng)前時(shí)間盒的開(kāi)始時(shí)間BS加上作為一個(gè)時(shí)間盒的長(zhǎng)度的預(yù)定時(shí)間區(qū)間Δs。當(dāng)前時(shí)間盒的開(kāi)始時(shí)間等于先前時(shí)間盒的結(jié)束時(shí)間。如果這一點(diǎn)成立,則可以定義該時(shí)間盒并且在305分配給部件。如果不成立,則可以在307定義和分配一個(gè)無(wú)時(shí)間盒!TB,作為自從該部件最后處理一個(gè)時(shí)間盒中的數(shù)據(jù)元素后尚未過(guò)去足夠的時(shí)間。當(dāng)在309該部件是#n部件時(shí),則在311首先檢查是否存在預(yù)定數(shù)目的數(shù)據(jù)元素在一個(gè)特定連接器#n連接器上可用,如果存在,則在305可以定義時(shí)間盒TB,在這里開(kāi)始時(shí)間是先前時(shí)間盒的結(jié)束時(shí)間,而結(jié)束時(shí)間是在該特定連接器上可用的最新數(shù)據(jù)元素的時(shí)間印記。如果不存在,則在313檢查當(dāng)前算法時(shí)間是否大于當(dāng)前時(shí)間盒的開(kāi)始時(shí)間加上偏移值d。如果這點(diǎn)成立,則數(shù)據(jù)元素準(zhǔn)備就緒,可以在305定義時(shí)間盒,如果不成立,則可以定義無(wú)時(shí)間盒!TB,因?yàn)樵诘趎連接器上尚未存在足夠的數(shù)據(jù)元素。一般來(lái)說(shuō),Δs部件能夠處理在它們的當(dāng)前時(shí)間盒中的少量變化的數(shù)據(jù),而#n部件將從輸入取同樣的數(shù)據(jù)量,其對(duì)于#n連接器是特定的。
在一個(gè)實(shí)施例中,分配給一個(gè)部件的當(dāng)前時(shí)間盒可以為每一連接器在時(shí)間上移位,如圖4所示。在401,一個(gè)部件被顯示為具有一些輸入(I1…In)和三個(gè)輸出(Q1,Q2,Q3)。把具有開(kāi)始時(shí)間BS和結(jié)束時(shí)間ES的時(shí)間盒TB分配給該部件,如403所示。在該例子中,輸出Q1沒(méi)有位移;Q2有正位移和Q3有負(fù)位移。為特定的輸出連接器的產(chǎn)生過(guò)程截止時(shí)間,通過(guò)增加該輸出的位移被直接鏈接到該時(shí)間盒的結(jié)束時(shí)間sPcQ=ES(TB)+ΔdQ式中,CQ是連接到該部件的輸出上的連接器,spcQ是連接器CQ的產(chǎn)生過(guò)程截止時(shí)間,se(TB)是以之調(diào)度部件401的時(shí)間盒TB的結(jié)束時(shí)間,ΔdQ是部件的輸出Q的位移。
使用圖5,說(shuō)明調(diào)度器在決定部件的可調(diào)度性時(shí)如何使用時(shí)間盒。通過(guò)檢查部件的每一輸入連接器決定可調(diào)度性,并且如果為該連接器的產(chǎn)生過(guò)程截止時(shí)間spc等于或者大于該部件的時(shí)間盒的結(jié)束時(shí)間ES,則該連接器使得該部件有資格被調(diào)度503,否則該部件尚未準(zhǔn)備好被調(diào)度505。如前面所提到的,部件的每一輸入連接器必須能資格認(rèn)證,以便向部件授予資格以待調(diào)度。
圖6-11表示結(jié)合再?gòu)?fù)用器使用時(shí)間盒驅(qū)動(dòng)的調(diào)度的一個(gè)例子。該再?gòu)?fù)用器包括下面7個(gè)部件,兩個(gè)為適應(yīng)接收傳輸流全天空?qǐng)D像(AllSky Imager ASI)的RtTsin部件(實(shí)時(shí)事務(wù)處理),兩個(gè)程序標(biāo)識(shí)符(PID)-替換流的PID的映射器,結(jié)合兩個(gè)流為一個(gè)流的一個(gè)復(fù)用器RtMux(實(shí)時(shí)復(fù)用器),用于輸出組合的流的一個(gè)輸出部件RtTsOut(實(shí)時(shí)事務(wù)處理),和一個(gè)復(fù)制輸入/輸出(I/O)事件以便迫使復(fù)用器和輸出以同樣的速度運(yùn)行的一個(gè)叉RtFork(實(shí)時(shí)叉)。再?gòu)?fù)用器另外包括三個(gè)事件發(fā)生器EVG,以管理數(shù)據(jù)的輸入、輸出和提供時(shí)間印記。連接中圖示的盒是時(shí)間盒,其中填滿(mǎn)的盒表示被填滿(mǎn)的時(shí)間盒。在圖中可調(diào)度部件用虛線框圍繞的部件標(biāo)記,剛被調(diào)度的部件用實(shí)線標(biāo)記。在圖7-11中表示出再?gòu)?fù)用器的不同的狀態(tài),和解釋可調(diào)度性是怎樣定義的,本發(fā)明不涉及調(diào)度和當(dāng)調(diào)度時(shí)使用的優(yōu)先策略,因?yàn)楸景l(fā)明只涉及部件的可調(diào)度性的定義。
在圖6中叉601剛剛被調(diào)度,在叉601和復(fù)用器616之間的連接603和在叉601和輸出部件617之間的連接606上存在一個(gè)滿(mǎn)的時(shí)間盒,但是無(wú)論復(fù)用器616還是輸出部件617哪個(gè)都不可調(diào)度,因?yàn)椴⒎沁@些部件的所有輸入都具有滿(mǎn)的時(shí)間盒。在這一狀態(tài)的唯一可調(diào)度部件是輸入部件607、609,因?yàn)檫@些部件的所有輸入都具有滿(mǎn)的時(shí)間盒611、613。
在圖7中,調(diào)度器選擇了一個(gè)待執(zhí)行的輸入部件701,并且這一部件已經(jīng)被執(zhí)行,從而在輸入的時(shí)間盒703被清空,而在輸出的時(shí)間盒709被填滿(mǎn)。在這一狀態(tài)只有PID映射器705和其他輸入部件707可以被調(diào)度,因?yàn)樗鼈兪俏ㄒ辉谒兴鼈兊妮斎肷暇哂袧M(mǎn)時(shí)間盒709、711的部件。復(fù)用器713和輸出部件715兩者都是不可調(diào)度的,因?yàn)檫@些部件的所有輸入不具有滿(mǎn)時(shí)間盒。
在圖8中調(diào)度器選擇了待執(zhí)行的PID映射器801部件,并且該部件已經(jīng)被執(zhí)行,從而在輸入上的時(shí)間盒803被清空,而在輸出的時(shí)間盒804被填滿(mǎn)。在這一狀態(tài),只有輸入部件805可以被調(diào)度,因?yàn)樗俏ㄒ辉谒兴妮斎肷暇哂袧M(mǎn)時(shí)間盒807的部件。復(fù)用器809和輸出部件811兩者仍都是不可調(diào)度的,因?yàn)檫@些部件的所有輸入不具有滿(mǎn)時(shí)間盒。
在圖9中調(diào)度器選擇了待執(zhí)行的輸入部件901,并且該部件已經(jīng)被執(zhí)行,從而在輸入上的時(shí)間盒903被清空,而在輸出的時(shí)間盒905被填滿(mǎn)。在這一狀態(tài),只有PID映射器905可以被調(diào)度,因?yàn)樗俏ㄒ辉谒兴妮斎肷暇哂袧M(mǎn)時(shí)間盒的部件。復(fù)用器907和輸出部件909兩者仍都是不可調(diào)度的,因?yàn)檫@些部件的所有輸入不具有滿(mǎn)時(shí)間盒。
在圖10中調(diào)度器選擇了待執(zhí)行的PID映射器1001部件,并且該部件已經(jīng)被執(zhí)行,從而在輸入上的時(shí)間盒1003被清空,而在輸出的時(shí)間盒1005被填滿(mǎn)。復(fù)用器1007現(xiàn)在可以被調(diào)度,因?yàn)樵谳斎肷系乃袝r(shí)間盒1005、1009、1011都是滿(mǎn)的。但是輸出部件1013仍是不可調(diào)度的,因?yàn)樗休斎氩痪哂袧M(mǎn)時(shí)間盒。
在圖11中調(diào)度器選擇了待執(zhí)行的復(fù)用器1101,并且該部件已經(jīng)被執(zhí)行,從而在輸入上的時(shí)間盒1103、1105、1107被清空。在這一狀態(tài),只有輸出部件1109和叉1111可以被調(diào)度,因?yàn)樗鼈兪窃谒胁考斎肷暇哂袧M(mǎn)時(shí)間盒的部件。
圖12表示根據(jù)本發(fā)明的系統(tǒng)1200。這里,該系統(tǒng)包括兩個(gè)存儲(chǔ)器1202和1208、兩個(gè)處理器1218、1220和一條軟件總線1222,它允許在兩個(gè)存儲(chǔ)器1202、1208和兩個(gè)處理器1218、1220之間進(jìn)行數(shù)據(jù)通信。存儲(chǔ)器1202包括一個(gè)以軟件寫(xiě)的部件1204,例如如前所述的RtTsin部件。此外,存儲(chǔ)器1202包括以軟件寫(xiě)的部件1206、1214和1216,例如如前所述的RtPidMap、RtFork和RtMux。存儲(chǔ)器1208包括兩個(gè)軟件模塊1210和1212。模塊1210可以稱(chēng)為調(diào)度器,它決定部件1204、1206、1214和1216的可調(diào)度性。如前所述,設(shè)計(jì)模塊1212來(lái)給數(shù)據(jù)元素提供時(shí)間印記。
權(quán)利要求
1.一種方法,用于決定在處理依賴(lài)于時(shí)間的數(shù)據(jù)元素流的實(shí)時(shí)系統(tǒng)中的部件何時(shí)可調(diào)度,在該系統(tǒng)中部件數(shù)目大于處理所述部件的可用處理器的數(shù)目,每一所述部件具有至少一個(gè)輸入和至少一個(gè)輸出,其特征在于,給數(shù)據(jù)元素提供時(shí)間印記,并當(dāng)在所述部件的所有輸入上來(lái)自所述依賴(lài)于時(shí)間的帶有時(shí)間印記的數(shù)據(jù)元素流的預(yù)定時(shí)間區(qū)間的帶有時(shí)間印記的數(shù)據(jù)元素可用時(shí)該部件是可調(diào)度的。
2.根據(jù)權(quán)利要求1的方法,其中,時(shí)間印記是在內(nèi)部定義的算法時(shí)間軸上的點(diǎn)。
3.根據(jù)權(quán)利要求1的方法,其中,帶有時(shí)間印記的數(shù)據(jù)元素的所述預(yù)定時(shí)間區(qū)間包括在所述部件的一個(gè)預(yù)定輸入上的預(yù)定數(shù)目的數(shù)據(jù)元素的時(shí)間區(qū)間。
4.根據(jù)權(quán)利要求1的方法,其中,當(dāng)在所有輸入上來(lái)自所述依賴(lài)于時(shí)間的帶有時(shí)間印記的數(shù)據(jù)元素流的基本相同預(yù)定時(shí)間區(qū)間的數(shù)據(jù)元素可用時(shí),所述部件可調(diào)度。
5.根據(jù)權(quán)利要求1的方法,其中,所述預(yù)定時(shí)間區(qū)間的長(zhǎng)度對(duì)于每一輸入來(lái)說(shuō)是基本相同的,和其中至少一個(gè)第一輸入的時(shí)間區(qū)間從至少一個(gè)第二輸入的時(shí)間區(qū)間位移偏移一個(gè)預(yù)定值。
6.根據(jù)權(quán)利要求1的方法,其中,通過(guò)定義所述預(yù)定時(shí)間區(qū)間的一個(gè)開(kāi)始時(shí)間和一個(gè)結(jié)束時(shí)間,并且檢查到數(shù)據(jù)已經(jīng)由在先前的部件處理的時(shí)間何時(shí)比所述預(yù)定時(shí)間區(qū)間的結(jié)束時(shí)間新,來(lái)決定所述帶有時(shí)間印記的數(shù)據(jù)元素的所述預(yù)定時(shí)間區(qū)間的可用性。
7.根據(jù)權(quán)利要求1的方法,其中,依賴(lài)于時(shí)間的帶有時(shí)間印記的數(shù)據(jù)元素流是多媒體數(shù)據(jù)流。
8.一個(gè)實(shí)時(shí)系統(tǒng)(1200),用于處理依賴(lài)于時(shí)間的數(shù)據(jù)元素流,所述系統(tǒng)(1200)包括一些部件(1204,1206,1214,1216)和一些用于處理部件的處理器(1218,1220),所述部件的數(shù)目大于處理器的數(shù)目,每一所述部件具有至少一個(gè)輸入和至少一個(gè)輸出,所述系統(tǒng)(1200)包括裝置(1210),用于定義所述部件的可調(diào)度性,其特征在于,所述系統(tǒng)(1200)包括裝置(1212),用于提供帶有時(shí)間印記的數(shù)據(jù)元素,和使定義可調(diào)度性的裝置(1210)適應(yīng)當(dāng)在所述部件的所有輸入上來(lái)自所述依賴(lài)于時(shí)間的帶有時(shí)間印記的數(shù)據(jù)元素流的預(yù)定時(shí)間區(qū)間的數(shù)據(jù)元素可用時(shí),定義該部件可被調(diào)度。
全文摘要
本發(fā)明涉及一種方法,決定在用于處理依賴(lài)于時(shí)間的數(shù)據(jù)元素流的硬實(shí)時(shí)系統(tǒng)中的部件何時(shí)可調(diào)度。部件的數(shù)目大于處理所述部件的可用處理器的數(shù)目,每一部件具有至少一個(gè)輸入和至少一個(gè)輸出。給數(shù)據(jù)元素提供時(shí)間印記,并當(dāng)在所述部件的所有輸入上來(lái)自所述依賴(lài)于時(shí)間的帶有時(shí)間印記的數(shù)據(jù)元素流的一個(gè)預(yù)定時(shí)間區(qū)間的帶有時(shí)間印記的數(shù)據(jù)元素可用時(shí)該部件是可調(diào)度的。在一個(gè)具體的實(shí)施例中,時(shí)間印記是在一個(gè)內(nèi)部定義的算法時(shí)間軸上的點(diǎn)。本發(fā)明還涉及一個(gè)硬實(shí)時(shí)系統(tǒng),用于使用執(zhí)行上述可調(diào)度性決定的裝置處理依賴(lài)于時(shí)間的數(shù)據(jù)元素流。
文檔編號(hào)H04L12/56GK1639687SQ03804861
公開(kāi)日2005年7月13日 申請(qǐng)日期2003年2月7日 優(yōu)先權(quán)日2002年3月1日
發(fā)明者A·德布恩杰, S·T·德克 申請(qǐng)人:皇家飛利浦電子股份有限公司