Intel|苹果M1革了Intel x86的命?其实这是个伪命题( 二 )


Intel|苹果M1革了Intel x86的命?其实这是个伪命题
文章图片

以上基准测试中 , Llama Mountain 是英特尔概念验证的(基于 Core M 的)极薄无风扇平板电脑 , 其运行速度几乎是苹果的 iPad Air 的3倍 , 而现如今被称之为具有革命性意义的 M1 , 也只比英特尔或 AMD 最新的 x86 芯片快 10% 左右 。
这意味着 , 英特尔 Core M 彻底击败了苹果当时最好的芯片 。这也可以被视为证明争论 “x86 和 ARM , 究竟谁更占优势?”这一问题毫无意义的另一个有力论据 。
总之 , 这确实证明了任何芯片都不具有先天优势 。基于 ARM 的 CPU 可以从微型微控制器发展到类似 M1的芯片 , 而 x86 也可以从低功耗移动 CPU 发展到大型服务器芯片 。
无论是 x86 还是 ARM , 设计和制造都需要持续的研发 , 才能跟上时代的步伐 。
x86 与 ARM , 本质是语言种类的比较
读到这里 , 你可能对本文的观点和结论并不满意 , 因为上文并没有更详细地解释为什么 x86 与 ARM 的竞争比拼毫无意义 , 也没有解释英特尔是如何从比苹果快 3 倍发展到落后于苹果的 。
Intel|苹果M1革了Intel x86的命?其实这是个伪命题
文章图片

不过不要着急 , 下面我们展开更加深刻的分析:
首先 , 让我们从指令集架构(如 x86、ARM 或 RISC-V)的基础知识开始 , 这应该有助于进一步理解为什么对于投资者来说 x86 和 ARM 的区别无关紧要 。
简而言之 , 指令集定义了计算机可以执行的二进制机器指令 , 定义了软硬件接口——计算机无法理解 C 语言或 Java 或 Python 语言 , 它只理解属于其指令集的指令 。
这些指令从简单的基本数学计算指令(加法等)到更复杂的指令(如安全或虚拟化) 。不过前者是关键指令——几乎所有应用程序大部分时间都会使用基本数学指令 。
这些基本指令对于任何芯片来说都是相同的 , 无论其基于何种架构 。更重要的是 , 指令集只是定义了指令 , 它的作用只是定义一种机器语言 , 并没有定义这些指令如何在芯片中执行 , 最终是软件用这种机器语言来指示芯片执行指令 。例如 , 有多种方法可以在芯片中实现加法器或乘法器等功能 。
因此 , 在计算机体系结构中 , 必须做出两个区分:
指令集定义了芯片支持的所有指令 。
芯片设计的第二部分是基于任何指令集的芯片架构实际运行的问题 。在上面的实例中 , 执行指令涉及使用晶体管来创建一些有形的东西 , 比如加法器或乘法器 。
过去 20 年 , CPU 性能的进步主要归功于第二部分中流水线、乱序执行、分支预测器、多级缓存和许多其他技巧 , 大大提高了 CPU 的运行速度 。
最重要的是 , 刚才提到的所有这些“技巧”相对指令集都是完全独立的 , 它们可以在 ARM、x86、RISC-V或其他指令集中实现 。
几十年前的软件无需重写就能在现代 CPU 上运行得更快 , 开箱即用——这也是第二个区分的主要优点之一 。
即使在新指令导致性能大幅提升的情况下 , 这些技巧也会简单地复制到其他指令集中 。这方面的主要示例是向量指令或单指令流多数据流(SIMD) , 即在一组向量数据上使用一条指令 。在 x86 中 , 这被称为数据流单指令多数据扩展(SSE , Streaming SIMD Extensions)和高级向量扩展指令集(AVX , Advanced Vector Extensions) 。