對于ARM的體系架構和對公事業而言,2020年可謂是非常成功的一年。這一年,ARM的“ Neoverse”系列CPU微體系結構終于開花結果,亞馬遜推出了基于Neoverse架構的Graviton2,Ampere推出了Altra服務器CPU。早在2019年初,Arm就首次推出了Neoverse N1。如果說,Graviton2的Arm服務器給出的承諾您還不滿意,那么,功能更強大同時尺寸更大的Altra肯定會擊中您的芳心。

 

 


第一代Arm服務器在性能上具有真正的競爭力,這一點應該毫無爭議,而現在,Arm終于實現了多年來孜孜以求的目標,即從x86現有廠商那里攫取了拿得出手的市場份額。

 

幾年過去了,快進到2021年,如今在Ampere Altra等設計中采用的Neoverse N1仍然具有相當的競爭力,可以說它們擊敗了Z新一代的AMD或Intel設計。而這種判斷在幾年前多少顯得有些牽強。我們建議您在過去的兩年中趕上這些重要的評論文章,以準確了解當今市場:

 


 
Arm公開表示,他們為Neoverse產品系列設定的主要優先目標是獲得云服務市場份額,Z近一個成功的案例來自于亞馬遜,整個2020年亞馬遜自己部署了多個AWS服務器,其中部署的主要硬件便是新的基于Arm的Graviton2,它搶占了英特爾丟掉的大部分市場份額。


展望2022年及未來


今天,我們正朝著未來以及新一代Neoverse V1和Neoverse N2產品邁進。 Arm已于去年9月對新產品進行了測試,測試了新設計的一些特征,但沒有披露更多有關新微體系結構的具體細節。在上個月宣布Armv9架構之后,我們現在終于可以開始研究兩個新的CPU微架構以及新的CMN-700 網狀網絡了。

 


 
正如去年9月份所介紹的那樣,這一代Neoverse CPU微體系結構的與眾不同之處在于,這是兩種截然不同的產品,分別針對不同的目標和細分市場。Neoverse V1是Arm開辟的一條新產品線,其目標旨在為更多類似于HPC的工作負載和面向此類市場的設計服務,而Neoverse N2則是Neoverse N1的直接繼承者,面向基礎設施和云端部署,其方式與N1在Graviton或Altra處理器等產品中所采用的方式相同。

 


 
對于熟悉Arm的移動CPU微體系結構的讀者來說,這兩個設計之間肯定有非常大的相似之處-盡管Arm的市場營銷部門似乎很奇怪地不愿意進行這種比較,這也是我制作了上面的圖表以便更清楚地描述這兩個設計之間相似之處的原因。

 

Graviton2和Altra Q處理器中的原始Neoverse N1是Cortex-A76的衍生產品,更確切的說,它和Cortex-A76是同級微體系結構,Cortex-A76已在2019年上市的驍龍855等移動SoC中使用。當然,Neoverse設計具有面向服務器的特定功能和一些變化,而這些功能和變化在移動產品中是不存在的。

 

與N1與A76的聯系類似,新一代V1和N2微體系結構與Cortex組合中的較新設計有關。 V1與我們在今年的新型移動SoC(如Snapdragon 888或Exynos 2100)中看到的Cortex-X1有關。另一方面,Neoverse N2與即將推出的新Cortex-A微體系結構有關,我們希望在接下來的幾個月中了解更多信息。在今天的整篇文章中,我們將更多地介紹V1和N2之間的這種代代相傳。重要的是要記住,N2是較新的設計,盡管它針對的是不同的性能和效率點。
 

 

與N1與A76之間的關系相似,新一代V1和N2微體系結構與Cortex組合中的較新設計有關。 V1與我們在今年的新款移動SoC中看到的Cortex-X1有關,例如驍龍888或Exynos 2100。另一方面,Neoverse N2與即將推出的新Cortex-A微體系結構有關,我們期望在接下來的幾個月中能了解到更多新的信息。在今天的文章中,我們將更多地介紹V1和N2之間的這種代代相傳。重要的是,讀者們要記住,N2是相對更新的設計,盡管它面向的是不同的性能和效率水平。

 

ARM為V1和N2設計的目標之所以有所不同,是因為該公司針對特定市場Z終產品可能具有的不同優先級而進行的一種嘗試,就像新的Cortex-X系列在移動設備領域主要優先考慮單核性能,而Cortex-A系列則繼續專注于實現Z佳的PPA。同樣,V1專注于以較低的效率實現Z佳的性能,并具有諸如更寬的SIMD單元(2x256b SVE)之類的功能,而N2則繼續保持橫向擴展的理念,即具有Z佳的功率效率,同時仍通過改進一代代IPC來提高性能。

 

在今天的文章中,我們將深入探討V1,N2的新微體系結構變化以及Arm的Z新一代網狀互連IP CMN-700,該產品有望成為下一代Arm服務器處理器的基礎。


Neoverse V1微體系結構:帶有SVE的X1?


從新的Neoverse V1開始,這個設計既具有一些我們熟悉其起源的一些功能,又具備我們在Arm CPU中首次看到的一些獨特功能。正如引言中所指出的那樣,V1出自Arm奧斯汀設計中心設計Cortex-X1的同一支團隊,在區塊結構方面,兩個微體系結構之間存在很大的相似之處。
 


與X1(當然還有其前身N1)相比,V1Z值得注意的是,它現在是一個具有SVE功能的處理器,具有兩個本地256b SIMD流水線,并且還引入了僅限于服務器才具有的一些特征,例如一致性L1I緩存, bFloat16執行能力,以及一系列我們將在稍后介紹的獨特特性。


 


從其描述而言,Neoverse V1的體系結構特征可能是Z復雜的-本質上,它采用的是v8.4基線體系結構,同時還為面向HPC的工作負載引入了v8.5和v8.6體系架構中的一些功能。鑒于我們在一個月前才談到過Armv9,這似乎有些奇怪,但我們必須再次記住,V1是在相當一段時間之前設計的,并且客戶擁有該IP已有相當長的一段時間了,有的已經研發出甚至流片了V1處理器。


 


V1的Z大亮點在于,它的性能相比于N1大大提高,IPC增長了 50%。性能提升驚人,但是這并不令人感到驚訝,因為該微體系結構實際上比N1提升了2代,盡管從基礎架構產品的角度來看,它僅提升了一代微體系結構。


 


從高級流水線的角度和微體系結構的角度來看,Neoverse V1與X1非常相似。這仍然是一個非常短的流水線設計,只有11個階段,Arm將重點放在其微體系結構的這一方面,以盡可能減少分支預測錯誤的代價。在從A76開始的Austin系列設計的Z后幾次迭代中,微體系結構的流水線設計方面一直保持相對靜態,因此Arm指出,與N1相比,V1的頻率能力基本上沒有變化,而性能的提升完全來自于增加的IPC。
 


在V1中,我們可以發現在Cortex-A77和Cortex-X1世代中看到的許多前端改進,以及更大的前端分支改進,例如解耦的訪存單元的帶寬增加了一倍,L2 BTB更大,Z多可容納8K個條目,并重新排列和調整了較低級別的BTB的大小,與Neoverse N1相比,L0(nanoBTB)增長到96個條目,而L1 BTB(microBTB)不再保留。


 


與N1相比,V1還增加了一些新結構,例如引入了Z多可解碼3K指令的宏操作緩存。來自Mop緩存的調度帶寬為8-wide,而這一代的實際指令解碼器為5-wide,與X1上的相同。

 

與Neoverse N1相比,亂序窗口的大小實際上增加了一倍,ROB增長到256個條目。實際上,這比Arm為Cortex-X1披露的要稍大一點,ARM的Cortex-X1只披露了“ OoO窗口尺寸為224”,因此在這方面似乎與我們在X1中見到的有所不同。

 

在后端整數執行流水線上,該設計還引入了我們在A77世代產品上看到的許多更改,其中包括將分支執行端口加倍,以及能夠執行簡單指令(如加法運算)和更復雜運算(例如乘法和除法)的新型復雜ALU。
 


顯然,新的SIMD流水線在V1上有很大的不同,因為這是Arm有史以來第一個具有SVE功能的微體系結構。該設計具有兩個流水線,似乎帶有兩個專用調度器,它們具有針對256b寬SVE向量的本地功能。該設計與128b NEON / FP操作完全向后兼容,其中流水線實際上充當4x128b單元,這意味著在這方面,它具有與X1相同的執行寬度。

 

與N1相比,新設計還支持新的bFloat16和Int8數據格式,從而大大提高了內核的AI和ML推理性能。
 

 

在內存子系統方面,我們還看到,Cortex-X1上的單元數有所增加,包括2個加載/存儲單元和1個加載單元,這意味著該內核每個周期Z多可以加載3個負載,每個周期Z多可以存儲2磁。 SVE向量帶寬對于負載而言為每個周期2x32B,對于存儲而言為每個周期32B。

 

該內核的數據并行性也有所改進,以提高MLP(內存級并行性)功能。


 


L2高速緩存也采用了與X1相似的設計,在相同的1MB大小下,它現在快了1個周期,并且存儲體數量增加了一倍,以提高訪問并行度。

 

V1的系統級延遲出現了相當大幅度的降低。除了結構上的改進外,新一代預取器也是其中的一個重要組成部分,例如引入了一種新型的時間預取器,該臨時取指器可以隨著時間的流逝鎖定在任意訪問模式上,并識別相同模式的后續迭代,并將數據提取進來。

 

Arm揭示了該內核具有新的動態預取行為,該行為在減少L2互連流量方面起著重要作用,這是大型內核計數系統中的一個關鍵指標,在該系統中,每個字節的帶寬都需要實際使用,并且不能因錯誤推測的預取而浪費掉。


Neoverse V1微架構:平臺增強


V1除了在內核微架構方面有所創新之外,新設計還包括一些新的面向系統的創新,這些創新有望幫助供應商更好地將CPU IP集成到更大規模的實現中。

 


 MPAM(Z大功率緩解機制)是一種新的細粒度(約100個時鐘周期)的電源管理機制,它承諾幫助平滑內核的耗電行為,并允許供應商實現芯片的功率傳輸機制,可以說是以較低的功耗要求構建的。

 

正如我們在對Ampere Altra的評論中所看到的那樣,該芯片沒有像大多數x86 CPU那樣在Z大TDP下頻率來回波動,而是將大部分時間保持在Z大頻率上,而實際功耗卻多次落在TDP之下(Z大允許功耗)。 MPAM之類的機制將在可能的情況下,通過對功率受限的內核進行更精細的調節來提高系統的平均頻率?梢詫崿F這一目標的機制還包括微體系結構層次上的一些特性,例如調度節流,其中內核減慢調度指令的速度,在執行周期長的工作負載中平滑掉了對高功率的要求,在現在有了新的更寬的2x256b SVE流水線的情況下,這個特點尤其重要。
 


MPAM是一種在更大型的系統中幫助實現交互的另一種機制。內存分區和監視功能應該有助于提高服務質量,并減少在同一系統上部署運行多個工作負載(例如多個VM或進程)時不同進程相互干擾的副作用。這自然需要軟件-硬件合作和實施,但是在云環境中應該特別有用。
 


CBusy或Completer Busy也是一種新的系統端機制,其中CPU內核基于反饋的方式與網狀網絡交互,其中CPU可以根據整體網格和系統內存負載來改變其內存預取器的主動性。這與前面提到的動態預取行為相關聯,在這種情況下,可以同時兼顧兩個方面:在帶寬可用時更好地進行預取以提高每個內核的性能,在系統處于高負載狀態的情況下進行非常保守的預取,從而避免浪費帶寬和數據傳輸。


Neoverse N2 µArch:面向企業的首款Armv9


從以性能為導向的Neoverse V1到追求更平衡指標的Neoverse N2內核,我們看到了一種不同的內核設計方法,這有些類似于Cortex-A78對PPA的關注與X1對性能的關注兩者之間的對比。
 


Arm在這個內核上的關鍵字是“平衡”–微體系結構只采用那些有助于增加IP的PPA(性能、功率、面積)等式的功能和設計的更改。相反,V1選擇的是性能增強,即使這意味著功耗和面積的增加不成比例,從而降低了設計的總PPA。
 


在體系結構上,N2是比V1更新的核心,并采用更高的體系結構基線作為其功能的基礎。這是Arm首次公開的支持Armv9的內核,其中包括一些重要的新功能,例如SVE2。值得注意的是,盡管Arm上個月談論了很多關于Armv9 CCA(機密計算體系結構)的信息,但Neoverse N2內核并沒有新的SVE2功能,我們被告知,在將來的微體系結構設計中可以期望見到這種擴展。
 


與我們在V1上看到的細節相比,Arm對N2微體系結構的披露相當有限。它屬于尚未公開的下一代Cortex-A78內核的兄弟系列,除了值得注意的Armv9功能和新的SVE2流水線外,我們還需要等待幾個月的時間才能確切地看到它與Cortex-A78相比有何不同之處。
 


Arm確認了它是一個較窄的微體系結構-5-wide(V1中的8-wide),并且該設計具有2x128b原生SVE2和NEON流水線。
 


Arm指出,與Neoverse N1相比,新設計的IPC仍實現了令人印象深刻的40%的增長,考慮到我們承諾功率和面積和性能之間僅呈線性增長的事實,這實際上是非常重要的增長。
 


就“智能”(或更確切地說,是微體系結構創新)而言,N2是V1的超級集合,只是對塊和結構大小采取了更保守的方法。

 

除MPMM和DT、PDP或“性能定義的功耗管理”之外,系統端功能是N2的一項新功能,該功能有望根據工作負載改變CPU的微體系結構功能,從而在不影響性能的情況下降低功耗。我想在這里,我們在談論的是微架構功能與工作負載相關的更智能的時鐘門控。


作者:Andrei Frumusanu

編譯:與非網