起因是一次內(nèi)部會(huì)議,大家在聊天的過(guò)程中發(fā)現(xiàn)雖然都是基于ARM平臺(tái)在做開發(fā)沼撕,但彼此之間不見得能很清楚的get到對(duì)方到底在說(shuō)些什么宋雏。所以我覺(jué)得可以寫一個(gè)聊天指南,大概的目的就是如何在十分鐘讓一個(gè)ARM開發(fā)工程師覺(jué)得你可以一聊务豺。有幾點(diǎn)說(shuō)明:
- 這不是一個(gè)技術(shù)手冊(cè)磨总,并不會(huì)討論太多的技術(shù)細(xì)節(jié);
- 不面向大神笼沥;
- 如果我比較勤奮蚪燕,那么這個(gè)系列或許還會(huì)涉及ARM一些基本概念,一點(diǎn)memory相關(guān)奔浅,或許還有一點(diǎn)Cache馆纳,一點(diǎn)Trustzone,一點(diǎn)Virtualization汹桦,以上統(tǒng)統(tǒng)都是以隨便聊聊為前提鲁驶,畢竟每個(gè)展開就是幾千頁(yè)的ARM手冊(cè)了。
- 水平能力有限营勤,錯(cuò)漏難免灵嫌,歡迎指正。
那么開始吧葛作。
隨便聊聊ARM是什么
做過(guò)ARM開發(fā)的人都知道ARM是款處理器寿羞,跟大部分PC都是 intel inside 類似,絕大部分移動(dòng)設(shè)備也都是 ARM inside赂蠢。學(xué)過(guò)微機(jī)原理的還會(huì)知道 ARM CPU 和 intel CPU 其中一個(gè)重要的區(qū)別就在于精簡(jiǎn)指令集(RISC)和復(fù)雜指令集(CISC)的區(qū)別绪穆,并由此帶來(lái)了指令集解碼器和制造工藝的差異,最直接的表現(xiàn)就是ARM CPU 和 intel CPU 在計(jì)算能力和功耗上的差異虱岂,ARM CPU 無(wú)法匹配 intel CPU 強(qiáng)大的計(jì)算能力玖院,但 intel CPU 也很難在低功耗上和ARM CPU一較高下,最直接的結(jié)果就是intel 占領(lǐng)了大部分桌面平臺(tái)第岖,而ARM則統(tǒng)治了移動(dòng)設(shè)備难菌。當(dāng)然這只是兩者之間最淺層的區(qū)別,畢竟如果只是聊天的話蔑滓,知道這些應(yīng)該就是可以開始了郊酒。另外這并不意味兩者絕對(duì)的分裂遇绞,畢竟 intel 也在默默的耕耘 atom 系列,希望可以搶占部分移動(dòng)設(shè)備市場(chǎng)燎窘。
芯片中總提到的Cortex是什么
買手機(jī)關(guān)注參數(shù)的人應(yīng)該對(duì)高通驍龍系列摹闽,華為麒麟系列什么的都很熟悉,數(shù)據(jù)控可能對(duì)每款芯片搭載什么CPU褐健,GPU付鹿,Modem等等了如指掌。先聊一波CPU的部分,以驍龍810舉個(gè)例子,這是一款八核芯片诡曙,處理器由四核ARM? Cortex-A57架構(gòu) CPU和四核ARM? Cortex-A53架構(gòu) CPU組成。那么說(shuō)到Cortex-A57纽匙,Cortex-A53的時(shí)候,到底在說(shuō)什么呢拍谐≈虻蓿回到臺(tái)式機(jī),大概很少有人分不清奔三奔四轩拨,酷睿i5践瓷,i7是什么,計(jì)算機(jī)專業(yè)古早時(shí)候?qū)W微機(jī)原理都是從intel 的 8086開始學(xué)起亡蓉,然后就是286晕翠,386等等等等漫長(zhǎng)的幾十年到現(xiàn)在。對(duì)于ARM來(lái)說(shuō)也是類似的過(guò)程砍濒,簡(jiǎn)單聊聊ARM的發(fā)展歷史淋肾,比較了解過(guò)去才能更好的掌握現(xiàn)在。
ARM公司的全稱是Advanced RISC Machines爸邢,1990年正式成立樊卓,前身是英國(guó) Acorn 公司,該公司在1985年推出了第一款商用 RISC 處理器:ARM1杠河,此后陸續(xù)推出了 ARM2碌尔,ARM3。90年ARM公司脫胎于Acorn正式成立之后券敌,在91年推出了 ARM6唾戚,之后又不斷推出ARM7,ARM8一直到ARM11待诅。ARM 11 之前統(tǒng)稱為Classic core叹坦,ARM11之后的系列正式更名為Cortex core系列,并逐漸細(xì)分出 Cortex-A卑雁,Cortex-R募书,Cortex-M 三大系列轧钓,面向不同的細(xì)分市場(chǎng)。Cortex-A系列锐膜,application processor,應(yīng)用型處理器弛房,簡(jiǎn)單說(shuō)就是面向操作系統(tǒng)和應(yīng)用程序開發(fā)道盏,主要應(yīng)用于手機(jī),數(shù)字電視等豐富應(yīng)用場(chǎng)景的設(shè)備文捶;Cortex-R系列荷逞,real-time processor,實(shí)時(shí)處理器粹排,最大的特點(diǎn)是實(shí)時(shí)響應(yīng)种远,可以簡(jiǎn)單理解為對(duì)指令的響應(yīng)最為及時(shí),因?yàn)闇?zhǔn)確和可靠顽耳,很多汽車控制平臺(tái)會(huì)采用這個(gè)系列坠敷;Cortex-M,Microcontroller Processors射富,微控制器處理器膝迎,M系列更加的低成本和低功耗,常常被應(yīng)用在工業(yè)控制領(lǐng)域胰耗。每個(gè)系列都有各自的衍生產(chǎn)品限次,如Cortex-A7,Cortex-R5柴灯,Cortex-M4等等等等卖漫。當(dāng)然這三個(gè)系列最本質(zhì)的差別在于硬件架構(gòu),有機(jī)會(huì)詳聊的時(shí)候再說(shuō)吧~ 總之現(xiàn)在聊天的時(shí)候赠群,我們大概知道Cortex就是和酷睿差不多的名詞了羊始。
ARM8 和 ARMv8 是一個(gè)意思嗎
繼續(xù)以驍龍810為例,更詳細(xì)的參數(shù)介紹會(huì)告訴你乎串,這款芯片是基于ARMv8指令集店枣。那么ARMv8又是什么,和剛剛提到的ARM8是一個(gè)東西嗎叹誉。直接了當(dāng)?shù)恼f(shuō)鸯两,ARM8和ARMv8是完全不同的概念,再進(jìn)一步說(shuō)长豁,ARM8是ARM產(chǎn)品其中一個(gè)系列钧唐,而ARMv8指的則是ARM的一代硬件架構(gòu)。ARM8這款產(chǎn)品事實(shí)上是ARMv4架構(gòu)匠襟,而真正使用ARMv8架構(gòu)的首發(fā)ARM產(chǎn)品是ARM Cortex-A53和Cortex-A57钝侠,是不是有點(diǎn)混亂该园,有個(gè)簡(jiǎn)單的對(duì)應(yīng)關(guān)系表:
ARM Architecture | ARM Holdings |
---|---|
ARMv1 | ARM1 |
ARMv2 | ARM2,ARM250帅韧,ARM3 |
ARMv3 | ARM6里初,ARM7 |
ARMv4 | ARM8 |
ARMv4T | ARM7TDMI,ARM9TDMI |
ARMv5TE | ARM7EJ忽舟,ARM9E双妨,ARM10E |
ARMv6 | ARM11 |
ARMv7-A | Cortex-A5,Cortex-A7叮阅,Cortex-A8刁品,Cortex-A9,Cortex-A12浩姥,Cortex-A15挑随,Cortex-A17 |
ARMv8-A | Cortex-A35,Cortex-A53勒叠,Cortex-A57兜挨,Cortex-A72,Cortex-A73 |
還有ARMv6-M眯分,ARMv7-R暑劝,ARMv7-M,ARMv8-R颗搂,ARMv8-M就不再列出來(lái)了担猛。
64位是不是比32位厲害一點(diǎn)
終于講到一個(gè)宏大的命題了,32位與64位丢氢。要講清楚32位處理器和64位處理器的區(qū)別所在傅联,真的是個(gè)很大的話題。從表面看似乎只是四車道變成了八車道疚察,CPU處理的數(shù)據(jù)量由 32bit 提升到了 64bit蒸走,然而隨之而來(lái)的硬件架構(gòu)的調(diào)整可以寫上幾千頁(yè)的文檔。這里我們先簡(jiǎn)單的開個(gè)頭吧貌嫡。
首先我們可以聊聊為什么需要64位處理器比驻。首當(dāng)其沖當(dāng)然是為了解決大內(nèi)存問(wèn)題。我們都知道岛抄,32位處理器能訪問(wèn)的最大虛擬內(nèi)存是2的32次方個(gè)bit别惦,也就是4G。隨著軟件的迅速發(fā)展夫椭,如果某個(gè)應(yīng)用需要超過(guò)4G的虛擬內(nèi)存怎么辦掸掸。在ARMv7的基礎(chǔ)上,ARM提出了一種LPAE(Large Physical Address Extensions)技術(shù),將內(nèi)存尋址擴(kuò)大到了40 bits扰付。而隨著桌面系統(tǒng)64位處理器漸成主流堤撵,移動(dòng)設(shè)備也漸漸對(duì)ARM處理器提出了更高的需求。終于在2011年ARM給出了一份關(guān)于ARMv8的白皮書羽莺,在這份白皮書里ARM解釋了為什么在移動(dòng)設(shè)備端對(duì)64位應(yīng)用的需求還不是那么強(qiáng)烈的時(shí)候实昨,ARM選擇推出一種全新的64位架構(gòu):Because of Trends。 :)
希望在以后的系列中盐固,我們可以繼續(xù)聊一聊32位和64位ARM處理器在架構(gòu)上究竟有哪些不同屠橄。
希望我足夠勤奮~ :P