CN102033832B - 一种同步动态存储器访存控制方法 - Google Patents
一种同步动态存储器访存控制方法 Download PDFInfo
- Publication number
- CN102033832B CN102033832B CN 201010575076 CN201010575076A CN102033832B CN 102033832 B CN102033832 B CN 102033832B CN 201010575076 CN201010575076 CN 201010575076 CN 201010575076 A CN201010575076 A CN 201010575076A CN 102033832 B CN102033832 B CN 102033832B
- Authority
- CN
- China
- Prior art keywords
- bank
- arbitration
- port
- request
- arbitration mechanism
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明提供了一种高效的同步动态存储器访存控制方法,通过端口分组仲裁机制、Bank内部仲裁机制以及Bank间仲裁机制结合改进的Round robin调度算法、高效的乱序调度算法以及加权系统仲裁算法等技术手段实现高效的访存序列,既保留了通用的两种操作序列的优点,又避免了两种操作时序的缺点,同时也解决了FIFO缓存请求机制需要配置很大FIFO的缺点,本发明所述的方法只需较小的缓存空间,就可以满足在各种情况下高效数据交互的要求。
Description
所属领域
本发明涉及一种存储器控制方法,尤其是一种高效的同步动态存储器(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)端口分组仲裁机制:根据向存储器请求数据的所有端口其自身的特点分成几组,每个端口组分别配置一个子仲裁器。各子仲裁器先采用传统的Round robin调度算法对各端口请求进行仲裁,得到一个合理的序列,同时再根据各个请求端口的特点,计算应获得的总线带宽的比例,通过寄存器配置各端口总线仲裁获得情况,这样与传统的Round robin调度算法结合形成改进的Round robin调度算法,即保证了高优先级端口优先获得总线,同时也保证了低优先级端口在设定时间内能获得总线使用权。
2)Bank内部仲裁机制:经过端口分组仲裁的请求进入Buffer中,根据访存地址的不同,分别进入不同的Bank仲裁。每个Bank中同行的请求放在一起形成一个突发,同时,给每个请求标明ID号,根据访存规则,ID号相同,则必须顺序执行,ID号不同,则可以乱序执行,采用上述乱序调度算法,对来自各个端口的请求进行乱序重排,可以提高行命中率,减少因行命中失效而带来的延时,从而提高总线的效率。如果突发传输长时间不能访存也可能会因数据相关性而导致系统停顿,因此Bank内部仲裁机制采用一个加权系数的仲裁算法实现有效调度,当某一访存序列等待时间达到设定间隔后,优先级自动提高一级,直到得到响应后才恢复其预设优先级,保证每个访存请求在设定时间范围内都能得到响应。
3)Bank间的仲裁机制:根据当前请求情况以及内存中所有Bank的状态,从各个Bank中选择一个最优的BURST序列访问同步动态存储器(SDRAM),可以节省Bank变换时间,进一步提高总线效率。
有益效果:通过上述仲裁机制,同步动态存储器可以得到最优的访存序列,实现高效的数据交互,而无需消耗额外资源。
附图说明
图1为对同一Bank中同一行操作的序列
图2为不同Bank之间进行交错操作的序列
图3为本发明实施例中的存储器访存请求调度结构
图4为本发明实施例中的存储器访存序列
具体实施方式
本实施例采用端口分组仲裁、bank内部仲裁、bank间仲裁以及Round robin算法、乱序调度算法和加权系数的仲裁算法相结合的调度机制。其调度结构如图3所示,同步动态存储器控制器的调度结构包括3个部分:1)端口分组仲裁模块;2)Buffer模块;3)Banks Arbiter模块。
1)端口分组仲裁模块采用端口分组仲裁机制:根据向存储器请求数据的所有端口其自身的特点分成几组,每个端口组分别配置一个子仲裁器。各子仲裁器先采用传统的Roundrobin调度算法对各端口请求进行仲裁,得到一个合理的序列,同时再根据各个请求端口的特点,计算应获得的总线带宽的比例,通过寄存器配置各端口总线仲裁获得情况,这样与传统的Round robin调度算法结合形成改进的Round robin调度算法,即保证了高优先级端口优先获得总线,同时也保证了低优先级端口在设定时间内能获得总线使用权。
2)Buffer模块采用Bank内部仲裁机制:经过端口分组仲裁的请求进入Buffer中,根据访存地址的不同,分别进入不同的Bank仲裁。每个Bank中同行的请求放在一起形成一个突发,同时,给每个请求标明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,tCCD=2,BL=4时,本实施例访存序列操作时序如图4所示,每个Bank的一行内采用了带Auto Precharge的列操作和不带Auto Precharge的列操作相结合的时序,因为有了预存命令的保证,内部状态机电路可以提前知道下一次操作与本次操作的关系,从而决定是否采用带Auto Precharge的列操作。当下次操作与本次操作在同一行时,采用不带Auto Precharge的列操作,而当下次操作与本次操作不在同一行时,采用带Auto Precharge的列操作,提前发送关闭现工作行的命令,隐藏行充电时间,这样可以提高总线效率。同时,前面多级仲裁机制保证了重排序后的访存请求会最大限度的将高行命中率的请求放在一起,将原本多次分散的请求重新组合成一次Burst操作,节省了行变换时间,提高访存效率,总线利用率可以达到80%~90%。
Claims (2)
1.一种同步动态存储器访存控制方法,其特征在于,所述方法主要包括端口分组仲裁机制、Bank内部仲裁机制以及Bank间仲裁机制,其中,端口分组仲裁机制采用改进的Roundrobin调度算法,各子仲裁器先采用传统的Round robin调度算法对各端口请求进行仲裁,得到一个合理的序列,同时再根据各个请求端口的特点,计算应获得的总线带宽的比例,通过寄存器配置各端口总线仲裁获得情况,这样与传统的Round robin调度算法结合形成改进的Round robin调度算法,既保证了高优先级端口优先获得总线,同时也保证了低优先级端口在设定时间内能获得总线使用权;Bank内部仲裁机制采用高效的乱序调度算法和加权系数的仲裁算法,经过端口分组仲裁的请求进入Buffer中,根据访存地址的不同,分别进入不同的Bank仲裁,每个Bank中同行的请求放在一起形成一个突发,同时,给每个Bank中同行的请求标明ID号,根据访存规则,ID号相同,则必须顺序执行,ID号不同,则可以乱序执行,采用上述乱序调度算法,对来自各个端口的请求进行乱序重排,可以提高行命中率,减少因为行命中失效而带来的延时,从而提高总线的效率,如果突发传输长时间不能访存也可能会因数据相关性而导致系统停顿,因此Bank内部仲裁机制采用一个加权系数的仲裁算法实现有效调度,当某一访存序列等待时间达到设定间隔后,优先级自动提高一级,直到得到响应后才恢复其预设优先级,保证每个访存请求在设定时间范围内都能得到响应;Bank间仲裁机制,根据当前请求情况以及内存中所有Bank的状态,从各个Bank中选择一个最优的BURST序列访问同步动态存储器(SDRAM),可以节省Bank变换时间,进一步提高总线效率。
2.如权利要求1所述的一种同步动态存储器访存控制方法,其特征在于,当突发传输长时间不能访存会因数据相关性而导致系统停顿时,Bank内部仲裁机制采用一个加权系数的仲裁算法实现有效调度,当等待时间达到设定间隔后,优先级自动提高一级,直到得到响应后才恢复其预设优先级,保证每个访存请求都能及时得到响应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010575076 CN102033832B (zh) | 2010-12-02 | 2010-12-02 | 一种同步动态存储器访存控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010575076 CN102033832B (zh) | 2010-12-02 | 2010-12-02 | 一种同步动态存储器访存控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102033832A CN102033832A (zh) | 2011-04-27 |
CN102033832B true CN102033832B (zh) | 2013-12-18 |
Family
ID=43886752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010575076 Active CN102033832B (zh) | 2010-12-02 | 2010-12-02 | 一种同步动态存储器访存控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102033832B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279821B (zh) * | 2011-08-02 | 2014-01-08 | 记忆科技(深圳)有限公司 | Ddr控制器端口命令传输的方法及系统 |
CN103377154B (zh) * | 2012-04-25 | 2016-04-13 | 无锡江南计算技术研究所 | 存储器的访存控制装置及方法、处理器及北桥芯片 |
CN109523473A (zh) * | 2018-10-16 | 2019-03-26 | 网易(杭州)网络有限公司 | 图像处理方法、装置、存储介质和电子装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021819A (zh) * | 2007-03-14 | 2007-08-22 | 北京中星微电子有限公司 | 同步动态存储器的访问控制方法及同步动态存储器控制器 |
CN101470678A (zh) * | 2007-12-29 | 2009-07-01 | 中国科学院声学研究所 | 基于突发乱序的存储器控制器、系统及其访存调度方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7826377B2 (en) * | 2006-06-16 | 2010-11-02 | Ixia | Memory access optimization and communications statistics computation |
US20080189479A1 (en) * | 2007-02-02 | 2008-08-07 | Sigmatel, Inc. | Device, system and method for controlling memory operations |
-
2010
- 2010-12-02 CN CN 201010575076 patent/CN102033832B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021819A (zh) * | 2007-03-14 | 2007-08-22 | 北京中星微电子有限公司 | 同步动态存储器的访问控制方法及同步动态存储器控制器 |
CN101470678A (zh) * | 2007-12-29 | 2009-07-01 | 中国科学院声学研究所 | 基于突发乱序的存储器控制器、系统及其访存调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102033832A (zh) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9418723B2 (en) | Techniques to reduce memory cell refreshes for a memory device | |
US6938142B2 (en) | Multi-bank memory accesses using posted writes | |
US7353329B2 (en) | Memory buffer device integrating refresh logic | |
US9773531B2 (en) | Accessing memory | |
EP1474747B1 (en) | Address space, bus system, memory controller and device system | |
CN100538882C (zh) | 一种同步动态存储器控制器的设计方法 | |
CN104737144B (zh) | 存储器存取的动态优先级管理 | |
JP2008500644A (ja) | 揮発性メモリのために独立したバンクリフレッシュを提供する方法及びシステム | |
KR20070119563A (ko) | 프리차지, 활성화, 및 판독/기입의 독립적 조정을 행하는메모리 인터페이스 | |
US10430113B2 (en) | Memory control circuit and memory control method | |
JP2009526323A5 (zh) | ||
WO2018188083A1 (zh) | 内存刷新技术及计算机系统 | |
CN102033832B (zh) | 一种同步动态存储器访存控制方法 | |
US10162522B1 (en) | Architecture of single channel memory controller to support high bandwidth memory of pseudo channel mode or legacy mode | |
CN107274926A (zh) | 具有自适应预充电策略的dram控制器 | |
CN105489240A (zh) | 一种用于DRAM或eDRAM刷新的装置及其方法 | |
CN103632708B (zh) | 同步动态随机存储器的自刷新控制装置及方法 | |
US7461216B2 (en) | Memory controller | |
CN1702768A (zh) | 半导体存储装置 | |
JP5791529B2 (ja) | メモリ制御装置及び制御方法並びに情報処理装置 | |
CN100536021C (zh) | 大容量高速缓冲存储器 | |
CN105825880B (zh) | 用于ddr控制器的访问控制方法、装置及电路 | |
US11947840B2 (en) | Inter-die refresh control | |
WO2022178772A1 (zh) | 一种存储器的刷新方法、存储器、控制器及存储系统 | |
CN100370436C (zh) | 一种提高存储器访问效率的方法及存储器控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |