AMD 重返荣耀?解析曾技压英特尔的 64 位技术到全新的 Ryzen 架构

责任编辑:editor004

2017-04-18 10:46:08

摘自:Technews科技新报

即使 Intel 推出新了的 CPU,其 CPU 硬件架构效能提升却不足,导致新的 CPU 效能稍微落后采用 K8 架构的 Opteron 以及 Athlon 64。

今年,众所期待的 AMD Ryzen CPU 终于上市了。从 2012 年开始研发,背负着带领 AMD 重返荣耀的 CPU,一上市便造成轰动。极高的性价比以及低功耗,为笔电以及桌机的 CPU 市场,注入了活水。然而,当众人都说要重返荣耀,那 AMD 的过往荣耀是什么?这一间公司又是如何让 Intel 感到头疼?这一切,就从 AMD 发布 x86-64 指令集架构说起。

64 位处理器的兴起

在 32 位 CPU 中,如果单纯以 CPU 做存储器定址时,4GiB 为其极限。多余的空间,则需额外的软硬件支持。在早期的超级电脑中,这一类的需求可以靠钱解决。然而,随着存储器技术的发展,在一般商业甚至是一般消费性市场中,4G 以上的存储器将越来越常见。如果有一款 CPU 可以直接定址大量的存储器,将带来相当大的优势。

因此,从 90 年代起,众多的 CPU 制造商开始研发制造 64 位的 CPU。其中,PC 市场的领头羊,Intel 便从 1994 年开始,和 HP 共同发展新的 64 位指令集架构以及 CPU,以因应接下来的 CPU 市场竞争。然而,Intel 所提出的 64 位 CPU,其指令集架构和旧有的 x86 截然不同,将导致原有的程序会无法在新的 Intel CPU 上执行。

1999 年时,AMD 则发布和 Intel 截然不同的方法。AMD 决定将既有的 x86 指令集架构,扩增成 64 位的指令集。采用这个方法意味着原有的程序,将得以执行在新的 AMD 64 位的 CPU 上,大大减低后续重新编写程序的需求。指令集架构的差异,替 AMD 立下胜利的基石。

64 位指令集架构之战,AMD 大获全胜

在 2001 年,Intel 终于发布其第一款的 64 位 CPU──Itanium。然而,这一款 CPU 在市场的接受度却没有如同其所预期般,迅速的被采用。最主要的原因,莫过于软件的数量不足、以及和其他 64 位处理器相比的弱势效能。

其中,软件数量不足的关键,就在于指令集架构的差异。在高速计算里面,为了让程序得以执行的更快,大多数的工程师会修改或直接编写组合语言,以期让程序能更符合硬件的执行模式。如果更换不同的指令集架构,将需要耗费大量的时间修改组合语言,甚至重新开发整个程序。

此外,没有明显优势的 CPU 效能,也让开发商不愿投入更多的资源在 Intel 的 Itanium 上。因此,Intel 只能加速下一款 CPU 的开发,以期待能满足市场的需求。

2003 年,震撼市场的消息发出。AMD 发布了第一款 x86-64 的 CPU──Opteron 以及 Athlon 64。光是让既有的 32 位 CPU 运行于其上,就已经为 AMD 添增光彩。更不用说新的 CPU 所采用的硬件架构 K8 是何等的强悍。

扭转颓势,Intel 版 x86-64 现身

为了避免商用以及高速科学计算领域的市占率下滑,Intel 于 2004 年时紧急推出新的 Xeon CPU。此外,在桌机市场,Athlon 64 的优秀效能,让 Intel 不得不以既有的 Pentium 4 为基础将指令集架构扩展至 64 位。

然而,即使 Intel 推出新了的 CPU,其 CPU 硬件架构效能提升却不足,导致新的 CPU 效能稍微落后采用 K8 架构的 Opteron 以及 Athlon 64。K8 架构成了传说,为 AMD 带来荣耀。同时,其主要硬件架构师 Jim Keller 也逐渐为人所知。

迈向多核心之路,黄金交叉将出现?

在 2005 年 5 月时,AMD 以及 Intel 皆发布了消费者市场的双核心 CPU,分别为 AMD Athlon 64 X2 以及 Intel Pentium D。第一款消费市场的双核心 CPU,揭开了崭新的时代序幕。多的核心便意味著作业系统中的多执行绪,可以同时运行在一颗 CPU 中,大幅降低执行绪所需等待的时间。

比较这两款 x86-64 双核心 CPU 的效能时,这一次,AMD 持续维持着其领先的姿态,Athlon 64 X2 的效能大幅超越 Pentium D。AMD CPU 的市占率一举攀升,就在黄金交叉将要出现之时。Intel 展开逆袭,2006 年 8 月,Intel 推出了下一代的 CPU──Core 2 系列。

▲ 由 CPU Benchmarks 所统计的资料,该资料是统计全球使用该款 benchmarks 的 CPU 厂牌。虽然不是实际的 CPU 出货量,但是足以当做参考。(Source:CPU Benchmarks)

新系列的 Intel CPU,断开和 Pentium 4 的关联,以 Pentium III 的 CPU 硬件架构为基础重新设计,并采用 AMD 所发展的 64 位指令集架构。这一次,Intel 以过往成功的产品为基础并重新设计,以 Core 为名重新出发。这一次,Intel 结束产品线的混乱以及产品效能低落的数年。

同步多线程,彻底发挥 CPU 核心的计算能力

在 2008 年,Intel 将其 Hyper-Threading 的技术重新导入 Core i 系列 CPU,也就我们现在所熟知的 i3、i5、i7 处理器。所谓的 Hyper-Threading,便是在一个 CPU 核心内部在将其分成两份。然而,究竟是如何将 CPU 切成两份呢?根据 Intel 于 2002 年所发布的 Hyper-Threading Technology Architecture and Microarchitecture便可略知一二。

在论文中,Intel 便给出了两张比较图。两个核心最主要的差异,在采用 Hyper-Threading 技术中的 CPU 中,Architecture State 单元会比一般的核心多一个。大致上,Architecture State 单元包含了多数的暂存器以及中断讯号的控制器等,用以记录执行绪执行的资讯,是无法被共用的资料。

▲ 左图为未采用 Hyper-Threading 技术的 CPU Cores,右图则是采用了 Hyper-Threading 技术的 CPU Cores,其中,两者间的差异为一个 CPU Core 中有不同数量的 Architecture State 单元。(Source:Intel Technology Journal Vol. 1)

因此,在采用这个技术之后,只需要额外的 5% 面积,便可以达成更高的指令集平行化,让 CPU 尽可能地满载,释放 CPU 所有的潜能。根据这一篇论文中所提供的数据,采用这一项技术后,在多执行绪的执行情况下,将可带来将近 30% 的效能提升,相当惊人。

做为应对,AMD 于 2011 年推出 Bulldozer,其采用的并非是 Intel 所使用的 SMT 技术,而是 Clustered MultiThreaded(CMT)技术。此技术是将一颗 CPU 内部的整数执行单元复制一份,让 CPU 具备在同一核心内部执行两个执行绪能力,在后续要扩增核心的计算能力上,相当的容易,所需要的修改相对的较少。

然而,其缺点便是没有办法共用执行单元,无法享有 SMT 中最重要的优点,用两个 Thread 尽可能让执行单元不会有空闲状态。此外,两个独立的 L1 Cache 虽然感觉在实作上会比较简单。但是,为了要维持 Cache 的一致性,便需要拥有额外的 Core 内部资料交换单元,大大的提升控制电路的复杂性。

最后,结果便是众所皆知的,AMD 于 x86 的 CPU 市占率直直落,现今在中高端的笔电市场中,更几乎看不到采用 AMD CPU 的产品。就在 AMD 要消失在市场之中时,Zen CPU 的消息传出!

Ryzen CPU,硬件架构的重新设计

在 2012 年,K8 的主要硬件架构师 Jim Keller 回到 AMD。这一次,他的回归,让 AMD 重返荣耀的声音响起。是否新的 CPU 可以再现 K8 的传说?这一次的 Ryzen CPU 和先前的 AMD CPU 有何差异?

将底层硬件架构做比较,可以发现 Ryzen CPU,取消了 Bulldozer 所提出的 Integer Cluster,并以类似 Intel Hyper-Threading 的技术取而代之。如此便能让 CPU 尽可能地达到满载的状况。

此外,新的 Ryzen CPU 也引进了 Intel 于 Sandy Bridge 架构开始采用的 Micro-op Queue,以减少重新 Decode 的需求,提升单次可执行的指令数。借由更多先进的技术,让 AMD 得以获得大幅度的效能提升。也因此,AMD 公布 Ryzen CPU 其每个周期可以执行的指令比前一代 CPU 多 52%,改善幅度相当大。

至于实际的 Ryzen CPU 效能如何呢?现在已经有相当多的评测文章将 Intel Kaby Lake 系列和 Ryzen 系列 CPU 做比较,在这不再多做评比。不过,在一般的应用上,AMD 的 CPU 不会再像之前的 CPU,看不到 Intel CPU 的车尾灯。

▲ AMD 于 2016 年 HOT CHIPS 上所发布的架构图。从图中可以发现,新的架构取消掉 CMT 的技术,让 CPU 核心变得较不复杂。(Source:AMD)

至此,我们已经看完了两大 x86 巨头间的厮杀,同时在短短的 17 年间,CPU 产业已经采用相当多的技术,以满足与日渐增的计算需求。千禧年后 CPU 的发展简史,让我们见证了一代 CPU 王者的兴起没落以及归来。

▲ 从图中可以发现在 AMD Bulldozer 中,一共有两个整数运算单元,此技术便称为 Clustered MultiThreaded。(Source:By Shigeru23 (Made by uploader (ref:[1], [2], [3])) [GFDLor CC BY 3.0], via Wikimedia Commons

(首图来源:pixabay)

如需获取更多资讯,请关注微信公众账号:Technews科技新报

链接已复制,快去分享吧

企业网版权所有©2010-2025 京ICP备09108050号-6京公网安备 11010502049343号