專利名稱:分布式指令完成邏輯的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及超標(biāo)量處理器,具體來說涉及每個周期完成更多指令,更具體來說,本發(fā)明涉及對超標(biāo)量處理器的指令完成方案和完成單元的改進。
微處理器被分類為超標(biāo)量的,如果該微處理器(“處理器”)每個時鐘周期能夠完成多條指令。超標(biāo)量處理器的體系結(jié)構(gòu)采用處理器內(nèi)部的多個并行處理單元,以便能在每個時鐘周期完成更多的指令。這些處理單元一般包括多個并行操作的執(zhí)行單元、一個向執(zhí)行單元發(fā)送指令和數(shù)據(jù)的調(diào)度單元、一個含有一個用于跟蹤及退役(retire)指令的(“完成表”)的完成單元和用于為執(zhí)行單元預(yù)加載指令的重命名緩沖器(重命名寄存器)。完成表的跟蹤和退役特性提供了不按順序完成指令的能力。
為了效率和速度而采用多個并行的處理單元,要求指令被“流水線化”。流水線是這樣一種提取和解碼指令的方法,它使得一個執(zhí)行單元不必等待指令;執(zhí)行單元在第一個指令已經(jīng)完成之前就處理第二個指令。此外,當(dāng)前的體系結(jié)構(gòu)采用推測性執(zhí)行(執(zhí)行來自不同分支路徑的指令)和分支預(yù)測(branch prediction)來提高處理器的性能。分支預(yù)測用于預(yù)測某指令下一次被執(zhí)行時要轉(zhuǎn)移的途徑,這種預(yù)測90%的時候都是正確的。
圖4是表示超標(biāo)量處理器中指令流的簡化框圖。多個指令被提取器402從指令高速緩存中提取出來后置于分支處理單元404或指令隊列406。進入指令隊列406之后,指令被調(diào)度單元408發(fā)送到各種執(zhí)行單元。調(diào)度速率的相關(guān)因素中包括執(zhí)行單元的忙狀態(tài)、重命名(未予顯示)的可用性以及完成表緩沖器的可用性。在當(dāng)前處理器中,指令完成邏輯是在處理器內(nèi)的一個單一單元一完成單元中執(zhí)行的。完成單元418對指令在從調(diào)度到執(zhí)行直至完成的過程中進行跟蹤,允許不按順序地執(zhí)行指令。當(dāng)執(zhí)行單元結(jié)束指令時,指令的狀態(tài)被執(zhí)行單元410、412、414或416傳送到完成表418。完成單元然后就完成或退役該指令并向其余執(zhí)行單元發(fā)送一個完成信號,以便將結(jié)束的數(shù)據(jù)寫回到結(jié)構(gòu)化寄存器中。
然而,完成單元每個周期所能完成或退役的指令的數(shù)目是固定的;這是一種可能導(dǎo)致在指令調(diào)度邏輯中產(chǎn)生瓶頸的限制因素。所有指令都由完成單元418跟蹤、完成并提交給特定的結(jié)構(gòu)化寄存器。如果完成單元418停頓,處理器400的效率和速度就會降低,其一個原因是執(zhí)行單元410、412、414和416不能發(fā)出結(jié)束信號來更新完成單元418中的對應(yīng)指令狀態(tài)。執(zhí)行單元410、412、414和416由于結(jié)束信號不能被傳送到一個完整的完成表418隊列而停頓。由于重命名緩沖器(未予示出)現(xiàn)在不能向執(zhí)行單元410、412、414和416傳送指令,而繼續(xù)阻塞(backup)。調(diào)度單元408作出判定,即重命名緩沖器已滿,沒有位置存放其它指令。所以,除非重命名緩沖器中有空間可用,否則調(diào)度單元408將不調(diào)度指令,導(dǎo)致處理器停頓。
完成單元418瓶頸的第二個原因是,盡管完成單元418能同時退役多條指令,但完成單元必須按程序順序來退役指令,如果完成表418條目0(第一個指令退役位置)的指令因為某指令仍然在執(zhí)行而不能被退役,這指令完成就可能會停頓。
處理器每時鐘周期能執(zhí)行多條指令的速度,受到處理器的完成表完成或退役指令的能力的限制。
因此,人們希望提供這樣一種完成指令的方法與裝置,它要排除常規(guī)完成單元產(chǎn)生的瓶頸。人們也希望每個周期能完成更多指令。人們進一步希望提高完成表在退役指令時的效率。
因此,本發(fā)明的一個目的是通過每周期完成更多指令來提高處理器性能。
本發(fā)明的另一個目的是消除由常規(guī)完成單元引起的指令完成瓶頸。
本發(fā)明的另一個目的是提供一種提高完成表在退役指令時的效率的方法和裝置。
現(xiàn)在來說明上述目的是如何實現(xiàn)的。超標(biāo)量處理器中的每個執(zhí)行單元都有一個關(guān)聯(lián)完成表,關(guān)聯(lián)完成表中含有一份所有已調(diào)度但未完成的指令的狀態(tài)數(shù)據(jù)。用一個中央完成表來保存按調(diào)度單元和各執(zhí)行單元所報告的每個已調(diào)度指令的狀態(tài)。指令單元向完成表發(fā)送結(jié)束信號,完成表負(fù)責(zé)退役某特定類型的指令。中央完成表退役可能引起中斷的指令和其結(jié)果要針對相同目標(biāo)寄存器的指令。各執(zhí)行單元關(guān)聯(lián)的完成表退役余下的指令,并且執(zhí)行單元將指令狀態(tài)發(fā)送到中央完成表和每個執(zhí)行單元。這就減少了要由中央完成表退役的指令的數(shù)量,增加了每個周期被退役的指令的數(shù)量。
以下的詳細(xì)說明,透徹地闡述了本發(fā)明的以上以及其它目的、特點和優(yōu)點。
后附的權(quán)利要求書中陳述了被視為本發(fā)明特有的新穎特征。然而,欲完全理解本發(fā)明本身和優(yōu)選應(yīng)用方式及其進一步的目的和優(yōu)點,就要參閱以下結(jié)合各附圖對示意性實施例的詳細(xì)說明。附圖簡介
圖1A是表示能在其中實現(xiàn)本發(fā)明的優(yōu)選實施例的處理器和數(shù)據(jù)處理系統(tǒng)有關(guān)部分的高級框圖。
圖1B是按照本發(fā)明優(yōu)選實施例的具有多個執(zhí)行單元和多個完成表的數(shù)據(jù)處理器的高級框圖。
圖2表示按照本發(fā)明優(yōu)選實施例的中央完成表指令隊列。
圖3是表示按照本發(fā)明優(yōu)選實施例的分布式完成邏輯的方法的高級流圖。
圖4表示的高級流圖表示經(jīng)過超標(biāo)量處理器內(nèi)完成單元的指令流。
現(xiàn)在參考各圖,特別是參考圖1A,該圖是表示能在其中實現(xiàn)本發(fā)明的優(yōu)選實施例的處理器和數(shù)據(jù)處理系統(tǒng)有關(guān)部分的框圖。處理器100是一個單一的集成電路超標(biāo)量處理器,諸如(位于美國紐約州Armonk的)IBM公司提供的PowerPCTM處理器。因此,處理器100包括的各種單元、寄存器、緩沖器、存儲器和其它部分,所有都是由集成電路形成的。處理器100也按照精簡指令集計算(RISC)技術(shù)操作。
處理器100包括一級(L1)指令高速緩存和數(shù)據(jù)高速緩存(I高速緩存和D高速緩存)102和104,各自分別都有關(guān)聯(lián)的存儲管理單元(“I MMU”和“D MMU”)106和108。如圖1中所示,處理器100通過總線接口單元114與系統(tǒng)地址總線110和系統(tǒng)數(shù)據(jù)總線112相連。指令通過總線接口單元114從系統(tǒng)存儲器(未于示出)被檢索到處理器100并被存儲在指令高速緩存102,而通過總線接口單元114檢索的數(shù)據(jù)則被存儲在數(shù)據(jù)高速緩存104。指令是由指令單元116從指令高速緩存102中按需提取的,指令單元包括指令提取邏輯、指令轉(zhuǎn)移預(yù)測邏輯、指令隊列和調(diào)度單元。
指令單元116內(nèi)的調(diào)度單元將適當(dāng)?shù)闹噶钫{(diào)度到各執(zhí)行單元,諸如系統(tǒng)單元118、整數(shù)單元120、浮點單元122或加載/存儲單元124。系統(tǒng)單元118執(zhí)行條件寄存器邏輯、專用寄存器轉(zhuǎn)移以及其它系統(tǒng)指令。整數(shù)或“定點”單元120對整數(shù)進行加法、減法、乘法、除法、移位或循環(huán)操作,從整數(shù)或通用寄存器(“GPR文件”)126檢索操作數(shù)并在其中存儲結(jié)果。浮點單元122進行單精度和/或雙精度的乘法/加法操作,從浮點寄存器(“FPR文件”)128檢索操作數(shù)并在其中存儲結(jié)果。
加載/存儲單元124按需要將指令操作數(shù)從數(shù)據(jù)高速緩存104加載到整數(shù)或浮點寄存器126或128,并將能從整數(shù)或浮點寄存器126或128得到的指令結(jié)果存儲到數(shù)據(jù)高速緩存104。加載與存儲隊列130被用于在數(shù)據(jù)高速緩存104與整數(shù)或浮點寄存器126或128之間的這些轉(zhuǎn)移。完成單元132包括重定序緩沖器,它與指令單元116聯(lián)合操作來支持無序的指令處理,也與整數(shù)和浮點寄存器126或128內(nèi)的重命名緩沖器聯(lián)合操作以避免指令結(jié)果對于特定寄存器的沖突。公用片上處理器(“COP”)和聯(lián)合測試行動組(“JTAG”)單元134為進行邊界掃描互連測試而提供一個連接到系統(tǒng)的串行接口。
圖1所示的體系結(jié)構(gòu)完全是為示意和解釋本發(fā)明而給出的,并不意味著隱含有結(jié)構(gòu)性的限制。本領(lǐng)域的熟練人員會認(rèn)識到,許多變化都是有可能的。例如,處理器100可包括多個整數(shù)和浮點執(zhí)行單元以提高處理的吞吐量。所有這類變化都在本發(fā)明的精神和范圍之內(nèi)。
現(xiàn)在參見圖1B,該圖是一個按照本發(fā)明優(yōu)選實施例的具有多個執(zhí)行單元和多個完成表的處理器的高級框圖。中央完成表132控制所有的指令退役。中央完成表132有一個指令隊列,指令隊列有固定數(shù)量的退役位置限制輸出。在本發(fā)明中,向處理器添加了額外的完成表,每個執(zhí)行單元都有一個指令完成表,用于完成中央完成表132沒有完成的指令。
每個執(zhí)行單元都負(fù)責(zé)完成其自己類型的指令。執(zhí)行單元將完成信息廣播給其它執(zhí)行單元以及中央完成表。多個完成表的并行操作會使指令完成的速率更高。通過減少由中央完成表132處理的指令的數(shù)量,完成的速率得到提高,中央完成表132隊列被清空的速度更快;完成速率越提高,完成表隊列被清空的速度就越快,從而使得每周期的指令調(diào)度速率更高,因為重命名緩沖器也以更快的速度被釋放。
在圖1A中,描述了處理器主要部件的操作。在圖1B中,處理器的操作基本上是相同的,其例外之處是增加了完成表136、138、140和142。每個執(zhí)行單元-整數(shù)單元120、加載/存儲單元124、浮點單元122和系統(tǒng)單元118-都有一個關(guān)聯(lián)的完成表。如果重命名緩沖器126和128是開放的,則指令就從指令單元116發(fā)出,被某執(zhí)行單元例如浮點單元122接收。個別的指令單元-此例中是浮點單元122-確定指令的類型,結(jié)束指令并將結(jié)束信息發(fā)送到中央完成表132和浮點單元122關(guān)聯(lián)的完成表140。根據(jù)指令的類型,中央完成表132或完成表140將把該指令退役到特定結(jié)構(gòu)的寄存器。
通過轉(zhuǎn)移指令,中央完成表132中的指令完成隊列變得更加寬松,轉(zhuǎn)移指令的方式,通常是由中央完成表132將指令退役地執(zhí)行單元完成表136、138、140和142。中央完成表132中指令的這種減少,提供了更高的總體吞吐量。
參見圖2,該圖展示了一個按照本發(fā)明優(yōu)選實施例的中央完成表指令隊列200。中央完成表指令隊列200用于保存機器中所有指令的狀態(tài)。指令可以相對于彼此不按順序地完成,在處理器流水線中存在一條可能引起中斷的先前指令的情況下,指令不得被允許完成。防止指令無序完成的方法是由調(diào)度單元為中央完成表指令隊列200中每個條目,向可能引起中斷的指令施加一個“可中斷位”。
在本發(fā)明中,探聽邏輯202被應(yīng)用到輸入指令,諸如204,以允許探聽中央完成表指令隊列200,判定是否有任何老指令有中斷位206置位。
輸入指令204有多個部分,它們其中的作用是確定要為指令作什么、何時完成指令以及隊列中是否有相關(guān)指令。圖2中展示了對于本發(fā)明來說是重要的指令部分。例如,ID 208是指令標(biāo)識符,由它來識別隊列中的特定指令。指令體在圖示表中是以標(biāo)題“指令”標(biāo)識的?!癐nt”(“可中斷”)206是在結(jié)束的指令中包含的一個“可中斷位”,用于標(biāo)識可能在指令流中引起中斷的較老指令。處理器通過使用可中斷位,就能不按指令之間的相互順序來完成指令并仍然保持程序的順序。
轉(zhuǎn)移待定位BP 214表示指令處于未分辨的轉(zhuǎn)移路徑。當(dāng)轉(zhuǎn)移得到分辨時,這個位被清除以表示指令不再是推測性的。TC 218是一個由調(diào)度單元在調(diào)度單元探聽中央完成表、確定已經(jīng)有老指令將相同寄存器作為目標(biāo)寄存器之后而設(shè)置的位。當(dāng)TC 218位置位時,老指令必須有中央完成表來完成。等待位216是輸入指令內(nèi)的一個位,在發(fā)現(xiàn)某可中斷指令諸如指令208時被置位。然后,通過將輸入指令204的等待位216置位,使指令I(lǐng)D 208與輸入指令204的等待ID 212被鎖存。當(dāng)老的、可中斷指令I(lǐng)D 208完成時,它現(xiàn)在就能簡單地被指令204探聽。指令I(lǐng)D 208與指令204的等待ID 212進行比較,如果ID匹配,指令204的等待位216就被清除。然后,如果準(zhǔn)備就緒,指令204就能被完成。
輸入指令204簡單地探聽中央完成表指令隊列200去尋找可中斷指令I(lǐng)D,本例中是指令208。當(dāng)老指令208被完成時,就將指令208的ID 210與完成隊列中的指令204的等待ID 212比較。如果存在有匹配,則等待位216被清除,指令204就能被完成。
參見圖3,該圖表示了一個按照本發(fā)明優(yōu)選實施例的分布式完成邏輯的方法的高級流圖。處理從步驟300開始,該步驟表示調(diào)度單元向某執(zhí)行單元發(fā)送一條指令。在調(diào)度單元向執(zhí)行單元發(fā)送指令的同時,過程前進到步驟302,該步驟表示一個指示指令調(diào)度到執(zhí)行單元的信號被發(fā)送到中央完成單元。過程繼續(xù)到步驟304,該步驟表示執(zhí)行單元將指令狀態(tài)寫到其本地完成表。
然后,過程繼續(xù)到步驟306,該步驟表示執(zhí)行單元執(zhí)行所接收的指令。過程然后前進到步驟308,該步驟表示執(zhí)行單元結(jié)束該指令。過程下一步前進到步驟310,該步驟表示執(zhí)行單元向中央完成表發(fā)送一個結(jié)束信號。該步驟更新中央完成表中的指令狀態(tài)。同時,過程前進到步驟312,該步驟表示結(jié)束信號也被發(fā)送到執(zhí)行單元的完成表。過程繼續(xù)到步驟313,該步驟表示執(zhí)行單元將結(jié)束的指令的結(jié)果寫到其完成表。
過程下一步前進到步驟314,該步驟表示執(zhí)行單元檢查關(guān)聯(lián)的完成表以判定已經(jīng)執(zhí)行的指令的類型。然后,過程前進到步驟316,該步驟表示執(zhí)行單元為判定指令類型所作的三項檢查之一。步驟316表示為判定指令是否處于推測性路徑的檢查。如果指令處于推測性路徑,過程就繼續(xù)到步驟317,該步驟表示執(zhí)行單元等待推測性路徑去分辨自身。過程然后返回步驟316繼續(xù),直到推測性路徑被分辨出來。
如果指令不處于推測性路徑,過程下一步就前進到步驟318,該步驟表示執(zhí)行單元檢查在其完成表中是否有尚未完成但是可能引起中斷的老指令(諸如加載或存儲指令)。如果執(zhí)行單元的完成表中的老指令可能引起中斷,則過程就前進到步驟322,該步驟表示中央完成表完成(退役)該結(jié)束的指令。中央完成表清除已完成指令的方法是將該指令委托給某個目標(biāo)地址,或者因中斷或錯誤的轉(zhuǎn)移預(yù)測而丟棄該指令。當(dāng)中央完成表完成指令時,它將完成信息廣播給該執(zhí)行單元以更新處理器中的所有完成表。完成了所結(jié)束的指令之后,過程下一步前進到步驟324,該步驟表示中央完成表用完成信息來更新執(zhí)行單元的各個完成表。如果老指令不會引起中斷,過程就前進到步驟320,該步驟表示執(zhí)行單元檢查老指令是否與該指令有相同的目標(biāo)寄存器。如果是,過程就前進到上面討論過的步驟322和324。
過程下一步前進到步驟326,該步驟表示執(zhí)行單元更新其完成表和所有其它完成表,包括中央完成表。
過程然后前進到步驟328,該步驟表示執(zhí)行單元完成該指令。執(zhí)行單元也將完成數(shù)據(jù)發(fā)送給所有其它執(zhí)行單元和中央完成表。如果該指令能被執(zhí)行單元的完成表退役,則執(zhí)行單元就完成它。過程然后前進到步驟330,該步驟表示執(zhí)行單元更新適當(dāng)?shù)慕Y(jié)構(gòu)寄存器(architected register)并釋放所有與該指令關(guān)聯(lián)的重命名緩沖器。
過程在中央完成表與執(zhí)行單元的各個完成表之間劃分指令。通過調(diào)度時為每個指令增加一個轉(zhuǎn)移待定位的方法,每個完成表都能處理來自不同路徑的指令。轉(zhuǎn)移待定位如果處于置位狀態(tài),則表示指令處于一個未分辨的轉(zhuǎn)移路徑。當(dāng)轉(zhuǎn)移被分辨出后,該位就被清除,表示指令不再是推測性的。通過將特定指令發(fā)送到本地完成表去完成而不是發(fā)送到中央完成表,減少了中央完成表必須跟蹤和退役的指令的數(shù)量。這就釋放了中央完成表指令隊列的空間,從而提高了指令流的速度。
總之,可能被處理器內(nèi)常規(guī)完成單元禁止的指令流,在本發(fā)明中可以通過分布式完成方案和多完成表而得到改善。多個完成表并行操作,會使指令完成的速率更高。每個執(zhí)行單元完成自己類型的指令并將完成信息廣播給其它執(zhí)行單元和中央完成表。由于由中央完成表處理的指令數(shù)量的減少,完成速率得到提高。中央完成表被清空的速度更快,提高了指令完成的速率。由于中央完成表隊列以更快的速度被清空,所以就獲得了每周期指令調(diào)度速率更高的效果。
盡管本發(fā)明是結(jié)合優(yōu)選實施例而具體展示和說明的,本領(lǐng)域的熟練人員會明白,在形式和內(nèi)容上可以對其作出各種修改而不超出本發(fā)明的精神和范圍。
權(quán)利要求
1.一種在超標(biāo)量處理器中完成指令的方法,包含向執(zhí)行單元發(fā)送指令;將該指令的狀態(tài)寫到與該執(zhí)行單元關(guān)聯(lián)的完成表;將該指令的狀態(tài)寫到中央完成表;將指令完成信號發(fā)送到與該執(zhí)行單元關(guān)聯(lián)的完成表。
2.權(quán)利要求1的方法,進一步包含結(jié)束該指令并向該中央完成表發(fā)送結(jié)束信號;將該結(jié)束信號發(fā)送給與該執(zhí)行單元關(guān)聯(lián)的完成表。
3.權(quán)利要求1的方法,其中,向執(zhí)行單元調(diào)度指令的步驟進一步包含探聽該中央完成表內(nèi)的指令隊列,以檢查是否有任何老指令有關(guān)聯(lián)的可中斷位被置位;置位該指令的等待位;將具有任何有可中斷位的老指令的ID的指令的等待ID鎖存。
4.權(quán)利要求3的方法,其中,探聽該中央完成表內(nèi)的指令隊列以檢查是否有任何老指令有關(guān)聯(lián)的可中斷位被置位的步驟進一步包含判定該老指令是否可能引起中斷。
5.權(quán)利要求3的方法,進一步包含響應(yīng)比該指令更老的指令的完成將該指令的等待ID與任何更老指令的ID比較;如果該指令的等待ID與任何更老指令的ID匹配,就清除該等待位;完成該指令;
6.權(quán)利要求5中的方法,其中,向執(zhí)行單元調(diào)度指令的步驟進一步包含判定該指令是否處于推測性路徑。
7.權(quán)利要求6中的方法,進一步包含判定該指令處于推測性路徑;向該中央完成表發(fā)送該結(jié)束信號。
8.權(quán)利要求6中的方法,進一步包含判斷是否有第二個老指令會與該指令針對相同的寄存器。
9.權(quán)利要求8中的方法,進一步包含將結(jié)束信號寫到與該執(zhí)行單元關(guān)聯(lián)的該完成表。
10.權(quán)利要求9中的方法,進一步包含更新與該執(zhí)行單元關(guān)聯(lián)的完成表。
11.權(quán)利要求10中的方法,進一步包含完成該指令;將完成數(shù)據(jù)發(fā)送給所有執(zhí)行單元和該中央完成表。
12.權(quán)利要求11中的方法,進一步包含判定有任何老指令可能會引起中斷,并將第二個、與該老指令關(guān)聯(lián)的結(jié)束信號發(fā)送到該中央完成單元。
13.權(quán)利要求12中的方法,進一步包含判定第二個老指令會與該指令針對相同的寄存器;發(fā)送一個與該不同的老指令關(guān)聯(lián)的結(jié)束信號到該中央完成單元。
14.權(quán)利要求13中的方法,進一步包含完成該指令或該老指令或該第二個老指令;更新與該執(zhí)行單元關(guān)聯(lián)的該完成表以及該中央完成表。
15.一個處理器,包含一個指令單元;多個執(zhí)行單元;多個完成表;一個中央完成表;用于響應(yīng)接收調(diào)度指令的命令而將指令從指令單元調(diào)度到多個執(zhí)行單元之一去執(zhí)行的裝置;用于將該指令狀態(tài)寫到與多個執(zhí)行單元之一關(guān)聯(lián)的多個完成表之一的裝置;用于將該指令狀態(tài)寫到中央完成表的裝置;用于將指令完成信號發(fā)送給與多個執(zhí)行單元之一關(guān)聯(lián)的多個完成表之一的裝置。
16.權(quán)利要求1 5中的處理器,進一步包含用于結(jié)束該指令并向該中央完成表發(fā)送結(jié)束信號的裝置;用于將該結(jié)束信號發(fā)送給與多個執(zhí)行單元之一關(guān)聯(lián)的多個完成表之一的裝置;用于檢查與多個執(zhí)行單元之一關(guān)聯(lián)的多個完成表之一的裝置。
17.權(quán)利要求16中的處理器,進一步包含用于探聽該中央完成表內(nèi)的指令隊列以檢查是否有任何老指令有關(guān)聯(lián)的可中斷位被置位的裝置;用于置位該指令的等待位的裝置;用于將具有任何有可中斷位的老指令的等待ID的指令I(lǐng)D鎖存起來的裝置。
18.權(quán)利要求17的處理器,進一步包含響應(yīng)比該指令更老的任一指令的完成,用于將該指令的ID與任何更老指令的等待ID比較的裝置;用于如果該指令的ID與任何更老指令的等待ID匹配,就清除該等待位的裝置;用于完成該指令的裝置;
19.權(quán)利要求18中的處理器,進一步包含用于判定該指令是否處于推測性路徑的裝置。
20.權(quán)利要求19中的處理器,進一步包含用于判定是否有任何老指令可能引起中斷的裝置。
21.權(quán)利要求20中的處理器,進一步包含用于判斷是否有第二個老指令會與該指令針對相同的寄存器的裝置。
22.權(quán)利要求21中的處理器,進一步包含用于將結(jié)束信號寫到與該多個執(zhí)行單元之一關(guān)聯(lián)的多個完成表之一的裝置。
23.權(quán)利要求22中的處理器,進一步包含用于更新與該多個執(zhí)行單元之一關(guān)聯(lián)的多個完成表之一的裝置。
24.權(quán)利要求23中的處理器,進一步包含用于完成該指令的裝置;用于將完成數(shù)據(jù)發(fā)送給所有執(zhí)行單元和該中央完成表的裝置。
25.權(quán)利要求24中的處理器,其中,用于判斷該指令是否是推測性路徑的裝置進一步包含用于將該結(jié)束信號發(fā)送到該中央完成單元的裝置。
26.權(quán)利要求25中的處理器,其中,用于判定該老指令可能引起中斷的裝置進一步包含用于將第二個、與該老指令關(guān)聯(lián)的結(jié)束信號發(fā)送到該中央完成單元的裝置。
27.權(quán)利要求26中的處理器,其中,用于判定一個不同的老指令可能與該指令指向相同的寄存器的裝置進一步包含用于發(fā)送一個與該第二個老指令關(guān)聯(lián)的結(jié)束信號到該中央完成單元的裝置。
28.權(quán)利要求27中的處理器,進一步包含用于完成該指令或該任一老指令或該第二個老指令的裝置;用于更新與多個執(zhí)行單元之一關(guān)聯(lián)的多個完成表之一以及該中央完成表的裝置。
全文摘要
超標(biāo)量處理器中的每個執(zhí)行單元都有一個關(guān)聯(lián)的完成表,該關(guān)聯(lián)的完成表中含有一份所有已調(diào)度但未完成的指令的狀態(tài)數(shù)據(jù)。用一個中央完成表來保存按調(diào)度單元和各執(zhí)行單元所報告的每個已調(diào)度指令的狀態(tài)。指令單元向完成表發(fā)送結(jié)束信號,完成表負(fù)責(zé)退役某特定類型的指令。中央完成表退役可能引起中斷的指令和其結(jié)果要送到相同目標(biāo)寄存器的指令。各執(zhí)行單元關(guān)聯(lián)的完成表退役余下的指令,并且執(zhí)行單元將指令狀態(tài)發(fā)送到中央完成表和每個執(zhí)行單元。這就減少了要由中央完成表退役的指令的數(shù)量,增加了每個周期被退役的指令的數(shù)量。
文檔編號G06F9/38GK1237732SQ9910695
公開日1999年12月8日 申請日期1999年5月31日 優(yōu)先權(quán)日1998年6月1日
發(fā)明者D·Q·恩古延 申請人:國際商業(yè)機器公司