DDR内存讲解

  • 格式:pdf
  • 大小:2.91 MB
  • 文档页数:64

Memory讲解Memory的简要说明各种存储技术的说明Memory协议简介线路图绘制Layout说明Memory Tuning简介Memory的简要说明简要说明一下Memory是什么?Memory充当什么角色。

Memory对于计算机行业而言,就是指主板上所使用的内存,也被称呼为DRAM(动态随机存取内存),内存的作用就是使计算机的CPU(中央处理器)能够更快速读取储存在内存的指令及资料,相对于我们的存储设备硬盘而相对于我们的存储设备硬盘而言,它的速度更加快。

近几年主要在用的内存有DDR,DDR2,DDR3。

64bit带宽的,内存在样式上主要有两种:DIMM和现在我们使用的内存都是带宽的内存在样式上主要有两种SO‐DIMM两种。

DIMM:即Dual In‐Line Memory Modules,双列直插式存储模块, 在台式机上应用比较多,台式机上应用的主要是UDIMM(Un‐buffered DIMM),在DIMM模组上,电路板正反两面的针脚各有其独立电路,这是相对于早期的SIMM (Single In Memory Modules,单边接触内存模块)而言的,在SIMM模‐Line组上,电路板正反两面的针脚是相连在一起的。

SO‐DIMM:即Small Outline DIMM,主要使用于笔记本电脑,它的尺寸较标模组小很多准的DIMM模组小很多。

‐DIMM和SO DIMM图片各种存储技术的说明ROM和RAMSRAM 和DRAMSDRAMSDRAM和DDR SDRAM内存的发展趋势ROMROM: Read Only Memory只读的存储器对于ROM,我们接触的最多的有如下几个:PROM: Programmable ROM (可编程的ROM)通常只能写入一次,写入后不能再更改. EPROM: Erasable PROM(可擦除PROM)工作时只能读取信息,但是可以用紫外线擦除EPROM E bl已有信息,并在专用设备上高压写入信息.EEPROM: Electronic EPROM(电可擦出PROM),可以通过程序的控制进行读写操作.Flash ROM: 也被称为Flash Memory,EEPROM的一种,这种技术可以快速完成读,写,擦除三种基本的操作模式,就算在不供电的的环境下,也能保存数据的完整性.其实U盘采用的就是Flash ROM技术,这种技简单来讲是在MOS的控制闸(Gate极)与通道间多一层成为”浮闸”(floating gate)的物质,这个功能可以让单元格中的电子在断电的情况下被长久保存保存,下次再通过更高的电压还原为正常的1.从以上的说明可以看出,ROM特性:它能在不供电的情况下长期存储数据。

ROM 图片RAMRAM: Random Access Memory 随机存取记忆体RAM: Random Access Memory 随机存取记忆体,可以随机性的写入与读出它内部存储单元的数据。

RAM是一种半导体存储器,必须在通电的情况下工作,其特性是当电源消失后,存储于RAM内部的数据也随之消失。

RAM又分为SRAM(静态)和DRAM(动态)两种,我们目前使用的内存主要是SDRAM(同步动态RAM)。

)SRAM和DRAMy动态随机存储器DRAM:Dynamic RAMSRAM:Static RAM 静态随机存储器:Dynamic RAM ,它利用电容的充放电来达成资料写入和读取的动作,DRAM它利用电容的充放电来达成资料写入和读取的动作因电容的特性故需要每间隔一段时间作刷新动作来保持资料的完整性,控制器设计比较复杂,但是DRAM的每个Cell(单元)的单位面积比较小,适合大量生产,主要应用于电脑的内存,比如FPRAM,EDORAM,SDRAM,合大量生产主要应用于电脑的内存比如DDR SDRAM,RAMbus等等。

SRAM:Static RAM ,利用D‐Type Flip Flop(D触发器)来完成资料的写入和读取的动作,因正反器特性,资料写入不需要做刷性的动作,故控制器设计比较简单,存取的速度比DRAM快,但是每个Cell的单位面积比DRAM大,耗电也比DRAM大,适合高要求的应用场合,主要应用在CPU中的Cache Memory(CPU内部的高速缓存)。

Cell Diagram ‐SRAM 1最简单就是一个D 触发器示意图:从右图可以看出DataInputData Output D Q ,当有Power 存在的时候,因为D 触发器Clock Input 的特性,数据可以保存,不需要刷新动作.CKSRAM Cell Diagram ‐24个晶体管组成一个SRAM Cell i 211L D Q1Q3Q2a R GND GNDSRAM Cell Diagram ‐3g个体管6个晶体管组成一个SRAM CellDRAM Cell DiagramDRAM Cell 的简易图如下:行解码线(Row Address)从右图可以看出,当列解码线有Power 存在的时候,因电容的特性故需要每间隔一段时间C1作刷新动作来保持资料的完整性.1/写放大器SDRAMSDRAM: Synchronous DRAM,即同步动态随机存储器.SDRAM 通过同个时钟Cl k 锁在起将CPU 和RAM 通过同一个时钟Clock 锁在一起,使RAM 和CPU 能够共享一个时钟周期,以相同的速度同步工作,每一个时钟脉冲的上升沿传递数据.SDRAM 是相对与早期的数据存储器FPM RAM 和EDO RAM 而言的,简要说一下这两种模式:FPM RAM: (Fast Page Mode) RAM,快速页面模式随机存储器,这是较早的微机个时钟周期传送一次数据上使用的内存,它每隔3个时钟周期传送次数据.之所以将快速页模式,因为它以4字节突发模式传送数据,这4个字节来自于同一列或者说同一页.EDO RAM: (Extended Data Out) RAM, 扩展数据输出随机存储器, EDO 内存取消个时钟周期传输次了主板与内存两个存储周期之间的时间间隔,它每隔2个时钟周期传输一次数据,缩短了存取时间.SDRAM和DDR SDRAM准确的来说SDRAM分为两种:Single Data Rate SDRAM: 即SDR SDRAM.Double Data Rate SDRAM: 即DDR SDRAM.Single Data Rate SDRAM: 即SDR SDRAM,也就是上一篇中所提到的SDRAM,它是在每个时钟Clock的上升沿存取数据的.在每一个时钟Double Data Rate SDRAM: 即DDR SDRAM,它允许在时钟Clock的上升沿和下降沿存取数据,这样不需要提高时钟频率就可以加倍提高SDRAM的速度.简单说一下RIMM: Direct Rambus memory module的注册专有名称,属于Kingston专有的,RIMM(Rambus Inline Memory Module)模组有较快的存取和传输速率,因此也会产生更多的热量,所以RIMM外面般都包裹层散热片.外面一般都包裹一层散热片内存的发展趋势内存的发展趋势Cont.Memory y协议简介DRAM Module图片DRAM原理示意图DRAM信号说明DRAM大小的计算DRAM时序图DDR数据率的计算ECCSPDIntel 1N/2N ModeDDR1 vs. vs. DDR3vs DDR2vs图片DRAM Module1DRAM Module图片2DRAM Module图片3DRAM 原理示意图1DRAM Function 简化示意图:ROW行地址解码器ROW行地址Latch 输以C O L列C O L 记忆体阵列入输出放大及控制电路DQ I/O地址解列地址L a t A0~A15BA0~BA2码器c hM d R i t DQS/DQS#时序控制器Mode RegisterCommand解码器RAS#CAS#WE#CKECK/CK#CS#DRAM 原理示意图2DRAM 颗粒示意图Top Memory Top MemorysBanck Select d d r e s s..0]A d d r e s BA0BA1l u m n A M A [15i c a l Bank 3MA[15..0]C o Bank 2Bank 1Bank 0P h y s []Row Address0hDRAM 信号说明1从以上的示意图可以看出,DRAM 的信号主要有CK/CK#, CKE, CS#, RAS#, CAS#,WE#, BA0~BA3,A0~A15, DQ, DQS/DQS#, 另外还有DM, ODT, RESET#信号并没这代有在示意图中给出,因为这些信号在DDR1/2/3这三代DDR 上是有区别的,就算是同样的信号定义也有区别.申明:以下的所有讲解,若没有特别指出,均以DDR3为标准.因为DDR1和DDR2已经淡出市场.信号的含义:CK/CK#: Differential clock inputs. All address and control signals are sampled on th i f th iti d f CK d ti d f CK#the crossing of the positive edge of and negative edge of CK#.CKE: Clock Enable, CKE High Activates, and Low deactivates. CKE 可以在内存闲置的时候拉Low 关闭clock 的输入,达到省电效果,在有内存操作时,CKE 必须处于High 的状态.CS#: Chip Select,片选信号,Low 有效,当CS#处于High 的状态时,所有的command 都是无效的. 此信号用来选择外部的Rank, 即我们所看到的内存的两个面.Termination Active ODT: On Die Termination, High Active.即内存颗粒内部的Termination 电阻, 这个信号在DDR1上面是没有的,在DDR2,DDR3上面采用,可以调节DQ, DQS, DM 的Termination.DRAM信号说明2RAS#:Row Address Strobe,在进行读/写操作时,此信号拉Low行地址有效. CAS#:Column Address Strobe,在进行读/写操作时,此信号拉Low列地址有效.WE#:Write Enable ,在进行读/写操作时,Low代表写操作,High代表读操作.RAS#, CAS#, WE#和CS#一起来定义command指令开始执行.BA0~BA2:Address command active ReadBA0BA2: Bank Address, 在Active 中,此信号决定被active, 或者Write的Bank,在Precharge command中决定被Precharge的Bank, 在MRS(Mode Register Set) cycle时,Bank Address用来指定执行的MRS.A0~A15:Address Inputs. address for Active the Inputs Provide the Row command andColumn address for Read/Write command to select one location out of the memory array in the respective bank. The address input also provide the op‐code during Mode Register Set commands.commandsA10/AP:Auto‐Precharge, 在读/写command的时候,A10决定是否需要Auto‐Precharge, High代表有Auto‐Precharge, Low代表没有Auto‐Precharge, 在Precharge command中, A10为High时Precharge all bank, 为Low时Prechargebankone bank(具体的bank由bank address决定).A12/BC#: Burst Chop,在读/写command中用来指定是否Burst Chop.此功能在DDR1DDR2DDR3才开始出现,旧的DDR1,DDR2是没有此功能的.DRAM信号说明3从上面的信号介绍可以看出,A10,A12在Read/Write时有特殊的作用,所以在Column Address中,是没有A10,A12的.C l Add A10A12RESET#:Active Low Asynchronous Reset,这个信号也是在DDR3才开始有的,这样可以让Memory的初始化变得更加简单,Low Active.在正常运行的时候,此信y号必须为High.(在DDR1,DDR2时期需要发送一个指令进行MRS操作对Memory 进行初始化.)DQ:Data Input/Output.Input/OutputDQS/DQS#:Data Strobe, Output with read data, Input with write data.Edge‐aligned with read, Centered in write data. DDR3只支持差分的Data Strobe.在DDR1时, Data Strboe是Single‐ended的,DDR2在两种模式都可以.在两种模式都以DM: Input Data Mask, DM is an input mask signal for write data.High有效,当DM为High的时候, Data不被写入或者写入的Data无效. DM为Low写入有效.以上是在DDR内存操作中的主要信号,其中涉及到一些DRAM操作的具体指令后续会逐渐提及和作解释,关于内存的一些技术工作原理就不在本讲义的范围内了,我们重点关心应用, 实际工作原理不做深究.DRAM 1宽大小的计算先了解一下DRAM 的module 和位宽:DRAM 使用的是64bit 位宽的,对于的chipset 也是如此,单个通道的DATA 宽度为64bit.物理上的对应关系如下图:DRAM大小的计算2Row Size:这里是指一根内存一面的容量大小.所以个内存如果只有面,这根内存的大小就是,如果内存所以一个内存如果只有一面Row Size,有两面,这根内存的大小就是Row Size*2如何计算Row Size?通常情况我们会在chipset的EDS(Specification文档)查找到以下信息:这里所指定的意思就是,这个chipset所支持的DRAM单个颗粒大小为1Gb,2Gb,和4Gb 三种, 所支持的颗粒位宽为8bit和16bit.Byte和bit的关系: 1Byte=8bit, 通常简写为1B=8b.1Byte=8bit1B=8b那么对于2Gb大小,8bit位宽的颗粒,Row Size是多大? 计算如下:2Gb,8bitÎ8颗DRAM/Row Î2Gb x 8/RowÎ16Gb/Row Î2GB/RowÎ4GB/根(Max)同理:2Gb,16bitÎ4颗DRAM/Row Î2Gb x 4/RowÎ8Gb/Row Î1GB/RowÎ2GB/根(Max) 4Gb8bit x4Gb,8bitÎ8颗DRAM/Row Î4Gb 8/RowÎ32Gb/Row Î4GB/RowÎ8GB/根(Max)DRAM大小的计算3Page Size: Page size is the number of byte of data delivered from the array to the internal sense amplifiers when an Active command is registered. Size is per bank.registered Page bank从以上描述来看,Page Size的计算公式如下:Page Size=2(列地址数) x (I/O bit数)÷8(I/Obit数) 对于DRAM颗粒而言即单个颗粒存储的位宽, 而对整个个内存而言就是(I/Obi一次传输的位宽即64bit.补充一点,在计算机中内存容量的计算关系如下:G=1024M=210M M=1024K=210K K=1024=210DRAM4大小的计算DRAM大小的其他标示:Bank的存储位置数=2(行地址数+列地址数)Bank的大小=Bank的存储位置数*颗粒的位宽bit宽补充两个DRAM的标示方法:DRAM时序图DRAM的时序,简言之就是指各个信号之间搭配实现Memory的各种控制.这个就是Memory的实际运行原理,这些信号之间的有间的组合有一个真值表(Truth Table)可以查.右图为DDR3的部分真值表:DRAM 时序图‐Cont.部分真值表对应图CK#READ COMMANDCK#WRITE COMMANDCK#CK ACTIVE COMMANDCKECK CS##CKE CK CKE CS#CAS#RAS#CS#RAS#CAS#RAS#CAS#WE#BA0~3WE#BA0~3WE#BA0~3A0~An A10/AP A0~An A10/AP A0~A15RA: Row Address DON'T CARE A12/BC#AP: Auto Precharge(H:Enable ; L: Disable)CA: Column Address A12/BC#CA: Column Address AP: Auto Precharge(H:Enable ; L: Disable)BA: Bank AddressBL:Burst Length (L:BC4; H:BL8)BL:Burst Length (L:BC4; H:BL8)‐DRAM 时序图Cont.首先我们了解一下SDR SDRAM 的Read Cycle 时序图:我们比较关心和应用最多的就是Read/Write 命令.DRAM‐Cont.时序图DDR与SDR SDRAM的对照图:时序图DRAM‐Cont.DDR3yMemory的工作状态图:本讲义将对图中的重点时序Cycle做介绍,通过这些Cycle了解DRAM的实际运行过程.DRAM时序图‐Cont.Read Operation:AL: Additive Latency,添加的潜伏期.(因为DDR3允许Read/Write command在Active command后直接开始,而实际肯定是不行的,所以需要AL来hold住command直到真正将command送到Device).)CL: CAS# Latency,列地址潜伏期.RL: Read Latency, RL=AL+CL,即实际读操作的潜伏期BL: Burst Length,突发的传输长度,BL8代表一次传输8笔数据.tRPRE: Read 前同步).DQS/DQS#differential Preamble()tRPST: DQS/DQS# differential Read Postamble(后同步).DRAM时序图Cont.‐‐DRAM时序图Cont.tRPRE的定义‐DRAM时序图Cont.tRPST的定义‐DRAM 时序图Cont.Read Timing Definition‐DRAM时序图Cont.Write Operation:WL:Write Latency写操作的潜伏期CWL: CAS Write Latency, y,列地址写操作的潜伏期‐DRAM时序图Cont.tWPRE的定义DQS/DQS#differential Write Preamble( tWPRE: 前同步).‐DRAM时序图Cont.tWPST的定义DQS/DQS#differential WritetWPST: Postamble(后同步).Write Timing DefinitionBurst Length和Prefetch技术在DDR3 SDRAM时代,内部配置采用了8n prefetch(预取)来实现高速读写.这也导致了DDR3的Burst Length为8.当然也有Burst Length为4的设置(BC4),是指另B t L th8B t L th(BC4)外4笔数据是不被传输的或者被认为无效而已.在DDR2时代,内部配置采用的是4n prefetch,Burst length有4和8两种,对于BL=8的读写操作,会出现两次4n Prefetch的动作.右图即为DDR2两次Prefech时序图.‐DRAM 时序图Cont.DDR3 Prefetch 技术的简单示意图下图是一个简单可以看做是一个逆向过程下图是个简单Read 预取示意图,Write 可以看做是个逆向过程.bit tData Register 0n-bit Data gDRAMD04D3n-bit DataMUX D7CELL D4n bit Data D t R i t Data Register‐DRAM 时序图Cont.Precharge Command Precharge Command is used to deactivate the open row in a particular bank or th i ll b k L P h b k Hi h P h the open row in all banks. A10为Low,Precharge one bank, A10为High Prechargeall banks.所以在Precharge期间,被Precharge 的Bank(s)会处于无效或者idle 状态,当打开g g ()同一个Bank 的不同Row 时,必须先Precharge.通常情况下Precharge 和Active command 是成对出现的,或者被设置为Auto Precharge.RAS time 是需要一定时间的tRP: Precharge time, Precharge 是需要定时间的Memory 讲义DRAM 时序图‐Cont.W it R f t h Write Recovery for auto precharge从Prefetch 的原理可以看出:Read:从内存读出,是有延迟的,需要先将8n 数据读取到暂存器,然后送出到Data Out,但B k R P h是只要数据被读取,这个时候Bank 和Row 就可以被Precharge.Write:从CPU 写入到Memory,对CPU 而言是同步的,对内存而言照样有延迟,需要通过暂存器输入到Dram Cell 中,因为这个延迟导致Write Command 结束后,不能立即进行Precharge动作这时就需要一个Write Recovery(tWR)来限制保证写操作顺利完成.g ,y()补充几个常用时间间隔定义补充个常时间间定义标准的内存参数标注为:CL‐nRCD‐nRPtCL和tRP前面已经提到过tRCD:Active to internal read or write delay time,直观一点说就是从发出Row Address到发出Column Address之间的最小时间间隔.tRC: Active to Active period,也可以称为Row Cycle,即打开两个不同的command period CycleRow最小时间间隔.tRAS: ACT to Precharge command periodRefresh Command and Self‐RefreshThe Refresh command(REF) is used during normal operation of DDR3 SDRAMs.SDRAMDDR3内部有一个Refresh的时间间隔要求(tREFI),DDR3每间隔tREFI的时间,就需要进行一个Refresh动作.在进行Refresh是,被Refersh的DRAM所有Bank将处于idle状态,Refresh的过程由内存内部自己的控制器完成.B k idl R f hRefresh Cycle time tRFC,Refresh的时间,此参数和内存的密度有关.Self‐Refresh:从真值表可以看到此时CKE为Low,即外部Clock处于无效状真,,态,所以内存处于不被操作状态,这时内存进入Self‐Refresh.DDR的数据传输速率计算DDR内存的上的标示通常有两种:1.DDR3 1066MHz:DDR3代表就是内存类型,这里的11066MHz DDR31066所代表的就是Data的采样速率,对于的Clock 就1066/2533MHz是1066/2=533MHz.2.PC3‐8500:这里的PC3就是代表DDR3,后面的8500代表的就是数据传输率,单位MB.3.DDR3‐8500:DDR3是内存类型,8500代表数据传输率.数据传输率的算法:Bandwidth=64bit*Clock*2/8 MB/SecDDR3 1066的BW=64*1066/8=8528MB, 标示为8500*/。