Hruska|都2021年了,还把x86和ARM归为CISC和RISC?

选自extremetech
作者:Joel Hruska
机器之心编译
机器之心编辑部

William Faulker:「过去永远不会死 , 它甚至还没有过去 。 」
CISC 和 RISC 是 David Patterson 和 David Ditzel 在 1981 年正式提出的 。 四十年过去了 , 二者的发展有哪些融合与变迁?IT 新闻界资深人士 Joel Hruska 撰长文对该领域的发展史及其将面临的挑战做了详细阐述 , 以下是文章原文 。
随着基于 ARM 的 M1 被推出 , 关于 x86 和 ARM 的比较和讨论也越来越多 。 这些讨论通常还涉及 CISC 和 RISC , 因为「x86 与 ARM」和「CISC 与 RISC」之间的非常紧密 。
但这种关联造成了一种误解:「x86 与 ARM 可以被对应归类为 CISC 与 RISC , 其中 x86 是 CISC , ARM 是 RISC」 , 三十年前的确是这样 , 但现在已经不是了 。
人们经常将 x86 CPU 与其他公司制造的处理器进行比较 , 但近二十年来 x86 都没有一个真正的架构竞争对手 。

Hruska|都2021年了,还把x86和ARM归为CISC和RISC?
文章图片

发展历程
RISC 是 David Patterson 和 David Ditzel 在他们 1981 年的开创性论文《The Case for a Reduced Instruction Set Computer》中创造的术语 。 他们根据 20 世纪 70 年代后期领域内的发展趋势以及当时 CPU 面临的扩展问题 , 正式提出了 RISC 这种半导体设计方法 。 此外 , 他们还提出了另一个术语「CISC(复杂指令集)」 , 来描述许多已经存在但不遵循 RISC 原则的 CPU 架构 。
随着限制 CPU 性能的瓶颈发生改变 , 人们意识到需要一种新的 CPU 设计方法 。 原始 8086 就是遵循 CISC 设计原则的一个例子 , 它旨在通过将复杂性转移到硬件中 , 来缓解内存成本高的问题 。 这种方法强调代码密度和对一个变量依次执行多个操作的某些指令 。 作为一种设计理念 , CISC 试图最小化 CPU 执行给定任务所必需的指令数来提高性能 , 其指令集架构通常会提供一些专用指令 。
20 世纪 70 年代后期 , CISC CPU 存在很多缺点 。 它们通常必须跨多个芯片才能实现 , 因为当时的超大规模集成电路(VLSI)技术无法将所有必要的组件封装到一起 。 实现支持大量极少用指令的复杂指令集架构需要消耗 die space , 并且可实现的最大时钟速度也有限 。 与此同时 , 内存成本持续降低 , 代码尺寸变得不那么重要了 。
Patterson 和 Ditzel 认为当时 CISC CPU 仍在尝试解决代码膨胀问题 , 他们意识到绝大多数 CISC 指令都没有被用到 。 因此他们提出了一种完全不同的处理器设计方法——一个小得多的指令集 RISC , 其中的指令长度固定 , 并且所有指令都能在单个时钟周期内完成 。 尽管 RISC CPU 每条指令执行的工作量比 CISC 的对应指令少了一些 , 但芯片设计人员通过简化处理器来弥补了这一点 。

推荐阅读