CHI trans简介--Retry

总目录:

CHI协议简读汇总-优快云博客

Retry trans flow

  • CHI协议提供了一种retry机制,来保证当一比请求到达completer时,要么被accept, 要么complter发送一个RetryAck, 来防止REQ channel被block;
  • PrefetchTgt transaction不能retry;
  • 对于requester来讲,它必须将刚刚发送的所有的信息保存下来,直到接收到这个请求,要么被接收,要么被retry;
  • 除了PrefetchTgt, the AllowRetry field must be asserted the first time a transaction is sent。
  • completer这一侧,当如下场景下,会进行retry:
    • has limited resources and insufficient storage to hold the current request;
    • until some earlier transactions have completed.

  • requester发送一个请求,该请求没有protocol credit(P-Credit); 也就是说,该请求不保证completer一定能够接收该trans;
  • completer返回一个retry resp, RetryAck, 给到Requester;
  • completer再发送一个protocol credit grant, PCrdGrant, 给到Requester;
    • 典型场景下,是希望先发送,或者收到RetryAck,然后再是PCrdGrant;
    • 但是允许这两个响应按照任意顺序发送或者接收
  • requeset有两种处理retry的方式:

       

一些特殊的命令处理

  • CopyBack的写操作如果被retry了,在这个过程中,其数据被其他人snoop了:
    • 要么发送pcrd-return, 将这个pcrd返回;
    • 要么继续发送copyback的命令,allowretry==0, dataresp改成CopyBackWrData_I;
  • The transaction that is resent must have the same field values as the original request, except when the field is inapplicable or is one of the following;(此处不描述)
  • 对于某个transaction, 没有固定的pcrd与之对应;
    • pcrd有16种类型,completer可以将不同的资源,使用不同的pcrd;
    • 例如,某一种pcrd与read trans的资源绑定;
    • 某一种pcrd与write trans的资源绑定;

在等待对应pcrd的request到来的过程种,如果其他的命令来了怎么办?

  • 其他的命令如果是第一次来,那么此时肯定是没有resource处理这个命令的,所以此时直接retry这个请求即可;
  • 如果是第二次来,那么一定是有了pcred, 所以一定是能接收的;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值