一种高带宽利用率的ddr2sdram控制器设计方法

文档序号:7687621阅读:281来源:国知局
专利名称:一种高带宽利用率的ddr2 sdram控制器设计方法
技术领域
本发明涉及一种数据交换设备的关键装置设计方法,尤其是网络数据交换 设备中的控制器设计方法。
背景技术
随着通信领域的网络传输速度高速增加,各种通讯设备,尤其是城域网,骨 干网的数据交换设备对缓冲器提出了更大的带宽,更大的容量,更低的成本的 需求。目前的缓冲器主要以两种Memory为主SDRAM和SRAM。
SRAM的特点是容量小, 一般仅能提供几十M比特这一数量级的存储容量, 接口数据速度较低,体积较大,价格也较高,其最突出之处是操作很简单,带 宽利用率可达到100%。
SDRAM的特点是容量大,目前的DDR2 SDRAM单颗粒就可以提供多达1G 比特级别的存储容量;存储密度高,价格低廉,接口理论带宽很高,缺点是带 宽利用率较低, 一般情况下,带宽利用率仅为30%~40%左右。
DDR2 SDRAM的带宽利用率低是由其结构导致的。
由于DDR2 SDRAM每次同一个Bank内,换行操作时,需要先关闭当前Bank 中己经打开的行(Precharge),然后激活需要访问的行(Active),然后才能对数 据做读写操作。每一个Bank内,Precharge到Active操作之间有一个固定的延 迟要求(TRP)。 一般,SDRAM的TRP有3个时钟周期,数据采用突发长度 (BurstLength)为2, 4, 8时,对应的带宽利用率分别为28%, 44%和61.5%。 另外,在DDR2 SDRAM操作中,同一个Bank内,相邻两次Active操作之 间有一个固定间隔时间要求(TRC), 一般TRC在11个时钟到20个时钟左右, 也带来极大的带宽利用率的浪费。如何解决TRP, TRC和带宽利用率之间的矛
盾成为提高DDR2 SDRAM带宽利用率的关键因素。

发明内容
本发明的目的是提供一种DDR2SDRAM控制器设计方法的改进,该方法应 能在Burst Length为8的情况下提高总线利用率,并具有低成本、高带宽、大存 储容量的特点。
本发明提供的技术方案是
一种高带宽利用率的DDR2 SDRAM控制器设计方法,该方法包括
1) Bank轮换Bank在每次Burst操作之后切换Bank,尽量在保证数据总
线高利用率的前提下,将每个Bank相邻两次访问的间隔加大;
2)提前Precharge操作如果下一次操作将需要Precharge然后在Active,
并且和本次操作不冲突,那么,就将这个Precharge操作提前到本次操作之前执
行。当本次操作完成后,要进行下次操作的Active操作时,TRP时间也已经满足了。
数据采用的突发长度(BurstLength)为8。 本发明采用的Bank轮换方法,因为突发长度Burst Length为8,所以在最理 想的状态下,同一个Bank的访问间隔将加大到4x4=16个时钟周期,能够满足 绝大多是情况下的TRC要求。采用的提前Precharge操作方法,在本次操作完 成后,要进行下次操作的Active操作时,己经满足了TRP时间。该控制方法可 将DDR2 SDRAM的数据总线带宽平均利用率提高到70%,配合Bank轮换的机制, 带宽利用率最高可达99%,几乎可以和昂贵的SRAM媲美;并且克服了 DDR2 SDRAM 在带宽利用率上的不足,使廉价的大容量的DDR2 SDRAM在计算机应用,通讯设 备,或者个人数据处理终端等有高带宽利用率的领域得到更广泛的使用,极大 地降低了系统在高带宽存储方面的成本压力。该DDR2 SDRAM控制器可直接 集成于FPGA或者ASIC电路。


图1是本发明的Bank轮换以及提前Precharge操作示意图。 图2是DDR2 SDRAM控制器控制原理示意图。 图3是FSM状态机状态转移示意图。
具体实施例方式
本发明的最基本的原理就是尽量在TRC以及TRP的时间内,让SDRAM提 供其他后续操作,以减少为了等到TRP和TRC这两个时间而无谓的带宽消耗。 由此采用的方法是
l)Bank轮换Bank在每次Burst操作之后切换Bank,尽量在保证数据总 线高利用率的前提下,将每个Bank相邻两次访问的间隔加大;
2)提前Precharge操作如果下一次操作将需要Precharge然后再Active, 并且和本次操作不冲突,那么,就将这个Precharge操作提前到本次操作之前执 行。那么当本次操作完成后,要进行下次操作的Active操作时,TRP时间也己 经满足了。
上述两种设计方法将所需要的时间隐藏到正常的数据操作中,成功地避免 了因为这两个参数而导致总线操作利用率的极大消耗,使得总线操作利用率有 可能达到99%这一极限值。
如图1所示,对于BankO,连续两次Read操作针对不同的Row,也就是说, 第一次Read操作完成之后,在第二次Read之前需要一次Precharge操作将第一 次Read操作打开的Row关闭,然后再加入一次Active操作将第二次Read操作 需要访问的Row打开。按照Bank轮换的方式,BankO的连续两次操作之间,应 该插入其他3个Bank的3次操作。每次操作都是Burst Length为8,也就是需 要4个时钟,那么BankO的连续两个Read操作之间将会有16个时钟周期的间 隔。可以看出Bank轮换的方式隐藏了 TRC所需要的时间,节省了很多空闲的等待周期。Bank轮换牵涉到地址管理的问题,不仅仅是本控制器能够控制的范
围,所以对于Bank轮换,本控制器仅提供一个增加地址访问离散性的可选项,
将Memory访问地址的最低两位和最高两位互换位置,也就是将列地址的最低
两位和Bank地址互换来加大Memory访问地址的离散性,使得四个Bank轮换
的几率更大。但是实现这一目标的最根本解决方式来自地址管理,而不是纯粹 依靠本控制器。
另一个操作是由提前插入Precharge来实现的。在执行对Bank3的Read操作 时,控制器发现下一个操作,也就是对Bank0的Read操作,需要对Bank0做 Precharge和Active操作;控制器在Bank3的Read操作之前,提前插入BankO 的Precharge,这样当Bank3的Read操作结束后,BankO的TRP时间也已经满 足,先Active需要激活的BankO的Row,然后就可以执行Read操作。
需要注意的是,无论是插入Precharge操作还是Active操作,各个Read操作 之间仅相差4个时钟周期,因为Burst Length为8,所以这时候数据总线上的数 据将是连续的,如图l所示,也就是说,这时候DDR2 SDRAM的总线利用率 达到了 100%。假如地址管理做得出色,那么DDR2 SDRAM的总线利用率将达 到99%以上(因为SDRAM的固有特性导致Refresh操作不可避免带来利用率损 耗)。
根据以上方法设计的DDR2 SDRAM控制器在各种集成电路设计中均可以实 现。目前杭州瑞那科技有限公司已经将其广泛应用在FPGA设计中。在这里讲 述的设计方法不仅仅可以应用在FPGA设计中,对于ASIC电路一样适用。
图2所示的控制原理图中,控制器对外包括两部分接口对内部其他功能模 块的接口 ;对外部DDR2 SDRAM芯片接口 。
内部模块接口包括操作指令和操作数据两部分。操作指令由当前操作指令和 下一操作指令组成,目的是为了能让控制器在当前的操作命令中确定是否需要
为下一个操作指令提前插入一次Precharge操作。操作数据则是需要写入Memory 以及从Memory返回的数据。由控制器内部状态机控制何时提供写入数据以及 何时返回有效数据。
4Bank激活行信息表用于记录每个Bank当前已经激活的Row,这些记录和 输入的操作指令比较,判断是否需要插入Precharge和Active操作;然后和输入 的操作指令一起做一次指令编码输给状态机。
状态机是控制器各种控制信号生成的核心。状态机由7个状态组成,如图3 所示。
> IDLE为空闲状态,所有的指令执行均从该状态开始,根据输入的指令编 码,判断后续跳转状态;
> Wait为等待状态,该状态是一个特殊状态,仟何其他状态在转入Wait状 态时,都需要准备好需要等待的时钟数量,以及等待时间满之后的下一 跳状态。进入Wait状态之后,计数器计满需要等待的时间,然后根据下 一跳状态转入下一个状态机的状态。Wait状态不做任何指令处理,只是 负责等待;
> Precharge状态,输出DDR2 SDRAM的Precharge指令;
> Active状态,输出DDR2 SDRAM的Active指令;
> Read状态,输出DDR2 SDRAM的Read指令;
> Writer状态,输出DDR2 SDRAM的Writer指令;
> Refresh状态,输出DDR2 SDRAM的Refresh指令。 延迟计数器模块为状态机提供判断是否需要进入Wait状态以及等待时间的
依据。延迟计数器包括每一个Bank的TRC时间,以及总线卜.的TRTP和TWTR 时间。
DQ Logic模块为控制DQ, DQS输出和输入采样的电路。根据FPGA的器件
不同,有不同的做法,可以参考FPGA的器件手册。如果是ASIC设计,也会根 据器件库不同有不同的设计,这里不再说明。
杭州瑞纳科技有限公司己经将该DDR2 SDRAM控制器应用于多项产品。 配合合理的地址管理机制,均实现了平均带宽利用率超过80%。有的产品已经 达到99%的极限利用率。
根据目标FPGA的工艺不同,具有不同的控制器时钟频率;采用Altera 的CycloneII器件,控制器时钟频率能达到125MHz以上,采用StratixII器件, 可以达到200MHz以上;采用Xilinx的Virtex5器件,最高可以达到266MHz。
原有需要提供SRAM器件的设备均改为采用DDR2 SDRAM,在价格上, DDR2 SDRAM以仅为SRAM的不到10%的价格提供了相通的带宽,而且提供 了16倍以上的存储容量,为实际设备节省了可观的成本,具有很好的经济效 益和社会效益。
此外,图2中还标注有cmd—cur一valid (当前命令有效指示)、 cmd—next—valid (下一个命令有效指示)、cmd—addr—cur (当前命令需要操作的 存储器地址)、cmd—addr—next (下一个命令需要操作的存储器地址)、cur—status (当前命令对应地址的激活状态)、next—status (下一个命令对应地址的激活状 态)、cmd—clear (清除命令编码指示)、fsm—cur—status (状态机当前状态)、 cmd—code (命令编码)、cmd—ack (命令接受指示)、cmd—done (命令执行完成 指示)、data—in一ref (待写入存储器数据输入时刻指示)、data—valid (读存储器 返回数据有效指示)、data—in (待写入存储其数据)、data—out (读存储器返回 数据)、rasn(SDRAM接口信号,斤选择)、casn (SDRAM接口信号,列选择)、 wen (SDRAM接口信号,写使能)、csn ( SDRAM接口信号,片选)、dq (SDRAM 接口信号,双向输入输出数据)、dqs (SDRAM接口信号,双向输入输出数据 时钟)。
权利要求
1、一种高带宽利用率的DDR2SDRAM控制器设计方法,该方法包括1)Bank轮换Bank在每次Burst操作之后切换Bank,尽量在保证数据总线高利用率的前提下,将每个Bank相邻两次访问的间隔加大;2)提前Precharge操作如果下一次操作将需要Precharge然后在Active,并且和本次操作不冲突,那么,就将这个Precharge操作提前到本次操作之前执行。
2、 根据权利要求1所述的一种禽带宽利用率的DDR2 SDRAM控制器设计 方法,其特征在于该方法中数据采用的突发长度为8。
全文摘要
本发明涉及一种网络数据交换设备中的控制器设计方法。目的是提供的方法应能在突发长度为8的情况下提高总线利用率,并具有低成本、高带宽、大存储容量的特点。技术方案是一种高带宽利用率的DDR2 SDRAM控制器设计方法,包括1)Bank轮换Bank在每次Burst操作之后切换Bank,尽量在保证数据总线高利用率的前提下,将每个Bank相邻两次访问的间隔加大;2)提前Precharge操作如果下一次操作将需要Precharge然后在Active,并且和本次操作不冲突,那么,就将这个Precharge操作提前到本次操作之前执行。数据采用的突发长度为8。
文档编号H04L29/02GK101340365SQ200810063328
公开日2009年1月7日 申请日期2008年8月11日 优先权日2008年8月11日
发明者斌 向, 吴辰敦, 骏 张, 科 路, 旭 邓, 钟林钢 申请人:杭州瑞纳科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1