毫无疑问,微处理器的频率可以通过许多方式大幅增加,但却受限于主存储器的性能而必须降低其频率来维持计算机系统的稳定性。本文作者通过对静态随机存取内存(SRAM)单元缩减布局面积的研究,提出一种新的存取技术,可望提升动态随机存取内存(DRAM)单元的访问速度。

超频与内存的关联性

提升供应电压以及降低环境温度有助于增加微处理器、芯片组、主存储器的频率,这是对于计算机系统执行超频(overclock)的实体特性;微处理器、芯片组、主存储器、主板的整体电路设计,则是用于执行超频的硬件特性。此外,维持操作系统(OS)以及应用程序在执行时的稳定性,是在超频之后的软件特性。

在超频进行中,某些应用程序会有频繁的数学计算,以及大量的数据存取,这时可能发生超过芯片封装材料,或外部散热装置的散热效率,因此需要自动超频的技术来监视系统以及调整频率。另一种自动超频是为了确认哪些安装在主板上的微处理器、芯片组、主存储器搭配的外部散热装置能够达到超频极限。当基本输入输出系统(BIOS)的程序代码加入这一自动超频的功能时,个人计算机(PC)就不必进入OS,也就是不必接上任何磁盘驱动器,就能迅速获得超频的极限值,并且减少磁盘驱动器的磨损。

由于微处理器对于外围设备的数据存取会通过主存储器来处理,所以主存储器的稳定性影响着微处理器的执行,即使能够对微处理器进行超频也必须拥有可配合大幅超频的主存储器,这就是超频内存模块的用途。

数据传输接口

单倍数据速率同步动态随机存取内存(SDR SDRAM)数据传输接口主要针对DRAM的存取特性,因为DRAM需要经由更新操作来维持储存状态,并且在读取期间需要额外执行回写操作;虽然在写入期间没有额外的操作,但也需要一段时间才能完成储存,这也相当于执行回写操作的时间。由于DRAM的写入以及回写时间,皆远大于高速微处理器内部的频率时间,所以SDRAM根据这样的存取特性而设计数据传输接口的各种信号与操作程序。SDRAM在发展至双倍数据速率(DDR)之后的性能价格比皆优于其它数据传输接口(如Rambus DRAM;RDRAM)。如今,DDR SDRAM又区分为标准型以及移动型。

图1显示SDRAM的简要功能方块图,行地址选通信号(CAS#)是根据预充电而设计的延迟控制信号,亦即无预充电则不必分时控制列地址选通信号(RAS#)、CAS#。差动频率信号(CLK, CKE)的频率是基于微处理器的工作频率,数据屏蔽信号(DQM)对应差动频率信号的边缘;这些信号用于进行同步传输操作。对于感测放大器以及写入驱动器的配置规划,通常根据外部数据总线的位宽度而设计相同的数量,然而,可以导入并行存取的方法来增加存取效率,因此增加了行地址的位宽度以选择同列不同行的感测放大器与写入驱动器。这种方法产生了丛发模式(burst mode)以及同列存取,但并不会增加访问速度,并且还要进行同步传输操作,所以需要数据缓存器。

DRAM18010201 图1:SDRAM的简要功能方块图。

图2显示SDRAM的命令序列,主要参考美光科技(Micron Technology)产品型号为MT48H8M16LF (Mobile SDRAM)的规格表而来。在各命令序列之中,最单纯的命令序列是单一读取以及单一写入,由此可清楚SDRAM的基本操作规则。在图中所表现的命令序列是先执行预充电(PRE),然后活化(ACT),最后执行读取或写入存取(RD或WR),如此循环。

DRAM18010202 图2:SDRAM的命令序列:单一读取或单一写入

图中,频率时间(tCK)是从此次频率边缘至下次频率边缘为止的时间。列地址选通预充电时间(tRP)是从PRE命令至ACT命令为止的时间。列地址选通至行地址选通延迟(tRCD)是从ACT命令至RD命令或WR命令为止的时间。行地址选通潜伏(CL)是从RD命令开始等候一段时间,并且以tCK为基本单位,然后乘上倍数。写入时间(tWR)是从WR命令至PRE命令为止的时间;另外还可以tCK为基本单位,然后乘上倍数,如同行地址选通潜伏的计时方法,因此命名为行地址选通写入潜伏(CWL)。列地址选通时间(tRAS)是从ACT命令至PRE命令为止的时间。更新命令时期(tRC)是从这次ACT命令至下次ACT命令为止的时间。

DDR SDRAM在PC上的主要设定参数是tRP、tRCD和CL。对于超频内存模块的性能则要额外考虑频率时间与写入时间的最小值,另外就是供应电压的最大值。

数据传输接口的存取效率

SDRAM的存取效率来自丛发模式以及同列存取,并且由此达到数据传输接口的传输速度。如果要频繁进入同列存取那么还要在软件层级之上对数据结构与数据处理进行优化的安排;关于数据结构的优化像是先分析会被频繁存取的数据字段,然后将这些数据字段合并在同一数据结构,使得这些数据字段可以储存在主存储器内部的相同列地址;关于数据处理的优化像是减少同时对不同数据结构进行交互运算以及交叉存取。

如果发生丛发模式以及同列存取的机率太低,那么存取效率会大打折扣,并且数据传输接口的传输速度会低于DRAM 单元的单独写入速度。这从单一读取以及单一写入的命令序列来看则能明白这二者皆要执行预充电,但是DRAM单元在写入特性上不必进行预充电,然而,这是为了配合丛发模式以及同列存取而设计成相同的命令序列,所以在SDRAM的传输技术之下,软件对于数据处理的设计也会影响程序代码的执行速度。如果计算机软件未能针对丛发模式进行优化,但又要提升执行速度,这会有三种选择,一是超频,二是升级主存储器,三是升级PC。

1T DRAM模块的超频性能

如果说3T DRAM是第一代DRAM技术,使用差动放大器实现读取功能的1T DRAM是第二代DRAM,那么在本文中的第三代DRAM技术是指取代差动放大器且大幅提升读取功能的存取技术。1T DRAM的内存基本单位是由一晶体管和一电容器所组成的储存单元,又称为1T DRAM单元。图3显示在单一储存单元上进行存取操作的波形,上半部分是使用差动放大器的第二代技术,下半部分是第三代技术,此图主要用于比较这二者完成读取操作所需花费的最长时间。当这一电容器的储存电压(Vstorage)放电达到最小差异电压(Min. ∆V)时就必须立即进行更新操作(即读取),所以此图呈现有关读取操作的最长时间就等于是更新操作的最长时间。图中标示有tprecharge、tread、trewrite、twrite,这些技术用语依序对应产品规格的tRP、tRCD、CL与CWL。第三代技术无需tRP,除此之外,tRCD也很短暂且可由CWL替换CL,因此访问速度接近SRAM,存取效率低于SRAM。

DRAM18010203 图3:单一储存单元进行读取操作的波形。

图4用于观察SDRAM的命令序列对于不同存取技术所发生的变化,此图用于比较第二代与第三代技术之间的存取效率。SDRAM的命令序列有多种组合,其中读取命令至写入命令(READ to WRITE)最能突显不同存取技术之间的差异。第三代技术的读取时间(tread)很短,于是CL值可以很小,但受到差动频率信号以及DQM信号的限制而不能等于0;另外,即使CL值等于1也还有回写时间(trewrite),所以第三代技术要以CWL值来替换CL值。

DRAM18010204 图4:SDRAM的命令序列:读取命令至写入命令。

参考三星电子(Samsung Electronics)产品型号为K4A4G165WD的产品规格表,其中有一规格是DDR4-1600 (11-11-11),频率时间(tCK)是1.25纳秒(ns),CWL的正常值是9,且小于CL值。频率时间的倒数是数据传输接口的频率;1600是数据传输接口的传输速度,SDR的传输速度等于频率,DDR的传输速度是频率的2倍;(11-11-11)所对应的定义依序是CL、tRCD、tRP,这些数值合称为速度容器(speed bin)。这容器在PC上就是北桥芯片组内部的组态缓存器,必须在其储存这些数值之后才能存取主存储器。

在图2中,tRCD以及tRP对应频率信号的正缘,因此这二者的最小值是0。在图4中,CL的最小值受到频率信号的限制,因此是1;另外,特别标示CWL及其数值在于表示当正常工作时,CWL与tCK相乘之后的数值必须大于或等于储存单元的写入时间(twrite)。当执行超频时,若不增加CWL值则必须更加频繁执行更新命令,除此之外,由于IC的工艺变异以及泄漏电流而导致每一储存单元的访问时间不一致,因此更容易发生数据错误,所以为了稳定性而必须增加CL值以及CWL值,甚至要特别降温。当上述这些参数在相同的制造条件之下生产第三代DRAM技术时,速度容器的最小设定值可以是(1-0-0),CWL值可同于上述的产品规格,因此第三代DRAM技术的存取效率在尚未超频之时就可超过以第二代DRAM技术所生产的超频内存模块。

3T SRAM模块的超频性能

3T DRAM单元是首次实现DRAM的储存单元,为了大幅减小IC的布局面积而发展到1T DRAM单元。笔者在当年发现微处理器的频率受到DRAM的限制而尝试以三晶体管组成SRAM,这样的布局面积大约与3T DRAM单元相似。如果将SDRAM换成同步静态随机存取内存(SSRAM),那么在存取效率上是远高于第三代DRAM的,因为它的CWL值可达到0,在这样的条件之下假使没有丛发模式以及同列存取也能趋近数据传输接口的传输速度。如果使用3T SRAM模块进行超频,那么访问时间会正比于晶体管的切换时间,并且温度升高会减小切换时间,因此CL以及CWL的组态设定值不会因超频而增加,也不必特别降温。

总结

因为有研究报告指出DRAM 单元在读取时会发生软错误(soft error)而导致微处理器不能正常执行程序代码,所以要求DRAM模块加入错误纠正码(ECC)。那么有谁反向思考过这问题:在微处理器以及芯片组内部也有许多缓存器,为何这些研究报告没有明确指示这些缓存器也要使用ECC来减少软错误呢?

在我们观察第二代DRAM技术在单一储存单元上进行存取操作的波形图之后就能得知差动放大器的鉴别准位非常低,所以比那些缓存器以及SRAM单元更容易受到干扰。超频功能可以增加微处理器的处理速度,但对于大量数据的存取效率则取决于主存储器的技术,而那些存取性能不佳的主存储器更容易导致微处理器发生无操作时间(NOP time)来等候存取数据,因此在超频之后有可能增加功率消耗,也难以经由超频功能来大幅提升对于零散数据进行处理的速度。

(本文作者——汤朝景,曾任职经济部知识产权局专利审查委员)

本文来自《电子工程专辑》2018年1月刊,版权所有,谢绝转载