嵌入式處理器的體系架構(gòu)與內(nèi)核,好比蓋房子
隨著半導(dǎo)體行業(yè)的發(fā)展。嵌入式系統(tǒng)已經(jīng)廣泛地應(yīng)用到當(dāng)今各個(gè)領(lǐng)域,與我們的生活息息相關(guān),小到掌上的數(shù)字產(chǎn)品,大到汽車、航天飛機(jī)。 提到嵌入式系統(tǒng)我們很快會聯(lián)想到單片機(jī),不錯(cuò),MCU是最基礎(chǔ)和常用的嵌入式系統(tǒng),但是目前像FPGA、ARM、DSP、MIPS等其他嵌入式系統(tǒng)應(yīng)用越來越廣泛。嵌入式系統(tǒng)與模擬電路或其他功能電路組成的SoC(System on Chip,片上系統(tǒng))或SiP(System in Package,系統(tǒng)級封裝)在手機(jī)、機(jī)頂盒等功能復(fù)雜的產(chǎn)品上的應(yīng)用也越來越多。
總的來說,嵌入式系統(tǒng)發(fā)展呈現(xiàn)如下特點(diǎn):由8位處理向32位過渡,由單核向多核過渡,向網(wǎng)絡(luò)化功能發(fā)展,MCU、FPGA、ARM、DSP等齊頭并進(jìn),嵌入式操作系統(tǒng)呈多元化趨勢,所有的嵌入式處理器都是基于一定的架構(gòu)的,即IP核(Intellectual Property,知識產(chǎn)權(quán)),生產(chǎn)處理器的廠家很多,但擁有IP核的屈指可數(shù)。有自己的IP核,光靠賣IP核即可坐擁城池。 嵌入式系統(tǒng)的架構(gòu)有專有架構(gòu)和標(biāo)準(zhǔn)架構(gòu)之分,在MCU(微控制器)產(chǎn)品上,像瑞薩(Renesas)、飛思卡爾(Freescale)、NEC都擁有自己得專有IP核,而其他嵌入式處理器都是基于標(biāo)準(zhǔn)架構(gòu)。
嵌入式處理器的體系架構(gòu)與內(nèi)核詳解
當(dāng)我們談及嵌入式處理器的體系架構(gòu)時(shí),一般都是想到Intel的X86架構(gòu)和ARM公司的ARM架構(gòu)。X86架構(gòu)和ARM架構(gòu)最大的不同點(diǎn)就是使用的指令集不同,前者使用的CISC指令集,后者使用的是RISC指令集,還有一點(diǎn)就是X86架構(gòu)使用的是馮諾依曼結(jié)構(gòu),ARM架構(gòu)既使用馮諾依曼結(jié)構(gòu),也使用哈佛結(jié)構(gòu)(已經(jīng)成了一種趨勢)。何為架構(gòu)?這兩個(gè)字看起來很簡單,不就是“骨架+結(jié)構(gòu)”,但是個(gè)人覺得并不好理解。百度上把架構(gòu)分為邏輯架構(gòu),物理架構(gòu)和系統(tǒng)架構(gòu)。對于處理器,當(dāng)起發(fā)展到一定程度時(shí),這種物理架構(gòu)不會有很大的變化。以CPU為例,它主要由邏輯部件+寄存器部件+控制部件組成,這種結(jié)構(gòu)在發(fā)展穩(wěn)定之后,就不會有大多的改變。那么人們常說的架構(gòu)版本更新主要體現(xiàn)在哪里呢?指令集。當(dāng)然還有如存儲器管理特性改進(jìn)等因素,以ARM處理器架構(gòu)為例,如圖1為其進(jìn)化史。
可以看到其架構(gòu)一路從V4→V7版本,其中V7版本分三路發(fā)展,A系列,R系列,M系列。再看圖2看其處理器指令的演進(jìn)史:
可以發(fā)現(xiàn),在V4T版本時(shí)增加了Thumb指令集,剛好可以對應(yīng)處理器的Thumb狀態(tài),到了V5E版本,加入了增強(qiáng)型的DSP指令,V6版本可謂是ARM指令演進(jìn)史上的一件大事,有了Thumb-2的問世。其實(shí)之前的16位Thumb指令集就32位ARM指令集的一個(gè)功能子集,到了Thumb-2,以其強(qiáng)大,輕佻和高效,16位指令首次與32位指令并存,再也不需要因?yàn)樘幚砥髂J降淖儞Q而造成指令集變換。從ARM-Cortex-M3將全身的處理能力托付給Thumb-2指令集就可以看出,Thunmb-2指令集的強(qiáng)大。
處理器架構(gòu)與處理器內(nèi)核有什么區(qū)別?“處理器內(nèi)核”中的處理器應(yīng)該是MCU。“處理器架構(gòu)”中的處理器可以是更廣義的 Processing Unit。而當(dāng)我們談及內(nèi)核時(shí)首先應(yīng)該是針對某一系列的MCU。拿STM32系列MCU來說,它們是基于ARM-Cortex-M3為內(nèi)核的。而內(nèi)核主要談其流水線和結(jié)構(gòu)。如ARM7內(nèi)核是0.9MIPS/MHZ的三級流水線和馮諾依曼結(jié)構(gòu),ARM9是1.1MIPS/MHZ的5級流水線哈佛結(jié)構(gòu)。通過圖3可以更直觀的發(fā)現(xiàn)內(nèi)核與MCU的關(guān)系。
ARM內(nèi)核和架構(gòu)都是什么意思,它們到底是什么關(guān)系?
ARM產(chǎn)品越來越豐富,命名也越來越多。很多朋友提問: ARM內(nèi)核和架構(gòu)都是什么意思?內(nèi)核和架構(gòu)的關(guān)系是什么?比如ARMv7架構(gòu),這個(gè)架構(gòu)指的是什么?小編選出了幾個(gè)精彩回答!希望對嵌友們在選擇設(shè)計(jì)電路時(shí)有所幫助。
1.ARM內(nèi)核:從ARM7、ARM9到Cortex-A7、A8、A9、A12、A15再到Cortex-A53、A57等,總之不同版本 ARM 有不同的想法。比如為高速度設(shè)計(jì)的Cortex A8、A9都是ARMv7a 架構(gòu);Cortex M3、M4是ARMv7m架構(gòu);前者是內(nèi)核,后者是指令集的架構(gòu)。
2.ARM的架構(gòu)都是基于RISC指令集而架構(gòu)的,而其內(nèi)核只是實(shí)現(xiàn)這一指令集的硬件架構(gòu)的基礎(chǔ),Thumb-2指令集架構(gòu)(ISA)的子集,包含所有基本的16位 和32位Thumb-2指令、 、哈佛處理器架構(gòu),在加載/存儲數(shù)據(jù)的同時(shí)能夠執(zhí)行指令取指,帶分支預(yù)測的三級流水線等。
3.好比你蓋房子,剛開始因?yàn)樗降土餍猩w平房,這就是一種架構(gòu)(V5T),然后這種平房架構(gòu)你可以設(shè)計(jì)出一款獨(dú)立衛(wèi)生間的款式, 這叫ARM7內(nèi)核。 然后其他人(芯片設(shè)計(jì)公司)想蓋房子的就買你這個(gè)圖紙去蓋,接著過一段時(shí)間,有人覺得光獨(dú)立衛(wèi)生間還不夠啊, 我還想有個(gè)小院子! 好吧,那ARM就滿足你們的要求,出個(gè)帶小院子的款式(ARM9)。
又過了很久, 這種平房的架構(gòu)就隨著大伙的需求一直改啊改啊,后來經(jīng)過ARM研究發(fā)現(xiàn): 現(xiàn)在大伙蓋房子的能力duang duang直升啊(包括工藝、設(shè)計(jì)能力、時(shí)鐘主頻),只蓋這種平房施展不開啊! 好吧,ARM為了不讓這幫設(shè)計(jì)的人閑著,就推出一種二三層樓房的樣式, 這因?yàn)楦椒吭O(shè)計(jì)結(jié)構(gòu)完全不一樣嘛, 那就叫一種新的架構(gòu)(ARMv6),同樣這種樓房樣式ARM也為大家準(zhǔn)備了帶游泳池的和帶車庫的款式(ARM11),好吧繼續(xù)改啊改啊, 改到后來大家已經(jīng)開始有能力蓋十層以上的大樓了。 ARM一如既往地出了新的款式(ARMv7架構(gòu)), 這時(shí)ARM覺得以前名字都太土鱉了, 什么ARM5、 ARM6、 ARM7—又難聽又難記, 我要取個(gè)看起來牛逼的名字, 咱至少也算個(gè)能設(shè)計(jì)摩天大樓的主兒了, 于是后面的內(nèi)核都叫Cortex。
改名只是一部分, 隨著這個(gè)架構(gòu)出來后, ARM發(fā)現(xiàn)以前用咱們圖紙蓋出的樓也就做個(gè)民宅, 民宅圖個(gè)啥? 實(shí)惠嘛(功耗低)。 現(xiàn)在不一樣了,現(xiàn)在咱的圖紙蓋得樓不僅可以做民宅,還可以做軍事基地、 還可以做高檔寫字樓, 以前這些高級功能的樓房可是只有小英(英特爾)才能設(shè)計(jì)出來的啊!為了滿足這些不同的需求, ARM把這個(gè)架構(gòu)設(shè)計(jì)出來的款式分成3個(gè)系列(M系列、R系列、A系列)。M系列是為民宅設(shè)計(jì)的, 因?yàn)槔习傩請D實(shí)惠嘛, 這種設(shè)計(jì)就設(shè)計(jì)個(gè)十層左右(功耗低); R系列是為軍事基地設(shè)計(jì)的, 這種樓設(shè)計(jì)的也不高— 十層左右吧, 但是關(guān)鍵是要對特殊情況要有快速反應(yīng)的能力(中斷快); 最后A系列是給商業(yè)大佬用的, 那當(dāng)然是要高端大氣上檔次, 就是要性能高,各種LED燈燈光秀啊都給我上。