图拉丁吧 关注:7,718,381贴子:129,645,071
  • 7回复贴,共1

ddr5“单条双通道的由来”

取消只看楼主收藏回复

虽然是618大伙忙着装机,也不一定还会有小白被这个问题坑到,但是还是想到什么就说了,估计能帮到吧友呢
楼下更新


IP属地:山东来自Android客户端1楼2024-05-30 23:27回复
    之前有个很热门的话题,说是ddr5单条自身就能构成双通道。其实这样说也没错,但是改变了对双通道最初的定义。从ddr发展至今,双通道在用户这里被定义成“由内存控制器控制的两条64bit位宽的内存”,这个概念是由内存控制器到内存之间,cpu可以对两根内存分别进行寻址,从而提高工作效率


    IP属地:山东来自Android客户端2楼2024-05-30 23:32
    回复
      ddr5的做法是将一个完整的64bit的内存位宽拆成了两个32bit的可寻址的通道,从理论上说这确确实实是双通道,但是是内存自身内部的双通道,从cpu到内存之间的总位宽依旧不变,所以“单条双通道”是改变了双通道的定义的


      IP属地:山东来自Android客户端3楼2024-05-30 23:36
      回复
        下面的内容有点偏技术向,我说的也有可能不准确,有大佬也可以纠正讲解一下:
        ddr5这么做的根本原因是


        IP属地:山东来自Android客户端4楼2024-05-30 23:39
        回复
          首先,大家所知道的内存频率,并不是说本身颗粒就在以这个频率运行,颗粒自身的频率可能只有几百mhz,之所以变成了现在的6000多mhz,是因为预读机制的存在:
          一根内存条细致划分依次是:dimm,rank,chip,bank,row/column,我们常听说的一个内存颗粒的位宽,就是说一个bank内有多少个row/column组成的阵列(cell),内存一次只读取一个bank,定位到行列地址后,每次读取时拿出bank内所有相同地址cell的数据,即颗粒位宽。
          从ddr开始,内存在读取到行列地址后,会同步读取同行的两个相邻列的数据,这样发送出去的就是二倍内存颗粒位宽的数据,也叫2n预读。


          IP属地:山东来自Android客户端7楼2024-05-30 23:55
          收起回复
            从ddr到ddr3,每代的预读都在翻倍,ddr是2n,ddr2是4n,ddr3是8n,如果按照这个趋势,ddr4也应当有16n预读,但实际情况是,如果采用了16n预读,每次向cpu发送出去的数据为16*64bit=128byte,但是现在的cpu均为64位,包括cpu的cacheline,一次传输超过64byte的数据会造成性能影响,所以ddr4没有采用16n预读。到这里答案已经很明显了,ddr5拆分成了两个32位的可寻址通道,每一边传输64byte的数据,这样就解决了数据不对齐的问题,使得频率提升,带宽提高


            IP属地:山东来自Android客户端9楼2024-05-31 00:05
            收起回复


              IP属地:山东来自Android客户端10楼2024-05-31 00:06
              回复


                IP属地:山东来自Android客户端12楼2024-05-31 09:46
                回复