【方辉专栏】Armv7 M 架构简介(九)--原子操作
发布时间:2022-11-07

摘要: 本文主要对Armv7-M架构中的原子操作进行介绍。

关键字:Armv7-M架构、原子操作、单拷贝原子性、多拷贝原子性


一般把具有原子性的访问操作称为原子操作。原子操作是指保证指令以原子的方式执行,执行过程不会被打断。Armv7-M架构有两种原子性,一种是单拷贝原子性(single-copy atomicity),另一种是多拷贝原子性(multi-copy atomicity)。


单拷贝原子性

以下几种情况下,读和写操作都是单拷贝原子性操作。

1)对操作数执行任意次数的写操作后,操作数的值是其中一个写入操作写入的值。操作数的值不会是一部分来自一个写操作,而另一部分来自另一个写操作。

2)当对同一个操作数进行读操作或写操作时,读操作获得的值为写操作之前操作数的值或写操作之后操作数的值,但不会一部分是写操作之前操作数的值,另一部分是写操作之后操作数的值。

在Armv7-M架构中,单拷贝原子性操作可以是,字节的访问、半字访问(半字对齐)或字访问(字对齐)。


多拷贝原子性

在多处理器系统中,以下几种情况是对内存位置写入的多拷贝原子性操作。

1)对同一地址的所有写入都是串行进行的,这就意味着所有的监视器都是以监视到相同的顺序,尽管有些监视器可能没有监视到某些写入。

2)在所有监视器都监视到写入完成之前,读取这个地址是不会返回值。

写入普通内存不是多拷贝原子性操作。

所有对设备内存和强有序内存的写入都是单拷贝原子性和多拷贝原子性操作。

对于普通内存的序列化的串行写入是不会禁止写入合并的。


来源:《Armv7-M Architecture Reference Manual 》


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


关于凯发k8一触即发电子

凯发k8一触即发电子技术有限公司(英文名称: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 工具等等。凯发k8一触即发电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。

欢迎关注“凯发k8一触即发电子”公众号

了解更多研发工具软件知识