AHB中split机制简介
完整的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机制简介的更多相关文章
- Oracle中PL/SQL简介、基本语法以及数据类型
Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控 ...
- IPC 机制简介
IPC 机制简介 概述 在Unix早期发展中,做出重大贡献的两大主力Bell实验室和伯克利大学(BSD)在IPC(InterProcess Communication)方面的侧重点有所不同.前者对Un ...
- c#中的数据类型简介(委托)
c#中的数据类型简介(委托) 什么是委托? 委托是一种类型,它封装了一类方法,这些方法具有相同的方法签名(signature).定义听起来有点拗口,首先可以确定委托是一种数据类型,那么什么是方法签名, ...
- JUC——线程同步锁(锁处理机制简介)
锁处理机制简介 juc的开发框架解决的核心问题是并发访问和数据安全操作问题,当进行并发访问的时候如果对于锁的控制不当,就会造成死锁这样的阻塞问题. 为了解决这样的缺陷,juc里面重新针对于锁的概念进行 ...
- 正则表达式:Python3中的应用简介
正则表达式:Python3中的应用简介 一.正则表达式 1,概述 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学 ...
- Android休眠唤醒机制简介(二)
本文转载自:http://blog.csdn.net/zhaoxiaoqiang10_/article/details/24408911 Android休眠唤醒机制简介(二)************* ...
- Android休眠唤醒机制简介(一)【转】
本文转载自:http://blog.csdn.net/zhaoxiaoqiang10_/article/details/24408129 Android休眠唤醒机制简介(一) ************ ...
- WPF中的资源简介、DynamicResource与StaticResource的区别
原文:WPF中的资源简介.DynamicResource与StaticResource的区别 什么叫WPF的资源(Resource)?资源是保存在可执行文件中的一种不可执行数据.在WPF的资源中,几乎 ...
- 深入理解 Java 中 SPI 机制
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/vpy5DJ-hhn0iOyp747oL5A作者:姜柱 SPI(Service Provider ...
随机推荐
- Javascript实现提示错误的信息直接出现在输入框后
可以在输入框后加个<span id="error"></span>,当验证错误时这样处理document.getElementById('error').i ...
- 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 ...
- magento多语言中文语言包
语言包key:http://connect20.magentocommerce.com/community/Mage_Locale_zh_CN
- magento去掉小数点后面的0
<?php echo $_product->getPrice()?> PHP number_format() 函数 <?php echo number_format($_p ...
- js运算之比较大小
1.大于>和小于< var box = 3 > 2;//关系运算符大多返回的是一boolean值. alert(box); //true 1.2不同类型的数据比较 var box = ...
- 四元数(Quaternion)和旋转(转)
http://blog.csdn.net/candycat1992/article/details/41254799 四元数介绍 旋转,应该是三种坐标变换--缩放.旋转和平移,中最复杂的一种了.大家应 ...
- [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 ...
- Thread 线程
线程 Join 一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行 using System.Linq; using System.Text; using System.T ...
- Flask服务入门案例
安装 pip install Flask 入门例子 from flask import Flask app = Flask(__name__) @app.route('/hello.world') d ...
- 计算NSString含有多少个相同字符串
// // NSString+NSStringExt.m // 01-NSString类 // // Created by apple on 14-3-20. // Copyright (c) ...