明天上午10点开始直播,欢迎报名参加!
来源:EETOP编译自anandtech 作者:Andrei Frumusanu
自从谷歌正式发布他们的最新旗舰手机Pixel6和Pixel 6Pro以来,已经过去了大约两周时间。这两款新的Pixel手机可以说是谷歌自Pixel系列推出以来最大的转变,在设备的各个方面都展示了重大变化,除了Pixel这个名字之外,与前代产品几乎没有共同之处。这些手机采用了全新的显示屏、相机系统、机身设计和内部硬件,价格看似极具竞争力,似乎有了一个非常好的开端。
接下来,我们将对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月的一篇文章似乎正确地描述了三星的商业计划以及它与谷歌芯片的关系(https://english.etnews.com/20200804200001)。
“三星电子将为全球顶级网络设备制造商思科系统公司制造半导体芯片,谷歌公司负责从设计到生产的整个半导体制造过程。
[…]
三星电子目前正处于涉及芯片设计的开发阶段。
这里重要的是对过程的后一种描述——三星不是简单地作为一个纯粹的合同制造商,而是作为一个完全参与芯片设计的一方。这在很大程度上可以与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 进行更详细的逆向工程和映射,但这超出了本文的范围,这是一件耗时的事情。
虽然我们可以不停地讨论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 时钟平面不一致。
早些时候关于 SoC 的传言表明它将配备 Mali-G78GPU,但我们不知道该设计的确切核心数或时钟频率。谷歌此后确认了MP20 配置,这是第二大的MaliGPU 配置,仅次于麒麟9000 及其庞大的24 核单元。我最初的理论是,谷歌可能会以低频率运行GPU 以优化能效,但最终我震惊地发现他们仍在以848MHz 的峰值时钟速度运行GPU,用于着色器内核,和996MHz 为tiler 和L2。如果我没记错的话,GoogleTensor 似乎是第一个确认的G78 实现,实际上利用了Arm 的G78 时钟平面分离设计,
实际频率非常高。Exynos2100 的G78MP14 已经运行在854MHz,我们认为这是一款峰值功率非常高的芯片;但在这里,谷歌增加了42% 的内核,并且不会降低频率。因此,就GPU 峰值功率而言,这是非常令人担忧的问题,我们将在后面的GPU 评估部分中看到这些问题。
Google Tensor 上的内存控制器似乎与Exynos 2100 上的相同,在4x 16 位通道配置中支持LPDDR5,总峰值理论带宽为51.2GB/s。
Google 还集成了8MB 的系统缓存,这是否与三星在Exynos 2100 上使用的IP 相同并不清楚。看起来它们都是8MB,但我倾向于说这是不同的IP,或者至少是 IP 的不同版本,因为它的架构方式和行为方式存在一些真正的差异。
谷歌在这里非常广泛地使用SLC 来提高SoC 块的性能,包括他们自己的自定义块。SLC允许对自身进行分区,并将SRAM 区域专用于SoC 上的特定IP 块,使它们能够在不同的用例情况下独占访问全部或部分缓存。
通常当人们谈论 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 系列计算摄影的一部分的图像处理类型时所谈论的自定义块,并且无可争议地代表了图像处理流水线的非常重要的部分.
到目前为止,很明显,谷歌Tensor 的核心话题一直是它的TPU——或者说它的Tensor 处理单元。顾名思义,TPU是谷歌开发的定制IP 块,该公司已经研究了几年。到目前为止,谷歌只是将其称为Tensor SoC 内的TPU,但在驱动程序级别,该公司将该块称为“edgeTPU”。这很有趣,因为该块与ASIC“Edge TPU”相关的信号谷歌早在2018 年就宣布了这一点。该分立芯片曾被宣传为在2瓦的功率下有4个TOPs的处理能力,虽然谷歌没有宣传Tensor内部的TPU的任何性能指标,但有条目展示了该块高达5W 的功率。因此,如果两者确实相关,那么鉴于显着的工艺节点优势和整体更新的IP,TensorTPU的性能数据应该非常重要。
TPU模块似乎还带有某种被谷歌称为"GSA "的模块。这只是我基于驱动程序的猜测,但这似乎是某种控制块,负责操作TPU固件,我认为它包含一个四核Cortex-A32CPU设置。
在媒体编码器方面,TensorSoC 使用三星自己的多功能编解码器IP 块(与 Exynos 系列上使用的相同)以及似乎是专用于AV1 解码的Google IP 。现在这有点奇怪,因为三星确实宣传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 中以完成相同的任务,但由于某种原因,这些模块从未在出货设备上启用。也许能源效率并没有像他们想象的那样成功。
由于它是手机 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是如何表现的--以及它在性能和效率方面的表现:(点击阅读原文查看)
https://www.anandtech.com/show/17032/tensor-soc-performance-efficiency/2
关注创芯人才网,搜索职位
关注创芯大讲堂,祝您IC技能更上一层楼!