亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

在多處理器系統(tǒng)中快速加載和運(yùn)行程序映像的方法和系統(tǒng)的制作方法

文檔序號(hào):6611916閱讀:243來(lái)源:國(guó)知局

專(zhuān)利名稱(chēng)::在多處理器系統(tǒng)中快速加載和運(yùn)行程序映像的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體涉及Cell寬帶引擎體系結(jié)構(gòu)(CBEA,或非正式地稱(chēng)為"Cell"),更具體地涉及一種在CELL協(xié)處理器部件(CellSPE)中的快速加栽和運(yùn)行程序映像的方法和系統(tǒng)。
背景技術(shù)
:Cell寬帶引擎體系結(jié)構(gòu)定義了一種新的處理器結(jié)構(gòu),該處理器結(jié)構(gòu)基于64位的Power體系結(jié)構(gòu)技術(shù),但具有面向分布式處理和媒體豐富應(yīng)用的獨(dú)特功能。Cell寬帶引擎體系結(jié)構(gòu)定義了一種包含一個(gè)或多個(gè)Power處理器部件(PPE)和多個(gè)高性能的SIMD協(xié)處理器部件(SPE)的單芯片多處理器。IBM的用于Cell寬帶引擎(CellBE)的軟件開(kāi)發(fā)工具包(SDK)是一套使得開(kāi)發(fā)人員能夠獲得對(duì)這種革命性的CellBE處理器的第一手經(jīng)驗(yàn)的完整的工具包。該SKD包含開(kāi)發(fā)工具鏈(toolchain)、軟件庫(kù)和示例源代碼、一個(gè)系統(tǒng)模擬器、以及完全支持CdlBE的能力的Linux內(nèi)核。圖l為Cdl寬帶引擎的結(jié)構(gòu)框圖。如圖所示,Cdl寬帶引擎具有l(wèi)個(gè)PPE和8個(gè)SPE。該P(yáng)PE是64位的PowerPC體系結(jié)構(gòu)內(nèi)核。它完全遵循64位的PowerPC體系結(jié)構(gòu),并運(yùn)行32位和64位的操作系統(tǒng)和應(yīng)用。SPE是獨(dú)立的處理器,每個(gè)SPE運(yùn)行它自己?jiǎn)为?dú)的應(yīng)用程序。PPE和SPE通過(guò)部件互連總線(EIB)彼此通信,以及與主存儲(chǔ)器和I/O通信。圖2為PPE的結(jié)構(gòu)框圖。如圖所示,PPE包含兩個(gè)主要部件,Power處理器單元(PPU)和Power存儲(chǔ)器子系統(tǒng)(PPSS).圖3為SPE的結(jié)構(gòu)框圖。如圖所示,SPE包含兩個(gè)主要部件,協(xié)處理器單元(SPU)和存儲(chǔ)流控制器(MFC)。MFC包含一支持DMA傳送的DMA控制器。PPU通過(guò)在專(zhuān)用寄存器文件和主存儲(chǔ)器之間執(zhí)行的加栽和存儲(chǔ)指令來(lái)訪問(wèn)主存儲(chǔ)器。然而,SPU通過(guò)在主存儲(chǔ)器和用于存儲(chǔ)指令和數(shù)據(jù)的專(zhuān)用本地存儲(chǔ)器之間執(zhí)行的直接存儲(chǔ)器訪問(wèn)(DMA)命令來(lái)訪問(wèn)主存儲(chǔ)器。SPU的取指以及加載和存儲(chǔ)指令訪問(wèn)該專(zhuān)用本地存儲(chǔ)器,而不是共享的主存儲(chǔ)器。PPE和SPE通過(guò)由每個(gè)SPE的MFC所支持的三種主要通信機(jī)制來(lái)進(jìn)行通信,這三種通信機(jī)制是郵箱(ma他ox)、信號(hào)通知寄存器和DMA。郵箱是用于交換32位消息的隊(duì)列。提供了兩個(gè)郵箱用于從SPE向PPE發(fā)送消息,以及一個(gè)郵箱用于從PPE向SPE發(fā)送消息。信號(hào)通知寄存器用于由PPE向SPE發(fā)送信號(hào)通知。SPE的本地存儲(chǔ)器和主存儲(chǔ)器之間的DMA傳送即可以由該SPE的SPU發(fā)起,也可以由PPE或其他SPEJ^。每個(gè)SPU包含一個(gè)RISC內(nèi)核,以及用于指令和數(shù)據(jù)的由軟件控制的265KB的本地存儲(chǔ)器。SPU支持一特殊的SIMD指令集,并且依賴(lài)于異步DMA傳送來(lái)在主存儲(chǔ)器和其本秘儲(chǔ)器之間移動(dòng)數(shù)據(jù)和指令。PPE程序通過(guò)4吏用例如spejreate一thread調(diào)用在SPE上創(chuàng)建線程來(lái)啟動(dòng)SPE程序的運(yùn)行,該spe一create一thread調(diào)用將調(diào)用一SPU運(yùn)行時(shí)管理庫(kù)。該spe—createJhread調(diào)用4e^序映像加栽到SPE本地存儲(chǔ)器(LS),設(shè)置SPE環(huán)境,啟動(dòng)SPE程序,然后返回指向SPE的新線程ID的指針。這些過(guò)程具有很大的開(kāi)銷(xiāo)。下面示出了的spe—create—thread的偽碼示例speid一tspe—create—thread(spe_program—handlehandle)創(chuàng)建稱(chēng)為/spu/spe-xxx(xxx是唯一名稱(chēng))的目錄來(lái)代表將執(zhí)行由handle標(biāo)識(shí)的程序的SPE;創(chuàng)建文件/spu/spe-xxx/mem來(lái)代表SPE本i(M5"儲(chǔ)器;創(chuàng)建文件/spu/spe-xxx/mbox來(lái)代表到SPE的郵箱通道;創(chuàng)建文件/spu/spe-xxx/sigl來(lái)代表到SPE的信號(hào)通知通道1;創(chuàng)建文件/spu/spe-xxx/sig2來(lái)代表到SPE的信號(hào)通知通道2;將程序的內(nèi)容寫(xiě)入文件/spu/spe-xxx/mem;設(shè)置SPE的指令寄存器以指向程序的開(kāi)始;啟動(dòng)SPE,SPE將執(zhí)行該程序.在該示例spe一create一thread中,需要首先創(chuàng)建目錄,并在該目錄中創(chuàng)建一系列文件,然后通過(guò)將程序的內(nèi)容寫(xiě)入到文件/spu/spe-xxx/mem中而將程序映像加載到該SPE的本地存儲(chǔ)器中,設(shè)置該SPE的指令寄存器以指向程序映像的開(kāi)始,并啟動(dòng)該SPE,使其執(zhí)行該程序映像。顯然,該spe一create一thread是一個(gè)代價(jià)高昂的調(diào)用,PPE將花費(fèi)大量時(shí)間來(lái)設(shè)置程序的執(zhí)行環(huán)境。而另一方面,SPE僅具有256KB的本地存儲(chǔ)器,因此程序映像的大小不能超過(guò)256KB。開(kāi)發(fā)人員必須注意該大小限制。為此,開(kāi)發(fā)人員應(yīng)當(dāng)將大的程序劃分為單獨(dú)的片段;每個(gè)片段是一個(gè)獨(dú)立的SPE映《象。當(dāng)完成一個(gè)SPE映像的執(zhí)行后,SPE將被釋放,并等待下一次被調(diào)用。然后重復(fù)執(zhí)行以下過(guò)程1.PPU調(diào)用spe—create—thread來(lái)啟動(dòng)SPE的運(yùn)行;2.SPE運(yùn)行程序映像;3.當(dāng)運(yùn)行完畢后,釋放SPE??梢韵胂?,如果程序很大,則PPE需要頻繁調(diào)用spe—createjhread。開(kāi)銷(xiāo)將非常大。顯然,在本
技術(shù)領(lǐng)域
中存在著加速程序映像的加載和運(yùn)行的需要。
發(fā)明內(nèi)容根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于一種用于在多處理器系統(tǒng)中快速加栽和運(yùn)行程序映像的方法,該方法包括以下步驟在協(xié)處理器中啟動(dòng)一協(xié)處理程序監(jiān)控器,該協(xié)處理程序監(jiān)控器被配置為監(jiān)聽(tīng)來(lái)自主處理器的通知;在主處理器中調(diào)用一運(yùn)行協(xié)處理程序函數(shù),該運(yùn)行協(xié)處理程序函數(shù)被配置為通知所述協(xié)處理程序監(jiān)控器運(yùn)行作為程序映像的一部分的、且被傳送到協(xié)處理器的本地存儲(chǔ)器的協(xié)處理程序映象;以及所述協(xié)處理程序監(jiān)控器接收到所述通知后,運(yùn)行所述協(xié)處理程序映象。^L據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于在多處理器系統(tǒng)中快速加載和運(yùn)行程序映像的系統(tǒng),該系統(tǒng)包括在主處理器中運(yùn)行的主程序模塊,其被配置為在協(xié)處理器中啟動(dòng)一協(xié)處理程序監(jiān)控器;在協(xié)處理器中運(yùn)行的協(xié)處理程序監(jiān)控器,其被配置為監(jiān)聽(tīng)來(lái)自主處理器的通知;所述主程序模塊還被配置調(diào)用一運(yùn)行協(xié)處理程序函數(shù),該運(yùn)行協(xié)處理程序函數(shù)被配置為通知所述協(xié)處理程序監(jiān)控器運(yùn)行作為程序映像的一部分的、^L傳送到協(xié)處理器的本地存儲(chǔ)器的協(xié)處理程序映象;以及所述協(xié)處理程序監(jiān)控器還被配置為接收到所述通知后,運(yùn)行所述協(xié)處理程序映象。所附權(quán)利要求中闡述了被認(rèn)為是本發(fā)明的特點(diǎn)的新穎特征。但是,通過(guò)在結(jié)合附圖閱讀時(shí)參照下面對(duì)說(shuō)明性實(shí)施例的詳細(xì)說(shuō)明將最好地理解發(fā)明本身以及其優(yōu)選使用模式、另外的目標(biāo)、特征以及優(yōu)點(diǎn),在附圖中圖l為Cell寬帶引擎的結(jié)構(gòu)框圖2為PPE的結(jié)構(gòu)才匡圖3為SPE的結(jié)構(gòu)框圖4示出了根據(jù)本發(fā)明的實(shí)施例的用于在CELLSPE中快速加栽和運(yùn)行程序映像的方法;以及圖5示出了根據(jù)本發(fā)明的實(shí)施例的用于在CELLSPE中快速加栽和運(yùn)行程序映像的系統(tǒng)。具體實(shí)施例方式下面參照附圖描述本發(fā)明的實(shí)施例。然而,應(yīng)當(dāng)理解的是,本發(fā)明并不限于所介紹的特定實(shí)施例。相反,可以考慮用下面的特征和元素的任意組合來(lái)實(shí)施和實(shí)踐本發(fā)明,而無(wú)論它們是否涉及不同的實(shí)施例。因此,下面的方面、特征、實(shí)施例和優(yōu)點(diǎn)僅作說(shuō)明之用而不應(yīng)被看作是所附權(quán)利要求的要素或限定,除非權(quán)利要求中明確提出。在此說(shuō)明書(shū)內(nèi)對(duì)特征、優(yōu)點(diǎn)或類(lèi)似語(yǔ)言的提及并不是暗示可使用本發(fā)明實(shí)現(xiàn)的所有或某些特征和優(yōu)點(diǎn)在本發(fā)明的任何單個(gè)實(shí)施例內(nèi)。相反,涉及特征和優(yōu)點(diǎn)的語(yǔ)言應(yīng)被理解為僅意謂著與實(shí)施例相聯(lián)系地描述的特定特征、優(yōu)點(diǎn)和特性被包含在本發(fā)明的至少一個(gè)實(shí)施例內(nèi)。此外,本領(lǐng)域的技術(shù)人員可理解,以下描述中的才莫塊、函數(shù)、^It等的名稱(chēng)僅是為敘述方便,而不是對(duì)本發(fā)明的限制。本發(fā)明的基本思想是對(duì)于一個(gè)大的程序?qū)⒃赟PE上創(chuàng)建線程的函數(shù)例如spe一createj:hread的調(diào)用次數(shù)減少為一次來(lái)減少該調(diào)用的開(kāi)銷(xiāo),以<更提高性能。下面以包括針對(duì)CdlBE的64位PowerPCLinux⑧操作系統(tǒng)和標(biāo)準(zhǔn)的Lhmx工具集(帶有支持Cell寬帶引擎的Linux擴(kuò)展)以及Cdl寬帶引擎軟件開(kāi)發(fā)工具包(SDK)的開(kāi)發(fā)和運(yùn)行環(huán)境為例描述本發(fā)明。顯然,該開(kāi)發(fā)和運(yùn)行環(huán)境僅為示例,本領(lǐng)域的技術(shù)人員可根據(jù)以下描述將本發(fā)明應(yīng)用在針對(duì)Cell寬帶引擎體系結(jié)構(gòu)的任何其他開(kāi)發(fā)和運(yùn)行環(huán)境中。圖4示出了根據(jù)本發(fā)明的實(shí)施例的用于在CELLSPE中快速加載和運(yùn)M序映像的方法。如圖所示,該方法包括以下步驟。在主程序開(kāi)始在PPE中運(yùn)行之后,在步驟401,在SPE中啟動(dòng)一稱(chēng)為SPE程序監(jiān)控器的特殊的SPE程序??墒褂胹pe—create—thread函數(shù)調(diào)用來(lái)加載和運(yùn)行該SPE程序監(jiān)控器。spe_create_thread函數(shù)調(diào)用將把SPE程序監(jiān)控器的程序映^^主存儲(chǔ)器加栽到SPE的本*儲(chǔ)器,設(shè)置SPE環(huán)境,啟動(dòng)該SPE程序監(jiān)控器,并返回指向該SPU的新線程ID的指針。所述SPE程序監(jiān)控器在運(yùn)行中將持續(xù)監(jiān)聽(tīng)來(lái)自PPE的任何通知,以獲知PPE是否需要SPE運(yùn)行一SPE程序。SPE程序監(jiān)控器可通過(guò)讀取該SPE上的郵箱或信號(hào)通知寄存器來(lái)監(jiān)聽(tīng)來(lái)自PPE的通知。在本發(fā)明的一實(shí)施例中,該SPE程序監(jiān)控器僅占用400字節(jié)的存儲(chǔ)空間。在步驟402,在PPE中調(diào)用一運(yùn)行SPE程序函數(shù),該運(yùn)行SPE程序函數(shù)例如為PPE端庫(kù)函數(shù)run_spejplugin。該函數(shù)將把需要運(yùn)行的SPE程序映像從持久存儲(chǔ)器加載到主存儲(chǔ)器,并通過(guò)DMA將該SPE程序映像從主存儲(chǔ)器傳送到SPE的4^存儲(chǔ)器,然后通知SPE程序監(jiān)控器運(yùn)行該SPE程序映像?;蛘?,該SPE程序映像已在主程序開(kāi)始運(yùn)行時(shí)與主程序映像一起被從持久存儲(chǔ)器加栽到主存儲(chǔ)器中,這樣,所述運(yùn)行SPE程序函數(shù)僅需要通過(guò)DMA將該SPE程序映像從主存儲(chǔ)器傳送到SPE的本地存儲(chǔ)器,并通知SPE程序監(jiān)控器運(yùn)行該SPE映像。作為另一種選擇,所^行SPE程序函數(shù)也可以不負(fù)責(zé)通過(guò)DMA把SPE程序映像從主存儲(chǔ)器傳送到SPE的本地存儲(chǔ)器,而是通知SPE程序監(jiān)控器通過(guò)DMA把SPE程序映像從主存儲(chǔ)器傳送到SPE的本M儲(chǔ)器,并運(yùn)行該SPE程序映像。所述運(yùn)行SPE程序函數(shù)可通過(guò)在所述SPE的郵箱中寫(xiě)入消息來(lái)通知SPE程序監(jiān)控器運(yùn)行所述SPE程序映像,這樣所述SPE程序監(jiān)控器可通過(guò)在所述郵箱中讀取所述消息來(lái)接收到通知。作為另一種選擇,運(yùn)行SPE程序函數(shù)也可通過(guò)向SPE程序監(jiān)控器發(fā)送信號(hào)通知來(lái)通知其運(yùn)行所述SPE程序映像,這樣SPE程序監(jiān)控器可通過(guò)接收所述信號(hào)通知而獲得所述通知。在所述消息或信號(hào)通知中可包含該SPE程序映〗象的起始執(zhí)行地址。在步驟403,所述SPE程序監(jiān)控器接收到所述通知后,運(yùn)行所述SPE程序映像。在步驟404,當(dāng)所述SPE程序監(jiān)控器運(yùn)行所述SPE程序映像完畢以后,通知PPE。SPE程序監(jiān)控器可通過(guò)在該SPE的另一郵箱中寫(xiě)入消息來(lái)通知PPE該SPE程序已運(yùn)行完畢,這樣,在PPE中運(yùn)行的主程序可通過(guò)讀取該SPE郵箱中的消息來(lái)獲知該SPE程序已運(yùn)行完畢。在步驟405,當(dāng)在PPE上運(yùn)行的主程序接收到SPE程序已運(yùn)行完畢的通知后,判斷是否有需要運(yùn)行的另一SPE程序映像。如果有,則再次在PPE中調(diào)用所述運(yùn)行SPE程序函數(shù),以便重復(fù)上述過(guò)程,通過(guò)DMA將該另一SPE程序映像加栽到SPE的本M儲(chǔ)器,并由所述SPE程序監(jiān)控器運(yùn)行該另一SPE程序映《象。以上過(guò)程可繼續(xù)執(zhí)行下去,直到所有需要運(yùn)行的SPE程序都已運(yùn)行完畢。這樣,當(dāng)PPE上的主程序判斷已沒(méi)有需要運(yùn)行的SPE程序后,在步驟406,它可通過(guò)在所述SPE的郵箱中寫(xiě)入消息或通過(guò)信號(hào)通知的方式通知所述SPE程序監(jiān)控器退出運(yùn)行。并且,在步驟407,SPE程序監(jiān)控器在接收到所述通知后,可退出運(yùn)行。然后,在PPE上運(yùn)行的主程序可繼續(xù)運(yùn)行,直到結(jié)束。以上描述了根據(jù)本發(fā)明的實(shí)施例的用于在CELLSPE中快速加栽和運(yùn)行程序映像的方法的各步驟,應(yīng)注意的是,所描述的各步驟僅為示例,而不是對(duì)本發(fā)明的方法的限制。本發(fā)明的方法可具有更多、更不或不同的步下面給出以上過(guò)程所涉及到的函數(shù)或步驟的偽碼示例。應(yīng)注意的是,這些偽碼示例僅例示了本發(fā)明的示例實(shí)施方式,而不是對(duì)本發(fā)明的限制。上述啟動(dòng)SPE程序監(jiān)控器的步驟的偽碼示例為intstart_pluginlistener(spe_program—handlehandle)調(diào)用callspe_create_thread以運(yùn)行由handle標(biāo)識(shí)的一特殊的SPE程序pluginlistener;返回表示執(zhí)行該pluginjistener程序的SPE的標(biāo)識(shí)符.上述運(yùn)行SPE程序函數(shù)的偽碼示例為intrun_plugin(intid,spe_program—handleplugin)〃id指定SPE從指定的SPE的郵箱讀取消息,直到該消息為IDLE一MESSAGE;使用DMA將程序內(nèi)容^tASPE的本M儲(chǔ)器;獲得程序的起始地址,填充EXECUTE—MESSAGE;將EXECUTE—MESSAGE寫(xiě)入SPE的郵箱.上述通知SPE程序監(jiān)控器退出運(yùn)行的步驟的偽碼示例為intstop_pluginlistener(intid)將EXIT—MESSAGE寫(xiě)入SPE的郵箱上述在SPE端(協(xié)處理器)執(zhí)行的SPE程序監(jiān)控器plugin—listener的偽碼示例為intmaiiiOloop:從郵箱讀取消息;if消息是EXIT—MESSAGEexitelseif消息是EXECUTE—MESSAGE獲得程序的起始地址;使用間接調(diào)用指令開(kāi)始M始處執(zhí)^^序;將IDLE_MESSAGE寫(xiě)入郵箱,i!4明SPE已執(zhí)行完畢該程序;gotoloopPPE和SPE—次可以向郵箱寫(xiě)一個(gè)32位的整數(shù),可指定以下三種消息左邊的方框表示高16位,右邊的方框表示低16位。EXIT_MESSAGE和IDLE—MESSAGE的高16位都為0。EXECUTE—MESSAGE的高16位表示程序的起始執(zhí)行地址。<table>tableseeoriginaldocumentpage13</column></row><table>下面參照?qǐng)D5描述根據(jù)本發(fā)明的實(shí)施例的用于在CELLSPE中快速加栽和運(yùn)行程序映像的系統(tǒng)。如圖所示,該系統(tǒng)包括在PPE中運(yùn)行的主程序模塊501以及在SPE中運(yùn)行的SPE程序監(jiān)控器502。其中,所述主程序模塊501被配置為在SPE中啟動(dòng)所述SPE程序監(jiān)控器502。例如,所述主程序模塊501可通過(guò)調(diào)用一staitj)luginjistener函數(shù)來(lái)啟動(dòng)所述SPE程序監(jiān)控器502。所述start_plugin_listener函數(shù)調(diào)用spe—create_thread函數(shù),并返回代表運(yùn)行該SPE程序監(jiān)控器502的SPE的標(biāo)識(shí)。所述spe_create_thread函數(shù)i殳置SPE的環(huán)境,啟動(dòng)一新的線程來(lái)運(yùn)行該SPE程序監(jiān)控器502,并返回指向該SPE的線程ID的指針。所述SPE程序監(jiān)控器502被配置為監(jiān)聽(tīng)來(lái)自PPE的通知。例如,所述SPE程序監(jiān)控器502可通過(guò)讀取SPE的信郵箱或信號(hào)通知寄存器來(lái)獲得通知。所迷主程序模塊501還被配置調(diào)用一運(yùn)行SPE程序函數(shù)例如run_spe_pluggm,該運(yùn)行SPE程序函數(shù)被配置為通知所述SPE程序監(jiān)控器502運(yùn)行作為程序映像的一部分的、且已通過(guò)DMA被傳送到SPE的本地存儲(chǔ)器的SPE程序映4象。并且,所述SPE程序監(jiān)控器502還纟皮配置為接收到所述通知后,運(yùn)行所述SPE程序映像。所述運(yùn)行SPE程序函數(shù)還可以被配置為將SPE程序映M持久存儲(chǔ)器加栽到主存儲(chǔ)器。當(dāng)然,也可由主程序模塊501在主程序開(kāi)始執(zhí)行時(shí),將主程序的映像連同SPE程序映像一起從持久存儲(chǔ)器加載到主存儲(chǔ)器中。在本發(fā)明的一個(gè)實(shí)施例中,所述運(yùn)行SPE程序函數(shù)被配置為通過(guò)DMA將所述SPE程序映像傳送到所述SPE的本地存儲(chǔ)器,并通知所述SPE程序監(jiān)控器502運(yùn)行該SPE程序映像。并且所述SPE程序監(jiān)控器502被配置為接收到來(lái)自運(yùn)行SPE程序函數(shù)501的通知后,運(yùn)行該SPE程序映像。在本發(fā)明的另一個(gè)實(shí)施例中,該運(yùn)行SPE程序函數(shù)僅通知所述SPE程序監(jiān)控器502加栽并運(yùn)行SPE程序映像。并且所述SPE程序監(jiān)控器502被配置為在接收到來(lái)自所述運(yùn)行SPE程序函數(shù)的通知后,通過(guò)DMA將所述SPE程序映像傳送到所述SPE的本地存儲(chǔ)器,并接著執(zhí)行該SPE程序映像。所述運(yùn)行SPE程序函數(shù)可被配置為通過(guò)在SPE的郵箱中寫(xiě)入消息來(lái)通知所述SPE程序監(jiān)控器502運(yùn)行SPE程序映像,且可在該消息中嵌入執(zhí)行該SPE程序映像的起始地址。而所述SPE程序監(jiān)控器502可通過(guò)讀取所述郵箱中的消息來(lái)獲得通知。作為另一種選擇,所述運(yùn)行SPE程序函數(shù)也可被配置為通過(guò)在SPE的信號(hào)通知寄存器中寫(xiě)入消息來(lái)通知所述SPE程序監(jiān)控器502運(yùn)行SPE程序映像,且所述SPE程序監(jiān)控器502可通過(guò)讀取該信號(hào)通知寄存器中的消息來(lái)獲得通知。所述SPE程序監(jiān)控器502還被配置為當(dāng)運(yùn)行所述SPE程序映像完畢以后,通知所述主程序模塊501。所述SPE程序監(jiān)控器502可通it^SPE的另一郵箱中寫(xiě)入另一消息來(lái)通知所述主程序模塊。并且,所述主程序模塊501還被配置為當(dāng)其例如通過(guò)讀取所述郵箱中的消息接收到所述通知后,判斷是否有需要運(yùn)行的另一SPE程序映像;如果該判斷為是,則再次在PPE中調(diào)用所述運(yùn)行SPE程序函數(shù),以便通知所述SPE程序監(jiān)控器502運(yùn)行已通過(guò)DMA傳送到所述SPE的本地存儲(chǔ)器的另一SPE程序映像。此外,所述SPE程序監(jiān)控器502還被配置為當(dāng)接收到所述通知后,運(yùn)行該另一SPE程序映像。所述主程序模塊501還被配置為在已運(yùn)行完所有SPE程序之后在PPE中通知所述SPE程序監(jiān)控器502退出運(yùn)行;并且所述SPE程序監(jiān)控器還被配置為接收到所述退出運(yùn)行的通知后,退出運(yùn)行,從而在PPE中釋放所述SPE。所述主程序模塊501可通過(guò)在郵箱中寫(xiě)入另一消息來(lái)通知所述SPE程序監(jiān)控器502退出運(yùn)行,且所述SPE程序監(jiān)控器502可通過(guò)讀取所述郵箱中的消息來(lái)獲得退出運(yùn)行的通知。所述主程序模塊501也可通過(guò)在信號(hào)通知寄存器中寫(xiě)入另一消息來(lái)通知所述SPE程序監(jiān)控器502退出運(yùn)行,且所述SPE程序監(jiān)控器502可通過(guò)讀取所述信號(hào)通知寄存器中的所述消息來(lái)獲得退出運(yùn)行的通知。以上描述了根據(jù)本發(fā)明的實(shí)施例的用于在CELLSPE中快速加栽和運(yùn)行程序映像的系統(tǒng),應(yīng)注意的是,所描述的該系統(tǒng)僅為示例,而不是對(duì)本發(fā)明的限制。本發(fā)明的系統(tǒng)可具有更多、更少或不同的模塊,且各模塊之間的包含關(guān)系和連接關(guān)系可以不同。此外,各模塊的名稱(chēng)僅是為了敘述的方便,而不是暗示著本發(fā)明的任何限制。例如,所述主程序模塊501的上述功能也可以由一控制模塊來(lái)完成,且該控制模塊可包含用于在一SPE中啟動(dòng)所述SPE程序監(jiān)控器的模塊、用于在SPE中運(yùn)行SPE程序的模塊、用于使所述SPE程序監(jiān)控器退出運(yùn)行的模塊,等等。所述這些變化均處于本發(fā)明的精神和范圍之內(nèi)。與使用SPE運(yùn)行時(shí)管理庫(kù)相比,使用本發(fā)明的方法所獲得的性能提高正比于所述運(yùn)行SPE程序函數(shù)的調(diào)用次數(shù)。一項(xiàng)測(cè)試表明,調(diào)用run_spe_plugin4000次的開(kāi)銷(xiāo)相當(dāng)于調(diào)用spe—create—thread100次的開(kāi)銷(xiāo)。下表列出了測(cè)試結(jié)果。對(duì)于同一個(gè)程序,假i殳其應(yīng)被加載到SPE中1000次;M:行。<table>tableseeoriginaldocumentpage16</column></row><table>應(yīng)指出的是,盡管以上參照Cell寬帶引擎體系結(jié)構(gòu)描述了本發(fā)明,但本發(fā)明并非局限于Cell寬帶引擎體系結(jié)構(gòu),而是可應(yīng)用于其他多處理器體系結(jié)構(gòu),例如所謂的非一致存儲(chǔ)器體系結(jié)構(gòu)(NUMA)。因此,本發(fā)明還提供了一種用于在多處理器系統(tǒng)中快速加栽和運(yùn)刊艱序映像的方法,該包括以下步驟在協(xié)處理器中啟動(dòng)一協(xié)處理程序監(jiān)控器,該協(xié)處理程序監(jiān)控器被配置為監(jiān)聽(tīng)來(lái)自主處理器的通知;在主處理器中調(diào)用一運(yùn)行協(xié)處理程序函數(shù),該運(yùn)行協(xié)處理程序函數(shù)被配置為通知所述協(xié)處理程序監(jiān)控器運(yùn)行作為程序映像的一部分的、且被傳送到協(xié)處理器的本地存儲(chǔ)器的協(xié)處理程序映象;以及所述協(xié)處理程序監(jiān)控器接收到所述通知后,運(yùn)行所述協(xié)處理程序映象。此外,本發(fā)明還提供了一種用于在多處理器系統(tǒng)中快速加栽和運(yùn)行程序映像的系統(tǒng),該系統(tǒng)包括在主處理器中運(yùn)行的主程序模塊,其被配置為在協(xié)處理器中啟動(dòng)一協(xié)處理程序監(jiān)控器;在協(xié)處理器中運(yùn)行的協(xié)處理程序監(jiān)控器,其被配置為監(jiān)聽(tīng)來(lái)自主處理器的通知;所述主程序模塊還被配置調(diào)用一運(yùn)行協(xié)處理程序函數(shù),該運(yùn)行協(xié)處理程序函數(shù)被配置為通知所述協(xié)處理程序監(jiān)控器運(yùn)行作為程序映像的一部分的、且已被傳送到協(xié)處理器的本地存儲(chǔ)器的協(xié)處理程序映象;以及所述協(xié)處理程序監(jiān)控器還被配置為接收到所述通知后,運(yùn)行所述協(xié)處理程序映象。本發(fā)明可以用軟件、固件、硬件或者其結(jié)合實(shí)現(xiàn)。軟件與硬件的典型結(jié)合可以為具有計(jì)算;l^序的計(jì)算機(jī)系統(tǒng),該程序在被裝栽和執(zhí)行時(shí)對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行控制,使得該計(jì)算機(jī)系統(tǒng)執(zhí)行這里所介紹的方法,并形成構(gòu)成本發(fā)明的系統(tǒng)的各功能模塊。本發(fā)明還可嵌入在計(jì)算機(jī)程序產(chǎn)品中,該產(chǎn)品包括使這里介紹的方法得以實(shí)現(xiàn)的所有特征,且當(dāng)該產(chǎn)品在g栽在計(jì)算機(jī)系統(tǒng)上時(shí)能夠執(zhí)行這些方法。盡管已參照優(yōu)選實(shí)施例具體示出和說(shuō)明了本發(fā)明,但是本領(lǐng)域內(nèi)的那些技術(shù)人員應(yīng)理解,可在形式和細(xì)節(jié)上對(duì)其進(jìn)行各種改變而不會(huì)背離本發(fā)明的精神和范圍。權(quán)利要求1.一種用于在多處理器系統(tǒng)中快速加載和運(yùn)行程序映像的方法,包括以下步驟在協(xié)處理器中啟動(dòng)一協(xié)處理程序監(jiān)控器,該協(xié)處理程序監(jiān)控器被配置為監(jiān)聽(tīng)來(lái)自主處理器的通知;在主處理器中調(diào)用一運(yùn)行協(xié)處理程序函數(shù),該運(yùn)行協(xié)處理程序函數(shù)被配置為通知所述協(xié)處理程序監(jiān)控器運(yùn)行作為程序映像的一部分的、且被傳送到協(xié)處理器的本地存儲(chǔ)器的協(xié)處理程序映象;以及響應(yīng)于所述通知,所述協(xié)處理程序監(jiān)控器運(yùn)行所述協(xié)處理程序映象。2.根據(jù)權(quán)利要求l的方法,其中,所述多處理器系統(tǒng)為CELL寬帶引擎,所述主處理器為CellPPE,所述協(xié)處理器為CellSPE,所述協(xié)處理程序監(jiān)控器為SPE程序監(jiān)控器,所述運(yùn)行協(xié)處理程序函數(shù)為運(yùn)行SPE程序函數(shù),所述協(xié)處理程序映象為SPE程序映像,且所述SPE程序映像是通過(guò)DMA被傳送到所述SPE的本地存儲(chǔ)器的。3.根據(jù)權(quán)利要求2的方法,其中所述SPE程序映像是由所述運(yùn)行SPE程序函數(shù)通過(guò)DMA傳送到所述SPE的本地存儲(chǔ)器的.4.根據(jù)權(quán)利要求2的方法,其中所述SPE程序映像是由所述SPE程序監(jiān)控器在接收到來(lái)自所述運(yùn)行SPE程序函數(shù)的通知后,通過(guò)DMA傳送到所述SPE的本地存儲(chǔ)器的。5.根據(jù)權(quán)利要求2的方法,還包括以下步驟當(dāng)所述SPE程序監(jiān)控器運(yùn)行所述SPE程序映像完畢以后,通知所述PPE;以及當(dāng)所述PPE接收到所述通知后,判斷是否有需要運(yùn)行的另一SPE程序映Y象;如果該判斷為是,則再次在PPE中調(diào)用所述運(yùn)行SPE程序函數(shù),以便通知所述SPE程序監(jiān)控器運(yùn)行該另一SPE程序映像;以及所迷SPE程序監(jiān)控器接收到所述通知后,運(yùn)行該另一SPE程序映像。6.根據(jù)權(quán)利要求2的方法,還包括以下步驟在PPE中通知所述SPE程序監(jiān)控器退出運(yùn)行;所述SPE程序監(jiān)控器接收到所述退出運(yùn)行的通知后,退出運(yùn)行,并釋放SPE資源。7.根據(jù)權(quán)利要求2的方法,其中所述通知SPE程序監(jiān)控器運(yùn)行所述SPE程序映像是通過(guò)在所述SPE的郵箱中寫(xiě)入消息進(jìn)行的,且所述SPE程序監(jiān)控器接收到所述通知是通過(guò)在所述郵箱中讀取所述消息進(jìn)行的。8.根據(jù)權(quán)利要求2的方法,其中所述通知所述SPE程序監(jiān)控器運(yùn)行所述SPE程序映像是通過(guò)向所述SPE發(fā)送信號(hào)通知進(jìn)行的,且所述SPE程序監(jiān)控器接收到所述通知是通過(guò)接收所述信號(hào)通知進(jìn)行的。9.根據(jù)權(quán)利要求5的方法,其中所迷當(dāng)SPE程序監(jiān)控器運(yùn)行所述SPE程序完成以后通知所述PPE是通過(guò)在所述SPE的郵箱中寫(xiě)入消息完成的,且所述PPE接收到所述通知是通過(guò)在所述SPE中的郵箱中讀取所述消息完成的.10.—種用于在多處理器系統(tǒng)中快速加載和運(yùn)行程序映像的系統(tǒng),包括在主處理器中運(yùn)行的主程序模塊,其被配置為在協(xié)處理器中啟動(dòng)一協(xié)處理程序監(jiān)控器;在協(xié)處理器中運(yùn)行的協(xié)處理程序監(jiān)控器,其被配置為監(jiān)聽(tīng)來(lái)自主處理器的通知;所述主程序模塊還被配置調(diào)用一運(yùn)行協(xié)處理程序函數(shù),該運(yùn)行協(xié)處理程序函數(shù)被配置為通知所述協(xié)處理程序監(jiān)控器運(yùn)行作為程序映像的一部分的、被傳送到協(xié)處理器的本地存儲(chǔ)器的協(xié)處理程序映象;以及所述協(xié)處理程序監(jiān)控器還被配置為響應(yīng)于所述通知,運(yùn)行所述協(xié)處理程序映象。11.根據(jù)權(quán)利要求10的系統(tǒng),其中所述多處理器系統(tǒng)為CELL寬帶引擎,所述主處理器為CellPPE,所述協(xié)處理器為CellSPE,所述協(xié)處理程序監(jiān)控器為SPE程序監(jiān)控器,所述運(yùn)行協(xié)處理程序函數(shù)為運(yùn)行SPE程序函數(shù),所述協(xié)處理程序映象為SPE程序映像,且所述SPE程序映像是通過(guò)DMA被傳送到所述SPE的本地存儲(chǔ)器的。12.根據(jù)權(quán)利要求11的系統(tǒng),其中所述運(yùn)行SPE程序函數(shù)還被配置為通過(guò)DMA將所述SPE程序映像傳送到所述SPE的本地存儲(chǔ)器。13.根據(jù)權(quán)利要求11的系統(tǒng),其中所述SPE程序監(jiān)控器還被配置為在接收到來(lái)自所述運(yùn)行SPE程序函數(shù)的通知后,通過(guò)DMA將所述SPE程序映像傳送到所述SPE的本地存儲(chǔ)器。14.根據(jù)權(quán)利要求11的系統(tǒng),其中,所述SPE程序監(jiān)控器還被配置為當(dāng)運(yùn)行所述SPE程序映像完成以后,通知所述主程序模塊;以及所述主程序模塊還被配置為當(dāng)其接收到所述通知后,判斷是否有需要運(yùn)行的另一SPE程序映像;如果該判斷為是,則再次在PPE中調(diào)用所迷運(yùn)行SPE程序函數(shù),以便通知所述SPE程序監(jiān)控器運(yùn)行該另一SPE程序映像;以及所述SPE程序監(jiān)控器還被配置為當(dāng)接收到所述通知后,運(yùn)行該另一SPE程序映像。15.根據(jù)權(quán)利要求11的系統(tǒng),其中,所述主程序模塊還被配置為在PPE中通知所述SPE程序監(jiān)控器退出運(yùn)行;以及所述SPE程序監(jiān)控器還被配置為接收到所述退出運(yùn)行的通知后,退出運(yùn)行。16.根據(jù)權(quán)利要求11的系統(tǒng),其中所述運(yùn)行SPE程序函數(shù)被配置為通過(guò)在所述SPE的郵箱中寫(xiě)入消息來(lái)通知所述SPE程序監(jiān)控器運(yùn)行所述SPE程序映像,且所述運(yùn)行SPE程序監(jiān)控器被配置為通過(guò)在所述郵箱中讀取所述消息而接收到所述通知。17.根據(jù)權(quán)利要求11的系統(tǒng),其中所述運(yùn)行SPE程序函數(shù)被配置為通過(guò)向所述SPE發(fā)送信號(hào)通知來(lái)通知所述SPE程序監(jiān)控器運(yùn)行所述SPE程序映像,且所述SPE程序監(jiān)控器通過(guò)接收所述信號(hào)通知而接收到所述通知。18.根據(jù)權(quán)利要求14的系統(tǒng),其中所述SPE程序監(jiān)控器被配置為當(dāng)其運(yùn)行所述SPE程序映像完畢以后通過(guò)在所述SPE的郵箱中寫(xiě)入消息來(lái)通知所述PPE上的主程序模塊,且所述PPE上的主程序模塊通過(guò)在所述SPE中的郵箱中讀取所述消息來(lái)獲得所述通知。全文摘要本發(fā)明提供了一種用于在多處理器系統(tǒng)中快速加載和運(yùn)行程序映像的方法和系統(tǒng),所述方法包括以下步驟在協(xié)處理器中啟動(dòng)一協(xié)處理程序監(jiān)控器,該協(xié)處理程序監(jiān)控器被配置為監(jiān)聽(tīng)來(lái)自主處理器的通知;在主處理器中調(diào)用一運(yùn)行協(xié)處理程序函數(shù),該運(yùn)行協(xié)處理程序函數(shù)被配置為通知所述協(xié)處理程序監(jiān)控器運(yùn)行作為程序映像的一部分的、且被傳送到協(xié)處理器的本地存儲(chǔ)器的協(xié)處理程序映象;以及所述協(xié)處理程序監(jiān)控器接收到所述通知后,運(yùn)行所述協(xié)處理程序映象。文檔編號(hào)G06F9/445GK101373434SQ200710146588公開(kāi)日2009年2月25日申請(qǐng)日期2007年8月22日優(yōu)先權(quán)日2007年8月22日發(fā)明者媛李,汪文俊,劍陳,黃秀華申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1