基于ARM+DSP的雙核架構(gòu)_第1頁(yè)
基于ARM+DSP的雙核架構(gòu)_第2頁(yè)
基于ARM+DSP的雙核架構(gòu)_第3頁(yè)
基于ARM+DSP的雙核架構(gòu)_第4頁(yè)
基于ARM+DSP的雙核架構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、  基于ARM+DSP的雙核架構(gòu),很多工程師不知道如何入手進(jìn)行開(kāi)發(fā),提出了很多的疑問(wèn),比如對(duì)ARM工程師,很困惑的是如何使用DSP的資源?如何進(jìn)行數(shù)據(jù)的交互?如何保持雙核之間的同步?對(duì)DSP工程師,則問(wèn)到如何進(jìn)行ARM調(diào)試?如何啟動(dòng)DSP?如果進(jìn)行媒體加速,如何操作外設(shè)獲取或發(fā)送數(shù)據(jù)等?;诓煌拈_(kāi)發(fā)經(jīng)驗(yàn)和基礎(chǔ),ARM工程師和DSP工程師會(huì)從完全不同的角度來(lái)看SOC的芯片,以至于拿到SOC的芯片根本不知道如何入手,這里就本人的經(jīng)驗(yàn)與大家分享一下。  首先ARM+DSP的芯片,他是一個(gè)雙核的,對(duì)應(yīng)ARM和DSP分別是不同的指令集和編譯器,可以把SOC的芯片看成是兩個(gè)單芯片的合

2、成,需要兩套不同的開(kāi)發(fā)工具,CCS3.3可以進(jìn)行芯片級(jí)的調(diào)試和仿真,但是對(duì)應(yīng)ARM和DSP需要選擇不同的平臺(tái)。一般來(lái)說(shuō),ARM上面跑操作系統(tǒng),比如Linux,Wince等,在ARM上的開(kāi)發(fā),除了bootloader以外,基本都是基于OS的開(kāi)發(fā),比如驅(qū)動(dòng),內(nèi)核裁減,以及上層應(yīng)用等,需要的調(diào)試和仿真主要靠log或者OS提供的調(diào)試器,如KGDB,Platform Builder等?;贒SP核的開(kāi)發(fā)和傳統(tǒng)單核DSP一樣,需要用CCS+仿真器來(lái)進(jìn)行開(kāi)發(fā)調(diào)試。      其次,對(duì)于芯片的外設(shè)接口,ARM核和DSP核都可以訪問(wèn),典型的情況是ARM控制所有的外設(shè),通過(guò)

3、OS上的驅(qū)動(dòng)去控制和管理,這部分和傳統(tǒng)的ARM芯片類似;DSP主要是進(jìn)行算法加速,只是和memory打交道,為了保持芯片的資源管理的一致性,盡量避免由DSP去訪問(wèn)外設(shè)。當(dāng)然,根據(jù)具體的應(yīng)用需求,DSP也是可以控制外設(shè)接口進(jìn)行數(shù)據(jù)的收發(fā),這時(shí),需要做好系統(tǒng)的管理,避免雙核操作的沖突。  對(duì)memory的使用,非易失的存儲(chǔ)空間,比如NAND、NOR Flash,基本也是由ARM訪問(wèn),DSP的算法代碼作為ARM端OS文件系統(tǒng)的一個(gè)文件存在,通過(guò)應(yīng)用程序進(jìn)行DSP程序的下載和DSP芯片的控制。外部RAM空間,即DDR存儲(chǔ)區(qū),是ARM和DSP共享存在的,但是在系統(tǒng)設(shè)計(jì)的時(shí)候,需要把ARM和DS

4、P使用的內(nèi)存嚴(yán)格物理地址分開(kāi),以及預(yù)留出一部分用來(lái)交互的內(nèi)存空間。一般情況,ARM是用低端地址,DSP通過(guò)CMD文件分配高端地址,中間預(yù)留部分空間用來(lái)做數(shù)據(jù)交互,比如在OMAP3的Linux下的DVSDK中,128MB的DDR空間被分成三部分,低端地址從0x8000000到0x85800000-1的88MB空間給Linux內(nèi)核使用;從0x85800000到0x86800000-1的16MB給CMEM的驅(qū)動(dòng),用來(lái)做ARM和DSP的大塊數(shù)據(jù)交互,從0x86800000到0x88000000-1的24MB是DSP的代碼和數(shù)據(jù)空間。       芯片的

5、啟動(dòng)也是需要重點(diǎn)考慮的問(wèn)題,一般情況下,是ARM啟動(dòng),和傳統(tǒng)的單核ARM一樣,支持不同的啟動(dòng)方式,比如可以支持NAND,NOR,UART,SPI,USB,PCI等接口啟動(dòng)。DSP默認(rèn)處于復(fù)位狀態(tài),只有通過(guò)ARM的應(yīng)用下載代碼并且解除復(fù)位以后,DSP才能跑起來(lái)。有些應(yīng)用場(chǎng)景,需要DSP直接從外部上電就自啟動(dòng),有些芯片也是支持這種模式的。  最后,關(guān)于芯片的通信和同步,這個(gè)是困擾很多工程師的問(wèn)題,為了便于客戶的開(kāi)發(fā)和使用,TI提供了DSPLINK,CODEC ENGINE的DVSDK開(kāi)發(fā)套件,基于DVSDK可以很方便的進(jìn)行ARM+DSP的應(yīng)用開(kāi)發(fā),下面對(duì)DVSDK的軟件架構(gòu),各個(gè)軟件模塊

6、的功能等做簡(jiǎn)要介紹。          DVSDK是多個(gè)軟件模塊的集成,包括純DSP端的軟件模塊,ARM的軟件模塊和雙核交互的軟件模塊。DVSDK的軟件包都是基于實(shí)時(shí)軟件模塊(Real-Time-Software-Component:RTSC)的,還需要安裝RTSC的工具XDC,XDC是TI開(kāi)源的一個(gè)工具,可以支持跨平臺(tái)的開(kāi)發(fā),能夠最大程度的代碼重用;如果需要進(jìn)行純ARM的開(kāi)發(fā),還需要ARM的編譯工具以及Linux內(nèi)核或者Wince的BSP;如果需要進(jìn)行DSP的算法開(kāi)發(fā)或者DSP端開(kāi)執(zhí)行代碼生成,還需要安裝DSP的

7、編譯器cgtools和DSP/BIOS;為了便于配置生成DSP端的可執(zhí)行代碼,通過(guò)向?qū)蒀odec的RTSC包和可執(zhí)行代碼,還可以選裝ceutils和cg_xml。  DVSDK的核心是Codec Engine,所有的其他軟件模塊基本都是圍繞Codec Engine的。Codec Engine是連接ARM和DSP的橋梁,是介于應(yīng)用層(ARM側(cè)的應(yīng)用程序)和信號(hào)處理層(DSP側(cè)的算法)之間的軟件模塊,在編譯DSP端可執(zhí)行代碼和ARM端應(yīng)用程序時(shí),都需要Codec Engine的支持。Codec Engine主要有兩部分: ? ARM端應(yīng)用適配層,提供了精簡(jiǎn)的API和對(duì)應(yīng)的庫(kù)給應(yīng)用層使

8、用。 ? DSP的算法調(diào)用層,提供了DSP算法的接口封裝規(guī)范,是的所有的算法通過(guò)簡(jiǎn)單的配置就可以編譯到DSP的可執(zhí)行程序中。 最終的應(yīng)用程序需要通過(guò)Codec Engine的API接口來(lái)下載DSP代碼,調(diào)用DSP端的封裝好的算法,以及進(jìn)行ARM和DSP的通信。     關(guān)于Codec Engine的介紹,可以參考幫您快速入門Codec Engine。  Codec Engine底層ARM和DSP的通信是建立在DSP/BIOS Link之上的,DSP/BIOS Link真正實(shí)現(xiàn)ARM和DSP交互的軟件模塊。由于DSP/BIOS Link是跨平臺(tái)的

9、,也是有ARM部分和DSP部分組成,其中在ARM端,包括基于OS的驅(qū)動(dòng)和供應(yīng)用調(diào)用的庫(kù)文件,DSP端,必須要用DSP/BIOS,DSP的可執(zhí)行代碼需要包含DSP/BIOS Link的庫(kù)文件。DSP/BIOS  Link常用的主要有如下幾部分的軟件模塊: ? PROC相關(guān)的,主要是用來(lái)做DSP芯片的控制,比如啟動(dòng),停止等,下載DSP的可執(zhí)行代碼,以及直接讀寫DSP端的memory空間等 ? MSGQ相關(guān),ARM和DSP的通信是基于MSGQ的,MSGQ有輪詢等待的方式或者中斷的方式,MSG是基于共享內(nèi)存池的方式。Codec Engine通過(guò)MSGQ交互一些關(guān)鍵數(shù)據(jù),比如控制,和一些大塊數(shù)

10、據(jù)的地址指針等。大量的數(shù)據(jù)交互需要通過(guò)cmem實(shí)現(xiàn)。  在ARM端,配合Codec Engine使用的軟件模塊有LinuxUtils或者WinceUtils,包含cmem,SDMA等,cmem是用來(lái)在OS之外分配連續(xù)物理內(nèi)存空間,進(jìn)行物理地址到虛地址,以及虛地址到物理地址空間轉(zhuǎn)化的。為了避免數(shù)據(jù)的多次復(fù)制,需要開(kāi)辟一塊ARM和DSP共享的數(shù)據(jù)空間,ARM和DSP都可以直接訪問(wèn),這部分空間需要通過(guò)CMEM管理。對(duì)ARM來(lái)說(shuō),CMEM是OS上的一個(gè)驅(qū)動(dòng)程序,需要通過(guò)IOCTL來(lái)實(shí)現(xiàn)內(nèi)存分配或者地址空間轉(zhuǎn)化。由于DSP可以訪問(wèn)任何物理地址空間,通過(guò)ARM傳給DSP的指針必須是物理地址。&#

11、160; 為了適配一些播放器的接口,DVSDK還提供了DMAI(Digital Media Application Interface),DMAI提供了更為精簡(jiǎn)的媒體接口和基于OS的音視頻捕捉、回放等接口,在Linux下的gstreamer和Wince下的dshow filter都是基于DMAI的。并且DMAI也提供了最基本的測(cè)試應(yīng)用例子,可以很方便的進(jìn)行修改和測(cè)試。     如果只是調(diào)用現(xiàn)成的或者第三方的算法庫(kù),可以只了解ARM端的軟件模塊,Codec Engine或者DMAI已經(jīng)提供了豐富的應(yīng)用接口,DSP可以認(rèn)為是個(gè)單純的媒體加速器,把ARM+DS

12、P的芯片當(dāng)作ASIC一樣使用。如果要充分發(fā)揮DSP的性能,就需要對(duì)DSP進(jìn)行開(kāi)發(fā)了。Codec Engine對(duì)DSP的算法只是規(guī)范了接口,以便于和Codec Engine一起生成DSP的可執(zhí)行程序。  開(kāi)發(fā)DSP算法的工程師,和傳統(tǒng)的單核的DSP開(kāi)發(fā)模式類似,只需要操作DSP核,基于CCS進(jìn)行算法開(kāi)發(fā),最后封裝成xDM的接口就可以了。具體如何進(jìn)行DSP的打包,如何生成DSP的可執(zhí)行程序,在后續(xù)的文章繼續(xù)討論。arm是一種嵌入式芯片,比單片機(jī)功能強(qiáng),可以針對(duì)需要增加外設(shè)。類似于通用cpu,但是不包括桌面計(jì)算機(jī)。DSP主要用來(lái)計(jì)算,計(jì)算功能很強(qiáng)悍,一般嵌入式芯片用來(lái)控制,而DSP用來(lái)計(jì)算

13、,譬如一般手機(jī)有一個(gè)arm芯片,主要用來(lái)跑界面,應(yīng)用程序,DSP可能有兩個(gè),adsp,mdsp,或一個(gè),主要是加密解密,調(diào)制解調(diào)等。FPGA和CPLD都是可編程邏輯器件,都可以用VHDL或verilog HDL來(lái)編程,一般CPLD使用乘積項(xiàng)技術(shù),粒度粗些;FPGA使用查找表技術(shù),粒度細(xì)些,適用觸發(fā)器較多的邏輯。其實(shí)多數(shù)時(shí)候都忽略它們的差異,中國(guó)電子頂級(jí)開(kāi)發(fā)網(wǎng)-電子設(shè)計(jì)討論、博客、超人氣的電子工程師資料分享平臺(tái)一般在設(shè)計(jì)ASIC芯片時(shí)要用FPGA驗(yàn)證,然后再把VHDL等程序映射為固定的版圖,制作ASIC芯片,在設(shè)計(jì)VHDL程序時(shí),有可能要使用C仿真。SOC就是單片系統(tǒng),主要是器件太多設(shè)計(jì)復(fù)雜,成

14、本高,可靠性差等缺點(diǎn),所以單片系統(tǒng)是一個(gè)發(fā)展趨勢(shì)。SOPC就是可編程芯片系統(tǒng),就是可以用FPGA/CPLD實(shí)現(xiàn)一個(gè)單片系統(tǒng),譬如altera的Nios軟核處理器嵌入到Stratix中。FPGA與CPLD的區(qū)別系統(tǒng)的比較,與大家共享:盡管和都是可編程器件,有很多共同特點(diǎn),但由于和結(jié)構(gòu)上的差異,具有各自的特點(diǎn): 更適合完成各種算法和組合邏輯, 更適合于完成時(shí)序邏輯。換句話說(shuō),更適合于觸發(fā)器豐富的結(jié)構(gòu),而更適合于觸發(fā)器有限而乘積項(xiàng)豐富的結(jié)構(gòu)。的連續(xù)式布線結(jié)構(gòu)決定了它的時(shí)序延遲是均勻的和可預(yù)測(cè)的,而的分段式布線結(jié)構(gòu)決定了其延遲的不可預(yù)測(cè)性。在編程上比具有更大的靈活性。通過(guò)修改具有固定內(nèi)連電路的邏輯功能

15、來(lái)編程,主要通過(guò)改變內(nèi)部連線的布線來(lái)編程; 可在邏輯門下編程,而是在邏輯塊下編程。的集成度比高,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實(shí)現(xiàn)。比使用起來(lái)更方便。的編程采用2或技術(shù),無(wú)需外部存儲(chǔ)器芯片,使用簡(jiǎn)單。而的編程信息需存放在外部存儲(chǔ)器上,使用方法復(fù)雜。的速度比快,并且具有較大的時(shí)間可預(yù)測(cè)性。這是由于是門級(jí)編程,并且之間采用分布式互聯(lián),而是邏輯塊級(jí)編程,并且其邏輯塊之間的互聯(lián)是集總式的。在編程方式上,主要是基于2或存儲(chǔ)器編程,編程次數(shù)可達(dá)1萬(wàn)次,優(yōu)點(diǎn)是系統(tǒng)斷電時(shí)編程信息也不丟失。又可分為在編程器上編程和在系統(tǒng)編程兩類。大部分是基于編程,編程信息在系統(tǒng)斷電時(shí)丟失,每次上電時(shí),需從器件外部將編程數(shù)據(jù)重新寫入

16、中。其優(yōu)點(diǎn)是可以編程任意次,可在工作中快速編程,從而實(shí)現(xiàn)板級(jí)和系統(tǒng)級(jí)的動(dòng)態(tài)配置。保密性好,保密性差。一般情況下,的功耗要比大,且集成度越高越明顯。隨著復(fù)雜可編程邏輯器件(CPLD)密度的提高,數(shù)字器件設(shè)計(jì)人員在進(jìn)行大型設(shè)計(jì)時(shí),既靈活又容易,而且產(chǎn)品可以很快進(jìn)入市場(chǎng)。許多設(shè)計(jì)人員已經(jīng)感受到CPLD容易使用、時(shí)序可預(yù)測(cè)和速度高等優(yōu)點(diǎn),然而,在過(guò)去由于受到CPLD密度的限制,他們只好轉(zhuǎn)向FPGA和ASIC?,F(xiàn)在,設(shè)計(jì)人員可以體會(huì)到密度高達(dá)數(shù)十萬(wàn)門的CPLD所帶來(lái)的好處。CPLD結(jié)構(gòu)在一個(gè)邏輯路徑上采用1至16個(gè)乘積項(xiàng),因而大型復(fù)雜設(shè)計(jì)的運(yùn)行速度可以預(yù)測(cè)。因此,原有設(shè)計(jì)的運(yùn)行可以預(yù)測(cè),也很可靠,而且修

17、改設(shè)計(jì)也很容易。CPLD在本質(zhì)上很靈活、時(shí)序簡(jiǎn)單、路由性能極好,用戶可以改變他們的設(shè)計(jì)同時(shí)保持引腳輸出不變。與FPGA相比,CPLD的I/O更多,尺寸更小。如今,通信系統(tǒng)使用很多標(biāo)準(zhǔn),必須根據(jù)客戶的需要配置設(shè)備以支持不同的標(biāo)準(zhǔn)。CPLD可讓設(shè)備做出相應(yīng)的調(diào)整以支持多種協(xié)議,并隨著標(biāo)準(zhǔn)和協(xié)議的演變而改變功能。這為系統(tǒng)設(shè)計(jì)人員帶來(lái)很大的方便,因?yàn)樵跇?biāo)準(zhǔn)尚未完全成熟之前他們就可以著手進(jìn)行硬件設(shè)計(jì),然后再修改代碼以滿足最終標(biāo)準(zhǔn)的要求。CPLD的速度和延遲特性比純軟件方案更好,它的NRE費(fèi)用低於ASIC,更靈活,產(chǎn)品也可以更快入市。CPLD可編程方案的優(yōu)點(diǎn)如下:邏輯和存儲(chǔ)器資源豐富(Cypress De

18、lta39K200的RAM超過(guò)480 Kb)帶冗余路由資源的靈活時(shí)序模型改變引腳輸出很靈活可以裝在系統(tǒng)上后重新編程I/O數(shù)目多具有可保證性能的集成存儲(chǔ)器控制邏輯提供單片CPLD和可編程PHY方案由于有這些優(yōu)點(diǎn),設(shè)計(jì)建模成本低,可在設(shè)計(jì)過(guò)程的任一階段添加設(shè)計(jì)或改變引腳輸出,可以很快上市CPLD的結(jié)構(gòu)CPLD是屬於粗粒結(jié)構(gòu)的可編程邏輯器件。它具有豐富的邏輯資源(即邏輯門與寄存器的比例高)和高度靈活的路由資源。CPLD的路由是連接在一起的,而FPGA的路由是分割開(kāi)的。FPGA可能更靈活,但包括很多跳線,因此速度較CPLD慢。CPLD以群陣列(array of clusters)的形式排列,由水平和垂

19、直路由通道連接起來(lái)。這些路由通道把信號(hào)送到器件的引腳上或者傳進(jìn)來(lái),并且把CPLD內(nèi)部的邏輯群連接起來(lái)。CPLD之所以稱作粗粒,是因?yàn)?與路由數(shù)量相比,邏輯群要大得到。CPLD的邏輯群比FPGA的基本單元大得多,因此FPGA是細(xì)粒的。CPLD的功能塊CPLD最基本的單元是宏單元。一個(gè)宏單元包含一個(gè)寄存器(使用多達(dá)16個(gè)乘積項(xiàng)作為其輸入)及其它有用特性。因?yàn)槊總€(gè)宏單元用了16個(gè)乘積項(xiàng),因此設(shè)計(jì)人員可部署大量的組合邏輯而不用增加額外的路徑。這就是為何CPLD被認(rèn)為是"邏輯豐富"型的。宏單元以邏輯模塊的形式排列(LB),每個(gè)邏輯模塊由16個(gè)宏單元組成。宏單元執(zhí)行一個(gè)AND操作,然后

20、一個(gè)OR操作以實(shí)現(xiàn)組合邏輯。每個(gè)邏輯群有8個(gè)邏輯模塊,所有邏輯群都連接到同一個(gè)可編程互聯(lián)矩陣。每個(gè)群還包含兩個(gè)單端口邏輯群存儲(chǔ)器模塊和一個(gè)多端口通道存儲(chǔ)器模塊。前者每模塊有8,192b存儲(chǔ)器,后者包含4,096b專用通信存儲(chǔ)器且可配置為單端口、多端口或帶專用控制邏輯的FIFO。CPLD有什麼好處? I/O數(shù)量多CPLD的好處之一是在給定的器件密度上可提供更多的I/O數(shù),有時(shí)甚至高達(dá)70%。時(shí)序模型簡(jiǎn)單CPLD優(yōu)于其它可編程結(jié)構(gòu)之處在于它具有簡(jiǎn)單且可預(yù)測(cè)的時(shí)序模型。這種簡(jiǎn)單的時(shí)序模型主要應(yīng)歸功于CPLD的粗粒度特性。CPLD可在給定的時(shí)間內(nèi)提供較寬的相等狀態(tài),而與路由無(wú)關(guān)。這一能力是設(shè)計(jì)成功的關(guān)

21、鍵,不但可加速初始設(shè)計(jì)工作,而且可加快設(shè)計(jì)調(diào)試過(guò)程。粗粒CPLD結(jié)構(gòu)的優(yōu)點(diǎn)CPLD是粗粒結(jié)構(gòu),這意味著進(jìn)出器件的路徑經(jīng)過(guò)較少的開(kāi)關(guān),相應(yīng)地延遲也小。因此,與等效的FPGA相比,CPLD可工作在更高的頻率,具有更好的性能。CPLD的另一個(gè)好處是其軟件編譯快,因?yàn)槠湟子诼酚傻慕Y(jié)構(gòu)使得布放設(shè)計(jì)任務(wù)更加容易執(zhí)行。細(xì)粒FPGA結(jié)構(gòu)的優(yōu)點(diǎn)FPGA是細(xì)粒結(jié)構(gòu),這意味著每個(gè)單元間存在細(xì)粒延遲。如果將少量的邏輯緊密排列在一起,FPGA的速度相當(dāng)快。然而,隨著設(shè)計(jì)密度的增加,信號(hào)不得不通過(guò)許多開(kāi)關(guān),路由延遲也快速增加,從而削弱了整體性能。CPLD的粗粒結(jié)構(gòu)卻能很好地適應(yīng)這一設(shè)計(jì)布局的改變。靈活的輸出引腳CPLD的

22、粗粒結(jié)構(gòu)和時(shí)序特性可預(yù)測(cè),因此設(shè)計(jì)人員在設(shè)計(jì)流程的后期仍可以改變輸出引腳,而時(shí)序仍保持不變。新的CPLD封裝CPLD有多種密度和封裝類型,包括單芯片自引導(dǎo)方案。自引導(dǎo)方案在單個(gè)封裝內(nèi)集成了FLASH存儲(chǔ)器和CPLD,無(wú)須外部引導(dǎo)單元,從而可降低設(shè)計(jì)復(fù)雜性并節(jié)省板空間。在給定的封裝尺寸內(nèi),有更高的器件密度共享引腳輸出。這就為設(shè)計(jì)人員提供了"放大"設(shè)計(jì)的便利,而無(wú)須更改板上的引腳輸出。arm是一種嵌入式芯片,比單片機(jī)功能強(qiáng),可以針對(duì)需要增加外設(shè)。類似于通用cpu,但是不包括桌面計(jì)算機(jī)。DSP主要用來(lái)計(jì)算,計(jì)算功能很強(qiáng)悍,一般嵌入式芯片用來(lái)控制,而DSP用來(lái)計(jì)算,譬如一般手機(jī)有一

23、個(gè)arm芯片,主要用來(lái)跑界面,應(yīng)用程序,DSP可能有兩個(gè),adsp,mdsp,或一個(gè),主要是加密解密,調(diào)制解調(diào)等。ARM其實(shí)就是一個(gè)知識(shí)產(chǎn)權(quán),ARM公司本身不生產(chǎn)芯片,但是向其它公司提供授權(quán)。alterA有嵌入ARM內(nèi)核的SOPC芯片,搜搜應(yīng)該能搜的到的。如果自己設(shè)計(jì)一個(gè)ARM芯片,顯然是不大可能的,即使設(shè)計(jì)出來(lái)嵌入式芯片,也不能叫ARM。當(dāng)然用FPGA設(shè)計(jì)簡(jiǎn)單的處理器芯片應(yīng)該還是有可能的,好象外國(guó)大學(xué)都有這樣的課程設(shè)計(jì),也有很多書籍介紹設(shè)計(jì)簡(jiǎn)單的處理器芯片的。感覺(jué)處理器芯片主要就是把指令譯碼,分派給不同的功能部件來(lái)執(zhí)行工作, 如果再加上流水線,預(yù)測(cè)執(zhí)行以及存儲(chǔ)器、外設(shè)等等功能,應(yīng)該工作量很大

24、的。其實(shí)象工作量特別大的運(yùn)算,一般還是用FPGA/ASIC來(lái)實(shí)現(xiàn)的,譬如在手機(jī)基帶芯片中,碼片級(jí)的運(yùn)算,一般是用FPGA/ASIC,而比特級(jí)的運(yùn)算,應(yīng)該用DSP實(shí)現(xiàn)的多。DSP FPGA ARMFPGA 2010-10-12 12:32:18 閱讀50 評(píng)論0   字號(hào):大中小 訂閱 FPGA 區(qū)別于ASIC設(shè)計(jì) 屬于硬件設(shè)計(jì)的范疇 ASIC是硬件全定制 FPGA是硬件半定制 具體來(lái)說(shuō) ASIC整個(gè)電路都由設(shè)計(jì)師設(shè)計(jì)的 用多少資源設(shè)計(jì)多少資源 一般多用于產(chǎn)品設(shè)計(jì) FPGA資源事先由廠商給定 例如Altera Xilinx等都提供不同系列的FPG

25、A芯片 設(shè)計(jì)師可以在給定資源下做硬件設(shè)計(jì)開(kāi)發(fā) DSP 主要用于處理信號(hào) 事先算法 特點(diǎn)是多級(jí)流水 可以加快數(shù)據(jù)處理的速度 開(kāi)發(fā)環(huán)境主要是C語(yǔ)言 可以說(shuō)DSP應(yīng)用的范圍更專 DSP的設(shè)計(jì) 可以理解為軟件設(shè)計(jì) 設(shè)計(jì)師不需要太了解DSP的結(jié)構(gòu) 補(bǔ)充幾個(gè)小概念 DSP愿意就是指數(shù)字信號(hào)處理 只不過(guò)DSP芯片由于主要功能是實(shí)現(xiàn)數(shù)字信號(hào)處理 實(shí)現(xiàn)各種算法 所以簡(jiǎn)稱為DSP(數(shù)字信號(hào)處理器) FPGA一樣可以做DSP(數(shù)字信號(hào)處理),就意味著可以用FPGA做硬件設(shè)計(jì)來(lái)實(shí)現(xiàn)DSP芯片的功能,當(dāng)然,相比較專業(yè)的DSP芯片 成本太高 現(xiàn)在除了F

26、PGA和DSP之外還有一個(gè)近幾年熱門的產(chǎn)品 ARM ARM主要應(yīng)用與手持設(shè)備和嵌入式產(chǎn)品 幾乎籠罩了90%的市場(chǎng)份額 可以說(shuō)ARM開(kāi)發(fā)也偏向于軟件開(kāi)發(fā) 設(shè)計(jì)者主要是將wince系統(tǒng)或者 linux系統(tǒng)移植到ARM開(kāi)發(fā)平臺(tái)上,然后做各種軟件應(yīng)用開(kāi)發(fā) 所以 這三個(gè)方向都有其不同的應(yīng)用場(chǎng)合 很難講誰(shuí)更有前途 不過(guò) 作為我個(gè)人而言 更喜歡做硬件設(shè)計(jì) 所以我選擇FPGA作為自己的方向 FPGA 主要是給設(shè)計(jì)者提供了一個(gè)硬件平臺(tái) 開(kāi)發(fā)的核心還是需要獨(dú)立的應(yīng)用設(shè)計(jì)和高效的算法設(shè)計(jì) 所以設(shè)計(jì)者應(yīng)該處理好工具的掌握和具體設(shè) 計(jì)的區(qū)別這世界真是瘋了,貌似有人連FP

27、GA原理是什么都不知道就開(kāi)始來(lái)學(xué)習(xí)FPGA了。 DSP就是一個(gè)指令比較獨(dú)特的處理器。它雖然是通用處理器,但是實(shí)際上不怎么“通用”。技術(shù)很牛的人可以用DSP做一臺(tái)電腦出來(lái)跑windows,而實(shí)際上真正這么干的肯定是蠢材。用DSP做信號(hào)處理,比其他種類的處理器要厲害;用DSP做信號(hào)處理之外的事情,卻并不見(jiàn)長(zhǎng)。而且信號(hào)處理的代碼一般需要對(duì)算法很精通的人才能真正寫好。數(shù)據(jù)結(jié)構(gòu)里面的時(shí)間復(fù)雜度和空間復(fù)雜度在這里是一把很嚴(yán)酷的尺子。 FPGA只不過(guò)披著軟件的外衣,實(shí)際上是硬件。FPGA內(nèi)部有兩層相對(duì)獨(dú)立的電路。使用者“編碼->編譯”后生成一個(gè)映像,這個(gè)映像作用于第一層電路。這層電

28、路實(shí)際上就是一個(gè)0,1的開(kāi)關(guān)矩陣,這個(gè)開(kāi)關(guān)矩陣用來(lái)控制第二層工作電路,將第二層工作電路配置成一個(gè)相應(yīng)的處理器。理論上FPGA可以配置成任何需要的處理器,而實(shí)際上為了盡量少出bug,F(xiàn)PGA開(kāi)發(fā)都使用已經(jīng)開(kāi)發(fā)好的“庫(kù)文件”,也就是把人家能穩(wěn)定工作的電路圖拿過(guò)來(lái)。因此,對(duì)大多數(shù)FPGA開(kāi)發(fā)者來(lái)說(shuō),F(xiàn)PGA內(nèi)部有幾個(gè)核基本上只能從庫(kù)文件里面選除非你有能力自己設(shè)計(jì)核心內(nèi)部的電路和核間總線ram和rom也是用宏來(lái)配置,自己只需要改改外部的專用電路和接線方式等等。甚至外部的專用電路都有庫(kù)文件,搭個(gè)積木就完事了。玩FPGA真正掙錢的人是做積木的人,你原創(chuàng)幾個(gè)積木并且能申請(qǐng)專利,迫使人家給你交專利費(fèi),那你這輩

29、子可以衣食無(wú)憂了。-arm可以跑復(fù)雜的os,dsp一般不能dsp就是n多個(gè)并行乘法器運(yùn)算而已。樓上說(shuō)得好。ARM處理器有包括系統(tǒng)模式,用戶模式等工作模式,并且每種模式下都有相應(yīng)的專有通用寄存器,因此可以快速地實(shí)現(xiàn)不同模式的切換,這對(duì)于操作系統(tǒng)來(lái)說(shuō)是非常有益的,但是DSP,沒(méi)有這方面的考慮。另外,由于ARM內(nèi)核與片內(nèi)外設(shè)通過(guò)VPB相連,因此兩者相對(duì)獨(dú)立,這樣,ARM的片內(nèi)外設(shè)的搭配也更加靈活。不知道說(shuō)得對(duì)不對(duì),畢竟,對(duì)DSP得了解不多。歡迎指正隨便說(shuō)說(shuō)主要是兩個(gè)的作用不一樣。ARM是32位RISC芯片,手機(jī)數(shù)碼產(chǎn)品和工控上用,可以理解成CPU,可以上個(gè)OS也可以直接當(dāng)單片機(jī)用。而DSP是作數(shù)字信

30、號(hào)處理的以TI的東西為例2000做控制,5000處理靜態(tài)圖象,6000處理動(dòng)態(tài)圖象,8000是多DSP聯(lián)合控制用的。ARM是一個(gè)公司的名字,DSP=DIGITAL Signal ProcessingARM公司設(shè)計(jì)了多種CPU核心,是以32位RISC核心為主,以ARM設(shè)計(jì)的CPU核心做的芯片被俗稱為“ARM芯片”,但嚴(yán)格地說(shuō)通常的ARM芯片應(yīng)該是指以ARM設(shè)計(jì)的CPU核心做的單片機(jī),以ARM設(shè)計(jì)的CPU核心制作的SOC芯片一般不被稱為ARM芯片。所以樓主所說(shuō)的ARM芯片就是一種高級(jí)的通用單片機(jī)。DSP=DIGITAL Signal Processing,即數(shù)字信號(hào)處理;與“A

31、RM芯片”這個(gè)俗稱一樣,“DSP芯片”是TI公司生產(chǎn)的一系列帶DSP功能單片機(jī)的俗稱。總結(jié)一下,“DSP芯片”是帶DSP功能的單片機(jī),“ARM芯片”是帶或不帶DSP功能的單片機(jī);如一定要講區(qū)別,若不考慮DSP功能,“DSP芯片”比“ARM芯片”在功能上弱很多,如樓上講的多種模式、跑OS、MMU、多種外設(shè)等許多差別。我收藏的一個(gè)帖子ARM(ADVANCED RISC Machines)是微處理器行業(yè)的一家知名企業(yè),設(shè)計(jì)了大量高性能、廉價(jià)、耗能低的RISC處理器、相關(guān)技術(shù)及軟件。ARM架構(gòu)是面向低預(yù)算市場(chǎng)設(shè)計(jì)的第一款RISC微處理器,基本是32位單片機(jī)的行業(yè)標(biāo)準(zhǔn),它提供一系列內(nèi)核、體系擴(kuò)

32、展、微處理器和系統(tǒng)芯片方案,四個(gè)功能模塊可供生產(chǎn)廠商根據(jù)不同用戶的要求來(lái)配置生產(chǎn)。由于所有產(chǎn)品均采用一個(gè)通用的軟件體系,所以相同的軟件可在所有產(chǎn)品中運(yùn)行。目前ARM在手持設(shè)備市場(chǎng)占有90以上的份額,可以有效地縮短應(yīng)用程序開(kāi)發(fā)與測(cè)試的時(shí)間,也降低了研發(fā)費(fèi)用。這里有一篇介紹ARM結(jié)構(gòu)體系發(fā)展介紹。DSP(DIGITAL singnal processor)是一種獨(dú)特的微處理器,有自己的完整指令系統(tǒng),是以數(shù)字信號(hào)來(lái)處理大量信息的器件。一個(gè)數(shù)字信號(hào)處理器在一塊不大的芯片內(nèi)包括有控制單元、運(yùn)算單元、各種寄存器以及一定數(shù)量的存儲(chǔ)單元等等,在其外圍還可以連接若干存儲(chǔ)器,并可以與一定數(shù)量的外部設(shè)備互

33、相通信,有軟、硬件的全面功能,本身就是一個(gè)微型計(jì)算機(jī)。DSP采用的是哈佛設(shè)計(jì),即數(shù)據(jù)總線和地址總線分開(kāi),使程序和數(shù)據(jù)分別存儲(chǔ)在兩個(gè)分開(kāi)的空間,允許取指令和執(zhí)行指令完全重疊。也就是說(shuō)在執(zhí)行上一條指令的同時(shí)就可取出下一條指令,并進(jìn)行譯碼,這大大的提高了微處理器的速度 。另外還允許在程序空間和數(shù)據(jù)空間之間進(jìn)行傳輸,因?yàn)樵黾恿似骷撵`活性。其工作原理是接收模擬信號(hào),轉(zhuǎn)換為0或1的數(shù)字信號(hào),再對(duì)數(shù)字信號(hào)進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實(shí)時(shí)運(yùn)行速度可達(dá)每秒數(shù)以千萬(wàn)條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過(guò)通用微處理器,是數(shù)字化電子世界中日益重要的電腦

34、芯片。它的強(qiáng)大數(shù)據(jù)處理能力和高運(yùn)行速度,是最值得稱道的兩大特色。由于它運(yùn)算能力很強(qiáng),速度很快,體積很小,而且采用軟件編程具有高度的靈活性,因此為從事各種復(fù)雜的應(yīng)用提供了一條有效途徑。根據(jù)數(shù)字信號(hào)處理的要求,DSP芯片一般具有如下主要特點(diǎn):(1)在一個(gè)指令周期內(nèi)可完成一次乘法和一次加法;(2)程序和數(shù)據(jù)空間分開(kāi),可以同時(shí)訪問(wèn)指令和數(shù)據(jù); (3)片內(nèi)具有快速RAM,通常可通過(guò)獨(dú)立的數(shù)據(jù)總線在兩塊中同時(shí)訪問(wèn); (4)具有低開(kāi)銷或無(wú)開(kāi)銷循環(huán)及跳轉(zhuǎn)的硬件支持; (5)快速的中斷處理和硬件I/O支持; (6)具有在單周期內(nèi)操作的多個(gè)硬件地址產(chǎn)生器; (7)可以并行執(zhí)行多個(gè)操作; (8)支持流水線操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。 當(dāng)然,與通用微處理器相比,DSP芯片的其他通用功能相對(duì)較弱些。區(qū)別是什么?:ARM具有比較強(qiáng)的事務(wù)管理功能,可以用來(lái)跑界面以及

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論