[發明專利]處理器中多線程之間的通信有效
| 申請號: | 200680056225.2 | 申請日: | 2006-10-27 |
| 公開(公告)號: | CN101529377A | 公開(公告)日: | 2009-09-09 |
| 發明(設計)人: | E·吉伯特;J·M·科迪納;F·拉托雷;J·A·皮內羅;L·羅佩斯;A·岡薩雷斯 | 申請(專利權)人: | 英特爾公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38;G06F9/30;G06F9/44 |
| 代理公司: | 中國專利代理(香港)有限公司 | 代理人: | 柯廣華;王丹昕 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 處理器 多線程 之間 通信 | ||
背景技術
處理器已經成了很復雜的設備,包括大量的結構和復雜的控制技術,允許指令和數據通過該機器,以便執行所請求的不同操作。為了改進處理器的效率,某些處理器利用指令級的并行性(ILP)。盡管這樣的技術可以提高效率,但也會增大功率消耗和設計的復雜性。有鑒于此,某些處理器以這樣的意圖設計,即通過支持和利用線程級并行性(TLP-“thread level parallem”)的體系結構來允許多線程協作。所述處理器可以包括多個核,至少多個小核,諸如同時多線程(SMT-““simultaneous multithreading”)的有序小核。
但是,這樣的有序核不如利用指令級并行性(ILP)時的無序核有效。這說明,這些有序處理器可能有效地執行并行應用,而一系列并行應用中的只有一個線程和部分代碼的應用,在這樣的體系結構上可能不會有效地表現。據此,某些處理器可以將應用分開,將線程分成較小的部分執行,以維持最低的復雜性,同時改善其效率。但是,當第一線程企圖利用第二線程的信息時,可能產生一個數量過大的組織過程。
發明內容
按照本發明的第一方面,提供了一種用于在處理器中多線程之間通信的方法,包含:對第一線程的指令進行譯碼,使得該指令包括指令的源操作數的位置標志,其中該位置標志指示在第二線程的寄存器堆的寄存器中的所述源操作數的位置;確定是否要從第二線程獲得所述指令的任何源操作數;如果確定要從第二線程獲得所述指令的任何源操作數,則確定與來自第二線程的源操作數相關聯的并且包括在標記表結構中的同步標志是否激活;如果確定所述同步標志被激活,則 確定是否有任何來自第一線程的源操作數;如果確定有來自第一線程的源操作數,則確定與來自第一線程的源操作數相關聯的備置標志是否激活;如果確定與來自第一線程的源操作數相關聯的備置標志被激活,則由一個核訪問一個第二線程的寄存器堆,以在所述核上執行第一線程的指令的期間為第一線程的指令獲得源操作數。
按照本發明的第二方面,提供了一種用于在處理器中多線程之間通信的裝置,包括:由處理器核內的存儲器構成的標記表,包括一些條目,其中每一條目對應于第一線程的第一寄存器堆的一個寄存器,使得所述條目須各自包含備置標志和同步標志,用來指示:須將一個與第二線程的第二寄存器堆對應的寄存器作為目的操作數使用的第二線程的一個生產者操作是否已完成。
按照本發明的第三方面,提供了一種用于在處理器中多線程之間通信的系統,包括:第一寄存器堆,包含用來存儲第一線程的數據的多個寄存器;第二寄存器堆,包含用來存儲第二線程的數據的多個寄存器;執行單元,連接到第一寄存器堆和第二寄存器堆,以執行第一線程和第二線程的指令,使得所述執行單元訪問第一寄存器堆,以獲得一個用于執行第二線程的一條指令的源操作數,其中由來自第一線程的指令識別的訪問第一寄存器的第一源操作數和訪問第二寄存器的第二源操作數兩個源操作數分別與包括在由處理器核內的存儲器構成的標記表中的第一條目和第二條目相關聯,包括在所述標記表中的第一條目和第二條目各自包括同步標志和備置標志,并且當與所述第二源操作數相關聯的第二條目的備置標志的值被設定并且和與所述第一源操作數相關聯的第一條目的同步標志的值也被均已設定時,來自第一線程的指令被發送到執行單元來執行;以及連接到所述執行單元的動態隨機存取存儲器。
按照本發明的第四方面,提供了一種用于在處理器中多線程之間通信的裝置,包含:用于對第一線程的指令進行譯碼,使得該指令包括指令的源操作數的位置標志的部件,其中該位置標志指示在第二線程的寄存器堆的寄存器中的所述源操作數的位置;用于確定是否要從 第二線程獲得所述指令的任何源操作數的部件;用于如果確定要從第二線程獲得所述指令的任何源操作數則確定與來自第二線程的源操作數相關聯的并且包括在標記表結構中的同步標志是否激活的部件;用于如果確定所述同步標志被激活則確定是否有任何來自第一線程的源操作數的部件;用于如果確定有來自第一線程的源操作數則確定與來自第一線程的源操作數相關聯的備置標志是否激活的部件;用于如果確定與來自第一線程的源操作數相關聯的備置標志被激活,則由一個核訪問一個第二線程的寄存器堆,以在所述核上執行第一線程的指令的期間為第一線程的指令獲得源操作數的部件。
附圖說明
圖1是根據本發明一個實施例的方法的流程圖;
圖2是根據本發明一個實施例的標記表的框圖;
圖3是根據本發明一個實施例實現指令執行的框圖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于英特爾公司,未經英特爾公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200680056225.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:超氧化物歧化酶蜂蜜膏及其制備方法
- 下一篇:用于電磁吸塊的箍帶





