Arm? AMBA? 協議中內存事務的排序是一項重要要求,即內存更新/訪問的順序必須遵循規范中定義的順序。排序對于處理器與停用加載/存儲指令相關的同步事件非常重要。AMBA ACE 屏障事務用于維護整個系統的內存順序。了解障礙事務的學習曲線可能會成為徹底驗證設計的障礙。此博客提供了見解,使理解和驗證障礙交易變得更加容易。該博客將介紹不同類型的障礙事務、用法和域邊界。
屏障交易提供了一系列有助于解決訂購要求的功能,包括:
—訂購裝載/存儲指令
—完成跨適用域的加載/存儲指令
—上下文同步
障礙交易的類型
有兩種類型的屏障事務:內存和同步屏障。根據 AMBA ACE 規范,內存和同步屏障之間的區別最好通過查看它們的定義及其在處理器間通信方面的預期用途來理解。
內存屏障的定義 – *如果*相應域中的另一個主節點觀察到在屏障之后發出的事務,則*則*該主節點必須能夠觀察在屏障之前發出的每筆事務。
同步屏障的定義 – 當屏障完成時,相應域中的*每個*主節點必須能夠觀察在屏障之前發出的所有事務。
這兩個定義的不同之處在于,在同步屏障的情況下,屏障事務本身的完成保證了,對于原始主服務器來說,域中的*任何*其他代理將觀察之前發出的所有事務。這種差異對兩種類型的通信障礙的預期用途有影響,ACE 規范在 Sect 中對此進行了澄清。C8.1.
用法:
內存屏障 – 用于基于內存的通信。詳細地說,生產者在內存中生成數據,發出內存屏障,然后寫入內存中的標志。任何不斷輪詢標志的使用者,一旦觀察到修改后的標志,也將能夠觀察生成的數據。
同步屏障 – 用于基于事件的邊帶通信。因為屏障交易的完成意味著相應域中的*每個*主節點必須能夠觀察在屏障之前發出的每筆交易。一旦同步。屏障已經完成,生產者可以使用邊帶信令機制(例如事件、中斷)明確地查明域中的任何主站,以發出所生成數據可用性的信號。
驗證挑戰和解決方案:
創建準確驗證障礙交易的場景非常耗時且具有挑戰性,需要深厚的協議和方法專業知識。驗證這些方案是一項挑戰,因為 ACE 協議對屏障事務提出了許多注意事項,尤其是內存更新的正確排序及其可觀察性。觀察障礙響應的順序并向觀察者提供標志增強了復雜性。
如下圖所示,序列發送許多基于num_pre_barrier_stores的屏障前存儲事務,然后是屏障對和屏障后標志事務。有關障礙交易的考慮因素和交易流程將更深入地介紹將在即將發布的博客中介紹。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19286瀏覽量
229855 -
ARM
+關注
關注
134文章
9097瀏覽量
367587 -
服務器
+關注
關注
12文章
9164瀏覽量
85430
發布評論請先 登錄
相關推薦
評論