时值2004年,开发NetBurst架构的美国德克萨斯州(Texas)的奥斯丁(Austin)设计团队尚在设计Tejas(Prescott的下一代)。很快NetBurst失败,Core架构被扶正,之后迅速地成为Intel的主要架构,产品开始扩展到桌面乃至服务器产品线——很可怕地,Austin设计团队被分派去设计一个极低功耗的CPU,就是后来的Atom凌动处理器。
ISSCC2008: A Sub-1W to 2W Low-Power IA Processor for Mobile Internet Devices and Ultra-Mobile PCs in 45nm Hi-κ Metal Gate CMOS
很多人都已经知道或者听说过:Atom处理器基于和主流完全不同的微架构。确实,Atom最特别的地方就是它采用了IOE(In-Order Execution)顺序执行架构,需要知道,从15年前的Pentium Pro处理器(当时俗称686)开始,Intel的处理器就转向了OOOE(Out-of-Order Execution)乱序执行架构,采用IOE架构的原因是什么呢?
Intel Nehalem Microarchitecture,经笔者整理
答案是为了功耗,Intel当前的明星Nehalem处理器就属于典型的OOOE乱序执行架构,乱序执行是为了直接提升ILP(Instruction Level Parallelism)指令级并行化的设计,在具有多个执行单元的超标量设计处理器当中,一系列的执行单元可以同时运行一些没有数据关联性的若干指令,只有需要等待其他指令运算结果的数据会按照顺序执行,从而总体提升了运行效率。乱序执行引擎是一个很重要的部分,需要进行复杂的调度管理,需要大量的晶体管实现,这就意味着更高的功耗。
Intel Silverthorne Atom Microarchitecture
来源:ISSCC2008 Intel Paper: A Sub-1W to 2W Low-Power IA Processor for Mobile Internet Devices and Ultra-Mobile PCs in 45nm Hi-κ Metal Gate CMOS
采用了顺序执行架构之后,Nehalem架构图中的黄色部分就可以去掉了,如寄存器重命名相关部分、ROB/MOB相关部分的大量晶体管得以节省,从上图上看,Silverthorne Atom结构图远比Nehalem要简洁——当然这个简洁也有除了IOE架构之外的原因:Atom是一个2-issue(二发射)的超标量处理器,而Nehalem则是四发射的,在执行单元上Atom也能简化了不少。实际上,节电是Atom处理器设计上的首要目标。
实际上,Atom看起来有点像以前的Pentium(俗称的586)处理器架构。Pentium也是一个二发射的超标量处理器架构,不过,Silverthorne Atom和Nehalem都是64位处理器,而Pentium是32位处理器。Atom当中也有不支持64位处理的型号。