内存spd规范_关于内存,看这一篇就够了!

0b9dd8250f357e60d0e999b623211b20.gif点击蓝字关注我们

通常大家提起的内存严格上来说应该称为内存条(Memory Module)。内存条可以在普通的电脑市场或者网上平台上购买到。内存条通常采用DRAM(动态随机存取存储器)作为内存颗粒,若干内存颗粒配合一块长方形的印刷电路板组成一根内存条。除了内存颗粒外,内存条上还可能有其它芯片,例如SPD存储芯片,时钟缓存寄存器芯片(Registering Clock Driver),或数据缓存芯片(Data Buffer)等。

内存条正面(RDIMM):

baef0e4a04f1f9055878a9422e63feff.png

内存条背面 

208d4d981a0a55bdf2350455ddb73075.png

图中黑色长方形是芯片的外部封装,里面封装了一片或者若干片芯片(通常是一片芯片)。

在整个计算机系统中,内存条无法单独工作,需要有对应的内存控制单元(Memory Controller)以及相应的内存条供电模块。最早的内存控制器在北桥芯片中(North Bridge),但随着北桥芯片逐渐退出市场,内存控制器已经移到了处理器内部。

需要注意的是,并非所有的计算机系统都使用内存条,例如Ultrabook,内存颗粒被直接安装在主板上,这样一来,主板在设计的时候就要兼顾部分内存条本身的设计内容,同时需要提供类似的SPD芯片,或将其内容内嵌在BIOS中。某些计算机系统采用的处理器本身就内置了高速内存芯片,在内置内存容量满足需求的情况下,可以省略外部内存槽的设计。

接下来的内容可能比较基础,如果已经很熟悉的读者不妨帮忙找找是否有错误的地方,并欢迎以各种形式反馈给我们。

什么是RAM

什么是SRAM

什么是DRAM

这三个问题请参考[DDR]SRAMDRAM

纠结是否skip?可以尝试以下问题:

两根单Rank的内存是否和一根双Rank的内存一样?

采用x16内存颗粒的内存条是否有ECC功能?

RDIMM的RCD奇偶校验主要包含哪些种类的信号?

什么是SDRAM

SDRAMSynchronous Dynamic Random Access Memory的缩写。

Synchronous(同步):是指内存颗粒的读写访问是基于某个同步时钟。

Dynamic(动态):动态的含义是指两点,一是存储单元存储内容需要定期刷新(refresh),二是存储单元的内容在掉电和不刷新的状态下会丢失。

Random Access(随机存取):读写操作延迟不随访问存储介质的物理位置的不同而不同。

需要注意的是通常人们喜欢使用DRAM代替SDRAM。原因是目前很少有Asynchronous DRAM

什么是DDR

DDRDouble Data Rate的缩写,全称应该是DDR SDRAMDDR内存是SDRAM的一种,在DDR出现之前,我们还有Single Data RateSDRAMDouble Data Rate的含义是,在时钟信号的上下边沿均可以传输数据。Single Data Rate的含义是,只能在时钟信号的上升沿传输数据。

什么是DIMM

DIMMDual In-Line Memory Module的缩写。意思是内存条印刷电路板正反面均有金手指与主板上的内存条槽接触,这种结构被称为DIMM。于是内存条也有人叫DIMM条,主板上的内存槽也有人称为DIMM槽。

既然有DIMM,那估计有SIMM(Single In-Line Memory Module),有兴趣的读者可以到网上搜索一下。

什么是SODIMM?

在笔记本中使用普通内存条会使得笔记本尺寸过大,而直接使用内存颗粒则不便于扩展与维修,两者之间的空隙被SODIMM填补,SODIMMSmall Outline DIMM的缩写,意思是小尺寸的DIMM,一般用在笔记本或一体机中,如下图所示:

3bd32d05828ae7a6ab5aa464e9246f6f.png

什么是DDRDDR2DDR3DDR4

DDR实际上是第一代的DDR,也可以称为DDR1

DDR2DDR3DDR4则指DDR的第二三四代。它们在电压,速率,时钟拓扑结构,控制线和地址线拓扑结构,以及支持的命令上均有差异,这里将不会展开来说明,除非读者有需求。也可以参考JEDEC历代官方规范。

什么是Memory Channel

若干个DIMM可以连接到一组总线上,这组总线被称为内存通道(Memory Channel)。如图所示:

14fdafc53ecf006b1f9b4d11e743d24d.png

数据和校验ECC是双向信号,并且连接内存通道内所有的DIMMs。例如,数据信号DQ0,将连接DIMM0DQ0DIMM1DQ0...

时钟,控制信号和地址信号是单方向的,由内存控制器发出,内存颗粒接收。其中地址信号将连接所有的DIMMs

时钟和控制信号将不会连接所有的DIMMs,可能只连接某根DIMM或某几根DIMMs。例如时钟信号,CKE信号,ODT信号,CS_N片选信号等。具体的连接方式请查阅系统设计的参考线路。

什么是内存颗粒?

内存颗粒(DRAM Device)常与内存混淆,而内存经常与内存条混淆。严格意义上来说,内存颗粒是指DRAM DeviceDRAM 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

6bb59fcea24dff445ea3a250702e5563.png

总结一下,一个Rank就是指一组内存颗粒的CS信号被连在一起,并由内存控制器单独的一根CS_N信号控制,共同组成位宽为64bit(不带ECC)或72bit(带ECC)的存储阵列,共同完成一条内存通道下发的指令。

什么是内存条的数据位宽?

x86架构中内存条的数据位宽是64bit,也就是说一个时钟周期,如果只考虑上升沿传输数据的话,一个时钟周期可以传送64bit的数据。如果Double Data Rate,一个时钟周期可以传送两笔64bit的数据。

如果内存条支持ECC校验功能,则需要额外8bit的宽度。所以,支持ECC功能的内存条除了64bit的数据外,还有8bit的校验数据。

目前主流的内存颗粒(DRAM Devices)的数据位宽有4bit8bit16bit,分别对应x4x8x16类型内存颗粒。如果我们采用x4的内存颗粒构造带ECC功能的内存条,则我们需要(64+8)/4 = 18x4内存颗粒。而如果我们采用x8的内存颗粒,则只需要9颗。

这样的设计只是单Rank的设计,如果是多Rank的设计,则需要更多的内存颗粒。例如,2 Rank的带ECC的内存条,如果采用x4的内存颗粒,那么总共需要36x4DRAM Devices

需要注意的是如果采用x16的内存颗粒,则无法实现ECC功能,因为4x16的内存颗粒正好组成一个Rank并且不带ECC功能,而多增加一颗,则会多出8bit的位宽无法匹配。因此,大部分的x16的内存被用在了SODIMM中,配与笔记本使用。当然,如果一定要增加ECC功能,可以考虑增加一颗x8芯片。

什么是RDIMM

RDIMM的第一个字母R实际就是前面提到过的一颗额外的芯片,称为时钟缓存寄存器芯片(Registering Clock Driver)。没有该芯片的内存条一般被称为UDIMM(Unbuffered-DIMM)。这颗寄存器芯片主要用来缓存(buffer)时钟/控制/命令/地址等信号。缓存的主要目的是解决信号质量以及负载过重的问题。

RCD(时钟缓存寄存器芯片):

7f2d5b3bbbf0cb18b9208ed1cea6fc60.png

除此之外,通常的RDIMM会支持ECC功能和命令/地址奇偶校验功能(CA Parity)。

什么是LRDIMM

为了是一根物理DIMM支持更多的Rank,我们将数据信号也通过数据缓存(Data Buffer)芯片,而不直接连接DRAM Devices,从而改善数据信号的质量。如图所示:

5c51f6744bbdc08a43cfb9e637382450.png

参考资料

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/

内存厂商:https://www.micron.com/

高端微信群介绍

创业投资群

AI、IOT、芯片创始人、投资人、分析师、券商

闪存群

覆盖5000多位全球华人闪存、存储芯片精英

云计算群

全闪存、软件定义存储SDS、超融合等公有云和私有云讨论

AI芯片群

讨论AI芯片和GPU、FPGA、CPU异构计算

5G群

物联网、5G芯片讨论

第三代半导体群

氮化镓、碳化硅等化合物半导体讨论

储芯片群

DRAM、NAND、3D XPoint等各类存储介质和主控讨论

汽车电子群

MCU、电源、传感器等汽车电子讨论

光电器件群

光通信、激光器、ToF、AR、VCSEL等光电器件讨论

渠道群

存储和芯片产品报价、行情、渠道、供应链

3ca7f5aee3b702b85d41d2ebf1b9f0c6.png

< 长按识别二维码添加好友 >

加入上述群聊

050a2bf89c9dfcdd87bcc55164be069a.png 长按并关注

带你走进万物存储、万物智能、

万物互联信息革命新时代

956fa9e75761aed8295596a515097ea2.png

微信号:SSDFans
  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 内存SPD(Serial Presence Detect)文件是一种包含有关特定内存模块信息的文件。它是一个存储在内存模块上的EEPROM芯片中的数据。下面是内存SPD文件内容的规范: 1. 包含制造商信息:SPD文件应该包含制造商的名称、地址和联系信息。这使得用户可以联系制造商获取更多有关内存模块的信息。 2. 内存模块规格:SPD文件应该包含有关内存模块的规格信息,例如容量、速度等。这些规格信息有助于用户确定内存模块是否与其系统兼容。 3. 时序参数:SPD文件还应包含有关内存模块时序的信息。这些信息描述了内存读写数据的时钟速度、延迟等参数。根据这些参数,系统可以正确配置内存控制器以实现最佳性能。 4. 温度传感器数据:现代内存模块通常带有温度传感器,以监控内存模块的温度。SPD文件应该包含有关温度传感器数据的信息,例如可操作的温度范围和当前温度。 5. 特殊功能支持:某些内存模块具有特殊功能,例如ECC(错误检测与纠正)或XMP(延伸内存配置文件)。SPD文件应包含有关这些功能的信息,以便系统可以正确配置和使用它们。 6. 校验和:为了确保SPD文件的完整性,文件中应包含一个校验和。校验和是通过对文件内容进行计算生成的值,用于验证文件的完整性和准确性。 总结而言,内存SPD文件内容规范应包含制造商信息、内存模块规格、时序参数、温度传感器数据、特殊功能支持以及校验和。这些信息有助于系统正确配置和使用内存模块,以提高性能和稳定性。 ### 回答2: 内存 SPD 文件是一种记录着内存模块制造商、规格和其他相关信息的特定文档。SPD 是 Serial Presence Detect 的缩写,意为串行存在探测。SPD 文件的内容应遵循一定规范,以确保可靠性和互操作性。 内存 SPD 文件的内容规范通常包括以下几个方面: 1. 制造商信息:SPD 文件应包含内存模块的制造商名称和其他相关信息,例如联系方式和制造日期。 2. 模块规格:SPD 文件应提供内存模块的物理规格,包括尺寸、插槽类型和电源要求等信息。这有助于确保内存模块与主板和其他硬件设备的兼容性。 3. SPD 版本:SPD 文件应指明采用的 SPD 规范版本,以确保读取和解析 SPD 数据的兼容性。 4. 内存参数:SPD 文件应包含详细的内存参数信息,例如模块类型、容量、时序参数和频率等。这些参数是重要的,因为它们决定了内存模块的性能和兼容性。 5. 扩展信息:一些 SPD 文件可能包含扩展信息,如内存模块的序列号、厂商特定标识和选项设置等。这些信息通常是可选的,但对于一些特殊需求的应用可能会有一定的重要性。 通过遵循内存 SPD 文件的内容规范,系统和软件开发人员能够准确获取有关内存模块的信息,从而确保系统的稳定性和性能。同时,SPD 文件还有助于内存模块制造商在市场上推出兼容的产品,并提供一致的标准供参考。 ### 回答3: 内存SPD文件内容规范是指内存模块中的SPD(Serial Presence Detect)芯片中存储的信息的格式和规范SPD文件内容规范包括以下几个方面: 1. 芯片总体信息:SPD文件中会包含内存模块的基本信息,如制造商、型号、版本号等。 2. 整体参数:SPD文件中会列出内存模块的总容量、时序信息以及电气特性等。这些信息包括内存模块的列数、行数、刷新周期等。 3. 芯片特性:SPD文件还会包括内存模块的特性信息,如内存类型(如DDR4、DDR3等)、频率、工作电压和时序设置等。这些信息对于计算机系统中的内存识别和配置非常重要。 4. 校验和:SPD文件中还会有一个校验和字段,用于校验数据的完整性和正确性。这个校验和字段通过对SPD中的各个数据进行计算得出,如果校验和不匹配,可能意味着数据被篡改或损坏。 SPD文件内容规范的制定是为了确保内存模块的信息能够被计算机系统正确读取和识别。通过遵循SPD文件内容规范,计算机系统可以在启动时读取内存模块中的信息,并根据该信息来正确配置内存的工作参数,以保证系统的正常运行。 总之,内存SPD文件内容规范定义了内存模块中SPD芯片中存储的信息的格式和规范,以确保计算机系统能够正确读取和配置内存模块。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值