Nehalem的设计目标是找到折衷的设计方案,为各种应用场合的处理提供一个单一的、可扩展的平台。众所周知,不同领域的应用程序在表现上有着极大的差异。例如矩阵运算、视频编解码、数据库等领域的处理具有很高的并行性,因此新出现的程序越来越多的采用多线程的方式编写;而同时相当多的较老的应用程序仍然采用单线程的方式编写,编译等一些特殊领域的应用也很难被并行化处理。再例如对于一些专业工作者,处理速度至关重要,运行一遍应用来对自己手头的数据进行处理往往要几天甚至一个月的时间;但使用笔记本出差的用户却对笔记本的巡航时间更为关注。
可扩展的内核
Nehalem的出现,正是想为这些应用提供单一的解决方案,由用户根据自己的应用选择处理器的使用和运行方式。Nehalem既需要为已存在和即将涌现的多线程应用程序服务,同时又要高效地运行大量的单线程应用程序。它既要满足高端计算对性能的需求,也需要具有很低的功耗,以便可以在低功耗应用领域工作。
为了达成以上设计目标,Nehalem处理器被设计为核心(Core)与非核心(UnCore)两部分。处理器的执行流水线、一二级高速缓存都集成在核心中,而三级高速缓存、集成的内存控制器、新的连接协议QPI,以及功耗与时钟控制单元都被集成在非核心中。这种设计,使得Nehalem的设计可以很方便的进行调整,从而为不同应用领域设计出新的解决方案。例如针对低端市场,Nehalem可以削减三级缓存的容量以降低成本,由于Nehalem仍然具有一二级高速缓存,因此削减三级缓存并不会对性能造成严重影响;对于多路服务器市场,可以增加QPI的数量以增加互联带宽。甚至于,内存控制器在必要的时候也可以放置在片外。
Nehalem处理器并不是一代将Core架构推翻重来从而推出的一代革命性的微处理器,而是沿袭Core微体系结构的一代革新性设计。事实上,由于Core微体系结构在技术和市场上取得的重大成功,推翻重来并没有必要。Nehalem从本质上仍然属于Core微体系结构,但在性能和功耗控制等许多方面进行了改进和重新设计。主要的改进包括:
Nehalem处理器一共有四个物理核心,由于每个核心可以同时支持两个线程运行,因此Nehalem处理器一共具有8个逻辑核心。每个物理核心具有自己单独的一级与二级高速缓存,同时四个核心使用了共享的三级高速缓存。Intel在Nehalem处理器内部首次引入了集成的内存控制器和QPI连接方式,内存控制器目前最高支持1333MHz 的DDR3内存。遗憾的是,Nehalem处理器取消了对于DDR2内存的支持。由于目前DDR3内存的价格还较高,因此包含Nehalem处理器的计算机系统在短期内价格仍然会较高,腰包里银子不多的朋友尚需要等待一段时间才能够享受Nehalem。
一个Nehalem内核(Nehalem处理器版图中红框圈出的位置)包含了处理器的流水线,以及一级、二级高速缓存。Nehalem的内核经过精心设计,以达到更高的性能。Nehalem内核与之前Intel所发布的处理器的内核相比,在以下部分进行了改进:支持新的SSE4.2指令集、具有更深的缓冲器、支持SMT、对虚拟化进行了改进、对分支预测进行了改进、增强了对循环的处理、增加了高速缓存的层次、改进了原语支持等等。在后续文章中,我们将对这些改进逐一介绍。