專利名稱:一種8051微控制器指令流水系統(tǒng)及實現(xiàn)方法
技術領域:
本發(fā)明涉及微控制器,特別涉及一種8051微控制器指令流水系統(tǒng)及實現(xiàn) 方法。
背景技術:
普通8051微控制器一般速度在12Mhz到40Mhz,指令周期最短為12個時 鐘周期,指令速度在幾個MIPS之內(nèi),改進型指令速度在10到40MIPS左右。圖1為典型8051微控制器指令周期示意圖, 一個機器周期由6個狀態(tài) (S廣S6)組成,每個狀態(tài)為2個時鐘周期, 一條指令的時間為一個或兩個機 器周期;執(zhí)行一條指令的時間為12或24個時鐘周期,所有指令順序執(zhí)行,指 令速度只為幾個M工PS。由于普通8051微控制器在高端嵌入式系統(tǒng)中速度慢和性能低,已經(jīng)成為 應用中的一個瓶頸,從而使得8051微控制器成本低,功耗低,軟件資源多, 易開發(fā)的優(yōu)勢不能得到很好的發(fā)揮。
圖1是典型8051微控制器指令周期;圖2是流水系統(tǒng)框圖; 圖3是指令發(fā)射和指令緩存示意圖; 圖4. l是指令流水示意圖;圖4. 2是指令流水數(shù)據(jù)相關示意圖 圖5是高速間接尋址示意圖。發(fā)明內(nèi)容本發(fā)明為了解決上述技術問題,提出了一種8051微控制器指令流水系統(tǒng) 及實現(xiàn)方法,該方法能大幅度提高8051微控制器速度和性能,可以滿足當前嵌 入式系統(tǒng)的設計對嵌入式微控制器提出的越來越高的性能要求。本發(fā)明提供了一種8051微控制器指令流水系統(tǒng),包括時鐘控制模塊、 指令發(fā)射模塊和指令流水模塊;所述指令發(fā)射模塊包括指令緩存模塊,用于從 程序存儲器讀取指令,為指令流水系統(tǒng)提供指令發(fā)射;所述時鐘控制模塊,用 于為8051微控制器提供處理時鐘;所述指令流水模塊,用于接收指令發(fā)射模 塊的指令輸出,提供指令流水處理,并實施指令執(zhí)行輸出。所述指令發(fā)射模塊還包括指令讀取控制模塊、緩存控制模塊、指令選擇輸 出模塊;所述指令讀取控制模塊控制,用于對程序存儲器進行讀取,同時將讀 取操作發(fā)送至所述緩存控制模塊;緩存控制模塊,用于識別讀取操作,同時根 據(jù)讀取操作,通知指令緩存模塊向所述指令選擇輸出模塊給出緩沖數(shù)據(jù)和命中 信息;所述指令選擇輸出模塊,用于根據(jù)命中信息選擇指令輸出數(shù)據(jù)來自所述 指令緩存模塊還是來自所述程序存儲器。還包括間接尋址模塊,用于與指令流水模塊和數(shù)據(jù)存儲器交互,縮短間接 尋址指令執(zhí)行時間。緩存控制模塊,還用于根據(jù)緩存更新算法對緩存進行更新操作。本發(fā)明提供了一種8051微控制器指令流水實現(xiàn)方法,包括步驟l,進行指令譯碼和數(shù)據(jù)讀取,用于將指令譯碼,并根據(jù)譯碼結(jié)果產(chǎn) 生相應的內(nèi)存單元讀取控制信號;步驟2,進行數(shù)據(jù)讀出和數(shù)據(jù)執(zhí)行,用于內(nèi)存單元送出讀取數(shù)據(jù),同時被 讀出的數(shù)據(jù)進行邏輯算術運算操作和數(shù)據(jù)傳送操作;步驟3,進行數(shù)據(jù)回寫和指令跳轉(zhuǎn),用于將數(shù)據(jù)執(zhí)行結(jié)果寫回內(nèi)存單元, 同時判斷是否有跳轉(zhuǎn),若確認跳轉(zhuǎn),將向指令發(fā)射模塊送出跳轉(zhuǎn)信息。上述步驟l、步驟2和步驟3并行運行。還包括歩驟81,保存前兩條指令回寫地址;步驟82,判斷當前指令與前兩條指令是否發(fā)生數(shù)據(jù)相關,如果是,將相 關數(shù)據(jù)進行數(shù)據(jù)執(zhí)行,否則直接將內(nèi)存單元讀出數(shù)據(jù)作為當前讀出數(shù)據(jù)送出。 本發(fā)明提供了一種間接尋址方法,包括-步驟91,保存8個間接寄存器的值做為副本;
步驟92,采用寄存器地址直接選擇寄存器值副本得到尋址地址; 步驟93,返回最終數(shù)據(jù)。所述8個間接寄存器的值為D00到D19。本發(fā)明的技術效果在于高速度8051微控制器,處理時鐘可達100Mhz。高性能8051微控制器,采用指令發(fā)射模塊和指令緩存模塊結(jié)合,提供上 至100Mbyte/s的指令發(fā)射。高效率8051微控制器,采用指令流水執(zhí)行和間接尋址系統(tǒng),執(zhí)行速度可 上至IOOMIPS。應用該流水線執(zhí)行方式的8051微控制器能夠?qū)崿F(xiàn)更高的指令執(zhí)行速度和 執(zhí)行效率;與傳統(tǒng)8051微控制器相比,用較少的硬件成本增加得到了大幅度 的性能提高。
具體實施方式
本發(fā)明的微控制器結(jié)構(gòu)包括片上時鐘控制模塊、高速指令發(fā)射模塊、高速 指令流水模塊和高速間接尋址模塊。本發(fā)明核心在指令發(fā)射模塊、指令緩存模 塊、指令流水模塊、間接尋址模塊,這4個模塊保證了大部分指令能在1個時 鐘內(nèi)通過流水執(zhí)行完成。本發(fā)明提供的系統(tǒng)如圖2所示,包括時鐘控制模塊,為處理器提供上至100Mhz的處理時鐘,同時可控制的時 鐘可以讓處理器通過時鐘控制來實現(xiàn)功耗控制;指令發(fā)射模塊,該模塊包括指令緩存模塊,從程序存儲器讀取指令,為指 令流水系統(tǒng)提供上至100Mbyte/s的指令發(fā)射;指令流水模塊,接收指令發(fā)射模塊的指令輸出,提供上至100MIPS的指令 流水處理,并實施指令執(zhí)行輸出;間接尋址模塊,該模塊與指令流水模塊和RAM (數(shù)據(jù)存儲器)交互,縮短 間接尋址指令執(zhí)行時間,結(jié)合指令流水模塊,保證大部分間接尋址指令在1 個時鐘內(nèi)完成。圖3是指令發(fā)射和指令緩存示意圖指令讀取控制模塊控制對程序存儲器的讀取,該模塊向程序存儲器發(fā)出讀
信號,讀地址,并接收程序存儲器返回數(shù)據(jù),同時將讀信號、讀地址、返回數(shù) 據(jù)送至緩存更新模塊,并將返回數(shù)據(jù)送至指令選擇輸出模塊;緩存控制模塊對緩存進行讀取和更新,根據(jù)指令讀取控制模塊發(fā)出的讀信號、讀地址和緩存地址標簽進行比較,給出緩存命中信息;如果命中,將從緩 存讀出相應緩存數(shù)據(jù),否則將程序存儲器返回數(shù)據(jù)更新至緩存;指令選擇輸出模塊判斷緩存命中信息,如果命中,則指令發(fā)射模塊的指令 輸出數(shù)據(jù)為緩存輸出數(shù)據(jù),否則為程序存儲器返回數(shù)據(jù)。圖4. 1是指令流水示意圖,流水線的實現(xiàn)方法包括三個階段流水階段D,為指令譯碼和數(shù)據(jù)讀取;此流水階段將指令譯碼,并根據(jù)譯 碼結(jié)果產(chǎn)生相應的內(nèi)存單元讀取控制信號,包括讀有效,讀地址等;流水階段E,為數(shù)據(jù)讀出和數(shù)據(jù)執(zhí)行;此流水階段內(nèi)存單元送出讀取數(shù)據(jù), 同時被讀出的數(shù)據(jù)進行邏輯算術運算操作和數(shù)據(jù)傳送操作。流水階段W,為數(shù)據(jù)回寫和指令跳轉(zhuǎn);此流水階段將數(shù)據(jù)執(zhí)行結(jié)果寫回內(nèi) 存單元,同時判斷是否有跳轉(zhuǎn),若確認跳轉(zhuǎn),將向指令發(fā)射模塊送出跳轉(zhuǎn)信息。三個流水階段并行運行,以實現(xiàn)高速指令執(zhí)行。如下圖所示在時鐘2 時,指令(N+2)的D流水與指令(N+l)的E流水以及指令(N+0)的W流水 同時進行。圖4. 2指令流水中的數(shù)據(jù)相關處理由于數(shù)據(jù)回寫在流水階段D之后一個時鐘才能寫入內(nèi)存單元,所以當前指 令在數(shù)據(jù)讀出階段得到的結(jié)果數(shù)據(jù)與前兩條指令發(fā)生數(shù)據(jù)相關;流水過程中保存前兩條指令在數(shù)據(jù)回寫階段的數(shù)據(jù)回寫狀態(tài),包括回寫地 址和回寫數(shù)據(jù),通過判斷前兩條數(shù)據(jù)的回寫地址是否與當前數(shù)據(jù)讀出的地址相 同來確定是否發(fā)生數(shù)據(jù)相關;如果地址相同,則表示產(chǎn)生數(shù)據(jù)相關,當前讀出 數(shù)據(jù)被替換為相關指令的回寫數(shù)據(jù)送出,如果地址不同,則表示沒有發(fā)生數(shù)據(jù) 相關,直接將內(nèi)存單元讀出數(shù)據(jù)作為當前讀出數(shù)據(jù)送出;圖中,數(shù)據(jù)讀取由re表示,數(shù)據(jù)讀出由rd表示,數(shù)據(jù)回寫由we表示, 數(shù)據(jù)寫入由wd表示;在時鐘2時,指令(N+2)數(shù)據(jù)讀出與指令(N+l)和指 令(N+0)發(fā)生相關;處理如下If 指令(N+2)與指令(N+l)數(shù)據(jù)回寫相關Then 指令(N+2)數(shù)據(jù)讀出為指令(N+l)回寫數(shù)據(jù) Else if指令(N+2)與指令(N+0)數(shù)據(jù)寫入相關 Then 指令(N+2)數(shù)據(jù)讀出為指令(N+0)寫入數(shù)據(jù) Else 指令(N+2)數(shù)據(jù)讀出為RAM數(shù)據(jù)圖5是高速間接尋址示意圖。在間接尋址方式中,指令指定某個寄存器來 存放尋址操作的地址,該寄存器值作為間接地址再對內(nèi)存單元尋址; 普通間接尋址方式實現(xiàn)如下 AO:尋址寄存器組R00至R19; Al:返回寄存器值; A2:通過寄存器值尋址內(nèi)存單元; A3:返回最終數(shù)據(jù)因為間接寄存器只有8個,可以通過保存8個間接寄存器(ROO至R19, 其地址分別為HOO, HOl, H08, H09, H18, H19)的值DOO至D19做為副本, 通過寄存器地址選擇寄存器值后得到尋址地址,再以此地址直接尋址內(nèi)存單 元。通過這種方式可以縮短間接尋址指令的執(zhí)行時間;高速間接尋址模塊原理如下BO:采用寄存器地址直接選擇寄存器值副本得到尋址地址; Bl:返回最終數(shù)據(jù);通過本發(fā)明方法的設計8051微控制器,超過70%指令可以在2個時鐘內(nèi) 完成,超過50%指令可以在1個時鐘內(nèi)完成,縮短了指令執(zhí)行周期;同時流 水線方式使微控制器可以在高時鐘頻率運行,提高了指令執(zhí)行速度;微控制器 的效率從整體上得到了大幅提高。
權(quán)利要求
1.一種8051微控制器指令流水系統(tǒng),其特征在于,包括時鐘控制模塊、指令發(fā)射模塊和指令流水模塊;所述指令發(fā)射模塊包括指令緩存模塊,用于從程序存儲器讀取指令,為指令流水系統(tǒng)提供指令發(fā)射;所述時鐘控制模塊,用于為8051微控制器提供處理時鐘;所述指令流水模塊,用于接收指令發(fā)射模塊的指令輸出,提供指令流水處理,并實施指令執(zhí)行輸出。
2. 如權(quán)利要求1所述的指令流水系統(tǒng),其特征在于,所述指令發(fā)射模塊還 包括指令讀取控制模塊、緩存控制模塊、指令選擇輸出模塊;所述指令讀取控 制模塊控制,用于對程序存儲器進行讀取,同時將讀取操作發(fā)送至所述緩存控 制模塊;緩存控制模塊,用于識別讀取操作,同時根據(jù)讀取操作,通知指令緩 存模塊向所述指令選擇輸出模塊給出緩沖數(shù)據(jù)和命中信息;所述指令選擇輸出 模塊,用于根據(jù)命中信息選擇指令輸出數(shù)據(jù)來自所述指令緩存模塊還是來自所 述程序存儲器。
3. 如權(quán)利要求1或2所述的指令流水系統(tǒng),其特征在于,還包括間接尋址 模塊,用于與指令流水模塊和數(shù)據(jù)存儲器交互,縮短間接尋址指令執(zhí)行對間。
4. 如權(quán)利要求1或2所述的指令流水系統(tǒng),其特征在于,緩存控制模塊, 還用于根據(jù)緩存更新算法對緩存進行更新操作。
5. —種8051微控制器指令流水實現(xiàn)方法,其特征在于,包括步驟l,進行指令譯碼和數(shù)據(jù)讀取,用于將指令譯碼,并根據(jù)譯碼結(jié)果產(chǎn) 生相應的內(nèi)存單元讀取控制信號;歩驟2,進行數(shù)據(jù)讀出和數(shù)據(jù)執(zhí)行,用于內(nèi)存單元送出讀取數(shù)據(jù),同時被 讀出的數(shù)據(jù)進行邏輯算術運算操作和數(shù)據(jù)傳送操作;歩驟3,進行數(shù)據(jù)回寫和指令跳轉(zhuǎn),用于將數(shù)據(jù)執(zhí)行結(jié)果寫回內(nèi)存單元, 同時判斷是否有跳轉(zhuǎn),若確認跳轉(zhuǎn),將向指令發(fā)射模塊送出跳轉(zhuǎn)信息。
6. 如權(quán)利要求5所述的指令流水實現(xiàn)方法,其特征在于,上述步驟l、步 驟2和步驟3并行運行。
7. 如權(quán)利要求6所述的指令流水實現(xiàn)方法,其特征在于,還包括 步驟81,保存前兩條指令回寫地址;步驟82,判斷當前指令與前兩條指令是否發(fā)生數(shù)據(jù)相關,如果是,將相 關數(shù)據(jù)進行數(shù)據(jù)執(zhí)行,否則直接將內(nèi)存單元讀出數(shù)據(jù)作為當前讀出數(shù)據(jù)送出。
8. —種利用如權(quán)利要求5-7任意一項所述的指令流水實現(xiàn)方法的間接尋 址方法,其特征在于,包括步驟91,保存8個間接寄存器的值做為副本;步驟92,采用寄存器地址直接選擇寄存器值副本得到尋址地址;步驟93,返回最終數(shù)據(jù)。
9. 如權(quán)利要求8所述的間接尋址方法,其特征在于,所述8個間接寄存器 的值為D00到D19。
全文摘要
本發(fā)明提供了一種8051微控制器指令流水系統(tǒng),包括時鐘控制模塊、指令發(fā)射模塊和指令流水模塊;所述指令發(fā)射模塊包括指令緩存模塊,用于從程序存儲器讀取指令,為指令流水系統(tǒng)提供指令發(fā)射;所述時鐘控制模塊,用于為8051微控制器提供處理時鐘;所述指令流水模塊,用于接收指令發(fā)射模塊的指令輸出,提供指令流水處理,并實施指令執(zhí)行輸出。本發(fā)明能夠使8051微控制器能夠具有更高的指令執(zhí)行速度和執(zhí)行效率;與傳統(tǒng)8051微控制器相比,用較少的硬件成本增加得到了大幅度的性能提高。
文檔編號G06F9/38GK101118485SQ20071012195
公開日2008年2月6日 申請日期2007年9月18日 優(yōu)先權(quán)日2007年9月18日
發(fā)明者劉貴勇 申請人:成都方程式電子有限公司