当前位置: 首页 > news >正文

深入浅出AXI协议(5)——数据读写结构读写响应结构

目录

一、前言

二、写选通(Write strobes)

三、窄传输(Narrow transfers)

1、示例1

2、示例2 

四、字节不变性(Byte invariance) 

五、未对齐的传输(Unaligned transfers)

六 、读写响应结构

七、总结

一、前言

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

        在这篇文章中,我们将介绍AXI协议的数据读写结构和读写响应结构。主要描述了 AXI 读写数据总线传输的不同大小和接口如何用字节不变endian 去握手混合 endian 传输,之后我们简单介绍关于AXI的读写响应操作。

二、写选通(Write strobes)

        当写选通信号 WSTRB[n:0] 为高时,指定包含有效信息的数据总线的字节通道。写数据总线的每8位都有一个写选通,因此 WSTRB[n] 对应于 WDATA[ (8n+7) : (8n) ] 。

        主机必须确保写选通仅对包含有效数据的字节通道是高的。

        当WVALID为低时,写选通可以取任何值,不过还是建议它们要么是驱动的低,要么保持在它们以前的值。

三、窄传输(Narrow transfers)

        主机产生的数据宽度小于数据总线宽度时,地址和控制信息决定哪一个 字节通道(byte lanes)为有效的数据:

(1)在递增或回卷模式时,对猝发的每个节拍使用不同的字节通道

(2)在固定模式时,每个节拍都使用相同的字节通道

下面给出了两个窄传输的例子(阴影单元格表示未传输的字节):

1、示例1

  • 猝发有5个传输
  • 起始地址是0
  • 每个传输是8位
  • 传输是在一个位宽为32位总线上
  • 突发类型是INCR(递增猝发)

2、示例2 

  • 猝发有三个传输
  • 起始地址是4
  • 每个传输是32位
  • 传输是在一个位宽为64位总线上

四、字节不变性(Byte invariance) 

        为了访问单个内存空间中的混合数据结构,AXI协议使用字节不变的方案。大多数小端元件可以直接连接到字节不变接口。只支持大端传输的元件需要一个字节不变操作的转换函数。字节不变性确保了大端结构和小结构可以在单个内存空间中共存而不损坏。

        下面是一个数据不变性存取需求的数据结构的例子。他包含头信息,例如source、destination identifiers 这些信息是采用 little-endian 格式,但是 payload 是big-endian字节流,具体情况如下图:

        字节不变性确保在数据结构中 little-endian 存取头信息的部分不会破坏其他 big-endian 数据。

五、未对齐的传输(Unaligned transfers)

        AXI支持非对齐的传输。对于任何由大于一个字节的数据传输组成的猝发,被访问的第一个字节可能与自然地址边界不对齐。例如,从0x1002的字节地址开始的32位数据包与自然的32位地址边界不对齐。

        主机可以:使用低阶地址行去标示一个不对齐的起始地址。低阶地址行的信息必须包含 byte lane strobes 信息。

        下图显示了在32位总线上使用对齐和未对齐的32位传输的递增猝发的示例。图中的每一行表示一个传输,阴影单元格表示未传输的字节;

        下图显示了在64位总线上使用对齐和未对齐的32位传输的递增突发的示例。图中的每一行表示一个传输,阴影单元格表示未传输的字节:

        下图显示了一个在64位总线上使用对齐的32位传输的包装突发的例子。图中的每一行表示一个传输,阴影单元格表示未传输的字节:

六 、读写响应结构

        AXI协议为读和写事务提供响应信令:

(1)对于读事务,来自从机的响应信息在读数据信道上;

(2)对于写事务,响应信息在写响应信道上。

        AXI 协议对读事务和写事务都有响应。对于读事务,读响应与读数据一起发送给主机,而写事务将写响应通过写响应通道传送。AXI 协议的响应类型有 OKAY、EXOKAY、SLVERR、DECERR。
        通过信号 RRESP[1:0] BRESP[1:0] 来编码响应信号,具体如下图:
        协议规定请求的需要传输的数据数量必须被执行,即使有错误报告。在一次突发式读写的剩余数据不会被取消传输,即使有单个错误报告。
        AXI 协议的四种响应类型:正常存取成功(OKEY)、独占式存取(EXOKEY)、设备错误(SLVERR)、译码错误(DECERR)。AXI 协议要求,在一个传输事务中的所有数据必须传输完成,即使有错误状态发生。

七、总结

        本文介绍的主要内容是AXI协议的数据读写结构和读写响应结构,主要讲述了当遇到各种特殊情况时,AXI如何完成数据的读写操作,最后介绍了读写响应的4种类型。

相关文章:

深入浅出AXI协议(5)——数据读写结构读写响应结构

目录 一、前言 二、写选通(Write strobes) 三、窄传输(Narrow transfers) 1、示例1 2、示例2 四、字节不变性(Byte invariance) 五、未对齐的传输(Unaligned transfers) 六…...

IntelliJ Idea开发Vue遇到的几个问题

IntelliJ Idea开发Vue遇到的几个问题 确保 idea已安装插件【Vue.js】 问题1:ts方法错误 或 提示导入 import xxx.vue标红 解决办法:在 env.d.ts中添加以下代码(若无此文件,重新创建): /* eslint-disable */ declare module *.…...

sql查找最晚一天/日期最大的一条记录 两种方法

例:查找最晚入职员工的所有信息 建表: CREATE TABLE employees ( emp_no int(11) NOT NULL, birth_date date NOT NULL, first_name varchar(14) NOT NULL, last_name varchar(16) NOT NULL, gender char(1) NOT NULL, hire_date date NOT NULL, PRIMA…...

详解python的

详解& 在Python中,使用&符号可以求取两种数据类型的交集: 集合(Set):你可以使用&来计算两个集合的交集。例如: set1 {1, 2, 3, 4} set2 {3, 4, 5, 6} common_elements set1 & set2 pri…...

Modbus TCP通信笔记

目录 1 Modbus TCP 数据协议1.1 数据格式1.2 报文头(MBAP头)1.3 功能码1.4 Modbus 地址映射到 CPU 地址 2 Modbus TCP 通讯数据示例2.1 功能码01 读离散输出线圈2.2 功能码02 读离散输入线圈2.3 功能码03 读保持寄存器2.4 功能码04 读输入寄存器2.5 功能码05 写单个离散输出寄存…...

CIM和websockt-实现实时消息通信:双人聊天和消息列表展示

欢迎大佬的来访,给大佬奉茶 一、文章背景 有一个业务需求是:实现一个聊天室,我和对方可以聊天;以及有一个消息列表展示我和对方(多个人)的聊天信息和及时接收到对方发来的消息并展示在列表上。 项目框架概…...

useLayoutEffect和useEffect有什么作用?

useEffect 和 useLayoutEffect 都是 React 中的钩子函数,用于在组件渲染过程中执行副作用操作。它们的主要区别在于执行时机。 useEffect: useEffect 是异步执行的,它在浏览器渲染完成之后才执行。这意味着它不会阻塞浏览器的渲染过程,因此适合用于处理副作用,如数据获取、…...

django中配置使用websocket终极解决方案

django ASGI/Channels 启动和 ASGI/daphne的区别 Django ASGI/Channels 是 Django 框架的一个扩展,它提供了异步服务器网关接口(ASGI)协议的支持,以便处理实时应用程序的并发连接。ASGI 是一个用于构建异步 Web 服务器和应用程序…...

敦煌网、Jumia等跨境电商平台怎么测评(补单)留评?

评论的重要性是众所周知的,对于想要做卖家运营的人来说,它直接影响着产品的销量和排名 那么如何通过自养号测评来提升销量和排名呢? 我相信大家对这个问题已经有了一定的了解,拥有大量自养号可以通过这些号来通过关键词搜索、浏…...

uni-app之android离线打包

一 AndroidStudio创建项目 1.1,上一节演示了uni-app云打包,下面演示怎样androidStudio离线打包。在AndroidStudio里面新建空项目 1.2,下载uni-app离线SDK,离线SDK主要用于App本地离线打包及扩展原生能力,SDK下载链接h…...

【传输层】TCP -- 三次握手四次挥手 | 可靠性与提高性能策略

超时重传机制连接管理机制三次握手四次挥手滑动窗口拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常情况TCP小结基于TCP应用层协议理解 listen 的第二个参数 超时重传机制 主机A发送数据给B之后,可能因为网络拥堵等原因,数据无法到达主机B&#xff1…...

前端将UTC时间格式转化为本地时间格式~~uniapp写法

UTC时间格式是什么 首先我们先简单的了解一下:UTC时间(协调世界时,Coordinated Universal Time)使用24小时制,以小时、分钟、秒和毫秒来表示时间 HH:mm:ss.SSSHH 表示小时,取值范围为00到23。mm 表示分钟…...

说说Kappa架构

分析&回答 对于实时数仓而言,Lmabda架构有很明显的不足,首先同时维护两套系统,资源占用率高,其次这两套系统的数据处理逻辑相同,代码重复开发。 能否有一种架构,只需要维护一套系统,就可以…...

项目介绍:《Online ChatRoom》网页聊天室 — Spring Boot、MyBatis、MySQL和WebSocket的奇妙融合

在当今数字化社会,即时通讯已成为人们生活中不可或缺的一部分。为了满足这一需求,我开发了一个名为"WeTalk"的聊天室项目,该项目基于Spring Boot、MyBatis、MySQL和WebSocket技术,为用户提供了一个实时交流的平台。在本…...

Vue3 学习 组合式API setup语法糖 响应式 指令 DIFF(一)

文章目录 前言一、Composition Api二、setup语法糖三、响应式refreactive 四、其他一些关键点v-prev-oncev-memov-cloak 五、虚拟Dom五、diff算法 前言 本文用于记录学习Vue3的过程 一、Composition Api 我觉得首先VUE3最大的改变就是对于代码书写的改变,从原来选择…...

一文轻松入门DeepSort

1.背景 Deepsort是目标检测任务的后续任务,得益于Yolo系列的大放异彩,DeepSort目标追踪任务的精度也不断提高,同时,DeepSort属于目标追踪任务中的多目标追踪,即MOT(Multiple Object Tracking,M…...

关于linux openssl的自签证书认证与nginx配置

自签文档链接 重点注意这块,不能写一样的,要是一样的话登录界面锁会报不安全 域名这块跟最后发布的一致 nginx配置的话 server {listen 443 ssl; //ssl 说明为https 默认端口为443server_name www.skyys.com; //跟openssl设置的域名保持一致s…...

Mybatis--关联关系映射

目录: 1.什么是关联关系映射: 一对一和多对多的区别 2.mybaits中的一对一&一对多关联关系配置 配置generatoeConfig文件 插件自动生成 ​编辑 写sql语句 创建 Ordermapper类 编写接口类 ​编辑 编写接口实现类 编写测试类 测试结果 一对…...

Golang基本的网络编程

Go语言基本的Web服务器实现 Go 语言中的 http 包提供了创建 http 服务或者访问 http 服务所需要的能力,不需要额外的依赖。 Go语言在Web服务器中主要使用到了 “net/http” 库函数,通过分析请求的URL来实现参数的接收。 下面介绍了http 中Web应用的基本…...

Postgresql的一个bug_涉及归档和pg_wal

故障描述: 服务器ocmpgdbprod1,是流复制主节点,它的从节点是ocmpgdbprod2,两个节点的Postgresql数据库版本都是PostgreSQL 11.6,主节点ocmpgdbprod1配置了pg_wal归档,从节点ocmpgdbprod2没有配置pg_wal归档…...

轻量、便捷、高效—经纬恒润AETP助力车载以太网测试

随着自动驾驶技术和智能座舱的不断发展,高宽带、高速率的数据通信对主干网提出了稳定、高效的传输要求,CAN(FD)、LIN已无法充分满足汽车的通信需求。车载以太网作为一种快速且扩展性好的网络技术,已经逐步成为了汽车主干网的首选。 此外&…...

【跟小嘉学 Rust 编程】二十四、内联汇编(inline assembly)

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...

综合实训-------成绩管理系统 V1.1

综合实训-------成绩管理系统 V1.1 1、一维数组数据double 2、我们用元素的位置来当学号。 1、录入数据 【5个数据】或【通过文件的方式取数据】 2、显示数据 3、添加一条记录 4、修改一条记录 5、删除一条记录 6、查找一条记录。【输入学号,显示成绩】 7、统计。【…...

13.108.Spark 优化、Spark优化与hive的区别、SparkSQL启动参数调优、四川任务优化实践:执行效率提升50%以上

13.108.Spark 优化 1.1.25.Spark优化与hive的区别 1.1.26.SparkSQL启动参数调优 1.1.27.四川任务优化实践:执行效率提升50%以上 13.108.Spark 优化: 1.1.25.Spark优化与hive的区别 先理解spark与mapreduce的本质区别,算子之间(…...

大模型综述论文笔记6-15

这里写自定义目录标题 KeywordsBackgroud for LLMsTechnical Evolution of GPT-series ModelsResearch of OpenAI on LLMs can be roughly divided into the following stagesEarly ExplorationsCapacity LeapCapacity EnhancementThe Milestones of Language Models Resources…...

树的介绍(C语言版)

前言 在数据结构中树是一种很重要的数据结构,很多其他的数据结构和算法都是通过树衍生出来的,比如:堆,AVL树,红黑色等本质上都是一棵树,他们只是树的一种特殊结构,还有其他比如linux系统的文件系…...

Android studio实现圆形进度条

参考博客 效果图 MainActivity import androidx.appcompat.app.AppCompatActivity; import android.graphics.Color; import android.os.Bundle; import android.widget.TextView;import java.util.Timer; import java.util.TimerTask;public class MainActivity extends App…...

基于Halcon的喷码识别方法

具体步骤如下: 1. 读入一幅图片(彩色或黑白); 2. 将RGB图像转化为灰度图像; 3. 提取图片中的圆点特征(喷码图片中多是圆点特征),在Halcon中dots_image() 函数非常适合喷码检测; 4. 通过设定阈值,增强明显特征部分; 5. 进行一系列形态学操作(如闭运算等),将…...

【Sword系列】Vulnhub靶机HACKADEMIC: RTB1 writeup

靶机介绍 官方下载地址:https://www.vulnhub.com/entry/hackademic-rtb1,17/ 需要读取靶机的root目录下key.txt 运行环境: 虚拟机网络设置的是NAT模式 靶机:IP地址:192.168.233.131 攻击机:kali linux,IP地…...

idea使用maven时的java.lang.IllegalArgumentException: Malformed \uxxxx encoding问题解决

idea使用maven时的java.lang.IllegalArgumentException: Malformed \uxxxx encoding问题解决 欢迎使用Markdown编辑器1、使用maven clean install -X会提示报错日志2、在Poperties.java文件的这一行打上断点3、maven debug进行调试4、运行到断点位置后,查看报错char…...

贵阳汽车网站建设/挖掘爱站网

) f.write(ani.to_html5_video()) # f.write(...

温州网站设计只找亿企邦/信息如何优化上百度首页

实验名称:迈克尔逊干涉仪实验 1. 实验目的: 掌握迈克尔逊干涉仪的干涉原理;了解非定域干涉和时间相干性;学会测量激光波长和介质的折射率。学习一种测定光波长的方法,加强对等倾干涉的理解。 2. 实验器材&#xff1…...

海南 网站 建设/微信推广平台哪里找

adb 被占用 5037为adb默认端口 查看该端口情况如下: netstat -aon|findstr "5037"TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 6540 发现6540占用了 5037端口,继续查看6540的task,发现是wandoujia .如下所示 tasklist|findstr &qu…...

网页版梦幻西游飞升攻略/国内seo排名分析主要针对百度

ACMer必备知识(有太多不熟,慢慢研究了) 图论 路径问题 0/1边权最短路径 BFS 非负边权最短路径(Dijkstra) 可以用Dijkstra解决问题的特征 负边权最短路径 Bellman-Ford Bellman-Ford的Yen-氏优化 差分约束系统 Floyd 广…...

上海易站网站建设/百分百营销软件官网

本文主要介绍Veritas Netbackup client配置. 1、安装NBU Client,Windows直接运行exe文件,Linux将安装包上传至系统文件目录后,解压执行./install 2、编辑/usr/openv/netbackup/bp.conf,添加SERVER XXX CLIENT_NAME XXX 3、编辑…...

wordpress文章下载/百度一下首页登录

本节书摘来自华章出版社《深入实践Spring Boot》一书中的第2章,第2.14节,作者陈韶健,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.4 使用Neo4j 有没有既具有传统关系型数据库的优点,又具备NoSQL数据库优势的一种数…...