當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]ADI公司的高性能數(shù)字信號(hào)處理器Tiger-SHARC系歹0包括ADSP-TS101S、ADSP-TS201S、ADSP-TS202S和ADSP-TS203S等芯片。它們被廣泛應(yīng)用于視頻和通信市場(chǎng),包括3G蜂窩和寬帶無(wú)線基站以及國(guó)防軍事設(shè)備,如戰(zhàn)地雷達(dá)、航空器和聲納等。目前,TigerSHARC高性能數(shù)字信號(hào)處理器已成為多個(gè)DSP并行處理應(yīng)用的實(shí)用標(biāo)準(zhǔn),對(duì)加快數(shù)字信號(hào)處理技術(shù)的發(fā)展和擴(kuò)大DSP的應(yīng)用起到了十分突出的促進(jìn)作用。Visual DSP++4.0是一種使用方便的集成調(diào)試開發(fā)軟件平臺(tái),它支持ADI公司浮點(diǎn)系列處理器的各種產(chǎn)品(如SHARC系列,BLACKfin系列和TigerSHARC系列)。它可以通過可視化的圖形窗口方式與用戶進(jìn)行信息交換,也可以在窗口中進(jìn)行高效的工程管理,并輕松地在編輯、編譯和調(diào)試之間相互切換,以實(shí)現(xiàn)高效率的程序開發(fā)。 本文結(jié)合某圖像實(shí)時(shí)處理系統(tǒng)的實(shí)現(xiàn),重點(diǎn)介紹了基于ADSP-TS201S的多處理器系統(tǒng)的構(gòu)建方法,討論了其數(shù)據(jù)傳輸?shù)哪J?,從而?shí)現(xiàn)了以Visual DSP++4.0為平臺(tái),面向ADSP-TS201S EZ-KitLite,并采用共享外部總線的模式構(gòu)成的MP系統(tǒng)。

0 引言

ADI公司的高性能數(shù)字信號(hào)處理器Tiger-SHARC系歹0包括ADSP-TS101S、ADSP-TS201S、ADSP-TS202S和ADSP-TS203S等芯片。它們被廣泛應(yīng)用于視頻和通信市場(chǎng),包括3G蜂窩和寬帶無(wú)線基站以及國(guó)防軍事設(shè)備,如戰(zhàn)地雷達(dá)、航空器和聲納等。目前,TigerSHARC高性能數(shù)字信號(hào)處理器已成為多個(gè)DSP并行處理應(yīng)用的實(shí)用標(biāo)準(zhǔn),對(duì)加快數(shù)字信號(hào)處理技術(shù)的發(fā)展和擴(kuò)大DSP的應(yīng)用起到了十分突出的促進(jìn)作用。Visual DSP++4.0是一種使用方便的集成調(diào)試開發(fā)軟件平臺(tái),它支持ADI公司浮點(diǎn)系列處理器的各種產(chǎn)品(如SHARC系列,BLACKfin系列和TigerSHARC系列)。它可以通過可視化的圖形窗口方式與用戶進(jìn)行信息交換,也可以在窗口中進(jìn)行高效的工程管理,并輕松地在編輯、編譯和調(diào)試之間相互切換,以實(shí)現(xiàn)高效率的程序開發(fā)。 本文結(jié)合某圖像實(shí)時(shí)處理系統(tǒng)的實(shí)現(xiàn),重點(diǎn)介紹了基于ADSP-TS201S的多處理器系統(tǒng)的構(gòu)建方法,討論了其數(shù)據(jù)傳輸?shù)哪J?,從而?shí)現(xiàn)了以Visual DSP++4.0為平臺(tái),面向ADSP-TS201S EZ-KitLite,并采用共享外部總線的模式構(gòu)成的MP系統(tǒng)。

1 多處理器系統(tǒng)的構(gòu)建

當(dāng)系統(tǒng)中存在多個(gè)處理器,且用戶想一起控制/調(diào)試這些處理器時(shí),必須要為協(xié)調(diào)功能進(jìn)行額外的編程,以便調(diào)試和構(gòu)建多處理器系統(tǒng)。

1.1 MP系統(tǒng)的連接描述文件(LDF)

建立MP系統(tǒng)的第一步是使用鏈接器的多處理器功能創(chuàng)建一個(gè)多處理器工程和一個(gè)描述系統(tǒng)的LDF文件。

其中LDF文件用于描述多處理器的存儲(chǔ)器偏移量、共享存儲(chǔ)區(qū)和每個(gè)處理器的存儲(chǔ)空間。在書寫MP系統(tǒng)的LDF文件時(shí),必須考慮以下LDF命令:

◇MPMEMORY {},該命令定義了每個(gè)處理器在多處理器存儲(chǔ)空間(MMS)中的偏移量。在多處理器鏈接過程中,鏈接器使用該偏移量來(lái)鏈接各個(gè)處理器;
◇MEMORY {},該命令可定義系統(tǒng)中每個(gè)處理器的存儲(chǔ)空間;
◇PROCESSOR {} 和SECTIONS {},利用這兩個(gè)命令可定義各個(gè)處理器,并可使用存儲(chǔ)器定義將每個(gè)處理器的輸出文件放置到程序段中。
◇SHARED_MEMORY {},當(dāng)在系統(tǒng)中使用了外部共享存儲(chǔ)器時(shí),需要使用該命令。該命令能識(shí)別共享存儲(chǔ)器項(xiàng)的輸出,并生成駐留在MP系統(tǒng)的共享存儲(chǔ)空間中的共享存儲(chǔ)區(qū)的可執(zhí)行文件(.SM)。
◇SM文件由工程文件中的源文件(.ASM,.C或CPP)產(chǎn)生,該文件包含有放置于外部共享存儲(chǔ)器中的數(shù)據(jù)變量的定義。
◇LINK_AGAINST (),該命令可解析多處理器存儲(chǔ)空間中的符號(hào),并命令鏈接器檢查指定的可執(zhí)行文件(.DXEs and.SMs),以解析局部沒有解析的變量和標(biāo)號(hào),以及在MMS (也就是系統(tǒng)中其他處理器的內(nèi)部存儲(chǔ)器)中定義的表達(dá)式或變量。通常在LDF文件中,必須使用LINK_A-GAINST 0命令。

如果命令行中包含.SM和DXE文件,則必須先放.SM文件,后面接著放其他DXE文件,只有這樣,鏈接器才能正確的解析變量。一個(gè)LDF文件中最多可以說(shuō)明的處理器數(shù)量是由處理器結(jié)構(gòu)指定的(比如ADSP TS201最多支持8片)。應(yīng)該注意的是,在同一個(gè)LDF文件中,VisualDSP++4.0不支持有不同結(jié)構(gòu)的DSP混合使用(如ADSP-TS201S和ADSP-21160混合使用)。

1.2 多處理器存儲(chǔ)空間(MMS)

多處理器存儲(chǔ)空間可分成許多不同的地址區(qū)(地址區(qū)的數(shù)量是處理器指定的),這些地址區(qū)與MP系統(tǒng)中各個(gè)DSP的內(nèi)部存儲(chǔ)器空間是一致的。圖1所示是對(duì)ADSP-TS201S的多處理器存儲(chǔ)空間的描述。

多處理器系統(tǒng)中某個(gè)特定的處理器的內(nèi)部存儲(chǔ)器既可以作為源地址訪問,也可以作為目的地址來(lái)訪問,具體訪問取決于使用的地址區(qū)。對(duì)廣播區(qū)寫數(shù)據(jù)時(shí),將訪問多處理器系統(tǒng)中所有DSP的內(nèi)部存儲(chǔ)器。例如,訪問地址空間0x1000000-0x13FFFFF中的某個(gè)存儲(chǔ)單元,與訪問多處理器系統(tǒng)中ID號(hào)為0的DSP的內(nèi)部存儲(chǔ)空間是等價(jià)的。

TigerSHARC處理器可通過對(duì)其多處理器空間的寫操作來(lái)訪問,也可以訪問其自身的內(nèi)部存儲(chǔ)空間,但該操作是通過外部總線完成,在數(shù)據(jù)通過TigerSHARC總線接口的特殊情況下,一般不應(yīng)使用該操作。而對(duì)多處理器空間自身的讀訪問將設(shè)置SYSTAT寄存器中的SELF MPROC READ錯(cuò)誤標(biāo)志位,表示該操作是非法訪問。

下面是使用MMS來(lái)訪問系統(tǒng)中另一片DSP芯片存儲(chǔ)區(qū)的源程序(此時(shí),ID號(hào)為0的DSP訪問ID號(hào)為1的DSP的內(nèi)部存儲(chǔ)空間):

其中,ID1的MMS地址為0x14000000,該地址與ID1相對(duì)應(yīng)的內(nèi)部存儲(chǔ)器(0X800000)地址相加,就可以IDO對(duì)ID1的內(nèi)部存儲(chǔ)區(qū)進(jìn)行讀訪問。

在DSP多處理器系統(tǒng)中,必須存在ID號(hào)為0且接有SDRAM的DSP,該DSP用于執(zhí)行對(duì)SDRAM的初始化(MRS)。這樣,就存在一個(gè)僅由ID=000的DSP使能開漏上拉的相關(guān)問題。也就是說(shuō),在復(fù)位后。ID0就是總線控制器,由它來(lái)以循環(huán)優(yōu)先級(jí)方式將總線控制權(quán)從當(dāng)前主處理器轉(zhuǎn)移到其它處理器。

1.3外部存儲(chǔ)器

ADSP-TS201S片內(nèi)的24Mbit嵌入式DRAM (e-DRAM)既可以存放程序,也可以存放數(shù)據(jù)。然而,在某些應(yīng)用中,也需要使用外部存儲(chǔ)器。外部存儲(chǔ)器可在MP系統(tǒng)中作為系統(tǒng)中所有DSP的共享資源,也可以由某個(gè)處理器專用。

在硬件系統(tǒng)中使用不同類型的存儲(chǔ)器時(shí),系統(tǒng)中所有的DSP都必須建立對(duì)它恰當(dāng)?shù)脑L問方式。用戶可通過系統(tǒng)控制寄存器(SYSCON)來(lái)對(duì)訪問方式進(jìn)行編程。用戶定義的設(shè)置必須支持與存儲(chǔ)器設(shè)備相一致的訪問模式,而該訪問模式正是用戶希望在硬件系統(tǒng)中使用的訪問方式。共享外部總線簇連接的所有處理器的SYSCON寄存器都必須有相同的設(shè)置。 ADSP-TS201S支持對(duì)SDRAM的無(wú)縫連接。和SYSCON寄存器一樣,所有處理器的SDRAM配置寄存器(SDRCON)也必須設(shè)置成相同的值。DSP的內(nèi)部存儲(chǔ)器控制器一旦配置,DSP就可以通過外部總線訪問外部存儲(chǔ)器。

筆者設(shè)計(jì)的本系統(tǒng)有兩個(gè)DSP,并將SDRAM作為它們的外部共享資源。下面是其程序代碼,從該代碼可見,其與SDRCON寄存器的初始化相一致。

其中Shared.asm文件中包含了一些變量定義,這些變量就是放置在外部存儲(chǔ)器中的數(shù)據(jù)。實(shí)際上,本系統(tǒng)中有最小ID號(hào)的DSP(也是系統(tǒng)中優(yōu)先權(quán)最高的)在加載過程中,負(fù)責(zé)初始化在.ASM共享存儲(chǔ)器文件中定義的外部數(shù)據(jù)變量。

1.4矢量中斷(VIRPT)

矢量中斷用于主機(jī)和DSP之間,或者DSP和DSP之間的通信。該中斷是其它主處理器使用的通用中斷。通過把中斷子程序的地址寫入VIRPT寄存器,主機(jī)或主DSP就可以從DSP發(fā)出矢量中斷命令。當(dāng)服務(wù)該中斷時(shí),高優(yōu)先級(jí)中斷將使DSP轉(zhuǎn)到子程序地址,以服務(wù)該子程序。


上例中,通過把ID0中服務(wù)子程序地址寫到ID0中的VIRPT寄存器(0x11807300=0x1807300VIRPT地址+0x10000000 MMS ID0)中,可使ID1觸發(fā)ID0的矢量中斷。

一旦外部定義的標(biāo)號(hào)用作ISR地址(如例中的VIRPT_ISR_ID0),服務(wù)中斷(MMS_ID0)的DSP的MMS偏移量就必須減去某個(gè)值,才能正確的對(duì)應(yīng)到ISR的矢量地址。

上例僅僅說(shuō)明了如何使用內(nèi)部處理器的VIRPT中斷作為標(biāo)志,或者表征MP系統(tǒng)中程序已經(jīng)執(zhí)行完成。

2多處理器的數(shù)據(jù)傳輸

多處理器系統(tǒng)往往需要進(jìn)行海量數(shù)據(jù)流的處理,以提高系統(tǒng)的工作效率。通常用于實(shí)現(xiàn)ID0和ID1之間的直接存儲(chǔ)器(DMA)、從ID0和ID1到外部存儲(chǔ)器(SDRAM)、從ID1到ID0的核傳輸、對(duì)系統(tǒng)中所有DSP廣播式寫操作等幾種外部端口(EP)的數(shù)據(jù)傳輸。

TigerSHARC包含了14個(gè)DMA通道,其中4個(gè)指定為外部存儲(chǔ)器設(shè)備(通道0、1、2、3)。

2.1 從ID0到ID1的DMA傳輸

本實(shí)例說(shuō)明了從ID0內(nèi)部存儲(chǔ)器到ID1外部存儲(chǔ)器的DMA數(shù)據(jù)傳輸。在這種情況下,DMA通道0可將tx_ID0中存儲(chǔ)的數(shù)據(jù)傳輸?shù)絩x_ID1中。但這種傳輸方式必須建立兩個(gè)傳輸控制塊(TCBs),其中一個(gè)是源地址,另一個(gè)是目的地址。

由于在該實(shí)例中沒有選擇2維DMA,因此,應(yīng)注意寄存器xr2和yr2中的值是不相關(guān)的。只要源和目的TCB裝入新值,DMA傳輸就會(huì)開始。一旦DMA完成,就產(chǎn)生中斷,并運(yùn)行_dma_int矢量中斷程序。

下面是用DMA通道0將值載入到每個(gè)TCB的程序代碼:


2.2 ID0到SDRAM的DMA傳輸

從ID0內(nèi)部存儲(chǔ)器到SDRAM進(jìn)行數(shù)據(jù)傳輸時(shí),只需對(duì)以前的例子作細(xì)微的改動(dòng)即可。即先使源TCB裝人的值和前面(xR3:0)寄存器的值相同,目的TCB則用寄存器yr3:0的值寫入,而yr0的值則由rx_ID1改變?yōu)閟hared_data。這種情況下,就可通過DCS0和DCD0分別代替DCS1和DCD1,并用DMA通道1實(shí)現(xiàn)數(shù)據(jù)傳輸。代碼如下:


向一個(gè)激活的TCB寫數(shù)據(jù)時(shí),如在完成當(dāng)前傳輸之前,那么,使用相同的DMA通道執(zhí)行數(shù)據(jù)的回寫操作,可能會(huì)導(dǎo)致非法操作,其錯(cuò)誤標(biāo)志將保存到DMA狀態(tài)寄存器(DSTAT)中。

2.3 ID1到SDRAM的DMA傳輸

下面的實(shí)例是從內(nèi)部存儲(chǔ)器到SDRAM的DMA數(shù)據(jù)傳輸(只是從ID1,而不是ID0)??蓱?yīng)用相同的概念設(shè)置源和目的TCB:


本例中,源TCB中裝入的值和前面(xR3:0)寄存器中的值相同,唯一的差別就是索引量現(xiàn)在指向ID1的內(nèi)部存儲(chǔ)器tx_ID1。目的TCB中寫入的值與yr3:0寄存器的值相同,而此處yr0指向shared_data+TAPS。TAPS是指到緩沖區(qū)后半部分的偏移量,該緩沖區(qū)可在SDRAM中防止覆蓋ID0已經(jīng)傳輸?shù)臄?shù)據(jù),以便下一次使用通道0。

2.4 從ID1到ID0的核傳輸

核傳輸是不使用DMA的另外一種數(shù)據(jù)處理方式。這種情況下,整數(shù)算術(shù)邏輯單元(IALU)用于從ID1到ID0內(nèi)部存儲(chǔ)器的數(shù)據(jù)傳輸。實(shí)例說(shuō)明如下:


本例說(shuō)明了兩個(gè)數(shù)組,每個(gè)DSP的內(nèi)部存儲(chǔ)器中都有一個(gè)。通過MMS(tx_ID1到tx_ID0)可用ID1將數(shù)據(jù)寫到ID0中的數(shù)組中。IALU寄存器用于訪問兩個(gè)數(shù)據(jù)緩沖區(qū),以執(zhí)行直接數(shù)據(jù)傳輸。

3 ID檢測(cè)

在多處理器系統(tǒng)構(gòu)建完成后,接下來(lái)還要注意:所生成的可執(zhí)行文件要載人到該系統(tǒng)中正確的DSP中,以免出錯(cuò),以下子程序可用于檢測(cè)所生成的可執(zhí)行文件是否載入到了系統(tǒng)中正確的DSP中,以確保沒有ID失配:


該程序可從SYSTAT寄存器中讀入DSP的ID值,并和DSP的理論ID值相比較。本例中的程序?yàn)镮D1編寫,因此,應(yīng)保證它載入到了正確的目標(biāo)DSP1。如果不正確,程序就會(huì)進(jìn)入無(wú)窮循環(huán),同時(shí)標(biāo)志錯(cuò)誤發(fā)生。

4結(jié)束語(yǔ)

除了多處理器系統(tǒng)的構(gòu)建方法和數(shù)據(jù)傳輸?shù)哪J酵?,MP系統(tǒng)應(yīng)用中還有DSP資源的分配、總線連接和多DSP系統(tǒng)與FPGA等內(nèi)容。隨著ADSP-TS201S芯片的廣泛應(yīng)用,該處理器的運(yùn)算速度、存儲(chǔ)能力和通信邏輯處理優(yōu)勢(shì)已明顯的表現(xiàn)出來(lái),而且鏈路口的傳輸速度、可靠性和靈活性也較以前有了較大的改觀。TigerSHARC功能強(qiáng)大的運(yùn)算單元和支持多處理器并行處理的特性,使得它特別適用于復(fù)雜的系統(tǒng),如國(guó)防工業(yè)、醫(yī)用圖像處理以及復(fù)雜無(wú)線通信算法的處理。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉