[發明專利]基于分組更新歷史信息的并行分支預測裝置有效
| 申請號: | 201110343949.8 | 申請日: | 2011-11-03 |
| 公開(公告)號: | CN102520913A | 公開(公告)日: | 2012-06-27 |
| 發明(設計)人: | 嚴曉浪;陳晨 | 申請(專利權)人: | 浙江大學 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 杭州天正專利事務所有限公司 33201 | 代理人: | 王兵;王利強 |
| 地址: | 310027 浙*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 分組 更新 歷史 信息 并行 分支 預測 裝置 | ||
1.一種基于分組更新歷史信息的并行分支預測裝置,其特征在于,所述并行分支預測裝置包括:
組分支歷史移位寄存器,位寬為j位,用以緩存最近執行的j組分支指令的組分支跳轉信息,并為分支結果存儲器提供讀索引和寫索引;
分支結果存儲器,連接于組分支歷史移位寄存器輸出端,用以存儲經過后級流水線確認的分支跳轉結果,并輸出分支預測信息,存儲器的輸入輸出端口位寬為i位,存儲器的深度為2j個表項;
指令預譯碼單元,連接于分支結果存儲器的輸出端,最多可對m條指令并行預譯碼,其中,m≤i,針對每條指令,若預譯碼得出其為分支指令,則從分支結果存儲器輸出端的i位分支預測信息中選取1位作為該分支指令的分支預測結果;
分支指令標記單元,連接于指令預譯碼單元的輸出端,對預譯碼之后的分支指令進行分組,并對每組第一條和最后一條分支指令打上標記;
分支確認信息緩存單元,連接于組分支歷史移位寄存器的輸入端,用以監測后級流水線對分支指令的確認情況,當后級流水線確認完一組分支指令時,用該組分支指令的組分支跳轉信息更新組分支歷史移位寄存器,組分支跳轉信息具體通過把該組中每一條分支指令的正確分支結果進行邏輯按位同或運算得到。
2.如權利要求1所述的基于分組更新歷史信息的并行分支預測裝置,其特征在于,所述分支確認信息緩存單元監測后級流水線對分支指令的確認情況,若后級流水線確認分支指令時沒有發生分支預測錯誤,則組分支歷史移位寄存器作為分支結果存儲器的讀索引,每次從分支結果存儲器中讀取i位分支預測信息。
3.如權利要求1所述的基于分組更新歷史信息的并行分支預測裝置,其特征在于,所述分支確認信息緩存單元監測后級流水線對分支指令的確認情況,若后級流水線確認分支指令時發生分支預測錯誤,則組分支歷史移位寄存器作為分支結果存儲器的寫索引,同時用該分支指令的程序計數器中的n位作為選擇信號,從分支結果存儲器輸入端的i位中選取1位,將該分支指令的正確分支結果寫入分支結果存儲器,其中n與i的關系為:i=2n。
4.如權利要求1或2或3所述的基于分組更新歷史信息的并行分支預測裝置,其特征在于,所述并行分支預測裝置以一次預取的指令為基本單元,并行處理多條指令,其中一次預取的指令最少含有1條指令,最多含有m條指令,其中,m≤i,一次預取的指令定義為一個指令包。
5.如權利要求1或2或3所述的基于分組更新歷史信息的并行分支預測裝置,其特征在于,所述指令預譯碼單元中,對指令包中的各條指令并行預譯碼,若預譯碼得出分支指令,則將該分支指令的程序計數器中的n位作為選擇信號,選出分支預測結果,其中n與i的關系為:i=2n。
6.如權利要求1或2或3所述的基于分組更新歷史信息的并行分支預測裝置,其特征在于,所述分支指令標記單元中,若預譯碼得出指令包中含有分支指令,則:分支指令標記單元對指令包中第一條分支指令打上組頭標記,帶有組頭標記的分支指令定義為組頭分支指令;若指令包中至少有一條分支指令的預測結果為跳轉,則分支指令標記單元對指令包中第一條預測結果為跳轉的分支指令打上組尾標記,若指令包中所有的分支指令的預測結果均為不跳轉,則分支指令標記單元對其中最后一條分支指令打上組尾標記,帶有組尾標記的分支指令定義為組尾分支指令。
7.如權利要求6所述的基于分組更新歷史信息的并行分支預測裝置,其特征在于,所述分支指令標記單元中,將指令包中組尾分支指令之前的所有指令以及組尾分支指令作為一組指令,連同該組指令所包含的分支預測結果以及指令標記信息,一起發往下級流水線;分支指令標記單元將指令包中組尾分支指令之后的指令丟棄。
8.如權利要求1或2或3所述的基于分組更新歷史信息的并行分支預測裝置,其特征在于,所述分支確認信息緩存單元中,若后級流水線確認的分支指令為組頭分支指令,則該種情況定義為組頭分支確認;若后級流水線確認的分支指令為組尾分支指令或者該指令的正確分支結果為跳轉,則該種情況定義為組尾分支確認;監測過程包括:
若后級流水線確認分支指令時僅僅發生組頭分支確認,則將該分支指令的正確分支結果作為分支歷史信息緩存起來;
若后級流水線確認分支指令時僅僅發生組尾分支確認,則將該分支指令的正確分支結果和被緩存的分支歷史信息做邏輯同或運算,得到一組分支指令的組分支跳轉信息,并將該組分支跳轉信息寫入組分支歷史移位寄存器的最高位或者最低位,組分支歷史移位寄存器相應地左移或者右移一位;
若后級流水線確認分支指令時既沒有發生組頭分支確認,也沒有發生組尾分支確認,則將該分支指令的正確分支結果和被緩存的分支歷史信息做邏輯同或運算,得到新的分支歷史信息,并將該分支歷史信息緩存,覆蓋之前被緩存的分支歷史信息;
若后級流水線確認分支指令時同時發生組頭分支確認和組尾分支確認,則直接將該分支指令的正確分支結果作為一組分支指令的組分支跳轉信息,寫入到組分支歷史移位寄存器的最高位或者最低位,組分支歷史移位寄存器相應地左移或者右移一位。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江大學,未經浙江大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110343949.8/1.html,轉載請聲明來源鉆瓜專利網。





