專利名稱:考慮硬件預配置因素的動態(tài)軟硬件劃分方法
技術領域:
本發(fā)明屬于計算機軟件技術領域,涉及一種考慮硬件預配置因素的動態(tài)軟硬件劃分方法。
背景技術:
根據(jù)劃分層次和粒度,有關動態(tài)軟硬件劃分的研究主要分成兩種思路。
第一種思路由喬治等人在2003年設計自動化會議上提出,并在其后期工作中不斷發(fā)展,主要是利用專門高速緩沖存儲器記錄軟件程序中循環(huán)執(zhí)行的頻度,選擇執(zhí)行頻度最高的循環(huán),將其機器代碼反匯編后提取數(shù)據(jù)流圖,在額外的微處理器上運行一個在線綜合程序?qū)?shù)據(jù)流圖綜合為邏輯電路,并配置到可編程器件上。這樣設計人員無需考慮軟硬件劃分,可以直接設計純軟件實現(xiàn)的應用系統(tǒng),而由動態(tài)軟硬件劃分來決定實際的劃分方案。因這種思路從底層入手,可以稱之為指令級動態(tài)軟硬件劃分方法。
另一種思路從高層著眼,把配置到可編程器件的硬件電路看作一種硬件進(線)程,通過構建支持硬件進(線)程的操作系統(tǒng),實現(xiàn)軟硬件進(線)程的相互遷移和切換。因此,可以稱之為進(線)程級動態(tài)軟硬件劃分。面向部分可重構FPGA的在線綜合(On-Line Synthesis for Partially Reconfigurable FPGAs.)詳細討論了面向可重構系統(tǒng)的操作系統(tǒng)中硬件進程調(diào)度的在線布局問題;設計了一個稱為BORPH的操作系統(tǒng),利用Unix進程來表示硬件任務,并通過擴展Unix系統(tǒng)進程服務接口實現(xiàn)對硬件任務的支持。國內(nèi)復旦大學的周博、邱衛(wèi)東、彭澄廉研究了利用軟硬件多任務模型來降低軟硬件進程遷移開銷,并通過擴展μCOS-II嵌入式操作系統(tǒng)實現(xiàn)了一個原型系統(tǒng)。
指令級和進(線)程級動態(tài)軟硬件劃各有優(yōu)劣。
劃分方法的不足 指令級動態(tài)軟硬件劃分方法 由于需要額外的專用微處理器進行在線反匯編、綜合和布局布線,硬件開銷比較大。
另一方面指令級動態(tài)軟硬件劃分粒度目前局限在基本塊內(nèi),結構也局限于單循環(huán)結構,性能提升效果有限。
另外,雖然設計人員只需提供軟件實現(xiàn)方案,而把軟硬件劃分和硬件綜合交給專門軟硬件執(zhí)行,但這樣未能利用已有的硬件設計資源,這在目前第三方IP(IntellectualProperty知識產(chǎn)權)核十分豐富的情況下,顯得有些浪費。進(線)程級動態(tài)軟硬件劃分 相對指令級動態(tài)軟硬件劃分而言,進(線)程調(diào)度、通信、同步基本由軟件完成,時間開銷較大。
雖然在一些研究中提出了支持可重構計算操作系統(tǒng)的專門硬件,但主要負責配置信息和可重配置資源管理,進程調(diào)度和切換還是由軟件完成。
另外,目前的進(線)程級動態(tài)軟硬件劃分研究中對軟硬件透明編程模型還關注不夠,軟件和硬件進(線)程對設計人員是可見的,程序員創(chuàng)建一個軟件或硬件進(線)程的同時,實際已暗示了相應功能的軟硬件劃分,雖然有可能增加專門代碼和電路來進行軟硬件進(線)程遷移,但需要同時修改操作系統(tǒng)和底層硬件以提供支持,對開發(fā)人員的綜合能力要求極高,并非一個理想的方案。
發(fā)明內(nèi)容
本發(fā)明的所要解決的技術問題是提供一種考慮硬件預配置因素的動態(tài)軟硬件劃分方法,采用該方法,任務的執(zhí)行效率顯著提高。
為解決上述技術問題,本發(fā)明所采用的技術方案為 一種考慮硬件預配置因素的動態(tài)軟硬件劃分方法,其特征在于,在程序運行過程中,進行動態(tài)的軟硬件劃分,在可重構硬件資源上進行一個或多個函數(shù)的配置,對待劃分函數(shù)維護一個待劃分函數(shù)列表list(f1,…,fm),其中fk為硬件加速比,k為待劃分的一個函數(shù);k=1,…,m,m為待劃分函數(shù)個數(shù),硬件加速比定義為
F對應待劃分函數(shù)的集合;Ck為函數(shù)k在程序運行過程中被調(diào)用的次數(shù),Timeswk為函數(shù)k的軟件執(zhí)行時間;
為0時表示函數(shù)k當前劃分為硬件,反之表示函數(shù)k當前為軟件;Trfk對應函數(shù)k的硬件實現(xiàn)函數(shù)的配置時間;Timehwk為函數(shù)k的硬件執(zhí)行時間;Commk為函數(shù)k的硬件實現(xiàn)函數(shù)的軟硬件通信代價,為硬件與軟件的參數(shù)傳遞時間;參數(shù)傳遞時間可以用傳統(tǒng)的仿真工具仿真出來,函數(shù)的軟件執(zhí)行時間可以由系統(tǒng)中統(tǒng)計函數(shù)執(zhí)行時間的函數(shù)得到,具體的一種實現(xiàn)方法為進入函數(shù)時調(diào)用了dl_update_time_front和dl_get_time函數(shù),在函數(shù)結尾時調(diào)用了dl_hw_update_time函數(shù),這些函數(shù)將自動測量和保存該硬件函數(shù)的執(zhí)行時間; 具體劃分步驟如下 步驟1從列表list(f1,…,fm)中選出最大值fi; 步驟2如果fi已經(jīng)被劃分為硬件,則從列表中刪除fi,更新列表,返回步驟1,否則,進入下一步; 步驟3檢測當前的可重構資源是否足夠,是則將函數(shù)i劃分為硬件,并配置到可重構資源上,從列表中刪除fi,更新列表,返回步驟1; 否則,進入下一步; 步驟4fi與fj比較,fj為函數(shù)j的硬件加速比,函數(shù)j為已經(jīng)配置在可重構資源上的函數(shù)中的一個函數(shù),且在所有的已經(jīng)配置在可重構資源上的函數(shù)中,函數(shù)j所對應的加速比最??;如果fi大于fj,則將函數(shù)j劃分為軟件,從可重構資源中刪除函數(shù)j,返回步驟3;如果fi小于fj,則進入步驟4.1; 步驟4.1檢測list是否為空,不空,則保存本次劃分結果,結束;如果是空,則計算關系矩陣Cst,選出該關系矩陣Cst中最大值元素cst,將cst對應的函數(shù)t加入到待劃分函數(shù)列表list(f1,…,fm)中更新待劃分函數(shù)列表list(f1,…,fm),進入步驟4.2; 所述的Cst記錄函數(shù)調(diào)用次序信息,關系矩陣Cst為m*N個元素,N為m個待劃分的函數(shù)可能調(diào)用的所有函數(shù)的個數(shù);s元素表示當前劃分的所有函數(shù),元素cij表示函數(shù)i被調(diào)用后立刻就調(diào)用了函數(shù)j的次數(shù)。
步驟4.2判斷硬件資源對應函數(shù)t是否足夠,是則將函數(shù)t配置到硬件中,在列表list(f1,…,fm)中刪除函數(shù)t,否則,返回步驟4.1。
發(fā)明的有益效果 本發(fā)明的技術主要構思是在軟硬件動態(tài)劃分過程中,提出了考慮硬件預配置的方法,通過衡量軟硬件執(zhí)行某一函數(shù)或任務的花費時間比值的硬件加速比,某一函數(shù)的硬件加速比越大,說明該函數(shù)越適宜于采用硬件執(zhí)行,在此過程中,并考慮函數(shù)間的調(diào)用關系,預先將執(zhí)行概率最大的函數(shù)配置到硬件資源上,基于硬件加速比對函數(shù)進行動態(tài)軟硬件配置,充分利用了系統(tǒng)的硬件資源,并且考慮了函數(shù)間的調(diào)用關系,從而顯著提高整個系統(tǒng)的任務處理效率。關于采用本方法的速度與其他配置方法比較,具體見實施例中的測試例。
另外,從時間復雜度分析該算法的時間復雜度相較其他算法而言具有較低的時間復雜度。對于一個應用實例,假設其設計中總共調(diào)用了n個函數(shù),在調(diào)用算法時,List中包含有m個待劃分的函數(shù)(m≤n),劃分算法的時間主要花銷在對函數(shù)隊列的查找、刪除操作上。通常,隊列的查找和刪除操作的時間復雜度可以維持在O(logn),從而算法的復雜度可以維持在O(mlogm),由于m≤n,算法最差時間復雜度可以維持在O(nlog n)。隊列中每個函數(shù)對包含有多個固定大小的屬性值,假設每個函數(shù)對占用的空間大小為K,則算法的空間復雜度為O(Km),由于m≤n,算法最差空間復雜度可以維持在O(Kn)。遠低于傳統(tǒng)的一些迭代劃分算法而言,如遺傳算法最好情況下的時間復雜度為O(rn^2)等.
圖1為考慮硬件預配置因素的動態(tài)軟硬件劃分方法的流程圖; 圖2為軟硬件劃分數(shù)據(jù)流圖; 圖3為不同配置下程序的執(zhí)行時間對照圖; 圖4為JPEG編碼系統(tǒng); 圖5為過程級軟硬件劃分算法三種情況的性能比較圖。
具體實施例方式 以下結合附圖對本發(fā)明作進一步說明。
問題描述和作何改進 軟硬件劃分主要是決定抽象函數(shù)在運行時是動態(tài)鏈接到軟件,還是硬件實現(xiàn)代碼上。在進行劃分前,首先需要確定劃分的對象。而待劃分的函數(shù)可能很多,這樣就需要從中選擇一組,使系統(tǒng)在滿足資源約束的條件下獲得最優(yōu)性能,所以這是一個約束組合優(yōu)化問題。由于動態(tài)軟硬件劃分在運行時進行,需要能根據(jù)劃分后系統(tǒng)運行情況改進原有劃分。
過程級劃分算法的主要優(yōu)點是1)面積/性能的折中。相比之下,過程級粒度占用面積適中,通信代價固定。2)對象數(shù)量較小。由于抽象層次較高,而且劃分對象只限于同時具有軟硬件實現(xiàn)的過程,從而劃分對象較小,使算法的性能得到提高。采用如下思路來設計動態(tài)劃分流程。
算法具體實現(xiàn) 一.劃分算法問題描述 在滿足體系結構和資源限制的前提下,軟硬件劃分算法的目標在于最小化應用程序的運行時間,其工作重點在通過將硬件過程遷移到FPGA上執(zhí)行來優(yōu)化序列化的軟件應用程序。與通用的多進程的軟硬劃分模型不同,動態(tài)鏈接控制可以保證軟硬件執(zhí)行過程串行執(zhí)行,而且硬件過程的通信代價是固定的。
首先定義相關概念如下問題的輸入用三元組<F,Areatotal,Tall_software>來表示。其中Areatotal代表系統(tǒng)中最大可用的硬件面積;Tall_software是純軟件的方式來執(zhí)行應用程序所花費的時間;F對應著應用中包含的軟硬件函數(shù)對,其由四元組<C,Timesw,HW,Xnow>組成,其中C是對應函數(shù)對總的調(diào)用次數(shù),Timesw表示軟件函數(shù)執(zhí)行時間;Xnow則為函數(shù)的當前劃分結果,其中Xnow=0或1,為1時表示函數(shù)i當前劃分為硬件,反之為軟件;HW代表硬件實現(xiàn)方案,其可由三元組<Areahw,Chw,Comm,Timehw,Trf>表示,Areahw代表硬件函數(shù)面積;Chw是該硬件函數(shù)執(zhí)行的次數(shù);Comm是軟硬件通信代價;Timehw為硬件執(zhí)行時間,Trf對應硬件函數(shù)的配置時間。整個劃分算法的目標是使得公式
具有最小值。其中Chw,HW表示選中函數(shù)的硬件方案執(zhí)行次數(shù);Timesw,F(xiàn)代表F集合中選中的函數(shù)的軟件函數(shù)執(zhí)行時間;Timehw,HW代表F集合中選中的函數(shù)的硬件函數(shù)執(zhí)行時間;CommHW代表F集合中選中的函數(shù)的硬件函數(shù)的通信時間。
由于硬件資源非常有限,所以對任務的資源占用需要一定的約束條件,在任意時刻j滿足 二、算法設計 上述問題可以看成是一個0/1背包問題,可采用貪婪法則進行最優(yōu)化。在約束條件下,假設系統(tǒng)已經(jīng)根據(jù)當前劃分執(zhí)行了一段時間。對于每個函數(shù),下一次劃分決策會受諸多因素影響,將這些因素綜合起來,可計算出本函數(shù)的劃分傾向度
分析Fi函數(shù)中各項的形式,主要考慮硬件函數(shù)的加速比。如果劃分為硬件實現(xiàn)能使函數(shù)執(zhí)行得到加速,那么該函數(shù)顯然傾向于劃分為硬件實現(xiàn),相應的子項為
Ci在新一輪劃分完成后將清零,重新統(tǒng)計函數(shù)i的被調(diào)用次數(shù)。f的值越大,函數(shù)越傾向于劃分為硬件實現(xiàn)。在劃分過程中,函數(shù)調(diào)用次數(shù)對劃分傾向度有影響,調(diào)用次數(shù)越多,越傾向于劃分為硬件實現(xiàn)。矩陣C記錄函數(shù)調(diào)用次序信息,cij表示函數(shù)i被調(diào)用后立刻就調(diào)用了函數(shù)j的次數(shù)。獲得Fi的計算方法后,每次進行劃分時,可計算出所有函數(shù)的Fi值,然后按以下方法選擇劃分為硬件實現(xiàn)的函數(shù) 顯然,上述軟硬件劃分算法可以根據(jù)系統(tǒng)運行的當前情況進行調(diào)整,因為每次劃分時xixi如果為0時表示函數(shù)k當前劃分為硬件,反之表示函數(shù)k當前為軟件;參數(shù)的值可能由于系統(tǒng)運行情況的改變而與前一次不同??紤]獲得系統(tǒng)運行信息需要一定時間,可以采用周期性的方式調(diào)用該算法。另外,還在算法中加入了預配置機制,這主要是考慮硬件配置較為耗時,如果能利用其它函數(shù)執(zhí)行時提前配置需要的硬件模塊,便可能大大降低有效計算外的開銷。采用啟發(fā)式預配置方法并利用運行時記錄的函數(shù)調(diào)用次序信息進行預配置,假設利用一個矩陣C記錄,cij表示函數(shù)i被調(diào)用后立刻就調(diào)用了函數(shù)j的次數(shù)。如果函數(shù)i當前被劃分為硬件實現(xiàn),并已配置到可重構資源上,應該考慮將對應的函數(shù)k進行預配置,原因是函數(shù)k在下一輪劃分中被劃分為硬件實現(xiàn)的可能性較高,其中函數(shù)k可通過以下公式確定
如果滿足以上四個條件,即代表函數(shù)k當前劃分為軟件實現(xiàn),且此時空閑可重構資源足夠,則將函數(shù)k進行預配置。其中Areanow代表系統(tǒng)在當前時刻可用的硬件面積。圖1顯示了預配置與過程級軟硬件劃分結合的劃分過程。
評價函數(shù)將用來評估軟硬件劃分算法解方案的優(yōu)劣,在軟硬件劃分方案給出后,可以經(jīng)過調(diào)度得出該方案的耗時,根據(jù)耗時情況來判斷本次劃分是否優(yōu)于前次的劃分方案并取而代之。假設P為當前劃分,P’為新的劃分,T為P的時間函數(shù)(通過調(diào)度獲取)即T(P)。若T(P)≤T(P),則評價新的劃分為一個更優(yōu)的解,否則丟棄新劃分。軟硬件劃分經(jīng)過評價函數(shù)來接受或拒絕新解,使最終結果趨于最優(yōu)。
三、動態(tài)劃分流程 程序運行過程中將自動加載相應的硬件函數(shù),軟硬件函數(shù)的執(zhí)行選擇由劃分算法決定,圖2顯示了整個運行時環(huán)境的數(shù)據(jù)流。
當應用程序調(diào)用某一函數(shù)時,運行時環(huán)境需對函數(shù)名進行分析,從而判斷是否具有相應的硬件函數(shù)實現(xiàn),如果沒有,則繼續(xù)運行軟件代碼,否則在軟硬件函數(shù)運行時信息表中為其創(chuàng)建一個新的記錄并從硬件函數(shù)庫中讀入相應的配置信息。這一數(shù)據(jù)結構中主要包括軟硬件函數(shù)執(zhí)行時間、函數(shù)調(diào)用次數(shù)、硬件函數(shù)面積等將被提供給軟硬件劃分算法的參數(shù)信息。
軟硬件動態(tài)鏈接過程根據(jù)劃分結果為函數(shù)選擇一種執(zhí)行位置(要么在微處理器上,要在FPGA上),如果調(diào)用的是硬件函數(shù),則首先查詢可重構資源管理器,若該硬件函數(shù)尚未配置,則需要進行動態(tài)重構,接著運行硬件加速器,最后將執(zhí)行結果寫入數(shù)據(jù)區(qū)域。
算法性能測評 使用C語言描述我們提出的過程級軟硬件劃分算法。由于實際已有的軟硬件劃分算法大多采用進程作為劃分單位,或采用基本塊(指令級劃分),而我們提出的是在過程級進行軟硬件劃分,以自定義的軟硬件抽象函數(shù)為劃分對象,與這些算法難以直接進行比較實驗。所以本文考慮平臺的特點,設計了以下三種方法來評估本文算法的性能,一個是無動態(tài)重構支持;二是加入部分動態(tài)可重構后的劃分;三是引入預配置后的劃分。三種方法都使用JPEG編碼系統(tǒng)(如圖4)進行驗證。
錯誤!未找到引用源。展示了三種方式實現(xiàn)JPEG編碼所需要的時間。無動態(tài)重構支持的軟硬件劃分性能最差,動態(tài)重構下的劃分性能比前者提高了9.93%。引入預配置后,過程級軟硬件劃分的性能比無動態(tài)重構支持的劃分提高了18.44%,比動態(tài)重構下的劃分提高了9.45%。實驗表明,隨著可重構資源利用效率的不斷提高,過程級軟硬件劃分的優(yōu)勢將更為明顯。
實施例1 一種考慮硬件預配置因素的動態(tài)軟硬件劃分方法,其特征在于,在程序運行過程中,在可重構硬件資源上已配置一個或多個函數(shù),對待劃分函數(shù)維護一個待劃分函數(shù)列表list(f1,…,fm),其中fk為硬件加速比,k為待劃分的一個函數(shù);k=1,…,m,m為待劃分函數(shù)個數(shù)
F對應待劃分函數(shù)的集合;Ck為函數(shù)k被調(diào)用的次數(shù),Timeswk為函數(shù)k的軟件執(zhí)行時間;
為0時表示函數(shù)k當前劃分為硬件,反之表示函數(shù)k當前為軟件;Trfk對應函數(shù)k的硬件實現(xiàn)函數(shù)的配置時間;Timehwk為函數(shù)k的硬件執(zhí)行時間;Commk為函數(shù)k的硬件實現(xiàn)函數(shù)的軟硬件通信代價,為硬件與軟件的參數(shù)傳遞時間(可以用傳統(tǒng)的仿真工具仿真出來,函數(shù)的軟件執(zhí)行時間可以由系統(tǒng)中統(tǒng)計函數(shù)執(zhí)行時間的函數(shù)得到); 3DES加密函數(shù)和解密函數(shù)使用一個硬件加速器,配置時間為Commk=9.40E-05s;Hamming編碼函數(shù)和解碼函數(shù)使用另一個加速器,
Commk=7.6E-06s對于一個復雜的嵌入式系統(tǒng),一次運行可能調(diào)用,這些函數(shù)上千次以上,所以Ck設為2000,根據(jù)以上參數(shù)可以算出3DES的f=2.07,Hamming編碼的f=0.01。
具體劃分步驟如下 步驟1從列表list(f1,…,fm)中選出最大值fi; 步驟2如果fi已經(jīng)被劃分為硬件,則從列表中刪除fi,更新列表,返回步驟1,否則,進入下一步; 步驟3檢測當前的可重構資源是否足夠,是則將函數(shù)i劃分為硬件,并配置到可重構資源上,從列表中刪除fi,更新列表,返回步驟1; 否則,進入下一步; 步驟4fi與fj比較,fj為函數(shù)j的硬件加速比,函數(shù)j為已經(jīng)配置在可重構資源上的函數(shù)中的一個函數(shù),且在所有的已經(jīng)配置在可重構資源上的函數(shù)中,函數(shù)j所對應的加速比最?。蝗绻鹒i大于fj,則將函數(shù)j劃分為軟件,從可重構資源中刪除函數(shù)j,返回步驟3;如果fi小于fj,則進入步驟4.1; 步驟4.1檢測list是否為空,不空,則保存本次劃分結果,結束;如果是空,則計算關系矩陣Cst,選出該關系矩陣Cst中最大值元素cst,將cst對應的函數(shù)t加入到待劃分函數(shù)列表list(f1,…,fm)中更新待劃分函數(shù)列表list(f1,…,fm),進入步驟4.2; 所述的Cst記錄函數(shù)調(diào)用次序信息,關系矩陣Cst為m*N個元素,N為m個待劃分的函數(shù)可能調(diào)用的所有函數(shù)的個數(shù);s元素表示當前劃分的所有函數(shù),元素cij表示函數(shù)i被調(diào)用后立刻就調(diào)用了函數(shù)j的次數(shù)。
步驟4.2判斷硬件資源對應函數(shù)t是否足夠,是則將函數(shù)t配置到硬件中,在列表list(f1,…,fm)中刪除函數(shù)t,否則,返回步驟4.1。
測試例實驗同時運行兩項任務,3DES加密函數(shù)和解密函數(shù)使用一個硬件加速器,配置時間為3.0179526s,Hamming編碼函數(shù)和解碼函數(shù)使用另一個加速器,配置時間為2.3684901秒,分別測試它們對1K或1M數(shù)據(jù)進行處理,在不同配置下程序所消耗的時間,實驗結果如圖3所示。其中static表示程序運行時加速器已經(jīng)靜態(tài)配置完畢,而dynamic表示加速器將在程序運行時動態(tài)配置;all software表示上四個函數(shù)執(zhí)行方式為純軟件執(zhí)行,all hardware為純硬件執(zhí)行,3des hardware表示3DES加/解密函數(shù)用純硬件執(zhí)行,而hamming編/解碼則用純軟件執(zhí)行,hamming hardware則正好相反,random hardware表示這四個函數(shù)的執(zhí)行方式是隨機的,這五個不同的配置可以通過替換劃分算法庫來實現(xiàn)。
由于軟件執(zhí)行速度慢,從而導致動態(tài)重構情況下全軟件實現(xiàn)模式性能最差。從圖中還可以看到3DES的軟硬件實現(xiàn)是影響程序性能的關鍵,在處理的數(shù)據(jù)較大的情況下,只將它動態(tài)劃分到硬件實現(xiàn),取得幾乎與靜態(tài)配置同樣高的性能,比純軟件實現(xiàn)至少快一個數(shù)量級,這是因為①3DES的加速比和執(zhí)行時間比Hamming更大(如圖3示);②3DES配置時間與運行時間比可以忽略。
權利要求
1.一種考慮硬件預配置因素的動態(tài)軟硬件劃分方法,其特征在于,在程序運行過程中,進行動態(tài)的軟硬件劃分,在可重構硬件資源上進行一個或多個函數(shù)的配置,對待劃分函數(shù)維護一個待劃分函數(shù)列表list(f1,…,fm),其中fk為硬件加速比,k為待劃分的一個函數(shù);k=1,…,m,m為待劃分函數(shù)個數(shù),硬件加速比定義為
F對應待劃分函數(shù)的集合;Ck為函數(shù)k在程序運行過程中被調(diào)用的次數(shù),Timeswk為函數(shù)k的軟件執(zhí)行時間;
為0時表示函數(shù)k當前劃分為硬件,反之表示函數(shù)k當前為軟件;Trfk對應函數(shù)k的硬件實現(xiàn)函數(shù)的配置時間;Timehwk為函數(shù)k的硬件執(zhí)行時間;Commk為函數(shù)k的硬件實現(xiàn)函數(shù)的軟硬件通信代價,為硬件與軟件的參數(shù)傳遞時間;
具體劃分步驟如下
步驟1從列表list(f1,…,fm)中選出最大值fi;
步驟2如果fi已經(jīng)被劃分為硬件,則從列表中刪除fi,更新列表,返回步驟1,否則,進入下一步;
步驟3檢測當前的可重構資源是否足夠,是則將函數(shù)i劃分為硬件,并配置到可重構資源上,從列表中刪除fi,更新列表,返回步驟1;
否則,進入下一步;
步驟4fi與fj比較,fj為函數(shù)j的硬件加速比,函數(shù)j為已經(jīng)配置在可重構資源上的函數(shù)中的一個函數(shù),且在所有的已經(jīng)配置在可重構資源上的函數(shù)中,函數(shù)j所對應的加速比最?。蝗绻鹒i大于fj,則將函數(shù)j劃分為軟件,從可重構資源中刪除函數(shù)j,返回步驟3;如果fi小于fj,則進入步驟4.1;
步驟4.1檢測list是否為空,不空,則保存本次劃分結果,結束;如果是空,則計算關系矩陣Cst,選出該關系矩陣Cst中最大值元素cst,將cst對應的函數(shù)t加入到待劃分函數(shù)列表list(f1,…,fm)中更新待劃分函數(shù)列表list(f1,…,fm),進入步驟4.2;
所述的Cst記錄函數(shù)調(diào)用次序信息,關系矩陣Cst為m*N個元素,N為m個待劃分的函數(shù)可能調(diào)用的所有函數(shù)的個數(shù);s元素表示當前劃分的所有函數(shù),元素cij表示函數(shù)i被調(diào)用后立刻就調(diào)用了函數(shù)j的次數(shù)。
步驟4.2判斷硬件資源對應函數(shù)t是否足夠,是則將函數(shù)t配置到硬件中,在列表list(f1,…,fm)中刪除函數(shù)t,否則,返回步驟4.1。
全文摘要
本發(fā)明提供了一種考慮硬件預配置因素的動態(tài)軟硬件劃分方法,其特征在于,在程序運行過程中,進行動態(tài)的軟硬件劃分,在可重構硬件資源上進行一個或多個函數(shù)的配置,對待劃分函數(shù)維護一個待劃分函數(shù)列表list(f1,…,fm),其中fk為定義硬件加速比,k為待劃分的一個函數(shù);k=1,…,m,m為待劃分函數(shù)個數(shù),基于硬件加速比對函數(shù)配置,并且考慮到硬件預配置因素。本發(fā)明基于硬件加速比對函數(shù)進行動態(tài)軟硬件配置,充分利用了系統(tǒng)的硬件資源,從而顯著提高整個系統(tǒng)的任務處理效率。
文檔編號G06F9/50GK101763288SQ20101002208
公開日2010年6月30日 申請日期2010年1月19日 優(yōu)先權日2010年1月19日
發(fā)明者李仁發(fā), 陳宇, 徐成, 吳強, 劉彥, 朱海, 袁虎, 鐘俊, 劉滔, 鄺繼順, 李蕊, 李肯立, 羅娟, 趙歡, 楊科華, 任小西, 楊書凡, 彭日光, 李春江, 黃瑜臣, 張維, 李浪 申請人:湖南大學