專利名稱:片上系統(tǒng)構(gòu)建方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種片上系統(tǒng)構(gòu)建方法。
背景技術(shù):
目前,隨著計算機技術(shù)的日益普及和人們對安全驗證的廣泛需求,人臉識別技術(shù)以其獨 有的不可替代性而得到極大的發(fā)展和日益廣泛的應(yīng)用,已經(jīng)成為身份驗證的重要手段。人臉 檢測是人臉識別的關(guān)鍵技術(shù),由于其運算量大、運算復雜度高,所以人臉檢測大都應(yīng)用在PC 機與DSP上,算法是基于軟件實現(xiàn),因此也僅能對代碼進行軟件優(yōu)化,而無法實現(xiàn)對硬件的 優(yōu)化,如此極大地制約了人臉識別技術(shù)的發(fā)展,致使其難以在各類嵌入式設(shè)備中快速有效的 運行。
因此,如何解決現(xiàn)有技術(shù)存在的缺點實已成為本領(lǐng)域技術(shù)人員亟待解決的課題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種片上系統(tǒng)構(gòu)建方法,以提高系統(tǒng)的運行速度,降低系統(tǒng)的體 積及功耗。
為了達到上述目的,本發(fā)明提供的片上系統(tǒng)構(gòu)建方法包括步驟1)根據(jù)實際要完成的功 能開發(fā)設(shè)計相應(yīng)的運行程序,并對所述程序進行性能評測,以找出所述程序中耗時超過預設(shè) 值的運算部分;2)根據(jù)所設(shè)計的運行程序初步構(gòu)建一片上系統(tǒng),并對所述片上系統(tǒng)進行初步 調(diào)試,所述片上系統(tǒng)包括處理器及相應(yīng)必要的外圍設(shè)備;3)根據(jù)性能評測結(jié)果在所述片上系 統(tǒng)中添加相應(yīng)加速模塊,并使所述加速模塊通過總線與所述片上系統(tǒng)的處理器進行數(shù)據(jù)通訊, 其中,所述加速模塊能對所設(shè)計的運行程序中耗時超過預設(shè)值的運算部分進行輔助處理以提 高片上系統(tǒng)的運行速度;4)驗證所添加的加速模塊的功能以確定其功能的正確性;5)將所 設(shè)計的運行程序載入己添加有通過驗證的加速模塊的片上系統(tǒng)中,對所述片上系統(tǒng)對進行整 體性能調(diào)試及評測以進一步優(yōu)化所述片上系統(tǒng)。
其中,所述加速模塊可通過快速單向鏈路(FSL)總線與所述片上系統(tǒng)的處理器進行數(shù)據(jù) 通訊,構(gòu)建的片上系統(tǒng)可為基于現(xiàn)場可編程門陣列(FPGA)的人臉檢測的系統(tǒng),所述處理器 可為Microblaze處理器。
本發(fā)明提出的片上系統(tǒng)在構(gòu)建時通過對運行程序的性能評測以添加相應(yīng)的加速模塊,可以實現(xiàn)對整個硬件平臺進行優(yōu)化配置,在系統(tǒng)中對于特定運算進行硬件加速,如此可有效提 高構(gòu)建的片上系統(tǒng)的運行速度,同時其具有體積小、功耗低等優(yōu)點。
圖1為本發(fā)明的片上系統(tǒng)構(gòu)建方法的操作步驟流程圖。
圖2為本發(fā)明的片上系統(tǒng)構(gòu)建方法所構(gòu)建的片上系統(tǒng)結(jié)構(gòu)示意圖。
圖3為本發(fā)明的片上系統(tǒng)構(gòu)建方法所構(gòu)建的片上系統(tǒng)的人臉檢測程序的檢測過程示意圖。
具體實施例方式
請參閱圖l,本發(fā)明的片上系統(tǒng)構(gòu)建方法主要包括以下步驟-
第一步根據(jù)實際要完成的功能開發(fā)設(shè)計相應(yīng)的運行程序,并對所述程序進行性能評測,以 找出所述程序中耗時超過預設(shè)值的運算部分,例如,當需要完成一人臉檢測功能時,開發(fā)者 設(shè)計一人臉檢測程序,然后由性能評測工具對人臉檢測程序進行算法的功能驗證,同時評測 工具對整個人臉檢測程序進行性能評測,找出算法中較為耗時的運算作為硬件加速的依據(jù), 性能評測工具還會給出人臉檢測程序中各個子函數(shù)被調(diào)用次數(shù)以及運行時間,開發(fā)者可以根 據(jù)評測結(jié)果對函數(shù)進行研究,最終確定需要進行硬件加速的運算。
第二步根據(jù)所設(shè)計的運行程序初步構(gòu)建一片上系統(tǒng)(SoC),所述片上系統(tǒng)包括處理器及相 應(yīng)必要的外圍設(shè)備,通常在初步建構(gòu)時包括兩大部分,即處理器配置與外圍設(shè)備接口配置兩 部分,在處理器配置階段,可配置的單元包括桶形移位器、浮點運算單元、硬件除法器、 指令與數(shù)據(jù)緩存器(Cache)等,可以根據(jù)開發(fā)者對片上系統(tǒng)的要求來進行配置,在外圍設(shè)備 配置階段,如果在程序調(diào)試過程中用到串口,那么需要選擇串口,在外圍設(shè)備接口配置階段, 除了串口,開發(fā)者還可根據(jù)自己的需要配置其他單元,例如,網(wǎng)絡(luò)模塊、外部存儲器模塊, Block Ram模塊等,請參見圖2,整個SoC硬件系統(tǒng)初步構(gòu)建完成之后,包括一 Microblaze 處理器、在所述Microblaze處理器左側(cè)連接的一個快速存取的存儲器(Bram),兩者通過局 部存儲器總線(Local Memory Bus)連接,所述Bram的大小可以由開發(fā)者指定,所述Microblaze 處理器右側(cè)連接指令緩存器(I- Cache Bram)與數(shù)據(jù)緩存器(D-Cache Bram),對于是否采 用Cache以及Cache大小可以由開發(fā)者指定,所述Microblaze處理器與其他一些外圍設(shè)備, 例如網(wǎng)口、其他外圍設(shè)備,分別連接到片上外圍總線(0PB)總線,對于其他外圍設(shè)備,開 發(fā)者可以根據(jù)自己設(shè)計的系統(tǒng)要求來選擇,例如可包括網(wǎng)口 (UART)、存儲器控制器、外部
存儲器與串口等,而存儲器控制器可與片外存儲器相連接,由于0PB總線采用仲裁機制,所 以連接外部低速設(shè)備,此外,所述Microblaze處理器還可通過數(shù)據(jù)線(Cache Link)與靜態(tài) 隨機存儲器(SRAM)相連接,在對SoC硬件平臺初步構(gòu)建完成之后,需要對整個平臺與調(diào)試 系統(tǒng)進行初步的功能測試,主要方法是編寫一個較為簡單的應(yīng)用程序,并嘗試在SoC硬件平 臺上運行,在超級終端下觀察輸出結(jié)果正確與否,此與現(xiàn)有技術(shù)類似,在此不再詳述。
第三步根據(jù)性能評測結(jié)果在所述片上系統(tǒng)中添加相應(yīng)加速模塊,并使所述加速模塊通過總 線與所述片上系統(tǒng)的處理器進行數(shù)據(jù)通訊,其中,所述加速模塊能對所設(shè)計的運行程序中耗 時超過預設(shè)值的運算部分進行輔助處理以提高片上系統(tǒng)的運行速度,請參見圖2,在SoC硬件 系統(tǒng)中添加多個加速模塊作為Microblaze處理器的協(xié)處理單元,兩者通過FSL總線連接,在 掛接成功后,加速模塊只是生成了模塊接口而不執(zhí)行任何功能,所以,需要進行加速模塊的 功能設(shè)計,加速模塊的功能包括接收數(shù)據(jù)、處理數(shù)據(jù)、發(fā)送數(shù)據(jù)三個基本狀態(tài),對于人臉檢 測系統(tǒng)中的加速模塊,使用FSL總線與Microblaze處理器相連接,F(xiàn)SL實際上是一個深度可 配置的FIF0,每個FSL是單向傳輸,而加速模塊與Microblaze處理器需要進行數(shù)據(jù)的雙向傳 輸,所以,每個加速模塊通過兩條FSL與Microblaze處理器相連,兩者的數(shù)據(jù)交互過程可簡 單描述為Microblaze處理器把需要處理的數(shù)據(jù)依次送入FSL,加速模塊首先接收從 Microblaze處理器傳來的數(shù)據(jù),之后進入處理狀態(tài),在數(shù)據(jù)處理結(jié)束后,加速模塊把計算結(jié) 果依次送回Microblaze處理器。
第四步在對加速模塊設(shè)計結(jié)束之后,需要首先驗證加速模塊功能的正確性,具體方法為編 寫簡單應(yīng)用程序,通過Microblaze處理器向加速模塊送入數(shù)據(jù),經(jīng)過處理通過串口觀察模塊 輸出數(shù)據(jù),以確定加速模塊功能的正確性。
第五步將所設(shè)計的運行程序載入已添加有通過驗證的加速模塊的片上系統(tǒng)中,對所述片 上系統(tǒng)對進行整體性能調(diào)試及評測以進一步優(yōu)化所述片上系統(tǒng),在確認加速模塊功能正確后, 需要在人臉檢測程序中使用加速模塊來完成特定的功能,在這一步不僅需要驗證人臉檢測程 序在使用了加速模塊后的功能正確性,還需要對整個系統(tǒng)的性能進行評估,以確定進一步的 優(yōu)化方案,請參見圖3,其為人臉檢測程序的檢測過程示意圖,所述片上系統(tǒng)啟動后首先進行 初始化即載入人臉檢測程序,之后加載待檢測圖片與分類器,在對待檢測圖片進行檢測之前, 人臉檢測程序需要對圖片進行預處理,主要包括積分圖的計算,之后進入檢測階段,檢測過 程是通過檢測子窗口對圖片的遍歷來完成的,為適應(yīng)不同大小的人臉,檢測窗口需要不斷放 大,直至窗口大小達到預設(shè)的終止條件后,再最后經(jīng)過去除人臉重復區(qū)域的處理后輸出,由
性能評測工具對基于FPGA的人臉檢測片上系統(tǒng)整體性能的檢測后,相對于純軟件的實現(xiàn),圖 像的檢測速度由原來的llfps提高到18fps,待檢測圖片選用CIF格式圖片,系統(tǒng)不僅對于正 面人臉檢測效果好,對15°內(nèi)的俯仰、側(cè)向旋轉(zhuǎn)以及遮擋和閉眼等多種姿態(tài)下的人臉檢測效 果也較好。
綜上所述,本發(fā)明的片上系統(tǒng)構(gòu)建方法在構(gòu)建時通過對運行程序的性能評測以添加相應(yīng)的 加速模塊,克服了目前的人臉檢測系統(tǒng)在設(shè)計過程中只能對代碼進行軟件優(yōu)化的缺點,可以 同時對整個硬件平臺進行配置,其中包括對處理器本身與外圍設(shè)備接口的配置,更重要的是, 可以針對人臉檢測算法的特點,在系統(tǒng)中對于特定運算進行硬件加速,如此可有效提高構(gòu)建 的片上系統(tǒng)的運行速度,同時其具有體積小、功耗低等優(yōu)點,進而可使人臉檢測方法被應(yīng)用 于嵌入式設(shè)備中,例如數(shù)碼相機、玩具、門禁系統(tǒng)等場合,滿足當今市場發(fā)展的需求,為企 業(yè)帶來更多的發(fā)展機遇。
權(quán)利要求
1.一種片上系統(tǒng)構(gòu)建方法,其特征在于包括步驟1)根據(jù)實際要完成的功能開發(fā)設(shè)計相應(yīng)的運行程序,并對所述程序進行性能評測,以找出所述程序中耗時超過預設(shè)值的運算部分;2)根據(jù)所設(shè)計的運行程序初步構(gòu)建一片上系統(tǒng),并對所述片上系統(tǒng)進行初步調(diào)試,所述片上系統(tǒng)包括處理器及相應(yīng)必要的外圍設(shè)備;3)根據(jù)性能評測結(jié)果在所述片上系統(tǒng)中添加相應(yīng)加速模塊,并使所述加速模塊通過總線與所述片上系統(tǒng)的處理器進行數(shù)據(jù)通訊,其中,所述加速模塊能對所設(shè)計的運行程序中耗時超過預設(shè)值的運算部分進行輔助處理以提高片上系統(tǒng)的運行速度;4)驗證所添加的加速模塊的功能以確定其功能的正確性;5)將所設(shè)計的運行程序載入已添加有通過驗證的加速模塊的片上系統(tǒng)中,并對所述片上系統(tǒng)進行整體性能調(diào)試及評測以進一步優(yōu)化所述片上系統(tǒng)。
2. 如權(quán)利要求1所述的片上系統(tǒng)構(gòu)建方法,其特征在于所述加速模塊通過快速單向鏈 路總線與所述片上系統(tǒng)的處理器進行數(shù)據(jù)通訊。
3. 如權(quán)利要求1所述的片上系統(tǒng)構(gòu)建方法,其特征在于構(gòu)建的片上系統(tǒng)為基于現(xiàn)場可 編程門陣列的人臉檢測的系統(tǒng)。
4. 如權(quán)利要求1所述的片上系統(tǒng)構(gòu)建方法,其特征在于所述處理器為Microblaze處 理器。
全文摘要
一種片上系統(tǒng)構(gòu)建方法,首先根據(jù)實際要完成的功能開發(fā)設(shè)計相應(yīng)的運行程序,并對所述程序進行性能評測,接著根據(jù)所設(shè)計的運行程序初步構(gòu)建一包括處理器及與相應(yīng)必要的外圍設(shè)備的片上系統(tǒng),并對所述片上系統(tǒng)進行初步調(diào)試,然后再根據(jù)性能評測結(jié)果在所述片上系統(tǒng)中添加相應(yīng)加速模塊,并使所述加速模塊通過總線與所述片上系統(tǒng)的處理器進行數(shù)據(jù)通訊,在驗證了所添加的加速模塊的功能后,將所設(shè)計的運行程序載入片上系統(tǒng)中,并對所述片上系統(tǒng)進行整體性能調(diào)試及評測,如此可以實現(xiàn)對整個硬件平臺進行優(yōu)化配置,而在系統(tǒng)中對于特定運算進行硬件加速,可有效提高構(gòu)建的片上系統(tǒng)的運行速度,同時其具有體積小、功耗低等優(yōu)點。
文檔編號G06K9/00GK101364258SQ200710044750
公開日2009年2月11日 申請日期2007年8月9日 優(yōu)先權(quán)日2007年8月9日
發(fā)明者煒 孫, 青 張, 峰 趙 申請人:上海銀晨智能識別科技有限公司