ARM於昨晚正式發佈了最新一代的高性能Cortex-A系列核心,也就是我們能夠預測到的Cortex-A78核心,另外他們還發布了一款面向高性能的大核——Cortex-X1,它是Cortex家族歷史上性能最強的一款內核。

Cortex-A78是基於成功的Cortex-A76及Cortex-A77架構,是ARM的第三代Austin內核,通過繼續優化而誕生的新架構。它仍然將PPA(Power, Performance and Area)作為自己關注的焦點,在內核IPC上遵循每代提高25%~30%的水平發展。它仍然是一枚採用Arm v8.2指令集的CPU,與常作為小核搭配使用的Cortex-A55之間是指令集兼容的。

在Cortex-A77上面,ARM為它的後端引入了一個新的分支執行器,但前端跟不上需求。於是在Cortex-A78上,ARM擴大了前端的分支預測器,使得它能夠在一個時鐘週期內可以處理兩個預測,提高了核心的吞吐量。同時,為了節約內核面積,ARM提供了32KB的L1指令緩存選項,原本固定為64KB。

在內核的中間部分上,ARM着重於優化原有的設計,大部分工作都是在提高面積和能耗效率。當然,在指令重排與發射方面,ARM增加了指令調度器的寬度,相比Cortex-A77提高了2個μops,達12μops。

後端執行單元部分並沒有太大的改變,只是將其中的一個ALU升級為能夠處理乘法的更復雜的單元。緩存子系統方面則有較大改變,新增了有一個Load單元,這是對現有的兩個Load/Store單元的補充,可以給核心增加50%的Load帶寬。通向L1數據緩存的帶寬從每週期16B擴展到了每週期32B,核心通往L2緩存的帶寬也增加了一倍。

另外,與L1指令緩存的可選32KB大小對應,這裏的L1數據緩存大小也可被配置為32KB,以節約內核面積。L2的TLB也從1280頁減少到了1024頁,足以覆蓋4MB的L3緩存,同時提高了L2的能耗效率。
Cortex-A78在整體設計上更為注重效率,但性能提升也是很明顯的。



在官方提供的數據中,相比起前代Cortex-A77,單線程性能提升7%,能耗降低4%,面積需求降低5%。而在實際應用中,結合更新的工藝,Cortex-A78能夠在相同功耗下提高20%的性能,或是在同性能下節約最多50%的電,是有較大的進步。
為什麼Cortex-A78要給出一些節約面積的選項呢?因為他們對大核有了更好的闡述,也就是這次發佈的另一款核心——Cortex-X1,它是一款為高性能而生的大核。


Cortex-X1在結構設計上與Cortex-A78如出一轍,但幾乎在每個地方都進行了擴展。
圖片來自於 WikiChip
前端解碼部分從4端口增加到了5端口,宏指令緩存直接加倍,達到3000條,甚至超過Intel的Sunny Cove(2250條),但少於Zen 2(4000條)。亂序重排緩衝區(ROB)的大小也是擴充到224條,與Zen 2和Skylake持平。

執行部分中變化最大的是FP單元,也就是ARM特有的NEON浮點引擎,Cortex-X1上面直接將FP單元的數量倍增,達到4x128B的規模,寬度上基本等同於目前的桌面x86處理器,不過ARM目前的指令集並不允許單個長度大於128B的向量,在吞吐上肯定是不如桌面端處理器的。

緩存部分也發生了較大的變化,除了同步Cortex-A78增加的一個Load AGU外,ARM允許Cortex-X1的二級緩存加倍,增加到1MB之多,同時L2 TLB較Cortex-A78翻倍,可覆蓋8MB的L3緩存。

Cortex-X1很像Cortex-A78,兩者共享了不少設計改進,但Cortex-X1明顯是衝着高性能去的,它很寬,有着更高的計算吞吐量。官方數據顯示它相比Cortex-A77在峯值性能上有30%的提升,是相當巨大的。

它為廠商提供了一個可定製的大核選項,以後我們在基於ARM的高性能移動處理器上可能會看到使用Cortex-X1作為超大核,加上多個Cortex-A78大核和Cortex-A55小核的配置。
ARM推出Cortex-X1的目的也很明顯,是為了更好地在高性能領域中建立自己的地盤,在移動端也可向蘋果自研的A系列處理器發起衝擊,後者的大核性能真的很恐怖。
預計可以在今年晚些時候看到採用Cortex-A78和Cortex-X1的處理器。