多适应性内存探测方法

文档序号:6603623阅读:268来源:国知局
专利名称:多适应性内存探测方法
技术领域
本发明涉及一种探测方法,特别涉及一种计算机等电子设备中的内存的探测方法。
背景技术
在现有技术中,对于内存测试技术,其测试环境大多只能局限于DOS环境下,而且测试项目也只包括探测内存的实际容量等有限信息。
对于批量的计算机生产线上的内存测试,目前也大多是针对具体情况和具体测试要求,分别具体定制测试方法,因此往往谈不到广泛的适用性与扩展性,一旦产品换型,或有了新的要求,或者测试系统升级,则只能重新安排并制定测试方法。
显然,这样做所耗费的人力和时间都是不容忽视的,更无法应对现今的电子产业的发展速度。而且,在对内存的测试内容上,只是探测到内存的容量是不够的,随着市场需求的变化和发展,越来越需要对内存信息进行全方位的探测,包括对内存的有效大小、物理组成、各物理单位的容量、物理位置及内存面(Bank)信息(内存条在面(Bank)的插放顺序)等的探测。
然而,现有的内存探测方法根本无法满足上述要求。因此,面对这种状况,非常需要一个简易、便利的方法来解决此一问题。

发明内容
有鉴于此,本发明为解决上述问题而提出一种多适应性内存探测方法,其可适用于多种主流操作系统(如可适用于DOS、windows、及Windows NT等),并且可全面的探测内存信息,包括对内存的有效大小、物理组成、各物理单位的容量、物理位置及内存面(Bank)信息等。
本发明提供一种多适应性内存探测方法,应用于一支持Plug and Play的系统中,该方法至少包括如下步骤
探测并记录PnP BIOS串的头部信息;获取SM BIOS的版本号;轮巡DMI结构体,根据该版本号探测到记载有内存设备信息的特定结构体;及从该特定结构体中,导出有关的内存信息。
所述的多适应性内存探测方法,其中该探测PnP BI0S串的头部信息的步骤,是通过段值和偏移量建立远指针而实现的,如果找到PnP头部信息,则记录该信息,否则,将段地址加1,继续探测。
所述的多适应性内存探测方法,其中该获取SMBIOS的版本号的步骤,是通过调用DMI BIOS功能函数50h而实现的。
所述的多适应性内存探测方法,其中该轮巡DMI结构体的步骤是通过调用DMI BIOS功能函数51h而实现的。
所述的多适应性内存探测方法,其中所述根据该版本号探测到记载有内存设备信息的特定结构体的步骤,如果版本号低于2.3,则DMI第6结构体记载有内存设备信息;而在版本号2.3之后,则第17结构体中记载有内存设备的信息。
本发明提供了一种多适应性内存探测方法,其不仅突破了以往测试内存环境只适用于保护模式的瓶颈,使内存测试技术可延伸至多种主流操作系统(可适用于DOS、WINDOWS以及WINDOWS NT等);而且,更进一步扩展了内存测试的项目,使其不仅可以探测到内存的实际容量,还可以探测出机器中内存总共的条数、每条内存的容量以及BANK信息等数据。总之,本发明完善了内存测试的内容,规范了测试的流程,使其满足各种各样的测试要求,并具有普遍的适用性,适合于大规模的生产线上测试。
有关本发明的特征与技术,配合附图及最佳实施例详细说明如下。


图1为本发明的多适应性内存探测方法的接口示意图;及图2为本发明的多适应性内存探测方法的流程图。
附图标记说明步骤201探测并记录PnP BIOS串的头部信息步骤202获取SMBIOS的版本号步骤203轮巡DMI结构体,根据该版本号探测到记载有内存设备信息的特定结构体步骤204从该特定结构体中,导出有关的内存信息具体实施方式
本发明提供一种多适应性内存探测方法,其是通过调用一管理接口(Desktop Management Interface,DMI)基本输入输出系统(BasicInput/Output System,BIOS)中的功能函数,在内存模块指定的文件中进行指定,然后通过公用的总控接口和控制模块解析该功能,然后在公用的总控接口可显示其结构信息,利用功能模块对其实现控制浏览。
众所周知,DMI是管理计算机系统资源的一种有效方法,通过DMI可以获知系统的类型、执行能力、工作状态、安装数据和其它一些系统信息。DMI可以在支持它的机器上定义出便于管理的系统资源存储信息,可是由于它们并没有统一的接口,所以一般情况下很难访问到这些记录的数据,只用通过系统的BIOS功能函数提供的接口进行访问。系统管理(System Management)BIOS提供了访问这些数据的接口,并可以把信息存储在特定的结构体中。而PnP(Plug and Play)则提供了访问System Management BIOS的数据接口。因此待测系统必须支持Plug and Play。为了防止在与SMBIOS进行数据交换时产生分支,SMBIOS支持PnP适用的系统设备节点的架构,并且适用PnP BIOS功能函数访问SMBIOS的接口,如图1所示。
在系统支持PnP的基础上,可以利用此表中的功能函数51h,把每个类型结构体中特定的信息写入到缓冲区。每个结构体都包括一个指向SMBIOS公用体的句柄(handle)。如果结构体的大小为零,则可以得到SMBIOS的首个结构体信息。如果结构体返回完成标志DMI_SUCCESS或DMI无效句柄(handle)时,在列表指针还没到OFFFFh时,更新下一个连续的结构体。此功能函数既可以在实模式下运行,也可在16位保护模式下实现。
随着SMBIOS版本的提升和功能的不断增强,一些新的数据结构定义也陆续出现,其所包括的系统架构资源信息也更加丰富。所以,判定当前系统的BIOS版本就有着十分重要的意义,它是系统特定资源的判定条件。
通过BIOS51号功能调用可以访问第6结构体一Memory ModuleInformation。在系统中每一个内存模块都用一个与其对应的Memory ModuleInformation Structure。通过结构体可以反映出内存模块的大小,访问速度、类型等特征。
第6结构体(Memory Module Information)

在SMBIOS 2.3版本之后,可以支持调用BIOS51号功能去访问17号结构体(Memory Device)。不管当前系统插槽中是否已经安装了内存,每个功能模块中的系统信息都要在结构体中体现出来。
第17结构体(Type 17)


从memory Device端口12h可以得到每条内存的类型,这条信息可探测内存的实际容量,校验内存在插槽中的排放顺序以及内存条的组合信息提供了必要的依据,可以根据不同的Type值,来判断在不同机器插槽中内存的类型。

从以上两组结构体中可以看出,Type6和Type17包括的信息十分广泛,不仅能测出内存的容量及面(bank)信息,还能探明内存的类型、组成因素、运行速度等内存的重要属性,功能十分强大。另外,通过此方法进行测试,突破了先前测试程序只局限在Dos环境下的束缚,内存测试程序同样可以运行在windows95、Windows98、Windows2000、Windows Me等众多操作系统中,这样就大大提高了测试内存的方法适应环境,扩展了其自身的通用性和延伸性。
请参阅图2,此图为本发明所提出的多适应性内存探测方法的流程图,其说明如下首先,探测并记录PnP BIOS串的头部信息(步骤201);获取SMBIOS的版本号(步骤202);轮巡DMI结构体,根据该版本号探测到记载有内存设备信息的特定结构体(步骤203);最后,从该特定结构体中,导出有关的内存信息(步骤204)。
其中,所述探测PnP BIOS串的头部信息的步骤,是通过段值和偏移量建立远指针而实现的,如果找到PnP头部信息,则记录该信息,否则,将段地址加1,继续探测。
所述获取SMBIOS的版本号的步骤,是通过调用DMI BIOS功能函数50h而实现的。
所述根据该版本号,探测到记载有内存设备信息的特定结构体的步骤,是通过调用DMI BIOS功能函数51h,轮巡DMI类型结构体而实现的。如果版本号低于2.3,则DMI第6结构体记载有内存设备信息;而在版本号2.3之后,则第17结构体中记载有内存设备的信息。
如上所述,通过特定结构体,可以从中导出有关的内存设备信息,例如,可以从第6结构体中的Type06_Size中取出当前DIMM中内存的容量;或从第17结构体中的Type17_Size中取出当前DIMM中内存的容量。可以轮巡结构体中内存设备的数据地址,直至将所有所需数据全部取出。
虽然本发明以前述的较佳实施例公开,然其并非用以限定本发明,任何本领域普通技术人员,在不脱离本发明精神和范围内,当可作一些更动与润饰,因此本发明的专利保护范围以权利要求为准。
权利要求
1.一种多适应性内存探测方法,应用于一支持Plug and Play的系统中,其特征在于,该方法至少包括如下步骤探测并记录PnP BIOS串的头部信息;获取SMBIOS的版本号;轮巡DMI结构体,根据该版本号探测到记载有内存设备信息的特定结构体;及从该特定结构体中,导出有关的内存信息。
2.如权利要求1所述的多适应性内存探测方法,其特征在于,该探测PnP BIOS串的头部信息的步骤,是通过段值和偏移量建立远指针而实现的,如果找到PnP头部信息,则记录该信息,否则,将段地址加1,继续探测。
3.如权利要求1所述的多适应性内存探测方法,其特征在于,该获取SMBIOS的版本号的步骤,是通过调用DMI BIOS功能函数50h而实现的。
4.如权利要求1所述的多适应性内存探测方法,其特征在于,该轮巡DMI结构体的步骤是通过调用DMI BIOS功能函数51h而实现的。
5.如权利要求1所述的多适应性内存探测方法,其特征在于,所述根据该版本号探测到记载有内存设备信息的特定结构体的步骤,如果版本号低于2.3,则DMI第6结构体记载有内存设备信息;而在版本号2.3之后,则第17结构体中记载有内存设备的信息。
全文摘要
本发明涉及一种多适应性内存探测方法,应用于一支持Plug and Play的系统中,其首先探测并记录PnP BIOS串的头部信息,并获取SMBIOS的版本号,然后,轮巡DMI结构体,根据该版本号探测到记载有内存设备信息的特定结构体,最后,从该特定结构体中,导出有关的内存信息。本发明可适用于多种主流操作系统,如DOS、Windows、及WindowsNT等,并且可全面的探测内存信息,包括对内存的有效大小、物理组成、各物理单位的容量、物理位置及内存面(Bank)信息等。
文档编号G06F11/26GK1508688SQ02157129
公开日2004年6月30日 申请日期2002年12月17日 优先权日2002年12月17日
发明者刘文涵, 宋建福, 陈镇 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1