国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ARM系列--同步原語

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

讀內存中的變量,并做狀態比較;

修改寄存器值;

寫內存變量。

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

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

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

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

使用獨占load/store后的鎖實現:

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

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

前面提到過,需要對標記為獨占的地址進行監控。獨占監視器可以是一個簡單的狀態機,其狀態可以是開放的(open)和獨占的(exclusive)。ARM架構定義了兩種不同的狀態機:本地獨占監視器(Local Exclusive Monitor)和全局獨占監視器(Global Exclusive Monitor)。

根據被訪問地址的可共享性屬性,檢查本地監視器或全局監視器的獨占訪問。

對于Non-shareable地址的獨占訪問檢查僅在本地獨監視器。

對shareable地址的獨占訪問檢查在本地監視器或全局監視器。

每個處理器核都有一個與其關聯的本地監視器。本地監視器可以構造為保存特定地址的獨占狀態,也可以構造為不保存該地址。本地監視器作為處理器的一部分實現。

全局監視器在多個處理器核之間共享。與本地監視器一樣,它們只需要監視一個地址,如果監視器可以標記多個地址,則每個地址都有自己的狀態機。

ARM體系結構要求以下內存類型能夠與全局監視器一起工作:

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

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

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

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    135

    文章

    9553

    瀏覽量

    391896
  • 寄存器
    +關注

    關注

    31

    文章

    5608

    瀏覽量

    129998
  • 變量
    +關注

    關注

    0

    文章

    616

    瀏覽量

    29506

原文標題:技術分享 | ARM系列 -- 同步原語

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    德州儀器TPSM86325x系列同步降壓模塊:設計與應用全解析

    德州儀器TPSM86325x系列同步降壓模塊:設計與應用全解析 在電子工程師的日常工作中,電源模塊的選擇和設計至關重要。今天,我們就來深入探討一下德州儀器(TI)推出的TPSM86325x系列
    的頭像 發表于 03-03 11:05 ?141次閱讀

    德州儀器TPSM86125x系列同步降壓模塊:高效電源解決方案

    德州儀器TPSM86125x系列同步降壓模塊:高效電源解決方案 在電子設計領域,電源模塊的性能和可靠性至關重要。德州儀器(TI)的TPSM86125x系列同步降壓模塊,以其出色的特性和
    的頭像 發表于 03-03 09:45 ?70次閱讀

    RDMA設計46:RoCE v2原語功能:單邊語義

    本博文主要交流設計思路,在本博客已給出相關博文約170篇,希望對初學者有用。注意這里只是拋磚引玉,切莫認為參考這就可以完成商用IP設計。 續上,為便于查看,給出表1部分表1 RoCE v2原語功能
    發表于 03-01 23:14

    RDMA設計45:RoCE v2 原語功能驗證與分析2

    本博文主要交流設計思路,在本博客已給出相關博文約170篇,希望對初學者有用。注意這里只是拋磚引玉,切莫認為參考這就可以完成商用IP設計。續上,為便于查看,給出表1部分 表1 RoCE v2原語功能
    發表于 02-26 07:52

    西門子EDA與Arm攜手合作加速系統設計驗證進程與軟件啟動

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

    請問CW32系列ADC是否支持同步或異步轉換?

    CW32系列ADC是否支持同步或異步轉換?
    發表于 12-16 08:06

    Arm SystemReady研討會圓滿召開

    /ODM 等廣泛領域的 Arm 生態伙伴積極參與。通過一系列豐富的現場分享、實際操作演示與互動交流,與會者深入理解最新的合規要求與流程、工具與更新版本,并基于實踐經驗,攜手探索進一步優化方向,共同加強 Arm 生態系統的強大實力
    的頭像 發表于 11-11 11:39 ?908次閱讀

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

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

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

    如何為 NuMicro? M451 系列中的 PWM 設置計數器同步
    發表于 08-29 06:48

    一文了解Arm神經超級采樣 (Arm Neural Super Sampling, Arm NSS) 深入探索架構、訓練和推理

    本文將從訓練、網絡架構到后處理和推理等方面,深入探討 Arm 神經超級采樣 (Arm Neural Super Sampling, Arm NSS) 的工作原理,希望為機器學習 (ML) 工程師和移動端圖形開發者來詳細解釋
    的頭像 發表于 08-14 16:11 ?3044次閱讀

    ARM Mali GPU 深度解讀

    ARM Mali GPU 深度解讀 ARM Mali 是 Arm 公司面向移動設備、嵌入式系統和基礎設施市場設計的圖形處理器(GPU)IP 核,憑借其異構計算架構、能效優化和生態協同,成為全球移動
    的頭像 發表于 05-29 10:12 ?4336次閱讀

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

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

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

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

    Arm助力開發者加速遷移至Arm架構云平臺 Arm云遷移資源分享

    隨著基于 Arm 架構的云實例日益擴展,越來越多的用戶正從傳統平臺遷移至 Arm 平臺上。
    的頭像 發表于 04-09 18:23 ?1235次閱讀

    ISERDESE2原語端口及參數介紹

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