猶記得當(dāng)年讀書的時(shí)候,老師說單片機(jī)、ARM、DSP有互通之處,都是CPU,但聽老師講都聽不懂。
我該如何理解他們,并找出他們的異同呢?我們來看看行內(nèi)人的看法:
ICer,從事ARM CPU的SOC設(shè)計(jì)
按我的理解說幾句吧,希望能說薄一點(diǎn)。
首先,說CPU,中央處理器,本質(zhì)就是一個(gè)集成電路,實(shí)現(xiàn)的功能就是從一個(gè)地方(如rom)讀出一個(gè)指令,從一個(gè)地方(如ram)讀出數(shù)據(jù),然后根據(jù)指令的不同對(duì)數(shù)據(jù)做不同的處理(如相加),然后把結(jié)果存回某個(gè)地方(如ram)。不同架構(gòu)的cpu會(huì)有不同的指令,不同的存取方式,不同的速度,不同的效率,等等的差異。
然后,說單片機(jī)(通常意義所說的微控制器MCU),ARM(通常意義所說的高效能RISC),DSP(通常意義所說的通用數(shù)字信號(hào)處理器),這三個(gè)CPU分別是針對(duì)不同的應(yīng)用而產(chǎn)生的CPU。當(dāng)然這也不是絕對(duì)的,因?yàn)锳RM現(xiàn)在出的CPU囊括了MCU(如M0),RISC(如A8),DSP(如M4)。
微控制器的目的主要是用作控制,他不需要多快的速度,如電飯鍋的控制器,只需要控制發(fā)熱元件的通斷,信號(hào)等的開關(guān)等,但是對(duì)成本要求很嚴(yán)格,所以一般做得比較簡(jiǎn)單,4位,8位的很多。
高效能的RISC,常用于一些數(shù)據(jù)處理比較多的地方,最常見的莫過于現(xiàn)在的消費(fèi)性電子產(chǎn)品了,手機(jī),pad,MP4等等,目前ARM的商業(yè)模式主要是賣內(nèi)核,集成到各家的SOC中間。他其實(shí)就是個(gè)通用的CPU,能干各種各樣的活,和Intel的CPU一樣。但是通用就有效能問題,在某些特殊場(chǎng)合,效能就顯得沒那么高了,如大量運(yùn)算(譬如做FFT)的時(shí)候。這樣就有DSP的用武之地了。
DSP,數(shù)字信號(hào)處理器,只要是做數(shù)字信號(hào)處理的模塊都可以叫做一個(gè)DSP,如視頻解碼的IP核。但你老師所說的應(yīng)該是指通用的數(shù)字信號(hào)處理器,如Ti的TMS320C55x DSP。該CPU的長(zhǎng)處就是在于運(yùn)算,大量循環(huán)的計(jì)算,如連續(xù)1024個(gè)乘加。他的指令針對(duì)這種應(yīng)用有特殊的處理,相比RISC可以更快速高效地完成這類運(yùn)算。
總的來說,學(xué)習(xí)CPU,首先就是要了解其指令集,然后了解去指令執(zhí)行的方式,然后針對(duì)具體的芯片了解其外圍電路,程序都是用C寫的,基本使用就沒啥問題了。
入門教材就不知道了,學(xué)好微機(jī)原理先吧。
qccc
一種設(shè)備能稱之為CPU,是因?yàn)樗軌蛉谌氲接?jì)算機(jī)的馮諾依曼體系中。馮諾依曼的計(jì)算機(jī)模型規(guī)定了計(jì)算機(jī)“運(yùn)算器、存儲(chǔ)器、控制器、外存儲(chǔ)器、輸入和輸出設(shè)備”,而CPU的重要地位在于解決了運(yùn)算問題,計(jì)算機(jī)的CPU能夠訪問存儲(chǔ)器的數(shù)據(jù)和指令進(jìn)行運(yùn)算,從實(shí)現(xiàn)運(yùn)算這一點(diǎn)的角度上看,無論是單片機(jī)、ARM、DSP都可以稱之為CPU。
單片機(jī)集成完整的馮諾依曼體系所規(guī)定的結(jié)構(gòu),是一個(gè)完整的計(jì)算機(jī)體系。實(shí)現(xiàn)特定的運(yùn)算功能,應(yīng)用領(lǐng)域集中在工業(yè)自動(dòng)化控制等專門化需求的運(yùn)算領(lǐng)域。
ARM出品的芯片精髓在“R”,是RISC精簡(jiǎn)指令集的意思,和傳統(tǒng)大型機(jī)以及PC微處理器采用的指令系統(tǒng)相比,RISC指令集根據(jù)80%的時(shí)候只用到了20%的處理器指令的狀況,使用了經(jīng)過精簡(jiǎn)設(shè)計(jì)的指令系統(tǒng),使得整個(gè)處理器的設(shè)計(jì)可以更加簡(jiǎn)潔,功耗、體積大大縮小,所以ARM在目前的手機(jī)、平板等職能移動(dòng)設(shè)備上得到了廣泛應(yīng)用。隨著ARM處理能力的不斷增強(qiáng),加上其功耗小的特點(diǎn),也不斷在擴(kuò)展其企業(yè)級(jí)服務(wù)器集群應(yīng)用的可能性,為企業(yè)降低能耗成本。
DSP是數(shù)字信號(hào)處理器,相較于普通計(jì)算機(jī)實(shí)現(xiàn)通用計(jì)算的特點(diǎn),DSP只負(fù)責(zé)數(shù)字信號(hào)(視頻、音頻或者其他傳感器獲得數(shù)字信號(hào))處理。在日常生活中,常見的DVD、藍(lán)光播放機(jī)、數(shù)字電視機(jī)頂盒、MP3、MP4等都廣泛使用了DSP,由于設(shè)計(jì)的專門化,所以可以在較低的成本下,使DSP執(zhí)行異常復(fù)雜的編碼、解碼等信號(hào)處理工作,而無需使用價(jià)格昂貴的通用處理器。
所以從廣義上講,單片機(jī)、ARM和DSP都可以算做CPU,但是這種說法并不嚴(yán)格,因?yàn)槿缃馛PU往往指代的是兼容x86架構(gòu)的通用處理器,例如你電腦里的intel和amd出品的cpu。如果把單片機(jī)、ARM和DSP都稱作CPU,會(huì)在理解上產(chǎn)生偏差。
謝文洋,嵌入式愛好者
這些的確都能算CPU,前面大家已經(jīng)說過共同點(diǎn)了,我主要說說區(qū)別吧。主要區(qū)別在于用途不同造成了功能側(cè)重的區(qū)別。
比如單片機(jī)和低端ARM(如M3),更嚴(yán)謹(jǐn)?shù)恼f法應(yīng)該稱作Microcontroller 或 MCU(Micro Control Unit),中文一般叫“微控制器”。而CPU叫做“中央處理器”。一個(gè)Control 和 Process 還是有很大區(qū)別的。 微控制器不需要一般也不具備強(qiáng)大的計(jì)算能力,重點(diǎn)在于實(shí)現(xiàn)各種邏輯和非邏輯控制。
而DSP的(Digital Signal Processor), PROCESS表明它相比于通用單片機(jī)具有更為強(qiáng)大的處理,運(yùn)算能力。可以實(shí)現(xiàn)對(duì)數(shù)字信號(hào)的各種算法的處理。
舉一個(gè)簡(jiǎn)單的例子。一個(gè)MP3可能由一塊普通MCU+一塊專用DSP 芯片組成。 其中普通MCU叫主控芯片,負(fù)責(zé)全局控制。諸如通過處理按鍵來響應(yīng)用戶的操作,控制屏幕輸出相關(guān)播放信息給用戶等等。而DSP只負(fù)責(zé)音頻文件的解碼??梢姡值目刂乒ぷ?,邏輯比較繁瑣,比如顯示中各級(jí)菜單的實(shí)現(xiàn),這是MCU適合的工作。而音頻解碼需要強(qiáng)大的運(yùn)算能力,普通MCU難以勝任,就需要DSP來進(jìn)行。
而ARM和單片機(jī),我個(gè)人認(rèn)為沒有特別嚴(yán)格意義的界限,主要看功能和需求的劃分。ARM本身已經(jīng)給我們劃分的很好了:”ARMv7架構(gòu)定義了三大分工明確的系列:‘A’系列面向尖端的基于虛擬內(nèi)存的操作系統(tǒng)和用戶應(yīng)用;‘R’系列針對(duì)實(shí)時(shí)系統(tǒng);‘M’系列對(duì)微控制器。“ 所以諸如STM32之類的Cortex-M3芯片其實(shí)也可以理解做高端單片機(jī)的范疇。側(cè)重于控制,片內(nèi)集成,低功耗等指標(biāo)。相比傳統(tǒng)51,AVR。 Contrex-M系列的微控制器集成了更多的資源(如更高位的AD,更多的串口,以及I2C,SPI之類的外設(shè)總線)。而且32位相比傳統(tǒng)8位和16位的單片機(jī)也更有優(yōu)勢(shì)。
而消費(fèi)類電子產(chǎn)品中的ARM顯然需要更為強(qiáng)大的運(yùn)算功能。 這一塊我不太熟悉,就不多說了。
額,發(fā)現(xiàn)樓主還問了如何學(xué)習(xí)。其實(shí)很簡(jiǎn)單,就是實(shí)踐。買一塊開發(fā)板實(shí)際動(dòng)手做比什么都強(qiáng),有機(jī)會(huì)參與一些項(xiàng)目更好,自學(xué)現(xiàn)在網(wǎng)絡(luò)資源也非常豐富,不用擔(dān)心??梢詮?位單片機(jī)學(xué)起,作為入門。雖然近些年大家都說51落伍了,但是作為單片機(jī)入門還是很好的,相對(duì)簡(jiǎn)單,網(wǎng)上資源到處都是。你去買任何一個(gè)模塊幾乎都會(huì)給你提供51的例程。。。我現(xiàn)在就經(jīng)常拿51測(cè)試模塊,測(cè)試好了再改一下代碼用到stm32上。
總之,只看書是沒有用的。還是要多動(dòng)手。寫寫代碼,燒燒程序,焊焊簡(jiǎn)單的電路。你會(huì)收獲很多。
anning865
我也來說一下自己的理解。
首先,“嵌入式”這是個(gè)概念,準(zhǔn)確的定義沒有,各個(gè)書上都有各自的定義。但是主要思想是一樣的,就是相比較PC機(jī)這種通用系統(tǒng)來說,嵌入式系統(tǒng)是個(gè)專用系統(tǒng),結(jié)構(gòu)精簡(jiǎn),在硬件和軟件上都只保留需要的部分,而將不需要的部分裁去。所以嵌入式系統(tǒng)一般都具有便攜、低功耗、性能單一等特性。
然后,MCU、DSP、FPGA這些都屬于嵌入式系統(tǒng)的范疇,是為了實(shí)現(xiàn)某一目的而使用的工具。
MCU經(jīng)過這么多年的發(fā)展,早已不單單只有普林斯頓結(jié)構(gòu)的51了,性能也已得到了很大的提升。因?yàn)镸CU必須順序執(zhí)行程序,所以適于做控制,較多地應(yīng)用于工業(yè)。而ARM本是一家專門設(shè)計(jì)MCU的公司,由于技術(shù)先進(jìn)加上策略得當(dāng),這兩年獨(dú)霸單片機(jī)市場(chǎng)。ARM的單片機(jī)有很多種類,從低端M0(小家電)到高端A8、A9(手機(jī)、平板電腦)都很吃香,所以也不是ARM的單片機(jī)一定要上系統(tǒng),關(guān)鍵看應(yīng)用場(chǎng)合。
DSP叫做數(shù)字信號(hào)處理器,它的結(jié)構(gòu)與MCU不同,加快了運(yùn)算速度,突出了運(yùn)算能力。可以把它看成一個(gè)超級(jí)快的MCU。低端的DSP,如C2000系列,主要是用在電機(jī)控制上,不過TI公司好像稱其為DSC(數(shù)字信號(hào)控制器)一個(gè)介于MCU和DSP之間的東西。高端的DSP,如C5000/C6000系列,一般都是做視頻圖像處理和通信設(shè)備這些需要大量運(yùn)算的地方。
FPGA叫做現(xiàn)場(chǎng)可編程邏輯陣列,本身沒有什么功能,就像一張白紙,想要它有什么功能完全靠編程人員設(shè)計(jì)。如果你夠NB,你可以把它變成MCU,也可以變成DSP。由于MCU和DSP的內(nèi)部結(jié)構(gòu)都是設(shè)計(jì)好的,所以只能通過軟件編程來進(jìn)行順序處理,而FPGA則可以并行處理和順序處理,所以比較而言速度最快。
那么為什么MCU、DSP和FPGA會(huì)同時(shí)存在呢?那是因?yàn)镸CU、DSP的內(nèi)部結(jié)構(gòu)都是由IC設(shè)計(jì)人員精心設(shè)計(jì)的,在完成相同功能時(shí)功耗和價(jià)錢都比FPGA要低的多。而且FPGA的開發(fā)本身就比較復(fù)雜,完成相同功能耗費(fèi)的人力財(cái)力也要多。所以三者之間各有各的長(zhǎng)處,各有各的用武之地。但是目前三者之間已經(jīng)有融合的態(tài)勢(shì),ARM的M4系列里多加了一個(gè)精簡(jiǎn)的DSP核,TI的達(dá)芬奇系列本身就是ARM+DSP結(jié)構(gòu),ALTERA和XINLIX新推出的FPGA都包含了ARM的核在里面。所以三者之間的關(guān)系是越來越像三基色的三個(gè)圓了。
一句話以蔽之“你中有我,我中有你”。
評(píng)論
查看更多