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

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

3天內不再提示

【CHI】獨占訪問

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

1. overview

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

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

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

翻譯一下,就是:

Exclusive Load

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

1.獲得想要執(zhí)行exclusive操作序列的地址的數(shù)據;

2.指示LP開始執(zhí)行exclusive sequence;

CPU的行為)

Exclusive Load transaction

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

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

(總線行為)

Exclusive Store

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

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

(CPU的行為)

Exclusive Store transaction

用于描述interface發(fā)送一筆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都必須實現(xiàn)一個exclusive monitor,用于檢查exclusive sequence訪問使用的地址信息。LP在執(zhí)行Exclusive Load時,LP monitor置位;LP monitor在以下情況會復位:

LP收到同地址的invalidating snoop request,表明該地址已經被其它LP更新了;(即:本LP的獨占序列被破壞,獨占訪問失?。?br /> 同一個LP對該地址產生的store(即:本LP的獨占序列完成,獨占訪問成功)。如果store是由同一個LP采用non-exclusive命令產生的,monitor的復位是由實現(xiàn)具體決定的;
PoC monitor:
HN-F必須實現(xiàn)一個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已經執(zhí)行一筆exclusive sequence相關的transaction,然后在其它LP成功的執(zhí)行Exclusive Store transaction之前,該LP先執(zhí)行了Exclusive Store transaction,那么該Exclusive Store transaction必須成功;(意思就是獨占序列沒有被破壞,就獨占訪問成功了)

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

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

1、對于一個LP,如果Exclusive Store transaction執(zhí)行成功,那么該LP在PoC monitor的注冊位不需要被復位,這樣的話,該LP可以繼續(xù)成功執(zhí)行一系列的Exclusive Store transaction,直到其它LP成功執(zhí)行Exclusive Store transaction。對于LP不確定的store transactions,該store transaction必須被處理為來自不同LP的訪問;
2、在系統(tǒng)復位初始化,第一個LP執(zhí)行Exclusive Store transaction可以成功,但是CHI協(xié)議不要求有這個功能。在這點上之后,所有其他LPs必須注冊它們exclusive sequence的開始,才能讓它們后續(xù)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的失敗導致的風險,需要比較的地址位數(shù)由具體實現(xiàn)決定的。
當使用額外地址比較的monitor,在exclusive sequence(Load Exclusive or Store Exclusive)的最開始,監(jiān)控的地址需要被記錄下來。只有在其它地址匹配的LP成功的Exclusive Store transaction才會將其復位;
包含額外地址比較的monitor仍然包含最小1bit monitor用于監(jiān)控每個支持Exclusive能力的LP。
在以下條件發(fā)生時,Exclusive Store transaction才允許繼續(xù)進行:

地址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之前,需要實現(xiàn)PoC monitor

2.4Non-snoopable memory location

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

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

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

PoS : Point of Serialization

PoC : Point of Coherence

3. Exclusive transactions

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

Exclusive操作的通訊節(jié)點對有:

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必須通過響應來告知通過還是失敗:

? 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操作的地址,執(zhí)行Exclusive Store是否會將數(shù)據更新到地址中是由具體實現(xiàn)決定的;
CHI協(xié)議建議不要對不支持Exclusive訪問的地址發(fā)送Exclusive Store transaction。

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

如果響應為shared cache狀態(tài),則表示獨占訪問失?。?/p>

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

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

3.2 System responsibility

使用CHI協(xié)議實現(xiàn)的系統(tǒng)必須遵循以下原則:

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

3.3 Exclusive accesses to Snoopable locations

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

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

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

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

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

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

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

Exclusive access的地址必須和transaction總的bytes數(shù)對其;
Exclusive access傳輸總的bytes數(shù)目必須是合法數(shù)據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數(shù)是transaction size決定的。System monitor可以監(jiān)控更大的bytes范圍,最多可達Exclusive access的最大size 64。然而,這樣可能導致成功的Exclusive訪問被認為是失敗的,由于在exclusive傳輸過程中,相鄰byte被改寫了。
多個訪問Non-snoopable memory地址的Exclusive transactions,不管是寫還是讀,是同一個地址還是不同地址,來自同一個LP的必須不能同時outstanding發(fā)送。
如果SN通過Exclusive ReadNoSnp的響應返回Exclusive Fail表示不支持Exclusive訪問,那么如果寫操作返回的是Exclusive Fail響應,其寫數(shù)據仍然會被更新到地址的存儲空間;
如果SN通過Exclusive ReadNoSnp的響應返回Exclusive Pass表示支持Exclusive訪問,那么如果寫操作返回的是Exclusive Fail響應,其寫數(shù)據不會被更新到地址的存儲空間。

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

    關注

    68

    文章

    19100

    瀏覽量

    228814
  • PoC
    PoC
    +關注

    關注

    1

    文章

    67

    瀏覽量

    20474
  • cache技術
    +關注

    關注

    0

    文章

    41

    瀏覽量

    1043
收藏 人收藏

    評論

    相關推薦

    CHI架構的基礎知識

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

    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
    發(fā)表于 10-21 22:28

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

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

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

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

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

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

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

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

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

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

    AMBA CHI協(xié)議介紹

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

    AMBA 5 CHI架構規(guī)范

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

    SoC Designer Plus AMBA CHI協(xié)議包的用戶指南

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

    Nokia_PC_Suite_67_rel_22_chi_s

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

    MP3_chi數(shù)據手冊

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

    SUPER_ROBO-EYE_Chi參數(shù)

    SUPER_ROBO-EYE_Chi參數(shù)
    發(fā)表于 01-04 13:57 ?0次下載

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

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

    AQS獨占鎖的獲取

    AQS提供了兩種鎖,獨占鎖和共享鎖。獨占鎖只有一把鎖,同一時間只允許一個線程獲得鎖;而共享鎖則有多把鎖,同一時間允許多個線程獲得鎖。我們本文主要講獨占鎖。 一. 獨占鎖的獲取 AQS中
    的頭像 發(fā)表于 10-13 14:51 ?428次閱讀
    AQS<b class='flag-5'>獨占</b>鎖的獲取