引言
从本文开始,正式系统性学学习AXI总线。
如何获取官方协议标准?
第一步:登陆官网:armDeveloper
第二步:登录,无账号需要注册
第三步:点击文档
第四步:
第五步:浏览页面建议下载下面几个:
第六步:进入网页后点击下载即可(每个都是如此操作)
什么是AMBA?有什么益处?
高级微控制器总线体系结构(Advanced Microcontroller Bus Architecture,简称AMBA)是一种开放标准的片上互连规范,用于连接和管理芯片上系统(SoC)设计中的功能块。
本质上,AMBA协议定义了功能块之间的通信方式。
下面给出一个Soc设计应用 AXI总线的示例。通过AXI总线可以实现片上子系统/子功能模块之间的相互通信。
AMBA应用在哪里?
AMBA协议规范简化了拥有多处理器、大量控制器以及大量外设的设计开发。随着时间的推移,AMBA的应用范围远不止微控制设备。
目前,AMBA广泛应用在ASIC和Soc设计部分。这些部分包括用于物联网子系统、智能手机和网络SoC等设备的应用处理器。
为何使用AMBA?
AMBA提供了如下的益处:
- 高效的IP重用:IP重用是降低SoC开发成本和时间的重要组成部分。AMBA规范提供了支持IP重用的接口标准。因此,成千上万的SoC和IP产品正在使用AMBA接口。
- 灵活性:AMBA提供了与一系列SoC一起工作的灵活性。IP重用需要一个通用标准,同时支持具有不同功率、性能和面积要求的各种SoC。Arm提供了一系列针对这些不同需求而优化的接口规范。
- 兼容性:标准接口规范,如AMBA,允许来自不同设计团队或供应商的IP组件之间的兼容性。
- 支持:AMBA得到了很好的支持。它在整个半导体行业得到广泛实施和支持,包括第三方IP产品和工具的支持。
总线接口标准(如AMBA)通过其所支持的性能来区分。总线接口性能的两个主要特征是:
- 带宽:数据可以通过接口驱动的速率。在同步系统中,最大带宽受到时钟速度和数据总线宽度的乘积的限制。
- 延迟:事务启动和完成之间的延迟。在基于突发的系统中,延迟数字通常指第一次传输的完成,而不是整个突发。
接口的效率取决于它在零延迟的情况下实现最大带宽的程度。
AMBA的演变过程
AMBA多年来不断发展,以满足处理器和新技术的需求,如下图所示:
主要说下 AMBA4以及AMBA5:
AMBA4:
2010年,推出了AMBA 4规范,从AMBA 4 AXI4开始,然后在2011年推出了AMBA4 AXI一致性扩展(ACE)。
ACE通过引入系统范围一致性的附加信令扩展AXI。这种系统范围的一致性允许多个处理器共享内存,并支持big.LITLE处理等技术。同时,ACELite协议支持单向一致性。单向一致性使网络接口能够从完全一致的ACE处理器的缓存中读取数据。
AXI4流协议设计用于从管理器到下级的单向数据传输,减少了信号布线,非常适合在FPGA中实现。
AMBA5:
2014年,引入了AMBA 5相干集线器接口(CHI)规范,重新设计了高速传输层和旨在减少拥塞的功能。CHI协议有几个版本,每个新版本都添加了新功能。
2016年,AHB Lite协议更新为AHB5,以补充Armv8-M架构,并将TrustZone安全基础从处理器扩展到系统。
2019年,引入了AMBA自适应交通概况(ATP)。ATP补充了现有的AMBA协议,
和便携式方式。
AXI5、ACE5和ACE5 Lite扩展了前几代,包括了许多性能和可扩展性特性,以与AMBA CHI保持一致并补充AMBA CHI。一些新功能和选项包括:
•支持多个处理器之间的高频、无阻塞相干数据传输。
•分层模型,允许分离灵活拓扑的通信和传输协议,如横杆、环形、网状或临时拓扑。
•缓存存储,允许加速器或IO设备将关键数据存储在CPU缓存中,以实现低延迟访问。
•远原子操作使互连能够对共享数据进行高频更新。
•端到端数据保护和中毒信号。
AXI协议概述
AXI是定义IP块接口的接口规范,而不是互连本身。
下图显示了如何使用AXI连接互连组件:
只有两种AXI接口类型,管理器和下属。这些接口类型是对称的。所有AXI连接都在管理器接口和从属接口之间。
AXI互连接口包含相同的信号,这使得不同IP的集成相对简单。上图显示了AXI连接如何连接管理器和从属接口。直接连接在管理器和从属组件之间提供了最大的带宽,无需额外的逻辑。对于AXI,只有一种信号协议需要验证。
多管理器系统中的AXI
下图显示了SoC系统的一个简化示例,该系统由管理者、下属和连接它们的互连组成:
Arm处理器是管理器的一个示例,而从属处理器的一个简单示例是内存控制器。
AXI协议定义了管理者和下属之间点对点连接的信号和时序。
AXI协议是点对点规范,而不是总线规范。因此,它只描述接口之间的信号和时序。
前面的图显示了每个AXI管理器接口都连接到一个AXI从属接口。如果涉及多个经理和下属,则需要互连结构。该互连结构还实现了从属接口和管理器接口,其中实现了AXI协议。
下图显示了互连是一个复杂的元素,它需要自己的AXI管理器和从属接口来与外部功能块通信:
下图显示了具有各种处理器和功能块的SoC示例:
上图显示了使用AXI的所有连接。您可以看到AXI3和AXI4在同一个SoC中使用,这是常见的做法。在这种情况下,互连执行不同AXI接口之间的协议转换。
AXI通道
AXI规范描述了两个接口之间的点对点协议:管理器和下属。下图显示了每个AXI接口用于通信的五个主要通道:
写入操作使用以下通道:
•管理器在写地址(AW)通道上发送地址,并将写数据(W)通道上的数据传输给下属。
•下属将收到的数据写入指定地址。一旦下属完成了写操作,它将通过写响应(B)通道向管理器发送一条消息。
读取操作使用以下通道:
•管理器在读取地址(AR)通道上发送想要读取的地址。
•下属通过读取数据(R)通道将请求地址的数据发送给管理器。下属还可以在读取数据(R)通道上返回错误消息。例如,如果地址无效、数据损坏或访问没有正确的安全权限,则会发生错误。
每个通道都是单向的,因此需要一个单独的写响应通道将响应传递回管理器。但是,不需要读响应通道,因为读响应是作为读数据通道的一部分传递的。
使用单独的地址和数据通道进行读写传输有助于最大化接口的带宽。读和写通道组之间没有时序关系。这意味着读取序列可以与写入序列同时发生。
这五个信道中的每一个都包含几个信号,每个信道中的所有这些信号都具有如下前缀:
•写入地址通道上信号的AW
•读取地址通道上信号的AR
•W用于写入数据通道上的信号
•R表示读取数据通道上的信号
•B表示写入响应通道上的信号
(B代表缓冲,因为下级的响应发生在所有写入完成之后。)
AXI主要功能
AXI协议有几个关键特性,旨在改善数据传输和事务的带宽和延迟,如您所见:
•独立的读写通道:AXI支持两组不同的通道,一组用于写操作,另一组用于读操作。拥有两组独立的信道有助于提高接口的带宽性能。这是因为读和写操作可以同时发生。
•多个未决地址:AXI允许多个未决的地址。这意味着管理器可以发布事务,而无需等待之前的事务完成。这可以提高系统性能,因为它支持并行处理事务。
•地址和数据操作之间没有严格的时序关系:使用AXI,地址和数据运算之间没有严格时序关系。这意味着,例如,管理器可以在写地址信道上发出写地址,但对于管理器何时必须提供相应的数据以在写数据信道上写入,没有时间要求。
•支持未对齐的数据传输:对于由大于一个字节的数据传输组成的任何突发,访问的第一个字节可以与自然地址边界不对齐。例如,从字节地址0x1002开始的32位数据包与自然32位地址边界不一致。
•乱序事务完成:使用AXI可以完成乱序事务。AXI协议包括事务标识符,并且不限制使用不同ID值完成事务。这意味着单个物理端口可以通过充当多个逻辑端口来支持无序事务,每个逻辑端口都按顺序处理其事务。
•基于起始地址的突发事务:AXI管理器只发布第一次传输的起始地址。对于任何后续传输,下属将根据突发类型计算下一个传输地址。
通道传输和事务
本节解释AXI通道的握手原理,并说明握手是所有读写事务的基础机制。
通道握手
AXI4协议定义了五个不同的信道,如AXI信道中所述。所有这些通道共享基于VALID和READY信号的相同握手机制,如下图所示:
VALID信号从源发送到目的地,READY信号从目的地发送到源。
源或目标是管理者还是下属取决于所使用的通道。例如,管理器是“读取地址”通道的源,但却是“读取数据”通道的目标。
源使用VALID信号指示有效信息何时可用。VALID信号必须保持有效,即设置为高,直到目的地接受信息。以这种方式保持断言的信号称为粘性信号。
目的地使用READY信号指示何时可以接受信息。就绪信号从信道目的地到信道源。
这种机制不是异步握手,需要时钟的上升沿才能完成握手。
传输和事务的差异
在设计互连结构时,您必须了解所连接的管理器和下属设备的能力。了解这些信息可以让您包含足够的缓冲、跟踪和解码逻辑,以支持各种数据传输排序可能性,从而提高更快设备的性能。
使用标准术语可以更容易地理解连接组件之间的交互。AXI对转传输和事务进行了区分:
•传输是一次信息交换,有一次VALID和READY握手。
•事务是一个完整的传输脉冲串,包括地址传输、一个或多个数据传输,以及写入序列的响应传输。
通道传输案例
本节给出了源和目标之间可能的握手的一些示例。它显示了符合AXI协议规范的VALID和READY序列的几种可能组合。
在第一个示例中,如下图所示,我们有一个时钟信号,后跟一条信息总线,然后是VALID和READY信号:
此示例包含以下事件序列:
1.在时钟周期2中,VALID信号被断言,指示信息信道上的数据是有效的。
2.在下一个时钟周期的时钟周期3中,READY信号被断言。
3.握手在时钟周期4的上升沿完成,因为READY和VALID信号都被断言。
下图显示了另一个示例:
此示例包含以下事件序列:
1.在时钟周期1中,READY信号被断言。
2.直到时钟周期3才断言VALID信号。
3.当VALID和READY都被断言时,握手在时钟周期4的上升沿完成。
最后一个示例显示了在时钟周期3期间断言的VALID和READY信号,如下图所示:
再次,当VALID和READY都被断言时,握手在时钟周期4的上升沿完成。
在所有三个示例中,当在时钟信号的上升沿上断言READY和VALID时,信息沿着信道传递。
读写握手必须遵守以下规则:
•源不能在断言VALID之前等待断言READY。
•目的地可以在断言READY之前等待VALID被断言。
这些规则意味着READY可以在VALID之前或之后断言,甚至可以同时断言。
写入事务:单个数据项
本节描述单个数据项的写入事务的过程,以及用于完成事务的不同通道。
此写入事务涉及以下通道:
•写入地址(AW)
•写入(W)
•写入响应(B)
首先,在写入地址(AW)通道上进行握手,如下图所示:
此握手是管理器向下属传达写入地址的地方。握手包含以下事件序列:
1.管理器将地址放在AWADDR上,并在时钟周期2中断言AWVALID。
2.下级在时钟周期3中断言AWREADY以指示其接收地址值的能力。
3.握手在时钟周期4的上升沿完成。
在第一次握手之后,管理器通过Write(W)通道将数据传输给下属,如下图所示:
数据传输具有以下事件序列:
1.下属正在等待时钟周期n中WREADY设置为高的数据。
2.管理器将数据放在WDATA总线上,并在时钟周期n+2中断言WVALID。
3.握手在时钟周期n+3的上升沿完成
最后,下级使用写响应(B)通道,以确认一旦接收到所有WDATA,写事务已经完成。该响应如下图所示:
写入响应具有以下事件序列:
1.管理器断言 BREADY。
2.下级驱动BRESP以指示写入事务的成功或失败,并断言BVALID。
握手在时钟周期n+4的上升沿完成。
写入事务:多个数据项
AXI是一种基于突发的协议,这意味着可以在单个事务中传输多个数据。我们可以在AW信道上传输单个地址,以传输多个数据,以及相关的突发宽度和长度信息。
下图显示了多数据传输的示例:
在这种情况下,AW信道表示三次传输的序列,在W信道上,我们看到三次数据传输。
管理器将WLAST调高以指示最终的WDATA。这意味着下级可以对数据传输进行计数,也可以仅监视WLAST。
一旦接收到所有WDATA传输,下属在B信道上给出一个BRESP值。一个BRESP覆盖整个突发。如果下属决定传输的任一时刻发生错误,则必须等到整个突发完成后才通知管理器发生了错误。
读取事务:单个数据项
本节详细介绍单个数据项的读取事务的过程,以及用于完成该事务的不同通道。
此写入事务涉及以下通道:
•读取地址(AR)
•读取(R)
首先,在读地址(AR)通道上进行握手,如下图所示:
握手包含以下事件序列:
1.在时钟周期2中,管理器在ARADDR上将读取的地址传送给下级,并断言RVALID。
2.在时钟周期3中,下级断言ARREADY以指示它准备好接收地址值。
握手在时钟周期4的上升沿完成。
接下来,在Read(R)通道上,从属设备将数据传输给管理器。下图显示了数据传输过程:
数据传输握手具有以下事件序列:
1.在时钟周期n中,管理器通过断言RREADY来指示它正在等待接收数据。
2.下属在时钟周期n+2中检索数据并将其放在RDATA上。在这种情况下,由于这是一个单独的数据事务,下属还将RLAST信号设置为高。同时,下属使用RRESP向管理器指示读取事务的成功或失败,并断言RVALID。
3.因为RREADY已经被管理器断言,所以握手在时钟周期n+3的上升沿完成。
读取事务:多个数据项
AXI协议还允许在同一事务中进行多次数据传输的读突发。这类似于写入事务中描述的写入突发:多个数据项。
下图显示了突发读取传输的示例:
在本例中,我们在AR信道上传输单个地址以传输多个数据项,以及相关的突发宽度和长度信息。
这里,AR通道表示三次传输的序列,因此在R通道上,我们看到从下级到管理者的三次数据传输。
在R通道上,下属将数据传输给经理。在本例中,管理器正在等待数据,如RREADY设置为高所示。下级驱动有效的RDATA并为每个传输声明RVALID。
读事务和写事务之间的一个区别是,对于读事务,事务中的每个传输都有一个RRESP响应。这是因为,在写事务中,下属必须在B通道上作为单独的传输发送响应。在读取事务中,下属使用相同的通道将数据发送回管理器并以指示读取操作的状态。
如果交易中的任何传输都显示错误,则仍必须完成交易的完整指示长度。不存在提前突发终止。
激活的事务
激活的事务也称为未完成事务。
活动读取事务是指已传输读取地址,但在当前时间点尚未传输最后读取数据的事务。
对于读取,数据必须在地址之后,因此事务开始时有一个简单的参考点。如下图所示:
对于写事务,数据可以在地址之后,但也允许在地址之前出现。
因此,写入事务的开始可以是以下任一操作:
•写入地址的传输
•主要写入信息的传输
因此,激活的写事务是指已传输写地址或前导写数据,但尚未传输写响应的事务。
下图显示了一个激活的写事务,其中写地址已传输,但写响应尚未传输:
下图显示了一个激活的的写入事务,其中写数据先于写地址传输,但尚未传输写入响应:
通道信号
本节介绍主要AXI信号和属性,并解释如何使用它们来提高系统性能。它专注于AXI3和AXI4;AXI5将在未来的迭代中介绍。
AXI协议定义了五个通道:三个用于写入信号,两个用于读取信号。
写入通道信号
用于写入事务的通道有:
•写入地址
•写入数据
•写入响应
下表显示了写入地址信道信号:
下表显示了写入数据信道信号:
下表显示了写入响应信道信号:
每个信道中的所有信号都具有相同的前缀:
•写入地址通道的AW
•W表示写入数据通道
•B表示写入响应通道
对于写入通道,AXI3协议和AXI4协议之间存在一些差异:
•对于写入地址信道,AXI4协议的AWLEN信号更宽。因此,AXI4能够产生比AXI3更长的脉冲串。
•由于不支持锁定传输,AXI4将AWLOCK信号减少到单个位,以仅容纳独占传输。
•AXI4将AWQOS信号添加到AW信道。该信号支持AXI4协议中的服务质量(QoS)概念。
•AXI4将AWREGION信号添加到AW信道。该信号支持允许来自单个物理从属接口的多个逻辑接口的从属区域。
•AXI4从W通道移除WID信号。这是因为不再允许写入数据重新排序。
•AXI4向每个通道添加用户定义的信号。
读取通道信号用于读取事务的通道有:
•读取地址
•读取数据
下表显示了读取地址信道信号:
下表显示了读取数据信道信号:
每个信道中的所有信号都具有相同的前缀:
•读取地址通道的AR
•R表示读取数据通道
对于读取通道,AXI3协议和AXI4协议之间存在一些差异:
•对于AXI4协议,读取地址长度信号ARLEN更宽。因此,AXI4能够
生成比AXI3更长的读突发。
•由于不支持锁定传输,AXI4将ARLOCK信号减少到单个位,以仅容纳独占传输。
•与写入通道信号一样,服务质量和从属区域的概念适用于读取事务。它们使用AR信道中的ARQOS和ARREGION信号。
•AXI4向两个读取通道添加用户定义的信号。
数据大小、长度和突发类型
每个读写事务都具有指定该事务的数据长度、大小和突发信号属性的属性。
在以下属性列表中,x代表写和读,因此它们适用于写地址通道和读地址通道:
•AxLEN描述传输事物的长度。
◦ 对于AXI3,AxLEN[3:0]有4位,指定事务中1-16个传输的范围。
◦ 对于AXI4,AxLEN[7:0]有8位,指定事务中1-256个数据传输的范围。
•AxSize[2:0]描述了每次数据传输中要传输的最大字节数。三位编码表示每次传输1、2、4、8、16、32、64或128字节。(字节数 = 2^AxSize 次方)
•AxBURST[1:0]描述事务的突发类型:固定、递增或换行。
下表显示了这些突发类型的不同属性:
保护级别支持
AXI提供访问权限信号AWPROT和ARPROT,可以防止系统下游的非法交易。例如,如果事务没有正确的保护级别,则存储器控制器可以通过使用这些信号拒绝读或写访问。
这对于像Arm TrustZone这样的安全解决方案非常有用,其中处理器有两个独立的状态,安全和非安全。
AxPROT定义了三个访问保护级别,如下图所示:
AxPROT位分配指定以下属性:
•AxPROT[0](P)将访问标识为非特权或特权:
◦ 1表示特权访问。
◦ 0表示无特权访问。
虽然有些处理器支持多个级别的权限,但AXI可以提供的唯一区别是特权访问和非特权访问。
•AxPROT[1](NS)将访问标识为安全或非安全:
◦ 1表示非安全交易。
◦ 0表示安全事务。
•AxPROT[2](I)指示事务是指令访问还是数据访问:
◦ 1表示指令访问。
◦ 0表示数据访问。
AXI协议将此指示定义为提示。它在所有情况下都不准确,例如,事务包含指令和数据项的混合。AXI 3和AXI 4的Arm AXI规范建议管理器将位2设置为零以指示数据访问,除非该访问被明确地称为指令访问。
缓存支持
现代SoC系统通常包含放置在系统几个点的缓存。例如,2级缓存可能在处理器外部,或者3级缓存可能位于内存控制器前面。
为了支持使用不同缓存策略的系统,AWCACHE和ARCACHE信号指示在系统中需要如何进行事务处理。
下图显示了AxCACHE位分配:
AxCACHE位分配指定以下属性:
•AxCACHE[0](B)是可缓冲位。当此位设置为1时,互连或任何组件都可以延迟事务到达其最终目的地达任意数量的周期。可缓冲位指示响应是否可以来自中间点,或响应是否必须来自目的地下属。
•AxCACHE[1]是AXI3中的可缓存位,或AXI4中的可修改位。该位表示最终目的地的事务的属性不必与原始事务的属性匹配。对于写操作,设置可修改位意味着可以合并多个不同的写操作,或者可以将单个写操作拆分为多个事务。对于读取,设置可修改位意味着可以预取位置的内容,或者可以将单个提取的值用于多个读取事务。
•AxCACHE[2]是RA位。RA位表示在读取时,建议分配事务,但不是强制的。如果断言了AxCACHE[2]或AxCACHE[3],则必须在缓存中查找事务,因为它可能已被另一个管理器分配到此缓存中。
•AxCACHE[3]是WA位。WA位表示在写入时,建议分配事务,但不是强制的。如果AxCACHE[2]或AxCACHE[3]为
断言,则必须在缓存中查找事务,因为它可能已被另一个管理器分配到该缓存中。
如果未断言可缓存位AxCACHE[1],则无法断言AxCACHE[2]和AxCACHE[3]。
在读和写地址总线上都包含读和写分配的原因是它使用系统级缓存来优化其性能。
例如,考虑一个缓存,该缓存的读访问定义为“写分配,但不是读分配”。在这种情况下,缓存知道地址可能存储在缓存中,因为它可能在上一次写入时被分配,因此必须进行缓存查找。
但是,现在考虑缓存看到一个定义为“无写分配和无读分配”的读访问。在这种情况下,缓存知道该地址尚未在缓存中分配。缓存可以避免查找,并立即将事务传递给另一方。只有当缓存知道每个事务的读和写分配时,它才能做到这一点。
缓存不要求以这种方式运行,但AXI协议是用RA和WA定义的,用于读取和写入,以便在您或您的缓存设计者想要实现时允许这种操作模式。
响应信号
AXI为读和写事务提供响应信令。
对于读取事务,使用RRESP在读取数据信道上用信号通知来自下级的响应信息。
对于写事务,使用BRESP在写响应通道上发送响应信息。
RRESP和BRESP都由两个比特组成,这些信号的编码可以传递四个响应,如下表所示:
写入数据选通管理器使用写数据选通信号来告诉下属需要数据总线的哪些字节。写入数据选通对于高速缓存访问以有效移动稀疏数据阵列非常有用。除了使用写数据选通外,还可以使用未对齐的起始地址优化数据传输。
写入通道在数据总线上每字节有一个选通位。这些位构成WSTRB信号。
管理器必须确保仅对包含有效数据的字节通道将写选通设置为1。
例如,考虑64位写数据总线。WSTRB信号有8位,每个字节一位。下图显示了示例WSTRB值如何指定哪些字节通道有效:
查看第一个示例,我们假设有效数据仅位于数据总线的前六个有效字节中,从字节7到字节2。这意味着管理器必须使用十六进制值0xFC控制WSTRB信号。
类似地,以下示例指定了有效的数据总线字节通道:
•仅在数据总线的字节2、3、4和5中的有效数据要求WSTRB信号值为0x3C。
•仅在数据总线的字节0和7中的有效数据要求WSTRB信号值为0x81。
•仅在数据总线的字节3、5、6和7中的有效数据要求WSTRB信号值为0xE8。
字节通道选通提供稀疏数据阵列的有效移动。使用此方法,可以通过将剩余的传输字节通道选通设置为0来提前终止写入事务,尽管剩余的传输仍必须完成。WSTRB信号也可以在事务中的传输之间改变。
读取通道没有等效信号。这是因为管理器指示所需的传输,并可以屏蔽从下级接收的任何不需要的字节。
用锁定信号进行原子访问
AxLOCK信号用于指示何时执行原子访问。有关独占访问传输的概念和操作的更多信息和解释,请参阅原子访问。
AXI协议提供了两种支持原子性的机制:
•锁定的访问锁定的传输锁定通道,直到生成未锁定的传输,通道仍保持锁定状态。锁定访问与AHB协议支持的机制类似。当管理器对事务使用AxLOCK信号以表明它是锁定的事务时,互连必须确保只有该管理器才能访问目标从属区域,直到来自同一管理器的未锁定事务完成。互连内的仲裁器必须执行此限制。由于锁定访问需要互连来防止在锁定序列进行时发生任何其他事务,因此它们可能会对互连性能产生重要影响。锁定的事务只能用于旧设备。只有AXI3支持锁定访问。AXI4不支持锁定访问。
•独占访问独占访问比锁定事务更有效,允许多个管理者同时访问一个下属。独占访问机制允许实现信号量类型的操作,而不需要总线在操作期间保持对特定管理器的锁定。由于锁定访问不如独占访问有效,而且大多数组件不需要锁定事务,因此它们已从AXI4协议中删除。在AXI3中,AxLOCK信号由具有以下值的两位组成:
•0b00-正常
•0b01-独占
•0b10-锁定
•0b11-保留
在AXI4中,AxLOCK信号由一位组成,值如下:
•0b0-正常
•0b1-专用
服务质量
AXI4协议引入了额外的信号来支持服务质量(QoS)。
服务质量允许您对事务进行优先级排序,从而通过确保更重要的事务以更高的优先级处理来提高系统性能。
有两种服务质量信号:
•AWQOS在每个写入事务的写入地址通道上发送。
•ARQOS在每个读取事务的读取地址通道上发送。
两个信号均为4位宽,其中值0x0表示最低优先级,值0xF表示最高优先级。
服务质量的默认系统级实现是,具有多个事务选择的任何组件首先处理具有较高QoS值的事务。
下图显示了具有直接存储器控制器(DMC)的示例系统,特别是DMC-400。此控制器管理DRAM事务:
实际上,某些元件(如CPU)需要的内存访问比其他组件(如GPU或VPU)更重要。
当适当的QoS值被分配给事务时,互连可以在较低优先级事务之前仲裁较高优先级事务,并且DMC重新排序事务以确保给出正确的优先级。
区域信号
区域信令是AXI4中的可选功能。
当您使用区域标识符时,这意味着下级上的单个物理接口可以提供多个逻辑接口。每个逻辑接口可以在系统地址映射中具有不同的位置。
当使用区域标识符时,下级不必支持不同逻辑接口之间的地址解码。
区域信令使用两个4位区域标识符AWREGION和ARREGION。这些区域标识符可以唯一地标识多达16个不同的区域。
用户信号
AXI4接口信号集可以选择包含一组用户定义的信号,称为用户信号。
用户信号可以在每个通道上用于在管理器和从属组件之间传输额外的自定义控制信息。这些信号是可选的,不必在所有信道上都支持。如果使用它们,则用户信号的宽度由实现定义,并且在每个信道上可以不同。
由于AXI协议没有定义这些用户信号的功能,如果两个组件以不兼容的方式使用相同的用户信号,则可能会出现互操作性问题。
AXI信道相关性
AXI协议定义了不同信道之间的依赖关系。
三个主要依赖关系如下:
•WLAST传输必须在声明BVALID之前断言。
◦ 在管理器可以看到写响应之前,管理器必须发送所有写数据。这种依赖性在AXI3中不存在,但在AXI4中引入:
◦ 在AXI3中,在发送写响应之前不必看到地址。
◦ 在AXI4中,所有数据和地址必须在管理器看到写响应之前被传输。
•在传输ARADDR之前,无法断言RVALID。
◦ 如果下属未首先看到地址,则无法传输任何读取的数据。这是因为如果下属不知道将从中读取数据的地址,则无法将数据发送回管理器。
•WVALID可以在AWVALID之前断言。
◦ 管理者可以使用“写入数据”通道向下属发送数据,然后再传达下属应该写入这些数据的地址。
参考说明
【1】Learn the architecture - An introduction to AMBA AXI 文档
后续文章会继续介绍原子访问~