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

用于將執(zhí)行線程分組的系統(tǒng)和方法

文檔序號(hào):6564412閱讀:166來源:國知局
專利名稱:用于將執(zhí)行線程分組的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明的實(shí)施例大體上涉及多線程處理,且更確切地說,涉及一種用于將執(zhí)行線程分組以實(shí)現(xiàn)改進(jìn)的硬件利用率的系統(tǒng)和方法。
背景技術(shù)
一般來說,計(jì)算機(jī)指令需要執(zhí)行多個(gè)時(shí)鐘周期。為此原因,多線程處理器以連續(xù)的方式執(zhí)行若干并行指令線程,以使得可盡可能地將用于執(zhí)行指令的硬件保持繁忙。舉例來說,當(dāng)執(zhí)行具有以下所示的特征的指令線程時(shí),多線程處理器可連續(xù)調(diào)度四個(gè)并行線程。通過以此方式調(diào)度線程,多線程處理器能夠在23個(gè)時(shí)鐘周期之后完成4個(gè)線程的執(zhí)行,其中在時(shí)鐘周期1-20期間執(zhí)行第一線程,在時(shí)鐘周期2-21期間執(zhí)行第二線程,在時(shí)鐘周期3-22期間執(zhí)行第三線程,且在時(shí)鐘周期4-23期間執(zhí)行第四線程。比較來說,如果處理器直到處理中的線程完成執(zhí)行時(shí)才調(diào)度一線程,那么會(huì)花費(fèi)80個(gè)時(shí)鐘周期來完成4個(gè)線程的執(zhí)行,其中在時(shí)鐘周期1-20期間執(zhí)行第一線程,在時(shí)鐘周期21-40期間執(zhí)行第二線程,在時(shí)鐘周期41-60期間執(zhí)行第三線程,且在時(shí)鐘周期61-80期間執(zhí)行第四線程。
指令等待時(shí)間需要的資源1 4個(gè)時(shí)鐘周期3個(gè)寄存器2 4個(gè)時(shí)鐘周期4個(gè)寄存器3 4個(gè)時(shí)鐘周期3個(gè)寄存器4 4個(gè)時(shí)鐘周期5個(gè)寄存器5 4個(gè)時(shí)鐘周期3個(gè)寄存器然而,上述并行處理需要更大量的硬件資源,例如更大數(shù)目的寄存器。在上文給出的實(shí)例中,并行處理所需的寄存器數(shù)目為20,而相比之下,非并行處理需要5個(gè)。
在許多情況下,執(zhí)行的等待時(shí)間并不統(tǒng)一。舉例來說,在圖形處理的情況下,指令線程通常包括等待時(shí)間通常小于10個(gè)時(shí)鐘周期的數(shù)學(xué)操作和等待時(shí)間超過100個(gè)時(shí)鐘周期的存儲(chǔ)器存取操作。在此類情況下,對(duì)并行線程的執(zhí)行進(jìn)行連續(xù)調(diào)度并不能非常好地起作用。如果連續(xù)執(zhí)行的并行線程的數(shù)目過小,那么大部分執(zhí)行硬件會(huì)由于高等待時(shí)間的存儲(chǔ)器存取操作而變得利用不足。另一方面,如果連續(xù)執(zhí)行的并行線程的數(shù)目大到足以覆蓋存儲(chǔ)器存儲(chǔ)操作的高等待時(shí)間,那么支持現(xiàn)行線程所需的寄存器數(shù)目會(huì)顯著增加。

發(fā)明內(nèi)容
本發(fā)明提供一種用于將執(zhí)行線程分組以便更有效率地利用執(zhí)行硬件的方法。本發(fā)明還提供一種計(jì)算機(jī)系統(tǒng),其包括一經(jīng)配置以將執(zhí)行線程分組以便更有效率地利用執(zhí)行硬件的存儲(chǔ)器單元。
根據(jù)本發(fā)明的一實(shí)施例,將多個(gè)線程劃分成具有兩個(gè)或兩個(gè)以上線程的伙伴組,以使得每個(gè)線程被分配一個(gè)或一個(gè)以上伙伴線程。每個(gè)伙伴組中只有一個(gè)線程活動(dòng)地執(zhí)行指令。當(dāng)活動(dòng)線程遇到交換事件(例如交換指令)時(shí),活動(dòng)線程暫停執(zhí)行,且其伙伴線程中的一者開始執(zhí)行。
交換指令通常出現(xiàn)在高等待時(shí)間指令之后,且導(dǎo)致在活動(dòng)執(zhí)行列表中當(dāng)前活動(dòng)線程被交換為其伙伴線程中的一者?;锇榫€程的執(zhí)行會(huì)一直繼續(xù),直到伙伴線程遇到交換指令為止,所述指令使得在活動(dòng)執(zhí)行列表中伙伴線程被交換為其伙伴線程中的一者。如果一組中只有兩個(gè)伙伴,那么在活動(dòng)執(zhí)行列表中伙伴線程就被交換為原來的線程,且重新開始原來的線程的執(zhí)行。如果一組中有兩個(gè)以上伙伴,那么根據(jù)某種預(yù)定次序伙伴線程被交換為所述組中的下一伙伴。
為了節(jié)約寄存器文件使用,每個(gè)伙伴線程將其寄存器分配劃分成兩組私用的和共用的。只有屬于私用組的寄存器才會(huì)在交換間保留其值。共用的寄存器始終歸伙伴組的當(dāng)前活動(dòng)線程所有。
使用在加載程序以供執(zhí)行時(shí)由若干線程填充的表格來組織伙伴組。所述表格可保存在芯片上寄存器中。所述表格具有多個(gè)行,且是根據(jù)每個(gè)伙伴組中的線程數(shù)目來配置的。舉例來說,如果每個(gè)伙伴組中有兩個(gè)線程,那么所述表格配置有兩個(gè)列。如果每個(gè)伙伴組中有三個(gè)線程,那么所述表格配置有三個(gè)列。
根據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)將上述表格存儲(chǔ)在存儲(chǔ)器中,且包含一配置有第一和第二執(zhí)行管線的處理單元。所述第一執(zhí)行管線用來執(zhí)行數(shù)學(xué)操作,且所述第二執(zhí)行管線用來執(zhí)行存儲(chǔ)器操作。


為了能詳細(xì)地了解本發(fā)明的上述特性,可參考實(shí)施例對(duì)以上簡要概括的本發(fā)明進(jìn)行更為具體的描述,附圖中說明了其中某些實(shí)施例。然而,應(yīng)注意,附圖僅說明本發(fā)明的典型實(shí)施例,且因此不應(yīng)認(rèn)為其限制本發(fā)明的范圍,因?yàn)楸景l(fā)明可涵蓋其它同樣有效的實(shí)施例。
圖1是其中可實(shí)施本發(fā)明的構(gòu)建一具有復(fù)數(shù)個(gè)處理單元的GPU的計(jì)算機(jī)系統(tǒng)的簡化方框圖。
圖2以更加詳細(xì)的形式說明圖1中的一處理單元。
圖3是圖2所示的指令分派單元的功能方框圖。
圖4是展示根據(jù)本發(fā)明第一實(shí)施例的線程庫和指令緩沖器的概念圖。
圖5是展示根據(jù)本發(fā)明第二實(shí)施例的線程庫和指令緩沖器的概念圖。
圖6是說明伙伴線程之間的活動(dòng)執(zhí)行線程交換的時(shí)序圖。
圖7是說明處理單元在執(zhí)行伙伴線程時(shí)執(zhí)行的處理步驟的流程圖。
具體實(shí)施例方式
圖1是其中可實(shí)施本發(fā)明的構(gòu)建具有復(fù)數(shù)個(gè)處理單元的圖形處理單元(GPU)120的計(jì)算機(jī)系統(tǒng)100的簡化方框圖。GPU120包括一接口單元122,所述接口單元122耦合到復(fù)數(shù)個(gè)處理單元124-1、124-2、...、124-N,其中N是大于1的整數(shù)。所述處理單元124能通過存儲(chǔ)器控制器126存取本地圖形存儲(chǔ)器130。GPU120和本地圖形存儲(chǔ)器130代表圖形子系統(tǒng),計(jì)算機(jī)系統(tǒng)100的中央處理單元(CPU)110通過使用存儲(chǔ)在系統(tǒng)存儲(chǔ)器112中的驅(qū)動(dòng)器來存取所述圖形子系統(tǒng)。
圖2以更加詳細(xì)的形式來說明所述處理單元124中的一者。圖2中所說明的處理單元(此處參考為200)代表圖1所示的處理單元124中的任一者。處理單元200包括指令分派單元212,其用于發(fā)布待由處理單元200執(zhí)行的指令;寄存器文件214,其存儲(chǔ)用于執(zhí)行指令的操作數(shù);和一對(duì)執(zhí)行管線222、224。所述第一執(zhí)行管線222經(jīng)配置以執(zhí)行數(shù)學(xué)操作,且所述第二執(zhí)行管線224經(jīng)配置以執(zhí)行存儲(chǔ)器存取操作。一般來說,在第二執(zhí)行管線224中執(zhí)行的指令的等待時(shí)間比在第一執(zhí)行管線222中執(zhí)行的指令的等待時(shí)間高得多。當(dāng)指令分派單元212發(fā)布指令時(shí),指令分派單元212將管線配置信號(hào)發(fā)送到所述兩個(gè)執(zhí)行管線222、224中的一者。如果指令為數(shù)學(xué)類型,那么管線配置信號(hào)被發(fā)送到第一執(zhí)行管線222。如果指令為存儲(chǔ)器存取類型,那么管線配置信號(hào)被發(fā)送到第二執(zhí)行管線224。所述兩個(gè)執(zhí)行管線222、224的執(zhí)行結(jié)果被寫回到寄存器文件214中。
圖3是指令分派單元212的功能方框圖。指令分派單元212包括具有復(fù)數(shù)個(gè)插槽的指令緩沖器310。此示范性實(shí)施例中的插槽數(shù)目為12,且每個(gè)插槽可保持高達(dá)兩個(gè)指令。如果所述插槽中的任一者具有用于另一指令的空間,那么使取出(fetch)312從線程庫305進(jìn)入指令高速緩沖存儲(chǔ)器314。當(dāng)加載程序以供執(zhí)行時(shí),所述線程庫305由若干線程填充。在將存儲(chǔ)在指令高速緩沖存儲(chǔ)器314中的指令添加到記分板322且放置在指令緩沖器310的空白空間中之前,指令經(jīng)歷解碼316,其中所述記分板322跟蹤運(yùn)行中的指令,即已經(jīng)發(fā)布但尚未完成的指令。
指令分派單元212進(jìn)一步包括發(fā)布邏輯320。發(fā)布邏輯320檢查記分板322且從指令緩沖器310中將不依賴于運(yùn)行中的指令中的任一者的指令發(fā)布出去。結(jié)合來自指令緩沖器310的發(fā)布,發(fā)布邏輯320將管線配置信號(hào)發(fā)送到適當(dāng)?shù)膱?zhí)行管線。
圖4說明根據(jù)本發(fā)明第一實(shí)施例的線程庫305的配置。線程庫305被配置為具有12個(gè)行和2個(gè)列的表格。表格的每個(gè)單元表示存儲(chǔ)線程的存儲(chǔ)器插槽。表格的每個(gè)行表示伙伴組。因此,表格的單元0A中的線程是表格的單元0B的線程的伙伴。根據(jù)本發(fā)明實(shí)施例,每次伙伴組中僅有一個(gè)線程為活動(dòng)的。在指令取出期間,取出來自活動(dòng)線程的指令。所取出的指令隨后經(jīng)歷解碼且被存儲(chǔ)在指令緩沖器310的相應(yīng)插槽中。在本文所說明的本發(fā)明實(shí)施例中,從線程庫305的單元0A或單元0B取出的指令被存儲(chǔ)在指令緩沖器310的插槽0中,且從線程庫305的單元1A或單元1B取出的指令被存儲(chǔ)在指令緩沖器310的插槽1中,等等。同樣,根據(jù)發(fā)布邏輯320在連續(xù)時(shí)鐘周期中發(fā)布存儲(chǔ)在指令緩沖器310中的指令。在圖6所示的簡化實(shí)例中,在連續(xù)時(shí)鐘周期中以行0中的指令開始且接著為行1中的指令等等來發(fā)布存儲(chǔ)在指令緩沖器310中的指令。
圖5說明根據(jù)本發(fā)明第二實(shí)施例的線程庫305的配置。線程庫305被配置為具有8個(gè)行和3個(gè)列的表格。表格的每個(gè)單元表示存儲(chǔ)線程的存儲(chǔ)器插槽。表格的每個(gè)行表示伙伴組。因此,表格的單元0A、0B和0C中的線程被認(rèn)為是伙伴線程。根據(jù)本發(fā)明實(shí)施例,每次伙伴組中僅有一個(gè)線程為活動(dòng)的。在指令取出期間,取出來自活動(dòng)線程的指令。所取出的指令隨后經(jīng)歷解碼且被存儲(chǔ)在指令緩沖器310的相應(yīng)插槽中。在本文所說明的本發(fā)明實(shí)施例中,從線程庫305的單元0A、單元0B或單元0C取出的指令被存儲(chǔ)在指令緩沖器310的插槽0中,且從線程庫305的單元1A、單元1B或單元1C取出的指令被存儲(chǔ)在指令緩沖器310的插槽1中,等等。同樣,根據(jù)發(fā)布邏輯320而在連續(xù)時(shí)鐘周期中發(fā)布存儲(chǔ)在指令緩沖器310中的指令。
當(dāng)線程庫305由若干線程填充時(shí),其按以列為主的順序加載。首先加載單元0A,接著單元1A、單元2A等,直到填滿列A。接著,加載單元0B,接著單元1B、單元2B等,直到填滿列B。如果線程庫305配置有額外列,那么以相同方式繼續(xù)此線程加載過程,直到填滿所有列為止。通過按以列為主的順序來加載線程庫305,可將伙伴線程暫時(shí)彼此分離得盡可能的遠(yuǎn)。同樣,每個(gè)行的伙伴線程相當(dāng)獨(dú)立于其它行,以使得當(dāng)指令從指令緩沖器310處發(fā)布出去時(shí)行之間的順序由發(fā)布邏輯320在最小程度上強(qiáng)制執(zhí)行。
圖6是說明在每組具有兩個(gè)伙伴線程的情況下的活動(dòng)執(zhí)行線程交換的時(shí)序圖。實(shí)線箭頭對(duì)應(yīng)于針對(duì)活動(dòng)線程而執(zhí)行的一序列指令。所述時(shí)序圖展示首先起始線程庫305的單元0A中的線程且執(zhí)行來自所述線程的一序列指令,直到從所述線程發(fā)布交換指令為止。當(dāng)發(fā)布了交換指令時(shí),線程庫305中的單元0A中的線程進(jìn)入睡眠(即,成為不活動(dòng)的)且其伙伴線程(即,線程庫305的單元0B中的線程)成為活動(dòng)的。此后,執(zhí)行來自線程庫305的單元0B中的線程的一序列指令,直到從所述線程發(fā)布交換指令為止。當(dāng)發(fā)布了此交換指令時(shí),線程庫305中的單元0B中的線程進(jìn)入睡眠且其伙伴線程(即,線程庫305的單元0A中的線程)成為活動(dòng)的。此持續(xù)到兩個(gè)線程都完成其執(zhí)行為止。還在一線程已完成了執(zhí)行但其伙伴線程尚未完成時(shí)進(jìn)行到伙伴線程的交換。
如圖6所示,在單元0A中的線程之后連續(xù)起始線程庫305的其它活動(dòng)線程。與單元0A中的線程一樣,執(zhí)行其它活動(dòng)線程中的每一者,直到從所述線程發(fā)布交換指令為止,在發(fā)布交換指令時(shí)所述線程進(jìn)入睡眠且其伙伴線程成為活動(dòng)的?;顒?dòng)執(zhí)行接著在伙伴線程之間交替,直到兩個(gè)線程都完成其執(zhí)行為止。
圖7是說明當(dāng)執(zhí)行伙伴組中的線程(或簡言之,伙伴線程)時(shí)由處理單元執(zhí)行的處理步驟的流程圖。在步驟710中,分配用于伙伴線程的硬件資源(尤其是寄存器)。所分配的寄存器包括用于伙伴線程中每一者的私用寄存器和待由伙伴線程共用的共用寄存器。共用寄存器的分配節(jié)約了寄存器使用。舉例來說,如果有兩個(gè)伙伴線程且每個(gè)伙伴線程需要24個(gè)寄存器,那么會(huì)需要總共48個(gè)寄存器來執(zhí)行常規(guī)多處理方法。然而,在本發(fā)明實(shí)施例中,分配了共用寄存器。這些寄存器對(duì)應(yīng)于那些在線程活動(dòng)時(shí)需要但在線程不活動(dòng)時(shí)(例如當(dāng)線程正等待完成長等待時(shí)間的操作時(shí))不需要的寄存器。分配私用寄存器以存儲(chǔ)需要在交換中間保留的任何信息。在其中所述兩個(gè)伙伴線程中的每一者需要24個(gè)寄存器的實(shí)例中,如果可將這些寄存器中的16個(gè)分配作為共用寄存器,那么會(huì)僅需要總共32個(gè)寄存器來執(zhí)行兩個(gè)伙伴線程。如果每個(gè)伙伴組具有三個(gè)伙伴線程,那么節(jié)約程度甚至更大。在此實(shí)例中,與使用常規(guī)多處理方法的總共72個(gè)寄存器相比,使用本發(fā)明會(huì)需要總共40個(gè)寄存器。
所述伙伴線程中的一者開始時(shí)作為活動(dòng)線程,且檢索來自所述線程的指令以供執(zhí)行(步驟712)。在步驟714中,起始在步驟712中檢索到的指令的執(zhí)行。接著,在步驟716中,檢查檢索到的指令以判斷其是否為交換指令。如果其為交換指令,那么當(dāng)前活動(dòng)線程成為不活動(dòng)的,且所述伙伴組中的其它線程中的一者成為活動(dòng)的(步驟717)。如果其不是交換指令,那么檢查在步驟714中起始的執(zhí)行是否完成(步驟718)。當(dāng)此執(zhí)行完成時(shí),檢查當(dāng)前活動(dòng)線程以判斷是否存在任何待執(zhí)行的剩余指令(步驟720)。如果存在,那么處理流程返回到步驟712,在步驟712處從當(dāng)前活動(dòng)線程處檢索待執(zhí)行的下一個(gè)指令。如果不存在,那么進(jìn)行核對(duì)以判斷是否所有伙伴線程已完成了執(zhí)行(步驟722)。如果完成了,那么結(jié)束過程。如果沒有,那么處理流程返回到步驟717,在步驟717處交換到尚未完成的伙伴線程。
在上文所述的本發(fā)明實(shí)施例中,在編譯程序時(shí)插入交換指令。交換指令通常插入在緊跟高等待時(shí)間的指令之后,且優(yōu)選地插入在其中可分配大量共用寄存器(相對(duì)于私用寄存器的數(shù)目而言)的程序中的若干點(diǎn)處。舉例來說,在圖形處理中,交換指令可插入在緊跟紋理指令之后。在本發(fā)明的替代實(shí)施例中,交換事件可以不是交換指令,但其可以是硬件識(shí)別的某一事件。舉例來說,硬件可經(jīng)配置以識(shí)別指令執(zhí)行中的長等待時(shí)間。當(dāng)其識(shí)別到此時(shí),其可導(dǎo)致發(fā)布導(dǎo)致長等待時(shí)間的指令的線程成為不活動(dòng)且使得相同伙伴組中的另一線程活動(dòng)。同樣,交換事件可為在長等待時(shí)間操作期間的某一可識(shí)別事件,例如在長等待時(shí)間操作期間發(fā)生的第一記分板停止。
以下指令序列說明交換指令可由編譯器插入在著色器程序中的何處。
Inst_00內(nèi)插 iwInst_01倒數(shù) wInst_02內(nèi)插 s,wInst_03內(nèi)插 t,wInst_04紋理 s,t//紋理返回r、g、b、a值Inst_05交換Inst_06乘法 r,r,wInst_07乘法 g,g,w交換指令(Inst_05)由編譯器插入在緊跟長等待時(shí)間紋理指令(Inst_04)之后。這樣,在執(zhí)行長等待時(shí)間紋理指令(Inst_04)的同時(shí)進(jìn)行到伙伴線程的交換。較不需要在乘法指令(Inst_06)之后插入交換指令,因?yàn)槌朔ㄖ噶?Inst_06)依賴于紋理指令(Inst_04)的結(jié)果,且直到長等待時(shí)間紋理指令(Inst_04)完成其執(zhí)行后才可進(jìn)行到伙伴線程的交換。
為說明簡單起見,本發(fā)明實(shí)施例的以上描述中所使用的線程表示單一線程的指令。然而,本發(fā)明還可應(yīng)用于其中類似線程被分組在一起且通過使用單一指令經(jīng)由多個(gè)并行數(shù)據(jù)路徑而處理來自此組(也被稱為隊(duì))的相同指令的實(shí)施例。
盡管前文針對(duì)于本發(fā)明實(shí)施例,但可在不脫離本發(fā)明的基本范圍的情況下構(gòu)思本發(fā)明的其它和另外實(shí)施例。由所附權(quán)利要求書來確定本發(fā)明的范圍。
權(quán)利要求
1.一種在一處理單元中執(zhí)行多個(gè)指令線程的方法,其包含以下步驟將所述處理單元的第一、第二和共用組硬件資源分配給第一和第二指令線程;使用所述第一和共用組硬件資源來執(zhí)行所述第一指令線程,直到發(fā)生一預(yù)定事件為止;和響應(yīng)于所述預(yù)定事件的所述發(fā)生,暫停所述第一指令線程的執(zhí)行,并使用所述第二和共用組硬件資源來執(zhí)行所述第二指令線程。
2.根據(jù)權(quán)利要求1所述的方法,其中執(zhí)行所述第二指令線程,直到發(fā)生另一預(yù)定事件為止,且響應(yīng)于所述另一預(yù)定事件的所述發(fā)生,暫停所述第二指令線程的執(zhí)行,并重新開始所述第一指令線程的所述執(zhí)行。
3.根據(jù)權(quán)利要求2所述的方法,其中所述第一指令線程包含一交換指令,且當(dāng)執(zhí)行所述第一線程中的所述交換指令時(shí)發(fā)生所述預(yù)定事件,且其中所述第二指令線程包含一交換指令,且當(dāng)執(zhí)行所述第二線程中的所述交換指令時(shí)發(fā)生所述另一預(yù)定事件。
4.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含將一第三組硬件資源和所述共用組硬件資源分配給一第三指令線程的步驟,其中執(zhí)行所述第二指令線程,直到發(fā)生另一預(yù)定事件為止,且響應(yīng)于所述另一預(yù)定事件的所述發(fā)生,暫停所述第二指令線程的所述執(zhí)行,并執(zhí)行所述第三指令線程。
5.根據(jù)權(quán)利要求1所述的方法,其中當(dāng)執(zhí)行所述第一指令線程中的一高等待時(shí)間指令時(shí),發(fā)生所述預(yù)定事件。
6.根據(jù)權(quán)利要求5所述的方法,其中所述高等待時(shí)間指令包含一存儲(chǔ)器存取指令。
7.根據(jù)權(quán)利要求1所述的方法,其中所述硬件資源包含寄存器。
8.根據(jù)權(quán)利要求7所述的方法,其中所述硬件資源進(jìn)一步包含一指令緩沖器。
9.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含將所述處理單元的第三、第四和第五組硬件資源分配給第三和第四指令線程;使用所述第三和第五組硬件資源來執(zhí)行所述第三指令線程,直到發(fā)生所述第三線程的一交換事件為止;和響應(yīng)于所述第三線程的所述交換事件的所述發(fā)生,暫停所述第三指令線程的執(zhí)行,并使用所述第四和第五組硬件資源來執(zhí)行所述第四指令線程。
10.根據(jù)權(quán)利要求9所述的方法,其中執(zhí)行所述第四指令線程,直到發(fā)生所述第四線程的一交換事件為止,且響應(yīng)于所述第四線程的所述交換事件的所述發(fā)生,暫停所述第四指令線程的執(zhí)行,并重新開始所述第三指令線程的所述執(zhí)行。
全文摘要
將多個(gè)線程劃分成具有兩個(gè)或兩個(gè)以上線程的伙伴組,以使得每個(gè)線程被指定給其一個(gè)或一個(gè)以上伙伴線程。每個(gè)伙伴組中只有一個(gè)線程活動(dòng)地執(zhí)行指令,且這允許伙伴線程共用硬件資源,例如寄存器。當(dāng)一活動(dòng)線程遇到一交換事件(例如一交換指令)時(shí),所述活動(dòng)線程暫停執(zhí)行,且其伙伴線程中的一者使用那個(gè)線程的私用硬件資源和所述伙伴組的共用硬件資源開始執(zhí)行。因此,可在不復(fù)制所有每個(gè)線程的硬件資源的情況下增加線程計(jì)數(shù)。
文檔編號(hào)G06F9/46GK1983196SQ200610168179
公開日2007年6月20日 申請(qǐng)日期2006年12月15日 優(yōu)先權(quán)日2005年12月16日
發(fā)明者布雷特·W·庫恩, 約翰·埃里克·林霍爾姆 申請(qǐng)人:輝達(dá)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
尚志市| 宁陕县| 太和县| 万全县| 大姚县| 行唐县| 永定县| 梅河口市| 北辰区| 昭平县| 昆明市| 平原县| SHOW| 宜兰市| 虹口区| 彭山县| 宝鸡市| 安康市| 公主岭市| 永州市| 延津县| 平凉市| 雅江县| 花莲市| 巴塘县| 武川县| 汉川市| 卓尼县| 望谟县| 宁南县| 云和县| 无极县| 佛坪县| 阿荣旗| 黑龙江省| 张家港市| 田东县| 邯郸市| 铁岭市| 西藏| 宜城市|