深入浅出AXI协议(4)——猝发传输

news2024/11/25 2:35:14

一、前言

         在之前的文章中,我们着重介绍了关于AXI4的握手协议它可以使得传输的双方都可以自如地控制传输的速率,我们主要介绍了握手协议出现的3种可能情况。然后对于AXI4交易通信的握手信号的关系做出了介绍:(1)在AXI4互联中 ,VALID信号不依赖交易中其他元件的READY信号(2)READY信号能够等待确认VALID信号;之后介绍了读交易和写交易种握手信号的依赖关系。在本文中,我们将介绍AXI4的猝发传输相关内容。

        AXI协议是基于猝发的,主机通过将控制信息和传输中第一个字节的地址驱动到从机,开始每一次猝发传输。随着猝发的进行,从机必须计算突发中后续传输的地址。一次猝发不能跨越4KB的地址边界。

二、AXI猝发长度与大小

1、AXI猝发长度(Burst length)

        猝发的长度被指定为:ARLEN[7:0](对于读传输来说)和WRLEN[7:0](对于写传输来说)。

        AXI3支持1到16个突发长度,用于所有猝发类型。AXI4将对INCR突发类型的猝发长度支持扩展到1到256次传输。AXI4中所有其他猝发类型的支持仍然保持在1到16次传输。

        任何元件都不能提前终止猝发。但是,为了减少写猝发中的数据传输数量,主机可以通过失效所有的写掩码来禁用进一步的写操作。在这种情况下,主机必须完成猝发中的剩余传输。在读猝发事件中,主机可以丢弃读取数据,但它必须完成猝发事件中的所有传输。

2、AXI猝发大小(Burst size)

        在每个数据传输中传输的最大字节数由ARSIZE[2:0](对于读传输来说)和WRSIZE[2:0](对于写传输来说)指定。其具体的编码方式如下:

57f87b29201f412fbbe4ca90919bea24.jpeg

        如果AXI总线宽度大于猝发大小,则AXI接口必须通过传输地址确定每次传输使用数据总线的哪个字节道。任何传输的大小不得超过事务中任何一个代理的数据总线宽度。

三、AXI猝发类型(Burst type)

        AXI4协议定义了3种猝发类型:

        (1)固定猝发(FIXED)

        (2)递增猝发(INCR)

        (3)回卷猝发(WRAP)

        AXI的猝发类型通过ARBURST信号(表示读猝发操作类型,属于读地址通道)和AWBURST(表示写猝发操作类型,属于写地址通道)信号进行体现,具体的表示形式和含义如下:

ARBURST[1:0]

AWBURST[1:0]

猝发类型描述访问
00固定固定地址猝发FIFO类型
01递增递增地址猝发普通顺序存储器
10回卷递增地址猝发,但在边界处,返回到低地址高速缓存行
11保留------------

        对于回卷式的猝发方式,有2个限制:

        (1)起始地址必须对齐传输大小。

        (2)猝发的长度必须是2,4,8,16。大于16拍的猝发传输只支持递增类型。回卷和固定类型只限于小于16拍的猝发传输。

四、AXI猝发地址(Burst address)

        为了说明猝发交易中地址的计算方法,首先给出计算过程中需要用到的术语:

(1)Start_Address :主机给出的开始地址

(2)Number_Bytes : 每个数据传输过程中的最大的字节个数

(3)Data_Bus_Bytes :数据总线上字节通道的个数

(4)Aligned_Address : 起始地址的对齐版本

(5)Burst_Length : 在一个猝发中数据传输的总个数

(6)Address_N :在一个猝发中传输N个的地址

(7)Wrap_Boundary :在一个回卷猝发方式的低地址

(8)Lower_Byte_Lane : 一个传输中最低寻址字节的字节通道

(9)Upper_Byte_Lane : 一个传输中最高寻址字节的字节通道

(10)INT(x):x取整操作

下面是计算公式:

对下列的术语进行赋值操作:

  • Start_Address = ADDR
  • Number_Bytes = eq?2%5E%7BSIZE%7D
  • Burst_Length = LEN + 1
  • Aligned_Address = (INT(Start_Address / Number_Bytes) ) x Number_Bytes
在一个猝发中,第一个传输的地址表示为:
  • Address_1 = Start_Address
在一个传输中,传输N个数据后的地址表示为:
  • Address_N = Aligned_Address + (N – 1) x Number_Bytes
对于WARP的猝发方式,其边界由下式确定
  • Wrap_Boundary = (INT(Start_Address / (Number_Bytes x Burst_Length))) x (Number_Bytes x Burst_Length)
如果有
  • Address_N = Wrap_Boundary + (Number_Bytes x Burst_Length)

则使用这个公式

  • Address_N = Wrap_Boundary。

在边界后,使用这个公式

  • Address_N = Start_Address + ((N – 1) × Number_Bytes) – (Number_Bytes × Burst_Length).
使用下面的等式确定第一个传输中使用哪个字节通道:
  • Lower_Byte_Lane = Start_Address - (INT(Start_Address / Data_Bus_Bytes)) x Data_Bus_Bytes
  • Upper_Byte_Lane = Aligned_Address + (Number_Bytes - 1) - (INT(Start_Address / Data_Bus_Bytes)) x Data_Bus_Bytes
使用下面的等式确定一个猝发中第一个传输后用于所有传输中哪个字节通道:
  • Lower_Byte_Lane = Address_N – (INT(Address_N / Data_Bus_Bytes)) x Data_Bus_Bytes
  • Upper_Byte_Lane = Lower_Byte_Lane + Number_Bytes – 1
传输数据的范围在:
  • DATA[(8 x Upper_Byte_Lane) + 7 : (8 x Lower_Byte_Lane)]

五、总结

        AXI协议是基于猝发的,主机通过将控制信息和传输中第一个字节的地址驱动到从机,开始每一次猝发传输。随着猝发的进行,从机必须计算突发中后续传输的地址。本文介绍了猝发的长度,大小和猝发类型,最后介绍了AXI猝发地址的计算过程。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件产品登记测试

1. 服务流程 2. 服务内容 对功能性、易用性、可移植性三个特性、五个子特性进行测试。通过测试检测表明软件功能基本实现,运行基本稳定,操作方便,用户手册描述完整正确,是否达到软件产品登记测试规范的要求。 3. 周期 实施测试…

Docker安装部署ElasticSearch(ES)

文章目录 安装前准备创建挂载目录授权相关权限创建elasticsearch.yml文件 拉取镜像运行容器查看运行情况测试 安装前准备 创建挂载目录 用于在宿主机挂载日志,数据等内容 创建/opt/es/data目录 创建/opt/es/logs目录 创建/opt/es/plugins目录 创建/opt/es/conf目录…

三维模型OBJ格式轻量化压缩处理重难点分析

三维模型OBJ格式轻量化压缩处理重难点分析 三维模型的OBJ格式轻量化压缩处理是一个复杂且具有挑战性的任务,涉及到多个重难点。以下是对三维模型OBJ格式轻量化压缩处理的重难点进行分析: 1、保持视觉质量: 在进行轻量化压缩的过程中&#x…

抖音书单视频怎么制作?这些方法很简单

抖音作为一款热门的短视频应用程序,已经成为了一个广泛传播知识和信息的平台。其中,抖音书单视频是一种很受欢迎的形式,可以通过它分享自己的阅读经验和心得,同时也可以向别人推荐好书。以下是一些关于如何制作抖音书单视频的方法…

Java当中实现分片上传

Java当中实现分片上传 文章目录 Java当中实现分片上传一:背景二:解决方案1、整体方案2、代码实例3、说明4、FileUtil中的方法 一:背景 Web端实现大文件上传下载的需求,要求将文件上传到对象存储当中,大文件上传有以下…

苹果手机微信记录如何备份到电脑?微信聊天记录怎么恢复?

求助!手机上的微信聊天记录太多了,导致手机内存严重不足,但是又不舍得把聊天记录全部删除。请问有哪些快速备份微信聊天记录的方法吗?提前感谢大家! 随着使用微信时间的增长,微信所保存的照片、视频、音频、…

Golang专题精进

Golang专题精进 Golang单元测试Golang错误处理Golang正则表达式Golang反射Golang验证码Golang日期时间处理库CarbonGolang发送邮件库emailGolang log日志Golang log日志框架logrusGolang加密和解密应用Golang访问权限控制框架casbinGolang使用swagger生成api接口文档Golang jwt…

【Day-28慢就是快】代码随想录-二叉树-完全二叉树的节点个数

给出一个完全二叉树,求出该树的节点个数。 —————————————————————————————————————— 1. 普通二叉树的求法 递归法与求深度类似,但是深度是depth,而此题是计算nodeNum。 迭代法使用层序遍历,记录遍历…

SAP MM学习笔记26- SAP中 振替转记(转移过账)和 在库转送(库存转储)5 - 总结

SAP 中在库移动 不仅有入库(GR),出库(GI),也可以是单纯内部的转记或转送。 1,振替转记(转移过账) 具体查看我之前的文章。 SAP MM学习笔记26- SAP中 振替转记&#xff…

大数据可视化大屏实战项目(2)公司季度销售额度可视化展示—HTML+CSS+JS【源码在文末】(可用于比赛项目或者作业参考中)

大数据可视化大屏实战项目(2)公司季度销售额度可视化展示—HTMLCSSJS【源码在文末】(可用于比赛项目或者作业参考中🐕🐕🐕) 一,项目概览 ☞☞☞☞☞☞项目演示链接:htt…

Kerberos基础

一. Kerberos概述 Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证&#xff0c…

软件工程学术顶会——ESEC/FSE 2022 议题(网络安全方向)清单、摘要与总结

总结 本次会议中网络安全相关议题涵盖区块链、智能合约、符号执行、浏览器API模糊测试等不同研究领域。 热门研究方向: 1. 基于深度学习的漏洞检测与修复 2. 基于AI的自动漏洞修复 3. 模糊测试与漏洞发现 冷门研究方向: 1. 多语言代码的漏洞分析 2. 代码审查中的软件安全 3. 浏…

【类和对象】③友元类

文章目录 1.初始化列表2.static静态成员3.友元 1.初始化列表 我们知道在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。虽然调用构造函数之后,对象中已经有了一个初始值,但是不能将其称为对对象中成…

长胜证券:医药逐步走出疫情扰动 潜心静气迎接曙光

8月回顾:2023年8月医药生物板块跌落4.76%,同期沪深300跌落6.21%,医药板块跑赢沪深300约1.45%,位列31个子职业第11位。本月子板块医疗服务、中药、医药商业、化学制药、医疗器械、生物制品分别跌落1.47%、3.20%、3.97%、5.18%、7.2…

关于ChatGPT:4个维度讲透 ChatGPT 技术原理,揭开 ChatGPT 神秘技术黑盒!(文末送书福利5.0)

文章目录 📋前言🎯Tansformer架构模型🎯ChatGPT原理🎯提示学习与大模型能力的涌现🧩提示学习🧩上下文学习🧩思维链 🎯行业参考建议(关于本书)🧩拥…

Python爬取天气数据并进行分析与预测

随着全球气候的不断变化,对于天气数据的获取、分析和预测显得越来越重要。本文将介绍如何使用Python编写一个简单而强大的天气数据爬虫,并结合相关库实现对历史和当前天气数据进行分析以及未来趋势预测。 1 、数据源选择 选择可靠丰富的公开API或网站作…

QT中闹钟的设置

.h文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPushButton> //按钮 #include <QTextEdit> //文本 #include <QLabel> //标签 #include <QLineEdit> //行编辑器#include <QTimerEvent> //定时器事件类头文件 #…

串联系统与并联系统可靠性计算

串联系统 计算串联系统可靠性&#xff0c;就将所有部分的可靠性相乘即可 并联系统 计算并联系统可靠性&#xff0c;就用每个部分的不可靠性相乘&#xff0c;得到系统的不可靠性&#xff0c;再用1-不可靠性&#xff0c;得到并联系统可靠性 串&#xff0c;并联系统 上图的系统可…

深入剖析Kubernetes之控制器模式

文章目录 Kubernetes 项目中一个重要的设计思想&#xff1a;控制器模式。 nginx-deployment 的例子&#xff1a; apiVersion: apps/v1 kind: Deployment metadata:name: nginx-deployment spec:selector:matchLabels:app: nginxreplicas: 2template:metadata:labels:app: ngin…

做外贸如何引导跟进客户

跟客户聊什么似乎是我们很多小伙伴很头疼的问题&#xff0c;尤其是需要跟客户follow-up 的时候&#xff0c;那种没话找话的感觉有时候都令自己抓狂。 如果我们自己的产品本身比较负责&#xff0c;设计到的工艺或者款式以及规格很多的时候&#xff0c;那可能话题就还容易一些&a…