專利名稱:處理操作信息傳送控制系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及管理軟件處理操作的執(zhí)行,特別地涉及控制與諸如線程的軟件處理操作相關(guān)的信息的傳送。
背景技術(shù):
當(dāng)?shù)却鐝拇鎯ζ髦凶x取的特定指令的結(jié)果時,由處理器執(zhí)行的處理任務(wù)或者操作可以“阻塞”或者停止執(zhí)行。由于在等候指令完成的時候處理器沒有被使用,這樣的等待時間將影響處理器的效率。改進(jìn)處理器效率的機制可以大大改善處理器性能。
線程是軟件代碼的連續(xù)指令,提供了改進(jìn)處理系統(tǒng)效率和性能的裝置。活動線程是這樣的線程在當(dāng)前時鐘周期內(nèi)其中正在處理指令。當(dāng)線程變?yōu)榉腔顒訒r,另一個線程可以與當(dāng)前的線程交換,而且開始使用處理資源,改進(jìn)系統(tǒng)的處理效率。當(dāng)另一個線程處于非活動狀態(tài),例如等待指令的結(jié)果時,可以執(zhí)行一個活動線程。
當(dāng)處理器不能繼續(xù)執(zhí)行線程,或者被先占,這可以是在活動線程阻塞或者當(dāng)已經(jīng)執(zhí)行了全部活動的線程時,不同的線程被傳送到處理器用于執(zhí)行。根據(jù)傳統(tǒng)的線程管理技術(shù),這是由在處理器的活動線程寄存器和等待線程寄存器或者其他的存儲器之間調(diào)換各自的執(zhí)行環(huán)境信息來完成的,其中所述執(zhí)行環(huán)境信息與活動線程和即將到來的線程相關(guān)。
專用存儲器塊典型地以一組寄存器的形式分配給每個線程而且不存在節(jié)約存儲器的選擇。每個線程被分配一定的存儲空間,而且必須傳送相應(yīng)量的信息來調(diào)換線程,而不考慮線程實際上是否使用了所有的專用存儲器空間。因為每個線程可能使用不了它的所有專用寄存器,這可能導(dǎo)致存儲空間使用效率低,而且由于在線程調(diào)換的期間一些寄存器也許沒有被線程使用但是仍將被調(diào)換,還可能增加線程調(diào)換需要的時間量。
如此,還有需要改進(jìn)的技術(shù),用于控制與軟件操作相關(guān)的信息的傳送,所述信息諸如線程執(zhí)行環(huán)境信息。
發(fā)明內(nèi)容
為了減少線程調(diào)換時間和存儲器需求,本發(fā)明的一些實施例提供一種機制來指定將被復(fù)制用于調(diào)換線程的寄存器。
根據(jù)本發(fā)明的一個方面,配置控制器以確定信息是否將被傳送到或傳送自多個存儲位置的任意存儲位置,所述多個存儲位置用于存儲與處理操作相關(guān)的信息,以便在執(zhí)行處理操作時由處理器使用,并且配置控制器以使得與處理操作相關(guān)的信息被傳送到或傳送自多個存儲位置的每個存儲位置,如果有的話,其中信息將被傳送到或傳送自所述每個存儲位置。
通過接收指定信息將被傳送到或傳送自任意存儲位置的映射信息,控制器可以確定信息是否將被傳送到或傳送自任意存儲位置。
在一個實施例中,處理操作是要由處理器執(zhí)行的處理操作,而且控制器使得與處理操作相關(guān)的信息存儲到每個確定的存儲位置。在另一個實施例中,處理操作是已經(jīng)由處理器執(zhí)行的處理操作,而且控制器使得與處理操作相關(guān)的信息從每個確定的存儲位置讀取。
處理器可以提供在執(zhí)行處理操作期間存取的多個存儲位置中的每個存儲位置的指示。在這種情況下,控制器可以被進(jìn)一步配置為接收處理器提供的指示,而且基于所述指示確定是否信息將從任意存儲位置傳送。
除了每個確定的存儲位置,控制器可以或者可以不必修改多個存儲位置中的存儲位置的內(nèi)容。在多個存儲位置存儲與另一個處理操作相關(guān)的信息而且控制器允許除了每個確定的存儲位置以外多個存儲位置中的存儲位置的內(nèi)容保持完整,這些內(nèi)容在處理操作之間共享。
在一個實施例中,處理操作是線程,而且多個存儲位置包括線程寄存器。
在還包括存儲器的系統(tǒng)中可以設(shè)置控制器,所述存儲器可操作地耦合到控制器并且包括多個存儲位置。這樣的系統(tǒng)還可以包括可操作地耦合到存儲器的處理器??刂破鞅旧?,或者至少它的某些功能可以利用處理器來實現(xiàn)。
根據(jù)另一個方面,本發(fā)明提供了一種方法,該方法包括確定信息是否將被傳送到或傳送自多個存儲位置的任意存儲位置,所述多個存儲位置用于存儲與處理操作相關(guān)的信息,以便由處理器在執(zhí)行處理操時使用,而且使得與處理操作相關(guān)的信息被傳送到或傳送自多個存儲位置的每個存儲位置,如果有的話,其中信息將被傳送到或傳送自所述每個存儲位置。
這些操作可以通過任意不同的方式執(zhí)行,并且所述方法還可以包括進(jìn)一步的操作,其中有一些已經(jīng)在上面簡要地說明了。
根據(jù)本發(fā)明另一個方面的設(shè)備包括用于執(zhí)行處理操作的處理單元,以及可操作地耦合到所述處理單元的存儲器。所述存儲器包括多個存儲位置,用于存儲與要由處理單元執(zhí)行的處理操作相關(guān)的信息,而且所述處理單元被配置為,確定在完成其處理操作的執(zhí)行之后,信息是否將從多個存儲位置中的任意存儲位置傳送,然后,在完成其處理操作的執(zhí)行之后,使得與處理操作相關(guān)的信息從每個確定的存儲位置傳送,如果有的話。
處理單元可以通過執(zhí)行至少下列之一,使得與處理操作相關(guān)的信息從每個確定的存儲位置傳送提供每個確定的存儲位置的指示,以及從每個確定的存儲位置傳送信息。
在一個實施例中,每個確定的存儲位置包括處理單元在執(zhí)行所述處理操作期間存取的存儲位置。
在多個存儲位置中的許多存儲位置存儲信息用于在其處理單元的執(zhí)行處理操作期間由處理單元存取的情況下,確定的存儲位置的數(shù)目可以是更多的、相同的或者更少的存儲位置數(shù)目。
還提供存儲數(shù)據(jù)結(jié)構(gòu)的機器可讀介質(zhì)。所述數(shù)據(jù)結(jié)構(gòu)包括存儲信息是否將被傳送到或傳送至多個存儲位置的存儲位置的數(shù)據(jù)字段,所述存儲位置用于存儲與處理操作相關(guān)的信息以便由處理器在執(zhí)行所述處理操作時使用。
數(shù)據(jù)結(jié)構(gòu)可以包括多個數(shù)據(jù)字段,所述數(shù)據(jù)字段存儲了信息是否將從多個存儲位置的各個存儲位置傳送的指示。
對于本領(lǐng)域普通技術(shù)人員來說,在考察本發(fā)明的以下具體的說明性的實施例之后,本發(fā)明的其它方面和特征將變得顯而易見。
現(xiàn)在參考附圖更詳細(xì)地描述本發(fā)明實施例的例子,其中圖1是結(jié)合了硬件線程技術(shù)的處理系統(tǒng)框圖;圖2是結(jié)合另一個類型線程技術(shù)的處理系統(tǒng)的框圖;圖3是結(jié)合本發(fā)明實施例的處理系統(tǒng)的框圖;圖4是說明根據(jù)本發(fā)明實施例的方法的流程圖;以及圖5是根據(jù)本發(fā)明實施例的數(shù)據(jù)結(jié)構(gòu)的框圖。
具體實施例方式
通過增加執(zhí)行周期對等待周期的比例,線程被用來改進(jìn)對處理單元或諸如運算邏輯單元(ALU)的單元的使用。在即將出現(xiàn)的、改進(jìn)的處理體系結(jié)構(gòu)中,例如在群集處理器上的高級程序設(shè)計語言,將可能使用包括線程技術(shù)的改進(jìn)的硬件特性來改善性能。
圖1是處理系統(tǒng)的方框圖,所述系統(tǒng)對于多處理器的每個均結(jié)合了硬件線程技術(shù)。多處理器經(jīng)常被提供在例如空間有限的處理環(huán)境中,例如通信網(wǎng)絡(luò)處理器(NP)的實施中,其中所述實施還受制于相對嚴(yán)格的處理時間需要。
處理系統(tǒng)10包括處理器12、14、16、18,每個處理器包括ALU 22、32、42、52、多路復(fù)用器24、34、44、54,以及八組線程寄存器26、36、46、56。
在線程寄存器26、36、46、56中,當(dāng)它們沒有執(zhí)行時,每個多路復(fù)用器24、34、44、54管理線程存儲,或者至少與線程相關(guān)的執(zhí)行環(huán)境信息。執(zhí)行變成阻塞的線程的ALU將當(dāng)前的活動線程與等待線程進(jìn)行調(diào)換。等待線程現(xiàn)在變成活動線程并被執(zhí)行。換出的線程可以在寄存器26、36、46、56中等待以便在接下來的調(diào)換之后變成活動的執(zhí)行線程。
基于來自操作系統(tǒng)的消息或者硬件信令,調(diào)度線程用于執(zhí)行,所述硬件信令表明阻塞狀況現(xiàn)在清除。
可以利用諸如靜態(tài)隨機存取存儲器(SRAM)設(shè)備的存儲器設(shè)備來提供線程寄存器26、36、46、56,允許對于大量被支持線程的相對小區(qū)域的要求。舉例來說,一些現(xiàn)在的設(shè)計支持每個ALU最多8個線程,而其它僅僅支持4個甚至2個線程。在支持每個處理器8個線程的4-處理器系統(tǒng)中,如圖1所示,這將產(chǎn)生32個線程的存儲。
在圖1的系統(tǒng)中,每個線程分配相同數(shù)量的采用大量寄存器形式的專用存儲器空間,而不考慮線程實際上是否使用那些空間量。即使線程的空間/寄存器要求可能已知或者確定了,例如,當(dāng)軟件代碼被編譯時,每個線程將仍然具有相同專用存儲器空間量。專用于每個線程的空間量通常與處理器線程寄存器的大小相同。
另外,通過捕捉或者傳遞整組寄存器的內(nèi)容完成線程調(diào)換,由此當(dāng)不同的線程將變成活動時,即使不需要用于執(zhí)行的寄存器內(nèi)容也從寄存器26、36、46、56傳送。
圖2是結(jié)合另一種線程技術(shù)的處理系統(tǒng)方框圖。處理系統(tǒng)60包括四個處理器62、64、66、68、可操作地耦合到處理器的線程管理器110、可操作地耦合到線程管理器110的線程存儲器112,以及可操作地耦合到處理器的代碼存儲器114。處理器62、64、66、68的每個包括ALU 72、82、92、102,一組活動線程寄存器74、84、94、104,以及一組等待線程寄存器76、86、96、106。
在待決美國專利申請11/220,492中詳細(xì)描述了處理系統(tǒng)60,該申請于2005年9月6日提交,題為“PROCESSING OPERATIONMANAGEMENT SYSTEMS AND METHODS”,而且轉(zhuǎn)讓給本申請的所有者。
在上述參考待決申請公開的本發(fā)明的一個實施例中,通過將所有的活動線程寄存器74、84、94、104調(diào)換為等待寄存器76、86、96、106,來對處理器62、64、66、68執(zhí)行線程調(diào)換。于是,等待線程寄存器76、86、96、106能被換入線程存儲器112。
例如,因為指定技術(shù)中路徑選擇的限制,每個等待線程寄存器76、86、96、106和線程存儲器112之間的操作連接可能不是“全寬”總線或者其它類型的連接,所述“全寬”總線或者其它類型的連接與線程寄存器74/76、84/86、94/96、104/106之間以及活動線程寄存器74、84、94、104和ALU72、82、92、102之間的連接是同樣大小的連接。在這種情況下,線程存儲器112和處理器62、64、66、68中的任何一個之間的線程調(diào)換將出現(xiàn)在許多步驟中。當(dāng)調(diào)換功能完成時,例如在短時期內(nèi)需要多個線程調(diào)換時,這可能引入活動線程額外的阻塞而且增加處理器等待時間。
如上所述,包括處理器和外部存儲器之間的軟件線程調(diào)換的傳統(tǒng)的線程調(diào)換是相對緩慢的,因為對于在先阻塞的活動線程,所有活動線程寄存器的內(nèi)容被復(fù)制到存儲器中,然后對于新的活動線程的整組線程寄存器被從存儲器復(fù)制回處理器線程寄存器。這樣的長時延是硬件線程技術(shù)的促進(jìn)因素。然而,因為專用存儲器被分配給每個線程,基于硬件的線程調(diào)換還包括全部線程寄存器組之間的信息傳送。
圖3是包括本發(fā)明實施例的處理系統(tǒng)120的框圖。應(yīng)理解,圖3的系統(tǒng)120和下面描述的后續(xù)附圖的內(nèi)容,僅僅出于說明的目的,而且本發(fā)明決不局限于附圖中明確示出的和在這里描述的特定范例性的實施例。
例如,除了圖3示出的處理器之外,多處理器系統(tǒng)可以包括一個或多個處理器,其中多處理器共用外部線程存儲器和/或代碼存儲器。本發(fā)明的實施例還可以結(jié)合與所示結(jié)構(gòu)類似的或者不同結(jié)構(gòu)的一個或多個處理器來實現(xiàn)。由處理器執(zhí)行的軟件代碼可以如圖所示單獨被存儲,或者可能地和線程執(zhí)行環(huán)境信息一起被存儲在線程寄存器中。還可以不同于圖3所示分布特定功能。此外還可以考慮其它的改變。
處理系統(tǒng)120包括線程存儲裝置122、可操作地耦合到線程存儲裝置122的控制器130、可操作地耦合到控制器130的處理器140,以及可操作地耦合到處理器140的代碼存儲器150。線程存儲裝置122包括線程存儲器124和線程壓縮映射126,控制器130包括解壓模塊132和壓縮模塊134,處理器140包括等待線程寄存器142、等待映射寄存器144、活動線程寄存器146、活動映射寄存器148,和ALU 149。
圖3所示的元件之間相互連接的類型可以至少在一定程度上依靠系統(tǒng)120的特定實施。在一個實施例中,處理器140內(nèi)部的互連以及控制器130與處理器140之間的互連要通過處理器總線結(jié)構(gòu),其中控制器130和線程存儲裝置122之間的互連借助于小于全寬的總線。
在外部線程存儲裝置122中,線程存儲器124是這樣的存儲器設(shè)備其中存儲與線程相關(guān)的線程環(huán)境信息。任意不同類型的存儲器設(shè)備可以用來實現(xiàn)線程存儲器124,包括固態(tài)存儲器設(shè)備和采用可移動的甚至可擦除存儲器介質(zhì)的存儲器設(shè)備。在一個實施例中,線程存儲器124被設(shè)置在諸如同步靜態(tài)隨機存儲器(SSRAM)設(shè)備或者同步動態(tài)(SDRAM)設(shè)備的高密度存儲器設(shè)備中。在多處理器系統(tǒng)中,通過允許同時存取線程存儲器124中的多個線程,多端口存儲器設(shè)備可以改善性能。
如下進(jìn)一步的詳細(xì)內(nèi)容所述,線程壓縮映射126可以設(shè)置在與線程存儲器124同樣的存儲器設(shè)備中或者不同的存儲器設(shè)備中,而且將這樣的信息存儲到特定的寄存器中對于線程,所述信息將存儲在線程存儲器124中的線程環(huán)境信息的各部份映射到特定寄存器。
由控制器130控制線程存儲裝置122和處理器140之間的信息傳送。如圖3所示,控制器130沒有必要與線程存儲裝置122直接交互。例如,如圖2的處理系統(tǒng)60中,控制器130可以可替代地控制發(fā)往和來自于另一個部件的信息傳送,所述另一個部件諸如線程管理器,其中在軟件線程調(diào)換中涉及的線程管理器如圖2的處理系統(tǒng)60般地進(jìn)行調(diào)換。
解壓模塊132和壓縮模塊134可以各自用硬件、用于由諸如ALU 149處理單元執(zhí)行的軟件或者某些硬件和軟件的結(jié)合來實現(xiàn)。將在下面詳細(xì)描述這些模塊132、134向處理器140傳送信息或者從處理器140發(fā)出信息的功能。
每組線程寄存器142、146存儲與線程相關(guān)的環(huán)境信息。定義線程環(huán)境的寄存器的例子包括堆棧指示器、程序計數(shù)器、計時器、標(biāo)記和數(shù)據(jù)寄存器。在一些實施例中,當(dāng)線程活動時處理器執(zhí)行的實際的軟件代碼可以存儲在線程寄存器中。然而,在圖3所示例子中,軟件代碼分別存儲在代碼存儲器150中。
雖然在這里主要地被稱為寄存器,應(yīng)理解所述環(huán)境信息并沒有必要存儲在任意特定類型的存儲設(shè)備中。如同在這里使用的,寄存器可以更一般地表示存儲信息的存儲位置,而不是存儲器設(shè)備的類型。
等待和活動映射寄存器存儲信息,所述信息將寄存器142146中存儲的線程環(huán)境信息的各個部分映射到那些寄存器。在一個實施例中,映射信息采用掩碼形式,指示了在下一個線程調(diào)換中信息將被傳送到或者傳送自的寄存器。映射寄存器144、48可以在與線程寄存器142、146同樣的存儲裝置中或者不同的存儲裝置中提供。
ALU 149是處理單元典型的例子,其執(zhí)行機器可讀指令,如軟件代碼。如上所述,線程技術(shù)有效地將軟件程序或者進(jìn)程分成能由ALU 149單獨執(zhí)行的個別的片段。在執(zhí)行線程期間,ALU 149存取一些或者所有的活動線程寄存器146,以從寄存器中讀取信息和/或?qū)懭胄畔⒌郊拇嫫?。如下面的詳?xì)描述,ALU 149還對活動映射寄存器148有影響。
代碼存儲器150存儲軟件代碼,而且可以利用任何不同類型的存儲器設(shè)備來實現(xiàn),包括固態(tài)和/或其它類型的存儲器設(shè)備。例如,ALU 149可以存取代碼存儲器150中的一部分軟件代碼,所述代碼是由程序計數(shù)器或者其它的指示器或者存儲在活動線程寄存器146中的程序計數(shù)器線程寄存器中的索引來指示的。目前的線程軟件代碼存儲在系統(tǒng)120的代碼存儲器150中,雖然在其它的實施例中,線程環(huán)境信息和軟件代碼可能存儲在如上所述同樣的存儲裝置中。
通過捕獲寄存器內(nèi)容并且將它們作為單元換入和換出,以在活動和等待寄存器之間調(diào)換線程。然而,為了減少調(diào)換線程花費的時間,在線程寄存器142、146上提供由映射寄存器144、148支持的跟蹤機制,以便當(dāng)線程將被調(diào)換到線程存儲器124時指示將被復(fù)制的寄存器。線程壓縮映射126支持相反的操作,用于將線程從線程存儲器124調(diào)換到處理器140。雖然線程寄存器142、146也可以具有預(yù)定尺寸,該尺寸對應(yīng)于大量用于存儲線程的環(huán)境信息的寄存器的分配,與那些分配的寄存器之間的信息傳送是用要傳送的信息量的方式來控制的,從而可以減少線程存儲裝置122和控制器130之間的調(diào)換時間。
跟蹤機制可以通過產(chǎn)生程序代碼可用的ALU 149中附加的指令來實現(xiàn),以使得程序代碼能夠提供關(guān)于一組線程寄存器中的每個寄存器是否將被包括在線程調(diào)換活動中或者被線程調(diào)換活動排斥在外的指示。如下面進(jìn)一步的詳細(xì)描述,這些指示可以影響活動和等待線程寄存器146、142兩者之一或者兩者,因此可以控制寄存器內(nèi)部調(diào)換和處理器/線程存儲裝置的調(diào)換。
根據(jù)傳統(tǒng)的線程管理技術(shù),活動和等待線程寄存器之間的線程調(diào)換包括所有寄存器的復(fù)制而不考慮它們的字段或者內(nèi)容。當(dāng)線程將變成活動時,活動線程寄存器146的內(nèi)容自動地用等待寄存器142的內(nèi)容來替代。本發(fā)明的實施例支持控制設(shè)置的使用以允許沒有調(diào)換的寄存器或者被重寫或者保持不變。此機制允許用于不同線程的寄存器值混合用于特定的類型操作,諸如線程之間共享數(shù)據(jù)。通過解壓模塊132可以支持用于從線程存儲器124到等待線程寄存器142的軟件線程調(diào)換的類似的功能。
從而,顯而易見的是,處理器140和控制器130二者之一或者兩者可以支持可選的調(diào)換控制功能。
在操作中,控制器130控制等待線程寄存器142和線程存儲裝置122之間的信息傳送,所述等待線程寄存器142例如硬件寄存器和存儲器陣列。通過調(diào)換所選擇的等待線程寄存器142和活動線程寄存器146之一的內(nèi)容,將等待線程變成活動的,所述等待線程的環(huán)境信息存儲在所述等待線程寄存器142中。線程的軟件代碼可以與線程環(huán)境信息一起存儲而且可以按類似方式對ALU 149可用,雖然在某些實施例中,當(dāng)線程變成活動時,程序計數(shù)器或者類似的寄存器被代替地提供以便重定向ALU 149到存儲在代碼存儲器150中指定的軟件代碼。
處理器內(nèi)部等待和活動寄存器之間的線程調(diào)換可以通過處理器140本身,例如通過ALU 149來控制。ALU 149可以檢測它當(dāng)前的活動線程正等待例如來自存儲器讀取操作的回答,那么就換入它的等待線程以便在等待時間內(nèi)執(zhí)行。在其它的實施例中,外部元件通過處理器140檢測線程阻塞而且開始線程調(diào)換。從線程存儲器122換入可以同樣地通過處理器140或者通過外部元件進(jìn)行控制,所述外部元件諸如線程管理器或者操作系統(tǒng)。
線程狀態(tài)和/或優(yōu)先級經(jīng)常被用作判斷線程何時應(yīng)該被調(diào)換的標(biāo)準(zhǔn)。例如,軟件指令或者其它機制可以用于確定線程狀態(tài)。當(dāng)數(shù)據(jù)從例如存儲器讀操作返回時,等待處理器繼續(xù)執(zhí)行的線程可以處于“準(zhǔn)備”或者類似狀態(tài)。在等待線程寄存器142中阻塞或者換句話說中止的線程可以與線程存儲裝置122中處于準(zhǔn)備狀態(tài)的線程進(jìn)行調(diào)換。這保證當(dāng)?shù)却€程沒有準(zhǔn)備好進(jìn)一步運行時準(zhǔn)備線程不會等待在共用的線程存儲裝置122中。
代替或者除了基于狀態(tài)的調(diào)換之外,基于優(yōu)先級的調(diào)換也是可能的。在創(chuàng)建時或者創(chuàng)建之后,線程可以被分配優(yōu)先級。由父線程創(chuàng)建的線程,例如,可以與父線程具有同樣的優(yōu)先級。優(yōu)先級還可以或者可替代地,明確地分配給線程。通過例如使用軟件指令或功能來確定線程優(yōu)先級,而且根據(jù)確定的優(yōu)先級在線程存儲裝置122和等待線程寄存器142之間調(diào)換線程,線程可以按照優(yōu)先級次序傳送到處理器140。接著,由處理器140在低優(yōu)先級線程執(zhí)行之前執(zhí)行最高級別優(yōu)先級的線程。優(yōu)先級還可以或者可代替地例如通過ALU 149控制等待和活動寄存器142、146之間線程的調(diào)換,以便允許較高優(yōu)先級等待線程比低優(yōu)先級活動線程占先。
根據(jù)組合的狀態(tài)/優(yōu)先級方法,在管理線程過程中線程狀態(tài)和優(yōu)先級兩者都可以考慮。例如,期望的是,不將準(zhǔn)備線程換出等待線程寄存器142,以便于換入較高優(yōu)先級的阻塞線程??梢該Q入較高優(yōu)先級線程,直到該線程處于準(zhǔn)備狀態(tài)。
狀態(tài)和優(yōu)先級表示判別標(biāo)準(zhǔn)的例子,其可以用于確定線程是否將被換入和/或換出線程存儲裝置122,以及將在線程寄存器142、146之間進(jìn)行調(diào)換。其它的線程調(diào)換標(biāo)準(zhǔn)可以加入或者代替狀態(tài)和優(yōu)先級來使用。某些可選或者附加的線程調(diào)度機制對本領(lǐng)域技術(shù)人員來說是顯而易見的。
通常,線程可以被看作軟件處理操作的例子,包括一個或多個任務(wù)或者指令,其通過處理器或者是在處理器140情況下的處理器的處理單元(ALU 149)執(zhí)行。根據(jù)本發(fā)明的一個實施例,當(dāng)處理操作將被執(zhí)行或者已經(jīng)通過例如處理器140執(zhí)行時,控制器130被配置為確定任意存儲位置,其可以是圖3中的一個或多個寄存器,與處理操作相關(guān)的信息向所述任意存儲位置傳送或者從所述存儲位置傳送。如果有的話,通過存儲信息到所述位置或者從所述位置復(fù)制或者移動信息,或者控制另一個處理所述信息傳輸?shù)脑?,控制?30可以使得信息從每個確定位置傳送出去。
在一個實施例中,提供了標(biāo)識存儲位置的狀態(tài)的機制。例如,存儲在線程寄存器中的值可以確定為對調(diào)換或者其它的信息傳輸操作目的有效或無效。這樣的寄存器狀態(tài)可以固定在映射信息中,也就是說,要傳送的寄存器是有效的,或者代替映射信息或者附加在映射信息上分別提供。
雖然多處理器線程寄存器是活動的而且通常用來存儲這些信息,本發(fā)明實施例允許利用選擇的寄存器傳送信息。由于信息能從等待線程寄存器142調(diào)換到活動線程寄存器146里,但是信息也許不在所有的線程寄存器之間進(jìn)行調(diào)換,ALU 149可以存取所有的活動線程寄存器146,而且間接地存取等待線程寄存器142。
當(dāng)處理操作被調(diào)換到處理器140中時,控制器130將與處理操作相關(guān)的信息傳送到確定的寄存器,在圖3所示實施例中可以包括所有的等待線程寄存器142或者僅僅包括其子集。如上所述,控制器130可以自己復(fù)制或者移動信息到寄存器,或者控制處理實際信息的傳送的另一個元件。
考慮調(diào)換線程到處理器140中用于執(zhí)行的例子。為簡單起見,假定線程和它的壓縮映射是預(yù)先寫入線程存儲裝置122的。僅僅用于說明的目的,還假定等待和活動線程寄存器142、146每一個包括8個一字節(jié)寄存器,而且將要換入用于由處理器140執(zhí)行的線程具有4字節(jié)環(huán)境信息。
顯然的,處理系統(tǒng)的開始狀態(tài)可以不同于上述假設(shè)。當(dāng)處理系統(tǒng)120啟動時,例如,它的線程存儲裝置122可以是空的,當(dāng)線程被創(chuàng)建時,它們將通過操作系統(tǒng)或者處理器140向線程存儲裝置122添加。本領(lǐng)域技術(shù)人員還將理解本發(fā)明決不限于任意特定數(shù)量的用于線程的寄存器或者所述線程寄存器142、146。
對于操作中的調(diào)換,控制器130和特定解壓模塊132接收來自線程存儲裝置122的信息。解壓模塊132可以如所示直接存取線程存儲裝置122或者間接地存取線程存儲裝置122,后一種情況是結(jié)合圖2的處理系統(tǒng)60實現(xiàn)的本發(fā)明實施例。
在僅使用4個寄存器的線程只占用4字節(jié)存儲器的意義上,壓縮線程存儲器124中的信息,而不是在這一例子中通常為每個線程預(yù)留的8字節(jié)。存儲在線程存儲器124中的信息部份和實際的線程寄存器之間的對應(yīng)關(guān)系由存儲在線程壓縮映射126中的映射信息指定。
例如該對應(yīng)關(guān)系可以是掩碼值的形式。這個8個一字節(jié)線程寄存器例子的二進(jìn)制掩碼值將是一字節(jié)長度。在二進(jìn)制掩碼值中,1(或者0)比特值,可以指示存儲在線程存儲器124中的信息的各個部分對應(yīng)的寄存器。例如,掩碼值01101001將指示4字節(jié)的存儲環(huán)境信息分別屬于第二、第三、第五和第八線程寄存器。
線程壓縮映射126中的條目和線程存儲器124中的信息之間的對應(yīng)關(guān)系可以用任何不同的方法來創(chuàng)建。通常在編譯時確定軟件所需的線程和線程寄存器。在執(zhí)行所述軟件以前,可以由此在線程存儲器124中開始建立線程環(huán)境信息的存儲。接下來線程壓縮映射126中的條目可以按與線程存儲器124中相同的順序組織起來,以便線程存儲器124中的第一信息塊與壓縮映射126中的第一條目相關(guān)聯(lián),等等。線程存儲器124和線程壓縮映射126可以可代替地結(jié)合,例如,以使得映射信息被附加到環(huán)境信息中或與環(huán)境信息結(jié)合起來。
這些關(guān)聯(lián)可以代替地被更加明確地指定。根據(jù)一個實施例,描述字段與特定的線程相關(guān)聯(lián)而且指示對線程存儲的線程寄存器的數(shù)目和環(huán)境信息到寄存器的映射。某種線程標(biāo)識符從而被包括在線程壓縮映射126中的每個條目中,以便當(dāng)線程環(huán)境信息正在從線程存儲器124換入時獲得正確的映射信息。在壓縮映射126中,線程環(huán)境信息可以代替地包括相應(yīng)映射信息的指針或者其它的標(biāo)識符。
根據(jù)來自線程壓縮映射126的映射信息,解壓模塊132向適當(dāng)?shù)牡却拇嫫?42分發(fā)線程環(huán)境信息。在上述例子中,來自線程存儲器的4字節(jié)信息被寫入第二、第三、第五和第八等待線程寄存器。其它等待寄存器的內(nèi)容可以保持完整,以允許信息在線程之間共享、或者刪除、重寫、放置、復(fù)位、轉(zhuǎn)化、或者修改。例如,可以根據(jù)在環(huán)境信息或者映射信息中指定的控制設(shè)置或者來自諸如操作系統(tǒng)的其它元件的命令來控制該功能。
映射信息還可以被寫入等待映射寄存器144以便用于確定從線程存儲裝置122加載的寄存器,和/或如果線程被從處理器140換出,將被讀取而且傳送出去到線程存儲器124中的寄存器。
繼續(xù)操作中調(diào)換的例子,當(dāng)換入的線程變得有效時,等待和活動線程寄存器142、146的內(nèi)容被交換。如上所述,這可以包括每個等待線程寄存器142和活動線程寄存器146的相應(yīng)寄存器之間大量的內(nèi)容傳送。
等待和活動寄存器142、146通常是相同大小,以便允許硬件線程調(diào)換,其通常比處理器和外部存儲器之間的軟件線程調(diào)換要快。由解壓縮模塊132將信息傳送到的那些等待寄存器的內(nèi)容,由此被傳送給相應(yīng)活動線程寄存器。例如程序計數(shù),從等待線程寄存器142的程序計數(shù)寄存器被傳送到活動線程寄存器146的程序計數(shù)寄存器。
由于壓縮模塊132和等待線程寄存器142之間的傳送,例如,等待/活動線程寄存器調(diào)換可以包括改變非映射寄存器或者使非映射寄存器保持完整,以在線程之間共享信息。
等待和活動映射寄存器144、148的內(nèi)容也可以被調(diào)換,以便映射信息“遵從”環(huán)境信息,所述映射信息對所述環(huán)境信息指定了寄存器對應(yīng)關(guān)系。這允許ALU 149確定活動線程寄存器146中的哪些存儲了從等待線程寄存器142裝載的信息。
從等待映射寄存器144到活動映射寄存器148的映射信息傳送還允許ALU 149保持在執(zhí)行活動線程時存取的特定活動線程寄存器的記錄,所述記錄可以在線程執(zhí)行被阻塞時特別有用,例如當(dāng)線程被更高優(yōu)先級的線程搶先的時侯。這個功能可以代替地由活動線程寄存器146和活動映射寄存器148之間的可操作連接激活,由此在執(zhí)行線程期間存取的任意活動線程寄存器被自動標(biāo)記在活動映射寄存器148中。
例如,當(dāng)某個環(huán)境信息不再與后續(xù)的線程執(zhí)行相關(guān)時,或者當(dāng)計算要在新的寄存器中存儲的新的輸出值時,活動映射寄存器148中的映射信息還可以由ALU 149來更新。在前面的情況下,調(diào)入的寄存器的數(shù)量可以大于隨后換出的寄存器數(shù)量,而在后面的情況下,更大量的寄存器可以被換出。ALU 149可以由此提供特定活動寄存器146的指示,一旦完成其處理操作的執(zhí)行,將要從所述特定活動寄存器146傳送信息,并且還可以或者替代地從活動寄存器146傳送信息。更一般地,通過指示信息將要從哪些寄存器傳送,或者實際從那些寄存器傳送出信息,ALU 149可以使得信息從特定等待寄存器傳送出去。
如上所述,ALU 149和活動映射寄存器148之間的相互作用可以通過提供與寄存器相關(guān)的ALU功能并且使那些功能對正由ALU 149執(zhí)行的軟件代碼可用來進(jìn)行支持。這些功能可以包括,例如清除、設(shè)置、插入或者指向活動映射寄存器148的功能、僅僅將活動映射寄存器148中的內(nèi)容換出到等待映射寄存器144的功能、僅僅將等待映射寄存器144中的內(nèi)容換入到活動映射寄存器148的功能,和/或其他功能。
當(dāng)線程阻塞或者線程中的指令已被執(zhí)行時,可以由ALU 149完成線程的當(dāng)前執(zhí)行。活動和等待線程寄存器146、142,或者至少活動映射寄存器148中指定的寄存器的內(nèi)容再一次被調(diào)換。非映射寄存器可被修改或者保持完整。等待和活動映射寄存器148、144的內(nèi)容也可以被調(diào)換。
在一些實施例中,只為線程維持線程環(huán)境信息,直到該線程所有指令已經(jīng)執(zhí)行完畢?;顒雍偷却{(diào)換,以及后面描述的后續(xù)調(diào)換操作由此可以不必為全部完成的線程執(zhí)行。
存儲在等待線程寄存器142中的信息可以由壓縮模塊134壓縮,并換出到線程存儲器124中。壓縮模塊134移動或者復(fù)制來自等待寄存器的信息到線程存儲器124,所述等待寄存器是在等待映射寄存器144中作為線程的一部分被指定的。在上述例子中,讀取來自4個8字節(jié)等待線程寄存器142的信息,并且4字節(jié)信息被放置在線程存儲器124中。由于沒有存儲器用于非活動寄存器,這導(dǎo)致信息壓縮。來自等待映射寄存器的映射信息被同樣地移動或者復(fù)制到線程壓縮映射126中,以便能夠確定用于后續(xù)調(diào)換操作的環(huán)境信息到寄存器的對應(yīng)關(guān)系。
如上所述,線程被換入和換出到處理器140,而且ALU 149能識別寄存器是否應(yīng)包括在調(diào)換中或者被撤消。從存儲器節(jié)約的方面來說,雖然一個附加字節(jié)被用來存儲所述壓縮映射,上述例子線程僅僅使用了8個一字節(jié)寄存器中的4個。在這種情況下節(jié)約的總的存儲器空間將是總共8寄存器字節(jié),對于3寄存器的節(jié)約,減少了使用的4寄存器字節(jié),減少了1寄映射字節(jié)。這表示用于線程的存儲器減少36%而且同樣地寄存器用于線程調(diào)換而傳送的信息總量減少36%。在實際的執(zhí)行中,對于32位處理器,線程大小總數(shù)可以很容易地超過1K比特??梢詫崿F(xiàn)顯著的節(jié)約和性能提高。
以上主要地在系統(tǒng)的環(huán)境上本發(fā)明的實施例。圖4是根據(jù)本發(fā)明另一個實施例的方法160的流程圖。
在方法160中,在162線程被存入存儲器。例如,這可以包括在存儲器中存儲新線程的環(huán)境信息、將新創(chuàng)建的線程或者等待線程從處理器調(diào)換到外部存儲器中,或者將阻塞線程從活動線程寄存器調(diào)換到等待線程寄存器中。
在164,確定用于存儲與所述線程相關(guān)信息的多個存儲位置中的諸如圖3中的等待寄存器142的存儲位置,如果有的話,信息將向或從所述存儲位置傳送,以便于將線程換入處理器或從處理器換出。當(dāng)線程被調(diào)換時,方法160進(jìn)行到166,與確定的存儲位置調(diào)換信息的操作。這可以包括移動或者復(fù)制信息到確定的存儲位置以便將處理操作調(diào)換到處理器里,或者從確定的存儲位置移動或者復(fù)制信息以便將處理操作從處理器中換出。
例如,可以對同樣的線程,或者對多個線程重復(fù)162、164、166的操作,以將線程換入或換出處理器。在多處理器系統(tǒng)中,可能同時地對于多線程執(zhí)行這些操作。
根據(jù)本發(fā)明其它實施例的方法可以更進(jìn)一步包括,與圖4明確示出的那些操作相比較更少或者不同的操作,和/或按與示出的次序不同次序執(zhí)行的操作。方法160說明了一個可能的實施例。
本發(fā)明還可以在存儲器中存儲的數(shù)據(jù)結(jié)構(gòu)中體現(xiàn),諸如圖3的壓縮映射126和/或映射寄存器144、148的二者之一或者兩者。根據(jù)本發(fā)明說明性的實施例,在圖5中示出示例性數(shù)據(jù)結(jié)構(gòu)170。
數(shù)據(jù)結(jié)構(gòu)170包括數(shù)據(jù)字段172、174,分別存儲線程標(biāo)識符和映射信息。數(shù)據(jù)字段172中的線程標(biāo)識符將映射信息鏈接到特定的線程,而數(shù)據(jù)字段174中的映射信息提供一個或多個存儲位置的指示,例如寄存器,信息將被傳送到所述寄存器或從所述寄存器傳送以便處理器在執(zhí)行線程時使用。
參考圖3和5,壓縮映射126可以包括具有用于各自線程的結(jié)構(gòu)170的多數(shù)據(jù)條目。
應(yīng)當(dāng)理解,取決于映射信息如何與相應(yīng)線程環(huán)境信息相關(guān)聯(lián),線程標(biāo)識符數(shù)據(jù)字段172可以不必提供在所有的實施例中。例如,如果映射信息被添加到線程存儲器中的線程信息上,則線程標(biāo)識符可以不必使用。此外,每次線程寄存器通常存儲僅僅一個線程的信息,因此,在圖3的處理系統(tǒng)120中,例如,映射寄存器144、148可以僅僅存儲對應(yīng)于這樣的線程的映射信息,所述線程的環(huán)境信息存儲在寄存器142、146中。
這里公開的本發(fā)明的實施例通過在上述操作期間減少要傳送的信息量可以加快線程調(diào)換或者類似的操作。此外,線程存儲器的更好的存儲器使用允許在相同存儲區(qū)域中支持更多線程,可能地改善了系統(tǒng)性能。
在活動和等待線程寄存器中存儲的線程數(shù)據(jù)和線程存儲器被有效地管理來提高處理速度。選擇特定的等待寄存器用于和線程存儲器中的內(nèi)容進(jìn)行調(diào)換。由于不活動的寄存器內(nèi)容不占用任何線程存儲器空間,存儲在線程存儲器中的數(shù)據(jù)被壓縮,從而實現(xiàn)更有效率的存儲利用。
此外,用來實現(xiàn)這些性能提高的裝置還可以用來在線程之間共用的線程數(shù)據(jù)。通過僅僅調(diào)換選擇的寄存器內(nèi)容,因為非調(diào)換寄存器的內(nèi)容保持完整,減少了調(diào)換時間而且在線程之間共享數(shù)據(jù)。
壓縮的線程未必阻礙其它的線程功能。例如,在沒有降低無壓縮方案性能的情況下還可以支持先占線程技術(shù)。在強迫線程調(diào)換的情況下,其中當(dāng)前活動線程被高優(yōu)先級線程占先,該高優(yōu)先級線程不能等待寄存器已經(jīng)存取的該活動線程正常停止,因為當(dāng)前的線程已變成活動的,已經(jīng)被存取的寄存器與確定為活動的附加的任意其它寄存器將進(jìn)行調(diào)換。雖然這可以復(fù)制便箋式存儲器(scratch pad)或者垃圾數(shù)據(jù),任意未影響到的而且沒有換入的寄存器將保持不被復(fù)制,仍然實現(xiàn)了性能的改善。
此外,在這里公開的方法沒有必要應(yīng)用到所有的線程或者寄存器。對線程來說很基礎(chǔ)的寄存器,諸如堆棧指示器、程序計數(shù)器、計時器,等等,總是被復(fù)制。在這種情況下,映射信息可以指定只是非基礎(chǔ)的寄存器和環(huán)境信息之間的對應(yīng)關(guān)系,或者總是被指定包括在調(diào)換中的與基本寄存器的完全映射。
壓縮線程技術(shù)可以用于實現(xiàn)處理器執(zhí)行性能、物理實現(xiàn)、資源分配和程序響應(yīng)的效率的提高。這些因素可以結(jié)合到目標(biāo)產(chǎn)品來使其運行得更快、成本減少、使用較少功率,而且在體積上變小。
已經(jīng)描述的僅僅是本發(fā)明實施例原理的應(yīng)用。在沒有脫離本發(fā)明范圍的情況下,本領(lǐng)域技術(shù)人員可以實現(xiàn)其它的設(shè)備和方法。
例如,雖然圖3示出了一組等待線程寄存器,其它的實施例可以配置具有多組等待線程寄存器或者沒有等待線程寄存器的處理器來操作。所述等待和活動寄存器代表了速度優(yōu)化,因而沒有必要在所有的設(shè)施中提供。
圖3表示的特定功能劃分同樣地出于說明性目的。例如,控制器130的功能可以在處理器140中實現(xiàn)。
此外,應(yīng)理解,由于除了輸入/輸出阻塞,線程可以換入和換出外部共享存儲器。例如,線程可以包括睡眠時間或者停止條件,而且當(dāng)處于睡眠或者停機狀態(tài)時被換出處理器。
另外,雖然主要描述方法和系統(tǒng)的環(huán)境,例如,也考慮本發(fā)明其它的實施,如存儲在機器可讀介質(zhì)上的指令。
權(quán)利要求
1.一種控制器,被配置為確定信息是否將被傳送到或傳送自多個存儲位置的任意存儲位置,所述多個存儲位置用于存儲與處理操作相關(guān)的信息,以便所述處理器在執(zhí)行所述處理操作中使用,而且使與所述處理操作相關(guān)的信息傳送到或傳送自所述多個存儲位置的每個存儲位置,如果有的話,其中信息將被傳送到或傳送自所述每個存儲位置。
2.根據(jù)權(quán)利要求1的控制器,其中所述控制器被進(jìn)一步配置為通過接收映射信息確定信息是否將被傳送到或傳送自任意存儲位置,其中所述映射信息指定了信息將被傳送到或傳送自的任意存儲位置。
3.根據(jù)權(quán)利要求1或2的控制器,其中所述處理操作包括將由所述處理器執(zhí)行的處理操作,而且其中所述控制器使得與所述處理操作相關(guān)的所述信息存儲到每個確定的存儲位置。
4.根據(jù)權(quán)利要求1或2的控制器,其中所述處理操作包括已經(jīng)由所述處理器執(zhí)行的處理操作,而且其中所述控制器使得與所述處理操作相關(guān)的信息從每個確定的存儲位置中讀取。
5.根據(jù)權(quán)利要求4的控制器,其中所述處理器被配置為提供所述多個存儲位置的每個存儲位置的指示,所述指示在執(zhí)行所述處理操作期間被存取,而且其中所述控制器被進(jìn)一步配置為,接收由所述處理器提供的所述指示,而且基于所述指示確定信息是否將從任意存儲位置傳送。
6.根據(jù)權(quán)利要求4的控制器,其中所述控制器被進(jìn)一步配置為修改除了每個確定的存儲位置之外所述多個存儲位置中的存儲位置的內(nèi)容。
7.根據(jù)權(quán)利要求4的控制器,其中,在傳送與所述處理操作相關(guān)的信息以前,所述多個存儲位置存儲與另一個處理操作相關(guān)的信息,其中所述控制器被進(jìn)一步配置為允許除了每個確定的存儲位置之外,所述多個存儲位置的存儲位置的內(nèi)容保持完整,借此在處理操作之間共享所述內(nèi)容。
8.根據(jù)權(quán)利要求1或2的控制器,其中所述處理操作包括線程,而且其中所述多個存儲位置包括線程寄存器。
9.一種系統(tǒng),包括根據(jù)權(quán)利要求1或2的控制器;以及存儲器,其操作地耦合到所述控制器而且包括所述多個存儲位置。
10.一種系統(tǒng),包括根據(jù)權(quán)利要求9的系統(tǒng);以及可操作地耦合到所述存儲器的所述處理器。
11.根據(jù)權(quán)利要求10的系統(tǒng),其中所述控制器利用所述處理器來實現(xiàn)。
12.一種方法,包括確定信息是否將被傳送到或傳送自多個存儲位置的任意存儲位置,所述多個存儲位置用于存儲與處理操作相關(guān)的信息,以便由處理器在執(zhí)行所述處理操作中使用;以及將與所述處理操作相關(guān)的信息傳送到或傳送自,所述多個存儲位置的每個存儲位置,如果有的話,其中信息將被傳送到或傳送自所述每個存儲位置。
13.根據(jù)權(quán)利要求12的方法,其中確定包括接收指定了任意存儲位置的映射信息,其中信息將被傳送到或傳送自所述任意存儲位置。
14.根據(jù)權(quán)利要求12或13的方法,其中所述處理操作包括將由所述處理器執(zhí)行的處理操作,并且其中傳送包括將與所述處理操作相關(guān)的所述信息存儲到每個確定的存儲位置。
15.根據(jù)權(quán)利要求12或13的方法,其中所述處理操作包括已經(jīng)由所述處理器執(zhí)行的處理操作,而且其中傳送包括從每個確定的存儲位置讀取與所述處理操作相關(guān)的所述信息。
16.根據(jù)權(quán)利要求15的方法,進(jìn)一步包括提供所述多個存儲位置的每個存儲位置的指示,所述指示在執(zhí)行所述處理操作期間被存取,其中確定包括基于所述指示確定。
17.根據(jù)權(quán)利要求15的方法,其中傳送進(jìn)一步包括至少下列之一允許除了每個確定的存儲位置之外所述多個存儲位置的存儲位置的內(nèi)容保持完整,從而與所述處理操作共用所述內(nèi)容;以及修改除了每個確定的存儲位置之外所述多個存儲位置的存儲位置的內(nèi)容。
18.根據(jù)權(quán)利要求12或13的方法,其中所述處理操作包括線程,而且其中所述多個存儲位置包括線程寄存器。
19.一種存儲指令的機器可讀介質(zhì),在執(zhí)行所述指令時運行根據(jù)權(quán)利要求12或13的方法。
20.一種設(shè)備,包括處理單元,用于執(zhí)行處理操作;以及存儲器,可操作地耦合到所述處理單元,而且包括多個存儲位置,所述多個存儲位置用于存儲與將由所述處理單元執(zhí)行的處理操作相關(guān)的信息,所述處理單元被配置為,確定在完成其所述處理操作的執(zhí)行之后,信息是否將從所述多個存儲位置的任意存儲位置傳送以及在完成其所述處理操作的執(zhí)行之后,使得與所述處理操作相關(guān)的信息從每個確定的存儲位置傳送,如果有的話。
21.根據(jù)權(quán)利要求20的設(shè)備,其中所述處理單元被配置為通過執(zhí)行至少下列之一,以使得與所述處理操作相關(guān)的信息從每個確定的存儲位置傳送提供每個確定的存儲位置的指示;以及從每個確定的存儲位置傳送所述信息。
22.根據(jù)權(quán)利要求20或21的設(shè)備,其中每個確定的存儲位置包括由所述處理單元在執(zhí)行所述處理操作期間存取的存儲位置。
23.根據(jù)權(quán)利要求22的設(shè)備,其中所述多個存儲位置中的許多存儲位置存儲信息,以便由所述處理單元在其執(zhí)行所述處理操作期間存取,以及其中許多確定的存儲位置包括較大、相同、或者較少數(shù)量的存儲位置。
24.一種存儲數(shù)據(jù)結(jié)構(gòu)的機器可讀介質(zhì),所述數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)字段,存儲信息是否將被傳送到或傳送自多個存儲位置的存儲位置的指示,所述多個存儲位置用于存儲與處理操作相關(guān)的信息,以便由所述處理器在執(zhí)行所述處理操作中使用。
25.根據(jù)權(quán)利要求24的介質(zhì),其中所述數(shù)據(jù)結(jié)構(gòu)包括多個數(shù)據(jù)字段,所述數(shù)據(jù)字段存儲了信息是否將被從所述多個存儲位置的各個存儲位置發(fā)送的指示。
全文摘要
本發(fā)明公開了用于控制傳送與處理操作相關(guān)的信息的系統(tǒng)和方法,所述處理操作例如線程。確定向或從存儲位置中的哪個存儲位置傳送信息,如果有的話,而不是從所有的存儲位置傳送信息,其中與處理操作相關(guān)的信息存儲在所述存儲位置中,以便處理器在執(zhí)行所述處理操作中使用。然后,信息被傳送到或傳送自任何確定的存儲位置。
文檔編號G06F9/46GK1945541SQ20061016272
公開日2007年4月11日 申請日期2006年9月6日 優(yōu)先權(quán)日2005年9月6日
發(fā)明者G·黑內(nèi)斯, B·麥克布賴德, L·M·塞爾吉, D·J·威爾松 申請人:阿爾卡特公司