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

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

3天內不再提示

【CHI】獨占訪問

冬至子 ? 來源:子墨祭 ? 作者:子墨祭 ? 2023-10-31 14:11 ? 次閱讀

1. overview

獨占訪問的原則是,執行獨占序列的邏輯處理器(LP)執行以下操作:

對一個地址執行exclusive load。
計算要存儲到該位置的新值。
對該地址進行exclusive store。
支持對可嗅探(snoopable)和不可嗅探 (non-snoopable)的內存位置進行獨占訪問。

如果地址A在Exclusive Load之后被另一個LP更新了,那么在執行Exclusive Store時必須失敗。在這種情況下,該store操作不能完成,即store的數據無法寫入到A地址。
以下是exclusive terms

翻譯一下,就是:

Exclusive Load

是用于描述LP執行特定的程序指令的行為,如LDREX,該操作包含:

1.獲得想要執行exclusive操作序列的地址的數據;

2.指示LP開始執行exclusive sequence;

CPU的行為)

Exclusive Load transaction

如果數據沒有在LP的cache中存在,就需要發送一筆Exclusive Load transaction來獲取用于Exclusive Load的數據。

所以,但是不是每一筆Exclusive Load要求一筆Exclusive Load transaction。

(總線行為)

Exclusive Store

是用于描述LP執行特定的程序指令的行為,如STREX,該操作包含:

決定是否exclusive sequence失敗還是成功;
如果可以的話,更新地址所在的數據;
另外,執行的處理器(LP)知道Exclusive Store是成功還是失敗的,如果Exclusive Store失敗,那么地址所對應的數據不能被更新,并且Exclusive sequence必須重新開始。

(CPU的行為)

Exclusive Store transaction

用于描述interface發送一筆transaction來完成需要的Exclusive Store。不是每一筆Exclusive Store都需要一筆Exclusive Store transaction,一筆Exclusive Store transaction成功與否可以通過transaction response的RespErr域段告知LP;(有兩個特殊,后面詳細描述)

(總線行為)

2.Exclusive monitors

可以采用exclusive monitor來追蹤exclusive sequence的進行。monitor的位置和為了支持exclusive accesses需要產生的request type是依賴于地址的內存屬性。

例如,如果requester和monitor之間存在cache,那么獨占訪問應該是non-snoopable的。

2.1 Snoopable memory location

對于Snoopable memory地址的exclusive訪問,需要采用兩個monitor:
LP monitor:
RN-F內的每個LP都必須實現一個exclusive monitor,用于檢查exclusive sequence訪問使用的地址信息。LP在執行Exclusive Load時,LP monitor置位;LP monitor在以下情況會復位:

LP收到同地址的invalidating snoop request,表明該地址已經被其它LP更新了;(即:本LP的獨占序列被破壞,獨占訪問失?。?br /> 同一個LP對該地址產生的store(即:本LP的獨占序列完成,獨占訪問成功)。如果store是由同一個LP采用non-exclusive命令產生的,monitor的復位是由實現具體決定的;
PoC monitor:
HN-F必須實現一個PoC monitor,用于判定Exclusive Store transaction的結果是成功還是失敗。如果成功,表明該transaction已經對其它一致性RN-F可見(通過snoop將其他RNF的cache line失效了)。如果失敗,表明該transaction沒有對其它一致性RN-F可見,因此Exclusive Store不能成功;
該monitor用于保證來自一個LP的Exclusive Store transactions的成功只有在該LP沒有接收到一筆同地址的snoop transaction,該snoop transaction是由其它RN-F對同地址的Exclusive Store產生的;
對PoC monitor的最低要求就是它能記錄任何LP對Snoopable地址產生的exclusive sequence;

如果一個LP已經執行一筆exclusive sequence相關的transaction,然后在其它LP成功的執行Exclusive Store transaction之前,該LP先執行了Exclusive Store transaction,那么該Exclusive Store transaction必須成功;(意思就是獨占序列沒有被破壞,就獨占訪問成功了)

該monitor要支持并行監控系統中所有支持exclusive能力的LP;(也就是每個LP都要有在monitor中有一個獨立的條目進行監控)
當HN-F收到一筆和Exclusive Load或Exclusive Store相關的transaction后,該monitor會注冊/記錄LP正嘗試一個exclusive sequence;
當HN-F收到一筆Exclusive Store transaction:

如果PoC monitor中已經記錄了該LP正在執行exclusive sequence,(即monitor對該LP的某地址的獨占標記還在),也就是說該LP的exclusive sequence還沒有被其它Exclusive Store transaction給復位掉,那么該Exclusive Store肯定成功并且允許繼續進行處理。在這種情況下,其它LPs的相關注冊都應該被復位,CHI協議建議但不要求PoC monitor對于已經成功的LP的注冊仍然保留;
如果PoC monitor沒有注冊LP正在進行的exclusive sequence,也就是說LP的注冊位已經被其它LP的Exclusive Store給復位了,那么該LP的Exclusive Store transaction失敗且不允許被繼續處理。但是PoC monitor必須注冊該LP的正在進行exclusive sequence。
注意:

1、對于一個LP,如果Exclusive Store transaction執行成功,那么該LP在PoC monitor的注冊位不需要被復位,這樣的話,該LP可以繼續成功執行一系列的Exclusive Store transaction,直到其它LP成功執行Exclusive Store transaction。對于LP不確定的store transactions,該store transaction必須被處理為來自不同LP的訪問;
2、在系統復位初始化,第一個LP執行Exclusive Store transaction可以成功,但是CHI協議不要求有這個功能。在這點上之后,所有其他LPs必須注冊它們exclusive sequence的開始,才能讓它們后續Exclusive Store transaction的成功進行;
3、當LP的Exclusive Store transaction成功后,其它LP的注冊位都被復位掉,只有成功的exclusive store transaction的CompAck響應成功后,其它LP才可以注冊新的exclusive sequence;
4、為了支持Exclusive訪問Snoopable memory空間,LP monitor和PoC monitor都需要;

2.2 Additional address comparison

PoC monitor的功能通過增加一些地址比較來增強,只需要記錄地址的某些bits就行,不需要全地址的匹配。這種方法可以減少其它LPs訪問不同地址的Exclusive Store transaction的失敗導致的風險,需要比較的地址位數由具體實現決定的。
當使用額外地址比較的monitor,在exclusive sequence(Load Exclusive or Store Exclusive)的最開始,監控的地址需要被記錄下來。只有在其它地址匹配的LP成功的Exclusive Store transaction才會將其復位;
包含額外地址比較的monitor仍然包含最小1bit monitor用于監控每個支持Exclusive能力的LP。
在以下條件發生時,Exclusive Store transaction才允許繼續進行:

地址monitor已經給同一個LP的匹配地址的exclusive sequence注冊過,且沒有被其它地址匹配的Exclusive Store transaction復位了;
最小1bit monitor已經給同一個LP的exclusive sequence注冊過,且沒有被其它任何值的LP的Exclusive Store transaction復位了。
--------這一段說的廢話,monitor必須記錄地址!

2.3 Alternatives to a PoC monitor

HN-F允許使用以下機制來代替PoC monitor來決定獨占訪問的結果:

一個精確的snoop filter,用來跟蹤請求者在Exclusive Store處理時是否保留了cache line的副本。
通過Home的snoop,以確定requester是否仍然持有cache line的副本。
注意:在CHI Issue E之前,需要實現PoC monitor

2.4Non-snoopable memory location

對于Non-snoopable memory地址區間,使用一個monitor。
System monitor:

系統monitor會跟蹤訪問Non-snoopable地址空間的Exclusive訪問。該monitor在有ReadNoSnp(Excl)操作時置位,會被其它同地址LP的改寫而復位;
System monitor可以放置于PoS或終端設備處。因為系統中終端的數據比PoS的數目多,一般將System monitor放置于PoS處,這樣可以:

減少System monitor的重復;
減少系統檢測Exclusive訪問失敗的時間;
System monitor應該放置于可以觀察到所有訪問監控地址的transactions的地方。

PoS : Point of Serialization

PoC : Point of Coherence

3. Exclusive transactions

以下操作可以使用Excl bit來支持Exclusive訪問:

Exclusive操作的通訊節點對有:

xclusive transaction必須使用正確的LPID值。

3.1 Responses to exclusive requests

對于Exclusive requests的響應和其它正常讀寫的響應類似,除了:

? ReadClean, ReadNotSharedDirty, and ReadShared Exclusive transactions:

--不能使用分離的 Comp和 data response.

--Requests不能使用 DMT or DCT.

? ReadNoSnp Exclusive transactions 不能使用 DMT.

? WriteNoSnpFull and WriteNoSnpPtl transactions,, 如果 Exclusive monitor在HN-F,且獨占檢測通過,不能使用DWT

下面這些exclusive transaction必須通過響應來告知通過還是失?。?/p>

? ReadClean

? ReadNotSharedDirty

? ReadShared

? ReadNoSnp

? CleanUnique

? WriteNoSnpFull

exclusive request的響應的RespErr域段可以指示exclusive操作成功與否。RespErr域值為0b01表示Exclusive Okay,即exclusive成功,RespErr域值為0b00表示Normal Okay,即exclusive失??;
只有一筆transaction的Excl置位,才可能返回Exclusive Okay響應;
不是所有的內存空間都支持獨占訪問。(什么樣的內存空間不支持獨占訪問??)對于不支持Exclusive訪問的地址不能回Exclusive Okay響應;
對于訪問不支持Exclusive操作的地址,執行Exclusive Store是否會將數據更新到地址中是由具體實現決定的;
CHI協議建議不要對不支持Exclusive訪問的地址發送Exclusive Store transaction。

ReadPreferUnique 和 MakeReadUnique不使用RespErr來確定獨占操作的通過或失敗。而是通過收到的數據響應狀態來確定:

如果響應為shared cache狀態,則表示獨占訪問失??;

如果響應為unique狀態,requester必須使用其LP monitor狀態來確定獨占訪問是否為通過。

下為request的Snoopable屬性、相關monitor類型、exclusive失敗的可能原因以及響應需求。

3.2 System responsibility

使用CHI協議實現的系統必須遵循以下原則:

為了有效處理Exclusive訪問,每個LP應該包含一個monitor;
不管是使用monitor機制還是其它方法,對于所有的exclusive requests,都應該有防饑餓機制;
CHI協議建議安全exclusive訪問和非安全exclusive訪問獨立分開處理。

3.3 Exclusive accesses to Snoopable locations

本小節描述當使用exclusive訪問Snoopable地址空間時,LP需要執行的行為。

Snoopable Exclusive Load
LP使用Exclusive Load開始一次exclusive sequence。exclusive sequence的開始必須將LP exclusive monitor置位。
LP要執行一筆Snoopable地址的Exclusive訪問的數據可能在local cache中已經存在了:

如果LP中該cacheline為Unique狀態,CHI協議允許(但不推薦)LP執行Exclusive Load transaction;
如果LP中該cacheline為Shared狀態,CHI協議允許但不要求LP執行Exclusive Load transaction;
如果LP中該cacheline不存在,CHI協議推薦LP執行Exclusive Load transaction來獲取一份cacheline數據,但是允許Excl bit不置位的ReadClean或ReadShared或ReadNotSharedDirty transaction;
Snoopable Exclusive Load to Snoopable Exclusive Store
在執行完Exclusive Load之后,LP通常會計算該地址的新值,用于后續Exclusive Store存儲。
CHI協議不要求LP完成一次exclusive sequence。例如,Exclusive Load獲得數據可以指示旗語有沒有被其它LP拿走了,如果被拿走了的話,則不能改變該值直到其它LP釋放了該旗語。因此,新產生的exclusive sequence不需等待當前exclusive sequence的完成。
在Exclusive Load和Exclusive Store之間,LP exclusive monitor必須監控該地址的數據來判斷是否已經被其它LP改變了。

Snoopable Exclusive Store
同一個LP不允許和任何注冊且正在執行exclusive sequence的transaction同時執行Exclusive Store transaction。在發送一筆Exclusive Store transaction之前,LP必須等到任何這樣的transaction的message已經交換完,或者接收到RetryAck響應。LP正在執行的已經注冊的transactions的exclusive sequence有:

Exclusive Load transactions to any location.
Exclusive Storetransactions to any location.
當LP正在執行Exclusive Store時,需要以下操作:

如果LP exclusive monitor已經被復位了,那么Exclusive Store必須失敗,且LP不能發送Exclusive Store transaction。LP必須重新開始exclusive sequence;注意:當LP monitor被置位了,不能發送最終失敗的Exclusive Store transaction,避免不需要的無效掉cacheline數據。
如果cacheline為Unique狀態,且LP exclusive monitor置位,那么Exclusive Store已經PASS了,不需要發送Exclusive Store transaction就可以更新該地址的數據;
如果cacheline是Shared狀態,且LP exclusive monitor置位,那么LP必須發送一筆Exclusive Store transaction。必須使用Excl比特置位的CleanUnique transaction。LP exclusive monitor必須繼續監控在CleanUnique執行過程中,該數據沒有被更新。
CleanUnique transaction將會受到Normal Okay或者Exclusive Okay響應。
如果收到Exclusive Okay響應,意味著該transaction已經成功并且把其它RN中有該cacheline的備份失效掉。在該筆exclusive transaction完成后,LP必須再次確認LP exclusive monitor:1. 如果LP exclusive monitor置位,那么Exclusive Store成功且數據更新已經執行完成;2. 如果LP exclusive monitor沒有置位,表明該cacheline在Store transaction完成之前已經被更新了,因此Exclusive Store必須失敗,exclusive sequence必須重新開始;3. 如果LP無法跟蹤到cacheline的exclusive狀態,因為該cacheline已經驅逐掉,那么exclusive store必須失敗,exclusive sequence必須重新開始。
如果收到Normal Okay響應,意味著其它LP已經完成了Exclusive Store,因此LP的Exclusive Store產生的transaction失敗,不能傳播給系統中的其它LPs。一筆Exclusive Store transaction以Normal Okay響應結束后,接下來可選選項有:1. 在訪問完成后,LP可以檢查或不檢查cacheline狀態,LP將Exclusive Store失敗掉并且重新開始exclusive sequence;2. LP可以檢查LP exclusive monitor,如果LP exclusive monitor已經被復位了,那么LP必須將Exclusive Store失效掉,并且重啟exclusive sequence;3. LP可以檢查LP exclusive monitor,如果LP exclusive monitor置位,LP可以再次發起Exclusive Store transaction。

3.4 Exclusive accesses to Non-snoopable locations
對于Non-snoopable的exclusive訪問,有以下限制:

Exclusive access的地址必須和transaction總的bytes數對其;
Exclusive access傳輸總的bytes數目必須是合法數據size,即1、2、4、8、16、32bytes;
對于不遵循這些限制的行為將導致UNPREDICTABLE;
對于Exclusive read和Exclusive write transaction被認為是一對傳輸,必須遵守如下準則:

Exclusive read和Exclusive write的地址必須相等;
Exclusive read和Exclusive write的控制信號,即MemAttr和SnpAttr,必須相等;
Exclusive read和Exclusive write的data size必須一樣;
Exclusive read和Exclusive write的LPID必須一樣;
Exclusive operation的最小bytes數是transaction size決定的。System monitor可以監控更大的bytes范圍,最多可達Exclusive access的最大size 64。然而,這樣可能導致成功的Exclusive訪問被認為是失敗的,由于在exclusive傳輸過程中,相鄰byte被改寫了。
多個訪問Non-snoopable memory地址的Exclusive transactions,不管是寫還是讀,是同一個地址還是不同地址,來自同一個LP的必須不能同時outstanding發送。
如果SN通過Exclusive ReadNoSnp的響應返回Exclusive Fail表示不支持Exclusive訪問,那么如果寫操作返回的是Exclusive Fail響應,其寫數據仍然會被更新到地址的存儲空間;
如果SN通過Exclusive ReadNoSnp的響應返回Exclusive Pass表示支持Exclusive訪問,那么如果寫操作返回的是Exclusive Fail響應,其寫數據不會被更新到地址的存儲空間。

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

    關注

    68

    文章

    18512

    瀏覽量

    223331
  • PoC
    PoC
    +關注

    關注

    1

    文章

    66

    瀏覽量

    20345
  • cache技術
    +關注

    關注

    0

    文章

    41

    瀏覽量

    994
收藏 人收藏

    評論

    相關推薦

    CHI架構的基礎知識

    CHI架構是一個可擴展的、支持一致性的集線器接口和由多個組件使用的片上互連。根據系統要求的PPA(performance, power, and area),CHI體系結構允許組件連接的靈活拓撲結構。
    的頭像 發表于 10-30 14:39 ?764次閱讀

    chi flat iron bowl is chi hair straightener

    if it is account the price. Obviously, the amount of a Chi Flat Iron , like any added product, differs
    發表于 10-21 22:28

    ARM系列之CHI協議介紹(一)

    1、ACE和CHI具體有什么不一樣嗎CHI 的全稱是 Coherent Hub Interface。所以從名字就能看出,CHI 要解決什么問題了。按照慣例,開始之前放一張 AMBA 的全家福。
    發表于 04-02 14:41

    ARM系列之CHI協議介紹(二)

    1、基于CHI系統處理器的讀請求開始之前,先回顧一下。一個 message 可以是 transaction request,data response,snoop request,由一個或多個
    發表于 04-06 11:17

    ARM系列之CHI協議介紹(三)

    的 transaction 通知其它主機。2、CHI支持兩種形式的獨占訪問今天來看一下獨占訪問(Exclusive Accesses)。什么
    發表于 04-06 11:33

    ARM平臺上特有的獨占訪問指令LDREX和STREX該怎樣去使用呢

    來說,也在硬件層面上提供了對LL/SC的支持,LL操作用的是LDREX指令,SC操作用的是STREX指令。本文主要用來說明ARM平臺上特有的獨占訪問指令LDREX和STREX的工作原理,以及如何使用。而
    發表于 04-22 09:44

    AHB-lite總線如何處理獨占訪問

    )。即使在寫后將BRESP設置為2'b01。如果在啟用DTCM的情況下正常工作,那么所有這些都會很好,但是那些獨占式寫入也會失敗。還有什么需要檢查的想法嗎?AHB-lite總線如何處理獨占訪問?也許翻譯中缺少一些內容?
    發表于 08-18 11:11

    AMBA CHI協議介紹

    相干集線器接口(CHI)是AXI相干擴展(ACE)協議的演進。它是Arm提供的高級微控制器總線架構(AMBA)的一部分。AMBA是一個自由的可用的、全球采用的、開放的功能塊連接和管理標準在片上系統
    發表于 08-02 13:40

    AMBA 5 CHI架構規范

    CHI架構是一種可擴展、連貫的集線器接口和片上互連,可供多個組件使用。CHI架構允許根據性能、電源和區域系統要求靈活地進行組件連接拓撲。
    發表于 08-08 07:46

    SoC Designer Plus AMBA CHI協議包的用戶指南

    這是SoC Designer Plus AMBA CHI協議包的用戶指南。 該協議包包含用于ARM AMBA CHI協議的SoC Designer Plus事務端口接口。 ARM AMBA CHI
    發表于 08-17 07:08

    Nokia_PC_Suite_67_rel_22_chi_s

    Nokia_PC_Suite_67_rel_22_chi_sc1.rar.td
    發表于 01-19 14:15 ?7次下載

    MP3_chi數據手冊

    MP3_chi數據手冊,有需要的朋友下來看看
    發表于 08-19 17:04 ?1次下載

    SUPER_ROBO-EYE_Chi參數

    SUPER_ROBO-EYE_Chi參數
    發表于 01-04 13:57 ?0次下載

    緩存一致性驗證 – AMBA CHI中的新功能

    相干集線器接口,俗稱 CHI,是一種接口規范,是5千從 Arm 生成 AMBA 協議 (AMBA?? 5),于 2013 年發布。AMBA? 5 CHI 定義了用于將完全相干處理器和動態內存控制器連接到高性能無阻塞互連的接口。
    的頭像 發表于 05-25 17:17 ?986次閱讀

    AQS獨占鎖的獲取

    AQS提供了兩種鎖,獨占鎖和共享鎖。獨占鎖只有一把鎖,同一時間只允許一個線程獲得鎖;而共享鎖則有多把鎖,同一時間允許多個線程獲得鎖。我們本文主要講獨占鎖。 一. 獨占鎖的獲取 AQS中
    的頭像 發表于 10-13 14:51 ?267次閱讀
    AQS<b class='flag-5'>獨占</b>鎖的獲取
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>