论文部分内容阅读
基于片上网络的众核系统具有低功耗、可用资源丰富、通信效率高等特点。然而,众核系统计算核心较多,将软件任务合理地分配到NoC硬件资源中运行面临着许多挑战。同时,由于芯片制造过程中的缺陷以及器件老化等原因所导致的永久性故障也是NoC众核系统面临的问题。NoC任务分配机制不仅会影响上层软件应用的性能,也在提高系统可靠性以及故障发生时的节点容错方面发挥重要作用。本文将针对众核系统中的任务分配策略展开研究,设计了一种高性能动态任务分配机制,并将其应用于节点容错。为了提高上层软件应用的性能,本文设计并实现了一种动态任务分配机制,该分配机制主要分为三个执行步骤:初始点选择、近凸形区域确定、区域内节点映射。该初始点选择机制是一种前摄型低开销策略,可以在系统产生任务分配请求之前对必要变量进行预先计算,保证了初始点选择过程的实时性;随后,本设计将水波传递效应应用于凸形区域选择,设计了一种碎片可感知的区域选择算法,即在保证当前应用分配性能的前提下,优先对系统碎片区域进行分配,提高了NoC系统资源的利用率;最后,在区域选择完成的基础上,实现了一种阻塞可感知的区域内节点映射方案,该方案对软件拓扑中节点之间通信量以及硬件拓扑中的节点毗邻数同时进行映射优先级排序,完成区域内节点映射。其次,本文在任务分配机制的基础上,将其用于NoC节点容错。在故障发生前,分析并论证了该动态任务分配机制在提高众核系统可靠性方面发挥的作用;在故障发生后,根据故障核的数量,设计了限制性和非限制性任务重分配节点容错方案,两种容错方案均能在故障发生时完成节点容错并缓解容错后的性能降级。最后,针对本文设计的动态任务分配机制,对其进行性能测试与评估。基于链路阻塞、通信效率、可靠性等评估指标,使用相关文献中的动态任务分配算法作为测试基准,对本设计中的动态任务分配机制进行了测试与对比。实验证明,该动态任务分配机制在不同评估指标下,均展现出了更优的性能;同时在故障发生时,本文设计的限制性与非限制性任务重分配策略可以在完成节点容错前提下,缓解容错后的性能降级。