首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >理解内存的Rank、位宽以及内存颗粒内部结构

理解内存的Rank、位宽以及内存颗粒内部结构

作者头像
开发内功修炼
发布于 2024-05-18 01:21:46
发布于 2024-05-18 01:21:46
4.8K0
举报
文章被收录于专栏:开发内功修炼开发内功修炼

大家好,我是飞哥!

在冯诺依曼体系结构里,内存是除了CPU之外第二重要的设备。如果没有内存,服务器将完全无法运行。在这一节中,我们来了解下内存的物理结构。如下图的是一个 16 GB 的笔记本内存条实物的正面和反面图。其中的每个黑色颗粒也叫一个 Chip。

注意下,在正面有着一串字符串标识16 GB 2R\*8 PC4-3200AA-SE1-11。在这段标识中,16 GB 很好理解,是内存的容量大小。那么后面的 2R*8 是什么意思呢?

实际上,内存标识第二段中的 2R*8 非常重要,它直接简单清晰地把内存的物理结构给表示出来了。

  • 2R:表示该内存有 2 个 Rank
  • *8:表示每个内存颗粒的位宽是 8 bit,

接下来我们分两个小节,深入地看看 Rank、位宽与内存颗粒的内部结构。

内存的 Rank 与位宽

在内存中,其中每一个黑色的内存颗粒叫一个 Chip。所谓 Rank 指的是属于同一个组的 Chip 的总和。这些 Chip 并行工作,共同组成组成一个 64 bit 的数据,供 CPU 来同时读取。

CPU 的内存控制器能够对同一个 rank 的 chip 进行读写操作。通常一个通道(channel)能够同时读写 64bit 的数据(ECC 功能的是 72 bit)。

内存字符串标识中的 2 R 表示该内存有 2 个 Rank

2 R 后面的 * 4 表示每个内存颗粒的位宽是 4 bit。因为 CPU 要同时读写 64 bit 的数据。所以

  • 对于位宽为 4 的颗粒,需要 16 个 Chip 来组成一个 Rank
  • 对于位宽为 8 的颗粒,需要 6 个 Chip 来组成一个 Rank
  • 对于位宽为 16 的颗粒,需要 4 个 Chip 来组成一个 Rank

例如,下面的笔记本内存条,是 1 R * 16。表示的是该内存条只有 1 个 Rank。每个 Chip 内存颗粒的位宽是 16 bit。

而一个 Rank 需要提供 64 位的数据,则需要 64 / 16 = 4 个 Chip 来组成一个 Rank 来同步地工作。从实物图中也确实可以看到,该内存条正反面加起来只有 4 个 Chip,

再比如,下面的笔记本内存条,是 2 R * 8。表示的是该内存条有 2 个 Rank,每个 Chip 内存颗粒的位宽是 8 bit。

一个 Rank 需要 64 / 8 = 8 个 Chip 来组成一个 Rank。则两个 Rank 总共需要 16 个 Chip。从内存条的实物图中看到,该内存条的正反面确实总共有 16 个 Chip。

内存颗粒 Chip 内部结构

一个内存是由若干个黑色的内存颗粒构成的。每一个内存颗粒叫做一个 chip。在每个 chip 内部,又是由一层层的 bank 组成的。

在每个 bank 内部,就是电容的行列矩阵结构了。

这个矩阵由多个方块状的元素构成,这个方块元素是内存管理的最小单位,也叫内存颗粒位宽。在一个位宽中。有若干小电容。

  • 对于 1 R * 16 的内存条,一个位宽有 16 个 bit 位
  • 对于 2 R * 8 的内存条,一个位宽有 8 个 bit 位

值得注意的是,由于内存访问太慢了。所以 CPU 每次向内存请求数据的时候,并不只是请求一个 64 bit 的数据就完事了,而是会请求更多的数据然后用自己的 L1、L2、L3等模块缓存起来。下次如果访问的数据位于缓存中的话,就可以不用再发起内存 IO 了。一次请求的数据大小是 64 * 8 bit = 64 字节,这也是一个 Cache Line 的大小。

对于内存来说,一次 Cache Line 64 字节的访问属于是一次 Burst IO,需要内存连续工作多次,输出多个 64 字节。所以,内存在排列和组织二维矩阵结构的时候,会按方便 Burst IO 的方式来组织,实际二维矩阵单元中存储的字节数会比位宽要大。

例如下面是一个美光(Megon)内存 Chip 的内部结构。

在该 Chip 中,总共有 8 个 bank,每个 bank 是一个 32768 行 * 128 列的二维矩阵,每个二维矩阵单元存储的数据大小是 64 比特。

则该 Chip 总共可存储的数据大小是 8 * 32768 * 128 * 64 = 2147483648 比特。 换算成 MiB 2147483648 字节/(1024*1024*8) = 256 MiB

总结

内存标识字符串中的第二段是非常重要的表示内存物理结构的标识。它清楚地写明了当前内存条总共有几个 Rank,每个 Chip 中的位宽是多少。进而也能推算出 1 个 Rank 中有多少个 Chip 组成。例如

  • 2R*4 表示的是内存条有 2 个 Rank,每个 Chip 的位宽大小是 4。可以推算出每个 Rank 需要 64/4 = 16 个 Chip 颗粒。这种内存常见于服务器内存。内存颗粒越多,就可以组成更大容量的内存条。
  • 2R*8 表示的是内存条有 2 个 Rank,每个 Chip 的位宽大小是 8。可以推算出每个 Rank 需要 64/8 = 8 个 Chip 颗粒。这种规格常见于台式机。
  • 1R*16 表示的是内存条有 1 个 Rank,每个 Chip 的位宽大小是 16。可以推算出每个 Rank 需要 64/16 = 4 个 Chip 颗粒。这种内存常见于笔记本内存条。因为内存颗粒越少,则体积越小。

至于每个 Chip 内存颗粒中有多少个二维矩阵元素,为了支持 Burst IO,也为了节约地址线数量。一般每个二维矩阵元素中存储的数据要比位宽更大一些。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开发内功修炼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
为什么服务器内存硬件上的黑色颗粒这么多?
之前有位读者问我为什么服务器内存上有这么多的颗粒,今天我专门就这个话题成文一篇作为回复。
开发内功修炼
2024/06/18
6170
为什么服务器内存硬件上的黑色颗粒这么多?
内存随机也比顺序访问慢,带你深入理解内存IO过程
平时大家都知道内存访问很快,今天来让我们来思考两个问题: 问题1: 内存访问一次延时到底是多少?你是否会进行大概的估算? 例如笔者的内存条的Speed显示是1066MHz,那是否可以推算出内存IO延时
开发内功修炼
2022/03/24
1.1K0
内存随机也比顺序访问慢,带你深入理解内存IO过程
理解内存对齐
在计算器领域,对于某种特定的计算机设计而言,字(word)是用于表示其自然的数据单位的术语。在这个特定计算机中,字是其用来一次性处理事务的一个固定长度的位(bit)组。一个字的位数即为字长。
Orlion
2024/09/02
1750
理解内存对齐
看懂服务器 CPU 内存支持,学会计算内存带宽
在深入了解服务器 CPU 的型号、代际、片内与片间互联架构一文中我们了解了服务器 CPU 的内部架构。在其中我们看到有一个内存控制器。
开发内功修炼
2024/04/17
6.9K0
看懂服务器 CPU 内存支持,学会计算内存带宽
详细说一下服务器内存和显存是怎么计算的
早期内存通过存储器总线和北桥相连,北桥通过前端总线与CPU通信。从Intel Nehalem起,北桥被集成到CPU内部,内存直接通过存储器总线和CPU相连。
用户6953509
2020/02/12
7K0
带你深入理解内存对齐最底层原理
相信绝大多数的人都了解内存对齐,对齐后性能高。但是其最最底层的原理是啥呢? 有的人可能会说,因为高速缓存的工作机制。读者你很聪明,这是原因之一。但我今天想挖的是更底层一点的原理,让我们去内存的物理构成里找找答案!
范蠡
2020/12/15
5830
带你深入理解内存对齐最底层原理
为什么数组这么好用?(以串口上下位机协议)
前几天给人讲课,讲到了这个数组,然后有了更加深刻的理解。我觉得从物理和数据的组织方式上面入手是好的。
云深无际
2025/02/05
1150
为什么数组这么好用?(以串口上下位机协议)
深入理解DRAM(全文·万字30+图)
其中,“数据传输速率”是指每个时钟周期内单个引脚的数据传输速度,而“位宽”则代表了连接到内存控制器的引脚数量。
数据存储前沿技术
2025/02/11
2.8K0
深入理解DRAM(全文·万字30+图)
镁光闪存颗粒对照表_最全的内存颗粒编码规则说明,教你看穿内存条到底用的什么颗粒…[通俗易懂]
今天我们一起来了解、学习下海力士、南亚、镁光内存颗粒的编码规则,以帮助我们快速的看穿内存条到底使用的是什么颗粒,颗粒的质量和性能如何。
全栈程序员站长
2022/06/25
11.2K0
深入内存/主存:解剖DRAM存储器
如果你是一个 EECS 专业的学生或领域内从业者,你一定经常听到别人谈论 DRAM 、内存和 DDR ——学数字电路和计算机组成的时候绕不过 DRAM ,讨论电脑性能的时候离不开内存,围观领域内公司发布新产品时,总是看到产品使用了所谓的 xx 通道 DDR4/DDR5 技术。
tech life
2023/09/01
2.8K0
深入内存/主存:解剖DRAM存储器
服务器之 ECC 内存的工作原理
这两个内存条中,为什么一个是 8 个颗粒,另一个是 9 个颗粒呢?这个故事还要从比特翻转说起。
开发内功修炼
2024/03/05
2K3
服务器之 ECC 内存的工作原理
深入AXI4总线-[三]传输事务结构
那么在数据传输的范畴中,就使用 burst 来表示一种传输模式:在一段时间中,连续地传输多个(地址相邻的)数据。此时可译为突发传输或者猝发传输。
空白的贝塔
2020/06/24
3.3K0
深入AXI4总线-[三]传输事务结构
第012课 内存控制器与SDRAM
如图是S3C2440是个片上系统,有GPIO控制器(接有GPIO管脚),有串口控制器 (接有TXD RXD引脚)。
韦东山
2020/09/30
1.2K0
第012课 内存控制器与SDRAM
ddr2 odt_ddr2电压
经常有人会说支持DDR2的主板存在偷工减料的现象。事实上这是由于DDR2内存中使用了一项新的ODT技术,它可以在提高内存信号稳定性的基础上 节省不少电器元件。主板终结是一种最为常见的终结主板内干扰信号的方法。在每一条信号传输路径的末端,都会安置一个终结电阻,它具备一定的阻值可以吸收反 射回来的电子。但是目前DDR2内存的工作频率太高了,这种主板终结的方法并不能有效的阻止干扰信号。若硬要采用主板终结的方法得到纯净的DDR2时钟信 号会花费巨额的制造成本。
全栈程序员站长
2022/09/30
1.6K0
Micron(美光)内存颗粒的命名规则,7lk17d9PTK,MT29F2G08ABAEA(矿机自带)
三四十买了一个矿机主板,ddr3的芯片和flash的型号认不全,找了一些资料,如下
全栈程序员站长
2022/06/25
4.6K0
Micron(美光)内存颗粒的命名规则,7lk17d9PTK,MT29F2G08ABAEA(矿机自带)
主板上这家伙,要当CPU和内存的中间商!
我是一个内存条,刚刚从深圳的一个工厂里被生产出来,跟我一起的还有一批小伙伴,长得跟我一模一样,下了流水线后我们就被扔进了一处黑暗的角落。
轩辕之风
2021/03/12
7470
软硬件融合技术内幕 终极篇 (9) —— 得民心者得天下
在上期,我们提到了,DRAM从FPM,EDO,EDO Burst,SDRAM一路进化,在SDRAM 133MHz时代,每片芯片(16bit)理论上可实现266MBps的吞吐性能。每内存通道64bit理论上最高(burst方式)可提供1066MBps吞吐性能,两个内存通道合计约2GBps。
用户8289326
2023/02/25
5940
软硬件融合技术内幕 终极篇 (9) —— 得民心者得天下
个人计算机硬件设备配置介绍与选型参考
描述:在我们日常使用的计算机中除了需要有硬件支持,还需要要有软件支持,比如我们的操作系统; 在我们自己安装系统或者DIY笔记本电脑的时候需要购买一些PC的一些周边硬件,当然您需要对其有一个大致的了解,所以本篇文章给计算机小白们一个基础入门;
全栈工程师修炼指南
2022/09/28
3.5K0
个人计算机硬件设备配置介绍与选型参考
旷视MegEngine TensorCore 卷积算子实现原理
2020年5月Nvidia发布了新一代的GPU架构安培(Ampere)。其中和深度学习关系最密切的莫过于性能强劲的第三代的TensorCore,新一代的TensorCore支持了更为丰富的DL(Deep Learning)数据类型,包括了新的TesorFloat-32(TF32),Bfloat16(BF16)计算单元以及INT8,INT4和INT1的计算单元,这些计算单元为DL推理提供了全面的支持。
Amusi
2021/06/09
2.3K0
旷视MegEngine TensorCore 卷积算子实现原理
最快69秒逆向DRAM地址映射,百度设计的这款逆向工具如何做到快速可靠?
导读:近日,国际顶级设计自动化大会DAC大会公布DAC 2020会议议程和论文名单,由百度安全发表的《DRAMDig: AKnowledge-assisted Tool to Uncover DRAM Address Mapping》成功入选。
AI科技大本营
2020/04/24
1.6K0
最快69秒逆向DRAM地址映射,百度设计的这款逆向工具如何做到快速可靠?
推荐阅读
相关推荐
为什么服务器内存硬件上的黑色颗粒这么多?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档