全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 存储技术 >

DDR5 dimm里为什么要设计两个channel?

时间:2024-01-04 09:28

人气:

作者:admin

标签: DIMM  CPU  数据传输  DDR5 

导读:DDR5 dimm里为什么要设计两个channel?-Burst Length: 突发(Burst) 是指在同一行中相邻的存储单元连续进行数据传输的方式。连续传输的周期数就是突发长度 (Burst Lengths,简称BL)。...

为什么DDR5要设计sub channel的概念,sub channel的设计初衷是什么?一个sub channel的带宽是32bit,要组成一个64bit的cache line岂不是还是需要两个channel同时工作?

首先引入2个概念:

1、Burst Length: 突发(Burst) 是指在同一行中相邻的存储单元连续进行数据传输的方式。连续传输的周期数就是突发长度 (Burst Lengths,简称BL)。

对于DDR3和DDR4内存,其BL=8: 对于DDR5内存,其BL=16.

2、Cache line: 我们知道CPU是不能直接读取内存当中的数据,CPU要想读取内存当中的数据,首先要将数据从内存里加载到高速缓存cache中,然后再读取cache中的数据

4e511966-aa41-11ee-8b88-92fbcf53809c.png

我们将一个cache平均分成相等的很多块,每一个块大小我们称之为cache line

例如: 一个32 Bytes大小的cache,如果我们将其平均分成32块,那么每一块cache line就是1Byte,总共有32行cache line。如果我们将其平均分成8块,那么cache line大小就是4 Bytes,总共8行cache line。

cache line是cache和内存之间数据传输的最小单位。什么是最小单位?

例: cache从Memory获取数据的最小单位是64Bytes,当cache要从内存里读取一个32 Bytes的数据时,不会只把这32 Bytes的数据读进来,而是会把64 Bytes的数据一起读进来

而对于X86架构的CPU来讲,它的Cache line大小正好就是64Bytes。

在我们DDR4时,数据位宽是64位的,就是我们一次读写64bit的数据,每次读写最高的BurstLength是8位,乘起来就是64bit*8=512bit=64Byte,也就是我们X86架构的CPU cache line 的大小。

那么到了DDR5的时候,每次读写最高的Burst Length变为了16位,如果我们的通道还是维持64bit的位宽,那么我们乘起来就是64bit*16=1024bit,1024bit超过了我们的cpu cache line%的传统大小。如果我们依然要这么做的话,那么我们的内存控制器的架构,从底层硬件到上层读写数据的软件配套都要去改,这样改动就非常大。所以在DDR5时,就引入了sub-channel的概念

每个sub-channel有效数据位是32位,32bit*16 (Burst Length) =512bit,这样就能够满足我们cpu cache line 的需求。所以就是DDR5引入sub-channel的原因。

Reference:为什么DDR5要在一个dimm里面设计两个channel?- 知乎 (zhihu.com)

审核编辑:黄飞

 

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信