首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

非对称双核MCU基础知识及核间通信(3)

非对称双核MCU基础知识及核间通信(3)

核间任务分工
  M0没有M4强大的处理能力,但是作为一个CPU,亦有完整的中断系统和基本的算术与数据传送能力,并且在LPC4350上,可以在高达204MHz的主频下运行。合理地分担一些任务给M0,才能利用双核设计的优势。接下来,我们讨论两种主要的任务分工模型。
  处理高频中断——智能“DMA”:中断的响应是有额外开销的:既包括CPU的中断模型本身产生的硬件开销,也包括操作系统的中断管理产生的软件开销,当然,也还有中断服务程序本身执行的开销。当中断的频率很高时(比如:高达几十甚至几百kHz),中断的响应将对CPU时间产生不可忽略的额外开销。更重要的是,中断的响应是由硬件处理,并凌驾于任务管理之上的,这可以影响任何任务的执行而不论其优先级如何。DMA明显改善了这一状况。但是当DMA通道或总线分配不足,或者是设备不受DMA支持时,我们就可以让M0来响应这些高频的中断,合理组织数据缓冲区,而如同一个智能的DMA一样。
  例如:在调光设备中,需要进行多达几十甚至上百路的AD采样来获取每路灯光的预期亮度,以及同样多的LED来指示实际输出的亮度。后者需要非常多的PWM,极可能已超出硬件PWM通道的数目。因此,在实现AD采样与软件PWM时,均需要快速的通道数据流处理与高频LED刷新,以保证PWM精度。这两者很容易导致高达几十kHz的中断请求,仅中断响应的额外开销就可占用一半以上的CPU时间。传统的做法是使用若干颗MCU来分摊并由主控轮询。在LPC4350下,则可由M0来处理这些任务。同样的例子也适用于PLC应用,它需要快速地刷新多路控制。
  为弱计算操作提供额外的处理能力:M0的整体性能约是M4的72%,但对于弱计算操作(如:加减乘与逻辑运算,移位,以及简单的数据传送),并没有太多劣势。弱计算操作在程序中往往占一半以上的比例,尤其体现在驱动程序及一些通信协议栈上。合理地分配一部分弱计算操作任务给M0,可以有效提升整体的处理能力。这样,完成相同的任务只需更低的主频,而降低功耗,或者反过来,能够在有限的主频下完成需求更大的任务。
  例如:在高精密工业运动控制中,对于电机的控制往往需要运算量很大的算法,同时又要处理如CAN、工业以太网,以及各种现场总线的通信。我们可以让M4来运行电机控制算法,而通信协议栈与驱动程序则由M0来完成。同样的例子也适用于嵌入式音频——由M4执行音频编解码与音效处理算法,而M0则负责音频总线、USB等事务。
  本文小结
  通过以上的介绍可以看出,相比传统的使用多颗MCU的方案,非对称双核MCU在性能、成本、功耗、生产等诸多环节都有明显的优势。核间通信稍显复杂,但作为基础设施可由底层系统软件来实现。在具体开发时,应根据实际问题合理分配任务,并且在初始化流程、内核鉴别以及调试上,需注意一些操作细节。
返回列表