论文部分内容阅读
随着嵌入式应用技术的发展,传统的嵌入式平台已经无法满足应用对于高性能的需求,多核片上系统(Multi-Processor System on Chip,MPSoC)在此背景下应运而生,并且成为高性能嵌入式应用的主流解决方案。多核片上系统在提供高性能的同时也带来了编程上的挑战,由于多核片上系统引入了并行体系结构,已有的代码无法直接利用。使用新的编程方法重写代码工作量巨大,成本太高。如何简化向多核片上系统移植已有代码,有效地在多核片上系统上进行开发,已经成为开发者急需解决的问题。
本文通过对相关工作的研究,对多核片上系统流式应用的分析,设计了软件流水并行方式将串行应用映射至多核片上系统的并行应用功能中的编译支持。本文主要讨论了其中任务划分,任务映射以及通信与分程序代码生成这三个功能的设计与实现。
在任务划分功能中,本文使用域表示任务,依据Profile信息,使用层次聚类方法从程序基本块构造域,将控制流图转换成为基于域的程序控制流图(RCFG),得到任务间的控制流关系。同时本文还讨论了不确定的数据流信息导致的通信生成困难,并提出了两种方法解决此问题;对于执行时间较长的函数调用点引起任务粒度过大的问题,本文使用在调用点嵌入RCFG的方法将函数划分开,保证了任务粒度大小合适。
在任务映射功能中,本文使用基于整数线性规划的任务映射方法进行问题求解,得到任务与核的映射关系。文章主要讨论了问题建模,约束条件以及目标函数的设计与实现。
在通信与分程序代码生成功能中,本文设计了根据控制依赖与数据依赖生成核间通信的方案;本文还使用函数部分克隆技术为每个核上的程序生成相应的中间表示。
实验结果验证了HIMA系统功能,可以将串行流式应用转换成为软件流水并行应用,并在TI C6474实验平台上取得了2核平均1.38倍,3核平均1.64倍的加速比。同时数据还显示,任务映射方法所使用的整数线性规划模型对于性能估计的平均误差小于5%。说明本文使用的任务映射模型对性能估计的误差是可接受的。