内存参数配置方法及电子设备与流程

文档序号:16246489发布日期:2018-12-11 23:37阅读:257来源:国知局
内存参数配置方法及电子设备与流程

本发明涉及计算机技术领域,具体而言,涉及一种内存参数配置方法及电子设备。

背景技术

随着当前移动互联网,云技术,大数据等各种主流技术的快速发展,具有各式各样业务功能的嵌入式设备也如雨后春笋一般的涌现出来,为了实现这些具有大量数据处理业务的功能需求,往往都会在设备上设计大容量的内存,用于处理器在实现各种功能时的程序运行及数据处理,相应地,对于内存读写访问的稳定性也就有着越来越高的要求,而内存是否能够长时间的稳定访问,又主要取决于配置到内存控制器中的内存时序参数是否准确、可靠。

在现有技术中,获得嵌入式设备的内存时序参数,一般有两种方法,一种是在每次启动时与内存芯片进行磋商,另一种是使用静态参数。其中,第一种方法获得的内存时序参数易受环境因素影响,可靠性较差,第二种方法对嵌入式设备本身的硬件一致性要求较高,普通企业生产出的嵌入式设备难以满足要求。



技术实现要素:

本发明实施例提供一种内存参数配置方法及电子设备,并通过如下技术方案实现:

第一方面,本发明实施例提供一种内存参数配置方法,应用于电子设备,包括:

在电子设备启动时,保存当次电子设备的内存控制器与电子设备的至少一个内存芯片磋商出的一组每个内存芯片的内存参数;

获得电子设备的启动次数;

判断启动次数小于启动次数阈值时,获得与启动次数对应的每次保存的内存控制器与至少一个内存芯片磋商出的一组每个内存芯片的内存参数;

从每次保存的每个内存芯片的内存参数中确定每个内存芯片的当前最优化内存参数,对于至少一个内存芯片共确定一组每个内存芯片的当前最优化内存参数;

利用一组每个内存芯片的当前最优化内存参数配置并初始化至少一个内存芯片。

上述方法在配置内存参数时,综合考虑了电子设备本次启动时磋商出的内存参数以及电子设备在之前每次启动时磋商出的内存参数,基于此获得每个内存芯片的当前最优化内存参数,并基于获得的一组每个内存芯片的当前最优化内存参数配置并初始化电子设备的至少一个内存芯片。从而,能够有效避免电子设备在某次启动过程中因受到环境干扰导致磋商出来的内存参数存在异常的情况,确保配置的内存参数准确可靠,进而确保电子的成功启动,提高电子设备的可靠性。

此外,该内存参数配置方法仍然是一种基于磋商获得内存参数的方法,因此是一种自适应的方法,即针对每台电子设备都会生成与该电子设备的电气特征匹配的内存参数,从而有效降低了电子设备对硬件设计一致性的依赖,即在保证电子设备运行可靠性的前提下降低了电子设备的设计成本。

在一个可能的设计中,在电子设备启动时,保存当次电子设备的内存控制器与电子设备的至少一个内存芯片磋商出的一组每个内存芯片的内存参数,包括:

在电子设备启动时,保存当次内存控制器与至少一个内存芯片磋商出的一组每个内存芯片的内存参数至非易失性存储器。

由于在确定一组每个内存芯片的当前最优化内存参数的过程中,会利用到电子设备在之前每次启动时磋商出的每个内存芯片的内存参数,因此在电子设备每次启动时,都需要将磋商出的一组每个内存芯片的内存参数保存至非易失性存储器,以确保在电子设备关闭后,这些数据不会丢失,并且能够在电子设备下次启动时被读取使用。

在一个可能的设计中,在对于至少一个内存芯片共确定一组每个内存芯片的当前最优化内存参数之后,方法还包括:

在非易失性存储器中保存一组每个内存芯片的当前最优化内存参数;

在判断启动次数大于启动次数阈值时,直接从非易失性存储器中读取上次保存的一组每个内存芯片的当前最优化内存参数;

利用上次保存的一组每个内存芯片的当前最优化内存参数配置并初始化至少一个内存芯片。

每次启动时,保存一组每个内存芯片的当前最优化内存参数的过程可以看作是一个学习过程,即学习针对当前电子设备的、最优的一组内存参数。这一学习过程在电子设备的启动次数足够多时,获得的一组每个内存芯片的当前最优化内存参数已经趋于稳定。之后再次启动电子设备时可以直接利用上次保存的一组每个内存芯片的当前最优化内存参数配置并初始化至少一个内存芯片,无需再进行磋商。

其优点在于,第一,加快了电子设备的启动速度,第二,避免了内存参数磋商过程中的偶然因素,第三,一组每个内存芯片的当前最优化内存参数对于电子设备来说是自适应的,只要电子设备的启动次数足够多,总能找到这样的一组内存参数。

在一个可能的设计中,当前最优化内存参数为每次保存的每个内存芯片的内存参数的众数。

众数即每次保存的每个内存芯片的内存参数中出现频率最高的一个内存参数,某一内存参数在多次启动过程中出现的频率最高,表明该内存参数具有较高的稳定性,其取值代表一种普遍情况,尽可能排除了内存参数磋商过程中偶然性的影响。

在一个可能的设计中,内存参数包括内存时序参数,内存时序参数通过写时序writeleveling方法以及读时序readleveling方法进行磋商获得。

wl(writeleveling的简称)和rl(readleveling的简称)方法是两种现有的内存参数磋商方法,其具体的执行方式已经标准化,从而使得本发明实施例提供的内存参数配置方法具有高度的规范性,进而该方法与电子设备的硬件架构无关,是一种普适性的方法。

第二方面,本发明实施例提供一种电子设备,包括处理器,至少一个内存芯片以及内存控制器;

处理器用于在电子设备启动时,保存当次内存控制器与至少一个内存芯片磋商出的一组每个内存芯片的内存参数,

获得电子设备的启动次数,

判断启动次数小于启动次数阈值时,获得与启动次数对应的每次保存的内存控制器与至少一个内存芯片磋商出的一组每个内存芯片的内存参数,

从每次保存的每个内存芯片的内存参数中确定每个内存芯片的当前最优化内存参数,对于至少一个内存芯片共确定一组每个内存芯片的当前最优化内存参数。

利用一组每个内存芯片的当前最优化内存参数配置并初始化至少一个内存芯片。

在该电子设备中,由于采用了本发明实施例提供的内存参数配置方法,从而使配置出的内存参数准确可靠,有利于改善电子设备的稳定性与可靠性。同时,配置出的内存参数与当前的电子设备是自动适配的。

在一个可能的设计中,电子设备还包括非易失性存储器,处理器具体用于在电子设备启动时,保存当次内存控制器与至少一个内存芯片磋商出的一组每个内存芯片的内存参数至非易失性存储器。

在一个可能的设计中,处理器还用于在对于至少一个内存芯片共确定一组每个内存芯片的当前最优化内存参数之后,

在非易失性存储器中保存一组每个内存芯片的当前最优化内存参数,

在判断启动次数大于启动次数阈值时,直接从非易失性存储器中读取上次保存的一组每个内存芯片的当前最优化内存参数,

利用上次保存的一组每个内存芯片的当前最优化内存参数配置并初始化至少一个内存芯片。

在一个可能的设计中,当前最优化内存参数为每次保存的每个内存芯片的内存参数的众数。

在一个可能的设计中,内存参数包括内存时序参数,内存时序参数通过写时序writeleveling方法以及读时序readleveling方法进行磋商获得。

第三方面,本发明实施例提供一种非易失性存储介质,非易失性存储介质中存储有计算机程序指令,计算机程序指令被电子设备的处理器读取并运行时,执行第一方面或第一方面的任意一个可能的设计中提供的内存参数配置方法的步骤。

为使本发明的上述目的、技术方案和有益效果能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了一种可用于本发明施例中的电子设备的结构示意图;

图2示出了本发明第一实施例提供的内存参数配置方法的流程图;

图3示出了本发明第一实施例提供的内存参数存储结构的示意图;

图4示出了本发明第二实施例提供的内存参数配置方法的流程图。

图中:100-电子设备;110-处理器;120-内存控制器;130-内存芯片;140-非易失性存储器。

具体实施方式

在现有技术中,通常采用两种方法配置嵌入式设备的内存参数。第一种方法,在嵌入式设备每次启动时,通过集成在嵌入式设备处理器内部的内存控制器与嵌入式设备的内存芯片磋商出一组内存时序参数。第二种方法,对于某一款嵌入式设备,使用静态的内存时序参数,即该款嵌入式设备中的每个个体都采用同样的内存参数设置。

发明人在长期研究实践中发现,对于第一种方法,其优点是简单直接,大多数情况下可以获得一组可用的内存时序参数,但是可靠性较差,例如当某次启动时,由于环境因素影响,导致内存控制器与内存芯片之间连接的电气连接线信号质量差,这样动态磋商出来的内存时序参数是不准确的,即使嵌入式设备能够启动成功,内存访问也不可靠,可能会导致不可预知的问题,甚至是系统挂机。

对于第二种方法,其优点是简单可靠,其缺点是对嵌入式设备的硬件一致性要求非常高,相应地大幅提高了硬件设计成本与制造工艺方面的要求,目前只有少数大企业有能力设计制造满足要求的嵌入式产品,对嵌入式设备的推广普及非常不利。

现有技术中存在的上述缺陷,是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

图1示出了一种可用于本发明施例中的电子设备100的结构示意图。该电子设备100可以是嵌入式设备也可以是非嵌入式设备。参照图1,电子设备100包括处理器110、至少一个内存芯片130(图1中示出5个)、内存控制器120以及非易失性存储器140。

其中,处理器110与至少一个内存芯片130之间,以及与非易失性存储器140之间通过访问总线连接,内存控制器120可以,但不限于集成在处理器110内部。

非易失性存储器140可用于存储软件程序,如本发明实施例中的内存参数配置方法对应的程序指令,处理器110通过运行存储在非易失性存储器140内的软件程序,从而执行本发明实施例提供的内存参数配置方法的步骤。显然的,非易失存储器还可以存储其他内容,例如本发明实施例提供的内存参数配置方法中的内存参数,当然非易失性存储器140可以是一个或多个,内存参数和程序指令并不限定于要存储在同一非易失性存储器140上。甚至,在某些实施方式中,内存参数并不一定要存储在当前电子设备100的非易失性存储器140上,例如,可以存储在另一台电子设备100上,本台电子设备100启动后可以从另一台电子进行读取,又例如,电子设备100具有网络访问功能,内存参数还可以存储在远程设备上,或者存储在云端。

非易失性存储器140可以是,但不限于只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom),闪存(flashmemory)等。

处理器110可以是一种集成电路芯片,具有信号的处理能力。既可以是通用处理器110,包括中央处理器110(centralprocessingunit,cpu)、微控制单元(microcontrollerunit,mcu)、网络处理器110(networkprocessor,np)或者其他常规处理器110;还可以是专用处理器110,包括数字信号处理器110(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuits,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

内存芯片130可以是,但不限于双倍速率同步动态随机存储器(doubledateratesynchronousdynamicrandomaccessmemory,ddr)及其后续改进ddr2、ddr3、ddr4等。在电子设备100启动时,需要由处理器110对内存芯片130的内存参数进行配置并初始化。

第一实施例

图2示出了本发明第一实施例提供的内存参数配置方法的流程图。图2中的方法在电子设备100每次启动时都会执行,下文在阐述时以其中一次启动过程为例进行阐述。参照图2,该方法包括:

步骤s10:电子设备100的处理器110保存内存控制器120与至少一个内存芯片130磋商出的一组每个内存芯片130的内存参数至非易失性存储器140。

内存芯片130有多个参数,但通常可以通过磋商获得的内存参数主要是指内存时序参数,内存时序参数一般为一个整数,每个内存芯片130对应一个内存时序参数。在后文中提到内存参数时,一般以内存时序参数为例,对于存在其他可磋商的内存参数的情况,可以参照内存时序参数的配置方法进行配置。

对于每个内存芯片130,内存控制器120都通过磋商的方法磋商出其对应的内存参数,对于至少一个内存芯片130,共磋商出一组每个内存芯片130的内存参数。

磋商内存参数,具体可以采用,但不限于写时序writeleveling(简称wl)方法以及读时序readleveling(简称rl)方法,这两种方法都是现有的内存参数磋商方法,其具体的执行方式已经标准化,对于通常的硬件架构是普遍适用的,因此步骤s10实际上是一个与硬件无关的步骤,从而第一实施例提供的内存参数配置方法也是一种与硬件无关的普适性方法。

事实上,步骤s10中保存内存参数的操作只要在电子设备100本次关闭之前执行就可以了,并不一定要在磋商完成之后立即进行,这里写在一起主要是为了便于后续阐述。

图3示出了本发明第一实施例提供的内存参数存储结构的示意图。参照图3,a1、b1、c1、d1以及e1表示电子设备100第1次启动时与5个内存芯片130磋商出的一组每个内存芯片130的内存参数pg1,a2、b2、c2、d2以及e2表示电子设备100第2次启动时与5个内存芯片130磋商出的一组每个内存芯片130的内存参数pg2,以此类推,字母后面的阿拉伯数字对应启动次数。该存储结构的其余部分在后续步骤中再进一步说明,可以理解,图3中的存储结构只是一种逻辑上的存储结构,并不一定完全对应真实的数据结构。

每次将一组每个内存芯片130的内存参数保存至非易失性存储器140,主要是为了电子设备100在后续步骤中计算一组每个内存芯片130的当前最优化内存参数。

步骤s11:电子设备100的处理器110获得电子设备100的启动次数n。

例如,可以设置一个与电子设备100的启动次数对应的变量,并将该变量保存在电子设备100的非易失性存储器140中,每次启动时读取该变量即可获得之前的启动次数,读取完后将变量的值增加1并保存,以便下次启动时读取。当然,上述仅仅是一种实现方式,通过其他方式获得启动次数也是可以的。

此外,还需要指出,严格意义上来说,电子设备100的启动次数是指采用了本发明第一实施例提供的方法进行内存参数配置以后的启动次数,并不一定完全对应电子设备100真实的启动次数。例如,内存参数配置方法实现为软件程序的形式,则启动次数应当从该软件程序安装到电子设备100上,并处于可工作状态时开始计数。

步骤s12:电子设备100的处理器110判断n的取值。

在第一实施例中,n的取值可以分为三种情况,分别是n=1、1<n≤m以及n>m,其中m为启动次数阈值。在步骤s12中基于n的取值判断n属于上述三种情况中的哪一种情况以便执行对应的后续步骤。其中,n=1时执行步骤s17;1<n≤m时执行步骤s13;n>m时执行步骤s18。

步骤s13:电子设备100的处理器110获得与启动次数对应的每次保存的内存控制器120与至少一个内存芯130片磋商出的一组每个内存芯片130的内存参数。

由于电子设备100每次启动时都会执行步骤s10,因此可以从非易失性存储器140中将每次保存的一组每个内存芯片130的内存参数读取出来。

继续参照图3,在启动次数为n时,可以将之前n-1次启动时和本次启动时共保存的n组每个内存芯片130的内存参数读取出来,即从非易失性存储器140读取出pg1至pg(n)。

在另一些实施方式中,也可以只读取之前某些次启动时保存的一组每个内存芯片130的内存参数,例如,只读取最近100次启动时保存的共100组每个内存芯片130的内存参数,以减小运算量。

步骤s14:电子设备100的处理器110从每次保存的每个内存芯片130的内存参数中确定每个内存芯片130的当前最优化内存参数,共确定一组每个内存芯片130的当前最优化内存参数。

继续参照图3,步骤s13中读取出的n组每个内存芯片130的内存参数可以分为5部分,分别针对5个内存芯片130,即a1至an共n个内存参数、b1至bn共n个内存参数、c1至cn共n个内存参数、d1至dn共n个内存参数以及e1至en共n个内存参数。

以a1至an为例,可以基于a1至an的取值通过某种预设的算法计算出一个针对该内存芯片130的当前最优化内存参数。例如,取a1至an的众数,如果不存在众数时,例如n=2,但a1≠a2,此时可以选择本次磋商出的内存参数作为当前最优化内存参数,例如a2,当然也可以采取其他处理方式。

众数即a1至an中出现频率最高的一个内存参数,某一内存参数在多次启动过程中出现的频率最高,表明该内存参数具有较高的稳定性,其取值代表一种普遍情况,尽可能排除了内存参数磋商过程中偶然性的影响,因此将上述众数作为该内存芯片130在本次启动时的当前最优化内存参数是合适的。

对于b1至bn、c1至cn、d1至dn以及e1至en采用类似的处理方式,获得一组共5个当前最优化内存参数,分别针对5个内存芯片130。可以理解,图3仅为示例,实际中内存芯片130的个数不一定为5个,针对每个内存芯片130的内存参数也不限于一项(目前常见的仅有内存时序参数一项),对于每个内存芯片130有多项内存参数的情况,对每项内存参数可以独立处理,采用步骤s14中所述的方法。

步骤s15:电子设备100的处理器110利用一组每个内存芯片130的当前最优化内存参数配置并初始化至少一个内存芯片130。

用于配置并初始化内存芯片130的每个内存芯片130的当前最优化内存参数,都是通过本次启动时磋商出的每个内存芯片130的内存参数,以及之前每次启动时磋商出的每个内存芯片130的内存参数计算获得。因此最终获得的一组每个内存芯片130的当前最优化内存参数可以看作是一种统计结果而非单次磋商结果,从而能够有效避免电子设备100在某次启动过程中因受到环境干扰导致磋商出来的内存参数存在异常的情况,确保配置的内存参数准确可靠,进而确保电子设备100的成功启动,提高电子设备100的可靠性。

此外,每个内存芯片130的当前最优化内存参数是基于内存控制器120与内存芯片130磋商出的内存参数获得的,因此并不是一种静态参数,而属于一种自适应参数。即针对每台电子设备100都会生成与该电子设备100的电气特征匹配的内存参数,从而有效降低了电子设备100对硬件设计一致性的依赖,即在保证电子设备100运行可靠性的前提下降低了电子设备100的设计成本,使得在硬件制造工艺有限的前提下,制造出的电子设备100仍然能够维持稳定性与可靠性。

步骤s16:电子设备100的处理器110在非易失性存储器140中保存的一组每个内存芯片130的当前最优化内存参数。

保存一组每个内存芯片130的当前最优化内存参数主要是为了方便在步骤s18中读取使用。事实上,步骤s16只需要在步骤s14执行之后执行即可,并不一定要在执行步骤s15后执行。

步骤s16至少有两种不同的实现方式:第一种即图3中的处理方式,将每次启动时计算出的一组每个内存芯片130的当前最优化内存参数保存至非易失性存储器140的同一位置(如图3中的pg处),覆盖上次启动时保存的一组每个内存芯片130的当前最优化内存参数。第二种将每次启动时计算出的一组每个内存芯片130的当前最优化内存参数保存至非易失性存储器140的不同位置,不覆盖之前的结果。

步骤s17:电子设备100的处理器110将一组每个内存芯片130的内存参数确定为一组每个内存芯片130的当前最优化内存参数。

电子设备100首次启动时情况比较特殊,由于此时并未保存过之前磋商出的内存参数,因此可以直接将本次磋商出的一组每个内存芯片130的内存参数确定为一组每个内存芯片130的当前最优化内存参数,并转至步骤s15继续执行。

步骤s18:电子设备100的处理器110从非易失性存储器140中读取上次保存的一组每个内存芯片130的当前最优化内存参数。

在步骤s16中保存一组每个内存芯片130的当前最优化内存参数的过程可以看作是一个学习过程,即学习针对当前电子设备100的、最优的一组内存参数。这一学习过程在电子设备100的启动次数足够多时,例如n>m时,非易失性存储器140中上次保存的一组每个内存芯片130的当前最优化内存参数已经可以有效表征电子设备100在正常工作的状况下所应当采用的一组内存参数,或者说电子设备100的至少一个内存芯片130在配置了这组内存参数后,能够正常稳定工作。

其中,上次保存是指在n=m时保存的内存参数,从上述阐述可知,步骤s18中实际上只使用上次保存的一组每个内存芯片130的当前最优化内存参数,因此在某些实施方式中,步骤s16可以只在n=m时才执行一次,而无需在n<m的每次启动时都执行。

步骤s19:电子设备100的处理器110利用上次保存的一组每个内存芯片130的当前最优化内存参数配置并初始化至少一个内存芯片130。

根据步骤s18中的分析,步骤s19中使用的上次保存的一组每个内存芯片130的当前最优化内存参数可以看作是一组长期积累后获得的经验参数,可以直接利用其配置并初始化至少一个内存芯片130,无需再进行磋商,这样做既加快了电子设备100的启动速度,又避免了内存参数磋商过程中的偶然因素。同时,考虑到内存参数配置方法的自适应性,在电子设备100使用一段时间(启动次数n>m)后,总能够学习获得一组历史最优化内存参数。之后利用该组参数配置并初始化内存芯片130,就能够保证电子设备100长期稳定运行,因此该内存参数配置方法智能化程度较高。

第二实施例

图4示出了本发明第二实施例提供的内存参数配置方法的流程图。参照图4,图4示出的方法和图3示出的方法实际上比较类似。

步骤s20至步骤s21类似于步骤s10至步骤s11,步骤s22类似于步骤s12,但步骤s22中只判断两种情况,即n=1和n>1的两种情况,其中n=1时执行步骤s26,n>1时执行步骤s23。

步骤s23至步骤s25类似于步骤s13至步骤s15,步骤s26类似于步骤s17。在第二实施例中没有与步骤s16对应的步骤,原因在于第二实施例中并不使用一组历史内存参数(图4中没有n>m的分支)。

步骤s50类似于步骤s20,步骤s51类似于步骤s21,步骤s42类似于步骤s22,步骤s53类似于步骤s23。在第二实施例中没有与步骤s24对应的步骤,原因第二实施例中的一组每个内存芯片130的当前最优化内存参数只在本次启动时使用,因此不需要将其保存至非易失性存储器140。

在第二实施例中,只要n>1,都会通过本次启动时磋商出的每个内存芯片130的内存参数,以及之前每次启动时磋商出的每个内存芯片130的内存参数计算获得每个内存芯片130的当前最优化内存参数,并通过获得的一组每个内存芯片130的当前最优化内存参数配置并初始化至少一个内存芯片130。相较于第一实施例,第二实施例获得的用于配置内存芯片130的内存参数的准确性和可靠程度可能会更高,但计算量可能会更大,实际中可以根据具体的硬件环境以及需求选择合适的实施方式。

本发明第二实施例提供的内存参数配置方法,其实现原理及产生的技术效果,未提及指出,可参考前述第一实施例中的相应内容。

第三实施例

本发明第三实施例提供一种电子设备100,包括处理器110,至少一个内存芯片130以及内存控制器120;

处理器110用于在每次电子设备100启动时,保存内存控制器120与至少一个内存芯片130磋商出的一组每个内存芯片130的内存参数,

获得电子设备100的启动次数,

判断启动次数小于启动次数阈值时,获得与启动次数对应的每次保存的内存控制器120与至少一个内存芯片130磋商出的一组每个内存芯片130的内存参数,

从每次保存的每个内存芯片130的内存参数中确定每个内存芯片130的当前最优化内存参数,对于至少一个内存芯片130共确定一组每个内存芯片130的当前最优化内存参数。

利用一组每个内存芯片130的当前最优化内存参数配置并初始化至少一个内存芯片130。

在第三实施例的一种实施方式中,电子设备100还包括非易失性存储器140,处理器110用于在每次电子设备100启动时,保存内存控制器120与至少一个内存芯片130磋商出的一组每个内存芯片130的内存参数至非易失性存储器140。

在第三实施例的一种实施方式中,处理器110还用于在对于至少一个内存芯片130共确定一组每个内存芯片130的当前最优化内存参数之后,

在非易失性存储器140中保存一组每个内存芯片130的当前最优化内存参数,

在判断启动次数大于启动次数阈值时,直接从非易失性存储器140中读取上次保存的一组每个内存芯片130的当前最优化内存参数,

利用上次保存的一组每个内存芯片130的当前最优化内存参数配置并初始化至少一个内存芯片130。

在第三实施例的一种实施方式中,当前最优化内存参数为每次保存的每个内存芯片130的内存参数的众数。

在第三实施例的一种实施方式中,内存参数包括内存时序参数,内存时序参数通过wl方法以及rl方法进行磋商获得。

本发明第三实施例提供的电子设备100,其实现功能及产生的技术效果可参考前述第一实施例中的相应内容。总之,该电子设备100由于采用了本发明实施例提供的内存参数配置方法,使配置出的内存参数准确可靠,从而具有较高的稳定性与可靠性。同时,由于配置内存参数的方法具有自适应特征,因此可以适当降低对电子设备100的硬件一致性的要求,使得该电子设备100便于制造和使用。

第四实施例

本发明第四实施例提供一种非易失性存储介质,非易失性存储介质中存储有计算机程序指令,计算机程序指令被电子设备100的处理器110读取并运行时,执行本发明实施例提供的内存参数配置方法的步骤。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得计算机设备执行本发明各个实施例所述方法的全部或部分步骤。前述的计算机设备包括:个人计算机、服务器、移动设备、智能穿戴设备、网络设备、虚拟设备等各种具有执行程序代码能力的设备,前述的存储介质包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟、磁带或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1