www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > > 全棧芯片工程師
[導(dǎo)讀]RISC-V 把原子指令劃分成單獨的指令擴(kuò)展,命名為 'A'。該擴(kuò)展中主要包含兩部分,一個 LR/SC 指令,即Load-Reserved/Store-Conditional,另外一個是 AMO 指令,RV32A 有兩種類型的原子操作:

RISC-V 把原子指令劃分成單獨的指令擴(kuò)展,命名為 'A'。該擴(kuò)展中主要包含兩部分,一個 LR/SC 指令,即Load-Reserved/Store-Conditional,另外一個是 AMO 指令,RV32A 有兩種類型的原子操作:

  • 內(nèi)存原子操作(AMO)

  • 加載保留/條件存儲(load reserved / store conditional)



內(nèi)存原子操作(AMO)


AMO是強大的“讀改寫”指令,該操作加載rs1指向的存儲器位置的內(nèi)容,并將其存儲在寄存器 rd 中,然后與rs2中的值進(jìn)行二進(jìn)制運算,并將結(jié)果保存回rd中,然后再寫到rs1指向的存儲器位置。

為什么要amo指令?

AMO指令要求整個讀出,計算,寫回必須為原子性質(zhì),就是讀出和寫回之間,該存儲器地址不能被其它進(jìn)程訪問,通??偩€會鎖定,這樣就支持多核SoC系統(tǒng)。雖然 RISC-V B位操作擴(kuò)展支持一系列復(fù)雜的位控制指令,但Atomic擴(kuò)展并不只是針對多處理器系統(tǒng),它還有助于那些必要的位操作需求比較簡單的嵌入式系統(tǒng),從而精簡軟件指令代碼。

AMO自旋鎖的示例如下:


  • 先在寄存器t0中放入1(li t0, 1)。

  • load加載a0地址中的內(nèi)容到t1中,a0為鎖的地址。

  • 比較t1和0(bnez),t1不等于0則跳轉(zhuǎn)到again,t1不等于0說明鎖已經(jīng)被持有。

  • 把t0(1)放到a0表示的地址中,含義為上鎖,把a0處的原值放到t1中。

  • 比較t1和0(bnez),t1不等于0則跳轉(zhuǎn)到again,t1不等于0說明鎖已經(jīng)被持有。

  • 執(zhí)行關(guān)鍵區(qū)Critical section代碼。

  • 解鎖,把x0(0)的值賦給(a0),把(a0)的值交給x0(丟棄)。注意,RISC-V架構(gòu)規(guī)定x0固定為0值。


再次申明,AMO指令要求整個讀出,計算,寫回必須為原子性質(zhì),就是讀出和寫回之間,該存儲器地址不能被其它進(jìn)程訪問,通??偩€會鎖定。AMO指令也可以支持釋放一致性模型,可以通過指令中的aq/rl位,來設(shè)置獲取或釋放屬性。

外還提供 AMO 指令的原因是,它們在多處理器系統(tǒng)中擁有比加載保留/條件存儲更好的可擴(kuò)展性,例如可以用它們來實現(xiàn)高效的歸約。AMO 指令在于 I/O 設(shè)備通信時也很有用,可以實現(xiàn)總線事務(wù)的原子讀寫。這種原子性可以簡化設(shè)備驅(qū)動,并提高 I/O 性能。


LR/SC指令

雖然原子操作能解決多線程的競爭問題,但由于會將總線鎖住,導(dǎo)致其他核無法訪問總線,在核數(shù)眾多且頻發(fā)搶鎖的情況下,會造成總線長期被鎖的情況,因此引入一種新的互斥類型的存儲器訪問指令,即LR(load reserved)/SC(store conditional)指令。LR指令是Load Reserved的縮寫,讀取保留;SC指令是Store Conditional 的縮寫,條件存儲,即load reserved/store conditional。


LR指令是從內(nèi)存地址rs1中加載內(nèi)容到rd寄存器。然后在rs1對應(yīng)地址上設(shè)置保留標(biāo)記(reservation set)。

SC指令在把rs2值寫到rs1地址之前,會先判斷rs1內(nèi)存地址是否有設(shè)置保留標(biāo)記,如果設(shè)置了,則把rs2值正常寫入到rs1內(nèi)存地址里,并把rd寄存器設(shè)置成 0,表示保存成功。如果rs1內(nèi)存地址沒有設(shè)置保留標(biāo)記,則不保存,并把rd寄存器設(shè)置成1表示保存失敗。不管成功還是失敗,SC指令都會把當(dāng)前hart 保留的所有保留標(biāo)記全部清除。一個例子如下:

  • 加載舊的值

  • 比較舊的值與 a1 是否相等

  • 相等則存入新的值

  • 如果存入失敗,重新嘗試

  • …比較-交換成功之后的代碼…

  • 比較-交換不成功

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

受生成式 AI 驅(qū)動, RISC-V 芯片市場快速發(fā)展。預(yù)計到2030年,RISC-V SoC出貨量將達(dá)到1618.1億顆,營收將達(dá)到927億美元。其中,用于AI加速器的RISC-V SoC出貨量將達(dá)到41億顆,營收將達(dá)...

關(guān)鍵字: RISC-V CPU AI CUDA ARM 推理

2017年前后,RISC-V在中國萌芽,一些RISC-V的先行者便開始摸索前行。匆匆數(shù)年過去,質(zhì)疑不再,掌聲潮起,RISC-V已然成為業(yè)界追逐的焦點。當(dāng)人們興奮地暢想著Arm無法攻克的高峰將要插上RISC-V的大旗,RI...

關(guān)鍵字: RISC-V MCU 沁恒 青稞

隨著RISC-V架構(gòu)在數(shù)據(jù)中心和邊緣計算領(lǐng)域的快速滲透,其虛擬化支持能力成為關(guān)鍵技術(shù)瓶頸。平頭哥C910處理器作為首款支持RISC-V虛擬化擴(kuò)展(H-extension)的高性能核心,通過KVM實現(xiàn)半虛擬化加速后,虛擬機(jī)...

關(guān)鍵字: RISC-V KVM 平頭哥C910

在RISC-V架構(gòu)蓬勃發(fā)展的背景下,平頭哥半導(dǎo)體推出的C910高性能處理器(12nm工藝,3.0GHz主頻)成為國產(chǎn)芯片的重要突破。本文通過C910平臺啟動流程解析、關(guān)鍵內(nèi)核補丁開發(fā)、主線提交實戰(zhàn),完整呈現(xiàn)從芯片適配到社...

關(guān)鍵字: RISC-V 平頭哥C910 自研芯片

全球半導(dǎo)體產(chǎn)業(yè)向開源架構(gòu)加速遷移,RISC-V憑借其開放、模塊化與可定制化的特性,正成為數(shù)字信號處理(DSP)領(lǐng)域的重要技術(shù)載體。然而,開源DSP核的設(shè)計不僅需要突破硬件架構(gòu)的創(chuàng)新瓶頸,更需在指令集擴(kuò)展、生態(tài)兼容性及產(chǎn)業(yè)...

關(guān)鍵字: RISC-V 開源DSP

編譯器不僅是連接硬件與軟件的橋梁,還直接影響MCU的性能優(yōu)化與功能安全。面對汽車行業(yè)對高可靠性、低功耗和高算力的需求,編譯器需在確保ASIL-D等嚴(yán)格標(biāo)準(zhǔn)的同時,最大化發(fā)揮RISC-V芯片的潛力。

關(guān)鍵字: 車規(guī)MCU RISC-V 編譯器 HighTec

操作系統(tǒng)與芯片,同為智能汽車的技術(shù)底座?;仡櫰嚥僮飨到y(tǒng)的發(fā)展歷程,1995年德國汽車工業(yè)協(xié)會發(fā)布的OCK標(biāo)準(zhǔn)被視為起點,涵蓋操作系統(tǒng)、通信和裝載管理三大功能模塊。三十年后的今天,OCK的許多核心內(nèi)容依然在AUTOSAR...

關(guān)鍵字: 開源小滿 RISC-V 普華基礎(chǔ)軟件 汽車操作系統(tǒng)
關(guān)閉