AXI Memory Mapped to PCI Express学习笔记(一)——PCIe事务

1 PCIe事务

AXI事务对于PCIe来说,主要涉及到在AXI总线和PCIe总线之间进行数据交换和通信的过程。在PCIe系统中,AXI总线作为一个连接不同组件的桥梁,可以实现高效的数据传输和事务处理。

AXI事务通常包括读事务和写事务。在读事务中,AXI主设备向AXI从设备发起读请求,从设备在接收到请求后返回相应的数据给主设备。而在写事务中,AXI主设备将数据发送到AXI从设备,从设备在接收到数据后进行存储或处理。

另外,s_axi_wstrb在AXI总线中确实用于表示数据写入时的字节选择信号。它是一个8位的信号,每一位对应着数据总线(DATABUS)中的一个字节。当写入数据时,s_axi_wstrb的每一位都被设置为1或0,以表示哪些字节需要被写入。s_axi_wstrb标识的有效数据顺序是从第一个字节使能到最后一个字节使能因为AXI总线是基于突发传输的,所以在一次突发传输中,有效数据必须是连续的,以确保数据的完整性和一致性。

2 PCIe事务排序

AXI Memory Mapped to PCI Express core遵循严格的PCIe事务排序规则。完整的规则集请参考PCIe v2.1规范。为了在桥接器的高度并行的AXI总线上强制执行PCIe事务排序规则,AXI Memory Mapped to PCI Express core实现了以下行为。这些规则的执行不考虑TLP头部中的Relaxed Ordering属性位。

1、对于写入远程PCIe设备的操作,远程(请求方)AXI4主设备的bresp(响应)不会在MemWr TLP(事务层包)传输被保证在PCIe链路上发送,且任何后续TX-transfers(传输)之前发出。

2、远程AXI主设备对远程PCIe设备的读取操作不允许超过任何先前或同时发生的对远程PCIe设备的AXI主设备写入操作。时序基于AXI arvalid信号时序相对于AXI awvalid的时序。任何在awvalid被断言之前或同时与从PCIe读取的arvalid被断言的AXI写入事务,都会导致MemRd TLP(事务层包)被保持,直到流水线或同时发生的MemWr TLP(事务层包)被发送。

3、远程AXI从设备的远程PCIe设备读取操作不允许超过任何先前由AXI Memory Mapped to PCI Express核心接收到的对远程AXI从设备的远程PCIe设备写入操作。AXI读取地址阶段会被保持,直到先前的AXI写入事务完成,并且AXI写入事务的bresp(响应)已被接收。

4、从远程PCIe设备接收到的读取完成数据不允许超过AXI Memory Mapped to PCI Express core在读取完成数据之前接收到的任何对远程AXI从设备的远程PCIe设备写入操作。AXI写入的bresp必须在完成数据出现在AXI读取数据通道上之前被接收。

5、从远程AXI从设备读取的数据不允许超过在AXI总线上发起且先于或同时于读取数据返回的任何对远程PCIe设备的远程AXI主设备写入操作。时序基于AXI awvalid信号时序相对于AXI rvalid断言的时序。任何在awvalid被断言之前或同时与rvalid被断言直到最后一个数据节拍(包括该数据节拍)的AXI写入事务,都会导致Completion TLP(事务层包)被保持,直到流水线或同时发生的MemWr TLP(事务层包)被发送。

总之,这些规则确保了数据一致性和操作的顺序性。在AXI总线上的读取和写入操作需要按照特定的顺序进行,以确保数据的完整性和系统的稳定性。特别是在处理来自远程PCIe设备的读取完成数据和向远程AXI从设备或远程PCIe设备的写入操作时,这些规则尤为重要。它们防止了可能的数据冲突或时序问题,从而确保了系统的正确运行。

注意:PCIe的事务排序规则可能会在高双向流量情况下对数据吞吐量产生影响

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

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

相关文章

Git的使用记录+坑的处理

上学期也使用过git拉取gitee的项目进行远程办公,但是因为那个项目太赶,所以没有记录是如何使用的. 现在这个项目需要拉取gitlab上面的资源,于是再次使用了git,就记录一下基本操作和一些问题. 1.基本命令 git clone <repository-url> [<repository-url>代表远程仓库…

Java中锁的分类

引言 在多线程并发编程场景中,锁作为一种至关重要的同步工具,承担着协调多个线程对共享资源访问秩序的任务。其核心作用在于确保在特定时间段内,仅有一个线程能够对资源进行访问或修改操作,从而有效地保护数据的完整性和一致性。锁作为一种底层的安全构件,有力地防止了竞…

Qt开发(2)——在已有VS项目中配置Qt

在之前的Qt开发学习中&#xff0c;基本都是在Qt Creator中创建一个Qt项目&#xff0c;或者即便是在VS中也是直接新建一个Qt项目。但很少有记录如何在已有的C项目中添加Qt,这就好比我有个项目已经开发完了&#xff0c;现在又说加个Qt界面的功能。这篇文章就是记录如何在已有项目…

Programming Abstractions in C阅读笔记:p338-p346

《Programming Abstractions in C》学习第80天&#xff0c;p338-p346&#xff0c;总计9页。 一、技术总结 栈的实现包括入栈、出栈、判断栈是否为满&#xff0c;判断栈是否为空等。作者结合RPN计算器来实现&#xff0c;稍显无聊。 /** File: rpncalc.c* ---------------* Th…

VMware和Xshell连接

1.开启虚拟机 2.使用管理员账户&#xff0c;点击未列出 3.输入用户名密码 4.点击编辑虚拟网络编辑器 5.记住自己的网关和IP地址 6.打开终端 7.输入命令&#xff0c;vim / etc / sysconfig / network -scripts / ifcfg-ens33 回车 8.修改图中两处按“ I ”键进入编辑 d…

号码采集协议讲解

仅供学习研究交流使用 需要的进去拿源码或者成品

k8s1.28.8版本安装prometheus并持久化数据

本文参考 [k8s安装prometheus并持久化数据_/prometheus-config-reloader:-CSDN博客](https://blog.csdn.net/vic_qxz/article/details/119598466)前置要求: 已经部署了NFS或者其他存储的K8s集群. 这里注意networkpolicies网络策略问题&#xff0c;可以后面删除这个策略&#x…

Mysql连接查询

目录 一、连接查询 1.1内连接 1.2 左连接 1.3 右连接 二、存储过程 2.1 简介 2.2 优点 2.3语法 2.4 创建与调用存储过程 ​编辑2.4.1 查看存储过程 2.5 存储过程的参数 2.6 删除存储过程 一、连接查询 MySQL 的连接查询&#xff0c;通常都是将来自两个或多个表的记录…

如何利用nginx在windows系统上搭建一个文件服务器

1&#xff1a;先下载windows版的nginx 官网 http://nginx.org/ 下载完后注意端口号&#xff08;默认端口号为&#xff1a;80&#xff09;是否被占用 启动nginx服务 地址为localhost的 如果出现 Welcome to nginx 就说明启动成功 2&#xff1a;然后进入conf文件里修改配置 …

Mysql数据库——高级SQL语句补充

目录 一、子查询——Subquery 1.环境准备 2.In——查询已知的值的数据记录 2.1子查询——Insert 2.2子查询——Update 2.3子查询——Delete 3.Not In——表示否定&#xff0c;不在子查询的结果集里 3.Exists——判断查询结果集是否为空 4.子查询——别名 二、视图—…

GPIO端口的BSRR的使用

BSRR 只写寄存器 既能控制管脚为高电平&#xff0c;也能控制管脚为低电平。对寄存器高 16bit 写1 对应管脚为低电平&#xff0c;对寄存器低16bit写1对应管脚为高电平。写 0 ,无动作 首先看GPIOC的定义 接着看这个类型的定义 可以看到BSRR为无符号的32位的整形 接下来看GPIO_Pi…

【旅游】泉州攻略v1.0.0

一、泉州古城 泉州市距离深圳大约520公里&#xff0c;从深圳北站出发&#xff0c;高铁大约3小时30分。 到达泉州西站后&#xff0c;往东南方向大约8公里&#xff0c;就可以到达主要的旅游景点泉州古城。 古城很适合使用一天玩耍&#xff0c;核心路线如下&#xff1a; 一路的景…

python安装与使用

1安装 1.0下载 从官网下载安装包欢迎来到 Python.orghttps://www.python.org/ 1.1安装 双击安装包 将 图中选项勾选 之后如图 在点击 等待安装&#xff0c;安装之后关闭&#xff08;Close&#xff09; 2实现第一个python程序 2.0打开python运行环境 安装之后在开始菜单…

8.HelloWorld小案例

文章目录 一、Java程序开发运行流程如何理解编译&#xff1f; 二、HelloWorld案例的编写1、新建文本文档文件&#xff0c;修改名称为HelloWorld.java。2、用记事本打开HelloWorld.java文件&#xff0c;输写程序内容。代码要跟我编写的完全保持一致。3、ctrl s 保存&#xff0c…

【Java程序设计】【C00389】基于(JavaWeb)Springboot的校园疫情防控系统(有论文)

基于&#xff08;JavaWeb&#xff09;Springboot的校园疫情防控系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过…

【C++】用哈希桶模拟实现unordered_set和unordered_map

目录 一、哈希介绍1.1 哈希概念1.2 哈希冲突解决1.2.1 闭散列1.2.2 开散列 二、哈希桶2.1 实现哈希桶2.1.1 构造节点和声明成员变量2.1.2 构造与析构2.1.3 仿函数2.1.4 查找2.1.5 插入2.1.6 删除 2.2 kv模型哈希桶源代码 三、改造哈希桶3.1 beginend3.2 迭代器3.2.1 前置 3.3 改…

【C语言】strcmp 的使⽤和模拟实现

前言 这篇文章将要带我们去实现模拟一个strcmp函数 首先我们要知道strcmp函数的定义 strcmp()定义和用法 我们先看一下strcmp在cplusplus网站中的定义 链接: link int strcmp ( const char * str1, const char * str2 );比较两个字符串将 C 字符串 str1 与 C 字符串 str2 …

pin脚的缺陷检测

忍不住 我才是最大的缺陷首先应该学好表达头脑风暴分割paddledetection小目标检测也不行缺陷检测1.缺陷标注修改代码为自己的数据集训练训练结果结果图片 结论再次出发 我才是最大的缺陷 真的&#xff0c;我真的被整无语了。测测测测&#xff0c;测个鬼。一天天的净整些没用的…

国内ip地址推荐,畅享网络新体验!

在数字化时代&#xff0c;IP地址不仅是网络连接的基石&#xff0c;也是互联网产业发展的重要标志。国内作为全球互联网市场的重要参与者&#xff0c;拥有众多IP地址资源。虎观代理小二旨在探索并推荐一些国内IP地址&#xff0c;分析它们的价值所在&#xff0c;并探讨如何更好地…

数据结构和算法:搜索

二分查找 二分查找&#xff08;binary search&#xff09; 是一种基于分治策略的高效搜索算法。它利用数据的有序性&#xff0c;每轮缩小一半搜索范围&#xff0c;直至找到目标元素或搜索区间为空为止。 给定一个长度为 &#x1d45b; 的数组 nums &#xff0c;元素按从小到大…