[發明專利]內存訪問指令的調度方法、裝置及計算機系統有效
| 申請號: | 201680004199.2 | 申請日: | 2016-05-25 |
| 公開(公告)號: | CN108027727B | 公開(公告)日: | 2020-09-08 |
| 發明(設計)人: | 胡杏;方運潭;肖世海 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 張耀光 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 訪問 指令 調度 方法 裝置 計算機系統 | ||
1.一種內存訪問指令的調度方法,其特征在于,應用于計算機系統中,所述計算機系統包括內存控制器、調度器以及多個處理器核;所述調度器分別與所述內存控制器以及所述多個處理器核連接,在所述調度器中緩存有多個調度隊列,每個調度隊列用于緩存待調度的內存訪問指令,所述方法包括:
所述調度器接收所述多個處理器核中的第一處理器核發送的第一內存訪問指令以及所述第一內存訪問指令之后的第一內存屏障指令;
所述調度器確定所述第一內存屏障指令為第一類型內存屏障指令,所述第一類型內存屏障指令用于控制處理器核的多個內存訪問指令的順序;
所述調度器將所述第一內存訪問指令和所述第一內存屏障指令調度至所述多個調度隊列中的第一調度隊列,所述第一調度隊列用于緩存所述第一處理器核發送的內存訪問指令;
所述調度器將所述多個調度隊列中位于第一個第一類型內存屏障指令之前的至少一個內存訪問指令發送給所述內存控制器;
所述調度器將第二類型內存屏障指令發送給所述內存控制器,所述第二類型內存屏障指令用于控制整個處理器的多個內存訪問指令的順序。
2.根據權利要求1所述的方法,其特征在于,所述調度器將所述多個調度隊列中位于第一個第一類型內存屏障指令之前的至少一個內存訪問指令發送給內存控制器包括:
確定所述至少一個內存訪問指令的優先級,所述優先級由在內存訪問指令被發送給所述內存控制器之后待訪問每個內存庫bank的內存訪問指令個數的最小值表示;
根據每個內存訪問指令的優先級以及每個內存訪問指令訪問的bank,從所述至少一個內存訪問指令中選取每個bank對應的優先級最高的內存訪問指令;
向所述內存控制器發送選取的內存訪問指令。
3.根據權利要求2所述的方法,其特征在于,所述確定所述至少一個內存訪問指令的優先級,包括:
按照每個調度隊列中第一類型內存屏障指令的位置進行劃分,得到多個分組,每個分組包括至少一個內存訪問指令;
根據每個調度隊列中的第一個分組獲得待調度的內存訪問指令集合T;
統計所述T中訪問每個bank的內存訪問指令個數;
統計所述T中每個分組中訪問每個bank的內存訪問指令個數;
根據所述T中訪問每個bank的內存訪問指令個數以及所述T中每個分組中訪問每個bank的內存訪問指令個數,計算每個分組的優先級,并將每個分組的優先級作為每個分組內的內存訪問指令的優先級。
4.根據權利要求3所述的方法,其特征在于,所述根據所述T中訪問每個bank的內存訪問指令個數以及所述T中每個分組中訪問每個bank的內存訪問指令個數,計算每個分組的優先級,并將每個分組的優先級作為每個分組內的內存訪問指令的優先級,包括:
采用以下公式,計算所述T中分組s的優先級:
W_b_s=min{(X0-Ys_0+Ys+1_0),(X1-Ys_1+Ys+1_1),…(Xn-1-Ys_n-1+Ys+1_n-1)};
其中,b表示調度隊列的序號,s表示當前所調度的分組在對應的調度隊列中的序號,n表示bank的序號,W_b_s表示分組s的優先級;
Xn-1表示所述T中訪問bankn-1的內存訪問指令個數;
Ys_n-1表示所述T中分組s中訪問bankn-1的內存請求個數;
Ys+1_n-1表示分組s+1中訪問bankn-1的內存請求個數,其中分組s+1是指與分組s位于同一調度隊列且位于分組s之后的分組,若分組s為調度隊列中的最后一個分組,則Ys+1_n-1=0。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201680004199.2/1.html,轉載請聲明來源鉆瓜專利網。





