本发明涉及计算机技术领域,特别涉及一种内存参数的确定方法及装置。
背景技术:
内存作为服务器系统的关键组成部分,其好坏直接影响服务器能否正常工作。其中,数据并不是即时的写入存储电容,需要一定的时钟周期。为了保证数据的可靠写入,需要留出足够的tWR(Write Recovery Time,写入-校正时间)。
现有技术中,可以根据经验值来设置内存tWR,在内存中进行数据写入之后间隔该tWR之后,进行预充电。
然而,若内存实际的tWR远远小于经验值对应的tWR,那么根据经验值设置的tWR会影响数据写入的效率;若内存的实际写入时间大于经验值对应的tWR,那么根据经验值设置的tWR可能导致数据还未被完全写入到内存中,就进行了预充电,可能会导致数据的丢失及损坏。因此,现有技术无法准确的确定出内存参数。
技术实现要素:
本发明实施例提供了一种内存参数的确定方法及装置,以便能准确地确定内存的参数。
第一方面,本发明实施例提供了一种内存参数的确定方法,包括:
S1:确定初始tWR,将所述初始tWR作为当前使用的tWR执行S2;
S2:当确定在内存中写入目标数据时,根据当前使用的tWR对内存进行预充电;
S3:判断预充电后的内存中是否包括所述目标数据,若包括,则执行S4;否则,将当前使用的tWR确定为目标tWR;
S4:按照所述第一更新粒度对当前使用的tWR进行更新,并利用更新后的tWR执行S2。
优选地,
根据所述目标tWR确定内存使用时对应的tWR,其中,所述内存使用时对应的tWR大于所述目标tWR。
优选地,
所述根据当前使用的tWR对内存进行预充电,包括:
获取启动盘;
将tWR的设置程序和内存测试程序拷贝到所述启动盘中;
在所述启动盘中根据所述tWR的设置程序设置所述当前tWR;
根据内存测试程序读取设置的所述当前tWR,并根据读取的所述当前tWR对内存进行预充电。
优选地,
所述方法进一步包括:设置第二更新粒度;
进一步包括:
S5:确定初始刷新参数;
S6:利用初始刷新参数对内存进行刷新;
S7:判断刷新后的内存是否正常工作,若正常工作,则执行S8;否则,将当前使用的刷新参数确定为目标刷新参数;
S8:按照所述第二更新粒度对所述初始刷新参数进行更新,并利用更新后的刷新参数对内存进行刷新,并执行S7。
优选地,
根据所述目标刷新参数确定内存使用时对应的刷新参数,其中,所述内 存使用时对应的刷新参数小于所述目标刷新参数。
第二方面,本发明实施例提供了一种内存参数的确定装置,包括:
第一设置单元,用于设置第一更新粒度,将所述更新粒度输出给第一处理单元;
第一确定单元,用于确定初始tWR,将所述初始tWR输出给预充电单元;
所述预充电单元,用于根据当前tWR对内存进行预充电;
第一判断单元,用于判断预充电后的内存是否正常工作,若正常工作,则触发第一处理单元执行相应操作;否则;触发第二确定单元执行相应操作;
所述第二确定单元,用于将当前使用的tWR确定为目标tWR;
所述第一处理单元,用于按照更新粒度对所述当前tWR进行更新,并触发所述预充电单元执行相应操作。
优选地,
所述内存参数的确定装置,进一步包括:
第三确定单元,用于根据所述目标tWR确定内存使用时对应的tWR,其中,所述内存使用时对应的tWR大于所述目标tWR。
优选地,
所述预充电单元,进一步包括:
获取模块,用于获取启动盘;
拷贝模块,用于将tWR的设置程序和内存测试程序拷贝到所述启动盘中;
设置模块,用于在所述启动盘中根据所述tWR的设置程序设置所述当前tWR;
处理模块,用于根据内存测试程序读取设置的所述当前tWR,并根据读取的所述当前tWR对内存进行预充电。
优选地,
进一步包括:
第二设置单元,用于设置第二刷新粒度,将所述第二刷新粒度输出给第二处理单元;
第四确定单元,用于确定初始刷新参数,将所述初始刷新参数输出给刷新单元;
所述刷新单元,用于利用初始刷新参数对内存进行刷新;
第二判断单元,用于判断刷新后的内存是否正常工作,若正常工作,则触发第二处理单元执行相应操作;否则,触发第五确定单元执行相应操作;
所述第五确定单元,用于将当前使用的刷新参数确定为目标刷新参数;
所述第二处理单元,用于按照刷新粒度对所述初始刷新参数进行更新,并利用更新后的刷新参数对内存进行刷新,并触发所述第二判断单元执行相应操作。
优选地,
进一步包括:
第六确定单元,用于根据所述目标刷新参数确定内存使用时对应的刷新参数,其中,所述内存使用时对应的刷新参数小于所述目标刷新参数。
本发明实施例提供了一种内存参数的确定方法及装置,通过确定初始tWR参数,将所述初始tWR作为当前使用的tWR,确定在内存中写入目标数据后,根据当前使用的tWR对内存进行预充电,判断预充电后的内存中是否包括所述目标数据,若包括,则按照所述第一更新粒度对当前使用的tWR进行更新,并利用更新后的tWR对内存进行预充电,直到确定出当前使用的tWR使得预充电后的内存无法正常工作时,将当前使用的tWR确定为目标tWR。本方案能准确地确定出内存参数。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种内存参数的确定方法流程图;
图2是本发明一个实施例提供的另一种内存参数的确定方法流程图;
图3是本发明一个实施例提供的装置所在设备的硬件架构图;
图4是本发明一个实施例提供的一种内存参数的确定装置结构图;
图5是本发明一个实施例提供的另一种内存参数的确定装置结构图;
图6是本发明一个实施例提供的另一种内存参数的确定装置结构图;
图7是本发明一个实施例提供的另一种内存参数的确定装置结构图;
图8是本发明一个实施例提供的另一种内存参数的确定装置结构图;
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种内存参数的确定方法,其特征在于,预先设置第一更新粒度,包括以下步骤:
步骤101:确定初始tWR,将所述初始tWR作为当前使用的tWR执行步骤102;
步骤102:当确定在内存中写入目标数据时,根据当前使用的tWR对内存进行预充电;
步骤103:判断预充电后的内存中是否包括所述目标数据,若包括,则执行步骤104;否则,执行步骤105;
步骤104:按照所述第一更新粒度对当前使用的tWR进行更新,并利用更新后的tWR执行步骤102;
步骤105:将当前使用的tWR确定为目标tWR。
本发明实施例提供了一种内存参数的确定方法及装置,通过确定初始tWR,将所述初始tWR作为当前使用的tWR,确定在内存中写入目标数据后, 根据当前使用的tWR对内存进行预充电,判断预充电后的内存中是否包括所述目标数据,若包括,则按照所述第一更新粒度对当前使用的tWR进行更新,并利用更新后的tWR对内存进行预充电,直到确定出当前使用的tWR使得预充电后的内存无法正常工作时,将当前使用的tWR确定为目标tWR。本方案能准确地确定出内存参数。
在一种可能的实现方式中,为了更快地确定目标tWR,所述利用当前tWR对内存进行预充电,包括:
获取启动盘;
将tWR的设置程序和内存测试程序拷贝到所述启动盘中;
在所述启动盘中根据所述tWR的设置程序设置所述当前tWR;
根据内存测试程序读取设置的所述当前tWR,并根据读取的所述当前tWR对内存进行预充电。
例如,制作一个DOS(Disk Operating System,磁盘操作系统)启动盘,将tWR设置程序和内存测试程序拷贝到DOS盘中,开机进入DOS盘,运行tWR设置程序设置初始tWR为1,运行内存测试程序对内存进行预充电。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明实施例提供了一种内存参数的确定方法,该方法可以包括以下步骤:
步骤201:获取启动盘。
在本实施例中,选择一个启动盘,其中,该启动盘可以为U盘、光盘、移动硬盘等。本发明实施例以DOS启动盘为例进行说明。
步骤202:将参数设置程序和内存测试程序拷贝到DOS启动盘中。
参数设置程序包括tWR设置程序和刷新参数设置程序,本实施例中,以tWR设置程序为例。
其中,该tWR设置程序可以预先设计好,并为该tWR参数设置程序进行命名,例如,为tWR.exe。该内存测试程序也可以预先设计好。在获取到 DOS启动盘之后,将tWR.exe和内存测试程序拷贝到DOS启动盘中。
在本发明一个实施例中,也可以直接在DOS启动盘中进行tWR设置程序和内存测试程序的设计。
步骤203:确定初始tWR,并将其作为当前使用的tWR。
在本实施例中,所测试内存为DRAM(Dynamic Random Access Memory,动态随机存取存储器)。DRAM进行写操作的时候,从写操作完成到预充电命令执行的时间称为tWR。数据信号由控制器发出,通过对DRAM内部的电容充电操作来完成数据的写入。但是数据并不是即时的写入存储电容,真正的写入需要一定的时钟周期。为了保证数据的可靠写入,需要留出足够的tWR。时钟频率越高,tWR占用周期越长。在本实施例中,选择初始tWR为1。
步骤204:开机进入启动盘,运行程序。
在本实施例中,开机进入DOS盘,运行参数设置程序tWR.exe和内存测试程序。
步骤205:当确定在内存中写入目标数据时,根据当前使用的tWR对内存进行预充电。
利用当前使用的tWR,即初始tWR=1,对内存进行测试。
步骤206:判断预充电后的内存中是否包括所述目标数据,若包括,则执行步骤207;否则,执行步骤208。
在本实施例中,预充电后的内存如果包括所述目标数据,则更新tWR为2,继续对内存进行预充电,否则将当前使用的tWR=2确定为目标tWR。
在本实施例中,可以通过判断是否发生数据丢失来确定预充电后的内存能否正常工作,若发生了数据丢失,则表征内存无法正常工作,若未发生数据丢失,则表征内存能够正常工作。
步骤207:按照所述第一更新粒度对当前使用的tWR进行更新,并利用更新后的tWR执行步骤205。
在本实施例中,第一更新粒度设置的越小,确定出的目标tWR越准确, 第一更新粒度设置的越大,在确定出目标tWR时经过的预充电次数越少,所以,为了平衡目标tWR准确度和预充电效率,可以选择最佳的第一更新粒度对应的值。例如,
该第一更新粒度为1。
由于初始tWR为1,那么利用第一更新粒度对该初始tWR进行更新后,得到更新后的tWR为2,即利用2执行步骤205。更新第一更新粒度后,继续对所测试内存执行步骤205。
步骤208:将当前使用的tWR确定为目标tWR.
当预充电后的内存无法正常工作时,此时使用的tWR确定为目标tWR。
步骤209:根据所述目标tWR确定内存使用时对应的tWR,其中,所述内存使用时对应的tWR大于所述目标tWR。
比如,当确定的目标tWR为5时,为了保证目标内存能够正常工作,所述内存使用时对应的tWR大于所述目标tWR,因此,可以将内存使用时的tWR设置为6。
步骤210:确定初始刷新参数。
在本实施例中,所测试内存为DRAM。当延长刷新时间时,意味着每次刷新数据的时间间隔变长,内存中一些保持数据能力较差的数据位经过更长时间的漏电可能由高电平变为低电平,导致数据发生错误。为了确定内存正常工作的刷新时间,本实施例中,选择初始刷新时间为32ms。
步骤211:利用初始刷新参数对内存进行刷新。
利用初始刷新时间,即32ms,对内存进行测试。
步骤212:判断刷新后的内存是否正常工作,若正常工作,则执行步骤213;否则,执行步骤214。
在本实施例中,刷新后的内存如果能正常工作,则更新刷新参数为64ms,继续对内存进行刷新,否则将当前使用的刷新参数32ms确定为目标刷新参数。
在本实施例中,可以通过判断是否发生数据丢失来确定刷新后的内存能 否正常工作,若发生了数据丢失,则表征内存无法正常工作,若未发生数据丢失,则表征内存能够正常工作。
步骤213:按照第二更新粒度对当前使用的刷新参数进行更新,并利用更新后的刷新参数对内存进行刷新,并执行步骤212。
在本发明一个实施例中,该第二更新粒度可以为1ms-32ms。
在本实施例中,第二更新粒度设置的越小,确定出的目标刷新参数越准确,第二更新粒度设置的越大,在确定出目标刷新参数时经过的刷新次数越少,所以,为了平衡目标刷新参数准确度和刷新效率,可以选择最佳的第二更新粒度对应的值。例如,
该刷新粒度为32ms。
由于初始刷新时间为32ms,那么利用第二更新粒度对该初始刷新时间进行更新后,得到更新后的刷新参数为64ms,即利用64ms执行步骤206。
步骤214:将当前使用的刷新参数确定为目标刷新参数。
当刷新后的内存无法正常工作时,此时使用的刷新时间确定为目标刷新时间。
步骤215:根据所述目标刷新参数确定内存使用时对应的刷新参数,其中,所述内存使用时对应的刷新参数小于所述目标刷新参数。
比如,当确定的目标刷新参数为64ms时,为了保证目标内存能够正常工作,所述内存使用时对应的刷新参数小于所述目标刷新参数,因此,可以将内存使用时的刷新参数设置为63ms。
步骤210至步骤215为内存刷新参数的确定步骤,该确定步骤可以发生在内存目标tWR的确定步骤之前,也可以发生在内存目标tWR的确定步骤之后。
如图3、图4所示,本发明实施例提供了一种内存参数的确定装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的内存参数的确定装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以 及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的内存参数的确定装置,包括:
第一设置单元401,用于设置第一更新粒度,将所述第一更新粒度输出给第一处理单元;
第一确定单元402,用于确定初始tWR,将所述初始tWR输出给预充电单元;
预充电单元403,用于根据当前tWR对内存进行预充电;
第一判断单元404,用于判断预充电后的内存是否正常工作,若正常工作,则触发第一处理单元执行相应操作;否则;触发第二确定单元执行相应操作;
第二确定单元405,用于将当前使用的tWR确定为目标tWR;
第一处理单元406,用于按照第一更新粒度对所述当前tWR进行更新,并触发所述预充电单元执行相应操作。
在本发明一个实施例中,请参考图5,该内存参数的确定装置可以进一步包括:
第三确定单元501,用于根据所述目标tWR确定内存使用时对应的tWR,其中,所述内存使用时对应的tWR大于所述目标tWR。
在本发明一个实施例中,请参考图6,所述预充电单元403,可以包括:
获取模块601,用于获取启动盘;
拷贝模块602,用于将tWR的设置程序和内存测试程序拷贝到所述启动盘中;
设置模块603,用于在所述启动盘中根据所述tWR的设置程序设置所述当前tWR;
处理模块604,用于根据内存测试程序读取设置的所述当前写tWR,并 根据读取的所述当前tWR对内存进行预充电。
在本发明一个实施例中,请参考图7,该内存参数的确定装置可以进一步包括:
第二设置单元701,用于设置第二刷新粒度,将所述第二刷新粒度输出给第二处理单元;
第四确定单元702,用于确定初始刷新参数,将所述初始刷新参数输出给刷新单元;
刷新单元703,用于利用初始刷新参数对内存进行刷新;
第二判断单元704,用于判断刷新后的内存是否正常工作,若正常工作,则触发第二处理单元执行相应操作;否则,触发第五确定单元执行相应操作;
第五确定单元705,用于将当前使用的刷新参数确定为目标刷新参数;
第二处理单元706,用于按照第二刷新粒度对所述初始刷新参数进行更新,并利用更新后的刷新参数对内存进行刷新,并触发所述第二判断单元执行相应操作。
在本发明一个实施例中,请参考图8,该内存参数的确定装置可以进一步包括:
第六确定单元,用于根据所述目标刷新参数确定内存使用时对应的刷新参数,其中,所述内存使用时对应的刷新参数小于所述目标刷新参数。
综上,本发明各个实施例具有如下效果:
1、本发明实施例提供了一种内存参数的确定方法及装置,通过确定初始tWR,将所述初始tWR作为当前使用的tWR,确定在内存中写入目标数据后,根据当前使用的tWR对内存进行预充电,判断预充电后的内存中是否包括所述目标数据,若包括,则按照所述第一更新粒度对当前使用的tWR进行更新,并利用更新后的tWR对内存进行预充电,直到确定出当前使用的tWR使得预充电后的内存无法正常工作时,将当前使用的tWR确定为目标tWR。本方案能准确地确定出内存参数。
2、在本发明实施例中,通过改变参数对内存进行测试,不但可以更快地 确定目标内存的参数,还可以筛选出故障内存和一些有风险的内存,有效的保障筛选后的内存在客户端稳定正常的工作,可以提高内存的稳定性和可靠性。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。