《思科UCS服务器统一计算》一2.2 内存子系统

2.2 内存子系统

思科UCS服务器统一计算
电子业在制造内存子系统上花费了巨大的精力,使内存子系统能够满足现代处理器所需的低访问时间和当今应用程序的高容量需求。

在介绍当前的内存子系统之前,有必要先介绍一些最常用的术语。

  • RAM(随机访问内存,Random Access Memory)
  • SRAM(静态RAM,Static RAM)
  • DRAM(动态RAM,Dynamic RAM)
  • SDRAM(同步DRAM,Synchronous DRAM)
  • SIMM(单列直插式内存模块,Single Inline Memory Module)
  • DIMM(双列直插式内存模块,Dual Inline Memory Module)
  • UDIMM(无缓冲DIMM,unbuffered DIMM)
  • RDIMM(带寄存器的DIMM,Registered DIMM)
  • DDR(双倍数据速率SDRAM,Double Data Rate SDRAM)
  • DDR2(第二代DDR,Second Generation DDR)
  • DDR3(第三代DDR,Third Generation DDR)

具体来讲,电子元件工业联合会(Joint Electron Device Engineering Council,JEDEC)是已经活跃在该领域的半导体工程标准组织。JEDEC标准21指定了从256位SRAM到最新的DDR3模块的半导体内存标准。

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

2.2.1 SRAM

SRAM(静态RAM)的速度通常非常快,但比DRAM(参见下一节)的容量要小(只有几兆字节),其芯片结构为只要有电就可保存信息。但它们不够大,因此不能用作服务器的主内存。

2.2.2 DRAM

DRAM(动态RAM)是服务器的唯一选择。术语“动态”表示信息存储在集成电路的电容器内。由于电容器会随着时间的推移而放电,因此,为避免数据丢失,需要定期给电容器重新充电(“刷新”)。内存控制器通常负责刷新操作。

2.2.3 SDRAM

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

DDR2和DDR3是两种最常用的SDRAM(参见本章的“DDR2和DDR3”部分)。

图2-13显示了DRAM芯片的内部架构。

内存阵列由存储单元按矩阵方式组成。每个单元都有行和列地址。每一个位都存储在电容器中(也就是存储元件)。

为了提高性能和降低功耗,内存阵列被分割成多个“内存库(bank)”,图2-14显示了一个4-bank和一个8-bank的内存阵列组织方式。

DDR2芯片有4个内部bank,而DDR3芯片有8个内部bank。

2.2.4 DIMM

需要将多个内存芯片组装到一起才能构建一个内存子系统。它们就是按照DIMM(双列直插内存模块)来组织的。

图2-15显示了内存子系统的传统组织方式。例如,内存控制器连接4个DIMM,每一个DIMM由多块DRAM芯片组成。内存控制器(也可集成时钟驱动器)有一个地址总线、一个数据总线和一个命令(也称为控制)总线。该内存控制器负责读取、写入和刷新存储在DIMM中的信息。

图2-16展示了内存控制器与DDR3 DIMM连接的示例。该DIMM由8块DRAM芯片组成,每一块芯片都能够存储8位的数据,每个内存字(内存数据总线的宽度)总共可存储64位的数据。地址总线有15位,它可在不同时间传输“行地址”或“列地址”,总共有30个地址位。此外,在每个DDR3芯片中,3位的库地址允许访问8个库。这可被视作将控制器的整体寻址能力提高到了8千兆字(也就是512Gbit,或64GB)。即使内存控制器有这样的寻址能力,但市面上可用的DDR3芯片容量还是很小。最后,行地址选择(Row Address Selection,RAS)、列地址选择(Column Address Selection,CAS)、写入生效(Write Enabled,WE)等都是在命令总线上。

前视图显示了8个DDR3芯片,每个芯片提供8位信息(通常表示为“x8”)。侧视图显示了芯片位于电路板的一侧,总共有8个芯片(也就是64位)。

2.2.5 ECC和Chipkill

数据完整性是服务器架构中关注的一个重点。通常需要在DIMM上安装额外的内存芯片来检测和恢复存储错误。最常见的排列方式是添加8位纠错码(Error Correcting Code,ECC),将存储字从64位扩展到72位。这允许实现类似汉明码这样的编码方式,允许纠正单位错误并检测双位错误。这些代码也称为单纠错/ 双检错(Single Error Correction/Double Error Detection,SEC/DED)。

通过仔细组织如何将存储字写入到内存芯片中,ECC可以用于预防任一内存芯片的失效,以及单个内存芯片内的任意多位错误。该特性有几个不同的名称[24]、[25]、[26]。

  • Chipkill是IBM的商标。
  • Oracle称之为扩展ECC。
  • HP称之为Chipspare。
  • Intel有一个类似的特性,称为Intel x4单设备数据纠错(Intel x4 Single Device Data Correction,Intel x4 SDDC)。

Chipkill通过跨多个内存芯片位散射ECC字的位来实现这个功能,这样,任一内存芯片失效将只会影响到一个ECC位。这使得不必理会某个芯片的完全失效即可重建存储内容。

虽然完整地讨论这一技术超出了本书的范围,但是一个示例就可说明其工作原理。图2-18显示了一个每次访问时读取和写入128位有用数据的内存控制器,增加ECC后就变成144位了。144位可分成4个36位的存储字,每个存储字将是SEC/DED。通过使用两个DIMM,每个存储字包含18个4位芯片,就可以按照图2-18所示的方法重组位。如果芯片失效,每4个字中将会有一个错误,但因为字是SEC/DED的,所以每4个字都可以纠正一个错误,因而4个错误都可以被纠正过来。

2.2.6 内存列

让我们重新回到DIMM是如何组织的,一组产生64位有用数据(不计ECC)的芯片称为一个“列(Rank)”。为了在DIMM上存储更多的数据,可以安装多个rank。目前有单、双和4个rank的DIMM。图2-19显示了这3种组织方法。

第一幅图显示的是一个单列的RAM,由9个8位芯片组成,这种配置还可以表示为1Rx8。第二幅图显示的是一个1Rx4排列,由18个4位芯片组成一个rank。最后,第三幅图显示的是一个2Rx8,由18个8位芯片组成两个rank。

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

2.2.7 UDIMM和RDIMM

SDRAM DIMM可进一步细分为UDIMM(无缓冲DIMM)和RDIMM(带寄存器的DIMM)。在UDIMM中,内存芯片直接连接到地址总线和控制总线,无需任何中间组件。

RDIMM在传入地址和控制总线,以及SDRAM组件之间放置了附加组件(寄存器)。这些寄存器添加了一个延迟时钟周期,但它们减少了内存控制器上的电负荷,因此支持在每个内存控制器上安装更多的DIMM。

因为需要附加组件,所以RDIMM通常更贵,但它们在服务器中得到了普遍使用,因为对于服务器来说,扩展能力和稳定性比价格更重要。

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

图2-20显示了一个ECC RDIMM。寄存器是箭头指示的芯片;这个ECC DIMM由9个内存芯片组成。

2.2.8 DDR2和DDR3

第一代SDRAM技术称为单倍速率(Single Data Rate,SDR),表示每个时钟周期传输一个数据单元。之后又出现了双倍速率(Double Data Rate,DDR)标准,通过在时钟信号的上升沿和下降沿上同时传输数据,无需提高时钟频率,其带宽就几乎能达到SDR的两倍。DDR技术发展到今天形成了两套标准:DDR2和DDR3。

DDR2 SDRAM(double-data-rate two synchronous dynamic random access memories)的工作电压是1.8V,采用240个针脚的DIMM模块封装。通过改进的总线信号传输,其外部数据总线能够以两倍于DDR的速度工作。

规则是:

每个DRAM时钟传输2次;
每次数据传输8个字节(64位)。
表2-2显示了DDR2标准1。

DDR3 SDRAM在DDR2的基础上对以下方面做了改进:

  • 通过将工作电压降低到1.5V,从而减少功耗;
  • 通过引入对0.5~8千兆位芯片的支持提高了内存密度,单rank的容量最大可达16GB;
  • 支持的内存突发长度从DDR2的4字增加到8字,从而增加了内存带宽。增加突发长度是为了更好地满足不断增长的外部数据传输速率。随着传输速率的增加,突发长度(传输的大小)必须增长,但不能超出DRAM核心的访问速率。

DDR3 DIMM有240个针脚,数量与尺寸都和DDR2一样,但它们在电气特性上是不兼容的,关键缺口位置也不一样。未来,DDR3工作时钟频率将更高。截至本书出版时,市面上只有DDR3-800、1066和1333这三种类型。

表2-3总结了不同的DDR3 DIMM模块。

1某些DDR2模块有两个名字,具体取决于制造商。

时间: 2024-09-14 01:06:48

《思科UCS服务器统一计算》一2.2 内存子系统的相关文章

《思科UCS服务器统一计算》一1.1 数据中心挑战

1.1 数据中心挑战 思科UCS服务器统一计算 数据中心是大公司IT基础架构的中心.典型的财富500强公司在世界各地运行数千个应用程序,存储PB级数据,并且有多个数据中心和一个适当的灾难恢复计划.但是,这种大规模的基础架构通常成本高昂! 数据中心需要昂贵的不动产,它们消耗大量电力,并且通常运营费用也很庞大. 为了更好地了解数据中心可以有多大规模,参考书目[35]列举了一些示例: Google Dalles(OR)数据中心占地68680平方英尺(6380m2): Microsoft Quincy,

《思科UCS服务器统一计算》一2.4 Intel微架构

2.4 Intel微架构 思科UCS服务器统一计算 思科UCS使用Nehalem和Westmere微架构(更通用点说,是32nm和45nm的Hi-k Intel Core微架构)的Intel处理器. Nehalem微架构于2009年初引入到了服务器中,也是Intel[32].[32].[34]开发的第一个使用45nm硅技术的架构.Nehalem处理器可广泛应用于高端桌面应用程序.超大规模服务器平台等.代号名来源于位于太平洋西北岸的美国俄勒冈州的Nehalem河. 根据Intel公司的说法,处理器

《思科UCS服务器统一计算》一2.1 处理器的演变

2.1 处理器的演变 思科UCS服务器统一计算 现代处理器或中央处理器(Central Processing Unit,CPU)都采用了最新的硅技术,一个晶片(包含一个处理器的半导体材料块)上有数百万个晶体管和数兆内存. 多个晶片焊接到一起就形成了一个硅片(硅晶圆),每个晶片都是独立切块.测试和用陶瓷封装的.这个过程包括安装晶片.将晶片衬垫连接到陶瓷封装的插脚上,然后密封晶片.至此,封装好的处理器就可以上市并在服务器上安装它们了.图2-1显示了封装好的Intel Xeon 5500处理器. 2.

《思科UCS服务器统一计算》一第2章 服务器架构

第2章 服务器架构 思科UCS服务器统一计算 从性能角度来看,处理器.内存和I/O是服务器中最重要的三个子系统.在某个给定的时间点,其中一个常常会成为瓶颈.我们经常会听说应用程序受CPU限制.受内存限制或受I/O限制. 在本章中,我们将详细介绍这三个子系统,具体参照根据IA-32(Intel架构,32位)构建的服务器,IA-32通常称为x86架构.具体地讲,我们将介绍与IA-32架构兼容的最新一代Intel处理器,也就是Intel微架构(以前的代号为Nehalem)1. Nehalem微架构(参

《思科UCS服务器统一计算》一1.2 数据中心的演变

1.2 数据中心的演变 思科UCS服务器统一计算本节介绍数据中心服务器架构的演变. 1.2.1 独立服务器 也称为离散服务器,它们是具有专有外观尺寸的独立服务器,可能包含从桌面PC到大型主机的任何计算机.它们都有如图1-3所示的基本组件,但处理器.内存.I/O容量.扩展槽和集成存储的数量可能不同. 最大型的独立服务器可以运行多个不同应用程序,且支持大量用户.通常,它们使用某种形式的虚拟化软件来同时运行多个操作系统.但是,无论一台服务器的性能多强大,在物理限制和用于运行特定应用程序的操作系统方面都

《思科UCS服务器统一计算》一2.3 I/O子系统

2.3 I/O子系统 思科UCS服务器统一计算I/O子系统负责在服务器内存和外部世界之间传输数据.传统上,这种传输是通过服务器主板上兼容PCI(外围组件互联,PCI)标准的I/O总线实现的.开发PCI的目的是让计算机系统的外围设备可实现互联.PCI的历史非常悠久[1],现在的最新版本是PCI-Express. 外围部件互联专业组(Peripheral Component Interconnect Special Interest Group,PCI-SIG)负责开发和增强PCI标准. PCI E

《思科UCS服务器统一计算》一第2章 服务器架构2.1 处理器的演变

第2章 服务器架构 思科UCS服务器统一计算从性能角度来看,处理器.内存和I/O是服务器中最重要的三个子系统.在某个给定的时间点,其中一个常常会成为瓶颈.我们经常会听说应用程序受CPU限制.受内存限制或受I/O限制. 在本章中,我们将详细介绍这三个子系统,具体参照根据IA-32(Intel架构,32位)构建的服务器,IA-32通常称为x86架构.具体地讲,我们将介绍与IA-32架构兼容的最新一代Intel处理器,也就是Intel微架构(以前的代号为Nehalem)1. Nehalem微架构(参见

《思科UCS服务器统一计算》一导读

前言 思科UCS服务器统一计算本书是作者的工作成果,作者最初在Nuova 公司工作,随后在思科公司中从事"加利福尼亚"项目,该项目的正式名称为思科统一计算系统(Unified Computing Systems,UCS). UCS是一种创新技术平台,将多项传统数据中心技术技能集合并到了一个系统中.因此,具有不同背景(甚至来自不同国家)的作者,决定组合他们的知识来共同出版本书. 本书从教育角度介绍UCS:我们试图提供有关下列内容的最新信息:所有服务器组件和新数据中心技术,以及如何使用这些

《思科UCS服务器统一计算》一1.3 统一计算系统(UCS)

1.3 统一计算系统(UCS) 思科UCS服务器统一计算思科统一计算系统(Unified Computing System,UCS),也称为"加利福尼亚"项目,它试图消除或者至少减少当前服务器部署中出现的限制. 思科公司对统一计算的定义如下: "统一计算采用开放的业界标准技术,以网络作为平台,将网络虚拟化.存储虚拟化和服务器虚拟化统一起来." UCS是Cisco Data Center(思科数据中心)3.0架构的组件,它是一个可扩展计算平台,基于任何数据中心中天生的