跑道加一条,速度翻一倍:内存通道的提速秘密
如果程序是一辆跑车,那么CPU就是引擎,内存就是油箱,而内存通道就是供满管路。如果管道太窄,油就跟不上,发动机就像嗷嗷待哺的孩子。可怜啊,就算再怎么嗷嗷叫也吃不饱,车自然也就跑不起来。
一、内存通道的类型
简单来说,内存通道就是CPU和内存之间的一条数据传输通道,它决定了CPU访问内存的速度。
在计算机的世界里,速度就是王道,慢一步,可能就错失了一个亿。
内存通道有单通道、双通道、四通道等多种类型。
1.1 单通道
在计算机发展的初期,内存都是单通道的。
单通道就像马路只有一排车道,虽然能走,但是得一个一个来。当多个进程同时请求访问内存时,很容易造成拥堵现象(带宽不足)。
注:内存带宽是指单位时间内CPU可以从内存中读取或写入的数据量。
1.2 多通道
为解决上述问题,多通道内存架构应运而生。
简单来说,就是在原有基础上增加了额外的数据传输线路,使得CPU可以同时与多个内存颗粒建立连接。
比如双通道就像是拓宽成了双排车道,哥俩儿可以并肩而行(并行处理),效率翻倍;四通道那就更厉害了,就像四排车道的高速公路,速度嗖嗖的。
多通道的优势主要有两方面:
- 提高吞吐量:理论上讲,每新增一条通道就能使带宽翻倍。
- 降低延迟:比如某个通道被占用,未被占用的通道仍可正常运作,从而减少了等待时间。
二、内存通道的工作原理
2.1 内存控制器
电脑支持几通道主要看内存控制器(Memory Controller),有几个内存控制器就能支持几个内存通道。
以双通道为例,就是有两个内存控制器,它们可独立工作,每个控制器控制一个内存通道。
CPU可分别通过两个内存通道寻址、读取数据,从而使内存的带宽增加一倍,数据存取速度也相应增加一倍。
根据集成位置不同,内存控制器可分为北桥芯片内置式和CPU内部集成式两种类型:
- 北桥内置:这种方式历史悠久,曾经广泛应用于早期PC平台中。其优点在于结构相对简单、开发难度较低;缺点则是容易成为系统瓶颈,特别是在高频多核处理器面前显得力不从心。
- CPU内置:近年来,随着制程工艺进步和技术革新,越来越多厂商倾向于将内存控制器直接嵌入CPU内部。这样做不仅缩短了信号传输距离,降低了功耗,更重要的是为实现更复杂的内存访问模式创造了条件。
2.2 内存地址映射策略
为了让多个通道协同工作,还需要解决一个问题:如何确定每个请求应该分配给哪条通道处理?这就涉及到内存地址映射策略的选择了。目前比较流行的方案有两种:
- 交错式(Interleaved):按照一定规律交替分配物理页面到不同通道上。比如在一个双通道系统中,奇数页交给第一通道处理,偶数页则交给第二通道。这样做的好处是可以充分利用各通道资源,避免出现冷热不均的情况。
- 固定式(Fixed):事先设定好哪些范围内的地址对应特定通道。这种方法虽然实现起来比较简单,但在负载均衡方面表现较差,可能导致某些通道过载而另一些闲置。
2.3 数据预取技术
除了合理规划地址外,现代内存子系统还引入了一项关键技术——数据预取(Prefetch)。顾名思义,就是在CPU发出正式指令之前,提前预测即将使用的数据并加载到缓存中。这样一来,当真正需要这些信息时就可以立即获取,大大提高了工作效率。值得注意的是,随着DDR版本迭代更新,预取宽度也在不断增加,从最初的2位发展到现在常见的8位甚至更高。
三、内存通道模式
3.1 单通道模式
单通道模式,也被称为非对称模式,是以单通道带宽进行操作的一种内存配置方式。
单通道模式并不意味着电脑只支持单通道,即便支持多通道也可能会以单通道的模式运行。单通道模式主要有以下几种情况:
(1)只有一个通道
这没什么好说的,只有一个通道,想执行多通道模式也不允许呀,就算装再多的内存条(DIMM),也只能通过这一条通道传数据。
(2)多个通道
以双通道为例,假设有4个内存槽,第1、2个插槽位于A通道,第3、4个插道位于B通道。分为几种情况:
①只安装一个内存条:这种情况就好比车道有很多,但只有一条车道能跑车(传数据)。
比如有4个内存插模槽,可以只插一根16GB的内存条。
②容量不相等:虽然安装了多个内存条,但它们的容量不相等时,这种情况系统通常会采用单通道模式。
比如像下图插了3根内存条,A通道的内存容量为
32
+
16
=
48
32+16=48
32+16=48GB,B通道为16GB。
这种情况下开机时一般会友好提示一下,比如:
警告:各通道安装相同容量的内存能够最大限度发挥内存的性能。不这么做会遭到内存鄙视哦!
3.1 双通道模式
主板有两个内存通道时,在两通道的内存容量相等时会启用双通道模式。也就是说,要使用双通道模式,需要A、B通道的内存容量相等,比如可采用以下几种配置方式:
2根内存条
3根内存条
4根内存条
注:系统中最慢的内存条模块决定了内存通道速度。
3.3 Flex模式
Intel后来改进了技术,推出了弹性双通道内存技术(Intel Flex Memory Technology),它允许不同容量、不同规格甚至不成对的内存组成双通道,从而使用户搭配内存更加灵活。因此,在弹性双通道内存技术加持下,如今双通道可以支持两种工作模式,即对称双通道与非对称双通道。
对称双通道是指前面说的两个通道的内存容量要相等,非对称双通道是指两个通道的内存容量可以不相等。
比如在非对称双通道模式下,使用16GB + 24GB的内存条组合,那么24GB这条通道会被划分成16GB(双通道)和8GB(单通道),也就意味着8GB这部分容量无法享受到双通道的带宽提升效果。
附:内存相关文章
内存泄漏简介:不断消耗资源的吞噬者
不堪回首的“内存”
内存原理:计算机存储的核心奥秘
内存的升级换代之路