[發明專利]用于增強線程級推測的原語有效
| 申請號: | 201010175491.5 | 申請日: | 2006-06-23 |
| 公開(公告)號: | CN101833475A | 公開(公告)日: | 2010-09-15 |
| 發明(設計)人: | Q·雅克布森;H·王;J·舍恩;G·金雅;P·哈默倫德;X·鄒;B·比格比;S·考舒基 | 申請(專利權)人: | 英特爾公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F9/38 |
| 代理公司: | 永新專利商標代理有限公司 72002 | 代理人: | 劉瑜;王英 |
| 地址: | 美國加*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 增強 線程 推測 | ||
技術領域
本公開總體上涉及信息處理系統,更具體地,涉及支持線程級推測。
背景技術
多線程逐漸得到硬件上的支持。例如,在一種方式中,多處理器系統(諸如單芯片多處理器(“CMP”)系統)中的處理器每個都可以并發地運行多個軟件線程中的一個。在被稱為同時多線程(“SMT”)的另一種方式中,單個物理處理器看起來像是多個邏輯處理器那樣操作系統和用戶程序。對于SMT,能夠在單個處理器上同時啟動并執行多個軟件線程而無需切換。也就是,每個邏輯處理器維護一整套架構狀態,但是該物理處理器的許多其它資源都是共享的,比如高速緩存、執行單元、分支預測器、控制邏輯和總線。因此,對于SMT來說,來自多個軟件線程的指令并發地在每個邏輯處理器上執行。
對于諸如SMT和/或CMP系統這樣的支持軟件線程并發執行的系統,一個應用程序可以被并行化為多線程代碼以利用該系統的并發執行能力。多線程應用程序的線程之間可能需要通信和同步,這通常是通過共享存儲器來完成的。另外,通過將單線程程序組織為多個線程然后并發地運行這些線程,每個線程在單獨一個線程單元上運行,該單線程程序也可以被并行化為多線程代碼。當在對這樣的單線程程序進行并行化處理期間作出關于依賴性的某些假設時,該技術有時被稱為推測多線程(speculative?multithreading)。
為了提高多線程程序的性能和/或使其更易于編寫,可以使用線程級推測。線程級推測指的是推測地確定一個線程的指令塊性能。也就是,該線程執行這些指令,而其他線程不被允許看到這些指令的結果,直到該線程決定提交或丟棄(也稱為放棄)該推測地完成的工作。
通過提供用于緩存和包含作為推測的指令塊的一部分而完成的存儲器更新的能力,處理器能夠使線程級推測更高效。存儲器更新可以被緩存,直到被指示執行或丟棄所推測的存儲器更新。
程序可能希望推測的一件事情是,一個代碼塊是否依賴于并發地運行在其它線程上的其它代碼。處理器通過為檢測依賴性提供支持,能夠使得該推測更高效。例如,處理器可以提供支持以檢測一個推測的代碼塊是否讀取隨后要被另一個并發的線程修改的任意存儲單元。
發明內容
考慮到上述問題而設計了本發明。
根據一個方面,提供了一種方法,包括:并發地執行對存儲器的公共邏輯視圖進行共享的多個線程;掛起所述多個線程中除第一線程以外的所有其它線程的執行,以便所述第一線程能夠原子地執行指令塊;其中,所述掛起是由所述第一線程調用硬件機制的動作觸發的;以及在所述第一線程完成所述指令塊的原子執行之后,恢復所述其它線程。
根據另一個方面,提供了一種裝置,包括:執行資源,用于執行原子塊;狀態寄存器,用于保持陷阱字段,其中,所述陷阱字段將響應于在所述原子塊的執行期間發生的中斷而被更新為陷阱值,監控硬件,用于監控在所述原子塊的執行期間加載的地址;緩存硬件,用于對在所述原子塊的執行期間的寫操作進行緩存,其中,所述監控硬件和所述緩存硬件用于在對在所述原子塊的執行期間發生的所述中斷進行處理期間維持持久狀態,并且其中,所述執行資源用于,響應于在處理所述中斷之后所述狀態寄存器的陷阱字段未保持所述陷阱值,恢復所述原子塊的執行而不使所述事務失敗。
根據再一個方面,提供了一種裝置,包括:執行資源,用于并行地執行多個線程,所述多個線程中的每一個都共享存儲器的公共邏輯視圖;硬件機制,用于檢測與所述多個線程中的第一線程相關聯的觸發事件,其中,響應于檢測到所述觸發事件,所述多個線程中除所述第一線程以外的每一個線程被掛起,以使得所述執行資源能夠執行來自所述第一線程的指令原子塊;其中,在執行完來自所述第一線程的指令原子塊之后,所述執行資源恢復執行所述多個線程中每一個被掛起的線程。
附圖說明
參考下列附圖,可以理解本發明的實施例,在附圖中相同或相似的單元用相同或相似的數字標明。這些附圖并不是要進行限制,而是被提供用來說明系統、方法和機制的選定實施例,以便提供具有事務執行支持的推測多線程。
圖1是示出一般的并行編程方法的圖形表示的框圖。
圖2是說明根據本發明的至少一個實施例的處理器的選定特性的框圖。
圖3、4和5是說明了用于執行具有事務執行支持的推測多線程的至少一個實施例的數據和控制流的流程圖。
圖6是用于確定事務塊的執行已失敗的機制的至少一個實施例的數據流圖。
圖7是說明能夠執行所公開的技術的系統的至少一個實施例的框圖。
圖8是說明包括地址監控表和原子更新表以支持事務執行的處理器的至少一個實施例的框圖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于英特爾公司,未經英特爾公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010175491.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:用環丙烯衍生物阻斷植物乙烯反應的方法
- 下一篇:帶有卸載控制系統的有軌車





