System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及訪存違例預測,尤其涉及一種訪存違例預測方法、系統、終端及存儲介質。
技術介紹
1、在超標量處理器中,加載指令和存儲指令可以亂序執行,但是當加載和存儲指令地址具有重疊時,加載指令應該先拿到存儲指令的數據,而如果加載指令先于存儲指令執行,就會產生錯誤,這種情況稱為訪存違例。此時加載指令本應拿到存儲指令的結果,但是此時存儲指令尚未執行,因此加載指令所取得的指令是錯誤的;具體則是加載指令需要先執行后應存放在一個隊列中等待,當存儲指令執行后發現有一條在存儲指令后的加載指令地址相同,但是已經寫回了,則需要把加載指令以及之后的指令都沖刷掉。
2、目前,為了防止訪存違例的發生,通常會直接禁止存儲和加載指令的亂序執行,這會導致存儲指令和加載指令完全順序執行,從而降低處理器性能;或是通過一次性記錄加載指令所依賴的多條存儲指令,并在發射存儲指令之前暫緩這些加載指令的發射,但該方法采用直接映射的方法,表項利用率低,且一次記錄多條存儲指令,面積開銷大。
3、因此,現有技術還有待于改進和發展。
技術實現思路
1、本專利技術的主要目的在于提供一種訪存違例預測方法、系統、終端及計算機可讀存儲介質,旨在解決現有技術中為了防止訪存違例的發生,直接禁止存儲和加載指令的亂序執行的方法和通過一次性記錄加載指令所依賴的多條存儲指令,并在發射存儲指令之前暫緩這些加載指令的發射的方法,會導致處理器性能降低或資源消耗高,從而在實際應用中存在一定局限性的問題。
2、為實現上述目的,本
3、獲取加載指令,將所述加載指令進行解碼后得到目標加載指令;
4、根據所述目標加載指令生成目標物理地址,獲取全連接條目,根據所述目標物理地址在所述全連接條目中獲取目標物理地址的違例距離,根據所述目標加載指令和所述違例距離獲取預測存儲指令;
5、根據所述目標物理地址在存儲指令隊列中查找存儲指令,當查找到目標加載指令之前存在存儲指令未發射時,將所述預測存儲指令作為沖突存儲指令,并將所述目標加載指令存儲到重發列表中;
6、當所述沖突存儲指令對應的目標存儲指令發射后,對所述重發列表中的目標加載指令進行寫回。
7、可選地,所述獲取全連接條目之前還包括:
8、獲取多條歷史訪存違例訓練信息,其中,所述歷史訪存違例訓練信息包括每條訪存違例中加載指令的物理地址、加載指令中攜帶的存儲指令的位置和加載指令對應的上一條訪存違例中存儲指令的位置;
9、根據所有的所述歷史訪存違例訓練信息得到每個物理地址對應的違例距離;
10、采用全連接的結構,對所有所述物理地址和對應的違例距離進行匯總,并根據每個物理地址上訪存違例發射的次數,得到所述全連接條目,并初始化所述全連接條目中的每條信息的計數器。
11、可選地,所述獲取加載指令,將所述加載指令進行解碼后得到目標加載指令,具體包括:
12、獲取加載指令,根據解碼單元對所述加載指令進行解碼;
13、將解碼后得到的指令輸入到保留站進行緩沖,當達到預設要求時,從所述保留站中輸出對應的目標加載指令。
14、可選地,所述根據所述目標加載指令生成目標物理地址,具體包括:
15、根據所述目標加載指令生成虛擬地址;
16、根據所述虛擬地址,訪問轉換模塊,根據所述轉換模塊返回目標物理地址。
17、可選地,所述根據所述目標物理地址在存儲指令隊列中查找存儲指令,之后還包括:
18、當查找到存儲指令的地址和數據時,對所述目標加載指令進行寫回,并調整此時全連接條目中的對應信息的所述計數器的數字減1;
19、當查找到的存儲指令的地址完成發射,但并未查找到存儲指令的數據時,將所述目標加載指令存儲到重發列表中,當查找到的存儲指令的數據存儲到所述存儲指令隊列中時,對所述目標加載指令進行寫回,并調整此時全連接條目中的對應信息的所述計數器的數字減1。
20、可選地,所述當查找到目標加載指令之前存在存儲指令未發射時,將所述預測存儲指令作為沖突存儲指令,并將所述目標加載指令存儲到重發列表中,之后還包括:
21、獲取所述全連接條目中的對應信息的計數器;
22、對所述全連接條目中的對應信息的所述計數器的數字加1。
23、可選地,所述訪存違例預測方法,還包括:
24、每隔預定時間,獲取所述全連接條目中的每條信息的計數器,當所述計數器的數字為0時,標記對應的信息失效;
25、根據每條信息的標記和目標算法,對所述全連接條目進行更新。
26、此外,為實現上述目的,本專利技術還提供一種訪存違例預測系統,其中,所述訪存違例預測系統包括:
27、指令獲取模塊,用于獲取加載指令,將所述加載指令進行解碼后得到目標加載指令;
28、預測模塊,用于根據所述目標加載指令生成目標物理地址,獲取全連接條目,根據所述目標物理地址在所述全連接條目中獲取目標物理地址的違例距離,根據所述目標加載指令和所述違例距離獲取預測存儲指令;
29、預測確定模塊,用于根據所述目標物理地址在存儲指令隊列中查找存儲指令,當查找到目標加載指令之前存在存儲指令未發射時,將所述預測存儲指令作為沖突存儲指令,并將所述目標加載指令存儲到重發列表中;
30、處理模塊,用于當所述沖突存儲指令對應的目標存儲指令發射后,對所述重發列表中的目標加載指令進行寫回。
31、此外,為實現上述目的,本專利技術還提供一種終端,其中,所述終端包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的訪存違例預測程序,所述訪存違例預測程序被所述處理器執行時實現如上所述的訪存違例預測方法的步驟。
32、此外,為實現上述目的,本專利技術還提供一種計算機可讀存儲介質,其中,所述計算機可讀存儲介質存儲有訪存違例預測程序,所述訪存違例預測程序被處理器執行時實現如上所述的訪存違例預測方法的步驟。
33、本專利技術中,獲取加載指令,將所述加載指令進行解碼后得到目標加載指令;根據所述目標加載指令生成目標物理地址,獲取全連接條目,根據所述目標物理地址在所述全連接條目中獲取目標物理地址的違例距離,根據所述目標加載指令和所述違例距離獲取預測存儲指令;根據所述目標物理地址在存儲指令隊列中查找存儲指令,當查找到目標加載指令之前存在存儲指令未發射時,將所述預測存儲指令作為沖突存儲指令,并將所述目標加載指令存儲到重發列表中;當所述沖突存儲指令對應的目標存儲指令發射后,對所述重發列表中的目標加載指令進行寫回。本專利技術無需禁止所有的亂序執行,而是通過記錄一條存儲指令,以及其對應的違例距離,從而生成對應的全連接條目,避免了表項的冗余信息,同時采用全相連的方法來提高表項的利用率,并利用對應的算法對不常使用的表項進行替換,即保證了全連接條目面積開銷不會太大,又使得其可以準確地預本文檔來自技高網...
【技術保護點】
1.一種訪存違例預測方法,其特征在于,所述訪存違例預測方法包括:
2.根據權利要求1所述的訪存違例預測方法,其特征在于,所述獲取全連接條目之前還包括:
3.根據權利要求1所述的訪存違例預測方法,其特征在于,所述獲取加載指令,將所述加載指令進行解碼后得到目標加載指令,具體包括:
4.根據權利要求1所述的訪存違例預測方法,其特征在于,所述根據所述目標加載指令生成目標物理地址,具體包括:
5.根據權利要求2所述的訪存違例預測方法,其特征在于,所述根據所述目標物理地址在存儲指令隊列中查找存儲指令,之后還包括:
6.根據權利要求2所述的訪存違例預測方法,其特征在于,所述當查找到目標加載指令之前存在存儲指令未發射時,將所述預測存儲指令作為沖突存儲指令,并將所述目標加載指令存儲到重發列表中,之后還包括:
7.根據權利要求2所述的訪存違例預測方法,其特征在于,所述訪存違例預測方法,還包括:
8.一種訪存違例預測系統,其特征在于,所述訪存違例預測系統包括:
9.一種終端,其特征在于,所述終端包括:存儲器
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲有訪存違例預測程序,所述訪存違例預測程序被處理器執行時實現如權利要求1-7任一項所述的訪存違例預測方法的步驟。
...【技術特征摘要】
1.一種訪存違例預測方法,其特征在于,所述訪存違例預測方法包括:
2.根據權利要求1所述的訪存違例預測方法,其特征在于,所述獲取全連接條目之前還包括:
3.根據權利要求1所述的訪存違例預測方法,其特征在于,所述獲取加載指令,將所述加載指令進行解碼后得到目標加載指令,具體包括:
4.根據權利要求1所述的訪存違例預測方法,其特征在于,所述根據所述目標加載指令生成目標物理地址,具體包括:
5.根據權利要求2所述的訪存違例預測方法,其特征在于,所述根據所述目標物理地址在存儲指令隊列中查找存儲指令,之后還包括:
6.根據權利要求2所述的訪存違例預測方法,其特征在于,所述當查找到目標加載指令之前存在存儲指令未發射時,將所...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。