一种内存测试方法和系统的制作方法_2

文档序号:8261390阅读:来源:国知局
区域分别设计相应的压力算法,并对其进行代码实现,其中,在对压力算法进行代码实现时,需设计出能够将各压力算法的压力按需施加至相应解析区域的地址构造函数。
[0056]由于内存满载测试的本质是尽量让DDR(Double Data Rate,双倍速率同步动态随机存储器)控制器持续处于工作状态,并最大限度的使用代码制造不利于DDR控制器访问内存的情况,测试在高压力运行条件下,测试代码(如本申请中的压力算法代码)操作内存数据是否出错,且测试代码需能使用CPU (Central Processing Unit,中央处理器)当前所有的处理能力(优选在bootloader下进行测试),因此,所设计的各压力算法及压力算法代码实现中的地址构造函数应以上述内容为前提,以保证在测试过程中尽量使待测内存物理地址的各解析区域处于高压、满载状态。
[0057]地址构造函数的执行效率和构造地址的访问是本发明模拟系统内存压力极限的关键。更尚的执彳丁效率意味着CPU可以更快地访冋内存相关地址,进而可以更快地广生尚压力的波形和更高的信号占空比(即高负载),为此,本发明采用将地址构造函数编译成汇编代码以提升执行效率。
[0058]实际应用本发明时,可采用软件系统的形式实现本发明方法的各步骤处理逻辑。在以上预处理的基础上,用户可在所述软件系统上通过相应的配置过程,并触发压力添加请求实现向待测内存物理地址的各解析区域配置、关联相应的压力算法。
[0059]S102:将所述压力算法关联至目标解析区域。
[0060]当软件系统接收到用户对相应解析区域的压力添加请求后,将压力算法关联至待测内存物理地址的相应解析区域,以实现为测试过程中,调用所关联的算法为物理地址的相应解析区域施加相应负载提供支持。
[0061]如图2所示,本实施例为待测内存的物理地址所包含的5个解析区域分别关联了压力算法1、压力算法2……压力算法5。
[0062]S103:在为所述各预设解析区域分别关联相应的压力算法后,接受用户分别对各预设参数项所设定的参数值;所述各预设参数项为预先集成的、实现内存测试所需的参数项。
[0063]为待测内存物理地址的各解析区域配置、关联了相应的压力算法之后,需继续对测试所需的相关参数项进行取值设定,合适的参数设置和结果输出相配合,可更有效地确认内存的稳定性、可靠性等访问性能。
[0064]基于此,本实施例预先在所述软件系统中集成了一系列测试所需的基本参数项,例如,是否使用cache、读写模型,校验值类型、是否加入DMA (Direct Memory Access,直接内存访问)等,并在后台分别对所述参数项的具体内容进行了代码实现,譬如假设读写模型包括 WffRR (Write-Write-Read-Read,写写读读)和 WRWR(Write-Read_Write-Read,写读写读),则在后台分别对WWRR和WRWR这两个读写模型进行了代码实现。
[0065]其中,使用cache与否分别为进行内存满载测试所采用的不同的访问测试模型。使用cache从本质上讲,即是希望CPU获取数据时能够命中cache,以提升数据的交换速度,然而若每次访问都未能命中cache,则该机制非但不会提升反而会降低数据访问速度。因此,进行内存测试时,若选择使用cache,则为了更加有效地测试内存的访问性能,可在实现代码时,尽量使每次数据访问都不能命中cache。
[0066]读写模型,基本组合包括两种:WWRR和WRWR。WffRR是让CPU按照函数计算地址后将所有数据轮询写入,然后再轮询读出、校验。WRWR是让CPU按照函数计算地址后马上写入当前数据并随即读出来校验,其他数据亦重复采用即读即写的模式。其中,WffRR模型在一段时间内,DDR控制器要么长期处于读操作,要么长期处于写操作,读写交替的周期较长,因此,读写操作的变更不会对硬件体现出较大的压力,而WRWR则可通过其读写操作的不断变换给硬件带来较大压力,因此,进行测试时可优选采用WRWR模型。
[0067]需要说明的是,实际应用本发明时,技术人员可依据具体的测试需求,自行设计所需的读写模型进行内存测试。
[0068]校验值类型包括两种:定值和随机值,其中,定制是指信号线(数据线,地址线)极限反转,随机值是指信号线随机反转。在内存测试过程中,随机值会让DDR控制器的数据线或地址线之间的噪音组合情况更加复杂,其主要可对硬件布线带来压力;而定值测试是根据burst (突发脉冲)预取优化措施,设置的55aa型,它可以让burst采样内的数据线极限反转,对于DDR控制器对数据线的拉高拉低,有着访问极限的压力。
[0069]当为待测内存物理地址的各解析区域分别关联相应的压力算法后,用户可在软件系统中对所集成的是否使用cache、读写模型、校验值类型、是否加入DMA等各个参数项的具体取值进行设定。
[0070]除此之外,本申请还对内存测试的一些影响因素进行了综合考虑和评估,包括不兼容评估、基于DDR类别的节约功耗方案评估等。
[0071]不兼容评估:这是针对多核的一个选项,若测试时具体是启动多核(多核CPU)进行测试,则需要规避核间内存访问在性能上的冲突,使得多核和核内的压力不至于相互抵消,从而更好地模拟系统压力。具体地,可通过对地址构造函数进行相应设计,例如,将地址构造函数设计为选择访问彼此间压力不冲突的的物理地址,来保证在多核运行的任何时亥IJ,不会彼此抵消各自的压力。
[0072]基于DDR类别的节约功耗方案评估:DDR,DDR2,DDR3协议中有部分节约功耗的方案,而节约功耗的时间内,不能对电源方案造成压力,同时对高压力产生的不稳定的电平信号有恢复作用,不利于压力的长时间产生,因此本发明使用代码规避了节约功耗状况的产生。
[0073]S104:接收用户的内存测试请求,基于所设定的各预设参数项取值并调用所关联的各压力算法进行内存测试。
[0074]在以上各步骤的基础上,用户可在软件系统上执行相应操作,来触发内存测试请求,开始内存测试;当软件系统接收到用户请求后,基于所设定的各参数项取值(如启动所选的读写模型),调用、执行所关联的各压力算法模拟系统内存的满负载压力,并通过地址构造函数访问内存,实现内存测试。
[0075]测试过程中,用户可通过观测内存的各项指标,如读写是否出错,出错时间(即测试多长时间后出错)等,来评估系统内存的稳定性、可靠性等访问性能。
[0076]由以上方案可知,本发明接收用户的压力添加请求,该请求包括压力算法和目标解析区域,所述目标解析区域为待测内存的物理地址所包含的各个预设解析区域中的任意一个区域;之后,将所述压力算法关联至所述目标解析区域;在为各预设解析区域分别关联相应的压力算法后,接受用户分别对预先集成的各预设参数项所设定的参数值;在此基础上,接收用户的内存测试请求,基于所设定的各参数值,并调用所关联的各压力算法进行内存测试。可见,本发明可通过软件模拟系统内存满负载运行的具体场景,进而实现内存满载测试,不需专门的硬件设备,成本低、代价小,为内存满载测试的展开和实施带来了便利。
[0077]实施例二
[0078]本实施例二中,参考图3,所述方法还可以包括以下步骤:
[0079]S105:为待测内存所在的印制电路板PCB配置预设的温湿度环境,以实现在预设的温湿度环境下测试内存。
[0080]本实施例在运行代码(如压力算法的代码等)进行内存测试的同时,结合硬件,如温湿度试验箱向待测内存所在的PCB板施加一定的温、湿度环境,以验证具体温、湿度环境下PCB板内存是否稳定、可靠,是否达到预期标准。
[0081]实施例三
[0082]本实施例三中,参考图4,所述方法还可以包括以下步骤:
[0083]S106:采集预设数据线及预设时钟线的电压信号,并显示所采集电压信号的电压波形,以供用户依据所显示的电压波形验证满负载内存测试的有效性。
[0084]其中,所述预设数据线及预设时钟线分别为连接DDR控制器与待测内存的数据线、时钟线。
[0085]本实施例通过考察预设数据线及时钟线的采样波形,对本发明模拟系统内存满负载压力测试的有效性进行验证,参考图5,图5为数据线极限反转时示波器上信号波形的截图。其中,粉红色是数据线O的信号波形,浅绿色是数据线O对应的时钟信号的信号波形(即时钟线的信号波形);横、纵坐标分别为时间、电压;配置参数为:非cache,WWRR,数据线定值检测(0x55,Oxaa),地址线随机检测。
[0086]由图5可以看出,没有采样波形的时候,数据线和时钟线都是大波动趋于稳定的,此现象说明本申请在时序上尽可能地造成了采样波形的不稳定性,由此可知,本申请模拟的内存负载在内存时序上是非常有效的;同时,图5中采样波形的占空比较大,表征所模拟的内存负载已接近于系统极限,从而证明本申请可有效模拟系统内存满载运行。
[0087]此外,由图5还可以发现,在数据线的采样波形中,数据线O—
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1