一种内存管理方法及装置制造方法及图纸

技术编号:13898895 阅读:60 留言:0更新日期:2016-10-25 10:41
本发明专利技术提供了一种内存管理方法及装置,其中,方法包括:在启动计算机的操作系统后,获取对应操作系统的多个内存单元分别对应的地址信息以及多个内存单元之间的排列结构;获取携带目标地址信息的错误检查和纠正ECC错误信息;根据多个内存单元分别对应的地址信息及目标地址信息确定目标内存单元;根据多个内存单元之间的排列结构,确定与目标内存单元相邻的至少一个相邻内存单元;分别检测每一个相邻内存单元是否发生故障;当存在发生故障的相邻内存单元时,隔离目标内存单元和每一个发生故障的相邻内存单元,以使操作系统不再利用目标内存单元和发生故障的相邻内存单元存储业务数据。通过本发明专利技术的技术方案,可确保计算机能够正常工作。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种内存管理方法及装置
技术介绍
内存是计算机的重要组件,当内存中的相应内存模块出现故障时,操作系统则无法利用故障内存模块正确读写业务数据,需要对内存进行相应的管理。目前,对计算机的内存进行管理时,主要通过在计算机的操作系统中设置ECC(Error Checking and Correction,错误检查和纠正)功能模块,在操作系统运行时,如果操作系统无法利用当前内存模块正确读写业务数据,即当前内存模块出现故障时,产生对应该故障内存模块的ECC错误信息,ECC功能模块根据ECC错误信息对故障内存模块进行临时屏蔽,并修复故障内存模块。但是,由于内存模块的集成度越来越高,在当前内存模块出现故障时,可能导致与其相邻的其他内存模块也出现故障,当操作系统无法在其相邻的内存模块上正确读写业务数据时,将产生更多的ECC错误信息,而过多的ECC错误信息,可能导致操作系统崩溃,进而使计算机无法正常工作。
技术实现思路
本专利技术实施例提供了一种内存管理方法及装置,可确保计算机能够正常工作。第一方面,本专利技术实施例提供了一种内存管理方法,包括:S0:在启动计算机的操作系统后,获取对应所述操作系统的多个内存单元分别对应的地址信息以及多个内存单元之间的排列结构;S1:获取携带目标地址信息的错误检查和纠正ECC错误信息;S2:根据所述多个内存单元分别对应的地址信息及所述目标地址信息确定目标内存单元;S3:根据所述多个内存单元之间的排列结构,确定与所述目标内存单元相邻的至少一个相邻内存单元;S4:分别检测每一个所述相邻内存单元是否发生故障;S5:当存在发生故障的相邻内存单元时,隔离所述目标内存单元和每一个所述发生故障的相邻内存单元,以使所述操作系统不再利用所述目标内存单元和每一个所述发生故障的相邻内存单元存储业务数据。进一步的,在所述在启动计算机的操作系统后之前,还包括:预先在计算机的基本输出输出系统中设置内存管理模块;在启动计算机的基本输入输出系统时,利用所述内存管理模块分别检测对应当前计算机的每一个内存单元是否发生故障;当检测到至少一个内存单元发生故障时,获取每一个发生故障的内存单元的地址信息,并将每一个发生故障的内存单元的地址信息存储至非易失性存储介质;根据所述非易失性存储介质中存储的每一个发生故障的内存单元的地址信息,隔离每一个发生故障的内存单元,以将当前未隔离的内存单元作为对应所述操作系统的多个内存单元。进一步的,在所述隔离所述目标内存单元和每一个所述发生故障的相邻内存单元之后,还包括:将每一个所述发生故障的相邻内存单元和所述目标内存单元分别对应的地址信息存储至所述非易失性存储介质。进一步的,还包括:预先设置测试参数n和故障阈值,其中,n为不小于3的整数;所述分别检测每一个所述相邻内存单元是否发生故障,包括:分别在每一个所述相邻内存单元上读写n次测试数据;检测每一个所述相邻内存单元分别对应的能够正确读写测试数据的次数;根据测试参数n及每一个所述相邻内存单元分别对应的能够正确读写测试数据的次数计算当前相邻内存单元的非故障概率;分别比较每一个相邻内存单元对应的非故障概率和所述故障阈值,在当前相邻内存单元对应的非故障概率小于所述故障阈值时,确定当前相邻内存单元发生故障。进一步的,在所述确定与所述目标内存单元相邻的至少一个相邻内存单元之后,在所述分别在每一个所述相邻内存单元上读写n次测试数据之前,进一步包括:分别检测每一个所述相邻内存单元是否处于空闲状态,当每一个所述相邻内存单元均处于空闲状态时,执行所述分别在每一个所述相邻内存单元上读写n次测试数据。第二方面,本专利技术实施例提供了一种内存管理装置,包括:第一获取模块,用于在启动计算机的操作系统后,获取对应所述操作系统的多个内存单元分别对应的地址信息以及多个内存单元之间的排列结构;第二获取模块,用于获取携带目标地址信息的错误检查和纠正ECC错误信息;第一确定模块,用于根据所述多个内存单元分别对应的地址信息及所述目标地址信息确定目标内存单元;第二确定模块,用于根据所述多个内存单元之间的排列结构,确定与所述目标内存单元相邻的至少一个相邻内存单元;故障检测模块,用于分别检测每一个所述相邻内存单元是否发生故障;隔离处理模块,用于当存在发生故障的相邻内存单元时,隔离所述目标内存单元和每一个所述发生故障的相邻内存单元,以使所述操作系统不再利用所述目标内存单元和每一个所述发生故障的相邻内存单元存储业务数据。进一步的,还包括:第一设置模块,用于预先在计算机的基本输出输出系统中设置内存管理模块;所述内存管理模块,用于在启动计算机的基本输入输出系统时,分别检测对应当前计算机的每一个内存单元是否发生故障;当检测到至少一个内存单元发生故障时,获取每一个发生故障的内存单元的地址信息,并将每一个发生故障的内存单元的地址信息存储至非易失性存储介质;根据所述非易失性存储介质中存储的每一个发生故障的内存单元的地址信息,隔离每一个发生故障的内存单元,以将当前未隔离的内存单元作为对应所述操作系统的多个内存单元。进一步的,还包括:存储处理模块,用于将每一个所述发生故障的相邻内存单元和所述目标内存单元分别对应的地址信息存储至所述非易失性存储介质。进一步的,还包括:第二设置模块,用于预先设置测试参数n和故障阈值,其中,n为不小于3的整数;所述故障检测模块,包括:读写控制子单元,用于分别在每一个所述相邻内存单元上读写n次测试数据;读写检测子单元,用于检测每一个所述相邻内存单元分别对应的能够正确读写测试数据的次数;计算子单元,用于根据测试参数n及每一个所述相邻内存单元分别对应的能够正确读写测试数据的次数计算当前相邻内存单元的非故障概率;处理子单元,用于分别比较每一个相邻内存单元对应的非故障概率和所述故障阈值,在当前相邻内存单元对应的非故障概率小于所述故障阈值时,确定当前相邻内存单元发生故障。进一步的,还包括:状态检测模块,用于分别检测每一个所述相邻内存单元是否处于空闲状态,当每一个所述相邻内存单元均处于空闲状态时,执行所述分别在每一个所述相邻内存单元上读写n次测试数据。本专利技术实施例提供了一种内存管理方法及装置,在启动计算机的操作系统后,首先获取对应操作系统的多个内存单元分别对应的地址信息以及多个内存单元之间的排列结构,以及,获取操作系统在运行过程中因存在内存单元出现故障而产生的ECC错误信息,进而确定ECC错误信息对应的目标内存单元,即可根据多个内存单元之间的排列结构,针对与目标内存单元相邻的每一个相邻内存单元进行故障检测,对每一个发生故障的相邻内存单元和目标内存单元进行隔离,以使运行中的操作系统再使用已经发生故障的相邻内存单元,即不会再产生对应已经发生故障的相邻内存单元的ECC错误信息,减少ECC错误信息的数量,确保计算机能够正常工作。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一实施例提供的一种内存管理方法的流程图;图2是本专利技术一实施例提供的另一种内存管理方本文档来自技高网...

【技术保护点】
一种内存管理方法,其特征在于,包括:在启动计算机的操作系统后,获取对应所述操作系统的多个内存单元分别对应的地址信息以及多个内存单元之间的排列结构;获取携带目标地址信息的错误检查和纠正ECC错误信息;根据所述多个内存单元分别对应的地址信息及所述目标地址信息确定目标内存单元;根据所述多个内存单元之间的排列结构,确定与所述目标内存单元相邻的至少一个相邻内存单元;分别检测每一个所述相邻内存单元是否发生故障;当存在发生故障的相邻内存单元时,隔离所述目标内存单元和每一个所述发生故障的相邻内存单元,以使所述操作系统不再利用所述目标内存单元和每一个所述发生故障的相邻内存单元存储业务数据。

【技术特征摘要】
1.一种内存管理方法,其特征在于,包括:在启动计算机的操作系统后,获取对应所述操作系统的多个内存单元分别对应的地址信息以及多个内存单元之间的排列结构;获取携带目标地址信息的错误检查和纠正ECC错误信息;根据所述多个内存单元分别对应的地址信息及所述目标地址信息确定目标内存单元;根据所述多个内存单元之间的排列结构,确定与所述目标内存单元相邻的至少一个相邻内存单元;分别检测每一个所述相邻内存单元是否发生故障;当存在发生故障的相邻内存单元时,隔离所述目标内存单元和每一个所述发生故障的相邻内存单元,以使所述操作系统不再利用所述目标内存单元和每一个所述发生故障的相邻内存单元存储业务数据。2.根据权利要求1所述的内存管理方法,其特征在于,在所述在启动计算机的操作系统后之前,还包括:预先在计算机的基本输出输出系统中设置内存管理模块;在启动计算机的基本输入输出系统时,利用所述内存管理模块分别检测对应当前计算机的每一个内存单元是否发生故障;当检测到至少一个内存单元发生故障时,获取每一个发生故障的内存单元的地址信息,并将每一个发生故障的内存单元的地址信息存储至非易失性存储介质;根据所述非易失性存储介质中存储的每一个发生故障的内存单元的地址信息,隔离每一个发生故障的内存单元,以将当前未隔离的内存单元作为对应所述操作系统的多个内存单元。3.根据权利要求2所述的内存管理方法,其特征在于,在所述隔离所述目标内存单元和每一个所述发生故障的相邻内存单元之后,还包括:将每一个所述发生故障的相邻内存单元和所述目标内存单元分别对应的
\t地址信息存储至所述非易失性存储介质。4.根据权利要求1至3中任一所述的内存管理方法,其特征在于,还包括:预先设置测试参数n和故障阈值,其中,n为不小于3的整数;所述分别检测每一个所述相邻内存单元是否发生故障,包括:分别在每一个所述相邻内存单元上读写n次测试数据;检测每一个所述相邻内存单元分别对应的能够正确读写测试数据的次数;根据测试参数n及每一个所述相邻内存单元分别对应的能够正确读写测试数据的次数计算当前相邻内存单元的非故障概率;分别比较每一个相邻内存单元对应的非故障概率和所述故障阈值,在当前相邻内存单元对应的非故障概率小于所述故障阈值时,确定当前相邻内存单元发生故障。5.根据权利要求4所述的内存管理方法,其特征在于,在所述确定与所述目标内存单元相邻的至少一个相邻内存单元之后,在所述分别在每一个所述相邻内存单元上读写n次测试数据之前,进一步包括:分别检测每一个所述相邻内存单元是否处于空闲状态,当每一个所述相邻内存单元均处于空闲状态时,执行所述分别在每一个所述相邻内存单元上读写n次测试...

【专利技术属性】
技术研发人员:周茂庸刘胜庞潇
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

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

1