论文部分内容阅读
随着嵌入式技术的发展,人们对嵌入式产品功能丰富性的要求越来越高,这就推动了更高性能的多核处理器的应用。然而,由于先前多核芯片尚未普及,编程人员经年累月在单核处理器上写了大量C语言串行程序,这些积累下来的串行代码向多核平台迁移的工作是一大难题。截止目前也还没有成熟的解决方案可以将串行C程序在多核平台上实现自动并行化,串行程序并行化的工作仍需编程人员参与。针对以上情况,本论文对串行程序并行化的每一步过程进行研究,设计了一款嵌入式多核并行化分析软件,可以为编程人员的并行化工作提供准确的建议和直观的指导,从而减少编程人员工作量。整个软件根据并行化的过程可以分为三大主要功能模块,分别为依赖关系解析、运行开销计算和并行可视化。依赖关系解析。针对C程序内部存在的复杂分支跳转和循环控制,设计一种基于抽象语法树的解析方法,对串行代码的并行潜力进行挖掘,抽取程序内部的控制依赖和数据依赖。针对代码质量较差的部分,设计方法计算其圈复杂度和耦合度,为并行化工作提供一定的指导。运行开销计算。为满足多平台C语言代码开销计算的需求,分别设计不同的编译方法将源程序转换成汇编程序。在汇编程序层面,设计汇编指令字典数据库,存储指令开销数据。最终设计一种基于路径的静态运行开销计算方法,完成多平台代码的开销计算。并行可视化。构建了并行可视化分析软件系统。并行化部分,为了最大限度的利用多核的资源,考虑各任务之间的依赖关系和运行开销,设计接近最优平均的并行化调度算法,完成多任务的多核分配。可视化软件部分,为了清晰的展示程序多核并行化运行的具体情况,设计运行开销聚合图、多核任务分配图、任务运行时序图等界面。最终,通过系统测试和不断优化,该软件顺利递交第三方应用,表明其具有良好的稳定性和实用性。