1、云间彩凤望双飞:DDR2 内存技术全面解析Topic: 技术前沿 荐 作者:Rowan 文章来源:本站原创 点击数: 475 更新时间:2007-5-3 编者按:2002 年 12 月 22 日,我撰写了这篇 DDR2 的技术文章。当时 DDR2 距离我们还很遥远,直到 2006 年 DDR2 才全面在市场铺开。因此当时这篇文章算是非常前沿的。其中涉及到的一些技术和原理都比较深奥。这篇文章发表在 2002 年 2 月份的大众硬件杂志上。云间彩凤望双飞 DDR-II 内存技术遵循着摩尔定律,CPU 的速度每 12 至 18 个月就翻一番。伴随着 NVIDIA 的开发周期,3D 图形芯片每 6 至
2、 8 个月就推出新一代产品。拥有 2GMHz 的 CPU 已经不是什么新鲜事儿了,昔日的发烧显卡 GeForce 4 Ti 也已经飞入了寻常百姓家。相比这些部件性能的提升,虽然内存子系统的频率和带宽也在不断提升,但是它的性能已不能满足目前 CPU 和显示芯片的数据吞吐量的需求。很快内存将成为新的系统的瓶颈。为了适应更新更快的系统,一时间,各个大厂纷纷发布了自己的解决方案。下面就给各位看官介绍一下具有“双倍”性能的 DDR-II 内存。从差分时钟信号说起新的内存技术都是在原有的技术的基础上改进而来的。如果我们想深入了解最新的内存技术,我们不妨先来回顾一下基础的 DDR 技术,这对各位理解后续的各
3、种技术有很大帮助。DDR 的全称是Double Data Rate SDRAM,双倍数据流 SDRAM。从这个名字就道出了 DDR SDRAM 内存的特征:在系统时钟的上升沿和下降沿都可以传输数据。在 DDR内存芯片的内部会同时激发两个信号:ck 和 ck#,这两个信号的时钟相位正好相反,这样的两个信号就形成了差分时钟信号。(如图 差分信号)DDR 在工作的时候,仅由 ck 一路信号承载数据。当数据选取脉冲处于低电平的时候, ck的上升沿有效,下降沿无效。当数据选取脉冲处于高电平的时候,ck 的上升沿无效,下降沿有效。ck 在数据选取脉冲的帮助下可以在上升沿和下降沿都可以触发数据。其实差分时钟
4、信号,是一种信道复用技术,即利用一个物理通道同时传输多个信号的技术。这已经不是什么新技术了,早在很多年以前它就被使用在通信领域。当然信道复用还包括:频分复用、时分复用、波分复用、码分复用等等。这些信道复用技术,有些还仅仅适用于模拟信号的传输。在这里提到的差分复用技术,是适用于数字信号的传输的。不仅仅是内存领域使用了差分复用技术。显卡中的 AGP 总线,从 AGP 2X 开始已经在使用这种技术了。在硬盘领域中从 UDMA 66 通道开始也是使用了差分复用的原理。既然使用了差分复用方式传输数据信号。在 DDR 内部相对 SDRAM 也有了不少改进。例如,一颗 324bit 的 128Mbit 的
5、DDR 内存芯片,芯片存储单元的容量是芯片接口位宽的一倍。在系统读取内存芯片的数据时,在内部时钟信号的触发下逻辑芯片一次传送 8bit的数据给读取缓存器。再由它分成两路 4bit 数据传给差分复用器,然后复用器将数据合并为一路 4bit 数据流,然后由发送器在数据选取脉冲(DQS )的控制下在外部时钟(即系统总线频率)上升沿与下降沿分两次传输 4bit 的数据给北桥芯片。最终在 4bit 的物理带宽上实现了 8bit 的数据传输。这就是 DDR 中“双倍”的意思。DDR-II 的带宽技术终于说道正题了!通过上面的介绍,大家对 DDR 的工作方式有了了解。那么 DDR-II 又有什么不同呢?我们
6、首先要弄清楚三个词:内存核心频率、内存时钟频率、数据传输率。顾名思义,核心频率是指的内存芯片内核的频率。而时钟频率是指的内存的外部接口的频率。那么数据传输率,就是最终等效的数据流量,这也可以认为是北桥芯片最终获取的数据量。在 DDR 中如果芯片内核的频率是 100MHz,那么内存时钟频率就是 100MHz,而最终等效的数据传输率为 200Mbps。而在 DDR-II 中,如果内存核心频率为 100MHz。请注意!内存时钟频率却是 200MHz。最终内存同北桥芯片的数据传输率高达400Mbps!这就是 DDR-II 中“双倍”的意思。(如图 双倍)但是有些人会问:为什么内存内部时钟频率和外部时钟
7、频率会不同呢?这就要讲到 DDR II 的关键技术 4bit Prefetch。先解释一下这个名词。 Prefetch 可以译为“数据预取“技术。比如 DDR 为 2bit Prefetch。再回过头来看看 SDRAM,它首次实现了 DRAM 和系统时钟之间的同步。SDRAM 采用称作 Pipeline 的技术,也就是管线技术,可以认为SDRAM 为 1bit Prefetch。刚才我们讲到了在 DDR 中同时激发了两个信号 ck 和 ck#。这两个信号仅仅是其中一路在附则传输数据信号,另一路是无效的。一颗 32X4bit 的 128Mbit 的 DDR-II 内存芯片,其芯片存储单元的容量与
8、芯片接口位宽之比是 4:1。那么在 DDR-II 的内部时钟信号的触发下逻辑芯片一次传送 16bit 的数据给读取缓存器分成四路 4bit 数据传给差分复用器。不过最终差分复用器输出的还是 4bit 的数据。为了不让差分复用器成为系统的瓶颈,实际上是数据先输入到 I/O 缓冲寄存器,再将频率加倍,从 I/O 寄存器输出。内存时钟频率也就增加到了 200MHz。(即系统总线时钟频率)差分时钟不仅仅可以起到信道复用的作用,它还可起到纠错的作用。因为内存条在实际的使用过程中会受到磁场、干扰、温度、电阻性能的改变等问题,ck 的上下沿间距可能发生变化,此时与其反相的 ck#就起到纠错的作用。在给电容充
9、电往往比给电容放电要快。由于 ck 和 ck#的时钟相位正好相反,所以 ck 是电压上升快下降慢, ck#则是电压上升慢下降快。这样信号在一定范围内的失真都可以纠正过来,从而保证数据能正确的传输。(如图 差分时钟)可以说 Prefetch 是一把双刃剑。它虽然提高了内存的传输带宽,但是却从而增加了数据预取时间。DDR-II 将进行 4bit 预取,比传统的 DDR 多一倍。那么,DDR-II 400 芯片在 10ns 的时钟周期下(100MHz),就只能等效于 DDR 200 的性能。例如:PC 800 RDRAM 内存外部频率运行在 400MHz,内部芯片仅仅运行在 100MHz。RDRAM
10、 是8bit 数据预取,其内部频率却与 DDR-II 400 的 100MHz 相同。那么 DDR-II 技术有什么意义呢?目前 DDR 400 的内部时钟周期为 5ns(200MHz),因为良品率非常低,所以生产厂商的成本自然也非常高。而 DDR-II 400 却因为较低的内部时钟频率,良品率可以迅速提得更高,而生产成本也会非常低,对主板的设计要求也没有那么高,同样能够保持稳定性。很显然 DDR-II 400 和 DDR 400 在性能上并没有太大差异。笔者认为 DDR-II 的起步频率应该是 533MHz 而不是 400MHz。从技术角度讲内核做到 200MHz 应该不是什么困难的事情,相
11、信最终我们能见到 DDR-II 800 的内存模组。DDR 的电压为 2.5V,而 SDRAM 的电压为 3.3V,DDR-II 的电压则降到了 1.8V。这样可以减少功耗减少发热量。DDR-II 与 DDR 的外形非常类似,只有非常小的规划布局差异。(如图 DDR&DDR-II 比较)这对于生产厂商可是乐开花了,他们不必大规模的改动自己的流水线,就可以轻易的生产出新品。昔日的 DDR 生产厂商可以轻松转型生产 DDR-II,而不必从新购置生产设备。遥想当年,DDR 就是在原有的 SDRAM 的基础上改进而来的。DDR 就是凭借着能够使生产厂商轻松转产,才打败了 RDRAM 的。DDR II
12、的主要特征8 个 bank相比起带宽来说,DDR-II 内存模组的反应时间并没有多少改善。Samsung 和 Micron 所演示的 DDR-II 533 内存模组,反应时间只有 4-4-4。为了减少反应时间,在 DDR-II 的内部装备了 8 个储藏位(bank),而在普通的 DDR 和 SDRAM 中仅仅有 4 个储藏位。这可以提高内存页的命中率,并允许芯片组用多路 bank 交叉存取,以提高内存子系统的整体性能。大家是否还记得 VIA 芯片组 4 路内存交错控制存取技术(4-Way Interleave)。在 BIOS 中或使用软件打开此项功能,内存总线会在多个 bank 之间进行交错的
13、传输,比单 bank 存取要快得多。在实际的测试中装配 8 个 bank 交叉存取可以改善 DDR-II 性能约为 2 至 3%。但不幸的是,由于受限于功耗的问题,不可能同时激活 8个 bank 传送数据。OCD 技术OCD 是 Off-Chip Driver 的缩写其意思为片外驱动调校。我们都知道在开机的时候,计算机系统要对内存进行初始化。收集系统信息,对寄存器的工作模式的设置 ERMS 等等。这一工作由北桥芯片在 BIOS 的控制下进行。当然在 ERMS 中还有很多选项,以便应付各种的突发情况。(如图 EMRS 工作流程)在 EMRS 阶段, DDR-II 引入了可选择的 OCD 功能。O
14、CD 的主要功能在于调整 I/O 接口端的电压。通过调整上拉(pull-up )/ 下拉(pull-down)的电阻值使两者电压相等。也就是达到 Pull-up=Pull-down 的状态。这样通过 OCD 技术减小数据选取脉冲(DQS)与数据信号( DQ)之间的倾斜来提高信号的完整性,从而提高信号品质。(如图 OCD)ODT 技术ODT 是 On-Die Termination 的缩写,其意思为内部核心终结器。某些时候我们需要将不必要的信号终结,防止数据线终端反射信号干扰系统元件的正常工作。在以前,控制与数据信号的终结在主板上完成。使用 DDR 或 SDRAM 的主板上面需要大量的终结电阻,
15、至少每根数据线需要一个终结电阻。这个阻值过大过小都不好,阻值较大线路的信噪比高但是信号反射较为严重,阻值小可以减小信号反射但是会造成信噪比下降。此外由于不同的内存模组对终结电阻的要求不可能完全一样,因此长期以来,这些电路的配置一直是主板设计的难点。现在的 DDR II 内建了终结电阻器,将主板上的终结电阻移植到了芯片的内部。在内存芯片工作时系统会把终结电阻器屏蔽,而对于暂时不工作的内存芯片则打开终结电阻器,以减少信号的反射。(如图 终结器)ODT 技术的优势非常明显。第一,去掉了主板上的终结电阻器降低了主板的制造成本,也使主板的设计更加简洁。第二,在很大程度上减少了内存芯片在读取时的功率消耗。
16、第三,芯片内部终结也要比主板终结更及时有效,从而提高信号质量,减小整个系统的干扰。Posted CAS 技术CAS 是 Column Address Strobe 列地址选通脉冲的意思。在这里 Posted 是前置的意思。那么我们不难从字面上了解 Posted CAS 就是将地址选通脉冲信号前置。事实上 Posted CAS 技术主要是解决在古老的 DDR 内部由于指令冲突引起的数据传输延迟现象,提高DDR II 内存的利用效率而制定的技术。(如图 post cas)各位看官是不是乍看一头雾水?这些花花绿绿的是啥?哈哈!不用着急!还是请笔者慢慢给您道来。首先了解一下相关的专业术语:CAS:Co
17、lumn Address Strobe,列地址选通脉冲RAS:Row Address Strobe,行地址选通脉冲CL: CAS Latency,列地址选通脉冲潜伏期AL:Additive Latency,附加潜伏期BL:Burst Length,脉冲潜伏期WL:Write Latency,读潜伏期RL:Read Latency,写潜伏期tRRD: RAS 到 RAS 的延迟时间tRCD:RAS 到 CAS 的延迟时间ACT:Active,激活信号Collision:指令冲突,碰撞。BUBBLE:气泡,这里是空闲状态的意思。各位请看图中 Normal operation 正常操作部分,此时的各
18、项内存参数为:tRRD=2,tRCD=4,CL=4,AL=0,BL=4 。我们看到 tRRD 延迟为两个时钟周期,tRCD 延迟是四个时钟周期。恰巧在第四个时钟周期上面 ACT 和 CAS 信号堆叠了,所以产生了信号的冲突。此时系统自动将 ACT 信号需要向后延迟一个时钟周期。但为了保护数据的完整性,后面的数据传输中间出现了一个时钟周期的 BUBBLE。我们再来看看 Post CAS 的操作,此时的各项内存参数是:tRRD=2,tRCD=4,CL=4,AL=3,BL=4 。在发送 RAS 信号后 CAS 信号紧随着发送,相对于以往的 DDR 等于将 CAS 前置了。CAS 命令可以在 AL 之
19、后的一段时间之内保持有效,此时那个原先可能需要使用到 ACT 命令的时刻,就不用在从新发出 ACT 指令了。既然此刻不必使用 ACT 指令,地址线可以立刻空出来。因此 ACT 和 CAS 信号永远也不会产生碰撞冲突。原来的 tRCD 变成了 AL。AL 可以取值 0、1、2、3 、4 个时钟周期。在DDR-II 中还精确定义了这些延迟相互的关系:WL=RL-1、 AL+CL-1、RL=AL+CL。就是这样小小的信号的触发的先后改动,带来的好处就有很多:首先,Posted CAS 技术从根本上避免了指令冲突。其次它大大提高了数据信号的传输效率。图形领域中的 DDR-II虽然目前各大内存厂商都发布
20、了自己的“概念型”DDR-II 内存模组,但是距离 DDR-II 真正普及风靡市场还要等很长的时间。(如图 DDR-II 产品)这不仅仅是生产成本的问题,还需要芯片组厂商、CPU 厂商的联合支持才行。一些评论家认为最顺利也要等到 2003 年才能在桌面市场看到 DDR-II 的身影。那么 DDR-II 真正施展拳脚的地方在哪里?答案只有一个3D 图形领域。一个性能强大的 GPU 如果没有同样强大的记忆体与之配套协同工作,那么一切都是空谈。在过去的岁月中,DDR 很好地在显示卡领域服务。而随着 3D 图形芯片的发展,DDR 已经不能服务于那一个个怪兽般的芯片了。曾经有很多发烧友,问 NVIDIA
21、 的技术人员:“早在 Matrox 的 Parhelia-512 芯片发布时,就使用了 256bit 的显存带宽技术。在 ATI的 Radeon 9700 芯片也同样使用了 256bit 的显存带宽技术之后,为什么 NVIDIA 却给他的崇拜者拿来了 128bit 的显存?”笔者也被这个问题困扰着。但是当笔者看到 NVIDIA真的把 2.2ns、1000MHz (实际频率为 500MHz)的 DDR-II 用在了 GeForceFX 显卡中的时候才恍然大悟。(如图 FXddr2)原来 DDR-II 竟然有 16GB/秒的带宽。相比那些 256bit 的 19.8GB/秒的显存并没有逊色多少。内
22、存的未来NVIDIA 计划将 GeForceFX 在明年一季度出货,这也许是我们能够买到的第一款 DDR-II 的产品。ATI 正在努力的与自己的合作伙伴建立 GDDR3 的标准,根据 ATI 提供的资料,这种显存的起始频率将会是 500Mhz,最高可以达到 800Mhz,带宽最大可以达到 1.5GB/s,提供的性能大概是 DDR-II 的两倍。2002 年 10 月 JEDEX 第一次公开了关于 DDR III 内存标准的信息。这些尚未最终确认的 DDR III SDRAM 规格包括: 800-1500Mbps 的数据传输速率,1.2 或 1.5V 的电压标准(DDR II 为 1.8V,D
23、DR 为 2.5V)。据 Infineon表示,首款 DDR III SDRAM 芯片将为 4GB 规格标准。AMD 决定明年发布的 64bit 处理器 hammer 将使用 DDR-II。这也许是第一款真正支持 DDR-II 的处理器。而来自Intel 方面的消息,他们已经开始研发支持双通道的 DDR-II 芯片组。Rambus 已经开始研发新的被称为 “Yellowstone”的技术,不过基于它的产品还要等待几年才会出现。这种内存技术至少可以提供 12.4 GB/秒的带宽,同样它最先应用在显卡上。只需要采用 128bit 接口它就可以提供 100 GB/秒的带宽。自他们诞生之日起,DDR同 RDRAM 的斗争从来就没有停止过。也许在他们之间的斗争还将继续下去,但是最终获益这些“双倍”的还是我们最终消费者。