文章目录
1. DDR中的通道(Channel)概念
关于 DDR 通道,首先要解释物理通道和逻辑通道的区别。物理通道指的是硬件上的独立线路,而逻辑通道可能涉及多通道架构如何提升带宽。需要提到通道的位宽,比如每个通道64位,双通道就是128位,这样带宽翻倍。同时,通道的独立性也很重要,比如不同通道可以同时操作,提升效率。
此外,通道的概念主要是针对单次传输数据量而言的,现在的 cpu 一般也就 64 位,那么双通道的内存条(128位)有什么价值,其实主要是通道间的 interleave(乒乓效果、减少等待,一次还是传输64位,但是在传输第一个64位后,第二个64位已经可以准备好)。
1.1 DDR Channel 与 DDRC
一个主板上可能有多个插槽,用来插多根内存。这些槽位分成两组或多组,组内共享物理信号线。这样的一组数据信号线、对应几个槽位(内存条)称为一个channel(通道)。简单理解就是DDRC(DDR控制器),一个通道对应一个DDRC。
1.2 DIMM 内存插槽
DIMM(Dual Inline Memory Module,双列直插内存模块)是主板上的一个内存插槽。一个 Channel 可以包括多个DIMM。它是在单列直插存储器模块(single inline memory module,SIMM)的基础上发展起来的,SIMM 提供 32 位数据通道,而 DIMM 则提供了64位的数据通道。
与SIMM不同的是DIMM的金手指两端不像SIMM那样是互通的,它们各自独立传输信号,因此可以满足更多数据信号的传送需要。
1.3 物理通道的定义
通道是CPU与内存之间的独立数据传输路径,每个通道包含完整的信号线(数据线、地址线、控制线)。
位宽:每个通道的位宽通常为 64位(现代DDR标准),双通道则为 128位,以此类推。
带宽公式:
1.3.1 多通道的作用
并行性:多个通道可同时传输数据,提升带宽和效率。
独立性:每个通道可独立操作不同内存颗粒(如双通道操作两个DIMM),减少访问冲突。
信号线分配:每个通道需独立的:
数据线(DQ):传输实际数据。
地址/命令线(CA):传输行地址(Row)、列地址(Column)、命令(Activate/Read/Write等)。
时钟(CLK):同步信号。
DDR4:
- 单channel:由64个DQ、1个clk、1个Ma、1个Dqs组成。
- 双channel:由128个DQ、2个clk、2个Ma、2个Dqs组成。
- 四channel:由256个DQ、4个clk、4个Ma、4个Dqs组成。
DDR5:
- 单channel:由64个DQ、1个clk、1个Ma、1个Dqs组成。
- 双channel:由128个DQ、2个clk、2个Ma、2个Dqs组成。
- 四channel:由256个DQ、4个clk、4个Ma、4个Dqs组成。
其中,DQ 代表数据线路,clk代表时钟线路,Ma 代表地址线路,Dqs代表数据时钟线路。
1.4 通道的硬件实现
- 信号线分配:每个通道需独立的:
- 数据线(DQ):传输实际数据。
- 地址/命令线(CA):传输行地址(Row)、列地址(Column)、命令(Activate/Read/Write等)。
- 时钟(CLK):同步信号。
1.5 多核系统的DDR通道分配策略
- 地址映射决定通道路由:
CPU发出的物理地址通过高位地址(如A[31:28]
)选择目标DDR控制器和通道。
示例:若系统有 2 个DDR 控制器(Channel 0 和 Channel 1),地址位A[31]
可能用于区分通道:
A[31]=0
→ Channel 0(地址范围0x0000_0000–0x7FFF_FFFF
)A[31]=1
→ Channel 1(地址范围0x8000_0000–0xFFFF_FFFF
)多核并行访问:
不同核心访问不同地址时,CI-700根据地址的高位将请求路由到不同的DDR控制器,实现通道级并行。
推荐阅读:
https://flylib.com/books/en/3.171.1.58/1//1000/
https://www.cadence.com/en_US/home/tools/silicon-solutions/protocol-ip/denali-memory-interface-and-storage-ip/ddr-phy-and-controller/ddr5-ddr4-ddr3-phy-controller.html