• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      迎接移動(dòng)SoC新世代

      2021-07-13 03:08:12張平
      微型計(jì)算機(jī) 2021年12期
      關(guān)鍵詞:浮點(diǎn)功耗分支

      張平

      2021年堪稱ARM的技術(shù)變革之年。繼年初發(fā)布了全新的Armv9架構(gòu)后,4月ARM又一并帶來了NeoverseV1和NeoverseN2兩個(gè)基礎(chǔ)架構(gòu)IP。5月底,ARM一口氣發(fā)布了三款全新微架構(gòu)—Cortex-X2、Cortex-A710和Cortex-A510,同時(shí)面世的還有全新的Mali-G710、Mali-G610、Mali-G510、Mali-G310系列移動(dòng)GPU以及相關(guān)的總線架構(gòu)等。這些架構(gòu)是如此重要,以至于它們的設(shè)計(jì)和最終表現(xiàn)決定了Android用戶在未來一年甚至數(shù)年的應(yīng)用體驗(yàn),因此我們有必要詳細(xì)了解這些架構(gòu)的功能和設(shè)計(jì)情況。不過由于內(nèi)容較多,本文只介紹有關(guān)新的CPU微架構(gòu)的情況,在之后本刊將繼續(xù)介紹此次發(fā)布的移動(dòng)GPU架構(gòu)的情況。

      新名稱、新變化:ARM啟用全新的三位數(shù)命名方式

      之前ARM在產(chǎn)品命名一直使用的是2位數(shù),比如Cortex-A76、Cortex-A55。從本代開始,ARM啟用了三位數(shù)命名的方式,其中性能最強(qiáng)的大核心依舊是“Cortex-X”系列,接下來的性能核心采用了“Cortex-7XX”取代之前的“Cortex-7X”,小核心則用“Cortex-5XX”取代了“Cortex-5X”。

      這次命名變化看起來只是在原來的兩位數(shù)命名尾端多加了一個(gè)0,不過實(shí)際上三位數(shù)命名的優(yōu)勢在于可以區(qū)分出更多的分支型號。比如本次發(fā)布的Cortex-A710,未來可能出現(xiàn)改進(jìn)版本的“Cortex-A715”,而全代演進(jìn)產(chǎn)品可以使用“Cortex-A720”這樣的命名,這樣方便ARM進(jìn)行版本區(qū)分和市場宣傳。

      本次發(fā)布的三款CPU微架構(gòu)中,Cortex-X2是用于取代Cortex-X1的全新架構(gòu),ARM希望它能夠使用在諸如筆記本電腦甚至臺式機(jī)這樣的設(shè)備中,屬于性能優(yōu)先的架構(gòu)。Cortex-A710則是性能和功耗的平衡選擇,用于取代目前的Cortex-A78。Cortex-A510則是用于取代2017年發(fā)布的經(jīng)典小核心架構(gòu)Cortex-A55,實(shí)現(xiàn)最好的性能功耗比。除了上述微架構(gòu)外,ARM本次還發(fā)布了新的DSU-110、CI-700以及NI-700等功能性組件,本文也對其一并進(jìn)行了介紹。

      另外值得一提的是,隨著Armv9.0指令集的發(fā)布,ARM引入包括SVE2SIMD矢量擴(kuò)展、64位架構(gòu)等功能,隨之而來的就是對AArch32執(zhí)行模式的全面棄用。與此同時(shí),谷歌在2019年就宣布自己的應(yīng)用商店GooglePlay只接受64位應(yīng)用程序,并且即將在2021年中期停止向64位兼容設(shè)備提供32位應(yīng)用程序,這意味著整個(gè)行業(yè)都在全面轉(zhuǎn)向64位。與此相應(yīng)的是,ARM目前提供的三款全新微架構(gòu)全面實(shí)現(xiàn)了對AArch64的支持,Cortex-X2和Cortex-A510是“AArch64-only”的產(chǎn)品,這意味著這兩款架構(gòu)不再提供對32位應(yīng)用的支持,也不再支持任何32位代碼。唯一出現(xiàn)例外的是Cortex-A710,ARM明確指出,Cortex-A710依舊兼容AArch32,這樣做的原因是考慮到中國市場依舊存在很多32位應(yīng)用程序。不過這樣就存在一些問題,假如某個(gè)SoC使用了Cortex-X2、Cortex-A710搭配Cortex-A510,那么這些32位應(yīng)用程序?qū)⒁恢边\(yùn)行在Cortex-A710核心上,不會(huì)喚醒能耗比更高的Cortex-A510或者性能更強(qiáng)的Cortex-X2,是否會(huì)帶來實(shí)際使用中功耗或者性能的問題呢?或者會(huì)更快的推動(dòng)整個(gè)市場向64位轉(zhuǎn)型?這些問題值得進(jìn)一步觀察。

      繼續(xù)提高性能上限:Cortex-X2解讀

      先來看定位高性能的Cortex-X2。從設(shè)計(jì)理念上來看,Cortex-X2延續(xù)了Cortex-X1的原始設(shè)計(jì)理念,也就是不再嚴(yán)格關(guān)注功耗,允許更大的核心面積和更高的功耗來實(shí)現(xiàn)更高的性能。相對應(yīng)的,ARM給出的示意圖顯示Cortex-X2相比新的Cortex-A710的絕對性能增加值要遠(yuǎn)高于上代Cortex-X1對比Cortex-A78。這意味著Cortex-X2有望達(dá)到更高的性能,更適合相對更大屏幕的設(shè)備比如筆記本電腦等。

      從架構(gòu)角度來看,Cortex-X2并不是Cortex-X1的簡單改變,它幾乎是一個(gè)全新設(shè)計(jì)的架構(gòu),這主要是由于Cortex-X2采用了全新的Armv9指令集并帶來了大量的諸如安全、計(jì)算方面的新功能。此外,ARM宣稱Cortex-X2僅支持AArch64模式,并且為AArch64進(jìn)行了優(yōu)化,即使是在用戶控制的PL0模式之下也是如此。從微架構(gòu)的角度來看,只支持AArch64意味著在架構(gòu)設(shè)計(jì)上不需要考慮之前的兼容性問題,這能夠在很大程度上節(jié)約部分用于兼容性的資源,同樣的設(shè)計(jì)也出現(xiàn)在Cortex-A510中,這個(gè)內(nèi)核也放棄了對32位老舊架構(gòu)的支持。

      繼續(xù)來看Cortex-X2的架構(gòu)部分。先來看Cortex-X2的前端設(shè)計(jì)。這個(gè)部分,ARM在分支預(yù)測方面進(jìn)行了大幅度的改進(jìn)。ARM的官方資料顯示,他們在三個(gè)方面改進(jìn)了整個(gè)分支預(yù)測部分,一是對分支預(yù)測和拾取部分進(jìn)行了分離,這樣做使得前端部分在分支預(yù)測錯(cuò)誤的情況下能夠更快速地運(yùn)行,并且能夠掩蔽分支氣泡(branchbubbles),此外ARM還為L1加入硬件預(yù)拾取功能以及由私有L2支持的更大尺寸的L1等。二則是改進(jìn)條件轉(zhuǎn)移預(yù)測的準(zhǔn)確性,ARM在這里使用了更大的預(yù)測狀態(tài)存儲和備用的路徑預(yù)測方案。三則是提升大型指令在負(fù)載狀態(tài)下的工作性能,這里ARM使用了更大、更高效率的BTB??偟膩砜矗珹RM在分支預(yù)測方面的改進(jìn),有效減少M(fèi)PKI(每千指令預(yù)測失敗數(shù)量,Missesperkiloinstructions),能夠在更廣泛的指令運(yùn)行中起到更好的效果。

      在執(zhí)行部分,ARM特別提到了加強(qiáng)的亂序執(zhí)行能力(OoO),ARM通過降低流水線級數(shù)、擴(kuò)大OoO窗口尺寸、增強(qiáng)指令融合三個(gè)方面來提升處理器的指令執(zhí)行能力。另外,由于來自Armv9的新SVE指令集的加入,Cortex-X2還帶來了更強(qiáng)的矢量計(jì)算和機(jī)器學(xué)習(xí)計(jì)算能力。這些內(nèi)容我們詳細(xì)解釋如下:

      首先是在指令分派階段,ARM目前已經(jīng)將這個(gè)階段的時(shí)鐘周期從2個(gè)降低至1個(gè),因此Cortex-X2的整個(gè)流水線長度總體上從上代內(nèi)核的11級降低至現(xiàn)在的10級。需要注意的是,在這里需要將流水線周期和預(yù)測失敗懲罰進(jìn)行區(qū)分,后者已經(jīng)在Cortex-A77上實(shí)現(xiàn)了大多數(shù)情況下降低至10個(gè)周期。一般來說,較短的流水線在頻率提升上相對較長的流水線存在一定的困難,并且ARM在Cortex-X2上希望保持較高的頻率提升潛力,因此這里降低流水線級數(shù)的設(shè)計(jì)可能會(huì)導(dǎo)致功耗或者芯片面積的負(fù)面影響。不過ARM提到,如果單純考慮性能優(yōu)勢的話,較短的流水線可能整體表現(xiàn)會(huì)更為出色,值得嘗試。

      其次,Cortex-X2增加了亂序執(zhí)行的指令窗口。Cortex-X2的ROB(指令重排緩沖區(qū),Re-OrderBuffer)的大小從之前的224個(gè)增加值目前的288+個(gè),提升了高達(dá)30%,而實(shí)際數(shù)據(jù)還要高一些。因?yàn)樵趬嚎s和指令捆綁的情況下,實(shí)際存儲數(shù)量都是高于288個(gè)的,因此ARM在這里是用了一個(gè)“+”號來指代實(shí)際的指令存儲能力。

      第三則是指令融合,ARM宣稱Cortex-X2增加了更多的指令融合內(nèi)容,不過這里沒有更多的細(xì)節(jié)描述。

      第四則是有關(guān)全新的SEV2指令集帶來的整個(gè)Cortex-X2后端的大幅度加強(qiáng)。后端的SIMD管道提供了對SEV2指令集的支持,不過寬度依舊是128bit,這個(gè)部分和Cortex-X1的后端設(shè)計(jì)存在一定的相似性。在這里需要解釋的是,目前后端SEV2選擇128bit是考慮到在大小核心搭配和切換時(shí)需要保持同樣的指令寬度,否則可能會(huì)存在無縫遷移的問題。另外,ARM還提到在Cortex-X2上機(jī)器學(xué)習(xí)的性能提升了2倍,還實(shí)現(xiàn)了對bfloat16和int8格式的兼容。

      ARM給出了解碼、重命名、指令交付和執(zhí)行部分的細(xì)節(jié)圖。經(jīng)過前端解碼、重命名和分派后,將有8個(gè)Mops(宏指令,Macro-Operation)會(huì)被分派至執(zhí)行單元部分。這部分由整數(shù)和浮點(diǎn)兩個(gè)部分組成,其中整數(shù)部分包含了6個(gè)執(zhí)行端口,分別是2個(gè)分支(Branch)單元、2個(gè)ALU單元、1個(gè)ALU和MUL復(fù)合單元以及1個(gè)可以執(zhí)行ALU、MAC以及DIV的復(fù)雜單元組成。浮點(diǎn)執(zhí)行部分則包含了4個(gè)執(zhí)行端口,分別是2個(gè)可以執(zhí)行FMUL/FADD/FDVI/ALU/IMAC的復(fù)雜單元以及2個(gè)可以執(zhí)行FMUL/FADD/ALU的計(jì)算單元組成,整體計(jì)算資源還是非常豐富和充裕的。

      最后再來看看后端部分。ARM在后端部分帶來了3個(gè)改變。其一是后端的加載存儲窗口/結(jié)構(gòu)增加了大約33%,這有助于提高整個(gè)架構(gòu)的內(nèi)存級并行性(MLP)。一般來說,ARM在這里使用了幾種結(jié)構(gòu)來增強(qiáng)并行性,但是一般不會(huì)具體說明,只有通過實(shí)際產(chǎn)品的測試來一探究竟。其二則是ARM將L1的d-TLB(數(shù)據(jù)TLB)增加了20%,目前的大小為48個(gè)條目。其三則是提高了數(shù)據(jù)預(yù)取的性能,增加了額外的步幅覆蓋、提高了時(shí)間預(yù)取覆蓋范圍和準(zhǔn)確性、加強(qiáng)了Tablewalk預(yù)取的覆蓋面積等。

      在這里值得注意的是時(shí)間預(yù)期器,這是目前業(yè)內(nèi)首個(gè)商業(yè)化使用的此類預(yù)取器,這種預(yù)取器能夠鎖定任意重復(fù)的內(nèi)存模式,同時(shí)智能識別內(nèi)存訪問中的新的迭代,因此最終可以巧妙地將整個(gè)預(yù)取覆蓋至一定的深度(據(jù)估算是32MB~64MB的窗口)。有關(guān)時(shí)間預(yù)取器的詳細(xì)內(nèi)容,后續(xù)只有接觸到實(shí)際芯片才能有進(jìn)一步的消息了。

      最后,ARM給出了新架構(gòu)的相關(guān)IPC改進(jìn)的內(nèi)容。ARM給出的數(shù)據(jù)顯示,在ISO頻率下,Cortex-X2配備64kBL1、1MBL2以及8MBL3,對比Cortex-X1配置64kBL1、1MBL2以及4MBL3,Cortex-X2的性能提升了16%,ML也就是機(jī)器學(xué)習(xí)性能提升了2倍。這個(gè)數(shù)據(jù)是在SEPCint2006估計(jì)中得到的。值得注意的是,這里Cortex-X2的L3緩存配置高達(dá)8MB,是Cortex-X1的2倍,因此這里16%的性能提升一定程度上來自于翻倍的L3緩存。

      在這里,ARM再次重申Cortex-X2的設(shè)計(jì)是附帶8MBL3緩存的方案,因此最終可以實(shí)現(xiàn)16%IPC的提升。但是在實(shí)際產(chǎn)品中的情況要更為復(fù)雜一些,比如之前的Cortex-X1也要求配備8MBL3緩存,最終實(shí)際產(chǎn)品比如驍龍888和Exynos2100都僅采用了4MB的設(shè)計(jì),畢竟更大的緩存需要占據(jù)大量的晶體管數(shù)量也推高了核心面積,廠商還需要進(jìn)一步謹(jǐn)慎地衡量L3和成本、功耗和效費(fèi)比之間的關(guān)系。最終在Cortex-X2上,L3的容量究竟是多少還有待觀察。

      ARM還給出了有關(guān)Cortex-X2和Cortex-X1的頻率和功耗曲線。從ARM給出的表格可以看出,Cortex-X2的確可以達(dá)到更高的性能,但是在性能需求較低的情況下它的功耗表現(xiàn)會(huì)略高于Cortex-X1,ARM沒有給出具體的坐標(biāo)軸數(shù)據(jù),因此不知道這兩個(gè)曲線的具體交叉點(diǎn)的細(xì)節(jié)情況。

      在本節(jié)的最后,我們再來聊聊有關(guān)功耗和工藝的問題??紤]到具體產(chǎn)品的成本等因素,高通和三星往往會(huì)選擇比較便宜但效能較低的工藝,比如三星的5nmLPE,因此最終實(shí)際產(chǎn)品的效能表現(xiàn)可能達(dá)不到ARM的官方數(shù)據(jù)。在Cortex-X2上,考慮到三星和高通在市場競爭方面壓力并不大,因此有可能繼續(xù)維持現(xiàn)在的路線,比如說采用三星進(jìn)行代工制造,從而耗費(fèi)較低的成本并獲取更多利潤,因此估計(jì)下一代SoC即使使用Cortex-X2,其性能表現(xiàn)也應(yīng)該很難達(dá)到16%IPC提升的要求,因此大家對新一代移動(dòng)SoC的預(yù)期需要更為保守一些。

      平衡功耗和性能的產(chǎn)品:Cortex-A710

      Cortex-A710是ARM推出的綜合平衡了功耗、面積和性能三個(gè)因素的產(chǎn)品,相比幾乎不惜工本、追求更高性能的Cortex-X2,Cortex-A710更適合絕大部分用戶選擇。

      雖然整個(gè)產(chǎn)品名稱變化,但是Cortex-A710實(shí)際上是Cortex-A78的后續(xù)增強(qiáng)版本。它增加了大量Armv9指令集的功能,提供了類似于上一代Cortex-A78的配置選項(xiàng),并且在微架構(gòu)上為性能、功耗和面積做了特殊的優(yōu)化。另外,正如前文所說,在指令集方面,Cortex-A710支持在EL0模式下運(yùn)行AArch32應(yīng)用程序,這是其他兩款新架構(gòu)都無法實(shí)現(xiàn)的。

      從架構(gòu)角度來看,Cortex-A710的部分增強(qiáng)和之前的Cortex-X2基本相同。比如前端方面,Cortex-A710在分支預(yù)測方面的改進(jìn)和Cortex-X2類似,都帶來了更高的分支預(yù)測精度、關(guān)鍵的分支預(yù)測結(jié)構(gòu)容量翻倍,比如BTB分支目標(biāo)緩沖區(qū)、GHB全局歷史緩沖區(qū)都擁有更高的容量。L1TLB的容量也增加了50%,從之前的32條目增強(qiáng)至目前的48條目。其他的部分包括Mops緩存依舊是1.5K條目保持不變,但是遠(yuǎn)遠(yuǎn)小于Cortex-X2的3K條目容量。

      在中核階段,這里Cortex-A710有一個(gè)非常有趣的變化,就是相比Cortex-A78的6寬度,新的Cortex-A710采用了5寬度設(shè)計(jì),ARM解釋說這種改動(dòng)是為了提高效率。另外和Cortex-X2相同的是,Cortex-A710目前也減少了指令拾取的周期數(shù),目前只有1個(gè)周期,因此整體管道長度也降低至10級。此外,ARM還對重命名階段進(jìn)行了重新優(yōu)化,減輕了性能瓶頸,另外還提升了拾取宏指令的性能。

      此外,Cortex-A710的指令預(yù)取部分也實(shí)現(xiàn)了增強(qiáng)。具體的改變和在Cortex-X2上的類似,都是提高了準(zhǔn)確性和覆蓋率。另外,Cortex-A710還降低了搭配DSU的時(shí)候內(nèi)核到L3的訪問時(shí)間,并且更好的預(yù)取器和更大的L3還降低了低效的DRAM訪問次數(shù),提高了效率。

      最后再來看看IPC方面的提升,ARM宣稱Cortex-A710相比Cortex-A78提升了10%的IPC,但這里依舊是基于8MBL3對比4MBL3而來。因此具體到實(shí)際產(chǎn)品上的話,由于Cortex-A710適用范圍更廣泛,不但可以使用在高端處理器上,也可以使用在中端產(chǎn)品中,最終如何配置還取決于廠商對產(chǎn)品的市場定位,因此實(shí)際產(chǎn)品可能很難獲得10%的IPC提升,除非它完全按照ARM的DSU尺寸進(jìn)行配置。

      另外有一個(gè)非常有趣的內(nèi)容,那就是相比之前的Cortex-A78,Cortex-A710在頻率稍微降低的時(shí)候,Cortex-A710能夠?qū)崿F(xiàn)比Cortex-A78更低的功耗,ARM的數(shù)據(jù)是這個(gè)數(shù)值最高可達(dá)30%,這意味著Cortex-A710有望在最佳工作區(qū)間實(shí)現(xiàn)極高的能耗比,當(dāng)然這需要廠商精確的設(shè)計(jì)和控制才能實(shí)現(xiàn)。

      總的來說,Cortex-A710實(shí)際上給出了近幾年最低的架構(gòu)代際性能提升。ARM的解釋是由于遷移到Armv9帶來了架構(gòu)巨大的變化,因此對效率和性能的改進(jìn)產(chǎn)生了影響。目前Cortex-A710和Cortex-X2都是來自ARM的奧斯汀團(tuán)隊(duì),這已經(jīng)是奧斯汀微體系架構(gòu)的第四代產(chǎn)品了,因此遇到收益遞減的邊際效應(yīng)也是可以理解的。實(shí)際上,ARM的另一個(gè)團(tuán)隊(duì)索菲亞團(tuán)隊(duì)一直在潛心研究新的架構(gòu),可能明年就會(huì)由索菲亞團(tuán)隊(duì)帶來效能和性能飛躍的全新架構(gòu)了,非常值得期待。

      全面革新的小核心:Cortex-A510

      Cortex-A510是ARM使用Armv9指令集推出的全新高性能功耗比小核心。ARM首先介紹了Cortex-A510的設(shè)計(jì)思路。宏觀來看,Cortex-A510依舊是一個(gè)三發(fā)射的、順序執(zhí)行的CPU微架構(gòu),不過他加入了一些來自Cortex-X架構(gòu)的技術(shù)來提高整體性能,比如分支預(yù)測和數(shù)據(jù)預(yù)取等。Cortex-A510另一個(gè)重要變化是全新的“mergedcore”微架構(gòu),也就是“合并核心”微架構(gòu),這會(huì)大大提升芯片區(qū)域的效能。最后,Cortex-A510是基于Armv9指令集的產(chǎn)物,不再支持AArch32的應(yīng)用程序。

      在這里需要說明的是,雖然目前工藝制程越來越先進(jìn),單位面積可以容納的晶體管數(shù)量也越來越多,ARM是有條件或者有可能在此類目標(biāo)為高性能功耗比場合的微架構(gòu)上使用亂序執(zhí)行架構(gòu)的,但是ARM還是采用了順序執(zhí)行架構(gòu)并提到這依舊是目前最高效率的設(shè)計(jì)方式,有關(guān)這一點(diǎn)業(yè)內(nèi)還存在較多爭議,本文也會(huì)就此在后文進(jìn)行一些討論。

      首先還是來看頗為吸引眼球的“合并核心”微架構(gòu)的設(shè)計(jì)。在這里ARM對其進(jìn)行了比較詳細(xì)的解釋。根據(jù)ARM的描述,所謂合并核心實(shí)際上是指2個(gè)核心可以看作一個(gè)“復(fù)合體”,這個(gè)復(fù)合體內(nèi)部的NENO、SVE2SIMD部分以及L2TLB、L2緩存都是可以共享的。ARM宣稱這樣設(shè)計(jì)可以提高芯片區(qū)域效率,并且?guī)砜缮炜s、廣泛的配置方案以滿足不同的需求,此外,這種設(shè)計(jì)還可以讓一個(gè)復(fù)合體內(nèi)部的一個(gè)核心占用所有的資源以提高單核心性能。

      有關(guān)這種復(fù)合體的設(shè)計(jì),與之比較相似的是AMD在之前的推土機(jī)微架構(gòu)上使用的CMT架構(gòu),不過AMD的CMT模塊本質(zhì)上是一種介于兩個(gè)獨(dú)立的CPU核心和一個(gè)擁有超線程的獨(dú)立CPU核心之間的設(shè)計(jì),這種設(shè)計(jì)中,一個(gè)CMT模塊包含2個(gè)X86整數(shù)單元,因此被認(rèn)為是2個(gè)核心,每個(gè)整數(shù)運(yùn)算調(diào)度單元各自擁有16KB的L1緩存,但是整個(gè)CMT又共有可以拆分為2個(gè)128bit的浮點(diǎn)SIMD單元(或者可以合并為1個(gè)256bit的SIMD單元),同時(shí)共享前端的指令解碼、拾取、二級緩存和IO總線等部分。

      Cortex-A510有兩個(gè)完整的內(nèi)核,各自擁有獨(dú)立的前端、中核和整數(shù)后端單元以及L1緩存結(jié)構(gòu),“共享”的部分實(shí)際上是浮點(diǎn)SIMD(SVE2)單元和L2緩存部分。其中浮點(diǎn)單元可以配置為2x64bit或者2x128bit。L2緩存可以配置為不存在或最大512KB。

      從比較微觀的角度來看,ARM設(shè)計(jì)所謂“合并核心”的初衷是考慮到對Cortex-A510這種小核心來說,更常用的資源是整數(shù)執(zhí)行部分,對浮點(diǎn)執(zhí)行部分啟用的機(jī)會(huì)較低,因此干脆兩個(gè)核心共享一個(gè)浮點(diǎn)和L2部分,這樣可以帶來單位面積效能的提升,因此這樣來看這種設(shè)計(jì)是有意義的。但是,從實(shí)際應(yīng)用的角度來看,如果一組合并核心內(nèi)的浮點(diǎn)單元被一個(gè)核心所占用,那么另一個(gè)核心則無法完成同樣的工作,因此可能會(huì)被閑置,在這種情況下,合并核心中的共享資源實(shí)質(zhì)上相當(dāng)于被某個(gè)核心獨(dú)占了,這又意味著單位面積效能的降低。

      對于這種矛盾的情況,目前ARM沒有給出太多解釋。實(shí)際上,最終的效能表現(xiàn)在很大程度上應(yīng)該取決于軟件、系統(tǒng)如何使用這種合并核心或者如何調(diào)度資源,希望在實(shí)際產(chǎn)品上市前我們能得到更多的信息。

      繼續(xù)來看架構(gòu),Cortex-A510前端采用了128bit的拾取管道,每周期最多可以獲取4個(gè)指令,可以應(yīng)對分支氣泡的情況。解碼器寬度從之前Cortex-A55的2寬度提升至3寬度,這意味著它每周期能夠提供3個(gè)指令解碼。隨后的分支預(yù)測方面,ARM宣稱Cortex-A510使用了最先進(jìn)的多級分支預(yù)測技術(shù),ARM在這里沒有透露太多細(xì)節(jié)。L1指令緩存可能是32KB或者64KB,這一點(diǎn)還有待ARM確認(rèn)。

      在執(zhí)行端的矢量單元部分,ARM宣稱矢量單元也就是浮點(diǎn)計(jì)算部分的共享設(shè)計(jì)對硬件來說是完全透明的,并且還提供細(xì)粒度的硬件調(diào)度機(jī)制。在同時(shí)使用了2個(gè)內(nèi)核的實(shí)際多線程工作負(fù)載中,其性能影響相比傳統(tǒng)的擁有專用管道的內(nèi)核,實(shí)際性能損失應(yīng)該據(jù)說只有幾個(gè)百分點(diǎn)—這應(yīng)該是ARM采用類似合并核心設(shè)計(jì)的論點(diǎn)來源,既然損失如此之小,那完全可以砍掉一整個(gè)浮點(diǎn)單元模塊以節(jié)約面積。

      另外,Cortex-A510在浮點(diǎn)單元部分可選2x64bit或者2x128bit的設(shè)計(jì)也帶來了一定的自由性,如果廠商考慮性能則會(huì)考慮選擇2x128bit的方案,這樣一次可以執(zhí)行2個(gè)128bit的SIMD指令,如果選擇2x64bit的話,那么可以使用合并執(zhí)行的方式一次執(zhí)行1個(gè)128bit的SIMD指令,但無論如何,Cortex-A510所能執(zhí)行的浮點(diǎn)指令最大位寬都是128bit。當(dāng)廠商選擇2x128bit方案時(shí),其峰值性能將達(dá)到前代Cortex-A55的2倍。在這里,廠商又將在性能、功耗和面積上做出謹(jǐn)慎的平衡,是交由Cortex-A510的浮點(diǎn)單元執(zhí)行還是挪去更高端的Cortex-A710,值得很好的研究。

      繼續(xù)來看后端,雖然Cortex-A510是一個(gè)順序執(zhí)行單元,但是ARM還是對其后端執(zhí)行部分進(jìn)行了擴(kuò)充。目前,Cortex-A510的后端執(zhí)行部分包含了3個(gè)ALU單元、1個(gè)分支單元和1個(gè)復(fù)雜的MAC/DIV單元。擴(kuò)充的單元規(guī)模有助于在指令進(jìn)入時(shí)快速地將其處理完成,降低指令執(zhí)行周期數(shù)并提高性能。在這里,后端單元規(guī)模的擴(kuò)充是和前端解碼能力的擴(kuò)充相適應(yīng)的。

      接下來的加載和存儲系統(tǒng)是Cortex-A510的亮點(diǎn)之一。相比Cortex-A55,Cortex-A510的加載和存儲部分得到了大幅度改進(jìn),Cortex-A510目前擁有1個(gè)加載單元和1個(gè)同時(shí)可以執(zhí)行加載和存儲的單元,相比上代產(chǎn)品僅有1個(gè)加載單元和1個(gè)存儲單元而言,新的設(shè)計(jì)將加載和存儲的峰值都提高了1倍,并且加載和存儲單元的寬度從之前的64bit提升至128bit,再度翻倍。因此相比Cortex-A55,Cortex-A510在加載和存儲部分的峰值效能實(shí)際上達(dá)到了前者的4倍。ARM給出的數(shù)據(jù)顯示,Cortex-A510相比Cortex-A55,在L1、L2、L3的緩存帶寬方面分別達(dá)到了后者的4倍、2倍和2倍,性能提升明顯。

      性能增幅方面,ARM也照例提供了官方數(shù)據(jù)。ARM在這里使用了擁有32KBL1、256KBL2和8MBL3的Cortex-A510對比擁有32KBL1、128KBL2和4MBL3的Cortex-A55,在兩者頻率相同的情況下,SEPCint2006中Cortex-A510擁有35%的性能優(yōu)勢,SPECfp2006中擁有50%的性能優(yōu)勢,LMbench中擁有62%的性能優(yōu)勢??傮w來說,單純對比Cortex-A510相比Cortex-A55的增長幅度是非常令人滿意的,不過考慮到Cortex-A55發(fā)布于2017年,那么這樣的增長幅度又讓人覺得不那么驚艷了。

      最后來看Cortex-A510對比Cortex-A55的性能和功耗曲線。從這個(gè)曲線可以看出,實(shí)際上Cortex-A510在很大幅度上和Cortex-A55完全重合,只有在Cortex-A55高頻部分才展示出了明顯的性能、功耗提升。比如ARM給出的數(shù)據(jù)是在Cortex-A55的極限頻率處,Cortex-A510在同性能下可以降低20%的功耗,或者同功耗下提升10%的性能。

      這里我們進(jìn)一步討論一下順序執(zhí)行核心和亂序執(zhí)行核心的問題。實(shí)際上從Cortex-A510的性能來看,順序執(zhí)行架構(gòu)似乎已經(jīng)達(dá)到了它的極限點(diǎn),對其架構(gòu)的改進(jìn)很難帶來非常明顯的性能提升。從ARM給出的曲線圖也可以看出,Cortex-A510后期的性能提升基本上是和頻率和功耗的增長掛鉤,而不是架構(gòu)本身,這說明Cortex-A510和Cortex-A55這樣的架構(gòu)設(shè)計(jì)已經(jīng)基本沒有太多潛力可挖了。

      相反,對小核心設(shè)計(jì)而言,蘋果給出了一個(gè)比較好的例證。根據(jù)anandtech的測試,蘋果的高性能功耗比核心的性能比Cortex-A55高了大約4倍,因此即使是Cortex-A510登場,也基本上無法改變這種態(tài)勢。其中的差別在于,蘋果的高性能功耗比核心也就是小核心采用的是亂序執(zhí)行架構(gòu)。對于這一點(diǎn),ARM依舊堅(jiān)持在高性能功耗比核心上使用順序執(zhí)行架構(gòu),ARM設(shè)想一些非常輕量化的工作負(fù)載比如UI等運(yùn)行在小核心上能夠最大限度地帶來能效的提升,并且還可以搭配其他核心進(jìn)行操作。

      目前對在高性能功耗比核心上采用何種架構(gòu)依舊存在爭論。不過僅從Cortex-A510的性能表現(xiàn)來看,ARM再次提高了小核心的性能上限,這使得更多的計(jì)算任務(wù)可以駐留在Cortex-A510這樣擁有極高性能功耗比的小核心上,在完成任務(wù)的同時(shí)還消耗更少的能源,起到節(jié)約電能、延長續(xù)航的作用。

      推開Armv9時(shí)代的大門

      從ARMCortex-X2、Cortex-A710和Cortex-A510的架構(gòu)和設(shè)計(jì)情況來看,ARM在發(fā)布了全新指令集之后,就迅速推出了面向消費(fèi)者的全新架構(gòu),這顯示了ARM強(qiáng)悍的研發(fā)能力和出色的執(zhí)行力。具體到架構(gòu)來看的話,Cortex-X2持續(xù)提高ARM處理器的性能巔峰,Cortex-A710帶來了更好的性能和功耗平衡,Cortex-A510則進(jìn)一步在保持較低功耗的情況下提升了性能上限,三個(gè)核心都很好地完成設(shè)定的目標(biāo),也為我們推開了Armv9時(shí)代的大門。接下來,這三款架構(gòu)可能會(huì)在2021年底發(fā)布的全新一代處理器上現(xiàn)身,比如高通驍龍和三星Exynos,或者聯(lián)發(fā)科的相關(guān)產(chǎn)品,屆時(shí)本刊會(huì)再針對具體產(chǎn)品進(jìn)行詳細(xì)解讀。

      猜你喜歡
      浮點(diǎn)功耗分支
      LEO星座增強(qiáng)GNSS PPP模糊度浮點(diǎn)解與固定解性能評估
      基于浮點(diǎn)DSP的鐵路FSK信號檢測
      巧分支與枝
      一類擬齊次多項(xiàng)式中心的極限環(huán)分支
      揭開GPU功耗的面紗
      數(shù)字電路功耗的分析及優(yōu)化
      電子制作(2016年19期)2016-08-24 07:49:54
      “功耗”說了算 MCU Cortex-M系列占優(yōu)
      電子世界(2015年22期)2015-12-29 02:49:44
      IGBT模型優(yōu)化及其在Buck變換器中的功耗分析
      基于FPGA的浮點(diǎn)FIR濾波器設(shè)計(jì)
      改進(jìn)的Goldschmidt雙精度浮點(diǎn)除法器
      哈尔滨市| 大新县| 澄迈县| 项城市| 双城市| 岳阳市| 青铜峡市| 象州县| 赞皇县| 两当县| 宽甸| 治县。| 汉阴县| 佛冈县| 尉犁县| 延庆县| 牙克石市| 策勒县| 西藏| 阿拉善盟| 崇州市| 平安县| 涞源县| 台湾省| 防城港市| 江门市| 旅游| 临洮县| 自贡市| 象山县| 唐河县| 建瓯市| 稷山县| 郯城县| 尉犁县| 烟台市| 斗六市| 北流市| 乌什县| 读书| 白沙|