[發明專利]一種超長指令字結構下延遲槽調度方法及其系統有效
| 申請號: | 201210347706.6 | 申請日: | 2012-09-18 |
| 公開(公告)號: | CN102880449A | 公開(公告)日: | 2013-01-16 |
| 發明(設計)人: | 朱浩;彭楚;王東輝;洪纓;侯朝煥 | 申請(專利權)人: | 中國科學院聲學研究所 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京億騰知識產權代理事務所 11309 | 代理人: | 陳霽 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 超長 指令 結構 延遲 調度 方法 及其 系統 | ||
技術領域
本發明涉及一種指令調度技術,尤其涉及一種超長指令字結構下延遲槽調度方法及其系統。
背景技術
超長指令字(Very?Long?Instruction?Word,簡稱:VLIW)是一種非常長的指令組合,它把許多條指令連在一起,增加了運算的速度。VLIW技術是提高處理器指令級并行性的主要性能之一,它采用軟硬件協同開發處理器的并行性。長指令的組裝由編譯器完成,而不是采用超標量處理器基于硬件動態調度策略,從而大幅度降低了硬件復雜度和芯片功耗。
在數字信號處理器(Digital?Signal?Processing,簡稱DSP)體系結構設計中,通常是在精簡指令集計算機(Reduced?Instruction?Set?Computer,簡稱:RISC)體系結構下結合VILW技術進行研究。采用這種體系結構的流水處理器中,分支指令是提高性能的一個重要障礙,這是因為分支指令之后的指令預取地址需要在分支指令執行到比較后的流水級時才能產生,中間的延遲會造成指令流水線停頓等分支結果,從而直接影響后續指令序列的執行,降低了指令并行度。延遲槽結構正是為了降低此類指令流水線控制流相關帶來的性能開銷,其原理是,如果在分支指令之后填入與分支指令不相關的指令,那么處理器的指令流水線將仍然處于工作狀態,分支指令帶來的延遲將會被這些指令合理應用,延遲槽就是用于存放這些指令的結構。延遲槽結構在實際程序執行中要想獲得良好效果,需要軟件調度算法的支持。如果在延遲槽中填充有用的指令,那么處理器的處理性能就可能提高,而如果找不到合適的指令使得延遲槽不得不填充空操作指令的話,那么控制相關操作所帶來的性能損耗依然存在。因此,軟件上如何讓指令延遲槽獲得盡量充分的使用,是值的探究的。
延遲槽調度算法主要包括局部調度算法和全局調度算法兩種方案。傳統編譯器只采用較為簡單的局部函數片段的調度,即局部調度,延遲槽中所填充的指令從基本塊(Basic?Block)中選取,基本塊是程序中一個順序執行的語句序列,在執行時只能從入口語句入,從出口語句退出(基本塊只有一個出口語句和一個入口語句),基本塊以分支指令做為結束指令。如果基本塊中沒有合適指令可選擇,那么就填充空操作指令,而全局調度則是在發現基本塊中沒有合適指令可填充延遲槽后,還會基于一定約束規則從其他基本塊中選擇合適的指令進行填充,也就是說全局調度允許跨越基本塊邊界的代碼移動,如果這個過程也失敗,那么再選擇空操作指令進行填充,但在編譯器上實現全局調度的代價較大,而且直接影響編譯器的編譯速度。
在傳統的DSP處理器體系結構設計中,通常只使用局部調度算法或限于對編譯速度的考慮選擇全局調度和編譯器效率的折中,而局部調度算法通常局限于局部函數片段可選的目標指令數很少,當編譯器充分優化時,局部函數片段中指令之間的邏輯性增強導致延遲槽使用率偏低。當傳統的DSP處理器體系結構設計方案沒用到基于VLIW技術實現的體系結構中,則無法評估對指令并行度的影響,而對延遲槽的使用可能帶來對指令并行度的破壞,反而影響程序的實際效率。
發明內容
本發明的目的是提供一種超長指令字結構下的延遲槽調度的方法,以達到延遲槽調度和程序并行性度之間的權衡,局部調度和全局調度之間的權衡,從而使程序獲得更高的執行效率。
為實現上述目的,一方面,本發明提供一種超長指令字結構下的延遲槽調度方法,該方法包括以下步驟:
對當前基本塊內指令進行局部調度,所述局部調度完成后判斷是否有剩余指令延遲槽,若沒有,則調度結束;否則將可填充入指令延遲槽但開銷較大的指令放入局部備選指令緩存;
對分支目標基本塊內指令進行全局調度,選取可填充入指令延遲槽的指令放入全局備選指令緩存;
從所述局部備選指令緩存和/或所述全局備選指令緩存中選取指令填充入所述剩余指令延遲槽。另一方面,本發明還提供一種超長指令字結構下的延遲槽調度系統,該系統包括:
局部調度單元,用于對當前基本塊內指令進行局部調度,所述局部調度完成后判斷是否有剩余指令延遲槽,若沒有,則調度結束;否則將可填充入指令延遲槽但開銷較大的指令放入局部備選指令緩存;
全局調度單元,用于對分支目標基本塊內指令進行全局調度,選取可填充入指令延遲槽的指令放入全局備選指令緩存;
平衡調度單元,用于從所述局部備選指令緩存和/或所述全局備選指令緩存中選取指令填充入所述剩余指令延遲槽。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院聲學研究所,未經中國科學院聲學研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210347706.6/2.html,轉載請聲明來源鉆瓜專利網。





