新四季網

改善亂序超純量執行單元的微處理器及方法

2023-06-29 06:16:31 2

專利名稱:改善亂序超純量執行單元的微處理器及方法
技術領域:
本發明有關於一種亂序(out-of-order)執行微處理器,且特別有關於一種處理 器中的指令引退(Retirement)。
背景技術:
超純量微處理器(Superscalar Microprocessor)具有多個執行單元,其用以執行 微處理器的指令集。超純量微處理器通過納入多個執行單元來改善執行效能,故在每個時 脈中可並行執行多個指令。要實現潛在執行效能獲益的關鍵是保持指令可供給執行單元來 執行,否則使用超純量(Superscalar)的執行效能不會比使用純量(Scalar)來的好,但卻 增加許多的硬體成本。舉例來說,執行單元要載入與儲存微指令運算元、計算地址、執行邏 輯與算術操作並且還要解析分支指令。當執行單元的數量與種類愈多,回歸到程序指令串 流(Program instructionstream)的距離就越遠,而處理器就必須有能力找到每一執行單 元在每一時脈周期所將執行的指令,此即處理器的預看(lookahead)能力。
在 一 亂序的超純量微處理器中,雖然指令可亂序執行(out-of-order execution),但必須以一程序順序(programorder)來引退。進行亂序執行的微處理器需要 一緩衝器使微指令在執行過後以一程序順序來引退。在某些微處理器中,該緩衝器稱為重 排序緩衝器(reorder buffer,以下簡稱為ROB) 。 ROB具有固定數量的通道,並且可暫存微 指令以及與每一微指令相關的狀態信息。引退R0B中的微指令包括儲存微指令的結果至微 處理器的結構暫存器,並且使微指令佔用的ROB通道被釋放(free),故可將新的微指令分 派在ROB中的一通道中。 ROB的大小,亦即通道數量(number of entries),限制處理器的預看能力。特別 的是,由於在指令準備好被發布前,必須分派一 ROB通道給該指令,故ROB的大小會限制可 準備被發布(issued)以被執行的指令的數量。當ROB的所有通道都已滿(full)時,存放 最久的指令(oldest instruction)必須被引退,亦即根據其結果更新結構狀態,使得該存 放最久的指令的ROB通道可被釋放以重新配置新的指令。增加微處理器的預看能力的其中 一個方法是增加ROB中的通道數。然而,每一 ROB通道需要微處理器中相對大量的空間與 功率以儲存其信息,例如,指令本身、儲存結果的暫存空間以及有關指令的其它信息。因此, 令ROB的尺寸變大與增加微處理器的預看能力相比,其代價是相對較高的。
因此,需要儘可能的將R0B以一較高效率的方式來使用,以在良好使用執行單元 的情況下改善執行效率,同時儘可能地將ROB的大小維持在小尺寸。

發明內容
基於上述目的,本發明實施例揭露了 一種改善亂序超純量執行單元 (0ut-of-0rder Superscalar Execution Unit)的微處理器,其使用 一相對小的在序 (in-order)指令引退(Retirement)緩衝器並且通過選擇性地提早初始指令引退來實 現,該微處理器包括多個執行單元與一引退單元(Retire Unit)。每一執行單元用以計算一指令的結果,其中該指令為一例外類別(exc印tingtype)指令或一非例外類別 (non-exc印ting type)指令,其中該例外類別指令可在被發送至該執行單元以計算其結果 後令該微處理器取得一例外狀況(exc印tion),而該非例外類別指令無法在被發送至該執 行單元以計算其結果後令該微處理器取得一例外狀況。該引退單元耦接於所述執行單元, 該引退單元用以判斷一指令在該微處理器中是否為存放最久的指令以及該指令是否已準 備好利用其結果來更新該微處理器的結構狀態(architectural state),其中該引退單元 用以在該執行單元輸出該非例外類別指令的結果前執行該判斷操作,其中該引退單元用以 在該執行單元輸出該例外類別指令的結果後執行該判斷操作。 本發明實施例還揭露了一種改善亂序超純量執行單元的方法,其使用一相對小的 在序指令引退緩衝器,並且通過選擇性地提早初始指令引退來實現。計算一指令的結果,其 中該指令為一例外類別指令或一非例外類別指令,其中該例外類別指令可在被發送至一執 行單元以計算其結果後令微處理器取得一例外狀況,而該非例外類別指令無法在被發送至 該執行單元以計算其結果後令該微處理器取得一例外狀況。判斷一指令在該微處理器中是 否為存放最久的指令以及該指令是否已準備好利用其結果來更新該微處理器的結構狀態。 該判斷操作包括在該執行單元輸出該非例外類別指令的結果前執行該判斷操作。該判斷操 作包括在該執行單元輸出該例外類別指令的結果後執行該判斷操作。 本發明實施例還揭露了一種使用運算裝置的電腦程式產品,該電腦程式產品 包括一計算機可使用儲存介質。該計算機可使用儲存介質包括載入至該計算機可使用儲存 介質的計算機可讀取程序碼,用以說明一種改善亂序超純量執行單元的微處理器,其使用 一相對小的在序指令引退緩衝器並且通過選擇性地提早初始指令引退來實現。該計算機可 讀取程序碼包括第一程序碼與第二程序碼。第一程序碼用以說明(specifying)多個執行 單元,每一執行單元用以計算一指令的結果,其中該指令為一例外類別指令或一非例外類 別指令,其中該例外類別指令可在被發送至該執行單元以計算其結果後令該微處理器取得 一例外狀況,而該非例外類別指令則無法在被發送至該執行單元以計算其結果後令該微處 理器取得一例外狀況。第二程序碼用以說明一引退單元,該引退單元耦接於所述執行單元, 用以判斷一指令在該微處理器中是否為存放最久的指令以及該指令是否已準備好利用其 結果來更新該微處理器的結構狀態,其中該引退單元用以在該執行單元輸出該非例外類別 指令的結果前執行該判斷操作,其中該引退單元用以在該執行單元輸出該例外類別指令的 結果後執行該判斷操作。 本發明可增加預看能力與執行單元的使用性,從而增加亂序執行的微處理器的執 行效能。


圖1是顯示本發明實施例的微處理器的架構示意圖。 圖2是顯示本發明實施例的圖1的ROB中的微指令通道的架構示意圖。 圖3a是顯示本發明實施例的非早期引退微指令的發布與執行階段(issue and
execute stage)以及弓l退階段(retirementstage)的架構示意圖。 圖3b是顯示本發明實施例的早期引退微指令的發布與執行階段以及引退階段的 架構示意圖。
圖4a是顯示本發明實施例的三個非早期引退微指令序列的表格示意圖。 圖4b是顯示本發明實施例的圖4a的非早期引退微指令序列的進展的時序圖。 圖5a是顯示本發明實施例的九個早期引退微指令序列的表格示意圖。 圖5b是顯示本發明實施例的根據圖3b的階段所呈現的圖5a的早期引退微指令
序列的進展的時序圖。 圖6是顯示本發明實施例的圖1中微處理器操作的步驟流程圖。
具體實施例方式
為了讓本發明的目的、特徵及優點能更明顯易懂,下文特舉較佳實施例,並配合所 附圖式圖1至圖6,做詳細的說明。本發明說明書提供不同的實施例來說明本發明不同實施 方式的技術特徵。其中,實施例中的各元件的配置是為說明之用,並非用以限制本發明。且 實施例中圖式標號的部分重複,是為了簡化說明,並非意指不同實施例之間的關聯性。
本發明實施例揭露了一種改善亂序超純量執行單元的微處理器與方法以及使用 運算裝置的電腦程式產品。 圖1是顯示本發明實施例的微處理器100的架構示意圖。微處理器100包括一重 命名(rename) /分派(allocate)/派送(dispatch)單元104、耦接於重命名/分派/派送 單元104的保留站(reservation stations) 106、耦接於保留站106的執行單元108、耦接 於保留站106與執行單元108的發布邏輯112、耦接於重命名/分派/派送單元104及執行 單元108與發布邏輯112的重排序緩衝器(ROB) 114、耦接於執行單元108與發布邏輯112 的推測暫存器(Speculative Register) 116、耦接於執行單元108及重排序緩衝器114與推 測暫存器116的多工器118、以及耦接於多工器118與發布邏輯112的結構暫存器122。
在了解硬體成本與增加ROB大小相關的額外複雜性時,本發明發明人也了解在微 處理器中,部份從重排序緩衝器114中所引退指令所執行的操作需耗費多個時脈周期來進 行。上述操作包括更新指令的狀態至其在重排序緩衝器114中的通道,並且接著分析重排 序緩衝器114中存在最久的指令的狀態以分辨是否已準備好要引退命令。 一般來說,重排 序緩衝器114在執行單元108輸出指令的執行結果與信號完成之後以及在重排序緩衝器 114更新結構狀態之前執行上述操作,並且釋放重排序緩衝器114中的該通道。本發明發明 人認為,當引退單元開始執行引退指令的程序時,只要該指令不產生一例外狀況,亦即沒有 產生指令結果之時,重排序緩衝器114可在指令執行的同時,並行地執行一些上述的引退 操作。 因此,本發明實施例修改微處理器100,對具有固定執行延遲(latency)的非例外 指令產生一早期完成信號(earlycompletion signal) 156。微處理器100取得該非例外指 令的固定執行延遲,並且根據其執行指令的時脈周期數目產生早期完成信號156時,可使 得執行單元108提供結果144以及時更新結構暫存器122,並釋放重排序緩衝器114的通道 給新的指令。在一實施例中,非例外指令可比具有相同的執行延遲且在相同時脈周期被發 布的例外指令早三個時脈周期被引退。在一實施例中,發布邏輯112發布指令給執行單元 108來執行,並且產生早期完成信號156。 再參考圖1,重命名/分派/派送單元104接收包括早期引退微指令126與非早期 引退微指令124的微指令。如下文詳述的,發布邏輯112產生早期引退微指令126的早期完成信號156,並且執行單元108產生非早期引退微指令124的一般完成信號138。
早期引退微指令126在發布給執行單元108後無法產生一例外狀況。許多指 令可產生例外狀況。舉例來說,指令可產生運算元相關的例外狀況(operand-related exc印tion)(例如,除以零(divide-by-zero)錯誤)或者指令可產生地址相關錯誤,例如, 分頁錯誤。當微指令產生錯誤時,如果可能的話,微處理器100必須中斷程序以檢視例外 狀況與修正錯誤。微處理器100通過儲存微處理器100的離開狀態(away state)來管 理例外狀況,包括引起例外狀況的指令的地址。微處理器ioo接著清除存在時間短於該 例外指令的任何指令,並且將控制權轉移至與特定類別的例外狀況相關的微代碼例行程序 (microcode routine)。對於結構例外狀況來說,該微代碼例行程序最終將控制權轉移給操 作系統中例外類別的例外處理機例行程序(exc印tionhandler routine)。對於部分例外類 別而言,例外處理機例行程序最後執行一指令(例如,IA-32結構中的IRET指令)以將控制 權移轉回該例外指令或包括該例外指令的程序中的另一指令序列。然而,在部分案例中,例 外處理機例行程序不會將控制權移轉回引發例外狀況的程序,取而代之的是完全中止該程 序。當引發例外狀況時,微處理器IOO清除存在時間短於該例外指令的指令,故不保證新的 指令會不會被重新執行。此外,若新的指令被重新執行,則其接收的輸入運算元值不同於前 次執行期間所接收的輸入運算元值,故可能產生不同於初始執行的結果值。基於上述理由, 微處理器100不會在早期引退例外指令。例外狀況的其中一種類別為重播(r印lay),其為 非結構微例外狀況(non-architectural micro-exc印tion)。也就是,重播為微處理器的微 結構(microarchitecture)所認可但不被微處理器的巨結構(macroarchitecture)所認可 的例外狀況。當處理器執行指令重播或設定,其將自指令管線清除指令並且重新發布上述 指令以被執行。當上述指令被重新執行,則其源運算元被重新提取(re-fetch)並且提供給 執行單元,且在重新執行期間的處理器狀態是不同於第一次執行時的狀態。
在一實施例中,早期引退微指令126的另一特色為需要固定的時脈周期數來執 行,且在發布邏輯112發布指令的時間點得知指令的固定執行延遲。在產生重排序緩衝器 114的早期完成信號156之前,若有的話,發布邏輯112精確得知有多少時脈在等待。因此, 發布邏輯112不產生具有變動執行時間的指令的早期完成信號156,例如,執行時間根據其 輸入值而改變的指令。 重命名/分派/派送單元104接收微指令124/126並且判斷其運算元相依性。重 命名/分派/派送單元104亦分派重排序緩衝器114中的一釋放通道給每一微指令134,並 且將微指令134寫入該分派通道的一微指令欄位204(如圖2所示)。不幸的是,若重排序 緩衝器114已滿,即若重排序緩衝器114中沒有閒置的通道,則因為沒有地方可儲存微指令 124/126,故重命名/分派/派送單元104無法繼續提供指令來執行,其對於執行單元108的 使用可能有不好的影響。因此,本發明實施例的早期引退特色,可令重排序緩衝器114中的 通道比一般使用情形被提前釋放(如上文所述),從而明顯的提高執行單元108的使用率。
在一實施例中,保留站106為一隊列,其將指令暫存在該隊列的每一儲存位置中。
執行單元108包括用以執行微處理器100的微指令集中的每一微指令124/126的 各個執行單元。舉例來說,微處理器100可能具有用以執行整數與邏輯運算、浮點數運算、 多媒體運算、數據載入運算、數據儲存運算、分支指令解析以及其它函數的各個執行單元。
重排序緩衝器114引退微指令124/126。特別的是,雖然微指令124/126可被執行單元108以亂序的方式(即,非以程序順序)執行,但重排序緩衝器114可對其進行確認, 並使其得以在序的方式(即,以程序順序)引退。重排序緩衝器114可暫存微指令以及與 微指令相關的狀態信息。重排序緩衝器114包括固定數目的通道,其中每一通道儲存一微 指令以及與微指令相關的狀態。在一實施例中,重排序緩衝器114具有48個通道。然而, 在其他實施例中,重排序緩衝器114可能具有較少或較多的通道。重排序緩衝器114亦包 括控制邏輯,其用以執行與指令引退有關的不同功能,如本文所述,特別的是有關圖3a至 圖5b的(A)階段318、 (B)階段322與(C)階段324所示。 圖2是顯示本發明實施例的圖1的重排序緩衝器114中的微指令通道的架構示意 圖。每一微指令通道包括一微指令欄位204、完成旗標206以及例外旗標208。重命名/分 派/派送單元104分派重排序緩衝器114中的通道給每一微指令124/126,並接著將微指令 124/126寫入至微指令欄位204。當完成旗標206為真(true)時,其實際上表示微指令欄 位204已完成執行且準備好自重排序緩衝器114引退以及表示將微指令204的結果更新至 微處理器100的結構狀態中是安全的。此對於非早期引退微指令124來說完全是合乎標準 的,且對於早期引退微指令126來說實際上也是合乎標準的,關於這點將在後面詳加描述。 當例外旗標208為真(true)時,表示微指令已產生一例外狀況。 再參考到圖l,對應重排序緩衝器114的每一通道的是推測暫存器116中的推測暫 存器148,其用以暫存對應執行微指令的結果。對於圖1中的通道38來說,推測暫存器116 中的推測暫存器148用以儲存該結果。 若重排序緩衝器114中具有一有效通道,則重命名/分派/派送單元104將微指令 134寫入重排序緩衝器114的該有效通道的微指令欄位204中。若重排序緩衝器114中不 具有有效通道時,則重命名/分派/派送單元104開始等待,直到重排序緩衝器114中的一 通道變成有效。在圖1中,該有效通道如總數48個通道中的通道38所示。然而,實際上該 通道可以是重排序緩衝器114中的任何通道。在並行將微指令134寫入重排序緩衝器114 中的情況下,重命名/分派/派送單元104將微指令134傳送給對應將執行微指令134的 執行單元的保留站106中的保留站。微指令134可以是早期引退126或非早期引退類別的 微指令。 發布邏輯112耦接於保留站106、執行單元108與重排序緩衝器114,並且當微指 令具有所有有效的來源運算元且執行單元可執行該微指令時,將保留站106的微指令傳送 給執行單元108。發布邏輯112亦對微指令的早期引退進行確認、以及與重排序緩衝器114 溝通以完成其早期引退,後續的圖示將針對這些內容進行討論。 微處理器100包括結構暫存器122,其可儲存常數、地址以及其它做為微指令134 的運算元的數據。由執行單元108而來的中介(Intermediate)結果則寫入推測暫存器116 中。發布邏輯112自結構暫存器122、推測暫存器116與自執行單元轉送的數據中取得微指 令運算元。 對於非早期引退微指令124來說,執行單元產生一般標籤(normal tag) 136 給重排序緩衝器114,其表示重排序緩衝器114中的通道會被執行單元108更新。執 行單元108亦當非早期引退微指令124完成執行時,產生一般完成信號(normal completionsignal) 138與一般例外狀態信號(normal exc印tion status) 142。如果例外 狀況與非早期引退微指令124相關,在執行單元108產生一般完成信號138與一般例外狀
8態信號142的時脈周期中,重排序緩衝器114會設定完成旗標206,並且寫入例外旗標208。
對於早期引退微指令126來說,發布邏輯112產生早期標籤158給重排序緩衝器 114,其表示重排序緩衝器114中的通道會被發布邏輯更新。發布邏輯112亦在早期引退微 指令126完成執行時產生早期完成信號(early completion signal) 156與早期例外狀態 信號(early exc印tion status) 162。在發布邏輯112產生早期完成信號156與早期例外 狀態信號162的後續時脈周期中,由於早期引退微指令126無法引發例外狀況,故重排序緩 衝器114設定完成旗標206並且清除例外旗標208。 結果144由執行單元108基於非早期引退微指令124與早期引退微指令126而 產生。結果144寫入至推測暫存器116並且提供給多工器118。多工器118根據結果選擇 168以在結果144與推測結果166兩者之間進行選擇。多工器118的輸出為選擇數據172, 並且提供給結構暫存器122以更新微處理器100的結構狀態。多工器118的操作以及非早 期引退微指令124與早期引退微指令126的處理將根據剩餘的圖式詳述於下文。
圖3a是顯示本發明實施例的非早期引退微指令124的發布與執行階段(issue and execute stage)以及引退階段(retirementstage)的架構示意圖。非早期引退微指令 124的一般流程(g卩,正常流程)經由6個發布與執行階段以及三個引退階段來完成。在時 脈周期0之前,重命名/分派/派送單元104將不同的微指令134傳送至保留站106中的 一保留站,其是發布邏輯112確認微指令為非早期引退微指令124之處。
第一階段為派送階段(D)304,其執行於時脈周期0中。發布邏輯112自每一保留 站106選擇存在最久的準備微指令並且派送該微指令。 第二階段為隊列階段(Q)306,其執行於時脈周期1中。發布邏輯112取得非早 期引退微指令124的指令數據。指令數據包括微指令124的標籤,該標籤用以確認微指令 124在重排序緩衝器114中的通道以及與該非早期引退微指令124相關的常數與確認符 (identifier)。 第三階段為暫存器文件階段(R)308,其執行於時脈周期2中。發布邏輯112利用 隊列階段(Q)306中取得的標籤,來取得非早期引退微指令124的來源運算元。上述運算元 可自結構暫存器122、推測暫存器116或轉送自執行單元108的相同或不同執行單元取得。
第四階段為發布階段(1)312,其執行於時脈周期3中。在發布階段(1)312中,發 布邏輯112將非早期引退微指令124以及所提取的運算元與數據傳送至執行單元108。
第五階段為執行階段(E)314,其執行於時脈周期4中。在執行階段(E)314中,執 行單元108執行非早期引退微指令124以產生非早期引退微指令124的結果。雖然為了容 易理解,執行階段314僅以單一時脈的持續期間來顯示,但實作上可以顯示為多個時脈。執 行最快的微指令僅需單一時脈,但執行其它微指令則需要多個時脈。要執行有些較高複雜 度的微指令還要多達10個時脈。因此,對於需要大於l個時脈的執行階段(E)314來說,後 續階段將會根據執行時間而延遲一定數目的時脈。 第六階段為寫回階段(W)316,其執行於時脈周期5中。在寫回階段(W)316中,執 行單元108將非早期引退微指令124的執行結果寫回推測暫存器116中。執行單元108亦 產生一般標籤136、一般完成信號138以及一般例外狀態信號142給重排序緩衝器114。 一 般標籤136用來確認一般完成信號138以及一般例外狀態信號142會被寫回至重排序緩衝 器114中的通道中。
第七階段為更新ROB階段(A)318,其執行於時脈周期6中。重排序緩衝器114將 執行單元108在寫回階段(W)316中產生的一般完成信號138與一般例外狀態信號142寫 回對應一般標籤136的重排序緩衝器114的通道中。當在時脈周期6接收到一般完成信號 138時,重排序緩衝器114設定重排序緩衝器114中的完成旗標206,以表示重排序緩衝器 114的通道38中的微指令已準備好引退。 一般例外狀態信號142儲存在重排序緩衝器114 的例外旗標208中,以表示非早期引退微指令124是否產生例外狀態。
第八階段為找出存在最久通道階段(B)322,其執行於時脈周期7中。在找尋存在 最久通道階段(B)322中,重排序緩衝器114窺探(snoop)重排序緩衝器114中的存在最久 的微指令,若有的話,則判斷有多少個微指令在後續時脈周期中被引退。可能被同時引退的 最大數量的微指令,視微處理器100的設定而定,但在一實施例中,可同時被引退的微指令 的最大數量為3個。只有在設定完成旗標206且清除例外旗標208時,微指令才會被引退。 所有微指令必須依序被引退。因此,若存在最久的微指令尚未準備好被引退之時,則沒有其 它微指令會在它之前被引退。 第九階段為引退階段(C)324,其執行於時脈周期8中。在引退階段(C)324中, 重排序緩衝器114釋放所有正被引退的微指令的通道,並且將微指令的各自的推測暫存器 116中的結果寫至適當的結構暫存器122。重排序緩衝器114產生結果選擇168給多工器 118以選擇推測結果166。多工器118接著輸出選擇數據172至結構暫存器122。此時,微 指令已被引退,且執行的結果已被寫入至結構暫存器122。雖然引退階段A 318、B 322與C 324用管線階段來描述,但在一實施例中,它們可以是重排序緩衝器114的控制邏輯中的狀 態機,在連續時脈周期期間所執行的操作。 圖3b是顯示本發明實施例的早期引退微指令126的發布與執行階段以及引退階 段的架構示意圖。早期引退微指令126的早期流程(即,早期引退流程),經由6個發布與 執行階段以及與圖3a中的非早期引退微指令124相同的三個引退階段來完成。然而,早期 引退微指令126的特色允許發布與執行階段與某些引退階段同時發生,故可以並行方式執 行的。發布與執行階段在圖3b中對早期引退微指令126所執行的操作,與圖3a中對非早 期弓I退微指令124所執行的操作相同,除了下述不同點以外。 第一個不同點為在圖3b中,引退階段A 318、B 322與C 324在時脈周期3、4、5期 間分別執行其操作,而非在圖3a中的階段6、7、8中。圖3b是描述早期引退微指令126為 一單一時脈周期的執行指令,即早期引退微指令126在E階段314中僅需要單一時脈周期 來執行。然而,對於在E階段314中需要多個時脈周期來執行的早期引退微指令126來說, 引退階段A 318、B 322與C324執行其操作的時脈周期,會根據額外時脈周期的數量及時移 出。因此,舉例來說,在需要3個時脈周期來執行的早期引退微指令126的範例中,引退階 段A 318、 B 322與C 324在時脈周期5、6、7的期間分別執行其操作,而在需要3個時脈周 期來執行的非早期引退微指令124的範例中,引退階段A 318、 B 322與C 324在時脈周期 8、9、10的期間分別執行其操作。因此,不管一個指令需要多少數量的時脈周期來執行,本發 明實施例的早期引退的特色,令早期引退微指令126可能會比需要相同數量的時脈周期來 執行的非早期引退微指令124早引退,其中在一實施例中提早3個時脈周期。
第二個不同點為在大多數的早期引退微指令126(其僅需要執行階段(E)314中的 單一時脈)的範例中,暫存器文件階段(R)308另外產生早期完成信號156、早期標籤158以及早期例外狀態信號162等信號。暫存器文件階段(R)308為最早期階段(earliest stage),其中發布邏輯112根據早期引退微指令126用來執行的時脈周期數目而產生早期 完成信號156。發布邏輯112持續搜尋需要用來執行每一早期引退微指令126的時脈周期 數目,且若早期引退微指令126需要一個以上的時脈來執行時,發布邏輯112依據執行早期 引退微指令126所需的時脈周期數目,以延遲其產生早期完成信號156、早期標籤158以及 早期例外狀態信號162的階段。因此,舉例來說,對於需要3個時脈來執行的早期引退微指 令126來說,發布邏輯112會在執行階段(E) 314的第1個時脈才產生早期完成信號156、早 期標籤158以及早期例外狀態信號162,並非如僅需單一時脈周期即可執行引退的微指令 126 —般,在暫存器文件階段(R)308中就產生。 第三個不同點是在寫回階段(W)316中,由於發布邏輯112先前產生了早期引退微 指令126的早期完成信號156、早期標籤158、以及早期例外狀態信號162(如上文所述,起 始於暫存器文件階段(R)308(在使用單一時脈執行指令的範例中)或後續階段(在使用多 個時脈執行指令的範例中)),故執行單元108不產生早期引退微指令126的一般標籤136、 一般完成信號138以及一般例外狀態信號142給重排序緩衝器114。 第四個不同點為更新ROB階段(A) 318根據早期引退微指令126的早期完成信號 156、早期標籤158以及早期例外狀態信號162來更新完成旗標206與例外旗標208,而不像 非早期引退微指令124,依據一般標籤136、一般完成信號138以及一般例外狀態信號142 做更新。 第五個不同點為弓I退階段(C) 324直接將經由多工器118而來且自執行單元108 所取得的結果144寫入結構暫存器122,而非如寫入非早期引退微指令124 —般,寫入由推 測暫存器116所取得的結果。 圖4a是顯示本發明實施例的三個非早期引退微指令124序列的表格示意圖。三 個非早期引退微指令124分別標示為ml、m2、m3,圖中亦顯示用來執行每一指令所需的時脈 周期數目(亦即圖3a與圖3b的執行階段(E) 314中的指令的時脈周期數目),即微指令ml 僅需要1個執行周期,微指令m2需要3個執行周期,微指令m3需要2個執行周期。
圖4b是顯示本發明實施例圖4a所述的非早期引退微指令124,在圖3a各階段下 的序列進展時序圖。圖4b描述時脈周期l-11。在圖4b的範例中,圖l所示的執行單元108 包括標示為EU#1 314與EU#2 314的各個執行單元。圖4a中的微指令ml與m3為非早期 引退微指令124的其中一類型,其由執行單元EU#1314來執行,而圖4a中的微指令m2亦為 非早期引退微指令124的其中一類型,其由執行單元EUft2 314來執行。雖然可在微處理器 100於時脈周期1-11的不同階段中,啟動比圖4a中所示的三個微指令更多微指令來執行, 但在本發明實施例僅顯示微指令ml-m3做說明。 在時脈周期1中,由於每個時脈周期中只能派送一個微指令至一個執行單元,故 派送階段(D)304將選擇微指令ml以分派至執行單元EUftl 314,並且選擇微指令m2以分派 至執行單元EUft2 314。 在時脈周期2中,微指令ml與m2被送至隊列階段(Q) 306,其中發布邏輯112取 得兩個微指令的指令數據。此外,派送階段(D)304選擇微指令m3以分派至執行單元EUftl 314。 在時脈周期3中,微指令ml與m2被送至暫存器文件階段(R) 308,其中發布邏輯112取得非早期引退微指令124的來源運算元。此外,m3被送至隊列階段(Q)306。
在時脈周期4中,微指令ml與m2被送至發布階段(I) 312,其中發布邏輯112將微指令ml與m2、伴隨所提取的指令數據與運算元傳送至其各自的執行單元108。此外,微指令m3被送至暫存器文件階段(R) 308。 在時脈周期5中,微指令ml開始執行於執行單元EUftl 314中,而微指令m2開始執行於執行單元EUft2 314中。此外,微指令m3被送至發布階段(1)312。如圖4a所示,微指令ml僅需要單一時脈即可執行,微指令m2需要3個時脈來執行,而微指令m3需要2個時脈來執行。 在時脈周期6中,微指令ml已完成執行並且進入寫回階段(W)316。在寫回階段(W)316中,執行單元EUftl 314產生微指令ml的一般標籤136、一般完成信號138以及一般例外狀態信號142給重排序緩衝器114,如圖4b所示。執行單元EUftl 314亦產生結果144。此外,微指令m2繼續在執行單元EU#2 314中執行3個時脈中的第2個時脈,而微指令m3開始在目前已可使用的執行單元EUftl 314執行。 在時脈周期7中,微指令ml進入更新ROB階段(A)318,並於重排序緩衝器114中,依據一般標籤136所指定並分派給微指令ml的通道更新完成旗標206與例外旗標208。此外,微指令m2進入執行單元EU#2 314中執行3個時脈中的第3個時脈,而微指令m3進入執行單元EU#1 314中執行2個時脈中的第2個時脈。 在時脈周期8中,在找尋存在最久通道階段(B)322中,重排序緩衝器114檢查其中的存在最久微指令(包括ml)以判斷找到的指令是否準備好引退。此外,微指令m2與m3二者都進入寫回階段(W) 316,且執行單元EU#1與EU#2 314產生對應微指令m3與m2的各個的一般標籤136、一般完成信號138以及一般例外狀態信號142給重排序緩衝器114,如圖4b所示。執行單元EU#1與EU#2 314亦產生對應微指令m3與m2的各個結果144。
在時脈周期9中,微指令ml在引退階段(C)324被重排序緩衝器114弓腿。也就是重排序緩衝器114內的控制邏輯將產生結果選擇168的值,使得多工器118可將微指令ml的結果,從推測暫存器116寫入至結構暫存器122中,而重排序緩衝器114中先前配置給微指令ml的通道將被釋放,使得重命名/分派/派送單元104可將重排序緩衝器114中的該通道分派給另一新的微指令。微指令m2與m3二者進入更新R0B階段(A)318,其中重排序緩衝器114更新微指令m2與m3的各個旗標206/208,如上文所述。 在時脈周期10中,在找尋存在最久通道階段(B) 322裡,重排序緩衝器114檢查其中的存在最久微指令,以判斷微指令m2與m3是否準備好引退。 在時脈周期ll中,微指令m2與m3在引退階段(C) 324被重排序緩衝器114引退,使得重命名/分派/派送單元104可將重排序緩衝器114中的該對應通道分派給二個新的微指令。 圖5a是顯示本發明實施例的九個早期引退微指令126序列的表格示意圖。九個早期引退微指令126標示為ml至m9,圖中亦顯示用來執行每一指令所需的時脈周期數目,即微指令ml與m4至m9僅需要1個執行周期,微指令m2需要3個執行周期,微指令m3需要2個執行周期。 圖5b是顯示本發明實施例中,根據圖3b所示的階段,來呈現圖5a的早期引退微指令126的序列進展時序圖。如圖5b所示,其描述了時脈周期l-11。圖5a中的微指令ml、
12m3、 m5、 m7、 m9為早期引退微指令126中,由執行單元EU#1314所執行的類型,而圖5a中的微指令m2、m4、m6、m8為早期引退微指令126中,由執行單元EUft2 314所執行的類型。
在時脈周期1中,由於每個時脈周期中只能派送一個微指令至一個執行單元(perindividual execution unit per clock cycle)的方式進行派送,故派送階段(D) 304選擇微指令ml以分派至執行單元EUftl 314,並且選擇微指令m2以分派至執行單元EU#2314。
在時脈周期2中,微指令ml與m2被送至隊列階段(Q)306。此外,派送階段(D) 304則選擇微指令m3以分派至執行單元EU#1314。 在時脈周期3中,微指令ml與m2被送至暫存器文件階段(R)308。值得注意的是,發布邏輯112產生微指令ml的早期完成信號156、早期標籤158以及早期例外狀態信號162給重排序緩衝器114,如圖5b所示,其比圖4b所示執行單元108產生非早期引退微指令124的一般標籤136、一般完成信號138以及一般例外狀態信號142要早3個時脈周期。此外,微指令m3被送至隊列階段(Q)306。雖然微指令m2亦在暫存器文件階段(R) 308中,由於微指令m2需要3個時脈周期來執行,故發布邏輯112在產生微指令m2的早期完成信號156、早期標籤158以及早期例外狀態信號162之前,必須等待2個以上的時脈周期。
在時脈周期4中,微指令ml與m2被送至發布階段(1)312。此外,微指令m3被送至暫存器文件階段(R)308。雖然微指令m3在暫存器文件階段(R) 308中,由於微指令m3需要2個時脈周期來執行,故發布邏輯112在產生微指令m3的早期完成信號156、早期標籤158以及早期例外狀態信號162之前,必須等待l個以上的時脈周期。新的微指令m4與m5進入派送階段(D)304。 在時脈周期5中,微指令ml開始在執行單元EU#1 314中執行而微指令m2開始在執行單元EUft2 314中執行。此外,微指令m3被送至發布階段(1)312。發布邏輯112產生微指令m2與m3的早期完成信號156、早期標籤158以及早期例外狀態信號162至重排序緩衝器114中。微指令m3所延遲的1個時脈與微指令m2所延遲的2個時脈,分別註明在上述的時脈周期3、4中。此外,微指令ml被送至階段(B)322,微指令m4與m5被送至隊列階段(Q) 306,以及新的微指令m6與m7進入派送階段(D) 304。 在時脈周期6中,微指令ml已完成執行並且進入寫回階段(W)316。在寫回階段(W)316中,執行單元EUftl 314產生微指令ml的結果144給推測暫存器116。同時,重排序緩衝器114亦在引退階段(C)324引退微指令ml。也就是重排序緩衝器114內的邏輯產生結果選擇168的值,使得多工器118將自執行單元108而來的微指令ml的結果144寫入至結構暫存器122。此外,微指令m2繼續在執行單元EUft2 314中執行3個時脈中的第2個時脈,而微指令m3開始在目前已可使用的執行單元EUftl 314執行。由於發布邏輯112在時脈周期5產生微指令m2與m3的早期完成信號156、早期標籤158以及早期例外狀態信號162給重排序緩衝器114,故微指令m2與m3二者都進入更新R0B階段(A)318。此外,微指令m4與m5被送至暫存器文件階段(R)308。發布邏輯112產生微指令m4與m5的早期完成信號156、早期標籤158以及早期例外狀態信號162給重排序緩衝器114,如圖5b所示。此外,微指令m6與m7被送至隊列階段(Q) 306,而新的微指令m8與m9進入派送階段(D) 304。
在時脈周期7中,微指令m2在執行單元EUft2 314中執行3個時脈中的第3個時脈,而微指令m3在執行單元EU#1 314中執行2個時脈中的第2個時脈。微指令m2與m3亦進入階段(B)322。此外,微指令m4與m5進入發布階段(I) 312,同時進入更新ROB階段(A) 31S。此外,微指令m6與m7進入暫存器文件階段(R)308。發布邏輯112產生微指令m6與m7的早期完成信號156、早期標籤158以及早期例外狀態信號162給重排序緩衝器114。此外,微指令m8與m9被送至隊列階段(Q) 306。 在時脈周期8中,微指令m2與m3進入寫回階段(W) 316,且執行單元EU#2 314與EU#1 314分別產生微指令m2與m3的結果144。此外,重排序緩衝器114引退微指令m2與m3,並且將微指令m2與m3各自在執行單元108中的結果144寫入結構暫存器122,而分別由EUft2與EUftl所執行的m4與m5則同時進入階段(B)322。此外,微指令m6與m7進入發布階段(1)312與更新R0B階段(A)318。此外,微指令m8與m9進入暫存器文件階段(R)308,以及發布邏輯112產生微指令m8與m9的早期完成信號156、早期標籤158以及早期例外狀態信號162給重排序緩衝器114。 在時脈周期9中,微指令m4與m5進入寫回階段(W) 316,且執行單元EU#2 314與EU#1 314分別產生微指令m4與m5的結果144。此外,重排序緩衝器114引退微指令m4與m5,並且將微指令m4與m5分別在執行單元108中的結果144寫入結構暫存器122。此外,微指令m6與m7分別由執行單元EU#2 314與EU#1314執行,且微指令m6與m7進入階段
(B) 322。此外,微指令m8與m9進入發布階段(I) 312與更新ROB階段(A) 318。 在時脈周期10中,微指令m6與m7進入寫回階段(W)316,且執行單元EUft2 314與EU#1 314分別產生微指令m6與m7的結果144。此外,重排序緩衝器114引退微指令m6與m7,並且將微指令m6與m7分別在執行單元108中的結果144寫入結構暫存器122。此外,微指令m8與m9分別由執行單元EU#2 314與EU#1314執行,且微指令m8與m9進入階段(B)322。 在時脈周期11中,微指令m8與m9進入寫回階段(W) 316,且執行單元EU#2 314與EUftl 314分別產生微指令m8與m9的結果144。此外,微指令m8與m9進入引退階段
(C) 324,其中重排序緩衝器114引退微指令m8與m9,並且將微指令m8與m9各自在執行單元108中的結果144寫入結構暫存器122。 比較圖4b與圖5b,可發現在引退微指令方面有很大的好處。在時脈周期6與11之間的6個時脈周期的執行期間,與僅引退3個非早期引退微指令124(如圖4b所示)相比,微處理器100可引退9個早期引退微指令126 (如圖5b所示)。重排序緩衝器114中已被引退的微指令所增加的數目,使得更多微指令可被分派至重排序緩衝器114,其允許更多微指令可被看到而進行排程以發布出去被執行,且因此明顯的將執行單元108的使用性最大化。 圖6是顯示本發明實施例的圖1中微處理器100操作的步驟流程圖。流程起始於步驟604。 在步驟604中,發布邏輯112讀取保留站106的微指令,其為了判斷該微指令為早期引退微指令126或非早期引退微指令124,接著執行步驟606。 在步驟606中,發布邏輯112判斷微指令是否為早期引退微指令126。若微指令為非早期引退微指令124,則接著執行步驟608。若微指令為早期引退微指令126,則接著執行步驟628與648。 在步驟608中,發布邏輯112判斷微指令為非早期引退微指令124,並且自結構暫存器122、推測暫存器116或轉送自執行單元108的數據取得非早期引退微指令124的運算元數據,接著執行步驟612。 在步驟612中,發布邏輯112發布非早期引退微指令124至執行單元108中的其中一執行單元,接著執行步驟614。 在步驟614中,執行單元108中被指定執行單元將執行非早期引退微指令124。執行單元執行非早期引退微指令124所需的時脈周期數量,會依據微指令的類別而有所不同。當許多微指令執行於1-3時脈周期時,某些算術指令可要求更多時脈周期來執行,接著執行步驟616。 在步驟616中,非早期引退微指令124已完成執行。執行單元108將結果144寫入推測暫存器116,並且將一般標籤136、一般完成信號138以及一般例外狀態信號142寫入重排序緩衝器114,接著執行步驟618。 在步驟618中,重排序緩衝器114分別根據在步驟616所產生的一般完成信號138以及一般例外狀態信號142的值,將完成旗標206與例外旗標208更新至一般標籤136指定的通道,接著執行步驟622。 在步驟622中,重排序緩衝器114檢查其中的存在最久微指令以判斷是否有任何指令準備好引退。重排序緩衝器114檢查存在最久微指令的完成旗標206與例外旗標208。在實施例中,將分析存在最久的三個微指令。若設定完成旗標206且清除例外旗標208,則微指令已準備好被引退。只有當所有存在較久的微指令在相同時脈周期被引退時,才可引退重排序緩衝器114中的較新的微指令。若重排序緩衝器114中存在最久的微指令尚未準備引退,則重排序緩衝器114必須等待引退該微指令,直到該微指令準備好被引退,如完成旗標206所示,接著執行步驟624。 在步驟624中,通過產生結果選擇168給多工器118,以將推測結果166傳送給選擇數據172,於是重排序緩衝器114便可將推測暫存器116中的推測結果166寫入結構暫存器122。重排序緩衝器114亦利用宣告無效(invalidate)的方式,來釋放重排序緩衝器114中正被引退的微指令的通道,故重排序緩衝器114中被宣告無效的通道可由重命名/分派/派送單元104分派給新的微指令。然而,若例外旗標208表示非早期引退微指令124已產生例外狀況,則微處理器100反而要處理該例外狀況,然後結束本流程。
在步驟628中,發布邏輯112判斷微指令為早期引退微指令126,並且自結構暫存器122、推測暫存器116或轉送自執行單元108的數據取得早期引退微指令126的運算元數據,接著執行步驟632。 在步驟632中,發布邏輯112發布早期引退微指令126至執行單元108,接著執行步驟634。 在步驟634中,執行單元108執行早期引退微指令124,接著執行步驟636。
在步驟636中,早期引退微指令126已完成執行。執行單元108將結果144寫入推測暫存器116,然後結束本流程。 步驟648、652、654、656可與步驟628、632、634、636以並行方式執行的。步驟間的時間相依視執行早期引退微指令126的時脈周期數目而定,如步驟648所述。
在步驟648中,在執行單元輸出早期引退微指令126的結果144的三個時脈周期前,發布邏輯112即輸出早期完成信號156與早期標籤158並且清除早期例外狀態信號162。由於早期引退微指令126不會導致例外狀況,故要清除早期例外狀態信號162。發布
15邏輯112繼續追蹤每一早期引退微指令126需要多少時脈周期來執行,並且在該早期引退微指令126的整個執行期間,對已執行的周期總數進行維持與記錄。延遲三個時脈周期可確保在完成執行早期引退微指令126後早期引退微指令126將準備好被引退。在其它實施例中,可能需要比圖3a與圖3b所需較多或更多的發布與執行階段與/或引退階段。因此,對其它實施例來說,在執行單元108輸出早期引退微指令126的結果前,發布邏輯112產生多於或少於三個時脈周期的早期完成信號156、早期標籤158以及早期例外狀態信號162的值,接著執行步驟652。 在步驟652中,重排序緩衝器114依據發布邏輯112所產生的早期完成信號156、早期標籤158以及早期例外狀態信號162來進行數據更新,接著執行步驟654。
在步驟654中,重排序緩衝器114檢查其中的存在最久微指令,以判斷是否有任何指令準備好引退。由於早期引退微指令126不會產生例外狀況,故總是要清除早期引退微指令126的例外旗標208,接著執行步驟656。 在步驟656中,重排序緩衝器114將執行單元108的結果144寫入結構暫存器122,其通過產生結果選擇168,以將執行單元108的結果144傳送給選擇數據172。重排序緩衝器114亦利用宣告無效(invalidate)的方式,來釋放重排序緩衝器114中正被引退的微指令的通道,故重排序緩衝器114中被宣告無效的通道可由重命名/分派/派送單元104分派給新的微指令,本流程在步驟656結束。 需注意到,為了增加亂序執行的微處理器的執行效能,增加微指令引退率是有效的。通過上文所述的早期引退微指令124,重排序緩衝器中的通道可在一般引退微指令執行之前即被釋放,故可很快的將微指令分派到重排序緩衝器中可用的通道。如此一來,通過增加保留站中的微指令的數量、以及增加當執行單元可開始執行另一微指令時保留站中的微指令準備好執行的可能性,可增加預看能力與執行單元的使用性。 本發明所揭露的實施例已如上文所述,但這些實施例僅做說明,並非做為本發明限縮之用。從事計算機相關工作且本領域技術人員,皆可在不脫離本發明精神之下,對本發明實施例進行修改或完成相關細節。例如,除了使用硬體(例如執行於中央處理器(CPU)、微控制器、數位訊號處理器或其他硬體裝置之中或通過與這些硬體耦合獲得實施)之外,亦可使用軟體(例如計算機可讀取的編碼(Code)、程序碼或以任何形式所呈現的指令,例如原始碼、目的碼或機器碼等)來實現或通過儲存在計算機可使用(例如,讀取)介質中的軟體等方式來實施。而這些軟體可用來啟動本發明實施例裝置或方法的功能(Function)、製造(Fabrication)、模型化(Modeling)、模擬(Simulation)、描述(Description)及/或測試(Testing)等。例如,本發明可通過一般的程序語言編碼(如C、 0++)、硬體描述語言(Hardware DescriptionLanguages, HDL),包括Verilog HDL、 VHDL等等或任何其它程序型態的程序語言來實現。相關軟體程序則可以包含於實體介質,如半導體或磁性盤或光碟中。本發明實施例可包含一實施方法,其是提供微處理器一描述本發明實施例微處理器設計架構的軟體來實施、而軟體可通過一通訊網絡(communicationnetwork,例如網際網路(theInternet)或企業內部網絡(intranet))傳送包含該軟體的計算機數據信號來達成。值得注意的是,本發明所述的裝置與方法可以被包含在半導體智慧財產權核(semiconductorintellectual property core),諸如微處理器核心(microprocessor core,例如包含在HDL中)之中,其可以在集成電路製造過程中轉換成硬體。此外,本發明所述的裝置與方法亦可通過結合硬體與軟體等方式來達成。是以,本發明將不受限於任何描述於本說明書中的實施例,而應以前述的申請專利範圍以及其等效範圍來定義。本發明可實施於所有一般用途計算機系統中的微處理器之中。 以上所述僅為本發明較佳實施例,然其並非用以限定本發明的範圍,任何熟悉本項技術的人員,在不脫離本發明的精神和範圍內,可在此基礎上做進一步的改進和變化,因此本發明的保護範圍當以本申請的權利要求書所界定的範圍為準。
附圖中符號的簡單說明如下 100 :微處理器;104 :重命名/分派/派送單元;106 :保留站;108 :執行單元;112 :發布邏輯;114 :重排序緩衝器;116 :推測暫存器;118 :多工器;122 :結構暫存器;124 :非早期引退微指令;126 :早期引退微指令;134 :微指令;136 :一般標籤;138 :一般完成信號;142 :—般例外狀態信號;144 :結果;148 :推測暫存器;156 :早期完成信號;158 :早期標籤;162 :早期例外狀態信號;166 :推測結果;168 :結果選擇;172 :選擇數據;204 :微指令欄位;206 :完成旗標欄位;208 :例外旗標欄位;304 :派送階段(D) ;306 :隊列階段(Q) ;308 :暫存器文件階段(R) ;312 :發布階段(I) ;314 :執行階段(E) ;316 :寫回階段(W) ;318 :更新R0B階段(A) ;322 :存在最久通道階段(B) ;324:引退階段(C) ;604、606、608、612、614、616、618、622、624、628、632、634、636、648、652、654、656 :流程步驟。
權利要求
一種改善亂序超純量執行單元的微處理器,其特徵在於,其使用一相對小的在序指令引退緩衝器並且通過選擇性地提早初始指令引退來實現,該微處理器包括多個執行單元,每一執行單元用以計算一指令的結果,其中該指令為一例外類別指令或一非例外類別指令,其中該例外類別指令能在被發送至該執行單元以計算其結果後令該微處理器取得一例外狀況,而該非例外類別指令無法在被發送至該執行單元以計算其結果後令該微處理器取得一例外狀況;以及一引退單元,耦接於所述執行單元,該引退單元用以判斷一指令在該微處理器中是否為存放最久的指令以及該指令是否已準備好利用該結果來更新該微處理器的結構狀態,其中該引退單元用以在該執行單元輸出該非例外類別指令的結果前執行該判斷操作,其中該引退單元用以在該執行單元輸出該例外類別指令的結果後執行該判斷操作。
2. 根據權利要求1所述的改善亂序超純量執行單元的微處理器,其特徵在於,該非例 外類別指令具有固定的執行延遲。
3. 根據權利要求1所述的改善亂序超純量執行單元的微處理器,其特徵在於,執行該 非例外類別指令所需的時脈周期數目,在該非例外類別指令準備好發送給該執行單元時能 得知。
4. 根據權利要求1所述的改善亂序超純量執行單元的微處理器,其特徵在於,該引退 單元包括該在序指令引退緩衝區,耦接於所述執行單元,其具有多個通道,每一通道用以儲存與 一指令相關的一指示器,而該指示器用以表示該指示器相關的指令是否準備好根據對應結 果更新該微處理器的結構狀態;其中該引退單元還在該執行單元輸出該非例外類別指令的該結果前更新對應該非例 外類別指令的通道;及其中該引退單元還在該執行單元輸出該例外類別指令的該結果後更新對應該例外類 別指令的通道。
5. 根據權利要求4所述的改善亂序超純量執行單元的微處理器,其特徵在於,還包括 控制邏輯,耦接於該在序指令引退緩衝區,該控制邏輯用以在該執行單元輸出該非例外類別指令的該結果之前的多個時脈周期更新該非例外類別指令相關的指示器,以表示該 非例外類別指令已準備好根據對應結果更新該微處理器的結構狀態。
6. 根據權利要求4所述的改善亂序超純量執行單元的微處理器,其特徵在於,該引退 單元比該例外類別指令更早釋放而重新使用該在序指令引退緩衝區的所述通道中對應於 該非例外類別指令的一通道。
7. 根據權利要求4所述的改善亂序超純量執行單元的微處理器,其特徵在於,當該微 處理器根據該通道中的結果更新該微處理器的結構時,該引退單元還釋放而重新使用該在 序指令引退緩衝區的對應通道。
8. —種改善亂序超純量執行單元的方法,其特徵在於,其使用一相對小的在序指令引 退緩衝器,並且通過選擇性地提早初始指令引退來實現,該方法包括下列步驟計算一指令的結果,其中該指令為一例外類別指令或一非例外類別指令,其中該例外 類別指令能在被發送至一執行單元以計算其結果後令微處理器取得一例外狀況,而該非例 外類別指令無法在被發送至該執行單元以計算其結果後令該微處理器取得一例外狀況;判斷一指令在該微處理器中是否為存放最久的指令以及該指令是否已準備好利用該 指令的該結果來更新該微處理器的結構狀態;其中該判斷操作包括在該執行單元輸出該非例外類別指令的該結果前執行該判斷操作;其中該判斷操作包括在該執行單元輸出該例外類別指令的該結果後執行該判斷操作。
9. 根據權利要求8所述的改善亂序超純量執行單元的方法,其特徵在於,該非例外類 別指令具有固定的執行延遲。
10. 根據權利要求8所述的改善亂序超純量執行單元的方法,其特徵在於,執行該非 例外類別指令所需的時脈周期數目,在該非例外類別指令準備好發送給該執行單元時能得 知。
11. 根據權利要求8所述的改善亂序超純量執行單元的方法,其特徵在於,該微處理器 包括該在序指令引退緩衝區,該在序指令引退緩衝區具有多個通道,每一通道用以儲存與 一指令相關的一指示器,而該指示器用以表示該指示器相關的指令是否準備好根據對應結 果更新該微處理器的結構狀態,該方法還包括下列步驟在該執行單元輸出該非例外類別指令的該結果前更新對應該非例外類別指令的通道;以及在該執行單元輸出該例外類別指令的該結果後更新對應該例外類別指令的通道。
12. 根據權利要求11所述的改善亂序超純量執行單元的方法,其特徵在於,還包括下 列步驟在該執行單元輸出該非例外類別指令的該結果之前的多個時脈周期更新該非例外類 別指令相關的指示器,以表示該非例外類別指令已準備好根據對應結果更新該微處理器的 結構狀態。
13. 根據權利要求11所述的改善亂序超純量執行單元的方法,其特徵在於,還包括下列步驟比該例外類別指令更早釋放而重新使用該在序指令引退緩衝區的所述通道中對應於 該非例外類別指令的一通道。
14. 根據權利要求11所述的改善亂序超純量執行單元的方法,其特徵在於,還包括下列步驟當該微處理器根據該通道中的結果更新該微處理器的結構時,還釋放而重新使用該在 序指令引退緩衝區的對應通道。
全文摘要
一種改善亂序超純量執行單元的微處理器及方法,其使用一相對小的在序指令引退緩衝器並且通過選擇性地提早初始指令引退來實現,微處理器包括多個執行單元與一引退單元。每一執行單元用以計算一指令的結果,指令為例外類別指令或非例外類別指令,例外類別指令可在被發送至執行單元後令微處理器取得例外狀況,而非例外類別指令無法在被發送至執行單元後令微處理器取得例外狀況。引退單元耦接於執行單元,用以判斷指令在微處理器中是否為存放最久的指令以及指令是否已準備好利用其結果來更新微處理器的結構狀態,引退單元用以在執行單元輸出非例外類別指令的結果前執行判斷操作,引退單元用以在執行單元輸出例外類別指令的結果後執行判斷操作。
文檔編號G06F9/38GK101706713SQ20091022264
公開日2010年5月12日 申請日期2009年11月23日 優先權日2008年11月25日
發明者吉拉德·M·卡爾, 布蘭特·比恩, 布萊恩·偉恩·伯格 申請人:威盛電子股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀