欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多任務(wù)處理低功率控制器的制作方法

文檔序號(hào):6407408閱讀:324來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):多任務(wù)處理低功率控制器的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及多任務(wù)處理控制器,它包含用于通過(guò)分時(shí)處理各含一系列指令的多個(gè)任務(wù)的微處理器,用于存儲(chǔ)多個(gè)所述任務(wù)的任務(wù)存儲(chǔ)裝置,比如ROM,以及用于存儲(chǔ)所述微處理器產(chǎn)生和使用的多種數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)裝置,例如RAM。該多任務(wù)處理控制器適于用在鐘表領(lǐng)域中,下文中對(duì)應(yīng)列舉的實(shí)際應(yīng)用來(lái)公開(kāi)本發(fā)明將是方便的。然而,可以理解的是本發(fā)明并不限于該應(yīng)用。
在鐘表領(lǐng)域的許多應(yīng)用是基于含有一系列順序指令的任務(wù)。通常用微計(jì)算機(jī)來(lái)執(zhí)行這種任務(wù)以此形成具備其要求功能的手表?,F(xiàn)有微計(jì)算機(jī)包含用于存儲(chǔ)待執(zhí)行的每一個(gè)任務(wù)的指令的只讀存儲(chǔ)器或ROM,用于實(shí)現(xiàn)執(zhí)行這些指令所需的操作的微處理器,以及用于存儲(chǔ)該微處理器形成和使用的多種數(shù)據(jù)的隨機(jī)存取存儲(chǔ)器或RAM。值得注意地該微處理器包含用于執(zhí)行算術(shù)和邏輯運(yùn)算的算術(shù)一邏輯單元或ALU和用于存儲(chǔ)這些運(yùn)算的結(jié)果的一系列寄存器??刂?、數(shù)據(jù)和地址總線連接該微處理器、ROM、RAM和I/O接口以允許這些設(shè)備與外部設(shè)備之間的通信。
利用微計(jì)算機(jī)來(lái)實(shí)現(xiàn)這些任務(wù)常常由于若干嚴(yán)格限制的存在而難于達(dá)到。微計(jì)算機(jī)不僅必須實(shí)時(shí)執(zhí)行這些任務(wù)中的每一個(gè)。而且必須迅速響應(yīng)內(nèi)部產(chǎn)生或來(lái)自用戶的信號(hào)。理想地,還應(yīng)以功耗盡可能少的方式構(gòu)造和執(zhí)行這些任務(wù)。
手表設(shè)計(jì)者面臨的另一挑戰(zhàn)是用要求順序執(zhí)行一系列指令的任務(wù)來(lái)重現(xiàn)需同時(shí)發(fā)生的多種手表功能的操作。例如,可要求手表上的按鈕動(dòng)作的同時(shí)使步進(jìn)電機(jī)工作,而同時(shí)又使位置測(cè)定器旋轉(zhuǎn)。
為了解決該問(wèn)題,已設(shè)計(jì)某些手表利用微計(jì)算機(jī)借助于多任務(wù)或分時(shí)處理技術(shù)同時(shí)執(zhí)行若干個(gè)任務(wù)。在多任務(wù)處理中,允許ROM中必須執(zhí)行的每一任務(wù)的部分依次運(yùn)用微處理器。所執(zhí)行任務(wù)快速循環(huán)使得用戶看來(lái)每一任務(wù)正連續(xù)地并與其它任務(wù)同時(shí)地執(zhí)行著。
常規(guī)上是借助于稱(chēng)之為調(diào)度程序部件的軟件機(jī)構(gòu)來(lái)實(shí)現(xiàn)由微處理器同時(shí)執(zhí)行任務(wù)。這種機(jī)構(gòu)以存儲(chǔ)在ROM中的一系列指令實(shí)現(xiàn),并管理上述由微處理器執(zhí)行的多種任務(wù)的順序。
雖然在計(jì)算機(jī)產(chǎn)業(yè)中其它地方普遍利用這種實(shí)施方式,但其不適于用在鐘表領(lǐng)域中。由調(diào)度程度部件引入額外指令的負(fù)擔(dān)使微處理器執(zhí)行的任務(wù)的有效規(guī)模增大,并同時(shí)使其在速度和功耗方面的性能降低。
為了使在任務(wù)管理中必須執(zhí)行的附加指令所導(dǎo)致的處理速度上的降低到最小,通常是使由微處理器依次執(zhí)行的任務(wù)部分的大小為若干個(gè)指令長(zhǎng),以使任務(wù)盡可能少地發(fā)生變化。然而,這減少了表對(duì)用戶輸入及其它對(duì)任務(wù)初始化的請(qǐng)求的反應(yīng)時(shí)間,這些輸入和請(qǐng)求只能在另一任務(wù)的若干指令已執(zhí)行之后起作用。
而且,由微處理器完成對(duì)許多任務(wù)的執(zhí)行還要求執(zhí)行該任務(wù)內(nèi)指令的一個(gè)或多個(gè)子程序。當(dāng)從現(xiàn)有多任務(wù)處理控制器中的一任務(wù)內(nèi)啟動(dòng)子程序時(shí),需要有附加指令,這樣在執(zhí)行子程序之后,可首先將表明任務(wù)以后將重新開(kāi)始的指令的地址的程序計(jì)數(shù)器的值存儲(chǔ)在RAM中。還可要求將累加寄存器和變址寄存器中的值加以存儲(chǔ)。實(shí)現(xiàn)這些數(shù)據(jù)傳輸操作所需的額外指令進(jìn)一步增大了微處理器所執(zhí)行的任務(wù)的有效規(guī)模,并降低其運(yùn)行速度和功率損耗。
本發(fā)明的目的是提供一種減少或克服了現(xiàn)有技術(shù)的缺點(diǎn)的多任務(wù)處理控制器。
考慮該目的,本發(fā)明提供一種包含用于存儲(chǔ)多達(dá)N個(gè)各含有一系列指令的任務(wù)的任務(wù)存儲(chǔ)裝置,用于通過(guò)分時(shí)來(lái)處理所述N個(gè)任務(wù)的微處理器以及用于存儲(chǔ)所述微處理器產(chǎn)生和運(yùn)用的多種數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)裝置的多任務(wù)處理控制器,其特征在于所述微處理器還包含從硬件上實(shí)現(xiàn)用來(lái)以所述進(jìn)程控制所述微處理器的運(yùn)用的調(diào)度程序,以及用于存儲(chǔ)各為所述調(diào)度部件所用的N個(gè)程序計(jì)數(shù)器的程序計(jì)數(shù)器存儲(chǔ)裝置,以控制所述N個(gè)進(jìn)程中各個(gè)指令序列,以便所述調(diào)度程序能夠在所述微處理器處理的任務(wù)改變時(shí)選擇不同的一個(gè)所述程序計(jì)數(shù)器,而無(wú)需從所述數(shù)據(jù)存儲(chǔ)裝置傳輸數(shù)據(jù)。
為每一任務(wù)配備單獨(dú)的程序計(jì)數(shù)器并以硬件實(shí)現(xiàn)調(diào)度程序使得能夠更有效地管理由微處理器所處理的任務(wù),允許程序計(jì)數(shù)器變化而不要求數(shù)據(jù)存儲(chǔ)裝置來(lái)回傳輸數(shù)據(jù),由此減少存儲(chǔ)在ROM中的指令數(shù)。避免了在任務(wù)管理期間執(zhí)行多個(gè)附加指令的需要,因此降低了控制器的功耗,增加了執(zhí)行任務(wù)的速度并減小了微處理器所處理部分的大小。所執(zhí)行的任務(wù)還可更快地循環(huán),由此改進(jìn)控制器的響應(yīng)時(shí)間。
有益地,多任務(wù)處理控制器還包含用于每一任務(wù)存儲(chǔ)各累加值的分立的累加值存儲(chǔ)裝置,因此微處理器能夠在所述微處理器處理的任務(wù)改變時(shí)選擇不同的一個(gè)所述累加值,而不需要從所述數(shù)據(jù)存儲(chǔ)裝置傳輸數(shù)據(jù)。
該多任務(wù)處理控制器還可包括用于存儲(chǔ)每個(gè)任務(wù)的各個(gè)變址值的變址值存儲(chǔ)裝置,這樣當(dāng)所述微處理器處理的任務(wù)改變時(shí)所述微處理器能夠選擇不同的一個(gè)所述變址值,而無(wú)需要求從所述數(shù)據(jù)存儲(chǔ)裝置傳輸數(shù)據(jù)。
在本發(fā)明的另一實(shí)施例中,微處理器是可構(gòu)造的,以便依次處理X個(gè)所述任務(wù)中每一個(gè)的部分,其中1<X<N,剩余的N-X個(gè)任務(wù)中的一個(gè)或多個(gè)的程序計(jì)數(shù)器為所述微處理器所用以控制自所述X個(gè)任務(wù)之內(nèi)調(diào)用的子程序的指令序列。
因此,當(dāng)請(qǐng)求加以處理的任務(wù)數(shù)少于微處理器可處理的最大任務(wù)數(shù)時(shí),剩下未用進(jìn)程中一個(gè)或多個(gè)進(jìn)程的程序計(jì)數(shù)器可以被使用以跟蹤從一個(gè)任務(wù)內(nèi)部調(diào)用的子程序的指令序列。因此重調(diào)用子程序時(shí)所用的程序計(jì)數(shù)器在已執(zhí)行了子程序時(shí)仍保持使用。本發(fā)明調(diào)度部件的利用致使調(diào)用子程序時(shí)所需的數(shù)據(jù)傳輸以及完成該數(shù)據(jù)傳輸所需的附加指令數(shù)最小。如上所述,這降低了控制器的功耗,增加了其響應(yīng)時(shí)間并達(dá)到更有效地管理其任務(wù)。
以下的描述更詳細(xì)地涉及本發(fā)明多任務(wù)處理控制器的各種特征。為便于理解本發(fā)明,參照以圖示出多任務(wù)處理控制器的最佳實(shí)施例的附圖來(lái)描述本發(fā)明??梢岳斫獗景l(fā)明的多任務(wù)處理控制器并不受限于附圖中所示出的最佳實(shí)施例。
附圖中

圖1是表示本發(fā)明多任務(wù)處理控制器一個(gè)實(shí)施例的操作原理的示意圖;
圖2是表示圖1多任務(wù)處理控制器所處理的進(jìn)程的管理的示意圖;
圖3是表示圖1控制器相對(duì)不同級(jí)別子程序的任務(wù)結(jié)構(gòu)的示意圖;
圖4是表示圖1控制器對(duì)圖3示出的子程序的管理的示意圖;以及圖5是表示安排內(nèi)部和外部事件程序并用來(lái)請(qǐng)求由圖1控制器所執(zhí)行的進(jìn)程的啟動(dòng)的示意圖。
現(xiàn)在參見(jiàn)圖1,該圖總體示出了多任務(wù)處理控制器1,控制器1主要含有ROM2,指令寄存器/解碼器3,資源組4,事件存儲(chǔ)單元5,任務(wù)管單元6和用于存儲(chǔ)四個(gè)程序計(jì)數(shù)器Pc0,Pc1,Pc2和Pc3中每個(gè)的各寄存器。ROM2存儲(chǔ)控制器1用來(lái)實(shí)現(xiàn)所需功能的達(dá)四個(gè)任務(wù)的指令序列。這些任務(wù)中每一任務(wù)分別用一個(gè)程序計(jì)數(shù)器Pc0,Pc1,Pc2和Pc3以跟蹤其指令序列。由此利用每個(gè)程序計(jì)數(shù)器指向包含待執(zhí)行的任務(wù)內(nèi)下一指令的ROM中的存儲(chǔ)器單元。將會(huì)理解雖然在該實(shí)施例中使用了四個(gè)任務(wù)和四個(gè)相應(yīng)的程序計(jì)數(shù)器,但在本發(fā)明的其它實(shí)施例中可利用任何數(shù)量的任務(wù)和相應(yīng)的程序計(jì)數(shù)器。
包含在ROM2中的每一任務(wù)可由控制器1的外圍設(shè)備發(fā)送的外部事件信號(hào)啟動(dòng)或由控制器1內(nèi)部發(fā)送的內(nèi)部事件信號(hào)啟動(dòng)??蓪⒃S多這樣的信號(hào)提供給鐘表應(yīng)用中所采用的多任務(wù)處理控制器。這些事件信號(hào)被送至成組對(duì)它們進(jìn)行處理的事件存儲(chǔ)單元5。盡管在其它實(shí)施例中提供另一數(shù)目的分組,該分組的數(shù)目可對(duì)應(yīng)于存儲(chǔ)在ROM2中的任務(wù)數(shù)。一旦從特定組收到任務(wù)事件信號(hào),事件存儲(chǔ)單元5發(fā)送事件組信號(hào)到任務(wù)管理單元6。
任務(wù)管理單元6包含調(diào)度部件7、事件路由器8和兩個(gè)堆棧指鐘9和10。事件路由器8接收從事件存儲(chǔ)單元5發(fā)送的每一事件組信號(hào)并產(chǎn)生任務(wù)請(qǐng)求信號(hào)以請(qǐng)求ROM2中存儲(chǔ)的任務(wù)之一啟動(dòng)。事件路由器8可為可構(gòu)造的,以便能夠選擇由每一任務(wù)請(qǐng)求信號(hào)請(qǐng)求啟動(dòng)的任務(wù)。
調(diào)度部件7接收事件路由器8送出的任務(wù)請(qǐng)求信號(hào)并管理請(qǐng)求的每一任務(wù)的執(zhí)行。由控制器1根據(jù)調(diào)度部件7指明的任務(wù)依次處理每一激活任務(wù)(即已請(qǐng)求啟動(dòng)的任務(wù))的部分。當(dāng)執(zhí)行每一任務(wù)時(shí),用其程序計(jì)數(shù)器跟蹤在ROM2中哪一指令被執(zhí)行。當(dāng)一部分第一任務(wù)已執(zhí)行時(shí),調(diào)度部件7通過(guò)使用第二任務(wù)的程序計(jì)數(shù)器指出下一有待處理的指令而使部分第二任務(wù)被加以處理。由于第一任務(wù)有其自己的程序計(jì)數(shù)器,可容易地使每一任務(wù)的執(zhí)行暫停然后在正確的指令重新開(kāi)始。
尤其,每一程序計(jì)數(shù)器的值在每次剛執(zhí)行完其相對(duì)應(yīng)的任務(wù)的一部分時(shí)不必傳輸?shù)讲⒋鎯?chǔ)在控制器1中別處的數(shù)據(jù)寄存器中,而每次要執(zhí)行其任務(wù)的新一部分時(shí)也不必傳回到并存儲(chǔ)在公共程序計(jì)數(shù)器中。有益地,這使得控制器1執(zhí)行的一個(gè)或多個(gè)任務(wù)部分僅為一個(gè)指令長(zhǎng),以便使控制器1的響應(yīng)時(shí)間最短。
如后文將解釋的,可利用一個(gè)或多個(gè)程序計(jì)數(shù)器啟動(dòng)某一任務(wù)之內(nèi)的子程序。當(dāng)調(diào)用子程序時(shí),當(dāng)前使用的程序計(jì)數(shù)器被保存,以便在執(zhí)行了該子程序后可以執(zhí)行后面的指令。堆棧指針9和10用來(lái)指出啟動(dòng)子程序時(shí)未用的程序計(jì)數(shù)器,然后用該程序計(jì)數(shù)器跟蹤該子程序中的指令序列。因此調(diào)用子程序時(shí)所用的程序計(jì)數(shù)器被保存以便跟蹤在執(zhí)行了子程序后將繼續(xù)的指令序列。
資源組4包含算術(shù)邏輯單元或ALU11,隨機(jī)存取存儲(chǔ)器或RAM12,累加器組13和變址寄存器組14。該后一組寄存器僅在控制器1所執(zhí)行的任務(wù)運(yùn)用變址尋址時(shí)需要。
ALU11和RAM12是共享資源,并可由控制器執(zhí)行的所有任務(wù)進(jìn)行訪問(wèn)。從下述方式用信號(hào)來(lái)控制對(duì)控制器1的共享資源的訪問(wèn)。當(dāng)一任務(wù)使用共享資源時(shí),所選數(shù)據(jù)寄存器中一經(jīng)被置為忙。當(dāng)該任務(wù)已結(jié)束使用共享資源時(shí),該位被置為空閑。所有想訪問(wèn)共享資源的任務(wù)測(cè)試該位的狀態(tài),若該位已被較早任務(wù)置為忙,后面的任務(wù)必須等等直到該位被置為空閑。
累加寄存器組13由四個(gè)累加器13a,13b,13c及13d組成,而變址寄存器組14由四個(gè)變址寄存器14a、14b、14c和14d組成。與程序計(jì)數(shù)器Pc0至Pc3一起,累加器13a至13d和變址寄存器14a至14d包含不能在多個(gè)任務(wù)之間共享但僅在給定應(yīng)用中可為一特定任務(wù)所用的控制器1內(nèi)的資源。
當(dāng)控制器1執(zhí)行當(dāng)前任務(wù)時(shí),為該進(jìn)程所用的程序計(jì)數(shù)器指向的指令由ROM2傳送給指令寄存器/解碼器3。在此,對(duì)指令加以檢驗(yàn)并將其位轉(zhuǎn)換為控制器1的ALU11,數(shù)據(jù)緩沖器,地址緩沖器、定時(shí)電路及各種寄存器所知的語(yǔ)言。
ALU11接收來(lái)自指令寄存器/解碼器3的已解碼的指令,并進(jìn)行執(zhí)行該指令所需的算術(shù)或邏輯運(yùn)算。與當(dāng)前任務(wù)相關(guān)的累加器提供數(shù)據(jù)給ALU11,以便進(jìn)行這些算術(shù)或邏輯運(yùn)算。然后這些運(yùn)算的結(jié)果返回到該累加器。RAM12用來(lái)存儲(chǔ)在這些運(yùn)算過(guò)程中所產(chǎn)生和使用的數(shù)據(jù)。
與正由控制器1執(zhí)行的任務(wù)相關(guān)聯(lián)的變址寄存器用于存儲(chǔ)正在執(zhí)行的任務(wù)所用的地址作為偏移值。該偏移值增大指定地址以便指向控制器1中存儲(chǔ)ALU11的所需操作數(shù)或其它所需數(shù)據(jù)的另一地址。
為控制器1所執(zhí)行的每個(gè)任務(wù)配備單獨(dú)的累加器和在必要時(shí)配備單獨(dú)的變址寄存器使每個(gè)激活任務(wù)能夠當(dāng)任務(wù)在控制器1內(nèi)循環(huán)時(shí)使用并保持其自己的累加值和變址值,而無(wú)需來(lái)回由RAM12傳輸數(shù)據(jù)。
如前文所指出的,當(dāng)控制器1內(nèi)出現(xiàn)所選內(nèi)部事件時(shí),指令寄存器/解碼器3還提供信號(hào)給事件存儲(chǔ)單元5。
調(diào)度部件7以與ROM2和RAM12分離的硬設(shè)備形式實(shí)現(xiàn),這樣可達(dá)到任務(wù)的改變而無(wú)需傳輸在程序計(jì)數(shù)器的存儲(chǔ)和二次調(diào)用操作中涉及的數(shù)據(jù)。RAM12中每個(gè)任務(wù)的累加值和變址值。諸如硬件有限狀態(tài)機(jī)、可編程邏輯陣列、分離ROM或其它類(lèi)似設(shè)備一類(lèi)的硬件設(shè)備可用來(lái)實(shí)現(xiàn)調(diào)度部件7。
現(xiàn)在更詳細(xì)地說(shuō)明控制器1對(duì)存儲(chǔ)在ROM2中的任務(wù)的管理。圖2示意性地示出圖1的事件存儲(chǔ)單元5、事件路由器8和調(diào)度程序部件7??捎煽刂破?執(zhí)行的N個(gè)任務(wù)標(biāo)為P0、P1、P2和P3。調(diào)度程序部件7按照循環(huán)優(yōu)先方案依次執(zhí)行每個(gè)激活任務(wù)的指令。因此,如果四個(gè)任務(wù)中的每一任務(wù)都是激活的,調(diào)度程序部件7順序執(zhí)行每任務(wù)的一個(gè)指令。但是,如果僅一個(gè)任務(wù)是激活的,調(diào)度程序部件7順序執(zhí)行該任務(wù)的指令而無(wú)任何延遲,并在該方式下作為單處理器工作。
任務(wù)P0,P1,P2及P3各由分別標(biāo)為PE0、PE1、PE2和PE3的雙穩(wěn)進(jìn)程啟動(dòng)開(kāi)關(guān)連接到事件路由器8。當(dāng)從事件路由器8收到請(qǐng)求啟動(dòng)相應(yīng)任務(wù)的信號(hào)時(shí),執(zhí)行每個(gè)任務(wù)。任務(wù)啟動(dòng)開(kāi)關(guān)PE0、PE1、PE2和PE3根據(jù)它們的開(kāi)或關(guān)狀態(tài)允許或阻止任務(wù)P0、P1、P2及P3分別接收任務(wù)請(qǐng)求信號(hào)Req0、Req1、Req2和Req3。在一定條件下,最好通過(guò)將一個(gè)或多個(gè)任務(wù)啟動(dòng)開(kāi)關(guān)設(shè)置為開(kāi)狀態(tài)防止任務(wù)請(qǐng)求信號(hào)對(duì)調(diào)度程序部件7的訪問(wèn)。例如,可利用該便利使一個(gè)任務(wù)(例如,時(shí)間調(diào)節(jié)功能)能夠暫時(shí)掛起一個(gè)或多個(gè)其它任務(wù)(例如秒針的運(yùn)動(dòng))。該任務(wù)啟動(dòng)開(kāi)關(guān)可以作為任務(wù)管理單元6中數(shù)據(jù)寄存器內(nèi)的可單獨(dú)設(shè)置位實(shí)現(xiàn)。
圖3代表N個(gè)任務(wù)P0,P1,P2及P3的每一個(gè)可為控制1所用的多種方式中的數(shù)種方式。在a)情況下,僅任務(wù)P0是激活的。如以下將說(shuō)明的,在該構(gòu)造中任務(wù)P1、P2及P3的非共享資源可用于在任務(wù)P0內(nèi)建立子程序級(jí)別。
在b)情況下,任務(wù)P0和P3是激活的。剩下兩進(jìn)程的非共享資源在該情況下可用來(lái)建立子程序級(jí)別,也可在任務(wù)P0和P3之間以三種不同方式共享。首先,每個(gè)兩任務(wù)P1和P2的非共享資源可用于從任務(wù)P0之內(nèi)調(diào)用子程序,而任務(wù)P3則沒(méi)有其可采用的子程序級(jí)別。第二,每個(gè)兩任務(wù)P1和P2的非共享資源可用于從進(jìn)程P3調(diào)用子程序,而進(jìn)程P0則沒(méi)有可用于此的子程序級(jí)別。最后,每個(gè)兩個(gè)激活進(jìn)程P0和P3可利用剩下兩進(jìn)程中不同一個(gè)的非共享資源調(diào)用單個(gè)子程序級(jí)。
在c)情況下,三個(gè)任務(wù)是激活的,剩下一個(gè)任務(wù)的非共享資源可用于任一個(gè)激活任務(wù)P0或P3對(duì)子程序的調(diào)用。在d)情況下,四個(gè)任務(wù)P0,P1,P2和P3都是激活的,無(wú)非共享資源可用在對(duì)子程序的調(diào)用中。
下面參照?qǐng)D4進(jìn)一步說(shuō)明對(duì)各任務(wù)的管理,圖4示出了調(diào)度程序部件7,堆棧指針9和10,任務(wù)P0,P1,P2和P3及分別與它們相連的程序計(jì)數(shù)器Pc0,Pc1,Pc2和Pc3??刂破?適于執(zhí)行分支控制指令,例如指令調(diào)用(CALL)和返回(RETURN),它們可在構(gòu)成四個(gè)任務(wù)P0,P1,P2或P3每個(gè)的指令序列中出現(xiàn)。
在圖4中a)所示出的本發(fā)明實(shí)施例中,有可能僅從任務(wù)P0調(diào)用子程序。構(gòu)造控制器1使堆棧指針9屬于任務(wù)P0。在這種布局中,若有任務(wù)P1,P2和P3的各非共享資源,可用來(lái)調(diào)用任務(wù)P0之內(nèi)的子程序。構(gòu)造控制器1以便僅能夠?qū)⑷蝿?wù)啟動(dòng)開(kāi)關(guān)PEO置于關(guān)閉狀態(tài),由此僅任務(wù)請(qǐng)求信號(hào)Req0能夠引起任務(wù)的運(yùn)行。
因此,在該實(shí)例中調(diào)度程序部件7總是指向任務(wù)P0。在初始化時(shí),堆棧指針9被置為指向存儲(chǔ)程序計(jì)數(shù)器Pc0的地址。執(zhí)行諸如調(diào)用(CALL)指令一類(lèi)的分支控制指令致使存儲(chǔ)在ROM2中的一系列指令從任務(wù)P0內(nèi)作為子程序啟動(dòng)。如本領(lǐng)域技術(shù)人員會(huì)理解的,諸如調(diào)用指令一類(lèi)的分支控制旨令包括待啟動(dòng)子程序的起始地址。當(dāng)在這樣的任務(wù)中啟動(dòng)子程序時(shí),首先增大啟動(dòng)子程序時(shí)的地址,以指出跟隨分支控制指令的返回地址,當(dāng)子程序已結(jié)束時(shí)任務(wù)將在該返回地址再繼續(xù)。然后調(diào)節(jié)堆棧指針9的值指向未使用的程序計(jì)數(shù)器(Pc1,Pc2或Pc3)之一。在執(zhí)行程序期間,該以前未用的程序計(jì)數(shù)器跟蹤該子程序中執(zhí)行的指令。當(dāng)完成了子程序的執(zhí)行時(shí),再次將堆棧指針9調(diào)節(jié)到指向程序計(jì)數(shù)器Pc0并繼續(xù)執(zhí)行該任務(wù)。
如果利用一級(jí)以上的子程序,每次啟動(dòng)新子程序時(shí)將堆棧指針9的值調(diào)節(jié)到指向未使用的程序計(jì)數(shù)器。以該方式,控制器1適于從任務(wù)內(nèi)部啟動(dòng)子程序而無(wú)需在RAM12中的數(shù)據(jù)堆棧上存儲(chǔ)返回地址。
程序計(jì)數(shù)器Pc0,Pc1,Pc2和Pc3最好具有順序地址,這樣堆棧指針9能夠簡(jiǎn)單地在存儲(chǔ)返回地址時(shí)增長(zhǎng)而在完成了子程序的執(zhí)行時(shí)減小。
雖然圖4中a)示出了可從任務(wù)P0內(nèi)利用控制器1的所有非共享資源的設(shè)置,但可根據(jù)實(shí)際應(yīng)用以不同方式構(gòu)造控制器1。如圖3所示,任務(wù)P0可運(yùn)用三、二、一或無(wú)其它子程序級(jí)。在每種情況下,堆棧指針9僅適于用在與該構(gòu)造中分配給任務(wù)P0的非共享資源一起時(shí)。例如,在任務(wù)P0利用任務(wù)P1的非共享資源定義子程序級(jí)的構(gòu)造中,堆棧指針9僅可與進(jìn)程P1的程序計(jì)數(shù)器一起使用。
在圖4b)中所示的本發(fā)明實(shí)施例中,安排控制器1使堆棧指針10適于用在任務(wù)P3內(nèi)。在該配置中,堆棧指針10可用于指向在這樣的任務(wù)中使用的無(wú)論哪個(gè)程序計(jì)數(shù)器Pc2,Pc1和Pc0??梢钥闯霎?dāng)任務(wù)P0和P3各具有一個(gè)子程序級(jí)時(shí),將同時(shí)用到堆棧指針9和10。
雖然已僅相對(duì)任務(wù)P0和P3描述了堆棧指針9和10,在其它實(shí)施例中,一個(gè)或這兩個(gè)堆棧指針可與其它任務(wù)相關(guān)聯(lián)。類(lèi)似地,控制器1的其它實(shí)施例可包含與任務(wù)P1和/或P2相關(guān)聯(lián)的附加堆棧指針,因此任何數(shù)量的任務(wù)P0,P1,P2或P3可利用其它剩余任務(wù)的非共享資源,若這些資源適用,即可用來(lái)調(diào)用子程序。
如本領(lǐng)域技術(shù)人員將會(huì)理解的,通過(guò)建立重復(fù)上述分支控制指令功能的一系列指令,無(wú)限數(shù)量的子程序和子程序級(jí)可同時(shí)歸于每個(gè)任務(wù)P0,P1,P2和P3。
返回圖2,現(xiàn)在描述控制器1接收的內(nèi)部和外部事件的管理及適當(dāng)?shù)娜蝿?wù)請(qǐng)求信號(hào)的產(chǎn)生??梢灾赶蚴录鎯?chǔ)單元5的事件分為標(biāo)著gr0,gr1,gr2及gr3的四組??刂破?用這些事件開(kāi)始其不同任務(wù)的處理。六個(gè)事件與這些事件組中每組相關(guān)聯(lián),其中四個(gè)為內(nèi)部事件兩個(gè)為外部事件。對(duì)這些事件組中每一組而言,其六個(gè)事件在事件存儲(chǔ)單元5中從“或”(OR)功能求和,以便產(chǎn)生事件組信號(hào)。因此,特定事件組的六個(gè)事件到達(dá)任何一個(gè)都會(huì)致使事件存儲(chǔ)單元5產(chǎn)生相應(yīng)于該事件組的事件組信號(hào)。
這樣產(chǎn)生的每一事件組信號(hào)送至事件路由器8,根據(jù)事件路由器8的構(gòu)造,其產(chǎn)生相應(yīng)于任務(wù)P0,P1,P2或P3之一的任務(wù)請(qǐng)求信號(hào)。每一任務(wù)請(qǐng)求信號(hào)可具有表示指向特定任務(wù)的一個(gè)或多個(gè)任務(wù)存在的激活狀態(tài),或者表示設(shè)有指向該任務(wù)的事件存在的非激活狀態(tài)。
當(dāng)不存在與特定任務(wù)請(qǐng)求信號(hào)相關(guān)的事件時(shí),使對(duì)應(yīng)那個(gè)的任務(wù)不激活是可能的。因此中斷控制器1執(zhí)行該任務(wù)。當(dāng)所有的任務(wù)請(qǐng)求信號(hào)為非激活的因此無(wú)任務(wù)處于執(zhí)行狀態(tài)時(shí),控制器1進(jìn)入休眠狀態(tài),其功耗為準(zhǔn)零。然而,當(dāng)存在一個(gè)或多個(gè)事件時(shí),不能使相應(yīng)的任務(wù)請(qǐng)求信號(hào)成為不激活的。
圖5描繪出事件路由器8提供的各種結(jié)構(gòu)模式。在本舉例應(yīng)用中,5個(gè)這種模式是可能的。在模式0,如圖5中a)所示,所有事件組信號(hào)及至所有事件指向任務(wù)P0。這樣多任務(wù)處理控制器1用作單一處理器,順序地執(zhí)行任務(wù)P0的指令。事件存儲(chǔ)單元5中的事件不能請(qǐng)求執(zhí)行任務(wù)P1,P2和P3,由此釋放這些任務(wù)的各非共享資源以能夠從控制器1執(zhí)行的單個(gè)任務(wù)內(nèi)調(diào)用子程序。
在模式1中,如圖5中b)所示,來(lái)自事件組gr0,gr1和gr2的事件組信號(hào)指向任務(wù)P0,而來(lái)自事件組gr3的事件組信號(hào)指向任務(wù)P3。任務(wù)P1和P2的大量共享資源適用于從任務(wù)P0和P3內(nèi)調(diào)用2程序。如圖5中c)所示,在模式2中,任務(wù)P0和P3分別接收事件組gr0和gr1及事件組gr2和gr3的事件組信號(hào)產(chǎn)生的任務(wù)請(qǐng)求信號(hào)。而且,任務(wù)P1和P2的非共享資源也適用于從任務(wù)P0和P3內(nèi)調(diào)用子程序。
在模式3中,如圖5中d)所示,事件組gr0和gr1的事件組信號(hào)指向任務(wù)P0,而來(lái)自事件組gr2的事件組信號(hào)僅指向任務(wù)P2,來(lái)自事件組gr3的事件組信號(hào)僅指向任務(wù)P3。僅任務(wù)P1的非共享資源可用于調(diào)用子程序。最后,在模式4中如e)所示,各任務(wù)P0,P1,P2和P3分別從事件組gr0,gr1,gr2和gr3接收事件組信號(hào)。這樣控制器1的用戶可選擇最好對(duì)應(yīng)特定應(yīng)用的事件路由選擇模式。
最后,可以理解對(duì)本發(fā)明的多任務(wù)處理控制器可作出各種改型和/或附加物而不偏離所附權(quán)利要求書(shū)所定義的本發(fā)明范圍。
權(quán)利要求
1.一種多任務(wù)處理控制器包含用于存儲(chǔ)多達(dá)N個(gè)各包含一系指令的任務(wù)(P0,P1,P2,P3)的任務(wù)存儲(chǔ)裝置(2);通過(guò)分時(shí)處理所述N個(gè)任務(wù)中的多個(gè)的微處理器,以及用于存儲(chǔ)由所述微處理器建立和運(yùn)用的各種數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)裝置(12);其特征在于所述微處理器還包含以便件實(shí)現(xiàn)、用于通過(guò)所述進(jìn)程控制所述微處理器的運(yùn)用的調(diào)度部件(7),以及用于存儲(chǔ)各為所述調(diào)度程序(7)所用的N個(gè)程序計(jì)數(shù)器以控制所述N個(gè)進(jìn)程中各個(gè)的指令序列的程序計(jì)數(shù)器存儲(chǔ)裝置,因此當(dāng)所述微處理器所處理的任務(wù)改變時(shí)所述調(diào)度程序部件(7)能夠選擇所述程序計(jì)數(shù)器(Pc0,Pc1,Pc2,Pc3)中不同的一個(gè),而無(wú)需從所述數(shù)據(jù)存儲(chǔ)裝置(12)傳輸數(shù)據(jù)。
2.如權(quán)利要求1所述的多任務(wù)處理控制器,其特征在于所述微處理順還包含用于存儲(chǔ)所述N個(gè)任務(wù)中每一個(gè)的各自累計(jì)值的累計(jì)值存儲(chǔ)裝置(13),這樣當(dāng)所述微處理器處理的任務(wù)改變時(shí)所述微處理器能夠選擇不同的所述累計(jì)值,而無(wú)需從所述數(shù)據(jù)存儲(chǔ)裝置(12)傳輸數(shù)據(jù)。
3.如權(quán)利要求1或2所述的多任務(wù)處理控制器,其特征在于所述微處理器還包含用于存儲(chǔ)所述N個(gè)任務(wù)中每個(gè)的各自變址值的變址存儲(chǔ)裝置(14),這樣當(dāng)所述微處理器處理的任務(wù)改變時(shí)所述微處理器能夠選擇不同的所述變址值之一,而無(wú)需自所述數(shù)據(jù)存儲(chǔ)裝置(12)傳輸數(shù)據(jù)。
4.如前述權(quán)項(xiàng)之任一項(xiàng)所述的多任務(wù)處理控制器,其特征在于所述調(diào)度部件(7)包括一硬件有限狀態(tài)機(jī)。
5.如權(quán)利要求1至3中任一項(xiàng)所述的多任務(wù)控制器,其特征在于所述調(diào)度部件(7)包含一可編程邏輯陣列。
6.如權(quán)利要求1至3中任一項(xiàng)所述的多任務(wù)控制器,其特征在于所述調(diào)度部件(7)包含一ROM。
7.如前述權(quán)項(xiàng)之任一項(xiàng)所述的多任務(wù)控制器,其特征在于所述微處理器是可配置以便依次處理X個(gè)所述任務(wù)中每個(gè)的一個(gè)部分,其中1<X<N,所述微處理器運(yùn)用剩余N-X個(gè)任務(wù)之一或多個(gè)的程序計(jì)數(shù)器,以控制由所述X個(gè)任務(wù)內(nèi)調(diào)用的子程序的指令序列。
8.如權(quán)利要求7所述的多任務(wù)控制器,其特征在于所述微處理器還包括用于控制在所述X個(gè)任務(wù)之一的處理中所用的所述程序計(jì)數(shù)器的運(yùn)用的一個(gè)或一個(gè)以上的堆棧指針。
9.如前述權(quán)項(xiàng)之任一項(xiàng)所述的多任務(wù)控制器,其特征在于所述微處理器還包含用于接收來(lái)自一組一個(gè)或多個(gè)事件信號(hào)的事件組信號(hào)并產(chǎn)生對(duì)應(yīng)于所述X個(gè)任務(wù)之所選的一個(gè)的任務(wù)請(qǐng)求信號(hào)(Req0,Req1,Req2,Req3),所述任意請(qǐng)求信號(hào)請(qǐng)求所述調(diào)度部件執(zhí)行所述選出的任務(wù)的事件路由器(8)。
10.如權(quán)利要求9所述的多任務(wù)控制器,其特征在于每一所述事件信號(hào)由來(lái)自所述控制器處圍設(shè)備的外部事件信號(hào)或所述微處理器產(chǎn)生的內(nèi)部事件信號(hào)組成。
11.如權(quán)利要求10所述的多任務(wù)控制器,其特征在于所述事件路由器(8)是用于接收來(lái)自N組事件信號(hào)(gr0,gr1,gr2,gr3)中每組的事件組信號(hào)。
12.如權(quán)利要求11所述的多任務(wù)控制器,其特征在于所述事件路由器(8)是配置以使對(duì)應(yīng)于所述選出的任務(wù)的任務(wù)請(qǐng)求信號(hào)(Req0,Req1,Req2,Req3)響應(yīng)從一個(gè)或多個(gè)所選事件信號(hào)組(gr0,gr1,gr2,gr3)接收的事件組信號(hào)而產(chǎn)生。
全文摘要
一種多任務(wù)處理控制器,包含用于存儲(chǔ)多達(dá)N個(gè)各含一系列指令的任務(wù)的任務(wù)存儲(chǔ)裝置,用于通過(guò)分時(shí)處理多個(gè)所述N個(gè)任務(wù)的微處理器,及用于存儲(chǔ)所述微處理器的各種數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)裝置。微處理器還包含以硬件實(shí)現(xiàn)用于通過(guò)進(jìn)程控制微處理器的使用的調(diào)度部件,及用于存儲(chǔ)各為調(diào)度部件所用的N個(gè)程序計(jì)數(shù)器的程序計(jì)數(shù)器存儲(chǔ)裝置,這樣當(dāng)微處理器處理的任務(wù)改變時(shí)調(diào)度部件能選擇不同的一個(gè)程序計(jì)數(shù)器而無(wú)需從數(shù)據(jù)存儲(chǔ)裝置傳輸數(shù)據(jù)。
文檔編號(hào)G06F9/48GK1089740SQ93121278
公開(kāi)日1994年7月20日 申請(qǐng)日期1993年12月22日 優(yōu)先權(quán)日1992年12月23日
發(fā)明者J·-F·佩羅托, C·拉莫特 申請(qǐng)人:電子鐘表中心有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宜城市| 禄丰县| 平远县| 闸北区| 万源市| 哈巴河县| 昔阳县| 民权县| 修武县| 漯河市| 金川县| 海宁市| 增城市| 吕梁市| 宿州市| 睢宁县| 平顶山市| 库车县| 楚雄市| 秦皇岛市| 宽甸| 巩义市| 出国| 山阴县| 安陆市| 安宁市| 霍林郭勒市| 湘阴县| 务川| 甘孜| 松桃| 杂多县| 措美县| 新化县| 昌邑市| 南靖县| 丰台区| 伊通| 抚远县| 潼南县| 额济纳旗|