文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.10.005
中文引用格式: 陸振林,趙元富,蘭利東,等. 基于可重構(gòu)技術(shù)的DSP任務(wù)動態(tài)加載方法研究[J].電子技術(shù)應(yīng)用,2015,41(10):24-26,33.
英文引用格式: Lu Zhenlin,Zhao Yuanfu,Lan Lidong,et al. Research on dynamic loading method of DSP task based on reconfigurable technology[J].Application of Electronic Technique,2015,41(10):24-26,33.
0 引言
隨著微納衛(wèi)星、片上衛(wèi)星的快速發(fā)展,對其電子系統(tǒng)的微小型化、低功耗的需求日趨明顯。傳統(tǒng)的多模塊拼裝的設(shè)計模式需要多個分離電路才能夠構(gòu)建完整的系統(tǒng),顯然,不能滿足未來的發(fā)展需求。而集成微系統(tǒng)作為扁平化設(shè)計的新模式,將信息感知、數(shù)據(jù)處理、驅(qū)動控制等功能單元,采用MCM、SIP、TSV等封裝技術(shù),集成在一個芯片大小的封裝體內(nèi),極大地提升了系統(tǒng)的集成度。
為了支撐微系統(tǒng)芯片對實時控制、高性能運算的要求。課題組提出了異構(gòu)多核微系統(tǒng)的解決方案。其中,DSP作為協(xié)處理器,主要負(fù)責(zé)計算任務(wù)的執(zhí)行。為了支撐運算任務(wù)類的靈活調(diào)度和映射的需求,DSP處理器的任務(wù)動態(tài)加載技術(shù)已成為急需突破的關(guān)鍵技術(shù)之一。
文獻(xiàn)[1]通過SN74LVT16245A(雙向三態(tài)收發(fā)器),將ARM總線和DSP處理器HPI接口進行互連,構(gòu)建了ARM與DSP之間視頻數(shù)據(jù)可靠傳輸通道,實現(xiàn)了大數(shù)據(jù)量的搬移,文獻(xiàn)[2]面向?qū)崟r圖像處理的運算需求,通過DSP HPI接口,構(gòu)建PowerPC處理器與DSP處理器的通信;文獻(xiàn)[3]設(shè)計了ARM與DSP HPI的通信接口,通過162245總線隔離器進行數(shù)據(jù)總線的互連,完成了ARM對DSP程序的動態(tài)加載。還有其他的研究人員開展過相似的研究[4-7]。
以上的研究成果表明,通過HPI接口能夠?qū)崿F(xiàn)ARM處理器與DSP的數(shù)據(jù)交互,但設(shè)計方案都需要額外增加總線隔離器件來解決處理器與DSP的總線干擾問題。針對微系統(tǒng)而言,該方法存在以下問題:首先,該方法增加了芯片設(shè)計、測試的復(fù)雜度,帶來系統(tǒng)體積和功耗的增加;其次,ARM處理器的總線時序與國產(chǎn)處理器并不相同;最后,研究中對數(shù)據(jù)總線進行了隔離,但是ARM的地址線、總線控制信號等與HPI直連的方式,在DSP處理器出現(xiàn)異常時,將有可能造成對主處理器總線信號的影響,導(dǎo)致主處理器無法正常工作。
因此,本課題提出了一種“基于可重構(gòu)技術(shù)的DSP任務(wù)動態(tài)加載技術(shù)”的方法。該方案針對芯片級微系統(tǒng)對任務(wù)動態(tài)加載的需求,基于可編程邏輯器件自身資源,采用可重構(gòu)技術(shù),通過突破并行配置接口設(shè)計、數(shù)據(jù)動態(tài)加載等關(guān)鍵技術(shù),解決異構(gòu)多核芯片中DSP處理器的動態(tài)加載的問題。
1 基于可重構(gòu)技術(shù)的注入通路設(shè)計
異構(gòu)多核微系統(tǒng)芯片集成了國產(chǎn)SPARC V8處理器、FT-DSP處理器、FPGA、SDRAM、SRAM等器件。為了實現(xiàn)SPARC V8處理器向DSP處理器動態(tài)注入程序,并可控制其進行啟動。文中利用了FT-6713的HPI接口(Host Port Interface)。HPI是一個并行端口,是外部主機(host)與DSP系統(tǒng)進行數(shù)據(jù)交換以及host配置各個外設(shè)寄存器的接口,可實現(xiàn)高速、并行的數(shù)據(jù)通信。FT-6713的HPI是16位寬的并行接口,V8處理器可通過HPI直接訪問FT-6713的存儲空間和外圍設(shè)備。HPI接口信號如表1所示。
在通過HPI接口對DSP存儲空間的訪問時,需要解決如下問題:
(1)V8處理器與HPI接口互聯(lián)的設(shè)計:由于V8處理器不存在與HPI接口相匹配的接口,需要采取合適的互連方法,以滿足HPI操作的時序要求;
(2)HPI總線與V8總線串?dāng)_問題:在接口互連時,需要將總線信號、控制信號與HPI接口進行連接,當(dāng)總線都進行操作時,將無法避免地帶來數(shù)據(jù)的串?dāng)_,甚至導(dǎo)致任務(wù)執(zhí)行崩潰。
本文結(jié)合HPI接口時序和V8處理器的總線時序,提出了如下的互連方案:
(1)V8處理器具有獨立的地址和數(shù)據(jù)總線,因此,DSP的HPI接口的HAS由外部上拉至高電平。
(2)V8處理器的讀使能信號(OEN)、寫使能信號(Writen)、IO空間片選信號(CS)分別連接到DSP的HPI接口上3個觸發(fā)信號HDS1、HDS2和HCS,而HDS1、HDS1、HCS共同產(chǎn)生HPI使能觸發(fā)信號。
(3)V8處理器的地址線ADDR[7:6]與HPI的控制信號HCNTL[1:0]互連,以決定對HPI接口進行操作的目標(biāo)寄存器,如HPIC、HPIA或HPID。
(4)V8處理器的地址線ADDR[4]與HPI的控制信號HHWIL互連,以此來指示當(dāng)前數(shù)據(jù)總線傳輸?shù)淖止?jié)順序。
(5)V8處理器的地址線ADDR[5]與HPI的HR/W互連,用于控制當(dāng)前操作是在對DSP的HPIA、HPIC、HPID寄存器執(zhí)行何種操作。
(6)V8處理器的Brdyn信號上與HPI的HRDY互連,用于表明HPI是否已準(zhǔn)備好傳輸數(shù)據(jù)。
(7)V8處理器的外部中斷與HPI的HINT信號互連,向主機發(fā)出中斷信號。
為了避免額外增加隔離芯片所帶來的各種弊端,本課題提出了基于芯片內(nèi)部FPGA的可重構(gòu)實現(xiàn)方案。在需要進行DSP加載時,通過動態(tài)重構(gòu)技術(shù),在FPGA中加載并實現(xiàn)DSP HPI互聯(lián)隔離邏輯,構(gòu)建DSP的配置通路,當(dāng)V8處理器完成對DSP程序加載后,V8處理器控制FPGA對隔離邏輯進行再次重構(gòu),斷開DSP HPI接口與V8處理器的總線互聯(lián)通路,以保證DSP處理器的異常不會對V8處理器造成影響。其連接示意圖和FPGA內(nèi)部邏輯如圖1所示。
2 DSP任務(wù)的動態(tài)加載
2.1 動態(tài)啟動模式
通過HPI接口對FT-6713處理器的程序注入和啟動,需要持續(xù)對FT-6713處理器的3個寄存器進行操作,即HPI控制寄存器(HPIC)、HPI地址寄存器(HPIA)、HPI數(shù)據(jù)寄存器(HPID)。
圖2顯示了HPI的啟動流程。系統(tǒng)上電復(fù)位后,首先采樣HPI接口的HD[4:3]的狀態(tài)確定啟動方式(即引導(dǎo)模式),如表2所示。為了能夠動態(tài)加載和啟動,本方法選擇HPI啟動模式,即HD[4:3]上電時默認(rèn)為低電平。
FT-6713上電后,芯片外設(shè)控制器首先啟動,內(nèi)核處于掛起狀態(tài);此時外部主機通過HPI接口對DSP進行配置, 通過HPI初始化DSP的CPU core和EMIF,并向DSP加載程序和數(shù)據(jù),將代碼和數(shù)據(jù)加載到DSP的內(nèi)存中,在這期間DSP內(nèi)核保持掛起狀態(tài)不變;當(dāng)主機完成程序加載后,主機向HPIC寄存器中的DSPINT位寫1,向DSP發(fā)出中斷;DSP收到中斷后,DSP內(nèi)核從掛起狀態(tài)喚醒,從0地址處啟動,開始執(zhí)行程序。
2.2 基于軟件驅(qū)動的程序加載
V8處理器向DSP處理器注入程序,通過HPIC、HPIA、HPID和16位數(shù)據(jù)線與DSP進行數(shù)據(jù)交換和中斷控制。DSP處理器程序注入的實現(xiàn)流程如圖3所示。
(1)初始化HPIC
HPIC寄存器用于控制HPI的握手信號使能HRDY、字節(jié)傳輸順序控制等。初始化該配置寄存器后,使HPI控制器進入V8所需的工作模式。
(2)初始化HPIA
通過向該地址寄存器寫入待注入數(shù)據(jù)的地址,以便HPI控制器將相應(yīng)的數(shù)據(jù)輸出到相應(yīng)的存儲區(qū)。
(3)向HPID寫入數(shù)據(jù)
HPID用于暫存由V8處理器注入的配置信息,寫入方式具有自增寫入模式和固定寫入模式。由HCNTL[1:0]信號控制。本文選擇自增寫入模式。
(4)HPI啟動
當(dāng)數(shù)據(jù)全部寫入DSP所屬存儲空間后,需要再次訪問HPIC,并向其DSPINT位寫入1來喚起DSP內(nèi)核的啟動和程序的加載。
在程序啟動過程中,DSP會從0地址處開始執(zhí)行。對于DSP的任務(wù)程序來說,是從c_int00處開始執(zhí)行,需要使得程序跳轉(zhuǎn)到_c_int00處。
在生成和編譯DSP待注入程序,以及通過FPGA對HPI接口操作時,需要注意如下事項:
(1)由于項目中使用HPI16模式,因此對HPI任何一個寄存器的訪問,主機都需在HPI總線上進行2次半字存取。
(2)DSP的程序在下載的同時需要鏈接初始化的變量,因此需要在.cmd文件中使用-cr選項。
(3)FT-6713 DSP編譯器生成的文件為.out文件,構(gòu)建動態(tài)加載數(shù)組時,對.out文件中有效配置信息進行提取。
3 測試
為了驗證所提出的動態(tài)加載方法的功能和性能,進行相關(guān)測試。V8處理器系統(tǒng)時鐘為80 MHz,DSP處理器內(nèi)核運行時鐘為96 MHz。
3.1 功能測試
本文采用TEKtronix TLA7012邏輯分析儀對HPI接口的信號時序進行了跟蹤,采樣頻率為200 MHz。如圖4所示,左側(cè)兩個橢圓圈定的32 bit數(shù)據(jù)將寫入到HPIC寄存器,右側(cè)兩個橢圓圈定的第二個32 bit數(shù)據(jù)將寫入到HPIA寄存器中。從測試數(shù)據(jù)可知,在HPI接口獲取了正確加載的數(shù)據(jù)和時序。
3.2 性能測試
為了獲取V8處理器發(fā)起DSP任務(wù)數(shù)據(jù)注入至DSP處理器正確啟動的時間,設(shè)計了測試用例:V8發(fā)起程序注入后,拉高GPIO,DSP處理器在正確啟動后,所屬GPIO信號由低到高,兩個GPIO信號間的間隔即可認(rèn)為DSP程序注入及啟動時間。如圖5所示為2個GPIO信號電平變化的情況。
V8處理器通過FPGA連接到DSP的HPI接口,并向其注入了大小為280 KB的程序數(shù)據(jù),從圖中可見,整個動態(tài)加載和DSP運行時間僅為135 ms。
4 結(jié)論
針對系統(tǒng)級異構(gòu)多核芯片的特點,協(xié)同工作的設(shè)計要求,提出了“基于可重構(gòu)技術(shù)的”實現(xiàn)方法。該方法在無需增加總線隔離芯片和外部集成電路的情況下,通過構(gòu)建的映射通路,V8處理器能夠?qū)⑷蝿?wù)正確的注入到DSP處理器存儲空間,并啟動DSP處理器內(nèi)核,完成任務(wù)的動態(tài)加載。
測試結(jié)果表明,對于一個大小為280 KB的代碼,從代碼注入到DSP內(nèi)核啟動完成,所需時間僅為135 ms,能夠滿足系統(tǒng)的實時性要求。本文提出的方法滿足了系統(tǒng)級芯片任務(wù)動態(tài)映射的需求。
參考文獻(xiàn)
[1] 張力,劉正熙.ARM與DSP之間視頻數(shù)據(jù)可靠傳輸?shù)脑O(shè)計與實現(xiàn)[J].計算機應(yīng)用,2009(29);198-200.
[2] 余躍,孟慶東,李兆麟.一種面向?qū)崟r圖像處理應(yīng)用的基于非共享存儲的多DSP系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2009,35(3):29-32.
[3] 趙建波,胡文若,習(xí)勇,等.基于ARM的TMS320C6455-DSPHPI的動態(tài)程序加載設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2013,39(6):14-16.
[4] OU S H,LIN T J,DENG X S,et al.Multithreaded copro-cessor interface for multi-core multimedia SoC[C].Design Automation Conference,2008.Asia and South Pacific,2008:115-116.
[5] Yao Yiyong,Zhao Liping,Li Xin,et al.Dual-core embeddedreal-time inspection and analysis platform for field quality control and application[M].Intelligent Robotics and Applica-tions.Springer Berlin Heidelberg,2008.
[6] FAN H,CHEN W,LIU J,et al.The application of HPI in laser scanning system based on dual-DSP[C].4th IEEE Conference on Industrial Electronics and Applications,2009:484-488.
[7] SHANG Q,DU C.A novel measurement system of electric power parameters based on DSP and ARM[C].2009 Inter-national Conference on Measuring Technology and Mecha-tronics Automation,2009:353-356.