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总线基础知识简介的更多相关文章

  1. 【单片机通信协议】CAN总线基础知识

    CAN总线基础知识(一) 1.1 CAN总线是什么? CAN(Controller Area Network)是ISO国际标准化的串行通信协议.广泛应用于汽车.船舶等.具有已经被大家认可的高性能和可靠 ...

  2. SpringCloud(1) 架构演进和基础知识简介

    一.传统架构演进到分布式架构 简介:讲解单机应用和分布式应用架构演进基础知识 (画图) 高可用 LVS+keepalive 1.单体应用:开发速度慢.启动时间长.依赖庞大.等等 2.微服务:易开发.理 ...

  3. 【STM32H7教程】第47章 STM32H7的FMC总线基础知识和HAL库API

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第47章       STM32H7的FMC总线基础知识和HA ...

  4. PON系统基础知识简介

    一  PON基础知识 1.1 PON技术概念 PON(Passive Optical Network)即无源光网络,一种基于点到多点(P2MP)拓朴的技术.“无源”指ODN(光分配网络)不含有任何电子 ...

  5. Vue基础知识简介

    基础知识: vue的生命周期: beforeCreate/created.beforeMount/mounted.beforeUpdate/updated.beforeDestory/destorye ...

  6. GIS 基础知识简介

    前言 前一段时间,在公司进行了分析 GIS 基础信息的介绍.之所以会有这个介绍以及为什么是我?这个个中缘由说下. 公司不是一个GIS方面的公司,但是由于业务的需要,经常需要用到地图(要和地图打交道), ...

  7. 二、MongoDB的基础知识简介

    1.文档.集合和数据库 a).文档:因为MongoDB是面向文档的数据库,那么可想而知文档是它的基本单元,相当于关系型数据库中的行! Ⅰ.它是由键值对组成的一个有序集:注:键不能为空且是字符串类型的. ...

  8. CAN总线基础知识(三)

    1.CAN协议 1.1 帧类型 通讯时使用下面5个类型的帧: 数据帧 遥控帧 错误帧 过载帧 帧间空隙 在所有这些帧中,数据帧和遥控帧由用户设置,而其它帧则由CAN硬件设置. 数据和遥控帧有两种格式: ...

  9. CAN总线基础知识(二)

    CAN协议和标准规范 1 由ISO标准化的CAN协议 CAN协议已经由ISO标准化,有2个版本,如ISO11898和ISO11519-2,它们之间在数据链路层没什么不同,但是在物理层有些区别. (1) ...

随机推荐

  1. (转)java 静态内部类

    转自:http://blog.sina.com.cn/s/blog_605f5b4f0100zbps.html 参考:http://docs.oracle.com/javase/tutorial/ja ...

  2. Spring MVC学习-----------springMVC-mvc.xml

    springMVC-mvc.xml 配置文件片段解说 (未使用默认配置文件名称) <?xml version="1.0" encoding="UTF-8" ...

  3. 说说常见的几个js疑难点

    JavaScript match() 方法 定义和使用方法 match() 方法可在字符串内检索指定的值,或找到一个或多个正則表達式的匹配. 该方法类似 indexOf() 和 lastIndexOf ...

  4. boost诊断工具BOOST_ASSERT、BOOST_VERIFY、BOOST_STATIC_ASSERT

    boost.assert提供的主要工具是BOOST_ASSERT宏,类似于C语言的assert,提供运行时的断言,但功能有所增强; 默认情况下,BOOST_ASSERT宏等同于assert宏: # d ...

  5. Duilib教程-控件练习

    一.控件消息的响应. 在HelloDuilib例子中,程序不能退出,在这里,我将添加一个关闭按钮,当点击它时,调用PostQuitMessage进行退出. 首先在界面的右上角添加一个关闭按钮,并取名为 ...

  6. 基础知识《十三》深入浅出Java回调机制

    本文转载自http://hellosure.iteye.com/blog/1130176 在网上看到了一个比喻,觉得很形象,这里借用一下: 你有一个复杂的问题解决不了,打电话给你的同学,你的同学说可以 ...

  7. cxGrid 循环选择条目

    Delphi DevExpress CxGrid 循环选择条目 整理出来的,直接复制粘贴即可使用 以下是从网络上复制粘帖到的,实践证明,利用以下代码进行获取选择行是错误的. 当我们利用 CxGrid进 ...

  8. 关于redux应用

    redux 有点类似flux.但是我觉得远比flux要复杂.因为他非常的绕.一般搭配使用是redux 和react-redux 使用. 主要的思路就是: 写action:动作类型 写reducer:动 ...

  9. C++ 调用webservice 出现 函数返回值为 3 (SOAP_TAG_MISMATCH) 的解决方案

    最近在用C++ gsoap做webservice服务时,函数返回值为SOAP_TAG_MISMATCH (==3)错误码,原因是我传入wsdl地址时连同后面的?wsdl都传入了,如下: http:// ...

  10. C#生成Windows服务

    1. 新建一个项目,或者从选择当前解决方案--右键-添加--新建项目 2. 选择Visual C#项目-->Windows 服务,填写要创建的服务名称(修改默认的WindowService1成为 ...