存储器测试方法

文档序号:6758266阅读:113来源:国知局
专利名称:存储器测试方法
技术领域
本发明涉及一种存储器测试方法,尤其涉及一种能够访问和测试计算机服务器系统或个人微电脑系统中4GB以上物理地址空间的存储器的存储器测试方法。
背景技术
随着计算机科技的快速发展,计算机服务器系统及个人微电脑系统的操作速度得到快速提升,为了满足程序对存储器容量需求的不断扩大,在计算机服务器系统及个人微电脑系统中所使用的物理存储器的实际存储空间也相应地随之增大,而存储器在前述的计算机服务器及微电脑结构中占有极重要的地位,只要有些微的错误发生在存储器之中,便极可能因数据产生错误或遗漏,而造成使用者极大的困扰,因此,定时对存储器进行访问并执行测试则显得尤为重要。一般来说,在计算机服务器及微电脑结构中都利用一可执行存储器检测算法的存储器测试软件(英文全称Memory Testing Tool)来进行存储器的测试,其是利用计算机中央处理单元来执行存储器测试软件,使得中央处理单元可访问存储器中所有地址空间并执行存储器检测算法对存储器的所有地址空间进行数据读写或数据存取,从而达到对存储器进行测试的目的。
目前,在32位的计算机服务器及一些高阶的个人微电脑中所使用的存储器的物理地址空间已经超过4GB(可达8GB甚至更高),然而,在一般现有的计算机服务器及个人微电脑架构之下,存储器测试软件仅能在DOS操作系统下的大真实模式(英文全称Big Real Mode)中来进行存储器的测试,众所周知,由于地址位数的限定,在具有32位地址线的计算机服务器及个人微电脑的大真实模式下,其系统中央处理单元执行存储器测试软件时仅能够寻址至4GB的地址空间,也就是说,4GB以上的地址空间对于32位机器来说,理论上已经无法进行访问和执行数据的读写或数据的存取,也就无法进行存储器的测试(因为从理论上讲,32位机器所具有的32条地址线,在全都发挥作用的情况下,所能寻址的物理地址空间最高可达4GB,对于4GB以上的存储器物理地址空间来说,该Intel 32位架构下的32位缓存器已经不可能访问得到),因此,在DOS操作系统下,对于32位计算机及微电脑系统中4GB以上的存储器空间进行访问和测试,仍是业内无法实现的一大难题。

发明内容
本发明所要解决的技术问题在于提供一种可面向大容量存储器(存储器的物理地址空间大于4GB)进行检测的存储器测试方法,该方法在操作系统的保护模式下,利用Intel公司提供的物理地址扩展(PAE)/页扩展(PSE)技术构建一地址转换页表结构,并可在待测试的存储器的物理地址空间超过4GB时,激活该地址转换页表及进行相关的缓存器的设定,将系统给定的32位线性地址转换成具有4GB以上物理地址空间的存储器的物理地址,从而实现对使用英特尔中央处理器的32位计算机服务器系统或个人微电脑系统中4GB以上的存储器地址空间进行访问及测试。
本发明所提供的一种存储器测试方法包括以下步骤激活操作系统(优选为DOS操作系统),并令系统进入存储器测试的保护模式;基于Intel公司提供的物理地址扩展(英文全称Physical Address Extension,简称PAE)/页扩展(英文全称Page Size Extension,简称PSE)技术,在存储器中创建一地址转换页表结构,用以在后续步骤中将系统给定的32位线性地址转换成具有4GB以上物理地址空间的存储器的物理地址;判断所测试的存储器的物理地址空间是否超过4GB;如超过4GB,则激活地址转换页表结构,将系统给定的32位线性地址转换为与存储器的实际物理地址相对应,并在系统中央处理器的控制下,依据该地址转换页表查询和访问存储器的实际物理地址,且执行存储器检测算法对存储器进行测试;以及如未超过4GB,则不激活地址转换页表结构,而在系统中央处理器的控制下,直接访问与系统给定的32位线性地址相对应的存储器的实际物理地址,并执行存储器检测算法对存储器进行测试。
另外,本发明的一种存储器测试方法还进一步包括如下步骤在存储器的控制缓存器CR3中装载一具有两级页表结构的页映像表;在存储器的控制缓存器CR4中设定线性地址第5位支持物理地址扩展(PAE)功能,并设定线性地址第4位的偏移大小;以及,在存储器的控制缓存器CR0中设定线性地址第31位以使系统中央处理器具有支持查表架构的功能。
综上所述,本发明的效果在于本发明的一种存储器测试方法,其利用Intel公司提供的物理地址扩展(PAE)/页扩展(PSE)技术构建一地址转换页表结构,并在待测试的存储器的物理地址空间超过4GB时,激活该地址转换页表及进行相关的缓存器的设定,将系统给定的32位线性地址转换成具有4GB以上物理地址空间的存储器的物理地址,并对该4GB以上的存储器地址空间进行访问及测试,从而解决了现有技术(特别是在DOS操作模式下)只能针对4GB以下的存储器空间进行测试而无法访问和测试4GB以上存储器地址空间的问题及缺陷,此外本发明的存储器测试方法,其可完全通过软件编程和相关程序设定而实现其技术效果,而无需添置新的硬件模块或进行系统硬件上的改变,从而在提高了存储器测试范围的同时节约了测试成本。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为本发明的一种存储器测试方法的整体步骤流程图;以及图2为与本发明的存储器测试方法相对应的存储器地址的简图。
其中,附图标记步骤101激活操作系统,并令系统进入存储器测试的保护模式步骤102在存储器中创建一地址转换页表结构步骤1021在存储器的控制缓存器CR3中装载一具有两级页表结构的页映像表步骤1022在存储器的控制缓存器CR4中设定系统线性地址第5位支持物理地址扩展(PAE)功能,并设定线性地址第4位的偏移大小步骤1023在存储器的控制缓存器CR0中设定系统线性地址第31位以使系统中央处理器具有支持查表架构的功能步骤103判断待测存储器的物理地址空间是否超过4GB步骤104激活地址转换页表结构,依据地址转换页表查询和访问存储器的实际物理地址,并执行存储器检测算法对存储器进行测试步骤105关闭地址转换页表结构步骤106不激活地址转换页表结构,直接访问与系统32位线性地址相对应的存储器的实际物理地址,并执行存储器检测算法对存储器进行测试。
具体实施例方式
以下,将结合附图对本发明的优选实施方式作详细说明。
如图1所示,该图为本发明的一种存储器测试方法的整体步骤流程图。如图所示,本发明的一种存储器测试方法,应用于使用英特尔中央处理器的计算机服务器系统或个人微电脑系统中的存储器检测过程中,该方法包括以下步骤激活操作系统,并令系统进入存储器测试的保护模式(步骤101),该步骤中的操作系统优选为DOS操作系统。
在存储器中创建一地址转换页表结构(步骤102),用以在后续步骤中将系统给定的32位线性地址转换成具有4GB以上物理地址空间的存储器的物理地址,该步骤102中的地址转换页表结构是基于Intel公司提供的物理地址扩展(英文全称Physical Address Extension,简称PAE,其特点是可将系统原有的物理地址线加以扩展)/页扩展(英文全称Page Size Extension,简称PSE,其特点是可对建立存储器地址表的格式起作用)技术而构建的。
本发明的存储器测试方法,其运用上述物理地址扩展(PAE)/页扩展(PSE)技术构建地址转换页表结构的具体步骤还进一步包括在存储器的控制缓存器CR3中装载一具有两级页表结构的页映像表(步骤1021),其中,该页映像表的第一级为页目录索引表,由系统线性地址第30位和第31位组成,可建立00、01、10、11共4个表项,该页映像表的第二级为包含有对应物理地址空间页页码的页表,由系统线性地址第21位至第29位组成,共可建立512个表项,因此,该两级页表结构的页映像表一共可建立4×512=2048张页表;在存储器的控制缓存器CR4中设定系统线性地址第5位支持物理地址扩展(PAE)功能,并设定该线性地址第4位的偏移大小(步骤1022),其中线性地址第4位的偏移大小被设定为Set it是4M,Clear it是2M,需要说明的是此处控制缓存器CR4的实际状态是如果先Clear控制缓存器CR4的第5位,再做Set使其第4位大小为4M;否则,在不先清除控制缓存器CR4第5位的情况下,Set该控制缓存器CR4的第5位,无论第4位是0或1,都表示其大小是2M;以及在存储器的控制缓存器CR0中设定系统线性地址第31位以使系统中央处理器具有支持查表架构的功能(步骤1023),从而令系统中央处理器可以在后续步骤中访问到4GB以上的存储器空间,当然,如果将控制缓存器CR0的32位Clear(清除),则系统中央处理器便可以访问4GB以下的存储器空间。
判断所测试的存储器的物理地址空间是否超过4GB(步骤103)如超过4GB,则激活地址转换页表结构,将系统给定的32位线性地址转换为与存储器的实际物理地址相对应,并在系统中央处理器的控制下,依据该地址转换页表查询和访问存储器的实际物理地址,且执行存储器检测算法对存储器进行测试(步骤104),其中存储器检测算法是通过向存储器中所有物理地址空间内写入特定的数值,然后再读出该数值与原数值进行对比从而实现存储器测试的各种存储器检测算法。
当完成对存储器的实际物理地址的访问及存储器测试后,关闭地址转换页表结构(步骤105)。以及如未超过4GB,则不激活地址转换页表结构,而在系统中央处理器的控制下,直接访问与系统给定的32位线性地址相对应的存储器的实际物理地址,并执行存储器检测算法对存储器进行测试(步骤106),其中存储器检测算法是通过向存储器中所有物理地址空间内写入特定的数值,然后再读出该数值与原数值进行对比从而实现存储器测试的各种存储器检测算法。
至此,本发明的存储器测试方法的步骤全部执行完毕,其通过在两种测试手段的间的变换,令系统中央处理器既可以访问4GB以上也可以访问4GB以下的存储器地址空间,并利用存储器测试软件来执行存储器检测算法对4GB以上或4GB以下的存储器的所有地址空间进行数据读写或数据存取,从而实现对目前存储器容量范围内(大于4GB或小于等于4GB)的所有存储器进行测试的目的。此外,本发明的存储器测试方法不仅适用于DOS操作系统下的存储器检测,只要是采用Intel中央处理器(CPU)的计算机服务器系统或个人微电脑系统,无论其处于何种操作系统模式下,均可通过本发明的存储器测试方法进行存储器的检测。
如图2所示,该图为与本发明的存储器测试方法相对应的存储器地址的简图。如图所示,根据本发明的存储器测试方法创建一地址转换页表结构以及对系统中的存储器的控制缓存器CR3、CR4和CR0进行相关设定后,该系统线性地址第31位和第30位负责建立起两级页表结构的页映像表的第一级,为一页目录索引表,其用以索引指向至页映像表的第二级,总共可以建立00、01、10、11共4个表项。
系统线性地址第29位至第21位负责建立页映像表的第二级页表,为包含有对应物理地址空间页页码的页表,其由系统线性地址第21位至第29位所组成,共可建立512个表项,因此,该两级页表结构的页映像表一共可建立4×512=2048张页表。
系统线性地址第20位至第0位是建表必须的属性位,其含义是在存储器中的某一个地方构建表格,并填写对应的物理地址,当页映像表建表完成后,如果系统要访问的是4GB以上的地址空间,则在控制缓存器CR0中设定系统线性地址第31位以使系统中央处理器(CPU)进入“翻译”过程,即令系统中央处理器具有支持查表架构的功能。
下面,将通过一实例简单加以说明,假如,我们给定的某个线性地址为0x80040000,它将根据上述设定访问存储器地址空间的方法是如果其线性地址的第31位和第30位是10,那么系统将访问00、01、10、11四个表项中的第三个表项,即10表项;如果线性地址的第22位和第21位是10,则访问地址偏移2处(从页目录索引表指向的第三张表项处,再从线性地址第21至29位得到0x002,从0处为起始,2表示偏移2处的位置),从中取出地址再加上线性地址的后20位就是我们所要访问和测试的存储器的实际物理地址(因为之前我们只查找了线性地址的第21位至第31位,但并没有算线性地址的后20位,所以得到的地址必须加上线性地址0x80040000的后20位,可是碰巧这后20位都是0,所以从页表中取出的地址就是要访问和测试的实际物理地址,当然,此时要访问和检测的已经是4GB以上的存储器地址了。
本发明的效果在于本发明的一种存储器测试方法,其利用Intel公司提供的物理地址扩展(PAE)/页扩展(PSE)技术构建一地址转换页表结构,并在待测试的存储器的物理地址空间超过4GB时,激活该地址转换页表及进行相关的缓存器的设定,将系统给定的32位线性地址转换成具有4GB以上物理地址空间的存储器的物理地址,并对该4GB以上的存储器地址空间进行访问及测试,从而解决了现有技术(特别是在DOS操作模式下)只能针对4GB以下的存储器空间进行测试而无法访问和测试4GB以上存储器地址空间的问题及缺陷,此外本发明的存储器测试方法,其可完全透过软件编程和相关程序设定而实现其技术效果,而无需添置新的硬件模块或进行系统硬件上的改变,从而在提高了存储器测试范围的同时节约了测试成本。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种存储器测试方法,应用于使用英特尔中央处理器的计算机服务器系统或个人微电脑系统中的存储器检测过程,其特征在于,该方法包括以下步骤激活操作系统,并令系统进入存储器测试的保护模式;在存储器中创建一地址转换页表结构,用以在后续步骤中将系统给定的32位线性地址转换成具有4GB以上物理地址空间的存储器的物理地址;判断所测试的存储器的物理地址空间是否超过4GB;如超过4GB,则激活所述地址转换页表结构,将系统给定的32位线性地址转换为与所述存储器的实际物理地址相对应,并在系统中央处理器的控制下,依据该地址转换页表查询和访问所述存储器的实际物理地址,且执行存储器检测算法对该存储器进行测试;以及如未超过4GB,则不激活所述地址转换页表结构,而在所述系统中央处理器的控制下,直接访问与系统给定的32位线性地址相对应的所述存储器的实际物理地址,并执行存储器检测算法对该存储器进行测试。
2.根据权利要求1所述的方法,其特征在于,还包括如下步骤在激活所述地址转换页表结构,并完成对所述存储器的实际物理地址的访问及存储器测试后,关闭该地址转换页表结构。
3.根据权利要求1或2所述的方法,其特征在于,所述地址转换页表结构是基于Intel公司提供的物理地址扩展/页扩展技术而构建的。
4.根据权利要求3所述的方法,其特征在于,进一步包括如下步骤在存储器的控制缓存器CR3中装载一具有两级页表结构的页映像表;在存储器的控制缓存器CR4中设定所述线性地址第5位支持所述物理地址扩展功能,并设定该线性地址第4位的偏移大小;以及在存储器的控制缓存器CR0中设定所述线性地址第31位以使所述系统中央处理器具有支持查表架构的功能。
5.根据权利要求4所述的方法,其特征在于,所述页映像表的第一级为页目录索引表,由所述线性地址第30位和第31位组成,可建立00、01、10、11共4个表项。
6.根据权利要求4所述的方法,其特征在于,所述页映像表的第二级为包含有对应物理地址空间页页码的页表,由所述线性地址第21位至第29位组成,共可建立512个表项。
7.根据权利要求4所述的方法,其特征在于,所述线性地址第4位的偏移大小为4M或2M。
8.根据权利要求1所述的方法,其特征在于,所述操作系统为DOS操作系统。
9.根据权利要求1所述的方法,其特征在于,所述存储器检测算法是通过向存储器中所有物理地址空间内写入特定的数值,然后再读出该数值与原数值进行对比从而实现存储器测试的各种存储器检测算法。
全文摘要
本发明公开了一种存储器测试方法,包括以下步骤激活操作系统,令系统进入存储器测试的保护模式;在存储器中创建一地址转换页表;判断待测存储器的物理地址空间是否超过4GB;若是,激活地址转换页表,将系统给定的32位线性地址转换为与存储器的实际物理地址相对应,并在系统中央处理器的控制下,依照地址转换页表查询和访问存储器的实际物理地址,且执行存储器检测算法进行存储器测试;若不是,则在系统中央处理器的控制下,直接访问与系统的32位线性地址相对应的存储器的实际物理地址,并执行存储器检测算法进行存储器测试。采用本发明可以访问和测试4GB以上存储器地址空间的问题及缺陷,从而在提高了存储器测试范围的同时节约了测试成本。
文档编号G11C29/00GK1920783SQ200510093300
公开日2007年2月28日 申请日期2005年8月24日 优先权日2005年8月24日
发明者丁怀亮, 陈玄同, 刘文涵 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1