[發明專利]用于在處理器中執行的指令流中的分支集合活動檢測的動態集合活動分支訓練在審
| 申請號: | 202080066218.0 | 申請日: | 2020-06-20 |
| 公開(公告)號: | CN114430821A | 公開(公告)日: | 2022-05-03 |
| 發明(設計)人: | V·R·克廷蒂·納雷什 | 申請(專利權)人: | 微軟技術許可有限責任公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30;G06F9/38 |
| 代理公司: | 北京市金杜律師事務所 11256 | 代理人: | 酆迅 |
| 地址: | 美國華*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 處理器 執行 指令 中的 分支 集合 活動 檢測 動態 訓練 | ||
公開了用于在處理器中執行的指令流中的分支集合活動檢測的動態集合活動分支訓練。分支集合活動檢測電路被配置為在指令流的運行時處理期間動態地檢測指令流中的分支集合活動。響應于所標識的條件分支指令,分支集合活動檢測電路開始由條件分支指令預測的潛在分支集合活動的訓練過程。分支集合活動檢測電路被配置為基于根據是否采用分支將潛在會聚點設置為針對條件分支指令的目標地址來確定所標識的訓練中分支集合活動是否是實際分支集合活動。如果在所設置的會聚點處處理指令,這意味著所設置的會聚點可以是實際會聚點,并且可以將訓練中分支集合活動檢測為實際分支集合活動。
技術領域
本公開的技術涉及采用中央處理單元(CPU)(也被稱為“處理器”)的基于處理器的系統,更具體地涉及處理可以包括分支指令的計算機軟件指令的處理器中的指令處理電路。
背景技術
中央處理單元(CPU)(也被稱為“處理器”)執行針對各種應用的計算任務。常規處理器包括一個或多個處理器核,也被稱為“CPU核”。處理器執行從指令存儲器提取的計算機程序指令(“指令”),也被稱為“軟件指令”。處理器將從存儲器提取的指令執行成指令流,該指令流由指令處理電路處理以基于指令類型和數據操作數來執行操作并生成結果。例如,從指令程序提取的指令的指令流可以在處理器中的(多個)指令流水線中被流水線化,由此可以通過將每條指令的處理拆分成一系列步驟來提高處理器正在執行的計算機指令的吞吐量。
計算機指令包括分支指令。分支指令是如下指令:可以使計算機在與該分支指令之后的下一指令不同的分支目標地址處開始處理不同指令序列,并因此偏離其按順序處理指令的默認行為。例如,分支指令可以是不基于任何條件而分支到指令流中的分支目標地址的立即分支指令。因此,針對立即分支指令,總是“采用”分支。條件分支指令是僅當包含在條件分支指令中的某個條件為真時才分支到指令流中的分支目標地址以繼續處理指令的分支指令。如果條件為真,則這被稱為“分支采用”,并且指令處理電路跳轉到指令流中的分支目標地址以繼續執行指令。如果條件為假,則這被稱為“分支未采用”,并且指令處理電路將落空到指令流中的條件分支指令之后的下一指令以用于執行。
條件分支指令可以使分支集合活動(hammock)存在于指令程序中。分支集合活動是一個短的前向分支,其以if-then(如果-那么)或if-then-else(如果-那么-否則)構造的形式橫跨指令流中的一些指令。分支集合活動可以是單側集合活動(SSH)或雙側集合活動(DSH)。圖1A是分支SSH 100的圖形表示,其是分支DSH的一種變體。條件分支指令102控制是否采用分支。如果條件分支指令102的條件被確定為真,則分支發生到分支采用路徑106中的分支目標104。如果條件分支指令102的條件被確定為假,則不發生分支,從而落空到分支未采用路徑108中的分支落空,去往直接在條件分支指令102之后的指令110。分支采用路徑106跳過分支未采用路徑108中的指令。分支采用路徑106和分支未采用路徑108會聚回到分支會聚點112處。圖1B圖示了圖1A中的分支SSH 100的兩(2)個其他變體。圖1B中的變體分支SSH 114在分支采用路徑118中具有分支116,其立即分支到分支未采用路徑122中的分支會聚點120。變體分支SSH 124具有去往分支未采用路徑134中的分支目標130、132的立即分支126、128,其最終將與分支采用路徑136會聚在分支會聚點138處。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟技術許可有限責任公司,未經微軟技術許可有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202080066218.0/2.html,轉載請聲明來源鉆瓜專利網。





