|
一. 談?wù)凙RM7與ARM9的區(qū)別:
本文是寫給準(zhǔn)備學(xué)習(xí)ARM技術(shù),而又沒想好要學(xué)ARM7還是ARM9或者對(duì)ARM7與ARM9的區(qū)別不是很了解的初學(xué)者。希望本文對(duì)你們有點(diǎn)用處。
由于職業(yè)的關(guān)系,經(jīng)常會(huì)回答一些ARM初學(xué)者的問題,雖然問題千奇百怪,但以下兩個(gè)問題絕對(duì)很有代表性。
ARM7和ARM9的都有些什么區(qū)別?
我準(zhǔn)備學(xué)ARM,但不知是選ARM7還是ARM9好?
也許這些問題在大蝦們的眼里已不是問題,但對(duì)于初學(xué)者確實(shí)很具必要弄清楚。先說下:ARM7和ARM9的區(qū)別。
1. 時(shí)鐘頻率的提高
雖然ARM7和ARM9內(nèi)核架構(gòu)相同,但ARM7處理器采用3級(jí)流水線的馮·諾伊曼結(jié)構(gòu);,而ARM9采用5級(jí)流水線的哈佛結(jié)構(gòu)。增加的流水線設(shè)計(jì)提高了時(shí)鐘頻率和并行處理能力。5級(jí)流水線能夠?qū)⒚恳粋(gè)指令處理分配到5個(gè)時(shí)鐘周期內(nèi),在每一個(gè)時(shí)鐘周期內(nèi)同時(shí)有5個(gè)指令在執(zhí)行。在常用的芯片生產(chǎn)工藝下,ARM7一般運(yùn)行在100MHz左右,而ARM9則至少在200MHz以上。
2 指令周期的改進(jìn)
指令周期的改進(jìn)對(duì)于處理器性能的提高有很大的幫助。性能提高的幅度依賴于代碼執(zhí)行時(shí)指令的重疊,這實(shí)際上是程序本身的問題。對(duì)于采用最高級(jí)的語言,一般來說,性能的提高在30%左右。
3.MMU(內(nèi)存管理單元)
ARM7一般沒有MMU(內(nèi)存管理單元),(ARM720T有MMU)。
ARM9一般是有MMU的,ARM9940T只有MPU ,不是一個(gè)完整的MMU。
這一條很重要,MMU單元是大型操作系統(tǒng)必需的硬件支持,如LINUX;WINCE等。這就是說,ARM7一般只能運(yùn)行小型的實(shí)時(shí)系統(tǒng)如UCOS-II,eCOS等,而ARM9無此限制,一般的操作系統(tǒng)都可以移植。其實(shí)即使ARM720T能支持LINUX;WINCE等系統(tǒng),也鮮有人用,因?yàn)橐訟RM7的運(yùn)行速度跑這種大型操作系統(tǒng),實(shí)在有點(diǎn)吃力。再者兩者的應(yīng)用領(lǐng)域明顯不同,也無此必要。
4. ARM7比ARM9提供了更好的性能-功耗比。它包含了THUMB指令集快速乘法指令和ICE調(diào)試技術(shù)的內(nèi)核。
5. 在從ARM7到ARM9的平臺(tái)轉(zhuǎn)變過程中,有一件事情是非常值得慶幸的,即ARM9E能夠完全地向后兼容ARM7上的軟件;并且開發(fā)人員面對(duì)的編程模型和架構(gòu)基礎(chǔ)也保持一致。
二. 在來說一下初學(xué)者是選ARM7還是ARM9?
1)明確目的
學(xué)習(xí)為應(yīng)用。你學(xué)ARM準(zhǔn)備用在什么地方,如果是一般性控制系統(tǒng)或僅僅用來替換8獲16位機(jī),ARM7顯然是首選;但如果用在網(wǎng)絡(luò)通信或大型的音視頻處理等,則ARM9較合適。
2)自身基礎(chǔ)
學(xué)習(xí)ARM的一般有三類人:
一是計(jì)算機(jī)專業(yè)的:這類人對(duì)操作系統(tǒng)等軟件知識(shí)了解較多,而對(duì)硬件知識(shí)知之甚少,顯然這類人學(xué)ARM的話還是做軟件好,可以基于LINUX;WINCE等操作系統(tǒng)的ARM9更能符合這類人的要求,當(dāng)然也有很多計(jì)算機(jī)專業(yè)的人從事ARM7系統(tǒng)的應(yīng)用軟件編寫的。但是搞底層的就很少了。
二是電子類專業(yè)的:這類人的硬件基礎(chǔ)了相對(duì)較好,相反操作系統(tǒng),數(shù)據(jù)庫等軟件知識(shí)則差強(qiáng)人意。因此人多電子專業(yè)的人員都熟悉單片機(jī),用單片編寫點(diǎn)小程序還不在話下,但要用ARM做較大型的軟件則有點(diǎn)力不從心,尤其是LINUX;WINCE這種操作系統(tǒng)不是三兩個(gè)月能輕松搞定的。建議這類人員如無特別需要還是從ARM7和小型操作系統(tǒng)學(xué)起。夠用就好,不要盲目追求高端。有一點(diǎn)要注意并不是從事ARM9的就比ARM7工資高,反而ARM7的就業(yè)機(jī)會(huì)比ARM9多,這很好理解,好比金字塔,越往頂肯越小。
三是軟硬件基礎(chǔ)都不太好的:這類人員有確實(shí)需要的,也有趕時(shí)髦的,如無大的學(xué)習(xí)決心還是參加培訓(xùn)的好。當(dāng)然也可曲線救國,搞懂單片機(jī)后,ARM7就不難了。
最后說一點(diǎn)關(guān)于開發(fā)板的,初學(xué)者買個(gè)開發(fā)板確實(shí)很有必要,但也要選擇合適的,初學(xué)者合適的就是,資料齊全,有配套教程和學(xué)習(xí)指導(dǎo),再加上較及時(shí)的技術(shù)支持。目前能做到的很少,開發(fā)板這東西不是說哪家公司有名氣,售后就好,很多大公司一般不理個(gè)人買家的問題的,我感覺多半是運(yùn)氣,運(yùn)氣好了也許能碰到一家售后好的。
下面談?wù)劦诙䝼(gè)話題:ARM,FPGA,DSP的特點(diǎn)和區(qū)別是什么?
1.關(guān)于DSP
DSP(digital singnal processor)是一種獨(dú)特的微處理器,有自己的完整指令系統(tǒng),是以數(shù)字信號(hào)來處理大量信息的器件。一個(gè)數(shù) 字信號(hào)處理器在一塊不大的芯片內(nèi)包括有控制單元、運(yùn)算單元、各種寄存器以及一定數(shù)量的存儲(chǔ)單元等等,在其外圍還可以連接若干存儲(chǔ)器,并可以與一定數(shù)量的外 部設(shè)備互相通信,有軟、硬件的全面功能,本身就是一個(gè)微型計(jì)算機(jī)。
DSP采用的是哈佛設(shè)計(jì),即數(shù)據(jù)總線和地址總線分開,使程序和數(shù)據(jù)分別存儲(chǔ)在兩個(gè)分開的 空間,允許取指令和執(zhí)行指令完全重疊。也就是說在執(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ù)以千萬條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過通用微處理器, 是數(shù)字化電子世界中日益重要的電腦芯片。它的強(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ù)空間分開,可以同時(shí)訪問指令和數(shù)據(jù);
(3)片內(nèi)具有快速RAM,通常可通過獨(dú)立的數(shù)據(jù)總線在兩塊中同時(shí)訪問;
(4)具有低開銷或無開銷循環(huán)及跳轉(zhuǎn)的硬件支持;
(5)快速的中斷處理和硬件I/O支持;
(6)具有在單周期內(nèi)操作的多個(gè)硬件地址產(chǎn)生器;
(7)可以并行執(zhí)行多個(gè)操作;
(8)支持流水線操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。
當(dāng)然,與通用微處理器相比,DSP芯片的其他通用功能相對(duì)較弱些。
2.關(guān)于ARM
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ò)展、微處理器和系統(tǒng)芯片方案,四 個(gè)功能模塊可供生產(chǎn)廠商根據(jù)不同用戶的要求來配置生產(chǎn)。
由于所有產(chǎn)品均采用一個(gè)通用的軟件體系,所以相同的軟件可在所有產(chǎn)品中運(yùn)行。目前ARM在手持設(shè)備 市場(chǎng)占有90以上的份額,可以有效地縮短應(yīng)用程序開發(fā)與測(cè)試的時(shí)間,也降低了研發(fā)費(fèi)用。
3.關(guān)于FPGA
FPGA是英文Field Programmable Gate Array(現(xiàn)場(chǎng)可編程門陣列)的縮寫,它是在PAL、GAL、PLD等可編程器件的基 礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物,是專用集成電路(ASIC)中集成度最高的一種。
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè) 新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB (Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。
用戶可對(duì)FPGA內(nèi)部的邏輯模塊和I/O模塊重新配置,以實(shí)現(xiàn)用戶的邏輯。它還具有靜態(tài)可重復(fù)編程和動(dòng)態(tài)在系統(tǒng)重構(gòu)的特性,使得硬件的功能可以像軟件一樣通過編程來修改。作為專用集成電路(ASIC)領(lǐng)域中的一種 半定制電路,F(xiàn)PGA既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。
可以毫不夸張的講,F(xiàn)PGA能完成任何數(shù)字器件的功能,上至高 性能CPU,下至簡(jiǎn)單的74電路,都可以用FPGA來實(shí)現(xiàn)。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法,或是硬件描述語言自由 的設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。
通過軟件仿真,我們可以事先驗(yàn)證設(shè)計(jì)的正確性。在PCB完成以后,還可以利用FPGA的在線修改能力,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。使用FPGA來開發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積,提高系統(tǒng)的可靠性。
FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的, 因此工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM 中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無須專用的FPGA 編程器,只須用通用的EPROM、PROM編程器即可。
當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可 以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。目前FPGA的品種很 多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
4. DSP、ARM、FPGA這三者他們的區(qū)別是什么呢?
DSP主要是用來計(jì)算的,比如進(jìn)行加密解 密、調(diào)制解調(diào)等,優(yōu)勢(shì)是強(qiáng)大的數(shù)據(jù)處理能力和較高的運(yùn)行速度。ARM具有比較強(qiáng)的事務(wù)管理功能,可以用來跑界面以及應(yīng)用程序等,其優(yōu)勢(shì)主要體現(xiàn)在控制方面,而FPGA可以用VHDL或verilogHDL來編程,靈活性強(qiáng),由于能夠進(jìn)行編程、除錯(cuò)、 再編程和重復(fù)操作,因此可以充分地進(jìn)行設(shè)計(jì)開發(fā)和驗(yàn)證。
當(dāng)電路有少量改動(dòng)時(shí),更能顯示出FPGA的優(yōu)勢(shì),其現(xiàn)場(chǎng)編程能力可以延長(zhǎng)產(chǎn)品在市場(chǎng)上的壽命,而這種能力可以用來進(jìn)行系統(tǒng)升級(jí)或除錯(cuò).
|
|