[發(fā)明專利]用于使用依賴性消除的多階段寄存器重命名的方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201310333130.2 | 申請(qǐng)日: | 2013-08-02 |
| 公開(公告)號(hào): | CN103577159B | 公開(公告)日: | 2016-11-30 |
| 發(fā)明(設(shè)計(jì))人: | H·杰克遜 | 申請(qǐng)(專利權(quán))人: | 想象力科技有限公司 |
| 主分類號(hào): | G06F9/38 | 分類號(hào): | G06F9/38 |
| 代理公司: | 永新專利商標(biāo)代理有限公司 72002 | 代理人: | 劉瑜;王英 |
| 地址: | 英國赫*** | 國省代碼: | 英國;GB |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 使用 依賴性 消除 階段 寄存器 重命名 方法 裝置 | ||
背景技術(shù)
亂序處理器可以通過以下方式提供改進(jìn)的計(jì)算性能:以與程序中的順序不同的次序來執(zhí)行指令,使得在指令的輸入數(shù)據(jù)可用時(shí)執(zhí)行指令,而不是等待程序中的之前的指令被執(zhí)行。為了允許指令在處理器上亂序運(yùn)行,能夠?qū)χ噶钏褂玫募拇嫫鬟M(jìn)行重命名是非常有用的。這使得能夠從指令中消除“讀后寫”(WAR)依賴性,這是因?yàn)檫@些并不是真正的依賴性。通過使用寄存器重命名以及消除這些依賴性,可以不按程序次序執(zhí)行更多的指令,并且進(jìn)一步提高了性能。通過保持關(guān)于在指令中命名的哪些寄存器(稱作結(jié)構(gòu)寄存器)被映射到處理器的物理寄存器上的映射,來執(zhí)行寄存器重命名。該映射可以被稱作“重命名映射”、“寄存器映射”、“寄存器重命名映射”、“寄存器別名表”(RAT)或其它類似的術(shù)語。
通常在每個(gè)周期中在多個(gè)指令上執(zhí)行重命名,但是在一個(gè)周期中被重命名的一組指令中的數(shù)據(jù)依賴性意味著不能完全并行地進(jìn)行操作。每次對(duì)目標(biāo)寄存器進(jìn)行重命名(即在用當(dāng)前可用的物理寄存器替換結(jié)構(gòu)寄存器的情況下),就對(duì)重命名映射(即重命名映射中的數(shù)據(jù))進(jìn)行更新。(所述一組中的)將來的讀取隨后必須使用更新的映射,而不是該周期起始時(shí)存在的映射。為了解決這一問題,可以使用從每個(gè)目標(biāo)寄存器重命名操作的結(jié)果到每個(gè)將來的源寄存器讀取的轉(zhuǎn)發(fā)路徑。然而,這會(huì)迅速地變得十分復(fù)雜,并且不能很好的擴(kuò)展(例如在一組中處理的指令的數(shù)量增加的情況中)。
已經(jīng)提出了一種使用兩條流水線重命名塊的兩階段重命名方法。該方法在兩個(gè)周期上操作,并且采用的是在中間點(diǎn)處而不是在時(shí)鐘邊沿處使用鎖存的更異步的方式。在第一個(gè)周期執(zhí)行寫入而在第二個(gè)周期執(zhí)行讀取,這導(dǎo)致了復(fù)雜性的增加,這是因?yàn)槌艘唤M當(dāng)中的依賴性以外,現(xiàn)在在當(dāng)前的一組指令與時(shí)間上的下一組指令之間存在額外的依賴性,原因在于這兩個(gè)組在單個(gè)周期內(nèi)更新重命名映射/從重命名映射進(jìn)行讀取。
如下描述的實(shí)施例不局限于解決用于寄存器重命名的已知方法和裝置的任何或全部缺點(diǎn)的實(shí)現(xiàn)。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡化形式介紹構(gòu)思的精粹,下文在具體實(shí)施方式中進(jìn)一步對(duì)這些構(gòu)思進(jìn)行描述。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用作協(xié)助確定要求保護(hù)的主題的范圍。
描述了使用依賴性消除的多階段寄存器重命名。在實(shí)施例中,在兩階段中對(duì)寄存器進(jìn)行重命名的。第一階段涉及消除一組指令中的全部依賴性,其中,所述一組指令正被一起重命名。隨后最終階段使用重命名映射并行地對(duì)所有寄存器進(jìn)行重命名。在各個(gè)實(shí)施例中,通過使用固定的映射對(duì)每個(gè)指令中的目標(biāo)寄存器進(jìn)行重命名,來在第一階段中消除依賴性,并且在一些實(shí)施例中,固定的映射基于所述一組指令中的目標(biāo)寄存器的位置。依賴寄存器也是在第一階段中被重名命的,所述依賴寄存器是在一條指令中被讀取但已經(jīng)在所述一組指令中的之前指令中被寫入的寄存器階段。在最終階段中,除了執(zhí)行重命名以外,還更新重命名映射。
第一方案提供了一種亂序處理器中寄存器重命名的方法,包括:在第一階段中,使用在硬件邏輯中定義的固定映射來消除一組指令中的依賴性;以及在最終階段中,使用重命名映射并行地對(duì)所述一組指令中的全部寄存器進(jìn)行重命名。
使用在硬件邏輯中定義的固定映射來消除一組指令中的依賴性可以包括:使用所述固定映射,用一組額外的寄存器中的一個(gè)來對(duì)所述一組指令中的全部目標(biāo)寄存器和任意依賴寄存器進(jìn)行重命名;并且將使用了哪一個(gè)額外寄存器來對(duì)每一個(gè)目標(biāo)寄存器進(jìn)行重命名的細(xì)節(jié)傳遞到所述最終階段。
目標(biāo)寄存器與額外寄存器之間的固定映射可以基于所述一組指令中的每一個(gè)目標(biāo)寄存器的物理位置。
所述最終階段可以進(jìn)一步包括:更新所述重命名映射。
所述重命名映射可以包括與每一個(gè)額外寄存器相關(guān)聯(lián)的條目。
更新所述重命名映射可以包括:基于從第一階段傳遞的細(xì)節(jié)更新所述重命名映射中的與每一個(gè)目標(biāo)寄存器相關(guān)聯(lián)的條目;以及更新所述重命名映射中的與每一個(gè)額外寄存器相關(guān)聯(lián)的條目,以將每一個(gè)額外寄存器映射到未分配的物理寄存器。
該方法可以進(jìn)一步包括:存取未分配的物理寄存器的列表。
所述固定映射可以獨(dú)立于任何之前的狀態(tài)。
該方法可以進(jìn)一步包括:在第一階段和最終階段之間執(zhí)行優(yōu)化操作。
所述一組指令可以包括N條指令,并且所述一組額外寄存器可以包括N個(gè)額外寄存器,其中N為整數(shù)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于想象力科技有限公司,未經(jīng)想象力科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310333130.2/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。





