AXI4 ---排序模型

1. 排序模型的定义

AXI4协议支持一种基于AXI ID事务标识符使用的排序模型。原则是对于具有相同ID的事务:

  • 针对任何单个外围设备的事务,必须按照它们被发出的顺序到达外围设备,无论事务的地址是什么。
  • 使用相同或重叠地址的内存事务必须按照它们被发出的顺序到达内存。

注意

  • 在具有多个master的AXI系统中,用于排序模型的AXI ID包括基础设施ID(用来唯一标识系统中每个master的一种标识符,这些ID能够唯一地识别每个master。这意味着排序模型独立地适用于系统中的每个master。

AXI排序模型还要求,在同一方向上具有相同ID的所有事务必须按照它们被发出的顺序提供它们的响应。

因为读地址通道和写地址通道是独立的,如果需要在具有相同ID的不同方向的两个事务之间建立排序关系,那么master必须等待接收到第一个事务的响应后再发出第二个事务。

如果master在未收到相反方向上早期事务响应之前发出一个方向上的事务,那么这两个事务之间没有排序保证。

注意

  • 在需要保证排序并需要对早期事务做出响应的地方,master必须确保它已经从系统的适当点接收到了响应。来自中间AXI组件的响应不能保证与下游于中间缓冲区的组件的排序。

2. master排序

一个在相同方向(读或写)发出多个事务且具有相同ID的master,对这些事务的排序有以下保证:

  • 对所有事务的响应顺序必须与发出顺序相同。
  • 对于发往设备内存的事务,到达slave的顺序必须与发出顺序相同。
  • 对于普通内存,发往具有相同或重叠地址的事务到达slave的顺序,必须与发出顺序相同。这也适用于可缓存内存,也就是适用于所有AxCACHE[3:1]不是0b000的有效的事务。

两个事务访问相同或重叠地址的定义是,两个事务至少访问了单个副本原子地址范围内的一个字节。

3. 互连排序

为了满足排序模型的要求,互连必须确保:

  • 保持发往设备内存的、具有相同ID的、相同方向的事务的顺序。
  • 保持发往相同或重叠地址的、具有相同ID的、相同方向的事务的顺序。
  • 保持具有相同ID的写响应的顺序。
  • 保持具有相同ID的读响应的顺序。
  • 对与事务相关联的AXI ID值进行任何操作时,必须确保维护原始ID值的排序要求。
  • 任何在事务到达最终目的地址之前就给出事务响应的组件,必须确保在事务到达其最终目的地址之前,维护本节所述的排序要求。

4. slave排序

为了满足排序模型的要求,slave必须确保:

  • 任何已经发出响应的写事务必须被任何后续的写或读事务看到,不管事务ID是什么。

  • 任何发往设备内存的写事务必须被相同ID的任何后续写事务看到,即使响应尚未发出。

  • 任何发往普通内存的写事务必须被相同ID的任何后续有相同或重叠地址的写事务看到,即使响应尚未给出。这也适用于发往可缓存内存的事务。也就是说,它适用于所有AWCACHE[3:1]不是0b000的有效的写事务。

  • 对于具有相同ID的多个写事务的响应,必须按照事务到达的顺序发出。

  • 对于具有不同ID的多个写事务的响应,可以以任何顺序发出。

  • 任何已经发出响应的读事务必须被任何后续的写或读事务看到,不管事务ID是什么。

  • 任何发往设备内存的读事务必须被相同ID的任何后续读事务看到,即使响应尚未发出。

  • 对于具有相同ID的多个读事务的响应,必须按照事务到达的顺序发出。

  • 对于具有不同ID的多个读事务的响应,可以以任何顺序发出。

5. 最终目的地址前的响应

任何在事务到达最终目的地址之前发出事务响应的中间组件,必须确保来自任何上游master的任何事务都能看到该事务。

注意 在本节的上下文中,上游master是指通过该组件的slave端口访问该中间组件的任何设备。 要求如下:

  • 对于所有内存类型的访问,任何针对相同或重叠地址的后续事务都必须看到中间组件发出响应的事务。
  • 对于设备内存的访问,中间组件还必须保持与它发出响应的事务相同ID和相同slave的任何后续事务的顺序。

只有当AxCACHE属性表明允许这样做时,才能对事务给出中间响应。

AXI协议要求对设备内存访问的排序保证是针对普通内存访问保证的超集。这确保了任何被标记为普通的事务都可以转换为设备事务,而不会移除其原始的保证。为了满足这一要求,对相同或重叠地址的设备内存访问的行为必须与普通内存访问的行为相同,而不考虑ID值。 表格A6-1显示了对于所有内存类型、事务ID和访问相同或重叠地址的组合,何时需要排序。 

内存类型相同ID重叠地址需要排序
设备
普通

在表格A6-1中,普通内存的条目也适用于对可缓存内存的事务。也就是说,它们适用于所有AxCACHE[3:1]不是0b000的有效的事务。

6. 有序写观察

为了提高与支持不同排序模型的接口协议的兼容性,定义了一个可以为单个接口设置为True或False的“Ordered_Write_Observation”属性。

如果将“Ordered_Write_Observation”属性设置为True,则定义该接口具有此属性。

不支持“Ordered_Write_Observation”属性的接口,默认值为False。

支持“Ordered_Write_Observation”属性的接口可以支持带有改进性能的“生产者/消费者”排序模型。

如果两个具有相同ID的写事务被系统中所有其他组件以与事务发出相同顺序看到,则可以声明接口提供Ordered_Write_Observation。

如果接口没有Ordered_Write_Observation属性,那么只有当写入具有相同ID到同一外设的一系列写事务的观察顺序才得到保证。要在没有Ordered_Write_Observation的情况下支持“生产者/消费者”排序模型,必须在向不同外设发出后续事务之前,先完成对一个外设的早期写事务并提供BRESP响应。

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

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

相关文章

matlab代码

(一) % 你可以根据实际的分隔符进行设置 opts delimitedTextImportOptions(Delimiter, ,); % 读入(.txt)文档,文档以分隔符进行分离 -> table data readtable(D:\QT_Project\servo\recvData.txt, opts);% table -> cell dataMatr…

圈子交友系统话题设置-免费圈子社区论坛交友系统-圈子交友系统功能介绍-APP小程序H5多端源码交付!

1. 圈子的独特创造与精心管理 源码赋予用户创造独特圈子的能力,为志同道合的人们打造一个分享兴趣、交流见解的平台。每个圈子都可以个性化定制主题、标签和规则,以确保圈子具备个性特点和强烈的社群感。作为圈子的创建者,您将享有自由编辑资…

Ableton Live 12 Suite for Mac/Win:引领音乐制作新纪元的创意神器

在数字音乐制作领域,Ableton Live 12 Suite无疑是一颗璀璨的明星。这款强大的音乐制作工具,无论你是Mac用户还是Windows用户,都能为你带来前所未有的音乐创作体验。 Ableton Live 12 Suite的出色之处在于其全面而精细的功能设计。从音频录制…

计算机考研|25科软值得冲吗?会不会炸?

给大家看一串数字:3300 4300 1400 3300 3900 没错,这就是科软这几年的报考学生的实际情况,21年的时候,报考人数达到了峰值,有4300人,当年复试线388分真的可以说是炸穿地心。24年报考人数3900人&#xff0c…

485口还是网口?西门子PLC通讯方式到底怎么选?

西门子作为最早进入中国市场的工控厂家,其市场占有率一直非常高。 西门子PLC的品质非常好,其网络稳定性、开放性深受工控人员的喜爱,而且编程软件分类多,使用方便。在国内工控界具有显著地位。 虽然大家对西门子PLC都有一定的了…

酚类壳聚糖Dextran和F127-CHO胶束交联形成可注射水凝胶

酚类壳聚糖Dextran和F127-CHO胶束交联形成可注射水凝胶 形成水凝胶的过程 壳聚糖与酚类小分子的偶联:壳聚糖是一种天然的、具有多个氨基和羟基的多糖,这些功能基团使其能够与酚类小分子进行化学偶联。酚类小分子可以通过共价键(如酰胺键或醚…

vue3引入图片 无法使用require, vue3+vite构建项目使用require引入包出现问题需要用newURL来动态引入图片等静态资源

在vue3中 require引入图片的本地资源报错Uncaught (in promise) ReferenceError: require is not defined <template> <img :src"imageSrc" alt"My Image"> </template> <script> import imageSrc from /assets/image.png; export…

研究发现:提示中加入数百个示例显著提升大型语言模型的性能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

SQLAlchemy 2.0 中文文档翻译完成

SqlAlchemy 2.0 中文文档概述SQLAlchemy Unified Tutorial建立连接 - Engine处理事务和 DBAPI处理数据库元数据处理数据使用插入语句使用 SELECT 语句使用 UPDATE 和 DELETE 语句使用 ORM 进行数据操作处理 ORM 相关对象进一步阅读SQLAlchemy ORMORM 快速入门ORM 映射类配置ORM…

机器学习(XgBoost)预测顶和底

之前的文章中&#xff0c;我们对中证1000指数进行了顶和底的标注。这一篇我们将利用这份标注数据&#xff0c;实现机器学习预测顶和底&#xff0c;并探讨一些机器学习的原理。 我们选取的特征非常简单–上影线和WR&#xff08;William’s R&#xff09;的一个变种。选取这两个…

python基本语法与使用

Python是一种高级编程语言&#xff0c;它被广泛应用于各种领域&#xff0c;包括Web开发、数据科学、人工智能等。以下是Python的基本语法和使用方法&#xff1a; 1.注释 使用#来添加单行注释&#xff0c;多行注释可以使用或"""来包围。 # 这是一个单行注释…

深入浅出MySQL-01-【SQL基础】

前言 环境&#xff1a; Windows11MySQL-8.0.35 1.服务启动和关闭 Windows系统中&#xff1a; // 启动MySQL服务 net start mysql80 // 关闭MySQL服务 net stop mysql802.SQL基础 2.1.登录 登录本机MySQL服务&#xff0c;用户是root&#xff08;-u指定&#xff09;&#…

ElementUI RUOYI 深色适配

1. 切换按钮&#xff1a;随便找个页面放上去 页面触发逻辑如下 a. html 按钮结构&#xff08;可自定义&#xff09; <el-switchstyle"margin-top: 4px; margin-left: 8px; margin-right: 8px"v-model"isDark"inline-promptactive-icon"Moon"…

用阅读丈量世界 用标准突破边界——The Open Group“开放标准书单”推荐!

The Open Group 依托旗下多个论坛&#xff0c;不断推陈出新标准、指南、白皮书、案例分析等形式多样的发布物&#xff0c;为行业在数字能力赛道的良性高速发展提供先进的理念、方法、策略以及具体应用场景下的最佳实践。 正值第29个“世界读书日”&#xff0c;The Open Group精…

如何解决Windows本地微服务并发启动后端口占用问题

在微服务架构中&#xff0c;经常会遇到本地开发时多个服务需要并行运行&#xff0c;而断开服务后由于某些原因导致端口未正确释放&#xff0c;再次启动服务时发现端口被占用的问题。这会阻碍开发进度&#xff0c;解决这一问题非常关键。本文将详细指导你如何在Windows环境下解决…

SQL Server指南:从入门到进阶实战

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Java面试必问题52:(高级面试篇)MongoDB的详细解释以及他的用法以及他跟Redis的区别以及优势

1. 非结构化数据存储&#xff1a;MongoDB是一个面向文档的NoSQL数据库&#xff0c;它不需要定义固定的数据模式&#xff0c;适用于存储不同结构和半结构化的数据&#xff0c;如日志、JSON文档、传感器数据等。 2. 可扩展性和高性能&#xff1a;MongoDB采用分布式架构&#xff0…

PaddleSeg (2) 模型训练

已处理好数据集和配置文件,可以开始模型训练。 启动训练 python tools/train.py --config configs/xxx.yml --do_eval --use_vdl --save_interval 500 --save_dir output/xxx上述训练命令解释:* `--config`

为什么堆排序的时间复杂度是O(N*logN)?

目录 前言&#xff1a; 堆排序&#xff08;以排升序为例&#xff09; 步骤&#xff08;用大根堆&#xff0c;倒这排&#xff0c;排升序&#xff09;&#xff1a; 1.先把要排列的数组建立成大根堆 2.堆顶元素&#xff08;82&#xff09;和最后一个元素交换&#xff08;2&…

华为OD机试真题-亲子游戏-2024年OD统一考试(C卷D卷 )

题目描述: 宝宝和妈妈参加亲子游戏,在一个二维矩阵(N*N)的格子地图上,宝宝和妈妈抽签决定各自的位置,地图上每个格子有不同的糖果数量,部分格子有障碍物。 游戏规则是妈妈必须在最短的时间(每个单位时间只能走一步)到达宝宝的位置,路上的所有糖果都可以拿走,不能走障…