摘要: 本文主要對Armv7-M架構中的內存訪問順序進行介紹。
關鍵字:Armv7-M架構、內存訪問順序
在提到內存訪問順序時,需要對可觀測性和完成性兩個概念進行介紹。
可觀測性是系統定義的一組觀察者可以觀察內存的訪問。
完成性是內存訪問指令的執行完畢。
對于所有內存:
寫操作的可觀測性,當同一個觀察者在進行寫操作隨后讀取存儲器中的同一位置時,該位置將返回寫入的值,這是觀察到的一種寫操作。
當共享內存中,在一個內存被寫之后,共享內存的任意觀察者讀取當前內存,并返回寫入的值,這是觀察到了全局的寫操作。
讀操作的可觀測性,當同一個觀察者在寫操作之后讀取之后,對寫入值沒有影響,這是讀操作的一種可觀測性。
當共享內存中,在一個內存被寫之后,共享內存的任意觀察者讀取當前內存,對寫入值沒有影響,這是全局讀操作的可觀測性。
對于強有序內存:
在下列情況時,僅僅是讀或寫都會產生副作用。
——影響內存映射外圍設備的狀態。
——影響外圍設備、處理器或內存所有的相關的狀態。
在Armv7-M中對于所有內存完成性定義如下。
在共享內存中滿足下列條件,可共享域的讀或寫操作完成:
——對共享域的讀或寫可以進行全局觀察。
——在共享域的觀察者可以使用任何獲取指令,觀察到讀和寫。
當全局觀察到共享域的操作受到影響時,該共享域中的緩存或分支預測器維護操作完成。
在強有序或設備內存中完成內存訪問不能確定內存訪問的副作用對所有觀察者都是可見的。為確保內存訪問副作用可見性的機制是“實現定義”(“ IMPLEMENTATION DEFINED”),例如提供可輪詢的狀態寄存器。
內存訪問順序
在Armv7-M中內存訪問順序取決于所訪問的內存屬性。用于描述內存訪問順序的兩個術語是:地址依賴和控制依賴。
地址依賴:
當讀取訪問返回的值用于計算后續讀取或寫入訪問的地址時,存在地址依賴關系。即使第一讀取訪問讀取的值不改變第二讀取或寫入訪問的地址,也存在地址依賴性。例如返回的值在使用之前被屏蔽,或者對第二次訪問的預測地址值有影響。
控制依賴:
當讀取的返回值用于條件標志,并且標志的值用于條件代碼評估以確定后續讀取訪問的地址時,存在控制依賴關系。這個地址的確定可以通過條件執行,也可以通過分支求值。
來源:《Armv7-M Architecture Reference Manual 》
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關于億道電子
億道電子技術有限公司(英文名稱: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 工具等等。億道電子憑借多年的經驗積累,真正的幫助客戶實現了讓研發更簡單、更可靠、更高效的目標。

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

首頁 > 新聞資訊
