论文部分内容阅读
随着芯片技术的不断发展,相较之4、5年前,多核处理器价格已经十分低廉,并且在linux、android等操作系统的支持下,大到汽车多媒体系统,小到智能手表,无不在通过一块多核芯片为人们带来高效与便捷的服务。然而对于多核处理器及其操作系统原理研究却不像单核时代那么简单。一方面芯片厂商对产品部分资料保密,并且不提供裸板级的开发支持。另一方面支持多核的嵌入式操作系统及其资料虽然有很多,但大多只提供应用级开发支持与说明,对其内核原理分析非常有限。这些问题都为研究多核硬件原理以及多核操作系统技术带来了不便,也是高校中,嵌入式课程与实践中多核技术教学缺乏、多核技术研究实验很少采用真实硬件的重要原因之一。为改善上述状况,本论文选择以搭载有ARM Cortex A9 MPCore双核的Zynq-7000平台作为硬件研究对象,深入分析了多核处理器中多cpu协同工作原理。同时对单核嵌入式实时操作系统ucos-iii各功能模块的实现原理与工作流程进行了深入研究,并对其启动、任务管理、互斥同步、中断管理和时钟管理的smp支持性进行了分析。随后结合smp对称多处理器操作系统关键技术,提出与设计了对ucos-iii进行smp扩展的方案。本文首先通过将多核核间中断与内存共享相结合,设计了核间通信机制。然后在任务管理方面,提出采用Per-CPU就绪任务队列模型,对各cpu私有内核资源进行隔离,并基于核间通信机制扩展了核间任务管理方法。除此之外还设计了基于自旋锁的内核锁与关中断+自旋锁机制,为互斥与同步的多核化改造提供支持。最后,本文在前面提出的扩展方案的基础上,实现了核间通信,并对单核嵌入式操作系统ucos-iii中系统启动、任务管理、同步互斥这三个模块进行了smp扩展实现,并将扩展后的ucos-smp在搭载有Zynq-7000芯片的mi-z702嵌入式开发板上进行了移植与部署。同时对ucos-smp中扩展部分在真实硬件环境下进行了一系列功能实现正确性验证与性能指标测试。测试结果表明,ucos-smp功能实现达到预期,综合性能相对ucos-iii得到显著提升。