内存频率并非越高越好
很多人觉得内存频率越高速度越快,尤其是在英特尔12代酷睿处理器支持DDR5之后,不少人都想升级到DDR5,以为升级到DDR5就能获得更高的性能。事实真的是这样吗?如下图两内存,都是同样的芝奇的DDR4 3600MHz 16GBx2的内存,为什么会有500+的价格差?因为它们有不同的CL时序,一个是18-22-22-42,另一个是16-19-19-39,这点区别就值500+。那么内存CL时序到底是什么?对性能又有什么影响?
内存在存取数据时是以行列的方式进行,跟Excel表格类似,通过行列的方式定位数据。内存时序代表的是行列访问所需要的周期数(周期数不等于时间),主要有四个分别是CL,tRCD,tRP,tRAS。CL代表内存访问一次列所需的周期数,下图为16,tRCD表示内存访问一次行所需的最小周期数,下图中的19,tRP表示打开下一行的最小周期数,下图中为19,tRAS代表的是行活动到发出打开下一行的最小周期数。看起来很复杂,最重要的就是第一个,即CL。
CL全称CAS latency,内存访问一次列的延迟时间,在频率相同的情况下,CL值越小内存速度越快。就跟我们看小说一样,只要定位到了行,剩下的就是读行中的每一列,直到读完一行才会读下一行。内存只要定位到了数据所在的行,剩下的基本就是列操作,直到读完一行才会进行一次行操作。所以CL值对内存来说非常重要。
从下表中可以发现CL(表中的CAS Latency)的值是随着内存频率的增加而增大的。DDR5 4800MHz的CL值为40个时钟周期,比DDR4更大。这也是为什么DDR5比DDR4提升不大的原因,频率高了延迟更大。由于CL是时钟周期与内存频率相关不好比较,所以要换成时间。CL延迟时时间=1/(DDR频率/2)* CL周期数*1000。
公式中的1代表1秒钟,内存频率除以2,是因为DDR的全称是Double Data Rate即双倍数据传输速率,如下图SDR不用除,QDR要除以4才是内存的时钟频率,因此上图的DDR4,DDR5都要除以2 。乘1000是为了把微秒换成纳秒。所以上图DDR5 4800MHz的CL延迟时间=1/(4800/2)*40*1000=16.67ns。
内存的CL,tRCD等都是可以通过BIOS修改的,如下图修改成1600MHz 16CL和1500MHz 15CL哪个更快?用上面的公式算CL延迟都是10ns,所以几乎一样快。决定内存速度的除了CL延迟以外,还有其它几个。但CL影响更大。
现在我们来解决第一张图为什么后者比前者更贵的问题。2099的CL延迟时间为8.89ns,而1549的CL延迟时间为10ns,2099的存取速度更快,也因此更贵。