CN101639817A - 一种存储器的控制方法、存储器控制器和存储器控制系统 - Google Patents

一种存储器的控制方法、存储器控制器和存储器控制系统 Download PDF

Info

Publication number
CN101639817A
CN101639817A CN200910129207A CN200910129207A CN101639817A CN 101639817 A CN101639817 A CN 101639817A CN 200910129207 A CN200910129207 A CN 200910129207A CN 200910129207 A CN200910129207 A CN 200910129207A CN 101639817 A CN101639817 A CN 101639817A
Authority
CN
China
Prior art keywords
order
memory bank
command
strategy
address
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.)
Granted
Application number
CN200910129207A
Other languages
English (en)
Other versions
CN101639817B (zh
Inventor
李建威
何云鹏
刘宇轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Visual Technology Co Ltd
Original Assignee
Qingdao Hisense Xinxin Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qingdao Hisense Xinxin Technology Co Ltd filed Critical Qingdao Hisense Xinxin Technology Co Ltd
Priority to CN2009101292078A priority Critical patent/CN101639817B/zh
Publication of CN101639817A publication Critical patent/CN101639817A/zh
Application granted granted Critical
Publication of CN101639817B publication Critical patent/CN101639817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

本发明公开了一种存储器的控制方法、存储器控制器和存储器控制系统,涉及存储控制技术,能够充分利用页保持打开策略和页保持关闭策略的优势,减少读写命令的反转,大大降低了存储器进行数据访问时的延迟,显著增加了数据总线的可利用带宽,提高了系统的性能。本发明提供的存储器的控制方法包括:获取存储体的运行状态;获取待执行的命令队列中所述存储体对应的下一个命令的地址信息;根据所述运行状态信息和地址信息动态确定对所述存储体当前所采用的控制策略,所述策略包括页保持打开策略和页保持关闭策略。同时,该方法还包括按照预定的排序规则,对待执行命令队列中的命令进行排序。本发明适用于任何对存储器进行控制的场景。

Description

一种存储器的控制方法、存储器控制器和存储器控制系统
技术领域
本发明涉及存储控制技术,尤其涉及一种存储器的控制方法、存储器控制器和存储器控制系统。
背景技术
随着集成技术的发展,可以将传统技术中的各单个芯片集成在一个芯片上实现。例如,在高清电视(HDTV)片上系统(SOC)设计中,采用了将各单芯片,如CPU,音频视频解码单元、存储器、显示器件及外围接口等,整合在单一芯片中的技术。其中,存储器通常选取高速的双倍数据传输速度同步动态随机存取存储器(Double-Data-Rate Synchronous DRAM,DDR SDRAM)。
DDR SDRAM中存储单元的地址由三维的地址空间组成:存储体(Bank)地址,行地址,列地址。DDR SDRAM由多个存储体组成,每个存储体之间的数据存取是独立的,每个存储体可以包括若干行的存储单元。
利用存储体地址确定需要进行数据存取的存储单元所在的存储体,对该存储单元进行访问时:首先根据行地址进行行激活(Active)操作,一旦一行被激活,一行中的存储信息都被读入行缓存中;然后,根据列地址对该行的相应列激活,确定出该存储单元,同时对该存储单元进行读写操作。
对上述的数据读写操作,DDR SDRAM可采用页保持打开(Open page)策略或者页保持关闭(Close page)策略。页保持打开策略是当进行完读写操作后不进行预充电(Precharge),使其保持激活状态。页保持关闭策略是当进行完读写操作后马上进行预充电,使其进入空闲状态。对行命中的情况,即当前待处理的命令是在当前存储体已激活的行中,页保持打开策略可以减少行激活的时间,减少访问延迟;但对于行缺失的情况,即当前待处理的命令不在当前存储体已激活的行中,页保持打开策略需要首先关闭当前存储体,再重新激活,与页保持关闭策略相比,增加了关闭当前存储体的延迟,降低了系统的性能。
且DDR SDRAM进行读写操作时,数据总线需要在读写命令之间进行切换,写命令到读命令之间至少在数据总线上增加写恢复时间和读延迟时间,读命令到写命令之间至少在数据总线上增加了一个时钟的延迟。
现有技术通常采用固定的页保持打开或者页保持关闭策略,或者利用已经执行的命令来预测下一个命令的状态,确定是使用页保持打开策略或者页保持关闭策略。在进行读写操作时,按照接收到的命令的顺序逐次执行。然而,现有技术存在的缺点是明显的:
例如,对页保持打开策略或者页保持关闭策略的选取,采用固定的方式时,不够灵活,无法适应不同命令的不同特点,造成了访问延时;采用预测的方式时,由于已执行的命令与待处理的命令之间关联不强,会产生预测错误而带来延迟,现有技术中的方法不能充分利用页保持打开策略和页保持关闭策略的优点,增加了访问的延迟。在数据读写时,读写命令之间的频繁切换,也极大地削减了数据总线的处理效率,占用了过多的数据带宽,降低了系统的性能。
然而,片上系统中的各个处理模块在运行时都需要与DDR SDRAM交换数据,系统要求具有高性能的DDR SDRAM,现有技术中控制DDR SDRAM的方法已成为制约片上系统开发的瓶颈,一个适合整个系统的存储控制器是目前HDTV SOC设计中的热点。
发明内容
为解决现有技术中存在的问题,本发明的实施例提供一种存储器的控制方法、存储器控制器和存储器控制系统,能够充分利用页保持打开策略和页保持关闭策略的优势,减少读写命令的反转,大大降低了存储器进行数据访问时的延迟,显著增加了数据总线的可利用带宽,提高了系统的性能。
为达到上述目的,本发明的实施例采用如下技术方案:
一种存储器的控制方法,所述方法包括:
获取存储体存储体的运行状态;
获取待执行的命令队列中所述存储体对应的下一个命令的地址信息;
根据所述运行状态和地址信息动态确定对所述存储体当前所采用的控制策略,所述策略包括页保持打开页保持打开策略和页保持关闭页保持关闭策略。
进一步的,所述运行状态为激活状态,所述激活状态为存储体当前被激活时所处的状态,所述地址信息包括行地址;
所述根据所述运行状态信息和地址信息动态确定对所述存储体当前所采用的控制策略为:
判断所述存储体中激活行的行地址与所述下一个命令的行地址是否一致,若是,采用页保持打开策略;若否,采用页保持关闭策略。
进一步的,所述方法还包括:按照预定的排序规则,对待执行命令队列中的命令进行排序;
所述排序规则包括禁止规则和重排规则,所述禁止规则优先于所述重排规则;
所述禁止规则包括:
当所述命令在命令队列中的驻留时间超出预定值时,禁止新入队的命令排在所述命令前;
当新入队的命令的地址与命令队列中命令的地址相同时,禁止新入队的命令排在所述命令前,所述地址包括存储体地址、行地址和列地址;
当所述的命令来自同一个端口且所述命令的命令类型相同时,禁止对所述命令进行排序;
所述重排规则包括:
当新入队的命令的存储体地址和行地址与命令队列中命令的存储体地址和行地址相同时,将新入队的命令排在所述命令的下一位置;
当新入队的命令与命令队列中的命令类型相同时,将新入队的命令排在所述命令的下一位置。
一种存储器控制器,包括:
存储体调度器,用于获取存储体的运行状态;
命令前向观测单元,用于获取待执行的命令队列中所述存储体对应的下一个命令的地址信息;
策略确定单元,用于根据所述存储体调度器获取的运行状态和所述命令前向观测单元获取的地址信息动态确定对所述存储体当前所采用的控制策略,所述策略包括页保持打开策略和页保持关闭策略。
进一步的,上述存储器控制器还包括:
命令排序单元,用于按照预定的排序规则,对待执行命令队列中的命令进行排序;所述命令前向观测单元,还用于获取经所述命令排序单元排序后的待执行命令队列中所述存储体对应的下一个命令的地址信息。
进一步的,还包括至少两个命令队列构建寄存器,
所述命令队列构建寄存器,用于保存命令的信息,向所述命令前向观测单元提供该命令相应的信息,并根据所述命令排序单元的排序结果更新所保存的命令的信息,其中,所述命令的信息包括命令的存储体地址、行地址和列地址,命令类型。
一种存储器控制系统,所述系统包括存储器控制器和DDR SDRAM,所述DDR SDRAM包括至少两个存储体,
所述存储器控制器包括,存储体调度器,用于获取存储体的运行状态;命令前向观测单元,用于获取待执行的命令队列中所述存储体对应的下一个命令的地址信息;策略确定单元,用于根据所述存储体调度器获取的运行状态和所述命令前向观测单元获取的地址信息动态确定对所述存储体当前所采用的控制策略,并将该策略对应的命令进行解释后发送至DDR SDRAM,所述策略包括页保持打开策略和页保持关闭策略;
所述DDR SDRAM,用于按照所述存储器控制器解释后的命令进行相应操作。
其中,所述存储器控制器还包括:命令排序单元,用于按照预定的排序规则,对待执行命令队列中的命令进行排序,并将排序后命令的信息发送到所述存储器控制器的命令前向观测单元;
所述命令前向观测单元,还用于获取经所述命令排序单元排序后的待执行命令队列中所述存储体对应的下一个命令的地址信息。
本发明实施例提供的技术方案,采用了命令前向预测的机制,即根据待执行命令的信息确定当前采用的控制策略,能够根据不同命令的不同特点动态确定当前采用的策略,从而能够充分利用页保持打开策略和页保持关闭策略的优点;同时,该技术方案可以对命令队列中的命令进行重排序,增加行命中的操作,减少读写命令的切换。本发明实施例提供的技术方案大大降低了存储器进行数据访问时的延迟,显著增加了数据总线的可利用带宽,提高了系统的性能。
附图说明
图1为本发明实施例提供的一种存储器的控制方法流程示意图;
图2为本发明实施例提供的构建的命令队列结构的简化示意图;
图3为本发明提供的存储器控制器结构的简化示意图;
图4为本发明实施例提供的存储器控制系统结构示意图;
图5为本发明实施例提供的存储器控制系统原理示意图。
具体实施方式
为了更清楚地说明本发明实施例的技术方案,下面将结合附图对本发明的实施例进行详细的介绍,下面的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些实施例获得本发明的其他的实施方式。
本发明实施例主要通过一种命令前向预测的机制,动态控制页保持打开策略与页保持关闭策略;同时,构建了命令队列结构,利用该命令队列结构对命令进行重排序,从而能够大大降低了存储器进行数据访问时的延迟,显著增加了数据总线的可利用带宽,提高了系统的性能。
在本发明实施例中,对存储器的控制主要以对DDR SDRAM的控制为例进行说明,但不局限于此,可适用于对任何类型存储器的控制。
本发明实施例提供了一种存储器的控制方法,如图1所示,所述方法包括:
步骤T1:获取存储体的运行状态;
存储体的运行状态可包括三种:空闲状态,激活状态和等待状态。
等待状态指当存储体接受了命令之后,按照命令协议时间的进行等待,在此等待状态下存储体不接收下一命令;当达到等待时间后,当前一个执行的命令为激活、读、写命令,跳入激活状态。
空闲状态表明存储体当前没有被激活(即存储体当前不存在被激活的行)。当需要对该存储体进行读写操作时,会先对该存储体发送一个行激活的命令,存储体先跳入等待状态,然后进入激活状态。
激活状态,表明当前的存储体处于激活状态,即存储体当前存在被激活的行。
在本发明实施例中,可通过为每个存储体设置存储体调度器,来指示存储体的运行状态,存储体调度器可按照DDR SDRAM的命令协议对相应的存储体进行监测,以提供该存储体的运行状态。
步骤T2:获取待执行的命令队列中所述存储体对应的下一个命令的地址信息;
上述的地址信息主要包括命令的行地址,也可以包括列地址。
在存储体执行当前的命令的同时,会对待执行的命令队列中的命令进行搜索,利用搜索结果来获取该存储体对应的待执行命令队列中的第一个命令(即下一个要执行的命令),搜索的方式可以为搜索命令队列中的每个命令的行地址和存储体地址,从而找出所述存储体对应的下一个命令的行地址。
步骤T3:根据所述运行状态和地址信息动态确定对所述存储体当前所采用的控制策略,所述策略包括页保持打开策略和页保持关闭策略。
根据存储体调度器获知存储体的运行状态,当存储体的运行状态为激活状态时,判断所述存储体中激活行的行地址与所述下一个命令的行地址是否一致,若是,即属于行命中的情况,这时,采用页保持打开策略;若否,即属于行缺失的情况,这时,采用页保持关闭策略。
进一步的,本发明实施例还可利用前向预测的结果,控制对处于空闲状态的存储体的激活操作,具体包括如下处理:
根据获取到的该存储体在待执行命令队列中的下一个命令的地址信息,如行地址,通过激活所述存储体中相同的行来激活该存储体,这样当执行下一个命令时,属于行命中的情况,则采用页保持打开策略,以减少访问延时。
为了提高总线效率,在本发明实施例中,还包括:按照预定的排序规则,对待执行命令队列中的命令进行排序;
这时上述步骤T2为:获取排序后的待执行的命令队列中所述存储体对应的下一个命令的地址信息。即在进行前向预测时,利用排序后的命令动态确定所采用的策略。
首先,构建命令队列结构以进入队列的命令进行重排序,这里,本发明实施例提供了一种利用寄存器组来实现的排序的处理方法,具体包括如下处理:
进入队列结构的命令根据排序规则,获知自己在队列的位置后,将该命令信息存至队列,并调整在命令队列中的其他命令的位置。当读取命令时每次只读取队列中的第一个命令,当第一个命令被取出时那么队列中的剩下的命令则前移,直到队列中无命令。
可选的,如图2所示,命令队列结构可由8个寄存器组成。每个寄存器保存命令的驻留时间、行地址、列地址、存储体地址、命令类型和数据长度的信息。
其中,队列结构的头,也就是0位置对应的寄存器,是单方向命令只能由1位置的寄存器进从0位置的寄存器直接出。执行命令读取时,总是从0位置的寄存器进行命令读取,然后进行命令解释。
其余位置的寄存器采用双向移动的方向,即可从前后的寄存器读取命令也可将命令送入前后的寄存器。寄存器的移动根据当前有无新的命令以及0位置的命令是否已取出决定。
如果当前不执行命令读取,有新命令进入时,命令队列中有三个命令分别位于0位置的寄存器,1位置的寄存器,2位置的寄存器,新命令的位置落在1位置的寄存器。则此时0位置的命令保持不变,1位置的命令被新的命令取代,而原来的1,2位置的命令则移动到2,3位置。
如果当前执行命令读取,且有新命令进入时,命令队列中有三个命令分别位于0位置的寄存器,1位置的寄存器,2位置的寄存器,新命令的位置落在1位置的寄存器。则此时新命令放在位置0,而1,2位置的命令保持不变。
当命令队列已满时,下一个新的命令不能够进入队列。可为队列结构中的命令设置计数器,以记录该命令的驻留时间,例如,根据命令在队列的时间,每个周期计数器加1,当超过系统预设值之后保持该计数器的值保持不变。
下面对上述命令队列的排序规则进行说明。
排序规则根据已在命令队列中的命令信息明确新命令摆放的位置,主要包括禁止规则和重排规则,所述禁止规则优先于所述重排规则;
禁止规则包括:命令驻留时间超出时禁止;读写地址重叠时禁止;命令源重合时读写命令禁止;重排规则包括:行命中优先;读写命令相同优先。
经过上述排序规则过滤之后,得到当前命令的存放位置。下面分别对各个规则进行说明。
1、命令驻留时间超出时禁止
为了防止命令等待的时间过长导致“饿死”的情况,如对命令2(cmd2),由于其的优先级较低,很多后来的命令先于cmd2执行,从而导致cmd2长时间得不到响应,影响系统的效率。
因此,设定计数器计算并记录命令的驻留时间,当获知cmd2在命令队列中的等待时间超出预定时间(如32个周期)后,禁止新入队的命令先于cmd2执行,从而保证了cmd2在一定的时间内得到响应。
2、读写地址重叠时禁止
系统中写命令是对已指定的地址中的数据进行更新;读命令是获取已指定的地址中的数据。地址重叠的意思是读写命令的存储体地址、行地址即列地址相同。
为防止当采用命令排序后,地址重叠可能引入的冲突。例如,假设原始数据为D0,进行一次写之后的数据为D1,进行第二次写之后的数据为D2,可能会带来如下冲突:
读后写冲突:此时期望的读数据为写命令更新后的D1。但当读和写顺序颠倒后读的数据为更新之前的数据D0。
写后写冲突:此时期望的写之后的最终数据为D2。但当写操作之间的顺序颠倒后得到的最终数据为D1。
写后读冲突:此时期望的读数据为D0,但当读和写颠倒顺序之后数据为D1。
为避免上述冲突的发生,当新入队的命令与待执行队列中的命令的地址重叠时,禁止新入队的命令排在所述命令前。
3.命令源重合时读写命令禁止
每一命令来自一个端口(源)。同一的端口的读写命令是按照一定顺序发送过来的。
对于读操作来说,该端口的期望读命令返回的数据是按照读命令发送的顺序传递。如果重排顺序,那么需要一个将顺序恢复的机制,而这种实现方式的代价比较大,所以不对同一端口的读操作进行重新排序。
对于写命令来说,如果重排顺序,那么写命令对应数据也要按照排序后的顺序来传输,这种实现方式的代价比较大,所以不对同一端口的写操作进行重新排序。
但对于来自同一端口的读操作和写操作,可以进行排序。
即当所述的命令来自同一个端口且所述命令的命令类型相同时,禁止对所述命令进行排序,该命令类型包括读命令和写命令。
4.行命中优先
行命中是新入队的命令与命令队列中某一命令的存储体地址和行地址相同时,将该新入队的命令放到所述命令的下一位,从而避免了属于行命中情况的两个的命令之间,存在行缺失情况时,增加行预充电延时和行激活延时。
5、读写命令相同优先
该规则将读命令或写命令收集在一起,即若新入队的命令与命令队列中命令的命令类相同,将新入队的命令放到与该命令类型相同的命令的下一位。从而减少读写命令的反转,减少DDR SDRAM的命令流水线与数据流水线的空闲状态。
其中,当出现同时满足行命中优先和读写命令相同优先的情况时,首先考虑读写命令相同优先的规则,在此基础上,再考虑行命中优先的规则。
通过将上面几项的排序原则结合起来,可以得到新入队命令最合适的位置,得到一个重排序的命令序列,利用排序后的命令序列对DDR SDRAM进行控制,可以大大提高总线效率。
为了清楚理解本发明实施例,下面结合具体的示例进行说明。
若系统当前的命令队列结构中有三个命令Cmd0、Cmd1和Cmd2,待入队的新命令为Cmd_in,设置系统预定的命令驻留时间为32个周期。即未排序前命令的顺序为:Cmd0,Cmd1,Cmd2,Cmd_in,
其中,各命令的具体命令信息如下:
(1)Cmd0的信息
命令类型:读,存储体地址=0,行地址:0,列地址:0,
长度:16,命令端口:0,驻留时间:10
(2)Cmd1的信息
命令类型:读,存储体地址=1,行地址:2,列地址:128,
长度:16,命令端口:1,驻留时间:8
(3)Cmd2的信息
命令类型:写,存储体地址=0,行地址:3,列地址:36,
长度:16,命令端口:2驻留时间:5
(4)Cmd_in的信息
命令类型:读,存储体地址=0,行地址:0,列地址:36,
长度:16,命令端口:3驻留时间:0
根据上述各个命令的信息,将待进入队列的新命令与队列中已有的命令进行比较可知存在如下结论:
A.所有命令的驻留时间都小于32。队列中不存在命令驻留时间超出禁止的情况。
B.没有地址重叠的命令,不存在读写地址重叠时禁止情况。
C.不存在命令源重合读写命令禁止情况。
D.Cmd_in与Cmd0的存储体地址,行地址相同,属于行命中的情况,满足行命中优先情况。
E:Cmd_in与Cmd0,Cmd1的读写命令相同,满足读写命令相同优先的情况。
综合上述结论得到,将新的命令的位置重排在Cmd0位置之后,则此时命令队列中的命令为:
Cmd0,Cmd_in,Cmd1,Cmd2
未排序前执行命令时,进行如下操作:
Cmd0,Cmd1正常执行。Cmd2与Cmd0的存储体地址相同而行地址不同,属于行缺失情况,则采用页保持打开策略执行Cmd2命令时,会首先关闭存储体0,进行行预充电,等待行预充电延时后激活存储体0,等待行激活延时后执行cmd2。然后Cmd_in也是与Cmd2存储体地址相同而行地址不同,执行同样的操作,首先关闭存储体0,等待行预充电延时后激活存储体0,等待行激活延时后执行Cmd_in。
进行排序后执行命令时,进行如下操作:
Cmd0正常执行。Cmd_in与Cmd0的存储体地址相同而行地址相同,采用页保持打开策略,可以直接执行Cmd_in,而且此时相比较排序前的顺序来说,Cmd0,Cmd_in都是存储体0命令,占用存储体0的时间相对充足,可以用于掩藏较长的Cmd1的激活时间或关闭时间。Cmd2与Cmd_in的存储体地址相同而行地址不同,那么Cmd2命令在执行的时候,会首先关闭存储体0,等待行预充电延时后激活存储体0,等待行激活延时后执行cmd2。因而重排序后所花的时间减少了:行预充电延时+行激活延时+掩藏Cmd1的命令时间。
进一步的,结合上述的前向预测机制,由于DDR SDRAM命令协议的特点,同一存储体的命令是有空隙的,采用在命令空隙的时候,对命令队列中的命令进行前向预测。
此时存储体0调度器的状态处于等待状态,若存储体1调度器处于空闲状态。
命令队列的命令为:
Cmd0,Cmd_in,Cmd1,Cmd2,
对当前的处理进行分析,可得到如下结论:
对Cmd0,Cmd0为存储体0的命令,命令队列中存储体0对应的下一个命令为Cmd_in,Cmd0和Cmd_in属于行命中的情况,等待状态结束进入激活状态,执行Cmd0时采用页保持打开策略;
对Cmd_in,Cmd_in为存储体0的命令,直接执行该命令;
对Cmd1,Cmd1为存储体1的命令,存储体1调度器处于空闲状态,需要执行激活命令,激活存储体1时,利用Cmd1命令的行地址对存储体1进行激活,即激活存储体1中Cmd1命令的行地址对应的行,以避免行缺失的情况;
对Cmd2,Cmd2为存储体0的命令,由于队列前端已有同存储体0的命令,即Cmd2不是存储体0对应的待执行命令的第一个命令,所以暂不不处理,当执行Cmd_in时,发现存储体0的下一个待执行命令,即Cmd2,属于行缺失的情况,则确定当前采用页保持关闭策略。
由上所述,确认下一个命令为存储体1的激活命令,该命令只要满足DDRSDRAM命令协议就可以执行。采用上述处理方式,能够使对存储体1的激活操作在执行Cmd_in的空隙中执行,可以有效的掩藏激活操作的等待时间,降低了数据访问的延时。
本发明还提供了一种存储器控制器,如图3所示,包括:
存储体调度器31,用于获取存储体的运行状态;
命令前向观测单元32,用于获取待执行的命令队列中所述存储体对应的下一个命令的地址信息;
策略确定单元33,用于根据所述存储体调度器31获取的运行状态和所述命令前向观测单元32获取的地址信息动态确定对所述存储体当前所采用的控制策略,所述策略包括页保持打开策略和页保持关闭策略。
进一步的,上述存储器控制器还包括:
命令排序单元,用于按照预定的排序规则,对待执行命令队列中的命令进行排序;
所述命令前向观测单元32,还用于获取经所述命令排序单元排序后的待执行命令队列中所述存储体对应的下一个命令的地址信息。
进一步的,为保障命令排序单元能够对队列进行排序,上述存储器控制器还包括至少两个命令队列构建寄存器,用以构建命令队列结构
所述命令队列构建寄存器,用于保存命令的信息,向所述命令前向观测单元提供该命令相应的信息,并根据所述命令排序单元的排序结果更新所保存的命令的信息,其中,所述命令的信息包括命令的存储体地址、行地址和列地址,命令类型。
应当注意到,上述存储器控制器负责整个系统的调度、存储体之间DDRSDRAM命令协议控制和对DDR SDRAM命令的解释。当命令队列中有命令,存储器控制器从命令队列中的第一位取命令,定义为当前命令。
该存储器控制器采用了全流水线的操作,在每一周期根据各个存储体反馈的信息、DDR SDRAM的命令流水线与数据流水线的信息确定下一个时钟周期将要执行的DDR SDRAM命令。当前命令执行完后则从命令队列取下一个命令,直到命令队列空。
进一步的该存储器控制器还要处理自动刷新、低功耗、模式寄存器配置等功能。
由于每个时钟周期的每个存储体可选取出一个命令,但DDR SDRAM的命令总线每个时钟周期只能执行一个命令,需要对命令进行选择。本发明实施例根据时间优先的原则进行选择。
存储器控制器当前处理的存储体优先级最高,有行缺失命令那么在采用自动刷新读写命令,这样可以提前使该存储体进入页保持关闭状态,而且因为自动刷新命令不占用DDR SDRAM命令总线带宽,减少了命令执行的延迟。对于其他的存储体来说,存储器控制器根据命令所在的命令队列位置的次序,确定选用哪个存储体执行下一步的命令。
本发明实施例提供的存储器控制器中各功能模块的具体工作方式参见本发明的方法实施例。
本发明实施例提供的技术方案,采用了命令前向预测的机制,即根据待执行命令的信息确定当前采用的控制策略,能够根据不同命令的不同特点动态确定当前采用的策略,从而能够充分利用页保持打开策略和页保持关闭策略的优点;同时,该技术方案可以对命令队列中的命令进行重排序,增加行命中的操作,减少读写命令的切换。本发明实施例提供的技术方案大大降低了存储器进行数据访问时的延迟,显著增加了数据总线的可利用带宽,提高了系统的性能。
本发明实施例一种存储器控制系统,如图4所示,所述系统包括存储器控制器41和双倍数据传输速度同步动态随机存取存储器DDR SDRAM42,所述DDR SDRAM42包括至少两个存储体,
所述存储器控制器41包括,存储体调度器,用于获取存储体的运行状态;命令前向观测单元,用于获取待执行的命令队列中所述存储体对应的下一个命令的地址信息;策略确定单元,用于根据所述存储体调度器获取的运行状态和所述命令前向观测单元获取的地址信息动态确定对所述存储体当前所采用的控制策略,并将该策略对应的命令进行解释后发送至DDR SDRAM42,所述策略包括页保持打开策略和页保持关闭策略;
所述DDR SDRAM42,用于按照所述存储器控制器41解释后的命令进行相应操作。
进一步的,所述存储器控制器41还包括:
命令排序单元,用于按照预定的排序规则,对待执行命令队列中的命令进行排序,并将排序后命令的信息发送到所述存储器控制器的命令前向观测单元;
所述存储器控制器的命令前向观测单元,还用于获取经所述命令排序单元排序后的待执行命令队列中所述存储体对应的下一个命令的地址信息。
如图5所示,为本发明实施例提供的存储器控制系统的原理图,由寄存器组(如由8个寄存器构成的寄存器组)构建命令队列结构,新命令到来时,根据排序规则进行命令重排序,同时,利用命令前向预测机制对寄存器组中的命令进行前向观测,确定采用的控制策略,存储器控制器对整个系统的操作进行控制,将最终解释输出的命令发送给DDR SDRAM。
本发明实施例提供的技术方案,采用了命令前向预测的机制,即根据待执行命令的信息确定当前采用的控制策略,能够根据不同命令的不同特点动态确定当前采用的策略,从而能够充分利用页保持打开策略和页保持关闭策略的优点;同时,该技术方案可以对命令队列中的命令进行重排序,增加行命中的操作,减少读写命令的切换。本发明实施例提供的技术方案大大降低了存储器进行数据访问时的延迟,显著增加了数据总线的可利用带宽,提高了系统的性能。
本领域普通技术人员可以理解实现上述实施例中的全部或部分步骤,可以通过程序指令相关硬件完成。所述实施例对应的软件可以存储在一个计算机可存储读取的介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1、一种存储器的控制方法,其特征在于,所述方法包括:
获取存储体的运行状态;
获取待执行的命令队列中所述存储体对应的下一个命令的地址信息;
根据所述运行状态和地址信息动态确定对所述存储体当前所采用的控制策略,所述策略包括页保持打开策略和页保持关闭策略。
2、根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述运行状态为激活状态,所述激活状态为存储体当前被激活时所处的状态,所述地址信息包括行地址;
所述根据所述运行状态信息和地址信息动态确定对所述存储体当前所采用的控制策略为:
判断所述存储体中激活行的行地址与所述下一个命令的行地址是否一致,若是,采用页保持打开策略;若否,采用页保持关闭策略。
3、根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述运行状态包括空闲状态和等待状态,所述空闲状态为存储体当前未被激活时所处的状态;所述等待状态为存储体接收命令后按照命令协议等待时所处的状态;
当所述存储体处于空闲状态时,利用所述下一个命令的地址信息对所述存储体进行激活,以使所述存储体进入激活状态;当所述存储体处于等待状态时,不执行下一个命令。
4、根据权利要求1所述的方法,其特征在于,所述方法还包括:
按照预定的排序规则,对待执行命令队列中的命令进行排序;
所述获取待执行的命令队列中所述存储体对应的下一个命令的地址信息为:
获取排序后的待执行的命令队列中所述存储体对应的下一个命令的地址信息。
5、根据权利要求4所述的方法,其特征在于,所述排序规则包括禁止规则和重排规则,所述禁止规则优先于所述重排规则;
所述禁止规则包括:
当所述命令在命令队列中的驻留时间超出预定值时,禁止新入队的命令排在所述命令前;
当新入队的命令的地址与命令队列中命令的地址相同时,禁止新入队的命令排在所述命令前,所述地址包括存储体地址、行地址和列地址;
当所述的命令来自同一个端口且所述命令的命令类型相同时,禁止对所述命令进行排序;
所述重排规则包括:
当新入队的命令的存储体地址和行地址与命令队列中命令的存储体地址和行地址相同时,将新入队的命令排在所述命令的下一位置;
当新入队的命令与命令队列中的命令类型相同时,将新入队的命令排在所述命令的下一位置。
6、一种存储器控制器,其特征在于,包括:
存储体调度器,用于获取存储体的运行状态;
命令前向观测单元,用于获取待执行的命令队列中所述存储体对应的下一个命令的地址信息;
策略确定单元,用于根据所述存储体调度器获取的运行状态和所述命令前向观测单元获取的地址信息动态确定对所述存储体当前所采用的控制策略,所述策略包括页保持打开策略和页保持关闭策略。
7、根据权利要求6所述的存储器控制器,其特征在于,所述控制器还包括:
命令排序单元,用于按照预定的排序规则,对待执行命令队列中的命令进行排序;
所述命令前向观测单元,还用于获取经所述命令排序单元排序后的待执行命令队列中所述存储体对应的下一个命令的地址信息。
8、根据权利要求6所述的存储器控制器,其特征在于,所述控制器还包括至少两个命令队列构建寄存器,
所述命令队列构建寄存器,用于保存命令的信息,向所述命令前向观测单元提供该命令相应的信息,并根据所述命令排序单元的排序结果更新所保存的命令的信息,
其中,所述命令的信息包括命令的存储体地址、行地址和列地址,命令类型。
9、一种存储器控制系统,其特征在于,所述系统包括存储器控制器和双倍数据传输速度同步动态随机存取存储器DDR SDRAM,所述DDR SDRAM包括至少两个存储体,
所述存储器控制器包括,存储体调度器,用于获取存储体的运行状态;命令前向观测单元,用于获取待执行的命令队列中所述存储体对应的下一个命令的地址信息;策略确定单元,用于根据所述存储体调度器获取的运行状态和所述命令前向观测单元获取的地址信息动态确定对所述存储体当前所采用的控制策略,并将该策略对应的命令进行解释后发送至DDR SDRAM,所述策略包括页保持打开策略和页保持关闭策略;
所述DDR SDRAM,用于按照所述存储器控制器解释后的命令进行相应操作。
10、根据权利要求9所述的系统,其特征在于,所述存储器控制器还包括:
命令排序单元,用于按照预定的排序规则,对待执行命令队列中的命令进行排序,并将排序后命令的信息发送到所述存储器控制器的命令前向观测单元;
所述命令前向观测单元,还用于获取经所述命令排序单元排序后的待执行命令队列中所述存储体对应的下一个命令的地址信息。
CN2009101292078A 2009-03-13 2009-03-13 一种存储器的控制方法、存储器控制器和存储器控制系统 Active CN101639817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101292078A CN101639817B (zh) 2009-03-13 2009-03-13 一种存储器的控制方法、存储器控制器和存储器控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101292078A CN101639817B (zh) 2009-03-13 2009-03-13 一种存储器的控制方法、存储器控制器和存储器控制系统

Publications (2)

Publication Number Publication Date
CN101639817A true CN101639817A (zh) 2010-02-03
CN101639817B CN101639817B (zh) 2012-01-25

Family

ID=41614802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101292078A Active CN101639817B (zh) 2009-03-13 2009-03-13 一种存储器的控制方法、存储器控制器和存储器控制系统

Country Status (1)

Country Link
CN (1) CN101639817B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102456391A (zh) * 2010-10-26 2012-05-16 中兴通讯股份有限公司 提高ddr控制器效率的方法和装置
CN102834816A (zh) * 2010-04-14 2012-12-19 高通股份有限公司 用以减少存取等待时间的总线仲裁技术
CN102855195A (zh) * 2011-06-30 2013-01-02 重庆重邮信科通信技术有限公司 第二代低功耗双倍速率存储控制器及访问命令处理方法
CN103092785A (zh) * 2013-02-08 2013-05-08 豪威科技(上海)有限公司 Ddr2 sdram控制器
CN103136120A (zh) * 2012-12-31 2013-06-05 北京北大众志微系统科技有限责任公司 行缓冲管理策略确定方法和装置、bank划分方法和装置
CN103150216A (zh) * 2013-02-27 2013-06-12 东南大学 一种SoC集成的多端口DDR2/3调度器及调度方法
WO2016201793A1 (zh) * 2015-06-17 2016-12-22 青岛海信信芯科技有限公司 一种数据处理方法及装置
CN106681804A (zh) * 2015-11-10 2017-05-17 慧荣科技股份有限公司 储存装置及其任务执行方法以及对应于储存装置的主机及其任务执行方法
CN103731313B (zh) * 2012-10-10 2017-07-14 华为技术有限公司 基于ddr sdram的计数器及其实现方法
US9842068B2 (en) 2010-04-14 2017-12-12 Qualcomm Incorporated Methods of bus arbitration for low power memory access
CN109299024A (zh) * 2017-07-25 2019-02-01 三星电子株式会社 协调存储器命令的方法和高带宽存储器系统
CN109783027A (zh) * 2019-01-15 2019-05-21 深圳忆联信息系统有限公司 命令存储管理方法、装置、计算机设备及存储介质
CN111198715A (zh) * 2019-12-26 2020-05-26 核芯互联科技(青岛)有限公司 一种面向乱序高性能核的内存控制器命令调度方法及装置
CN111462793A (zh) * 2019-01-18 2020-07-28 爱思开海力士有限公司 数据存储系统及其预充电策略设置方法
CN112088368A (zh) * 2017-12-21 2020-12-15 超威半导体公司 动态的每存储体和全存储体刷新
CN112835523A (zh) * 2021-02-02 2021-05-25 致真存储(北京)科技有限公司 一种存储系统及其数据存取的方法
CN118245397A (zh) * 2024-03-29 2024-06-25 海光信息技术股份有限公司 一种内存页面访问方法及相关设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374323B1 (en) * 1998-11-16 2002-04-16 Infineon Technologies Ag Computer memory conflict avoidance using page registers
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102834816A (zh) * 2010-04-14 2012-12-19 高通股份有限公司 用以减少存取等待时间的总线仲裁技术
US9842068B2 (en) 2010-04-14 2017-12-12 Qualcomm Incorporated Methods of bus arbitration for low power memory access
CN102834816B (zh) * 2010-04-14 2016-01-20 高通股份有限公司 用以减少存取等待时间的总线仲裁方法及处理系统
CN102456391A (zh) * 2010-10-26 2012-05-16 中兴通讯股份有限公司 提高ddr控制器效率的方法和装置
CN102456391B (zh) * 2010-10-26 2015-01-28 中兴通讯股份有限公司 提高ddr控制器效率的方法和装置
CN102855195B (zh) * 2011-06-30 2015-05-27 重庆重邮信科通信技术有限公司 第二代低功耗双倍速率存储控制器及访问命令处理方法
CN102855195A (zh) * 2011-06-30 2013-01-02 重庆重邮信科通信技术有限公司 第二代低功耗双倍速率存储控制器及访问命令处理方法
CN103731313B (zh) * 2012-10-10 2017-07-14 华为技术有限公司 基于ddr sdram的计数器及其实现方法
CN103136120B (zh) * 2012-12-31 2016-01-27 北京北大众志微系统科技有限责任公司 行缓冲管理策略确定方法和装置、bank划分方法和装置
CN103136120A (zh) * 2012-12-31 2013-06-05 北京北大众志微系统科技有限责任公司 行缓冲管理策略确定方法和装置、bank划分方法和装置
CN103092785A (zh) * 2013-02-08 2013-05-08 豪威科技(上海)有限公司 Ddr2 sdram控制器
CN103092785B (zh) * 2013-02-08 2016-03-02 豪威科技(上海)有限公司 Ddr2 sdram控制器
CN103150216A (zh) * 2013-02-27 2013-06-12 东南大学 一种SoC集成的多端口DDR2/3调度器及调度方法
CN103150216B (zh) * 2013-02-27 2015-12-02 东南大学 一种SoC集成的多端口DDR2/3调度器及调度方法
WO2016201793A1 (zh) * 2015-06-17 2016-12-22 青岛海信信芯科技有限公司 一种数据处理方法及装置
CN106681804B (zh) * 2015-11-10 2020-05-19 慧荣科技股份有限公司 储存装置、对应于储存装置的主机以及其任务执行方法
CN106681804A (zh) * 2015-11-10 2017-05-17 慧荣科技股份有限公司 储存装置及其任务执行方法以及对应于储存装置的主机及其任务执行方法
CN109299024A (zh) * 2017-07-25 2019-02-01 三星电子株式会社 协调存储器命令的方法和高带宽存储器系统
CN109299024B (zh) * 2017-07-25 2024-01-05 三星电子株式会社 协调存储器命令的方法和高带宽存储器系统
CN112088368A (zh) * 2017-12-21 2020-12-15 超威半导体公司 动态的每存储体和全存储体刷新
CN112088368B (zh) * 2017-12-21 2024-05-14 超威半导体公司 动态的每存储体和全存储体刷新
CN109783027A (zh) * 2019-01-15 2019-05-21 深圳忆联信息系统有限公司 命令存储管理方法、装置、计算机设备及存储介质
CN109783027B (zh) * 2019-01-15 2022-03-29 深圳忆联信息系统有限公司 命令存储管理方法、装置、计算机设备及存储介质
CN111462793A (zh) * 2019-01-18 2020-07-28 爱思开海力士有限公司 数据存储系统及其预充电策略设置方法
CN111462793B (zh) * 2019-01-18 2023-09-26 爱思开海力士有限公司 数据存储系统及其预充电策略设置方法
CN111198715A (zh) * 2019-12-26 2020-05-26 核芯互联科技(青岛)有限公司 一种面向乱序高性能核的内存控制器命令调度方法及装置
CN112835523A (zh) * 2021-02-02 2021-05-25 致真存储(北京)科技有限公司 一种存储系统及其数据存取的方法
CN118245397A (zh) * 2024-03-29 2024-06-25 海光信息技术股份有限公司 一种内存页面访问方法及相关设备

Also Published As

Publication number Publication date
CN101639817B (zh) 2012-01-25

Similar Documents

Publication Publication Date Title
CN101639817B (zh) 一种存储器的控制方法、存储器控制器和存储器控制系统
CN102207916B (zh) 一种基于指令预取的多核共享存储器控制设备
KR100610730B1 (ko) 메모리 액세스 대기시간을 감소시키기 위한 메모리 액세스스케쥴링 방법 및 장치
CN104903962B (zh) 具有自适应数量的打开行的存储器设备
US6799257B2 (en) Method and apparatus to control memory accesses
CN1866230B (zh) 一种存储器仲裁器、处理器系统及存储器仲裁方法
US9336164B2 (en) Scheduling memory banks based on memory access patterns
CN102866957B (zh) 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置
US9489321B2 (en) Scheduling memory accesses using an efficient row burst value
US20110238934A1 (en) Asynchronously scheduling memory access requests
CN101526896B (zh) 嵌入式处理器的加载/存储单元
CN101187908A (zh) 单芯片多处理器共享数据存储空间的访问方法
US8341344B2 (en) Techniques for accessing a resource in a processor system
WO2017105741A1 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
CN102521049B (zh) 多核间内存调度方法
EP2686774A1 (en) Memory interface
US20010034817A1 (en) Read/write alignment scheme for port red uction of multi-port SRAM cells
CN101107599B (zh) 高速缓冲存储器控制方法和高速缓冲存储器控制装置
CN103324269A (zh) 一种降低多线程程序功耗的方法及系统
US20160077577A1 (en) Memory and processor hierarchy to improve power efficiency
CN103810123B (zh) 内存控制装置及方法
US8601205B1 (en) Dynamic random access memory controller
KR20240121873A (ko) 메모리 제어기에서 근접 메모리 프로세싱 커맨드들과 비-근접 메모리 프로세싱 커맨드들을 관리하기 위한 접근법
CN106126472A (zh) 一种实现静态与动态存储控制器访问无缝切换的控制结构
CN102063271A (zh) 一种磁盘外置Cache基于状态机的写回方法

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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160725

Address after: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No.

Patentee after: QINGDAO HISENSE ELECTRONICS Co.,Ltd.

Address before: 266100 No. 151, Zhuzhou Road, Laoshan Mountain District, Shandong

Patentee before: HISENSE HIVIEW TECH Co.,Ltd.

CP01 Change in the name or title of a patent holder

Address after: 266100 No. 151, Zhuzhou Road, Laoshan District, Shandong, Qingdao

Patentee after: Hisense Visual Technology Co., Ltd.

Address before: 266100 No. 151, Zhuzhou Road, Laoshan District, Shandong, Qingdao

Patentee before: QINGDAO HISENSE ELECTRONICS Co.,Ltd.

CP01 Change in the name or title of a patent holder