1、没错,英特尔、AMD 又到了产品升级换代的时候了。英特尔的 Tick-Tock 到了Tock 这一步,新产品 Haswell 箭在弦上;AMD 虽然暂时落后一局,但新的压路机也是曙光在前,蓄势待发。那么,究竟 Haswell 和压路机都有哪些改进?英特尔和 AMD 的竞争又会开发出哪些新技术呢?本文将带你提前了解英特尔和 AMD 的下一代处理器架构。Haswell小改进,大步伐从英特尔发布了基于 Core Microarchitecture(酷睿微架构)的 Core 2 Duo 系列到现在,英特尔对处理器内部核心架构的改进并不算大。从 Core 2 Duo,到Nehalem Core i7,然
2、后到 Westmere、Sandy Bridge 直到今天的 Ivy Bridge,CPU 微架构都可以算作是酷睿微架构的继承和发展,更多的变化则是工艺、总线、缓存等外围部件。在 Ivy Bridge 后,英特尔执行的是 “Tick-Tock”中的“Tock”战略,这意味着 Ivy Bridge 的继承人“Haswell” 所面对的目标是“使用成熟工艺,升级 CPU 架构”。除了处理器外,Haswell 处理器将搭配代号为Lynx Point 的主板芯片组,组成 Shark Bay 计算平台。Haswell 属于 Tock 部分,工艺不变(实际上也升级了),架构进步。从目前掌握的消息来看,Ha
3、swell 相比 Sandy Bridge 来说,在 CPU 架构方面改进最大的当属加入了新的、有利于多线程执行的 TSX 扩展,以及大幅度提升整数计算性能的 AVX 2.0 技术。除此之外,Haswell 在工艺方面也有所改进,当然 CPU 内部一些组件也会做出微小调整,但对整个 CPU 架构的影响不大。另外,在集成图形处理器方面,Haswell 的图形性能会有比较明显的增长,EU单元数量会增加,功能上会进一步支持 Direct X11. 1。在结构和扩展性能方面,Haswell 在接口、封装模式上会做出一系列改动,CPU 内部集成的电压控制单元会有改进,芯片组方面会采用更新的 8 系列芯片
4、组。对玩家的一个好消息是,Haswell 有望实现一定幅度的自由超外频。英特尔在 IDF 2012 会议中对 TSX 扩展的解释。TSX 和 AVX 2.0 进驻 Haswell 的 CPU 架构改进Haswell 的 CPU 架构改进主要集中在对 CPU 应用的改进上,本身硬件基础如传统的四发射设计、分支预测、内存控制器、缓存设计等部分的改进都比较小。因此本文的介绍重点也会集中在 Haswell 新增的 TSX 和 AVX 2.0 功能上。可用、安全的细粒度线程锁定TSX 扩展说起 TSX 的功能,先要从 CPU 超线程技术讲起。CPU 超线程技术的主要目的是在 CPU 的一个处理核心中,同
5、时运行多个线程。这项技术的思想来源甚至可以追溯到上个世纪 90 年代的 “指令并行化”思想。从技术发展的角度来看,类似“指令并行化”在发展过程中出现了诸如粗粒度多线程(Coarse-Grained Multi-Threading)、细粒度多线程( Fine-Grained Multi-Threading)和同步多线程(Simultaneous Multi-Threading)等多种方式,这些方式各有特色,也各有优劣。所谓粗粒度多线程,是指在单一线程操作过程中,如果遇到某线程长时间延迟,那么立刻将此线程锁定并切换到另一线程,执行完后再切换回来。举个例子来说,粗粒度多线程类似于如下情况:在公用服务
6、器上有一个文件夹,里面有100 个文件。当 A 用户修改文件夹中任何一个文件时,整个文件夹会被锁定并进入只读状态,当 B 用户要访问文件夹时,他只能读取、复制文件夹内的文件,但无法修改。AVX 2.0 将带来整数和浮点性能的大提升。粗粒度多线程是相当容易实现的一种多线程方案。这种方案的优势在于控制起来很简单,不容易出现冲突,但相对来说,粗粒度多线程“竞争损耗”比较大。所谓“竞争损耗” 是指多个并行线程由于锁定等问题,最终并行化不理想,操作中串行化大于并行化,最终带来的性能增益很微小。为了解决这个问题,细粒度多线程开始出现。它是指在每个时钟周期内,多个线程并行切换操作。依旧使用上文的例子来解释细
7、粒度多线程:公用服务器上的文件夹中有 100 个文件,A 修改文件夹的 0 号文件时,其余的 99 个文件并不会被锁定,B 如果想修改 3 号文件,依旧可以自行修改。这样的锁定 “粒度”相比之前的案例要小很多,可以锁定发生在更为细微的单个文件上,而不是整个文件夹。细粒度多线程相比粗粒度多线程,对线程的控制更为细致,理论上并行度更好,但实际上细粒度多线程对程序的锁定更为细致,因此编程更为复杂,更容易出现错误和冲突。此外,细粒度多线程由于经常需要来回切换线程,每一次切换会浪费一定的时间,因此在单任务性能上细粒度多线程可能不如粗粒度多线程。总的来看,无论是细粒度还是粗粒度,都各自有优缺点,不能一概而
8、论。下面回归主题,目前处理器使用的多线程技术由于编程难度等问题,多使用粗粒度多线程,程序员只要在多个线程有可能冲突时直接锁定某线程即可。但这种粗粒度多线程在当前的应用环境下对性能提升的帮助有限,特别是对 CPU多线程性能提升不大。实际上早在 IDF 2006 上,英特尔提出未来的处理器将使用事务型内存(Transactional Memory)和一些扩展技术来加强多线程的性能。所谓事务型内存,英特尔在这里应该并非是指物理内存或者与之相配的硬件设计要做出重大变化,而是指在程序编制过程中内存控制和使用的方法要改进为事务型内存的所代表的方法,也就是软事务型内存,其主要内容是原子对象和冲突判决器。简单
9、来说,事务型内存的作用是针对不同事务(可以简单理解为线程)处理进行判断和沟通,并且在事务出错时能够回到之前的状态,从而在多任务并行处理时尽量避免发生错误。在提出事物型内存后,英特尔又发布了一篇名为“Transactional Synchronization in Haswell”的文章,介绍了下一代 Haswell 上即将使用的 TSX扩展。TSX 的作用很明确,就是搭配事务型内存使用,为未来的 CPU 提供更强大的多线程能力。英特尔认为,在使用了事务型内存、并采用了 TSX 扩展后,TSX 扩展能够自动判断、评估软硬件的情况。在使用细粒度线程锁时,TSX 扩展能够帮助程序员实现更为简单、准确
10、的无错细粒度线程锁。根据英特尔数据,在使用了事务型内存和 TSX 扩展后,部分锁操作的性能可提升 13 倍。在软件仿真中,比如事务型内存锁操作只需要 4.6 秒,而传统内存需要高达 10.6 秒,性能提升显而易见。当然,采用 TSX 扩展后,性能提升并非马上体现。TSX 扩展的应用场合和内容都比较复杂,需要软件、硬件的全面配合,并且目前的软件基本上不会在TSX 扩展中带来明显的性能增益。只有那些符合英特尔要求的软件,才能在多线程应用中有相当明显的、相对于传统编程方法的性能提升,这属于软件普及和应用的道路问题,还相当漫长。整数和浮点性能继续提升AVX 2.0AVX 是 Advanced Vect
11、or Extensions 高级矢量扩展的简写, AVX 在之前的Sandy Bridge 和 Ivy Bridge 上就已经开始使用。目前的 AVX 指令集主要是用于增强浮点计算性能,它使用了 256bit SIMD 浮点指令集,支持三位数和四位数操作,也支持 VEX 编码方式。新的 256bit 浮点计算以及各种特色功能等相比前代的 128bit 有了巨大提升,在最理想的情况下,256bit 一次可以读更多的指令,浮点性能最高提升可以达到 128bit 的 2 倍。另外,目前的新软件也开始使用 AVX 指令集来提升浮点计算能力,增强计算效能。Haswell 的芯片面积并不大,图为早前流传出
12、的 Haswell 对比 Ivy Bridge、Sandy Bridge 等处理器的核心晶片。在新的 AVX 2.0 中,英特尔也将整数计算部分升级到 256bit SIMD 阵列,CPU的整数计算性能得到大幅度提高,此外还添加了一些新的指令用于继续加强浮点性能。之前 Sandy Bridge 和 Ivy Bridge 不支持的 FMA 浮点乘积累(Floating Point Multiply Accumulate),在 Haswell 中终于给予支持。不过英特尔支持的 FMA 指令依旧是 FMA3,AMD 则更进一步支持 FMA4(FMA4 相比 FMA3,除了在数据格式要求上更为灵活一些
13、外,和 FMA3 相比只是一种计算的两个方面而已,并非换代性技术)。不过英特尔则认为 FMA3 已经能够提供更高的峰值速度,在高性能计算、图形处理等计算中有不错效果。业内人士根据英特尔公布的 Hawell 的 GPU 部分架构图画出的详细架构内容,相比 Ivy Bridge 的 GPU 部分基本没太大变化。AVX 2.0 除了 256bit 整数计算以及 FMA 指令的加入外,还额外增加了不少用于加强计算、降低编程难度和提高精度的指令集,比如任意到任意排列(Any-to-Any permutes)、矢量位移(Vector-Vector Shifts)、Gather/Scatter 指令以及 3
14、 操作数通用位处理指令(3-operand generalpurpose Bit manipulation instructions)等。这些指令的加入,使得 CPU 可以在数据压缩、大规模计算、图形处理中速度更快,对程序员来说,编程过程也可能由于新指令集的使用而更为简单轻松。根据英特尔的数据,AVX 2.0 搭配 Haswell(L1 缓存带宽从前代的 48Byte/cycle 增加到 Haswell 的 96Byte/cycle,L2 从 32Byte/cycle 增加到 64Byte/cycle)后,CPU 的每个核心、每时钟周期的单精度和双精度浮点理论最高性能翻了一番,每个核心、每时钟
15、周期的计算能力分别达到了 32FLOPs和 16FLOPs。再考虑 CPU 的高频率和多核心,在浮点能力方面 Haswell 将继续大幅度前进。更多亮点封装规格、超频和功耗等在 CPU 其余架构部分,比如桌面 CPU 的四个物理核心、环状总线、Turbo Boost 加速、 PCI-E 3.0 支持以及双通道内存等,Haswell 和上代 Ivy Bridge 基本没有差别。其余的一些参数,如接口等物理规格,Haswell 相对前代产品还是做出了一定程度的更改。Haswell 处理器的桌面平台使用了新的 Socket H3 接口,针脚数量更改为 1150个,支持 35W95W 的散热解决方案。
16、移动平台分为两部分,第一部分是Socket G3 插槽,947 针脚,依旧是双芯片封装,TDP 范围是 37W47W 之间,嵌入式产品会降低到 15W;第二部分则是全新的单芯片 SOC 接口,TDP降低到 15W。第二种 SOC 类型的单芯片封装是专门为超级本和一些对面积要求很严格的产品而设计的,因此玩家可能会看到基于 Haswell 的体积更小、更轻薄的移动设备上市。Haswell 还有特别值得注意的改进之处,那就是调压模块。现在的 CPU 中往往会集成不同的部分,比如 CPU 核心、缓存、北桥、I/O 接口等。这些部件在工作时需要不同的电压输入,因此 CPU 中会涉及调压模块来调整、监控每
17、个部分的电压、电流等情况。在 Haswell 之前的产品中,调压模块分为五大部分,分别针对 PLL 锁相环、处理器内核、图形内核、 System Agent 部分、I/O 部分等分别调节。在 Haswell 上这五部分合为一体成为一个独立的输入 VR,集成度更高。目前尚没有特别明确的消息说明调压模块和为一体后对超频时的电压控制有什么影响,不过和 Haswell 对超频略微友善的态度来看,至少不应该太过负面才是。没错,Haswell 对超频更为友善了。之前的 Sandy Bridge 和 Ivy Bridge 的外频几乎不能调节,倍频调节除了“K”系列产品外,其余产品都受到很大限制。在Haswe
18、ll 上,英特尔决定对超频特别是外频的控制稍稍放开,引入了之前在LGA 2011 平台上所使用过的技术时钟参考比率( Reference Clock Ratio)。Haswell 外频被分为 1.0、1.25 和 1.67 三个级别,最高外频可以达到167MHz,虽然对超频玩家来说,传统以 “1MHz”为单位的超外频再也不会回来了,但至少 Haswell 有希望通过改变外频来提升频率。Haswell 的功耗也进一步下降,首先是工艺,Haswell 的工艺依旧是 22nm 3D晶体管。但由于工艺进步,Haswell 的 22nm 工艺和 Ivy Bridge 相比显然要更为先进一些,英特尔没有具
19、体说明改进在哪些方面,只是含混地说“工艺不断进步,产品设计也有了变化,晶体管分配自由度更高”等。其次则是具体功耗数值了,一些演示消息表示 Haswell 功耗可以降低到最低 7.5W 的惊人程度,技术上自然有一定革新。英特尔为 Haswell 加入了一个 24MH 的超低 Bask Clock,用于超低电压处理器节能。节能模式上也加入了更深度休眠、更低电压唤醒、更少组件运转的 C8、C9、C10 节能模式,甚至可以直接关闭除了电源和部分缓存外的其余所有部分,在不同的睡眠模式中切入切出的速度也最多提升了 25%,更有利于节约能源了。规模更大的 EU 单元Haswell 的 GPU 改进英特尔在图
20、形性能上每一次产品革新都宣称大幅度提升性能,但实际产品的表现却依旧难以和同期的入门级独立显卡抗衡。除了驱动等一直以来都不占优势的部分外,英特尔在 GPU 硬件设计上的弱势也是非常重要的原因之一。不过好在 Ivy Bridge 的 GPU 部分终于在硬件架构上支持了 DirectX 11,也加入了一个曲面细分单元,算是完成了 DirectX 11 的所有功能支持。相比 AMD 和NVIDIA 比拼抗锯齿技术、比拼通用计算性能,英特尔暂时还处在“是否跑得起来不重要,有没有才是关键”的层次上。由于 Ivy Bridge 的 GPU 部分设计还算比较合理,因此 Haswell 的架构没有大规模改动,反
21、倒是开始进行横向的规模扩张。根据英特尔的介绍,Haswell 的GPU 部分和 CPU 完全捆绑在环形总线上,可以使用 L3 缓存,并且 GPU 和CPU 部分的 TDP 可以做到动态调整。一般情况下 GPU 和 CPU 不会同时满载,GPU 很忙碌的时候 CPU 往往都是在等待 GPU 传回处理数据,因此 Haswell可能会让 GPU 和 CPU 频率、功耗在更大范围内联动。这样能够在 TDP 允许的范围内获得更为优秀的图形性能。此外,Haswell 还改进了 GPU 的纹理采样性能,最高可提升 4 倍,这种改进在目前高清晰纹理普遍使用的情况下非常有用。至于 GPU 规格方面,英特尔确认了
22、三种版本,GT1、GT2 和 GT3。从英特尔给出的消息来看,GT2 的规格可能是 GT1 的两倍、GT3 则是 GT2 的两倍。不过 GT3 仅仅用于移动设备,桌面 CPU 只有 GT1 和 GT2 两个版本。根据业内一些消息,每个 EU 单元有 4 个 ALU,GT1 版本可能有 6 个或者 10 个 EU 单元,总共就是 24 个或者 40 个 ALU,1 个曲面细分单元(之所以有两种猜测,是因为在 Sandy Bridge 和 Ivy Bridge 上,英特尔给 GT1 同档次的产品都只布置了 6 个 EU 单元,Haswell 上也可能存在这样的情况,不过英特尔也有可能布置 10 个
23、 EU 单元用于加强入门级产品的图形性能)。GT2 则拥有 20 个 EU单元,80 个 ALU 和 2 个曲面细分单元,GT3 则直接翻倍到 40 个 EU 单元、160 个 ALU 单元和 4 个曲面细分单元。仅仅从 ALU 的数量来看,目前的入门级显卡比如 NVIDIA 的 GK107 核心,至少有 384 个 ALU,而 AMD 的 HD 7750 也拥有 512 个 ALU,Haswell 的 ALU 数量上还是无法和入门级低端显卡抗衡,性能表现上自然不会太好了。英特尔在图形性能上追求的是“ 功能型”产品,因此除了图形性能,传统属于显卡处理的视频方面,Haswell 也有改进。首先是
24、视频输出方面,Haswell 的GPU 支持 DVI、HDMI 1.4a、Display Port 1.2、e-DisplayPort 等新规格,视频输出能力方面有了保证。在视频的编、解码能力上,它支持 JEPG、Motion JPEG(一种使用 JPEG 压缩帧的视频格式)、SVC(弹性视频编码)和MVC(多视角视频编码)等多种视频格式的解码。在视频处理上, Haswell 的GPU 拥有一些新的模块,比如伽玛扩展(GE)、肤色调节过滤器、帧率转换、图像稳定引擎等。功能更多全新的 8 系列芯片组在本文一开始,曾提到过 Haswell 处理器的接口已经改变,目前的 7 系列主板已经不能继续支持
25、 Haswell 处理器。Haswell 处理器相搭配的是全新的英特尔8 系列主板,芯片代号为 Lynx Point。英特尔表示 Lynx Point 在 I/O 接口、存储性能、安全性能以及管理性能方面都有颇多特色。安全性能和管理性能主要是商业用途,与普通玩家关系不大,比较有亮点的是 I/O 接口和存储性能。首先来看 I/O 接口。Lynx Point 对 USB 3.0 和 SATA 6Gbps 支持更为灵活,比如 USB 3.0 最多可以支持 6 个、SATA 6Gbps 最多可以拥有 6 个。但这是有条件的,因为 Lynx Point 一共有 18 条 PCI-E 2.0 通道,其中
26、5、6 两条通道可以根据需要分配为 USB 3.0 或者 PCI-E 2.0,13 、14 两条通道也可以分配给SATA 6Gbps 或者 PCI-E 2.0。换句话来说,Lynx Point 的 PCI-E 通道有 4 条可以灵活配置,既可以作为 USB 3.0 或者 SATA 6Gbps,又可以作为 PCI-E 存在。这让厂商设计和用户选择余地更广,可以根据需求来搭配是要更多的USB、SATA 还是 PCI-E 接口。其次则是存储方面的进步。Lynx Point 支持 Fast Synch Streaming(快速同步流)、UEFI 快速启动以及 Lake Tiny。快速同步流主要用于提升
27、 I/O 同步速度,比较有趣的是 Lake Tiny,这项技术主要是根据功耗和负载情况来配置 I/O 接口,有助于提高 SSD 的性能。英特尔的数据表示,在使用了 Lake Tiny 后,SSD的突发数据流会提升到 220MB/s,远远高于未使用 Lake Tiny 时最高大约157B/s 的速度。高突发数据读取速度有助于降低系统响应时间,提高系统反应速度。在型号方面,Lake Tiny 在消费级市场方面分为 Z87、H87 和 H81 三款芯片组,商务市场则分出了 Q87、Q85 和 B85 等产品。消费级市场的产品是用户最为关注的产品。其中 Z87 支持把 CPU 提供的 PCI-E 3.
28、016 拆分为两条 PCI-E 3.0 x8 或者一条 PCI-E 3.0 x8 和两条 PCI-E 3.0 x4,也支持 CPU 超频;H87 则只支持将 CPU 提供的 PCI-E 3.0 x16 拆分为两条 PCI-E 3.0 x8,不支持超频;H81 既不支持拆分 PCI-E 通道也不支持超频。其他方面三款芯片组差距比较小,市场划分情况也类似目前的 Z77、H77 和 Z71 的情形。全新的 8 系列芯片组规格表规格 Z87 H87 H81处理器接口 LGA1150 LGA1150 LGA1150图形接口支持 116 或者 28或者 18+24 116 或者 28 116英特尔 RES
29、 12 支持 支持 支持Lake Tiny 支持 不支持 不支持英特尔 Smart Response Techonlogy 支持 支持 不支持USB(USB 3.0) 14(4) 14(4) 10(2)SATA(SATA 6Gbps 最多) 6(6) 6(6) 4(2)PCI-E 2.0 8 8 6CPU 超频支持 支持 不支持 不支持压路机,开拓新局面?接下来,我们来看看 AMD 方面的变化。推土机架构是自 K8 以来 AMD 所进行的架构设计中变革最大的一次,尽管解决了先前 K10 核心中存在的一些问题,也跟进英特尔的步伐加入了宏指令融合等技术,但市场表现仍然不算很好。在AMD 规划的路线
30、图上,推土机之后还有打桩机、压路机与挖掘机三次架构调整。其中压路机的初始设计目标是提高并行性。但是计划赶不上变化,推土机与打桩机连续被压制,AMD 的设计重心已经和路线图上强调的部分有了微妙的不同。下面,就让我们从 AMD 首席技术官 Mark Papermaster 在 Hot Chips 2012 年会上的主题演讲中所透露出的信息,对压路机的架构进行分析。他的演说主要集中在三个方面:流水线前端、单核心执行效率提升,以及改进能耗效率。一个本来要继续强化并行性能的架构却将一部分精力花在了单核心效率上,这让我们对压路机的前景更加迷惑,AMD 究竟改动了什么?流水线前端优化首先来看指令读取。AMD
31、 加大了指令缓存的大小,并且使用了更加积极的指令预读取策略,指令向执行单元的交付效率也有所提高。据传,推土机架构的基本流水线长度略高于 2 0 级,这种长流水的设计能够帮助推土机推高主频,但是也增加了总体的执行延迟,更加大了分支预测失败的损失。为了弥补这个缺陷,推土机当中设置了一个与指令读取分离的多级分支预测器,期望以此减少流水线停顿。压路机架构在此基础上进一步加大了分支目标缓冲区的大小,期望以此提升分支预测的准确率。据 AMD 内部的仿真测试结果显示,压路机的分支预测失败率降低了 20%。AMD 处理器路线图此前推土机架构引发讨论的另一个问题是它的指令解码器共享设计,坊间传闻这是限制推土机架
32、构执行效率的一大败笔。让我们先来看看竞争对手英特尔,它早在 2006 年的 Core 架构上就大胆引入了 3 组简单指令解码器+1 组复杂指令解码器的设计,理想状况下每个时钟周期能够给每个处理核心提供四条已经解码完毕的待处理指令。而推土机的指令解码器与之相比则缩水一半,虽然每个推土机模块当中被配置了四个指令解码器,但是却有两个处理核心。于是有人担心,这种缩水的指令解码器能否以足够快的速度去解码指令?压路机前端布局答案是在大多数情况下不会,只有在一些对每时钟周期执行指令数有较高要求的多线程应用下,这种两个核心共享四个指令解码器的设计才会轻微地影响性能。性能略微降低的代价带来的好处是执行解码器数量
33、的降低以及芯片复杂度的降低。x86 不同于 ARM,它是一种复杂指令集,其指令解码器设计比 ARM的精简指令集要复杂很多,也会消耗更多功耗。因此 AMD 削减推土机模块指令解码器数量的决策是一个牺牲性能换取低功耗的权衡之计。但是现在,AMD希望能提升单核心的执行能力,提高指令解码的速度,于是这一权衡已经不再成立,压路机也变成了每核心四路指令解码器的设计,这样一来一个推土机模块内就有了可以并行工作的八个指令解码器。上述改进加在一起让压路机在AMD 内部仿真测试中得以将每周期执行指令数提升 30%。单核心执行效率提升与指令读取、解码上的改进相呼应,压路机在指令调度方面也有所变化。早在上世纪 60
34、年代,当时构筑超级计算机体系结构的架构师们就已经意识到,程序的指令不必按照顺序执行,在保持逻辑顺序的情况下打乱指令的执行次序,将后面不相关的指令提前执行可以获得相当不错的性能提升。从 1995 年开始,这种原先应用在超级计算机上的乱序执行技术被英特尔首先引入到微处理器Pentium Pro 中,从而飞入寻常百姓家。如何在指令与指令之间既保持原有逻辑顺序,又要进行聪明的调度来加速执行,是一门并不简单的学问,压路机中为了方便进行调度增加了更多的寄存器,经过改良后的整数指令调度效率提高了 5%10%,这意味着执行单元停顿的几率更少。上一个部分中提到,为了获取性能的提升,AMD 将指令解码器的数量加倍
35、,这就导致了芯片面积的增大(意味着成本提高) 和功耗的增加。为了抵消这个部分的影响,压路机的其余部分就必须作出权衡。MMX 执行单元和 FMAC 执行单元现在共享一部分执行部件_这是什么意思呢?让我们回忆一下手算乘除法。乘除法在手算过程中会进行一系列的加减法,在处理器当中也是一样,只不过加减法被统一到加法器上运行。如果我们仿照乘除法的手算过程来设计乘法执行单元和除法执行单元,就会发现乘法和除法都需要用到加法器。如果我们在乘法和除法两个执行单元中都配备独立的加法器,那么一个乘法操作就可以与另一个除法操作并行执行,但是劣势在于多出的一个加法器抬高了芯片面积和功耗。与此相对的是,如果我们只设计一个加
36、法器,然后让乘除法单元共享它,性能会受到损失,但是芯片面积和功耗则可以节省下来。AMD 在 MMX 单元和 FMAC 单元上进行的改动与此类似,但这是一个精巧复杂的权衡,AMD 的工程师们仔细拆分了 MMX 和 FMAC 指令的执行过程,保证这两种指令不可能同时用到那部分共享的硬件,这使得它在保证一定的芯片面积以及能耗的同时,性能不会受到影响。除此之外,压路机还进行了一些调整,例如 Load 指令的压缩能更有效率地利用寄存器空间,改进了 Store-to-Load 的数据旁路设计,这些改进加在一起使得压路机的单核心执行效率有所提高。存储器体系的改进在推土机的架构中,每个模块共享一个 64KB
37、大小的两路组关联一级指令缓存,模块内的每个核心单独使用一路(在微型计算机2012 年 7 月上刊的剑指低端独显 Intel Ivy Bridge GPU 图形架构解析一文中,我们介绍过组关联缓存的设计利弊,读者可参阅相关内容)。每个核心单独使用一路的设计意味着这个组关联缓存蜕变成为事实上的全相连缓存,全相连缓存完全抹消了由地址冲突引来的缓存缺失,但代价是需要附加大量的比较器,引入更大的访问延迟。为了弥补这一点,推土机使用组内预测技术来预测每次访问缓存时会检索的一组寄存器,在理想状况下 90%以上的访问可以准确预测,只需直接把这组数据取出即可,不用检索整个缓存,从而缩短延迟并降低功耗。这是一箭双
38、雕的聪明设计,但是无法补足每个核心指令缓存大小相比上一代有所减小的缺憾。为此压路机重新加大了一级指令缓存,而容量加大之后一级指令缓存的缺失率降低了 30%。但目前 AMD 仍然没有透露压路机一级指令缓存具体的大小,也没有数据缓存大小的资料,因此数据缓存的部分是否有所改变还未可知。压路机执行单元布局压路机的二级缓存也有较大的变化,终于支持以四分之一缓存大小为步长的动态增减。在对一个大容量缓存进行检索时,功耗是比较大的,此外二级缓存在推土机架构内占有的漏电流份额也不容忽视,在计算负载比较低的时候关闭一部分二级缓存能够有效节省功耗,AMD 认为这对于一些移动终端上的常见应用,例如视频回放(对二级缓存
39、的大小要求不高),可以带来更佳的续航能力。注重能耗效率的设计另一项跟进英特尔步伐的改变是 uop 缓存。uop 指代“微指令”,由于 x86 指令集指令格式不统一,给流水线设计带来了很大难度,因此当下 x86 处理器家族内部大多数成员在处理 x86 指令之前会先将它拆分转换为比较简单的精简指令,随后为这些精简指令设计执行流水线。uop 缓存存储的就是这些经过转换的指令。我们之前反复提及,x86 指令集的复杂性导致了硬件底层解码器设计的复杂和高功耗,如果需要读取的指令一直出现在 uop 缓存当中,芯片就能够暂时关闭指令解码器以达到节省功耗的目的。AMD 的战略转型这种 uop 缓存设计在 San
40、dy Bridge 上就已经存在,AMD 算是扮演了一个跟进者的角色,但是称呼不同,AMD 将之称为 uop 队列。同时 AMD 没有透露 uop队列的大小,它能容纳多少解码完毕的微指令还是个未知数。Haswell 是新的期待?压路机能否冲出困局?英特尔方面,Haswell 的 CPU 部分架构改进并不大,除了新加入的指令集和扩展外(实际提升可能短期内也看不出任何效果),同频率性能提升非常有限,应该在 15%左右;图形核心方面,Haswell 的 GT3 应该有比较明显的改进,GT1 和 GT2 的 3D 性能改进则并不大,距离目前入门级独立显卡仍然有较大差距;Haswell 搭配的芯片组方面
41、,除了 USB 3.0 和 SATA 6Gbps 外,其余的部分亮点也不是很多,也基本维持了 7 系列芯片组的市场格局。总体而言,对Haswell 的评价,只能说是“饱含期待”。具体情况如何,还得等产品正式发布后才能知晓。相比英特尔的“ 淡定” ,目前 CPU 产品整体处于劣势的 AMD 就需要奋起直追了。但从已有的资料来看,压路机在架构方面的变动幅度并不是革命性的。比较乐观的猜测是,AMD 的确打算从推土机开始设计一个全新架构,并在随后的几代(打桩机、压路机) 里逐步吸收经验,改进缺陷,直至 2014 年挖掘机架构时再与Haswell 一决高下。这么一来,变动幅度不大的压路机就很可能只是应对
42、 Ivy Bridge EX/EP 的一个过渡产品。在今年年初召开的财务分析师会议上,AMD 已经释放出了再明显不过的战略转型信号。AMD 已经很清楚地意识到了移动计算时代的来临,并透露出转向移动市场的愿望,但是资源不足的 AMD 现在大部分投入仍然是在传统PC 市场。总体而言,无论是 Haswell 还是压路机,都不属于革命性、大幅革新的产品。这主要是两家厂商既定的产品策略、DIY 大环境的疲软造成的,毕竟现在离 PC 大发展、K7 和 Pentium 4 激烈竞争的时代,已经太远太远了。总体而言,目前英特尔占据了 CPU 的市场的主导优势,AMD 则在不停地追赶。在下一代新产品上,我们估计英特尔凭借 Haswell 仍然会摘得桂冠,当然,至于产品的具体性能,双方的性能水准究竟到了什么地步,我们拭目以待。