亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

指令調(diào)度裝置和方法

文檔序號:6584548閱讀:291來源:國知局
專利名稱:指令調(diào)度裝置和方法
技術(shù)領(lǐng)域
本發(fā)明涉及微處理器的體系結(jié)構(gòu),特別涉及對微處理器中從操作隊列向保留站發(fā)
射指令進行動態(tài)調(diào)度的裝置和方法。
背景技術(shù)
現(xiàn)代的微處理器通常采用流水線技術(shù)來提高微處理器的處理速度。通過流水線技
術(shù),在各個不同階段并行執(zhí)行不同的指令以提高處理器的性能。然而,指令之間的數(shù)據(jù)相關(guān)
會嚴重影響指令的并行性,從而降低流水線的利用率以及處理器的性能。 為了解決指令之間的數(shù)據(jù)相關(guān)對指令并行性的影B向,很多微處理器選擇使用對指
令進行動態(tài)調(diào)度的流水線結(jié)構(gòu),比如Tomasulo算法。譯碼后的指令保存到操作隊列中,而
操作隊列中的指令順序發(fā)射到保留站。其中,所謂的順序發(fā)射是指,指令從操作隊列中發(fā)射
的順序與指令寫入到操作隊列中的順序是一致的,即按照先進先出(FIFO)的方式進行發(fā)
射。只要保留站中有空閑項時,不管操作隊列中的第一條指令的操作數(shù)是否已準備好均將
其發(fā)射到對應的保留站中。然后,由保留站偵聽結(jié)果總線,判斷指令的操作數(shù)是否準備好,
并將操作數(shù)準備好的指令發(fā)射到功能部件中以開始執(zhí)行指令。每個功能部件對應于一個保
留站,每個功能部件執(zhí)行與其相對應的保留站中操作數(shù)已準備好的指令。 對于上述對指令進行動態(tài)調(diào)度的技術(shù),所有指令譯碼后寫入同一個操作隊列,不
同類型的指令從操作隊列中順序發(fā)射到不同類型的保留站,由于操作隊列的項數(shù)比保留站
的項數(shù)要多(因硬件開銷方面的考慮,保留站的項數(shù)一般不多),由此使得,操作隊列中操
作數(shù)準備好的指令理論上比保留站中操作數(shù)準備好的指令要多,并因此存在以下問題當
與操作隊列中的第一條指令相對應的保留站長時間處于飽和狀態(tài)(即保留站沒有空閑項)
時,則第一條指令將一直保存在操作隊列中而不被發(fā)射到保留站中,從而使得,即使與操作
隊列中的其它指令相對應的保留站有空閑項,所述其它指令也不能被發(fā)射。
參照圖1具體而言如果訪存保留站已滿,即訪存保留站中的所有項都處于
"BUSY(忙)"狀態(tài),也即沒有空閑的項可用來接收操作隊列發(fā)射過來的新指令;其中,保留
站項的"忙"狀態(tài)表示該保留站項已經(jīng)存放了指令,并且該指令尚未被執(zhí)行或者正在被執(zhí)行
但結(jié)果尚未寫回。此時,在操作隊列的第一條指令是LW指令(存數(shù)訪存指令)的情況下,由
于訪存保留站已滿將使得訪存指令LW不能被發(fā)射,因此,即使此時定點保留站有空閑項,
操作隊列中的定點指令MUL、ADD因被訪存指令LW堵塞而不能被發(fā)射。進一步,如果此時訪
存指令發(fā)生了例外且需要很多周期處理該例外,則此時與定點指令相對應的功能部件將處
于空閑狀態(tài),這顯然會降低流水線的利用率和處理器的性能。 另外,上述對指令進行動態(tài)調(diào)度的技術(shù)還存在的問題是當保留站沒有空閑項,且 保留站中的指令操作數(shù)尚未準備好時,即使操作隊列中存在操作數(shù)已準備好的指令,也不 能執(zhí)行該指令。 參照圖2具體而言如果操作隊列中的LW、MUL、ADD指令均已發(fā)射到保留站中。由 于MUL、 ADD指令與LW指令存在數(shù)據(jù)相關(guān)(均涉及操作數(shù)Rl),只要LW指令的結(jié)果尚未寫回,就不能執(zhí)行MUL, ADD指令。此時,MUL、 ADD指令將因操作數(shù)Rl尚未準備好而一直占用 保留站項,使得沒有空閑的保留站項可用來接收SUB指令,因此不能發(fā)射SUB、FADD指令,即 使它們的操作數(shù)已準備好且它們與LW指令及保留站中的其它指令均不存在數(shù)據(jù)相關(guān)。換 言之,即使SUB指令的操作數(shù)已準備好也不能被執(zhí)行,這顯然也將導致流水線效率降低。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明目的在于提供一種用于對微處理器中從操作隊列向保留站發(fā)射
指令進行動態(tài)調(diào)度的裝置和方法,以基于微處理器指令之間的數(shù)據(jù)相關(guān)性來實現(xiàn)將操作數(shù)
已準備好的指令發(fā)射到保留站,從而能夠提高微處理器的流水線效率以及整體性能。 為了實現(xiàn)上述目的,本發(fā)明提供了一種指令調(diào)度裝置,用于對微處理器中從操作
隊列向保留站發(fā)射指令進行動態(tài)調(diào)度,其包括指令寫入器,用于基于要寫入所述操作隊列
的譯碼后指令與所述操作隊列中的有效指令之間的數(shù)據(jù)相關(guān)性、已經(jīng)寫回和正在寫回至所
述操作隊列的指令執(zhí)行結(jié)果,來設(shè)置所述譯碼后指令的各操作數(shù)的狀態(tài),并將設(shè)置后的所
述譯碼后指令作為待寫入指令寫入所述操作隊列;操作數(shù)狀態(tài)更新器,用于基于所述操作
隊列中各未發(fā)射指令與指令執(zhí)行結(jié)果正在寫回的指令之間的數(shù)據(jù)相關(guān)性,更新各所述未發(fā)
射指令的操作數(shù)的狀態(tài);待發(fā)射判斷器,用于基于各所述未發(fā)射指令的各操作數(shù)的狀態(tài),
判斷所述操作隊列中是否存在所有操作數(shù)均已準備好的待發(fā)射指令;以及指令發(fā)射器,用
于在所述保留站有空閑時,將經(jīng)由所述待發(fā)射判斷器所判定的待發(fā)射指令發(fā)射至所述保留站。 另外,本發(fā)明還提供了一種指令調(diào)度方法,用于對微處理器中從操作隊列向保留 站發(fā)射指令進行動態(tài)調(diào)度,其包括指令寫入步驟,用于基于要寫入所述操作隊列的譯碼后 指令與所述操作隊列中的有效指令之間的數(shù)據(jù)相關(guān)性、已經(jīng)寫回和正在寫回至所述操作隊 列的指令執(zhí)行結(jié)果,來設(shè)置所述譯碼后指令的各操作數(shù)的狀態(tài),并將設(shè)置后的所述譯碼后 指令作為待寫入指令寫入所述操作隊列;操作數(shù)狀態(tài)更新步驟,用于基于所述操作隊列中 各未發(fā)射指令與指令執(zhí)行結(jié)果正在寫回的指令之間的數(shù)據(jù)相關(guān)性,更新各所述未發(fā)射指令 的操作數(shù)的狀態(tài);待發(fā)射判斷步驟,用于基于各所述未發(fā)射指令的各操作數(shù)的狀態(tài),判斷 所述操作隊列中是否存在所有操作數(shù)均已準備好的待發(fā)射指令;以及指令發(fā)射步驟,用于 在所述保留站有空閑時,將經(jīng)由所述待發(fā)射判斷步驟所判定的待發(fā)射指令發(fā)射至所述保留 站。 通過上述指令調(diào)度裝置和方法,本發(fā)明能夠獲得以下有益技術(shù)效果由于進入保 留站的指令都是操作數(shù)準備好的指令,所以保留站不需要偵聽結(jié)果總線,不需要判斷指令 的操作數(shù)是否準備好,而可將指令直接發(fā)射到功能部件中。這能夠有效解決因某個保留站 無空閑而使得順序發(fā)射操作隊列中的指令時,即使操作隊列中的指令的操作數(shù)已準備好也 不能被執(zhí)行的問題。因此,本發(fā)明能夠有效減少指令發(fā)射中因保留站無空閑而堵塞流水線 的次數(shù),從而提高流水線的效率和微處理器的整體性能。 對于上述指令調(diào)度裝置和方法,優(yōu)選地,通過偵聽結(jié)果總線來確定指令執(zhí)行結(jié)果 以及指令執(zhí)行結(jié)果正在寫回的指令的操作隊列項號,并根據(jù)所述操作隊列項號將所述指令 執(zhí)行結(jié)果寫回到所述操作隊列中所述指令所在的操作隊列項內(nèi)。由此使得,可將上述指令 調(diào)度裝置實現(xiàn)為通過從操作隊列讀取操作隊列項內(nèi)所保存的信息以及向操作隊列中的操
6作隊列項寫入信息來實施上述指令調(diào)度方法。


圖1示出了現(xiàn)有指令調(diào)度技術(shù)的一個示例; 圖2示出了現(xiàn)有指令調(diào)度技術(shù)的另一個示例; 圖3示出了根據(jù)本發(fā)明實施例的指令調(diào)度裝置的框圖; 圖4示出了本發(fā)明指令調(diào)度裝置中指令寫入器的優(yōu)選實施例的框圖; 圖5示出了本發(fā)明指令調(diào)度裝置中操作數(shù)狀態(tài)更新器的優(yōu)選實施例的框圖; 圖6示出了可應用于本發(fā)明指令調(diào)度裝置的,操作隊列中用于保存指令的相關(guān)信
息的操作隊列項域構(gòu)成的示意圖; 圖7示出了本發(fā)明指令調(diào)度裝置中指令寫入器的處理流程的示意圖;
圖8示出了本發(fā)明指令調(diào)度裝置中操作數(shù)狀態(tài)更新器的處理流程的示意圖;
圖9示出了本發(fā)明指令調(diào)度裝置中待發(fā)射判斷器的處理流程的示意圖;
圖10示出了本發(fā)明指令調(diào)度裝置中指令發(fā)射器的處理流程的示意圖;以及
圖11A 圖lll根據(jù)本發(fā)明指令調(diào)度方法示出了指令從譯碼到發(fā)射過程的一個應 用示例。
具體實施例方式
如上所述,本發(fā)明旨在解決由保留站偵聽結(jié)果總線、并根據(jù)偵聽結(jié)果對指令進行 動態(tài)調(diào)度的現(xiàn)有技術(shù)中指令發(fā)射效率低的問題,并提供了一種指令調(diào)度技術(shù),以提高指令 發(fā)射流水線的效率及微處理器的整體性能。該指令調(diào)度技術(shù)的主要思路是,基于指令之間 的數(shù)據(jù)相關(guān)性,在保留站有空閑項時選擇所有操作數(shù)均已準備好的指令發(fā)射到保留站,由 此能夠有效提高指令發(fā)射的流水線效率。 本發(fā)明的上述及其他技術(shù)特征和有益效果,將通過參照附圖進行的優(yōu)選實施例介 紹得到更充分的闡述。
圖3給出了根據(jù)本發(fā)明實施例的指令調(diào)度裝置的框圖。 如圖3所示,本發(fā)明的指令調(diào)度裝置300用于對微處理器中從操作隊列100向保 留站200發(fā)射指令進行動態(tài)調(diào)度,包括指令寫入器310、操作數(shù)狀態(tài)更新器320、待發(fā)射判斷 器330和指令發(fā)射器。其中 指令寫入器310用于基于要寫入操作隊列100的譯碼后指令411與已存在于操作 隊列100中的有效指令420之間的數(shù)據(jù)相關(guān)性以及已經(jīng)寫回和正在寫回至操作隊列100的 指令執(zhí)行結(jié)果,來設(shè)置譯碼后指令411的各操作數(shù)的狀態(tài),并將設(shè)置后的譯碼后指令411作 為待寫入指令412寫入操作隊列100 ; 操作數(shù)狀態(tài)更新器320用于基于操作隊列100中各未發(fā)射指令421與指令執(zhí)行結(jié)
果正在寫回的指令之間的數(shù)據(jù)相關(guān)性,更新各未發(fā)射指令421的操作數(shù)的狀態(tài); 待發(fā)射判斷器330用于基于操作隊列100中各未發(fā)射指令421的各操作數(shù)的狀
態(tài),判斷操作隊列100中是否存在所有操作數(shù)均已準備好的待發(fā)射指令422 ;以及 指令發(fā)射器340用于在保留站200中存在空閑項時,將經(jīng)由待發(fā)射判斷器330判
定的待發(fā)射指令422發(fā)射至保留站200。
其中,操作隊列100中有效指令420包括尚未發(fā)射的未發(fā)射指令421和已發(fā)射但 尚未提交的已發(fā)射指令423,已經(jīng)寫回至操作隊列100的指令執(zhí)行結(jié)果通過查看有效指令 420獲知,而正在寫回至操作隊列100的指令執(zhí)行結(jié)果通過偵聽用以寫回指令執(zhí)行結(jié)果的 結(jié)果總線500而獲知。 圖3所示的指令調(diào)度裝置通過由指令寫入器310和操作數(shù)狀態(tài)更新器320基于指 令之間的數(shù)據(jù)相關(guān)性實時更新操作隊列中未發(fā)射指令的操作數(shù)狀態(tài),能夠有效確保進入保 留站的指令都是各操作數(shù)均已準備好的指令,進而能夠有效提高指令發(fā)射的流水線效率。
下面將分別參考圖4、圖5詳細描述本發(fā)明指令調(diào)度裝置300中指令寫入器310和 操作數(shù)狀態(tài)更新器320的優(yōu)選實施例。 如圖4所示,指令寫入器310可優(yōu)選為包括第一判斷器311、第一設(shè)置器312、相關(guān) 指令確定器313、第二判斷器314以及第二設(shè)置器315。其中 第一判斷器311用于將譯碼后指令411的操作數(shù)的源寄存器與操作隊列100中各 有效指令420的指令執(zhí)行結(jié)果的目的寄存器進行比較,以判斷操作隊列100中是否存在目 的寄存器與譯碼后指令的操作數(shù)的源寄存器為同一寄存器的有效指令,也即判斷操作隊列 100中是否存在與譯碼后指令411的操作數(shù)相關(guān)的有效指令; 第一設(shè)置器312用于在經(jīng)由第一判斷器311判定操作隊列100中不存在與譯碼 后指令411的操作數(shù)相關(guān)的有效指令時,將譯碼后指令411的操作數(shù)的狀態(tài)設(shè)置為已準備 好; 相關(guān)指令確定器313用于在經(jīng)由第一判斷器311判定操作隊列100中存在與譯碼 后指令411的操作數(shù)相關(guān)的有效指令時,將與該操作數(shù)相關(guān)的全部有效指令中距離譯碼后 指令411最近的有效指令確定為譯碼后指令411的該操作數(shù)的相關(guān)指令430 ;
第二判斷器314用于判斷相關(guān)指令430的指令執(zhí)行結(jié)果是否已經(jīng)寫回或正在寫 回;以及 第二設(shè)置器315,用于在經(jīng)由第二判斷器314判定相關(guān)指令430的指令執(zhí)行結(jié)果已 經(jīng)寫回或正在寫回時,將譯碼后指令411中相應的操作數(shù)的狀態(tài)設(shè)置為已準備好。
如圖5所示,操作數(shù)狀態(tài)更新器320可優(yōu)選為包括第三判斷器321和第三設(shè)置器 322。其中 第三判斷器321,用于判斷指令執(zhí)行結(jié)果正在寫回的指令是否為所述未發(fā)射指令 的操作數(shù)的相關(guān)指令;以及 第三設(shè)置器,用于在經(jīng)由所述第三判斷器判定指令執(zhí)行結(jié)果正在寫回的指令是所 述未發(fā)射指令的所述操作數(shù)的相關(guān)指令時,將所述未發(fā)射指令的所述操作數(shù)的狀態(tài)設(shè)置為 已準備好。 下面將具體到對操作隊列中用于保存指令的相關(guān)信息的操作隊列項的各個域進 行的操作,對上述指令調(diào)度裝置300進行更詳細的說明。 圖6示出了可應用于本發(fā)明指令調(diào)度裝置的,操作隊列中用于保存指令相關(guān)信息 的操作隊列項域構(gòu)成的示意圖。 如圖6所示,構(gòu)成操作隊列項的域至少包括有 Opcode :操作碼域,表示指令的具體操作類型,比如加法ADD、減法SUB、乘法MUL、 除法DIV等操作。
8
State :指令在操作隊列中的狀態(tài)位,可以如下設(shè)置該狀態(tài)位
"OO"表示操作隊列項處于空閑狀態(tài),可以接收新的指令;
"01"表示操作隊列項中存放指令,該指令尚未發(fā)射到保留站;
"10"表示該操作隊列項中指令已經(jīng)發(fā)射到保留站中。
其中,只要state域不等于"00",即表示該指令為有效指令。
Srcl :操作數(shù)1所在的源寄存器號。
Src2 :操作數(shù)2所在的源寄存器號。
Dest :存放指令執(zhí)行結(jié)果的目的寄存器號。
Qidl :表示操作數(shù)1的相關(guān)指令所在的操作隊列項號。 操作隊列中存在某條指令,其目的寄存器號與操作數(shù)1的寄存器號相等,則認為 該條指令與操作數(shù)1相關(guān);并且,將與操作數(shù)1相關(guān)的所有指令中距離當前指令最近的指令 確定為操作數(shù)1的相關(guān)指令。例如指令a "ADD Rl, R2, R3,,、指令b "ADD Rl, R2, R4,,、指令c "ADD R3, R2, Rl"是操
作隊列中的有效指令,指令a是操作隊列的第一條指令。盡管指令c的操作數(shù)2所在的源 寄存器Rl是指令b的目的寄存器,也是指令a的目的寄存器,由于指令b距離指令c最近, 使得指令c的操作數(shù)2 (Rl)的值來自于指令b的指令執(zhí)行結(jié)果,因此指令c的操作數(shù)2 (Rl) 的相關(guān)指令為指令b。 Qid2 :表示操作數(shù)2的相關(guān)指令所在的操作隊列項號。 Rdyl :如果在操作隊列中位于該指令之前的有效指令中,不存在操作數(shù)1的相關(guān) 指令,則操作數(shù)1的值來自于讀寄存器的值。 Rdy2 :如果在操作隊列中位于該指令之前的有效指令中,不存在操作數(shù)2的相關(guān) 指令,則操作數(shù)2的值來自于讀寄存器的值。 Wbl :表示操作數(shù)1的相關(guān)指令的指令執(zhí)行結(jié)果已經(jīng)寫回至操作隊列。 Wb2 :表示操作數(shù)2的相關(guān)指令的指令執(zhí)行結(jié)果已經(jīng)寫回至操作隊列。 Wb :表示指令已經(jīng)執(zhí)行完,并且指令執(zhí)行結(jié)果已經(jīng)寫回至操作隊列。該指令等待成
為操作隊列中的第一條指令后提交。 基于上述用于保存指令信息的操作隊列項的域構(gòu)成,在將譯碼后指令411寫入操 作隊列100時,指令寫入器310中的第一判斷器311將該指令的操作數(shù)1、操作數(shù)2的源寄 存器分別與操作隊列100中各有效指令420的目的寄存器進行比較(操作隊列100中的有 效指令420是指state域不為"00"的指令),比較是否是同一個寄存器,以使得第一設(shè)置 器312和/或相關(guān)指令確定器313、第二判斷器314、第二設(shè)置器315能夠相應根據(jù)比較結(jié) 果給Rdyl、Rdy2、 Qidl、Qid2、 Wbl、Wb2等域賦值。 其中,第一設(shè)置器312和相關(guān)指令確定器313通過設(shè)置譯碼后指令411中與操作 數(shù)l相對應的Qidl域和Rdyl域來設(shè)置操作數(shù)1的狀態(tài)。具體為在經(jīng)由第一判斷器311判 定操作隊列100中不存在目的寄存器與操作數(shù)1的源寄存器為同一寄存器的有效指令420 時,第一設(shè)置器312將Rdyl域設(shè)置為1,以表示操作數(shù)1來自于寄存器且已準備好;以及在 經(jīng)由第一判斷器311判定操作隊列100中存在目的寄存器與操作數(shù)1的源寄存器為同一寄 存器的有效指令420時,相關(guān)指令確定器313將與Rdyl域設(shè)置為0,并將與Qidl域設(shè)置為 相關(guān)指令430的操作隊列項號qid,以表示操作數(shù)1來自于相關(guān)指令430的指令執(zhí)行結(jié)果,
9且操作數(shù)1的狀態(tài)決定于相關(guān)指令430的指令執(zhí)行結(jié)果是否已經(jīng)寫回或正在寫回。
此外,第二設(shè)置器315通過設(shè)置譯碼后指令411中與操作數(shù)1相對應的Wbl域來設(shè)置操作數(shù)1的狀態(tài)。具體為在經(jīng)由第二判斷器314判定相關(guān)指令430的指令執(zhí)行結(jié)果已經(jīng)寫回或正在寫回時,第二設(shè)置器315將與Wbl域設(shè)置為l,以表示操作數(shù)l已準備好。
將參考圖7所示指令寫入器310的處理流程的優(yōu)選示例進行更詳細的說明如下
步驟S1,經(jīng)由第一判斷器311判斷操作隊列100中是否存在目的寄存器與操作數(shù)1的源寄存器為同一寄存器的有效指令,并基于判斷結(jié)果選擇性執(zhí)行下述步驟SIN或S1Y。
步驟S1N,在經(jīng)由第一判斷器311判定操作隊列100中不存在操作數(shù)1的相關(guān)指令時,第一設(shè)置器312將與操作數(shù)1相對應的Rdyl域設(shè)置為1 ,以表示操作數(shù)1的值來自于寄存器且已準備好。 步驟S1Y,在經(jīng)由第一判斷器311判定操作隊列100中存在目的寄存器與操作數(shù)1的源寄存器為同一寄存器的有效指令時,相關(guān)指令確定器313將與操作數(shù)1相關(guān)的有效指令中距離當前指令最近者確定為相關(guān)指令430,并將與操作數(shù)1相對應的Rdyl域設(shè)置為0,同時將與操作數(shù)1相對應的Qidl域設(shè)置為相關(guān)指令430的操作隊列項號qid,以表示操作數(shù)1的值來自于相關(guān)指令430的指令執(zhí)行結(jié)果,也即操作數(shù)1的狀態(tài)決定于相關(guān)指令430的指令執(zhí)行結(jié)果是否已經(jīng)寫回或正在寫回,就此執(zhí)行以下步驟S2(包括步驟S2-l和S2-2)。
步驟S2-1,經(jīng)由第二判斷器314判斷相關(guān)指令430的指令執(zhí)行結(jié)果是否已經(jīng)寫回;步驟S2-2,經(jīng)由第二判斷器314判斷結(jié)果總線500的Qid域值是否等于相關(guān)指令430的qid號,也即判斷相關(guān)指令430的指令執(zhí)行結(jié)果是否正在寫回。并且,基于步驟S2-l和S2-2的判斷結(jié)果選擇性執(zhí)行下述步驟S2N或S2Y。 需要說明的是,盡管圖7將步驟S2-l繪制為在步驟S2-2之前執(zhí)行,當本領(lǐng)域技術(shù)人員在掌握本發(fā)明的技術(shù)原理之后應能明白,步驟S2-l和S2-2均旨在于判斷操作數(shù)1是否準備好,兩者之間沒有必然的時序先后聯(lián)系,在具體實施中完全可根據(jù)個人喜好任意選擇步驟S2-l和S2-2的執(zhí)行時序。 步驟S2Y,在經(jīng)由第二判斷器314判定相關(guān)指令430的指令執(zhí)行結(jié)果已經(jīng)寫回或正在寫回時,第二設(shè)置器315將與操作數(shù)1相對應的Wbl域設(shè)置為1,以表示操作數(shù)1已準備好。 步驟S2N,在經(jīng)由第二判斷器314判定相關(guān)指令430的指令執(zhí)行結(jié)果不僅尚未寫回且也沒有被正在寫回時,第二設(shè)置器315保持與操作數(shù)1相對應的Wbl域值不變,以繼續(xù)表示操作數(shù)1的值來自于相關(guān)指令430的指令執(zhí)行結(jié)果且尚未準備好。 對于圖7,應能理解的是,雖然以操作數(shù)1為例進行了解釋,針對該譯碼后指令411的其它操作數(shù)也需進行類似的判斷和域值設(shè)置。 另一方面,基于上述用于保存指令信息的操作隊列項的域構(gòu)成,對于已存在于操作隊列100中的未發(fā)射指令421,操作數(shù)狀態(tài)更新器320中的第三判斷器321將該指令中分別與操作數(shù)1、操作數(shù)2相對應的Qidl、Qid2與結(jié)果總線500的Qid域值進行比較,以判斷其相關(guān)指令的指令執(zhí)行結(jié)果是否正在返回,并使得第三設(shè)置器322能夠根據(jù)比較結(jié)果給Rdyl、Rdy2、Wbl、Wb2等域賦值。 其中,第三設(shè)置器322通過更新未發(fā)射指令421中與操作數(shù)1相對應的Wbl域值來更新操作數(shù)l的狀態(tài),具體為基于未發(fā)射指令421中與操作數(shù)l相對應的Qidl域值,在
10經(jīng)由第三判斷器321判定指令執(zhí)行結(jié)果正在寫回的指令是該Qidl域值所指向的相關(guān)指令430時,第三設(shè)置器322將與操作數(shù)1相對應的Wbl域更新為1,以表示操作數(shù)1已準備好。
此外,基于未發(fā)射指令421中與操作數(shù)1相對應的Qidl域值,在Qidl域值所指向的相關(guān)指令430已提交的情況下,第三設(shè)置器322將與操作數(shù)1相對應的Rdyl域更新為1 。
將參考圖8所示操作數(shù)狀態(tài)更新器320的處理流程的優(yōu)選示例進行更詳細的說明如下 步驟S3,經(jīng)由第三判斷器321判斷結(jié)果總線500的Qid域值是否等于操作數(shù)1的相關(guān)指令430的qid號,也即判斷相關(guān)指令430的指令執(zhí)行結(jié)果是否正在寫回,并基于步驟S3的判斷結(jié)果選擇性執(zhí)行下述步驟S3N或S3Y。 步驟S3N,在經(jīng)由第三判斷器321判定相關(guān)指令430的指令執(zhí)行結(jié)果尚未正在寫回時,第三設(shè)置器322保持與操作數(shù)1相對應的Wbl域值不變,以繼續(xù)表示操作數(shù)1的值來自于相關(guān)指令430的指令執(zhí)行結(jié)果且尚未準備好。 步驟S3Y,在經(jīng)由第三判斷器321判定相關(guān)指令430的指令執(zhí)行結(jié)果正在寫回時,第三設(shè)置器322將與操作數(shù)1相對應的Wbl域值更新為1,以表示操作數(shù)1的值已準備好。
此外,當操作隊列中的指令被提交時,與被提交指令存在數(shù)據(jù)相關(guān)性的未發(fā)射指令中相應Rdy域需要相應地更新為1。這是因為,操作隊列中提交了的指令的指令執(zhí)行結(jié)果將寫回到寄存器中,從而與被提交指令存在數(shù)據(jù)相關(guān)的指令可直接從寄存器中讀值,所以Rdy域需要相應地置為1。繼續(xù)參照圖8具體而言 步驟S4,第三判斷器321還基于未發(fā)射指令421中與操作數(shù)1相對應的Qidl域值,判斷Qidl域值所指向的相關(guān)指令430是否已經(jīng)提交,并基于判斷結(jié)果選擇性執(zhí)行以下步驟S4N和S4Y。 步驟S4N,在經(jīng)由第三判斷器321判定相關(guān)指令430尚未提交時,第三設(shè)置器322保持與操作數(shù)1相對應的Rdyl域值不變,以繼續(xù)表示操作數(shù)1的值來自于相關(guān)指令430的指令執(zhí)行結(jié)果。 步驟S4Y,在經(jīng)由第三判斷器321判定相關(guān)指令430已提交時,第三設(shè)置器322將與操作數(shù)1相對應的Rdyl域值更新為1,以表示操作數(shù)1的值來自于讀寄存器。
對于圖8,類似地,應能理解的是,雖然以操作數(shù)1為例進行了解釋,針對該未發(fā)射指令421的其它操作數(shù)也需進行類似的判斷和域值更新。 通過如上所述經(jīng)由指令寫入器310和操作數(shù)狀態(tài)更新器320設(shè)置和實時更新操作隊列100中各未發(fā)射指令421的各操作數(shù)的狀態(tài),本發(fā)明指令調(diào)度裝置300中的待發(fā)射判斷器330通過基于各未發(fā)射指令421的各操作數(shù)的狀態(tài),判斷操作隊列中是否存在所有操作數(shù)均已準備好的待發(fā)射指令422。參照圖9具體而言 指令準備好是指指令的所有操作數(shù)都已經(jīng)準備好。而指令的操作數(shù)1準備好是指指令所在的操作隊列項的Rdyl域等于1 (參見圖9步驟S5),或者Wbl域為1 (參見圖9步驟S6),或者有效結(jié)果總線的qid號與Qidl號相等(參見圖9步驟S7)。其中,如果Rdyl為l,則操作數(shù)1的值來自于讀寄存器而獲得的值;如果Wbl為l,則操作數(shù)1的值來自于操作隊列中相關(guān)指令430的指令執(zhí)行結(jié)果;如果有效結(jié)果總線的qid號與qidl號相等,則操作數(shù)l的值來自于結(jié)果總線上的指令結(jié)果。當Rdyl域不為l時再判斷Wbl域。指令的其它操作數(shù)準備好的概念和上述操作數(shù)1準備好的概念一致。
在判斷完未發(fā)射指令421的操作數(shù)是否均已準備好之后,也即在確定待發(fā)射指令422之后,上述指令調(diào)度裝置300中的指令發(fā)射器340根據(jù)處理器的發(fā)射寬度以及處理器的結(jié)構(gòu)選擇發(fā)射策略。如果不存在待發(fā)射指令422,則在當前拍不發(fā)射指令;如果只有一條待發(fā)射指令422,則只發(fā)射一條指令。所述發(fā)射策略即可以實現(xiàn)單發(fā)射也可以實現(xiàn)雙發(fā)射,也可以擴展到實現(xiàn)更寬的發(fā)射寬度;以及既可以實現(xiàn)單發(fā)射,也可以實現(xiàn)雙發(fā)射或者多發(fā)射。
優(yōu)選地,可以將操作隊列100中操作數(shù)均已準備好的待發(fā)射指令422,根據(jù)指令操作類型進行分類,分為非乘、除操作的整型操作,乘、除操作的整型操作,浮點操作以及訪存操作??砂凑罩噶钸M入操作隊列的順序,找到操作隊列中每類指令的第一條操作數(shù)準備好的指令;然后根據(jù)訪存優(yōu)先級最高,非乘、除操作的整型操作優(yōu)先級第二,乘、除操作的整型操作優(yōu)先級第三,浮點操作優(yōu)先級最低的順序,選擇出兩條待發(fā)射指令422進行發(fā)射。具體流程可參見附圖ll所示。 需要說明的是,上述指令操作類型及優(yōu)先級順序僅旨在進行示例性說明。本領(lǐng)域技術(shù)人員應能理解,指令的分類以及優(yōu)先級的確定,在具體實施中,不同的處理器完全可根據(jù)實際需要不同而各自設(shè)定 此外,在選擇待發(fā)射指令發(fā)射422時還需要考慮相應的保留站200是否存在空閑項可用來存放從操作隊列中發(fā)射來的指令。如果保留站中存在空閑項,則將操作隊列100中各操作數(shù)均已準備好的待發(fā)射指令422發(fā)射到保留站200中。 另外,本發(fā)明還提供了與上述指令調(diào)度裝置相對應的指令調(diào)度方法。該指令調(diào)度方法包括指令寫入步驟,用于基于要寫入操作隊列的譯碼后指令與操作隊列中的有效指令之間的數(shù)據(jù)相關(guān)性、已經(jīng)寫回和正在寫回至操作隊列的指令執(zhí)行結(jié)果,來設(shè)置譯碼后指令的各操作數(shù)的狀態(tài),并將設(shè)置后的譯碼后指令作為待寫入指令寫入操作隊列;操作數(shù)狀態(tài)更新步驟,用于基于操作隊列中各未發(fā)射指令與指令執(zhí)行結(jié)果正在寫回的指令之間的數(shù)據(jù)相關(guān)性,更新各未發(fā)射指令的操作數(shù)的狀態(tài);待發(fā)射判斷步驟,用于基于各未發(fā)射指令的各操作數(shù)的狀態(tài),判斷操作隊列中是否存在所有操作數(shù)均已準備好的待發(fā)射指令;以及指令發(fā)射步驟,用于在保留站有空閑時,將經(jīng)由待發(fā)射判斷步驟所判定的待發(fā)射指令發(fā)射至保留站。 對于上述指令調(diào)度方法,前述針對指令調(diào)度裝置的描述均同樣適用。并且,本
領(lǐng)域技術(shù)人員還應能理解實現(xiàn)上述方法實施例的全部或部分步驟可通過程序指令相關(guān)
的硬件來完成;所述程序可以存儲于計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時包括上
述方法實施例中的全部或部分步驟;所述的存儲介質(zhì)包括ROM/RAM (Read Only Memory/
Random-Access Memory,只讀存儲器/隨機訪問內(nèi)存)、磁碟或光盤等。 下面將參考圖11A 圖111描述根據(jù)本發(fā)明指令調(diào)度方法的指令從譯碼到發(fā)射過
程的一個應用示例,以具體解釋本發(fā)明的技術(shù)原理。 如圖IIA所示譯碼后的指令寫入操作隊列,操作隊列具有空閑項。在本例中,譯碼后的指令寫入操作隊列需要l個時鐘周期(l個cycle);操作隊列中的指令發(fā)射到保留站中需要l個時鐘周期;訪存部件執(zhí)行LW指令需要4個時鐘周期;定點功能部件執(zhí)行非乘、除整型指令需要1個時鐘周期,執(zhí)行乘、除整型指令需要2個時鐘周期,浮點功能部件執(zhí)行浮點指令需要2個時鐘周期;提交指令需要1個時鐘周期。 1、如圖IIB所示,在第1時鐘周期的時鐘上升沿,LW 令寫到操作隊列的第一項中,其qid號為"000 "(表示操作隊列的第1項)。LW的操作數(shù)是準備好的,其Rdyl、Rdy2域為l。 2、如圖11C所示,在第2時鐘周期的時鐘上升沿,LW指令從操作隊列中發(fā)射到保留站,操作數(shù)的值來自于讀寄存器的值,LW指令所在的操作隊列項的狀態(tài)由"01"變?yōu)?10"。LW訪存需要4個時鐘周期,所以經(jīng)過第2時鐘周期、第3時鐘周期、第4時鐘周期、在第5時鐘周期的尾端結(jié)果總線送回訪存結(jié)果。同時在第2時鐘周期,MUL指令寫入到操作隊列中。MUL指令的操作數(shù)R1與LW相關(guān)且LW未寫回,所以Rdyl為0, Qidl域為"000" (LW指令所在的操作隊列項號),Wbl域為0 ;沒有與操作數(shù)R2相關(guān)的指令,Rdy2為1。在此拍,操作隊列中只有一條未發(fā)射且操作數(shù)準備好的指令,沒有定點、浮點指令,此時雙發(fā)射裝置只能發(fā)射一條有效指令。 3、如圖11D所示,在第3時鐘周期的時鐘上升沿,ADD指令寫入到操作隊列中。ADD的操作數(shù)Rl與LW指令相關(guān)且LW指令未寫回,所以Rdyl為0, Qidl域為"000 " (LW指令所在的操作隊列項號),Wbl域為0 ;ADD的操作數(shù)R3與MUL指令相關(guān)且MUL指令未寫回,所以Rdy2為0, Qid2域為"001 " (ADD1指令所在的操作隊列項號),Wb2域為0。在第3時鐘周期,沒有操作數(shù)準備好的指令,在第3時鐘周期沒有指令發(fā)射到保留站中。
4、如圖11E所示,在第4時鐘周期的時鐘上升沿,SUB指令寫入到操作隊列中。在操作隊列中沒有與SUB指令的操作數(shù)R4、 R5相關(guān)的指令,所以SUB指令所在的操作隊列項的Rdyl,Rdy2域為1,該指令是操作數(shù)準備好的。在第4時鐘周期,沒有操作數(shù)準備好的指令,在第4時鐘周期沒有指令發(fā)射到保留站中。 5、如圖11F所示,在第5時鐘周期的時鐘上升沿,F(xiàn)ADD指令寫入到操作隊列中。在操作隊列中沒有與FADD指令的操作數(shù)Fr7、 Fr8相關(guān)的指令,所以FADD指令所在的操作隊列項的Rdyl,Rdy2域為1,該指令是操作數(shù)準備好的。在第5時鐘周期,操作數(shù)準備好的SUB指令發(fā)射到保留站中,SUB指令所在操作隊列項的狀態(tài)由"01"變?yōu)?10"。在第5時鐘周期,結(jié)果總線送回LW訪存指令的結(jié)果。將有效結(jié)果總線的qid值"000"與操作隊列中的有效指令的Qidl、 Qid2域進行比較,得到qid號與MUL指令所在項的Qidl相等,與ADD指令所在項的Qidl相等。MUL指令的Rdy2為l,操作數(shù)2是準備好的,其值來自于讀寄存器的值Rdyl域和Wbl域為O,但是結(jié)果總線送回了 MUL指令的操作數(shù)l,所以MUL指令是準備好的,在下個時鐘周期可以發(fā)射。MUL指令也是操作數(shù)準備好的,在下個時鐘周期也是可以發(fā)射的。在本拍沒有未發(fā)射且操作數(shù)準備好的訪存指令、浮點指令,只有一條未發(fā)射且操作數(shù)準備好的整型指令,所以此拍只有一條指令被發(fā)射。 6、如圖11G所示,在第6時鐘周期的時鐘上升沿,LW指令結(jié)果寫回,LW指令所在隊列項的Wb域置為"l"。 MUL, ADD指令的Wbl域相應的置為1。 MUL指令從操作隊列中發(fā)射到保留站中,MUL指令所在的操作隊列項的狀態(tài)由"01"變?yōu)?10"。 SUB指令結(jié)果寫回,SUB指令所在的隊列項的Wb域置為"1"。 7、如圖IIH所示,在第7時鐘周期的時鐘上升沿,LW指令提交,LW指令所在隊列項的狀態(tài)由"10"變?yōu)?00"。 MUL,ADD指令的Rdyl域相應的置為1。執(zhí)行MUL指令需要兩拍,第7時鐘周期的尾端,MUL、 FADD指令執(zhí)行結(jié)束,整型結(jié)果總線送回MUL指令的結(jié)果,浮點結(jié)果總線送回FADD指令的結(jié)果。與MUL指令相關(guān)的ADD的操作數(shù)R2準備好,其值來自于結(jié)果總線返回的結(jié)果。在下個時鐘周期的上升沿ADD指令可以被發(fā)射。
8、如圖11I所示,在第8時鐘周期的時鐘上升沿,ADD指令發(fā)射到保留站中,其狀 態(tài)由"01"變?yōu)?10",整型結(jié)果總線和浮點結(jié)果總線的值分別寫回到MUL指令、FADD指令所 在的操作隊列項,MUL、FADD指令所在的操作隊列項的Wb域置分別為1。 ADD指令發(fā)射到保 留站中,ADD指令所在操作隊列項的狀態(tài)域由"01"變?yōu)?10"。在第8時鐘周期的尾端,結(jié) 果總線送回ADD指令的結(jié)果。 9、在第9時鐘周期的時鐘上升沿,MUL指令提交,MUL指令所在隊列項的狀態(tài)由 "10"變?yōu)?00"。結(jié)果總線送回的ADD指令的結(jié)果寫入操作隊列中,ADD指令所在的操作隊 列項的Wb域置為1。在后續(xù)的時鐘周期里,ADD, SUB、 FADD指令也將相繼提交。
需要聲明的是,上述發(fā)明內(nèi)容及具體實施方式
僅旨在證明本發(fā)明所提供技術(shù)方案 的實際應用,不應解釋為對本發(fā)明保護范圍的限定。本領(lǐng)域技術(shù)人員在本發(fā)明的精神和原 理內(nèi),當可作各種修改、等同替換、或改進。本發(fā)明的保護范圍以所附權(quán)利要求書為準。
權(quán)利要求
一種指令調(diào)度裝置,用于對微處理器中從操作隊列向保留站發(fā)射指令進行動態(tài)調(diào)度,其特征在于,包括指令寫入器,用于基于要寫入所述操作隊列的譯碼后指令與所述操作隊列中的有效指令之間的數(shù)據(jù)相關(guān)性、已經(jīng)寫回和正在寫回至所述操作隊列的指令執(zhí)行結(jié)果,來設(shè)置所述譯碼后指令的各操作數(shù)的狀態(tài),并將設(shè)置后的所述譯碼后指令作為待寫入指令寫入所述操作隊列;操作數(shù)狀態(tài)更新器,用于基于所述操作隊列中各未發(fā)射指令與指令執(zhí)行結(jié)果正在寫回的指令之間的數(shù)據(jù)相關(guān)性,更新各所述未發(fā)射指令的操作數(shù)的狀態(tài);待發(fā)射判斷器,用于基于各所述未發(fā)射指令的各操作數(shù)的狀態(tài),判斷所述操作隊列中是否存在所有操作數(shù)均已準備好的待發(fā)射指令;以及指令發(fā)射器,用于在所述保留站有空閑時,將經(jīng)由所述待發(fā)射判斷器所判定的待發(fā)射指令發(fā)射至所述保留站。
2. 根據(jù)權(quán)利要求1所述的指令調(diào)度裝置,其特征在于,所述指令寫入器和所述操作數(shù) 狀態(tài)更新器通過偵聽結(jié)果總線來確定指令執(zhí)行結(jié)果以及指令執(zhí)行結(jié)果正在寫回的指令的 操作隊列項號,并根據(jù)所述操作隊列項號將所述指令執(zhí)行結(jié)果寫回到所述操作隊列中所述 指令所在的操作隊列項內(nèi)。
3. 根據(jù)權(quán)利要求2所述的指令調(diào)度裝置,其特征在于,所述指令寫入器包括 第一判斷器,用于將所述譯碼后指令的操作數(shù)的源寄存器與所述操作隊列中各有效指令的指令執(zhí)行結(jié)果的目的寄存器進行比較,以判斷所述操作隊列中是否存在目的寄存器與 所述譯碼后指令的所述操作數(shù)的源寄存器為同一寄存器的有效指令;第一設(shè)置器,用于在經(jīng)由所述第一判斷器判定所述操作隊列中不存在目的寄存器與所 述譯碼后指令的所述操作數(shù)的源寄存器為同一寄存器的有效指令時,將所述譯碼后指令的 所述操作數(shù)的狀態(tài)設(shè)置為已準備好;相關(guān)指令確定器,用于在經(jīng)由所述第一判斷器判定所述操作隊列中存在目的寄存器與 所述譯碼后指令的所述操作數(shù)的源寄存器為同一寄存器的有效指令時,將目的寄存器與所 述譯碼后指令的所述操作數(shù)的源寄存器為同一寄存器的全部有效指令中距離所述譯碼后 指令最近的有效指令確定為所述譯碼后指令的所述操作數(shù)的相關(guān)指令;第二判斷器,用于判斷所述相關(guān)指令的指令執(zhí)行結(jié)果是否已經(jīng)寫回或正在寫回;以及第二設(shè)置器,用于在經(jīng)由所述第二判斷器判定所述相關(guān)指令的指令執(zhí)行結(jié)果已經(jīng)寫回 或正在寫回時,將所述譯碼后指令的所述操作數(shù)的狀態(tài)設(shè)置為已準備好。
4. 根據(jù)權(quán)利要求3所述的指令調(diào)度裝置,其特征在于,所述操作數(shù)狀態(tài)更新器包括 第三判斷器,用于判斷指令執(zhí)行結(jié)果正在寫回的指令是否為所述未發(fā)射指令的操作數(shù)的相關(guān)指令;以及第三設(shè)置器,用于在經(jīng)由所述第三判斷器判定指令執(zhí)行結(jié)果正在寫回的指令是所述未 發(fā)射指令的所述操作數(shù)的相關(guān)指令時,將所述未發(fā)射指令的所述操作數(shù)的狀態(tài)設(shè)置為已準 備好。
5. 根據(jù)權(quán)利要求1 4中任一項所述的指令調(diào)度裝置,其特征在于,所述指令發(fā)射器根 據(jù)所述微處理器的寬度選擇單發(fā)射策略或多發(fā)射策略來進行所述待發(fā)射指令的發(fā)射。
6. 根據(jù)權(quán)利要求5所述的指令調(diào)度裝置,其特征在于,當選擇所述單發(fā)射策略時,所述指令發(fā)射器按照時間順序或者優(yōu)先級來進行所述待發(fā)射指令的發(fā)射。
7. 根據(jù)權(quán)利要求5所述的指令調(diào)度裝置,其特征在于還包括用于根據(jù)操作類型對所 述操作隊列中的指令進行分類的指令分類器;并且所述保留站包括分別與各所述操作類型相對應的子保留站;其中,當選擇所述多發(fā)射策略時,所述指令發(fā)射器基于所述指令分類器的分類結(jié)果,在 與所述待發(fā)射指令的操作類型相對應的子保留站有空閑時,將所述待發(fā)射指令發(fā)射至與所 屬操作類型相對應的子保留站。
8. —種指令調(diào)度方法,用于對微處理器中從操作隊列向保留站發(fā)射指令進行動態(tài)調(diào) 度,其特征在于,包括指令寫入步驟,用于基于要寫入所述操作隊列的譯碼后指令與所述操作隊列中的有效 指令之間的數(shù)據(jù)相關(guān)性、已經(jīng)寫回和正在寫回至所述操作隊列的指令執(zhí)行結(jié)果,來設(shè)置所 述譯碼后指令的各操作數(shù)的狀態(tài),并將設(shè)置后的所述譯碼后指令作為待寫入指令寫入所述 操作隊列;操作數(shù)狀態(tài)更新步驟,用于基于所述操作隊列中各未發(fā)射指令與指令執(zhí)行結(jié)果正在寫 回的指令之間的數(shù)據(jù)相關(guān)性,更新各所述未發(fā)射指令的操作數(shù)的狀態(tài);待發(fā)射判斷步驟,用于基于各所述未發(fā)射指令的各操作數(shù)的狀態(tài),判斷所述操作隊列 中是否存在所有操作數(shù)均已準備好的待發(fā)射指令;以及指令發(fā)射步驟,用于在所述保留站有空閑時,將經(jīng)由所述待發(fā)射判斷步驟所判定的待 發(fā)射指令發(fā)射至所述保留站。
9. 根據(jù)權(quán)利要求8所述的指令調(diào)度裝置,其特征在于,在所述指令寫入步驟和所述操 作數(shù)狀態(tài)更新步驟中,通過偵聽結(jié)果總線來確定指令執(zhí)行結(jié)果以及指令執(zhí)行結(jié)果正在寫回 的指令的操作隊列項號,并根據(jù)所述操作隊列項號將所述指令執(zhí)行結(jié)果寫回到所述操作隊 列中所述指令所在的操作隊列項內(nèi)。
10. 根據(jù)權(quán)利要求9所述的指令調(diào)度裝置,其特征在于,所述指令寫入步驟包括 第一判斷步驟,用于將所述譯碼后指令的操作數(shù)的源寄存器與所述操作隊列中各有效指令的指令執(zhí)行結(jié)果的目的寄存器進行比較,以判斷所述操作隊列中是否存在目的寄存器 與所述譯碼后指令的所述操作數(shù)的源寄存器為同一寄存器的有效指令;第一設(shè)置步驟,用于在經(jīng)由所述第一判斷步驟判定所述操作隊列中不存在目的寄存器 與所述譯碼后指令的所述操作數(shù)的源寄存器為同一寄存器的有效指令時,將所述譯碼后指 令的所述操作數(shù)的狀態(tài)設(shè)置為已準備好;相關(guān)指令確定步驟,用于在經(jīng)由所述第一判斷步驟判定所述操作隊列中存在目的寄存 器與所述譯碼后指令的所述操作數(shù)的源寄存器為同一寄存器的有效指令時,將目的寄存器 與所述譯碼后指令的所述操作數(shù)的源寄存器為同一寄存器的全部有效指令中距離所述譯 碼后指令最近的有效指令確定為所述譯碼后指令的所述操作數(shù)的相關(guān)指令;第二判斷步驟,用于判斷所述相關(guān)指令的指令執(zhí)行結(jié)果是否已經(jīng)寫回或正在寫回;以及第二設(shè)置步驟,用于在經(jīng)由所述第二判斷步驟判定所述相關(guān)指令的指令執(zhí)行結(jié)果已經(jīng) 寫回或正在寫回時,將所述譯碼后指令的所述操作數(shù)的狀態(tài)設(shè)置為已準備好。
11. 根據(jù)權(quán)利要求io所述的指令調(diào)度裝置,其特征在于,所述操作數(shù)狀態(tài)更新步驟包括第三判斷步驟,用于判斷指令執(zhí)行結(jié)果正在寫回的指令是否為所述未發(fā)射指令的操作 數(shù)的相關(guān)指令;以及第三設(shè)置步驟,用于在經(jīng)由所述第三判斷步驟判定指令執(zhí)行結(jié)果正在寫回的指令是所 述未發(fā)射指令的所述操作數(shù)的相關(guān)指令時,將所述未發(fā)射指令的所述操作數(shù)的狀態(tài)設(shè)置為 已準備好。
12. 根據(jù)權(quán)利要求8 11中任一項所述的指令調(diào)度裝置,其特征在于,在所述指令發(fā)射 步驟中,根據(jù)所述微處理器的寬度選擇單發(fā)射策略或多發(fā)射策略來進行所述待發(fā)射指令的 發(fā)射。
13. 根據(jù)權(quán)利要求12所述的指令調(diào)度裝置,其特征在于,當選擇所述單發(fā)射策略時,在 所述指令發(fā)射步驟中按照時間順序或者優(yōu)先級來進行所述待發(fā)射指令的發(fā)射。
14. 根據(jù)權(quán)利要求12所述的指令調(diào)度裝置,其特征在于還包括用于根據(jù)操作類型對所述操作隊列中的指令進行分類的指令分類步驟;并且 所述保留站包括分別與各所述操作類型相對應的子保留站;其中,當選擇所述多發(fā)射策略時,在所述指令發(fā)射步驟中基于所述指令分類步驟的分 類結(jié)果,在與所述待發(fā)射指令的操作類型相對應的子保留站有空閑時,將所述待發(fā)射指令 發(fā)射至與所屬操作類型相對應的子保留站。
全文摘要
對微處理器中從操作隊列向保留站發(fā)射指令進行動態(tài)調(diào)度的裝置和方法,包括指令寫入步驟,基于要寫入操作隊列的譯碼后指令與操作隊列中的有效指令之間的數(shù)據(jù)相關(guān)性、已經(jīng)寫回和正在寫回的指令執(zhí)行結(jié)果,設(shè)置譯碼后指令的各操作數(shù)的狀態(tài)后將其寫入;操作數(shù)狀態(tài)更新步驟,基于操作隊列中各未發(fā)射指令與指令執(zhí)行結(jié)果正在寫回的指令之間的數(shù)據(jù)相關(guān)性,更新各未發(fā)射指令的操作數(shù)的狀態(tài);待發(fā)射判斷步驟,基于各未發(fā)射指令的各操作數(shù)的狀態(tài),判斷是否存在所有操作數(shù)均已準備好的待發(fā)射指令;以及指令發(fā)射步驟,在保留站有空閑時,將所判定的待發(fā)射指令發(fā)射至保留站。通過基于指令之間的數(shù)據(jù)相關(guān)性來實現(xiàn)操作數(shù)已準備好的指令發(fā)射到保留站,能夠有效提高流水線效率。
文檔編號G06F9/38GK101710272SQ20091023669
公開日2010年5月19日 申請日期2009年10月28日 優(yōu)先權(quán)日2009年10月28日
發(fā)明者徐翠萍, 李祖松, 汪文祥, 郝守青 申請人:北京龍芯中科技術(shù)服務(wù)中心有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1