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

處理操作管理系統(tǒng)和方法

文檔序號(hào):6562085閱讀:169來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):處理操作管理系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及軟件處理操作的執(zhí)行,并且具體涉及管理例如線(xiàn)程的軟件處理操作。
背景技術(shù)
在空間有限的處理環(huán)境中,例如還受相對(duì)嚴(yán)格的處理時(shí)間要求約束的通信網(wǎng)絡(luò)處理器(NP)實(shí)現(xiàn)中,多個(gè)處理器可以設(shè)置于盡可能小的空間中并且盡快地運(yùn)行。
由處理器執(zhí)行的處理任務(wù)或操作在等待特定指令的結(jié)果時(shí)會(huì)“阻塞”或者停止執(zhí)行,所述特定指令例如從存儲(chǔ)器中讀取。這種等待時(shí)間影響了處理器效率,因?yàn)樵谒却噶钔瓿善陂g沒(méi)有被使用。改善處理器的利用率的機(jī)制能極大地改善多處理器系統(tǒng)的性能。
線(xiàn)程是軟件代碼的連續(xù)指令,它提供了改善處理系統(tǒng)效率和性能的裝置。活動(dòng)線(xiàn)程是一個(gè)在當(dāng)前時(shí)鐘周期中正在處理指令的線(xiàn)程。當(dāng)線(xiàn)程變?yōu)椴换顒?dòng)時(shí),另一線(xiàn)程可以被轉(zhuǎn)換為當(dāng)前線(xiàn)程,并且開(kāi)始利用處理資源,改善系統(tǒng)的處理效率??梢詧?zhí)行一個(gè)活動(dòng)線(xiàn)程,同時(shí)另一個(gè)線(xiàn)程處于非活動(dòng)狀態(tài),例如等待指令的結(jié)果。
現(xiàn)有硬件線(xiàn)程技術(shù)將固定數(shù)目的線(xiàn)程與處理引擎相關(guān)聯(lián)。線(xiàn)程的固定數(shù)目會(huì)比許多系統(tǒng)所需的數(shù)目少得多。
每個(gè)線(xiàn)程也通常與用于執(zhí)行的特定硬件相關(guān)聯(lián)。線(xiàn)程被調(diào)進(jìn)和調(diào)出同一算術(shù)邏輯部件(ALU)。線(xiàn)程只能由它的關(guān)聯(lián)處理器執(zhí)行,即使多處理器系統(tǒng)中的其它處理器也可以用于執(zhí)行該線(xiàn)程。
軟件線(xiàn)程是硬件線(xiàn)程的替換物,但是一般相對(duì)較慢。因此,軟件線(xiàn)程在存儲(chǔ)操作或者其它操作期間調(diào)換線(xiàn)程的使用不能具有顯著優(yōu)勢(shì),因?yàn)樵S多操作能夠在軟件中調(diào)換線(xiàn)程所花費(fèi)的時(shí)間內(nèi)完成。軟件線(xiàn)程增大了處理開(kāi)銷(xiāo)并因此使總體系統(tǒng)性能滯后。
因此,仍需要改進(jìn)用于管理軟件操作的技術(shù)。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例給出了一種體系結(jié)構(gòu),該結(jié)構(gòu)提供了在緊密耦合的多指令多數(shù)據(jù)(MIMD)環(huán)境中的高水平的處理系統(tǒng)性能。
根據(jù)本發(fā)明的一方面,提供了一種處理操作管理器,其被配置為將處理操作相關(guān)聯(lián)的信息傳送到多個(gè)處理器中具有能力來(lái)接受用于執(zhí)行的處理操作的任何處理器,其中與處理操作相關(guān)聯(lián)的信息已預(yù)先轉(zhuǎn)送到多個(gè)處理器的其中一個(gè)以用于執(zhí)行處理操作。
處理操作可以是線(xiàn)程,在這種情況下與處理操作相關(guān)聯(lián)的信息可以是一個(gè)或多個(gè)線(xiàn)程寄存器。
在一個(gè)實(shí)施例中,每個(gè)處理器包括活動(dòng)信息存儲(chǔ)裝置,用于存儲(chǔ)與當(dāng)前正在由處理器執(zhí)行的處理操作相關(guān)聯(lián)的信息,以及備用信息存儲(chǔ)裝置,用于存儲(chǔ)與當(dāng)處理器變?yōu)榭捎脮r(shí)由處理器所執(zhí)行的處理操作相關(guān)聯(lián)的信息,并且管理器通過(guò)將信息從存儲(chǔ)器傳送到處理器的備用信息存儲(chǔ)裝置,將與處理操作相關(guān)聯(lián)的信息傳送到處理器。
管理器可以被進(jìn)一步配置為確定處理操作的狀態(tài),并基于處理操作的狀態(tài)確定信息是否將被傳送到處理器。例如,管理器可以確定與存儲(chǔ)在每個(gè)處理器的備用信息存儲(chǔ)裝置中的信息相關(guān)聯(lián)的每個(gè)處理操作的狀態(tài),并且通過(guò)在存儲(chǔ)器和備用信息存儲(chǔ)裝置之間傳送信息而將信息傳送到處理器,其中所述備用信息存儲(chǔ)裝置中存儲(chǔ)與具有特定狀態(tài)的處理操作相關(guān)聯(lián)的信息。
管理器還可以或者替代地確定處理操作的優(yōu)先級(jí),并且基于處理操作的優(yōu)先級(jí)來(lái)確定是否要將該信息傳送到處理器。在一個(gè)實(shí)施例中,管理器確定與存儲(chǔ)于每個(gè)處理器的備用信息存儲(chǔ)裝置中的信息相關(guān)聯(lián)的每個(gè)處理操作和所述處理操作的優(yōu)先級(jí),并且通過(guò)在所述存儲(chǔ)器和備用信息存儲(chǔ)裝置之間傳送信息而將信息傳送到處理器,在該備用信息存儲(chǔ)裝置中存儲(chǔ)與具有比所述處理操作更低優(yōu)先級(jí)的處理操作相關(guān)聯(lián)的信息。
存儲(chǔ)器可以存儲(chǔ)與一個(gè)或多個(gè)處理操作相關(guān)聯(lián)的信息。在此情況下,管理器可以將與一個(gè)或多個(gè)處理操作中的每一個(gè)相關(guān)聯(lián)的信息傳送到具有能力來(lái)接受用于執(zhí)行的處理操作的處理器。
選擇用于傳送與一個(gè)或多個(gè)處理操作中的每一個(gè)相關(guān)聯(lián)的信息的處理器可以由管理器基于至少下述之一來(lái)進(jìn)行一個(gè)或多個(gè)處理操作的狀態(tài)以及由多個(gè)處理器當(dāng)前正在執(zhí)行的處理操作的狀態(tài)、一個(gè)或多個(gè)處理操作的優(yōu)先級(jí)和由多個(gè)處理器當(dāng)前正在執(zhí)行的處理操作的優(yōu)先級(jí)、一個(gè)或多個(gè)處理操作的狀態(tài)和當(dāng)多個(gè)處理器中每一個(gè)都變?yōu)榭捎脮r(shí)將執(zhí)行的任何處理操作的狀態(tài)、一個(gè)或多個(gè)處理操作的優(yōu)先級(jí)和當(dāng)多個(gè)處理器中每個(gè)都變?yōu)榭捎脮r(shí)將執(zhí)行的任何處理操作的優(yōu)先級(jí),以及每個(gè)處理器當(dāng)前是否正在執(zhí)行處理操作。
管理器可以實(shí)現(xiàn)于例如這樣的系統(tǒng)中該系統(tǒng)還包括用于存儲(chǔ)與一個(gè)或多個(gè)處理操作相關(guān)聯(lián)的信息的存儲(chǔ)器。該系統(tǒng)還可以包括多個(gè)處理器。
根據(jù)一個(gè)實(shí)施例,管理器是利用多個(gè)處理器中的至少一個(gè)處理器實(shí)現(xiàn)的。
在本發(fā)明另一較寬的方面提供了一種方法,并且該方法包括接收與軟件處理操作相關(guān)聯(lián)的信息,其中與處理操作關(guān)聯(lián)的信息已預(yù)先傳送到用于執(zhí)行處理操作的多個(gè)處理器中的處理器,并且將信息傳送到多個(gè)處理器中有能力接受用于執(zhí)行的處理操作的任何處理器。
這些操作可以以任何多種方式執(zhí)行,并且該方法還可以包括其他操作,上文已經(jīng)簡(jiǎn)要地描述了其中一些。
根據(jù)本發(fā)明另一方面的管理器將可操作地耦合至存儲(chǔ)器和處理器。存儲(chǔ)器用于存儲(chǔ)與至少一個(gè)處理操作相關(guān)聯(lián)的信息,并且處理器有權(quán)訪(fǎng)問(wèn)用于存儲(chǔ)信息的多個(gè)寄存器組,所述信息與由處理器當(dāng)前正在執(zhí)行的處理操作相關(guān)聯(lián)、以及與在完成對(duì)當(dāng)前處理操作的執(zhí)行之后由處理器將要執(zhí)行的一個(gè)或多個(gè)處理操作相關(guān)聯(lián)。管理器被配置為確定存儲(chǔ)在存儲(chǔ)器中的信息是否要被傳送到或傳送自多個(gè)寄存器組中的一個(gè)寄存器組,所述寄存器組用于存儲(chǔ)一個(gè)或多個(gè)處理操作,并且倘若如此,則在存儲(chǔ)器和寄存器組之間傳送與處理操作相關(guān)聯(lián)的信息。
管理器可以基于至少下述之一來(lái)確定信息是否要被傳送與存儲(chǔ)于存儲(chǔ)器中的信息相關(guān)聯(lián)的處理操作的狀態(tài)和所述一個(gè)或多個(gè)處理操作的狀態(tài)、與存儲(chǔ)于存儲(chǔ)器中的信息相關(guān)聯(lián)的處理操作的優(yōu)先級(jí)和所述一個(gè)或多個(gè)處理操作優(yōu)先級(jí),以及處理器當(dāng)前是否正在執(zhí)行處理操作。


在閱讀了如下對(duì)特定示例性實(shí)施例的描述后,本發(fā)明的其它方面以及特性對(duì)于本領(lǐng)域的普通技術(shù)人員而言將變得顯而易見(jiàn)。
現(xiàn)在將參考附圖詳細(xì)說(shuō)明本發(fā)明的實(shí)施例,其中圖1是結(jié)合常規(guī)的硬件線(xiàn)程的處理系統(tǒng)的框圖;圖2是結(jié)合本發(fā)明實(shí)施例的處理系統(tǒng)的框圖;以及圖3是示出了根據(jù)本發(fā)明實(shí)施例的方法的流程圖。
具體實(shí)施例方式
通過(guò)增大執(zhí)行周期相對(duì)于等待周期的比值,線(xiàn)程用于提高處理部件(例如算術(shù)邏輯部件ALU)的利用率。在很快會(huì)出現(xiàn)的改進(jìn)的處理體系結(jié)構(gòu)中,集群處理器上的高級(jí)程序設(shè)計(jì)語(yǔ)言可能會(huì)使用包括線(xiàn)程的改進(jìn)的硬件特征來(lái)改善性能。
在處理集群中,線(xiàn)程控制塊管理線(xiàn)程的存儲(chǔ)器,或者至少與線(xiàn)程相關(guān)聯(lián)的環(huán)境信息,雖然它們沒(méi)有執(zhí)行。執(zhí)行變得阻塞的線(xiàn)程的ALU用備用線(xiàn)程調(diào)換當(dāng)前活動(dòng)線(xiàn)程。備用線(xiàn)程現(xiàn)在變?yōu)榛顒?dòng)線(xiàn)程并被執(zhí)行。當(dāng)新的活動(dòng)線(xiàn)程阻塞時(shí),調(diào)換出的線(xiàn)程可以在備用寄存器中等待以在另一次調(diào)換之后變?yōu)榛顒?dòng)的執(zhí)行線(xiàn)程。
線(xiàn)程控制塊基于來(lái)自操作系統(tǒng)的消息或者基于表明阻塞情況現(xiàn)在清除的硬件信號(hào)來(lái)調(diào)度線(xiàn)程。
線(xiàn)程信息通過(guò)線(xiàn)程控制塊存儲(chǔ)于諸如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)的存儲(chǔ)器中,使得所支持的線(xiàn)程數(shù)目需要相對(duì)較小的區(qū)域。例如,某些現(xiàn)代的設(shè)計(jì)支持高達(dá)每ALU 8個(gè)線(xiàn)程,而其它的只支持4個(gè)或者甚至2個(gè)線(xiàn)程。在支持每處理器8個(gè)線(xiàn)程的4處理器系統(tǒng)中,這將產(chǎn)生32個(gè)線(xiàn)程的存儲(chǔ)裝置,其中每個(gè)線(xiàn)程專(zhuān)用于一個(gè)特定處理器。線(xiàn)程無(wú)法在處理器之間移動(dòng)。例如,支持8個(gè)線(xiàn)程的4個(gè)處理器每個(gè)要求32個(gè)線(xiàn)程的專(zhuān)用存儲(chǔ)裝置,即使實(shí)際上需要較少的線(xiàn)程,比方20個(gè)線(xiàn)程。因?yàn)榫€(xiàn)程無(wú)法在處理器之間移動(dòng),所以每個(gè)處理器必須獨(dú)立地提供足夠的線(xiàn)程存儲(chǔ)裝置。
圖1是結(jié)合常規(guī)的硬件線(xiàn)程的處理系統(tǒng)的框圖。處理系統(tǒng)10包括處理器12、14、16、18,其中每個(gè)包括ALU 22、32、42、52,多路復(fù)用器24、34、44、54,以及8組線(xiàn)程寄存器26、36、46、56。
通過(guò)考察圖1顯而易見(jiàn)的是,在硬件體系結(jié)構(gòu)10中的處理器12、14、16、18之間,線(xiàn)程不是共享的。每個(gè)線(xiàn)程由ALU 22、32、42、52經(jīng)由多路復(fù)用結(jié)構(gòu)來(lái)訪(fǎng)問(wèn),所述多路復(fù)用結(jié)構(gòu)在圖1中由多路復(fù)用器24、34、44、54表示。如果處理器的8個(gè)線(xiàn)程中任何一個(gè)都沒(méi)有被使用,那么與不同處理器相關(guān)聯(lián)的其它線(xiàn)程不能將該對(duì)應(yīng)線(xiàn)程寄存器的存儲(chǔ)裝置用在其它地方。同樣,如果處理器的線(xiàn)程存儲(chǔ)裝置用完了,那么也不能訪(fǎng)問(wèn)空閑的相鄰線(xiàn)程存儲(chǔ)裝置。此外,假定當(dāng)前處理器具有高利用率,那么線(xiàn)程無(wú)法被傳送到另一處理器來(lái)繼續(xù)執(zhí)行。
在軟件線(xiàn)程方案中,線(xiàn)程僅僅被復(fù)制到存儲(chǔ)器。在此情況下線(xiàn)程的調(diào)換非常慢,因?yàn)樗姓{(diào)換線(xiàn)程的寄存器必須被處理器復(fù)制。軟件線(xiàn)程方案還通常將線(xiàn)程與特定處理器相關(guān)聯(lián)并因此易于具有某些與常規(guī)的硬件線(xiàn)程方案同樣的缺陷。
例如,由編譯器和操作系統(tǒng)(未示出)來(lái)處理把線(xiàn)程初始分配給系統(tǒng)10的處理器12、14、16、18中的一個(gè)。在編譯時(shí)編譯器可以將線(xiàn)程分配給處理器,并且任務(wù)會(huì)標(biāo)識(shí)出它們對(duì)于繼續(xù)執(zhí)行是有效的。操作系統(tǒng)很可能會(huì)在程序的請(qǐng)求下控制實(shí)際線(xiàn)程生成,并且線(xiàn)程會(huì)根據(jù)需要而產(chǎn)生新的線(xiàn)程。操作系統(tǒng)或者程序可以基于某些中斷的事件(trapped event)來(lái)發(fā)布調(diào)換線(xiàn)程的命令。
圖2是結(jié)合本發(fā)明實(shí)施例的處理系統(tǒng)的框圖。處理系統(tǒng)60包括四個(gè)處理器62、64、66、68,可操作地耦合至處理器的線(xiàn)程管理器110,可操作地耦合至線(xiàn)程管理器110的線(xiàn)程存儲(chǔ)器112,以及可操作地耦合至這些處理器的代碼存儲(chǔ)器114。每個(gè)處理器62、64、66、68包括ALU 72、82、92、102,一組活動(dòng)線(xiàn)程寄存器74、84、94、104,以及一組備用線(xiàn)程寄存器76、86、96、106。
應(yīng)該理解的是,下面所要描述的圖2的系統(tǒng)60以及圖3的內(nèi)容只是為了舉例說(shuō)明的目的,并且本發(fā)明并不局限于附圖中明確地示出和本文所描述的特定示例性實(shí)施例。例如,處理系統(tǒng)可以包括少于或多于四個(gè)處理器,或者甚至具有類(lèi)似或者不同結(jié)構(gòu)的單個(gè)處理器。在另一個(gè)實(shí)施例中,處理器的活動(dòng)寄存器和備用寄存器通過(guò)多路復(fù)用設(shè)備來(lái)訪(fǎng)問(wèn)處理器的ALU。由處理器執(zhí)行的軟件代碼可以獨(dú)立地存儲(chǔ),如圖所示,或者可能地與線(xiàn)程執(zhí)行環(huán)境信息一起存儲(chǔ)于線(xiàn)程寄存器中。也可以設(shè)想其它變體。
ALU 72、82、92、102是執(zhí)行機(jī)器可讀指令(例如軟件代碼)的處理部件的代表示例。線(xiàn)程有效地將軟件程序或者步驟劃分為可以由一個(gè)或多個(gè)處理器62、64、66、68中的ALU 72、82、92、102獨(dú)立執(zhí)行的單個(gè)部分。
每個(gè)線(xiàn)程寄存器組74/76、84/86、94/96、104/106都存儲(chǔ)與線(xiàn)程相關(guān)聯(lián)的環(huán)境信息。定義線(xiàn)程的環(huán)境的寄存器的示例包括程序計(jì)數(shù)器、計(jì)時(shí)器、標(biāo)志,和數(shù)據(jù)寄存器。在一些實(shí)施例中,當(dāng)線(xiàn)程活動(dòng)時(shí)由處理器執(zhí)行的實(shí)際軟件代碼可以用線(xiàn)程寄存器存儲(chǔ)。然而在圖2所示出的例子中,軟件代碼獨(dú)立地存儲(chǔ)于代碼存儲(chǔ)器114中。
盡管本文中主要稱(chēng)為寄存器,但是應(yīng)該理解的是,環(huán)境信息不必存儲(chǔ)在任何特定類(lèi)型的存儲(chǔ)器設(shè)備中。正如本文所使用的那樣,一般地說(shuō)寄存器可以表示用于存儲(chǔ)信息的存儲(chǔ)區(qū)域,或者在某些情況下表示信息本身,而不是存儲(chǔ)裝置或者存儲(chǔ)器設(shè)備的類(lèi)型。
線(xiàn)程管理器110在硬件、軟件、或者它們的某些組合中實(shí)現(xiàn),所述軟件諸如由操作系統(tǒng)處理器所執(zhí)行的操作系統(tǒng)軟件,并且管理存儲(chǔ)線(xiàn)程的存儲(chǔ)器112和每個(gè)處理器62、64、66、68之間的線(xiàn)程傳送。下面更加詳細(xì)地描述線(xiàn)程管理器110的功能。
類(lèi)似于線(xiàn)程寄存器74/76、84/86、94/96、104/106,線(xiàn)程存儲(chǔ)器112存儲(chǔ)與線(xiàn)程相關(guān)聯(lián)的線(xiàn)程環(huán)境信息。任何各種類(lèi)型的存儲(chǔ)器設(shè)備都可用來(lái)實(shí)現(xiàn)存儲(chǔ)線(xiàn)程的存儲(chǔ)器112,包括固態(tài)存儲(chǔ)器設(shè)備和使用可拆卸或者甚至可移動(dòng)的存儲(chǔ)介質(zhì)的存儲(chǔ)器設(shè)備。在一個(gè)實(shí)施例中,存儲(chǔ)線(xiàn)程的存儲(chǔ)器112提供于諸如同步靜態(tài)隨機(jī)存取存儲(chǔ)器(SSRAM)或者同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)設(shè)備的高密度存儲(chǔ)器設(shè)備中。通過(guò)允許在線(xiàn)程存儲(chǔ)器112中同時(shí)訪(fǎng)問(wèn)多個(gè)線(xiàn)程,多端口存儲(chǔ)器設(shè)備可以提高性能。
代碼存儲(chǔ)器114存儲(chǔ)軟件代碼,并且可以利用任何的各種類(lèi)型的存儲(chǔ)器設(shè)備來(lái)實(shí)現(xiàn),所述存儲(chǔ)設(shè)備包括固態(tài)和/或其它類(lèi)型的存儲(chǔ)器設(shè)備。例如,ALU 72、82、92、102可以訪(fǎng)問(wèn)代碼存儲(chǔ)器114中的一部分軟件代碼,所述軟件代碼由程序計(jì)數(shù)器線(xiàn)程寄存器中所存儲(chǔ)的程序計(jì)數(shù)器或者其它指針或者索引來(lái)識(shí)別。實(shí)際線(xiàn)程軟件代碼存儲(chǔ)于系統(tǒng)60中的代碼存儲(chǔ)器114中,盡管在其它實(shí)施例中,線(xiàn)程環(huán)境信息和軟件代碼可以存儲(chǔ)于相同的存儲(chǔ)裝置中,如上所述。
處理系統(tǒng)60中的每個(gè)處理器62、64、66、68支持2組“專(zhuān)用”線(xiàn)程寄存器74/76、84/86、94/96、104/106,所述“專(zhuān)用”線(xiàn)程寄存器用于存儲(chǔ)與它的活動(dòng)線(xiàn)程和備用線(xiàn)程相關(guān)聯(lián)的信息。存儲(chǔ)線(xiàn)程的存儲(chǔ)器112提供例如16個(gè)更多線(xiàn)程的其他共享線(xiàn)程存儲(chǔ)裝置。在該例中,平均有6個(gè)系統(tǒng)寬的線(xiàn)程對(duì)4個(gè)處理器中的每個(gè)處理器都有效。然而,在圖2所示的實(shí)施例中,假設(shè)處理器的線(xiàn)程寄存器存儲(chǔ)有效線(xiàn)程信息,任何一個(gè)處理器將具有最少2個(gè)線(xiàn)程,以及最多18個(gè)線(xiàn)程,其中最少2個(gè)線(xiàn)程對(duì)應(yīng)于其2個(gè)專(zhuān)用線(xiàn)程寄存器。
任何單個(gè)處理器都可以訪(fǎng)問(wèn)高達(dá)18個(gè)線(xiàn)程存儲(chǔ)裝置,包括專(zhuān)用線(xiàn)程存儲(chǔ)裝置和外部存儲(chǔ)裝置,所述外部存儲(chǔ)裝置在一些實(shí)施例中是通用的、共享的存儲(chǔ)裝置。每個(gè)處理器,或者在一個(gè)實(shí)施例中的單個(gè)處理器,可以具有x組線(xiàn)程寄存器(在圖2的示例中為2),據(jù)此它可以在與存儲(chǔ)于那些寄存器中的信息相關(guān)聯(lián)的x個(gè)線(xiàn)程之間迅速地轉(zhuǎn)換。如上所述,此類(lèi)型的硬件調(diào)換傾向于比軟件調(diào)換要快得多。在活動(dòng)線(xiàn)程正在被執(zhí)行的時(shí)候,線(xiàn)程管理器110可以在x-1個(gè)備用寄存器的任何一個(gè)與線(xiàn)程存儲(chǔ)器112之間傳送信息。
線(xiàn)程管理器110的這些操作不同于高速緩存系統(tǒng),例如,因?yàn)楦咚倬彺嫦到y(tǒng)是反應(yīng)性的(reactive)。處理器詢(xún)問(wèn)某些事情,然后高速緩存將其本地化或者取出它。相反,線(xiàn)程管理器110可以在處理器實(shí)際需要信息之前將該信息轉(zhuǎn)送給處理器,無(wú)論是在多處理器系統(tǒng)或者單處理器系統(tǒng)中。
系統(tǒng)60中對(duì)線(xiàn)程的原始存儲(chǔ)器需求可以利用高密度存儲(chǔ)器設(shè)備來(lái)減少。例如,高密度存儲(chǔ)器設(shè)備可以使用每一位3個(gè)晶體管,而另一種存儲(chǔ)器設(shè)備可以要求大約每一位30個(gè)晶體管。從而高密度存儲(chǔ)器設(shè)備可以允許利用與在其它存儲(chǔ)器設(shè)備中存儲(chǔ)32個(gè)線(xiàn)程相同或者比它更少數(shù)目的晶體管來(lái)存儲(chǔ)248個(gè)線(xiàn)程。這一點(diǎn)提供了線(xiàn)程顯著增加和/或線(xiàn)程存儲(chǔ)所需的存儲(chǔ)空間顯著減少的可能性。
正如下文所要進(jìn)一步詳細(xì)描述地,本發(fā)明的實(shí)施例還允許在處理器之間共享線(xiàn)程,這可以讓線(xiàn)程的總數(shù)減少,節(jié)約其他存儲(chǔ)空間。
操作中,線(xiàn)程管理器110控制在例如硬件寄存器的備用線(xiàn)程寄存器76、86、96、106與存儲(chǔ)器陣列、線(xiàn)程存儲(chǔ)器112之間的信息傳送。備用線(xiàn)程寄存器中的備用線(xiàn)程是通過(guò)用處理器當(dāng)前正在執(zhí)行的活動(dòng)線(xiàn)程進(jìn)行調(diào)換而變?yōu)榛顒?dòng)的。根據(jù)一個(gè)實(shí)施例,通過(guò)調(diào)換備用線(xiàn)程寄存器和活動(dòng)線(xiàn)程寄存器的內(nèi)容而用處理器的活動(dòng)線(xiàn)程調(diào)換備用線(xiàn)程與進(jìn)行,并且程序計(jì)數(shù)器或者與前面?zhèn)溆眉拇嫫黝?lèi)似的寄存器將處理器的ALU重定向到新的活動(dòng)線(xiàn)程的軟件代碼。
處理器內(nèi)備用寄存器和活動(dòng)寄存器之間的線(xiàn)程調(diào)換可以例如通過(guò)處理器的ALU由處理器本身控制。ALU可以檢測(cè)到,其當(dāng)前活動(dòng)線(xiàn)程正在等待例如存儲(chǔ)器讀取操作的返回,并且換入用于在等待時(shí)間期間執(zhí)行的其備用線(xiàn)程。在其它實(shí)施例中,外部部件檢測(cè)到線(xiàn)程阻塞并由處理器啟動(dòng)線(xiàn)程調(diào)換。
當(dāng)活動(dòng)線(xiàn)程阻塞或者完成時(shí),處理器的一組備用線(xiàn)程寄存器76、86、96、106中的備用線(xiàn)程可以保持在備用線(xiàn)程寄存器中直到ALU 72、82、92、102又變?yōu)榛顒?dòng)的。可以由處理器的ALU或者由線(xiàn)程管理器110做出關(guān)于是否將備用線(xiàn)程傳送給共享線(xiàn)程存儲(chǔ)器112的判斷。
應(yīng)該注意的是,如果線(xiàn)程管理器110將線(xiàn)程放置在該處理器的備用寄存器中,并且它未曾調(diào)換到活動(dòng)寄存器中,那么線(xiàn)程并不被強(qiáng)制在特定處理器上執(zhí)行。線(xiàn)程管理器110可以取消該線(xiàn)程并且利用較高優(yōu)先級(jí)的線(xiàn)程替代它或者將它轉(zhuǎn)送給另一現(xiàn)在可用的處理器。
例如,可以基于線(xiàn)程狀態(tài)在線(xiàn)程存儲(chǔ)器112和處理器62、64、66、68之間傳送線(xiàn)程。在一個(gè)實(shí)施例中,線(xiàn)程管理器110確定存儲(chǔ)于線(xiàn)程存儲(chǔ)器112中的線(xiàn)程的狀態(tài)和存儲(chǔ)于每個(gè)備用寄存器組76、86、96、106中的線(xiàn)程的狀態(tài)。軟件指令或者其它機(jī)制可以用于確定線(xiàn)程狀態(tài)。例如當(dāng)數(shù)據(jù)從存儲(chǔ)器讀取操作返回時(shí),只等待處理器繼續(xù)執(zhí)行的線(xiàn)程可以處于“就緒”或者類(lèi)似的狀態(tài)。備用線(xiàn)程寄存器76、86、96、106中阻塞或者停止的線(xiàn)程可以用處于就緒狀態(tài)的線(xiàn)程存儲(chǔ)器112中的線(xiàn)程進(jìn)行調(diào)換。這保證了當(dāng)備用線(xiàn)程沒(méi)有準(zhǔn)備好進(jìn)一步執(zhí)行時(shí),就緒線(xiàn)程不在共享線(xiàn)程存儲(chǔ)器112中等待。
代替或者除了基于狀態(tài)的傳送/調(diào)換之外,基于優(yōu)先級(jí)的線(xiàn)程信息傳送和/或調(diào)換也是可能的。當(dāng)產(chǎn)生線(xiàn)程時(shí)或者產(chǎn)生線(xiàn)程之后可以為線(xiàn)程分配優(yōu)先級(jí)。線(xiàn)程由父線(xiàn)程產(chǎn)生,例如,可以具有與父線(xiàn)程相同的優(yōu)先級(jí)。優(yōu)先級(jí)還可以或者可替代地明確地分配給線(xiàn)程。
通過(guò)例如使用一種軟件指令或功能來(lái)確定線(xiàn)程優(yōu)先級(jí),并且基于確定的優(yōu)先級(jí)在線(xiàn)程存儲(chǔ)器112和備用線(xiàn)程寄存器76、86、96、106之間傳送線(xiàn)程信息,線(xiàn)程可以按照優(yōu)先級(jí)的順序被發(fā)送到處理器。最高優(yōu)先級(jí)的線(xiàn)程由處理器62、64、66、68在低優(yōu)先級(jí)線(xiàn)程之前執(zhí)行。
優(yōu)先級(jí)還可以或者可替代地例如由ALU使用,用于控制備用寄存器和活動(dòng)寄存器74/76、84/86、94/96、104/106之間的線(xiàn)程調(diào)換,以允許較高優(yōu)先級(jí)的備用線(xiàn)程優(yōu)先于低優(yōu)先級(jí)的活動(dòng)線(xiàn)程。
根據(jù)組合的狀態(tài)/優(yōu)先級(jí)方法,線(xiàn)程的狀態(tài)和優(yōu)先級(jí)都考慮到管理線(xiàn)程之中。所希望的是,例如,不從備用線(xiàn)程寄存器傳送就緒線(xiàn)程以便換入較高優(yōu)先級(jí)的阻塞線(xiàn)程。將較高優(yōu)先級(jí)的線(xiàn)程傳送到備用線(xiàn)程寄存器中可以被延遲直到那些線(xiàn)程處于就緒狀態(tài)。
狀態(tài)和優(yōu)先級(jí)表示可以用于確定線(xiàn)程是否將會(huì)傳送到線(xiàn)程存儲(chǔ)器112中和/或從線(xiàn)程存儲(chǔ)器112傳送出,或者在活動(dòng)和備用線(xiàn)程寄存器74/76、84/86、94/96、104/106之間進(jìn)行傳送的標(biāo)準(zhǔn)的范例。除了或者代替狀態(tài)和優(yōu)先級(jí),其它線(xiàn)程傳送/調(diào)換標(biāo)準(zhǔn)可以被使用。某些可選或者其他線(xiàn)程調(diào)度機(jī)制對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)是顯而易見(jiàn)的。
一旦線(xiàn)程存儲(chǔ)于處理器的備用線(xiàn)程寄存器外部,那么它能被調(diào)度給任一其它的處理器。例如,備用線(xiàn)程能經(jīng)由線(xiàn)程存儲(chǔ)器112從處理器62移動(dòng)到處理器64,使得更為有效地利用ALU周期。因此,因?yàn)榈却€(xiàn)程可以具有其它可用處理器,所以大量的執(zhí)行線(xiàn)程不會(huì)經(jīng)常中斷。
這是超出已知線(xiàn)程技術(shù)的優(yōu)點(diǎn)。雖然某些線(xiàn)程方案執(zhí)行同步的線(xiàn)程,但是每一線(xiàn)程與一個(gè)特定的處理單元相關(guān)聯(lián),并因此必須等待那些處理單元變?yōu)榭捎?。如果多個(gè)線(xiàn)程都在等待相同的單元,那么將只有一個(gè)執(zhí)行。根據(jù)本發(fā)明的實(shí)施例,因?yàn)榇嬖谳^多的可用資源,所以線(xiàn)程很少競(jìng)爭(zhēng)。例如,系統(tǒng)60中的線(xiàn)程能由4處理器62、64、66、68中的任何一個(gè)來(lái)執(zhí)行。
此外,系統(tǒng)60中的所有處理器62、64、66、68都共享線(xiàn)程存儲(chǔ)器112,使得每個(gè)處理器有能力在要求時(shí)具有大量線(xiàn)程,而不必專(zhuān)用硬件資源。
更一般地,線(xiàn)程可以被認(rèn)為是由處理器執(zhí)行的軟件處理操作的范例,包括一個(gè)或多個(gè)任務(wù)或者指令。在此情況下,線(xiàn)程管理器110是處理操作管理器的范例,其將與處理操作相關(guān)聯(lián)的信息從存儲(chǔ)器傳送到多個(gè)處理器中的一個(gè),所述處理器有能力來(lái)接受用于執(zhí)行的處理操作。例如,當(dāng)處理器當(dāng)前沒(méi)有執(zhí)行另一處理操作、其備用寄存器為空、或者其備用寄存器存儲(chǔ)與具有可以被支配的狀態(tài)和/或優(yōu)先級(jí)的操作相關(guān)聯(lián)的信息時(shí),處理器有能力接受處理操作。
因此,已由一個(gè)處理器執(zhí)行的線(xiàn)程可以被傳遞給相同的處理器或者另一處理器以進(jìn)一步執(zhí)行。在一種意義上,這可以被認(rèn)為是在功能上等同于選擇一個(gè)處理器以處理線(xiàn)程,以及隨后選擇相同的或者不同的處理器來(lái)處理該線(xiàn)程。
將信息從線(xiàn)程存儲(chǔ)器112傳送到處理器的備用線(xiàn)程寄存器包括從線(xiàn)程存儲(chǔ)器中移動(dòng)或者拷貝信息。
在之前的方法中,一旦線(xiàn)程信息已被移入處理器的備用寄存器中,那么它不再存儲(chǔ)在線(xiàn)程存儲(chǔ)器112中,避免了在兩個(gè)不同處理器的備用寄存器中有相同的線(xiàn)程等待執(zhí)行的風(fēng)險(xiǎn)。
然而,如果從線(xiàn)程存儲(chǔ)器112中復(fù)制了線(xiàn)程信息,那么可以實(shí)現(xiàn)另一種機(jī)制以防止將相同線(xiàn)程的信息傳送給兩個(gè)不同處理器。例如,線(xiàn)程存儲(chǔ)器112中的明確標(biāo)志或者指示符可用于跟蹤哪些信息已經(jīng)被傳送到處理器的備用線(xiàn)程寄存器中。線(xiàn)程管理器110于是將訪(fǎng)問(wèn)這些標(biāo)志或者指示符以確定與特定線(xiàn)程相關(guān)聯(lián)的信息是否已經(jīng)被傳送到處理器。使用例如表格將標(biāo)志/指示符映射到線(xiàn)程標(biāo)識(shí)符,每個(gè)標(biāo)志或者指示符可以與線(xiàn)程信息相關(guān)聯(lián)。另一可能的選擇將是在用于在線(xiàn)程存儲(chǔ)器112中存儲(chǔ)線(xiàn)程信息的數(shù)據(jù)記錄中包括標(biāo)志或者指示符字段。還可以設(shè)想進(jìn)一步的變化,并且這種進(jìn)一步的變化對(duì)于本發(fā)明所屬領(lǐng)域的技術(shù)人員而言是顯而易見(jiàn)的。
上面主要是在系統(tǒng)的環(huán)境中描述了的本發(fā)明的實(shí)施例。圖3是根據(jù)本發(fā)明的另一實(shí)施例用于在多處理器系統(tǒng)中管理軟件處理操作的方法120的流程圖。
在方法120中,在122一個(gè)或多個(gè)線(xiàn)程存儲(chǔ)于存儲(chǔ)器。例如,這可以包括將最新產(chǎn)生的線(xiàn)程或者備用線(xiàn)程從處理器調(diào)換到外部共享存儲(chǔ)器。
在123,在線(xiàn)程準(zhǔn)備好進(jìn)一步執(zhí)行之后選擇處理器來(lái)處理所存儲(chǔ)的線(xiàn)程。在一個(gè)實(shí)施例中,這種選擇包括識(shí)別有能力接受用于執(zhí)行的線(xiàn)程的處理器。當(dāng)處理器的備用線(xiàn)程寄存器為空時(shí),處理器可以被認(rèn)為是有能力接受線(xiàn)程,盡管也可以設(shè)想例如基于線(xiàn)程狀態(tài)和/或優(yōu)先級(jí)的其它選擇機(jī)制。在123,操作還可以包括基于線(xiàn)程的狀態(tài)和/或優(yōu)先級(jí)來(lái)選擇線(xiàn)程以傳送到處理器。
方法120在124繼續(xù)進(jìn)行以下操作,即將線(xiàn)程調(diào)換到選擇的處理器中、或通常將與處理操作相關(guān)聯(lián)的信息(即線(xiàn)程)從存儲(chǔ)器傳送到所選處理器中。在124信息還可以基本上同時(shí)從處理器中傳送出,其中處理器的備用寄存器存儲(chǔ)與處理器已經(jīng)或者未曾執(zhí)行的另一線(xiàn)程相關(guān)聯(lián)的信息。
對(duì)多個(gè)線(xiàn)程可以重復(fù)進(jìn)行或者基本上同時(shí)執(zhí)行在122、123、124的操作。
盡管123的處理器選擇可以基于如上所述線(xiàn)程的狀態(tài)和/或優(yōu)先級(jí),但是確定線(xiàn)程狀態(tài)和/或優(yōu)先級(jí)的操作已經(jīng)被獨(dú)立地顯示在126,以更為清楚地說(shuō)明本發(fā)明實(shí)施例的其它特性。基于線(xiàn)程狀態(tài)、優(yōu)先級(jí)、或者基于兩者,如在126所確定的,在128,活動(dòng)線(xiàn)程或者備用線(xiàn)程可以被調(diào)換出處理器,以使得與具有較高優(yōu)先級(jí)的線(xiàn)程相關(guān)聯(lián)的信息可以被傳送到處理器的備用寄存器中。應(yīng)該理解的是,在126、128的操作可以重復(fù)地或者同時(shí)地應(yīng)用于多個(gè)線(xiàn)程和處理器。
圖3中示出的操作可以隨后又應(yīng)用于在128已經(jīng)被調(diào)換出處理器的線(xiàn)程。
根據(jù)本發(fā)明其它實(shí)施例的方法可以進(jìn)一步包括比圖3中明確示出的操作更少或者不同的操作,和/或按照與示出的不同順序執(zhí)行的操作。方法120是一個(gè)可能的實(shí)施例的示例。例如,如上所述,在122的操作可能包括將線(xiàn)程從處理器調(diào)換出,并且在123和/或124的操作可以包括確定一個(gè)或多個(gè)線(xiàn)程的狀態(tài)和/或優(yōu)先級(jí)。在圖3中126的狀態(tài)/優(yōu)先級(jí)確定和128的換出操作的獨(dú)立表示不排除將這些操作在方法120中更早地執(zhí)行或者結(jié)合其他操作執(zhí)行。也可以設(shè)想操作類(lèi)型以及它們被執(zhí)行的順序的進(jìn)一步變化。
相對(duì)于常規(guī)的線(xiàn)程管理技術(shù),本文所公開(kāi)的系統(tǒng)和技術(shù)可以讓更多數(shù)量的線(xiàn)程對(duì)處理器可用,同時(shí)保留較低的平均線(xiàn)程計(jì)數(shù),減少了所需的線(xiàn)程存儲(chǔ)器的數(shù)量。
本發(fā)明的實(shí)施例還可以允許不僅在單處理器上而且在處理器之間調(diào)換線(xiàn)程,從而改善多處理器系統(tǒng)的性能。
因此可以在處理器上執(zhí)行更多任務(wù)而不會(huì)出現(xiàn)在別處會(huì)看到的整體性能的降低。另外,可以提高處理器利用率,又可以提高處理器性能等級(jí)。這在高級(jí)終端系統(tǒng)中是非常需要的。較少的存儲(chǔ)器分布(profile)也可以降低等效性能的設(shè)計(jì)尺寸,直接變換為降低制造部件的成本。
所描述的僅僅示例了本發(fā)明實(shí)施例的原理的應(yīng)用。在不脫離本發(fā)明的范圍的情況下,本領(lǐng)域技術(shù)人員也可以實(shí)現(xiàn)其它設(shè)備和方法。
例如,盡管圖2示出了每個(gè)處理器僅有一組備用線(xiàn)程寄存器,但是其它實(shí)施例可以配置為利用具有多組備用線(xiàn)程寄存器的處理器來(lái)進(jìn)行操作。備用寄存器和活動(dòng)寄存器表示速度優(yōu)化,并因此不必在所有實(shí)現(xiàn)方式中設(shè)置。因此,本發(fā)明其它實(shí)施例可以包括具有更少內(nèi)部寄存器的處理器。
對(duì)圖2中所示功能的具體劃分同樣意在為了說(shuō)明的目的。例如,線(xiàn)程管理器的功能可以實(shí)現(xiàn)于一個(gè)或多個(gè)處理器中,以致處理器可以更直接地訪(fǎng)問(wèn)共享線(xiàn)程存儲(chǔ)器。
還應(yīng)該理解,由于除輸入/輸出阻塞之外的原因,線(xiàn)程可以被傳送到并傳送出外部共享存儲(chǔ)器。例如,線(xiàn)程可以結(jié)合睡眠時(shí)間或者停止條件,并且在處于睡眠或者停止?fàn)顟B(tài)時(shí)被調(diào)換出處理器。
管理器和外部共享線(xiàn)程存儲(chǔ)器有效地使得一個(gè)處理器訪(fǎng)問(wèn)曾經(jīng)由或?qū)⒁闪硪粋€(gè)處理器處理的線(xiàn)程。在另一個(gè)實(shí)施例中,例如通過(guò)允許處理器訪(fǎng)問(wèn)其他處理器的備用寄存器,獨(dú)立于處理器而實(shí)現(xiàn)的或者結(jié)合一個(gè)或多個(gè)處理器而實(shí)現(xiàn)的管理器或者管理功能可以提供對(duì)處理器之間的線(xiàn)程的更直接的訪(fǎng)問(wèn)。
也可以設(shè)想單個(gè)處理器實(shí)施例。線(xiàn)程管理器可以被可操作地耦合至用于存儲(chǔ)與至少一個(gè)處理操作相關(guān)聯(lián)的信息的存儲(chǔ)器,并耦合至處理器。處理器有權(quán)訪(fǎng)問(wèn)多個(gè)寄存器組,所述寄存器組用于存儲(chǔ)與由處理器當(dāng)前正在執(zhí)行的處理操作相關(guān)聯(lián)的信息以及與在完成當(dāng)前處理操作的執(zhí)行之后由該處理器將要執(zhí)行的一個(gè)或多個(gè)處理操作相關(guān)聯(lián)的信息。管理器確定存儲(chǔ)在存儲(chǔ)器中的信息是否將會(huì)被傳送到或者來(lái)自用于存儲(chǔ)一個(gè)或多個(gè)處理操作的多個(gè)寄存器組中的一個(gè)寄存器組,并且倘若如此,在存儲(chǔ)器和寄存器組之間傳送與處理操作相關(guān)聯(lián)的信息。因此,管理器可以在處理器執(zhí)行線(xiàn)程的同時(shí)在存儲(chǔ)器和處理器的備用寄存器之間傳送信息。
根據(jù)本文公開(kāi)的技術(shù)所管理的線(xiàn)程集合不必是“固定的”。從某種意義上講,線(xiàn)程的執(zhí)行會(huì)被完成,之后線(xiàn)程可以不再存儲(chǔ)于線(xiàn)程寄存器或者共享線(xiàn)程存儲(chǔ)裝置中。還可以添加新的線(xiàn)程。
另外,盡管主要在方法和系統(tǒng)的環(huán)境中描述,但是也可以設(shè)想本發(fā)明的其它實(shí)現(xiàn)方式,例如存儲(chǔ)在機(jī)器可讀介質(zhì)上的指令。
權(quán)利要求
1.一種處理操作管理器,被配置為將與處理操作相關(guān)聯(lián)的信息傳送到多個(gè)處理器中有能力接受用于執(zhí)行的所述處理操作的任何處理器,其中與所述處理操作關(guān)聯(lián)的信息已預(yù)先傳送到用于執(zhí)行所述處理操作的所述多個(gè)處理器中的一個(gè)處理器。
2.如權(quán)利要求1的管理器,其中所述處理操作包括線(xiàn)程,并且其中與所述處理操作相關(guān)聯(lián)的信息包括存儲(chǔ)于一個(gè)或多個(gè)線(xiàn)程寄存器中的信息。
3.如權(quán)利要求1的管理器,其中所述多個(gè)處理器中的每個(gè)處理器包括用于存儲(chǔ)與所述處理器當(dāng)前正在執(zhí)行的處理操作相關(guān)聯(lián)的信息的活動(dòng)信息存儲(chǔ)裝置,以及用于存儲(chǔ)當(dāng)所述處理器變?yōu)榭捎脮r(shí)與所述處理器將要執(zhí)行的處理操作相關(guān)聯(lián)的信息的備用信息存儲(chǔ)裝置,并且,其中通過(guò)將所述信息從存儲(chǔ)器傳送到所述處理器的所述備用信息存儲(chǔ)裝置中,所述管理器將與處理操作相關(guān)聯(lián)的所述信息傳送到處理器。
4.如權(quán)利要求1或2的管理器,其中所述管理器被進(jìn)一步配置為確定所述處理操作的狀態(tài),并基于所述處理操作的狀態(tài)確定所述信息是否將被傳送到處理器。
5.如權(quán)利要求3的管理器,其中所述管理器被進(jìn)一步配置為確定與存儲(chǔ)于每個(gè)處理器的所述備用信息存儲(chǔ)裝置中的信息相關(guān)聯(lián)的每個(gè)處理操作的狀態(tài),以及通過(guò)在所述存儲(chǔ)器和所述備用信息存儲(chǔ)裝置之間傳送所述信息將所述信息傳送給處理器,其中所述備用信息存儲(chǔ)裝置存儲(chǔ)與具有特定狀態(tài)的處理操作相關(guān)聯(lián)的信息。
6.如權(quán)利要求1或2的管理器,其中所述管理器被進(jìn)一步配置為確定所述處理操作的優(yōu)先級(jí),并基于所述處理操作的優(yōu)先級(jí)確定所述信息是否將被傳送到處理器。
7.如權(quán)利要求3的管理器,其中所述管理器被進(jìn)一步配置為確定與存儲(chǔ)于每個(gè)處理器的所述備用信息存儲(chǔ)裝置中的信息相關(guān)聯(lián)的每個(gè)處理操作和所述處理操作的優(yōu)先級(jí),并且通過(guò)在所述存儲(chǔ)器和備用信息存儲(chǔ)裝置之間傳送所述信息將所述信息傳送給處理器,在該備用信息存儲(chǔ)裝置中存儲(chǔ)具有比所述處理操作更低優(yōu)先級(jí)的處理操作相關(guān)聯(lián)的信息。
8.如權(quán)利要求1的管理器,其中存儲(chǔ)器被可操作地耦合至所述管理器并被配置為存儲(chǔ)與包括所述處理操作的一個(gè)或多個(gè)處理操作相關(guān)聯(lián)的信息,并且其中所述管理器被配置為將與所述一個(gè)或多個(gè)處理操作中的每一個(gè)相關(guān)聯(lián)的信息傳送給所述多個(gè)處理器中有能力接受用于執(zhí)行的處理操作的處理器。
9.如權(quán)利要求8的管理器,其中所述管理器被進(jìn)一步配置為基于以下至少一個(gè)選擇所述多個(gè)處理器中的處理器來(lái)傳送與所述一個(gè)或多個(gè)處理操作中的每一個(gè)相關(guān)聯(lián)的信息所述一個(gè)或多個(gè)處理操作的狀態(tài)以及所述多個(gè)處理器當(dāng)前正在執(zhí)行的處理操作的狀態(tài);所述一個(gè)或多個(gè)處理操作的優(yōu)先級(jí)以及所述多個(gè)處理器當(dāng)前正在執(zhí)行的處理操作的優(yōu)先級(jí);所述一個(gè)或多個(gè)處理操作的狀態(tài)以及當(dāng)所述多個(gè)處理器中的每個(gè)都變?yōu)榭捎脮r(shí)將要執(zhí)行的任何處理操作的狀態(tài);所述一個(gè)或多個(gè)處理操作的優(yōu)先級(jí)以及當(dāng)所述多個(gè)處理器中的每個(gè)都變?yōu)榭捎脮r(shí)將要執(zhí)行的任何處理操作的優(yōu)先級(jí);以及每個(gè)處理器當(dāng)前是否正在執(zhí)行處理操作。
10.一種系統(tǒng),包括如權(quán)利要求1至3、5、和7至9中任一項(xiàng)的管理器;以及用于存儲(chǔ)與包括所述處理操作的一個(gè)或多個(gè)處理操作相關(guān)聯(lián)的信息的存儲(chǔ)器。
11.一種系統(tǒng),包括如權(quán)利要求10的系統(tǒng);以及所述多個(gè)處理器。
12.如權(quán)利要求11的系統(tǒng),其中所述管理器是利用所述多個(gè)處理器中的至少一個(gè)處理器實(shí)現(xiàn)的。
13.一種方法,包括如下步驟接收與軟件處理操作相關(guān)聯(lián)的信息,其中所述與處理操作相關(guān)聯(lián)的信息已預(yù)先傳送到用于執(zhí)行所述處理操作的多個(gè)處理器中的處理器,以及將所述信息傳送到所述多個(gè)處理器中有能力來(lái)接受用于執(zhí)行的所述處理操作的任何處理器。
14.如權(quán)利要求13的方法,其中所述處理操作包括線(xiàn)程,并且其中與所述處理操作相關(guān)聯(lián)的信息包括存儲(chǔ)于一個(gè)或多個(gè)線(xiàn)程寄存器中的信息。
15.如權(quán)利要求13的方法,其中所述多個(gè)處理器中的每個(gè)處理器包括用于存儲(chǔ)與所述處理器當(dāng)前正在執(zhí)行的處理操作相關(guān)聯(lián)的信息的活動(dòng)信息存儲(chǔ)裝置,以及用于存儲(chǔ)當(dāng)所述處理器變?yōu)榭捎脮r(shí)與所述處理器將要執(zhí)行的處理操作相關(guān)聯(lián)的信息的備用信息存儲(chǔ)裝置,并且其中傳送包括將信息傳送到所述處理器的所述備用信息存儲(chǔ)裝置中。
16.如權(quán)利要求15的方法,進(jìn)一步包括確定與存儲(chǔ)于每個(gè)處理器的所述備用信息存儲(chǔ)裝置中的信息相關(guān)聯(lián)的每個(gè)處理操作的狀態(tài),其中傳送包括在存儲(chǔ)器和備用信息存儲(chǔ)裝置之間傳送所述信息,所述備用信息存儲(chǔ)裝置中存儲(chǔ)與具有特定狀態(tài)的處理操作相關(guān)聯(lián)的信息。
17.如權(quán)利要求15的方法,進(jìn)一步包括確定與存儲(chǔ)于每個(gè)處理器的所述備用信息存儲(chǔ)裝置中的信息相關(guān)聯(lián)的每個(gè)處理操作和所述處理操作的優(yōu)先級(jí),其中傳送包括在存儲(chǔ)器和備用信息存儲(chǔ)裝置之間傳送所述信息,在該備用信息存儲(chǔ)裝置中存儲(chǔ)與具有比所述處理操作更低優(yōu)先級(jí)的處理操作相關(guān)聯(lián)的信息。
18.如權(quán)利要求13至17任一項(xiàng)的方法,還包括對(duì)多個(gè)處理操作重復(fù)接收和傳送。
19.如權(quán)利要求18的方法,進(jìn)一步包括基于以下至少一個(gè)選擇處理器以將所述信息傳送至所述處理器所述多個(gè)處理操作的狀態(tài)以及所述多個(gè)處理器當(dāng)前正在執(zhí)行的處理操作的狀態(tài);所述多個(gè)處理操作的優(yōu)先級(jí)以及所述多個(gè)處理器當(dāng)前正在執(zhí)行的處理操作的優(yōu)先級(jí);所述多個(gè)處理操作的狀態(tài)以及當(dāng)所述多個(gè)處理器中的每一個(gè)都變?yōu)榭捎脮r(shí)將要執(zhí)行的任何處理操作的狀態(tài);所述多個(gè)處理操作的優(yōu)先級(jí)以及當(dāng)所述多個(gè)處理器中的每個(gè)都變?yōu)榭捎脮r(shí)將要執(zhí)行的任何處理操作的優(yōu)先級(jí);以及每個(gè)處理器當(dāng)前是否正在執(zhí)行處理操作。
20.一種存儲(chǔ)指令的機(jī)器可讀介質(zhì),當(dāng)執(zhí)行所述指令時(shí)運(yùn)行權(quán)利要求13至17中任一項(xiàng)的方法。
21.一種可操作地耦合至存儲(chǔ)器和處理器的管理器,所述存儲(chǔ)器用于存儲(chǔ)與至少一個(gè)處理操作相關(guān)聯(lián)的信息,所述處理器有權(quán)訪(fǎng)問(wèn)多個(gè)寄存器組,所述多個(gè)寄存器組用于存儲(chǔ)與所述處理器當(dāng)前正在執(zhí)行的處理操作以及與在完成對(duì)當(dāng)前處理操作的執(zhí)行之后由所述處理器將要執(zhí)行的一個(gè)或多個(gè)處理操作相關(guān)聯(lián)的信息,所述管理器被配置為確定存儲(chǔ)在所述存儲(chǔ)器中的信息是否將要傳送到或者傳送自所述多個(gè)寄存器組中的一個(gè)寄存器組,所述多個(gè)寄存器組用于存儲(chǔ)所述一個(gè)或多個(gè)處理操作,并且倘若如此,則在所述存儲(chǔ)器和所述寄存器組之間傳送與處理操作相關(guān)聯(lián)的信息。
22.如權(quán)利要求21的管理器,其中所述管理器配置為基于以下至少一個(gè)來(lái)確定信息是否將被傳送與存儲(chǔ)于所述存儲(chǔ)器中的信息相關(guān)聯(lián)的處理操作的狀態(tài)以及所述一個(gè)或多個(gè)處理操作的狀態(tài);與存儲(chǔ)于所述存儲(chǔ)器中的信息相關(guān)聯(lián)的處理操作的優(yōu)先級(jí)以及所述一個(gè)或多個(gè)處理操作的優(yōu)先級(jí);以及所述處理器當(dāng)前是否正在執(zhí)行處理操作。
23.一種系統(tǒng),包括如權(quán)利要求21或22的管理器;以及所述存儲(chǔ)器。
24.一種系統(tǒng),包括如權(quán)利要求23的系統(tǒng);以及所述處理器。
全文摘要
本發(fā)明公開(kāi)了管理處理操作的方法和系統(tǒng)。處理操作不局限于由多處理器系統(tǒng)中的任何特定處理器執(zhí)行。與處理操作相關(guān)聯(lián)的信息可以被傳送到一個(gè)處理器以用于由該處理器執(zhí)行處理操作。處理器可以或不必實(shí)際執(zhí)行該處理操作。隨后,處理操作的信息可以傳送到有能力接受用于執(zhí)行的處理操作的同一處理器或不同處理器。所公開(kāi)的技術(shù)并不僅限于多處理器系統(tǒng),并且可以用于例如在單處理器系統(tǒng)中的外存儲(chǔ)器和處理器寄存器之間傳送信息。
文檔編號(hào)G06F15/76GK1928811SQ200610137198
公開(kāi)日2007年3月14日 申請(qǐng)日期2006年9月6日 優(yōu)先權(quán)日2005年9月6日
發(fā)明者G·黑內(nèi)斯, B·麥克布賴(lài)德, L·M·塞爾吉, D·J·威爾松 申請(qǐng)人:阿爾卡特公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
武川县| 天全县| 成安县| 安龙县| 神池县| 宜春市| 兰坪| 佳木斯市| 修武县| 桦南县| 大荔县| 乡城县| 迁安市| 临邑县| 泽普县| 城固县| 抚顺县| 姜堰市| 宣恩县| 梁平县| 汤原县| 延安市| 平武县| 宁城县| 南投县| 岑巩县| 额尔古纳市| 玉树县| 盖州市| 绥滨县| 彩票| 乐都县| 敖汉旗| 高雄县| 沂南县| 寻甸| 岗巴县| 屏东市| 额济纳旗| 赣州市| 大埔区|