【DRAM存储器十五】DDR介绍-关键技术之DLL和prefetch

news2024/10/6 18:23:48

👉个人主页:highman110

👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 

参考资料:《镁光DDR数据手册》 

目录

DLL

预取

DDR SDRAM的几个新增时序参数解析


DLL

        DLL,延迟锁相环:片上DLL是颗粒端输出DQ和DQS与全局时钟CLK同步的关键部件,从上面的镁光DDR4接口框图看到,外部全局时钟经过DLL延迟锁定后生成了一个与外部时钟同步的内部时钟,颗粒使用这个内部时钟来驱动DQ和DQS,以此获得全局同步。那为什么需要增加一个DLL呢?不能直接使用这个外部全局时钟去驱动颗粒的DQ和DQS输出吗?显然不可以,如下图所示,CKext为外部全局时钟输入,CKint为数据输出的内部驱动时钟,从CKext到CKint需要经过CK buffer和颗粒内部走线的延时,这个延时为D,在加上从CKint驱动有效,到数据DQext输出电平跳变,又有一个DQ driver的延时,所以CKext的跳边沿到DQ跳变沿的延时为:D+DQ driver的延时,这就不同步了。

        所以需要使用DLL,将CKint与CKext同步对齐起来,下图红框中就是DLL的延迟时间,延迟时间为:一个外部时钟周期Tck-D。CKint与CKext同步之后,DQext也大致与外部时钟同步了(要求DQ driver的延时比较小)。

 

预取

        预取prefetch:预取是DDR SDRAM新引进的技术。内存阵列的核心存储元件是电容,而电容的充电、放电是需要时间的,这就注定了存储cell的核心访问频率无法做得很高。DDR的数据在IO时钟的上升沿和下降沿各能传输一次,是SDR的两倍,若要保证两倍的数据输出量,又要保持核心频率不变,只能通过加倍内部数据传输位宽的方式,使存储阵列一次准备好2n bit(n=DQ位宽)的数据。如下所示为x4 DDR SDRAM颗粒的框图,外部数据DQ位宽为4,内部读锁存器位宽为8,也就是在给定行列地址后,内部一次性传输8bit数据,那它是怎么做到一次性能传输8比特数据的呢?我们可以看到下图存储阵列中每个bank的组成:

        每个bank为4096 x 512 x 8,其中4096为阵列字线数,由12根行地址线解码后进行选择,512为阵列位线数,由9根列地址线解码后进行选择,8表示以上字线和位线选中后输出数据的位宽,在物理上这个具体怎么做的我不是很清楚,有如下两种猜测:

        1、一个是纵向的,4096 x 512 x 8表示8张4096行512列的阵列叠在一起,如下图,选中字线和位线后,8张叠起来的阵列各输出1bit数据。

        2、一种是横向的,4096 x 512 x 8只有一张阵列,字线4096根,位线512 x 8根,但是列地址解码后是按8根位线一组进行选中输出,一次性输出输出8bit数据。

        以上两种结构在逻辑上都能讲通,具体究竟物理上怎么做的还请路过的大佬指点指点。

        另外提一句,有一些文章提到了芯片位宽和configuration的一些说法,比如下图:

        这里澄清一下,别把这东西搞复杂了,芯片位宽就是指的数据线DQ有几根,x4、x8、x16指的就是芯片有4根、8根、16根DQ线,所谓的configuration,也不要把他翻译成什么配置模式了,他就是一种产品的不同形态,比如我们常说的一台电脑插了多少G的内存,这就是一种configuration,在DDR芯片中这个配置指的就是芯片配了多少根DQ线,就这么简单,不要把这个x4、x8、x16硬与内部存储阵列的数量扯起来,他们之间可能有一定的关系(如果是我上面说的那种纵向结构,那每个bank的存储阵列数量=DQ位宽 * 预取倍数),也可能没有关系(如果是我上面说的那种横向结构,那就没关系,DQ再宽,预取再多,那也是一张阵列),这是两个概念。另外再说一下颗粒容量的表示方式,比如一个4Gb的颗粒可以表示为:1024 Meg x 4、512 Meg x 8、256 Meg x 16,有的文章将这种表示解释为,前面的数字表示颗粒能寻址的所有存储单元数量,后面的数字表示单个存储单元的存储容量,这种解释我不太理解,一个存储单元不是一个电容吗?一个电容要做到存4bit、8bit、甚至16bit的数据,这显然不合理,应该说这个存储单元只是逻辑上的概念,实际物理上他就是有多个电容,这组电容的寻址是共享的,输出是分开的。

        另外,突发长度burst length和预取有一定的关系,下表为各代DDR支持的突发长度和预取数:

SDRAM generation

SDR

DDR

DDR2

DDR3

DDR4

DDR5

Burst length

1,2,4,8,full page

2,4,8

4,8

8

8

16

Prefetch

1n

2n

4n

8n

8n

16n

        从上表可以看到,SDRAM支持的最小突发长度就等于预取倍数,突发是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(应该不能说是存储单元的数量,应该是列地址的数量,一个列地址对应多个存储单元)的数量就是突发长度(SDRAM),在DDR SDRAM中突发长度指连续传输的周期数,如DDR中,BL=2时,就是一次突发传输2*DQ位宽比特数据,只需要一次预取,BL=4,就是一次突发传输4*DQ位宽比特数据,需要两次预取。很显然,由于有一次预取就能得到2*DQ位宽比特数据的限制,BL=1就意味着要丢掉一半数据,所以DDR一般不支持BL=1。DDR3支持BC4,保留前面4个burst,后面4个burst内容被mask掉,这是个特例,但是从本质上来说,它还是一次性取了8n的数据。另外,full page这种突发模式在常规的内存应用中很少用到,所以后面的DDR规范干脆把这种模式取消了。

        最后放一张网上流传甚广的图加深下对预取的理解:

DDR SDRAM的几个新增时序参数解析

 

        上图为读操作的数据输出时序图。从前面的DDR框图分析我们知道,DQ和DQS都是在经DLL同步后的时钟CK驱动下输出的,理论上所有DQ、DQS与外部系统时钟CK都是完全同步对齐的,但这仅仅是理论上,实际上经DLL生成的CK与外部时钟就可能有微小偏差,同时不同的DQ、DQS的颗粒内部走线也会有所差别,使得从输出驱动器输出到信号电平出现在外部IO上出现skew,于是就需要规范一些时序参数,厂家生产的颗粒skew不能超过这些参数的要求,如:

        tDQSCK:表征DQS边沿相对CK边沿的偏差,理论上改值应为0,实际上DQS可能提前CK跳变,也可能滞后CK跳变,滞后好理解,就是内部CK在输出驱动器驱动DQS跳变后,DQS跳变电平要经过内部走线延迟才出现在IO上,那提前跳变怎么理解呢,我的理解是DLL生成的内部CK比外部系统CK相位提前了,才导致内部CK驱动的DQS也提前了。此参数单位为ns。

        tAC:表征所有DQ边沿相对CK边沿的偏差,这个参数的道理和上面的基本一样。此参数单位为ns。

        tRPRE:DQS读preamble,在读数据输出前DQS拉低一段时期,用来表示数据即将输出,通知接收端做好准备,单位为tCK,DDR里一般为1个tCK。

        tRPST:DQS读postmble,在读数据的最后一笔数据输出的同时,拉低0.5个tCK,用来表示本次数据传输完毕。

        上图是写数据输入的时序。

        tDQSS:初代SDRAM写命令和数据输入是在同一个时钟上升沿生效的,DDR不一样了,写命令后要等tDQSS间隔后才能数据才能输入,正常是1个tCK,最小0.75tCK,最大为1.25tCK,太小可能导致写入错误(内部控制逻辑还没准备完毕),太大则影响总线效率。

        tWPRES:DQS write preamble setup time,最小值为0ns。

        tWPRE:DQS write preamble,道理与tRPRE类似,最小值为0.25tCK。

        tWPST:DQS write postmble,道理与tRPST类似,一般为0.5tCK。

        DDR的介绍就到这里,接下来开始DDR2,敬请期待。 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1091023.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Centos下编译ffmpeg动态库

文章目录 一、下载ffmpeg安装包二、编译ffmpeg三、安装yasm 一、下载ffmpeg安装包 下载包 wget http://www.ffmpeg.org/releases/ffmpeg-4.4.tar.gz解压 tar -zxvf ffmpeg-4.4.tar.gz二、编译ffmpeg 进入解压的目录 cd ffmpeg-4.4编译动态库 ./configure --enable-shared…

MyBatisPlus之基本CRUD、常用注解

文章目录 前言一、MyBatisPlus简介1.简介2.特性 二、基本CRUD1.依赖2.搭建基本结构3.BaseMapper4.使用插入删除(1)通过id删除记录(2)通过id批量删除记录(3)通过map条件删除记录 修改查询(1&…

python 爬虫与协同过滤的新闻推荐系统 计算机竞赛

1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python 爬虫与协同过滤的新闻推荐系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖&…

opencv跨平台arm交叉编译之ubuntu

目录 1. 安装交叉编译工具链2. 安装依赖3. 配置工具链3.1 新建build目录3.2 安装cmake-gui3.3 工具链配置界面进行配置3.3.1 终端输入以下命令3.3.2 点击Configure,弹出编译方式选择对话框:3.3.3 点击Next3.3.4 点击Finish3.3.5 点击Configure。3.3.6 Ge…

SAP PP cs62 提示 输入更改号 - BOM 有历史需求

以上是业务操作人员的 账户 但是IT aLL 这边是warning 不是error 遂去查OSS suim 找 C_STUE_NOH权限对象 赋予权限后 解决了

交通物流模型 | T-GCN:用于交通流预测的时序图卷积网络

交通物流模型 | T-GCN:用于交通流预测的时序图卷积网络 为了同时捕获空间和时间依赖性,本文提出了一种新的基于神经网络的交通流预测方法——时间图卷积网络(T-GCN)模型,该模型将图卷积网络(GCN)和门控循环单元(GRU)相结合。具体来说,GCN用于学习复杂拓扑结构以获取空间相关…

SystemVerilog Assertions应用指南 第一章(1.22章节 and运算符)

1.22“and”构造 进制运算符“and”可以用来逻辑地组合两个序列。当两个序列都成功时整个属性才成功。两个序列必须具有相同的起始点,但是可以有不同的结束点。检验的起始点是第一个序列的成功时的起始点,而检验的结束点是使得属性最终成功的另一个序列成功时的点。 序…

接口自动化测试_L2

目录: 接口请求体-文件 文件上传接口场景使用 requests 如何上传接口请求体-form表单 ​​​​​​​什么是 FORM 请求如何使用?接口请求体-xml​​​​​​​xml响应断言 ​​​​​​​​​​​​​​什么是 XMLXML 断言XPath 断言XML 解析cookie处理…

网络安全渗透测试工具AWVS14.6.2的安装与使用(激活)

AWVS介绍 Acunetix Web Vulnerability Scanner(AWVS)是一款用于检测网站和Web应用程序中安全漏洞的自动化工具。它的主要功能包括: 漏洞扫描:AWVS能够自动扫描目标网站和Web应用程序,以发现各种安全漏洞,如…

水质在线监测解决方案:数据采集终端的应用

​ 随着社会的发展,河流、湖泊等水环境的保护日益受到关注。但是传统的人工采样检测水质的方法低效且监测数据不连续,无法实时全面掌握水质动态。采用水质在线监测系统,可以实时监测水质参数,并将数据通过无线网络实时传输,以便水务部门监控水质变化,并快速采取应对措施,保护水…

网工配置命令基础总结(2)----VRRP配置

目录 1.配置VRRP主备备份 2.配置VRRP负载分担 3.配置VRRP域BFD联动实现快速切换 VRRP 虚拟路由冗余协议 VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟网关设备的 IP 地址作为用户的默认…

推荐一款正在用的配音软件(免费)~

最近在做账号,遇到的最大的难题就是,口播的能力一般,用电脑收声以后,总有许多语气词,发音不标准或吞字的情况,而且念稿也是个非常消耗时间的事儿。身边的朋友给我推荐了悦音配音这款AI配音软件,…

向量化操作简介和Pandas、Numpy示例

Pandas是一种流行的用于数据操作的Python库,它提供了一种称为“向量化”的强大技术可以有效地将操作应用于整个列或数据系列,从而消除了显式循环的需要。在本文中,我们将探讨什么是向量化,以及它如何简化数据分析任务。 什么是向量…

appium---如何判断原生页面和H5页面

目前app中存在越来越多的H5页面了,对于一些做app自动化的测试来说,要求也越来越高,自动化不仅仅要支持原生页面,也要可以H5中进行操作自动化, webview是什么 webview是属于android中的一个控件,也相当于一…

GFD233A103 3BHE022294R0103 串行和并行通信的区别

GFD233A103 3BHE022294R0103 串行和并行通信的区别 串行通信和并行通信的关键区别在于,在串行通信中,一条通信链路用于将数据从一端传输到另一端。与并行通信相反,使用多个并行链路同时传输每位数据。 由于只有一条通信链路,串行…

到底什么是5G-R?

近日,工信部向中国国家铁路集团有限公司(以下简称“国铁集团”)批复5G-R试验频率的消息,引起了行业内的广泛关注。 究竟什么是5G-R?为什么工信部会在此时批复5G-R的试验频率? 今天,小枣君就通过…

win10取消ie浏览器自动跳转edge浏览器

建议大家看完整篇文章再作操作 随着windows10 日渐更新,各种不同的操作,规避IE浏览器跳转Edge浏览器的问题 算了,找了台云机装的server 有自带的IE 1.(失败)思路 协助Edge浏览器 管理员身份打开 PowerShell 一般e…

一个有趣的观点:用To C的思路来做To B

大数据产业创新服务媒体 ——聚焦数据 改变商业 在传统商业模式中,B端市场和C端市场被视为截然不同的两个领域,各自有各自的战略和运营模式。但随着技术的迅速发展和市场环境的变化,这两个领域之间的界限正在逐渐模糊。 尽管B端软件的目标客…

外卖跑腿系统的关键功能和技术要点

1. 用户注册和登录 首先,用户需要能够注册新账户并登录。以下是使用Python和Django框架的代码示例,展示如何创建用户注册和登录功能。 # Django视图代码 from django.contrib.auth import login, authenticate from django.contrib.auth.forms import…

需求评审如何一次过?

需求评审是产品经理一项绕不过去的工作,但对于产品新人来说,可能不是一件简单的事情,方案准备的是否充分,能否经受住项目其他成员的灵魂拷问,都极大的考验着产品经理的技能和抗压能力,今天就来说说如何做好…