北肙

当你不能够再拥有,唯一可以做的,就是令自己不要忘记。

内存延迟 – Memory Latency

什么是内存延迟^1 从CPU读写内存的指令发出到被执行这一过程的时长,以时钟周期为单位。 例如三星的某款4GB内存条上标签为:“4GB 2Rx4 PC3-10600R-09-10-E1-P0” 10600R中的R就代表内存延迟是:15-15-15 知识点 以DDR5 16GB 2Rx8内存为例[^2] [^2]: 数据摘自Youtube视频How Does Memory Works Rank x8表示单个DRAM芯片I/O位宽是8位 非ECC DDR5内存一个Rank是64位,64÷8=8个,所以1个Rank需要8个DRAM芯片 则总共内存条上有8x2=16个DRAM芯片 Bank & Bank Group 每个DDR5的DRAM芯片有8个Bank Group 每个Bank Group有4个Bank 每个Bank有65536行,也就是Row,也叫Wordline 每个Bank有8192列,也就是Column DRAM芯片的Bank是由1C1T Cell组成的存储平面,可以理解为Excel的单元格,一个Bank有8192列,65536行,每个单元格只存储0和1 Bank中读写操作的地址 31位,以110 11 0000110011100111 1100110010为例 前3位有效范围0-7,选择哪个Bank Group 4-5位有效范围0-3,选择 Bank Group中哪个Bank 接下来16位有效范围0-65535,表示一个Bank中哪一列,也就是哪个wordline Row Address Stobe - RAS 最后10位有效范围0-1023,表示一个wordline 8192个Cell中哪8个数据位 Column Address Stobe - CAS […]

什么是内存延迟^1

从CPU读写内存的指令发出到被执行这一过程的时长,以时钟周期为单位。
例如三星的某款4GB内存条上标签为:“4GB 2Rx4 PC3-10600R-09-10-E1-P0”
10600R中的R就代表内存延迟是:15-15-15

知识点

以DDR5 16GB 2Rx8内存为例[^2]

[^2]: 数据摘自Youtube视频How Does Memory Works

Rank

  • x8表示单个DRAM芯片I/O位宽是8位
  • 非ECC DDR5内存一个Rank是64位,64÷8=8个,所以1个Rank需要8个DRAM芯片
  • 则总共内存条上有8x2=16个DRAM芯片

Bank & Bank Group

  • 每个DDR5的DRAM芯片有8个Bank Group
  • 每个Bank Group有4个Bank
  • 每个Bank有65536行,也就是Row,也叫Wordline
  • 每个Bank有8192列,也就是Column
  • DRAM芯片的Bank是由1C1T Cell组成的存储平面,可以理解为Excel的单元格,一个Bank有8192列,65536行,每个单元格只存储0和1

Bank中读写操作的地址

  • 31位,以110 11 0000110011100111 1100110010为例
  • 前3位有效范围0-7,选择哪个Bank Group
  • 4-5位有效范围0-3,选择 Bank Group中哪个Bank
  • 接下来16位有效范围0-65535,表示一个Bank中哪一列,也就是哪个wordline
    • Row Address Stobe - RAS
  • 最后10位有效范围0-1023,表示一个wordline 8192个Cell中哪8个数据位
    • Column Address Stobe - CAS
    • 问: 为什么10位地址,选择8个数据位?
    • 答:2Rx8表示Bank I/O位宽是8bits,将8192列(Column)分成连续的1024份,每份8个Cell;所以Column Address实际表示的是Column中每8个一组的首个Cell的位置。

Bank中读写的过程

  1. Row Close
  2. Precharge Bitlines[^3]
  3. Row Open
  4. Column Address Select/Multiplex
  5. Access 1T1C Cells Read/Write Data

如上一节所说,内存芯片收到一组31位的地址,选择了Bank Group和Bank后,关闭该Bank中所有的wordline,也就是Row Close。之后要对所有列bitlines进行预充电,给每个Cell充0.5V,由于电容的关系,之前存着1的Cell充电后还是1,存着0的Cell充电后也还是0,这个过程叫Precharge Bitlines,是为防止1C1T Cells中Capacitor由于电子逸散造成的数据丢失。充电之后根据16位地址选择并Open Row,再由10位地址由Column Multiplex选择1024组中的1组(8个),最后便是访问1C1T Cell进行数据读写。

[^3]: Bitlines指将一列1T1C Cells连接起来,对应的是wordline,后者连接Row

延迟 Latency

正如前面所说,内存条的延迟由连续的3个数字表示,如15-15-15,为了表示差异,此次以15-16-17为例。

  • CAS
    • Column Address Strobe
    • 内存芯片在8192列中选取连续8位的时延
  • tRCD
    • RAS to CAS Delay
    • 行寻址开始到列寻址开始之间的时延
  • tPR
    • Precharge Bitlines的时延
  • Clock Cycles - 时钟周期
    • 时钟周期定义为频率的倒数
    • 但对于DDR(Double Data Rate)内存来说标称频率是时钟频率的2倍
    • 假如DDR5内存条频率是4800Mhz
    • 一个时钟周期时长为:1s / (4800 000 000Hz / 2) x 10^9 = 0.417ns
  • CAS延迟:15 x 0.417ns = 6.255ns
  • tRCD延迟:16 x 0.417ns = 6.672ns
  • tPR延迟:17 x 0.417ns = 7.089ns

Leave a Reply

Your email address will not be published. Required fields are marked *