DDR存储控制器的设计与应用

上传人:小** 文档编号:37934899 上传时间:2021-11-05 格式:DOC 页数:69 大小:2.89MB
返回 下载 相关 举报
DDR存储控制器的设计与应用_第1页
第1页 / 共69页
DDR存储控制器的设计与应用_第2页
第2页 / 共69页
DDR存储控制器的设计与应用_第3页
第3页 / 共69页
点击查看更多>>
资源描述
国防科学技术大学研究生院工程硕士学位论文SflFTiFRS分类号JTOOO.OUDC 学号 GS0306060密级 公开一国防科学技术大学研究生院工程硕士学位论文国防科学技术大学研究生院工程硕士学位论文工程硕士学位论文DDR存储控制器的设计与应用软件工程计算机网络与通信卢泽新研究员硕士生姓名 学科领域 研究方向 指导教师国防科学技术大学研究生院二OO六年三月摘要存储器是目前数字系统中的关键部件之一,DDR SDRAM (Double Data Rate SDRAM,双倍数据率同步动态随机存储器)以其大容量、髙速率和良好的兼容 性在许多领域得到了相当广泛的应用。本文对DDR SDRAM及其控制器的结构、 接口和时序进行了深入研究与分析,得出一些DDR SDRAM控制器的关键技术特 性,然后基于Altera公司的FPGA,利用IP核设计实现了 DDR存储控制器,并 用模拟软件对其功能进行了模拟。TOE (TCP Offload Engine,即TCP卸载引繁,由硬件实现部分或全部TCP 处理)网卡是具有TCP加速功能的网卡,在分析TOE加速处理芯片结构的基础上, 通过DDR控制器的应用将DDR存储器变成网卡上的高速数据缓冲区,并通过高 效的接口仲裁器设计,解决了 TOE网卡上TCP预处理、TCP后处理和IP处理三 个子模块按照一种公平的调度策略访问DDR存储器的问题。本文重点讨论了仲裁 器的设计过程和实现方法,并且分别对DDR控制器和仲裁器进行了性能分析,得 出了儿个影响其性能的重要参数和一些有价值的结论。本文最后还对DDR存储器应用所涉及到的工程化问题进行研究,深入分析了 PCB设计中DDR SDRAM的电气特性及存储控制器和DIMMCDual In-line Memory Module,双列直插式存储器模块)条的布局布线问题,另外也进行了相关功耗的 计算和信号时序容限的计算。主题词:DDR存储控制器 应用 接口仲裁国防科学技术大学研究生院工程硕士学位论文ABSTRACTMemory is one of the crucial devices in the digital system at present,the DDR(Double Data Rate) SDRAM has many advantages for its large capacity and high speed,it has been used in quite a number of fields,such as the Server,the WorkStatioand the Personal computer.The pivotal technologies of DDR SDRAM and memory controller such as Structure,Interface and Timing are explored in this article3after a research on the main feature inside the DDR controller,several functional modules of the controller are designed out,and implemented via Altera FPGA and IPcore.Additionally,the performance of the DDR controller is simulated and tested by simulation tool softTOE(TCP Offload Engine) network interface card can accelerate the TCP process.A practical application with the DDR controller is introduced in this article will be used in a TOE network interface card(TNIC) and make the DDR SDRAM a high speed data bufler.in this card,a TCP preprocess module and a postprocess module along with a IP process module need to access DDR SDRAM via the controller,this article also describes a DDR controller bus arbiter which makes many function module can access DDR memory efficiently in course of the TOE NIC design via FPGA.the DDR controller becomes a vital component of the entire TOE system.This article put emphasis on discuss the design process and the implement methods about the arbiter,and besides,the performance of the controller and the arbiter has been analysed, several parameters which affect the performance also have been deduce,some valuable conclusions are gained-Finally.about the boardsdesign in the engineering process,some skills of the traces and placement of the signals between controller and the DIMM(Dual In-line Memory Module) socket are analysised in particular. In addition,DDR chips power consumption and the signaFs timing margin have been discussed.Key Words: DDR Memory Controller Application Arbiter of Interface第ii页表目录表2.1控制器的四种时钟.: 7表4.1仲裁器外部接口信号 “37表5.1 DDR存储器部分所需的相关电压42第III页图目录11 1 ISs?fij M|J图1.2 种存储控制器的结构 4S2.1 DDR芯片上的DLL电路 7图2.2 DDR芯片内部的数据流程 9图 2.3 512MB Unbuffered SODIMM 功能块图 0图2.4控制器数据通路 10图2.5 DRAM存储单元 11图2.6 DRAM芯片的刷新计数器 “12图2.7控制逻辑外部接口信号 1415图2.8控制器总体框图图2.9控制器的状态转换 16图2.10读写操作的数据流框图. 17图2.11典型的写操作波形 181921图2.12两个PLL模块结构图“图3.1 IP模块特性描述设计块图图3.2 DDR控制器的设计框图.“22图3.3锁相环的时钟输出23图3.4软核控制器数据通道23图3.5图3.6图3.7图3.8控制器状态机软核控制器的模块组成25锁相环的外部连接 27Stratix H 内部 DLL 结构 28图3.9对控制器模拟的波形29图 4.1 TOE 模块划分32图4.2与DDR核相关的各功能模块 33图4.3仲裁器外部关系框图 “33图4.4仲裁器状态转换 .36图4.5仲裁器与功能模块之间遵循的时序 .36图4.6连续写操作下local_ready信号的变化(时钟200MHz) 39图 4.7 存储器 Burst 长度与总线利用率”40图4.8仲裁器平均响应时间曲线 40图4.9三种仲裁策略41第IV页图5.1图5.2图5.3图5.4图5.5图5.6存储器VTT电压的实现 存储器参考电压的实现,SSTLD终结方式DDRDQ, DQS, DM, A, BA, Ctrl 信号的连接终结 片选信号的连接终结.43.43434445时钟信号的连接.独创性声明本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。学位论文题目:DDR存储控制器的设计与应用学位论文作者签名:陈冥 日期:6年3月日学位论文版权使用授权书本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以釆用影印、缩印或扫描等复制手段保存、汇编学位论文。(保密学位论文在解密后适用本授权书)学位论文題目:jy日期:3必年3月3。日日期:年3月JoH作者指导教师签名:学位论文作者签名:国防科学技术大学研究生院工程硕士学位论文第一章绪论存储器对现在大量使用的数字化系统的性能至关重要,是决定系统性能的关 键设备之一 面对越来越多样化的应用需求,存储技术发展得相当迅速,其中DDR SDRAM以其离速、大容量.运行稳定与高性价比等优点已经成为目前存储器的主 流。因此DDR存储控制器的设计和应用具有重要意义。本章主要介绍DRAM芯片技术的基本原理及其发展过程与趋势,简要描述了 DDR SDRAM以及控制器的一些技术特点。1.1 DRAM技术的发展存储器芯片按存取方式(读/写方式)可分为随机存取存储器芯片(RAM)和 只读存储器芯片(ROM)。ROM中的信息只能被渎出,而不能被操作者修改或删除, 故一般用于存放固定的程序,如监控程序、汇编程序等,以及存放各种表格。RAM 主要用来存放各种现场的输入、输出数据,中间计算结果,以及与外部存储器交 换信息和作堆栈用。它的存储单元根据具体需要可以读出,也可以写入或改写。 由于RAM由电子器件组成,所以只能用于暂时存放程序和数据,一旦关闭电源或 发生断电,其中的数据就会丢失。现在的RAM多为MOS型半导体电跖 它分为 静态-SRAM和动态一DRAM两种.SRAM是靠双稳态触发器来记忆信息的, DRAM是靠MOS电路中的栅极电容来记忆信息的。由于电容上的电荷会泄漏,需 要定时给与补充,所以DRAM需要设置刷新电路。但DRAM比SRAM集成度高. 功耗低,从而成本也低,适于作大容量存储器。计算机技术日新月异,作为关键部件的的内部存储器也飞速发展着,从最初 的 SIMM (Single In-Line Memory Module,单列直插内存模块)DRAM、FPM (Fast Page Mode RAM 快速页面模式内存)DRAM、EDO ( Extended Data Out DRAM 扩展数据输出动态存储器)DRAM发展到今天的SDRAM、RDRAM(Rambus DRAM)及DDR RAM,让我们都有些目不暇接。EDO RAM、SDRAM、RDRAM. DDRRAM都属于DRAM(DynamicRAM),即动态存储器。所有的DRAM基本单 位都是由一个晶体管和一个电容器组成。具有结构简单、集成度高、功耗低、生 产成本低等优点,适合制造大容量存储器,所以现在我们用的存储器大多是由 DRAM构成的,在很多领域得到了相当广泛的应用。自1980年以来,CPU的标准工作频率已经提高了好几百倍(从5MHz到3GHz 以上)与之相比,存储器的发展相对较慢,在工作频率上也只不过提高了十几 二十多倍.过去,CPU从结构和制造工艺上都得到了改进,而存储器只是在制造 工艺上得到了提高。每片DRAM的存储密度从1Kb发展到64Mb,这反而减少了 对DRAM数量的需求,也延缓了厂商对提高数据传输率的研究步伐。简而言之, DRAM传输率的步调未能跟上其密度的发展.由于更先进的软件特别是多媒体应用程序对存储器带宽(速度)的强烈需求 以及微处理器频率的提高,要求在存储子系统中交换更多的数据,对主存储器的 容量要求不久后就会超过2GB,对其频率的要求也会突破1G.DRAM元件参数的趋势,大体呈现缩小化的设计,其中设计规则由16M的0.5 微米线宽工艺,以70%的比例不断缩小,到64M采用0.35微米,256M采0.25微 米,1G时则将采用0,18微米的制造技术。在晶片大小的演变则呈增大1.5倍的趋 势,由16M时的130mm2, 256M时将以300mm2为主流,而在DRAM元件参数中 相当重要的Cs(capacity storage)不论DRAM世代的发展如何,都维持在2530fF 的范围。新一代DRAM主要采用的架构特性可分为:(1) 同步接口(Synchronous Interface) DRAM工作在CPU外部总线的频率上, 与 CPU 的时钟同步。包括 SDRAM. DDR SDRAM. Cache DRAM(CDRAM). SGRAM、RDRAM;(2) 多体(Multiple Banks),使DRAM能对整个Memory Block寻址,而不只是 一小片存储区域。DRAM的内部是一个存储阵列,阵列就如同表格一样,将数据 “填”进去,你可以它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是 存储器芯片寻址的基本原理,存储阵列就是逻辑Bank.由于技术、成本等原因, 不可能只做一个全容量的L-Bank,而且最重要的是,由于DRAM的工作原理限制, 单一的L-Bank将会造成非常严重的寻址冲突,大幅降低存储器效率。所以人们在 SDRAM内部分割成多个L-Bank,较早以前是两个,目前基本都是4个。包括 SDRAM、SGRAM、RDRAM、MDRAM;附加缓存(Integrated Che),包括 CDRAM、Enhanced DRAM(EDRAM);(4) 议定逻辑(Protocol Logic),包括 RDRAM、Synclink DRAM(SLDRAM);(5) 上述特点组合。分析未来几款主流DRAM, DDR DRAM由于是第二代SDRAM,其标准化的 优点使原来DRAM厂商都可投入研发,后势看好。下图就反映了近几年各种存储 器的市场份额:图1.1存储器的市场份额走向可以看出,DDR存储器目前应用的最为广泛,如个人电脑.网络服务器.工 作站等等,特别是在高速大容量的存储领域扮演着相当重要的角色。1.2 DDR SDRAMDDR存储器的核心建立在SDRAM的基础上,.但在速度和容量上有了提高。 首先,它使用了更多、更先进的同步电路,使用了差分时钟输入.其次,DDR使 用了 Delay-Locked Loop(DLL,延时锁定回路)和数据选通滤波信号(DataStrobe signal),当数据有效时,存储控制器可使用这个数据选通滤波信号来精确定位数 据,每8位数据对应输出一次数据选通滤波信号,并且同步来自不同的双存储器 模块的数据。DDR存储器本质上不需要提高时钟频率就能加倍提高SDRAM的速度,它允 许在时钟脉冲的上升沿和下降沿读出数据,因而其速度是标准SDRAM的两倍。至于地址与控制信号则与传统SDRAM相同,仍在时钟上升沿进行传输。DDR存储器的设计可让存储控制器每一组Module,双列直插式存储器模块)上的颗粒相接时,维持相同的负载,减少对主板的影响。在存储器架构上,传统SDRAM属于X8组式,即存储器核心中的1/0寄存器有8位数据I /0,但对于X8组的DDR SDRAM而言,存储器核心中的 I/O寄存器却是16位的,即在时钟信号上升沿时输出8位数据,在下降沿再输出 8位数据,一个时钟周期总共可传输16位数据。DDR芯片内部除了四个存储矩阵(四个逻辑bank)之外,就是一些控制逻辑、 行列缓冲与解码.1/0寄存器或缓冲。DDR存储器所需的差分时钟由外部提供, 用来触发芯片上的地址寄存器、定时寄存器和数据输入寄存器,还给DLL (延迟 锁定回路)提供时钟。其中,Strobe生成器与DLL是DDR芯片独特的设计,芯片 内部总线位宽是芯片I/O总线位宽的两倍,这就是所谓的两位预取(2bit Prefetch).系统时钟不再用来进行数据的传输,只用来采样地址与命令信号和定义时钟域。使用双向的DQS信号进行源同步计时定位读/写的数据信号。DDR存储器可以在不用大量增加管脚的情况下(SDRAM是168 PIN, DDRSDRAM是184PIN),大幅度提高数据传输的带宽(提高了一倍),并且目前价格 也非常便宜,性价比很高,足以满足一般的存储设计需求。13 SDRAM存储控制器存储控制器是按照一定的时序规则对存储器的访问进行必要控制的设备,包 括地址信号.数据信号以及各种命令信号的控制,使主设备(访问存储器的设备) 能够根据自己的要求使用存储器上的存储资源。存储控制器的作用主要就是进行接口的转换,将主设备发出的读、写等命令 转换成存储器能够识别的信号,还要完成主设备与存储器之间地址译码.数据格 式的转换(比如数据位宽.最常用的存储控制器是集成在微型机主板上北桥芯片内部的MCH(Memory Controller Hub)存储器控制中心,微处理器通过前端总线和北桥芯片来读.写物理 存储器中的数据。例如Intel845PE芯片组的82845PE GMCH是其北桥芯片,其 MCH (实际就是一种存储控制器)可以支持DDR333存储器规范,最高存储器与 MCH之何的带宽达到2.7GB / s(333MHz x 8Byte)。支持更高数据率DDR400的 MCH可以把数据传输带宽提高到3.2GB / s。存储控制器的结构基本上都大同小异,针对不同的系统应用就有相应的存储 控制器来负责完成主设备对存储器的访问。下图就给出了一种AHB(Advanced High performance Bus)上存储控制器的结构:图12 种存储控制器的结构其中,总线接口模块负责接受和响应总线上的读/写请求,进行总线交易(transaction). MSHR(Miss Status Holding Registers)记录存储器访问的信息(地址等) 以进行存储器访问相关解决输入数据缓冲负责保存写访问中的数据(假定输入 数据缓冲足够大),这将使控制器无需插入总线等待周期便完成写请求(除了 Undefined Length Burst写请求),并同MSHR共同实现存储器访问相关解决技术。 地址重映射/存储器访问调度模块进行地址重映射,并对重映射后的访问进行存 储器访问动态调度,类似于处理器中指令的“乱序执行” .存储器的种类非常繁多,不同存储器上信号的定义.输入输出电平的标准、 工作时序也都各不相同,因此根据具体使用的存储器的种类,存储控制器也可以 分成许多种。例如,以前广泛使用的SDRAM,目前流行的DDR SDRAM,正在 不断发展的DDR2、DDR3,还有QDR、RAMBUS存储器等等,与它们对应就有 各自匹配的存储控制器。随着对存储性能要求的不断提高,存储器的容量越来越大、速度越来越快, 新的存储器访问技术也应运而生,存储控制器也在不断的改进与发展。例如,由 传统的单一通道控制器到双通道技术,再到处理器内部整合封装存储控制器,其 发展相当迅速,未来肯定会有更新的技术出现,到那时,可能就没有存储控制器 的概念了1.4本文的主要贡献本文主要介绍了一种基于Altera公司FPGA的DDR SDRAM Controller IP核, 由硬件实现DDR存储控制器,完成用户逻辑模块(用FPGA实现)对DDR SDRAM 的读/写访问,降低了系统的复杂度,从而可以提高整个系统的性能。在本课题的研究中主要完成了以下工作并且取得了相应的成果:首先,深入研究了 DDR存储器的结构、特性和工作原理,分析了 DRAM芯 片关键技术和数据存取的工作流程与时序关系,理解了 DDR存储器的相关重要参 数的含义,为以后有效的使用DDR存储器,甚至设计DDR存储器都打好了坚实 的基础。其次,根据DDR存储器的工作方式,参考现有的存储控制器进行设计,重点 在第二章研究了存储控制器的关键技术,独立用FPGA进行DDR存储控制器的逻 辑设计并加以实现。在第三章又利用Altem公司的IP核实现另外一个工程所需的 DDR控制器。最后,第四章设计了高效的存储器接口访问仲裁器,解决网卡上FPGA内部 多个TCP / IP报文处理模块使用片外DDR存储器作为高性能数据缓冲区,将DDR 存储控制器和仲裁器在TOE卡上进行了应用,解决了系统访问DDR存储器的问 题。第五章对整个DDR存储系统的工程化做了必要的介绍。第二章DDR SDRAM控制器关键技术及其实现存储控制器就是按照一定的时序规则对存储器的访问进行必要的控制,包括对 读/写请求信号、地址信号、数据信号以及各种命令信号的控制,使主设备(访 问存储器的设备)能够根据自己的要求使用存储器上的存储资源。其作用主要就 是进行接口的转换,将主设备发出的读、写等命令转换成存储器能够识别的信号, 还要完成主设备与存储器之间地址译码、数据格式的转换等.本章主要对DDR SDRAM控制器的关键技术进行分析和研究。2.1时钟控制2.1.1 DDR芯片与DIMM条的时钟DDR的DIMM条一般需要三对差分时钟来提供给DDR SDRAM芯片内部进 行正常的工作,DIMM条上的几个DDR芯片共用一对差分时钟。该差分时钟给芯 片内部的地址寄存器、数据输入寄存器、定时寄存器以及DLL提供触发时钟。差分时钟是DDR的一个必要设计,也就是时钟信号多了个CK#, CK#与正常 CK时钟相位相反,形成差分时钟信号.芯片内部所有的地址和控制输入信号都在 CK的上升沿与CK#的下降沿被触发获取,而数据的传输在CK与CK#的交叉点进 行,在CK的上升与下降沿(此时正好是CK#的上升沿)都有数据被触发。但CK# 的作用,并不能理解为第二个触发时钟,而是起到触发时钟校准的作用。由于数 据是在CK的上下沿触发,造成传输周期缩短了一半,因此必须要保证传输周期的 稳定以确保数据的正确传输,这就要求CK的上下沿间距要有精确的控制但因为 温度、电阻性能的改变等原因,CK上下沿间距可能发生变化,此时与其反相的 CK#就起到纠正的作用(CK上升快下降慢,CK#则是上升慢下降快)。而由于上 下沿触发的原因,也使CL (CAS Latency,列地址选通脉冲延迟时间)=1.5和25 成为可能,并容易实现。时钟主频200MHz的DDR SDRAM,其数据传输就是 400MHz。DDR SDRAM对时钟的精确性有着很高的要求,实际上有两个时钟,一个是 外部的总线时钟,一个是内部的工作时钟,在理论上DDR SDRAM这两个时钟应 该是同步的,但由于种种原因,如温度、电压波动而产生延迟使两者很难同步, 更何况时钟频率本身也有不稳定的情况。DDR SDRAM的tAC就是因为内部时钟 与外部时钟有偏差而引起的,它很可能造成因数据不同步而产生错误的恶果。实 际上,不同步就是一种正/负延迟,如果延迟不可避免,那么若是设定一个延迟 值,如一个时钟周期,那么内外时钟的上升与下降沿还是同步的。鉴于外部时钟周期也不会绝对统一,所以需要根据外部时钟动态修正内部时钟的延迟来实现与 外部时钟的同步,这就是DLL的任务。DDR存储器芯片上的DLL不同于一般的PLL,它不涉及频率与电压转换,而 是生成一个延迟量给DQS (数据选择脉冲,用来采样有效数据)信号。DLL是一 个重要的辅助校准设计,保证DQS信号与外部时钟的同步,从而保证数据的输出 与外部时钟同步。DLL有两种实现方法:时钟频率测量法与时钟比较法。DDR SDRAM的一个DLL电路框图:CLK (SSTL)图2.1 DDR芯片上的DLL电路与DDR存储器芯片上的DLL对应,存储控制器上也有相应的DLL电路,它们完成的功能是一样的。2.1.2 DDR控制器的时钟控制器所涉及到的时钟信号有四个:系统时钟、写时钟、再同步时钟与后同 步时钟。表2.1控制器的四种时钟时钟信号作用系统时钟控制器的全局工作时钟,也为方储器芯片产生羞分时钟写时钟触发佥制器内的写数据寄存器,同步写数据再同步时钟读取数据时,过渡数据的时钟域后同步时钟读取数据时.在再同步之前确保数据的完整性,防止噪声干扰系统时钟是整个控制器的工作时钟,驱动挖制器的状态机和用户端接口时序, 系统时钟在控制器内部还被转换成几对差分信号作为DDR存储器的时钟输入。一 般从控制器输出三对差分时钟作为DDR存储器的工作时钟,该系统时钟并不用来作为传输数据,只用来采样获取控制器发出的命令控制与地址信号,以及定义时 序周期域。尽管如此,在读数据时,存储器的差分时钟与数据信号是边沿校准对 齐,在写数据的时候,存储器差分时钟的边沿与数据信号是中心校准。在DRAM 芯片内部,被DQS采样获取的数据应该被转换到系统时钟域,才能对其进行内部 操作.写时钟落后系统时钟270。(也即提前系统时钟90。),写时钟用来触发写 数据和写数据掩码寄存器,使其与DQS信号有相位偏移。要写入存储器的数据被 写时钟触发由控制器送到了 DQ pin上面,而写DQS信号由系统时钟触发产生, 被送到DQS pin上,因此写DQS信号的边沿就刚好与数据信号的中心对准。再同步时钟提供从DQS时钟域到系统时钟域转换所需的时钟,触发再同步寄 存器.读DQS的相位与系统时钟的相位之间的关系可以根据往返延迟(round trip delay)计算岀来,往返延迟就是读命令发出给存储器直到读数据返回被控制器获取 所花的时间。被读取的数据首先从DQS时钟域被转换到再同步时钟域进行过渡, 然后才从再同步时钟域被转换到系统时钟域,最后在控制器内部再对读数据进行 下一步处理。后同步时钟为DQS后同步逻辑提供时钟,以禁用DQS采样寄存器,保证在 DQS读后同步信号结束后其状态过渡为高阻,确保已经获得的数据不会被损坏, 也就是防止噪声与干扰。22数据通路2.2.1 DDR芯片及DIMM条的数据通路DDR存储器芯片内部的数据通路分为写入与读出两个部分.在对存储器进行写操作的时候,外部数据总线上的数据DQ在外来DQS(DDR 存储控制器提供)的同步之下被送到数据输入寄存器内做8位到16位的转换,因 为芯片内部总线位宽是芯片I/ 0总线位宽的2倍。写使能和掩码DM通过I / O控制来决定是否进行8位到16位的位宽转换,从而控制是否将数据 单元里面在对存储器进行读操作的时候,存储单元里面16位的数据经过信号放大,被送出执行2位预取操作,数据就被转化为宽度为8位的数据流,分别从每个时钟周期的上升沿和下降沿传送出到输出缓冲,然后被送到DQ数据己经在Strobe生成器产生的DQS信号同步之下了图2.2给出了 DDR芯片内部的数据流程。定延回迟路锁波选 生通 成滤UO控制Strobe掩码输入奇存器ax图22 DDR芯片内部的数据流程DDR DIMM (Dual In-line Memory Module,双列直插式存储器模块)条是由 多个存储芯片(存储器颗粒)的级联,扩展其数据总线位宽与存储容量。一般是 将芯片8位数据扩展为64位数据总线,每个地址都与芯片内逻辑bank中相应的8 位存储单元对应。芯片上1位DQS与1位DM信号对应8位DQ数据,在DIMM 条上DQS与DM也进行了相应的扩展,64位数据就分别对应了 8位DQS与8位 DM信号.经过片选、bank选择,最后按照行、列地址在DIMM条上一次可以读 /写64位的数据。下图是16片32MX8的存储芯片组成的512M SODIMM存储器条结构中的四个 芯片(采用的是54pin sTSOP(II)封装):图 23 512MB Unbuffered SODIMM 功能块图整个DIMM条上往外输出的数据信号实际上就是存储器芯片的数据信号直接输岀,在与外部器件连接的时候就要使用SSTLII终结方式进行端接,本文后面将 会对其进行介绍.222 DDR控制器的数据通路控制器的数据通路为DDR SDRAM的双向数据总线与本地用户端读、写数据 总线提供接口。用户端的数据宽度是DDR SDRAM数据宽度的两倍,这是因为DDR SDRAM数据接口在时钟的两个边沿均触发数据。控制器数据通路主要传送的是DM、三类信号.可以把存储器接口端的八位信号、用户端十六位第10页国防科学技术大学研究生院工程硕士学位论文第#页国防科学技术大学研究生院工程硕士学位论文读/写数据信号作为一个DQS组进行管理,简化了控制器的结构,使其对存储器的访问也更为方便灵活。如下图所示&在读方向,jrdata wdati图24控制器数据通路沿触发的边沿触发器,在DQS信号的两个边沿釆样数据。接着,这些信号通过另 外一套可配置的寄存器被传递,把它们返回到系统时钟域。在写方向,用户端写数据寄存器的输出按照系统时钟(CLK)被送入控制器中的 寄存器,然后就被放到DQpin上。控制器中的寄存器以写时钟(writeclock)(写时 钟的相位比系统时钟提前90 )作为触发时钟,因而数据通路模块产生的DQS信 号的边沿就会出现在DQpin上数据信号的中央。理解数据通路的工作原理:假定系统时钟的频率为xMHz,数据通路模块在和 DDR存储器接口的一方完成了 2个转换:一是将DDR过来的数据总线宽度翻倍, 二是将DDR在时钟上、下沿送出的数据用2rMHz的时钟频率接收。数据通路模 块在和用户端接口的一方也相应地做了 2个转换:一是将用户端过来的数据宽度减半送给DDR,二是将用户端工作在xMHz频率下的数据以2xMHz的频率送给 DDR。DDR送来的数据是在xMHz的时钟频率的上升和下降沿被读岀的,而到了 数据通路模块则将时钟频率倍频到2rMHz,因此只需在时钟的上升沿读出数据即 可。其中的时钟倍频可采用数字锁相环技术将输入时钟升频。2.3刷新控制2.3.1 DDR SDRAM的刷新电路DRAM的存储单元可以理解为一个电容总是倾向于放电,因此必须有定时 的刷新周期以避免数据丢失。DRAM可以采用自动刷新或自刷新两种刷新模式。 自动刷新实现较为简单而自刷新功耗更小.刷新控制器决定刷新的时间间隔,刷 新计数器保证每个单元都能被刷新。因此DRAM的部分周期必须分配给刷新操作 而降低了系统性能。DRAM存储单元示意图如图2.5:行地址线行选通存储电容剧新放大器E-列选通位线图2.5 DRAM存储单元DRAM的自动刷新不是一个难题,另外一个关键问题在于当对存储单元进行 读取操作时保持其内容不变,所以DRAM单元每次读取操作之后都要进行刷新, 执行一次回写操作,因为读取操作也会破坏存储器中的电荷,也就是说对于存储 器中存储的数据是具有破坏性的。这个任务由数据所经过的刷新放大器来完成, 它根据逻辑电平状态,将数据进行重写(逻辑0时就不重写),由于这个操作与 数据的输出是同步进行互不冲突,所以不会产生新的重写延迟.后来经过技术的 改良,刷新放大器被取消,其功能由SAMP取代,因为在读取时它会保持数据的 逻辑状态,起到了一个Cache的作用,再次读取时由它宜接发送即可,不用再进 行新的寻址输出,此时数据重写操作则可在预充电阶段完成。所以存储器不但要 第11页国防科学技术大学研究生院工程硕士学位论文端逻辑发CMD_ACK命令的时间直到刷新操作完成。如果刷新命令正在进行操作 期间发出,则要一直等待到操作全部完成。在刷新命令发给DDR存储器之前,控制器将把一个ddr_busy信号置为高电平 持续一个周期,在刷新周期内,该信号将一直保持为高电平。如果当别的操作执 行完之后,有一个周期性的刷新命令总外丢失,则控制器就会在后面的读操作执 行之后立即执行一个自动刷新操作DDR SDRAM存储bank上的每一行每隔64ms必须对其进行刷新,刷新命令 次对一行有效,发送间隔也是随总行数而变化,例如一个256M的存储器有8192 行,则刷新命令发送间隔时间为7.8 P s。24控制逻辑2.4.1 DDR SDRAM的状态转换DDR SDRAM芯片有很多工作状态,各种工作状态组合在一起共同完成一项 操作.执行控制器发出的一系列命令,实现对存储器芯片的具体访问。下面介绍 一些重要的命令与状态。芯片不被选中(即CS为高电平),这种状态将阻止新的命令被芯片执 行,而不影响已经在运行的操作。空操作(NOP),芯片己经被选择,该状态可以避免意想不到的命令在空 闲和等待状态被记录,也不影响正在处理的操作.模式寄存器设置(MRS),通过地址线A0-A13加载模式寄存器,该状 态仅仅在所有的bank都空闲,并且没有突发操作在处理的时候在能进行 转换,后面的可执行命令要等到1MRD到达才能发出.行激活(ACTtVE),打开一个即将要访问的行,该行保持激活状态直到 预充电命令发岀给该行所在的bank.预充电(PRECHARGE),关闭特定bank上己经打开的行或者关闭所有 bank上打开的行,为接下来的行访问做准备。自动预充电(AUTOPRECHARGE),不需要直接的命令而对特定的行进 行预充电操作,用A10信号进行选择.读(READ).写(WRITE),发起对所激活的行进行突发读.写访问, 如果自动预充电被选择,那么在读、写突发完成之后就立即对该行进行预 充电操作.否则,该行一直被打开以执行下一个操作控制器根据以上的这些命令与状态.按照一定的时序参数对DDR存储器进行 操作访问。2.4.2 DDR控制器的控制逻辑主控逻辑的主要作用是将用户命令转化为控制DDR SDRAM设备的总线命 令。根据DDR SDRAM规范,总线命令利用信号CSJi, RAS.N, CAS_N, WE_N(“_1P表示低电平有效)的组合来控制DDR SDRAM器件,共有八种总线命 令。控制逻辑要进行命令译码和刷新减计数,译码并寄存从用户端来的命令,将 译码后的 NOP、WRITEA、READA. REFRESH. PRECHARGE 和 LOAD_MODE 等命令及相应的地址转送给命令模块.减计数器和相应的控制电路用来产生刷新 命令给命令模块,其值就是由L0AD_REG2命令写入到REG2中的值。当计数器 减到0时,控制接口模块就向命令模块发REFRESH_REQ并一直保持到命令模块 发REFRESH_ACK来响应该请求。一旦控制接口模块接收到REFRESH_ACK,减 计数器就会重新写人REG2中的值。图2.7给出了主控逻辑的相关外部接口信号:控制逻辑-ldf_prsstate -row_add renId mrddr_readcn dr write en图2.7控制逻辑外部接口信号命令模块可以由1个简单的仲裁器,命令发生器及命令时序器组成。它接收 从控制接口模块来的译码后的命令,接收刷新控制逻辑发来的刷新请求命令并产 生正确的命令给DDR存储器。仲裁器在控制接口发来的命令(也就是用户端逻辑 通过控制接口译码后的命令)和刷新控制逻辑发来的刷新请求命令之间进行仲裁。 刷新请求命令的优先级高于控制接口来的命令。如果控制接口来的命令和刷新请 求命令同时到达,或者同在一个刷新操作期间,则仲裁器就会拖延向用户端发 CMD_ACK命令的时间直到刷新操作完成。如果刷新命令正在进行操作期间发出, 则要一直等待到操作全部完成。在仲裁器收到用户端发来的命令后,该命令就传 送到命令发生器,命令时序器可以用移位寄存器产生正确的命令时序后发给DDR 存储器晨个移位寄存器用来控制激活命令时序,1个用来控制READA和WRITEA 命令,1个用来计时操作命令的持续时间,为仲裁器确定最后的请求操作是否完成。对DDR SDRAM的读/写访问是突发方式的,突发长度可以为2、4或8,由 突发控制子模块控制。访问开始于激活(ACTIVE)命令的发出,随后是读(READ)或写(WRITE)命令.与ACTIVE命令一起发出的地址位用来选择要访问的体和行, 与READ或WROTE命令一起发出的地址位用来选择突发访问的起始列单元。如果 控制器想访问不同的行,它将用PRECHARGE命令先关闭已打开的体,然后再打 开它.在正常操作前,DDR SDRAM被初始化。2.5 DDR控制器的实现根据前面所提到的关键技术,可以设计一种基于FPGA的DDR SDRAM控制 器。DDR SDRAM控制器的总体逻辑图如图2.8所示。主要由DDR控制模块(主 控逻辑与刷新控制)、DDR接口模块(数据通路及外部信号)以及时钟锁相环模 块(PLL)三部分组成下面详细介绍各个模块的设计。图2.8控制器总体框图DDR SDRAM2.5.1 DDR控制模块的设计DDR控制模块包含了主要的状态转换。用户逻辑通过user_cmd对DDR控制 模块写入命令,完成总线仲裁.解释命令、时序分配等任务。当DDR接口模块对 DDR SDRAM读写数据时便进行控制。控制器的状态机如图2.9所示。复宿空闲启始状态控制器开始设置在空闲(idle)状态,接下去的状态根据控制命令的不同可以是 预充电(Precharge)、导入模式寄存器(Load Mode Register)、刷新(Re&esh)、行有效 (Active)等状态.要进入读写数据状态,必须先经过行有效状态。读数据时,状态 机由行有效状态转换为读准备状态,然后根据指令进入读状态。控制模块保持在读状态直到脉冲终止命令触发或者数据读完。2.5.2 DDR接口模块的设计DDR接口模块负责维持外部信号、DDR控制器与DDR SDRAM之间的双向 数据总线信号,保证数据和命令能送达DDR SDRAM,将用户端完整地址转换为 DDR存储器访问地址,并且在DDR控制器与存储器之间产生必要的时序关系。 图2.10给出了读写操作的数据流框图。图2.10读写操作的数据流框图对写周期而言.128位的usejdata被fpga_clk2X分频为64位的数据,通过 lac_dk选择高低位。为了减小输入输出的延迟,数据在进出模块时都将被保存在 输入输岀寄存器中。ddr_write_en产生ddrjiq所需的三态信号。对于读周期而言, 64位的ddr_dq信号在输入输出寄存器被mga_clk2X触发装配成128位的信号,其 中低位信号在下降沿时被装配,高位信号在上升沿时被装配。图2.11给出了一个典型的写操作的波形图。:TI : 12: 13: T4 : TS : T6 : T7 : T8 :79T10很iruTrLrLrLrLTLrLrLrbNOP9%rwwncAU:UM.Lr;!oo6ooo6oc 4-hJrhjijK2.ll典型的写操作波形在T1期间,写命令、地址和第一个128位数据被分别置于user_cm(i、user_addr 和user.dataj三个端口。在T2期间,控制器的状态由空闲转变为有效.接下来两 个周期,控制器给出ACTIVE命令以及行片选地址再经3个周期的延迟以后, 控制器给出WRITE命令和列片选地址。接下来,ddjdq和ddjdqs被设置成双倍 速率模式。2.5.3时钟(PLL)模块的设计图2A2示出了给FPGA以及DDR SDRAM提供时钟信号的两个PLL模块的 结构图。第18页国防科学技术大学研究生院工程硕士学位论文y_clkL-fgAP sysjdkCUONCLKFBreset inMarPLLJEXTRSTCLKOCLK90CLK180CLK270CLK2XCLKDVLOCKEDddr elkCLKINCLK0CLKFBCLK90CLK130CLK270C1X2XRSTCLKDVLOCKEDPLL INTfpga_dk仏dk2X图2.12两个PLL模块结构图第一个 PLL 模块,即 PLL_EXT 给 DDR SDRAM 提供 ddr_clk 及 ddrlk#差分 时钟信号,并且接收ddr_clk的反馈。第二个PLL模块,即PLLJNT给FPGA提 供两个内部时钟信号fjga_clk和fpga_clk2X,它的反馈信号来自卸ga_clk。两个 PLL有着相同的时钟源输入,不同的反馈信号保证了输入时钟和FPGA时钟以及DDR SDRAM时钟之间的“零延迟”。将上面的三大功能块分别用Verilog语言将其实现在FPGA上,并用一个顶层 模块进行调用组合成为一个完整的DDR控制器。主要设计选用Altera公司的Stratixn系列来实现,利用其内嵌的PLL模块和专用的输入输出bank能极大地方便设计。第19页国防科学技术大学研究生院工程硕士学位论文第三章 基于IP核的DDR存储控制器实现ip核是预先设计好的电路功能模块,利用ip核可以缩短系统级芯片开发时间。 基于IP核复用技术的SoC设计使芯片的设计从以硬件为中心转向以软件为中心, 芯片设计不再是门级的设计,而是IP核和接口及其复用设计.IP核集成到系统所 要考虑的问题包括:同步,例如全局执行、数据交换和协议方面的同步操作:协 议转换,不同模块间不兼容的协议的转换,封装可用来解决这个问题,但需要考 虑时序约束;I/O缓存,为满足系统行为和时序约束可能需要缓存数据。为解决 这些问题就需要一个好的接口标准,一些大公司现在已经有自己的IP核接口标准, 比如 Altera 的 Avalon# Atlantic、IBM 的 CoreConnectARM 的 AMBA 等。总之,随着FPGA规模越来越大,设计越来越复杂,IP核是发展趋势。3.1 DDR控制器IP核简介Altera公司提供的DDR与DDR2 SDRAM控制器编译工具(Compiler)与其 Quartus D 起为自定义.高速DDR和DDR2 SDRAM的设计提供多种功能选项与 简单方便的设计界面有两种设计流程:SOPC Builder和Mega Wizard流程。IP 核由 DDR 与 DDR2 SDRAM 控制器 MegaCore functions 组成,提供 FPGA 内部与其外部DDR SDRAM或DDR2 SDRAM之间的简单接口.其作用是初始化 存储器,管理SDRAM Banks,保持器件在适当的时隙刷新,把本地的读/写请 求转换成必要的SDRAM控制命令信号。最高可以支持达到DDR400数据率的存 储器。图3.1描述了一个试验性系统参考设计:第20页国防科学技术大学研究生院工程硕士学位论文图31 IP模块箱性描述设计块图图中可以看出整个控制器的外部接口,左边的用户端逻辑(UserLogic通过 DDR控制器(即IP Block, DDR Contoller)来访问DIMM插槽上的存储器。锁 相环(PLL)既提供FPGA内部各模块的系统时钟又为DDR存储器条提供工作时 钟,线性反馈移位寄存器(LFSR)产生要写进存储器的数据,被用户端逻辑写入 存储器。3.1.1 DDR存储控制器软核的组织结构存储控制器的功能就是监督与控制数据从存储器载入/载出,如果需要,还 可以对数据的完整性进行检测。图3.2是DDR SDRAM控制器的一种顶层框图。 框图左边的信号为用户端的接口信号,用表示;框图右边的信号为DDR SDRAM端接口信号,用“ddr_”表示。控制器主要由时钟锁相环、控制模块、地 址译码和数据通道4部分组成。控制模块又由状态机.突发控制、CAS控制、RAS 到CAS控制和刷新控制等子模块组成.第2页国防科学技术大学研究生院工程硕士学位论文图3.2 DDR控制器的设计框图突发控制时钟 锁相 环DDRSDRAM3.1.2 DDR存储控制器软核的特点软核使用计算机髙级语言(RTL和门级Verilog HDL和VHDL)的形式描述功 能块的行为,但長并不涉及用什么电路和电路元件实现这些行为。本DDR存储控 制器采用模块化、层次化的设计思想,全部设计都釆用VerilogHDL实现设计中 尽量将IP核接口部分与功能部分分开,单独作为一模块进行设计,当需要集成到 其它互连协议中时,只需修改接口部分.为尽可能地提供灵活性,允许综合时设 置多个参数。3.2基于FPGA的DDR控制模块设计3.2.1时钟配置实现时钟锁相环主要是为DDR SDRAM和FPGA本身提供时钟,并降低它们之间 的偏移。Stratix n具有Enhanced PLL (增强型锁相环),可以提供DDR SDRAM所需的差分时钟和FPGA内部所需的时钟.图3.3为DDR SDRAM控制器的时钟配置情况。图中寄存器A代表控制器的命令和地址输出,由Enhanced PLL的CO输出时钟触发;寄存器B在输入输出单元(I
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!