点击蓝字关注我们

通常大家提起的内存严格上来说应该称为内存条(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/

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

高端微信群介绍

创业投资群

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

闪存群

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

云计算群

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

AI芯片群

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

5G群

物联网、5G芯片讨论

第三代半导体群

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

储芯片群

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

汽车电子群

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

光电器件群

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

渠道群

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

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

加入上述群聊

长按并关注

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

万物互联信息革命新时代

微信号:SSDFans

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

  1. 内存spd规范_C语言内存泄露很严重,如何应对?

    原文: https://blog.csdn.net/devcloud/article/details/108335912 1.前言 最近部门不同产品接连出现内存泄漏导致的网上问题,具体表现为单板在现网 ...

  2. 内存spd规范_再见,DDR4!Hello,DDR5内存!

    点击蓝字关注我们 最近,网络上关于DDR5的介绍越来越多了.本文根据网络上搜集到一些信息,汇总并翻译成了中文,其中有不少是本人自己的理解,不对之处,还望来信指正. 速度和频率(Speed and Cl ...

  3. 【C/C++】内存对齐(超详细,看这一篇就够了)

    目录 一.为什么要内存对齐 二.基本变量类型所占大小 三.影响内存对齐的情况 四.先说结论(重要) 五.举亿点例子(以下内容均实际运行过,质量保证) 例1:研究结构体最后一个成员内存对齐问题1 例2: ...

  4. c fscanf 按行读取文件_语言 文件 看这一篇就够了

    码字不易,对你有帮助 点赞/转发/关注 支持一下作者 微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新 想看更好排版,可以看原文 网页链接​mp.weixin.qq.com 文件 格式化的输 ...

  5. python 股票自动交易助手_学习 Python 看这一篇就够了!

    2019.08.05 「Python 技术」公众号发出了第一篇文章,时至今日,已经快一年了.期间我们累积发文 260+ 篇,52 周除去周末我们基本做到了日更,这一路走来磕磕碰碰有太多的不容易,会有为 ...

  6. api网关选型_如何轻松打造百亿流量API网关?看这一篇就够了(下)

    如何轻松打造百亿流量API网关?看这一篇就够了(上) 上篇整体描述了网关的背景,涉及职能.分类.定位环节,本篇进入本文的重点,将会具体谈下百亿级流量API网关的演进过程. 准备好瓜子花生小板凳开始积累 ...

  7. minio存储类型 归档管理页面_软件定义存储,看这一篇就够了

    minio存储类型 归档管理页面_软件定义存储,看这一篇就够了_婷婷与li的博客-CSDN博客 请看链接 文章来源于TaoCloud ,作者刘爱贵 1.SDS科普 SDS(Software Defin ...

  8. python装饰器功能是冒泡排序怎么做_传说中Python最难理解的点|看这完篇就够了(装饰器)...

    https://mp.weixin.qq.com/s/B6pEZLrayqzJfMtLqiAfpQ 1.什么是装饰器 网上有人是这么评价装饰器的,我觉得写的很有趣,比喻的很形象 每个人都有的内裤主要是 ...

  9. docker 删除所有镜像_关于 Docker 镜像的操作,看完这篇就够啦 !(下)| 文末福利...

    紧接着上篇<关于 Docker 镜像的操作,看完这篇就够啦 !(上)>,奉上下篇 !!! 镜像作为 Docker 三大核心概念中最重要的一个关键词,它有很多操作,是您想学习容器技术不得不掌 ...

最新文章

  1. flask 使用cache时 报错 No module named 'flask.ext'
  2. 精通spring——深入java ee开发核心技术 pdf_2019精通Spring Boot 42讲 高清pdf完整版
  3. Apache Flink 零基础入门(二十)Flink部署与作业的提交
  4. [转]给控件做数字签名
  5. React个人入门总结《五》
  6. 第三周练习 part3 --- 文件的操作
  7. fatal: “Could not read remote” -- Mac下使用Git Push显示权限错误
  8. 数据结构笔记(四)-- 静态链表实现
  9. Atitit 存储方法大总结 目录 1. 存储方式分类 2 1.1. 按照数据分类为 结构化 半结构化 非结构化 2 1.2. 按照内外部可分类 内部存储和外部存储持久化 2 1.3. 按照本地远
  10. oppo手机鸿蒙系统安装教程,oppo手机怎么刷机的步骤如下
  11. 计算机日志查询域用户登录记录,Windows域控制器身份验证登录日志记录和取证...
  12. docx 2003 的补丁
  13. python蒙特卡洛模拟return_蒙特卡罗方法入门
  14. 如何获取服务器的 CA 证书?
  15. Spring Cloud Alibaba#01.开篇立题
  16. K40自动重启/自动关机/时间系统混乱
  17. 【阅读笔记】Deep Mutual Learning
  18. 基于ndis protocol driver 后门 分析
  19. 通往古埃及文明的钥匙 ———— 罗塞塔石碑
  20. STM32擦写失败case

热门文章

  1. Java之下载word文档
  2. Serenade编码:免提语音激活编程
  3. 优势互补,共创大数据产业美好未来
  4. 测试接口是否支持跨域
  5. Linux下CentOS7安装gitlib
  6. 教你直播源代码来开发直播点赞功能
  7. 【5】疯壳开源蓝牙智能健康手表(心率血压血氧心电监测可定制)_屏幕
  8. python基础教学(超详细)
  9. 显示器分辨率一直跳_多屏显示系统 显示器屏幕一直跳的原因及解决方法
  10. QAQ……#define INF 0x3f3f3f3f 原来是定义成无穷大