專利名稱:低成本的程序計數器數據傳輸裝置的制作方法
技術領域:
本發明關于一種低成本的程序計數器傳輸數據裝置,通過緩存分支指令的當前程序計數器和預測目標程序計數器,與程序計數器相關指令的當前程序計數器,使其不隨流水線寄存器傳輸,從而減小硬件開銷,適用于多級流水線結構的處理器。
背景技術:
程序計數器用于存放下一條指令所在內存單元的地址,保證程序能夠連續地執行下去。在程序開始執行前,將它的起始地址,即程序的一條指令所在的內存單元地址送入程序計數器,因此程序計數器的內容即是從內存提取的第一條指令的地址。當執行指令時,處理器將自動修改程序計數器的內容,即每執行一條指令,程序計數器增加一個量,這個量等于指令所含的字節數,以便使其保持的總是將要執行的下一條指令的地址。當執行分支指令時,分支指令執行的最終結果就是改變程序計數器的值,以此實現分支跳轉。在近幾年,分支預測被廣泛用于嵌入式處理器以及高性能通用處理器,以提高處理器性能。分支指令的類型可以分為條件分支指令和無條件分支指令,由于分支指令目標地址的不同,無條件分支又可以進一步分為立即分支指令,間接分支指令和返回分支指令。 其中立即分支跳轉可以采用BTB(Branch Target Buffer,分支預測緩沖區)這種方式預測精確,返回型跳轉可以采用返回地址棧(RAQ精確預測。經過預測的分支指令會攜帶預測跳轉信息和預測跳轉地址,以及自身的程序計數器。而分支預測一般是在取指階段進行,在指令執行階段才能用到這些預測信息,期間這些信息會經過取指級與譯碼級之間、譯碼級與執行級之間的寄存器,以及一些指令緩存裝置,硬件消耗明顯。
發明內容
為了克服現有的分支預測處理過程中程序計數器在傳遞過程中的硬件成本較高的不足,本發明提供一種能夠有效降低程序計數器在傳遞過程中的硬件成本的低成本的程序計數器數據傳輸裝置。為實現上述目的,本發明的技術方案是一種低成本的程序計數器數據傳輸裝置,所述數據傳輸裝置包括指令預取單元,用于負責指令的預?。活A解碼單元,用于對所取指令進行預解碼,解碼出分支指令,以及與程序計數器相關的指令;分支預測單元,用于對分支指令進行分支預測,產生預測目標程序計數器;分支指令處理單元,用于負責分支指令和與程序計數器相關指令的執行,將程序計數器緩存單元的數據讀取并經行計算;所述指令預取單元、預解碼單元、分支預測單元和分支指令處理單元依次采用流水線處理方式;程序計數器緩存單元,用于緩存分支指令的當前程序計數器和預測目標程序計數器,緩存與程序計數器有關指令的當前程序計數器和目標程序計數器;程序計數器指令處理單元,用于將與程序計數器相關指令的程序計數器信息傳送到程序計數器緩存單元輸入端口,分支預測單元產生預測目標指令程序計數器,將預測目標指令程序計數器和當前指令程序計數器傳送到程序計數器緩存單元,分支指令和與程序計數器相關指令在分支指令處理單元執行時,從程序計數器緩存單元的輸出端口讀取程序計數器信息。進一步,分支指令的當前程序計數器和預測目標程序計數器、與程序計數器相關指令的當前程序計數器和目標程序計數器被創建進程序計數器緩存單元,在流水線執行級,當分支指令處理單元需要指令程序計數器信息時,程序計數器緩存單元的輸出端口輸出所需指令程序計數器信息,該指令的程序計數器信息未經過流水線取指級與譯碼級之間,以及譯碼級與執行級之間的寄存器。再進一步,所述程序計數器緩存單元采用先進先出機制,依次創建和清空單元。更進一步,當出現全局清空信號時,程序計數器緩存單元緩存的程序計數器信息被清空。本發明中,通過緩存分支指令的當前程序計數器和預測目標程序計數器,與程序計數器相關指令的當前程序計數器和目標程序計數器,使其不隨流水線寄存器傳輸,從而降低硬件成本。本發明的有益效果為通過避免分支指令、與程序計數器相關指令的程序計數器信息在取指級、譯碼級以及執行級流水線寄存器之前的傳遞,大大降低了流水線寄存器的硬件成本。
圖1是一種低成本的程序計數器數據傳輸裝置的基本架構。
具體實施例方式下面結合附圖對本發明作進一步描述。參照圖1,一種低成本的程序計數器數據傳輸裝置,包括指令預取單元,用于負責指令的預??;預解碼單元,用于對所取指令進行預解碼,解碼出分支指令,以及與程序計數器相關的指令;分支預測單元,用于對分支指令進行分支預測,產生預測目標程序計數器;分支指令處理單元,用于負責分支指令和與程序計數器相關指令的執行,將程序計數器緩存單元的數據讀取并經行計算;所述指令預取單元、預解碼單元、分支預測單元和分支指令處理單元依次采用流水線處理方式;程序計數器緩存單元,用于緩存分支指令的當前程序計數器和預測目標程序計數器,緩存與程序計數器有關指令的當前程序計數器和目標程序計數器;程序計數器指令處理單元,用于將與程序計數器相關指令的程序計數器信息傳送到程序計數器緩存單元輸入端口,分支預測單元產生預測目標指令程序計數器,將預測目標指令程序計數器和當前指令程序計數器傳送到程序計數器緩存單元,分支指令和與程序計數器相關指令在分支指令處理單元執行時,從程序計數器緩存單元的輸出端口讀取程序計數器信息。指令預取單元將取到的指令傳送到預解碼單元的輸入端口,預解碼單元解碼出分支指令和與程序計數器相關指令,將分支指令傳送到分支預測單元輸入端口,將與程序計數器相關指令的程序計數器信息傳送到程序計數器緩存單元輸入端口,分支預測單元產生預測目標指令程序計數器,將預測目標指令程序計數器和當前指令程序計數器傳送到程序計數器緩存單元,分支指令和與程序計數器相關指令在處理單元執行時,從程序計數器緩存單元的輸出端口讀取程序計數器信息。若在流水線取指級取到一條分支指令,如進位為1分支指令,指令編碼通過指令預取單元傳輸到預解碼單元輸入端口,經過預解碼單元的預解碼,解碼出該條指令為分支指令。預解碼單元將該分支指令的預解碼信息傳送到分支預測單元的輸入端口,分支預測單元根據自身的預測機制,預測進位是否為1,以及跳轉的目標程序計數器。分支預測單元將預測產生的預測目標程序計數器,以及當前指令的程序計數器信息傳送到程序計數器緩存單元輸入端口。程序計數器緩存單元根據先進先出機制,創建緩存單元,緩存分支指令的當前程序計數器和預測目標程序計數器。該條分支指令的預解碼信息同時通過取指級和譯碼級之間的流水線寄存器傳送到譯碼級的指令解碼單元,解碼出完整的指令信息。該完整的指令解碼信息通過譯碼級和執行級之間的流水線寄存器傳送到分支指令處理單元,分支指令處理單元在執行該分支指令時,需要分支指令的當前程序計數器和預測目標程序計數器,程序計數器緩存單元將分支指令處理單元需要的信息傳送到分支指令處理單元的輸入端口,分支指令處理單元根據這些程序計數器信息執行該條分支指令。若在流水線取指級取到一條與程序計數器相關的指令,如存儲器讀入指令,指令編碼通過指令預取單元傳輸到預解碼單元輸入端口,經過預解碼單元的預解碼,解碼出該條指令為存儲器讀入指令。預解碼單元將存儲器讀入指令的當前程序計數器和目標程序計數器信息傳送到程序計數器緩存單元輸入端口。程序計數器緩存單元根據先進先出機制, 創建緩存單元,緩存分支指令的當前程序計數器和目標程序計數器。該條存儲器讀入指令的預解碼信息(不包括當前程序計數器和目標程序計數器)同時通過取指級和譯碼級之間的流水線寄存器傳送到譯碼級的指令解碼單元,解碼出完整的指令信息。該完整的指令解碼信息通過譯碼級和執行級之間的流水線寄存器傳送到分支指令處理單元,分支指令處理單元在執行該存儲器讀入指令時,需要存儲器讀入指令的當前程序計數器和目標程序計數器,程序計數器緩存單元將分支指令處理單元需要的信息傳送到分支指令處理單元的輸入端口,分支指令處理單元根據這些程序計數器信息執行該條存儲器讀入指令。綜上所述,在流水線取指級,分支指令的當前程序計數器和預測目標程序計數器、 與程序計數器相關指令的當前程序計數器和目標程序計數器被創建進程序計數器緩存單元,在流水線執行級,當分支指令處理單元需要指令程序計數器信息時,程序計數器緩存單元的輸出端口輸出所需指令程序計數器信息,該指令的程序計數器信息未經過流水線取指級與譯碼級之間,以及譯碼級與執行級之間的寄存器,降低了流水線寄存器的硬件成本。
權利要求
1.一種低成本的程序計數器數據傳輸裝置,所述數據傳輸裝置包括指令預取單元,用于負責指令的預??;預解碼單元,用于對所取指令進行預解碼,解碼出分支指令,以及與程序計數器相關的指令;分支預測單元,用于對分支指令進行分支預測,產生預測目標程序計數器;分支指令處理單元,用于負責分支指令和與程序計數器相關指令的執行,將程序計數器緩存單元的數據讀取并經行計算;所述指令預取單元、預解碼單元、分支預測單元和分支指令處理單元依次采用流水線處理方式;其特征在于所述數據傳輸裝置還包括程序計數器緩存單元,用于緩存分支指令的當前程序計數器和預測目標程序計數器, 緩存與程序計數器有關指令的當前程序計數器和目標程序計數器;程序計數器指令處理單元,用于將與程序計數器相關指令的程序計數器信息傳送到程序計數器緩存單元輸入端口,分支預測單元產生預測目標指令程序計數器,將預測目標指令程序計數器和當前指令程序計數器傳送到程序計數器緩存單元,分支指令和與程序計數器相關指令在分支指令處理單元執行時,從程序計數器緩存單元的輸出端口讀取程序計數 ^fn 息。
2.如權利要求1所述的低成本程序計數器傳輸裝置,其特征在于分支指令的當前程序計數器和預測目標程序計數器、與程序計數器相關指令的當前程序計數器和目標程序計數器被創建進程序計數器緩存單元,在流水線執行級,當分支指令處理單元需要指令程序計數器信息時,程序計數器緩存單元的輸出端口輸出所需指令程序計數器信息,該指令的程序計數器信息未經過流水線取指級與譯碼級之間,以及譯碼級與執行級之間的寄存器。
3.如權利要求1或2所述的低成本程序計數器傳輸裝置,其特征在于所述程序計數器緩存單元采用先進先出機制,依次創建和清空單元。
4.如權利要求1或2所述的低成本程序計數器傳輸裝置,其特征在于當出現全局清空信號時,程序計數器緩存單元緩存的程序計數器信息被清空。
全文摘要
一種低成本的程序計數器數據傳輸裝置,指令預取單元、預解碼單元、分支預測單元和分支指令處理單元依次采用流水線處理方式;數據傳輸裝置還包括程序計數器緩存單元,程序計數器指令處理單元,用于將與程序計數器相關指令的程序計數器信息傳送到程序計數器緩存單元輸入端口,分支預測單元產生預測目標指令程序計數器,將預測目標指令程序計數器和當前指令程序計數器傳送到程序計數器緩存單元,分支指令和與程序計數器相關指令在分支指令處理單元執行時,從程序計數器緩存單元的輸出端口讀取程序計數器信息。本發明提供一種能夠有效降低程序計數器在傳遞過程中的硬件成本的低成本的程序計數器數據傳輸裝置。
文檔編號G06F9/38GK102508641SQ20111034671
公開日2012年6月20日 申請日期2011年11月4日 優先權日2011年11月4日
發明者丁永林, 孟建熠, 李春強, 沈秀紅 申請人:杭州中天微系統有限公司