專利名稱:用于提供快速遠(yuǎn)地寄存器訪問的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于群集式超長指令字(VLIW)處理器的寄存器文件(register file),具體地說,涉及將寄存器名稱空間進(jìn)行分區(qū)并且將其分配給分別與各群集關(guān)聯(lián)的本地寄存器文件的分區(qū)式寄存器文件。
背景技術(shù):
處理器執(zhí)行的基本操作是按照程序內(nèi)指令序列所規(guī)定的讀取數(shù)據(jù)、進(jìn)行計算和寫入數(shù)據(jù)。處理器讀取或?qū)懭氲臄?shù)據(jù)通常存儲在諸如磁盤、存儲器、高速緩存或寄存器之類的各種存儲媒體內(nèi)。一個處理器的指令集中有很大一部分指令是訪問存儲在寄存器中的數(shù)據(jù),對于最常用的數(shù)據(jù)來說,寄存器是默認(rèn)的存儲位置。
典型的寄存器文件包括一個用于存儲諸如整數(shù)和浮點(diǎn)數(shù)之類的特定類型的數(shù)據(jù)的寄存器陣列。由處理器執(zhí)行的指令使用許多諸如功能單元、寄存器、總線、高速緩存之類的芯片上的資源執(zhí)行由程序中的指令序列規(guī)定的計算。在超長指令字(VLIW)處理器內(nèi),用一個編譯器(而不是硬件)靜態(tài)地調(diào)度指令以及跟蹤和保留指令所用的資源。一個VLIW包括一組可以在同一個周期內(nèi)發(fā)出的利用程序中指令級并行性(ILP)并行執(zhí)行的指令。在一個群集式VLIW處理器中,芯片上的資源被劃分成若干群集。在一個典型的群集式VLIW處理器中,每個群集可以含有一個由一些功能單元、一個本地寄存器文件和一個本地高速緩存組成的子集。
在一個群集中產(chǎn)生的中間計算結(jié)果經(jīng)常是同一個群集中和其他群集中所需要的。在需要將這樣的數(shù)據(jù)傳送給不同的群集時就要使用群集間拷貝指令。這樣的群集間拷貝指令要用到諸如共享或點(diǎn)到點(diǎn)群集間通信總線之類的互連結(jié)構(gòu)。
群集式處理器內(nèi)使用的寄存器文件是分區(qū)式或復(fù)制式的寄存器文件。在復(fù)制式寄存器文件的體制中,每個本地寄存器文件共享整個結(jié)構(gòu)的寄存器名稱空間,要求群集間拷貝操作維護(hù)本地寄存器文件之間的相干性。另一方面,在一個分區(qū)式寄存器文件的體制中,對寄存器名稱空間進(jìn)行分區(qū)并且將其分配給一組物理上獨(dú)立的分別與各群集關(guān)聯(lián)的寄存器文件。分區(qū)式寄存器文件十多年來已經(jīng)用做為群集中特別是群集式VLIW處理器中的本地寄存器文件,主要是為了減少端口。
與單個集中式寄存器文件相比較,采用較少的端口的分區(qū)式寄存器文件的主要優(yōu)點(diǎn)是減小了面積、訪問延遲和功率。然而,所有由于群集特別是在采用分區(qū)式寄存器文件時所得到的益處都是以以下這些性能降低為代價的1.由于在分區(qū)式寄存器文件之間移動數(shù)據(jù)需要群集間拷貝指令,從而增加了程序執(zhí)行時間;以及2.由于在程序內(nèi)需插入額外的群集間拷貝指令,從而增加了代碼長度。以下簡要說明在VLIW處理器的分區(qū)式寄存器文件方面的有關(guān)技術(shù)。R.P.Colwell等人的論文“跟蹤調(diào)度編譯器的VLIW體系結(jié)構(gòu)”(“A VLIW Architecture for a Trace Scheduling Compiler”inproceedings of the second International Conference on ArchitecturalSupport for Programming Languages and Operating Systems(ASPLOSII)in SIGPLAN Notices,vol.22,no.10,pp.180-192,October 1987)揭示了一種帶分區(qū)式寄存器文件的VLIW處理器。
顯式群集間拷貝操作由編譯器調(diào)度,以便從一個遠(yuǎn)地群集來訪問寄存器。A.Capitanio、N.Dutt和A.Nicolau在他們的論文“VLIW的分區(qū)式寄存器文件初步折衷分析”(“Partitioned Register Files for VLIWsA Preliminary Analysis of Trade-offs”,the proceedings of the 25thAnnual International Symposium on Microarchitecture,pp.292-300,December 1992)中揭示了另一種具有有限群集間連通性的群集式VLIW處理器,這種群集式VLIW處理器從遠(yuǎn)地群集訪問寄存器也需要群集間拷貝指令。
在Kailas的博士論文“群集指令級并行處理器的微體系結(jié)構(gòu)和編譯支持”(“Microarchi tectures and Compilation Support for ClusteredInstruction-level Parallel Processors”,University of Maryland,College Park published in March 2001)中和在Kailas等人的“群集式ILP處理器的分區(qū)式寄存器文件體系結(jié)構(gòu)和編譯方案”(“A PartitionedRegister File Architecture and Compilation Scheme for Clustered ILPProcessors”,EuroPar 2002 conference paper)中描述了不同類型的具有一個附裝的高速緩存寄存器緩沖器結(jié)構(gòu)的分區(qū)式寄存器文件。他們的技術(shù)通過將幾個群集間拷貝指令合并成一個新的單個“sendb”指令執(zhí)行有選擇地向與目標(biāo)群集關(guān)聯(lián)的高速緩存寄存器緩沖器廣播寄存器值從而減少了群集間拷貝操作。2001年8月28日頒發(fā)的Batten等人的美國專利6,282,585B1“降低群集式微處理器中端口壓力的協(xié)同互連”(“Cooperative interconnection for reducing port pressure inclustered microprocessors”)描述了寄存器文件復(fù)制、用多個全局移動單元復(fù)制互連和將群集間拷貝指令分成兩個子指令這三種降低群集式處理器端口要求的技術(shù)。然而,這些技術(shù)沒有解決群集間通信需要大量拷貝指令的問題。2001年11月15日頒發(fā)的M.Tremblay和W.Joy的美國專利2001/0042190“VLIW處理器內(nèi)局部和全局寄存器分區(qū)”(“Local andglobal register partitioning in a VLIW processor”)揭示了一種用于VLIW處理器的寄存器文件分區(qū)方式,每個分區(qū)式寄存器文件進(jìn)一步劃分成全局和本地寄存器,使得全局寄存器通過廣播寫操作保持所有功能單元相干。雖然這種方案由于采用將寄存器文件復(fù)制到每個寄存器文件中的全局寄存器的方法有助于避免顯式群集間拷貝操作,但有著復(fù)制寄存器文件方案的所有缺點(diǎn),諸如群集間帶寬大和中間連接通路非常多。
從上面的討論可見,所有的現(xiàn)有技術(shù)都有著與在群集式VLIW處理器中使用的分區(qū)式寄存器文件關(guān)聯(lián)的缺點(diǎn),諸如由于群集間拷貝指令多而代碼長度增長和由于群集間拷貝指令在程序內(nèi)關(guān)鍵路徑的延伸而性能損失等。
發(fā)明內(nèi)容
本發(fā)明涉及在一個采用分區(qū)式寄存器文件的群集式VL1W處理器中提供快速遠(yuǎn)地寄存器訪問的方法和設(shè)備。
本發(fā)明的一個方面是減小在一個采用分區(qū)式寄存器文件的群集式VLIW處理器中由于群集間拷貝指令引起的性能惡化。
在本發(fā)明的一個實施例中,有一個預(yù)解碼步驟從一個特定的遠(yuǎn)地群集中的流水線旁路網(wǎng)絡(luò)預(yù)取這個遠(yuǎn)地群集中將要修改的遠(yuǎn)地寄存器的內(nèi)容。
在另一個實施例中,有一個預(yù)解碼步驟直接從一個特定的遠(yuǎn)地群集的遠(yuǎn)地寄存器文件預(yù)取在這個遠(yuǎn)地群集中不會修改的遠(yuǎn)地寄存器的內(nèi)容。
在又一個實施例中,寄存器預(yù)取可以在群集式處理器中用一個預(yù)取指令緩沖器和一個識別在預(yù)取指令緩沖器中那些訪問遠(yuǎn)地寄存器文件的指令的指令預(yù)解碼器來實現(xiàn)。指令預(yù)解碼器可以用來產(chǎn)生群集間旁路控制信號和遠(yuǎn)地寄存器接入信號。
圖1示出了一個典型的群集式VLIW處理器的原理方框圖。
圖2示出了在一個群集式VLIW處理器內(nèi)的一個群集的方框圖。
圖3示出了一個按照本發(fā)明設(shè)計的具有指令預(yù)取器和指令預(yù)解碼器的群集式VLIW處理器。
圖4示出了按照本發(fā)明執(zhí)行的各個步驟的流程圖。
具體實施例方式
本發(fā)明涉及群集式超長指令字(VLIW)處理器的寄存器文件,具體地說涉及將寄存器名稱空間分區(qū)并且將其分配給分別與各群集關(guān)聯(lián)的本地寄存器文件的分區(qū)式寄存器文件。
如上所述的問題和在上面所提到的現(xiàn)有技術(shù)的有關(guān)問題是用在一個采用分區(qū)式寄存器文件的群集式VLIW處理器中提供快速遠(yuǎn)地寄存器訪問的方法和設(shè)備的本發(fā)明的原理來解決的。特別是,本發(fā)明有助于降低在一個采用分區(qū)式寄存器文件的群集式VLIW處理器中由于群集間拷貝指令引起的性能惡化。
在一個采用分區(qū)式寄存器文件和預(yù)取遠(yuǎn)地寄存器的附加硬件的群集式VLIW處理器中可以減少實際遠(yuǎn)地寄存器文件訪問時間。用一個指令預(yù)取器和一指令解碼器來預(yù)取一些指令和對之部分解碼,以便預(yù)取在運(yùn)行時間執(zhí)行VLIW所需的遠(yuǎn)地寄存器,因此充分減少了群集間拷貝指令。根據(jù)諸如有限的群集間通信帶寬、群集間通信延時等各種硬件資源限制來調(diào)度指令(VLIW),基本上減少了群集間拷貝指令,并且由此減小了代碼的尺寸和程序的執(zhí)行時間。同時也減小了寄存器壓力,從而減小了使寄存器內(nèi)容溢出到存儲器中的可能性,這是因為與在不同寄存器文件中復(fù)制相同的數(shù)據(jù)相比,只將變量(數(shù)據(jù))的一個副本存儲在所有的寄存器文件中。
一個VLIW處理器執(zhí)行包括一組可以在處理器的不同功能單元或處理流水線上并行執(zhí)行的指令的VLIW(超長指令字)。一個VLIW編譯器用來靜態(tài)地調(diào)度在一個VLIW內(nèi)的一些指令以及產(chǎn)生一些VLIW序列,使得處理器資源不會過度預(yù)留。一個VLIW可以包括一些將駐留在一個群集的本地寄存器內(nèi)的數(shù)據(jù)傳送給另一個群集的本地寄存器的群集間拷貝指令。
本發(fā)明是一種利用硬件預(yù)取遠(yuǎn)地寄存器的方法和相應(yīng)設(shè)備,可以潛在地消除在一個采用分區(qū)式寄存器文件的群集式VLIW處理器內(nèi)的大量群集間拷貝指令。更具體地說,這種方法包括調(diào)度使用遠(yuǎn)地寄存器的指令,而不需要用顯式群集間拷貝指令來訪問遠(yuǎn)地寄存器。遠(yuǎn)地寄存器內(nèi)容如果不會被當(dāng)前在處理器流水線內(nèi)任何前面的指令蓋寫就被預(yù)取。如果內(nèi)容將要被蓋寫,計劃寫給上述的遠(yuǎn)地寄存器的數(shù)據(jù)由一個群集間旁路網(wǎng)絡(luò)旁路給適當(dāng)?shù)哪繕?biāo)群集。
例如,這個網(wǎng)絡(luò)包括320、316和連接316和306的線路321(總標(biāo)為360)。最好,現(xiàn)有的群集間通信總線(316,102)也用來旁路遠(yuǎn)地寄存器內(nèi)容,因為一旦減少了群集間拷貝操作(由于按照本發(fā)明遠(yuǎn)地寄存器預(yù)取指令)該總線(316,102)將主要處在等待狀態(tài)。如果系統(tǒng)設(shè)計員喜歡,為此可以專用一個獨(dú)立的總線或網(wǎng)絡(luò)360。線路322表示直接從遠(yuǎn)地源群集的流水線執(zhí)行預(yù)取所需的控制信號。
寄存器預(yù)取可以在群集式處理器中用一個預(yù)取指令緩沖器和一個指令預(yù)解碼器實現(xiàn),指令預(yù)解碼器用來識別預(yù)取指令緩沖器中那些訪問遠(yuǎn)地寄存器文件的指令。
指令預(yù)解碼器可以用來產(chǎn)生群集間旁路控制信號和遠(yuǎn)地寄存器訪問信號,它們沿線路322傳播。在該技術(shù)領(lǐng)域內(nèi)已知有一些為靜態(tài)保留沿多個執(zhí)行通路進(jìn)行群集間通信所需的資源的編譯器算法,例如可參見2001年3月馬里蘭州大學(xué)工學(xué)院發(fā)表的Krishnan Kailas的博士論文。
圖1示出了現(xiàn)有技術(shù)的典型群集式VLIW處理器,它具有一個以上的通過群集間通信網(wǎng)絡(luò)或總線結(jié)構(gòu)102互連的群集100。一個群集如圖2所示可以有多個能夠直接訪問(讀和寫)該群集的本地寄存器文件200的功能單元(FU)202。駐留在其他群集的本地寄存器(通常稱為“遠(yuǎn)地寄存器”)中的數(shù)據(jù),可以利用群集間通信網(wǎng)絡(luò)/總線102來讀/寫。
每個群集都可以有一個數(shù)據(jù)/指令高速緩存210。在一個群集式VLIW處理器中遠(yuǎn)地寄存器通常用群集間拷貝操作來訪問;例如,如果另一個群集想要訪問在圖2所示的第i個群集的寄存器文件200中的一個寄存器,它就要用一個群集間拷貝操作。本發(fā)明能夠在一個采用分區(qū)式寄存器文件的群集式VLIW處理器中消除大量的群集間拷貝指令。
通過利用例如諸如標(biāo)為302、302-1、302-2、322、320之類的硬件和網(wǎng)絡(luò)360而不是用群集間拷貝操作預(yù)取VLIW中操作(OP)所需的遠(yuǎn)地寄存器值,大大減少了群集間拷貝操作。在遠(yuǎn)地寄存器中有一些可能被當(dāng)前流水線內(nèi)的指令修改的情況下,直接從遠(yuǎn)地寄存器文件預(yù)取必要的源寄存器值就可能不夠充分。在此情況下,遠(yuǎn)地寄存器值必需用一個群集間旁路網(wǎng)絡(luò)預(yù)先直接從遠(yuǎn)地群集的流水線旁路網(wǎng)絡(luò)取至所需的群集。
圖4所示的流程圖示出了上述方法的各個步驟。支持上述方案所需的群集式VLIW處理器配置如圖3所示。這個圖只是例示性的,例如,圖3所示的處理器流水線可以具有另外一些級。此外,這些流水線級各個也可以是流水線型的,實現(xiàn)為一些由處理器時鐘頻率要求所確定的級。指令和數(shù)據(jù)駐留在存儲器或高速緩存中。一個指令預(yù)取單元302用來將指令從存儲器取入指令預(yù)取緩沖器302-1。
用于所預(yù)取的指令的數(shù)據(jù)通路是從300至302再經(jīng)指令預(yù)取緩沖器302-1至304的線路;預(yù)取的指令進(jìn)入一個預(yù)取緩沖器,從那里首先轉(zhuǎn)給預(yù)解碼級302-2然后轉(zhuǎn)給傳統(tǒng)的解碼級304。
線路322表示從遠(yuǎn)地寄存器文件318或遠(yuǎn)地旁路網(wǎng)絡(luò)320預(yù)取遠(yuǎn)地寄存器所用的控制信號的通路。這個硬件網(wǎng)絡(luò)由一些傳統(tǒng)的部件組成。熟悉該技術(shù)領(lǐng)域的人員都很清楚利用芯片上共享或點(diǎn)到點(diǎn)總線訪問這樣的遠(yuǎn)地群集的結(jié)構(gòu)技術(shù)。
按照本發(fā)明,由于將遠(yuǎn)地寄存器內(nèi)容直接從一個遠(yuǎn)地群集的本地流水線旁路網(wǎng)絡(luò)旁路而不需要用一個群集間拷貝指令,從而減少了遠(yuǎn)地寄存器訪問時間。在現(xiàn)有技術(shù)中,遠(yuǎn)地寄存器內(nèi)容只有通過一個群集間拷貝指令才可訪問,這首先要讀取寄存器內(nèi)容(直接從寄存器文件讀取或者利用本地流水線旁路網(wǎng)絡(luò)讀取),然后通過群集間連接316發(fā)送給其他群集。通過直接預(yù)取寄存器內(nèi)容將這兩個(或更多個)步驟減為一個步驟有助于減少遠(yuǎn)地寄存器訪問時間。
包括一個共享或點(diǎn)到點(diǎn)總線的專用中間連接網(wǎng)絡(luò)實際上能為群集間傳送寄存器內(nèi)容提供更大的帶寬(以實現(xiàn)它所需的額外硬件為代價)。另一方面,現(xiàn)有的群集間通信網(wǎng)絡(luò)也可以用于這個目的。如果總線是一條共享總線,就需要有總線接入控制和仲裁(由總線技術(shù)解決),而點(diǎn)到點(diǎn)鏈路不需要這樣(以較多的布線和較大的芯片面積為代價)。
指令預(yù)取緩沖器302-1應(yīng)該足以容納屬于充分多個周期的指令,使得等到一個指令到達(dá)讀取級時,這個指令所需的所有數(shù)據(jù)都已預(yù)先取得,可供使用。再來看圖3,指令預(yù)解碼器302-2用來對指令解碼,以找到這些指令要用的寄存器,并且識別需訪問遠(yuǎn)地寄存器文件的指令。
指令預(yù)解碼器302-2還產(chǎn)生適當(dāng)?shù)目刂菩盘?,以啟動從遠(yuǎn)地群集的數(shù)據(jù)傳送。如果所需的遠(yuǎn)地寄存器還沒有由一個在流水線內(nèi)的指令寫回給寄存器文件318,單元302-2就產(chǎn)生適當(dāng)?shù)目刂菩盘?22,用群集間通信網(wǎng)絡(luò)/總線316將遠(yuǎn)地寄存器數(shù)據(jù)直接從一個群集(含有寄存器文件318的群集)旁路給另一個群集350(見圖3)。
編譯器通過調(diào)度一些充分遠(yuǎn)離的數(shù)據(jù)依從指令,保證產(chǎn)生寄存器值的指令總是能用上面提到的硬件將產(chǎn)生的寄存器值饋送給使用它們的指令。編譯器產(chǎn)生的調(diào)度因此必須明確地考慮到群集間通信網(wǎng)絡(luò)/總線的等待時間、指令預(yù)取緩沖器的容量、流水線深度等,以便等到一個使用數(shù)據(jù)的指令到達(dá)流水線的執(zhí)行級時這數(shù)據(jù)就是現(xiàn)有的??梢圆捎肒ailas在2001年3月馬里蘭州大學(xué)的博士論文中所揭示的指令調(diào)度技術(shù)的編譯算法靜態(tài)地保留沿多個執(zhí)行通路進(jìn)行群集間通信所需的資源。
在圖3的其余部分,解碼級304執(zhí)行對當(dāng)前指令的解碼,這解碼可以比在預(yù)解碼級302執(zhí)行的解碼更為全面,因為該預(yù)解碼只須對一個指令要用的寄存器操作數(shù)解碼。讀出級306從存儲器和/或寄存器文件讀得計算所需的數(shù)據(jù)。執(zhí)行級308執(zhí)行指令規(guī)定的實際操作(諸如加法或乘法操作之類),回寫級310按照指令規(guī)定將需再次使用的數(shù)據(jù)通過本地旁路網(wǎng)絡(luò)314回送給本地寄存器文件312或高速緩存300。需發(fā)送給整個系統(tǒng)內(nèi)其他群集的數(shù)據(jù)還通過回寫級310加到總線316上再送至這些群集。
圖4為例示涉及在使用前預(yù)取遠(yuǎn)地寄存器的一些步驟的流程圖。步驟405啟動預(yù)取下一個指令(VLIW)的過程。
步驟410對VLIW和VLIW內(nèi)的操作解碼,檢查需要什么資源。具體地說,如果所有的源寄存器都可在本地群集內(nèi)得到,過程就返回到預(yù)取下一個指令,如果預(yù)取緩沖器充滿的話需要暫停(步驟430)。
如果一些寄存器不是可得到的,步驟420啟動一個操作,從遠(yuǎn)地寄存器文件(如果數(shù)據(jù)不會被蓋寫)或者遠(yuǎn)地群集的流水線旁路網(wǎng)絡(luò)(如果數(shù)據(jù)會被一個遠(yuǎn)地群集的流水線內(nèi)一個在前面的指令蓋寫)預(yù)取遠(yuǎn)地寄存器。
雖然本發(fā)明就一個優(yōu)選實施例作了說明,但熟悉該技術(shù)領(lǐng)域的人員可以理解本發(fā)明可以在以下權(quán)利要求所給出的本發(fā)明的精神實質(zhì)和專利保護(hù)范圍內(nèi)以各種方式實施。
權(quán)利要求
1.一種計算機(jī)系統(tǒng),所述計算機(jī)系統(tǒng)包括至少兩個處理VLIW操作的群集式處理核心,每個所述群集式處理核心各包括一個分區(qū)式寄存器文件單元、一個指令預(yù)取解碼器和一個硬件預(yù)取單元,其中所述指令預(yù)取解碼器包括識別執(zhí)行第n個VLIW所需的遠(yuǎn)地寄存器的裝置和控制所述硬件預(yù)取單元從遠(yuǎn)地處理核心的本地寄存器文件和從所述遠(yuǎn)地處理核心中的旁路通路預(yù)取所述遠(yuǎn)地寄存器的裝置。
2.按照權(quán)利要求1所述的計算機(jī)系統(tǒng),其中所述指令預(yù)取解碼器包括識別將被在所述第n個VLIW前執(zhí)行的操作修改的要修改的遠(yuǎn)地寄存器和從所述遠(yuǎn)地群集的一個旁路網(wǎng)絡(luò)預(yù)取所述修改的遠(yuǎn)地寄存器的裝置。
3.按照權(quán)利要求1所述的計算機(jī)系統(tǒng),其中所述指令預(yù)取解碼器包括在一個與在執(zhí)行一個VLIW期間執(zhí)行的解碼步驟分開的解碼步驟中對所述VLIW部分解碼的裝置。
4.按照權(quán)利要求2所述的計算機(jī)系統(tǒng),其中所述指令預(yù)取解碼器包括在一個與在執(zhí)行一個VLIW期間執(zhí)行的解碼步驟分開的解碼步驟中對所述VLIW部分解碼的裝置。
5.按照權(quán)利要求1所述的計算機(jī)系統(tǒng),其中在所述預(yù)取解碼器內(nèi)識別的所述遠(yuǎn)地寄存器是通過一個與群集間通信總線分開的硬件通路訪問的。
6.按照權(quán)利要求2所述的計算機(jī)系統(tǒng),其中在所述預(yù)取解碼器內(nèi)識別的所述遠(yuǎn)地寄存器是通過一個與群集間通信總線分開的硬件通路訪問的。
7.按照權(quán)利要求3所述的計算機(jī)系統(tǒng),其中在所述預(yù)取解碼器內(nèi)識別的所述遠(yuǎn)地寄存器是通過一個與群集間通信總線分開的硬件通路訪問的。
8.一種運(yùn)行一個計算機(jī)系統(tǒng)的方法,所述計算機(jī)系統(tǒng)包括至少兩個處理VLIW操作的群集式處理核心,每個所述群集式處理核心各包括一個分區(qū)式寄存器文件單元、一個指令預(yù)取解碼器和一個硬件預(yù)取單元,其中所述指令預(yù)取解碼器包括識別執(zhí)行第n個VLIW所需的遠(yuǎn)地寄存器的裝置和控制所述硬件預(yù)取單元預(yù)取所述遠(yuǎn)地寄存器的裝置,所述方法包括下列步驟將第n個VLIW傳入所述預(yù)取解碼器;對所述第n個VLIW部分解碼,以識別執(zhí)行所述第n個VLIW所需的遠(yuǎn)地寄存器;以及從遠(yuǎn)地處理核心的本地寄存器文件和所述遠(yuǎn)地處理核心中的旁路通路中的至少之一中預(yù)取所述遠(yuǎn)地寄存器。
9.按照權(quán)利要求8所述的運(yùn)行一個計算機(jī)系統(tǒng)的方法,所述方法還包括在所述指令預(yù)取解碼器內(nèi)識別將被在所述第n個VLIW前執(zhí)行的操作修改的要修改的遠(yuǎn)地寄存器和從所述遠(yuǎn)地群集的旁路網(wǎng)絡(luò)預(yù)取所述修改的遠(yuǎn)地寄存器的步驟。
10.按照權(quán)利要求8所述的運(yùn)行一個計算機(jī)系統(tǒng)的方法,所述方法還包括在一個與在執(zhí)行一個VLIW期間執(zhí)行的解碼步驟分開的解碼步驟中對所述VLIW部分解碼的步驟。
11.按照權(quán)利要求9所述的運(yùn)行一個計算機(jī)系統(tǒng)的方法,所述方法還包括在一個與在執(zhí)行一個VLIW期間執(zhí)行的解碼步驟分開的解碼步驟中對所述VLIW部分解碼的步驟。
12.按照權(quán)利要求10所述的運(yùn)行一個計算機(jī)系統(tǒng)的方法,其中各VLIW和所述各VLIW內(nèi)的子指令是以使所述要修改的遠(yuǎn)地寄存器可以在它們修改后而在相關(guān)指令開始執(zhí)行前從一個遠(yuǎn)地群集取得的間隔調(diào)度的。
13.按照權(quán)利要求11所述的運(yùn)行一個計算機(jī)系統(tǒng)的方法,其中各VLIW和所述各VLIW內(nèi)的子指令是以使所述要修改的遠(yuǎn)地寄存器可以在它們修改后而在相關(guān)指令開始執(zhí)行前從一個遠(yuǎn)地群集取得的間隔調(diào)度的。
14.按照權(quán)利要求11所述的運(yùn)行一個計算機(jī)系統(tǒng)的方法,其中所述訪問在所述預(yù)取解碼器內(nèi)識別的所述遠(yuǎn)地寄存器的步驟是通過一個與群集間通信總線分開的硬件通路執(zhí)行的。
15.按照權(quán)利要求12所述的運(yùn)行一個計算機(jī)系統(tǒng)的方法,其中所述訪問在所述預(yù)取解碼器內(nèi)識別的所述遠(yuǎn)地寄存器的步驟是通過一個與群集間通信總線分開的硬件通路執(zhí)行的。
16.按照權(quán)利要求13所述的運(yùn)行一個計算機(jī)系統(tǒng)的方法,其中所述訪問在所述預(yù)取解碼器內(nèi)識別的所述遠(yuǎn)地寄存器的步驟是通過一個與群集間通信總線分開的硬件通路執(zhí)行的。
17.一種控制在一個系統(tǒng)內(nèi)的操作的呈現(xiàn)為計算機(jī)可讀形式的制品,所述系統(tǒng)包括至少兩個處理VLIW操作的群集式處理核心,每個所述群集式處理核心各包括一個分區(qū)式寄存器文件單元、一個指令預(yù)取解碼器和一個硬件預(yù)取單元,其中所述指令預(yù)取解碼器包括識別執(zhí)行第n個VLIW所需的遠(yuǎn)地寄存器的裝置和控制所述硬件預(yù)取單元預(yù)取所述遠(yuǎn)地寄存器的裝置,執(zhí)行一種操作具有一個程序的計算機(jī)系統(tǒng)的方法的裝置,所述方法包括下列步驟將第n個VLIW傳入所述預(yù)取解碼器;對所述第n個VLIW部分解碼,以識別執(zhí)行所述第n個VLIW所需的遠(yuǎn)地寄存器;以及從遠(yuǎn)地處理核心的本地寄存器文件和所述遠(yuǎn)地處理核心中的旁路通路中至少之一預(yù)取所述遠(yuǎn)地寄存器。
18.按照權(quán)利要求17所述的制品,還包括在所述指令預(yù)取解碼器內(nèi)識別將被在所述第n個VLIW前執(zhí)行的操作修改的要修改的遠(yuǎn)地寄存器和從所述遠(yuǎn)地群集的旁路網(wǎng)絡(luò)預(yù)取所述修改的遠(yuǎn)地寄存器的步驟。
19.按照權(quán)利要求17所述的制品,還包括在一個與在執(zhí)行一個VLIW期間執(zhí)行的解碼步驟分開的解碼步驟中對所述VLIW部分解碼的步驟。
20.按照權(quán)利要求19所述的制品,其中各VLIW和所述各VLIW內(nèi)的子指令是以使所述要修改的遠(yuǎn)地寄存器可以在它們修改后而在相關(guān)指令開始執(zhí)行前從一個遠(yuǎn)地群集取得的間隔調(diào)度的。
全文摘要
在一個采用分區(qū)式寄存器文件和一些預(yù)取遠(yuǎn)地寄存器的附加硬件的群集式VLIW處理器內(nèi)可以減少實際遠(yuǎn)地寄存器文件訪問時間。用一個指令預(yù)取器和一個預(yù)解碼器來預(yù)取一些指令和對之部分解碼,以便預(yù)取在運(yùn)行時執(zhí)行VLIW所需的遠(yuǎn)地寄存器,因此充分減少了群集間拷貝指令。指令(VLIW)在考慮諸如有限的群集間通信帶寬、群集間通信延遲之類的情況下予以調(diào)度。
文檔編號G06F9/30GK1534505SQ20031012125
公開日2004年10月6日 申請日期2003年12月15日 優(yōu)先權(quán)日2002年12月16日
發(fā)明者K·K·凱拉斯, K K 凱拉斯 申請人:國際商業(yè)機(jī)器公司