一种多核系统的在线补丁方法及系统的制作方法

文档序号:8318975阅读:251来源:国知局
一种多核系统的在线补丁方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种多核系统的在线补丁方法及系统。
【背景技术】
[0002]多核系统通常具有如图1所示的组成结构,其中,镜像O由主控核组成,核1、核1_1’、核1_2 ’组成镜像I,核2、核2_1’、核2_2 ’组成镜像2,核η、核η_Γ、核n_2 ’组成镜像η。在对该多核系统进行在线补丁时,通常由主控核与外部CPU进行通信,以获取补丁文件以及补丁命令交互。当对镜像O打补丁时,由于镜像O只有主控核一个核存在,操作核即为主控核,打补丁的核也为主控核。
[0003]以片外主控CPU对镜像I进行补丁激活操作为例,假设此时核I为镜像I的补丁操作核,核1_1’、核1_2’为从核,片外主控CPU与主控核之间可以进行命令交互,主控核与镜像I中核I可以进行命令交互,补丁操作核核I与镜像内各个从核之间可以进行命令交互。以激活补丁为例,片外主控CPU发送激活补丁命令给主控核,主控核将激活补丁命令转发给核1,由核I根据预置的补丁代码对核1_1’及核1_2’进行相应的补丁操作。激活补丁操作成功后,核I发送应答给主控核,主控核将该应答发送给片外主控CPU,激活补丁操作完成。
[0004]现有技术中,对于多核系统内的多个镜像,均需要包含完整的补丁代码,从而将导致整个系统具有很高的内存占用率。

【发明内容】

[0005]本发明实施例中提供了一种多核系统的在线补丁方法及系统,以降低在补丁操作过程中的内存占用率。
[0006]为了解决上述技术问题,本发明实施例公开了如下技术方案:
[0007]第一方面,提供一种多核系统的在线补丁方法,包括:
[0008]主控核获取补丁操作命令及补丁文件;
[0009]所述主控核根据所在镜像链接的补丁操作代码,向其他从核镜像中的各个从核发送所述补丁文件以及所述补丁操作命令,由所述各个从核根据所在从核镜像链接的补丁同步代码,执行相应补丁同步操作;
[0010]其中,所述主控核所在镜像链接所述补丁操作代码和补丁同步代码,所述从核镜像链接所述补丁同步代码。
[0011]结合上述第一方面,在第一种可能的实现方式中,所述方法还包括:
[0012]根据所述从核中待打补丁的函数所处的内存区域,配置位于所述内存区域的补丁区,所述补丁区用于加载所述补丁文件。
[0013]结合上述一方面,在第二种可能的实现方式中,所述主控核根据所在镜像链接的补丁操作代码,向其他从核镜像中的各个从核发送所述补丁文件以及所述补丁操作命令,包括:
[0014]所述主控核在预置时间内检测所述从核发送至所述主控核的心跳信息,将未能在所述预置时间内发送心跳信息的从核确定为故障从核;
[0015]所述主控核根据所述补丁操作代码,向其他从核镜像中的各个非故障从核发送所述补丁文件以及所述补丁操作命令。
[0016]结合上述一方面,和第二种可能的实现方式,在第三种可能的实现方式中,所述主控核根据所述补丁操作代码,向其他从核镜像中的各个非故障从核发送所述补丁文件以及所述补丁操作命令,包括:
[0017]所述主控核将预置的补丁同步掩码表中所述故障从核对应的补丁同步掩码位进行删除,所述补丁同步掩码表包含分别与所述各个从核对应的补丁同步掩码位;
[0018]所述主控核根据所述补丁操作代码,向剩余的所述补丁同步掩码位对应的从核发送所述补丁文件以及所述补丁操作命令。
[0019]结合上述一方面,和第一、二及三种可能的实现方式,在第四种可能的实现方式中,所述补丁操作代码包括:补丁加载代码、补丁激活代码、补丁去激活代码、补丁运行代码以及补丁删除代码。
[0020]第二方面,提供一种实现在线补丁的多核系统,包括:主控核和多个从核,所述主控核所在镜像链接所述补丁操作代码和补丁同步代码,所述从核镜像链接所述补丁同步代码;所述主控核用于获取补丁操作命令及补丁文件;根据所在镜像链接的补丁操作代码,向其他从核镜像中的各个从核发送所述补丁文件以及所述补丁操作命令,由所述各个从核根据所在从核镜像链接的补丁同步代码,执行相应补丁同步操作。
[0021]结合上述第二方面,在第一种可能的实现方式中,所述从核中配置有补丁区,所述补丁区位于所述从核中待打打补丁的函数所处的内存区域,用于加载所述补丁文件。
[0022]结合上述第二方面,在第二种可能的实现方式中,所述主控核具体用于:在预置时间内检测所述从核发送至所述主控核的心跳信息,将未能在所述预置时间内发送心跳信息的从核确定为故障从核;根据所述补丁操作代码,向其他从核镜像中的各个非故障从核发送所述补丁文件以及所述补丁操作命令。
[0023]结合上述第二方面,和第二种可能的实现方式,在第三种可能的实现方式中,所述主控核具体用于:将预置的补丁同步掩码表中所述故障从核对应的补丁同步掩码位进行删除,所述补丁同步掩码表包含分别与所述各个从核对应的补丁同步掩码位;根据所述补丁操作代码,向剩余的所述补丁同步掩码位对应的从核发送所述补丁文件以及所述补丁操作命令。
[0024]结合上述第二方面,和第一、二及三种可能的实现方式,在第四种可能的实现方式中,所述补丁操作代码包括:补丁加载代码、补丁激活代码、补丁去激活代码、补丁运行代码以及补丁删除代码。
[0025]本发明实施例中,通过将主控核所在的镜像链接补丁操作代码,实现将补丁操作代码存储在主控核中;通过各个操作核所在的从核镜像链接补丁同步代码,使得从核镜像中的各个操作核仅存储补丁同步代码。通过主控核控制从核镜像中的各个操作核的补丁操作,由于不需在从核镜像中配置执行补丁操作的操作核,使得在从核镜像中的各个操作核中不需要存储补丁操作代码,从而,能够大大降低补丁操作过程中补丁操作代码的内存占用率。
【附图说明】
[0026]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0027]图1为现有技术中主控核控制从核进行补丁操作的架构示意图;
[0028]图2为本发明提供的一个多核系统的在线补丁方法实施例的流程图;
[0029]图3为本发明提供的在线补丁激活的基本原理示意图;
[0030]图4为本发明实施例中相应的补丁操作架构示意图;
[0031]图5为本发明实施例提供的补丁区配置示意图;
[0032]图6为本发明实施例中补丁文件的生成过程示意图;
[0033]图7为本发明提供的心跳检测的示意图。
【具体实施方式】
[0034]为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
[0035]首先,介绍本发明提供的一种多核系统的在线补丁方法。
[0036]参见图2,为本发明提供的一个多核系统的在线补丁方法实施例的流程,其中,多核系统中的主控核所在镜像链接补丁操作代码和补丁同步代码,各个操作核所在从核镜像链接补丁同步代码。该流程具体可以包括:
[0037]步骤201、主控核获取补丁操作命令及补丁文件。
[0038]该步骤中,主控核与外部CPU进行通信,获取补丁操作命令及补丁文件。
[0039]本发明实施例实现的是一种在线补丁方法,在线补丁激活的基本原理是:假设将要修改的函数为OldFuncl及01dFunc2,相应地,补丁文件中的NewFuncl为OldFuncl的补丁函数,NewFunc2为01dFunc2的补丁函数,将要修改的函数OldFuncl及01dFunc2的入口处的指令替换为跳转指令,之后,当原有的程序再次调用OldFuncl及01dFunc2时,将直接跳转到NewFuncl即NeWFunC2处进行执行,如图3所示。由于此处的跳转指令没有修改程序调用地址寄存器,所以当NewFuncl、NewFunc2执行完以后,直接返回到调用OldFuncl、01dFunc2处继续执行。
[0040]当主控核获取补丁文件之后,可以根据具体的补丁操作命令,控制需要进行在线补丁的从核镜像中的各个操作核执行补丁操作。
[0041]步骤202、所述主控核根据所在镜像链接的补丁操作代码,向其他从核镜像中的各个从核发送所述补丁文件以及所述补丁操作命令,由所述各个从核根据所在从核镜像链接的补丁同步代码,执
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1