ARM
ARM處理器是Acorn計(jì)算機(jī)有限公司面向低預(yù)算市場(chǎng)設(shè)計(jì)的第一款RISC微處理器。更早稱(chēng)作Acorn RISC Machine。ARM處理器本身是32位設(shè)計(jì),但也配備16位指令集,一般來(lái)講比等價(jià)32位代碼節(jié)省達(dá)35%,卻能保留32位系統(tǒng)的所有優(yōu)勢(shì)。
ARM歷史發(fā)展:
1978年12月5日,物理學(xué)家赫爾曼·豪澤(Hermann Hauser)和工程師Chris Curry,在英國(guó)劍橋創(chuàng)辦了CPU公司(Cambridge Processing Unit),主要業(yè)務(wù)是為當(dāng)?shù)厥袌?chǎng)供應(yīng)電子設(shè)備。1979年,CPU公司改名為Acorn計(jì)算機(jī)公司。
起初,Acorn公司打算使用摩托羅拉公司的16位芯片,但是發(fā)現(xiàn)這種芯片太慢也太貴。"一臺(tái)售價(jià)500英鎊的機(jī)器,不可能使用價(jià)格100英鎊的CPU!"他們轉(zhuǎn)而向Intel公司索要80286芯片的設(shè)計(jì)資料,但是遭到拒絕,于是被迫自行研發(fā)。
1985年,Roger Wilson和Steve Furber設(shè)計(jì)了他們自己的第一代32位、6M Hz的處理器,Roger Wilson和Steve Furber用它做出了一臺(tái)RISC指令集的計(jì)算機(jī),簡(jiǎn)稱(chēng)ARM(Acorn RISC Machine)。這就是ARM這個(gè)名字的由來(lái)。
RISC的全稱(chēng)是"精簡(jiǎn)指令集計(jì)算機(jī)"(reduced instruction set computer),它支持的指令比較簡(jiǎn)單,所以功耗小、價(jià)格便宜,特別合適移動(dòng)設(shè)備。早期使用ARM芯片的典型設(shè)備,就是蘋(píng)果公司的牛頓PDA。
20世紀(jì)80年代后期,ARM很快開(kāi)發(fā)成Acorn的臺(tái)式機(jī)產(chǎn)品,形成英國(guó)的計(jì)算機(jī)教育基礎(chǔ)。
1990年11月27日,Acorn公司正式改組為ARM計(jì)算機(jī)公司。蘋(píng)果公司出資150萬(wàn)英鎊,芯片廠(chǎng)商VLSI出資25萬(wàn)英鎊,Acorn本身則以150萬(wàn)英鎊的知識(shí)產(chǎn)權(quán)和12名工程師入股。公司的辦公地點(diǎn)非常簡(jiǎn)陋,就是一個(gè)谷倉(cāng)。20世紀(jì)90年代,ARM 32位嵌入式RISC(Reduced lnstruction Set Computer)處理器擴(kuò)展到世界范圍,占據(jù)了低功耗、低成本和高性能的嵌入式系統(tǒng)應(yīng)用領(lǐng)域的領(lǐng)先地位。ARM公司既不生產(chǎn)芯片也不銷(xiāo)售芯片,它只出售芯片技術(shù)授權(quán)。
MCU
MCU本質(zhì)為一片單片機(jī),指將計(jì)算機(jī)的CPU、RAM、ROM、定時(shí)計(jì)數(shù)器和多種I/O接口集成在一片芯片上,形成的芯片級(jí)的計(jì)算機(jī)。
MCU做得好的廠(chǎng)商:瑞薩(Renesas)、恩智浦(NXP)、新唐、微芯(Microchip)、意法半導(dǎo)體(ST)、愛(ài)特梅爾(Atmel)、英飛凌(Infineon)、德州儀器(TI)、東芝(Toshiba)、三星(Samsung)、賽普拉斯(Cypress)、亞德諾半導(dǎo)體(ADI)、高通(Qualcomm)、富士通(Fujitsu)、超威半導(dǎo)體(AMD)、盛群/合泰半導(dǎo)體(Holtek)、中穎電子、炬力、華潤(rùn)微、沛城、義隆、宏晶、松翰、凌陽(yáng)、華邦電子、愛(ài)思科微、十速科技、佑華微、應(yīng)廣、歐比特、貝嶺、東軟載波微、君正、中微、兆易、晟矽微、芯海、聯(lián)華、希格瑪、匯春、建榮科技、華芯微、神州龍芯、紫光微、時(shí)代民芯、國(guó)芯科技、中天微等等。
DSP
DSP(Digital SignalProcessing),數(shù)字信號(hào)處理,簡(jiǎn)稱(chēng)DSP。DSP是用數(shù)值計(jì)算的方式對(duì)信號(hào)進(jìn)行加工的理論和技術(shù)。另外DSP也是Digital Signal Processor的簡(jiǎn)稱(chēng),即數(shù)字信號(hào)處理器,它是集成專(zhuān)用計(jì)算機(jī)的一種芯片,只有一枚硬幣那么大。
FPGA
FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。
FPGA做得好的廠(chǎng)商:Altera((阿爾特拉)被Intel收購(gòu))、Xilinx(賽靈思)、Actel、Lattice(萊迪思)、Atmel、京微雅格、QuickLogic、Microsemi、Cypress、TI、上海復(fù)旦微、廣東高云、同方國(guó)芯、西安智多晶、中國(guó)電子、成都華微、深圳國(guó)微、遨格芯等等。
SOC
SoC的定義多種多樣,由于其內(nèi)涵豐富、應(yīng)用范圍廣,很難給出準(zhǔn)確定義。一般說(shuō)來(lái), SoC稱(chēng)為系統(tǒng)級(jí)芯片,也有稱(chēng)片上系統(tǒng),意指它是一個(gè)產(chǎn)品,是一個(gè)有專(zhuān)用目標(biāo)的集成電路,其中包含完整系統(tǒng)并有嵌入軟件的全部?jī)?nèi)容。同時(shí)它又是一種技術(shù),用以實(shí)現(xiàn)從確定系統(tǒng)功能開(kāi)始,到軟/硬件劃分,并完成設(shè)計(jì)的整個(gè)過(guò)程。
ARM、MCU、DSP、FPGA、SOC的比較
1、采用架構(gòu)
ARM:架構(gòu)采用32位精簡(jiǎn)指令集(RISC)處理器架構(gòu),從ARM9開(kāi)始ARM都采用了哈佛體系結(jié)構(gòu),這是一種將指令與數(shù)據(jù)分開(kāi)存放在各自獨(dú)立的存儲(chǔ)器結(jié)構(gòu),獨(dú)立的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器使處理器的處理能力得到較大的提高。ARM多采用流水線(xiàn)技術(shù),此技術(shù)通過(guò)多個(gè)功率部件并行工作來(lái)縮短程序執(zhí)行時(shí)間,使指令能在多條流水線(xiàn)上流動(dòng),從而提高處理器的效率和吞吐率?,F(xiàn)今ARM7采用了典型的三級(jí)流水線(xiàn),ARM9采用五級(jí)流水線(xiàn)技術(shù),而ARM11使用了7級(jí)流水線(xiàn),ARM Cortex-A9更是使用了可變流水線(xiàn)結(jié)構(gòu)(支持8-11級(jí)流水線(xiàn))。在多核心的支持上ARM Cortex-A9最多可支持4個(gè)核心,這是ARM系列處理器中首次支持多核心技術(shù)。下圖表示了ARM Cortex-A9的內(nèi)部結(jié)構(gòu)。
MCU:大都在結(jié)構(gòu)上是基于馮·諾伊曼結(jié)構(gòu)的,這種結(jié)構(gòu)清楚地定義了嵌入式系統(tǒng)所必需的四個(gè)基本部分:一個(gè)中央處理器核心,程序存儲(chǔ)器(只讀存儲(chǔ)器或者閃存)、數(shù)據(jù)存儲(chǔ)器(隨機(jī)存儲(chǔ)器)、一個(gè)或者更多的定時(shí)/計(jì)數(shù)器,還有用來(lái)與外圍設(shè)備以及擴(kuò)展資源進(jìn)行通信的輸入/輸出端口——所有這些都被集成在單個(gè)集成電路芯片上。指令集上早期的MCU是采用CISC的,后面被RISC取代。在總線(xiàn)位數(shù)上,MCU覆蓋了4位、8位、16位、32位,應(yīng)用十分廣泛。
DSP:又名數(shù)字信號(hào)處理器,它是一種專(zhuān)用于實(shí)時(shí)的數(shù)字信號(hào)處理的微處理器。結(jié)構(gòu)上它采用哈佛結(jié)構(gòu),同樣采用流水線(xiàn)技術(shù)。此外,DSP被用于宿主環(huán)境時(shí)可作為直接內(nèi)存存取設(shè)備運(yùn)作,還支持從模擬數(shù)字轉(zhuǎn)換器(ADC)獲得數(shù)據(jù),最終輸出的是由數(shù)字模擬轉(zhuǎn)換器(DAC)轉(zhuǎn)換為模擬信號(hào)的數(shù)據(jù),支持一定的并行處理。
FPGA: FPGA是英文Field Programmable Gate Array(現(xiàn)場(chǎng)可編程門(mén)陣列)的縮寫(xiě),它是在PAL、GAL、PLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物,是專(zhuān)用集成電路(ASIC)中集成度最高的一種。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(xiàn)(Interconnect)三個(gè)部分。用戶(hù)可對(duì)FPGA內(nèi)部的邏輯模塊和I/O模塊重新配置,以實(shí)現(xiàn)用戶(hù)的邏輯。它還具有靜態(tài)可重復(fù)編程和動(dòng)態(tài)在系統(tǒng)重構(gòu)的特性,使得硬件的功能可以像軟件一樣通過(guò)編程來(lái)修改。FPGA有別于DSP、ARM、MCU的地方主要在于它的并行處理能力,它的強(qiáng)大并行性使復(fù)雜的運(yùn)算得到極大的速度比提升。
SOC: 系統(tǒng)芯片是一個(gè)將計(jì)算機(jī)或其他電子系統(tǒng)集成單一芯片的集成電路。系統(tǒng)芯片可以處理數(shù)字信號(hào)、模擬信號(hào)、混合信號(hào)甚至更高頻率的信號(hào)。系統(tǒng)芯片常常應(yīng)用在嵌入式系統(tǒng)中。系統(tǒng)芯片的集成規(guī)模很大,一般達(dá)到幾百萬(wàn)門(mén)到幾千萬(wàn)門(mén)。SOC相對(duì)比較靈活,它可以將ARM架構(gòu)的處理器與一些專(zhuān)用的外圍芯片集成到一起,組成一個(gè)系統(tǒng)。其實(shí)現(xiàn)有的ARM處理器如Hisi-3507、hisi3516等處理器都是一個(gè)SOC系統(tǒng),尤其是應(yīng)用處理器它集成了許多外圍的器件,為執(zhí)行更復(fù)雜的任務(wù)、更復(fù)雜的應(yīng)用提供了強(qiáng)大的支持。
2、功耗
ARM: 可以說(shuō)ARM之所以在移動(dòng)市場(chǎng)上得到極大的成功,其中最主要的原因便是它的低功耗。眾所周知的是在移動(dòng)市場(chǎng)上的電子產(chǎn)品對(duì)處理器的功耗是十分敏感的,在過(guò)去PC平臺(tái)上處理器的功耗在幾十W到上百W不等,這樣的功耗放在移動(dòng)平臺(tái)上是不可想像的,ARM在主頻1G的情況下功耗才幾百mW,強(qiáng)勁的低功耗使它能適應(yīng)移動(dòng)電子產(chǎn)品。
DSP:在與非網(wǎng)的一組數(shù)據(jù)上顯示,在數(shù)字信號(hào)處理方面的市場(chǎng)占有率DSP與FPGA各得半壁江山。DSP相對(duì)于FPGA的一個(gè)優(yōu)勢(shì)是它的功耗相對(duì)較低,DSP生產(chǎn)廠(chǎng)商通過(guò)提高處理器的主頻、努力降低功耗來(lái)保證它的市場(chǎng)占有率,因?yàn)樵诟咝阅艿臄?shù)字處理市場(chǎng)上FPGA似乎更占有優(yōu)勢(shì)。如果單純從DSP領(lǐng)域上來(lái)看,DSP在功耗上、性能上做得最好的要數(shù)TI公司,TI公司的DSP處理器相對(duì)其它的DSP廠(chǎng)商生產(chǎn)的處理器成本更低、功耗更低,所以TI的DSP芯片更在競(jìng)爭(zhēng)力。
MCU:MCU面世時(shí)間最長(zhǎng),各種廠(chǎng)商都有它們自己的架構(gòu)與指令集,如果從低功耗方面來(lái)看,TI的MSP430型MCU做得相對(duì)較好。
FPGA:FPGA由于它的內(nèi)部結(jié)構(gòu)原因造成它的功耗相對(duì)較高、芯片發(fā)熱量大,這也是它的一個(gè)缺點(diǎn)。但這也是不可避免的,在支持高性能的并發(fā)計(jì)算數(shù)字電路,且內(nèi)部的邏輯門(mén)大都采用標(biāo)準(zhǔn)的寬長(zhǎng)比,最終生成的數(shù)字電路必然會(huì)在功耗上無(wú)法與ASIC等專(zhuān)用處理器比較。
SOC:由于SOC自身的靈活性,它將多個(gè)器件集成到一個(gè)極小的芯片上從而組成一個(gè)系統(tǒng),SOC系統(tǒng)相對(duì)于MCU等處理器組成的系統(tǒng)來(lái)說(shuō),它在功耗上具有優(yōu)勢(shì)。并且,SOC芯片可在版圖層面上結(jié)合工藝、電路設(shè)計(jì)等因素對(duì)系統(tǒng)的功耗進(jìn)行系統(tǒng)的優(yōu)化,這樣比由現(xiàn)今外圍的PCB版搭建出來(lái)的系統(tǒng)功耗更低,占用面積更小。
3、速度
ARM隨著市場(chǎng)應(yīng)用的需求提高,ARM廠(chǎng)商紛紛通過(guò)優(yōu)化來(lái)提高它的主頻,提升它的性能。從開(kāi)始的100Mhz到驚人的2.3Ghz,ARM主頻以驚人的速度向前發(fā)展。
DSP現(xiàn)今最快的主頻能達(dá)到1.2Ghz。當(dāng)然不能單純從主頻判斷它的性能會(huì)比ARM差,DSP具有單時(shí)鐘周期內(nèi)完成一次乘法和一次加法的能力,一般的ARM不具備這樣的能力,DSP在計(jì)算領(lǐng)域優(yōu)勢(shì)尤其明顯,所以TI結(jié)合了ARM和DSP兩者的優(yōu)勢(shì),生產(chǎn)出達(dá)芬奇異構(gòu)芯片,當(dāng)然這是屬于SOC的范疇了。
MCU作為低端的應(yīng)用處理器,它的主頻從數(shù)M到幾十Mhz不等。
FPGA主頻時(shí)鐘最高可達(dá)幾Ghz甚至上10Ghz,當(dāng)然它的成本也不菲。如果將FPGA與ARM、DSP等作為比較,從主頻上進(jìn)行比較是沒(méi)有多大意義的,畢竟并行計(jì)算的能力要遠(yuǎn)遠(yuǎn)超出一般通用的處理器采用的串行計(jì)算幾十倍。如同樣的一個(gè)濾波算法在主頻為100Mhz的FPGA上實(shí)現(xiàn)要比在主頻為1Ghz的ARM上實(shí)現(xiàn)仍要快。
4、應(yīng)用與市場(chǎng)
ARM處理器現(xiàn)在主要是三個(gè)系列分別為A系列、R系列、M系列,其中A系列主攻消費(fèi)電子應(yīng)用,應(yīng)用十分廣泛。
計(jì)算:上網(wǎng)本、智能本、輸入板、電子書(shū)閱讀器、瘦客戶(hù)端
手機(jī):智能手機(jī)、特色手機(jī)
數(shù)字家電:機(jī)頂盒、數(shù)字電視、藍(lán)光播放器、游戲控制臺(tái)
汽車(chē):信息娛樂(lè)、導(dǎo)航
企業(yè):激光打印機(jī)、路由器、無(wú)線(xiàn)基站、VOIP 電話(huà)和設(shè)備
無(wú)線(xiàn)基礎(chǔ)結(jié)構(gòu):Web 2.0、無(wú)線(xiàn)基站、交換機(jī)、服務(wù)器
R系列處理器主要針對(duì)一些對(duì)實(shí)時(shí)性要求較高的應(yīng)用,如航空航天、汽車(chē)電子等場(chǎng)合,它具備高可靠性、高可用性、高容錯(cuò)能力、實(shí)時(shí)響應(yīng)等優(yōu)點(diǎn)。
M系列處理器主要針對(duì)較低端的應(yīng)用,它的最初目標(biāo)是替換現(xiàn)有的市面上的MCU。
ARM Cortex-M0
ARM Cortex-M0+
ARM Cortex-M3
ARM Cortex-M4
“8/16 位”應(yīng)用
“8/16 位”應(yīng)用
“16/32 位”應(yīng)用
“32 位/DSC”應(yīng)用
低成本和簡(jiǎn)單性
低成本,最佳能效
高性能,通用
有效的數(shù)字信號(hào)控制
DSP主要針對(duì)一些計(jì)算能力要求較高的應(yīng)用,如視頻圖像處理、智能機(jī)器人、數(shù)字無(wú)線(xiàn)、寬帶訪(fǎng)問(wèn)、數(shù)字音頻、高分辨率成像和數(shù)字電機(jī)控制等。
MCU應(yīng)用最為廣泛,主要利益于它的成本控制上,使它能在許多對(duì)計(jì)算能力要求不那么高的應(yīng)用立足。相信在未來(lái)幾年里,MCU市場(chǎng)關(guān)鍵增長(zhǎng)驅(qū)動(dòng)力將來(lái)自于綠色能源,智能電子設(shè)備,智能電網(wǎng)以及電子產(chǎn)品的升級(jí)換代比如汽車(chē)電子。
SOC應(yīng)用也十分廣泛,主要是因?yàn)楝F(xiàn)有主流ARM芯片采用的架構(gòu)便是SOC架構(gòu)的一種,SOC是一個(gè)比較廣泛的概念,現(xiàn)階段許多ARM、DSP都開(kāi)始采用SOC的方式來(lái)將多個(gè)器件加到處理器上組成復(fù)雜的系統(tǒng)。
5、開(kāi)發(fā)成本
ARM主要是搭載LINUX、ANDROID、WINCE等操作系統(tǒng),在開(kāi)發(fā)難度上看,相對(duì)MCU、DSP較難入門(mén),它需要開(kāi)發(fā)人員對(duì)操作系統(tǒng)有較深的了解;從成本來(lái)看,ARM的單芯片成本較MCU要高,主要還是應(yīng)用于一些較為復(fù)雜的系統(tǒng)上。
MCU入門(mén)最容易,上手也快,開(kāi)發(fā)難度較小,并且它的成本低,在低端市場(chǎng)應(yīng)用最為廣泛。
DSP入門(mén)較容易,但單芯片成本較高,主要還是應(yīng)用于對(duì)計(jì)算能力要求高的應(yīng)用。當(dāng)然DSP也可以搭載操作系統(tǒng),搭載操作系統(tǒng)后可適用于多任務(wù)的應(yīng)用上。
FPGA的開(kāi)發(fā)難度較大并且開(kāi)發(fā)周期也相對(duì)較長(zhǎng),此外它的單芯片成本很高。
例子:SOBEL算子(水平邊沿)
正常來(lái)說(shuō)要進(jìn)行一次這樣的算子需要9次乘法8次加法,這樣的計(jì)算在FPGA、DSP上顯得十分輕松,但對(duì)于ARM、MCU來(lái)說(shuō),它們的并行能力不強(qiáng),當(dāng)要處理的圖像較大時(shí),如1280P時(shí),它們便會(huì)顯得比較吃力了。
然而,這樣的算子是十分容易對(duì)其進(jìn)行優(yōu)化的。如1與-1這兩個(gè)位置的像素點(diǎn)可以直接進(jìn)行一次加法完成,同理最后一行也是如此,中間一行的2與-2對(duì)應(yīng)的像素點(diǎn)也可進(jìn)行一次加法后再進(jìn)行一次移位操作便完成這樣的一次算子運(yùn)算。計(jì)算從原來(lái)的9次乘法8次加法轉(zhuǎn)換成三次加法與一次移位(移位操作在大多處理器上都可以在單個(gè)周期時(shí)鐘內(nèi)完成)。