[發明專利]處理器內指令級流水線控制方法及其系統有效
| 申請號: | 201010233616.5 | 申請日: | 2010-07-16 |
| 公開(公告)號: | CN101894013A | 公開(公告)日: | 2010-11-24 |
| 發明(設計)人: | 余磊;張浩;劉志勇;范東睿 | 申請(專利權)人: | 中國科學院計算技術研究所 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京律誠同業知識產權代理有限公司 11006 | 代理人: | 祁建國;梁揮 |
| 地址: | 100080 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 處理器 指令 流水線 控制 方法 及其 系統 | ||
技術領域
本發明涉及到處理器的指令按序發射和按序寫回機制,涉及到基于指令發射序號的指令相關性的解決方法。
背景技術
在現代處理器設計中,處理器的性能提升主要通過提高處理器的主頻來實現。然而,隨著片上集成的晶體管的數量越來越多,功耗和散熱問題變得更加嚴重。單純提高主頻的方法已經很難適應現在處理器的發展。在這種情況下,需要一種簡單而有效的處理器流水線控制方法來提高指令的執行效率。也就是說,用較少的硬件資源實現指令的流水線控制,從而實現較高的指令吞吐率。
流水線技術是指把一條指令的執行分成若干個階段,每個階段完成指令的一部分功能。這樣在多條指令同時執行的時候,多條指令的不同階段可以同時執行。在實際中,指令和指令之間可能存在著數據依賴關系。比如,一條指令的源操作數是前面一條指令的目的操作數,這樣就產生了寫后讀相關。流水線的控制方法必須能夠檢測到這樣的相關關系,然后采用一定方法來保證指令發射和寫回時程序的正確性。
流水線控制方法涉及到指令相關關系。處理器的硬件邏輯需要檢測指令間的相關關系,并且采取某種辦法來解除或避免這樣的相關關系。指令相關包括數據相關、控制相關和結構相關。數據相關一般是指寫后讀(RAW,ReadAfter?Write)相關,寫后寫(WAW,Write?After?Write)和讀后寫(WAR,Write?After?Read)相關。如果是按序發射的處理器,只存在RAW和WAW;如果是亂序發射的處理器還存在WAR的問題。如果存在指令相關,則相關的指令就不能被發射出去?,F有技術中,解決數據相關有兩類方法:軟件方法和硬件方法。軟件方法是編譯器通過語義分析,盡可能不產生有相關的指令序列。編譯器可以把一個循環體內部的指令,一次展開多次,并進行合適的調度,這樣就可以消除指令間的數據相關和控制相關。超長指令字(VLIW,Very?Long?Instruction?Word)也是依靠編譯器來提高指令級并行性。在超長指令字處理器上,選擇同時發射的多條指令和相關性分析都是由編譯器完成的。因此,這可以大大簡化硬件邏輯。同時發射的指令條數越多,處理器的性能就越高。
寄存器重命名也是解決相關的方法。由于編譯器可以看到的寄存器的個數是由指令集所確定的,有時會出現邏輯寄存器不夠用的情況,這時就會產生寄存器相關。這時可以增加物理寄存器堆的個數來解決相關問題。
硬件支持的動態指令調度是超標量處理器挖掘指令級并行的重要手段。IBM?360/91的浮點部件設計實現了本領域公知的Tomasulo算法,這為現代超標量處理器的設計打下了基礎。該算法增加了3種新的機制:保留站、公共數據總線(CDB)和寄存器標簽。它的工作機制如下:如果存在可用的保留站就把指令發射到保留站中,如果這時源操作數寄存器的值有效,就可以把指令分派到相應的功能部件。功能部件的結果總線把結果廣播到公共數據總線,保留站中需要該數據的指令將數據從CDB上鎖存到本地鎖存器。保留站里每個操作數域有一個標簽,如果標簽為0,則表示操作數域是真實數據;如果標簽不是0,則表示在等待其他已經分派出去的指令結果。
指令結果可以旁路到要發射的指令,以提前取得操作數的結果。因為多發射和亂序發射的原因,有些指令可以同時在結果總線產生結果,這時只有其中一部分指令可以寫入寄存器堆。如果正要發射的指令恰巧需要這些不能馬上寫回的結果,就會造成發射級的停頓。因此,使用旁路可以使指令盡早發射。
現有技術中,每條指令的執行時間不完全相同,有的指令時間長,有的指令時間短。如果流水線前面的一條指令是一個長延遲指令,而后面一條指令是短延遲指令,這時為了保證每條指令的按序提交,每條指令都需要標出自己的整個流水線中的次序信息。如果不保證這個次序信息,則在后面短延遲的指令產生結果后,就提交結果,這樣就不是按序提交了。
發明內容
為解決上述問題,本發明提供了處理器內指令級流水線控制方法及其系統,能夠減少對硬件資源的消耗。
本發明公開了一種處理器內指令級流水線控制方法,包括:
步驟1,初始化發射序號寄存器和寫回序號寄存器為相同初始值;
步驟2,在一個時鐘周期內發射指令時,對于每條指令,以發射序號寄存器的值為基礎值,按所述指令在本次發射中的順序,生成指令的發射序號,并在所述指令中攜帶所述發射序號;
步驟3,在一個時鐘周期的指令發射完成后,更新發射序號寄存器的值為發射的最后一個指令的發射序號加n,n為預設常量;
步驟4,指令進入功能部件被執行時,指令的發射序號保持不變;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算技術研究所,未經中國科學院計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010233616.5/2.html,轉載請聲明來源鉆瓜專利網。





