CN104391801B - Ddrii控制器的读写、状态转换、物理地址分配方法 - Google Patents
Ddrii控制器的读写、状态转换、物理地址分配方法 Download PDFInfo
- Publication number
- CN104391801B CN104391801B CN201410638634.XA CN201410638634A CN104391801B CN 104391801 B CN104391801 B CN 104391801B CN 201410638634 A CN201410638634 A CN 201410638634A CN 104391801 B CN104391801 B CN 104391801B
- Authority
- CN
- China
- Prior art keywords
- ddrii
- reading
- write
- read
- command
- 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
Landscapes
- Static Random-Access Memory (AREA)
Abstract
本发明涉及一种DDRII控制器的读写方法、状态转换方法、物理地址分配方法。所述读写方法包括:在写操作时,同时提供写地址及写数据,并检测控制器给出的准备就绪READY信号,若READY有效,则下一周期输出新的命令,若无效,则维持当前命令和数据不变;在读操作时,提供读地址,并检测控制器给出的READY信号,若READY有效,则下一周期输出新的命令,若无效,则维持当前命令和数据不变,读数据将在固定周期后返回。本发明提高了DDRII读写效率。
Description
技术领域
本发明涉及数字信号处理领域,特别涉及一种DDRII控制器的读写、状态转换、物理地址分配方法。
背景技术
现有芯片设计技术中,常会用到较大的存储空间,用以存储数据或程序。一方面,模块设计者希望存储空间的读写接口尽可能简单,例如片外RAM读写端口;另一方面,出于读、写速率和存储空间成本的要求,会选择采用DDR SDRAM或DDRII SDRAM。
DDR和DDRII在读、写命令的同时,通过A10可以指定是否使用自动预充电/自动刷新特性,另外,相对于DDR,DDRII中针对读、写命令增加了附加延迟AL项;利用这些特性,可以使DDRII在连续读、写,特别是跨bank读、写时,命令紧凑,从而最大化DDRII的读、写效率。
发明内容
鉴于现有技术中存在的问题,在第一方面,本发明的目的在于提供一种DDRII控制器的读写方法,所述方法包括:在写操作时,同时提供写地址及写数据,并检测控制器给出的准备就绪READY信号,若READY有效,则下一周期输出新的命令,若无效,则维持当前命令和数据不变;在读操作时,提供读地址,并检测控制器给出的READY信号,若READY有效,则下一周期输出新的命令,若无效,则维持当前命令和数据不变,读数据将在固定周期后返回。
优选地,在DDRII端口的写操作的时序中,利用AL特性,CMD命令总线上在发布ACT命令后直接跟W命令,和/或,利用W_PRE特性连续执行跨bank的写命令。
优选地,在DDRII端口的读操作的时序中,利用AL特性,CMD命令总线上在发布ACT命令后直接跟读命令,和/或,利用R_PRE特性连续执行跨bank的读命令。
在第二方面,本发明的目的在于提供一种DDRII控制器的状态转换方法,包括:上电复位到NOT_INIT状态,之后进入INITING状态,完成DDRII的INITING初始化命令,进入IDLE状态,之后检测缓存的2个命令是否都为空,据此进入PRE_PD状态、REF状态或者读写操作状态。
优选地,在检测结果为“未达到最大刷新间隔,且缓存的2个命令均为空命令”时,进入PRE_PD状态。
优选地,在检测结果为达到最大刷新间隔时,进入REF状态。
优选地,在检测结果为未达到最大刷新间隔,且待执行的缓存命令为读操作时,进入读操作状态。
优选地,在检测结果为未达到最大刷新间隔,且待执行的缓存命令为写操作时,进入写操作状态。
在第三方面,本发明的目的在于提供一种DDRII控制器的物理地址分配方法,包括:在DDRII上相同ROW的进行写操作或者跨页bank写操作时,按照行ROW地址、页BANK地址以及列COL地址的顺序进行分配。
附图说明
下面结合附图对本发明进行进一步说明,但是这些示例性的说明只是用于解释本发明,并不构成对本发明的任何不当的限制。
图1为本发明实施例的外部接口写操作示意图;
图2为本发明实施例的外部接口读操作示意图;
图3为本发明实施例的控制器状态机示意图;
图4A为本发明实施例的对应于1个写请求的DDRII写操作时序命令示意图;
图4B为本发明实施例的对应于连续3个同bank同row写请求的DDRII写操作时序命令示意图;
图4C为本发明实施例的对应于连续3个不同bank的写请求DDRII写操作时序命令示意图;
图4D为本发明实施例的对应于2个同bank同row写请求,跟1个不同bank写请求的DDRII写操作时序命令示意图;
图5为本发明实施例的DDRII物理地址分配示意图。
具体实施方式
下面结合附图和具体实施方式,对本发明的方法进行进一步详细的说明。
本发明的目的是设计一种DDRII的控制器,使得对外部应用的读、写接口尽可能简洁,同时使得DDRII的读写效率最大化。
图1中,中英文对应如下:CLK时钟,CMD命令,ADDR地址,WRDATA写数据,WRDATA_MASK写数据掩码,READY准备好标志位,W1、W2、W3分别为第一、二、三个写命令,ADDR1、ADDR2、ADDR3分别为第一二三个写命令对应的地址,DI1DI2DI3分别为第一二三个写命令对应的数据,DIM1DIM2DIM3分别为第一二三个写命令对应的数据掩码。Don’t care表示:该数据无所谓,或者不必关心该数据。
图2中,中英文对应如下:CLK时钟,CMD命令,ADDR地址,READY准备好标志位,RDDATA_VALID读数据有效标志位,RDDATA读数据,R1、R2分别为第一、二个读命令,ADDR1、ADDR2分别为第一、二个读命令对应的地址,DO1、DO2分别为第一、二个读命令对应返回的数据。Don’t care表示:该数据无所谓,或者不必关心该数据。
如图1-2所示,是DDRII控制器对外部接口的端口,及读写操作的时序协议,其中,CMD总线需表示读操作、写操作或者空操作3中状态,一种典型情况,CMD总线由片选信号CS和读、写控制信号WE构成,其对应关系如表1所示。
表1 CMD总线的一种典型表示
CMD | {CS,WE} | 含义 |
NOP | 2’b0X | 空操作 |
W | 2’b11 | 写操作 |
R | 2’b10 | 读操作 |
写操作时,同时提供写地址及写数据,并检测控制器给出的READY信号,若READY有效,则下一周期可输出新的命令,若无效,则维持当前命令和数据不变;读操作时,提供读地址,并检测控制器给出的READY信号,若READY有效,则下一周期可输出新的命令,若无效,则维持当前命令和数据不变,读数据将在固定周期后返回。
图3中,中英文对应关系如下:NOT_INT未完成初始化,INITING进行初始化,IDLE空闲状态,REF刷新,SELREF自动刷新,PRE_PD预充电的下电,ACT_W激活命令后跟写命令,ACT_WPRE,激活命令并带自动预充电的写命令,NOP_W空命令后跟写命令,NOP_WPRE空命令后跟带自动预充电的写命令。
如图3所示,为控制器的状态机设计,上电RST_N复位到NOT_INIT状态,之后进入INITING状态,完成DDRII的INITING初始化命令,进入IDLE状态,之后检测缓存的2个命令是否都为空,据此进入PRE_PD状态、REF状态或者执行相应的读写操作。
图4A中英文对应关系如下:CLK时钟,CMD命令,BA页,ACT激活命令,WPRE带自动预充电的写命令,Bank n第n页。
图4B中英文对应关系如下:W写命令,NOP空命令。其他同图4A。
图4C中英文对应关系如下:Bank n2第n2页,Bank n3第n3页,其他同图4A-4B。
图4D中英文对应关系同4A-4C。
如图4A-4D所示,为DDRII端口上,写操作的时序图,可以看出,利用AL特性,CMD命令总线上可以在发布ACT命令后直接跟W命令,利用W_PRE特性,跨bank的写命令可以连续执行,提高DDRII的读效率。DDRII端口上的读操作与此类似,不再赘述。
图5中英文对应关系如下:NOT USED BITS未使用位,ROW BITS行指示位,BANKBITS页指示位,COL BITS列指示位。
如图5所示,为DDRII的物理地址分配,针对图4,可以看到DDRII上相同ROW的写操作、或者跨bank的写操作,效率较高,而实际应用中,模块经常访问连续的逻辑地址空间,所以在物理地址分配中,按照ROW地址、BANK地址、COL地址的顺序进行分配。
本发明实施例能够提高DDRII的读、写效率。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (9)
1.一种DDRII控制器的读写方法,所述方法包括:
进行状态转换,进入读操作状态或写操作状态;
在写操作时,同时提供写地址及写数据,并检测控制器给出的准备就绪READY信号,若READY有效,则下一周期输出新的命令,若无效,则维持当前命令和数据不变;
在读操作时,提供读地址,并检测控制器给出的READY信号,若READY有效,则下一周期输出新的命令,若无效,则维持当前命令和数据不变,读数据将在固定周期后返回;
其中,在DDRII端口的写操作的时序中,利用附加延迟AL特性,CMD命令总线上在发布激活ACT命令后直接跟写W命令;
并且其中,在DDRII端口的读操作的时序中,利用附加延迟AL特性,CMD命令总线上在发布激活ACT命令后直接跟读R命令。
2.根据权利要求1的DDRII控制器的读写方法,其特征在于,在DDRII端口的写操作的时序中,利用自动预充电的写操作W_PRE特性连续执行跨bank的写命令。
3.根据权利要求1或2的DDRII控制器的读写方法,其特征在于,在DDRII端口的读操作的时序中,利用自动预充电的读操作R_PRE特性连续执行跨bank的读命令。
4.根据权利要求1的DDRII控制器的读写方法,其中,所述状态转换包括:上电复位到NOT_INIT状态,之后进入初始化INITING状态,完成DDRII的初始化INITING命令,进入空闲IDLE状态,之后检测缓存的2个命令是否都为空,据此进入预充电的下电状态PRE_PD状态、刷新REF状态或者读写操作状态。
5.根据权利要求4的DDRII控制器的读写方法,其特征在于,在检测结果为未达到最大刷新间隔,且缓存的2个命令均为空命令时,进入PRE_PD状态。
6.根据权利要求4的DDRII控制器的读写方法,其特征在于,在检测结果为达到最大刷新间隔时,进入REF状态。
7.根据权利要求4的DDRII控制器的读写方法,其特征在于,在检测结果为未达到最大刷新间隔,且待执行的缓存命令为读操作时,进入读操作状态。
8.根据权利要求4的DDRII控制器的读写方法,其特征在于,在检测结果为未达到最大刷新间隔,且待执行的缓存命令为写操作时,进入写操作状态。
9.根据权利要求1的DDRII控制器的读写方法,还包括:在DDRII相同行ROW上进行写操作或者跨页bank写操作时,按照行ROW地址、页BANK地址以及列COL地址的顺序进行分配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410638634.XA CN104391801B (zh) | 2014-11-07 | 2014-11-07 | Ddrii控制器的读写、状态转换、物理地址分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410638634.XA CN104391801B (zh) | 2014-11-07 | 2014-11-07 | Ddrii控制器的读写、状态转换、物理地址分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104391801A CN104391801A (zh) | 2015-03-04 |
CN104391801B true CN104391801B (zh) | 2018-09-25 |
Family
ID=52609708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410638634.XA Active CN104391801B (zh) | 2014-11-07 | 2014-11-07 | Ddrii控制器的读写、状态转换、物理地址分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104391801B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483754B (zh) * | 2023-06-26 | 2023-10-10 | 湖北芯擎科技有限公司 | Ram的读写控制方法、控制器、ram以及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026006A (zh) * | 2005-11-19 | 2007-08-29 | 三星电子株式会社 | 等待时间控制电路及其方法和自动预充电控制电路及方法 |
CN101620524A (zh) * | 2009-07-03 | 2010-01-06 | 中国人民解放军国防科学技术大学 | 支持矩阵整体读写操作的矩阵寄存器文件 |
CN101894584A (zh) * | 2010-06-12 | 2010-11-24 | 苏州国芯科技有限公司 | 一种动态随机存储器读写模式信号时序参数的实现方法 |
CN102411982A (zh) * | 2010-09-25 | 2012-04-11 | 杭州华三通信技术有限公司 | 内存控制器及命令控制方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673245B (zh) * | 2008-09-09 | 2016-02-03 | 株式会社东芝 | 包括存储器管理装置的信息处理装置和存储器管理方法 |
CN102053936B (zh) * | 2010-12-15 | 2012-09-05 | 北京北方烽火科技有限公司 | Fpga通过ddr2接口与dsp通信的方法及装置 |
CN102880552B (zh) * | 2012-07-31 | 2015-01-14 | 中国人民解放军国防科学技术大学 | 面向多核多线程处理器的混合地址映射方法 |
-
2014
- 2014-11-07 CN CN201410638634.XA patent/CN104391801B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026006A (zh) * | 2005-11-19 | 2007-08-29 | 三星电子株式会社 | 等待时间控制电路及其方法和自动预充电控制电路及方法 |
CN101620524A (zh) * | 2009-07-03 | 2010-01-06 | 中国人民解放军国防科学技术大学 | 支持矩阵整体读写操作的矩阵寄存器文件 |
CN101894584A (zh) * | 2010-06-12 | 2010-11-24 | 苏州国芯科技有限公司 | 一种动态随机存储器读写模式信号时序参数的实现方法 |
CN102411982A (zh) * | 2010-09-25 | 2012-04-11 | 杭州华三通信技术有限公司 | 内存控制器及命令控制方法 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的DDR SDRAM控制器设计与实现;张楠,张佩珩,刘新春,江先阳;《计算机工程与应用》;20061231(第24期);第2.2节,图8-9 * |
Also Published As
Publication number | Publication date |
---|---|
CN104391801A (zh) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102500661B1 (ko) | 다중 레벨 셀 모드 비휘발성 메모리를 위한 비용 최적화된 단일 레벨 셀 모드 비휘발성 메모리 | |
US9135192B2 (en) | Memory system with command queue reordering | |
US8607089B2 (en) | Interface for storage device access over memory bus | |
US10365842B2 (en) | System and method for reducing power consumption of memory | |
CN105808455B (zh) | 访问内存的方法、存储级内存及计算机系统 | |
CN105706171B (zh) | 用于访问动态随机存取存储器阵列的技术 | |
US20110208900A1 (en) | Methods and systems utilizing nonvolatile memory in a computer system main memory | |
US20090150597A1 (en) | Data writing method for flash memory and controller using the same | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
US20150206574A1 (en) | Relocating infrequently-accessed dynamic random access memory (dram) data to non-volatile storage | |
US11010079B2 (en) | Concept for storing file system metadata within solid-stage storage devices | |
CN102591783B (zh) | 可编程存储器控制器 | |
CN106802870B (zh) | 一种高效的嵌入式系统芯片Nor-Flash控制器及控制方法 | |
CN104679609B (zh) | 数控系统 | |
CN103810126A (zh) | 混合dram存储器及降低该dram存储器刷新时功耗的方法 | |
US9520170B2 (en) | Volume select for affecting a state of a non-selected memory volume | |
US20130132704A1 (en) | Memory controller and method for tuned address mapping | |
CN108733318A (zh) | 一种tlc nand flash固态硬盘的写入方法 | |
US11016904B2 (en) | Storage device for performing map scheduling and electronic device including the same | |
CN111796759B (zh) | 多平面上的片段数据读取的计算机可读取存储介质及方法 | |
CN104346292A (zh) | 用来管理一记忆装置的方法、记忆装置与控制器 | |
CN108062201A (zh) | 用于固态驱动器的自虚拟化闪速存储器 | |
US20190138453A1 (en) | Computer memory content movement | |
US9183057B2 (en) | Systems and methods for accessing memory | |
CN109471819A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |