Moko365与MagicLego团队共同举办了一场「Multi-Core 嵌入式开发」研讨课程。可以说是多核心软硬件开发的「计算机概论」课程,不但是多核心开发的第一门课,更是了解「没有软件、没有多核心效能」的基础课程。没有良好的软件设计,无法发挥多核心处理器的效能。既然如此,多核心软件的涉及范围为何?只需要操作系统支持多核心即可吗?
答案是,多核心处理器需要软件全面的支持,范围从应用程序开始,一直往底层,直到操作系统,甚致驱动程序,都有很大的关联。软件如何支持多核心处理器,最大的关键在于「任务切割与指派」。研讨课程当天,另一位讲师Frank也利用一个图像处理的例子,说明图像处理如何分割任务,并将不同的任务,分派给不同的处理器。
另一个多核心软件的关键为数据合并(Combine),Frank同样也以图像处理做为例子,说明每个处理器在完成计算后,将分别得到的结果(Data)合并成最终计算结果。这个部份,梁老师也利用了一个矩阵运算的例子做了很清楚的说明。
由以上的说明可以了解,数据合并的关键,最终在于「如何取用另一个处理器核心的结果(Data)」。在ARM Cortex A8/A9架构里,这个问题,是透过共享内存方式解决。也就是Cortex A8/A9多核心架构,处理器核心间是共享内存。共享的内存包含二种,第一种是成本较高,但速度较快的 L2 Cache;另一个共享内存则是DRAM,它的成本较低、容量较大,但速度较慢。(作者:Jollen Chen)
(本文经
仕橙部落同意转载到CTimes科技网)