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总线无主从之分。