專利名稱:多任務(wù)處理低功率控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及多任務(wù)處理控制器,它包含用于通過分時處理各含一系列指令的多個任務(wù)的微處理器,用于存儲多個所述任務(wù)的任務(wù)存儲裝置,比如ROM,以及用于存儲所述微處理器產(chǎn)生和使用的多種數(shù)據(jù)的數(shù)據(jù)存儲裝置,例如RAM。該多任務(wù)處理控制器適于用在鐘表領(lǐng)域中,下文中對應(yīng)列舉的實際應(yīng)用來公開本發(fā)明將是方便的。然而,可以理解的是本發(fā)明并不限于該應(yīng)用。
在鐘表領(lǐng)域的許多應(yīng)用是基于含有一系列順序指令的任務(wù)。通常用微計算機來執(zhí)行這種任務(wù)以此形成具備其要求功能的手表?,F(xiàn)有微計算機包含用于存儲待執(zhí)行的每一個任務(wù)的指令的只讀存儲器或ROM,用于實現(xiàn)執(zhí)行這些指令所需的操作的微處理器,以及用于存儲該微處理器形成和使用的多種數(shù)據(jù)的隨機存取存儲器或RAM。值得注意地該微處理器包含用于執(zhí)行算術(shù)和邏輯運算的算術(shù)一邏輯單元或ALU和用于存儲這些運算的結(jié)果的一系列寄存器??刂啤?shù)據(jù)和地址總線連接該微處理器、ROM、RAM和I/O接口以允許這些設(shè)備與外部設(shè)備之間的通信。
利用微計算機來實現(xiàn)這些任務(wù)常常由于若干嚴格限制的存在而難于達到。微計算機不僅必須實時執(zhí)行這些任務(wù)中的每一個。而且必須迅速響應(yīng)內(nèi)部產(chǎn)生或來自用戶的信號。理想地,還應(yīng)以功耗盡可能少的方式構(gòu)造和執(zhí)行這些任務(wù)。
手表設(shè)計者面臨的另一挑戰(zhàn)是用要求順序執(zhí)行一系列指令的任務(wù)來重現(xiàn)需同時發(fā)生的多種手表功能的操作。例如,可要求手表上的按鈕動作的同時使步進電機工作,而同時又使位置測定器旋轉(zhuǎn)。
為了解決該問題,已設(shè)計某些手表利用微計算機借助于多任務(wù)或分時處理技術(shù)同時執(zhí)行若干個任務(wù)。在多任務(wù)處理中,允許ROM中必須執(zhí)行的每一任務(wù)的部分依次運用微處理器。所執(zhí)行任務(wù)快速循環(huán)使得用戶看來每一任務(wù)正連續(xù)地并與其它任務(wù)同時地執(zhí)行著。
常規(guī)上是借助于稱之為調(diào)度程序部件的軟件機構(gòu)來實現(xiàn)由微處理器同時執(zhí)行任務(wù)。這種機構(gòu)以存儲在ROM中的一系列指令實現(xiàn),并管理上述由微處理器執(zhí)行的多種任務(wù)的順序。
雖然在計算機產(chǎn)業(yè)中其它地方普遍利用這種實施方式,但其不適于用在鐘表領(lǐng)域中。由調(diào)度程度部件引入額外指令的負擔(dān)使微處理器執(zhí)行的任務(wù)的有效規(guī)模增大,并同時使其在速度和功耗方面的性能降低。
為了使在任務(wù)管理中必須執(zhí)行的附加指令所導(dǎo)致的處理速度上的降低到最小,通常是使由微處理器依次執(zhí)行的任務(wù)部分的大小為若干個指令長,以使任務(wù)盡可能少地發(fā)生變化。然而,這減少了表對用戶輸入及其它對任務(wù)初始化的請求的反應(yīng)時間,這些輸入和請求只能在另一任務(wù)的若干指令已執(zhí)行之后起作用。
而且,由微處理器完成對許多任務(wù)的執(zhí)行還要求執(zhí)行該任務(wù)內(nèi)指令的一個或多個子程序。當(dāng)從現(xiàn)有多任務(wù)處理控制器中的一任務(wù)內(nèi)啟動子程序時,需要有附加指令,這樣在執(zhí)行子程序之后,可首先將表明任務(wù)以后將重新開始的指令的地址的程序計數(shù)器的值存儲在RAM中。還可要求將累加寄存器和變址寄存器中的值加以存儲。實現(xiàn)這些數(shù)據(jù)傳輸操作所需的額外指令進一步增大了微處理器所執(zhí)行的任務(wù)的有效規(guī)模,并降低其運行速度和功率損耗。
本發(fā)明的目的是提供一種減少或克服了現(xiàn)有技術(shù)的缺點的多任務(wù)處理控制器。
考慮該目的,本發(fā)明提供一種包含用于存儲多達N個各含有一系列指令的任務(wù)的任務(wù)存儲裝置,用于通過分時來處理所述N個任務(wù)的微處理器以及用于存儲所述微處理器產(chǎn)生和運用的多種數(shù)據(jù)的數(shù)據(jù)存儲裝置的多任務(wù)處理控制器,其特征在于所述微處理器還包含從硬件上實現(xiàn)用來以所述進程控制所述微處理器的運用的調(diào)度程序,以及用于存儲各為所述調(diào)度部件所用的N個程序計數(shù)器的程序計數(shù)器存儲裝置,以控制所述N個進程中各個指令序列,以便所述調(diào)度程序能夠在所述微處理器處理的任務(wù)改變時選擇不同的一個所述程序計數(shù)器,而無需從所述數(shù)據(jù)存儲裝置傳輸數(shù)據(jù)。
為每一任務(wù)配備單獨的程序計數(shù)器并以硬件實現(xiàn)調(diào)度程序使得能夠更有效地管理由微處理器所處理的任務(wù),允許程序計數(shù)器變化而不要求數(shù)據(jù)存儲裝置來回傳輸數(shù)據(jù),由此減少存儲在ROM中的指令數(shù)。避免了在任務(wù)管理期間執(zhí)行多個附加指令的需要,因此降低了控制器的功耗,增加了執(zhí)行任務(wù)的速度并減小了微處理器所處理部分的大小。所執(zhí)行的任務(wù)還可更快地循環(huán),由此改進控制器的響應(yīng)時間。
有益地,多任務(wù)處理控制器還包含用于每一任務(wù)存儲各累加值的分立的累加值存儲裝置,因此微處理器能夠在所述微處理器處理的任務(wù)改變時選擇不同的一個所述累加值,而不需要從所述數(shù)據(jù)存儲裝置傳輸數(shù)據(jù)。
該多任務(wù)處理控制器還可包括用于存儲每個任務(wù)的各個變址值的變址值存儲裝置,這樣當(dāng)所述微處理器處理的任務(wù)改變時所述微處理器能夠選擇不同的一個所述變址值,而無需要求從所述數(shù)據(jù)存儲裝置傳輸數(shù)據(jù)。
在本發(fā)明的另一實施例中,微處理器是可構(gòu)造的,以便依次處理X個所述任務(wù)中每一個的部分,其中1<X<N,剩余的N-X個任務(wù)中的一個或多個的程序計數(shù)器為所述微處理器所用以控制自所述X個任務(wù)之內(nèi)調(diào)用的子程序的指令序列。
因此,當(dāng)請求加以處理的任務(wù)數(shù)少于微處理器可處理的最大任務(wù)數(shù)時,剩下未用進程中一個或多個進程的程序計數(shù)器可以被使用以跟蹤從一個任務(wù)內(nèi)部調(diào)用的子程序的指令序列。因此重調(diào)用子程序時所用的程序計數(shù)器在已執(zhí)行了子程序時仍保持使用。本發(fā)明調(diào)度部件的利用致使調(diào)用子程序時所需的數(shù)據(jù)傳輸以及完成該數(shù)據(jù)傳輸所需的附加指令數(shù)最小。如上所述,這降低了控制器的功耗,增加了其響應(yīng)時間并達到更有效地管理其任務(wù)。
以下的描述更詳細地涉及本發(fā)明多任務(wù)處理控制器的各種特征。為便于理解本發(fā)明,參照以圖示出多任務(wù)處理控制器的最佳實施例的附圖來描述本發(fā)明??梢岳斫獗景l(fā)明的多任務(wù)處理控制器并不受限于附圖中所示出的最佳實施例。
附圖中
圖1是表示本發(fā)明多任務(wù)處理控制器一個實施例的操作原理的示意圖;
圖2是表示圖1多任務(wù)處理控制器所處理的進程的管理的示意圖;
圖3是表示圖1控制器相對不同級別子程序的任務(wù)結(jié)構(gòu)的示意圖;
圖4是表示圖1控制器對圖3示出的子程序的管理的示意圖;以及圖5是表示安排內(nèi)部和外部事件程序并用來請求由圖1控制器所執(zhí)行的進程的啟動的示意圖。
現(xiàn)在參見圖1,該圖總體示出了多任務(wù)處理控制器1,控制器1主要含有ROM2,指令寄存器/解碼器3,資源組4,事件存儲單元5,任務(wù)管單元6和用于存儲四個程序計數(shù)器Pc0,Pc1,Pc2和Pc3中每個的各寄存器。ROM2存儲控制器1用來實現(xiàn)所需功能的達四個任務(wù)的指令序列。這些任務(wù)中每一任務(wù)分別用一個程序計數(shù)器Pc0,Pc1,Pc2和Pc3以跟蹤其指令序列。由此利用每個程序計數(shù)器指向包含待執(zhí)行的任務(wù)內(nèi)下一指令的ROM中的存儲器單元。將會理解雖然在該實施例中使用了四個任務(wù)和四個相應(yīng)的程序計數(shù)器,但在本發(fā)明的其它實施例中可利用任何數(shù)量的任務(wù)和相應(yīng)的程序計數(shù)器。
包含在ROM2中的每一任務(wù)可由控制器1的外圍設(shè)備發(fā)送的外部事件信號啟動或由控制器1內(nèi)部發(fā)送的內(nèi)部事件信號啟動??蓪⒃S多這樣的信號提供給鐘表應(yīng)用中所采用的多任務(wù)處理控制器。這些事件信號被送至成組對它們進行處理的事件存儲單元5。盡管在其它實施例中提供另一數(shù)目的分組,該分組的數(shù)目可對應(yīng)于存儲在ROM2中的任務(wù)數(shù)。一旦從特定組收到任務(wù)事件信號,事件存儲單元5發(fā)送事件組信號到任務(wù)管理單元6。
任務(wù)管理單元6包含調(diào)度部件7、事件路由器8和兩個堆棧指鐘9和10。事件路由器8接收從事件存儲單元5發(fā)送的每一事件組信號并產(chǎn)生任務(wù)請求信號以請求ROM2中存儲的任務(wù)之一啟動。事件路由器8可為可構(gòu)造的,以便能夠選擇由每一任務(wù)請求信號請求啟動的任務(wù)。
調(diào)度部件7接收事件路由器8送出的任務(wù)請求信號并管理請求的每一任務(wù)的執(zhí)行。由控制器1根據(jù)調(diào)度部件7指明的任務(wù)依次處理每一激活任務(wù)(即已請求啟動的任務(wù))的部分。當(dāng)執(zhí)行每一任務(wù)時,用其程序計數(shù)器跟蹤在ROM2中哪一指令被執(zhí)行。當(dāng)一部分第一任務(wù)已執(zhí)行時,調(diào)度部件7通過使用第二任務(wù)的程序計數(shù)器指出下一有待處理的指令而使部分第二任務(wù)被加以處理。由于第一任務(wù)有其自己的程序計數(shù)器,可容易地使每一任務(wù)的執(zhí)行暫停然后在正確的指令重新開始。
尤其,每一程序計數(shù)器的值在每次剛執(zhí)行完其相對應(yīng)的任務(wù)的一部分時不必傳輸?shù)讲⒋鎯υ诳刂破?中別處的數(shù)據(jù)寄存器中,而每次要執(zhí)行其任務(wù)的新一部分時也不必傳回到并存儲在公共程序計數(shù)器中。有益地,這使得控制器1執(zhí)行的一個或多個任務(wù)部分僅為一個指令長,以便使控制器1的響應(yīng)時間最短。
如后文將解釋的,可利用一個或多個程序計數(shù)器啟動某一任務(wù)之內(nèi)的子程序。當(dāng)調(diào)用子程序時,當(dāng)前使用的程序計數(shù)器被保存,以便在執(zhí)行了該子程序后可以執(zhí)行后面的指令。堆棧指針9和10用來指出啟動子程序時未用的程序計數(shù)器,然后用該程序計數(shù)器跟蹤該子程序中的指令序列。因此調(diào)用子程序時所用的程序計數(shù)器被保存以便跟蹤在執(zhí)行了子程序后將繼續(xù)的指令序列。
資源組4包含算術(shù)邏輯單元或ALU11,隨機存取存儲器或RAM12,累加器組13和變址寄存器組14。該后一組寄存器僅在控制器1所執(zhí)行的任務(wù)運用變址尋址時需要。
ALU11和RAM12是共享資源,并可由控制器執(zhí)行的所有任務(wù)進行訪問。從下述方式用信號來控制對控制器1的共享資源的訪問。當(dāng)一任務(wù)使用共享資源時,所選數(shù)據(jù)寄存器中一經(jīng)被置為忙。當(dāng)該任務(wù)已結(jié)束使用共享資源時,該位被置為空閑。所有想訪問共享資源的任務(wù)測試該位的狀態(tài),若該位已被較早任務(wù)置為忙,后面的任務(wù)必須等等直到該位被置為空閑。
累加寄存器組13由四個累加器13a,13b,13c及13d組成,而變址寄存器組14由四個變址寄存器14a、14b、14c和14d組成。與程序計數(shù)器Pc0至Pc3一起,累加器13a至13d和變址寄存器14a至14d包含不能在多個任務(wù)之間共享但僅在給定應(yīng)用中可為一特定任務(wù)所用的控制器1內(nèi)的資源。
當(dāng)控制器1執(zhí)行當(dāng)前任務(wù)時,為該進程所用的程序計數(shù)器指向的指令由ROM2傳送給指令寄存器/解碼器3。在此,對指令加以檢驗并將其位轉(zhuǎn)換為控制器1的ALU11,數(shù)據(jù)緩沖器,地址緩沖器、定時電路及各種寄存器所知的語言。
ALU11接收來自指令寄存器/解碼器3的已解碼的指令,并進行執(zhí)行該指令所需的算術(shù)或邏輯運算。與當(dāng)前任務(wù)相關(guān)的累加器提供數(shù)據(jù)給ALU11,以便進行這些算術(shù)或邏輯運算。然后這些運算的結(jié)果返回到該累加器。RAM12用來存儲在這些運算過程中所產(chǎn)生和使用的數(shù)據(jù)。
與正由控制器1執(zhí)行的任務(wù)相關(guān)聯(lián)的變址寄存器用于存儲正在執(zhí)行的任務(wù)所用的地址作為偏移值。該偏移值增大指定地址以便指向控制器1中存儲ALU11的所需操作數(shù)或其它所需數(shù)據(jù)的另一地址。
為控制器1所執(zhí)行的每個任務(wù)配備單獨的累加器和在必要時配備單獨的變址寄存器使每個激活任務(wù)能夠當(dāng)任務(wù)在控制器1內(nèi)循環(huán)時使用并保持其自己的累加值和變址值,而無需來回由RAM12傳輸數(shù)據(jù)。
如前文所指出的,當(dāng)控制器1內(nèi)出現(xiàn)所選內(nèi)部事件時,指令寄存器/解碼器3還提供信號給事件存儲單元5。
調(diào)度部件7以與ROM2和RAM12分離的硬設(shè)備形式實現(xiàn),這樣可達到任務(wù)的改變而無需傳輸在程序計數(shù)器的存儲和二次調(diào)用操作中涉及的數(shù)據(jù)。RAM12中每個任務(wù)的累加值和變址值。諸如硬件有限狀態(tài)機、可編程邏輯陣列、分離ROM或其它類似設(shè)備一類的硬件設(shè)備可用來實現(xiàn)調(diào)度部件7。
現(xiàn)在更詳細地說明控制器1對存儲在ROM2中的任務(wù)的管理。圖2示意性地示出圖1的事件存儲單元5、事件路由器8和調(diào)度程序部件7??捎煽刂破?執(zhí)行的N個任務(wù)標(biāo)為P0、P1、P2和P3。調(diào)度程序部件7按照循環(huán)優(yōu)先方案依次執(zhí)行每個激活任務(wù)的指令。因此,如果四個任務(wù)中的每一任務(wù)都是激活的,調(diào)度程序部件7順序執(zhí)行每任務(wù)的一個指令。但是,如果僅一個任務(wù)是激活的,調(diào)度程序部件7順序執(zhí)行該任務(wù)的指令而無任何延遲,并在該方式下作為單處理器工作。
任務(wù)P0,P1,P2及P3各由分別標(biāo)為PE0、PE1、PE2和PE3的雙穩(wěn)進程啟動開關(guān)連接到事件路由器8。當(dāng)從事件路由器8收到請求啟動相應(yīng)任務(wù)的信號時,執(zhí)行每個任務(wù)。任務(wù)啟動開關(guān)PE0、PE1、PE2和PE3根據(jù)它們的開或關(guān)狀態(tài)允許或阻止任務(wù)P0、P1、P2及P3分別接收任務(wù)請求信號Req0、Req1、Req2和Req3。在一定條件下,最好通過將一個或多個任務(wù)啟動開關(guān)設(shè)置為開狀態(tài)防止任務(wù)請求信號對調(diào)度程序部件7的訪問。例如,可利用該便利使一個任務(wù)(例如,時間調(diào)節(jié)功能)能夠暫時掛起一個或多個其它任務(wù)(例如秒針的運動)。該任務(wù)啟動開關(guān)可以作為任務(wù)管理單元6中數(shù)據(jù)寄存器內(nèi)的可單獨設(shè)置位實現(xiàn)。
圖3代表N個任務(wù)P0,P1,P2及P3的每一個可為控制1所用的多種方式中的數(shù)種方式。在a)情況下,僅任務(wù)P0是激活的。如以下將說明的,在該構(gòu)造中任務(wù)P1、P2及P3的非共享資源可用于在任務(wù)P0內(nèi)建立子程序級別。
在b)情況下,任務(wù)P0和P3是激活的。剩下兩進程的非共享資源在該情況下可用來建立子程序級別,也可在任務(wù)P0和P3之間以三種不同方式共享。首先,每個兩任務(wù)P1和P2的非共享資源可用于從任務(wù)P0之內(nèi)調(diào)用子程序,而任務(wù)P3則沒有其可采用的子程序級別。第二,每個兩任務(wù)P1和P2的非共享資源可用于從進程P3調(diào)用子程序,而進程P0則沒有可用于此的子程序級別。最后,每個兩個激活進程P0和P3可利用剩下兩進程中不同一個的非共享資源調(diào)用單個子程序級。
在c)情況下,三個任務(wù)是激活的,剩下一個任務(wù)的非共享資源可用于任一個激活任務(wù)P0或P3對子程序的調(diào)用。在d)情況下,四個任務(wù)P0,P1,P2和P3都是激活的,無非共享資源可用在對子程序的調(diào)用中。
下面參照圖4進一步說明對各任務(wù)的管理,圖4示出了調(diào)度程序部件7,堆棧指針9和10,任務(wù)P0,P1,P2和P3及分別與它們相連的程序計數(shù)器Pc0,Pc1,Pc2和Pc3??刂破?適于執(zhí)行分支控制指令,例如指令調(diào)用(CALL)和返回(RETURN),它們可在構(gòu)成四個任務(wù)P0,P1,P2或P3每個的指令序列中出現(xiàn)。
在圖4中a)所示出的本發(fā)明實施例中,有可能僅從任務(wù)P0調(diào)用子程序。構(gòu)造控制器1使堆棧指針9屬于任務(wù)P0。在這種布局中,若有任務(wù)P1,P2和P3的各非共享資源,可用來調(diào)用任務(wù)P0之內(nèi)的子程序。構(gòu)造控制器1以便僅能夠?qū)⑷蝿?wù)啟動開關(guān)PEO置于關(guān)閉狀態(tài),由此僅任務(wù)請求信號Req0能夠引起任務(wù)的運行。
因此,在該實例中調(diào)度程序部件7總是指向任務(wù)P0。在初始化時,堆棧指針9被置為指向存儲程序計數(shù)器Pc0的地址。執(zhí)行諸如調(diào)用(CALL)指令一類的分支控制指令致使存儲在ROM2中的一系列指令從任務(wù)P0內(nèi)作為子程序啟動。如本領(lǐng)域技術(shù)人員會理解的,諸如調(diào)用指令一類的分支控制旨令包括待啟動子程序的起始地址。當(dāng)在這樣的任務(wù)中啟動子程序時,首先增大啟動子程序時的地址,以指出跟隨分支控制指令的返回地址,當(dāng)子程序已結(jié)束時任務(wù)將在該返回地址再繼續(xù)。然后調(diào)節(jié)堆棧指針9的值指向未使用的程序計數(shù)器(Pc1,Pc2或Pc3)之一。在執(zhí)行程序期間,該以前未用的程序計數(shù)器跟蹤該子程序中執(zhí)行的指令。當(dāng)完成了子程序的執(zhí)行時,再次將堆棧指針9調(diào)節(jié)到指向程序計數(shù)器Pc0并繼續(xù)執(zhí)行該任務(wù)。
如果利用一級以上的子程序,每次啟動新子程序時將堆棧指針9的值調(diào)節(jié)到指向未使用的程序計數(shù)器。以該方式,控制器1適于從任務(wù)內(nèi)部啟動子程序而無需在RAM12中的數(shù)據(jù)堆棧上存儲返回地址。
程序計數(shù)器Pc0,Pc1,Pc2和Pc3最好具有順序地址,這樣堆棧指針9能夠簡單地在存儲返回地址時增長而在完成了子程序的執(zhí)行時減小。
雖然圖4中a)示出了可從任務(wù)P0內(nèi)利用控制器1的所有非共享資源的設(shè)置,但可根據(jù)實際應(yīng)用以不同方式構(gòu)造控制器1。如圖3所示,任務(wù)P0可運用三、二、一或無其它子程序級。在每種情況下,堆棧指針9僅適于用在與該構(gòu)造中分配給任務(wù)P0的非共享資源一起時。例如,在任務(wù)P0利用任務(wù)P1的非共享資源定義子程序級的構(gòu)造中,堆棧指針9僅可與進程P1的程序計數(shù)器一起使用。
在圖4b)中所示的本發(fā)明實施例中,安排控制器1使堆棧指針10適于用在任務(wù)P3內(nèi)。在該配置中,堆棧指針10可用于指向在這樣的任務(wù)中使用的無論哪個程序計數(shù)器Pc2,Pc1和Pc0??梢钥闯霎?dāng)任務(wù)P0和P3各具有一個子程序級時,將同時用到堆棧指針9和10。
雖然已僅相對任務(wù)P0和P3描述了堆棧指針9和10,在其它實施例中,一個或這兩個堆棧指針可與其它任務(wù)相關(guān)聯(lián)。類似地,控制器1的其它實施例可包含與任務(wù)P1和/或P2相關(guān)聯(lián)的附加堆棧指針,因此任何數(shù)量的任務(wù)P0,P1,P2或P3可利用其它剩余任務(wù)的非共享資源,若這些資源適用,即可用來調(diào)用子程序。
如本領(lǐng)域技術(shù)人員將會理解的,通過建立重復(fù)上述分支控制指令功能的一系列指令,無限數(shù)量的子程序和子程序級可同時歸于每個任務(wù)P0,P1,P2和P3。
返回圖2,現(xiàn)在描述控制器1接收的內(nèi)部和外部事件的管理及適當(dāng)?shù)娜蝿?wù)請求信號的產(chǎn)生??梢灾赶蚴录鎯卧?的事件分為標(biāo)著gr0,gr1,gr2及gr3的四組。控制器1用這些事件開始其不同任務(wù)的處理。六個事件與這些事件組中每組相關(guān)聯(lián),其中四個為內(nèi)部事件兩個為外部事件。對這些事件組中每一組而言,其六個事件在事件存儲單元5中從“或”(OR)功能求和,以便產(chǎn)生事件組信號。因此,特定事件組的六個事件到達任何一個都會致使事件存儲單元5產(chǎn)生相應(yīng)于該事件組的事件組信號。
這樣產(chǎn)生的每一事件組信號送至事件路由器8,根據(jù)事件路由器8的構(gòu)造,其產(chǎn)生相應(yīng)于任務(wù)P0,P1,P2或P3之一的任務(wù)請求信號。每一任務(wù)請求信號可具有表示指向特定任務(wù)的一個或多個任務(wù)存在的激活狀態(tài),或者表示設(shè)有指向該任務(wù)的事件存在的非激活狀態(tài)。
當(dāng)不存在與特定任務(wù)請求信號相關(guān)的事件時,使對應(yīng)那個的任務(wù)不激活是可能的。因此中斷控制器1執(zhí)行該任務(wù)。當(dāng)所有的任務(wù)請求信號為非激活的因此無任務(wù)處于執(zhí)行狀態(tài)時,控制器1進入休眠狀態(tài),其功耗為準零。然而,當(dāng)存在一個或多個事件時,不能使相應(yīng)的任務(wù)請求信號成為不激活的。
圖5描繪出事件路由器8提供的各種結(jié)構(gòu)模式。在本舉例應(yīng)用中,5個這種模式是可能的。在模式0,如圖5中a)所示,所有事件組信號及至所有事件指向任務(wù)P0。這樣多任務(wù)處理控制器1用作單一處理器,順序地執(zhí)行任務(wù)P0的指令。事件存儲單元5中的事件不能請求執(zhí)行任務(wù)P1,P2和P3,由此釋放這些任務(wù)的各非共享資源以能夠從控制器1執(zhí)行的單個任務(wù)內(nèi)調(diào)用子程序。
在模式1中,如圖5中b)所示,來自事件組gr0,gr1和gr2的事件組信號指向任務(wù)P0,而來自事件組gr3的事件組信號指向任務(wù)P3。任務(wù)P1和P2的大量共享資源適用于從任務(wù)P0和P3內(nèi)調(diào)用2程序。如圖5中c)所示,在模式2中,任務(wù)P0和P3分別接收事件組gr0和gr1及事件組gr2和gr3的事件組信號產(chǎn)生的任務(wù)請求信號。而且,任務(wù)P1和P2的非共享資源也適用于從任務(wù)P0和P3內(nèi)調(diào)用子程序。
在模式3中,如圖5中d)所示,事件組gr0和gr1的事件組信號指向任務(wù)P0,而來自事件組gr2的事件組信號僅指向任務(wù)P2,來自事件組gr3的事件組信號僅指向任務(wù)P3。僅任務(wù)P1的非共享資源可用于調(diào)用子程序。最后,在模式4中如e)所示,各任務(wù)P0,P1,P2和P3分別從事件組gr0,gr1,gr2和gr3接收事件組信號。這樣控制器1的用戶可選擇最好對應(yīng)特定應(yīng)用的事件路由選擇模式。
最后,可以理解對本發(fā)明的多任務(wù)處理控制器可作出各種改型和/或附加物而不偏離所附權(quán)利要求書所定義的本發(fā)明范圍。
權(quán)利要求
1.一種多任務(wù)處理控制器包含用于存儲多達N個各包含一系指令的任務(wù)(P0,P1,P2,P3)的任務(wù)存儲裝置(2);通過分時處理所述N個任務(wù)中的多個的微處理器,以及用于存儲由所述微處理器建立和運用的各種數(shù)據(jù)的數(shù)據(jù)存儲裝置(12);其特征在于所述微處理器還包含以便件實現(xiàn)、用于通過所述進程控制所述微處理器的運用的調(diào)度部件(7),以及用于存儲各為所述調(diào)度程序(7)所用的N個程序計數(shù)器以控制所述N個進程中各個的指令序列的程序計數(shù)器存儲裝置,因此當(dāng)所述微處理器所處理的任務(wù)改變時所述調(diào)度程序部件(7)能夠選擇所述程序計數(shù)器(Pc0,Pc1,Pc2,Pc3)中不同的一個,而無需從所述數(shù)據(jù)存儲裝置(12)傳輸數(shù)據(jù)。
2.如權(quán)利要求1所述的多任務(wù)處理控制器,其特征在于所述微處理順還包含用于存儲所述N個任務(wù)中每一個的各自累計值的累計值存儲裝置(13),這樣當(dāng)所述微處理器處理的任務(wù)改變時所述微處理器能夠選擇不同的所述累計值,而無需從所述數(shù)據(jù)存儲裝置(12)傳輸數(shù)據(jù)。
3.如權(quán)利要求1或2所述的多任務(wù)處理控制器,其特征在于所述微處理器還包含用于存儲所述N個任務(wù)中每個的各自變址值的變址存儲裝置(14),這樣當(dāng)所述微處理器處理的任務(wù)改變時所述微處理器能夠選擇不同的所述變址值之一,而無需自所述數(shù)據(jù)存儲裝置(12)傳輸數(shù)據(jù)。
4.如前述權(quán)項之任一項所述的多任務(wù)處理控制器,其特征在于所述調(diào)度部件(7)包括一硬件有限狀態(tài)機。
5.如權(quán)利要求1至3中任一項所述的多任務(wù)控制器,其特征在于所述調(diào)度部件(7)包含一可編程邏輯陣列。
6.如權(quán)利要求1至3中任一項所述的多任務(wù)控制器,其特征在于所述調(diào)度部件(7)包含一ROM。
7.如前述權(quán)項之任一項所述的多任務(wù)控制器,其特征在于所述微處理器是可配置以便依次處理X個所述任務(wù)中每個的一個部分,其中1<X<N,所述微處理器運用剩余N-X個任務(wù)之一或多個的程序計數(shù)器,以控制由所述X個任務(wù)內(nèi)調(diào)用的子程序的指令序列。
8.如權(quán)利要求7所述的多任務(wù)控制器,其特征在于所述微處理器還包括用于控制在所述X個任務(wù)之一的處理中所用的所述程序計數(shù)器的運用的一個或一個以上的堆棧指針。
9.如前述權(quán)項之任一項所述的多任務(wù)控制器,其特征在于所述微處理器還包含用于接收來自一組一個或多個事件信號的事件組信號并產(chǎn)生對應(yīng)于所述X個任務(wù)之所選的一個的任務(wù)請求信號(Req0,Req1,Req2,Req3),所述任意請求信號請求所述調(diào)度部件執(zhí)行所述選出的任務(wù)的事件路由器(8)。
10.如權(quán)利要求9所述的多任務(wù)控制器,其特征在于每一所述事件信號由來自所述控制器處圍設(shè)備的外部事件信號或所述微處理器產(chǎn)生的內(nèi)部事件信號組成。
11.如權(quán)利要求10所述的多任務(wù)控制器,其特征在于所述事件路由器(8)是用于接收來自N組事件信號(gr0,gr1,gr2,gr3)中每組的事件組信號。
12.如權(quán)利要求11所述的多任務(wù)控制器,其特征在于所述事件路由器(8)是配置以使對應(yīng)于所述選出的任務(wù)的任務(wù)請求信號(Req0,Req1,Req2,Req3)響應(yīng)從一個或多個所選事件信號組(gr0,gr1,gr2,gr3)接收的事件組信號而產(chǎn)生。
全文摘要
一種多任務(wù)處理控制器,包含用于存儲多達N個各含一系列指令的任務(wù)的任務(wù)存儲裝置,用于通過分時處理多個所述N個任務(wù)的微處理器,及用于存儲所述微處理器的各種數(shù)據(jù)的數(shù)據(jù)存儲裝置。微處理器還包含以硬件實現(xiàn)用于通過進程控制微處理器的使用的調(diào)度部件,及用于存儲各為調(diào)度部件所用的N個程序計數(shù)器的程序計數(shù)器存儲裝置,這樣當(dāng)微處理器處理的任務(wù)改變時調(diào)度部件能選擇不同的一個程序計數(shù)器而無需從數(shù)據(jù)存儲裝置傳輸數(shù)據(jù)。
文檔編號G06F9/48GK1089740SQ93121278
公開日1994年7月20日 申請日期1993年12月22日 優(yōu)先權(quán)日1992年12月23日
發(fā)明者J·-F·佩羅托, C·拉莫特 申請人:電子鐘表中心有限公司