论文部分内容阅读
随着集成电路工艺的发展,芯片的集成度越来越高,未来芯片上将可集成成百上千个核心。片上网络为多核SoC提供了结构规整、扩展性好、功耗低、性能高的片上通信结构,有效解决了未来复杂多核SoC中的互连难题,已成为片上多核系统芯片的主流互连方案。但在基于片上网络的多核SoC的设计过程中,还存在着诸如映射、编程、容错等一系列设计挑战。基于片上网络的多核SoC设计方法具有与单核SoC完全不同的特征,其设计方法已成为近年的研究热点。与单核SoC不同的是,多核SoC具有良好的可扩展性、潜在良好的并行计算能力,具有众多的计算资源。如何有效的组织、管理并利用这些资源,从而满足目标应用需求,是其设计的难点与重点。本文围绕基于片上网络的多核SoC的典型设计过程,针对应用程序的并行化和片上通信构件设计两个阶段,依次从任务映射和调度、并行编程模型、多核SoC通信过程优化设计以及可容错的路由器设计等方面,研究基于片上网络的多核SoC关键技术。作为应用程序的并行化设计的关键步骤,任务映射和调度过程面向目标计算平台,以抽象应用的任务图为输入,在满足约束的条件下,寻找更加有效的计算资源和通信链路的分配方案。针对这一个过程存在着任务图产生与目标平台特征无关联,任务划分粒度过小、全局通信量过大的问题,本文面向分簇NoC平台,提出一种基于任务聚簇的目标灵活可控的任务映射和调度方法。该方法通过在任务映射和调度与任务图产生之间引入一个聚簇操作,根据目标平台特征将原始任务图进行改造,形成一种比原始任务图全局通信开销更小的簇图,从而有效降低全局通信量,以达到更好的任务映射和调度优化效果。在聚簇过程中,通过采用过程可控的任务复制技术,针对不同的延迟和能量优化目标,使得聚簇方案可调节,有利于基于片上网络的多核SoC的系统级设计探索。作为软硬件接口,编程模型为并行程序的顺利实现和多核SoC资源的有效利用起到关键作用。针对提高多核软件的设计效率、支持动态资源管理和提高系统容错能力等问题,通过分析多核软件设计流程,并考虑到对动态任务映射以及节点级容错框架的支持,总结出适合多核SoC的编程模型的设计动机,进而提出一种兼容于MPI标准、具有良好可移植性、低存储和执行开销的多核消息传递接口模型MMPI。该模型采用分层的通信协议栈,定义了软硬件设计层次,通过提供抽象接口使得软硬件设计解耦合,引入基于映射文件的初始化方法使得并行编程与任务映射无关,进而能够支持动态任务映射和优化的多核软件设计流程;采用虚拟拓扑技术,引入虚拟节点到物理节点的转换机制,提供给应用层统一的节点地址,使得软件编程无需考虑硬件节点地址的改变,具有良好的节点级容错特性。作为基于片上网络的MPSoC通信过程的关键部件,网络接口实现了计算和通信分离,其软硬件协作方式通常成为制约通信性能的瓶颈。针对网络接口的硬件抽象层的设计和优化问题,通过分析基于MMPI的多核通信过程,总结出提高通信性能的有效策略——降低一对多消息发送延迟和提高多条消息并发接收效率。从减少数据拷贝延迟的角度,提出了基于硬件抽象层广播优化方法,有效地降低了一对多消息发送延迟。针对并发接收瓶颈,充分考虑减少交互次数和提高长消息通信效率,提出一种基于查找表和DMA模式相结合的接收机制。实验结果表明,所提出的广播优化方法能够有效降低广播发送延迟,相比于简单广播方式能提高性能30%以上。所提出的数据接收机制相比于常规解决方案性能提高达40%。对于确定的目标应用,两种方案可配合使用,性能提升效果更加明显。在片上网络的组件设计中,满足性能需求的、具有低开销和高容错能力的路由器是其中的关键。针对因支持容错带来的硬件开销大和网络性能低的问题,提出了一种细粒度的高性能、低开销的2D-Mesh片上网络容错路由解决方法,并依此设计了一款低开销、单周期的可容错路由器。该容错方法通过提出一种失效模型,细化了失效类型的判定,合理地区分节点失效和链路失效,从而有效降低错误判定粒度,提高网络性能。与传统采用虚拟通道技术的路由器相比,所设计的路由器将开关部件按照维度分成独立的两路,放弃使用虚拟通道技术以减少路由器中缓冲器使用,同时使用媒介缓存队列完成X维和Y维之间的耦合,以支持多种基于维度转换的单播路由算法。评估结果表明,该容错方法能够有效提高网络性能,所设计的路由器具有面积开销小、容错特性好、低注入率下平均网络延迟低的性能优势。