ARM学习(23)AMP和SMP的认识与理解

这篇具有很好参考价值的文章主要介绍了ARM学习(23)AMP和SMP的认识与理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

笔者来聊聊AMP和SMP架构理解(多核下系统)。

1、简介介绍

笔者经常听到ARM架构时,谈到SMP的架构或者AMP的架构,今天特意来了解一下,主要是针对多core处理,对于常见的MCU应用场景,可以比较少,往往是需要较强的性能或者应付复杂的场景,会碰到多核的场景。

  • SMP:Symmetric multiprocessing,对称多处理器
  • AMP:ASymmetric multiprocessing,非对称处理器

故名思意,

  • 对称处理器,其结构上是相同的,比如架构的一些特性,核的架构,指令集,以及内存空间等,
  • 非对称处理器,往往每个core都有特殊的地址,比如地址空间不同,又比如core的架构不同,指令集不同,运行的OS也不同,所以,往往都是独立编译,而SMP是统一编译,则一个elf文件,而AMP则是每个core一个elf文件。

2、对称处理器 SMP

主要Core的运行方式特点有如下:

  • 运行的指令集相同,架构相同

  • 运行的OS相同

  • 使用项目的内存空间和地址映射

  • 共享相同的地址空间(物理以及虚拟)

  • 符号表相同
    amp架构,嵌入式,ARM,arm开发,SMP,AMP,对称处理器,非对称处理器

  • 上图绘制了一个SMP的示例图,其每个core的内存空间相同,都可以访问程序中的每个函数,即符号表是共享的,那么OS则也是运行的相同的,指令集是相同的。

  • 内存空间相同,每个core看到的地址和函数都是一样的地址,比如使用指针函数获取地址时,获取同一个函数地址都是相同的,也可以正常执行, 如果地址空间不同,则需要注意,不能直接获取地址执行。

  • 再来说说符号表,ARM学习(7) symbol 符号表以及调试,笔者之前介绍过一次,就是所有的符号都可以搜索到,可以正常编译,主要就是(全局变量,函数,链接器生成的一些符号等)

  • 指令集就不做过多介绍,ARM学习(6) 指令集学习,这个可能体现的不那么明显,用户往往看不到,看汇编指令或者异常架构时会学习到这个,比如启动,中断向量表等。

  • 栈和core内的cache就不多说了,肯定是各自独立的,当然也有共享的cache,比如L2 L3这种cache

Trace32加载时,选择一个elf文件即可,可以同时看到多个core的寄存器信息(寄存器这些数量等都是相同的),包括当前Pc的位置等

可以随便切换core,看到其他core在执行函数的位置。
amp架构,嵌入式,ARM,arm开发,SMP,AMP,对称处理器,非对称处理器
amp架构,嵌入式,ARM,arm开发,SMP,AMP,对称处理器,非对称处理器
amp架构,嵌入式,ARM,arm开发,SMP,AMP,对称处理器,非对称处理器

3、 非对称处理器 AMP

主要Core的运行方式特点有如下:

  • 运行的指令集或者架构不同
  • 运行的OS不同
  • 拥有不同的内存空间和地址映射
  • 拥有各自的地址空间(物理和虚拟)
  • 符号表信息不同

amp架构,嵌入式,ARM,arm开发,SMP,AMP,对称处理器,非对称处理器

再来看看AMP的架构,core之间的内存空间独立,架构或者指令集可能不一样,符号表都是属于各自的,通信可以通过共享的内存进行通信,但是通信的地址和外部设备的地址可能不同,也可能相同。

  • core之间地址独立,意思可能双core的地址空间独立编址,比如有部分空间都是从0地址开始,所以地址即无法访问对方的空间,这也不是完全绝对的,有些地址空间也可以通过总线映射,让对方访问,不过各自的core在自己的视野里看到对方的core的地址会不同。

  • elf文件各自独立,即需要两次编译 两次链接形成各自的可执行文件,所以相关的宏以及符号表都会有所不同,当然运行的OS也会不同,

  • 地址不同,带来的编程方式也不同,各自core视野地址不同,则无法使用地址来进行内存空间访问。

Trace32 需要开启两个窗口分别进行debug,然后分别选择对应core的elf文件。

amp架构,嵌入式,ARM,arm开发,SMP,AMP,对称处理器,非对称处理器

4、实际芯片架构

  • AMP 双core Cortex-R5的架构芯片
    amp架构,嵌入式,ARM,arm开发,SMP,AMP,对称处理器,非对称处理器

  • AMP STM32MP153 (dual CortexA7 + CortexM4)
    amp架构,嵌入式,ARM,arm开发,SMP,AMP,对称处理器,非对称处理器
    amp架构,嵌入式,ARM,arm开发,SMP,AMP,对称处理器,非对称处理器

  • SMP 6core的Cortex-A53架构芯片文章来源地址https://www.toymoban.com/news/detail-655868.html

到了这里,关于ARM学习(23)AMP和SMP的认识与理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 第7天:信息打点-资产泄漏&;CMS识别&;Git监控&;SVN&;DS_Store&;备份

    第7天:信息打点-资产泄漏&;CMS识别&;Git监控&;SVN&;DS_Store&;备份

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

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

    云上攻防-云原生篇&;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日
    浏览(37)
  • 010-基础入门-HTTP数据包&;Postman构造&;请求方法&;请求头修改&;状态码判断

    010-基础入门-HTTP数据包&;Postman构造&;请求方法&;请求头修改&;状态码判断

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

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

    day33WEB 攻防-通用漏洞&;文件上传&;中间件解析漏洞&;编辑器安全

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

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

    day33WEB 攻防-通用漏洞&;文件上传&;中间件解析漏洞&;编辑器安全(1)

    2、解析漏洞-nginx.conf 配置不当 二,Web 应用编辑器-Ueditor 文件上传安全 三,实例 CMS平台-中间件解析编辑器引用 配套资源下载(百度网盘): 链接:https://pan.baidu.com/s/11Q9sAPQ9P_ReOP9PKL0ABg?pwd=jgg4  提取码:jgg4 本章节知识点: 1 、中间件安全问题 2 、中间件文件上传解析 3 、

    2024年04月15日
    浏览(14)
  • 腾讯 微信公众号&;&;小程序 暑期实习 一面秒挂

    腾讯 微信公众号&;&;小程序 暑期实习 一面秒挂

    题解 | #Prime Number# import mathdef getprimenum(): list1=[] list1   大数据开发工程师 1v1辅导+提问 大数据开发工程师 1v1辅导+提问里面也有很多干货分享,感兴趣的同学可以来看看https://www   题解 | #日期类# 加1之后处理一下细节就完了#include iostream#include lt   官方题解 题解pdf链接:sol

    2024年03月25日
    浏览(9)
  • 第四章-Actions&;Getters(自用)

    diff算法---双端diff 核心思路创建4个索引和指针,分别指向新旧节点的头尾,进行4次比较:头头、尾尾、新尾旧头、新头旧尾;若四次比较中存在可复用节点,则移动对应的索引和指针新旧头尾未找   第四章-ActionsGetters(自用) ActionsGettersActionsPinia的Actions类似于methods,在A

    2024年02月16日
    浏览(19)
  • 【混合精度训练】 torch.cuda.amp.autocast()

    torch.cuda.amp.autocast() 是PyTorch中一种混合精度的技术,可在保持数值精度的情况下提高训练速度和减少显存占用。 混合精度是指将不同精度的数值计算混合使用来加速训练和减少显存占用。通常,深度学习中使用的精度为32位(单精度)浮点数,而使用16位(半精度)浮点数可

    2024年02月16日
    浏览(11)
  • 黑客滥用 Google AMP 进行规避性网络钓鱼攻击

    黑客滥用 Google AMP 进行规避性网络钓鱼攻击

    近日,有安全研究人员警告称,有越来越多的网络钓鱼活动利用谷歌加速移动页面(AMP)绕过电子邮件安全措施,进入企业员工的收件箱。 谷歌AMP是由谷歌和30个合作伙伴共同开发的一个开源HTML框架,旨在加快网页内容在移动设备上的加载速度。 AMP 网页托管在谷歌的服务器上

    2024年02月14日
    浏览(7)
  • Swift基础语法&SnapKit自动布局库的使用

    Swift基础语法&SnapKit自动布局库的使用

    本文详细记录了作者在学习Swift语言和使用SnapKit库过程中的心得体会,同时也探讨了全局文件的使用和懒加载的实现。

    2024年02月08日
    浏览(8)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包