PCTarget Initiated Termination

一、背景

PCI传输都是主设备发起,然后从设备相应。但是当某些时候从设备发现自己忙着暂时来不及处理、或者处理一半时候发现后边req来得太快了暂时不能处理、或者从设备遇到了一个致命的错误不能完成这个req,就需要报告给主设备,让主设备稍后重传或者放弃传输。

二、3种Termination方式

1. Retry

(1)定义:在cmd周期结束后的第一个数据周期,收到命令的从设备发现自己忙着,暂时没办法处理,则向主设备报告。

(2)触发方式:STOP# assert,TRDY# deassert。

(3)处理方式:主设备在等待一定时间(时间应该遵从spec)后会重新发起这一笔相同的req(比如地址相同)。

2. Disconnect

(1)定义:在数据周期开始数据已经burst传递了若干比,此时从设备来不及处理后续的req,则向主设备报告。

(2)触发方式:

  • Disconnect with data:在从设备assert STOP#信号后,还能再传输最后一笔data:assert TRDY#,assert STOP#。
  • Disconnect without data:在从设备assert STOP#信号后,不能再传输data:deassert TRDY#,assert STOP#。

    PS:为什么要区分这两种方式:为了方便硬件设计灵活,某些状态机能很快结束掉,具体使用哪种这是由硬件决定的。

(3)处理方式:主设备等待一定时间(时间应该遵从spec)后会继续进行data传输,但是地址是从上一次req结束的位置,主设备会记录这一位置,不需要重新传输已经传输的内容。

3. Target Abort

(1)定义:从设备遇到了严重错误,认为不能继续处理,就终止。

(2)触发方式:deassert DEVSEL#,assert STOP#。

(3)处理方式:主设备不会再发这一笔给从设备。

三、几个重要疑问:

1.Retry和Disconnect有什么区别?

答:Retry不进行数据传递而Disconnect会进行,都支持重新传输,但Disconnect会从断点处续传而Retry重新开始。

2. Retry和Disconnect后是否释放总线占用权?

答:按照正常的仲裁进行,但是下一次重新占用后,会重新进行上一次的传输。

3. Termination后支持中断吗?

答:Retry和Disconnect不需要中断,因为有机制处理,但是Target Abort有可能需要,这根据硬件的设计而决定,如果需要让软件知道就触发中断,如果硬件自己处理不需要让软件知道则不需要触发。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值