您的位置:新文秘网>>毕业相关/毕业论文/文教论文/调研报告/>>正文

毕业论文:SDRAM内存控制器研究

发表时间:2014/3/15 12:27:39

毕业论文:SDRAM内存控制器研究

摘要

  随着通用CPU迈向多核时代、视频处理ASIC迈向高清时代,存储器性能对系统整体性能的影响越来越大。然而由于工艺限制,DRAM的核心频率难以超过300MHz,各种旨在提高数据吞吐率的DRAM接口应运而生。优秀的内存控制器可以充分发挥DRAM接口的优势,在相同硬件条件下获得更好的性能,在相同性能要求下降低硬件成本。
  在绪论部分,本文讨论了DRAM的技术发展历程,重点讲述了SDRAM带来的机遇与挑战,以及后SDRAM时代的各种技术改进。第一章详细讲解了SDRAM的基本操作,并综述了常见的SDRAM读写优化技巧,对它们的优略与适用场合做了较为深入的分析。
  第三章给出了一种基于Close Page Policy的SDRAM控制器设计方案,并进行了简单的性能分析。第四章讲述了该设计方案的verilog实现、RTL级仿真、FPGA综合以及FPGA验证。第五章讲解了该设计方案的SOPC集成,包括标准化的Avalon-MM接口设计、BFM仿真测试、JTAG硬件测试。

  关键词:SDRAM,内存控制器,SOPC

ABSTRACT

  As general purpose CPU enters the multi-core era and video processing AISC enters the high-definition era, memory performance becomes increasingly important to overall system performance. However due to technology restricts, the core frequency of DRAM hasnt e*ceeded 300MHz. Thus there emerged many DRAM interface protocols aiming at high data throughput. A well-designed DRAM controller can take advantage of such protocols and achieve better performance using the same hardware or lower cost under the same performance requirement.
  In the introduction section, this paper reviewed the history of DRAM technology, especially the chances and challenges that SDRAM brought about, as well as new features appeared in the post-SDRAM age. The first chapter started with the basic operation of SDRAM, and then summarized several effective techniques for optimizing SDRAM accesses.
  Then an SDRAM controller design solution based on Close Page Policy is proposed, and basic performance analyses are performed. Ne*t, the Verilog implementation, RTL-level simulation, FPGA synthesis and FPGA verification of the proposed design are described. Finally, the SOPC integration of the proposed design is covered, including standardized Avalon-MM interface designing, BFM simulation and hardware verification through JTAG.

  Keyword: SDRAM, memory controller, SOPC

目录
第一章 绪论 11
1 前SDRAM时期的DRAM 11
1.1 DRAM的发明 11
1.2 Intel 1103 11
1.3 Mostek MK4096 11
1.4 典型的传统异步DRAM 12
1.5 Page Mode、Fast Page Mode(FPM)、Nibble mode的出现 12
1.6 E*tended Data Output(EDO)与Burst EDO的出现 13
2 SDRAM带来的机遇与挑战 13
2.1 SDRAM基本硬件参数 14
2.2 SDRAM的三维地址空间 14
2.3 芯片规格与SDRAM芯片组的容量 15
2.4 Row Buffer对SDRAM读写的影响 16
2.5 SDRAM的新天地 16
3 后SDRAM时代的DRAM 17
3.1 DDR SDRAM引入的其他重要特性 18
3.2 DDR2 SDRAM引入的其他重要特性 18
3.3 DDR3 SDRAM引入的其他重要特性 19
4 本课题的内容 19
5 论文结构 20

第二章 SDRAM基本操作与优化策略 21
1 SDRAM的基本操作 21
1.1 SDRAM回顾 21
1.2 SDRAM的基本指令 22
1.2.1 LMR指令与模式寄存器 23
1.2.2 ACT(Activate)指令、WR(write)指令、RD(Read
……(新文秘网https://www.wm114.cn省略3917字,正式会员可完整阅读)…… 
RAM的地址Wrap 48
表3.4初始化状态及其输出 50
表4.1 Micron Model的参数 59
表5.1 Avalon Wrapper端口信号 68

为保证用户的论文检测通过率,本论文的内容(包括图片、表格)均已隐去,正式会员可看到全文下载地址。


第一章 绪论
  随着工艺尺寸的缩小,当代ASIC与CPU的性能突飞猛进,然而存储器的核心频率任然只有100~200MHz左右,SDR/DDR/DDR2/DDR3等旨在提高数据吞吐率的接口协议应运而生。
  当下,设计良好的存储控制器,已成为充分发挥系统带宽潜能、降低系统功耗的有力保障。
  本章内容:首先,将分三部分简要介绍DRAM存储器:前SDRAM时代的DRAM、SDRAM带来的机遇与挑战、后SDRAM时代的DRAM;然后,将介绍本课题的内容,给出论文结构。

1 前SDRAM时期的DRAM
1.1 DRAM的发明
  1966年Robert Dennard博士在IBM的Thomas J. Watson研究中心发明了DRAM存储器,其中的存储单元采用了1T1C的结构[52]。
  Robert Dennard获得了美国专利,专利号为3,387,286。

1.2 Intel 1103
  1971年Intel发布了Intel 1103存储器,容量为1kbit。它是历史上第一个商业上成功的DRAM存储器。与经典DRAM不同,它采用3T1C的存储单元,有独立的行地址线与列地址线,读与写的数据线分离。

图1.1 Intel 1103

1.3 Mostek MK4096
  1973年Mostek发布了Mostek MK4096存储器,容量为4k,由Robert Proebsting设计。
  它是历史上第一款复用行列地址线的DRAM。行列地址线的复用,减少了封转管脚,降低了成本,这个传统延续至今。
  Mostek是Micron的前身,在鼎盛时期曾占有3/4的市场份额。

图1.2 Mostek MK4096

1.4 典型的传统异步DRAM
  在1970年代中期,占据主流的是异步接口的DRAM,那时的“Clocked DRAM”仅仅昙花一现。这种经典异步接口,与课本《数字集成电路设计透视》中的叙述十分吻合[50]。每次读写前,必须分别进行行选通与列选通,即便读写同一行里的数据,也不能省略任何步骤。一张典型的时序图如下:

图1.3 典型的异步DRAM读时序

1.5 Page Mode、Fast Page Mode(FPM)、Nibble mode的出现
  在异步DRAM的时代,出现过许多改进极富有特点的接口改进。
  Page Mode的出现是一个里程碑。Page Mode的DRAM可以把一整行数据保存在集成于片上的灵敏放大器整列中,这访问同一行时,就不必重复进行行选通。Page Mode的操作,利用了访问的空间局部性,从而提升了系统的性能。行缓冲的思想,一直延续到了当代的DRAM。
  Fast Page Mode出现于1980年代早期,直到1990年代早期任然属于主流。Fast Page Mode中,只要RAS_B有效,就打开列地址缓冲,从而可以在CAS_B发起前锁存列地址,这样就提高了读写效率。
  Nibble mode是TI对FPM DRAM的一种改进,添加了类似于4位突发传送的功能。

1.6 E*tended Data Output(EDO)与Burst EDO的出现
  在1990年代中期,出现了E*tended Data Output的DRAM。它增加了OE_B信号,来代替CAS_B去控制输出缓冲。于是,在CAS_B上升后,数据可以保持更多时间,故名“E*tended Data Output”。EDO允许CAS_B下降沿与数据交叠,缩短了page mode下的读写周期,故效率比FPM更高。
  Burst EDO增加了列地址自动增加的功能,进一步简化了操作,提高了效率。
几种异步模式的时序对比如下图[49]:

图1.4 异步DRAM的各种时序改进
(摘自ICE公司的《Memory 1997》[49])

2 SDRAM带来的机遇与挑战
  SDRAM,意为同步的DRAM,其数据和指令都与时钟上升沿对齐。最早的样品,由三星在1993年生产。在1996-2002年期间,SDRAM逐步取代了异步的FPM DRAM、EDO DRAM,称雄PC内存市场。在2003年之后,逐渐被DDR SDRAM取代。它与前代异步DRAM的不同包括:同步时钟、多Bank机制、流水线化的操作、Burst读写的引入。由于每个时钟周期,只在上升沿传送一次数据,它也被称为SDR SDRAM,以便与DDR SDRAM区别。

2.1 SDRAM基本硬件参数
  SDRAM的常见容量包括:16Mbit、64Mbit、128Mbit、256Mbit、512Mbit。其中,除了16Mbit分为2个Bank外,其他容量的SDRAM都分为4个Bank。
  SDRAM的常见数据位宽包括:4bit、8bit、16bit、32bit。如果系统位宽64bit,用16个512Mbit容量4bit位宽的SDRAM并联,可以实现8Gbit的存储空间;而如果用2个512Mbit容量32bit位宽的SDRAM并联,只能实现1Gbit的存储空间。
  SDRAM的Burst Length,即读写突发传送的周期数,一般可设置为1、2、4、8以及Full Page,在初始化时通过写模式寄存器来设置。需要注意的是,如果列读写时,地址没有与BL对齐,SDRAM会自行Wrap地址,导致意外的结果。
  SDRAM的Cas Latency,即从发送列读取指令到有效数据出现的延时,一般为2或3个时钟周期,少数器件可以为1个周期,在初始化时通过写模式寄存器来设置。一般CL=3时,tAC参数(即时钟上升沿到有效数据出现的延时)较小,从而使器件可以工作在较高的频率。
  SDRAM的常见速度等级包括:100MHz(T=10ns)、125MHz(T=8ns)、133MHz(T=7.5ns)、143MHz(T=7ns)、166MHz(T=6ns)、183MHz(T=5.5ns)、200MHz(T=5ns)。速度等级一般对应CL=3时的最高工作频率。器件的最高工作频率越高,表示其AC延时参数越小。

2.2 SDRAM的三维地址空间

图1.5 Micron SDRAM框图
(摘自Micron公司的SDRAM器件手册[9])
  当代SDRAM的地址空间由Bank、Row、Column三个维度。64Mbit及以上容量的SDRAM一般分为4个Bank。为了与内存模组中Physical Bank(Rank)的概念区别,SDRAM的Bank有时也叫Logic Bank。
  每个Bank都是一个Row与Column构建的阵列;阵列的每个单元都是一组数据,这组数据的位宽与SDRAM数据接口位宽一致。
例如,一个容量64Mbit位宽16bit的SDRAM地址空间为:4bank * (2^12)Row * (2^8)Column * 16 bit = 64Mbit,器件手册一般写为4 * 1M * 16bit = 64Mbit。

2.3 芯片规格与SDRAM芯片组的容量
  关于SDRAM芯片寻址的术语——Bank、Row、Column已在上一节给出了解释。下面解释几个SDRAM芯片组中常用的术语。
  Rank:又叫Physical Bank,指的是一组被同时操作的DRAM芯片。通常,它们的数据总线被合并,以提供系统所需要的数据位宽,如Intel处理器要求的64bit。
  Page:一般指同一个Rank中Bank adddress、Row address相同的空间。可以认为将Rank中所有SDRAM芯片中的Row Buffer合并在一起,就组成了Rank中的Page Buffer。关于Row Buffer、Page Buffer对DRAM访问的影响将在下一节讲述。
  
  以64bit位宽的系统为例,综合列出不同规格SDRAM的3维地址空间,以及组成Rank后的特性[7][8]:
表1.1 典型的SDRAM存储规格
Chip Size Chip DQ/
Fab. Bank Num Row Num Col Num Row Buf Size 64bit Page Size 64bit Rank Size
16Mb 16 ISSI 2 2048 256 4kb 16kb 64Mb
64Mb 32 Micron 4 2048 256 8kb 16kb 128Mb
16 Micron 4 4096 256 4kb 16kb 256Mb
8 Micron 4 4096 512 4kb 32kb 512Mb
4 Micron 4 4096 1024 4kb 64kb 1Gb
128Mb 32 Micron 4 4096 256 8kb 16kb 256Mb
16 Micron 4 4096 512 8kb 32kb 512Mb
8 Micron 4 4096 1024 8kb 64kb 1Gb
4 Micron 4 4096 2048 8kb 128kb 2Gb
256Mb 32 ISSI 4 4096 512 16kb 32k 512Mb
16 Micron 4 8192 512 8kb 32kb 1Gb
8 Micron 4 8192 1024 8kb 64kb 2Gb
4 Micron 4 8192 2048 8kb 128kb 4Gb
512Mb 32 ISSI 4 8192 512 16kb 32kb 1Gb
16 Micron 4 8192 1024 16kb 64kb 2Gb
8 Micron 4 8192 2048 16kb 128kb 4Gb
4 Micron 4 8192 4096 16kb 256kb 8Gb
注:其中Micron 64Mb: *32的芯片虽然是2048行,计算刷新周期时要按4096行算。而ISSI 16Mb: *16的芯片也是2048行,刷新时确实按2048行算。关于刷新的原理见后文。

2.4 Row Buffer对SDRAM读写的影响
  SDRAM的每个Bank都有一个Row Buffer,其实就是一排灵敏放大器(Sense Amplifier)。每次激活(Activate)一个Row地址后,就打开Row Buffer把整个Row的数据保存在其中;Precharge指令可以关闭指定Bank的Row Buffer,Precharge All可以关闭所有Bank的Row Buffer;我们称Row Buffer关闭的Bank为空闲(Idle)的Bank。
  由于Row Buffer的存在,SDRAM的访问分为如下三种情况[31]:
  (1) 当前访问的Row所在的bank中,row buffer关闭。此时,需要先激活Row,再发读写指令和Column地址。此情况,读写延时中等。
  (2) 当前访问的Row,正好保存在相应bank的row buffer里。此时,不需要激活Row,直接发读写指令和Column地址,就可以访问。此情况,读写延时最小。
  (3) 当前访问的Row所在的bank中,row buffer打开,存的是另一个Row的数据。此时,必须先发送Precharge或Precharge All指令关闭row buffer,再激活Row,最后发读写指令和Column地址。此情况,读写延时最大。

2.5 SDRAM的新天地
  SDRAM带来的最大机遇就是它流水线化、并行化的接口设计,只要不违反管脚、时序延时的限制,多个Bank可以并肩工作。
  恰如Scott Ri*ner在ISCA2000上指出的,“得益于当代存储器件的三维特性,重新排列存储操作顺序以分时访问DRAM大有好处。这样的优化,就好比超标量处理器乱序调度算数操作一样。”[26]
  围绕着访问请求重排、SDRAM指令乱序执行、地址映射、Row Buffer关闭策略,各种优化方法层出不穷,从简单的多bank交错操作,到包含自适应机制的Row Buffer管理策略,不胜枚举。
  针对视频处理、多核、通信等不同应用,设计SDRAM控制器时还需要根据“实时性”的限制,在低延时和高带宽利用率之间有所取舍。
  所有这些开启了DRAM控制系统的一个新篇章。

3 后SDRAM时代的DRAM
  SDRAM之后,依次出现了DDR、DDR2、DDR3这几代DRAM。和SDR SDRAM一样,它们也采用多bank流水线化操作的同步架构,其内部半导体存储单元的核心频率也任然在100~200MHz之间。DDR、DDR2、DDR3相对于SDR SDRAM最大的区别在于使用了多bit预取的技术[16]。从DDR开始,同时在上升沿和下降沿对数据进行采样。从DDR2开始,I/O接口的频率开始高于存储单元的核心频率。
  下图对SDR、DDR、DDR2、DDR3的SDRAM做了对比:

图1.6 当代DRAM接口时序对比
  不过,也正是多bit预取技术,使得DDR SDRAM的最小Burst Length为2而DDR2 SDRAM的最小Burst Length为4,DDR3略有不同,最小Burst Length为4。
  另一方面,从SDR、DDR、DDR2到DDR3,指令延时略有差异,SDR访问的优化算法也可用于DDR、DDR2到DDR3,但需要更具参数的相对关系重新调整,不能生搬硬套。
3.1 DDR SDRAM引入的其他重要特性
  差分时钟CK和CK_B。差分时钟可以抑制温度、电阻等因素对时钟精度的影响。在CK上升沿和CK_B下降沿的交叉点采样对指令信号采样;把CK和CK_B的所有交叉点作为数据采样的参考点[10]。
  数据采样脉冲DQS。DDR SDRAM使用Source-Synchronous接口,以确保搞数据传送率下的信号完整性。DQS是一个双向端口,写数据时,DQS为DDR SDRAM的输入,其上升沿和下降沿分别与两个数据各自的中心对齐;读数据时,DQS为DDR SDRAM的输出,其上升沿和下降沿分别与两个数据各自的起始边沿对齐[3]。
  片上DLL。随着数据传送频率的提升,时钟树延时(Clock Insertion Delay)变得更加严重,使得片上DLL成为了必需。片上DLL可以通过模式寄存器来开启和关闭,使用时通常会开启DLL[3]。

3.2 DDR2 SDRAM引入的其他重要特性
  Post CAS。为提高带宽利用率而作的接口时序改进。在SDR和DDR SDRAM的时代,行选通、列读取之间必须满足tRCD延时;DDR2接口中可以在行选通后直接进行列读取,而有效数据出现相对于行选通的延时不变[4]。这样可以避免不同bank间的行选通、列读取指令碰撞,提高效率。

图1.7 DDR2 SDRAM Post CAS
  ODT(On-Die Termination)。终端电阻起着平衡信号完整性和电压摆幅的作用[15]。在SDR和DDR SDRAM的时代,终端电阻是做在电路板上的,而DDR2使用了片上终端电阻(ODT),从而提高了配置的灵活性,降低了电路板的设计难度与成本。内存控制器通过写EMR寄存器来设定或更新ODT的值。
  OCD(Off-Chip Driver)校准。DDR2 SDRAM引入了片外驱动校准,以提高信号完整性[15]。校准时,调整的是片内上拉、下拉电阻的等级。由于DDR2还引入了差分的数据选取脉冲,基本已满足了信号完整性的要求,所以OCD也只在高端场合应用过。目前Micron等公司的DDR2 SDRAM已经不再支持OCD了[11]。

3.3 DDR3 SDRAM引入的其他重要特性
  RESET_B管脚。DDR3 SDRAM增加了RESET_B管脚,使得存储芯片可以很容易地进入初始化状态[5]。当RESET_B有效时,存储芯片内部时钟关闭,处于低功耗的状态;RESET_B从有效变为无效后,存储芯片自动进入初始化阶段。
  Burst-Chop与On-The-Fly技术。DDR3 SDRAM采用8n-bit预取,从DDR、DDR2的情况推测应该只支持长度为8的突发传送。但是,DDR3 SDRAM支持Burst-Chop,能够实现长为4的突发传送[5]。可以通过模式寄存器设置突发传送长度,也可以使用On-The-Fly技术通过A12地址位在发起读写时确定突发传送长度。需要注意的是Burst-Chop,只相当于一个Mask操作,不能节约总线时间。
  ZQ校准。DDR3 SDRAM的ZQ校准提供了更加有效的可控阻抗机制[12]。初始化时的长校准,使DRAM能够将驱动电路工艺偏差带来的影响最小化;正常操作时的短校准,可以减小电压、温度漂移带来的阻抗变化。ZQ校准为良好的信号完整性提供了保障。
  动态片上终端电阻(Dynamic ODT)。片上终端电阻(ODT)可以减小当前模组的时钟抖动以及其他模组引起的信号反射[13]。确保信号完整性,就可以提供可预测的有效数据窗口(data eye)。动态片上终端电阻技术,就是可以根据是否进行写操作而在标准电阻、写电阻之间自动切换,免去了像在操作DDR2 SDRAM时那样更改模式寄存器的麻烦。
  Auto Self-Refresh。JEDEC标准中的可选特性,如果实现并被启用,SDRAM会根据自身的温度决定自刷新的频率以降低功耗[5]。
  Partial Array Self-Refresh。JEDEC标准中的可选特性,如果实现并被启用,可以只刷新SDRAM中有必要刷新的Bank,以降低功耗[5]。

4 本课题的内容
  本课题研究SDRAM内存控制器的设计。从SDRAM的结构与基本操作入手,分析各种优化策略,然后给出基于Close Page Policy的内存控制器设计方案,并将其集成到Altera的SOPC系统中。
  整个设计流程包括:Spec编写、模块划分与时序设计,RTL级的verilog设计,RTL级的ModelSIM仿真,Quartus综合,后仿真,静态时序分析,FPGA测试。
  SOPC集成的工作包括:Avalon-MM Slave Wrapper的编写,Avalon-MM Master BFM仿真测试,基于Jtag to Avalon Master Bridge的FPGA硬件测试。
  
5 论文结构
  第一章:绪论。
  第二章:SDRAM基本操作与优化策略。
  第三章:基于Close Page Policy的内存控制器后端设计。
  第四章:SDRC_Lite内存控制器的仿真、综合与硬件测试。
  第五章:SDRC_Lite内存控制器的SOPC集成与测试。
  第六章:总结与展望。
  致谢。





















第二章 SDRAM基本操作与优化策略
  由于指令操作的存在,SDRAM系统的硬件带宽往往得不到充分利用。良好的SDRAM访问策略可以提高SDRAM系统的硬件带宽的利用率,在相同硬件条件下获得更好的性能或在相同性能要求下降低硬件成本。
  SDRAM具有多Bank、流水线化等结构特性,如果能够巧妙地排列指令,可以开发SDRAM的并行化优势节省总线时间;SDRAM具有行缓冲,如果根据数据访问的空间局部性、请求延时的限度,适当重排访问请求、控制缓冲策略,可以减少指令的数量,提高总线效率。
  本章内容包括:SDRAM的特性回顾与基本操作、SDRAM访问的优化方向与常用策略。由于SDRAM的初始化与带宽利用率的优化策略无关,故另行归入控制器设计原理的章节中。从本章开始SDRAM专指SDR SDRAM。

1 SDRAM的基本操作
1.1 SDRAM回顾
  SDRAM是同步动态随机存储器的缩写。同步,指它有统一的时钟,在时钟上升沿采样指令、读入或输出数据,与早期的异步DRAM不同;动态,指它必须不断刷新以维持数据 ……(未完,全文共61159字,当前仅显示11000字,请阅读下面提示信息。收藏《毕业论文:SDRAM内存控制器研究》