專利名稱:使用多塊物理寄存器映射表的寄存器重命名系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本公開一般涉及處理器架構(gòu)領(lǐng)域,并且更為特別地涉及超標(biāo)量體系結(jié)構(gòu)的處理器
中的寄存器重命名。
背景技術(shù):
—般而言,處理器是一種可以運行計算機程序以執(zhí)行算術(shù)計算、數(shù)據(jù)置換等等的 設(shè)備。微處理器是這樣一種類型的處理器,其將處理器的大多數(shù)功能或所有功能都合并在 單個集成電路上。超標(biāo)量體系結(jié)構(gòu)的微處理器是通過同時將多個指令分派給處理器中的冗 余的運行資源(也稱為功能單元)而能夠在一個時鐘周期中運行不止一個指令的微處理 器。當(dāng)運行指令和微操作時,處理器通常從寄存器讀取源操作數(shù)并將結(jié)果或目標(biāo)操作數(shù)存 儲在寄存器中。寄存器是處理器內(nèi)的臨時存儲單元,與其他地方的可用存儲器相比,寄存器 的內(nèi)容可以被更快地訪問,并且寄存器通常被用于保存供處理器使用的算術(shù)和其他結(jié)果。 一個給定的寄存器可包含多個比特,例如8比特、16比特或32比特,并且可通過相應(yīng)的寄存 器標(biāo)識符諸如寄存器號來進行訪問。 寄存器重命名是在超標(biāo)量體系結(jié)構(gòu)的處理器中用來允許并行運行指令的各種技 術(shù)中的一種。因為處理器的程序指明的寄存器常常比硬件中能夠?qū)崿F(xiàn)的寄存器要少,所以 一個給定的超標(biāo)量體系結(jié)構(gòu)的處理器實現(xiàn)常常具有比程序中所指明的寄存器數(shù)目更多的 寄存器。在通常被稱為寄存器重命名的階段,某個程序所使用的多個通用架構(gòu)寄存器被關(guān) 聯(lián)到或者被映射到該超標(biāo)量體系結(jié)構(gòu)的處理器中的多個物理寄存器。例如,在可以發(fā)出多 至4條指令供并行執(zhí)行的超標(biāo)量體系結(jié)構(gòu)的處理器中,物理寄存器文件中的多至四個空物 理寄存器必須是可用的,以便允許在每個時鐘周期多至4個架構(gòu)寄存器可被重命名。
相關(guān)聯(lián)的架構(gòu)寄存器與相應(yīng)的物理寄存器之間的關(guān)系通常被記錄在物理寄存器 映射表(PRMT)的項中。PRMT中的每個項記錄物理寄存器文件中的相應(yīng)的物理寄存器的狀 態(tài),例如相應(yīng)的物理寄存器是否是空(并且因此是否可用于存儲相關(guān)聯(lián)的架構(gòu)寄存器的數(shù) 據(jù))。已解碼的程序指令所使用的架構(gòu)寄存器被關(guān)聯(lián)到相應(yīng)的物理寄存器,并且每個架構(gòu)寄 存器的標(biāo)識符例如地址也被記錄在與相關(guān)聯(lián)的物理寄存器相聯(lián)系的PRMT項中。因此,PRMT 記錄每個物理寄存器的狀態(tài)以及架構(gòu)寄存器與物理寄存器的關(guān)聯(lián)/映射信息。隨著程序指 令的運行,從一個時鐘周期到另一個時鐘周期,被配置用于存儲相關(guān)聯(lián)的架構(gòu)寄存器的數(shù) 據(jù)的每個物理寄存器的狀態(tài)發(fā)生變化,并且在PRMT中對已配置的物理寄存器的狀態(tài)的這 種變化進行跟蹤。已配置的物理寄存器不能被用于另一架構(gòu)寄存器,直到其所關(guān)聯(lián)到的當(dāng) 前架構(gòu)寄存器被程序指令釋放為止。 物理寄存器越多,使用的物理寄存器文件就越大,使用諸如八十項的寄存器文件 這樣的大的物理寄存器文件在近來變得越來越普遍。使用大量的物理寄存器有助于減少發(fā) 生由于指令依賴所帶來的管道延遲,從而允許一次發(fā)出更多的指令。因此,PRMT中的項數(shù) 隨著物理寄存器的數(shù)目增加而增加。然而,在超標(biāo)量體系結(jié)構(gòu)的處理器中,大的PRMT相比 小的PRMT而言使得更難找到指示關(guān)聯(lián)的物理寄存器為空的項。另外,用傳統(tǒng)的專用集成電
11路(ASIC)設(shè)計方法和結(jié)構(gòu)來實現(xiàn)的更大的PRMT傾向于需要更大的電路面積、增加路徑延 遲,并且結(jié)果產(chǎn)生更高的功耗。因為路徑延遲和功耗是處理器設(shè)計中的兩個關(guān)鍵因素并且 影響性能,所以理想的是在對性能只有最小影響的情況下實現(xiàn)用于寄存器重命名的更大的 P麗。
發(fā)明內(nèi)容
在一方面,一種將架構(gòu)寄存器關(guān)聯(lián)到物理寄存器的寄存器重命名系統(tǒng)包括具有多 個項的物理寄存器映射表和重命名邏輯。該映射表的每個項都指示相應(yīng)的物理寄存器的狀 態(tài)。映射表具有多個非重疊的段,其中每個段具有相應(yīng)的映射表項。重命名邏輯被耦合用 以并行地搜索多個映射表段,以識別每個都指示相應(yīng)的物理寄存器處于第一狀態(tài)的項。該 重命名邏輯選擇性地將多個架構(gòu)寄存器中的每個關(guān)聯(lián)到相應(yīng)的被識別為處于第一狀態(tài)的 物理寄存器。 在另一方面,一種處理器中的寄存器重命名系統(tǒng)包括第一寄存器塊、第二寄存器 塊和被耦合到該第一和第二寄存器塊的搜索邏輯。第一塊中的每個寄存器存儲物理寄存器 映射表的第一段中的相應(yīng)項,其指示相應(yīng)的物理寄存器的多個狀態(tài)中的一個。第二塊中的 每個寄存器存儲物理寄存器映射表的第二段中的相應(yīng)項,其指示相應(yīng)的物理寄存器的多個 狀態(tài)中的一個。搜索邏輯并行地搜索第一和第二寄存器塊,以識別第一和第二塊中的所存 儲的相應(yīng)的映射表項指示相應(yīng)的物理寄存器處于第一狀態(tài)的寄存器。 在另一方面,一種將架構(gòu)寄存器關(guān)聯(lián)到物理寄存器的寄存器重命名系統(tǒng)包括第一 寄存器塊、第二寄存器塊、被耦合到該第一寄存器塊的第一檢查邏輯、被耦合到該第一寄存 器塊的第二檢查邏輯、被耦合到該第二寄存器塊的第三檢查邏輯、以及被耦合到該第二寄 存器塊的第四檢查邏輯。第一寄存器塊存儲物理寄存器映射表的第一部分,其中第一塊中 的每個寄存器存儲映射表的第一部分中的相應(yīng)項。第二寄存器塊存儲物理寄存器映射表的 第二部分,其中第二塊中的每個寄存器存儲映射表的第二部分中的相應(yīng)項。第一檢查邏輯 被耦合到第一寄存器塊以在第一時鐘周期中從第一塊的第一端朝著第一塊的與第一端相 對的第二端來搜索第一塊中的寄存器,以識別映射表的第一部分中的其中每個都指示相應(yīng) 的物理寄存器為空的項。第二檢查邏輯被耦合到第一寄存器塊以在第一時鐘周期中從第一 塊的第二端朝著第一塊的第一端來搜索第一塊中的寄存器,以識別映射表的第一部分中的 其中每個都指示相應(yīng)的物理寄存器為空的項。第三檢查邏輯被耦合到第二寄存器塊以在第 一時鐘周期中從第二塊的第一端朝著第二塊的與第一端相對的第二端來搜索第二塊中的 寄存器,以識別映射表的第二部分中的其中每個都指示相應(yīng)的物理寄存器為空的項。第四 檢查邏輯被耦合到第二寄存器塊以在第一時鐘周期中從第二塊的第二端朝著第二塊的第 一端來搜索第二塊中的寄存器,以識別映射表的第二部分中的其中每個都指示相應(yīng)的物理 寄存器為空的項。 在一個方面,一種處理器包括物理寄存器映射表、搜索邏輯和映射邏輯。物理寄存 器映射表具有多個項,其中該映射表的每個項都指示相應(yīng)的物理寄存器的狀態(tài)。搜索邏輯 被耦合用以并行地搜索映射表的多個段以識別其中每個均指示相應(yīng)的物理寄存器處于第 一狀態(tài)的項。搜索邏輯所搜索的每段映射表具有的相應(yīng)的映射表項與搜索邏輯所搜索的另 一段映射表中的項不相同。映射邏輯被耦合到搜索邏輯并接收多個架構(gòu)寄存器標(biāo)識符,其中每個標(biāo)識符指示相應(yīng)的架構(gòu)寄存器。映射邏輯將接收到的每個架構(gòu)寄存器標(biāo)識符映射到 相應(yīng)映射表段中的指示相應(yīng)的物理表處于第一狀態(tài)的相應(yīng)項。 在一方面,一種基于處理器的系統(tǒng)包括輸入設(shè)備、輸出設(shè)備、數(shù)據(jù)存儲設(shè)備以及耦 合到該輸入設(shè)備、輸出設(shè)備和數(shù)據(jù)存儲設(shè)備的處理器。該處理器包括多個寄存器塊、被耦合 到該寄存器塊的搜索邏輯、以及被耦合到該寄存器塊和搜索邏輯的映射邏輯。每個寄存器 塊存儲一段物理寄存器映射表以將映射表的相應(yīng)項存儲在相應(yīng)寄存器塊的每個寄存器中, 每個項指示相應(yīng)的物理寄存器的狀態(tài)。搜索邏輯同時搜索寄存器塊中的第一塊和第二塊, 以識別第一塊和第二塊中的存儲指示著相應(yīng)的物理寄存器處于第一狀態(tài)的相應(yīng)項的寄存 器。映射邏輯接收多個架構(gòu)寄存器標(biāo)識符,其中每個標(biāo)識符標(biāo)識相應(yīng)的架構(gòu)寄存器,并且 將每個架構(gòu)寄存器標(biāo)識符映射到該第一塊和第二塊中的被識別為存儲著指示相應(yīng)的物理 寄存器處于第一狀態(tài)的相應(yīng)項的相應(yīng)寄存器,以將每個架構(gòu)寄存器關(guān)聯(lián)到對應(yīng)的物理寄存 器。 在一方面,一種在處理器中執(zhí)行寄存器重命名的方法同時搜索第一段映射表和第
二段映射表以識別該映射表中的其中每個均指示相應(yīng)的物理寄存器處于第一狀態(tài)的項。對 于多個架構(gòu)寄存器,該方法將與每個架構(gòu)寄存器相關(guān)的數(shù)據(jù)存儲在被識別為處于第一狀態(tài) 的物理寄存器中的相應(yīng)一個中,以將架構(gòu)寄存器關(guān)聯(lián)到被識別為處于第一狀態(tài)的物理寄存器。 在另一方面, 一種在處理器中執(zhí)行寄存器重命名的方法將物理寄存器映射表的項 存儲在多個寄存器塊中,以使得相應(yīng)數(shù)目的項被存儲在寄存器塊中的相應(yīng)寄存器塊中,每 個項分別指示相應(yīng)的物理寄存器的狀態(tài)。該方法還在第一時鐘周期中按第一方向和不同于 該第一方向的第二方向來搜索第一個寄存器塊,以識別其中每個都指示相應(yīng)的物理寄存器 處于第一狀態(tài)的項。該方法還將多個架構(gòu)寄存器中的每個映射到相應(yīng)的被識別為處于第一 狀態(tài)的物理寄存器。 在又一方面,一種在處理器中執(zhí)行寄存器重命名的方法將第一段映射表中的項存 儲在第一寄存器塊中以及將第二段映射表中的項存儲在第二寄存器塊中。該方法在第一時 鐘周期中識別第一塊中的每個均指示相應(yīng)的物理寄存器為空的物理寄存器映射表項。該方 法在第一時鐘周期中還識別第二塊中的每個均指示相應(yīng)的物理寄存器為空的物理寄存器 映射表項。多個要重命名的架構(gòu)寄存器被分組成第一組架構(gòu)寄存器和第二組架構(gòu)寄存器。 架構(gòu)寄存器組之一中的架構(gòu)寄存器被關(guān)聯(lián)到所識別的與第一塊中存儲的映射表項相關(guān)聯(lián) 的空物理寄存器。另一組架構(gòu)寄存器中的架構(gòu)寄存器被關(guān)聯(lián)到所識別的與第二塊中存儲的 映射表項相關(guān)聯(lián)的空物理寄存器。
圖1是處理器中的常規(guī)寄存器重命名系統(tǒng)的簡化示圖。 圖2是圖1中的常規(guī)寄存器重命名系統(tǒng)中的一部分的簡化示圖。 圖3是圖1中的常規(guī)寄存器重命名系統(tǒng)中的物理寄存器映射表中的項的示圖。 圖4是在根據(jù)一個非限制性實施例的處理器中的寄存器重命名系統(tǒng)的簡化示圖。 圖5是根據(jù)一個非限制性實施例的物理寄存器映射表及其存儲裝置的簡化示圖。 圖6是圖4中的根據(jù)一個非限制性實施例的寄存器重命名系統(tǒng)的一部分的簡化示圖。 圖7A是圖4中的根據(jù)一個非限制性實施例的寄存器重命名系統(tǒng)中的另一部分的 簡化示圖。 圖7B是圖4中的根據(jù)一個非限制性實施例的寄存器重命名系統(tǒng)中的又一部分的 簡化示圖。 圖8是圖4中的根據(jù)一個非限制性實施例的寄存器重命名系統(tǒng)中的另一部分的簡 化示圖。 圖9是根據(jù)另一個非限制性實施例的處理器中的寄存器重命名系統(tǒng)的簡化示圖。
圖10是根據(jù)另一個非限制性實施例的處理器中的寄存器重命名系統(tǒng)的簡化示 圖。 圖11是根據(jù)一個非限制性實施例的具有寄存器重命名系統(tǒng)的處理器的簡化示 圖。 圖12是根據(jù)一個非限制性實施例的具有寄存器重命名系統(tǒng)的基于處理器的系統(tǒng) 的簡化示圖。 圖13是說明根據(jù)一個非限制性的說明性實施例的在處理器中執(zhí)行寄存器重命名 的過程的流程圖。 圖14是說明根據(jù)另一個非限制性的說明性實施例的在處理器中執(zhí)行寄存器重命 名的過程的流程圖。 圖15是說明根據(jù)又一個非限制性的說明性實施例的在處理器中執(zhí)行寄存器重命 名的過程的流程圖。 在附圖中,相同的參考號標(biāo)識相似的組件或動作。附圖中的組件的尺寸和相對位 置不一定按比例畫出。另外,所畫出的組件的特定形狀不是旨在傳遞關(guān)于特定組件的實際 形狀的任何信息,并且僅僅出于在附圖中容易識別的目的而被選擇。
具體實施例方式
在以下描述中,為了提供對各種公開的實施例的透徹理解而闡述某些具體的細 節(jié)。然而,本領(lǐng)域的普通技術(shù)人員將認識到可以在不具有這些具體細節(jié)中的一個或多個的 情況下或者用其他方法、部件、材料等等來實施各個實施例。在其他情況下,沒有示出或詳 細描述與寄存器重命名系統(tǒng)、處理器和基于處理器的系統(tǒng)相關(guān)聯(lián)的公知結(jié)構(gòu),以避免不必 要地混淆對實施例的描述。 圖1說明處理器中的常規(guī)寄存器重命名系統(tǒng)100。寄存器重命名系統(tǒng)100包 括物理寄存器映射表(PRMT)5。在圖l所示的例子中,PRMT5有八十個項,也即項0到 項79,其對應(yīng)著八十個物理寄存器。寄存器重命名系統(tǒng)100還包括四個搜索模塊12、22、 32和42,四個對應(yīng)的"屏蔽和滿(mask-and-full)"檢測器14、24、34和44,"比較和配置 (comparison-and-allocation)"模塊50,以及架構(gòu)寄存器分配模塊60。 PRMT 5的項被存 儲在八十個寄存器的塊中,雖然為了避免不必要地混淆說明,該寄存器塊未被示出。
PRMT 5經(jīng)由八比特信號總線8耦合到搜索模塊12,其中信號總線8所承載的每個 信號指示相應(yīng)的PMT項中所記錄的相應(yīng)的物理寄存器的狀態(tài)。例如,如果物理寄存器為 空,則PRMT 5中的相應(yīng)的項將通過存儲對應(yīng)的值來指示物理寄存器的狀態(tài)為空。同樣,如
14果物理寄存器不為空(例如,處于除了"空"之外的狀態(tài)),則PRMT 5中的相應(yīng)的項將通過 存儲不同于指示"空"狀態(tài)的值的一個值來指示物理寄存器的狀態(tài)為不同于空的狀態(tài)。
操作中,寄存器重命名系統(tǒng)100使用五個階段(或步驟)來執(zhí)行寄存器重命名。在 第一步中,搜索模塊12經(jīng)由信號總線8從PRMT 5接收八十個狀態(tài)信號,并且搜索PRMT 5的 項0 79中指示相應(yīng)的物理寄存器為空的項。"屏蔽和滿"檢測器14接收來自信號總線8 的八十個狀態(tài)信號和來自搜索模塊12的搜索結(jié)果信號。在PRMT 5中的指示相應(yīng)的物理寄 存器處于空狀態(tài)的那些項中,一個項被選擇。搜索模塊12發(fā)送七比特的空項ID信號(也 即如圖2中所示的空項id_0信號)給比較和配置模塊50。與所選擇的項相關(guān)聯(lián)的物理寄 存器將被配置給需要被重命名的架構(gòu)寄存器之一。對應(yīng)于所選擇的項的信號被"屏蔽和滿" 檢測器14所屏蔽,也即信號值被設(shè)置成指示不同于"空"狀態(tài)的狀態(tài)的值,因為"屏蔽和滿" 檢測器14提供新的一組八十個信號給搜索模塊22和"屏蔽和滿"檢測器24。這有效地使 得被選擇的項在后續(xù)步驟中不可被選擇。如果PRMT 5的項中任何一項都不指示相應(yīng)的物 理寄存器為空,則"屏蔽和滿"檢測器14發(fā)送信號,也即id_0的有效信號,給比較和分配模 塊50以指示物理寄存器都是滿的。 在第二、第三和第四步驟中,分別順序地由搜索模塊22和"屏蔽和滿"檢測器24、 搜索模塊32和"屏蔽和滿"檢測器34、以及搜索模塊42和"屏蔽和滿"檢測器44執(zhí)行類似 的操作。在從第一步到第四步被執(zhí)行的時間期間,架構(gòu)寄存器分配模塊60接收多至四個目 的寄存器的標(biāo)識符或地址,這些目的寄存器需要被關(guān)聯(lián)到物理寄存器并每個都需要分配架 構(gòu)寄存器標(biāo)識符。四比特信號,也即圖1中所示出的目的有效信號,被提供給架構(gòu)寄存器分 配模塊60以指示所接收到的針對四個目的寄存器的標(biāo)識符的信號中哪些是有效的。四比 特信號,也即圖1中所示出的被分配的目的有效信號,被提供給比較和配置模塊50以指示 表示這四個架構(gòu)寄存器標(biāo)識符的四個信號中哪些是有效的。所分配的架構(gòu)寄存器標(biāo)識符被 提供給比較和配置模塊50。 在第五步中,有效的架構(gòu)寄存器被關(guān)聯(lián)到在前四步中通過搜索模塊12、22、32和 42執(zhí)行的搜索所識別的空物理寄存器。如圖2中所說明的,比較和配置模塊50包括八十個 比較和配置子塊5000-5079,其中每個子塊分別用于八十個物理寄存器中的相應(yīng)的一個。比 較和配置模塊50中的比較和配置子塊5000-5079中的每個將所有四個空項ID信號(空項 id_0,空項id_l,空項id_2和空項id_3)與PRMT 5中針對相應(yīng)的物理寄存器的項的項號進 行比較。如果四個空項ID信號之一所表示的特定項號與比較和配置子塊5000-5079所關(guān) 聯(lián)的項號匹配,則比較和配置子塊5000-5079將一個有效架構(gòu)寄存器標(biāo)識符配置給PRMT 5 中的那個項,由此將相應(yīng)的架構(gòu)寄存器關(guān)聯(lián)到相應(yīng)的物理寄存器。在PRMT 5的該項中記錄 該架構(gòu)寄存器標(biāo)識符并且相應(yīng)的物理寄存器的狀態(tài)被改變成不同于"空"的狀態(tài),諸如"已 配置"。如圖3中所示出的,PRMT 5中的每個項記錄架構(gòu)寄存器標(biāo)識符,例如架構(gòu)寄存器號, 以及相應(yīng)的物理寄存器的狀態(tài)。例如,如果給定的物理寄存器處于物理寄存器可能處于的 多個狀態(tài)中的第一狀態(tài),則指示該第一狀態(tài)的第一值被記錄在相應(yīng)的項中。同樣,如果物理 寄存器處于這多個狀態(tài)中的第二狀態(tài),則指示該第二狀態(tài)的第二值被記錄在相應(yīng)的項中, 以此類推。 從上述描述中,可以看到與常規(guī)寄存器重命名系統(tǒng)100相關(guān)聯(lián)的若干缺點。首先, 由于每個搜索模塊12、22、32和42要搜索的PRMT 5中的大量的項而帶來的大延遲是不可避免的。其次,因為直到前面的搜索模塊已經(jīng)完成搜索,后續(xù)的搜索模塊才能開始搜索這些 項,所以搜索模塊12、22、32和42所進行的順序搜索也惡化了延遲問題。第三,比較和配 置模塊50中的每個比較和配置子塊5000-5079均包括四個比較電路,并且每個配置需要 320(4的80倍)個七比特比較。這種設(shè)計消耗了大量的功率。最后,諸如圖l中所示出的 寄存器重命名系統(tǒng)100之類的寄存器重命名系統(tǒng)需要集成電路芯片上的大面積,并且因此 不適合用于具有嚴格尺寸限制的應(yīng)用。 圖4說明根據(jù)本發(fā)明的一個實施例的處理器中的寄存器重命名系統(tǒng)200。在寄 存器重命名系統(tǒng)200中,PRMT 205具有多個非重疊的段,其中每個段被存儲在相應(yīng)的寄存 器塊中。在一個實施例中,如圖5所示,PRMT 205有兩個非重疊段,第一段205a和第二段 205b,從而段205a、205b中的每個段都具有PRMT 205的總項數(shù)的一半。例如,PRMT 205可 以具有八十個項,項0 79。如圖5中所示,PRMT 205的項中的第一個四十個項,也即項 0 39,可以位于第一 PRMT段205a并且被存儲在第一塊的四十個寄存器202a(例如塊0) 中。相類似地,PRMT 205中的下一個四十個項,也即項40 79,可以位于第二PRMT段205b 中并且被存儲在第二塊的四十個寄存器202b(例如塊1)中。在其他實施例中,PRMT 205 可以具有不止兩個段。例如,在一個實施例中,PRMT205可具有四個非重疊段,并且在另一 實施例中可以具有八個非重疊段。在一個實施例中,無論PRMT 5可以具有的段的數(shù)目是多 少,PRMT 5的多個段具有相同的項數(shù)??蛇x擇地,PRMT 5的多個段彼此可以具有不同的項 數(shù)。 在寄存器重命名系統(tǒng)200中,PRMT 205的多個段中的至少某些段可以被并行地搜 索。也S卩,PRMT 205中的兩個段205a、205b可以被同時搜索。在PRMT 205具有不止兩個 段的實施例中,這些段中的兩個或多個或全部可以被同時搜索。如圖4中所示出的,在一個 實施例中,四個檢查邏輯212、214、216和218被耦合到寄存器塊202a、202b,以確定物理寄 存器的狀態(tài),其由寄存器塊202a、202b中所存儲的PRMT 205的項來指示。更為具體地,檢 查邏輯212、214經(jīng)由標(biāo)記信號總線208a耦合到第一寄存器塊202a。檢查邏輯216、218經(jīng) 由標(biāo)記信號總線208b耦合到第二寄存器塊202b。標(biāo)記信號總線208a、208b中的每個都是 四十比特寬以分別適合寄存器塊202a、202b中的四十個寄存器。標(biāo)記信號總線208a、208b 承載從第一和第二寄存器塊202a、202b到檢查邏輯212、214、216和218的標(biāo)記信號,并且 檢查邏輯212、214、216和218基于標(biāo)記信號總線208a、208b所承載的信號值來確定物理寄 存器的狀態(tài)。當(dāng)寄存器中所存儲的相應(yīng)PRMT項指示相應(yīng)物理寄存器是空時,標(biāo)記信號可以 具有第一值,例如二進制值1。當(dāng)相應(yīng)PRMT項指示相應(yīng)物理寄存器不是空時,標(biāo)記信號可以 具有第二值,例如二進制值O。 在一個實施例中,檢查邏輯212、214、216和218以不同的方向搜索在第一寄存器 塊202a和第二寄存器塊202b中所存儲的PRMT 5的項,以識別PRMT 5中的指示相應(yīng)的物理 寄存器處于多個狀態(tài)中的第一狀態(tài)(諸如空狀態(tài))的那些項。例如,檢查邏輯212可以通 過以對應(yīng)于從第一塊202a的頂部朝著第一塊202a的底部讀取第一寄存器塊202a的第一 方向讀取標(biāo)記信號,來搜索空物理寄存器。類似地,檢查邏輯214可以通過以與第一方向不 相同的、對應(yīng)于從第一塊202a的底部朝著第一塊202a的頂部讀取第一寄存器塊202a的第 二方向讀取標(biāo)記信號,來搜索空物理寄存器。換言之,檢查邏輯212首先從存儲在第一寄存 器塊202a中的頂部寄存器(被標(biāo)記為寄存器0)中的PRMT 5的項0讀取標(biāo)記信號,以確定
16相應(yīng)的物理寄存器的狀態(tài)是否是空,接著從PRMT 5的項1讀取標(biāo)記信號,等等。在這方面, 來自被存儲在第一寄存器塊202a中的底部寄存器(被標(biāo)記為寄存器39)中的PRMT 5的項 39的標(biāo)記信號是檢查邏輯212所讀取的最后一個標(biāo)記信號。相反,檢查邏輯214首先從被 存儲在第一寄存器塊202a中的底部寄存器(被標(biāo)記為寄存器39)中的PRMT 5的項39讀 取標(biāo)記信號,接著從PRMT 5的項38讀取標(biāo)記信號,依此類推。因此,來自被存儲在第一寄 存器塊202a中的頂部寄存器(被標(biāo)記為寄存器0)中的PRMT 5的項0的標(biāo)記信號是檢查 邏輯214所讀取的最后一個標(biāo)記信號。 以類似的形式,檢查邏輯216可以通過以對應(yīng)于從第二塊202b的頂部朝著第二塊 202b的底部讀取第二寄存器塊202b的第一方向讀取標(biāo)記信號,來搜索空物理寄存器。類似 地,檢查邏輯218可以通過以對應(yīng)于從第二塊202b的底部朝著第二塊202b的頂部讀取第 二寄存器塊202b的第二方向讀取標(biāo)記信號,來搜索空物理寄存器。檢查邏輯216首先從被 存儲在第二寄存器塊202b中的頂部寄存器(被標(biāo)記為寄存器40)中的PRMT 5的項40讀 取標(biāo)記信號,以確定相應(yīng)的物理寄存器的狀態(tài)是否是空,接著從PRMT 5的項41讀取標(biāo)記信 號,依此類推。來自被存儲在第二寄存器塊202b中的底部寄存器(被標(biāo)記為寄存器79)中 的PRMT 5的項79的標(biāo)記信號是檢查邏輯216所讀取的最后一個標(biāo)記信號。相反,檢查邏輯 218首先從被存儲在第二寄存器塊202b中的底部寄存器(被標(biāo)記為寄存器79)中的PRMT 5的項79讀取標(biāo)記信號,接著從PRMT 5的項78讀取標(biāo)記信號,依此類推。因此,來自被存 儲在第二寄存器塊202b中的頂部寄存器(被標(biāo)記為寄存器40)中的PRMT 5的項40的標(biāo) 記信號是檢查邏輯218所讀取的最后一個標(biāo)記信號。 因此,PRMT 205的多個段可以被并行地并且以不同的方向進行搜索。這在減少前 面所描述的常規(guī)寄存器重命名系統(tǒng)100中實現(xiàn)的順序搜索上的路徑延遲方面提供了改善。 也即,PRMT 205是通過由檢查邏輯212、214、216和218并行地搜索PRMT 205的多個段而 進行一次搜索,而不是通過讓整個PRMT 205順序地進行四次不同的搜索而導(dǎo)致串行路徑 延遲。 在一個實施例中,檢查邏輯212、214、216和218中的每個可以是前導(dǎo)l探測電路, 其探測并識別它所遇到的指示相應(yīng)的物理寄存器為空的第一項,即使當(dāng)PRMT 205可能存 在指示相應(yīng)的物理寄存器為空的多個項時,也是如此。因此,四個檢查邏輯212、214、216和 218可以并行地識別多至四個PRMT 205的項,其中每個項均指示相應(yīng)的物理寄存器為空。
作為用以識別空物理寄存器的搜索的結(jié)果,每個檢查邏輯212、214、216和218提 供多個結(jié)果信號,其中每個結(jié)果信號指示PMT 205中的相應(yīng)項是否被識別為指示相應(yīng)的 物理寄存器為空。例如,在圖4中所說明的實施例中,檢查邏輯212、214、216和218中的每 個都提供四十個結(jié)果信號,因為每個都接收四十個標(biāo)記信號。在一個實施例中,每個檢查邏 輯212、214、216和218都將對應(yīng)于它探測為指示相應(yīng)的物理寄存器為空的第一項的結(jié)果信 號設(shè)置成第一值,例如二進制值l,并且將剩余的結(jié)果信號設(shè)置成第二值,例如二進制值O。 這允許塊202a、202b中多至四個所存儲的項指示相應(yīng)的物理寄存器為空的寄存器被識別。 繼而,這識別了多至四個架構(gòu)寄存器可被重命名成的多至四個處于空狀態(tài)的物理寄存器。
在一個實施例中,"滿(full)"檢測器222被耦合以接收來自檢查邏輯212、214的 結(jié)果信號,而"滿"檢測器224被耦合以接收來自檢查邏輯216、218的結(jié)果信號?;诮邮?自檢查邏輯212、214的結(jié)果信號,"滿"檢測器222輸出兩個有效信號,有效信號0和有效
17信號1。如果來自檢查邏輯212、214的結(jié)果信號指示兩個空物理寄存器被識別,則有效信 號0和有效信號1 二者都被設(shè)置成第一值,例如二進制值1。如果結(jié)果信號指示僅有一個空 物理寄存器被識別,則僅僅有效信號0被設(shè)置成第一值而有效信號1被設(shè)置成第二值,例如 二進制值0。如果結(jié)果信號指示沒有任何空物理寄存器被識別,則有效信號O和有效信號1 二者都被設(shè)置成第二值。類似地,基于接收自檢查邏輯216、218的結(jié)果信號,"滿"檢測器 224輸出兩個有效信號,有效信號2和有效信號3。如果來自檢查邏輯216、218的結(jié)果信號 指示兩個空物理寄存器被識別,則有效信號2和有效信號3 二者都被設(shè)置成第一值。如果 結(jié)果信號指示僅有一個空物理寄存器被識別,則僅僅有效信號2被設(shè)置成第一值而有效信 號3被設(shè)置成第二值。如果結(jié)果信號指示沒有任何空物理寄存器被識別,則有效信號2和 有效信號3 二者都被設(shè)置成第二值。 在一個實施例中,寄存器重命名系統(tǒng)200可以具有配置邏輯235,其被耦合在寄存 器±央202a、202b與檢查邏輯212、214、216、218和"滿"檢測器222、224之間。在一個實施 例中,寄存器重命名系統(tǒng)200還可包括分配邏輯245,其被耦合到配置邏輯235。
分配邏輯245接收多個架構(gòu)寄存器標(biāo)識符,例如架構(gòu)寄存器號,每個均標(biāo)識相應(yīng) 的要重命名的架構(gòu)寄存器。在一個實施例中,分配邏輯245將所接收的每個架構(gòu)寄存器標(biāo) 識符分組成兩組架構(gòu)寄存器標(biāo)識符,即第一組和第二組架構(gòu)寄存器標(biāo)識符,并將第一組和 第二組架構(gòu)寄存器標(biāo)識符提供給配置邏輯235。換言之,所接收的每個架構(gòu)寄存器標(biāo)識符或 者在第一組中或者在第二組中提供給配置邏輯235。配置邏輯235接著將由第一組中的架 構(gòu)寄存器標(biāo)識符所表示的架構(gòu)寄存器重命名成由第一塊202a中所存儲的PRMT 205的項所 表示的空物理寄存器,并且將由第二組中的架構(gòu)寄存器標(biāo)識符所表示的架構(gòu)寄存器重命名 成由第二塊202b中所存儲的PRMT 205的項所表示的空物理寄存器。更為具體地,作為寄 存器重命名(也即將架構(gòu)寄存器關(guān)聯(lián)到空的物理寄存器)的結(jié)果,第一組中的架構(gòu)寄存器 標(biāo)識符將被記錄在存儲在第一塊202a中的PRMT205的項中,并且第二組中的架構(gòu)寄存器標(biāo) 識符將被記錄在存儲在第二塊202b中的PRMT 205的項中。 如圖4所示,四個架構(gòu)寄存器標(biāo)識符ARO、 AR1 、 AR2和AR3被分配邏輯245接收并 且作為兩個架構(gòu)寄存器標(biāo)識符一組的兩組被提供給配置邏輯235。在一個實施例中,分配 邏輯245在給定時鐘周期中將AR0,AR1分組到第一組,例如組0,以及將AR2和AR3分組到 第二組,例如組l,并且在隨后的時鐘周期中交換編組順序以將ARO,ARl分組到第二組并將 AR2和AR3分組到第一組,反之亦然。這兩組架構(gòu)寄存器標(biāo)識符中的每組都被作為兩個信號 (即被分配的寄存器0和被分配的寄存器1)提供給配置邏輯235。分配邏輯245還可接收 用以指示由架構(gòu)寄存器標(biāo)識符AR0-AR3所表示的四個架構(gòu)寄存器標(biāo)識符中的哪一個或哪 幾個需要被重命名的四比特有效信號。在一個實施例中,如果這兩組架構(gòu)寄存器標(biāo)識符中 的任何一組僅具有一個有效架構(gòu)寄存器標(biāo)識符,也即由該組中的兩個標(biāo)識符所表示的兩個 架構(gòu)寄存器中的僅僅一個需要被重命名,則該有效架構(gòu)寄存器標(biāo)識符將被作為該組的被分 配寄存器0提供給配置邏輯235。 在一個實施例中,對于第一組架構(gòu)寄存器標(biāo)識符,配置邏輯235將由被分配寄存 器0信號所表示的架構(gòu)寄存器標(biāo)識符記錄在由檢查邏輯212所識別的第一塊202a中所存 儲的PRMT 205的項中,并且將由被分配寄存器1信號所表示的架構(gòu)寄存器標(biāo)識符記錄在由 檢查邏輯214所識別的第一塊202a中所存儲的PRMT 205的項中。類似地,對于第二組架
18構(gòu)寄存器標(biāo)識符,配置邏輯235將由被分配寄存器0信號所表示的架構(gòu)寄存器標(biāo)識符記錄 在由檢查邏輯216所識別的第二塊202b中所存儲的PRMT 205的項中,并且將由被分配寄 存器1信號所表示的架構(gòu)寄存器標(biāo)識符記錄在由檢查邏輯218所識別的第二塊202b中所 存儲的PRMT205的項中。例如,如果寄存器12和寄存器27分別被檢查邏輯212、214識別 為存儲著指示相應(yīng)的物理寄存器為空的PMT項,則ARO將被記錄在寄存器12中所存儲的 項12中,并且AR1將被記錄在寄存器27中所存儲的項27中,其中假設(shè)ARO和AR1都是有效 的架構(gòu)寄存器標(biāo)識符并且假設(shè)ARO和AR1在該特定時鐘周期中被分配給第一組。類似地, 在相同的時鐘周期中,假設(shè)AR2和AR3也都是有效的架構(gòu)寄存器標(biāo)識符并且寄存器55和寄 存器76分別被檢查邏輯216、218識別為儲存著指示相應(yīng)的物理寄存器為空的PRMT項,則 AR2將被記錄在在寄存器55中所存儲的項55中,并且AR3將被記錄在存儲76中所存儲的 項76中。 在一個實施例中,分配邏輯245可以對在給定時鐘周期中分配給兩組中的每組的 有效架構(gòu)寄存器標(biāo)識符的數(shù)目進行均衡。例如,如果在一個時鐘周期中總共有三個有效架 構(gòu)寄存器標(biāo)識符,其中僅僅一個有效架構(gòu)寄存器標(biāo)識符被分配給第一組而另外兩個被分配 給第二組,則在隨后的一個時鐘周期中,當(dāng)存在奇數(shù)個有效架構(gòu)寄存器標(biāo)識符時,分配邏輯 245將分配較多的有效架構(gòu)寄存器標(biāo)識符給第一組。 在一個實施例中,分配邏輯245可包括分組電路242、交換電路244和塊選擇電路 246。分配邏輯245接收四個有效架構(gòu)寄存器標(biāo)識符AR0-AR3和四比特有效信號,將這些架 構(gòu)寄存器標(biāo)識符分組成組0和組1,并且將這兩組架構(gòu)寄存器標(biāo)識符提供給交換電路244。 基于來自塊選擇電路246的塊選擇信號,交換電路244或者將組0提供給第一塊202a以及 將組1提供給第二塊202b,或者將組0提供給第二塊202b以及將組1提供給第一塊202a。 塊選擇電路246可包括一比特寄存器,并被用于設(shè)置塊選擇信號的值以在重命名架構(gòu)寄存 器時對由第一塊202a和第二塊202b中的項所標(biāo)識的空物理寄存器的使用率進行均衡。塊 選擇電路246或者均衡控制邏輯可記錄分組歷史并且對提供給交換電路244的塊選擇信號 進行設(shè)置。因此,由第一塊202a和第二塊202b中所存儲的PRMT項所表示的空物理寄存器 可以以均衡的方式用于寄存器重命名。否則,如果沒有這種均衡的分配,可能出現(xiàn)塊202a 和202b中的一個可能不具有任何一個指示空物理寄存器的項而塊202a、202b中的另一個 仍然具有許多個指示相應(yīng)的物理寄存器為空的項。圖6說明根據(jù)一個實施例的交換電路 244。 在一個實施例中,配置邏輯235可包括第一配置邏輯232和第二配置邏輯234。第 一配置邏輯232可被耦合到第一寄存器塊202a、檢查邏輯212、214、"滿"檢測器222、以及 分配邏輯245。第二配置邏輯234可被耦合到第二寄存器塊202b、檢查邏輯216、218、"滿" 檢測器224、以及分配邏輯245。第一配置邏輯232接收第0組架構(gòu)寄存器標(biāo)識符。接著, 第一配置邏輯232依賴于所接收的架構(gòu)寄存器標(biāo)識符之一或二者是否有效而將所接收到 的架構(gòu)寄存器標(biāo)識符之一或二者存儲在第一塊202a中所存儲的PRMT 205中的指示相應(yīng)的 物理寄存器為空的那些項中。第二配置邏輯234接收第1組架構(gòu)寄存器標(biāo)識符。接著,第 二配置邏輯234依賴于所接收的架構(gòu)寄存器標(biāo)識符之一或二者是否有效而將所接收到的 架構(gòu)寄存器標(biāo)識符之一或二者存儲在第二塊202b中所存儲的PRMT 205中的指示相應(yīng)的物 理寄存器為空的那些項中。
19
在一個實施例中,第一配置邏輯232和第二配置邏輯234中的每個可能具有如圖 7A和7B中所示出的多個配置電路233。根據(jù)一個實施例,圖7A說明第一配置邏輯232而 圖7B說明第二配置邏輯234。在一個實施例中,第一配置邏輯232和第二配置邏輯234中 的每個可具有四十個配置電路233,每個配置電路針對第一塊202a或第二塊202b中的相應(yīng) 的寄存器中所存儲的相應(yīng)的PRMT 205的項。在一個實施例中,由檢查邏輯214(或檢查邏 輯216)所提供的搜索結(jié)果信號可被用于控制在由分配給第一塊202a(或第二塊202b)的 組中的標(biāo)識符所表示的兩個架構(gòu)寄存器之間的選擇。如果所接收的架構(gòu)寄存器標(biāo)識符為有 效,則所接收的架構(gòu)寄存器標(biāo)識符將被記錄在與處于空狀態(tài)的物理寄存器相關(guān)聯(lián)的項中; 否則,它將不被記錄。圖8說明根據(jù)一個實施例的配置邏輯232、234中的配置邏輯233之 一的結(jié)構(gòu)。 因此,寄存器重命名系統(tǒng)200可以用兩個步驟來實現(xiàn)寄存器重命名。也即,首先, 在兩個PRMT段205a、205b的每個段中,識別指示相應(yīng)的物理寄存器處于空狀態(tài)的兩個PRMT 項。接著,被分組成兩組的有效架構(gòu)寄存器,被重命名成相應(yīng)的與兩個PRMT段205a、205b 中的已識別的項相關(guān)聯(lián)的空物理寄存器。對與空物理寄存器相關(guān)聯(lián)的項的識別是針對PRMT 段205a、205b 二者同時執(zhí)行的,并且分別針對存儲PRMT段205a、205b的寄存器塊202a、 202b的每一個,同時在兩個方向上執(zhí)行該搜索。 圖9說明根據(jù)另一非限制性的說明的實施例的處理器中的寄存器重命名系統(tǒng) 900。寄存器重命名系統(tǒng)900包括具有多個非重疊段的PRMT,其中每個段被存儲在相應(yīng)的寄 存器塊中。PRMT中的每個項與相應(yīng)的物理寄存器相關(guān)聯(lián),并且記錄相應(yīng)的物理寄存器所處 于的狀態(tài),以及被重命名到相應(yīng)的物理寄存器的架構(gòu)寄存器的標(biāo)識符,如果存在任何被重 命名到其的架構(gòu)寄存器的話。寄存器重命名系統(tǒng)900還包括重命名邏輯,其被耦合到寄存 器塊以便對寄存器進行讀和寫,例如,以便搜索PRMT中指示相應(yīng)的物理寄存器處于空狀態(tài) 的項以將架構(gòu)寄存器重命名到這些空物理寄存器中的某一些。 在一個實施例中,如圖9所示,寄存器重命名系統(tǒng)900可包括存儲在第一寄存器塊 902a中的第一 PRMT段905a以及存儲在第二寄存器塊902b中的第二 PRMT段905b。寄存器 重命名系統(tǒng)900還可包括耦合到寄存器塊902a、902b的重命名邏輯910。重命名邏輯910 可并行地搜索PRMT段905a、905b,以識別其中每個均指示相應(yīng)的物理寄存器處于第一狀態(tài) (例如為空)的項。重命名邏輯900還可選擇性地將多個架構(gòu)寄存器中的每個關(guān)聯(lián)到相應(yīng) 的被識別為處于第一狀態(tài)的物理寄存器。在圖9中盡管僅僅示出兩個PRMT段905a、905b, 但是在其他實施例中可以有更大數(shù)量的PRMT段,例如四個或八個,它們被存儲在等量的寄 存器塊中并且可以被同時搜索。 在一個實施例中,重命名邏輯910可包括搜索邏輯920以搜索這多個寄存器塊,諸 如寄存器塊902a、902b,以便識別其中所存儲的指示相應(yīng)的物理寄存器處于第一狀態(tài)的項。 搜索邏輯920可按第一方向以及同時按不同于該第一方向的第二方向來搜索每個寄存器 塊。例如,搜索邏輯920可從每個塊的頂部朝著該塊的底部以及同時從每個塊的底部朝著 該塊的頂部搜索每個塊902a、902b。 在一個實施例中,重命名邏輯910可包括映射邏輯930以接收多個架構(gòu)寄存器標(biāo) 識符,其中每個標(biāo)識符均代表相應(yīng)的一個架構(gòu)寄存器。映射邏輯930可選擇性地將每個架 構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到指示相應(yīng)的物理寄存器處于第一狀態(tài)的PRMT項中的相應(yīng)的項。更
20為具體地,映射邏輯930可選擇性地將每個架構(gòu)寄存器標(biāo)識符記錄在指示相應(yīng)的物理寄存 器處于第一狀態(tài)的相應(yīng)的PRMT項中。映射邏輯930還可將記錄著相應(yīng)的架構(gòu)寄存器標(biāo)識 符的PRMT項的狀態(tài)從第一狀態(tài)改變成不同于該第一狀態(tài)的另一狀態(tài)。在一個實施例中,映 射邏輯930可對架構(gòu)寄存器標(biāo)識符到映射表的每段中的項的關(guān)聯(lián)進行均衡。具體地,映射 邏輯930可基于先前被關(guān)聯(lián)到每段映射表的項的架構(gòu)寄存器標(biāo)識符的相應(yīng)數(shù)量,對要關(guān)聯(lián) 到每段映射表的項的架構(gòu)寄存器標(biāo)識符的相應(yīng)數(shù)量進行調(diào)節(jié)。 在一個實施例中,搜索邏輯920可被耦合到映射邏輯930以提供多個標(biāo)記信號,其 中每個標(biāo)記信號指示寄存器塊中的相應(yīng)寄存器中是否存儲有指示相應(yīng)的物理寄存器處于 第一狀態(tài)的相應(yīng)項。映射邏輯930可將架構(gòu)寄存器標(biāo)識符分組成多組架構(gòu)寄存器標(biāo)識符。 映射邏輯930還可在第一輪關(guān)聯(lián)中將每組架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到各段映射表中的項。映 射邏輯930還可基于在第一輪關(guān)聯(lián)中被關(guān)聯(lián)到每段映射表中的項的架構(gòu)寄存器標(biāo)識符的 相應(yīng)數(shù)量在該第一輪關(guān)聯(lián)之后的第二輪關(guān)聯(lián)中將每組架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到該映射表 的不同段中的項。 圖10說明在根據(jù)另一個非限制性的說明的實施例的處理器中的寄存器重命名系 統(tǒng)1000。寄存器重命名系統(tǒng)1000包括具有多個非重疊段的PRMT,其中每個段被存儲在相 應(yīng)的寄存器塊中。PRMT中的每個項與相應(yīng)的物理寄存器相關(guān)聯(lián),并且記錄相應(yīng)的物理寄存 器所處于的狀態(tài),以及被重命名到相應(yīng)的物理寄存器的架構(gòu)寄存器的標(biāo)識符,如果存在任 何被重命名到其的架構(gòu)寄存器。 在一個實施例中,如圖IO中所示出的,寄存器重命名系統(tǒng)IOOO可包括存儲在第一 寄存器塊1002a中的第一 PRMT段1005a和存儲在第二寄存器塊1002b中的第二 PRMT段 1005b。寄存器重命名系統(tǒng)1000還可包括耦合到寄存器塊1002a、 1002b的搜索邏輯1010。 搜索邏輯1010可并行地搜索第一和第二寄存器塊1002a、1002b,并在這些塊中識別所存儲 的相應(yīng)的映射表項指示相應(yīng)的物理寄存器處于第一狀態(tài)(例如為空)的寄存器。盡管圖10 中僅僅示出兩個PRMT段1005a、 1005b,但是在其他實施例中可存在更大數(shù)量的PRMT段,例 如四個或八個,它們被存儲在等量的寄存器塊中并且可被同時搜索。 在一個實施例中,搜索邏輯IOIO可按第一方向以及同時按不同于該第一方向的 第二方向搜索第一寄存器塊1002a,此時還按該第一方向以及同時按該第二方向搜索第二 寄存器塊1002b,以識別具有指示相應(yīng)的物理寄存器處于第一狀態(tài)的相應(yīng)項的寄存器。例 如,搜索邏輯IOIO可同時從塊1002a的頂部朝著塊1002a的底部以及從塊1002a的底部朝 著塊1002a的頂部搜索第一寄存器塊1002a。搜索邏輯1010還可按相同的方式搜索第二寄 存器塊1002b 。 在一個實施例中,寄存器重命名系統(tǒng)1000還可包括分配邏輯1020以接收多個架 構(gòu)寄存器標(biāo)識符并將其分組成第一和第二組架構(gòu)寄存器標(biāo)識符,其中每個架構(gòu)寄存器標(biāo)識 符均代表相應(yīng)的架構(gòu)寄存器。分配邏輯1020可按第一組和第二組架構(gòu)寄存器標(biāo)識符來提 供架構(gòu)寄存器標(biāo)識符以重命名分為兩組的架構(gòu)寄存器,其中所接收的每個架構(gòu)寄存器標(biāo)識 符或者在第一組中或者在第二組中。 在一個實施例中,寄存器重命名系統(tǒng)1000還可包括耦合到第一和第二寄存器塊 1002a、1002b,搜索邏輯1010、以及分配邏輯1020的配置邏輯1030。配置邏輯1030可從分 配邏輯1020接收第一和第二組架構(gòu)寄存器標(biāo)識符,并選擇性地將每個架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到第一寄存器塊1002a或第二寄存器塊1002b中的相應(yīng)的項。在一個實施例中,搜索 邏輯IOIO可提供多個標(biāo)記信號給配置邏輯1030。每個信號可具有第一值或第二值,第一值 指示相應(yīng)的物理寄存器具有第一狀態(tài),第二值指示相應(yīng)的物理寄存器具有除第一狀態(tài)之外 的另一狀態(tài)。在從搜索邏輯接收到標(biāo)記信號時,配置邏輯1030可將每個架構(gòu)寄存器標(biāo)識符 存儲在第一寄存器塊1002a或第二寄存器塊1002b中相應(yīng)的標(biāo)記信號具有第一值的相應(yīng)寄 存器中,以將相應(yīng)的架構(gòu)寄存器關(guān)聯(lián)到相應(yīng)的物理寄存器。 在一個實施例中,配置邏輯1030可將第一組中的每個架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到 第一寄存器塊1002a中的相應(yīng)項并且還將第二組中的每個架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到第二 寄存器塊1002b中的相應(yīng)項。另外,如果在前一輪的關(guān)聯(lián)中被關(guān)聯(lián)到第一塊1002a中的項 的架構(gòu)寄存器標(biāo)識符的數(shù)目不等于被關(guān)聯(lián)到第二塊1002b中的項的架構(gòu)寄存器標(biāo)識符的 數(shù)目,則配置邏輯1030可將第一組中的每個架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到第二寄存器塊1002b 中的相應(yīng)項,以及進一步將第二組中的每個架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到第一寄存器塊1002a 中的相應(yīng)項。 在一個實施例中,搜索邏輯1010可確定被識別為具有指示相應(yīng)的物理寄存器處 于第一狀態(tài)的相應(yīng)項的寄存器的數(shù)量并將針對每個已識別的寄存器的相應(yīng)的有效信號提 供給配置邏輯1030。針對第一和第二寄存器塊1002a、1002b,配置邏輯1030可分別接收第 一和第二架構(gòu)寄存器標(biāo)識符,并且如果相應(yīng)的寄存器塊中所存儲的項中僅僅一個項被識別 為指示相應(yīng)的物理寄存器處于第一狀態(tài),則確定所接收的架構(gòu)寄存器標(biāo)識符中的哪個將被 關(guān)聯(lián)。 圖11說明根據(jù)一個非限制性的說明的實施例的具有寄存器重命名系統(tǒng)的處理器 1100。處理器1100包括具有多個非重疊段的PRMT,其中每個段都被存儲在相應(yīng)的寄存器塊 中。該PRMT的每個項都與相應(yīng)的物理寄存器相關(guān)聯(lián)并且記錄相應(yīng)的物理寄存器所處的狀 態(tài),以及被重命名到相應(yīng)的物理寄存器的架構(gòu)寄存器的標(biāo)識符,如果存在任何被重命名到 其的架構(gòu)寄存器。 在一個實施例中,如圖11中所示,處理器1100可包括存儲在第一寄存器塊1102a 中的第一PRMT段1105a和存儲在第二寄存器塊1102b中的第二 PRMT段1105b。處理器 1100還可包括耦合到寄存器塊1102a、 1102b的搜索邏輯1110。搜索邏輯1110可并行地搜 索第一和第二 PRMT段1105a、1105b,以識別其中每個均指示相應(yīng)的物理寄存器處于第一狀 態(tài)(例如為空)的項。處理器1100還可包括耦合到搜索邏輯1110的映射邏輯1120。映射 邏輯1120可接收多個架構(gòu)寄存器標(biāo)識符,其中每個標(biāo)識符均指示相應(yīng)的架構(gòu)寄存器。映射 邏輯1120可將所接收的每個架構(gòu)寄存器標(biāo)識符映射到指示相應(yīng)的物理表處于第一狀態(tài)的 相應(yīng)的PRMT段中的相應(yīng)項。盡管在圖11中僅示出兩個PRMT段1105a、1105b,但是在其他 實施例中,可存在更大數(shù)量的PRMT段,例如四個或八個,它們被存儲在等量的寄存器塊中 并且可被同時搜索。 在一個實施例中,搜索邏輯1110被耦合到寄存器塊1102a、1102b,并且同時從塊 的第一端朝著與該第一端相對的該塊的第二端以及從該塊的第二端朝著該塊的第一端搜 索每個寄存器塊1102a、1102b,以尋找存儲的映射表項指示相應(yīng)的物理寄存器處于第一狀 態(tài)的寄存器。例如,搜索邏輯1110可同時從塊1102a的頂部朝著塊1102a的底部以及從塊 1102a的底部朝著塊1102a的頂部搜索第一寄存器塊1102a。搜索邏輯1110還可用相同的方式搜索第二寄存器塊1102b。 在一個實施例中,搜索邏輯1110可提供多個標(biāo)記信號給映射邏輯1120,其中每個 標(biāo)記信號指示針對寄存器塊中的相應(yīng)的寄存器的搜索結(jié)果。每個標(biāo)記信號可具有第一值或 第二值,第一值指示相應(yīng)的寄存器存儲的相應(yīng)的映射表項指示相應(yīng)的物理寄存器處于第一 狀態(tài),第二值指示相應(yīng)的寄存器存儲的相應(yīng)的映射表項指示相應(yīng)的物理寄存器處于除第一 狀態(tài)之外的另一狀態(tài)。 在一個實施例中,搜索邏輯1110可包括多個寄存器搜索邏輯。每個寄存器搜索邏 輯可被耦合到相應(yīng)的一個寄存器塊1102a、1102b,以同時從塊的第一端朝著與該第一端相 對的該塊的第二端以及從該塊的第二端朝著該塊的第一端搜索相應(yīng)的塊1102a或1102b中 的寄存器,尋找所存儲的映射表項指示相應(yīng)的物理寄存器處于第一狀態(tài)的寄存器。
圖12說明根據(jù)一個實施例的具有寄存器重命名系統(tǒng)的基于處理器的系統(tǒng)1200。 基于處理器的系統(tǒng)1200包括輸入設(shè)備1230、輸出設(shè)備1240、數(shù)據(jù)存儲設(shè)備1250以及處理 器1202,處理器1202耦合到輸入設(shè)備1230、輸出設(shè)備1240和數(shù)據(jù)存儲設(shè)備1250。處理器 1202包括多個寄存器決,其中每個寄存器塊存儲著一段物理寄存器映射表以將映射表的 相應(yīng)項存儲在相應(yīng)的寄存器塊中的每個寄存器中,其中每個項指示相應(yīng)的物理寄存器的狀 態(tài)。在一個實施例中,處理器1202可具有存儲著第一 PRMT段1205a的第一寄存器塊和存 儲著第二 PRMT段1205b的第二寄存器塊1202b,如圖12中所示。處理器1202還包括搜索 邏輯1210,其耦合到寄存器塊以同時搜索寄存器塊中的第一塊和第二塊以便識別第一塊和 第二塊中所存儲的相應(yīng)項指示相應(yīng)的物理寄存器處于第一狀態(tài)的寄存器。處理器1202還 包括耦合到寄存器塊和搜索邏輯1210的映射邏輯1220。映射邏輯1220接收多個架構(gòu)寄存 器標(biāo)識符,其中每個標(biāo)識符均標(biāo)識相應(yīng)的架構(gòu)寄存器。接著,映射邏輯1220將每個架構(gòu)寄 存器標(biāo)識符映射到第一塊和第二塊的寄存器中的被識別為所存儲的相應(yīng)項指示相應(yīng)的物 理寄存器處于第一狀態(tài)的相應(yīng)寄存器,以將每個架構(gòu)寄存器關(guān)聯(lián)到對應(yīng)的物理寄存器。
在一個實施例中,搜索邏輯1210可按第一方向以及同時按不同于該第一方向的 第二方向來搜索第一和第二寄存器塊1202a、1202b中的至少之一,以識別第一塊中所存儲 的相應(yīng)項指示相應(yīng)的物理寄存器處于第一狀態(tài)的寄存器。 在一個實施例中,處理器1200還可包括耦合到映射邏輯1220的分配邏輯。分配邏 輯可接收架構(gòu)寄存器標(biāo)識符,將架構(gòu)寄存器標(biāo)識符配置成多個組,以及按組將架構(gòu)寄存器 標(biāo)識符提供給映射邏輯1220。映射邏輯1220可確定在每輪關(guān)聯(lián)中被映射到第一和第二寄 存器塊中的每個塊的架構(gòu)寄存器標(biāo)識符的數(shù)目。接著,映射邏輯1220在每輪關(guān)聯(lián)中,基于 在前一輪的關(guān)聯(lián)中被映射到第一和第二寄存器塊中的每個塊的架構(gòu)寄存器標(biāo)識符的數(shù)目, 對被映射到第一和第二寄存器塊中的每個塊的架構(gòu)寄存器標(biāo)識符的數(shù)目進行均衡。
在一個實施例中,搜索邏輯1210可接收針對寄存器塊中的每個寄存器的空信號, 其指示與相應(yīng)的寄存器中所存儲的相應(yīng)的映射表項相關(guān)聯(lián)的物理寄存器的狀態(tài)。作為響 應(yīng),搜索邏輯1210可提供針對每個空信號的標(biāo)記信號以指示相應(yīng)的物理寄存器的狀態(tài)。標(biāo) 記信號可具有第一值或第二值,第一值指示相應(yīng)的物理寄存器處于第一狀態(tài),第二值指示 相應(yīng)的物理寄存器處于不同于該第一狀態(tài)的另一狀態(tài)。例如,對于給定空信號,搜索邏輯 1210可將標(biāo)記信號設(shè)置成二進制值1以指示相應(yīng)的物理寄存器為空,或可將標(biāo)記信號設(shè)置 成二進制值0以指示相應(yīng)的物理寄存器為非空(例如,處于提交(commit)狀態(tài)或?qū)懟貭?br>
23態(tài))。 圖13說明根據(jù)一個實施例的在處理器中執(zhí)行寄存器重命名的過程1300。在1302 處,第一段映射表和第二段映射表被同時搜索以識別映射表中的每個均指示相應(yīng)的物理寄 存器處于第一狀態(tài)的項。在一個實施例中,它們被順序地搜索或者根據(jù)程序指導(dǎo)進行搜索。 在其他實施例中,它們被同時搜索。在1304處,對于多個架構(gòu)寄存器,與每個架構(gòu)寄存器相 關(guān)的數(shù)據(jù)被存儲在物理寄存器中被識別為處于第一狀態(tài)的相應(yīng)的物理寄存器中,以便將架 構(gòu)寄存器關(guān)聯(lián)到被識別為處于第一狀態(tài)的物理寄存器。 在一個實施例中,在1306處,過程1300在每輪關(guān)聯(lián)中還可基于在前一輪關(guān)聯(lián)中架
構(gòu)寄存器到被識別為處于第一狀態(tài)的物理寄存器的關(guān)聯(lián),對架構(gòu)寄存器到被識別為處于第
一狀態(tài)的物理寄存器的關(guān)聯(lián)進行均衡。在一個實施例中,針對每輪關(guān)聯(lián),過程1300可以首
先確定被關(guān)聯(lián)到與每段映射表相關(guān)的物理寄存器的架構(gòu)寄存器的數(shù)量。接著,過程1300可
基于在前一輪關(guān)聯(lián)中被關(guān)聯(lián)到與每段映射表相關(guān)的物理寄存器的架構(gòu)寄存器的數(shù)量,對被
關(guān)聯(lián)到與每段映射表相關(guān)的物理寄存器的架構(gòu)寄存器的數(shù)量進行調(diào)節(jié)。 在一個實施例中,在同時搜索第一段映射表和第二段映射表時,過程1300可同時
搜索存儲在第一寄存器塊中的第一段映射表和存儲在第二寄存器塊中的第二段映射表。例
如,存儲在第一寄存器塊202a中的第一 PRMT段205a和存儲在第二寄存器塊202b中的第
二 PRMT段205b可被過程1300同時搜索。在一個實施例中,過程1300可同時按第一方向和
按不同于該第一方向的第二方向來搜索第一寄存器塊中所存儲的第一段映射表,以及同時
按該第一方向和該第二方向來搜索第二寄存器塊中所存儲的第二段映射表。例如,在第一
寄存器塊202a中所存儲的第一 PRMT段205a可同時按第一和第二方向被過程1300搜索,
而此時在第二寄存器塊202b中所存儲的第二 PRMT段205b可同時按第一和第二方向被過
程1300搜索。 圖14說明根據(jù)一個實施例的在處理器中執(zhí)行寄存器重命名的過程1400。在1402 處,物理寄存器映射表中的項被存儲在多個寄存器塊中,以使得相應(yīng)數(shù)目的項被存儲在相 應(yīng)的寄存器塊中,其中每個項指示相應(yīng)的物理寄存器的狀態(tài)。在1404處,在第一時鐘周期 中按第一方向以及按不同于該第一方向的第二方向搜索寄存器塊中的第一塊,以識別其中 每個均指示相應(yīng)的物理寄存器處于第一狀態(tài)的項。在1406處,多個架構(gòu)寄存器中的每個被 映射到被識別為處于第一狀態(tài)的相應(yīng)的物理寄存器。 在一個實施例中,過程1400在第一時鐘周期中還可按該第一方向和該第二方向 搜索寄存器塊中的不同于第一塊的第二塊,以識別其中每個均指示相應(yīng)的物理寄存器處于 第一狀態(tài)的項。在另一實施例中,在搜索寄存器塊中的第一塊以識別處于第一狀態(tài)的項之 后,過程1400還可提供多個信號,其中每個信號表示第一塊中的相應(yīng)的寄存器并且每個信 號都具有指示相應(yīng)的物理寄存器處于第一狀態(tài)的第一值或指示相應(yīng)的物理寄存器處于不 同于該第一狀態(tài)的另一狀態(tài)的第二值。在又一實施例中,過程1400在第一時鐘周期中還可 按該第一方向和該第二方向搜索寄存器塊中的第二塊以識別其中每個均指示相應(yīng)的物理 寄存器處于第一狀態(tài)的項。在將這多個物理寄存器中的每個映射到被識別為處于第一狀態(tài) 的相應(yīng)的物理寄存器時,過程1400可將這多個架構(gòu)寄存器中的每個映射到與塊中的第一 塊或第二塊中所存儲的項相關(guān)聯(lián)的物理寄存器。 在一個實施例中,過程1400可將物理寄存器映射表的項存儲在第一寄存器塊和第二寄存器塊中,使得物理寄存器映射表的第一段中的項存儲在該第一塊中,以及物理寄 存器映射表的第二段中的項存儲在該第二塊中。在一個實施例中,過程1400在第一時鐘周 期中可按該第一方向和該第二方向在第一和第二塊中的每個塊中進行搜索,以識別其中每 個均指示相應(yīng)的物理寄存器處于第一狀態(tài)的項。在一個實施例中,過程1400可將第一架構(gòu) 寄存器映射到與第一塊中所存儲的項之一相關(guān)聯(lián)的物理寄存器以及將第二架構(gòu)寄存器映 射到與第二塊中所存儲的項之一相關(guān)聯(lián)的物理寄存器。 在一個實施例中,當(dāng)將多個架構(gòu)寄存器中的每個映射到被識別為處于第一狀態(tài)的 相應(yīng)的物理寄存器時,過程1400可將其中每個均通過多個傳輸路徑中的相應(yīng)傳輸路徑傳 輸?shù)亩鄠€架構(gòu)寄存器標(biāo)識符中的每個映射到與被識別為處于第一狀態(tài)的物理寄存器相關(guān) 聯(lián)的相應(yīng)的項。更為具體地,過程1400可將在第一時鐘周期之后的第二時鐘周期中通過第 一和第二傳輸路徑傳輸?shù)募軜?gòu)寄存器標(biāo)識符映射到第一塊中的處于第一狀態(tài)的項。過程 1400還可將在第二時鐘周期之后的第三時鐘周期中通過第一和第二傳輸路徑傳輸?shù)募軜?gòu) 寄存器標(biāo)識符映射到第二塊中的處于第一狀態(tài)的項。如果第一塊中被識別為處于所述第一 狀態(tài)的項的數(shù)量不同于第二塊中被識別為處于所述第一狀態(tài)的項的數(shù)量,則過程1400可 以在映射過程中相應(yīng)地調(diào)整在所述第二時鐘周期中或第三時鐘周期中映射的架構(gòu)寄存器 標(biāo)識符的數(shù)量。 在一個實施例中,過程1400可在第一時鐘周期中從寄存器塊中的第一塊的第一 端朝著該塊的與該第一端相對的第二端來進行搜索以及從該塊的第二端朝著該塊的第一 端來進行搜索。 圖15說明根據(jù)一個實施例的在處理器中執(zhí)行寄存器重命名的過程1500。在1502 處,物理寄存器映射表的第一段中的項被存儲在第一寄存器塊中,并且物理寄存器映射表 的第二段中的項被存儲在第二寄存器塊中。在1504處,在第一時鐘周期中,識別在第一塊 中的那些其中每個均指示相應(yīng)的物理寄存器為空的物理寄存器映射表的項。在1506處,在 第一時鐘周期中,還識別在第二塊中的那些其中每個均指示相應(yīng)的物理寄存器為空的物理 寄存器映射表的項。在1508處,要重命名的多個架構(gòu)寄存器被分組成第一組架構(gòu)寄存器和 第二組架構(gòu)寄存器。在1510處,所述多組架構(gòu)寄存器之一中的架構(gòu)寄存器被關(guān)聯(lián)到與所識 別的第一塊中所存儲的映射表項相關(guān)聯(lián)的空物理寄存器。在1512處,另一組架構(gòu)寄存器中 的架構(gòu)寄存器被關(guān)聯(lián)到與所識別的第二塊中所存儲的映射表項相關(guān)聯(lián)的空物理寄存器。
在一個實施例中,過程1500還可對架構(gòu)寄存器組到與所識別的第一塊和第二塊 中的空項相關(guān)聯(lián)的物理寄存器的關(guān)聯(lián)進行均衡。更為具體地,響應(yīng)于在前一時鐘周期中所 識別的與第一塊中所存儲的項相關(guān)聯(lián)的空物理寄存器的數(shù)量以及與第二塊中所存儲的項 相關(guān)聯(lián)的空物理寄存器的數(shù)量,過程1500可將每組架構(gòu)寄存器關(guān)聯(lián)到所識別的與第一或 第二塊中的項相關(guān)聯(lián)的相應(yīng)的空物理寄存器。在另一實施例中,過程1500還可將架構(gòu)寄存 器之一的標(biāo)識符存儲在與被識別為空的物理寄存器之一相關(guān)聯(lián)的相應(yīng)項中。過程1500還 可將相應(yīng)項的狀態(tài)設(shè)置成指示除了為空之外的狀態(tài)。 在一個實施例中,當(dāng)將多個要重命名的架構(gòu)寄存器分組成第一組架構(gòu)寄存器和第 二組架構(gòu)寄存器時,過程1500可按程序次序?qū)⑦@多個要重命名的架構(gòu)寄存器分組成第一 組架構(gòu)寄存器和第二組架構(gòu)寄存器。 在一個實施例中,該第一塊和第二塊均具有各自的第一端和與各自的第一端相對的各自的第二端,并且過程1500在第一時鐘周期中可通過同時從第一端朝著第二端進行 搜索以及從第二端朝著第一端進行搜索,識別第一塊中的指示相應(yīng)的物理寄存器為空的每 個物理寄存器映射表項。過程1500在第一時鐘周期中還可通過同時從第一端朝著第二端 進行搜索以及從第二端朝著第一端進行搜索,識別第二塊中的指示相應(yīng)的物理寄存器為空 的每個物理寄存器映射表項。 在一個實施例中,過程1500可識別第一塊中的多至兩個物理寄存器映射表項以 及第二塊中的多至兩個物理寄存器映射表項。過程1500可將四個要重命名的架構(gòu)寄存 器分組成第一對架構(gòu)寄存器和第二對架構(gòu)寄存器,其中每組具有這四個架構(gòu)寄存器中的一 對。過程1500可將與所識別的第一塊中的多至兩個項相關(guān)聯(lián)的物理寄存器關(guān)聯(lián)到一對架 構(gòu)寄存器,以及將與所識別的第二塊中的多至兩個項相關(guān)聯(lián)的物理寄存器關(guān)聯(lián)到另一對架 構(gòu)寄存器。 因此,已經(jīng)公開了本發(fā)明的在諸如超標(biāo)量體系結(jié)構(gòu)的微處理器之類的處理器中的 寄存器重命名系統(tǒng)實現(xiàn)的實施例。相比諸如圖1中所示出的常規(guī)寄存器重命名系統(tǒng)100之 類的常規(guī)寄存器重命名系統(tǒng)實現(xiàn)而言,根據(jù)此處所公開的各種實施例的寄存器重命名系統(tǒng) 提供了若干優(yōu)點。例如,通過并行地搜索物理寄存器映射表中的多個段以及按兩個不同方 向來搜索每個段,可以減小在尋找空物理寄存器時的路徑延遲。減小的路徑延遲應(yīng)當(dāng)也有 利地導(dǎo)致降低的功耗。 上述對說明的實施例的描述,包括摘要中所描述的內(nèi)容,不是旨在作為窮舉或?qū)?實施例限制到所公開的精確形式。此處盡管出于說明性的目的描述了具體實施例和例子, 但是本領(lǐng)域技術(shù)人員將認識到在不偏離本公開內(nèi)容的精神和范圍的條件下可以做出各種 等價的修改。此處所提供的各種實施例的教導(dǎo)可以應(yīng)用到其他環(huán)境,而不必是上面一般描 述的寄存器重命名的示例性環(huán)境。本領(lǐng)域技術(shù)人員將理解,盡管上面所描述的并在附圖中 所示出的實施例一般針對寄存器重命名的環(huán)境,但是與在處理器中使用物理寄存器相關(guān)的 應(yīng)用也可從此處所描述的概念中受益。 根據(jù)上述的詳細描述,可以對實施例做出各種改變。 一般而言,在以下權(quán)利要求書 中,所使用的術(shù)語不應(yīng)當(dāng)被解釋成將權(quán)利要求限制到在說明書和權(quán)利要求書中所公開的具 體實施例,而是應(yīng)當(dāng)被解釋成包括這些權(quán)利要求所保護的所有等同的全部范圍內(nèi)的所有可 能的實施例。因此,權(quán)利要求書不局限于本公開內(nèi)容。
權(quán)利要求
一種將架構(gòu)寄存器關(guān)聯(lián)到物理寄存器的寄存器重命名系統(tǒng),包括具有多個項的物理寄存器映射表,所述映射表中的每個項均指示相應(yīng)的物理寄存器的狀態(tài),所述映射表具有多個非重疊段,其中每個段均具有相應(yīng)的映射表項;以及重命名邏輯,所述重命名邏輯被耦合用以并行地搜索所述映射表的多個段,以識別每個均指示相應(yīng)的物理寄存器處于第一狀態(tài)的項,所述重命名邏輯還用以選擇性地將多個架構(gòu)寄存器中的每個關(guān)聯(lián)到相應(yīng)的被識別為處于所述第一狀態(tài)的物理寄存器。
2. 根據(jù)權(quán)利要求1所述的寄存器重命名系統(tǒng),還包括耦合到所述重命名邏輯的多個寄存器塊,所述寄存器塊用以儲存所述物理寄存器映射 表的項,每個寄存器塊儲存所述映射表中的相應(yīng)段并且每個塊中的每個寄存器儲存所述映 射表的相應(yīng)段中的相應(yīng)項。
3. 根據(jù)權(quán)利要求2所述的寄存器重命名系統(tǒng),其中所述重命名邏輯包括搜索邏輯,所 述搜索邏輯用以搜索所述多個寄存器塊以識別其中所儲存的指示相應(yīng)的物理寄存器處于 所述第一狀態(tài)的項,所述搜索邏輯用以同時按第一方向和與所述第一方向不同的第二方向 搜索每個所述塊。
4. 根據(jù)權(quán)利要求2所述的寄存器重命名系統(tǒng),其中所述重命名邏輯包括映射邏輯,所 述映射邏輯用以接收多個架構(gòu)寄存器標(biāo)識符,其中每個架構(gòu)寄存器標(biāo)識符代表相應(yīng)的一個 架構(gòu)寄存器,以及用以選擇性地將每個所述架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到指示相應(yīng)的物理寄存 器處于所述第一狀態(tài)的相應(yīng)的映射表項。
5. 根據(jù)權(quán)利要求4所述的寄存器重命名系統(tǒng),其中所述映射邏輯選擇性地將每個架構(gòu) 寄存器標(biāo)識符記錄在指示相應(yīng)的物理寄存器處于所述第一狀態(tài)的相應(yīng)的映射表項中。
6. 根據(jù)權(quán)利要求5所述的寄存器重命名系統(tǒng),其中所述映射邏輯將記錄相應(yīng)的架構(gòu)寄 存器標(biāo)識符的映射表項的狀態(tài)從所述第一狀態(tài)改變成不同于所述第一狀態(tài)的另一狀態(tài)。
7. 根據(jù)權(quán)利要求4所述的寄存器重命名系統(tǒng),其中所述映射邏輯對架構(gòu)寄存器標(biāo)識符 到所述映射表的每個段中的項的關(guān)聯(lián)進行均衡。
8. 根據(jù)權(quán)利要求7所述的寄存器重命名系統(tǒng),其中所述映射邏輯基于先前關(guān)聯(lián)到所述 映射表的每個段中的項的架構(gòu)寄存器標(biāo)識符的相應(yīng)數(shù)量,調(diào)整要關(guān)聯(lián)到所述映射表的每個 段中的項的架構(gòu)寄存器標(biāo)識符的相應(yīng)數(shù)量。
9. 根據(jù)權(quán)利要求4所述的寄存器重命名系統(tǒng),其中所述搜索邏輯被耦合到映射邏輯以 提供多個標(biāo)記信號,其中每個所述標(biāo)記信號指示所述寄存器塊中的相應(yīng)的寄存器中是否儲 存有指示相應(yīng)的物理寄存器處于所述第一狀態(tài)的相應(yīng)項。
10. 根據(jù)權(quán)利要求4所述的寄存器重命名系統(tǒng),其中所述映射邏輯將所述架構(gòu)寄存器 標(biāo)識符分組成多組架構(gòu)寄存器標(biāo)識符,其中所述映射邏輯在第一輪關(guān)聯(lián)中將每組架構(gòu)寄存 器標(biāo)識符關(guān)聯(lián)到所述映射表的相應(yīng)段中的項,并且其中所述映射邏輯基于在所述第一輪關(guān) 聯(lián)中關(guān)聯(lián)到所述映射表的每個段中的項的架構(gòu)寄存器標(biāo)識符的相應(yīng)數(shù)量,在所述第一輪關(guān) 聯(lián)之后的第二輪關(guān)聯(lián)中將每組架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到所述映射表的不同段中的項。
11. 一種處理器中的寄存器重命名系統(tǒng),包括第一寄存器塊,所述第一塊中的每個寄存器用以儲存物理寄存器映射表的第一段中的 相應(yīng)項,所述項指示相應(yīng)的物理寄存器的多個狀態(tài)之一;第二寄存器塊,所述第二塊中的每個寄存器用以儲存物理寄存器映射表的第二段中的相應(yīng)項,所述項指示相應(yīng)的物理寄存器的多個狀態(tài)之一;搜索邏輯,其被耦合到所述第一和第二寄存器塊用以并行地搜索所述第一和所述第二 寄存器塊,以便識別所述第一和第二塊中所儲存的相應(yīng)的映射表項指示相應(yīng)的物理寄存器 處于第一狀態(tài)的寄存器。
12. 根據(jù)權(quán)利要求11所述的寄存器重命名系統(tǒng),其中所述搜索邏輯同時按第一方向和 不同于所述第一方向的第二方向搜索所述第一寄存器塊以及同時按所述第一方向和所述 第二方向搜索所述第二寄存器塊,以識別具有指示相應(yīng)的物理寄存器處于所述第一狀態(tài)的 相應(yīng)項的寄存器。
13. 根據(jù)權(quán)利要求11所述的寄存器重命名系統(tǒng),還包括分配邏輯,其用以接收多個架構(gòu)寄存器標(biāo)識符并且將其分組成第一組和第二組架構(gòu)寄 存器標(biāo)識符,其中每個架構(gòu)寄存器標(biāo)識符均代表相應(yīng)的架構(gòu)寄存器,所述分配邏輯用于按 所述第一組和所述第二組架構(gòu)寄存器標(biāo)識符來提供所述架構(gòu)寄存器標(biāo)識符,其中所接收的 每個架構(gòu)寄存器標(biāo)識符或者在所述第一組中或者在所述第二組中。
14. 根據(jù)權(quán)利要求13所述的寄存器重命名系統(tǒng),還包括配置邏輯,其耦合到所述第一和第二寄存器塊、所述搜索邏輯以及所述分配邏輯,所述 配置邏輯用以從所述分配邏輯接收所述第一組和第二組架構(gòu)寄存器標(biāo)識符,所述配置邏輯 用以選擇性地將每個所述架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到所述第一和第二寄存器塊中的相應(yīng)項。
15. 根據(jù)權(quán)利要求14所述的寄存器重命名系統(tǒng),其中所述搜索邏輯提供多個標(biāo)記信號 給所述配置邏輯,所述信號中的每個均具有第一值或者第二值,所述第一值指示相應(yīng)的物 理寄存器具有所述第一狀態(tài),所述第二值指示相應(yīng)的物理寄存器具有不同于所述第一狀態(tài) 的另一狀態(tài)。
16. 根據(jù)權(quán)利要求15所述的寄存器重命名系統(tǒng),其中所述配置邏輯從所述搜索邏輯接 收所述標(biāo)記信號,并且其中所述配置邏輯將每個所述架構(gòu)寄存器標(biāo)識符儲存在所述第一或 第二寄存器塊中相應(yīng)的標(biāo)記信號具有第一值的寄存器中,以將相應(yīng)的架構(gòu)寄存器關(guān)聯(lián)到相 應(yīng)的物理寄存器。
17. 根據(jù)權(quán)利要求14所述的寄存器重命名系統(tǒng),其中所述配置邏輯將所述第一組中的 每個架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到所述第一寄存器塊中的相應(yīng)的項,并且還將所述第二組中的 每個架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到所述第二寄存器塊中的相應(yīng)的項。
18. 根據(jù)權(quán)利要求17所述的寄存器重命名系統(tǒng),其中如果在前一輪關(guān)聯(lián)中關(guān)聯(lián)到所述第一塊中的項的架構(gòu)寄存器標(biāo)識符的數(shù)目不等于關(guān)聯(lián)到所述第二塊中的項的架構(gòu)寄存器 標(biāo)識符的數(shù)目,則所述配置邏輯將所述第一組中的每個架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到所述第二 寄存器塊中的相應(yīng)的項,并且還將所述第二組中的每個架構(gòu)寄存器標(biāo)識符關(guān)聯(lián)到所述第一 寄存器塊中的相應(yīng)的項。
19. 根據(jù)權(quán)利要求14所述的寄存器重命名系統(tǒng),其中所述搜索邏輯確定被識別為具有 指示相應(yīng)的物理寄存器處于所述第一狀態(tài)的相應(yīng)的映射表項的寄存器的數(shù)量,并且將針對 每個已識別的寄存器的相應(yīng)的有效信號提供給所述配置邏輯。
20. 根據(jù)權(quán)利要求19所述的寄存器重命名系統(tǒng),其中針對所述第一和第二寄存器塊中 的每個塊,所述配置邏輯接收相應(yīng)的第一和相應(yīng)的第二架構(gòu)寄存器標(biāo)識符,并且如果僅有 一個儲存在相應(yīng)的寄存器塊中的項被識別為指示相應(yīng)的物理寄存器處于所述第一狀態(tài),則確定所接收到的第一和第二架構(gòu)寄存器標(biāo)識符中哪一個將被關(guān)聯(lián)。
21. —種將架構(gòu)寄存器關(guān)聯(lián)到物理寄存器的寄存器重命名系統(tǒng),包括 第一寄存器塊,其用以儲存物理寄存器映射表的第一部分,所述第一塊中的每個寄存器用以儲存所述映射表的所述第一部分中的相應(yīng)項;第二寄存器塊,其用以儲存所述物理寄存器映射表的第二部分,所述第二塊中的每個 寄存器用以儲存所述映射表的所述第二部分中的相應(yīng)項;第一檢查邏輯,其被耦合到所述第一寄存器塊,用以在第一時鐘周期中從所述第一塊 的第一端朝著所述第一塊的與所述第一端相對的第二端來搜索所述第一塊中的寄存器,以 識別所述映射表的所述第一部分中的均指示相應(yīng)的物理寄存器為空的項;第二檢查邏輯,其被耦合到所述第一寄存器塊,用以在所述第一時鐘周期中從所述第 一塊的第二端朝著所述第一塊的第一端來搜索所述第一塊中的寄存器,以識別所述映射表 的所述第一部分中的均指示相應(yīng)的物理寄存器為空的項;第三檢查邏輯,其被耦合到所述第二寄存器塊,用以在所述第一時鐘周期中從所述第 二塊的第一端朝著所述第二塊的與所述第一端相對的第二端來搜索所述第二塊中的寄存 器,以識別所述映射表的所述第二部分中的均指示相應(yīng)的物理寄存器為空的項;以及第四檢查邏輯,其被耦合到所述第二寄存器塊,用以在所述第一時鐘周期中從所述第 二塊的第二端朝著所述第二塊的第一端來搜索所述第二塊中的寄存器,以識別所述映射表 的所述第二部分中的均指示相應(yīng)的物理寄存器為空的項。
22. 根據(jù)權(quán)利要求21所述的寄存器重命名系統(tǒng),其中所述第一和所述第二檢查邏輯中 的每個均接收第一多個標(biāo)記信號,其中每個標(biāo)記信號指示與所述映射表的第一部分中的相 應(yīng)項相關(guān)聯(lián)的相應(yīng)的物理寄存器是否為空,并且其中所述第三和第四檢查邏輯中的每個均 接收第二多個標(biāo)記信號,其中每個標(biāo)記信號指示與所述映射表的第二部分中的相應(yīng)項相關(guān) 聯(lián)的相應(yīng)的物理寄存器是否為空。
23. 根據(jù)權(quán)利要求21所述的寄存器重命名系統(tǒng),其中所述第一和第二檢查邏輯中的每 個均提供相應(yīng)的多個結(jié)果信號,其中每個結(jié)果信號均指示針對所述映射表的第一部分中的 相應(yīng)項的搜索結(jié)果,其中所述第一檢查邏輯選擇被識別成指示相應(yīng)的物理寄存器為空的項 中的第一項,其中所述第二檢查邏輯選擇被識別成指示相應(yīng)的物理寄存器為空的項中的第 二項,其中由所述第一檢查邏輯所提供的對應(yīng)于所選擇的第一項的結(jié)果信號被設(shè)置成第一 值而由所述第一檢查邏輯所提供的其他結(jié)果信號被設(shè)置成第二值,其中由所述第二檢查邏 輯所提供的對應(yīng)于所選擇的第二項的結(jié)果信號被設(shè)置成所述第一值而由所述第二檢查邏 輯所提供的其他結(jié)果信號被設(shè)置成所述第二值。
24. 根據(jù)權(quán)利要求23所述的寄存器重命名系統(tǒng),還包括第一配置邏輯,其被耦合到所述第一寄存器塊、所述第一檢查邏輯和所述第二檢查邏 輯,所述第一配置邏輯用以從所述第一和第二檢查邏輯接收所述結(jié)果信號,所述第一配置 邏輯用以接收第一組架構(gòu)寄存器標(biāo)識符并且將所接收的每個架構(gòu)寄存器標(biāo)識符儲存在所 述第一塊中的儲存著所述映射表的第一部分中的每個均指示相應(yīng)的物理寄存器為空的項 的那些寄存器中;以及第二配置邏輯,其被耦合到所述第二寄存器塊、所述第三檢查邏輯和所述第四檢查邏 輯,所述第二配置邏輯用以接收第二組架構(gòu)寄存器標(biāo)識符并且將所接收的每個架構(gòu)寄存器標(biāo)識符儲存在所述第二塊中的儲存著所述映射表的第二部分中的每個均指示相應(yīng)的物理 寄存器為空的項的那些寄存器中。
25. 根據(jù)權(quán)利要求24所述的寄存器重命名系統(tǒng),還包括分配邏輯,其被耦合到所述第一和第二配置邏輯,所述分配邏輯用以接收多個架構(gòu)寄 存器標(biāo)識符,其中每個架構(gòu)寄存器標(biāo)識符均標(biāo)識相應(yīng)的要重命名的架構(gòu)寄存器,將所接收 的每個架構(gòu)寄存器標(biāo)識符分組到所述第一組架構(gòu)寄存器標(biāo)識符和所述第二組架構(gòu)寄存器 標(biāo)識符中,并且分別將所述第一和第二組架構(gòu)寄存器標(biāo)識符提供給所述第一和第二配置邏 輯。
26. 根據(jù)權(quán)利要求25所述的寄存器重命名系統(tǒng),其中所述配置邏輯基于在前一時鐘周 期中提供給所述第一和第二配置邏輯中的每個的架構(gòu)寄存器標(biāo)識符的數(shù)目,均衡在給定時 鐘周期中提供給所述第一和第二配置邏輯中的每個的架構(gòu)寄存器標(biāo)識符的數(shù)目。
27. 根據(jù)權(quán)利要求26所述的寄存器重命名系統(tǒng),其中所述分配邏輯包括塊選擇電路,其用以提供塊選擇信號以均衡提供給所述第一和第二配置邏輯中的每個 的架構(gòu)寄存器標(biāo)識符的數(shù)目,所述塊選擇信號具有第一值或第二值;以及組交換電路,其被耦合以從所述塊選擇電路接收所述塊選擇信號,所述組交換電路用 以響應(yīng)于所述塊選擇信號具有所述第一值而將所述第一組架構(gòu)寄存器標(biāo)識符提供給所述 第一配置邏輯并將所述第二組架構(gòu)寄存器標(biāo)識符提供給所述第二配置邏輯,所述組交換電 路用以響應(yīng)于所述塊選擇信號具有所述第二值而將所述第一組架構(gòu)寄存器標(biāo)識符提供給 所述第二配置邏輯并將所述第二組架構(gòu)寄存器標(biāo)識符提供給所述第一配置邏輯。
28. 根據(jù)權(quán)利要求24所述的寄存器重命名系統(tǒng),還包括第一滿檢測器,其被耦合到所述第一和第二檢查邏輯以及所述第一配置邏輯,所述第 一滿檢測器用以提供第一和第二有效信號給所述第一配置邏輯,以指示所述映射表的第一 部分中是零個、一個還是兩個項指示著相應(yīng)的物理寄存器為空;以及第二滿檢測器,其被耦合到所述第三和第四檢查邏輯以及所述第二配置邏輯,所述第 二滿檢測器用以提供第三和第四有效信號給所述第二配置邏輯,以指示所述映射表的第二 部分中是零個、一個還是兩個項指示著相應(yīng)的物理寄存器為空。
29. 根據(jù)權(quán)利要求28所述的寄存器重命名系統(tǒng),其中所述第一配置邏輯包括多個第一 配置電路,每個第一配置電路針對所述第一寄存器塊中的相應(yīng)的一個寄存器,每個第一配 置電路接收來自所述第一檢查邏輯的結(jié)果信號中的相應(yīng)的一個結(jié)果信號和來自所述第二 檢查邏輯的結(jié)果信號中的相應(yīng)的一個結(jié)果信號,每個第一配置電路還接收兩個架構(gòu)寄存器 標(biāo)識符。
30. 根據(jù)權(quán)利要求29所述的寄存器重命名系統(tǒng),其中每個第一配置電路確定選擇所 述兩個架構(gòu)寄存器標(biāo)識符中的一個,并且響應(yīng)于所接收的結(jié)果信號指示與第一塊中的相應(yīng) 寄存器中所儲存的映射表的第一部分中的相應(yīng)項相關(guān)聯(lián)的物理寄存器為空,將所選擇的架 構(gòu)寄存器標(biāo)識符儲存在所述第一寄存器塊中的相應(yīng)寄存器中。
31. —種處理器,包括具有多個項的物理寄存器映射表,所述映射表中的每個項都指示相應(yīng)的物理寄存器的 狀態(tài);搜索邏輯,其被耦合用以并行地搜索所述映射表的多個段,以識別其中每個均指示著相應(yīng)的物理寄存器處于第一狀態(tài)的項,所述搜索邏輯搜索的映射表的每個段具有的相應(yīng)的 映射表項與所述搜索邏輯搜索的映射表的另外的段中的項互不相同;以及映射邏輯,其被耦合到所述搜索邏輯,所述映射邏輯用以接收多個架構(gòu)寄存器標(biāo)識符, 其中每個標(biāo)識符均指示著相應(yīng)的架構(gòu)寄存器,所述映射邏輯用以將所接收的每個架構(gòu)寄存 器標(biāo)識符映射到所述映射表的相應(yīng)段中的指示著相應(yīng)的物理表處于第一狀態(tài)的相應(yīng)項。
32. 根據(jù)權(quán)利要求31所述的處理器,還包括多個寄存器塊,每個塊都用以儲存所述映射表的相應(yīng)段以使所述塊中的每個寄存器儲 存所述映射表的相應(yīng)段中的相應(yīng)項,其中所述搜索邏輯被耦合用于并行地搜索所述多個寄 存器塊,以搜索儲存著指示相應(yīng)的物理寄存器處于第一狀態(tài)的映射表項的寄存器。
33. 根據(jù)權(quán)利要求32所述的處理器,其中所述搜索邏輯被耦合到所述寄存器塊,并且 同時從塊的第一端朝著所述塊的與所述第一端相對的第二端以及從所述塊的第二端朝著 所述塊的第一端來搜索每個所述寄存器塊,以搜索儲存著指示相應(yīng)的物理寄存器處于第一 狀態(tài)的映射表項的寄存器。
34. 根據(jù)權(quán)利要求32所述的處理器,其中所述搜索邏輯提供多個標(biāo)記信號給所述映射 邏輯,每個所述標(biāo)記信號都指示針對所述寄存器塊中的相應(yīng)寄存器的搜索結(jié)果,每個具有第一值的標(biāo)記信號用以指示所述相應(yīng)寄存器所儲存的相應(yīng)的映射表項指示著相應(yīng)的物理 寄存器處于所述第一狀態(tài),每個具有第二值的標(biāo)記信號用以指示所述相應(yīng)寄存器所儲存的 相應(yīng)的映射表項指示著相應(yīng)的物理寄存器處于不同于所述第一狀態(tài)的另一狀態(tài)。
35. 根據(jù)權(quán)利要求32所述的處理器,其中所述搜索邏輯包括多個寄存器搜索邏輯,每 個所述寄存器搜索邏輯被耦合到所述寄存器塊中的相應(yīng)一個塊,以同時從所述塊的第一端 朝著所述塊的與所述第一端相對的第二端以及從所述塊的所述第二端朝著所述塊的所述 第一端搜索所述相應(yīng)塊中的寄存器,以便搜索儲存著指示相應(yīng)的物理寄存器處于所述第一 狀態(tài)的映射表項的寄存器。
36. —種基于處理器的系統(tǒng),包括 輸入設(shè)備;輸出設(shè)備; 數(shù)據(jù)存儲設(shè)備;以及處理器,其耦合到所述輸入設(shè)備、所述輸出設(shè)備以及所述數(shù)據(jù)存儲設(shè)備,所述處理器包括多個寄存器塊,每個寄存器塊用以存儲物理寄存器映射表中的一段,以在相應(yīng)的寄存 器塊中的每個寄存器中存儲所述映射表的相應(yīng)項,每個項指示相應(yīng)的物理寄存器的狀態(tài);搜索邏輯,其被耦合到所述寄存器塊,所述搜索邏輯用以同時搜索所述寄存器塊中的 第一塊和第二塊,以識別所述第一塊和所述第二塊中所存儲的相應(yīng)項指示相應(yīng)的物理寄存 器處于第一狀態(tài)的寄存器;以及映射邏輯,其被耦合到所述寄存器塊和所述搜索邏輯,所述映射邏輯用以接收多個架 構(gòu)寄存器標(biāo)識符,其中每個架構(gòu)寄存器標(biāo)識符均標(biāo)識相應(yīng)的架構(gòu)寄存器,所述映射邏輯用 以將每個架構(gòu)寄存器標(biāo)識符映射到所述第一塊和所述第二塊中被識別為所存儲的相應(yīng)項 指示相應(yīng)的物理寄存器處于所述第一狀態(tài)的相應(yīng)的寄存器,以將每個架構(gòu)寄存器關(guān)聯(lián)到相 應(yīng)的物理寄存器。
37. 根據(jù)權(quán)利要求36所述的基于處理器的系統(tǒng),其中所述搜索邏輯同時按第一方向和 不同于所述第一方向的第二方向來搜索所述第一和所述第二寄存器塊中的至少一個塊,以 識別所述第一塊中所存儲的相應(yīng)項指示相應(yīng)的物理寄存器處于所述第一狀態(tài)的寄存器。
38. 根據(jù)權(quán)利要求37所述的基于處理器的系統(tǒng),其中所述處理器還包括 分配邏輯,其被耦合到所述映射邏輯,所述分配邏輯用以接收所述架構(gòu)寄存器標(biāo)識符,將所述架構(gòu)寄存器標(biāo)識符配置到多個組,以及按組將架構(gòu)寄存器標(biāo)識符提供給所述映射邏 輯。
39. 根據(jù)權(quán)利要求38所述的基于處理器的系統(tǒng),其中所述映射邏輯在每輪關(guān)聯(lián)中確定 被映射到所述第一和所述第二寄存器塊中的每個塊的架構(gòu)寄存器標(biāo)識符的數(shù)目,并且其中 所述映射邏輯基于在前一輪關(guān)聯(lián)中被映射到所述第一和所述第二寄存器塊中的每個塊的 架構(gòu)寄存器標(biāo)識符的數(shù)目,對在每輪關(guān)聯(lián)中被映射到所述第一和所述第二寄存器塊中的每 個塊的架構(gòu)寄存器標(biāo)識符的數(shù)目進行均衡。
40. 根據(jù)權(quán)利要求36所述的基于處理器的系統(tǒng),其中所述搜索邏輯接收針對寄存器塊 中的每個寄存器的空信號,其指示了與所述相應(yīng)的寄存器中所存儲的映射表的相應(yīng)項相關(guān) 聯(lián)的物理寄存器的狀態(tài),并且其中所述搜索邏輯提供針對每個空信號的標(biāo)記信號,以指示 相應(yīng)的物理寄存器的狀態(tài),所述標(biāo)記信號具有第一值或第二值,所述第一值用以指示相應(yīng) 的物理寄存器處于所述第一狀態(tài),所述第二值用以指示相應(yīng)的物理寄存器處于不同于所述 第一狀態(tài)的另一狀態(tài)。
41. 一種在處理器中執(zhí)行寄存器重命名的方法,所述方法包括同時搜索映射表的第一段和所述映射表的第二段,以識別所述映射表中的每個均指示 相應(yīng)的物理寄存器處于第一狀態(tài)的項;以及針對多個架構(gòu)寄存器,將與每個所述架構(gòu)寄存器相關(guān)的數(shù)據(jù)存儲在被識別為處于所述 第一狀態(tài)的物理寄存器中的相應(yīng)一個中,以將所述架構(gòu)寄存器關(guān)聯(lián)到被識別為處于所述第 一狀態(tài)的物理寄存器。
42. 根據(jù)權(quán)利要求41所述的方法,其中同時搜索映射表的第一段和所述映射表的第二 段包括同時搜索存儲在第一寄存器塊中的所述映射表的第一段以及存儲在第二寄存器塊 中的所述映射表的第二段。
43. 根據(jù)權(quán)利要求42所述的方法,其中同時搜索存儲在第一寄存器塊中的所述映射表 的第一段和存儲在第二寄存器塊中的所述映射表的第二段,包括同時按第一方向和與所述第一方向不同的第二方向來搜索存儲在第一寄存器塊中的 所述映射表的第一段;以及同時按所述第一方向和所述第二方向來搜索存儲在第二寄存器塊中的所述映射表的 第二段。
44. 根據(jù)權(quán)利要求41所述的方法,還包括在每輪關(guān)聯(lián)中,基于在前一輪的關(guān)聯(lián)中所述架構(gòu)寄存器到被識別為處于所述第一狀態(tài) 的物理寄存器之一的關(guān)聯(lián),對所述架構(gòu)寄存器到被識別為處于所述第一狀態(tài)的物理寄存器 的關(guān)聯(lián)進行均衡。
45. 根據(jù)權(quán)利要求44所述的方法,其中在每輪關(guān)聯(lián)中,基于在前一輪關(guān)聯(lián)中所述架構(gòu) 寄存器到被識別為處于所述第一狀態(tài)的物理寄存器之一的關(guān)聯(lián),對所述架構(gòu)寄存器到被識別為處于所述第一狀態(tài)的物理寄存器的關(guān)聯(lián)進行均衡,包括針對每輪關(guān)聯(lián),確定被關(guān)聯(lián)到與每段映射表相關(guān)的物理寄存器的架構(gòu)寄存器的數(shù)量;以及基于在前一輪關(guān)聯(lián)中被關(guān)聯(lián)到與每段映射表有關(guān)的物理寄存器的架構(gòu)寄存器的數(shù)量, 調(diào)節(jié)要被關(guān)聯(lián)到與每段映射表項有關(guān)的物理寄存器的架構(gòu)寄存器的數(shù)量。
46. —種在處理器中執(zhí)行寄存器重命名的方法,所述方法包括將物理寄存器映射表的項存儲在多個寄存器塊中,以使得相應(yīng)數(shù)目的項被存儲在所述 寄存器塊中的相應(yīng)寄存器塊中,所述項中的每個項指示著相應(yīng)的物理寄存器的狀態(tài);在第一時鐘周期中,按第一方向以及不同于所述第一方向的第二方向來搜索所述寄存 器塊中的第一塊,以識別其中每個都指示相應(yīng)的物理寄存器處于第一狀態(tài)的項;以及將多個架構(gòu)寄存器中的每個映射到相應(yīng)的被識別為處于所述第一狀態(tài)的物理寄存器。
47. 根據(jù)權(quán)利要求46所述的方法,還包括在所述第一時鐘周期中,按所述第一方向以及所述第二方向搜索所述寄存器塊中的不 同于所述第一塊的第二塊,以識別其中每個都指示相應(yīng)的物理寄存器處于所述第一狀態(tài)的 項。
48. 根據(jù)權(quán)利要求46所述的方法,其中將物理寄存器映射表中的項存儲在多個寄存器 塊中以使得相應(yīng)數(shù)目的項被存儲在所述寄存器塊中的相應(yīng)寄存器塊中包括將所述物理寄 存器映射表的項存儲在第一寄存器塊和第二寄存器塊中,以使得所述物理寄存器映射表中 的第一段的項被存儲在所述第一塊中并且所述物理寄存器映射表中的第二段的項被存儲 在所述第二塊中。
49. 根據(jù)權(quán)利要求48所述的方法,其中在第一時鐘周期中,按第一方向以及不同于所 述第一方向的第二方向來搜索所述寄存器塊中的第一塊以識別其中每個都指示相應(yīng)的物 理寄存器處于第一狀態(tài)的項,包括在所述第一時鐘周期中,按所述第一方向以及所述第二 方向來搜索所述第一和所述第二塊中的每個塊,以識別每個都指示相應(yīng)的物理寄存器處于 所述第一狀態(tài)的項。
50. 根據(jù)權(quán)利要求49所述的方法,其中所述將多個架構(gòu)寄存器中的每個映射到相應(yīng)的 被識別為處于所述第一狀態(tài)的物理寄存器,包括將第一架構(gòu)寄存器映射到與被存儲在所 述第一塊中的項之一相關(guān)聯(lián)的物理寄存器,以及將第二架構(gòu)寄存器映射到與被存儲在所述 第二塊中的項之一相關(guān)聯(lián)的物理寄存器。
51. 根據(jù)權(quán)利要求46所述的方法,其中將多個架構(gòu)寄存器中的每個映射到相應(yīng)的被識別為處于所述第一狀態(tài)的物理寄存器,包括將其中每個都通過多個傳輸路徑中的相應(yīng)路徑傳輸?shù)亩鄠€架構(gòu)寄存器標(biāo)識符中的每個映射到與被識別為處于所述第一狀態(tài)的物理寄 存器相關(guān)聯(lián)的相應(yīng)的項。
52. 根據(jù)權(quán)利要求51所述的方法,其中將其中每個都通過多個傳輸路徑中的相應(yīng)路徑 傳輸?shù)亩鄠€架構(gòu)寄存器標(biāo)識符中的每個映射到與被識別為處于所述第一狀態(tài)的物理寄存器相關(guān)聯(lián)的相應(yīng)的項,包括將在第一時鐘周期之后的第二時鐘周期中通過第一和第二傳輸路徑傳輸?shù)募軜?gòu)寄存器標(biāo)識符映射到所述第一塊中的處于所述第一狀態(tài)的項;以及將在第二時鐘周期之后的第三時鐘周期中通過所述第一和所述第二傳輸路徑傳輸?shù)募軜?gòu)寄存器標(biāo)識符映射到所述第二塊中的處于所述第一狀態(tài)的項,其中,響應(yīng)于第一塊中被識別為處于所述第一狀態(tài)的項的數(shù)量不同于第二塊中被識別 為處于所述第一狀態(tài)的項的數(shù)量,相應(yīng)地調(diào)整所述第二時鐘周期中或第三時鐘周期中映射 的架構(gòu)寄存器標(biāo)識符的數(shù)量。
53. 根據(jù)權(quán)利要求46所述的方法,其中在第一時鐘周期中,按第一方向以及不同于所 述第一方向的第二方向來搜索所述寄存器塊中的第一塊,包括在所述第一時鐘周期中,從 所述寄存器塊中的第一塊的第一端朝著所述塊的與所述第一端相對的第二端進行搜索以 及從所述塊的所述第二端朝著所述塊的所述第一端進行搜索。
54. 根據(jù)權(quán)利要求46所述的方法,還包括在搜索所述寄存器塊中的第一塊以識別處于所述第一狀態(tài)的項之后,提供多個信號, 其中每個信號都代表所述第一塊中的相應(yīng)寄存器,并且每個信號都具有指示相應(yīng)寄存器處 于所述第一狀態(tài)的第一值或指示相應(yīng)寄存器處于不同于所述第一狀態(tài)的另一狀態(tài)的第二 值。
55. 根據(jù)權(quán)利要求46所述的方法,還包括在所述第一時鐘周期中按所述第一方向和所述第二方向來搜索所述寄存器塊中的第 二塊以識別其中每個都指示相應(yīng)的物理寄存器處于所述第一狀態(tài)的項,以及其中將所述多 個架構(gòu)寄存器中的每個映射到相應(yīng)的被識別為處于所述第一狀態(tài)的物理寄存器包括將所 述多個架構(gòu)寄存器中的每個映射到與所述第一塊或所述第二塊中所存儲的項相關(guān)聯(lián)的物 理寄存器。
56. —種在處理器中執(zhí)行寄存器重命名的方法,所述方法包括將物理寄存器映射表的第一段中的項存儲在第一寄存器塊中以及將所述物理寄存器 映射表的第二段中的項存儲在第二寄存器塊中;在第一時鐘周期中,識別所述第一塊中的其中每個都指示相應(yīng)的物理寄存器為空的物 理寄存器映射表的項;在所述第一時鐘周期中,識別所述第二塊中的其中每個都指示相應(yīng)的物理寄存器為空 的物理寄存器映射表的項;將要重命名的多個架構(gòu)寄存器分組成第一組架構(gòu)寄存器和第二組架構(gòu)寄存器;將所述架構(gòu)寄存器組之一中的架構(gòu)寄存器關(guān)聯(lián)到所識別的與所述第一塊中所存儲的 映射表的項相關(guān)聯(lián)的空物理寄存器;以及將所述另一架構(gòu)寄存器組中的架構(gòu)寄存器關(guān)聯(lián)到所識別的與所述第二塊中所存儲的 映射表的項相關(guān)聯(lián)的空物理寄存器。
57. 根據(jù)權(quán)利要求56所述的方法,其中所述第一和所述第二塊均具有各自的第一端和 與所述各自的第一端相對的各自的第二端,以及在第一時鐘周期中識別所述第一塊中的其 中每個都指示相應(yīng)的物理寄存器為空的物理寄存器映射表的項,包括在所述第一時鐘周 期中通過同時從所述第一端朝著所述第二端進行搜索以及從所述第二端朝著所述第一端 進行搜索來識別所述第一塊中的其中每個都指示相應(yīng)的物理寄存器為空的物理寄存器映 射表的項。
58. 根據(jù)權(quán)利要求57所述的方法,其中在所述第一時鐘周期中識別所述第二塊中的其 中每個都指示相應(yīng)的物理寄存器為空的物理寄存器映射表的項,包括在所述第一時鐘周期中通過同時從所述第一端朝著所述第二端進行搜索以及從所述第二端朝著所述第一端 進行搜索來識別所述第二塊中的其中每個都指示相應(yīng)的物理寄存器為空的物理寄存器映 射表的項。
59. 根據(jù)權(quán)利要求56所述的方法,其中識別所述第一塊中的物理寄存器映射表的項, 包括識別所述第一塊中的多至兩個物理寄存器映射表項,以及,其中識別所述第二塊中的 物理寄存器映射表的項包括識別所述第二塊中的多至兩個物理寄存器映射表項。
60. 根據(jù)權(quán)利要求59所述的方法,其中將要重命名的多個架構(gòu)寄存器分組成第一組架 構(gòu)寄存器和第二組架構(gòu)寄存器,包括將要重命名的四個架構(gòu)寄存器分組成第一對架構(gòu)寄 存器和第二對架構(gòu)寄存器。
61. 根據(jù)權(quán)利要求60所述的方法,其中將所述架構(gòu)寄存器組之一中的架構(gòu)寄存器關(guān)聯(lián)到所識別的與所述第一塊中所存儲的映射表的項相關(guān)聯(lián)的空物理寄存器,包括將與所識 別的所述第一塊中的多至兩個項相關(guān)聯(lián)的物理寄存器與一對架構(gòu)寄存器關(guān)聯(lián)起來,并且其 中將另一架構(gòu)寄存器組中的架構(gòu)寄存器關(guān)聯(lián)到所識別的與所述第二塊中所存儲的映射表 的項相關(guān)聯(lián)的空物理寄存器,包括將與所識別的所述第二塊中的多至兩個項相關(guān)聯(lián)的物 理寄存器與另一對架構(gòu)寄存器關(guān)聯(lián)。
62. 根據(jù)權(quán)利要求56所述的方法,其中將要重命名的多個架構(gòu)寄存器分組成第一組架構(gòu)寄存器和第二組架構(gòu)寄存器,包括將所述要重命名的多個架構(gòu)寄存器按程序次序分組 成第一組架構(gòu)寄存器和第二組架構(gòu)寄存器。
63. 根據(jù)權(quán)利要求56所述的方法,還包括對所述架構(gòu)寄存器組到與所識別的所述第一和所述第二塊中的空項相關(guān)聯(lián)的物理寄 存器的關(guān)聯(lián)進行均衡。
64. 根據(jù)權(quán)利要求63所述的方法,其中對所述架構(gòu)寄存器組到與所識別的所述第一和 所述第二塊中的空項相關(guān)聯(lián)的物理寄存器的關(guān)聯(lián)進行均衡,包括響應(yīng)于在前一時鐘周期 中所識別的與所述第一塊中所存儲的項相關(guān)聯(lián)的空物理寄存器的數(shù)量以及與所述第二塊 中所存儲的項相關(guān)聯(lián)的空物理寄存器的數(shù)量,將每組架構(gòu)寄存器關(guān)聯(lián)到所識別的與所述第 一或第二塊中的項相關(guān)聯(lián)的相應(yīng)的空物理寄存器。
65. 根據(jù)權(quán)利要求56所述的方法,還包括將架構(gòu)寄存器之一的標(biāo)識符存儲在與被識別為空的物理寄存器之一相關(guān)聯(lián)的相應(yīng)項 中;以及設(shè)置將所述相應(yīng)項的狀態(tài)以指示相應(yīng)的物理寄存器的狀態(tài)為不同于空的狀態(tài)。
全文摘要
本發(fā)明提供了使用多塊物理寄存器映射表的寄存器重命名系統(tǒng)及其方法。提供了使用物理寄存器映射表的多塊實現(xiàn)的處理器架構(gòu)的多個實施例。將架構(gòu)寄存器關(guān)聯(lián)到物理寄存器的寄存器重命名系統(tǒng)包括物理寄存器映射表和重命名邏輯。物理寄存器映射表具有多個項,每個項指示相應(yīng)的物理寄存器的狀態(tài)。映射表具有多個非重疊段,其中每個段都具有映射表的相應(yīng)的項。重命名邏輯被耦合用以并行地搜索映射表的多個段,以識別指示相應(yīng)的物理寄存器具有第一狀態(tài)的項。重命名邏輯選擇性地將多個架構(gòu)寄存器中的每個關(guān)聯(lián)到相應(yīng)的被識別為處于第一狀態(tài)的物理寄存器。本發(fā)明還提供了使用物理寄存器映射表的多塊實現(xiàn)的方法。
文檔編號G06F9/38GK101794214SQ20091000488
公開日2010年8月4日 申請日期2009年2月4日 優(yōu)先權(quán)日2009年2月4日
發(fā)明者吳永強, 孫紅霞, 朱鵬飛 申請人:世意法(北京)半導(dǎo)體研發(fā)有限責(zé)任公司