上海婦科疾病研究所 上海女性不孕醫(yī)院 上海引產(chǎn)醫(yī)院 無痛引產(chǎn)痛不痛 上海人流醫(yī)院 白癜風(fēng)治療醫(yī)院 上海小兒腦癱醫(yī)院 上海女子醫(yī)院
耳根,遮天 辰东 小说笔趣阁,小说阅读网免费小说

国产精品无码毛片AV_亚洲毛片精品在线_全球黄色短视频在线免费观看_亚洲一区二区爱av_成年人免费观看网址_欧美美女性爱喷水网址_亚洲毛片av无码不卡_国产无码视频在线观看_高清国语自产拍在线播放_女人午夜免费黄片

用戶名: 密碼:
主頁 設(shè)為首頁 加入收藏
      產(chǎn)品中心       技術(shù)中心       下載中心        社區(qū)新聞        誠聘英才       大學(xué)計劃        關(guān)于我們       技術(shù)論壇
  您的當(dāng)前位置:ADSP開源社區(qū) >> 技術(shù)中心 >> Blackfin 今天是:
技術(shù)中心  
SigmaDSP
SHARC
A2B音頻總線
Blackfin
ADI操作系統(tǒng)
ADSP-218X
TigerSAHRC
ADI DSP仿真器
產(chǎn)品導(dǎo)航
ADI DSP仿真器
SigmaDSP開發(fā)板
ADI A2B總線開發(fā)板
SHARC DSP開發(fā)板
銷售網(wǎng)絡(luò)
Blackfin  
Blackfin的學(xué)習(xí)心得(轉(zhuǎn)載)
[ 作者: ] [ 來源:ADSP開源社區(qū) ] [ 發(fā)布時間:2018-4-19 ]

    呵,學(xué)習(xí)DSP,特別是Blackfin系列的,沒數(shù)據(jù)手冊簡直是沒法學(xué)的。
    該系列基本上只有英文資料,而就我目前翻過的所有教材基本上都是從數(shù)據(jù)手冊上摘錄一個片段,翻譯一下就完事了,連個總結(jié)都沒有。很多關(guān)鍵的地方(比如中斷),要想理解完整,必須同時參考多個數(shù)據(jù)手冊,因此只看教材基本上是云里霧里的。
    附件里是bf548bf533的相關(guān)手冊,與bf561大部分是一樣的。bf561是雙核的,在編譯與鏈接庫參考手冊(6389974860119950_BF_cc_man.pdf)里有關(guān)于雙核編程的指導(dǎo)。
    好吧,再講講Blackfin DSPARM的區(qū)別。
    可以把嵌入式分成DSPMCU兩種
        MCU
一般用于管理任務(wù),更注重代碼密度,而不是性能的極限(比如只做一個管理系統(tǒng),更多的是對外設(shè)讀寫,而外設(shè)一般是很慢(想想IIC,SPI,速度再快也不過幾M比特)的,因此大部分時間都在等待,很少需要考慮算法的優(yōu)化),ARM便是這類MCU
DSP
一般用于處理圖像、音頻、視頻(不僅是讀寫,而是處理,比如編碼解碼,或者從圖像完成人臉檢測),它更注重地是發(fā)揮處理器的極限性能,而其架構(gòu)(后講)也自然地與MCU有較大區(qū)別。
    以前的話,大部分DSP對管理任務(wù)的能力很差,而像ARM這種MCU對于算法性能要求高的(比如圖像處理)的任務(wù)基本是無能為力。于是,既能有MCU出色 的管理功能,又能有DSP出色的計算性能便是很多人的一個目標(biāo),Blackfin DSP便是這樣誕生的。它既能作為100%MCU使用,也能作為100%DSP使用(這句是從U-boot的應(yīng)用筆記抄的,呵,100%,哥可不敢亂 說)。
    好的,以一個例子說明一下圖像處理的艱巨來體現(xiàn)DSP的必要性。
    我們現(xiàn)在拍攝的圖像再一般都是動輒130W像素,或者300W像素,假設(shè)想要從圖像中識別出人臉(或車牌號識別,都是一樣的)。那么便需要用一些圖像處理 與機器視覺的算法對圖像進行處理。無論對圖像作怎樣簡單的處理,都需要遍歷每個像素,對于130W像素的圖像,再快也得運算130W次(計算上尋址之類, 130W*3~7)。那么對于PC的單核3GCPU來說,一秒只能遍歷幾千次圖像(這里只是舉例說明,實際上由于現(xiàn)代CPU的架構(gòu)良好,GPU、協(xié)處 理器的存在,速度并不會這么慢)。把遍歷一次圖像看成一次加法,那么3GCPU就相當(dāng)于一個只能計算幾千次加法的CPU,這樣的處理速度難以滿足實時要 求。而DSP便是為解決這些問題而存在的。
    這里看一下Blackfin DSP的一些特點(為了防止太多廢話,這里假設(shè)大家有一點CPU的架構(gòu)知識與匯編知識):

零周期循環(huán):
for (i = 0; i < 1000;i++)
   for (j = 0; j < 1000 ;j++)
          x = 0;

    看上例,對于一般的CPU來說,循環(huán)都是模擬實現(xiàn)的,即判斷是否計數(shù)完成,然后減計數(shù),再JUMP,這至少得3個周期(更要命的是,流水線必須重新填充, 這個隱含了更多的周期浪費),也就是說上面的執(zhí)行至少得消費4M(3 * 1000 000 + 1000 000)個周期。
    而Blackfin DSP使用硬件循環(huán),上面的兩個for不消耗周期,即只消費了1M個周期,這個節(jié)省是很可觀的。
    同時Blackfin DSP還使用一個緩存區(qū)存放循環(huán)體內(nèi)的4條指令,以進一步提高效率。

循環(huán)尋址:
for (i = 0; i < 1000;i++)
    a[i % 100] += 1;

    大家要知道,%運算不是由硬件支持(對于PCDSP都一樣)的,它的執(zhí)行效率很低,對于DSP,估計一次得上百個周期。在形態(tài)學(xué)圖像處理中,循環(huán)尋址是 很常見的,而每理一個像素要上百個周期,這對DSP是無法接受的。因此DSP提供了一組寄存器,叫DAG,通過合適的配置,可以使地址循環(huán),為了讓大家更 明白,將上例改成DSP的實現(xiàn)形式:

p = a;
for (i = 0; i < 1000;i++)
    *p++ += 1;

        這里假設(shè)p已經(jīng)配置好循環(huán)長度為100(這里其實應(yīng)該用匯編寫,不過只是為了演示,而忽略了晦澀的細節(jié)),當(dāng)p累加到100時(依此類推),會自動把p重設(shè)為a的起地址。相比于上面的代碼,每執(zhí)行一次循環(huán)可節(jié)。保埃岸鄠周期。

特別設(shè)計的指令集(對應(yīng)于特別設(shè)計的架構(gòu)):
1、一些高效指令:
Blackfin DSP有兩個MAC,可以在一個周期內(nèi)同時完成2個16位乘法,而PCCPU一般是幾個周期完成一次乘法。
各種專為視頻流處理設(shè)置的指令(至今沒用過,沒法細講)。
更多高效指令與細節(jié),參考指令集參考手冊。
2 、并行指令:
一個周期內(nèi)最高可以同時實現(xiàn)一條32位指令加兩條16位指令。這里通過一個例子,大家去體會其中的獨到之處:
A1+=R0.L*R2.H,A0+=R0.L*R2.L || R2.L=W[I2++] || R0=[I1--] ;
這是一條匯編指令,在單周期內(nèi)完成,它完成了兩次乘法,并累加到專用累加器,完成兩次數(shù)據(jù)存取,同時移動兩次指針。將它換到PC上實現(xiàn),至少得10個周期。
更多的關(guān)于DSP與眾不同之處就不多說了,數(shù)據(jù)手冊多看些自然也就明白了。

    那么學(xué)習(xí)Blackfin DSP應(yīng)該學(xué)什么?
    雖然它既能完成MCU的功能,又有DSP的強悍,我認為還是側(cè)重DSP的方面的學(xué)習(xí),因為它比較貴,還有想學(xué)MCU,學(xué)ARM更合適,資料多。
    要學(xué)會DSP,至少得學(xué)會匯編(Blackfin的匯編與C類似,好學(xué),但是加了限制),才能深刻理解它的架構(gòu)(有人說,不會匯編的DSP工程師稱不上合 格的工程師,而一般一個高度優(yōu)化的DSP項目的核心部分都會包含一部分匯編)。不會匯編去看架構(gòu),我認為最多只能走馬觀花(至少不會匯編前,哥是看得糊里 糊涂)。
    然后實踐一些比較需要DSP的例子(一邊看例子,一邊學(xué)匯編),比如FFT、形態(tài)學(xué)處理之類的。更深入的也就不用說了,入門后大家就會漸漸明白適合自己的了。
談得比較空泛,更具體的還是只能通過實際的例子才講得明白。

聯(lián)系我們 | 關(guān)于我們 | 免責(zé)聲明 | 誠征英才 | 友情鏈接
Copyright 2019 All rights reserved  本網(wǎng)頁版權(quán)屬Open ADSP所有
北京海淀區(qū)中關(guān)村大街32號新中發(fā)市場3659 郵編100100
電話 18611096839 
粵ICP備14035876號-1