论文部分内容阅读
随着半导体制造工艺的不断进步及单核处理器暴露出来的许多局限,多核处理器成为应用需求和技术发展的必然产物。多核处理器的出现,随之带来了一些问题,其中的核间通信技术就是当今计算机体系结构中研究的热点问题。一方面,各大厂商相继纷纷提出了不同的多核处理器核间的通信标准实现,如何针对不同嵌入式平台选择合理的核间通信方案显得非常重要。另一方面,现有多核通信实现往往与硬件平台相关,存在移植性差等问题。本文针对上述问题,在规范多核通信库MCAPI标准的基础上,设计并实现了一套简单、可行、可移植到嵌入式平台的多核通信方法。该多核通信库主要是针对处理器核间的通信,相比于其他现有成熟的多核通信库如MPI等,通信延迟和内存占用更低,是更轻量级API实现。本文在设计实现过程中,首先,提出标准OpenMCAPI现存的移植性差、硬件平台特定等问题,对规范库内部使用的消息中断机制MSGRs进行详细分析;随后,提出了一套脱离实际硬件平台约束、使用不同通信机制作为底层通信方法的多核通信库的API函数集。该多核通信库在架构设计上可以分为应用层、核心层及移植层,层次化的架构设计使得库的代码实现更加清晰、便于维护。此外,多核通信库代码实现中封装了针对同构多核处理器平台与异构多核处理器平台的底层通信机制,如消息队列、共享内存结合域套接字、中断等,使得API上层接口与底层分离,实现了代码的结构化与模块化。本文在对自定义实现的嵌入式多核通信方法测试的过程中,分别进行功能和性能方面的测试。首先,针对双核X86 PC平台及四个ARM核的KeystoneII平台,对实现的面向无连接的message通信方式和面向连接的packet通信方式,从时间延迟和数据传输率两方面对核间通信进行测试,最后,与现有标准OpenMCAPI及其他APIs进行对比,实验结果显示,本文实现的多核通信库不仅能实现各种嵌入式平台下各核之间的通信,而且在性能上较标准OpenMCAPI也有一定的优势。本文实现的一套API函数集为后续软件开发人员进行多核通信提供了便捷的函数调用接口,有重要的应用价值。