用于在微處理器中進行選擇性重命名的方法和設備的制造方法
【專利說明】用于在微處理器中進行選擇性重命名的方法和設備
[0001] 枏據(jù)35U.S.C. § 119主張優(yōu)先權
[0002] 本專利申請案主張于2013年7月12日申請且轉(zhuǎn)讓給本案受讓人并以引用的方 式明確并入本文中的標題為"用于在微處理器中進行選擇性重命名的方法和設備"(Method andApparatusforSelectiveRenaminginaMicroprocessor)的第61/845, 476 號臨時 申請的優(yōu)先權。 技術領域
[0003] 本發(fā)明的各方面一般涉及處理器,且更特別地涉及在微處理器中進行選擇性重命 名。 【背景技術】
[0004] 寄存器重命名是在處理器中處理指令流時的常見進程。例如,指令根據(jù)指令集架 構生成架構化寄存器。架構化寄存器被重命名為物理寄存器,其存儲有指令的結(jié)果。
[0005] 重命名映射表(RMT)將架構化寄存器映射至物理寄存器。隨著程序執(zhí)行,架構化 寄存器不斷地被映射至物理寄存器,且可用于存儲結(jié)果的物理寄存器的數(shù)量可被快速耗 盡。因此,處理器的設計必須提供許多物理寄存器以確保通過指令生成的架構化寄存器的 每一個新代具有用于放置結(jié)果的物理寄存器。
[0006] 這本身是有問題的,這是因為標準的解決方案要具有高度移植的大物理寄存器堆 (PRF)。具有高度移植的PRF可影響處理器的循環(huán)時間、處理器的功耗以及處理器的時鐘速 度,即,處理器運行的多快或慢。
[0007] 因此,需要用于寄存器重命名的改進的設備和方法,從而可使PRF盡可能得小。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的實例性實施方案涉及系統(tǒng)、方法和非臨時性計算機可讀存儲媒體,其包 含當通過機器進行存取時會使所述機器執(zhí)行在微處理器(和/或處理器)中進行選擇性重 命名的方法的數(shù)據(jù)。例如,在一或多個實施方案中,一種操作處理器的方法通過獲得第一生 產(chǎn)者指令進行操作。所述第一生產(chǎn)者指令包含第一生產(chǎn)者指令結(jié)果。所述第一生產(chǎn)者指令 還包含第一標識符。所述第一標識符可包含指令序列標識符。所述第一標識符可包含令牌 計數(shù)。
[0009] 所述方法還通過生成用于所述第一生產(chǎn)者指令的架構化寄存器的第一代進行操 作。生成用于所述第一生產(chǎn)者指令的所述架構化寄存器的所述第一代包括標識重命名映射 表(RMT)中與所述架構化寄存器的所述第一代相對應的用于所述第一生產(chǎn)者指令的條目。
[0010] 所述方法進一步地通過將物理寄存器分配至所述架構化寄存器進行操作。將所述 物理寄存器分配至所述架構化寄存器包括標識所述重命名映射表(RMT)中與所述架構化 寄存器的所述第一代相關聯(lián)的用于所述第一生產(chǎn)者指令的物理寄存器條目。
[0011] 所述方法進一步地通過獲得第二生產(chǎn)者指令進行操作。所述第二生產(chǎn)者指令包含 第二生產(chǎn)者指令結(jié)果和第二標識符。所述第二標識符可包含指令序列標識符。所述第二標 識符可包含令牌計數(shù)。
[0012] 所述方法進一步地通過生成所述架構化寄存器的第二代并將所述物理寄存器分 配至所述架構化寄存器的所述第二代進行操作。
[0013] 所述方法進一步地通過如果所述第二標識符對應于所述第一標識符,則允許將所 述第二生產(chǎn)者指令結(jié)果寫入所述第一物理寄存器中的方式進行操作。所述方法進一步地通 過如果所述第二標識符不對應于所述第一標識符,則禁止將所述第二生產(chǎn)者指令結(jié)果寫入 所述第一物理寄存器中的方式進行操作。
[0014] 在一或多個實施方案中,所述方法進一步地通過將新的物理寄存器分配至所述架 構化寄存器的所述第二代以及如果所述新的物理寄存器與所述物理寄存器相同,則釋放所 述物理寄存器的方式進行操作。
[0015] 所述處理器可以是亂序處理器。所述第一生產(chǎn)者指令可以是潛在的管線清除指 令。在一些實施方案中,所述架構化寄存器是由指令集架構所限定的。
[0016] 在一或多個實施方案中,所述方通過確定所述第一生產(chǎn)者指令為潛在的管線清除 指令并響應于關于所述第一生產(chǎn)者指令為潛在的管線清除指令的所述確定復位所述第一 和第二標識符進行操作。
[0017] -或多個實施方案包含處理器,其被配置成在管線中處理指令以生成至少一個架 構化寄存器和至少一個指令結(jié)果。所述處理器可包含重命名映射表(RMT)。RMT可包含分 別將至少一個架構化寄存器映射至至少一個物理寄存器的至少一個條目。在所述RMT中的 至少一個條目包含RMT標識符。
[0018] 所述處理器還可包含物理寄存器堆(PRF)。PRF可包含表示所述至少一個物理寄 存器的至少一個條目。在所述PRF的所述至少一個條目可包含PRF標識符。
[0019] 所述處理器可包含執(zhí)行模塊,其被配置成如果所述PRF標識符對應于所述RMT標 識符,則允許將所述指令結(jié)果寫入所述物理寄存器中。所述執(zhí)行模塊還可在如果所述PRF 標識符不對應于所述RMT標識符的情況下,禁止將所述指令結(jié)果寫入所述物理寄存器中。
[0020] 在替代的實施方案中,一種操作處理器的方法通過從處理器管線獲得第一生產(chǎn)者 指令進行操作。所述第一生產(chǎn)者指令可包含第一生產(chǎn)者指令結(jié)果。所述處理器可包含數(shù)據(jù) 轉(zhuǎn)發(fā)網(wǎng)絡。操作所述處理器的所述方法可進一步地通過生成用于所述第一生產(chǎn)者指令的架 構化寄存器的第一代并獲得第二生產(chǎn)者指令進行操作。所述第二生產(chǎn)者指令可包含第二生 產(chǎn)者指令結(jié)果。操作所述處理器的所述方法可進一步地通過生成所述架構化寄存器的所述 第二代、將物理寄存器分配至所述架構化寄存器的所述第二代、允許將所述第二生產(chǎn)者指 令結(jié)果寫入所述物理寄存器中并允許從所述數(shù)據(jù)轉(zhuǎn)發(fā)網(wǎng)絡讀取所述第一生產(chǎn)者指令進行 操作。
[0021] 提交了本
【發(fā)明內(nèi)容】
,要理解的是其不用于解釋或限制權利要求的范圍或含義。本
【發(fā)明內(nèi)容】
并不旨在識別所主張的主題的關鍵或必要的特性,也不旨在幫助確定所主張的主 題的范圍。 【附圖說明】
[0022] 附圖是為了有助于描述本文所描述的技術的實施方案而提出的且僅是為了說明 實施方案而非對其進行限制而提供的。
[0023] 圖1為根據(jù)一或多個實施方案的實例性處理器的框圖。
[0024] 圖2為根據(jù)一或多個實施方案的更詳細的關于圖1中所示的實例性處理器的圖。
[0025] 圖3示出根據(jù)一個實施方案的用于在指令重命名階段在處理器中進行選擇性重 命名的方法的實例性流程圖。
[0026] 圖4示出根據(jù)一個實施方案的用于在指令完成階段在處理器中進行選擇性重命 名的方法的實例性流程圖。
[0027] 圖5示出根據(jù)一個實施方案的用于在指令提交/撤回階段在處理器中進行選擇性 重命名的方法的實例性流程圖。
[0028] 圖6示出根據(jù)一個替代實施方案的在使用數(shù)據(jù)轉(zhuǎn)發(fā)網(wǎng)絡的處理器中進行選擇性 重命名的方法的實例性流程圖。
[0029] 【具體實施方式】參照了附圖。在附圖中,參考數(shù)字的最左邊的數(shù)字(多個數(shù)字)標 識參考數(shù)字最初出現(xiàn)的圖。在所有附圖中使用相同的數(shù)字以表示相同的特性和組件。 【具體實施方式】
[0030] 通常,本文所揭示的主題的一個實施方案涉及在亂序處理器(和/或處理器)中 進行選擇性重命名以改善處理器的循環(huán)時間、處理器的功耗以及處理器的時鐘速度,即處 理器運行得多快或慢。在寄存器重命名中,當通過指令第一次生成架構化寄存器時,其基于 用于特定處理器的指令集架構(ISA)被重命名為不同的名字,即物理寄存器名。當通過指 令第二次生成架構化寄存器時,通常向架構化寄存器的第二代分配不同于之前分配的物理 寄存器的新的物理寄存器。以這種方式,處理器現(xiàn)在即可按與用于新的物理寄存器的指令 結(jié)果的生產(chǎn)和消耗相平行或亂序的方式執(zhí)行用于之前的物理寄存器的指令結(jié)果的生產(chǎn)和 消耗。這個進程往往會快加處理器的操作。
[0031] 重命名映射表(RMT)將架構化寄存器的名字映射至所分配的物理寄存器,從而使 用于指令結(jié)果的生產(chǎn)者/消費者對知道要查找到用于寫入/讀取的重命名的物理寄存器。 當向架構化寄存器的第二代分配新的物理寄存器時,RMT相應地進行更新,從而使第二生產(chǎn) 者/消費者對知道要查找到用于寫入/讀取的重命名的物理寄存器。
[0032] 這個重命名進程所存在的一個問題是要向相同的架構化寄存器的每一代分配不 同的物理寄存器。即,要向每個生產(chǎn)者/消費者對分配不同的物理寄存器。其結(jié)果是,要么 處理器快速地用完物理寄存器,要么物理寄存器堆(PRF)變得相當大。
[0033] 根據(jù)本文所述的一或多個實施方案,PRF的大小可以減小,這是因為在寄存器重命 名期間,重用了物理寄存器。在一或多個實施方案中,物理寄存器的重用是利用潛在的管線 清除(PPF)指令、潛在的恢復點或類似物而實現(xiàn)的。PPF指令為處理器在取指令時間推測下 一條指令將是什么的指令。
[0034] 條件轉(zhuǎn)移指令為PPF指令的一個實例。使用條件轉(zhuǎn)移指令,處理器不知道是否將 進行轉(zhuǎn)移直到指令實際執(zhí)行為止。鑒于其不是使處理器進行等待直到實際執(zhí)行為止的最佳 方式,這是因為完成指令要進行許多循環(huán),例如,轉(zhuǎn)移預測器用于通過推測或猜測最終將采 用哪種轉(zhuǎn)移并從轉(zhuǎn)移預測器所提供的目標地址取指令而使進程加速。
[0035] 如果轉(zhuǎn)移預測被證明是不正確的且響應于轉(zhuǎn)移預測而取的指令不應該已被執(zhí)行 過,處理器則試圖將其狀態(tài)恢復至推測出錯的點上。即,處理器將試圖假裝好像未超越PPF指令發(fā)生過什么一樣且處理器將試著將其狀態(tài)重建為其實際在PPF指令時的狀態(tài)。
[0036] PPF指令的另一個實例是存儲器操作(即,加載或存儲),其在轉(zhuǎn)換后備緩沖器 (TLB)中遭遇遺漏并導致頁面錯誤,并需要控制以切換至隨后將正確的轉(zhuǎn)換加載至TLB中 的操作系統(tǒng)代碼。
[0037] 在本文所述的一或多個實施方案中,在管線中具有兩個PPF指令,以及在其之間 的非PPF指令。在這種情況下,沒有任何理由使處理器的狀態(tài)將必須再落在兩個PPF指令 之間。如果處理器的狀態(tài)需要恢復至第一PPF指令,其將落在第一PPF指令處或如果處理 器的狀態(tài)需要恢復至第二PPF指令,其將落在第二PPF指令處。處理器的狀態(tài)將無需恢復 至在兩個PPF指令之間的任何點上,如架構化寄存器被第一次重命名為物理寄存器處。
[0038] 此外,如果在所分配的第一物理寄存器中寫入的結(jié)果已被消耗掉,那么則無需向 通常分配有不同于之前的物理寄存器的新的物理寄存器的架構化寄存器的下一代分配新 的物理寄存器。根據(jù)本文所述的實施方案,架構化寄存器的下一代會重用之前的物理寄存 器。即,知道在架構化寄存器的前一代和架構化寄存器的下一代之間不具有PPF指令的處 理器會將之前的物理寄存器分配至出現(xiàn)的下一個生產(chǎn)者/消費者對。
[