摘要: 本文主要對(duì)Armv7-M架構(gòu)中的內(nèi)存訪問順序進(jìn)行介紹。
關(guān)鍵字:Armv7-M架構(gòu)、內(nèi)存訪問順序
在提到內(nèi)存訪問順序時(shí),需要對(duì)可觀測性和完成性兩個(gè)概念進(jìn)行介紹。
可觀測性是系統(tǒng)定義的一組觀察者可以觀察內(nèi)存的訪問。
完成性是內(nèi)存訪問指令的執(zhí)行完畢。
對(duì)于所有內(nèi)存:
寫操作的可觀測性,當(dāng)同一個(gè)觀察者在進(jìn)行寫操作隨后讀取存儲(chǔ)器中的同一位置時(shí),該位置將返回寫入的值,這是觀察到的一種寫操作。
當(dāng)共享內(nèi)存中,在一個(gè)內(nèi)存被寫之后,共享內(nèi)存的任意觀察者讀取當(dāng)前內(nèi)存,并返回寫入的值,這是觀察到了全局的寫操作。
讀操作的可觀測性,當(dāng)同一個(gè)觀察者在寫操作之后讀取之后,對(duì)寫入值沒有影響,這是讀操作的一種可觀測性。
當(dāng)共享內(nèi)存中,在一個(gè)內(nèi)存被寫之后,共享內(nèi)存的任意觀察者讀取當(dāng)前內(nèi)存,對(duì)寫入值沒有影響,這是全局讀操作的可觀測性。
對(duì)于強(qiáng)有序內(nèi)存:
在下列情況時(shí),僅僅是讀或?qū)懚紩?huì)產(chǎn)生副作用。
——影響內(nèi)存映射外圍設(shè)備的狀態(tài)。
——影響外圍設(shè)備、處理器或內(nèi)存所有的相關(guān)的狀態(tài)。
在Armv7-M中對(duì)于所有內(nèi)存完成性定義如下。
在共享內(nèi)存中滿足下列條件,可共享域的讀或?qū)懖僮魍瓿桑?/span>
——對(duì)共享域的讀或?qū)懣梢赃M(jìn)行全局觀察。
——在共享域的觀察者可以使用任何獲取指令,觀察到讀和寫。
當(dāng)全局觀察到共享域的操作受到影響時(shí),該共享域中的緩存或分支預(yù)測器維護(hù)操作完成。
在強(qiáng)有序或設(shè)備內(nèi)存中完成內(nèi)存訪問不能確定內(nèi)存訪問的副作用對(duì)所有觀察者都是可見的。為確保內(nèi)存訪問副作用可見性的機(jī)制是“實(shí)現(xiàn)定義”(“ IMPLEMENTATION DEFINED”),例如提供可輪詢的狀態(tài)寄存器。
內(nèi)存訪問順序
在Armv7-M中內(nèi)存訪問順序取決于所訪問的內(nèi)存屬性。用于描述內(nèi)存訪問順序的兩個(gè)術(shù)語是:地址依賴和控制依賴。
地址依賴:
當(dāng)讀取訪問返回的值用于計(jì)算后續(xù)讀取或?qū)懭朐L問的地址時(shí),存在地址依賴關(guān)系。即使第一讀取訪問讀取的值不改變第二讀取或?qū)懭朐L問的地址,也存在地址依賴性。例如返回的值在使用之前被屏蔽,或者對(duì)第二次訪問的預(yù)測地址值有影響。
控制依賴:
當(dāng)讀取的返回值用于條件標(biāo)志,并且標(biāo)志的值用于條件代碼評(píng)估以確定后續(xù)讀取訪問的地址時(shí),存在控制依賴關(guān)系。這個(gè)地址的確定可以通過條件執(zhí)行,也可以通過分支求值。
來源:《Armv7-M Architecture Reference Manual 》
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關(guān)于億道電子
億道電子技術(shù)有限公司(英文名稱:Emdoor Electronics Technology Co.,Ltd)是國內(nèi)資深的研發(fā)工具軟件提供商,公司成立于 2002 年,面向中國廣大的制造業(yè)客戶提供研發(fā)、設(shè)計(jì)、管理過程中使用的各種軟件開發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產(chǎn)品設(shè)計(jì)周期,提升產(chǎn)品可靠性。
20 年來,先后與 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立戰(zhàn)略合作伙伴關(guān)系,并作為他們在中國區(qū)的主要分銷合作伙伴服務(wù)了數(shù)千家中國本土客戶,為客戶提供從芯片級(jí)開發(fā)工具、EDA 設(shè)計(jì)工具、軟件編譯以及測試工具、結(jié)構(gòu)設(shè)計(jì)工具、仿真工具、電氣設(shè)計(jì)工具、以及嵌入式 GUI 工具等等。億道電子憑借多年的經(jīng)驗(yàn)積累,真正的幫助客戶實(shí)現(xiàn)了讓研發(fā)更簡單、更可靠、更高效的目標(biāo)。

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