AMBA AHB(高级高性能总线)介绍
一、AHB简介
AHB是为提出高性能可综合设计的要求而产生的新一代AMBA总线。它是一种支持多总线主机和提供高带宽操作的高性能总线。
AMBA AHB实现了高性能,高时钟频率系统的以下特征要求:
突发传输、分块处理、单周期总线主机移交,单时钟沿操作、非三态执行、更宽的数据总线架构(64位或者128位)
典型的AMBA AHB系统设计包含以下的成分:
AHB主机(master): 总线主机能够通过提供地址和控制信息发起读写操作。任何时候只允许一个总线主机处于有效状态并能使用总线。
AHB从机(slaver): 总线从机在给定的地址范围内响应读写操作。总线从机将成功、失败或者等待数据传输的信号返回给有效的主机。
AHB仲裁器 : 总线仲裁器确保每次只有一个总线主机被允许发起数据传输。即使仲裁协议已经固定,任何一种仲裁算法,比如最高优先级或者公平访问都能根据应用要求而得到执行。
AHB译码器: AHB译码器用起来对每次传输进行地址译码,并且在传输中包含一个从机选择信号。
二、AHB信号名称
所有AMBA信号的命名都用名称的第一个字母来指示信号和哪个总线相关联。信号名称中用一个小写的n表示该信号低电平有效。
AHB信号前缀: H (表示一个AHB信号)例如:HREADY用来指示AHB部分数据传输完毕的信号,该信号高电平有效。
三、AHB信号列表
名称 | 来源 | 描述 |
HCLK 总线时钟 |
时钟源 | 时钟为所有总线传输提供时基。所有信号时序都和HCLK的上升沿相关 |
HRESETn 复位 |
复位控制器 | 总线复位信号低有效并用来复位系统和总线。这是唯一的低有效信号。 |
HADDR[31:0] 地址总线 |
主机 | 32位系统地址总线 |
HTRANS[1:0] 传输类型 |
主机 | 表示当前传输的类型,可以是不连续,连续,空闲和忙。 |
HWRITE 传输方向 |
主机 | 当该信号为高时表示一个写写传输,为低时表示一个读传输。 |
HASIZE[2:0] 传输大小 |
主机 | 表示传输的大小,典型情况时一个字节(8bits)、半个字(16bits)或者是字(32bits)。协议允许最大的传输大小可以达到1024bits。 |
HBURST[2:0] | 主机 | 表示传输是否组成了突发的一部分。支持4个、8个或者16个节拍的突发传输并且突发传输可以是增量或者是回环。 |
HWDATA[31:0] 写数据总线 |
主机 | 写数据总线用来在写操作期间从主机到总线从机传输数据。建议最小的数据总线宽度为32位。然而,在要求高带宽运行时扩展(数据总线)还是很容易的。 |
HREADY 传输完成 |
从机 | 当HREADY为高时表示总线上的传输已经完成。在扩展传输时该信号可能会被拉低。注意,总线上的从机要求HREADY作为输入输出信号。 |
HRESP[1:0] 传输响应 |
从机 | 传输响应给传输状态提供了附加信息。提供四种不同的响应:OKEY、ERROR、RETRY和SPLIT。 |
AMBA AHB也有许多信号请求支持多主机操作。许多这些仲裁信号用于点对点连接,其中后缀x用来表示信号来自模块x。例如HBUSREQx,比如 HBUSREQarm, HBUSREQdma | ||
HBUSREQx 总线请求 |
主机 | 从总线主机x传向总线仲裁器用来表示该主机请求(控制)总线的信号。系统中每个总线主机都有一个HBUSREQx信号,最多16个总线主机。 |
HLOCKx 锁定的传输 |
主机 | 当该信号为高时表示主机请求锁定对总线的访问,并且在该信号为低之前其他主机不应该被允许授予总线。 |
HGRANTx 总线授予 |
仲裁器 |
该信号用来表示总线主机x目前是优先级最高的主机。当HREADY为高时传输结束,地址/控制信号的所有权发生改变。 所以主机应在HREADY和HGRANTx都为高时获得对总线的访问。 |
HMASTER[3:0] 主机号 |
仲裁器 |
这些来自仲裁器的信号表示哪个总线主机正在执行传输和被支持分块传输的从机用来确定哪个主机正在尝试一次访问。 HMASTER 的时序和地址以及控制信号对齐。 |
HMASTLOCK 锁定顺序 |
仲裁器 | 表示当前主机正在执行一个锁定顺序的传输。该信号和HMASTER有相同的时序。 |
HSPLITx[15:0] | 从机(支持分块) | 从机用这16位的分块总线来指示仲裁器总线主机应该被允许重试一个分块传输。分块总线上的每一位对应一个总线主机。 |
四、AMBA AHB 操作概括
在一次AHB传输开始之前,总线主机必须被授予访问总线。这个过程开始于总线主机向仲裁器断言一个请求信号。仲裁器指示主机何时能够被授予使用总线。被授予的总线主机通过驱动地址和控制信号来发起一次AMBA AHB传输。这些信号提供关于地址、方向和传输宽度的信息,以及表示传输类型是否为一次突发传输的部分。允许有两种不同的突发传输:
增量突发:在地址边界出不回环
回环突发,在特定的地址边界上回环。
写数据总线用来将数据从主机传输到从机上,而读数据总线用来将数据从从机传输到主机上。
每次传输包含:一个地址和控制周期;一个或多个数据周期。
地址不长期有效,所以所有从机必须在这个时段(传输地址时)采样地址。然而,通过HREADY信号可以延长数据。当该信号为低时导致在传输中插入等待状态同时允许从机有额外的时间提供或采样数据。
在传输中从机通过使用响应信号来表示数据传输的状态,HRESP[ 1 : 0 ]:
OKAY:OKAY响应用来表示传输进展正常并且当HREADY变高时表示传输成功完成。
ERROR:ERROR响应表示发生了一个传输错误并且传输失败。
RETRY 和 SPLIT:这两个传输响应都表示传输不能立刻完成,但总线主机应该继续尝试传输。
在常规操作中,主机被允许在仲裁器授予另一个主机访问总线之前完成一个特定突发的所有传输。然而,为了避免过多的仲裁延时,可能允许仲裁器打断一个突发,并且这种情况下主机必须(申请)重新仲裁总线以完成剩下的突发传输。
基本传输
AHB传输包含两个截然不同的部分:
地址相位:只持续单个周期。
数据相位:可能需要多个周期,这通过使用HREADY信号实现。
下图表示了最简单的传输,没有等待状态。
在这个没有等待状态的简单传输中:
1. 主机在HCLK的上升沿之后将地址和控制信号驱动到总线上;
2. 然后在时钟的下一个上升沿从机采样地址和控制信息;
3. 在从机采样了地址和控制信号后能够开始驱动适当的响应并且该响应被总线主机在第三个时钟的上升沿采样
这个简单的例子演示了在不同的时钟阶段传输的地址和数据相位是如何产生的。事实上,任何传输的地址相位在前一次传输的数据相位期间出现。这种地址和数据的交叠是总线传输通道的基本性质同时允许高性能的操作。同时仍然给从机提供足够的时间来产生传输响应。
从机也可能插入等待周期到任意传输中,如下图所示,这样扩展了传输完成允许的附加时间。
注意:对写操作而言总线主机必须保持数据在整个扩展周期中稳定。
对读传输从机没必要提供有效数据直到传输将要结束时。
当传输以这种方式扩展时,随后的传输将会有地址相位扩展的副作用。如下图所示:
表示了三次传输到无关的地址A、B、C。
1. 到地址A和C的传输都是零等待状态。
2. 到地址B的传输是一个等待状态。
3. 传输到地址B的扩展数据相位对传输到地址C的扩展地址相位有影响。
传输类型
每个传输都可以被分类为四个不同的类型之一,如HTRANS[1:0] 信号所表示的状态,详见下表
HTRANS[1:0] | 类型 | 描述 |
00 |
空闲 (IDLE) |
表示没有数据传输的要求。空闲传输类型在总线主机被授予总线,但并不希望执行一个数据传输时使用。从机必须总是提供一个零等待状态OKAY来响应空闲传输并且该传输应该被从机忽略。 |
01 |
忙 (BUSY) |
忙传输类型允许总线主机在突发传输中间插入空闲周期。这种传输类型表示总线主机正在连续执行一个突发传输,但是下一次传输不能立即发生。当一个主机使用忙传输类型时,地址和控制信号必须反映突发中的下一次传输。 这种传输应该被从机忽略,从机必须总是提供一个零等待状态OKAY响应,和从机响应空闲传输一样的方式。 |
10 |
非连续 (NONSEQ) |
表示一次突发的第一次传输或者一个单一传输。地址和控制信号和前一次传输无关。 总线上的单一传输是被视为一个数据量的突发,因此传输类型是非连续的 |
11 |
连续 (SEQ) |
突发中剩下的传输是连续传输并且地址是和前一次传输有关的。控制信息和前一次传输一样。地址等于前一次传输的地址加上传输大小(字节)。在回环突发的情况下传输地址在地址边界处回环,回环值等于传输大小乘以传输的次数(4、8或者16其中之一)。(译者注:这里回环指从传输的结束地址边界跳回到传输的起始地址边界。 |
下图表示一组用到了不同传输类型:
1. 第一个传输是一次突发的开始,所以传输类型为非连续。
2. 主机不能立刻执行突发的第二次传输,所以主机使用了忙传输来延时下一次传输的开始。在这个例子中,主机在它准备还突发的下一次传输之前仅请求了一个忙周期,下一次传输的完成没有等状态。
3. 主机立刻执行突发的第三次传输,但是这时,从机不能完成传输,并用HREADY来插入一个等待状态。
4. 突发的最后一个传输以无等待状态完成。
突发操作(HBURST)
AMBA AHB协议定义了四,八,和 十六 拍突发,也有未定义的突发和信号传输。协议对增量和回环都支持。
增量突发访问连续地址,并且突发中的每次传输地址仅是前一次地址的一个增量。
对于回环突发,如果传输的起始地址并未和突发(x拍)中字节总数对齐,那么突发传输地址将在达到边界处回环。例如,一个四拍回环突发的字(4字节)访问将在16字节边界回环。因此,如果传输的起始地址是0x34,那么它将包含四个到地址0x34、0x38、0x3C、0x40。
突发信号编码表:
HBURST[2 : 0] | 类型 | 描述 |
000 | SINGLE | 单一传输 |
001 | INCR | 未指定长度的增量突发 |
010 | WRAP4 | 4拍回环突发 |
011 | INCR4 | 4拍增量突发 |
100 | WRAP8 | 8拍回环突发 |
101 | INCR8 | 8拍增量突发 |
110 | WRAP16 | 16拍回环突发 |
111 | INCR16 | 16拍增量突发 |
标签:AHB,总结,主机,总线,从机,突发,传输,地址,AMBA From: https://www.cnblogs.com/fuqiangblog/p/16627870.html