资料来源

1.https://zhuanlan.zhihu.com/p/343262874

(1)主要讲DRAM刷新的内容: 为什么需要刷新(漏电流导致电容电荷的流失)? 刷新的本质(对存储数据的电容进行充电操作,防止表示数据 1 的电荷因为漏电流的原因随时间流失)?刷新的间隔(不能太长,也不能太短;太长不能保证数据正确性,太短影响正常读写操作)? DRAM刷新命令以及DRAM刷新时序参数(tREFI, tREFC)? DRAM超前延后刷新命令;

(2) 该处的刷新由memory controller和 DRAM 颗粒内部电路共同实现.MC 以发送刷新命令的方式通知 DRAM 颗粒进行刷新;DRAM 颗粒内部电路则负责进行刷新操作。

2. https://zhuanlan.zhihu.com/p/346528173

(1) 主要讲DRAM self refresh内容;”自“刷新,即无需控制器发出刷新命令(但是memory controller需要发出SRE命令,让DRAM进入self refresh模式),DRAM 基于内部的定时器进行定时刷新.自刷新与刷新同样是用于保持DRAM内的数据;

(2) 什么场景下,需要使用DRAM self refresh(如系统进入低功耗模式)?

(3) 多种self refresh模式以适应不同工作温度范围,高温会加大漏电流的影响,需要提升刷新频率(通过配置寄存器进行模式的选择)?

(4) 进入self refresh状态前,DRAM的状态? 参考DDR spec状态转换图可知,进入self refresh前,DRAM需处于idle状态; 进入self refresh状态后,可以停掉外部时钟,以减少功耗;但是,停掉的时钟必须在退出self refresh状态前重新启动并稳定;

3.https://zhuanlan.zhihu.com/p/262052220

(1) 主要讲解DDR的基础知识,比如rank, bank group, bank, row, col的概念;

(2) 补充:《数字电路技术基础-阎石》一书中有简单讲过一些DRAM的基础知识,其中,单管动态MOS存储单元的字线对应DDR spec中的row, 位线对应DDR spec中的col;在确定了待读取地址的 Bank group与 Bank 后(可以根据bank group与bank得到row信息),地址中的行部分将激活(activate)存储阵列中的一行(line),这被称为 Word line。在该行被激活后,其数据被从存储阵列中读出,写入 Sense Amplifiers。随后,DRAM 根据列地址从 Sense Amplifiers 中缓存的 Word line 再读取出属于该列的数据,这部分数据的长度与 DRAM 列数据位宽相同,称为 Bit line;

(3) page size的概念:指的是每一行中的 bit 数量。换句话说,是当一行被激活时,载入到 Sense Amps 的比特数量。假设列地址的位宽为 10bit,则每一行有 1k 个列。对于 x4 器件而言,每一行的 bit 数量为 1k x 4 = 4k bit(512B)。同理,x8/16 器件的 page size 分别为 1k/2k Byte.

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

4.https://zhuanlan.zhihu.com/p/268347945

(1) 主要讲述DDR4的一些命令与时序参数;

(2) ACTIVE:激活命令用于在访问之前打开某个 bank 中的某个 row(该处的访问指读写操作);与激活命令相关的常用时序参数共有 3 个:tRRD_S,tRRD_L 以及 tFAW;

  • tRRD_S:row-to-row delay--short,当向多个属于不同 bank group 的 bank 发送 ACT 命令时,ACT 命令之间需要满足 tRRD_S 长度的间隔;
  • tRRD_L:row-to-row delay--long,与 tRRD_S 的不同点在于当向多个属于同一个 bank group 的 bank 发送 ACT 命令时,ACT 命令之间需要满足 tRRD_L 长度的间隔;
  • tFAW:Four Activate Window,限制容纳至多四个 ACT 命令的窗口,在这段时间内最多只能发出四个 ACT 命令。当连续发送 ACT 命令时,ACT 命令之间一方面需要满足 tRRD_S/L ;另一方面,在发送四个 ACT 命令后,需要等待 tFAW 窗口结束,才能发送第五个 ACT 命令。

(3) REFRESH:为了确保存储在 SDRAM 中的数据不会丢失,存储控制器需要平均间隔 tREFI ,发送一次 REFRESH 命令。 但是在进行刷新之前,SDRAM 所有的 bank 需要进行 PRECHARGE 预充电,并空闲一段时间,这个时长称为 tRP(min) 。在发出 REFRESH 命令后,必须经过 tRFC(min) 的延迟,才能发出下一个命令(DES 命令除外)。

(4) READ:通用读时序 Read Timing,时钟-数据有效信号(Strobe)间的时序关系 Clock to Data Strobe relationship,数据-数据有效信号间的时序关系 Data Strobe to Data relationship;

  • CL (CAS latency)Column-Address-Strobe,当列地址在地址信号上就绪时,CL 是内部读命令与读数据第一个比特之间的延迟时钟周期。
  • AL (Additive Latency)AL 延迟允许紧跟激活命令后发出读命令,器件内部将读命令延迟 AL 个时钟周期后执行。
  • RL (Read Latency)总的读延迟,RL = AL + CL;
  • tCCD_S/L读取不同 bank 之间的延迟,和 tRRD_S/L 类似,访问不同 bank group 的 bank 相比属于同一 bank group 的延迟要小一点,为 tRRD_S(short);
  • tDQSCK(MIN/MAX):数据有效信号 strobe 上升沿相对于时钟信号 CK_t(上升沿)、CK_c(下降沿)所允许的延迟范围;
  • tDQSCK:数据有效信号 strobe 上升沿相对于时钟信号 CK_t(上升沿)、CK_c(下降沿) 的实际延迟;
  • tQSH:数据有效信号高电平脉冲脉宽;
  • tQSL:数据有效信号低电平脉冲脉宽;

(5) WRITE:与READ时序参数类似;

  • CWL(CAS Write latency):Column-Address-Strobe Write,写命令与第一个送出第一个写数据之间的延迟;
  • AL(Additive Latency): AL 延迟允许紧跟激活命令后发出写命令,器件内部将写命令延迟 AL 个时钟周期后执行。该项特性用于保持器件内部的高带宽与高速率
  • WL(Read Latency):总的写延迟,WL = AL + CWL;
  • tCCD_S/L:写入不同 bank 之间的延迟,和 tRRD_S/L 类似,访问不同 bank group 的 bank 相比属于同一 bank group 的延迟要小一点,为 tRRD_S (short);

5.https://zhuanlan.zhihu.com/p/348360737

(1) 主要讲解write leveling;

(2) write leveling作用:调整CK与DQS信号间相位,使DRAM处二者边沿对齐;

(3) write leveling过程:MC配置DRAM颗粒的mode register使其进入write leveling模式; 源端MC同步发送时钟信号 CK 和数据有效信号 DQS ,接收端DRAM处出现了偏差,一般来说时钟信号会更滞后一些。此时,从 DRAM 端返回的 DQ 值为 0,表示 DQS 上升沿时 CK 信号为低电平。源端 MC 根据 DQ 数值,继续加大 DQS 的延迟,直至 DQ 值为 1,此时 DQS 上升沿时 CK 信号为高电平。再略微将延迟调小,就捕捉到了 CK 的上升沿,记录此时的 DQS 延迟值,就完成了 DQS(数据)与 CK 的同步。

(4) write leveling关键时序:

  • tDQSS,tDSS,tDSH:此三者都是 write leveling 调整的最终目的。tDQSS 是 DQS 上升沿相对 CK 上升沿的偏差,DDR4 要求两者的偏差在 ±0.27 个 tCK 范围内,这也是 write leveling 精度的参照。tDSS,tDSH 分别是 DQS 信号下降沿相对于 CK 上升沿的建立和保持时间。建立或者保持时间的违例会导致 DQS 采样失败。
  • tWLMRD: write leveling 的专属参数。在 MC 配置 DRAM MR,使之进入 write leveling 模式后,经过 tWLMRD 后,MC 开始发出第一个用于 write leveling 的 DQS 脉冲.
  • tWLO/tWLOE:DRAM 在 DQS 采样 CK 值后,通过 DQ 返回采样值,这里需要注意的是,返回采样值是一个异步的操作。DRAM 会在采样后的 tWLO 时刻返回采样值。协议规定,DQ 的所有比特都会返回一个相同的值,但这些比特的跳变时间之间有一个偏差,这个偏差的最大值是 tWLOE。

6.https://zhuanlan.zhihu.com/p/397260462

(1) 关于DDR模型的内容(行为级模型,时序模型,信号完整性模型等),不再局限于DDR spec中的描述;

7.【未阅】https://zhuanlan.zhihu.com/p/401232961

8.【未阅】https://zhuanlan.zhihu.com/p/263080272

9.【未阅】https://zhuanlan.zhihu.com/p/261747940

【未完】【DDR系列文章收集】的更多相关文章

  1. ASP.NET MVC 系列随笔汇总[未完待续……]

    ASP.NET MVC 系列随笔汇总[未完待续……] 为了方便大家浏览所以整理一下,有的系列篇幅中不是很全面以后会慢慢的补全的. 学前篇之: ASP.NET MVC学前篇之扩展方法.链式编程 ASP. ...

  2. Grafana 系列文章(十三):如何用 Loki 收集查看 Kubernetes Events

    前情提要 IoT 边缘集群基于 Kubernetes Events 的告警通知实现 IoT 边缘集群基于 Kubernetes Events 的告警通知实现(二):进一步配置 概述 在分析 K8S 集 ...

  3. 【资料收集】OpenCV入门指南 系列文章

    <OpenCV入门指南>系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764 目录: 第一篇  安装OpenCV ...

  4. Go web编程学习笔记——未完待续

    1. 1).GOPATH设置 先设置自己的GOPATH,可以在本机中运行$PATH进行查看: userdeMacBook-Pro:~ user$ $GOPATH -bash: /Users/user/ ...

  5. jQuery插件库代码分享 - 进阶者系列 - 学习者系列文章

    这些天将原来在网上找的jQuery插件进行了下整理,特此将代码分享出来给大家. 见下图结构. 对目录结构进行了分类.这里是插件列表. 这里总共收集了20来个插件.还有下面未进行划分的. 下面是DEMO ...

  6. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片——多对多关系(上篇)

    在这章中,我们将学习如何创建一个管理图片的新实体,如何使用HTML表单上传图片文件,并使用多对多关系将它们和产品关联起来,如何将图片存储在文件系统中.在这章中,我们还会学习更加复杂的异常处理,如何向模 ...

  7. Linux 系统化学习系列文章总目录(持续更新中)

    本页内容都是本人系统化学习Linux 时整理出来的.这些文章中,绝大多数命令类内容都是翻译.整理man或info文档总结出来的,所以相对都比较完整. 本人的写作方式.风格也可能会让朋友一看就恶心到直接 ...

  8. 【合集】TiDB 源码阅读系列文章

    [合集]TiDB 源码阅读系列文章 (一)序 (二)初识 TiDB 源码 (三)SQL 的一生 (四)INSERT 语句概览 (五)TiDB SQL Parser 的实现 (六)Select 语句概览 ...

  9. 系列文章--一步一步学Silverlight2

    概述 由TerryLee编写的<Silverlight 2完美征程>一书,已经上市,在该系列文章的基础上补充了大量的内容,敬请关注.官方网站:http://www.dotneteye.cn ...

  10. netty源码分析系列文章

    netty源码分析系列文章 nettynetty源码阅读netty源码分析  想在年终之际将对netty研究的笔记记录下来,先看netty3,然后有时间了再写netty4的,希望对大家有所帮助,这个是 ...

随机推荐

  1. Java流程控制:用户交互Scanner、选择结构

    Java流程控制:用户交互Scanner.选择结构 用户交互Scanner Scanner类用于获取用户的输入 基本语法: Scanner s = new Scanner(System.in);s.c ...

  2. PostGIS之空间连接

    1. 概述 PostGIS 是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在 SQL 中运行空间查询 PostGIS官网:About PostGIS | PostGIS ...

  3. 腾讯云对象存储 COS搭建个人网站

    腾讯云对象存储 COS搭建个人网站,简单易操作,方便快捷.   只需要将你的网站资源上传即可,然后设置上你的自定义 CDN 加速域名,一个个人网站就上线啦!当然,你也可以不用设置自定义 CDN 加速域 ...

  4. Jmeter 常用命令 之 CLI模式

    一.Jmeter的非GUI模式命令(即CLI模式command line) 命令: 命令参数 命令释义 -n 设置命令行模式 -t 指定JMX脚本路径参数为:JMX脚本路径,若非当前目录需用全路径或相 ...

  5. django搭建简易blog

    目录 下载安装django 创建一个django项目 创建一个django应用 models.py urls.py views.py admin.py 配置应用到项目下 路由设置urls.py set ...

  6. mybatis_pagehelper_selectOne的SQL语句被莫名的增加分页相关设置,暂定解决办法

    在使用mybatis.以及其分页插件pagehelper时,原本的一个selectOne的sql语句被莫名(原因未知)的加上了分页相关,引起如下异常: exception is org.apache. ...

  7. ES-DSL

    GET index_name/_search{ "track_total_hits":true} 可以查询总记录数,不加只能展示最多10000条

  8. Nginx--logrotate日志切割打包

    1.系统是默认安装的,查看系统是否安装logrotate centos rpm -ql logrotate /etc/cron.daily/logrotate /etc/logrotate.conf ...

  9. GitLab能通过ssh克隆无法通过http克隆,也无法进行流水线,提示port 80: Connection refused

    问题记录:VM-Ubuntu20.04刚开始时使用NAT模式连接,后来改成桥接模式,改完之后原来使用docker启动的gitlab服务无法克隆,一直提示:fatal...没有远程库什么的,没解决后来删 ...

  10. case语法案例

    case语法案例 制作nginx启停脚本 1.条件: 2.思路: 3.脚本 添加删除openvppn用户的脚本 1.实现要求 2.具体脚本 case语法案例 制作nginx启停脚本 1.条件: 启动服 ...