最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

用于對硬件加速器進行運行時功能分配的方法和設備的制作方法

文檔序號:6438416閱讀:251來源:國知局
專利名稱:用于對硬件加速器進行運行時功能分配的方法和設備的制作方法
用于對硬件加速器進行運行時功能分配的方法和設備技術領域
本公開一般地涉及計算機系統(tǒng),并且更具體地涉及在計算機系統(tǒng)中使用硬件加速器背景技術
已經(jīng)開發(fā)了各種類型的硬件加速器來加速計算機系統(tǒng)中某些功能的執(zhí)行。例如, 圖形加速器在本領域是公知的,并且允許圖形功能從處理器卸載到專用硬件加速器,所述專用硬件加速器能夠在比所述處理器少得多的時間內(nèi)執(zhí)行這些圖形功能。浮點處理器是另一類型的硬件加速器,其允許處理器卸載浮點運算。更近來的發(fā)展已經(jīng)產(chǎn)生了其他類型的硬件加速器,包括用于處理可擴展標記語言(XML)的加速器、用于執(zhí)行壓縮和解壓縮的加速器,以及用于執(zhí)行加密和解密的加速器。如這里所使用的那樣,術語“硬件加速器”擴展到處理器可以把功能分配給其執(zhí)行的任何硬件。
在現(xiàn)有技術中,要求程序員了解硬件加速器將存在于系統(tǒng)中,并且然后將在代碼中決定哪些功能分配給該硬件加速器。參考圖2,現(xiàn)有技術方法200示出了這樣的方法。程序員編寫計算機程序(步驟210)。程序員決定哪些功能分配給硬件加速器(步驟220)。然后,程序員編寫代碼把功能分配給硬件加速器(步驟230)。因此,在現(xiàn)有技術中,關于什么功能由硬件加速器執(zhí)行的所有決策由人類程序員在該程序員編寫代碼時做出。結果就是代碼不靈活且不能充分利用硬件加速器。缺少動態(tài)地在運行時確定分配給硬件加速器的功能的方法,具有硬件加速器的計算機系統(tǒng)的性能將不會被優(yōu)化。發(fā)明內(nèi)容
一種加速器工作分配機制在運行時基于定義的加速器策略并基于在運行時執(zhí)行的分析來確定哪些功能分配給硬件加速器。該分析包括讀取加速器策略,并確定特定功能是否滿足該加速器策略。如果是,則該功能被分配給硬件加速器。否則,該功能被分配給處理器。
如附圖中所示,從下面更具體的描述,前述以及其他特征和益處將會清晰。


將結合附圖描述本公開,其中相同的指示代表相同的元素,并且
圖1是包括硬件加速器和在運行時確定計算機程序中的哪些功能分配給硬件加速器的加速器工作分配機制的設備的框圖2是用于在編程時確定計算機程序中的哪些功能被分配給硬件加速器的現(xiàn)有技術方法的流程圖3是用于在運行時把計算機程序中的功能分配給硬件加速器的流程圖4是第一樣本加速器策略的表;
圖5是第二樣本加速器策略的表;
圖6是用于基于估計的執(zhí)行時間把功能分配給硬件加速器的方法的流程圖7是用于在計算機程序運行時收集簡檔(profile)數(shù)據(jù)的方法的流程圖8是示出在處理器上某些功能的執(zhí)行時間的表;
圖9是示出在硬件加速器上某些功能的執(zhí)行時間的表;
圖10是示出取決于被功能操作的數(shù)據(jù)的大小,處理器上的某些功能在處理器上的執(zhí)行時間的表;
圖11是示出取決于被功能操作的數(shù)據(jù)的大小,處理器上的某些功能在硬件加速器上的執(zhí)行時間的表;和
圖12是可用來確定什么功能在運行時分配給硬件加速器的簡檔數(shù)據(jù)的樣本日志 (log)。具體實施例
這里的權利要求和公開提供了一種在運行時確定計算機程序中的哪些功能分配給硬件加速器的加速器工作分配機制。分析包括讀取加速器策略,并確定特定功能是否滿足該加速器策略。如果是,則該功能被分配給硬件加速器。否則,該功能被分配給處理器。
參考圖1,計算機系統(tǒng)100是包括硬件加速器和加速器工作分配機制的計算機系統(tǒng)的一個合適的實施方案。計算機系統(tǒng)100是IBM eServer System i計算機系統(tǒng)。但是,本領域技術人員將會理解這里的公開同樣地適用于任何計算機系統(tǒng),無論該計算機系統(tǒng)是復雜的多用戶計算設備、單用戶工作站還是嵌入式控制系統(tǒng)。如圖1中所示,計算機系統(tǒng)100 包含一個或更多個處理器110、硬件加速器112、主存儲器120、大容量存儲器接口 130、顯示器接口 140和網(wǎng)絡接口 150。這些系統(tǒng)部件通過使用系統(tǒng)總線160互連。大容量存儲器接口 130用來把例如直接存取存儲裝置155的大容量存儲裝置連接到計算機系統(tǒng)100。直接存取存儲裝置155的一種具體類型是可讀可寫CD-RW驅動器,其可以把數(shù)據(jù)存儲到CD-RW 195并從其讀取數(shù)據(jù)。
主存儲器120優(yōu)選地包含數(shù)據(jù)121、操作系統(tǒng)122、計算機程序123和加速器工作分配機制124。數(shù)據(jù)121代表起到計算機系統(tǒng)100中的任何程序的輸入或者輸出的作用的任何數(shù)據(jù)。操作系統(tǒng)122是多任務操作系統(tǒng)。計算機程序123代表可以具有能被分配給硬件加速器112的功能的任何計算機程序。加速器工作分配機制1 在運行時確定計算機程序123中的哪些功能分配給硬件加速器112。加速器工作分配機制IM包括加速器策略 125、代碼儀表化(code instrumentation)機制1 和運行時分析機制127。加速器策略 125規(guī)定了確定計算機程序123中的功能何時被分配給硬件加速器112的標準。代碼儀表化機制1 把稱作鉤子(hook)的指令插入計算機程序123以便可以收集運行時數(shù)據(jù)。然后這個運行時數(shù)據(jù)可被加速器工作分配機制1 用于確定何時將計算機程序123中的功能分配給硬件加速器112。運行時分析機制127在運行時執(zhí)行分析,其允許加速器工作分配機制1 確定何時將計算機程序123中的功能分配給硬件加速器112。運行時分析機制127 包括屬性分析機制128,屬性分析機制1 分析功能的屬性以便在確定功能是否被分配給硬件加速器112時可以把屬性納入考慮。被屬性分析機制1 分析的屬性可以包括例如當功能被調用時傳遞的參數(shù)。屬性分析機制可以納入考慮的屬性的一個恰當?shù)睦邮潜还δ懿僮鞯臄?shù)據(jù)的大小。CN 102541657 A
計算機系統(tǒng)100采用公知的虛擬尋址機制,該機制允許計算機系統(tǒng)100的程序表現(xiàn)得如同其只訪問大的單個存儲實體而非訪問多個較小的存儲實體例如主存儲器120和 DASD設備155。因此,雖然數(shù)據(jù)121、操作系統(tǒng)122、計算機程序123和加速器工作分配機制 1 被示出為駐留在主存儲器120中,本領域技術人員將認識到這些項目不一定全都同時完全被包含在主存儲器120中。也應該注意術語“存儲器”在這里用來一般性地指示計算機系統(tǒng)100的整個虛擬存儲器,并且可以包括耦合到計算機系統(tǒng)100的其他計算機系統(tǒng)的虛擬存儲器。
處理器110可以從一個或更多個微處理器和/或集成電路構造。處理器110執(zhí)行存儲在主存儲器120中的程序指令。主存儲器120存儲處理器110可以訪問的程序和數(shù)據(jù)。 當計算機系統(tǒng)100啟動時,處理器110首先執(zhí)行組成操作系統(tǒng)122的程序指令。處理器110 也執(zhí)行計算機程序123和加速器工作分配機制124。
盡管計算機系統(tǒng)100被示出為只包含單個處理器和單個系統(tǒng)總線,但是本領域技術人員將理解可以使用具有多個處理器和/或多個總線的計算機系統(tǒng)來實施加速器工作分配機制。此外,所使用的接口優(yōu)選地均包括單獨的、完全編程的用來從處理器110卸載計算密集處理的微處理器。但是,本領域技術人員將理解這些功能也可以使用I/O適配器執(zhí)行。
顯示器接口 140用來直接把一個或更多個顯示器165連接到計算機系統(tǒng)100。這些顯示器165可以是非智能終端(即啞終端)或者全可編程工作站,它們被用來給系統(tǒng)管理員和用戶提供與計算機系統(tǒng)100通信的能力。但是注意,雖然提供了顯示器接口 140來支持與一個或更多個顯示器165的通信,但是計算機系統(tǒng)100不一定需要顯示器165,因為所有需要的與用戶和其他處理的交互作用可以通過網(wǎng)絡接口 150發(fā)生。
網(wǎng)絡接口 150用來通過網(wǎng)絡170把計算機系統(tǒng)100連接到其他計算機系統(tǒng)或者工作站175。網(wǎng)絡接口 150廣泛地代表任何適當?shù)幕ミB電子裝置的方法,無論網(wǎng)絡170是包含當前的模擬和/或數(shù)字技術還是通過未來的某種聯(lián)網(wǎng)機制。網(wǎng)絡接口 150優(yōu)選地包括允許在網(wǎng)絡170上通信的硬件和軟件的組合。網(wǎng)絡接口 150中的軟件優(yōu)選地包括通信管理器,其使用合適的網(wǎng)絡協(xié)議管理通過網(wǎng)絡170與其他計算機系統(tǒng)175的通信??梢允褂煤芏嗖煌木W(wǎng)絡協(xié)議來實施網(wǎng)絡。這些協(xié)議是專用的計算機程序,其允許計算機跨網(wǎng)絡通信。TCP/ IP (傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)是可被網(wǎng)絡接口 150內(nèi)的通信管理器使用的適當網(wǎng)絡協(xié)議的例子。
本領域技術人員將理解,本發(fā)明的各方面可以被具體實施為系統(tǒng)、方法或者計算機程序產(chǎn)品。因此,本發(fā)明的方面可能具有完全硬件實施例的形式、完全軟件實施例(包括固件、駐留軟件、微碼,等等)的形式,或者把軟件和硬件方面組合的實施例的形式,它們?nèi)伎梢栽谶@里被一般性地稱為“電路”、“模塊”或者“系統(tǒng)”。此外,本發(fā)明的方面可以具有具體實施在一個或更多個其上具體實施了計算機可讀程序代碼的計算機可讀介質中的計算機程序產(chǎn)品的形式。
可以采用一個或更多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質可以是例如但不限于電子、磁性、光學、電磁、紅外或者半導體系統(tǒng)、設備或者裝置,或者前述的任意適當組合。計算機可讀存儲介質的更具體的例子(非窮舉列表)將包括以下具有一個或更多個電線的電氣連接、便攜式計算機盤、硬盤、隨機訪問存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或者快閃存儲器)、光纖、便攜式緊制只讀盤存儲器(CD-ROM)、光學存儲裝置、磁性存儲裝置或者前述的任意適當組合。在本文檔的上下文中,計算機可讀存儲介質可以是任何有形介質,其能夠包含或者存儲供指令執(zhí)行系統(tǒng)、設備或者裝置使用或者與其結合使用的程序。
計算機可讀信號介質可以包括傳播數(shù)據(jù)信號,計算機可讀程序代碼具體實施于其中,例如在基帶中或者作為載波的一部分。這樣的傳播信號可以具有各種形式中的任一種, 包括但不限于電磁、光學或者其任意的適當組合。計算機可讀信號介質可以是任何并非計算機可讀存儲介質并且能夠傳遞、傳播或者傳輸供指令執(zhí)行系統(tǒng)、設備或者裝置使用或者與其結合使用的程序的計算機可讀存儲介質。
可以使用任何適當介質傳送具體實施在計算機可讀介質上的程序代碼,包括但不限于無線、有線、光纜、RF等,或者前述的任意適當組合。
用于執(zhí)行本發(fā)明方面的操作的計算機程序代碼可以用一個或更多個編程語言的任意組合編寫,編程語言包括例如Java、Smalltalk, C++等的面向對象編程語言以及例如 “C”編程語言的常規(guī)過程編程語言或者類似的編程語言。程序代碼可以完全在用戶的計算機上執(zhí)行、部分在用戶的計算機上執(zhí)行、作為單獨軟件包執(zhí)行、部分在用戶的計算機上并且部分在遠程計算機上或者完全在遠程計算機或者服務器上執(zhí)行。在后者的場景中,遠程計算機可以通過任何類型的網(wǎng)絡連接到用戶的計算機,包括局域網(wǎng)(LAN)或者廣域網(wǎng)(WAN), 或者,可以連接到外部計算機(例如使用互聯(lián)網(wǎng)服務提供商通過互聯(lián)網(wǎng))。
在這里參考根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))和計算機程序產(chǎn)品的流程圖解和/或框圖描述本發(fā)明的方面。將會理解,這些流程圖和/或框圖的每一塊,以及這些流程圖解和/或框圖中的塊的組合,可以由計算機程序指令實施。這些計算機程序指令可以被提供給通用計算機、專用計算機的處理器或者其他可編程數(shù)據(jù)處理設備以便產(chǎn)生機器, 使得通過計算機處理器或者其他可編程數(shù)據(jù)處理設備執(zhí)行的指令生成用于實施在這些流程圖和/或框圖塊中指定的功能/動作的裝置。
這些計算機程序指令也可以被存儲在能夠引導計算機、其他可編程數(shù)據(jù)處理設備或者其他以特定方式運行的裝置的計算機可讀介質中,使得存儲在計算機可讀介質中的指令產(chǎn)生制造物,所述制造物包括實施在這些流程圖和/或框圖塊中指定的功能/動作的指令。
計算機程序指令也可以被加載到計算機、其他可編程數(shù)據(jù)處理設備或者導致在計算機、其他可編程設備或者其他裝置上執(zhí)行一系列操作步驟的其他裝置上以產(chǎn)生計算機實施的過程,使得在計算機或者其他可編程設備上執(zhí)行的指令提供用于實施在流程圖和/或框圖塊中指定的功能/動作的過程。
如在上面的背景技術部分中所討論的那樣,圖2中的現(xiàn)有技術方法200要求程序員在編制計算機程序時做出關于哪些功能將被分配給硬件加速器的決定。這要求程序員的大量知識和經(jīng)驗。此外,根據(jù)運行時條件其不靈活。例如,假設程序員決定允許XML硬件加速器總是進行XML文件的“加載”操作。雖然這在正在加載大XML文件時可能節(jié)省時間,但是,如果加載操作的大部分是針對能夠被處理器更有效地處理的小XML文件,則程序員的選擇可能實際上損害運行時性能。此外,在程序內(nèi)定義哪些功能被分配給硬件加速器不允許根據(jù)運行時條件進行調整的靈活性。如這里詳細討論的那樣,通過把功能在運行時分配給硬件加速器來解決這些問題。
參考圖3,方法300優(yōu)選地由圖1中所示的加速器工作分配機制IM執(zhí)行。方法 300通過讀取加速器策略(步驟310)開始。加速器策略優(yōu)選地由程序員或者用戶定義,并規(guī)定允許加速器工作分配機制1 在運行時決定何時把功能分配給硬件加速器的標準。計算機程序被分析(步驟320)。然后,選擇功能(步驟330)。當功能滿足加速器策略時(步驟340 = YES),該功能被分配給硬件加速器(步驟350)。當被選擇的功能不滿足加速器策略時(步驟340 = NO),功能被分配給處理器(步驟360)。在最優(yōu)選的實施方案中,在步驟 360中,不需要出現(xiàn)特定動作來把功能分配給處理器。所有功能缺省由處理器執(zhí)行,所以如果功能未被分配給硬件加速器,這意味著該功能將由處理器執(zhí)行,其意味著簡單地通過不把功能分配給硬件加速器而將功能分配給處理器(步驟360)。注意步驟330-360可以被針對計算機程序中有可能被分配給硬件加速器的每一功能重復。
參考圖4,第一樣本加速器策略400規(guī)定了哪些功能分配給硬件加速器。這里的例子假設硬件加速器是XML加速器。圖4中的加速器策略400規(guī)定了把所有XML加載功能分配給XML加速器,而不把XML解析和XML選擇節(jié)點(selectNode)功能分配給XML加速器。這個簡單樣本加速器策略400提供了相對于在代碼中硬編碼分配給硬件加速器的現(xiàn)有技術方法的優(yōu)點,因為可以改變加速器策略而不改變程序代碼。這允許計算機程序的用戶通過簡單地改變加速器策略400來改變計算機程序的功能,無需改變和重新編譯計算機程序。
參考圖5,第二樣本加速器策略500包括允許在運行時確定哪些功能分配給硬件加速器時的更多靈活性的啟發(fā)式表示。因此,對于XML加載功能,當正被加載的XML文件的大小大于100,000字節(jié)時,功能被分配給XML加速器。當正被加載的XML文件的大小是 100,000字節(jié)或者更少時,加載功能被分配給處理器。以類似方式,當文檔中的節(jié)點數(shù)量大于20時,XML選擇節(jié)點功能被分配給XML加速器,而當被選擇的節(jié)點數(shù)量是20或者更少時, 分配給處理器。XML解析功能不被分配給硬件加速器。雖然圖5中所示的邏輯表示很簡單, 但是這里的概念擴展到可在加速器策略中規(guī)定的任何適當?shù)臉藴?,與該標準可能多簡單或者多復雜無關。
參考圖6,方法600是在圖3的方法300的范圍內(nèi)的一種具體方法的一個適當?shù)膶嵤┓桨?。首先,確定處理器執(zhí)行功能的時間(步驟610)。接著,確定硬件加速器執(zhí)行相同的功能的時間(步驟620)。當加速器時間小于處理器時間時(步驟630 = YES),并且無需等待更重要的功能時(步驟632 = NO),在運行時把該功能分配給硬件加速器(步驟640)。當加速器時間不小于處理器時間(步驟630 = NO)時,在運行時把該功能分配給處理器(步驟 650)。當加速器時間小于處理器時間(步驟630 = YES)但是需要等待更重要的功能(步驟632 = YEQ時,把該功能分配給處理器(步驟650)。下面參考圖12描述“更重要的功能”的概念。注意,在步驟610和步驟620中的時間估計可以用任何適當方法導出。一個方法是基于系統(tǒng)資源,例如處理器的數(shù)量、處理器速度、存儲器大小等來估計時間。另一方法是基于當代碼被儀表化時的實際執(zhí)行時間來估計時間,如下面更詳細地討論。在最優(yōu)選的實施方案中,硬件加速器執(zhí)行其功能的時間估計包括處理器把工作卸載到硬件加速器所花費的額外時間(開銷)。
參考圖7,方法700通過儀表化計算機程序開始(步驟710)。儀表化計算機程序意味著把稱為鉤子的指令插入計算機程序中,所述鉤子允許在計算機程序執(zhí)行時收集簡檔數(shù)據(jù)。這樣,所有XML加載指令可以被儀表化,因此其執(zhí)行每一 XML加載指令所花費的時間能夠被確定。一旦計算機程序被儀表化,則計算機程序被執(zhí)行(步驟720)。當計算機程序運行時,收集從計算機程序的執(zhí)行產(chǎn)生的簡檔數(shù)據(jù)(步驟730)。簡檔數(shù)據(jù)可以包括任何適當?shù)男畔?,包括其?zhí)行每一被儀表化的功能花費的時間、執(zhí)行每一被儀表化的功能的平均時間、執(zhí)行每一被儀表化的功能的時間的范圍、每一功能的屬性,等等。然后,在步驟610和步驟620中,基于所述簡檔數(shù)據(jù)可以估計用于執(zhí)行功能的時間。注意,簡檔收集可以包括利用迫使所有功能被處理器執(zhí)行的代碼的一次運行,以及利用導致一些或者全部功能被硬件加速器執(zhí)行的代碼的第二次運行。或者,簡檔收集可以包括單次運行,根據(jù)計算機程序如何被編碼和儀表化,功能中的一些被處理器執(zhí)行,而其他的被硬件加速器執(zhí)行。
圖8和圖9中示出了估計執(zhí)行時間的例子。參考圖8,由處理器執(zhí)行XML加載功能的時間是1.0秒。由處理器執(zhí)行XML解析功能的時間是0.36秒。由處理器執(zhí)行XML選擇節(jié)點功能的時間是0. 74秒。優(yōu)選地從被儀表化的計算機程序執(zhí)行時收集的簡檔數(shù)據(jù)導出這些估計的執(zhí)行時間。參考圖9,由硬件加速器執(zhí)行XML加載功能的時間是0.52秒。由硬件加速器執(zhí)行XML解析功能的時間是0. 23秒。由硬件加速器執(zhí)行XML選擇節(jié)點功能的時間是0. 80秒。
現(xiàn)在我們把圖8和圖9中的時間估計用于圖6中的方法600。步驟610中的估計在圖8的表800中示出。步驟620中的估計在圖9中的表900中示出。對于XML加載功能,0. 52秒的加速器時間小于1. 0秒的處理器時間(步驟630 = YES),所以XML加載功能被分配給硬件加速器(步驟640)。對于XML解析功能,0. 23秒的加速器時間小于0. 36秒的處理器時間(步驟630 = YEQ,所以XML解析功能被分配給硬件加速器(步驟640)。對于XML選擇節(jié)點功能,0. 80秒的加速器時間大于0. 74秒的處理器時間(步驟630 = NO), 所以XML選擇節(jié)點功能被分配給處理器(步驟650)。人們可能想知道為什么選擇節(jié)點功能在硬件加速器上會具有大于處理器上的估計執(zhí)行時間的估計執(zhí)行時間。把功能分配給硬件加速器需要一些系統(tǒng)開銷,所以對于能夠在大致相同的時間量內(nèi)被執(zhí)行的功能,由于把功能分配給硬件加速器以及從硬件加速器接收數(shù)據(jù)的開銷所致,硬件加速器的總體執(zhí)行時間可能更長。此外,硬件加速器對于某些功能可能執(zhí)行得不好。結果,時間估計允許既確定何時把工作分配給硬件加速器,也確定何時不把工作分配給硬件加速器。為了這個簡單例子的目的,我們假設圖9中的表900中的估計執(zhí)行時間包括用于把功能分配給硬件加速器以及從硬件加速器接收數(shù)據(jù)的系統(tǒng)開銷。
當決定是否把功能分配給硬件加速器時,可以把其他屬性納入考慮。例如,對于 XML加速器,正被處理的XML文件的大小可能大大影響執(zhí)行XML功能所要求的時間。圖10 示出了表1000,其把處理器上XML加載和解析功能的執(zhí)行時間的估計作為正被處理的XML 文件的大小的函數(shù)示出,并把處理器上XML選擇節(jié)點功能的執(zhí)行時間估計作為正被處理的節(jié)點數(shù)量的函數(shù)示出。類似地,圖11把硬件加速器上XML加載和解析功能的執(zhí)行時間的估計作為正被處理的XML文件的大小的函數(shù)示出,并把硬件加速器上XML選擇節(jié)點功能的執(zhí)行時間的估計作為正被處理的節(jié)點數(shù)量的函數(shù)示出。利用這些根據(jù)功能屬性的增強估計, 加速器工作分配機制能夠做出關于何時在運行時把功能分配給硬件加速器的更為智能的決策。參考圖12,表1200以運行時日志的形式示出了樣本簡檔數(shù)據(jù)。表1200包括功能列表、功能何時被啟動的時間戳,以及功能執(zhí)行所花費的時間。這個數(shù)據(jù)可被加速器工作分配機制用來進ー步優(yōu)化硬件加速器的使用。例如,我們從圖12中所示的樣本簡檔數(shù)據(jù)看到XML加載指令經(jīng)常被XML解析指令跟隨。加速器工作分配機制可以分析表1200中的運行時日志中的簡檔數(shù)據(jù),并做出關于哪些功能分配給硬件加速器的決策。例如,使用圖6中的方法600,加載功能將總是被分配給硬件加速器。但是注意,啟動時間戳使得解析功能在硬件加速器能夠完成前導的加載指令之前出現(xiàn)。加速器工作分配機制可以基于運行時日志確定利用處理器處理加載功能將更有益處,所以硬件加速器可用于執(zhí)行解析功能而無需等待。在這個意義上,解析功能將是比加載功能更重要的要分配給硬件加速器的功能。結果, 加載功能將被分配給處理器而更重要的解析功能被分配給硬件加速器。在另一例子中,運行時日志可能掲示來自很多不同線程的調用的頻率,其導致為照顧將得益更多的另一功能而跳過通??赡鼙环峙浣o硬件加速器的功能有大得多的益處。因此,加速器工作分配機制可以檢測簡檔數(shù)據(jù)中的影響何時把計算機程序中的功能分配給硬件加速器的決策的ー個或更多個模式。這里的公開和權利要求明確地擴展到分析簡檔數(shù)據(jù)以確定如何最好地優(yōu)化硬件加速器的使用以使計算機程序的性能最大化的任何適當?shù)姆椒?。雖然這里的具體例子涉及XML硬件加速器,但是這里的原理同樣地適用于任何適當?shù)挠布铀倨鳎窍拗菩缘匕〝?shù)學加速器、圖形加速器、壓縮/解壓縮加速器和加密/ 解密加速器。也注意雖然圖中1示出了單個硬件加速器112,但是這里的公開和權利要求也明確地擴展到使用多個硬件加速器。本公開和權利要求涉及基于定義的加速器策略并基于在運行時執(zhí)行的分析,在運行時確定哪些功能分配給硬件加速器的加速器工作分配機制。分析包括讀取加速器策略, 以及確定特定功能是否滿足該加速器策略。如果是,功能被分配給硬件加速器。否則,功能被分配給處理器。本領域技術人員將理解,在權利要求的范圍內(nèi)很多變化是可能的。因此,雖然在上面具體示出和描述了本公開,但是本領域技術人員將會理解,不偏離權利要求的精神和范圍,可以對其做出形式和細節(jié)上的這些以及其他的改變。
權利要求
1.一種設備,包含至少一個處理器;耦合到所述至少一個處理器的硬件加速器;耦合到所述至少一個處理器的存儲器;駐留在所述存儲器中的計算機程序;駐留在所述存儲器中的加速器策略,該加速器策略規(guī)定了確定功能何時被分配給硬件加速器的標準;和駐留在所述存儲器中并由所述至少一個處理器執(zhí)行的加速器工作分配機制,當基于針對所述計算機程序中的功能的處理器性能估計和針對所述功能的硬件加速器性能估計,所述加速器策略中的所述標準被滿足時,所述加速器工作分配機制在運行時把所述功能分配給所述硬件加速器。
2.如權利要求1所述的設備,其中,所述加速器策略中的所述標準包括功能的至少一個屬性。
3.如權利要求1所述的設備,其中,所述至少一個屬性包括文件的大小。
4.如權利要求1所述的設備,其中,所述加速器工作分配機制包含代碼儀表化機制,所述代碼儀表化機制把當所述計算機程序被執(zhí)行時提供簡檔數(shù)據(jù)的多個指令插入所述計算機程序中,其中,針對所述功能的所述處理器性能估計和針對所述功能的所述硬件加速器性能估計從所述簡檔數(shù)據(jù)被導出。
5.如權利要求4所述的設備,其中,所述加速器工作分配機制執(zhí)行所述簡檔數(shù)據(jù)的分析以優(yōu)化把功能分配給所述硬件加速器。
6.如權利要求1所述的設備,其中,當針對所述功能的所述硬件加速器性能估計小于針對所述功能的所述處理器性能估計時,所述加速器工作分配機制把所述功能分配給所述硬件加速器。
7.如權利要求1所述的設備,其中,當把后續(xù)功能分配給所述硬件加速器將對所述設備的性能具有更大益處并且當把所述功能分配給所述硬件加速器將干擾把所述后續(xù)功能分配給所述硬件加速器時,所述加速器工作分配機制不把所述功能分配給所述硬件加速ο
8.—種由至少一個處理器執(zhí)行的用于把工作分配給計算機系統(tǒng)中的硬件加速器的計算機實施的方法,所述計算機系統(tǒng)包括所述硬件加速器和至少一個執(zhí)行計算機程序的處理器,所述方法包含步驟讀取規(guī)定了確定功能何時被分配給所述硬件加速器的標準的加速器策略;分析所述計算機程序;和當基于針對所述計算機程序中的功能的處理器性能估計和針對所述功能的硬件加速器性能估計,所述加速器策略中的所述標準被滿足時,在運行時把所述功能分配給所述硬件加速器。
9.如權利要求8所述的方法,其中,所述加速器策略中的所述標準包括功能的至少一個屬性。
10.如權利要求8的所述的方法,其中,所述至少一個屬性包括文件的大小。
11.如權利要求8所述的方法,還包含步驟CN 102541657 A把當所述計算機程序被執(zhí)行時提供簡檔數(shù)據(jù)的多個指令插入所述計算機程序中;和從所述簡檔數(shù)據(jù)導出針對所述功能的所述處理器性能估計和針對所述功能的所述硬件加速器性能估計。
12.如權利要求11所述的方法,還包含執(zhí)行所述簡檔數(shù)據(jù)的分析以優(yōu)化把功能分配給所述硬件加速器的步驟。
13.如權利要求8所述的方法,還包含當針對所述功能的所述硬件加速器性能估計小于針對所述功能的所述處理器性能估計時,把功能分配給所述硬件加速器的步驟。
14.如權利要求8所述的方法,還包含當把后續(xù)功能分配給所述硬件加速器將對所述設備的性能具有更大益處并且當把所述功能分配給所述硬件加速器將干擾把所述后續(xù)功能分配給所述硬件加速器時,不把所述功能分配給所述硬件加速器的步驟。
15.一種由至少一個處理器執(zhí)行的用于把工作分配給計算機系統(tǒng)中的硬件加速器的計算機實施的方法,所述計算機系統(tǒng)包括所述硬件加速器和至少一個執(zhí)行計算機程序的處理器,所述方法包含步驟讀取規(guī)定了確定功能何時被分配給所述硬件加速器的標準的加速器策略,所述標準包括被所述功能操作的文件的大小;分析所述計算機程序;把當所述計算機程序被執(zhí)行時提供簡檔數(shù)據(jù)的多個指令插入所述計算機程序中;從所述簡檔數(shù)據(jù)導出針對所述功能的處理器性能估計和針對所述功能的硬件加速器性能估計;分析所述簡檔數(shù)據(jù)以確定所述簡檔數(shù)據(jù)中的至少一個模式;和當針對所述計算機程序中的功能的所述硬件加速器性能估計小于針對所述功能的所述處理器性能估計并且所述至少一個模式滿足所述加速器策略時,在運行時把所述功能分配給所述硬件加速器。
全文摘要
本發(fā)明的實施例提出用于對硬件加速器進行運行時功能分配的方法和設備。一種加速器工作分配機制基于定義的加速器策略并基于在運行時執(zhí)行的分析,在運行時確定哪些功能分配給硬件加速器。分析包括讀取加速器策略,以及確定特定功能是否滿足該加速器策略。如果是,功能被分配給硬件加速器。否則,功能被分配給處理器。
文檔編號G06F9/50GK102541657SQ201110361358
公開日2012年7月4日 申請日期2011年11月15日 優(yōu)先權日2010年12月20日
發(fā)明者J·M·桑托索斯索, R·K·哈尼 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1