一种避免多核处理器局部过热的线程转移分配方法
【专利摘要】本发明属于处理器设计领域,涉及一种不同处理器核间转移分配线程以避免单个或部分处理器核过热的方法。本发明把多核处理器内的多个处理器核划分成多个群,多个相邻处理器核共享内存,成为一个群;每个群有一个线程控制器,该控制器为这个群里的处理器核动态转移分配线程,尽量以最小的线程转移数量,减少过热处理器核的温度到预设门限值以下且最接近预设门限值,并把线程尽可能转移到在工作的相邻处理器核数量最少的处理器核中,以减少未来又出现过热处理器核的可能性,所述多个群的线程转移可同时进行,以便能快速降低各个群内过热处理器核温度到预设门限值以下。
【专利说明】
一种避免多核处理器局部过热的线程转移分配方法
技术领域
[0001] 本发明属于处理器设计领域,具体涉及一种避免多核处理器局部过热的线程转移 分配方法。
【背景技术】
[0002] 随着集成电路制造工艺水平的飞速发展,集成电路芯片的特征尺寸不断减小,多 核处理器得到广泛应用。但多核处理器由于嵌入多个处理器核,功耗密度高,容易导致单个 或部分处理器核过热(即局部过热),造成多核处理器整体性能下降,可靠性降低。传统的 电压频率缩放法,以方案(所述参考文献)[2]_[3]为代表,通过降低过热处理器核电压 及操作频率来降低过热处理器核温度,但这种方法会较多的降低处理器性能。而DTBM方案 (所述参考文献)[4]和TOTM方案(所述参考文献)[5]则通过基于工作量的预测模型用软 件测算各个处理器核的温度,然后转移过热处理器核上的线程到较冷处理器核中,以降低 过热处理器核温度,但实践显示,所述DTBM和TOTM不能快速准确的计算出处理器核的实际 温度,而且其线程转移策略比较简单,不适应工作量变动频繁,运行线程较多的多核处理器 工作环境。
[0003] 与本发明相关的参考文献有:
[0004] [ 1 ] Wang S. , Chen J. Thermal-aware lifetime reliability in multicore systems[C], in International Symposium on Quality Electronic Design,2010, pp. 399-405
[0005] [2] Yun B. , Shin K. G. , Wang S. Predicting thermal behavior for temperature management in time-critical multicore systems[C], in IEEE Symposium on Real-Time and Embedded Technology and Applications, 2013, pp. 185-194
[0006] [3]0h D. , Kim N. S. , Chen C. C. P. , Davoodi A. , Hu Y. H. Runtime temperature-based power estimation for optimizing throughput of thermal-constrained multi-core processors[C],in Asia and South Pacific Design Automation Conference,2010, pp. 593-599
[0007] [4]Ge Y.,Malani P. , Qiu Q. Di str ibuted task migration for thermal management in many-core systems[C], in Design Automation Conference,2010, pp. 579-584
[0008] [5]Yeo I., Liu C. , Kim E. Predictive Dynamic Thermal Management for Multicore Systems [C],in Design Automation Conference,2008,pp. 734_739〇
【发明内容】
[0009] 本发明的目的是针对现有技术的多核处理器局部过热的问题,提出一种不同处理 器核间转移分配线程以避免单个或部分处理器核过热的方法。
[0010] 具体而言,本发明中,把多核处理器内的多个处理器核划分成多个群,多个相邻处 理器核共享内存,成为一个群。每个群有一个群控制器,该控制器为这个群里的处理器核 动态转移线程,尽量以最小的线程转移数量,减少过热处理器核的温度到预设门限值以下 且最接近预设门限值,并把线程尽可能转移到在工作的相邻处理器核数量最少的处理器核 中,以减少未来又出现过热处理器核的可能性;本发明中多个群的线程转移可同时进行,以 便快速降低各个群内过热处理器核温度到预设门限值以下。
[0011] 本发明的一种避免多核处理器局部过热的线程转移分配方法,其特征在于,采用 不同处理器核间转移线分配程避免单个或部分处理器核过热,包括下述步骤:
[0012] 步骤1 :在多核处理器内划分处理器核群和设计群控制器;
[0013] 步骤2 :群控制器监控记录群内处理器核线程临时转移导致的温度变化;
[0014] 步骤3 :群控制器分配线程,降低群内过热处理器核温度到预设门限以下。
[0015] 下面分别就本发明在不同处理器核间转移线程包含的三个步骤,加以详述。
[0016] 步骤1 :在多核处理器内划分处理器核群和设计群控制器。
[0017] 在多核处理器内把多个相邻处理器核划分成一个群。群内处理器核共享内存,由 一个群控制器硬件电路决定处理器核间的线程分配,例如,一个32核处理器可以考虑每8 个相邻处理器核共享内存,构成一个群,由一个群控制器决定群内线程分配,这样,该32核 处理器有4个群和4个群控制器。其它类似的群的划分方案也可行。处理器核群的划分和 群控制器的设计可在传统多核处理器硬件结构基础上用传统集成电路设计方法实现。群控 制器的具体功能在步骤2和步骤3中进一步说明。
[0018] 步骤2 :群控制器监控记录群内处理器核线程临时转移导致的温度变化
[0019] 群控制器把群内一个处理器核内的线程通过共享内存周期性的临时转移到群内 另一个处理器核中,以便传感器测量线程转移导致源处理器核下降的温度和目的处理器核 上升的温度。温度测量完成后,临时转移的线程可以从目的处理器核转回到原来的源处理 器核中。群控制器用一个线程临时转移表记录所转移的线程编号,源处理器核编号和目的 处理器核编号,以便临时转移的线程可以转回到原来的源处理器核中。群控制器通过每个 处理器核的线程转移矩阵记录临时线程转移导致的温度变化。如果目的处理器核的温度超 过预设门限,则在线程转移矩阵中记录该线程不能转移到该目的处理器核中。如果目的处 理器核的温度没有超过预设门限,则在线程转移矩阵中记录该线程转移导致源处理器核下 降的温度和目的处理器核上升的温度。处理器核1的一个范例线程转移矩阵如图1所示。 图1中的X表示该线程不能转移,例如线程1与核2之间的X表示处理器核1的线程1 不能转移到处理器核2。图1中的3/3, 2/2, 1/1表示该线程转移导致源处理器核下降的温 度和目的处理器核上升的温度。例如线程3与核2之间的1/1表示处理器核1的线程3转 移到处理器核2导致处理器核1温度下降1个单位,处理器核3温度上升1个单位。其他 处理器核的线程转移矩阵类似。
[0020] 步骤3 :群控制器分配线程,降低群内过热处理器核温度到预设门限以下。
[0021] 群控制器分配线程的流程如图2所示。
[0022] 在图2步骤3. 1中,所有线程在群内处理器核间依次临时转移,测量温度变化后, 据此更新各个处理器核的线程转移矩阵,然后按照线程临时转移表的记录把临时转移的线 程转移回原来的处理器核中。
[0023] 在图2步骤3. 2中,如果任何处理器核的温度高于预设门限,进入步骤3. 3,由群控 制器检查过热处理器核(即温度高于预设门限的处理器核)的数量是否高于预设数量门限 或者群内所有处理器核温度的平均值是否高于预设温度门限。如果答案为是,群控制器不 大可能找到优化的线程分配方案来降低所有过热处理器核温度到预设门限以下,所以进入 步骤3. 7,交由多核处理器操作系统降低过热处理器核的驱动电压和操作频率,甚至关停过 热处理器核,以降低过热处理器核温度到预设门限以下。如果答案为否,则进入步骤3. 4。
[0024] 在图2步骤3. 4中,群控制器根据线程转移矩阵,转移过热处理器核中线程以降低 过热处理器核温度到预设门限以下,而且不能导致目的处理器核温度高于预设门限。如果 有多于一种符合上述条件的线程转移方式,则选择最接近预设门限的线程转移方式。如果 有多于一种符合上述两种条件的线程转移方式,则选择线程转移数量最少的那种方式。如 果有多于一种符合上述三种条件的线程转移方式,则选择线程转移到在工作的相邻处理器 核数量最少的那个处理器核的那种方式,这是因为不工作的相邻处理器数量核越多,越有 利于该处理器核散热,减少该处理器核未来温度高于预设门限的可能性。以图1中处理器 核1的线程转移矩阵为例,假设处理器核1温度超过预设门限2. 5个单位,那么根据图1线 程转移矩阵,线程1转移到处理器核3,或者线程2和线程3转移到处理器核3,或者线程2 和线程3转移到处理器核4都可以使处理器核1降低到预设门限以下且最接近预设门限, 则优先选择线程1转移到处理器核3,因为线程转移数量最小。再假设处理器核温度超过 预设门限〇. 8个单位,那么根据图1线程转移矩阵,线程3转移到处理器核2或处理器核3 或处理器核4都以最少的线程转移数量使处理器核1降低到预设门限以下且最接近预设门 限。如果处理器核4有最少的在工作的相邻处理器核,则优先选择线程3转移到处理器核 4〇
[0025] 在图2步骤3. 5中,如果步骤3. 4尝试了预先限定的最多寻找次数或是预先限定 的最长寻找时间,都没有找到可以降低过热处理器核温度到预设门限以下且不会导致目的 处理器核温度高于预设门限的线程转移方式,则表明群控制器难以找到有效的线程转移方 式,那么进入步骤3. 7,交由多核处理器操作系统处理。如果步骤3. 4找到可以降低过热处 理器核温度到预设门限以下且不会导致目的处理器核温度高于预设门限的线程转移方式, 则进入步骤3. 6。
[0026] 在图2步骤3. 6中,群控制器把步骤3. 4确定的线程转移方式通知给多核处理器 操作系统,以便多核处理器操作系统按传统方法为线程在新的处理器核运行分配时隙。同 时,群控制器通过共享内存将被转移线程的当前运行指令和数据的内存地址、相关寄存器 值传递给目的处理器核,以便目的处理器核在运行新接收的线程时,确定线程要执行的下 一条指令和数据的地址,以及更新目的处理器核内相关寄存器值,从而保证被转移线程可 以在新的处理器核中继续顺利运行。然后群控制器把线程临时转移表内相应的线程临时转 移记录删除,因为该线程转移已不再是临时转移,被转移线程无需再回到原来的处理器核 中。
[0027] 在图2步骤3. 7中,多核处理器操作系统以损失处理器核性能为代价,降低过热处 理器核的驱动电压和操作频率,甚至关停过热处理器核,以降低过热处理器核温度到预设 门限以下。
[0028] 本发明具有以下优点:
[0029] (1)本发明把多核处理器内处理器核划分为多个群,为每个群设计一个群控制器 硬件,各个群控制器可以无需多核处理器操作系统大量介入而独立的为群内处理器核转移 分配线程,从而避免大量消耗多核处理器操作系统的资源;另外,当多核处理器内包含多个 过热处理器核时,如果这些过热处理器核分布在不同群内,多个处理器核群可以同时转移 分配线程,同时降低过热处理器核到预设门限以下,从而大大加快降温速度;
[0030] (2)本发明的线程转移分配方法通过线程临时转移,用传感器测得线程移进移出 导致的实际温度变化,这比通过模型计算线程移进移出的温度变化更加准确,更有利于优 化线程转移分配;
[0031] (3)本发明的线程转移分配方法尽量以最小的线程转移数量,减少过热处理器核 的温度到预设门限值以下且最接近预设门限,从而尽量减少了转移线程带来的资源消耗; 而且,本发明的线程转移分配方法尽可能把线程转移到在工作的相邻处理器核数量最少的 处理器核中,从而通过不工作的相邻处理器核散热,减少未来又出现过热处理器核的可能 性;
[0032] (4)本发明尽量采用线程转移分配的方法减少过热处理器核的温度到预设门限值 以下,如果线程转移分配的方法不能降低过热处理器核的温度到预设门限值以下,才交由 多核处理器操作系统降低过热处理器核的驱动电压和操作频率,甚至关停过热处理器核, 以降低过热处理器核温度到预设门限以下;所以,本发明性能损失比直接采用降低过热处 理器核的驱动电压和操作频率甚至关停过热处理器核来降温的方案小,又可以解决只采用 线程转移分配降温方案无法解决大量过热处理器核降温的问题。
【附图说明】:
[0033] 图1为本发明的范例线程转移矩阵的示意图。
[0034] 图2为本发明的线程转移分配流程示意图。 具体实施方案
[0035] 实施例1测试实验结果:
[0036] 实验分别采用本发明方法,以及现有技术DTBM方案[4]和TOTM方案[5]对一个 32核处理器系统中过热处理器核降温,实验使用200个程序任务组成的任务集合,每个任 务的执行时间在15到30个时间片内,在每个任务执行间隔,以2%的几率产生一个新任务, 实验以80°C为预设门限,运行时间为2500时间片,测试结果如表1所示,结果显示,本发明 中处理器核温度超过预设门限80°C的时间最短,表明本发明方法对过热处理器核降温速 度最快;本发明中任何两个处理器核温度差别大于15°C时间占运行时间百分比最小,表明 本发明方法对处理器核间热量平衡管理能力最强;本发明中运行时间内完成任务的数量最 多,表明本发明的性能损失最小。
[0037] 表1温度和性能比较
[0038]
【主权项】
1. 一种避免多核处理器局部过热的线程转移分配方法,其特征在于,采用不同处理器 核间转移线分配程避免单个或部分处理器核过热,包括下述步骤: 步骤1 :在多核处理器内划分处理器核群和设计群控制器; 步骤2 :群控制器监控记录群内处理器核线程临时转移导致的温度变化; 步骤3 :群控制器分配线程,降低群内过热处理器核温度到预设门限以下。2. 按权利要求1所述的方法,其特征在于,所述的步骤1)中,在多核处理器内把多个相 邻处理器核划分成一个群,群内处理器核共享内存,由一个群控制器硬件电路决定处理器 核间的线程分配。3. 按权利要求1所述的方法,其特征在于,所述的步骤2)中,群控制器把群内一个处理 器核内的线程通过共享内存周期性的临时转移到群内另一个处理器核中,以便传感器测量 线程转移导致源处理器核下降的温度和目的处理器核上升的温度;温度测量完成后,临时 转移的线程从目的处理器核转回到原来的源处理器核中;群控制器用一个线程临时转移表 记录所转移的线程编号,源处理器核编号和目的处理器核编号,以便临时转移的线程转回 到原来的源处理器核中; 群控制器通过每个处理器核的线程转移矩阵记录临时线程转移导致的温度变化,如果 目的处理器核的温度超过预设门限,则在线程转移矩阵中记录该线程不能转移到该目的处 理器核中;如果目的处理器核的温度没有超过预设门限,则在线程转移矩阵中记录该线程 转移导致源处理器核下降的温度和目的处理器核上升的温度。4. 按权利要求1所述的方法,其特征在于,所述的步骤3)包括: 步骤3. 1 :所有线程在群内处理器核间依次临时转移,测量温度变化后,据此更新各个 处理器核的线程转移矩阵,然后按照线程临时转移表的记录把临时转移的线程转移回原来 的处理器核中; 步骤3. 2 :如果任何处理器核的温度高于预设门限,进入步骤3. 3,否则回到步骤3. 1 ; 步骤3. 3 :由群控制器检查过热处理器核的数量是否高于预设数量门限或者群内所有 处理器核温度的平均值是否高于预设温度门限;如果答案为是,进入步骤3. 7,否则进入步 骤 3. 4 ; 步骤3. 4 :群控制器根据线程转移矩阵,转移过热处理器核中线程以降低过热处理器 核温度到预设门限以下,而且不能导致目的处理器核温度高于预设门限;如果有多于一种 符合上述条件的线程转移方式,则选择最接近预设门限的线程转移方式;如果有多于一种 符合上述两种条件的线程转移方式,则选择线程转移数量最少的方式;如果有多于一种符 合上述三种条件的线程转移方式,则选择线程转移到在工作的相邻处理器核数量最少的处 理器核的方式; 步骤3. 5 :如果步骤3. 4尝试了预先限定的最多寻找次数或是预先限定的最长寻找时 间,没有找到可以降低过热处理器核温度到预设门限以下且不会导致目的处理器核温度高 于预设门限的线程转移方式,则进入步骤3. 7,否则进入步骤3. 6 ; 步骤3. 6 :群控制器把步骤3. 4确定的线程转移方式通知给多核处理器操作系统,以便 多核处理器操作系统按传统方法为线程在新的处理器核运行分配时隙;同时,群控制器通 过共享内存将被转移线程的当前运行指令和数据的内存地址、相关寄存器值传递给目的处 理器核,以便目的处理器核在运行新接收的线程时,确定线程要执行的下一条指令和数据 的地址,以及更新目的处理器核内相关寄存器值;然后群控制器把线程临时转移表内相应 的线程临时转移记录删除; 步骤3. 7 :多核处理器操作系统降低过热处理器核的驱动电压和操作频率,甚至关停 过热处理器核,以降低过热处理器核温度到预设门限以下。
【文档编号】G06F9/50GK105868016SQ201510028581
【公开日】2016年8月17日
【申请日】2015年1月20日
【发明人】佘晓轩
【申请人】复旦大学