发明内容
本发明所要解决的技术问题是提供一种能够DRAM运行频率的解决方案以及应用该解决方案的DRAM运行频率调整系统,以调整DRAM的性能功耗平衡点,从而提高芯片系统的运行速度,有效节省功耗。
为了解决上述技术问题,本发明实施例公开了一种DRAM运行频率调整系统,包括:
带宽利用率统计模块,用于统计预设时间间隔内DRAM的有效工作状态分布,获得当前DRAM运行频率的带宽利用率;
参数配置模块,包括目标运行频率配置子模块,用于生成目标DRAM运行频率;所述参数配置模块还包括:频率切换请求信号配置子模块,用于配置默认值为无效的频率切换请求信号;握手信号配置子模块,用于配置默认值为无效的握手信号;时序检查参数配置子模块,用于针对DRAM运行频率分别配置对应的时序检查参数;
频率切换控制器,用于将所述当前DRAM运行频率调整至所述目标DRAM运行频率;所述频率切换控制器包括:频率切换请求生成模块,用于生成频率切换请求,并将所述频率切换请求信号置为有效;频率切换模块,用于依据有效的握手信号,将当前DRAM运行频率切换为目标运行频率;无效请求信号设置模块,用于在所述频率切换模块完成频率切换后,将所述频率切换请求信号恢复为无效;
还包括,与所述频率切换控制器连接的DRAM控制器,
所述DRAM控制器包括:
自刷新控制模块,用于依据频率切换请求的有效信号,发出DRAM按照内部时钟进行刷新的第一控制命令;
握手信号触发模块,用于在发出所述第一控制命令后,将所述握手信号置为有效;
时序检查参数确定模块,用于在所述频率切换请求信号被恢复为无效时,提取所述目标运行频率对应的时序检查参数;
自刷新退出模块,用于依据所述时序检查参数确定系统时钟,并发出DRAM按照所述系统时钟进行刷新的第二控制命令;
握手信号关闭模块,用于在发出第二控制命令后,将所述握手信号恢复为无效;所述DRAM控制器还包括:
数据请求中止模块,用于在接收到频率切换请求的有效信号后,发出第一控制命令前,执行已接收的数据请求,并停止响应新的数据请求;
数据请求执行模块,用于在所述握手信号恢复为无效时,接收新的数据请求。
优选的,所述系统还包括:
时钟控制模块,用于在所述频率切换控制器工作时,控制DRAM按照内部时钟进行刷新操作,以及,在所述频率切换控制器完成工作时,控制DRAM按照系统时钟进行刷新操作。
优选的,所述系统时钟由时序检查参数确定,所述系统还包括:
时序检查参数生效模块,用于依据所述目标运行频率获得对应的时序检查参数。
优选的,所述时钟控制模块和时序检查参数生效模块位于DRAM控制器中。
优选的,所述带宽利用率统计模块包括:
有效工作状态统计子模块,用于累加预设时间间隔内DRAM控制器中有限状态机的非等待时间,获得DRAM的有效工作状态分布;
第一中断产生子模块,用于在所述预设时间间隔到达时,产生需要降低带宽利用率时的第一中断信号;
第二中断产生子模块,用于在所述预设时间间隔内,所述有限状态机非等待时间的累加值满足预置中断条件阈值时,产生提高带宽利用率的第二中断信号;
所述目标运行频率配置子模块包括:
第一配置单元,用于依据所述第一中断信号生成低于当前DRAM运行频率的目标运行频率;
第二配置单元,用于依据所述第二中断信号生成高于当前DRAM运行频率的目标运行频率。
本发明实施例还公开了一种DRAM运行频率调整方法,包括:
统计预设时间间隔内DRAM的有效工作状态分布,获得当前DRAM运行频率的带宽利用率;
在所述带宽利用率不适于当前应用场景的运行状况时,生成目标DRAM运行频率;
将所述当前DRAM运行频率调整至所述目标DRAM运行频率;
还包括:预先配置默认值为无效的频率切换请求信号,默认值为无效的握手信号,以及,对应各种DRAM运行频率的时序检查参数;
所述运行频率调整步骤包括:
生成频率切换请求,并将所述频率切换请求信号置为有效;
依据所述频率切换请求的有效信号,发出DRAM按照内部时钟进行刷新操作的第一控制命令;
在发出所述第一控制命令后,将所述握手信号置为有效;
依据有效的握手信号,将当前DRAM运行频率切换为目标运行频率;
在完成频率切换后,将所述频率切换请求信号恢复为无效;
在所述频率切换请求信号被恢复为无效时,提取所述目标运行频率对应的时序检查参数;
依据所述时序检查参数确定系统时钟,并发出DRAM按照所述系统时钟进行刷新操作的第二控制命令;
在发出所述第二控制命令后,将所述握手信号恢复为无效;
在接收到频率切换请求的有效信号后,发出所述第一控制命令前,执行已接收的数据请求,并停止响应新的数据请求;
在所述握手信号恢复为无效时,接收新的数据请求。
优选的,所述方法还包括:
在频率调整时,控制DRAM按照内部时钟进行刷新操作,以及,在频率调整完成时,控制DRAM按照系统时钟进行刷新操作。
优选的,所述系统时钟由时序检查参数确定,所述方法还包括:
依据所述目标DRAM运行频率获得对应的时序检查参数。
优选的,所述DRAM的有效工作状态分布的统计步骤包括:
累加预设时间间隔内DRAM控制器中有限状态机的非等待时间,获得DRAM的有效工作状态分布;
在所述预设时间间隔到达时,产生需要降低带宽利用率时的第一中断信号;
或者,在所述预设时间间隔内,所述有限状态机非等待时间的累加值满足预置中断条件阈值时,产生提高带宽利用率的第二中断信号;
所述目标DRAM运行频率的生成步骤包括:
在第一中断信号产生时,依据所述第一中断信号生成低于当前DRAM运行频率的目标运行频率;
或者,在第二中断信号产生时,依据所述第二中断信号生成高于当前DRAM运行频率的目标运行频率。
与现有技术相比,本发明具有以下优点:
本发明通过统计预设时间间隔内DRAM的有效工作状态分布来获得当前DRAM运行频率的带宽利用率,并在所述带宽利用率不适于当前应用场景的运行状况时,将当前DRAM运行频率调整至适于当前应用场景的运行频率。具体而言,在DRAM运行频率低、带宽利用率高的情形下,可以根据当前应用场景提高当前DRAM的运行频率;在DRAM运行频率高、带宽利用率低的情形下,可以根据当前应用场景降低当前DRAM的运行频率,通过这种依据带宽利用率动态调整运行频率的方式,使得芯片系统的运行效率有所提高,并能有效节省功耗;
再者,本发明在频率调整前,可以先完成当前所有已经进入DRAM控制器的数据访问请求,同时阻止新的数据访问请求,并发出命令使DRAM进入自刷新模式,从而避免出现在频率调整过程中数据丢失的情形;
此外,DRAM在自刷新模式下,除了时钟使能信号(Clock Enable:CKE)之外的所有外部信号都是无效的,无需外部提供刷新指令,有助于进一步节省功耗。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参考图1,示出了本发明一种DRAM运行频率调整系统实施例的结构框图,具体可以包括:
带宽利用率统计模块101,用于统计预设时间间隔内DRAM的有效工作状态分布,获得当前DRAM运行频率的带宽利用率;
参数配置模块102,包括目标运行频率配置子模块121,用于生成目标DRAM运行频率;
频率切换控制器103,用于将所述当前DRAM运行频率调整至所述目标DRAM运行频率。
在实际应用中,所述预设时间间隔可根据当前应用场景配置。在检测到当前DRAM运行频率的带宽利用率不适于当前应用场景的运行状况时,所述带宽利用率统计模块101会以某种方式(如中断的方式)通知所述参数配置模块102,由所述参数配置模块102中的目标运行频率配置子模块生成目标运行频率。
在本发明的一种优选实施例中,所述带宽利用率统计模块101可以包括以下子模块:
有效工作状态统计子模块,用于累加预设时间间隔内DRAM控制器104中有限状态机141的非等待时间,获得DRAM的有效工作状态分布;
第一中断产生子模块,用于在所述预设时间间隔到达时,产生需要降低带宽利用率时的第一中断信号;
第二中断产生子模块,用于在所述预设时间间隔内,所述有限状态机非等待时间的累加值满足预置中断条件阈值时,产生提高带宽利用率的第二中断信号;
在这种情况下,所述目标运行频率配置子模块121可以包括:
第一配置单元,用于依据所述第一中断信号生成低于当前DRAM运行频率的目标运行频率;
第二配置单元,用于依据所述第二中断信号生成高于当前DRAM运行频率的目标运行频率。
在具体实现中,所述模块101可通过以下硬件实现:
统计时间间隔寄存器,用于配置所述预设时间间隔;
时间计数器,用于在所述预设时间间隔内累加时间,并在所述预设时间间隔到达时自动清零,继续计数;
累计状态寄存器,用于在所述时间计数器值等于所述统计时间间隔寄存器值时,累加所述状态计数器值;
状态计数器,用于累加所述预设时间间隔内DRAM控制器中有限状态机的非等待时间,以及,在所述时间计数器值等于所述统计时间间隔寄存器值时,自动清零,继续计数;
中断条件阈值寄存器,用于配置带宽利用率阈值;
以及,中断控制逻辑,用于发出中断信号。
在本发明的一种应用示例中,中断产生可以有两种情形:一种是在预设时间间隔内,状态计数器值超过了中断条件阈值,那么中断控制逻辑将向系统发出中断,表示当前DRAM的带宽利用率超出了带宽利用率阈值;另一种是统计间隔时间到达,如果读取累计状态寄存器值得知带宽利用率很低,也可以向系统发出中断。
以下参照图2所示的有限状态机(Finite State Machine:FSM)的工作状态分布进一步说明获得带宽利用率的方法。从图2中可以看出,除了IDLE(空闲)状态,其它都是DRAM的有效工作状态分布。假设当前DRAM运行频率是160MHz,即每秒钟时间计数器累计160M。如果统计FSM的有效工作状态的状态计数器在一秒内累计80M,那么当前DRAM运行频率的带宽利用率就是(80/160)×100%=50%。
例如,当前DRAM运行频率为120MHz,采用SDRAM16bit,模块101获得的带宽利用率是20%,即有效带宽是120×16×20%=384Mbps,在当前应用场景不改变的前提下,可以认为该带宽利用率稳定。如果认为带宽利用率是60%是更合适的,中断控制逻辑可向系统发出中断,由模块121配置目标DRAM运行频率为384/16/60%=40MHz,那么有效带宽也是40×16×60%=384Mbps。
或如,当前DRAM运行频率为40MHz,采用SDRAM16bit,针对当前应用场景设置的带宽阈值是60%,如果模块101获得的带宽利用率是80%,超出了带宽阈值(60%),中断控制逻辑将向系统发出中断。如果认为在当前应用场景下带宽利用率是40%是更合适的,可由模块121配置得到目标DRAM运行频率为(40×16×80%)/16/40%=80MHz。
为了避免在频率调整时DRAM丢失数据,在本发明实施例中,所述系统还可以包括时钟控制模块,用于在所述频率切换控制器工作时,控制DRAM按照内部时钟进行刷新操作,以及,在所述频率切换控制器完成工作时,控制DRAM按照系统时钟进行刷新操作。
在实际应用中,DRAM刷新操作分为两种:自动刷新(Auto Refresh:AR)与自刷新(Self Refresh:SR)。相应地,DRAM有AR模式和SR模式两种工作模式。在AR模式下,DRAM按照系统时钟进行刷新操作;在SR模式下,DRAM不再依靠系统时钟工作,而是根据内部的时钟进行刷新操作。在DRAM进入SR模式后,不需要为DRAM提供系统时钟,所以此时可以进行系统时钟频率的切换,也即将所述当前DRAM运行频率调整至所述目标运行频率。而在退出SR模式后,DRAM会在所述目标运行频率下工作。
参照图3所示的DRAM工作时序图。图中CLK为提供给DRAM的系统时钟,其在T2前的频率和Tn+1后的频率可以不同。在本发明实施例中,T2前的系统时钟频率为当前DRAM运行频率,在T2~Tn+1时序内进行频率切换操作,使得Tn+1后的系统时钟频率为目标DRAM运行频率。
本实施例在DRAM的SR模式下进行频率切换操作,由于在SR模式下除了时钟使能信号(Clock Enable:CKE)之外的所有外部信号都是无效的,无需外部提供刷新指令,能够在保证数据不丢失的情况下,降低功耗。
为保证系统时钟在频率切换完成时生效,所述系统时钟可由时序检查参数确定,所述系统可以进一步包括:
时序检查参数生效模块,用于依据所述目标运行频率获得对应的时序检查参数。
一般来说,时序检查参数是和系统时钟频率成线性关系的。例如,假设DRAM的刷新间隔是10us,那么在100MHz下,需要将时序检查参数配置成1000;在10MHz下,需要将时序检查参数配置成100。
在实际中,所述时钟控制模块和时序检查参数生效模块可以位于DRAM控制器中,也可以位于DRAM控制器外部工作,以配合DRAM控制器完成对DRAM的控制工作,本发明对此无需加以限制。
在本发明的一种优选实施例中,所述系统可以进一步包括:与所述频率切换控制器连接的DRAM控制器;
所述参数配置模块102还可以包括:
频率切换请求信号配置子模块,用于配置默认值为无效的频率切换请求信号;
握手信号配置子模块,用于配置默认值为无效的握手信号;
时序检查参数配置子模块,用于针对DRAM运行频率分别配置对应的时序检查参数;
所述频率切换控制器可以包括:
频率切换请求生成模块,用于生成频率切换请求,并将所述频率切换请求信号置为有效;
频率切换模块,用于依据有效的握手信号,将当前DRAM运行频率切换为目标运行频率;
无效请求信号设置模块,用于在所述频率切换模块完成频率切换后,将所述频率切换请求信号恢复为无效;
所述DRAM控制器具体可以包括:
自刷新控制模块,用于依据频率切换请求的有效信号,发出DRAM按照内部时钟进行刷新的第一控制命令;
握手信号触发模块,用于在发出所述第一控制命令后,将所述握手信号置为有效;
时序检查参数确定模块,用于在所述频率切换请求信号被恢复为无效时,提取所述目标运行频率对应的时序检查参数;
自刷新退出模块,用于依据所述时序检查参数确定系统时钟,并发出DRAM按照所述系统时钟进行刷新的第二控制命令;
握手信号关闭模块,用于在发出第二控制命令后,将所述握手信号恢复为无效。
更为优选的,为避免在频率调整时DRAM丢失数据,所述DRAM控制器可以进一步包括:
数据请求中止模块,用于在接收到频率切换请求的有效信号后,发出第一控制命令前,执行已接收的数据请求,并停止响应新的数据请求;
数据请求执行模块,用于在所述握手信号恢复为无效时,接收新的数据请求。
在实际中,DRAM控制器接受外部对DRAM的数据访问请求。可在频率切换前,首先完成当前所有已经进入DRAM控制器的数据访问请求,同时不响应新的数据访问请求,也即阻止功能模块访问DRAM。
为使本领域技术人员更好地理解本发明,以下基于上述优选实施例对DRAM运行频率调整系统的工作过程进行说明。
假设在参数配置模块中,已由目标运行频率配置子模块生成了目标DRAM运行频率;由频率切换请求信号配置子模块配置了默认值为0的频率切换请求信号clock_switch_request,由握手信号配置子模块配置了默认值为0的握手信号sdrc_lock,由时序检查参数配置子模块针对DRAM运行频率分别配置了对应的时序检查参数;
在这种情况下,将当前DRAM的运行频率切换至目标运行频率的过程可以包括以下步骤:
步骤S1、频率切换请求生成模块生成频率切换请求,并将clock_switch_request置为1;
步骤S2、在检测到clock_switch_request为1后,自刷新控制模块发出DRAM按照内部时钟进行刷新操作的第一控制命令;
步骤S3、握手信号触发模块将sdrc_lock置为1;
步骤S4、在检测到sdrc_lock为1后,频率切换模块将当前DRAM运行频率切换为目标运行频率;
步骤S5、在完成频率切换后,无效请求信号设置模块将clock_switch_request恢复为0;
步骤S6、在检测到clock_switch_request为0后,时序检查参数确定模块提取所述目标运行频率对应的时序检查参数;
步骤S7、自刷新退出模块依据所述时序检查参数确定系统时钟,并发出DRAM按照所述系统时钟进行刷新操作的第二控制命令;
步骤S8、握手信号关闭模块将sdrc_lock为1恢复为0。
当然,上述DRAM控制器和频率切换控制器采用频率切换请求信号和握手信号的交互方式仅仅用作示例,本领域技术人员根据需要采用任一交互方式都是可行的,本发明对此无需加以限制。
在具体实现中,本发明可以适用于多媒体芯片系统,当多媒体芯片系统的处理器,硬件加速器等功能模块访问DRAM时,能够根据多媒体任务的特点,自动调整DRAM运行频率。
参照图4,示出了本发明一种DRAM运行频率调整方法实施例的流程图,具体可以包括:
步骤401、统计预设时间间隔内DRAM的有效工作状态分布,获得当前DRAM运行频率的带宽利用率;
步骤402、在所述带宽利用率不适于当前应用场景的运行状况时,生成目标DRAM运行频率;
步骤403、将所述当前DRAM运行频率调整至所述目标DRAM运行频率。
在实际中,所述DRAM的有效工作状态分布的统计步骤可以包括以下子步骤:
子步骤A1、累加预设时间间隔内DRAM控制器中有限状态机的非等待时间,获得DRAM的有效工作状态分布;
子步骤A2、在所述预设时间间隔到达时,产生需要降低带宽利用率时的第一中断信号;或者,在所述预设时间间隔内,所述有限状态机非等待时间的累加值满足预置中断条件阈值时,产生提高带宽利用率的第二中断信号;
在这种情况下,所述目标DRAM运行频率的生成步骤可以包括:
在第一中断信号产生时,依据所述第一中断信号生成低于当前DRAM运行频率的目标运行频率;或者,在第二中断信号产生时,依据所述第二中断信号生成高于当前DRAM运行频率的目标运行频率。
在本发明的一种优选实施例中,所述方法还可以包括:
在频率调整时,控制DRAM按照内部时钟进行刷新操作,以及,在频率调整完成时,控制DRAM按照系统时钟进行刷新操作。
优选的,所述系统时钟可由时序检查参数确定,所述方法可以进一步包括:
依据所述目标DRAM运行频率获得对应的时序检查参数。
在本发明的一种优选实施例中,所述方法还可以包括:
预先配置默认值为无效的频率切换请求信号,默认值为无效的握手信号,以及,对应各种DRAM运行频率的时序检查参数;
所述运行频率调整步骤可以包括以下子步骤:
子步骤B1、生成频率切换请求,并将所述频率切换请求信号置为有效;
子步骤B2、依据所述频率切换请求的有效信号,发出DRAM按照内部时钟进行刷新操作的第一控制命令;
子步骤B3、在发出所述第一控制命令后,将所述握手信号置为有效;
子步骤B4、依据有效的握手信号,将当前DRAM运行频率切换为目标运行频率;
子步骤B5、在完成频率切换后,将所述频率切换请求信号恢复为无效;
子步骤B6、在所述频率切换请求信号被恢复为无效时,提取所述目标运行频率对应的时序检查参数;
子步骤B7、依据所述时序检查参数确定系统时钟,并发出DRAM按照所述系统时钟进行刷新操作的第二控制命令;
子步骤B8、在发出所述第二控制命令后,将所述握手信号恢复为无效。
在实际中,为避免在频率调整时DRAM丢失数据,所述方法还可以包括:
在接收到频率切换请求的有效信号后,发出所述第一控制命令前,执行已接收的数据请求,并停止响应新的数据请求;
在所述握手信号恢复为无效时,接收新的数据请求。
对于方法实施例而言,由于其与装置实施例基本相似,所以描述的比较简单,相关之处参见装置实施例的部分说明即可。
以上对本发明所提供的一种DRAM运行频率调整系统及一种DRAM运行频率调整方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。