一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

内存隔离方法、装置、电子设备及可读存储介质与流程

2022-07-23 09:47:26 来源:中国专利 TAG:
1.本技术涉及内存
技术领域
:,特别涉及一种内存隔离方法、内存隔离装置、电子设备及计算机可读存储介质。
背景技术
::2.ecc(errorcheckingandcorrecting:错误检查和纠正),是一种内存技术,大量使用在服务器领域的物理内存条中,目的是发现内存中读写数据的错误并纠正错误。在实际的生产环境中,用户态的程序和内核的系统程序在工作运行过程中会频繁的访问内存,被访问的物理内存因硬件故障或者其他原因会导致发生内存ce(correctederror,可纠正错误)。通常情况下,在检测到ce后会对其进行忽略,这使得系统可靠性较差。技术实现要素:3.有鉴于此,本技术的目的在于提供一种内存隔离方法、内存隔离装置、电子设备及计算机可读存储介质,提高了系统的可靠性。4.为解决上述技术问题,本技术提供了一种内存隔离方法,包括:5.若检测到可纠正错误,则确定可纠正错误对应的目标内存地址;6.基于所述目标内存地址确定目标地址区间;7.对所述目标地址区间进行读写隔离处理。8.可选地,所述基于所述目标内存地址确定目标地址区间,包括:9.确定所述目标内存地址对应的目标内存页,并获取所述目标内存页对应的属性信息;10.基于所述属性信息,确定所述目标地址区间。11.可选地,所述属性信息包括隔离标识信息和内存页类别信息;12.所述基于所述属性信息,确定所述目标地址区间,包括:13.若所述隔离标识信息处于使能状态,则根据所述内存页类别信息确定地址区间划定方式;14.利用所述地址区间划定方式,基于所述目标内存地址确定所述目标地址区间。15.可选地,所述对所述目标地址区间进行读写隔离处理,包括:16.将所述目标地址区间内的内存数据迁移至后备地址区间;17.利用所述后备地址区间更新所述目标地址区间对应的地址映射信息;18.将所述目标地址区间设置为禁止访问区域。19.可选地,所述利用所述后备地址区间更新所述目标地址区间对应的地址映射信息,包括:20.利用所述地址映射信息确定所述目标地址区间对应的逻辑地址区间;21.将所述逻辑地址区间与所述目标地址区间解绑,并将所述后备地址区间与所述逻辑地址区间绑定,得到新的地址映射信息。22.可选地,还包括:23.利用所述目标地址区间生成隔离记录;24.响应于检测到满足预设报警条件,基于所述隔离记录确定异常内存标识信息。25.可选地,所述预设报警条件为可纠正错误发生频率条件,所述检测到满足预设报警条件,包括:26.生成目标时间区间内的可纠正错误发生频率;27.若所述可纠正错误发生频率大于预设频率阈值,则确定检测到满足预设报警条件。28.可选地,所述预设报警条件为单个内存隔离空间比例条件,所述检测到满足预设报警条件,包括:29.确定目标内存对应的内存隔离空间比例;其中,所述内存隔离空间比例为所述目标内存中被读写隔离处理的内存空间体积占所述目标内存的总空间体积的比例;30.若所述内存隔离空间比例大于预设比例阈值,则确定检测到满足预设报警条件。31.本技术还提供了一种内存隔离装置,包括:32.地址确定模块,用于若检测到可纠正错误,则确定可纠正错误对应的目标内存地址;33.区间确定模块,用于基于所述目标内存地址确定目标地址区间;34.读写隔离处理模块,用于对所述目标地址区间进行读写隔离处理。35.本技术还提供了一种电子设备,包括存储器和处理器,其中:36.所述存储器,用于保存计算机程序;37.所述处理器,用于执行所述计算机程序,以实现上述的内存隔离方法。38.本技术还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的内存隔离方法。39.本技术提供的内存隔离方法,若检测到可纠正错误,则确定可纠正错误对应的目标内存地址;基于目标内存地址确定目标地址区间;对目标地址区间进行读写隔离处理。40.可见,该方法在检测到可纠正错误后,确定该错误对应的目标内存地址,进而基于目标内存地址确定预期相关联的目标地址区间。由于发生了可纠正错误,因此说明物理内存在目标内存地址可能发生硬件故障或其他导致其无法被正常读写的故障。为了避免后续其继续被读写进而导致系统可靠性下降,对其所处的目标地址区间进行读写隔离处理,使得其无法被继续读写,进而保证所有能够被读写的内存地址均为未发生过可纠正错误的地址,提高了系统的可靠性。41.此外,本技术还提供了一种内存隔离装置、电子设备及计算机可读存储介质,同样具有上述有益效果。附图说明42.为了更清楚地说明本技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。43.图1为本技术实施例提供的一种内存隔离方法流程图;44.图2为本技术实施例提供的一种具体的地址映射关系更新示意图;45.图3为本技术实施例提供的一种内存隔离过程示意图;46.图4为本技术实施例提供的一种具体的内存隔离过程示意图;47.图5为本技术实施例提供的一种具体的告警过程示意图;48.图6为本技术实施例提供的一种内存隔离装置的结构示意图;49.图7为本技术实施例提供的一种电子设备的结构示意图。具体实施方式50.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。51.请参考图1,图1为本技术实施例提供的一种内存隔离方法流程图。该方法包括:52.s101:若检测到可纠正错误,则确定可纠正错误对应的目标内存地址。53.需要说明的是,本技术中的各个步骤可以由指定的电子设备执行,该电子设备具体可以为服务器、便携式终端或其他形式,该电子设备中具有内存条,具体数量不做限定。54.当检测到发生了可纠正错误,可以首先确定该错误对应的目标内存地址,目标内存地址具体为内存的物理地址。本实施例并不限定可纠正错误的具体检测方式,例如当被访问的物理内存(可以被用户程序访问或被操作系统访问)因硬件故障或其他原因发生错误时,会生成硬件终端并上报内核,再由内核触发相应的事件,由用户态应用程序捕获感知。通常情况下,内核需要开启编译功能选项,例如mce(machinecheckexception,机器检测异常)、apei(acpiplatformerrorinterface,高级平台错误接口,其中,acpi为advancedconfigurationandpowerinterface,高级配置与电源接口)和edac(errordetectionandcorrection,错误检测和纠正)等。用户态可以部署探测监控程序,其通过内核提供的字符设备事件驱动探测、捕获和记录内存可纠正错误以及对应的目标内存地址。55.s102:基于目标内存地址确定目标地址区间。56.通常情况下,在硬件层面,内存具有基础的访问单元,访问单元是指内存被访问时的粒度单元,例如内存页等。当检测到目标内存地址发生可纠正错误时,为了不再访问目标内存地址,即实现对目标内存地址的隔离,需要确定目标内存地址所属的访问单元,以便在后续对整个访问单元进行禁止访问,进而起到禁止访问目标内存地址的效果。57.需要说明的是,不同的内存对应的访问单元大小可以相同或不同,在同一个内存中,不同的内存地址所属的访问单元的大小也可以相同或不同,可以根据需要进行设置。因此在得到目标内存地址后,需要确定其所属的访问单元的类型,进而准确地确定其所属的目标地址空间的大小以及起始位置和终止位置。具体的,可以确定目标内存地址对应的目标内存页,并获取目标内存页对应的属性信息。其中,属性信息用于表示目标内存页的类型,能够表明目标内存页对应的访问单元的大小,例如目标内存页单独属于一个访问单元,或者目标内存页可以与其他内存页同属于一个访问单元,例如目标内存页可以为一个普通内存页,其和其他若干个普通内存页同属于一个内存大页,该内存大页为一个访问单元。在得到属性信息后,基于属性信息,确定目标地址区间。58.在一种实施方式中,由于发生可纠正错误的目标内存地址可能并不是发生了硬件故障,在后续能够继续使用。为了灵活设置内存隔离的范围和适用对象,属性信息中包括隔离标识信息和内存页类别信息,其中,隔离标识信息用于表示目标内存页所属的访问单元是否能够被隔离,内存页类别信息用于表示目标内存页的类别。若隔离标识信息处于未使能状态,则说明目标内存页不参与内存隔离,在这种情况下,可以不做任何处理,忽略可纠正错误。若隔离标识信息处于使能状态,则说明目标内存页适用本技术的可纠正错误处理流程,因此根据内存页类别信息确定地址区间划定方式。根据上述说明,不同类型的内存页,例如普通内存页和内存大页,其作为访问单元的大小不同,因此对应的地址区间划定方式不同。除了访问单元的大小以外,还可以存在多种影响地址区间划定方式的因素,例如可以设置有多种不同的地址区间划定策略,如第一种策略可以为仅将目标内存页对应的访问单元划入目标地址区间,第二种策略可以为将目标内存页对应的访问单元,以及与该访问单元前后分别连接的两个访问单元划入到目标地址区间。不同内存页对应的地址区间划定方式可以根据需要预先设置,在此不作限制。在确定地址区间划定方式后,利用其基于目标内存地址确定目标地址区间。目标地址区间即为后续需要被内存隔离处理的地址范围。59.s103:对目标地址区间进行读写隔离处理。60.读写隔离处理,是指禁止对目标地址区间进行任何类型的访问操作的处理。可以理解的是,由于目标地址区间原本用于支持电子设备的运行,例如电子设备系统或某一用户程序的运行,在读写隔离处理后,电子设备应当能够继续正常运行。为了实现这一目的,需要用其他的内存地址区间替代目标地址区间。具体的,可以设置有后备地址区间,后备地址区间可以对应于一个访问单元或多个访问单元,可以理解的是,每个访问单元也可以对应于一个或多个后备地址区间,且相互对应的访问单元和后备地址区间的大小相同。61.为了支持电子设备的运行,目标地址区间内的数据应当保留,因此在进行读写隔离处理时,可以将目标地址区间内的内存数据迁移至后备地址区间,并利用后备地址区间更新目标地址区间对应的地址映射信息,以便将原本对目标地址区间的访问引导至后备地址区间,并将目标地址区间设置为禁止访问区域,避免访问目标内存地址,进而避免再次发生可纠正错误或其他错误。62.具体的,请参考图2,图2为本技术实施例提供的一种具体的地址映射关系更新示意图。可以看出,其中包括多个app(application,应用程序),每个app具有对应的虚拟地址空间支撑其运行,虚拟地址空间与内存条上的物理内存空间相互对应,二者的对应关系利用pagetable(内存页对应表)记录,即pagetable为地址映射信息,其中包括多个表项,每个表项用于记录一个逻辑地址区间和一个物理地址区间的对应关系。目标地址区间作为一个物理地址区间,同样具有其对应的逻辑地址区间。后备地址区间作为目标地址区间的备份,在读写隔离处理时,应当被对应至目标地址区间的逻辑地址区间。63.因此,在更新地址映射信息时,可以首先利用地址映射信息确定目标地址区间对应的逻辑地址区间,并将逻辑地址区间与目标地址区间解绑,并将后备地址区间与逻辑地址区间绑定,得到新的地址映射信息。本实施例并不限定解绑和绑定的具体方式,例如在一种实施方式中,可以在地址映射信息中删除目标地址区间和逻辑地址区间的内容以完成解绑,再新增后备地址区间和逻辑地址区间的对应关系以完成绑定。在另一种实施方式中,可以在地址映射信息中删除目标地址区间以完成解绑,再利用后备地址区间替代原本目标地址区间的位置以完成绑定。64.在读写隔离处理完毕后,还可以对本次隔离处理进行记录,并在需要时进行告警,以便提醒对内存条进行更换或执行其他处理。具体的,利用目标地址区间生成隔离记录,并响应于检测到满足预设报警条件,基于隔离记录确定异常内存标识信息。异常内存标识信息,是指能够表示发生了可纠正错误的内存的信息。由于隔离记录中具有目标地址区间,能够根据目标地址区间确定目标内存地址所属的内存,进而确定异常内存标识信息。例如,在物理硬件架构(intel架构)中,每个处理器(即cpu)可以通过内存控制器(,memorycontroller,mc)连接通道(channel),每个通道上可以插入一个或多个内存条(例如dimm,dual-inline-memory-modules,双列直插式存储模块)。处理器、mc、channel和dimm编号(即内存标识信息)之间的位置对应关系与内存条在电子设备的内存插槽的位置关系相关,通过预设该对应关系,可以在报警时直接说明硬件内存条在电子设备中的插槽位置,快速定位异常内存。使用物理地址(即目标地址区间或目标内存地址),通过内核驱动,能够解析出其所属的内存条。65.预设报警条件可以有一个或多个,具体内容不做限定,可以根据需要进行设置。例如在一种实施方式中,若频繁发生可纠正错误,则说明可纠正错误并不是偶然发生,有其他因素导致其频发,在这种情况下,可以进行告警。具体的,预设报警条件为可纠正错误发生频率条件,在这种情况下,生成目标时间区间内的可纠正错误发生频率,其中,目标时间区间的确定方式不做限定,例如可以预设目标时间区间的区间长度,并以当前时刻为基准,向前选取目标时间区间。或者,目标时间区间为固定的时间区间,例如每天的早上九点至早上十一点。若可纠正错误发生频率大于预设频率阈值,则确定检测到满足预设报警条件。预设频率阈值的大小不做限制。66.在另一种实施方式中,当单个内存中被隔离的空间占比太大,则其中可用的空间较少,使得整个设备的可用内存空间较少,可能会导致其无法正常运行。具体的,预设报警条件为单个内存隔离空间比例条件,在这种情况下,可以确定目标内存对应的内存隔离空间比例。其中,内存隔离空间比例为目标内存中被读写隔离处理的内存空间体积占目标内存的总空间体积的比例,目标内存可以为电子设备中的任意一个内存条。若内存隔离空间比例大于预设比例阈值,则确定检测到满足预设报警条件。67.应用本技术实施例提供的内存隔离方法,在检测到可纠正错误后,确定该错误对应的目标内存地址,进而基于目标内存地址确定预期相关联的目标地址区间。由于发生了可纠正错误,因此说明物理内存在目标内存地址可能发生硬件故障或其他导致其无法被正常读写的故障。为了避免后续其继续被读写进而导致系统可靠性下降,对其所处的目标地址区间进行读写隔离处理,使得其无法被继续读写,进而保证所有能够被读写的内存地址均为未发生过可纠正错误的地址,提高了系统的可靠性。68.请参考图3,图3为本技术实施例提供的一种内存隔离过程示意图,其中包括内存ecc监控系统、内存ecc隔离管理系统和内存ecc告警系统。其中,内存ecc监控系统是可纠正错误内存的监控探测系统,在应用层启动mcelog守护进程,用以监控ce内存并记录ce错误地址(即发生可纠正错误的目标内存地址),内存ecc监控系统的服务启动后,对内核通过的字符设备注册事件,并在检测到ecc事件通知时被唤醒。69.内存ecc隔离管理系统是用于进行可纠正错误内存(即发生可纠正错误的内存)隔离的系统,当存在ce错误地址时,用户态触发linux内核在内核空间隔离ce内存地址,单个ce内存隔离流程如图4所示:70.(1)获取监控探测的ce内存地址,然后判断其是否已经被记录,未被记录则说明其未被隔离,在这情况下可以执行下一步;71.(2)针对获取的ce地址,分析内存页属性以便确定其隔离优化算法(即地址区间划定方式),并针对不同的内存页隔离区域优化算法计算需要隔离的内存地址范围;72.(3)通过内核sys系统接口trigger内核隔离需要隔离的内存页;73.(4)分析隔离结果,并生成相应的记录,即内存故障记录。74.内存ecc告警系统用于周期性检查上述第(4)步生成的内存故障记录,进一步判断物理主机中所有内存条上出现ce错误的频率,当频率超过用户设置的阈值范围时发出故障告警。当进行ce内存隔离时,使用物理内存地址通过内核edac驱动解析目标内存地址所属的内存条,并统计每根内存条中隔离的内存大小。告警系统流程如图5所示:75.(1)检查获取ecc故障情况,并进行内存条的位置解析,确定具体的内存条;76.(2)采集ce故障分布(包括ecc隔离地址区域和错误频率)并进行分析,判断是否满足告警条件,告警条件可以为上述的单个内存阁丽空间比例条件或可纠正错误发生频率条件。在满足条件时,触发用户告警(告警方式可以使用邮件或者短信的方式)。77.下面对本技术实施例提供的内存隔离装置进行介绍,下文描述的内存隔离装置与上文描述的内存隔离方法可相互对应参照。78.请参考图6,图6为本技术实施例提供的一种内存隔离装置的结构示意图,包括:79.地址确定模块110,用于若检测到可纠正错误,则确定可纠正错误对应的目标内存地址;80.区间确定模块120,用于基于目标内存地址确定目标地址区间;81.读写隔离处理模块130,用于对目标地址区间进行读写隔离处理。82.可选地,区间确定模块120,包括:83.属性获取单元,用于确定目标内存地址对应的目标内存页,并获取目标内存页对应的属性信息;84.区间确定单元,用于基于属性信息,确定目标地址区间。85.可选地,属性信息包括隔离标识信息和内存页类别信息;86.区间确定单元,包括:87.划分方式确定子单元,用于若隔离标识信息处于使能状态,则根据内存页类别信息确定地址区间划定方式;88.区间确定子单元,用于利用地址区间划定方式,基于目标内存地址确定目标地址区间。89.可选地,读写隔离处理模块130,包括:90.数据迁移单元,用于将目标地址区间内的内存数据迁移至后备地址区间;91.映射信息更新单元,用于利用后备地址区间更新目标地址区间对应的地址映射信息;92.权限设置单元,用于将目标地址区间设置为禁止访问区域。93.可选地,映射信息更新单元,包括:94.逻辑地址确定子单元,用于利用地址映射信息确定目标地址区间对应的逻辑地址区间;95.重新绑定单元,用于将逻辑地址区间与目标地址区间解绑,并将后备地址区间与逻辑地址区间绑定,得到新的地址映射信息。96.可选地,还包括:97.记录生成模块,用于利用目标地址区间生成隔离记录;98.标识信息确定模块,用于响应于检测到满足预设报警条件,基于隔离记录确定异常内存标识信息。99.可选地,标识信息确定模块,包括:100.频率生成单元,用于生成目标时间区间内的可纠正错误发生频率;101.第一确定单元,用于若可纠正错误发生频率大于预设频率阈值,则确定检测到满足预设报警条件。102.可选地,标识信息确定模块,包括:103.比例计算单元,用于确定目标内存对应的内存隔离空间比例;其中,内存隔离空间比例为目标内存中被读写隔离处理的内存空间体积占目标内存的总空间体积的比例;104.第二确定单元,用于若内存隔离空间比例大于预设比例阈值,则确定检测到满足预设报警条件。105.下面对本技术实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的内存隔离方法可相互对应参照。106.请参考图7,图7为本技术实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(i/o)接口104以及通信组件105中的一种或多种。107.其中,处理器101用于控制电子设备100的整体操作,以完成上述的内存隔离方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,sram)、电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、可编程只读存储器(programmableread-onlymemory,prom)、只读存储器(read-onlymemory,rom)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。108.多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:wi-fi部件,蓝牙部件,nfc部件。109.电子设备100可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的内存隔离方法。110.下面对本技术实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的内存隔离方法可相互对应参照。111.本技术还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的内存隔离方法的步骤。112.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。113.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。114.本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本技术的范围。115.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
:内所公知的任意其它形式的存储介质中。116.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。117.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献