本文主要是介绍DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided、Dimm,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
概览
1.概览
先从半导体生产开始,生产出来还没切割的叫晶圆(wafer)。切割出来还没封装的叫裸die(bare die)。封装好的叫颗粒(component)。做成内存条后叫模组(module)。下文我们也会按这样的称呼去区分。
2.Controller(内存控制器)
一开始内存控制器在主板上有独立的芯片;在英特尔微处理器的传统电脑上,其功能被集成在主板北桥上;但i7、i5等中央处理器上集成了内存控制器,以减少内存延迟。上面我们都是说cpu,当然也可以是fpga或者asic芯片。内存控制器可以通过phy与ddr相连,当然这些都有标准,可以看下面。关键是一个内存控制器也可以支持多个通道(所谓通道,其实是是正对cpu数据位宽而言的,你的cpu是64位数据线,那我这个ddr颗粒或者内存条也是64位,那就是单通道,如果,cpu是64位数据线,但是ddr颗粒或者内存条可以支持128位,那就是双通道。这里要注意俩个点:1.单个颗粒往往做不到64位那么大,所以需要内存条上多个颗粒,2.cpu总线就现在而言也没有128位那么多。)。
- 控制器和 PHY 通过称为 DFI 接口的标准接口相互通信。您可以从这里下载 DFI 规范。
- 然后 PHY 执行所有较低级别的信令并驱动到 DRAM 的物理接口。
- JEDEC 标准JESD79-49B 规范中规定了 PHY 和存储器之间的这种接口
3.Channel (通道)
通道的概念主要是针对单次传输数据量而言的,其实上面也提到,现在的cpu一般也就64位,那么双通道的内存条(128位)有什么价值,其实主要是通道间的interleave(乒乓效果、减少等待,一次还是传输64位,但是在传输第一个64位后,第二个64位已经可以准备好)。
4.Chip (ddr芯片、ddr颗粒)
5.Rank(Dual Rank vs Single Rank)
Rank也叫物理bank。Rank表达的是级联的概念,特别需要强调,rank这个概念在网上好多是错误和不准确的,由于半导体技术发展,可以在一个芯片里面就实现多个rank,所以区分rank不要以内存芯片的数量来区分rank。换句话说,如果一个内存条在PCB的两面都有芯片(双面贴片)他就一定是双rank吗,它仍然可以是单级、双级或四级的,这取决于这些芯片是如何设计的,下面是一个内存手册截图,他可以再一个内存芯片(chip)里面实现双rank,什么rank层级大于chip(Rank > Chip ),其实这种排序是不准确的,理解片面了。
当然站在内存条角度,也可以把凑成64位数据线所需要的内存颗粒叫做一个rank,如果一个内存条可以支持128位数据线带宽,那就叫
根据各种测试,我们发现单列内存和双列内存没有明显的区别。关键是与双列内存相比,单列内存配置上的 CPU 使用率总是更高 (10-25%)。如果使用较少的 CPU,那是因为 CPU 在等待 RAM 上浪费了一些时间。由于双列存储器需要两个地址周期来读取整个模块,因此它本质上较慢。
6.Bank
Bank
7.Sided(Dual Sided vs Single Sided)
双面”和“单面”有什么区别,纯粹的物理结构就是颗粒贴到几个面
8.Dimm(双列直插内存模块)
DIMM是Dual In-Line Memory Module的缩写。意思是内存条印刷电路板正反面均有金手指与主板上的内存条槽接触,这种结构被称为DIMM。于是内存条也有人叫DIMM条,主板上的内存槽也有人称为DIMM槽。
这篇关于DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided、Dimm的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!