首页> 中国专利> 一种核资源分配方法、装置及众核系统

一种核资源分配方法、装置及众核系统

摘要

本发明提供一种核资源分配方法、装置及众核系统,用于对众核平台中的核资源进行分配,所述方法包括:获取用户进程所需的空闲核数目;找到满足所述数目请求的至少两个分散的核分区,其中,每个核分区为一个或多个核的集合并且每个核分区中的所有核都是空闲核;将所述至少两个分散的核分区组成一个连续的核分区;将形成的所述连续的核分区分配给所述用户进程。这样,分配给用户进程的连续的核分区内的不同核之间就可以直接进行进程交互,提高了进程间通信的效率;同时还可以有效避免核资源浪费,提升处理器的整体利用率以及并行处理能力。

著录项

  • 公开/公告号CN104008013A

    专利类型发明专利

  • 公开/公告日2014-08-27

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201310059705.6

  • 发明设计人 吴小科;王伟;

    申请日2013-02-26

  • 分类号G06F9/50(20060101);

  • 代理机构深圳市深佳知识产权代理事务所(普通合伙);

  • 代理人唐华明

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 00:50:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-09

    授权

    授权

  • 2014-09-24

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20130226

    实质审查的生效

  • 2014-08-27

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,具体涉及一种核资源分配方法、装置及众核系 统。

背景技术

随着计算机技术的不断发展,处理器已经迈入多核/众核时代,增加计算 机系统中可调度的核数,将同一进程中的多个线程分配到不同的核上运行,使 多核并行合作完成特定任务。为了提升多核/众核处理器的使用效率,降低应 用对核资源的竞争,可以对核进行物理分区,形成多个domain(表示核分区), 每个domain可包含多个在位置上连续或分散的核,可将不同domain的核资源集 提供给不同应用来缓解资源竞争。

一般情况下,在进行核分区之后,还需要通过负载均衡机制实现对核的 管理和分配,用以提升多核/众核处理器的整体利用率,充分发挥处理器的并 行处理能力。目前的均衡方式可描述如下:

首先,从当前domain中确定出一个当前核core,并由该当前core遍历检测 当前domain中每个core的负载情况,找到最忙的core;

其次,判断最忙的core是否是当前core,如果是则终止操作;否则遍历检 测最忙core中每个运行队列的负载情况,并找到最忙core的最忙运行队列;

接着,结合当前core的负载情况确定出可挪动的进程数量,并从上述最忙 运行队列中挪动确定数量的进程到当前core的运行队列中,实现当前domain的 负载均衡。

最后,将当前domain作为子节点,切换到其所属的父节点,按照上述方 法对父节点进行负载均衡。

这种负载均衡方法就存在如下缺点:

经过核资源调度之后,同一进程中的不同线程可能会被分配在距离较远 的分散core上运行,当线程间需要进行信息交互时,可能要经过多个正在运行 其它任务的core,导致进程中的线程间通信发生冲突,大大降低通信效率。另 外,线程间的通信要等运行其它任务的core空闲之后才能进行,这也会导致通 信效率低下。

除此之外,这种方式还缺乏对core的全局统一管理,会产生大量分散的 core,致使包含较少核资源的核资源分区无法被分配出去,无法利用每个core 来响应应用,造成核资源的浪费,影响多核/众核处理器的并行处理能力。

发明内容

本发明实施例的核资源分配方法、装置及众核系统,用以实现提高进程间 的通信效率以及处理器的并行处理能力。

为此,本发明实施例提供如下技术方案:

第一方面,本发明实施例提供了一种核资源分配方法,用于对众核平台中 的核资源进行分配,所述方法包括:

获取用户进程所需的空闲核数目;

找到满足所述数目请求的至少两个分散的核分区,其中,每个核分区为一 个或多个核的集合并且每个核分区中的所有核都是空闲核;

将所述至少两个分散的核分区组成一个连续的核分区;

将形成的所述连续的核分区分配给所述用户进程。

在第一方面的第一种可能的实现方式中,所述获取用户进程所需的空闲核 数目,包括:

接收所述用户进程发送的请求,解析所述请求获得所述用户进程所需的空 闲核数目;或者,

查找空闲核数目配置数据库,获得所述用户进程所需的空闲核数目,所述 数据库保存有所述用户进程与所述空闲核数目的对应关系。

结合第一方面以及第一方面的第一种可能的实现方式,在第二种可能的实 现方式中,所述将所述至少两个分散的核分区组成一个连续的核分区,包括:

从所述至少两个分散的核分区中选取一个基准核分区;

迁移剩余的其它核分区,使所述基准核分区与其它核分区合并形成所述连 续的核分区。

结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所 述迁移剩余的其它核分区,包括:

保存所述基准核分区相邻的已分配核分区正在运行的任务,所述已分配核 分区中的核数目与所述其它核分区中的核数目相同;

将所述任务分配到所述其它核分区运行。

结合第一方面以及第一方面的第一种可能的实现方式,在第四种可能的实 现方式中,所述将所述至少两个分散的核分区组成一个连续的核分区,包括:

根据核分区迁移代价,从所述至少两个分散核分区中选取一个基准核分区 和一个从核分区,以使总的核分区迁移代价最小,其中,所述总的核分区迁移 代价为各个分散的核分区的迁移代价之和;

迁移所述从核分区,使所述从核分区与所述基准核分区合并;

如果还有剩余的其它核分区,则再从合并后的核分区和剩余的其它核分区 中确定一个基准核分区和一个从核分区进行核分区迁移,直至将所述至少两个 分散核分区合并形成一个连续的核分区。

结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,根 据迁移路径的长短和/或迁移核数目的多少确定所述迁移代价,其中,所述迁 移路径长则迁移代价大,所述迁移核数目多则迁移代价大。

结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中,所 述迁移所述从核分区,包括:

保存所述基准核分区相邻的已分配核分区正在运行的任务,所述已分配核 分区中的核数目与所述从核分区中的核数目相同;

将所述任务分配到所述从核分区运行。

结合第一方面的第四种可能的实现方式,在第七种可能的实现方式中,所 述将所述任务分配到所述从核分区运行包括:

确定所述从核分区与所述基准核分区之间的最短迁移路径;

按照所述最短迁移路径将所述任务中转到所述从核分区运行。

结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,如 果存在至少两个最短迁移路径,则依据所述最短迁移路径经过的核分区包含的 核数目,对所述最短迁移路径进行加权处理,并将权值最小的最短路径确定为 最佳路径,按照所述最佳路径中转所述任务。

结合第一方面的第八种可能的实现方式,在第九种可能的实现方式中,所 述加权处理的方式为:

将所述最短路径经过的核分区的权值相加作为所述最短路径的权值;其 中,所述核分区的权值为所述核分区包含的核数目,或者所述核分区的权值为 依据所述核分区包含的核数目多少确定的权重。

结合第一方面的第八种可能的实现方式,在第十种可能的实现方式中,如 果存在至少两个最佳路径,则计算按照最佳路径迁移形成的所述连续的核分区 中的至少两个核分区的核分布密集程度,并迁移所述从核分区,使所述连续的 核分区的核分布密集程度最高。

结合第一方面的第十种可能的实现方式,在第十一种可能的实现方式中, 计算所述核分布密集程度的方式为:

计算所述连续的核分区中两两核之间的距离之和;或者,

计算所述连续的核分区中两两核之间的距离平方之和。

结合第一方面、第一方面的第一种至第十一种任一种可能的实现方式,在 第十二种可能的实现方式中,将满足所述数目请求的至少两个分散的核分区作 为一个组合,如果存在至少两个满足所述数目请求的组合,则计算每个组合的 核分区分布密集程度,并将核分区密集程度最高的组合确定为最佳组合,再利 用形成所述最佳组合的至少两个分散的核分区组成所述连续的核分区。

结合第一方面的第十二种可能的实现方式,在第十三种可能的实现方式 中,计算所述核分区分布密集程度的方式为:

计算所述组合中两两核分区之间的距离之和;或者,

计算所述组合中两两核分区之间的距离平方之和。

结合第一方面、第一方面的第一种至第十一种任一种可能的实现方式,在 第十四种可能的实现方式中,在所述找到满足所述数目请求的至少两个分散的 核分区之前,所述方法还包括:

判断所述众核平台中是否存在满足所述数目请求的连续核分区,如果存 在,则将所述连续核分区分配给所述用户进程;如果不存在,再执行所述找到 满足所述数目请求的至少两个分散的核分区的步骤。

第二方面,本发明实施例提供了一种核资源分配装置,用于对众核平台中 的核资源进行分配,所述装置包括:

获取单元,用于获取用户进程所需的空闲核数目;

查找单元,用于找到满足所述数目请求的至少两个分散的核分区,其中, 每个核分区为一个或多个核的集合并且每个核分区中的所有核都是空闲核;

组合单元,用于将所述至少两个分散的核分区组成一个连续的核分区;

分配单元,用于将所述组合单元形成的所述连续的核分区分配给所述用户 进程。

在第二方面的第一种可能的实现方式中,所述获取单元,具体用于接收所 述用户进程发送的请求,并解析所述请求获得所述用户进程所需的空闲核数 目;或者,所述获取单元,具体用于查找空闲核数目配置数据库,获得所述用 户进程所需的空闲核数目,所述数据库保存有所述用户进程与所述空闲核数目 的对应关系。

结合第二方面以及第二方面的第一种可能的实现方式,在第二种可能的实 现方式中,所述组合单元包括:

第一选取单元,用于从所述至少两个分散的核分区中选取一个基准核分 区;

第一迁移单元,用于迁移剩余的其它核分区,使所述基准核分区与其它核 分区合并形成所述连续的核分区。

结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所 述第一迁移单元包括:

第一保存单元,用于保存所述基准核分区相邻的已分配核分区正在运行的 任务,所述已分配核分区中的核数目与所述其它核分区中的核数目相同;

第一任务分配单元,用于将所述任务分配到所述其它核分区运行。

结合第二方面以及第二方面的第一种可能的实现方式,在第四种可能的实 现方式中,所述组合单元包括:

第二选取单元,用于根据核分区迁移代价,从所述至少两个分散核分区中 选取一个基准核分区和一个从核分区,以使总的核分区迁移代价最小,其中, 所述总的核分区迁移代价为各个分散的核分区的迁移代价之和;

第二迁移单元,用于迁移所述从核分区,使所述从核分区与所述基准核分 区合并;如果还有剩余的其它核分区,则再从合并后的核分区和剩余的其它核 分区中确定一个基准核分区和一个从核分区进行核分区迁移,直至将所述至少 两个分散核分区合并形成一个连续的核分区。

结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所 述第二迁移单元包括:

第二保存单元,用于保存所述基准核分区相邻的已分配核分区正在运行的 任务,所述已分配核分区中的核数目与所述从核分区中的核数目相同;

第二任务分配单元,用于将所述任务分配到所述从核分区运行。

结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所 述第二任务分配单元包括:

第一确定单元,用于确定所述从核分区与所述基准核分区之间的最短迁移 路径;

第一分配子单元,用于按照所述最短迁移路径将所述任务中转到所述从核 分区运行。

结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,所 述第二任务分配单元还包括:

加权处理单元,用于在存在至少两个最短迁移路径时,依据所述最短迁移 路径经过的核分区包含的核数目,对所述最短迁移路径进行加权处理,并将权 值最小的最短路径确定为最佳路径,使所述第一分配子单元按照所述最佳路径 中转所述任务。

结合第二方面的第七种可能的实现方式,在第八种可能的实现方式中,所 述第二任务分配单元还包括:

核密集度计算单元,用于在存在至少两个最佳路径时,计算按照最佳路径 迁移形成的所述连续的核分区中的至少两个核分区的核分布密集程度,并迁移 所述从核分区,使所述连续的核分区的核分布密集程度最高。

结合第二方面、第二方面的第一种至第八种任一种可能的实现方式,在第 九种可能的实现方式中,所述装置还包括:

核分区密集度计算单元,用于将满足所述数目请求的至少两个分散的核分 区作为一个组合,如果存在至少两个满足所述数目请求的组合,则计算每个组 合的核分区分布密集程度,并将核分区密集程度最高的组合确定为最佳组合, 使所述组合单元利用形成所述最佳组合的至少两个分散的核分区组成所述连 续的核分区。

结合第二方面、第二方面的第一种至第八种任一种可能的实现方式,在第 十种可能的实现方式中,所述装置还包括:

判定单元,用于判断所述众核平台中是否存在满足所述数目请求的连续核 分区,如果存在,则将所述连续核分区分配给所述用户进程;如果不存在,再 通知所述查找单元找到满足所述数目请求的至少两个分散的核分区。

第三方面,本发明实施例提供了一种众核系统,所述系统包括多个核,所 述多个核中包含一个执行核,所述执行核用于按照上述方法对所述多个核中的 其它多个核进行资源分配。

本发明实施的核资源分配方法、装置及众核系统,获取到用户进程需要的 空闲核数目之后,先查找确定至少两个分散的核分区,然后再迁移所述分散的 核分区使之组成一个连续的核分区,并分配给用户进程运行。这样,分配给用 户进程的连续的核分区内的不同核之间就可以直接进行进程交互,提高了进程 间通信的效率;同时还可以有效避免核资源浪费,提升处理器的整体利用率以 及并行处理能力。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲, 还可以根据这些附图获得其它的附图。

图1是多核/众核处理器的任务分配示意图;

图2是本发明核资源分配方法实施例1的流程图;

图3是本发明实施例中核区域链表与连通图的示意图;

图4是本发明实施例中步骤103组合过程实施例1的流程图;

图5是本发明实施例中步骤103组合过程实施例2的流程图;

图6是本发明实施例中分散的核分区节点的一种分布示意图;

图7a是本发明实施例中连续核分区示例一的示意图;

图7b是本发明实施例中连续核分区示例二的示意图;

图8是本发明核资源分配方法实施例2的流程图;

图9是本发明核资源分配方法实施例3的流程图;

图10是本发明实施例中迁移前核分区的第一种分布示意图;

图11是本发明实施例中迁移后核分区的第一种分布示意图;

图12是本发明实施例中迁移前核分区的第二种分布示意图;

图13是本发明实施例中迁移后核分区的第二种分布示意图;

图14是本发明实施例核资源分配装置实施例1的示意图;

图15是本发明实施例中组合单元603实施例1的示意图;

图16是本发明实施例中组合单元603实施例2的示意图;

图17是本发明实施例核资源分配装置实施例2的示意图;

图18是本发明实施例核资源分配装置实施例3的示意图;

图19是本发明实施例核资源分配装置的硬件构成示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方 式对本发明实施例作进一步的详细说明。

在介绍本发明核资源分配方法之前,先对多核协同合作完成任务的过程进 行简单介绍。同一进程中的多个线程可以被分配到不同的core上运行,具体 可以被分配到连续的core上运行,即多个core位于一个连续区域,例如参见 图1中的app3;也可以被分配到分散的core上运行,例如可参见图1中的任 务FS。

对于app3来说,其位于连续的核资源分区内,core间的消息交互过程快、 效率高;FS位于分散的core中,为了完成文件系统服务,需要所有FS协同 合作,则在FS之间通过IPC通信实现消息交互时,一个FS需要经过正在运 行其它任务的core,才可以实现与另一个FS间的消息通信,导致通信效率低 下。

另外,采用现有技术进行核资源分配后即可能如图1所示产生大量分散的 core,对于这种情况还可能会降低处理器的整体利用率,影响处理器的并行处 理能力。例如,当前任务需要4个core并行运行,由上述分析可知,为了避 免core分散导致的通信效率低下,应尽量为当前任务分配连续的核资源分区, 在这种情况下,对于app2和app4之间的2个core来说,就会因为不满足当前 任务需求而分配不出去,导致核资源的浪费。或者,又例如,预先规定6个 core为一个核资源分区,且每个分区只负责管理其拥有的core,若当前任务需 要申请5个core并行运行,那么将该任务分配到一个核资源分区后,该分区 就会剩余一个core,同样造成了核资源的浪费。

为此,本发明提供一种新的核资源分配方法,用于对众核平台中的核资源 进行分配,以期提高进程间通信的效率,避免核资源浪费,提升处理器的整体 利用率以及并行处理能力。

参见图2,示出了本发明核资源分配方法实施例1的流程图,所述方法包 括:

步骤101,获取用户进程所需的空闲核数目。

本发明技术方案从全局角度统一管理处理器中所有的core,本步骤即是核 资源分配装置在用户进程的触发下开始进行资源分配。

本发明中的用户进程可以是OS(Operating System,操作系统)的系统服 务,在系统服务启动时,可以向核资源分配装置申请服务启动所需的core,核 资源分配装置即会按照本发明方案将一块连续的core资源分区分配给系统服 务。这样,系统服务便可运行在为其分配的core资源分区中,来提供特定的 服务,例如进程服务、设备驱动、文件服务、虚拟内存等。

另外,本发明中的用户进程还可以是应用程序,核资源分配装置在接收到 应用程序的申请之后,同样会按照本发明方案分配一块连续的core资源分区 供应用程序运行。

本步骤提供了以下两种具体实现方式:

方式一,接收所述用户进程发送的请求,解析所述请求获得所述用户进程 所需的空闲核数目。

用户进程向核资源分配装置发送请求的目的就是为了申请供其运行的核, 因此请求中应包含用户进程运行需要的核数目,这样核资源分配装置才能解析 请求获知用户进程所需的空闲核数目。

方式二,查找空闲核数目配置数据库,获得所述用户进程所需的空闲核数 目,所述数据库保存有所述用户进程与所述空闲核数目的对应关系。

本方式中,预先配置好用户进程与空闲核数目之间的映射关系,当用户进 程启动的时候,读取配置数据库(可以体现为配置文件)确定出当前用户进程 所需的空闲核数目。

需要说明的是,本步骤获取空闲核数目的执行主体,从软件层面来说,其 可具体体现为是OS的chips管理模块,从硬件层面来说,其可具体体现为是 运行chips管理模块的core。

步骤102,找到满足所述数目请求的至少两个分散的核分区,其中,每个 核分区为一个或多个核的集合并且每个核分区中的所有核都是空闲核。

需要说明的是,满足所述数目请求的至少两个分散的核分区是指,找到的 至少两个分散的核分区包含的空闲核总数与用户进程所需的空闲核数目相同。 而若将几个核分区称为分散的核分区,那么就表示这些核分区中的任何一个核 分区中的核要与其它核分区中的核通信时,必须经过不属于这些分区的其它 核。

作为本发明技术方案的一种实现方式,核资源分配装置维护着一个核区域 链表和一个核区域连通图,可以通过查找核区域链表的方式来查找分散的核分 区。

核区域连通图是按照处理器包含的所有核分区(包括空闲核分区和已分配 核分区)的位置绘制而成,用于表示不同核分区间的位置关系、不同核分区包 含的核数目,具体可参见图3所示示意图中的第I部分。其中region0~region14 表示的是15个已被分配的核分区,虚线框圈起的黑色节点表示的是2个空闲 核分区(一个包含2个空闲核,定义为第一空闲核分区;一个包含4个空闲核, 定义为第二空闲核分区)。

核区域链表用于存放指向核区域连通图中空闲核分区的节点,核资源分配 装置遍历核区域链表就能通过相应的节点确定出上述分散的核分区,具体可参 见图3所示示意图的第II部分。其中,free core region1是能够指向连通图中第 一空闲核分区的节点,free core region2是能够指向连通图中第二空闲核分区的 节点。

核资源分配装置维护着图3所示的链表与连通图,就可以在需要时遍历链 表查找满足用户进程需求的至少两个分散核分区。

需要说明的是,为了提高本发明的分配效率,在执行步骤102之前,可以 先判断下处理器中当前空闲core的总数是否满足用户进程的需要,即当前空 闲core总数应不小于用户程序需要的核数目,如果满足,则执行步骤102,否 则可暂时缓存用户进程的请求,待到处理器有能力运行用户进程时,再按照本 发明方案为用户进程分配连续的核分区。仍以图3所示链表为例,如果用户进 程请求8个核资源,则参见图3可知处理器当前只有6个空闲核,不能满足用 户进程需求,因此可暂时缓存该申请8个核资源的请求。

当然,不在步骤102之前执行上述判断过程亦是可行的,因为经步骤102 之后也会产生两种结果,一是查找到满足所述数目请求的至少两个分散的核分 区,可继续按本发明方案进行资源分配;另一是未查找到(即当前空闲核数目 不满足用户进程的需求),同样可缓存用户进程的请求,待处理器有能力时再 做处理。

步骤103,将所述至少两个分散的核分区组成一个连续的核分区。

在步骤102找到至少两个分散的核分区之后,就可以通过迁移核分区的方 式,使所述至少两个分散的核分区合并为一个连续的核分区,也就是说,要改 变分散核分区的位置,使将要分配给用户进程的不同分区合并到一起,这样, 在用户进程运行过程中,不同core之间就可以直接通过IPC通信进行消息交 互,而无需经过任何运行其它任务的core,也就无需等待运行其它任务的core 空闲后再进行消息交互,从而可以提高处理器的通信效率,使处理器最大程度 的发挥其并行处理能力。

步骤104,将形成的所述连续的核分区分配给所述用户进程。

步骤103组合形成一个连续核分区之后,核资源分配装置即可将该连续核 分区分配给用户进程,使该连续核分区中包含的所有core并行运行,协同合 作完成任务。其中,连续的核分区可以理解为,分区中任意两个核不经过分区 之外的其它核即可进行信息交互,也就是说,分区中的任何一个核与分区中其 它核通信时,无需经过分区之外的核。

对于步骤103来说,只要将至少两个分散的核分区组成一个连续的核分区 即可实现本发明技术目的,更优的,还可考虑分散核分区组成连续核分区过程 中花费的代价,并使代价尽量小,对此将在后续一一展开说明。

需要说明的是,本发明中花费的代价,可从以下两个方面来理解,一方面 是迁移路径的长短以及迁移核数目的多少,路径长则代价大,数目多代价也大; 另一方面是迁移过程保存任务花费的代价,具体可体现为保存上下文环境花费 的代价,例如保存处理器状态信息的进程控制块部分,可包括程序计数器、其 它处理器寄存器和栈信息,当进程迁移到另一个核资源分区上运行时,需要载 入之前保存的处理器状态信息的进程控制块部分。

下面对步骤103中将至少两个分散的核分区组成一个连续的核分区的实 现过程进行解释说明。

参见图4,示出了组合过程实施例1的流程图,可包括:

步骤201,从所述至少两个分散的核分区中选取一个基准核分区;

步骤202,迁移剩余的其它核分区,使所述基准核分区与其它核分区合并 形成所述连续的核分区。

也就是说,要先确定一个分区作为基准核分区,然后控制使剩余的其它核 分区分别迁移到该基准核分区附近,从而使分散的分区合并组成一个连续的核 分区。

对于选取确定基准核分区的方式,可以是随机的择一选定;也可以考虑迁 移代价,将位于中心区域(此处的中心区域,是依据至少两个分散的核分区的 实际分布位置确定出的一个相对中心的区域)的核分区确定为基准核分区,使 剩余其它核分区的迁移路径尽量短(迁移路径越短迁移代价也就越小);或者 也可以是将包含核数目最多的分区确定为基准核分区,使迁移的核数目尽量少 (核迁移虽然是整个分区一起迁移,但是每个分区的迁移代价又受迁移的核数 目影响,参与迁移的核数目越多迁移代价就越大)。

需要说明的是,本发明中的迁移是指,空出基准核分区周围的一些正在使 用的已分配分区的核,也就是说,将基准核分区周围的一些正在运行任务的核 调整为空闲核。具体地,步骤202将任务分配到其它核分区的过程可体现如下:

保存所述基准核分区相邻的已分配核分区正在运行的任务,所述已分配核 分区中的核数目与所述其它核分区中的核数目相同;将所述任务分配到所述其 它核分区运行。

在上述通过分区所处位置或者分区包含的核数目确定基准核分区,使迁移 代价尽量小的基础之上,为了进一步降低迁移代价,本发明还提供了连续的核 分区的组合过程的实施例2,具体可参见图5所示流程图,包括:

步骤301,根据核分区迁移代价,从所述至少两个分散核分区中选取一个 基准核分区和一个从核分区,以使总的核分区迁移代价最小,其中,所述总的 核分区迁移代价为各个分散的核分区的迁移代价之和;

步骤302,迁移所述从核分区,使所述从核分区与所述基准核分区合并;

步骤303,如果还有剩余的其它核分区,则再从合并后的核分区和剩余的 其它核分区中确定一个基准核分区和一个从核分区进行核分区迁移,直至将所 述至少两个核分区合并形成一个连续的核分区。

与上述实施例1不同的是,本实施例中在每次迁移之后都会根据实际情况 重新确定一下基准核分区,参见图6所示示意图,找到四个分散的核分区 ABCD,在第一次迁移过程中将位于中心区域的C确定为基准核分区,D确定 为从核分区,并将D迁移至C处形成新的分区C′,如果在第二次迁移过程 中仍将C′(也就是原来的C所处的位置)作为基准核分区,将A和B分别 迁移到C′处,则迁移代价会较大,这是因为在分区ABC′三者之中,显然 B是位于中心区域的,将A和C′分别迁移到B处,相对于将A和B迁移到 C′的代价要小。因此可以根据实际迁移情况在执行下一次迁移过程之前重新 确定下基准核分区。当然,也可能本次迁移重新确定的基准核分区还是上次迁 移过程的基准核分区。

另外,需要说明的是,如果找到的满足用户进程数目请求的是两个分散的 核分区,则按本实施例的方法进行一次从核分区迁移即可形成一个连续的核分 区。但是,如若找到的是至少三个分散的核分区,则在确定一个从核分区进行 一次迁移之后,还需要再重新确定基准核分区和从核分区,进行第二次以至更 多次的核分区迁移,此处不再赘述。

下面对步骤301中提及的,根据核分区迁移代价选取基准核分区和从核分 区,使总的核分区迁移代价最小,进行解释说明。

首先,需要说明的是,总的核分区迁移代价指的是在将分散的核分区组成 连续的核分区的过程中每次迁移过程花费的代价的总和。迁移代价主要受迁移 路径、迁移核数目两方面因素的影响,也就是说,迁移代价是由迁移路径长短 和/或迁移核数目多少来确定的。

为了使总的迁移代价最小就要使每次迁移的代价都尽量小,一般情况下, 在分散的核分区较多时,优选通过分区所处位置确定基准核分区和从核分区; 如果只找到两个分散的核分区,或者是经过多次迁移后剩余两个分散的核分 区,则可通过核分区包含的核数目确定基准核分区和从核分区,根据上述对迁 移代价的介绍可知,包含核数目多的应作为基准核分区,包含核数目少的作为 从核分区。

所谓使总的核分区迁移代价最小,可以理解为在确定从核分区时,应尽量 选取较为边缘的分区(较为边缘的分区可以理解为距离基准核分区最远的分 区,也即迁移路径中经过分区节点最多的分区。一般情况下,两个相邻分区之 间的节点数定义为1,若二者之间多间隔一个分区则节点数就相应的加1,例 如中间间隔有1个分区节点的两个分区之间的节点数为2,间隔有3个分区节 点的两个分区之间的节点数为4,节点数越多,则说明两个分区之间的距离越 远)或含核数目少的分区。仍以图6所示示意图为例,第一次迁移过程中将最 边缘的分区D确定为从核分区,就可使第一次迁移后的分区(ABC′)都尽 量集中,进而在第二次迁移时将B确定为基准核分区,迁移分布密集程度较 高的A和C′,使迁移代价最小。相比较的,如果在第一次迁移过程中将B 确定为从核分区,并将其迁移到C处形成新的分区C″,然后迁移分布相对分 散的A和D,与上述迁移A和C′的路径相比要长很多,相应地代价也就要 大很多。

步骤302中迁移从核分区的过程,可具体体现为:

保存所述基准核分区相邻的已分配核分区正在运行的任务,所述已分配核 分区中的核数目与所述从核分区中的核数目相同;将所述任务分配到所述从核 分区运行。

步骤302和303的迁移过程与上述步骤202中迁移剩余的其它核分区的过 程相同,均是使基准核分区周围的已分配核分区空闲出来,只是本过程为了降 低迁移代价,需要注意分区迁移的顺序。也就是说,步骤202中对剩余其它核 分区中先迁移哪个分区再迁移哪个分区并不做限定,步骤302和步骤303则迁 移的是根据迁移代价确定好的从核分区,也即核分区迁移存在顺序要求。此外, 还有一点不同需要说明的是,步骤202中只存在唯一一个基准核分区,步骤 302和步骤303则可能要根据迁移后的实际情况在下次迁移之前重新确定一个 基准核分区,而重新确定的基准核分区可能与上次迁移过程中确定的基准核分 区并不相同。

下面以迁移从核分区为例,对将任务分配到从核分区运行的实现方式进行 简单介绍。

第一种情况,参见图10所示示意图,若要将核分区c作为从核分区迁移 到基准核分区b处,则经过判断可发现核分区c含有2个空闲核,已分配核分 区region9也包含2个核,在不需拆分region9的情况下,即可直接将region9 的任务加载到核分区c上运行,使region9空闲出来,实现核分区c的迁移。

第二种情况,参见图12所示示意图,若要将核分区d作为从核分区迁移 到基准核分区e处,则经过判断可发现核分区d含有2个空闲核,已分配核分 区region11含有8个核,如果采用上述方式直接将region11的部分任务加载到 核分区d上运行,则会出现拆分region11的情况,就会导致region11运行的任 务进程间交互效率低,因此在需要拆分已分配核分区的情况下,本发明通过任 务中转的方式实现迁移。具体体现为:将核分区d通过路径region10、region11 中转至核分区e周围,也就是说,先将region10的部分任务加载到d上运行, 因为d与region10相邻,因此如此操作后也不会出现拆分region10的情况;然 后再将region11的部分任务加载到中转后的d上运行,形成图13所示示意图, 这样在不拆分任何一个region的情况下,就实现了组合核分区d与e的目的。 本实施例中,从操作结果来说,相当于先将region10上移,再将region11右移, 当然,其并不是如此简单的核分区移动,其中还包含着复杂的任务分配与迁移 中转过程。

也就是说,在进行任务分配时,如果无需拆分基准核分区周围的已分配核 分区,则直接进行任务的分配与加载;如果需要拆分已分配核分区,则按一定 的迁移路径进行任务的中转分配。

在上述第二种情况下,且依据本发明方法确定好最佳的基准核分区和从核 分区之后,通过什么样的路径将从核分区中转迁移到基准核分区周围,也会影 响到迁移代价,对此,本发明还提供了如下方案来进一步降低迁移代价。

方案一,确定所述从核分区与所述基准核分区之间的最短迁移路径;按照 所述最短迁移路径将所述任务中转迁移到所述从核分区运行。

如前文所说,迁移路径的长短直接影响着迁移代价的大小,因此在将从核 分区迁移到基准核分区之前,应先确定出能够使从核分区迁移到基准核分区的 所有路径,并从中找到最短的路径,也就是迁移代价最小的路径,按照该最短 路径进行核分区的迁移,也即按照该最短路径将保存的任务分配到从核分区运 行。仍以图12所示示意图为例,若要将核分区d作为从核分区迁移到基准核 分区e处,除了可以通过region10、region11路径中转之外,还可通过region6、 region5、region8、region7路径中转,然而通过比较就会发现,这两条迁移路 径的长短不同,即路径经过的核分区节点数不同,因此在上面的示例中,我们 选取路径较短的region10、region11进行任务的中转迁移,以使本次迁移的代 价最小。

方案二,确定从核分区和基准核分区间的最短迁移路径,如果存在至少两 个最短迁移路径,则依据所述最短迁移路径经过的核分区包含的核数目,对所 述最短迁移路径进行加权处理,并将权值最小的最短路径确定为最佳路径,按 照所述最佳路径中转所述任务。

本方案即是在方案一的基础之上,在确定出不止一个最短迁移路径时,通 过加权的方式从最短迁移路径中确定出一个最佳路径,然后按照最佳路径将保 存的任务中转到从核分区迁移。

所谓依据经过的分区包含的核数目进行加权处理是指,以核数目作为确定 权重的依据,通过加权处理的方式从至少两个最短迁移路径中找到一个迁移代 价最小的作为最佳路径。也就是说,在迁移路径相同的情况下,还有一个因素 会影响迁移代价,就是参与任务中转的核数目,如果迁移路径经过的核分区节 点数相同,则参与任务中转的核数目越多,迁移代价就越大,反之迁移代价就 小。

本方案中加权处理的具体方式为,将最短路径经过的核分区的权值相加作 为该最短路径的权值。一般情况下,在计算迁移路径时,两个分散的核分区之 间间隔有几个核分区节点,则将这些核分区节点视为“1”,此处,为了从间隔 有相同核分区节点数的路径中选择一个最佳路径,不再简单的将一个核分区节 点视为“1”,而是视其包含的核数目取其权值相加,并以此最终得到表示该路 径迁移代价的值。

对于核分区节点对应的权值来说,可以直接将核分区节点包含的核数目确 定为权值,例如,一个核分区节点包含4个核,则该核分区节点的权值就是4, 如果包含2个核,则权值为2。或者,还可为具有不同核数目的分区预先设置 不同的权值,例如,包含4个核的分区和包含2个核的分区的权值可分别设置 为40%和20%。无论是上述哪种确定权值的方式,其均是为了对包含不同核 数目的核分区节点加以区分,以在迁移路径经过的节点数相同时,通过核数目 选择一个迁移代价最小的最佳路径。本发明对确定权值的方式不做限定,只要 能实现上述目的即可。

方案三,确定从核分区和基准核分区间的最短迁移路径,如果存在至少两 个最短路径,则分别对每个最短路径进行加权处理,将权值最小的确定为最佳 路径;如果存在至少两个最佳路径,则分别计算按照至少两个最佳路径迁移形 成的连续的核分区中的至少两个核分区的核分布密集程度,并迁移所述从核分 区,使所述连续的核分区的核分布密集程度最高。

本方案即是在方案二的基础之上,在确定出不止一个最佳路径时,通过计 算组成的连续核分区中的核分布的密集程度的方式,从最佳路径中选择一个路 径进行核分区的迁移。

本方案中的密集程度主要用来表示连续的核分区中多个核间的位置分布 情况,如果各个核分布的越集中则密集程度就越高,分布的越分散密集程度就 越低。作为表示密集程度的一种最简单的实现方式,就是统计两两核之间的距 离之和;为了更明显的体现出不同核之间分布关系的波动情况,还可利用两两 核间的距离平方和来表示密集程度,除此之外,通过其它可替换方式亦可清楚 体现出核的密集程度,例如相同大小核分区中分布的核的数量、核分区中分布 的核的密度等。

对于组合而成的连续核分区的密集程度来说,可以参见图7a和图7b,两 个连续的核分区同样是由I、II、III、IV四个分散的核分区迁移形成,且均包 含8个core,然而通过计算两两核之间的距离平方和就会发现,图7a的密集 程度要高于图7b(即与图7b相比,图7a中8个core间的距离平方和要小一 些),因此在确定好基准核分区和从核分区,且存在至少两个最佳路径时,应 迁移从核分区,使之形成图7a所示的连续核分区。

本方案中,通过迁移路径和参与迁移的核数目无法确定迁移方式时,还可 考虑组合而成的连续核分区的通信效率。图7a所示的8个core的密集程度高, 可直接实现进程间的消息交互,通信效率高;相应地,图7b所示的8个core 的密集程度较低,在I、II、III包含的core之间可以直接实现进程间的消息 交互,而I、II包含的core分别与IV包含的core进行消息交互时,可能还要 经过其它core(图中未示出)才能实现,就会影响处理器的通信效率。

参见图8,示出了本发明核资源分配方法实施例2的流程图,所述方法包 括:

步骤401,获取用户进程所需的空闲核数目。

步骤402,找到满足所述数目请求的至少两个分散的核分区,其中,每个 核分区为一个或多个核的集合并且每个核分区中的所有核都是空闲核。

步骤403,将满足所述数目请求的至少两个分散的核分区作为一个组合, 判断是否存在至少两个满足所述数目请求的组合,如果是,则执行步骤404, 否则直接执行步骤405。

步骤404,计算每个组合的核分区分布密集程度,并将核分区密集程度最 高的组合确定为最佳组合,再利用形成所述最佳组合的至少两个分散的核分区 组成所述连续的核分区。

步骤405,将所述至少两个分散的核分区组成一个连续的核分区。

步骤406,将形成的所述连续的核分区分配给所述用户进程。

与分配方法实施例1所不同的是,本实施例中找到至少两个分散的核分区 之后,可将其视为一个组合,在将分散的核分区组成一个连续的核分区之前, 可以先判断下处理器中存在几个这样的组合,然后从多个组合中确定一个作为 最佳核分区组合,该最佳核分区组合既能够满足用户进程所需的空闲核数目, 又能保证迁移代价尽量小。

例如,用户进程需要的是包含8个核的分区,核资源分配装置在查找过程 中确定了2个满足用户进程需求的组合,一个组合包含3个核分区,且每个核 分区又分别包含2个、4个、2个core;另一个组合也包含3个核分区,但是 每个核分区分别包括2个、3个、3个core,此时可以从这两个组合中择一(装 置随机确定或者用户自主选择)进行迁移处理,也可以从这两个组合中选取一 个最佳核分区组合(所谓最佳核分区组合是指总的迁移代价最小的组合)。本 发明提供的确定最佳核分区组合的方式为,计算每个组合包含的核分区节点间 的密集程度,密集程度高就表示核分区节点分布集中,相应地总的迁移代价也 就小。

计算核分区节点间密集程度的方式与上述方案三中介绍计算core密集程 度的方式相类似,可通过计算两两核分区节点间的距离之和或者距离的平方和 的方式实现,此处不再赘述。需要说明的是,二者除了计算对象有所不同之外 (方案三中计算对象是连续的核分区包含的core,本实施例中计算对象是用于 形成连续的核分区的分散核分区),还存在以下区别:

方案三中主要是利用密集程度反映连续的核分区中core的通信效率,本 实施例中主要是利用密集程度反映核分区节点间的分布情况,进而反映出核分 区节点的迁移代价。当然,在本实施例任务分配过程中需要确定迁移路径时, 也可能会利用方案三来实现,也就是说在一整套分配流程中可能需要计算两次 密集程度:一次是存在至少两个核分区组合时,通过计算组合中至少两个分散 的核分区节点(迁移前)间密集程度的方式找到一个最佳核分区组合;一次是 存在至少两个最佳路径时,通过计算组合而成的连续的核分区(迁移后)中 core间密集程度的方式找到一个路径完成任务分配。

参见图9,示出了本发明核资源分配方法实施例3的流程图,所述方法包 括:

步骤501,获取用户进程所需的空闲核数目。

步骤502,判断所述众核平台中是否存在满足所述数目请求的连续核分区, 如果存在,则执行步骤503将所述连续核分区分配给所述用户进程;如果不存 在,则执行步骤504。

步骤504,找到满足所述数目请求的至少两个分散的核分区,其中,每个 核分区为一个或多个核的集合并且每个核分区中的所有核都是空闲核。

步骤505,将所述至少两个分散的核分区组成一个连续的核分区。

步骤506,将形成的所述连续的核分区分配给所述用户进程。

本实施例中,在找到至少两个分散的核分区之前,先判断众核平台(也即 处理器)中是否存在既能满足用户进程需求,又在位置上相邻的连续核分区, 如果存在即可直接将该连续核分区分配给用户进程,无需利用分散核分区组成 一个连续核分区。也就是说,核资源分配装置获取用户进程所需的空闲核数目 之后,直接查找满足该数目要求的连续核分区,只有在查找不到这种连续核分 区时才按本发明迁移分区的方案,为用户进程合并一个连续的核分区。如此方 案,既能保证处理器的整体利用率以及通信效率,又能提高本发明核资源分配 的效率。

下面以核资源分配装置维护核区域链表和连通图的方式为例,对本发明核 资源分配的过程进行简单介绍。

在OS启动后,核资源分配装置会首先启动获取处理器(即众核平台)所 有核的信息,然后统一管理所有的核。在用户进程启动时,会向核资源分配装 置申请所需要的核分区,例如需要申请8个核。具体分配过程如下:

首先,核资源分配装置判断处理器当前存在的空闲核总数是否满足用户进 程所需的空闲核数目,如果不满足,则缓存用户进程的请求;否则继续下述分 配流程。

其次,在核资源分配装置确定处理器当前的空闲核满足用户进程所需时, 查找链表判断是否存在一块连续核分区能满足用户进程的需求,如果存在,则 直接将该连续核分区分配给用户进程供其运行,同时还要更新连通图中该连续 核分区的状态为已分配,并将该连续核分区对应的节点从链表中移除;否则继 续下述分配流程。

接着,核资源分配装置遍历链表找到满足用户进程数目请求的至少两个分 散的核分区,例如,从图10所示的处理器核分区分布图中确定了三个分区节 点abc(其中a包含3个空闲core,b包含3个空闲core,c包含2个空闲core), 并将分区节点b选定为基准核分区,确定好a的迁移路径为region3,c的迁移 路径为region9、region10。需要说明的是,图中黑色节点表示的是空闲核,白 色节点表示的是已分配核。

然后,将c选定为从核分区,并按上述确定的迁移路径将c迁移至b处, 同时更新连通图中分区13、12、10、9、5、a、c的位置关系。

最后,将a选定为从核分区,并按上述确定的迁移路径将a迁移至b处, 使abc三者组合形成一个连续的核分区14,具体可参见图11所示的迁移后的 核分区分布图,同时还要更新连通图中分区0、1、5、2、3、6、a、b的位置 关系,并将连通图中原来为空闲状态的分区abc更新为处于已分配状态的分区 14,同时将原分区abc对应的节点从链表中移除,图3即为迁移并更新后的链 表。

需要说明的是,如果无法在不拆分基准核分区周围的已分配核分区的情况 下进行任务分配,则可通过判断该已分配核分区运行的任务的优先级与请求核 资源分配的用户进程的优先级,如果用户进程的优先级较低,则等已分配核分 区运行的任务完成后,再进行核分区迁移;如果用户进程的优先级较高,则拆 分已分配核分区运行的任务,使该分区空闲出来形成连续核分区供用户进程运 行。当然,本发明对在什么情况下迁移核分区以及决定迁移的策略(上述介绍 的优先级即为一种决定迁移的策略)方面并不做限定,只要能在保证众核平台 正常工作的情况下,将至少两个分散的核分区组成一个连续的核分区即可。

相应地,本发明还提供一种核资源分配装置,参见图14,示出了装置实 施例1的示意图,所述装置包括:

获取单元601,用于获取用户进程所需的空闲核数目。

其中,所述获取单元,具体用于接收所述用户进程发送的请求,并解析所 述请求获得所述用户进程所需的空闲核数目;或者,所述获取单元,具体用于 查找空闲核数目配置数据库,获得所述用户进程所需的空闲核数目,所述数据 库保存有所述用户进程与所述空闲核数目的对应关系。

查找单元602,用于找到满足所述数目请求的至少两个分散的核分区,其 中,每个核分区为一个或多个核的集合并且每个核分区中的所有核都是空闲 核。

组合单元603,用于将所述至少两个分散的核分区组成一个连续的核分区。

分配单元604,用于将所述组合单元形成的所述连续的核分区分配给所述 用户进程。

进一步地,与图4所示组合过程实施例1相对应地,本发明还提供组合单 元603实施例1的构成示意图,参见图15,包括:

第一选取单元6031,用于从所述至少两个分散的核分区中选取一个基准 核分区。

第一迁移单元6032,用于迁移剩余的其它核分区,使所述基准核分区与 其它核分区合并形成所述连续的核分区。

其中,所述第一迁移单元包括:

第一保存单元,用于保存所述基准核分区相邻的已分配核分区正在运行的 任务,所述已分配核分区中的核数目与所述其它核分区中的核数目相同;

第一任务分配单元,用于将所述任务分配到所述其它核分区运行。

进一步地,与图5所示组合过程实施例2相对应地,本发明还提供组合单 元603实施例2的构成示意图,参见图16,包括:

第二选取单元6033,用于根据核分区迁移代价,从所述至少两个分散核 分区中选取一个基准核分区和一个从核分区,以使总的核分区迁移代价最小, 其中,所述总的核分区迁移代价为各个分散的核分区的迁移代价之和。

第二迁移单元6034,用于迁移所述从核分区,使所述从核分区与所述基 准核分区合并;如果还有剩余的其它核分区,则再从合并后的核分区和剩余的 其它核分区中确定一个基准核分区和一个从核分区进行核分区迁移,直至将所 述至少两个分散核分区合并形成一个连续的核分区。

其中,所述第二迁移单元包括:

第二保存单元,用于保存所述基准核分区相邻的已分配核分区正在运行的 任务,所述已分配核分区中的核数目与所述从核分区中的核数目相同;

第二任务分配单元,用于将所述任务分配到所述从核分区运行。

进一步地,为了降低核分区的迁移代价,在第二任务分配单元迁移从核分 区时,还应选择一个合理的迁移路径,对此本发明提供了以下三个方案:

方案一,所述第二任务分配单元包括:

第一确定单元,用于确定所述从核分区与所述基准核分区之间的最短迁移 路径;

第一分配子单元,用于按照所述最短迁移路径将所述任务中转到所述从核 分区运行。

在上述方案一的基础上,还提供如下方案二,所述第二任务分配单元还包 括:

加权处理单元,用于在存在至少两个最短迁移路径时,依据所述最短迁移 路径经过的核分区包含的核数目,对所述最短迁移路径进行加权处理,并将权 值最小的最短路径确定为最佳路径,使所述第一分配子单元按照所述最佳路径 中转所述任务。

在上述方案二的基础上,还提供如下方案三,所述第二任务分配单元还包 括:

核密集度计算单元,用于在存在至少两个最佳路径时,计算按照最佳路径 迁移形成的所述连续的核分区中的至少两个核分区的核分布密集程度,并迁移 所述从核分区,使所述连续的核分区的核分布密集程度最高。

参见图17,示出了核资源分配装置实施例2的示意图,所述装置包括:

获取单元701,用于获取用户进程所需的空闲核数目。

查找单元702,用于找到满足所述数目请求的至少两个分散的核分区,其 中,每个核分区为一个或多个核的集合并且每个核分区中的所有核都是空闲 核。

核分区密集度计算单元703,用于将满足所述数目请求的至少两个分散的核分区作为一个组合,如果存在至少两个满足所述数目请求的组合,则计算每 个组合的核分区分布密集程度,并将核分区密集程度最高的组合确定为最佳组 合。

组合单元704,用于将所述最佳组合的至少两个分散的核分区组成一个连 续的核分区。

分配单元705,用于将所述组合单元形成的所述连续的核分区分配给所述 用户进程。

参见图18,示出了核资源分配装置实施例3的示意图,所述装置包括:

获取单元801,用于获取用户进程所需的空闲核数目。

判定单元802,用于判断所述众核平台中是否存在满足所述数目请求的连 续核分区,如果存在,则将所述连续核分区分配给所述用户进程。

查找单元803,用于在所述判定单元判断不存在所述连续核分区时,找到 满足所述数目请求的至少两个分散的核分区,其中,每个核分区为一个或多个 核的集合并且每个核分区中的所有核都是空闲核。

组合单元804,用于将所述至少两个分散的核分区组成一个连续的核分区。

分配单元805,用于将所述组合单元形成的所述连续的核分区分配给所述 用户进程。

除此之外,本发明还提供一种众核系统,所述系统包括多个核,所述多个 核中包含一个执行核,所述执行核用于按照本发明提供的分配方法对所述多个 核中的其它多个核进行资源分配。需要说明的是,执行核即是本发明分配方法 的执行主体,在用户进程申请核资源时,由执行核负责对系统中的其它核进行 资源分配,以供用户进程运行。

进一步地,本发明实施例还分别提供了核资源分配装置的硬件构成。可包 括至少一个处理器(例如CPU),至少一个网络接口或者其它通信接口,存储 器,和至少一个通信总线,用于实现这些装置之间的连接通信。处理器用于执 行存储器中存储的可执行模块,例如计算机程序。存储器可能包含高速随机存 取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器 (non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口(可 以是有线或者无线)实现该系统网关与至少一个其它网元之间的通信连接,可 以使用互联网,广域网,本地网,城域网等。

参见图19,在一些实施方式中,存储器中存储了程序指令,程序指令可 以被处理器执行,其中,程序指令包括获取单元601、查找单元602、组合单 元603、分配单元604,各单元的具体实现可参见图14所揭示的相应单元。或 者程序指令还可包括图17或18所揭示的其它单元,这里不再赘述。

本发明方案可以在由计算机执行的计算机可执行指令的一般上下文中描 述,例如程序单元。一般地,程序单元包括执行特定任务或实现特定抽象数据 类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中 实践本发明方案,在这些分布式计算环境中,由通过通信网络而被连接的远程 处理设备来执行任务。在分布式计算环境中,程序单元可以位于包括存储设备 在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相 似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之 处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得 比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施 例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是 物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以 位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择 其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在 不付出创造性劳动的情况下,即可以理解并实施。

以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发 明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同 时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用 范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号