一种PMON下基于龙芯64位处理器的内存测试方法技术

技术编号:20484322 阅读:22 留言:0更新日期:2019-03-02 18:45
本发明专利技术提供了一种PMON下基于龙芯64位处理器的内存测试方法。本发明专利技术的方法,使用汇编语言编写,随着PMON启动自动开始进行全覆盖测试,测试最先通过不同模式的数据读写某固定地址测试数据线,接着通过在所有有效地址写入地址值再回读所有地址测试地址线,然后以内存内部BANK为单位连续写入多种不同模式的数据再回读对比进行普通访存测试,最后对地址空间分组,选定组内偏移,对偏移位置和其他位置写入固定的原码和反码这种跳跃、连续混合形式的读写进行压力更高的特殊访存测试。由此在龙芯64位处理器平台上实现物理内存全覆盖、启动自测、提供较高测试压力的内存测试目的,进而能加速硬件系统研发阶段的快速测试工作,并同时可初步对内存稳定性提供证明。

【技术实现步骤摘要】
一种PMON下基于龙芯64位处理器的内存测试方法
本专利技术涉及内存测试
,特别是指一种PMON下基于龙芯64位处理器的内存测试方法。
技术介绍
随着国家对信息安全、芯片自主可控的重视程度不断提高,国产处理器正处于高速发展的阶段,并被使用在越来越广泛的情形中。龙芯系列处理器作为国产处理器中的一个重要组成成员,在市场占有率方面有相当一部分比重,属于使用范围比较广、使用率比较高的国产处理器。其中,龙芯64位处理器可用于对处理性能有一定要求的场景,通常配备较大容量的内存,运行规模较大的操作系统。内存作为运行程序的关键载体,其可用性、稳定性是要通过一定的测试方法来长期测试予以保证。对于内存测试,特别是DDR内存的测试,目前一些针对不同重点的测试项目,比如地址线测试、数据线测试,已经有比较成熟的理论和通用可行的测试方案。在其它处理器平台上,比如ARM、x86,都有成熟的、易于使用的内存测试方案或软件产品可以让用户很轻松的完成内存测试。目前龙芯处理器平台使用的PMON和Linux也已经有内存测试程序,比如PMON中的newmt(C语言编写)和Test_Mem(汇编编写),Linux系统下中的stressapptest,但是这些内存测试程序的方法实现不尽相同,其中newmt和stressapptest提供的测试方法相对完整,但需要较高的人工参与度,不能嵌入到启动流程中做自测试,不利于硬件系统研发过程中的快速自动测试。而Test_Mem虽然可以加入启动流程进行自动测试,但是测试项目少、方法过于简单,不能达到检测内存稳定性的目的。并且在龙芯64位处理器的平台上,整个PMON程序是按照32位设计和编译的,而Linux虽使用64位的内核却挂接32位的用户空间,由于MIPS架构默认的虚拟地址映射以及应用二进制接口(ABI)的局限性,C语言编写的程序无法覆盖全部物理内存测试。同时由于PMON或Linux自身运行要占用一部分内存,这部分内存也不能被测试使用。综上所述,龙芯处理器平台的已有测试程序无法覆盖所有的DDR内存空间。如何在龙芯64位处理器平台上同时实现全覆盖、启动自测、压力测试这些特性的内存测试方法则是现有技术条件下有待解决的问题。
技术实现思路
本专利技术的目的是针对上述龙芯处理器平台现有内存测试技术存在的问题提供一种PMON下基于龙芯64位处理器的内存测试方法,以达到物理内存全覆盖、启动自测、提供较高测试压力的目的。为实现本专利技术所述目的,本专利技术提供一种PMON下基于龙芯64位处理器的内存测试方法,步骤如下:1)采用汇编语言编写测试代码;2)将测试代码入口嵌入到PMON启动的数据段和代码段拷贝逻辑之前,进行启动自测,同时要避免程序本身对内存空间的部分占用,也不影响后续启动动作;3)进行数据线测试,选定某个内存物理地址,反复读写相同宽度、不同模式的数据并比对;4)进行地址线测试,将所有有效内存物理地址写入地址值,确保所有地址保存的值不同,再读取所有地址的值与地址值比对;5)进行内存块连续读写测试,对所有有效内存物理地址以内存颗粒内部BANK为单位进行连续写多种模式的固定数据,再进行连续回读和比对;6)进行内存块特殊访存测试,对所有有效内存物理地址进行分组,对每个组相同偏移的地址进行写入相同原码值,再将反码写入剩下所有地址,回读每个组的原码值部分进行比对。所述的汇编语言采用MIPS64指令集。所述的PMON的版本为龙芯64位处理器配套使用的版本。所述的内存为DDR2、DDR3中的一种。本专利技术的一种PMON下基于龙芯64位处理器的内存测试方法,将随着PMON的加载自动运行,对内存进行基本测试,也以特殊方式对内存读写进行测试。相对于的现有技术,测试能全覆盖所有物理内存、启动自测、提供较高测试压力。由此在硬件系统研发期间能进行快速自动测试,并可初步对内存稳定性提供证明。附图说明图1为本专利技术的软件流程图。具体实施方式图1为本专利技术的软件流程图。从图1中可以看出,本专利技术的一种PMON下基于龙芯64位处理器的内存测试方法,首先,在步骤S1、S2、S7中的启动流程和逻辑由PMON提供支持。接着,在步骤S2完成后,由内存测试程序暂时接管启动逻辑,并暂停启动逻辑的继续执行。其中,所述启动逻辑必须至少已经完成处理器核心部分初始化和DDR内存控制器的初始化,否则内存测试将不能正确执行。其中,所述内存测试程序必须完全使用汇编语言编写,否则C语言编写的PMON程序部分为32位,将不能完全访问所有物理内存空间,导致测试覆盖率不足。并且此时启动内存测试程序存放在NorFlash和处理器缓存中,其自身的运行完全不依赖内存,进而不会因为程序自身占用导致部分内存无法被测试。上述的内存测试程序对内存的访问全部通过CACHED地址空间,确保测试数据通过处理器高速缓存进行写入和读取。由于高速缓存会以缓存行(CacheLine)为单位进行读写,可提高测试期间DDR内存的访存压力。接着,在步骤S3中,优先进行DDR数据线测试,数据线正确性是后续测试的基础。选取两个至少相差8字节的DDR内存地址作为读写的目标地址,每次读写数据位宽为DDR内存最大数据位宽,即64位。选定以下固定数据用作读写使用:0xaaaaaaaaaaaaaaaa,0xcccccccccccccccc,0xf0f0f0f0f0f0f0f0,0xff00ff00ff00ff00,0xffff0000ffff0000,0xffffffff00000000。反复向上述选取的两个目标地址分别写入选定的数据值和其反码,再分别回读比对。若回读值与写入值相同,则测试通过。如果测试失败,可通过实际回读值与期望回读值的对比情况分析数据线短路或断路的情况。接着,在步骤S4中,进行DDR地址线测试。其中不同型号的龙芯处理器在DDR地址线/数据线、DDR物理地址、CPU虚地址的映射关系会有所不同,需要根据实际使用的DDR内存容量确定地址范围。范围确定之后,每个8字节为间隔的地址都写入其自身的地址值,确保每个写入点的写入值都完全不同。所有的可用内存地址写入完成后,对所有写入过的地址进行回读,如果回读值与当前读取的地址值相同,则测试通过。如果测试失败,可通过整体的回读情况,分析地址线短路断路的情况。接着,在步骤S5中,进行内存连续读写测试。该测试沿用上述确定地址范围工作的成果。之后,按8字节间隔的地址、以DDR内部BANK为单位,连续写入相同固定数据值;所有BANK写入完成后,再读取所有有效地址的数据并比对,若数据没有发生变化,则改变固定数据的值再测试下一轮。其中,上述的固定数据有:0xffffffffffffffff,0x0000000000000000,0xaaaaaaaaaaaaaaaa,0x5555555555555555。接着,在步骤S6中,进行内存特殊读写测试。该测试可以比步骤S5的测试项目提供更高的测试压力。先将整个内存空间划分成N个组,每个组由M个双字(8字节)组成,组内每个双字偏移值则相应的为0~M-1。其中,M和N皆为2的次幂。选定一个偏移值,将所有组的相同偏移值对应的双字地址写入相同固定值,再将所有组其它的双字地址写入上述固定值的反码,接着回读所有组中上述相同偏移值的双子地址并比对读取的数据值是否等于写本文档来自技高网
...

【技术保护点】
1.一种PMON下基于龙芯64位处理器的内存测试方法,其特征在于包括这些步骤:1)采用汇编语言编写测试代码;2)将测试代码入口嵌入到PMON启动的数据段和代码段拷贝逻辑之前,进行启动自测,同时要避免程序本身对内存空间的部分占用,也不影响后续启动动作;3)进行数据线测试,选定某个内存物理地址,反复读写相同宽度、不同模式的数据并比对;4)进行地址线测试,将所有有效内存物理地址写入地址值,确保所有地址保存的值不同,再读取所有地址的值与地址值比对;5)进行内存块连续读写测试,对所有有效内存物理地址以内存颗粒内部BANK为单位进行连续写多种模式的固定数据,再进行连续回读和比对;6)进行内存块特殊访存测试,对所有有效内存物理地址进行分组,对每个组相同偏移的地址进行写入相同原码值,再将反码写入剩下所有地址,回读每个组的原码值部分进行比对。

【技术特征摘要】
1.一种PMON下基于龙芯64位处理器的内存测试方法,其特征在于包括这些步骤:1)采用汇编语言编写测试代码;2)将测试代码入口嵌入到PMON启动的数据段和代码段拷贝逻辑之前,进行启动自测,同时要避免程序本身对内存空间的部分占用,也不影响后续启动动作;3)进行数据线测试,选定某个内存物理地址,反复读写相同宽度、不同模式的数据并比对;4)进行地址线测试,将所有有效内存物理地址写入地址值,确保所有地址保存的值不同,再读取所有地址的值与地址值比对;5)进行内存块连续读写测试,对所有有效内存物理地址以内存颗粒内部BANK为单位进行连续写多种模式的固定数据,再进行连续...

【专利技术属性】
技术研发人员:吴昌昊龚俊李泽银
申请(专利权)人:中国兵器装备集团自动化研究所
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1