国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的多處理器片上系統(tǒng)運行時軟硬件重構(gòu)

2015-05-15 10:22:07葉林鋒謝國波曾碧
現(xiàn)代計算機 2015年4期
關鍵詞:應用程序嵌入式重構(gòu)

葉林鋒,謝國波,曾碧

(廣東工業(yè)大學計算機學院,廣州 510006)

基于FPGA的多處理器片上系統(tǒng)運行時軟硬件重構(gòu)

葉林鋒,謝國波,曾碧

(廣東工業(yè)大學計算機學院,廣州 510006)

可重構(gòu)系統(tǒng)可以根據(jù)應用程序運行時的需要動態(tài)地選擇不同配置硬件加速方案。動態(tài)可重構(gòu)多處理器片上系統(tǒng)是一種面向多種應用/標準之間資源共享、減少能源損耗和提升系統(tǒng)性能(專用DSP或者定制協(xié)處理器)的有效方法。提出一種根據(jù)應用不同需求進行動態(tài)軟硬件重構(gòu)的方法。

動態(tài)部分可重構(gòu);離線可重構(gòu);可重構(gòu)計算;智能計算;按需計算

0 引言

隨著半導體工藝和計算機技術的不斷發(fā)展,嵌入式計算機系統(tǒng)滲透到越來越多的應用領域。同時,嵌入式系統(tǒng)的多樣性又阻礙了它在標準化和集成化方面的發(fā)展,人們希望可以將這些經(jīng)過不同應用“剪裁”的嵌入式系統(tǒng)整合成“大而?!钡那度胧较到y(tǒng)。日益增加的半導體數(shù)量和不斷改進的計算機系統(tǒng)結(jié)構(gòu)雖然使得嵌入式系統(tǒng)擁有了前所未有的數(shù)據(jù)處理能力和吞吐能力,但面對數(shù)不勝數(shù)并且不斷變化的應用需求,傳統(tǒng)硬件無論是在定制化還是通用化的道路上都處于相對落后的位置。近年來,為了追趕市場的步伐,越來越多的嵌入式系統(tǒng)采用通用處理器+專用處理模塊的架構(gòu)(例如:GPP+GPU,GPP+DSP,GPP+協(xié)處理器等)。這樣就不用為每個產(chǎn)品重新設計整套方案,提高了設計的可重用性,也縮減了產(chǎn)品的研發(fā)周期。然而,這些額外的固定加速模塊會在一定程度上增加系統(tǒng)的芯片利用率、面積和功耗,尤其是當系統(tǒng)中有多個加速模塊的時候,能效比就會變得很低。

動態(tài)可重構(gòu)多處理器片上系統(tǒng)(Dynamic Reconfigurable MPSoC)是一種由多個混雜處理器和可重構(gòu)硬件模塊組成的片上系統(tǒng)架構(gòu),分為固定部分和可變部分。固定部分主要用于完成一些通用的計算處理、輸入輸出管理和任務調(diào)度等工作,而可變部分將根據(jù)所運行應用的不同需求進行硬件改造并完成關鍵計算任務。近十年來,有關R-MPSoC的研究很多,不少的研究結(jié)果都證明了可重構(gòu)計算在性能方面的巨大潛力,但在這樣一些硬件可重構(gòu)的平臺上開發(fā)軟件仍然是非常具有挑戰(zhàn)性的工作。本文主要就是在此問題的基礎上探討自適應MPSoC架構(gòu)上的軟硬件自適應重構(gòu)流程。

1 相關工作

動態(tài)局部重構(gòu)(Dynamic Partial Reconfiguration)技術使得硬件可以在運行過程中實現(xiàn)局部邏輯功能的重構(gòu)。但由于系統(tǒng)中硬件相關的軟件(Hardware-dependent Software)的存在,重構(gòu)之后的硬件將需要重新加載相應的HdS軟件才能正常運行。本文主要探討在整個重構(gòu)的過程中,HdS軟件與重構(gòu)硬件如何實現(xiàn)無縫切換的方法。通過本文所提出動態(tài)重構(gòu)流程,用戶可以通過設計不同的重構(gòu)決策算法為不同的應用場景提供更為智能和高效的軟硬件管理方案。

Fahmy[1]提出了一種在FPGA上實現(xiàn)運行時自適應應用程序硬件重構(gòu)的系統(tǒng)框架,它把控制運行和處理機制分離以及抽離掉系統(tǒng)設計者重新配置硬件的細節(jié)。在此框架下,系統(tǒng)模型和軟件結(jié)構(gòu)體系被用來簡化基于FPGA的自適應應用程序設計。這與本文的工作非常類似,但是Fahmy[1]論文主要是研究具體的軟件架構(gòu),而本文側(cè)重于通用的軟硬件重構(gòu)流程。實時重構(gòu)嵌入式系統(tǒng)的整體方案(hArtes[2])是可重構(gòu)平臺的設計流程,它包括三個階段:算法的探索和翻譯(AET)、設計空間探索(DSE)和系統(tǒng)綜合(SS)。AET用C語言發(fā)展或翻譯應用程序,DSE階段包含任務劃分,任務優(yōu)化和分配給適合的硬件單元。SS階段實現(xiàn)嵌入式硬件/軟件協(xié)同設計和HDL生成及編譯執(zhí)行。hArtes設計流程的實驗結(jié)果表明,生成的設計提供了3.8倍的全面應用加速。然而,這種設計流程只適用于編譯時可重構(gòu)的系統(tǒng),這是因為它使用了Molen[3]編譯器作為主程序編譯器。

Hthreads[4]是一個用來指定應用程序線程在計算機處理單元(CPU)/現(xiàn)場可編程門陣列(FPGA)并行運行的混合程序模型。Hthreads的處理方法是通過互斥鎖來調(diào)度決策和恢復執(zhí)行線程。簡單接口可重構(gòu)計算(SIRC)[5]工程提供了簡單、可移植和可擴展的開源通信和同步API。它允許C++代碼在主機上運行過程中,與基于Verilog的映射在FPGA的電路進行通信,并通過內(nèi)在軟件接口和內(nèi)在硬件接口進行軟硬件同步。Eustache[6]提出了一個統(tǒng)一的配置和通信接口(UCCI)的軟、硬件解決方案,當任務在處理器上運行時它通過軟件API調(diào)用來實現(xiàn),當任務被映射到硬件加速單元時通過HDL代碼生成的硬件來實現(xiàn)。

Huang[7]提出了一種基于應用歷史記錄的在線算法,并充分考慮了各種重配置的開銷。這項研究工作采用了內(nèi)存沖突模型和涉及關鍵接口與電路問題的預定義重構(gòu)區(qū)域。在線算法計算出的“總收益”是決定是否將新方案加載到FPGA協(xié)處理器的主要依據(jù)。這項研究工作提出了運行前重構(gòu)方案,這是因為重新配置的決策是在應用程序執(zhí)行前作出的。對于數(shù)據(jù)相關的應用程序來說,程序運行過程中的數(shù)據(jù)變化會導致系統(tǒng)性能瓶頸的轉(zhuǎn)移,所以此類應用需要在程序運行過程中通過算法發(fā)現(xiàn)和調(diào)整軟硬件方案。

由于大部分消費電子類產(chǎn)品都需要考慮產(chǎn)品上市時間,而這些產(chǎn)品很強調(diào)人機交互和產(chǎn)品體驗,因此對于這些產(chǎn)品研發(fā)而言,他們除了關注系統(tǒng)性能外,更關注產(chǎn)品開發(fā)人員能否快速地在基礎平臺上開發(fā)應用。相對于傳統(tǒng)的應用開發(fā),基于可重構(gòu)系統(tǒng)的應用開發(fā)需要軟硬件的協(xié)同設計,如果可以將軟硬件的關聯(lián)隱藏起來,使得軟件設計人員不需要考慮硬件的因素,將能大大簡化可重構(gòu)應用程序的開發(fā)流程和復雜度。本文主要從嵌入式消費類電子產(chǎn)品的設計開發(fā)角度,探索可重構(gòu)系統(tǒng)[8~9]的運行時軟硬件重構(gòu)方法和流程。為了證明使本文所提方法的可行性,在FPGA上演示了多處理器片上系統(tǒng)的運行時軟硬件重構(gòu)應用程序。

2 運行時軟硬件重構(gòu)流程

運行時重構(gòu)的主要目的是在應用程序運行過程中能修改程序或硬件配置而無需停止或重新啟動。本文方法適用于可以被分解為一系列具有軟件和硬件功能序列的應用程序,目標是為基于標準化接口的嵌入式系統(tǒng)應用,并根據(jù)不同的應用需求動態(tài)適應硬件資源進行優(yōu)化架構(gòu)的應用程序在R-MPSoC的開發(fā)。以下是本文使用到的相關術語:

●XManager:一個通用處理器(GPP),主要負責整個可重構(gòu)多處理器系統(tǒng)的資源管理、任務調(diào)度、軟硬件重構(gòu)和輸入/輸出。

●XWorker:一個具有可定制化指令的處理器,主要用于執(zhí)行指定的計算任務。

●數(shù)據(jù)流:需要處理或者移動的數(shù)據(jù)集合。

●指令流:需要處理或者移動的指令序列。

●配置流:硬件配置所需要的二進制數(shù)據(jù)(例如:FPGA的bitstream)。

本文采用了與指定代理[10]和BORPH[11]中ghost處理器相當?shù)姆椒▽崿F(xiàn)軟硬件的動態(tài)重構(gòu)管理。XManager負責給系統(tǒng)中的每個XWorker指派計算任務并在所需要的時候采集它們的計算結(jié)果,XWorker一般會被指派完成圖像處理、加密處理、音頻處理或者視頻處理等計算密集型任務。運行Linux系統(tǒng)的XManager是整個多處理器系統(tǒng)的唯一管理者,圖1是XManager進行軟硬件動態(tài)重構(gòu)的完整流程。

R-MPSoC系統(tǒng)上電后自動地從非易失存儲器(如Flash)加載基于當前FPGA芯片的硬件方案(配置),然后分別為XManager加載操作系統(tǒng)和為XWorker加載啟動程序。XManager啟動含有重構(gòu)算法的任務管理進程。如果沒有特定配置請求或新的重構(gòu)決策,XManager就如一般的單處理器一樣執(zhí)行應用任務。根據(jù)系統(tǒng)和配置存儲來計算分配的資源計算出更合適的配置策略后,XManager任務管理進程將做出一個重構(gòu)系統(tǒng)的決定。XManager根據(jù)決定將新的硬件配置文件加載到系統(tǒng)主存中。XManager收到“READY”信號后先執(zhí)行FPGA的硬件重構(gòu),然后從本地存儲器尋找和任務匹配的軟件程序并給XWorker發(fā)送復位信號來執(zhí)行軟件安裝。安裝完畢后重新啟動XWorker。當XWorker準備就緒后,應用程序就可以在不同處理器和協(xié)處理器上運行。

在圖1的動態(tài)重構(gòu)流程中,Mx代表在XManager上的執(zhí)行步驟,Wx代表在XWorker上的執(zhí)行步驟,Dx代表局部重構(gòu)的執(zhí)行步驟。本文的方法中,所有的局部重構(gòu)步驟都由XManager執(zhí)行。

以下是XManager上的執(zhí)行步驟:

a)XManager從Flash等非易失性存儲設備中加載啟動文件;(M0)

b)根據(jù)啟動文件中的硬件部分對FPGA進行配置和初始化;(M1)

c)根據(jù)啟動文件中的軟件部分進行軟件環(huán)境安裝和設置,本例中將啟動petalinux操作系統(tǒng);(M2)

d)XManager自動加載動態(tài)重構(gòu)管理進程;(M3)

e)動態(tài)重構(gòu)管理進程采用特定的算法(本文后半部分將介紹算法的例子)輸出重構(gòu)決定,如果需要重構(gòu)就跳轉(zhuǎn)到j,否則繼續(xù)到f;(M4)

f)XManager加載通過函數(shù)調(diào)用或者線程加載新的指令序列;(M5)

g)XManager根據(jù)指定的輸入和輸出參數(shù)完成計算任務;(M6)

h)XManager完成了所有本地執(zhí)行的計算任務后,查詢XWorker的任務完成情況,如果XWorker狀態(tài)標志位DONE為1,則表示指派給XWorker的任務已經(jīng)完成,否則等待;(M7)

i)XManager檢查是否任務已經(jīng)完成,如果完成就跳轉(zhuǎn)到z結(jié)束此次的應用程序,否則就跳轉(zhuǎn)d繼續(xù)循環(huán)執(zhí)行;(M8)

j)XManager檢查硬件加速函數(shù)表中是否已經(jīng)有合適的硬件解決方案;(D0)

k)如果硬件沒有準備好就跳轉(zhuǎn)到l步驟開始重構(gòu),否則就將ENABLE標志位置1,并跳轉(zhuǎn)到f步驟繼續(xù)執(zhí)行;(D1)

l)XManager從緩存、Flash和服務器等不同的存儲層次加載新的軟硬件配置文件;(D2)

m)XManager將ENABLE標志位置0,確保XWorker在重構(gòu)流程結(jié)束前不會被指派新的任務;(D3)

n)XManager等待XWorker將當前的任務完成,只有XWorker為就緒狀態(tài)(DONE=1時)才能繼續(xù)下一步操作;(D4)

o)XManager對可重構(gòu)區(qū)域進行硬件的局部重構(gòu);(D5)

p)重構(gòu)完成后,XManager將相應的軟件執(zhí)行代碼加載到指定位置;(D6)

q)XManager更新系統(tǒng)的硬件加速函數(shù)表,并跳轉(zhuǎn)到d步驟繼續(xù)執(zhí)行;(D7)

r)程序結(jié)束。

以下是XWorker上的執(zhí)行步驟:

s)XWorker從Flash等非易失性存儲設備中加載啟動文件;(W0)

t)查詢ENABLE,如果為1則跳轉(zhuǎn)到u步驟繼續(xù)執(zhí)行,否則跳轉(zhuǎn)到u步驟執(zhí)行;(W1)

u)XWorker從默認的地址加載任務信息,包括輸入輸出參數(shù)和地址,所執(zhí)行的二進制代碼位置等;(W2)

v)XWorker開始執(zhí)行計算任務并將結(jié)果輸出到指定的地址空間;(W3)

w)XWorker將狀態(tài)改為就緒(DONE=1),等待新任務或者下一個數(shù)據(jù)塊的到來;(W4)

3 動態(tài)重構(gòu)決策算法

在本文所提出的運行時軟硬件重構(gòu)流程中,XManager通過對系統(tǒng)軟硬件的資源情況和預期性能增益來決定是否進行重構(gòu)。這個決策過程通常由監(jiān)控、決策和重構(gòu)三個環(huán)節(jié)組成。監(jiān)控環(huán)節(jié)是指XManager通過對系統(tǒng)中所有的計算任務完成情況和時間進行記錄,決策環(huán)節(jié)是指XManager每隔一定時間就啟動決策算法計算當前系統(tǒng)瓶頸并尋找更優(yōu)的軟硬件配置方案,重構(gòu)環(huán)節(jié)中XManager將對系統(tǒng)進行軟硬件重構(gòu)。

圖1 離線重構(gòu)流程圖

在實際的多處理器可重構(gòu)系統(tǒng)中,硬件的更換所引發(fā)軟硬件進程(或者說任務)的動態(tài)切換將產(chǎn)生額外的系統(tǒng)負載和延遲,如何在多個約束條件下最優(yōu)化利用有限的物理邏輯資源是一個典型的多維背包問題,因此很難在多項式時間內(nèi)獲得最優(yōu)解。本文采用的”先到先得”算法,由于不需要考慮替換策略,只按照任務的先后次序分配硬件資源,所以大大降低了重構(gòu)決策的復雜度,可以在極短的時間內(nèi)做出相對優(yōu)化的重構(gòu)決定。

先到先得算法(FCFS:First-Come-First-Served)的輸入是硬件加速函數(shù)表(指針)和待處理數(shù)據(jù)量(無符號整數(shù)),算法的詳細過程如圖2所示。XManager通過GetFreeXWorker函數(shù)獲取系統(tǒng)中空閑XWorker的ID號,如果該ID號有效,則通過CalculateGain評估其加速的最大增益,如果這個增益大于系統(tǒng)指定的閾值(本文中的閾值是一個設定的常量,一般來說與器件進行重構(gòu)的時間相關),則找出該XWorker中的可重構(gòu)模塊ID并調(diào)用動態(tài)軟硬件重構(gòu)函數(shù),最后使用XTaskCreateSC創(chuàng)建該硬件配置的計算任務。本算法的核心思想是,只考慮空閑的XWorker和XModule的重構(gòu)方案,如果沒有空閑資源,就不考慮軟硬件的重構(gòu)。

圖2 先到先得算法

4 實驗結(jié)果

為了演示本文所描述的運行時重構(gòu)流程,在XPSoC-M0W2架構(gòu)編譯運行了Crypto-PGM應用。在這個演示中,采用的運行時重構(gòu)決策算法是先到先得算法。這個算法只考慮了當前狀態(tài)下所需要的決策和重構(gòu)時間,因此這很容易實現(xiàn),并且可以取得顯而易見的性能優(yōu)化。

本次實驗中,XManager用XTasks和XFunc-API生成并指派計算任務XTasks給XWorker。XWorker首先在沒有任何硬件加速的情況下執(zhí)行這些XTasks。在XWorker執(zhí)行XTasks期間,XManager將阻塞直至XTasks完成后,才去讀取需要的結(jié)果。這種嘗試主要為了方便獲得線性的執(zhí)行時間,并因此計算出由于XTask通信、決策和軟硬件重構(gòu)所產(chǎn)生的額外花銷。本例中的加密算法是數(shù)據(jù)相關的,因此每個計算任務處理時間與數(shù)據(jù)相關。

圖3是基于先到先得算法進行運行時重構(gòu)的運行情況,本例的幾組特征描述如下:

●XPSoC-M0S2體系結(jié)構(gòu)模型

●阻塞型XTask

●指令粒度:XFunction

●數(shù)據(jù)粒度:修復粒度

●決策算法:先到先進行

●基于文件解決方案:F5+F6

●重構(gòu)粒度:最多兩個協(xié)處理器

●重構(gòu)頻率(Fr):每次迭代一次

圖3 基于先到先得算法的運行時重構(gòu)

●觀測和決策人物頻率(F):每XTask一次

5 結(jié)語

本文提出了基于FPGA的軟硬件運行時重構(gòu)流程和決策算法,通過任務觀察、增益決策和重新配置三個環(huán)節(jié)實現(xiàn)應用程序運行過程中的動態(tài)軟硬件重構(gòu),筆者也提出因軟硬件重構(gòu)所帶來的額外花銷,尤其是決策、通信和重構(gòu)等帶來的延時問題不容忽視。最后通過一個圖像加密應用演示了完整的運行時軟硬件重構(gòu)流程。但筆者也意識到,由于現(xiàn)有算法暫無考慮硬件的替換,存在著一定的局限性。在以后的研究中,將繼續(xù)深入研究動態(tài)重構(gòu)算法的優(yōu)化問題。

[1] S.Fahmy,J.Lotze,J.Noguera,L.Doyle,and R.Esser.Generic Software Framework for Adaptive Applications on FPGAs.Field Programmable Custom Computing Machines,2009.FCCM’09.17th IEEE Symposium on,pages 55~62,2009

[2] M.Rashid,F.Ferrandi,and K.Bertels.hArtes Design Flow for Heterogeneous Platforms.2009

[3] S.Vassiliadis,S.Wong,G.Gaydadjiev,K.Bertels,G.Kuzmanov,and E.Panainte.The MOLEN Polymorphic Processor.IEEE Transactions on Computers,pages 1~13,Sep 2004

[4] D.Andrews,R.Sass,E.Anderson,J.Agron,W.Peck,J.Stevens,F.Baijot,and E.Komp.Achieving Programming Model Abstractions for Recongurable Computing.Pages 1~11,Nov 2009

[5] K.Eguro.SIRC:An Extensible Recongurable Computing Communication API.Field-Programmable Custom Computing Machines(FC CM),2010 18th IEEE Annual International Symposium on,pages 135~138,2010

[6] Y.Eustache and J-Ph.Diguet.Reconguration Management in the Context of RTOS-Based HW/SW Embedded Systems.EURASIP Journal on Embedded Systems,2008:1~11,Jan 2008

[7] C.Huang and F.Vahid.Transmuting Coprocessors:Dynamic Loading of FPGA Coprocessors.Design Automation Conference,2009.DAC '09.46th ACM/IEEE,pages 848~851,2009

[8] J-Ph.Diguet,L.Ye,Y.Eustache,J.Crenne,P.Bomel,G.Gogniat,J.Vidal,and F.De Lamotte.Networked Self-Adaptive Systems:An Opportunity for Conguring in the Large.In ERSA'09,pages 81~90,2009

[9] L.Ye,J-Ph.Diguet,and G.Gogniat.Rapid Application Development on Multi-Processor Recongurable Systems.In FPL,Milano,Italy, 2010

[10] Y.Eustache and J-Ph.Diguet.Reconguration Management in the Context of RTOS-Based HW/SW Embedded Systems.EURASIP Journal on Embedded Systems,2008:1~11,Jan 2008

[11] H.So.Borph:An Operating System for FPGA-based Recongurable Computers.Citeseer,Jan 2007

Multiprocessor System on Chip Runtime Software and Hardware Reconfigurable Based on FPGA

YE Lin-feng,XIE Guo-bo,ZENG bi
(College of Computer,Guangdong University of Technology,Guangzhou 510006)

Determines precisely when the running application needs to be accelerated.The dynamic reconfigurable MPSoC is an interesting approach to optimize the sharing of resources between different applications/standards,minimize energy consumption and optimize system performance(DSP specific or coprocessor specific).Presents an adaptive method to perform on-the-fly HW/SW reconfiguration,according to application requirements to optimize performances.

Dynamically Partial Reconfiguration;Offline Reconfiguration;Reconfigurable Computing;Intelligent Computing;On-Demand Computing

1007-1423(2015)04-0053-06

10.3969/j.issn.1007-1423.2015.04.015

葉林鋒(1979-),男,廣東廣州人,博士研究生,講師研究方向為高性能計算、可重構(gòu)計算和并行計算

謝國波(1977-),男,廣東人,博士研究生,教授,研究方向為網(wǎng)絡與分布式系統(tǒng)

2014-12-23

2015-01-25

廣東省自然科學基金(No.S2012040007326)、廣東省教育部產(chǎn)學研合作專項資金(No.2012B091100191)

曾碧(1963-),女,廣東人,博士研究生,教授,研究方向為嵌入式系統(tǒng)和智能技術

猜你喜歡
應用程序嵌入式重構(gòu)
長城敘事的重構(gòu)
攝影世界(2022年1期)2022-01-21 10:50:14
刪除Win10中自帶的應用程序
電腦報(2019年12期)2019-09-10 05:08:20
北方大陸 重構(gòu)未來
搭建基于Qt的嵌入式開發(fā)平臺
北京的重構(gòu)與再造
商周刊(2017年6期)2017-08-22 03:42:36
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
論中止行為及其對中止犯的重構(gòu)
Altera加入嵌入式視覺聯(lián)盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
關閉應用程序更新提醒
電腦迷(2012年15期)2012-04-29 17:09:47
昭苏县| 涿州市| 周宁县| 稷山县| 乃东县| 黄山市| 岫岩| 冷水江市| 集贤县| 梁河县| 丰宁| 密山市| 祁东县| 保山市| 普安县| 镇远县| 岑巩县| 苍溪县| 清新县| 广丰县| 安陆市| 兰考县| 汪清县| 元朗区| 五莲县| 聂拉木县| 博兴县| 通渭县| 丘北县| 浏阳市| 昌黎县| 莆田市| 隆昌县| 高阳县| 兴山县| 耿马| 渝中区| 特克斯县| 定襄县| 鄂尔多斯市| 东平县|