0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三种多内核设计模式概述

电子工程师 来源:网络整理 作者:工程师姚远香 2018-07-15 11:21 次阅读

使用多处理器内核要求软、硬件团队之间进行更多的系统级设计合作。基于这种理念,下面是对采用当前开发工具和硬件直接实现多内核系统的三个简单模型的概述。这些多内核设计模式不是一个为了严格定义一个系统的刚性模型,而是针对思考和探讨关于系统实现宏伟蓝图的初始点,以及规定了一套通用术语以便软、硬件团队都能设计出一个多内核系统结构。

三种设计模式

1. 平面模式

第一种模式是平面模式(Planar Pattern),这个名称源于划分一个通信系统的处理任务的“控制平面”和“数据平面”。它是一个广泛的和不同类型的多内核设计实例,这种多内核设计统称为非对称多处理技术(简称“AMP”或“ASMP”)。

如果采用平面模式,系统需要划分成具有显著不同处理要求的多个自包含模块。在其标准的通信和媒体处理形式中,该模式的优点是在一个专用的DSP网络处理器上运行需要进行大量数据处理的算法,同时在一个通用的CPU上保持其它系统软件的正常运行。这种特殊性意味着平面模式系统通常在专门构件的硬件上实现。由于许多平面硬件设备仅有一个通用CPU内核,因此传统的单内核工具、操作系统和设计方法都可用来设计和调试系统的通用部分。

2. 片上栅格模式

片上栅格(Grid-on-Chip,或简称“栅格”)模式是平面模式的演绎,包含由许多完全独立的和网络互连的节点组成的任意多处理器系统。栅格是办公计算机网络的片上版本,它是共享相邻物理链路但彼此独立的许多网络处理节点。一些文献将该类型系统称之为分布式多处理系统,且仍将其归类到AMP/ASMP系统总类别当中。

使用栅格模式的关键要求是首先要分割系统,然后找到一个合适的节点间通信系统。(尽管更高级的栅格系统能够在运行期间对其自身进行重新配置,但栅格模式系统的设计者需要认真思考系统功能到处理节点的分配问题。)除分割之外,栅格系统具有三种设计模式中最少的高级设计约束。一旦系统被分割,每个独立节点的设计与实现就会如同一个独立系统一样进行。栅格系统可在专用硬件上实现,但另一个普遍的选择是通过采用SMP硬件以及将共享的存储空间划分成针对每个内核的片段来建立栅格节点。

栅格模式系统与其它设计相比具有几个突出的优点。首先,它们可以很容易与过去的软件整合在一起,过去的系统甚至可以在栅格范围内它们自己的节点上继续完整地运行。此外,栅格系统在判决能力(determinism)和调试能力方面具有明显的优势。栅格模式系统设计的松散联结意味着在资源竞争方面不会有多少意外情况,由于熟悉的单内核调试方法可以用于每个孤立的系统节点,所以调试相对简单。栅格模式系统的分割特性使其更为强大,但这也是其缺陷的根源所在,因为分割使得它难于再分配资源,这将导致栅格系统在适应将来的和不可预期的要求方面缺乏灵活性。

图1:针对图像处理的平面模式。

图2:栅格模式系统。

3. SMP模式

在一个对称多处理(简称“SMP”)系统中,单一映像(single-image)操作系统是运行在两个或多个共享存储空间的处理内核的顶层,这些处理器内核实质上是相同的。正如一台多内核桌面计算机一样,SMP模式系统可以在一个处理器内核组基础上动态地均衡任务。重新分配处理能力以匹配当前任务的这种能力是SMP系统的一大主要优点,这也使得SMP系统成为了三种模式中最灵活和适应性最强的模式。利用当今SMP实时操作系统,这种灵活性可以不需要在牺牲任何性能的条件下实现判决或实时响应。

图3:SMP系统实例。

一个SMP模式系统要求具备两样条件:一个是对称的共享存储器的多内核处理器平台,另一个是具有SMP功能的操作系统。今天众多的处理器系列都支持SMP功能,也有多种渠道可以得到SMP操作系统。SMP系统的两个更为突出的优点是开发人员比较熟悉,以及可以快速启动。理论上来说,开发人员可以较为容易地启动具有SMP功能的操作系统,并将现有的应用设计进行移植,开发人员可以快速地利用多内核硬件的性能。

现实的情况基本如此,但是有几个问题需要牢记。第一个值得关注的问题是硬实时性要求,一个支持SMP功能的实时操作系统(RTOS)不会牺牲实时性能,但是,当使用SMP时,不具有硬实时性功能的操作系统将缺少判决性以及缺少更高级的和更可变的中断反应时间。对一个良好的SMP RTOS而言无需担心此点,但需牢记的是,通用的操作系统在SMP硬件上和它运行在单处理器系统上比较也许会有不同的表现。

第二个潜在问题是资源竞争。SMP系统的一个突出优点是很多资源都是共享的,这使得SMP系统更具有灵活性和适应性。然而,该优点也是一个缺点,由于所有的资源是共享的,将会由于资源竞争产生无法预期的性能改变。在每个系统中这是不会发生的,但如果开发人员想要系统按其设计的性能运行的话,还是要将此点牢记于心。

设计实现与调试

正如嵌入式开发一样,在硬件设计的过程中需要首先考虑软件的开发和调试。确保设计具有片上调试(OCD)的功能将会极大地加快系统开发进程,而且为编程和分析系统提供了一套可靠的工具。在平面设计模式和栅格设计模式中,单个OCD端口可让开发人员对系统的单个内核进行调试,就好像他们拥有一个更为传统的单内核系统一样。

实时跟踪端口是另外一个调试特性,这一特性随着系统中内核数目的不断增长而变得越来越重要。实时跟踪提供了一个标准方法去观察内核之间的相互作用,而不会破坏对再现问题起关键作用的敏感时序。如果多内核设备包含有一个或多个实时跟踪端口,这将会使的系统开发更容易。

有一个常常被提及但并不符合实际的说法:尽管许多开发人员成功采用了这三种设计模式,但是软件开发工具并不是针对多内核应用设计的。现在,已经有支持SMP功能的实时操作系统提供,且可以为开发人员提供不损耗实时判决的灵活的SMP模式。对于使用平面模式和栅格模式的设计来说,开发人员可以充分利用现有熟悉的、经过验证的单内核设计工具和方法。多内核设计可使系统变得更为复杂,但是已开发出来的工具和方法可以为开发人员在管理多内核硬件的复杂性、实现其强大的功能及成本等方面助上一臂之力。

总结

合并是嵌入式领域长期存在的一个趋势,它使得性能更优良的嵌入式设备采用更少的元器件,从而降低了成本及功耗预算。这一趋势的最新进展是在单个封装内提供多个处理器内核的多内核嵌入式微处理器的增加,而且与同等的单内核处理器相比具有低功耗和低成本的优点。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18292

    浏览量

    222194
  • 多内核
    +关注

    关注

    0

    文章

    4

    浏览量

    6946
收藏 人收藏

    评论

    相关推荐

    内核设计的三种设计模式概述

    下面是对采用当前开发工具和硬件直接实现多内核系统的三个简单模型的概述。这些多内核设计模式不是一个为了严格定义一个系统的刚性模型,而是针对思考和探讨关于系统实现宏伟
    发表于 02-21 10:54 1361次阅读
    多<b class='flag-5'>内核</b>设计的<b class='flag-5'>三种</b>设计<b class='flag-5'>模式</b><b class='flag-5'>概述</b>

    请问zstack的三种安全模式有什么区别?

    1、zstack有定义三种安全模式:ZG_SECURITY_PRO_STANDARD(同 ZG_SECURITY_RESIDENTIAL),ZG_SECURITY_PRO_HIGH
    发表于 08-17 07:32

    Bluetooth BLE的三种省电模式介绍

    对于Bluetooth BLE CC2540,看到资料上提到了三种省电模式。是否有什么文档可以让我更细致地了解这三种模式。比如说在不同的模式
    发表于 08-27 07:17

    USB设备端点有三种操作模式的功能是什么?

    USB设备端点有三种操作模式,包括自动验证模式、手动验证模式和Fly模式。 它们的功能是什么?
    发表于 12-03 06:46

    QSPI特点和三种工作模式

    QSPI特点QSPI三种工作模式
    发表于 12-31 06:36

    STM32的三种启动模式

    一、启动模式(Boot modes)阅读:STM32中文参考手册_V10.pdf 查看启动配置(Boot modes)。在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式
    发表于 08-05 07:25

    STM32有三种启动模式

    01STM32的三种启动模式STM32有三种启动模式:FLASH启动、SRAM启动和系统存储器启动,通常三种启动方式由外部引脚boot0和b
    发表于 08-18 07:52

    电机的三种控制模式

    目录一、电机的三种控制模式1、力矩控制模式2、速度控制模式3、位置控制模式二、硬件说明1、硬件清单2、硬件连接
    发表于 09-07 09:20

    什么是Boot模式?STM32三种Boot模式有什么差异?

    什么是Boot模式?STM32三种Boot模式有什么差异?怎么实现STM汇编程序设计?
    发表于 11-29 06:04

    STM32的三种boot模式介绍

    浅识STM32的三种boot模式文章目录浅识STM32的三种boot模式任务摘要一、认识boot1.三种BOOT
    发表于 12-10 07:46

    STM32的三种Boot模式及验证资料分享

    STM32的三种Boot模式一、BOOT模式简介1. 三种BOOT模式:所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第
    发表于 12-10 06:54

    STM32的三种Boot模式的差异

    如有错误,欢迎指正,谢谢!目录一、STM32的三种Boot模式的差异二、创建基于MDK创建纯汇编语言的STM32工程模板、汇编基本语法的学习四、编程练习一、STM32的三种Boot
    发表于 12-20 07:54

    三种STOP模式的区别是什么

    环境介绍停止模式(STOP)管脚事件唤醒的实现(HAL库)。STOP模式只是停止代码执行,唤醒(其实是continue的作用)后继续执行后面的代码,而不是重启之后从初始代码开始执行。2. 低功耗模式STM32L4的低功耗
    发表于 02-11 07:45

    STM32的三种低功耗模式简析

    目录单片机的低功耗STM32电源框图STM32的三种低功耗模式低功耗配置图(详细配置参考STM32参考手册)电源控制寄存器部分相关代码附录单片机的低功耗很多单片机有低功耗模式,STM32也不例外。在
    发表于 02-23 06:03

    记录三种DMA模式

    串口模式实现有三种1.普通模式:在主函数中接收函数2.中断模式:产生的不影响主程序运行3. DMA模式:与主函数互不影响,独立运行本文记录
    发表于 02-28 07:54