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