SoC系统中AXI4 AXI3兼容性及exclusive access

AXI4和AXI3是高级扩展接口(Advanced eXtensible Interface)的两个不同版本,它们都是用于SoC(System on Chip)设计中的总线协议,用于处理器和其它外设之间的高速数据传输。以下是它们之间的一些主要区别:

1.AXI4加大Burst Length

AXI3最大突发长度(Burst Length)是16 beats,其AxLEN信号位宽为4位。

AXI4扩展了对突发长度的支持,最大可以达到256 beats,AxLEN信号位宽增加到8位。注意,这种扩展主要是针对INCR(Incrementing)突发类型,而WRAP和FIXED突发类型的最大长度仍然限制在16 beats,并且CPU的突发一般不会超过16拍,突发太长会一直占用总线,而且一旦开始突发传输是不能取消的,只能等突发传输完成。

注意,大型SoC系统中,AXI4和AXI3往往混用,如果总线从AXI4转为AXI3实len直接从[7:0]截位为[3:0],则需要控制源头激励,len不能大于15。否则会无响应进而挂死,推荐使用协议桥来完成转换。

2. AXI4新增QoS

AXI4引入了新的信号来支持服务质量(QoS),例如4bit的AWQOS和4bit的ARQOS信号,这些信号允许系统根据事务的重要性分配不同的服务级别。主要针对不同写/读事务的优先级,如果不使用,建议设置为default value 4'b0000。

AXI4协议没有规定QoS的用法,一般由具体SoC架构特性决定,协议中希望互联组件中有可配置寄存器,在传输中可以修改Qos信号值。一般尽量在系统级统一规划QoS,并且设置为可编程QoS。QoS值越大,优先级越高,当然也有AxQoS越低,优先级越高的SoC。

3.AXI4取消锁定事务

AXI4去除了对锁定事务的支持,这是为了提高协议的简洁性。在AXI3中,锁定事务允许一个主设备锁定对从设备的访问,直到它完成其事务。AXI4中,AxLOCK信号从2位减少到了1位,不再支持Locked access,只支持Normal access、Exclusive access。请问,Locked access和Exclusive access区别是啥?

请问,什么是locked access?

答:a locked sequence of transcations forces the interconnect to reject access to subordinate from any orther manager。即强制interconnect 拒绝其他master访问subordinate(slave)。

如上图,当M0发起locked access的时候,必须确保没有在途的transaction,之前的transaction必须完成。然后M0使用AxLOCK发起locked transaction,然后interconnect通过内部仲裁器确保只有M0能访问到subordinate,任何其他的manager(M1)访问Sub都会被Blocked,直到M0发起一个非locked transaction表示locked sequence完成。

因此,Locked access作用的对象是总线,而Exclusive access 作用的对象是对应的Slave。现在SoC系统都非常复杂,Master也非常多,某一个Master lock住总线导致其他master不能使用总线对系统的性能影响太大,AXI4就取消Lock机制了。而Exclusive access机制实现在Slave模块里,支持Exclusive access机制的slave会实现一个Exclusive access Monitor。

什么是Exclusive access Monitor?

当M0发起一次独占访问读操作后,subordinate中的monitor会有如下可能响应。

  • EXOKAY:读操作已经执行,独占访问成功,并且事务ID已经记录下,memory range和manager已经记录下。
  • OKAY:读操作已经执行,但是subordinate不支持独占访问,独占访问错误。

如果当M0接受到EXOKAY的响应,那么M0可以尝试完成exclusive sequence,即进行一次独占写,这次独占写需要有相同的事务ID以及相同的地址范围。接下来可能接受到来自subordinate的响应为:

  • EXOKAY:没有其他manager对先去读事务的地址范围进行写操作,所以M0的独占写事务成功,在这种情况下,独占写事务更新了memory。
  • OKAY:有别的manager,例如M1,在M0发起写事务之前已经对独占地址范围进行了写操作,独占写失败。

要实现exclusive access,需要每个transaction ID都记录一个地址,用来标记不同序列的独占访问地址。举个例子,如下图:

当manager发起两笔独占访问,第一笔独占访问transaction ID是0,第二笔是1,对相同的独占访问地址进行读操作,subordinate都会给出EXOKAY的响应,因为该subordinate支持独占访问操作,并且读操作成功执行。

然后manager发送一笔写事务,transaction ID是0,然后subordinate检查该笔transaction ID是否记录在monitor中,检查后发现该地址被记录在monitor的table中,因此独占访问写操作成功,返回EXOKAY响应,同时由于地址0xA000已经被写入修改了,monitor将所有地址为0xA000的独占记录移除。

然后manager再次发送一笔写事务,transaction ID为1,此时monitor再次检查内部的独占记录发现没有独占记录,因为在上一个exclusive sequence已经清除掉所有地址为0xA000的独占记录了,因此独占写事务失败,返回OKAY,并且内存中的数据不会更新,也就是data 0x4并不会写入到地址中。

这个例子演示了独占访问如何实现非阻塞行为。与LOCK访问相比,提供了更大的系统吞吐量。

4.AXI4S升级AxCACHE

AXI4中AWCACHE和ARCACHE信号的含义发生了变化,以适应ARM CPU架构的发展和对内存属性更复杂的定义。

在AXI3中,4bit数据分别是buffer、cache、read allocate、write allocate。

bufferable用在写操作中,表示可以由一个中间节点来返回response信号。Normally, the Bufferable attribute is only relevant to writes.

cacheable在读操作中,表示可以prefetch一些数据,在写操作中,表示可以将不同的write merged together。RA针对读操作。WA针对写操作。只有在cacheable有效的情况下,这两个bit才有效。在AXI4中,cache bit改名为modefiable,RA,WA的概念被更新,将不用的allocate bit改为other allocate。

AXI3 中AWCACHE[3:0] 和ARCACHE[3:0]的含义如下图所示:

AXI3中cache=0,对数据不做处理。cache=1,矩阵会对读写数据进行合并或拆分处理。一般是矩阵的downsize/upsize对数据进行处理。cache[0],Bufferable,一般针对写操作,表示interconnect,或者其他类似component,可以先返回resp,之后再写向final distination。cache[1],1)与RA,WA配合,控制cache。2)表示transaction的属性,可以在中间被更改。对写操作,表示数据可以被merge。对于读操作,表示地址可以被prefetch。

AXI4中AWCACHE[3:0] 和ARCACHE[3:0]的含义如下图所示(括号内的是AXI3的编号):

5. AXI4升级写响应(Write Response Channel)

AXI4规定了更严格的写响应条件,必须等到地址通路和数据通路都准备好,并且明确了要等WLAST信号后,从设备才能发出BVALID进行写响应,这保证了事务真正完成时才发送响应。也就是说AXI4必须等到AWVALID,AWREADY,WVALID, WREADY, and WLAST 都为高后,SLAVE才能发BVALID进行写响应,进一步避免了deadlock。

AXI3则是等到了WVALID和WREADY后就能把BVALID置高来响应,也就是说只要slave接收了W通道所有写数据(WLAST拉起)就可以B通道响应,没管地址通道,SLAVE就可以发写响应。显然AXI4更严谨。

6.AXI4升级AxUSER

在AXI3中,USER信号没有具体规定,而在AXI4中,USER信号的位宽和用法被进一步定义和标准化,以支持更广泛的应用。考虑到IP的兼容性问题,IP厂商一般不用USER信号,其主要还是应用在SoC内部。AXI4的USER信号规定如下:

AXI4在写控制通道、写数据通道、写反馈通道和读控制通道中引入了额外的用户自定义信号,如AWUSER、WUSER、BUSER、ARUSER和RUSER,以支持更广泛的应用场景。考虑到IP的兼容性问题,IP厂商一般不用USER信号,其主要还是应用在SoC内部。

7. AXI4取消WID

AXI4取消WID,写通道不再支持write data interleave功能,虽然AXI3支持Write interleaving,但是大家在设计的时候,master基本都没支持Write interleaving,因为写数据一般都是in order有序发送的。这样可以减少pin count,减少设计复杂度。

8. AXI4新增AxREGION

相比AXI3,AXI4增加了2个4bit AxREGION信号,4bit可以表示16个region。主要作用是简化slave中的address decode,由interconnect在做address decode时产生,同样必须在4k范围内。AxREGION是可选的功能,一般用的较少。

总结,AXI4和AXI3在互联时需要注意信号的兼容性,例如AWID、AxLOCK、AxLEN等信号的处理方式有所不同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/605958.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vscode设置免密登录远程服务器

文章目录 1. 问题描述2. 解决方案3. 原理 1. 问题描述 当我们使用vscode的ssh连接远程服务器后,过一段时间后,总是要求登录服务器的密码。 这就导致一个麻烦就是: 无论是在公司还是在学校,密码往往不是自己设置的,所以记忆起来就…

利用BACnet分布式IO控制器优化Niagara楼宇自动化系统

在智能建筑领域,随着物联网技术的飞速发展,如何实现高效、灵活且安全的楼宇自动化控制成为了行业关注的焦点。BACnet IP分布式远程I/O模块,作为这一领域的创新成果,正逐渐成为连接智能建筑各子系统的关键桥梁,尤其在与…

蓝桥杯练习系统(算法训练)ALGO-946 Q神的足球赛

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 足球赛上,只见Q神如闪电般的速度带球时而左,时而右,时而前,时而后&#xff…

带你入门React

目录 前言一,基本配置1.1 环境搭建1.2 页面初始化渲染二,基础学习2.1 结构与样式开发2.2 数据展示2.3 行内样式2.4 条件渲染2.5 列表渲染2.6 点击事件 三,页面更新3.1 组件数据3.2 组件数据共享 总结 前言 笔者之前的工作经验都局限于Vue&am…

pandas快速使用

DataFrame介绍 Dateframe结构和列表类似,区别是对于DataFrame的每一列和每一行均有一个标签。例如以下数据, 上述数据中,日期作为每行的标签。a、b、c、d、e分别是每列的标签 生成连续日期数据 使用方法date_range(),该方法有两…

Lazada商品详情API接口:深度解析与应用

前言 在当今电子商务的繁荣时代,对于电商平台来说,提供一套高效、稳定的API接口是非常重要的。Lazada,作为东南亚领先的电商平台之一,其API接口体系为卖家、开发者以及第三方服务提供了丰富的功能和数据支持。其中,商品…

邦注科技 模具保护器 CCD电子眼 专业工业视觉检测设备

模具保护器是一种用于保护模具的设备,可以在塑料压铸和冲床等加工过程中起到保护模具的作用。以下是关于模具保护器在保护塑料压铸和冲床模具方面的应用: 塑料压铸模具保护器: 防止碰撞:在塑料压铸过程中,模具可能会…

初识C++ · 内存管理

目录 1 C/C的内存分布 2 C语言的内存管理 3 C的内存管理 4 operator new 和 operator delete 5 定位new 1 C/C的内存分布 语言不同,内存分布是相同的,对于局部变量都是放在栈上,全局变量都是放在静态区(数据段)&…

jvm重要参数可视化和线上问题排查

jvm重要参数可视化和线上问题排查 目标jvm参数分类(了解)运行时数据区相关的(jdk1.8)处理 OOM 相关的垃圾回收器相关的GC 日志记录相关的意义,默认值,调优原则(重要, 待拆分) 排查 OOM 流程 和 常见原因参考文章 目标 …

基于C语言中的类型转换,C++标准创造出了更加可视化的类型转换

目录 前言 一、 C语言中的类型转换 二、为什么C需要四种类型转换 三、C中新增的四种强制类型转换操作符以及它们的应用场景 1.static_cast 2.reinterpret_cast 3.const_cast 4.dynamic_cast 前言 在C语言中,如果赋值运算符左右两侧的类型不同,或者…

短视频矩阵系统贴牌---saas源头开发

一、短视频矩阵运营注意事项: 如:房产行业 短视频矩阵运营是一个系统化的项目,涉及多个平台和账号的管理,以及内容的创作、发布和优化等多个方面。 以下是短视频矩阵运营的注意事项文档的概要以及结果运营数据 一周持续运营量 二…

uni-app 多列picker切换列显示对应内容

html部分&#xff1a; <view class"uni-list"><view class"uni-list-cell"><view class"uni-list-cell-left">选择用户</view><view class"uni-list-cell-db"><picker mode"multiSelector"…

【JavaWeb】网上蛋糕商城后台-类目管理,退出

概念 本文讲解和实现类目管理和管理员的退出功能。 类目列表信息 点击类目管理&#xff0c;向服务器发送请求/admin/type_list 在servlet包中创建AdminTypeListServlet类&#xff0c;获得所有商品分类 package servlet;import model.Type; import service.TypeService;impo…

网站localhost和127.0.0.1可以访问,本地ip不可访问解决方案

部署了一个网站, 使用localhost和127.0.0.1加端口号可以访问, 但是使用本机的ip地址加端口号却不行. 原因可能有多种. 可能的原因: 1 首先要确认是否localhost对应的端口是通的(直接网址访问), 以及你无法访问的那个本机ip是否正确(使用ping测试)&#xff1b; 2 检查本机的防火…

堆的基本操作(c语言实现)

1.堆的基本操作 1.1定义堆 typedef int HPDataType;//堆中存储数据的类型typedef struct Heap {HPDataType* a;//用于存储数据的数组int size;//记录堆中已有元素个数int capacity;//记录堆的容量 }HP;1.2初始化堆 然后我们需要一个初始化函数&#xff0c;对刚创建的堆进行初…

软件测试开发之 职业发展必备 能力模型解析

为什么要了解能力模型 王阳明曾在《传习录》中提到过一个思想&#xff1a;以终为始。所谓“以终为始”&#xff0c;意味着在行动的开始阶段就要考虑到最终的目标和结果&#xff0c;以此来指导自己的行动和选择。那么如果我们想在自己的行业内获取好的职业发展&#xff0c;第一…

Meta更低的训练成本取得更好的性能: 多token预测(Multi-Token Prediction)

Meta提出了一种透过多token预测(Multi-token Prediction)来训练更好、更快的大型语言模型的方法。这篇论文的重点如下: 训练语言模型同时预测多个未来的token,可以提高样本效率(sample efficiency)。 在推论阶段,使用多token预测可以达到最高3倍的加速。 论文的主要贡献包括: …

2024年Delphi自学培训网络资源

概述 Delphi 是一种基于 Object Pascal 的面向对象编程语言。最初&#xff0c;Delphi 是作为构建 Windows 应用程序的工具而创建的&#xff0c;并于 1995 年发布。从那时起&#xff0c;这些技术向前迈出了一大步&#xff0c;Delphi也不例外。尽管第一个用 Delphi 编写的应用程…

Windows 10 中使用 Montreal-Forced-Aligner (MFA) 实现音频和文本强制对齐

文章目录 一、实现目标二、安装 Montreal-Forced-Aligner1、使用 Anaconda 虚拟环境2、修改默认下载路径3、安装 montreal-forced-aligner 及相关第三方包4、验证是否安装成功 三、下载声学模型和发音词典1、命令行方式下载2、手动方式下载 四、强制对齐1、准备音频及对应文本2…

docker学习笔记(三)搭建NFS服务实验

目录 什么是NFS 简单架构​编辑 一.搭建nfs服务器 二.新建共享目录和网页文件 三.设置共享目录 四&#xff1a;创建使用nfs共享目录的卷 五&#xff1a;创建容器使用nfs-web-1卷 六&#xff1a;测试访问 七&#xff1a;是否同步测试 什么是NFS NFS 服务器&#xff1a;ne…