AMBA_AXI3_v1.0协议中文完整翻译
AMBA_AHB_APB_AXI协议对比分析
AMBA_AHB_APB_AXI协议对比分析引言:AMBA (Advanced Microcontroller Bus Architecture)是ARM公司提供的一种开放式的总线标准,旨在为SOC(System on Chip)设计提供一个灵活、高性能的总线框架。
AMBA协议家族中包括了AHB(Advanced High-performance Bus)、APB(Advanced Peripheral Bus)和AXI (Advanced eXtensible Interface)三种协议。
本文将对这三种协议进行对比分析,详细介绍其特点、性能和应用场景。
一、AHB协议AHB协议是AMBA协议家族中最早发布的协议之一,用于连接SOC内部的高性能主设备和多个从设备之间的通信。
AHB协议通过总线仲裁、突发传输和分片传输等技术,实现了高带宽和低延迟的数据传输。
其主要特点包括:1.性能:-支持高带宽传输:AHB协议支持高带宽的传输,能够满足高性能SOC 内部各个模块之间的数据传输需求。
- 低延迟传输:AHB协议通过引入Pipeline和Split交易等机制,实现了低延迟的数据传输。
2.特性:-总线仲裁:AHB总线采用非常灵活的总线仲裁机制,可以支持多主设备并发传输。
-突发传输:AHB协议支持突发传输,可以在一次仲裁后连续传输多个数据。
-分片传输:AHB协议支持分片传输,可以将大块数据分片传输,降低总线带宽的占用率。
-低功耗:AHB协议通过支持低功耗技术,降低了整个系统的功耗消耗。
3.应用场景:-SOC内部高性能数据传输:AHB协议主要适用于SOC内部的高性能数据传输,例如CPU和DMA控制器、外设控制器之间的数据传输。
二、APB协议APB协议是AMBA协议家族中最简单的一种协议,用于连接SOC内部的低带宽从设备,例如配置寄存器和控制逻辑等。
APB协议相对于AHB协议具有以下特点:1.性能:-低带宽传输:APB协议支持低带宽的传输,主要用于传输配置和控制信息,而不是大量的数据。
AMBA_AHB_APB_AXI协议对比分析..
9
HREADY:S应答M是否读写操作传输完成: 1-传输完 成, 0-需延长传输周期。需要注意的是,HREADY 做 为总线上的信号,它是M和S 的输入;同时每个S 需 要输出自己的HREADY。所以对于S 会有两个 HREADY 信号,一个来自总线的输入,一个自己给到 多路器的输出。 HRESP:S应答当前传输状态,OKAY、ERROR、 RETRY、SPLIT HRDATA:读数据总线,从S读到M
3
一个典型的基于AMBA 总线的SOC 系统架构
这种SOC架构以AHB为主干,挂上CPU,片上内 存,和其它DMA设备。
4
AHB 主要是针对高效率、高频宽及快速系统模块所设 计的总线,它可以连接如微处理器、芯片上或芯片外 的内存模块和DMA等高效率模块 AMBA 中的APB 主要用在低速且低功率的外围,可 针对外围设备作功率消耗及复杂接口的最佳化 APB在AHB和低带宽的外围设备之间提供了通信的桥 梁,所以APB是AHB或者ASB的二级扩展总线
19
APB/AHB/AXI对比
APB 低功耗 AHB 高速度 AXI 高速度,高带宽 管道化互联 单向通道 只需首地址 读写并行 支持乱序 支持非对齐操作 有效支持初始延迟 较高的外设
20
连线非常多
AHB总线互连
7
允许某个主设备控制总线 发起一个请求给仲 裁器
驱动地址和控 制信号
仅选中的从设备响应地 址/控制信号
拉高HREADY信号,总线 传输完成
8
AHB基本信号
HADDR:32位系统地址总线 HTRANS: M指示传输状态,NONSEQ、SEQ、IDLE、 BUSY HWRITE:传输方向:1-写,0-读 HSIZE:传输单位 HBURST:传输的burst类型 HWDATA:写数据总线,从M写到S
最新AMBA-AXI总线学习笔记资料
AXI总线协议资料整理第一部分:1、AXI简介:AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。
它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。
AXI 是AMBA 中一个新的高性能协议。
AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
2、AXI 特点:单向通道体系结构。
信息流只以单方向传输,简化时钟域间的桥接,减少门数量。
当信号经过复杂的片上系统时,减少延时。
支持多项数据交换。
通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。
独立的地址和数据通道。
地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。
第二部分:本部分对AXI1.0协议的各章进行整理。
第一章本章主要介绍AXI协议和AXI协议定义的基础事务。
1、AXI总线共有5个通道分别是read address channel、write address channel 、read data channel 、write data channel、write response channel。
每一个AXI传输通道都是单方向的。
2、每一个事务都有地址和控制信息在地址通道(address channel)中,用来描述被传输数据的性质。
3、读事务的结构图如下:4、写事务的结构图如下:5、这5条独立的通道都包含一个信息信号和一个双路的V ALD、READY握手机制。
amba协议手册
AMBA协议手册一、AMBA概况AMBA(Advanced Microcontroller Bus Architecture)协议,又被称为AMBA 2.0,是一种针对高性能、高吞吐量嵌入式系统设计的总线协议。
它定义了在一个或多个嵌入式处理器和多个外设之间的高效通信方式,广泛应用于各类芯片和集成电路中。
AMBA为微控制器、数字信号处理器(DSP)以及通信和消费电子等多种应用提供了优秀的性能表现。
二、AMBA版本历史AMBA的发展经历了几个重要的版本,每个版本都增加了新的特性和功能。
1.AMBA 1.0:这个版本主要定义了简单的主从设备间的通信方式,包括数据传输和地址协议。
2.AMBA 2.0:在AMBA 2.0中,引入了更复杂的特性,如猝发传输和更高级的地址和数据传输控制。
3.AMBA 3.0:这个版本引入了新的特性,如外部总线的对齐和分区、扩展的地址空间和数据字节宽度的动态调整。
4.AMBA 4.0:随着芯片设计的不断发展和系统性能的持续提高,AMBA 4.0为高带宽总线传输和高频率时钟提供了支持。
三、AMBA组成部分AMBA协议主要包括以下组成部分:1.AXI(Advanced eXtensible Interface):AXI是一种高性能、高吞吐量的总线接口,用于连接主设备和从设备。
它支持多个通道的数据传输,每个通道都有数据写和数据读两个通道。
2.ACE(Advanced Coherency Enhanced):ACE是AMBA的一种扩展,提供了更高级的内存一致性保证,确保在多处理器系统中数据的一致性。
3.APB(Advanced Peripheral Bus):APB是一种简单、低速的总线接口,主要用于连接低速外设。
它基于传统的Peripheral Bus,但提供了更高的性能和更小的芯片面积。
4.AHB(Advanced High-performance Bus):AHB是一种高性能的总线接口,主要用于连接高性能的处理器和高速存储器。
AMBAAXI总线详解要点
AXI总线协议资料整理第一部分:1、AXI 简介:AXI (Adva need eXte nsible In terface 是一种总线协议,该协议是ARM 公司提出的AMBA (Advaneed Microcontroller Bus Architecture) 3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。
它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。
AXI是AMBA 中一个新的高性能协议。
AXI技术丰富了现有的AMBA标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
2、AXI特点:单向通道体系结构。
信息流只以单方向传输,简化时钟域间的桥接,减少门数量。
当信号经过复杂的片上系统时,减少延时。
支持多项数据交换。
通过并行执行猝发操作,极大地提高了数据吞吐能力, 可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。
独立的地址和数据通道。
地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。
第二部分: 本部分对AXI1.0协议的各章进行整理。
第一章本章主要介绍AXI协议和AXI协议定义的基础事务。
1、AXI总线共有5个通道分别是read address channel、write address channel、read data channel、write data channe、write responsechanne。
每一个AXI传输通道都是单方向的。
2、每一个事务都有地址和控制信息在地址通道(address channel中,用来描述被传输数据的性质。
3、读事务的结构图如下:5、这5条独立的通道都包含一个信息信号和一个双路的机制。
6 信息源通过VALID 信号来指示通道中的数据和控制信息什么时候有效。
AMB精编XI总线中文详解
AXI总线协议资料整理第一部分:1、AXI简介:AXIAdvanced eXtensible Interface是一种总线协议,该协议是ARM 公司提出的AMBAAdvanced Microcontroller Bus Architecture协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线;它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛;AXI 是AMBA 中一个新的高性能协议;AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的片上系统SoC设计的需求;2、AXI 特点:单向通道体系结构;信息流只以单方向传输,简化时钟域间的桥接,减少门数量;当信号经过复杂的片上系统时,减少延时;支持多项数据交换;通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗;独立的地址和数据通道;地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低;第二部分:本部分对协议的各章进行整理;第一章本章主要介绍AXI协议和AXI协议定义的基础事务;1、AXI总线共有5个通道分别是read address channel、write address channel 、read data channel 、write data channel、write response channel;每一个AXI传输通道都是单方向的;2、每一个事务都有地址和控制信息在地址通道address channel中,用来描述被传输数据的性质;3、读事务的结构图如下:4、写事务的结构图如下:5、这5条独立的通道都包含一个信息信号和一个双路的V ALD、READY握手机制;6、信息源通过V ALID信号来指示通道中的数据和控制信息什么时候有效;目地源用READY信号来表示何时能够接收数据;读数据和写数据通道都包括一个LAST信号,用来指明一个事物传输的最后一个数据;7、读和写事务都有他们自己的地址通道,这地址通道携带着传输事务所必须的地址和信息;8、读数据通道传送着从设备到主机的读数据和读响应信息;读响应信息指明读事务的完成状态;9、写数据通路传送着主机向设备的写数据;每八个数据都会有一个byte lane ,用来指明数据总线上面的哪些byte有效;写响应通道提供了设备响应写事务的一种方式;这完成信号每一次突发式读写会产生一个;10、主机和设备的接口和互联图如下:11、传输地址信息和数据都是在V ALID和READY同时为高时有效;12、突发式读的时序图如下:当地址出现在地址总线后,传输的数据将出现在读数据通道上;设备保持V ALID 为低直到读数据有效;为了表明一次突发式读写的完成,设备用RLAST信号来表示最后一个被传输的数据;13、重叠突发式读时序图如下:设备会在第一次突发式读完成后处理第二次突发式读数据;也就意味着,主机一开始传送了两个地址给设备;设备在完全处理完第一个地址的数据之后才开始处理第二个地址的数据;14、突发式写时序图如下:这一过程的开始时,主机发送地址和控制信息到写地址通道中,然后主机发送每一个写数据到写数据通道中;当主机发送最后一个数据时,WLAST信号就变为高;当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成;15、AXI协议支持乱序传输;他给每一个通过接口的事务一个IDtag;协议要求相同ID tag的事务必须有序完成,而不同ID tag可以乱序完成;第二章本章主要介绍一些信号描述,其中包括全局信号、写地址通道信号、写数据通道信号、写响应通道信号、读地址通道信号、读数据通道信号、低功耗接口信号;本章的所有表都是以32位的数据总线、4位的写数据闸门、4位的ID段; 1、全局信号2、写地址通道信号信号源描述WID3:0 主机写ID tag,WID的值必须与AWID的值匹配WDATA31:0 主机写的数据;WSTRB3:0 主机写阀门;WSTRBn标示的区间为WDATA8n+7:8nWLAST 主机写的最后一个数据;WV ALID 主机写有效1 = 写数据和阀门有效0 = 写数据和阀门无效WREADY 设备写就绪;指明设备已经准备好接受数据了1 = 设备就绪0 = 设备未就绪4、写响应通道信号信号源描述BID3:0 设备响应ID , 这个数值必须与AWID的数值匹配; BRESP1:0 设备写响应;这个信号指明写事务的状态;可能有的响应:OKAY、EXOKAY、SLVERR、DECERR;BV ALID 设备写响应有效;1 = 写响应有效0 = 写响应无效BREADY 主机接受响应就绪;该信号表示主机已经能够接受响应信息;1 = 主机就绪0 = 主机未就绪6、读数据通道信号7、低功耗接口信号信号源描述CSYSREQ CLOCK controller 系统低功耗请求;此信号来自系统时钟控制器,使外围设备进入低功耗状态; CSYSACK 外围设备低功耗请求应答;CACTIVE 外围设备Clock active1 = 外围设备时钟请求0 = 外围设备时钟无请求第三章本章介绍主机/设备之间的握手过程以及READY和V ALD握手信号的关系以及默认值;1、全部5个通道使用相同的V ALID/READY握手机制传输数据及控制信息;传输源产生VLAID信号来指明何时数据或控制信息有效;而目地源产生READY信号来指明已经准备好接受数据或控制信息;传输发生在V ALID和READY信号同时为高的时候;V ALID和READY信号的出现有三种关系;(1)V ALID先变高READY后变高;时序图如下:在箭头处信息传输发生;(2)READY先变高V ALID后变高;时序图如下:同样在箭头处信息传输发生;(3)V ALID和READY信号同时变高;时序图如下:在这种情况下,信息传输立马发生,如图箭头处指明信息传输发生;2、通道之间的关系地址、读、写和写响应通道之间的关系是灵活的;例如,写数据可以出现在接口上早于与其相关联的写地址;也有可能写数据与写地址在一个周期中出现;两种关系必须被保持:1读数据必须总是跟在与其数据相关联的地址之后;2写响应必须总是跟在与其相关联的写事务的最后出现;3、通道握手信号之间的依赖性读事务握手依赖关系如图:(1)设备可以在ARV ALID出现的时候在给出ARREADY信号,也可以先给出ARREADY信号,再等待ARV ALID信号;(2)但是设备必须等待ARV ALID和ARREADY信号都有效才能给出RV ALID 信号,开始数据传输;写事务握手依赖关系如图:(1)主机必须不能够等待设备先给出AWREADY或WREADY信号信号后再给出信号AWV ALID或WVLAID;(2)设备可以等待信号AWV ALID或WV ALID信号有效或者两个都有效之后再给出AWREADY信号;(3)设备可以等待AWV ALID或WV ALID信号有效或者两个信号都有效之后再给出WREADY信号;第四章本章主要介绍AXI突发式读写的类型和在一次突发式读写事务内如何计算地址和byte lanes;1、突发式读写的地址必须以4KB对齐;2、信号AWLEN或信号ARLEN指定每一次突发式读写所传输的数据的个数; 具体信息如下图:3、ARSIZE信号或AWSIZE信号指定每一个时钟节拍所传输的数据的最大位数;具体信息如下图:需要注意的是任何传输的SIZE都不能超过数据总线的宽度;4、AXI协议定义了三种突发式读写的类型:固定式的突发读写、增值式突发读写、包装式突发读写;用信号ARBURST或AWBURST来选择突发式读写的类型;具体信息如下图:(1)固定式突发读写是指地址是固定的,每一次传输的地址都不变;这样的突发式读写是重复的对一个相同的位置进行存取;例如FIFO;(2)增值式突发读写是指每一次读写的地址都比上一次的地址增加一个固定的值;(3)包装式突发读写跟增值式突发读写类似;包装式突发读写的地址是包数据的低地址当到达一个包边界;包装式突发读写有两个限制:错误!起始地址必须以传输的size对齐;错误!突发式读写的长度必须是2、4、8或者16;5、关于一些地址的计算公式;Start_Address 主机发送的起始地址Number_Bytes 每一次数据传输所能传输的数据byte的最大数量Data_Bus_Bytes 数据总线上面byte lanes的数量Aligned_Address 对齐版本的起始地址Burst_Length 一次突发式读写所传输的数据的个数Address_N 每一次突发式读写所传输的地址数量,范围是2-16Wrap_Boundary 包装式突发读写的最低地址Lower_Byte_Lane 传输的最低地址的byte laneUpper_Byte_Lane 传输的最高地址的byte laneINTx 对x进行向下取整下面是计算公式:Start_Address = ADDRNumber_Bytes = 2SIZEBurst_Length = LEN + 1Aligned_Address = INTStart_Address / Number_Bytes x Number_Bytes Address_1 = Start_AddressAddress_N = Aligned_Address + N –1 x Number_BytesWrap_Boundary = INTStart_Address / Number_Bytes x Burst_Lengthx Number_Bytes x Burst_Length如果有Address_N = Wrap_Boundary + Number_Bytes x Burst_Length,则后面的公式成立Address_N = Wrap_Boundary;第一次突发式读写:Lower_Byte_Lane = Start_Address - INTStart_Address / Data_Bus_Bytesx Data_Bus_BytesUpper_Byte_Lane = Aligned_Address + Number_Bytes - 1 -INTStart_Address / Data_Bus_Bytes x Data_Bus_Bytes除了第一次读写之后的读写:Lower_Byte_Lane = Address_N –INTAddress_N / Data_Bus_Bytesx Data_Bus_BytesUpper_Byte_Lane = Lower_Byte_Lane + Number_Bytes –1DATA8 x Upper_Byte_Lane + 7 : 8 x Lower_Byte_Lane;第五章本章描述了AXI协议支持的系统级的Cache和保护单元;1、ARCACHE3:0和AWCACHE3:0的编码如下图:在一些情况下,信号AWACAHE可以用来确定哪个部件来提供写响应;如果写事务被指定为bufferable ,那么他接受来自桥或者系统级的cache提供的写响应;如果事务被指定为non-bufferable,那么写响应必须有最终目的源提供;2、AWPROT或者ARPROT信号提供三种级别的存取保护:(1)正常存取或者特权存取, ARPROT0 和AWPROT0(2)安全性存取或者没有安全性存取, ARPROT1 和AWPROT1(3)指令存取或者数据存取ARPROT2 和AWPROT2信号ARPROT2:0 和信号AWPROT2:0的编码如下图:第六章本章描述了AXI协议工具的独占式存取和锁存取机制;1、当对自动存取时能之后,可以通过信号ARLOCK1:0或信号AWLOCK1:0来配置独占式存取和锁存取;编码如下图:我们通过信号ARLOCK1:0或AWLOCK1:0来选择独占式存取,用信号RRESP1:0或BRESP1:0来指明独占式存取的成功与否;2、主机在请求独占式存取时,设备会返回两个响应分别是EXOKAY和OKAY;EXOKAY是指设备支持独占式存取,而OKAY是指设备不支持独占式存取;、3、如果一个设备不支持独占式存取,可以忽略信号ARLOCK1:0和AWLOCK1:0;他必须提供OKAY响应对正常式存取和独占式存取;如果一个设备要支持独占式存取则必须有硬件监视器;4、通过信号ARLOCK1:0或信号AWLOCK1:0对事务加锁,需要确定只允许主机存取设备区域直到一个未加锁的事务从同一个主机完成;此处推荐锁存取只用来支持legacy devices;5、推荐遵循下面两天建议,但是不强制:(1)保持所有锁事务序列都在相同的4KB地址区域内;(2)限制用琐事务序列对两个事务加锁;第七章本章描述了AXI读写事务的四个设备响应;1、AXI协议对读事务和写事务都有响应;对于读事务,读响应与读数据一起发送给主机,而写事务将写响应通过写响应通道传送;AXI协议的响应类型有OKAY、EXOKAY、SLVERR、DECERR;2、通过信号RRESP1:0和BRESP1:0来编码响应信号,具体如下图:协议规定请求的需要传输的数据数量必须被执行,即使有错误报告;在一次突发式读写的剩余数据不会被取消传输,即使有单个错误报告;3、AXI协议的四种响应类型:正常存取成功、独占式存取、设备错误、译码错误;AXI协议要求,在一个传输事务中的所有数据必须传输完成,即使有错误状态发生;第八章本章描述AXI协议用事务ID tags来处理多地址和乱序传输;1、下面介绍5中事务IDs:(1)AWID 这个ID tag是写地址群组信号;(2)WID 这个是写ID tag在写事务中,与写数据在一起,主机传送一个WID 去匹配与地址相一致的AWID;(3)BID 这个ID tag是写响应事务中;设备会传送BID去匹配与AWID和WID相一致的事务;(4)ARID 这个ID tag是读地址群组信号;(5)RID 这个ID tag是在读事务中;设备传送RID去匹配与ARID相一致的事务;2、主机可以使用一个事务的ARID或者AWID段提供的附加信息排序主机的需要;事务序列规则如下:(1)从不同主机传输的事务没有先后顺序限制;他们可以以任意顺序完成;(2)从同一个主机传输的不同ID事务,也没有先后顺序限制;他们可以以任意顺序完成;(3)相同数值的AWID写事务数据序列必须按照顺序依次写入主机发送的地址内;(4)相同数值的ARID读事务数据序列必须遵循下面的顺序:错误!当从相同设备读相同的ARID时,设备必须确保读数据按照相同的地址顺序接受;错误!当从不同的设备读相同的ARID时,接口处必须确保读数据按照主机发送的相同的地址顺序;(5)在相同的AWID和ARID的读事务和写事务之间没有先后顺序限制;如果主机要求有顺序限制,那么必须确保第一次事务完全完成后才开始执行第二个事务;3、当一个主机接口与interconnect相连时,interconnect会在信号ARID、AWID、WID段添加一位,每一个主机端口都是独一无二的;这样做有两个影响:(1)主机不需要去知道其他主机的ID数值,因为interconnect是ID值是唯一的,当将主机number添加到段中;(2)在设备接口处的ID段的宽度要比主机接口处的ID段宽;对于读数据,interconnect附加一位到RID段中,用来判断哪个主机端口读取数据;Interconnect会移除RID段中的这一位在将RID的值送往正确的主机端口之前;第九章本章描述了AXI读写数据总线传输的不同大小和接口如何用字节不变endian去握手混合endian传输;1、Narrow传输,当主机产生的数据宽度小于数据总线宽度时,地址和控制信息决定哪一个byte lanes为有效的数据;下面是两个应用byte lanes的例子:Example 1:Example 2:2、下面是一个数据不变性存取需求的数据结构的例子;他包含头信息,例如source、destination identifiers这些信息是采用little-endian格式,但是payload是big-endian 字节流,具体情况如下图:数据不变性确保在数据结构中little-endian存取头信息的部分不会破坏其他big-endian数据;第十章本章描述AXI协议不对齐握手传输;1、AXI协议允许主机使用低阶地址行去标示一个不对齐的起始地址在突发读写中;低阶地址行的信息必须包含byte lane strobes信息;2、下面是几个例子来表明数据以对齐或者不对齐的地址为起始地址,分别在32位和64位数据总线上面传输的情况;其中暗色的框表示没有传输的数据;第十一章本章主要描述AXI时钟和复位信号的时序;1、在复位期间,以下接口必须遵循:(1)主机接口必须将ARV ALID、AWV ALID、WV ALID信号置低; (2)设备接口必须将RV ALID、BV ALID信号置低;(3)所有其它信号可以为任意值;2、主机接口必须开始将ARV ALID、AWVLAID或WV ALID置高仅仅在ARESETn信号变高后的ACK的第一个上升沿;具体情况如下图:第十二章本章主要描述AXI协议在进入和离开低功耗状态期间的时钟控制接口; 1、低功耗时钟控制接口包括下面两个信号:(1)来自外围设备的信号,用于指明什么时候时钟使能能或者禁能;(2)两个握手信号用于系统时钟控制器请求退出或者进入低功耗状态;2、时钟控制接口的一个主要信号时CACTIVE,外围设备用这个信号来指明请求时钟使能;外围设备置CACTIVE有效去请求时钟,系统时钟控制器必须马上使能时钟;如果外围设备将CACTIVE置为无效,则系统时钟控制器将自己决定是否使能或者禁能外围设备时钟;3、AXI协议提供双线request/acknowledge 握手来支持请求:(1)CSYSREQ 当外围设备请求进入低功耗状态时,系统时钟控制器将CSYSREQ置低,平时CSYSREQ都是置高的;(2)CSYSACK 外围设备用CSYSACK信号作为进入低功耗状态和离开低功耗状态的应答信号;下面是CSYSREQ和CSYSACK信号之间的时序图:系统时钟控制器在T1时刻发出请求,外围设备在T2时刻给予应答,此时进入低功耗状态;在T3时刻,CSYSREQ变高,请求离开低功耗状态,在T4时刻得到应答,此时离开低功耗状态进入正常模式;4、外围设备可以选择接受请求也可以选择不接受请求;主要通过信号CACTIVE 来决定;接受请求的情况:不接受请求的情况:5、既可以通过系统也可以通过外围设备来退出低功耗状态;只要置信号CACTIVE和CSYSREQ这两个信号中的一个为高就可以退出低功耗模式; 而系统可以通过置CSYSREQ为高来退出低功耗模式;6、时钟控制框图如下:。
AXI总线中文详解.
AXI总线协议资料整理第一部分:1、AXI简介:AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。
它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。
AXI 是AMBA 中一个新的高性能协议。
AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
2、AXI 特点:单向通道体系结构。
信息流只以单方向传输,简化时钟域间的桥接,减少门数量。
当信号经过复杂的片上系统时,减少延时。
支持多项数据交换。
通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。
独立的地址和数据通道。
地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。
第二部分:本部分对AXI1.0协议的各章进行整理。
第一章本章主要介绍AXI协议和AXI协议定义的基础事务。
1、AXI总线共有5个通道分别是read address channel、write address channel 、read data channel 、write data channel、write response channel。
每一个AXI传输通道都是单方向的。
2、每一个事务都有地址和控制信息在地址通道(address channel)中,用来描述被传输数据的性质。
3、读事务的结构图如下:4、写事务的结构图如下:5、这5条独立的通道都包含一个信息信号和一个双路的V ALD、READY握手机制。
AMBABUS简单笔记
AMBA (Advanced Microcontroller Bus Architecture)名词解释:ASB (Advanced System Bus)AHB (Advanced High-performance Bus)AHB-Lite: AHB-Lite is a subset of AHB which is formally defined in the AMBA 3 standard. This subset simplifies the design for a bus with a single master. The ARM AMBA Support FAQ page includes notes on how to integrate a full AHB master into an AHB-lite system and vice versa.APB (Advanced Peripheral Bus)AXI (Advanced eXtensible Interface)From wiki:AMBA specification (First version) defines two buses/interfaces:Advanced System Bus (ASB)Advanced Peripheral Bus (APB)AMBA 2 specification defines three buses/interfaces:Advanced High-performance Bus (AHB)Advanced System Bus (ASB)Advanced Peripheral Bus (APB)AMBA 3 specification defines four buses/interfaces:Advanced eXtensible Interface (AXI3 or AXI v1.0)Advanced High-performance Bus Lite (AHB-Lite v1.0)Advanced Peripheral Bus (APB v1.0)Advanced Trace Bus (ATB v1.0)The AMBA 4 specification defines following buses/interfaces:AXI Coherency Extensions (ACE)AXI Coherency Extensions Lite (ACE-Lite)Advanced eXtensible Interface 4 (AXI4)Advanced eXtensible Interface 4 Lite (AXI4-Lite)Advanced eXtensible Interface 4 Stream (AXI4-Stream v1.0)Advanced Trace Bus (ATB v1.1)Advanced Peripheral Bus (APB v2.0)ASB and AHB 通常用于高速设备连接,典型比如CPU与存储器(RAM)之间的连接,需要大带宽;ASB 是AMBA 1.0定义的系统总线,能力和AHB相比要弱一些,数据宽度小一些(32/64bit)。
AMBA APB4 与 AMBA3 AHB-Lite 1.0 协议介绍
AMBA APB4 与 AMBA3 AHB-Lite 1.0 协议介绍2013年09月18日 16:09 绝对好文关键词:AMBA , APB4 , AHB-Lite作者:Allen Zhan[介绍]根据ARM的说法, 今天 AMBA 已经成为了业界事实上的总线标准. 本文我们简单对AMBA4 中的 APB v2.0(也称为 APB4), 以及 AMBA3 AHB-Lite v1.0 进行简单的了解. 我们的介绍集中在, 我们比较有兴趣的地方. 尽管如此, 也可能几乎覆盖了协议中几个最重要的部分.[AMBA APB]AMBAAdvanced Microcontroller Bus Architecture, 由ARM定义的总线架构(标准), 由一个协议家族组成. ARM 声称这一标准已经称为事实上的 uController 业界通用标准.APBThe Advanced Peripheral Bus(APB) 是 AMBA 协议家族中一个组成部分.它被定义为一个 low-cost 的接口, 为了最小能耗与减小接口的复杂性进行的优化设计.被用于连接通用外围, 比如 timers, inerrupt controllers, UART是, and IOs. 通过 system-to-peripheral bus bridge 与 main system bus 相连, 有助于降低能耗.APB 版本当前(2013年9月), 最近的 APB协议版本是 AMBA APB Protocol Specification v2.0. 或者因为属于 AMBA4 家族中的发布协议, 一般也被称为 APB4.而在第一个版本(APB2 )中, APB 的基本组元, APB bridge 与 APB slave 被定义.而在 APB3 中, Ready signal 被引入, 这意味着增加了操作状态中, 增加了wait state. 另外增加了 PSLVERR, 用于错误报告的 signal.最近的 APB4, 增加了 PPROT 与 PSTRB signal.APB bridge 与 APB slave我们可以挂载各种"慢速"的外设在 APB 上, 比如 IO, 比如 UART, 比如 SPI, etc. 它们都作为 slave 的角色存在.但是, 我们想想看, bridge 这个 role 就蛮有意思. 它实际上暗示我们, APB 不能"单独存在". 我们这里所谓不能"单独存在"的意思, 是说 APB 一定不能直接连接在 processor 上(或者说 arm core上). 而最可能的, 是通过 APB bridge 而连接在高速的 bus 上.实际上, 在 AHB-Lite 协议中, 我们发现 APB bridge 被作为 AHB-Lite 的slave 而被定义.Data busesAPB 协议有两个独立的 data bus, 一个用来读 data, 一个用来写 data.因为没有独立的握手信号, 所以在两根bus上, 同一时刻数据传输不能同时发生.Write Transfers我们简单对 APB 的 trasfers 过程进行分析, 比如我们分析 write transfer with no wait states:[图例1: Write transfer with no wait states]T0: Idle stateT1: Setup statewrite address PADDR, write data PWDATAsetup state 仅仅只保持 1pcs clock cycle, 而在下一个 PCLK 的上升沿, 一定进入 Access state.T2: Access stateAPB bridge 通过拉高 PENABLE, 通知slave 第二阶段(也就是 access phase)开始.因为是 no wait states, 我们见到了 PREADY 在此被拉高, 表示 slave 通知bridge, 在下一个 PCLK 的上升沿, 本次 transfer 的过程可以结束.T3: finish transfer, then enter Idle state again or the next setup. PREADY 拉低, 说明 slave 通知本次 transfer 结束. 在 PREADY unasserted 之前, PADDR, PWDATA, 以及其他的 signals 都应该保持有效.从上述时序中, 我们了解到, write transfer 看来至少需要 3 cycles. setup - access - finish而在一个 write transfer with wait states 时序中,[图例2: Write transfer with wait states]我们见到了, Slave 通过 unassert 的方式(拉低), 延迟了2pcs cycles(根据图例的例子), 这样在 T2 状态上的拉高动作, 被延时到 T4 进行拉高. 也就是Slave 通知在 T5 cycle 中结束本次 transfer.这就是通过 PREADY 引入了 wait state 后现象, 我们注意到, 一般的术语被称为"extend the transfer".Operating StatesRead Transfer 的情形与 Write Transfer 类似, 这样, 我们就基本完备讲述了APB protocol, 附上 Operating States 进行理解:[图例3: State Diagram]transfer cyclesAPB protocol 中, 明确指出: "每个 Transfer 至少消耗 2 cycles".而我们检查, 即使是 transfer with no wait state, 也最少消耗了 3 cycles. 这里我们理解, 在图例1中, T3 状态下, finish 本次 transfer后, 如果要连续操作下一个写传递的过程, 那么则在 T3 状态下保持 PSEL asserted, 配合PREADY unasserted, 恰好又进入了如 T1 cycle 相同的 setup state, 这时需要 bridge 更新地址 PWRITE, 以及数据 PWDATA. 也就是在连续 transfer(针对同一个 slave)的操作中, transfer 最少只消耗 2 cycle.我们没有在 APB 协议中, 获得上述猜测的详解, 我们保留上述对 "2 cycles" 的理解猜测于此.总结我们通过对 APB protocol 的理解, 得知 APB 是 unpipeline 的 bus. 无论如何, setup state 将占据一个 cycle, 而 access state 将占据另一个.这种 unpipeline 的设计, 很可能就是 APB 被作为连接外围的, 而不是用于processor 之间的 memory 连接的 BUS 的重要原因. 因其不要求外围在一个cycle 中对 address 进行取样, 这也给外围更多的时间反应, 至少比较而言, 使用 APB 的外围可以具备更小的 bandwidth.[AMBA AHB-Lite]AHB-LiteAHB: Advanced High-performance Bus用于高表现力高clock频率的系统. 最经常的使用是连接 internal memeory device, external memory interface, 以及 high bandwidth 外围. 其基本组元是: Master, Slave, Decoder, Multiplexor.在 address/control phase 与 data phase 中, 存在 fixed pipeline. AHB: 仅仅支持 AMBA AXI protocol 的功能子集(subset).AHB-Lite: 如果除去在 master 与 slave IP 开发中不需要的部分, 则 AHB protocol 的这个 subset 则定义为 AHB-Lite.Operation每一个 trasfer 都包括 Address phase 与 Data Phase.Address 不允许被 extend, 即便是来自 Slave 的请求, 因此我们可以想象, 全部的 Slaves 都必须在 Address phase(1 cycle) 完成 sampling address.但是与 APB 一样, Slave 也可以通过 HREADY signal 请求 extend data phase, 增加额外的时间去 sample data.HRESP signal 被用来说明 transfer 的成功与否.Address 总是可以在一个 single HCLK cycle 中完成, 除非是之前的 bus transfer 被 extend(我们理解, 这里应该是只有 data 才能做这个 extend).Data 可以占有数个 HCLK cycle, 这取决于 HREADY signal 是否 extend transfer.因此, Address phase 可以与 Data phase 的 overlapping, 就是 pipeline 的基础.[图例4: 在不同地址上的3个transfer的例子]Transfer typesTransfer types 包括: IDLE, BUSY, NONSEQ, SEQ同猜想的一样, 对于 Slave, 可以通过 HREADY 实现 extend transfer, 我们觉得, 这或者就是"较为慢速"的 Slave 实现 delay 的方式.而 Master 如果在 HTRANS[1:0] 中使用 BUSY, 也可以在 burst transfer 的过程中, 插入idle cycles. 这让人觉得, 这应算是 master 试图做 delay 的方式.[图例5: BUSY Transfer type]值得注意的是, 该例子, 使用了 4-beat 的 burst operation.Locked transfers通过 HMASTLOCK, master 可以要求完成"锁定"的 transfer, 不能被打断. 而这个用法, 往往在多个 master 的用法中存在.[图例6: Locked transfers]Default slave如果不存在的的 memory map 被 master 点中, AHB-Lite 协议给出了一个解决方案, 就是必须存在一个增加的 default slave 来进行回应.Slave transfer responsesAHB-Lite 协议中指出, Master 一旦开始一个 transfer后, 将无法主动取消这个 transfer.因此, 通过来自 Slave 的 HRESP signal 的状态, 判断 transfer 的成功与否将是重要的.HWDATA 与 HRDATA同 APB 协议一样, data bus 的 read 与 write 是分离的.所以不需要"三态"的 drivers. 我们此时有点大脑短路, 不太理解这里的意思, 这应该是说, 如果我们在单一的, 而不是分离的 data bus 上实现 read data 以及 write data, 那么我们就需要"三态驱动器"? 这里的 tristate 为何意? --有知道的同行, 这里定能有教于我.[参考文献]1. AMBA3 AHB-Lite Protocol v1.0 Specification2. AMBA APB protocol v2.0 Specification[结语]让我们引用 Sailing 的文章 "ARM与x86之4--EAGLE is Coming!" (From: /s/blog_6472c4cc0100mnza.html) 中的论述 AMBA 的片段作为结语:<剪切>"最令Intel尴尬的是,x86处理器并没有一个与 AMBA 总线类似的SoC平台总线,这是Intel 进军嵌入式领域一个不小的障碍。
AMBA_AXI4协议
AMBA_AXI4协议AMBA (Advanced Microcontroller Bus Architecture) AXI4 协议是由 ARM(Advanced RISC Machines)公司提出的一种高性能、低功耗的总线协议。
它主要用于片上系统(SoC)中的片上通信和互连,并且被广泛应用于各种嵌入式系统设计中。
AMBAAXI4协议是AMBA协议系列中的最新版本,相较于前几个版本,它引入了许多新的特性和功能以提高数据传输的效率和可靠性。
该协议的主要目标是支持高性能、多处理器SoC中各个主从设备之间的数据传输,并能同时支持大数据宽度和高频率操作。
AXI4协议采用了一种点对点的通信方法,可以通过AMBAAXI的互连结构连接多个主设备和从设备。
主设备可以发起读请求和写请求,从设备则负责接收和响应这些请求。
协议中定义了许多标准信号和通信规范,以确保数据传输的稳定和可靠。
AXI4 协议可以支持单片上的数据传输速率高达几 GB/s,并且具有很高的吞吐量。
这是通过采用多种技术来实现的,包括独立的地址和数据通道、乱序传输和突发传输等。
AXI4 协议还引入了一个新的数据传输机制,称为 AXI4-stream,用于处理实时的数据流传输。
协议中还引入了一种称为 AXI4-Lite 的简化版本,专门用于对接一些简单的外设,如配置寄存器和状态寄存器。
AXI4-Lite 协议只使用一条地址通道和一条数据通道,并且不支持乱序传输和突发传输,因此在数据传输效率和性能上相对较低,但在资源占用和易用性方面有一定的优势。
总的来说,AMBAAXI4协议是一种功能强大、灵活性高的总线协议,适用于各种复杂的嵌入式系统设计。
它在数据传输的性能和速度方面具有很大的优势,并提供了多种传输机制和通信规范,可以满足不同设备的需求。
通过使用AMBAAXI4协议,设计人员可以更轻松地构建高性能、高效能的嵌入式系统。
AMBA_AXI总线中文详解
AXI总线协议资料整理第一部分:1、AXI简介:AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。
它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。
AXI 是AMBA 中一个新的高性能协议。
AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
2、AXI 特点:单向通道体系结构。
信息流只以单方向传输,简化时钟域间的桥接,减少门数量。
当信号经过复杂的片上系统时,减少延时。
支持多项数据交换。
通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。
独立的地址和数据通道。
地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。
第二部分:本部分对AXI1.0协议的各章进行整理。
第一章本章主要介绍AXI协议和AXI协议定义的基础事务。
1、AXI总线共有5个通道分别是read address channel、write address channel 、read data channel 、write data channel、write response channel。
每一个AXI传输通道都是单方向的。
2、每一个事务都有地址和控制信息在地址通道(address channel)中,用来描述被传输数据的性质。
3、读事务的结构图如下:4、写事务的结构图如下:5、这5条独立的通道都包含一个信息信号和一个双路的VALD、READY握手机制。
AMBAAXI4协议
AXI4通道及信号
--写响应通道
写响应通道提供了一种方法,用于从设备响应写 交易。所有的写信号使用完成信号。每个响应用于一 次猝发的完成,而不是用于每个交易的数据。
读交易和写交易可以通过下面的交易例子进行说 明:
1)读猝发交易 2)重叠猝发交易 3)写猝发交易
AXI4通道及信号
--写响应通道
信号名 BID[3:0] BRESP[1:0]
写数据通道传送所有从主设备到从设备的写数据。 表2.6给出了写数据通道信号及信号定义。写数据通道 包括:
(1) 数据总线宽度:8、16、32、64、128、256、 512和1024位宽度;
(2) 每8位有一个字节通道选通,用来表示数据总线 上的哪个字节是有效的;
AXI4通道及信号
--写数据通道
信号名
从 读响应。这个信号表示读传输的状态。可允许的相应为OKAY,EXOKAY, SLVERR和DECERR.
从 读最后一个。表示读猝发中的最后一个传输。
从 读有效。这个信号表示所要求的读数据是可用的,能完成读传输。
主 读准备。这个信号表示主设备能接受读数据和响应信息。
AXI4通道及信号
--写数据通道
主 猝发长度。给出猝发中准确的传输个数。该信息给出了和地址相关的数据传输数 量。
主 猝发大小。这个信号确定猝发中每个传输的大小。字节通道选通用来指示需要更新 的字节通道。
主 猝发类型。该信息与大小信息一起,用于在猝发过程中,地址如何用于每个传输。
主 锁类型。这个信号提供了关于传输原子特性的额外信息(普通或互斥访问)
AXI协议的关键特性表现在以下几个方面:
(1)独立的地址/控制和数据阶段; (2)使用字节选通,支持非对齐的数据传输; (3)只有开始地址的猝发交易; (4)独立的读和写数据通道,可以使能低成本的直接 存
AMBA_3_APB协议规范
AMBA_3_APB协议规范AMBA(高级微处理器总线)是一种用于系统级互连的开放标准协议,它由ARM公司开发,被广泛应用于嵌入式系统中。
AMBA_3_APB(高级微处理器总线第3代-高性能总线)是AMBA协议的一部分,它定义了一种高性能、低功耗的片内总线协议,用于连接处理器和外设。
1.信号:AMBA_3_APB协议规范定义了一系列信号,包括时钟信号、复位信号、总线控制信号、数据传输信号等。
时钟信号主要包括时钟线以及时钟使能信号,用于控制数据传输的时序。
复位信号用于重置外设以及总线控制器的状态。
总线控制信号用于控制总线的访问权限以及传输模式等。
数据传输信号用于在总线上传输数据。
2.传输:AMBA_3_APB协议规范定义了四种传输类型,分别是单个传输、设置传输、清除传输以及数据传输。
单个传输用于传输单个数据项,例如读取外设的寄存器值。
设置传输用于设置外设的寄存器值,例如写入配置信息。
清除传输用于清除外设的寄存器值,例如重置外设。
数据传输用于传输大量数据,例如读取或写入外设的缓冲区。
3.协议:AMBA_3_APB协议规范定义了一套协议,包括方法、地址空间、读写传输、保持传输、错误传输以及确认传输。
方法用于指示执行的操作类型,包括读、写等。
地址空间用于指定外设的寄存器地址。
读写传输用于实现读取或写入寄存器的操作。
保持传输用于在外设的寄存器繁忙时保持总线传输。
错误传输用于指示总线传输过程中的错误信息。
确认传输用于确认总线传输的完成。
4.时序:AMBA_3_APB协议规范定义了一套时序要求,包括时钟周期、数据有效性以及总线传输的顺序。
时钟周期用于控制数据传输的时序,包括时钟上升沿和下降沿的作用周期。
数据有效性用于指示数据在总线上的有效时间段,以及数据的采样时间。
总线传输的顺序用于指示多个传输之间的先后顺序,以及传输的优先级。
总结起来,AMBA_3_APB协议规范是一种用于连接处理器和外设的高性能、低功耗的片内总线协议。
AMBAAXI总线学习笔记
AXI总线协议资料整理第一部分:1、AXI 简介:AXI (Adva need eXte nsible In terface 是一种总线协议,该协议是ARM 公司提出的AMBA ( Advaneed Mieroeontroller Bus Architecture)3.0 协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。
它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。
AXI是AMBA中一个新的高性能协议。
AXI技术丰富了现有的AMBA标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
2、AXI特点:单向通道体系结构。
信息流只以单方向传输,简化时钟域间的桥接,减少门数量。
当信号经过复杂的片上系统时,减少延时。
支持多项数据交换。
通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。
独立的地址和数据通道。
地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。
第二部分:本部分对AXI1.0协议的各章进行整理。
第一章本章主要介绍AXI协议和AXI协议定义的基础事务。
1、AXI总线共有5个通道分别是read address channel、write address channel、read data channel、write data channe、write response channe。
每一个AXI传输通道都是单方向的。
2、每一个事务都有地址和控制信息在地址通道(address channel中,用来描述被传输数据的性质。
3、读事务的结构图如下:Figure 1 -1 Channel architecture of reads 4、写事务的结构图如下:Figure 1-2 Channel architecture of writes机制。
AXI+protocol+翻译
1.1 AXI协议简介AMBA AXI协议以高性能,高频系统设计为目标,提供了很多适合高速亚微型系统互连的特征。
最新的AMBA接口的目标是:z适合高带宽、低延迟的设计z不使用复杂桥的情况下能够进行高频的操作z适应多部件的接口要求z适合高初始访问延迟的访问控制器z为互联结构实现提供灵活性z后向兼容现存的AHB和APB接口AXI协议的关键特征有:z分离的地址/控制和数据通道z采用字节选通的方式支持不对齐数据的传输z基于burst交易的数据传输,主机只需提供首地址z分离的读写数据通道,能支持低功耗的DMAz支持outstanding交易z支持乱序交易z易于通过添加寄存器达到时序收敛除了数据传输协议,AXI协议还提供可选扩展支持低功耗操作。
1.2通道结构AXI协议是基于burst的,每个交易都包括一些地址和控制信息描述了需要传输的数据的特征,这些地址和控制信息被放在地址通道上。
数据在主设备和从设备之间传输,主设备通过写数据通道写数据到从设备,通过读数据通道从从设备读取数据。
写交易中,所有数据流从主设备流向从设备,AXI协议提供一个额外的写响应通道,用于从设备通知主设备写交易完成。
AXI协议可以实现:z在实际的数据传输之前发出地址信息z支持多个outstanding交易z支持乱序交易图1-1所示为一次读交易是如何使用读地址和读数据通道的。
图1-1 读通道结构图1-2所示为一次写交易是如何使用写地址、写数据和写响应通道的。
图1-2 写通道结构五个独立的通道都包含一组标记信息的信号,并且使用双向的V ALID和READY 信号实现握手机制。
源设备使用V ALID信号标志通道上的数据合法和控制信息可用,目的设备使用READY信号标志可以接收数据。
读数据和写数据通道都包含一个LAST信号标志一次交易中最后一个数据传输。
z读地址和写地址通道读交易和写交易都有各自的地址通道,地址通道包含了所有一次交易的所需地址和控制信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表 2-3 写数据通道信号
地址和控制
写地址通道
主机 接口
写数据通道 写数据 写数据 写数据
写数据
从机 接口
写响应通道
写响应
图 1-2 写通道结构
1.2.1 通道定义
每个独立的通道都包含一组信号,并使用一个双向的 VALID 和 READY 握手机制。 源设备使用 VALID 信号来表示通道上的地址、数据或控制信息何时有效。目的设备使用 READY 信号来表示其何 时可以接收信息。读数据通道和写数据通道都包含一个 LAST 信号来表示一个事物中最后一个数据项的传输何时发生。
读和写地址通道 读和写事物都各自有自己的地址通道。地址通道用于传送一次传输所需的所有地址和控制信息。AXI 协议支持以 下机制:
长度可变的突发,每个突发中的数据传输个数可以从 1 到 16 个 突发中一个传输的大小可以是 8-1024 bits 回环,增量或固定长度突发
使用独占或锁定访问的原子操作 系统级高速缓存和缓存控制 安全和特权访问
一个内部缓存中得到了 如果一个主机要求事物按照其被发送的顺序来完成,则这些事物必须具有相同的 ID tag。但是,如果主机不要求 按顺序完成事物,则主机可以使用不同的 ID tags 来发送事物,并允许事物按任何顺序完成。 在一个多主机的系统中,互联负责将额外信息附加到 ID tag,以保证来自所有主机的 ID tags 都是唯一的。ID tag 类似于一个主机号,但被扩展了——每个主机可以通过提供一个 ID tag 来表示虚拟主机号,以此来在同一个端口中实 现多个虚拟主机。 尽管复杂的设备可以使用乱序组件,而简单的设备不要求使用。简单的主机可以用相同的 ID tag 来发送每个事物, 简单的从机可以按顺序响应每个事物,而不用考虑 ID tag。
AMBA AXI 协议
V1.0
规范
1. 介绍
本章讲述了 AXI 协议的架构,以及协议定义的基本事物。包含以下章节: 关于 AXI 协议 架构 基本事物 附加特征
1.1 关于 AXI 协议
AMBA AXI 协议的目标是高性能、高频的系统设计,其包含了包含了若干特性,使其能够适应一个高速的亚微互 联。
写地址有效。该信号表示有效写地址和控制信息准备好: 1 = 地址和控制信息有效 0 = 地址和控制信息无效 该信号保持稳定,直到地址确认信号 AWREADY 拉高 写地址准备好。该信号表示从机准备好接收地址和相应的控制信号。 1 = 从机准备好 0 = 从机没有准备好
2.3 写数据通道信号
表 2-3 列出了 AXI 写数据通道信号。
读数据通道 读数据通道用于从从机向主机返回读数据和任何读响应信息。读数据通道包含: 数据总线,宽度可以是 8,16,32,64,128,256,512 或 1024 bits 一个表示读事物完成状态的读响应信号
写数据通道 写数据通道用于从主机向从机传输写数据,包括: 数据总线,宽度可以是 8,16,3 bits 每 8 bits 数据一个字节选通信号,用来表示数据的哪个字节有效 写数据通道的信息通常是被缓存的,以便主机在没有得到从机前一次写事物确认的情况下可以执行新的写事物。
图 1-4 读突发
1.3.2 重叠的读突发例子
图 1-5 展示了从机在接收完第一个地址之后,主机怎样可以驱动另外一个地址。这可以使从机在完成第一突发的 同时,并行地处理第二个突发中的数据。
图 1-5 重叠的读突发
1.3.3 写突发例子
图 1-6 展示了一个写突发。当主机在写地址通道上发送了一个地址和控制信息时,突发过程开始。之后,主机通 过写数据通道发送每个写数据。当主机发送最后一个数据时,WLAST 信号拉高。当从机接收完所有的数据之后,会驱 动一个写响应给主机来表示写事物完成。
保护单元支持 为了允许特权和安全访问,AXI 协议提供了三种级别的保护单元支持。 参见保护单元支持。
原子操作 AXI 协议为独占访问和锁定访问定义了一种机制。 参见第 6 章原子访问。
错误支持 AXI 协议为地址解码错误和从机产生的错误提供了错误支持。 参见第 7 章响应信号。
非对齐地址 为了增强一个突发中初始访问的性能,AXI 协议支持非对齐的突发起始地址。 参见第 10 章非对齐传输。
写响应通道 从机使用写响应通道来响应写传输。所有写传输都要求在写响应通道上返回完成信号。 对每个突发,完成信号只产生一次,而不是突发中每个单个的数据传输都回产生一次完成信号。
1.2.2 接口和互联
一个典型的系统由通过某种互联方式连接到一起的若干个主机和从机组成,如图 1-3 所示。
图 1-3 接口和互联 AXI 协议提供了一个单一的接口定义来描述接口: 在主机和 interconnect 之间 在从机和 interconnect 之间 在主机和从机之间
个不同的 transaction 时可以不必等待一个 transaction 处理完之后再处理另一个,大大提高系统处理效率) 支持乱序(out-of-order transaction)传输(注:out-of-order 是指,数据传输时可以根据不同 ID 而对顺序没有要
求,但是相同 ID 的 transaction 必须按顺序传输。所以重要的是通过 ID 来区分,而 outstanding 则与 ID 无关) 易于通过添加寄存器达到时序收敛
也可以在一个给定互联中的几乎任何点上使用一个寄存器片。这有利于处理器和高性能 memory 之间直接、快速 的连接,但是使用简单的 register slice 可以分离较长的路径 给低性能外设
1.3 基本事物
本章节给出了基本的 AXI 协议事物的例子。每个例子展示了 VALID 和 READY 握手机制。地址信息和数据的传输都 发生在当 VALID 和 READY 信号都为高时。提供的例子如下:
AXI 协议包含了可选的扩展,该扩展覆盖了用于低功耗操作的信号。
1.2 架构
AXI 协议是基于突发的。每个事物在地址通道上都具有地址和控制信息,来描述要传输的数据特性。在主机和从 机之间传输的数据,使用一个到从机的写数据通道,或一个到主机的读地址通道。在写事物中,所有数据流是从主机 到从机的,AXI 协议有一个附加的写响应通道,可以让从机通知主机写事物完成。
2. 信号描述
本章定义了 AXI 的信号。尽管总线宽度和事物 ID 宽度是开发确定的,但本章的表中展示了一个 32-bit 数据总线, 一个 4-bit 写数据选通,以及 4-bit 的 ID 字段。本章包含以下章节:
全局信号 写地址通道信号 写数据通道信号 写响应通道信号 读地址通道信号 读数据通道信号 低功耗接口信号
1.4 附加特征
AXI 协议也支持以下附加的特征: 突发类型 AXI 协议支持三种突发类型,适用于:
正常 memory 访问
回环高速缓存线(wrapping cache line)突发 访问外设 FIFO 位置的流数据 参见第 4 章地址选项。
系统高速缓存支持(System cache support) AXI 协议的高速缓存支持信号允许一个主机向系统级高速缓存提供一个事物的可缓存、可高速缓存,以及可分配 的属性。 参见高速缓存支持。
读突发例子 重叠的读突发例子 写突发例子 本章节也描述了 事物排序。
1.3.1 读突发例子
图 1-4 展示了有 4 个传输的一个读突发的例子。在这个例子中,主机驱动地址,从机在一个周期后接收地址。
注意: 主机也会驱动一组控制信号来标示突发长度和类型,但为了简化,该图中省略了这些信号。
在地址出现在地址总线上之后,读数据通道上发生数据传输。从机保持 VALID 信号为低,直到读数据有效。在突 发中最后一个数据传输,从机断言 RLAST 信号来表示最后一个数据项已被传输。
最新的 AMBA 接口的目标是:
适合高带宽和低延迟的设计 提供高频操作,无需使用复杂的桥 满足各种组件的接口要求 适合具有高初始延迟的存储控制器 为互连架构实现提供灵活性 向后兼容现有 AHB 和 APB 接口
AXI 协议的关键特征有:
分离的地址/控制和数据相位 使用字节选通的方式实现非对齐传输 采用基于突发的传输,主机只提供起始地址 分离的读写数据通道,提供低成本的 DMA 访问 支持发送多个 outstanding 地址(注:outstanding 是指,地址和数据传输并没有严格的先后要求,即在处理两
在大多数系统中,地址通道的带宽要求小于数据通道。这种系统通过多个数据总线共用一个地址总线以便可进行 并行数据传输,以此,可以在系统的性能和 interconnect 复杂性之间达到很好的平衡。
1.2.3 寄存器片
每个 AXI 通道只在一个方向上传送信息,并且在各种通道之间不要求有固定的关系。这点很重要,因为这可以在 任何通道中插入一个寄存器片。这使得在延迟周期和操作的最大频率之间权衡变得可能。
2.1 全局信号
表 2-1 列出了全局的 AXI 信号。
信号 ACLK ARESETn
源 时钟源 Reset 源
表 2-1 全局信号
描述 全局时钟信号。所有信号都在全局时钟的上升沿采样。 全局复位信号,低有效,参见 A3-Reset
2.2 写地址通道信号
表 2-2 列出了 AXI 写地址通道信号。
表 2-2 写地址通道信号
AXI 协议允许:
允许在实际数据传输之前发送地址信息 支持多个 outstanding 传输 支持乱序(out-of-order)传输
图 A1-1 展示了一个读传输是如何使用读地址和读数据通道的。 读地址通道
地址和
控制
主机 接口
读数据
读数据通道 读数据 读数据 读数据
从机 接口
图 1-1 读通道结构 图 1-2 展示了展示了一个写传输是如何使用写地址、写数据以及写响应通道的。