关键词:
非对称多核
异构操作系统
核间协同
核间函数调用
核间数据传输
摘要:
随着计算机处理任务的多样化与复杂化,传统的对称多核处理器(SMP,Symmetric Multiple Processor)逐渐无法满足任务要求,非对称多核处理器(AMP,Asymmetric Multiple Processor)成为一个新的研究热点。针对嵌入式应用领域的MPU+MCU架构就是其中一个重要的研究方向。与SMP架构处理器或AMP架构中的性能非对称处理器只运行单一操作系统不同,MPU+MCU架构的处理器通常会在不同架构的核心上运行不同的操作系统(例如Linux和RTOS)。通过运行在不同核心上的异构操作系统间协同工作,更好地处理复杂应用所面临的各种任务。但是,MPU+MCU架构现有的核间通信机制只能进行简单的信息传递,对于异构操作系统间的协同开发支持较为有限。在实际开发中,仍需开发人员为核间协同做大量工作,对开发人员要求较高。本论文针对上述问题,基于STM32MP157芯片运行的Linux系统和RTThread系统,利用现有核间通信机制,以及RPC、DMA等技术,设计并实现了一套异构操作系统间的协同机制。该机制实现了核间函数调用机制和核间数据传输机制。核间函数调用机制允许Linux侧应用程序调用RTOS侧函数。核间数据传输机制则向用户提供统一的调用接口,在Linux侧或RTOS侧均可以主动发起数据传输。本文主要工作内容如下:(1)研究了STM32MP157处理器中MPU核与MCU核的架构特点,针对操作系统协同的两大关键部分:执行流和数据流,分别提出了对应的协同需求。对于执行流,核间函数调用机制需要在不改变开发者编程习惯的情况下,完成Linux侧对RTOS侧函数的调用。对于数据流,针对不同应用程序的数据传输需求,核间数据传输机制需要提供不同的数据传输方案。(2)研究分析了RPC(Remote Procedure Call)框架,根据异构操作系统间执行流的协同需求和MPU+MCU架构芯片的特点,设计并实现了核间函数调用机制。(3)研究了现有核间通信机制的运行框架,针对异构操作系统间不同的数据传输场景,基于DMA(Direct Memory Access)传输框架,设计出不同的数据传输方案,以满足操作系统间数据流的协同需求。最后,针对本文设计实现的协同机制,分别设计实验对核间函数调用机制和核间数据传输机制进行测试。测试结果表明,该协同机制达到了预期的设计目标,可以有效的完成核间函数调用与核间数据传输。利用该机制,开发者可以更加便捷地完成核间协同任务的开发,开发效率得到大幅提高。