?
本文對(duì)ARM Neoverse系列服務(wù)器CPU做一些初步調(diào)研,并嘗試比較服務(wù)器CPU與手機(jī)AP CPU的異同。
云計(jì)算通用可編程DPU發(fā)展白皮書(2023年)
《42份智能網(wǎng)卡和DPU合集》
256份重磅ChatGPT專業(yè)報(bào)告
首先看一下ARM Neoverse系列CPU的全家福,其中一些主要的CPU會(huì)在下文重點(diǎn)介紹。
(圖源:Anandtech)
1. ARM Neoverse N1
ARM在2019年2月首次發(fā)布面向服務(wù)器的CPU產(chǎn)品:ARM Neoverse N1。Neoverse N1跟Cortex-A76是同一時(shí)代的產(chǎn)品,所以下面重點(diǎn)對(duì)比Neoverse N1與Cortex-A76的異同。
1.1 流水線結(jié)構(gòu)
從CPU core的流水線結(jié)構(gòu)上來看,Neoverse N1采用最短11級(jí)的流水線,取指/譯碼的寬度為4,具有3個(gè)64-bit整數(shù)ALU和1個(gè)Branch單元,2個(gè)128-bit的Advanced SIMD(負(fù)責(zé)浮點(diǎn)/向量運(yùn)算)單元,以及兩個(gè)128-bit Load/Store的單元。從流水線結(jié)構(gòu)上看,與Cortex-A76沒有明顯差異。
(圖源:Anandtech)
1.2Cache
在cache結(jié)構(gòu)上,Neoverse N1的Instruction cache可以通過配置選擇是否支持硬件一致性,這個(gè)配置選項(xiàng)是針對(duì)服務(wù)器這種多核的應(yīng)用場(chǎng)景所添加的。ARM在架構(gòu)上并不要求Instruction cache具有硬件一致性的能力。所以對(duì)于之前的ARM CPU,如果memory里面的指令被修改了,那么軟件需要進(jìn)行cache maintenance操作(如I cache invalidation)。這些cache maintenance操作通常會(huì)以廣播的形式發(fā)給與當(dāng)前core保持一致性的其他所有core。這種廣播的形式對(duì)于核數(shù)較多的系統(tǒng)而言會(huì)造成較大的性能開銷。而在服務(wù)器場(chǎng)景下,ARM提到VM的setup/teardown會(huì)導(dǎo)致memory里面的指令被修改的情況。
(圖源:ARM, Hotchips 2019)
如果配置Neoverse N1支持I-cache的硬件一致性,則節(jié)省了軟件進(jìn)行I-cache maintenance的開銷。為了保證軟件的兼容性,在支持I-cache硬件一致性的Neoverse N1上,如果執(zhí)行的舊版本軟件依然執(zhí)行I-cache maintenance指令,Neoverse N1會(huì)將這些指令當(dāng)作“No operation”(即NOP)來處理。對(duì)于新開發(fā)的軟件,Neoverse N1提供一個(gè)寄存器bit可以供軟件查詢當(dāng)前Neoverse N1是否配置了I-cache的硬件一致性選項(xiàng)。(以上內(nèi)容參考ARM的白皮書《The Arm Neoverse N1 Platform: Building Blocks for the Next-Gen Cloud-to-Edge Infrastructure SoC》)
另外Neoverse N1可配置的L2 cache size與A76存在差異。Neoverse N1的L2 cache size為256KB ~ 1024KB,而Cortex-A76的L2 cache size為128KB ~ 512KB。如果Neoverse N1配置支持I-cache的硬件一致性,那么L1 Instruction cache會(huì)與L2 cache保持完全的inclusive關(guān)系,即所有L1 Instuction cache中的內(nèi)容都必須放在L2 cache里面,此時(shí)ARM建議L2 cache size配置成1024KB。如果配置成512KB,由于被L1 instruction cache的嚴(yán)格inclusive關(guān)系占用部分cache空間,可能會(huì)有1%~ 2%的性能損失。(以上內(nèi)容參考ARM Neoverse N1 Technical Reference Manual)
1.3Neoverse N1與下游的連接
從集成的角度,ARM Neoverse N1可以選擇以Direct-Connect的形式直接連接到CMN-600總線上。
(圖源:Anandtech)
Direct Connect是ARM DSU (DynamIQ Shared Unit)的一個(gè)配置選項(xiàng),當(dāng)DSU配置成Direct Connect這種模式的時(shí)候,DSU內(nèi)部的L3 cache,snoop filter和Snoop Control Unit (SCU)將不再存在。由于此時(shí)DSU內(nèi)部沒有任何負(fù)責(zé)一致性的邏輯,所以一個(gè)DSU cluster最多只支持一個(gè)core。多個(gè)DSU cluster之間的一致性由DSU外部的一致性總線(如CMN600)來維護(hù)。由于Direct Connect模式下DSU內(nèi)部沒有L3 cache,所以通常需要外部的一致性總線(如CMN600)配置一定量的system cache來滿足CPU的性能需求。
作為對(duì)比,可以看一下A76的DSU結(jié)構(gòu),DSU內(nèi)部的L3 cache、Snoop Control Unit等模塊通常都是存在的。從A76的Technical Reference Manual里面也沒有看到描述A76支持像Neoverse N1那樣的Direct Connect模式: (圖源:Anandtech) 除了Direct Connect這種配置外,Neoverse N1 IP本身也支持DSU cluster里面最多配置4個(gè)Neoverse N1,然后在DSU內(nèi)部把這幾個(gè)core的一致性處理做掉,然后多個(gè)DSU之間再通過一致性總線相連。下圖就是DSU里面配置4個(gè)Neoverse N1 core的一個(gè)例子: (圖源:Neoverse N1 TRM) ? 1.4基于Neoverse N1的SOC結(jié)構(gòu) 下面是ARM的一個(gè)基于Neoverse N1 CPU的大型SOC芯片的參考設(shè)計(jì)。使用了64個(gè)Nerverse N1 CPU,利用CMN-600一致性總線進(jìn)行互聯(lián),再配合DDR controller、PCIe controller等IP組成整個(gè)SOC。
(圖源:ARM, Hotchips 2019) 上圖中有大量的單元掛在mesh的節(jié)點(diǎn)上,在下圖中可以看到這些掛在Mesh網(wǎng)絡(luò)中的Cross Point(XP)節(jié)點(diǎn)上的單元為2個(gè)N1 CPU,和System Level Cache。CMN可以支持從1x2到8x8的mesh結(jié)構(gòu),在latency上,每一個(gè)cycle可以進(jìn)行一次hop,即從一個(gè)XP跳到相鄰的XP: (圖源:ARM, Hotchips 2019) 兩個(gè)N1 CPU連接到XP上的時(shí)候可以配置成Direct Connect形式,利用CMN600里面的CAL(Component Aggregation Layer)組件,能夠?qū)⒆疃鄡蓚€(gè)相同的RNF(Request Node Full)連接到XP上。 ? (圖源:ARM, CMN600 TRM) 除了提供上述的大型芯片reference design外,ARM還為Neoverse N1做了一套硬件開發(fā)板,用于軟件的開發(fā)驗(yàn)證。開發(fā)板的N1 SOC芯片包含4個(gè)Neoverse N1,這4個(gè)Neoverse N1是分成2個(gè)DSU cluster連接到CMN-600上的,并且配備了1MB L3 cache。SOC架構(gòu)中除了N1 CPU之外,其他像MMU-600、Debug and trace component的使用也值得關(guān)注。 (圖源:ARM, Arm?Neoverse?N1 System Development Platform?TRM) 1.5Neoverse N1的PPA 基于7nm工藝,配置512KB L2的Neoverse N1面積為1.15mm2,配置1MB L2的面積為1.4mm2。整數(shù)運(yùn)算workload(大概率是指dhrystone)的功耗為1.0W @ 2.6GHz和1.8W @ 3.1GHz。 (圖源:ARM, Hotchips 2019) 1.6基于Neoverse N1的服務(wù)器產(chǎn)品 Ampere Computing,由軟銀、微軟、甲骨文投資,英特爾前總裁Renee James創(chuàng)立的服務(wù)器芯片獨(dú)角獸公司,截至2023年推出3代服務(wù)器產(chǎn)品: Ampere Altra:80個(gè)Neoverse N1 core,1MB per-core L2,32MB SLC,Max 3.3GHz Ampere Altra Max:128個(gè)Neoverse N1 core,1MB per-core L2,16MB SLC,Max 3.0GHz。SPECint2017跑分336分。 AmpereOne(2023年5月發(fā)布):192個(gè)ARM架構(gòu)自研核 下圖為128核Neoverse N1的Ampere Altra Max框圖: (圖源:Ampere, Ampere Altra Max 64-Bit Multi-Core Processor Datasheet) 2. ARM Neoverse V1 ARM移動(dòng)端的Cortex-A系列CPU分為超大核Cortex-X系列,大核Cortex-A7x系列以及小核Cortex-A5x系列。相應(yīng)地,Neoverse服務(wù)器的產(chǎn)品線也分為追求極致性能的V-Series、追求性能與功耗平衡的N-Series以及追求功耗面積的E-Series。 (圖源:Anandtech) ARM在2020年9月發(fā)布的Neoverse V1,對(duì)應(yīng)移動(dòng)端的Cortex-X1。 (圖源:Anandtech) 根據(jù)ARM的PPT,Neoverse V1相比Neoverse N1會(huì)有50%的單核性能提升。 (圖源:Anandtech) 由下圖可見,Neoverse V1的取值、譯碼、發(fā)射單元寬度都顯著高于N1,ALU等 (圖源:ARM) 但根據(jù)2022年底的新聞,由于Neoverse V系列CPU性能太高,受美國和英國的出口管制,中國企業(yè)無法購買ARM Neoverse V系列的CPU,包括Neoverse V1以及后續(xù)的Neoverse V2等。 3. ARM Neoverse N2 Neoverse N2是ARM首款A(yù)RMv9系列的服務(wù)器CPU。與移動(dòng)端的Cortex-A710是同一代的CPU。相比Neoverse V1,增加了SVE2、Memory Tagging Extension(MTE)等ARMv9一代CPU的新feature。 (圖源:ARM,Arm Neoverse N2 Platform: Industry-leading performance and power efficiency for Cloud-to-Edge infrastructure) 根據(jù)ARM的PPT,Neoverse N2相比N1有40%的IPC提升: (圖源:Anandtech) 3.1基于Neoverse N2的服務(wù)器產(chǎn)品 2021年10月,平頭哥發(fā)布倚天710,基于TSMC 5nm工藝,采用128核的Neoverse N2,最高頻率3.2GHz,8通道DDR5,峰值總帶寬281GB/s,96通道PCIe 5.0。SPECInt 2017跑分440分。倚天710分為兩個(gè)die,每個(gè)die包含64個(gè)CPU core和4個(gè)通道的DDR。根據(jù)網(wǎng)上信息,每個(gè)die size約310mm2。倚天710采用2.5D封裝進(jìn)行多die合封,總計(jì)600億晶體管。所使用的總線大概率是與Neoverse N2同一時(shí)期的CMN-700,每個(gè)die上有一個(gè)CMN總線。 4. ARM Neoverse V2 ARM于2022年9月發(fā)布Neoverse V2 CPU。相比Neoverse V1,所支持的最大L2 cache size從1MB提升到2MB。另外支持ARM v9.0的新feature,如SVE2 4x128b。 (圖源:Anandtech) 5. ARMCMN700 vs CMN600 除了ARM Neoverse系列CPU之外,CMN總線也是ARM服務(wù)器架構(gòu)中的重要組件。CMN-700相比CMN-600提升了每個(gè)die上支持的core數(shù)量、mesh的Node數(shù)量以及System level cache的容量等。 (圖源:Anandtech) 其中CMN-700所支持的256 cores per die是這樣計(jì)算的,CMN-700可以支持128個(gè)RN-F(Full coherent的Requesting Node),每個(gè)RN-F可以是兩個(gè)Neoverse CPU core經(jīng)過CMN-700的CAL(Component Aggregation Layer)組件匯聚成一路。所以總共支持128 * 2 = 256 cores。 理論上來說,CMN-600可以支持64個(gè)RN-F,所以理論上能夠支持的core數(shù)量應(yīng)該也能到64 * 2 = 128 cores(實(shí)際上會(huì)略小于這個(gè)值)。因?yàn)锳mpere Altra這一代服務(wù)器芯片就已經(jīng)有80個(gè)Neoverse N1 core,超出了ARM給出的64 core per die。ARM給出的說法是這個(gè)64 core per die是指直連到Node上的core數(shù)量,如果采用CAL的話,可以實(shí)現(xiàn)更高的core數(shù)量。請(qǐng)留意下圖中最下面一行小字: (圖源:極術(shù)社區(qū)) 如果要實(shí)現(xiàn)128 core的服務(wù)器芯片,可以選擇在一個(gè)die上使用CMN-700來構(gòu)建,也可以通過多die互聯(lián),例如下圖左側(cè)就是2個(gè)64 core的die進(jìn)行die間互聯(lián)。采用64 core per die,用兩個(gè)die組成128 core服務(wù)器芯片的方式,每個(gè)die的size比較小,良率會(huì)更高,代價(jià)是需要有額外的邏輯實(shí)現(xiàn)片間互聯(lián)。?
責(zé)任編輯:彭菁
-
cpu
+關(guān)注
關(guān)注
68文章
10863瀏覽量
211783 -
可編程
+關(guān)注
關(guān)注
2文章
862瀏覽量
39825 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9163瀏覽量
85428
原文標(biāo)題:ARM Neoverse系列服務(wù)器CPU介紹
文章出處:【微信號(hào):AI_Architect,微信公眾號(hào):智能計(jì)算芯世界】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論