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

執(zhí)行實時操作的方法和系統(tǒng)的制作方法

文檔序號:6387293閱讀:109來源:國知局
專利名稱:執(zhí)行實時操作的方法和系統(tǒng)的制作方法
技術領域
本發(fā)明涉及用于在特定的時間間隔周期性地執(zhí)行一個實時操作的一個時序安排方法和一個信息處理系統(tǒng)。
背景技術
通常,為了提高吞吐量,諸如服務器計算機這樣的計算機系統(tǒng)利用了某種系統(tǒng)結構,例如一個多處理器和一個并行處理器。這兩種處理器都用多個處理單元實現(xiàn)了一個并行計算操作。
日本專利申請KOKAI公開10-143380揭示了一個具有多個處理單元的系統(tǒng)。此系統(tǒng)包括一個高速CPU、多個低速CPU和一個共享的存儲器。進程是考慮并行和每個進程的執(zhí)行時間被分配給高速和低速CPU的。
日本專利申請KOKAI公開8-180025揭示了一個時序安排技術,該技術對線程進行時序安排,以便相同的處理器執(zhí)行屬于相同進程的諸個線程。
近來,不僅計算機系統(tǒng),一個需要實時處理大量諸如AV(音頻視頻)數(shù)據(jù)這樣的數(shù)據(jù)的嵌入式設備也要求引入諸如一個多處理器和一個并行處理器的系統(tǒng)結構,以提高吞吐量。
但是,在目前的情況下,幾乎沒有關于以上系統(tǒng)結構中所宣稱的實時處理系統(tǒng)的報告。
在實時處理系統(tǒng)中,每個操作需要在允許時間的限制之內(nèi)完成。為了在特定的時間間隔周期性地執(zhí)行一個包括多個鏈接的任務的組合的實時操作,所有鏈接的任務都需要在每個周期的時間間隔內(nèi)完成。
由于實時處理系統(tǒng)常被用作一個嵌入式系統(tǒng),因此其重要問題是降低功耗。系統(tǒng)中包括的處理單元的數(shù)目越大,則需要的數(shù)據(jù)傳輸速度(數(shù)據(jù)傳輸帶寬)越高。數(shù)據(jù)傳輸帶寬越大,則功耗越大。當諸如一個多處理器和一個并行處理器的系統(tǒng)結構被應用到實時處理系統(tǒng)時,在一個給定時間周期內(nèi)完成一個實時操作的同時,需要一個新的機制來減少所需的數(shù)據(jù)傳輸帶寬。

發(fā)明內(nèi)容
本發(fā)明的一個目標是提供一種方法和一個信息處理系統(tǒng),它們能在不損害任何實時操作的情況下減少所需的數(shù)據(jù)傳輸帶寬。
根據(jù)本發(fā)明的一個實施方式,提供了一種方法,該方法用多個處理器在一個特定的時間間隔內(nèi)執(zhí)行多個任務,其中多個處理器通過一條總線傳輸數(shù)據(jù),該方法包括輸入關于執(zhí)行每個任務所需的時間的花費信息以及關于每個任務所需的數(shù)據(jù)傳輸帶寬的帶寬信息,并且執(zhí)行一個時序安排操作,根據(jù)輸入花費信息和帶寬信息,確定每個任務的執(zhí)行開始時間以及至少一個執(zhí)行所述任務的處理器,以便在不交疊多個任務中的至少兩個任務的執(zhí)行時間的情況下,在特定的時間間隔內(nèi)執(zhí)行任務,所述兩個任務要求的數(shù)據(jù)傳輸帶寬不少于其他任務要求的數(shù)據(jù)傳輸帶寬。


圖1是顯示配置根據(jù)本發(fā)明的一個實施方式一個實時處理系統(tǒng)的一個計算機系統(tǒng)的一個例子的框圖。
圖2是在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中提供的一個MPU(主處理單元)和VPU(通用處理單元)的框圖。
圖3是顯示用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個虛擬地址翻譯機制的一個例子的圖。
圖4是顯示映射在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的實際地址空間中的數(shù)據(jù)的一個例子的圖。
圖5描述了根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的有效地址空間、虛擬地址空間和實際地址空間。
圖6是一個用于數(shù)字電視廣播的接收機的框圖。
圖7是顯示由根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)執(zhí)行的一個程序模塊的一個例子的圖。
圖8是顯示包含在圖7所示的程序模塊中的一個結構描述的一個例子的表。
圖9是顯示對應于圖7所示的程序模塊的程序間的數(shù)據(jù)流動的圖。
圖10是顯示圖7所示的程序模塊的一個并行操作的圖,該并行操作是由兩個VPU執(zhí)行的。
圖11是顯示圖7所示的程序模塊的一個流水線操作的圖,該流水線操作是由兩個VPU執(zhí)行的。
圖12是顯示一個實時操作的每個任務的一個執(zhí)行期和一個要求的數(shù)據(jù)傳輸帶寬之間的一個關系的圖。
圖13是顯示時序安排的一個例子的圖,該時序安排考慮到了由每個任務所要求的一個數(shù)據(jù)傳輸帶寬,以便在一個周期內(nèi)盡可能統(tǒng)一要求的數(shù)據(jù)傳輸帶寬。
圖14是顯示由根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)執(zhí)行的一個節(jié)能控制操作的步驟的一個例子的流程圖。
圖15是由一個VPU周期性地執(zhí)行一個實時操作的線程的時序安排的圖。
圖16是由兩上VPU同時執(zhí)行兩個實時操作的時序安排的一個例子的圖。
圖17是根據(jù)本發(fā)明的實施方式的時序安排方法由兩個VPU同時執(zhí)行兩個實時操作的時序安排的一個例子的圖。
圖18是顯示根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個操作系統(tǒng)的一個例子的圖。
圖19是顯示根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個操作系統(tǒng)的另一個例子的圖。
圖20是顯示在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個虛擬機OS和一個子OS之間的一個關系的圖。
圖21是顯示被時分分配給根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的多個子OS的資源的圖。
圖22是顯示由根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個特定子OS占用的特定資源的圖。
圖23是用作本發(fā)明的實施方式的實時處理系統(tǒng)中的一個時序安排器的VPU運行環(huán)境的圖。
圖24是顯示在用于本發(fā)明的實施方式的實時處理系統(tǒng)中的虛擬機OS中實現(xiàn)的VPU運行環(huán)境的一個例子的圖。
圖25是顯示在用于本發(fā)明的實施方式的實時處理系統(tǒng)中的子OS中實現(xiàn)的VPU運行環(huán)境的一個例子的圖。
圖26是顯示在用于本發(fā)明的實施方式的實時處理系統(tǒng)中的每個子OS中實現(xiàn)的VPU運行環(huán)境的一個例子的圖。
圖27是顯示在用于本發(fā)明的實施方式的實時處理系統(tǒng)中的一個子OS中實現(xiàn)的VPU運行環(huán)境的一個例子的圖。
圖28描述了用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的MPU側(cè)VPU運行環(huán)境和VPU側(cè)VPU運行環(huán)境。
圖29是顯示由用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的VPU側(cè)VPU運行環(huán)境執(zhí)行的一個程序的流程圖。
圖30是顯示由用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的MPU側(cè)VPU運行環(huán)境執(zhí)行的一個程序的流程圖。
圖31描述了在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中,屬于一個緊密耦合線程群組并且被不同處理器執(zhí)行的線程。
圖32描述了在根據(jù)本發(fā)明的實時處理系統(tǒng)中的緊密耦合線程之間的交互作用。
圖33描述了在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中,執(zhí)行伙伴線程的VPU的本地存儲在緊密耦合線程的有效地址空間中的映射。
圖34描述了在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中屬于一個松散耦合線程群組的線程的處理器分配。
圖35描述了根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的松散耦合線程之間的交互作用。
圖36描述了根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的進程和線程之間的一個關系。
圖37是顯示在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中用于執(zhí)行一個時序安排操作的一個程序的流程圖。
圖38是顯示在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的線程的一個狀態(tài)轉(zhuǎn)換的圖。
圖39是描述在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個線程及其執(zhí)行期之間的一個關系的圖。
圖40是在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中在一個執(zhí)行期中同時運行的緊密耦合線程的圖。
圖41是顯示在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個周期執(zhí)行模型的圖。
圖42是顯示在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個非周期執(zhí)行模型的圖。
圖43描述了一個任務圖。
圖44描述了用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個預定圖的原理。
圖45描述了用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個預定圖的一個例子。
圖46是描述用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個分級時序安排器的圖。
圖47是描述由根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)用于硬實時類中的時序安排的參數(shù)的例子的圖。
圖48描述了用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的絕對時間限制。
圖49描述了用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的相對時間限制。
圖50描述了用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的互斥限制。
圖51是描述根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的同步機制的表。
圖52是顯示一個用于在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中選擇性地使用同步機制的程序的流程圖。
圖53是顯示用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個預定圖的一個例子的圖。
圖54是顯示在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中創(chuàng)建的一個預定請求的一個例子的圖。
圖55是顯示由根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)根據(jù)圖54所示的預定請求執(zhí)行的時序安排的一個例子的圖。
圖56是描述由根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)執(zhí)行的軟件流水線型時序安排的一個第一例子的圖。
圖57是描述由根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)執(zhí)行的軟件流水線型時序安排的一個第二例子的圖。
圖58是用于由根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)執(zhí)行的軟件流水線型時序安排的程序的流程圖。
圖59是描述由根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)執(zhí)行的軟件流水線型時序安排的一個第三例子的圖。
圖60是顯示由兩上VPU同時執(zhí)行兩個實時操作的時序安排的一個例子的圖。
圖61是顯示在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中由兩上VPU以流水線模式同時執(zhí)行兩個實時操作的時序安排的一個例子的圖。
圖62是描述通過圖61所示的時序安排所實現(xiàn)的要求的帶寬的減少的圖。
圖63是顯示用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個具有一個分級結構的預定圖的一個例子的圖。
圖64是顯示用于根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中的一個預定列表的一個例子的圖。
圖65是顯示在根據(jù)本發(fā)明的實施方式的實時處理系統(tǒng)中用于預定一個執(zhí)行期的一個程序的流程圖。
具體實施例方式
現(xiàn)將參照

本發(fā)明的一個實施方式。
圖1顯示了實現(xiàn)根據(jù)本發(fā)明的一個實時處理系統(tǒng)的一個計算機系統(tǒng)的配置的一個例子。計算機系統(tǒng)是一個執(zhí)行各種操作的信息處理系統(tǒng),這些操作必須在時間限制下實時完成。計算機系統(tǒng)不僅可被用作一個通用計算機,也可用作各種電子設備的一個嵌入式系統(tǒng),以執(zhí)行需要實時完成的操作。參見圖1,計算機系統(tǒng)包括一個MPU(主處理單元)11、多個VPU(通用處理單元)12、一個連接設備13、一個主存儲器14和一個I/O(輸入/輸出)控制器15。MPU 11、VPU 12、主存儲器14和IO控制器15通過連接設備彼此連接。連接設備13是一條包括一條總線的數(shù)據(jù)傳輸路徑。例如,一個環(huán)形總線結構或一個互聯(lián)網(wǎng)絡(例如一個縱橫交換機)可被用作總線。如果一條總線用于連接設備13,則其形狀可為一個環(huán)。MPU 11是控制計算機系統(tǒng)的一個操作的一個主處理器。MPU 11主要執(zhí)行一個OS(操作系統(tǒng))。VPU12和IO控制器15可執(zhí)行OS的某些功能。每個VPU 12是用于在MPU 11的控制下執(zhí)行多種操作的一個處理器。MPU 11將操作(任務)分配給VPU 12,以便并行地執(zhí)行這些操作(任務)。從而能夠高速并高效地執(zhí)行操作。主存儲器14是被MPU 11、VPU 12和I/O控制器15共享的一個存儲設備(共享存儲器)。主存儲器14存儲OS和應用程序。I/O控制器15連接到一個或多個I/O設備16??刂破?5也被稱為一個橋接設備。
連接設備13具有一個QoS(服務質(zhì)量)功能,它保證一個數(shù)據(jù)傳輸速率。QoS功能是通過以一個預定的帶寬(傳輸速率)通過連接設備13傳輸數(shù)據(jù)來實現(xiàn)的。當寫數(shù)據(jù)以5Mbps的速率從一個VPU 12傳輸?shù)酱鎯ζ?4或當其以100Mbps的速率從一個VPU 12傳輸?shù)搅硪粋€VPU 12時,使用Qos功能。每個VPU 12指定(預定)連接設備13的一個帶寬(傳輸速率)。連接設備13按優(yōu)先級將指定的帶寬分配給VPU 12。如果為一個VPU 12的數(shù)據(jù)傳輸預定了一個帶寬,則即使另一個VPU 12、MPU 11或IO控制器15在前一VPU 12的數(shù)據(jù)傳輸期間傳輸大量數(shù)據(jù),該帶寬也會被保證。QoS功能對于執(zhí)行實時操作的計算機尤其重要。
圖1所示的計算機系統(tǒng)包括一個MPU 11,四個VPU 12,一個存儲器14和一個IO控制器15。VPU 12的數(shù)目不受限制。系統(tǒng)不需要包括MPU,在此情況下,一個VPU 12執(zhí)行MPU 11的操作。換句話說,一個VPU 12用作一個虛擬MPU 11。
計算機系統(tǒng)還包括一個節(jié)能控制器17。此控制17完成以下功能,以降低整個或部分系統(tǒng)的功耗。
1.降低整個計算機系統(tǒng)的時鐘頻率。
2.降低整個計算機系統(tǒng)的供電電壓。
3.關閉整個計算機系統(tǒng)的電源。
4.降低一個或多個模塊(MPU、VPU、存儲器、I/O控制器等)的時鐘頻率。
5.降低一個或多個模塊(MPU、VPU、存儲器、I/O控制器等)的供電電壓。
6.關閉一個或多個模塊(MPU、VPU、存儲器、I/O控制器等)的電源。
7.降低連接設備的時鐘頻率(操作頻率)。
8.降低連接設備的傳輸速率。
9.減小連接設備的帶寬。
10.關閉連接設備的電源。
11.關閉存儲器庫的單元的電源。
12.停止刷新存儲器庫的單元。
13.減少MPU和VPU中同時操作的功能模塊。(如果處理器包括多個操作單元,則限制同時使用的操作單元數(shù)目。)以上節(jié)能功能可在軟件控制下完成。節(jié)能功能1至13可單獨或結合被完成。
圖2顯示了一個MPU 11和多個VPU 12。MPU 11包括一個處理單元21和一個存儲器管理單元22。處理單元21通過存儲器管理單元22訪問存儲器14。存儲器管理單元22執(zhí)行一個虛擬存儲器管理功能,并且管理存儲器管理單元22中的一個高速緩沖存儲器。每個VPU12包括一個處理單元31,一個本地存儲(本地存儲器)32和一個存儲器控制器33。處理單元31可具有對同一VPU 12中的本地存儲32的直接訪問權限。存儲器控制器33用作一個DMA(直接存儲器訪問)控制器,它在本地存儲32和存儲器14之間傳輸數(shù)據(jù)。存儲器控制器33利用連接設備13的Qos功能,并且具有指定一個帶寬的功能以及以指定的帶寬輸入/輸出數(shù)據(jù)的功能。存儲器控制器33也具有與MPU11的存儲器管理單元22同樣的虛擬存儲器管理功能。處理單元31將本地存儲32用作一個主存儲器。處理單元31不具有對存儲器14的直接訪問權限,而是指示存儲器控制器33將存儲器14的內(nèi)容傳輸給本地存儲32。處理單元31訪問本地存儲32以讀/寫數(shù)據(jù)。此外,處理單元31指示存儲器控制器33將本地存儲32的內(nèi)容寫到存儲器14。
MPU 11的存儲器控制單元22以及VPU 12的存儲器控制器33執(zhí)行如圖3所示的虛擬存儲器管理。由MPU 11的處理單元21或VPU12的存儲器控制器33所見的地址是一個64位的地址,如圖3的上部所示。在64位地址中,較高的36位部分表示一個段號,中間的16位部分表示一個頁號,而較低的12位部分表示一個頁偏置。存儲器管理單元22和存儲器控制器33均包括一個段表50和一個頁表60。段表50和頁表60將64位地址轉(zhuǎn)換為通過連接設備13實際尋址的實際地址空間。
例如,如圖4所示,以下數(shù)據(jù)映射在由MPU 11和每個VPU 12所見的實際地址(RA)中。
1.存儲器14(主存儲設備)2.MPU 11的控制寄存器3.諸個VPU 12的控制寄存器4.諸個VPU 12的本地存儲5.I/O設備的控制寄存器(包括I/O控制器15的控制存儲器)MPU 11和VPU 12可訪問實際地址空間中的任何地址以讀/寫數(shù)據(jù)項1至5。能夠從MPU 11和VPU 12甚至I/O控制器15訪問實際地址空間,進而訪問任一VPU 12的本地存儲32是尤其重要的。此外,段表50或頁表60可防止每個VPU 12的本地存儲32的內(nèi)容被任意讀或?qū)憽?br> 圖5顯示了由圖3所示的虛擬存儲管理功能所管理的存儲器地址空間。由MPU 11或VPU 12上執(zhí)行的程序直接看到的是EA(有效地址)。一個有效地址由段表50映射到VA(虛擬地址)空間中。一個虛擬地址由頁表60映射到RA(實際地址)空間中。RA空間具有如圖4所示的結構。
MPU 11可使用諸如一個控制寄存器的硬件機制來管理VPU 12。例如,MPU 11可從/向每個VPU 12的寄存器讀/寫數(shù)據(jù),并啟動/停止每個VPU 12執(zhí)行程序。正如VPU 12之間的通信和同步那樣,MPU 11和每個VPU 12之間的通信和同步可通過一個硬件機制(例如一個郵箱和一個事件標記)執(zhí)行。
根據(jù)本實施方式的計算機系統(tǒng)允許軟件執(zhí)行一個電子設備的這樣一個操作,該操作使得對實時操作的迫切需求按常規(guī)的方式實現(xiàn)。例如,一個VPU 12執(zhí)行對應于組成電子設備的某些硬件元件的一個計算,同時另一個VPU 12執(zhí)行對應于組成電子設備的其他硬件元件的一個計算。
圖6簡單顯示了數(shù)字電視廣播的一個接收機的硬件結構。在此接收機中,一個DEMUX(多路輸出選擇器)電路101將一個接收到的廣播信號分成對應于音頻數(shù)據(jù)、視頻數(shù)據(jù)和字幕數(shù)據(jù)的壓縮編碼的數(shù)據(jù)。一個A-DEC(音頻解碼器)電路102對壓縮編碼的音頻數(shù)據(jù)流進行解碼。一個V-DEC(視頻解碼器)電路103對壓縮編碼的視頻數(shù)據(jù)流進行解碼。解碼后的視頻數(shù)據(jù)流被發(fā)送到PROG(順序轉(zhuǎn)換)電路105,并被轉(zhuǎn)換為一個順序視頻信號。順序視頻信號被發(fā)送到一個BLEND(圖像混合)電路106。一個TEXT(字幕數(shù)據(jù)處理)電路104將壓縮編碼的字幕數(shù)據(jù)轉(zhuǎn)換為一個字幕視頻信號,并將它發(fā)送給BLEND電路106。BLEND電路106混合PROG電路105發(fā)送的視頻信號和TEXT電路104發(fā)送的字幕視頻信號,并將混合后的信號作為一個視頻流輸出。一系列上述操作按照一個視頻幀速率(例如,每秒30、32或60幀)重復。
為了通過軟件執(zhí)行圖6所示的硬件的操作,本實施方式提供了如圖7所示的一個程序模塊100。程序模塊100是一個應用程序,用于使得計算機系統(tǒng)執(zhí)行圖6所示的DEMUX電路101,A-DEC電路102,V-DEC電路103,TEXT電路104,PROG電路105和BLEND電路106的操作。應用程序是由多線程編程所描述的,其結構是執(zhí)行一個實時操作的線程群組。實時操作包括多個任務的結合。程序模塊100包括多個程序(多個例程),每個執(zhí)行為一個線程。具體地說,程序模塊100包括一個DEMUX程序111,一個A-DEC程序112,一個V-DEC程序113,一個TEXT程序114,一個PROG程序115和一個BLEND程序116。這些程序111至116是描述對應于電路101至106的操作(DMUX操作,A-DEC操作,V-DEC操作,TEXT操作,PROG操作,BLEND操作)的任務過程的程序。更具體地,當程序模塊100運行時,對應于程序111至116中每一個程序的一個線程被生成,并被分配給一個或多個VPU12,并在其上被執(zhí)行。一個對應于分配給VPU 12的線程的程序被加載到VPU 12的本地存儲32,并且線程在本地存儲32上執(zhí)行所述程序。程序模塊100是通過以一個稱為結構描述117的數(shù)據(jù)來封裝程序111至116得到的,其中程序111至116對應于配置一個數(shù)據(jù)電視廣播的接收機的硬件模塊。
結構描述117是指示程序模塊100中的程序(線程)是如何被結合并執(zhí)行的信息。結構描述117包括指示鏈接的程序111至116之間的輸入/輸出(鏈接的)中的關系以及執(zhí)行程序111至116中的每一個所需的花費(時間)的信息。圖8顯示了結構描述117的一個例子。
結構描述117顯示了多個模塊(程序模塊100中的程序),每個模塊被執(zhí)行為一個線程,以及其對應的輸入、輸出、執(zhí)行花費以及輸出所需的緩沖器大小。例如,(3)的V-DEC程序接收(1)的DEMUX程序的輸出,將其作為一個輸入,并將其輸出發(fā)送到(5)的PROG程序。V-DEC程序的輸出所需的緩沖器是1MB,執(zhí)行V-DEC程序本身的花費是50?;ㄙM可由執(zhí)行程序或程序的步驟個數(shù)所必需的時間單位(時間周期)來描述。它也可以以由一個具有某些虛擬規(guī)格的虛擬處理器執(zhí)行程序所需的時間單位來描述它。由于不同計算機的VPU規(guī)格和性能可能不同,因此需要以這樣的虛擬單元來描述花費。結構描述117中的總線帶寬是指示由程序111至116中的每一個程序通過連接設備13傳輸數(shù)據(jù)所需的一個數(shù)據(jù)傳輸帶寬(數(shù)據(jù)傳輸速率)的信息。數(shù)據(jù)傳輸在VPU之間、一個VPU和存儲器14之間或者一個VPU和I/O設備16之間執(zhí)行。以上QoS功能使得能夠保證執(zhí)行對應于程序111至116中每一個程序的操作所需的一個帶寬。如果根據(jù)圖8所示的結構描述117執(zhí)行程序,則程序之間的數(shù)據(jù)流動如圖9所示。
結構描述117還顯示了作為線程參數(shù)的耦合屬性信息,它表示了對應于程序111至116的線程之間的一個耦合屬性。耦合屬性包括兩個不同的屬性一個緊密耦合屬性和一個松散耦合屬性。具有緊密耦合屬性的多個線程彼此協(xié)作地被執(zhí)行,并被稱為一個緊密耦合線程群組。本實施方式的計算機系統(tǒng)對屬于每個緊密耦合線程群組的線程進行時序安排,以便屬于相同緊密耦合線程群組的線程能夠被不同的VPU同時執(zhí)行。具有松散耦合屬性的多個線程被稱為一個松散耦合線程群組。編程者可使用線程參數(shù)指定對應于程序11至16的線程之間的一個耦合屬性。將參考圖25及其以下的圖詳細說明緊密和松散耦合線程群組。包括耦合屬性信息的線程參數(shù)可被直接描述為程序111至116中的代碼,而不是結構描述117。
參見圖10和11,以下將說明本實施方式的計算機系統(tǒng)如何執(zhí)行程序111至116。此處假設計算機系統(tǒng)包括兩個VPUVPU0和VPU1。圖10顯示了當每秒顯示30幀視頻數(shù)據(jù)時將程序分配給每個VPU的時間。一幀的音頻和視頻數(shù)據(jù)在對應于一個周期的時間間隔中輸出。首先,VPU0執(zhí)行DEMUX程序,以執(zhí)行DEMUX操作,并將其得到的音頻、視頻和字幕數(shù)據(jù)寫入緩沖器。此后,VPU1執(zhí)行A-DEC程序和TEXT程序,以便順序執(zhí)行A-DEC操作和TEXT操作,并將其結果寫入緩沖器。然后,VPU0執(zhí)行V-DEC程序,以執(zhí)行V-DEC操作,并將其結果寫入緩沖器。VPU0執(zhí)行PROG程序以執(zhí)行PROG操作,并將其結果寫入緩沖器。由于此時VPU1已完成了TEXT程序,因此VPU0執(zhí)行最后的BLEND程序以執(zhí)行BLEND操作,以便生成最終的視頻數(shù)據(jù)。每個周期都重復以上處理。
確定每個VPU執(zhí)行哪個程序,以及程序何時完成以便無延遲地執(zhí)行一個所需操作的一個操作被稱為時序安排(scheduling)。一個實現(xiàn)時序安排的模塊被稱為一個時序安排器。在本實施方式中,時序安排是根據(jù)以上包括在程序模塊100中的結構描述117實現(xiàn)的。在時序安排操作中,執(zhí)行程序111至116的每個線程的執(zhí)行開始時間和執(zhí)行期均是根據(jù)結構描述117確定的,從而將每個線程分配給一個或多個VPU 12。以下操作在程序模塊100將要被執(zhí)行時執(zhí)行。
1.操作系統(tǒng)從一個外部存儲或存儲器14接收程序模塊100,并從程序模塊100讀取多個程序111至116以及結構描述117。
2.根據(jù)結構描述117,操作系統(tǒng)中的時序安排器確定用于執(zhí)行程序模塊100中的程序111至116的每個線程(DEMUX、V-DEC、A-DEC、TEXT、PROG和BLEND)的執(zhí)行開始時間和執(zhí)行期,以便將線程(DEMUX、V-DEC、A-DEC、TEXT、PROG和BLEND)分配給一個或多個VPU。
如上所述,在實時處理系統(tǒng)中,執(zhí)行程序模塊100中的鏈接的程序111至116的每個線程(DEMUX、V-DEC、A-DEC、TEXT、PROG和BLEND)的執(zhí)行開始時間和執(zhí)行期是根據(jù)結構描述117確定的。從而,可以不在一個程序的代碼中描述每個操作的時間限制條件,對用于執(zhí)行一個實時操作的線程有效地進行時序安排。
圖11顯示了當每秒顯示60幀視頻數(shù)據(jù)時執(zhí)行的程序。圖11與圖10的不同之處如下。在圖11中,每秒需處理60幀數(shù)據(jù),而在圖10中,每秒處理30幀數(shù)據(jù),從而一幀的數(shù)據(jù)處理可在一個周期(1/30秒)中完成。換句話說,一幀數(shù)據(jù)處理不能在一個周期(1/60秒)中完成,從而在圖11中執(zhí)行一個跨多個(兩個)周期的軟件流水線操作。例如,在周期1中,VPU0對于輸入信號執(zhí)行DEMUX程序和V-DEC程序。此后,在周期2中,VPU1執(zhí)行A-DEC、TEXT、PROG和BLEND程序,并輸出最終的視頻數(shù)據(jù)。在周期2中,VPU0在下一幀中執(zhí)行DEMUX和V-DEC程序。VPU0的DEMUX和V-DEC程序和VPU1的A-DEC、TEXT、PROG和BLEND程序跨兩個周期以流水線模式執(zhí)行。
為實現(xiàn)上述流水線操作,在執(zhí)行程序模塊100時執(zhí)行以下操作1.操作系統(tǒng)從外部存儲或存儲器14接收程序模塊100,并從程序模塊100讀取結構描述117。
2.操作系統(tǒng)中的時序安排器根據(jù)結構描述117確定多個任務DEMUX、V-DEC、A-DEC、TEXT、PROG和BLEND被程序模塊100中的程序111至116執(zhí)行的順序。然后時序安排器將任務分成一個第一任務群組和一個第二任務群組。第二任務群組跟隨在第一任務群組之后。例如,任務DEMUX和V-DEC屬于第一任務群組,而任務A-DEC、TEXT、PROG和BLEND屬于第二任務群組。
3.時序安排器使用至少兩個處理器VPU0和VPU1,并且周期性地將至少一個處理器分配給第一和第二群組中的每一個,以便以流水線模式周期性地執(zhí)行第一任務群組(DEMUX和V-DEC)和第二任務群組(A-DEC、TEXT、PROG和BLEND)。如果時序安排器用兩個處理器VPU0和VPU1執(zhí)行一個流水線操作,則它周期性地將第一任務群組(DEMUX和V-DEC)分配給VPU0,以便在VPU0上以1/60秒的時間間隔周期性地執(zhí)行第一任務群組。時序安排器周期性地將第二任務群組(A-DEC、TEXT、PROG和BLEND)分配給VPU1,以便在VPU1上以相對于第一任務群組延遲一個周期以1/60秒的時間間隔周期性地執(zhí)行第二群組。
兩個處理器VPU1和VPU2可并行執(zhí)行第二任務群組。例如,當VPU1執(zhí)行任務A-DEC和TEXT時,VPU2執(zhí)行任務PROG和BLEND。
在圖7所示的程序模塊100中,多個任務DEMUX、V-DEC、A-DEC、TEXT、PROG和BLEND由不同的線程執(zhí)行。從而以上任務群組可被稱為線程群組。
圖7所示的程序模塊100可被預先記錄在結合了本發(fā)明的計算機系統(tǒng)的設備的一個閃速ROM和一個硬盤中,或者通過一個網(wǎng)絡流通。在此情況下,計算機系統(tǒng)執(zhí)行的操作的內(nèi)容根據(jù)通過網(wǎng)絡下載的程序模塊的類型而變化。從而,結合了計算機系統(tǒng)的設備可執(zhí)行對應于每一個不同的專用硬件的實時操作。如果再現(xiàn)新的內(nèi)容所需的新的播放器軟件、解碼器軟件和加密軟件作為計算機系統(tǒng)可執(zhí)行的程序模塊與內(nèi)容一起被發(fā)送,則結合了計算機系統(tǒng)的任何設備可在可接受的能力限制范圍內(nèi)再現(xiàn)所述內(nèi)容。
節(jié)能控制根據(jù)本發(fā)明的實施方式的計算機系統(tǒng)在確保一個諸如上述程序模塊100的實時操作在一個有限的時間周期內(nèi)完成的同時,執(zhí)行節(jié)能控制以降低功耗。當在特定時間間隔在多個VPU上周期性地執(zhí)行一個實時操作時,則實現(xiàn)一個時序安排操作,以便在一個特定時間間隔內(nèi)完成實時操作的多個任務,并且盡可能地在一個周期內(nèi)統(tǒng)一所需的數(shù)據(jù)傳輸帶寬。根據(jù)每個任務所需的數(shù)據(jù)傳輸帶寬,確定執(zhí)行任務的一個或多個VPU以及每個任務的執(zhí)行開始時間,以防止具有較大的數(shù)據(jù)帶寬的至少兩個較高級任務的執(zhí)行期彼此交疊。
圖12顯示了在VPU0和VPU1上周期性地執(zhí)行包括三個任務A、B和C的一個實時操作的時序安排的例子。假設執(zhí)行任務A、B和C中每一個所需的總花費(時間)長于對應于一個周期的時間間隔。由于一個VPU不能在對應于一個周期的時間間隔內(nèi)執(zhí)行三個任務A、B和C,因此任務A、B和C被分配給VPU0和VPU1。如果要在VPU0上執(zhí)行的一個任務的執(zhí)行期和要在VPU1上執(zhí)行的一個任務的執(zhí)行期彼此交疊,則在交疊期內(nèi)數(shù)據(jù)傳輸量(連接設備所需的帶寬)增加,如圖12所示。在圖12中,任務A、B和C所需的總線帶寬分別為100Gbps、90Gbps和20Gbps。在任務A和B的執(zhí)行期交疊期間,需要190Gbps的總線帶寬。連接設備(總線)13的數(shù)據(jù)傳輸速率需要被設置為滿足每個周期內(nèi)的一個需要的總線帶寬的峰值。峰值越大,則連接設備(總線)13的數(shù)據(jù)傳輸速率必須越高。從而連接設備(總線)13增加了功耗。
根據(jù)本實施方式的時序安排操作是考慮到由結構描述117所提供的任務A、B和C中每一個任務的總線帶寬來實現(xiàn)的,以便最小化峰值。操作系統(tǒng)執(zhí)行任務A、B和C的時序安排,以便任務A、B和C在對應于一個周期的一個時間間隔內(nèi)執(zhí)行,并且具有大總線帶寬的至少兩個高級任務(在此情況下是A和B)的執(zhí)行期不彼此交疊。圖13顯示了防止任務A和B的執(zhí)行期彼此交疊的時序安排的一個例子??墒沟盟璧臄?shù)據(jù)傳輸帶寬在一個周期內(nèi)幾乎統(tǒng)一,并且將其峰值降低到一個較小的值。因此,可在確保包括任務A、B和C的實時操作在特定時間間隔內(nèi)被周期性地執(zhí)行的情況下,將連接設備(總線)13的數(shù)據(jù)傳輸速率設置為低,從而可降低功耗。
將參照圖14所示的流程圖說明一個用于節(jié)能控制操作的程序。
步驟S1操作系統(tǒng)從外部存儲或存儲器14接收結構描述117,以檢查實時操作的任務的執(zhí)行順序、執(zhí)行每個任務所需的花費以及每個任務所需的數(shù)據(jù)傳輸帶寬。
步驟S2根據(jù)以上執(zhí)行順序、花費和數(shù)據(jù)傳輸帶寬,操作系統(tǒng)執(zhí)行一個時序安排操作,確定一個或多個執(zhí)行任務的VPU以及每個任務的執(zhí)行開始時間,以滿足三個條件(1)滿足任務的執(zhí)行順序限制;(2)在對應于一個周期的時間間隔內(nèi)執(zhí)行所有任務;以及(3)防止其數(shù)據(jù)傳輸帶寬等于或大于其他任務的數(shù)據(jù)傳輸帶寬的至少兩個高級任務的執(zhí)行期交疊。
步驟S3操作系統(tǒng)根據(jù)步驟S2中的時序安排的結果以及每個任務所需的數(shù)據(jù)傳輸帶寬,計算(確定)要通過確定的一個或多個VPU在時間間隔內(nèi)執(zhí)行的數(shù)據(jù)傳輸?shù)臄?shù)據(jù)傳輸帶寬的一個峰值。
步驟S4操作系統(tǒng)根據(jù)連接設備(總線)13的數(shù)據(jù)傳輸能力和計算出的峰值計算所述計算出的峰值與連接設備(總線)13的最大數(shù)據(jù)傳輸帶寬(最大總線帶寬)的一個比率。
步驟S5操作系統(tǒng)根據(jù)步驟S4中計算出的比率將連接設備(總線)13的數(shù)據(jù)傳輸速率設置為一個低于所述最大數(shù)據(jù)傳輸帶寬的值。連接設備(總線)13的數(shù)據(jù)傳輸速率可通過將設備13的最大數(shù)據(jù)傳輸帶寬乘以計算出的比率來獲得。操作系統(tǒng)向節(jié)能控制器17發(fā)送一個命令,指定設備13的操作頻率或設備13的總線帶寬。節(jié)能控制器17包括一個電路,用于控制設備13的操作頻率或其總線帶寬。節(jié)能控制器17將操作頻率或總線帶寬設置為操作系統(tǒng)的命令指定的值。
以下是對由圖7所示的程序模塊所執(zhí)行的一個數(shù)字電視廣播接收操作的節(jié)能控制的說明。
圖15顯示了當一個VPU執(zhí)行一個數(shù)字電視廣播接收操作時所需的一個總線帶寬。數(shù)字電視廣播接收操作包括多個w任務(DDEMUX、VV-DEC、AA-DEC、TTEXT、PPROG、BBLEND)。這些任務中總線帶寬最大的一個(BLEND)被單獨執(zhí)行。因此,每個周期中所需的總線帶寬的峰值與任務(BLEND)所需的總線帶寬一致。
圖16顯示了當兩個頻道的數(shù)字電視廣播接收操作被同時執(zhí)行時所需的一個總線帶寬。VPU0執(zhí)行一個頻道的一個數(shù)字電視廣播接收操作,而VPU1執(zhí)行另一頻道的一個數(shù)字電視廣播接收操作。由于總線帶寬最大的任務(BLEND)彼此交疊,因此每個周期中所需的總線帶寬的峰值大大增加。
圖17顯示了通過根據(jù)本發(fā)明的實施方式的時序安排方法對執(zhí)行兩個頻道的數(shù)字電視廣播接收操作進行時序安排的一個例子。在此例子中,用一個周期中未執(zhí)行任務的空閑時間來移動要被VPU1執(zhí)行的任務(BLEND)的執(zhí)行期,從而防止總線帶寬最大的任務(BLEND)彼此交疊。從而每個周期中所需的總線帶寬的峰值可降低到圖16中的值的一半。
如上所述,考慮到每個任務所需的總線帶寬的本實施方式的時序安排操作不僅可應用于對包含在一個實時操作中的任務進行時序安排,也可應用于對一個或多個各自均需要在一個特定時間間隔內(nèi)執(zhí)行的實時操作進行時序安排。每個實時操作包含一個或多個任務,并且實時操作之間的執(zhí)行順序沒有限制。如果兩個實時操作均只包含一個任務,則可以只根據(jù)執(zhí)行任務所需的花費和任務的總線帶寬來執(zhí)行時序安排,以防止任務的執(zhí)行期彼此交疊。
操作系統(tǒng)當只有一個OS(操作系統(tǒng))201被加載到本實施方式的計算機系統(tǒng)時,它管理所有實際資源(MPU 11、VPU 12、存儲器14、I/O控制器15、I/O設備16等),如圖18所示。
另一方面,一個虛擬機系統(tǒng)可同時執(zhí)行多個OS。在此情況下,如圖19所示,一個虛擬機OS 301被加載到計算機系統(tǒng)中,以管理所有的實際資源(MPU 11、VPU 12、存儲器14、I/O控制器15、I/O設備16等)。虛擬機OS 301也被稱為一個主OS。也被稱為子OS的一個或多個OS 302和303被加載到虛擬機OS 301上。參見圖20,子OS 302和303各自在一臺包括由虛擬機OS 301提供的虛擬機資源的計算機上運行,并向由子OS 302和303管理的應用程序提供多種服務。在圖20的例子中,子OS 302看起來像是運行在一臺包括一個MPU 11、兩個VPU 12和一個存儲器14的計算機上,而子OS 303看起來像是運行在一臺包括一個MPU 11、四個VPU 12和一個存儲器14的計算機上。虛擬機OS 301管理實際資源中的哪一個VPU 12實際上對應于子OS 302所見到的一個VPU 12和子OS 303所見到的一個VPU 12。子OS 302和303不必知道此對應關系。
虛擬機OS 301對子OS 302和303進行時序安排,以便在時分的基礎上將計算機系統(tǒng)中的所有資源分配給子OS 302和303。假設子OS 302執(zhí)行一個實時操作。為了以嚴格的速度每秒三十次執(zhí)行操作,子OS 302將其參數(shù)設置到虛擬機OS 301。虛擬機OS 301對子OS 302進行時序安排,以便可靠地每1/30秒將必要的操作時間分配給子OS302一次。操作時間分配給一個不要求實時操作的子OS的優(yōu)先級低于分配給一個要求實時操作的子OS的優(yōu)先級。圖21顯示子OS 302和303交替運行,由水平軸表示時間。當子OS 302(OS1)在運行時,MPU 11和所有的VPU 12被用作子OS 302(OS1)的資源。而當子OS 303(OS2)在運行時,MPU 11和所有的VPU 12被用作子OS 303(OS2)的資源。
圖22顯示了一個不同的操作模式。有這樣的情況希望根據(jù)目標應用程序連續(xù)使用一個VPU 12。此情況對應于,例如,一個要求始終連續(xù)監(jiān)控數(shù)據(jù)和事件的應用程序。虛擬機OS 301的時序安排器管理一個特定子OS的時序安排,以便該子OS占用一個特定的VPU 12。在圖22中,一個VPU 3被指定為一個子OS 302(OS1)專用的資源。即使虛擬機OS 301將子OS 302(OS1)和子OS 303(OS2)彼此交換,VPU 3還是繼續(xù)在子OS 302(OS1)的控制下運行。
為了在本實施方式中使用多個VPU 12執(zhí)行程序,使用了一個軟件模塊,它被稱為一個VPU運行環(huán)境。該軟件模塊包括一個時序安排器,用于對要分配給VPU 12的線程進行時序安排。當本實施方式的計算機系統(tǒng)上只實現(xiàn)一個OS 201時,在OS 201上實現(xiàn)了一個VPU運行環(huán)境401,如圖23所示。VPU運行環(huán)境401可實現(xiàn)在OS 201的內(nèi)核中或?qū)崿F(xiàn)在一個用戶程序中。它也可以一分為二,用于內(nèi)核和用戶程序,以便彼此協(xié)作地運行。當一個或多個子OS運行在虛擬機OS301上時,提供以下模式以實現(xiàn)VPU運行環(huán)境4011.在虛擬機OS 301中實現(xiàn)VPU運行環(huán)境401的模式(圖24)。
2.將VPU運行環(huán)境401作為一個由虛擬機OS 301管理的OS的實現(xiàn)模式(圖25)。在圖25中,運行在虛擬機OS 301上的子OS 304是VPU運行環(huán)境401。
3.在由虛擬機OS 301管理的每個子OS中實現(xiàn)一個專用VPU運行環(huán)境的模式(圖26)。在圖26中,VPU運行環(huán)境401和402被實現(xiàn)在各自的子OS 302和303中。VPU運行環(huán)境401和402聯(lián)合運行,如果必要的話,使用由虛擬機OS 301提供的子OS之間的一個通信功能。
4.在由虛擬機OS 301管理的子OS之一中實現(xiàn)VPU運行環(huán)境401的模式(圖27)。一個沒有VPU運行環(huán)境的子OS 303通過一個由虛擬機OS 301提供的子OS之間的通信功能來利用一個子OS 302的VPU運行環(huán)境。
以上模式具有以下優(yōu)點模式1的優(yōu)點由虛擬機OS 301管理的一個子OS的時序安排以及諸個VPU的時序安排可合并成一個。從而,可以有效地并且精細地完成時序安排,并且有效地使用資源;以及由于VPU運行環(huán)境可在多個子OS之間共享,因此當引入一個新的子OS時不必創(chuàng)建一個新的VPU運行環(huán)境。
模式2的優(yōu)點由于諸VPU的一個時序安排器可在虛擬機OS上的多個子OS之間共享,因此可有效地并且精細地執(zhí)行時序安排,并能有效地使用資源。
由于VPU運行環(huán)境可在多個子OS之間共享,因此當引入一個新的子OS時不必創(chuàng)建一個新的VPU運行環(huán)境;以及由于可在不依賴于虛擬機OS或一個特定的子OS的情況下創(chuàng)建VPU運行環(huán)境,因此它易被標準化,以及彼此取代。如果創(chuàng)建一個適合一個特定的嵌入式設備的一個VPU運行環(huán)境以便利用設備的特征執(zhí)行時序安排,則可以有效地完成時序安排。
模式3的優(yōu)點由于可在每個子OS中最優(yōu)地實現(xiàn)VPU運行環(huán)境,因此可以有效地并且精細地執(zhí)行時序安排,并且能夠有效地使用資源。
模式4的優(yōu)點由于不需要在所有子OS上實現(xiàn)VPU運行環(huán)境,因此易于添加一個新的子OS。
由上可見,模式1至4均可被用于實現(xiàn)VPU運行環(huán)境。需要時可使用任何其他的模式。
服務提供者在根據(jù)本實施方式的計算機系統(tǒng)中,VPU運行環(huán)境401提供多種服務(一個使用網(wǎng)絡的通信功能、一個輸入/輸出文件的功能、調(diào)用一個庫函數(shù)(例如一個編解碼器)、與用戶接口、一個使用I/O設備進行的輸入/輸出操作、讀取日期和時間等),以及管理與VPU 12相關的多種資源(每個VPU的操作時間、一個存儲器、一個連接設備的帶寬等)并對其進行時序安排的功能。這些服務是從運行在VPU 12上的應用程序調(diào)用的。如果一個簡單的服務被調(diào)用,則它被VPU 12上的服務程序處理。一個不能僅由VPU 12處理的服務,例如通信處理和文件處理,則由MPU 11上的服務程序處理。提供這些服務的程序被稱為一個服務提供者(SP)。
圖28顯示了VPU運行環(huán)境的一個例子。VPU運行環(huán)境的主要部分位于MPU 11上,并且對應于一個MPU側(cè)的VPU運行環(huán)境501。一個VPU側(cè)的VPU運行環(huán)境502位于每個VPU 12上,只具有執(zhí)行一個可由VPU 12處理的服務的最小功能。MPU側(cè)的VPU運行環(huán)境501的功能大體上可分為一個VPU控制器511和一個服務代理512。VPU控制器511主要提供對與VPU 12相關的各種資源(每個VPU的操作時間、一個存儲器、一個虛擬空間、一個連接設備的帶寬等)的一個管理機制、一個同步機制、一個安全管理機制和一個時序安排機制。根據(jù)時序安排的結果將程序分派給VPU 12的是VPU控制器511。在接收到一個由每個VPU 12上的應用程序調(diào)用的服務請求時,服務代理512調(diào)用一個適當?shù)姆粘绦?服務提供者),并且提供服務。
在接收到每個VPU 12上的一個應用程序調(diào)用的服務請求時,VPU側(cè)的VPU運行環(huán)境502只處理可在VPU 12中提供的服務,并且請求服務代理512處理其不可能提供的服務。
圖29顯示了由VPU側(cè)的VPU運行環(huán)境502處理一個服務請求的過程。在接收到來自一個應用程序的一個服務調(diào)用時(步驟S101),VPU側(cè)的VPU運行環(huán)境502確定是否能在其中處理該服務(步驟S102)。如果該服務能被處理,則VPU運行環(huán)境502執(zhí)行該服務,并把其結果返回給調(diào)用的部分(步驟S103和S107)。如果不能,則VPU運行環(huán)境502確定是否有一個可執(zhí)行該服務的服務程序作為每個VPU 12上的一個可執(zhí)行程序(步驟S104)被注冊。如果該服務程序已被注冊,則VPU運行環(huán)境502執(zhí)行服務程序并將其結果返回給調(diào)用的部分(步驟S105和S107)。如果沒有,則VPU運行環(huán)境502請求服務代理512執(zhí)行該服務程序,并將服務的一個結果從服務代理512返回給調(diào)用部分(步驟S106和S107)。
圖30顯示了由MPU側(cè)的VPU運行環(huán)境501的服務代理處理由VPU側(cè)的VPU運行環(huán)境502請求的一個服務的過程。在接收到來自VPU側(cè)的VPU運行環(huán)境502的一個服務調(diào)用時(步驟S111),服務代理512確定VPU運行環(huán)境501是否能夠處理該服務(步驟S112)。如果能夠處理該服務,則服務代理512執(zhí)行該服務并將其結果返回給調(diào)用部分的VPU側(cè)的VPU運行環(huán)境502(步驟S113和S114)。如果不能,則服務代理512確定是否有一個能夠執(zhí)行該服務的服務程序作為MPU 11上的一個可執(zhí)行程序被注冊(步驟S115)。如果該服務程序已被注冊,則服務代理512執(zhí)行該服務程序,并將其結果返回給調(diào)用的部分的VPU側(cè)的VPU運行環(huán)境502(步驟S116和S114)。如果沒有,則服務代理512將一個錯誤返回給調(diào)用部分的VPU側(cè)的VPU運行環(huán)境502(步驟S117)。
結果回復給從每個VPU 12執(zhí)行的程序發(fā)出的某些服務請求,并且沒有結果回復給其他服務請求?;貜偷哪繕送ǔJ且粋€發(fā)出一個服務請求的線程;但是,另一個線程、一個線程群組或一個進程可以被指定為回復的目標。因此希望目標被包括在一條消息中以請求一個服務??捎靡粋€廣泛使用的對象請求代理來實現(xiàn)服務代理512。
實時操作根據(jù)本實施方式的計算機系統(tǒng)用作一個實時處理系統(tǒng)。由實時處理系統(tǒng)執(zhí)行的操作大體上分為以下三種類型1.硬實時操作2.軟實時操作3.盡力操作(非實時操作)硬和軟實時操作是所謂的實時操作。本實施方式的實時處理系統(tǒng)具有與多個現(xiàn)有的OS相同的線程和進程概念。首先將說明實時處理系統(tǒng)中的線程和進程。
線程具有以下三類1.硬實時類時間要求非常重要。此線程類是用于那種當要求沒被滿足時,會引起非常危險的情況的重要應用。
2.軟實時類此線程類是用于那種即使時間要求沒被滿足質(zhì)量也只是降低的應用。
3.盡力類此線程類是用于一個不包括時間要求的應用。
在本實施方式中,線程是實時操作的一個執(zhí)行單位。線程具有其相關程序,這些程序?qū)⒈痪€程執(zhí)行。每個線程保存其固有的信息,稱為一個線程環(huán)境。線程環(huán)境包括,例如,一個棧的信息以及存儲在處理器寄存器中的值。
在實時處理系統(tǒng)中,有兩個不同的線程MPU和VPU線程。這兩個線程是按執(zhí)行線程的處理器(MPU 11和VPU 12)分類的,它們的模型是彼此相同的。VPU線程的線程環(huán)境包括VPU 12的本地存儲32的內(nèi)容,以及存儲器控制器33的DMA控制器的條件。
一組線程被稱為一個線程群組。線程群組具有有效并且容易執(zhí)行諸如賦予該群組的線程相同屬性的一個操作的優(yōu)點。硬或軟實時類中的線程群組大體上分為一個緊密耦合線程群組和一個松散耦合線程群組。緊密耦合線程群組和松散耦合線程群組是通過添加到線程群組的屬性信息(耦合屬性信息)來彼此區(qū)別的。線程群組的耦合屬性可由應用程序或上述結構描述中的代碼明確指定。
緊密耦合線程群組是一個由彼此協(xié)作運行的線程組成的線程群組。換句話說,屬于緊密耦合線程群組的線程彼此緊密協(xié)作。緊密協(xié)作是指諸如線程間的頻繁通信和同步的交互,或者減少等待時間的交互。屬于同一緊密耦合線程群組的線程總是同時被執(zhí)行。換句話說,松散耦合線程群組是一個排除了屬于該群組的線程之間的緊密協(xié)作的線程群組。屬于松散耦合線程群組的線程執(zhí)行用于通過存儲器14上的緩沖器傳輸數(shù)據(jù)的通信。
緊密耦合線程群組如圖31所示,不同的VPU被分配給緊密耦合線程群組的線程,這些線程被同時執(zhí)行。這些線程被稱為緊密耦合線程。緊密耦合線程的執(zhí)行期在其各自的VPU中預定,并且緊密耦合線程被同時執(zhí)行。在圖31中,一個緊密耦合線程群組包括兩個緊密耦合線程A和B,并且線程A和B分別被VPU0和VPU1同時執(zhí)行。本實施方式的實時處理系統(tǒng)確保線程A和B被不同的VPU同時執(zhí)行。一個線程可通過執(zhí)行另一線程的VPU的本地存儲或控制寄存器與所述另一線程通信。
圖32描述了線程A和B之間的通信,該通信是通過分別執(zhí)行線程A和線程B的VPU0和VPU1的各自本地存儲執(zhí)行的。在執(zhí)行線程A的VPU0中,對應于執(zhí)行線程B的VPU1的本地存儲32的一個RA空間被映射在線程A的一個EA空間中的一部分。為進行此映射,VPU0的存儲器控制器33中提供的一個地址翻譯單元331使用一個段表和頁表執(zhí)行地址翻譯。地址翻譯單元331將線程A的EA空間的一部分轉(zhuǎn)換(翻譯)為對應于VPU1的本地存儲32的RA空間,從而將對應于VPU1的本地存儲32的RA空間映射在線程A的EA空間的一部分中。在執(zhí)行線程B的VPU1中,對應于執(zhí)行線程A的VPU0的本地存儲32的一個RA空間被映射在線程B的一個EA空間中。為進行此映射,VPU1的存儲器控制器33中提供的一個地址翻譯單元331使用一個段表和頁表執(zhí)行地址翻譯。地址翻譯單元331將線程B的EA空間的一部分轉(zhuǎn)換(翻譯)為對應于VPU0的本地存儲32的RA空間,從而將對應于VPU 0的本地存儲32的RA空間映射在線程B的EA空間的一部分中。
圖33顯示了將執(zhí)行線程B的VPU1的本地存儲(LS1)32映射到由VPU0執(zhí)行的線程A的EA空間中,以及將執(zhí)行線程A的VPU0的本地存儲(LS0)32映射到由VPU1執(zhí)行的線程B的EA空間中。例如,當要傳輸?shù)骄€程B的數(shù)據(jù)在本地存儲LS0中準備好時,線程A在VPU0的本地存儲LS0或執(zhí)行線程B的VPU1的本地存儲LS1中設置一個標記,表示此準備好狀態(tài)。線程B響應該標記的設置,從本地存儲LS0讀取數(shù)據(jù)。
根據(jù)上述本實施方式,緊密耦合線程可由耦合屬性信息指定,并且緊密耦合線程A和B肯定分別由不同的VPU同時執(zhí)行。從而,線程A和B之間的通信和同步的交互可在無延遲的情況下更緊密地被執(zhí)行。
松散耦合線程群組屬于松散耦合線程群組的每個線程的執(zhí)行期取決于線程之間的輸入/輸出的關系。即使線程不受執(zhí)行順序的限制,也不保證它們被同時執(zhí)行。屬于松散耦合線程群組的線程被稱為松散耦合線程。圖34顯示了一個松散耦合線程群組,它包括兩個松散耦合線程線程C和D,這兩個線程由各自的VPU 0和VPU1執(zhí)行。如圖34所示,線程C和D的執(zhí)行期不同。線程C和D之間的通信是由主存儲器14中準備的緩沖器實現(xiàn)的,如圖35所示。由VPU0執(zhí)行的線程C將準備在本地存儲LS0中的數(shù)據(jù)通過DAM傳輸寫入在主存儲器14上準備的緩沖器。VPU1執(zhí)行的線程D從主存儲器14上的緩沖器讀取數(shù)據(jù),并在線程D開始運行時通過DMA傳輸將其寫入本地存儲LS1。
進程和線程如圖36所示,一個進程包括一個地址空間和一個或多個線程。線程可被包括在進程中,不論其數(shù)目和類型為何。例如,進程中可只包括VPU線程,也可包括VPU和MPU線程的混合。正如一個線程保存一個線程環(huán)境作為其固有信息那樣,一個進程保存一個進程環(huán)境作為其固有信息。進程環(huán)境包括進程固有的一個地址空間以及包括在進程中的所有線程的線程環(huán)境。地址空間可在進程的所有線程之間共享。一個進程可包括多個線程群組,但是一個線程群組不能屬于多個進程。從而,屬于一個進程的一個線程群組是該進程所固有的。
在本實施方式的實時處理系統(tǒng)中,有兩種模型作為創(chuàng)建一個新線程的方法一個線程優(yōu)先模型和一個地址空間優(yōu)先模型。地址空間優(yōu)先模型與現(xiàn)有OS中采用的相同,從而可被應用到MPU和VPU線程。另一方面,線程優(yōu)先模型只能被應用到VPU線程,并且是本實施方式的實時處理系統(tǒng)所特有的。在線程優(yōu)先模型中,現(xiàn)有的線程(它是用于創(chuàng)建一個新線程的線程,即新線程的一個父線程)首先指定將被一個新線程執(zhí)行的一個程序,并且使得新線程開始執(zhí)行該程序。然后該程序被存儲在VPU的本地存儲中,并且從一個指定的地址開始運行。由于此時沒有地址空間與新線程相關聯(lián),因此新線程可獲得對VPU的本地存儲而不是存儲器14的訪問權限。此后,當需要時,新線程本身調(diào)用VPU運行環(huán)境的一個服務,并創(chuàng)建一個地址空間。地址空間與新線程相關聯(lián),并且新的線程可獲得對存儲器14的訪問權限。在地址空間優(yōu)先模型中,現(xiàn)有的線程創(chuàng)建一個新的地址空間或指定現(xiàn)有的地址空間,并且在地址空間中安排要被新線程執(zhí)行的程序。然后,新線程開始運行程序。線程優(yōu)先模型的優(yōu)點是一個線程只能被本地存儲執(zhí)行,因而減少了生成、分派和退出線程所需的開銷。
對線程進行時序安排現(xiàn)將參考圖37中的流程圖說明由VPU運行環(huán)境401執(zhí)行的一個時序安排操作。VPU運行環(huán)境401中的時序安排器根據(jù)添加到每個將被進行時序安排的線程群組的耦合屬性信息,檢查線程之間的一個耦合屬性(步驟S121)。時序安排器確定每個線程群組是一個緊密耦合線程群組還是一個松散耦合線程群組(步驟S122)。參考程序代碼中的線程描述或以上結構描述117中的線程參數(shù)來檢查耦合屬性。如果緊密和松散耦合線程群組被各自指定,則要對其進行時序安排的線程被分成緊密和松散耦合線程群組。
屬于緊密耦合線程群組的線程的時序安排如下執(zhí)行。為了使各自的VPU同時執(zhí)行從要被時序安排的線程中選出的一個緊密耦合線程群組的線程,VPU運行環(huán)境401中的時序安排器為每個VPU預定一個運行期,VPU的數(shù)目等于線程數(shù)目,并且同時將線程分派給VPU(步驟S123)。時序安排器使用一個執(zhí)行線程的VPU中的地址翻譯單元331將一個RA空間映射到一個線程的一個EA空間的一部分(步驟S124),該RA空間對應于一個執(zhí)行與前一線程交互作用的一個伙伴線程的VPU的本地存儲。對于從要被時序安排的線程中選出的屬于松散耦合線程群組的線程,時序安排器根據(jù)線程之間的輸入/輸出的關系按順序?qū)⒕€程分派給一個或多個VPU(步驟S125)。
如果根據(jù)耦合屬性信息選擇了一個緊密耦合線程群組,即彼此協(xié)作運行的線程的一個集合,則可確保屬于緊密耦合線程群組的線程被不同的處理器同時執(zhí)行。因此,線程之間的通信可通過彼此獲得對執(zhí)行其伙伴線程的處理器的寄存器的直接訪問權限的一個易實現(xiàn)的機制實現(xiàn)。從而可容易并迅速地執(zhí)行通信。
線程的狀態(tài)轉(zhuǎn)換一個線程一般從其被創(chuàng)建直至其被刪除期間進行狀態(tài)轉(zhuǎn)換。如圖38所示,一個線程進行以下七個狀態(tài)轉(zhuǎn)換。
1.不存在狀態(tài)此狀態(tài)是邏輯的,并且不存在于一個有效的線程中。
2.休眠狀態(tài)一個線程被創(chuàng)建并且尚未開始運行。
3.準備好狀態(tài)線程準備好開始運行。
4.等待狀態(tài)線程等待條件符合開始(重新開始)運行。
5.運行狀態(tài)線程在VPU或MPU上實際運行。
6.暫停狀態(tài)線程被VPU運行環(huán)境和其他線程強制暫停。
7.等待-暫停狀態(tài)等待和暫停狀態(tài)彼此交疊。
以上七個狀態(tài)之間的轉(zhuǎn)換條件和轉(zhuǎn)換涉及的線程環(huán)境如下。
此轉(zhuǎn)換是通過創(chuàng)建一個線程完成的。
一個線程環(huán)境被創(chuàng)建,但其內(nèi)容處于初始狀態(tài)。
此轉(zhuǎn)換是通過刪除一個線程完成的。
如果線程被設置為存儲其線程環(huán)境,則存儲的線程環(huán)境通過該轉(zhuǎn)換被丟棄。
此轉(zhuǎn)換在線程請求運行環(huán)境對線程進行時序安排時完成。
此轉(zhuǎn)換在線程等待的一個事件(例如,同步、通信、計時器中斷)被生成時完成。
此轉(zhuǎn)換在線程被運行環(huán)境分派給MPU或VPU時完成。
線程環(huán)境被加載。當線程環(huán)境被保存時,它被恢復。
此轉(zhuǎn)換在線程的運行被先占時完成。
此轉(zhuǎn)換在線程暫停其自身的運行以等待一個使用同步機制、通信機制等的事件時完成。
每個類中的線程可被設置為存儲其線程環(huán)境。當一個線程被設置為存儲其線程環(huán)境時,當線程從運行狀態(tài)轉(zhuǎn)換到等待狀態(tài)時,線程環(huán)境被運行環(huán)境保存。被保存的線程環(huán)境被一直保存,除非線程轉(zhuǎn)換到休眠狀態(tài),并且在線程轉(zhuǎn)換到運行狀態(tài)時被恢復。

此轉(zhuǎn)換在響應來自運行環(huán)境或其他線程的指令強制暫停線程的運行時完成。
每個類中的線程可被設置為存儲其線程環(huán)境。當一個線程被設置為存儲其線程環(huán)境時,當線程從運行狀態(tài)轉(zhuǎn)換到暫停狀態(tài)時,線程環(huán)境被運行環(huán)境保存。被保存的線程環(huán)境被一直保存,除非線程轉(zhuǎn)換到休眠狀態(tài),并且在線程轉(zhuǎn)換到運行狀態(tài)時被恢復。
此轉(zhuǎn)換在線程本身退出其自己的運行時完成。
當線程被設置為存儲其線程環(huán)境時,線程環(huán)境的內(nèi)容通過該轉(zhuǎn)換被丟棄。
此轉(zhuǎn)換在線程在等待狀態(tài)中等待生成一個事件時被來自外部的指令強制停止時完成。
此轉(zhuǎn)換在線程處于等待-暫停狀態(tài)時被來自外部的指令重新開始運行時完成。
此轉(zhuǎn)換在線程在等待狀態(tài)中等待的事件被生成時完成。
此轉(zhuǎn)換在線程被來自外部的指令重新開始運行時完成。
此轉(zhuǎn)換在線程被外部環(huán)境停止運行時完成。
線程的執(zhí)行期向一個VPU分配的一個線程的運行狀態(tài)的期間被稱為一個執(zhí)行期。一般地,從一個線程的創(chuàng)建到刪除的期間包括線程的多個執(zhí)行期。圖39顯示了從創(chuàng)建到刪除的不同的線程狀態(tài)的一個例子。此例子包括線程存在期間的兩個執(zhí)行期??墒褂貌煌姆椒ū4婧突謴途€程環(huán)境。多數(shù)正常的線程運行,使得在一個執(zhí)行期結束時保存一個環(huán)境,并且在下一個執(zhí)行期開始時恢復該環(huán)境。在一個特定的周期性操作中,線程運行使得在每個周期中,在一個執(zhí)行期開始時創(chuàng)建一個新的環(huán)境,在該執(zhí)行期期間使用該環(huán)境,并且在該執(zhí)行期結束時丟棄該環(huán)境。
屬于緊密耦合線程群組的線程的執(zhí)行期圖40顯示了屬于同一個緊密耦合線程群組的線程的執(zhí)行期。所有屬于一個特定的緊密耦合線程群組的線程由VPU運行環(huán)境401進行時序安排,以便它們能在一個執(zhí)行期中同時運行。此緊密耦合線程群組主要用于硬實時線程。因此,為實現(xiàn)該操作,當為硬實時類預定了一個執(zhí)行期時,VPU運行環(huán)境401指定同時使用的處理器及其數(shù)目。此外,VPU運行環(huán)境401使得與處理器對應的諸個線程的環(huán)境各自同時運行。
屬于一個特定的執(zhí)行期中的緊密耦合線程群組的線程,可通過取消其緊密耦合關系在其它執(zhí)行期中彼此分離地運行。每個線程必須認識到它是作為一個緊密耦合線程運行的,還是與另一線程分開運行的,并且執(zhí)行一個與其伙伴線程通信和同步的操作。每個線程具有一個屬性,指示是可被先占的或不可被先占的。可被先占的屬性允許線程在其執(zhí)行期被先占,即允許線程停止運行。不可先占的屬性確保一個線程在其執(zhí)行期不能被先占。不同線程類的不可被先占屬性的意義不同。在硬實時類中,當一個線程開始運行時,直到其執(zhí)行期結束,除線程本身外沒有什么能停止運行。在軟實時類中,可被先占性是基本的,從而不支持不可被先占的屬性。在盡力類型中,一個線程可被保護,以便不被其它盡力類先占,但它可被一個諸如硬實時類和軟實時類的更高級別的類先占。
線程的執(zhí)行模型線程的執(zhí)行模型大體上可分為兩個模型一個如圖41所示的周期性執(zhí)行模型和一個如圖42所示的非周期性執(zhí)行模型。在周期性執(zhí)行模型中,一個線程被周期性地執(zhí)行。在非周期性運行模型中,一個線程是根據(jù)一個事件執(zhí)行的。周期性執(zhí)行模型可用一個軟件中斷或一個諸如同步基元(synchronization primitive)的事件對象實現(xiàn)。在硬實時類中,周期性執(zhí)行模型是用一個軟件中斷實現(xiàn)的。換句話說,VPU運行環(huán)境401在應當開始一個周期性操作時跳轉(zhuǎn)到由一個指定的方法確定的一個線程的入口點,或者調(diào)用由一個指定程序預先注冊的一個回調(diào)函數(shù)。在軟實時類中,周期性模型是用一個事件對象實現(xiàn)的。換句話說,由于VPU運行環(huán)境401在每個周期中通知一個預先注冊的事件對象的生成,因此一個軟實時線程等待每個周期中的一個事件對象,并且在生成事件時執(zhí)行一個指定的操作,從而實現(xiàn)一個周期性的執(zhí)行模型。在盡力類中,周期性的執(zhí)行模型可用一個軟件中斷或一個事件對象中的任何一個實現(xiàn)。實際執(zhí)行不總在每個周期開始時開始,而是可以在限制范圍內(nèi)延遲。
通過使用一個事件模型,非周期性的執(zhí)行模型可被實現(xiàn)為周期性的執(zhí)行模型。在軟實時類和盡力類中,非周期執(zhí)行模型與周期性執(zhí)行模型的區(qū)別僅在于一個事件被通知的時間,并且這些模型在實現(xiàn)方法上是相同的。在硬實時類中,對于確保時間要求所必需的最小到達間隔時間和最終期限強烈限制著系統(tǒng)的操作;因此,非周期性的執(zhí)行是受限的。
環(huán)境轉(zhuǎn)換在根據(jù)本實施方式的實時處理系統(tǒng)中,可選擇在一個VPU線程的執(zhí)行期結束時轉(zhuǎn)換一個環(huán)境的方法。由于轉(zhuǎn)換環(huán)境的花費是非常高的,因此選擇一種方法提高了轉(zhuǎn)換效率。被選中的方法用在一個線程的預定的執(zhí)行期結束時。當一個線程在執(zhí)行期期間或在先占時被轉(zhuǎn)換時,在任何情況下當前線程的所有環(huán)境均需要被保存,并且在線程下次重新開始運行時被恢復。例如,以下有轉(zhuǎn)換一個VPU環(huán)境的方法。
1.丟棄環(huán)境不保存環(huán)境。
2.完全保存環(huán)境保存一個VPU的所有環(huán)境,包括VPU的寄存器和本地存儲的狀態(tài),以及存儲器控制器中的DMA控制器的狀態(tài)。
3.適度保存環(huán)境環(huán)境轉(zhuǎn)換被延遲,直到一個VPU的存儲器控制器的DMA控制器的所有操作均完成。此后,VPU中的寄存器和本地存儲的內(nèi)容被保存。在此方法中,VPU的所有環(huán)境和全部存儲均被保存。
可實現(xiàn)一個時序安排器對MPU和VPU線程進行時序安排,也可完成不同的時序安排器以對其各自的MPU和VPU線程進行時序安排。由于MPU和VPU線程轉(zhuǎn)換環(huán)境花費不同,因此實現(xiàn)不同的時序安排變得更加有效。
硬實時類中的時序安排硬實時類中的線程的時序安排是用一個擴展的任務圖的一個預定圖執(zhí)行的。圖43顯示了任務圖的一個例子。任務圖表示了任務之間的一個關系。在圖43中,任務之間的箭頭表示任務的依存關系(任務之間的輸入/輸出中的關系)。根據(jù)圖44的例子,任務1和2可隨意開始運行,一個任務3只能在任務1和2均停止運行后才能開始運行,而任務4和5只能在任務3停止運行后才能開始運行。任務圖沒有環(huán)境的概念。例如,當應該使用相同的環(huán)境處理任務1和4時,不能在任務圖中描述這一點。因此以下擴展任務表的預定表被用于本實施方式的實時處理系統(tǒng)中。
首先,考慮任務圖不是任務之間而是執(zhí)行期之間的一個關系。通過將一個環(huán)境關聯(lián)到每個執(zhí)行期,對應于環(huán)境的一個線程在執(zhí)行期中運行。如果相同的環(huán)境被關聯(lián)到多個執(zhí)行期,則其對應的線程在每個執(zhí)行期中運行。在圖44所示的例子中,線程1的環(huán)境被關聯(lián)到執(zhí)行期1和2,并且線程1在執(zhí)行期1和2中的每一個中運行。一個指示由運行環(huán)境確保的硬實時限制的屬性被添加到執(zhí)行期之間的每個箭頭上。通過這樣創(chuàng)建的一個預定表,可在不修改實時應用的模型的情況下,描述操作模型和諸如一個實時應用的時間要求的限制。圖45顯示了根據(jù)圖44所示的圖創(chuàng)建的預定圖的一個例子。圖45中的環(huán)境1、2和3分別對應于圖44中的線程1、2和3。
軟實時類的時序安排軟實時類中的線程的時序安排是用一個固定優(yōu)先級的時序安排方法來執(zhí)行的,以便能夠斷言線程的運行模式。為所述時序安排方法準備了兩個不同的時序安排算法一個是固定優(yōu)先級的FIFO時序安排,而另一個固定優(yōu)先級的循環(huán)時序安排。為了優(yōu)先執(zhí)行一個較高優(yōu)先級的線程,即使當一個較低優(yōu)先級的線程在運行時,較低優(yōu)先級的線程也被先占,并且較高優(yōu)先級的線程立即開始運行。為了避免在一個關鍵部分中出現(xiàn)優(yōu)先級顛倒問題,需要執(zhí)行一個同步機制,例如一個優(yōu)先級繼承協(xié)議和一個優(yōu)先級上限協(xié)議。
盡力類中的時序安排盡力類中的線程的時序安排是用動態(tài)優(yōu)先級時序安排或者類似的時序安排執(zhí)行的。
分級時序安排器VPU運行環(huán)境401中的時序安排功能可由如圖46所示的一個分級時序安排器實現(xiàn)。換句話說,線程級的時序安排具有兩個等級線程類之間的時序安排和線程類之內(nèi)的時序安排。從而,VPU運行環(huán)境401中的時序安排器具有一個線程類之內(nèi)的時序安排部件601和一個線程類之間的時序安排部件602。線程類之間的時序安排部件602對分布在不同線程類的多個線程進行時序安排。線程類之內(nèi)的時序安排部件601對屬于每個線程類的多個線程進行時序安排。部件601包括一個硬實時(硬RT)類時序安排部件611、一個軟實時(軟RT)類時序安排部件612和一個盡力類時序安排部件613。
線程類之間的時序安排和線程類之內(nèi)的時序安排具有一個分級結構。首先,線程類之間的時序安排運行,以確定執(zhí)行哪個線程類,然后確定執(zhí)行線程類中的哪個線程。線程類之間的時序安排采用可先占的固定優(yōu)先級時序安排。硬實時類具有最高優(yōu)先級,接下來按順序是軟實時類和盡力類。當一個較高優(yōu)先級類中的一個線程準備好運行時,一個最低優(yōu)先級的線程被先占。線程類之間的同步是由一個由VPU運行環(huán)境401提供的同步基元實現(xiàn)的。尤其地,只有基元能被用于一個硬實時線程中以防止在硬實時線程中發(fā)生阻塞。當一個盡力線程阻塞一個軟實時線程時,它被當作一個軟實時線程處理,以防止發(fā)生線程類之間的優(yōu)先級顛倒。此外,例如,優(yōu)先級繼承協(xié)議的使用防止另一個軟實時線程阻塞該盡力線程。
線程參數(shù)在根據(jù)本實施方式的實時處理系統(tǒng)中,是用多種參數(shù)對線程進行時序安排的。各類中的線程公共的參數(shù)如下線程類(硬實時、軟實時、盡力);使用資源(MPU或VPU的數(shù)目、帶寬、物理存儲器大小、I/O設備);優(yōu)先級;以及可被先占的或不可被先占的。
以下是硬實時類中的線程的參數(shù)執(zhí)行期;最終期限;周期或最小到達間隔時間;以及VPU環(huán)境轉(zhuǎn)換方法。
圖47顯示了硬實時類的基本參數(shù)的例子。在圖47的上部分所示的指定一個執(zhí)行期的例1中,在指定的執(zhí)行期中同時預定了一個MPU和兩個VPU,并且每個VPU的環(huán)境被完全保存。在此情況中,線程在三個處理器上同時運行,并且在執(zhí)行期之后,所述VPU線程的環(huán)境以及MPU線程的環(huán)境被完全保存。在圖47的右上角,例2顯示了一種方法,它指定一個最終期限以確保由VPU的數(shù)目及其執(zhí)行期所表示的一個操作在最終期限之前執(zhí)行。最終期限是在做出一個預定請求時由在請求時間處開始的相對時間指定的。在圖47的下部分,例3顯示了一種指定一個周期性執(zhí)行的方法。在此例中,指定兩個VPU 12的執(zhí)行期被周期性地重復,并且VPU線程的環(huán)境在每個周期的執(zhí)行期之后被丟棄,使得所有操作由新的環(huán)境執(zhí)行。此外,最終期限是由在周期開始處開始的相對時間指定的。
例如,有以下限制作為其他參數(shù)用于硬實時類中時間限制(絕對時間限制和相對時間限制);優(yōu)先順序限制;以及互斥限制。
時間限制提供了延遲執(zhí)行時間的一個單位。絕對時間限制是指定相對于靜止時間(例如一個周期的開始時間)的延遲時間的一種情況,如圖48所示。相對時間限制是指定相對于動態(tài)時間和一個事件(例如一個特定的開始時間和結束時間)的允許的延遲時間的一種情況,如圖49所示。由于優(yōu)先順序限制可通過用相對時間限制指定相對于一個特定執(zhí)行期的結束時間的延遲時間為0或更長來實現(xiàn),因此它可被視為一個特殊的相對時間限制。
互斥限制是確保執(zhí)行期彼此不交疊的一種情況,如圖50所示?;コ庀拗剖沟媚軌驕p少執(zhí)行期的不可預計性,所述不可預計性是由一個鎖定引起的。換句話說,防止了某些資源公共的所有線程同時運行,以便避免關于資源的鎖定。
線程的同步機制在根據(jù)本實施方式的實時處理系統(tǒng)中,以下同步基元被用作線程的同步機制信標(semaphore);消息隊列;消息緩沖器;事件標記;屏障;以及互斥體。
可使用其他同步基元。本實施方式的實時處理系統(tǒng)提供以下三種方法來實現(xiàn)以上同步機制同步機制在一個VPU的存儲器(主存儲)14或本地存儲32上用一個諸如一個TEST & SET的指令實現(xiàn);同步機制由諸如一個郵箱和一個信號寄存器的硬件機制實現(xiàn);以及同步機制用一個作為VPU運行環(huán)境的一個服務提供的機制實現(xiàn)。
由于同步機制具有優(yōu)點和缺點,因此需要根據(jù)線程的屬性選擇性地使用它們,如圖51所示。換句話說,一個用由MPU和VPU共享和訪問的存儲器(主存儲MS)14實現(xiàn)的同步機制可用于所有類中的線程。相反,一個實現(xiàn)在一個VPU 12的本地存儲LS上的同步機制只能被屬于緊密耦合線程群組的線程使用。這是因為只有屬于緊密耦合線程群組的線程確保其同步的伙伴線程同時運行。例如,如果一個屬于緊密耦合線程群組的線程被用于實現(xiàn)在執(zhí)行其伙伴線程的一個VPU的本地存儲上的一個同步機制,則當使用該同步機制時確保了所述伙伴線程的執(zhí)行。從而,執(zhí)行所述伙伴線程的VPU的本地存儲始終存儲所述同步機制的信息。
一個使用一個單元而不是存儲器(主存儲MS)和本地存儲LS的同步機制可由一個硬件機制或者VPU運行環(huán)境401的一個服務實現(xiàn)。由于屬于緊密耦合線程或硬實時類中的線程要求高速同步機制,因此需要在線程中使用由硬件機制實現(xiàn)的同步機制。相反,由運行環(huán)境提供的同步機制需要用在屬于松散耦合線程群組的線程中或?qū)儆谲泴崟r類和盡力類的線程中。
同步機制的自動選擇在根據(jù)本實施方式的實時處理系統(tǒng)中,可根據(jù)線程的屬性和狀態(tài)自動選擇或轉(zhuǎn)換以上同步機制。此操作由如圖52所示的一個程序執(zhí)行。當同步的線程屬于緊密耦合線程群組中(步驟S201中的“是”),采用由存儲器14、每個VPU12的本地存儲32或硬件機制實現(xiàn)的一個高速同步機制(步驟S202、S203、S204、S205)。當線程改變狀態(tài)以取消其緊密耦合關系時(步驟S201中的“否”),則高速同步機制被轉(zhuǎn)換為實現(xiàn)為存儲器14上的一個同步機制或VPU運行環(huán)境401的一個服務的一個同步機制(步驟S206、S207、S208)。
以上轉(zhuǎn)換可以一個庫的形式或者作為每個VPU12中的VPU運行環(huán)境502中的一個服務提供給運行在VPU12上的程序。多個同步機制可如下轉(zhuǎn)換。可預先確保并且選擇性地使用同步機制,或者在執(zhí)行轉(zhuǎn)換時確保新的同步機制。
對于一個使用VPU 12的本地存儲的同步機制,線程需要像屬于緊密耦合線程群組的線程那樣被VPU同時執(zhí)行。此限制可以如下放松。當一個線程未在運行時,本地存儲的內(nèi)容在線程最后運行時被存儲在存儲器14中,并且控制映射使得存儲的內(nèi)容由指示本地存儲的頁表或段表的條目指示。根據(jù)此方法,當伙伴線程未在運行時,線程可繼續(xù)運行,好像有一個與伙伴線程關聯(lián)的本地存儲一樣。當通過向線程分配一個VPU 12使之開始運行時,存儲器14中的內(nèi)容被恢復到VPU 12的本地存儲,以改變一個對應的頁表或段表的映射。使用VPU12的本地存儲的一個備份復本,所述使用VPU 12的本地存儲的同步機制甚至可用于不屬于緊密耦合線程群組的線程。
預定53顯示了對應于圖9所示的數(shù)據(jù)流動的一個預定圖。在圖53中,六個框表示執(zhí)行期。每個框上左上的數(shù)字表示要預定的一個執(zhí)行期的標識。每個框中的符號表示與執(zhí)行期相關聯(lián)的一個線程環(huán)境的標識符。每個框的右下的數(shù)字表示執(zhí)行期的長度(花費)。連接框的箭頭都表示優(yōu)先順序限制。換句話說,從一個框指到另一個框的一個箭頭表示后一框的執(zhí)行期中的操作在前一框的執(zhí)行期的操作完成后開始。從而可表示一個執(zhí)行期的鏈。每個箭頭旁的數(shù)字表示用于由箭頭連接的執(zhí)行期之間的數(shù)據(jù)傳輸?shù)囊粋€緩沖器的標識,而每個數(shù)字旁的值表示緩沖器的大小。以下是執(zhí)行根據(jù)圖53所示的預定圖的操作的程序1至7。
1.創(chuàng)建一個執(zhí)行DEMUX程序111的線程環(huán)境,并將其標識符稱為DEMUX。
2.創(chuàng)建一個執(zhí)行A-DEC程序112的線程環(huán)境,并將其標識符稱為A-DEC。
3.創(chuàng)建一個執(zhí)行V-DEC程序113的線程環(huán)境,并將其標識符稱為V-DEC。
4.創(chuàng)建一個執(zhí)行TEXT程序114的線程環(huán)境,并將其標識符稱為TEXT。
5.創(chuàng)建一個執(zhí)行PROG程序115的線程環(huán)境,并將其標識符稱為PROG。
6.創(chuàng)建一個執(zhí)行BLEND程序116的線程環(huán)境,并將其標識符稱為BLEND7.創(chuàng)建一個具有如圖54所示的一個數(shù)據(jù)結構的預定請求,并將其發(fā)送給VPU運行環(huán)境401以做出一個預定。
根據(jù)以上程序1至6中的每一個,如果一個程序被指定為作為一個線程運行,則VPU運行環(huán)境401向該程序分配必要的資源以創(chuàng)建一個線程環(huán)境。該線程環(huán)境的句柄被返回,并且從而被稱為一個標識符。
圖54顯示一個預定請求,它包括寫為“緩沖器”的緩沖器數(shù)據(jù)和寫為“任務”的執(zhí)行期。緩沖器數(shù)據(jù)用于在存儲器14上宣稱一個緩沖器,用于執(zhí)行期之間的數(shù)據(jù)傳輸。在緩沖器數(shù)據(jù)中,“標識”表示緩沖器號,“大小”表示緩沖器大小,“源任務”表示寫數(shù)據(jù)的執(zhí)行期號,而“目標任務”表示讀數(shù)據(jù)的執(zhí)行期號。在執(zhí)行期數(shù)據(jù)中,“標識”代表執(zhí)行期號,“類”表示線程類(VPU表示VPU線程以及HRT表示硬實時類。此外,有MPU表示MPU線程,SRT表示軟實時類,BST表示盡力類等),“線程環(huán)境”表示對應于執(zhí)行期的線程環(huán)境,“花費”表示執(zhí)行期的長度或花費,”限制”表示基于執(zhí)行期的多種限制,“輸入緩沖器”表示在執(zhí)行期中讀取的緩沖器的標識符的一個列表,而“輸出緩沖器”表示執(zhí)行期中寫入的緩沖器的標識符的一個列表?!跋拗啤边€可包括表示優(yōu)先順序限制的“優(yōu)先順序”,表示絕對時間限制的“絕對時間”,表示相對時間限制的“相對時間”以及表示互斥限制的“排斥”?!跋拗啤本哂杏糜谙拗频幕锇榫€程的執(zhí)行期號的一個列表。
被圖54所示的預定請求預定的緩沖器區(qū)域被分配給主存儲器14,并被VPU運行環(huán)境401從中釋放出來。緩沖器區(qū)域的分配在一個向緩沖器區(qū)域?qū)憯?shù)據(jù)的線程開始運行時執(zhí)行。緩沖器區(qū)域的釋放在一個從緩沖器區(qū)域讀數(shù)據(jù)的線程退出時執(zhí)行。使用線程開始運行時預定的一個地址、一個線程或一個寄存器來通知線程被分配的緩沖器的地址。在本實施方式的實時處理系統(tǒng)中,當提供如圖7所示的程序模塊100時,如圖8所示的結構描述117被讀出程序模塊100,并且根據(jù)結構描述117,一個線程環(huán)境被以上程序創(chuàng)建,并且如圖54所示的預定請求被創(chuàng)建并發(fā)布,從而提供了個執(zhí)行程序模塊100的功能。如圖7所示的程序模塊100所描述的專用硬件的操作被多個處理器由處理軟件執(zhí)行。具有如圖7所示的結構的一個程序模塊被創(chuàng)建給每個要實現(xiàn)的硬件,然后被一個具有符合本實施方式的實時處理系統(tǒng)的功能的設備執(zhí)行,使得設備能夠正如需要的硬件那樣被操作。另一個例子是,一個創(chuàng)建圖54所示的預定請求的操作在應用程序中被描述,并且應用程序可自己創(chuàng)建一個預定請求,并且將其傳輸給VPU運行環(huán)境401。
在提供圖54所示的預定請求的同時,VPU運行環(huán)境401確定哪個VPU 12在一個周期中的哪個時間執(zhí)行各個任務。這就是時序安排。實際上,可同時提供多個預定請求;因此確定操作時間以防止其彼此沖突(防止給定的限制未得到滿足)。假設當有如圖55所示的兩個VPU12時,只做出了圖54所示的預定請求,則執(zhí)行時序安排,以使得VPU 0順序執(zhí)行不能并行完成的DEMUX、V-DEC、PROG和BLEND操作,并且在DEMUX操作后,VPU1執(zhí)行可并行完成的A-DEC和TEXT操作。
軟件流水線如果在一個周期內(nèi)沒有足夠的時間順序執(zhí)行DEMUX、V-DEC、PROG和BLEND操作,則跨多個周期實現(xiàn)軟件流水線處理。例如,如圖56所示,VPU 0在第一周期中執(zhí)行DEMUX和V-DEC操作,而VPU 1在第二周期中執(zhí)行A-DEC、TEXT、PROG和BLEND操作。在第二周期中,VPU 0執(zhí)行下一幀中的DEMUX和V-DEC操作,這與A-DEC、TEXT、PROG和BLEND操作是并行的。換句話說,如圖57所示,流水線處理是這樣執(zhí)行的在VPU 0執(zhí)行DEMUX和V-DEC操作的同時,VPU 1在接收到來自前一周期中的DEMUX和V-DEC操作的輸出時執(zhí)行A-DEC、TEXT、PROG和BLEND操作。采用流水線操作使得一個實時操作能夠在更短的時間里在每個周期中完成。
圖58是用于時序安排以實現(xiàn)一個軟件流水線操作的程序的一個流程圖。
VPU運行環(huán)境401確定是否所有需要順序執(zhí)行的線程DEMUX、V-DEC、PROG和BLEND能在一個周期內(nèi)完成(步驟S401)。一個周期的長度作為程序模塊100的一個執(zhí)行條件被預設給VPU運行環(huán)境401。長度可在結構描述117中明確描述。在步驟S401中,根據(jù)線程DEMUX、V-DEC、PROG和BLEND的花費預計這些線程的總執(zhí)行期。預計的總執(zhí)行期與一個周期的長度相比較。
如果VPU運行環(huán)境401確定線程DEMUX、V-DEC、PROG和BLEND不能在一個周期內(nèi)執(zhí)行(步驟S401中的“否”),則它根據(jù)線程DEMUX、V-DEC、A-DEC、TEXT、PROG和BLEND的執(zhí)行順序?qū)⒂糜趫?zhí)行程序模塊100的所有線程DEMUX、V-DEC、A-DEC、TEXT、PROG和BLEND分成兩個可順序執(zhí)行的群組(以下稱為第一和第二線程群組)(步驟S402)。第一線程群組是在第二線程群組之前執(zhí)行的一個或多個線程的一個集合,而第二線程群組是在第一線程群組之后執(zhí)行的一個或多個線程的一個集合。在本實施方式中,線程DEMUX和V-DEC屬于第一線程群組,而線程A-DEC、TEXT、PROG和BLEND屬于第二線程群組,以滿足線程之間的優(yōu)先順序限制,并且使得每個群組的總執(zhí)行期不長于對應于一個周期的時間間隔。
VPU運行環(huán)境401執(zhí)行時序安排操作,以便周期性地將屬于第一線程群組的每個線程(DEMUX和V-DEC)的執(zhí)行期分配給VPU0,使得VPU0以1/60秒的時間間隔周期性地執(zhí)行第一線程群組(步驟S403)。在步驟S403中,每個線程DEMUX和V-DEC的周期性的執(zhí)行是為VPU0預定的。然后,VPU運行環(huán)境401執(zhí)行時序安排操作,以便周期性地將屬于第二線程群組的每個線程(A-DEC、TEXT、PROG和BLEND)分配給VPU1,使得VPU1以相對于第一線程群組一個周期的延遲以1/60秒的時間間隔周期性地執(zhí)行第二線程群組(步驟S404)。在步驟S404中,每個線程A-DEC、TEXT、PROG和BLEND的周期性的執(zhí)行是為VPU1預定的。
兩個處理器VPU0和VPU1以流水線模式處理第一線程群組(DEMUX和V-DEC)和第二線程群組(A-DEC、TEXT、PROG和BLEND)。因此,在第二線程群組相對于第一線程群組延遲一個周期的同時,第一線程群組和第二線程群組被并行執(zhí)行,從而每個1/60秒的周期輸出幀數(shù)據(jù)的處理結果。
在以上例子中,VPU0始終執(zhí)行第一線程群組(DEMUX和V-DEC),而VPU1始終執(zhí)行第二線程群組(A-DEC、TEXT、PROG和BLEND)。但是,如圖59所示,可執(zhí)行時序安排,以便周期性地替換第一線程群組所分配的處理器和第二線程群組所分配的處理器。在時序安排操作中,在每個周期中確定第一和第二線程群組中的每一個的執(zhí)行時間以及用于執(zhí)行第一和第二線程群組的不同處理器,以便在第二線程群組相對于第一線程群組延遲一個周期的同時,在處理器上并行執(zhí)行第一和第二線程群組。
使用流水線操作的節(jié)能控制通過上述流水線操作可在滿足任務的執(zhí)行順序限制的范圍內(nèi)減輕對每個任務的執(zhí)行時間的限制。即使每個周期沒有空閑時間,也可通過流水線操作執(zhí)行時序安排以防止總線帶寬大的任務的執(zhí)行期彼此交疊。
圖60顯示了同時執(zhí)行兩個頻道的數(shù)字電視廣播接收操作時所需的一個總線帶寬。如果每個周期沒有空閑時間,則由VPU0執(zhí)行的BLEND的執(zhí)行期和由VPU1執(zhí)行的BLEND的執(zhí)行期不能簡單地彼此移動。
圖61顯示了以上BLEND的執(zhí)行期被流水線操作移動的一個例子。要由VPU1執(zhí)行的實時操作(D2DEMUX、V2V-DEC、A2A-DEC、T2TEXT、P2PROG、B2BLEND)被分類成一個第一線程群組(V2、A2、T2、D2)和一個第二線程群組(P2、B2)。如圖61所示,第二線程群組(P2、B2)以相對于第一線程群組(V2、A2、T2、D2)一個周期的延時被執(zhí)行,而在周期2中,第二線程群組(P2、B2)在第一線程群組(V2、A2、T2、D2)之前被執(zhí)行。由于實時操作(D2DEMUX、V2V-DEC、A2A-DEC、T2TEXT、P2PROG、B2BLEND)是由VPU1跨兩個周期執(zhí)行的,因此可防止要由VPU0和VPU1執(zhí)行的BLEND的執(zhí)行期彼此交疊。因此,如圖62所示,每個周期中所需的總線帶寬的峰值可減少為圖60中的值的一半。
具有分層結構的預定圖雖然圖53所示的預定圖不具有分層結構,但也可以使用一個具有分層結構的預定圖,如圖63所示。在圖59中,執(zhí)行期A先于執(zhí)行期B,而執(zhí)行期B先于執(zhí)行期C。在執(zhí)行期B中,執(zhí)行期D先于執(zhí)行期E和F。解析此分層結構可得,執(zhí)行期A先于執(zhí)行期D,而執(zhí)行期E和F先于執(zhí)行期C。
基于結構描述的時序安排算法以下說明了一個用于根據(jù)結構在程序模塊中的結構描述預定每個線程的一個執(zhí)行期的程序。
圖8顯示了結合在圖7所示的程序模塊100中的結構描述117的一個例子。利用結構描述117,VPU運行環(huán)境401執(zhí)行以下步驟。
1.寫在結構描述117的模塊域中的程序被加載以生成執(zhí)行程序的線程。在本實施方式中,為結構描述117的每個條目生成一個線程。如果結構描述117包括具有相同模塊名稱的條目,則生成執(zhí)行相同模塊的多個線程,以便對應于其各自的條目。在圖8的例子中,所有的線程被生成為屬于一個進程;但是,線程可屬于不同的進程,或者線程群組可屬于不同的進程。
2.根據(jù)結構描述117的信息創(chuàng)建具有如圖54所示的一個數(shù)據(jù)結構的一個預定請求。
3.預定請求被發(fā)送給VPU運行環(huán)境,以便對線程進行時序安排,并且開始運行線程。
以上創(chuàng)建預定請求的步驟2按以下方式執(zhí)行。
首先,“緩沖器”記錄被創(chuàng)建以便一對一地對應于結構描述117的輸出域,并且被添加到預定請求。例如,在圖8的例子中,DEMUX模塊的第二輸出數(shù)據(jù)通過一個1MB的緩沖器被提供給V-DEC,以使得如圖54所示的一個標識符為2的“緩沖器”記錄被創(chuàng)建。在此“緩沖器”記錄中,緩沖器大小在“大小”域中被描述為1MB,對標識為1并且對應于向緩沖器寫數(shù)據(jù)的一個DEMUX模塊的“任務”記錄的參照在“源任務”域中描述,對標識為3并且對應于從緩沖器讀數(shù)據(jù)的一個V-DEC模塊的“任務”記錄的參照在“目標任務”域中描述。
然后,“任務”記錄被創(chuàng)建以一對一地對應于結構描述117的模塊域,并且被添加到預定請求。例如,在圖8的例子中,如圖54所示的一個標識為3的“任務”記錄被創(chuàng)建為對應于V-DEC模塊。此“任務”記錄具有以下信息Class域指示哪個屬性被用于執(zhí)行“任務”記錄中指定的一個線程的標記。
在此域中,“VPU”表示一個在VPU上運行的線程,而“HRT”表示硬實時類中的一個線程。這些信息項目是根據(jù)圖8所示的結構描述117的線程參數(shù)中描述的信息設置的。
線程環(huán)境域指定一個線程的線程環(huán)境的標記,該線程的運行將在“任務”記錄中被預定。更具體地,結構描述117的模塊域中指定的一個程序模塊被加載,一個執(zhí)行該程序模塊的線程被VPU運行環(huán)境401生成,線程的線程環(huán)境的一個標識符(一個指針之類的)被記錄在“線程環(huán)境”域中。
限制域記錄“任務”記錄的限制的標記。當限制為優(yōu)先順序限制時,“任務”記錄之后的另一個“任務”記錄所需的標識號被指定在“優(yōu)先順序”域之后。例如,一個標識為3的“任務”記錄先于一個對應于PROG模塊的標識為5的“任務”記錄。
輸入緩沖器域指定被由“任務”記錄指定的線程從中讀取數(shù)據(jù)的一個緩沖器的“緩沖器”記錄所需的標識號的標記。
輸出緩沖器域指定被由“任務”記錄指定的線程向其寫入數(shù)據(jù)的一個緩沖器的“緩沖器”記錄所需的標識號的標記。
帶寬域指定“任務”記錄指定的線程所需的一個總線帶寬的標記。
如果結構描述按照上述方式被提供,則其對應的預定請求被創(chuàng)建。
當預定請求被發(fā)送給VPU運行環(huán)境401中的時序安排器時,時序安排器創(chuàng)建一個執(zhí)行預定請求所必需的時序安排。此時序安排表示哪個VPU在哪個時間被分配給哪個線程,并且在一個周期中VPU被分配多長時間,如圖55所示。實際上,所述時序安排可被圖64所示的一個預定列表所表示。
圖64所示的預定列表包括與各VPU相關的預定條目。每個預定條目包括一個開始時間域,表示每個周期中一個線程何時被VPU執(zhí)行(線程的執(zhí)行開始時間),一個執(zhí)行期域,表示VPU被分配給線程多長時間(線程的執(zhí)行期),以及一個運行線程域,表示線程的一個標識符。預定條目按照VPU的開始時間的順序排序,并被鏈接到預定列表。
從圖54所示的預定請求創(chuàng)建一個如圖64所示的預定例的程序可由圖65所示的流程圖實現(xiàn)。
基本上,預定請求中的“任務”記錄只需要按照使用“緩沖器”輸入/輸出的關系排序,而VPU的運行時間只需要按照數(shù)據(jù)流順序分配給每個“任務”記錄。然后需要將VPU分配給屬于緊密耦合線程群組的任務。當使用兩個或多VPU時,考慮每個“任務”記錄的總線帶寬,對“任務”排序以防止總線帶寬較大的至少兩個高級“任務”的執(zhí)行期彼此交疊。
程序如圖65所示。在接收到一個預定請求時,VPU運行環(huán)境401通過以下步驟對由預定請求中的“任務”記錄指定的所有任務進行時序安排(換句話說,VPU運行環(huán)境401創(chuàng)建一個預定列表,用于預定每個任務被分配給的VPU,以及任務的執(zhí)行開始時間和執(zhí)行期)。
步驟S301VPU運行環(huán)境401從未進行時序安排的任務中選擇一個任務,它之前的所有任務(輸入任務)已經(jīng)被進行了時序安排。并且它沒有緊密耦合屬性。如果一個任務之前沒有輸入任務,則它被確定為輸入任務已經(jīng)被進行了時序安排的任務。
如果有一個任務,它的輸入任務已經(jīng)被進行了時序安排,并且它沒有緊密耦合屬性,則VPU運行環(huán)境401選擇它并轉(zhuǎn)至步驟S302。如果沒有,則轉(zhuǎn)至步驟S304。
步驟S302如果有一個VPU在符合要求的限制下能分配選定的任務的執(zhí)行開始時間和執(zhí)行期,則VPU運行環(huán)境401轉(zhuǎn)至步驟S303。如果沒有,則VPU運行環(huán)境401的時序安排失敗,并且做出一個失敗通知。
步驟S303VPU運行環(huán)境401創(chuàng)建選定的任務的預定條目,并且把它們鏈接到預定列表。任務的執(zhí)行期是在考慮到其總線帶寬的情況下被確定的,如上所述。
步驟S304VPU運行環(huán)境401從未被進行時序安排的任務中選擇其所有輸入任務已經(jīng)被進行了時序安排、并且屬于一個緊密耦合群組的任務。如果一個任務之前沒有輸入任務,則它們被確定為輸入任務已經(jīng)被進行了時序安排的任務。
如果存在其輸入任務已經(jīng)被進行了時序安排,并且屬于緊密耦合群組的任務,則VPU運行環(huán)境401選擇它們并轉(zhuǎn)至步驟S305。如果沒有,則結束時序安排。
步驟S305如果有VPU能夠同時預定所選中的任務中的所有任務(具有相同的執(zhí)行開始時間和相同的執(zhí)行期),則VPU運行環(huán)境401轉(zhuǎn)至步驟S306。如果沒有,則VPU運行環(huán)境401的時序安排失敗,并且做出一個失敗通知。
步驟S306選中的任務集合的所有任務的預定條目被創(chuàng)建,并被鏈接到預定列表。
已說明了對一個預定請求進行時序安排的步驟。實際上,通常一個系統(tǒng)中會同時出現(xiàn)多個預定請求。在此情況下,可通過上述步驟對預定請求進行時序安排,更有利地是,可通過上述步驟同時完成它們。
現(xiàn)在已經(jīng)以描述一個數(shù)字電視廣播接收機的操作的程序模塊為例說明了本實施方式。但是,如果準備了描述多種類型硬件的操作的一個程序模塊,則可由軟件執(zhí)行硬件的操作。
圖1所示的計算機系統(tǒng)中提供的MPU 11和VPU 12可實現(xiàn)為混合在一個芯片上的并行處理器。在此情況下,同樣,由MPU 11執(zhí)行的VPU運行環(huán)境或者由一個特定的VPU執(zhí)行的VPU運行環(huán)境或者類似的能夠控制VPU 12的時序安排和總線13的數(shù)據(jù)傳輸速率。
如果作為VPU運行環(huán)境運行的程序或者包括VPU運行環(huán)境的操作系統(tǒng)的程序被存儲在一個計算機可讀存儲介質(zhì)中,然后被引入到一個包括多個處理器的計算機中,其中每個處理器包括一個本地存儲器,并且在該計算機中執(zhí)行,則可獲得與本發(fā)明的前述實施方式相同的優(yōu)點。
本領域技術熟練者易實現(xiàn)其他優(yōu)點和修改。因此,在更廣泛的方面中的本發(fā)明并不限于特定的細節(jié)和此處顯示和說明的代表性實施方式。因此,可以在不背離附錄的權利要求書或其等價物所定義的一般發(fā)明概念的精神或范圍的情況下做出多種修改。
權利要求
1.一種使用通過一條總線傳輸數(shù)據(jù)的多個處理器在一個特定時間間隔內(nèi)執(zhí)行多個任務的方法,該方法包括輸入關于執(zhí)行每個任務所需的一個時間的花費信息和關于每個任務所需的一個數(shù)據(jù)傳輸帶寬的帶寬信息;以及執(zhí)行一個時序安排操作,根據(jù)輸入的花費信息和帶寬信息確定每個任務的執(zhí)行開始時間以及至少一個執(zhí)行所述多個任務的處理器,以便在不交疊所述多個任務中的至少兩個任務的執(zhí)行期的情況下在所述特定時間間隔內(nèi)執(zhí)行所述多個任務,所述兩個任務要求的數(shù)據(jù)傳輸帶寬不小于所述多個任務的其他任務要求的數(shù)據(jù)傳輸帶寬。
2.根據(jù)權利要求1的方法,進一步包括根據(jù)時序安排操作的結果和帶寬信息,計算由所述至少一個處理器在所述特定時間間隔內(nèi)執(zhí)行數(shù)據(jù)傳輸?shù)臄?shù)據(jù)傳輸帶寬的一個峰值;以及根據(jù)計算出的峰值與所述總線的最大數(shù)據(jù)傳輸帶寬的一個比率,將所述總線的數(shù)據(jù)傳輸速率設置為低于所述最大數(shù)據(jù)傳輸帶寬。
3.根據(jù)權利要求2的方法,其中所述設置包括控制總線的一個操作頻率。
4.在一個特定時間間隔內(nèi)執(zhí)行多個任務的一個信息處理系統(tǒng),包括一條總線;通過所述總線傳輸數(shù)據(jù)的多個處理器;以及用于執(zhí)行一個時序安排操作的裝置,該時序安排操作根據(jù)關于執(zhí)行每個任務所需的一個時間的花費信息和關于每個任務所需的一個數(shù)據(jù)傳輸帶寬的帶寬信息,確定每個任務的執(zhí)行開始時間以及至少一個執(zhí)行所述多個任務的處理器,以便在不交疊所述多個任務中的至少兩個任務的執(zhí)行期的情況下,在所述特定時間間隔內(nèi)執(zhí)行所述多個任務,所述兩個任務要求的數(shù)據(jù)傳輸帶寬不小于所述多個任務的其他任務要求的數(shù)據(jù)傳輸帶寬。
5.根據(jù)權利要求4的信息處理系統(tǒng),進一步包括用于根據(jù)時序安排操作的結果和帶寬信息,計算所述至少一個處理器在所述特定時間間隔內(nèi)執(zhí)行數(shù)據(jù)傳輸?shù)臄?shù)據(jù)傳輸帶寬的一個峰值的裝置;以及用于根據(jù)計算出的峰值與所述總線的最大數(shù)據(jù)傳輸帶寬的一個比率,將所述總線的數(shù)據(jù)傳輸速率設置為低于所述最大數(shù)據(jù)傳輸帶寬的裝置。
6.根據(jù)權利要求5的信息處理系統(tǒng),其中用于設置數(shù)據(jù)傳輸速率的裝置包括用于控制總線的一個操作頻率的裝置。
7.根據(jù)權利要求4的信息處理系統(tǒng),其中總線包括一個相互連接的網(wǎng)絡。
8.根據(jù)權利要求4的信息處理系統(tǒng),進一步包括一個連接到所述總線的存儲器,以及其中所述多個處理器被配置為通過所述總線在所述多個處理器和所述存儲器之間傳輸數(shù)據(jù)。
9.在一個特定時間間隔內(nèi)執(zhí)行多個任務的一個信息處理系統(tǒng),包括一條總線;通過所述總線傳輸數(shù)據(jù)的多個第一處理器;以及用于執(zhí)行一個時序安排操作的一個第二處理器,該時序安排操作根據(jù)關于執(zhí)行每個任務所需的一個時間的花費信息和關于每個任務所需的一個數(shù)據(jù)傳輸帶寬的帶寬信息,確定每個任務的執(zhí)行開始時間以及至少一個執(zhí)行所述多個任務的第一處理器,以便在不交疊所述多個任務中的至少兩個任務的執(zhí)行期的情況下,在所述特定時間間隔內(nèi)執(zhí)行所述多個任務,所述兩個任務要求的數(shù)據(jù)傳輸帶寬不小于所述多個任務的其他任務要求的數(shù)據(jù)傳輸帶寬。
10.根據(jù)權利要求9的信息處理系統(tǒng),其中第二處理器被配置為根據(jù)時序安排操作的結果和帶寬信息,計算所述至少一個第一處理器在所述特定時間間隔內(nèi)執(zhí)行數(shù)據(jù)傳輸?shù)臄?shù)據(jù)傳輸帶寬的一個峰值,并且信息處理系統(tǒng)進一步包括一個數(shù)據(jù)傳輸速率控制單元,其被配置為根據(jù)計算出的峰值與所述總線的最大數(shù)據(jù)傳輸帶寬的一個比率將總線的數(shù)據(jù)傳輸速率設置為低于所述最大數(shù)據(jù)傳輸帶寬。
11.根據(jù)權利要求10的信息處理系統(tǒng),其中數(shù)據(jù)傳輸速率控制單元被配置為控制總線的一個操作頻率。
12.根據(jù)權利要求9的信息處理系統(tǒng),其中總線包括一個相互連接的網(wǎng)絡。
13.根據(jù)權利要求9的信息處理系統(tǒng),進一步包括一個連接到總線的存儲器,以及其中所述多個第一處理器被配置為通過總線在所述多個第一處理器和所述存儲器之間傳輸數(shù)據(jù)。
全文摘要
一個信息處理系統(tǒng)在一個特定時間間隔內(nèi)執(zhí)行多個任務。該系統(tǒng)包括一條總線;多個通過總線傳輸數(shù)據(jù)的處理器;以及用于執(zhí)行一個時序安排操作的一個單元,該時序安排操作根據(jù)關于執(zhí)行每個任務所需的一個時間的花費信息和關于每個任務所需的一個數(shù)據(jù)傳輸帶寬的帶寬信息確定每個任務的執(zhí)行開始時間以及至少一個執(zhí)行任務的處理器,以便在不交疊任務中的至少兩個任務的執(zhí)行期的情況下在特定時間間隔內(nèi)執(zhí)行任務,這兩個任務要求的數(shù)據(jù)傳輸帶寬不小于其他任務要求的數(shù)據(jù)傳輸帶寬。
文檔編號G06F15/76GK1601474SQ200410011719
公開日2005年3月30日 申請日期2004年9月24日 優(yōu)先權日2003年9月26日
發(fā)明者金井達德, 前田誠司, 矢野浩邦, 吉井謙一郎 申請人:株式會社東芝
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1