|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
DDR2 SDRAM 和嵌入式系统 |
作者:gdtyy 栏目:嵌入式系统 |
DDR2 SDRAM 和嵌入式系统 2006/04/08 asdjf@163.com 随着计算机技术的普及,越来越多的应用系统嵌入了微处理器芯片,这些隐藏的晶片给系统带来了智能特性,计算机也变成了信息处理机。数字化的信息流入处理机,经过数据挖掘、变换、提取、重新组织等获得对我们有价值的信息输出。信息吞吐量是信息处理机的关键指标,而在计算机系统性能上与之对应的就是带宽。 影响系统性能的瓶颈按优先级顺序排列依次是:总线架构、IO接口、CPU、内存。现代的系统一般以总线为中心,独立于CPU,各部分有自己的局部总线,总线通俗地说就是主板芯片组。例如:CPU通过前端总线(FSB:Front Side Bus)和北桥连接,通过北桥访问DDR2内存;IO接口是信息流入流出的咽喉要道,决定了信息吞吐量的大小。CPU是核心部件,但性能的发挥依赖于总线架构和IO接口,随着频率提升到极限,多核成为发展趋势;虽然CPU采用缓存技术(CACHE)、流水线技术提高了性能,但最根本的提升需要内存和前端总线速度匹配,减少CPU等待时间。从早期的DRAM、FPM DRAM、EDO DRAM到现在的SDRAM、RDRAM、DDR1、DDR2,DDR3,内存一路紧追,不断提高带宽。 北桥图 本文后面部分将专注于讨论内存技术。 我们希望内存速度快、容量大、成本低、功耗小。一直以来,DRAM架构成为了计算机存储系统设计的工业标准。它的优点就是高密度,只要一个晶体管(开关管)和一个电容就可以构成一个bit的存储单元(cell),这样我们就可以很方便地制造出大容量的内存。虽然封装技术和制造工艺不断提高,但现在主流的内存还在沿用古老的DRAM架构。访问DRAM需要一定的周期,多年来,各种不同的基于DRAM架构的改良都试图减少这个访问时间。然而,最终的结果却是处理器等待内存数据的时间越来越多:-( CELL图 DRAM(Dynamic Random-Access MEMORY动态随机访问存储器) 最初的DRAM存储单元如图所示,使用电容存储0/1数据,由于电容存在泄露电流,所以电压不能长期保持,必须周期性地刷新(Refresh),而且这种结构在读写bit cell前,应将bit LINE预充(precharge)到1/2*VCC电压。DRAM将地址空间组织成“行 * 列”的矩阵形式,虽然增加了接口复杂性,但也带来了2个好处。(1)通过复用地址线,只增加RAS#和CAS#两个控制信号线,行列地址就可以分别发送,有效减少了地址线引脚数目;(2)刷新操作只要读行(ROW)即可,减少刷新次数。 FPM DRAM(FAST Page Mode DRAM:快页内存) DRAM每次读写都要发送RAS#和CAS#控制信号,RAS#需要预充时间并且RAS#和数据之间有固定的延迟。FPM DRAM在读写同一行的4字节数据(同一页数据)时只发送1次RAS#,因为要读写的4个字节的行地址相同但列地址不同,所以它们不必为了得到一个相同的行地址而去做重复的工作。这样的工作模式显然相对于普通的DRAM模式节省了很多时间,特别是节省了3次RAS#预充电时间和3个tRAC时间,从而进一步提高了效率。 EDO DRAM(Extended Data Out DRAM:扩展数据输出DRAM) FPM DRAM是在上一次的数据读取完毕才会进行下一个数据的读取,但EDO DRAM可以在输出数据的同时进行下一个列地址选通。如此的设计使得EDO内存的性能比FPM的性能提高了大约20%-40%。正因为EDO的速度比FPM快,所以很多EDO DRAM可以运行在66MHZ的频率上,并且一般标注为5-2-2-2。 SDRAM(Synchronous DRAM同步DRAM) SDRAM采用了同步控制技术,cell单元的数据存取和时钟同步,只要知道了访问开始时间和数据延迟时间,就可以不借助其他控制信号而准确定位数据。此时SDRAM可以采用流水线技术进一步提高效率,比如增加bank概念,当一个bank预充电时另一个可以立即被访问,减少等待,不过要增加多bank管理逻辑电路。RAS#和CAS#也不必保持很长时间,只要一个时钟周期即可,出现位置也可以按需要调整。既然如此,这里的RAS#、CAS#、WE#等就和DRAM里的对应控制信号涵义不一样了。这里的RAS#、CAS#、WE#、CS#等已经成为了SDRAM命令集中操作码(OP)的1 bit。SDRAM内部有一个控制状态机,可以完成复杂的预充、刷新、命令处理、读写等操作。还有一个模式寄存器,存放配置信息,如:CAS延迟、突发类型、突发长度、运行方式等。SDRAM越来越像个协处理器了,竟然有自己的指令集、寄存器,上电后还需要初始化,其实,SDRAM就是个小处理器,需要内存控制器才能操作它。用户只要配置好参数,SDRAM控制器就会自动控制SDRAM完成预充、刷新、命令处理、读写等操作。 对于内存带宽的需求是无止境的,如何进一步提高带宽呢? 根据内存带宽计算公式:带宽 = 位宽 X 频率 ,可知,提高内存带宽有两种途径: (1)增加位宽。4位、8位、16位、32位、64位,位宽越宽,带宽就越大,当采用双通道技术,把两根64位内存条拼成一个128位接口界面的内存时,可以将带宽提高一倍。但是,并行总线存在串扰,自身干扰污染电磁环境,布线困难,很难提高速度。因而现在正在经历“串行化”革命,SATA、PCI Express、XDR、USB等技术的出现就是明证。因为串行总线速度快、布线简单、灵活,所以以后的趋势倾向于串行化,增加位宽的措施显然违背潮流。 (2)提高频率。由于cell单元使用电容保存数据,而电容需要充放电时间,理论上存在频率上限。一般cell阵列做到的最高频率是200MHz(HYNIX DDR550的cell频率做到了275MHz),继续提高频率会导致良率下降成本上升,量产并不划算。而且频率高会造成发热量大的问题。 综上,两种途径都已经达到了极限,除非技术创新,否则无法突破带宽瓶颈。 虽然内存发展出很多的类型,但是它们都是基于原始的DRAM单元,实际上,它是一个晶体管和一个电容的结合体,很简单但也很高效。有很多尝试希望丢弃这种陈旧的以晶体管为基础的存储方式,由此出现了一些新的存储技术,如MRAM(Magnetoresistive RAM),FRAM (Ferroelectric RAM)等,但是它们都没有获得足够的成功。目前没有任何其它内存类型能够提供一个和DRAM相似的,结合了容量,价格和速度的解决方案。 看来,我们给自己制造了一个死锁,内存单元无法提高频率,内存总线位宽也不能轻易增加,而且仍然要使用原始的DRAM架构,我们该何去何从呢? DDR2(Double Data Rate 2双倍数据速率二代)内存就是解决方案。它没有局限于带宽公式,而是从结构上想办法,采用4 bit预取技术,使得内存突破了200MHz带宽限制。基本原理如图所示,DDR2 400内存的输入时钟为200M(时钟频率),内部cell阵列上的时钟(核心频率)为100M,但是每次同时访问4个bnak上的1 bit,这样数据速率就是400M,用200M时钟的上升和下降沿一起传输数据,对外就可以达到400M的数据传输速率(数据传输频率)。我们可以描绘一个明显的场景:数据流慢慢通过宽的管道,然后进入一个狭窄的管道,但是流动的速度更快。 4 bit预取图 DDR2采用这个“诀窍”使得数据传输频率提高的同时,核心频率反而降低了。也就是说引入DDR2,可以让内存频率提升回到一个新的起跑线。依此类推,采用8 bit预取就可以实现DDR3,而DDR2就是采用2 bit预取,SDRAM可以算是1 bit预取。 带宽大是不是就意味着系统性能高呢?当然不是,除了速度之外,这里还有一个重要的参数是延迟(Latency潜伏期),存储单元不会一直处于可用状态,它们要进行刷新操作。而且,即使存储单元可用,也不可能立即得到数据:这里还有其它类型的延迟,如设置行和列的地址,这此延迟都是不能避免的,它们由DRAM单元的本质所决定。 让我们看看会有那些延迟,例如内存阵列工作的时钟组合是2-2-2,如果内存阵列在所有的方案中以相同的频率工作,那么所有的模组都具有同样的延迟(我是说PC100,DDR200,DDR2-400)。它们仅仅是带宽的区别。顺便提一下,2-2-2组合的含义是:CAS延迟,RAS到CAS的延迟和RAS预充电时间。第一个数字是取得列地址的延迟时间,第二个数字是行和列地址之间的延迟,第三个数字是存储单元充电时间,预充电实际上是对行数据进行读操作。 |
2楼: | >>参与讨论 |
作者: liuxjcumt 于 2006/4/12 20:33:00 发布:
好文章 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |