專利名稱:用于依賴性鏈處理的系統(tǒng)、方法和裝置的制作方法
背景技術(shù):
一些常規(guī)的計(jì)算機(jī)實(shí)現(xiàn)單流水線類型的處理器,它以串行順序單片地執(zhí)行計(jì)算機(jī)程序指令。為了使并行處理的功率在指令級最大化,這在本領(lǐng)域中也稱為指令級并行度(ILP),該處理器可在編譯器中采用積極優(yōu)化(aggressive optimization)。提高處理器性能的其它方式可包括實(shí)現(xiàn)以非串行順序執(zhí)行指令的無序流水線處理器。然而,這種實(shí)現(xiàn)可具有增加硬件和軟件的復(fù)雜度的缺點(diǎn)。另一個選擇是設(shè)計(jì)可在較高頻率下操作的處理器,但這會不利地導(dǎo)致訪問高速緩存/存儲器的等待時間的增加、和/或可降低處理效率,這例如可通過每周期指令(IPC)來測量。
最近已有關(guān)于群集處理器資源的研究,以設(shè)計(jì)復(fù)雜度效率高的微架構(gòu)。根據(jù)一項(xiàng)研究,代替利用單片流水線,建議利用多個群集,其中每一個群集可具有比單個單片流水線低的復(fù)雜度。根據(jù)該研究,可在執(zhí)行期間以使群集間通信最小化的目將計(jì)算機(jī)程序指令分派到不同的群集以減小等待時間。根據(jù)另一項(xiàng)研究,建議利用指令間依賴性關(guān)系的基于依賴性鏈的執(zhí)行可降低處理器設(shè)計(jì)的復(fù)雜度。
附圖簡述結(jié)合附圖從以下本發(fā)明的實(shí)施例的詳細(xì)描述可更全面地理解和了解本發(fā)明,附圖中
圖1是根據(jù)本發(fā)明的某些示例性實(shí)施例,能夠?qū)⒃粗噶罹幾g成目標(biāo)指令,并利用群集依賴性鏈處理器(DCP)來執(zhí)行目標(biāo)指令的裝置的框示;圖2是根據(jù)本發(fā)明的某些示例性實(shí)施例,被配置成具有大小分別為3寬度、2寬度和1寬度的三個流水線群集的群集DCP的框示;圖3是根據(jù)本發(fā)明的某些示例性實(shí)施例構(gòu)造結(jié)合群集DCP使用的依賴性鏈(DC)跟蹤的方法的示意性流程圖;圖4根據(jù)本發(fā)明的某些示例性實(shí)施例的DC跟蹤中的三個依賴性鏈的概念圖示;圖5是根據(jù)本發(fā)明的某些示例性實(shí)施例的分析相關(guān)性鏈并設(shè)計(jì)群集發(fā)出寬度的方法的示意性流程圖;圖6是根據(jù)本發(fā)明的某些示例性實(shí)施例將依賴性鏈分割成一組減小寬度的依賴性鏈的概念圖示;圖7是根據(jù)本發(fā)明的某些示例性實(shí)施例執(zhí)行依賴性鏈優(yōu)化的方法的示意性流程圖;圖8是根據(jù)本發(fā)明的某些示例性實(shí)施例將依賴性鏈映射到群集的方法的示意性流程圖;圖9是示出通過利用增強(qiáng)的完整程序路徑(WPP)方法捕捉的跟蹤執(zhí)行的程序指令的累積百分比的圖表的示意圖;圖10是示出通過利用增強(qiáng)的WPP方法形成的一個跟蹤中的平均指令數(shù)的圖表的示意圖;圖11是示出分布在跟蹤中的七個最優(yōu)勢DC中的程序指令的平均百分比的圖表的示意圖;圖12是示出分布在七個最優(yōu)勢DC的DC寬度中的跟蹤的百分比的圖表的示意圖;圖13是示出分布在七個最優(yōu)勢DC的關(guān)鍵路徑長度中的跟蹤的百分比的圖表的示意圖;圖14是示出根據(jù)本發(fā)明的實(shí)施例在應(yīng)用DC優(yōu)化算法之前二十個最頻繁執(zhí)行的跟蹤的第一優(yōu)勢DC的DC寬度分布的圖表的示意圖;圖15是示出根據(jù)本發(fā)明的實(shí)施例在應(yīng)用DC優(yōu)化算法之后圖14的二十個頻繁執(zhí)行的跟蹤的第一優(yōu)勢DC的DC寬度分布的圖表的示意圖;圖16是示出根據(jù)本發(fā)明的實(shí)施例在應(yīng)用DC優(yōu)化算法之后優(yōu)勢DC中指令數(shù)量的減小的圖表的示意圖;圖17是示出與常規(guī)的有序和無序處理器的每周期指令(IPC)相比的根據(jù)本發(fā)明的實(shí)施例的DCP微架構(gòu)的IPC的圖表的示意圖;圖18是示出根據(jù)本發(fā)明的示例性實(shí)施例如由IPC測量的異構(gòu)DCP微架構(gòu)和同構(gòu)DCP微架構(gòu)之間的性能比較的圖表的示意圖;圖19是示出在DC模式中執(zhí)行的總程序指令的動態(tài)指令數(shù)的百分比和重復(fù)的動態(tài)指令數(shù)的百分比的圖表的示意圖。
本發(fā)明實(shí)施例的詳細(xì)描述在以下詳細(xì)描述中,陳述了眾多具體細(xì)節(jié)以提供對本發(fā)明的實(shí)施例的全面理解。然而,本領(lǐng)域的技術(shù)人員將理解,可在缺少這些具體細(xì)節(jié)的情況下實(shí)施本發(fā)明。在其它情況下,沒有詳細(xì)描述公知的方法和過程,以免使本發(fā)明的實(shí)施例晦澀。
詳細(xì)描述的某些部分在下文中按照計(jì)算機(jī)存儲器內(nèi)的數(shù)據(jù)位或二進(jìn)制數(shù)字信號上的操作的算法和符號表示來呈現(xiàn)。這些算法描述和表示可以是由數(shù)據(jù)處理領(lǐng)域的技術(shù)人員用于將其工作的實(shí)質(zhì)內(nèi)容傳達(dá)給本領(lǐng)的其它技術(shù)人員的技術(shù)。
算法此處一般被認(rèn)為是通往理想結(jié)果的動作或操作的自一致序列。這包括物理量的物理處理。通常,盡管未必如此,但這些量可采用能夠被存儲、傳輸、組合、比較和用其它方式處理的電或磁信號的形式。已證明有時主要是出于公共用法的原因?qū)⑦@些信號稱為位、值、元素、碼元、字符、項(xiàng)、數(shù)等是方便的。然而,應(yīng)該理解,所有這些和類似的術(shù)語都與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),且僅僅是應(yīng)用于這些量的方便的標(biāo)記。
除非明確說明,否則正如從以下討論所清楚的,應(yīng)意識到在整個說明書討論中利用了諸如“處理”、“計(jì)算”、“演算”、“確定”等術(shù)語來指計(jì)算機(jī)或計(jì)算系統(tǒng)或類似的電子計(jì)算裝置的動作和/或進(jìn)程,它們將表示為計(jì)算系統(tǒng)的寄存器和/或存儲器內(nèi)的諸如電子量之類的物理量的數(shù)據(jù)處理和/或變換成同樣表示為計(jì)算系統(tǒng)的存儲器、寄存器或其它這樣的信息存儲器、傳輸或顯示設(shè)備內(nèi)的物理量的其它數(shù)據(jù)。
本發(fā)明的某些實(shí)施例可利用例如可存儲一條或一組指令的機(jī)器可讀介質(zhì)或制品來實(shí)現(xiàn),指令在被機(jī)器執(zhí)行時使得機(jī)器執(zhí)行根據(jù)本發(fā)明的實(shí)施例的方法和/或操作。這一機(jī)器可包括例如任何適當(dāng)?shù)奶幚砥脚_、計(jì)算平臺、計(jì)算設(shè)備、處理設(shè)備、計(jì)算系統(tǒng)、處理系統(tǒng)、計(jì)算機(jī)、處理器等,且可利用硬件和/或軟件的任何適當(dāng)?shù)慕M合來實(shí)現(xiàn)。機(jī)器可讀介質(zhì)或制品可包括例如任何適當(dāng)類型的存儲器單元、存儲器設(shè)備、存儲器制品、存儲器介質(zhì)、存儲設(shè)備、存儲制品、存儲介質(zhì)和/或存儲單元,例如,存儲器、可移動或不可移動介質(zhì)、可擦除或不可擦除介質(zhì)、可寫或不可寫介質(zhì)、數(shù)字或模擬介質(zhì)、硬盤、軟盤、緊致盤只讀存儲器(CD-ROM)、可記錄緊致盤(CD-R)、可重寫緊致盤(CD-RW)、光盤、磁介質(zhì)、各種類型的數(shù)字通用盤(DVD)、磁帶、盒式磁帶等。指令可包括任何適當(dāng)類型的代碼,例如,源代碼、已編譯代碼、已解釋代碼、可執(zhí)行代碼、靜態(tài)代碼、動態(tài)代碼等,并可利用任何合適的高級、低級、面向?qū)ο?、可視、已編譯和/或已解釋編程語言,例如,C、C++、lava、BASIC、Pascal、Fortran、Cobol、匯編語言、機(jī)器代碼等來實(shí)現(xiàn)。
本發(fā)明的實(shí)施例可包括用于執(zhí)行本文的操作的裝置。該裝置可以為了期望的用途而特別構(gòu)造,或者它可包括由存儲在計(jì)算機(jī)中的計(jì)算機(jī)程序選擇地激活或重新配置的通用計(jì)算機(jī)。這一計(jì)算機(jī)程序可被存儲在計(jì)算機(jī)可讀存儲介質(zhì)中,諸如但不限于包括軟盤、光盤、CD-ROM、磁光盤在內(nèi)的任何類型的盤、只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、電可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、磁卡或光卡、或適用于存儲電子指令并能夠耦合到計(jì)算機(jī)系統(tǒng)總線的任何其它類型的介質(zhì)。
本文中出現(xiàn)的進(jìn)程和顯示不是固有地與任何特定的計(jì)算機(jī)或其它裝置有關(guān)。各種通用系統(tǒng)可與根據(jù)本文的教示的程序一起使用,或者可證明構(gòu)造更專用的裝置來執(zhí)行所期望的方法是方便的。用于各種這些系統(tǒng)的期望結(jié)構(gòu)將從以下的描述中明白。此外,本發(fā)明的實(shí)施例不是參考任何特定的編程語言來描述的。將意識到可使用各種編程語言來實(shí)現(xiàn)如本文所述的發(fā)明的教示。
在以下描述中,各圖形、圖解、流程圖、模型和描述被呈現(xiàn)為有效地傳達(dá)實(shí)質(zhì)并示出在本申請中提出的本發(fā)明的不同實(shí)施例的不同手段。本領(lǐng)域的技術(shù)人員應(yīng)該理解,它們僅僅作為示例性樣例提出,而不應(yīng)被構(gòu)造成對本發(fā)明的限制。
圖1是示出根據(jù)本發(fā)明的示例性實(shí)施例的例如計(jì)算平臺之類的裝置2的框圖,它包括操作上連接到群集依賴性鏈處理器(DCP)12的存儲器6。存儲器6能夠至少存儲源指令集8(例如源代碼)和目標(biāo)指令集10(例如,適用于DCP 12的二進(jìn)制可執(zhí)行代碼)。根據(jù)如以下詳細(xì)描述的本發(fā)明的示例性實(shí)施例,裝置2還可包括編譯器11,它可包括優(yōu)化算法30和映射算法32。源指令集8例如可由編譯器利用聯(lián)機(jī)或脫機(jī)編譯來編譯成目標(biāo)指令集10,編譯器11可包括例如動態(tài)翻譯器、二進(jìn)制探測工具。目標(biāo)指令集10可包括可根據(jù)DCP 12的微架構(gòu)來構(gòu)造的跟蹤(trace),它可被稱為依賴性鏈(DC)跟蹤(“DC跟蹤”)。DCP 12中所使用的DC跟蹤可以是相對長的跟蹤,例如具有數(shù)百條指令。可通過如以下詳細(xì)描述的脫機(jī)編譯方法構(gòu)造的這一長跟蹤顯著地長于由常規(guī)的跟蹤處理器所使用的跟蹤。常規(guī)的跟蹤處理器在執(zhí)行期間利用硬件來構(gòu)造跟蹤,且由于硬件中有限的指令窗口,跟蹤的長度因而一般較短,例如,每一跟蹤16到32條指令。根據(jù)本發(fā)明的實(shí)施例,長跟蹤可通過積極跟蹤調(diào)度(long aggressive trace)來增強(qiáng)指令級并行度(ILP)。
DC跟蹤可包含一個或多個依賴性鏈(DC)。正如本領(lǐng)域中已知的,依賴性鏈(DC)是DC跟蹤中的數(shù)據(jù)依賴性的圖形表示中的最多連接的組成部分。根據(jù)本發(fā)明的實(shí)施例,目標(biāo)指令集10的DC跟蹤內(nèi)的DC可受到優(yōu)化算法30的作用以產(chǎn)生具有減小的寬度的一組DC。該優(yōu)化的DC可基于映射算法32比映射到DCP 12中的一組群集上,例如,群集14、16和18。
根據(jù)本發(fā)明的示例性實(shí)施例,DCP 12可具有根據(jù)期望的基于跟蹤的執(zhí)行模型來構(gòu)造的群集處理器。DCP中的群集,例如,群集14、16和18可以是超標(biāo)量有序或無序流水線,且可具有不同的發(fā)出寬度(issue width)以形成異構(gòu)型DCP,或者可具有相同的發(fā)出寬度以形成同構(gòu)型DCP。DCP微架構(gòu)12還可包括高速緩存20和寄存器22。
圖2是示出根據(jù)本發(fā)明的示例性實(shí)施例的被配置成具有大小分別為3寬度、2寬度和1寬度的三個處理路徑(例如有序流水線群集)的異構(gòu)型群集DCP 200的微架構(gòu)的框圖。DCP 200可在兩種完全不同的操作模式下操作,即,例如用于執(zhí)行“熱”路徑的DC方式,和例如用于執(zhí)行“冷”路徑的非DC方式。“熱”路徑和“冷”路徑兩者都可被包含在目標(biāo)指令集10中(圖1),目標(biāo)指令集10可包括二進(jìn)制可執(zhí)行代碼。
在計(jì)算機(jī)程序中,“熱”路徑是構(gòu)成靜態(tài)程序指令的相對較小的部分,例如10-20%,但可被相對頻繁地執(zhí)行并負(fù)責(zé)動態(tài)執(zhí)行的指令方面的全部計(jì)算的相對較大的部分,例如80-90%的那些程序路徑?!袄洹甭窂绞菢?gòu)成靜態(tài)程序指令的相對較大的部分,例如80-90%,但相對很少執(zhí)行并負(fù)責(zé)動態(tài)執(zhí)行的指令方面的總計(jì)算的相對較小的部分,例如10-20%的那些程序路徑。根據(jù)本發(fā)明的某些示例性實(shí)施例,為DCP 12的微架構(gòu)構(gòu)造的DC跟蹤可表示程序的“熱”路徑。
在非DC操作模式中,DCP 200可從指令高速緩存(I-高速緩存)202中順序地取出計(jì)算機(jī)程序指令。所取出的指令中的一個或多個可以按它們被接收到處理路徑中之一(例如,DCP 200中的群集212的最寬處理路徑)的順序來發(fā)出。其余的處理路徑,例如群集214和群集216可在DCP 200的非DC操作模式期間保持未利用。根據(jù)本發(fā)明的某些示例性實(shí)施例,DCP 200例如可在指令執(zhí)行過程中從非DC操作模式切換到DC操作模式。例如,本領(lǐng)域中已知可使用跟蹤預(yù)測器(未示出)來預(yù)測可能即將執(zhí)行的跟蹤。跟蹤預(yù)測器可被實(shí)現(xiàn)為在預(yù)測跟蹤時將DCP 200從非DC操作模式切換到DC操作模式。
在DC模式的操作中,可將指令從依賴性鏈跟蹤高速緩存(DC高速緩存)204中而非從I高速緩存202中取出。依賴性鏈(DC)然后可根據(jù)預(yù)定義的分配方案被定向到適當(dāng)?shù)奶幚砺窂?,例如,如圖2中的群集212、214和216。預(yù)分配可在DC到群集映射過程中執(zhí)行,如以下詳細(xì)解釋的。
跟蹤中的DC固有地彼此無關(guān),使得在同一跟蹤內(nèi)的DC之間沒有數(shù)據(jù)依賴性。當(dāng)將跟蹤的DC發(fā)到不同的群集,例如群集212、214和/或216時,一個DC可在一群集內(nèi)獨(dú)立地執(zhí)行而不參考其他群集中的其他DC。因此,多個DC可分別在不同的群集內(nèi)以不同的速率并行執(zhí)行。例如,群集212內(nèi)的DC可在群集214或群集216內(nèi)的DC之前執(zhí)行。
根據(jù)本發(fā)明的示例性實(shí)施例,圖2的DCP 200可采用兩級分層寄存器結(jié)構(gòu)。該架構(gòu)中的一個或多個群集可具有其自己的一個局部寄存器,它可以是例如8條目寄存器,例如寄存器222、224和226,此外,可以有可由群集中的一個或多個訪問的全局寄存器232。一個群集內(nèi)的DC的執(zhí)行期間的中間值可被寫入該群集的局部寄存器和/或從中讀取。全局寄存器可由群集中的一個或多個共享,并可用于讀取和/或?qū)懭胗上噜彽母櫘a(chǎn)生和/或使用的數(shù)據(jù)。
因?yàn)樵诓煌娜杭胁l(fā)執(zhí)行的DC可從同一跟蹤中發(fā)出,所以它們可以完全是彼此無關(guān)的數(shù)據(jù),且無需在這些DC之間或它們各自的群集之間傳送值。DCP200對于全局寄存器232的響應(yīng)中的延遲不敏感。根據(jù)本發(fā)明的示例性實(shí)施例,全局寄存器232可利用任何適當(dāng)類型的存儲或其它數(shù)據(jù)存儲介質(zhì),例如芯片上1級(L1)數(shù)據(jù)高速緩存(圖2)來實(shí)現(xiàn)。在這種實(shí)現(xiàn)中,對寄存器232的讀和寫變?yōu)槊鞔_的加載和存儲操作。
根據(jù)本發(fā)明的某些實(shí)施例,DCP 200可使用芯片存儲,以存儲例如將在特定的DC跟蹤的重新執(zhí)行變得必要的情況中使用的全局寄存器232的值的檢查點(diǎn)副本。重新執(zhí)行可在例如由于當(dāng)在DC操作模式中執(zhí)行跟蹤或在DC跟蹤的誤預(yù)測時的異常而變得必要。DCP 200然后可切換回非DC模式,并利用可被保存在存儲器中的來自全局寄存器232的檢查點(diǎn)副本的值從最后一個發(fā)出的跟蹤的開始處開始重新執(zhí)行指令。在這種情況下,可實(shí)現(xiàn)另外的加載和/或存儲指令,以處理DCP 200和例如L1數(shù)據(jù)高速緩存(圖2)等存儲器之間的通信。
圖3是示出根據(jù)本發(fā)明的示例性實(shí)施例的用于構(gòu)造長DC跟蹤的方法的示意性流程圖。長DC跟蹤的構(gòu)造可基于如本領(lǐng)域中已知的增強(qiáng)的完整程序路徑(WPP)方法或任何其它適當(dāng)?shù)姆椒ǎ⑶依鐚τ陂L跟蹤可聯(lián)機(jī)或脫機(jī)地執(zhí)行。
如編譯器11(圖1)之類的編譯器可在如DCP 12(圖1)之類的處理器上運(yùn)行,以構(gòu)造DC跟蹤。在本發(fā)明的替換實(shí)施例中,根據(jù)特定的實(shí)現(xiàn)和/或設(shè)計(jì)要求,編譯器11可在任何適當(dāng)類型的處理器(例如,專用處理器或通用處理器)上運(yùn)行。如框310處所指示的,DC跟蹤可通過收集指令執(zhí)行提問檔(profile)并將指令執(zhí)行提問檔劃分為流塊來構(gòu)造。流塊在本申請的上下文中可以指計(jì)算機(jī)程序的所取分支之間的指令序列。每一個獨(dú)特的流塊可由用于該流塊中的全部指令的指令地址序列來表示。如框320處所指示的,一個或多個流塊的集合可被分配一位移的流標(biāo)識符。如框330處所指示的,可將原始指令執(zhí)行跟蹤轉(zhuǎn)換成一流標(biāo)識符串。
正如塊340處所指示的,如上所述創(chuàng)建的流標(biāo)識符串隨后可經(jīng)受一壓縮算法,例如本領(lǐng)域中已知的推理(Sequitur)壓縮算法。推理算法可產(chǎn)生對于給定的輸入的流標(biāo)識符串的緊縮表示,例如通過以上下文無關(guān)的語法的形式來表示該串。該算法可用單個語法規(guī)則來代替被重復(fù)一次以上的流標(biāo)識符序列和語法規(guī)則。由該壓縮算法創(chuàng)建的流標(biāo)識符串的所得的語法表示可以是有向非循環(huán)圖(DAG)(框350)。然后可通過對DAG進(jìn)行語法分析來標(biāo)識和提取一個或多個頻繁地重復(fù)出現(xiàn)的流標(biāo)識符序列(框360)。重復(fù)出現(xiàn)的流標(biāo)識符序列實(shí)際上可對應(yīng)于一串接的指令序列。該唯一的重復(fù)出現(xiàn)的指令序列可被稱為DC跟蹤,從中可進(jìn)一步提取指令依賴性鏈。
DC跟蹤中的指令數(shù)據(jù)依賴性一般可在圖形上表示為一組獨(dú)立的依賴性鏈(DC)。跟蹤中的該組依賴性鏈的圖形表示此處可被稱為數(shù)據(jù)依賴性圖(DDG)。圖4是DDG 400的示例性樣例的圖示,它包括三個DC,即DC1、DC2和DC3??赏ㄟ^對圖4中的DDG進(jìn)行語法分析而獲得的對應(yīng)的樣例DC跟蹤示于以下的表1中。DC跟蹤可由一串接的標(biāo)識符序列結(jié)合一組對應(yīng)的語法規(guī)則來表示。
表1
圖5是示出根據(jù)本發(fā)明的示例性實(shí)施例的分析DDG并構(gòu)造用于具有適當(dāng)選擇的發(fā)出寬度的群集的DC的方法的框圖。將意識到,DC的重要的拓?fù)鋵S眯再|(zhì)是被稱為“DC寬度”的度量。例如,可將DC寬度測量為DC內(nèi)的總指令數(shù)除以DC的數(shù)據(jù)依賴性的圖形表示中的最長路徑長度。根據(jù)本發(fā)明的示例性實(shí)施例,處理器可通過計(jì)算DC跟蹤內(nèi)的DC中的一個或多個的DC寬度的值(框510),然后根據(jù)DC的指令數(shù)和/或DC寬度來標(biāo)識DC的相對優(yōu)勢來實(shí)現(xiàn)DC分析方法。具有最大DC寬度的DC也可具有最大指令數(shù),并由此可以是優(yōu)勢DC。因此,具有最大DC寬度的DC可以是最有優(yōu)勢的DC或第一優(yōu)勢DC(“優(yōu)勢DC”)。具有第二大DC寬度的DC可被稱為第二優(yōu)勢DC,以此類推。在圖4所示的示例中,DC2具有最大DC寬度并由此是優(yōu)勢DC,而DC3是第二優(yōu)勢DC。
在DCP 12中(圖1),特定的DC內(nèi)的所有指令可在單個群集內(nèi)執(zhí)行。因此,所有DC的最大DC寬度可表示用于群集使可用的指令級并行度(ILP)最大化所需的最小發(fā)出寬度的度量。根據(jù)本發(fā)明的示例性實(shí)施例,可將DC優(yōu)化算法應(yīng)用于優(yōu)勢DC以創(chuàng)建可具有比原始DC窄的DC寬度的一組新的優(yōu)勢DC(框530)。通過將DC優(yōu)化算法迭代地應(yīng)用于所得的優(yōu)勢DC,由于群集的最大發(fā)出寬度上較低的限制可得到群集的更有效設(shè)計(jì)。
根據(jù)本發(fā)明的某些示例性實(shí)施例,設(shè)計(jì)例如僅有一個用于第一優(yōu)勢DC的寬群集和用于其余DC的多個較窄的群集的異構(gòu)群集結(jié)構(gòu)是有利的。異構(gòu)群集配置可需要比同構(gòu)群集配置更少的面積,例如,因?yàn)楫悩?gòu)群集配置可采用較小的旁路網(wǎng)絡(luò)邏輯。
圖6是示出根據(jù)本發(fā)明的示例性實(shí)施例的基于指令復(fù)制過程的DC優(yōu)化算法的概念框圖。指令復(fù)制算法在圖6中示為“abcde”的依賴性鏈處開始(610)。
有利的分割數(shù)可被定義為由作為分割的結(jié)果的兩個所得的指令集中的較小的指令集表示的在其它指令集中未被復(fù)制的實(shí)指令的數(shù)量減去在兩個指令集中找到的復(fù)制指令的數(shù)量。例如,可基于計(jì)算的索引值(例如,計(jì)算的有利數(shù)11)將優(yōu)勢DC“abcde”的指令分割為兩個較小的指令集,表示為DC“abc”和DC“de”(620)。如圖6所示,當(dāng)將指令集“abcde”分割為兩個較小的集合“abc”和“de”時,“abc”和“de”中較小的集合“abc”具有如空心圓所指示的12個實(shí)指令。兩個指令集“abc”和“de”具有如實(shí)心圓指示的一個復(fù)制指令。因此,計(jì)算得到了有利數(shù)11。
然后可基于與該分割相關(guān)聯(lián)的有利數(shù)4將下一優(yōu)勢DC,例如DC“de”分割成DC“d”和DC“e”(630)。類似地,對于有利數(shù)1可將DC“abc”分割成DC“ab”和DC“c”(640)。將意識到,在該示例中,DC“ab”上不需要進(jìn)一步的優(yōu)化,因?yàn)榕cDC“ab”的分割相關(guān)聯(lián)的有利數(shù)是負(fù)的,指示分割將需要復(fù)制大量的指令,并由此是低效的。盡管以上的示例性實(shí)施例涉及基于計(jì)算的有利數(shù)來分割DC,但根據(jù)本發(fā)明的其它實(shí)施例,可基于任何其它計(jì)算的索引值來分割DC。
圖7是根據(jù)本發(fā)明的示例性實(shí)施例的進(jìn)一步解釋可由例如處理器12(圖1)執(zhí)行的如圖6概念性地示出的增強(qiáng)的DC優(yōu)化過程的示意性流程圖。優(yōu)化算法,即指令復(fù)制算法可被設(shè)計(jì)成實(shí)現(xiàn)在優(yōu)化后所得的最大DC可盡可能地小,而該過程期間復(fù)制的指令數(shù)將被減小(例如保持為最小值)的目標(biāo)。換言之,可將優(yōu)化過程理解為將DC分割成葉DDG的最優(yōu)分組的過程。
葉指令可包括DC指令的子集。DC中的葉指令的葉DDG(LDDG)可包括該DC中產(chǎn)生執(zhí)行該葉指令的輸入值所需的指令的子集。該組LDDG是對于給定DC的最大可能分割。例如,如圖6所示,“a”、“b”、“c”、“d”和“e”是原始DC“abcde”的5個葉指令的LDDG,表示最大可能分割。然而,如圖6所解釋的,在某些情況下,執(zhí)行最大可能分割可導(dǎo)致大量的復(fù)制指令。
根據(jù)本發(fā)明的示例性實(shí)施例,指令復(fù)制算法可以從將所有的LDDG分組為一個集合開始(702)??蛇x擇多個分割方案中的潛在分割并可計(jì)算索引值A(chǔ)1,例如與該分割相關(guān)的有利數(shù)。
該算法可繼續(xù)計(jì)算“加權(quán)因數(shù)”A2。A2可以是與分割所得的優(yōu)勢DC相關(guān)聯(lián)的所有索引值中的最大的一個(706)。該所得的優(yōu)勢DC可以是被認(rèn)為是用于前一操作(704)中的分割的DC的分割的直接結(jié)果。隨后將兩個值,例如,如操作704中的索引值A(chǔ)1和如操作(706)中的加權(quán)因數(shù)A2相加以產(chǎn)生組合值A(chǔ),本文中稱為“加權(quán)索引值”(708)。
以上所述的分割過程需要對所有可能的分割的評估。因此,根據(jù)本發(fā)明的某些實(shí)施例,只要有需要評估的其它可能的分割(710),則該方法可重復(fù)操作704、706和708,直到對所有可能的分割方案評估了組合值A(chǔ)。
例如,一旦對可能分割中的至少某一些的評估完成,該方法可前進(jìn)到標(biāo)識關(guān)于最大加權(quán)索引值A(chǔ)的分割方案(712)。此外,該方法可包括檢驗(yàn)加權(quán)索引值A(chǔ)是否大于預(yù)定值,例如,0(714)。正如框716處所示的,該方法可包括例如如果加權(quán)索引值被確定為大于預(yù)定值,則根據(jù)標(biāo)識的分割方案來分割DC。該方法還可包括標(biāo)識從最近的分割得到的具有最寬的發(fā)出寬度的新的優(yōu)勢DC(718)。該方法還可包括重復(fù)該分割算法(704)。
例如在一次或多次迭代后,加權(quán)索引值A(chǔ)可以小于預(yù)定值,例如0(714)。這可指示將需要復(fù)制比由于分割引起的DC中的指令的可能減小多的指令。因此,終止該分割過程。
圖8是根據(jù)本發(fā)明的示例性實(shí)施例用于將DC映射到群集的方法的示意性流程圖。DC可根據(jù)其優(yōu)勢來排序,例如從最優(yōu)勢DC開始,而群集可根據(jù)其發(fā)出寬度來排序,例如從最寬的群集開始(810)。然后可將DC例如逐個按序映射到對應(yīng)的群集(812)。換言之,可將最優(yōu)勢DC映射到最寬的群集,而第二優(yōu)勢DC映射到第二寬的群集等等,直到將所有的DC映射到相應(yīng)的群集或在映射過程中用完了所有的群集??蓪?biāo)識符(ID)分配給一個或多個映射的DC,從而標(biāo)識向其映射DC的群集。
然后,該映射過程可前進(jìn)到檢驗(yàn)是否有剩余的DC要映射(814)。例如,如果已映射所有的DC,則該映射過程結(jié)束。例如,如果仍有DC要映射,則可用一個以上DC映射至少某些群集,且映射過程如下進(jìn)行。
根據(jù)本發(fā)明的某些示例性實(shí)施例,群集負(fù)載值可用于映射剩余的DC。群集的群集負(fù)載值可被定義為已映射到該群集的總指令數(shù)除以該群集的發(fā)出寬度??捎?jì)算用于群集中的一個或多個的群集負(fù)載值(816)。然后可基于預(yù)定的準(zhǔn)則來選擇群集。例如,可選擇具有最低的群集負(fù)載值的群集(818)。在某些情況下,可以有具有相同的群集負(fù)載值的兩個或更多群集(820)。在這種情況下,可選擇具有相同的群集負(fù)載值的群集中的具有最大的發(fā)出寬度的群集(822)。然后映射過程可將下一優(yōu)勢DC映射到所選的群集(824)。
在將DC映射到群集后,被映射的DC可被分配一唯一地標(biāo)識向其映射該DC的群集的標(biāo)識符(ID)(826)。如上所述,在DCP(例如DCP 12(圖1))中的DC跟蹤的執(zhí)行期間,例如可基于該預(yù)定的方案,如預(yù)分配群集ID將跟蹤中的DC分配給一群集以供執(zhí)行。
在將DC映射到群集并將群集ID分配給DC(826)后,該映射過程可進(jìn)一步確定是否已將所有的DC映射到群集(828)。如果仍剩下DC要映射,則該過程可返回到計(jì)算最近更新的群集的群集負(fù)載值(816)。然后,例如在如上所述的過程后,可將下一優(yōu)勢DC映射到所選的群集。該過程可繼續(xù)例如直到將所有的DC映射到群集。
結(jié)合如本申請中公開的本發(fā)明的各實(shí)施例,進(jìn)行了各種基準(zhǔn)分析以向本發(fā)明的各實(shí)施例提供定量的支持基礎(chǔ)。在以下的部分中總結(jié)這些分析的示例性結(jié)果。所使用的基準(zhǔn)包括從CINT2000套件中選擇的8個整數(shù)基準(zhǔn),例如,如以下的圖形中所示的“bzip2”、“crafty”、“gap”、“gcc”、“gzip”、“mcf”、“iwolf”和“vpr”。根據(jù)本發(fā)明的某些示例性實(shí)施例,該工作中所使用的二進(jìn)制代碼用用于Itanium架構(gòu)的Intel電子編譯器來編譯。該高級編譯器結(jié)合了編譯器界中已知的最新技術(shù)發(fā)展水平的優(yōu)化技術(shù)以及特別為IntelItanium處理器族(IPF)架構(gòu)的特征而設(shè)計(jì)的技術(shù)。所有的基準(zhǔn)用啟用的最大編譯器優(yōu)化來編譯。優(yōu)化包括如本領(lǐng)域中已知的基于提問檔驅(qū)動、反饋導(dǎo)向的那些優(yōu)化,諸如積極軟件預(yù)取、軟件流水線化、控制推測和數(shù)據(jù)推測。
圖9是示出由通過利用增強(qiáng)的完整程序路徑(WPP)方法捕捉的跟蹤執(zhí)行的指令的累積百分比的示意圖。它示出由以上列出的8個基準(zhǔn)程序最頻繁執(zhí)行的100個跟蹤。x軸示出跟蹤數(shù),而y軸描述這些跟蹤的程序覆蓋的累積百分比。可以清楚,對于除具有較大的程序覆蓋范圍的程序外的所有程序,需要少于100個跟蹤來覆蓋達(dá)到動態(tài)執(zhí)行指令的80%。
圖10是示出對于對x軸所示的每一個基準(zhǔn)構(gòu)造的跟蹤,所構(gòu)造的跟蹤中的平均指令數(shù)以及由每一條頂部的垂直線指示的最大和最小跟蹤長度的示意圖。注意,y軸采用對數(shù)標(biāo)度。根據(jù)本發(fā)明的示例性實(shí)施例,基于WPP算法的脫機(jī)編譯能夠構(gòu)造比在用于基于跟蹤的處理器的其它方法中構(gòu)建的跟蹤長得多的跟蹤。例如可用于DCP 12(圖1)的這些長跟蹤可允許執(zhí)行度有序群集的更好指令調(diào)度。
圖11是示出分布在用于基準(zhǔn)研究的七個最優(yōu)勢DC中的程序指令的平均百分比的示意圖。它示出任何跟蹤中的第一優(yōu)勢DC在與其它DC相比時含有大量的指令。第一優(yōu)勢DC占跟蹤中所有指令的近50%-60%,而第二優(yōu)勢DC僅占跟蹤中的指令的約20%,其余的DC占小于10%。
圖12是示出在來自所有上述基準(zhǔn)的跟蹤上平均的、分布在對于七個最優(yōu)勢DC的DC寬度中的跟蹤的百分比的示意圖,。因?yàn)閷τ谀承└?,從第二?yōu)勢DC開始并向前,DC可能根本不存在,所以用于這些DC的條不能增加到100%。在接近所執(zhí)行的跟蹤的55%中,第一優(yōu)勢DC具有大于2的DC寬度。換言之,在接近所執(zhí)行的跟蹤的45%中,DC寬度小于2。同樣,僅對于第一優(yōu)勢DC,DC寬度大于3,但對于其它DC,寬度很少大于2。這暗示當(dāng)設(shè)計(jì)群集微架構(gòu)時,群集的發(fā)出寬度不需要統(tǒng)一。例如可通過設(shè)計(jì)異構(gòu)群集微架構(gòu)來使可用的指令級并行度(ILP)最大化,其中僅一個寬群集設(shè)法滿足第一優(yōu)勢DC和幾個可能為1寬度的較窄群集的需要,如以上參考圖5所討論的。
圖13是示出在來自所有的基準(zhǔn)的跟蹤上平均的、分布在七個最優(yōu)勢DC的關(guān)鍵路徑長度中的跟蹤的百分比的示意圖。如所預(yù)期的,第一優(yōu)勢DC的關(guān)鍵路徑比其它的長。因此,當(dāng)最優(yōu)勢DC在寬群集中執(zhí)行時,所有其它DC被順序地調(diào)度在一個或多個較窄的群集上,因?yàn)榻M合的路徑長度一般不超過優(yōu)勢DC的路徑長度。第一優(yōu)勢DC的關(guān)鍵路徑長度大致被縮放為所構(gòu)造的跟蹤的長度的平方根。
圖14是示出對于上述的八個基準(zhǔn),根據(jù)其DC寬度排序的二十個最頻繁執(zhí)行的跟蹤的第一優(yōu)勢DC的DC寬度分布的示意圖。它示出在某些情況下,優(yōu)勢DC的DC寬度可上升到最大值12。
圖15是示出根據(jù)本發(fā)明的示例性實(shí)施例,與圖14所示的DC寬度分布相比,在應(yīng)用了基于指令復(fù)制算法的DC優(yōu)化過程后的二十個頻繁執(zhí)行的跟蹤的第一優(yōu)勢DC的DC寬度分布的示意圖。該DC寬度顯著減小,且在大多數(shù)情況下,DC寬度等于或小于2。
圖16是示出如本申請所公開的指令復(fù)制算法在減小在基準(zhǔn)的所有跟蹤上平均的第一優(yōu)勢DC中的指數(shù)方面的效率的示意圖。第一條是跟蹤中的總指令的平均數(shù)。第二條示出作為復(fù)制的另外的指令的結(jié)果這一平均數(shù)的增加。然而,由于復(fù)制引起的指令數(shù)的增加小于跟蹤中總指令的10%。接下來的兩條分別示出在優(yōu)勢DC的優(yōu)化前和優(yōu)化后的優(yōu)勢DC中的指令數(shù)。優(yōu)勢DC的大小平均減小約20%。最后兩條示出在優(yōu)化算法的應(yīng)用前和應(yīng)用后的第二優(yōu)勢DC中的指令數(shù)。第二優(yōu)勢DC中的指令數(shù)增加,因?yàn)閺脑嫉牡谝粌?yōu)勢DC的分割得到的DC可變?yōu)樾碌牡诙?yōu)勢DC。
將如本申請中公開的DCP微架構(gòu)的復(fù)雜度效率與指令級分布式處理(ILDP)微架構(gòu)以及其它群集無序(OOO)和有序微架構(gòu)進(jìn)行比較。結(jié)果在以下表2中總結(jié)。
表2
如從表中清楚的,本申請中公開的DCP微架構(gòu)不具有重命名和操縱邏輯的復(fù)雜度,但仍獲得無序執(zhí)行的某些好處,因?yàn)橹噶钤跇?gòu)造跟蹤的同時被預(yù)調(diào)度并重命名。同樣如以上參考圖2所解釋的,例如,與ILDP和無序處理器相比,可以不需要用于保存在跟蹤的指令的重新執(zhí)行變得必要的情況下使用的寄存器值的重排序緩沖器(ROB)。與6寬度有序群集的基線設(shè)計(jì)相比,DCP具有較不復(fù)雜的旁路邏輯,因?yàn)樗褂米疃酁?寬度的有序群集。其它研究指出旁路邏輯的復(fù)雜度相對于發(fā)出寬度的增加二次地增加。同樣,DCP中使用的全局寄存器文件僅需要用于全局寄存器文件的兩個讀端口和兩個寫端口,因?yàn)榇蠖鄶?shù)通信是經(jīng)由局部寄存器文件來處理的。在與常規(guī)的有序單片設(shè)計(jì)中必須的12個讀端口和6個寫端口以在一個周期中發(fā)出6個指令相比,這是復(fù)雜度方面的顯著減小。這一復(fù)雜度有效的設(shè)計(jì)可允許高頻實(shí)現(xiàn)。
圖17是比較具有3寬度有序流水線群集,表示為(3,3DCP);具有對執(zhí)行優(yōu)化跟蹤的支持的基線6寬度有序處理器,表示為“跟蹤Sch”;具有有序處理器,表示為“io”;以及具有無序處理器,表示為“ooo”的DCP微架構(gòu)的每周期指令(IPC)的性能的示意圖。注意,從圖17中,“跟蹤Sch”的基線6寬度有序處理器與由“io”的有序處理器實(shí)現(xiàn)的IPC相比較實(shí)現(xiàn)較高的IPC。對于“gap”的特定基準(zhǔn),性能的提高可達(dá)到15%。還應(yīng)注意,具有3寬度有序群集的DCP微架構(gòu),例如“(3,3DCP)”可實(shí)現(xiàn)基本等于“跟蹤Sch”的IPC的IPC。該性能優(yōu)點(diǎn)可以是通過優(yōu)化DC構(gòu)造算法實(shí)現(xiàn)的長跟蹤上的調(diào)度和群集中的均勻指令分布的結(jié)果。
與其中一個跟蹤的執(zhí)行在將下一個跟蹤發(fā)到群集前完成的跟蹤的串行化執(zhí)行相比,在基于受控猜測方法的相鄰跟蹤的重疊執(zhí)行中實(shí)現(xiàn)了約10%-15%的性能提高。結(jié)果在圖17中示為“具有重疊的(3,3)DCP”。受控猜測方法管理DC的執(zhí)行,使得在來自當(dāng)前跟蹤的DC的執(zhí)行仍在進(jìn)行的同時,跟蹤預(yù)測器選擇下一個跟蹤來執(zhí)行。所選跟蹤中的DC可在已可用的群集資源中執(zhí)行,因?yàn)榧僭O(shè)它們不具有與當(dāng)前執(zhí)行的DC的數(shù)據(jù)依賴性。
由IPC測量的性能比較在同構(gòu)和異構(gòu)DCP微架構(gòu)之間進(jìn)行。圖18是示出表示為(3,3)、(3,2,1)和(2,2,2)的具有相同的總發(fā)出寬度的三種不同的群集配置中的結(jié)果的示意圖。(3,3)的配置具有兩個3寬度群集;(3,2,1)的配置具有三個大小為3寬度、2寬度和1寬度的群集;而(2,2,2)的配置具有三個2寬度群集。
具有(3,2,1)群集配置的DC微架構(gòu)具有與(3,3)配置幾乎相同的性能。這與DC的特性一致。因?yàn)閮H有一個具有高DC寬度的優(yōu)勢DC,所以可以僅需要一個執(zhí)行該優(yōu)勢DC的寬群集以使可用ILP最大化。
具有異構(gòu)群集配置的DCP微架構(gòu)具有優(yōu)于同構(gòu)群集配置的某些優(yōu)點(diǎn)。(3,2,1)配置可以需要比(3,3)配置小的面積,因?yàn)?3,2,1)配置可采用較小的旁路網(wǎng)絡(luò)邏輯。結(jié)果,(3,2,1)配置同樣可通過在僅有有限的ILP可用時關(guān)閉群集來消耗較少的能量。還可通過設(shè)計(jì)可變長度流水線來提高性能,因?yàn)檩^窄的流水線在深度上可能較小,并且可以被更快地計(jì)時。
另一方面,通過重復(fù)現(xiàn)有的3寬度群集來設(shè)計(jì)(3,3)配置比需要實(shí)質(zhì)上三個具有三種不同的寬度的流水線的設(shè)計(jì)的(3,2,1)配置更簡單。
圖18還比較了(3,3)配置和(2,2,2)配置。在非DC模式中,所有的指令在最寬的可用群集上執(zhí)行。因此,在非DC模式的(2,2,2)配置中,指令在2寬度流水線中執(zhí)行,這導(dǎo)致性能劣化。圖18還示出從利用指令復(fù)制算法得到的性能優(yōu)點(diǎn)。圖18中的第一條對應(yīng)于在沒有應(yīng)用指令復(fù)制算法的情況下模擬的(2,2,2)配置。對于基準(zhǔn)“gap”,實(shí)現(xiàn)了達(dá)到13%的IPC的提高。平均起來,提高在5%左右。
圖19是示出在DC模式中執(zhí)行的動態(tài)指令的百分比的示意圖。DC模式對如圖18中所示的全部三種配置,即配置(3,3)、配置(3,2,1)和配置(2,2,2)是相同的。它還示出動態(tài)的復(fù)制指令數(shù)的百分比,它平均約是4%并暗示由于復(fù)制指令引起的額外開銷是很小的。
盡管在本文中說明并描述了本發(fā)明的某些特征,但本領(lǐng)的技術(shù)人員將想到很多修改、替代、變化和等效技術(shù)。因此,應(yīng)理解所附權(quán)利要求書旨在覆蓋落入本發(fā)明的精神之內(nèi)的所有這些修改和變化。
權(quán)利要求
1.一種方法,包括將依賴性鏈分割成一組減小寬度的依賴性鏈。
2.如權(quán)利要求1所述的方法,其特征在于,分割所述依賴性鏈包括列出所述依賴性鏈的一個或多個分割方案;獲得分別與所述分割方案中的一個或多個有關(guān)的一個或多個加權(quán)索引值;以及根據(jù)與所述加權(quán)索引值中最大的一個有關(guān)的分割方案將所述依賴性鏈分割成所述一組減小寬度的依賴性鏈。
3.如權(quán)利要求2所述的方法,其特征在于,包括在所述一組減小寬度的依賴性鏈的最寬依賴性鏈上迭代地重復(fù)所述列出、所述獲得以及所述分割,直到與分割所述最寬依賴性鏈有關(guān)的所述加權(quán)索引值中最大的一個小于一預(yù)定值。
4.如權(quán)利要求2所述的方法,其特征在于,獲得所述一個或多個加權(quán)索引值包括計(jì)算與所述分割方案有關(guān)的索引值;基于所述一組減小寬度的依賴性鏈中的最寬依賴性鏈的分割確定一加權(quán)因數(shù);以及將所述索引值與所述加權(quán)因數(shù)之和應(yīng)用于所述加權(quán)索引值。
5.如權(quán)利要求4所述的方法,其特征在于,確定所述加權(quán)因數(shù)包括計(jì)算分別與所述最寬依賴性鏈的一個或多個可能分割有關(guān)的一個或多個索引值;以及將所述索引值中最大的一個應(yīng)用于所述加權(quán)因數(shù)。
6.如權(quán)利要求5所述的方法,其特征在于,所述計(jì)算包括從在所述一組減小寬度的依賴性鏈中具有最少指令數(shù)的一個中未被復(fù)制的指令數(shù)中減去所述最寬依賴性鏈的一組減小寬度的依賴性鏈中的已復(fù)制指令數(shù)。
7.如權(quán)利要求4所述的方法,其特征在于,所述計(jì)算包括從在所述一組減小寬度的依賴性鏈中具有最少指令數(shù)的一個中未被復(fù)制的指令數(shù)中減去所述一組減小寬度的依賴性鏈中的已復(fù)制指令數(shù)。
8.一種裝置,包括能夠?qū)⒁蕾囆枣湻指畛梢唤M減小寬度的依賴性鏈的處理器。
9.如權(quán)利要求8所述的裝置,其特征在于,所述處理器能夠根據(jù)與最大加權(quán)索引值有關(guān)的分割方案將所述依賴性鏈分割成所述一組減小寬度的依賴性鏈。
10.如權(quán)利要求9所述的裝置,其特征在于,所述處理器能夠在所述一組減小寬度的依賴性鏈的最寬依賴性鏈上迭代地重復(fù)所述分割,直到所述最大加權(quán)索引值小于一預(yù)定值。
11.如權(quán)利要求9所述的裝置,其特征在于,所述處理器能夠計(jì)算與所述分割方案有關(guān)的索引值、基于對所述一組減小寬度的依賴性鏈中的最寬依賴性鏈的分割確定一個加權(quán)因數(shù)、并將所述索引值與所述加權(quán)因數(shù)之和應(yīng)用于所述加權(quán)索引值。
12.如權(quán)利要求11所述的裝置,其特征在于,所述處理器能夠計(jì)算分別與所述最寬依賴性鏈的一個或多個可能分割有關(guān)的一個或多個索引值,并將所述索引值中最大的一個應(yīng)用于所述加權(quán)因數(shù)。
13.如權(quán)利要求12所述的裝置,其特征在于,所述處理器能夠從在所述一組減小寬度的依賴性鏈中具有最少指令數(shù)的一個中未被復(fù)制的指令數(shù)中減去所述最寬依賴性鏈的一組減小寬度的依賴性鏈中的已復(fù)指令數(shù)。
14.如權(quán)利要求11所述的裝置,其特征在于,所述處理器能夠從在所述一組減小寬度的依賴性鏈中具有最少指令數(shù)的一個中未被復(fù)制的指令數(shù)中減去所述一組減小寬度的依賴性鏈中的已復(fù)制指令數(shù)。
15.一種計(jì)算平臺,包括能夠?qū)⒁荒繕?biāo)指令集的依賴性鏈分割成一組減小寬度的依賴性鏈的處理器;以及存儲所述目標(biāo)指令集的存儲器。
16.如權(quán)利要求15所述的計(jì)算平臺,其特征在于,所述處理器能夠根據(jù)與最大加權(quán)索引值有關(guān)的分割方案將所述依賴性鏈分割成所述一組減小寬度的依賴性鏈。
17.如權(quán)利要求16所述的計(jì)算平臺,其特征在于,所述處理器能夠在所述一組減小寬度的依賴性鏈的最寬依賴性鏈上迭代地重復(fù)分割所述依賴性鏈。
18.如權(quán)利要求16所述的計(jì)算平臺,其特征在于,所述處理器能夠計(jì)算與所述分割方案有關(guān)的索引值、基于對所述一組減小寬度的依賴性鏈中的最寬依賴性鏈的分割確定一加權(quán)因數(shù)、并將所述索引值與所述加權(quán)因數(shù)之和應(yīng)用于所述加權(quán)索引值。
19.如權(quán)利要求18所述的計(jì)算平臺,其特征在于,所述處理器能夠計(jì)算分別與所述最寬依賴性鏈的一個或多個可能分割有關(guān)的一個或多個索引值,并將與所述一個或多個可能分割有關(guān)的索引值中最大的一個應(yīng)用于所述加權(quán)因數(shù)。
20.一種具有可由機(jī)器讀取的指令的程序存儲設(shè)備,當(dāng)所述指令由所述機(jī)器執(zhí)行時導(dǎo)致將一依賴性鏈分割成一組減小寬度的依賴性鏈。
21.如權(quán)利要求20所述的程序存儲設(shè)備,其特征在于,導(dǎo)致分割所述依賴性鏈的指令導(dǎo)致根據(jù)與最大加權(quán)索引值有關(guān)的分割方案將所述依賴性鏈分割成所述一組減小寬度的依賴性鏈。
22.如權(quán)利要求21所述的程序存儲設(shè)備,其特征在于,導(dǎo)致分割所述依賴性鏈的指令導(dǎo)致迭代地重復(fù)所述分割直到所述最大加權(quán)索引值小于一預(yù)定值。
23.一種方法,包括并行地處理跟蹤的多個依賴性鏈。
24.如權(quán)利要求23所述的方法,其特征在于,所述處理包括根據(jù)一預(yù)定方案將所述依賴性鏈中的至少某一些分配給多個處理路徑;以及彼此無關(guān)地執(zhí)行所述處理路徑中的至少某一些。
25.如權(quán)利要求24所述的方法,其特征在于,所述執(zhí)行包括在所述處理路徑中的一個或多個內(nèi)局部地讀和/或?qū)懼虚g數(shù)據(jù)。
26.如權(quán)利要求24所述的方法,其特征在于,所述執(zhí)行包括由所述處理路徑中的兩個或多個讀和/或?qū)懭謹(jǐn)?shù)據(jù)。
27.如權(quán)利要求23所述的方法,其特征在于,所述處理包括在異?;蛘`預(yù)測發(fā)生時以非依賴性鏈模式執(zhí)行所述依賴性鏈中的一個或多個。
28.如權(quán)利要求23所述的方法,其特征在于,包括以非依賴性鏈模式處理不是所述依賴性鏈的任一個的一部分的程序指令。
29.如權(quán)利要求28所述的方法,其特征在于,處理所述程序指令包括在多個處理路徑中的一個中執(zhí)行所述程序指令。
30.如權(quán)利要求28所述的方法,其特征在于,處理所述程序指令包括在多個處理路徑中的最寬路徑中執(zhí)行所述程序指令。
31.一種裝置,包括能夠并行地處理跟蹤的多個依賴性鏈的處理器。
32.如權(quán)利要求31所述的裝置,其特征在于,所述處理器包括無關(guān)地執(zhí)行所述依賴性鏈中的至少一個的多個群集。
33.如權(quán)利要求32所述的裝置,其特征在于,所述群集中的一個或多個包括存儲將在所述依賴性鏈的執(zhí)行期間使用的數(shù)據(jù)的局部存儲器。
34.如權(quán)利要求33所述的裝置,其特征在于,所述局部存儲器包括局部寄存器。
35.如權(quán)利要求32所述的裝置,其特征在于,所述處理器包括存儲將由所述群集中的兩個或多個使用的數(shù)據(jù)的全局存儲器。
36.如權(quán)利要求35所述的裝置,其特征在于,所述全局存儲器包括全局寄存器。
37.如權(quán)利要求31所述的裝置,其特征在于,所述處理器能夠在異常或誤預(yù)測發(fā)生時以非依賴性鏈模式執(zhí)行所述依賴性鏈中的一個或多個。
38.如權(quán)利要求31所述的裝置,其特征在于,所述處理器能夠以非依賴性鏈模式執(zhí)行不是所述依賴性鏈的任一個的一部分的程序指令。
39.如權(quán)利要求38所述的裝置,其特征在于,所述處理器在多個群集中的一個中執(zhí)行所述程序指令。
40.如權(quán)利要求38所述的裝置,其特征在于,所述處理器在多個群集中的最寬群集中執(zhí)行所述程序指令。
41.一種計(jì)算平臺,包括能夠并行地處理一目標(biāo)指令集的跟蹤的多個依賴性鏈的處理器;以及存儲所述目標(biāo)指令集的存儲器。
42.如權(quán)利要求41所述的計(jì)算平臺,其特征在于,所述處理器包括無關(guān)地執(zhí)行所述依賴性鏈中的至少一個的多個群集。
43.如權(quán)利要求41所述的計(jì)算平臺,其特征在于,所述處理器能夠在異?;蛘`預(yù)測發(fā)生時以非依賴性鏈模式執(zhí)行所述依賴性鏈中的一個或多個。
44.一種具有可由機(jī)器讀取的指令的程序存儲設(shè)備,當(dāng)所述指令由所述機(jī)器執(zhí)行時導(dǎo)致并行地處理跟蹤的多個依賴性鏈。
45.如權(quán)利要求44所述的程序存儲設(shè)備,其特征在于,導(dǎo)致處理所述多個依賴性鏈的指令導(dǎo)致根據(jù)一預(yù)定方案將所述依賴性鏈中的至少某一些分配給多個處理路徑;以及彼此無關(guān)地執(zhí)行所述處理路徑中的至少某一些。
46.一種方法,包括將多個依賴性鏈映射到一個或多個群集,其中所述群集中的一個或多個的發(fā)出寬度適應(yīng)于容納所述依賴性鏈的大小。
47.如權(quán)利要求46所述的方法,其特征在于,所述映射包括按照其寬度對所述依賴性鏈排序;按照其發(fā)出寬度對所述群集排序;以及以其排序順序?qū)⑺鲆蕾囆枣溑c所述群集相關(guān)聯(lián)。
48.如權(quán)利要求47所述的方法,其特征在于,還包括標(biāo)識具有最低負(fù)載值的群集;將未映射的依賴性鏈與所述最低負(fù)載群集相關(guān)聯(lián);以及重復(fù)所述標(biāo)識和所述關(guān)聯(lián),直到滿足一預(yù)定準(zhǔn)則。
49.如權(quán)利要求46所述的方法,其特征在于,所述映射包括將一程序指令集轉(zhuǎn)換成一標(biāo)識符串;以及壓縮所述標(biāo)識符串以創(chuàng)建所述多個依賴性鏈。
50.如權(quán)利要求49所述的方法,其特征在于,還包括對所述多個依賴性鏈進(jìn)行語法分析以獲得至少一個指令跟蹤。
51.如權(quán)利要求49所述的方法,其特征在于,所述壓縮包括利用推理壓縮算法來壓縮所述標(biāo)識符串。
52.如權(quán)利要求49所述的方法,其特征在于,所述轉(zhuǎn)換包括將所述程序指令劃分成一個或多個原子塊;以及將唯一的標(biāo)識符分配給所述一個或多個原子塊。
53.如權(quán)利要求49所述的方法,其特征在于,包括利用指令復(fù)制算法來優(yōu)化所述多個依賴性鏈。
54.一種裝置,包括能夠?qū)⒍鄠€依賴性鏈映射到一個或多個群集的處理器,其中所述群集中的一個或多個的發(fā)出寬度適應(yīng)于容納所述依賴性鏈的大小。
55.如權(quán)利要求54所述的裝置,其特征在于,所述處理器能夠按照其寬度來對所述依賴性鏈排序、按照其發(fā)出寬度來對所述群集排序、并以其排序順序?qū)⑺鲆蕾囆枣溑c所述群集相關(guān)聯(lián)。
56.如權(quán)利要求55所述的裝置,其特征在于,所述處理器能夠重復(fù)地標(biāo)識具有最低負(fù)載值的群集,并將未映射的依賴性鏈與所述最低負(fù)載群集相關(guān)聯(lián),直到滿足一預(yù)定準(zhǔn)則。
57.如權(quán)利要求54所述的裝置,其特征在于,所述處理器能夠?qū)⒁怀绦蛑噶罴D(zhuǎn)換成一標(biāo)識符串并壓縮所述標(biāo)識符串以創(chuàng)建所述多個依賴性鏈。
58.如權(quán)利要求57所述的裝置,其特征在于,所述處理器能夠?qū)λ龆鄠€依賴性鏈進(jìn)行語法分析以獲得至少一個指令跟蹤。
59.如權(quán)利要求57所述的裝置,其特征在于,所述處理器能夠?qū)⑺龀绦蛑噶顒澐殖梢粋€或多個原子塊,并將唯一的標(biāo)識符分配給所述一個或多個原子塊。
60.如權(quán)利要求57所述的裝置,其特征在于,所述處理器能夠利用指令復(fù)制算法來優(yōu)化所述多個依賴性鏈。
61.一種計(jì)算平臺,包括能夠?qū)⒁荒繕?biāo)指令集的多個依賴性鏈映射到一個或多個群集的處理器;以及存儲所述目標(biāo)指令集的存儲器,其中所述群集中的一個或多個的發(fā)出寬度適應(yīng)于容納所述依賴性鏈的大小。
62.如權(quán)利要求61所述的計(jì)算平臺,其特征在于,所述處理器能夠按照其寬度來對所述依賴性鏈排序、按照其發(fā)出寬度來對所述群集排序,并以其排序順序?qū)⑺鲆蕾囆枣溑c所述群集相關(guān)聯(lián)。
63.如權(quán)利要求62所述的計(jì)算平臺,其特征在于,所述處理器能夠重復(fù)地標(biāo)識具有最低負(fù)載值的群集,并將未映射的依賴性鏈與所述最低負(fù)載群集相關(guān)聯(lián),直到滿足一預(yù)定標(biāo)準(zhǔn)。
64.一種具有可由機(jī)器讀取的指令的程序存儲設(shè)備,當(dāng)所述指令由所述機(jī)器執(zhí)行時導(dǎo)致將一目標(biāo)指令集的多個依賴性鏈映射到一個或多個群集。
65.如權(quán)利要求64所述的程序存儲設(shè)備,其特征在于,導(dǎo)致所述映射的指令導(dǎo)致按照其寬度對所述依賴性鏈排序;按照其發(fā)出寬度對所述群集排序;以及以其排序順序?qū)⑺鲆蕾囆枣溑c所述群集相關(guān)聯(lián)。
66.如權(quán)利要求64所述的程序存儲設(shè)備,其特征在于,包括導(dǎo)致以下動作的指令標(biāo)識具有最低負(fù)載值的群集;將未映射的依賴性鏈與所述最低負(fù)載群集相關(guān)聯(lián);以及重復(fù)所述標(biāo)識和所述關(guān)聯(lián)直到滿足一預(yù)定準(zhǔn)則。
全文摘要
本發(fā)明的實(shí)施例提供一種方法、裝置和系統(tǒng),它可包括將依賴性鏈分割成一組減小寬度的依賴性鏈;將一個或多個依賴性鏈映射到一個或多個群集依賴性鏈處理器,其中群集中的一個或多個的發(fā)出寬度適應(yīng)于容納依賴性鏈的大小;和/或并行地處理跟蹤的多個依賴性鏈。描述并要求保護(hù)了其它實(shí)施例。
文檔編號G06F9/45GK101044457SQ200580032430
公開日2007年9月26日 申請日期2005年9月12日 優(yōu)先權(quán)日2004年9月28日
發(fā)明者S·納拉亞納薩米, H·王, J·沈, R·羅斯納, Y·阿爾莫格, N·施瓦茨, G·霍夫雷納, D·拉弗瑞, W·李, X·田, M·吉爾卡爾, P·王 申請人:英特爾公司