DDR基本原理.pdf

上传人:ylj18****70940 文档编号:82066214 上传时间:2023-03-24 格式:PDF 页数:35 大小:4.72MB
返回 下载 相关 举报
DDR基本原理.pdf_第1页
第1页 / 共35页
DDR基本原理.pdf_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《DDR基本原理.pdf》由会员分享,可在线阅读,更多相关《DDR基本原理.pdf(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、目录 1 存储器.错误!未定义书签。存储器分类.错误!未定义书签。RAM(Randm Access Memory 随机存取存储器).错误!未定义书签。SRAM(Static RAM 静态 RAM).错误!未定义书签。DRAM(Dynamic RAM 动态 RAM).错误!未定义书签。SDRAM(Synchronous Dynamic Random Access Memory 同步动态随机存储器)错 误!未定义书签。DDR SDRAM(Double Data Rate SDRAM 双倍速率同步动态随机存储器)错误!未定义书签。RDRAM.错误!未定义书签。2 SDRAM 内存模组.错误!未定义书

2、签。物理 Bank.错误!未定义书签。芯片位宽.错误!未定义书签。3 SDRAM 内部结构.错误!未定义书签。逻辑 Bank.错误!未定义书签。内存容量.错误!未定义书签。DIMM 设计.错误!未定义书签。4 引脚定义.错误!未定义书签。5 基本操作与时序.错误!未定义书签。芯片初始化.错误!未定义书签。行选址.错误!未定义书签。列选址与读写命令.错误!未定义书签。读操作.错误!未定义书签。写操作.错误!未定义书签。突发长.错误!未定义书签。预充电.错误!未定义书签。刷新.错误!未定义书签。数据掩码.错误!未定义书签。形象的例子.错误!未定义书签。6 DDR SDRAM.错误!未定义书签。DD

3、R 基本原理.错误!未定义书签。DDR SDRAM 与 SDRAM 的不同.错误!未定义书签。差分时钟.错误!未定义书签。数据选取脉冲(DQS).错误!未定义书签。写入延迟.错误!未定义书签。突发长度与写入掩码.错误!未定义书签。延迟锁定回路(DLL).错误!未定义书签。DDR 系统学习资料 1 存储器 存储器是计算机系统中的记忆设备,用来存放程序和数据,是计算机系统中不可或缺的组成部分。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。1.1 存储器分类 按读写功能可分为 ROM 和 RAM 1.2 RAM(Randm Access Memory

4、 随机存取存储器)主要特点:(1)随机存取 当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。相对的,读取或写入顺序访问存储设备中的信息时,其所需要的时间与位置就会有关系(如磁带)。(2)易失性 当电源关闭时 RAM 不能保留数据。如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)。RAM 和 ROM 相比,两者的最大区别是 RAM 在断电以后保存在上面的数据会自动消失,而 ROM 不会。(3)高访问速度 现代的随机存取存储器几乎是所有访问设备中写入和读取速度最快的,取存延迟也和其他涉及机械运作的存储设备相比,也显得微不足道。(4)对静电敏感 正如其他精细的

5、集成电路,随机存取存储器对环境的静电荷非常敏感。静电会干扰存储器内电容器的电荷,引致数据流失,甚至烧坏电路。故此触碰随机存取存储器前,应先用手触摸金属接地。1.3 SRAM(Static RAM 静态 RAM)不要刷新,只要不掉电,数据可以一直保存,存取速度快,但结构复杂,价格昂贵,CPU 的缓存用的就是 SRAM。RAM 有两大类,一种称为 SRAM,速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如 CPU 的一级缓冲,二级缓冲。另一种称为 DRAM,保留数据的时间很短,需要不断地刷新;速度也比 SRAM 慢,不过它还是比任何的 ROM 都要快,但

6、从价格上来说 DRAM 相比 SRAM 要便宜很多,计算机内存就是 DRAM 的。1.4 DRAM(Dynamic RAM 动态 RAM)要不断刷新以保持数据,存取速度相对SRAM 较慢。PC 机的内存类型有 SDRAM、DDR SDRAM 和 RDRAM 三种。其中 DDR SDRAM 内存占据了市场的主流,而 SDRAM内存规格已不再发展,处于被淘汰的行列。RDRAM 则始终未成为市场的主流,只有部分芯片组支持,而这些芯片组也逐渐退出了市场,RDRAM 前景并不被看好。1.5 SDRAM(Synchronous Dynamic Random Access Memory 同步动态随机存储器)

7、同步是指工作时需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。1.6 DDR SDRAM(Double Data Rate SDRAM 双倍速率同步动态随机存储器)DDR 内存是在 SDRAM 内存基础上发展而来的,仍然沿用 SDRAM 生产体系。SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;DDR 内存则是一个时钟周期内传输两次次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR 内存可以在与 SDRAM 相

8、同的总线频率下达到双倍的数据传输率。1.7 RDRAM RDRAM(Rambus DRAM)是美国的 RAMBUS 公司开发的一种内存。与 DDR 和 SDRAM不同,它采用了串行的数据传输模式。数据存储位宽是 16 位,远低于 DDR 和 SDRAM的 64 位。但在频率方面则远远高于二者,可以达到400MHz 乃至更高。同样也是在一个时钟周期内传输两次次数据,能够在时钟的上升期和下降期各传输一次数据,内存带宽能达到 s。普通的 DRAM 行缓冲器的信息在写回存储器后便不再保留,而 RDRAM 则具有继续保持这一信息的特性,于是在进行存储器访问时,如行缓冲器中已经有目标数据,则可利用,因而实

9、现了高速访问。另外其可把数据集中起来以分组的形式传送,所以只要最初用 24 个时钟,以后便可每 1 时钟读出 1 个字节。一次访问所能读出的数据长度可以达到 256 字节。2 SDRAM 内存模组 我们平时看到的 SDRAM 都是以模组形式出现,为什么要做成这种形式呢这首先要接触到两个概念:物理 Bank 与芯片位宽。PC133 时代的 168pin SDRAM DIMM2.1 物理 Bank 传统内存系统为了保证 CPU 的正常工作,必须一次传输完 CPU 在一个传输周期内所需要的数据。而 CPU 在一个传输周期能接受的数据容量就是 CPU 数据总线的位宽,单位是 bit(位)。当时控制内存

10、与 CPU 之间数据交换的北桥芯片也因此将内存总线的数据位宽等同于 CPU 数据总线的位宽,而这个位宽就称之为物理 Bank(Physical Bank,下文简称 P-Bank)的位宽。所以,那时的内存必须要组织成 P-Bank 来与 CPU 打交道。当初 Pentium 刚上市时,需要两条 72pin 的 SIMM 才能启动,因为一条 72pin-SIMM 只能提供 32bit 的位 宽,不能满足 Pentium 的 64bit 数据总线的需要。直到 168pin-SDRAM DIMM 上市 后,才可以使用一条内存开机。下面将通过芯片位宽的讲述来进一步解释 P-Bank 的概念。不过要强调一

11、点,P-Bank 是 SDRAM 及以前传统内存家族的特有概念,在 RDRAM 中将以通道(Channel)取代,而对于像 Intel E7500 那样的并发式多通道 DDR 系统,传统的 P-Bank 概念也不适用。2.2 芯片位宽 已经讲到 SDRAM 内存系统必须要组成一个 P-Bank 的位宽,才能使 CPU 正常工作,那么这个 P-Bank 位宽怎么得到呢这就涉及到了内存芯片的结构。每个内存芯片也有自己的位宽,即每个传输周期能提供的数据 P-Bank 的需要,但这对技术的要 求很高,在成本和实用性方面也都处于劣势。所以芯片的位宽一般都较小。台式机市场所用的 SDRAM 芯片位宽最高也

12、就是 16bit,常见的则是 8bit。这样,为了组成 P-Bank 所需的位宽,就需要多颗芯片并联工作。对于 16bit 芯片,需要 4 颗(416bit=64bit)。对于 8bit 芯片,则就需要 8 颗了。以上就是芯片位宽、芯片数量与 P-Bank 的关系。P-Bank 其实就是一组内存芯片的集合,这个集合的容量不限,但这个集合的总位宽必须与 CPU 数据位宽相符。随着计算机应用的发展,一个系统只有一个 P-Bank 已经不能满足容量的需 要。所以,芯片组开始可以支持多个 P-Bank,一次选择一个 P-Bank 工作,这就 有了芯片组支持多少(物理)Bank 的说法。而在 Intel

13、 的定义中,则称 P-Bank 为行(Row),比如 845G 芯片组支持 4 个行,也就是说它支持 4 个 P-Bank。另 外,在一些文档中,也把 P-Bank 称为 Rank(列)。DIMM 是 SDRAM 集合形式的最终体现,每个 DIMM 至少包含 一个 P-Bank 的芯片集合。在目前的 DIMM 标准中,每个模组最多可以包含两个 P-Bank 的内存芯片集合,虽然理论上完全可以在一个 DIMM 上支持多个 P-Bank,比如 SDRAM DIMM 就有 4 个芯片选择信号(Chip Select,简称片选或 CS),理 论上可以控制 4 个 P-Bank 的芯片集合。只是由于设计

14、难度、制造成本、芯片组的配合等原因而没有这么做。注意:面数P-Bank 数,只有在知道芯片位宽的情况下,才能确定 P-Bank 的数量。3 SDRAM 内部结构 3.1 逻辑 Bank SDRAM 的内部结构简单地说就是一个存储阵列。因为如果是管道式存储(就如排队买票),就很难做到随机访问了。阵列就如同表格一样,将数据“填”进去,你可以它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)叫什么呢它就是逻辑 Bank(Logica

15、l Bank,下文简称 L-Bank)。L-Bank 存储阵列示意图 由于技术、成本等原因,不可能只做一个全容量的 L-Bank,而且最重要的是,由于 SDRAM 的工作原理限制,单一的 L-Bank 将会造成非常严重的寻址冲突,大幅降低内存效率。所以人们在 SDRAM 内部分割成多个 L-Bank,较早以前是 2 个,目前基本都是 4 个,这也是 SDRAM 规范中的最高 L-Bank 数量。到了 RDRAM 则最多达到了 32 个,在最新 DDR-的标准中,L-Bank 的数量提高到了 8 个。这样,在进行寻址时就要先确定是哪个 L-Bank,然后再在这个选定的 L-Bank 中选择相应的

16、行与列进行寻址。可见对内存的访问,一次只能是一个 L-Bank 工作,而每次与北桥交换的数据就是 L-Bank 存储阵列中一个“存储单元”的容量。在某些厂商的表述中,将 L-Bank 中的存储单元称为 Word(此处代表位的集合而不是字节的集合)。从前文可知,SDRAM 内存芯片一次传输率的数据量就是芯片位宽,那么这个存储单元的容量就是芯片的位宽(也是 L-Bank 的位宽),但要注意,这种关系 也仅对 SDRAM 有效。3.2 内存容量 显然,内存芯片的容量就是所有 L-Bank 中的存储单元的容量总合。计算有多少个存储单元和计算表格中的单元数量的方法一样:存储单元数量=行数列数(得到一个

17、L-Bank 的存储单元数量)L-Bank 的数量。在很多内存产品介绍文档中,都会用 MW 的方式来表示芯片的容量,M 是该芯片中存储单元的总数,单位是兆,W 代表每个存储单元的容量,也就是 SDRAM 芯片的位宽,单位是 bit。计算出来的芯片容量也是以 bit 为单位,但用户可以采用除以 8 的方法换算为字节(Byte)。比如 8M8,这是 一个 8bit 位宽芯片,有 8M 个存储单元,总容量是 64Mbit(8MB)。不过,MW 是最简单的表示方法。下图则是某公司对自己内存芯片的容量 表示方法,这可以说是最正规的形式之一。业界正规的内存芯片容量表示方法 我们可以计算一下,结果可以发现这

18、三个规格的容量都是 128Mbits,只是由于位宽的变化引起了存储单元的数量变化。从这个例子就也可以看出,在相同的总容量下,位宽可以采用多种不同的设计。3.3 DIMM 设计 为什么在相同的总容量下,位宽会有多种不同的设计呢 这主要是为了满足不同领域的需要。现在大家已经知道 P-Bank 的位宽是固定的,也就是说当芯片位宽确定下来后,一个 P-Bank 中芯片的个数也就自然确定了,而前文讲过 P-Bank 对芯片集合的位宽有要求,对芯片集合的容量则没有任何限制。高位宽的芯片可以让 DIMM 的设计简单一些(因为所用的芯片少),但在芯片容量相同时,这种 DIMM 的容量就肯定比不上采用低位宽芯片

19、的模组,因为后者在一个 P-Bank 中可 以容纳更多的芯片。比如上文中那个内存芯片容量标识图,容量都是 128Mbit,合 16MB。如果 DIMM 采用双 P-Bank+16bit 芯片设计,那么只能容纳 8 颗芯片,计 128MB。但如果采用 4bit 位宽芯片,则可容纳 32 颗芯片,计 512MB。DIMM 容 量前后相差出 4 倍,可见芯片位宽对 DIMM 设计的重要性。因此,8bit 位宽芯片是桌面台式机上容量与成本之间平衡性较好的选择,所以在市场上也最为普及,而高于 16bit 位宽的芯片一般用在需要更大位宽的场合,如显卡等,至于 4bit 位宽芯片很明显非常适用于大容量内存应

20、用领域,基本不会在标准的 Unbuffered 模组设计中出现。4 引脚定义 内存芯片要想工作,必须要与内存控制器有所联系,同时对于一个电气元件,电源供应也是必不可少的,而且数据的传输要有一个时钟作为触发参考。因此,SDRAM 在封装时就要留出相应的引脚以供使用。电源与时钟的引脚就不必多说 了,现在我们可以想象一下,至少应该有哪些控制引脚呢 我们从内存寻址的步骤缕下来就基本明白了,从中我们也就能了解内存工作 的大体情况。这里需要说明的是,与 DIMM 一样,SDRAM 有着自己的业界设计规范,在一个容量标准下,SDRAM 的引脚/信号标准不能只考虑一种位宽的设计,而是要顾及多种位宽,然后尽量给

21、出一个通用的标准,小位宽的芯片也许会空出一些引脚,但高位宽的芯片可能就全部用上了。不过容量不同时,设计标准也会有所不同,一般的容量越小的芯片所需要的引脚也就越小。(1)首先,我们知道内存控制器要先确定一个 P-Bank 的芯片集合,然后才 对这集合中的芯片进行寻址操作。因此要有一个片选的信号,它一次选择一个 P-Bank 的芯片集(根据位宽的不同,数量也不同)。被选中的芯片将同时接收或读取数据,所以要有一个片选信号。(2)接下来是对所有被选中的芯片进行统一的 L-Bank 的寻址,目前 SDRAM 中 L-Bank 的数量最高为 4 个,所以需要两个 L-Bank 地址信号(22=4)。(3)

22、最后就是对被选中的芯片进行统一的行/列(存储单元)寻址。地址线 数量要根据芯片的组织结构分别设计了。但在相同容量下,行数不变,只有列数会根据位宽的而变化,位宽越大,列数越少,因为所需的存储单元减少了。(4)找到了存储单元后,被选中的芯片就要进行统一的数据传输,那么肯定 要有与位宽相同数量的数据 I/O 通道才行,所以肯定要有相应数量的数据线引脚。现在我们就基本知道了内存芯片的一些信号引脚,下图就是一个简单的 SDRAM 示意图。图注:128Mbit 芯片不同位宽的引脚图(NC 代表未使用,-表示与内侧位宽设计相同)5 基本操作与时序 SDRAM 的内部结构 128Mbit(32M4)SDRAM

23、 内部结构 5.1 芯片初始化 在 SDRAM 芯片内部还有一个逻辑控制单元,并且有一个模式寄存器为其提供控制参数。因此,每次开机时主芯片都要先对这个控制逻辑核心进行初始化。关键的阶段就在于模式寄存器(MR,Mode Register)的设置,简称 MRS(MR Set),这一工作在主芯片的控制下进行,寄存器的信息由地址线来提供,地址线提供不同的 0/1 信号来获得不同的参数,在设置到 MR 之后,就开始了进入正常的工作状态。SDRAM 模式寄存器所控制的操作参数 图中相关参数将结合下文具体讲述 5.2 行选址 初始化完成后,要想对一个 L-Bank 中的阵列进行寻址,首先就要确定行(Row)

24、,使之处于活动状态(Active),然后再确定列。虽然之前要进行片选 和 L-Bank 的定址,但它们与行有效可以同时进行。行有效时序图 从图中可以看出,在 CS#、L-Bank 定址的同时,RAS(Row Address Strobe,行地址选通脉冲)也处于有效状态。此时 An 地址线则发送具体的行地址。如图中是 A0-A11,共有 12 个地址线,由于是二进制表示法,所以共有 4096 个行(212=4096),A0-A11 的不同数值就确定了具体的行地址。由于行有效的同时也 是相应 L-Bank 有效,所以行有效也可称为 L-Bank 有效。5.3 列选址与读写命令 行地址确定之后,就要

25、对列地址进行寻址了。但是,地址线仍然是行地址所用的 A0-A19,A11(本例)。在 SDRAM 中,行地址与列地址线是共用的。读/写的命令是怎么发出的呢其实没有一个信号是发送读或写的明确命令的,而是通过芯片的可写状态的控制来达到读/写的目的。WE#信号就是一个关键。WE#无效时,就是读取命令。SDRAM 基本操作命令 通过各种控制/地址信号的组合来完成(H 代表高电平,L 代表低电平,X 表示高低电平均没有影响)。此表中,除了自刷新命令外,所有命令都是默认 CKE 有效。对于自刷新命令,下文有详解。列寻址信号与读写命令是同时发出的。虽然地址线与行寻址共用,但 CAS(Column Addre

26、ss Strobe,列地址选通脉冲)信号则可以区分开行与列寻址的不同,配合 A0-A9,A11(本例)来确定具体的列地址。读写操作示意图 读取命令与列地址一块发出(当 WE#为低电平是即为写命令)然而,在发送列读写命令时必须要与行有效命令有一个间隔,这个间隔被定义为 tRCD,即 RAS to CAS Delay(RAS 至 CAS 延迟),也可以理解为行选通周期,这应该是根据芯片存储阵列电子元件响应时间(从一种状态到另一种状态变化的过程)所制定的延迟。tRCD 是 SDRAM 的一个重要时序参数,可以通过主芯片进行调整,但不能超过厂商的预定范围。广义的 tRCD 以时钟周期(tCK,Cloc

27、k Time)数为单位,比如 tRCD=2,就代表延迟周期为两 个时钟周期,具体到确切的时间,则要根据时钟频率而定,对于 PC100 SDRAM,tRCD=2,代表 20ns 的延迟,对于 PC133 则为 15ns。tRCD=3 的时序图 5.4 读操作 在选定列地址后,就已经确定了具体的存储单元,剩下的事情就是数据通过数据 I/O 通道(DQ)输出到内存总线上了。但是在 CAS 发出之后,仍要经过一定的时间才能有数据输出,从 CAS 与读取命令发出到第一笔数据输出的这段时间,被定义为 CL(CAS Latency,CAS 潜伏期)。由于 CL 只在读取时出现,所以 CL 又被称为读取潜伏期

28、(RL,Read Latency)。CL 的单位与 tRCD 一样,为时钟周期数,具体耗时由时钟频率决定。不过,CAS 并不是在经过 CL 周期之后才送达存储单元。实际上 CAS 与 RAS 一样是瞬间到达的,但 CAS 的响应时间要更快一些。为什么呢假设芯片位宽为 n 个 bit,列数为 c,那么一个行地址要选通 nc 个存储体,而一个列地址只需选通 n 个存储体。但存储体中晶体管的反应时间仍会造成数据不可能与 CAS 在同 一上升沿触发,肯定要延后至少一个时钟周期。由于芯片体积的原因,存储单元中的电容容量很小,所以信号要经过放大来保证其有效的识别性,这个放大/驱动工作由 S-AMP 负责,

29、一个存储体对应一个 S-AMP 通道。但它要有一个准备时间才能保证信号的发送强度(事前还要进行电压比较以进行逻辑电平的判断),因此从数据 I/O 总线上有数据输出之前的一个时钟上升沿开始,数据已传向 S-AMP,也就是说此时数据已经被触发,经过一定的驱动时间最终传向数据 I/O 总线进行输出,这段时间我们称之为 tAC(Access Time from CLK,时钟触发后的访问时间)。tAC 的单位是 ns,对于不同的频率各有不同的明确规定,但必须要小于一个时钟周期,否则会因访问时过长而使效率降低。比如 PC133 的时钟周期为,tAC 则是。需要强调的是,每个数据在读取时都有 tAC,包括在

30、连续读取中,只是在进行第一个数据传输的同时就开始了第二个数据的 tAC。CL=2 与 tAC 示意图 CL 的数值不能超出芯片的设计规范,否则会导致内存的不稳定,甚至开不了机,而且它也不能在数据读取前临时更改。CL 周期在开机初始化过程中的 MRS 阶段进行设置,在主芯片中可以对其进行调整,然后开机时通过 A4-A6 地址线对 MR 中 CL 寄存器的信息进行更改。不过,从存储体的结构图上可以看出,原本逻辑状态为 1 的电容在读取操作后,会因放电而变为逻辑 0。所以,以前的 DRAM 为了在关闭当前行时保证数据的可靠性,要对存储体中原有的信息进行重写,这个任务由数据所经过的刷新放大器来完成,它

31、根据逻辑电平状态,将数据进行重写(逻辑 0 时就不重写),由于这个操作与数据的输出是同步进行互不冲突,所以不会产生新的重写延迟。后来通过技术的改良,刷新放大器被取消,其功能由 S-AMP 取代,因为在读取时它会保持数据的逻辑状态,起到了一个 Cache 的作用,再次读取时由它直接发送即可,不用再进行新的寻址输出,此时数据重写操作则可在预充电阶段完成。5.5 写操作 数据写入的操作也是在 tRCD 之后进行,但此时没有了 CL(记住,CL 只出现在读取操作中),行寻址与列寻址的时序图和上文一样,只是在列寻址时,WE#为有效状态。数据写入的时序图 从图中可见,由于数据信号由控制端发出,输入时芯片无

32、需做任何调校,只需直接传到数据输入寄存器中,然后再由写入驱动器进行对存储电容的充电操作,因此数据可以与 CAS 同时发送,也就是说写入延迟为 0。不过,数据并不是即时地写入存储电容,因为选通三极管(就如读取时一样)与电容的充电必须要有一段时间,所以数据的真正写入需要一定的周期。为了保证数据的可靠写入,都会留出足够的写入/校正时间(tWR,Write Recovery Time),这个操作也被称作写回(Write Back)。tWR 至少占用一个时钟周期或再多一点(时钟频率越高,tWR 占用周期越多),有关它的影响将在下文进一步讲述。5.6 突发长 突发(Burst)是指在同一行中相邻的存储单元

33、连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度(Burst Lengths,简称 BL)。在目前,由于内存控制器一次读/写 的数据量就是 P-Bank 位宽,但是在现实中小于这个数量的数据很少见,所以一般都要经过多个周期进行数据的传输。上文讲到的读/写操作,都是一次对一个存储单元进行寻址,如果要连续读/写就还要对当前存储单元的下一个单元进行寻址,也就是要不断的发送列地址与读/写命令(行地址不变,所以不用再对行寻址)。虽然由于读/写延迟相同可以让数据的传输在 I/O 端是连续的,但它占用了大量的内存控制资源,在数据进行连续传输时无法输入新的命令,效率很低(早期的 FPE

34、/EDO 内存就是以这种方式进行连续的数据传输)。为此,人们开发了突发传输技术,只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。这样,除了第一笔数据的传输需要若干个周期(主要是之前的延迟,一般的是 tRCD+CL(对于读取,写时没有 CL 时间))外,其后每个数据只需一个周期的即可获得。非突发连续读取模式:不采用突发传输而是依次单独寻址,此时可等效于 BL=1。虽然可以让数据是连续的传输,但每次都要发送列地址与命令信息,控制资源占用极大 突发连续读取模式:只要指定起始列地址与突发长度,寻址与数据的读取自动进行,而只要控制好

35、两段突发读取命令的间隔周期(与 BL 相同)即可做到连续的突发传输。至于 BL 的数值,也是不能随便设或在数据进行传输前临时决定。在上文讲到的初始化过程中的 MRS 阶段就要对 BL 进行设置。目前可用的选项是 1、2、4、8、全页(Full Page),常见的设定是 4 和 8。顺便说一下,BL 能否更改与主芯片的设计有很大关系,不是每个主芯片都能像调整 CL 那样来调整 BL。某些芯片的 BL 是定死而不可改的,比如 Intel 芯片组的 BL 基本都为 4。另外,在 MRS 阶段除了要设定 BL 数值之外,还要具体确定读/写操作的模式以及突发传输的模式。突发读/突发写,表示读与写操作都是

36、突发传输的,每次读/写操作持续 BL 所设定的长度,这也是常规的设定。突发读/单一写,表示读操作是突发传输,写操作则只是一个个单独进行。突发传输模式代表着突发周期内所涉及到的存储单元的传输顺序。顺序传输是指从起始单元开始顺序读取。假如 BL=4,起始单元编号是 n,顺序就是 n、n+1、n+2、n+3。交错传输就是打乱正常的顺序进行数据传输(比如第一个进行传输的单元是 n,而第二个进行传输的单元是 n+2 而不是 n+1)。5.7 预充电 由于 SDRAM 的寻址具体独占性,所以在进行完读写操作后,如果要对同一 L-Bank 的另一行进行寻址,就要将原来有效(工作)的行关闭,重新发送行/列地址

37、。L-Bank 关闭现有工作行,准备打开新行的操作就是预充电(Precharge)。预充电可以通过命令控制,也可以通过辅助设定让芯片在每次读写操作之后自动进行预充电。实际上,预充电是一种对工作行中所有存储体进行数据重写,并对行地址进行复位,同时释放 S-AMP(重新加入比较电压,一般是电容电压的 1/2,以帮助判断读取数据的逻辑电平,因为 S-AMP 是通过一个参考电压与存储体位线电压的比较来判断逻辑值的),以准备新行的工作。具体而言,就是将 S-AMP 中的数据回写,即使是没有工作过的存储体也会因行选通而使存储电容受到干扰,所以也需要 S-AMP 进行读后重写。此时,电容的电量(或者说其产生

38、的电压)将是判断逻辑状态的依据(读取时也需要),为此要设定一个临界值,一般为电容电量的 1/2,超过它的为逻辑 1,进行重写,否则为逻辑 0,不进行重写(等于放电)。为此,现在基本都将电容的另一端接入一个指定的电压(即 1/2 电容电压),而不是接地,以帮助重写时的比较与判断。我们回过头看看读写操作时的命令时序图,从中可以发现地址线 A10 控制着是否进行在读写之后当前 L-Bank 自动进行预充电,这就是上文所说的“辅助设定”。而在单独的预充电命令中,A10 则控制着是对指定的 L-Bank 还是所有的 L-Bank(当有多个 L-Bank 处于有效/活动状态时)进行预充电,前者需要提供 L

39、-Bank 的地址,后者只需将 A10 信号置于高电平。在发出预充电命令之后,要经过一段时间才能允许发送 RAS 行有效命令打开新的工作行,这个间隔被称为 tRP(Precharge command Period,预充电有效周期)。和 tRCD、CL 一样,tRP 的单位也是时钟周期数,具体值视时钟频率而定。读取时预充电时序图 图中设定:CL=2、BL=4、tRP=2。自动预充电时的开始时间与此图一样,只是没有了单独的预充电命令,并在发出读取命令时,A10 地址线要设为高电平(允 许自动预充电)。可见控制好预充电启动时间很重要,它可以在读取操作结束后立刻进入新 行的寻址,保证运行效率。误区:读

40、写情况下都要考虑写回延迟 有些文章强调由于写回操作而使读/写操作后都有一定的延迟,但从本文的介绍中 写可以看出,即使是读后立即重写的设计,由于是与数据输出同步进行,并不存在延迟。只有在写操作后进行其他的操作时,才会有这方面的影响。写操作虽然是 0 延迟进行,但每笔数据的真正写入则需要一个足够的周期来保证,这段时间就是写回周期(tWR)。所以预充电不能与写操作同时进行,必须要在 tWR 之后才能发出预 充电命令,以确保数据的可靠写入,否则重写的数据可能是错的,这就造成了写回延迟。数据写入时预充电操作时序图 注意:其中 tWR 参数,由于它的存在使预充电操作延后,从而造成写回延迟 5.8 刷新 D

41、RAM 要不断进行刷新才能保留住数据,刷新是 DRAM 最重要的操作之一。刷新操作与预充电中重写的操作一样,都是用 S-AMP 先读再写。但为什么有预充电操作还要进行刷新呢 因为预充电是对一个或所有 L-Bank 中的工作行操作,并且是不定期的;而刷新则是有固定的周期,依次对所有行进行操作,以保留那些久久没经历重写的存储体中的数据。但与所有 L-Bank 预充电不同的是,这里的行是指所有 L-Bank 中地址相同的行,而预充电中各 L-Bank 中的工作行地址并不是一定是相同的。那么要隔多长时间重复一次刷新呢目前公认的标准是,存储体中电容的数据有效保存期上限是64ms,也就是说每一行刷新的循环

42、周期是 64ms。这样刷新速度就是:行数量/64ms。我们在看内存规格时,经常会看到4096 Refresh Cycles/64ms 或 8192 Refresh Cycles/64ms 的标识,这里的 4096 与 8192 就代表这个芯片中每个 L-Bank 的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096 行时为 s(微秒,1/1000 毫秒),8192 行时就为 s。刷新操作分为两种:自动刷新(Auto Refresh,简称 AR)与自刷新(SelfRefresh,简称 SR)。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作。对于 AR,

43、SDRAM 内部有一个行地址生成器(也称刷新计数器)用来自动的依次生成行地址。由于刷新是针对一行中的所有存储体 进行,所以无需列寻址,或者说 CAS 在 RAS 之前有效。所以,AR 又称 CBR(CAS Before RAS,列提前于行定位)式刷新。由于刷新涉及到所有 L-Bank,因此在刷新过程 中,所有 L-Bank 都停止工作,而每次刷新所占用的时间为 9 个时钟周期(PC133 标准),之后就可进入正常的工作状态,也就是说在这 9 个时钟期间内,所有 工作指令只能等待而无法执行。64ms 之后则再次对同一行进行刷新,如此周而 复始进行循环刷新。显然,刷新操作肯定会对 SDRAM 的性

44、能造成影响,但这是没 办法的事情,也是 DRAM 相对于 SRAM(静态内存,无需刷新仍能保留数据)取得成本优势的同时所付出的代价。SR 则主要用于休眠模式低功耗状态下的数据保存,这方面最著名的应用就是 STR(Suspend to RAM,休眠挂起于内存)。在发出 AR 命令时,将 CKE 置于无效状态,就进入了 SR 模式,此时不再依靠系统时钟工作,而是根据内部的时钟进行刷新操作。在 SR 期间除了 CKE 之外的所有外部信号都是无效的(无需外部提供刷新指令),只有重新使 CKE 有效才能退出自刷新模式并进入正常操作状态。5.9 数据掩码 在讲述读/写操作时,我们谈到了突发长度。如果 BL

45、=4,那么也就是说一次就传送 464bit 的数据。但是,如果其中的第二笔数据是不需要的,怎么办 还都传输吗为了屏蔽不需要的数据,采用了数据掩码(Data I/O Mask,简称 DQM)技术。通过 DQM,内存可以控制 I/O 端口取消哪些输出或输入的数据。这里需要强调的是,在读取时,被屏蔽的数据仍然会从存储体传出,只是在“掩码逻辑单元”处被屏蔽。DQM由北桥控制,为了精确屏蔽一个 P-Bank 位宽中的每个字节,每个 DIMM 有 8 个 DQM 信号线,每个信号针对一个字节。这样,对于 4bit 位宽芯片,两个芯片共用一个 DQM 信号线,对于 8bit 位宽芯片,一个芯片占用一个 DQ

46、M 信号,而对于 16bit 位宽芯片,则需要两个 DQM 引脚。SDRAM 官方规定,在读取时 DQM 发出两个时钟周期后生效,而在写入时,DQM 与写入命令一样是立即成效。读取时数据掩码操作,DQM 在两个周期后生效,突发周期的第二笔数据被取消 写入时数据掩码操作,DQM 立即生效,突发周期的第二笔数据被取消 有关内存内部的基本操作就到此结束,其实还有很多内存的操作没有描述,但都不是很重要了,限于篇幅与必要性,我们不在此介绍。下面通过一个形象的例子来说明 DDR 的基本原理。5.10 形象的例子 货物基地(主板)连接着物资(数据)的供求方。基地的货物调度厂房(北桥芯片)掌管着若干个用于临时

47、供货/生产与存储的仓库基地(P-Bank),它们通常隶属于某一仓储集团(DIMM),这种基地与调度厂房之间必须由 64 条传送带联系着(P-Bank 位宽),每条传送带一次只能运送一个标准的货物(1bit 数据),而且一次至少要传送 64 个标准货物,这 是它们之间的约定,仓库基地必须满足。上图就是这样的一个仓库基地(P-Bank),它由 4 个大仓库(内存芯片)组成,它们的规模都相当大,每个大仓库为基地提供 16 条传送带(芯片位宽为 16bit),总共加起来刚好 就是 64 条。每个大仓库里都有四个规模和结构相同的子仓库(L-Bank),它们都被统一编了 号。而子仓库中有很多层(行),每层

48、里又有很多的储藏间(列),每个储藏间可以放置 16 个标准货物,虽然子仓库的规模很大,但每一层和每一个房间也都编好了号,而且每一层都 有一个搬运工在值班。为了与外界联系方便,仓储集团与调度室设置了专线电话,和一个国家一样,每个仓库 基地有一个区号(片选),另外还有四个子仓库号码(L-Bank 地址),是所有大仓库共享 的,一个号码对应所有大仓库中编号相同的子仓库。而专线电话的数量也是四个,这样可保 证与某个子仓库通话时不会妨碍给其他子仓库打电话。在子仓库的每层则设立分机给搬运工 使用。子仓库的楼下就是传送带,找到货物把它扔到上面。但每个大仓库只有一个传送带,也就是说同一时间内只能有一个子仓库在

49、工作。每个子仓库都有一个自己的生产车间(读出 放大器)负责指定货物的生产,并且每个大仓库都有一个外运站(数据输出寄存器)和寄存 托运处(数据输入寄存器与写入驱动器)与传送带相连,前者负责货物的输出中转,后者负 责所接受货物并寄存然后帮助搬运工运送到指定储藏间。那么它是如何与调度厂房协同工作 的呢(1)需求方有货物请求了,这个请求发送到调度厂房,调度人员开根据货主的要求 给指定的子仓库打电话,电话号码是:区号+子仓库号码+楼层分机(片选+L-Bank 寻址+行有效/选通)。那一层的搬运工接到电话后就开始准备工作。(2)当搬运工点亮所有储藏间的门牌(tRCD)之后,调度人员会告诉搬运工,货物 放在

50、哪个储藏间里(列寻址),如果货物很多,并且是连续存放的,调度员会通知搬运工:“一会儿要搬的时候,从起始房间开始连续将后面的 n 个房间的货物都搬出来,我就不再重复了”(突发传输)。但是,他告诉搬运工要等一 下,要求所有大仓库的人员统一行动,先别出货。(3)根据事先的规定,搬运工在经过指定的时间后开始将货物扔到传送带上,传送 带开始运转并将货物送到生产车间,由它来复制出全新的货物,然后再送到传 送带上通过外运站向调度厂房运去。人们通常把从搬运工找到具体储藏间开始,到货物真正出现在送往调度厂房的传送带上的这段时间称之为“输出潜伏期”(CL),而从值班人把货物扔到传送带到货物开始传向调度厂房的这段时

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁