ADSP-21535 Blackfin的Mem DMA高速通信-新品速遞_第1頁
ADSP-21535 Blackfin的Mem DMA高速通信-新品速遞_第2頁
ADSP-21535 Blackfin的Mem DMA高速通信-新品速遞_第3頁
ADSP-21535 Blackfin的Mem DMA高速通信-新品速遞_第4頁
ADSP-21535 Blackfin的Mem DMA高速通信-新品速遞_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯ADSP-21535Blackfin的MemDMA高速通信-新品速遞

摘要:針對(duì)ADSP-21535Blackfin的MemDMA高速通信中的關(guān)鍵技術(shù)進(jìn)行了討論,分析了系統(tǒng)的內(nèi)存管理,對(duì)DMA的相關(guān)寄存器的配置進(jìn)行了詳細(xì)講解,并給出了具體實(shí)例。對(duì)多種內(nèi)存之間的DMA列出了實(shí)際的指標(biāo)評(píng)測,為該系列DSP工程應(yīng)用的高速通信設(shè)計(jì)提供了重要參考。關(guān)鍵詞:ADSP-21535,BlackfinMemDMA

ADSP-21535Blackfin是美國AD公司和Intel公司于2001年底聯(lián)合推出的一款定點(diǎn)DSP,RISC指令結(jié)構(gòu),運(yùn)作高效,具有十分優(yōu)異的性能。該DSP具有300MHz的主頻,2個(gè)40bit的MAC(乘加器)和2個(gè)32bit的ALU(算術(shù)邏輯單元),4個(gè)8bit的視頻處理單元,16個(gè)地址尋址單元。該DSP內(nèi)部集成了308KB的RAM,并具有豐富的外部接口,如PCI、USB、SPI、同步和異步串口等。同時(shí),芯片內(nèi)部設(shè)計(jì)了看門狗和多種定時(shí)器,充分滿足軟件工程穩(wěn)定性的設(shè)計(jì)要求。值得一提的是,21535可以動(dòng)態(tài)地控制電壓輸入,調(diào)整運(yùn)行頻率,減少芯片功耗,十分適用于移動(dòng)產(chǎn)品的設(shè)計(jì)。

2002年底,AD公司在中國開始大規(guī)模推廣Blackfin系列的DSP,21535成為該系列的旗艦產(chǎn)品。由于該DSP推出時(shí)間不長,相關(guān)文獻(xiàn)幾乎沒有報(bào)道;而且,在許多接口性能方面,AD公司也沒有對(duì)其給出準(zhǔn)確的指標(biāo)。根據(jù)通常的設(shè)計(jì)經(jīng)驗(yàn)可知,新產(chǎn)品通常在某些方面沒有達(dá)到設(shè)計(jì)要求。筆者所設(shè)計(jì)的高速通信板數(shù)據(jù)交換速度必須達(dá)20MWord/s以上,因此對(duì)該DSP的高速通信必須進(jìn)行準(zhǔn)確仔細(xì)的評(píng)估和設(shè)計(jì)。

ADSP-21535的內(nèi)存訪問支持I/O方式、內(nèi)存映射和多種DMA方式,其中MemDMA(MemorytomemoryDMA)方式是快的一種并行通信方式。因此,筆者在設(shè)計(jì)時(shí)選擇了MemDMA作為高速通信方式。由于21535支持多種內(nèi)存,因此在設(shè)計(jì)MemDMA?xí)r,必須對(duì)21535的內(nèi)存管理有一個(gè)詳細(xì)的了解。

1ADSP-21535的內(nèi)存管理

21535的內(nèi)存管理十分強(qiáng)大。它把存儲(chǔ)器視為一個(gè)統(tǒng)一的4GB的地址空間,使用32位地址。所有的資源,包括內(nèi)部存儲(chǔ)器、外部存儲(chǔ)器、PCI地址空間和I/O控制寄存器,都具有獨(dú)立的地址空間。此地址空間的各部分存儲(chǔ)器按照分級(jí)結(jié)構(gòu)排列,以提供較高的性能價(jià)格比。一些快速、低延遲的存儲(chǔ)器(如L1)的位置接近處理器,而低成本低性能的存儲(chǔ)器遠(yuǎn)離。芯片內(nèi)部的308KBRAM中,其中L1(緩存)52KB,L2(二級(jí)緩存)256KB;外部地址訪問空間可以高達(dá)768MB,通過EBIU(ExternalBusInterfaceUnit,外部總線接口單元)進(jìn)行管理。EBIU支持多種內(nèi)存,如SDRAM、SRAM、ROM、EPROM、FLASH、FIFO等。內(nèi)存地址的具體配置空間如圖1所示。

L1作為DSP的緩存,可以與DSP的內(nèi)核一樣,運(yùn)行在300Mbps的高速上。它分為三部分:16KB的InstructionRam(指令存儲(chǔ)器)、,兩塊16KB的DataRam(數(shù)據(jù)存儲(chǔ)器)、4KB的ScratchpadRam(中間結(jié)果緩存)。指令存儲(chǔ)器既可以作為SRAM,也可以配置為4路聯(lián)合設(shè)置的Cache。數(shù)據(jù)存儲(chǔ)器能夠配置成雙路聯(lián)合設(shè)置的Cache或者SRAM;中間結(jié)果緩存只能作為SRAM使用。指令緩存和數(shù)據(jù)緩存都可以通過DMA方式灌入數(shù)據(jù),但是對(duì)于中間結(jié)果緩存這種方式不能使用。

L2作為DSP的二級(jí)緩存,是一個(gè)統(tǒng)一的指令和數(shù)據(jù)存儲(chǔ)器,能夠根據(jù)系統(tǒng)設(shè)計(jì)要求同時(shí)存放代碼和數(shù)據(jù)。L2具有DSP同樣的帶寬,但是延遲時(shí)間較長,訪問L2單個(gè)獨(dú)立的地址時(shí)系統(tǒng)需要經(jīng)過7個(gè)周期的延時(shí),這時(shí)它的訪問速度在42.8Mbps左右。所以如果程序比較大,必須在L2中編寫程序時(shí),通常將L1配置為L2的Cache,這樣,速度可以大大加快。

21535支持的片外存儲(chǔ)器種類很多,值得一提的是它的SDRAM控制器。21535集成的SDRAM控制器能夠以fSCLK(系統(tǒng)時(shí)鐘,為時(shí)鐘的若干分頻)的速度,與多達(dá)4個(gè)Bank的工業(yè)標(biāo)準(zhǔn)SDRAM或者DIMM接口。每個(gè)Bank可以配置為16MB~128MB的存儲(chǔ)器,符合PC133SDRAM的標(biāo)準(zhǔn)。

存儲(chǔ)器的DMA控制器提供高帶寬的數(shù)據(jù)傳輸能力,它能夠在內(nèi)部L1/L2存儲(chǔ)器和外部存儲(chǔ)器(包括PCI存儲(chǔ)空間)之間執(zhí)行代碼或者數(shù)據(jù)的塊傳輸。

2DMA寄存器的配置

為了描述MemDMA序列,DMA控制器使用一套名為描述子塊(Descriptor)的參數(shù)。當(dāng)需要后繼的DMA序列時(shí),這些描述子塊被鏈接起來。這樣,一個(gè)DMA序列完成時(shí)能夠自動(dòng)初始化下一個(gè)序列,并將其啟動(dòng)。如果不需啟動(dòng)下一個(gè)序列,只要將其指向一個(gè)內(nèi)容為0的地址空間即可。如果下鏈接指向原描述子塊,則DMA完成后暫停。為訪問整個(gè)ADSP-21535的地址空間,源地址和目的地址描述子塊采用了全32位地址的基指針。兩個(gè)描述子塊均為5個(gè)字的連續(xù)空間,需要注意的是該連續(xù)空間必須定義在L2范圍內(nèi)。描述子塊內(nèi)包含的內(nèi)容如圖2所示。

MemDMA規(guī)定,描述子塊所在的首地址必須傳入相關(guān)的寄存器。描述子塊首地址的高16位裝入DMA_DBP寄存器(DMADescriptorBasePointerRegister,DMA描述子塊基地址寄存器)內(nèi)。由于該寄存器嚴(yán)格限定必須在0xF000~0xF003,這就限定了源和目的地址描述子塊只能定義在L2存儲(chǔ)器內(nèi),并且高16位地址相同。

描述子塊首地址的低16位放在兩個(gè)寄存器中,源地址描述子塊低16位裝入MDS_DND寄存器(SourceMemoryDMANextDescriptorPointerRegister,DMA源地址下一個(gè)描述子塊寄存器),而目的地址描述子塊低16位裝入MDD_DND寄存器(DestinationMemoryDMANextDescriptorPointerRegister,DMA目的地址下一個(gè)描述子塊寄存器)。其說明如圖3所示。

在描述子塊的地址傳入相應(yīng)寄存器后,后面的四項(xiàng)先配置,然后設(shè)置項(xiàng)。也就是對(duì)管理DMA啟動(dòng)參數(shù)的寄存器進(jìn)行參數(shù)配置。兩個(gè)配置寄存器的詳細(xì)內(nèi)容如圖4所示。例如當(dāng)目的地址寄存器為0x8003,源地址寄存器為0x8001時(shí),傳輸?shù)臄?shù)據(jù)總長=DMA傳輸?shù)拈L度×字。需要注意的是,雖然此時(shí)傳輸以16位(字長)傳輸,但DMA的帶寬是32位,剩下的帶寬資源將被浪費(fèi)。8位傳輸時(shí),帶寬資源利用率更低。

下面,以一個(gè)具體的32位DMA例子說明上面的描述子塊和多個(gè)寄存器的使用方法。

圖4DMA源地址和目的地址配置寄存器

332位DMA的例程

R0.H=0x8009//DMA源配置字,設(shè)置為32位傳輸

R0.L=0x800//DMA長度

R1.L=0x2000//DMA源地址低16位

R1.H=0xf000//DMA源地址高16位,這里指向L2

R2.L=RAM_READ//DMA源描述子塊首地址

低十六位,DMA讀

R2.H=0x800b//DMA目的配置字,設(shè)置為32位傳輸

R3.L=0x0000//DMA目的地址低16位

R3.H=0xff90//DMA目的地址高16位,這里指向

L1數(shù)據(jù)存儲(chǔ)器-BankB

R4.L=RAM_WRITE//DMA目的描述子塊首地址低

十六位,DMA寫

P0.L=RAM_READ//將32位的源描述子塊的地址

載入P0

P0.H=RAM_READ

P1.L=RAM_WRITE//將32位的目的描述子塊的地

址載入P1

P1.H=RAM_WRITE

WP0+0x2=R0//將DMA長度寫入源描述塊第

二個(gè)字中

P0+0x4=R1//將DMA的32位源起始地址

寫入源描述塊第三第四個(gè)字中

WP0+0x8=R2.L//將下一個(gè)源描述子塊的地址

寫入源描述塊第五個(gè)字中

WP1+0x2=R0//將DMA長度寫入目的描述塊

第二個(gè)字中

P1+0x4=R3//將DMA的32位目的起始地址

寫入目的描述塊第三第四個(gè)字中

WP1+0x8=R4//將下一個(gè)目的描述子塊的地

址寫入目的描述塊第五個(gè)字中

WP0=R0.H//將DMA源配置字寫入源描述

塊個(gè)字中

WP1=R2.H//將DMA目的配置字寫入目的

描述塊個(gè)字中

R6=P0//將P0的值同時(shí)存在R6內(nèi)

P2.L=0x390A//將DMA源描述子塊配置寄存

器的地址傳給P2

P2.H=0xFFC0

WP2=R6.L//將DMA源描述子塊所在地址

的低16位傳給P2指向的地方P3.L=0x4880//將描述子塊基地址寄存器的

地址傳給P3

P3.H=0xFFC0

WP3=R6.H//將DMA源描述子塊所在地址

的高16位傳給基地址寄存器

P4.L=0x380A

P4.H=0xFFC0//將DMA目的描述子塊配置寄

存器的地址傳給P4

R6=P1//將P1的值轉(zhuǎn)存到R6

WP4=R6.L//將目的描述子塊所在地址的

低16位傳給配置目的地址寄存器

P5.L=0x3902

P5.H=0xFFC0//將DMA源地址配置寄存器所

在地址傳給P5

R6=WP5

BITSETR60//設(shè)置R6的位為1,表示

準(zhǔn)備啟動(dòng)讀DMA

I0.L=0x3802

I0.H=0xFFC0//將DMA目的地址配置寄存器

的地址傳給I0

R7.L=WI0

BITSETR70//設(shè)置R7的位為1,表示

準(zhǔn)備啟動(dòng)寫DMA

WP5=R6//將R6和R7的低16位寫入

兩個(gè)配置寄存器中,真正啟動(dòng)DMA

WI0=R7.L

DMA_WAIT//等待DMA結(jié)束

R6=WP1//根據(jù)寫描述子塊個(gè)字的

位判斷描述子塊的所有權(quán)

cc=bittstR615

IFccJUMPDMA_WAIT//如果為1,表示還在DMA

狀態(tài),繼續(xù)判斷,等待

RTS

.align4//在L2空間范圍內(nèi)定義兩個(gè)

描述子塊,要求4個(gè)字節(jié)對(duì)齊

.BYTE2RAM_READ5

.align4

.BYTE2RAM_WRITE5

值得注意的是,在上述DMA例程中,筆者使用了查詢等待方式,但中間完全可以插入其他指令,例如DSP還可以同時(shí)作雙乘加和兩次32位取數(shù)。只要不訪問正在DMA讀寫的地址區(qū)域,沒有任何影響。這意味著,在系統(tǒng)DMA的同時(shí),DSP可以同時(shí)進(jìn)行其他操作,這一點(diǎn)對(duì)于提高DSP的效率至關(guān)重要。

4各種內(nèi)存空間的DMA訪問指標(biāo)測試及分析

根據(jù)以上配置,筆者對(duì)ADSP-21535的DMA性能進(jìn)行了比較詳盡的測試。測試數(shù)據(jù)如表1所示。

表121535的DMA實(shí)測數(shù)據(jù)

源地址目的地址DMA長度(雙字)周期數(shù)(個(gè))速度(雙字/秒)L2L140964361528.2ML2SDRAM81925487844.8ML2L281926673736.8ML1L140966416419.1ML1SDRAM40963989130.8ML1L240965266123.3MSDRAML140962862542.9MSDRAMSDRAM40966566818.7MSDRAML281925231446.9M注:測試環(huán)境-DSP時(shí)鐘300MHz,系統(tǒng)時(shí)鐘120MHz,SDRAM為PC133標(biāo)準(zhǔn)。樣本采樣:各15次

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論