基于多DSP系統(tǒng)的交叉調(diào)試系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
出處:電子愛好者博客 發(fā)布于:2013-07-21 11:10:16
摘要:本文介紹了一種由多個(gè)DSP構(gòu)建的并行處理系統(tǒng),探討了多DSP系統(tǒng)中實(shí)現(xiàn)交叉調(diào)試的方法,詳細(xì)討論了調(diào)試器和目標(biāo)機(jī)調(diào)試的具體內(nèi)容,給出了調(diào)試模式下的程序方式。實(shí)際應(yīng)用顯示,該交叉調(diào)試系統(tǒng)能夠有效滿足多DSP系統(tǒng)的調(diào)試需求,擁有較好的多處理器支持性能和較高的性價(jià)比。
?。薄∫?/FONT>
隨著數(shù)字技術(shù)的快速發(fā)展,多處理器并行技術(shù)在大規(guī)模數(shù)據(jù)處理系統(tǒng)中正逐漸被廣泛運(yùn)用。特別是雷達(dá)、聲納、電子對(duì)抗等高端電子應(yīng)用領(lǐng)域,單片CPU或DSP由于運(yùn)行速度和計(jì)算能力有限,已難以滿足應(yīng)用需求,由多處理器構(gòu)建的并行系統(tǒng)具有很好的伸縮性和靈活性,為大規(guī)模數(shù)據(jù)處理應(yīng)用提供了一種可靠的解決方案。多處理器構(gòu)建的系統(tǒng)應(yīng)用與開發(fā)中,調(diào)試是非常重要的一環(huán),調(diào)試系統(tǒng)的性能及完備程度深刻影響著軟件開發(fā)的效率和質(zhì)量。
目前,大多數(shù)嵌入式系統(tǒng)采用基于JTAG口的硬件仿真器實(shí)現(xiàn)程序調(diào)試,JTAG技術(shù)在單片或單核處理器調(diào)試中擁有便捷和高效的性能,在多處理器系統(tǒng)中使用JTAG調(diào)試,需要將各個(gè)處理器的JTAG口串接起來實(shí)現(xiàn)。采用基于JTAG的串行技術(shù)存在許多缺點(diǎn):(1)JTAG仿真器同時(shí)支持的處理器數(shù)量有限,實(shí)現(xiàn)多處理器并行調(diào)試比較困難;(2)實(shí)時(shí)眭不強(qiáng),JTAG鏈上串聯(lián)多個(gè)處理器時(shí),處理速率會(huì)嚴(yán)重下降;(3)多處理器系統(tǒng)需要更多的硬件仿真器支持,成本較高。相對(duì)JTAG硬件仿真器,在多處理器系統(tǒng)中采用軟件方式實(shí)現(xiàn)交叉調(diào)試具有易操作、易實(shí)現(xiàn)、速度快和開發(fā)成本低等特點(diǎn)。本文在自主研發(fā)的某款DSP構(gòu)建的多DSP系統(tǒng)基礎(chǔ)上,提出了相應(yīng)的交叉調(diào)試技術(shù)及其實(shí)現(xiàn)方法。
2 多DSP系統(tǒng)組成及調(diào)試內(nèi)容
?。玻倍啵模樱邢到y(tǒng)組成結(jié)構(gòu)
多DSP系統(tǒng)由主機(jī)和工控機(jī)組成,是一個(gè)層次化的組成結(jié)構(gòu)。主機(jī)由PC機(jī)構(gòu)建,用于應(yīng)用程序的開發(fā)、調(diào)試、數(shù)據(jù)存儲(chǔ)以及與用戶的交互。工控機(jī)的功能是實(shí)現(xiàn)大規(guī)模數(shù)據(jù)并行處理,由多塊數(shù)字信號(hào)處理板和一塊公共板組成,板與板之間通過總線(CPCI)實(shí)現(xiàn)互聯(lián)。每塊數(shù)字信號(hào)處理板卡由多塊DSP構(gòu)建,是數(shù)據(jù)處理的部件,DSP之間通過自帶的互連接口(如Link口)實(shí)現(xiàn)互聯(lián),可依據(jù)需要構(gòu)建成不l-J網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。公共板負(fù)責(zé)工控機(jī)的運(yùn)行控制,實(shí)現(xiàn)運(yùn)算數(shù)據(jù)的緩存、實(shí)現(xiàn)主機(jī)和DSP的通信等,是主機(jī)和數(shù)字信號(hào)處理板之間的橋梁,公共板與數(shù)字信號(hào)處理板之間通過總線(CPCI)連接,和主機(jī)之間通過網(wǎng)線或USB線連接。多DSP系統(tǒng)的組成結(jié)構(gòu)如圖1所示,數(shù)字信號(hào)處理板(DSP處理板)由5塊DSP組成,公共板中內(nèi)嵌了獨(dú)立的通信模塊分別實(shí)現(xiàn)與主機(jī)和DSP處理板的通信鏈接。

?。玻矓?shù)字信號(hào)處理板組成結(jié)構(gòu)
數(shù)字信號(hào)處理板是數(shù)據(jù)運(yùn)算與處理的部件,每塊處理板由5塊DSP組成,為使得數(shù)字信號(hào)處理板具有通用性和易用性,板卡上的連接方式采取混合連接方式。DSP之間既通過自帶的Link口實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)互聯(lián),構(gòu)成星型的并行系統(tǒng);同時(shí),各個(gè)DSP也通過簇總線將各自連接在一起實(shí)現(xiàn)共享,實(shí)現(xiàn)緊耦合和松耦合相結(jié)合的互連結(jié)構(gòu),數(shù)字信號(hào)處理板組成結(jié)構(gòu)如圖2所示。多塊數(shù)字信號(hào)處理板的并行可極大的滿足大容量、高速率數(shù)據(jù)處理的性能要求。

數(shù)據(jù)信號(hào)處理板以FPGA作為中介實(shí)現(xiàn)對(duì)外數(shù)據(jù)交換,數(shù)據(jù)傳輸采用CPCI總線完成。CPCI總線有J1/J2/J3/J4四個(gè)接口,其中J1和J2為64位數(shù)據(jù)傳輸接口,J3和J4為自定義方式接口。設(shè)計(jì)中,通過CPCI的J3口將數(shù)據(jù)讀入到FPGA內(nèi)部的FIFO,內(nèi)部DSP芯片接受到數(shù)據(jù)后,按照預(yù)定的算法進(jìn)行任務(wù)分配和并行處理,處理完畢后通過DSP0寫人FPGA內(nèi)部的FIFO,之后PCI接口模塊從FIFO中讀取數(shù)據(jù),經(jīng)過時(shí)序轉(zhuǎn)換后將數(shù)據(jù)發(fā)送到CPCI總線,經(jīng)兒和J2口傳輸?shù)酵獠康钠渌δ苣K。
數(shù)字信號(hào)處理板以工控機(jī)為平臺(tái),工控機(jī)內(nèi)部可以嵌入多個(gè)板卡,板與板之間的數(shù)據(jù)傳輸與通信通過總線(CPCI)完成,可實(shí)現(xiàn)即插即用。數(shù)字信號(hào)處理板依據(jù)需要可配置成不同功能處理模塊,實(shí)現(xiàn)不同數(shù)字信號(hào)處理。主機(jī)通過工控機(jī)內(nèi)的公共板監(jiān)控和訪問到數(shù)字信號(hào)處理板內(nèi)的各個(gè)DSP的運(yùn)行狀態(tài)。
?。玻扯啵模樱邢到y(tǒng)的交叉調(diào)試內(nèi)容
多DSP系統(tǒng)是一個(gè)層次化的結(jié)構(gòu),其調(diào)試相對(duì)單DSP系統(tǒng)調(diào)試要復(fù)雜得多,不僅要支持對(duì)單個(gè)DSP的調(diào)試,還要支持多個(gè)DSP并行調(diào)試。具體需要實(shí)現(xiàn)的調(diào)試內(nèi)容有:①系統(tǒng)管理,主要是多DSP系統(tǒng)的結(jié)構(gòu)信息,包括各個(gè)DSP所處的板卡位置、互聯(lián)關(guān)系、邏輯名稱、程序信息等,相關(guān)信息應(yīng)該能夠比較方便地建立、修改、存儲(chǔ)和重新導(dǎo)入;②配置啟動(dòng),在開發(fā)者指定各個(gè)DSP的運(yùn)行程序后,調(diào)試器應(yīng)該能夠?qū)⒊绦蚺渲玫礁鱾€(gè)DSP并啟動(dòng)運(yùn)行,并且可以依據(jù)需要重新復(fù)位指定的DSP;③數(shù)據(jù)觀察和修改,在程序運(yùn)行期間,調(diào)試系統(tǒng)應(yīng)該能夠讀出各個(gè)DSP內(nèi)部存儲(chǔ)器中的數(shù)據(jù),并以圖形、表格等方式根據(jù)不同的數(shù)據(jù)類型進(jìn)行顯示;④動(dòng)態(tài)交互,各個(gè)DSP的應(yīng)用程序應(yīng)該能夠通過調(diào)試系統(tǒng)與用戶完成相應(yīng)的信息交互,如運(yùn)行信息顯示、用戶輸入請(qǐng)求等;⑤多板卡/多DSP并行運(yùn)行與調(diào)試,包括多個(gè)板卡的并行調(diào)試和每個(gè)板卡內(nèi)部多個(gè)DSP的并行運(yùn)行與調(diào)試。
?。场《啵模樱邢到y(tǒng)交叉調(diào)試系統(tǒng)的實(shí)現(xiàn)
交叉調(diào)試系統(tǒng)實(shí)現(xiàn)方式是采用分層結(jié)構(gòu),具體分為調(diào)試器、監(jiān)控程序和調(diào)試代理三個(gè)部分,實(shí)現(xiàn)主機(jī)和DSP之間的遠(yuǎn)程交叉調(diào)試。調(diào)試器運(yùn)行在主機(jī)上,負(fù)責(zé)用戶調(diào)試命令的解析、調(diào)試信息的生成,以及寄存器內(nèi)容、變量、表達(dá)式值的查看和修改等;監(jiān)控程序運(yùn)行在公共板中,用于主機(jī)調(diào)試命令解析和目標(biāo)機(jī)(DSP)調(diào)試信息的轉(zhuǎn)換,即將主機(jī)發(fā)布過來的調(diào)試命令轉(zhuǎn)換為目標(biāo)機(jī)的調(diào)試控制邏輯命令,將目標(biāo)機(jī)的運(yùn)行信息經(jīng)過封裝傳輸?shù)街鳈C(jī),同時(shí)實(shí)現(xiàn)主機(jī)和目標(biāo)機(jī)的通信與數(shù)據(jù)傳輸;調(diào)試代理程序運(yùn)行在具體的DSP上,進(jìn)入調(diào)試狀態(tài)時(shí),負(fù)責(zé)控制和接管DSP的運(yùn)行狀態(tài),修改或讀取寄存器的信息等。交叉調(diào)試系統(tǒng)組成結(jié)構(gòu)如圖3所示,主機(jī)和工控機(jī)采用網(wǎng)絡(luò)/USB通信,工控機(jī)內(nèi)部采用CPCI進(jìn)行通信。

?。常闭{(diào)試器的實(shí)現(xiàn)
調(diào)試器程序占用空間較大,運(yùn)行在主機(jī)上,依據(jù)實(shí)現(xiàn)功能分成5部分:用戶接口模塊、調(diào)試功能模塊、通信模塊、目標(biāo)機(jī)信息模塊和操作系統(tǒng)支持模塊,采用模塊化結(jié)構(gòu),組成結(jié)構(gòu)如圖4所示。用戶接口的功能是接收和分析調(diào)試命令信息,把調(diào)試命令以規(guī)定的形式傳遞給調(diào)試功能模塊。用戶接口功能具體又細(xì)分為調(diào)試界面模塊、調(diào)試命令分析模塊和顯示模塊。調(diào)試界面是用戶輸入調(diào)試命令的界面,嵌入在集成開發(fā)環(huán)境中;調(diào)試命令分析模塊用來分析調(diào)試命令,如果調(diào)試命令正確,就用適當(dāng)?shù)男问桨颜{(diào)試命令傳遞給調(diào)試功能模塊;如果命令錯(cuò)誤,就把錯(cuò)誤信息傳遞給顯示模塊;顯示模塊的功能是顯示返回給用戶的各種信息。調(diào)試功能模塊是調(diào)試器的部分,主要通過各種調(diào)試原語實(shí)現(xiàn)具體的調(diào)試功能。調(diào)試原語是指構(gòu)成各種調(diào)試命令操作的原操作,操作對(duì)象是調(diào)試信息。調(diào)試信息是用來存儲(chǔ)調(diào)試過程中收集到的與調(diào)試有關(guān)的信息,包括符號(hào)表、鏈接表、字符表等調(diào)試信息,在調(diào)試過程中調(diào)試原語要讀取和維護(hù)調(diào)試信息。目標(biāo)機(jī)信息模塊用于管理目標(biāo)機(jī)的完整信息,采用規(guī)范的XML文件進(jìn)行描述和定義,如目標(biāo)機(jī)的類型,寄存器數(shù)量和讀寫屬性,地址、內(nèi)存、流水線的詳細(xì)信息等,調(diào)試器通過查詢XML文件即可獲取目標(biāo)機(jī)的完整信息,其內(nèi)容以列表方式在顯示界面中顯示。

通信模塊的作用是實(shí)現(xiàn)主機(jī)和工控機(jī)的通信,支持TCP3P協(xié)議和USB協(xié)議。同時(shí),該模塊兼具可擴(kuò)充性,可以依據(jù)需要增加其它通信方式的通信模塊,以擴(kuò)充宿主機(jī)和工控機(jī)的通信方式。操作系統(tǒng)支持模塊的主要功能是封裝了調(diào)試器中需要操作系統(tǒng)支持的功能,目的是使其它模塊與操作系統(tǒng)無關(guān),便于調(diào)試器在不同平臺(tái)之間的移植。
?。常舱{(diào)試代理組成與目標(biāo)機(jī)調(diào)試方式
調(diào)試代理是嵌入到DSP中的一段控制程序,功能是執(zhí)行調(diào)試器的調(diào)試命令和返回DSP運(yùn)行狀態(tài)信息等。調(diào)試代理主要由調(diào)試命令執(zhí)行模塊、通信模塊、程序控制模塊和操作系統(tǒng)接口模塊組成。通信模塊與調(diào)試器的通信模塊相對(duì)應(yīng),采用支持總線的通信協(xié)議,功能是接收公共板卡監(jiān)控程序解析后的調(diào)試命令。程序控制模塊的功能是根據(jù)調(diào)試命令來控制被調(diào)試的二進(jìn)制代碼的運(yùn)行過程。調(diào)試命令執(zhí)行模塊的功能是依據(jù)調(diào)試命令,控制程序的執(zhí)行過程,協(xié)調(diào)通訊模塊和代碼控制模塊之間的協(xié)作。
操作系統(tǒng)接口模塊功能是支持基于操作系統(tǒng)的調(diào)試,將其它模塊和嵌入式操作系統(tǒng)進(jìn)行隔離。調(diào)試代理的這種結(jié)構(gòu)可以較好地解決多目標(biāo)機(jī)的問題,在目標(biāo)機(jī)端,只有操作系統(tǒng)支持模塊是與目標(biāo)平臺(tái)相關(guān)的,因此,在向一個(gè)新的目標(biāo)機(jī)移植時(shí),只需要修改這個(gè)模塊即可,目標(biāo)機(jī)的調(diào)試代理模塊組成結(jié)構(gòu)如圖5所示。

目標(biāo)機(jī)調(diào)試支持兩種方式:基于裸板調(diào)試和基于操作系統(tǒng)調(diào)試。裸板調(diào)試主要發(fā)生在嵌入式系統(tǒng)的開發(fā)初級(jí)階段,一般采用“片上調(diào)試”技術(shù)。片上調(diào)試實(shí)現(xiàn)是在調(diào)試器的操作系統(tǒng)接口模塊中開發(fā)對(duì)應(yīng)的“片上調(diào)試”協(xié)議,并在調(diào)試功能模塊中添加相應(yīng)的功能實(shí)現(xiàn)。
3.3調(diào)試程序的
加載程序的方式主要有兩種:和引導(dǎo)。兩種加載方式的主要區(qū)別是DSP開始執(zhí)行代碼的時(shí)機(jī)不同:采用方式時(shí)DSP直到所有的指令和數(shù)據(jù)都已經(jīng)寫人內(nèi)存后才開始執(zhí)行代碼;采用引導(dǎo)方式時(shí)DSP在接收到引導(dǎo)內(nèi)核后就立即開始執(zhí)行。引導(dǎo)的加載方式比較靈活,適用于加載方無法直接訪問被加載方存儲(chǔ)器的情況。
本文針對(duì)多DSP系統(tǒng)的自身特點(diǎn),采用了引導(dǎo)模式,引導(dǎo)程序加載步驟為:(1)以某個(gè)DSP(DSP0)為主片,通過默認(rèn)的Link口將主內(nèi)核引導(dǎo)程序存放到本DSP中,引導(dǎo)程序加載完畢后產(chǎn)生相應(yīng)的DMA中斷,DSP從地址0開始執(zhí)行內(nèi)核引導(dǎo)程序,由內(nèi)核引導(dǎo)程序?qū)崿F(xiàn)從DSP(DSPl。4)的內(nèi)核引導(dǎo)程序和用戶代碼的加載;(2)從DSP(DSPl~4)分別依照順序?qū)崿F(xiàn)3個(gè)部分內(nèi)容,將內(nèi)核引導(dǎo)程序的加載本DSP的空間中、運(yùn)行引導(dǎo)程序?qū)崿F(xiàn)用戶代碼的加載,實(shí)現(xiàn)用戶程序替換內(nèi)核加載程序;(3)從片加載完畢后,主片實(shí)現(xiàn)用戶程序替換內(nèi)核加載程序,對(duì)DSP進(jìn)行復(fù)位,以便執(zhí)行用戶程序。
?。聪到y(tǒng)設(shè)計(jì)與應(yīng)用
本文在國內(nèi)某款具有自主知識(shí)產(chǎn)權(quán)的DSP基礎(chǔ)上,設(shè)計(jì)了一個(gè)多板卡多DSP應(yīng)用系統(tǒng)。該芯片接口豐富,具有優(yōu)越的性能指標(biāo):(1)運(yùn)行速度為2ns指令周期(500MHz),每周期可多執(zhí)行16條指令;(2)內(nèi)部有4個(gè)運(yùn)算模塊,支持16bit/32bit定浮點(diǎn)運(yùn)算;(3)每秒可執(zhí)行30GFLOPS運(yùn)算或4.8GFMACPS運(yùn)算;(4)有4個(gè)Link口,每個(gè)Link口可提供達(dá)1.2GB/s的傳輸速率;(5)可通過總線或Link口方便地構(gòu)成星型、網(wǎng)絡(luò)狀等多處理器系統(tǒng)。
應(yīng)用系統(tǒng)的每個(gè)板卡包括5個(gè)DSP,多個(gè)板卡集成在工控箱中,每個(gè)工控箱配置一個(gè)公共板卡用于調(diào)試和數(shù)據(jù)傳輸。
在設(shè)計(jì)的多DSP系統(tǒng)處于調(diào)試狀態(tài)下時(shí),該交叉調(diào)試系統(tǒng)可以方便快捷的查看不同處理板內(nèi)各個(gè)DSP內(nèi)部的寄存器、PC值、存儲(chǔ)器內(nèi)容和流水線等信息,可有效滿足多DSP系統(tǒng)調(diào)試需要,實(shí)現(xiàn)多個(gè)板卡的并行調(diào)試。特別是標(biāo)準(zhǔn)XML文件對(duì)處理板和DSP各種信息的管理,用戶可快速以信息匹配的方式獲得程序運(yùn)行的變量、寄存器和表達(dá)式內(nèi)容等各種DSP狀態(tài)信息。同時(shí),實(shí)現(xiàn)了處理板和DSP信息管理的模塊化,增加了調(diào)試器對(duì)不同類型目標(biāo)機(jī)/DSP的支持程度。
5 結(jié)論
針對(duì)多DSP并行系統(tǒng),提出了層次化交叉調(diào)試的設(shè)計(jì)方案,在給出多DSP系統(tǒng)硬件架構(gòu)模型的基礎(chǔ)上,討論了軟件調(diào)試系統(tǒng)的具體實(shí)現(xiàn)方法。調(diào)試系統(tǒng)采用模塊化結(jié)構(gòu),各個(gè)模塊松散耦合,便于編碼實(shí)現(xiàn)和平臺(tái)之間的移植。經(jīng)過驗(yàn)證,該調(diào)試系統(tǒng)可滿足多DSP系統(tǒng)的調(diào)試需求,有效減輕多DSP系統(tǒng)的調(diào)試工作量;能有效解決多目標(biāo)多DSP系統(tǒng)的并行調(diào)試問題,有效解決JTAG模式下難以實(shí)現(xiàn)多DSP交叉調(diào)試問題,可同時(shí)支持片上調(diào)試和基于操作系統(tǒng)調(diào)試兩種方式,具有一定可操作性。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 掌握 DSP:原理剖析與應(yīng)用實(shí)踐2025/5/8 14:03:24
- 模糊邏輯在 DSP 上實(shí)時(shí)執(zhí)行2023/7/25 17:13:30
- 多速率DSP及其在數(shù)模轉(zhuǎn)換中的應(yīng)用2023/6/12 15:28:52
- 使用 DSP 加速 CORDIC 算法2023/3/29 15:46:30
- 高速DSP系統(tǒng)的信號(hào)完整性2022/9/26 16:45:38
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









