[發明專利]用于在沒有指令解碼的情況下調度指令的方法和裝置無效
| 申請號: | 201210567104.1 | 申請日: | 2012-12-24 |
| 公開(公告)號: | CN103279379A | 公開(公告)日: | 2013-09-04 |
| 發明(設計)人: | 杰克·希萊爾·肖凱特;羅伯特·J·斯托爾;奧利維爾·吉普;邁克爾·費特曼;瑟利斯·加德雷;羅伯特·史蒂文;亞歷山大·喬利 | 申請(專利權)人: | 輝達公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F9/38 |
| 代理公司: | 北京市磐華律師事務所 11336 | 代理人: | 徐丁峰;魏寧 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 沒有 指令 解碼 情況 調度 方法 裝置 | ||
技術領域
本公開總地涉及多線程指令調度,并且,更具體地,涉及用于在沒有指令解碼的情況下調度指令的方法和裝置。
背景技術
并行處理器具有使用不同的硬件資源來使多個線程能夠同時執行的多個獨立內核。SIMD(單指令、多數據)架構處理器在多個內核的每一個上均執行相同的指令,其中每個內核均執行不同的輸入數據。MIMD(多指令、多數據)架構處理器利用供應給每個內核的不同的輸入數據在不同的內核上執行不同的指令。并行處理器也可以是多線程的,其使用單個處理內核的資源使兩個或更多個線程能夠大體上同時執行(即在不同的時鐘周期期間在內核上執行不同的線程)。指令調度是指用于確定在下一個時鐘周期期間哪個線程執行在哪個內核上的技術。
通常,指令調度算法在從存儲器獲取指令之后將解碼多個指令以確定每個特定操作所需的特定資源和與那些資源相關聯的延遲。之后系統可以評估該延遲以為該多個指令確定最佳調度順序。例如,一個指令可以指定操作數(即寄存器值),該操作數取決于正在由來自同一線程的前一個指令或來自另一線程的指令所執行的計算。如果算法確定其他指令當前停滯并正在等待資源(例如實施存儲器讀以將值加載到寄存器中)從而使得操作數不可用于下一個指令,則在等待資源變得可用時算法將從不同線程選擇替代指令以在下一個時鐘周期期間執行。
上述系統的一個問題是解碼多個指令以及分析與由指令所指定的所有資源相關聯的延遲需要處理器中的大量管理資源和大量狀態信息存儲。處理器可以確定由指令所指定的特定操作碼、與操作相關聯的資源(例如作為操作數傳遞到每個指令的特定寄存器)、指令之間的相互依賴關系以及與指令相關聯的任意其他重要數據。這類算法的實現可采取許多時鐘周期來完成以及采取大量存儲器用于存儲和解碼指令。完全解碼多個指令造成處理中的效率低下并需要會增加這類處理器成本的額外的片上硬件資源。
因此,本領域需要的是用于在沒有由實施全指令解碼所引入的延遲的情況下實施指令調度的系統和方法。
發明內容
本公開的一個示范性實施例提出了一種用于在沒有指令解碼的情況下調度指令的方法。所述方法包括以下步驟:從指令高速緩存單元獲取與兩個或兩個以上線程組相對應的多個指令、在不解碼所述指令的情況下將所述多個指令存儲在緩沖區中以及接收與所述指令的每一個相關聯的預解碼數據。所述步驟進一步包括至少部分地基于所述預解碼數據選擇指令用于執行、解碼所述指令以及將所述指令分派到所述處理單元用于執行。
本公開的另一示范性實施例提出了一種包括指令的計算機可讀存儲介質,所述指令當由處理單元執行時導致所述處理單元在沒有指令解碼的情況下調度指令。所述指令導致所述處理單元實施以下步驟:從指令高速緩存單元獲取與兩個或兩個以上線程組相對應的多個指令、在不解碼所述指令的情況下將所述多個指令存儲在緩沖區中以及接收與所述指令的每一個相關聯的預解碼數據。所述步驟進一步包括至少部分地基于所述預解碼數據來選擇指令用于執行、解碼所述指令以及將所述指令分派到所述處理單元用于執行。
本公開的又一示范性實施例提出了一種用于在沒有指令解碼的情況下調度指令的系統,其包括中央處理單元和并行處理單元。所述并行處理單元包括調度單元,所述調度單元配置為從指令高速緩存單元獲取與兩個或兩個以上線程組相對應的多個指令、在不解碼所述指令的情況下將所述多個指令存儲在緩沖區中以及接收與所述指令的每一個相關聯的預解碼數據。所述調度單元進一步配置為至少部分地基于所述預解碼數據來選擇指令用于執行、解碼所述指令以及將所述指令分派到所述并行處理單元用于執行。
附圖說明
因此,可以詳細地理解上述本公開的特征,并且可以參考示范性實施例得到對如上面所簡要概括的本發明更具體的描述,其中一些實施例在附圖中示出。然而,應當注意的是,附圖僅示出了本公開的典型實施例,因此不應被認為是對其范圍的限制,本公開可以具有其他等效的實施例。
圖1為示出了配置為實現本公開一個或多個方面的計算機系統的框圖;
圖2為根據本公開一個實施例的用于圖1的計算機系統的并行處理子系統的框圖;
圖3A為根據本公開一個實施例的圖2的前端的框圖;
圖3B為根據本公開一個實施例的在圖2的并行處理單元之一內的通用處理集群的框圖;
圖3C為根據本公開一個實施例的圖3B的流多處理器的一部分的框圖;以及
圖4為根據本公開一個示范性實施例的圖3C的warp調度器和指令單元的框圖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于輝達公司,未經輝達公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210567104.1/2.html,轉載請聲明來源鉆瓜專利網。





