cost 271 ms
這如何保證 ARM 中的值已自動更新?

[英]How is this a guarantee a value has been atomically updated in ARM?

ARM 提供 LDREX/STREX 以原子地加載/存儲值,但我覺得我在這仍然是一個原子操作方面遺漏了一些東西。 以下通常是如何增加一。 但是,是什么阻止了某些東西在 ADD 指令期間搶占,從而使 r2 不再匹配存儲在 [r0] 中的內容? ...

AArch64 程序集中的原子鏈表 LIFO,在 ldxr / stxr 之間使用加載或存儲

[英]atomic linked-list LIFO in AArch64 assembly, using load or store between ldxr / stxr

我使用 ARMv8 64 位的程序集為共享的 memory 上下文實現了 LIFO。 LIFO 在開頭插入一個節點,每個節點結構的第一個屬性必須是下一個指針。 這是為 LIFO 實現原子插入和刪除的正確程序集嗎? 它使用LL/SC在 LDXR 和 STXR 之間進行額外的加載或存儲來讀取 head ...

ARM Cortex M7 什么時候真正需要 CLREX?

[英]When is CLREX actually needed on ARM Cortex M7?

我在網上找到了幾個地方,其中指出每當進入中斷例程時“必須”調用 CLREX,我不明白。 CLREX狀態的文檔(添加編號以便於參考): (1) 清除執行處理器的本地記錄,該記錄表明地址已請求獨占訪問。 (2) 使用CLREX指令將緊密耦合的獨占訪問監視器返回到其開放訪問狀態。 這消除了 ...

與 CAS (compare-and-swap) 相比,LL/SC 的優勢是什么?

[英]What' s the advantage of LL/SC when compared with CAS (compare-and-swap)?

LL/SC 與 CAS(比較和交換)在計算機體系結構上相比有什么優勢? 我認為 LL/SC 可以在多核系統中解決活鎖問題,也可以解決 ABA 問題,但 CAS 不行。 與 CAS 相比,我找不到 LL/SC 的任何優勢。 誰能告訴我? ...

使用 Load-link/store-conditional 來防止 ABA 的無鎖 C++11 示例?

[英]Lock-free C++11 example using Load-link/store-conditional to prevent ABA?

在使用比較和交換 (CAS) 技術編寫無鎖代碼時,存在一個稱為 ABA 問題的問題: http://en.wikipedia.org/wiki/ABA_problem 僅在值“A”上進行比較是有問題的,因為在兩次觀察之間仍然可能發生寫入。 我繼續閱讀並找到了這個解決方案: http://e ...

ARM LL/SC 通過寄存器寬度或緩存線寬度獨占訪問?

[英]ARM LL/SC exclusive access by register width or cache line width?

我正在開發我的無鎖數據結構庫的下一個版本,在 ARM 上使用 LL/SC。 對於我的 LL/SC 用例,我需要將它與 LDREX 和 STREX 之間的單個 STR 一起使用。 (而不是用它來模擬 CAS。) 現在,我已經編寫了代碼並且這有效。 然而,我擔心的是它可能並不總是有效。 我在 Po ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM