專利名稱:一種分支預(yù)測裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器和計算機系統(tǒng)領(lǐng)域,具體地說,涉及面向處理器的取指處理
裝置O
背景技術(shù):
隨著處理器技術(shù)的進步,處理器的速度不斷提高,性能不斷增強,同時用戶對計算機或者處理器的要求越來越高。由于指令預(yù)取的效率對處理器性能影響很大,因此提高計算機的指令預(yù)取的效率尤其重要。
發(fā)明內(nèi)容本發(fā)明提出一種分支預(yù)測裝置。本發(fā)明的分支預(yù)測裝置是作為處理器的一個組成部分,其執(zhí)行的過程按照處理器的操作過程進行,在具體實現(xiàn)分支預(yù)測的過程,體現(xiàn)出本發(fā)明的內(nèi)容。本發(fā)明的分支預(yù)測裝置包括指令存儲裝置,用來存儲將要執(zhí)行的指令代碼,該裝置接收地址,然后輸出存儲在該地址處的指令代碼;指令預(yù)取裝置,該裝置發(fā)出地址給指令存儲裝置,然后獲得存儲在該地址處的指令代碼,并傳送給指令譯碼裝置,同時進行分支預(yù)測操作,準備好下一次需要輸出的地址;指令譯碼裝置,該裝置對指令代碼進行譯碼分析,并發(fā)送給相應(yīng)的執(zhí)行裝置;程序控制指令執(zhí)行裝置,該裝置屬于執(zhí)行裝置的一種,用于執(zhí)行程序控制指令代碼,并將執(zhí)行結(jié)果反饋給指令預(yù)取裝置;非程序控制指令執(zhí)行裝置,該裝置用來執(zhí)行除程序控制指令之外的其它指令代碼。分支歷史表單元,該單元存儲最近執(zhí)行過的K條程序控制指令的分支歷史信息;選擇預(yù)測表單元,該單元存儲對正向和反向模式歷史表單元的進行選擇的記錄;正向模式歷史表單元,該單元存儲實際分支的狀態(tài)記錄,其狀態(tài)傾向于預(yù)測發(fā)生跳轉(zhuǎn);反向模式歷史表單元,該單元存儲實際分支的狀態(tài)記錄,其狀態(tài)傾向于預(yù)測不發(fā)生跳轉(zhuǎn)地址生成邏輯單元,該單元根據(jù)分支預(yù)測的結(jié)果,生成取指的地址。所述指令預(yù)取裝置向所述指令存儲裝置發(fā)出地址,然后獲得存儲在該地址處的所述程序控制指令,并傳送給所述指令譯碼裝置,同時所述指令預(yù)取裝置進行分支預(yù)測操作, 準備好下一次需要輸出的地址;所述指令譯碼裝置將所述程序控制指令分發(fā)給所述程序控制指令裝置,然后所述程序控制指令裝置根據(jù)所述程序控制指令執(zhí)行程序控制操作,并將結(jié)果反饋給所述指令預(yù)取裝置。本發(fā)明根據(jù)分支歷史信息、指令類型、模式歷史信息,提升了預(yù)測準確率,提高了處理器的效率。
參照如下附圖將更加易于理解本發(fā)明圖1所示為本實用新型提出的分支預(yù)測方法總體流程圖;圖2所示為用于實現(xiàn)本實用新型的分支預(yù)測裝置的結(jié)構(gòu)框圖圖3所示為分支預(yù)測工作原理示意圖;圖4選擇預(yù)測表單元的更新狀態(tài)圖;圖5正向模式歷史表單元的更新狀態(tài)圖;圖6反問模式歷史表單元的更新狀態(tài)圖具體實施方式
本實用新型的分支預(yù)測裝置(如圖幻包括指令存儲裝置、指令預(yù)取裝置、指令譯碼裝置、執(zhí)行裝置、程序控制指令執(zhí)行裝置。所述分支預(yù)測是按照處理器的操作過程在指令預(yù)取裝置中完成。在完成一次分支預(yù)測過程中(如圖幻,首先向指令存儲裝置發(fā)出程序控制指令的地址,同時把地址作索引,查找程序控制指令類型表單元,格式如下表
權(quán)利要求1.一種分支預(yù)測裝置,所述分支預(yù)測裝置為處理器的一個組成部分,其特征在于所述分支預(yù)測裝置包括指令存儲裝置,用來存儲將要執(zhí)行的指令代碼,該裝置接收地址,然后輸出存儲在該地址處的指令代碼;指令預(yù)取裝置,該裝置發(fā)出地址給指令存儲裝置,然后獲得存儲在該地址處的指令代碼,并傳送給指令譯碼裝置,同時進行分支預(yù)測操作,準備好下一次需要輸出的地址;指令譯碼裝置,該裝置對指令代碼進行譯碼分析,并發(fā)送給相應(yīng)的執(zhí)行裝置;程序控制指令執(zhí)行裝置,用于執(zhí)行程序控制指令代碼,并將執(zhí)行結(jié)果反饋給指令預(yù)取裝置;非程序控制指令執(zhí)行裝置,該裝置用來執(zhí)行除程序控制指令之外的其它指令代碼。
2.根據(jù)權(quán)利要求1所述的分支預(yù)測裝置,用于在指令預(yù)取時,對程序是否會發(fā)生分支進行預(yù)測;其中,所述指令預(yù)取裝置包括分支歷史表單元,該單元存儲最近執(zhí)行過的K條程序控制指令的分支歷史信息;選擇預(yù)測表單元,該單元存儲對正向和反向模式歷史表單元的進行選擇的記錄;正向模式歷史表單元,該單元記錄實際分支的結(jié)果和當前預(yù)測狀態(tài),其狀態(tài)傾向于預(yù)測發(fā)生跳轉(zhuǎn);反向模式歷史表單元,該單元記錄實際分支的結(jié)果和當前預(yù)測狀態(tài),其狀態(tài)傾向于預(yù)測不發(fā)生跳轉(zhuǎn);地址生成邏輯單元,該單元根據(jù)分支預(yù)測的結(jié)果,生成取指的地址。
3.根據(jù)權(quán)利要求1或2所述的分支預(yù)測裝置,其中,所述指令預(yù)取裝置向所述指令存儲裝置發(fā)出地址,然后獲得存儲在該地址出的所述程序控制指令,并傳送給所述指令譯碼裝置,同時所述指令預(yù)取裝置進行分支預(yù)測操作,準備好下一次需要輸出的地址;所述指令譯碼裝置將所述程序控制指令分發(fā)給所述程序控制指令裝置,然后所述程序控制指令裝置根據(jù)所述程序控制指令執(zhí)行程序控制操作,并將結(jié)果反饋給所述指令預(yù)取裝置。
專利摘要一種分支預(yù)測裝置,作為處理器的一個組成部分,按照處理器的操作過程,在指令預(yù)取時進行分支預(yù)測操作,所述指令預(yù)測裝置包括指令存儲裝置,用來存儲將要執(zhí)行的指令代碼;指令預(yù)取裝置,該裝置將指令代碼從指令存儲裝置中讀取出來,并傳送給指令譯碼裝置;指令譯碼裝置,該裝置對指令代碼進行譯碼分析,并發(fā)送給相應(yīng)的執(zhí)行裝置;程序控制指令執(zhí)行裝置,用于執(zhí)行程序控制指令代碼,并將執(zhí)行結(jié)果反饋給指令預(yù)取裝置;非程序控制指令執(zhí)行裝置,該裝置用來執(zhí)行除程序控制指令之外的其它指令代碼。
文檔編號G06F9/38GK202133998SQ20112011377
公開日2012年2月1日 申請日期2011年4月18日 優(yōu)先權(quán)日2011年4月18日
發(fā)明者孫瑞琛 申請人:江蘇中科芯核電子科技有限公司