早在今年8月,谷歌母公司Alphabet CEO Sundar Pichai正式曝光了谷歌的首款自研手机芯片“Tensor”。随后在10月下旬,首发搭载Tensor处器的Pixel 6和Pixel 6 Pro两款智能手机正式上市。近日,国外专业的分析机构TechInsights 的实验室团队对谷歌Tensor 处理器芯片进行了拆解,随后科技网站Anandtech也对于谷歌Tensor处理器进行了详细的分析。
三星除了提供5nm代工服务,还参与了Tensor的设计?
虽然谷歌自称Tensor处理器是完全由自己公司设计的,但是Anandtech均认为该芯片应该是由谷歌和三星 LSI合作设计的,谷歌在此过程中模糊了传统定制设计和半定制设计之间的界限。
“谷歌Tensor”的命名比较抽象,目前官方没有给这款芯片贴上具体的型号。因此,下一代是否会命名为“Tensor 2”或其他名称还有待观察。而在内部,谷歌称该芯片为“GS101”,虽然不确定确定 “GS”代表什么,但可能是 Google SoC 或 Google Silicon。
通过TechInsights对于谷歌Tensor处理器的分析发现,Tensor处理器的封装尺寸为 10.38mm x 10.43mm = 108.26mm 2,其内部的芯片标识为“S5P9845”,而这一标识符合传统三星Exynos处理器命名规则,比如Exynos 990的芯片标识为S5E9830,Exynos 2100 5G SoC芯片标识为S5E9840,Exynos 1080 5G SoC芯片标识为S5E988。
因此,TechInsights也怀疑谷歌Tensor 和三星Exynos处理器之间可能存在联系。虽然谷歌Tensor芯片可能采用的是三星的5LPE工艺代工,但是其他的芯片厂商交由三星代工的芯片并不会拥有三星Exynos处理器类似的芯片标识。
△谷歌Tensor处理器的标记
△Tensor处理器的die照片
根据此前媒体的报道,我们可以发现,在几年前,三星就已经对外开放了半定制芯片设计产品的服务。从2020年8月ETNews发布的一篇报道当中,就描述了三星的业务计划,以及它如何涉及到谷歌的芯片(以及描述对于思科的design win):
“三星电子将为全球顶级网络设备制造商思科系统公司制造半导体芯片,将负责谷歌公司的芯片从设计到生产的整个半导体制造过程。
[…]
三星电子目前正处于涉及芯片设计的开发阶段。
[…]
三星电子还从谷歌获得了一份关于制造多个芯片的订单。听说谷歌需要一种半导体芯片,该半导体芯片将用于可以测量身体运动的传感器,而不是用于当前 IT 设备和前所未有的应用处理器 (AP) 的处理器。
[…]
三星电子正在采取不同的方法,因为它希望在芯片设计中积极利用其技术。其战略是提供客户从设计阶段到生产所需要的“定制”技术和功能。
从以上的描述来看,三星与谷歌的合作,并不是简单地作为一个纯粹的芯片代工制造商,而是作为完全参与到芯片设计的一方。这在很大程度上可以与 ASIC 设计服务相提并论。同样,另一家芯片设计厂商联发科也对外提供ASIC设计服务。
8核CPU : 2×Cortex-X1+2×Cotex-A76+4×Cortex-A55
在CPU方面,谷歌Tensor处理器与很多旗舰处理器一样,采用了大中小核三丛八核心设计,不同的是,大多数旗舰芯片采用的是1+3+4的架构,而谷歌Tensor处理器在采用了2+2+4的架构。
具体来看,谷歌Tensor处理器采用了两颗Arm Cortex-X1超大核,主频为2.8GHz,拥有2×1024KB二级缓存;2颗Cortex-A76大核,主频2.25GHz,拥有2×256KB二级缓存;4颗 Cortex-A55小核,主频1.8GHz,拥有4×128KB二级缓存。
理论上,谷歌Tensor处理器采用了两颗Arm Cortex-X1超大核,使得其在在大核性能上要高于其他仅有一个超大核的处理器,只不过,其超大核的2.8GHz主频要略低于高通骁龙 888的2.86GHz 和 三星Exynos 2100的2.91GHz。另外,在二级缓存方面,Tensor处理器与骁龙888相近都配备了1MB的二级缓存,这是三星Exynos 2100的两倍。
在中间的大核心上,Tensor处理器并没有采用性能更强的Cortex-A77或A78,而是选择了Cortex-A76,这似乎是从功耗方面来考虑,但是如果真的考虑整体功耗的话,那么就不应该用两个Cortex-X1大核,这似乎有些不合理。Anandtech认为,这可能是因为Tensor处理器在设计时,三星并没有准备好集成更新的CPU IP。Anandtech也不认为谷歌是刻意选择Cortex-A76,而放弃了A77或A78,因为在性能基准测试中旧的设计表现并不佳。
在小核心上,Tensor处理器采用的是4个1.8GHz主频的Cortex-A55 核心。与三星自家的 Exynos 2100芯片相比,谷歌决定为小核配备了128KB 的二级缓存,而不仅仅是64KB,与骁龙 888的配置相近。不过,谷歌的一个奇怪选择是,集群的三级缓存与 Cortex-A55 内核在同一时钟平面上,这会影响延迟和功耗。这也与我们在 Exynos 2100上看到的专用的三级缓存时钟平面不一致。
GPU:20核心Mali-G78
谷歌Tensor处理器采用了20核心的Mali-G78 GPU,848 MHz (shaders)、996 MHz (tiler/L2),使得其成为了全球第二大Mali GPU集群配置的处理器,仅次于华为麒麟9000的24核Mali-G78 GPU。
Anandtech最初认为,Tensor处理器的GPU可能会以低频率运行,以优化能效,但实际上,其是以惊人的 848MHz 的峰值时钟速度运行GPU,用于着色器内核,和 996MHz 为 tiler和L2缓存。要知道三星的Exynos 2100集成的14核心的Mali-G78 GPU也只是运行在854MHz,而Tensor处理器的GPU的数量与其相比增加了42%。这也意味着Tensor处理器的GPU性能将会非常强大。Anandtech表示,谷歌Tensor 似乎是第一个利用了Arm 的Mali-G78时钟平面分离设计的芯片。
LPDDR5,8MB SLC 缓存
谷歌Tensor处理器上的内存控制器似乎与 Exynos 2100 上的相同,在 4x 16bit通道配置中支持 LPDDR5内存,理论峰值带宽为 51.2GB/s。
此外,Tensor处理器还集成了 8MB 的SLC系统缓存,不清楚这与三星在 Exynos 2100 上使用的 IP 是否相同,但它们都是 8MB,但Anandtech倾向于两者是不同的 IP,或者至少是 IP 的不同版本,因为它们的架构方式和运行方式存在一些真正的差异。
谷歌在这里非常广泛地使用 SLC 来提高 SoC 的性能,包括他们自己的自定义模块。SLC 允许对自身进行分区,并将 SRAM 区域专用于 SoC 上的特定 IP 块,使它们能够在不同的用例情况下独占访问全部或部分缓存。
自定义混合 ISP
在目前用户对于手机拍照性能要求越来越高的背景之下,从关乎手机拍照成相质量的ISP(图像信号处理器)开始变得越来越关键,因此我们也能够看到,此前谷歌、小米、vivo等都有专门推出独立的ISP芯片来应对。
在谷歌 Tensor 处理器中,其集成的ISP内核,将三星Exynos处理器上集成的ISP的部分功能模块和谷歌自研的自定义ISP集成到了一起。
Anandtech表示, Tensor 处理器的ISP使用与 Exynos ISP相对应的 IP 块,例如像素相位检测处理单元、对比度自动对焦处理单元、图像缩放器、失真校正处理块和视图相关的遮挡纹理功能处理块。这里缺少的是缺少其他一些处理块,Anandtech认为这与三星使用的更多后处理计算块有关。
谷歌自研的ISP IP块似乎是他们自己的3AA IP(Auto-Exposure,Auto-White Balance,Auto-Focus),以及一对定制的时间降噪IP块,能够对齐和合并图像。这些可能是谷歌在说他们开发的块有助于加速他们用作 Pixel 系列计算摄影的一部分的图像处理类型时所谈论的自定义块。
谷歌Tensor TPU
早在2018年7月,谷歌正式推出了用于边缘计算的edge TPU,作为其Cloud TPU的补充,当时Edge TPU仅用于推理,专为在边缘运行TensorFlow Lite ML模型而设计。除了自用,谷歌edge TPU也将提供给其他厂商使用。根据官方的资料,edge TPU的算力为4TOPS,功耗为2W。
目前在中高端智能手机处理器中,基本都有集成专用的AI内核,用以除了各种人工智能计算。此次谷歌自研的Tenso处理器当中,也集成了谷歌自研的TPU内核,不过在驱动程序上,谷歌将其称之为“edge TPU”。
也就是说,Tenso处理器当中集成的TPU可能就是基于此前发布的edge TPU的IP的修改版。虽然谷歌没有介绍Tensor内置 TPU的性能指标,不过有数据显示该TPU功率为 5W,这与之前谷歌edge TUP存在差异 。因此,如果两者确实相关,那么鉴于显著的工艺节点优势和整体更新的 IP,Tensor TPU的性能应该比之前的edge TPU更强大。
媒体编解码器
在媒体编码器方面,谷歌Tensor处理器集成了三星的多功能编解码器IP(Multi-Function Codec),可支持8K@30fps ?& 4K@120fps encode ?& 8K@60fps decode,H.265/HEVC、H.264、VP9、AV1 decode。同时Tensor处理器还集成了谷歌自研的似乎是专用于AV1解码的被称之为 “BigOcean” 的Decode解码器,支持4K@60fps AV1解码。
但奇怪的是三星宣传其Exynos 2100的媒体编解码器具有 AV1 解码能力,而且该功能似乎确实存在于内核驱动程序中。然而,在 Galaxy S21 系列上,此功能从未在 Android 框架级别上实现。这或许也解释了,为什么Tensor处理器还集成了被称之为“BigOcean”的谷歌AV1解码器,而其他的格式的所有编码和解码都交给了三星Multi-Function Codec。
另外,谷歌Tensor处理器还采用了自己设计的低功耗音频解码子系统,允许低功耗音频播放而无需唤醒SoC中的CPU核心。同时,谷歌还采用了一个名为 Emerald Hill 的块形式的固定功能硬件内存压缩器,它为内存页面提供 LZ77 压缩加速,并且可以反过来用于加速交换中的 ZRAM 卸载。
外挂三星5G基带芯片
由于谷歌Tensor处理器是一款针对智能手机的 SoC,因此 Tensor自然还需要有配套的带芯片来支持手机的移动通信功能。根据TechInsights对于Pixel Pro 6的拆解发现,Pixel Pro 6内部的Tensor处理器(下图中蓝色方框内美光DRAM下方就是Tensor处理器)只是一款AP,其通信功能则是依靠外挂的三星 SHANNON A5123 5G基带芯片(下图中紫色方框内)来实现的,可支持LTE Category 24/18以及5G NR Sub-6、5G NR mmWave。此外还有高通5G基带芯片的版本。
△谷歌Pixel Pro 6主板
另外,TechInsights还发现拆解的美国版的谷歌Pixel 6系列还配套了三星的毫米波射频收发器 SHANNON 5710、三星 SHANNON 5511 射频收发器、SHANNON 5311A PMIC、三星 Exynos SM 5800 电源调制器、三星 PMIC S2MPG10和三星 PMIC S2MPG11。
△三星毫米波射频收发器 SHANNON 5710
小结:
将谷歌Tensor处理器和三星Exynos 2100对比来看,可以看到,这两颗芯片之间有着很多的类似之处,并且谷歌Tensor处理器还采用了很多三星提供的IP。Anandtech表示,两款芯片采用了相同的时钟管理和电源管理架构、内存控制器、结构 IP、用于各种面向外部的接口的 PHY IP,甚至还有更大的 IP 功能模块,例如 ISP 或多媒体解码器/编码器。有趣的是,这些东西现在可以在Github上公开查询到。当然,从整体的芯片规格来看,谷歌Tensor处理器要比三星Exynos 2100更为强大。
综合以上的信息,Anandtech表示,谷歌声称 Tensor处理器是他们自己的设计,这在一定程度上是正确的。但根据外界通常对于“设计”的定义来看,还是有所不同的。尽管 Tensor/GS101 建立在 Exynos 基础模块和 IP 之上,同时也是由三星流片和制造,但 SoC的定义在谷歌的控制之下,因为它是谷歌的最终产品。虽然在 Tensor 的基础和最低层模块方面与 Exynos 2100 非常相似,但在结构和内部互连方面,谷歌的设计却有所不同。这意味着各种 IP 块如何相互交互的网络与三星自己的 SoC 不同。
这方面的一个实际例子是,如何将 CPU 内核集成到 SoC 中。虽然在 Exynos 2100 上,CPU集群似乎非常明显地位于更小、更明确的三星相干互连中,但 Tensor SoC 将 CPU 集群集成在更大的 CCI 中,这似乎是一种非常不同的互连设置配置,或者是一个完全不同的IP。与此同时,二者仍有一些相似之处,例如将一条主要的内存流量总线连接到内存控制器,并将另一条流量较低的“内部”总线连接到其他 IP,这就是 Exynos SoC 倾向于分离事物的方式。具体如何需要对 SoC 进行更详细的逆向工程和映射,但这超出了本文讨论的范围,因为这是一件非常耗时的事情。
编辑:芯智讯-浪客剑 综合编译自:Anandtech、TechInsights