合并是嵌入式领域长期存在的一个趋势,它使得性能更优良的嵌入式设备采用更少的元器件,从而降低了成本及功耗预算。这一趋势的最新进展是在单个封装内提供多个处理器内核的多内核嵌入式微处理器的增加CONTROL ENGINEERING China版权所有,而且与同等的单内核处理器相比具有低功耗和低成本的优点。
使用多处理器内核要求软、硬件团队之间进行更多的系统级设计合作。基于这种理念,下面是对采用当前开发工具和硬件直接实现多内核系统的三个简单模型的概述。这些多内核设计模式不是一个为了严格定义一个系统的刚性模型,而是针对思考和探讨关于系统实现宏伟蓝图的初始点,以及规定了一套通用术语以便软、硬件团队都能设计出一个多内核系统结构。
三种设计模式
1. 平面模式
第一种模式是平面模式(Planar Pattern),这个名称源于划分一个通信系统的处理任务的“控制平面”和“数据平面”。它是一个广泛的和不同类型的多内核设计实例,这种多内核设计统称为非对称多处理技术(简称“AMP”或“ASMP”)。
如果采用平面模式,系统需要划分成具有显著不同处理要求的多个自包含模块。在其标准的通信和媒体处理形式中,该模式的优点是在一个专用的DSP或网络处理器上运行
2. 片上栅格模式
片上栅格(Grid-on-Chip,或简称“栅格”)模式是平面模式的演绎,包含由许多完全独立的和网络互连的节点组成的任意多处理器系统。栅格是办公计算机网络的片上版本,它是共享相邻物理链路但彼此独立的许多网络处理节点。一些文献将该类型系统称之为分布式多处理系统,且仍将其归类到 AMP/ASMP系统总类别当中。
使用栅格模式的关键要求是首先要分割系统,然后找到一个合适的节点间通信系统。(尽管更高级的栅格系统能够在运行期间对其自身进行重新配置,但栅格模式系统的设计者需要认真思考系统功能到处理节点的分配问题。)除分割之外,栅格系统具有三种设计模式中最少的高级设计约束。一旦系统被分割,每个独立节点的设计与实现就会如同一个独立系统一样进行。栅格系统可在专用硬件上实现,但另一个普遍的选择是通过采用SMP硬件以及将共享的存储空间划分成针对每个内核的片段来建立栅格节点。
栅格模式系统与其它设计相比具有几个突出的优点。首先,它们可以很容易与过去的软件整合在一起,过去的系统甚至可以在栅格范围内它们自己的节点上继续完整地运行。此外,栅格系统在判决能力(determinism)和调试能力方面具有明显的优势。栅格模式系统设计的松散联结意味着在资源竞争方面不会有多少意外情况,由于熟悉的单内核调试方法可以用于每个孤立的系统节点控制工程网版权所有,所以调试相对简单。栅格模式系统的分割特性使其更为强大,但这也是其缺陷的根源所在,因为分割使得它难于再分配资源,这将导致栅格系统在适应将来的和不可预期的要求方面缺乏灵活性。
图1:针对图像处理的平面模式
3. SMP模式
在一个对称多处理(简称“SMP”)系统中,单一映像(single-image)操作系统是运行在两个或多个共享存储空间的处理内核的顶层www.cechina.cn,这些处理器内核实质上是相同的。正如一台多内核桌面计算机一样,SMP模式系统可以在一个处理器内核组基础上动态地均衡任务。重新分配处理能力以匹配当前任务的这种能力是SMP系统的一大主要优点,这也使得SMP系统成为了三种模式中最灵活和适应性最强的模式。利用当今SMP实时操作系统,这种灵活性可以不需要在牺牲任何性能的条件下实现判决或实时响应。
一个SMP模式系统要求具备两样条件:一个是对称的共享存储器的多内核处理器平台控制工程网版权所有,另一个是具有SMP功能的操作系统。今天众多的处理器系列都支持SMP功能,也有多种渠道可以得到SMP操作系统。SMP系统的两个更为突出的优点是开发人员比较熟悉,以及可以快速启动。理论上来说,开发人员可以较为容易地启动具有SMP功能的操作系统,并将现有的应用设计进行移植,开发人员可以快速地利用多内核硬件的性能。
现实的情况基本如此,但是有几个问题需要牢记。第一个值得关注的问题是硬实时性要求,一个支持SMP功能的实时操作系统(RTOS)不会牺牲实时性能www.cechina.cn,但是,当使用SMP时,不具有硬实时性功能的操作系统将缺少判决性以及缺少更高级的和更可变的中断反应时间。对一个良好的SMP RTOS而言无需担心此点,但需牢记的是,通用的操作系统在SMP硬件上和它运行在单处理器系统上比较也许会有不同的表现。
第二个潜在问题是资源竞争。SMP系统的一个突出优点是很多资源都是共享的,这使得SMP系统更具有灵活性和适应性。然而