向后兼容性
了解 X86 的发展历史非常有必要,因为 X86 指令集的最大特点就是极其优异的向后兼容性,所以在 x86 中可以看到从远古时代到现在的所有特性。当然在我接触 X86 之前,我能想到的向后兼容性,其实是类似于 A64 和 A32 的关系,寄存器宽度发生一些变化,有了一些新的寄存器,然而在 X86 中并不是这样:
- 有很多特性并不是直线发展的:比如说段式内存管理,就直接被踢出历史长河了
- 又很多特性被“黑科技”地复用了:比如系统调用使用的是中断门
- 过于古老以至于不符合直觉了:直觉来源于现有的软硬件架构,而在古代可能很多相关技术环境和现代不一致,导致直觉无法发挥作用。
4004, 8008, 8080
在 1971 年,Intel 开发出第一款微处理器,这是一款 4 位处理器,称之为 4004 ,但是没有掀起什么浪花。
在 1972 年, Intel 开发出来了 8008 ,这是一款 8 位处理器,也是首款在 PC 上使用的处理器。
在 1974 年,Intel 开发出了 8080 ,它是工艺更新的 8 位处理器,运算速度比 8008 提升了 10 倍。这使得它成为了首款真正的在市场上销售的处理器。
在 1975 年,AMD 推出了 Am9080 ,这是 8080 的逆向(也就是抄袭)。但是 AMD 并没有被 Intel 起诉,反而是与 Intel 在 1976 年签署了 80 年的交叉许可协议,即允许 AMD 生产这期间 Intel 设计的芯片。这是因为许多市场为了预防垄断,并不接受“单一供货商”的模式,所以 AMD 可以作为 8080 的第二供货商;同时 AMD 还可以帮助扩大 Intel 的产能,抢占市场。
8086
在 1978 年,Intel 推出了 8086 ,这是一款 16 位处理器,它具有 20 位地址总线,所以采用了段式管理的方式,这种模式被称为实模式(real mode),对于多任务管理并不友善。这款处理器使用的 ISA 就是 X86 ,一个传奇诞生了。
在 1979 年,Intel 在 8086 的基础上开发出了 8088 ,这是一款 8 位处理器,这是因为 16 位处理器的成本过高,反而 8 位处理器更受到市场青睐,8088 被 IBM PC 采用,在商业上大获成功。
在 1982 年,Intel 开发出了 80286 ,它初步引入了保护模式(特权等级),为多任务管理提供了硬件支持。
而 AMD 在这几年专注于“Intel 吃肉,我喝汤”,但是当它仿照 80286 开发出 Am286 后,Intel 意识到 AMD 有了一定的威胁(此时 Am286 的性能比 80286 要明显好),所以就在 1985 年撕毁了授权协议,禁止 AMD 生产自己设计的芯片(也就是从 80386 开始)。
80386
在 1985 年,Intel 推出了 80386 ,这是一个 32 位的处理器,它搭载的 ISA 也被称为 IA-32(应该算 X86 的一个分支),它引入了分页机制。80386 成为了新的经典设计。
在 1989 年,Intel 推出了 80486 ,他有两个特点,一个是搭载了浮点指令集 X87 ,另一个是在微体系结构中引入了流水线架构。
因为协议撕毁,所以 AMD 只好自己研发 CPU ,少了 Intel 的设计,AMD 研发之路艰辛至极。在 1991 年才推出了 Am386 ,但是性能却比 80386 要更好(Am386 的频率是 40MHz ,而 80386 只有 33MHz)。
在 1992 年,AMD 推出了 Am486 ,此时性能依然要好过 80486 大约 20% 。
P5 vs K5
在 1993 年,Intel 推出了 Pentium 奔腾 CPU ,它在微体系结构中首次引入了超标量架构(P5 架构)。除了超标量外,Pentium 还引入了分支预测单元。
在 1996 年,Intel 推出了基于 P5 架构的微处理器 Pentium MMX,添加了 MMX 指令集。MMX(Multi-Media Extension)指令集,目的是增强提升 CPU 在 2D 音像、图形和通信等多媒体应用对诸如编码与解码等工作的效率。MMX 的本质是一种 SIMD 指令集,后来的 SSE (Streaming SIMD Extensions) 和 AVX (Advanced Vector Extensions) 都是在其上发展出来的。
Pentium 也被叫做 80586 ,据传之所以 Intel 要起一个新名字,是为了和友商 AMD 拉开差距。 Pent-
在英文前缀中,就是“5”的意思。
在 1996 年,AMD 也推出自己的新产品 K5 ,但是上市时间有些过晚了,加上项目一直受到设计和制造问题的困扰,所以市场表现并不好。
P6 vs K6 K7
在 1996 年,Intel 发布了 Pentium Pro ,它在微体系结构上引入了乱序发射设计,并且集成了 L2Cache ,这种架构被称为 P6 架构。但是因为 Cache 的成本过高,所以 Pentium Pro 属于是“叫好不叫座”,是 Intel 第一个失败的产品。
在 1997 年,Intel 发布了 Pentium II ,解决了一些 cache 的成本问题;在 1999 年发布了 Pentium III ,引入了新的 SIMD 指令集 SEE 指令集。它们都是 P6 架构。
除此之外,Intel 开始对市场进行细分,它在 1998 年引入了 Celeron(赛扬)来抢占低端市场,同年在服务器领域引入 Xeon(至强)。
而在 ARM 这边,它买断了 NexGen 公司,这家公司的 Nx686 架构成了 ARM 的 K6 架构,在 1997 年时投入市场并大获成功。
在 1998 年,ARM 推出了 K6-2 架构,这个架构上搭载了 3DNow! SIMD 指令集。,用于对标 Pentium II 和 III 。
在 1999 年,ARM 推出了 K7 架构,也被称为 Athlon(锐龙)架构,新名字传达出 ARM 不再是 Intel 山寨机的决心。事实也确实这样,锐龙吊打 Pentium III 和它的后继产品。
此外,ARM 还发布了 Duron(毒龙)来抢占低端市场。
Itanium vs K8
在 2001 年,Intel 推出了 Itanium(安腾)CPU ,它尝试不再兼容 X86 指令集,而是提出新的 64 位指令集,然后就被市场狠狠教育了,安腾的销量非常差。
在 2003 年,ARM 推出了 Athlon-64 架构,这是一种兼容之前 X86 指令集的 64 位指令集,被称作 AMD64 或者 X64 ,因为反响很好,导致 Intel 最后也不得不遵循这套指令集开发 64 位处理器。
在 2002 年,Duron 停产,接替它的是 Sempron(闪龙)。此外在 2003 年,ARM 也推出了自己的服务器处理器 Opteron (皓龙)。
SkyLake vs Zen
在后面的时间里,随着工艺的进步放缓,摩尔定律逐渐失效,架构设计也没有太多的花活儿,所以后面的趋势就变成了:
- 挤牙膏:Intel 采用了 Tik-Tok 策略,在 Tik 年优化制程工艺,在 Tok 年优化架构设计。但是这种进步都比较缓慢。
- 和 GPU 集成:ARM 因为有 GPU 生产线,所以提出了 APU 的概念,即 APU = CPU + GPU 。
- 多核:既然单核性能无法提升,那么就采用多个处理器核心。
在这段历史中,应用场景被细化成“个人 PC”和“服务器”两个领域,Intel 和 AMD 在这些分赛道上展开了激烈的角逐。在 PC 领域,是 Core(酷睿) vs Ryzen ,在服务器领域是 Xeon (/ˈziːɒn/,至强) vs Epyc(霄龙)。
Server CPU 支持多路互联,简单的说就是 1 台机器可装多个 CPU,PC CPU 不支持这种工作方式。由于服务器 CPU 针对高稳定性设计,在用料上一般都是选用优质材质,并且支持多路互联和长时间工作,和相同性能的普通 CPU 比,价格自然也是更高。此外,高端服务器 CPU 更上运用大量的最新先进技术,价格更贵。
需要注意的是,上边的名字只是产品系列名,并不是微架构名。Intel 在这个时期的微架构是可拓展 CPU (Scalable Processor),名字先是 SkyLake ,然后是 Cove ;而 AMD 的微架构是 Zen 。
SkyLake 相比于其前任,在多核互联,片内总线方面,从 Ring 架构(一维)演变成了 Mesh 架构(二维)。在片间总线方面,从 QPI 演变成了 UPI 。
PC
在这段时期,Intel 的处理器系列为 Core(酷睿),基本上吊打 AMD ,这是因为 AMD 经历了一个非常失败的收购案,同时本身的制程工业也不如 Intel 。此外 AMD 还过分依赖 GPU 集成和多核处理器,比较忽视单核性能的提高,导致市场对 AMD 并不买账。
这种吊打情况直到 2017 年,ARM 推出了基于 Zen 架构的 Ryzen(锐龙)系列,在服务器市场推出了 Epyc(霄龙),皓龙时代结束。同时速龙堕入低端市场。这种策略和技术的调整使得 AMD 的市场占有率又重新增加。
Server
Intel 在服务器 CPU 的型号格式如下:
其中产品级别包括 Platinum(铂金), Golden, Silver, Bronze ,原本是 E3, E5, E7 ,这些都类似与 PC Core 的 i3, i5, i7 。分化高中低端市场。
Intel Scalable CPU 代际表格整理:
时间 | 代数 | CPU 代际 | 制程工艺 | 微架构 |
---|---|---|---|---|
2017 | 1 | Skylake(server) | 14nm | Skylake |
2019 | 2 | Cascade Lake | 14nm | Skylake |
2020 | 3 | Cooper Lake | 14nm | Skylake |
2021 | 3 | Ice Lake(server) | 10nm | Sunny Cove |
2023 | 4 | Sapphire Rapids | 7nm | Golden Cove |
在 Lake 之前的架构是 Bridge 和 Well 架构。
总结
Intel 和 ARM 相爱相杀了半个世纪,回顾它们的角力,我们关注了处理器在位宽、安全、频率、架构、拓展指令集、工艺和市场等多个方面的较量。