国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

ADSP-21535 Blackfin的Mem DMA高速通信

發(fā)布時(shí)間:2010-11-25 11:59    發(fā)布者:eetech
關(guān)鍵詞: ADSP-21535 , Blackfin , DMA , MEM , 高速通信
Blackfin 是美國(guó)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ó)開始大規(guī)模推廣Blackfin系列的DSP,21535成為該系列的旗艦產(chǎn)品。由于該DSP推出時(shí)間不長(zhǎng),相關(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á)20M Word/s以上,因此對(duì)該DSP的高速通信必須進(jìn)行準(zhǔn)確仔細(xì)的評(píng)估和設(shè)計(jì)。 ADSP-21535的內(nèi)存訪問支持I/O方式、內(nèi)存映射和多種DMA方式,其中Mem DMA(Memory to memory DMA)方式是最快的一種并行通信方式。因此,筆者在設(shè)計(jì)時(shí)選擇了Mem DMA作為高速通信方式。由于21535支持多種內(nèi)存,因此在設(shè)計(jì)Mem DMA時(shí),必須對(duì)21535的內(nèi)存管理有一個(gè)詳細(xì)的了解。 1 ADSP-21535的內(nèi)存管理 21535的內(nèi)存管理十分強(qiáng)大。它把存儲(chǔ)器視為一個(gè)統(tǒng)一的4GB的地址空間,使用32位地址。所有的資源,包括內(nèi)部存儲(chǔ)器、外部存儲(chǔ)器、CI地址空間和I/O控制寄存器,都具有獨(dú)立的地址空間。此地址空間的各部分存儲(chǔ)器按照分級(jí)結(jié)構(gòu)排列,以提供較高的性能價(jià)格比。一些快速、低延遲的存儲(chǔ)器(如L1)的位置接近處理器核心,而低成本低性能的存儲(chǔ)器遠(yuǎn)離核心。

芯片內(nèi)部的308KB RAM中,其中L1(一級(jí)緩存)52KB,L2(二級(jí)緩存)256KB;外部地址訪問空間可以高達(dá)768MB,通過EBIU(External Bus Interface Unit,外部總線接口單元)進(jìn)行管理。EBIU支持多種內(nèi)存,如SDRAM、SRAM、ROM、EPROM、FLASH、FIFO等。內(nèi)存地址的具體配置空間如圖1所示。



L1作為DSP的一級(jí)緩存,可以與DSP的內(nèi)核一樣,運(yùn)行在300Mbps的高速上。它分為三部分:16KB的Instruction Ram(指令存儲(chǔ)器)、,兩塊16KB的Data Ram(數(shù)據(jù)存儲(chǔ)器)、4KB的Scratchpad Ram(中間結(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í)間較長(zhǎng),訪問L2單個(gè)獨(dú)立的地址時(shí)系統(tǒng)需要經(jīng)過7個(gè)周期的延時(shí),這時(shí)它的訪問速度在42.8Mbps左右。所以如果程序比較大,必須在L2中編寫程序時(shí),通常將L1配置為L(zhǎng)2的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ǔ)器,符合PC133 SDRAM的標(biāo)準(zhǔn)。

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




2 DMA寄存器的配置

為了描述Mem DMA序列,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所示。 Mem DMA規(guī)定,描述子塊所在的首地址必須傳入相關(guān)的寄存器。描述子塊首地址的高16位裝入DMA_DBP寄存器(DMA Descriptor Base Pointer Register,DMA描述子塊基地址寄存器)內(nèi)。由于該寄存器嚴(yán)格限定必須在0xF000~0xF003,這就限定了源和目的地址描述子塊只能定義在L2存儲(chǔ)器內(nèi),并且高16位地址相同。 描述子塊首地址的低16位放在兩個(gè)寄存器中,源地址描述子塊低16位裝入MDS_DND寄存器(Source Memory DMA Next Descriptor Pointer Register,DMA源地址下一個(gè)描述子塊寄存器),而目的地址描述子塊低16位裝入MDD_DND寄存器(Destination Memory DMA Next Descriptor Pointer Register,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ù)總長(zhǎng)=DMA傳輸?shù)拈L(zhǎng)度字。需要注意的是,雖然此時(shí)傳輸以16位(字長(zhǎng))傳輸,但DMA的帶寬是32位,剩下的帶寬資源將被浪費(fèi)。8位傳輸時(shí),帶寬資源利用率更低。

下面,以一個(gè)具體的32位DMA例子說明上面的描述子塊和多個(gè)寄存器的使用方法。 圖4 DMA源地址和目的地址配置寄存器 3 32位DMA的例程 R0.H = 0x8009 //DMA源配置字,設(shè)置為32位傳輸 R0.L = 0x800 //DMA長(zhǎng)度 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ǔ)器-Bank B 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長(zhǎng)度寫入源描述塊第 二個(gè)字中 P0+0x4 = R1 //將DMA的32位源起始地址 寫入源描述塊第三第四個(gè)字中 WP0+0x8 = R2.L //將下一個(gè)源描述子塊的地址 寫入源描述塊第五個(gè)字中 WP1+0x2 = R0 //將DMA長(zhǎng)度寫入目的描述塊 第二個(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  IF cc JUMP DMA_WAIT //如果為1,表示還在DMA 狀態(tài),繼續(xù)判斷,等待 RTS .align 4 //在L2空間范圍內(nèi)定義兩個(gè) 描述子塊,要求4個(gè)字節(jié)對(duì)齊 .BYTE2 RAM_READ5 .align 4 .BYTE2 RAM_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)測(cè)試及分析

根據(jù)以上配置,筆者對(duì)ADSP-21535的DMA性能進(jìn)行了比較詳盡的測(cè)試。測(cè)試數(shù)據(jù)如表1所示。 表1 21535的DMA實(shí)測(cè)數(shù)據(jù) 源地址目的地址 DMA長(zhǎng)度(雙字)周期數(shù)(個(gè))速度(雙字/秒) L2 L1 4096 43615 28.2M L2 SDRAM 8192 54878 44.8M L2 L2 8192 66737 36.8M L1 L1 4096 64164 19.1M L1 SDRAM 4096 39891 30.8M L1 L2 4096 52661 23.3M SDRAM L1 4096 28625 42.9M SDRAM SDRAM 4096 65668 18.7M SDRAM L2 8192 52314 46.9M 注:測(cè)試環(huán)境-DSP核心時(shí)鐘300MHz,系統(tǒng)時(shí)鐘120MHz,SDRAM為PC133標(biāo)準(zhǔn)。樣本采樣:各15次 從表1中的實(shí)測(cè)數(shù)據(jù)可以看出,DMA的速度均在18.7M雙字/秒以上,最高速度達(dá)46.9M雙字/秒,可以滿足工程中高速采集的需要。從表中數(shù)據(jù)可以得出以下結(jié)論: (1)DMA雙向速度不對(duì)稱,將源地址和目的地址交換后,速度會(huì)發(fā)生變化; (2)低速向高速區(qū)域傳輸時(shí),要比反向傳輸快; (3)同類區(qū)域DMA一般比區(qū)域之間DMA要慢。如L1 DMA到L1,比L1 DMA到L2和SDRAM都要慢一些。其它區(qū)域也有類似現(xiàn)象。 (4)高速區(qū)域DMA速度并不一定快,如L1區(qū)域DMA速度總體表現(xiàn)反而最低。
本文地址:http://m.qingdxww.cn/thread-41592-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 我們是Microchip
  • 更佳設(shè)計(jì)的解決方案——Microchip模擬開發(fā)生態(tài)系統(tǒng)
  • 你仿真過嗎?使用免費(fèi)的MPLAB Mindi模擬仿真器降低設(shè)計(jì)風(fēng)險(xiǎn)
  • 利用模擬開發(fā)工具生態(tài)系統(tǒng)進(jìn)行安全電路設(shè)計(jì)
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 免费一级毛片在线播放不收费 | 成年色黄大色黄大片 视频 成年日韩片av在线网站 | 久久免费小视频 | 日本高清在线精品一区二区三区 | 四虎影院永久在线观看 | 日本免费色视频 | 青草草在线观看免费视频 | 日韩精品视频美在线精品视频 | 91成人在线免费视频 | 伊人网站| 日韩视频免费一区二区三区 | 亚洲伦理一区二区三区 | 久久久久久久久久久9精品视频 | 高清在线一区二区三区亚洲综合 | 中文字幕日韩欧美一区二区三区 | 一级特黄特色的免费大片视频 | 日韩欧美亚洲视频 | xxxx日本在线播放免费不卡 | 久草视频在线资源 | 国产永久免费爽视频在线 | 久久免费视频观看 | 欧美视频一区二区 | 2020国产麻豆剧传媒 | 免费人成网 | 亚洲精品永久免费 | 中国成人在线视频 | 亚洲人妖ts资源在线观看 | 亚洲精品综合久久中文字幕 | 91在线公开视频 | 国产91精品高跟丝袜在线 | 三面娜迦泰剧全集在线观看 | 国产精品视频福利一区二区 | 麻豆爱爱 | 国产精品免费大片一区二区 | 热99re久久免费视精品频软件 | 国产内地激情精品毛片在线一 | 国产精品日本一区二区在线播放 | 欧美日韩精品一区二区在线线 | 羞羞官网 | 成人国内精品久久久久影院 | 91视频下载入口 |