一種基于Zynq平臺的資源調(diào)度方法
【專利摘要】本發(fā)明公開了一種基于Zynq平臺的資源調(diào)度方法,所述Zynq平臺包括FPGA和雙核處理器,所述的資源調(diào)度方法包括:步驟1,對Zynq平臺的FPGA資源進(jìn)行評估;步驟2,對FPGA資源不足以處理的復(fù)雜算法進(jìn)行分割,得到若干個處理子模塊;步驟3,針對每個處理子模塊構(gòu)建一個FIFO模塊;步驟4,雙核處理器通過對應(yīng)的FIFO模塊接收FPGA下發(fā)的處理子模塊計(jì)算任務(wù),并進(jìn)行實(shí)時處理,處理結(jié)果通過對應(yīng)的FIFO模塊反饋至FPGA。本發(fā)明提供的基于Zynq平臺的資源調(diào)度方法,能夠解決復(fù)雜應(yīng)用下PL資源不足的情況,并且最大程度上發(fā)揮PS和PL的計(jì)算性能。
【專利說明】
一種基于Zynq平臺的資源調(diào)度方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及可拓展處理平臺領(lǐng)域,具體涉及一種基于Zynq平臺的資源調(diào)度方法。
【背景技術(shù)】
[0002] Zynq系列是Xilinx公司推出的可拓展處理平臺,在視頻監(jiān)控、汽車駕駛輔助、工廠 自動化等高端嵌入式應(yīng)用場景下應(yīng)用廣泛。針對特定應(yīng)用場景下,處理算法性能要求高。 Zynq平臺包含的硬件資源非常豐富,但是需要實(shí)時處理大數(shù)據(jù)的時候,由于需要使用大量 的查找表和LUT,可配置邏輯塊(CLB)資源往往會顯示不足,當(dāng)算法復(fù)雜度提升的時候,處理 需要使用較多的乘法器,也會導(dǎo)致PL(即FPGA)資源不足。在以上的復(fù)雜應(yīng)用場景下,需要解 決PL資源不足的問題,以便很好的提升系統(tǒng)整體的處理性能,充分的發(fā)揮zynq平臺的優(yōu)勢, 將PS (即雙核處理器)和PL更好的結(jié)合。
[0003] 針對PL資源不足的情況,傳統(tǒng)的做法是從算法角度降低復(fù)雜度,減少邏輯處理單 元的使用,但這種方法實(shí)際的效果并不明顯,因?yàn)樗惴◤?fù)雜度很難降低。另外的選擇是更換 芯片,但是對于實(shí)際應(yīng)用而言,又會存在著能耗、尺寸和功能等多方面的問題。因此,本發(fā)明 能夠在zynq平臺下充分發(fā)揮PS的計(jì)算優(yōu)勢,解決PL資源不足的問題,具有廣闊的應(yīng)用前景。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供了一種基于Zynq平臺的資源調(diào)度方法,能夠解決復(fù)雜應(yīng)用下PL資源不 足的情況,并且最大程度上發(fā)揮PS和PL的計(jì)算性能。
[0005] 一種基于Zynq平臺的資源調(diào)度方法,所述Zynq平臺包括FPGA(即PL)和雙核處理器 (即PS),所述的資源調(diào)度方法包括:
[0006] 步驟1,對Zynq平臺的FPGA資源進(jìn)行評估;
[0007] 步驟2,對FPGA資源不足以處理的復(fù)雜算法進(jìn)行任務(wù)分割,得到若干個處理子模 塊;
[0008] 步驟3,針對每個處理子模塊構(gòu)建一個FIFO模塊;
[0009]步驟4,雙核處理器通過對應(yīng)的FIFO模塊接收FPGA下發(fā)的處理子模塊計(jì)算任務(wù),并 進(jìn)行實(shí)時處理,處理結(jié)果通過對應(yīng)的FIFO模塊反饋至FPGA。
[0010] 本發(fā)明將復(fù)雜算法處理劃分成多個處理子模塊,通過PS進(jìn)行實(shí)時計(jì)算,在進(jìn)行大 數(shù)據(jù)處理時,能夠顯著減少系統(tǒng)對于PL資源需求,提升了系統(tǒng)的處理性能。
[0011] 本發(fā)明中所述的復(fù)雜算法,是指僅依賴FPGA資源不能夠滿足處理要求的算法,進(jìn) 行任務(wù)分割時,根據(jù)計(jì)算復(fù)雜度將算法任務(wù)劃分為若干個處理子模塊,且每個處理子模塊 包含輸入輸出模塊。
[0012] 利用PS可以實(shí)現(xiàn)實(shí)時數(shù)據(jù)的處理,能夠?qū)Ω魈幚碜幽K利用FIFO模塊輸入的數(shù)據(jù) 進(jìn)行處理。
[0013] 作為優(yōu)選,步驟1中,針對FPGA中的可配置邏輯塊(CLB)資源、乘法器資源以及DSP 處理單元(DSP slice)資源進(jìn)行評估。
[0014]作為優(yōu)選,所述的FIFO模塊通過GPI0掛載,F(xiàn)IFO通訊采用AXI總線協(xié)議。
[0015]本發(fā)明用于連接PS和PL的FIFO模塊的傳輸位寬32bit,深度4096,傳輸長度為16字 節(jié)的整數(shù)倍。
[0016] 為了實(shí)現(xiàn)PS和PL之間的通訊,本發(fā)明采用用戶自定義的驅(qū)動協(xié)議,實(shí)現(xiàn)雙邊可以 收發(fā)任意長度的數(shù)據(jù)。
[0017] 在數(shù)據(jù)傳輸前封裝頭部,由4個16字節(jié)的整型數(shù)據(jù)組成,第一個為規(guī)定的特殊字 節(jié),第二為實(shí)際字節(jié)長度,后兩個預(yù)留,可以不做處理。
[0018] 數(shù)據(jù)按照16字節(jié)的整數(shù)倍發(fā)送,不足16字節(jié)整數(shù)倍的數(shù)據(jù),補(bǔ)齊發(fā)送。
[0019] 本發(fā)明提供的基于Zynq平臺的資源調(diào)度方法能夠充分利用Zynq平臺自身的資源, 最大化的發(fā)揮PS和PL的計(jì)算能力,不需要再通過繁瑣的降低算法復(fù)雜度來減少PL資源的使 用,具有更廣闊的應(yīng)用前景。
【附圖說明】
[0020] 圖1為本發(fā)明基于Zynq平臺的資源調(diào)度方法的流程圖;
[0021]圖2為本發(fā)明基于Zynq平臺的資源調(diào)度方法的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]下面結(jié)合附圖,對本發(fā)明基于Zynq平臺的資源調(diào)度方法做詳細(xì)描述。
[0023] 如圖1所示,一種基于Zynq平臺的資源調(diào)度方法,Zynq平臺包括FPGA和雙核處理 器,資源調(diào)度方法包括:
[0024] 步驟1,對Zynq平臺的FPGA資源進(jìn)行評估。
[0025] 對PL資源評估主要是針對FPGA中的可配置邏輯塊(CLB)資源、乘法器資源以及DSP 處理單元(DSP slice)資源。
[0026] 步驟2,對FPGA資源不足以處理的復(fù)雜算法進(jìn)行任務(wù)分割,得到若干個處理子模 塊。
[0027]進(jìn)行任務(wù)分割時,依據(jù)計(jì)算的復(fù)雜度進(jìn)行,劃分得到的每個處理子模塊均包含輸 入輸出模塊。
[0028] 步驟3,針對每個處理子模塊構(gòu)建一個FIFO模塊。
[0029] 通過FIFO模塊將處理子模塊和PS相連,F(xiàn)IFO模塊通過GPI0掛載,F(xiàn)IFO通訊采用的 是AXI總線協(xié)議。
[0030]步驟4,雙核處理器通過對應(yīng)的FIFO模塊接收FPGA下發(fā)的處理子模塊計(jì)算任務(wù),并 進(jìn)行實(shí)時處理,處理結(jié)果通過對應(yīng)的FIFO模塊反饋至FPGA。
[0031] 雙核處理器接收到對應(yīng)的處理子模塊后,對各處理子模塊進(jìn)行并行處理,適用于 大數(shù)據(jù)的運(yùn)算。
[0032] PS通過FIFO模塊和PL進(jìn)行數(shù)據(jù)交互時,采用自定義的驅(qū)動協(xié)議,實(shí)現(xiàn)雙邊可以收 發(fā)任意長度的數(shù)據(jù)。數(shù)據(jù)傳輸協(xié)議格式見表1:
[0033]表 1
[0035] FIFO通訊采用封裝的驅(qū)動協(xié)議,數(shù)據(jù)傳輸前封裝頭部,由4個16字節(jié)的整型數(shù)據(jù), 第一個是規(guī)定的特殊字節(jié),第二個是實(shí)際長度字節(jié),后兩個預(yù)留,可以不做處理。數(shù)據(jù)按照 16字節(jié)的倍數(shù)發(fā)送,不足16字節(jié)整數(shù)倍的數(shù)據(jù),補(bǔ)齊發(fā)送。
[0036]本發(fā)明中的zynq平臺結(jié)構(gòu)如圖2所示:
[0037] PL部分根據(jù)算法復(fù)雜度對邏輯資源進(jìn)行評估,對復(fù)雜度較高的算法處理部分劃分 成若干個處理子模塊;
[0038]對若干處理子模塊對應(yīng)構(gòu)建FIFO模塊,通過GPI0實(shí)現(xiàn)硬件上的連接,采用AXI總線 協(xié)議,數(shù)據(jù)傳輸使用定義的驅(qū)動協(xié)議,實(shí)現(xiàn)雙邊的數(shù)據(jù)任意收發(fā)。
[0039] PS部分對應(yīng)若干進(jìn)程,根據(jù)算法需求,可以實(shí)時多進(jìn)程并行處理,節(jié)約了算法處理 過程的時間,同時也解決了 PL部分邏輯資源不足的問題。
[0040] FIFO模塊作為數(shù)據(jù)轉(zhuǎn)接模塊,將PS計(jì)算數(shù)據(jù)通過FIFO模塊發(fā)送給PL模塊,PL模塊 將計(jì)算結(jié)果進(jìn)行綜合處理。
[0041]采用本方法能夠解決zynq平臺資源不足的問題,能夠充分利用zynq平臺自身的資 源,最大化的發(fā)揮PS和PL的計(jì)算能力,不需要再通過繁瑣的降低算法復(fù)雜度來減少PL資源 使用,有利于復(fù)雜應(yīng)用場景下的系統(tǒng)拓展和功能增強(qiáng)。
[0042]以上僅為本發(fā)明的一個實(shí)施例,并不能以此限制本發(fā)明,凡在本發(fā)明的思想和方 法范圍內(nèi),所做的任何修改、改進(jìn),均應(yīng)包含在本發(fā)明保護(hù)的范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 一種基于Zynq平臺的資源調(diào)度方法,其特征在于,所述Zynq平臺包括FPGA和雙核處 理器,所述的資源調(diào)度方法包括: 步驟1,對Zynq平臺的FPGA資源進(jìn)行評估; 步驟2,對FPGA資源不足以處理的復(fù)雜算法進(jìn)行分割,得到若干個處理子模塊; 步驟3,針對每個處理子模塊構(gòu)建一個FIFO模塊; 步驟4,雙核處理器通過對應(yīng)的FIFO模塊接收FPGA下發(fā)的處理子模塊計(jì)算任務(wù),并進(jìn)行 實(shí)時處理,處理結(jié)果通過對應(yīng)的FIFO模塊反饋至FPGA。2. 如權(quán)利要求1所述的基于Zynq平臺的資源調(diào)度方法,其特征在于,步驟1中,針對FPGA 中的可配置邏輯塊資源、乘法器資源以及DSP處理單元資源進(jìn)行評估。3. 如權(quán)利要求1所述的基于Zynq平臺的資源調(diào)度方法,其特征在于,每個處理子模塊包 含輸入輸出模塊。4. 如權(quán)利要求1所述的基于Zynq平臺的資源調(diào)度方法,其特征在于,所述的FIFO模塊通 過GPIO掛載。5. 如權(quán)利要求1所述的基于Zynq平臺的資源調(diào)度方法,其特征在于,F(xiàn)IFO通訊采用AXI 總線協(xié)議。
【文檔編號】G06F9/50GK105912400SQ201610218025
【公開日】2016年8月31日
【申請日】2016年4月8日
【發(fā)明人】陳耀武, 田翔, 蔣榮欣, 邱曉煜
【申請人】浙江大學(xué)