内存备份过程中的系统命令的处理方法和装置制造方法及图纸

技术编号:7219476 阅读:270 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例提供了一种内存备份过程中的系统命令的处理方法和装置。该方法主要包括:获取写操作命令对应的写入地址,如果所述写入地址对应的数据已经从原始内存区域中读取、但是没有写入到备份内存区域中,将所述写操作命令映射到所述原始内存区域,根据所述写操作命令在所述原始内存区域中的所述写入地址上写入数据,将所述写入地址减去设定数值得到后续从所述原始内存区域中读取数据的起始地址。利用本发明专利技术实施例,解决了内存备份操作过程中对系统命令阻塞的问题,使系统命令得到及时处理,并且保证了系统命令与内存备份地址冲突时的数据一致性问题,提升了内存备份操作时的系统性能。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及计算机应用
,尤其涉及一种内存备份过程中的系统命令的处理方法和装置
技术介绍
容错计算机一般都带有ECC(Error Correction Code,错误纠正码)错误检查和纠正功能,内存备份是容错计算机的一种重要的可靠性特性。上述内存备份是指当一个内存区域(一般以Rank或DIMM为单位)中出现可纠正错误超过一定阈值后,则认为该内存区域不可靠,极有可能被损坏,导致内存区域中存储的数据丢失。于是,内存控制器上报上述出错的内存区域给操作系统,操作系统根据上述出错的内存区域的大小,寻找适当的备份内存区域,通知内存控制器启动内存备份操作,由内存控制器将上述出错的内存区域中存储的数据搬移到备份内存区域,从而避免不可靠的内存带来的风险。上述内存备份操作由内存控制器中的备份引擎模块来完成,具体处理过程如下当一个内存区域中出现可纠正错误超过一定阈值后时,内存控制器便启动备份操作。备份引擎模块首先设置备份引擎的读地址为错误内存区域的首地址,发起读命令,从上述错误内存区域中读取数据。备份引擎模块往往连续发起多个读命令,连续从上述错误内存区域中读取的数据。内存控制器接收到从上述错误内存区域中读取的数据后,使用ECC 对数据进行错误纠正,发起写命令,将纠正后的数据写入到备份内存空间。如果上述错误内存区域中的数据没有全部被搬移,则增加读地址,继续读取后续数据,重复前面的操作,直至内存备份操作结束。在上述内存备份操作中,操作系统可能发起对上述错误内存区域的读写操作命令,当该命令的地址小于上述备份引擎模块已经读取的数据的最大地址,并且大于上述备份引擎模块已经写入的数据的最大地址,则直接阻塞该读写操作命令。在实现本专利技术过程中,专利技术人发现上述现有技术中至少存在如下问题在目前的技术方案中,对有冲突的系统命令直接进行了阻塞,这将影响系统读写操作的性能。
技术实现思路
本专利技术的实施例提供了一种内存备份过程中的系统命令的处理方法和装置,以实现在内存备份操作过程中对系统命令不阻塞,使系统命令得到及时处理。一种内存备份过程中的系统命令的处理方法,包括获取写操作命令对应的写入地址;如果所述写入地址对应的数据已经从原始内存区域中读取、但是没有写入到备份内存区域中,将所述写操作命令映射到所述原始内存区域,根据所述写操作命令在所述原始内存区域中的所述写入地址上写入数据;将所述写入地址减去设定数值得到后续从所述原始内存区域中读取数据的起始地址。一种内存备份过程中的系统命令的控制器,包括地址比较模块,用于获取写操作命令对应的写入地址,确定所述写入地址对应的数据已经从原始内存区域中读取、但是没有写入到备份内存区域中;数据处理模块,用于将所述写操作命令映射到所述原始内存区域,根据所述写操作命令在所述原始内存区域中的所述写入地址上写入数据。由上述的技术方案可以看出,本专利技术实施例中将所述写操作命令映射到所述原始内存区域,根据所述写操作命令在所述原始内存区域中的所述写入地址上写入数据,以解决内存备份操作过程中对系统命令阻塞的问题,使写操作命令得到及时处理,并且保证了写操作命令与内存备份地址冲突时的数据一致性问题,提升了内存备份操作时的系统性能。附图说明图1为本专利技术实施例一提供的一种内存备份过程中的系统命令的处理方法的流程图;图2为本专利技术实施例二提供的一种内存备份过程中的系统命令的处理方法的流程图;图3为本专利技术实施例二提供的一种备份引擎模块按照数据的地址从小到大的顺序进行数据读取和写入的操作的示意图;图4为本专利技术实施例二提供的一种备份引擎模块在DDR(Dual data rate,双倍数据率)内存控制器的位置示意图;图5为本专利技术实施例三提供的一种内存备份过程中的系统命令的处理装置的具体结构图。具体实施例方式实施例一该实施例提供的一种内存备份过程中的系统命令的处理方法的处理流程如图1 所示,包括如下的处理步骤步骤11、获取写操作命令对应的写入地址,确定所述写入地址对应的数据已经从原始内存区域中读取、但是没有写入到备份内存区域中。在内存备份过程中,备份引擎模块根据其发起的备份读命令,按照数据的地址从小到大的顺序从原始内存区域中依次读取数据,所述备份引擎模块将读取的数据进行错误纠正后,再将数据进行缓存。然后,所述备份引擎模块根据其发起的备份写命令,按照数据的地址从小到大的顺序依次将读取的数据依次写入到备份内存区域中。获取所述备份引擎模块已经从原始内存区域中读取的数据的最大地址和所述备份引擎模块已经写入到备份内存区域中的数据的最大地址。由于所述备份引擎模块发起的备份读命令和备份写命令之间存在一定的延时,所述从原始内存区域中读取的数据的最大地址往往要大于所述已经写入到备份内存区域中的数据的最大地址。获取来自操作系统的写操作命令的写入地址,当所述写入地址小于或者等于所述从原始内存区域中读取的数据的最大地址,并且大于所述写入到备份内存区域中的数据的最大地址,则判断所述写入地址对应的数据已经被备份引擎模块从原始内存区域中读取、 但是没有写入到备份内存区域中,即所述写入地址对应的数据正处于缓存中。步骤12、将所述写操作命令映射到所述原始内存区域,根据所述写操作命令在所述原始内存区域中的所述写入地址上写入数据。然后,将所述写入地址减去设定数值(比如为1)得到后续从所述原始内存区域中读取数据的起始地址,所述备份引擎模块后续从所述起始地址开始,从所述原始内存区域中读取数据。由上述本专利技术实施例提供的技术方案可以看出,本专利技术实施例解决了内存备份操作过程中对系统命令阻塞的问题,使写操作命令得到及时处理,并且保证了写操作命令与内存备份地址冲突时的数据一致性问题,提升了内存备份操作时的系统性能。实施例二该实施例提供的一种内存备份过程中的系统命令的处理方法的处理流程如图2 所示,包括如下的处理步骤步骤21、在容错计算机中,各种系统命令都维持在命令队列中。在命令队列空闲的时候,备份引擎模块将连续的发起备份读命令,从原始内存区域中读取数据,对读取的数据进行错误纠正后,再进行缓存。然后,备份引擎模块将发起备份写命令,将缓存的数据写入到备份内存区域中。该实施例提供的一种备份引擎模块按照数据的地址从小到大的顺序进行数据读取和写入的操作的示意图如图3所示,在图3中,备份引擎模块已经从原始内存区域中读取的数据的最大地址为N+6,已经写入到备份内存区域中的数据的最大地址为N,地址N+1到 N+6对应的数据处于缓存状态。获取系统命令的地址,判断所述系统命令的地址是否属于所述原始内存区域,如果是,则执行步骤23 ;否则,执行步骤22。步骤22、当所述系统命令的地址不属于所述原始内存区域时,则所述系统命令和备份引擎模块的内存备份操作没有冲突,对所述系统命令进行正常的映射和处理操作。步骤23、当所述系统命令的地址属于所述原始内存区域时,判断所述备份引擎模块的内存备份操作是否已经结束,如果是,执行步骤M ;否则;执行步骤25。步骤对、确定所述系统命令的地址对应的数据已经被写入到备份地址区域,于是, 将所述系统命令映射到备份内存区域中,根据所述系统命令在所述备份内存区域中进行相应的数据处理操作。步骤25、判断所述命令的地址是否小于或者等于备份引擎模块已经写入到备份内存区域中的数据的最大地址,比如,依据图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:程永波贺成洪兰可嘉
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1
相关领域技术