[发明专利]一种多核在线补丁方法和装置有效
申请号: | 201010505514.4 | 申请日: | 2010-10-13 |
公开(公告)号: | CN102135894A | 公开(公告)日: | 2011-07-27 |
发明(设计)人: | 强鸿斐;雷镇;姚芳兵 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多核 在线 补丁 方法 装置 | ||
技术领域
本发明属于计算机技术领域,特别涉及一种多核在线补丁方法和装置。
背景技术
在线补丁是指程序运行中不重启程序而生效的补丁。对多核处理器,当前具有硬件内存管理单元(Memory Management Unit,MMU)的多核CPU已支持在线补丁功能。在多核CPU环境下,由主控核实现在线补丁的加载、激活等操作。
如图1所示,在多核CPU的补丁加载操作中,主控核获取补丁,并读取到高速缓存(cache),对补丁进行解析,提取补丁的代码段和数据段,按照逻辑地址进行加载,由硬件的MMU单元实现逻辑地址到物理地址的映射,将核私有数据映射到共享内存的补丁区的每个私有数据段上。
在实现本发明的过程中发明人发现,在MMU条件下,由于多核CPU中每个核访问相同的逻辑地址,并被映射到补丁区的不同物理地址上,因此使得多核CPU的共享全局变量无法被映射。
发明内容
本发明实施例提供一种多核在线补丁方法和装置,能够将补丁数据全部映射到共享内存的补丁区。
本发明实施例采用如下技术方案:
一种多核在线补丁方法,包括:
分离补丁中的共享全局变量和私有全局变量;
将所述共享全局变量采用直接内存地址映射方式映射到补丁区的共享数据段,将所述私有全局变量采用用户指定变量地址映射方式映射到补丁区的私有数据段。
一种多核在线补丁装置,包括:
变量分离单元,用于分离补丁中的共享全局变量和私有全局变量;
映射单元,用于将所述共享全局变量采用直接内存地址映射方式映射到补丁区的共享数据段,将所述私有全局变量采用用户指定变量地址映射方式映射到补丁区的私有数据段。
由本发明实施例的上述技术方案可知,通过分离补丁中的共享全局变量和私有全局变量,将所述共享全局变量采用直接内存地址映射方式映射到补丁区的共享数据段,将所述私有全局变量采用用户指定变量地址映射方式映射到补丁区的私有数据段,可以使得共享全局变量和私有全局变量同时得到映射,实现了将补丁数据全部映射到共享内存的补丁区。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍。
图1为现有技术的多核CPU的补丁加载操作过程示意图;
图2为本发明的补丁区的物理地址划分示意图;
图3为本发明提供的多核在线补丁方法实施例的流程图;
图4为本发明的补丁区加载过几次后的对外展示使用情况和实际使用情况对照图;
图5为本发明加载一个新补丁前的补丁区使用情况示意图;
图6为本发明加载一个新补丁后的补丁区使用情况示意图;
图7为本发明实施例提供的补丁激活操作过程示意图;
图8为本发明提供的多核在线补丁装置实施例的功能单元示意图;
图9为本发明提供的多核在线补丁装置实施例的另一功能单元示意图。
具体实施方式
为清楚地说明如何将补丁数据全部映射到共享内存的补丁区,参见图2,首先对补丁区的物理地址划分进行说明。在本发明中,将补丁区的物理地址划分成三个连续部分:共享区、私有区和备份区。
所述共享区,包括共享代码段和共享数据段,其中,共享代码段用于存放补丁的共享代码和补丁代码中的只读数据段,共享数据段用于存放补丁中定义的共享全局变量。对补丁共享区采用直接内存地址进行映射,也即是说,核在读取数据时,直接从内存里面获取,不经过高速缓存总线。
所述私有区,按照核个数等分成多个私有数据段,每个私有数据段的起始地址按照Cache Line(Cache的最小单位)大小对齐,每个私有数据段用于存放补丁中定义的私有全局变量。对补丁私有区采用用户指定变量地址进行映射,也即是说,可以采用高速缓存总线访问地址映射方式或采用直接内存地址映射方式进行映射。
所述备份区,用于备份核私有内存的函数指令和核私有数据,用于核初始化补丁状态的自恢复。
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
如图3所示,本发明提供的多核在线补丁方法实施例,包括:
S11,分离补丁中定义的共享全局变量和私有全局变量。
为确保补丁中私有全局变量的访问不受影响,本发明实施例对补丁中定义的私有全局变量采用如下定义形式:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010505514.4/2.html,转载请声明来源钻瓜专利网。