過去的幾年里,蘋果的芯片設(shè)計(jì)團(tuán)隊(duì)一直在架構(gòu)設(shè)計(jì)和制造工藝兩條路線上穩(wěn)居業(yè)界最前沿,此番隨新一代iPhone XS一齊亮相的A12處理器同樣保持了這份優(yōu)良傳統(tǒng),它是業(yè)界第一個(gè)實(shí)現(xiàn)量產(chǎn)應(yīng)用的7nm移動(dòng)SoC芯片。
一般來說制程的數(shù)字越小,晶體管的Metal Pitch和Gate Pitch等特征尺寸就越小。雖然最近幾年制程的命名逐漸脫離了與實(shí)際物理尺寸之間的關(guān)聯(lián)而轉(zhuǎn)向商業(yè)化名稱,但它們?nèi)匀淮碇w管密度的飛躍,供應(yīng)商能夠在相同的芯片面積中塞入更多晶體管以提升性能。
不久前,外媒TechInsights對(duì)iPhone XS進(jìn)行了拆解并為A12芯片進(jìn)行了X光掃描,我們可以借由他們分享的透視圖對(duì)A12進(jìn)行一波深入的分析和猜想。
A12的主要性能模塊均位于芯片的右方和下方,其中最右側(cè)是占地面積最大的GPU集群,4顆核心2*2對(duì)稱排列,將一小塊公用電路夾在中間。左側(cè)緊挨著GPU集群中腰的是CPU和GPU的共享緩存(L3緩存),下方是低功耗CPU核心集群,左方是的高性能CPU核心集群,最左邊則是8核NPU。
GPU和CPU的共享緩存是整個(gè)SoC緩存體系的一部分,層級(jí)位于內(nèi)存控制器和獨(dú)占緩存之間。由于處理器訪問內(nèi)存要消耗掉大量電力,使用片上共享緩存可以節(jié)能降耗,且由于數(shù)據(jù)的局部性,性能還會(huì)有所提升。
從圖上可以看出,A12的共享緩存被劃分成了4個(gè)區(qū)塊,而此前自A7至A11這5代處理器均為2區(qū)塊設(shè)計(jì)。緩存區(qū)塊的加倍很有可能代表著緩存性能有了很大提升,這個(gè)在稍后的測(cè)試中再見分曉。
最后, NPU可以說是此次A12中進(jìn)化幅度最大的一個(gè)性能模塊,核心數(shù)從A11的雙核激增為8核,實(shí)際性能更是從A11的0.6TOP暴漲至5TOP,提升近9倍。需要注意的是,有傳言稱此前A11的NPU使用的是CEVA的架構(gòu)設(shè)計(jì),不過直到現(xiàn)在也沒有得到證實(shí),而此次蘋果A12的網(wǎng)頁上明確提到了“Apple-designed”,這意味著這次的NPU架構(gòu)的確是出自蘋果的自主研發(fā)。
縱觀A11和A12中不同模塊的面積變化,可以清晰的看到臺(tái)積電全新7nm制程的優(yōu)勢(shì)。鑒于幾乎所有的模塊架構(gòu)都有了變化,無法計(jì)算出7nm制程的晶體管密度有多大提升,不過若以單個(gè)GPU核心作為參考,在A12中相比A11中的面積減小了37%。
此次A12的大核心代號(hào)為“Vortex(旋風(fēng))”,相比A11的“Monsoon(季風(fēng))”最大的改進(jìn)在于L1數(shù)據(jù)緩存和指令緩存雙雙翻倍,均從64KB增加到了128KB。人們一直很想搞清楚的一個(gè)問題是,蘋果處理器的緩存體系到底具有怎樣的結(jié)構(gòu),現(xiàn)在我們可以通過使用不同隊(duì)列深度測(cè)試內(nèi)存延遲來一窺端倪。
測(cè)試結(jié)果是,L1緩存的延遲拐點(diǎn)從64KB轉(zhuǎn)移到了128KB,這很正常,但在L2緩存的延遲在3MB~6MB范圍內(nèi)會(huì)一直持續(xù)增加,而這種情況僅在以完全隨機(jī)的模式訪問時(shí)發(fā)生,在較小的訪問窗口中,L2緩存的延遲從3MB到6MB又是一直平坦的。
在隊(duì)列深度超過L2緩存的容量后,Monsoon核心的延遲曲線會(huì)進(jìn)一步增加4MB左右,Vortex核心的曲線則會(huì)一直延續(xù)8MB,這便是二者的共享緩存容量范圍,再往后便進(jìn)入了內(nèi)存的領(lǐng)域。這與在芯片透視圖上實(shí)際看到的情況很相符,A12的共享緩存不僅分區(qū)數(shù)量加倍,容量也從4MB增加到了8MB。
而代號(hào)為“Tempest(暴風(fēng))”的小核心這邊情況則稍有些復(fù)雜,乍看之下可能會(huì)認(rèn)為A11中代號(hào)為“Mistral(干冷的北風(fēng))”的小核心只有512KB L2緩存而A12則有1.5MB,但實(shí)際上這只是緩存電源管理策略造成的假象。通過延遲圖表可以看出,Mistral核心在768KB和1MB處存在明顯的波動(dòng),而Tempest核心的類似波動(dòng)則發(fā)生在2MB處。
綜合以上數(shù)據(jù),可以得出下表中的數(shù)據(jù):
A12的大核心L2緩存結(jié)構(gòu)相比A11沒有任何變化,兩者都有128個(gè)SRAM塊,每個(gè)SRAM塊大小為48KB。而A12的小核心L2緩存容量翻倍,意味著SRAM塊數(shù)從16個(gè)增加到了32個(gè)。
不過,蘋果在A11和A12上使用的緩存電源管理策略允許在數(shù)據(jù)粒度較小時(shí)只激活部分緩存電路,在A11上這個(gè)粒度應(yīng)該是256KB,而在A12上這個(gè)粒度應(yīng)該是512KB。這也讓我們更加有理由認(rèn)為A11的小核心L2緩存容量是1MB,A12則是2MB,這也意味著每個(gè)SRAM塊大小為64KB。
然而再回過頭看大核心,雖然我們之前認(rèn)為其容量為6MB,不過仔細(xì)觀察可以發(fā)現(xiàn)其曲線在8MB處有一些變化。曲線的變化預(yù)示著測(cè)試數(shù)據(jù)的尺寸正在接近緩存容量的邊界,這使我們猜測(cè)A11和A12的大核心實(shí)際上有8MB L2緩存。
總而言之,蘋果處理器的緩存方面毫不吝惜晶體管的使用,A12在這方面則更進(jìn)一步,整顆SoC上的各級(jí)緩存超過了16MB,這樣不惜血本的規(guī)模真的足以讓高通三星等公司同時(shí)期的旗艦產(chǎn)品無比汗顏。
在GPU方面,業(yè)界普遍對(duì)A12有著很高的期望,不僅僅是在性能方面,同樣也在架構(gòu)方面。
去年,Imagination發(fā)布了一份新聞稿,稱蘋果計(jì)劃在未來15~24個(gè)月內(nèi)不再在新產(chǎn)品中使用其知識(shí)產(chǎn)權(quán)。
撇去Imagination股票價(jià)格的崩潰以及隨后賣身的命運(yùn)不談,盡管蘋果確實(shí)聲稱A11的GPU為自主設(shè)計(jì),但它看起來仍然像是從Imagination的Rogue架構(gòu)衍生而來,依然是基于TBDR(Tile Base Deffered Rendering,Imagination的專利渲染技術(shù)),只不過A11 GPU一顆核心的規(guī)模就相當(dāng)于A10的兩顆而已。
而A12代號(hào)為“G11P”的GPU仍然與A11的GPU有著非常明顯的相似之處,各個(gè)功能塊似乎都位于相同的位置并以類似的方式構(gòu)造。蘋果表示A12 GPU最大的進(jìn)步是支持顯存壓縮,而這也就意味著蘋果此前使用的GPU都不支持顯存壓縮(喵喵喵???),以及顯存壓縮可以顯著提升GPU性能。
所謂顯存壓縮,指的是從GPU到顯存的透明幀緩沖區(qū)壓縮。PC端像NVIDIA和AMD這樣的廠商已經(jīng)應(yīng)用這一技術(shù)N多年了,即使在內(nèi)存帶寬沒有增加的情況下,它也能提高GPU的性能。移動(dòng)SoC的GPU也需要內(nèi)存壓縮,這是因?yàn)橐苿?dòng)SoC的帶寬相比桌面級(jí)GPU更加有限。
Arm的AFBC是移動(dòng)領(lǐng)域最公開談?wù)摰娘@存壓縮方案,高通和Imagination等其他廠商也都有自己的顯存壓縮技術(shù)。相比之下蘋果在A12上剛剛引入這一功能似乎太晚了,不過這也意味著A12將從中獲得效率和性能上的顯著提升。
在談及Vortex核心之前,首先需要了解一下蘋果新SoC的頻率。在過去幾代中,蘋果一直在穩(wěn)步提高其大核心的頻率,同時(shí)也提升了微架構(gòu)的IPC。下表是A12和A11的頻率表:
A11和A12在單大核心滿載時(shí)的最高頻率分別為2380MHz和2500MHz;雙大核心滿載頻率分別為2325MHz和2380MHz。而在小核心加入工作后,A12的大核心頻率仍被設(shè)計(jì)為穩(wěn)定在2380MHz,而A11則會(huì)進(jìn)一步下調(diào)至2083MHz。
與愈發(fā)激進(jìn)的大核心相比,A12的小核心部分則更顯保守。在只啟動(dòng)一顆小核心時(shí),A11的頻率為1694MHz,而A12則為1587MHz;啟動(dòng)兩顆和三顆時(shí)A11為1587MHz,A12為1562MHz;而在四顆小核心滿載時(shí),A11仍能保持在1587MHz,而A12則進(jìn)一步降至1538MHz。
正如之前所提到的,蘋果在A12的緩存結(jié)構(gòu)和內(nèi)存子系統(tǒng)上投入了大量的工作。回到線性延遲圖上,我們看到以下針對(duì)大核和小核的完全隨機(jī)延遲的行為:
大核心方面,與A11的Monsoon核心相比,A12的Vortex核心僅有5%頻率提升,但L2緩存的絕對(duì)延遲從約11.5ns降至約8.8ns,降幅高達(dá)29%,這意味著Vortex核心的L2緩存可以在更短的時(shí)間內(nèi)完成讀寫訪問。
小核心方面,A12的Tempest核心與A11的Mistral核心延遲表現(xiàn)相似,但A12在L2分區(qū)和電源管理方面又有了很大的變化,允許訪問更大的L2物理區(qū)塊。
這里只進(jìn)行了64MB隊(duì)列深度的測(cè)試,顯然延遲曲線在這個(gè)數(shù)據(jù)集中并沒有變得平緩,但可以看出內(nèi)存延遲已經(jīng)有所改善。當(dāng)小核心處于活動(dòng)狀態(tài)時(shí),內(nèi)存控制器DVFS的最大頻率會(huì)提高,這也是Tempest核心的內(nèi)存訪問存在較大的差異的原因:當(dāng)大核心上有高負(fù)載時(shí),它們的性能會(huì)更好。
A12的共享緩存也發(fā)生了巨大的變化,雖然緩存帶寬相比A11有所降低,但訪問延遲得到了很大改善。
由于蘋果并沒有像Arm和三星一樣公布其架構(gòu)設(shè)計(jì),為了比較Vortex核心的后端特性,我們測(cè)試了A12的指令吞吐量,其中后端的性能由其執(zhí)行單元的數(shù)量決定,延遲由其設(shè)計(jì)質(zhì)量決定。
Vortex核心與Monsoon核心看起來非常相似,整數(shù)除法和浮點(diǎn)除法的執(zhí)行延遲都減少了2個(gè)周期,浮點(diǎn)吞吐量則是翻了一倍。
從架構(gòu)的中端和后端來看,Monsoon核心是一次重要的更新。此前A10處理器的大核心代號(hào)為“Hurricane(颶風(fēng))”,其解碼寬度為6,而Monsoon核心解碼寬度增加至7,同時(shí)后端的整數(shù)ALU單元也從4個(gè)增加到了6個(gè)。
Monsoon核心和Vortex核心均有6個(gè)整數(shù)執(zhí)行單元(包括2個(gè)復(fù)雜單元)、2個(gè)加載/存儲(chǔ)單元、2個(gè)分支端口和3個(gè)浮點(diǎn)/矢量流水線,這樣寬裕的后端執(zhí)行單元規(guī)模遠(yuǎn)遠(yuǎn)超過三星M3和Arm即將推出的Cortex A76。
事實(shí)上,如果沒有非典型的共享端口情況的話,完全可以說蘋果的微架構(gòu)在后端單元方面遠(yuǎn)遠(yuǎn)超過其他任何處理器架構(gòu),包括桌面CPU。
SPEC2006是一個(gè)重要的基準(zhǔn)測(cè)試軟件,它與其他測(cè)試軟件的區(qū)別在于所處理的數(shù)據(jù)集更大更復(fù)雜。雖然GeekBench 4已經(jīng)成為行業(yè)中的熱門,但它的測(cè)試項(xiàng)目較小,工作負(fù)載也較輕。因此使用SPEC2006作為基準(zhǔn)測(cè)試更有代表性,它可以充分展示微架構(gòu)的更多細(xì)節(jié),特別是在內(nèi)存子系統(tǒng)性能方面。
性能測(cè)試在一個(gè)散熱良好的環(huán)境中進(jìn)行,可以保證在1~2小時(shí)內(nèi)完整運(yùn)行測(cè)試套件不會(huì)出現(xiàn)問題。
在左側(cè)軸上,條形圖表示給定工作負(fù)載下的電能消耗情況,越長(zhǎng)的條形意味著消耗的電能越多。條形上的文字標(biāo)注顯示的是消耗電能的具體數(shù)值(單位為焦),以及測(cè)試期間的平均功耗(單位為瓦)。
在大多數(shù)工作負(fù)載下,A12的大核心頻率比A11高5%,但實(shí)際上頻率并不是鎖死的,因而在SPECint2006中,A12的表現(xiàn)平均比A11好24%。
其中增幅最小的是456.hmmer和464.h264ref這兩項(xiàng)測(cè)試,這也是SPECint2006套件中成為瓶頸最多的測(cè)試。由于A12架構(gòu)方面似乎沒有真正的重大變化,小幅增長(zhǎng)主要?dú)w功于更高的頻率以及緩存結(jié)構(gòu)的改進(jìn)。
而在445.gobmk測(cè)試項(xiàng)上A12的改進(jìn)則非常大,相比A11增幅為27%。這項(xiàng)測(cè)試的負(fù)載特征是存儲(chǔ)地址事件中的瓶頸以及分支錯(cuò)誤預(yù)測(cè)。
429.mcf、471.omnetpp、473.Astar、483.xalancbmk以及部分403.gcc測(cè)試項(xiàng)對(duì)內(nèi)存子系統(tǒng)很敏感,A12在這幾項(xiàng)上取得了30%~42%不等的性能提升,顯然新的緩存結(jié)構(gòu)和內(nèi)存子系統(tǒng)在這方面取得了很大的成效。
在能耗比方面,A12相比A11平均提升了12%,但需要注意的是,這里的能耗比指的是最高性能時(shí)的功耗降低了12%,而A12展示出性能相比A11提高了24%,兩個(gè)SoC的性能功耗曲線已經(jīng)大不相同。
不過,盡管7nm制程可以降低能耗,但在性能提升幅度最大的基準(zhǔn)測(cè)試中,A12的功耗相比A11不降反升,平均功率從3.36瓦增加到了3.64瓦。也就是說,A12花在提升性能上的功耗,要比7nm制程降低的功耗更多一些。
接下來是SPECfp2006測(cè)試,由于XCode中沒有Fortran編譯器且它不是NDK的一部分,要讓它在Android上工作非常復(fù)雜,因此我們選擇C和C++基準(zhǔn)測(cè)試。
SPECfp2006有更多的內(nèi)存密集型測(cè)試,在7次測(cè)試中,只有444.namd、447.dealII和453.povray在內(nèi)存子系統(tǒng)達(dá)不到標(biāo)準(zhǔn)時(shí)才會(huì)看到主要的性能回歸。這對(duì)A12很有利,其在SPECfp的平均性能增幅為28%,提升最大的433.milc一項(xiàng)甚至提升了75%。同樣的分析適用于450.soplex,優(yōu)秀的緩存結(jié)構(gòu)和內(nèi)存性能帶來了40%的性能提升。
而470.lbm是一項(xiàng)有趣的測(cè)試,它展示了蘋果的架構(gòu)與Arm和Samsung比起來有哪些性能優(yōu)勢(shì)。470.lbm的特點(diǎn)最代碼中有大量循環(huán),要求架構(gòu)中有更大的指令循環(huán)緩沖區(qū)來優(yōu)化這樣的工作負(fù)載,在循環(huán)迭代中,核心將繞過decode階段并從緩沖區(qū)獲取指令。看起來蘋果的架構(gòu)恰好有某種類似的機(jī)制,也有可能是蘋果處理器內(nèi)核的矢量執(zhí)行性能Lbm的熱循環(huán)大量使用SIMD,而高達(dá)3倍的執(zhí)行吞吐量?jī)?yōu)勢(shì)最終產(chǎn)生了優(yōu)秀的性能。
(高通的Kryo架構(gòu)由于獨(dú)特的設(shè)計(jì)使驍龍820在這一項(xiàng)上的表現(xiàn)仍優(yōu)于最近的安卓陣營(yíng)處理器。)
與SPECint測(cè)試類似,A12在SPECfp測(cè)試中的能耗比有明顯提升,在所有測(cè)試中總能量比A11低10%。另一方面A12的功耗也有所增加,平均功耗從3.65瓦上升至4.27瓦,其中433.milc項(xiàng)目的功耗從2.7瓦增至4.2瓦,增加了75%;482.sphinx3項(xiàng)目的功耗則達(dá)到了A12所有SPEC測(cè)試項(xiàng)中的最大值5.35瓦。
總體而言,蘋果在Vortex核心和內(nèi)存子系統(tǒng)方面的改進(jìn),使A12的實(shí)際性能比宣傳中的還要強(qiáng)。與目前最強(qiáng)的安卓陣營(yíng)SoC相比,A12無論在性能上還是在能耗比上都有將近2倍的壓倒性優(yōu)勢(shì),而如果是在正常使用條件下A12的優(yōu)勢(shì)可能還會(huì)更大。
這也讓我們對(duì)今年發(fā)布的三星M3 架構(gòu)有了更好的認(rèn)知,即只有當(dāng)功耗在可控范圍內(nèi)時(shí),更高的功耗才能帶來更高的性能(Exynos 9810的功耗是蘋果上代A11的2倍,但其性能卻只有A11的一半)。
GPU的性能提升是此次A12的最大亮點(diǎn)之一,通過 “簡(jiǎn)單的”將GPU從3核擴(kuò)充為4核,以及引入顯存壓縮技術(shù),蘋果表示A12的GPU性能相比A11提升了50%。
在進(jìn)入基準(zhǔn)測(cè)試之前必須要知道的是,在最近兩三年里,蘋果開始注重注重峰值性能而忽視長(zhǎng)時(shí)間運(yùn)行時(shí)的穩(wěn)定性能,使用中常常出現(xiàn)過熱降頻導(dǎo)致性能下降。因此蘋果最新GPU的峰值性能和峰值功耗是一個(gè)必須關(guān)注的大問題。
在3DMark物理測(cè)試中,iPhone XS和A12相比去年的iPhone X取得了很大的進(jìn)步。3DMark物理測(cè)試此前一直對(duì)蘋果的處理器不夠友好,這個(gè)境遇在A11上才得到了一定的緩解。A12整體上再次提高了SoC的性能和能耗比,最終在本次測(cè)試中勝過了驍龍845。
在3DMark測(cè)試的圖形部分,iPhone XS的持續(xù)性能比去年的iPhone X提高了41%,不過一加6更加奔放的功耗和溫度限制讓其性能仍然更勝一籌。
不過就性能峰值而言,iPhone XS在3DMark測(cè)試中遇到了大問題,如果測(cè)試時(shí)手機(jī)的溫度比較低,就會(huì)很快在測(cè)試中崩潰。監(jiān)控顯示在低溫時(shí)處理器的頻率很高,平臺(tái)瞬時(shí)峰值功耗可達(dá)約7.5瓦,系統(tǒng)無法提供足夠的瞬態(tài)電流,會(huì)引起電壓下降,甚至損壞GPU。
除了3DMARK之外,Kishonti的GFXBench多年來一直是行業(yè)標(biāo)準(zhǔn),新的Aztec測(cè)試給我們帶來了不同的工作量。不久前Kishonti發(fā)布了GFXBench的5.0版本,這個(gè)版本建立在新的渲染引擎上運(yùn)行,并引入了High Tier和Normal Tier模式下的全新測(cè)試場(chǎng)景Aztec Ruins。新的測(cè)試更加考驗(yàn)著色性能,利用更復(fù)雜的效果來強(qiáng)調(diào)GPU的算術(shù)能力。
Normal Tier模式下的Aztec Ruins測(cè)試要求相對(duì)較低,iPhone XS的峰值性能相較于去年的iPhone X提升了51%,持續(xù)性能則提升了61%,相比一加6則提升了45%。而在High Tier模式下,iPhone XS的持續(xù)性能比iPhone X高出61%,比一加6則高出31%。
功耗方面,由于沒有時(shí)間在各種設(shè)備上測(cè)量Aztec,所以仍然依賴標(biāo)準(zhǔn)的曼哈頓3.1和T-Rex測(cè)試數(shù)據(jù)。
在曼哈頓3.1中, iPhone XS的性能比iPhone X高出75%。這里的改進(jìn)不僅要?dú)w功于增加的核心,還有顯存壓縮技術(shù)降低RAM功耗的功勞。
在環(huán)境溫度22°C時(shí),A12測(cè)試曼哈頓3.1時(shí)的峰值功耗達(dá)到6瓦。但即使在這樣的峰值功耗下,A12的效率也超過了所有其他SoC,說明蘋果對(duì)功耗的控制是非常有效的。在運(yùn)行測(cè)試3分鐘后功率回落至合理的3.79瓦,而此時(shí)處理器的能耗比僅相較峰值功耗時(shí)提升了16%,證明A12的能耗比曲線非常平坦,6瓦的峰值功耗仍在芯片本身的可控范圍之內(nèi),足見蘋果在芯片設(shè)計(jì)上的功力之強(qiáng)大。
在T-Rex測(cè)試中,iPhone XS的持續(xù)性能相比iPhone X提升了61%,而功耗與曼哈頓3.1測(cè)試時(shí)表現(xiàn)相似,峰值功耗略高于6瓦,數(shù)分鐘后降至4W以下,能耗比同樣提升不大。
那么為什么近兩三年的蘋果處理器在峰值性能和持續(xù)性能之間存在如此大的差異呢?實(shí)際上這種變化是由于日常GPU應(yīng)用場(chǎng)景的變化,以及蘋果將GPU用于非3D相關(guān)應(yīng)用的加速需求。
蘋果對(duì)API棧的垂直集成和嚴(yán)格控制意味著GPU加速成為現(xiàn)實(shí),而峰值性能是一個(gè)重要指標(biāo)。蘋果大量將GPU用于各種其他用途,例如在應(yīng)用程序中使用GPU進(jìn)行相機(jī)圖像處理的硬件加速。這些應(yīng)用場(chǎng)景均為事務(wù)性工作負(fù)載,需要較高的峰值性能以盡快處理完成。
相比之下,過去幾年里Android在GPU計(jì)算方面一直是一場(chǎng)災(zāi)難,這主要怪沒有在AOSP中支持OpenCL——這使得供應(yīng)商對(duì)OpenCL的支持非常不完善。RenderScript由于無法保證性能而從未獲得太多的關(guān)注,Android設(shè)備和SoC的碎片化意味著在第三方應(yīng)用程序基本上無法使用GPU計(jì)算。
得益于新的A12處理器,iPhone XS和XS Max展示了業(yè)界領(lǐng)先的性能和效率,并且目前是最佳的游戲移動(dòng)平臺(tái)。不過蘋果還是應(yīng)該在手機(jī)的熱量分布上做一些功課,iPhone XS一如上代iPhone X一樣熱量分布過于集中,非常影響使用體驗(yàn)。
本文來源:雷鋒網(wǎng)