论文部分内容阅读
近年来,由于材料和加工技术的限制,单核处理器的性能已经难以有所提高了,无法满足应用的需求。为了进一步提高处理器的性能,必须采用多核结构的处理器。多核处理器采用了并行计算的思想,将任务划分之后并发执行,从而节省了时间,提高了效率。
多核处理器与传统的分布式系统虽然都采用了并行化的设计,但是在实现上有一定的区别。分布式系统以节点为单位,节点通过内部总线访问本地内存的速度比较快,但是节点通过相对较慢的网络连接访问其他节点的速度比较慢;多核处理器以核为单位,不同的核在同一芯片内通过高速总线相互连接,再通过共享同一个前端总线,甚至是共享同一个缓存来访问外部的主存,核与核之间的通信速度远远快于核对内存进行访问的速度。这种实现上的区别,对程序的设计有很大的影响。
无论是普通的采用串行化设计的软件,还是针对分布式系统的传统的并行化软件,都难以在多核处理器上发挥较好的性能。因此,需要为多核处理器开发专用的软件开发工具,包括编译器、调试器和多核编程支持组件等。
多核处理器分为同构多核和异构多核两种。同构多核处理器由相同的核组成,每个核用来执行相同或者类似的任务;异构多核处理器由两种以上不同的核组成,不同的核用来处理不同类型的任务。本文的工作主要是针对异构多核处理器的。
多核处理器的任务调度问题与传统的分布式系统有一定的共同点,但是又不完全相同。异构多核的任务调度类似于分布式系统中的某些静态任务调度问题,本文使用有向无环图来描述任务,并且通过在有向无环图和处理器矩阵之间建立映射的方法来完成任务调度。
在介绍了多核高性能处理器的基本原理和技术,研究发展情况,多核处理器的分类和特征等的基础上,本文以北京时代民芯公司的BM31XXMG多核处理器为例,详细的介绍了异构多核处理器的内部结构(包括主控制器和DSP单元),核间通信方式,以及主控制器与DSP单元的协同工作机制。
以这些介绍为基础,本文结合嵌入式系统开发的一般流程,分析了针对BM31XXMG的多核处理器软件开发平台的功能需求和工作流程。然后,基于这些分析,介绍了针对BM31XXMG多核处理器的软件开发平台的功能和设计,以及具体的实现。编译器、模拟器、多核编程支持组件及编程接口等组件,都进行了详细的介绍。对于BM31XXMG所采用的基于有向无环图的任务调度方式的具体实现,也进行了深入的描述。
最后,本文总结了开发工作中取得的成功和遇到的问题,并且提出了下一步提高和改进的方向。