[發明專利]基于分組更新歷史信息的并行分支預測裝置有效
| 申請號: | 201110343949.8 | 申請日: | 2011-11-03 |
| 公開(公告)號: | CN102520913A | 公開(公告)日: | 2012-06-27 |
| 發明(設計)人: | 嚴曉浪;陳晨 | 申請(專利權)人: | 浙江大學 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 杭州天正專利事務所有限公司 33201 | 代理人: | 王兵;王利強 |
| 地址: | 310027 浙*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 分組 更新 歷史 信息 并行 分支 預測 裝置 | ||
技術領域
本發明涉及一種分支預測裝置,尤其涉及一種基于分組更新歷史信息從而可以并行處理多條分支指令的分支預測裝置。
背景技術
微處理器的設計中,隨著高端應用對處理器性能的要求不斷提高,處理器的頻率也相應的越來越高。增加流水線級數是提升處理器頻率的最主要也是最有效的方式之一。但深流水線也給設計帶來了許多挑戰,對分支指令的處理就是其中之一。因為分支指令的正確結果只有在后級流水線才能得到,如果停頓流水線,直到分支結果產生后繼續執行程序,就會產生許多流水線氣泡,而分支指令在程序中出現的概率很高,這就給處理器的性能帶來了致命的損害。分支預測能在很大程度上解決這一問題,分支預測通過各種預測機制,在流水線前級就對分支指令的結果進行預測,并根據預測的結果使處理器投機執行分支指令之后的程序,在后級流水線對分支指令的預測結果進行檢查,若出現分支預測錯誤,則需要清空處理器流水線,從正確的地址取指令,重新開始執行程序。因此,高精度的分支預測機制成為了提高處理器性能關鍵。
目前的分支預測技術主要是基于分支歷史信息的二級分支預測,以指令為粒度對分支歷史信息進行劃分,被處理的分支指令之前的若干條分支指令的跳轉結果作為該分支指令的歷史信息,結合該分支指令本身的程序計數器信息,得出分支信息索引,去索引分支模式表,從分支模式表中獲得分支預測結果。這種方式經實際檢驗,在每周期只處理單條分支指令時具有較好的預測準確度。但是隨著對處理器性能要求的不斷提高,超標量處理器的出現成為了必然,越來越多的處理器可以同時獲取多條指令,并對多條指令并行譯碼,發射以及執行。因此處理器需要解決每個周期處理多條分支指令并獲得分支預測結果的問題,若按照傳統的分支預測方法,前一條分支指令的跳轉結果作為后一條分支指令的歷史信息,則只有在得到前一條分支指令的分支預測信息結果之后,才能得到后一條指令的歷史信息,進而得到后一條指令的分支預測結果。這樣一個串行的過程,會產生很大的延時,這在當今高頻率的處理器中是無法實現的。
發明內容
為了克服已有的分支預測裝置在高時鐘頻率下無法同時處理多條分支指令的不足,本發明提供一種在高時鐘頻率下并行處理多條分支指令并對分支結果進行精確預測的基于分組更新歷史信息的分支預測裝置。
本發明解決其技術問題所采用的技術方案是:
一種基于分組更新歷史信息的并行分支預測裝置,所述并行分支預測裝置包括:
組分支歷史移位寄存器,位寬為j位,用以緩存最近j組分支指令的組分支跳轉信息,并為分支結果存儲器提供讀索引和寫索引;
分支結果存儲器,連接于組分支歷史移位寄存器輸出端,用以存儲經過后級流水線確認的分支跳轉結果,并輸出分支預測信息,存儲器的輸入輸出端口位寬為i位,存儲器的深度為2j個表項;
指令預譯碼單元,連接于分支結果存儲器的輸出端,最多可對m條指令并行預譯碼,其中,m≤i,針對每條指令,若預譯碼得出其為分支指令,從分支結果存儲器輸出端的i位分支預測信息中選取1位作為該分支指令的分支預測結果;
分支指令標記單元,連接于指令預譯碼單元的輸出端,對預譯碼之后的分支指令進行分組,并對每組第一條和最后一條分支指令打上標記;
分支確認信息緩存單元,連接于組分支歷史移位寄存器的輸入端,用以監測后級流水線對分支指令的確認情況,當后級流水線確認完一組分支指令時,用該組分支指令的組分支跳轉信息更新組分支歷史移位寄存器,組分支跳轉信息具體通過把該組中每一條分支指令的正確分支結果進行邏輯按位同或運算得到。
進一步,所述分支確認信息緩存單元監測后級流水線對分支指令的確認情況,若后級流水線確認分支指令時沒有發生分支預測錯誤,則組分支歷史移位寄存器作為分支結果存儲器的讀索引,每次從分支結果存儲器中讀取i位分支預測信息。
再進一步,分支確認信息緩存單元監測后級流水線對分支指令的確認情況,若后級流水線確認分支指令時沒有發生分支預測錯誤,則組分支歷史移位寄存器作為分支結果存儲器的寫索引,同時用該分支指令的程序計數器中的n位作為選擇信號,從分支結果存儲器輸入端的i位中選取1位,將該分支指令的正確分支結果寫入分支結果存儲器,其中n與i的關系為:i=2n。
優選的,所述并行分支預測裝置以一次預取的指令為基本單元,并行處理多條指令,其中一次預取的指令最少含有1條指令,最多含有m條指令,其中,m≤i,一次預取的指令定義為一個指令包。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江大學,未經浙江大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110343949.8/2.html,轉載請聲明來源鉆瓜專利網。





