CN118210599A - 芯片资源调度方法及相关装置 - Google Patents

芯片资源调度方法及相关装置 Download PDF

Info

Publication number
CN118210599A
CN118210599A CN202211622184.6A CN202211622184A CN118210599A CN 118210599 A CN118210599 A CN 118210599A CN 202211622184 A CN202211622184 A CN 202211622184A CN 118210599 A CN118210599 A CN 118210599A
Authority
CN
China
Prior art keywords
cores
core
physical
logic
performance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211622184.6A
Other languages
English (en)
Inventor
孙涛
成坚
周轶刚
胡建超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211622184.6A priority Critical patent/CN118210599A/zh
Priority to PCT/CN2023/137415 priority patent/WO2024125402A1/zh
Publication of CN118210599A publication Critical patent/CN118210599A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请涉及芯片资源调度方法及相关装置,其中方法包括:获取多个逻辑核的性能效率,其中,多个逻辑核被调度用于执行操作系统上的用户任务进程或系统任务进程;确定多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度,其中,多个逻辑核与多个异构的物理核是一一映射关系,逻辑核的性能效率为逻辑核在所映射的物理核上执行任务进程的性能效率;若多个逻辑核的性能效率与多个异构的物理核的处理性能不满足预设匹配度,则更新多个逻辑核与多个异构的物理核的映射关系。采用本申请实施例,可以降低(异构)芯片资源调度复杂度和开销,提升资源调度的效率。

Description

芯片资源调度方法及相关装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种芯片资源调度方法及相关装置。
背景技术
通常情况下,不同程序负载往往具有不同的性能特征,程序在不同性能阶段,对CPU资源的需求也是不同的。随着芯片组(Chiplet)技术更加成熟,大小核(物理核)异构处理器在中央处理器(central processing unit,CPU)市场中的比重逐年增加。在大小核CPU上,实时的根据负载性能特征,将负载正确地调度到合适的核上执行,是最大化性能效率发挥大小核CPU性能的关键。
现有技术中,程序负载在大小核之间的调度通常是通过操作系统(operationsystem,OS)内核(kernel)或管理程序(hypervisor)等系统软件完成的。但是这种方式在调度粒度、调度开销、软件生态适配等方面都有不足。
发明内容
本申请实施例提供一种芯片资源调度方法及相关装置,可以降低芯片资源调度复杂度和开销,提升资源调度的效率。
第一方面,提供一种芯片资源调度方法,该方法包括:获取多个逻辑核的性能效率,其中,多个逻辑核被调度用于执行操作系统上的用户任务进程或系统任务进程;确定多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度,其中,多个逻辑核与多个异构的物理核是一一映射关系,逻辑核的性能效率为逻辑核在所映射的物理核上执行任务进程的性能效率;若多个逻辑核的性能效率与多个异构的物理核的处理性能不满足预设匹配度,则更新多个逻辑核与多个异构的物理核的映射关系。
可见,在本申请实施例中,通过逻辑核抽象层管理逻辑核与物理核的映射关系,当获取到逻辑核的性能效率与异构的物理核的处理性能不满足预设匹配度时,更新逻辑核与物理核的映射关系,以使得在不同阶段不同性能特征的程序负载能够与异构物理核的性能能力相匹配。该过程不需要系统软件参与,而是由逻辑核抽象层这一硬件装置来实现,能够实现细粒度微秒级资源调度,减少资源开销。并且,由于该过程通过更新逻辑核与物理核的映射关系实现负载在物理核之间的调度,那么对于程序负载来说,其调度的逻辑核不变,系统软件能够省略修改异构逻辑核以适配不同负载的过程,进一步减少了资源开销。
结合第一方面,在一种可能的实现方式中,获取多个逻辑核的性能效率包括:通过逻辑核抽象层获取多个逻辑核的性能效率;和/或确定多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度包括:通过逻辑核抽象层确定多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度;和/或更新多个逻辑核与多个异构的物理核的映射关系包括:通过逻辑核抽象层更新多个逻辑核与多个异构的物理核的映射关系。
结合第一方面,在一种可能的实现方式中,在获取多个逻辑核的性能效率之前,该方法还包括:初始化映射表,映射表中包括逻辑核标识,以及与逻辑核标识存在一一映射关系的物理核标识;根据映射关系,加载物理核对应的逻辑核上下文。
结合第一方面,在一种可能的实现方式中,获取多个逻辑核的性能效率,确定多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度,包括:对多个逻辑核执行的任务进程进行特征采样,根据特征采样的结果确定多个逻辑核的性能效率;生成多个逻辑核的性能效率排序,根据多个逻辑核的性能效率排序确定映射的物理核排序;获取多个异构的物理核的性能能力排序;根据映射的物理核排序与多个异构的物理核的性能能力排序的匹配度确定多个逻辑核的性能效率与多个物理核的性能能力的匹配度,多个异构的物理核的性能能力根据物理核的异构特征确定。
结合第一方面,在一种可能的实现方式中,更新多个逻辑核与多个异构的物理核的映射关系,包括:将第一逻辑核对应的第一物理核与第二逻辑核对应的第二物理核调换,生成第一逻辑核与第二物理核,以及第二逻辑核与第一物理核的映射关系,其中,第一物理核和第二物理核为在映射的物理核排序中,与在多个异构的物理核的性能能力排序中排序位置不匹配的物理核。
可见,在本申请实施例中,针对逻辑核与物理核排序不匹配个数少的情况下,只对不匹配的物理核进行调换,而不对其他匹配的物理核进行操作,能够提升映射关系更新的效率与准确度。
结合第一方面,在一种可能的实现方式中,更新多个逻辑核与多个异构的物理核的映射关系,包括:根据多个物理核的性能效率的排序,以及多个逻辑核的性能效率排序重新生成逻辑核与物理核的映射关系。
可见,在本申请实施例中,针对逻辑核与物理核排序不匹配个数多的情况下,对所有逻辑核映射的物理核进行重排序,减少了确定映射关系对调组的时间,提升了映射关系更新的效率。
结合第一方面,在一种可能的实现方式中,该方法还包括:根据新的映射关系,对物理核的逻辑核上下文进行重载。
结合第一方面,在一种可能的实现方式中,该方法还包括:
识别第一类业务进程,并控制对第一类业务进程的SoC共享资源分配量;
识别第二类业务进程,并保证对第二类业务进程的SoC共享资源分配量;
识别第三类业务进程,并减小对第三类业务进程的SoC共享资源分配量;
其中,第二类业务进程为SoC共享资源的增加的增益大于第一类业务进程和第三类业务进程的业务进程,第三类业务进程为抢占超过执行任务进程所需的SoC共享资源的业务进程。
可见,在本申请实施例中,通过逻辑核抽象层进行不同业务的任务进程特征的获取,实施SoC资源重分配,能够在保证各类型业务需求的基础上最大化整芯片吞吐率。
第二方面,本申请提供一种芯片资源调度装置,该装置包括:
映射模块,用于获取多个逻辑核的性能效率,确定多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度,其中,多个逻辑核被用于执行用户任务进程或系统任务进程,多个逻辑核与多个异构的物理核是一一映射关系,逻辑核的性能效率为逻辑核在所映射的物理核上执行任务进程的性能效率;
置换模块,用于若多个逻辑核的性能效率与多个异构的物理核的处理性能不满足预设匹配度,则更新多个逻辑核与多个异构的物理核的映射关系。
结合第二方面,在一种可能的实现方式中,在系统软件调度逻辑核之前,映射模块用于:初始化映射表,映射表中包括逻辑核标识,以及与逻辑核标识存在一一映射关系的物理核标识;根据映射关系,加载物理核对应的逻辑核上下文。
结合第二方面,在一种可能的实现方式中,在获取多个逻辑核的性能效率,确定多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度方面,映射模块具体用于:
对多个逻辑核执行的任务进程进行特征采样,根据特征采样的结果确定多个逻辑核的性能效率;生成多个逻辑核的性能效率排序,根据多个逻辑核的性能效率排序确定映射的物理核排序;获取多个异构的物理核的性能能力排序;根据映射的物理核排序与多个异构的物理核的性能能力排序的匹配度确定多个逻辑核的性能效率与多个物理核的性能能力的匹配度,多个异构的物理核的性能能力根据物理核的异构特征确定。
结合第二方面,在一种可能的实现方式中,在更新多个逻辑核与多个异构的物理核的映射关系方面,映射模块具体用于:将第一逻辑核对应的第一物理核与第二逻辑核对应的第二物理核调换,生成第一逻辑核与第二物理核,以及第二逻辑核与第一物理核的映射关系,其中,第一物理核和第二物理核为在映射的物理核排序中,与在多个异构的物理核的性能能力排序中排序位置不匹配的物理核。
结合第二方面,在一种可能的实现方式中,在更新多个逻辑核与多个异构的物理核的映射关系方面,映射模块具体用于:根据多个物理核的性能效率的排序,以及多个逻辑核的性能效率排序重新生成逻辑核与物理核的映射关系。
结合第二方面,在一种可能的实现方式中,置换模块还用于:根据新的映射关系,对物理核的逻辑核上下文进行重载。
结合第二方面,在一种可能的实现方式中,该装置还包括资源分配模块,用于:
识别第一类业务进程,并控制对第一类业务进程的SoC共享资源分配量;
识别第二类业务进程,并保证对第二类业务进程的SoC共享资源分配量;
识别第三类业务进程,并减小对第三类业务进程的SoC共享资源分配量;
其中,第二类业务进程为SoC共享资源的增加的增益大于第一类业务进程和第三类业务进程的业务进程,第三类业务进程为抢占超过执行任务进程所需的SoC共享资源的业务进程。
第三方面,本申请提供一种通信装置,该通信装置包括处理器,用于执行上述第一方面或第一方面的任意可能的实现方式所示的方法。或者,该处理器用于执行存储器中存储的程序,当该程序被执行时,上述第二方面或第二方面的任意可能的实现方式所示的方法被执行。
结合第三方面,在一种可能的实现方式中,存储器位于上述通信装置之外。
结合第三方面,在一种可能的实现方式中,存储器位于上述通信装置之内。
本申请中,处理器和存储器还可以集成于一个器件中,即处理器和存储器还可以被集成在一起。
第四方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,当其在计算机上运行时,使得上述第一方面或第一方面的任意可能的实现方式所示的方法被执行。
第五方面,本申请实施例提供一种计算机程序,该计算机程序在计算机上运行时,上述第一方面或第一方面的任意可能的实现方式所示的方法被执行。
第六方面,本申请提供了一种芯片系统,该芯片系统包括系统软件,逻辑核抽象层和物理核处理器,用于支持电子设备实现上述第一方面中所涉及的功能,例如,调度多个逻辑核,以便所述多个逻辑核中每个逻辑核执行所述系统软件上的用户或者系统任务进程。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存数据发送设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种大小核异构处理器示意图;
图2A为本申请实施例提供的一种不同程序的性能特征示意图;
图2B为本申请实施例提供的一种程序内部不同阶段的性能特征示意图;
图3为本申请实施例提供的一种系统软件实现程序调用中的物理核切换过程示意图;
图4A为本申请实施例提供的一种芯片资源调度系统示意图;
图4B为本申请实施例提供的一种芯片资源调度方法流程图;
图4C为本申请实施例提供的一种逻辑核抽象层管理逻辑核与物理核映射关系的示意图;
图4D为本申请实施例提供的一种确定匹配度的示意图;
图4E为本申请实施例提供的一种逻辑核抽象层的结构示意图;
图5为本申请实施例提供的一种通信装置的结构示意图;
图6是本申请实施例提供的通信装置1000的结构示意图;
图7是本申请实施例提供的通信装置的又一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请中的术语“第一”和“第二”等仅用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。
在本申请的描述中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上。另外,“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。
本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”、“举例来说”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“举例来说”或者“例如”等词旨在以具体方式呈现相关概念。
本申请中对于使用单数表示的元素旨在用于表示“一个或多个”,而并非表示“一个且仅一个”,除非有特别说明。
首先对本申请实施例涉及的大小核异构处理器进行介绍。
大小核异构处理器,是指处理器中包括性能能力不同(通常表现为面积(area)大小不同)的多个物理核。由于处理器中通常包括两种不同大小规格的物理核,因此通常将异构的物理核分别称为大核和小核。处理器中也可以包括其他更多种不同大小规格的物理核,本申请实施例中以两种规格为例进行说明,对其他更多种规格不做过多描述。
请参阅图1,图1为本申请实施例提供的一种大小核异构处理器示意图,如图1所示,该处理器中包括2个大核和6个小核。该处理器中还包括末级缓存(last level cache,LLC),内存控制器(double data rate dynamic random access memory Controller,DDRC)等资源,或输入输出(Input Output,IO)等设备控制器。
然后对本申请实施例的现有技术进行介绍。
请参阅图2A,图2A为本申请实施例提供的一种不同程序的性能特征示意图,如图2A所示,包括类型1,类型2,以及类型3总共三种类型的业务,每一个条形图表示小核与大核执行同一业务的减速比值。图中我们可以看到,在执行不同程序时,会有不同的小/大核减速比。
另外,程序内往往也存在不同阶段、每个阶段的性能特征也不相同。请参阅图2B,图2B为本申请实施例提供的一种程序内部不同阶段的性能特征示意图,其中横轴表示程序从头到尾执行的指令数目;图2B中的(a)中的纵轴表示IPC(Instruction per Cycle,每周期完成指令数)指数随着程序从头到尾执行的变化,图2B中的(b)表示分支误预测率(branch misprediction)随着程序执行的变化。可以看出,IPC和分值误预测率都会随着程序执行过程变化。
不同性能特征的程序,对CPU资源的需求也是不同的。例如图2A中,类型1业务的小/大核减速比显著低于类型3业务的小/大核减速比,说明类型1业务在小核、类型3业务在大核执行的整体性能效率会更高。
业界诸多研究表明,不同程序(任务进程)往往具有不同的性能特征,程序内往往也存在不同阶段、每个阶段的性能特征也不相同。正是由于不同程序负载有不同的性能特征,且在不同阶段性能特征也会发生变化,在执行程序的过程中,其需要的CPU资源也随之变化。因此,执行程序调用的核会在大小核之间切换。例如程序随着性能特征的变化,所需要的CPU资源变大,则程序调用的物理核可能需要从小核切换为大核,反之则需要从大核切换成小核。
当前云和数据中心依靠OS内核完成任务调度和芯片资源调度,典型如Linux内核。任务调度过程包括:(1)决定当前选择哪些任务运行;(2)决定任务在哪个逻辑核上运行。芯片资源调度包括:(1)决定逻辑核对应哪个物理核;(2)以及决定逻辑核对片上共享资源(LLC容量、DDR带宽等)的占用比例。
任务调度分为核间任务调度和核内任务调度。本申请实施例不涉及核间任务调度,主要以核内任务调度进行说明。
为了完成核内任务调度,Linux在每个逻辑核上维护任务队列(per-core runqueue),实现毫秒级调度。调度算法简述如下:
(1)决定哪个任务当前运行(pick next)
在调度时机到来时,如果需要调度新的任务(调度标记被设置),通过pick next选择一个更合适的任务,并完成任务切换(context switch)。
调度时机:中断(中断进入系统内核态)或者系统调用返回用户态,到达调度时机,抢占开启。
调度标记:在任务被唤醒,系统调度程序发现任务时间片耗尽以及任务优先级变更时检查如果有新的任务需要调度,则对该任务设置调度标记。
(2)决定任务在哪个逻辑核上运行(select task rq)
由于是核内任务调度,任务即默认在任务队列所在的逻辑核(本核)运行。
在任务创建或者唤醒时,通过select_task_rq为任务选择一个更合适的逻辑核运行。
当前Linux进行芯片资源调度的算法如下:
(1)决定哪个逻辑核对应哪个物理核
逻辑核和物理核的映射关系是静态绑定,并且一一对应,运行时不可改变。
(2)决定逻辑核对片上共享资源的占用比例
默认每个逻辑核可以使用全部片上共享资源,运行时系统软件可以动态配置。
具体地,系统软件可以通过调用片上资源管理技术(resource directortechnology,RDT)或存储子系统资源分配和监控(memory system resource partitioningand monitoring,MPAM)接口函数显式完成对LLC容量和DDR带宽的分配。
上述片上共享资源的每次配置都需要唤醒软件完成,最小配置粒度在10毫秒以上。
也即是说,现有技术中,程序调用时所占用的物理核,其切换过程主要通过系统软件实现。举一个具体的示例,可参阅图3,图3为本申请实施例提供的一种系统软件实现程序调用中的物理核切换过程示意图,如图3所示,CPU上包括物理核a、物理核b、物理核c和物理核d,其中物理核a与物理核b为小核,物理核c与物理核d为大核。当逻辑核A上的任务队列中的任务04被唤醒,设置调度标记。然后在调度时机到来时,通过pick next选择任务04完成调度切换。通常情况下,任务04在任务队列0所在的逻辑核A上执行。但是由于任务04在执行过程中占用的CPU资源增加,需要对任务04对应的逻辑核进行切换。并且系统软件获知逻辑核C映射的物理核c为大核。因此,通过select_task_rq为任务04选择逻辑核C运行。具体是通过将任务04加入到逻辑核C上的任务队列2的队尾,等待执行。
根据前述描述可知,现有技术存在如下缺陷:
(1)调度粒度粗,至少毫秒级
OS软件需要依靠中断触发调度,而OS Tick通常为1毫秒,所以OS对任务性能特征的例行采样、决策、调度的粒度至少在1毫秒以上。
(2)调度开销大
OS实现任务-大小核调度时,需要调出(逻辑)核先响应中断唤醒任务调度程序,之后任务调度程序进行信息决策,然后在调出核上从任务队列中出队任务,发处理器核间中断(inter-processor interrupt,IPI)给调入核,调入核响应后任务再入队调入核的任务队列,通过完成任务在逻辑核之间的迁移,进而完成任务在大小物理核间的迁移。这一过程典型需要100微秒。
而且,任务迁入调入核的任务队列后处在队尾,需要抢占或者排队等待变为队首才能执行,这导致在任务很多的平台上,任务在大小核间迁移后恢复执行的时间更长,开销远大于100微秒。
(3)软件生态适配大小核CPU需要额外工作量
当前整个软件生态都假设CPU为对称多处理器,同一CPU上包括相同大小的物理核。当CPU上包括异构的大小物理核时,软件需要修改才能支持。而且并不仅是平台系统软件需要适配修改,每个业务软件也需要针对大小核做适配修改才能发挥异构CPU性能效率的优势。数据中心运行上万种软件,对这些软件做适配修改是庞大的工作量。
基于此,请参阅图4A,图4A为本申请实施例提供的一种芯片资源调度系统,该调度系统中包括系统软件(也即操作系统,以下都通过系统软件进行描述,可以被称为软件层)、逻辑核抽象层和物理核处理器(也可以被称为硬件层),其中物理核处理器中包括多个异构的物理核,具体可以参阅前述图1关于处理器的结构及相关描述。该芯片资源调度系统还包括逻辑核,操作系统实际调度的仍是逻辑核,且不感知逻辑核抽象层。逻辑核抽象层本质为硬件抽象层,用于提供逻辑核与物理核交互的接口。如图中所示的逻辑核抽象层,其北向接口为逻辑核,南向接口为处理器物理核。
也即是说,本申请实施例中的芯片资源调度系统,相比于现有技术的芯片资源调度系统,增加了物理抽象层的处理能力,使其成为本申请实施例中的逻辑核抽象层。进而使得芯片资源调度系统由现有技术的“任务-大小核”的调度模式,变成了“任务-逻辑核-大小核”的模式。这种变化的好处是,原“任务-大小核”的调度模式要求软件必须感知大小核,从而带来生态兼容等问题。而“任务-逻辑核”调度模式则不要求软件感知大小核,因为逻辑核都是同构的,该部分调度完全和现有软件生态一致,上层系统软件和业务软件都无需修改;“逻辑核-物理核”调度部分则完全由本调度系统的硬件(即逻辑核抽象层)完成,软件仍然无感知。如此,既保持了上层软件不必修改、又能够获得大小核CPU带来的性能效率收益。
请参阅图4B,图4B为本申请实施例提供的一种芯片资源调度方法,可以采用上述芯片资源调度系统中的逻辑核抽象层完成,该方法具体包括如下步骤:
201、获取多个逻辑核的性能效率,其中,多个逻辑核被调度用于执行操作系统上的用户任务进程或系统任务进程。
本申请实施例中,多个逻辑核被系统软件调度,其中每个逻辑核用于执行系统软件上的用户或者系统任务进程,逻辑核和物理核是一一映射关系。
系统软件调度多个逻辑核执行系统软件上的用户任务进程或系统任务进程,这里的任务进程也即前述描述的程序或任务。其中用户任务进程可以指用户应用程序对应的进程,系统任务进程可以是指操作系统对应的任务进程。
本申请实施例中的逻辑核包括了逻辑核,以及在它之上正在执行的任务进程。逻辑核与物理核的个数相同,且为一一映射的关系。系统软件调用逻辑核执行(用户或系统)任务进程,实际是调用逻辑核映射的物理核执行任务进程。
本申请实施例中,由逻辑核抽象层管理逻辑核与物理核的映射关系。具体可参阅图4C,为本申请实施例提供的一种逻辑核抽象层管理逻辑核与物理核映射关系的示意图,如图4C所示,逻辑核抽象层与逻辑核以及物理核连接,并能够获取相关信息。在初始状态下(系统软件开始运行之前),逻辑核抽象层获取到逻辑核的相关信息(包括逻辑核个数,以及逻辑核上的任务队列等),以及物理核处理的相关信息之后(包括物理核个数,以及物理核为大核或者小核),可以随机生成逻辑核与物理核的初始映射关系,或者根据历史经验初步判断各个任务队列中的任务进程可能消耗的CPU,生成逻辑核与物理核的初始映射关系。
可选情况下,在获取多个逻辑核的性能效率之前,该方法还包括:初始化映射表,映射表中包括逻辑核标识,以及与逻辑核标识存在一一映射关系的物理核标识;根据映射关系,加载物理核对应的逻辑核上下文。
逻辑核抽象层初始化映射表,具体可以如图4C中所示,映射表中包括逻辑核标识,也即逻辑核A、B、C、D,以及与逻辑核标识一一映射的物理核标识,即物理核a、b、c、d。检索逻辑核标识,即能够检索到逻辑核对应的物理核标识。
或者,逻辑核与物理核的映射关系也可以放置在一个映射队列中,队列元素为多组<逻辑核ID,物理核ID>,例如<逻辑核A,物理核a>,一组元素表征一个映射关系。那么队列长度也即由逻辑核个数确定。
然后根据映射表或映射队列中的映射关系,为物理核加载其逻辑核上下文。例如物理核a上,加载逻辑核A的上下文。
可选情况下,逻辑核抽象层中可以包括映射代理器,用于实时完成逻辑核到物理核的代理。具体例如上述初始化映射表或映射队列、为物理核加载逻辑核上下文实现逻辑核与物理核的映射,以及软件发起的所有逻辑核操作,例如核间中断,也由代理器转发到对应的物理核,实现物理核的核间中断。
如前述描述的,程序(或者任务进程)的性能特征在执行过程中可能动态变化。而逻辑核的执行效率,也即逻辑和在所映射的物理核上执行任务进程的性能效率也可能是变化的,因此,可以通过逻辑核抽象层在执行任务进程的途中获取逻辑核当前的性能效率。
具体地,可以通过对多个逻辑核执行的任务进程进行特征采样,根据特征采样的结果确定多个逻辑核的性能效率。
具体的特征采样的结果例如可以为每周期指令数(instruction per clock,IPC),即逻辑核所映射的物理核在一个时钟周期能执行多少条指令。也即是说,通过IPC的大小确定逻辑和的性能效率的大小。在特征采样的过程中,可以通过IPC自顶向下分解统计模型(top-down model)的方式进行,采集物理核执行的指令个数和执行时间,获得IPC,以及/或者采集分支误预测率、缓存缺失率等芯片微架构参数等,用于判断逻辑核的性能效率。
202、确定所述多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度。
其中,多个逻辑核与多个异构的物理核是一一映射关系,逻辑核的性能效率为逻辑核在所映射的物理核上执行任务进程的性能效率。
获取到逻辑核的性能效率之后,实际上表达的是物理核被调用来执行任务进程时的性能效率。这可能与物理核实际的处理性能不匹配。例如,逻辑核A的性能效率为0.66,其调用的物理核a的处理性能所应该达成的性能效率远高于0.66,因此说明逻辑核A的性能效率与物理核a的处理性能不匹配。而统计获得多个逻辑核中性能效率与物理核的处理性能不匹配的个数超过一定的百分比,则确定不满足预设匹配度,需要更逻辑核与物理核的映射关系。
可选地,获取多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度,包括:生成多个逻辑核的性能效率排序,根据多个逻辑核的性能效率排序确定映射的物理核排序;获取多个异构的物理核的性能能力排序;根据映射的物理核排序与多个异构的物理核的性能能力排序的匹配度确定多个逻辑核的性能效率与多个物理核的性能能力的匹配度,多个异构的物理核的性能能力根据物理核的异构特征确定。
具体结合图4D进行说明,图4D为本申请实施例提供的一种确定匹配度的示意图,如图4D所示,获取到逻辑核的性能效率之后,可以根据性能效率的大小获得性能效率排序,例如图4D中的第i轮,逻辑核性能效率排序由高到低分别为逻辑核C、逻辑核B、逻辑核A、逻辑核D,由于每个逻辑核都映射了一个物理核,因此,也可以确定逻辑核映射的物理核排序,为物理核c、物理核b、物理核a、物理核d。但是,根据异构的物理核本身的性能能力,其排序为:物理核c、物理核d、物理核a、物理核b。需要说明的是,在本申请实施例中,包括2种结构的物理核,其中物理核c与物理核d的结构相同,为大核(图4D中物理核标注的“大”表示大核,标注的“小”表示小核),两者的性能能力相同。相对应的,两者的排序可以不分先后,都为排序1或2。同理,物理核a与物理核b的结构相同,为小核,两者的性能能力排序可以不分先后,都为3或4。
203、若多个逻辑核的性能效率与多个异构的物理核的处理性能不满足预设匹配度,则更新多个逻辑核与多个异构的物理核的映射关系。
根据上述描述可知,映射的物理核排序与异构的物理核的性能能力排序中,物理核b以及物理核d的排序为不匹配的排序,不匹配的排序占比为50%。因此,两者排序的匹配度为50%。预设的匹配度可以为99%,说明未达到预设匹配度,需要对逻辑核与物理核的映射关系进行更新。
可选地,更新多个逻辑核与多个异构的物理核的映射关系,包括:将第一逻辑核对应的第一物理核与第二逻辑核对应的第二物理核调换,生成第一逻辑核与第二物理核,以及第二逻辑核与第一物理核的映射关系,其中,第一物理核和第二物理核为在映射的物理核排序中,与在多个异构的物理核的性能能力排序中排序位置不匹配的物理核。
也即是说,更新逻辑核与物理核的映射关系,具体可以是对排序不匹配的多个物理核,其映射的逻辑核进行调换。以图4D为例进行说明,在第i轮中,映射的物理核排序与异构的物理核的性能能力排序不匹配的第一物理核以及第二物理核分别为物理核b以及物理核d。物理核b与逻辑核B映射,物理核d与逻辑核D映射,调换映射关系,生成逻辑核B与物理核d的映射关系,以及逻辑核D与物理核b的映射关系,完成映射关系的更新。
该种更新映射关系的方式可以应用于排序不匹配的物理核个数较少的情况。能够实现映射关系的快速更新。
可选情况下,逻辑核抽象层中可以包括重映射器,上述判定多个逻辑核的性能效率与多个异构的物理核的处理性能是否满足预设匹配度,在不满足预设匹配度的情况下,确定更新逻辑核与物理核的映射关系的过程可以由重映射器执行。
可选情况下,逻辑核抽象层中还可以包括映射置换器,上述通过调换方式实现逻辑核与物理核映射关系的更新,可以由该映射置换器执行。
具体地,映射置换器用于维护一块片上存储区域,存储区域中存储了各个逻辑核上下文,当映射置换器接收到指令需要更新逻辑核与物理核的映射关系时,通过执行经典置换算法(b,d→B,D)变换为(b,d→D,B),实现逻辑核上下文的置换(或重载)。其中b指代物理核b,d指代物理核d,B指代逻辑核B的上下文,D指代逻辑核D的上下文。逻辑核上下文具体可以包括:
(1)系统架构约定的数据结构,结构静态固定
(2)记录了OS通知硬件执行任务进程所需要的所有上下文信息,包括:
逻辑核ID;
地址空间标识符(address space identifier,ASID),寄存器(program counter,PC)指针,Arch寄存器等进程硬件上下文寄存器(pt_regs)定义的信息。
另外,逻辑核抽象层可以不用单独存储逻辑核上下文,可以事先约定好,由映射置换器能够对片上存储区域存储的逻辑核上下文进行使能置换即可。
可选地,更新多个逻辑核与多个异构的物理核的映射关系,包括:根据多个物理核的性能效率的排序,以及多个逻辑核的性能效率排序重新生成逻辑核与物理核的映射关系。
也即是说,更新逻辑核与物理核的映射关系,具体可以是对逻辑核与物理核的映射关系完全进行重排。以图4D为例进行说明。在第i+1轮中,映射的物理核排序与异构的物理核的性能能力排序不匹配的包括物理核a、物理核b、物理核c、物理核d。可以根据逻辑核性能效率排序以及异构的物理核的性能效率的排序,完全重新生成逻辑核与物理核的映射关系。其中逻辑核A、D性能效率排序靠前,可以映射物理核c与物理核d两个大核。逻辑核B、C性能效率排序靠后,可以映射物理核a与物理核b两个小核。
该种更新映射关系的方式可以应用于排序不匹配的物理核个数较多的情况。能够减少确定映射关系对调组的时间,实现映射关系的快速更新。
可选情况下,上述通过重排方式实现逻辑核与物理核映射关系的更新,也可以由映射置换器执行。
具体地,映射置换器可以获取需要重新生成逻辑核与物理核的映射关系(重映射)的决策,然后调用置换器实施重映射。具体步骤包括获取更新的逻辑核与物理核的映射关系表,再根据映射关系表中的更新映射关系,对物理核的逻辑核上下文进行重载。逻辑核重载完毕后,指示物理核继续执行即可。
另外,需要说明的是,在一些情况下,例如同一个任务进程耗时较长,且性能特征变化多。或者软件系统持续有任务进程在被执行,因此逻辑核抽象层可能需要进行多轮逻辑核与物理核映射关系的更新,更新过程中,可以使用同一种更新方式,也可以结合采用上述调换或重排两种更新方式。而在另一些情况下,逻辑核抽象层也可能只进行了一轮逻辑核与物理核映射关系的更新。也即是说,图4D的多轮映射关系的更新,只是一种示例说明,而不应该对本申请实施例具体实施方式造成限制。
可见,采用本申请实施例的芯片资源调度系统执行的资源调度过程,一方面只进行芯片资源调整,包括逻辑核与物理核初始映射关系的生成,逻辑核的性能效率与物理核的处理性能的匹配度,以及更新逻辑核与物理核的映射关系的过程,都由逻辑核抽象层实现,这些过程软件系统都不感知,因此无需触发中断,能够实现微秒级资源调度。提升了资源调度的效率。另一方面,该芯片资源调度系统通过实现逻辑核-物理核的动态映射,使得任务进程在维持调用的逻辑核不变的情况下实际迁移到了不同的物理核,从而实现性能效率的提升。该逻辑核-物理核映射关系的动态变化系统软件不感知,也就无需任务进程进出任务队列。物理核的迁移仅包括硬件上下文信息的转移和中断代理转移,显著减小了资源开销。最后,由于任务进程物理核的迁移通过逻辑核与物理核的动态映射来实现,任务进程调用的任何逻辑核都可以分别与异构的物理核进行映射。那么对于任务进程来说,不需要为了适配异构的物理核进行软件生态修改,减少了调度系统的复杂度与开发成本。
可选地,该方法还包括:识别第一类业务进程,并控制对第一类业务进程的SoC共享资源分配量;识别第二类业务进程,并保证对第二类业务进程的SoC共享资源分配量;识别第三类业务进程,并减小对第三类业务进程的SoC共享资源分配量;其中,第二类业务进程为SoC共享资源的增加的增益大于第一类业务进程和第三类业务进程的业务进程,第三类业务进程为抢占超过执行任务进程所需的SoC共享资源的业务进程。
在前述对现有技术芯片资源调度过程进行介绍时,说明了包括决定逻辑核对片上共享资源(LLC容量、DDR带宽等)的占用比例的步骤。也即是说,在进行芯片资源调度时,系统软件调度的逻辑核可以自由共享或竞争获得片上共享资源。
但是,不同业务具有不同的特征,对片上共享资源的需求与反馈也不同。例如针对SoC共享资源无感的业务,为其分配更多或更少的SoC共享资源,对业务执行过程无显著增益(包括执行速率的提升、执行可靠性的提升等)。而针对SoC共享资源敏感的业务,为其分配更多的SoC共享资源,对业务执行过程有显著增益。或者针对SoC共享资源破坏性的业务,增加SoC共享资源对其业务执行过程无明显增益,并且该类业务还会贪婪地占用更多共享资源。
本申请实施例中,设定对SoC共享资源无感的业务为第一类业务,对SoC共享资源带宽敏感的业务为第二类业务,对SoC共享资源破坏性的业务为第三类业务。通过系统级芯片(system on chip,SoC)共享资源重分配,使得针对不同特征的业务能够获得更科学合理的片上共享资源,也能够最大化整芯片的吞吐量。
SoC共享资源重分配也可以由逻辑核抽象层来执行。逻辑核抽象层执行SoC共享资源重分配的步骤包括:
(1)分别识别出第一类业务进程、第二类业务进程、以及第三类业务进程,获取各类业务的服务质量(quality of service,QoS)需求。
逻辑核抽象层可以微秒级统计各类业务的QoS指标,并尽量按照满足这些QoS指标的基本SoC共享资源为各类业务进程分配SoC共享资源。
(2)按照如下原则进行SoC共享资源重分配:
控制对第一类业务进程的SoC共享资源分配量;
保证对第二类业务进程的SoC共享资源分配量;
减小对第三类业务进程的SoC共享资源分配量。
在获取到逻辑核上各类业务所对应的任务进程,以及该业务的QoS指标时,理想状态下,是为所有任务进程的逻辑核分配能够达成该类业务的QoS指标的LLC容量和/或DDR带宽。但是,SoC共享资源可能并不足以满足所有逻辑核的需求。基于此种考虑,在为逻辑核分配SoC共享资源时,针对第二类业务的任务进程(第二类业务进程),可以保证对其SoC共享资源的分配量,也即是说,尽量为其分配能够满足其QoS需求的资源。因为少分配的资源,可能对其QoS指标产生巨大的负增益。而针对第一类业务进程,可以控制对其SoC共享资源分配量,也即是说,可以根据剩余SoC共享资源,确定第一类业务进程的SoC共享资源分配量。如果剩余多,则可以为第一类业务进程分配满足其QoS需求的SoC共享资源,如果剩余少,则可以适当减少对第一类业务进程的分配量。针对第三类业务进程,可以减小对第三类业务进程的SoC共享资源分配量。因为第三类业务可能会贪婪地占用更多共享资源,因此它提供的QoS需求可能多于它实际的需求。那么可以适当减少第三类业务进程的SoC共享资源分配量,避免共享资源被浪费。
上述SoC共享资源可以包括LLC容量和/或DDR带宽,也可以为其他资源,本申请实施例不做限定。
可见,在本申请实施例中,通过逻辑核抽象层进行微秒级QoS指标统计,实施SoC资源重分配,能够保证QoS的基础上最大化整芯片吞吐率。同时根据各类业务的特征进行SoC资源重分配,也能够更好地满足不同逻辑核上多任务进程的QoS需求,提升业务质量。
可选情况下,逻辑核抽象层还可以包括资源分配器。上述SoC共享资源重分配的过程具体可以由资源分配器来执行。
根据上述描述,可参阅图4E,图4E为本申请实施例提供的一种逻辑核抽象层的结构示意图,如图4E所示,逻辑核抽象层可以包括映射代理器,重映射器和映射置换器。进一步地,逻辑核抽象层还可以包括资源重分配器。资源重分配器的接口可以遵循硬件协议如MPAM。逻辑核抽象层可以由单个芯片组成,也可以由划定的芯片区域组成。并且,逻辑核抽象层的个数可以为一个,也可以为多个,若为多个时,可以与逻辑核个数对应。
参见图5,图5是本申请实施例提供的通信装置的结构示意图。如图5所示,该通信装置包括映射模块501和置换模块502。
在本申请的一些实施例中,该通信装置可以用于执行前述图4A~图4B描述的实施例中由芯片资源调度系统执行的方法步骤。具体地,
映射模块501,用于获取多个逻辑核的性能效率,确定多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度,其中,多个逻辑核被用于执行用户任务进程或系统任务进程,多个逻辑核与多个异构的物理核是一一映射关系,逻辑核的性能效率为逻辑核在所映射的物理核上执行任务进程的性能效率;
置换模块502,用于若多个逻辑核的性能效率与多个异构的物理核的处理性能不满足预设匹配度,则更新多个逻辑核与多个异构的物理核的映射关系。
示例性的,在系统软件调度逻辑核之前,映射模块501用于:初始化映射表,映射表中包括逻辑核标识,以及与逻辑核标识存在一一映射关系的物理核标识;根据映射关系,加载物理核对应的逻辑核上下文。
示例性的,在获取多个逻辑核的性能效率,确定多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度方面,映射模块501具体用于:
对多个逻辑核执行的任务进程进行特征采样,根据特征采样的结果确定多个逻辑核的性能效率;生成多个逻辑核的性能效率排序,根据多个逻辑核的性能效率排序确定映射的物理核排序;获取多个异构的物理核的性能能力排序;根据映射的物理核排序与多个异构的物理核的性能能力排序的匹配度确定多个逻辑核的性能效率与多个物理核的性能能力的匹配度,多个异构的物理核的性能能力根据物理核的异构特征确定。
示例性的,在更新多个逻辑核与多个异构的物理核的映射关系方面,映射模块501具体用于:将第一逻辑核对应的第一物理核与第二逻辑核对应的第二物理核调换,生成第一逻辑核与第二物理核,以及第二逻辑核与第一物理核的映射关系,其中,第一物理核和第二物理核为在映射的物理核排序中,与在多个异构的物理核的性能能力排序中排序位置不匹配的物理核。
示例性的,在更新多个逻辑核与多个异构的物理核的映射关系方面,映射模块501具体用于:根据多个物理核的性能效率的排序,以及多个逻辑核的性能效率排序重新生成逻辑核与物理核的映射关系。
示例性的,置换模块502还用于:根据新的映射关系,对物理核的逻辑核上下文进行重载。
结合第二方面,在一种可能的实现方式中,该装置还包括资源分配模块,用于:
识别第一类业务进程,并控制对第一类业务进程的SoC共享资源分配量;
识别第二类业务进程,并保证对第二类业务进程的SoC共享资源分配量;
识别第三类业务进程,并减小对第三类业务进程的SoC共享资源分配量;
其中,第二类业务进程为SoC共享资源的增加的增益大于第一类业务进程和第三类业务进程的业务进程,第三类业务进程为抢占超过执行任务进程所需的SoC共享资源的业务进程。
可理解,本申请实施例示出的映射模块和置换模块的具体说明仅为示例,对于映射模块和置换模块的具体功能或执行的步骤等,可以参考上述图4A~图4B实施例的相关描述,这里不再详述。
以上介绍了本申请实施例的通信装置,以下介绍通信装置可能的产品形态。应理解,但凡具备上述图5所述的电子装置的功能的任何形态的产品,都落入本申请实施例的保护范围。还应理解,以下介绍仅为举例,不限制本申请实施例的通信装置的产品形态仅限于此。
参见图6,图6是本申请实施例提供的通信装置1000的结构示意图。该通信装置1000可以为发送端设备或接收端设备,或其中的芯片。图6仅示出了通信装置1000的主要部件。除处理器1001和收发器1002之外,所述通信装置还可以进一步包括存储器1003、以及输入输出装置(图未示意)。
处理器1001主要用于对通信协议以及通信数据进行处理,以及对整个通信装置进行控制,执行软件程序,处理软件程序的数据。存储器1003主要用于存储软件程序和数据。收发器1002可以包括控制电路和天线,控制电路主要用于基带信号与射频信号的转换以及对射频信号的处理。天线主要用于收发电磁波形式的射频信号。输入输出装置,例如触摸屏、显示屏,键盘等主要用于接收用户输入的数据以及对用户输出数据。
当通信装置开机后,处理器1001可以读取存储器1003中的软件程序,解释并执行软件程序的指令,处理软件程序的数据。当需要通过无线发送数据时,处理器1001对待发送的数据进行基带处理后,输出基带信号至射频电路,射频电路将基带信号进行射频处理后将射频信号通过天线以电磁波的形式向外发送。当有数据发送到通信装置时,射频电路通过天线接收到射频信号,将射频信号转换为基带信号,并将基带信号输出至处理器1001,处理器1001将基带信号转换为数据并对该数据进行处理。
在另一种实现中,所述的射频电路和天线可以独立于进行基带处理的处理器而设置,例如在分布式场景中,射频电路和天线可以与独立于通信装置,呈拉远式的布置。
其中,处理器1001、收发器1002、以及存储器1003可以通过通信总线连接。
一种设计中,通信装置1000可以用于执行前述方法实施例中逻辑核抽象层的功能:获取多个逻辑核的性能效率,确定多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度,其中,多个逻辑核被用于执行用户任务进程或系统任务进程,多个逻辑核与多个异构的物理核是一一映射关系,逻辑核的性能效率为逻辑核在所映射的物理核上执行任务进程的性能效率;若多个逻辑核的性能效率与多个异构的物理核的处理性能不满足预设匹配度,则更新多个逻辑核与多个异构的物理核的映射关系。
在上述任一种设计中,处理器1001中可以包括用于实现接收和发送功能的收发器。例如该收发器可以是收发电路,或者是接口,或者是接口电路。用于实现接收和发送功能的收发电路、接口或接口电路可以是分开的,也可以集成在一起。上述收发电路、接口或接口电路可以用于代码/数据的读写,或者,上述收发电路、接口或接口电路可以用于信号的传输或传递。
在上述任一种设计中,处理器1001可以存有指令,该指令可为计算机程序,计算机程序在处理器1001上运行,可使得通信装置1000执行上述方法实施例中描述的方法。计算机程序可能固化在处理器1001中,该种情况下,处理器1001可能由硬件实现。
在一种实现方式中,通信装置1000可以包括电路,所述电路可以实现前述方法实施例中发送或接收或者通信的功能。本申请中描述的处理器和收发器可实现在集成电路(integrated circuit,IC)、模拟IC、无线射频集成电路(radio frequency integratedcircuit,RFIC)、混合信号IC、专用集成电路(application specific integratedcircuit,ASIC)、印刷电路板(printed circuit board,PCB)、电子设备等上。该处理器和收发器也可以用各种IC工艺技术来制造,例如互补金属氧化物半导体(complementary metaloxide semiconductor,CMOS)、N型金属氧化物半导体(nMetal-oxide-semiconductor,NMOS)、P型金属氧化物半导体(positive channel metal oxide semiconductor,PMOS)、双极结型晶体管(bipolar junction transistor,BJT)、双极CMOS(BiCMOS)、硅锗(SiGe)、砷化镓(GaAs)等。
本申请中描述的通信装置的范围并不限于此,而且通信装置的结构可以不受图6的限制。通信装置可以是独立的设备或者可以是较大设备的一部分。例如所述通信装置可以是:
(1)独立的集成电路IC,或芯片,或,芯片系统或子系统;
(2)具有一个或多个IC的集合,可选的,该IC集合也可以包括用于存储数据,计算机程序的存储部件;
(3)ASIC,例如调制解调器(Modem);
(4)可嵌入在其他设备内的模块;
(5)接收机、终端、智能终端、蜂窝电话、无线设备、手持机、移动单元、车载设备、网络设备、云设备、人工智能设备等等;
(6)其他等等。
在另一种可能的实现方式中,图5中所示的映射模块501和置换模块502可以是一个或多个逻辑电路,该通信装置中还可以包括输入输出接口,又或者称为通信接口,或者接口电路,或接口等等。参见图7,图7是本申请实施例提供的通信装置的又一结构示意图。如图7所示,图7所示的通信装置包括逻辑电路901和接口902。即上述置换模块502和映射模块501可以用逻辑电路901实现,映射模块501的部分操作也可以用接口902实现。其中,该逻辑电路901可以为芯片、处理电路、集成电路或片上系统(system on chip,SoC)芯片等,接口902可以为通信接口、输入输出接口、管脚等。示例性的,图7是以上述通信装置为芯片为例示出的,该芯片包括逻辑电路901和接口902。
本申请实施例中,逻辑电路和接口还可以相互耦合。对于逻辑电路和接口的具体连接方式,本申请实施例不作限定。
示例性的,当通信装置用于执行前述方法实施例中逻辑核抽象层执行的方法或功能或步骤时,逻辑电路901,用于确定多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度,若多个逻辑核的性能效率与多个异构的物理核的处理性能不满足预设匹配度,则更新多个逻辑核与多个异构的物理核的映射关系;接口902,用于获取多个逻辑核的性能效率。
可理解,关于逻辑核的性能效率等的具体说明可以参考上文所示的方法实施例,这里不再一一详述。
可理解,本申请实施例示出的通信装置可以采用硬件的形式实现本申请实施例提供的方法,也可以采用软件的形式实现本申请实施例提供的方法等,本申请实施例对此不作限定。
对于图7所示的各个实施例的具体实现方式,还可以参考上述各个实施例,这里不再详述。
本申请实施例还提供一种通信装置,该通信装置中包括片上系统(system onchip,SoC)芯片。该SoC芯片包括收发器,与该收发器耦合的处理器,可选的还包括耦合于该处理器的内部存储器和外部存储器。收发器用于收发消息,该处理器用于执行内部存储器和外部存储器中存储的程序指令,以使得该通信装置执行前述方法实施例中的方法。
其中,SoC是系统级芯片,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。
此外,本申请还提供一种计算机程序,该计算机程序用于实现本申请提供的方法中由逻辑核抽象层执行的操作和/或处理。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机代码,当计算机代码在计算机上运行时,使得计算机执行本申请提供的方法中由逻辑核抽象层执行的操作和/或处理。
本申请还提供一种计算机程序产品,该计算机程序产品包括计算机代码或计算机程序,当该计算机代码或计算机程序在计算机上运行时,使得本申请提供的方法中由逻辑核抽象层执行的操作和/或处理被执行。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例提供的方案的技术效果。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种芯片资源调度方法,其特征在于,所述方法包括:
获取多个逻辑核的性能效率,其中,所述多个逻辑核被调度用于执行操作系统上的用户任务进程或系统任务进程;
确定所述多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度,其中,所述多个逻辑核与多个异构的物理核是一一映射关系,所述逻辑核的性能效率为所述逻辑核在所映射的物理核上执行任务进程的性能效率;
若所述多个逻辑核的性能效率与所述多个异构的物理核的处理性能不满足预设匹配度,则更新所述多个逻辑核与所述多个异构的物理核的映射关系。
2.根据权利要求1所述的方法,其特征在于:所述获取多个逻辑核的性能效率包括:通过逻辑核抽象层获取多个逻辑核的性能效率;和/或
所述确定所述多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度包括:通过所述逻辑核抽象层确定所述多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度;和/或
所述更新所述多个逻辑核与所述多个异构的物理核的映射关系包括:通过所述逻辑核抽象层更新所述多个逻辑核与所述多个异构的物理核的映射关系。
3.根据权利要求1或2所述的方法,其特征在于,在所述获取多个逻辑核的性能效率之前,所述方法还包括:
初始化映射表,所述映射表中包括逻辑核标识,以及与所述逻辑核标识存在一一映射关系的物理核标识;
根据所述映射关系,加载所述物理核对应的逻辑核上下文。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述获取多个逻辑核的性能效率,确定所述多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度,包括:
对所述多个逻辑核执行的任务进程进行特征采样,根据所述特征采样的结果确定所述多个逻辑核的性能效率;
生成所述多个逻辑核的性能效率排序,根据所述多个逻辑核的性能效率排序确定映射的物理核排序;
获取所述多个异构的物理核的性能能力排序;
根据所述映射的物理核排序与所述多个异构的物理核的性能能力排序的匹配度确定所述多个逻辑核的性能效率与所述多个物理核的性能能力的匹配度,所述多个异构的物理核的性能能力根据所述物理核的异构特征确定。
5.根据权利要求4所述的方法,其特征在于,所述更新所述多个逻辑核与所述多个异构的物理核的映射关系,包括:
将第一逻辑核对应的第一物理核与第二逻辑核对应的第二物理核调换,生成所述第一逻辑核与所述第二物理核,以及所述第二逻辑核与所述第一物理核的映射关系,其中,所述第一物理核和所述第二物理核为在所述映射的物理核排序中,与在所述多个异构的物理核的性能能力排序中排序位置不匹配的物理核。
6.根据权利要求4所述的方法,其特征在于,所述更新所述多个逻辑核与所述多个异构的物理核的映射关系,包括:
根据所述多个物理核的性能效率的排序,以及所述多个逻辑核的性能效率排序重新生成所述逻辑核与所述物理核的映射关系。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:根据新的映射关系,对所述物理核的逻辑核上下文进行重载。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
识别第一类业务进程,并控制对所述第一类业务进程的SoC共享资源分配量;
识别第二类业务进程,并保证对所述第二类业务进程的SoC共享资源分配量;
识别第三类业务进程,并减小对所述第三类业务进程的SoC共享资源分配量;
其中,所述第二类业务进程为所述SoC共享资源的增加的增益大于所述第一类业务进程和所述第三类业务进程的业务进程,所述第三类业务进程为抢占超过执行任务进程所需的所述SoC共享资源的业务进程。
9.一种芯片资源调度装置,其特征在于,所述装置包括:
映射模块,用于获取多个逻辑核的性能效率,确定所述多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度,其中,所述多个逻辑核被用于执行用户任务进程或系统任务进程,所述多个逻辑核与多个异构的物理核是一一映射关系,所述逻辑核的性能效率为所述逻辑核在所映射的物理核上执行任务进程的性能效率;
置换模块,用于若所述多个逻辑核的性能效率与所述多个异构的物理核的处理性能不满足预设匹配度,则更新所述多个逻辑核与所述多个异构的物理核的映射关系。
10.根据权利要求9所述的装置,其特征在于,在所述获取多个逻辑核的性能效率之前,所述映射模块用于:
初始化映射表,所述映射表中包括逻辑核标识,以及与所述逻辑核标识存在一一映射关系的物理核标识;
根据所述映射关系,加载所述物理核对应的逻辑核上下文。
11.根据权利要求9或10所述的装置,其特征在于,在获取所述多个逻辑核的性能效率,确定所述多个逻辑核的性能效率与多个异构的物理核的性能能力的匹配度方面,所述映射模块用于:
对所述多个逻辑核执行的任务进程进行特征采样,根据所述特征采样的结果确定所述多个逻辑核的性能效率;
生成所述多个逻辑核的性能效率排序,根据所述多个逻辑核的性能效率排序确定映射的物理核排序;
获取所述多个异构的物理核的性能能力排序;
根据所述映射的物理核排序与所述多个异构的物理核的性能能力排序的匹配度确定所述多个逻辑核的性能效率与所述多个物理核的性能能力的匹配度,所述多个异构的物理核的性能能力根据所述物理核的异构特征确定。
12.根据权利要求11所述的装置,其特征在于,在所述更新所述多个逻辑核与所述多个异构的物理核的映射关系方面,所述映射模块具体用于:
将第一逻辑核对应的第一物理核与第二逻辑核对应的第二物理核调换,生成所述第一逻辑核与所述第二物理核,以及所述第二逻辑核与所述第一物理核的映射关系,其中,所述第一物理核和所述第二物理核为在所述映射的物理核排序中,与在所述多个异构的物理核的性能能力排序中排序位置不匹配的物理核。
13.根据权利要求11所述的装置,其特征在于,在所述更新所述多个逻辑核与所述多个异构的物理核的映射关系方面,所述映射模块具体用于:
根据所述多个物理核的性能效率的排序,以及所述多个逻辑核的性能效率排序重新生成所述逻辑核与所述物理核的映射关系。
14.根据权利要求12或13所述的装置,其特征在于,所述置换模块还用于:根据新的映射关系,对所述物理核的逻辑核上下文进行重载。
15.根据权利要求8-13任一项所述的装置,其特征在于,所述装置还包括资源分配模块,用于:
识别第一类业务进程,并控制对所述第一类业务进程的SoC共享资源分配量;
识别第二类业务进程,并保证对所述第二类业务进程的SoC共享资源分配量;
识别第三类业务进程,并减小对所述第三类业务进程的SoC共享资源分配量;
其中,所述第二类业务进程为所述SoC共享资源的增加的增益大于所述第一类业务进程和所述第三类业务进程的业务进程,所述第三类业务进程为抢占超过执行任务进程所需的所述SoC共享资源的业务进程。
16.一种片上系统SoC芯片,其特征在于,所述SoC芯片包括收发器、处理器、以及耦合于所述处理器的内部存储器和外部存储器,所述收发器用于收发消息,所述处理器用于执行所述内部存储器和外部存储器中存储的程序指令,以使得所述SoC芯片执行如权利要求1-8中任一项所述的方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,当所述计算机程序被计算机或处理器执行时,使得所述计算机或所述处理器执行如权利要求1-8中任意一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被计算机或处理器执行时实现上述权利要求1-8任意一项所述的方法。
CN202211622184.6A 2022-12-16 2022-12-16 芯片资源调度方法及相关装置 Pending CN118210599A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211622184.6A CN118210599A (zh) 2022-12-16 2022-12-16 芯片资源调度方法及相关装置
PCT/CN2023/137415 WO2024125402A1 (zh) 2022-12-16 2023-12-08 芯片资源调度方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211622184.6A CN118210599A (zh) 2022-12-16 2022-12-16 芯片资源调度方法及相关装置

Publications (1)

Publication Number Publication Date
CN118210599A true CN118210599A (zh) 2024-06-18

Family

ID=91447538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211622184.6A Pending CN118210599A (zh) 2022-12-16 2022-12-16 芯片资源调度方法及相关装置

Country Status (2)

Country Link
CN (1) CN118210599A (zh)
WO (1) WO2024125402A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101175039B (zh) * 2006-10-25 2011-02-09 华为技术有限公司 一种多流业务的传输方法及其装置和系统
US8910177B2 (en) * 2011-04-14 2014-12-09 Advanced Micro Devices, Inc. Dynamic mapping of logical cores
US9329900B2 (en) * 2012-12-28 2016-05-03 Intel Corporation Hetergeneous processor apparatus and method
US11126433B2 (en) * 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
CN105630702A (zh) * 2015-12-18 2016-06-01 浪潮(北京)电子信息产业有限公司 一种逻辑卷创建方法与系统
CN107038064B (zh) * 2017-04-18 2021-12-10 腾讯科技(深圳)有限公司 虚拟机管理方法及装置、存储介质
US11481350B1 (en) * 2020-07-27 2022-10-25 Innovium, Inc. Network chip yield improvement architectures and techniques
CN112257848B (zh) * 2020-10-22 2024-04-30 北京灵汐科技有限公司 确定逻辑核布局的方法、模型训练方法、电子设备、介质

Also Published As

Publication number Publication date
WO2024125402A1 (zh) 2024-06-20

Similar Documents

Publication Publication Date Title
CN100517236C (zh) 智能卡嵌入式操作系统及其控制方法
US9430411B2 (en) Method and system for communicating with non-volatile memory
CN102467415B (zh) 一种业务面任务处理方法及设备
CN103019838B (zh) 一种基于多dsp处理器平台的分布式实时多任务操作系统
US10572410B2 (en) Function-specific communication on a multi-drop bus for coexistence management
CN1613059A (zh) 一种执行操作系统功能的方法和系统以及电子设备
CN102375761A (zh) 业务管理方法和装置、以及设备
CN116243995B (zh) 通信方法、装置、计算机可读存储介质以及电子设备
CN101414270A (zh) 硬件辅助的辅核任务动态优先级调度的实现方法
US9390033B2 (en) Method and system for communicating with non-volatile memory via multiple data paths
CN111796921A (zh) 嵌入式多核操作系统调度方法、调度装置、电子设备及存储介质
CN114461393A (zh) 多任务调度方法、装置、电子设备、系统及自动驾驶车辆
CN116414534A (zh) 任务调度方法、装置、集成电路、网络设备及存储介质
CN111052083B (zh) 用于在启动期间管理服务的调度的方法和装置
US20150134882A1 (en) Method and system for using templates to communicate with non-volatile memory
CN113301087B (zh) 资源调度方法、装置、计算设备和介质
CN111984391B (zh) 任务调度方法、装置、芯片、终端及存储介质
CN118210599A (zh) 芯片资源调度方法及相关装置
CN113806030A (zh) 应用的调度方法及电子设备
CN114448912B (zh) 一种物联网专属的eSIM芯片
CN113254143B (zh) 虚拟化网络功能网元编排调度方法、装置和系统
CN113608861A (zh) 一种软件化载荷计算资源虚拟化分配方法及装置
CN113806064A (zh) 作业调度方法、装置、系统及作业派发装置
CN101707653A (zh) 一种单处理器智能移动终端及其实现方法
WO2015073608A1 (en) Method and system for communicating with non-volatile memory

Legal Events

Date Code Title Description
PB01 Publication