用于多核芯片的线程调度方法及装置与流程

文档序号:29615810发布日期:2022-04-13 11:31阅读:147来源:国知局
用于多核芯片的线程调度方法及装置与流程

1.本发明涉及芯片技术领域,具体地涉及一种用于多核芯片的线程调度方法及装置。


背景技术:

2.微电子技术的飞速发展,使得芯片的尺寸越来越小,同时运算速度越来越快,单位面积的发热量也就越来越大。芯片都有其正常工作的温度范围,超过这个温度范围,芯片上的电子器件会出现工作异常的现象,使得芯片无法正常工作。因此,芯片需要特殊的封装材料和散热技术。
3.在芯片制造方面,德纳德(dennard)缩放比例定律的失效以及由此导致的无法显著提高时钟频率,已经导致大多数芯片制造将重点放在多核处理器上,以此作为提高性能的一种替代方法。增加处理器数量有利于提高工作负载,但是由于拥有多个处理器而增加的元件仍然会导致整体功耗增加,从而加剧多核芯片的功耗问题。


技术实现要素:

4.本发明实施例的目的是提供一种用于多核芯片的线程调度方法及装置,其能够解决多核芯片的温度控制问题,延长多核芯片的使用寿命。
5.为了实现上述目的,本发明实施例提供一种用于多核芯片的线程调度方法,所述方法包括:针对线程调度队列中的待调度线程,在所述多核芯片中,查找能够处理所述待调度线程且当前温度低于对应的第一阈值温度的硬件部件;以及在未查找到所述硬件部件的情况下,延迟调度所述待调度线程,对所述线程调度队列中的下一待调度线程执行调度处理。
6.可选的,所述方法还包括:在查找到所述硬件部件的情况下,基于所述待调度线程的处理时间和所述硬件部件的功耗,预测所述硬件部件处理所述待调度线程期间温度升高值;基于所述温度升高值和所述硬件部件的当前温度,判断所述硬件部件处理所述待调度线程期间的第一温度是否低于所述对应的第一阈值温度;在所述第一温度低于所述对应的第一阈值温度的情况下,调度所述待调度线程;以及在所述第一温度不低于所述对应的第一阈值温度的情况下,查找下一所述硬件部件。
7.可选的,所述待调度线程的处理时间:根据所述硬件部件的数据处理速率、所述待调度线程的数据量和执行次数预测所述待调度线程的处理时间。
8.可选的,所述方法还包括:在查找到所述硬件部件的情况下,调度所述待调度线程。
9.可选的,所述硬件部件包括以下一者或多者:运算部件、存储模块、外设接口、直接存储访问模块,所述运算部件包括多个处理器。
10.可选的,所述方法还包括:获取所述多核芯片中设置有温度感知模块的硬件部件的温度;在所述多核芯片中一硬件部件的温度不低于对应的第三阈值温度的情况下,延迟
向该硬件部件调度线程。
11.相应的,本发明实施例还提供一种用于多核芯片的线程调度装置,所述装置包括:设置于所述多核芯片的每一个硬件部件的温度感知模块,用于检测对应硬件部件的温度;以及控制模块,用于执行根据上述的用于多核芯片的线程调度方法。
12.可选的,所述装置还包括:分别设置于多核芯片的处理部件的每一个处理器的温度感知模块,用于检测对应处理器的温度。
13.相应的,本发明实施例还提供一种多核芯片,所述多核芯片包括上述的用于多核芯片的线程调度装置。
14.可选的,所述控制模块为所述多核芯片的微控制器,所述微控制器通过系统总线获取所述多核芯片中设置有温度感知模块的部件的温度。
15.相应的,本发明实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有指令,该指令用于使得机器上述的用于多核芯片的线程调度方法。
16.通过上述技术方案,在调度线程时,查找能够处理该线程且当前温度低于阈值温度的硬件部件。若查找不到所述硬件部件,则延迟调度所述线程。如此,能够避免多核芯片的各硬件部件超高负荷运行,提高多核芯片的使用寿命。
17.本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
18.附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
19.图1示出了根据本发明一实施例的用于多核芯片的线程调度方法的流程示意图;
20.图2示出了根据本发明另一实施例的用于多核芯片的线程调度方法的流程示意图;
21.图3示出了根据本发明又一实施例的用于多核芯片的线程调度方法的流程示意图;
22.图4示出了根据本发明一实施例的用于多核芯片的线程调度装置的结构框图;
23.图5示出了根据本发明一实施例的多核芯片的结构图;
24.图6示出了根据本发明又一实施例的多核芯片的结构图;
25.图7示出了图6所示的多核芯片的微控制器中的一状态数据;
26.图8示出了图6所示的多核芯片的微控制器中的另一状态数据;以及
27.图9示出了图6所示的多核芯片的微控制器中的又一状态数据。
具体实施方式
28.以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
29.图1示出了根据本发明一实施例的用于多核芯片的线程调度方法的流程示意图。如图1所示,本发明实施例提供一种用于多核芯片的线程调度方法,所述方法包括步骤s110和步骤s120。
30.步骤s110,针对线程调度队列中的待调度线程,在所述多核芯片中,查找能够处理所述待调度线程且当前温度低于对应的第一阈值温度的硬件部件。
31.所述硬件部件可以包括以下一者或多者运算部件、存储模块、外设接口、直接存储访问模块,所述运算部件可以包括多个处理器。
32.能够处理待调度线程的硬件部件可能是一个或多个,可以在每查找到一个能够处理待调度线程的硬件部件后,判断该硬件部件的温度是否低于对应的第一阈值温度。能够处理待调度线程的硬件部件可以通过待调度线程携带的信息中被知晓。例如,如果待调度线程执行卷积操作,则可能有多个处理器能够处理该卷积操作。或者待调度线程是执行数据存储,则可能有多个存储模块能够存储所述数据。
33.多核芯片的每个硬件部件可以设置有温度感知模块,以便于获取每个硬件部件的当前温度。运算部件可以单独设置一温度感知模块,运算部件的每个处理器也可以分别设置一温度感知模块。各处理器分别看作一单独的硬件部件来执行本发明实施例提供的方法。也可以将各处理器看作一整体的处理部件来执行本发明实施例提供的方法。
34.每个硬件部件可以对应同一第一阈值温度。可选地,所述第一阈值温度可以采用多核芯片整体的阈值工作温度一致。
35.不同的硬件部件也可以对应不同的第一阈值温度,第一阈值温度可以根据硬件部件的性能被预先设置。
36.步骤s120,在未查找到所述硬件部件的情况下,延迟调度所述待调度线程,对所述线程调度队列中的下一待调度线程执行调度处理。
37.未查找到能够处理所述待调度线程且当前温度低于对应的第一阈值温度的硬件部件,说明能够处理该调度线程的硬件部件均不适宜再增加线程数据的处理,延迟调度所述待调度线程,能够避免多核芯片的各硬件部件超高负荷运行,提高多核芯片的使用寿命。
38.在延迟调度所述待调度线程的情况下,可以继续对线程调度队列中的下一待调度线程执行步骤s110和步骤s120的调度处理,避免线程调度的中断。
39.具体如何延迟调度所述待调度线程,本发明实施例并不作特定限制。例如可以是延迟一预设时间调度所述待调度线程,或者可以是可以将所述待调度线程放置于所述线程调度队列中一个或多个待调度线程之后,以等待下一次的调度处理。
40.图2示出了根据本发明另一实施例的用于多核芯片的线程调度方法的流程示意图。如图2所示,基于图1所示的实施例,本发明实施例提供的用于多核芯片的线程调度方法可以进一步包括步骤s130,在查找到所述硬件部件的情况下,调度所述待调度线程。调度所述线程,可以是将所述线程调度至查找到的所述硬件部件。
41.图3示出了根据本发明又一实施例的用于多核芯片的线程调度方法的流程示意图。如图3所示,在该实施例中,本发明实施例提供的用于多核芯片的线程调度方法可以进一步包括步骤s310至步骤s360。
42.步骤s310,针对线程调度队列中的待调度线程,在所述多核芯片中,查找能够处理所述待调度线程且当前温度低于对应的第一阈值温度的硬件部件。
43.所述硬件部件可以包括以下一者或多者运算部件、存储模块、外设接口、直接存储访问模块,所述运算部件可以包括多个处理器。
44.能够处理待调度线程的硬件部件可能是一个或多个,可以在每查找到一个能够处
理待调度线程的硬件部件后,判断该硬件部件的温度是否低于对应的第一阈值温度。能够处理待调度线程的硬件部件可以通过待调度线程携带的信息中被知晓。例如,如果待调度线程执行卷积操作,则可能有多个处理器能够处理该卷积操作。或者待调度线程是执行数据存储,则可能有多个存储模块能够存储所述数据。
45.多核芯片的每个硬件部件可以设置有温度感知模块,以便于获取每个硬件部件的当前温度。运算部件可以单独设置一温度感知模块,运算部件的每个处理器也可以分别设置一温度感知模块。各处理器分别看作一单独的硬件部件来执行本发明实施例提供的方法。也可以将各处理器看作一整体的处理部件来执行本发明实施例提供的方法。
46.每个硬件部件可以对应同一第一阈值温度。可选地,所述第一阈值温度可以采用多核芯片整体的阈值工作温度一致。
47.不同的硬件部件也可以对应不同的第一阈值温度,第一阈值温度可以根据硬件部件的性能被预先设置。
48.步骤s320,在未查找到所述硬件部件的情况下,延迟调度所述待调度线程,对所述线程调度队列中的下一待调度线程执行调度处理。
49.未查找到能够处理所述待调度线程且当前温度低于对应的第一阈值温度的硬件部件,说明能够处理该调度线程的硬件部件均不适宜再增加线程数据的处理,延迟调度所述待调度线程,能够避免多核芯片的各硬件部件超高负荷运行,提高多核芯片的使用寿命。
50.在延迟调度所述待调度线程的情况下,可以继续对线程调度队列中的下一待调度线程执行步骤s310和步骤s320的调度处理,避免线程调度的中断。
51.步骤s330,在查找到所述硬件部件的情况下,基于所述待调度线程的处理时间和所述硬件部件的功耗,预测所述硬件部件处理所述待调度线程期间温度升高值。
52.具体的,可以根据所述硬件部件的数据处理速率、所述待调度线程的数据量和执行次数预测待调度线程的处理时间。所述硬件部件的数据处理速率可以基于所述硬件部件的特性而被预先知晓。具体地,将数据量与处理速率的比值与执行次数相乘,即可得到所述处理时间。由于硬件部件的数据处理速率在所述硬件部件运行期间可能会产生变化,因此计算的处理时间为一预测时间。
53.所述硬件部件的功耗可以根据所述硬件部件的特性而被预先知晓。将预测的所述待调度线程的时间与所述硬件部件的功耗相乘,即可得到处理所述待调度线程需要消耗的功率。将该功率值转换为温度值,即可得到所述温度升高值。
54.步骤s340,基于所述温度升高值和所述硬件部件的当前温度,判断所述硬件部件处理所述待调度线程期间的第一温度是否低于所述对应的第一阈值温度。
55.所述第一温度可以是温度升高值和所述硬件部件的当前温度的和。
56.步骤s350,在所述第一温度低于所述对应的第一阈值温度的情况下,调度所述待调度线程。
57.调度所述线程,可以是将所述线程调度至查找到的所述硬件部件。
58.步骤s360,在所述第一温度不低于所述对应的第一阈值温度的情况下,查找下一所述硬件部件。
59.若第一温度不低于所述对应的第一阈值温度,则说明将所述待调度线程调度至所述硬件部件,将会导致所述硬件部件超高负荷运行,对多核芯片产生不利影响,因此可以不
将所述待调度线程调度至所述硬件部件,而继续从该步骤s310开始查找能够处理所述待调度线程且当前温度低于对应的第一阈值温度的下一硬件部件,直到所述待调度线程被调度,或者直到所述待调度线程被延迟调度。
60.本实施例提供的用于多核芯片的线程调度方法,相当于提供了预测机制,在查找到所述硬件部件之后,预测所述待调度任务调度到所述硬件部件后,是否会引起所述硬件部件的温度高于所述对应的第一阈值温度。若否,则将所述待调度任务调度至所述硬件部件。若是,则不将所述待调度任务调度至所述硬件部件,从而避免所述硬件部件超高负荷运行,提高多核芯片的使用寿命。另外,通过查找合适的硬件部件,可以合理优化各处理器的利用率,提高多核芯片的效率。
61.基于上述任意实施例,本发明实施例提供的用于多核芯片的线程调度方法还可以基于多核芯片中各部件的温度来执行线程的调度。多核芯片的各部件处均可以设置有温度感知模块。可以获取多核芯片中设置有温度感知模块的部件的温度,若一部件的温度不低于对应的第二阈值温度,则可以延迟向该部件调度线程。
62.可以为多核芯片的各处理器分别设置一温度感知模块,将各处理器分别看作一单独的硬件部件。可选的,可以将各处理器看作一整体的处理部件,为处理部件设置一温度感知模块。
63.每一硬件部件可以对应同一第二阈值温度。可选地,所述第二阈值温度可以采用多核芯片整体的阈值工作温度一致。
64.每一硬件部件也可以对应不同的第二阈值温度,第二阈值温度可以根据每一硬件部件的性能被预先设置。
65.本发明实施例中可以实时获取多核芯片中设置有温度感知模块的硬件部件的温度,或者可以每隔预定时间获取多核芯片中设置有温度感知模块的硬件部件的温度,并不作特定限制。
66.若某一硬件部件的温度不低于所述对应的第二阈值温度,说明该硬件部件不适宜再被调度线程,需延迟向该硬件部件调度线程,以避免硬件部件的超高负荷运行,从而能够提高多核芯片的使用寿命。
67.图4示出了根据本发明一实施例的用于多核芯片的线程调度装置的结构框图。如图4所示,本发明实施例提供的用于多核芯片的线程调度装置可以包括:设置于所述多核芯片的每一个硬件部件的温度感知模块,用于检测对应硬件部件的温度;以及控制模块,所述控制模块用于执行根据本发明任意实施例所述的用于多核芯片的线程调度方法。
68.所述温度感知模块可以任意能够感知温度的模块,例如温度传感器等。
69.可以将各处理器看作一整体的处理部件,为处理部件设置一温度感知模块。该温度感知模块检测处理部件的温度。也可以为处理部件的每一个处理器分别设置一温度感知模块,用于检测对应处理器的温度。
70.控制模块能够获取各部件的温度,执行根据本发明任意实施例所述的用于多核芯片的线程调度方法。
71.相应地,本发明实施例还提供一种多核芯片,该多核芯片可以包括根据本发明任意实施例所述的用于多核芯片的线程调度装置。
72.用于多核芯片的线程调度装置的控制模块可以是多核芯片的微控制器,微控制器
可以通过系统总线获取多核芯片中设置有温度感知模块的各部件的温度。
73.图5示出了根据本发明一实施例的多核芯片的结构图。如图5所示,多核芯片的处理部件、存储模块、外设接口、集成到多核芯片上的且需要进行温度监控的其他硬件模块均可设置有温度感知模块。各温度感知模块检测的温度数据通过系统总线传送至微控制器。可选地,也可以为处理部件的每一个处理器分别设置一温度感知模块,用于检测对应处理器的温度。
74.所述温度感知模块可以任意能够感知温度的模块,例如温度传感器等。
75.系统总线负责连接多核芯片的各个部件,各部件之间的数据、控制信息都通过系统总线进行传输,包括各温度感知模块的温度数据,不需要单独为温度数据建立新的数据通路。运算部件为负责计算功能的电路,本发明实施例中处理器泛指计算电路。运算部件可以为同构平台,也可以为异构平台。对温度数据进行收集、进行任务调度控制的功能由微控制器完成。
76.图6示出了根据本发明又一实施例的多核芯片的结构图。图6所示的多核芯片为一工业级多核芯片,该多核芯片选取温度传感器tsensor作为温度感知模块。该多核芯片的运算部件包括两个处理器,分别为pe阵列和脉动阵列。pe(process element,处理单元)阵列和脉动阵列分别设置有一个温度传感器tsensor。arm(advanced risc machine,进阶精简指令集机器)处理器作为该多核芯片的微控制器。另外,多核芯片还设置有一个存储模块和一个dma(direct memory access,直接存储器访问)模块。dma模块将数据从一个地址空间复制到另一个地址空间,提供在外设接口和存储器之间或者存储器和存储器之间的高速数据传输。
77.假设多核芯片正常工作的温度为-40~60摄氏度。为方便,实施例中使用1位的有效位标志电路温度状态,其中使用0表示可正常工作温度,1表示超出温度阈值。该实施例中,各硬件部件的阈值温度与多核芯片的正常工作温度一致,如,均取值为60摄氏度。
78.图7表示某一时刻多核芯片的微控制器中的状态数据。如图7,在该时刻,多核芯片的各模块均处于正常工作温度,线程调度队列中,具有线程11到线程15。在线程队列中,线程11的编号为thread_11,执行的操作为卷积conv;线程12的编号为thread_12,执行的操作为矩阵操作matrx;线程13的编号为thread_13,执行的操作为卷积conv;线程14的编号为thread_14,执行的操作为卷积conv;线程15的编号为thread_15,执行的操作为数据搬运data-move。
79.在图7所示的时刻,对于线程11,可分配的硬件部件为脉动阵列,查看脉动阵列的温度处于正常工作状态,此时即可进行线程11的调度。对于线程12,可分配的硬件部件为pe阵列,查看pe阵列的温度处于正常工作状态,同样线程12被调度。
80.由于线程11的调度到脉动阵列,使得脉动阵列的温度超过阈值,微控制器根据读取的脉动阵列的温度数据,修改脉动阵列的状态为1,如图8所示。当进行线程13的调度时,查看脉动阵列的温度为不可用状态,继续查找可用的硬件部件。pe阵列也可以执行卷积操作,此时查看pe阵列的温度为可用状态,将线程13调度至pe阵列。
81.由于线程13的执行,使得pe阵列的温度超过阈值,微控制器根据读取的pe阵列的温度数据,修改pe阵列的状态为1,如图9所示。当进行线程14的调度时,发现脉动阵列的温度为不可用状态,继续查看pe阵列的温度为不可用状态,此时,没有可使用的硬件部件,线
程14将被延迟调度。
82.继续进行线程15的调度,线程15为数据搬运操作,将使用dma模块,此时dma模块的温度为可用状态,可进行调度,将线程15调度至dma模块。
83.相应的,本发明实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有指令,该指令用于使得机器根据本发明任意实施例所述的用于多核芯片的线程调度方法。
84.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
85.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
86.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
87.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
88.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
89.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
90.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
91.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的
包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
92.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1