在AMBA AHB传输过程中,slave使用信号HRESP[1:0]返回当前传输的状态:
OKAY表示当前传输正常,当HREADY变高时传输已成功完成。
ERROR表示发生了传输错误,且传输失败。
RETRY 和SPLITRETRY和SPLIT传输响应都表明传输无法立即完成,总线应继续尝试传输。在正常操作中,在arbiter 允许另一个master可以访问总线之前,当前master应该完成特定burst中的所有传输。然而为了避免某个master未完成的burst传输占据比较大延迟,arbiter有可能中断burst传输。在这种情况下,master必须对总线重新申请仲裁,以完成剩余的burst请求。
需要大量处理周期的AHB slave都可以使用SPLIT和RETRY响应,以避免在数据尚未准备好之前stall住总线,但同时也需要告诉master下一次重新发起传输请求。
RETRY和SPLIT之间的区别在于,SPLIT 响应告诉AHB仲裁器给予所有其他master仲裁高优先级直到SPLIT 传输可以完成,防止其他master被饿死。而RETRY响应只告诉AHB仲裁器将优先级给更高优先级的master,不会排除返回SPLIT 响应的master。
SPLIT响应的实现比RETRY更复杂,但其优点是总线带宽实现最大效率。对于SPLIT 响应和RETRY响应,master的行为是相同的,都需要取消下一次的数据访问,并且重试当前的访问。
当然,对于只支持一个master的AHB-lite协议的设计中不支持SPLIT和RETRY 响应,因为这些设计只支持一个master。
作者:XinXinHu
原文链接:https://mp.weixin.qq.com/s/yOVmhKyfvYfAQXWFzS0MCQ
微信公众号:
授权转自数字芯片实验室公众号,请勿二次转载。
推荐阅读
更多数字IC设计技术干货等请关注数字芯片实验室专栏。