文档库 最新最全的文档下载
当前位置:文档库 › 服务器硬件架构

服务器硬件架构

从性能角度来看,处理器、内存和I/O这三个子系统在服务器中是最重要的,它们也是最容易出现性能瓶颈的地方。目前市场上主流的服务器大多使用英特尔Nehalem、Westmere微内核架构的三个家族处理器:Nehalem-EP, Nehalem-EX 和Westmere-EP下表总结了这些处理器的主要特性:

Nehalem-EP Westmere-EP Nehalem-EX Nehalem-EX

商业名称至强5500至强5600至强6500至强7500

支持的最插座数2228

每插座最大核心数4688

每插座最大线程数8121616

MB缓存(3级)8121824

最大内存DIMM数181832128

在本文中,我们将分别从处理器、内存、I/O三大子系统出发,带你一起来梳理和了解最新英特尔架构服务器的变化和关键技术。

、处理器的演变

现代处理器都采用了最新的硅技术,但一个单die(构成处理器的半导体材料块)上有数百万个晶体管和数兆存储器。多个die组织到一起就形成了一个硅晶片,每个die 都是独立切块,测试和用陶瓷封装的,下图显示了封装好的英特尔至强5500处理器外观。

图1英特尔至强5500处理器

插座

处理器是通过插座安装到主板上的,下图显示了一个英特尔处理器插座,用户可根据自己的需要,选择不同时钟频率和功耗的处理器安装到主板上。

f

!

v

J f A* ■ ■

图2英特尔处理器插座

主板上插座的数量决定了最多可支持的处理器数量, 最初,服务器都只有一 个处理器插座,但为了提高服务器的性能,市场上已经出现了包含 2, 4和8个 插座的主板。

在处理器体系结构的演变过程中,很长一段时间,性能的改善都与提高时钟 频率紧密相关,时钟频率越高,完成一次计算需要的时间越短,因此性能就越好。 随着时钟频率接近4GHz 处理器材料物理性质方面的原因限制了时钟频率的进 一步提高,因此必须找出提高性能的替代方法。

核心

晶体管尺寸不断缩小(Nehalem 使用45nm 技术,Westmere 使用32nm 技

术), 允许在单块die 上集成更多晶体管,利用这个优势,可在一块die 上多次复制最 基本的CPU 核心),因此就诞生了多核处理器。

现在市场上多核处理器已经随处可见,每颗处理器包含多个 CPU 核心(通常 是2,4,6,8个),每个核心都有一级缓存(L1),通常所有的核心会共享二级 (L2)、三级缓存(L3)、总线接口和外部连接,下图显示了一个双核心的CPU 架构。

现代服务器通常提供了多个处理器插座,例如,基于英特尔至强 5500系列

(Nehalem-EP )的服务器通常包含两个插座,每个插座四个核心,总共可容纳八个 核心,而基于英特尔至强7500系列(Nehalem-EX )的服务器通常包含八个插座, 每个插座八个核心,总共可容纳 64个核心。

下图显示了更详细的双核处理器架构示意图,

解码CPU 勺主要组件(提取指令,

图3双核心CPU 架构示意图

和执行)都被复制,但系统总线是公用的。

图4双核处理器的详细架构示意图

线程

为了更好地理解多核架构的含义,我们先看一下程序是如何执行的,服务器会运行一个内核(如Linux,Windows的内核)和多个进程,每个进程可进一步细分为线程,线程是分配给核心的最小工作单元,一个线程需要在一个核心上执行,不能进一步分割到多个核心上执行。下图显示了进程和线程的关系。

图5进程和线程的关系

进程可以是单线程也可以是多线程的,单线程进程同一时间只能在一个核心 上执行,其性能取决于核心本身,而多线程进程同一时间可在多个核心上执行, 因此它的性能就超越了单一核心上的性能表现。

因为许多应用程序都是单线程的,在多进程环境中,多插座、多核心的架构 通常会带来方便,在虚拟化环境中,这个道理一样正确, Hypervisor 允许在一 台物理服务器上整合多个逻辑服务器,创建一个多进程和多线程的环境。

英特尔超线程技术

虽然单线程不能再拆分到两个核心上运行,但有些现代处理器允许同一时间 在同一核心上运行两个线程,每个核心有多个并行工作能力的执行单元, 很难看 到单个线程会让所有资源繁忙起来。

下图展示了英特尔超线程技术是如何工作的,同一时间在同一核心上有两个 线程执行,它们使用不同的资源,因此提高了吞吐量。

P#3

TfrlG

T41N

P#5

酬1

T#14,

T#x :Thread x P 芾y: Process

:o-n

T2

ipia

U30

你的H

9 ZU

口HB Q '1 .订的?咄苓

墨舞恒

server.iF

图6英特尔超线程技术工作原理

前端总线

在多插座和多核心的情况下,理解如何访问内存和两个核心之间是如何通信的非常重要,下图显示了过去许多英特尔处理器使用的架构,被称作前端总线(FSB)架构。在FSB架构中,所有通信都是通过一个单一的,共享的双向总线发送的。在现代处理器中,64位宽的总线以4倍速总线时钟速度运行,在某些产品中,FSB信息传输速率已经达到1.6GT/S。

Processor Processor Processor Processor

图7基于前端总线的服务器平台架构

?t~L|

Thread 2 丁畑」If |

1 * 1 K

Hesoirce 1 [ j^^||m

Throughput

Memo r/

Interfatc?

Chipset

Ptiyskdi processor

resource allocation

Phw?ica I Log ica 1 [>r

acesso r

processors visibletoOS

HeMKirce 1

Ih'wuric i

J-l

Bo.ou

U4;

server.itl 68 .corn

FSB#所有处理器连接到芯片组的叫做北桥(也叫做内存控制器中枢),北桥连接所有处理器共享访问的内存。

这种架构的优点是,每个处理器都可以访问其它所有处理可以访问的所有内存,每个处理器都实现了缓存一致性算法,保证它的内部缓存与外部存储器,以及其它所有处理器的缓存同步。

但这种方法设计的平台要争夺共享的总线资源,随着总线上信号传输速度的上升,要连接新设备就变得越来越困难了,此外,随着处理器和芯片组性能的提升, FSB上的通信流量也会上升,会导致FSB变得拥挤不堪,成为瓶颈。

双独立总线

为了进一步提高带宽,单一共享总线演变成了双独立总线架构(DIB),其架构如下图所示,带宽基本上提高了一倍。

server. iit168 .com

图8基于双独立总线的服务器平台架构

但在双独立总线架构中,缓存一致性通信必须广播到两条总线上,因此减少了总有效带宽,为了减轻这个问题,在芯片组中引入了“探听过滤器”来减少带宽负载。

如果缓存未被击中,最初的处理器会向FSB发出一个探听命令,探听过滤器拦截探听,确定是否需要传递探听给其它FSB如果相同FSB上的其它处理器能满足读请求,探听过滤器访问就被取消,如果相同FSB上其它处理器不满意读请求,探听过滤器就会确定下一步的行动。如果读请求忽略了探听过滤器,数据就直接从内存返回,如果探听过滤器表示请求的目标缓存在其它FSB上不存在,它

将向其它部分反映探听情况。如果其它部分仍然有缓存,就会将请求路由到该 FSB 如果其它部分不再有目标缓存,数据还是直接从内存返回,因为协议不支 持写请求,写请求必须全部传播到有缓存副本的所有 FSB 上。

专用高速互联

在双独立总线之后又出现了专用高速互联架构

(Dedicated High-Speed

Interconnect , DHSI),其架构如下图所示。

Proce$$0r

图9基于DHSI 的服务器平台架构

基于DHSI 的平台使用四个独立的FSB 每个处理器使用一个FSB 引入探听 过滤器实现了更好的带宽扩容,FSB 本身没多大变化,只是现在变成点对点的配 置了。

使用这种架构设计的平台仍然要处理快速 FSB 上的电信号挑战,DHSI 也增 加了芯片组上的针脚数量,需要扩展 PCE 路线,才能为所有FSB 建立好连接。

英特尔QuickPath 互联

随英特尔酷睿i7处理器引入了一种新的系统架构,即著名的英特尔

QuickPath 互联(QuickPath Interconnect , QPI),这个架构使用了多个高速单

向连接将处理器和芯片组互联,使用这种架构使我们认识到了:

Prosser

Memory

hnoap I Iter

Chipset

11

*你申'服雰黑频這servier.irtl B^jcom

Up !□ 34GB/5 Plsrforrn

tian fl Width

① .多插座和多核心通用的内存控制器是一个瓶颈

② ?引入多个分布式内存控制器将最符合多核处理器的内存需要 ;

③ ?在大多数情况下,在处理器中集成内存控制器有助于提升性能 ; ④ ?提供有效的方法处理多插座系统一致性问题对大规模系统是至关重要 的。 下图显示了一个多核处理器,集成了内存控制器和多个连接到其它系统资源 的英特尔QuickPath 的功能示意图。

血'祿幽丘驢驾霁频這 server https://www.wendangku.net/doc/ce18598319.html,

图10集成英特尔QPI 和DDR 3内存通道的处理器架构

在这个架构中,每个插座中的所有核心共享一个可能有多个内存接口的

IMC (Integrated Memory Controllers ,集成内存控制器)。

IMC 可能有不同的外部连接:

① .DDR 3内存通道 -在这种情况下,DDR 3 DIMM1接连接到插座,如下 图所示,Nehalem-EP (至强5500)和 Westmere-EP (至强5600)就使用了这种架构。

DDR3 Memory

Chdr>n^l5

4P ~ Q

乏 WID

1-

s 』逸O 」

1UQ) AOEQJS pOJlz 少

sj=

Crossbar Router/

Nori'TOutir\g glab^l links interfe ce

Pr-o

图11具有高速内存通道的处理器

② ?高速串行内存通道 -如下图所示,在这种情况下,外部芯片(SMB

Scalable Memory Buffer ,可扩展内存缓存)创建DDR 3内存通道,DDR 3 DIMM 通过这个通道连接,Nehalem-EX 使用了这种架构。

PCIe 2,0

图12 四插座Nehalem-EX

IMC 和插座中的不同核心使用英特尔 QPI 相互通信,实现了英特尔QPI 的处 理器也

可以完全访问其它处理器的内存, 同时保持缓存的一致性,这个架构也叫 做“缓存一致性 NUMA (Non-Uniform Memory Architecture 非统一内存架构)”, 内存互联系统保证内存和所有潜在的缓存副本总是一致的。

Ml —

server https://www.wendangku.net/doc/ce18598319.html,

IridPiconnfcts

LX

N?halem EX

1

hehalem-FX

Nehalem-EX

server. rt168 .corn

Il -.ii-.

£丹

Memory

ChanneK

E

S

乏fi

X =±o 』

e0D Aj q E 中 W 盘

126£亡

-

£ 栢

nnel¥

Processor Cares

Cea bar Route" Non-rpuNnq glctMlUnki interface

L

B-L ^EX

英特尔QPI是一个端到端互联和消息传递方案,在目前的实现中,每个连接由最高速度可达25.6 GB/S或6.4 GT/s的20条线路组成。

英特尔QPI使用端到端连接,因此在插座中需要一个内部交叉路由器,提供全局内存访问,通过它,不需要完整的连接拓扑就可以构建起系统了。

图12显示了四插座Nehalem-EX配置,每个处理器有四个QPI与其它三个处理器和Boxboro-EX芯片组互联。

二、内存子系统

电子业在内存子系统上付出了艰辛的努力,只为紧跟现代处理器需要的低访问时间和满足当今应用程序要求的高容量需求。

解释当前内存子系统之前,我们先了解一下与内存有关的一些常用术语。

①.RAM(随机访问存储器)

②.SRAM(静态RAM)

③.DRAM(动态RAM)

④.SDRAM(同步DRAM)

⑤.SIMM(单列直插式内存模块)

⑥.DIMM(双列直插内存模块)

⑦.UDIMM(无缓冲DIMM)

⑧.RDIMM(带寄存器的DIMM)

⑨.DDR(双数据速率SDRAM)

⑩.DDR2(第二代DDR)

⑩.DDR3(第三代DDR)

电子器件工程联合委员会(Joint Electron Device Engineering Council ,JEDEC是半导体工程标准化机构,JEDEC21, 22定义了从256位SRAM^最新的

DDR3莫组的半导体存储器标准。

现代服务器的内存子系统是由RAM组成的,允许数据在一个固定的时间按任意顺序访问,不用考虑它所在的物理位置,RAM可以是静态的或动态的。

SRAM

SRAM静态RAM通常非常快,但比DRAM的容量要小,它们有一块芯片结构维持信息,但它们不够大,因此不能作为服务器的主要内存。

DRAM

DRAM动态RAM是服务器的唯一选择,术语“动态”表示信息是存储在集成电路的电容器内的,由于电容器会自动放电,为避免数据丢失,需要定期充电,内存控制器通常负责充电操作。

SDRAM

SDRAM同步DRAM是最常用的DRAM SDRAI具有同步接口,它们的操作与时钟信号保持同步,时钟用于驱动流水线内存访问的内部有限状态机,流水线意味着上一个访问未结束前,芯片可以接收一个新的内存访问,与传统DRAM目比,这种方法大大提高了SDRAM的性能。

DDR和DDR3是两个最常用的SDRAMF图显示了一块DRA芯片的内部结构

图13 DRAM芯片的内部结构

内存阵列是由存储单元按矩阵方式组织组成的,每个单元都一个行和列地址,每一位都是存储在电容器中的。

为了提高性能,降低功耗,内存阵列被分割成多个“内存库 (bank ) ”,下

显示了一个4-bank 和一个8-bank 的内存阵列组织方式。

图14内存bank

DDR2芯片有四个内部内存 bank , DDR 亦片有八个内部内存 bank

DIMM

需要将多个内存芯片组装到一起才能构成一个内存子系统, 它们就是按著名

的DIMM 双列直插内存模块)组织的。

下图显示了内存子系统的传统组织方式,例如,内存控制器连接四个 DIMM 每一个由多块DRAMS 片组成,内存控制器有一个地址总线,一个数据总线和一 个命令(也叫做控制)总线,它负责读,写和刷新存储在 DIMM 中的信息。

ME>ni.Dry

Arm/

DR 砂

Co^nin Decoder

a t ££□ ?■

——

15^ ■

https://www.wendangku.net/doc/ce18598319.html,

下图展示了一个内存控制器与一个 DDR3 DIMM 连接的示例,该DIMM 由八块 DRAM 芯片组成,每一块有8位数据存储能力,每存储字(内存数据总线的宽度) 则共有64位数据存储能力。地址总线有15位,它可在不同时间运送“行地址” 或“列地址”,总共有30个地址位。此外,在 DDR3芯片中,3位的bank 地址 允许访问8个bank ,可被视作提高了控制器的地址空间总容量,但即使内存控 制器有这样的地址容量,市面上DDR3芯片容量还是很小。最后,RAS (RowAddress Selection ,行地址选择),CAS (Column Address Selection ,列地址选择), WE (Write Enabled ,写启用)

等都是命令总线上的。

Data Bus

(64 brtd

Clock

fix

Ad 山0鈔Bus and

Commands

lock

i

Memory Controller

你働?服霭■黑频道

server.itlG8 .com

图15传统内存子系统示例

ECC 和 Chipkill

数据完整性是服务器架构最关注的一个点,很多时候需要安装额外的 DIMM 检测和恢复内存错误,最常见的办法是增加 8位ECC 纠错码),将存储字从64 位扩大到72位,就象海明码一样,允许纠正一位错误,检测两位错误,它们也 被称作 SEC (Single Error Correction ,单纠错)/DED (Double Error Detection , 双检错)。

Addr^114^1,&afik[2fli

RASE** CAS4P WE< C5*r

CKE

CK. CKi

ojutzaj

r m2[再:別

"律

(Wil :

H (5^40]

D 活饰SVctw Data Mask

你前■服雰霁频這https://www.wendangku.net/doc/ce18598319.html,

图16 DDR3内存控制器示例

F 面是一个DIMM 勺示意图

上图显示了 8个DDR3芯片,每个提供了 8位信息(通常表示为x8)

先组织存储字再写入到内存芯片中,EEC可以用于保护任一内存芯片的失效,以及单内存芯片的任意多位错误,这些功能有几个不同的名字。

①.Chipkill 是IBM的商标

②.Oracle称之为扩展EEC

③.惠普称之为Chipspare

④.英特尔有一个类似的功能叫做x4单设备数据校正(Intel x4 SDDC)

Chipkill通过跨多个内存芯片位散射EEC字的位实现这个功能,任一内存芯片失效只会影响到一个ECC位,它允许重建内存中的内容。

下图了显示了一个读和写128位数据的内存控制器,增加EEC后就变成144 位了,144位分成4个36位的存储字,每个存储字将是SEC/DED如果使用两个DIMM每个包含18个4位芯片,可以按照下图所示的方法重组位,如果芯片失效,每4个字中只会有一个错误,但因为字是SEC/DED勺,每4个字可以纠正一个错误,因此所有错误都可以被纠正过来。

图18 Chipkill 示例

内存Rank

我们重新回到DIMM是如何组织的,一组产生64位有用数据(不计ECC的芯片叫做一个Rank,为了在DIMM±存储更多的数据,可以安装多个Rank,目前有单,双和四个Rank的DIMM,下图显示了这三种组织方法。

图19 DIMM 和内存排

上图最前面显示的是一个单 Rank 的RAM 由9个8位芯片组成,一般表示 为

1Rx8,中间显示的是一个1Rx4,由18个4位芯片组成,最后显示的是一个 2Rx8,由18个8位芯片组成。

内存Rank 不能使用地址位选择,只能使用芯片选择,现代内存控制器最多 可达8个独立的芯片选择,因此最大可支持 8个Rank 。

UDIMM 和 RDIMM

SDRAMDIMM 进一步细分为 UDIMM 无缓冲DIMM 和 RDIMM 带寄存器的

DIMM ) 在UDIMM 中,内存芯片直接连接到地址总线和控制总线,无任何中间部分。

RDIMM 在传入地址和控制总线,以及 SDRAI 之间有额外的组件(寄存器),这

些寄存器增加了一个延迟时钟周期, 但它们减少了内存控制器上的电负荷, 允许 内存控制器安装更多的DIMM

RDIMM!常更贵,因为它需要附加组件,但它们在服务器中得到了普遍使用, 因为对

于服务器来说,扩展能力和稳定性比价格更重要。

虽然理论上带寄存器/无缓冲的和ECC 非ECC DIMM!可以任何组合的,但 大多数服务器级内存模块都同时具有 ECC 和带寄存器功能。

DIMM Hank

Single-rank

I I

772b

I i

■4b I4b ?4b 14b <4b 14b £4b >4b ■ 4b I L ■ * Ja ■ ■ JT e ?■ 7 = w *■ ■ * J ■ ■ w ■ s- ■ ■ Jr . ■ ■

Dual-rank

;8b J Sb J 临的*

ryer itl 68:.corn

下图显示了一个ECCRDIMM 寄存器是箭头指向的芯片,这个 ECCDIMM 由9 个内存芯片组成。

你的'嚨嚴椰喜协* SG -Mm

图 20 ECC RDIMM

DDR2和 DDR3

第一代SDRA 技术叫做SDR(Single Data Rate),表示每个时钟周期传输一 个数据

单元,之后又出现了 DDR(Double Data Rate)标准,其带宽几乎是SDR 的 两倍,无需提高时钟频率,可在时钟上升沿和下降沿信号上同时传输数据, DDR 技术发展到今天形成了两套标准:DDR2W DDR3

DDR 2 SDRAI 的工作电压是1.8V ,采用240针DIMM 模块封装,通过改善总 线信号,它们可以以两倍于 DDR 的速度工作在外部数据总线上,规则是:

① .每DRAM 时钟数据传输两次 ② ?每次数据传输8个字节(64位)

F 表显示了 DDR2标准。

① .将工作电压降低到1.5v ,减少功耗;

② ?通过引入0.5-8Gb 的芯片增加了内存密度,单 Rank 的容量最大可达 16GB;

n

③?增加了内存带宽,内存突发长度从4字增加到8字,增加突发长度是为了更好地满足不断增长的外部数据传输速率,随着传输速率的增长,突发长度(传输的大小)必须增长,但不能超出DRAM核心的访问速度。

DDR3 DIMM! 240针,数量和尺寸都和DDR2-样,但它们在电气特性上是不兼容的,缺口位置不一样,未来,DDR3各工作在更快的时钟频率,目前,市面上存在

DDR3-800 1066和1333三种类型。

下表对不同的DDR3 DIMM模块进行了总结。

、I/O子系统

I/O子系统负责在服务器内存和外部世界之间搬运数据,传统上,它是通过服务器主板上兼容PCI标准的I/O总线实现的,开发PCI的目的就是让计算机系统的外围设备实现互联,PCI的历史非常悠久,现在最新的进化版叫做PCI-Express。

外围组件互联特殊兴趣小组(Peripheral Component Interconnect Special Interest Group ,PCI-SIG)负责开发和增强PCI标准。

PCI Express

PCI Express(PCIe)是一个计算机扩展接口卡格式,旨在替代PCI,PCI-X

和AGP

它消除了整个所有I/O引起的限制,如服务器总线缺少I/O带宽,目前所有

的操作系统都支持PCI Express 0

上一代基于总线拓扑的PCI和PCI-X已经被点到点连接取代,由此产生的拓扑结构是一个单根联合体的树形结构,根联合体负责系统配置,枚举PCIe资源,

相关文档