当前位置:首页 > 科技  > 软件

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

来源: 责编: 时间:2024-05-16 09:07:26 90观看
导读大家好,我是飞哥!在冯诺依曼体系结构里,内存是除了CPU之外第二重要的设备。如果没有内存,服务器将完全无法运行。在这一节中,我们来了解下内存的物理结构。如下图的是一个 16 GB 的笔记本内存条实物的正面和反面图。其中的

大家好,我是飞哥!l7Y28资讯网——每日最新资讯28at.com

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

注意下,在正面有着一串字符串标识16 GB 2R/*8 PC4-3200AA-SE1-11。在这段标识中,16 GB 很好理解,是内存的容量大小。那么后面的 2R*8 是什么意思呢?l7Y28资讯网——每日最新资讯28at.com

实际上,内存标识第二段中的 2R*8 非常重要,它直接简单清晰地把内存的物理结构给表示出来了。l7Y28资讯网——每日最新资讯28at.com

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

接下来我们分两个小节,深入地看看 Rank、位宽与内存颗粒的内部结构。l7Y28资讯网——每日最新资讯28at.com

内存的 Rank 与位宽

在内存中,其中每一个黑色的内存颗粒叫一个 Chip。所谓 Rank 指的是属于同一个组的 Chip 的总和。这些 Chip 并行工作,共同组成组成一个 64 bit 的数据,供 CPU 来同时读取。l7Y28资讯网——每日最新资讯28at.com

CPU 的内存控制器能够对同一个 rank 的 chip 进行读写操作。通常一个通道(channel)能够同时读写 64bit 的数据(ECC 功能的是 72 bit)。l7Y28资讯网——每日最新资讯28at.com

内存字符串标识中的 2 R 表示该内存有 2 个 Rank。l7Y28资讯网——每日最新资讯28at.com

2 R 后面的 * 4 表示每个内存颗粒的位宽是 4 bit。因为 CPU 要同时读写 64 bit 的数据。所以l7Y28资讯网——每日最新资讯28at.com

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

例如,下面的笔记本内存条,是 1 R * 16。表示的是该内存条只有 1 个 Rank。每个 Chip 内存颗粒的位宽是 16 bit。l7Y28资讯网——每日最新资讯28at.com

而一个 Rank 需要提供 64 位的数据,则需要 64 / 16 = 4 个 Chip 来组成一个 Rank 来同步地工作。从实物图中也确实可以看到,该内存条正反面加起来只有 4 个 Chip,l7Y28资讯网——每日最新资讯28at.com

图片图片l7Y28资讯网——每日最新资讯28at.com

图片图片l7Y28资讯网——每日最新资讯28at.com

再比如,下面的笔记本内存条,是 2 R * 8。表示的是该内存条有 2 个 Rank,每个 Chip 内存颗粒的位宽是 8 bit。l7Y28资讯网——每日最新资讯28at.com

一个 Rank 需要 64 / 8 = 8 个 Chip 来组成一个 Rank。则两个 Rank 总共需要 16 个 Chip。从内存条的实物图中看到,该内存条的正反面确实总共有 16 个 Chip。l7Y28资讯网——每日最新资讯28at.com

图片图片l7Y28资讯网——每日最新资讯28at.com

图片图片l7Y28资讯网——每日最新资讯28at.com

内存颗粒 Chip 内部结构

一个内存是由若干个黑色的内存颗粒构成的。每一个内存颗粒叫做一个 chip。在每个 chip 内部,又是由一层层的 bank 组成的。l7Y28资讯网——每日最新资讯28at.com

图片图片l7Y28资讯网——每日最新资讯28at.com

在每个 bank 内部,就是电容的行列矩阵结构了。l7Y28资讯网——每日最新资讯28at.com

图片图片l7Y28资讯网——每日最新资讯28at.com

这个矩阵由多个方块状的元素构成,这个方块元素是内存管理的最小单位,也叫内存颗粒位宽。在一个位宽中。有若干小电容。l7Y28资讯网——每日最新资讯28at.com

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

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

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

例如下面是一个美光(Megon)内存 Chip 的内部结构。l7Y28资讯网——每日最新资讯28at.com

图片图片l7Y28资讯网——每日最新资讯28at.com

在该 Chip 中,总共有 8 个 bank,每个 bank 是一个 32768 行 * 128 列的二维矩阵,每个二维矩阵单元存储的数据大小是 64 比特。l7Y28资讯网——每日最新资讯28at.com

则该 Chip 总共可存储的数据大小是 8 * 32768 * 128 * 64 = 2147483648 比特。换算成 MiB 2147483648 字节/(1024*1024*8) = 256 MiBl7Y28资讯网——每日最新资讯28at.com

总结

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

  • 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,也为了节约地址线数量。一般每个二维矩阵元素中存储的数据要比位宽更大一些。l7Y28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-88346-0.html理解内存的Rank、位宽以及内存颗粒内部结构

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 面向未来的 Web 框架,更快、更小、更好用!

下一篇: Pytest初学者指南:快速上手高效Python测试

标签:
  • 热门焦点
Top
Baidu
map