英特爾Sunny Cove架構很“吸睛”:10nm加持猛料不少
在近日舉辦的架構日活動上,英特爾罕見地公佈了未來多年的CPU、GPU架構路線圖,以及一系列相關技術、戰略規劃,讓人大飽眼福,其中新的CPU架構是很多人非常關心的亮點。本文收集了一些資料,為大家盡量通俗地做一些簡單解讀。
2019-2021年三年間,英特爾將每年推出一代高性能酷睿(Core)架構(當然也會用於至強),同時在2019-2023年間,將推出三代低功耗凌動(Atom)架構,重點當然是前者啦。
2019年的高性能新架構是“Sunny Cove”(陽光海灣),CPU大幅升級的同時集成第11代核芯顯卡,採用10nm工藝製造,桌面端處理器代號“Ice Lake”,這也將是英特爾第一個規模量產的10nm產品。
2020年是“ Willow Cove ”(柳樹海灣),幾乎肯定還是10nm工藝,但應該會像14nm+、14nm++那樣優化改進,2021年則是“ Golden Cove ”(金色海灣),不知道能不能用上7nm。
對於Willow Cove、Golden Cove,英特爾只是簡單提及了一些主要特性,而對於近在眼前的Sunny Cove,英特爾則是毫不吝嗇地公佈了不少架構技術細節。
首先說,這應該是英特爾歷史上第一次在新品發布之前N個月,就大方地公佈路線圖和技術細節,再加上將會第一次大規模應用10nm新工藝,因此10nm Sunny Cove一經宣布,就吸引行業乃至普通用戶的廣泛關注。
而每當一代新的CPU架構公佈時,了解它的原理、它的變革都讓人很興奮,英特爾這一次提前公佈一系列猛料也值得鼓掌,值得細細品味。
但略有遺憾的是,英特爾目前給出的信息還不完整,主要只是介紹了Sunny Cove架構的後端設計細節,不涉及指令分派、指令隊列等前端部分。
Sunny Cove的架構更新可以分為兩部分,一是通用目的性能提升,二是特定目的性能提升。
通用目的性能的提升,就是通過架構增強,改進大量應用的性能和能效,幾乎所有人在日常使用中都能體驗到,其本質上就是原始IPC(每時鐘週期指令數)吞吐量的變化,或者運行頻率的提高。
無論什麼工藝節點,只要這兩點有一個提升,整體性能就會隨之上升,至少在涉及計算的方面會有直接體現。
頻率通常取決於工藝和優化,IPC則可以來自更寬、更深、更智能的內核,或者專業點說分別就是每個時鐘週期執行更多指令、每時鐘週期更多並行、通過前端更好地傳輸數據。
而特定目的性能的提升,是針對特定使用場景、算法進行架構上的擴展,包括新的指令集、新的軟件編譯器/庫等。
這種變化只有在專門的場合才能體會到,比如說英特爾宣傳Sunny Cove架構通過新加入的指令集,可以讓7-Zip軟件的壓縮解壓性能提升多達75%,就是一個典型例子,只有用這款軟件或者針對其他針對相應指令優化的軟件,才能獲得如此明顯的提升。
特殊目的性能提升雖然應用範圍有限,但是只要給它發揮的空間,效果就是極為顯著的,幅度遠超通用性能提升。
Sunny Cove也在這方面做了大量的改進,涉及人工智能/機器學習、加解密、壓縮/解壓、通信/網絡、通用SIMD(單指令多數據流)/矢量處理、特殊SIMD/矢量處理、多線程與多代理處理等等。
如果你有這些方面的應用,Sunny Cove帶來的變化會非常可觀。
上邊說的都是一些大的應用範圍,具體到每個領域還有更確切的應用場景,新指令的引入可以大大加速特定計算任務的執行。隨著AVX-512指令單元的加入,Sunny Cove為大數運算增加了IFMA(帶符號熔加算法),也可用於加解密。
同時還有矢量AES加密(支持更多AES指令並行執行)、矢量乘(Vector Carryless Multiply)、伽羅瓦域(Galois Field)、SHA/SHA-NI安全算法等,其中不少都是密碼學的一些基本元素。
在緩存方面,Sunny Cove後端擁有48KB一級數據緩存,比現在的32KB增加了50%。一般來說,緩存的非命中率和容量增加幅度的平方根成反比,也就是說Sunny Cove的一級數據緩存命中錯誤率將會降低22%。
Sunny Cove的二級緩存也更大了,但具體容量暫未披露。目前酷睿是每核心256KB二級緩存,至強則是1MB。
另外,微操作(uOp)緩存也比現在的2048-entry設計要更大,只不過具體數字暫時也沒有公開。
二級TLB同樣增大到未知數,這有助於機器歷史地址轉換。通常情況下,需要保持和存儲更多輪詢的時候才會這麼做,這意味著英特爾已經發現,在部分應用環境中,最近的機器地址還沒有用上就被收回了。
這張圖顯示了更多變化,包括執行端口從8個增至10個,可以讓調度器一次釋放更多指令,其中端口4、端口9連接著循環數據存儲,帶寬加倍,AGU(地址生成單元)存儲能力加倍,更大的一級指令緩存也在其中起到了一定作用。
之前的Skylake架構上存在一個瓶頸,當全部三個AGU嘗試存儲的時候,帶寬就會明顯不足,每個時鐘週期只能執行一個。
載入性能不變,而寬度調度從4個增至5個,這意味著記錄緩衝區的分派每時鐘週期可以命中5個指令,但是實際效果如何仍有待觀察。
Sunny Cove、Skylake架構的執行端口發生了根本性的變化。
可以看到,英特爾為核心的整數部分配備了更多LEA(有效地址載入)單元,用來進行內存尋址計算,可能在需要頻繁內存計算的情況下,通過安全更新來緩解性能損失,或者通過恆定的偏移,有助於高性能陣列代碼。
MUL(乘法)單元從Skylake的端口5轉移到了端口1,可能是出於平衡設計的目的,同時還增加了一個iDIV整數除法單元。
這個變化並不大,10nm Cannon Lake也有一個64位的IDIV,可以將64位證書出發從97個時鐘週期(混合指令)降低到18個,Sunny Cove可能也與之類似。
INT整數運算方面,Skylake端口5的乘法單元變成了MulHi單元,但在新架構中的具體作用尚不明晰。
FP浮點運算方面,Sunny Cove增加了重排資源,因為英特爾收到客戶反饋,希望能消除代碼中的瓶頸。
英特爾沒有具體說明核心浮點部分FMA(熔加運算)單元的功能,但我們知道,核心內有一個AVX-512指令單元,所以至少會有一個FMA單元會與之交互。
Cannon Lake架構只有一個512位FMA單元,很可能延續到了這裡,在至強上可能會有兩個。
為了更明晰地對比Skylake、Sunny Cove的後端執行資源變化,外媒AnandTech還做了個對比表格如下:
英特爾列出的其他內核改進還有:分支預測器改進、有效載入延遲降低(得益於TLB/L1D)等等,但是英特爾也承認,這些改進不會讓每個人獲益,需要新的算法在特定代碼中使用。
另外,Sunny Cove還支持更大的內存,主內存分頁表現在是5層設計(之前是4層),支持的線性尋址空間達到57位,物理尋址空間則是52位。
這意味著,至強服務器平台理論上每顆處理器可以搭配最多4TB內存,而現在Skylake-SP架構的可擴展至強只有1.5TB,AMD霄龍也不過2TB。
事實上,Sunny Cove是自從AMD 2003年引入x86-64 64位架構以來,第一個對x64虛擬內存尋址做出重大變革的架構。
這十幾年來,雖然虛擬內存尋址都支持64位,但實際上只有前48位有用,後邊的16位只是前邊簡單的拷貝而已,這就將虛擬尋址空間限制在256TB。
這些虛擬內存通過分頁表映射到物理內存,使得物理內存內存尋址也被限制在48位,導致整個系統的最大物理內存不能超過256TB。
現在,Sunny Cove將有效的虛擬內存尋址擴展到了57位,物理尋址則是最多52位,結果就是虛擬內存、物理內存最多分別可以支持到128PB、4PB。
根據英特爾之前給出的路線圖,Ice Lake-SP家族的新一代至強將在2020年上市,屆時內存擴展能力將得到前所未有的提升。
順帶說,在安全方面,Sunny Cove支持多密鑰全內存加密、用戶模式指令預防。
至於Sunny Cove前端部分的變化,我們期待英特爾公佈更多信息。
陽光海灣充滿意境:雖然此圖中的天空不算很Sunny,但的確Cove很美