虽然 Intel Ivy Bridge 处理器以出色的性能牢牢控制了中高价市场,而 AMD 则已把业务发展重点放在整合 GPU 的 APU 处理器上,不过为针对需要高效能的 AMD 用户,在 Piledriver 架构的 Trinity APU 推出后, 随即推出不含 GPU 的 Piledriver 架构 FX 处理器,以「 Higher Frequency, Unlocked, More Cores at every price points 」作为卖点,为 AMD 用家带来升级机会。
技术革新︰回顾 AMD Bulldozer 创新架构
Bulldozer 晶片及功能图
在介绍全新的 FX-8350 前,先让时间回到 2011 年 10 月 12 日, AMD 发布 Bulldozer 的日子。当天,期待以久的全新 AMD FX 处理器家族正式登场,藉着革命性的单 Bulldozer 模组双核心设计,双核心可以共享一部份的电路,如共享指令解码器、 L1 指令 Cache 、 FPU 等等,但重要的 Integer 模组却有 2 组令效能倍增,这是一种以最少的电路争取最大的效益的思维,一改过去每增加核心数目成本倍增的高代价做法,为业界提供一条便宜的多核心发展道路。同时,单模组双核心在共享频宽上可更为有效,如在多线程的数据预取上等等。
每个 Bulldozer 模组除了 Integer Units 外,其余部份均为共享设计
由于採用单 Bulldozer 共享双核心模组设计,所以 Bulldozer 很轻易便集成了 4 个双核心模组,一推出即成为世界上首颗 8 核心桌面处理器,超越了 Intel Core i7 Extreme 980X 创下的 6 核心纪录。为了确保 Bulldozer 的效能, AMD 还加入了多项新技术,其中一项是在指令集方面,过去 Phenom II 因为不支援 Intel 的 SSSE3 及 SSE4.1 指令集,所以在部份测试项目远不如 Intel 同级处理器 ( 编按︰虽然 Phenom II 也支援 SSE4a 指令集,但实际功能无法与 SSE4.1 相比 ) 。为此, AMD 甚至不惜另起炉灶,推出 SSE5 指令集,结果是 AMD 与 Intel 决定统一指令集。
Bulldozer 除了支援 SSSE3 与 SSE4.1 指令集外,也支援 Intel 最新的 AVX 、 AES 及 SSE4.2 指令集,甚至是 AMD 取消 SSE5 指令集计划后,一些计划保留的指令集如 FMA4(Fused Multiply/Add extensions) 及 XOP (eXtended Operations) 。 FMA4 主要针对 HPC 应用,而 XOP 是 AMD 希望超越 AVX 的特别指令,在 Operands 寻址上更加灵活,可针对数值应用、多媒体、 Audio/Radio Algorithms 等。
对于 Intel AVX 指令, Bulldozer 在 FPU 方向更特别作出了优化,由于 Intel AVX 有 128-bit 及 256-bit 指令,所以在 FP Scheduler 之下有 2 个 128-bit FMAC ,它们可以分别处理 2 条 128-bit AVX 指令,或合在一起处理 1 条 256-bit AVX 指令。
Bulldozer 与 Phenom II X6 及 Sandy Brdige FPU 功能的比较︰
Bulldozer 共有 2 个 128-bit FMAC ,可同时处理 2 条 128-bit AVX 或 1 条 256-bit AVX 指令
Bulldozer 大大加强了 Prediction 及 Prefetch 功能
Bulldozer 因为採用 2 个核心共享资源的设计,所以高性能的 Front-End Unit 前端单元绝不可少。为此, AMD 也对原来 Phenom II 的 Front-End Unit 作为最大修改,包括对 Decoupled predict and fetch pipelines 及 Prediction-directed instruction prefetchers 的修改。首先是原来 Phenom II 的 3-Wide x86 Decoders 终于改为与 Intel CPU 相同 4-Wide x86 Decoder ,可在同一同期解码更多指令。 Bulldozer 的 Prediction Queue 预测序列可以管理直接及非直接分支,并置于 L1 及 L2 分支预测记忆体 (Branch Target Buffer) 之下,可储存目的位址。
Prediction Pipeline 预测管线可产生一连串的 Fetch 位址 . 使 Fetch Pipeline 不必再看指令 Cache ,以每同期 32 bytes 的速度送到 Decoders 下的 Fetch Queue 。推土机使用 physical register file (PRF) ,这是一个单一区域,储存了执行过指令的结果,从而减少不必要的数据转移及数据複製,仅保留一个版本,从而去减少功耗。