你的位置:pcMing工作室 >> 资讯 >> 专业术语 >> 详细内容 在线投稿

Nehalem百科

排行榜 收藏 打印 发给朋友 举报 来源: 百度百科   发布者:未知
热度2151票  浏览218次 【共0条评论】【我要评论 时间:2010年6月14日 22:45

d JnN;w:J0 pcMing工作室7TK2`b$zB0_C

Nehalem技术研究pcMing工作室4O#W*S:{&H/AX#D

pcMing工作室)ou k5Bz{.{$m

  下文中介绍的Nehalem的技术指标主要是以Nehalem-EP(Gainestown)为范例来介绍的,该核心将会用于Xeon DP,就是用于服务器的双路CPU。Nehalem是4核心、8线程、64bit、4超标量发射、乱序执行的CPU,有16级流水线、48bit虚拟寻址和40bit物理寻址。 pcMing工作室a1Rm9{H&~PK

5K9Gfc.x~Lu{0  简单说来,Nehalem还是基本建立在Core微架构(Core Microarchitecture)的骨架上,外加增添了SMT、3层Cache、TLB和分支预测的等级化、IMC、QPI和支持DDR3等技术。比起从Pentium 4的NetBurst架构到Core 微架构的较大变化来说,从Core 微架到Nehalem架构的基本核心部分的变化则要小一些,因为Nehalem还是4指令宽度的解码/重命名/撤销。

,o!z0@%[8b0

P"v9BcHz#toR!zc0  Nehalem的核心部分比Core 微架构新增加的功能主要有以下几方面: pcMing工作室f$|k&Ti me.W

pcMing工作室_'QU/Q"jS\

  New SSE4.2 Instructions (新增加SSE4.2指令)

|1Xg&o*or@a3v0

q,[-u9de gM.A0  Improved Lock Support (改进的锁定支持) pcMing工作室4@6`*J&Y8`B!|,]

pcMing工作室 i-F'};dP)t)|

  Additional Caching Hierarchy (新的缓存层次体系)

)a;b)W"^*~,h${G([0
pcMing工作室!mZXXvIP

  Deeper Buffers (更深的缓冲) pcMing工作室k3j6^K[r1a

]*])f_wOq/T0  Improved Loop Streaming (改进的循环流)

`OLxC \O/t0

fh6_8~$S;e~0  Simultaneous Multi-Threading (同步多线程) pcMing工作室n| d6U A-p^$K

pcMing工作室:e'i%{cG?v;I

  Faster Virtualization (更快的虚拟化) pcMing工作室'`*rHKS\jn0cA

'@T\5HFd,H L0  Better Branch Prediction (更好的分支预测)

rW2m Uh!z6x+d^6f0

VK\(]8i {0xdY"_0  一、QPI总线技术 pcMing工作室ht Me$[!R{)[7{

pcMing工作室 bt1q~+Dp*G oF-D

  Nehalem使用的QPI总线是基于数据包传输(packet-based)、高带宽、低延迟的点到点互连技术(point to point interconnect),速度达到6.4GT/s(每秒可以传输6.4G次数据)。每一条连接(link)是20bit位宽的接口,使用高速的差分信号(differential signaling)和专用的时钟通道(dedicated clock lane),这些时钟通道具有失效备援(failover)。QPI数据包是80bit的长度,发送需要用4个周期。尽管数据包是80bit,但只有64bit是用于数据,其它的数据位则是用于流量控制、CRC和其它一些目的。这样,每条连接就一次传输16bit(2Byte)的数据,其余的位宽则是用于CRC。由于QPI总线可以双向传输,那么一条QPI总线连接理论最大值就可以达到25.6GB/s(2×2B×6.4GT/s)的数据传送。单向则是12.8GB/s。 pcMing工作室Q'?W VB3q-Md7?4Q

iA5y(s!a#X0  对于不同市场的Nehalem,可以具有不同的QPI总线条数。比如桌面市场的CPU,具有1条或者半条QPI总线(半条可能是用10bit位宽或单向);DP服务器(双CPU插座)的CPU,每个具有2条QPI总线;而MP服务器(4个或8个CPU插座)的,则每个具有4条或更多的QPI总线。 pcMing工作室'z%\UF*gs6U p

pcMing工作室tKF\;Sd

  二、IMC

-AF S yYg/FRnz0

^t}|8@j0  Nehalem的IMC(integrated memory controller,整合内存控制器),可以支持3通道的DDR3内存,运行在1.33GT/s(DDR3-1333),这样总共的峰值带宽就可以达到32GB/s(3×64bit×1.33GT/s÷8)。不过还并不支持FB-DIMM,要Nehalem EX(Beckton)才有可能会支持FB-DIMM(Fully Buffered-DIMM,全缓冲内存模组)。每通道的内存都能够独立操作,控制器需要乱序执行来降低(掩盖)延迟。由于有了Core 2近4倍的内存带宽,Nehalem的每个核心支持最大10个未解决的数据缓存命中失败(outstanding data cache miss)和总共16个命中失败,而Core 2在运行中则只支持最大8个数据缓存的和总共14个的命中失败。

7GX7mo n^R!c0
pcMing工作室Fu7y|Z,M

  IMC能够很显著的降低内存延迟(尤其是对于采用FB-DIMM方案的系统)。下面的Nehalem与Harpertown,我不清楚是什么频率情况下的对比(来自于IDF上的表格,可能Nehalem是3.2GHz)。Nehalem的本地内存延迟大约是Harpertown的60%。Harpertown系统使用的是1.6GT/s的前端总线,所有内存都在一个位置,大约是略低于100ns(纳秒)的延迟,这样Nehalem的内存延迟就是约60ns。对于2个CPU插座的Nehalem来说,使用的是NUMA结构(Non Uniform Memory Access Achitecture,非均匀内存存取架构),远方内存的延迟则要高一些,因为这时对内存的请求和回应需要通过QPI总线,其延迟大约是Harpertown的95%。所以,即使是最糟糕的情况,延迟还是得到了降低。一个有意思的问题是,当使用4个CPU插座的Nehalem时,延迟是否将会被增大?因为这种系统很有可能会使用FB-DIMM,而这意味着将遭受延迟损失,不过远方内存的延迟还是将只会比本地内存慢个约30ns。

VAt+^j"R-QT0

jmK"] P0  对于其它使用IMC和核心互连的多CPU系统(例如EV7、K8、K10),内存延迟也是非均匀的(NUMA)。为了优化性能,操作系统就必须知道延迟差异,并调度那些在同一个CPU上共享数据的进程。Windows Vista是Microsoft的第一个为NUMA进行优化的操作系统,而Linux等则已经很早就可以支持NUMA了。

Sp+im9vy0

C&L*jqf` ^[)`0  Nehalem的远方/本地延迟比是约1.5倍。衡量K8的NUMA系数(也就是远方延迟除以本地延迟)在2 CPU系统时也差不多是1.5。而在4 CPU系统时,INTEL将具有优势,因为所有的内存要么都是本地(当QPI总线上没有hop时),或者所有内存都是远方(QPI总线上有一个hop时)。因为使用对角线连接,每个CPU都有QPI总线连接,那么远方内存最多就一跳(1个hop)。而现在的4插座的K8或K10系统,有的内存在HT总线上多达有2个hop。总之,具有更大的NUMA系数,就更需要软件考虑其所使用的内存的位置。作为参考,其中最早一个具备IMC和核心互连的EV7,在其64 CPU的系统中,NUMA系数为1.86-5.21(1-8个hop的情况)。

'Vi~@j)IYl)F+}&fq$F0
pcMing工作室j"~9I[`

  三、SMT

F,G$NC]0

xQdz:XfA(K'~ b0  同步多线程(Simultaneous Multi-Threading,SMT)技术又重新回归到了Nehalem架构,这最早出现在130nm的P4上。对于打开了SMT的CPU来说,将会遭受到更多的命中失败,并需要使用更多的带宽。所以Nehalem比P4是更适合使用SMT的。另外,在移动和桌面领域的Nehalem有可能将不会支持SMT,它们也不需要3通道内存。 pcMing工作室 B.\&K3p&Z @

pcMing工作室'vbpXa"gG

  为什么Core 2没有使用SMT?很显然,它是可以做到的。SMT是在节省电力的基础上增加了性能,而且软件支持的基础建设也早就有了。有2个可能的原因:一是Core 2可能没有足够的内存带宽和CPU内部带宽来利用SMT获得优势。通常,SMT能够提升内存级并行(memory level parallelism,MLP),但是对于内存带宽已经成为瓶颈的系统则是个麻烦。而更有可能的原因则是SMT的设计、生效等是很麻烦的,而当初设计SMT是由INTEL的Hillsboro小组主持,而并非是Haifa小组(Core 2是由这个小组负责的)。这样Core 2不使用SMT就避免了冒险。 pcMing工作室P z7B7qm bs

pcMing工作室N x3^w*s%o(q"Mp{

  Nehalem的同步多线程(Simultaneous Multi-Threading,SMT)是2-way的,每核心可以同时执行2个线程。对于执行引擎来说,在多线程任务的情况下,就可以掩盖单个线程的延迟。SMT功能的好处是只需要消耗很小的核心面积代价,就可以在多任务的情况下提供显著的性能提升,比起完全再添加一个物理核心来说要划算得多。这个和以前P4的HT技术是一样的,但比较起来,Nehalem的优势是有更大的缓存和更大的内存带宽,这样就更能够有效的发挥。按照INTEL的说法,Nehalem的SMT可以在增加很少能耗的情况下,让性能提升20-30%。

}6[ F[%C7`9DA0
pcMing工作室g[eV2K5k*V

  对于SMT的各线程间所采用的资源共享策略有许多种:

X^2n)G__~BB*i)}/mO0
pcMing工作室H0TH(Jn JrS

  1、复制型—— 线程都可以复制使用

.FM6ZOT(E)c0
pcMing工作室(u R d^&Auj `O~

  寄存器状态 pcMing工作室i l9bhQ5w1bF2ir

pcMing工作室b co*J,u9q

  重命名RSB(重命名返回堆栈缓存) pcMing工作室}w$[_!Hw~

}j&F+p0awzrZ"k|$w0  大页表ITLB

4p|5[h7F+\ R%l/X0
pcMing工作室3hZTp E#Y |i

  2、静态分配型—— 一般由线程平分

LN#j3hMt0

ti5C$i-w1X0  各种主要的缓冲:读取、存储、重排序 pcMing工作室 w+[xC ~3\O9sY)A

x'G$?X|mD'w^m0  小页表ITLB pcMing工作室|\*w5X1b$iK

k,e3YC.HoZ1o0  3、竞争共享—— 由线程动态占有 pcMing工作室GZSc2B$N:Y3?1_

%vp|UZ X0  保留站(RS) pcMing工作室+uh {!}Y*o1os

q,MYf"\3z0  缓存(Cache) pcMing工作室gbU8N%|5PL

pcMing工作室&E1E$?E,^'Mj

  数据TLB(DTLB),L2 TLB pcMing工作室2g&g1A1\ ?k6O S `

3i[6DF a0  4、不受影响

p(qHL}y3g|!F0

6dj c&e4G\.hV t0  执行单元 pcMing工作室7hCj PO-R7^&v

pcMing工作室[ H)v}!e

  Nehalem同时也降低了同步原语(起始同步),比如LOCK prefix、XCHG和CMPXCHG等指令的延迟。同步原语在多线程编程中是必需的,而多线程的扩展性被同步所限制,通过降低延迟,可以提高现在多线程软件的性能。INTEL宣称,Nehalem的LOCK CMPXCHG指令(其作用是使整个流水线串行化)的延迟是P4的约20%,Core 2的约60%。尽管降低了延迟,但行为仍然和以前的CPU还是一样的,锁定指令(Lock)并不是管道化的,即使后面的操作可以被提前到锁定指令之前来执行。

KE)rG[5tau0 pcMing工作室1sV |+V jv'b#IT

顶:131 踩:122
对本文中的事件或人物打分:
当前平均分:-0.49 (669次打分)
对本篇资讯内容的质量打分:
当前平均分:-0.16 (617次打分)
【已经有612人表态】
105票
感动
86票
路过
70票
高兴
61票
难过
77票
搞笑
59票
愤怒
80票
无聊
74票
同情
上一篇 下一篇
发表评论
换一张

网友评论仅供网友表达个人看法,并不表明本网同意其观点或证实其描述。

查看全部回复【已有0位网友发表了看法】

网络资源