张凌嘉, 覃志东, 肖芳雄
(1.东华大学 计算机科学与技术学院,上海 201620; 2.金陵科技学院 软件工程学院, 江苏 南京 211169)
目前,基于纳米工艺的众核处理器受生产缺陷和工艺偏差的影响较大,其成品率很低,工程中常采用核级冗余机制来提高成品率[1].为发挥此类处理器众多核心的并行计算能力,业内将大量资源投入到众核软件的综合技术研究中,如MIT的Streamit项目、Stanford的StreamC项目与UC Berkeley的Ptolemy项目等.但这些研究主要聚焦于如何提高众核系统的吞吐率,而对保障系统可靠性的成果还比较缺乏.对此,科研人员已对众核软件的综合技术做了相关分析发现,已分配调度好的任务集合的负载量具有不均匀性,导致所绑定的处理器核心发热不均衡,加之核心的空间分布影响其散热效果,使得各个核心的温度不一样,老化速度不一样,最终影响整个处理器平台的可靠性[2-4].基于此,本研究以众核流程序为软件模型,以2D-Mesh结构为处理器拓扑结构模型,建立众核处理器可靠性模型,并针对不同的流程序任务分配及绑定方式对众核处理器的可靠性进行了探讨.
众核处理器各核心由片上网络连接,其拓扑结构有二维网格(2D-Mesh)、二维环绕(2D-Torus)和超立方(Hypercube)等等,而众核软件又分为流水执行型和并行执行型软件.众核软件综合到众核处理器上,处理器的时间性能与可靠性既决定于本身的拓扑结构又受软件及综合方式影响.软硬件的不同架构,其可靠性建模方式不一样,因此本研究选择2D-Mesh众核处理器和流水执行型众核软件为研究对象.
2D-Mesh结构由于其拓扑结构高效、易于实现和扩展,目前已被广泛研究和使用.本研究基于2D-Mesh结构的众核处理器模型主要由路由器、IP核、双向通道和网络接口组成.为了方便说明,假设要生产一款9核处理器芯片,拓扑结构是3×3的2D-Mesh结构,为了提高芯片成品率,则提供一列冗余核(#4、#8、#12)作为备份单元,具体如图1所示.
图1 3×4 2D-Mesh结构的众核处理器模型示意图
流水执行型的众核软件常用同步数据流图(Synchronous data flow,SDF)表示.为了简单直观,以图2所示的单链SDF图为例加以说明.
图2单链结构SDF图
图2中,节点表示任务模块;有向边表示任务之间存在输入输出的资源依赖关系,即节点之间的数据流关系.例如,对于任务B输出数量1表示任务B在执行一次产生1单位的数据资源;同理,输入数量3表示任务B执行一次所消耗的数据资源量.显然,各任务模块执行一次产生和消耗的数据资源不尽相同,从而需要对这些任务模块的执行进行调度,使得其满足SDF图所示的数据资源消耗和依赖关系[5].
而现实的众核软件大多如图3所示的多链SDF图表示.对调度好的众核软件中的任务模块进行划分并封装,再分配并绑定到不同的众核处理器核心上执行.这样,处理器核心间具有数据资源依赖关系的任务集合的执行,就形成了处理器核心执行流水线.
图3多链结构SDF图
本研究的硬件目标平台采用核级冗余机制,即便处理器有失效核,但有足够数量的正常处理器核可供选择使用(见图4).众核软件模块被分配成4个不均匀任务模块,分别绑定到可执行核上,按流水线执行.为了简化系统,图4中省略了路由器link,并使用-1表示失效核,0表示闲置核.
图4 3×4 2D-Mesh结构的众核处理器模型示意图
除了图4中这种绑定方式,由排列组合可知,有很多其他的选择方式可以构建目标系统.随着众核系统不断增大,以及故障核数量和分布的变化,不同的流程序任务分配及绑定方式对众核处理器的可靠性有着不同的影响.
2.2.1 EM失效下的可靠性函数.
在元件故障分析的过程中,考虑到众核系统故障率随时间递增的特点,本研究选取威布尔分布(Weibull)进行可靠性建模.对于单核来讲,某个时刻t的可靠性可由式(1)所示,
(1)
式中,T表示当前的温度;β为形状参数,反映处理器结构特性,对于众核同构平台,其值惟一确定;θ为尺寸参数,也称特征寿命,反映不同的操作电压与温度.
通常情况下,使用平均故障前时间(Mean time to failure,MTTF)来评估众核平台的可靠性,其定义为,
(2)
将式(1)代入,结合伽马函数,通过变式可得,
(3)
由MTTF和电迁移(Electromigration,EM)失效机制[6]的关系,式(3)进一步衍生为式(4),
(4)
式中,A0是金属材质常数,Ea为电子迁移的激活能,T为开氏温度,K为玻尔兹曼常数,J为电流密度.
2.2.2 考虑温度变化的可靠性建模.
在众核系统的一个执行周期中,对于核心存在执行和闲置的时间段,温度在这2种情况下是不同的.再者,自身温度也会受到邻居核的影响而变化.考虑到以上因素,本研究针对温度变化的情况对众核平台进行可靠性建模.
首先,根据流程序周期内的执行规律,将一个单核的寿命时间t,切分成若干互不相等的时间槽slot.坐标记为,0=t0 R(t,T)|t=t0=1 (5) 对于第1个slot[t0,t1),恒定温度为T0,则有, (6) 第1个slot结束时,即坐标t1时刻,其可靠性为, (7) 而t1时刻又可以表示为第2个slot开始,这里,使用c来表示第1个slot的老化效应,其可靠性为, (8) (9) 对于每个时刻,都存在, (10) 类比第1个slot的情况,对于第(l+1)个slot内某时刻的可靠性为, (11) 式中, (12) 由于流程序周而复始地执行着周期任务,假设在时刻完成一个周期任务,代入式(11)、式(12),化简得到:当一个周期执行完成时,单核的可靠性为, (13) 则在第m个周期末尾时,其可靠性为, (14) (15) 由于MTTF≫tp,可以将式(2)这个连续的函数,以流程序周期为单位转换为离散函数,其表达式为, (16) 到这里,本研究构建出了单核考虑温度变化的可靠性模型. 假设一个9核流程序系统,其绑定任务之后的物理拓扑结构如图5所示(-1表示故障核;0表示闲置核;1~4绑定任务编号). 图5 9核4任务拓扑结构示意图 对于同构众核流程序系统,在每个处理器核心频率相同的前提下,执行时间越长,其功耗越大. 图6展示了系统稳定运行下流程序的流水执行过程.为了提高效率且尽量避免不同核心同时休息同时工作的情况,假设一旦有任务待消耗,核心就开始执行.由此可知,流程序的周期是由绑定最大任务模块的执行核所决定的, 图中虚线之间的部分即一 图6任务流水线执行过程示意图 个周期(tp=t4).根据时间槽slot的概念,按照系统稳定状态(在稳定状态下,所有的核状态不会发生改变),将图6中的一个任务周期分成4个slot.每个slot的时间记为Δti(Δt0=t1-t0),温度记为Ti.根据式(15),可以计算绑定task1的core1一个周期内的老化效应Acore1为, (17) 此外,可以通过HotSpot温度仿真工具[7]来模拟每个slot内core1动态均衡后的稳态温度.而通过提供给HotSpot的布局文件以及功耗追踪文件保证稳态温度能很好地遵循散热机制.类似地,可以计算出core7、core3与core9在一个周期内的老化效应,分别记为Acore7、Acore3与Acore9. 对于一个绑定任务并映射完成的众核流程序系统,在不考虑动态重构的情况下,当一个核心失效时,则整个平台就失效了.为了更好地模拟整个平台的MTTFsys,选取老化效应最大的核心作为一个周期的老化效应, Amax=max{Acore1,Acore3,Acore7,Acore9} (18) 通过式(4)、式(16)、式(17)与式(18),可以得到整个系统的MTTFsys为, (19) 本仿真实验基于(2×2)4核系统,(3×3)9核系统与(4×4)16核系统,使用HotSpot温度仿真工具.结合本研究提出的可靠性模型,对不同任务模块以及不同绑定方式的目标系统进行可靠性分析.实验基于EM失效模型,其对应的参数主要包括:导线的横截面积Ac=6.4×108,电流密度J=1.5×106,电子迁移的激活能Ea=0.48,玻尔兹曼常数K=1.3806505×10-23,经验参数n=2.0,则得到9核系统的布局情况,如表1所示. 表1 9核系统简化布局 为了更好地研究众核流程序系统的任务分配模型,将流程序的一个任务模块按2的幂次方进行切分.假设不考虑失效核的存在,任务模块数量应小于等于平台核心数A.本实验统计了一个周期内的最大老化效应,以此来比较任务模块数对老化效应的影响(见表2).其中,拓扑结构按照“2.1”项提出的目标系统,根据核心顺序给出绑定的任务编号(0表示未绑定任务).任务数及核心数差异下的老化效应如图7所示. 表2 不同任务数不同核心数下的周期老化效应 图7任务数及核心数差异下的老化效应比较 分析表2与图7可以发现:在核心数足够多的情况下,不断地切分任务模块(使用的核心数目越多),使得执行的周期越短,工作效率、时间性能都有了显著的提高;在核心数相同的前提下,每一次切分任务都会使得一个周期的处理器核心老化效应上升,例如表2中2、3行,当任务数量变成原来的2倍,周期时间缩短成原来的1/2(500 ms变为250 ms),理论上周期老化效应缩减为原来的1/2.但从表2可知,实际老化效应0.64046>1.27003/2,这恰恰体现了由于散热机制,附近的执行核对当前核的温度产生了影响,使得当前核的老化效应增大了. 此外,观察不同核心数执行相同的任务数量(图7中4核、9核、16核平台下执行4task/130 ms流程序)可以发现,执行相同任务模块数的不同平台的最大老化效应较为接近.但随着平台的核心数目的增多,其最大老化效应逐渐递减.这是因为随着核心数目的增多,绑定任务的核的距离更远,任务分布更为稀疏,受到邻居核温度的影响更小,其规律如图8所示. 图8老化效应变化规律 图8中的4个图均展示了相同任务数在不同核心数上的最大老化效应的变化规律.随着核心数目的增多且任务数量不变的情况下,老化效应将趋于平行.同时,还可以发现,任务数目越少,老化效应达到平衡时所需平台核心数越少. 众核流程序系统的可靠性最终将体现在MTTF上.对于已知物理拓扑,需要将流程序的任务绑定到相应的核心上,再通过MTTF评估模型,计算得到平台的可靠性.为了研究如何绑定能够使得流程序系统拥有更高的可靠性,本研究比较了不同重构情况下的MTTF. 固定核心数和任务数,表3对重构后的9核4任务系统进行了可靠性分析,表4对重构后的16核8任务系统进行了可靠性分析.其中,拓扑结构描绘了任务绑定的真实情况,并通过不同数量的故障核场景分别进行分析仿真.仿真实验采用了文献[8]提出的失效成团现象来进行故障核模拟. 表3重构后9核系统MTTF分析 表4重构后16核系统MTTF分析 表3、4记录了一些不同任务绑定的MTTF情况,每组实验的编号6都是该组MTTF最大值.从表中数据可以发现:对于固定核心固定任务的众核流程序平台,要想使得MTTF尽量大,必须在现有的有效核中选出和任务数一样的核心,这些核心应尽量分散,使得绑定的任务也尽量分散;在同构平台下,当执行核心没法更好地分散时,应使得执行时间长且任务量大的几个核心与其他核心的距离尽量远,例如,task1任务量最大,需要避免它和其他核相邻,尽量让它的周围是闲置核和故障核. 本研究在建立众核处理器可靠性评估模型的基础上,通过模拟仿真的方式,研究了多种众核流程序向众核处理器核心绑定方式下对系统时间性能和处理器可靠性的影响.研究发现,基于众核平台的流程序有着更好的并行性,当任务分块越多时,任务周期体现的时间性能提高了,单个任务周期内的老化效应也升高了.另外,当被绑定核心的数量一定时,核心在处理器上的位置越分散,核心的老化效应越低.总之,本研究的分析方法和成果有利于设计出高效的空间搜索算法与高可靠众核系统.3 实验仿真与分析
3.1 任务及核心数量对老化效应的影响
3.2 固定平台任务评估MTTF
4 结 论