《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于可重構(gòu)技術(shù)的DSP任務(wù)動態(tài)加載方法研究
基于可重構(gòu)技術(shù)的DSP任務(wù)動態(tài)加載方法研究
2015年電子技術(shù)應(yīng)用第10期
陸振林,趙元富,蘭利東,焦 燁,趙光忠
(北京微電子技術(shù)研究所,北京100076)
摘要: 針對國產(chǎn)異構(gòu)多核微系統(tǒng)中DSP處理器任務(wù)的調(diào)度和啟動的需求,基于可重構(gòu)技術(shù),提出了一種DSP任務(wù)動態(tài)加載方法。利用DSP處理器的HPI接口作為程序注入接口,在FPGA芯片中構(gòu)建了具有總線隔離機制的配置通路,在SPARC V8處理器中以軟件驅(qū)動的形式,實現(xiàn)了DSP任務(wù)動態(tài)加載。測試結(jié)果表明,所提出的DSP任務(wù)動態(tài)加載方法用時135 ms即可完成280 KB大小的程序注入及DSP處理器的任務(wù)加載,滿足微系統(tǒng)的實時性需求。
中圖分類號: TN402
文獻(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.
Research on dynamic loading method of DSP task based on reconfigurable technology
Lu Zhenlin,Zhao Yuanfu,Lan Lidong,Jiao Ye,Zhao Guangzong
Beijing Microelectronics Technology Institute,Beijing 100076,China
Abstract: Based on the reconfigurable technology, a new DSP task dynamic loading method is proposed for the DSP processor in the domestic chip-level heterogeneous multi-core micro system. This method uses the HPI interface of DSP processor as the interface of the program, constructs the configuration path of the bus isolation mechanism in the FPGA chip,and implements DSP task dynamic loading. Test results show that the proposed DSP task dynamic loading method, with 135 ms completed 280 KB size of the code data injection and DSP processor task loading, meets the real-time requirement of micro system.
Key words : multi-cores micro-system;DSP;dynamical reload;self-configuration technology


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所示。

006.jpg

  在通過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所示。

001.jpg

2 DSP任務(wù)的動態(tài)加載

  2.1 動態(tài)啟動模式

  通過HPI接口對FT-6713處理器的程序注入和啟動,需要持續(xù)對FT-6713處理器的3個寄存器進行操作,即HPI控制寄存器(HPIC)、HPI地址寄存器(HPIA)、HPI數(shù)據(jù)寄存器(HPID)。

002.jpg

  圖2顯示了HPI的啟動流程。系統(tǒng)上電復(fù)位后,首先采樣HPI接口的HD[4:3]的狀態(tài)確定啟動方式(即引導(dǎo)模式),如表2所示。為了能夠動態(tài)加載和啟動,本方法選擇HPI啟動模式,即HD[4:3]上電時默認(rèn)為低電平。

007.jpg

  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所示。

003.jpg

  (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 功能測試


004.jpg

  本文采用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信號電平變化的情況。

005.jpg

  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.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。