那曲檬骨新材料有限公司

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

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

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

介紹ARM存儲一致性模型的相關(guān)知識

安芯教育科技 ? 來源:老秦談芯 ? 作者:老秦談芯 ? 2023-02-14 09:19 ? 次閱讀

前面我們分享了中斷及ARM體系中對中斷的處理、GIC-600以及redistributor的相關(guān)知識,本篇將介紹ARM存儲一致性模型的相關(guān)知識。

按照慣例,先講基礎(chǔ)原理,再說ARM的相關(guān)部分。

今天要說的這個是存儲一致性(memory consistency),不要跟前面講過緩存一致性(cache coherence)混淆了。緩存一致性協(xié)議解決的是對單個存儲器地址的訪問之間如何排序的問題,而對于不同地址的訪問并不是緩存一致性協(xié)議所要考慮的問題。存儲一致性問題在任何具有或不具有高速緩存的系統(tǒng)中都存在,雖然高速緩存的存在有可能進(jìn)一步加劇存儲一致性問題。

存儲器模型(memory model)又稱為存儲一致性模型。用于定義系統(tǒng)中對存儲器訪問需要遵守的原則,只要軟件和硬件都遵循該原則,就能保證多核程序能運(yùn)行得到確切的結(jié)果。 對于程序員來說,通常直覺上會隱式地假定存儲器操作是按一定次序的。來看下面的例子,假定有兩個線程P0和P1。

3ba4e80a-abc9-11ed-bfe3-dac502259ad0.png

在線程P0中,執(zhí)行S1,賦值data為5;執(zhí)行S2,賦值dataIsReady為1。在線程P1中,等待dataIsReady這個變量變?yōu)?,然后把data賦值給其它變量。在我們直觀看來,S1先于S2執(zhí)行,通過dataIsReady來阻塞P1的S3執(zhí)行,那么執(zhí)行S4的時候,拿到的data一定是5。

實際上,未必是這樣,可能S2的結(jié)果早于S1傳播到P1,S4拿到的data就有可能是舊值,而不是5! 在我們的直觀感覺里,對于變量的寫操作會即時傳播,或者說是原子性的,即P0的寫操作必須以不能分割的步驟傳播到P1。我們把關(guān)于存儲器訪問次序的隱式期望表示為:來自一個處理器的存儲器訪問應(yīng)該以程序的次序執(zhí)行,并且每個訪問的執(zhí)行必須是原子性的。

這樣一種期望被正式定義為順序一致性(SC)模型。順序一致性模型雖然能嚴(yán)格的解決存儲訪問次序問題,但是由于過于嚴(yán)厲,會產(chǎn)生巨大的性能開銷。因為當(dāng)某一個寫入操作未執(zhí)行完,其它的操作可能會全部暫停下來。所以現(xiàn)在大部分處理器都不會實現(xiàn)順序一致性,而是實現(xiàn)一些較為松弛的一致性模型。

下面將根據(jù)從強(qiáng)到弱的限制程度排序,列舉幾種典型的存儲器模型:

1. 順序一致性模型(sequential consistency,SC)

也稱為強(qiáng)定序模型,從施加的限制來看,該模型下load/store是順序的訪問存儲器。每個處理器都按照程序順序來執(zhí)行程序,即便訪問的是不同存儲器地址,也不能改變訪問順序。從全局看,每個存儲器寫操作都需要能被系統(tǒng)中所有的處理器同時觀測到,同一時刻只有一個處理器和存儲系統(tǒng)相連,因此對memory的訪問時原子化的,串行化的。順序一致性模型簡單直觀,但限制了CPU硬件和編譯器的優(yōu)化,影響了整個系統(tǒng)的性能。

2. 完全存儲定序模型(Total Store Order,TSO)

由于處理器主頻和存儲器頻率相差較大,系統(tǒng)設(shè)計人員通常會在CPU中增加存儲緩沖區(qū)(store buffer),它的作用是為store指令提供緩沖,使得處理器不用等待存儲器的響應(yīng)。但是由于存儲緩沖的存在,一些在store之后的load指令可能會越過該指令提前執(zhí)行,那一個core的store-load操作通常會被其他core看成亂序執(zhí)行了,變成load-store了。因此在在該模型下,訪存操作的四種組合store-store,store-load,load-store,load-load中,只有store-load存在亂序。store操作在store_buffer中順序執(zhí)行。load同樣按順序執(zhí)行,但可穿插到多個store執(zhí)行過程中

3. 部分存儲定序模型(Part Store Order,PSO)

系統(tǒng)設(shè)計人員并不滿足TSO模型帶來的性能提升,于是繼續(xù)在TSO的基礎(chǔ)上放松訪問內(nèi)存訪問限制,允許處理器以非FIFO來處理store buffer緩沖區(qū)的指令,處理器只保證地址相關(guān)指令在store buffer中以FIFO的形式進(jìn)行處理,而其它的則可以亂序處理。

4. 處理器一致性模型(Processor Consistency,PC)

該模型比順序一致性弱。在SC中,要維持每一條load/store指令與后續(xù)load/store指令的次序。在處理器一致性模型中,則放松了較早的store指令和較晚的load指令之間的次序。當(dāng)一條store指令還未被執(zhí)行時,允許一條較晚的load指令像高速緩存發(fā)出請求甚至結(jié)束。這一點的重要性在于,store指令可以在寫緩沖區(qū)排隊并在稍晚執(zhí)行,同時,load指令不需要等待較早的store指令結(jié)束就可以訪問高速緩存,所以降低了load指令的時延。

5. 弱序一致性模型(Weak Order Consistency,WO)

該模型的主要思想是把同步操作和普通訪存操作區(qū)分開來,兩個同步操作之間的訪存操作的順序不受影響,依然遵循指令程序順序。WO模型利用了兩個假設(shè):程序是適當(dāng)同步的;程序員正確的向硬件表示哪些load和store是起到同步訪問作用的。

程序員必須用硬件可識別的同步操作把對可寫共享單元的訪問保護(hù)起來,以保證多個處理器對該共享單元的訪問是互斥的。該模型增加了程序員的負(fù)擔(dān),但能有效提高性能。目前,很多的商業(yè)化處理器實現(xiàn)的就是WO,比如ARM。

6. 釋放一致性模型(Release Consistency,RC)

該模型是對弱一致性模型的改進(jìn),它把同步操作進(jìn)一步分成獲取操作(acquire)和釋放操作(release)。acquire用于獲取對某些共享存儲單元的獨占性訪問權(quán);release用于釋放該訪問權(quán)。執(zhí)行的順序為:acquire-> load/store ->release。

與WO類似,RC允許編譯器自由改變load指令和store指令的次序,但是不允許它們越過一個獲取同步向前移動,也不允許它們越過一個釋放同步向后移動。與WO不同的是,單靠指令的操作碼不容易表示同步訪問。 通常來說,存儲一致性模型對訪存事件次序施加的限制越弱,越有利于提高性能,但增加了編程難度。

且限制越強(qiáng)的存儲器模型程序可以在限制較弱的存儲器模型上運(yùn)行,很少會導(dǎo)致錯誤。 關(guān)于存儲器一致性模型,有很多的學(xué)術(shù)文章和書籍,我所了解的也就是一點皮毛。其實,今天講的這些,都是基礎(chǔ)知識。

審核編輯:劉清

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

    關(guān)注

    68

    文章

    19407

    瀏覽量

    231182
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9165

    瀏覽量

    369192
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7528

    瀏覽量

    164342
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    389

    瀏覽量

    43856
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1642

    瀏覽量

    49286

原文標(biāo)題:技術(shù)分享 | ARM系列 - - 存儲模型(一)

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

收藏 人收藏

    評論

    相關(guān)推薦

    多種內(nèi)存一致性模型的特性分析

    這樣提高CPU的并發(fā)能力。 內(nèi)存一致性模型(memory consistency model)就是用來描述多線程對共享存儲器的訪問行為,在不同的內(nèi)存一致性
    的頭像 發(fā)表于 09-21 13:57 ?3163次閱讀
    多種內(nèi)存<b class='flag-5'>一致性</b><b class='flag-5'>模型</b>的特性分析

    ARM系列 - - 存儲模型

    的問題,而對于不同地址的訪問并不是緩存一致性協(xié)議所要考慮的問題。存儲一致性問題在任何具有或不具有高速緩存的系統(tǒng)中都存在,雖然高速緩存的存在有可能進(jìn)步加劇
    發(fā)表于 04-11 15:42

    順序一致性和TSO一致性分別是什么?SC和TSO到底哪個好?

    更為常用,而在TSO內(nèi)存一致性模型中很少用,因為僅僅store-load的亂序在大多數(shù)情況下都是沒有問題的。到這里,我們已經(jīng)介紹了順序一致性和TSO
    發(fā)表于 07-19 14:54

    一致性規(guī)劃研究

    針對一致性規(guī)劃的高度求解復(fù)雜度,分析主流一致性規(guī)劃器的求解策略,給出影響一致性規(guī)劃器性能的主要因素:啟發(fā)信息的有效,信念狀態(tài)表示方法的緊湊
    發(fā)表于 04-06 08:43 ?12次下載

    CMP中Cache一致性協(xié)議的驗證

    CMP是處理器體系結(jié)構(gòu)發(fā)展的個重要方向,其中Cache一致性問題的驗證是CMP設(shè)計中的項重要課題?;贛ESI一致性協(xié)議,本文建立了CMP的Cache
    發(fā)表于 07-20 14:18 ?38次下載

    TTCN在TD-SCDMA終端RRM一致性測試系統(tǒng)中的應(yīng)用

    TD-SCDMA終端一致性測試的個重要內(nèi)容就是進(jìn)行RRM一致性測試,這對終端研發(fā)和認(rèn)證有著重要的意義。本文首先介紹了TTCN(樹表結(jié)合表示法)一致
    發(fā)表于 09-15 17:12 ?24次下載

    加速器一致性接口

    提供異步緩存一致性直接訪問PS的入口。處理器可以標(biāo)記ACP上的傳輸為一致性或非一致性。PL端的AXI主機(jī)通過ARUSERS[1:0]指示是否為一致性讀傳輸,通過AWUSERS[1:0]
    發(fā)表于 11-17 15:04 ?3751次閱讀

    Cache一致性協(xié)議優(yōu)化研究

    現(xiàn)代晶體管技術(shù)在單芯片上集成多個處理器已經(jīng)成為現(xiàn)實.近年來,隨著多核處理器集成核數(shù)的不斷增加,高速緩存的一致性問題凸顯出來,已成為多核處理器的性能瓶頸之,亟待解決.介紹了片上多核處理器一致性
    發(fā)表于 12-30 15:04 ?0次下載
    Cache<b class='flag-5'>一致性</b>協(xié)議優(yōu)化研究

    優(yōu)化模型的乘偏好關(guān)系一致性改進(jìn)

    針對乘偏好信息下的決策問題,引入乘偏好關(guān)系的有序一致性、滿意一致性以及一致性指數(shù)等概念,建立以偏差變量最小化為目標(biāo)函數(shù)的優(yōu)化
    發(fā)表于 03-20 17:28 ?0次下載

    自主駕駛系統(tǒng)將使用緩存一致性互連IP和非一致性互連IP

    的創(chuàng)新片上網(wǎng)絡(luò)(NoC)互連知識產(chǎn)權(quán)(IP)產(chǎn)品的全球領(lǐng)先供應(yīng)商,宣布,MobileEye已購買Arteris IP 的NCore緩存一致性互連產(chǎn)品、flexNOC互連產(chǎn)品以及NCore和flexNOC Resilience軟
    的頭像 發(fā)表于 05-09 17:13 ?3275次閱讀

    介紹下cpu緩存一致性(MESI協(xié)議)

    之前介紹了java并發(fā)包的cas原理和java內(nèi)存模型,這篇我們介紹下cpu緩存一致性原理,可以幫助我們更好的理解cas的底層原理。
    的頭像 發(fā)表于 06-09 16:01 ?4801次閱讀
    <b class='flag-5'>介紹</b>下cpu緩存<b class='flag-5'>一致性</b>(MESI協(xié)議)

    如何保證緩存一致性

    “ 本文的參考文章是2022年HOT 34上Intel Rob Blakenship關(guān)于CXL緩存一致性介紹?!?/div>
    的頭像 發(fā)表于 10-19 17:42 ?1231次閱讀
    如何保證緩存<b class='flag-5'>一致性</b>

    分布式系統(tǒng)中常見的一致性模型

    什么是一致性模型? 在分布式系統(tǒng)中,C(一致性) 和 A(可用)始終存在矛盾。若想保證可用,就必須通過復(fù)制、分片等方式冗余
    的頭像 發(fā)表于 11-10 11:33 ?987次閱讀
    分布式系統(tǒng)中常見的<b class='flag-5'>一致性</b><b class='flag-5'>模型</b>

    DDR一致性測試的操作步驟

    介紹DDR一致性的操作步驟。 1. 準(zhǔn)備測試環(huán)境:首先,需要準(zhǔn)備好測試環(huán)境。這包括臺DDR一致性測試設(shè)備,該設(shè)備通常是專門為DDR測試設(shè)計的高性能工具。還需要
    的頭像 發(fā)表于 02-01 16:24 ?1711次閱讀

    深入理解數(shù)據(jù)備份的關(guān)鍵原則:應(yīng)用一致性與崩潰一致性的區(qū)別

    深入理解數(shù)據(jù)備份的關(guān)鍵原則:應(yīng)用一致性與崩潰一致性的區(qū)別 在數(shù)字化時代,數(shù)據(jù)備份成為了企業(yè)信息安全的核心環(huán)節(jié)。但在備份過程中,兩個關(guān)鍵概念——應(yīng)用一致性和崩潰一致性,常常被誤解或混淆。
    的頭像 發(fā)表于 03-11 11:29 ?1008次閱讀
    深入理解數(shù)據(jù)備份的關(guān)鍵原則:應(yīng)用<b class='flag-5'>一致性</b>與崩潰<b class='flag-5'>一致性</b>的區(qū)別
    博彩百家乐官网心得| 百家乐官网棋牌外挂| 博狗百家乐官网的玩法技巧和规则 | 百家乐天天乐娱乐场| 大发888明星婚讯| 真人百家乐官网是啥游戏| 百家乐视频免费下载| 娱乐城注册送奖金| 百家乐官网娱乐送白菜| 百家乐英皇赌场娱乐网规则| 百家乐技巧娱乐博彩| 百家乐官网哪家有优惠| 大发888缺casino组件| 网上玩百家乐技巧| 澳门百家乐官网什么规则| 新葡京娱乐| 哪家百家乐官网优惠最好且信誉不错 | 线上百家乐信誉| 法拉利百家乐官网的玩法技巧和规则 | 网上百家乐博彩正网| 东丽区| 大发888娱乐网下 | 郧西县| 大发888怎么能不卡| 真人百家乐什么平台| 百家乐官网博乐36bol在线 | 百家乐官网游戏网址| 澳门顶级赌场国际| 百家乐庄家怎样赚钱| 赌博百家乐官网趋势把握| 联兴棋牌| 大发888官方 hplsj| 百家乐保单机解码| 百家乐稳定打法| 网上百家乐官网网| 百家乐官网代理加盟| 九游棋牌游戏大厅| 威尼斯人娱乐城老品牌值得您信赖lm0 | 属猪的人做生意摆放什么聚财| 百家乐官网平技巧| 百家乐官网娱乐城主页|