【ARM】AMBA和总线

news2024/11/18 17:46:07

AMBA

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

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总线优点

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

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.coloradmin.cn/o/2162227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爬虫类Chrome去除前端无限debugger反调试(轻松分析算法)

文章目录 引言方法1(简易抓包或者分析js适用)方法2(解决实际问题-最简单的方法)方法3(解决实际问题-麻烦点也是学会fiddler的一个功能)第一步:熟悉界面的大致功能意思第二步:保存出需要替换的代码,记住保存位置,待会儿要用第三步&…

【Python篇】详细学习 pandas 和 xlrd:从零开始

文章目录 详细学习 pandas 和 xlrd:从零开始前言一、环境准备和安装1.1 安装 pandas 和 xlrd1.2 验证安装 二、pandas 和 xlrd 的基础概念2.1 什么是 pandas?2.2 什么是 xlrd? 三、使用 pandas 读取 Excel 文件3.1 读取 Excel 文件的基础方法…

如何在精益六西格玛项目实践中激励小组成员保持积极性?

在精益六西格玛项目实践中,激励小组成员保持积极性是推动项目成功与持续改进的关键因素。精益六西格玛作为一种集精益生产与六西格玛管理精髓于一体的管理模式,旨在通过流程优化、质量提升及成本降低,实现企业的卓越绩效。然而,这…

《DevOps实践指南》笔记-Part 3

一篇文章显得略长,本文对应第5-6章、附录、认证考试、参考资源等。 前言、第1-2章请参考Part 1,第3-4章内容,请参考Part 2。 持续学习与实验的技术实践 通过以下方式制定有关提高安全性、持续改进和边做边学的制度: 建立公正的…

找不到MFC140.dll无法继续执行代码怎么办,共有6种解决方法

在计算机使用过程中,我们可能会遇到各种问题,其中一种常见的问题是DLL文件丢失。DLL文件是动态链接库文件,它包含了可以被多个程序共享的代码和数据。MFC140.dll就是其中之一。本文将深入分析MFC140.dll丢失的原因,并提供6种有效的…

双亲委派机制SPI

SPI如何破坏双亲委派机制?可根据以下概念一步步深入 什么是双亲委派机制? 双亲委派机制是Java类加载器体系中采用的一种类加载策略,旨在保证类加载的安全性和稳定性。 这一机制规定了类加载的顺序和规则,即当一个类加载器收到类…

解决启动docker desktop报The network name cannot be found的问题

现象 deploying WSL2 distributions ensuring main distro is deployed: checking if main distro is up to date: checking main distro bootstrap version: getting main distro bootstrap version: open \wsl$\docker-desktop\etc\wsl_bootstrap_version: The network name…

基于Springboot+vue实现的Cosplay论坛系统

基于springbootvue实现的Cosplay论坛系统 (源码L文ppt)4-066 2.3 系统功能分析 Cosplay论坛系统中采用了Java的springboot框架进行开发,在数据库上选择MYSQL,在功能上Cosplay论坛系统我划分为了普通用户管理模…

Proteus如何添加数码管

1、打开安装好的Proteus,点击上方菜单栏中的“库”,再选择“从库选取零件”,或者在左侧元件列表中单击鼠标右键,再点击右键菜单中的“从库中挑选”选项。 2、之后在元器件库中,点击类别中的“Optoelectronics”&#…

破解 oklink 网站加密数据(升级版)

大家好!我是炒青椒不放辣,关注我,收看每期的编程干货。 逆向是爬虫工程师进阶必备技能,当我们遇到一个问题时可能会有多种解决途径,而如何做出最高效的抉择又需要经验的积累。本期文章将以实战的方式,带你详细地分析并破解 oklink 网站加密数据 特别声明:本篇文章仅供学…

python脚本程序怎么写更优雅?argparse模块巧妙应用

前言 命令行程序,也称CLI程序,另一个直观的名字是脚本程序,简称脚本,由于没有图形用户界面(GUI),所以脚本程序常见的交互方式有3种: 1、脚本程序中读取环境变量,比如env…

解决小爱音箱连接Windows10蓝牙时,语音控制会中断音乐播放的问题

解决天猫精灵连接Windows10蓝牙时,语音控制会中断音乐播放的问题 解决小爱音箱连接Windows10蓝牙时,浏览器控制音量会中断音乐播放的问题 用小爱音箱当蓝牙音响的时候,遇到个很困扰的问题,每次小爱音箱语音控制的过程中,都会启动…

3.js - 运动曲线

这个球,绕着这个红色的线圈转 代码 import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControlslet scene,camera,renderer,controls nulllet moon,earth null// 根据,一系列的点,创建曲线 le…

活动报名丨智源Workshop,从o1出发探索LLM推理与思维链

近期o1模型的发布,预示着AI在处理高度复杂问题上再次迈出一大步。大规模强化学习算法在一个数据极高的训练过程中,教会了模型如何利用其思维链进行富有成效的思考。 北京时间9月19日(本周四)晚7点,智源社区将组织「智源…

响应式布局-媒体查询父级布局容器

1.响应式布局容器 父局作为布局容器,配合自己元素实现变化效果,原理:在不通过屏幕下面吗,通过媒体查询来改变子元素的排列方式和大小,从而实现不同尺寸屏幕下看到不同的效果。 2.响应尺寸布局容器常见宽度划分 手机-…

Vue 中 watch 的使用方法及注意事项

前言 Vue 的 Watch 是一个非常有用的功能,它能够监听 Vue 实例数据的变化并执行相应的操作。本篇文章将详细介绍 Vue Watch 的使用方法和注意事项,让你能够充分利用 Watch 来解决 Vue 开发中的各种问题。 1. Watch 是什么? 1.1 Watch 的作…

[js逆向学习] fastmoss电商网站——店铺排名

逆向目标 网站:https://www.fastmoss.com/shop-marketing/tiktok接口:https://www.fastmoss.com/api/shop/shopList/参数:fm-sign 逆向分析 我们今天要分析的是店铺排名,先分析网络请求,找到目标接口 按照上图操作…

Redis: 特点,优势,与其他产品的区别以及高并发原理

入门Redis概述 1 )选择Redis是因为其高性能 因为 Redis 它数据存储的机制是存在内存中的,减少了传统关系数据库的磁盘IO它是单线程的保证了原子性,它还提供了事务,锁等相关的机制 2 )Redis 环境安装配置 linux 或 d…

STM32 map 文件浅析

目录 一、概述二、Section Cross References三、Removing Unused input sections from the image四、Memory Map of the image1、Local Symbols2、全局符号(Global Symbols) 五、Image Symbol Table六、Image component sizes 一、概述 .map 文件是编译…

Shader Graph Create Node---Input

四、Input 1、Basic 一些基础的变量节点 2、Geometry 1)、Bitangent Vector(双切线向量) 通常与顶点位置、法线向量和切线向量一起使用。 法线向量(Normal Vector):垂直于表面的向量。 切线向量(Tangent Vector)…