[發明專利]鎖定后指令的推測性引退有效
| 申請號: | 201780054588.0 | 申請日: | 2017-08-29 |
| 公開(公告)號: | CN109690489B | 公開(公告)日: | 2020-09-01 |
| 發明(設計)人: | 格雷戈里·W·斯莫斯;約翰·M·金;邁克爾·D·阿亨巴赫;凱文·M·里派克;馬休·A·拉法斯;諾亞·班福德 | 申請(專利權)人: | 超威半導體公司 |
| 主分類號: | G06F9/52 | 分類號: | G06F9/52;G06F9/30;G06F9/38 |
| 代理公司: | 上海勝康律師事務所 31263 | 代理人: | 李獻忠;張靜 |
| 地址: | 美國加利*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 鎖定 指令 推測 引退 | ||
1.一種用于在處理器的核心中推測性地引退比鎖定指令年輕的指令的方法,所述方法包括:
引退所述鎖定指令,其中所述鎖定指令在引退之后保持待決,直到所述鎖定指令的存儲部分被認為提交給存儲器為止;
響應于引退所述鎖定指令而保存所述處理器的檢查點狀態,所述檢查點狀態包括用于在違反所述鎖定指令的原子屬性或所述鎖定指令的防護屬性的情況下回滾所述處理器的狀態的數據;
在引退所述鎖定指令之后但在所述鎖定指令的所述存儲部分被提交給存儲器之前推測性地引退比所述鎖定指令年輕的指令;
通過從除執行鎖定指令的線程以外的線程檢測對允許向由所述鎖定指令指定的存儲器地址或向由比所述鎖定指令年輕的來自與所述鎖定指令相同的線程的已完成加載指令指定的存儲器地址進行存儲的請求來檢測對所述鎖定指令的所述原子屬性或所述防護屬性中的一者的違反;以及
響應于檢測到所述違反,經由所述檢查點狀態回滾所述處理器的狀態。
2.根據權利要求1所述的方法,其中檢測所述違反包括:
通過檢測對向與所述鎖定指令相關聯的存儲器地址進行存儲的請求,在所述鎖定指令的所述存儲部分被認為提交給存儲器之前檢測對所述原子屬性的違反。
3.根據權利要求1所述的方法,其中檢測所述違反包括:
通過檢測對向與比所述鎖定指令年輕的加載指令相關聯的存儲器地址進行存儲的請求,在所述鎖定指令的所述存儲部分被認為提交給存儲器之前檢測對所述防護屬性的違反。
4.根據權利要求1所述的方法,其中經由所述檢查點狀態回滾所述處理器的狀態包括:
基于所述檢查點狀態來恢復架構寄存器值;
基于所述檢查點狀態來恢復所述處理器的程序計數器;以及
取消比所述鎖定指令年輕的待決指令。
5.根據權利要求1所述的方法,其還包括:
以慢模式執行所述鎖定指令,
其中在所述慢模式下,直到比所述鎖定指令老的存儲已經將值提交給存儲器才執行所述鎖定指令,并且
其中在所述慢模式下,直到所述鎖定指令的所述存儲部分被認為提交給存儲器才準許比所述鎖定指令年輕的指令執行。
6.根據權利要求1所述的方法,其還包括:
引退第二鎖定指令,其中所述第二鎖定指令在引退之后保持待決,直到所述第二鎖定指令的存儲部分被認為提交給存儲器為止;
響應于引退所述第二鎖定指令而保存所述處理器的第二檢查點狀態,所述第二檢查點狀態包括用于在違反所述第二鎖定指令的原子屬性或所述第二鎖定指令的防護屬性的情況下回滾所述處理器的狀態的數據;
在引退所述第二鎖定指令之后但在所述第二鎖定指令的所述存儲部分被提交給存儲器之前推測性地引退比所述第二鎖定指令年輕的指令;
在所述鎖定指令的所述存儲部分被認為提交給存儲器之前檢測不到對所述原子屬性或所述防護屬性的違反;以及
響應于檢測不到違反,釋放所述檢查點狀態并且從加載排序隊列移除引退后條目。
7.根據權利要求1所述的方法,其中所述檢查點狀態包括所述處理器的架構寄存器和旗標的值。
8.根據權利要求1所述的方法,其還包括:
在所述鎖定指令的所述存儲部分被認為提交給存儲器之前防止對未被所述檢查點狀態保存的寄存器進行寫入的指令引退。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于超威半導體公司,未經超威半導體公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201780054588.0/1.html,轉載請聲明來源鉆瓜專利網。





