DDR interleaving (内存交织)科普

 DDR多通道技术
从DDR的访存特性来说,对同一块DDR,两个访存操作之间需要一些时间间隔,这里面包括CL (CAS时延), tRCD(RAS到CAS时延),tRP(预充电有效周期)等。

为了提高DDR的访存速度,可以使用多通道(channel)技术。如果数据存储在不同通道的内存条上,内存控制器就可以并行的读取这些数据:

总带宽 = 单个内存条带宽 * 通道数

但是由于程序的局限性,一个程序并不会把数据放到各个地方,从而落入另一个DIMM里,往往程序和数据都在一个DIMM里,加上CPU的Cache本身就会把数据帮你预取出来,这个多通道对速度的提高就不那么明显了。

另外一种提高访存带宽的技术就是让同一块内存分布到不同的通道中去,这种技术叫做交织(Interleaving), 此时多通道的技术才能发挥更大的用处。

2. 内存交织
2.1 SOC各组件访问内存架构
SOC中通常有多个master经过NOC访问DDR,结构如下图:

 

master数量多,访问行为不一致
包含多个DDRC(DDRC可能支持多通道技术)

内存交织的实现方式:

内存交织将内存按照粒度(256B, 512B, 1KB, 2KB …)分配到不同的memory controller
内存交织将内存按照粒度(256B, 512B, 1KB, 2KB …)分配到同一个memory controller的不同通道上
各组件的视角:

从master视角看(该视角也是软件视角),此时看到的仍然是一块连续的内存
从NOC视角看,此时一块连续的内存已经被均匀的分布到不同的memory controller(或同一个memory controller不同通道)所控制的内存中。
由于软件看到的是连续内存,故不需要关注如何高效利用DDRC,各master的内存交织由NOC统一管理。若master发出跨粒度的trans,会被NOC拆分。

内存交织的优点:

统一的地址空间
自动负债均衡
带宽与交织的通道数成正比
内存不交织的优点:

根据流量类型、功能或其他考虑因素显式地划分工作负载
独立电源模式切换和/或频率变化

 

### IMC内存交织概述 IMC(Integrated Memory Controller,集成内存控制器)是现代处理器架构中的一个重要组成部分。在多核或多路服务器环境中,IMC负责管理多个通道上的内存访问请求,并通过特定机制优化性能和带宽利用率。 #### 内存交织原理 内存交织是一种提高并行性和减少延迟的技术,在支持NUMA结构的系统中尤为重要。具体来说: - **交错模式**:IMC会按照一定的算法将物理地址映射到不同的DIMM插槽上,使得连续的数据分布在多个模块间[^1]。 - **提升效率**:这种分布方式可以有效利用所有可用资源,避免单个通道成为瓶颈;同时也减少了因局部热点造成的争用现象[^2]。 对于基于Intel平台而言,通常存在两种主要类型的交织方案——Bank Interleaving 和 Channel Interleaving: - Bank Interleaving 是指在同一rank内的不同bank之间实现数据条目的交叉存储; - Channel Interleaving 则是在各个独立的memory channel层面完成相同功能。 ```bash # 查看当前系统的内存拓扑信息 numactl --hardware ``` #### 配置建议 为了确保最佳性能表现,合理设置IMC参数至关重要: - 使用BIOS/UEFI界面调整相关选项,如开启或关闭某些高级特性; - 对于Linux操作系统,可以通过`grub.cfg`文件传递kernel命令行参数来影响启动时的行为,例如指定具体的interleave范围等; - 定期监控实际运行状况并通过工具分析是否存在潜在问题,必要时作出相应修改。 ```bash # 修改GRUB引导加载程序配置以应用新的内核参数 sudo nano /etc/default/grub # 更新后保存更改并重新生成配置文件 sudo update-grub ``` #### 问题排查方法 如果遇到与IMC有关的问题,可以从以下几个方面入手调查原因: - 检查硬件连接是否稳固可靠,排除松动接触不良的可能性; - 参考厂商文档确认所使用的DIMMs规格完全兼容主板要求; - 运行诊断测试软件定位故障点,比如Memtest86+能够帮助发现随机错误; - 收集日志记录以便进一步研究异常情况的发生规律。 ```bash # 执行memtester来进行简单的内存稳定性检测 sudo apt-get install memtester memtester 1024M 5 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值