AHB协议


AMBA高级处理器总线架构,不同的速率要求构成了高性能SOC设计的通信标准:

  • AHB高级高性能总线
  • APB高级外围总线
  • AXI高级可拓展接口

什么是AHB总线协议

AHB:主要是针对高速率、高频宽及快速系统模块所设计的总线,可以连接在如微处理器、芯片上或芯片外的内存模块和DMA等高效率总线。AHB可以成为一个完整独立的SOC芯片的骨架,不仅如此还可以通过AHB-APB桥来连接APB总线系统。
特点:

  • 高速总线,高性能
  • 2级流水线操作
  • 可支持多个总线主设备(最多16个)
  • 支持burst传输
  • 总线带宽:8、16、32、64、128bits
  • 上升沿触发操作
  • 对于一个新设计建议使用AHB

在这里插入图片描述

AHB总线组成

  • MasterAHB主设备: 发起一次读/写操作;某一时刻只允许一个主设备使用总线
  • SlaveAHB从设备: 响应一次读/写操作;通过地址映射来选择使用哪一个从设备
  • ArbiterAHB仲裁器: 允许某一个主设备控制总线
  • DecoderAHB译码器: 通过地址译码来决定选择哪一个从设备

在这里插入图片描述

AHB信号描述

信号来源描述
HCLK总线时钟总线时钟,上升沿采样
HRESENTn系统总线复位信号,低有效
HADDR[31:0]Master32位地址总线
HTRANS[1:0]Master当前传输类型IDLE,BUSY,NONSEQ,SEQ
HWRITEMaster1为写,0为读
HSIZE[2:0]Master每一个transfer传输的数据大小,以字节为单位,最高支持1024位
HBURST[2:0]Masterburst类型,支持4、8、16burst,incrementing/wrapping
HPROT[3:0]Master保护控制信号,需要slave带保护功能,一般不用
HWDATA[31:0]Master写数据总线,Master到slave
HRDATA[31:0]Slave读数据总线,Slave到Master
HSELxDecoderslave选择信号
HREADYSlave控制HRDATA的读出数据周期,高:Slaves输出传输结束;低:Slave需延长传输周期
HRESP[1:0]SlaveSlave发给Master的总线传输状态OKAY,ERROR,RETRY,SPLIT

HRESP[1:0]:

  • OKAY:单周期响应
  • ERROR:两周期响应
  • RETRY:两周期响应
  • SPLIT:两周期响应

总线的流水特性需要从设备两个周期的响应。可以使得主设备有足够的时间处理下一次传输。

AHB传输

基本AHB传输:

  • 两个阶段:地址周期,HREADY;数据周期,由HREADY信号决定需要几个cycle
  • 流水线传送:先是地址周期,然后是数据周期

流水线操作: 当总线上有多个为处理完的请求,也就是当A请求被master执行后,slave做响应期间,紧接着master又收到新的请求B,这是master就要执行流水线一样的操作。
在这里插入图片描述

Bust传输

什么是Burst传输?

Burst(突发):是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所设计到存储单元的数量就是突发长度(Burst Lengths,简称BL)。就是地址执法一次,首个地址发出就决定了后面的地址是什么,而不是发送一个地址,再传送一个数据的方式。

为什么要使用Burst传输?
Burst传输就是提高了传输效率。如果不用burst,普通访问模式下,主设备发出的传输命令到达从设备,由于仲裁等原因,传输会产生一定的延时。如果主设备读一个数据,处理一个数据的话,由于延时的存在,处理速度会极低。在进行突发传输时,只需要发送一次地址,内存就会依次地自动对后面相应数量的存储单元进行读/写操作。而不再需要控制器连续地提供访问地址。所以,第一次数据的传输需要若干个周期,而其后每个数据只需一个周期的即可获得。

两种Burst模式:

  • 增量突发(INCR): 地址递增,在地址边界处不回环
  • 回环突发(WRAP): 地址递增,但会在特定的地址边界上回环;一般在需要填充cache line的时候使用。
HBURST[2:0]Burst类型描述
000single transfer单个传输,HTRANS是NONSEQ或IDLE
001INCR地址从开始地址开始递增,突发长度不固定
010WRAP4突发4位,地址递增回环
011INCR4突发4位,地址递增
100WRAP8突发8位,地址递增回环
101INCR8突发8位,地址递增
110WRAP16突发16位,地址递增回环
111INCR16突发16位,地址递增

注意:

  • INCR类型和WRAP类型的Burst时,发送的地址不能跨过1KB的地址空间
  • WRAP类型的Burst主要用于CPU中有cache line需要填充

地址的递增与HSIZE有关,当HSIZE指定单个传输数据位宽为半字(16bit)时,地址按每次加2递增。当HSIZE指定单个传输数据位宽为1个word(32位)时,地址是按每次加4递增。
HSIZE[2:0]

HSIZE[2:0]描述
0008bits
00116bits
01032bits
01164bits
100128bits
101256bits
110512bits
1111024bits

增量Burst传输
有INCR、INCR4、INCR8和INCR16四种类型
INCR类型如下:
在这里插入图片描述
在这里插入图片描述
回环Burst传输
在0x3C地址之后,根据回环的地址边界,第四拍的地址变为0X30。4个地址(0x30、0x34、0x38、0x3c),每个地址各不相同,这四个地址是一个回环范围。起始地址决定了回环操作的回环范围。
在这里插入图片描述

参考:
哔哩哔哩大学
https://blog.csdn.net/SummerXRT/article/details/118077270

  • 12
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值