欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

令牌觸發(fā)多線程操作的方法和裝置的制作方法

文檔序號:6664819閱讀:461來源:國知局
專利名稱:令牌觸發(fā)多線程操作的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明大體涉及數(shù)字?jǐn)?shù)據(jù)處理器領(lǐng)域,尤其涉及用于多線程處理器的線程操作技術(shù)。
背景技術(shù)
多線程處理器是支持同時執(zhí)行多個不同指令序列或“線程”的處理器。例如在1995年由馬薩諸塞州波士頓的Jones和Bartlett出版社出版的M.J.Flynn的“計(jì)算機(jī)體系結(jié)構(gòu)流水線和并行處理器設(shè)計(jì)”,和在1997年由馬薩諸塞州雷丁大學(xué)的Addison-Wesley出版的G.A.Blaauw和Frederick P.Brooks的“計(jì)算機(jī)體系結(jié)構(gòu)觀念和發(fā)展”中描述了傳統(tǒng)的線程技術(shù),這兩個文獻(xiàn)都包含在這里以作參考。
作為舉例,被稱為“筒狀多線程操作(barrel multithreading)”的技術(shù)允許每個線程根據(jù)指定的固定數(shù)字序列發(fā)出指令。例如,帶有四個按照筒狀多線程的以線程0、線程1、線程2和線程3來表示的多個線程的處理器可以允許線程以固定的數(shù)字順序線程0,線程1,線程2,線程3,線程0等發(fā)出指令。
筒狀多線程操作和其它現(xiàn)有的線程操作技術(shù)存在的問題是這些技術(shù)通常配置成不允許發(fā)出線程指令的任意序列,或者如果這樣配置時需要過多的硬件來執(zhí)行它們。
因此現(xiàn)有技術(shù)缺乏靈活性,可能對處理器并發(fā)性產(chǎn)生不理想的限制。而且,這些技術(shù)可以導(dǎo)致阻塞狀況和由此的線程中止,其不利地影響處理器性能。
因此需要改進(jìn)的技術(shù)來用于多線程處理器。

發(fā)明內(nèi)容
本發(fā)明提供了用于多線程處理器的令牌觸發(fā)線程操作技術(shù)。
根據(jù)本發(fā)明的一個方面,多線程處理器的多個線程的指令發(fā)出序列按照這樣的方法來控制將每個所述線程與至少一個寄存器相關(guān)聯(lián),所述至少一個寄存器存儲用來識別將被允許發(fā)出一個或多個指令的下一個線程的值,和利用該存儲的值來控制該指令發(fā)出序列。
作為舉例,在本發(fā)明的一個示例性實(shí)施例中,多線程處理器的多個硬件線程單元或“上下文”中的每一個都可以包括相應(yīng)的下一個線程標(biāo)識符局部寄存器,該寄存器可以由該硬件線程單元升級,用于所述硬件線程單元中給定的一個的局部寄存器存儲一個值,該值用來識別將被允許在所述給定的硬件線程單元已發(fā)出一個或多個指令后發(fā)出一個或多個指令的下一個線程。
全局寄存器配置也可以或可選擇地被使用。更特別地,可以將所述線程和至少一個可訪問每個所述線程的全局寄存器相關(guān)聯(lián),當(dāng)由所述線程中給定的一個發(fā)出指令后該全局寄存器的內(nèi)容識別將被允許根據(jù)所述指令發(fā)出序列發(fā)出一個或多個指令的另一個線程。
有利地,本發(fā)明的多線程處理器可以配置成允許指令發(fā)出序列例如對應(yīng)線程的任意交替偶一奇序列,或者其它任意序列,同時不引起導(dǎo)致線程中止的阻塞狀況。


圖1是一個實(shí)現(xiàn)本發(fā)明的示例性處理系統(tǒng)的框圖。
圖2是圖1處理系統(tǒng)的多線程處理器的一個示例性實(shí)施例的更詳細(xì)框圖。
圖3顯示了適用于根據(jù)本發(fā)明的技術(shù)的圖2的多線程處理器的令牌觸發(fā)線程操作的一個例子。
圖4顯示了一種方式,在該方式中示例性指令函數(shù)可以在根據(jù)本發(fā)明的技術(shù)的圖2多線程處理器中進(jìn)行流水線處理。
圖5顯示了一個示例性單發(fā)流水線,其中圖2處理器的每個線程在每個周期發(fā)出一個指令。
圖6顯示了一個示例性多發(fā)流水線,其中圖2處理器的每個線程在每個周期發(fā)出兩個指令。
圖7顯示了根據(jù)本發(fā)明配置的并適用于圖2處理器的一組示例性硬件線程單元。
圖8顯示了在圖2處理器的一個示例性實(shí)施例中實(shí)現(xiàn)的令牌觸發(fā)線程操作技術(shù)。
具體實(shí)施例方式
本發(fā)明在這里將作為在一個示例性多線程處理器中實(shí)現(xiàn)來說明。然而應(yīng)當(dāng)理解,本發(fā)明并不要求使用該示例性實(shí)施例的特定多線程處理器配置,而是更一般地適用于任何多線程處理器應(yīng)用,在這些應(yīng)用中通過令牌觸發(fā)多線程操作與指令流水線配合的使用可以達(dá)到提供改進(jìn)的性能的需要。
將結(jié)合圖1和2來描述實(shí)現(xiàn)本發(fā)明的令牌觸發(fā)線程操作技術(shù)的一個示例性處理系統(tǒng)100。
圖1顯示了處理系統(tǒng)100,該系統(tǒng)包括連接到主存儲器104的多線程處理器102。該多線程處理器102包括一個多線程高速緩沖存儲器110和一個多線程數(shù)據(jù)存儲器112。
圖2顯示了多線程處理器102的一個可能實(shí)現(xiàn)方式的更詳細(xì)視圖。在該實(shí)施例中,多線程處理器102包括多線程高速緩沖存儲器110,數(shù)據(jù)存儲器112,高速緩存控制器114,指令解碼器116,寄存器堆118,和一組算術(shù)邏輯部件(ALU)120。該多線程高速緩沖存儲器110在這里也被稱為多線程高速緩沖。
應(yīng)當(dāng)注意,為了使顯示清楚而簡化了圖1和2中所示的特定配置,也可以包括未明確顯示的附加的或可替換的元件,這對于本領(lǐng)域的熟練技術(shù)人員來說是顯而易見的。
多線程高速緩沖110包括多個線程緩沖110-1,110-2,…110-N,其中N通常表示根據(jù)多線程處理器102的線程的數(shù)量。因此每個線程具有在多線程高速緩沖110中的相關(guān)的相應(yīng)線程高速緩沖。類似地,數(shù)據(jù)存儲器112包括N個不同的數(shù)據(jù)存儲器實(shí)例,其如圖所示地表示為數(shù)據(jù)存儲器112-1,112-2,…112-N。
多線程高速緩沖110中的每個線程緩沖可以包括具有一組或多組存儲單元的存儲器陣列。給定的線程高速緩沖可以進(jìn)一步包括用于存儲相關(guān)線程標(biāo)識符的線程標(biāo)識符寄存器,這將在下面結(jié)合圖7進(jìn)行詳細(xì)描述。
多線程高速緩沖110通過高速緩存控制器114與主存儲器104連接。高速緩存控制器114保證了來自主存儲器104的合適指令被加載到多線程高速緩沖110中。在該示例性實(shí)施例中的高速緩存控制器114與邏輯電路或與單獨(dú)的線程高速緩沖112-1,112-2,…112-N相關(guān)的其它處理元件配合地工作,并且執(zhí)行至少一部分地址映射技術(shù),例如完全關(guān)聯(lián)映射、直接映射或組相關(guān)映射。適合與本發(fā)明結(jié)合使用的示例性的組相關(guān)映射技術(shù)描述于申請日為2002年6月4日、序列號為Nos.10/161774和10/161874的美國專利申請中并且與本申請一起被轉(zhuǎn)讓,該兩個申請都包含于此以作參考。
通常,多線程高速緩沖110用于存儲將要由多線程處理器102執(zhí)行的指令,而數(shù)據(jù)存儲器112存儲指令操作的數(shù)據(jù)。指令由指令解碼器116從多線程高速緩沖110取得,所述解碼器以傳統(tǒng)的方式在控制指令的執(zhí)行中與寄存器堆118和ALU 120配合操作。諸如116,118和120這樣的多線程處理器元件的操作在本領(lǐng)域中是公知的,因此在這里不再進(jìn)一步描述。
數(shù)據(jù)存儲器112典型地直接連接到主存儲器104,盡管該連接未在圖中明確示出。
一個或多個存儲器104,110和112中每一個都可以配置成包括多個存儲體或其它指定部分。作為示例,每個存儲體可以看作是由一個或多個存儲模塊或者單個存儲模塊的特定部分組成。
關(guān)于多線程處理器的這些和其它存儲器的基于線程的存儲體操作技術(shù)在上述的代理人檔案號為1007-5、發(fā)明名稱為“多線程處理器中基于線程的存儲器訪問的方法和裝置”的美國專利中進(jìn)行了描述。
對諸如寄存器堆118這樣的寄存器堆的基于線程的訪問技術(shù)在上述的代理人檔案號為1007-7、發(fā)明名稱為“多線程處理器中寄存器堆端口簡化的方法和裝置”的美國專利申請中進(jìn)行了描述。
應(yīng)當(dāng)強(qiáng)調(diào)的是本發(fā)明并不要求圖2所示的特定多線程處理器配置。本發(fā)明可以用多種其它多線程處理器配置實(shí)現(xiàn)。
圖2所示類型的和適合與本發(fā)明結(jié)合使用的多線程處理器的更特別的例子描述于序列號為No.60/341289、申請日為2001年12月20日的美國臨時專利申請中,該申請包含于此以作參考。如序列號為No.60/341289的美國臨時專利申請所述的多線程處理器的示例性實(shí)施例能夠執(zhí)行基于RISC的控制代碼、數(shù)字信號處理器(DSP)代碼、Java代碼和網(wǎng)絡(luò)處理代碼。該處理器包括單指令多數(shù)據(jù)(SIMD)矢量單元、簡化單元和長指令字(LIW)復(fù)合指令執(zhí)行。
根據(jù)本發(fā)明的一個方面,提高了諸如圖2的處理器102這樣的多線程處理器的性能。更具體而言,如下面將要更詳細(xì)描述的,處理器102根據(jù)本發(fā)明的技術(shù)配置以利用令牌觸發(fā)線程操作技術(shù),該技術(shù)結(jié)合指令流水線操作,以增強(qiáng)處理器并發(fā)性和減小線程中止的可能性。
圖3示出了用于實(shí)現(xiàn)處理器102的令牌觸發(fā)線程操作的一個例子,在該處理器中線程的數(shù)量N是八。通常,所有的線程都同時操作,并且每個都訪問線程高速緩沖110和數(shù)據(jù)存儲器112的相應(yīng)實(shí)例。如圖3所示,這八個線程用線程0,線程1,線程2,…線程7表示,并且顯示成以環(huán)的形式串行連接。在該多線程處理器中,給定的線程通常可以看作為硬件和軟件。與給定的線程相關(guān)的特定處理器硬件因此在這里被更特別地稱為硬件線程單元或簡單地稱為“上下文”。
根據(jù)圖3所示的令牌觸發(fā)線程操作,允許所有的硬件線程單元或上下文同時執(zhí)行指令,但是僅有一個上下文可以在處理器的一個特定時鐘周期中發(fā)出一個指令。也就是說,所有的上下文同時執(zhí)行但是只有一個上下文在一個特定的時鐘周期是有效的。因此,如果總共有C個上下文,那么需要C個時鐘周期來從所有的上下文發(fā)出一個指令。在每個時鐘周期,一個上下文發(fā)出一個指令,令牌指示下一個線程發(fā)出一個指令。
在圖3的例子中,令牌以順序的或循環(huán)的方式設(shè)置,從而上下文將順序地發(fā)出指令。然而,令牌指示下一個上下文發(fā)出指令可設(shè)置成使用其它模式,例如交替偶-奇模式。而且,如上所述,其它類型的線程操作也可以與本發(fā)明結(jié)合使用。下面將結(jié)合圖7和8更詳細(xì)地描述本發(fā)明的多個示例性線程操作技術(shù)。
圖4顯示了一種方式,在該方式中示例性指令函數(shù)可以在根據(jù)本發(fā)明的多線程處理器102中進(jìn)行流水線處理。在本發(fā)明的示例性實(shí)施例中,該類型的流水線優(yōu)選地與前面所述的令牌觸發(fā)線程操作結(jié)合使用,但是應(yīng)當(dāng)理解流水線和線程操作的多種其它組合也可以用于實(shí)現(xiàn)本發(fā)明。
圖4的流水線設(shè)置成與圖3的示例性N=8個令牌觸發(fā)線程結(jié)合使用。圖4中示例性指令函數(shù)包括加載/存儲(Ld/St),ALU,整數(shù)乘法(I_Mul)和矢量乘法(V_Mul),并且被顯示成分別具有九,六,七和八個流水線階段。
圖4中所示的每個示例性指令流水線包括至少一個指令解碼階段,一個寄存器堆(RF)讀入階段,一個轉(zhuǎn)移(Xfer)階段和一個寫回(WB)階段。RF讀入階段包括從諸如寄存器堆118這樣的寄存器堆讀入,轉(zhuǎn)移階段典型地包括將指令結(jié)果轉(zhuǎn)移到指定的保持寄存器,WB階段包括將指令結(jié)果寫回到存儲器或寄存器堆。
Ld/St流水線進(jìn)一步包括地址生成(Agen)階段,內(nèi)部(Int)或外部(Ext)確定階段,和三個附加存儲器執(zhí)行階段,其表示為Mem0,Mem1,Mem2。Ld/St流水線因此總共包括四個存儲器執(zhí)行階段,也就是,Mem0,Mem1,Mem2和WB。內(nèi)部或外部確定階段確定相關(guān)的存儲器訪問是內(nèi)部的還是外部的存儲器,并且可以被看作為流水線中附加的解碼階段。應(yīng)當(dāng)注意可能要求附加的存儲器執(zhí)行階段以用于某些外部存儲器訪問。例如,如果外部存儲器訪問的WB階段在相應(yīng)線程有效的期間未完成,那么該線程可以被中止,從而WB階段將在下一次該線程有效的時候完成。
ALU流水線進(jìn)一步包括由Exec1和Exec2表示的兩個執(zhí)行階段。
整數(shù)I_Mul流水線進(jìn)一步包括由Exec1,Exec2和Exec3表示的三個執(zhí)行階段。
矢量V_Mul流水線進(jìn)一步包括兩個乘法階段MPY1和MPY2,和兩個加法階段Add1和Add2。
多線程處理器102優(yōu)選地配置成一旦來自特定上下文的指令進(jìn)入其相應(yīng)流水線,它運(yùn)行到完成。
使用適當(dāng)配置的流水線和足夠數(shù)量的線程,即使在每個周期每個上下文只發(fā)出一個單指令,所有的硬件上下文都可以并發(fā)地執(zhí)行。如前面所指出的,所述特定數(shù)量的線程和流水線階段僅僅是作為示例,并不意味著反映優(yōu)選的實(shí)現(xiàn)方式。在這里所提供的教導(dǎo)下本領(lǐng)域的技術(shù)人員將能夠容易地確定對于特定應(yīng)用的合適數(shù)量的線程和流水線階段。
現(xiàn)在將參考圖5和6描述圖4的流水線的操作的多個例子。圖5和6每一個的圖示都顯示了由特定處理器線程發(fā)出的指令序列,并且為每個指令指示相應(yīng)線程利用了寄存器堆118的偶數(shù)(e)部分還是奇數(shù)(o)部分。上述的代理人檔案號為1007-7、發(fā)明名稱為“多線程處理器中寄存器堆端口簡化的方法和裝置”的美國專利申請說明了寄存器堆118怎樣可以被分為偶數(shù)和奇數(shù)部分的一個例子,使用線程標(biāo)識符可選擇這些部分中特定的一個。
在圖5和6的例子中,為了描述的簡化和清楚而假設(shè)線程的數(shù)量N等于4,及每個線程根據(jù)圖3令牌觸發(fā)線程操作的循環(huán)執(zhí)行方式發(fā)出指令。更具體而言,在這些例子中每個線程發(fā)出交替的加載和矢量乘法指令,這是在許多信號處理應(yīng)用中的一個典型的指令序列。該加載和矢量乘法指令基本上如圖4所示的指令函數(shù)流水線所述的方式設(shè)置。
現(xiàn)在參考圖5,其顯示了單發(fā)流水線的一個例子,其中每個線程在每個周期發(fā)出一個指令。從圖5中可以看出由發(fā)出的指令訪問的寄存器堆部分在線程和線程之間以偶(e)和奇(o)交替。這保證了相鄰寄存器寫回操作,例如那些與線程4的第一加載指令和線程1的矢量乘法指令相關(guān)的操作,被引導(dǎo)到寄存器堆的不同部分。更具體而言,線程4的第一加載指令被引導(dǎo)到寄存器堆1的偶數(shù)部分,而線程1的矢量乘法指令被引導(dǎo)到寄存器堆的奇數(shù)部分。該圖中所示的其它指令以類似的方式被設(shè)置。
線程標(biāo)識符用于選擇給定的線程將訪問寄存器堆的偶數(shù)還是奇數(shù)部分。例如,在圖5和6的N=4的情況下,線程標(biāo)識符的最低有效位(LSB)能夠用于在寄存器堆的偶數(shù)和奇數(shù)部分之間進(jìn)行選擇。
圖6顯示了一個示例性多發(fā)流水線,其中每個處理器線程在每個周期發(fā)出兩個指令。在這里,單線程在每個周期發(fā)出加載和矢量乘法指令。由于在每個周期發(fā)出多個指令,因此圖5的例子需要兩個附加的寄存器堆讀入端口。然而,在該圖中可以看出,所有的并發(fā)寫入仍然是寄存器的偶數(shù)或奇數(shù)部分,其由線程標(biāo)識符的LSB確定,所以所需的寄存器堆寫入端口數(shù)量和由此的處理器能量消耗被減少。
應(yīng)當(dāng)強(qiáng)調(diào)的是與圖5和6結(jié)合的所示線程的特定數(shù)量僅僅是示例性的,本發(fā)明并不限于使用任何特定的線程數(shù)量。
圖7顯示了硬件線程單元702-i,i=1,2,…N的組700,其可以在根據(jù)本發(fā)明的圖2多線程處理器中執(zhí)行。如前面所述,這種硬件線程單元在這里也可以稱為上下文,通常存在與處理器支持的每個線程相關(guān)的一個這種單元或上下文。每個硬件線程單元702包括一個線程標(biāo)識符(TID)寄存器704和一個下一個線程標(biāo)識符(NTID)寄存器706。另外,每個硬件線程單元702可以包括一個相應(yīng)的線程高速緩沖110和數(shù)據(jù)高速緩沖112,以及或可選擇的高速緩存控制器114或其它處理器電路的相關(guān)部分。
根據(jù)本發(fā)明,每個硬件線程單元702可以在一個給定的處理器周期發(fā)出一個或更多的指令。在一個給定硬件線程單元中的TID寄存器704存儲相應(yīng)線程的線程標(biāo)識符。在該給定的硬件線程單元中的NTID寄存器706存儲下一個硬件線程單元的線程標(biāo)識符,該下一個硬件線程單元將在該給定的硬件線程單元已發(fā)出其指令(一個或多個)之后發(fā)出一個指令。該NTID寄存器706因此可以被看作存儲關(guān)于本發(fā)明的令牌觸發(fā)線程操作技術(shù)的令牌。該令牌可以被所述給定的硬件線程單元設(shè)置成任何其它硬件線程單元的線程標(biāo)識符,由此在令牌觸發(fā)多線程處理中提供很大的靈活性。
盡管在圖7中作為可由相應(yīng)硬件線程單元獨(dú)立編程的局部寄存器示出,NTID寄存器也可以或可選擇地作為可訪問所有硬件線程單元的全局寄存器而實(shí)現(xiàn)。在該情況下,每個硬件線程單元不需要串連地增加全局NTID寄存器。例如,在硬件線程單元外部執(zhí)行的狀態(tài)機(jī)或其它類似的電路可以用于對全局NTID寄存器編程以提供任何期望的令牌序列。
圖8顯示了對應(yīng)交替偶一奇模式的示例性令牌序列。在特定的N=8的令牌觸發(fā)線程操作例子中的該令牌序列是線程0(T0),線程3(T3),線程2(T2),線程1(T1),線程6(T6),線程5(T5),線程4(T4),線程7(T7),線程0(T0),等等。
該例子表明如圖7所示的NTID寄存器的使用允許每個上下文在一個偶—奇模式中將令牌授予任何其它上下文而不在執(zhí)行流水線中導(dǎo)致任何沖突,由此不導(dǎo)致線程中止。該線程操作技術(shù)與指令流水線操作的組合明顯地減小了阻塞狀況的數(shù)量并允許偶—奇線程序列的任意執(zhí)行。
如前面所述,線程標(biāo)識符寄存器704存儲多位線程標(biāo)識符,多線程處理器102使用該多位線程標(biāo)識符來識別特定的線程。這種線程標(biāo)識符可以用傳統(tǒng)方式產(chǎn)生,這對于本領(lǐng)域的技術(shù)人員是顯而易見的。
這里所用的術(shù)語“線程標(biāo)識符”意味著包括適合識別多線程處理器中特定線程或一組多線程的任何信息。作為示例而非限定,n位線程標(biāo)識符可以用于唯一地識別該多線程處理器支持的N=2n線程中的一個。適合用于本發(fā)明的各種不同的線程標(biāo)識符設(shè)置對于本領(lǐng)域的熟練技術(shù)人員來說是顯而易見的。
如上所述,本發(fā)明的令牌觸發(fā)線程操作技術(shù)與傳統(tǒng)的技術(shù)相比具有明顯的進(jìn)步。例如,該技術(shù)能夠大幅減小線程中止的可能性。而且,這些改進(jìn)不會影響處理器的并發(fā)性或處理器性能的其它方面。
本發(fā)明的上述實(shí)施例意味著僅僅是示例性的,附加權(quán)利要求范圍內(nèi)多種可選擇實(shí)施例對于本領(lǐng)域的熟練技術(shù)人員來說是顯而易見的。例如,多線程處理器配置,線程的數(shù)量,線程標(biāo)識符設(shè)置和該示例性實(shí)施例的其它參數(shù)可以進(jìn)行變化以適應(yīng)給定應(yīng)用的特殊需要。
權(quán)利要求
1.控制多線程處理器的多個線程的指令發(fā)出序列的方法,該方法包括以下步驟將每個所述線程與至少一個寄存器相關(guān)聯(lián),所述至少一個寄存器存儲用來識別將被允許發(fā)出一個或多個指令的下一個線程的值;和利用該存儲的值來控制該指令發(fā)出序列。
2.根據(jù)權(quán)利要求1所述的方法,其中所述關(guān)聯(lián)步驟進(jìn)一步包括將所述多線程處理器的多個硬件線程單元的每一個與可由該硬件線程單元升級的相應(yīng)的局部寄存器相關(guān)聯(lián)的步驟,用于所述硬件線程單元中給定之一的局部寄存器存儲一個值,該值用來識別將被允許在所述給定的硬件線程單元已發(fā)出一個或多個指令后發(fā)出一個或多個指令的下一個線程。
3.根據(jù)權(quán)利要求1的方法,其中所述關(guān)聯(lián)步驟進(jìn)一步包括將多個寄存器與多個硬件線程單元相關(guān)聯(lián)的步驟,所述多個寄存器包括用于每個所述硬件線程單元的一個線程標(biāo)識符寄存器,該線程標(biāo)識符寄存器存儲相應(yīng)硬件線程單元的線程標(biāo)識符,和下一個線程標(biāo)識符寄存器,該下一個線程標(biāo)識符寄存器存儲指定硬件線程單元中將被允許發(fā)出一個或多個指令的下一個硬件線程單元的下一個線程標(biāo)識符。
4.根據(jù)權(quán)利要求1的方法,其中所述關(guān)聯(lián)步驟進(jìn)一步包括將每個所述線程和至少一個可訪問每個所述線程的全局寄存器相關(guān)聯(lián)的步驟,當(dāng)由所述線程中給定之一發(fā)出指令后,該全局寄存器的內(nèi)容識別將被允許根據(jù)所述指令發(fā)出序列發(fā)出一個或多個指令的另一個線程。
5.根據(jù)權(quán)利要求1的方法,其中所述關(guān)聯(lián)和利用步驟設(shè)置成允許所述指令發(fā)出序列對應(yīng)任意的交替偶—奇線程序列,同時不引起導(dǎo)致線程中止的堵塞狀況。
6.根據(jù)權(quán)利要求1的方法,其中所述至少一個寄存器包括一個n位寄存器,該寄存器適合存儲2n線程中給定之一的唯一標(biāo)識符。
7.根據(jù)權(quán)利要求1的方法,其中所述至少一個寄存器與一個線程高速緩沖相關(guān)聯(lián),該線程高速緩沖對應(yīng)所述多線程處理器的一個特定線程。
8.根據(jù)權(quán)利要求1的方法,其中存儲在所述至少一個寄存器中的所述值包括關(guān)于令牌觸發(fā)線程操作的令牌。
9.根據(jù)權(quán)利要求8的方法,其中所述令牌觸發(fā)線程操作利用該令牌來在當(dāng)前的處理器周期中識別所述多個線程中將被允許在下一個時鐘周期發(fā)出一個指令的特定的一個線程。
10.根據(jù)權(quán)利要求8的方法,其中所述令牌觸發(fā)線程操作將不同的令牌分配到所述多線程處理器的多個線程中的每一個。
11.根據(jù)權(quán)利要求1的方法,其中所述多線程處理器配置成用于流水線指令處理。
12.根據(jù)權(quán)利要求11的方法,其中所述多線程處理器利用指令流水線,在該指令流水線中每個線程在每個處理器時鐘周期中發(fā)出單指令。
13.根據(jù)權(quán)利要求11的方法,其中所述多線程處理器利用指令流水線,在該指令流水線中每個線程在每個處理器時鐘周期中發(fā)出多個指令。
14.根據(jù)權(quán)利要求13的方法,其中多個所述線程中的每一個在相應(yīng)多個處理器時鐘周期中的每一個發(fā)出加載和指令乘法指令,同時不中止所述多個線程。
15.一種多線程處理器,其包括多個硬件線程單元并且配置成用于控制該多線程處理器的多個線程的指令發(fā)出序列,其中在該處理器中,每個所述線程與至少一個寄存器相關(guān)聯(lián),所述至少一個寄存器存儲用來識別將被允許發(fā)出一個或多個指令的下一個線程的值,該存儲的值用于控制該處理器的所述指令發(fā)出序列。
16.一種制造的產(chǎn)品,其包括機(jī)器可讀的存儲介質(zhì),該存儲介質(zhì)具有嵌入其中的程序代碼以用于控制一個多線程處理器的多個線程的指令發(fā)出序列,其中當(dāng)由該處理器執(zhí)行時該程序代碼執(zhí)行下述步驟將每個所述線程與至少一個寄存器相關(guān)聯(lián),所述至少一個寄存器存儲用來識別將被允許發(fā)出一個或多個指令的下一個線程的值;和利用該存儲的值來控制該指令發(fā)出序列。
全文摘要
本發(fā)明公開了一種多線程處理器中的令牌觸發(fā)多線程操作技術(shù)。多線程處理器的多個線程的指令發(fā)出序列按照這樣的方法來控制將每個所述線程與至少一個寄存器相關(guān)聯(lián),所述至少一個寄存器存儲用來識別將被允許發(fā)出一個或多個指令的下一個線程的值,和利用該存儲的值來控制該指令發(fā)出序列。例如,多線程處理器的多個硬件線程單元中的每一個可以包括可由該硬件線程單元升級的相應(yīng)的局部寄存器,用于所述硬件線程單元中給定之一的該局部寄存器存儲一個值,該值用來識別將被允許在所述給定的硬件線程單元已發(fā)出一個或多個指令后發(fā)出一個或多個指令的下一個線程。全局寄存器配置也可以或可選擇地被使用。該處理器可以配置成允許所述指令發(fā)出序列對應(yīng)任意的交替偶—奇線程序列,同時不引起導(dǎo)致線程中止的堵塞狀況。
文檔編號G07FGK1711563SQ200380102976
公開日2005年12月21日 申請日期2003年10月9日 優(yōu)先權(quán)日2002年10月11日
發(fā)明者E·赫凱內(nèi)克, M·穆杜吉爾, J·C·格洛斯納 申請人:沙橋技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
平邑县| 石狮市| 河西区| 望谟县| 筠连县| 宁波市| 昭觉县| 清涧县| 即墨市| 桐梓县| 乐亭县| 绥德县| 长寿区| 延寿县| 行唐县| 靖远县| 重庆市| 马龙县| 惠安县| 许昌市| 瑞丽市| 谢通门县| 丹棱县| 崇信县| 郁南县| 新宁县| 绥江县| 宣武区| 舒兰市| 雅江县| 南丹县| 都昌县| 安图县| 波密县| 犍为县| 九江市| 隆安县| 金门县| 唐山市| 马尔康县| 通化市|