專利名稱:用于在數據處理中規劃流程的電路裝置的制作方法
技術領域:
本發明涉及一種用于數據處理系統的電路裝置,該數據處理系統用于借助中央處理單元處理多個任務,還涉及一種用于在處理數據的系統中處理多個任務的相應的方法。
背景技術:
在例如計算機-微處理器系統、控制單元、外設單元的處理數據的系統中以及在其它處理信息的系統中,為了計算的目的而經常使用所謂的CPU (中央處理單元)作為計算機的中央處理單元但是或者還僅使用簡單的算術邏輯單元(ALU)。此外,為了存儲程序和數據而采用相應的存儲器,如RAM、ROM、EPROM、EEPROM等。處理器或CPU處理程序或執行程序。該程序在此一般由不同的子程序組成,這些子程序必要時又可以致力于不同的任務(task)。在此稱為多任務。在此,根據當前的情景,即在該時刻有哪些任務請求處理,決定哪個任務應當通過CPU處理。在此可以考慮向不同的任務分配不同的優先級,從而在處理這些任務時注意被分配給相應任務的優先級并且相應地提前處理具有最高優先級的任務。這例如通過所謂的中斷來完成。中斷是程序的短暫中止,以執行對其它任務的其它的、優先級更高的或時間關鍵的處理。在此首先提出中斷請求,接著執行中斷例程并且中止在先執行的任務,并且在結束該中斷之后繼續在中止位置處的任務。這意味著,一般在此過程中提前處理具有比正在處理的任務更高的優先級的任務的當前請求,并且為此中止已經在處理中的任務。在此,所涉及的中斷促使CPU跳至相應的程序段。上述多任務也可以作為所謂的“時間共享”來起作用,其看起來同時為多個用戶提供服務。通常多任務表示CPU的并行地執行多個任務(Tasks)的能力。在此,不同的過程總是以如此短的間隔交替地被激活,使得產生同時的印象。但是對分配給各個任務的優先級的選擇以及高優先級的任務的處理時間可能導致具有低優先級的任務很少、甚至在極端情況下根本不被處理。這可能在以下情況下是這樣:上述中斷請求近似持續地到來,由此與其它任務相比低優先級的任務的相關性在此不能完全結束。在這種情況下,需要采取保證所謂的最差情況執行時間(WCET)并由此對每個待處理的任務都保證有最低量的CPU的工作容量的措施。但是在過去已經表明,這樣的保證可能非常費事并且此外可能限制底層系統的效率。此外在此需要中斷控制器,其還必須配備優先級控制。已經描述過,如何可以通過所有任務、包括沒有請求的任務的周期性詢問來決定應當處理哪些任務。為此介紹了一種電路裝置,其實施在處理數據的架構中并且配置為向提供給系統的處理單元相應地提供待處理的任務。在此,該電路裝置進行控制,使得處理單元的處理容量均勻地以及與相應任務的要求無關地劃分給各自的任務直至其相應的處理,并且在時間上錯開地向相應的任務分配處理單元來用于處理。由此實現了,每個任務在特定的時間內、尤其是在上述最差情況執行時間(WCET)內自動被處理,而與事先進行的優先級分配無關。兩個在流程規劃中所涉及的規劃時間之間的時間間隔在此始終等于任務數量N乘以一個任務相應被處理的時鐘持續時間Τακ。該參量下面也稱為任務T的執行時間。此外,已經介紹了實施用于規劃流程的經過修改的算法的電路裝置,其中對所謂的主動任務設置優先級。無效任務反正不使用ALU或CPU的計算容量,在此不連同引入流程規劃內,由此平均起來實現了處理的加快。但是在處理任務/數據時在此進行的周期性優先級變換存在以下缺點:所基于的用于流程規劃的算法在具有多個所謂的流水線級的處理系統中可能導致執行時間T大于由任務數量N與時鐘持續時間Τακ組成的上述乘積。據此期望的是設置一種可能性使得可以這樣來利用中央計算單元或CPU的所提供的工作容量,即通過簡單的方式保證當前請求處理的每個待處理的任務都在特定的時間內被處理完,其中還保證不超過最大的執行時間。在此背景下提供一種根據權利要求1的電路裝置以及一種具有權利要求10的特征的相應方法。按照本發明所設置的電路裝置例如可以以處理數據的架構實施,并且相應地向提供給處理數據的系統的處理單元(例如CPU或ALU)分配當前待處理的任務。按照本發明提出的電路裝置以及按照本發明提出的方法的合適實施方式分別由從屬權利要求和說明書
全A屮
口 ED ο
發明內容
根據本發明建議了一種用于處理數據的系統、尤其是用于周期性的數據處理系統的電路裝置,該系統用于借助中央處理單元處理多個任務,該中央處理單元具有分配給該中央處理單元的處理容量。在此該電路裝置被配置為,給相應的任務時間錯開地分配處理單元以用于處理,控制所述任務按照預定的順序被處理并且在該順序中沒有當前處理請求的任務在處理時被跳過。根據本發明,該電路裝置在此包括優先級順序調節裝置,其被設計為確定按照何種順序來處理所述任務,其中在每次當前選擇一個用于處理的任務時重新確定處理所述任務的順序,并且控制所述選擇,使得直到主動任務重新被分配處理單元的處理容量為止,對于數量為N的任務最多經過N個時間單位。按照本發明所設置的電路裝置包括用于在周期性數據處理系統中對任務進行流程規劃的算法,其中分析所有任務的活動狀態,以從而對相應的數據處理進行加快。此外在電路裝置中實施的該算法保證最大的執行時間T = N * Tm,從而在任何情況下都不會超過開頭提到的最差情況執行時間。按照本發明建議的電路裝置或按照本發明建議的方法可以在所謂的通用定時模塊(GTM)的多通道序列器(MCS)中實施。在此,多通道序列器操作多個通道。根據本發明可以規定,所述電路裝置被配置為,將每個待處理的任務分別分配給具有自己的寄存器的通道,并且根據相應任務向處理單元的分配來選擇相應的寄存器并將該寄存器與處理單元連接。此外可以規定,所述電路裝置可以被配置為分別將處理單元分配給具有當前處理請求的每個任務(即每個所謂的主動(aktiven)任務)一段恒定的并且對于所有主動任務來說相同的持續時間。作為被動任務,在此是指沒有當前處理請求的任務,也就是當前沒有通告處理的任務。而主動任務在當前說明書的范圍中是提出當前的處理請求并且相應地通告該處理請求以使得其在通過處理單元進行處理時受到考慮的任務。因此,按照本發明設置的電路裝置規定,將設置在處理數據的系統中的處理單元(例如ALU或CPU)的處理容量或計算容量均勻地劃分到所有主動任務(Tasks)。根據按照本發明設置的電路裝置的另一種實施方式中,連貫地提供給每個任務(即每個Task)的持續時間在此恰好等于處理單元的一個時鐘。在此,在按照本發明設置的電路裝置中設置優先級順序調節裝置,借助它確定將以或者應當以什么順序來處理所述任務。根據本發明這意味著在每次當前選擇一個用于處理的任務時分別重新確定處理所述任務的優先級順序。根據本發明的一種實施方式,在此規定待處理的任務的順序通過列表(下面稱為優先級列表)來確定,該列表具有優先級逐漸增大的列表位置,然后將當前選擇要處理的任務置于具有最低優先級的列表位置處。該優先級列表始終具有相同的長度,即與任務數量相等的相同的列表位置數量。最后一個列表元素在此表示在有待處理的流程規劃步驟中以最高優先級被處理的任務。優先級列表的前一元素在此表示在當前流程規劃步驟中以第二高優先級被處理的任務,依此類推。 優先級列表在電路裝置的電路復位時刻以下列值初始化:
L_[i]=i,對于所有 i=0,…,N-1。 根據本發明電路裝置的另一實施方式規定,在列表中向沒有當前處理請求的任務分配的列表位置保持相同,但是在沒有當前處理請求的任務下方旋轉,使得向沒有處理請求的、具有當前最高優先級的任務分配具有最低優先級的列表位置。此外,在另一種實施方式中所述電路裝置被配置為,向每個任務分別分配具有自己的寄存器的通道,并且根據相應任務向處理單元的分配來選擇相應的寄存器并且與處理單元連接。在此,將處理單元分別最遲在最大等待時間之后并且于是在恒定的以及對于所有主動任務都相同的持續時間中分配給每個具有當前處理請求的任務。該持續時間可以等于處理單元的時鐘周期的一個時鐘。根據電路裝置的一種可能的設計,所定義的最大等待時間由任務數量與恒定的持續時間(時間單位)的乘積給出,在該持續時間內該處理單元被分配給用于處理的相應任務并且與該任務連接。此外本發明的電路裝置可以被配置為,在具有多個流水線級的流水線中設置對作為主動任務的具有當前處理請求的任務的相應通道的相應寄存器的指令的處理,其中該相應的寄存器在處理時刻被切換為流水線的相應被提供時鐘的流水線寄存器,并且在一個時間段中并行的、但是分別針對不同通道來處理所述流水線級。在此,針對第一主動任務的指令解碼和存儲器訪問按照合適的方式分別在以下時間段中進行,在所述時間段中向至少一個第二主動任務分配處理單元。此外,本發明涉及一種用于在處理數據的系統中、尤其是在周期性數據處理系統中借助中央處理單元處理多個任務的方法,該處理單元具有分配給該處理單元的處理容量。在此規定,時間錯開地向相應的任務分配處理單元以用于處理,按照預定的順序處理這些任務,并且在處理中跳過在該順序中沒有當前處理請求的任務。在此,按照這些任務應當被處理的順序對這些任務設置優先級,并且在每次選擇當前要被處理的任務時重新確定處理任務的順序,其中這樣來控制所述選擇,使得直到主動任務重新被分配處理單元的處理容量為止,對于數量為N的任務最多經過N個時間單位。本發明的其它優點和設計由描述和附圖給出。應當理解,上述和下面還要闡述的特征不僅可以分別說明的組合,而且還能以其他組合或單獨地使用,而不會脫離本發明的范圍。
圖1示出其中可以執行按照本發明建議的方法的架構模型。圖2示出流水線的一種可能實施方式,根據該流水線可以進行根據按照本發明建議的方法的指令處理。圖3以示意圖示出本發明電路裝置的實施方式。
具體實施例方式借助附圖中的實施方式示意性示出本發明,并且參照附圖示意性詳細描述本發明。在此給出結構和功能方面的詳細描述。按照本發明建議的方法的或按照本發明設置的電路裝置例如可以實施在所謂的通用定時模塊(GTM)的多通道序列器(MCS)中,其中這種多通道序列器的一種可能架構在圖1中示出。在此所示的多通道序列器(MCS)IOO操作多個通道,例如8或16個,這與待處理的任務相等。這意味著每一個待處理的任務都被分配一個通道。MCS100具有中央處理單元10 (例如ALU)以及存儲器20 (例如RAM)。在這里所示的情況下,在MCS —側操作N個通道,其中每個通道擁有自己的微程序,該微程序安放在所述存儲器的不同位置處。為了處理該程序,每個通道擁有自己的指令寄存器(IR) 35、自己的指令計數器(PC) 25、自己的狀態寄存器(STA) 45和自己的所謂通用寄存器(GPR) 55,它們在當前的圖中用0...Κ_1表示。這意味著,在這里所示的MCS架構中示出N個指令寄存器(N*IR) 35、N個指令計數器(N*PC)25和N個狀態寄存器(N*STA)45。此外每個通道擁有自己的接口 30,例如ARU接口,通過該接口可以異步地、也就是無需等待相應通道的處理地在相應的GRP55中更新數據或者可以輸出數據。現有接口 30的數量等于通道的數量,其通過分別代表接口的符號的示意性“重疊”來清楚表示。同樣地適用于多個指令寄存器35、多個指令計數器25、多個通用寄存器55以及多個狀態寄存器45和ABC寄存器65。為了同步的目的而阻止通道的處理,這意味著待執行的運算以及由此相應通道的其它程序流程要在所請求的數據通過相應的、分配給相應通道的ARU接口 30輸入或取走時才進行。此外在這里所示的架構中規定,通道的ARU接口 30分別通過自己的檢查位寄存器(ACB) 65來完善。檢查位借助GPR55的數據被轉發給ARU接口 30或借助每個ARU讀取指令來更新。通道的阻止狀態通過對相應的位(例如在狀態寄存器(STA) 45中)置位來通告。所有其它通道繼續處理它們的程序。阻止指令的取消異步地(也就是與該通道是否位于流水線中無關)通過ARU接口 30引起,只要通用寄存器55的數據被接收到或被發送了。所有被MCS100操作的通道在這里所示的架構中都使用相同的中央算術邏輯單元10 (ALU)、相同的指令解碼器40、相同的指令預解碼器50、相同的存儲器20和用于存儲器20的相同的地址解碼器15,如在圖1中所示的。在這里所示的MCS架構100中,主CPU經由主CPU接口 60通過存儲器20 (RAM)干預流程,也就是說,數據在為此預留的周期中從主CPU的握手接口 60發送或發送給該握手接口 60。根據按照本發明設置的電路裝置的一種可能實施方式對指令/任務的處理在具有多個流水線級的流水線中進行。在此,優選區分4個流水線級。流水線或指令流水線表示一類流水線,利用其將對指令的處理分解為與流水線級數量相等的子指令,其中多個通道(即任務)的流水線級可以并行地執行,但是分別針對其他通道(參見圖2)。這意味著,不是在處理單元的處理周期期間完全處理任務,而是僅分別處理子任務,但是在此同時處理多個任務的不同子任務。流水線級在此優選可以是:
O級:RAM訪問解碼 I級:RAM訪問 2級:指令預解碼 3級:指令處理。在O級中首先形成用于在下一流水線級中有待處理的RAM訪問的地址和控制信號。RAM訪問可以是讀取數據或指令或者是寫入數據。在讀取指令的情況下從所涉及的指令計數器(PC)中形成地址。O級在圖1和圖2中分別用附圖標記O表示。然后在I級中訪問工作存儲器20 (RAM),其中從工作存儲器20中加載相應的指令。I級在圖1和圖2中分別用附圖標記I表示。然后在2級中借助指令預解碼器50進行指令預解碼。2級在圖1和圖2中分別用附圖標記2表示。最后在3級中進行指令處理,該指令處理對于所有任務都通過同一處理單元10(例如ALU)進行。3級在圖1和圖2中分別用附圖標記3表示。所有流水線級或流水線階都被并行處理,但是分別針對其他通道或針對分配給相應通道的任務。但是,根據在此提出的電路裝置,該處理僅針對主動任務或與此關聯的有效通道進行。這類時間處理在圖2中借助所謂的流水線流顯示。如果通道(;204首先以對RAM地址的解碼開始(O級),則通道Ca在下個時鐘中執行RAM訪問(I級),而通道Cb206進行對RAM地址的解碼(O級)。分別在圖1中通過25和35顯示的相應的自己的寄存器N*PC和N*IR根據通道而被自動連接上。僅需要一個處理周期的執行時間的指令在3級中處理來自自己的寄存器的操作數200并且必要時處理操作數300,或者處理來自指令字的直接操作數,并且將結果寫回到相應的寄存器中。為了將數據寫回到存儲器20 (RAM)中,需要另一個處理周期。為此在相應通道的狀態寄存器STA45中引起在下一個指令周期中的寫回操作的位置位。這意味著,如果又在O級中處理相應的通道,則對相應的RAM地址解碼,并且然后將數據在I級中從相應的通用寄存器(GPR) 55寫入存儲器20 (RAM)中。類似的對來自存儲器20 (RAM)的操作數也是這樣。為了將數據從存儲器20 (RAM)加載到相應的GPR檢測器55中需要完整的流水線流程。然后在下一個處理周期中才可以處理所述操作數。對于需要多個處理周期的指令,要注意相應的任務或相應的通道保持有效,也就是相應的請求信號RDYi保持置位,直到該指令被完全處理為止。專用寄存器TRG75提供通道相互觸發的可能性。通道本身可以通過涉及時間或位置的信號(TBU時基單元)85將事件置于當前時間參照中,或者依據位置來控制事件。該比較在處理單元10或ALU中執行,其中例如由TBU (時基單元,在此未示出)可以提供操作數85。相應的通道期望對相應接口 30或ARU接口的數據進行訪問,并且通過阻止讀取來保證不可能導致數據的不一致。指令預解碼器50使得可以在下一個運行周期中從存儲器20 (RAM)提供數據。為此將RAM數據轉換為指令,該指令將該數據寫入所請求的目標寄存器中。此外,指令預解碼器50負責在阻止指令激活時(檢查寄存器中的相應位被置位)后續的指令從前面的流水線級中被丟棄。在阻止指令仍然有效時,后續的指令已經在O級流水線和I級流水線中被處理并且從RAM傳送出去,并且在2級流水線中決定該指令現在是否在后續的3級流水線中被處理(如果阻止指令異步地經由ARU接口結束)或者被丟棄(如果阻止指令仍然有效)。根據按照本發明設置的方法和按照本發明設置的電路裝置,首先確定哪個通道、即哪個任務應當分別在處理周期的范圍內作為下一個來處理。本發明的方法為了確定將作為下一個處理的通道,也就是在下一個時鐘周期中被插入到流水線級O級中的通道而設置一種算法,該算法借助列表,即所謂的優先級列表Lp-進行流程規劃。該流程規劃將在下面在圖3中更詳細闡述。優先級列表Lpkm總是具有相同的長度,也就是與待處理任務的數量N相等的相同列表位置數量。在該優先級列表中,每個元素包含通過標識號(ID)至任務的唯一分配,并且在該列表中的順序確定該任務被處理的優先級。每個標識號在該列表中恰好出現一次。優先級列表的列表位置用LPKM[i] (i=0, “.,Ν-1)表不。最后一個列表兀素Lpeio[Ν-1]在此表示在有待處理的流程規劃步驟中以最高優先級處理的任務。前一個元素Lpeio[Ν-2]在此表示在當前流程規劃步驟中以第二高優先級處理的任務,依此類推。該列表在電路復位的時刻用以下 值初始化:
L_[i]=i,對于所有 i=0,…,N-1。現在在一個時鐘周期內確定插入流水線級O級中的通道S,也就是說該通道被分配的任務將作為下一個來處理。
權利要求
1.一種用于處理數據的系統的電路裝置,該系統用于借助中央處理單元處理多個任務,該中央處理單元具有分配給該中央處理單元的處理容量,其中該電路裝置被配置為,向相應的任務時間錯開地分配處理單元以用于處理,控制所述任務按照預定的順序被處理并且在該順序中沒有當前處理請求的任務在處理時被跳過,其中該電路裝置包括優先級順序調節裝置,其被設計為確定按照何種順序來處理所述任務,其中在每次選擇一個用于處理的任務時重新確定所述任務的順序,并且控制所述選擇,使得直到主動任務重新被分配處理單元的處理容量為止,對于數量為N的任務最多經過N個時間單位。
2.根據權利要求1所述的電路裝置,其中待處理的任務的順序通過列表來確定,該列表具有優先級逐漸增大的列表位置,并且將當前選擇要處理的任務置于具有最低優先級的列表位置處。
3.根據權利要求2所述的電路裝置,其中在列表中向沒有當前處理請求的任務分配的列表位置保持相同,但是在沒有當前處理請求的任務下方旋轉,使得于是要向沒有處理請求的、具有當前最高優先級的任務分配具有最低優先級的列表位置。
4.根據上述權利要求之一所述的電路裝置,其中所述電路裝置還被配置為,向每個任務分別分配具有自己的寄存器的通道,并且根據相應任務向處理單元的分配來選擇相應的寄存器并且與處理單元連接。
5.根據上述權利要求之一所述的電路裝置,其中所述電路裝置還被配置為,將處理單元分別最遲在最大等待時間之后并且于是在恒定的以及對于所有主動任務都相同的持續時間中分配給每個具有當前處理請求的任務。
6.根據權利要求5所述的電路裝置,其中所述持續時間作為時間單位等于處理單元的一個時鐘。
7.根據權利要求4至6之一所述的電路裝置,其中所述電路裝置還被配置為,在具有多個流水線級的流水線中設置對作為主動任務的具有當前處理請求的任務的相應通道的相應寄存器的指令的處理,其中所述相應的寄存器在處理時刻被切換為流水線的相應被提供時鐘的流水線寄存器,并且在一個時間段中并行的、但是分別針對不同通道處理所述流水線級。
8.根據權利要求7所述的電路裝置,其中針對第一主動任務的指令解碼和存儲器訪問分別在以下時間段中進行,在所述時間段中向至少一個第二主動任務分配處理單元。
9.一種用于在處理數據的系統中借助中央處理單元處理多個任務的方法,該處理單元具有分配給該處理單元的處理容量,其中時間錯開地向相應的任務分配處理單元以用于處理,按照預定的順序處理這些任務,并且在處理時跳過在該順序中沒有當前處理請求的任務,其中在每次選擇用于處理的任務時重新確定這些任務的順序,并且這樣來控制所述選擇,使得直到主動任務重新被分配處理單元的處理容量為止,對于數量為N的任務最多經過N個時間單位。
10.根據權利要求9所述的方法,其中向每個任務分別分配具有自己的寄存器的通道,并且根據相應任務向處理單元的分配來選擇相應的寄存器并且與處理單元連接。
全文摘要
本發明涉及一種用于處理數據的系統的電路裝置,該系統用于借助中央處理單元處理多個任務,該中央處理單元具有分配給該中央處理單元的處理容量,其中該電路裝置被配置為,向相應的任務時間錯開地分配處理單元以用于處理,控制所述任務按照預定的順序被處理并且在該順序中沒有當前處理請求的任務在處理時被跳過,其中該電路裝置包括優先級順序調節裝置,其被設計為確定按照何種順序來處理所述任務,其中在每次選擇一個用于處理的任務時重新確定所述任務的順序,并且控制所述選擇,使得直到主動任務重新被分配處理單元的處理容量為止,對于數量為N的任務最多經過N個時間單位。此外本發明涉及一種相應的方法。
文檔編號G06F9/46GK103176835SQ20121036305
公開日2013年6月26日 申請日期2012年9月26日 優先權日2011年9月27日
發明者E.貝爾, R.巴托洛梅 申請人:羅伯特·博世有限公司