AMBA——总线仲裁

来源:

在一篇中文期刊上看到的。

1. AHB仲裁器信号:

 

 

2. 仲裁过程包括四个基本步骤:

  1.主设备使用HBuSREQx信号请求访问总线;

  2.仲裁器置位相应的HGRATx信号,表示主设备的申请已成功,它将在当前传输完成时获得总线访问权;

  3.主设备拥有地址/控制总线;

  4.主设备拥有数据总线。

 

3. 请求总线访问

  1. master使用HBUSREQx想arbiter请求总线的控制权,仲裁器在时钟上升沿采样HBUSREQx信号,然后通过仲裁算法(协议中未规定)来决定哪一个master接管总线。

  2. 如果master请求锁定总线(不希望传输被其他master的请求打断),那么master还必须断言HLOCKx信号,使其他主机不能控制总线。

  3. 申请到总线的master可以执行一次burst传输,arbiter需要知道HTRANS和HBURST信号,以知道一次burst的停止。如果master希望在一次burst之后还要进行burst传输,那么master需要在burst传输中再次请求HBUSREQ。

  4. 如果主机在一次burst中丢掉了对总线的控制,那么需要重新申请HBUSREQ。

  5. 如果master进行未定长度的burst,那么master需要在传输过程中一直申请HBUSREQ。

  6. 如果没有master请求bus,那么总线会被移交给缺省主机,HTRANS上发送IDLE。

 

4. 仲裁器不响应master总线请求:

arbiter可以通过仲裁算法对发起HBUSREQ的master进行仲裁,决定哪个master占用总线,但是以下情况下,当前占用总线的master保持对总线的占用权:

  1. 当前master 用HLOCK信号锁定了总线。

  2. 当前主设备处于定常的burst传输。

  3. 发生split相应的主设备的请求会被屏蔽。

 

5. 授予总线

  arbiter通过HGRANT信号表示总线中哪个master的优先级最高,并且在当前HREADY为高(也就是当前数据读写完成)时将总线授予优先权最高的master。同时arbiter改变HMASTER表示哪个master占用bus。

 

6. 突发提前终止

  通常仲裁器在突发结束之前不会将总线移交给新的主机。但是,如果仲裁器决定突发必须被提前终止以防止过长的总线访问时间,那么可能在一个突发完成之前将总线访问权移交给另一个主机。如果主机在突发传输中失去对总线的访问,必须重新断言总线请求信号。主机必须确保HBURsI'和瑚限ANS信号都被更新以确保不再执行一个完整的突发传输。

 

7. 仲裁算法

仲裁算法有固定优先级的仲裁(Fixed priority),循环式优先级仲裁(Round Robin),或是随机性的仲裁(Random)和竞争仲裁优先级(Tournament)

 

  固定优先级算法,就是指总线中各主设备的优先级是事先确定好的,在仲裁器仲裁过程中固定不变。

  而循环优先级算法则不同,各主设备的优先级在仲裁器的仲裁过程中不是一成不变,而是根据一定规律发生变化的。

  两者各有利弊,采用固定优先级算法,可以对那些有重要数据传输或有大量实时数据传输以及经常需要占用总线的主设备赋予较高的优先权,以便有效地利用AHB总线。固定优先级算法的缺点是可能会出现总线主设备“撑死”和“饿死”的现象,即优先级高的主设备总是优于优先级低的主设备获得总线的访问权,从而导致优先级低的设备不能及时获得总线的访问权而造成数据发送堵塞。

  相反,采用循环优先级算法则可以克服这种“饱饿”不均的弊端,在循环优先级算法中,由于其优先级随着每个总线周期动态地改变,各个设备在总线上的身份平等,获得总线占用权的机会均等。所以,在一定意义上来说,优先级循环是最公平的算法。循环优先级的缺点是当处理某些设备的大批量实时数据时会造成效率下降。

 

8. 一些仲裁场景

8.1 普通仲裁

  希望获得总线权的master向仲裁器发出总线仲裁请求信号,经仲裁器根据仲裁逻辑仲裁后,发出总线应答信号HGRANT。Master会在时钟的上升沿采样HGRANT信号,当采样到HGRANT有效,并且HREADY同时为高电平时,表示该master获得了总线的访问权并且可以开始传输。

8.2 master lock 仲裁

  如果获得总线访问权的master不希望在传输的过程中被打断,而想要进行连续的不可中断的传输,那么master在发出总线请求信号(HBUSREQ)的同时可以发出总线锁存信号HLOCK,即将HLOCK置为高电平。

  当master获得总线访问权后仲裁器会发出相应的响应信号HMASTLOCK,这样arbiter就不会把总线释放给其它的master,直到master自行将HLOCK置为低电平取消锁存信号,仲裁器才会在进行总线仲裁的动作,使其它的master可以进行总线操作。这里我们假定固定长度的突发优先级的传输都是不可中断的。

8.3 SPLIT 传输 

  仲裁器还可以仲裁希望能完成SPLIT传输的总线slave。当仲裁器观察到master收到SPLIT响应,则会将master的优先权给屏蔽起来,当master的总线访问权被屏蔽后,该master将无法再获得总线访问的权利,即使是没有其它master访问总线时也一样。同时,slave需要记录master的信号,以便以后要通知仲裁器恢复那个master的优先级。这可以从仲裁器发出的HMASTER[3:0]信号查得。若所有的master都收到SPLIT的响应信号,则仲裁器会把总线访问移交给dummy master(一种只会发出IDLE传输的master)。

  当回应SPLIT的slave处理完传输的要求后,会发出HSPLIT[15:0]的信号给master . 仲裁器会在时钟的每一个上升沿采样HSPLIT[15:0],当它收到HSPLIT[15:0]后,会将原来被屏蔽掉的master的总线优先权解封,这样master的优先权就会回复原来的状态而有机会去重新获得总线访问权。

8.4 RETRY 传输

  当slave发出RETRY的响应信号时,仲裁器内master的优先权不会发生改变。但是当有更高优先级的master的发出总线请求信号时,总线的访问权会由高优先级的master取得,但是如果原来得到RETRY响应的master是当时总线请求的master中优先级别最高的,则总线还是继续会被占住,而无法释放给其它有需要的master。

 

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: AMBA2总线协议是英国ARM公司开发的一种高性能、低功耗的系统集成电路(SoC)总线标准协议。AMBA2总线协议主要包含三个子协议,分别是AMBA2 AHB总线AMBA2 APB总线AMBA2 ATB总线AMBA2 AHB总线(Advanced High-performance Bus)是一种高性能、多主设备支持的总线协议。它通过点对点的连接方式,支持内部和外部设备的连接,并提供了高带宽、可靠性和可扩展性的特性。AMBA2 AHB总线广泛应用于手机、平板电脑、数字电视和汽车电子等领域。 AMBA2 APB总线(Advanced Peripheral Bus)是一种低功耗、低带宽的总线协议。它主要用于连接外围设备,如串口控制器、定时器、GPIO等。AMBA2 APB总线在SoC中起到了连接外设和主控制器之间的桥梁作用。 AMBA2 ATB总线(Advanced Trace Bus)是一种用于系统调试和性能分析的总线协议。它通过将系统中各个部件的调试信息和性能数据收集到一个统一的总线上,使得开发者可以方便地进行系统调试和性能优化。 总的来说,AMBA2总线协议提供了一种灵活、可靠的总线架构,它适用于各种不同的SoC设计,并能够满足不同领域的需求。通过使用AMBA2总线协议,设计师可以实现高性能、低功耗的SoC系统,提高系统集成度和开发效率。 ### 回答2: AMBA2总线协议是一种用于芯片设计的总线协议,由ARM公司推出。AMBA代表“先进微处理器总线架构”(Advanced Microcontroller Bus Architecture),旨在为高性能和低功耗的嵌入式系统提供标准的总线接口。 AMBA2总线协议下载就是指从ARM官方网站或合作伙伴网站上获取AMBA2总线协议相关的文档、规范和工具等资源的过程。以下是一个基本的步骤: 1. 进入ARM官方网站或合作伙伴网站,在搜索框中输入“AMBA2总线协议”或类似的关键词进行搜索。 2. 在搜索结果中找到与AMBA2总线协议相关的页面或文档。 3. 单击相关页面或文档的链接,进入详细介绍和下载页面。 4. 根据需要,选择下载相应的文档、规范和工具等资源。通常,在下载之前可能需要填写一些必要的用户信息或同意相关的协议条款。 5. 完成下载后,将资源保存到本地计算机或其他存储设备中。 6. 打开下载的文档,阅读并理解AMBA2总线协议的规范和说明。 值得注意的是,AMBA2总线协议是ARM的一种专有技术,因此在下载和使用协议文档时可能需要符合一定的条件或满足一些限制要求。此外,为了保护知识产权,可能需要签署或同意一些协议或许可条款。 总之,AMBA2总线协议下载是通过访问ARM官方网站或合作伙伴网站,获取相关资源并在遵守相关规定的前提下,将资源下载到本地进行学习和使用的过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值