异核通信框架(1)——SMP和AMP架构

这篇具有很好参考价值的文章主要介绍了异核通信框架(1)——SMP和AMP架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0.前言

        我是菜鸡,很久没有发表文章了。老样子,今天推荐一本书《局外人》。别像主人公似的认为任何事情都没有意义。

目录

1. SMP和 AMP架构

1.1 同构和异构

        1.1.1  同构

        1.1.2  异构

1.2 SMP和AMP

1.2.1  对称多处理结构(SMP)

1.2.2  非对称多处理结构(AMP)

1.2.3  边界多处理结构(BMP)

2. 总结


1. SMP和 AMP架构

        1971 年, Intel 公司设计出一款 4 位的 4004 微处理器,它是第一款商用处理器,很快 Intel又推出了 8 位的 8008 处理器和 16 位的 8086 处理器,那时候的 4004 芯片、8008 芯片和 8086 芯片上都只有一个核(单核 CPU),随着需求的提高和功耗问题,慢慢的发现一个核不够用了, 于是就在一个芯片上建造两个或者多个核,进而转向多核处理器发展了。多核CPU 具有更高的 计算密度和更强的并行处理能力,多核化趋势改变了 IT 计算的面貌。

1.1 同构和异构

        从硬件的角度来分,多核处理器可以分为同构和异构,如下图所示。

异核通信框架(1)——SMP和AMP架构

同构(左图)和异构(右图)


        1.1.1  同构

        如果所有的 CPU 或核心的架构都一样,那么称为同构。例如,三星的 Exynos4210、飞思卡尔的 I.MX6D以及 TI 的OMAP4460,它们有两个架构相同的 Cortex-A9 内核,都属于同构。

        1.1.2  异构

        如果所有CPU 或核心的架构有不一样的,那么就称为异构。例如,ST 推出的 STM32MP157,有两个 Cortex-A7 核和一个 Cortex-M4 核,Xilinx 的 ZYNQ7000 系列,有两个 Cortex-A9 核和 FPGA,TI 的达芬奇系列 TMS320DM8127 有一个 DSP C674x 核和一个Cortex-A8 核,这些处理器有不一样结构的核,所以都属于异构。


1.2 SMP和AMP

        从软件的角度来分,多核处理器平台的操作系统体系有:SMP(Symmetric multiprocessing,对称多处理)结构、AMP(Asymmetric Multi-Processing,非对称多处理)结构和 BMP(b ound multi-processing,边界多处理)结构。

1.2.1  对称多处理结构(SMP)

        SMP 结构是指只有一个操作系统(OS)实例运行在多个 CPU 上,一个 OS 同等的管理各个内核,为各个内核分配工作负载,系统中所有的内核平等地访问内存资源和外设资源。因为 异构处理器的各个内核结构不同,如果一个 OS 去管理不同的内核,这种情况实现起来比较复杂,所以一般运行在SMP 结构下的通常都是同构处理器。Windows、Linux 和Vxworks 等多种 操作系统都支持SMP 结构。

         如下图所示,在 SMP 结构下,一个 OS 负责协调两个处理器,两个处理器共享内存,每个核心运行的应用程序(APP1 和APP2)的地址是相同的,通过MMU(Memory Mana gement Unit,内存管理单元)把它们映射到主存的不同位置上。

异核通信框架(1)——SMP和AMP架构

 SMP 结构


1.2.2  非对称多处理结构(AMP)

        AMP 结构是指每个内核运行自己的OS或同一OS的独立实例,或者说不运行OS,如运行裸机,每个内核有自己独立的内存空间,也可以和其它内核共享部分内存空间,每个核心相对 独立地运行不同的任务,但是有一个核心为主要核心,它负责控制其它核心以及整个系统的运 行,而其它核心负责“配合”主核心来完成特定的任务。这里,主核心我们就称为主处理器, 其它核心我们就称为协处理器或者远程处理器。这种结构最大的特点在于各个操作系统都有本 身独占的资源,其它资源由用户来指定多个系统共享或者专门分配给某一个系统来使用,系统 之间可以通过共享的内存来完成通信。

        如下图是STM32MP157的资源简图,STM32MP157的Cortex-A7内核可以运行Linux操作系统,Cortex-M4 内核可以运行裸机或者其它 RTOS(实时操作系统),RTOS 如 OneOS、FreeRTOS、RT-Thread 和UCOS 等。Cortex-A7和Cortex-M4都有自己独占的资源,也有共享的 资源,这些资源由用户来分配,双核之间可通过共享内存来进行通信。

异核通信框架(1)——SMP和AMP架构

 在AMP 系统设计中,一般需要解决两个问题:

(1)生命周期管理(内核启动顺序)问题;

(2)内核间通信问题。

        配置 AMP 系统最好的方法是使用一个既满足控制又满足通信要求的统一框架,而OpenAMP 就是当前多核架构使用的最多的标准框架,许多芯片供应商都提供了 OpenAMP 的 实现。基于OpenAMP,生命周期管理是通过Remoteproc 来实现的,内核间通信是通过RPMsg 来管理的,关于两者的实现方式是我们后面介绍。


1.2.3  边界多处理结构(BMP)

        BMP 和SMP 类似,也是由一个操作系统同时管理所有CPU 内核,但是开发者可以指定某个任务在某个核中执行,这里就不再详细介绍BMP 结构了。

        前面讲的AMP 和SMP 有着明显的差别,但两者之间也有着联系,例如,在一个芯片上,可能多个架构相同的内核被配置为一个 SMP 子系统,而此时另外的内核跑的是其它的操作系统, 从整体来看就是AMP 结构了,从逻辑上来分,这个SMP 子系统看起来像是一个单核,可以看 做包含在这个大的AMP 系统中。例如 STM32MP157 的两个Cortex-A7内核跑的是同一个 Linux 操作系统,这两个Cortex-A7 内核就可以看做是一个SMP 子系统,而Cortex-M4内核可以跑 裸机或者RTOS,那么 STM32MP157 这款芯片从整体上看就是AMP 结构了。


2. 总结

        上面这些来自正点原子,最近在学习异核通信的,讲解的不错,容易理解。

        深挖某一点要比广泛涉猎很浅的理解要有效果的多,因为你深挖中学会的还有整个贯通思维,这点对以后的成长作用是很大的。文章来源地址https://www.toymoban.com/news/detail-472907.html

到了这里,关于异核通信框架(1)——SMP和AMP架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零开始理解Linux中断架构(1)-前言

    前言         前段时间在转行手撸WIFI路由器,搞wifi路由器需要理解网络驱动程序,以太网卡驱动程序,无线WIFI驱动程序,而网卡驱动的关键路径就在中断程序中,需要了解NIC设备驱动程序如何收发数据,为了彻底的知道数据包是如何二层传递上来的,又需要了解一点Lin

    2024年02月09日
    浏览(41)
  • Linux多核运行机制(SMP)

    目录 一、Linux内核兼容多处理器要求 二、UP 三、SMP 3.1、概念 3.2、SMP的优势与缺陷 3.3、SMP启动 3.4、SMP拓扑关系构建 3.5、SMP调度机制分析 3.6、SMP调度时机 3.6.1、scheduler_tick  四、常用命令 4.1、查看逻辑CPU个数 4.2、查看每个CPU核心数         有多个 CPU 处理器 的 系统中

    2024年01月21日
    浏览(28)
  • 第4天:基础入门-30余种加密编码进制&;Web&;数据库&;系统&;代码&;参数值

    1.了解加密编码进制在安全测试中的存在 2.掌握常见的加密解密编码解码进制互转的操作 3.了解常见的加密解密编码解密进制互转的影响 旨在解决类似疑问,提供思路: 你是否碰到不知道的加密方式? 你是否碰到无法找到的解密平台? 你是否碰到不知道如何解密的字符串?

    2024年02月06日
    浏览(35)
  • StratoVirt 的 vCPU 拓扑(SMP)

    CPU 拓扑用来表示 CPU 在硬件层面的组合方式,本文主要讲解 CPU 拓扑中的 SMP(Symmetric Multi-Processor,对称多处理器系统)架构,CPU 拓扑还包括其他信息,比如:cache 等,这些部分会在后面进行补充。CPU 拓扑除了描述 CPU 的组成关系外,还为内核的调度器提供服务,从而提供更

    2024年02月07日
    浏览(28)
  • 第7天:信息打点-资产泄漏&;CMS识别&;Git监控&;SVN&;DS_Store&;备份

    网上开源的程序,得到名字就可以搜索直接获取到源码。 cms在线识别: 账号要花钱在线申请 注册条件: 还会查询域名等信息,不一定准确。 支持的识别框架 源码泄露原因: 7kbsan扫描其扫描扫到一个1.zip,访问www.h0r2yc.com/1.zip就可以进行下载。 这时候目录遍历漏洞有可以,

    2024年02月03日
    浏览(42)
  • 云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授权访问&;容器执行

    curl -XPOST -k “https://192.168.139.132:10250/run///” -d “cmd=id” 执行的命令是test03容器里的命令,需要进行容器逃逸。 1、攻击8080端口:API Server(Master)未授权访问 旧版本的k8s的API Server默认会开启两个端口:8080和6443。 6443是安全端口,安全端口使用TLS加密;但是8080端口无需认证,

    2024年04月22日
    浏览(45)
  • BLE协议--SMP(安全管理协议)

    目录 前言 1. Security Manager介绍 2. Pairing(配对) 2.1 配对第一阶段 2.1.1 配对方法 2.1.2 Authentication(鉴权方式) 2.1.3 IO Capabilities  3.1.4 Authentication方法的选择 2.2 LE legacy pairing 2.2.1 配对请求的报文格式 2.2.2 配对第二阶段 2.2.3 配对第三阶段 3. 绑定 总结 SMP即Security Manager Protocol。

    2024年02月06日
    浏览(33)
  • 010-基础入门-HTTP数据包&;Postman构造&;请求方法&;请求头修改&;状态码判断

    2、Cookie-身份替换 见上图 首先抓取PC浏览器网站登录上去的数据包 再抓取模拟机上登录失败的数据包 把数据包中的cookie进行替换,发现模拟机上从登陆失败变成登陆成功 结论: Response状态码 选中抓取数据包,发送至repeater( Repeater 是一个手动修改并补发个别 HTTP 请求,并分

    2024年04月23日
    浏览(25)
  • AI菜鸡浅谈ChatGpt

            最近最火的话题可能就是Chatgpt ,这个对话机器人横空出世,大大突破了人类之前对AI 对话机器人的认知和预期,上次这样的颠覆认知的突破还是7年前的阿法狗,但是这一次Chatgpt 带来的革命可能要更深远。我从以下几个方面来谈一下我对它的一些看法和思考。

    2023年04月26日
    浏览(26)
  • day33WEB 攻防-通用漏洞&;文件上传&;中间件解析漏洞&;编辑器安全

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新网络安全全套学习资料》

    2024年04月24日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包