一致性协议理解:保序与order

  1. Order使用背景

1)除非特别要求,对Normal memory、Device RE的访问,同地址保序即可;

2)对Device nRE\Device nRnE的访问,需要对空间访问保序;

3)CHI中,互联不保证顺序,从相同channel发布的命令不一定按照相同顺序到达HN。

问题:那么CHI如何解决transaction顺序问题?

CHI中提供Comp、CompAck、Order这3种mechanism解决顺序问题,下文分别描述。

  1. Comp mechanism
    1. Comp如何传递?

为了解决顺序问题,CHI协议要求Comp满足:“A completion guarantees that the request has reached a PoS or a PoC, where it will be ordered with respect to requests to the same address from any Requester in the system.-P146”。即Completer发布Comp意味着transaction到达下一保序节点,将按照接收transaction的顺序进行处理。接下来,只要保证Completer接收顺序与Requester发布顺序一致即可。

1)在Requester侧,仅当收到Comp之后,再发布同地址/同地址范围的访问;

2)在Completer侧,当transaction到达保序节点(PoS)后,回Comp。(具体见2.4节)

    1. Transaction与Comp

不同transaction的Comp根据访问地址类型,具有不同的含义,具体如下:

    1)读访问Noncacheable/Device地址空间时,CompData确保transaction对后续同一地址段(endpoint address range,impdef,from any agent)的transaction可见

    2)读访问Cacheable地址空间时,CompData确保transaction对后续同一地址(location,from any agent)的transaction可见

    3)Dataless transaction(仅可访问Cacheable地址空间),Comp确保transaction对后续同一地址(location,from any agent)的transaction可见

    4)写、Atomic访问Noncacheable/Device nRnE/Device nRE 地址空间时,Comp/CompData确保transaction后续对后续同一地址段(endpoint address range,impdef,from any agent)的transaction可见

5)写、Atomic访问Cacheable/Device RE 地址空间时,Comp/CompData确保transaction对后续同一地址(location,from any agent)的transaction可见

总结规律:若是memory attribute为Device nR*,来自同一agent的去往相同address range的transaction将按照接收顺序进行处理。否则,来自同一agent的相同地址将按照接收顺序进行处理;(备注,读访问不受nR控制?)

    1. Comp什么时候发布?

对于Write:Comp表示该笔传输对其他RN是observable的(收到Comp之后,假如其他RN发布相同地址的读传输,那么读到的一定是该笔传输的数据),因此:

1)对于WriteNoSnp,不需要snoop其他RN,HN收到transaction即可返回Comp (This flow example shows Comp is sent after CompDBIDResp is received from SN-F. However, HN-F is permitted to send Comp anytime after it receives the WriteNoSnp request from RN-F0.-P192)

 

备注:思考Write的Comp:EWAEarly Write Acknowledgement,表示Write Completion Response是否可以从中间节点提前返回。如果EWA=0,则Write Completion Response必须从Endpoint节点返回后中间节点才能返回。因此上图中如果EWA=0,则HN向RN发送Comp时必须等待收到SN返回的CompDBIDResp. 除*NoSnp、Atomic外的所有传输EWA必须为1.

2)对于WriteUnique,HN必须收到所有snoop resp之后才能返回Comp(因为Comp必须保证别的RN中的cache已经被invalid,之后读到的是新数据);

 

3)对于CopyBack,因为Comp与DBIDResp必须合并为CompDBIDResp发送,因此必须等到DataBuffer可用后返回&#

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值