高芯圈 芯片半导体资讯网 深度解构谷歌首款自研手机芯片

深度解构谷歌首款自研手机芯片

作者:匿名    来源:未知   
浏览:745    发布:2021-11-03 10:40:23

高芯圈 高芯圈

自 Google 正式发布Pixel 6 和 Pixel 6 Pro 形式的最新旗舰设备以来,已经过去了大约两周时间。这两款新 Pixel 手机无疑是自 Pixel 系列推出以来,谷歌最大的一次转变,它们基本上展示了设备各个方面的重大变化。准确来说,其实除了 Pixel 名称之外,谷歌的新旗舰与它们的前辈几乎没有什么共同之处。

这些手机采用全新的显示屏、摄像头系统、机身设计和内部硬件,价格看似极具竞争力,这让该系列手机有了一个非常好的新开端。

其中,最大的变化之一,也是我们的读者最感兴趣的变化之一,那就是 Pixel 6 和 Pixel 6 Pro 由谷歌自己的“Tensor”SoC 赋能。人们对tensor究竟是一个怎样的存在也有相当多的困惑。谷歌解释说,Tensor 是谷歌寻求支持新型工作负载的旅程的开始,用公司的话来说,这是“标准”商用芯片解决方案根本不可能或无法实现的。基于公司研究多年的机器学习经验,谷歌打造了一款专注于 ML ,并以其为其主要差异化功能的芯片,据说它允许 Pixel 6 手机拥有许多独有的新独特功能。

今天,我们将仔细研究 TensorSoC。这包括尝试记录它的确切组成,展示市场上其他 SoC 之间的差异或相似之处,以及更好地了解Google 已将哪些类型的 IP 集成到芯片中以使其独一无二并保证将其称为 Google SoC。

芯片出处

根据谷歌自己的材料,Tensor 是由谷歌公司自主设计的一款 SoC。虽然这一切的真相会因您对“设计”的定义而不同,但我们可以看到,该芯片遵循 Google 和三星 LSI 之间看似密切的合作,在此过程中也模糊了传统定制设计和半定制设计之间的界限。

从最高级别开始,我们有 SoC 的实际名称。“谷歌Tensor”比较抽象,目前官方没有给这款芯片贴上具体的型号。因此,下一代是否会推出“Tensor 2”或其他产品还有待观察。在内部,Google 称该芯片为“GS101”,虽然我在这里不完全确定 GS 代表什么,但很可能是 Google SoC 或 Google Silicon。很长一段时间以来,我们还听到了“Whitechapel”的报道,但我们不能确认。

在硅片方面,该芯片有另一个型号,SoC的融合芯片标识遵循三星的 Exynos命名方案。在这里,我们发现芯片的 ID为“0x09845000”,它对应于 S5E9845(编辑:它实际上是 S5P9845)。三星最新的 LSI SoC 是 Exynos 2100,标识为 S5E9840。

为什么 Google SoC 会遵循 Exynos 内部命名方案?这就是我们可以开始看到设计的一些出处的地方。一段时间以来,广泛报道称,几年前,三星向半定制硅设计产品敞开了大门。2020年八月,ETNews也详细地描述三星的业务计划,以及它如何涉及到谷歌的芯片(以及描述思科的design win):

具体而言,三星不是简单地作为一个纯粹的合同制造商,而是作为一个完全参与硅设计的一方。这在很大程度上可以与 ASIC 设计服务相提并论,除了三星也是商业 SoC 供应商和芯片制造商之外,这在行业中是非常独特的,因此属于特殊情况。

现在有了芯片,并且对它的特性有了开源洞察,我们可以开始分解 Google Tensor 到底是什么:

类似的设计?

在 SoC 的基本构建中,Google Tensor 紧跟三星的Exynos SoC 系列。除了人们倾向于在 SoC 中谈论的常见高级模块(例如 CPU、GPU、NPU 和其他主要特性)之外,还有芯片的基础模块:这些是结构模块和 IP,时钟管理架构、电源管理架构,以及将这些部分实现到实际芯片中的设计方法。在纸面上,三星 Exynos、联发科天玑或海思麒麟,甚至高通骁龙(在 CPU 方面)可能在规格方面具有相似的设计——具有相同的高级 IP,例如 Cortex CPU 或 Mali GPU来自 Arm——由于底层 SoC 架构非常不同,这些芯片最终仍会表现不同。

Tensor则将其设计建立在三星在其 Exynos SoC 上使用的 IP 基础上,利用相同的时钟管理和电源管理架构。在 IP 层次结构中,我们发现高级 IP 模块之间的其他相似之处,例如内存控制器、结构 IP、用于各种面向外部的接口的 PHYIP,甚至更大的 IP 功能块,例如 ISP 或媒体解码器/编码器。有趣的是,这些东西现在可以公开审查,并且可以在结构方面与其他 Exynos SoC 进行 1:1 的比较。

这使得我们对 Google 声称 Tensor 是他们自己的设计这一说法表示怀疑你——这在一定程度上是正确的,但根据您对“设计”的定义以及您想要进行的深入程度,其真实性可能会有所不同。尽管 Tensor/GS101 建立在 Exynos 基础模块和 IP 之上——甚至可能被三星集成和流片——但 SoC的定义是在谷歌的控制之下完成,因为这是他们的产品。虽然在 Tensor 的基础和最低层块方面与 Exynos2100 非常相似,但在结构和内部互连方面,谷歌的设计却有所不同。这意味着各种 IP 块如何相互交互的蜘蛛网(spiderweb)与三星自己的 SoC 不同。

这方面的一个实际示例是如何将 CPU 内核集成到 SoC 中。虽然在 Exynos 2100 上,CPU 集群似乎非常明显地位于更小、更明确的三星相干互连中,但 Tensor SoC 将 CPU 集群集成在更大的 CCI 中,这似乎是一种非常不同的互连设置配置,或者是一个完全不同的IP。与此同时,仍有一些相似之处,例如将一条主要的内存流量总线连接到内存控制器,并将另一条流量较低的“内部”总线连接到其他 IP,这就是 Exynos SoC 倾向于分离事物的方式。应该可以对 SoC 进行更详细的逆向工程和映射,但这是一件非常耗时的事情,超出了本文的范围。

CPU 设置:2x X1 + 2x A76 + 4x A55

虽然我们可以继续讨论 SoC 架构,但让我们暂时停止讨论。我们从 CPU 集群开始,深入探讨 Tenor SoC 更明显和更实际的差异。

Google 的 CPU 设置与其他 SoC 不同,因为它具有 2+2+4 配置。虽然这并不是真正的例外——因为三星对 Exynos 9820 和 Exynos 990 也采用了同样的设置——但 Tensor 上的 X1+A76+A55 配置目前在市场上是独一无二的。大多数其他供应商和实现已经转移到 1+3+4 的大 + 中 + 小 CPU 配置。

在 Cortex-X1 方面,谷歌使用一对核心意味着,理论上,具有两个重线程的芯片的性能应该高于任何其他只有一个大性能核心的 Android SoC。X1 对的频率为 2.8GHz,略低于 Snapdragon 888 的 2.86GHz 和 Exynos 2100 X1 内核的 2.91GHz。谷歌为内核配备了完整的 1MB 二级缓存,类似于 S888,这个参数是 E2100 配置的两倍。

至于中间核心,谷歌采用了Cortex-A76核心,这一直是一个热门话题。乍一看,考虑到 Cortex-A77 和 A78 都提供更高的性能和更高的能效,这似乎有点不合理。内核的时钟频率为 2.25GHz,并带有 256KB 的 L2。我们还没有从谷歌那里得到关于他们为什么使用 A76 的明确解释,但我认为很可能在设计芯片时,三星没有准备好集成更新的 IP。该芯片已经酝酿了一段时间,虽然它确实具有 X1 内核,但也许在这个过程中转移到更新的中间内核为时已晚。我不认为使用 A76 内核而不是 A78 是有目的的选择,因为正如我们将在我们的性能基准测试中看到的那样,旧的设计表现不佳。

在小核心上,有 4 个 1.8GHz 的 A55 核心。与三星自家的 Exynos 芯片相比,谷歌决定为内核配备 128KB 的 L2 缓存,而不仅仅是 64KB,因此它们更符合骁龙 888 的配置。谷歌的一个奇怪选择是集群的 L3 缓存与 A55 内核在同一时钟平面上,这会影响延迟和功耗。这也与我们在 Exynos 2100 上看到的专用 L3 时钟平面不一致。

另一个 Fat MaliGPU:高时钟的G78MP20

早些时候关于 SoC 的传言表明它将配备 Mali-G78 GPU,但我们不知道该设计的确切核心数或时钟。谷歌此后确认了其 MP20 配置,这是第二大的Mali GPU 配置,仅次于麒麟 9000 及其庞大的 24 核单元。我最初的理论是,Google 可能会以低频率运行 GPU 以优化能效,但最终我震惊地发现他们仍在以 848MHz 的峰值时钟速度运行 GPU,用于着色器内核,和 996MHz 为 tiler 和 L2。如果我没记错的话,GoogleTensor 似乎是第一个确认的 G78 实现,实际上利用了 Arm 对 G78 的分离时钟平面设计,

实际频率非常高。Exynos 2100的 G78MP14 已经运行在 854MHz,我们认为这是一款峰值功率非常高的芯片;但在这里,谷歌增加了 42% 的内核,并且不会降低频率。因此,就 GPU 峰值功率而言,这是非常令人担忧的问题,我们将在后面的 GPU 评估部分中看到这些问题。

LPDDR5,8MB SLC 缓存

GoogleTensor 上的内存控制器似乎与 Exynos2100 上的相同,在 4x 16 位通道配置中支持LPDDR5,总峰值理论带宽为 51.2GB/s。

Google 还集成了 8MB 的系统缓存,对我来说,这是否与三星在 Exynos 2100 上使用的 IP 相同并不清楚。看起来它们都是 8MB,但我倾向于说这是不同的 IP,或者至少是 IP 的不同版本,因为它的架构方式和行为方式存在一些真正的差异。

谷歌在这里非常广泛地使用 SLC 来提高 SoC 块的性能,包括他们自己的自定义块。SLC 允许对自身进行分区,并将 SRAM 区域专用于 SoC 上的特定 IP 块,使它们能够在不同的用例情况下独占访问全部或部分缓存。

自定义混合 ISP pipeline

通常当人们或公司谈论 SoC ISP 时,它们总是被描述为单个单片 IP 块。实际上,我们所说的“ISP”是不同专用 IP 块的组合,每个块在我们所说的成像pipeline中处理不同的任务。这里的 Google Tensor 很有趣,因为它采用了三星在其 Exynos 芯片上使用的零碎部分,并将定制的 Google 开发的块集成到pipelline中——这实际上是 Google 在他们的 SoC 演示中谈到的。

成像系统使用与 Exynos 成像流水线相对应的 IP 块,例如像素相位检测处理单元、对比度自动对焦处理单元、图像缩放器、失真校正处理块和视图相关的遮挡纹理功能处理块。这里缺少的是缺少其他一些处理块,我认为这与三星使用的更多后处理计算块有关。

谷歌在ISP链上开发的IP块似乎是他们自己的3AA IP(Auto-Exposure,Auto-White Balance,Auto-Focus),以及一对定制的时间降噪IP块,能够对齐和合并图像。这些可能是谷歌在说他们开发的块有助于加速他们用作 Pixel 系列计算摄影的一部分的图像处理类型时所谈论的自定义块,并且无可争议地代表了图像处理管道的非常重要的部分。

Google 的 edgeTPU :让Tensor成为Tensor

到目前为止,很明显,谷歌 Tensor的核心话题一直是它的 TPU——或者说它的 Tensor 处理单元。顾名思义,TPU 是谷歌开发的定制 IP 块,该公司已经研究了几年。到目前为止,谷歌只是将其称为 Tensor SoC 内的 TPU,但在驱动程序级别,该公司将该块称为“edgeTPU”。这很有趣,因为该块与ASIC“Edge TPU”相关的信号谷歌早在 2018 年就宣布了这一点。该分立芯片曾以 4 TOPs 的处理能力和 2 瓦的功率做广告,虽然谷歌没有在 Tensor 内的 TPU 上宣传任何性能指标,但有条目展示了这个块高达 5W 的功率。因此,如果两者确实相关,那么鉴于显着的工艺节点优势和整体更新的 IP,Tensor TPU (sic) 的性能数据应该非常重要。

该模块是 Google 芯片团队的骄傲,它告诉我们它使用最新的 ML 处理架构,该架构针对 Google 的研发团队在公司内部运行机器学习的方式进行了优化,并承诺允许开辟新的以及独特的用例,这些用例是最初制作定制 SoC 的主要目标。稍后我们将在更侧重于 Pixel 的评论中讨论产品端用例,但 TPU 的性能指标确实令人印象深刻。

TPU 块似乎也带有某种被 Google 称为“GSA”的块。这只是我基于驱动程序的推测,但这似乎是某种负责操作 TPU 固件的控制块,我认为包含一个四核 Cortex-A32 CPU 设置。

媒体编码器,其他东西

在媒体编码器方面,Tensor SoC 使用三星自己的多功能编解码器 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 中以完成相同的任务,但由于某种原因,这些模块从未被用于出货设备。也许能源效率并没有像他们想象的那样成功。

外置 Exynos 调制解调器:第一款非高通毫米波手机?

由于它是手机 SoC,因此 Tensor 自然需要某种蜂窝连接。这是谷歌依赖三星的另一个领域,使用该公司的 Exynos 调制解调器 5123。但是,与 Exynos 2100 及其集成调制解调器不同,Tensor 使用独立的外部变体。至于为什么它是独立的,很可能是由于具有巨大的 GPU、更大的 CPU 设置(两个 X1 具有完整的 1MB L2)以及未知的 TPU 大小,Tensor 芯片即使与 Exynos 2100 相比也相当大。

我这边的另一个理论是,谷歌仍会以某种方式在美国网络上与高通联系在一起——无论是 CDMA 还是毫米波 5G 连接。令人惊讶的是,情况似乎并非如此,因为 Pixel 6 系列在全球范围内随附了 Exynos 调制解调器。这使得 Pixel 6 系列特别有趣,因为这似乎是第一个非高通毫米波实现。作为参考,三星曾谈到他们的毫米波 RFIC 和天线模块早在 2019 年就表示有计划 2020 年推出的设备。这是否意味着从 2020 年开始的设计(Pixel 6 系列将是)或商业可用性当时尚不清楚,但似乎这些是第一款采用该解决方案的商用手机。我不希望再过几年在这里为自己提供毫米波覆盖,但第三方报告显示这款手机的速度高达 3200Mbps,而其他现场测试显示高通设备实际速度的一半左右。我希望在接下来的几周和几个月里,更多的人将有机会深入了解调制解调器的性能特征。

总的来说,谷歌 Tensor 最终几乎与我们预期的芯片完全一样,这是谷歌和三星合作的最早报道。是谷歌芯片吗?是的,他们在定义它的意义上设计了它,同时还创建了许多谷歌独特的块,这些块是芯片差异化不可或缺的一部分。

它是三星 Exynos 芯片吗?同样是的,从更基础的 SoC 架构级别来看,Tensor 与三星的 Exynos 设计有很多共同点。

在 Tensor 的几个领域,有三星设计独有的架构和行为元素,在其他任何地方都找不到。为此,将 Google Tensor 称为半定制设计似乎非常适合它的本质。也就是说,让我们看看Tensor 的行为方式——以及它在性能和效率方面的表现。

需要找芯片半导体行业人才或者芯片半导体行业职位,请直接站内注册登录或者站内联系我们。高芯圈是芯片半导体行业的人才求职招聘网站平台,提供求职招聘、人才筛选、薪酬报告、人事外包等服务与解决方案,芯片半导体行业人才与职位尽在高芯圈。
高芯圈
免责声明:本网站转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。
芯片半导体职位来 高芯圈
登录 / 注册