專利名稱:微控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及與系統(tǒng)時鐘同步動作,通過流水線處理取出、譯碼和執(zhí)行ROM等存儲器上的指令程序的微控制器。
背景技術(shù):
在以低耗電的觀點重新對使用微控制器的系統(tǒng)進行評價時,不是在所有的任務(wù)中都需要微控制器以最高頻率動作。要點是,以不使系統(tǒng)的性能受損的最低動作頻率即可。
在一般的微控制器中設(shè)想這樣的情況設(shè)定一種能夠在從原振蕩信號生成系統(tǒng)時鐘的過程中變更分頻比的結(jié)構(gòu)。
在傳統(tǒng)的微控制器中,一般通過對被地址映像的寄存器設(shè)定任意數(shù)據(jù)來進行分頻比的控制,但在這種結(jié)構(gòu)中即使對耗電、動作頻率嘗試精細的控制,也將產(chǎn)生用以寫入的指令執(zhí)行周期份額的時間損耗,從而不能得到預(yù)期的頻率控制和功率控制的效果。作為對這些問題的解決方案,已公開了一種按照所存取的存儲器空間來變更頻率的技術(shù)(例如參照特開平2-118811號公報)。但是,這時需要執(zhí)行向被分配到要變更頻率的存儲器空間的跳轉(zhuǎn)指令,因此是尚未完善的解決方案。
以下,就如上所述的傳統(tǒng)微控制器進行說明。圖10、圖11是表示傳統(tǒng)微控制器的大體結(jié)構(gòu)的框圖,圖10詳細表示了其內(nèi)部的時鐘脈沖發(fā)生器的結(jié)構(gòu),圖11詳細表示了其內(nèi)部的CPU的結(jié)構(gòu)。
在圖10中,1000為微控制器,100為CPU。CPU100除了經(jīng)總線與ROM700、時鐘脈沖發(fā)生器800連接之外,還從時鐘脈沖發(fā)生器800輸入系統(tǒng)時鐘sysclk。微控制器1000與該sysclk同步動作。時鐘脈沖發(fā)生器800以原振蕩信號oscin作為輸入,由時鐘分頻電路801、選擇器802、時鐘分頻控制電路803以及時鐘分頻控制寄存器804構(gòu)成。時鐘分頻電路801對oscin進行分頻,除一分頻信號之外還生成多個分頻信號。時鐘分頻控制寄存器804是可根據(jù)CPU100的處理指令來進行讀出/寫入的寄存器,對根據(jù)被設(shè)定的數(shù)據(jù)選擇由時鐘分頻電路801生成的分頻信號之一的信息進行保持。時鐘分頻控制電路803基于時鐘分頻控制寄存器804中所設(shè)定的數(shù)據(jù)調(diào)整時鐘切換的定時,輸出選擇器802的控制信號oscsel。選擇器802根據(jù)oscsel從時鐘分頻電路801輸出的分頻信號中選擇一個,作為sysclk傳送給CPU100。
在圖11中,CPU100由指令解碼器400、數(shù)據(jù)總線300、數(shù)據(jù)寄存器500、地址寄存器600以及總線接口200構(gòu)成,CPU內(nèi)部的數(shù)據(jù)經(jīng)總線接口200進行交換,CPU的動作由微代碼(MIR)來控制。
以下,以8比特的微控制器為例就如上述構(gòu)成的微控制器的一般動作進行說明。
首先,從ROM700輸入的數(shù)據(jù)經(jīng)總線接口200進入指令解碼器400內(nèi)的指令取出緩沖器(IFB)401中,經(jīng)指令緩沖器(IB)402后分成操作碼和操作數(shù)。
從IB402輸出的操作碼輸入到指令寄存器(IR)403中后被可編程邏輯陣列(PLA)404譯碼,然后作為MIR供給總線接口200、數(shù)據(jù)總線300、指令解碼器400的各構(gòu)成塊,各構(gòu)成塊根據(jù)輸入的MIR進行處理動作。
另外,從IB402輸出的操作數(shù)按照MIR,或者傳送給數(shù)據(jù)總線300或者傳送給數(shù)據(jù)寄存器500或地址寄存器600等。
為了變更系統(tǒng)時鐘sysclk的分頻比,通過向被地址映像的時鐘分頻控制寄存器804寫入與各分頻比相當(dāng)?shù)脑O(shè)定值,由時鐘分頻控制電路803調(diào)整切換定時,將選擇信號oscsel輸出到選擇器802,選擇器802按照該選擇信號選擇分頻信號并作為sysclk傳送到CPU100。
以下,利用程序例和時序圖,就如以上的傳統(tǒng)微控制器的動作進行說明。
圖12A、圖12B、圖12C是傳統(tǒng)微控制器的指令格式、程序例、動作時序圖。以下,用(1)~(7)置換圖12B、圖12C中用圓圈表示的數(shù)字進行說明。
指令格式由表示指令映像的頁面數(shù)的4比特擴展碼、8比特的操作碼以及4×n比特(n=1,2…)的操作數(shù)構(gòu)成。
程序例作為執(zhí)行從(1)至(7)的指令的程序,在以sysclk作為oscin的一分頻信號執(zhí)行指令(1)之后,由指令(2)將分頻比從一分頻切換成二分頻。在執(zhí)行完指令(3)和(4)之后,由指令(5)再次返回至一分頻執(zhí)行指令(6)和指令(7)。在時序圖中所示的記號中,(1)-1表示程序例的指令(1)的第一半字節(jié)的機器碼,(1)μ-1表示指令(1)的執(zhí)行周期的第一周期。T1、T2分別表示sysclk的下降沿、上升沿的定時。
在定時A,由于oscsel為‘L’所以sysclk以1/1oscin(一分頻信號)的周期動作。IFB401、IB402在T1從ROM700取出指令(1)-1和(1)-2。由于指令(1)-1為擴展碼,(1)-2為操作碼的第一半字節(jié)而不是操作數(shù),因此所有數(shù)據(jù)均輸出到IR403。在定時B,IR403在T2鎖存(1)-1、2并輸出到PLA404,PLA404開始解碼。由于(1)-1為擴展碼,(1)-2在操作碼的第二半字節(jié)被取出之前不被處理,因此,在下一個T1即定時C只將與(1)-1相當(dāng)?shù)腗IR((1)μ-1)作為擴展碼的識別周期輸出。與此同時,IFB401取出指令(1)-3和(2)-1。在定時D,IR403取得指令(1)的剩余一個半字節(jié)的操作碼(1)-3,與等待處理的(1)-2一起由PLA404解碼。在定時E,輸出(1)-2、3的MIR((1)μ-2)同時IFB401取出(2)-2、3。另外,在定時D未被IR403取得的(2)-1在定時E轉(zhuǎn)移到IB402。再有,如(3)-1擴展碼經(jīng)過IFB401、IB402時,由于在這期間進行識別,因此在定時F不被IR403取得,而由IR403取得操作碼即(3)-2、3。
在指令(2)中,通過在執(zhí)行周期(2)μ-3中的向時鐘分頻控制寄存器804的寫入,oscsel在定時G變成‘H’,將sysclk從1/1oscin(一分頻信號)變更為1/2oscin(二分頻信號)。同樣,通過指令(5)將sysclk從1/2oscin返回至1/1oscin。
如上所述,傳統(tǒng)的微控制器可通過對時鐘分頻控制寄存器804的寫入指令來控制頻率。
但是,在如上述的傳統(tǒng)微控制器中,為了變更頻率,需用多個周期來執(zhí)行對寄存器的寫入指令。因此,就存在在維持系統(tǒng)性能不變的情況下不能精細地通過頻率控制來調(diào)整耗電。
發(fā)明內(nèi)容
本發(fā)明為了解決上述的傳統(tǒng)問題而提出,其目的在于提供一種可消除頻率變更所需的時間滯后,并能夠通過準確、迅速地執(zhí)行與任務(wù)相對應(yīng)的頻率控制來降低耗電的微控制器。
本發(fā)明的第一微控制器中設(shè)有處理器,它將振蕩頻率的1/n(n為分頻比、不小于1的整數(shù))的不同頻率的多個時鐘信號中與頻率信息對應(yīng)的時鐘信號作為系統(tǒng)時鐘輸入,與系統(tǒng)時鐘同步動作,對于由存儲在存儲器中的操作碼和操作數(shù)構(gòu)成的指令程序,由流水線處理取出操作碼和操作數(shù)進行譯碼,并基于該譯碼結(jié)果執(zhí)行指令程序。操作碼上附加了確定系統(tǒng)時鐘的分頻比的頻率控制信號,存儲在存儲器中;處理器通過由流水線處理與操作碼同時取出頻率控制信號并進行譯碼,輸出與頻率控制信號對應(yīng)的頻率信息。
依據(jù)該結(jié)構(gòu),由于控制頻率的信息在流水線中與操作碼同樣被處理,因此,無需像傳統(tǒng)技術(shù)那樣向頻率控制寄存器寫入設(shè)定數(shù)據(jù),能夠在不使系統(tǒng)的性能受損的情況下精細地進行頻率控制,并有效地降低微控制器的耗電。
另外,本發(fā)明的第二微控制器中設(shè)有處理器,它將振蕩頻率的1/n(n為分頻比、不小于1的整數(shù))的不同頻率的多個時鐘信號中與頻率信息對應(yīng)的時鐘信號作為系統(tǒng)時鐘輸入,與系統(tǒng)時鐘同步動作,對于由存儲在存儲器中的擴展碼和操作碼以及操作數(shù)構(gòu)成的指令程序,通過流水線處理取出擴展碼和操作碼以及操作數(shù)進行譯碼,并基于該譯碼結(jié)果執(zhí)行指令程序。該控制器由機器碼構(gòu)成操作碼,設(shè)置成由與各分頻比對應(yīng)地分類到頁面的由多個頁面形成的指令映像;使與操作碼同時被流水線處理的擴展碼含有表示指令映像的頁面的信息;處理器通過由流水線處理取出擴展碼并進行譯碼,輸出與分頻比對應(yīng)的頻率信息,該分頻比與擴展碼所表示的指令映像的頁面對應(yīng)。
依據(jù)該結(jié)構(gòu),由于原有的擴展碼區(qū)含有頻率控制信息,所以不會增加電路規(guī)模,并且比操作碼更早地被解碼,因此,能夠容易地使要變更頻率的指令的執(zhí)行周期與頻率變更定時相一致,更準確地實現(xiàn)應(yīng)程序開發(fā)人員意圖的低耗電化。
另外,在第一和第二微控制器中可設(shè)置時鐘脈沖發(fā)生器,它生成振蕩頻率的1/n(n為分頻比、不小于1的整數(shù))的不同頻率的多個時鐘信號,并從中選擇與處理器輸出的頻率信息對應(yīng)的時鐘信號作為系統(tǒng)時鐘向處理器輸出。
另外,該時鐘脈沖發(fā)生器可由以下單元構(gòu)成輸出振蕩頻率的1/n(n為分頻比、不小于1的整數(shù))的不同頻率的多個時鐘信號的分頻單元;基于選擇信號從分頻單元輸出的多個時鐘信號中選擇一個時鐘信號作為系統(tǒng)時鐘加以輸出的選擇單元;以及將與從處理器輸出的頻率信息對應(yīng)的選擇信號輸出到選擇單元的控制單元。
另外,在第一微控制器中可設(shè)置ROM代碼化單元,它根據(jù)確定源程序中所描述的系統(tǒng)時鐘的分頻比的分頻比設(shè)定描述來生成頻率控制信號,并將它附加在由分頻比設(shè)定描述的后段的指令生成的操作碼上并進行ROM代碼化。
因此,在操作碼上附加頻率控制信號,不會給程序開發(fā)人員帶來負擔(dān),可由編譯程序自動完成機器碼化。
另外,在第一微控制器中可設(shè)置ROM代碼化單元,它根據(jù)確定源程序中所描述的系統(tǒng)時鐘的分頻比的分頻比設(shè)定描述來生成頻率控制信號,并且,在分頻比設(shè)定描述的前段指令的執(zhí)行周期數(shù)未滿基準數(shù)時將頻率控制信號附加在由分頻比設(shè)定描述的前段指令生成的操作碼上,在其為基準數(shù)以上時將頻率控制信號附加在由分頻比設(shè)定描述的后段的指令生成的操作碼上并進行ROM代碼化。
由此,能夠?qū)㈩l率控制信號與操作碼同時解碼,并減小因被執(zhí)行前的處理時間引起的要變更頻率的指令的執(zhí)行周期和頻率變更定時的誤差。
另外,在第二微控制器中可設(shè)置ROM代碼化單元,它根據(jù)確定源程序中所描述的系統(tǒng)時鐘的分頻比的分頻比設(shè)定描述來選擇與分頻比對應(yīng)的擴展碼,從擴展碼所表示的指令映像的頁面選擇與分頻比設(shè)定描述的后段的指令相當(dāng)?shù)牟僮鞔a并進行ROM代碼化。
由此,設(shè)定系統(tǒng)時鐘的分頻比、選擇與該分頻比相當(dāng)?shù)闹噶畲a可通過固有的分頻比設(shè)定描述不會給程序開發(fā)人員帶來負擔(dān),可由編譯程序自動完成機器碼化。
圖1是表示本發(fā)明第一實施例的微控制器的大體結(jié)構(gòu)的框圖。
圖2是表示本發(fā)明第一實施例的微控制器的大體結(jié)構(gòu)的框圖。
圖3A是表示本發(fā)明第一實施例的微控制器的指令格式的圖。
圖3B是表示本發(fā)明第一實施例的微控制器的程序例的圖。
圖3C是本發(fā)明第一實施例的微控制器的動作時序圖。
圖4是表示本發(fā)明第二實施例的微控制器的大體結(jié)構(gòu)的框圖。
圖5A和圖5B是本發(fā)明第二實施例的微控制器的指令映像的說明圖。
圖6A是表示本發(fā)明第二實施例的微控制器的指令格式的圖。
圖6B是表示本發(fā)明第二實施例的微控制器的程序例的圖。
圖6C是本發(fā)明第二實施例的微控制器的動作時序圖。
圖7A是表示本發(fā)明第三實施例的微控制器中的機器碼的生成和對ROM的配置順序的流程圖。
圖7B是表示在本發(fā)明的第三實施例中由編譯程序從程序源生成機器碼的方法的圖。
圖8A是表示本發(fā)明第四實施例的微控制器中的機器碼的生成和對ROM的配置順序的流程圖。
圖8B是表示在本發(fā)明的第四實施例中由編譯程序從程序源生成機器碼的方法的圖。
圖8C是本發(fā)明第四實施例的微控制器的動作時序圖。
圖9A是表示本發(fā)明第五實施例的微控制器中的機器碼的生成和對ROM的配置順序的流程圖。
圖9B是表示在本發(fā)明的第五實施例中由編譯程序從程序源生成機器碼的方法的圖。
圖10是表示傳統(tǒng)微控制器一般的大體結(jié)構(gòu)的框圖。
圖11是表示傳統(tǒng)微控制器一般的大體結(jié)構(gòu)的框圖。
圖12A是表示傳統(tǒng)微控制器的指令格式的圖。
圖12B是表示傳統(tǒng)微控制器的程序例的圖。
圖12C是傳統(tǒng)微控制器的動作時序圖。
具體實施例方式
以下,參照附圖,就本發(fā)明的實施例進行詳細的說明。
(第一實施例)以下就本發(fā)明的第一實施例的微控制器進行說明。圖1、圖2是表示第一實施例的微控制器的大體結(jié)構(gòu)的框圖。圖1詳細表示了微控制器內(nèi)部的時鐘脈沖發(fā)生器的結(jié)構(gòu),圖2詳細表示了微控制器內(nèi)部的CPU的結(jié)構(gòu)。
在圖1中,1000為微控制器,100為CPU。CPU100與ROM700經(jīng)總線連接,時鐘脈沖發(fā)生器800由時鐘分頻電路801、選擇器802以及時鐘分頻控制電路803構(gòu)成,以原振蕩信號oscin為其輸入信號,根據(jù)從CPU100輸出的微代碼MIR確定系統(tǒng)時鐘sysclk的分頻比,傳送給CPU100。微控制器1000與該sysclk同步動作。時鐘分頻電路801對原振蕩信號oscin進行分頻,除一分頻信號之外還生成多個其它的分頻信號。時鐘分頻控制電路803基于從CPU100輸出的MIR來調(diào)整時鐘切換的定時,并輸出選擇器802的控制信號oscsel。選擇器802根據(jù)oscsel從時鐘分頻電路801輸出的分頻信號中選擇一個信號,作為sysclk傳送給CPU100。
在圖2中,CPU100由指令解碼器400、數(shù)據(jù)總線300、數(shù)據(jù)寄存器500、地址寄存器600、總線接口200構(gòu)成,經(jīng)總線接口200進行CPU內(nèi)部的數(shù)據(jù)交換,通過微代碼(MIR)控制CPU的動作。
以下,就如上述構(gòu)成的第一實施例的微控制器的動作進行說明。
首先,從ROM700輸入的數(shù)據(jù)經(jīng)總線接口200被取到指令解碼器400內(nèi)的指令取出緩沖器(IFB)401中,經(jīng)過指令緩沖器(IB)402之后被分成操作碼和操作數(shù)。
從IB402輸出的操作碼輸入到指令寄存器(IR)403中之后,被可編程邏輯陣列(PLA)404譯碼,作為MIR供給總線接口200、數(shù)據(jù)總線300、指令解碼器400的各構(gòu)成塊,各構(gòu)成決根據(jù)輸入的MIR執(zhí)行處理動作。
另外,從IB402輸出的操作數(shù)按照MIR,或者傳送給數(shù)據(jù)總線300或者傳送給數(shù)據(jù)寄存器500或地址寄存器600等。
變更系統(tǒng)時鐘sysclk的分頻比的原理是,將附加于操作碼的頻率控制信號和操作碼一起譯碼,作為MIR傳送給時鐘分頻控制電路803。在時鐘分頻控制電路803中基于所傳送的MIR調(diào)整切換定時,將選擇信號oscsel輸出到選擇器802,用選擇器802選擇分頻信號并作為sysclk傳送給CPU100。
利用程序例和時序圖,就如以上所述的第一實施例的微控制器的動作進行說明。
圖3A、圖3B、圖3C是第一實施例微控制器的指令格式、程序例、動作時序圖。這里表示了以8比特的微控制器為例將sysclk的分頻比從oscin的一分頻切換成二分頻,然后再切換成一分頻的動作。以下,用(1)~(7)置換圖3B、圖3C中用圓圈表示的數(shù)字進行說明。
指令格式由表示指令映像的頁面數(shù)的4比特擴展碼、8比特的操作碼、附加于操作碼的1比特的頻率控制信號(頻率控制位)以及4×n比特(n=1,2…)的操作數(shù)構(gòu)成。
程序例作為執(zhí)行從(1)至(7)的指令的程序,由指令(3)將sysclk的分頻比從oscin的一分頻切換成二分頻,在指令(6)之后再切換成一分頻。附加于操作碼中的頻率控制信號用*0或*1來表示,*0時選擇一分頻,*1時選擇二分頻。在時序圖中所示的記號中,(1)-1表示程序例的指令(1)的第一半字節(jié)的機器碼,(1)μ-1表示指令(1)的執(zhí)行周期的第一周期。T1、T2分別表示sysclk的下降沿、上升沿的定時。
在定時A,由于oscsel為‘L’所以sysclk以1/1oscin(一分頻信號)的周期動作。IFB401、IB402在T1從ROM700取出指令(1)-1和(1)-2。由于指令(1)-1為擴展碼,(1)-2為操作碼的第一半字節(jié)而不是操作數(shù),因此所有數(shù)據(jù)均輸出到IR403。在定時B,IR403在T2鎖存(1)-1、2并輸出到PLA404,PLA404開始解碼。由于(1)-1為擴展碼,(1)-2在取出操作碼的第二半字節(jié)之前不被處理,因此,在下一個T1即定時C只將與(1)-1相當(dāng)?shù)腗IR((1)μ-1)作為擴展碼的識別周期輸出。與此同時,IFB401取出指令(1)-3和(3)-1。在定時D,IR403取得指令(1)的剩余一個半字節(jié)的操作碼(1)-3,與等待處理的(1)-2一起由PLA404解碼。在定時E,輸出(1)-2、3的MIR((1)μ-2)同時IFB401取出(3)-2、3。另外,在定時D被IR403取得的(3)-1在定時E轉(zhuǎn)移到IB402。再有,如(3)-1擴展碼經(jīng)過IFB401、IB402時,由于在這期間被識別,因此在定時F不被IR403取得,IR403取得操作碼(3)-2、3。
由于(3)-3在附加的頻率控制信號上含有二分頻控制的信息(*1),因此,在(3)μ-1的周期中被作為MIR輸出到時鐘脈沖發(fā)生器800。時鐘分頻控制電路803調(diào)整切換定時,在定時G將oscsel設(shè)為‘H’,將sysclk切換成1/2oscin(二分頻信號)。同樣,根據(jù)附加于指令(6)的頻率控制信號返回至1/1oscin。
再有,所附加的頻率控制信號并不僅限于1比特,根據(jù)微控制器的規(guī)格也可以為幾比特。
依據(jù)如以上所述的第一實施例,通過在操作碼上附加確定系統(tǒng)時鐘的分頻比的頻率控制信號,與操作碼同樣地在流水線中進行處理,因此,不需要如傳統(tǒng)技術(shù)那樣花費向頻率控制寄存器(804)寫入設(shè)定數(shù)據(jù)所用的時間,能夠不使系統(tǒng)的性能受損地有效降低微控制器的耗電。另外,在本實施例中以8比特的微控制器為例進行了說明,但如果比特數(shù)增加,則由于所附加的比特對電路規(guī)模的影響極小,本發(fā)明的效果會更加顯著。
(第二實施例)以下就本發(fā)明的第二實施例的微控制器進行說明。
圖4是表示第二實施例的微控制器的大體結(jié)構(gòu)的框圖。在第二實施例中,沒有如第一實施例那樣在IFB401、IB402、IR403、PLA404和所傳送的操作碼上附加頻率控制信號,操作碼由8比特構(gòu)成。其它的大體結(jié)構(gòu)與第一實施例的微控制器相同。因此,時鐘脈沖發(fā)生器800的內(nèi)部結(jié)構(gòu)與圖1相同。
以下,就如上述構(gòu)成的第二實施例的微控制器的動作進行說明。
圖5A和圖5B表示第二實施例的微控制器的指令映像例。指令映像由多個頁面構(gòu)成,按每一分頻比分類到各頁面中。因此,即使操作碼相同,也因表示指令映像頁面數(shù)的擴展碼不同而以不同的頻率執(zhí)行。例如,指令映像A和指令映像B分別與一分頻和二分頻對應(yīng),以擴展碼‘0011’和‘0101’分類。映像中的MC1和MC2為相同執(zhí)行內(nèi)容的指令,其擴展碼以外的機器碼也相同。在用CPU來處理這些代碼時,MC1以一分頻、MC2以二分頻進行相同動作。這樣與分頻比對應(yīng)的擴展碼與操作碼相同地在流水線處理中被譯碼,并作為MIR傳送給時鐘分頻控制電路803。在時鐘分頻控制電路803中,基于所傳送的MIR調(diào)整切換定時并將選擇信號oscsel輸出到選擇器802,選擇器802按照該選擇信號oscsel選擇分頻信號并作為sysclk傳送給CPU100。
利用程序例和時序圖,就如以上所述的第二實施例的微控制器的動作進行說明。
圖6A、圖6B、圖6C分別是第二實施例微控制器的指令格式、程序例、動作時序圖。這里,與第一實施例的微控制器的動作說明相同,表示以8比特的微控制器為例將sysclk的分頻比從oscin的一分頻切換成二分頻然后再切換成一分頻的動作。以下,用(1)~(7)置換圖6B、圖6C中用圓圈表示的數(shù)字進行說明。
指令格式由表示指令映像的頁面數(shù)的4比特擴展碼、8比特的操作碼以及4×n比特(n=1,2…)的操作數(shù)構(gòu)成。與第一實施例的微控制器不同之處只在于未附加頻率控制信號。
程序例作為執(zhí)行從(1)至(7)的指令的程序,由指令(3)將sysclk的分頻比從oscin的一分頻切換成二分頻,在指令(6)之后再切換成一分頻。擴展碼的‘0011’表示是將sysclk設(shè)定成oscin的一分頻的指令,‘0101’表示是設(shè)定成二分頻的指令。
在定時A,由于oscsel為‘L’所以sysclk以1/1oscin(一分頻信號)的周期動作。IFB401、IB402在T1從ROM700取出指令(1)-1和(1)-2。由于指令(1)-1為擴展碼,(1)-2為操作碼的第一半字節(jié)而不是操作數(shù),因此所有數(shù)據(jù)均輸出到IR403。在定時B,IR403在T2鎖存(1)-1、2并輸出到PLA404,PLA404開始解碼。由于(1)-1為擴展碼且(1)-2在取出操作碼的第二半字節(jié)之前不被處理,因此,在下一個T1即定時C只將與(1)-1相當(dāng)?shù)腗IR((1)μ-1)作為擴展碼的識別周期輸出。與此同時,IFB401取出指令(1)-3和(3)-1。在定時D,IR403取得指令(1)的剩余的一個半字節(jié)的操作碼(1)-3,與等待處理的(1)-2一起由PLA404解碼。在定時E,在輸出(1)-2、3的MIR((1)μ-2)同時由IFB401取出(3)-2、3。另外,在定時D被IR403取得的(3)-1在定時E轉(zhuǎn)移到IB402。再有,如(3)-1擴展碼經(jīng)由IFB401、IB402時,由于在該期間被識別,因此在定時F不被IR403取得,而由IR403取得操作碼(3)-2、3。
(3)-1為擴展碼,含有二分頻控制的信息‘0101’,在通過IFB401、IB402的期間被譯碼,并作為MIR輸出到時鐘脈沖發(fā)生器800。時鐘分頻控制電路803調(diào)整切換定時,在定時G將oscsel設(shè)為‘H’將sysclk切換成1/2oscin(二分頻信號)。同樣地,根據(jù)指令(6)的擴展碼返回至1/1oscin。由于擴展碼先于操作碼被取出、解碼,因此,能夠按照原本所假想的使(3)μ-1、(3)μ-2、(4)μ-1、(4)μ-2以二分頻動作,使(6)μ-1、(7)μ-1、(7)μ-2以一分頻動作。
依據(jù)如上所述的第二實施例,通過在擴展碼上附加確定系統(tǒng)時鐘的分頻比的信息,能夠在比操作碼早的周期中進行解碼,因此,能夠?qū)⒂靡宰兏l率的時間滯后抑制到最小,程序開發(fā)人員能夠更簡單且正確地執(zhí)行頻率控制。因此,通過消除頻率變更所需的時間滯后并準確迅速地執(zhí)行與任務(wù)相對應(yīng)的頻率控制,能夠降低微控制器的耗電。
再有,指令并不僅限于一分頻和二分頻兩種,根據(jù)微控制器的規(guī)格有時為幾種。另外,指令數(shù)不必每個分頻比均相等,例如,相對于與缺省分頻比相當(dāng)?shù)闹噶?,可以將與其它分頻比相當(dāng)?shù)闹噶顢?shù)限定為幾個。
與一般的大部分微控制器相同,上述第一實施例和第二實施例中的微控制器1000采用內(nèi)設(shè)生成系統(tǒng)時鐘的時鐘脈沖發(fā)生器800的結(jié)構(gòu),但也可以將時鐘脈沖發(fā)生器800外設(shè)。
如以上第一和第二實施例中所說明,通過在操作碼上附加或者使擴展碼含有用以控制頻率的信息,能夠在執(zhí)行指令的流水線處理中進行頻率控制,因此,通過消除頻率變更所需的時間滯后并準確迅速地執(zhí)行與任務(wù)相對應(yīng)的頻率控制,能夠降低微控制器的耗電。
(第三實施例)以下,就本發(fā)明第三實施例的微控制器進行說明。
圖7A是表示第三實施例的微控制器中的機器碼的生成和對ROM的配置順序的流程圖,圖7B是表示在第三實施例中由編譯程序從程序源生成機器碼的方法的圖。以下,用(1)~(7)置換圖7B中用圓圈表示的數(shù)字進行說明。
如圖7A所示,由程序開發(fā)而生成的程序源,通?;谟删幾g程序等發(fā)生的數(shù)據(jù)文件變換成ROM代碼之后,作為布局圖案(layoutpattern)生成并配置于ROM中。但是,在傳統(tǒng)的機器碼生成流程中,不能像第一實施例中的微控制器那樣在機器碼上附加頻率控制信號。
在第三實施例的機器碼生成流程中,通過在程序源內(nèi)插入分頻比設(shè)定描述,能夠在機器碼上附加頻率控制信號。例如,如圖7B的程序例所示,在欲以指令(1)、(3)、(4)、(6)、(7)的順序進行程序設(shè)計,以一分頻信號執(zhí)行指令(1)、(6)、(7),以二分頻信號執(zhí)行指令(3)、(4)的場合,在指令(1)的前段描述‘set fast’,在指令(3)的前段描述‘set slow’,在指令(6)的前段描述‘set fast’。編譯程序以指令和其前段的‘set fast’或‘set slow’的信息作為輸入,將指令變換成機器碼,若前段的分頻設(shè)定描述為‘set fast’則在操作碼上附加‘0’,若為‘set slow’則附加‘1’。另外,若指令的前段不存在任何描述,則繼續(xù)前一機器碼的附加信號。
也就是說,第三實施例的微控制器在所述的第一實施例的結(jié)構(gòu)中設(shè)置了上述的編譯程序、將由編譯程序生成的機器碼變換成ROM代碼的單元和進行ROM配置的單元。
依據(jù)如上所述的第三實施例,在操作碼上附加頻率控制信號不會給程序開發(fā)人員帶來負擔(dān),而可由編譯程序自動完成機器碼化,因此,能夠發(fā)揮出第一實施例的微控制器的特點。
(第四實施例)以下,就本發(fā)明第四實施例的微控制器進行說明。
圖8A是表示第四實施例的微控制器中的機器碼的生成和對ROM的配置順序的流程圖,圖8B是表示在第四實施例中由編譯程序從程序源生成機器碼的方法的圖,圖8C是第四實施例的微控制器的動作時序圖。在本實施例中,對ROM的配置順序與第三實施例相同,但由編譯程序從程序源生成機器碼過程中的生成規(guī)則不同。以下,用(1)~(7)置換圖8B、圖8C中用圓圈表示的數(shù)字進行說明。
在第三實施例中,由‘set fast’、‘set slow’來確定附加于操作碼上的頻率控制信號,但在第一實施例的微控制器中變更分頻比時,為了在操作碼上附加頻率控制信號,從取出到解碼、執(zhí)行、oscsel切換為止需要一點時間。因此,存在趕不上與本來要切換分頻比的指令的執(zhí)行定時的情況,需要由程序開發(fā)人員對頻率控制進行詳細的研究。
在本實施例的機器碼生成流程中,與第三實施例相同地生成從指令(1)至(7)的機器碼時,基于分頻比設(shè)定描述和其前段的指令執(zhí)行周期來確定頻率控制信號。
例如,指令(3)的前段的‘set slow’本來以用二分頻來進行指令(3)動作為目的而插入,但在第一實施例中如圖3A~C所示,由于附加在操作碼上,因而選擇信號oscsel的切換延遲,實際上從指令(4)的執(zhí)行周期((4)μ-1)開始切換。作為該場合的對策,為了以二分頻信號來執(zhí)行指令(3),通過使其前一指令(1)保持二分頻控制的附加信號,恰好在(3)μ-1的執(zhí)行定時G切換成二分頻。但是,在指令(1)的執(zhí)行周期長時,指令(1)的處理頻率成了二分頻。在第四實施例中,若‘set fast’、‘set slow’的前段的指令執(zhí)行周期未滿基準周期,則附加在前段指令的機器碼上,若為基準周期以上,則附加在后段指令的機器碼上。在圖8B的例中,將基準周期設(shè)為3周期,若‘set fast’、‘set slow’的前段的指令執(zhí)行周期未滿3周期(即2周期以下),則附加在前段指令的機器碼上,若為3周期以上,則附加在后段指令的機器碼上。
也就是說,第四實施例的微控制器在所述的第一實施例的結(jié)構(gòu)中設(shè)置了上述的編譯程序、將由編譯程序生成的機器碼變換成ROM代碼的單元和進行ROM配置的單元。
依據(jù)如上所述的第四實施例,由于按照指令的執(zhí)行周期數(shù)來確定在操作碼上附加頻率控制信號,因此,能夠更正確地以所意圖的定時來進行頻率的控制,并且由于程序開發(fā)人員無需考慮執(zhí)行周期數(shù)來進行程序設(shè)計,從而能夠提高程序開發(fā)的效率。
(第五實施例)以下,就本發(fā)明第五實施例的微控制器進行說明。
圖9A是表示第五實施例的微控制器中的機器碼的生成和對ROM的配置順序的流程圖,圖9B是表示在第五實施例中由編譯程序從程序源生成機器碼的方法的圖。在本實施例中,對ROM的配置順序與第三實施例相同,但由編譯程序從程序源生成機器碼過程中的生成規(guī)則不同。以下,用(1)~(7)置換圖9B中用圓圈表示的數(shù)字進行說明。
在本實施例的機器碼生成流程中,通過在程序源內(nèi)插入分頻比設(shè)定描述來選擇與設(shè)定的分頻比對應(yīng)的擴展碼,分頻比設(shè)定描述的后段指令變換成由其擴展碼分類的指令映像中相當(dāng)?shù)臋C器碼。例如,如圖9B的程序例所示,在以指令(1)、(3)、(4)、(6)、(7)的順序進行程序設(shè)計,以一分頻信號執(zhí)行指令(1)、(6)、(7),以二分頻信號執(zhí)行指令(3)、(4)時,在指令(1)的前段描述‘setfast’,在指令(3)的前段描述‘set slow’,在指令(6)的前段描述‘set fast’。假設(shè)在指令映像中,以一分頻信號執(zhí)行的指令組以無擴展碼、擴展碼‘0010’、擴展碼‘0011’進行分類,以二分頻信號執(zhí)行的指令組以擴展碼‘0100’、擴展碼‘0101’、擴展碼‘0110’進行分類。在第五實施例的微控制器中所采用的指令如在第二實施例中說明的圖5A和圖5B的例那樣,一分頻的指令組和二分頻的指令組除了擴展碼之外含有相同的操作碼,并進行相同的動作。編譯程序以指令和其前段的‘set fast’或‘set slow’的信息作為輸入,若前段為‘set fast’則變換成以一分頻信號執(zhí)行的指令組的映像的機器碼,若為‘set slow’則變換成以二分頻信號執(zhí)行的指令組的映像的機器碼。另外,若指令的前段不存在任何描述,則認為分頻比沒有變更,變換成含有與前段的指令相同的分頻比的指令組的機器碼。
也就是說,第五實施例的微控制器在所述的第二實施例的結(jié)構(gòu)中設(shè)置了上述的編譯程序、將由編譯程序生成的機器碼變換成ROM代碼的單元和進行ROM配置的單元。
依據(jù)如上所述的第五實施例,能夠只通過插入分頻比設(shè)定描述使分頻比的設(shè)定反映在機器碼上,從而能提供最大限度地發(fā)揮第二實施例的微控制器特點的程序開發(fā)環(huán)境。
權(quán)利要求
1.一種微控制器,其中設(shè)有處理器,它將振蕩頻率的1/n(n為分頻比、不小于1的整數(shù))的不同頻率的多個時鐘信號中與頻率信息對應(yīng)的所述時鐘信號作為系統(tǒng)時鐘輸入,與所述系統(tǒng)時鐘同步動作,對于由存儲在存儲器中的操作碼和操作數(shù)構(gòu)成的指令程序,由流水線處理取出所述操作碼和所述操作數(shù)進行譯碼,并基于該譯碼結(jié)果執(zhí)行所述指令程序;在所述操作碼上附加確定所述系統(tǒng)時鐘的分頻比的頻率控制信號并存儲到所述存儲器中;所述處理器,通過由流水線處理與所述操作碼一起取出所述頻率控制信號并進行譯碼,輸出與所述頻率控制信號對應(yīng)的所述頻率信息。
2.一種微控制器,其中設(shè)有處理器,它將振蕩頻率的1/n(n為分頻比、不小于1的整數(shù))的不同頻率的多個時鐘信號中與頻率信息對應(yīng)的所述時鐘信號作為系統(tǒng)時鐘輸入,與所述系統(tǒng)時鐘同步動作,對于由存儲在存儲器中的擴展碼、操作碼和操作數(shù)構(gòu)成的指令程序,由流水線處理取出所述擴展碼、所述操作碼和所述操作數(shù)進行譯碼,并基于該譯碼結(jié)果執(zhí)行所述指令程序;由機器碼構(gòu)成所述操作碼,設(shè)置成由與各分頻比對應(yīng)地分類到頁面的由多個頁面形成的指令映像使與所述操作碼一起被流水線處理的所述擴展碼上含有表示所述指令映像的頁面的信息;所述處理器,通過由流水線處理取出所述擴展碼并進行譯碼,輸出依據(jù)分頻比的所述頻率信息,該分頻比與所述擴展碼所表示的所述指令映像的頁面對應(yīng)。
3.如權(quán)利要求1所述的微控制器,其特征在于設(shè)有時鐘脈沖發(fā)生器,它生成所述振蕩頻率的1/n(n為分頻比、不小于1的整數(shù))的不同頻率的多個時鐘信號,并從其中選擇與從所述處理器輸出的所述頻率信息對應(yīng)的時鐘信號作為所述系統(tǒng)時鐘向所述處理器輸出。
4.如權(quán)利要求2所述的微控制器,其特征在于設(shè)有時鐘脈沖發(fā)生器,它生成所述振蕩頻率的1/n(n為分頻比、不小于1的整數(shù))的不同頻率的多個時鐘信號,并從其中選擇與從所述處理器輸出的所述頻率信息對應(yīng)的時鐘信號作為所述系統(tǒng)時鐘向所述處理器輸出。
5.如權(quán)利要求3所述的微控制器,其特征在于,所述時鐘脈沖發(fā)生器中設(shè)有輸出所述振蕩頻率的1/n(n為分頻比、不小于1的整數(shù))的不同頻率的多個時鐘信號的分頻單元;基于選擇信號從所述分頻單元所輸出的所述多個時鐘信號中選擇一個時鐘信號作為所述系統(tǒng)時鐘加以輸出的選擇單元;以及將與從所述處理器輸出的所述頻率信息對應(yīng)的所述選擇信號輸出到所述選擇單元的控制單元。
6.如權(quán)利要求4所述的微控制器,其特征在于,所述時鐘脈沖發(fā)生器中設(shè)有輸出所述振蕩頻率的1/n(n為分頻比、不小于1的整數(shù))的不同頻率的多個時鐘信號的分頻單元;基于選擇信號從所述分頻單元所輸出的所述多個時鐘信號中選擇一個時鐘信號作為所述系統(tǒng)時鐘加以輸出的選擇單元;以及將與從所述處理器輸出的所述頻率信息對應(yīng)的所述選擇信號輸出到所述選擇單元的控制單元。
7.如權(quán)利要求1所述的微控制器,其特征在于,設(shè)有ROM代碼化單元,它根據(jù)確定源程序中所描述的所述系統(tǒng)時鐘的分頻比的分頻比設(shè)定描述生成所述頻率控制信號,并附加在由所述分頻比設(shè)定描述的后段的指令生成的所述操作碼上并進行ROM代碼化。
8.如權(quán)利要求1所述的微控制器,其特征在于,設(shè)有ROM代碼化單元,它根據(jù)確定源程序中所描述的所述系統(tǒng)時鐘的分頻比的所述分頻比設(shè)定描述生成所述頻率控制信號,若所述分頻比設(shè)定描述的前段指令的執(zhí)行周期數(shù)未達到基準數(shù),則將所述頻率控制信號附加在由所述分頻比設(shè)定描述的前段指令生成的所述操作碼上,若為基準數(shù)以上則將所述頻率控制信號附加在由所述分頻比設(shè)定描述的后段的指令生成的所述操作碼上并進行ROM代碼化。
9.如權(quán)利要求2所述的微控制器,其特征在于,設(shè)有ROM代碼化單元,它根據(jù)確定源程序中所描述的所述系統(tǒng)時鐘的分頻比的分頻比設(shè)定描述選擇與分頻比對應(yīng)的所述擴展碼,從所述擴展碼所表示的指令映像的頁面選擇與所述分頻比設(shè)定描述的后段的指令相當(dāng)?shù)乃霾僮鞔a并進行ROM代碼化。
全文摘要
通過可消除動作中的頻率變更所需的時間滯后,并準確迅速地執(zhí)行與任務(wù)對應(yīng)的頻率控制,實現(xiàn)可降低耗電的微控制器。通過在操作碼上附加確定系統(tǒng)時鐘的分頻比的頻率控制信號,并由流水線處理與操作碼一起取出該頻率控制信號進行譯碼,能夠在執(zhí)行指令的流水線處理中進行頻率控制,從而可消除頻率變更所需的時間滯后。
文檔編號G06F15/78GK1542608SQ20041003422
公開日2004年11月3日 申請日期2004年3月31日 優(yōu)先權(quán)日2003年3月31日
發(fā)明者近藤秀二 申請人:松下電器產(chǎn)業(yè)株式會社