專利名稱:一種16位微處理器使用的偽四級流水結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,涉及一種微處理器的設(shè)計(jì)和制造,特別涉及一種16位微處理器使用的偽四級流水結(jié)構(gòu)。
微程序控制器技術(shù)的缺點(diǎn)是設(shè)計(jì)復(fù)雜,對設(shè)計(jì)人員的技術(shù)要求很高,需要采用ROM固化微程序,處理器執(zhí)行速度低,不適于RISC結(jié)構(gòu)處理器的設(shè)計(jì),不符合現(xiàn)代處理器設(shè)計(jì)的發(fā)展趨勢。
流水線技術(shù)是目前廣泛流行的一種RISC微處理器設(shè)計(jì)技術(shù),一般采用3~5級流水線(也有采用7級流水線),其缺點(diǎn)是當(dāng)流水線超過3級時,設(shè)計(jì)復(fù)雜度很高,對設(shè)計(jì)人員的技術(shù)要求很高,數(shù)據(jù)相關(guān)沖突及轉(zhuǎn)移沖突的處理要占用大量設(shè)計(jì)資源,不適合小型微處理器的設(shè)計(jì),在面向中低端應(yīng)用場合的設(shè)計(jì)中不能充分利用資源效率,會造成人力與財力的極大浪費(fèi)。
順序控制技術(shù)是將處理器的控制過程劃分為多個控制狀態(tài),在每個時鐘周期執(zhí)行一個狀態(tài),其缺點(diǎn)是執(zhí)行速度慢,資源利用效率低,如8031就是采用這種技術(shù),在輸入時鐘為12MHz時,一條指令最少要1μs(12個時鐘周期)才能完成。
為了實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案是,該16位微處理器使用的偽四級流水結(jié)構(gòu)包括,流水線控制器、指令寄存器、譯碼器、流水寄存器、ALU、執(zhí)行部件(EX)和存儲器訪問/寄存器寫(MW);流水線控制器分別與指令寄存器、譯碼器、流水寄存器、執(zhí)行部件(EX)和存儲器訪問/寄存器寫(MW)相連接,指令寄存器與譯碼器相連,譯碼器與流水寄存器相連接,流水寄存器分別與ALU、執(zhí)行部件(EX)相連接;執(zhí)行部件(EX)與ALU和存儲器訪問/寄存器寫(MW)相連接;ALU與存儲器訪問/寄存器寫(MW)相連接;將每條指令的執(zhí)行分為取指令(FT)、譯碼(DC)、執(zhí)行(EX)和存儲器訪問與寫(MW)四個階段,在處理器中設(shè)置一個兩級流水線,每個流水級中包含兩個相態(tài)(PH1、PH2),將每條指令的四個階段分別分配到兩個流水級的四個相態(tài)中去執(zhí)行,利用兩級流水線實(shí)現(xiàn)了指令的四級流水;該結(jié)構(gòu)中每個機(jī)器周期Ti包含兩個時鐘周期,分別對應(yīng)兩個相態(tài)PH1和PH2;并按以下步驟執(zhí)行1)假定指令I(lǐng)1在機(jī)器周期T1開始執(zhí)行,取指譯碼部件作為流水級1在PH1時鐘周期將I1的指令碼從程序存儲器中取到指令寄存器中,然后在PH2時鐘周期對它進(jìn)行譯碼,在此T1周期中,執(zhí)行部件作為流水級2則完成上一條指令I(lǐng)-1的執(zhí)行;2)到了機(jī)器周期T2,指令I(lǐng)1進(jìn)入流水級2,在PH1時鐘周期由執(zhí)行部件完成I1指令的執(zhí)行,PH2時鐘周期執(zhí)行I1指令的寫寄存器或存儲器訪問操作,此T2周期中流水級1則完成對下一條指令I(lǐng)2的取指與譯碼;3)對于運(yùn)算類指令,其最終運(yùn)算結(jié)果總是要寫入到寄存器中,因此運(yùn)算操作的執(zhí)行總是在流水級2的PH1開始,到PH2結(jié)束時完成,ALU部件可以在兩個時鐘周期內(nèi)完成一次運(yùn)算操作。
本發(fā)明的16位微處理器使用的偽四級流水結(jié)構(gòu),在進(jìn)行微處理器設(shè)計(jì)時有以下優(yōu)點(diǎn)(1)處理器速度有了很大的提高,如采用該結(jié)構(gòu)的微處理器LS-IPU16在16MHz主頻下可以達(dá)到8MIPS的執(zhí)行速度;(2)由于只采用了兩個物理流水級,有效地避免了流水線沖突及數(shù)據(jù)相關(guān)問題,因此極大地簡化了處理器的設(shè)計(jì)復(fù)雜度,減小了對芯片資源的要求,16位微處理器的控制器只有500門的電路規(guī)模(包括中斷處理);(3)采用四級偽流水結(jié)構(gòu)有利于設(shè)計(jì)性能的進(jìn)一步提高,只需對設(shè)計(jì)進(jìn)行簡單的修改就可以順利地從偽四級流水過渡到真正的四級流水,從而實(shí)現(xiàn)指令的單周期執(zhí)行;(4)由于設(shè)計(jì)復(fù)雜度的降低,所用資源較少,因此可以有效地降低處理器的功耗;(5)采用偽四級流水結(jié)構(gòu)后,由于結(jié)構(gòu)得到了簡化,因此微處理器的可測試性設(shè)計(jì)的復(fù)雜度也會大大降低,產(chǎn)品的的可制造性也會大大提高;(6)技術(shù)具有廣泛的適用性,并不局限于某一種特定的處理器設(shè)計(jì)中;(7)對每一條指令來說,分為四個順序的階段取指、譯碼、執(zhí)行、存儲器訪問/寫四個階段,各階段功能明確,時間清晰,具有很強(qiáng)的結(jié)構(gòu)完整性。
四
圖1是本發(fā)明的16位微處理器使用的偽四級流水結(jié)構(gòu)指令流程圖;圖2是本發(fā)明的16位微處理器使用的偽四級流水控制結(jié)構(gòu)圖;圖3是16位微處理器使用的偽四級流水結(jié)構(gòu)替換方案。
參見圖1,圖1是本發(fā)明的16位微處理器(代號為LS-IPU16)使用的偽四級流水結(jié)構(gòu)指令流程圖。
在面向I/O通道數(shù)據(jù)處理的16位微控制器設(shè)計(jì)中,申請人采用了偽四級流水結(jié)構(gòu),使得處理器核的設(shè)計(jì)復(fù)雜度得到了極大的簡化。
16位微處理器使用的偽四級流水結(jié)構(gòu)的設(shè)計(jì)思想如圖1所示,LS-IPU16微處理器共有5類37條指令,將每條指令的執(zhí)行分為取指令(FT)、譯碼(DC)、執(zhí)行(EX)和存儲器訪問與寫(MW)四個階段,在處理器中設(shè)置一個兩級流水線,每個流水級中包含兩個相態(tài)(PH1、PH2),將每條指令的四個階段分別分配到兩個流水級的四個相態(tài)中去執(zhí)行,從而利用兩級流水線實(shí)現(xiàn)了指令的四級流水。
在此偽四級流水結(jié)構(gòu)中每個機(jī)器周期Ti包含兩個時鐘周期(分別對應(yīng)PH1和PH2)。假定指令I(lǐng)1在機(jī)器周期T1開始執(zhí)行,流水級1(取指譯碼部件)在PH1時鐘周期將I1的指令碼從程序存儲器中取到指令寄存器中,然后在PH2時鐘周期對它進(jìn)行譯碼,在此T1周期中流水級2(執(zhí)行部件)則完成上一條指令I(lǐng)-1的執(zhí)行。到了機(jī)器周期T2,指令I(lǐng)1進(jìn)入流水級2,在PH1時鐘周期由執(zhí)行部件完成I1指令的執(zhí)行,PH2時鐘周期執(zhí)行I1指令的寫寄存器或存儲器訪問操作,此T2周期中流水級1則完成對下一條指令I(lǐng)2的取指與譯碼。
對于運(yùn)算類指令,其最終運(yùn)算結(jié)果總是要寫入到寄存器中,因此運(yùn)算操作的執(zhí)行總是在流水級2的PH1開始,到PH2結(jié)束時完成即可,這樣ALU部件可以在兩個時鐘周期內(nèi)完成一次運(yùn)算操作,從而也大大地降低了對ALU運(yùn)算速度要求。
參見圖2,圖2是偽四級流水結(jié)構(gòu)的流水控制結(jié)構(gòu),在此偽四級流水結(jié)構(gòu)中,由于執(zhí)行和數(shù)據(jù)訪問都分配在流水級2的兩個時鐘周期內(nèi)進(jìn)行,因此在此流水結(jié)構(gòu)中不存在數(shù)據(jù)相關(guān)沖突問題,這就大大地簡化了控制器的設(shè)計(jì)復(fù)雜度。
對轉(zhuǎn)移類指令(包括無條件轉(zhuǎn)移與條件轉(zhuǎn)移),轉(zhuǎn)移條件的形成安排在流水級1的譯碼階段(DC)進(jìn)行,因此當(dāng)轉(zhuǎn)移指令進(jìn)入流水級2時,若不需要轉(zhuǎn)移,則流水級2不進(jìn)行任何動作,流水線正常運(yùn)行。若需要轉(zhuǎn)移,則由執(zhí)行部件(EX)通知流水級控制器作廢流水級1中的指令,同時執(zhí)行部件(EX)控制ALU計(jì)算出轉(zhuǎn)移目標(biāo)地址,并重新設(shè)置指令地址寄存器,在下一機(jī)器周期,轉(zhuǎn)移目標(biāo)指令將進(jìn)入流水級1,因此在發(fā)生轉(zhuǎn)移時,流水線會斷流一個機(jī)器周期。
中斷的處理是一個完整的處理器設(shè)計(jì)中不可避免的,在采用偽四級流水結(jié)構(gòu)的LS-IPU16微處理器中,中斷的識別安排在機(jī)器周期的PH2進(jìn)行,當(dāng)識別到中斷時,流水級2繼續(xù)完成當(dāng)前的工作,而流水級1中的指令則被作廢,插入一個中斷處理周期,將返回地址送入堆棧,將相應(yīng)的中斷服務(wù)程序入口地址送入指令地址寄存器,因此下一機(jī)器周期中斷服務(wù)程序的第一條指令進(jìn)入流水線開始執(zhí)行中斷服務(wù)程序。
本發(fā)明在設(shè)計(jì)中還可以將機(jī)器周期的兩個相態(tài)分別對應(yīng)為時鐘的高電平與低電平,利用時鐘的上升沿和下降沿分別完成不同的動作,從而也可以在單時鐘周期內(nèi)完成一條指令的執(zhí)行。其結(jié)構(gòu)如圖3所示,此時PH1與PH2分別對應(yīng)CLK的高電平與低電平,其余工作過程與圖1完全相同。
權(quán)利要求
1.一種16位微處理器使用的偽四級流水結(jié)構(gòu),其特征在于,該結(jié)構(gòu)包括流水線控制器、指令寄存器、譯碼器、流水寄存器、ALU、執(zhí)行部件(EX)和存儲器訪問/寄存器寫(MW);流水線控制器分別與指令寄存器、譯碼器、流水寄存器、執(zhí)行部件(EX)和存儲器訪問/寄存器寫(MW)相連接,指令寄存器與譯碼器相連,譯碼器與流水寄存器相連接,流水寄存器分別與ALU、執(zhí)行部件(EX)相連接;執(zhí)行部件(EX)與ALU和存儲器訪問/寄存器寫(MW)相連接;ALU與存儲器訪問/寄存器寫(MW)相連接;將每條指令的執(zhí)行分為取指令(FT)、譯碼(DC)、執(zhí)行(EX)和存儲器訪問與寫(MW)四個階段,在處理器中設(shè)置一個兩級流水線,每個流水級中包含兩個相態(tài)(PH1、PH2),將每條指令的四個階段分別分配到兩個流水級的四個相態(tài)中去執(zhí)行,利用兩級流水線實(shí)現(xiàn)了指令的四級流水;該結(jié)構(gòu)中每個機(jī)器周期Ti包含兩個時鐘周期,分別對應(yīng)兩個相態(tài)PH1和PH2;并按以下步驟執(zhí)行1)假定指令I(lǐng)1在機(jī)器周期T1開始執(zhí)行,取指譯碼部件作為流水級1在PH1時鐘周期將I1的指令碼從程序存儲器中取到指令寄存器中,然后在PH2時鐘周期對它進(jìn)行譯碼,在此T1周期中,執(zhí)行部件作為流水級2則完成上一條指令I(lǐng)-1的執(zhí)行;2)到了機(jī)器周期T2,指令I(lǐng)1進(jìn)入流水級2,在PH1時鐘周期由執(zhí)行部件完成I1指令的執(zhí)行,PH2時鐘周期執(zhí)行I1指令的寫寄存器或存儲器訪問操作,此T2周期中流水級1則完成對下一條指令I(lǐng)2的取指與譯碼;3)對于運(yùn)算類指令,其最終運(yùn)算結(jié)果總是要寫入到寄存器中,因此運(yùn)算操作的執(zhí)行總是在流水級2的PH1開始,到PH2結(jié)束時完成,ALU部件可以在兩個時鐘周期內(nèi)完成一次運(yùn)算操作。
全文摘要
本發(fā)明公開了一種16位微處理器使用的偽四級流水結(jié)構(gòu),包括流水線控制器、指令寄存器、譯碼器、流水寄存器、ALU、執(zhí)行部件(EX)和存儲器訪問/寄存器寫(MW);將每條指令的執(zhí)行分為取指令(FT)、譯碼(DC)、執(zhí)行(EX)和存儲器訪問與寫(MW)四個階段,在處理器中設(shè)置一個兩級流水線,每個流水級中包含兩個時鐘相態(tài)(PH1、PH2),將每條指令的四個階段分別分配到兩個流水級的四個相態(tài)中去執(zhí)行,利用兩級流水線實(shí)現(xiàn)了指令的四級流水。
文檔編號G06F9/30GK1438573SQ0311450
公開日2003年8月27日 申請日期2003年2月21日 優(yōu)先權(quán)日2003年2月21日
發(fā)明者張偉功, 段青亞, 劉曙蓉, 于倫正 申請人:中國航天科技集團(tuán)公司第九研究院七七一研究所