论文部分内容阅读
现代处理器架构的关注重点已经从增加时钟速度转移到增加处理器核的数量,多核处理器已逐渐取代单核处理器,成为提高处理器性能的主要途径。从处理器核的结构来看,多核处理器分为同构多核和异构多核处理器。同构多核处理器即芯片中的多个内核完全相同,地位对等,可以认为是SMP架构的芯片化。异构多核处理器即芯片中的多个内核不完全相同,地位不对等。由于异构多核内部采用多种功能不同的内核,各个内核可以完成自己擅长的任务以提高整个系统的性能,同时满足嵌入式应用在芯片面积、计算性能和功耗等多方面的需求,从而被大量应用于嵌入式计算领域。如何充分利用多核优势协同完成特定的任务成为当今研究的热点。与传统的单核平台不同,多核平台可能在不同的处理器核上运行不同的操作系统,需要不同的编译器以及不同的编程模式,这就为多核间的软件接口和信息交互带来了困难。本文在调研了多个多核协同计算平台的基础上,针对嵌入式实时应用,在PB11MPCore同构四核开发板上实现了一个多核协同计算平台DualOSCCP。为了便于系统移植,DualOSCCP采用异构多核平台的设计思想,将PB11MPCore当做异构多核平台,即将CPU0与其余三核CPU1-3看作不同的处理器核,构建了一个双操作系统异构环境,CPU0运行的是ARM Linux,其他三核以SMP方式运行aCoral。aCoral是一个轻量级的实时操作系统,执行效率高,能保证任务实时完成。Linux和aCoral使用不同的编译器编译,在两个不同操作系统上运行的程序需要分别编写并编译,增强了DualOSCCP在异构核上的可移植性,比如在ARM+DSP异构平台,ARM和DSP使用不同的编译器,将aCoral移植到DSP里面后,DualOSCCP也能轻易移植到该平台。对于不同类型的任务,DualOSCCP可以有选择地将其分配在不同操作系统上运行,比如单个IO型任务可选择在Linux上执行,而对于多个实时性要求较高的计算型任务可选择在aCoral上并行执行,这样能使系统的整体性能得到较大提升。