首页> 中国专利> 一种在FCMP上支持系统级资源分配和任务调度的方法及装置

一种在FCMP上支持系统级资源分配和任务调度的方法及装置

摘要

本发明公开了一种在FCMP上支持系统级资源分配和任务调度的方法及装置,包括:向上层软件提供一组具有统一接口的原语;调用返回暂停原语,暂停FCMP上当前运行逻辑核,向上层软件返回逻辑核的标识号和粒度;调用与任务调度相关的原语,执行对应的操作,完成任务调度;调用继续执行原语以运行逻辑核;并且,根据任务运行时粒度需求周期性调整当前运行逻辑核的粒度,直至下一次任务调度。本发明通过在FCMP芯片硬件和操作系统软件之间加入运行时支持,利用一组具有统一接口的原语向上层软件提供用于进行系统级任务调度决策的FCMP上的逻辑核粒度及标识号,使得上层软件可以根据当前的逻辑核粒度进行任务调度决策,并调用相关原语实现任务调度。

著录项

  • 公开/公告号CN101937370A

    专利类型发明专利

  • 公开/公告日2011-01-05

    原文格式PDF

  • 申请/专利权人 中国科学技术大学;

    申请/专利号CN201010261772.2

  • 申请日2010-08-16

  • 分类号G06F9/50;G06F9/48;

  • 代理机构北京集佳知识产权代理有限公司;

  • 代理人逯长明

  • 地址 230026 安徽省合肥市金寨路96号

  • 入库时间 2023-12-18 01:26:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-02-13

    授权

    授权

  • 2011-03-02

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

    实质审查的生效

  • 2011-01-05

    公开

    公开

说明书

技术领域

本发明涉及运行时支持领域,尤其涉及一种在FCMP上支持系统级资源分配和任务调度的方法及装置。

背景技术

FCMP(Flexible-core Chip Multiprocessor,逻辑核动态可重构的多核处理器)是近年来提出的一类新兴的多核处理器结构,其允许资源分配器(可以用硬件或软件实现)根据程序的运行时特征动态地调整逻辑核的数量和粒度,为提高系统吞吐率和芯片资源利用率提供了巨大的优化空间。

但是,由于现有的操作系统设计都是面向固定数目、固定粒度的多核处理器结构,即芯片上处理器的数目和粒度在芯片设计时就已固定,因此其无法直接用于管理处理器数目、粒度动态可变的FCMP结构。

现有技术的FCMP结构主要包括美国Cornell大学提出的Core Fusion结构和美国Texas大学提出的TFlex结构。Core Fusion结构在编译时向程序中显式插入FUSE/SPLIT指令,通过FUSE和SPLIT指令在运行时的执行完成对逻辑核粒度的调整。这种结构中,虽然逻辑核粒度调整这个动作是在运行时进行的,但是何时、何种条件下对逻辑核粒度做调整是在编译时静态决定的。因此,该结构无法直接支持操作系统对芯片资源的管理。TFlex结构采用类数据流(EDGE)指令,可以实现支持芯片上任意数目的物理核构成一个多发射的逻辑核。此外,还有基于TFlex结构提出的三种FCMP上逻辑核的分配算法(EQUI平均分配算法、PDPA基于性能评估的分配算法和Profile基于程序剖析的分配算法),虽然使用低层的运行时软件可以实现这三种算法,但是,该方法只能实现如何在对程序透明的情况下根据程序的运行时特征指导逻辑核粒度的调整,并不能支持FCMP上系统级资源分配和任务调度。

因此可以看出,现有的对FCMP的管理,只能实现在系统级之下的软件层面上的初步的资源分配,而无法实现系统级的资源分配和任务调度。

发明内容

有鉴于此,本发明提供一种在FCMP上支持系统级资源分配和任务调度的方法及装置。其具体方案如下所述:

一种在多核处理器FCMP上支持系统级资源分配和任务调度的方法,包括:

向上层软件提供一组具有统一接口的原语,所述原语包括:返回暂停原语、逻辑核创建原语、上下文装载原语、逻辑核释放原语、上下文保存原语和继续执行原语;

调用所述返回暂停原语,暂停FCMP上当前运行逻辑核,向上层软件发送所述逻辑核的标识号和粒度,所述逻辑核的标识号和粒度用于确定系统级任务调度决策;

调用与所述任务调度相关的原语,执行对应的操作,完成任务调度;

调用继续执行原语以运行逻辑核,根据任务运行时粒度需求调整当前运行逻辑核的粒度,直至下一次任务调度。

优选的,按照以下步骤根据粒度需求调整当前运行逻辑核的粒度:

判断是否满足执行调整粒度的条件;

当满足所述执行调整粒度的条件时,暂停执行全部逻辑核;

根据当前FCMP的逻辑核信息生成芯片资源位图,标志出逻辑核在芯片上的位置及粒度;

依据所述芯片资源位图,根据所述粒度需求调整逻辑核的粒度;

启动所有逻辑核继续执行。

优选的,按照以下步骤依据所述芯片资源位图,根据所述粒度需求调整逻辑核的粒度:

判断粒度需求类型,所述粒度需求类型包括增加粒度和减小粒度;

当所述粒度需求类型为增加粒度时,根据所述芯片资源位图判断空闲物理核的数量及位置是否满足增加粒度需求,若是,则根据所述粒度需求增加对应的逻辑核的粒度,若否,则忽略此需求;

当所述粒度需求为减小粒度时,根据所述进程的需求减小逻辑核的粒度。

优选的,所述执行调整粒度的条件包括:到达预设时间。

优选的,所述逻辑核的标识号为运行在其上的进程标识号。

一种在FCMP上支持系统级资源分配和任务调度的装置,包括:统一函数接口和芯片资源调度器,其中:

所述统一函数接口用于,向上层软件提供一组具有统一接口的原语,所述原语包括:返回暂停原语、逻辑核创建原语、上下文装载原语、逻辑核释放原语、上下文保存原语和继续执行原语,调用所述返回暂停原语,暂停FCMP内当前运行逻辑核,调用与所述任务调度相关的原语,执行对应的操作,完成任务调度;

所述芯片资源调度器用于,当所述统一函数接口调用所述返回暂停原语,暂停FCMP内当前运行逻辑核时,向上层软件发送所述逻辑核的标识号和粒度,所述逻辑核的标识号和粒度用于进行任务调度决策,在完成任务调度后调用继续执行原语以运行逻辑核,并在相邻系统级任务调度之间根据任务运行时粒度需求调整相应逻辑核的粒度。

本发明通过在FCMP芯片硬件和操作系统软件之间加入运行时支持,提供一组具有统一接口的原语向上层软件提供用于进行任务调度决策的FCMP上的逻辑核粒度及标识号,使得上层软件可以根据当前的逻辑核粒度进行任务调度决策,并调用相关原语实现任务调度,并且在任务调度之后,通过对运行的逻辑核进行粒度调整保证FCMP的灵活性和高效能,从而达到在FCMP上支持系统级资源分配和任务调度的目的,并保持上层软件的可移植性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1公开的在FCMP上支持系统级资源分配和任务调度的方法流程图;

图2为本发明实施例2公开的在FCMP上支持系统级资源分配和任务调度的方法流程图;

图3为本发明实施例3公开的在FCMP上支持系统级资源分配和任务调度的方法中根据粒度需求对运行的逻辑核进行粒度调整的流程图;

图4为本发明实施例4公开的在FCMP上支持系统级资源分配和任务调度的方法流程图;

图5为本发明实施例4公开的又一在FCMP上支持系统级资源分配和任务调度的方法流程图;

图6为本发明实施例5公开的在FCMP上根据调用原语创建逻辑核的方法流程图;

图7为本发明实施例6公开的在FCMP上执行换出进程任务调度命令的方法流程图;

图8为本发明公开的在FCMP上支持系统级资源分配和任务调度的装置的结构示意图;

图9为本发明公开的上层软件和FCMP之间的连接关系示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明公开了一种在FCMP上支持系统级资源分配和任务调度的方法,通过统一函数接口,向上层软件只提供FCMP逻辑核的标识号和粒度,隐藏了其他复杂信息,但同时实现上层软件根据接收逻辑核的标识号和粒度判断空闲物理核数目以决策进程的切换、然后调用原语完成FCMP上的资源分配和任务调度,同时在每两次任务调度之间,实时地调整运行逻辑核的粒度,以保证FCMP的灵活性和高效能。其具体实施方式如下所示:

实施例一

本实施例公开的支持系统级资源分配和任务调度方法如图1所示,包括:

步骤S11、向上层软件提供一组具有统一接口的原语,所述原语包括:返回暂停原语、逻辑核创建原语、上下文装载原语、逻辑核释放原语、上下文保存原语和继续执行原语;

本步骤中的原语具有统一接口,即接口和结构无关,通过原语实现上层软件对抽象后的逻辑核资源的申请和释放,避免了上层软件对FCMP硬件资源的直接管理,降低了由于FCMP硬件灵活性带来的系统级任务调度和资源管理的难度,并保持了上层软件的可移植性。

下面对提供的原语进行详细的介绍,其中,中断返回原语为:struct lp_alloc_info*read_cpu_allocation_info(),该原语暂停所有的逻辑核,并返回一个数组指针。每个逻辑核都在该返回数组中对应一个数组成员,记录它的粒度。同时,每一个逻辑核一一对应于正在执行的进程。从而上层软件可以利用数组中的每个数组成员记录的cores_num更新每个进程的资源占用量,即更新每个进程对应的逻辑核的粒度。返回指针NULL指出当前FCMP上没有生成任何逻辑核。

逻辑核创建原语为:int create_logic_core(struct lp_alloc_info*next),该原语触发芯片资源调度器为新进程next创建一个逻辑核,该逻辑核粒度为next->cores_num,并由next->pid标识,即由进程next的标识符标识。原语返回1表示逻辑核成功创建,返回0指出在逻辑核创建过程中发生了硬件级错误。

上下文装载原语为:bool load_context(PCB*next),该原语触发芯片资源调度器将进程next的上下文装载到对应的逻辑核next->pid上。原语返回true表示上下文装载成功,返回false指出装载中发生了硬件级错误。

逻辑核释放原语为:int free_logic_core(int pid),该原语触发芯片资源调度器释放一个已有的标识为pid逻辑核。原语返回1表示逻辑核成功释放,返回0指出在逻辑核释放过程中发生了硬件错误。

上下文保存原语为:bool save_context(PCB*prev),该原语触发芯片资源调度器将逻辑核prev->pid上进程prev的上下文保存到内存中。原语返回true表示上下文保存成功,返回false指出保存过程中发生了硬件级错误。

继续执行原语为:bool continue_processors(),该原语触发芯片资源调度器唤醒所有的逻辑核继续运行。原语返回true表示所有的逻辑核都已成功唤醒,返回false指出唤醒过程中发生了硬件级错误。

步骤S12、调用所述返回暂停原语,暂停FCMP内当前运行逻辑核,向上层软件发送所述逻辑核的标识号和粒度,所述逻辑核的标识号和粒度用于进行任务调度决策;

暂停运行逻辑核后,对逻辑核的信息进行抽象,只将当前运行逻辑核的标识号和粒度发送给上层软件,而隐藏了其他的结构细节,例如逻辑核是由哪些物理核组成、其在芯片上的位置、何时对哪些逻辑核进行粒度调整以及如何调整等,使得上层软件只需根据每个被调度进程的资源需求等系统属性进行进程调度决策,符合现有系统级资源分配和任务调度技术的特征,建立起实现系统级资源分配和任务调度基础。经过抽象后,上层软件可见的逻辑核参数如下所示:

struct lp_alloc_info{

   int lp_id;     //logical processor ID

   int cores_num; //logical processor size

}

由于FCMP的硬件灵活性,其实际运行时的逻辑核粒度会根据进程不同的运行阶段进行调整,而上层软件中保存的逻辑核信息是进程上一个运行阶段的逻辑核粒度,并不能够体现当前运行阶段的逻辑核粒度,所以需要利用获取的当前逻辑核粒度更新上层软件保存的信息。此时只将当前逻辑核调整后的粒度进行体现,而不会体现其具体的调整过程,所以上层软件,例如OS进程调度程序,只看到特定时刻每个进程静态的资源占用/需求,而不会看到其所占资源动态调整的过程。

步骤S13、调用与所述任务调度相关的原语,执行对应的操作,完成任务调度;

根据上层软件做出的任务决策调用相关的原语,完成任务调度。

步骤S14、在完成任务调度后调用继续执行原语以运行逻辑核;

继续运行逻辑核。

步骤S15、根据粒度需求调整当前运行逻辑核的粒度,直至下一次任务调度。

逻辑核运行过程中,逻辑核配置算法会周期性计算出每一个逻辑核的粒度需求,例如需要增大会减小逻辑核粒度,根据粒度需求,在两次任务调度过程中间,实时的调整运行逻辑核的粒度。

本发明公开的实现系统级资源分配和任务调度的方法,通过提供具有统一接口的原语,并对逻辑核的信息进行抽象,只将当前运行逻辑核的标识号和粒度发送给上层软件,而隐藏了其他的结构细节,使得上层软件只需根据每个被调度进程的资源需求等系统属性进行进程调度,符合现有系统级资源分配和任务调度技术的特征,实现了支持系统级资源分配和任务调度技术的目的。同时,上层软件只进行根据待执行的任务调用相关原语的操作,并不涉及具体的资源分配操作,简化了系统的工作。

实施例二

本实施例公开的支持系统级资源分配和任务调度的方法流程如图2所示,包括:

步骤S21、向上层软件提供一组具有统一接口的原语,所述原语包括:返回暂停原语、逻辑核创建原语、上下文装载原语、逻辑核释放原语、上下文保存原语和继续执行原语;

步骤S22、调用所述返回暂停原语,暂停FCMP内当前运行逻辑核,向上层软件发送所述逻辑核的标识号和粒度,所述逻辑核的标识号和粒度用于进行任务调度决策;

步骤S23、调用与所述任务调度决策相关的原语,执行对应的操作,完成任务调度;

步骤S24、在完成任务调度后调用继续执行原语以运行逻辑核;

步骤S25、判断是否到达预设时间,若是则执行步骤S26,若否则重复执行本步骤;

本实施例所述的执行调整粒度的时间条件为到达预设时间。其设计为周期性时钟触发,则只要到达预设周期的量级,例如0.1ms,只要时间为0.1ms的倍数,就会触发。

步骤S26、暂停执行全部逻辑核;

调用返回暂停原语。

步骤S27、根据当前FCMP的逻辑核信息生成芯片资源位图,标志出逻辑核在芯片上的位置及粒度;

步骤S28、依据所述芯片资源位图,根据所述粒度需求调整逻辑核的粒度;

步骤S29、启动所有逻辑核继续执行;

步骤S210、判断是否进行下一次任务调度,若否,则返回执行步骤S25,若是,则返回执行步骤S22。

本实施例公开了根据粒度需求对运行的逻辑核进行粒度调整的过程,实现了在两次任务调度中间对运行逻辑核粒度进行调整,采用芯片资源位图的形式,直观的将逻辑核的位置和粒度进行显示,简化了操作。充分利用FCMP的灵活性,自动调整进程运行过程中逻辑核粒度,保证进程的正常、高效运行,同样适用于其他的任务处理过程。本实施例中的逻辑核配置算法可以为EQUI、PDPA和Profile中的任意两种,也可以为其他的逻辑核配置算法,本实施例中采用EQUI和PDPA,其中,EQUI根据当前运行的进程的数目均分物理核构成逻辑核;而PDPA则周期性的评估每个线程在当前逻辑核上的运行效率,从而决定每个逻辑核的粒度如何调整。其特征比较如下表所示:

实施例三

本实施例是公开的支持系统级资源分配和任务调度的方法中根据粒度需求对运行的逻辑核进行粒度调整的又一实施例,流程如图3所示,包括:

步骤S31、判断是否满足执行调整粒度的条件,若是则执行步骤S32,若否则重复执行本步骤;

步骤S32、暂停执行全部逻辑核;

步骤S33、根据当前FCMP的逻辑核信息生成芯片资源位图,标志出逻辑核在芯片上的位置及粒度;

步骤S34、判断所述粒度需求的类型,当所述粒度需求类型为增加粒度时,执行步骤S35,当所述粒度需类型为减小粒度时,执行步骤S38;

步骤S35、根据所述芯片资源位图判断空闲物理核的数量及位置是否满足增加粒度需求,若是,则执行步骤S36,若否,则执行步骤S37;

步骤S36、根据所述进程的需求增加逻辑核的粒度,执行步骤S31;

步骤S37、忽略此进程的需求,执行步骤S31;

步骤S38、根据所述进程的需求减小逻辑核的粒度,执行步骤S31。

本实施例中,具体描述了根据不同粒度需求执行相应的粒度调整的过程,本实施例并不限定其具体的粒度调整过程,当物理核的数量及位置信息不满足增加粒度需求时,也可以根据具体的情况释放相邻的逻辑核,或者迁移物理核,使其满足位置条件,进而实现对其粒度的调整。

实施例四

本实施例具体公开了当任务调度为换入运行进程时,利用本发明公开的实现系统级资源分配和任务调度的方法实现系统级的资源分配和任务调度的具体步骤,包括:

步骤S41、向上层软件提供一组具有统一接口的原语,所述原语包括:返回暂停原语、逻辑核创建原语、上下文装载原语、逻辑核释放原语、上下文保存原语和继续执行原语;

步骤S42、调用所述返回暂停原语,暂停FCMP内当前运行逻辑核,向上层软件发送所述逻辑核的标识号和粒度,所述逻辑核的标识号和粒度用于进行任务调度决策;

步骤S43、上层软件依据所述逻辑核的标识号和粒度计算空闲物理核是否满足待换入进程的资源需求,若是,则执行步骤S46,若否,则执行步骤S44;

步骤S44、选择一个运行态的进程进行换出,依次调用上下文保存原语和逻辑核释放原语,释放其对应的逻辑核,并将所述释放的逻辑核粒度加到空闲物理核数上;

步骤S45、判断此时空闲物理核是否满足所述待换入进程的资源需求,若是,则执行步骤S46,若否,则返回执行步骤S44;

步骤S46、上层软件换入所述进程,调用逻辑核创建原语,依据所述进程的资源需求为该进程创建对应粒度的逻辑核;

步骤S47、调用上下文装载原语,将所述进程的上下文装载到所述逻辑核;

步骤S48、调用继续执行原语,执行全部进程。

本实施例同时公开了另外的一种处理流程,如图5所示,其中步骤S51-S57与图3中S41-S47相同,在步骤S57后,又增加了其他的处理流程,包括:

步骤S58、判断剩余的空闲物理核数目是否满足进程等待队列队首进程的资源需求,若是,则返回执行步骤S56,若否,则执行步骤S59;

步骤S59、调用继续执行原语,执行全部进程。

本实施例公开的实现方法中,在创建新的进程后,又增加了一步判断剩余空闲物理核是否满足下一等待进程的资源需要的步骤,由于该步骤几乎不会增加系统的调度时间,所以实现了在不增加系统负荷的前提下,提高系统性能的目的。

实施例五

本实施例具体公开了当调用原语为逻辑核创建原语时,根据调用原语创建逻辑核的过程,如图6所示:

步骤S61、芯片资源调度器将所有逻辑核的状态以及其上运行的进程状态保存到内存中;

步骤S62、将所有的物理核标识为空闲;

步骤S63、将被保存的以及待创建的逻辑核按照粒度从大到小排序;

步骤S64、从芯片资源位图所示的物理核阵列的左下角开始,沿向上和向右两个方向依次分配所述逻辑核。

实施例六

本实施例公开了当任务调度命令为换出运行进程时,本发明的具体实现过程,如图7所示,包括:

步骤S71、向上层软件提供一组具有统一接口的原语,所述原语包括:返回暂停原语、逻辑核创建原语、上下文装载原语、逻辑核释放原语、上下文保存原语和继续执行原语;

步骤S72、调用所述返回暂停原语,暂停FCMP内当前运行逻辑核,向上层软件发送所述逻辑核的标识号和粒度,所述逻辑核的标识号和粒度用于进行任务调度决策;

步骤S73、上层软件执行换出所述进程,调用上下文保存原语,将所述被换出的进程上下文保存到内存中;

步骤S74、调用逻辑核释放原语,释放所述进程对应的逻辑核,并将所述释放的逻辑核粒度加到空闲物理核数上。

本实施例公开的换出进程的过程结束后,同样也可以加入对空闲物理核数目进行判断的过程,如果当前空闲物理核的数目满足进程等待队列中队首进程的物理核需求时,可以直接进行换入该进程的操作,以实现提高系统性能目的。

本发明同时公开了一种在FCMP上支持系统级资源分配和任务调度的装置,其结构如图8所示,包括:统一函数接口81和芯片资源调度器82,其中:

所述统一函数接口81用于向上层软件提供一组具有统一接口的原语,所述原语包括:中断返回原语、逻辑核创建原语、上下文装载原语、逻辑核释放原语、上下文保存原语和继续执行原语,调用所述返回暂停原语,暂停FCMP内当前运行逻辑核,调用与所述任务调度相关的原语,执行对应的操作,完成任务调度;

所述芯片资源调度器82用于当所述统一函数接口调用所述返回暂停原语,暂停FCMP内当前运行逻辑核时,向上层软件发送所述逻辑核的标识号和粒度,所述逻辑核的标识号和粒度用于进行任务调度决策,在完成任务调度后调用继续执行原语以运行逻辑核,并且,根据粒度需求周期性调整当前运行逻辑核的粒度,直至下一次任务调度。

本发明公开的装置可以表述为将FCMP的硬件资源进行抽象后形成的芯片资源抽象层,其与上层软件和FCMP之间的连接关系如图9所示,其中,芯片资源抽象层92通过统一函数接口921与上层软件91建立联系,统一函数接口921通过调用原语触发芯片资源调度器922内的逻辑核分配调度器9221,对FCMP93上的逻辑核进行构建和释放等操作,以实现上层软件91的任务调度命令,并根据逻辑核配置算法9222的结果对FCMP93上运行的逻辑核周期性地进行粒度调整。

本发明公开的在FCMP上支持系统级资源分配和任务调度的装置,建立起上层软件和FCMP之间的联系,避免了上层软件直接对FCMP进行操作管理,实现了在FCMP上支持系统级资源分配和任务调度的目的。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号