论文部分内容阅读
微处理器自诞生以来,性能的提升主要是通过提高主频来实现的,而主频的提升要求大幅度增加晶体管的数量。巨大的晶体管数量则意味着巨大的能耗,随之带来的散热问题也日益凸显。这些问题在嵌入式系统中表现尤为明显。在这样的背景下,多核(Multi-core)的嵌入式处理器逐渐引起了人们的关注。多核处理器将两个或多个独立的处理器核封装在一个芯片内部,从而能以较低的主频而获得较高的处理器性能。在嵌入式系统中,随着多核处理器的应用,相应的系统软件,如实时操作系统、并行编译器等也日益成为研究的热点。本文首先讨论了多核处理器硬件相关的主要实现技术,特别是与操作系统接口相关的部分。然后分析了当前的支持多核处理器的实时操作系统的主要实现方式。着重讨论了支持多核处理器的实时操作系统实现的关键技术,包括多核处理器的引导、任务调度以及多核处理器间的互斥和通信等。Linux 2.0以后的版本提供了对于对称多处理器构架(SMP)的支持,本文分析了在Linux中的SMP的具体实现。随后利用对称多处理器构架的实现方式,将一个原来运行于单核处理器的实时操作系统MicroC/OS-II扩展为一个支持多核处理器的实时操作系统MicroC/OS-SMP。作为一个运行于多核处理器之上的实时操作系统,意味着更为复杂的多任务调度机制和更为精巧的同步和互斥机制。本文讨论了这些与实现相关的关键问题,并着重讨论了多核处理器上的多任务调度算法,提出了作为任务调度算法所应该满足的两个条件,同时设计并实现了一种简洁有效的多核处理器上的多任务调度算法。最后,基于FR1000的多核处理器平台,移植并实现了MicroC/OS-SMP。同时设计并实现了相应的测试工具和测试用例,有效地验证了MicroC/OS-SMP在实现上特别是在多任务调度方面的功能。利用对称处理器构架对于RTOS的适当的扩展能够使硬件的处理器个数对应用程序透明,这使得实时操作系统就能不进行任何针对SMP的修改而运行现有的应用程序。这种特性对于原本基于单核处理器的嵌入式系统平滑地过渡到多核处理器平台,有着特别重要的意义。