谷歌Tensor SoC大量采用三星Exynos設計,為何依然算自研?詳細剖析谷歌Tensor處理器

2021-11-03 13:05:58 來源:EETOP
自從谷歌正式發布他們的最新旗艦手機Pixel6和Pixel 6Pro以來,已經過去了大約兩周時間。這兩款新的Pixel手機可以說是谷歌自Pixel系列推出以來最大的轉變,在設備的各個方面都展示了重大變化,除了Pixel這個名字之外,與前代產品幾乎沒有共同之處。這些手機采用了全新的顯示屏、相機系統、機身設計和內部硬件,價格看似極具競爭力,似乎有了一個非常好的開端。

最大的變化之一,也是我們的讀者最感興趣的,是Pixel6和Pixel 6Pro搭載了谷歌自己的"Tensor "SoC。在這里,人們對"張量"到底是什么感到相當困惑。谷歌解釋說,Tensor是谷歌在尋求實現新型工作負載的旅程中的開始,用該公司的話說,"標準 "商業芯片解決方案根本不可能或無法實現。利用谷歌研究部門多年的機器學習經驗,它是一款專注于ML 作為其主要差異化功能的芯片,據說這款芯片可以讓Pixel6手機擁有許多獨有的新功能。

接下來,我們將對TensorSoC進行仔細研究。這包括試圖記錄它到底是由什么組成的,展示與市場上其他SoC的差異或相似之處,并更好地了解谷歌在芯片中集成了什么樣的IP,使其獨一無二,值得稱之為谷歌SoC。

芯片出處

根據谷歌自己的材料,官方稱Tensor是谷歌的SoC,完全由該公司設計。雖然整體的真相會根據你對"設計"的定義而有所不同,但該芯片似乎是谷歌和三星LSI之間的密切合作的,在這個過程中,模糊了傳統的定制設計和半定制設計--如AMD用于游戲機的APU--之間的界限。

從最高層次開始,我們有SoC的實際名稱。“谷歌Tensor”在這一點上是相當抽象的,目前,在官方營銷方面,芯片沒有任何特定的型號。因此,下一代是否會以“Tensor2”或其他形式銷售,還有待觀察。在內部,谷歌稱該芯片為“GS101”,雖然我們不完全確定GS代表什么,但很可能是Google SoC或Google Silicon。很長一段時間以來,我們也聽到了“Whitechapel”的報道,盡管還沒有看到任何證據表明這是一個實際的芯片,但處于非常早期的階段。

從siliconside來看,該芯片有另一個型號,該SoC的融合芯片識別遵循三星的Exynos命名方案。在這里,我們發現芯片的ID為"0x09845000",對應于將是S5E9845(編輯:實際上是S5P9845)。作為參考,最新的三星LSI SoC是Exynos2100,它被識別為S5E9840。

當然,為什么谷歌的SoC會遵循Exynos的內部命名方案?這就是我們可以開始看到該設計的一些出處。一段時間以來,人們廣泛報道說,幾年前,三星向半定制芯片設計報價開放。ETNews在2020年8月的一篇文章似乎正確地描述了三星的商業計劃以及它與谷歌芯片的關系(以及描述了思科設計的勝利)。

當然,為什么 GoogleSoC 會遵循Exynos 內部命名方案?這就是我們可以開始看到設計的一些出處的地方。一段時間以來,廣泛報道稱,幾年前,三星向半定制硅設計產品敞開了大門。ETNews在2020年8月的一篇文章似乎正確地描述了三星的商業計劃以及它與谷歌芯片的關系(english.etnews.com/2020)。

“三星電子將為全球頂級網絡設備制造商思科系統公司制造半導體芯片,谷歌公司負責從設計到生產的整個半導體制造過程。

[…]
三星電子目前正處于涉及芯片設計的開發階段。

[…]

三星電子還從谷歌獲得了一份關于制造多個芯片的訂單。聽說谷歌要求將半導體用于可以測量身體運動的傳感器,而不是用于當前 IT 設備的處理器和一個前所未有的應用處理器 (AP)。

[…]

三星電子正在采取不同的方法,因為它希望在芯片設計中積極利用其技術。其戰略是提供客戶甚至從設計階段和安全寄售生產就需要的“定制”技術和功能。

這里重要的是對過程的后一種描述——三星不是簡單地作為一個純粹的合同制造商,而是作為一個完全參與芯片設計的一方。這在很大程度上可以與ASIC設計服務相提并論,但不同的是,三星也是一個商業SoC供應商,同時也是硅片的制造商,這在行業內是相當獨特的,因此也是一種特殊的情況。EETOP編譯自anandtech

接下來我們開始詳細剖析Google Tensor 到底是什么了:

相同的“血統”

從SoC的基本原理來看,Google Tensor 緊跟三星的 ExynosSoC 系列。除了人們傾向于在SoC 中談論的常見高級塊(例如CPU、GPU、NPU 和其他主要特性)之外,還有芯片的基礎區塊:這些是fabricblocks和IP,時鐘管理架構、電源管理架構,以及將這些部分實現到實際芯片中的設計方法。雖然在在紙面上,三星Exynos、聯發科技天璣或海思麒麟,甚至高通驍龍(在CPU 方面)可能在規格方面具有相似的設計——具有相同的高級 IP,例如來自 Arm的 CortexCPU 或Mali GPU,但由于底層SoC 架構非常不同,這些芯片最終的性能仍會表現不同。

在Tensor的案例中,這個 "底盤 "建立在三星在其ExynosSoC上使用的IP之上,利用相同的時鐘管理和電源管理架構。再往上看IP層次,我們發現高層IP塊之間有更多的相似之處,如內存控制器、fabricIP、用于各種外部接口的PHYIP,甚至還有更大的IP功能塊,如ISP或媒體解碼器/編碼器。有趣的是,這些東西現在是可以公開審查的,并且可以在結構方面與其他ExynosSoC進行1:1的比較。

這使我們想到谷歌聲稱Tensor是他們自己的設計——這在一定程度上是正確的,但真實性如何取決于你對"設計"的定義以及你想深入了解的程度。盡管Tensor/GS101建立在Exynos的基礎模塊和IP之上——甚至可能被三星集成和流片——但SoC的定義是在谷歌的控制之下的,因為這是他們的最終產品。雖然在Tensor 的基礎和最低層塊方面與Exynos 2100 非常相似,但在結構和內部互連方面,谷歌的設計卻有所不同。這意味著各種IP 塊如何相互交互的鏈接在一起與三星自己的SoC 不同。

這方面的一個實際例子是CPU內核如何集成到SoC中。雖然在Exynos2100上,CPU集群看起來非常清楚地位于一個更小,定義更明確的SamsungCoherent Interconnect中,但TensorSoC將CPU集群集成到一個更大的CCI中,這要么是一個非常不同的互連設置配置,要么是一個完全不同的IP。同時也有一些相似之處,例如將一條主要的內存流量總線連接到內存控制器,并將另一條流量較低的“內部”總線連接到其他 IP,這就是 ExynosSoC 傾向于分離事物的方式。應該可以對SoC 進行更詳細的逆向工程和映射,但這超出了本文的范圍,這是一件耗時的事情。

CPU設置- 2x X1 + 2x A76 + 4x A55

雖然我們可以不停地討論SoC架構,但現在我們暫時停止討論,接下來從CPU集群開始,進入Tenor SoC更明顯和更實際的差異。

谷歌的CPU設置與其他SoC很不一樣,因為它采用了2+2+4的配置。雖然這并不是真正的例外——三星的Exynos9820和Exynos990也是這種配置——但Tensor上的X1+A76+A55配置目前在市場上是獨一無二的。其他大多數供應商和實現已經轉向1+3+4大+中+小的CPU配置。

在Cortex-X1方面,谷歌使用一對核心意味著,在理論上,有兩個重線程的芯片的性能應該高于其他只有一個大性能核心的安卓SoC。這兩個X1核的頻率為2.8GHz,略低于驍龍888的2.86GHz和Exynos2100 X1核心的2.91GHz。谷歌為這些核心配備了完整的1MB二級緩存,與S888類似,是E2100配置的兩倍。

至于中間核心,谷歌采用了Cortex-A76核心,這一直是一個熱門話題。乍一看,考慮到Cortex-A77 和A78 都提供更高的性能和更高的能效,這似乎有點不合理。內核的時鐘頻率為2.25GHz,并帶有256KB 的L2。我們還沒有從谷歌那里得到關于他們為什么使用A76 的明確解釋,但我確實認為在設計芯片時,三星很可能沒有準備好集成的更新IP。該芯片已經醞釀了一段時間,雖然它確實具有X1 內核,但也許在這個過程中也為時已晚,無法轉移到更新的中間內核。我不認為使用A76 內核而不是A78 是有目的的選擇,因為正如我們將在我們的性能基準測試中看到的那樣,基于A76舊的設計表現不佳。

在小核心上,有 4 個 1.8GHz 的 A55 核心。與三星自家的 Exynos 芯片相比,谷歌決定為內核配備128KB 的L2 緩存,而不僅僅是64KB,因此它們更符合驍龍888 的配置。谷歌的一個奇怪選擇是集群的L3 緩存與 A55 內核在同一時鐘平面上,這會影響延遲和功耗。這也與我們在Exynos 2100 上看到的專用L3 時鐘平面不一致。

另一個“肥胖”的Mali GPU:高頻率下的G78MP20

早些時候關于 SoC 的傳言表明它將配備 Mali-G78GPU,但我們不知道該設計的確切核心數或時鐘頻率。谷歌此后確認了MP20 配置,這是第二大的MaliGPU 配置,僅次于麒麟9000 及其龐大的24 核單元。我最初的理論是,谷歌可能會以低頻率運行GPU 以優化能效,但最終我震驚地發現他們仍在以848MHz 的峰值時鐘速度運行GPU,用于著色器內核,和996MHz 為tiler 和L2。如果我沒記錯的話,GoogleTensor 似乎是第一個確認的G78 實現,實際上利用了Arm 的G78 時鐘平面分離設計,

實際頻率非常高。Exynos2100 的G78MP14 已經運行在854MHz,我們認為這是一款峰值功率非常高的芯片;但在這里,谷歌增加了42% 的內核,并且不會降低頻率。因此,就GPU 峰值功率而言,這是非常令人擔憂的問題,我們將在后面的GPU 評估部分中看到這些問題。

LPDDR5,8MBSLC 緩存

Google Tensor 上的內存控制器似乎與Exynos 2100 上的相同,在4x 16 位通道配置中支持LPDDR5,總峰值理論帶寬為51.2GB/s。

Google 還集成了8MB 的系統緩存,這是否與三星在Exynos 2100 上使用的IP 相同并不清楚??雌饋硭鼈兌际?MB,但我傾向于說這是不同的IP,或者至少是 IP 的不同版本,因為它的架構方式和行為方式存在一些真正的差異。

谷歌在這里非常廣泛地使用SLC 來提高SoC 塊的性能,包括他們自己的自定義塊。SLC允許對自身進行分區,并將SRAM 區域專用于SoC 上的特定IP 塊,使它們能夠在不同的用例情況下獨占訪問全部或部分緩存。

自定義混合ISP 管道

通常當人們談論 SoC ISP 時,它們總是被描述為單個單片IP 塊。實際上,我們所說的“ISP”是不同專用 IP 塊的組合,每個塊在我們所說的成像流水線中處理不同的任務。此處的Google Tensor 很有趣,因為它采用了三星在其Exynos 芯片上使用的零碎部分,并將Google 開發的自定義塊集成到管道中——這實際上是 Google 在他們的 SoC 演示中談到的。

成像系統使用與 Exynos 成像流水線相對應的 IP 塊,例如像素相位檢測處理單元、對比度自動對焦處理單元、圖像縮放器、失真校正處理塊和視圖相關的遮擋紋理功能處理塊。這里缺少的是缺少其他一些處理塊,我認為這與三星使用的更多后處理計算塊有關。

谷歌在ISP鏈上開發的IP塊似乎是他們自己的3AA IP(A uto-Exposure,A uto-WhiteBalance,A uto-Focus),以及一對定制的時間降噪IP塊,能夠對齊和合并圖像。這些可能是谷歌在說他們開發的塊有助于加速他們用作Pixel 系列計算攝影的一部分的圖像處理類型時所談論的自定義塊,并且無可爭議地代表了圖像處理流水線的非常重要的部分.

谷歌的edgeTPU -是什么讓Tensor成為張量

到目前為止,很明顯,谷歌Tensor 的核心話題一直是它的TPU——或者說它的Tensor 處理單元。顧名思義,TPU是谷歌開發的定制IP 塊,該公司已經研究了幾年。到目前為止,谷歌只是將其稱為Tensor SoC 內的TPU,但在驅動程序級別,該公司將該塊稱為“edgeTPU”。這很有趣,因為該塊與ASIC“Edge TPU”相關的信號谷歌早在2018 年就宣布了這一點。該分立芯片曾被宣傳為在2瓦的功率下有4個TOPs的處理能力,雖然谷歌沒有宣傳Tensor內部的TPU的任何性能指標,但有條目展示了該塊高達5W 的功率。因此,如果兩者確實相關,那么鑒于顯著的工藝節點優勢和整體更新的IP,TensorTPU的性能數據應該非常重要。

這塊芯片在很大程度上是谷歌芯片團隊的驕傲,告訴我們它使用了最新的ML處理架構,針對谷歌研發團隊在公司內部運行機器學習的方式進行了優化,并承諾允許開辟那種新的和獨特的用例,而這正是當初制造定制SoC的主要目標。我們將在稍后的Pixel重點評測中討論產品方面的使用情況,但TPU的性能指標似乎令人印象深刻。

TPU模塊似乎還帶有某種被谷歌稱為"GSA "的模塊。這只是我基于驅動程序的猜測,但這似乎是某種控制塊,負責操作TPU固件,我認為它包含一個四核Cortex-A32CPU設置。

媒體編碼器及其他

在媒體編碼器方面,TensorSoC 使用三星自己的多功能編解碼器IP 塊(與 Exynos 系列上使用的相同)以及似乎是專用于AV1 解碼的Google IP ?,F在這有點奇怪,因為三星確實宣傳Exynos 2100 具有AV1 解碼能力,而且該功能似乎確實存在于內核驅動程序中。然而,在Galaxy S21 系列上,此功能從未在Android 框架級別上實現。我在這里沒有很好的解釋為什么- 也許 IP 不能與 AV1 一起正常工作。

該公司稱之為“BigOcean”的谷歌 IP 塊是一個專用的 AV1 解碼器,這實際上將 AV1 解碼能力暴露給了 Android 框架。這里非常奇怪的是,它所做的只是AV1——其他格式的所有其他編碼和解碼都留給了三星MFC。這是一個有趣的情況,我想知道下一代SoC 的發展方向。

Tensor SoC 的其他差異是例如音頻子系統。三星的SoC 低功耗音頻解碼子系統被谷歌自己的功能塊設計所取代,我沒有過多地討論它,但通常兩個塊都有相同的任務,即允許低功耗音頻播放而無需喚醒大部件SoC的。我認為這個功能塊(或GSA)也負責作為傳感器數據聚合的永遠在線的上下文樞紐,這里的Tensor 使用谷歌的IP 和做事方式,而不是同一塊的Exynos 變體。

谷歌還采用了一個名為Emerald Hill 的塊形式的固定功能硬件內存壓縮器,它為內存頁面提供LZ77 壓縮加速,并且可以反過來用于加速交換中的ZRAM 卸載。我不確定Pixels 目前是否開箱即用,但應該能夠通過在/sys/block/zram0/comp_algorithm 中看到“lz77eh”來確認,如果有人能夠讀出它。有一個軼事,早在5 年前,三星就將類似的硬件壓縮IP 模塊集成到他們的 SoC 中以完成相同的任務,但由于某種原因,這些模塊從未在出貨設備上啟用。也許能源效率并沒有像他們想象的那樣成功。

外置Exynos基帶:第一款非高通毫米波手機?

由于它是手機 SoC,因此 Tensor 自然需要某種蜂窩連接。這是谷歌依賴三星的另一個領域,使用該公司的Exynos 5123基帶芯片。但是,與Exynos 2100 及其集成調制解調器不同,Tensor使用外置的基帶芯片。至于為什么采用分離式,Tensor芯片即使與 Exynos2100 相比也相當大。至于為什么它是分立的,很可能是由于巨大的GPU,更大的CPU設置(兩個X1具有完整的 1MB L2),以及未知的TPU大小,Tensor芯片即使與Exynos2100相比也相當大。

 

Pixel 6系列在全球范圍內都采用了Exynos基帶。這使得Pixel 6系列特別有趣,因為這似乎是第一個非高通的毫米波實現。作為參考,三星早在2019年就談到了他們的毫米波射頻集成電路和天線模塊,說有計劃在2020年推出設備。這是否意味著2020年開始的設計(Pixel 6系列將是這樣)或商業可用性在當時并不清楚,但似乎這些是第一批采用該解決方案的商業手機。

半定制似乎很合適

總的來說,谷歌 Tensor 最終幾乎與我們預期的芯片完全一樣,這是谷歌和三星合作的最早報道。是谷歌芯片嗎?是的,他們在定義它的意義上設計了它,同時還創建了許多谷歌獨特的塊,這些塊是芯片差異化不可或缺的一部分。它是三星Exynos 芯片嗎?同樣是的,從更基礎的SoC 架構級別來看,Tensor與三星的 Exynos 設計有很多共同點。在 Tensor 的幾個領域,有三星設計獨有的架構和行為元素,在其他任何地方都找不到。為此,將Google Tensor 稱為半定制設計似乎非常適合它的本質。也就是說,讓我們看看Tensor 的行為方式——以及它在性能和效率方面的表現。

總的來說,谷歌Tensor最終幾乎與我們預期的芯片一模一樣,從最早的谷歌和三星之間的合作報告來看。這是一個谷歌芯片嗎?是的,他們設計的意義在于他們定義了它,同時也創造了相當多的谷歌獨特的模塊,這些模塊是芯片差異化的組成部分。它是三星的Exynos芯片嗎?也是的,從更基礎的SoC架構層面來看,Tensor與三星的Exynos設計有很大的共同點。在Tensor的幾個領域,有一些架構和行為元素是三星設計所獨有的。為此,稱谷歌Tensor為半定制設計似乎完全適合它的性質。既然如此,讓我們看看Tensor是如何表現的--以及它在性能和效率方面的表現:

  1. EETOP 官方微信

  2. 創芯大講堂 在線教育

  3. 創芯老字號 半導體快訊

相關文章

全部評論

  • 最新資訊
  • 最熱資訊
@2003-2021 EETOP

京ICP備10050787號   京公網安備:11010502037710

X
免费大片一级a一级久久