国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      精簡(jiǎn)指令集流水線結(jié)構(gòu)的微控制器的指令定義方法

      文檔序號(hào):6417365閱讀:264來(lái)源:國(guó)知局

      專利名稱::精簡(jiǎn)指令集流水線結(jié)構(gòu)的微控制器的指令定義方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及一種應(yīng)用于微控制器(MCU)或中央處理器(CPU)等各種微控制器的指令定義方法,尤其涉及一種應(yīng)用于精簡(jiǎn)指令集流水線結(jié)構(gòu)的MCU或CPU的指令定義方法。目前已公之于世的大多數(shù)精簡(jiǎn)指令集流水線結(jié)構(gòu)微控制器的指令長(zhǎng)度為32位(請(qǐng)見(jiàn)參考文獻(xiàn)1,2,3)。典型的指令定義如下表一所示。表一表一中各字段的意義如下。IT規(guī)定指令類型。例如IT=“00”表示數(shù)學(xué)運(yùn)算類指令;IT=“01”表示邏輯運(yùn)算類指令;IT=“10”表示位移或循環(huán)類指令;IT=“11”表示跳轉(zhuǎn)類指令。OP規(guī)定操作碼。例如OP=“000101”表示A-B;OP=“010001”表示A與B;OP=“000011”表示A+1。WR規(guī)定存放操作運(yùn)算結(jié)果的地址,稱為目標(biāo)地址。RA規(guī)定操作數(shù)A的地址。RB規(guī)定操作數(shù)B的地址。已有技術(shù)的指令定義方案參見(jiàn)以下文獻(xiàn)參考文獻(xiàn)1.美國(guó)AT&amp;T的NeilH.E.Weste和KamramEshraghian的PrinciplesofCMOSVLSIDesign,1993。參考文獻(xiàn)2.美國(guó)PrenticeHall的AdvancedRISCMachinesLtd.的ARMArchitecturalreferenceManual,1996。參考文獻(xiàn)3.美國(guó)PrenticeHall的MarkGordonArnold的VerilogDigitalComputerDesign,AlgorithmsintoHardware,1999。參考文獻(xiàn)4.美國(guó)IntelCorporation的MCS51Micro-controllerFamilyUser’sManual,1994。在復(fù)雜指令集微控制器中,指令的長(zhǎng)度是可變的。例如,INTEL8051的指令可從8位到24位變化(參考文獻(xiàn)4)。每條指令的執(zhí)行在時(shí)間上不能與相鄰指令重疊,執(zhí)行各指令所需的時(shí)間也互不相同。但在精簡(jiǎn)指令集流水線結(jié)構(gòu)微控制器中,每條指令的長(zhǎng)度是一樣的,執(zhí)行時(shí)間也是一樣的,在每一個(gè)時(shí)鐘周期中,都有一條指令進(jìn)入指令“流水線”,且都有一條指令從“流水線”中出來(lái)。所以,微控制器的執(zhí)行速度是平均每個(gè)時(shí)鐘周期執(zhí)行一條指令(個(gè)別指令如跳轉(zhuǎn),讀表等指令除外)。流水線結(jié)構(gòu)的目的是提高執(zhí)行速度。例如,如果執(zhí)行一條指令平均所需的時(shí)間為1μs,若不采取流水線結(jié)構(gòu),則其執(zhí)行速度為平均1條指令/1μs;如果采用5階段的流水線結(jié)構(gòu),則其執(zhí)行速度為平均5條指令/1μs?,F(xiàn)以4階段流水線為例來(lái)說(shuō)明流水線結(jié)構(gòu)微控制器的工作原理第一階段,取指令階段程序計(jì)數(shù)器提供一個(gè)地址給指令存儲(chǔ)器;該存儲(chǔ)器將輸出一條與此地址對(duì)應(yīng)的指令。該指令包含數(shù)學(xué)邏輯單元的操作碼、操作數(shù)、操作數(shù)地址及目標(biāo)地址等信息。第二階段,讀操作數(shù)階段根據(jù)指令中所提供的操作數(shù)地址從隨機(jī)存取存儲(chǔ)器中讀取相應(yīng)的操作數(shù),并將操作數(shù)加到數(shù)學(xué)邏輯單元的輸入端。第三階段,執(zhí)行運(yùn)算階段數(shù)學(xué)邏輯單元執(zhí)行操作碼所規(guī)定的操作運(yùn)算,并得出結(jié)果。第四階段,寫結(jié)果階段將運(yùn)算結(jié)果寫入目標(biāo)地址規(guī)定的存儲(chǔ)單元中。上述四階段流水線結(jié)構(gòu)的操作可用表二來(lái)觀察。表二在周期0,指令1在取指令階段,此時(shí)指令1已從指令存儲(chǔ)器中取出,在周期1,指令1移到讀操作數(shù)階段,根據(jù)指令中規(guī)定的地址,讀取操作數(shù)A,B;此時(shí),指令2進(jìn)入取指令階段。在周期2,指令1進(jìn)入執(zhí)行階段,將操作碼提供給數(shù)學(xué)邏輯單元并將執(zhí)行規(guī)定的操作運(yùn)算;指令2移到讀操作數(shù)階段;指令3進(jìn)入取指令階段。最后,在周期3,指令1進(jìn)入寫結(jié)果階段,將數(shù)學(xué)邏輯單元的運(yùn)算結(jié)果寫入到目標(biāo)地址規(guī)定的存儲(chǔ)單元中。從上述流水線圖表中,可以看到,指令2與3中的操作數(shù)正在或已被讀取時(shí),指令1的結(jié)果被寫入到存儲(chǔ)單元中。如果指令2與3在讀操作數(shù)或執(zhí)行指令的階段需要用指令1的運(yùn)算結(jié)果,那么指令1的運(yùn)算結(jié)果就必須被提前傳遞到數(shù)學(xué)邏輯單元的輸入端,否則,就會(huì)發(fā)生“數(shù)據(jù)災(zāi)難”(DATAHAZARD)或得到錯(cuò)誤的結(jié)果。例如,若指令2要用指令1的結(jié)果,那么在周期3,指令1的結(jié)果在被寫入存儲(chǔ)器的同時(shí)必須被向前轉(zhuǎn)送到指令2的執(zhí)行階段。(這種數(shù)據(jù)轉(zhuǎn)送是通過(guò)下列方法來(lái)實(shí)現(xiàn)的將讀操作數(shù)階段和執(zhí)行階段的操作數(shù)地址或位置與寫結(jié)果階段的目標(biāo)地址或位置進(jìn)行比較,并用一組多路選擇開(kāi)關(guān)將適當(dāng)?shù)牟僮鲾?shù)據(jù)傳遞給數(shù)學(xué)邏輯單元??紤]下列程序片段SUBA,B,C----A-B,結(jié)果存放到CADDD,C,F----D+C,結(jié)果存放到F指令X指令Y上述程序片段的執(zhí)行次序可用下表三的流水線圖表來(lái)表示。表三<tablesid="table3"num="003"><table>周期取指令階段讀操作數(shù)階段執(zhí)行階段寫結(jié)果階段0SUBA,B,C1ADDD,C,FSUBA,B,C2指令XADDD,C,FSUBA,B,C3指令Y指令XADDD,C,FSUBA,B,C</table></tables>在上表三的周期3中,A-B的結(jié)果被寫入C??墒窃趫?zhí)行階段,C卻被用來(lái)計(jì)算D+C。因此,正常的讀操作數(shù)路徑必須被繞開(kāi),并必須將寫結(jié)果階段中的C值傳遞到執(zhí)行階段的數(shù)學(xué)邏輯單元的輸入端。否則,就得不到預(yù)期的結(jié)果。在復(fù)雜指令集微控制器中,由于相鄰指令的執(zhí)行在時(shí)間上是互不重疊的,即在當(dāng)前這條指令執(zhí)行完畢之后,下一條指令才被從指令存儲(chǔ)器中取出并開(kāi)始執(zhí)行,但在精簡(jiǎn)指令集流水線結(jié)構(gòu)微控制器中,由于相鄰指令的執(zhí)行在時(shí)間上是相互重疊的,如果某一條指令的操作數(shù)是相鄰前一條或二條指令的執(zhí)行結(jié)果(這種情況稱為數(shù)據(jù)相關(guān)),那么就必須將這一個(gè)結(jié)果向前傳遞到執(zhí)行階段;否則,就會(huì)發(fā)生所謂的“數(shù)據(jù)災(zāi)難”(datahazard),也就不可能得到期望的運(yùn)算結(jié)果。為了實(shí)現(xiàn)各階段之間數(shù)據(jù)的正確傳遞,需要將讀操作數(shù)階段的指令和執(zhí)行階段的指令中的操作數(shù)地址與寫結(jié)果階段的指令中的目標(biāo)地址進(jìn)行比較;然后用比較的結(jié)果所產(chǎn)生的信號(hào)來(lái)控制一組多路選擇開(kāi)關(guān),從而將適當(dāng)?shù)牟僮鲾?shù)傳送到數(shù)學(xué)邏輯單元的數(shù)據(jù)輸入口。為了準(zhǔn)確無(wú)誤地實(shí)現(xiàn)這種數(shù)據(jù)傳遞,在指令定義中,必須設(shè)法嚴(yán)格區(qū)別操作數(shù)地址與目標(biāo)地址。即,普遍采用的方法就是表一所示的定義方法,即分別利用不同的指令定義區(qū)域來(lái)規(guī)定操作數(shù)地址與目標(biāo)地址。本發(fā)明的目的在于通過(guò)一種簡(jiǎn)化的指令定義方法來(lái)縮短采用傳統(tǒng)指令定義方法的指令的長(zhǎng)度,但仍可完全實(shí)現(xiàn)與傳統(tǒng)指令相同的功能。本發(fā)明提供了一種新的精簡(jiǎn)指令集流水線結(jié)構(gòu)微控制器的指令定義方法,該方法利用三個(gè)指令定義區(qū)域,其中用同一指令定義區(qū)域來(lái)規(guī)定立即數(shù)、操作數(shù)地址或目標(biāo)地址,用另一指令定義區(qū)域來(lái)規(guī)定不同操作運(yùn)算的操作碼,以及用還有一個(gè)指令定義區(qū)域來(lái)規(guī)定用于識(shí)別指令中的操作數(shù)地址或位置及目標(biāo)地址或位置從而控制精簡(jiǎn)指令集流水線結(jié)構(gòu)中流水線各階段之間的數(shù)據(jù)傳遞的識(shí)別控制碼。依據(jù)本發(fā)明的一個(gè)方面,提供了一種用于精簡(jiǎn)指令集流水線結(jié)構(gòu)的微控制器的指令定義方法,其指令長(zhǎng)度包括17位,比上述指令定義少了15位,其中把指令中的三位作為識(shí)別指令中的操作數(shù)地址或位置及目標(biāo)地址或位置從而控制所述精簡(jiǎn)指令集流水線結(jié)構(gòu)中流水線各階段之間的數(shù)據(jù)傳遞的識(shí)別控制碼;把該指令中的八位作為指令所執(zhí)行的立即數(shù)、操作數(shù)地址或目標(biāo)地址;以及把該指令中的六位作為規(guī)定不同操作運(yùn)算的操作碼。本發(fā)明提出的精簡(jiǎn)指令流水線結(jié)構(gòu)微控制器的指令定義將指令長(zhǎng)度從原來(lái)的32位縮短為17位而且不必區(qū)別操作數(shù)地址與目標(biāo)地址,這樣既縮短了指令長(zhǎng)度又完全可以實(shí)現(xiàn)同樣的功能。因而,縮小了指令存儲(chǔ)器的面積,繼而可縮小微控制器芯片的面積。實(shí)際上,指令存儲(chǔ)器的面積可以縮小47%。圖1是示出依據(jù)本發(fā)明的指令定義方法的原理的示意圖。圖2是采用依據(jù)本發(fā)明方法的精簡(jiǎn)指令集流水線結(jié)構(gòu)微控制器的方框圖。從以下詳細(xì)描述并結(jié)合附圖將使本發(fā)明的目的和優(yōu)點(diǎn)變得更加明顯起來(lái)。在下表四中,指令中的低8位(第0位到第7位)既可以用來(lái)定義立即數(shù)、操作數(shù)地址,也可以用來(lái)定義目標(biāo)地址;中間6位(第8位到第13位)為操作碼,規(guī)定CPU的不同操作運(yùn)算;最高3位(第14位到第16位)為識(shí)別控制碼,用來(lái)識(shí)別指令中操作數(shù)地址或位置及目標(biāo)地址或位置,從而準(zhǔn)確控制流水線各階段之間的數(shù)據(jù)傳遞。為了清楚,以下用表四的指令格式為例來(lái)描述本發(fā)明的指令定義方法,但本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)理解,不應(yīng)把此作為對(duì)本發(fā)明的限制。表四在表四中,當(dāng)?shù)?6位為‘1’時(shí),表示有一個(gè)操作數(shù)從累加器中讀出;當(dāng)?shù)?6位為‘0’時(shí),表示沒(méi)有操作數(shù)來(lái)自累加器;當(dāng)?shù)?5位為‘1’時(shí),表示有一個(gè)操作數(shù)從RAM(隨機(jī)存取存儲(chǔ)器)中讀取;當(dāng)?shù)?5位為‘0’時(shí),表示沒(méi)有操作數(shù)從RAM中讀取。當(dāng)?shù)?4位為‘1’時(shí),表示寫結(jié)果的目標(biāo)是RAM,當(dāng)?shù)?4位為‘0’時(shí),表示寫結(jié)果的目標(biāo)是累加器A。根據(jù)第14到第16這三位信號(hào)在流水線中不同階段的不同組合,并通過(guò)比較指令中低8位在流水線中不同階段的數(shù)值,就可以準(zhǔn)確判別相鄰指令的數(shù)據(jù)是否相關(guān),從而實(shí)現(xiàn)流水線中各階段之間數(shù)據(jù)的正確傳輸。當(dāng)然,上述三位還可以用不同的方式來(lái)規(guī)定,但為了清楚,以下采用此規(guī)定來(lái)描述本發(fā)明。現(xiàn)在參考圖1來(lái)說(shuō)明本方法的工作原理。在圖1中,長(zhǎng)度為17位的指令向量1經(jīng)指令譯碼器2譯碼后輸出各種不同的微代碼向量。其中微代碼向量3是地址(指令的最低八位),分別輸給隨機(jī)存取存儲(chǔ)器10(作為數(shù)據(jù)讀出地址)和數(shù)據(jù)相關(guān)判別電路11。在數(shù)據(jù)相關(guān)判別電路11中,有二級(jí)地址寄存器,向量3首先進(jìn)入第一級(jí)寄存器,然后輸出給第二級(jí)寄存器。向量3在進(jìn)入數(shù)據(jù)相關(guān)判別電路前是讀探作數(shù)階段的地址;經(jīng)第一級(jí)寄存器后輸出為執(zhí)行階段的地址;經(jīng)第二級(jí)寄存器后輸出為寫結(jié)果階段的地址。向量5是指令的最高三位(即第14位到第16位)。與向量3相似,向量5也要經(jīng)過(guò)兩級(jí)寄存器。根據(jù)向量5在不同階段的信息并通過(guò)比較向量3在不同階段的數(shù)值,再經(jīng)過(guò)所需的邏輯組合,輸出控制向量15。數(shù)據(jù)選擇傳遞電路16根據(jù)控制向量15,從下列5個(gè)不同的輸入數(shù)據(jù)中選出2個(gè)適當(dāng)?shù)臄?shù)據(jù)并通過(guò)其輸出端17及18傳遞給數(shù)學(xué)邏輯單元19(1)數(shù)學(xué)邏輯單元19的運(yùn)算結(jié)果輸出12;(2)累加器9的輸出13;(3)寫結(jié)果寄存器的輸出7;(4)隨機(jī)存取存儲(chǔ)器10的數(shù)據(jù)輸出14;(5)指令譯碼器2的輸出向量4(立即數(shù))。數(shù)學(xué)邏輯單元19根據(jù)輸入操作數(shù)17、18及操作碼24(相應(yīng)于來(lái)自寄存器23的操作碼6)所規(guī)定的運(yùn)算操作類型,進(jìn)行運(yùn)算操作并輸出操作結(jié)果12。本發(fā)明提出的精簡(jiǎn)指令集流水線結(jié)構(gòu)微控制器的指令定義將指令長(zhǎng)度從過(guò)去的32位縮短為17位而又具有實(shí)現(xiàn)原來(lái)所有功能的性質(zhì)。與
      背景技術(shù)
      相比,本發(fā)明的最大好處是大大地縮小了RAM中指令存儲(chǔ)器的面積,從而降低了精簡(jiǎn)指令集流水線結(jié)構(gòu)微控制器芯片的生產(chǎn)成本,而且產(chǎn)品的可靠性也隨之提高。這樣制造指令存儲(chǔ)陣列的面積可以減少47%。本發(fā)明可應(yīng)用于要求運(yùn)算速度快、芯片面積小的精簡(jiǎn)指令集流水線結(jié)構(gòu)微控制器?,F(xiàn)以精簡(jiǎn)指令集流水線結(jié)構(gòu)微控制器的方框圖(圖2)來(lái)說(shuō)明其實(shí)現(xiàn)方式。以下參考圖2,描述使用本發(fā)明的指令定義方法的精簡(jiǎn)指令集流水線結(jié)構(gòu)微控制器各階段的工作原理(1)取指令階段(時(shí)鐘周期0)程序計(jì)數(shù)器1根據(jù)控制單元7輸出的控制信號(hào)6,輸出指令地址2。指令存儲(chǔ)器3根據(jù)地址2輸出對(duì)應(yīng)的指令向量4(指令長(zhǎng)度為17位)。(2)讀操作數(shù)階段(時(shí)鐘周期1)指令向量4經(jīng)指令寄存器5后成為指令向量10(比指令向量4延遲一個(gè)時(shí)鐘周期)。指令向量10經(jīng)指令譯碼器11譯碼后輸出各種不同的微代碼向量(12、13、15和16)。根據(jù)這些微代碼向量,讀取相應(yīng)的操作數(shù)。(3)執(zhí)行階段數(shù)學(xué)邏輯單元30根據(jù)操作控制碼向量31對(duì)輸入操作數(shù)28、29進(jìn)行相應(yīng)的運(yùn)算,并將運(yùn)算結(jié)果22輸送給寫結(jié)果寄存器18。(4)寫結(jié)果階段將存在寫結(jié)果寄存器中的運(yùn)算結(jié)果通過(guò)其輸出端17寫入隨機(jī)存取存儲(chǔ)器21或累加器20中?,F(xiàn)說(shuō)明本發(fā)明在精簡(jiǎn)指令集流水線結(jié)構(gòu)微控制器中的應(yīng)用實(shí)現(xiàn)工作原理。長(zhǎng)度為17位的指令向量10經(jīng)指令譯碼器11譯碼后輸出微代碼向量12、13、15、16。其中向量12為指令的最高三位(第14位到第16位),向量15為地址(最低8位)。向量16表示立即數(shù),向量13為操作碼(次高的6位)。向量12、15都進(jìn)入數(shù)據(jù)相關(guān)判別電路25的輸入端。在數(shù)據(jù)相關(guān)判別電路25中,有二級(jí)寄存器與兩個(gè)地址比較器,兩個(gè)地址比較器用來(lái)比較讀操作數(shù)階段地址與執(zhí)行階段地址,讀操作數(shù)階段地址與寫結(jié)果階段地址。向量12、15都要經(jīng)過(guò)數(shù)據(jù)相關(guān)判別電路25中的二級(jí)寄存器。向量12、15在進(jìn)入數(shù)據(jù)相關(guān)判別電路25之前,為讀操作數(shù)階段。數(shù)據(jù)相關(guān)判別電路25內(nèi)第一級(jí)寄存器的輸出為執(zhí)行階段地址;第二級(jí)寄存器的輸出為寫結(jié)果階段地址。根據(jù)向量12在不同階段的信息,并通過(guò)比較地址向量15在不同階段的值,再經(jīng)過(guò)所需的邏輯組合,數(shù)據(jù)相關(guān)判別電路25輸出一個(gè)控制向量26。根據(jù)控制向量26,數(shù)據(jù)選擇傳遞電路27從5個(gè)不同階段、不同來(lái)源的輸入數(shù)據(jù)中選出2個(gè)適當(dāng)?shù)臄?shù)據(jù)并通過(guò)其輸出端28、29,輸送到數(shù)學(xué)邏輯單元30的輸入端。數(shù)學(xué)邏輯單元30根據(jù)操作控制向量31,對(duì)輸入數(shù)據(jù)28、29進(jìn)行數(shù)學(xué)、邏輯、循環(huán)或移位等運(yùn)算操作,并將運(yùn)算結(jié)果22輸送給寫結(jié)果寄存器18與數(shù)據(jù)選擇傳遞電路27。以下繼續(xù)參考圖2來(lái)描述本發(fā)明的兩個(gè)具體實(shí)施例子。例一,考慮下列2條指令MOV[m1],AADDA,[m1]第一條指令的含義是將累加器A中的數(shù)據(jù)傳送給以m1為地址的存儲(chǔ)單元中。第二條指令執(zhí)行A+[m1]運(yùn)算并將結(jié)果送給累加器A。在此實(shí)例中,第二條指令的操作數(shù)[m1]是第一條指令的運(yùn)算結(jié)果。當(dāng)?shù)诙l指令處于讀操作數(shù)階段時(shí),第一條指令處于執(zhí)行階段,后者的結(jié)果尚未寫入以m1為地址的存儲(chǔ)單元中,故第二條指令所需的操作數(shù)[m1]不能直接從該存儲(chǔ)單元讀出;因而必須將第一條指令的執(zhí)行結(jié)果直接傳送到數(shù)學(xué)邏輯單元30的輸入端,從而在下一個(gè)時(shí)鐘周期內(nèi),即當(dāng)?shù)诙l指令處于執(zhí)行階段時(shí),數(shù)學(xué)邏輯單元30的輸入端能得到正確的操作數(shù)。這種正確的數(shù)據(jù)傳遞是通過(guò)數(shù)據(jù)相關(guān)判別電路25來(lái)實(shí)現(xiàn)的。首先,數(shù)據(jù)相關(guān)判別電路25中的地址比較器將第一條指令中的目標(biāo)地址(執(zhí)行階段地址)與第二條指令中的操作數(shù)地址(讀操作數(shù)階段地址)進(jìn)行比較,由于這兩個(gè)地址是相同的,所以比較器輸出‘1’信號(hào),第一條指令的最高三位(第14到16位)信號(hào)為‘101’[第16位為‘1’表示有一個(gè)操作數(shù)是累加器A;第15位為‘0’表示沒(méi)有操作數(shù)來(lái)自RAM;第14位為‘1’表示寫結(jié)果的目標(biāo)在RAM中]。第二條指令的最高三位信號(hào)為‘110’[第16位為‘1’表示有一個(gè)操作數(shù)來(lái)自累加器A;第15位為‘1’表示另一個(gè)操作數(shù)來(lái)自RAM;第14位為‘0’表示目標(biāo)位置為累加器A]。根據(jù)比較器的輸出信號(hào)與指令最高三位在不同階段的信號(hào),數(shù)據(jù)相關(guān)判別電路25輸出相應(yīng)的控制問(wèn)量26。數(shù)據(jù)選擇傳遞電路27根據(jù)控制向量26,將第一條指令的操作結(jié)果與累加器中的內(nèi)容分別傳送到數(shù)學(xué)邏輯單元30的輸入端28、29進(jìn)行ADD操作。例二,請(qǐng)看下列三條指令SUB[m1],ADEC[m2]ADDA,[m1]第一條指令的含義是以m1為地址的RAM單元中的數(shù)據(jù)與累加器中的數(shù)據(jù)相減,運(yùn)算結(jié)果存在以m1為地址的RAM單元中。第二條指令所執(zhí)行的運(yùn)算是將以m2為地址的RAM單元中的數(shù)據(jù)減去1,運(yùn)算結(jié)果存在以m2為地址的RAM單元中。第三條指令所執(zhí)行的運(yùn)算是累加器中的數(shù)據(jù)與以m1為地址的RAM單元中的數(shù)據(jù)相加,運(yùn)算結(jié)果存在累加器中。在此實(shí)例中,第一條指令與第二條指令無(wú)數(shù)據(jù)相關(guān);第二條指令與第三條指令也無(wú)數(shù)據(jù)相關(guān),但第一條指令與第三條指令存在數(shù)據(jù)相關(guān),因?yàn)榈谌龡l指令的操作數(shù)[m1]是第一條指令的操作結(jié)果。當(dāng)?shù)谌龡l指令處于讀操作數(shù)階段時(shí),第一條指令處于寫結(jié)果階段,但結(jié)果尚未寫入以m1為地址的RAM單元。所以第三條指令的操作數(shù)[m1]不能直接從RAM里讀出;因而必須將寫結(jié)果寄存器18的輸出17直接轉(zhuǎn)送給數(shù)學(xué)邏輯單元30的輸入端。此例的數(shù)據(jù)選擇傳遞原理與例一類似。應(yīng)理解,上述例子僅是本發(fā)明的特定實(shí)例,決不能視為對(duì)本發(fā)明的限制。權(quán)利要求1.一種精簡(jiǎn)指令集流水線結(jié)構(gòu)的微控制器的指令定義方法,其特征在于該方法利用三個(gè)指令定義區(qū)域,其中用同一指令定義區(qū)域來(lái)規(guī)定立即數(shù)、操作數(shù)地址或目標(biāo)地址,用另一指令定義區(qū)域來(lái)規(guī)定不同操作運(yùn)算的操作碼,以及用還有一個(gè)指令定義區(qū)域來(lái)規(guī)定用于識(shí)別指令中的操作數(shù)地址或位置及目標(biāo)地址或位置從而控制精簡(jiǎn)指令集流水線結(jié)構(gòu)中流水線各階段之間的數(shù)據(jù)傳遞的識(shí)別控制碼。2.如權(quán)利要求1所述的方法,其特征在于所述三個(gè)指令定義區(qū)域包括十七位,其中作為識(shí)別指令中操作數(shù)地址或位置及目標(biāo)地址或位置從而控制所述精簡(jiǎn)指令集流水線結(jié)構(gòu)中流水線各階段之間的數(shù)據(jù)傳遞的識(shí)別控制碼包括三位;作為規(guī)定不同操作運(yùn)算的操作碼包括六位;以及作為指令所執(zhí)行的立即數(shù)、操作數(shù)地址或目標(biāo)地址包括八位。3.如權(quán)利要求2所述的方法,其特征在于所述三位為所述指令的最高三位。4.如權(quán)利要求3所述的方法,其特征在于所述六位為所述指令的次高六位。5.如權(quán)利要求4所述的方法,其特征在于所述八位為所述指令的最低八位。6.如權(quán)利要求2到4中任一項(xiàng)所述的方法,其特征在于所述三位的值分別表示是否有一操作數(shù)來(lái)自累加器、是否有一操作數(shù)來(lái)自RAM以及寫結(jié)果的目標(biāo)是累加器還是RAM。7.如權(quán)利要求6所述的方法,其特征在于所述三位中的最高位表示是否有一操作數(shù)來(lái)自累加器,所述三位中的次高位表示是否有一操作數(shù)來(lái)自RAM,所述三位中的最低位表示寫結(jié)果的目標(biāo)是累加器還是RAM。8.如權(quán)利要求6所述的方法,其特征在于如果所述三位中的最高位為‘1’,則表示有一操作數(shù)來(lái)自累加器,如果為‘0’,則表示沒(méi)有操作數(shù)來(lái)自累加器;如果所述三位中的次高位為‘1’,表示有一操作數(shù)來(lái)自RAM,如果為‘0’,則表示沒(méi)有操作數(shù)來(lái)自RAM;如果所述三位中的最低位為‘1’,則表示寫結(jié)果的目標(biāo)是RAM,如果為‘0’,則表示寫結(jié)果的目標(biāo)為累加器。9.如權(quán)利要求6所述的方法,其特征在于如果所述三位中的最高位為‘0’,則表示有一操作數(shù)來(lái)自累加器,如果為‘1’,則表示沒(méi)有操作數(shù)來(lái)自累加器;如果所述三位中的次高位為‘0’,表示有一操作數(shù)來(lái)自RAM,如果為‘1’,則表示沒(méi)有操作數(shù)來(lái)自RAM;如果所述三位中的最低位為‘0’,則表示寫結(jié)果的目標(biāo)是RAM,如果為‘1’,則表示寫結(jié)果的目標(biāo)為累加器。全文摘要一種用于精簡(jiǎn)指令集流水線結(jié)構(gòu)的微控制器的指令定義方法,其特征在于該方法利用三個(gè)指令定義區(qū)域,其中用同一指令定義區(qū)域來(lái)規(guī)定立即數(shù)、操作數(shù)地址或目標(biāo)地址,用另一指令定義區(qū)域來(lái)規(guī)定不同操作運(yùn)算的操作碼,以及用還有一個(gè)指令定義區(qū)域來(lái)規(guī)定用于識(shí)別指令中的操作數(shù)地址或位置及目標(biāo)地址或位置從而控制精簡(jiǎn)指令集流水線結(jié)構(gòu)中流水線各階段之間的數(shù)據(jù)傳遞的識(shí)別控制碼。文檔編號(hào)G06F9/22GK1300004SQ9912424公開(kāi)日2001年6月20日申請(qǐng)日期1999年12月13日優(yōu)先權(quán)日1999年12月13日發(fā)明者謝衛(wèi)國(guó),嚴(yán)曉浪,滕強(qiáng)華申請(qǐng)人:杭州華盛微電子有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1