《AMBA 5 CHI Architecture Specification》
AMBA-CHI协议详解(一)
AMBA-CHI协议详解(二)
AMBA-CHI协议详解(三)
AMBA-CHI协议详解(四)
文章目录
- 2.3.2 Write transactions
- 2.3.2.1 Immediate Write
- 2.3.2.2 Write Zero
- 2.3.2.3 CopyBack Write
- 2.3.2.4 Combined Immediate Write and CMO
- 2.3.2.5 Combined Immediate Write and Persist CMO
- 2.3.2.6 Combined CopyBack Write and CMO
2.3.2 Write transactions
写事务分为以下几类:
● Immediate Write
● Write Zero
● CopyBack Write
● Combined Immediate Write and CMO
● Combined Immediate Write and Persist CMO
● Combined CopyBack Write and CMO
2.3.2.1 Immediate Write
Immediate Write顺序如下:
事务从RN向HN发出 Immediate Write请求开始。
Immediate Writ包含:
— WriteNoSnpPtl
— WriteNoSnpFull
— WriteNoSnpDef
— WriteUniquePtl
— WriteUniqueFull
— WriteUniquePtlStash
— WriteUniqueFullStash
为完成这些事务而生成的Snoop请求被视为独立于Home的事务,不会显示在此flow中。生成到SN(不属于DWT流)的写请求视为独立事务,不会再此flow中显示。
请求包含以下影响事务流的字段:
— ExpCompAck
— TagOp
Home可以选择使用DWT或不使用DWT来完成事务。事务流的其余部分还取决于原始请求是否需要CompAck,由ExpCompAck字段确定。
1.DWT
Home使用DWT(写数据直接由RN到SN)
● 事务从RN向HN发出 Immediate Write请求开始。
● Home发送一个下行写请求,WriteNoSnpPtl, WriteNoSnpFull,或WriteNoSnpDef(DoDWT域段 = 1)到SN。
● SN向RN返回DBIDResp响应。
● RN发送写数据NCBWrData或取消数据WriteDataCancel到SN。(RN必须在接收到DBIDResp响应后才能发送)
● SN向HN返回一个Comp响应。允许(但不是必需的)SN在将Comp返回到Home之前等待来自RN的写数据。
● HN向RN返回一个Comp响应。允许Home在将Comp返回给RN之前等待SN的Comp,但这不是必需的。
● 可选地,当请求需要TagMatch响应时,SN将tag match响应TagMatch返回给请求者。在返回TagMatch之前等待写数据是允许的,但不是必需的。
2. No DWT, no CompAck
对于不需要CompAck,Home不使用DWT的情形
● Home有两种选择,可以将完成响应和数据请求响应发送给RN。
Alt 2a1. Separate responses from the Home
● HN向RN返回DBIDResp或DBIDRespOrd响应。
● HN向RN返回Comp响应。允许(但不是必须)在返回Comp之前等待写数据。
Alt 2a2. Combined responses from the Home
● HN向RN返回一个合并的响应CompDBIDResp。
● RN向HN发送写数据NCBWrData或取消数据WriteDataCancel。RN必须在接收到DBIDResp, DBIDRespOrd, or
CompDBIDResp相应之后才能发送数据。
● 当请求需要TagMatch响应时,Home有两种选择。
Alt 2b1. TagMatch from Home
● HN向RN返回一个TagMatch响应。在返回TagMatch之前等待写数据是允许的,但不是必需的。
Alt 2b2. TagMatch from Subordinate
● HN向SN发送一个下行的写请求WriteNoSnpPtl或WriteNoSnpFull(DoDWT域段为0)。SN有两种选择发送返回数据请求DBID和完成响应Comp。
Alt 2b2a. Separate responses from the Subordinate
● SN返回DBIDResp响应至HN。
● SN返回Comp响应至HN。允许(但不是必需的)SN在将Comp返回到Home之前等待从Home写入数据。
Alt 2b2b. Combined response from the Subordinate
● SN向HN返回一个组合响应CompDBIDResp。
● HN向SN发送写数据NCBWrData或取消数据WriteDataCancel。Home必须在接收到DBIDResp或CompDBIDResp后才发送此消息。
● SN向RN返回TagMatch响应。在返回TagMatch之前等待写数据是允许的,但不是必需的。
3. No DWT, with CompAck
对于需要完成确认(CompAck)的请求,Home不使用DWT的情形:
● Home有两种选择,可以将完成响应和数据请求响应返回给Requester。
Alt 3a1. Separate responses from the Home
● HN向RN返回DBIDResp或DBIDRespOrd响应。
● HN向RN返回Comp响应。允许(但不是必须)在返回Comp之前等待写数据。
Alt 3a2. Combined responses from the Home
● HN向RN返回一个组合的CompDBIDResp响应。
● RN有两种选择发送写数据CompAck到Home。
Alt 3b1. Separate responses from the Requester
● RN向HN发送写数据NCBWrData或数据取消WriteDataCancel。RN必须在接收到DBIDResp、DBIDRespOrd或CompDBIDResp后才发送此消息。
● 发送一个完成确认指示CompAck。RN只有在收到Comp或CompDBIDResp后才能发送此消息。允许,但不是必须,在发送CompAck之前等待DBIDResp或DBIDRespOrd。允许(但不期望)在返回CompAck之前等待TagMatch。
Alt 3b2. Combined responses from the Requester
● RN向Home发送一个组合的写数据和完成确认(NCBWrDataCompAck)。RN必须只在收到CompDBIDResp或同时收到DBIDResp/DBIDRespOrd和Comp之后才发送此消息。
● 可选地,当请求需要TagMatch响应时,Home有两种返回响应的选择
Alt 3c1. TagMatch from Home
● Home将tag匹配响应TagMatch返回给RN。在返回TagMatch之前等待写数据是允许的,但不是必需的。
Alt 3c2. TagMatch from Subordinate
● Home向SN发送一个下行写请求,WriteNoSnpPtl或WriteNoSnpFull( DoDWT域段 = 0)。SN有两种选择,可以向Home返回数据请求和完成响应。
Alt 3c2a. Separate responses from Subordinate
● SN向HN返回DBIDResp响应。
● SN向HN返回Comp响应。允许(但不是必须)下级在将Comp发送到HN之前等待写数据。
Alt 3c2b. Combined response from Subordinate
● SN向HN返回一个组合响应CompDBIDResp响应。
● HN向SN发送写数据NCBWrData或写数据取消WriteDataCancel。Home必须在接收到DBIDResp或CompDBIDResp后才发送此消息。
● SN向RN返回TagMatch响应。在返回TagMatch之前等待写数据是允许的,但不是必需的。
允许Write事务的Completer在接收到WriteDataCancel响应后立即返回Comp响应,而不依赖于写请求的处理或由于写而发送的任何snoops的完成。
2.3.2.2 Write Zero
● 事务从RN向HN发出 Write Zero请求开始。
Write Zero transactions有:
— WriteUniqueZero
— WriteNoSnpZero
● Home有两种选择,可以将完成响应和数据请求响应发送给RN。
1. Separate response from Home
● HN向RN返回DBIDResp或DBIDRespOrd。
● HN向RN返回一个Comp。
2. Combinedresponse from Home
● Home向RN返回一个合并的数据请求和完成响应(CompDBIDResp)。
2.3.2.3 CopyBack Write
● 事务从RN向HN发出CopyBack Write请求开始。
CopyBack Write transactions有:
— WriteBackPtl
— WriteBackFull
— WriteCleanFull
— WriteEvictFull
— WriteEvictOrEvict
请求包含以下影响事务流的字段:
— CAH
— Opcode
● Home可以选择使用Comp或CompDBIDResp响应来完成事务。来自Home的响应的选择由请求类型和CAH值决定。
1. WriteEvictOrEvict or CopyAtHome request
请求为WriteEvictOrEvict或者请求中的CAH位值被设置为1。
● Home有两个可选的响应返回给RN:
Alt 1a. Without data transfer
● Home向RN返回一个完成响应Comp,以避免数据传输。
● RN发送一个完成确认,CompAck。无论原始请求中的ExpCompAck值是多少,请求方都必须在收到comp响应之后发送此消息。
Alt 1b. With data transfer
● Home向RN返回一个合并的响应(CompDBIDResp)。
● RN将写数据CopyBackWrData发送到Home。RN只有在收到CompDBIDResp响应后才能发送此消息。
2.Not WriteEvictOrEvict and not CopyAtHome request
该请求不是WriteEvictOrEvict,并且该请求中的CAH位值被设置为0。
● Home向RN发送一个合并的响应CompDBIDResp。
●RN将写数据CopyBackWrData发送到Home。RN只有在收到CompDBIDResp响应后才能发送此消息
2.3.2.4 Combined Immediate Write and CMO
Combined Immediate Write with CMO transactions 的顺序是:
● 事务从RN向HN发出 Combined Write and CMO请求开始。
Combined Immediate Write and CMO transactions 有
— WriteNoSnpPtlCleanInv
— WriteNoSnpPtlCleanSh
— WriteNoSnpFullCleanInv
— WriteNoSnpFullCleanSh
— WriteUniquePtlCleanSh
— WriteUniqueFullCleanSh
— WriteNoSnpPtlCleanInvPoPA
— WriteNoSnpFullCleanInvPoPA
为完成这些事务而生成的Snoop请求被视为独立于Home的事务,不会显示在此 flow中。生成到下游SN(不属于DWT流)的写请求被视为独立事务,不会在此 flow中显示。
请求包含以下影响事务流的字段:
— Opcode
— ExpCompAck
—Note———————
在Combined Immediate Write and CMO transaction中不允许Match的TagOp值,因此不允许TagMatch响应,并且TagOp字段不影响事务流
——————————
● 为了完成事务,Home有三种选择:
— Combined Write to Subordinate with DWT
— Non-combined Write to Subordinate with DWT
— Without DWT
● 事务流的其余部分也将取决于原始请求是否需要完成确认(由ExpCompAck确定)。
1.Combined Write to Subordinate with DWT
Home使用组合写入和DWT。
● Home向SN发送一个DoDWT = 1的下行组合写请求。
● SN向HN返回DBIDResp响应。
● RN向SN发送写数据NCBWrData或取消数据WriteDataCancel。RN必须在接收到DBIDResp后才发送此消息
● SN向HN返回一个Comp响应。允许(但不是必需的)SN在将Comp返回到Home之前等待来自RN的写数据。
● HN向RN返回一个Como响应。允许Home在将Comp返回给RN之前等待从属的Comp,但这不是必需的。
● SN向Home返回一个CMO完成响应CompCMO。允许SN在将CompCMO返回到Home之前等待来自RN的写数据,但这不是必需的。
● HN向RN返回一个CMO完成响应(CompCMO)。在将CompCMO返回给RN之前,Home是允许的,但不是必需的,等待从SN的Comp或CompCMO。如果Home的下游有一个观察者(observer),那么Home必须等待从SN的CompCMO响应,然后再将CompCMO返回给RN。
2. Non-combined Write to Subordinate with DWT
Home使用Non-combined Write和DWT。
● HN向SN发送一个下行的WriteNoSnpPtl或WriteNoSnpFull(DoDWT域段 = 1 )。
● SN向RN返回DBIDResp。
● RN向SN发送写数据NCBWrData或取消数据WriteDataCancel。RN必须在接收到DBIDResp后才发送此消息
● SN向Home返回一个完成响应Comp。允许(但不是必需的)SN在将Comp返回到Home之前等待来自RN的写数据。
● HN向RN返回一个完成响应Comp。允许Home在将Comp返回给RN之前等待SN的Comp,但这不是必需的。
● HN向RN返回一个CMO完成响应(CompCMO)。允许Home在将CompCMO返回给RN之前等待SN的Comp,但这不是必需的。
3.No DWT
● Home不使用DWT。
● Home有两种方法来请求写数据。
Alt 3a1. Separate responses from Home
● 向RN返回DBIDResp或DBIDRespOrd响应。
● 向RN返回一个Comp响应。允许(但不是必须)在返回Comp之前等待写数据。
Alt 3a2. Combined response from Home
● Home向RN返回一个合并的数据请求和完成响应(CompDBIDResp)。
● 根据事务是否需要完成确认,RN有几种发送写数据的备选方案。
Alt 3b1. No CompAck required
● 不需要完成确认(CompAck),RN向Home发送写数据(NCBWrData)或写取消(WriteDataCancel)。RN必须在接收到DBIDResp、DBIDRespOrd或CompDBIDResp后才发送此消息。
Alt 3b2. Separate response from Requester
● CompAck是必需的。RN有两种选择发送写数据和完成确认到Home。
Alt 3b2a. Separate response from Requester
● RN向Home发送写数据NCBWrData或写取消WriteDataCancel。RN必须在接收到DBIDResp、DBIDRespOrd或CompDBIDResp后才发送此消息。
● RN向HN发送CompAck。RN只有在收到Comp或CompDBIDResp后才能发送此消息。不允许在发送CompAck之前等待CompCMO。
Alt 3b2b. Combined response from Requester
● RN向Home发送一个组合的写数据和完成确认(NCBWrDataCompAck)。RN必须只在收到CompDBIDResp或同时收到DBIDResp/DBIDRespOrd和Comp之后才发送此消息。
● Home向RN返回一个CMO完成响应(CompCMO)。允许Home在返回CompCMO之前等待来自RN的写数据,但这不是必需的。
2.3.2.5 Combined Immediate Write and Persist CMO
Combined Immediate Write and Persist CMO事务的顺序是:
● 事务开始于Requester 向Home发出Combined Immediate Write and Persist CMO请求。
Combined Immediate Write and Persist CMO事务有:
— WriteNoSnpPtlCleanShPerSep
— WriteNoSnpFullCleanShPerSep
— WriteUniquePtlCleanShPerSep
— WriteUniqueFullCleanShPerSep
请求包含以下影响事务流的字段:
— Opcode
— ExpCompAck
——Note—数字硬鉴———
在 Combined Immediate Write and Persist CMO事务中不允许Match的TagOp值,因此不允许TagMatch响应,并且TagOp字段不影响事务流。
————————————
● Home可以选择使用以下方式完成事务:
— Combined Write to the Subordinate with DWT
— Combined Write to the Subordinate with DWT
— Combined Write to the Subordinate with DWT
注意:事务流的其余部分将取决于原始请求是否需要CompAck,由ExpCompAck字段确定。
1.Combined Write to Subordinate with DWT
● Home向SN发送一个 DoDWT = 1的组合写请求。
● SN向Requester返回一个DBIDResp响应。
● RN向SN发送写数据NCBWrData或发送数据取消WriteDataCancel。
(RN必须在收到DBIDResp响应之后再发出)
● SN向HN返回一个Comp响应。
(允许(但不是必需的)SN在将Comp返回到Home之前等待来自RN的写数据。)
● Home向RN返回一个完成响应Comp。
(允许Home在将Comp返回给RN之前等待来自SN的Comp,但这不是必需的)
● SN向Home返回一个CMO完成响应CompCMO。
(允许SN在将CompCMO返回到Home之前等待来自RN的写数据,但这不是必需的。)
● Home向RN返回一个CMO完成响应(CompCMO)。
(在将CompCMO返回给RN之前,Home是允许但不是必需的,等待从SN的Comp或CompCMO。如果Home节点的下游有观察者,那么Home节点必须等待SN的CompCMO响应,然后再将CompCMO返回给RN。)
● SN向RN返回persist响应。
(在返回Persist之前等待写数据是允许的,但不是必需的。)
2.Non-combined write to Subordinate with DWT
● Home向SN发送一个下行的non-combined write request写请求,WriteNoSnpPtl或WriteNoSnpFull,DoDWT = 1 。
● SN向RN返回一个响应(DBIDResp)。
● RN向SN发送写数据NCBWrData或取消数据WriteDataCancel。
RN必须在接收到DBIDResp后才发送此消息。
● SN向Home返回一个完成响应Comp。
允许(但不是必需的)SN在将Comp返回到Home之前等待来自RN的写数据。
● Home向RN返回一个完成响应Comp。
允许Home在将Comp返回给RN之前等待SN的Comp,但这不是必需的。
● Home有两种选择将CMO响应发送给请求者。
Alt 2a. Persist CMO to Subordinate
● Home向SN发送一个下游请求,CleanSharedPersistSep。
● SN向Home返回一个完成响应Comp。
● Home向RN返回一个CMO完成响应(CompCMO)。
如果Home的下游有一个观察者,那么Home必须等待从SN的Comp响应,然后再将CompCMO返回给RN。
● SN向RN返回persist响应。
Alt 2b. No CMO to Subordinate as part of transaction
Home将所有的CMO响应发送给RN。Home有两种选择
Alt 2b1. Separate responses from Home
● 向RN返回一个CMO完成响应(CompCMO)。
● 向RN返回persist响应。
Alt 2b2. Combined response from Home
● Home向RN返回一个合并的完成响应CompPersist。
3.No DWT
Home不使用DWT。
● Home有两种方法来请求写数据。
Alt 3a1. Separate responses from Home
● 向RN返回一个数据请求,DBIDResp或DBIDRespOrd。
● 向RN返回一个完成响应Comp。
允许(但不是必须)在返回Comp之前等待写数据。
Alt 3a2. Combined response from Home
● Home向RN返回一个合并的数据请求和完成响应(CompDBIDResp)。
● 根据事务是否需要CompAck,RN有几种发送写数据的备选方案。
Alt 3b1. No CompAck required
RN向Home发送写数据NCBWrData或写取消WriteDataCancel。
RN必须在接收到DBIDResp、DBIDRespOrd或CompDBIDResp后才发送此消息
Alt 3b2. CompAck required
需要一个完成确认响应(CompAck)。RN有两种选择发送写数据和CompAck到Home。
Alt 3b2a. Separate response from Requester
● 向Home发送写数据NCBWrData或写取消WriteDataCancel。
RN必须在接收到DBIDResp、DBIDRespOrd或CompDBIDResp后才发送此消息。
● 发送一个完成确认(CompAck)到Home。
RN只有在收到Comp或CompDBIDResp后才能发送此消息。
不允许在发送CompAck之前等待CompCMO或Persist。
Alt 3b2b. Combined response from Requester
RN向Home发送一个组合的写数据和完成确认(NCBWrDataCompAck)。
RN 必须只在接收到CompDBIDResp或同时接收到DBIDResp/DBIDRespOrd和Comp之后才发送此消息。
在发送NCBWrDataCompAck之前,不允许等待CompCMO或Persist。
● Home有几个替代方案来完成事务的剩余部分。
Alt 3c1. Combined Write without DWT to Subordinate
● HN向SN发送一个不带DWT的组合写操作
● SN有两种选择来请求写数据。
Alt 3c1a. Separate responses from Subordinate
● 将数据请求(DBIDResp)返回到Home
● 向Home返回一个完成响应Comp。
允许(但不是必须)在返回Comp之前等待写数据。
Alt 3c1b. Combined response from Subordinate
SN向Home返回一个合并的数据请求和完成响应CompDBIDResp。
● Home向SN发送写数据NCBWrData或取消数据WriteDataCancel。
Home必须在接收到DBIDResp或CompDBIDResp后才发送此消息。
●SN向Home返回一个CMO完成响应CompCMO。
在返回CompCMO之前等待写数据是允许的,但不是必需的
● Home向RN返回一个CMO完成响应(CompCMO)。
允许Home在将CompCMO返回给RN之前等待从SN发出的CompCMO,但这不是必需的。
● SN向RN返回persist响应。
在返回Persist之前等待写数据是允许的,但不是必需的。
Alt 3c2. All CMO transactions from Home
Home有两种选择将所有CMO响应发送给RN。
Alt 3c2a. Separate responses from Home
● 向RN返回一个CMO完成响应(CompCMO)。
● 向RN返回persist响应。
Alt 3c2b. Combined response from Home
Home向RN返回一个合并的响应CompPersist。
Alt 3c3. Only CMO transactions to Subordinate
● Home向SN发送一个下游请求,CleanSharedPersistSep。
通常,只有在先前作为独立事务发送了对SN的写操作的情况下,才会使用这种替代方法。
● SN向Home返回一个完成响应Comp
● Home向RN返回一个CMO完成响应(CompCMO)。
如果Home的下游有一个观察者,那么Home必须等待从SN的Comp响应,然后再将CompCMO返回给RN。
● SN向RN返回persist响应。
2.3.2.6 Combined CopyBack Write and CMO
请求包含以下影响事务流的字段:
Opcode
CAH
1. Without Persist
Combined CopyBack Write and CMO transactions without persist事务有以下:
● WriteBackFullCleanInv
● WriteBackFullCleanSh
● WriteCleanFullCleanSh
● WriteBackFullCleanInvPoPA
RN发出以上事务请求
● RN向Home发出请求。
Alt 1a1. CopyAtHome request
请求中的CAH位值设置为1。
Home有两个可选的响应返回给RN
Alt 1a1a. Without data transfer
● Home向RN返回一个完成响应Comp,以避免数据传输。
● RN发送一个完成确认,CompAck。
无论原始请求中的ExpCompAck值是多少,RN都必须在收到comp响应之后发送此消息。
Alt 1a1b. With data transfer
● Home向请求者返回一个合并的数据请求和完成响应(CompDBIDResp)。
● RN将写数据CopyBackWrData发送到Home。
RN只有在收到CompDBIDResp响应后才能发送此消息。
Alt 1a2. No CopyAtHome request
请求中的CAH位值设置为0。
● Home向RN发送一个合并的数据请求和完成响应CompDBIDResp。
● RN将写数据CopyBackWrData发送到Home。
RN只有在收到CompDBIDResp后才能发送此消息。
● Home向RN返回一个CMO完成响应(CompCMO)。
在返回CompCMO之前,允许(但不是必须)等待CopyBackWrData或CompAck。
1. With Persist
CopyBack写和CMO合并事务是:
● WriteBackFullCleanShPerSep
● WriteCleanFullCleanShPerSep
RN发出Combined CopyBack Write and CMO request with Persist response
● RN向Home发出请求。
Alt 2a1. CopyAtHome request
请求中的CAH位值设置为1。
Home有两个可选的响应返回给RN:
Alt 2a1a. Without data transfer
● Home向RN返回一个完成响应Comp,以避免数据传输。
● RN发送一个完成确认,CompAck。
无论原始请求中的ExpCompAck值是多少,RN都必须在收到compp响应之后发送此消息。
Alt 2a1b. With data transfer
● Home向RN返回一个合并的数据请求和完成响应(CompDBIDResp)。
●RN将写数据CopyBackWrData发送到Home。
RN只有在收到CompDBIDResp响应后才能发送此消息。
Alt 2a2. No CopyAtHome request
请求中的CAH位值设置为0。
● Home向RN发送一个合并的数据请求和完成响应CompDBIDResp。
● RN将写数据CopyBackWrData发送到Home。
RN只有在收到CompDBIDResp后才能发送此消息。
Home有三种选择来完成事务,persist响应要么来自Home,要么来自SN。
Alt 2b1. Persist from Home
Home有两种选择来发送CMO完成响应和persist响应。
允许Home在返回CompCMO、Persist或CompPersist之前等待CopyBackWrData或CompAck,但不是必需的。
Alt 2b1a. Separate response from Home
● 向RN返回一个CMO完成响应(CompCMO)。
● 向RN返回persist响应。
Alt 2b2b. Combined response from Home
Home向RN返回一个组合的CMO完成响应和持久响应CompPersist。
Alt 2b2. Persist from Subordinate
当一个Combined Write被发送给下级,并且Persist响应被返回给RN时,会发生以下情况:
● Home向SN发送一个下行写请求WriteNoSnpPtlCleanShPerSep或WriteNoSnpFullCleanShPerSep。
允许Home在发送下行写请求之前等待CopyBackWrData或CompAck,但不是必需的。
● SN有两种选择,可以将完成响应和数据请求响应返回给Home。
Alt 2b2a. Separate response
● 将DBIDResp响应返回到Home。
● 向Home返回一个完成响应Comp。
允许(但不是必须)在返回Comp之前等待写数据。
Alt 2b2b. Combined response
SN向Home返回一个合并的数据请求和完成响应CompDBIDResp。
● Home向SN发送写数据NCBWrData或取消数据WriteDataCancel。
Home必须在接收到DBIDResp或CompDBIDResp后才发送此消息。
● SN向Home返回一个CMO完成响应CompCMO。
在返回CompCMO之前等待写数据是允许的,但不是必需的。
● Home向RN返回一个CMO完成响应(CompCMO)。
允许Home在将CompCMO返回给RN之前等待从SN发出的CompCMO,但这不是必需的。
● SN向RN返回persist响应。
在返回Persist之前等待写数据是允许的,但不是必需的。
Alt 2b3. Only CMO transaction to Subordinate
当一个 persist CMO 被发送给SN并且Persist响应被返回给RN时,会发生以下情况:
● Home向SN发送一个下游请求,CleanSharedPersistSep。
通常,只有在先前作为独立事务发送对SN的写操作或写入操作已被取消的情况下,才会使用此替代方法。
● SN向Home返回一个完成响应Comp。
● Home向RN返回一个完成响应CompCMO。
如果Home的下游有一个观察者,那么Home必须等待从SN的Comp响应,然后再将CompCMO返回给RN。
● SN向RN返回持久响应persist。