一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

内存参数适配方法、装置、终端设备及存储介质与流程

2022-04-30 17:14:12 来源:中国专利 TAG:


1.本技术属于嵌入式技术领域,尤其涉及一种内存参数适配方法、装置、终端设备及存储介质。


背景技术:

2.嵌入式设备的存储、运行内存有限,内存型号各不相同,内存初始化的参数通常随具体硬件的不同而不同。新产品开发者在设计嵌入式设备的印制电路板(printed circuit board,pcb)和进行内存选型时,由于实际设计与参考设计通常有所出入,故如何选择内存的参数较为关键。现有技术是芯片厂商提供指导,开发者根据经验自行调整某些参数进行测试,对开发者的经验要求较高,而且耗时较长,适配效率较低。


技术实现要素:

3.本技术实施例提供了一种内存参数适配方法、装置、终端设备及存储介质,以提高内存参数的适配效率。
4.第一方面,本技术实施例提供了一种内存参数适配方法,所述内存参数适配方法包括:
5.获取n个内存参数的m组第一参数取值,每组所述第一参数取值是n个所述内存参数的一种取值组合,m为大于1的整数,n为大于零的整数;
6.基于m组所述第一参数取值分别对待测设备中的内存进行第一压力测试;
7.若m组所述第一参数取值中所述第一压力测试成功的第二参数取值的组数大于h,则从n个所述内存参数在所有组的所述第二参数取值中的所有取值中,确定n个所述内存参数的候选取值,一个所述内存参数的候选取值是指该内存参数在所有组的所述第二参数取值中出现频率超过频率阈值的取值,h为大于1且小于m的整数;
8.将n个所述内存参数的候选取值进行组合,得到第三参数取值;
9.从所有组的所述第三参数取值中确定目标参数取值,所述目标参数取值是使所述内存的稳定性达到预设要求的n个所述内存参数的取值。
10.第二方面,本技术实施例提供了一种内存参数适配装置,所述内存参数适配装置包括:
11.第一获取模块,用于获取n个内存参数的m组第一参数取值,每组所述第一参数取值是n个所述内存参数的一种取值组合,m为大于1的整数,n为大于零的整数;
12.第一测试模块,用于基于m组所述第一参数取值分别对待测设备中的内存进行第一压力测试;
13.第一确定模块,用于若m组所述第一参数取值中所述第一压力测试成功的第二参数取值的组数大于h,则从n个所述内存参数在所有组的所述第二参数取值中的所有取值中,确定n个所述内存参数的候选取值,一个所述内存参数的候选取值是指该内存参数在所有组的所述第二参数取值中出现频率超过频率阈值的取值,h为大于1且小于m的整数;
14.取值组合模块,用于将n个所述内存参数的候选取值进行组合,得到第三参数取值;
15.第二确定模块,用于从所有组的所述第三参数取值中确定目标参数取值,所述目标参数取值是使所述内存的稳定性达到预设要求的n个所述内存参数的取值。
16.第三方面,本技术实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的内存参数适配方法的步骤。
17.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的内存参数适配方法的步骤。
18.第五方面,本技术实施例提供了一种计算机程序产品,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行如上述第一方面所述的内存参数适配方法的步骤。
19.由上可见,本技术通过获取n个内存参数的m组第一参数取值,并基于m组第一参数取值对待测设备中的内存进行第一压力测试,如果第一压力测试成功的第二参数取值的组数大于h,则可以基于每个内存参数的取值在所有组的第二参数取值中的出现频率,将出现频率较高的取值作为内存参数的候选取值,在此基础上,将n个内存参数的候选取值进行组合,可以得到组数小于第二参数取值的第三参数取值,因此相比于第一参数取值和第二参数取值,从所有组的第三参数取值中确定目标参数取值,可缩小每个内存参数的取值的搜索范围,从而提高内存参数的适配效率。
附图说明
20.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1是本技术实施例一提供的内存参数适配方法的实现流程示意图;
22.图2是ddr的初始化的流程图;
23.图3是初始化和第一压力测试的流程示例图;
24.图4是本技术实施例二提供的内存参数适配方法的实现流程示意图;
25.图5是内存参数的搜索流程示例图;
26.图6是本技术实施例三提供的内存参数适配装置的结构示意图;
27.图7是本技术实施例四提供的终端设备的结构示意图。
具体实施方式
28.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
29.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
30.还应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
31.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
32.为了方便理解,本实施例以双倍速率同步动态随机存储器(double data rate synchronous dynamic random access memory,ddr sdram)为例进行描述,但这并不构成对待测设备中内存的限定。其中,ddr sdram也可以简称为ddr。
33.应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
34.为了说明本技术所述的技术方案,下面通过具体实施例来进行说明。
35.参见图1,是本技术实施例一提供的内存参数适配方法的实现流程示意图,该内存参数适配方法应用于终端设备。如图1所示,该内存参数适配方法可以包括以下步骤:
36.步骤101,获取n个内存参数的m组第一参数取值。
37.其中,n个内存参数是待测设备中的内存的n个参数。待测设备中内存可以理解为需要适配或者配置参数的内存。每组第一参数取值是n个内存参数的一种取值组合,m为大于1的整数,n为大于零的整数。
38.n个内存参数包括但不限于内存的类型、频率、控制/读/写通道的物理参数、自定义寄存器赋值等。以ddr为例,上述内存的类型可以是ddr的至少一种类型,例如可以为ddr3、ddr4、ddr3l、lpddr3等。内存的控制通道的物理参数包括但不限于地址信号驱动强度、时钟信号驱动强度等。内存的读通道的物理参数包括但不限于动态随机存取存储器(dynamic random access memory,dram)输出驱动强度、ddr物理接口数据信号片上端接阻抗等。内存的写通道的物理参数包括但不限于ddr物理接口数据信号驱动强度、dram数据总线片上端接阻抗等。内存的自定义寄存器赋值可以用于调整一些其他参数,例如用户自定义的参数。
39.每个内存参数有至少一种取值。例如,对于ddr的类型,其可以有ddr3、ddr4、ddr3l、lpddr3等四种取值。
40.m组第一参数取值是n个内存参数的m种取值组合。
41.作为一可选实施例,上述获取n个内存参数的m组第一参数取值,包括:
42.获取n个内存参数的s组初始参数取值,每组初始参数取值是n个内存参数的一种取值组合,s为大于或者等于m的整数;
43.基于s组初始参数取值分别对内存进行初始化;
44.确定初始化成功的初始参数取值为第一参数取值。
45.如图2所示是ddr的初始化的流程图,主要包括ddr锁相环(phase locked loop,pll)配置、ddr控制器初始化、ddr物理接口初始化和ddr训练。
46.通过对内存进行初始化,可以对s组初始参数取值进行初步筛选,以筛选掉初始化失败的初始参数取值,保留初始化成功的初始参数取值,从而可缩小每个内存参数的取值的搜索范围,提高内存参数的适配效率。
47.在一示例中,可以先获取每个内存参数的所有取值,对n个内存参数的所有取值进行组合,可以得到s组初始参数取值,s为n个内存参数的所有取值的总组合数。例如,以n个内存参数中的四个内存参数为例,为了方便描述,这四个内存参数可以分别称之为第一内存参数、第二内存参数、第三内存参数和第四内存参数,第一内存参数有六种取值,第二内存参数有四种取值,第三内存参数有四种取值,第四内存参数的有一种取值,那么这四个内存参数可以构成九十六(即四个内存参数的取值数量的乘积)种取值组合,即可以得到九十六组初始参数取值,基于九十六组初始参数取值分别对内存进行初始化,确定有四十八组初始参数取值对内存的初始化成功,那么可以确定m为四十八,即上述四十八组初始化成功的初始参数取值为四十八组第一参数取值。
48.步骤102,基于m组第一参数取值分别对待测设备中的内存进行第一压力测试。
49.其中,第一压力测试用于测试内存的稳定性。本技术对第一压力测试的测试用例不做限定,例如第一压力测试可以是高带宽用例、高功耗用例、多模块用例等。高带宽用例用于测试内存在持续高速读写情况下的稳定性。高功耗用例用于测试内存在待测设备高负载情况下的稳定性。多模块用例是指待测设备中多个硬件模块同时工作读写内存,例如中央处理器(central processing unit,cpu)、直接存储器访问(direct memory access,dma)模块、数字信号处理器(digital signal processor,dsp)、视频编解码模块等同时工作读取内存。多模块用例用于测试内存在复杂业务运行时的稳定性。
50.以第i组第一参数取值为例,第i组第一参数取值是m组第一参数取值中的任一组第一参数取值,i为大于零且小于或者等于m的整数。基于第i组第一参数取值对待测设备中的内存进行第一压力测试可以是指:先将待测设备中的内存的n个内存参数的取值分别设置为第i组第一参数取值中的对应取值,然后对设置好n个内存参数的取值的内存进行第一压力测试。例如,第i组第一参数取值为(a1,b1,c2,d),a1是第一内存参数的取值,b1为第二内存参数的取值,c2为第三内存参数的取值,d为第四内存参数的取值,先将待测设备中的内存的第一内存参数、第二内存参数、第三内存参数和第四内存参数分别设置为a1、b1、c2、d,再对设置好这四个内存参数的取值的内存进行第一压力测试。
51.在一实施例中,如果m组第一参数取值中对内存的第一压力测试成功的第二参数取值的组数小于或者等于h,则说明n个内存参数的取值可搜索范围较小,可能搜索不到能够使内存达到较好稳定性的取值,在此情况下,可以发出提示,提示用户更换第一压力测试失败的第一参数取值,以提供更多的可供筛选的取值,提高能够搜索到使内存达到较好稳定性的取值的概率。
52.如图3所示是初始化和第一压力测试的流程示例图。在图3中,终端设备可以通过串口向待测设备输入搜索配置,该搜索配置包括但不限于s组初始参数取值、每组参数取值的重启次数、单次测试时间、测试用例、最大轮数(即s)、是否跳过失败的参数、失败后是否
立即重启、是否根据每轮组数变化自动增加单次测试时间等;输入搜索配置之后,可以基于当前组初始参数取值进行ddr初始化,并判断初始化是否成功;如果初始化失败则重启待测设备;如果初始化成功则判断是否仅测试初始化,如果仅测试初始化则重启待测设备,如果还需要进行第一压力测试则进行第一压力测试,并判断第一压力测试是否成功,如果第一压力测试成功则将初始化成功和第一压力测试成功的当前组初始参数取值(即第二参数取值)标记为成功,并重启待测设备(可以多次重启,以确保第一参数取值的稳定性);重启待测设备之后,判断是否达到最大轮数,如果未达到最大轮数则判断是否更换下一组初始参数取值,如果更换则基于下一组初始参数取值则返回执行ddr初始化的步骤以及后续步骤,直到达到最大轮数。
53.步骤103,若m组第一参数取值中第一压力测试成功的第二参数取值的组数大于h,则从n个内存参数在所有组的第二参数取值中的所有取值中,确定n个内存参数的候选取值。
54.其中,第二参数取值是第一压力测试成功的第一参数取值。
55.一个内存参数的候选取值是指该内存参数在至少两组第二参数取值中出现频率超过频率阈值的取值。可选地,针对每个内存参数,可以预先设置频率阈值。例如,频率阈值为第一内存参数有六种取值,这六种取值分别为(a1,a2,a3,a4,a5,a6),第一内存参数在四十八组第一参数取值中的取值分别为(a1,a4,a5,a6),a1在四十八组第一参数取值中的出现频率为a4在四十八组第一参数取值中的出现频率为a5在四十八组第一参数取值中的出现频率为a6在四十八组第一参数取值中的出现频率为根据频率阈值可以筛选出第一内存参数的候选取值为(a4,a5,a6)。
56.步骤104,将n个内存参数的候选取值进行组合,得到第三参数取值。
57.将n个内存参数的候选取值进行组合,可以得到组数小于第二参数取值的第三参数取值,因此从所有组的第三参数取值中选取目标参数取值,可以提高内存参数的适配效率。
58.示例性的,第一内存参数的候选取值为(a4,a5,a6),第二内存参数的候选取值为(b1,b2,b3),第三内存参数的候选取值为(c2,c3),第四内存参数的候选取值为d。将这四个内存参数的候选取值进行组合,可以得到十八组第三参数取值,相比于四十八组第一参数取值,将搜索范围缩小到了十八组,提高了内存参数的适配效率。
59.步骤105,从所有组的第三参数取值中确定目标参数取值。
60.其中,目标参数取值是使内存的稳定性达到预设要求的n个内存参数的取值。
61.示例性的,在十八组第三参数取值中,如果(a4,b2,c3,d)能够使内存的稳定性达到预设要求,则可以确定(a4,b2,c3,d)为目标参数取值。
62.需要说明的是,目标参数取值的组数可能为一组,也可以能为至少两组。在目标参数取值的组数为至少两组时,可以显示至少两组目标参数取值,在接收到至少两组目标参数取值中任一组目标参数取值的选择操作时,确定被选中的目标参数取值中的n个取值为n个内存参数的最终取值,即根据用户选择确定n个内存参数的最终取值;也可以针对每个内
存参数,将该内存参数在至少两组目标参数取值中的所有取值的中值作为该内存参数的最终取值。在一个内存参数的有多个取值时,由于中值不受偏大或者偏小取值的影响,能够代表所有取值的一般水平,故选择所有取值中的中值作为最终取值较为合适。
63.本技术实施例通过获取n个内存参数的m组第一参数取值,并基于m组第一参数取值对待测设备中的内存进行第一压力测试,如果第一压力测试成功的第二参数取值的组数大于h,则可以基于每个内存参数的取值在所有组的第二参数取值中的出现频率,将出现频率较高的取值作为内存参数的候选取值,在此基础上,将n个内存参数的候选取值进行组合,可以得到组数小于第二参数取值的第三参数取值,因此相比于第一参数取值和第二参数取值,从所有组的第三参数取值中确定目标参数取值,可缩小每个内存参数的取值的搜索范围,从而提高内存参数的适配效率。
64.参见图4,是本技术实施例二提供的内存参数适配方法的实现流程示意图,该内存参数适配方法应用于终端设备。如图4所示,该内存参数适配方法可以包括以下步骤:
65.步骤401,获取n个内存参数的m组第一参数取值。
66.该步骤401与步骤101相同,具体可参见步骤101的相关描述,在此不再赘述。
67.作为一可选实施例,在获取m组第一参数取值之前,可以先获取待测设备的参考设备中n个内存参数的取值;基于参考设备中n个内存参数的取值对内存进行第四压力测试;若第四压力测试失败,则获取n个内存参数的m组第一参数取值。
68.其中,参考设备可以是指与待测设备存在一个或者多个硬件情况较为接近的嵌入式设备。上述硬件包括但不限于pcb、ddr频率、颗粒型号等。
69.在获取m组第一参数取值,可以先借鉴参考设备中n个内存参数的取值,尝试用参考设备中n个内存参数的取值进行第四压力测试,如果测试成功则可以直接将参考设备中n个内存参数的取值作为待测设备中n个内存参数的最终取值,无需进行取值搜索,提高了内存参数的适配效率。
70.作为一可选实施例,若第四压力测试失败,则获取n个内存参数的m组第一参数取值,包括:
71.若第四压力测试失败,则根据参考设备与待测设备的硬件差异,调整参考设备中至少一个内存参数的取值,得到n个内存参数的备选取值;若n个内存参数中存在已调整内存参数和未调整内存参数,则确定n个内存参数的备选取值包括已调整内存参数的调整后取值和未调整内存参数的取值;若n个内存参数均是已调整内存参数,则确定n个内存参数的备选取值包括n个已调整内存参数的调整后取值;已调整内存参数是指调整取值的内存参数;所述未调整内存参数是指未调整取值的内存参数;
72.基于n个内存参数的备选取值对内存再次进行第四压力测试;
73.若第四压力测试再次失败,则获取n个内存参数的m组第一参数取值。
74.以pcb、ddr频率和颗粒型号为例介绍是否需要调整参考设备中n个内存参数的取值。为了方便描述,将待测设备中的内存称之为待测内存,参考设备中的内存为参考内存。具体调整如下:
75.(1)针对参考内存与待测内存的颗粒型号和ddr频率相同,pcb不同的情况(例如待测内存为新产品或者新硬件结构等情况)。
76.如果相比于参考内存,待测内存的ddr布局布线不变,pcb其他部分变动,则通常无
需调整参考设备中n个内存参数的取值;
77.如果相比于参考内存,待测内存的ddr布局布线发生变化,则可以根据第四压力测试失败的具体情况并参考以往经验调整参考设备中n个内存参数的取值;
78.如果相比于参考内存,待测内存的电源供电修改,则通常无需调整参考设备中n个内存参数的取值;
79.如果相比于参考内存,待测内存的pcb层数修改且信号质量有衰减,则可以根据第四压力测试失败的具体情况并参考以往经验调整参考设备中n个内存参数的取值;
80.如果相比于参考内存,待测内存去除端接电阻,则调整控制通道(例如时钟信号、地址信号)驱动强度。
81.(2)针对参考内存与待测内存的pcb和ddr频率相同,颗粒型号不同的情况(例如待测内存为新产品、工作温度范围发生变化、降成本、原型号颗粒停产等情况)。
82.如果参考内存与待测内存为同一厂家,相同容量,不同规格(例如最高频率不同、工作温度范围不同等),则通常无需调整参考设备中n个内存参数的取值;
83.如果参考内存与待测内存为同一厂家,不同流片版本,则可以根据第四压力测试失败的具体情况并参考以往经验调整参考设备中n个内存参数的取值;
84.如果参考内存与待测内存为同一厂家,不同容量,则可以仅修改容量的取值;
85.如果参考内存与待测内存为不同厂家,相同容量,则可以根据第四压力测试失败的具体情况并参考以往经验微调参考设备中n个内存参数的取值。
86.(3)针对参考内存与待测内存的pcb和颗粒型号相同,ddr频率不同的情况(例如性能需求变化的情况),可以仅修改ddr频率的取值。
87.(4)针对参考内存与待测内存的pcb、颗粒型号、ddr频率中两个以上因素不同的情况,可以根据第四压力测试失败的具体情况并参考以往经验微调参考设备中n个内存参数的取值。
88.如果基于参考设备中n个内存参数的取值对内存的第四压力测试失败,则判定参考设备中n个内存参数的取值无法使内存的稳定性达到预设要求,可以通过选择调整某些内存参数的取值后再次对内存进行第四压力测试失败,如果第四压力测试成功则可以确定调整后的取值即为最终取值,如果第四压力测试再次失败则获取m组第一参数取值,以从大范围取值中自动搜索最终取值。
89.需要说明的是,本技术对第四压力测试的测试用例和测试时间不做限定。例如,第四压力测试的测试用例可以与步骤408中的第三压力测试的测试用例相同,第四压力测试的测试时间可以与步骤408中的第三压力测试的测试时间相同。
90.步骤402,基于m组第一参数取值分别对待测设备中的内存进行第一压力测试。
91.该步骤402与步骤102相同,具体可参见步骤102的相关描述,在此不再赘述。
92.步骤403,若m组第一参数取值中第一压力测试成功的第二参数取值的组数大于h,则从n个内存参数在所有组的第二参数取值中的所有取值中,确定n个内存参数的候选取值。
93.该步骤403与步骤103相同,具体可参见步骤103的相关描述,在此不再赘述。
94.步骤404,将n个内存参数的候选取值进行组合,得到第三参数取值。
95.该步骤404与步骤104相同,具体可参见步骤104的相关描述,在此不再赘述。
96.步骤405,若第三参数取值的组数大于l,则将所有组的第三参数取值作为参考参数取值。
97.其中,l为大于1且小于m的整数。
98.如果第三参数取值的组数大于l,则说明需要搜索的取值范围还比较大,可以先基于第三参数取值对内存进行中等时间的压力测试(即第二压力测试),以进一步缩小搜索范围。
99.步骤406,基于所有组的参考参数取值分别对内存进行第二压力测试。
100.其中,第二压力测试的测试时间大于第一压力测试的测试时间。例如,第一压力测试的测试时间的取值范围为2分钟至10分钟,第二压力测试的测试时间的取值范围为30分钟至6小时。
101.步骤407,若所有组的参考参数取值中第二压力测试成功的第四参数取值的组数大于l,则将第四参数取值作为参考参数取值,并调整第二压力测试的测试参数。
102.其中,第二压力测试的测试参数包括第二压力测试的测试时间和/或测试用例类型。
103.在执行步骤407之后,通过返回执行基于所有组的参考参数取值分别对内存进行第二压力测试的步骤以及后续步骤,可以逐渐缩小搜索范围,使得对内存的第二压力测试成功的参数取值的组数小于或者等于l。
104.步骤408,若第四参数取值的组数大于零且小于或者等于l,则基于所有的第四参数取值对内存进行第三压力测试,并确定第三压力测试成功的第四参数取值为目标参数取值。
105.其中,第三压力测试的测试时间大于第二压力测试的测试时间。例如,第三压力测试的测试时间的取值范围为大于12小时。
106.如果第四参数取值的组数大于零且小于或者等于l,则说明需要搜索的取值范围比较小,可以直接基于第四参数取值对内存进行长时间的压力测试(即第三压力测试),以进一步缩小搜索范围,从所有组的第四参数取值中查找能够使内存的稳定性达到预设要求的目标参数取值。其中,如果某一组第四参数取值对内存的第三压力测试成功,则说明该组第四参数取值为目标参数取值。
107.步骤409,若第三参数取值的组数大于零且小于或者等于l,则基于所有的第三参数取值对所述内存进行第三压力测试,并确定第三压力测试成功的第三参数取值为目标参数取值。
108.如果第三参数取值的组数大于零且小于或者等于l,则说明需要搜索的取值范围比较小,可以直接基于第三参数取值对内存进行长时间的压力测试(即第三压力测试),以进一步缩小搜索范围,从所有组的第三参数取值中查找能够使内存的稳定性达到预设要求的目标参数取值。其中,如果某一组第三参数取值对内存的第三压力测试成功,则说明该组第三参数取值为目标参数取值。
109.在一实际应用场景中,内存参数的搜索流程示例图如图5所示。在图5中可以先借鉴参考设备中n个内存参数的取值,并基于参考设备的n个内存参数的取值对待测设备中的内存进行第四压力测试,如果第四压力测试成功则确定参考设备的n个内存参数的取值为n个内存参数的最终取值,并结束流程;如果第四压力测试失败,则可以调整n个内存参数中
的个别内存参数的取值,并基于调整后的取值对内存进行第四压力测试,如果成功则确定调整后的取值为最终取值,如果失败则可以先基于m组第一参数取值进行大范围搜索,然后基于第三参数取值自动缩小搜索范围,最后再基于第四参数取值进行小范围压力测试(即在第四参数取值的组数大于零且小于或者等于l时,对第四参数取值进行第三压力测试)。
110.本技术实施例通过对内存进行多次测试时间不同的压力测试,可以逐渐缩小搜索范围,从而提高内存参数的最终取值的准确度,且本技术的搜索过程无需人工参与,提高了取值的搜索效率,提高了内存参数的适配效率。
111.需要说明的是,本技术对内存的压力测试环境不做限定。例如,在有高低温变化的环境时,可以先在高低温变化的环境中对内存进行压力测试,以得到能够使内存的稳定性较强的内存参数的取值;如果在高低温变化的环境中的高温区间或者低温区间内存的稳定性表现较差,则可以单独在恒定高温环境或者恒定低温环境中对内存进行压力测试,以加快内存参数的取值的筛选。当然,也可以先在常温环境中对内存进行压力测试,再依次在恒定高温环境或者高低温变化的环境中对内存进行压力测试,在此不做限定。其中,具体的温度数值可以根据内存的工作要求确定。
112.可选地,第一压力测试、第二压力测试、第三压力测试和第四压力测试的测试用例,可以完全相同,可以部分相同,也可以不同,在此不做限定。
113.参见图6,是本技术实施例三提供的内存参数适配装置的结构示意图,为了便于说明,仅示出了与本技术实施例相关的部分。
114.上述内存参数适配装置包括:
115.第一获取模块61,用于获取n个内存参数的m组第一参数取值,每组所述第一参数取值是n个所述内存参数的一种取值组合,m为大于1的整数,n为大于零的整数;
116.第一测试模块62,用于基于m组所述第一参数取值分别对待测设备中的内存进行第一压力测试;
117.第一确定模块63,用于若m组所述第一参数取值中所述第一压力测试成功的第二参数取值的组数大于h,则从n个所述内存参数在所有组的所述第二参数取值中的所有取值中,确定n个所述内存参数的候选取值,一个所述内存参数的候选取值是指该内存参数在所有组的所述第二参数取值中出现频率超过频率阈值的取值,h为大于1且小于m的整数;
118.取值组合模块64,用于将n个所述内存参数的候选取值进行组合,得到第三参数取值;
119.第二确定模块65,用于从所有组的所述第三参数取值中确定目标参数取值,所述目标参数取值是使所述内存的稳定性达到预设要求的n个所述内存参数的取值。
120.可选地,上述第二确定模块65具体用于:
121.参数确定单元,用于若所述第三参数取值的组数大于l,则将所有组的所述第三参数取值作为参考参数取值,l为大于1且小于m的整数;
122.压力测试单元,用于基于所有组的所述参考参数取值分别对所述内存进行第二压力测试,所述第二压力测试的测试时间大于所述第一压力测试的测试时间;
123.参数调整单元,用于若所有组的所述参考参数取值中所述第二压力测试成功的第四参数取值的组数大于l,则将所述第四参数取值作为所述参考参数取值,并调整所述第二压力测试的测试参数,返回执行所述压力测试单元以及后续单元,所述第二压力测试的测
试参数包括所述第二压力测试的测试时间和/或测试用例类型;
124.第一处理单元,用于若所述第四参数取值的组数大于零且小于或者等于l,则基于所有的所述第四参数取值对所述内存进行第三压力测试,并确定所述第三压力测试成功的所述第四参数取值为所述目标参数取值,所述第三压力测试的测试时间大于所述第二压力测试的测试时间;
125.第二处理单元,用于若所述第三参数取值的组数大于零且小于或者等于l,则基于所有的所述第三参数取值对所述内存进行所述第三压力测试,并确定所述第三压力测试成功的所述第三参数取值为所述目标参数取值。
126.可选地,上述内存参数适配装置还包括:
127.取值显示模块,用于若所述目标参数取值的组数为至少两组,则显示至少两组所述目标参数取值;
128.取值选择模块,用于在接收到对至少两组所述目标参数取值中任一组所述目标参数取值的选择操作时,确定被选中的所述目标参数取值中的n个取值为n个所述内存参数的最终取值。
129.可选地,上述内存参数适配装置还包括:
130.中值确定模块,用于若所述目标参数取值的组数为至少两组,则针对每个所述内存参数,将该内存参数在至少两组所述目标参数取值中的所有取值的中值作为该内存参数的最终取值。
131.可选地,上述内存参数适配装置还包括:
132.第二获取模块,用于获取所述待测设备的参考设备中n个所述内存参数的取值;
133.第二测试模块,用于基于所述参考设备中n个所述内存参数的取值对所述内存进行第四压力测试;
134.上述第一获取模块61具体用于:
135.若所述第四压力测试失败,则获取n个所述内存参数的m组所述第一参数取值。
136.可选地,上述第一获取模块61具体用于:
137.若所述第四压力测试失败,则根据所述参考设备与所述待测设备的硬件差异,调整所述参考设备中至少一个所述内存参数的取值,得到n个所述内存参数的备选取值;若n个所述内存参数中存在已调整内存参数和未调整内存参数,则确定n个所述内存参数的备选取值包括所述已调整内存参数的调整后取值和所述未调整内存参数的取值;若n个所述内存参数均是已调整内存参数,则确定n个所述内存参数的备选取值包括n个所述已调整内存参数的调整后取值;所述已调整内存参数是指调整取值的所述内存参数;所述未调整内存参数是指未调整取值的所述内存参数;
138.基于n个所述内存参数的备选取值对所述内存再次进行所述第四压力测试;
139.若所述第四压力测试再次失败,则获取n个所述内存参数的m组所述第一参数取值。
140.可选地,上述上述第一获取模块61具体用于:
141.获取n个所述内存参数的s组初始参数取值,每组所述初始参数取值是n个所述内存参数的一种取值组合,s为大于或者等于m的整数;
142.基于s组所述初始参数取值分别对所述内存进行初始化;
143.确定初始化成功的所述初始参数取值为所述第一参数取值。
144.本技术实施例提供的内存参数适配装置可以应用在前述方法实施例一和实施例二中,详情参见上述方法实施例一和实施例二的描述,在此不再赘述。
145.图7是本技术实施例四提供的终端设备的结构示意图。如图7所示,该实施例的终端设备7包括:一个或多个处理器70(图中仅示出一个)、存储器71以及存储在所述存储器71中并可在所述至少一个处理器70上运行的计算机程序72。所述处理器70执行所述计算机程序72时实现上述各个内存参数适配方法实施例中的步骤。
146.所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
147.所称处理器70可以是神经网络芯片,该处理器还可以是cpu、其他通用处理器、dsp、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
148.所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
149.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
150.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
151.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
152.在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以
通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
153.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
154.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
155.所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
156.本技术实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行时实现可实现上述各个内存参数适配方法实施例中的步骤。
157.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献