《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > EDA與制造 > 業(yè)界動(dòng)態(tài) > 移動(dòng)的王者:深入分析ARM最強(qiáng)處理器Cortex A77

移動(dòng)的王者:深入分析ARM最強(qiáng)處理器Cortex A77

2019-08-08
關(guān)鍵詞: ARM CortexA77

  ARM在今年5月份新推出的Cortex A77架構(gòu),采用TSMC 7nm工藝,3GHz峰值頻率,性能提升20%。之前一篇文章介紹過(guò)X86最強(qiáng)處理器ZEN的架構(gòu),詳見(jiàn)。本文基于同樣原則來(lái)分析ARM架構(gòu)最強(qiáng)處理器A77,深入探討其設(shè)計(jì)方案以及和X86架構(gòu)的異同。

  首先簡(jiǎn)要介紹下ARM指令集架構(gòu)。目前通用處理器基本上分為2個(gè)陣營(yíng),一個(gè)是以INTEL,AMD為首的CISC(Complex Instruction Set Computer)指令集,另一個(gè)是以ARM為首的RISC(Reduced Instruction Set Computer)指令集。兩者之間的主要區(qū)別是指令的功能單一性。RISC ISA通常一條指令完成簡(jiǎn)單獨(dú)立的一種運(yùn)算或控制,指令長(zhǎng)度固定,格式較為統(tǒng)一。而CISC ISA指令的功能要復(fù)雜的多,指令長(zhǎng)度可變,格式復(fù)雜。由于RISC指令編碼和功能上非常有利于硬件實(shí)現(xiàn),處理器發(fā)展到今天,不論X86還是ARM,其硬件執(zhí)行核心已經(jīng)都是RISCV架構(gòu)了,而X86多了一層將CISC指令 翻譯成RISC類微指令的步驟,因此譯碼部分不但增加了額外的流水線級(jí),實(shí)現(xiàn)上也復(fù)雜許多,這也是X86處理器功耗大于同級(jí)別的RISC處理器的一個(gè)重要因素。

微信圖片_20190808122518.jpg

  Cortex A77面向移動(dòng)高性能領(lǐng)域,采用ARMv8.2 64位指令集架構(gòu)。硬件設(shè)計(jì)上和A76一脈相承,都采用了7nm工藝,峰值頻率也沒(méi)有變化。從這點(diǎn)來(lái)看,A77的流水線結(jié)構(gòu)應(yīng)該和A76是一致的,20%的提升主要在微架構(gòu)的細(xì)節(jié)方面,用來(lái)提高IPC和并行執(zhí)行的能力。隨著工藝進(jìn)展到7nm,其單芯片的功耗密度在很大程度上制約著主頻的提升。ARM主要面向移動(dòng)市場(chǎng),并沒(méi)有在頻率控制上向INTEL看齊,而更加追求單位功耗下的性能比。因此很多設(shè)計(jì)上并不以頻率為首要目標(biāo),可以看到其L1 cache size達(dá)64KB,甚至超過(guò)了ZEN2的32K。其他的如DynamIQ,big.LITTLE等基本都是ARM的標(biāo)配。

微信圖片_20190808122516.jpg

  A77的流水線結(jié)構(gòu)沒(méi)有太大變化,還是標(biāo)準(zhǔn)的physical register Out-of-Order machine。其中有幾個(gè)值得注意的點(diǎn)。第一個(gè)是1.5K entry的Mop Cache。這個(gè)在X86上存在了很久的結(jié)構(gòu)終于出現(xiàn)在ARM的處理器中。X86是復(fù)雜指令集,引入Mop Cache可以存儲(chǔ)解碼后的微指令,這樣能夠直接bypass fetch和decode的流水線,獲得更大的dispatch寬度。我們看到這個(gè)Mop cache是放在fetch級(jí)的,和Icache的結(jié)果mux后,統(tǒng)一送給decode模塊。如果這個(gè)結(jié)構(gòu)正確的話,這個(gè)Mop cache的主要目的就是功耗控制和減少branch penalty。Decode級(jí)增加到了6條指令,同時(shí)拓寬了issue寬度,增加了1個(gè)AlU和1個(gè)BRU。這樣A76的執(zhí)行單元有4個(gè)ALU,2個(gè)BRU,2條Load-store pipe??梢钥吹紸pple的處理器設(shè)計(jì)對(duì)ARM還是有很大影響的。在大家都在大幅提高并發(fā)能力,推高單核峰值性能的趨勢(shì)下,ARM也沒(méi)辦法獨(dú)善其身,繼續(xù)其極致能耗比的設(shè)計(jì)。另一個(gè)原因可能也和ARM服務(wù)器的再次興起有關(guān),隨著華為、amazon推出自行設(shè)計(jì)的ARM服務(wù)器芯片,冷卻了幾年的ARM服務(wù)器市場(chǎng)似乎又熱鬧了起來(lái)。在這種形式下,ARM也需要一款單核性能能和X86陣營(yíng)較量的處理器,能夠推動(dòng)更多的廠家進(jìn)入,向X86發(fā)起挑戰(zhàn)。A77的配置,可以說(shuō)是兼顧了高端移動(dòng)市場(chǎng)和入門級(jí)服務(wù)器市場(chǎng)的需求。

微信圖片_20190808122514.png

  前端流水線,最重要的改動(dòng)就是增加了Mop cache。假設(shè)其寬度和decode數(shù)目一致,1.5K的entry就可以存儲(chǔ)9千條32位指令,應(yīng)該可以覆蓋大多數(shù)移動(dòng)領(lǐng)域的應(yīng)用場(chǎng)景。在Mop cache warmup后,指令可以不經(jīng)Icache通路,直接從Mop cache發(fā)送到decode級(jí),這樣整個(gè)fetch單元都可以進(jìn)入低功耗狀態(tài)。同時(shí)其中存儲(chǔ)指令譯碼后的信息,包括分支和循環(huán)的預(yù)測(cè)結(jié)果,可以實(shí)現(xiàn)zero cycle的hardware loop,進(jìn)一步提高了循環(huán)的執(zhí)行效率。第三,從Mop取指相當(dāng)于減少了fetch流水線的長(zhǎng)度,這樣出現(xiàn)branch misprediction之后,如果新的target也在Mop中,flush流水線的penalty也會(huì)降低不少。這里還提了一個(gè)Dynamic code的優(yōu)化手段,似乎是學(xué)習(xí)了code sequence的相關(guān)特征來(lái)提高后級(jí)執(zhí)行的能力,具體不知道ARM是怎么做的。

微信圖片_20190808122511.jpg

  Branch prediction是另一個(gè)重點(diǎn)優(yōu)化的手段??梢钥闯龊蚙EN2的方向如出一轍,這也是前端流水線最重要的性能指標(biāo)。A77拓寬了branch prediction的bandwidth到64B,這樣理論上可以同時(shí)預(yù)測(cè)16條32位指令的分支結(jié)果。同時(shí)也和ZEN一樣,大幅增加了BTB的size??梢钥吹?,A77相對(duì)于ZEN少了一個(gè)L0 BTB,只有2級(jí)BTB。由于沒(méi)有具體的數(shù)據(jù),很難說(shuō)哪個(gè)方案更好,應(yīng)該是根據(jù)各自面對(duì)的應(yīng)用場(chǎng)景測(cè)試后選擇的方案。共同的趨勢(shì)都是更大的預(yù)測(cè)器和預(yù)測(cè)寬度。

微信圖片_20190808122509.png

  Decode級(jí)主要是增加了50%的dispatch寬度,6條指令的并發(fā)理論上可以提供更大的并行執(zhí)行能力。隨之ROB的entry數(shù)也增加到160個(gè)。這里提到了加快renaming table在branch misprediction后的update速度。通常renaming table會(huì)在相應(yīng)branch retire時(shí),恢復(fù)到actual renaming的狀態(tài)。這里提到的accelerate,有可能是提供了多個(gè)branch recovery點(diǎn),可以不等retire,直接恢復(fù)到最近的recovery點(diǎn)上。這樣硬件復(fù)雜度和面積都會(huì)增加。由于沒(méi)有更詳細(xì)的信息,也只能做上述合理的推測(cè)。

微信圖片_20190808122505.png

  執(zhí)行單元,主要是數(shù)量的增加,向Apple看齊。注意ARM一直保持了single cycle的ALU,這在單核IPC性能上至關(guān)重要,ZEN2也保持了這一點(diǎn)。A77采用了Unified Issue Queue,這和ZEN分離式的設(shè)計(jì)有所不同。一體化的IQ可以帶來(lái)更好的schedule效果,但會(huì)在很大程度上制約頻率的提升。這里體現(xiàn)了ARM并不以頻率為首要目標(biāo),而更多的考慮綜合的能耗。另外的變化是增加了crypto流水線,提高AES編解碼的能力。對(duì)于這一點(diǎn),作者還是持保留態(tài)度。目前對(duì)于crypto的加速通常采用專用加速器實(shí)現(xiàn),因?yàn)?算法確定,ASIC能獲得非常高的加速比,同時(shí)硬件代價(jià)較小。并且ASIC實(shí)現(xiàn)的crypto加速器可以和處理器完全隔離,做到純硬件的加解密,這樣安全級(jí)別很高。而用處理器實(shí)現(xiàn),首先性能和功耗有數(shù)量級(jí)上的差距,其次是指令實(shí)現(xiàn),軟件參與度較高,安全性上難以保證。

微信圖片_20190808122500.png

  Load-store流水線,同樣采用了統(tǒng)一的Issue Queue??梢钥吹紸77有2個(gè)address的path和2個(gè)st-date的path,可以同時(shí)執(zhí)行2條存儲(chǔ)指令。組合可能是2條load,2條store,1 load+1 store。這里采用了2條store pipe的方案還是比較激進(jìn)的,應(yīng)該為了更高的內(nèi)存搬運(yùn)的性能。對(duì)于通常的應(yīng)用,這額外的一條store data估計(jì)是起不到多大作用的。

微信圖片_20190808122458.png

  這里ARM著重介紹了其pre-fetching的機(jī)制。數(shù)據(jù)的prefetch可以很好的隱藏系統(tǒng)內(nèi)存的訪問(wèn)延遲,在高性能處理器上非常重要。通常的prefetch都是根據(jù)數(shù)據(jù)執(zhí)行的特征,支持1維或多維的stride形式預(yù)取。A77提出了一種system-aware的prefetching,號(hào)稱針對(duì)存儲(chǔ)子系統(tǒng)的特征提供更高的prefetch能力。由于信息有限,不知道這個(gè)system aware是怎么實(shí)現(xiàn)的,可能是根據(jù)內(nèi)存延遲的不同,以及L3 cache  各核心的使用率,動(dòng)態(tài)調(diào)節(jié)了prefetch的數(shù)目和策略。

微信圖片_20190808122455.jpg

  從ARM給出的性能指標(biāo)來(lái)看,A77的能效比還是很高的,尤其是功耗,這也是ARM最核心的競(jìng)爭(zhēng)力。

  從A77的技術(shù)指標(biāo)來(lái)看,通用處理器的設(shè)計(jì)呈現(xiàn)出以下趨勢(shì):首先,和在“ZEN2”一文中解釋的那樣,通用處理器的微架構(gòu)已經(jīng)趨于穩(wěn)定,大的方面玩不出新的花樣了,都在細(xì)節(jié)上做進(jìn)一步的提升,比如更寬的發(fā)射通路,更多的執(zhí)行單元,更大的預(yù)測(cè)器等。這給了后來(lái)者一個(gè)很好的追趕機(jī)會(huì)。其次,ARM的移動(dòng)處理器的設(shè)計(jì)正在逐步趨同于INTEL和AMD在桌面處理器的結(jié)構(gòu),除了核心頻率較低以外,其他的指標(biāo)已經(jīng)差距不大了,很多X86上獨(dú)有的技術(shù)正在逐步出現(xiàn)在ARM的設(shè)計(jì)中。隨著工藝逼近其物理極限,ARM和INTEL的差距在快速的縮小,很可能不遠(yuǎn)的將來(lái),ARM處理器會(huì)具有和X86在服務(wù)器市場(chǎng)一戰(zhàn)的資本。第三,工藝尺寸的縮小帶來(lái)功耗密度的大幅增加,成為制約核心頻率的重要因素??梢钥吹紸77并沒(méi)有支持更高的頻率,并且按之前SOC設(shè)計(jì)來(lái)看,最終的芯片估計(jì)只能維持在2.5G左右。由于移動(dòng)端散熱條件更為苛刻,可能通常的應(yīng)用會(huì)采用多核心工作在較低頻率,而對(duì)于游戲等大型應(yīng)用,會(huì)提高單核的頻率,其他核心降頻或進(jìn)入低功耗,保持整個(gè)芯片的功耗在可控范圍內(nèi)。INTEL的睿頻技術(shù)也是差不多的方式。功耗將在很長(zhǎng)一段時(shí)間里成為處理器性能提升的瓶頸,對(duì)設(shè)計(jì)者能否根據(jù)具體的應(yīng)用場(chǎng)景來(lái)提供靈活的執(zhí)行方式提出了更高挑戰(zhàn)。

  因此,領(lǐng)先者制約重重,后來(lái)者可以?shī)^起直追。現(xiàn)在可能是國(guó)內(nèi)處理器發(fā)展的大好時(shí)機(jī)。比如前幾天平頭哥宣布的玄鐵910,綜合性能已經(jīng)可以和ARM A72持平,這是國(guó)產(chǎn)處理器和世界一流水平差距最小的一次。可能用不了多久,我們就能在移動(dòng)市場(chǎng)追上ARM的腳步。不過(guò)ARM的優(yōu)勢(shì)更多的在于生態(tài),新興的RISCV能否打破這個(gè)限制,以開源為核心建立起自己的生態(tài)體系,就成為國(guó)產(chǎn)處理器商業(yè)化道路上的關(guān)鍵因素。期待這一天早日到來(lái)。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。