任务调度电路、方法、电子设备及计算机可读存储介质技术

技术编号:33538675 阅读:15 留言:0更新日期:2022-05-21 09:39
本公开实施例公开了一种任务调度电路、方法、电子设备和计算机可读存储介质。其中该任务调度电路包括:状态存储电路、任务包调度电路以及控制电路;其中,所述状态存储电路,用于存储每个所述处理核的状态;所述任务包调度电路,用于获取待执行的任务包,所述任务包中包括同一任务的至少一条任务指令;根据所述状态存储电路中的状态信息确认所述至少两个处理核中的一个空闲处理核;将所述任务包发送至所述空闲处理核;控制电路,用于接收所述空闲处理核的状态信息,并根据所述状态信息指示所述任务包调度电路工作。上述任务调度电路通过处理核的状态信息调度任务包给处理核执行,解决了现有技术中的调度效率低的技术问题。了现有技术中的调度效率低的技术问题。了现有技术中的调度效率低的技术问题。

【技术实现步骤摘要】
任务调度电路、方法、电子设备及计算机可读存储介质


[0001]本公开涉及处理器领域,尤其涉及一种任务调度电路、方法、电子设备及计算机可读存储介质。

技术介绍

[0002]随着科学技术的发展,人类社会正在快速进入智能时代。智能时代的重要特点,就是人们获得数据的种类越来越多,获得数据的量越来越大,而对处理数据的速度要求越来越高。芯片是任务调度的基石,它从根本上决定了人们处理数据的能力。从应用领域来看,芯片主要有两条路线:一条是通用芯片路线,例如CPU(Central Processing Unit)等,它们能提供极大的灵活性,但是在处理特定领域算法时有效算力比较低;另一条是专用芯片路线,例如TPU(Tensor Processing Unit)等,它们在某些特定领域,能发挥较高的有效算力,但是面对灵活多变的比较通用的领域,它们处理能力比较差甚至无法处理。由于智能时代的数据种类繁多且数量巨大,所以要求芯片既具有极高的灵活性,能处理不同领域且日新月异的算法,又具有极强的处理能力,能快速处理极大的且急剧增长的数据量。
[0003]在神经网络计算中,经常会用到多核或者众核的芯片。此处多(众)核架构中的核,都有一定独立处理能力,并且带有比较大的核内存储空间,用于存储自身的程序、数据和权重。
[0004]如何让众多的核能够高效率的发挥算力,是决定整个芯片性能的关键。各核的算力发挥,取决于多种因素,例如任务的调度与分配、芯片的架构、核的结构、核的电路等。其中任务的调度与分配是一个非常关键的因素,如果任务的调度与分配合理,则能充分发挥各核的有效算力高,否则各核的有效算力就会变低。
[0005]现有技术中一般使用以下案来进行处理核任务的调度:
[0006]如图1所示为使用调度器进行任务调度的方案。在该方案中,调度器接收到来自于指令源的指令,然后将指令按一定的策略,如顺序,传输给各处理核,各处理核对不同的数据执行相同的指令。各处理核可以是比较简单的结构,例如共用控制电路和寄存器的SIMD(Single Instruction Multiple Data,单指令多数据结构),也可以是比较复杂有一定的自主性的结构,例如有独立的控制电路和寄存器等的SIMT(Single Instruction Multiple Threads,单指令多线程)。但是上述方案一般用于指令级调度,每次只能调度一条或少数几条指令,当需要完成比较大的任务时,需要频繁的调度,降低了调度效率;另外,该方案一般适用于单任务场景,当执行多任务时,各个核需要复用调度器,也降低了调度效率。

技术实现思路

[0007]提供该
技术实现思路
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该
技术实现思路
部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
[0008]为了解决现有技术中处理核的任务调度不灵活、控制复杂的技术问题,本公开实
施例提出如下技术方案:
[0009]第一方面,本公开实施例提供一种任务调度电路,包括:状态存储电路、任务包调度电路以及控制电路;其中,所述状态存储电路,用于存储每个所述处理核的状态;所述任务包调度电路,用于获取待执行的任务包,所述任务包中包括同一任务的至少一条任务指令;根据所述状态存储电路中的状态信息确认所述至少两个处理核中的一个空闲处理核;将所述任务包发送至所述空闲处理核;控制电路,用于接收所述空闲处理核的状态信息,并根据所述状态信息指示所述任务包调度电路工作。
[0010]进一步的,所述状态存储电路,用于存储每个所述处理核的状态,包括:所述状态存储电路,用于存储每个所述处理核的所述状态信息,其中所述状态信息包括处理核标识以及处理核状态位;其中所述处理核状态位表示闲状态或忙状态。
[0011]进一步的,所述任务包调度电路,还用于:修改所述状态存储电路中所述处理核的状态信息,并将所述状态信息发送至所述控制电路。
[0012]进一步的,所述控制电路用于根据所述状态信息指示所述任务包调度电路工作,包括:
[0013]当每个所述处理核的状态信息均为忙状态时,所述控制电路用于根据所述状态信息指示所述任务包调度电路进入等待状态;或,当所述至少两个处理核中的任意一个所述处理核的状态信息为闲状态时,所述控制电路用于根据所述状态信息指示所述任务包调度电路继续获取后续任务包。
[0014]进一步的,所述控制电路还用于:修改已保存的所述处理核的状态信息。
[0015]进一步的,所述控制电路用于修改已保存的所述处理核的状态信息,包括:所述控制电路,用于修改所述状态存储电路中所述处理核的状态信息。
[0016]进一步的,所述任务调度电路,还包括:任务指令缓存电路,所述任务指令缓存电路中包括与所述处理核一一对应的任务指令缓存队列,所述任务包缓存队列中的每一个用于缓存对应处理核的所述任务包中的任务指令。
[0017]进一步的,所述任务包中包括:任务编号、任务包编号以及至少一条任务指令。
[0018]第二方面,本公开实施例提供一种任务调度方法,包括:获取待执行的任务包,所述任务包中包括同一任务的至少一条任务指令;根据处理核的状态信息确认至少两个处理核中的一个空闲处理核;将所述任务包发送至所述空闲处理核;接收所述空闲处理核的状态信息,并根据所述状态信息确定任务包调度过程。
[0019]进一步的,所述处理核的状态信息包括处理核标识以及处理核状态位;其中所述处理核状态位表示闲状态或忙状态。
[0020]进一步的,在将所述任务包发送至所述空闲处理核之后,还包括:修改已保存的所述处理核的状态信息。
[0021]进一步的,所述根据所述状态信息确定任务包调度过程,包括:当每个所述处理核的状态信息均为忙状态时,根据所述状态信息确定所述任务包调度过程进入等待状态;或,
[0022]当所述至少两个处理核中的任意一个所述处理核的状态信息为闲状态时,根据所述状态信息确定继续获取后续任务包。
[0023]进一步的,所述方法还包括:将所述任务包中的任务指令缓存至任务指令缓存队列,中所述任务指令缓存队列与所述空闲处理核对应。
[0024]进一步的,所述任务包中包括:任务编号、任务包编号以及至少一条任务指令。
[0025]第三方面,本公开实施例提供一种芯片,包括:至少一个上述第一方面中任一项所述的任务调度电路。
[0026]第四方面,本公开实施例提供一种电子设备,包括:存储器,用于存储计算机可读指令;以及一个或多个处理器,用于运行所述计算机可读指令,使得所述处理器运行时实现前述第二方面中的任一所述任务调度方法。
[0027]第五方面,本公开实施例提供一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述第二方面中的任一所述任务调度方法。
[0028]第六方面,本公开实施例提供一种计算机程序产品,其特征本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务调度电路,用于包括至少两个处理核的系统中,其特征在于,包括:状态存储电路、任务包调度电路以及控制电路;其中,所述状态存储电路,用于存储每个所述处理核的状态;所述任务包调度电路,用于获取待执行的任务包,所述任务包中包括同一任务的至少一条任务指令;根据所述状态存储电路中的状态信息确认所述至少两个处理核中的一个空闲处理核;将所述任务包发送至所述空闲处理核;控制电路,用于接收所述空闲处理核的状态信息,并根据所述状态信息指示所述任务包调度电路工作。2.如权利要求1所述的任务调度电路,其特征在于,所述状态存储电路,用于存储每个所述处理核的状态,包括:所述状态存储电路,用于存储每个所述处理核的所述状态信息,其中所述状态信息包括处理核标识以及处理核状态位;其中所述处理核状态位表示闲状态或忙状态。3.如权利要求1-2中任一项所述的任务调度电路,其特征在于,所述任务包调度电路,还用于:修改所述状态存储电路中所述处理核的状态信息,并将所述状态信息发送至所述控制电路。4.如权利要求1-3中任一项所述的任务调度电路,其特征在于,所述控制电路用于根据所述状态信息指示所述任务包调度电路工作,包括:当每个所述处理核的状态信息均为忙状态时,所述控制电路用于根据所述状态信息指示所述任务包调度电路进入等待状态;或,当所述至少两个处理核中的任意一个...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:北京希姆计算科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1