技 术 报 告
名 称: AMBA 协议 2.0 详细研究
编 号:
版本号: 0.2
作 者余华新
项 目Zi209
部 门产品中心
日 期2006-09-08
深圳市中兴集成电路设计有限责任公司
1.1 AMBA 标准概述
AMBA 的全称是Advanced Microcontroller Bus Architecture。它的协议包含了 3 个部分,分别阐述了 3种不同功能的总线结构,它们是:
AHB -高效能系统总线 Advanced High-performance Bus (AHB)
ASB - AMBA系统总线 Advanced System Bus (ASB)
APB -外围总线 Advanced Peripheral Bus (APB)
协议中同时包含了总线的测试方法。
总的来说,这些内容加起来就定义出一套为了高性能 SOC 而设计的片上通信的标准。对于 SOC 设计者来说,认识AMBA 总线协议是十分必要的。
另外,ASB 总线与AHB 总线都是系统总线,区别在于ASB 总线并没有AHB 总线的高效传送特性。当系统不需要AHB 总线的高性能的时候,设计者可以选择ASB 总线。但是对于目前的应用来说,只考虑AHB 总线。因此在下面的章节中只介绍AHB 和APB 总线协议。
1.2 定义AMBA 标准的目的
to facilitate the right-first-time development of embedded microcontroller products with one or more CPUs or signal processors
to be technology-independent and ensure that highly reusable peripheral and system macrocells can be migrated across a diverse range of IC processes and be appropriate for full-custom, standard cell and gate array technologies
to encourage modular system design to improve processor independence, providing a development road-map for advanced cached CPU cores and the development of peripheral libraries
to minimize the silicon infrastructure required to support efficient on-chip and off-chip communication for both operation and manufacturing test.
1.3 一个典型的基于AMBA 总线的 SOC 系统架构
这种SOC架构以AHB或者ASB系统总线为主干,挂上CPU,片上内存,和其它DMA设备。AHB或者ASB系统总线在需要做大量数据传送的模块之间提供了高带宽的接口。同时,外围总线APB在AHB或者ASB和低带宽的外围设备之间提供了通信的桥梁。所以APB是AHB或者ASB的二级扩展总线。

1.5 AHB 介绍
AHB是高性能高时钟频率的系统模块,是系统的主干,它直接链接了CPU,片上内存,DMA和外部内存接口。AHB分为主和从两端,它支持多个主的链接,例如CPU,DSP和DMA等,并能进行高带宽的操作。
AHB的特性包括:
Burst 传输
Split 传输
单时钟周期总线Master移交
单时钟沿操作
非3态电路
更宽的数据线宽度(64或128位)
AHB 总线可以包含多个主: 通常有 CPU,测试接口,DMA 或者DSP。
AHB 的从通常包括: 外挂内存接口,APB 桥,内部 RAM。其它一些外围设备通常也能作为从。
但是低带宽的外围设备通常挂在APB 上。
AHB 的主要部分的功能为:
AHB Master: 可初始化读写操作,提供地址和控制信号,同一时间只有 1 个主会被激活。
AHB Slave: 对读写操作在一定的地址范围内作出响应,并对主返回成功,失败或者等待等状态。
AHB Arbiter: 仲裁器主要负责让总线上同时只有1个主在工作。仲裁协议是规定的,但是仲裁算法可以根据应用决定,比如highest priority或者fair access算法等。只挂一个主的AHB上可能不带有仲裁器。
AHB Decoder: 负责对地址进行解码,并提供片选信号到各从设备。每个AHB 总线都需要 1 个中央解码器。
1.6 ASB 介绍(忽略)
1.7 APB 介绍
APB 的全称:Advanced Peripheral Bus
作为AMBA 总线的一层,APB 总线是为了功耗最小化和减低接口复杂度而设计的。APB 总线应该用于低带宽和不需要高性能流水线总线接口的外设。
APB 总线上的所有信号都在正时钟沿发生变化,这个特性决定了 APB 可以更容易地整合到各种设计流程里。
1.8 选择正确的系统总线
1.8.1 Choice of system bus
BothAMBAAHB and ASB are available for use as the main system bus. Typically the choice of system bus will depend on the interface provided by the system modules required.
TheAHB is recommended for all new designs, not only because it provides a higherbandwidth solution, but also because the single-clock-edge protocol results in a s moother integration with design automation tools used during a typical ASIC development.
1.8.2 System bus and peripheral bus
Building all peripherals as fully functional AHB orASB modules is feasible but may not always be desirable:
? In designs with a large number of peripheral macrocells the increased bus loading may increase power dissipation and sacrifice performance.
? Where timing an alysis is required, the slowest element on the bus will limit the maximum performance.
? Many simple peripheral macrocells need latched addresses and control signals as opposed to the high-bandwidth macrocells which benefit from pipelined signalling.
? Many peripheral functions simply require a selection strobe which conveys macrocell selection and read/write bus operation, without the requirement to broadcast the high-frequency clock signal to every peripheral.
1.8.3 When to useAMBAAHB/ASB orAPB
AfullAHB orASB interface is used for:
? bus masters
? on-chip memory blocks
? external memory interfaces
? high-bandwidth peripherals with FIFO interfaces
? DMA slave peripherals.
A simple APB interface is recommended for:
? simple register-mapped slave devices
? very low power interfaces where clocks cannot be globally routed
? grouping narrow-bus peripherals to avoid loading the system bus.
1.9 协议注意
The following points should be considered when reading the AMBA specification: ? Technology independence
? Electrical characteristics
? Timing specification.
1.9.1 技术独立性
AMBAis a technology-independent on-chip protocol. The specification only details the bus protocol at the clock cycle level.
1.9.2 电气特性
No information regarding the electrical characteristics is supplied within the AMBA specification as this will be entirely dependent on the manufacturing process
technology that is selected for the design.
1.9.3 时序定义
The AMBA protocol defines the behavior of various signals at the cycle level. The exact timing requirements will depend on the process technology used and the frequency of operation.
Because the exact timing requirements are not defined by the AMBA protocol, the system integrator is given maximum flexibility in allocating the signal timing budget amongst the various modules on the bus.
2.1 AHB 信号列表
AHB 的信号前缀都是H。


2.2 ASB 信号列表(忽略)
2.3 APB 信号列表


3.1 什么是AHB 总线?
AHB 主要用于高性能模块(如 CPU、DMA 和 DSP 等)之间的连接,作为 SoC 的片上系统总线,它包括以下一些特性:



3.1.1 一个典型的基于AHB 总线的微控制器架构
图 3-1 为一典型的AMBA 系统架构图,其中包含了二个主要的总线 ─ 高效能总线 (AHB) 和 外围总线 (APB)。
AHB 主要是针对高效率、高频宽及快速系统模块所设计的总线,它可以连接如微处理器、芯片上或芯片外的内存模块和直接内存存取机制等高效率模块,此总线持别适合用于可合成和自动测试技术上的设计流程中;
AMBA 中另一高效率系统模块为ARM 系统总线(ASB),目前已被AHB 所取代了,因此在本文中将不提及。
AMBA 中的APB 主要用在低速且低功率的外围,可针对外围作功率消耗及复杂接口的最佳化。由图3-1 可知,负责AMBAAHB 和APB 之间的沟通管道为一桥梁(bridge),APB bridge 主要负责总线数据的栓取、译码及传送。

AMBA 的主要目标是要让使用者能在最快的时间内完成一以内嵌式微处理器为平台的系统设计,由于它是一个跟制程无关(Technology Independent)的总线设计,并且可使具重复使用的外围及系统宏组件容易被整合进去无论是全客户、标准组件和逻辑数组为技术的设计流程中;且要让模块化的设计很容易的被整合进去一个以微处理器为平台的系统发展环境。在AMBA 的规格中亦提供一个测试控制接口环境,使得AHB和APB 可透过外在的系统测试样品来作测试,也因此减轻了功能测试时的工作。
AHB 以仲裁器来控制多任务器以连接在其上的M 与 S。
在AHB 总线上,其操作顺序一般如下:
1. M 要求总线使用
2. 仲裁器响应允许信号
3. M 送出地址与控制信号
基本的AHB 传送特性:
一次传送包括给出地址、控制信号周期(address, control)与数据周期(data cycle)。地址与控制信号周期最少需要一个周期,但是会因为数据的原因多出几个周期。数据周期可以藉由 HREADY 信号来延迟。拉起HREADY 代表此次传送已经 OK。
AHB 支持批量式数据传送,可以自动递增地址。递增地址方式分为:持续递增(incrementing without wrapping at address boundary),另一种为回绕传送 (wrapping at address boundary.)。
在AHB 上写入总线将数据送到 S,由读取总线将数据送到 M。
S 以HRESP[1:0]信号表示传送的状态:
HRESP[1:0] = 00 (OKAY):当此信号再加上拉高的HREADY(OKAY+高HREADY)就表示此次的传送已完成。
HRESP[1:0] = 01 (ERROR):传送失败。
HRESP[1:0] = 10 (RETRY) and HRESP[1:0] = 11 (SPLIT):当数据传送无法立刻完成时,M 会继续尝试完成数据的传送。
3.2 AHB 总线互连结构
AHB 的主要部分的功能如下表:

3.3 AHB 操作概述
a. 在AHB 传送开始之前,M 必须得到仲裁器的总线访问授权:M 向仲裁器发出总线请求信号,然后仲裁器指示这个M 什么时候可以得到授权
b. M 得到总线访问授权后,驱动地址与控制信号,来开始AHB 传送。这些信号提供传送地址,传送方向,传送带宽,是否这次传送是burst 传送等信息。
c. 在 AHB 上,一次传送包括给出地址、控制信号周期与数据周期。地址与控制信号周期最少需要一个周期,但是会因为数据的原因多出几个周期。数据周期可以藉由HREADY 信号来延迟。
d. AHB 支持批量式数据传送,可以自动递增地址。递增地址方式分为:持续递增与回绕传送。
e. 当HREADY 被 S 拉低时,会发生等待状态。需要延迟传送的周期时,就会在数据期间将HREADY拉低,此时地址与数据都必须延伸。
f. S 以HRESP[1:0]信号表示传送的状态为:OKAY,ERROR,RETRY,或 SPLIT。
g. 在AHB 总线上,M 的传送型态可由HTRANS[1:0]来表示,有 IDLE ,BUSY ,NONSEQ ,SEQ四种型态。
h. 在AHB 总线上,HWRITE 表示传送方向,HWRITE 为HIGH 时,M 做写入动作,数据会由M放到HWDATA[31:0] 总线上。
i. HWRITE 为低时,M 做读取动作,被寻址到的 S 会将数据放到HRDATA[31:0] 总线上。
j. 传送数据大小由HSIZE[2:0] 表示每次传送的字节数目。
k. 在 AHB 上可使用大端摆放法或小端摆放法,由系统设计者决定。
l. 仲裁器以HMASTER 表示当前是哪一个M 在使用bus,此信号也可用来控制地址多任务器。
m. 一个可执行分割传送的 S 以 HSPLIT[15:0]信号,让仲裁器知道要让哪一个 M 完成其未完成的分割传送。
n. S 可以用 SPLIT 来解决延迟太长的存取,仲裁器必须观察响应信号并且遮掉已被分割传送的M,使其等候HSPLIT 信号的通知后才 grant 其总线使用权。
更多内容见附件
免责声明:
本页面/内容部分素材来源于互联网公 开 信 息,旨在传递更多信息,不代表本平台立场。
版权归原作者或机构所有,如涉及侵权,请通过平台联系我们,我们将在核实后第一时间处理。
本平台对转载内容的真实性、准确性不作任何保证,用户需自行判断并承担使用风险。