国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 正文
    • 01、前言
    • 02、RC模型
    • 03、RVWMO基本體
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

RISC-V筆記——RVWMO基本體

2024/10/19
3039
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

01、前言

RISC-V使用的內(nèi)存模型是RVWMO(RISC-V Weak Memory Ordering),它是Release Consistency的擴(kuò)展,因此,RVWMO的基本體類(lèi)似于RC模型。

02、RC模型

Release consistency(RC)的提出是基于一個(gè)觀察:將所有同步操作用FENCE圍在一起是多余的。隨著對(duì)同步操作的深入理解,同步操作acquire只需要后面放一個(gè)FENCE,同步操作release只需要前面放一個(gè)FNECE。因此RC提供了ACQUIRE和RELEASE操作,它們和FENCE類(lèi)似,但是只在一個(gè)方向上對(duì)memory進(jìn)行保序,而不是像FENCE那樣在兩個(gè)方向上都進(jìn)行保序。更一般地說(shuō),RC只需要:

ACQUIRE -> Load, Store ??(Load, Store -> ACQUIRE方向不保序)

Load, Store -> RELEASE ???(RELEASE -> Load, Store 方向不保序)

ACQUIRE -> ACQUIRE

ACQUIRE -> RELEASE

RELEASE -> ACQUIRE

RELEASE -> RELEASE

如下圖,注:LDAR代表load具有acquire語(yǔ)義,STLR代表store具有release語(yǔ)義。

03、RVWMO基本體

在RISC-V中,與RC類(lèi)似,load和store指令可以攜帶其它語(yǔ)義:load指令可以攜帶ACQUIRE語(yǔ)義,store指令可以攜帶RELEASE語(yǔ)義,以及RMW指令可以攜帶ACQUIRE、RELEASE或兩者都具有。有兩種ACQUIRE語(yǔ)義:ACQUIRE-RCpc和ACQUIRE-RCsc。同樣,也有兩種RELEASE語(yǔ)義:RELEASE-RCpc和RELEASE-RCsc?!癛Cpc語(yǔ)義”代表“Acquire-RCpc”或“Release-RCpc”。“RCsc語(yǔ)義”代表“Acquire-RCsc”或“Release-RCsc”。Load(store)可以攜帶任何一種ACQUIRE(RELEASE)語(yǔ)義,而RMW只能攜帶RCsc語(yǔ)義。這些語(yǔ)義有如下保序:

ACQUIRE -> Load,Store ??(ACQUIRE代表ACQUIRE-RCsc和ACQUIRE-RCpc)

Load,Store -> RELEASE (RELEASE 代表RELEASE-RCsc和RELEASE-RCpc)

RELEASE-RCsc -> ACQUIRE-RCsc? (注意RELEASE-RCpc -> ACQUIRE-RCpc不成立)

從上述保序公式可以看出:

帶有RELEASE-RCpc的older store指令的寫(xiě)數(shù)據(jù)可以直接被forward給帶有ACQUIRE-RCpc的同地址younger load指令。

如果它們兩個(gè)是不同地址,那么在younger load指令會(huì)先于older store指令出現(xiàn)在global memory order上。

上述這兩點(diǎn)是RCsc不允許的,RCsc具有更強(qiáng)的保序行為。為什么RCsc和RCpc有這兩點(diǎn)區(qū)別,看它們的全稱(chēng)就知道了。

“RCpc”代表release consistency with processor-consistent synchronization operations。

“RCsc”代表release consistency with sequentially consistent synchronization operations。

RCpc語(yǔ)義有processor-consistent特性。Processor consistency(PC)表示一個(gè)Core的store操作按順序達(dá)到其它Core,但不一定同時(shí)達(dá)到其它Core。TSO模型是PC的特殊情況,其中每個(gè)Core都可以立即看到自己的Store操作,但是當(dāng)任何其它Core看到Store操作時(shí),所有其它Core都可以看到它,這個(gè)屬性稱(chēng)為write atomicity。

RCsc語(yǔ)義有sequentially consistent特性。Sequential consistency (SC)模型中,memory order保留了每個(gè)core的program order。也就是SC模型為同一個(gè)線程的兩個(gè)指令間的所有四種load和store組合(Load -> Load, Load -> Store, Store -> Store, and Store -> Load)保留了順序。

因此RCpc和RCsc在行為上還是有些區(qū)別,RCsc語(yǔ)義可以讓RVWMO模型像SC(Sequential Consistency)模型行為一樣,RCpc語(yǔ)義可以讓RVWMO像TSO(Total Store Order)內(nèi)存模型行為一樣,這極大方便了其它CPU內(nèi)存模型的代碼移植到RISC-V CPU上運(yùn)行。比如要遷移MIPS R10000的代碼到RISC-V CPU上,可以使用RCsc的load和store指令。要遷移Intel/AMD的代碼到RSIC-V CPU上,可以使用RCpc的load和store指令。

如下圖,注:LDAR代表load具有acquire-RCsc語(yǔ)義,STLR代表store具有release-RCsc語(yǔ)義。LDAPA代表load具有acquire-RCpc語(yǔ)義。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫(xiě)文章/發(fā)需求
立即登錄
甘肃省| 阿荣旗| 筠连县| 抚州市| 泾阳县| 从江县| 宁河县| 古蔺县| 昭平县| 永新县| 五常市| 调兵山市| 松潘县| 乡城县| 潞城市| 临城县| 时尚| 锦州市| 资讯| 定远县| 渭源县| 博客| 佛学| 水富县| 南宫市| 安仁县| 遂川县| 兴仁县| 湖口县| 黔西县| 西藏| 洪泽县| 额尔古纳市| 屏东县| 崇仁县| 云梦县| 建水县| 宿迁市| 横峰县| 元谋县| 兴文县|