專利名稱:多任務實時處理的設備和方法
技術領域:
本發(fā)明涉及的是實時數據處理設備的處理器中多任務處理的設備和方法,其中每一任務按照一個動態(tài)分配的優(yōu)先級單獨地、并且在一個預先規(guī)定的時間段內由該處理器處理。
在上述具有動態(tài)優(yōu)先級分配技術的實時系統中,一個任務或中斷的優(yōu)先級按照相對的緊迫性分配,并且涉及那一時刻,在該時刻有一個任務供處理,或請求一個中斷。
在許多迄今為止應用的系統中,為任務和中斷請求存在一個靜態(tài)的優(yōu)先級分配,它不隨時間的推移而改變。為了在一個這樣的有n個獨立的周期性任務的系統中實現所有任務的及時處理,處理器的負荷不得超過理論值n(21/n-1)。在n大時,這個值迅速趨向于1n2=0.69。也就是說,在一個這樣的系統中,處理器的負荷最大只可達到70%,該處理器最低需要30%的空閑時間才能及時處理所有的任務。
為改善處理器的負荷,進而改善整個數據處理設備的性能,已經嘗試過實現動態(tài)優(yōu)先級分配。這種動態(tài)優(yōu)先級分配的理論基礎發(fā)表在計算機協會雜志第20卷1973年1月號第46-61頁題目為“在硬實時環(huán)境中多道程序的調度算法”的文章中。根據這種理論,處理器的負荷可以達到100%。文中說明一種優(yōu)先級的分配算法,該法以最早截止期優(yōu)先(第一)(EDF)表示。從所有要處理的排隊等待的任務中根據EDF那個任務得到最高優(yōu)先級,據此優(yōu)先級對其處理的時間段最早結束。在所述發(fā)表的文章中此外還進行了靜態(tài)優(yōu)先級分配系統和動態(tài)優(yōu)先級分配系統之間理論性能的比較,以及進一步這些系統與混合優(yōu)先級分配系統的比較。
雖然按照EDF的動態(tài)優(yōu)先級分配可以達到100%的處理器負荷,但是系統性能并不能改善,因為此時處理器必須另外處理優(yōu)先級分配的算法。實踐表明,優(yōu)先級分配的算法在一些場合下產生高達80%處理器操作時間,以至只有20%的處理器時間用于實際的任務處理。
可以用一個專門負責處理優(yōu)先級分配算法的另外的處理器來避免由于優(yōu)先級分配算法而導致的處理器負荷的減少。這樣的解決方案可以從IEEE計算機學報,7/88,第177頁及以后有關頁上發(fā)表的時間驅動調度處理器的實現和評估”中獲知。使用這樣的系統,可以達到98%的處理任務的處理器時間。然而這種技術解決方案有下述缺點硬件開銷增加太多,因而對許多應用來說這種系統昂貴。
因此本發(fā)明的一個任務是提供一種方法和設備,利用這種方法和設備在應用一按照EDF的動態(tài)優(yōu)先級分配時在與已知的系統相比不增加另外的處理器的設備上。處理器負荷可大大提高,另外這樣的解決方案還應該在不過多增加開支的情況下能夠實現。
根據本發(fā)明,通過由一個數據處理設備的處理器使用一種多任務處理方法而解決了上述任務,其中每一任務按照一個動態(tài)分配的優(yōu)先級獨立地、并且在一個預先規(guī)定的時間段內由該處理器處理,該方法包括下述步驟-對要處理的任務建立一個初始化單元,該初始化單元帶有包含時間流程信息的一定數目的t位和包含變址信息的一定數目的i位,并且把該建立起來的初始化單元裝入爭用部件的一個空單元,每一個要由處理器處理的任務都在爭用部件中分配一個這樣的單元。
-比較爭用部件所有單元在t位中包含的時間信息,以查明包含最小時間流程信息的那項任務,如果該任務和正由處理器處理的先前查明的任務不一致的話,給處理器發(fā)送一個中斷信號,以便開始處理最新查明的任務。
同樣,所提出的任務通過使用由一個處理器按照動態(tài)分配的優(yōu)先級在一個預先規(guī)定的時間段內處理多任務的設備而解決,在該設備中,裝備若干個為要處理的一外部任務建立初始化單元的部件,該初始化單元至少包含一定數目的t位,它們包含時間流程信息,和包含一定數目的i位,它們包含變址信息,在該設備中,還有為在爭用部件(PCU)中登入每一待處理的任務的初始化單元的另外的部件,為此其中裝備了多個爭用單元,另外還有比較在爭用部件的所有單元的t位中包含的時間信息的部件,以查明包含最早到期的時間信息的那個任務,以及給處理器發(fā)送中斷信號的部件,如果在該查明的任務與前此查明的正由處理器處理的任務不一致時,則開始新查明的任務的處理。在t位中包含的時間流程信息通常規(guī)定,在多長的時間內該任務必需完成,而在i位中包含的變址信息指向該數據處理設備的任務控制塊。
通過這種方法及設備,可以極大改善處理器的負荷,因為處理器不必處理任何為分配優(yōu)先級而需要開銷的代碼。因此處理器可以加載任務到其100%的理論極限。爭用部件的硬件開銷與一個附加的處理器相比十分小。爭用部件例如可以是一個簡單的靜態(tài)RAM存儲塊,或者是一個簡單的二進制計數器,其中存儲爭用單元。
在本方法及本設備的一個實施形式中,初始化單元以有利的方式由進程初始化部件建立,其中,對每一允許的外部事件-它觸發(fā)一個由處理器處理的任務-包含一個帶預編碼或者通過處理器初始化的t和i位的初始化單元。在本發(fā)明的框架內另外還設計,對一個待處理的內部任務,例如一子任務,由處理器建立爭用單元的t和i位并登入爭用部件中。
本發(fā)明框架內的另外的優(yōu)點是爭用部件的每一單元的r位指示該單元是否被占用。在把一個單元登入爭用部件之前總要檢驗該r位,以確認打算用的單元未由登入其它任務而被占用。當所屬任務結束,該r位被重新釋放,指示它為一個空單元。
另外被證明為優(yōu)點的是爭用部件的每一單元另外包含f位,它們設計用于任務間通信,例如信號機,事件標志或者信息箱,通過它們可以暫時抑制一個爭用單元參與比較在t位中包含的時間流程信息。當一個任務必需等待一個規(guī)定的前提條件時,則在該任務的爭用單元中置一f位,以便將其從對在t位中包含的時間流程信息的比較中暫時排除。當繼續(xù)處理該任務的前提條件滿足時,分配的爭用單元的該f位重新復位,使得此后該單元又能參與對t位的比較。由此可以以簡單的方式表示一個爭用單元的激活和非激活的狀態(tài)。
根據本發(fā)明的方法的一個特別有利的實施例可以通過下述事實得到,在一個初始化單元的t位中包含的相對時間信息,在把該單元往爭用部件登入之前要加上一個向上計數的計數器的值,以產生一個絕對時間信息,其通過爭用單元的t位體現。因為在爭用單元中只還存儲了絕對時間信息,因此只還必須互相比較這些登錄項,以確定哪個任務包含最小時間流程信息。
僅在至少爭用單元之一的r和f位的狀態(tài)發(fā)生改變時才以有利的方式比較激活的爭用單元的時間流程信息。這就是說,僅在一個爭用單元往爭用部件中新登入時或從其中清除時或者一個爭用單元參與時間流程信息的比較被抑制或重新允許時這種比較才能執(zhí)行。然而,不依賴爭用單元的r和f位的狀態(tài),另外周期地比較所有被占用的爭用單元(激活的和未激活的單元)的時間流程信息,只要被查明的最小時間流程信息值小于計數器的時間流程信息值時,就顯示過載。這種過載保險用于,在超過100%的處理器滿負荷的情況下激活也能在這種場合下使數據處理繼續(xù)可靠地運行的子例程。同樣,可以通過該中斷子例程處理死循環(huán)。
在本發(fā)明的框架內以下面的方式區(qū)分相對和絕對時間流程信息。相對時間信息規(guī)定一個時間段,例如15毫秒,在該時間段內該任務的處理最晚必須結束。一個這樣的相對時間流程信息在下面敘述的優(yōu)選實施例中首先包含在初始化單元的t位中。為簡單起見,相對時間流程信息也可以間接地通過一個二進制值,例如一個二進制計數器的一定數目的脈沖周期表示,其用作時間參量。與此相對,一個絕對時間流程信息規(guī)定一個時刻,例如10點15分45秒1毫秒,最遲到該時刻該任務的處理必須結束。這種類型的絕對時間信息自然也可以不依賴日間的時間而由一個向上計數的計數器實現。一個這樣的絕對時間信息在該優(yōu)選實施例中包含在爭用單元的t位中。由于把一個單元登入爭用部件中時相對時間信息變換為絕對時間信息,因此有利的是爭用單元的t位不必在每一脈沖周期后更新。
下面根據一個具體的實施例,但不局限于該實施例,參考附
圖1、2、3和4詳細敘述本發(fā)明,這些附圖表示圖1是帶初始化部件和爭用部件的按照本發(fā)明的設備的原理框圖;圖2是根據圖1的設備的框圖,其中用數字表示各個運行流程;圖3是爭用部件的仲裁電路的原理詳圖;圖4表示仲裁電路的不同信號的典型的時間曲線。
首先參照圖1,其中原理示出根據本發(fā)明技術的一個PICU(進程初始化和爭用部件)設備,它包含一個進程初始化部件PIU和一個爭用部件PCU(進程爭用部件)。
在進程初始化部件PIU上連接有多條信號線,每一條表示一個外部事件,由處理器CPU(此處未示出)要處理的一個規(guī)定的任務可以通過這些信號線發(fā)出信號。為此目的,進程初始化部件為每一外部事件信號分配一個初始化單元IC,這些初始化單元包含在一個初始化單元陣列ICA中。每一初始化單元IC包含規(guī)定數目的位,亦即n數目的t位,其為相應的任務規(guī)定一個相對的時間信息,處理器CPU最遲必須在該時間段內處理完該任務,以滿足實時處理的要求;每一初始化單元還包括多個i位,它們建立起一個變址,該變址指向數據處理設備的任務控制塊TCB,在該任務控制塊中存儲有處理當時任務的其它信息;每一初始化單元還包含一定數目的f位,其作為標志例如用于任務之間的通信。t位可以對每一可能的任務在陣列ICA中予先編碼或者在數據處理設備起動時寫入陣列ICA中。i位在一個任務初始化階段由處理器CPU在分配的單元中寫入。在進程初始化部件PIU中另外還裝備一個向上計數的n位寬計數器CUP,該計數器的內容要在一個初始化單元IC登入爭用部件PCU前,加在該初始化單元的t位的內容上,以產生一個絕對時間信息,它規(guī)定,從初始化開始到哪一時刻,該任務最遲必須由處理器處理。計數器CUP由一外部節(jié)拍CLOCK同步。
PICU設備的爭用部件PCU包括多個爭用單元CC,它們同樣包含在一個陣列CCA(爭用單元陣列)中。在爭用部件PCU中的爭用單元CC的數目和在進程初始化部件PIU中的初始化單元IC的數目彼此獨立。每一爭用單元CC分配規(guī)定數目的位,亦即n+1數目的t位,它包含加上計數器CUP中包含的信息而得到的絕對時間信息,到此時間該任務必須處理,每一爭用單元還分配初始化單元所有的i位和f位以及另外一個r位,它表示分配的爭用單元是空還是被占用。在本實施例中初始化單元的t位的數目和內容與爭用單元的t位的數目和內容不同,因為在初始化單元IC中的t位包含的是相對時間信息,與此相反,爭用單元包含的是絕對時間信息,它是通過把相對時間信息和在計數器CUP中包含的當時值相加而得到的。在所敘述的實施例中還為爭用單元另外分配一仲裁電路A,它比較被占用的爭用單元CC的t位中存儲的時間流程信息,以查明時間流程信息具有最小值的那個單元。后面參考圖3和圖4進一步更準確地敘述該仲裁電路的功能。仲裁電路A通過IRINW(指明新擁有者的中斷請求)中斷信號線和IRIO(指明過載的中斷請求)中斷信號線與數據處理設備的處理器CPU連接。
在帶有計數器CUP的本優(yōu)選實施例中,無論是進程初始化部件PIU還是爭用部件PCU都可以模仿靜態(tài)RAM建立。因為為此僅需少量的三極管,相對于其它的二進制計數器來說,制造該設備簡單而成本適宜。不過本發(fā)明并不局限于本實施例。所有其它的、為此目的適宜的進程初始化部件和爭用部件均包含在本發(fā)明的框架內。
進程初始化部件PIU通過一導線FREECELL和一內部數據總線IDB與PICU設備的爭用部件PCU連接。通過導線FREECELL,借助爭用單元CC的r位,檢驗爭用部件的這樣一個單元是否可以用于一個登錄項,也就是說,確定它是空還是被占用。通過內部數據總線IDB可以從PIU到PCU傳輸t、i和f位。
為與數據處理設備的處理器CPU通信,另外還裝備一傳輸部件ADAWSG(地址解碼和等待狀態(tài)產生部件),它一方面與內部地址和數據總線、另一方面與CPU的地址和數據總線連接。另外傳輸部件ADAWSG還擁有一個到導線FREECELL的通路。進程初始化部件PIU通過一條訪問禁止信號線ACCESSDISABLE與傳輸部件ADAWSG連接,以避免在初始化時期或在通過進程初始化部件PIU向爭用部件PCU登入一個單元時處理器CPU動作。該訪問禁止線ACCESSDISABLE的信號通過傳輸部件ADAWSG轉變?yōu)橐粋€信號,它導向處理器CPU的異步準備就緒入口ARDY。另外,傳輸部件還連接到外部芯片選擇PCS的出口和處理器的R/W上。
PICU設備的內部地址總線的位數分為兩段,亦即一c段和一s段,通過c段,進程初始化部件或者爭用部件的單元被尋址,通過s段,每一單元內部的部分區(qū)域(t位、i位、f位)被尋址。連接到CPU的地址總線也可以以這種方式分成兩段,亦即一c段和一s段。
下面參考圖2詳細敘述上面說明的設備的典型的運行流程,分兩方面來說明,一方面是情形A,在該情形下外部事件發(fā)出一個任務處理的信號,另一方面是情形B,在該情形下通過處理器產生一個子任務。下面在括號中給出的數字相應于在圖2中給出的數字。
A)在出現一個外部事件后,例如事件e,在為此裝備的進程初始化部件PIU的信號線之一上執(zhí)行下述工作步驟(1)在一個加法寄存器中裝入為所要求任務裝備的初始化單元IC的n個預先編碼的t位;(2)在傳輸部件ADAWSG上,將信號線ACCESS DISABLE置位,以便在所要求的任務初始化完成以前處理器CPU不能存取爭用部件PCU。當來自CPU的一個PCS信號到達ADAWSG部件時,則通過ADAWSG部件作為對信號線ACCESSDISABLE的相應置位ARDY信號;(3)同時通過進程初始化部件將FREECELL信號線置位,以便能夠對一個空的爭用單元(帶已復位的r位)進行隨之而來的寫操作;(4)在n個t位中包含的時間流程數值加在n位寬計數器CUP的內容上。這種相加產生一個n+1位的結果,它表示一個絕對時間信息,該絕對時間信息寫入空的爭用單元的n+1位的t位中。初始化單元中的i位和f位中的內容不加改變地寫入相應的爭用單元的i位和f位中。
(5)然后信號線ACCESSDISABLE由進程初始化部件PIU再次復位,以便再次釋放處理器CPU對爭用部件的存取。如果其間出現一PCS請求,則通過傳輸部件ADAWSG將ARDY信號復位;(6)同樣通過進程初始化部件PIU將信號線FREECELL復位。
B)在出現一個內部事件時,也就是說,當一個任務由一個其它的任務請求時,執(zhí)行下面的步驟(11)在處理器CPU的地址總線上置一備用碼,例如在c段置一0XFF,以表明請求一個空單元。同樣,在地址總線的s段的t位上置一指針;(12)傳輸部件ADAWSG接著產生一FREECELL信號,只要ACCESSDISABLE信號一不顯示在ADAWSG部件上時,它就被放置在爭用部件的FREECELL入口上;(13)t位的數值放在CPU的數據總線上;(14)在ADAWSG部件的R/W入口置WRITE信號;(15)n個t位的內容裝入進程初始化部件PIU的加法寄存器中。如果t位的數目大于數據總線的寬度,則重復執(zhí)行(11)到(15)的步驟,直到所有n個t位裝入加法寄存器中;(16)n個t位與n位寬計數器CUP的內容相加產生一個結果,其寫入一個空單元的n+1的t位中。i位和f位仿照步驟(11)到(16)直接寫入有關的爭用單元中。
因為一個任務的處理最遲必須完成的時刻在為該任務建立爭用單元CC時業(yè)已確定,所以爭用部件PCU的內容僅在當一個爭用單元CC新建立或者撤消時或者當一個已經存在的爭用單元CC的狀態(tài)改變時才改變。例如通過改變一個爭用單元的f位可以抑制或重新參予由仲裁電路A進行的t位的比較,或者可以通過改變已有的爭用單元CC的t位而改變已分配的任務的時間流程信息。換句話說,對請求任務處理的優(yōu)先級分配只能在爭用部件的內容改變時才能改變。爭用部件的所有改變由硬件通過對該爭用部件的寫操作實現。這就是說,對爭用部件的所有占用單元的t位進行比較,以確定包含最小時間流程信息的爭用單元,需要的話給處理器CPU發(fā)送一個中斷請求,這種操作僅必須在對該爭用部件的寫操作實現后才能執(zhí)行。在所有其它的時刻,爭用部件PCU和仲裁電路A可以用于其它目的。
下面參考圖3和圖4詳細敘述仲裁電路的邏輯結構及其功能,其中在圖3中以3個帶多個f位、一個r位和多個t位的爭用單元為例詳細敘述仲裁電路邏輯,而在圖4中示出圖3的仲裁電路邏輯的不同信號的典型時間曲線。爭用單元的i位在圖3中為明了起見未示出,因為它對仲裁電路的功能無任何影響。
作為對爭用部件的w信號線的寫信號的響應,在一個規(guī)定的時間,在c信號線上置一“高”值信號。該高值信號的持續(xù)時間依賴于在該仲裁電路之內的信號延遲。c信號線的信號通過一與門電路與一邏輯功能電路PLA(程序邏輯陣列)的輸出邏輯連接。功能電路PLA是爭用單元CC的所有f位的邏輯連接,并由其輸出(0或1)指示,該爭用單元當時是否參與由仲裁電路對t位的比較。c信號線上的高值信號的作用為使得到仲裁電路A的動態(tài)觸發(fā)器D-FF的輸出只包含爭用部件的那些單元CC,它們被占用,而且它們的f位(PLA功能電路)允許參予這種比較。從圖3進一步得知,只有分配給最小時間流程信息的那個單元的觸發(fā)器D-FF的輸出可為零。剛才敘述的仲裁電路的操作方式用于確定,占用的(r位=置位)和激活的(PLA功能電路為1)爭用單元中那一個包含最短時間流程信息并因此按照EDF原則得到最高優(yōu)先級。仲裁電路的這種操作方式在下面簡稱為優(yōu)先級分配。
在所有其它時間,也就是說當爭用部件上沒有寫操作發(fā)生時,c信號線置低位。c信號線上的低位的作用為使所有被占用的爭用部件的單元不依賴由PLA功能電路表示的狀態(tài),而參予比較在t位中包含的時間流程信息。這種比較的結果裝入一個n位寬比較器COMP中,且與計數器CUP的值比較。只要計數器的數值大于剛才查出的爭用部件所有占用單元的最小時間流程信息,則比較器COMP的輸出從低值變?yōu)楦咧?。這意味著,處理器不能在其予計的時刻處理一個任務而仲裁電路A給處理器CPU發(fā)送一個中斷請求過載指示IRIO,以便指明處理器的此種狀態(tài)。由于在爭用部件中所有登入的單元均參予這種比較,因此以一種特別簡單的方式附帶監(jiān)視在未激活的爭用單元中包含的時間流程信息的遵守,它們例如是根據任務間通信不允許首先處理的那些任務。仲裁電路的這種操作方式下面簡稱為過載指示。
圖4表示出圖3的仲裁電路對上面敘述的兩種操作方式(優(yōu)先級分配以及過載指示)的不同信號的時間曲線。當要對一個爭用單元進行寫操作時,w信號線置為高值。借助在w信號線上的信號的上升邊仲裁電路過渡到優(yōu)先級分配的操作方式,在這種操作方式下,僅在未由PLA的功能電路的結果從該比較中排除的那些單元比較時間流程信息。同時借助在w信號線上的高值信號為此目的在c信號線上置一高值,以便激活f位的作用。在c信號線上的高值信號在持續(xù)時間t內施加,該時間是為在一個爭用單元上實行寫操作需要的持續(xù)時間加上由仲裁電路邏輯產生的信號延遲。在一段另外的持續(xù)時間t之后,也就是說,通過c信號線上的信號的下降邊起a信號線上的信號置為高值,以便把通過在圖3中表示的邏輯連接得到的所有允許單元的t位的比較結果在仲裁電路的每一D-FF中鎖定(latchen)。當仲裁電路A的觸發(fā)器D-FF的邏輯連接的結果改變時,則在IRINW信號線上對處理器CPU提出中斷請求。為避免優(yōu)先級分配對過載指示的操作方式有影響,同時,也就是說,同樣在c信號線的高值信號的上升邊和在持續(xù)時間2t對信號線b置低值,它封鎖把比較器COMP的結果鎖定在一個為過載指示裝備的觸發(fā)器RS-FF中的脈沖。在持續(xù)時間t過去之后,通過信號線b再釋放該封鎖。
在b信號線的信號上升邊,仲裁電路A再次過渡到過載指示操作方式,在這種操作方式下,周期地比較爭用部件的所有被占用的單元,而不依賴于由f位(PLA功能電路)指示的這些單元的狀態(tài)。這由c信號線上的低值信號實現。使比較器COMP的結果(高或低)鎖定在觸發(fā)器RS-FF中的脈沖的封鎖通過在b信號線上的高值信號釋放。為避免該操作方式影響優(yōu)先級分配,通過在a信號線上的低值信號保證在過載指示操作方式下仲裁電路邏輯無任何輸出被鎖定在觸發(fā)器D-FF中。
在圖3中詳細繪出的爭用單元的單個位通過仲裁電路邏輯的邏輯連接對專業(yè)人員來說從圖中可以理解,下面不再詳細解釋。
當在仲裁電路A的上述優(yōu)先級分配的操作方式中比較時間流程信息時確定,剛剛查明的帶最小時間流程信息的爭用單元是另外的一個,而與最后一次比較中查明的不同,也就是說,當查明爭用部件PCU的一個新的選中單元CC時,則執(zhí)行下述步驟(見圖2)(21)在中斷線IRINW上給處理器CPU傳送一個中斷請求以便實行任務切換;(25)作為對在(21)中的中斷請求的響應,由處理器CPU在CPU地址總線的c段置一備用碼,例如0X00,以便指示,該處理器CPU希望讀取選中單元的i位。在地址總線的s段置指示選中單元的i位的地址;(26)如果在傳輸部件ADAWSG未置ACCESSDISABLE(存取禁止)信號的話(爭用部件正由初始化部件占用),則在該部件的R/W輸入端置一個READ信號并且讀取選中單元的i位。i位的內容用于在數據處理設備的任務控制塊中找出處理所屬任務需要的信息。以同樣的方式讀取選中單元的地址,因為很可能在晚些時候用它進行任務間的通信,通過該通信改變爭用單元的f位。
當在過載指示操作方式下由比較器COMP的輸出端的高值信號確定,不能按時處理一個任務的話,則執(zhí)行下面另外的步驟(31)在中斷信號線IRIO上給處理器CPU傳送一個中斷請求,以表示過載狀態(tài);(32)在地址總線的c段置一預先規(guī)定的碼,例如0XFF,以表明現在要處理已清掉過載信號的那個單元。為確定哪個單元清掉了過載信號,為此需要使用中斷應答信號INT-ACK,把仲裁電路的結果鎖定在觸發(fā)器D-FF中。在該時刻IRINW信號線被封鎖;(33)清掉過載信號的單元的i位由ADAWSG讀取,和
(34)在R/W信號線上置READ信號,以便向處理器CPU傳送這些i位,這些i位由CPU的予裝中斷處理子例程分析。該子例程進行所有必要的處理,例如,當確定為處理所屬進程的任務需要大于2n脈沖周期時(n=計數器CUP的寬度)則該中斷子例程重新計算分配的爭用單元的t位,以至于余下的碼能夠按照EDF繼續(xù)處理(參考圖3)。
為改變一個爭用單元的t位,需要執(zhí)行下述步驟(35)將改變了的t位的內容置于CPU的數據總線上;(36)在R/W信號線上置WRITE信號;(37)t位的內容裝入加法寄存器;(38)t位的內容與計數器CUP的內容相加形成一個n+1位的結果,其寫入相應爭用單元的t位中。
以這種方式也可以在這種結構的內部實現例如無限循環(huán)。
n位計數器CUP將按照2n.p的時間單位表示溢出。這種溢出用于將所有占用的爭用單元CC的t位的MSB(最有意義位)復位,之后,爭用部件PCU的所有單元的絕對時間信息重新由計數器CUP同步。
在每一爭用單元CC中,裝備有多個f位,以便實現任務間的通信,例如信號機,事件標志或者信息箱。通過f位,定義一個邏輯功能電路PLA,它的結果(0或者1)指示,爭用部件PCU的指定單元是否參與由仲裁電路A進行的t位的比較。下面以一信號機和信息箱為例詳細敘述其流程。
信號機可以通過一個由多個結構組成的陣列管理,其中每一結構又帶兩個元件。每一結構通過信號機標識表明。該陣列的每一結構的第一元件是一個標志,它指示該信號機是否被占用。第二元件是一個表,它包含那些爭用單元的變址,分配給這些單元的任務等待該信號機。
為用標識id=i置位信號機,需進行下述流程步驟如果第i個結構的第一元件指示,該信號機未被置位,則分配給該元件一個值,它指示信號機被置位,任務繼續(xù)運行。否則正被處理的任務的單元變址寫入第i個結構的第二元件的表中,和該任務分配的f位置位。該運行的任務現在是否從由仲裁電路執(zhí)行的對t位的比較中排除,依賴于上面敘述的邏輯功能電路PLA的結果。
為用標識id=i復位信號機,相反需進行下述流程步驟在陣列中找出第i個結構,如果第二元件的表空,則給該結構的第一元件分配一個值,它指示信號機被復位,否則將爭用單元中分配的f位復位,其變址由第i個結構的第二元件的表中的第一個登錄項給定。
以相似的方式可以在進程之間交換信息。每一信息箱支持兩張表,第一張表有等待信息的進程的單元變址連同接收信息的地址(=數據指針),第二張表帶有信息數據。信息箱的結構同樣按照一個陣列來組織。每一信息箱通過一個信息箱號碼標識。
當一個進程要從信息箱號碼為m的信息箱接收信息時,它將尋找陣列中的第m項。如果信息數據的表不空,則從該表中取出第一登錄項并復制到一個自己的變量中。該進程可以繼續(xù)運行。然而如果信息數據的表是空的,則該進程的單元變址記入第一表的第一位置,而準備接收其信息的一個本地變量的地址(=數據指針)記入第二位置。在這一位置該進程必需等待信息并把分配的爭用單元的相應的f位置位,以便把該進程從下一個對t位的比較中排除,從而自動地實現任務切換。
當一個進程要向信息箱號碼為m的信息箱發(fā)送一個信息時,它將在陣列中尋找第m項。如果信息數據不空,則把該信息復制到由第一表的第二位置給出的數據指針指示的位置。然后,所屬爭用單元的f位復位,以便該單元能夠參與后繼的對t位的比較。然而,如果單元變址為空,則該數據簡單地記入第m個結構的信息數據表中。
此外本發(fā)明的設備的一個優(yōu)點,還在于PICU設備除執(zhí)行動態(tài)優(yōu)先級分配和過載指示以外,還附帶管理信號機和郵政信箱。因此操作系統可以進一步減輕負荷,并提高處理器的負荷。
最后必須申明,本發(fā)明并不局限于所敘述的實施例。代替由仲裁電路執(zhí)行絕對時間信息的比較,在一個此處未敘述的根據本發(fā)明的設備的實施形式中可以使用由一個二進制的、向下計數的計數器來實現每一爭用單元,在其中登入一個進程的相對時間流程信息,使得每一爭用單元的時間流程信息相應于一個向下計數的計數器的脈沖速率而減小。使用二進制計數器雖然制造成本略高,然而此情況在小型PICU設備中卻可由下述方面抵消,即不再需要加法寄存器以計算絕對時間信息和仲裁電路邏輯的結構可以簡化。
權利要求
1.一種由實時數據處理設備的處理器處理多任務的方法,其中每一任務按照一個動態(tài)分配的優(yōu)先級獨立地、并且在一個預先規(guī)定的時間段內由一處理器處理,該方法包括下述步驟-對一個要處理的任務建立一個初始化單元(IC),它帶有一定數目的t位和一定數目的i位,t位中包含時間流程信息,i位中包含變址信息,并且把該建立起來的初始化單元登入一個爭用部件(PCU)的一個空單元(CC)中,在該爭用部件(PCU)中為每一個由處理器(CPU)處理的任務分配一個這樣的單元(CC),-比較該爭用部件(PCU)的所有單元(CC)的t位包含的時間信息,以查明包含最小時間流程信息的那個任務,和必要的話給處理器(CPU)發(fā)送一個中斷信號(IRINW),以便在查明的任務與正由處理器(CPU)處理的先前查明的任務不一致時開始處理新查明的任務。
2.根據權利要求1的方法,其特征在于,該時間流程信息規(guī)定,在該時間段內該任務的處理要完成,而變址信息指向數據處理設備的任務控制塊。
3.根據權利要求1或2的方法,其特征在于,初始化單元(IC)由進程初始化部件(PIU)建立,其中為每一允許的外部事件-其可以發(fā)出一個要由處理器(CPU)處理的任務的信號-包含一個帶預編碼的或者由處理器(CPU)初始化的t位的初始化單元(IC)。
4.根據權利要求1或2的方法,其特征在于,對每一要處理的內部任務,例如一子任務,由處理器(CPU)建立爭用單元(CC)的t和i位并登入爭用部件(PCU)中。
5.根據權利要求1到4中任何一個權利要求的方法,其特征在于,在爭用部件(PCU)的每一單元(CC)配備一個r位,它指示該單元是否被占用,并且在把一個初始化單元(IC)登入爭用部件(PCU)的一個單元(CC)之前檢驗該r位,以確定該單元空或不空。
6.根據權利要求1到5中任何一個權利要求的方法,其特征在于,在一個初始化單元(IC)的t位中包含的相對時間信息在登入爭用部件(PCU)的一個空單元(CC)之前加上一個向上計數的計數器(CUP)的值,以產生一個絕對時間信息,該值將登入爭用單元(CC)的t位中。
7.根據權利要求1到5中任何一個權利要求的方法,其特征在于,在一個初始化單元的t位中包含的相對時間信息直接登入爭用部件的一個單元中,以及所有爭用單元的t位的內容相應于一個向下計數的計數器的脈沖速率而減小。
8.根據權利要求1到7中任何一個權利要求的方法,其特征在于,爭用部件(PCU)的每一單元(CC)包含f位,它設計用于任務之間的通信,例如信號機、事件標志和信息箱,通過該f位,可以暫時抑制一個爭用單元(CC)參與比較在t位中包含的時間流程信息。
9.根據權利要求1到8中任何一個權利要求的方法,其特征在于,爭用單元時間流程信息的比較僅在對爭用部件的寫操作發(fā)生后,至少改變了一個爭用單元(CC)的狀態(tài)后執(zhí)行。
10.根據權利要求9的方法,其特征在于,不依賴爭用單元(CC)的狀態(tài),另外周期地比較所有占用的爭用單元(CC)的時間流程信息,只要確定一個任務不能在t位中規(guī)定的時間內處理完,便指示過載。
11.在一個預先規(guī)定的時間期間、在一個處理器中按照一個動態(tài)分配的優(yōu)先級處理多任務的設備,其特征在于,為一個要處理的外部任務,它有供建立一個初始化單元的設備(PIU,CPU),該單元至少由包含時間流程信息的一定數目的t位和包含變址信息的一定數目的i位組成;它有為把每一要處理的任務的初始化單元登入一爭用部件(PCU)中的設備,為此在其中裝備了多個爭用單元(CC);它有為比較爭用部件(PCU)的所有為一個任務分配的單元(CC)的t位中包含的時間信息的設備(A),以查明包含最早運行時間信息的那個任務;以及配備其它為給處理器(CPU)發(fā)送中斷信號(IRINW)的設備,以便在新查明的任務與正由處理器(CPU)處理的先前查明的任務不一致的場合開始處理新查明的任務。
12.根據權利要求11的設備,其特征在于,建立初始化單元的設備是一個進程初始化部件(PIU),其中為一個要處理的外部任務配備一個帶預編碼或由處理器(CPU)初始化的t位的初始化單元(IC)。
13.根據權利要求12的設備,其特征在于,建立初始化單元的設備是處理器(CPU)自身,例如為產生一個子任務。
14.根據權利要求11到13中任何一個權利要求的設備,其特征在于,比較在爭用單元(CC)的t位中包含的時間流程信息的設備是一個仲裁電路(A)。
15.根據權利要求11到14中任何一個權利要求的設備,其特征在于,它有為檢驗爭用單元(CC)的一個r位的設備(FREECELL),其指示該單元是否被占用。
16.根據權利要求15的設備,其特征在于,它還有為置位和復位爭用部件(PCU)的每一單元(CC)的f位的設備,其設計用于任務之間的通信,例如信號機,事件標志或信息箱,通過這些設備可以暫時抑制一個爭用單元(CC)參與在t位中包含的時間流程信息的比較。
17.根據權利要求11到16中任何一個權利要求的設備,其特征在于,它有為把一個向上計數的計數器(CUP)的內容加在一個初始化單元(IC)的t位中包含的相對時間信息上的設備,以產生一個絕對時間信息,其登入爭用部件(PCU)中分配的單元(CC)的t位中。
18.根據權利要求11到16中任何一個權利要求的設備,其特征在于,它有為按照向下計數的計數器的脈沖速率減小在每一爭用單元的t位中包含的相對時間信息的設備。
19.根據權利要求17的設備,其特征在于,它有為與一個向上計數的計數器(CUP)比較所有被占用的爭用單元(CC)的最小時間流程信息的設備(COMP),以便在最小時間流程信息的值小于計數器(CUP)的值時指示過載。
20.根據權利要求18的設備,其特征在于,如果最小時間流程信息達到零值時,它有指示過載狀態(tài)的設備。
21.根據權利要求19或20的設備,其特征在于,另外還設計有封鎖過載指示的若干設備(b)。
全文摘要
實時數據處理設備中處理多任務的一種設備和方法,其中每一任務按照其緊迫性動態(tài)分配一個優(yōu)先級。為此為每一要處理的任務建立一個帶一定數目的t和i位的初始化單元(IC),并把該初始化單元登入一個爭用部件(PCU)的一個空單元(CC)中。比較爭用部件(PCU)的所有單元(CC)的t位中包含的時間流程信息,查明包含最小時間流程信息的那個任務。如果與先前查明的任務不一致,則給處理器發(fā)送一個中斷信號(IRINW),開始處理新查明的任務。
文檔編號G06F9/48GK1143778SQ9610999
公開日1997年2月26日 申請日期1996年8月16日 優(yōu)先權日1995年8月18日
發(fā)明者X·Y·何 申請人:西門子公司