内存管理之DDR概念理解

内存概念整理

引言

本文主要记录哪些问题?
1. DDR 是个什么东西,然后如何演变的;
2. DDR 中容量怎么计算,涉及到的bank、rank、channel、die分别是为了解决什么问题的?
3. DDR 与SOC 地址线如何连接,DDR寻址过程具体是怎样的?

1. 物理内存

1.1 内存概念

所谓内存,是指计算机在运行时,需要使用的数据的存放介质;
- 数据读写速度快;
- 断电数据消失,通过一定频率的电流刷新维持内部状态,断电后状态会恢复初始,即数据消失;
- 价格相对于nand、emmc等闪存比较贵;
根据上述特性,在计算机系统中,该部分被用做运行内存,即上电后将数据从存储介质中拷贝到运行内存,提供给到CPU使用;
最小系统:CPU、DDR、EMMC为计算机的三个核心部件,即计算机要运行起来,必须依赖上述核心部件;

1.2 DDR 发展过程

Random-Access Memory,随机存储器,主要分为:

  1. static Random-Access Memory:不需要一直刷新,只要通电即可保证数据存在;
  2. dynamic Random-Access Memory:需要周期性的更新,才可保证数据一直存在;
    显然,静态比动态会更贵一些(体积大,功耗大),所以一般只是内置在SOC中作为cache使用;

目前常见的运行内存都是基于SDRAM技术基础上提升而来,简单罗列:

name存储器工作clkIO总线clk数据速率预取数据电压
SDR SDRAM1001001001bitNA
DDR SDRAM1001002002bitNA
DDR21002004004bit1.8V
DDR31004008008bit1.5V
DDR3L1004008008bit1.35V
LPDDR31004008008bit1.2V
DDR410080016008bit1.5V
LPDDR410080016008bit1.2V

速率提升主要体现在如下两个方面:

  1. clk上升沿和下降沿都取数据,数据传输是工作频率的2倍;
  2. IO总线上一次预取2、4、8bits的数据,则IO总线频率是记忆存储芯片工作频率的N倍;

PS: 上述频率只是说明比例关系,而非仅支持该频率
在这里插入图片描述
大体是这么个逻辑:
在这里插入图片描述

1.3 DDR 内部逻辑结构组成

单位描述描述容量(bit)
Channel使用相同的行列地址,并联操作根据容量有1~2个Die,目前接触到的用于数据线匹配,可以支持两个ch各自16bit组成32bit
rank满足SOC连接的数据线叫做一个rank,一个device 内部有更多bits可供选择,则叫做2 rankrow * col * bank * IO用于扩容
DDR Device实际贴片的产品row * col * bank * IO * ch * rank实际肉眼可见的IC
存储阵列一个行列阵,包含r行c列个存储单元row * col通过行列可以确定唯一存储单元,根据spec不同而有X8、X16
存储单元最小存储单元X8、X16与一个地址对应
预取位宽DDR3/4技术支持一次取8bittrow * col * bank这个理解为1.2小节中最后一张图
晶圆(Die)封装容器row * col * bank * IO,LPDDR4 大多为8Gbit需要使用CS选择使能

对应如下图示:
在这里插入图片描述

1.4 地址线的计算

要理解上述概念,还需要实际确认两个概念:

  1. 容量如何组成;
  2. 如何寻址;

地址线的组成,按照4GB 容量、32根DQ线、DDR4标准来看:

  1. 4GB = 32Gbit , 一次取32bits数据,由于DDR4一次可以预取16bit数据,需要2个channel或者2颗DDR device,则划分为2^30个地址,理论需要30根地址线;
  2. 由于行列地址线复用,则可以提供 行 * 列 * bank相当于29根地址线,实际有16 + 3 = 19根地址线 ,提供512Mbit 容量,则还差一位;
  3. 最后一根地址线由CS信号充当这个角色;

容量:

  1. 32bits DQ,对于DDR3则需要4个(可能存在4个单channel或者2个双channel),对于DDR4则需要2个(可能存在2个单channel、或者1个双channel)
  2. 则地址分了组,一组32bits,4Bytes,所以还需要 容量/4 再取一个log2,这些就划分在row 、 col、 bank 、CS(rank、cahnnel、die都体现在这里);

我们常说的8bit、16bit是指的一颗DDR的数据线(DQ),则一般和32bits(目前接触到的都是32bits)的SOC组合的话,需要4片8bit或者2片16bit或者1片32bit,即对于SOC来讲,他认为自己读取到的就是1片DRAM

1.5 寻址过程

  1. 逻辑控制核心初始化,mode register配置;这个配置不做过多了解;
  2. 行有效RAS,确认如下信息:
    1. 片选CS
    2. bank地址
    3. 行地址A0~An
  3. 列有效CAS,确认如下信息:
    1. 地址线与行地址线复用A0~An
    2. 片选CS、bank地址仍在
    3. 读写命令通过WE信号确认;
      则可确认我们所需要的地址;

两个例子:

  1. 一个DDR3L的组成结构:
    在这里插入图片描述

在这里插入图片描述

  1. 一个LPDDR4的组成结构:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2. 总结

经过整理本部分内容,后续可以处理哪些问题?

  1. 某款SOC 和 某款DDR是否可以搭配:
    1. 规格是否支持?即支持协议版本?
    2. 是否支持多channel、多die?
    3. 频率是否支持?
  2. 某款SOC 和 某款DDR需要如何搭配:
    1. 确认SOC DQ线路和DDR的规格;
    2. 主要是4 * 8bit? 2 * 16bit? 如果支持多channel则可以减少一些连接;
      实质主要是各种信号连接做在哪一层的问题;
  3. 某款SOC最大能够支持多少的mem,从地址线这里就已经限制死了;

update 于 2020.08.04

  • 5
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DDR3内存条(Double Data Rate 3)是一种常见的电脑内存条,用于计算机系统中存储和传输数据。DDR3内存条的电路图描述了内存模块的布局和连接方式。 DDR3内存条的电路图包含以下主要组成部分: 1.内存芯片:DDR3内存条通常具有多个内存芯片,这些芯片是存储数据的主要位置。每个内存芯片通常由数百万个存储单元组成,每个存储单元可以存储一个位的数据。内存芯片被组织成不同的存储组,同时具有单个读写线和多个数据线。 2.总线:内存总线是内存芯片和计算机系统之间数据传输的通道。它包括多个位线和复位线,用于控制数据的读写和同步。总线的宽度通常决定了内存传输速度的快慢。 3.时钟生成电路:DDR3内存条需要时钟信号来同步数据的读写操作。时钟生成电路负责产生内存条所需的时钟信号,并确保内存条和计算机系统之间的数据传输时间一致。 4.控制器:内存控制器是连接内存条和计算机系统的关键组件。它负责解码和执行来自计算机系统的读写指令,并通过总线将数据传输到内存芯片。 5.电源管理电路:DDR3内存条通常具有自己的电源,用于提供所需的电能。电源管理电路包括供电系统和电源管理芯片,用于监控和调整内存条的功耗。 通过理解DDR3内存条的电路图,我们可以更好地了解内存条工作的原理和性能。这有助于我们对内存选择和置进行更准确的判断,以满足我们计算机系统的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值