DDR5内存条容量计算

2023-11-12

之前对DDR的一些基础知识进行了总结。最近需要了解DDR5的知识,在之前文章基础上又有一些认识,所以重新开一篇,继续记录。如果对基础概念不清楚,可以查看《一步一步带你理解DDR基本原理》

DDR5的SPD规范中(https://pan.baidu.com/s/1JTVLnR2PpFsr_qApNZZoGw 提取码: k5p7),有关于DDR5内存条容量的计算方法,如下:
在这里插入图片描述
容量计算有2种方式:

  • 一种是针对symmetric module,即对称模块内存条;
  • 另一种是针对asymmetric module,即非对称模块内存条。

何为对称,何为非对称?我也没搞明白,谁知道,给我讲讲。DDR5资料较少,以下均为我自己的理解,若有误,望指正。
我大概想明白了,symmetric module方式的计算方法。在讲解计算公式原理前,有一些概念需要理解。

一、理解DDR5通道的变化

到了DDR5时代,预取从8n增加到了16n,并且一个通道的数据位宽从原来的64bit降为32bit。DDR5不会为每个DIMM提供一个64位数据通道,而是为每个DIMM提供两个独立的32位数据通道(考虑ECC时为40位)。同时,每个通道的burst length从8字节(BL8)翻倍到16字节(BL16),这意味着每个通道每次操作将交付64字节。与DDR4 DIMM相比,以两倍于额定内存速度(相同核心速度)运行的DDR5 DIMM将在DDR4 DIMM传输一个DDR4 DIMM的时间内提供两个64字节操作,从而使有效带宽增加了一倍。

意思就是原来一根DIMM只会使用一个通道,一个通道上一般会插多根DIMM。但是现在一根DDR5的DIMM,会使用2个通道,每个通道位宽为32bit。

我理解的DDR5,是下面这样子:
在这里插入图片描述

二、理解芯片package

芯片package,就是芯片封装,内部可能有多个die。可以理解为将多个芯片电路封装为一个芯片,外部看起来就是一块芯片。

以前的内存颗粒,假设128MB,就是一个芯片,所以一个package,就是一个内存颗粒的大小128MB。

DDR5,一个芯片上可以做多个内存颗粒,比如做2个,那么一个这样的package,就是256MB。
在这里插入图片描述
将两个 DDR 颗粒封装在一起,此时你看见的就只有单个芯片了,但其实这两个颗粒还是共享总线。意思就是内部有2个颗粒,若每个颗粒宽度为4bit的话,那么整个package所占用位宽就应该为8bit。

所以,我们可以整理出DIMM的层次结构,如下:

DIMM->CHANNEL->RANK->芯片Package->颗粒

一根DDR5内存条,有2个通道,每个通道下有多个RANK,每个RANK(32bit)由多个芯片package组成,每个package又封装了多个颗粒。 理解了这个层次,就可以继续看下面的计算公式了。

三、DDR5 symmetric module容量计算

DIMM容量计算公式:

Capacity in bytes =
Number of channels per DIMM *
Primary bus width per channel / SDRAM I/O Width *
Die per package *
SDRAM density per die / 8 *
Package ranks per channel

首先,我们来解释下公式中参数的含义:

  • Number of channels per DIMM:DIMM中有多少个通道;
  • Primary bus width per channel:每个通道的位宽;
  • SDRAM I/O Width:内存芯片package的位宽(这里指的是package,不是指package内部的内存颗粒);
  • Die per package:每个package内部有多少个颗粒;
  • SDRAM density per die:每个颗粒的大小,单位为Gb;
  • Package ranks per channel:每个通道下有多少个RANK。

然后,不着急,我们先进行一个拆解。
我们来计算一个RANK的大小

RankSize=
Primary bus width per channel / SDRAM I/O Width *
Die per package *
SDRAM density per die / 8
  • Primary bus width per channel / SDRAM I/O Width,得到一个RANK需要由多少个package组成;
  • Die per package得到一个RANK中有多少个内存颗粒;
  • 再乘SDRAM density per die得到一个RANK容量大小,单位Gb;
  • 最后除8得到一个RANK容量大小,单位GB。

最后,我们来计算整个DIMM的容量

Capacity in bytes =
Number of channels per DIMM *
RankSize *
Package ranks per channel

这就很好理解了,DIMM容量 = 通道数 * 每个通道的RANK数 * 每个RANK大小,单位GB。

附录,以上公式中相关参数,在SPD数据中的偏移,如下:

参数名 SPD偏移 SPD偏移名称
Number of Package Ranks per Channel 234 (Common): Module Organization
SDRAM Density per Die、Die per Package 4 First SDRAM Density and Package
SDRAM I/O Width 6 First SDRAM I/O Width
Primary Bus Width per Channel、Number of Channels per DIMM 235 (Common): Memory Channel Bus Width

参考链接:
《内存DIMM的Volume-Rank-Chip-Die的相互关系》
《译文: DDR4 SDRAM - Understanding the Basics(上)》
《DDR5最终规范正式发布!附:详细说明》
《内存spd规范_再见,DDR4!Hello,DDR5内存!》
《小科普|DDR5内存有什么变化?》



若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DDR5内存条容量计算 的相关文章

  • Python 图像处理之 JPEG 格式

    Python 图像处理之 JPEG 格式 JPEG Joint Photographic Experts Group 是一种常见的图像压缩格式 在数字图像处理 图像传输等领域得到广泛应用 Python 内置的 PIL 库提供了对 JPEG
  • Qt在软件运行过程中改变一个控件的样式

    需求 在软件运行过程中改变一个控件的样式 思路 使用qss的属性选择器 在qss文件中分别对控件的某个属性的不同属性值设置样式 当需要修改控件样式时 修改控件属性的值 并重新加载该控件的样式表 如何修改控件属性的值 可以先了解一下Qt的属性
  • IntelliJ IDEA插件系列:四大炫酷神器你值得拥有

    拥有了这四款插件 你就比别人领先一步 你的界面独一无二 1 Mario Progress Bar 这是基于 IJ 的 IDE 的 Mario 进度条 基于 Dmitry Batkovitch 的 Nyan 进度条 它展示了马里奥 Mario
  • 软件测试人员该学习 Python 的七个理由

    对于一个软件测试工程师来说 选哪一门语言来入手编程一直是件非常纠结的事情 当然立志做一辈子功能测试的人除外 值得庆幸的是 专门介绍软件 工具及网站服务的技术Blog上CarlCheo绘制了一张图表 告诉你该怎么开始伟大的码农航道 大多数好的
  • (六)练习:饮料自动售货机

    1 找出所有的原因 输入 并编号 1 投币5角 2 投币1元 3 按下 橙汁 按钮 4 按下 啤酒 按钮 2 找出所有的结果 输出 并编号 注意 不能写购买成功 饮料送出 因为若买橙汁 则应该送出橙汁 送出啤酒是不对的 若只写找零 则在画因
  • mybatis:mybatis再总结

    1 什么是mybatis 优点 缺点 适用场合 与Hibernate的对比 https www cnblogs com zhai1997 p 12527689 html 2 和 的区别是什么 是预编译处理 是字符串替换 将传入的数据都当成一
  • Pytorch基础学习(第四章-Pytorch损失优化)

    课程一览表 目录 一 权值初始化 1 梯度消失与爆炸 2 Xavier方法与kaiming方法
  • unity 设置layer 使碰撞器不碰撞

    做游戏时 有时候需要让同一个地图的两个敌人不互相碰撞 但是两个人都有碰撞器 能站在地上 这个功能是如何实现的呢 答案就是设置layer 当点击Hierarchy窗口中的某个对象时 在Inspector窗口就可以看见Layer选项 如图 你可
  • Lua 15分钟快速上手(下)

    本系列相关文章 Flutter 热更新及动态UI生成 Lua 15分钟快速上手 上 Lua 15分钟快速上手 下 Lua与C语言的互相调用 LuaDardo中Dart与Lua的相互调用 进阶语法篇 迭代器 迭代器 iterator 是一种可

随机推荐

  • SpringMVC路径匹配中使用通配符

    SpringMVC路径匹配中使用通配符 RequestMapping中指定的路径也可以使用通配符 表示任意字符 如下的处理器方法可以映射请求 antstyle a 可以映射请求 antstyle b 但是它不能映射请求请求 antstyle
  • 创建或打开c++浏览数据库文件时发生错误,IntelliSense和浏览信息将不能用于C++项目。

    在用vs新建项目 出现这一类的错误 常出现在vs2010中 在使用VC2010的时候出现问题如下 创建或打开C 浏览数据库文件XXXXXXX stdf时发生错误 IntelliSense和浏览信息将不能用于C 项目 请确保已安装Micros
  • 多款知名App宣布停止更新,安卓用户大悲

    程序员的成长之路 互联网 程序员 技术 资料共享 关注 阅读本文大概需要 5 分钟 来自 电脑报 ID CQCPCW 开屏广告早已入侵我们的生活 如同狗皮膏药般存在 人人都在骂 却屡禁不止 甚至还被玩出各种新花样 比如关闭按钮小如蝼蚁 伪装
  • CocosCreator JS追踪堆栈信息

    在开发过程中 可能有这样的需求 即使在没有报错的情况 也需要查看该函数的堆栈调用信息 对于这样的需求 我们可以使用JS原生的console trace来实现 具体代码 export let TraceArr console trace fu
  • 服务器多网卡多路由策略

    场景背景与需求 某公司新买一台服务器 服务器资源 cpu 内存 硬盘 比较多 并且有多个网卡 运维工程师为了节省资源 在服务器上搭建多个服务 希望通过多个网卡实现流量分流 但由于运维工程师对网络理解不够深入 将服务器的多个网卡都配置了同一个
  • 被suse搞到崩溃了

    在Vmware上装了个suse 10 2 它还没崩溃 我快要崩溃了 这玩意号称最新最强的Linux 但是启动速度真的是慢的没法说 关机也是慢的没法说 点个按钮 半天才出来对话框 有时我都怀疑他是不是死掉了 多点几下 结果过一会出来一堆对话框
  • 2015年底总结

    时间过的好快 一年又过了 回顾这一年 经历了很多 成长了很多 今天对2015做一个简单的总结 同时展望一下未来 在14年总结中 今年的重点是考注册电气工程师 学习Android开发 在技术这块儿往精学 而不是多而不精 这一年 确实在注电考试
  • QQuickWidget里放置QML

    1 效果 2 QML 在资源里新建Mybattery qml import QtQuick 2 0 import QtQuick 2 12 Item id root property color color1 18FD18 绿色 健康 pr
  • @Retention注解作用

    Retention作用是定义被它所注解的注解保留多久 一共有三种策略 定义在RetentionPolicy枚举中 从注释上看 source 注解只保留在源文件 当Java文件编译成class文件的时候 注解被遗弃 被编译器忽略 class
  • c/c++调用system获取返回值

    目录 参考 命令 定义函数 调用 参考 在 c c 程序中 可以使用 system 函数运行命令行 但是只能得到该命令行的 int 型返回值 并不能获得显示结果 例如system ls 只能得到0或非0 如果要获得ls的执行结果 则要通过管
  • Jlink在ADS下的配置说明及常见问题解决办法

    阅读1087次 2013 4 2 21 04 37 Jlink在ADS下的配置说明及常见问题解决办法Zhaoxj 参考文档 1 TQ2440开发板使用手册V3 2 20121203 pdf 2 JLINK ADS 2440 pdf 注 1
  • HBase:Region的拆分

    为什么要拆分Region 首先 Region是一段Rowkey数据的集合 当查询一条数据时 会先从元数据中判断该条数据的Rowkye属于哪个Region 然后到指定的Region中查找 当一个Region过大时 在这个Region中查找Ro
  • java并发的基本概念和级别

    之前买了一本实战Java高并发程序设计 这里记一下笔记 至于书怎么样 读完之后再看值不值得推荐 先提供下试读pdf的 下载地址 关于java并发的一些概念 并发的概念 并发 Concurrency 和并行 Parallelism 并发偏重于
  • LVM扩容操作

    文章目录 一 测试环境 二 给lvm分区扩容 加硬盘 1 新增硬盘 2 给新的硬盘分区 3 Lvm操作 查看卷组状态 vgdisplay 创建物理卷 pvcreate dev sdb1 扩展卷组 vgextend 卷组名 物理卷路径 扩展逻
  • 为何程序员要考教师资格证?备考指南与职业价值

    大家好 我是苍何 一个刚拿完教师资格证的非主流程序员 我考教资完全是在两年前受到一位朋友的影响 我们姑且叫他小 y 小 y 是计算机科班名校毕业 985 大学硕士学历并在华为担任软件开发工程师 这样强的专业和大厂背景 已经吊打很多程序猿了
  • 升降压电路Charger&Boost 自己的小解读

    上图为charger内部大致的结构图 Vbus进来 Q1可先认为是二极管 当Q2开启时 可以向后级电感储能 当Q2关断时 Q3 SW 电池形成一个回路 因为同样接地 电感给电池充电 锂电池标称值为3 7V 满电电压是4 2V VBUS电压是
  • LPDDR4特点和基本概念--基于Hynix H9HCNNNBPUMLHR系列

    Feature 两个Channel 每个Channel有8个Bank 对于command和address 采用SDR传输减少总引脚数量 所有的command和address在CLK上升沿锁存 每两个时钟周期传输一个command 对于数据线
  • Oracle --------序列

    1 思考问题 在某张表中 存在一个id列 整数 用户希望在添加记录的时候 该列从1开始 自动的增长 如何处理 2 介绍 Oracle通过序列处理自动增长列 1 可以为表中的列自动产生值 2 由用户创建数据库对象 并可由多个用户共享 3 一般
  • 六. go 高性能编程之 空结构体 struct{} 的使用

    目录 空结构体的优点 实现集合Set 不发送数据的信道channel 仅包含方法的结构体 空结构体的优点 因为空结构体不占据内存空间 因此被广泛作为各种场景下的占位符使用 Go 语言中 可以使用 unsafe Sizeof 计算出一个数据类
  • DDR5内存条容量计算

    DDR5内存条容量计算 一 理解DDR5通道的变化 二 理解芯片package 三 DDR5 symmetric module容量计算 之前对DDR的一些基础知识进行了总结 最近需要了解DDR5的知识 在之前文章基础上又有一些认识 所以重新