多核心與同步
關於ARM或RISC-V(RVWMO)這類較弱的記憶體一致性模型,下列何者正確?
- A允許對不同位址的讀寫進行多種調換,需要順序的地方由程式插入屏障等
- B完全不允許調換,所以不存在屏障指令
- C連對同一位址的讀寫順序都不保證
查看答案與解析
正確答案:A. 允許對不同位址的讀寫進行多種調換,需要順序的地方由程式插入屏障等
在較弱的模型中,硬體可以相當自由地調換沒有相依關係、針對不同位址的讀寫。雖然容易簡化電路並提升效能與電力效率,但與其他核心交換資料時,必須以fence指令,或具有取得、釋放意義的讀寫指令來明確指定順序。在高階語言中,只要使用原子變數,編譯器就會產生適當的指令。
- A. 正確。硬體的自由度越高,順序就越需要明確指定。
- B. RISC-V也有fence指令。
- C. 對同一位址的順序,由一致性(coherency)來保持。