chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ARM系列--同步原語

安芯教育科技 ? 來源:老秦談芯 ? 2023-01-05 14:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在具有多個執(zhí)行線程的系統(tǒng)中,某些資源可能不能同時被訪問或者修改。這些資源可以是外圍設(shè)備或內(nèi)存緩沖區(qū)和數(shù)據(jù)結(jié)構(gòu),例如打印機(jī)不會在一個時刻響應(yīng)多個訪問。這就需要一些同步機(jī)制去處理這些資源的同時控制(concurrency control)問題。需要注意的是,這里說的“同步”,不是同時的意思,而是協(xié)同的意思。某個資源使用受限的情況下,你用完了我用,大家協(xié)同工作。

可以通過“鎖(lock)”機(jī)制來實現(xiàn)同步,對這些不能同時被訪問的共享資源提供一個鎖。線程在訪問這些資源之前必須先獲得鎖權(quán)限。這時,如果其它線程也想申請鎖,會發(fā)現(xiàn)鎖被占用,只能等待鎖被釋放。擁有鎖的線程在訪問結(jié)束后,必須釋放鎖,以便其它的線程可以繼續(xù)訪問。

可以使用內(nèi)存中的變量來實現(xiàn)簡單的鎖,該變量可以包含兩個值(狀態(tài)):LOCKED和UNLOCKED。進(jìn)程如果發(fā)現(xiàn)這個鎖是UNLOCKED狀態(tài),即可以修改為LOCKED,并擁有該資源的訪問權(quán)限。

5a0693ee-8cb5-11ed-bfe3-dac502259ad0.png

圖中的整個過程分為三個步驟:

讀內(nèi)存中的變量,并做狀態(tài)比較;

修改寄存器值;

寫內(nèi)存變量。

在具有多個核或線程的系統(tǒng)中,此方法容易受到另一個線程的攻擊,即在變量值的第一次讀取和回寫之間修改內(nèi)存中的值。

這個問題可以用軟件解決,也可以用額外的硬件功能來解決。一種解決方案可以是使“讀-比較-修改-寫(read-compare-modify-write)”的原子操作指令。ARM架構(gòu)的早期版本使用SWP指令實現(xiàn)類似的功能。

ARMv8-A使用下面要介紹的,一種特殊類型的加載和存儲指令來檢測內(nèi)存中的值自上次讀取以來是否發(fā)生了變化。ARMv8-A 64位指令集提供了兩條獨(dú)占指令LDXR(Load Exclusive)和STXR(Store Exclusive)。

當(dāng)使用LDXR指令讀取地址時,會將其標(biāo)記為獨(dú)占訪問。如果使用STXR指令向標(biāo)記為獨(dú)占的地址寫入,則會清除獨(dú)占狀態(tài)。嘗試使用STXR指令向未標(biāo)記為獨(dú)占的地址寫入將會失敗。地址的獨(dú)占狀態(tài)由稱為獨(dú)占監(jiān)視器(Exclusive Monitor)的硬件維護(hù)。

使用獨(dú)占load/store后的鎖實現(xiàn):

5a2e9326-8cb5-11ed-bfe3-dac502259ad0.png

鎖值的更新不能保證是原子的,但現(xiàn)在可以檢測到初始讀取和更新之間的任何更改。如果獨(dú)占存儲失敗,軟件可以再次嘗試獲取鎖。

前面提到過,需要對標(biāo)記為獨(dú)占的地址進(jìn)行監(jiān)控。獨(dú)占監(jiān)視器可以是一個簡單的狀態(tài)機(jī),其狀態(tài)可以是開放的(open)和獨(dú)占的(exclusive)。ARM架構(gòu)定義了兩種不同的狀態(tài)機(jī):本地獨(dú)占監(jiān)視器(Local Exclusive Monitor)和全局獨(dú)占監(jiān)視器(Global Exclusive Monitor)。

根據(jù)被訪問地址的可共享性屬性,檢查本地監(jiān)視器或全局監(jiān)視器的獨(dú)占訪問。

對于Non-shareable地址的獨(dú)占訪問檢查僅在本地獨(dú)監(jiān)視器。

對shareable地址的獨(dú)占訪問檢查在本地監(jiān)視器或全局監(jiān)視器。

每個處理器核都有一個與其關(guān)聯(lián)的本地監(jiān)視器。本地監(jiān)視器可以構(gòu)造為保存特定地址的獨(dú)占狀態(tài),也可以構(gòu)造為不保存該地址。本地監(jiān)視器作為處理器的一部分實現(xiàn)。

全局監(jiān)視器在多個處理器核之間共享。與本地監(jiān)視器一樣,它們只需要監(jiān)視一個地址,如果監(jiān)視器可以標(biāo)記多個地址,則每個地址都有自己的狀態(tài)機(jī)。

ARM體系結(jié)構(gòu)要求以下內(nèi)存類型能夠與全局監(jiān)視器一起工作:

5a3a7c36-8cb5-11ed-bfe3-dac502259ad0.png

如果程序無法獲得鎖,會不斷嘗試申請鎖。但是這樣會浪費(fèi)處理器的資源,并且消耗不必要的功耗。有幾種方式可以改善這個問題。對于在釋放鎖之前等待時間相對較長的情況,鎖代碼可以返回給操作系統(tǒng)調(diào)度程序,這允許在釋放鎖之前調(diào)度其它線程。

對于鎖可能快速被釋放的情況,ARM架構(gòu)有一種機(jī)制,即允許處理器暫停執(zhí)行,進(jìn)入低功耗模式,等待鎖被釋放。ARM提供WFE(Wait For Event)指令,如果處理器申請鎖失敗,程序可以執(zhí)行WFE進(jìn)入等待。以前的做法是,負(fù)責(zé)釋放鎖的代碼中會執(zhí)行SEV(Send Event)指令,通過發(fā)送EVENT喚醒正在等待鎖資源的處理器核?,F(xiàn)在ARMv8-A架構(gòu)中,清除全局監(jiān)視器會自動向所有連接的處理器核發(fā)送EVENT喚醒。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    135

    文章

    9511

    瀏覽量

    389222
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5590

    瀏覽量

    129248
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    615

    瀏覽量

    29396

原文標(biāo)題:技術(shù)分享 | ARM系列 -- 同步原語

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    西門子EDA與Arm攜手合作加速系統(tǒng)設(shè)計驗證進(jìn)程與軟件啟動

    對芯片設(shè)計而言,加速產(chǎn)品的上市流程至關(guān)重要。為此,西門子EDA與Arm攜手合作,為Arm的合作伙伴提供了一系列基于Arm Neoverse CSS與
    的頭像 發(fā)表于 12-19 09:06 ?189次閱讀
    西門子EDA與<b class='flag-5'>Arm</b>攜手合作加速系統(tǒng)設(shè)計驗證進(jìn)程與軟件啟動

    請問CW32系列ADC是否支持同步或異步轉(zhuǎn)換?

    CW32系列ADC是否支持同步或異步轉(zhuǎn)換?
    發(fā)表于 12-16 08:06

    Arm SystemReady研討會圓滿召開

    /ODM 等廣泛領(lǐng)域的 Arm 生態(tài)伙伴積極參與。通過一系列豐富的現(xiàn)場分享、實際操作演示與互動交流,與會者深入理解最新的合規(guī)要求與流程、工具與更新版本,并基于實踐經(jīng)驗,攜手探索進(jìn)一步優(yōu)化方向,共同加強(qiáng) Arm 生態(tài)系統(tǒng)的強(qiáng)大實力
    的頭像 發(fā)表于 11-11 11:39 ?678次閱讀

    麥斯塔MST8011AI-12系列晶振:光模塊通信的“同步引擎”

    麥斯塔MST8011AI-12系列晶振作為光模塊通信的“同步引擎”,已成為不可或缺的關(guān)鍵元件。它如同一顆精準(zhǔn)跳動的“心臟”,為光模塊的高速、穩(wěn)定運(yùn)行提供穩(wěn)定的時鐘信號,確保數(shù)據(jù)傳輸?shù)?b class='flag-5'>同步性和準(zhǔn)確性
    的頭像 發(fā)表于 10-21 15:42 ?309次閱讀
    麥斯塔MST8011AI-12<b class='flag-5'>系列</b>晶振:光模塊通信的“<b class='flag-5'>同步</b>引擎”

    請問如何為 NuMicro? M451 系列中的 PWM 設(shè)置計數(shù)器同步?

    如何為 NuMicro? M451 系列中的 PWM 設(shè)置計數(shù)器同步?
    發(fā)表于 08-29 06:48

    一文了解Arm神經(jīng)超級采樣 (Arm Neural Super Sampling, Arm NSS) 深入探索架構(gòu)、訓(xùn)練和推理

    本文將從訓(xùn)練、網(wǎng)絡(luò)架構(gòu)到后處理和推理等方面,深入探討 Arm 神經(jīng)超級采樣 (Arm Neural Super Sampling, Arm NSS) 的工作原理,希望為機(jī)器學(xué)習(xí) (ML) 工程師和移動端圖形開發(fā)者來詳細(xì)解釋
    的頭像 發(fā)表于 08-14 16:11 ?2574次閱讀

    ARM Mali GPU 深度解讀

    ARM Mali GPU 深度解讀 ARM Mali 是 Arm 公司面向移動設(shè)備、嵌入式系統(tǒng)和基礎(chǔ)設(shè)施市場設(shè)計的圖形處理器(GPU)IP 核,憑借其異構(gòu)計算架構(gòu)、能效優(yōu)化和生態(tài)協(xié)同,成為全球移動
    的頭像 發(fā)表于 05-29 10:12 ?3175次閱讀

    Arm 公司面向 PC 市場的 ?Arm Niva? 深度解讀

    面向 PC 市場的 ? Arm Niva ? 深度解讀 ? Arm Niva ? 是 Arm 公司為 PC 市場推出的核心計算平臺,屬于其“平臺優(yōu)先”戰(zhàn)略的關(guān)鍵布局。作為 ? Arm
    的頭像 發(fā)表于 05-29 09:56 ?1349次閱讀

    AD463x-24系列是否支持多個芯片同步采集信號?

    想詢問AD463x-24系列是否支持多個芯片同步采集信號,我現(xiàn)在有四個電壓信號需要同步采集,能否用兩片AD4630-24芯片同步采樣?如果可以的話,可以描敘一下具體是如何實現(xiàn)的嗎。如果
    發(fā)表于 04-28 06:09

    Arm助力開發(fā)者加速遷移至Arm架構(gòu)云平臺 Arm云遷移資源分享

    隨著基于 Arm 架構(gòu)的云實例日益擴(kuò)展,越來越多的用戶正從傳統(tǒng)平臺遷移至 Arm 平臺上。
    的頭像 發(fā)表于 04-09 18:23 ?1057次閱讀

    NS2304X系列PFM同步升壓變換器中文手冊

    ? ? ? ?NS2304X 系列產(chǎn)品是一款低功耗、高效率、高頻率的 PFM 控制同步升壓 DC-DC 轉(zhuǎn)換器。? ? ? ?NS2304X外圍僅需要三個元器件就可以實現(xiàn)系統(tǒng)升壓工作。將較低的輸入
    發(fā)表于 04-08 14:47 ?0次下載

    一文認(rèn)識ARM微控制器及瑞薩RA系列MCU

    俗稱單片機(jī),如果有學(xué)過微機(jī)原理就會很熟悉這個概念了。而ARM微控制器,顧名思義,就是基于ARM的微控制器,或者說搭載了ARM處理器內(nèi)核的微控制器。
    的頭像 發(fā)表于 03-24 09:17 ?2337次閱讀
    一文認(rèn)識<b class='flag-5'>ARM</b>微控制器及瑞薩RA<b class='flag-5'>系列</b>MCU

    ISERDESE2原語端口及參數(shù)介紹

    前面在講解HDMI接口之前,講解過IDDR、ODDR、OSERDESE2、IBUF等原語,之后一直有讀者在問什么時候更新ISERDESE2這個原語。前文講解過這些原語都在HDMI或者RGMII中使用過,但是ISERDESE2這個
    的頭像 發(fā)表于 03-17 10:52 ?2271次閱讀
    ISERDESE2<b class='flag-5'>原語</b>端口及參數(shù)介紹

    消息稱Arm準(zhǔn)備提高授權(quán)許可費(fèi)用

    調(diào)整授權(quán)許可費(fèi)用。這一舉措預(yù)計將對三星Exynos芯片的未來發(fā)展產(chǎn)生重大影響。 三星曾有自己的定制CPU內(nèi)核研發(fā)團(tuán)隊,但因功耗和性能問題,2019年解散該團(tuán)隊,轉(zhuǎn)而采用Arm的公版設(shè)計。 原本三星計劃在Galaxy S26系列中“大量使用”改進(jìn)后的Exynos 2600芯
    的頭像 發(fā)表于 01-22 15:37 ?701次閱讀

    EE-60:使用ADSP-21xx系列DSP上的同步串行端口仿真RS-232 UART

    電子發(fā)燒友網(wǎng)站提供《EE-60:使用ADSP-21xx系列DSP上的同步串行端口仿真RS-232 UART.pdf》資料免費(fèi)下載
    發(fā)表于 01-14 16:07 ?0次下載
    EE-60:使用ADSP-21xx<b class='flag-5'>系列</b>DSP上的<b class='flag-5'>同步</b>串行端口仿真RS-232 UART