服务器 频道

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

Architecture: ccNUMA Architecture
架构:缓存一致的非一致性
内存访问

  由于IMC和QPI的存在,从形式上来看,多路Nehalem处理器系统将会组成一个NUMA(Non-Uniform Memory Access或者Non-Uniform Memory Architecture,非一致性内存访问或非一致性内存架构)系统,NUMA系统是多处理器系统的一种形式,以往的通过单条FSB连接多个Xeon处理器的系统叫做UMA(Uniform Memory Architecture,内存一致架构)系统——传统地,按照处理器架构来分的话属于SMP(Symmetric MultiProssecor,对称多处理器)系统。NUMA的特点是访问内存不同的区域具有着不一致的延迟,NUMA和UMA的共同点是所有内存是硬件共享的,操作系统只看到一片单一的内存区域,比起MPP大型并行处理系统在编程方面更为简便。


多个Nehalem处理器之间使用MESIF协议来保持缓存一致性

  按照缓存页面同步的形式,NUMA可以分为两种:Cache Coherent缓存一致和Non-Cache Coherent缓存非一致性,由于编程上的艰难,因此后一种形式的实际产品几乎不存在,所以NUMA几乎就是ccNUMA(Cache Coherent NUMA)的代名词。多路Nehalem处理器就是一个典型的ccNUMA架构。ccNUMA的特点是多个处理器之间进行共享、传输的是缓存页面(缓存页面所对应的内存页面则固定地保留在某一个处理器连接的内存上)。

  Nehalem通过MESIF协议来维护缓存页面的一致性(也就是Cache Coherent缓存一致的含义),而使用HT总线的AMD Opteron(多Opteron也组成一个ccNUMA架构)则使用的是MOESI协议,老的Xeon则使用MESI协议。MESIF的意思就是M(Modified)E(Exclusive)S(Shared)I(Invalid)F(Forward),MOESI则是M(Modified)O(Owner)E(Exclusive)S(Shared)I(Invalid),这些词分别代表了一个缓存页面的状态,Nehalem多了一个F状态,而Opteron则多了一个O状态。

Cache Coherent Protocol缓存同步协议
 
干净/脏唯一可写转发可安静地转化成的状态说明
MESIF over QPI/CSI(Intel Nehalem)
M(Modified)
修改
Dirty
 被请求时需要先写入内存
并转化为F状态
E(Exclusive)
独占
Clean
干净
M、S、I、F被写入时转化为M状态
S(Shared)
共享
Clean
干净
I主副本被写入时转为无效
I(Invalid)
无效
----- 
F(Forward)
转发
Clean
干净
S、I主副本
被写入时转换为M状态
并使其他S副本无效
MOESI over HTT(AMD Opteron)
M(Modified)
修改
Dirty
O被请求时不需要写入内存
而仅仅转化为O状态
O(Owner)
拥有者
Dirty
 主副本
转换为其他状态需要先写入内存
E(Exclusive)
独占
Clean
干净
M、S、I被写入时转化为M状态
S(Shared)
共享
干净或脏I可以同时为干净或者脏
主副本被写入时转为无效
I(Invalid)
无效
----- 
MESI over FSB(Intel Xeon)
M(Modified)
修改
Dirty
 被请求时需先写入内存
E(Exclusive)
独占
Clean
干净
M、S、I被写入时转化为M状态
S(Shared)
共享
Clean
干净
I可以转发
I(Invalid)
无效
----- 

三种缓存同步协议对比:Nehalem MESIF、Opteron MOESI、Xeon MESI

  MESIF可以说是Intel在多Xeon使用的MESI协议的扩充,增加了一个F状态(同时修改了S状态让其无法转发以避免进行过多的传输)。F状态就是这样一个状态:在一个多处理器之间共享的缓存页面中,只有其中一个处理器的该页面处于F状态,另外所有处理器的该页面均处于S状态,F状态负责响应其他没有该页面的处理器的读请求,而S状态则不响应并且不允许将缓存页面发给他人(或许S用Silent来代表更合适)。 

   当一个新处理器需求读取这个F页面时,原有的F页面则转为S状态,新的处理器获得的页面总是保持为F状态。在一群相同的页面中总有并且只有一个页面是处于F状态,其他的S副本则以F副本为中心。这种流动性让传输压力得以分散到各个处理器上,而不是总维持在原始页面上。

  不会改变的页面的共享很好处理,关键的是对Dirty页面的对待(Dirty页面是指一个内容被修改了的缓存页面,需要更新到内存里面去),显然,一堆页面的副本中同一时间内只能有其中一个可以被写入。MESIF中,只具有一个副本的E状态在被写入的时候只需要简单地转化为M状态;而F状态被写入时则会导致其所有的S副本都被置为无效(通过一个广播完成);S副本是“沉默”的,不允许转发,也不允许被写入,这些副本所在的处理器要再次使用这个副本时,需要再次向原始F副本请求,F副本现在已经转化为M副本,被请求状态下M副本会写入内存并重新转化为F状态,不被请求时则可以保持在M状态,并可以不那么快地写入内存以降低对内存带宽的占用。

  MESIF实际上只允许一堆共享副本当中的中央副本(F状态)被写入,在多个处理器均需要写入一个缓存页面的时候,会引起“弹跳”现象,F副本在各个处理器之间不停传输——这有点像令牌环——会降低性能,特别是F副本不在其所在的原始内存空间的时候。

  Opteron的MOSEI协议不需要被写入的M状态写入内存就可以进行共享(这时M状态会转变为O状态,共享后的Dirty副本被标记为S状态),这避免了一次写入内存,节约了一些开销,尚不清楚为什么Intel没有在新生的总线上采用这种更为优化的协议;当再次写入O状态副本时,其他的S副本同样会被设置为无效。MOSEI也只允许一堆共享副本当中的中央副本(O状态)被写入,也存在着弹跳现象。

  不过,在一个方面Nehalem具有优势:包含式(或者非独占式)L3缓存,当一个处理器被请求一个页面,或者被通知一个页面要被设置为无效的时候,它只需要检查L3就可以知道该如何操作。在L3缓存没有这个页面的时候,不需要像非包含式L3设计那样,再检查L1、L2页面。

Architecture: Hyper Threading
架构:超线程

  HTT超线程技术出自Intel位于Oregen俄勒冈州的Hillsboro研发中心。Pentium Pro、Pentium 4、Nehalem架构都是出自这个Hillsboro研发中心。Pentium 4和Nehalem搭载的HTT超线程都是同一个东西,都是让处理器可以同时运行多条指令,实际上,它们属于多线程技术中的一个分类:SMT同步多线程。起先,Intel在资料中使用SMT来称呼Nehalem的HT技术,然而SMT实是一个专有名词,并不仅仅Nehalem有采用,于是Intel又改变了主意,又将其称作为HTT超线程。各种典故可以看这里:机密揭露:Intel超线程技术有多少种?

Nehalem的超线程技术就是NetBurst超线程技术的升级版本,和Atom和Itanium的超线程技术都不同

  并不是所有的Nehalem处理器都提供了超线程技术,在Nehalem-EP当中,只有末尾是0的型号才具有,是其他数字的就不具备HTT。如L5502是一款双核的、不搭载超线程技术的Nehalem-EP处理器,千颗售价$188,非常便宜。当然值不值得又是另外一回事了。

 

Nehalem超线程技术的实施细节 

  超线程技术可以通过很少的代价提升并行应用的性能特别是在服务器领域,因此Nehalem在服务器领域的能力将会再一次得到提升。AMD目前并没有类似的技术,因此在未来的对阵当中,Nehalem更被看好些。

  SMT属于MTT的一种,下面是MTT——MultiThreading多线程技术的主要分类,MultiThreading多线程就是在一个单个的处理核心内同时运行多个工作线程的技术,和CMP(Chip MultiProcessing,芯片多处理)不同,后者是通过集成多个处理内核的方式来让系统的处理能力提升——也就是现在常见的多核技术。现在主流的处理器都使用了CMP技术。主流的MultiThreading具有着三种形式,差别在于线程间共享的资源以及线程切换的机制: 

多线程架构异同
多线程技术
线程间共享资源线程切换机制资源利用率
粗粒度多线程
Coarse-Grained MultiThreading
除取指令缓冲、寄存器、控制逻辑外
流水线停顿时
提升单个执行单元利用率
细粒度多线程
Fine-Grained MultiThreading
除寄存器、控制逻辑外每时钟周期提升单个执行单元利用率
同步多线程
Simultaneous
MultiThreading
除取指令缓冲、返回地址堆栈、寄存器、控制逻辑、重排序缓冲、Store队列外所有线程同时活动,无切换提升多个执行单元利用率

   其中CMT和FMT都是在单个执行单元下的技术,不同的线程在指令级别上并不是真正的“并行”,而SMT则具有多个执行单元,同一时间内可以同时执行多个指令,因此前两者有时先归类为TMT(Temporal MultiThreading,时间多线程),以和SMT相区分。


Itanium 2 Montecito也具有超线程技术,不过,和Pentium 4/Nehalem不同,它属于CMT粗粒度多线程技术

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评测中心观点
相关文章