摘要: 本文主要对Armv7-M架构中的同步和信号进行介绍。
关键字:Armv7-M架构、同步、信号、
在Armv7-M中,内存访问语句(加载或存储)支持非阻塞同步,允许在读写阶段对信号量执行计算,在多处理器系统设计中可以方便的应用。
在Armv7-M中,支持的同步语句:
加载独占指令:LDREX,LDREXB,LDREXH
存储独占指令:STREX,STREXB,STREXH
清除独占指令:CLREX
本文以LDREX和STREX指令为例,对同步操作进行介绍。其他语句LDREXB和STREXB、LDREXH和STREXH于此相同不再赘述。
使用加载独占/存储独占指令对内存地址x的模型为:
加载指令总是可以从内存地址x中正确的读出一个值;
对应的存储指令,只有当其他处理器或进程没有对地址x进行存储时,才能正确的写入内存地址x。同时会返回一个状态位,表示内存写入成功。
不可共享内存的独占指令:
访问内存指令与本地监视器标记的地址相同,则可以完成指令。
共享内存的独占指令:
对于共享内存,全局监视器将物理地址标记为特定处理器独占访问。全局监视器保存每个标记的地址,维护访问状态。
只有当所访问的物理地址被标记为请求的处理器独占访问,并且请求处理器的本地监视器和全局监视器状态机都处于独占访问时,则可以完成指令。
来源:《Armv7-M Architecture Reference Manual 》
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
关于九游会J9电子
九游会J9电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。
20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。九游会J9电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。
欢迎关注“九游会J9电子”公众号
了解更多研发工具软件知识