找回密码
 立即注册
搜索
搜索附件  
附件中心 知识学习 基础知识 c2055bd907a9599e6ad6a1266686d4ee.jpeg

c2055bd907a9599e6ad6a1266686d4ee.jpeg

附件信息右侧广告
附件下载与主题内容间广告

 

内存介绍篇:
1.内存概念
在服务器系统中,内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。



2.DRAM内存分类

3.DRAM在系统中的位置
早期内存通过存储器总线和北桥(MCH)相连,北桥通过前段总线与CPU通信。
从Intel Nehalem起,北桥被集成到CPU内部后,内存直接通过存储器总线和CPU相连。 AMD采用 Socket FM1及 Intel 采用 LGA 1156 插槽之后的处理器都集成了北桥,独立的北桥已经消失,主板上仅余下南桥。

4.内存技术的演进



5.DDR内存条的结构组成
内存由内存芯片、电路板、金手指等部分组成
                                                                DDR1= 大片+圆口;
                                                                DDR2= 小片+圆口;
                                                                DDR3= 小片+方口;
                                                                DDR4= 小片+方口;
  • DDR4 金手指为中间稍突出、边缘收矮(这么设计主要为了比较好插入,并减少印刷电路板在安装DDR4记忆体模组时,所承受的压力)
  • DDR4内存条外观变化意味着,DDR4内存不再兼容DDR3,老平台电脑无法升级DDR4内存,除非将CPU和主板都更换为新平台。

6.DDR内存技术对比——DDR1、DDR2和DDR3
关于DDR技术
  • DDR严格来说应该叫DDR SDRAM,习惯称为DDR,部分初学者也常看到DDR SDRAM,就认为是SDRAM(误解)。
  • DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系。
  • SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;
  • 而DDR内存则是一个时钟周期内传输两次次数据,它能够在时钟的上升期和下 降期各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。

7.DDR4内存参数
DDR4内存保护技术
ECC
Full Mirror
Address Range Mirror
SDDC/SDDC+1
Rank Sparing Mode
Static Virtual Lockstep
Failed DIMM Isolation
Memory Thermal Throttling
Memory Address Parity Protection
Memory Demand/Patrol Scrubbing
Device Tagging
Data Scrambling
ADDDC/ADDDC+1

8.DDR5内存参数介绍—Rambus
5年前,Rambus已经公布了DDR5内存和HBM3存储规划,显示:
  • HBM3基于7nm工艺,带宽高达4GT/s,按照单芯片1024bit位宽,速度512GB/s到1TB/s,也就是比HBM2直接翻了两番。
  • 关于DDR5内存,目标I/O带宽6.4Gbps,总带宽51.2GB/s,频率4800~6400MHz,预取位数16bit,均比DDR4翻番。
  • JEDEC还没有正式发布DDR5规范,但是DRAM制造商和SoC设计人员正在全力准备DDR5的发布。
  • 在SoC方面,AMD的EPYC Genoa和英特尔的Xeon Sapphire Rapids在2021~ 2022年发布时将支持DDR5 DRAM。

8-1.DDR5内存参数介绍—Samsung
Samsung计划量产DDR5 存储颗粒,单颗高达即8GB;DDR5 预计明年初,将普遍用在终端用户使市场。
  • 在时钟频率方面,DDR5最高可至DDR5-8400。双通道DDR5-8400 的频宽高达134.4GB/s,等于双通道DDR4-3200 (51.2GB/s) 的2.625 倍,或等于双通道DDR4-4000 (64GB/s) 的2.1 倍。
  • DDR5 带来了更高的数据速率、更低的能耗和更高的密度。DDR5 发布后的最大数据速率为 4800MT/s(百万次/秒),而 DDR4 为 3200MT/s。系统级仿真中的并行比较显示,DDR5 的有效带宽约为 DDR4 的 1.87 倍。
  • 在电力消耗部分,DDR5的工作电压为1.1V,低于DDR4的1.2V,能降低单位频宽的功耗达20%以上。

9.内存演进的指标:容量、功耗、性能
  • 容量越来越大(4GB -> 8GB -> 16GB ->32GB -> 64GB->..512GB)
  • 电压越来越低(1.5v -> 1.35v -> 1.2v…),具体对应 DDR1(2.5V) ->  DDR2(1.8V) -> DDR3(1.5v) ->DDR3L(1.35v) -> DDR4(1.2v)->DDR5(1.1V)
  • 频率越来越高(1333  -> 1600 -> 1866 -> 2133 -> 2400->..3200)

10.内存保护技术:ECC和ChipKill
在普通的内存上,常常使用一种技术,即Parity,它增加一个检查位给每个资料的字元(或字节),并且能够侦测到一个字符中所有奇(偶)同位的错误,但Parity有一个缺点,当计算机查到某个Byte有错误时,并不能确定错误在哪一个位,也就无法修正错误。
ECC:基于上述情况,产生了一种新的内存纠错技术,那就是ECC,它是一种广泛应用于各种领域的计算机指令中,是一种指令纠错技术。ECC的英文全称是“ Error Checking and Correcting”,对应的中文名称就叫做“错误检查和纠正”,从这个名称我们就可以看出它的主要功能就是“发现并纠正错误”,它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误。
Chipkill技术是IBM公司为了解决目前服务器内存中ECC技术的不足而开发的,是一种新的ECC内存保护标准。
ECC内存只能同时检测和纠正单一比特错误,但如果同时检测出两个以上比特的数据有错误,则一般无能为力。目前ECC技术之所以在服务器内存中广泛采用:
  • 一则是因为在这以前其它新的内存技术还不成熟。
  • 再则在目前的服务器中系统速度还是很高,在这种频率上一般来说同时出现多比特错误的现象很少发生,正因为这样才使得ECC技术得到了充分地认可和应用,使得ECC内存技术成为几乎所有服务器上的内存标准。

11.内存条类型介绍

按功能分
*主流CPU平台选用4GB、8GB、16GB、32GB内存请引导客户使用RDIMM内存;
按体积分
内存分为DIMM、Mini-DIMM、SODIMM(Small Outline DIMM)、MicroDIMM、VLP(Very Low Profile)、ULP(Ultra Low Profile)

12.NVDIMM介绍
和上面的普通内存相比,还有一种非易失性内存NVDIMM。NVDIMM 是由 JEDEC 固态技术协会所定义,相关內容如下:
  • 符合 DDR4 标准.
  • 能够相容于标准的 DIMM 插槽.
  • Module 上面同时会有DRAM以及NAND Storage,系统运行时, NVDIMM 就像 DRAM 一样进行运算.当系统供电中断时(有可能是突然断电或正常关机), NVDIMM会由超级电容供电, 把DRAM的数据写回NAND Storage中. 当电力恢复, 再把资料搬回 DRAM.


NVDIMM基本元件

NVDIMM的三种类别
由于当前NVDIMM在硬件上没有太大的优势,且需要软件层面增加较多的适配,所以华为服务器目前暂不支持NVDIMM。预计会在V6 CPU(Cascade CPU)引入另外一种非易失内存:AEP内存。

13.主流内存条厂家介绍
服务器常用内存生产厂家:



内存颗粒(DRAM)三大原厂:Samsung、SK Hynix和Micron。
模组厂家:Ramaxel 和Kingston购买三大原厂颗粒制作内存条(DIMM)

14.内存条规格识别方法
关于RANK说明:
  • CPU与内存的接口位宽是64bit,单个内存颗粒的位宽仅有4bit、8bit。
  • 因此,必须把多个颗粒并联起来,组成一个位宽为64bit的数据集合,才可以和CPU互连。
  • 64bit集合称为一个RANK。
*适用于Samsung、SK Hynix、Micron和Ramaxel内存条。
*内存颗粒越多性能越优(理论上x4 比 x8性能优)。
*内存Rank 数越多性能越优。

15.内存条配置注意事项
支持内存数量的最大值,取决于CPU类型、内存类型、rank数量以及工作电压。
同一台服务器必须使用相同型号的DDR4内存,且全部内存的运行速度均相同,速度值为以下各项的最低值:
● 特定CPU支持的内存速度。
● 特定内存配置最大工作速度。
● 不同类型(RDIMM、LRDIMM)和不同规格(容量、位宽、rank、高度等)的DDR4内存不支持混合使用。

16.服务器内存条配置原则
1、 Purley平台支持的内存类型有RDIMM和LRDIMM;
2、 Purley平台支持的DIMM频率有:2133/2400/2666/2933(CasCade);
3、推荐采用平衡插法配置内存,所有内存通道配置一样的内存(包括速率、容量、Rank等),不支持不同类型DIMM的混插;
4、多颗CPU配置时,首先保持各个CPU的内存配置一样;
5、当只有一个DIMM时,必须插在给定通道的slot0槽位(离CPU最远的位置);
6、当单rank、双rank、四rank DIMM插成2DPC,总是先从最远的槽位开始插rank高的DIMM
注:2 DPC:2 DIMM per Channel (每个通道插2根DIMM条)
附:内存带宽计算:
  • 满配最大内存带宽 = 内存标称频率*内存总线位数*通道数*CPU个数
  • 实际使用的内存带宽 = 内存标称频率*内存总线位数*实际使用的通道数
举例:
如2路CPU,支持64根内存,通道数为6的服务器,配2666的内存条时内存的带宽为:
2666 * 64 * 6 * 2 =2047488 Mbit/s=250GB/s
通常大家提起的内存严格上来说应该称为内存条(Memory Module)。内存条可以在普通的电脑市场或者网上平台上购买到。内存条通常采用DRAM(动态随机存取存储器)作为内存颗粒,若干内存颗粒配合一块长方形的印刷电路板组成一根内存条。除了内存颗粒外,内存条上还可能有其它芯片,例如SPD存储芯片,时钟缓存寄存器芯片(Registering Clock Driver),或数据缓存芯片(Data Buffer)等。
   
内存条正面(RDIMM):
   
   内存条背面
   
   
图中黑色长方形是芯片的外部封装,里面封装了一片或者若干片芯片(通常是一片芯片)。
   在整个计算机系统中,内存条无法单独工作,需要有对应的内存控制单元(Memory Controller)以及相应的内存条供电模块。最早的内存控制器在北桥芯片中(North Bridge),但随着北桥芯片逐渐退出市场,内存控制器已经移到了处理器内部。
   需要注意的是,并非所有的计算机系统都使用内存条,例如Ultrabook,内存颗粒被直接安装在主板上,这样一来,主板在设计的时候就要兼顾部分内存条本身的设计内容,同时需要提供类似的SPD芯片,或将其内容内嵌在BIOS中。某些计算机系统采用的处理器本身就内置了高速内存芯片,在内置内存容量满足需求的情况下,可以省略外部内存槽的设计。
   
接下来的内容可能比较基础,如果已经很熟悉的读者不妨帮忙找找是否有错误的地方,并欢迎以各种形式反馈给我们。
   什么是RAM?
   什么是SRAM?
   什么是DRAM?
   这三个问题请参考[DDR]SRAM和DRAM
   纠结是否skip?可以尝试以下问题:
   两根单Rank的内存是否和一根双Rank的内存一样?
   采用x16内存颗粒的内存条是否有ECC功能?
   RDIMM的RCD奇偶校验主要包含哪些种类的信号?
   什么是SDRAM?
   SDRAM是Synchronous Dynamic Random Access Memory的缩写。
   Synchronous(同步):是指内存颗粒的读写访问是基于某个同步时钟。
   Dynamic(动态):动态的含义是指两点,一是存储单元存储内容需要定期刷新(refresh),二是存储单元的内容在掉电和不刷新的状态下会丢失。
   Random Access(随机存取):读写操作延迟不随访问存储介质的物理位置的不同而不同。
   需要注意的是通常人们喜欢使用DRAM代替SDRAM。原因是目前很少有Asynchronous的 DRAM。
   什么是DDR?
   DDR是Double Data Rate的缩写,全称应该是DDR SDRAM,DDR内存是SDRAM的一种,在DDR出现之前,我们还有Single Data Rate的SDRAM。Double Data Rate的含义是,在时钟信号的上下边沿均可以传输数据。Single Data Rate的含义是,只能在时钟信号的上升沿传输数据。
   什么是DIMM?
   DIMM是Dual In-Line Memory Module的缩写。意思是内存条印刷电路板正反面均有金手指与主板上的内存条槽接触,这种结构被称为DIMM。于是内存条也有人叫DIMM条,主板上的内存槽也有人称为DIMM槽。
   既然有DIMM,那估计有SIMM(Single In-Line Memory Module),有兴趣的读者可以到网上搜索一下。
   什么是SODIMM?
   在笔记本中使用普通内存条会使得笔记本尺寸过大,而直接使用内存颗粒则不便于扩展与维修,两者之间的空隙被SODIMM填补,SODIMM是Small Outline DIMM的缩写,意思是小尺寸的DIMM,一般用在笔记本或一体机中,如下图所示:
   
   什么是DDR,DDR2,DDR3,DDR4?
   DDR实际上是第一代的DDR,也可以称为DDR1。
   DDR2,DDR3和DDR4则指DDR的第二三四代。它们在电压,速率,时钟拓扑结构,控制线和地址线拓扑结构,以及支持的命令上均有差异,这里将不会展开来说明,除非读者有需求。也可以参考JEDEC历代官方规范。
   什么是Memory Channel?
   若干个DIMM可以连接到一组总线上,这组总线被称为内存通道(Memory Channel)。如图所示:
   
   数据和校验ECC是双向信号,并且连接内存通道内所有的DIMMs。例如,数据信号DQ0,将连接DIMM0的DQ0,DIMM1的DQ0...
   时钟,控制信号和地址信号是单方向的,由内存控制器发出,内存颗粒接收。其中地址信号将连接所有的DIMMs。
   时钟和控制信号将不会连接所有的DIMMs,可能只连接某根DIMM或某几根DIMMs。例如时钟信号,CKE信号,ODT信号,CS_N片选信号等。具体的连接方式请查阅系统设计的参考线路。
   
什么是内存颗粒?
   内存颗粒(DRAM Device)常与内存混淆,而内存经常与内存条混淆。严格意义上来说,内存颗粒是指DRAM Device,DRAM Chips,是指符合JEDEC标准的一种芯片。广义上,被封装好了的内存芯片也可以称为内存颗粒。由于3DS的出现,一个封装体内可能含有多个DRAM芯片(Die)。不过通常情况下,一个封装体内只有一个Die。
   需要特别注意的是,JEDEC DDR4的主规范针对的是DRAM Device,而不是内存条。其中介绍的信号时序图也不是指内存槽上的时序,而是内存芯片的输入输出口时序
   什么是Rank?
   前面介绍过一条内存通道可以有多个DIMM,如果因为某种原因,我们最多在主板上只能允许三根DIMM存在,例如从第四根DIMM开始,我们的空间就不够了,又或者信号因为长度超长而质量下降等等。但从性能出发,我们需要六根DIMM在一条内存通道中,怎么办?这时,就可以引入Rank的概念。Rank就好像逻辑DIMM。我们可以把原本两根物理DIMM的内存颗粒全部安装在一块内存印刷电路板上,使得一根内存条具备两倍的内存容量。我们把这种逻辑DIMM称为Rank。为了支持多RANK的内存条,我们需要在物理DIMM接口上定义多个CS_N片选信号以便可以选择相应的Rank。
   x8 Dual Rank RDIMM:
   
   总结一下,一个Rank就是指一组内存颗粒的CS信号被连在一起,并由内存控制器单独的一根CS_N信号控制,共同组成位宽为64bit(不带ECC)或72bit(带ECC)的存储阵列,共同完成一条内存通道下发的指令。
   
什么是内存条的数据位宽?
   x86架构中内存条的数据位宽是64bit,也就是说一个时钟周期,如果只考虑上升沿传输数据的话,一个时钟周期可以传送64bit的数据。如果Double Data Rate,一个时钟周期可以传送两笔64bit的数据。
   如果内存条支持ECC校验功能,则需要额外8bit的宽度。所以,支持ECC功能的内存条除了64bit的数据外,还有8bit的校验数据。
   目前主流的内存颗粒(DRAM Devices)的数据位宽有4bit,8bit和16bit,分别对应x4,x8和x16类型内存颗粒。如果我们采用x4的内存颗粒构造带ECC功能的内存条,则我们需要(64+8)/4 = 18颗x4的内存颗粒。而如果我们采用x8的内存颗粒,则只需要9颗。
   这样的设计只是单Rank的设计,如果是多Rank的设计,则需要更多的内存颗粒。例如,2 Rank的带ECC的内存条,如果采用x4的内存颗粒,那么总共需要36颗x4的DRAM Devices。
   需要注意的是如果采用x16的内存颗粒,则无法实现ECC功能,因为4颗x16的内存颗粒正好组成一个Rank并且不带ECC功能,而多增加一颗,则会多出8bit的位宽无法匹配。因此,大部分的x16的内存被用在了SODIMM中,配与笔记本使用。当然,如果一定要增加ECC功能,可以考虑增加一颗x8芯片。
   什么是RDIMM?
   RDIMM的第一个字母R实际就是前面提到过的一颗额外的芯片,称为时钟缓存寄存器芯片(Registering Clock Driver)。没有该芯片的内存条一般被称为UDIMM(Unbuffered-DIMM)。这颗寄存器芯片主要用来缓存(buffer)时钟/控制/命令/地址等信号。缓存的主要目的是解决信号质量以及负载过重的问题。
   RCD(时钟缓存寄存器芯片):
   
   除此之外,通常的RDIMM会支持ECC功能和命令/地址奇偶校验功能(CA Parity)。
   什么是LRDIMM?
   为了是一根物理DIMM支持更多的Rank,我们将数据信号也通过数据缓存(Data Buffer)芯片,而不直接连接DRAM Devices,从而改善数据信号的质量。如图所示:
   
   参考资料
   DDR4 内存颗粒主规范:JESD79-4 DDR4 SDRAM Specification
   DDR4 RCD规范:DDR4RCD02 Specification
   DDR4 DB规范:DDR4DB02 Specification
   DDR4 SPD内容存储规范:DDR4/DDR4E SPD Contents Master Specification
   SPD 操作规范:EE1004 and TSE2004 Device Specification
   JEDEC 网站:https://www.jedec.org/
c2055bd907a9599e6ad6a1266686d4ee.jpeg
同一主题附件字上面广告
         同一主题附件:
    c2055bd907a9599e6ad6a1266686d4ee.jpeg
    dbc4845781b99e19c0e5e403005d30a9.jpeg
    dc18f7e3d4ce0382d9e615ebb607918b.jpeg
    397d6fdb2a22700caaa419483a1ff3a8.jpeg
    fd7de9744a2438c23afb79544f6d98eb.png
    5977ca8c3b3c4ad85a4de721e0aea389.jpeg
    8559191e999db2cc4c5887d6437e41df.jpeg

Archiver|手机版|小黑屋|

GMT+8, 2025-5-6 04:36 Powered by Discuz! X3.5 Licensed