深度解析Intel初代10nm Cannon Lake處理器
對前沿半導體感興趣的人都知道,Intel最新的製造工藝已經跳票許久了。10nm工藝首次發布是在2014年,最初定於2016年量產,但卻一直延期至今。雖然首批使用10nm工藝的移動處理器在2017年底出貨,卻是以“特供”筆記本電腦的形式與國內一些大學合作推出。
Intel的10nm處理器屬於第8代酷睿系列,型號是i3 8121U。該處理器的ARK頁面(Intel的在線)已經公開,其核心代號為Cannon Lake,屬於14nm Skylake核心的改良版,於2018年第二季度正式發布。
i3 8121U的TDP為15W,雙核四線程設計,基礎頻率2.2GHz,睿頻頻率3.2GHz。這比同為15W的14nm Kaby Lake處理器甚至還要更低一些。最為新奇的是,雖然這是一顆移動處理器,卻支持服務器和高端桌面平台處理器才有的AVX-512指令集,可以像企業級硬件一樣處理向量運算。
i3 8121U的頻率不進反退,讓人們對Intel 10nm工藝的實際性能表現產生了絲絲疑慮。外媒SemiAccurate的一篇研究文章中獲悉,目前(指i3 8121U推出時)Intel的10nm工藝還存在很多問題和困難,其收益只有10%,遠低於預計中的60%,其中SAQP、COAG、 Cobalt和調優等環節遠遠落後於計劃和預期。
其後的幾個月,坊間傳聞Intel 10nm工藝嚴重受阻,甚至將要放棄10nm的研發工作,也有傳聞稱Intel將降低標準以實現這一製程,但都被Intel一一闢謠。好在今年的CES上,Intel展示了10nm工藝的全新Sunny Cove架構Ice Lake處理器,算是讓關注新製程的人們吃了一顆定心丸。
雖然Ice Lake暫時還未落地,不過外媒Anandtech卻通過各種渠道,弄到了使用Cannon Lake處理器的“特供”筆記本電腦,並對其進行了詳細的測試。
10nm工藝難在哪?
2017年9月,Intel在技術與製造日上展示了一個10nm Cannon Lake芯片的完整300mm晶圓,外媒Techinsights測得該芯片的芯片面積約為70.5mm²,也就是說,i3 8121U是Intel迄今為止最小的雙核處理器,但與當時的Skylake處理器(六代酷睿)相比,i3 8121U採用了CPU和GPU分離的設計,集成度更低。
業內衡量半導體工藝好壞的常用標準之一,是芯片中每平方毫米集成度晶體管數量有關。CPU中並不都是運算晶體管,還有SRAM單元,以及一些被設計成區域間熱緩衝區的“死”矽。晶體管的計數也有不同的方法,一個2輸入的NAND邏輯單元比一個複雜的掃描觸發器邏輯單元要小得多。
Intel將單位面積上的晶體管數量劃分為2輸入NAND單元和掃描觸發器單元,其中2輸入NAND單元的晶體管密度是90.78MTr/mm²(百萬晶體管每平方毫米),掃描觸發器單元的密度為115.74 MTr/mm²,在為其賦予60/40的權重後計算出10nm工藝的晶體管密度為100.8MTr/mm²,是14nm工藝37.5MTr/mm²的2.7倍。
Intel還在國際電子器件會議上披露,具體取決於所需的功能,10nm工藝的邏輯庫有10種類型,包括短庫(高密度庫),中高庫(高性能庫)和高庫(超高性能庫)等。庫越短,電路功耗越低,晶體管密度越高,但峰值性能也越低。因此Intel的10nm工藝其實有多種不同的密度,實際上只有密度最高的短庫可以達到100.8MTr/mm²。
在實際芯片製造中,通常會混合使用多種庫,較短的庫適用於I/O和非核心區等對性能不敏感的部位以節約成本,較高的庫通過較低的密度和較高的驅動電流,通常使用在對性能敏感的核心區域。
為了更好的理解Intel 10nm工藝,首先要討論Fin(鰭)、Gate(柵極)、單元機制,以及定義與晶體管和FinFET相關的一些術語。
晶體管的源極-漏極由鰭(灰色)提供,該鰭穿過柵極(綠色)並嵌入氧化物中,這裡的關鍵指標是鰭的高度、寬度和柵長,半導體工藝的目標是使每一個都盡可能小、單元性能盡可能高。
Intel在其22nm工藝中,使用了包含多個鰭片的三柵極晶體管來增加總驅動電流,以獲得更好的性能。這就引入了一個新的度量:“鰭間距”,即鰭之間的距離。如果一個鰭通過了多個柵極,柵極之間的距離稱為“柵極距”。
鰭和柵極之間接觸的越多,鰭間距越小,洩漏就越低,性能也就越好,這可以增加驅動電流,也能控制寄生電容和柵電容。其後的14nm工藝中,鰭的高度、寬度和柵長都變得更短,每個鰭穿過的柵極也更多,因而獲得了更好的性能。
而到了10nm工藝,Intel也在積極設計鰭結構,鰭間距從42nm縮減到34nm,鰭寬度從8nm縮減至7nm以避免寄生電容。改動看起來並不多,但在這個尺度上每nm都非常重要。Intel還通過添加共形鈦層來改善源極和漏極擴散區域,鰭和溝槽之間的接觸區域(柵極下方的灰色尖頭)也需要讓接觸電阻最小化。在10nm工藝中,Intel將其從鎢接觸改為鈷接觸,使接觸線電阻降低了60%,種種這些改進,讓技術變得極其具有挑戰性。
鰭與柵極組合起來就是基本的電路單元,從22nm製程的掃描電子顯微鏡的圖像來看,單元有6片鰭的和2片鰭的(當然也有其他規格的),柵極長度不盡相同,每個單元內都有活躍的鰭傳遞電流和非活躍的鰭作為間隔。
在10nm工藝上,使用高密度庫的單元總共有8個鰭,其中5個是活動鰭,這些單元可用於I/O等不需要很高性能或對成本敏感的電路部分。高性能庫和超高性能庫則分別有10個和12個鰭,各自相比前者多出一個額外的P鰭和N鰭,有助於提供額外的驅動電流,以適當的效率犧牲來換取峰值性能的提升。
在單元之間,通常會有許多作為間隔物的偽柵極。在Intel 14nm工藝中,每個單元的兩端都有一個偽柵極,這意味著兩個單元之間會有兩個偽柵極。而在10nm工藝中,兩個相鄰的單元可以共享一個偽柵極,這將帶來更大的密度優勢,Intel表示最多可節約20%芯片面積。
晶體管內部,柵極通常靠兩支長度略微超出單元尺寸的觸點給源極和漏極加電,這不可避免的要佔據額外的平面尺寸。在10nm工藝中,至少在目前Cannon Lake處理器使用的版本中,Intel通過一種被稱為“有源柵極接觸”(COAG)的設計,將柵極觸點垂直放置在單元上。這一設計為製造過程增加了好幾個步驟(一次蝕刻、一次沉積和一次拋光),但可以為芯片提供大約10%的面積縮放。
前文已經言道,外媒SemiAccurate上的一篇研究文章曾表示,COAG是一種風險較高的實施方案,雖然Intel已經把它造出來並且正常工作了,但它並不像預期的那樣可靠。用於Cannon Lake核心的COAG似乎只能運行在低性能&低功率,或高性能&高功率的工況下,希望未來Intel能在新一代10nm Ice Lake處理器正式發售時詳細說明關於COAG的改進情況。
回到晶體管密度上,衡量晶體管密度的另一種方法是CPP*MMP,即將柵間距(接觸多晶矽間距Contact Poly Pitch)乘以鰭間距(最小金屬間距)。種種這些改進加在一起,使Intel的CPP*MMP尺寸只有54nm*44nm,相比台積電和三星的7nm也只是略輸一點點,這也是Intel一直強調前兩者只是商業命名的原因。
揭開架構之秘
雖然i3 8121U的Cannon Lake核心仍處於NDA中,但經過科技圈眾多同仁一年以來孜孜不倦的研究,終於還是基本揭開了其架構的面紗。
整體而言,Cannon Lake核心的設計很像是PC端Skylake核心與服務器端Skylake-SP核心的混合體。雖然它使用了PC端標準的4+1解碼單元、8個執行單元以及L1+L2+L3緩存結構,但也從服務器端引入了一個AVX-512單元,並且L1數據緩存的讀寫速度分別達到了每週期2*512Byte和1*512Byte。
進一步來看,Cannon Lake核心也體現了一小部分第二代10nm Sunny Cove架構的設計,一些Skylake和Skylake-SP核心上沒有的指令,在Cannon Lake和Sunny Cove上都有存在。
除此之外,雖然目前不太清楚Cannon Lake核心的架構前端設計變化,但還是可以看出重排序緩衝區的大小是與Skylake核心相同的224條微指令,而Sunny Cove架構的大部分特性改進(存儲帶寬加倍、執行端口更多以及執行端口功能改進)都沒有出現在Cannon Lake核心上。
Cannon Lake支持的新指令包括IFMA(Integer fusion Multiply Add,整數融合乘加法)、VBMI(Vector Byte operation instructions,矢量字節操作指令),以及基於硬件的SHA(Secure Hash Algorithm,安全哈希算法)等。
其中,IFMA是52位整數融合乘法加法(FMA),其行為與AVX512浮點FMA相同,延遲為4個時鐘週期,每個時鐘週期的吞吐量為2(對於xmm/ymm/zmm為4和1 )。該指令通常被用於輔助加密功能,但也意味著可以執行任意精度的算術運算。
VBMI指令集提供了VPERMB、VPERMI2B、VPERMT2B和VPMULTISHIFTQB四條指令,在字節混洗方案中非常有用。
而硬件加速SHA則純粹是為加密算法加速而設計的,不過測試表明,Cannon Lake核心有了它後速度仍然比Goldmont(下代Atom處理器的核心)和AMD的Zen都慢,這意味著起碼基於硬件的SHA在i3 8121U上並不是特別有用。
除了增加新指令,Intel通常還會在新核心上改進現有的指令,用於增加吞吐量或減少延遲(或兩者兼而有之)。Cannon Lake核心還支持Vector-AES特性,它允許AES指令一次使用更多的AVX-512單元從而使吞吐量倍增。
在Cannon Lake核心上,最大的變化是可以硬件支持64位整數除法,不再需要分割成幾條指令,18個時鐘週期內就可以完成64bit的IDIV。相比之下,Zen執行同樣的運算需要45個時鐘週期,Skylake核心則需要97時鐘週期。
對於字符串的塊存儲,所有REP STOS*系列指令都可以使用512bit執行寫入端口,吞吐量為每時鐘週期61bit,相比之下,Skylake-SP為43bit,Skylake為31bit,Zen為14bit。
對於全字整數矢量,AVX512BW命令VPERMW的等待時間從6個時鐘週期減小到4個,並且每個時鐘的吞吐量增加一倍。與向量類似,使用VMOVSS和VMOVSD命令移動或合併單/雙精度標量的向量現在與其他MOV命令的行為相同。
對指令集的其他有益調整包括使ZMM劃分和平方根更快一個時鐘,並將一些GATHER函數的吞吐量從每四個時鐘一個增加到每三個時鐘一個;回歸則以舊x87指令的形式出現,其中x87 DIV、SQRT、REP CMPS、LFENCE和MFENCE都變慢一了個時鐘,其他指令則慢的更多,目的是讓人們棄用這些老舊的指令。
Cannon Lake核心相對不足的地方包括:VPCONFLICT*命令具有3個時鐘週期的延遲,吞吐量為每時鐘週期一條,速度仍然很慢;DWORD ZMM表單的延遲為26個時鐘,吞吐量為每20個時鐘1個;不支持Skylake-SP核心的緩存行寫回功能CLWB;不支持SGX(軟件保護擴展)。
處理器規格對比
在i3 8121U的測試中,使用i3 8130U移動處理器作為對比,這是一款Kaby Lake核心的雙核四線程處理器,使用14nm工藝製造,TDP同樣為15W,基礎頻率與i3 8121U相同,睿頻頻率則反而要稍高一些。
對於這種15W TDP的移動處理器,會很容易撞上溫度牆導致降頻。測試中i3 8121U降頻非常頻繁,在AVX2應用中乾脆是運行在2.2GHz的基準頻率狀態,AVX-512應用中甚至會降頻至基準線以下的1.8GHz。
相比之下,使用14nm成熟工藝的i3 8130U在AVX2應用中仍能維持2.8GHz的頻率,比如在POV-Ray測試項中,i3 8130U可以更快的完成測試,性能相比i3 8121U高出26 %。
不過儘管i3 8121U在運行AVX-512應用時頻率很低,但先進的指令集仍然帶來了出色的性能,在3DPM測試中,開啟AVX-512指令集的i3 8121U在1.8GHz下成績為3846分,6倍於2.8GHz但只支持AVX2指令集的i3 8130U。
內存性能和功耗測試
在緩存/內存延遲測試中,i3 8121U和i3 8130U處理器都禁用了睿頻,迫使它們以相同的2.2 GHz頻率運行,以便進行奇偶性和直接的架構比較。Cannon Lake核心的緩存/內存子系統與Skylake核心相同的,沒有任何其他改進,理論上表現出的性能也應該基本相同。
在這項測試中,兩顆處理器的緩存訪問延遲幾乎相同,但Cannon Lake核心的i3 8121U的內存訪問延遲要高出Kaby Lake核心的i3 8130U多達50%,一上來就震驚了四座(當然這不是啥好事)。
儘管為i3 8121U配套的DDR4 2400內存時序17-17-17,略輸於i3 8130U的16-16-16 -16,但這一丟丟時序差異遠不足以有如此大的影響,能想到的唯一原因是,Cannon Lake核心訪問內存控制器有非常大的額外開銷,這或許就是封堵了幽靈和熔斷漏洞的副作用。
而功耗方面比較撲朔迷離,我們知道,Intel在處理器硬件中設置了兩個關鍵的功耗限制——PL1和PL2,前者控制穩態功耗,後者控制短時間睿頻功耗。
在大多數情況下,處理器的穩態功耗和TDP相同,如i3 8130U就是這樣,處理器的穩態功耗為15W,然而同為15W TDP的i3 8121U的穩態功耗僅為12.6W 。由PL2控制的峰值功耗也是同樣,i3 8130U的峰值功耗可以達到24.2 W,而i3 8121U最高只能衝到18.7W,且睿頻的持續時間也要比i3 8130U短很多。
糟心的是,雖然i3 8121U的功耗牆更低,但由於其頻率更低性能更差,實際執行運算所消耗的能量反而更多。在POV-Ray測試項中,Kaby Lake核心的i3 8130U的總耗能只有768 mWh,而Cannon Lake核心的i3 8121U的總耗能為867mWh,足足高了12.9%。
2.2GHz同頻測試:SPEC2006
除了功耗,關於Cannon Lake核心的另一個問題在於它是否是一個高效的架構設計。為了進行直接的IPC比較,我們將兩顆處理器固定住2.2 GHz同頻率上運行SPEC2006 測試。
SPEC2006是一個重要的基準測試軟件,它與其他測試軟件的區別在於所處理的數據集更大更複雜。作為基準測試更有代表性,它可以充分展示架構的更多細節。
從測試結果來看,兩款不同核心的處理器性能相差無幾,Kaby Lake核心的i3 8130U在與SIMD相關的462.libquantum和470.lbm測試項中似乎比Cannon Lake核心的i3 8121U更有優勢,這也許與二者內存延遲性能有關。
2.2GHz同頻測試:系統綜合性能
系統測試部分重點關注實際用戶體驗,將包括應用加載時間、圖像處理、簡單科學物理、仿真、神經仿真、優化計算和3D模型等測試項。
GIMP應用加載時間
系統響應速度是最關乎用戶體驗的指標,一個很好的測試用例是看應用加載需要多長時間。在這一測試中,Cannon Lake核心的i3 8121U表現的特別好。
FCAT圖像處理
FCAT軟件採用錄製的,並將顏色數據處理成幀時間數據,以便系統可以繪製可視化的幀率。
這一測試是單線程的,在基準頻率下,Cannon Lake核心的i3 8121U與Kaby Lake核心的i3 8130U耗時差距在半秒之內,i3 8121U略微領先。
3DPM粒子運動計算
3DPM測試是一個定制的基準測試,旨在模擬3D空間中六個點的不同粒子運動算法。算法的一個關鍵部分是使用了相對快速的隨機數生成,最終在代碼中實現依賴鏈。在這一測試中,我們在六種算法上運行一個原子粒子集,每次20秒,暫停10秒,並報告粒子移動的總速率,以每秒數百萬次運動為單位。
在不啟動AVX,Cannon Lake核心的i3 8121U敗給了Kaby Lake核心的i3 8130U。但各自啟動AVX後,i3 8121U竟然跑出了4519的超高分,甚至擊敗了4185分的18核Core i9 7980XE處理器,非常瘋狂。
Dolphin 5.0模擬器
Dolphin 5.0是一款GameCube/Wii主機模擬器,可以在PC上玩到這些老款遊戲主機的獨占大作。不過,模擬這兩台使用Power架構處理器的主機通常需要一顆不弱的處理器才行。
在這一測試中,兩款處理器的同頻性能大致相同。
DigiCortex海蛞蝓大腦模擬
DigiCortex基準測試最初設計用於神經元和突觸活動的模擬和可視化,該軟件具有多種基準模式,本次使用小基準測試,模擬32000個神經元和18億個突觸,規模相當於海蛞蝓的大腦。
模擬類型分為“非激發”和“激發”兩種模式,前者受內存影響更大,後者更依賴純粹的處理器性能。測試中使用了後者,兩款處理器的同頻性能大致相同。
y-Cruncher科學計算
y-Cruncher是一款幫助計算各種數學常數的工具,軟件支持通過二進制、單線程和多線程等不同優化方式運行,甚至包括AVX-512優化的二進製文件。本次測試基於單線程和多線程方式,計算2.5億位圓周率。
測試結果不出意外是Cannon Lake核心的i3 8121U獲勝,到目前為止,所有可以利用AVX-512指令集的軟件都是i3 8121U獲勝。
Agisoft Photoscan 2D圖像轉3D模型
PhotoScan可以將許多2D圖像轉換為3D模型,這是模型開發和歸檔中的一個重要工具,依賴於許多單線程和多線程算法。
測試使用了PhotoScan v1.3.3版本,其中包含了84 x 1800萬像素的大數據集,通過一個相當快速的算法變體,最後對比轉換過程總時間。
在這一測試中,兩款處理器的同頻性能大致相同。
2.2GHz同頻測試:渲染性能
渲染性能通常是處理器在專業環境下的關鍵指標,從3D渲染到光柵化,涵蓋網格、紋理、碰撞、鋸齒、物理等方面。大多數渲染器都支持CPU渲染,少數可以支持GPU或FPGA和ASIC等專用芯片。對於大型工作室來說,CPU仍然是首選的硬件。
Corona 1.3渲染
Corona是3DS Max和Cinema 4D等軟件的高級性能渲染器,基準測試的GUI可顯示正在構建的場景,並將渲染時間反饋給用戶。
本次測試使用了直接輸出結果的命令行版本,輸出的結果也不是報告時間,而是報告六次運行中每秒的平均光線數,因為單位時間內的性能比例通常更容易理解。
Corona只支持到AVX2指令集,無法充分發揮Cannon Lake 核心的特性。在這一測試中,i3 8121U同頻性能落後i3 8130U約10%。
Blender 3D創作軟件
Blender是一個開源的高級渲染工具,支持大量可配置項,被世界上許多知名的動畫工作室所使用。該軟件的開發小組最近發布了一個基準測試包,本次測試通過命令行運行該套件中的“bmw27”場景子測試,並測量完成渲染的時間。
Blender同樣只支持到AVX2指令集,在這一測試中,兩款處理器的同頻性能大致相同,Cannon Lake 核心的i3 8121U有微弱優勢。
LuxMark引擎
使用LuxRender引擎開發的基準測試提供了幾個不同的場景和API,本次測試選擇在C ++和OpenCL代碼路徑上運行簡單的“Ball”場景,以粗略渲染開始,並在兩分鐘內慢慢提高質量,最終結果以每秒渲染的光線數展示。
POV-Ray光線追踪
Persistence of Vision光線追踪引擎是另一個眾所周知的基準測試工具,在AMD發布Ryzen處理器之前一直默默無聞,而後Intel和AMD都開始向開源項目的主要分支提交代碼。
本次測試使用從命令行調用所有內核的內置基準。
2.2GHz同頻測試:辦公性能
Office測試套件旨在專注於更多行業標準,如辦工流程和系統會議等,但是我們也將編譯器性能捆綁在本節中。對於必須對硬件進行總體評估的用戶來說,這些通常是最需要考慮的基準測試。
3DMark物理計算
遊戲測試軟件3DMark的每個測試場景均包括一個物理測試子項。按複雜程度排列的依次為Ice Storm、Cloud Gate、Sky Diver、Fire Strike和Time Spy。
在所有測試場景中,兩款處理器的同頻性能都大致相同。
GeekBench 4
GeekBench 4是常用的跨平台測試工具,重點尋求峰值吞吐量的一系列算法,包括加密、壓縮、快速傅里葉變換、存儲器操作、n體物理、矩陣運算、直方圖處理和HTML解析等,常用於移動設備測試。
考慮到其通用性和流行程度,本次也加入了這款軟件的單線程和多線程測試。
2.2GHz同頻測試:編碼性能
隨著流媒體和短視頻內容的興起,越來越多的家庭用戶和遊戲玩家需要將視頻文件進行轉換,處理器的編碼和轉碼性能變得越來越重要,本次編碼測試也主要圍繞這些重要的場景進行。
Handbrake視頻轉碼
Handbrake是一種流行的開源視頻轉換軟件,最新的版本可利用AVX-512和OpenCL來加速某些類型的轉碼和算法。本次測試使用的CPU轉碼。
7-Zip壓縮解壓
在壓縮/解壓應用中,開源的7-Zip是很歡迎的工具之一。本次猜測是使用最新的v18.05版本,它內置有基準測試,從命令行運行基準測試,報告壓縮、解壓縮和綜合得分。
WinRAR壓縮解壓
在大多數人的系統中通常都有WinRAR,它是20多年前的第一批壓縮解壓工具之一。它沒有內置基準測試,本次使用一個包含超過30個60秒視頻文件和2000個零碎小文件的文件夾,以正常壓縮率運行壓縮。
WinRAR是可變線程的,但也容易受到緩存的影響,因此測試需運行它10次並取最後五次的平均值,使結果可以展示CPU純粹的原始計算性能。
AES加密
許多移動設備默認使用的文件系統都提供了加密功能以保護內容,PC上的Windows也有,通常由BitLocker或第三方軟件應用。本次使用已停產的TrueCrypt作為其內置基準測試,可直接在內存中測試多種加密算法,支持AES指令集但不支持AVX-512。測試採用的數據是AES加密/解密組合,以每秒千兆字節為單位。
Intel在10nm工藝上確實進行了很多改進,如果每一步都能完美運行,那麼10nm應該在去年就成了。可問題是在半導體設計中,有幾百個不同的特性,改動任何一個都可能會導致其他幾個甚至幾十個特性變差,這正是Intel在10nm工藝方面遇到的最大問題。
仍記得2018年的CES上,Intel對10nm工藝相關的問題緘口不言,從這曇花一現的Cannon Lake核心來看,唯一稱得上亮眼的表現只有AVX-512性能,很明顯第一代10nm還遠遠沒有準備好邁入黃金時段,Intel是在試圖冷處理這一代處理器,也肯定不會正式公開發售它們。
在Intel給出的這張圖中,右側顯示10nm工藝及其改型可依靠較低的動態電容擁有較低的功率,然而數軸的左側則顯示10nm和10nm+工藝的單個晶體管性能其實還要低於當前的14nm++工藝,要到下下下一代的10nm++工藝才能真正實現全面領先,而從i3 8121U的表現來看,很大概率上也意味著在第三代10nm++工藝實施之前,業界很可能都無法看到真正突破性的10nm處理器(一竿子支到三零零零年了……)。
預計將在今年下半年問世的Ice Lake處理器會使用第二代10nm+工藝,電氣性能將非常接近14nm++工藝,或許那時Intel在10nm工藝上打響真正的第一炮吧。