自 Google 正式發(fā)布Pixel 6 和 Pixel 6 Pro 形式的最新旗艦設(shè)備以來,,已經(jīng)過去了大約兩周時(shí)間,。這兩款新 Pixel 手機(jī)無疑是自 Pixel 系列推出以來,谷歌最大的一次轉(zhuǎn)變,,它們基本上展示了設(shè)備各個(gè)方面的重大變化,。準(zhǔn)確來說,,其實(shí)除了 Pixel 名稱之外,谷歌的新旗艦與它們的前輩幾乎沒有什么共同之處,。
這些手機(jī)采用全新的顯示屏,、攝像頭系統(tǒng)、機(jī)身設(shè)計(jì)和內(nèi)部硬件,,價(jià)格看似極具競爭力,,這讓該系列手機(jī)有了一個(gè)非常好的新開端。
其中,,最大的變化之一,,也是我們的讀者最感興趣的變化之一,那就是 Pixel 6 和 Pixel 6 Pro 由谷歌自己的“Tensor”SoC 賦能,。人們對(duì)tensor究竟是一個(gè)怎樣的存在也有相當(dāng)多的困惑,。谷歌解釋說,Tensor 是谷歌尋求支持新型工作負(fù)載的旅程的開始,,用公司的話來說,,這是“標(biāo)準(zhǔn)”商用芯片解決方案根本不可能或無法實(shí)現(xiàn)的?;诠狙芯慷嗄甑臋C(jī)器學(xué)習(xí)經(jīng)驗(yàn),,谷歌打造了一款專注于 ML ,并以其為其主要差異化功能的芯片,,據(jù)說它允許 Pixel 6 手機(jī)擁有許多獨(dú)有的新獨(dú)特功能,。
今天,我們將仔細(xì)研究 TensorSoC,。這包括嘗試記錄它的確切組成,,展示市場上其他 SoC 之間的差異或相似之處,以及更好地了解Google 已將哪些類型的 IP 集成到芯片中以使其獨(dú)一無二并保證將其稱為 Google SoC,。
芯片出處
根據(jù)谷歌自己的材料,,Tensor 是由谷歌公司自主設(shè)計(jì)的一款 SoC。雖然這一切的真相會(huì)因您對(duì)“設(shè)計(jì)”的定義而不同,,但我們可以看到,,該芯片遵循 Google 和三星 LSI 之間看似密切的合作,在此過程中也模糊了傳統(tǒng)定制設(shè)計(jì)和半定制設(shè)計(jì)之間的界限,。
從最高級(jí)別開始,,我們有 SoC 的實(shí)際名稱?!肮雀鑄ensor”比較抽象,,目前官方?jīng)]有給這款芯片貼上具體的型號(hào)。因此,下一代是否會(huì)推出“Tensor 2”或其他產(chǎn)品還有待觀察,。在內(nèi)部,,Google 稱該芯片為“GS101”,雖然我在這里不完全確定 GS 代表什么,,但很可能是 Google SoC 或 Google Silicon,。很長一段時(shí)間以來,我們還聽到了“Whitechapel”的報(bào)道,,但我們不能確認(rèn),。
在硅片方面,該芯片有另一個(gè)型號(hào),,SoC的融合芯片標(biāo)識(shí)遵循三星的 Exynos命名方案,。在這里,我們發(fā)現(xiàn)芯片的 ID為“0x09845000”,,它對(duì)應(yīng)于 S5E9845(編輯:它實(shí)際上是 S5P9845),。三星最新的 LSI SoC 是 Exynos 2100,標(biāo)識(shí)為 S5E9840,。
為什么 Google SoC 會(huì)遵循 Exynos 內(nèi)部命名方案,?這就是我們可以開始看到設(shè)計(jì)的一些出處的地方。一段時(shí)間以來,,廣泛報(bào)道稱,,幾年前,三星向半定制硅設(shè)計(jì)產(chǎn)品敞開了大門,。2020年八月,,ETNews也詳細(xì)地描述三星的業(yè)務(wù)計(jì)劃,,以及它如何涉及到谷歌的芯片(以及描述思科的design win):
具體而言,,三星不是簡單地作為一個(gè)純粹的合同制造商,而是作為一個(gè)完全參與硅設(shè)計(jì)的一方,。這在很大程度上可以與 ASIC 設(shè)計(jì)服務(wù)相提并論,,除了三星也是商業(yè) SoC 供應(yīng)商和芯片制造商之外,這在行業(yè)中是非常獨(dú)特的,,因此屬于特殊情況,。
現(xiàn)在有了芯片,并且對(duì)它的特性有了開源洞察,,我們可以開始分解 Google Tensor 到底是什么:
類似的設(shè)計(jì),?
在 SoC 的基本構(gòu)建中,Google Tensor 緊跟三星的Exynos SoC 系列,。除了人們傾向于在 SoC 中談?wù)摰某R姼呒?jí)模塊(例如 CPU,、GPU、NPU 和其他主要特性)之外,還有芯片的基礎(chǔ)模塊:這些是結(jié)構(gòu)模塊和 IP,,時(shí)鐘管理架構(gòu),、電源管理架構(gòu),以及將這些部分實(shí)現(xiàn)到實(shí)際芯片中的設(shè)計(jì)方法,。在紙面上,,三星 Exynos、聯(lián)發(fā)科天璣或海思麒麟,,甚至高通驍龍(在 CPU 方面)可能在規(guī)格方面具有相似的設(shè)計(jì)——具有相同的高級(jí) IP,,例如 Cortex CPU 或 Mali GPU來自 Arm——由于底層 SoC 架構(gòu)非常不同,這些芯片最終仍會(huì)表現(xiàn)不同,。
Tensor則將其設(shè)計(jì)建立在三星在其 Exynos SoC 上使用的 IP 基礎(chǔ)上,,利用相同的時(shí)鐘管理和電源管理架構(gòu)。在 IP 層次結(jié)構(gòu)中,,我們發(fā)現(xiàn)高級(jí) IP 模塊之間的其他相似之處,,例如內(nèi)存控制器、結(jié)構(gòu) IP,、用于各種面向外部的接口的 PHYIP,,甚至更大的 IP 功能塊,例如 ISP 或媒體解碼器/編碼器,。有趣的是,,這些東西現(xiàn)在可以公開審查,并且可以在結(jié)構(gòu)方面與其他 Exynos SoC 進(jìn)行 1:1 的比較,。
這使得我們對(duì) Google 聲稱 Tensor 是他們自己的設(shè)計(jì)這一說法表示懷疑你——這在一定程度上是正確的,,但根據(jù)您對(duì)“設(shè)計(jì)”的定義以及您想要進(jìn)行的深入程度,其真實(shí)性可能會(huì)有所不同,。盡管 Tensor/GS101 建立在 Exynos 基礎(chǔ)模塊和 IP 之上——甚至可能被三星集成和流片——但 SoC的定義是在谷歌的控制之下完成,,因?yàn)檫@是他們的產(chǎn)品。雖然在 Tensor 的基礎(chǔ)和最低層塊方面與 Exynos2100 非常相似,,但在結(jié)構(gòu)和內(nèi)部互連方面,,谷歌的設(shè)計(jì)卻有所不同。這意味著各種 IP 塊如何相互交互的蜘蛛網(wǎng)(spiderweb)與三星自己的 SoC 不同,。
這方面的一個(gè)實(shí)際示例是如何將 CPU 內(nèi)核集成到 SoC 中,。雖然在 Exynos 2100 上,CPU 集群似乎非常明顯地位于更小,、更明確的三星相干互連中,,但 Tensor SoC 將 CPU 集群集成在更大的 CCI 中,這似乎是一種非常不同的互連設(shè)置配置,,或者是一個(gè)完全不同的IP,。與此同時(shí),,仍有一些相似之處,例如將一條主要的內(nèi)存流量總線連接到內(nèi)存控制器,,并將另一條流量較低的“內(nèi)部”總線連接到其他 IP,,這就是 Exynos SoC 傾向于分離事物的方式。應(yīng)該可以對(duì) SoC 進(jìn)行更詳細(xì)的逆向工程和映射,,但這是一件非常耗時(shí)的事情,,超出了本文的范圍。
CPU 設(shè)置:2x X1 + 2x A76 + 4x A55
雖然我們可以繼續(xù)討論 SoC 架構(gòu),,但讓我們暫時(shí)停止討論,。我們從 CPU 集群開始,深入探討 Tenor SoC 更明顯和更實(shí)際的差異,。
Google 的 CPU 設(shè)置與其他 SoC 不同,,因?yàn)樗哂?2+2+4 配置。雖然這并不是真正的例外——因?yàn)槿菍?duì) Exynos 9820 和 Exynos 990 也采用了同樣的設(shè)置——但 Tensor 上的 X1+A76+A55 配置目前在市場上是獨(dú)一無二的,。大多數(shù)其他供應(yīng)商和實(shí)現(xiàn)已經(jīng)轉(zhuǎn)移到 1+3+4 的大 + 中 + 小 CPU 配置,。
在 Cortex-X1 方面,谷歌使用一對(duì)核心意味著,,理論上,,具有兩個(gè)重線程的芯片的性能應(yīng)該高于任何其他只有一個(gè)大性能核心的 Android SoC。X1 對(duì)的頻率為 2.8GHz,,略低于 Snapdragon 888 的 2.86GHz 和 Exynos 2100 X1 內(nèi)核的 2.91GHz,。谷歌為內(nèi)核配備了完整的 1MB 二級(jí)緩存,類似于 S888,,這個(gè)參數(shù)是 E2100 配置的兩倍,。
至于中間核心,谷歌采用了Cortex-A76核心,,這一直是一個(gè)熱門話題,。乍一看,考慮到 Cortex-A77 和 A78 都提供更高的性能和更高的能效,,這似乎有點(diǎn)不合理,。內(nèi)核的時(shí)鐘頻率為 2.25GHz,,并帶有 256KB 的 L2,。我們還沒有從谷歌那里得到關(guān)于他們?yōu)槭裁词褂?A76 的明確解釋,但我認(rèn)為很可能在設(shè)計(jì)芯片時(shí),,三星沒有準(zhǔn)備好集成更新的 IP,。該芯片已經(jīng)醞釀了一段時(shí)間,雖然它確實(shí)具有 X1 內(nèi)核,,但也許在這個(gè)過程中轉(zhuǎn)移到更新的中間內(nèi)核為時(shí)已晚,。我不認(rèn)為使用 A76 內(nèi)核而不是 A78 是有目的的選擇,,因?yàn)檎缥覀儗⒃谖覀兊男阅芑鶞?zhǔn)測試中看到的那樣,舊的設(shè)計(jì)表現(xiàn)不佳,。
在小核心上,,有 4 個(gè) 1.8GHz 的 A55 核心。與三星自家的 Exynos 芯片相比,,谷歌決定為內(nèi)核配備 128KB 的 L2 緩存,,而不僅僅是 64KB,因此它們更符合驍龍 888 的配置,。谷歌的一個(gè)奇怪選擇是集群的 L3 緩存與 A55 內(nèi)核在同一時(shí)鐘平面上,,這會(huì)影響延遲和功耗。這也與我們?cè)?Exynos 2100 上看到的專用 L3 時(shí)鐘平面不一致,。
另一個(gè) Fat MaliGPU:高時(shí)鐘的G78MP20
早些時(shí)候關(guān)于 SoC 的傳言表明它將配備 Mali-G78 GPU,,但我們不知道該設(shè)計(jì)的確切核心數(shù)或時(shí)鐘。谷歌此后確認(rèn)了其 MP20 配置,,這是第二大的Mali GPU 配置,,僅次于麒麟 9000 及其龐大的 24 核單元。我最初的理論是,,Google 可能會(huì)以低頻率運(yùn)行 GPU 以優(yōu)化能效,,但最終我震驚地發(fā)現(xiàn)他們?nèi)栽谝?848MHz 的峰值時(shí)鐘速度運(yùn)行 GPU,用于著色器內(nèi)核,,和 996MHz 為 tiler 和 L2,。如果我沒記錯(cuò)的話,GoogleTensor 似乎是第一個(gè)確認(rèn)的 G78 實(shí)現(xiàn),,實(shí)際上利用了 Arm 對(duì) G78 的分離時(shí)鐘平面設(shè)計(jì),,
實(shí)際頻率非常高。Exynos 2100的 G78MP14 已經(jīng)運(yùn)行在 854MHz,,我們認(rèn)為這是一款峰值功率非常高的芯片,;但在這里,谷歌增加了 42% 的內(nèi)核,,并且不會(huì)降低頻率,。因此,就 GPU 峰值功率而言,,這是非常令人擔(dān)憂的問題,,我們將在后面的 GPU 評(píng)估部分中看到這些問題。
LPDDR5,,8MB SLC 緩存
GoogleTensor 上的內(nèi)存控制器似乎與 Exynos2100 上的相同,,在 4x 16 位通道配置中支持LPDDR5,總峰值理論帶寬為 51.2GB/s,。
Google 還集成了 8MB 的系統(tǒng)緩存,,對(duì)我來說,,這是否與三星在 Exynos 2100 上使用的 IP 相同并不清楚??雌饋硭鼈兌际?8MB,,但我傾向于說這是不同的 IP,或者至少是 IP 的不同版本,,因?yàn)樗募軜?gòu)方式和行為方式存在一些真正的差異,。
谷歌在這里非常廣泛地使用 SLC 來提高 SoC 塊的性能,包括他們自己的自定義塊,。SLC 允許對(duì)自身進(jìn)行分區(qū),,并將 SRAM 區(qū)域?qū)S糜?SoC 上的特定 IP 塊,使它們能夠在不同的用例情況下獨(dú)占訪問全部或部分緩存,。
自定義混合 ISP pipeline
通常當(dāng)人們或公司談?wù)?SoC ISP 時(shí),,它們總是被描述為單個(gè)單片 IP 塊。實(shí)際上,,我們所說的“ISP”是不同專用 IP 塊的組合,,每個(gè)塊在我們所說的成像pipeline中處理不同的任務(wù)。這里的 Google Tensor 很有趣,,因?yàn)樗捎昧巳窃谄?Exynos 芯片上使用的零碎部分,,并將定制的 Google 開發(fā)的塊集成到pipelline中——這實(shí)際上是 Google 在他們的 SoC 演示中談到的。
成像系統(tǒng)使用與 Exynos 成像流水線相對(duì)應(yīng)的 IP 塊,,例如像素相位檢測處理單元,、對(duì)比度自動(dòng)對(duì)焦處理單元、圖像縮放器,、失真校正處理塊和視圖相關(guān)的遮擋紋理功能處理塊,。這里缺少的是缺少其他一些處理塊,我認(rèn)為這與三星使用的更多后處理計(jì)算塊有關(guān),。
谷歌在ISP鏈上開發(fā)的IP塊似乎是他們自己的3AA IP(Auto-Exposure,,Auto-White Balance,Auto-Focus),,以及一對(duì)定制的時(shí)間降噪IP塊,,能夠?qū)R和合并圖像。這些可能是谷歌在說他們開發(fā)的塊有助于加速他們用作 Pixel 系列計(jì)算攝影的一部分的圖像處理類型時(shí)所談?wù)摰淖远x塊,,并且無可爭議地代表了圖像處理管道的非常重要的部分,。
Google 的 edgeTPU :讓Tensor成為Tensor
到目前為止,很明顯,,谷歌 Tensor的核心話題一直是它的 TPU——或者說它的 Tensor 處理單元,。顧名思義,TPU 是谷歌開發(fā)的定制 IP 塊,,該公司已經(jīng)研究了幾年,。到目前為止,谷歌只是將其稱為 Tensor SoC 內(nèi)的 TPU,,但在驅(qū)動(dòng)程序級(jí)別,,該公司將該塊稱為“edgeTPU”。這很有趣,,因?yàn)樵搲K與ASIC“Edge TPU”相關(guān)的信號(hào)谷歌早在 2018 年就宣布了這一點(diǎn),。該分立芯片曾以 4 TOPs 的處理能力和 2 瓦的功率做廣告,雖然谷歌沒有在 Tensor 內(nèi)的 TPU 上宣傳任何性能指標(biāo),,但有條目展示了這個(gè)塊高達(dá) 5W 的功率,。因此,如果兩者確實(shí)相關(guān),,那么鑒于顯著的工藝節(jié)點(diǎn)優(yōu)勢和整體更新的 IP,,Tensor TPU (sic) 的性能數(shù)據(jù)應(yīng)該非常重要。
該模塊是 Google 芯片團(tuán)隊(duì)的驕傲,,它告訴我們它使用最新的 ML 處理架構(gòu),,該架構(gòu)針對(duì) Google 的研發(fā)團(tuán)隊(duì)在公司內(nèi)部運(yùn)行機(jī)器學(xué)習(xí)的方式進(jìn)行了優(yōu)化,并承諾允許開辟新的以及獨(dú)特的用例,,這些用例是最初制作定制 SoC 的主要目標(biāo),。稍后我們將在更側(cè)重于 Pixel 的評(píng)論中討論產(chǎn)品端用例,但 TPU 的性能指標(biāo)確實(shí)令人印象深刻,。
TPU 塊似乎也帶有某種被 Google 稱為“GSA”的塊,。這只是我基于驅(qū)動(dòng)程序的推測,但這似乎是某種負(fù)責(zé)操作 TPU 固件的控制塊,,我認(rèn)為包含一個(gè)四核 Cortex-A32 CPU 設(shè)置,。
媒體編碼器,其他東西
在媒體編碼器方面,,Tensor SoC 使用三星自己的多功能編解碼器 IP 塊(與 Exynos 系列上使用的相同)以及似乎是專用于 AV1 解碼的 Google IP 塊?,F(xiàn)在這有點(diǎn)奇怪,因?yàn)槿谴_實(shí)宣傳 Exynos 2100 具有 AV1 解碼能力,,而且該功能似乎確實(shí)存在于內(nèi)核驅(qū)動(dòng)程序中,。然而,在 Galaxy S21 系列上,,此功能從未在 Android 框架級(jí)別上實(shí)現(xiàn),。我在這里沒有很好的解釋為什么 - 也許 IP 不能與 AV1 一起正常工作。
該公司稱之為“BigOcean”的谷歌 IP 塊是一個(gè)專用的 AV1 解碼器,,這實(shí)際上將 AV1 解碼能力暴露給了 Android 框架,。這里非常奇怪的是,它所做的只是 AV1——其他格式的所有其他編碼和解碼都留給了三星 MFC,。這是一個(gè)有趣的情況,,我想知道下一代 SoC 的發(fā)展方向,。
Tensor SoC 的其他差異是例如音頻子系統(tǒng)。三星的 SoC 低功耗音頻解碼子系統(tǒng)被谷歌自己的塊設(shè)計(jì)所取代,,我沒有過多地討論它,,但通常兩個(gè)塊都有相同的任務(wù),即允許低功耗音頻播放而無需喚醒大部件SoC 的,。我認(rèn)為這個(gè)塊(或 GSA)也負(fù)責(zé)作為傳感器數(shù)據(jù)聚合的永遠(yuǎn)在線的上下文中心,,這里的 Tensor 使用谷歌的 IP 和做事方式,而不是同一塊的 Exynos 變體,。
谷歌還采用了一個(gè)名為 Emerald Hill 的塊形式的固定功能硬件內(nèi)存壓縮器,,它為內(nèi)存頁面提供 LZ77 壓縮加速,并且可以反過來用于加速交換中的 ZRAM 卸載,。我不確定 Pixels 目前是否開箱即用,,但應(yīng)該能夠通過在
/sys/block/zram0/comp_algorithm 中看到“l(fā)z77eh”來確認(rèn),如果有人能夠讀出它,。
有一個(gè)軼事,,早在 5 年前,三星就將類似的硬件壓縮 IP 模塊集成到他們的 SoC 中以完成相同的任務(wù),,但由于某種原因,,這些模塊從未被用于出貨設(shè)備。也許能源效率并沒有像他們想象的那樣成功,。
外置 Exynos 調(diào)制解調(diào)器:第一款非高通毫米波手機(jī),?
由于它是手機(jī) SoC,因此 Tensor 自然需要某種蜂窩連接,。這是谷歌依賴三星的另一個(gè)領(lǐng)域,,使用該公司的 Exynos 調(diào)制解調(diào)器 5123。但是,,與 Exynos 2100 及其集成調(diào)制解調(diào)器不同,,Tensor 使用獨(dú)立的外部變體。至于為什么它是獨(dú)立的,,很可能是由于具有巨大的 GPU,、更大的 CPU 設(shè)置(兩個(gè) X1 具有完整的 1MB L2)以及未知的 TPU 大小,Tensor 芯片即使與 Exynos 2100 相比也相當(dāng)大,。
我這邊的另一個(gè)理論是,,谷歌仍會(huì)以某種方式在美國網(wǎng)絡(luò)上與高通聯(lián)系在一起——無論是 CDMA 還是毫米波 5G 連接。令人驚訝的是,,情況似乎并非如此,,因?yàn)?Pixel 6 系列在全球范圍內(nèi)隨附了 Exynos 調(diào)制解調(diào)器。這使得 Pixel 6 系列特別有趣,因?yàn)檫@似乎是第一個(gè)非高通毫米波實(shí)現(xiàn),。作為參考,,三星曾談到他們的毫米波 RFIC 和天線模塊早在 2019 年就表示有計(jì)劃 2020 年推出的設(shè)備。這是否意味著從 2020 年開始的設(shè)計(jì)(Pixel 6 系列將是)或商業(yè)可用性當(dāng)時(shí)尚不清楚,,但似乎這些是第一款采用該解決方案的商用手機(jī),。我不希望再過幾年在這里為自己提供毫米波覆蓋,,但第三方報(bào)告顯示這款手機(jī)的速度高達(dá) 3200Mbps,,而其他現(xiàn)場測試顯示高通設(shè)備實(shí)際速度的一半左右。我希望在接下來的幾周和幾個(gè)月里,,更多的人將有機(jī)會(huì)深入了解調(diào)制解調(diào)器的性能特征,。
總的來說,谷歌 Tensor 最終幾乎與我們預(yù)期的芯片完全一樣,,這是谷歌和三星合作的最早報(bào)道,。是谷歌芯片嗎?是的,,他們?cè)诙x它的意義上設(shè)計(jì)了它,,同時(shí)還創(chuàng)建了許多谷歌獨(dú)特的塊,這些塊是芯片差異化不可或缺的一部分,。
它是三星 Exynos 芯片嗎,?同樣是的,從更基礎(chǔ)的 SoC 架構(gòu)級(jí)別來看,,Tensor 與三星的 Exynos 設(shè)計(jì)有很多共同點(diǎn),。
在 Tensor 的幾個(gè)領(lǐng)域,有三星設(shè)計(jì)獨(dú)有的架構(gòu)和行為元素,,在其他任何地方都找不到,。為此,將 Google Tensor 稱為半定制設(shè)計(jì)似乎非常適合它的本質(zhì),。也就是說,,讓我們看看Tensor 的行為方式——以及它在性能和效率方面的表現(xiàn)。