AHB协议详解

article/2025/10/14 1:12:07

AHB总线

AHB总线在AMBA2中就已经定义,AHB总线一开始主要是作为系统高速总线使用,适用于高性能,低功耗的系统设计。目前因为AXI总线作为高速总线的优势更加明显,AHB会用在相对低速的系统设计中。基本排序就是APB适用于低速设计,AXI适用于高速设计,AHB则介于两者之间。
在AMBA协议中,AHB一开始主要面向系统级高带宽高性能的系统互联设计,支持多master,多slave的互联模式。但是随着系统的发展,AHB更多用于支持简单的数据传输,因此后来对AHB协议做了简化设计,定义了AHB-Lite协议,简化之后的协议主要用在单master数据访问中,不需要支持split与retry,因为中间的多外设结构都可以通过互联方便的实现。
目前AHB协议多用在低性能需求的M型处理器中,也多用在片上memory或者一些低带宽需求定位外设接口设计。
AHB 结构
因为AHB协议支持多master,多slave的结构设计,因此需要有Arbiter与Decoder实现请求与响应的仲裁与编解码映射。
在这里插入图片描述
Master会首先向仲裁发送发文请求,仲裁决定合适让master获取总线访问的权限,master获取权限之后会将数据与控制信号发送到仲裁器,仲裁器通过地址解析判断对应的slave通路,然后将请求发送到对应的目的端。同样响应的数据会通过Decoder解析,然后返回给对应的master。
通过这种多路复用的机制实现多对多的访问。但是这种结构有一个缺点就是一次能有一对maste与slave通信,无法实现多对多的同时通信,对于带宽需求比较大或者实时性要求较高的系统不太适合。
AHB支持增量传输(Incrementing burst)与回环传输(Wrapping burst)。Incrementing burst可以实现地址与数据的递增,Wrapping burst可以实现地址的边界的换回。
AHB-Lite结构
AHB-Lite是对AHB协议的精简,支持单个master的数据传输,在一对多的设计中可以通过Decoder对master的地址解码选择对应的slave通路。
在这里插入图片描述
master接口信号:
在这里插入图片描述
salve接口信号:
在这里插入图片描述
AHB信号:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
AHB传输
Basic transfers
在这里插入图片描述
在basic传输中,可以看到传输分为地址段和数据端,第一个cycle传输地址控制信息,第二个cycle传输数据信息。在数据段中,slave会返回对应的响应hready。
With Wait transfers
在这里插入图片描述slave侧可以通过hready来添加延时等待,以防止内部无法及时处理或者准备所需要的数据。每个slave都会有一个hreadyout来表示内部是否已经准备完成。Internet会将所有的hreadyout合并成hready来控制相关的传输。
Transfer type
在这里插入图片描述
AHB中定义了4中传输状态类型。IDLE表示无数据传输;BUSY表示master处于忙碌状态,用于在burst中插入发送的等待延时;NONSEQ表示一个single传输或者是一个burst传输中的第一拍数据,NONSEQ中地址与之前的传输没有关系,表示一笔新的传输;SEQ表示处于burst传输状态中,发送的地址与之前的地址是有关系,因为burst传输地址有相关性。
在这里插入图片描述
T0-T1:master发送burst读的第一拍地址(0x20)信息,传输类型为NONSEQS。
T1-T2:master发出一个BUSY状态,表示本次发送的控制信息无效;slave返回上一拍对应的读数据Data(0x20)。
T2-T3: master发送第二拍burst地址(0x24)信息,此时传输状态为SEQ;此时因为上一拍master发送的为BUSY传输,因此这拍master会忽略slave的返回值。
T3-T4:master继续发送第三拍的地址(0x28)信息,slave返回第二拍数据Data(0x24);
T4-T5:master继续发送最后一拍的地址(0x2c)信息,此时salve无法及时处理master发送的传输,因此通过拉低hready来进入等待状态。
T5-T6:因为上一个cycle中slave拉低了hready,master需要保持对应的地址段信息,slave此时可以响应master,因此把hready拉高表示此次传输有效,把对应的第三拍的数据Data(0x28)返回。
T6-T7:此时master不会发送控制信息,slave返回最后一拍的数据Data(0x2C)。

Lock transfers
在这里插入图片描述
lock传输是为了保证master发送的一笔传输都被一次性响应完,不允许中间插入其他传输响应。这个主要应用在多个master通过AHB访问同一个slave的情况。
Transfer size
在这里插入图片描述
AHB hsize有3bit位宽,表示传输数据的大小为2的幂次方Byte,最大支持1024bit。

Burst operaption
在这里插入图片描述
AHB支持多种传输类型:单笔传输(SINGLE);不定长的递增传输(INCR),回环传输(WRAP4/8/16),定长的递增传输(INCR4/8/16);
Wrap4 Transfer
在这里插入图片描述
wrap4是16字节为边界做环回,起始地址为0x38,会环回到0x30地址重新进行地址递增。地址环回的简单计算方法是从0开始进行计算,比如正常的传输应该是0x00,0x04,0x08,0x0c,然后根据具体的起始地址以及环回长度进行递增。如果是wrap8,则0x00-0x1c一组,0x20~0x3c一组;
INCR4 transfer
在这里插入图片描述
增量传输为地址递增的传输,每次传输地址都会相应递增。地址递增的大小根据数据的大小来判定。
Protection control
在这里插入图片描述
Hprot可以针对不同的传输类型进行控制。
Hprot[0],Hprot[1]用来表示数据指令传输以及相关的优先级顺序。
Hprot[2]用来指示是否为bufferable传输,影响到传输响应的返回节点,是否可以从中间返回还是必须要从最终目的端返回,即是否支持early response。
Hprot[3]表示是否支持传输可能改,比如是否支持对读写传输的合并或者拆分,对传输的hburst或者hsize的更改。(系统可以按照更高效的方式进行传输的重新组合)
HProt[4]表示是否必须从cache中取数以及是否更新最终的memory。
Hprot[5]表示是否更新cache中的内容
Hprot[6]表示这笔传输在内存中是否与其他的master共享,来保证所有master看到的都是一致的数据。
Secure transfer
AHB中有HNONSEC信号可以实现secure属性的传输控制。Secure 传输可实现不同安全属性的任务传输,针对不同secure属性的slave可以实现不同的访问权限。secure可以访问nonsecure属性的salve,但是nonsecure传输不能访问secure属性的slave。
Exclusive transfer
HEXCL信号是可以实现AHB的独占访问传输。独占访问适用在多master的系统中,一个master对一段地址空间进行独占传输,如果在传输期间,这段地址没有被其他的master访问过,则独占访问成功,返回HEXOKAY,如果传输期间,这段地址有被其他master访问过,则独占访问失败,返回HOKAY。
AHB不同版本之间的对比
在这里插入图片描述
原文


http://chatgpt.dhexx.cn/article/Hwq0DiuI.shtml

相关文章

AHB学习笔记

1.AHB概述 AHB总线是一种专为高性能同步传输设计的总线,层次高于APB总线,支持以下特性: 突发传输拆分事务主设备单时钟周期传输单时钟沿操作非三态实现宽数据总线配置(64/128bit) 1.1.典型AHB系统 典型的AHB系统包括以…

AHB协议学习

AHB协议总结 AHB协议学习1. AHB简介2. AHB的接口信号2.1 Global signals2.2 Master signals2.3 slave signals2.4 decoder signals2.5 multiplexor signals 3. 传输4. Decoder5. Multiplexor6. 大小端Endianness:7. Exclusive transfer AHB协议学习 1. AHB简介 AH…

AHB总线介绍【1】

1.简介 AHB总线规范是amba总线的一部分,全称是Advanced high performance bus。AMBA总线常用的有AXI,AHB,APB。APB 的全称:Advanced Peripheral Bus 作为 AMBA 总线的一层,APB 总线是为了功耗最小化和减低接口复杂度而…

AMBA总线—AHB总线协议详解

文章目录 一、AMBA总线介绍1.1.AMBA发展史1.2.典型的AMBA系统 二、AHB总线(宏观构造)2.1.AHB总线组成2.2.AHB总线组成互连2.3.AHB操作概述2.4.AHB基本传输阶段 三、AHB总线传输(时序)3.1.AHB信号描述(重要)…

Docker详解之EXPOSE

EXPOSE <端口1> [<端口2>...] 大家都知道以上代码是Dockerfile中来声明端口的命令&#xff0c;但是你真的了解过它吗&#xff1f;现在我带大家来深入了解我们的EXPOSE命令。 首先&#xff0c;我们最应该明确的一点就是&#xff0c;EXPOSE命令只是声明了容器应该打…

Network: use `--host` to expose

vite启动后提示&#xff1a; Network: use --host to expose&#xff0c;且无法通过网络IP访问服务 你遇到的问题是不是跟下图这样&#xff1a; 此问题的原因 当 局域网 中另一台设备需要访问该服务时&#xff0c;必须通过本机 IP 端口 访问。 尝试访问后&#xff0c;发现找…

AE(Auto Expose)自动曝光

AE Auto Expose自动曝光 1.作者&#xff1a;一隅生 自动曝光就是相机根据光线条件自动确定曝光量。 从根本测光原理上分可分两种&#xff1a;入射式和反射式。入射式就是测量照射到相机上的光线的亮度来确定曝光组合&#xff0c;这是一种简单粗略的控制&#xff0c;多用于低档相…

简单的聊一聊 Vue3.2 中新出的 expose 是做啥用的?

随着Vue 3.2的发布&#xff0c;一个新的组合工具提供给我们&#xff0c;叫做 expose。 你是否曾经创建过一个需要向模板提供一些方法和属性的组件&#xff0c;但又希望这些方法对组件是私有的&#xff0c;不能被父类调用&#xff1f; 如果你在开发一个开源的组件或库&#xff0…

Android gson解析@SerializedName、transient、@Expose

目录 SerializedName和transient Expose SerializedName和transient SerializedName 自定义序列化与反序列化过程中json数据的的key transient 加这个关键字表示这个字段 不会参与任何的序列化与反序列化 看代码 该商品类,name字段加上SerializedName("goodsName"…

kubectl 命令详解(七):expose

一、命令作用 将资源暴露为新的Kubernetes Service。 指定deployment、service、replica set、replication controller或pod &#xff0c;并使用该资源的选择器作为指定端口上新服务的选择器。deployment 或 replica set只有当其选择器可转换为service支持的选择器时&#xf…

Dockerfile EXPOSE指令 语法解析

Docker容器启动后&#xff0c;需要宿主机和容器端口进行映射&#xff0c;以便容器内服务对外暴露&#xff0c;这可以在启动是通过docker run -p host:port ...指定&#xff0c;也可以在镜像构建时通过dockerfile的EXPOSE指令指定&#xff0c;本文本来具体对EXPOSE指令进行解析。…

Dockerfile中的expose到底有啥用

如题&#xff0c;看过Dockerfile常识的肯定都知道这个EXPOSE指令是暴露容器的端口。 docker run 的时候指定 -P 或者 -p 将容器的端口映射到宿主机上。这样外界访问宿主机就可以获取到容器提供的服务了。 -P命令可以结合这个dockerfile文件中的EXPOSE暴露的端口。会将容器…

Dockerfile(6) - EXPOSE 指令详解

EXPOSE 通知 Docker 容器在运行时监听指定的网络端口 EXPOSE 端口号 EXPOSE 端口号/协议 默认协议是 TCP 同时在 TCP、UDP 上暴露端口 EXPOSE 80/tcp EXPOSE 80/udp EXPOSE 原理 个人理解&#xff1a;EXPOSE 暴露的端口更像是指明了该容器提供的服务需要用到的端口EXPOSE 并不…

2019中兴捧月·初赛心得

2019中兴捧月初赛心得 原文链接&#xff1a;https://hey-yahei.cn/2019/05/22/zte_challenge_preliminary/ 赛题背景 自从 Alex Krizhevsky 夺得 ILSVRC 2012 ImageNet 图像分类竞赛的冠军后&#xff0c;深度卷积神经网络在图像分类、物体检测、语义分割、目标跟踪等多个计算…

2019中兴捧月之智能音频处理参赛总结

抱着免笔试的心态参加了中兴捧月比赛&#xff0c;赛题一下来&#xff0c;呦&#xff01;题目可选余地很大&#xff0c;稳了&#xff01;看完题之后&#xff0c;凉了&#xff01;再见&#xff0c;中兴。。。 正题开始&#xff0c;博主选的是智能音频识别&#xff0c;题目给了几段…

算法4-中兴捧月杯热身赛1素数判断-热身赛2亲和串-热身赛3旅游路线-

题目1&#xff1a;素数判断 需求 给定一个数n&#xff0c;要求判断其是否为素数(0,1&#xff0c;负数都是非素数)。输入描述:测试数据有多组&#xff0c;每组输入一个数n。输出描述:对于每组输入,若是素数则输出yes&#xff0c;否则输入no。 样例1: 输入:13输出:yes 代码 //…

2021中兴捧月神算师算法赛,4-24第一场,第四题:D-换队伍,2021-4-28

第四题&#xff1a;D-换队伍 分析&#xff1a; 1.问题本身很简单&#xff0c;也只有两条队伍&#xff0c;一个队伍中的人换到另一个队伍的末尾。问题在于对其他人排队位置的保存和排序。 2.用什么数据结构进行保存&#xff0c;是一个很关键的问题&#xff0c;对问题解决的方法和…

中兴捧月算法挑战赛-RAW夜景图像去噪总结

最终排名 85/1159 网址&#xff1a;https://zte.hina.com/zte/denoise 无缘复赛&#xff0c;太菜了&#xff0c;不好意思说自己学去噪的了&#xff0c;代码会开源&#xff0c;但是感觉没什么人看吧 尝试过的模型 DnCNN&#xff1a;很差&#xff0c;0分UNet&#xff1a;很蓝…

2021中兴捧月神算师算法赛,4-24第一场,第二题:B - 切绳子,2021-4-27

第二题&#xff1a;B - 切绳子 题目如下图所示&#xff1a; 这道题目难度中等&#xff0c;但是有很多细节要注意。 分析&#xff1a; 1.首先数据类型问题&#xff0c; 1<n<1e18,这个显然超过了int的长度65535&#xff0c;需要使用big int 或者是long long 型进行定义…

中兴捧月算法-切绳子

中兴捧月算法-切绳子 题目描述 来源&#xff1a;牛客网 示例一&#xff1a;