ARM的A/R/M設(shè)計(jì)目標(biāo):適合的處理器來執(zhí)行對應(yīng)的任務(wù)
摘要:ARM認(rèn)為應(yīng)該使用適合的處理器來執(zhí)行對應(yīng)的任務(wù)。本文介紹了每個(gè)不同的處理器如何體現(xiàn)這一設(shè)計(jì)理念。
本文引用地址:http://www.ex-cimer.com/article/201607/294692.htmARM處理器現(xiàn)在分成了三個(gè)系列(如圖1),從家族來講是A系列、R系列和M系列。A系列主要是面向應(yīng)用的處理器,R面向?qū)崟r(shí)性處理器,M主要是面向微控制器。在ARM的架構(gòu)里,每個(gè)系列都有獨(dú)特的特征。針對這些獨(dú)特的特征,每個(gè)系列里都推出了獨(dú)特的處理器。
ARM現(xiàn)有的這些架構(gòu)現(xiàn)在都有ARMv8架構(gòu)了(圖1)。針對ARMv8-A,公司在2013年已經(jīng)推出了Cortex-A57和Cortex-A53。公司也在不斷地?cái)U(kuò)展ARMv8-A指令架構(gòu),推出了ARMv8.1和ARMv8.2。ARMv8.1我們有Far Atomics,NEON指令,以及對于虛擬化的增強(qiáng)。而ARMv8.2支持半精度浮點(diǎn)(Half Precision Floating point)以及針對一些服務(wù)器的RAS 特征。
ARM在兩年前(2014年)發(fā)布了ARMv8-R架構(gòu),增加了實(shí)時(shí)的虛擬化,還有增強(qiáng)的AArch32 ISA,以及可選的虛擬內(nèi)存系統(tǒng)。同時(shí),ARM也推出了ARMv8-M指令集,并有相應(yīng)的處理器。
每個(gè)系列都有獨(dú)特的功能以及特性(圖2)。Cortex-A支持Linux/Rich OS, 32位/64位的ARM指令集,在軟件上支持軟件中斷管理。在存儲方面,支持多級緩存。在安全性方面,提供ASIL B級的支持。
對Cortex-R目前有支持MMU的,所以它也可以支持Rich OS。同樣我們也可以選擇支持MPU的操作系統(tǒng),在Cortex-R上我們只有32位ARM指令集和Thumb指令集,這主要是專門針對嵌入式市場做的優(yōu)化。在終端,ARM有專門的軟件管理,還有一個(gè)Cache和TCM以及安全性方面支持ASIL D。
Cortex-M系列主要針對超低功耗以及最小面積進(jìn)行設(shè)計(jì)的,所以目前我們是支持實(shí)時(shí)性的操作系統(tǒng)RTOS,目前支持32位Thumb的指令集。在終端這方面支持硬件中斷管理,終端處理的速度可以是非??斓?。在Cache和TCM這方面一般是用Cortex-M7來進(jìn)行支持,在安全性方面,我們支持到 ASIL-D。
不同的處理器可處理不同的應(yīng)用(圖3)。例如,在可穿戴方面,主要用Cortex-A和Cortex-M。存儲方面是Cortex-R和Cortex-M。在ADAS方面有Cortex-A和Cortex-R,由于ADAS對安全性要求特別高,所以針對Cortex-R,ARM做了特別的優(yōu)化,提供了一些function package(功能包)。在ADAS這邊,還有一些高性能的,可以用Cortex-A進(jìn)行處理。在移動(dòng)消費(fèi)市場,Cortex-A、Cortex-R和Cortex-M都有應(yīng)用,A來做應(yīng)用處理器,R主要是做基帶,Cortex-M可能會用于sensor hub(傳感器中樞)的芯片領(lǐng)域。
接下來將分別介紹這幾大系列的處理器及一些熱門話題。
Cortex-A關(guān)注應(yīng)用
Cortex-A架構(gòu)里有非常豐富的指令集架構(gòu),包含整數(shù)的指令集架構(gòu)以及浮點(diǎn)運(yùn)算的指令集架構(gòu)。可以支持到SIMD多數(shù)據(jù)的運(yùn)算,在NEON單元里面提供支持。
Cortex-A里有AArch32的指令集,主要是向后兼容ARMv7-A架構(gòu)。
在ARMv8-A里面,AArch64是2011年推出的,由ARM64位架構(gòu)來實(shí)現(xiàn)的,當(dāng)時(shí)是有Cortex-A57以及Cortex-A53。這樣的指令集使訪問地址大大增加了,超過了4GB的內(nèi)存訪問空間,也有更多的存儲器可以讓我們的編輯器進(jìn)行使用。我們針對指令集也是專門進(jìn)行了優(yōu)化,主要是面向功耗效率這方面。
在微架構(gòu)上,我們可以有多種實(shí)現(xiàn)??梢詫?shí)現(xiàn)超高能效比的處理器,適用于可穿戴市場,也可以實(shí)現(xiàn)非常高性能的處理器,實(shí)現(xiàn)亂序,達(dá)到幾GHz。這樣的處理器可以應(yīng)用在很高性能的市場,比如服務(wù)器市場。所有這些處理器都可以支持內(nèi)存一致性的系統(tǒng),這樣我們可以從multi-Cluster的設(shè)計(jì)里面通過內(nèi)存一致性讓系統(tǒng)來進(jìn)行支持。
以Cortex-A35為例(圖4),Cortex-A35是Cortex-A系列里面向超低功耗、可穿戴市場,以及中低端手機(jī)移動(dòng)市場的處理器。它的設(shè)計(jì)相對比較簡單,指令集都做得相對面向能效優(yōu)化方向,它主要是按需完成主要的流水線。在這樣一個(gè)處理器里,也是做成多核處理器的。Cortex-A35在總線方面可以支持AMBA4 ACE總線,也可以支持最新的AMBA5 CHI總線。這樣就可以在一個(gè)Cluster里面最多實(shí)現(xiàn)4個(gè)核,也可以實(shí)現(xiàn)多個(gè)Cluster。
ARM最近也發(fā)布了Cortex-A73處理器。它和以前的指令集完全兼容,也和Cortex-A53和Cortex-A35做了很好的配合。Cortex-A73在架構(gòu)上是做了很大的提升,它可以進(jìn)行亂序執(zhí)行的,也是完全可以跟Cortex-A35完全兼容。
在總線上,Cortex-A73也是支持128-bit的AMBA4 AXI4的總線,在Cache配置方面,可以支持不同的配置。
Cortex-A73的熱門話題
*Cortex-A73相比Cortex-A72,性能方面有很大提升。那么Cortex-A72設(shè)計(jì)成二路是基于什么樣的考慮?
其實(shí)從Cortex-A72學(xué)習(xí)它的架構(gòu),去做了優(yōu)化,從三路到兩路,實(shí)現(xiàn)了上文提到的內(nèi)存系統(tǒng)上的優(yōu)化,在跳轉(zhuǎn)預(yù)測上的優(yōu)化,各種這方面的優(yōu)化使得我們能夠把Cortex-A72從三路瘦身到兩路,同時(shí)提升它的功效性能。
設(shè)計(jì)成三路主要是為了性能,因?yàn)槿菲鋵?shí)是很強(qiáng)大的,當(dāng)時(shí)Cortex-A72也是性能最好的。ARM當(dāng)初設(shè)計(jì)Cortex-A72的時(shí)候,就是為了大幅度提升它的性能,我們也可以看到相較以前有很大的性能提升。但是設(shè)計(jì)Cortex-A73的時(shí)候,提升性能不是主要目的,不過我們還是看到它相較Cortex-A72在性能上還是有提升的,但是更主要的是集中提升它的功耗的效率,所以我們能夠?qū)λM(jìn)行瘦身。
* Cortex-A73是10nm,Cortex-A72是16nm,性能提升了30%,功耗降低了30%。這個(gè)30%的提升中是不是10%~15%是因?yàn)榧軜?gòu)的提升,還有20%左右是來自于工藝的提升?
其實(shí),在同樣16nm工藝情況下的比較,在功耗效率方面,Cortex-A73相較Cortex-A72能夠提升20%。10nm工藝的Cortex-A73相較16nm工藝的Cortex-A72有30%的提升,所以其中工藝的提升是10%,架構(gòu)是20%。
在性能方面,從微架構(gòu)上講,我們提升了10%,但是我們?yōu)槭裁凑f提升了30%?因?yàn)樵诳沙掷m(xù)的峰值性能上,在有限的功耗和散熱的約束條件下,我們可以提升得更多,因?yàn)樗哪芎男蕰?,所以額外提高了20%。
* 從16nm到10nm,更多的是面積上的節(jié)省,以及性能上的提升?
但是每家在設(shè)計(jì)的頻率上也是不太一樣的。舉個(gè)例子,像海思Kirin做到2.3~2.5MHz,其他家在做Cortex-A73的時(shí)候也會有不同的設(shè)計(jì),所以說整個(gè)性能的提升和客戶做的性能、頻率可能都不太一樣。
本文來源于中國科技期刊《電子產(chǎn)品世界》2016年第7期第30頁,歡迎您寫論文時(shí)引用,并注明出處。
評論