一种同步动态存储器访存控制方法

文档序号:6337774阅读:201来源:国知局
专利名称:一种同步动态存储器访存控制方法
一种同步动态存储器访存控制方法
所属领域
本发明涉及一种存储器控制方法,尤其是一种高效的同步动态存储器(SDRAM)访 存控制方法。技术背景
随着存储器和处理器速度差距越来越大,存储器的带宽已经越来越不能满足处理 器的数据需求。动态随机存储器DRAM从SDR SDRAM到DDR SDRAM,再到现在主流的DDR2 SDRAM和DDR3 SDRAM,频率在不断的提高,但频率的提高给电路设计带来较大的挑战,同时 对SDRAM控制器的读写效率也提出了越来越高的要求。常规的SDRAM控制器设计方法已经 不能适应日渐复杂的系统对带宽的要求。
现有多数SDRAM控制器读写外部SDRAM的基本操作时序序列为
1)对同一逻辑Bank中同一行进行操作按照JEDEC规范常规访存序列进行操作 时的情况如图 1 所示,当 tRCD = 4,tRP = 4,CL = 4,tRAS = 15,tRC = 19,tRRD = 4,tCCD =2,BL = 4时,行从激活(Active)到预充电(Precharge)至少需要15T(T为时钟周期), 当连续对同一行进行操作时,用于等待的时间较少,总线利用率会较高,当对同一行连续操 作长度较小时,由于切换行前需要预充电(Precharge)现工作行,需要浪费较多无效的等 待时间,总线有效利用率很低。
2)在不同逻辑Bank之间进行交错操作,也称作乒乓操作按照JEDEC规范中IDD7 访存序列在多个Bank之间进行交错操作,采用Auto Precharge操作来隐藏Precharge周 期,如图 2 所示,当 tRCD = 4,tRP = 4,CL = 4,tRAS = 15,tRC = 19,tRRD = 4,tCCD = 2,BL = 4时,从图中可以看出,由于采用了 Auto Precharge命令,在发送行操作的同时发出 充电命令用以关闭本操作行,隐藏了充电周期,同时本序列还采用了 DDR2的新技术Posted CAS,即在发出Active命令以后紧接着发送列操作命令,但是由于tRRD至少为4T,所以在两 个Bank激活间仍然会有等待时间,这种情况的总线利用率也只有50%左右。
在现有实现方案中,效率相对较高的是采用Bank轮换结合Auto Precharge以及 FIFO缓存访存序列在每次突发(Burst)操作之后切换Bank,利用Auto Precharge机制将 Precharge操作提前执行,这样可以隐藏一些冗余操作周期,提高读写效率;FIFO缓存访存 序列机制可以将访存命令进行重组,形成较长的对SDRAM同一行进行访问的序列,从而提 高读写效率。
现有方案从一定程度上解决了常规序列的缺点,但采用Bank轮换结合Auto Precharge对请求的依赖性较大,在行命中请求比较分散的情况下效率依然较低。而采用 FIFO缓存访存序列需要配置一个很大的FIFO,在提高效率的同时也大大增加了访存的延 迟,同时也提高了成本。发明内容
针对上述技术缺陷,本发明旨在提供一种高效的同步动态存储器访存控制方法,所述方法针对实际运用中访存的特点,通过端口分组仲裁机制、Bank内部仲裁机制以及 Bank间仲裁机制结合改进的Round robin调度算法、高效的乱序调度算法以及加权系统仲 裁算法等技术手段实现高效的访存序列,既保留了通用的两种操作序列的优点,又避免了 两种操作时序的缺点,同时也解决了 FIFO缓存请求机制需要配置很大FIFO的缺点,本发明 所述的方法只需较小的缓存空间,就可以满足在各种情况下高效数据交互的要求。
本发明所述的同步动态存储器访存控制方法采用端口分组仲裁、Bank内部仲裁以 及Bank间仲裁机制,分别通过端口分组仲裁模块、Buffer模块和Banks Arbiter模块实现。
1)端口分组仲裁机制根据向存储器请求数据的所有端口其自身的特点分成几 组,每个端口组分别配置一个子仲裁器。各子仲裁器先采用Roimd robin调度算法对各端 口请求进行仲裁,得到一个合理的序列。同时再根据各个请求端口的特点,计算应获得的总 线带宽的比例,通过寄存器配置各端口总线仲裁获得情况,这样与上述传统的Round robin 调度算法结合形成改进的Round robin调度算法,即保证了高优先级端口优先获得总线,同 时也保证了低优先级端口在设定时间内能获得总线使用权。
2) Bank内部仲裁机制经过端口分组仲裁的请求进入Buffer中,根据访存地址的 不同,分别进入不同的Bank仲裁。每个Bank中同行的请求放在一起形成一个突发(Burst)。 同时,给每个请求标明ID号,根据访存规则,ID号相同,则必须顺序执行,ID号不同,则可 以乱序执行。采用上述乱序调度算法,对来自各个端口的请求进行乱序重排,可以提高行命 中率,减少因行命中失效而带来的延时,从而提高总线的效率。如果突发传输长时间不能访 存可能会因数据相关性而导致系统停顿,因此Bank内部仲裁机制采用一个加权系数的仲 裁算法实现有效调度,当某一访存序列等待时间达到设定间隔后,优先级自动提高一级,直 到得到响应后才恢复其预设优先级,保证每个访存请求在设定时间范围内都能及时得到响 应。
3)Bank间的仲裁机制根据当前请求情况以及内存中所有Bank的状态,从各个 Bank中选择一个最优的Burst序列访存SDRAM,可以节省Bank变换时间,进一步提高总线效率。
有益效果通过上述仲裁机制,同步动态存储器可以得到最优的访存序列,实现高 效的数据交互,而无需消耗额外资源。


图1为对同一 Bank中同一行操作的序列
图2为不同Bank之间进行交错操作的序列
图3为本发明实施例中的存储器访存请求调度结构
图4为本发明实施例中的存储器访存序列具体实施方式
本实施例采用端口分组仲裁、bank内部仲裁、bank间仲裁以及Round robin算法、 乱序调度算法和加权系数的仲裁算法相结合的调度机制。其调度结构如图3所示,同步动 态存储器控制器的调度结构包括3个部分1)端口分组仲裁模块J)Buffer模块;3)BankS Arbiter 模块。
1)端口分组仲裁模块采用端口分组仲裁机制根据向存储器请求数据的所有端 口其自身的特点分成几组,每个端口组分别配置一个子仲裁器。各子仲裁器先采用传统的 Roimdrobin调度算法对各端口请求进行仲裁,得到一个合理的序列。同时再根据各个请 求端口的特点,计算应获得的总线带宽的比例,通过寄存器配置各端口总线仲裁获得情况, 这样与上述传统的Round robin调度算法结合形成改进的Round robin调度算法,即保证 了高优先级端口优先获得总线,同时也保证了低优先级端口在设定时间内能获得总线使用 权。
2)Buffer模块采用Bank内部仲裁机制经过端口分组仲裁的请求进入Buffer 中,根据访存地址的不同,分别进入不同的Bank仲裁。每个Bank中同行的请求放在一起形 成一个突发(burst)。同时,给每个请求标明ID号,根据访存规则,ID号相同,则必须顺序 执行,ID号不同,则可以乱序执行,采用上述乱序调度算法,对来自各个端口的请求进行乱 序重排,可以提高行命中率,减少因为行命中失效而带来的延时,从而提高总线的效率。如 果突发传输长时间不能访存也可能会因数据相关性而导致系统停顿,因此Bank内部仲裁 机制采用一个加权系数的仲裁算法实现有效调度,当某一访存序列等待时间达到设定间隔 后,优先级自动提高一级,直到得到响应后才恢复其预设优先级,保证每个访存请求在设定 时间范围内都能得到响应。
3)Banks Arbiter模块采用Bank间的仲裁机制根据当前请求情况以及内存中所 有Bank的状态,从各个Bank中选择一个最优的BURST序列访问SDRAM,可以节省Bank变换 时间,进一步提高总线效率。
根据上述存储器调度机制,当tRCD = 4,tRP = 4,CL = 4,tRAS = 15,tRC = 19, tRRD = 4,t(XD = 2,BL = 4时,本实施例访存序列操作时序如图4所示,每个Bank的一行内 采用了带Auto Precharge的列操作和不带Auto Precharge的列操作相结合的时序,因为 有了预存命令的保证,内部状态机电路可以提前知道下一次操作与本次操作的关系,从而 决定是否采用带Auto Precharge的列操作。当下次操作与本次操作在同一行时,采用不带 Auto Precharge的列操作,而当下次操作与本次操作不在同一行时,采用带AutoI^recharge 的列操作,提前发送关闭现工作行的命令,隐藏行充电时间,这样可以提高总线效率。同 时,前面多级仲裁机制保证了重排序后的访存请求会最大限度的将高行命中率的请求放在 一起,将原本多次分散的请求重新组合成一次Burst操作,节省了行变换时间,提高访存效 率,总线利用率可以达到80% 90%。权利要求
1.一种同步动态存储器访存控制方法,其特征在于,所述方法主要包括端口分组仲 裁机制、Bank内部仲裁机制以及Bank间仲裁机制,其中,端口分组仲裁机制采用改进的 Roimdrobin调度算法,Bank内部仲裁机制采用高效的乱序调度算法和加权系数的仲裁算法。
2.如权利要求1所述的一种同步动态存储器访存控制方法,其特征在于,所述端口分 组仲裁机制工作步骤为,端口分组仲裁模块中的各子仲裁器采用Round robin调度算法对 各端口请求进行仲裁,得到一个合理的序列,同时根据各个请求端口的特点,计算应获得的 总线带宽的比例,通过寄存器配置各端口总线仲裁获得情况,即保证高优先级端口优先获 得总线,同时也保证低优先级端口在设定时间内能获得总线使用权。
3.如权利要求1所述的一种同步动态存储器访存控制方法,其特征在于,所述Bank内 部仲裁机制工作步骤为,经过端口分组仲裁的请求进入Buffer中,根据访存地址的不同, 分别进入不同的Bank;每个Bank中同行的请求放在一起形成一个突发,同时,给每个请求标明ID号,根据访 存规则,ID号相同,则必须顺序执行,ID号不同,则可以乱序执行,对来自各个端口的请求 进行乱序重排,提高行命中率,减少因行命中失效而带来的延时,提高总线的效率。
4.如权利要求1所述的一种同步动态存储器访存控制方法,其特征在于,所述Bank间 仲裁机制工作步骤为,根据当前请求情况以及内存中所有Bank的状态,从各个Bank中选择 一个最优的Burst序列访问SDRAM,节省Bank变换时间,进一步提高总线效率。
5.如权利要求1或3所述的一种同步动态存储器访存控制方法,其特征在于,当突发传 输长时间不能访存会因数据相关性而导致系统停顿时,Bank内部仲裁机制采用一个加权系 数的仲裁算法实现有效调度,当等待时间达到设定间隔后,优先级自动提高一级,直到得到 响应后才恢复其预设优先级,保证每个访存请求都能及时得到响应。
全文摘要
本发明提供了一种高效的同步动态存储器访存控制方法,通过端口分组仲裁机制、Bank内部仲裁机制以及Bank间仲裁机制结合改进的Round robin调度算法、高效的乱序调度算法以及加权系统仲裁算法等技术手段实现高效的访存序列,既保留了通用的两种操作序列的优点,又避免了两种操作时序的缺点,同时也解决了FIFO缓存请求机制需要配置很大FIFO的缺点,本发明所述的方法只需较小的缓存空间,就可以满足在各种情况下高效数据交互的要求。
文档编号G06F13/18GK102033832SQ20101057507
公开日2011年4月27日 申请日期2010年12月2日 优先权日2010年12月2日
发明者岳彩发, 陈争胜, 高峰, 黄晓伟, 黄智杰 申请人:杭州国芯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1