关闭

(转):内存器件介绍之RAM篇(四)

616人阅读 评论(0) 收藏 举报

     我们接着来解读下SDRAM的一些参数。

       ♦突发长度

     突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度(Burst Lengths,简称 BL)。

     在目前,由于内存控制器一次读/ P-Bank 位宽的数据,也就是 8 个字节,但是在现实中小于8 个字节的数据很少见,所以一般都要经过多个周期进行数据的传输。

     上文讲到的读/写操作,都是一次对一个存储单元进行寻址,如果要连续读/写就还要对当前存储单元的下一个单元进行寻址,也就是要不断的发送列地址与读/写命令(行地址不变,所以不用再对行寻址)。虽然由于读/写延迟相同可以让数据的传输在 I/O 端是连续的,但它占用了大量的内存控制资源,在数据进行连续传输时无法输入新的命令,效率很低(早期的 FPE/EDO 内存就是以这种方式进行连续的数据传输)。

    为此,人们开发了突发传输技术,只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。这样,除了第一笔数据的传输需要若干个周期(主要是之前的延迟,一般的是 tRCD+CL)外,其后每个数据只需一个周期的即可获得。在很多北桥芯片的介绍中都有类似于 X-1-1-1 的字样,就是指这个意思,其中的 X 代表就代表第一笔数据所用的周期数。

    非突发连续读取模式:不采用突发传输而是依次单独寻址,此时可等效于 BL=1。虽然可以让数据是连续的传输,但每次都要发送列地址与命令信息,控制资源占用极大。突发连续读取模式:只要指定起始列地址与突发长度,寻址与数据的读取自动进行,而只要控制好两段突发读取命令的间隔周期(与 BL 相同)即可做到连续的突发传输。 至于 BL 的数值,也是不能随便设或在数据进行传输前临时决定。在上文讲到的初始化过程中的MRS 阶段就要对 BL 进行设置。目前可用的选项是 1248、全页(Full Page),常见的设定是 4 8。下图为突发连续读取模式与非突发连续读取模式时序对比图。

       ♦预充电

    由于 SDRAM 的寻址具体独占性,所以在进行完读写操作后,如果要对同一 L-Bank 的另一行进行寻址,就要将原来有效(工作)的行关闭,重新发送行/列地址。L-Bank 关闭现有工作行,准备打开新行的操作就是预充电(Precharge)。

        预充电可以通过命令控制,也可以通过辅助设定让芯片在每次读写操作之后自动进行预充电。实际上,预充电是一种对工作行中所有存储体进行数据重写,并对行地址进行复位,同时释放 S-AMP(重新加入比较电压,一般是电容电压的 1/2,以帮助判断读取数据的逻辑电平,因为 S-AMP 是通过一个参考电压与存储体位线电压的比较来判断逻辑值的),以准备新行的工作。

   在发出预充电命令之后,要经过一段时间才能允许发送 RAS 行有效命令打开新的工作行,这个间隔被称为 tRPPrecharge command Period,预充电有效周期)。和 tRCDCL 一样,tRP 的单位也是时钟周期数,具体值视时钟频率而定。

      ♦刷新

    所以称为 DRAM,就是因为它要不断进行刷新(Refresh)才能保留住数据,因此它是 DRAM 最重要的操作。刷新操作与预充电中重写的操作一样,都是用 S-AMP 先读再写。

    但为什么有预充电操作还要进行刷新呢?因为预充电是对一个或所有L-Bank 中的工作行操作,并且是不定期的,而刷新则是有固定的周期,依次对所有行进行操作,以保留那些久久没经历重写的存储体中的数据。但与所有 L-Bank 预充电不同的是,这里的行是指所有 L-Bank 中地址相同的行,而预充电中各 L-Bank 中的工作行地址并不是一定是相同的。

    那么要隔多长时间重复一次刷新呢?目前公认的标准是,存储体中电容的数据有效保存期上限是64ms(毫秒,1/1000 秒),也就是说每一行刷新的循环周期是 64ms。这样刷新速度就是:行数量/64ms。我们在看内存规格时,经常会看到 4096 Refresh Cycles/ 64ms   8192 RefreshCycles/64ms 的标识,这里的 4096 8192 就代表这个芯片中每个 L-Bank 的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096 行时为 15.625μs(微秒,1/1000 毫秒),8192 行时就为 7.8125μs

    刷新操作分为两种:自动刷新(Auto Refresh,简称 AR)与自刷新(Self Refresh,简称 SR)。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作。

    对于 AR SDRAM 内部有一个行地址生成器(也称刷新计数器)用来自动的依次生成行地址。由于刷新是针对一行中的所有存储体进行,所以无需列寻址,或者说 CAS RAS 之前有效。所以,AR 又称 CBRCAS Before RAS,列提前于行定位)式刷新。

        SR 则主要用于休眠模式低功耗状态下的数据保存,这方面最著名的应用就是 STR(Suspend  to RAM,休眠挂起于内存)。在发出 AR 命令时,将 CKE 置于无效状态,就进入了 SR 模式,此时不再依靠系统时钟工作,而是根据内部的时钟进行刷新操作。在SR 期间除了 CKE 之外的所有外部信号都是无效的(无需外部提供刷新指令),只有重新使 CKE 有效才能退出自刷新模式并进入正常操作状态。

        Refresh:就是刷新小电容的电量,电量来源于内存行列的一个旁路大电容。

        Precharge:就是将旁路大电容预先充满电,以提供给小电容充电的电量。

      ♦数据掩码(DQM)

    在讲述读/写操作时,我们谈到了突发长度。如果 BL=4,那么也就是说一次就传送 4×64bit 的数据。但是,如果其中的第二笔数据是不需要的,怎么办?还都传输吗?为了屏蔽不需要的数据,人们采用了数据掩码(Data I/O Mask,简称 DQM)技术。通过 DQM,内存可以控制 I/O 端口取消哪些输出或输入的数据。这里需要强调的是,在读取时,被屏蔽的数据仍然会从存储体传出,只是在“掩码逻辑单元”处被屏蔽。

      DQM 由北桥控制,为了精确屏蔽一个 P-Bank 位宽中的每个字节,每个 DIMM 8 DQM 信号线,每个信号针对一个字节。这样,对于 4bit 位宽芯片,两个芯片共用一个 DQM 信号线,对于 8bit 位宽芯片,一个芯片占用一个 DQM 信号,而对于 16bit 位宽芯片,则需要两个 DQM 引脚。SDRAM 官方规定,在读取时 DQM 发出两个时钟周期后生效,而在写入时,DQM 与写入命令一样是立即成效。

     ♦预存取

    预存取概念是针对DDR SDRAM的。

        SDRAM内存频率可细分为:数据频率、时钟频率和内核频率三种。对于普通SDRAM而言,这三者相同,也就不存在预存取的概念。但是对于DDR而言,由于其在时钟信号的上升沿和下降沿都采样数据,所以其数据频率等于时钟频率的两倍,内核频率与时钟频率相同。DDR读操作时,需要在一个时钟周期内给I/O总线提供双倍数据量,实现这一功能的就是所谓的2倍预存取,其原理就是DDR SDRAM存储阵列的位宽增加一倍。这些数据被转化为宽度为1/2的两通道数据分流,分别从时钟信号的上升沿和下降沿发送出去。

        DDR2的预存取能力为4位,也就是说其L-Bank的宽度是芯片位宽的四倍。此时,时钟频率是内核频率的两倍,数据频率又是时钟频率的两倍。由此可见,DDR2在数据频率与DDR1相同的情况下,内核频率只有DDR1的一半。我们不要小看这个内核频率,其实它对内存的稳定性和可靠性非常重要,内核频率越低,意为着功耗越小,发热量越低,内存越稳定。实验证明,在目前的技术条件下,200MHz差不多是内存内核的极限频率。

       DDR38位预存取能力,它的最大可支持1600MHz的数据存取速率,但是它的内核频率其实也只有1600MHz/8=200MHz。时钟频率为:1600MHz/2=800MHz

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17791次
    • 积分:268
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:6篇
    • 译文:0篇
    • 评论:14条
    文章分类
    最新评论