轻松读懂移动处理器 CPU微架构全解析
Atom 是英特尔计划实现 x86 anywhere 战略的重要产品,为此它不惜卖掉了口碑不错的 Xscale 系列 ARM 处理器部门给 Marvel,从 2008 年 3 月发布迄今已经有了 45nm 和 32nm 两代制程,产品型号可以说是多如牛毛,就代号而言,有最初的 Silverthrone、Diamondville,然后经过制程改进,分别有了 Lincroft 和 Pineview,“新近”的 Cedarview 则是源自 Pineview。
不过这么多型号,到目前为止它们所基于的内核微架构都是 Bonnell。第一代的 Atom 处理器(Silverthrone)是 45 纳米高性能制程制造,但是需要另外搭配一个 TDP 两瓦的 130nm 制程芯片组,这枚 Atom 虽然有低于 1 瓦的版本,但是此时很多功能都被关闭,性能很弱,考虑到那个芯片组,根本不会有人拿这个做手机产品。
两年后的 Lincroft 集成了 GPU、视频单元以及内存控制器,采用专门的 45 纳米 SoC 工艺制成,但是依然需要搭配一个代号 Langwell、由台积电 65nm 制程生产的 I/O 芯片,两者合起来的名字叫 Morrestown 平台,这个系列中的 Z600 被尝试用来做了一两款手机,但是太高耗电的问题使得它们依然难以成为智能手机市场的竞争者。
到了 2012 年,名为 Medfield 的新平台似乎让英特尔的支持者看到了些许的曙光,因为在经过三次制程技术和三个不同的设计后,现在英特尔终于有了一个可以在耗电上达到智能手机要求的低功耗产品,这个平台中基于 32 纳米 SoC 制程的 Penwell 芯片集成了代号 Saltwell 的内核,在微架构上,Saltwell 和之前所有 Atom 处理器的内核微架构其实都是几乎一样的,都属于 Bonnell 微架构,不过 Saltwell 由于采用了更精密的 32nm 制程,得以在微架构上做一些优化,因此在细节上是有一些不同的。
上图为第一代 Bonnell 微架构(Silverthorne)
到了 Saltwell(第三代 Bonnell)BTB 为 8096,具备 uop cache
Bonnell 采用超标量流水线设计,可以每个周期执行最多两条指令,指令需要遵循一定配对原则才能实现超标量执行(类似于 Pentium 的 U/V 设计),具备 16 级工位,支持 x86_64 指令集以及最高 SSE3 扩展,但是手机版本只支持 32-bit ISA,内存容量也被限制在 1GiB,对应平板和低端笔记本等版本则打开了 64-bit ISA 支持,内存容量放宽到 2~4GiB。
相对于当前的许多竞争对手来说,英特尔在产品技术细节公布上要大气许多,各种数据表、涉及微架构内部关键特征的编程优化手册都能在产品发布后就能公开下载到,这让我们可以更详细的为大家介绍这款产品。
1、Saltwell 的分支预测器是一个具备 8096 条目(两倍于 Bonnell 4096 条目)的全局式分支预测器;
2、Lincroft 时代引入的 48 字节后段取指缓存(post-fetch instruction buffer)在 Saltwell 里升格为一个高速缓存(Cache),以便减少 Saltwell 的重复取指。该技术类似于 Conroe/Merom 的 Loop Stream Detector(循环指令流侦测器),前面我们在介绍 ARM Cortex 微架构的时候也有提到类似的技术。
3、Saltwell 的 L1 I-Cache 是 32KiB 8 路相关联,L1 D-Cache 是单端口 24KiB 6 路相关联。
4、Saltwell 的指令发射端口依然和 Bonnell 那样是采用 Pentium 配对式发射风格的 U/V 流水线设计;
5、Saltwell 能实现更多的整数指令配对以及更快的 memcopy 微代码规则。
6、加入了不间断时间标签计数器(TSC)和本地 APIC 计时器,主要是为了协助电力管理和减少唤起 CPU 的情况。
7、L2 Cache 维持之前的 512-KiB 8 路相关联设计,运行于内核同频,读取带宽为每周期 32 字节(256-bit),可支持 32 个待发 cache 请求。改变的地方主要是 L2 Cache 的电压轨线与内核是分开了的。例如 Saltwell 内核的 Vmin 是 0.7 伏特,L2 Cache 则在固定的 1.05 伏特电压轨线上跑,这样的设计有助于减少 C6(最节电模式)电力状态转换时延。
8、频率变频粒度更精细。以 Z2460 为例,虽然 CPU 的最高持续频率为 1.3GHz,但是频率的变动范围达到 1.6GHz,步进粒度为 100MHz;而之前的 Z600 系列频率范围是 0.2GHz ~ 0.8GHz 持续,最高 1.2 GHz。
9、Saltwell 和之前的 Bonnell 系列微架构同样没有专用的硬件整数乘法、除法单元,这些操作都是和浮点硬件共享。
10、在 Medfield 中还有一块独立分离于 512 KiB L2 Cache 外的 256KiB SRAM,位于不间断模块内,主要用图像信号处理器存放图像数据以及优化最低漏电。在 SOC 进入节电模式后,这块 SRAM 还会被用于存放架构状态,就好象 Saltwell 内核具备自己的 C6 SRAM 来存放 x86 状态,这块更大的 SRAM 则是存放整个平台的。在进入 S0ix 状态时,像图形或者视频编解码器等单元都会被关掉,它们的状态信息和配置信息都会保留在这块 256 KiB SRAM 里。