AMBA总线基础知识简介
AMBA:Advanced Microcontroller Bus Architecture,是ARMA公司的片内互联总线协议。
1995 - AMBA1.0 APB外设总线及ASB系统总线发布。
1999 - AMBA2.0 AHB系统总线发布,APB总线升级为同步总线。
2003 - AMBA3.0 高性能互联协议AXI发布,APB总线扩展,AHB-Lite协议发布。B)
- The Advanced System Bus (ASB)
- The Advanced Peripheral Bus (APB)
AHB用于高性能、高时钟频率的系统模块,支持处理器,片上存储器,片外存储器以及低功耗外设宏功能单元之间的有效连接。
ASB用在并不需要AHB高性能特征的地方。
APB优化了功耗,降低了接口复杂度,用于低功耗外设。
AXI是AMBA总线协议的3.0版本。AXI协议定位于高性能、高时钟频率系统设计,并且带有很多适合于高速深亚微米互联的特性。
一,关于AXI总线的outstanding 和out of order
首先说明一点,outstanding和out of order,都是指AXI,AHB没有outstanding 和out of order。
Outstanding操作是指Master在前一个操作还没有完成的时候,发出下一个操作或下几个操作。Outstanding操作需要Slave的支持,Slave必须声明可以支持的Outstanding操作的深度,AXI兼容不支持Outstanding操作的slave(即Outstanding的深度为1)。
相对于Outstanding操作,Out-of-order操作主要是针对Slave来说的,指Slave返回的数据的顺序与Master发出指令的顺序不一致。造成这种不一致的原因有以下两个:
- Slave之间的响应速度不一致
- 某些复杂的slave接口设计本身支持乱序操作
AXI使用ID来处理乱序,ID由ARID[3:0]信号或AWID[3:0]信号确定。AXI传输顺序需要遵守的规则如下:
- 来自不同Master的传输之间没有顺序要求,可以按任意顺序完成。
- 来自同一Master的不同ID的传输没有顺序要求,可以按任意顺序完成。
- 相同AWID的写数据序列必须和发起该传输的Master确定的写地址顺序一致。
- 相同ARID的读数据序列如果来自同一个Slave,则该Slave必须保证读数据的顺序与其收到地址的顺序一致;如果来自不同的Slave,则Interconnect必须保证读数据的顺序与其收到地址的顺序一致。
- 读操作和写操作之间没有顺序要求,如果有此要求,Master必须在前一个传输完成之后再开始下一次传输。
AXI协议中涉及到顺序的操作主要包括读数据乱序(Out-of-Order Read)、写数据间插(Write Interleave)、读和写操作交互三种情况。
需注意的几点:
1,AXI和AHB总线都有主从之分,而APB总线无主从之分。
AMBA总线基础知识简介的更多相关文章
- 【单片机通信协议】CAN总线基础知识
CAN总线基础知识(一) 1.1 CAN总线是什么? CAN(Controller Area Network)是ISO国际标准化的串行通信协议.广泛应用于汽车.船舶等.具有已经被大家认可的高性能和可靠 ...
- SpringCloud(1) 架构演进和基础知识简介
一.传统架构演进到分布式架构 简介:讲解单机应用和分布式应用架构演进基础知识 (画图) 高可用 LVS+keepalive 1.单体应用:开发速度慢.启动时间长.依赖庞大.等等 2.微服务:易开发.理 ...
- 【STM32H7教程】第47章 STM32H7的FMC总线基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第47章 STM32H7的FMC总线基础知识和HA ...
- PON系统基础知识简介
一 PON基础知识 1.1 PON技术概念 PON(Passive Optical Network)即无源光网络,一种基于点到多点(P2MP)拓朴的技术.“无源”指ODN(光分配网络)不含有任何电子 ...
- Vue基础知识简介
基础知识: vue的生命周期: beforeCreate/created.beforeMount/mounted.beforeUpdate/updated.beforeDestory/destorye ...
- GIS 基础知识简介
前言 前一段时间,在公司进行了分析 GIS 基础信息的介绍.之所以会有这个介绍以及为什么是我?这个个中缘由说下. 公司不是一个GIS方面的公司,但是由于业务的需要,经常需要用到地图(要和地图打交道), ...
- 二、MongoDB的基础知识简介
1.文档.集合和数据库 a).文档:因为MongoDB是面向文档的数据库,那么可想而知文档是它的基本单元,相当于关系型数据库中的行! Ⅰ.它是由键值对组成的一个有序集:注:键不能为空且是字符串类型的. ...
- CAN总线基础知识(三)
1.CAN协议 1.1 帧类型 通讯时使用下面5个类型的帧: 数据帧 遥控帧 错误帧 过载帧 帧间空隙 在所有这些帧中,数据帧和遥控帧由用户设置,而其它帧则由CAN硬件设置. 数据和遥控帧有两种格式: ...
- CAN总线基础知识(二)
CAN协议和标准规范 1 由ISO标准化的CAN协议 CAN协议已经由ISO标准化,有2个版本,如ISO11898和ISO11519-2,它们之间在数据链路层没什么不同,但是在物理层有些区别. (1) ...
随机推荐
- (转)java 静态内部类
转自:http://blog.sina.com.cn/s/blog_605f5b4f0100zbps.html 参考:http://docs.oracle.com/javase/tutorial/ja ...
- Spring MVC学习-----------springMVC-mvc.xml
springMVC-mvc.xml 配置文件片段解说 (未使用默认配置文件名称) <?xml version="1.0" encoding="UTF-8" ...
- 说说常见的几个js疑难点
JavaScript match() 方法 定义和使用方法 match() 方法可在字符串内检索指定的值,或找到一个或多个正則表達式的匹配. 该方法类似 indexOf() 和 lastIndexOf ...
- boost诊断工具BOOST_ASSERT、BOOST_VERIFY、BOOST_STATIC_ASSERT
boost.assert提供的主要工具是BOOST_ASSERT宏,类似于C语言的assert,提供运行时的断言,但功能有所增强; 默认情况下,BOOST_ASSERT宏等同于assert宏: # d ...
- Duilib教程-控件练习
一.控件消息的响应. 在HelloDuilib例子中,程序不能退出,在这里,我将添加一个关闭按钮,当点击它时,调用PostQuitMessage进行退出. 首先在界面的右上角添加一个关闭按钮,并取名为 ...
- 基础知识《十三》深入浅出Java回调机制
本文转载自http://hellosure.iteye.com/blog/1130176 在网上看到了一个比喻,觉得很形象,这里借用一下: 你有一个复杂的问题解决不了,打电话给你的同学,你的同学说可以 ...
- cxGrid 循环选择条目
Delphi DevExpress CxGrid 循环选择条目 整理出来的,直接复制粘贴即可使用 以下是从网络上复制粘帖到的,实践证明,利用以下代码进行获取选择行是错误的. 当我们利用 CxGrid进 ...
- 关于redux应用
redux 有点类似flux.但是我觉得远比flux要复杂.因为他非常的绕.一般搭配使用是redux 和react-redux 使用. 主要的思路就是: 写action:动作类型 写reducer:动 ...
- C++ 调用webservice 出现 函数返回值为 3 (SOAP_TAG_MISMATCH) 的解决方案
最近在用C++ gsoap做webservice服务时,函数返回值为SOAP_TAG_MISMATCH (==3)错误码,原因是我传入wsdl地址时连同后面的?wsdl都传入了,如下: http:// ...
- C#生成Windows服务
1. 新建一个项目,或者从选择当前解决方案--右键-添加--新建项目 2. 选择Visual C#项目-->Windows 服务,填写要创建的服务名称(修改默认的WindowService1成为 ...