DDR的相关概念


这里介绍DDR相关概念,不涉及DDR2、DDR3和DDR4之间的区别!

1 存储概念

DRAM全称Dynamic Random Access Memory,翻译过来为动态随机读取存储器。所谓随机,指是“想存哪个位置,就存哪个位置”,听起来很自由,很灵活。所谓动态,指的是保存数据过程中,需要不断的补充电量,听起来很耗电,很费劲。但是相比SRAM,DRAM结构简单,得到了广泛应用。

存储,结合生活,往冰箱存放酸奶,我们可以看到存储要有3个关键动作:

  1. 酸奶放哪了,你得知道。如果不知道放哪了,酸奶就跟丢了一样。这个过程,映射到电子领域中,称为“寻址”。

  2. 存储酸奶、取出酸奶。你需要先走到某冰箱跟前,拉开某层抽屉,在具体某个位置,拿出酸奶,这个过程,映射到电子领域中,称为“读/写”

  3. 酸奶放到那个位置,在需要的时候,得还能吃。这个过程,映射到电子领域中,称为“数据保存”。

2 逻辑地址与物理地址

当从存储介质中读取数据时,需要提供读数据的地址;在写入数据时,除地址外还需提供写数据。由用户提供的地址,一般称为“逻辑地址”(logical address)。逻辑地址在传输给 DRAM 前,会转换为物理地址(Physical address 译注:转换工作通常由 MMU 完成)

3 物理层级结构

DDR的物理层级结构可以分为:BankGroup->Bank->Row->Column。

举例时间:一个 DRAM 芯片好比就是一个装满着文件柜的建筑。
BankGroup 地址用于找到楼层
Bank 地址用于找到你所需的那个文件柜
Row 地址用于在这个文件柜里找到你所需的抽屉
Col 地址则用来标记抽屉里第几份文件是你需要的

如下图,具体到某行某列的小格,就是最基本的存储单元,一般可以存储4-16bit数据。

在这里插入图片描述
而在更低的层次上,每个比特实际上由一个保持电荷的电容,以及一个用作开关的晶体管组成。

DRAM 协议规定了列数据位宽,包括 4 bit,8 bit 和 16 bit 三种,DRAM 也因此分为三类:x4,x8 以及 x16 。x16DRAM 有2个BankGroup,每个BankGroup有4个Bank。

4 RANK概念

DRAM 中有 single/Dual/Quad Rank 等术语。Rank 是 DRAM 中的最高层次的逻辑单元,一般用于增加整个系统的存储容量。

我们先了解一下DDR数据存取,以64bits数据线为例,CPU每次从内存里面存读数据都是一次64bits,而我们知道内存颗粒(SDRAM)一般没有64bits数据线的,大多为4bits,8bits或16bits。如果每个颗粒是8bits位宽,那么为了凑够CPU访问所需的64bits,那么就需要8个颗粒凑在一起,这八个颗粒组成一组,它的名字就叫rank。

理解Rank概念,通过以下例子对比就可以明确。

4.1 Rank (Depth Cascading)

比如说你需要 16Gb 存储,根据市场上的供应情况、价格以及你自己口袋里的银子,你可能会选择单个 16Gb 的芯片,那么此时你拥有的就是 Single Rank 的系统,因为你只需要单个片选信号(CS_n,毕竟你只有单个 chip),就可以读取整个 16Gb 空间。

你也可以选择两个单独的 8Gb 的颗粒来组成 16Gb 空间,这两个颗粒一起焊在一块 PCB 上,一般来说这比单个 16Gb 的颗粒要便宜。此时,这两个颗粒共享同一组地址与数据总线,因此你需要控制 2 个片选信号来分时选中这两个颗粒,此时即为 Dual Rank。

[备注] 你可能会遇到另一种形式的 Dual Rank DDR——Dual-Die Package,即 DDP。DDP 将两个 DDR 颗粒封装在一起,此时你看见的就只有单个芯片了,但其实这两个颗粒还是共享总线,是一种 Dual Rank 器件。
在这里插入图片描述

4.2 Width Cascading

再举个多芯片系统的例子,但与 RANK 无关。假设你需要一个 8Gb 存储,并且你的借口是 x8 位宽的,即位宽为 8 bit。此时,你可以选择单个 8Gb x8 的颗粒,或者两个’位宽串联‘的 4Gb x4 的颗粒。在位宽串联(Width Cascading)模式中,两个颗粒连接到同一个片选信号、地址以及数据总线。但不同的是,连接至数据总线的不同部分,在下图中,第一个 x4 颗粒连接到 DQ[3:0],而第二个颗粒则连接至 DQ[7:4]。(译注:此时两者都是 single rank )。
在这里插入图片描述

4.3 总结

总结来说就是,地址串联就是多rank,数据串联不是多rank!

以上仅为个人理解,如有错误,还请评论指正!

5 Page size

在这里插入图片描述
example: if DDR is 512Mb * 16 /8
COLBITS = 10, A0-A9 be used for cloumn address.
    ORG = 16 , each bank’s datas bit 16.
    pagesize = 1024 * 16 / 8 =2k.

6 DDR 子系统

在本节中,我们将讨论 ASIC 或者 FPGA 与 DRAM 通信时所需的系统组件,由 3 部分组成:
DRAM
DDR PHY
DDR Controller(译注:一般简称为 MC,即 Memory Controller)

在这里插入图片描述
上图中的信息量很大,让我们一点点拉扯来看:

一般来说,DRAM 是一个焊接在 PCB 上的独立芯片,而 PHY 与 MC 则是 FPGA 或者 ASIC 用户逻辑的一部分
用户逻辑与 MC 之间的接口是由用户定义的,并没有被标准化
用户逻辑向 MC 发出读写命令时,其中的地址使用的是逻辑地址
MC 再将逻辑地址转换为物理地址,将用户逻辑的命令转换后向 PHY 发出
MC 与 PHY 之间采用标准化接口进行通信,一般为 DFI (DDR PHY Interface),DFI 标准可从以下链接得到 http://www.ddr-phy.org/
PHY 将 MC 的命令转换为具体的底层信号,驱动 DRAM 的物理 IO 接口
PHY 与 DRAM 之间的接口由 JEDEC 标准化
由此看来,MC 好比是读写 DDR 的大脑,而 PHY 则是做出反应的肌肉。

7 参考文章

1.译文: DDR4 SDRAM - Understanding the Basics(上)
2.译文: DDR4 SDRAM - Understanding the Basics(下)
3.一文读懂DDR4工作原理
3.learning ddr pagesize calculate

  • 5
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值