AHB中split机制简介
2015-08-18 11:36
615 查看
完整的AHB协议:1)可以多个master,并且需要外加一个Arbiter,和write multiplexor。为了保证每一时刻只有一个master拥有访问权。
2)为了增强pipeline的能力,允许Arbiter将一个未完成的burst中断,grant给另外一个transfer。所以还有两种
trasnfer;RETRY/SPLIT。
Arbitration signals:
HBUSREQ,从master到Arbitration的总线请求信号。
HLOCK,从master到Arbitration的原子操作请求,与AHB-Lite中的lock信号类似。为了保证transfer的完整性。
HGRANT,从Arbitration到master的总线应答信号。
HMASTER,4bit,由master驱动,表示当前拥有总线的master。方便支持SPLIT transfer的slave record此时的master。
HMASTLOCK,由Arbitration发送给slave的lock信号。
HSPLIT,16bit,由slave发出,表示要进行SPLIT transfer,通知Arbitration。
以下是一个Arbitration的响应过程。在GRANT和HREADY都为高时,才表示总线赋予成功.
详见相册。
HRESP信号,2bit,表示OKAY、ERROR外,还可以表示RETRY、SPLIT。同样的RETRY、SPLIT也是2-cycle response。
RETRY和SPLIT的主要区别是,RETRY只是表示这个transfer还没有结束,
但并不会改变Arbitration接下来的调度。
SPLIT会将当前transfer的优先级调低,在slave准备好之后,通过SPLIT信号通知Arbitration,
而后再将优先级调高。
RETRY和SPLIT的会增加slave和Arbitration的设计复杂性,但是对master并没有影响,master应该始终req bus。
SPLIT机制最大限度的利用AHB的总线带宽。却增加了slave和Arbitration的设计复杂性。
2)为了增强pipeline的能力,允许Arbiter将一个未完成的burst中断,grant给另外一个transfer。所以还有两种
trasnfer;RETRY/SPLIT。
Arbitration signals:
HBUSREQ,从master到Arbitration的总线请求信号。
HLOCK,从master到Arbitration的原子操作请求,与AHB-Lite中的lock信号类似。为了保证transfer的完整性。
HGRANT,从Arbitration到master的总线应答信号。
HMASTER,4bit,由master驱动,表示当前拥有总线的master。方便支持SPLIT transfer的slave record此时的master。
HMASTLOCK,由Arbitration发送给slave的lock信号。
HSPLIT,16bit,由slave发出,表示要进行SPLIT transfer,通知Arbitration。
以下是一个Arbitration的响应过程。在GRANT和HREADY都为高时,才表示总线赋予成功.
详见相册。
HRESP信号,2bit,表示OKAY、ERROR外,还可以表示RETRY、SPLIT。同样的RETRY、SPLIT也是2-cycle response。
RETRY和SPLIT的主要区别是,RETRY只是表示这个transfer还没有结束,
但并不会改变Arbitration接下来的调度。
SPLIT会将当前transfer的优先级调低,在slave准备好之后,通过SPLIT信号通知Arbitration,
而后再将优先级调高。
RETRY和SPLIT的会增加slave和Arbitration的设计复杂性,但是对master并没有影响,master应该始终req bus。
SPLIT机制最大限度的利用AHB的总线带宽。却增加了slave和Arbitration的设计复杂性。
相关文章推荐
- 好的积分不等式
- [LeetCode] Linked List Cycle II, Solution
- GIS开发站点收藏
- Uri详解之——Uri结构与代码提取
- 社説 20150818 新国立競技場 「選手第一」の視点を忘れずに
- mt7620 openwrt编译,修改dts文件
- LeetCode Implement Queue using Stacks
- 常用字符串的截取
- 设计模式之创建者模式
- 四种不同的NAT类型
- 整合activiti过程中遇到的一些错误
- Maven 使用指南(1): 概述
- Maven 使用指南(2): 第一个例子Hello World
- LeetCode Implement Queue using Stacks
- tengine 黑白名单
- hdu 1166 敌兵布阵(线段树单点更新,区间查询)
- EGOTableViewPullRefresh实现下拉刷新
- 获取键盘鼠标不动的时间
- 日经社説 20150818 踊り場経済には景気対策でなく改革を
- Msql和SQL server时间类型