论文部分内容阅读
随着集成电路制造工艺的提高,嵌入式系统日益复杂,基于多处理器片上系统(MPSoC)的软件开发已经成为嵌入式系统开发的重大挑战。在MPSoC上开发多线程程序需要实现复杂的线程间通信,并避免由多线程引起的死锁,同时需要为不同类型的处理器架构和通信协议编写不同的软件代码,并将代码及数据映射到不同处理器。多线程代码自动生成平台能自动产生软件代码,避免上述复杂工作。然而,随着MPSoC规模的提升,应用被划分成粒度更细的线程,更频繁的系统通信导致通信开销和同步开销显著上升,系统通信已经成为影响系统性能的重要因素。为了提升细粒度多线程代码的执行效率,需要对系统通信进行优化;此外,任务映射、线程划分和调度结果直接影响系统通信及同步开销。为此,本文的对以下三方面进行研究:1)细粒度多线程系统的通信优化方法研究。为了避免任务映射、线程划分及调度对通信优化方法的影响,该研究基于确定的系统模型(即应用已被划分成若干线程,并映射到各处理器)进行。本文首先提出一种综合使用消息聚合和通信流水线技术的策略,该策略能有效改善系统通信开销。为了进一步提升处理器利用率,本文引入了通信缓存技术,并提出一种静态分析和动态仿真结合的通信缓存分配方法。然而,系统中的环状依赖拓扑结构限制上述技术的使用范围。为了使以上技术适用于更多通信通道,本文提出一系列优化方法,包括基于强连通分量(Strong Connected Component,SCC)的线程再划分方法以及提前执行策略等。2)任务映射、线程划分和调度优化方法研究。本文首先提出一套基于整数线性规划(Integer Linear Programming,ILP)的静态映射方法,该方法综合优化处理器负载平衡、系统通信开销,并使用静态调度方法获取最优调度结果。为了进一步提高细粒度多线程代码效率,在任务映射阶段引入了软件流水线技术,新的映射方法同时关注处理器负载平衡和处理器问依赖关系拓扑结构,避免因任务间环状依赖关系导致流水线阻塞。3)基于以上研究,本文提出了综合通信、任务映射、线程划分及调度优化的方法,以进一步提高细粒度多线程代码执行效率。