AMBA-总线-介绍2.0
AMBA总线协议2.0总结

3.2
AHB总线互连结构................................................................................................................................. 17
3.3
AHB操作概述.......................................................................................................................................... 18
3.1
什么是AHB总线?................................................................................................................................. 14
3.1.1 一个典型的基于AHB总线的微控制器架构.............................................................................. 15
3.4.3 多重传送(multiple transfer) ........................................................................................................... 20
3.5
控制信号:传送状态HTRANS[1:0] .................................................................................................... 22
AMBA_总线_介绍

SEP3203
2
目录
AMBA总线概述 AHB APB 不同IP之间的互连
3
系统总线简介
系统芯片中各个模块之间需要有接口来连接 总线作为子系统之间共享的通信链路 优点
低成本 方便易用
缺点
会造成性能瓶颈
4
AMBA介绍
Advanced Microcontroller Bus Architecture
end case;
Default_Slave logic
case HTRANS is when IDLE|BUSY => HRESP <= OKAY; when others => HRESP <= ERROR;
end case;
18
AHB信号
19
基本AHB信号
HRESETn
低电平有效
HADDR[31:0]
▪ HADDR must be aligned to a multiple of data size as given by HSIZE
32
BURST传输
AHB Burst 操作
4beat、8beat、16beat、单个字节传输、未定义长度 的传输 支持incrementing和wrapping两种burst传输
AMBA 3.0
AMBA Advanced eXtensible Interface (AXI)
6
一个典型的AMBA系统
处理器和其它主设备/从设备都是可以替换的
7
AHB
高速总线,高性能 流水线操作 可支持多个总线主设备(最多16个) 支持burst传输 总线带宽:8、16、32、64、128bits 上升沿触发操作 对于一个新设计建议使用AHB
amba发展历史

AMBA发展历史
AMBA(Advanced Microcontroller Bus Architecture)是一种用于在微控制器和其他系统中实现高性能、低功耗互连的总线架构。
下面是AMBA的发展历史:
1. AMBA 1.0:于1995年发布,包括ASB(Advanced System Bus)和APB(Advanced Peripheral Bus)两种总线协议。
ASB提供高速数据传输和低功耗,而APB则提供简单的单周期访问。
2. AMBA 2.0:于2001年发布,引入了AHB(Advanced High-performance Bus)协议,用于高速数据传输。
AHB提供了更好的带宽和更低的延迟,适用于需要快速响应的应用场景。
3. AMBA 3.0:于2007年发布,引入了AXI(Advanced eXtensible Interface)协议,用于高级可扩展性和灵活性。
AXI 支持各种不同的数据传输大小和地址映射方式,适用于不同的应用场景。
4. AMBA 4.0:于2013年发布,进一步增强了AMBA的性能和可扩展性。
AMBA 4.0引入了AHB3和AXI4协议,支持更高的带宽和更低的延迟,并提供更灵活的协议配置选项。
总的来说,AMBA的发展历程是从简单的ASB和APB
协议到更复杂的AHB和AXI协议,不断地提高性能和可扩展性,以适应不断发展的应用需求。
AMBA AHB APB 概述

AHB Decoder
• AHB系统中有一个核心地址译码器,它提供HSELx信号到各 个AHB Slave; • Decoder本身只负责位地址译码,为纯组合逻辑电路; • Slave只有在HSELx和HREADY都为High才采样地址/控制信号; • AHB地址线有32条,为简化译码器译码时间,AHB Spec.规 定每个Slave的最小地址空间为1KB,因此译码器最多只需 要对22条地址线进行译码。
HWRITE & HSIZE[2:0]
• Transfer Direction、Transfer Size由Master发出: – HWRITE为HIGH,Master在data phase将数据通过write data bus(HWDATA[31:0])发往Slave – HWRITE为LOW,Slave在data phase将数据通过read data bus (HRDATA[31:0])发往Master
允许某个主设备控制总线 发起一个请求给仲 裁器
驱动地址和控 制信号
仅选中的从设备响应地 址/控制信号
拉高HREADY信号,总线 传输完成
AHB Transfer
• Basic transfer – Address phase
• 传输address和control signal
– Data phase
• 传输write/read data和response signal
• 传输在data phase时若一个clock cycle无法完成传 输,Slave可通过拉低HREADY信号延长传输,传输 结束时状态由Slave HRESP信号反映。
Master sample the data
Master release address and control
东南大学soc课件6 AMBA总线(6学时)共109页文档

HADDR[31:0]
32位系统地址总线
片上总线的标准
定义了三种总线
AHB (Advanced High-performance Bus) ASB (Advanced System Bus) APB (Advanced Peripheral Bus)
5
cnasic
AMBA发展历史
AMBA 1.0
ASB 和 APB
AMBA 2.0
AHB, ASB 和 APB
AHB组成部分
AHB 主设备(master)
初始化一次读/写操作 某一时刻只允许一个主设备使用总线
uP、DMA、DSP、LCDC …
AHB从设备(slave)
响应一次读/写操作 通过地址映射来选择使用哪一个从设备
外部存储器控制器EMI、APB bridge、UART、 …
AHB仲裁器(arbiter)
允许某一个主设备控制总线
在AMBA协议中没有定义仲裁算法
AHB译码器(decoder)
通过地址译码来决定选择哪一个从设备
11
cnasic
APB组成部分
AHB2APB Bridge
可以锁存所有的地址、数据和控制信号 进行二级译码来产生APB从设备选择信号
APB总线上的所有其他模块都是APB从设 备
不是流水线方式 接口是零功耗
12
cnasic
AMBA协议其他有关问题
与工艺无关 没有定义电气特性 仅在时钟周期级定义时序
提取时序参数依赖于所采用的工艺和工作频率
13
cnasic
例:DMA
14
cnasic
例:DMA
Step0:CPU检查 DMA的状态以确认是 否可用
学习汇报 AMBA总线协议

RETRY和SPLIT的区别
RETRY:arbiter内master的 先权的master获得 SPLIT:当arbiter观察到master收到SPLIT response 时,则该master的优先权mask起来,使其无法获 得bus。若所有master都收到SPLIT,则arbiter把 bus交给dummy master(只会发出IDLE transfer)。 当发出SPLIT response的slave处理完transfer之后, 会发出HSPLIT信号给arbiter,将master的优先权 unmask。
2.3 Control signal
AHB上的control signal分5类
HTRANS[1:0] : Transfer type HBURST[2:0] : Burst type HPORT[3:0] : Protection control HSIZE[2:0] : Transfer size HWRITE : Transfer direction
根据AMBA标准定义了三种不同的总线
高级高性能总线(Advanced High-performance Bus) 高级系统总线(Advanced System Bus) 高级外设总线(Advanced Peripheral Bus)
1.1.1 高级高性能总线(AHB)
用于高性能、高时钟频率的系统模块。
为了支持multiple master,需要arbiter来仲裁;decoder负责位解码, 从multiple slave中选择要回应transfer的slave。 两个mux则负责bus的routing(以不适用tristate bus)。如下图
Bus上传输的信号有七种:clock,arbitration, address,control signal,write data,read data, response signal
amba总线 latency 定义

AMBA(Advanced Microcontroller Bus Architecture)总线是ARM公司提出的一种开放式、高性能的总线标准,常用于嵌入式系统中。
在AMBA总线中,latency(延迟)通常指的是数据从一个设备传输到另一个设备所需的时间,具体定义如下:1. 传输延迟:AMBA总线上的传输延迟是指数据或信号从一个AMBA总线的主设备传输到从设备(或相反)所需的时间。
这包括了信号传输、寻址和响应等过程中所耗费的时间。
2. 处理延迟:除了传输延迟外,AMBA总线上的处理延迟还包括了数据在从设备内部进行处理(如缓存、寄存器等)所需的时间。
这个延迟通常取决于从设备的性能和处理能力。
AMBA总线是一种用于连接嵌入式系统不同功能模块(如处理器、内存、外设等)的开放式总线标准。
在AMBA总线中,latency(延迟)可以分为以下几个方面的定义和优化:1. 传输延迟:AMBA总线上的传输延迟包括了信号从一个设备传输到另一个设备所需的时间。
具体包括以下几个阶段:- 请求发起:当主设备发送请求时,信号需要经过总线来到达目标从设备。
这个过程涉及总线中的传输延迟,包括信号的传输速度和总线的带宽。
- 寻址:一旦请求到达目标从设备,目标设备需要解析请求并确定具体的寻址信息,以确定数据的来源或目标地址。
这个解析过程可能需要一定的时间。
- 响应返回:从设备接收到请求后,需要进行相应的操作,并将结果或响应发送回主设备。
这个过程也会产生一定的延迟。
降低传输延迟的方法包括提高总线的工作频率、增加总线的带宽、优化总线协议和信号传输机制等。
例如,采用更高速的总线规范(如AMBA AXI),使用更快的总线时钟频率,以及采用高性能的总线接口和物理层技术(如串行化)等。
2. 处理延迟:除了传输延迟外,AMBA总线上的处理延迟还包括了数据在从设备内部进行处理所需的时间。
这个延迟取决于从设备的性能和处理能力,例如从设备内部的存储器读写延迟、计算或操作的执行时间等。
AMBA总结

AMBA(Advanced Microcontroller Bus Architecture),即高级微控制器总线体系。
目前,AMBA总线标准一共有四套版本,各个版本的协议都沿用至今。
1)第一套AMBA 1.0总线。
2)第二套AMBA 2.0总线。
3)第三套AMBA 3.0 AXI总线。
4)第四套AMBA4.0总线。
➢AMBA1.0只包含ASB总线和APB总线,这时候的总线协议都是三态总线,但是三态总线要设计者花很多的精力去注意时钟。
➢AMBA2.0总线新增了AHB总线,并且采用了分享型的互连结构,增加了新的特性。
➢为了顺应快速发展的SoC技术,ARM公司推出了具有更强灵活性的AMBA3.0 AXI总线。
➢2010年ARM公司发布了SoC片上总线标准的新版本AMBA4.0总线,由AXI4、AXI4-Lite、AXI4-Stream三种标准构成。
AMBA4.0规范是多家企业共同为行业而设定的,包括业界领先的OEM厂商、半导体及EDA供应商等。
AMBA4.0规范的特殊设计将使嵌入式系统达到过去只有台式电脑、笔记本电脑和网络设备才能达到的水准。
1AMBA 2.0版本标准2.0版AMBA标准定义了三种不同的总线:●AHB(Advanced High-performance Bus)高级高性能总线;●ASB(Advanced System Bus)高级系统总线;●APB(Advanced Peripheral Bus)高级外设总线。
典型的基于AMBA总线的系统框图如图:大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。
主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。
另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。
如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
AMBA发展历史
• AMBA 1.0
• ASB 和 APB
• AMBA 2.0
• AHB, ASB 和 APB
• AMBA 3.0
• AMBA Advanced eXtensible Interface (AXI)
6
一个典型的AMBA系统
• 根据HSIZE和HBURST来计算地址 • 例:起始地址是0x48,HSIZE=010(32bits)
AMBA 总线
SEP3203
2
目录
• AMBA总线概述 • AHB • APB • 不同IP之间的互连
3
系统总线简介
• 系统芯片中各个模块之间需要有接口来连接 • 总线作为子系统之间共享的通信链路 • 优点
• 低成本 • 方便易用
• AHB仲裁器(arbiter)
• 允许某一个主设备控制总线 • 在AMBA协议中没有定义仲裁算法
• AHB译码器(decoder)
• 通过地址译码来决定选择哪一个从设备
11
APB组成部分
• AHB2APB Bridge
• 可以锁存所有的地址、数据和控制信号 • 进行二级译码来产生APB从设备选择信号
• Incrementing burst
• 地址是上一次的传输地址加1
• Wrapping burst
• 例:4beat的wrapping burst 字传输(4byte): • 0x34 -> 0x38 -> 0x3c -> 0x30 • 应用场合:Cache填充
33
地址计算举例
Dummy Master
Default Master
• Granted when all masters SPLIT • Generates IDLE cycles only • Typically Master #0
• GSPraLInTteredswpohnesneLocked master gets • IAmdpdlreemsse/nCtoanstrpoal rMt oufx
30
其它AHB控制信号(续)
• HPROT[3:0]
• HPROT[0]: OPCODE/DATA • HPROT[1]: USER/PRIVILGED • HPROT[2]: Bufferable/Non-Bufferable • HPROT[3]: Cacheable/Non-Cacheable
• APB总线上的所有其他模块都是APB从设备
• 不是流水线方式 • 接口是零功耗
12
AMBA协议其他有关问题
• 与工艺无关 • 没有定义电气特性 • 仅在时钟周期级定义时序
• 提取时序参数依赖于所采用的工艺和工作频率
13
目录
• AMBA总线概述 • AHB • APB • 不同IP之间的互连
• Immediate access to bus
17
Default Slave
0xFFFF_FFFF
Default Slave
0xCFFF_FFFF 0xC000_0000
Slave 3 (APB)
0x5000_FFFF 0x5000_0000
Slave 2 (Internal
31
AHB控制信号小结
HTRANS[1:0] IDLE BUSY
NONSEQ SEQ
HBURST[2:0] SINGLE INCR
WRAP[4|8|16] INCR[4|8|16]
HSIZE[2:0] Byte
Halfword Word
Doubleword ...
HPROT[3:0] 0 - data/opcode 1 - privileged/user 2 - bufferable 3 - cacheable
A+8
A+12
A+12
Slave has know that master need 4 data, A/A+4/ADtr+aun8risn/fAger+b, ui1fr2ssltave
not ready, then
HBURST shows the burst types:
hready=0; but if master is not
• 缺点
• 会造成性能瓶颈
4
AMBA介绍
• Advanced Microcontroller Bus Architecture
• 片上总线的标准
• 定义了三种总线
• AHB (Advanced High-performance Bus) • ASB (Advanced System Bus) • APB (Advanced Peripheral Bus)
19
基本AHB信号
• HRESETn
• 低电平有效
• HADDR[31:0]
• 32位系统地址总线
• HWDATA[31:0]
• 写数据总线,从主设备写到从设备
• HRDATA[31:0]
• 读数据总线,从从设备读到主设备
20
基本AHB信号(续)
• HTRANS
• 指出当前传输的状态
8
ASB
• 高速总线 • 流水线操作 • 支持多个总线主设备 • 支持burst传输 • 总线带宽:8、16、32bits • 三态、双向总线
• (不适于做DFT)
• 下降沿或者上升沿触发
9
APB
• 低速总线、低功耗 • 接口简单 • 在Bridge中锁存地址信号和控制信号 • 适用于多种外设 • 上升沿触发
Memory)
0x3FFF_FFFF 0x0000_0000 0x0000_0000
Slave 1 (External)
Decoder logic
case HADDR is when …. => HSELebi <= ‘1’; when …. => HSELsram <= ‘1’; when …. => HSELapb <= ‘1’; when others => HSELdefault <= ‘1’;
14
AHB总线互连
15
AHB传输
发起一个请求给仲裁 器
允许某个主设 备控制总线
驱动地址和 控制信号
仅选中的从设 备响应地址 /控制信号
拉高HREADY 信号,总线 传输完成
16
Dummy/Default Master
• NONSEQ、SEQ、IDLE、BUSY
• HSIZE
• 指出当前传输的大小
• HBURST
• 指出传输的burst类型
• HRESP
• 从设备发给主设备的总线传输状态
• OKAY、ERROR、RETRY、SPLIT
• HREADY
• 高:从设备指出传输结束 • 低电平:从设备需延长传输周期
10
AHB组成部分
• AHB 主设备(master)
• 初始化一次读/写操作 • 某一时刻只允许一个主设备使用总线 • uP、DMA、DSP、LCDC …
• AHB从设备(slave)
• 响应一次读/写操作 • 通过地址映射来选择使用哪一个从设备 • 外部存储器控制器EMI、APB bridge、UART、 …
21
基本AHB传输
• 两个阶段
• 地址周期,只有一个cycle • 数据周期,由HREADY信号决定需要几个cycle
• 流水线传送
• 先是地址周期,然后是数据周期
22
基本AHB传输(续)
一次无需等待状态的简单传输
If slave hasn’t ready to receive data, how to do?
One transfer need at least two cycles, how to promote its efficiency?
Not ready Not ready Ready
24
Pipeline
基本AHB传输(续)
A Address A Data B Address
end case;
Default_Slave logic
case HTRANS is when IDLE|BUSY => HRESP <= OKAY; when others => HRESP <= ERROR;
end case;
18
AHB信号
▪ HADDR must be aligned to a multiple of data size as given by HSIZE
32
BURST传输
• AHB Burst 操作
• 4beat、8beat、16beat、单个字节传输、未定义长度的 传输
• 支持incrementing和wrapping两种burst传输
• 00:IDLE
• 主设备占用总线,但没进行传输 • 两次burst传输中间主设备发IDLE
• 01:BUSY
• 主设备占用总线,但是在burst传输过程中还没有准备好 进行下一次传输
• 一次burst传输中间主设备发BUSY
27
传输类型(续)
• 10:NOSEQ
• 表明一次单个数据的传输 • 或者一次burst传输的第一个数据 • 地址和控制信号与上一次传输无关
29
其它AHB控制信号
• HWRITE
• 高电平:写 • 低电平:读