服务器 频道

曙光Nehalem-EP服务器I620r-G深度评测

The Uncore: IMC & QPI
核外系统:集成
内存控制器及QPI

  从形式上来看,L3缓存、集成的内存控制器乃至QPI总线都属于Uncore核外部分,从L2、L1一直到执行单元都属于Core核内部分。由于Nehalem首次采用了这种核心内外的相对独立设计思路,因此核心之外的设计相对于Core架构来说显得新颖许多,这就是Nehalem的模块式设计。

  模块式设计可以提供灵活的产品给用户,现在4核心、三通IMC和单QPI的桌面Nehalem已经面市,预计明年3月将会出现4核心、4通道IMC和双QPI的企业级Nehalem产品。包含了PCIE控制器乃至集成显卡的产品也已经在路线上了。

  继续回到处理器架构:我们都知道,Nehalem和Intel以往处理器相比最大的特点就是直联架构——包括两个方面:处理器直联以及内存直联,前者就是依靠QPI总线的实现,后者则是由于处理器内置了内存控制器(IMC,Integrated Memory Controller)。当处理器在L3 Cache未找到所要内容(L3 Cache Miss)的时候,它将会继续通过IMC集成内存控制器往系统内存索取,同时通过QPI总线询问其他处理器(如果是多处理器平台)。

   为什么直联架构可以很明显地提升性能?这要先从x86架构的存储体系说起。在很久很久以前,在一个记忆体短缺的时代——不仅仅处理器外面记忆体很少,处理器里面也是。使用了CISC架构的x86处理器里面只有8个GPR通用寄存器(一般的RISC处理器有32个以上的通用寄存器,现在的x86-64有16个通用寄存器),由于通用寄存器数量上的短缺,因此不像RISC处理器那样,CISC的x86处理器使用了堆叠运算指令。堆叠运算也就是将运算结果保存在源寄存器上的,如ADD AX, BX指令会将AX寄存器与BX寄存器的内容相加,并将结果保存到AX上——这样对比于使用三个寄存器做同一运算的非堆叠指令RISC架构就节约了一个寄存器,然而相应地源寄存器的内存就销毁了。x86架构需要执行大量的Load/Store微指令(Pentium Pro开始具备)来进行寄存器-寄存器或寄存器-内存之间的数据搬运操作。RISC处理器当中,Load/Store操作也很频繁。

如前面所述,最常用的20条x86指令当中:
mov占35%(寄存器之间、寄存器与内存之间移动数据),push占10%(压入堆栈,也经常用来传递参数),call占6%,cmp占5%,add、pop、lea占4%(实际计算指令非常少)
mov、push、pop都是和load/store直接相关的,add、cmp等则间接相关

顺便:
75%的x86指令短于4 bytes,也就是小于32 bits。不过这些短指令只占代码大小的53%——有一些指令非常长
单操作数指令占37%,双操作数指令占60%
双操作数指令中,直接数操作20%,寄存器操作数56%,绝对寻址操作数1%,间接寻址操作数23%

Load操作占据了x86 uops当中的约30%

大量的Load/Store操作已经通过ROB/MOB降低到一定程度,不过,在多核心/超线程的情况下,对缓存/内存子系统仍然具有很大的压力

  现在来看这样的设计简直是无法想象,不过这样脑残的设计不仅仅用到了今天,而且还加速到了一个不可思议的境界……在与各种RISC架构处理器的交锋也不落下风……回到架构上,由于x86架构实际上是通过耗费寄存器带宽及缓存-内存带宽来节约处理器内部寄存器数量,大量的Load/Store操作(Load操作占据了x86 uops当中的约30%),对缓存乃至内存的性能非常依赖。


 Nehalem具有三个Load/Store单元以及一个MOB架构,并支持内存数据相依性预测功能,缓存性能非常出色

  缘此,x86架构在缓存-内存上的提升是不遗余力,不提2008年度评测报告:深入Nehalem微架构中说到的内存数据相依性预测功能(Memory Disambiguation),对于Nehalem而言,这方面最大的改进就是直联架构带来的IMC集成内存控制器,它使CPU到内存的路径更短,大幅度降低了内存的延迟,同时每一个CPU都具有自己专有的内存带宽。这一点在数据库应用中表现非常显著,数据库应用对存储器的延迟很敏感。 

  直联架构不仅仅意味着处理器与内存直接相连,还让处理器之间也直接联系起来。Hyper-Transport总线的使用让Operton进入了高性能计算市场,QPI所作的事情是一样的。通过QPI总线,处理器之间可以直接相连,不再需要经过拥挤、低带宽的FSB共享总线,多处理器系统运行效率大为提升。 对于多处理器系统而言,QPI提供的巨大带宽对性能提升很有作用。

QPI总线 vs FSB总线

QPI vs. FSB

名称

Intel FSB(Front Side Bus)

Intel QuickPath Interconnect(QPI)

拓扑共享总线点对点连接
物理总线宽度(bits)6420 x 2(双向)
数据总线宽度(bits)

64

16 x 2(双向)

传输速率333MHz
1.333GT/s
10.6GB/s
3.2GHz
6.4GT/s
12.8GB/s(单向)
25.6GB/s(双向)
需要边带信号

引脚数15084

时钟数

1

1

集成时钟

总线传输方向

双向

单向

  使用高频率DDR3内存,访问本地内存的延迟大约为60个时钟周期,而通过QPI总线访问远端的处理器并返回数据大约需要90个时钟周期(如上一页所述)。QPI的就是Core架构为了使用服务器市场而做出的进化,它可以建立一个庞大的可扩展的解决方案。

  除了提供更高的带宽(每链路25.6GB双向带宽)之外,QPI总线还让多处理器系统更有效率:处理器之间可以直接连接。如上图,每个CPU都可以直接和其他三个CPU通信;4路Barcelona Opteron在对角线上是无法直接通信的,需要邻近的CPU进行接力,这显然会降低效率;不过Shanghai Opteron已经可以做到:《全国首发 AMD Shanghai/上海性能评测》。


Nehalem-EX的时钟架构

  所有的Nehalem都按时钟分为三个部分:核心、核外(L3和系统逻辑)和IO(QPI和IMC),这三个部分的频率通常互不相同。由于L3缓存属于核外部分,因此它的频率和核心频率通常是不同的,在以往,CPU内的高速缓存通常都是全速的,只有Pentium II的L2缓存是半速的(它和CPU内核不在同一个晶圆上,虽然在同一个CPU封装内),而K6之前的L2缓存都是放在主板上面的,速度极低。现在,Nehalem架构下,L3缓存的时钟频率也不再是全速,而是要较低一些,例如,Core i7 920的L3频率应该是2.133GHz,Xeon X5570的L3频率应该是2.667GHz。


Nehalem-EP/Gainestown Xeon X5570处理器,主频2.93GHz,QPI总线频率高达3.2GHz,比主频还要高

  QPI总线频率一般和L3频率也不同,不过它们具有一些联系。对于桌面处理器来说,QPI总线只有一条,简单地连接处理器与IOH,然而对于服务器处理器来说,除了连接IOH之外,处理器与处理器之间也需要通过QPI总线,因此服务器的处理器都具有很高的QPI频率,有些时候甚至高于处理器主频率,如Xeon X5570处理器。

桌面Nehalem:Core i7 920的主频是2.67GHz,而QPI总线频率只有2.4GHz

  一些主板允许单独设置这些不同的频率以方便超频。在这里,笔者可以回答很多用户关心的UCLK频率(一些主板上具有的Uncore Clock设置选项)的问题:L3缓存频率和IMC集成内存控制器的频率是不同的,也就是UCLK和内存频率是不同的,不过它们具有一些内在关系。此外,由于UCLK关系的Uncore部分关系到了整个处理器的中枢部分:系统逻辑(包括中央路由器和集线器),因此它的频率设定可以很大地影响到整个处理器的运行效能。

0
第1页:Nehalem-EP处理器:曙光I620r-G服务器发布第2页:Nehalem:Tick-Tock战略的产物第3页:Nehalem设计思想的转变:基于企业应用第4页:深入Nehalem微架构:核心区间划分第5页:深入Nehalem微架构:指令拾取第6页:深入Nehalem微架构:解码与循环流检测第7页:深入Nehalem微架构:乱序执行引擎第8页:深入Nehalem微架构:乱序执行单元第9页:深入Nehalem微架构:乱序存取单元第10页:深入Nehalem微架构:乱序存取单元第11页:深入Nehalem微架构:缓存子系统第12页:深入Nehalem微架构:缓存子系统第13页:深入Nehalem微架构:核外系统/IMC和QPI第14页:深入Nehalem微架构:ccNUMA与HTT第15页:深入Nehalem微架构:ccNUMA、SMT与OS第16页:深入Nehalem微架构:虚拟化第17页:深入Nehalem微架构:SSE4.2指令集第18页:深入Nehalem微架构:制造工艺第19页:深入Nehalem微架构:长沟道晶体管技术第20页:深入Nehalem微架构:能耗比控制第21页:小结:Nehalem架构的优势第22页:Nehalem-EP:处理器规格对照表 第23页:Nehalem座驾:Tylersburg芯片组第24页:Nehalem座驾:Tylersburg规格第25页:实物图:Nehalem-EP Xeon第26页:实物图:Nehalem-EP Xeon第27页:实物图:Tylersburg-EP芯片组第28页:实物图:曙光Nehalem-EP服务器I620第29页:实物图:曙光Nehalem-EP服务器I620第30页:实物图:曙光Nehalem-EP服务器I620第31页:实物图:曙光Nehalem-EP服务器I620第32页:测试环境与测试方法第33页:曙光I620r-G服务器测试平台第34页:软件测试信息、系统部件简介第35页:SiSoftware Sandra 2009处理器性能测试第36页:SiSoftware Sandra 2009缓存性能测试第37页:SPEC CPU 2006整数性能测试第38页:SPEC CPU 2006浮点性能测试第39页:ScienceMark缓存内存子系统性能测试第40页:CineBench R10性能测试第41页:Iometer磁盘子系统性能测试第42页:NetBench文件服务器性能测试第43页:Benchmark Factory数据库性能测试 第44页:超线程能力对比测试:SiSoftware Sandra第45页:超线程能力对比测试:ScienceMark第46页:超线程能力对比测试:CineBench第47页:超线程能力对比测试:Iometer第48页:超线程能力对比测试:NetBench第49页:超线程能力对比测试:Benchmark Factory第50页:超线程能力对比测试:SPEC CPU 2006整数第51页:超线程能力对比测试:SPEC CPU 2006浮点第52页:平台功耗测试第53页:IT168评测中心观点
相关文章