CN102543159B - 一种ddr控制器及其实现方法和芯片 - Google Patents
一种ddr控制器及其实现方法和芯片 Download PDFInfo
- Publication number
- CN102543159B CN102543159B CN201010612846.2A CN201010612846A CN102543159B CN 102543159 B CN102543159 B CN 102543159B CN 201010612846 A CN201010612846 A CN 201010612846A CN 102543159 B CN102543159 B CN 102543159B
- Authority
- CN
- China
- Prior art keywords
- order
- bank
- row
- command
- condition
- 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
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40618—Refresh operations over multiple banks or interleaving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/18—Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
Abstract
本发明适用于DDR控制器技术领域,提供了一种DDR控制器及其实现方法和芯片,所述方法包括下述步骤:同时解析缓存的多个命令,预判所述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE命令和ACTIVE命令提前发送。本发明通过同时解析缓存的多个命令,并预判上述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE命令和ACTIVE命令提前发送,使得原来串行发送的PRECHARGE命令和ACTIVE命令可以提前以并行的掩蔽在READ或者WRITE等期间,充分利用了DDR器件的带宽。
Description
技术领域
本发明属于双倍数据速率同步动态随机访问存储器DDR SDRAM(Doubledata rate Synchronous dynamic random access memory)控制器技术领域,尤其涉及一种DDR控制器及其实现方法和芯片。
背景技术
DDR SDRAM控制器(在本申请文件中简称“DDR控制器”)的设计要支持DDR器件最基本、最常用的命令,包括ACTIVE(激活命令),READ(读命令),WRITE(写命令),PRECHARGE(预充电命令)。其中ACTIVE和PRECHARGE会产生额外的带宽消耗,是影响DDR器件带宽的关键因素,请参阅图1,图中给出了基本的DDR传输时序图。DDR器件内部的存储单元是由Bank(块)、Row(行)、Col(列)组合成的矩阵单元,因此要访问某个Bank内由Row、Col选中的存储体,首先要发送ACTIVE命令来激活该Bank、Row,然后才能发送READ/WRITE命令并伴随要访问的Col,在满足相应的时间参数后DDR器件才将相应的数据送到DQ(数据线)端口上。如果第一个读/写命令后又有第二个读/写命令,根据该命令所要访问的Bank、Row不同,DDR控制器处理可能出现的三种情况:
(1)第二个命令与第一个命令访问相同的Bank、Row,直接发送READ/WRITE命令即可,请参阅图2。
(2)第二个命令与第一个命令访问相同的Bank,不同的Row,则首先要用PRECHARGE命令关闭第一个命令所访问的Row,然后再用ACTIVE命令激活第二个命令所访问的Row,最后才能发送READ/WRITE命令,请参阅图3。
(3)第二个命令与第一个命令访问不同的Bank、Row,那么首先要用ACTIVE命令激活第二个命令所访问的Bank、Row,然后发送READ/WRITE命令。与第二种情况不同的是少了一个PRECHARGE命令,请参阅图4。
从第二种和第三种情况可以看到,由于额外的PRECHARGE和ACTIVE命令的插入使得DQ上的数据不再连续,从而造成带宽上的浪费。通常DDR控制器的设计都是串行执行命令的,即前一个命令完成后,下一个命令才开始解析,因此会产生带宽浪费现象。
发明内容
本发明实施例的目的在于提供一种DDR控制器的实现方法,旨在解决现有技术中的PRECHARGE和ACTIVE命令的插入会造成带宽浪费的问题。
本发明实施例是这样实现的,一种DDR控制器的实现方法,所述方法包括下述步骤:
同时解析缓存的多个命令;
预判所述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE命令和ACTIVE命令提前发送。
本发明实施例还提供了一种DDR控制器,所述控制器包括:
命令解析单元,用于同时解析缓存的多个命令;
命令发送单元,用于预判所述命令解析单元解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE和ACTIVE提前发送。
本发明实施例还提供了一种芯片,所述芯片包含上述DDR控制器。
本发明实施例通过同时解析缓存的多个命令,并预判上述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE命令和ACTIVE命令提前发送,使得原来串行发送的PRECHARGE命令和ACTIVE命令可以提前以并行的掩蔽在READ或者WRITE等期间,充分利用了DDR器件的带宽。
附图说明
图1是现有技术DDR传输的时序图;
图2是现有技术相同Bank,相同Row的DDR传输时序图;
图3是现有技术相同Bank,不同Row的DDR传输时序图;
图4是现有技术不同Bank的DDR传输时序图;
图5是本发明实施例一提供的DDR控制器的实现方法的实现流程图;
图6是本发明实施例二提供的串行发送PRECHARGE命令和ACTIVE命令的时序图;
图7是本发明实施例二提供的并行提前发送PRECHARGE命令和ACTIVE命令的时序图;
图8是本发明实施例三提供的状态转换机的状态转换图的示意图;
图9是本发明实施例四提供的DDR控制器的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过DDR控制器预先解析多个命令,将其中潜在的PRECHARGE和ACTIVE命令掩蔽在当前正在执行的命令中来实现,充分利用了DDR器件的带宽。
本发明实施例提供了一种DDR控制器的实现方法,所述方法包括下述步骤:
同时解析缓存的多个命令;
预判所述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE命令和ACTIVE命令提前发送。
本发明实施例还提供了一种DDR控制器,所述控制器包括:
命令解析单元,用于同时解析缓存的多个命令;
命令发送单元,用于预判所述命令解析单元解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE和ACTIVE提前发送。
本发明实施例还提供了一种芯片,所述芯片包含上述DDR控制器。
本发明实施例通过同时解析缓存的多个命令,并预判上述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE命令和ACTIVE命令提前发送,使得原来串行发送的PRECHARGE命令和ACTIVE命令可以提前以并行的掩蔽在READ或者WRITE等期间,充分利用了DDR器件的带宽。
以下结合具体实施例对本发明的实现进行详细描述:
实施例一
在DDR器件使用过程中,PRECHARGE和ACTIVE命令必须发送,因此串行发送命令的DDR控制器虽然简化了设计,但是浪费了带宽。但可以发现在命令发送过程中只要满足相应的时间参数即可,因此,如果将第二个命令潜在的PRECHARGE和ACTIVE命令掩蔽在第一命令的tRCD或读、写数据周期内,可以减少很多额外的时间开销,达到提高数据吞吐率的目的。
图5示出了本发明实施例一提供的DDR控制器的实现方法的实现流程图,详述如下:
在步骤S501中,同时解析缓存的多个命令。
在本发明实施例中,DDR器件可能接收来自多个设备的多个命令,则DDR器件要缓存上述多个命令,同时解析缓存的多个命令。
在本发明实施例中,同时解析命令的个数由DDR器件的bank数目,以及系统应用中有多少主机访问DDR器件决定,例如同时解析的命令的数目可以为3个、4个或者8个。
在步骤S502中,预判上述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE命令和ACTIVE命令提前发送。
在本发明实施例中,将PRECHARGE命令和ACTIVE命令提前发送的同时,提前发送的PRECHARGE命令和ACTIVE命令还应满足DDR器件的时间的要求,例如,参数tRP(PRECHARGE到ACTIVE的时间间隔)、tRRD(两个ACTIVE之间的时间间隔)以及tRCD(ACTIVE与读写命令之间的时间间隔)等。
在本发明实施例中,通过解析的每一命令访问的地址的块Bank和行Row之间的关系及每一命令访问的地址的块Bank和行Row与当前正在执行的命令的地址Bank和Row的关系,将预充电PRECHARGE命令和激活ACTIVE命令提前发送。
本发明实施例的方法的还可以应用于DDR2SDRAM、DDR3SDRAM或者SDR SDRAM等器件中。
本发明实施例通过同时解析缓存的多个命令,并预判上述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE命令和ACTIVE命令提前发送,使得原来串行发送的PRECHARGE命令和ACTIVE命令可以提前以并行的掩蔽在READ或者WRITE等期间的方式发送,充分利用了DDR器件的带宽。
实施例二
在本发明实施例中,将PRECHARGE命令和ACTIVE命令提前发送的条件具体为:
(1)ACTIVE命令提前发送的条件为:
第一个命令要访问的Bank和Row没有被激活;或者
后续命令要访问的Bank和Row与所述后续命令之前的所有命令要访问的Bank和Row均不同;
(2)PRECHARGE命令提前发送的条件为:
后续命令与第一个命令要访问的是相同Bank、不同Row,且与除第一个命令之外的前续命令访问的是不同Bank,则第一个读/写命令完成后要发送PRECHARGE命令。
为了便于理解,以下将分别以DDR控制器同时解析三个命令和四个命令为例对提前发送PRECHARGE命令和ACTIVE命令的条件进行说明,但不以本实现示例的情况为限:
当DDR控制器同时解析三个命令时,解析的三个命令依次为第一个命令、
第二个命令和第三个命令:
ACTIVE命令提前发送的条件,具体如下:
(1)第一个命令的Bank和Row没有激活。或者
(2)第二个命令要访问的Bank和Row与第一个命令不同。或者
(3)第三个命令要访问的Bank和Row与第一个命令和第二个命令都不同。
PRECHARGE命令提前发送的条件,具体如下:
(1)第二个命令与第一个命令要访问的是相同Bank、不同Row,第一个命令完成后要发送PRECHARGE命令。或者
(2)第三个命令与第一个命令要访问的是相同Bank、不同Row,且与第二个命令要访问的是不同Bank,第一个命令完成后要发送PRECHARGE命令。
当DDR控制器同时解析四个命令时,解析的三个命令依次为第一个命令、
第二个命令、第三个命令和第四个命令:
ACTIVE命令提前发送的条件,具体如下:
(1)第一个命令的Bank和Row没有激活。或者
(2)第二个命令要访问的Bank和Row与第一个命令不同。或者
(3)第三个命令要访问的Bank和Row与第一个命令和第二个命令都不同。或者
(4)第四个命令要访问的Bank和Row与第一个命令、第二个命令和第三个命令都不同。
PRECHARGE命令提前发送的条件,具体如下:
(1)第二个命令与第一个命令要访问的是相同Bank、不同Row,第一个命令完成后要发送PRECHARGE命令。或者
(2)第三个命令与第一个命令要访问的是相同Bank、不同Row,且与第二个命令要访问的是不同Bank,第一个命令完成后要发送PRECHARGE命令。或者
(3)第四个命令与第一个命令要访问的是相同Bank、不同Row,且与第二个命令和第三个命令要访问的是不同Bank,则第一个读/写命令完成后要发送PRECHARGE命令。
为了对本发明的效果进行说明,下面以同时解析三个命令的情况为例进行说明本发明实施例的效果。假设DDR控制器可以预先解析三个命令,并将潜在的PRECHARGE和ACTIVE命令掩蔽在当前正在执行的命令中来实现带宽提升。假设DDR控制器同时解析的三个命令所要要访问的地址和顺序分别是:
第一个命令:Bank0、Row0
第二个命令:Bank1、Row0
第三个命令:Bank0、Row1
则现有技术串行发送PRECHARGE命令和ACTIVE命令的时序图请参阅图6,从图中可以看出:从发送第一个ACTIVE命令到收到第三个读命令的最后一笔数据需要24个周期,DQ的不连续时间间隔达到12个周期,即浪费了12个周期。
采用本发明实施例的方法如下,由于第二个命令要访问的Bank1和Row0与第一个命令访问的Bank0和Row0不同,满足提前发送Active命令,另外第三个命令访问的Bank0和Row1与第一个命令访问的Bank0、Row0是相同Bank、不同Row,且第三个命令与第二个命令要访问的Bank0是不同Bank,满足提前发送PRECHARGE命令,提前发送的Active命令和PRECHARGE命令还应满足DDR期间的时间参数tRRD=4,tRCD=3及tRP=3,具体请参阅图7,从图中可以看出,从发送第一个ACTIVE命令到收到第三个读命令的最后一笔数据需要17个周期,DQ的不连续时间间隔达到5个周期,即只浪费了5个周期,带宽提升29%。
在本发明实施例中,通过将PRECHARGE命令和ACTIVE命令提前发送,有效的提升了带宽的利用率。
在本发明实施例中,预判断的命令越多,控制器的设计越复杂,带宽提升也越多。
实施例三
在本发明实施例中,可以采用状态机预判解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE和ACTIVE提前发送。
在本发明实施例中,状态机的状态及状态转换条件,具体请参阅图8:其中,状态机的状态包括:
空闲状态(CMD_IDLE):该状态下什么都不作,只是等待命令。
激活状态(CMD_ACT):该状态将发送ACTIVE命令。
读写状态(CMD_ACC):该状态将发送READ/WRITE命令。
关闭状态(CMD_PRE):该状态将发送PRECHARGE命令。
突发中止状态(CMD_BST):该状态如果是读操作将发送BURST_TERMINATE命令。
等待状态(CMD_ACC_TM):当待执行的命令与前续发送的命令之间的时间间隔不满足DDR器件的时间参数要求时,则跳转至等待状态。
全部关闭状态(CMD_PRE_ALL):该状态发送PRECHARGE_ALL命令,保证在执行完所有命令后DDR器件的所有Bank都是关闭的。
状态机转换的条件具体包括:
1、cmd_act:跳转至CMD_ACT的条件,具体如下:
(1)命令要访问的Bank和Row没有被激活。或者
(2)后续命令要访问的Bank和Row与该命令之前的所有命令要访问的Bank和Row均不同。
在本发明实施中,由于同时解析了多个命令,可以根据所解析多个命令的执行顺序,分析后续要访问的Bank和Row与该命令之前的所有命令要访问的Bank和Row之间的关系,如果符合上述条件跳转至CMD_ACT的条件,则执行跳转。
2、cmd_acc:跳转至CMD_ACC的条件,具体如下:
对当前命令有效,即后续命令要跳转至读写状态要等到当前命令完成后。
3、cmd_pre,跳转至CMD_PRE的条件,具体如下:
(1)后续命令与第一个命令要访问的是相同Bank、不同Row,且与除第一个命令之外的前续命令访问的是不同Bank,则第一个读/写命令完成后要发送PRECHARGE命令。或者
(2)如果某个Bank、Row已经被激活,且待解析的命令都不指向该Bank,则在解析命令执行期间会发送PRECHARGE命令。
在本发明实施例中,根据所解析多个命令的执行顺序,可以按阿拉伯数字依次作为第一个命令、第二个命令......第N个命令,其中N为同时解析命令的个数。
在本发明实施例中,待解析的命令为已接收的且尚未解析的命令。
4、cmd_bst:跳转至CMD_BST的条件,具体如下:
当某个命令要读取的数据不足DDR器件的突发长度,要发送BURST_TERMINATE命令阻隔多余的数据。
在本发明实施例中,突发长度可以为4字突发或者8字突发。
5、cmd_idle_exe:跳转至CMD_IDLE的条件,具体如下:
当长时间内没有读或写命令要发送给外部DDR器件或有模式配置或刷新命令要发送给DDR器件,控制器将跳转至CMD_PRE_ALL状态关闭DDR器件所有Bank后回到CMD_IDLE状态。
6、跳转至CMD_ACC_TM的条件为:
当待执行的命令与前续发送的命令之间的时间间隔不满足DDR器件的时间参数要求时,则跳转至等待状态。
在本发明实施例中,当待执行的命令与前续发送的命令之间的时间间隔满足DDR器件的时间参数要求时,则跳转至相应状态。
在本发明实施例中,DDR器件应满足的时间参数请参阅步骤502中的描述。
在本发明实施例中,通过采用状态机预判解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE和ACTIVE提前发送,一方面仍然可以充分利用DDR器件的带宽,另一方面,可以使得解析过程更加清晰,有条理,从而使执行过程稳定可靠。
实施例四
图9示出了本发明实施例四提供的DDR控制器的结构图,为了便于说明,仅示出了与本发明实施例相关的部分,该DDR控制器可以是位于芯片中的软件单元,硬件单元或者软硬结合单元,在此不用以限制本发明。
在本发明实施例中,所述系统包括命令解析单元91和命令发送单元92,其中,
命令解析单元91同时解析缓存的多个命令。
在本发明实施例中,DDR器件可能接收来自多个设备的多个命令,则DDR器件要缓存上述多个命令,同时解析缓存的多个命令。
在本发明实施例中,同时解析命令的个数由DDR器件的bank数目,以及系统应用中有多少主机访问DDR器件,例如同时解析的命令的数目可以为3个、4个或者8个。
命令发送单元92预判命令解析单元91解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE和ACTIVE提前发送。
在本发明实施例中,根据状态机将PRECHARGE和ACTIVE提前发送的同时,提前发送的PRECHARGE和ACTIVE还应满足DDR器件的时间参数,例如,tRP(PRECHARGE到ACTIVE的时间间隔)、tRRD(两个ACTIVE之间的时间间隔)、tRCD(ACTIVE同读/写命令之间的时间间隔)。
在本发明实施例中,同时解析缓存的多个命令的数目由DDR器件的bank数目,以及系统应用中所有访问DDR器件的主机数目决定。
在本发明实施例中,通过将串行发送PRECHARGE和ACTIVE采用并行提前发送,有效的提高了带宽的利用率。
实施例五
在本发明实施例中,命令发送单元92将PRECHARGE和ACTIVE提前发送的条件为:
ACTIVE命令提前发送的条件为:
第一个命令要访问的Bank和Row没有被激活;或者
后续命令要访问的Bank和Row与所述后续命令之前的所有命令要访问的Bank和Row均不同;
PRECHARGE命令提前发送的条件为:
后续命令与第一个命令要访问的是相同Bank、不同Row,且与除第一个命令之外的前续命令访问的是不同Bank,则第一个读/写命令完成后要发送PRECHARGE命令。
实施例六
在本发明实施例中,命令发送单元92采用.预判所述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE和ACTIVE提前发送。状态机包括的状态及状态转换条件可以采用实施例三中关于状态机的描述。
综上,本发明实施例的有益效果如下:
1、通过同时解析缓存的多个命令,并预判上述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE命令和ACTIVE命令提前发送,使得原来串行发送的PRECHARGE命令和ACTIVE命令可以提前以并行的掩蔽在READ或者WRITE等期间,充分利用了DDR器件的带宽。
2、通过采用状态机预判解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE和ACTIVE提前发送,一方面可以充分利用DDR器件的带宽,同时也使得方法更加稳定可靠。
值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种DDR控制器的实现方法,其特征在于,所述方法包括下述步骤:
同时解析缓存的多个命令;
预判所述解析的每一命令访问的地址的块Bank和行Row与当前正在执行的命令的地址Bank和Row的关系,将预充电PRECHARGE命令和激活ACTIVE命令提前发送;所述ACTIVE命令提前发送的条件为:
第一个命令要访问的Bank和Row没有被激活;或者
后续命令要访问的Bank和Row与所述后续命令之前的所有命令要访问的Bank和Row均不同;
PRECHARGE命令提前发送的条件为:
后续命令与第一个命令要访问的是相同Bank、不同Row,且与除第一个命令之外的前续命令访问的是不同Bank,则第一个读/写命令完成后要发送PRECHARGE命令。
2.如权利要求1所述的方法,其特征在于,采用状态机预判所述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系。
3.如权利要求2所述的方法,其特征在于,所述状态机的状态包括:
空闲状态、激活状态、读写状态、关闭状态、突发中止状态、等待状态和全部关闭状态;
所述状态的转换条件具体为:
A、跳转至激活状态的条件,具体如下:
命令要访问的Bank和Row没有被激活;或者
后续命令要访问的Bank和Row与该命令之前的所有命令要访问的Bank和Row均不同;
B、跳转至读写状态的条件,具体如下:
对当前命令有效,即后续命令跳转至读写状态要等到当前命令完成后;
C、跳转至关闭状态的条件,具体如下:
后续命令与第一个命令要访问的是相同Bank、不同Row,且与除第一个命令之外的前续命令访问的是不同Bank,则第一个读/写命令完成后要发送PRECHARGE命令;或者
如果某个Bank、Row已经被激活,且待解析的命令都不指向该Bank,则在所述解析命令执行期间要发送PRECHARGE命令;
D、跳转至突发中止状态的条件,具体如下:
当某个命令要读取的数据不足DDR器件的突发长度,要发送BURST_TERMINATE命令阻隔多余的数据;
E、跳转至空闲状态的条件,具体如下:
当长时间内没有读或写命令要发送给外部DDR器件或有模式配置或刷新命令要发送给DDR器件,控制器将跳转至全部关闭状态关闭DDR器件所有Bank后回到空闲状态;
F、跳转至等待状态的条件为:
当待执行的命令与前续发送的命令之间的时间间隔不满足DDR器件的时间参数要求时,则跳转至等待状态。
4.如权利要求1所述的方法,其特征在于,所述同时解析缓存的多个命令的数目由DDR器件的bank数目,以及系统应用中所有访问DDR器件的主机数目决定。
5.一种DDR控制器,其特征在于,所述控制器包括:
命令解析单元,用于同时解析缓存的多个命令;
命令发送单元,用于预判所述命令解析单元解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE命令和ACTIVE命令提前发送;所述命令发送单元将ACTIVE命令提前发送的条件为:
第一个命令要访问的Bank和Row没有被激活;或者
后续命令要访问的Bank和Row与所述后续命令之前的所有命令要访问的Bank和Row均不同;
PRECHARGE命令提前发送的条件为:
后续命令与第一个命令要访问的是相同Bank、不同Row,且与除第一个命令之外的前续命令访问的是不同Bank,则第一个读/写命令完成后要发送PRECHARGE命令。
6.如权利要求5所述的控制器,其特征在于,所述命令发送单元采用状态机预判所述解析的每一命令访问的地址的Bank和Row与当前正在执行的命令的地址Bank和Row的关系,将PRECHARGE和ACTIVE提前发送。
7.如权利要求6所述的控制器,其特征在于,所述状态机的状态包括:
空闲状态、激活状态、读写状态、关闭状态、突发中止状态、等待状态和全部关闭状态;所述状态的转换条件具体为:
A、跳转至激活状态的条件,具体如下:
命令要访问的Bank和Row没有被激活;或者
后续命令要访问的Bank和Row与该命令之前的所有命令要访问的Bank和Row均不同;
B、跳转至读写状态的条件,具体如下:
对当前命令有效,即后续命令要跳转至读写状态要等到当前命令完成后;
C、跳转至关闭状态的条件,具体如下:
后续命令与第一个命令要访问的是相同Bank、不同Row,且与除第一个命令之外的前续命令访问的是不同Bank,则第一个读/写命令完成后要发送PRECHARGE命令;或者
如果某个Bank、Row已经被激活,且待解析的命令都不指向该Bank,则在所述解析命令执行期间要发送PRECHARGE命令;
D、跳转至突发中止状态的条件,具体如下:
当某个命令要读取的数据不足DDR器件的突发长度,要发送BURST_TERMINATE命令阻隔多余的数据;
E、跳转至空闲状态的条件,具体如下:
当长时间内没有读或写命令要发送给外部DDR器件或有模式配置或刷新命令要发送给DDR器件,控制器将跳转至全部关闭状态关闭DDR器件所有Bank后回到空闲状态;
F、跳转至等待状态的条件为:
当待执行的命令与前续发送的命令之间的时间间隔不满足DDR器件的时间参数要求时,则跳转至等待状态。
8.如权利要求5所述的控制器,其特征在于,所述命令解析单元同时解析缓存的多个命令的数目由DDR器件的bank数目,以及系统应用中所有访问DDR器件的主机数目决定。
9.一种芯片,其特征在于,所述芯片包含如权利要求5至8任一权利要求所述的DDR控制器。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010612846.2A CN102543159B (zh) | 2010-12-29 | 2010-12-29 | 一种ddr控制器及其实现方法和芯片 |
EP11852925.4A EP2660820A1 (en) | 2010-12-29 | 2011-07-25 | Ddr controller, and method and chip for implementing same |
PCT/CN2011/077540 WO2012088879A1 (zh) | 2010-12-29 | 2011-07-25 | 一种ddr控制器及其实现方法和芯片 |
US13/977,393 US9685220B2 (en) | 2010-12-29 | 2011-07-25 | DDR controller, method for implementing the same, and chip |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010612846.2A CN102543159B (zh) | 2010-12-29 | 2010-12-29 | 一种ddr控制器及其实现方法和芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102543159A CN102543159A (zh) | 2012-07-04 |
CN102543159B true CN102543159B (zh) | 2014-06-25 |
Family
ID=46349867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010612846.2A Active CN102543159B (zh) | 2010-12-29 | 2010-12-29 | 一种ddr控制器及其实现方法和芯片 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9685220B2 (zh) |
EP (1) | EP2660820A1 (zh) |
CN (1) | CN102543159B (zh) |
WO (1) | WO2012088879A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929815B (zh) * | 2012-11-23 | 2015-06-17 | 中国电子科技集团公司第三十二研究所 | 应用于网络处理器中的ddr3存储器的控制器 |
US9734098B2 (en) * | 2015-03-31 | 2017-08-15 | Sandisk Technologies Llc | Memory bus management |
CN105279116B (zh) * | 2015-10-08 | 2017-12-01 | 中国电子科技集团公司第四十一研究所 | 基于fpga的ddr控制器及控制方法 |
CN108139879B (zh) * | 2016-04-29 | 2020-09-08 | 华为技术有限公司 | 一种数据访问的方法及内存控制器 |
CN108900285B (zh) * | 2018-06-26 | 2020-11-13 | 电子科技大学 | 一种面向预测控制系统的自适应混合无线传输方法 |
CN112767978B (zh) * | 2021-01-11 | 2022-10-14 | 湖南国科微电子股份有限公司 | 一种ddr命令调度方法、装置、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100449481C (zh) * | 2007-06-29 | 2009-01-07 | 东南大学 | 具有多通道指令预取功能的存储控制电路 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219747B1 (en) * | 1999-01-06 | 2001-04-17 | Dvdo Inc | Methods and apparatus for variable length SDRAM transfers |
JP3918145B2 (ja) | 2001-05-21 | 2007-05-23 | 株式会社ルネサステクノロジ | メモリコントローラ |
US20030018828A1 (en) * | 2001-06-29 | 2003-01-23 | International Business Machines Corporation | Infiniband mixed semantic ethernet I/O path |
US6615326B1 (en) * | 2001-11-09 | 2003-09-02 | Lsi Logic Corporation | Methods and structure for sequencing of activation commands in a high-performance DDR SDRAM memory controller |
CN100538882C (zh) * | 2005-11-18 | 2009-09-09 | 宁波中科集成电路设计中心有限公司 | 一种同步动态存储器控制器的设计方法 |
US8145869B2 (en) | 2007-01-12 | 2012-03-27 | Broadbus Technologies, Inc. | Data access and multi-chip controller |
-
2010
- 2010-12-29 CN CN201010612846.2A patent/CN102543159B/zh active Active
-
2011
- 2011-07-25 WO PCT/CN2011/077540 patent/WO2012088879A1/zh active Application Filing
- 2011-07-25 EP EP11852925.4A patent/EP2660820A1/en not_active Withdrawn
- 2011-07-25 US US13/977,393 patent/US9685220B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100449481C (zh) * | 2007-06-29 | 2009-01-07 | 东南大学 | 具有多通道指令预取功能的存储控制电路 |
Non-Patent Citations (2)
Title |
---|
US 6,219,747 B1,2001.04.17,说明书第6栏第50行-第7栏第35行,附图12-15. |
US 6,615,326 B1,2003.09.02,说明书第10栏第42行-第11栏第58行,附图9-15. |
Also Published As
Publication number | Publication date |
---|---|
WO2012088879A1 (zh) | 2012-07-05 |
CN102543159A (zh) | 2012-07-04 |
EP2660820A1 (en) | 2013-11-06 |
US20130290621A1 (en) | 2013-10-31 |
US9685220B2 (en) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11270741B2 (en) | Deferred fractional memory row activation | |
CN102543159B (zh) | 一种ddr控制器及其实现方法和芯片 | |
CA2949282C (en) | Method for refreshing dynamic random access memory and a computer system | |
KR100532640B1 (ko) | 로우 및 칼럼 커맨드를 동시에 제공하기 위한 방법 및시스템 | |
JP2017117510A (ja) | 有向自動リフレッシュ同期 | |
US8397100B2 (en) | Managing memory refreshes | |
CN106856098B (zh) | 一种用于DRAM或eDRAM刷新的装置及其方法 | |
KR20130068915A (ko) | 메모리 시스템 및 그 동작 제어 방법 | |
CN101702326A (zh) | 内存控制器 | |
CN113900818A (zh) | Ddr存储器数据读写调度方法和装置 | |
CN101042926A (zh) | 存储器控制方法,存储装置以及存储器控制器 | |
WO2009125572A1 (ja) | メモリ制御回路及びメモリ制御方法 | |
JP5464527B2 (ja) | 不揮発性メモリの読み出し動作変更 | |
CN100370436C (zh) | 一种提高存储器访问效率的方法及存储器控制器 | |
JP7420472B2 (ja) | ページサイズ認識スケジューリング方法及び非一時的なコンピュータ読取可能記録媒体 | |
CN102073604B (zh) | 一种同步动态存储器读写控制方法、装置和系统 | |
US10338821B2 (en) | Memory controller for high latency memory devices | |
CN103761205B (zh) | 一种适用于sparc空间处理器的存储器桥接方法 | |
US20190096459A1 (en) | Memory devices for performing multiple write operations and operating methods thereof | |
WO2016126264A1 (en) | Refreshing an identified partial array | |
CN108027765B (zh) | 一种内存访问方法以及计算机系统 | |
US7941594B2 (en) | SDRAM sharing using a control surrogate | |
US20230168818A1 (en) | Memory device having reduced power noise in refresh operation and operating method thereof | |
US20230289063A1 (en) | Electronic system and method for controlling burst length to access memory device of electronic system | |
US20160231949A1 (en) | Memory controller and associated control method |
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 |