摘要: 本文主要對Armv7-M架構中的原子操作進行介紹。
關鍵字:Armv7-M架構、原子操作、單拷貝原子性、多拷貝原子性
一般把具有原子性的訪問操作稱為原子操作。原子操作是指保證指令以原子的方式執(zhí)行,執(zhí)行過程不會被打斷。Armv7-M架構有兩種原子性,一種是單拷貝原子性(single-copy atomicity),另一種是多拷貝原子性(multi-copy atomicity)。
單拷貝原子性
以下幾種情況下,讀和寫操作都是單拷貝原子性操作。
1)對操作數(shù)執(zhí)行任意次數(shù)的寫操作后,操作數(shù)的值是其中一個寫入操作寫入的值。操作數(shù)的值不會是一部分來自一個寫操作,而另一部分來自另一個寫操作。
2)當對同一個操作數(shù)進行讀操作或寫操作時,讀操作獲得的值為寫操作之前操作數(shù)的值或寫操作之后操作數(shù)的值,但不會一部分是寫操作之前操作數(shù)的值,另一部分是寫操作之后操作數(shù)的值。
在Armv7-M架構中,單拷貝原子性操作可以是,字節(jié)的訪問、半字訪問(半字對齊)或字訪問(字對齊)。
多拷貝原子性
在多處理器系統(tǒng)中,以下幾種情況是對內存位置寫入的多拷貝原子性操作。
1)對同一地址的所有寫入都是串行進行的,這就意味著所有的監(jiān)視器都是以監(jiān)視到相同的順序,盡管有些監(jiān)視器可能沒有監(jiān)視到某些寫入。
2)在所有監(jiān)視器都監(jiān)視到寫入完成之前,讀取這個地址是不會返回值。
寫入普通內存不是多拷貝原子性操作。
所有對設備內存和強有序內存的寫入都是單拷貝原子性和多拷貝原子性操作。
對于普通內存的序列化的串行寫入是不會禁止寫入合并的。
來源:《Armv7-M Architecture Reference Manual 》
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關于億道電子
億道電子技術有限公司(英文名稱:Emdoor Electronics Technology Co.,Ltd)是國內資深的研發(fā)工具軟件提供商,公司成立于 2002 年,面向中國廣大的制造業(yè)客戶提供研發(fā)、設計、管理過程中使用的各種軟件開發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產品設計周期,提升產品可靠性。
20 年來,先后與 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立戰(zhàn)略合作伙伴關系,并作為他們在中國區(qū)的主要分銷合作伙伴服務了數(shù)千家中國本土客戶,為客戶提供從芯片級開發(fā)工具、EDA 設計工具、軟件編譯以及測試工具、結構設計工具、仿真工具、電氣設計工具、以及嵌入式 GUI 工具等等。億道電子憑借多年的經驗積累,真正的幫助客戶實現(xiàn)了讓研發(fā)更簡單、更可靠、更高效的目標。

歡迎關注“億道電子”公眾號
了解更多研發(fā)工具軟件知識