【ARM】AMBA和总线

news/2024/9/28 21:47:14 标签: arm开发, AMBA, 总线

AMBA_0">AMBA

AMBA(Advanced Microcontroller Bus Architecture) 总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有高速度低功耗等特点。
总线:系统芯片中各个模块之间需要有接口来连接。总线作为子系统之间共享的通信链路。
ARM中的总线用于不同部件之间的通信。有两种不同类型的设备连接到总线
ARM处理器:它是总线的主设备,拥有对总线的仲裁权,可以通过同一总线主动发起数据传输请求;
外围器件:是总线的从设备,在总线上是被动的,只能对主设备发出的一个传输请求做出反应。

AMBA__6">AMBA 总线架构主要包括以下几种不同的总线标准:

AHB (Advanced High-performance Bus):高级高性能总线,用于连接处理器、直接存储器访问(DMA)、高性能存储器控制器等。
APB (Advanced Peripheral Bus):高级外围总线,用于连接低速外围设备,如 UART(通用异步接收发射器)。
AXI (Advanced eXtensible Interface):高级可拓展接口,提供高速度、高带宽的连接,支持乱序和非对齐操作,有效支持初始延迟较高的外设。
ASB (Advanced System Bus):高级系统总线,使用较少。

AMBA 1.0:ASB和APB
AMBA 2.0:AHB,ASB和APB
AMBA 3.0:AMBA Advanced extensible Interface (AXI)(可以用于ARM和FPGA的高速数据交互)
AMBA 4.0:…

AMBA_17">AMBA总线优点

Efficient IP reuse(高效的IP重用):AMBA规范了接口,以至于数以千的SOCs和IPs都可以使用AMBA Interface。
Flexibility(灵活性):比较灵活的规范和接口定义。
Compatibility(兼容性):一个标准的接口规范,以至于在不同的IP直接得到兼容。
Support:AMBA得到很好的支持。它在整个半导体行业得到广泛实施和支持,包括来自第三方IP产品和工具的支持。
BandWith:在同步系统中,最大带宽受时钟速度和数据总线宽度限制。

AMBA__SOC_23">AMBA 架构的 SOC

AHB(high-performance 的 system bus ): 负责连接例如 ARM 之类的 embedded processor 与 DMA controller,on-chip memory 和其他 interface,或其他需要 high bandwidth 的元件。
APB(low-power 的 peripheral bus ):用来连接系统的周边元件,其protocol 相对AHB 来讲较为简单, 与 AHB 之间则透过 Bridge 相连,期望能减少 system bus 的 loading。
在这里插入图片描述
在AHB和APB之间,有AHB-APB桥,这是为了解决高性能器件和片内低带宽外设之家的匹配问题;
AHB支持多个Master,因此需要Arbiter来仲裁。
仲裁器(Arbiter)在数字电路设计中是一个非常重要的模块,它的主要作用是在多个请求(request)信号中选择一个进行授权(grant)。当多个设备或模块需要访问同一资源(如总线、内存、设备等)时,仲裁器决定了哪个请求能够获得访问权。
在APB里面,唯一的Master就是APB桥,因此不需要仲裁。

AXI协议

在这里插入图片描述
适合高带宽和低延迟的设计
高带宽(Broadband):指具有较高数据传输速率的网络连接。
底延迟:指计算机系统或通信网络中的较短时间延迟。它通常用于指网络数据包通过网络连接从发送计算机到接收计算机的往返所需的时间。
该协议还支持:
分离的地址/控制和数据阶段(Separate address/control and data phases.)
通过使用字节选通信号的方式支持非对齐数据传输。
AHB 总线只支持对齐传输,而AXI协议支持地址的非对齐传输,在AXI传输中,只需要在传输 时给出首地址,其后的传输地址都是由首地址和突发大小、突发类型决定的
**AXI协议基于突发传输,定义了下列独立事务(一个事务可能包含多次传输)通道
**
读地址、读数据、写地址、写数据、写响应
地址通道携带描述被传输数据性质的控制信息,数据在主设备和从设备间通过以下方式传输:
1,写数据通道从主设备传输数据到从设备,在写传输时,从设备使用写响应通道通知主设备传输完成。
2,读数据通道从从设备传输数据到主设备。

写数据在这里插入图片描述
读数据在这里插入图片描述
每一个通道都拥有自己的VALID与READY信号用于实现握手,其中VALID信号表示通道的地址、数据或控制信息已经可用,而READY信号则表示接收方已准备好接收信息,其中,读数据和写数据通道还拥有LAST信号,该信号用于指示当前传输是否为当前事务中的最后一次传输。

读地址与写地址通道

读事务与写事务都拥有其自己的地址通道,对应的地址通道会携带一次事务所需的全部地址和控制信息

读数据通道

数据通道携带从设备传送给主设备的数据和响应信息,该通道包括两部分:
1,位宽可为8、16、32、64、128、256、512、1024bit的数据总线
2,表示读事务完成状态的读响应信号。

写数据通道

写数据通道携带主设备传送给从设备的数据,该通道包括两部分:
位宽可为8、16、32、64、128、256、512、1024bit的数据总线
为每一个8bit数据准备的字节选通信号,用于指示数据的哪几个字节是有效的

写响应通道

从设备使用写响应通道回应写事务,全部的写事务都需要写响应通道的完成信号,并且完成信号仅在一个写事务彻底完成时才产生,而并不会在每次数据传输时都产生。

AXI互联结构

在这里插入图片描述
AXI协议为以下接口提供了单一的接口定义:
在主设备和互联器(Interconnect)之间
在从设备和互联器之间
在主设备和从设备之间

大多数的系统使用如下三种互联拓扑之一:
共享的地址和数据总线
共享的地址总线以及多条数据总线
多层,具有多个地址和数据总线
该接口定义支持不同的互联器实现,设备之间的互联器等效于另一个拥有对称主端口和从端口的设备,真正的主设备和从设备可以连接到对应的端口。

AXI传输与存储器类型

当AXI主设备发起AXI操作时,对于AXI从设备:

AXI总线上所需的完整操作集形成AXI事务(Transaction)。
任何传输的有效数据都作为一次AXI突发传输(Burst)。
一次突发传输可以包含多次数据传输,一次数据传输称为一拍(Beat)。

AXI信号描述

下列信号被用于AXI3和AXI4。
在这里插入图片描述
所有信号都在公共时钟的上升沿被采样。

写地址通道信号

在这里插入图片描述

写数据通道信号

在这里插入图片描述

写响应通道信号

在这里插入图片描述

transfers和transactions的区别

transfers
在这里插入图片描述
是单次信息交换,需要一次VALID和READY信息握手
transactions
在这里插入图片描述
一个transactions是一个完整的突发传输(an entire burst of transfers),包括address transfer、data transfers、response transfer

握手过程

五个事务通道都使用VALID/READY作为握手信号,传输地址、数据和控制信息,使用这种握手方式,主从双方都可以对传输速度进行控制。源端产生VALID信号意味着其地址、数据或控制信息有效,目的端产生READY信号意味着它可以接收信息,只有当双方的VALID与READY信号都为高时传输才会开始。
在下图中,源端在T1之后给出地址、数据或控制信息,并令VALID有效,在T2之后,目的端检测到VALID有效并给出READY有效信息,在T3阶段传输会发生,因此在T3阶段及之前,源端不能释放或改变需要传输的信息。
在这里插入图片描述
源端必须在令VALID信号有效之后再等待READY信号有效,一旦VALID有效,源端必须等待握手发生,即在保持VALID不变的情况下,等待目的端的READY信号有效。

在下图中,目的端首先在T1阶段之后令READY信号有效,源端在T2阶段之后给出地址、数据或控制信息,并令VALID有效,然后在T3阶段开始传输,在这种情况下,传输只消耗了一个时钟周期,而在上面那种情况下,则消耗了两个时钟周期。
在这里插入图片描述
目的端可以在自身READY信号无效的情况下,等待源端的VALID信号有效,这一条规则和上一条规则必须同时遵守,否则可能造成死锁等待,同时,在VALID有效前,即使READY已经有效,也可以再次令READY无效。

在下图中,两端的VALID/READY信号同时有效,则传输立刻在下一个时钟周期开始:
在这里插入图片描述

Write transaction: single data item

在这里插入图片描述

Write transaction: multiple data item

在这里插入图片描述

Read transaction: single data item

在这里插入图片描述

Read transaction: multiple data item

在这里插入图片描述

AxLen,AxSize,AxBurst

AxLEN : 表示在一次transation中,有多少次transfers AXI3:1-16, AXI4:1-256
• AxSize : 表示一次transfer,能够传输多少字节的数据? AxSize[2:0]三个比特可以表示8个数字 1, 2, 4, 8, 16, 32, 64, or 128
• AxBURST[1:0] :表示burst的类型:fixed, incrementing, or wrapping
在这里插入图片描述
Cache support
在这里插入图片描述
AxCACHE [0]: bufferable比特,表示这是可以delay的transaction,transaction可能是没有到达最终的目的地的。
• AxCACHE [1]: 在AXI3中表示cacheable,在AXI4中表示modifiable。如果是modifiable,那么表示多个不同的写可以merge到同一个transactions中,读也是如此。(调用了多次tranfermerge到一个transaction中)
• AxCACHE [2]: 读分配cache
• AxCACHE [3]: 写分配cache

总线传输模型

在这里插入图片描述
RRESP : 读respond
BRESP : 写respond
RRESP、RRESP各有两个比特,能够表示4个respond code
• 00-OKEY: 表示访问成功,或表示独占访问失败。
• 01-EXOKEY: 表示独占访问成功
• 10-SLVERR: 表示slave返回了错误,如错误的transfer size或去写了一个只读的地址。
• 11-DECERR :去访问了一个不存在的
在这里插入图片描述

Atomic accesses with the lock signal 原子访问信号

在这里插入图片描述
AXI3中AxLOCK是2个比特位,到了AXI4上只有一个比特了

Quality of service
在这里插入图片描述
Region signaling
可能是NSAID携带信号,标识MASTER去访问哪个region
AXI channel dependencies
• WLAST必须先于BVALID完成
• RVALID必须晚于ARADDR被断言
• WVALID必须晚于AWVALID被断言

缓存一致性网络(CCN) – 专为基础设施应用而设计
缓存一致性互连(CCI) – 针对移动设备进行了优化
网络互连(NIC) – 高度可配置,适用于 SoC 广泛连接,具有多种应用
在这里插入图片描述
NIC/CCI系列是交叉矩阵的(Crossbar),CCN系列是基于环状总线的(Ring),NoC系列是网状总线(Mesh)
CoreLink Coherent Mesh Network Family
CMN-600
CMN-650(Neoverse)
CMN-600AE
CMN-700(Neoverse)
• CoreLink Cache Coherent Interconnect Family
CCI-400
CI-700
CCI-550
CCI-500
• Non-Coherent Interconnect
NI-700
NI-710AE
• CoreLink Cache Coherent Network Family
CCN-502
CCN-508
CCN-504
• CoreLink Network Interconnect Family
NIC-301
NIC-400
NIC-450


http://www.niftyadmin.cn/n/5681904.html

相关文章

【分布式微服务云原生】探索微服务架构下的服务治理

一、引言 随着业务需求的不断膨胀和技术的迅速迭代,单体应用逐渐暴露出其可扩展性和灵活性的局限性。微服务架构应运而生,通过将大型复杂系统拆分成一组小而专注的服务来提升系统的敏捷性和可维护性。然而,服务数量的增加也带来了新的挑战&a…

使用jdframe进行数据处理

1.引言 在数据分析过程中&#xff0c;我们经常需要对数据进行分组、排序和排名等操作。本文将以一段Java代码为例&#xff0c;演示如何使用Java结合第三方库对用户数据进行处理。我们将实现对用户数据的分组、排序以及多种排名方式的计算。 2.依赖 <dependency><gro…

基于 Canvas 的可缩放拖动网格示例(Vue3以及TypeScript )

文章目录 1. 基本知识2. Vue33. TypeScript 1. 基本知识 基本知识讲解&#xff1a; Canvas API&#xff1a; 一种用于在网页上绘制图形的 HTML 元素&#xff0c;使用 JavaScript 的 Canvas API 来进行绘制 使用 getContext(2d) 方法获取 2D 绘图上下文&#xff0c;允许开发者绘…

【数据修复指南】手把手教你使用线性插值填补各类遥感数据缺失——Modis、Landsat和Sentinel

线性插值 1. 写在前面2. MODIS数据插值3. Landsat数据插值3.1 参数修改以适应其他类型的遥感数据3.2 Landsat数据汇总3.3 Sentinel卫星介绍 1. 写在前面 之前我写了使用年内均值或者中值来填补数据控制的方法&#xff0c;这种方法较为简单&#xff0c;不够精确。因此&#xff0…

详细分析Mysql中的定时任务(Event事件)

目录 前言1. 基本知识2. Event事件3. Demo 前言 基本的知识推荐阅读&#xff1a; 详细分析Mysql触发器的基本使用&#xff08;图文解析&#xff09;详细分析SQL Server触发器的基本知识详细分析Corn表达式&#xff08;附Demo&#xff09; 特性事件定时任务触发器触发条件基于…

录屏小白福音!三款神器助你轻松上手

生活工作中&#xff0c;需要借助录屏功能越来越家常便饭了&#xff0c;选择录屏软件时&#xff0c;主要考虑的是软件的易用性、功能以及用户评价等因素。以下是如何进行录屏的步骤&#xff0c;以及推荐的四个录屏软件的使用说明&#xff1a;关于如何录屏的步骤操作&#xff0c;…

Java零工市场小程序如何改变自由职业者生活

如今&#xff0c;自由职业者越来越多&#xff0c;他们需要找到合适的工作机会&#xff0c;Java零工市场小程序&#xff0c;为自由职业者提供了一个方便、快捷的寻找工作机会的方式&#xff0c;这样一来&#xff0c;改变了自由职业者找寻工作的方式&#xff0c;也提高了他们的收…

提升微信管理效率:自动回复功能解析

在快节奏的数字时代&#xff0c;高效的沟通工具对于管理多个微信账号至关重要。古人云&#xff1a;“工欲善其事&#xff0c;必先利其器”&#xff0c;这句话在今天依然适用。微信自动回复功能正是这样的“利器”&#xff0c;它能够显著提升微信管理的效率和用户体验。 自动通过…