摘 要:采用基于平臺級FPGA的SOC設(shè)計方法, 設(shè)計了一種基于多級PLB總線的可擴(kuò)展并行圖像處理系統(tǒng)。系統(tǒng)采用總線橋并行擴(kuò)展處理單元來增加系統(tǒng)處理性能和擴(kuò)展存儲訪問帶寬;通過數(shù)據(jù)分發(fā)模塊實現(xiàn)圖像數(shù)據(jù)輸入與處理流水線操作。時序功能仿真與硬件實現(xiàn)表明,該設(shè)計能靈活高效地實現(xiàn)系統(tǒng)結(jié)構(gòu)的并行擴(kuò)展,顯著提高了系統(tǒng)并行處理性能。
關(guān)鍵詞:片上系統(tǒng);處理器局部總線; 流水線; 圖像處理
中圖分類號:TP302.1 文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2008)07-2208-02
Designing of parallel image processing system based on multi-bus onchip
PAN Bo1, 2, YANG Gen-qing1, SUN Ning1, YIN Zeng-shan1
(1.Shanghai Institute of Microsystem Information Technology, Chinese Academy of Sciences, Shanghai 200050,China;2.Graduate School, Chinese Academy of Sciences, Beijing 100039, China)
Abstract:This paperintroduced grounded on the FPGA platform SOPC design methodology, a scalable parallel image processing system based on multilevel PLB. By using a distribution module, a pipeline operation was carried out in date input and process; and a bus bridge was applied to augment the parallel process elements. Bus functional simulation and hardware verification show that this design can flexibly realize parallel processing in system structure, and enhance the parallel process performance of the system remarkably.
Key words: SOC; PLB (processor local bus); pipeline; image process
片上系統(tǒng)(SOC)能在單個硅芯片上集成各種功能子模塊,通過片上總線互連實現(xiàn)系統(tǒng)級處理性能。特別是基于FPGA的可編程片上系統(tǒng)(SOPC),由于它能滿足系統(tǒng)對于體積、靈活性以及穩(wěn)定性的要求,在實時圖像處理系統(tǒng)中得到了廣泛的應(yīng)用。隨著圖像精度的不斷提高,在滿足系統(tǒng)實時性要求的情況下,處理任務(wù)負(fù)載將會大大增加。SOC通過在內(nèi)部擴(kuò)展多個處理單元,顯著地提高了系統(tǒng)處理能力。但應(yīng)該指出的是系統(tǒng)總線必須具備相應(yīng)的數(shù)據(jù)吞吐速率才能提高系統(tǒng)的整體性能。特別是較底層的圖像處理任務(wù)雖然算法簡單但是需要對數(shù)據(jù)進(jìn)行頻繁的訪問和操作。當(dāng)處理單元所需的數(shù)據(jù)訪問帶寬大于總線傳輸能力時將會造成總線競爭,進(jìn)而影響到圖像處理系統(tǒng)的實時性。
本文在基于平臺的SOPC設(shè)計技術(shù)基礎(chǔ)上,從系統(tǒng)并行擴(kuò)展的同時提高存儲訪問帶寬的角度出發(fā),設(shè)計了一種基于多級片上總線的可擴(kuò)展并行圖像處理系統(tǒng)。本文首先介紹了系統(tǒng)結(jié)構(gòu)框架與功能;然后對系統(tǒng)的總線帶寬以及并行擴(kuò)展性能進(jìn)行了分析與介紹;最后進(jìn)行時序仿真與硬件驗證。結(jié)果表明,本設(shè)計在靈活實現(xiàn)系統(tǒng)并行擴(kuò)展的同時,顯著提高了系統(tǒng)并行處理性能。
1 基于多級總線SOPC系統(tǒng)結(jié)構(gòu)設(shè)計
隨著圖像精度的不斷提高,在滿足系統(tǒng)實時性情況下必然要加大系統(tǒng)的計算性能,如在系統(tǒng)總線上擴(kuò)展處理單元,同時相應(yīng)地擴(kuò)展存儲帶寬以提供相應(yīng)的數(shù)據(jù)訪問速率。單總線結(jié)構(gòu)由于總線帶寬固定,勢必會成為系統(tǒng)數(shù)據(jù)傳輸?shù)钠款i,進(jìn)而影響到系統(tǒng)的實時性。
不同于ASIC(專用集成電路),SOC主要通過IP核復(fù)用來實現(xiàn)系統(tǒng)級功能,通過標(biāo)準(zhǔn)片上總線接口,可以使SOC系統(tǒng)中的IP功能單元具有較好的可移植性。本文設(shè)計了一種基于多級PLB的可擴(kuò)展并行處理架構(gòu),如圖1所示。通過片上總線擴(kuò)展了多個處理單元。 處理器PE-m是主控制器,功能為配置其他從單元;Distribution模塊為數(shù)據(jù)分發(fā)控制模塊,用來實現(xiàn)圖像數(shù)據(jù)輸入與處理的流水線操作;處理單元PE1和PE2為并行圖像處理單元,它們作為從設(shè)備通過PLB-PLB總線橋掛接于總線PLB-m之上,同時也是局部總線PLB-1和PLB-2的惟一主設(shè)備。高速同步雙口SRAM作為局部總線上的從設(shè)備,用來存儲原始圖像數(shù)據(jù)與數(shù)據(jù)處理結(jié)果。
并行處理流程如下,外部輸入的圖像數(shù)據(jù)在distribution模塊控制下以分塊形式輸入,前一個數(shù)據(jù)塊通過片內(nèi)邏輯互連寫入SRAM的端口A,隨后啟動PE1通過端口B進(jìn)行數(shù)據(jù)訪問與處理;同時后一個數(shù)據(jù)塊寫入PE2處理單元的局部存儲器,隨后啟動PE2進(jìn)行處理。PE1和PE2處理完成后以中斷方式通知主控制器進(jìn)行后續(xù)操作。
總線占用情況如圖1所示,除了與主控制器交互以外,從處理單元PE1和PE2將一直占用局部總線;主控制器PE通過distribution模塊訪問存儲器來得到處理結(jié)果,圖像數(shù)據(jù)的輸入通路不占用系統(tǒng)總線。整個操作過程滿足數(shù)據(jù)驅(qū)動原則,即由數(shù)據(jù)塊的輸入來驅(qū)動整個流水線操作。對于圖像精度的增加,即單位時間增加了輸入圖像的數(shù)據(jù)量,則可通過總線橋在PLB-m總線上并行擴(kuò)展如圖1虛線框內(nèi)部所示單元來增加系統(tǒng)處理性能。
2 系統(tǒng)性能分析
本文通過多級總線擴(kuò)展并行處理單元來滿足SOPC圖像處理系統(tǒng)對實時性的要求,主要分析了該系統(tǒng)的各級總線帶寬以及采用該結(jié)構(gòu)的并行系統(tǒng)加速比性能。
2.1 總線帶寬分析
本文采用的PLB片上總線是IBM公司研究開發(fā)的高端SOC的片上系統(tǒng)CoreConnect-v3.5[1]總線協(xié)議的其中一部分。相對于其他常用的片上總線,如AMBA總線與Wishbone總線, CoreConnect更適合高性能與復(fù)雜計算系統(tǒng)的互連。PLB作為系統(tǒng)總線主要掛接多主從設(shè)備、可地址流水、讀寫并發(fā)以及突發(fā)(burst)操作,同時支持低延遲、靈活性好的高帶寬數(shù)據(jù)通道。
PLB對從設(shè)備的數(shù)據(jù)訪問操作是采用應(yīng)答方式進(jìn)行的,一次讀或?qū)懖僮骺煞譃閱蝹鬏斉c突發(fā)模式。考慮到系統(tǒng)中采用的流水線型并行SRAM的數(shù)據(jù)信號比存儲控制信號延遲兩個時鐘周期,單傳輸將加大總線訪問存儲器時間開銷,且由于定長突發(fā)相對于不定長突發(fā)具有更高的總線利用率,系統(tǒng)在圖像數(shù)據(jù)的讀寫過程中采用定長突發(fā)傳輸模式;同時為了實現(xiàn)存儲帶寬最大化,在系統(tǒng)內(nèi)部通過存儲控制單元實現(xiàn)圖像數(shù)據(jù)的對齊,多個像素灰度值作為一個存儲單元。由于定長突發(fā)的操作數(shù)據(jù)長度可按1~16進(jìn)行,總線寬度是64 bit,這樣一次突發(fā)操作的數(shù)據(jù)塊長度為4~128 Byte,從而在極大地減小總線應(yīng)答開銷的同時增強了總線的有效帶寬和利用率。
由于兩次相鄰操作之間有應(yīng)答開銷,對于訪問同樣數(shù)據(jù)量,一次操作訪問的數(shù)據(jù)量越大其總線有效帶寬就越大;同時相鄰操作的異同也決定了總線的有效利用率。設(shè)N為突發(fā)數(shù)據(jù)長度,G為相鄰操作之間應(yīng)答所需的開銷,m為突發(fā)操作的平均時鐘數(shù),則單位總線時鐘的數(shù)據(jù)傳輸量Q(bit/clk)=(64 Nm)/(Nm+G)。圖2給出了64位PLB在不同長度定長突發(fā)方式下,分別以讀、寫及間隔讀寫操作方式下的存儲訪問帶寬。
圖2中,橫軸為定長突發(fā)數(shù)據(jù)長度,縱軸為單總線時鐘周期內(nèi)的傳輸速率。由于系統(tǒng)各級PLB均采用一個主設(shè)備結(jié)構(gòu),
對于各級處理單元總線平均帶寬均為 B=f(PrQr+PwQw)。其中:f為系統(tǒng)總線頻率;Pr和Pw分別為讀寫操作的比重。系統(tǒng)采用的總線頻率f=100 MHz,若各處理單元均采用定長16次操作,取Pr=Pw=0.5,則各級總線帶寬為612 MBps。
2.2 系統(tǒng)并行擴(kuò)展加速比
圖像精度的增加也就意味著單位時間內(nèi)要處理更多的圖像數(shù)據(jù)。考慮到自圖像傳感器如CCD輸出圖像數(shù)據(jù)類型為順序單行類型,雖然緩沖后輸入的圖像數(shù)據(jù)在塊內(nèi)為隨機單點類型,但整體上數(shù)據(jù)塊仍是按照時間順序輸入的序列[3],因此系統(tǒng)結(jié)構(gòu)采用流水線并行方式進(jìn)行處理。圖3比較了單處理單元與多處理單元流水線操作在時間開銷上的對比。中間部分為數(shù)據(jù)處理開銷;1、1表示圖像數(shù)據(jù)源輸入和結(jié)果數(shù)據(jù)輸出時間開銷;數(shù)據(jù)塊的大小以處理任務(wù)所需要的圖像領(lǐng)域范圍來確定。
由圖3可知,設(shè)處理單元PE1、PE2為完全相同的邏輯處理單元,且對數(shù)據(jù)塊1、2的處理時間均為Tp,則在連續(xù)工作狀態(tài)下,流水線輸入2N個數(shù)據(jù)塊的時間開銷比為R=(Tin+Tout+2NTp)/(2Tin+Tout+NTp)。當(dāng)N→∞時,R→2,即單位時間內(nèi)雙處理單元處理的數(shù)據(jù)量為單處理單元兩倍。考慮到更一般的情況,將并行處理單元擴(kuò)展到P個,連續(xù)工作狀態(tài)下的時間開銷比將為 Rn→∞=(Tin+Tout+PNTp)/(2Tin+Tout+NTp)=P。即可獲得的加速比為P。應(yīng)該指出的是,在數(shù)據(jù)塊以圖3所示流水線方式輸入的情況下,并行處理單元的擴(kuò)展數(shù)目存在上限,即P不應(yīng)大于Tp/Tin,否則將存在處理單元的冗余,導(dǎo)致系統(tǒng)效率的下降。
3 設(shè)計驗證
設(shè)計過程中,對設(shè)計進(jìn)行了包括代碼語法檢查、總線行為和時序驗證以及系統(tǒng)功能驗證。通過總線功能仿真工具BFM[2,5]與虛擬存儲設(shè)備模型搭建了一個模塊化可配置的驗證系統(tǒng),快速高效地進(jìn)行系統(tǒng)邏輯功能驗證。在驗證過程中,采用Xilinx公司IP核FIR[6] (H_taps=V_taps=5)和FFT[7]例化處理單元進(jìn)行了系統(tǒng)性能驗證。表1給出了系統(tǒng)在不同算法和結(jié)構(gòu)下的仿真結(jié)果。
仿真過程主要考察通過總線擴(kuò)展并行處理單元對系統(tǒng)性能的影響。所以各單元采用相同邏輯結(jié)構(gòu)與算法。原始圖像大小為以流水線方式輸入,大小2K×2K×16 bit。存儲器同步時鐘與總線時鐘均為100 MHz。若在單總線結(jié)構(gòu)SOPC中,在算法FIR(H_taps=V_taps=5)和FFT處理單元總線占用率分別為61.0%和62.5%情況下,單總線的并行擴(kuò)展將會存在總線競爭而增加系統(tǒng)開銷。由表1可知,通過多級總線擴(kuò)展由于可以獲得較大的總線帶寬而產(chǎn)生很少的并行開銷,具有較高的并行加速比。
圖4給出了系統(tǒng)進(jìn)行2D-FIR濾波時的仿真波形。圖示上面部分為PLB總線信號;中間部分為2D-FIR時序信號,下部分為存儲器控制時序信號。同步時鐘為100 MHz情況下SRAM的帶寬為800 MBps[8],操作中采用64位PLB總線128 Byte定長突發(fā)方式,能在單總線周期內(nèi)實現(xiàn)一個存儲單元(64 bit)的讀寫,極大地實現(xiàn)了系統(tǒng)高帶寬存儲。
4 結(jié)束語
為了應(yīng)對圖像精度不斷增長對于圖像處理系統(tǒng)實時性的挑戰(zhàn),本文設(shè)計了一種基于多級SOC總線的可擴(kuò)展并行圖像處理系統(tǒng)。對比驗證給出的實驗結(jié)果表明,該系統(tǒng)能通過靈活高效的并行擴(kuò)展圖像處理單元來滿足圖像處理對于系統(tǒng)實時性提出的要求。同時由于SOPC可編程邏輯系統(tǒng)的特點,對于不同的圖像處理任務(wù),算法與數(shù)據(jù)結(jié)構(gòu)可通過系統(tǒng)的可重構(gòu)特性來減少系統(tǒng)資源開銷,進(jìn)一步提高系統(tǒng)并行處理效率。
參考文獻(xiàn):
[1]IBM Inc. 64-bit processor local bus architecture specifications [K].[S.l.]:Research Triangle Park,2001.
[2]IBM Inc. Processor local bus functional model toolkit user’s manual, version 4.7 [K].[S.l.]:Research Triangle Park,2002.
[3]蘇光大. 圖像并行處理技術(shù) [M]. 北京:清華大學(xué)出版社,2002.
[4]EL-REWINI H,ABD-EL-BARR M. Advanced computer architecture and parallel processing [M]. [S.l.]:Wiley,2005.
[5]Xilinx Inc. BFM simulation tutorial [EB/OL]. (2006-07-18)[2007-04-16].http://www. xilinx.com.
[6]Xilinx Inc. Two-dimensional linear filtering [EB/OL]. (2006-05-09)[2007-04-10]. http://www. xilinx.com.
[7]Xilinx Inc. Fast fourier transform v3.2 [EB/OL].(2006-01-11)[2007-05-12].http://www. xilinx.com.
[8]FLEx72TM 3.3V 64K/128K/256K x 72 synchronous dual-port RAM [EB/OL].(2006-05-02)[2007-04-18]. http://www.cypress.com.
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。”