内存检测系统及其检测方法技术方案

技术编号:7271741 阅读:297 留言:0更新日期:2012-04-15 18:48
一种内存检测系统其包括用于执行指令的用户层模块。用户层模块包括判断单元和获取单元。判断单元用于判断内存是否合格,若内存不合格,则输出获取信号。获取单元用于接收获取信号获取内存中不合格位置的虚拟地址。内存检测系统还包括通信模块和内核层模块。内核层模块包括处理单元。获取单元还用于发送获取地虚拟地址给通信模块。通信模块将虚拟地址发送给处理模块。处理单元用于将接收到的虚拟地址转换为对应的物理地址。本发明专利技术还提供了一种内存检测方法。

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及一种用于检测内存本体的。
技术介绍
现有技术中,电子产品出厂前均需对硬件设备进行检测,避免不良产品流入市场, 影响电子产品质量。对内存进行检测时,其通过在用户模式下运行内存诊断程序对内存进行检测。当检测到内存出错时,其可获得内存出错的位置,由于程序的运行均采用虚拟地址,所以获得内存出错位置也为虚拟地址。由于虚拟地址为系统随机分配的,研究人员不能根据虚拟地址定位出内存出错的具体位置,不能针对获得的虚拟地址对出现这种错误的原因进行分析。
技术实现思路
有鉴于此,有必要提供一种可定位物理地址的内存检测系统。另外,必要提供一种可定位物理地址的内存检测方法。一种内存检测系统,其包括用于执行指令的用户层模块。用户层模块包括判断单元和获取单元。判断单元用于判断内存是否合格,若内存不合格,则输出获取信号。获取单元用于接收获取信号获取内存中不合格位置的虚拟地址。内存检测系统还包括通信模块和内核层模块。内核层模块包括处理单元。获取单元还用于发送获取地虚拟地址给通信模块。 通信模块将虚拟地址发送给处理模块。处理单元用于将接收到的虚拟地址转换为对应的物理地址。一种内存检测方法,该方法用于定位虚拟地址对应的物理地址,该内存检测方法包括如下步骤判断内存是否合格,若内存不合格,获取内存中不合格位置的虚拟地址;将虚拟地址转换为对应的物理地址。通过使用上述内存检测系统及内存检测方法,可根据出错位置的虚拟地址定位内存出错的物理地址,使得研究人员可根据物理地址对内存进行分析。附图说明 图1为一较佳实施方式的内存检测系统的模块图。 图2为一较佳实施方式的内存检测方法的流程图。 主要元件符号说明 内存检测系统100 用户层模块10 通信模块20 内核层模块30判断单元101获取单元103显示单元105检测单元301处理单元302内存检测方法步骤S40具体实施例方式请参看图1,其为一种内存检测系统100的模块图。该内存检测系统100可以检测内存并对不良内存的物理地址进行定位。其中,内存检测系统100包括用户层模块10、通信模块20和内核层模块30。用户层模块10不可运行CPU特权指令,且对系统数据、内存地址及硬件资源的访问具有一定限制。内核层允许执行任何CPU指令,并可无限制地访问系统数据、地址和硬件资源。内存检测系统100若需要运行CPU特权指令或访问被限制的内存地址及硬件资源时,用户层模块10通过通信模块20发送请求和数据到内核层模块30,内核层模块30接收该请求和数据运行CPU特权指令或访问被限制的内存地址及硬件资源。用户层模块10包括判断单元101、获取单元103及显示单元105。判断单元101用于判断内存是否合格。若内存合格时,则输出通过信号;若内存不合格,则输出获取信号。显示单元105用于接收通过信号并显示合格信息。在本实施方式中,该合格信息可以为文字信息、图像信息、声音信息或者文字信息、图像信息与声音信息的组合。获取单元103用于接收获取信号获取内存不合格位置的虚拟地址,将该虚拟地址发送给通信模块20。在本实施方式中,该获取单元103通过调用程序开发接口发送I/O请求包(I/O Request package, IPR)给通信模块20,该I/O请求包包括I/O控制码、用户请求及虚拟地址。通信模块20用于将有效的虚拟地址发送给内核层模块30。在本实施方式中,该通信模块20为应用程序接口。内核层模块30包括检测单元301和处理单元302。检测单元301用于检测接收到的虚拟地址是否有效,并将有效的虚拟地址发送给处理单元302。处理单元302用于将有效的虚拟地址转换为物理地址,并将物理地址发送给通信模块20。在本实施方式中,该处理单元302首先将虚拟地址的前十位进行偏移得到页目录(PDE,Page Directory Entry),然后将中间十位进行偏移得到页表项(PTE,Page Table Entry),将页表项的高二十位与虚拟地址的后十二位相加得到虚拟地址对应的物理地址。通信模块20还用于将接收到的物理地址发送给用户层模块10。显示单元105还用于接收通信模块20发送的物理地址并显示。请参看图2,其为内存检测方法的流程图,该方法应用于内存诊断程序中,主要用于根据不符合要求的虚拟地址定位对应的物理地址。该内存检测方法包括如下步骤步骤S401,在用户层下的判断内存是否合格。若内存不合格,则输出获取信号并进入步骤S402 ;若内存合格,则产生合格信息进入步骤S407。步骤S402,在用户层下获取内存中不合格位置的虚拟地址。步骤S403,将获取的虚拟地址通过应用程序接口发送给内核层。在本实施方式中, 通过调用程序开发接口发送I/O请求包(I/O Requestpackage, IPR)给内核层,该I/O请求包包括I/O控制码、用户请求及虚拟地址。步骤S404,在内核层下检测虚拟地址是否有效。若该虚拟地址有效,则进入步骤 S405 ;若该虚拟地址无效,则返回步骤S402。步骤S405,在内核层下转换虚拟地址为对应的物理地址。步骤S406,内核层通过应用程序接口发送物理地址给用户层并显示。步骤S407,在用户层下显示合格信息。在本实施方式中,该合格信息可以为文字信息、图像信息、声音信息或者文字信息、图像信息与声音信息的组合。本
的普通技术人员应当认识到,以上的实施方式仅是用来说明本专利技术, 而并非用作为对本专利技术的限定,只要在本专利技术的实质精神范围之内,对以上实施例所作的适当改变和变化都落在本专利技术要求保护的范围之内。权利要求1.一种内存检测系统,其包括用于执行指令的用户层模块,该用户层模块包括判断单元和获取单元;该判断单元用于判断内存是否合格,若内存不合格,则输出获取信号;该获取单元用于接收获取信号获取内存中不合格位置的虚拟地址,其特征在于该内存检测系统还包括通信模块和内核层模块,该内核层模块包括处理单元,该获取单元还用于发送获取地虚拟地址给该通信模块,该通信模块将虚拟地址发送给该处理模块,该处理单元用于将接收到的虚拟地址转换为对应的物理地址。2.如权利要求1所述的内存检测系统,其特征在于该内核层模块还包括检测单元,该检测单元用于检测该虚拟地址是否有效,若该虚拟地址有效,则该检测单元发送该有效虚拟地址给该处理单元。3.如权利要求2所述的内存检测系统,其特征在于该用户层模块还包括显示单元,该处理单元还用于将转换的物理地址发送该通信模块,该通信模块将物理地址发送给该显示单元,该显示单元用于接收该物理地址并显示。4.如权利要求1所述的内存检测系统,其特征在于该通信模块为应用程序接口。5.如权利要求1所述的内存检测系统,其特征在于若该内存良好,则该判断单元输出通过信号,该显示单元接收通过信号并显示合格信息。6.如权利要求5所述的内存检测系统,其特征在于该合格信息可以为文字信息、图像信息、声音信息或者文字信息、图像信息与声音信息的组合。7.一种内存检测方法,该方法用于定位虚拟地址对应的物理地址,该内存检测方法包括如下步骤判断内存是否合格,若内存不合格,获取内存中不合格位置的虚拟地址;将虚拟地址转换为对应的物理地址。8.如权利要求7所述的内存检测方法,其特征在于在将虚拟地址转换为对应的物理地址之前包括将虚拟地址通过本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:郭明睿马坤
申请(专利权)人:鸿富锦精密工业深圳有限公司鸿海精密工业股份有限公司
类型:发明
国别省市:

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

1
相关领域技术