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锁和同步

    Java 语言设计中的一大创新就是:第一个把跨平台线程模型和锁模型应用到语言中去,Java 语言包括了跨线程的关键字synchronized 和 volatile,使用关键字和java类库就能够简单的 ...

  2. Python捕获异常

    一.常见异常 1.语法错误:SyntaxError:invalid syntax (1)案例: (1)解决方法: ①查看代码有没有红色波浪线 ②熟悉python基本语法 2.变量名不存在:NameEr ...

  3. 如何列出github上最多star/fork的project

    访问此页面进行搜索: https://github.com/search/advanced 再参考github高级搜索语法: https://help.github.com/articles/sear ...

  4. c++新特性---引用变量

    一.定义 引用变量是已定义变量的别名,如将ra设置为a的引用变量,则可以使用ra和a交替使用该变量. 表示: int a = 5; int & ra = a; 其中&不是地址运算符,而 ...

  5. Response响应对象

    1.HttpServletResponse HttpServletResponse是一个定义在Servlet API中的接口,继承自ServletReponse接口,用于封装HTTP响应消息.HTTP ...

  6. Java Base64解析

    最近在业务场景中,需要对第三方传递进来的字符进行base64解密,根据第三方文档提供的解析工具,对数据进行了解析,关于Base64的解析方式如下: String sign = "xxxxxx ...

  7. 【BZOJ4145】[AMPPZ2014]The Prices 状压DP

    [BZOJ4145][AMPPZ2014]The Prices Description 你要购买m种物品各一件,一共有n家商店,你到第i家商店的路费为d[i],在第i家商店购买第j种物品的费用为c[i ...

  8. 爬虫实战【12】使用cookie登陆豆瓣电影以及获取单个电影的所有短评

    昨天我们已经实现了如何抓取豆瓣上的热门电影信息,虽然不多,只有几百,但是足够我们进行分析了. 今天我们来讲一下如何获取某一部电影的所有短评论信息,并保存到mongodb中. 反爬虫 豆瓣设置的反爬虫机 ...

  9. C#中遍历ArrayList的三种方法

    using System; using System.Collections; using System.Linq; using System.Text; namespace ArrayListDem ...

  10. 什么是Python?Python的设计哲学?如何获取/升级Python?

    Python? Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/) Python的创始人为吉多·范罗苏姆(Guido van Rossum). 1989年的圣诞节期间,吉多· ...