DDR学习

文章详细介绍了DDR内存的基本组成和工作原理,包括CPU通过MemoryController到Channel,DIMM模块,双通道内存控制器的概念,以及DDR的双倍数据速率特性。内存层次从Channel到DIMM,再到Rank、Chip、Bank和Row/Column,解释了内存如何进行数据传输和存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一级标题DDR的基本组成和硬件原理

内存子系统从CPU到memory芯片的逐层关系为

在这里插入图片描述
Cpu出来后到Memory Controller出来后先到Channel,每个Channel都要有一组控制寄存器用于配置和操作memory芯片

DIMM

双列直插式存储器模块或双线存储器模块(Dual In-line Memory Module,简称DIMM)是指一系列由动态随机存取存储器(DRAM)组成的模块。DIMM通常是数颗至数十颗DRAM芯片焊接安装于一块已制作好电路的印刷电路板的形式,用于个人电脑、工作站、服务器。相比SIMM两边针脚相连在一起,DIMM两边针脚是独立的。

双通道内存控制器(Dual Channel)

双通道内存控制器(Dual Channel),动态随机存储器(DRAM)分别连接两个不同的总线(bus),让两个内存控制器并行访问它们,这样总线理论带宽提高一倍。在理论上可以有更多的信道被创建(为每一个DRAM单元创建单独信道将是理想的解决方案),但是由于线路数量、电容器、需要并行接入线路具有相同的长度,添加信道越多,设计越复杂。

DDR 定义:

DDR全称为Double Data Rate Synchronous Dynamic Random Access Memory,中文名为双倍数据速率同步动态随即存取存储器。
双倍速率是指数据信号DQ右DQS时钟上升、下降沿采样来说的,即一个时钟周期内传输两次数据,这也是与早期SDR(Single Data Rate)SDRAM的重要区别,(Single Data Rate)SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升沿采样的。
同步是指内存工作需要同步时钟,内部的命令和发送的与数据的传输都以同一个时钟为基准,由统一时钟边沿去采样即为同步。
动态是指DRAM需要周期地刷新(给存储电容充电)从而使电容保存的信息不丢失。DDR至少64ms整体刷新一次。而DDR读取操作也会存储电容的电量丢失,因此每次读操作后也需要有一个回写(刷新)操作。
随机访问指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。相对的,读取或写入顺序访问(SequentialAccess)存储设备中的信息时,其所需要的时间与位置就会有关系。随机访问带来的特点是读写速度快。

总结

主要是针对DDR的发展和原理进行了学习,主要集中在硬件的组成原理,其中涉及到Channel > DIMM > Rank > Chip > Bank > Row/Column,其组成如下图所示:
在这里插入图片描述

DIMM

Channel:一个主板上可能有多个插槽,用来插多根内存。这些槽位分成两组或多组,组内共享物理信号线。这样的一组数据信号线、对应几个槽位(内存条)称为一个channel(通道)。简单理解就是DDRC(DDR控制器),一个通道对应一个DDRC。CPU外核或北桥有两个内存控制器,每个控制器控制一个内存通道。内存带宽增加一倍。(理论上)

DIMM

DIMM(dual inline memory module)是主板上的一个内存插槽。一个Channel可以包括多个DIMM。

Rank

Rank是一组内存芯片的集合,当芯片位宽x芯片数=64bits(内存总位宽)时,这些芯片就组成一个Rank。一般是一个芯片位宽8bit,然后内存每面8个芯片,那么这一面就构成一个Rank(为了提高容量,有些双面内存条就有两个rank。在DDR总线上可以用一根地址线来区分当前要访问的是哪一组)。同一个Rank中的所有芯片协作来共同读取同一个Address(一个Rank8个芯片 * 8bit = 64bit),这个Address的数据分散在这个Rank的不同芯片上。设计Rank的原因是这样可以使每个芯片的位宽小一些,降低复杂度。

Chip

Chip是内存条上的一个芯片。由图中是由8个bank组成了一个memory device。

Bank

Bank是一个逻辑上的概念。一个Bank可以分散到多个Chip上,一个Chip也可以包含多个Bank。Bank和Chip的关系可以参考下面的图,每次读数据时,选定一个Rank,然后同时读取每个chip上的同一bank。

Row/Column组成的Memeory Array

Bank可以理解为一个二维数组bool Array[Row][Column]。而Row/Column就是指示这个二维数组内的坐标。注意读取时每个Bank都读取相同的坐标。
在这里插入图片描述
后续再补充DDR寻址相关内容学习笔记

参考文章

链接: link
链接: link

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值