[發明專利]用于超前運行操作的指令分類無效
| 申請號: | 201310658889.8 | 申請日: | 2013-12-06 |
| 公開(公告)號: | CN103870240A | 公開(公告)日: | 2014-06-18 |
| 發明(設計)人: | 馬格努斯·埃克曼;吉列爾莫·J·羅扎斯;亞歷山大·克萊貝爾;詹姆斯·范·策恩;保羅·塞維斯;布拉德·霍伊特;斯里達蘭·羅摩克里希納;亨斯·凡德斯庫特;羅斯·澤格爾肯;達雷爾·D·博格斯 | 申請(專利權)人: | 輝達公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30;G06F9/38 |
| 代理公司: | 北京市磐華律師事務所 11336 | 代理人: | 謝栒;魏寧 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 超前 運行 操作 指令 分類 | ||
背景技術
微處理器中的指令常常由于管線錯誤或數據沖突而被重新分派一次或多次用于執行。例如,當指令引用尚未被計算或檢索的結果時可能需要被重新分派。從不可用信息中產生的未命中可能使微處理器停頓(stall)。因為不知道在該未命中的解決期間是否將由于其他未命中而出現其他始料未及的停頓,所以微處理器可實施配置為在正在解決初始未命中的同時檢測其他未命中的超前運行(runahead)操作。
附圖說明
圖1示意性地示出根據本公開實施例的計算設備的微處理器。
圖2A示出根據本公開實施例的、在超前運行中執行微處理器而不重新發出已使微處理器進入超前運行的指令的方法的一部分。
圖2B示出圖2A所示出的方法的另一部分。
圖3A示意性地示出根據本公開的實施例的、一旦檢測到超前運行事件的微處理器管線。
圖3B示出在進入超前運行之后的、圖3A所示出的微處理器管線。
具體實施方式
在現代微處理器中,架構級指令常常在管線中執行??梢詫⑦@類指令單獨地或作為微操作束(bundle)發出到管線中的各執行機制。無論指令被發出用于執行時采取的形式如何,當發出指令時,并不知道指令的執行是否將完成。換句話說,在分派時不知道在指令的執行期間是否將出現未命中或異常。
在指令的執行期間可能出現的常見的管線執行停頓是導致高速緩存未命中的加載操作。這類高速緩存未命中可觸發進入操作的超前運行模式(此后稱為“超前運行”),該超前運行配置為例如在解決初始加載未命中的同時檢測其他高速緩存未命中、指令轉譯后備緩沖區未命中、或分支誤預測。如本文所使用的,超前運行描述從長時延事件中產生的任何合適的推測性(speculative)執行方案,諸如在產生的加載事件從較慢的訪問存儲器位置拉取未命中的指令或數據的情況下的高速緩存未命中。一旦初始加載未命中被解決,那么微處理器退出超前運行并且指令被重新執行。因為其他未命中可能出現,所以指令在指令的完成之前可被重新執行數次是可能的。
一旦檢測到觸發超前運行的事件,則微處理器的狀態(例如,寄存器和其它合適的狀態)被設立檢查點使得微處理器在超前運行之后可返回到該狀態。微處理器隨后在超前運行期間繼續在工作狀態中執行。在一些設定中,微處理器可立即進入超前運行,并且可選地可重新發出已使微處理器進入超前運行的指令用于執行。因為重新發出指令可能花費一些時間,所以微處理器當處于超前運行中時能夠檢測新潛在長時延事件的有效時間可減少。在諸如加載未命中的一些其他設定中,微處理器可延遲進入超前運行直到可確定是否可通過在存儲器層級的另一高速緩存中的命中來滿足一個高速緩存中的加載未命中為止。例如,在指令使L1高速緩存未命中的場景中,微處理器可延遲重新發出指令,使得指令一旦被重新發出,則如果該指令到達,就將與來自L2高速緩存的命中相吻合。換句話說,在這類場景中,微處理器將短暫停頓而不立即進入超前運行,接著重新發出指令。因為在知悉L2高速緩存中是否將存在命中之前可重新發出指令,所以如果L2高速緩存未命中,那么微處理器仍可進入超前運行。
然而,在上文所預期的場景的每一個中,可啟動指令而不知悉是否將產生觸發超前運行的事件是可能的。因為在超前運行模式中可以與在正常模式中不同地對待一些指令,并且因為可在發出時應用一些這類不同,所以進入超前運行而不重新發出已致使進入超前運行的指令可能是困難的。例如,一些微處理器動作如果在超前運行期間被實施,則可能不利地影響微處理器狀態,因為那些動作可能導致高速緩存污染和/或使得難以返回到正常操作模式。
因此,本文所描述的實施例涉及方法和硬件,該方法和硬件在指令的執行產生觸發超前運行的事件的情況下可操作以使微處理器進入超前運行模式并在超前運行模式中操作而不重新發出指令。在一些示例中,本文所描述的實施例可實行一個或多個超前運行策略,其支配微處理器的操作并在當微處理器處于超前運行中時使微處理器與不處于超前運行時不同地進行操作。換句話說,微處理器可取決于超前運行狀態針對一些指令采取不同的動作。
例如,將理解的是,在超前運行期間可相對于非超前運行操作而不同地將一些動作優先化,和/或一些動作可被視為在超前運行期間是可選的。因此,在一些實施例中,一些動作可被分類為是許可的(permissive),而其他動作可被分類為是絕對的。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于輝達公司,未經輝達公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310658889.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種雷達用軟電纜
- 下一篇:一種終端操作方法及終端





