编辑“︁
RISC-V
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
=== 原子内存操作 === RISC-V 支援計算機在多個 CPU 與[[线程]]之間共享記憶體。RISC-V 的標準記憶體同步模式是「{{link-en|釋放一致|Release consistency}}」原則。也就是說,讀取和寫入順序可以被重排,但是有些讀取可以被設定成「獲取」(acquire)運算,必須在其後的存取之前被執行;有些寫入可以被當作「釋放」(release)運算,必須在其之前的存取的後面執行。 基本指令集包含了以[[内存屏障|{{code|FENCE}}指令]]提供的最小支援,來保證記憶體存取順序。儘管這已經足夠了({{code|FENCE R, RW}} 提供「獲取」,{{code|FENCE RW, W}} 提供「釋放」),使用組合操作指令可以更有效率。 原子操作子集(A 子集)支援兩種類型的原子內存操作,以實現{{link-en|釋放一致性|Release consistency}}。首先,它提供了通用的 [[Load-link/store-conditional|load-reserved {{code|lr}} 及 store-conditional {{code|sc}} 指令]]。{{code|lr}}執行加載,並嘗試為其執行緒保留該地址。僅當該保留未被來自另一個來源的干預性寫入破壞時,才會執行對保留地址的 store-conditional {{code|sc}}。如果寫入成功,則將零放入目標暫存器中;如果失敗,則以非零值表示軟體需要重試操作。在任何一種情況下,保留都會被釋放。 第二組原子指令 AMO(Atomic Memory Operation)執行 [[Read-modify-write]] 操作:讀取(可選為讀取-獲取)到目標暫存器,然後執行讀出值和來源暫存器值之間的操作,然後寫入(可選為寫入-釋放)結果。將記憶體屏障設計為可選的,允許了多個操作的組合。每個 AMO 的操作碼中都有「獲取」及「釋放」位元,用於啟用可選的記憶體屏障。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息