完整的AHB协议:1)可以多个master,并且需要外加一个Arbiter,和write multiplexor。为了保证每一时刻只有一个master拥有访问权。

2)为了增强pipeline的能力,允许Arbiter将一个未完成的burst中断,grant给另外一个transfer。所以还有两种

trasnfer;RETRY/SPLIT。

Arbitration:主要是确保每个时间点,都从master的req中选择一个priority最高的访问bus;

从slave端接收req,来完成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哪一个bus master要继续进行操作。

以下是一个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的设计复杂性。

AHB中split机制简介的更多相关文章

  1. Oracle中PL/SQL简介、基本语法以及数据类型

    Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控 ...

  2. IPC 机制简介

    IPC 机制简介 概述 在Unix早期发展中,做出重大贡献的两大主力Bell实验室和伯克利大学(BSD)在IPC(InterProcess Communication)方面的侧重点有所不同.前者对Un ...

  3. c#中的数据类型简介(委托)

    c#中的数据类型简介(委托) 什么是委托? 委托是一种类型,它封装了一类方法,这些方法具有相同的方法签名(signature).定义听起来有点拗口,首先可以确定委托是一种数据类型,那么什么是方法签名, ...

  4. JUC——线程同步锁(锁处理机制简介)

    锁处理机制简介 juc的开发框架解决的核心问题是并发访问和数据安全操作问题,当进行并发访问的时候如果对于锁的控制不当,就会造成死锁这样的阻塞问题. 为了解决这样的缺陷,juc里面重新针对于锁的概念进行 ...

  5. 正则表达式:Python3中的应用简介

    正则表达式:Python3中的应用简介 一.正则表达式 1,概述 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学 ...

  6. Android休眠唤醒机制简介(二)

    本文转载自:http://blog.csdn.net/zhaoxiaoqiang10_/article/details/24408911 Android休眠唤醒机制简介(二)************* ...

  7. Android休眠唤醒机制简介(一)【转】

    本文转载自:http://blog.csdn.net/zhaoxiaoqiang10_/article/details/24408129 Android休眠唤醒机制简介(一) ************ ...

  8. WPF中的资源简介、DynamicResource与StaticResource的区别

    原文:WPF中的资源简介.DynamicResource与StaticResource的区别 什么叫WPF的资源(Resource)?资源是保存在可执行文件中的一种不可执行数据.在WPF的资源中,几乎 ...

  9. 深入理解 Java 中 SPI 机制

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/vpy5DJ-hhn0iOyp747oL5A作者:姜柱 SPI(Service Provider ...

随机推荐

  1. Javascript实现提示错误的信息直接出现在输入框后

    可以在输入框后加个<span id="error"></span>,当验证错误时这样处理document.getElementById('error').i ...

  2. How to control printer orientation(Landscape / Portrait) for an AX report in X++

    You should try this: 1. Set property Orientation on your report design to Auto 2. In your fetch meth ...

  3. magento多语言中文语言包

    语言包key:http://connect20.magentocommerce.com/community/Mage_Locale_zh_CN

  4. magento去掉小数点后面的0

     <?php echo $_product->getPrice()?> PHP number_format() 函数  <?php echo number_format($_p ...

  5. js运算之比较大小

    1.大于>和小于< var box = 3 > 2;//关系运算符大多返回的是一boolean值. alert(box); //true 1.2不同类型的数据比较 var box = ...

  6. 四元数(Quaternion)和旋转(转)

    http://blog.csdn.net/candycat1992/article/details/41254799 四元数介绍 旋转,应该是三种坐标变换--缩放.旋转和平移,中最复杂的一种了.大家应 ...

  7. [BS-15] Values of type 'NSInteger' should not be used as format arguments

    Values of type 'NSInteger' should not be used as format arguments 苹果app支持arm64以后会有一个问题:NSInteger变成64 ...

  8. Thread 线程

    线程 Join 一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行 using System.Linq; using System.Text; using System.T ...

  9. Flask服务入门案例

    安装 pip install Flask 入门例子 from flask import Flask app = Flask(__name__) @app.route('/hello.world') d ...

  10. 计算NSString含有多少个相同字符串

    // //  NSString+NSStringExt.m //  01-NSString类 // //  Created by apple on 14-3-20. //  Copyright (c) ...