[發(fā)明專利]一種load投機(jī)喚醒方法在審
| 申請?zhí)枺?/td> | 202110684064.8 | 申請日: | 2021-06-21 |
| 公開(公告)號: | CN113656075A | 公開(公告)日: | 2021-11-16 |
| 發(fā)明(設(shè)計)人: | 李長林;余紅斌 | 申請(專利權(quán))人: | 廣東賽昉科技有限公司 |
| 主分類號: | G06F9/4401 | 分類號: | G06F9/4401;G06F8/71 |
| 代理公司: | 上海邦德專利代理事務(wù)所(普通合伙) 31312 | 代理人: | 袁步蘭 |
| 地址: | 528300 廣東省佛山市順德*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 load 投機(jī) 喚醒 方法 | ||
本發(fā)明涉及微處理器技術(shù)領(lǐng)域,具體涉及一種load投機(jī)喚醒方法,本發(fā)明在load指令上pipeline的時候就投機(jī)的去喚醒對該load數(shù)據(jù)有依賴關(guān)系的指令,這樣可以讓該load數(shù)據(jù)有依賴關(guān)系的指令能提前2拍上pipeline;如果后面發(fā)現(xiàn)load指令投機(jī)執(zhí)行失敗,再把被喚醒并投機(jī)的上了pipeline的指令中途給cancel掉;如果load投機(jī)失敗需要把被喚醒并投機(jī)的上了pipeline的指令中途給cancel掉,每個load pipeline只需2bit的比對即可完成。因此本發(fā)明只需2bit的比對即可確定,時序比較好,減少了耗資源面積,提升了CPU整體性能。
技術(shù)領(lǐng)域
本發(fā)明涉及微處理器技術(shù)領(lǐng)域,具體涉及一種load投機(jī)喚醒方法。
背景技術(shù)
在亂序執(zhí)行的CPU系統(tǒng)中,由于LOAD指令LOAD的數(shù)據(jù)大概率會是后面指令的源操作數(shù),所以LOAD指令LOAD回數(shù)據(jù)的快慢,對整個CPU系統(tǒng)性能具有很大的作用。
LOAD指令的執(zhí)行是投機(jī)的去執(zhí)行,投機(jī)的執(zhí)行必然就會出現(xiàn)load成功或失敗兩種可能,所以很多CPU系統(tǒng)都是直到LOAD指令成功獲得數(shù)據(jù)后才會喚醒對該load數(shù)據(jù)有依賴關(guān)系的指令,但是考慮到當(dāng)前CPU L1_cache系統(tǒng)的命中率基本都在98%以上。
所以本方案提出:(1)在load指令上pipeline的時候就投機(jī)的去喚醒對該load數(shù)據(jù)有依賴關(guān)系的指令,這樣可以讓該load數(shù)據(jù)有依賴關(guān)系的指令能提前2拍上pipeline。
(2)如果后面發(fā)現(xiàn)load指令投機(jī)執(zhí)行失敗,再把被喚醒并投機(jī)的上了pipeline的指令中途給cancel掉。
雖然有的CPU系統(tǒng)會提前的投機(jī)喚醒對load數(shù)據(jù)有依賴關(guān)系的指令,如果load投機(jī)失敗需要把被喚醒并投機(jī)的上了pipeline的指令中途給cancel掉付出比較大的代價,如采用物理寄存器編號的一致性來match,或者用load在load_queue的index來索引,這種方式都是多bit的比較,耗資源面積,同時對時序還不好,本方案則提出每個load pipeline只需2bit的比對即可確定,時序也比較好。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的不足,本發(fā)明公開了一種load投機(jī)喚醒方法,用于解決LOAD指令投機(jī)的上pipeline,并沒有投機(jī)的喚醒對該load數(shù)據(jù)有依賴關(guān)系的指令,而load指令投機(jī)執(zhí)行成功的概率很高的情況下,load指令的dest又往往是后面指令的source,整個指令執(zhí)行都往后推了2拍,嚴(yán)重影響CPU整體性能。雖然有的CPU系統(tǒng)會提前的投機(jī)喚醒對load數(shù)據(jù)有依賴關(guān)系的指令,如果load投機(jī)失敗需要把被喚醒并投機(jī)的上了pipeline的指令中途給cancel掉付出比較大的代價,如采用物理寄存器編號的一致性來match,或者用load在load_queue的index來索引,這種方式都是多bit的比較,耗資源面積,同時對時序還不好的問題。
本發(fā)明通過以下技術(shù)方案予以實現(xiàn):
本發(fā)明公開一種load投機(jī)喚醒方法,包括以下步驟:
S1利用load指令投機(jī)的喚醒一條alu指令,同時更新alu指令在保留站的ld_wakeup_info為01,ready信息更新為1,并且將該信息左移一位為10;
S2指令被選中issue上pipeline pileline上的ld_wakeup_info為01,同時將pipeline上的ld_wakeup_info信息左移一位后更新為10,將ld_wakeup_info信息左移一位后為10;
S3如果load_mispredict=0,則保持ready=1指令正常執(zhí)行下去;如果load_mispredict=1,更新ready=0,指令在pipeline的valid cancel掉;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣東賽昉科技有限公司,未經(jīng)廣東賽昉科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110684064.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





