[發明專利]分支目標地址獲取方法和裝置有效
| 申請號: | 201310270207.6 | 申請日: | 2013-06-29 |
| 公開(公告)號: | CN104252334B | 公開(公告)日: | 2017-07-07 |
| 發明(設計)人: | 侯銳;馮煜晶;郭旭斌;王曦爽 | 申請(專利權)人: | 華為技術有限公司;中國科學院計算技術研究所 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司11205 | 代理人: | 劉芳 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 分支 目標 地址 獲取 方法 裝置 | ||
1.一種分支目標地址獲取方法,其特征在于,包括:
根據當前分支指令的程序計數PC值的中位確定第一分支目標地址緩存BTAC中與所述當前分支指令對應的第一條目;
其中,所述第一分支目標地址緩存BTAC包含至少一個第一條目,每一個第一條目對應一個分支指令的程序計數PC值的中位,每個第一條目中包含標簽字段和目標PC字段,所述標簽字段中存儲所述分支指令的進程號和所述分支指令的程序計數PC值的高位,所述目標PC字段存儲所述分支指令的分支目標地址;
判斷所述當前分支指令的進程號和所述當前分支指令的程序計數PC值的高位是否與所述當前分支指令對應的第一條目中的標簽字段中存儲的分支指令的進程號和所述分支指令的程序計數PC值的高位相同;
若相同,則獲取與所述當前分支指令對應的第一條目中的目標PC字段中的分支目標地址作為所述當前分支指令的分支目標地址。
2.根據權利要求1所述的方法,其特征在于,所述根據當前分支指令的程序計數PC值的中位確定第一分支目標地址緩存BTAC中與所述當前分支指令對應的第一條目包括:
判斷第一分支目標地址緩存BTAC中與當前分支指令程序計數PC值的中位對應的第一條目中的標簽字段和目標PC字段的內容是否為空;
若不為空,則確定所述第一條目為與所述當前分支指令對應的第一條目;
若為空,則執行所述當前分支指令獲取所述當前分支指令的分支目標地址,并將所述當前分支指令的進程號、程序計數PC值和所述分支目標地址寫入所述第一分支目標地址緩存BTAC中與所述當前分支指令程序計數PC值的中位對應的第一條目中。
3.根據權利要求2所述的方法,其特征在于,所述根據當前分支指令的程序計數PC值的中位確定第一分支目標地址緩存BTAC中與所述當前分支指令對應的第一條目之前,還包括:
判斷是否從第一進程切換到第二進程;
若不從第一進程切換到第二進程,則執行所述根據當前分支指令的程序計數PC值的中位確定第一分支目標地址緩存BTAC中與所述當前分支指令對應的第一條目;
若從第一進程切換到第二進程,則將所述第一分支目標地址緩存BTAC中存儲的標簽字段中的進程號與所述第一進程的進程號相同的第一條目的內容存儲于第二分支目標地址緩存BTAC中,并清空所述第一分支目標地址緩存BTAC中存儲的所述標簽字段中的進程號與所述第一進程的進程號相同的第一條目的內容;
判斷所述第二分支目標地址緩存BTAC中是否具有與所述第二進程的進程號相同的第二條目;
若所述第二分支目標地址緩存BTAC中具有與所述第二進程的進程號相同的第二條目,則將所述與所述第二進程的進程號相同的第二條目恢復到第一分支目標地址緩存BTAC中相應的位置;
若所述第二分支目標地址緩存BTAC中不具有與所述第二進程的進程號相同的第二條目,則在執行所述第二進程的過程中將所述第二進程中的分支指令的信息寫入第一分支目標地址緩存BTAC中。
4.根據權利要求3所述的方法,其特征在于,所述在執行所述第二進程的過程中將所述第二進程中的分支指令的信息寫入第一分支目標地址緩存BTAC中,包括:
若確定所述第二進程中的其中一條指令為分支指令;
則在處理完所述分支指令后,將所述第二進程的進程號和所述分支指令的程序計數PC值的高位寫入第一分支目標地址緩存BTAC中與所述分支指令的程序計數PC值的中位對應的第一條目的標簽字段中,并將所述分支指令的分支目標地址寫入與所述分支指令的程序計數PC值的中位對應的第一條目的目標PC字段中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司;中國科學院計算技術研究所,未經華為技術有限公司;中國科學院計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310270207.6/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種有色金屬溶液加熱棒
- 下一篇:一種軸承內圈加工裝置





