5
A
回答
4
是的,它是允許的。你也可以試試它。或者閱讀指令集參考:
LOCK前綴的完整性不受內存字段對齊 的影響。內存鎖定被觀察爲任意 未對齊的字段。
但也參見:
例外
#AC(0)如果啓用對齊檢查和未對齊的內存引用而當前特權級別爲3
請注意,通常不會啓用對齊檢查。
4
這是允許的,但由於鎖可能無法維護在緩存中,並且可能會降級到完整的總線鎖(完全系統失速,可能會導致性能下降),但性能可能會大幅下降。
在英特爾486處理器,用於與大打在性能上沿斷言總線上的 鎖上的鎖前綴的日子。從英特爾奔騰Pro架構 開始,總線鎖被轉換爲 緩存鎖。如果鎖位於不可緩存的內存中,或者鎖定超出了緩存行邊界,則仍然會在總線上斷言最新的現代體系結構。 這兩種情況都不太可能,所以大多數鎖前綴將被變換爲緩存鎖,其價格要便宜得多。
它可能根據處理器規格而有所不同,但請注意,另一個考慮因素是交叉線邊界也可能意味着要越過頁面邊界,這更難以維護(因此甚至更可能降級)。
相關問題
- 1. Angular指令 - 要求跨越?
- 2. MOV x86指令是否實現了C++ 11 memory_order_release原子存儲?
- 3. 檢測TextView是否跨越兩行
- 4. 高速緩存跨越的作用,同時刷新CPU緩存
- 5. 指令緩存是否存儲操作碼?
- 6. 是否有跨越多行跨越長方法名稱的方法?
- 7. 原子指令和原子類型
- 8. 一個彙編程序指令是否總是以原子方式執行?
- 9. 「SQL_NO_CACHE」指令是否阻止查詢使用緩存,或僅僅添加緩存?
- 10. bts,btr,btc指令是否爲已分配內存操作數的原子?
- 11. 越來越NULL緩存
- 12. OBJC_ASSOCIATION_ASSIGN是指原子還是非原子?
- 13. 如何指定我想要將指令跨越的父項?
- 14. SolrJ是否執行緩存?
- 15. C++是否支持高速緩存控制指令
- 16. mprotect是否在ARM Linux上刷新指令緩存?
- 17. 數據緩存和指令緩存是什麼意思?
- 18. 檢查範圍是否跨越路徑
- 19. 是否可以跨越一個celltable GWT
- 20. 檢測所選文本是否跨越整行或多行
- 21. 是否有可能讓Vim語法文件命令跨越多行?
- 22. Flush iOS指令緩存
- 23. 刷新指令的緩存
- 24. 跨越換行符
- 25. SQl Server跨越行
- 26. 我聽說INC指令不是原子的。那麼,CAS指令如何可以是原子的?
- 27. x86上的一條指令是否可以跨越頁面邊界進行拆分?
- 28. Vim的:在一個命令跨越緩衝區拷貝文本
- 29. 確定子指令是否嵌套在父指令中
- 30. 指令是越野車bootstrap導航 - angularjs