苹果M2处理器发行
2022-06-07 11:16:30 阿炯

2022年6月上旬消息,Apple 在其年度 WWDC 大会上推出了其 M1 处理器的下一代:M2 处理器。M2 采用第二代 TSMC 5nm 技术构建,是一个 8 核 CPU,由 4 个高效核心和 4 个高性能核心组成。性能核心之间共享 16MB 缓存,效率核心之间共享 4MB 缓存。


从外形看,M2 比 M1 大一些,其内部共计集成 200 亿只晶体管,相比 M1 芯片增加了 25% 。据官方介绍,相比 M1,M2 的 CPU 性能提升 18%,GPU 性能提升 35%,神经引擎速度提升 40%。同时,M2 芯片的各项性能都有所提升,包括实现了 100GB/s 统一内存带宽的内存控制器(比 M1 芯片高出 50% ),此外高速统一内存最高可达 24GB。


当然,与友商进行切磋也是有必要的。据 Apple 进行的测试,M2 的性能几乎是 Windows 笔记本电脑中最新 10 核芯片的两倍。


与 PC 中的 12 核芯片相比,M2 仅以四分之一的功耗,便可提供 87% 的峰值性能。


除了性能上的提升外,M2 芯片还搭载了苹果公司的一些新技术,其中强调了以下项目:
神经引擎每秒可处理多达 15.8 万亿次操作,比 M1 多 40% 以上。
媒体引擎包括一个更高带宽的视频解码器,支持 8K H.264 和 HEVC 视频。
强大的 ProRes 视频引擎,可以播放 4K 和 8K 视频的多个流。
最新的 Secure Enclave 提供一流的安全性。
新的图像信号处理器 (ISP) ,可提供更好的图像降噪效果。

可在 APPLE 博客中可以查看 M2 芯片的更详细介绍

2022年6月11日消息,麻省理工学院安全研究人员采用 PACMAN M1 芯片攻击,成功击败了被称为 Apple Silicon 的“最后一道安全线”。据报道,在设计 M1 芯片时,苹果创建了不同的安全层,每层都旨在防止攻击者成功渗透之前的层。M1 的最后一层是被称为 PAC 的安全功能,可帮助保护 CPU 免受已获得内存访问权限的攻击者的攻击。然而来自麻省理工学院 (MIT) 的团队通过他们称为 PACMAN 的硬件成功地击败了 PAC。这项成果来自计算机科学和人工智能实验室 (CSAIL) 的研究人员。

CSAIL 发现,PAC 安全功能可以通过其开发的硬件攻击来破解,PACMAN 可以找到正确值以成功通过 PAC 的指针身份验证。且由于其 PACMAN 攻击涉及硬件设备,因此软件补丁无法解决问题。该团队表示,该漏洞也存在于其他 ARM 芯片中,而不仅仅是 M1,但还没有机会针对 M2 进行尝试。目前研究团队已将该问题通知苹果,并将在 6 月 18 日的计算机架构国际研讨会上披露更多细节。苹果尚未对此发表评论。

PACMAN 是在 M1 芯片中发现的第三个漏洞。2021年5月,安全研究员赫克托.马丁 (Hector Martin) 发现了一个名为 M1RACLES 的漏洞,该漏洞允许两个应用程序秘密交换数据。上个月,多个大学组成的团队发现了一个名为 Augury 的漏洞,可导致芯片泄漏静态数据,不过目前还没有展示出任何可行的漏洞利用方法。苹果 M1 中新型硬件漏洞:可不留痕迹攻破安全机制。

麻省理工学院计算机科学和人工智能实验室(CSAIL)的科学家发布了一项研究称,发现了一种可以绕过 Apple M1 CPU 上的指针验证机制的新型硬件攻击,称为 PACMAN。根据介绍,M1 芯片使用了指针认证的功能,该功能是针对典型软件漏洞的最后一道防线。在启用指针认证后,通常会危及系统或泄漏私人信息的漏洞会被拦截在其轨道上。目前,苹果已经在其所有基于 ARM 的定制芯片上实施了指针认证。而 MIT 新发现的这一漏洞,则可以在不留痕迹的情况下攻破这最后一道防线。此外,鉴于 PACMAN 利用的是硬件机制,因此没有任何软件补丁可以对其进行修复。MIT 方面表示,苹果的 M2 芯片也支持指针认证,但他们还没有针对其进行相关的攻击测试。

研究指出,攻击者可通过猜出指针认证码(Pointer Authentication Code,PAC)的值并将其禁用来实现 PACMAN 攻击。PAC 是一种加密签名,可以用来确认一个应用程序有没有被恶意篡改。猜测出正确值的难度也并不高,攻击者可以通过 hardware side channel 来检验猜测结果的正确性。“鉴于 PAC 可能的值数量只有这么多,他们发现可以尝试所有的值以找到正确的值”。最重要的是,由于猜测都是在推测执行下发生的,所以攻击不会留下任何痕迹。

“指针认证背后的想法是,如果所有其他的方法都失败了,你仍然可以依靠它来防止攻击者控制你的系统。我们已经证明,作为最后一道防线的指针认证并不像我们曾经认为的那样绝对。当引入指针认证时,一大类 bug 突然变得更难用于攻击。而随着 PACMAN 加重这些 bug 的严重程度,整体攻击面可能会更大。”不过PACMAN 并不会完全绕过 M1 芯片上所有的安全设施;它只能利用指针认证可防止的现有漏洞,并通过找到正确的 PAC 来释放该漏洞在攻击中的真正潜力。正由于 PACMAN 无法在没有现有软件错误的情况下破坏系统,因此研究人员认为大家可以不必恐慌。“到目前为止,还没有人利用 PACMAN 创建端到端攻击。”

值得注意的是,指针认证主要用于保护核心操作系统内核。研究指出,PACMAN 攻击甚至对内核有效,这 “对所有启用指针认证的 ARM 系统上的未来安全工作具有重大影响。未来的 CPU 设计人员在构建未来的安全系统时应该注意考虑这种攻击,开发人员应注意不要仅仅依靠指针认证来保护他们的软件。”MIT CSAIL 计划在 6 月 18 日的国际计算机架构研讨会上正式介绍这一研究。苹果方面在得知此发现后则发布声明表示,“我们要感谢研究人员的合作,因为这个概念证明推进了我们对这些技术的理解。根据我们的分析以及研究人员与我们分享的细节,我们得出的结论是,这个问题不会对我们的用户构成直接风险,而且不足以自行绕过操作系统的安全保护。”


M2 支持的内存上限为什么是24GB而不是16/32GB

一台设备的内存容量,取决于:
CPU/北桥数量
CPU/北桥对应的内存控制器数量
每个内存控制器的通道数量
每个通道下允许的 DIMM 数量
DIMM 下的 Rank 数量
每个 Rank 下的 chip 数量
Chip 下的 Bank 数量
Bank 内的 Row Column 数量

因此,除了三通道之外,理论上一条通道上三条内存,或者一条通道上一条 2R 一条 1R 的同颗粒内存,外加非对称通道的情况,都可以整出非二次幂的容量。

这点看看内存厂商提供了多少 48/96gb 颗粒就知道了,前者就是单颗 6GB,后者是 12GB。从 A12X 回看,由于内存频率不断提升,对走线和散热的要求其实是在不断提高的;如果 SoC 要跨过主板访问内存颗粒,显然对内存控制器里的 PHY、封装基板还有 PCB 基板的要求都是不断提高的。iPad Pro 当初在 LPDDR4X 时代也遇到这个问题,因为芯片发热量大了,而且需要 128bit 宽度,PoP 封装做不了; 而且选择高端 PCB 下外联的方式会增加 PCB 的成本、降低生产良率,进一步降低元器件密度。因此到了 A12X,苹果选择把 LPDDR 颗粒和 SoC 一起封装。这种封装方式这其实和统一内存不是一个概念,更不能显着突破原来内存颗粒的延迟和带宽上限; 只是相对来说更省钱、能跑更好的时序,也能兼顾散热。

毕竟 M1 芯片面积还是大了很多,又要满足 macOS 较大的内存需求,而且封装体积还要继续能上 iPad Pro 平台。因此 M1 的内存颗粒密度可以说显着提升。那本来 LPDDR4 很多桌面机器的 32GB 都是靠着四颗 32bit 位宽 8GB 颗粒做到的,手机 12GB PoP 内存用的是 64bit 位宽 12GB; 苹果要做 2x64bit 宽度,面积还要比原来小,容量还要突破原来的 6GB,只能说顶着当时颗粒的密度上限走,那自然被卡在了 16GB。

到了 M2 时代,LPDDR5 有了更高密度的 DRAM 工艺,自然能做到更大容量,只不过在这么小的面积下,做到 32GB 仍然有一定困难。进一步讲还是产品定位问题。一方面 M2 说到底和 M1 Pro|Max 类似,本质上属于 M1.5 而非 M1 的彻底换代。另外一方面 M2 还是用在 MacBook Air 和 13 寸 MBP 上,这些设备并不是准备像 MBP14/16 那样干超级重的活,加上 macOS 的 ZRAM(内存压缩)/SWAP(内存页面交换) 策略允许比较激进,且 M1/M2 能承受比较高的交换 / 压缩率,自然不会在更大的容量上做文章,甚至同代提供的内存容量就比 Windows 机型少。

Apple M2 for Linux的GCC与LLVM Clang编译器性能对比

科技媒体 Phoronix 在2022年9月上旬对运行在 Linux 上的 Apple M2 芯片 的 GCC 和 LLVM Clang 编译器进行了性能测试和对比。此次测试采用的设备是 Apple M2 MacBook Air ,运行基于 Arch 的 Asahi Linux 系统(这是目前唯一能够运行最新 Apple M2 芯片的发行版),测试基于 Linux 5.19 内核,编译器版本分别是 LLVM Clang 14.0.6 和 GCC 12.1,它们都是 Arch/Asahi 最新版本的编译器。在所有测试中,CFLAGS/CXXFLAGS 保持不变,针对 -O3 优化级别。


一共进行了数十种不同的 C/C++ 基准测试,旨在观察在运行 Linux 的 Apple M2 芯片上,GCC 12 和 Clang 14 生成的二进制文件哪个性能更佳。测试结果可见此处。可以看到,尽管 LLVM Clang 被 AArch64 供应商广泛使用,且 Apple 在上游 LLVM 上投入巨资,作为其 Xcode 使用的一部分。但至少在(Asahi)Linux 上运行时,GCC 12 编译器仍有一些二进制文件比 Clang 编译出来的更快,性能更好。当然,LLVM Clang 也不落下风,在相当多程序中的表现超越 GCC 。

小结论:GCC 和 Clang 编译器在不同领域分别有很强的先发优势,如果采用所有测试结果的几何平均值,在运行 Asahi Linux 的 Apple M2 MacBook Air 上进行测试时,GCC 12 比 Clang 14 快了近 7%。

Apple 于6月上旬在 WWDC 2023 大会上揭开了最新芯片 M2 Ultra SoC 的面纱。其性能数据非常夸张,提供 24 个 CPU 核心,最多 76 个核心 GPU,以及高达 192GB 的统一内存,内存带宽为 800GB/s。这款芯片拥有 1340 亿个晶体管,提供 32 核神经引擎。


发布会上称 Apple M2 ultra 的 CPU 速度比 M1 Ultra 快 20%,图形处理速度快 30%。这款最新的芯片搭载在最新的 Mac Pro 电脑上,标记着 Apple 产品线逐步向 Apple Silicon 过渡。据发布会介绍,搭载 Apple M2 ultr 的 Mac Pro ,执行视频转码和复杂 3D 模拟等任务的速度比基于英特尔芯片的 Mac Pro 快 3 倍。若同时开启六个视频 I/O 卡时,它能实现在一台机子上完成 24 个 4K 摄像机信号的读取,并完成实时编码。该机器售价 55999 元起。Asahi Linux 首席开发人员 Hector Martin 在 mastodon 上表示对该 Soc 表示略感失望,觉得苹果公司并没有发布一个新的、更强大的芯片,现有的 M2 ultra 更像是两个 M2 Max SoC 的组合。