專利名稱:精簡(jiǎn)功能及指令數(shù)量的微處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種微處理器,且特別是有關(guān)于一種能減少芯片面積的精簡(jiǎn)功能及指令數(shù)量的微處理器。
對(duì)于4位微控制器而言,目前國(guó)際上應(yīng)用比較多的4位微控制器主要有日本TOSHIBA公司的TLCS-47系列;日本NEC公司的μPD75系列;日本OKI公司的OLMS63K系列。其中,日本TOSHIBA公司的TLCS-47系列采用了8位只讀存儲(chǔ)器(ROM),4位隨機(jī)存取內(nèi)存(RAM),并且具有90個(gè)指令,而每個(gè)指令周期為1至3個(gè)系統(tǒng)時(shí)脈周期。日本NEC公司的μPD75系列采用了8位只讀存儲(chǔ)器,4位隨機(jī)存取內(nèi)存。而日本OKI公司的OLMS63K系列采用了8位只讀存儲(chǔ)器,4位隨機(jī)存取內(nèi)存,并且具有407個(gè)指令。上述的微控制器采用8位寬度的只讀存儲(chǔ)器,并且一個(gè)指令儲(chǔ)存于數(shù)個(gè)地址中。這樣設(shè)計(jì)方式雖然能提供眾多的功能,但是相對(duì)而言,指令的數(shù)量相當(dāng)龐大,并且會(huì)占用較大的芯片面積。
為達(dá)成上述及其它目的,本發(fā)明提出一種精簡(jiǎn)功能及指令數(shù)量的微處理器。此微處理器耦接至只讀存儲(chǔ)器及隨機(jī)存取內(nèi)存。此微處理器是由只讀存儲(chǔ)器數(shù)據(jù)地址總線、隨機(jī)存取內(nèi)存數(shù)據(jù)總線、數(shù)據(jù)輸入總線、以及數(shù)據(jù)輸出總線來傳輸數(shù)據(jù),以及由只讀存儲(chǔ)器數(shù)據(jù)地址總線及隨機(jī)存取內(nèi)存地址總線來傳輸?shù)刂?。此微處理器包括時(shí)序電路、程序計(jì)數(shù)器、堆棧電路、譯碼電路、栓鎖電路、算術(shù)邏輯單元、累加器及進(jìn)位電路、間接尋址電路、中斷電路、以及表列跳躍緩存器。其中,時(shí)序電路根據(jù)系統(tǒng)時(shí)脈訊號(hào)而產(chǎn)生數(shù)種時(shí)序,以控制指令的執(zhí)行。程序計(jì)數(shù)器耦接至?xí)r序電路及只讀存儲(chǔ)器數(shù)據(jù)地址總線,用以輸出地址至只讀存儲(chǔ)器,并且具有自動(dòng)加一及地址跳躍的功能。堆棧電路耦接至?xí)r序電路及程序計(jì)數(shù)器,此堆棧電路具有數(shù)層堆棧,當(dāng)此堆棧電路接收到推入堆棧訊號(hào)時(shí),會(huì)將此時(shí)的目前地址及進(jìn)位訊號(hào)推入這些堆棧中的一層,當(dāng)此堆棧電路接收到推出堆棧訊號(hào)時(shí),會(huì)將此目前地址及此進(jìn)位訊號(hào)推出。譯碼電路耦接至?xí)r序電路、只讀存儲(chǔ)器數(shù)據(jù)地址總線、以及數(shù)據(jù)輸出總線,此譯碼電路會(huì)將只讀存儲(chǔ)器所送出的指令譯碼,并且會(huì)輸出推入堆棧訊號(hào)、推出堆棧訊號(hào)、寫入致能訊號(hào)、以及讀取致能訊號(hào)。栓鎖電路耦接至?xí)r序電路、只讀存儲(chǔ)器數(shù)據(jù)地址總線、數(shù)據(jù)輸入總線、隨機(jī)存取內(nèi)存數(shù)據(jù)總線、以及隨機(jī)存取內(nèi)存地址總線,用于只讀存儲(chǔ)器數(shù)據(jù)地址總線、數(shù)據(jù)輸入總線、以及隨機(jī)存取內(nèi)存數(shù)據(jù)總線智之間的數(shù)據(jù)傳輸,以及用于與隨機(jī)存取內(nèi)存的地址傳輸。算術(shù)邏輯單元耦接至?xí)r序電路、隨機(jī)存取內(nèi)存數(shù)據(jù)總線、數(shù)據(jù)輸入總線、以及數(shù)據(jù)輸出總線,用以接收隨機(jī)存取內(nèi)存數(shù)據(jù)總線上的數(shù)據(jù)及數(shù)據(jù)輸入總線上的數(shù)據(jù),并且執(zhí)行加、減、及、或等算術(shù)邏輯運(yùn)算,而將輸出的數(shù)據(jù)送到數(shù)據(jù)輸出總線。累加器及進(jìn)位訊號(hào)電路耦接至?xí)r序電路、數(shù)據(jù)輸出總線、只讀存儲(chǔ)器數(shù)據(jù)地址總線、隨機(jī)存取內(nèi)存數(shù)據(jù)總線、數(shù)據(jù)輸入總線、堆棧電路、以及譯碼電路,用以存放數(shù)據(jù)的運(yùn)算結(jié)果。間接尋址電路耦接至?xí)r序電路、隨機(jī)存取內(nèi)存數(shù)據(jù)總線、以及隨機(jī)存取內(nèi)存地址總線,當(dāng)隨機(jī)存取內(nèi)存的地址為$00FH時(shí),間接尋址電路用以提供隨機(jī)存取內(nèi)存的地址。中斷電路耦接至?xí)r序電路、隨機(jī)存取內(nèi)存地址總線、隨機(jī)存取內(nèi)存數(shù)據(jù)總線、程序計(jì)數(shù)器、以及譯碼電路,用以接收數(shù)種中斷訊號(hào),當(dāng)發(fā)生中斷響應(yīng)時(shí),該中斷電路會(huì)產(chǎn)生數(shù)種中斷向量至程序計(jì)數(shù)器。而表列跳躍緩存器耦接至?xí)r序電路、隨機(jī)存取內(nèi)存數(shù)據(jù)總線、隨機(jī)存取內(nèi)存地址總線、以及只讀存儲(chǔ)器數(shù)據(jù)地址總線,用以接收寫入致能訊號(hào)、讀取致能訊號(hào)、隨機(jī)存取內(nèi)存數(shù)據(jù)總線上的數(shù)據(jù)、以及隨機(jī)存取內(nèi)存地址總線上的地址,而輸出一訊號(hào)至只讀存儲(chǔ)器數(shù)據(jù)地址總線,以控制只讀存儲(chǔ)器數(shù)據(jù)的地址。此外,微處理器與只讀存儲(chǔ)器連接的隨機(jī)存取內(nèi)存地址總線具有16位寬度,而微處理器與隨機(jī)存取內(nèi)存連接的隨機(jī)存取內(nèi)存數(shù)據(jù)總線具有4位寬度。
在本發(fā)明的一個(gè)實(shí)施例中,此微處理器包含三種工作模式,分別為運(yùn)作模式、暫停模式、以及停止模式。
在本發(fā)明的一個(gè)實(shí)施例中,此微處理器4位微處理器。
在本發(fā)明的一個(gè)實(shí)施例中,此微處理器以四個(gè)時(shí)脈周期為一指令周期。
在本發(fā)明的一個(gè)實(shí)施例中,只讀存儲(chǔ)器數(shù)據(jù)地址總線是數(shù)據(jù)總線地址總線兩者共享,并且由這些時(shí)序,來區(qū)分是數(shù)據(jù)總線,還是地址總線。
在本發(fā)明的一個(gè)實(shí)施例中,時(shí)序電路還會(huì)接收重置訊號(hào)、暫停訊號(hào)、停止訊號(hào)、同步訊號(hào)、以及計(jì)數(shù)溢位訊號(hào),并且還會(huì)輸出系統(tǒng)重置訊號(hào)及輸出計(jì)數(shù)控制訊號(hào)。其中,重置訊號(hào)、同步訊號(hào)、以及計(jì)數(shù)溢位訊號(hào)是此微處理器外部的控制訊號(hào)。暫停訊號(hào)及停止訊號(hào)由譯碼電路所產(chǎn)生。系統(tǒng)重置訊號(hào)連接至系統(tǒng)的各個(gè)電路,用以預(yù)設(shè)這些電路的初始值。而輸出計(jì)數(shù)控制訊號(hào)用以控制此微處理器的外部電路的數(shù)個(gè)計(jì)數(shù)開關(guān)。
在本發(fā)明的一個(gè)實(shí)施例中,此目前地址送至程序計(jì)數(shù)器,而此進(jìn)位訊號(hào)送至進(jìn)位電路。
在本發(fā)明的一個(gè)實(shí)施例中,累加器及進(jìn)位電路所存放的數(shù)據(jù)的運(yùn)算結(jié)果送至譯碼電路進(jìn)行譯碼。
在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)隨機(jī)存取內(nèi)存的地址不為$00FH時(shí),隨機(jī)存取內(nèi)存的地址由栓鎖電路產(chǎn)生。
在本發(fā)明的一個(gè)實(shí)施例中,這些中斷訊號(hào)包括四種中斷訊號(hào)。而這些中斷向量包括三種中斷向量。
在本發(fā)明的一個(gè)實(shí)施例中,表列跳躍緩存器可以直接讀及寫,也可以與相關(guān)的指令結(jié)合而實(shí)現(xiàn)查表的功能。并且,此表列跳躍緩存器最大可查閱256個(gè)地址內(nèi)的內(nèi)容。
綜上所述,本發(fā)明的微處理器的外部采用了16位只讀存儲(chǔ)器,4位隨機(jī)存取內(nèi)存,以及每16位寬度的只讀存儲(chǔ)器只儲(chǔ)存一個(gè)指令,并且此指令包含操作碼及操作數(shù),因此精簡(jiǎn)了譯碼電路及地址的規(guī)模。再者,本發(fā)明只采用了43個(gè)單字組及單周期指令,所以也能使電路更為精簡(jiǎn),進(jìn)而減少了占用芯片的面積。此外,因?yàn)楸景l(fā)明采用單周期指令,所以可以使程序撰寫者更易于計(jì)算程序執(zhí)行的時(shí)間。
附圖標(biāo)記說明
10、20微處理器102時(shí)序電路104程序計(jì)數(shù)器106堆棧電路108譯碼電路110栓鎖電路112算術(shù)邏輯單元114累加器116進(jìn)位電路118間接尋址電路120中斷電路122表列跳躍緩存器124、222只讀存儲(chǔ)器數(shù)據(jù)地址總線RB126、224隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB128數(shù)據(jù)輸入總線AB130數(shù)據(jù)輸出總線QB132、226隨機(jī)存取內(nèi)存地址總線RAMAR134、202只讀存儲(chǔ)器136、204隨機(jī)存取內(nèi)存206中斷訊號(hào)產(chǎn)生電路208時(shí)脈模式電路210重置電路212外圍組件1214外圍組件2216外圍組件3
218擴(kuò)充總線接口220外圍組件4
而本發(fā)明一實(shí)施例的精簡(jiǎn)功能及指令數(shù)量的微處理器20與外部電路連接的示意圖,請(qǐng)參照?qǐng)D2。在圖2中,與微處理器20連接的外部電路包括只讀存儲(chǔ)器202、隨機(jī)存取內(nèi)存204、中斷訊號(hào)產(chǎn)生電路206、時(shí)脈模式電路208、重置電路210、外圍裝置1(212)、外圍裝置2(214)、外圍裝置3(216)。并且,微處理器20會(huì)經(jīng)由擴(kuò)充總線接口218而連接到外圍裝置4(220)。此外,由圖2也可知,微處理器20經(jīng)由只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(222)而連接到只讀存儲(chǔ)器202,以及經(jīng)由隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(224)及隨機(jī)存取內(nèi)存地址總線RAMAR(226)而連接到隨機(jī)存取內(nèi)存204。
本發(fā)明的微處理器包含三種工作模式,分別為運(yùn)作模式、暫停模式、以及停止模式。請(qǐng)參照?qǐng)D3、圖4、以及圖5,其分別是根據(jù)本發(fā)明一實(shí)施例的精簡(jiǎn)功能及指令數(shù)量的微處理器的運(yùn)作模式、暫停模式、以及停止模式的時(shí)序圖。底下將配合
圖1及圖3,詳細(xì)地說明微處理器10的各個(gè)部分的功能及運(yùn)作情形。
時(shí)序電路102根據(jù)系統(tǒng)時(shí)脈訊號(hào)(SYSCK)而產(chǎn)生各種時(shí)序,以控制指令的執(zhí)行。時(shí)序電路102還會(huì)接收重置訊號(hào)(PRESETB)、暫停訊號(hào)(HALT)、停止訊號(hào)(STOP)、同步訊號(hào)(HW_STOPB)、以及計(jì)數(shù)溢位訊號(hào)(WUPB),并且還會(huì)輸出系統(tǒng)重置訊號(hào)(RESETB)及輸出計(jì)數(shù)控制訊號(hào)(WUPRST)。其中,重置訊號(hào)(PRESETB)、同步訊號(hào)(HW_STOPB)、以及計(jì)數(shù)溢位訊號(hào)(WUPB)系微處理器10的外部的控制訊號(hào)。暫停訊號(hào)(HALT)及停止訊號(hào)(STOP)由譯碼電路108所產(chǎn)生。系統(tǒng)重置訊號(hào)(RESETB)連接至系統(tǒng)的各個(gè)電路,用以預(yù)設(shè)這些電路的初始值。而輸出計(jì)數(shù)控制訊號(hào)(WUPRST)用以控制微處理器10的外部電路的數(shù)個(gè)計(jì)數(shù)開關(guān)。微處理器10以四個(gè)系統(tǒng)時(shí)脈訊號(hào)(SYSCK)周期為一指令周期。接下來將說明時(shí)序電路102所產(chǎn)生的各種時(shí)序(如圖3繪示)。
時(shí)序1(T1_T2),控制程序計(jì)數(shù)器104栓鎖地址;控制譯碼電路108的輸出控制訊號(hào)的時(shí)序;以及控制只讀存儲(chǔ)器134的地址的提取時(shí)間。
時(shí)序2(T1_T3),控制程序計(jì)數(shù)器104輸出地址至只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124)的時(shí)序;與T1T5做組合邏輯而產(chǎn)生T1,用以控制數(shù)據(jù)輸入總線AB(128)預(yù)充電;在進(jìn)行查表功能時(shí),控制累加器114及表列跳躍緩存器122輸出地址;以及送到外部電路的應(yīng)用。
時(shí)序3(T1_T4),控制堆棧電路106中,目前地址及進(jìn)位訊號(hào)推入(push)下一層堆?;蛲瞥?pop)的時(shí)序;控制間接尋址電路118送出地址至隨機(jī)存取內(nèi)存136;控制栓鎖電路110送出地址至隨機(jī)存取內(nèi)存136;以及與T2_T7產(chǎn)生T8_T4時(shí)序,T8時(shí)開始檢測(cè)隨機(jī)存取內(nèi)存136的地址是否為$00FH,當(dāng)?shù)刂窞?00FH,在T1_T4時(shí),隨機(jī)存取內(nèi)存136的地址由間接尋址電路118提供。
時(shí)序4(T1T5),控制隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)預(yù)充電;與T1_T3做組合邏輯而產(chǎn)生T1,用以控制數(shù)據(jù)輸入總線AB(128)預(yù)充電;以及送到外部電路,對(duì)訊號(hào)做預(yù)充電等作用。
時(shí)序5(T3),控制算術(shù)邏輯單元112及進(jìn)位電路116在推出堆棧時(shí),送出堆棧內(nèi)的進(jìn)位訊號(hào);控制外部電路讀取數(shù)據(jù)的時(shí)間;以及控制隨機(jī)存取內(nèi)存136讀取數(shù)據(jù)。
時(shí)序6(T2_T7),與T1_T4產(chǎn)生T8_T4時(shí)序,在間接尋址電路118中,檢測(cè)隨機(jī)存取內(nèi)存136的地址是否為$00FH。
時(shí)序7(T6T7),控制譯碼電路108的的譯碼時(shí)序,譯碼結(jié)果在T8穩(wěn)定;控制程序計(jì)數(shù)器104栓鎖地址;以及控制累加器114寫入數(shù)據(jù)到隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)的時(shí)序;時(shí)序8(T5_T7),控制只讀存儲(chǔ)器134的指令讀取時(shí)間。
時(shí)序9(T7),控制堆棧電路106中,目前地址及進(jìn)位訊號(hào)寫入堆棧的時(shí)序;控制外部電路寫入數(shù)據(jù)的時(shí)間;以及控制隨機(jī)存取內(nèi)存136寫入數(shù)據(jù)。
時(shí)序10(T6),控制譯碼電路108栓鎖數(shù)據(jù)的時(shí)序;以及控制累加器114寫入數(shù)據(jù)到數(shù)據(jù)輸出總線QB(130)的時(shí)序。
時(shí)序11(T1_T2S),送到外部電路,可以在暫存模式下工作。
時(shí)序12(T1_T4S),控制中斷電路120的中斷控制向量的時(shí)間;以及送到外部電路,可以在暫存模式下工作。
時(shí)序13(T7S),送到外部電路,控制外部電路寫入數(shù)據(jù)的時(shí)間,可以在暫存模式下工作。
時(shí)序14(T3S),送到外部電路,控制外部電路讀取數(shù)據(jù)的時(shí)間;可以在暫存模式下工作。
程序計(jì)數(shù)器104耦接至?xí)r序電路102、只讀存儲(chǔ)器數(shù)據(jù)地址總線124、中斷電路120、以及堆棧電路106,程序計(jì)數(shù)器104是接收時(shí)序(T1_T3、T1_T2、以及T6T7)、中斷控制向量(int v[20])、跳躍訊號(hào)(JUMP),而在T1_T2栓鎖數(shù)據(jù),在T1_T3時(shí),輸出地址至只讀存儲(chǔ)器134,以使微處理器10讀取只讀存儲(chǔ)器134所送出的指令,并且具有自動(dòng)加一及地址跳躍的功能。
堆棧電路106耦接至?xí)r序電路102、程序計(jì)數(shù)器104、以及進(jìn)位電路116,堆棧電路106具有數(shù)層堆棧(例如為四層),當(dāng)堆棧電路106接收到推入堆棧訊號(hào)(push),在T7時(shí),會(huì)將此時(shí)的目前地址及進(jìn)位訊號(hào)推入這些堆棧中的一層,上一層的堆棧地址及進(jìn)位訊號(hào)同時(shí)會(huì)推入下一層,當(dāng)堆棧電路106接收到推出堆棧訊號(hào)(pop)時(shí),在T1_T4時(shí),會(huì)將此目前地址及此進(jìn)位訊號(hào)推出,并且將目前地址送到程序計(jì)數(shù)器104,而進(jìn)位訊號(hào)則送到進(jìn)位電路116。
譯碼電路108耦接至?xí)r序電路102、只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124)、進(jìn)位電路116、中斷電路120、以及數(shù)據(jù)輸出總線QB(130),譯碼電路108在T6時(shí)會(huì)栓鎖數(shù)據(jù),在T6_T7時(shí),會(huì)將只讀存儲(chǔ)器134所送出的指令譯碼,并且在下一周期的T1時(shí),會(huì)輸出指令控制訊號(hào),如推入堆棧訊號(hào)(push)、推出堆棧訊號(hào)(pop)、寫入致能訊號(hào)(wr_enb)、以及讀取致能訊號(hào)(rd_enb),來控制微處理器10的其余部分的電路。例如,這些指令控制訊號(hào)會(huì)用來控制算術(shù)邏輯單元112所執(zhí)行的各種不同的運(yùn)算;或者是控制栓鎖電路110,將數(shù)據(jù)送到隨機(jī)存取內(nèi)存地址總線RAMAR(132)。
栓鎖電路110耦接至?xí)r序電路102、只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124)、數(shù)據(jù)輸入總線AB(128)、隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)、以及隨機(jī)存取內(nèi)存地址總線RAMAR(132),用于只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124)、數(shù)據(jù)輸入總線AB(128)、以及隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)之間的數(shù)據(jù)傳輸,以及用于與隨機(jī)存取內(nèi)存136的地址傳輸。在T7時(shí),栓鎖電路110會(huì)栓鎖住只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124)上的數(shù)據(jù),在接收到指令控制訊號(hào)后(在下一周期的T1時(shí)),會(huì)將數(shù)據(jù)送到隨機(jī)存取內(nèi)存地址總線RAMAR(132),在T3時(shí),會(huì)將數(shù)據(jù)送到數(shù)據(jù)輸入總線AB(128)。
算術(shù)邏輯單元112耦接至?xí)r序電路102、隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)、數(shù)據(jù)輸入總線AB((128)、以及數(shù)據(jù)輸出總線QB(130),在T3時(shí),用以接收隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)上的數(shù)據(jù)及數(shù)據(jù)輸入總線AB((128)上的數(shù)據(jù),并且執(zhí)行加、減、及、或等的算術(shù)邏輯運(yùn)算,而在T4時(shí),將輸出的數(shù)據(jù)送到數(shù)據(jù)輸出總線QB(130)。
累加器114及進(jìn)位電路116耦接至?xí)r序電路102、數(shù)據(jù)輸出總線QB(130)、只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124)、隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)、數(shù)據(jù)輸入總線AB(128)、堆棧電路106、以及譯碼電路108,用以存放數(shù)據(jù)的運(yùn)算結(jié)果。在T3時(shí),提供數(shù)據(jù)給算術(shù)邏輯單元112進(jìn)行運(yùn)算,在T4時(shí),累加器114會(huì)提取運(yùn)算結(jié)果,在T6時(shí),會(huì)將運(yùn)算結(jié)果送到譯碼電路108進(jìn)行譯碼。對(duì)于特殊指令,累加器在T1_T3時(shí)會(huì)將數(shù)據(jù)送到只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124)做為其中的四位地址,在T4時(shí),進(jìn)位電路116會(huì)直接將運(yùn)算結(jié)果送到譯碼電路108進(jìn)行譯碼。
間接尋址電路118耦接至?xí)r序電路102、隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)、以及隨機(jī)存取內(nèi)存地址總線RAMAR(132),當(dāng)隨機(jī)存取內(nèi)存136的地址為$00FH時(shí),間接尋址電路118用以提供隨機(jī)存取內(nèi)存的地址。當(dāng)隨機(jī)存取內(nèi)存的地址不為$00FH時(shí),隨機(jī)存取內(nèi)存的地址由栓鎖電路產(chǎn)生。
中斷電路120耦接至?xí)r序電路102、隨機(jī)存取內(nèi)存地址總線RAMAR(132)、隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)、程序計(jì)數(shù)器104、以及譯碼電路108,用以接收數(shù)種中斷訊號(hào)(int0~3),當(dāng)發(fā)生中斷響應(yīng)時(shí),中斷電路120會(huì)產(chǎn)生數(shù)種中斷向量(int v[20])至程序計(jì)數(shù)器104,用以提供只讀存儲(chǔ)器134的地址。
表列跳躍緩存器122耦接至?xí)r序電路102、隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)、隨機(jī)存取內(nèi)存地址總線RAMAR(132)、以及只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124),用以接收寫入致能訊號(hào)(wr_enb)、以及讀取致能訊號(hào)(rd_enb)、隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)上的數(shù)據(jù)、以及隨機(jī)存取內(nèi)存地址總線RAMAR(132)上的地址,而輸出一訊號(hào)至只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124),以控制只讀存儲(chǔ)器134的地址。表列跳躍緩存器122可以直接讀及寫,也可以與相關(guān)的指令結(jié)合而實(shí)現(xiàn)查表的功能。并且最大可查閱256個(gè)地址內(nèi)的內(nèi)容。
只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124)在T1_T3時(shí),當(dāng)作地址總線,此時(shí)會(huì)把程序計(jì)數(shù)器104的地址傳送到只讀存儲(chǔ)器134。在T5_T7時(shí),只讀存儲(chǔ)器134會(huì)將指令經(jīng)由只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124),而傳送到譯碼電路108進(jìn)行譯碼,并進(jìn)行各種指令的運(yùn)算。其中,在只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124)中,包括譯碼數(shù)據(jù)、立即數(shù)據(jù)、以及隨機(jī)存取內(nèi)存136的地址。
而隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)在T1T5時(shí),會(huì)預(yù)充電。T3為隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)的讀取時(shí)序,T7為隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)的寫入時(shí)序。
此外,如圖4,當(dāng)微處理器10操作于暫停模式時(shí),只有時(shí)序11(T1_T2S)、時(shí)序12(T1_T4S)、時(shí)序13(T7S)以及時(shí)序14(T3S)存在,其它的時(shí)序則會(huì)停止,也就是時(shí)序始終維持在高電壓準(zhǔn)位或低電壓準(zhǔn)位。而如圖5,當(dāng)微處理器10操作于停止模式時(shí),每個(gè)時(shí)序始終維持在高電壓準(zhǔn)位或低電壓準(zhǔn)位。
根據(jù)本發(fā)明一實(shí)施例的精簡(jiǎn)功能及指令數(shù)量的微處理器的指令提取周期及指令執(zhí)行周期的時(shí)序圖,請(qǐng)參照?qǐng)D6。底下將配合圖1做說明。當(dāng)微處理器(10)重置時(shí),時(shí)序電路102會(huì)產(chǎn)生微處理器(10)所需的各種時(shí)序,同時(shí)會(huì)產(chǎn)生系統(tǒng)重置訊號(hào)(RESETB)。當(dāng)外部重置訊號(hào)(PRESETB)結(jié)束后,系統(tǒng)重置訊號(hào)(RESETB)需等待外部計(jì)數(shù)電路溢位,計(jì)數(shù)溢位訊號(hào)(WUPB)轉(zhuǎn)態(tài)后,系統(tǒng)重置訊號(hào)(RESETB)才會(huì)結(jié)束。在這段期間,程序計(jì)數(shù)器104的輸出地址為$0000H。微處理器10會(huì)將地址經(jīng)由只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124),而送到只讀存儲(chǔ)器134。然后,只讀存儲(chǔ)器134會(huì)經(jīng)由只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124),將一指令傳送到微處理器10。接下來,微處理器10會(huì)由譯碼電路108,產(chǎn)生此指令所需的各種控制訊號(hào)。然后,在下一個(gè)指令周期,執(zhí)行此指令。因此,一個(gè)指令的絕對(duì)周期為接受指令周期加上指令執(zhí)行周期。
而根據(jù)本發(fā)明一實(shí)施例的精簡(jiǎn)功能及指令數(shù)量的微處理器的接受指令周期及指令執(zhí)行周期時(shí),各個(gè)訊號(hào)的實(shí)際操作的時(shí)序圖,請(qǐng)參照?qǐng)D7。底下將配合圖1及圖3來說明接受指令周期及指令執(zhí)行周期。
接受指令周期首先,程序計(jì)數(shù)器(104)會(huì)在T1_T3,送出只讀存儲(chǔ)器134的地址到只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124)。接著,只讀存儲(chǔ)器134會(huì)在T1_T2,提取地址。接著,只讀存儲(chǔ)器134會(huì)在T5_T7,輸出數(shù)據(jù)到只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124),以供譯碼電路108譯碼。接下來,譯碼電路108會(huì)在T6時(shí),提取數(shù)據(jù)譯碼,譯碼結(jié)果會(huì)在T8穩(wěn)定。然后,會(huì)在下一個(gè)指令周期的T1,將譯碼結(jié)果輸出。此外,在譯碼的同時(shí),栓鎖電路110會(huì)在T7,從只讀存儲(chǔ)器數(shù)據(jù)地址總線RB(124)提取數(shù)據(jù)而栓鎖住數(shù)據(jù)。
指令執(zhí)行周期首先,譯碼電路108的譯碼結(jié)果會(huì)在T1時(shí)輸出,用來控制微處理器10中的各個(gè)電路,并且會(huì)保持整個(gè)指令執(zhí)行周期。接著,根據(jù)譯碼電路108的譯碼結(jié)果,栓鎖電路110會(huì)在T1,送出隨機(jī)存取內(nèi)存136的地址到隨機(jī)存取內(nèi)存地址總線RAMAR(132),并且會(huì)在T2_T4,將數(shù)據(jù)分別送到隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)及數(shù)據(jù)輸入總線AB(128),以供算術(shù)邏輯單元112的運(yùn)算。接著,算術(shù)邏輯單元112會(huì)在T3,從隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)及數(shù)據(jù)輸入總線AB(128)提取數(shù)據(jù),并且進(jìn)行運(yùn)算,然后會(huì)在T4,將運(yùn)算結(jié)果經(jīng)由數(shù)據(jù)輸出總線QB(130),送到累加器114。接下來,累加器114會(huì)在T4,從數(shù)據(jù)輸出總線QB(130)提取運(yùn)算結(jié)果,然后會(huì)在T5_T7,將數(shù)據(jù)輸出總線QB(130),以供譯碼電路108譯碼。然后,譯碼電路108會(huì)在T6,提取數(shù)據(jù)并進(jìn)行譯碼。當(dāng)需要將運(yùn)算結(jié)果寫回隨機(jī)存取內(nèi)存136時(shí),累加器114會(huì)在T6_T7,將運(yùn)算結(jié)果輸出至隨機(jī)存取內(nèi)存數(shù)據(jù)總線BB(126)。
另外要說明的是,4位的微處理器10及16位的只讀存儲(chǔ)器134進(jìn)行地址及數(shù)據(jù)的傳送。在T1_T3,微處理器10會(huì)將地址傳送到只讀存儲(chǔ)器134。在T5_T7,只讀存儲(chǔ)器134會(huì)將指令傳送到微處理器10,進(jìn)行指令譯碼。指令譯碼可分為兩種。一種是當(dāng)指令譯碼為執(zhí)行立即數(shù)據(jù)與隨機(jī)存取內(nèi)存136的數(shù)據(jù)操作時(shí),栓鎖器110在T7時(shí),會(huì)栓鎖住16位指令中的4位數(shù)據(jù),栓鎖器110在T3時(shí),會(huì)將立即數(shù)據(jù)傳送到算術(shù)邏輯單元112的一個(gè)輸入端,而算術(shù)邏輯單元112的另一個(gè)輸入端為隨機(jī)存取內(nèi)存136的栓鎖數(shù)據(jù)。而隨機(jī)存取內(nèi)存136的地址是由接收指令周期的16位指令中的7位所譯碼而得的地址。另一種是當(dāng)指令譯碼為執(zhí)行累加器114運(yùn)算時(shí),會(huì)將16位指令中的10位數(shù)據(jù)傳送到栓鎖器110,栓鎖器110在T1時(shí),會(huì)將隨機(jī)存取內(nèi)存136的地址傳送到隨機(jī)存取內(nèi)存136,隨機(jī)存取內(nèi)存136在T3時(shí),會(huì)將數(shù)據(jù)傳送到算術(shù)邏輯單元112的一個(gè)輸入端,而算術(shù)邏輯單元112的另一個(gè)輸入端為累加器114的數(shù)據(jù)。
綜上所述,本發(fā)明的微處理器的外部采用了16位只讀存儲(chǔ)器,4位隨機(jī)存取內(nèi)存,以及每16位寬度的只讀存儲(chǔ)器只儲(chǔ)存一個(gè)指令,并且此指令包含操作碼及操作數(shù),因此精簡(jiǎn)了譯碼電路及地址的規(guī)模。再者,本發(fā)明只采用了43個(gè)單字組及單周期指令,所以也能使電路更為精簡(jiǎn),進(jìn)而減少了占用芯片的面積。此外,因?yàn)楸景l(fā)明采用單周期指令,所以可以使程序撰寫者更易于計(jì)算程序執(zhí)行的時(shí)間。
雖然本發(fā)明已以實(shí)施例說明于上,然其并非用以限定本發(fā)明,任何熟悉此技術(shù)者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動(dòng)與潤(rùn)飾,因此本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求書為準(zhǔn)。
權(quán)利要求
1.一種精簡(jiǎn)功能及指令數(shù)量的微處理器,耦接至一只讀存儲(chǔ)器及一隨機(jī)存取內(nèi)存,該微處理器是由一只讀存儲(chǔ)器數(shù)據(jù)地址總線、一隨機(jī)存取內(nèi)存數(shù)據(jù)總線、一數(shù)據(jù)輸入總線、以及一數(shù)據(jù)輸出總線來傳輸數(shù)據(jù),以及由該只讀存儲(chǔ)器數(shù)據(jù)地址總線及一隨機(jī)存取內(nèi)存地址總線來傳輸?shù)刂罚涮卣鳛樵撐⑻幚砥靼ㄒ粫r(shí)序電路,根據(jù)一系統(tǒng)時(shí)脈訊號(hào)而產(chǎn)生復(fù)數(shù)種時(shí)序,以控制指令的執(zhí)行;一程序計(jì)數(shù)器,耦接至該時(shí)序電路及該只讀存儲(chǔ)器數(shù)據(jù)地址總線,用以輸出地址至該只讀存儲(chǔ)器,并且具有自動(dòng)加一及地址跳躍的功能;一堆棧電路,耦接至該時(shí)序電路及該程序計(jì)數(shù)器,該堆棧電路具有復(fù)數(shù)層堆棧,當(dāng)該堆棧電路接收到一推入堆棧訊號(hào)時(shí),會(huì)將此時(shí)的一目前地址及一進(jìn)位訊號(hào)推入該些堆棧中的一層,當(dāng)該堆棧電路接收到一推出堆棧訊號(hào)時(shí),會(huì)將該目前地址及該進(jìn)位訊號(hào)推出;一譯碼電路,耦接至該時(shí)序電路、該只讀存儲(chǔ)器數(shù)據(jù)地址總線、以及該數(shù)據(jù)輸出總線,該譯碼電路會(huì)將該只讀存儲(chǔ)器所送出的指令譯碼,并且會(huì)輸出該推入堆棧訊號(hào)、該推出堆棧訊號(hào)、一寫入致能訊號(hào)、以及一讀取致能訊號(hào);一栓鎖電路,耦接至該時(shí)序電路、該只讀存儲(chǔ)器數(shù)據(jù)地址總線、該數(shù)據(jù)輸入總線、該隨機(jī)存取內(nèi)存數(shù)據(jù)總線、以及該隨機(jī)存取內(nèi)存地址總線,用于該只讀存儲(chǔ)器數(shù)據(jù)地址總線、該數(shù)據(jù)輸入總線、以及該隨機(jī)存取內(nèi)存數(shù)據(jù)總線之間的數(shù)據(jù)傳輸,以及用于與該隨機(jī)存取內(nèi)存的地址傳輸;一算術(shù)邏輯單元,耦接至該時(shí)序電路、該隨機(jī)存取內(nèi)存數(shù)據(jù)總線、該數(shù)據(jù)輸入總線、以及該數(shù)據(jù)輸出總線,用以接收該隨機(jī)存取內(nèi)存數(shù)據(jù)總線上的數(shù)據(jù)及該數(shù)據(jù)輸入總線上的數(shù)據(jù),并且執(zhí)行加、減、及、或等的算術(shù)邏輯運(yùn)算,而將輸出的數(shù)據(jù)送到該數(shù)據(jù)輸出總線;一累加器及一進(jìn)位電路,耦接至該時(shí)序電路、該數(shù)據(jù)輸出總線、該只讀存儲(chǔ)器數(shù)據(jù)地址總線、該隨機(jī)存取內(nèi)存數(shù)據(jù)總線、該數(shù)據(jù)輸入總線、該堆棧電路、以及該譯碼電路,用以存放數(shù)據(jù)的運(yùn)算結(jié)果;一間接尋址電路,耦接至該時(shí)序電路、該隨機(jī)存取內(nèi)存數(shù)據(jù)總線、以及該隨機(jī)存取內(nèi)存地址總線,當(dāng)該隨機(jī)存取內(nèi)存的地址為$00FH時(shí),該間接尋址電路是用以提供該隨機(jī)存取內(nèi)存的地址;一中斷電路,耦接至該時(shí)序電路、該隨機(jī)存取內(nèi)存地址總線、該隨機(jī)存取內(nèi)存數(shù)據(jù)總線、該程序計(jì)數(shù)器、以及該譯碼電路,用以接收復(fù)數(shù)種中斷訊號(hào),當(dāng)發(fā)生中斷響應(yīng)時(shí),該中斷電路會(huì)產(chǎn)生復(fù)數(shù)種中斷向量至該程序計(jì)數(shù)器;以及一表列跳躍緩存器,耦接至該時(shí)序電路、該隨機(jī)存取內(nèi)存數(shù)據(jù)總線、該隨機(jī)存取內(nèi)存地址總線、以及該只讀存儲(chǔ)器數(shù)據(jù)地址總線,用以接收該寫入致能訊號(hào)、該讀取致能訊號(hào)、該隨機(jī)存取內(nèi)存數(shù)據(jù)總線上的數(shù)據(jù)、以及該隨機(jī)存取內(nèi)存地址總線上的地址,而輸出一訊號(hào)至該只讀存儲(chǔ)器數(shù)據(jù)地址總線,以控制該只讀存儲(chǔ)器數(shù)據(jù)的地址;其中,該微處理器與該只讀存儲(chǔ)器連接的該隨機(jī)存取內(nèi)存地址總線具有16位寬度,而該微處理器與該隨機(jī)存取內(nèi)存連接的該隨機(jī)存取內(nèi)存數(shù)據(jù)總線具有4位寬度。
2.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該微處理器包含三種工作模式,分別為運(yùn)作模式、暫停模式、以及停止模式。
3.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該微處理器為一4位微處理器。
4.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該微處理器以四個(gè)時(shí)脈周期為一指令周期。
5.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該只讀存儲(chǔ)器數(shù)據(jù)地址總線為數(shù)據(jù)總線與地址總線兩者共享,并且由該些時(shí)序,來區(qū)分是數(shù)據(jù)總線,還是地址總線。
6.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該時(shí)序電路還會(huì)接收一重置訊號(hào)、一暫停訊號(hào)、一停止訊號(hào)、一同步訊號(hào)、以及一計(jì)數(shù)溢位訊號(hào),并且還會(huì)輸出一系統(tǒng)重置訊號(hào)及一輸出計(jì)數(shù)控制訊號(hào)。
7.如權(quán)利要求6所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該重置訊號(hào)、該同步訊號(hào)、以及該計(jì)數(shù)溢位訊號(hào)為該微處理器外部的控制訊號(hào)。
8.如權(quán)利要求6所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該暫停訊號(hào)及該停止訊號(hào)由該譯碼電路所產(chǎn)生。
9.如權(quán)利要求6所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該系統(tǒng)重置訊號(hào)連接至一系統(tǒng)的復(fù)數(shù)個(gè)個(gè)電路,用以預(yù)設(shè)該些電路的初始值。
10.如權(quán)利要求6所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該輸出計(jì)數(shù)控制訊號(hào)用以控制該微處理器的外部電路的復(fù)數(shù)個(gè)計(jì)數(shù)開關(guān)。
11.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該目前地址送至該程序計(jì)數(shù)器,而該進(jìn)位訊號(hào)送至該進(jìn)位電路。
12.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該累加器及該進(jìn)位電路所存放的數(shù)據(jù)的運(yùn)算結(jié)果送至該譯碼電路進(jìn)行譯碼。
13.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為當(dāng)該隨機(jī)存取內(nèi)存的地址不為$00FH時(shí),該隨機(jī)存取內(nèi)存的地址由該栓鎖電路產(chǎn)生。
14.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該些中斷訊號(hào)包括四種中斷訊號(hào)。
15.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該些中斷向量包括三種中斷向量。
16.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該表列跳躍緩存器可以直接讀及寫,也可以與相關(guān)的指令結(jié)合而實(shí)現(xiàn)查表的功能。
17.如權(quán)利要求1所述的精簡(jiǎn)功能及指令數(shù)量的微處理器,其特征為該表列跳躍緩存器最大可查閱256個(gè)地址內(nèi)的內(nèi)容。
全文摘要
一種精簡(jiǎn)功能及指令數(shù)量的微處理器。此微處理器包括時(shí)序電路、程序計(jì)數(shù)器、堆棧電路、譯碼電路、栓鎖電路、算術(shù)邏輯單元、累加器及進(jìn)位電路、間接尋址電路、中斷電路、以及表列跳躍緩存器。本發(fā)明微處理器的外部采用了16位只讀存儲(chǔ)器,4位隨機(jī)存取內(nèi)存,以及每16位寬度的只讀存儲(chǔ)器只儲(chǔ)存一個(gè)指令,并且此指令包含操作碼及操作數(shù),因此精簡(jiǎn)了譯碼電路及地址的規(guī)模。再者,本發(fā)明只采用了43個(gè)單字組及單周期指令,所以也能使電路更為精簡(jiǎn),進(jìn)而減少了占用芯片的面積。此外,因?yàn)楸景l(fā)明采用單周期指令,所以可以使程序撰寫者更易于計(jì)算程序執(zhí)行的時(shí)間。
文檔編號(hào)G06F9/22GK1466043SQ0212307
公開日2004年1月7日 申請(qǐng)日期2002年6月13日 優(yōu)先權(quán)日2002年6月13日
發(fā)明者王曉艷, 計(jì)萬里 申請(qǐng)人:中穎電子(上海)有限公司