AXI Ordering Model

AXI支持乱序的事务完成,对于每个transaction来说,包括cmd和data信号,都给了一个ID标签,使用此标签来实现乱序事务完成
具有相同ID标签的transaction需要按照他们被发送的顺序执行并返回
具有不同ID标签的则可以乱序执行并返回
在AXI3中有五个ID标签信号,如下:

  • AWID 此ID通过write address channel传输,是address group signal 的ID标签
  • WID 此ID是通过write data channel传输,是data group signal的ID标签,这个ID要和AWID进行匹配
  • BID 此ID通过write response channel传输,是response signal的ID标签,这个ID要和AWID和WID相匹配
  • ARID 此ID通过read address channel传输,是address group signal的ID标签
  • RID 此ID通过read data channel传输,是data group signal的ID标签,这个ID要和ARID相匹配

关于outstanding 和 out-of-order

  • outstanding指的是,在上一个transaction还没结束之前,就可以发送下一个transaction的地址,这个表明的是系统并行处理transaction的性能,outstanding是有一定深度的,也就是最多允许几个transaction进行outstanding。
  • out-of-order指的是返回时不需要按照发送的顺序进行返回,因为对于不同slavememory的访问速度是不同的,所以对于速度较快的slave可以先返回,较慢的可以后返回,即使发送到较慢slave的transaction是比较早的。但是这种情况是建立在他们(transaction)具有不同的ID标签的基础上。如果他们具有相同的ID标签,将只能按顺序返回

对于transaction的顺序,有以下几点规则

  • 对于来自不同主机的transactions,可以以任何顺序完成,没有完成顺序的限制
  • 对于来自同一个主机的transactions,但是拥有不同的ID,可以以任何顺序完成
  • 对于来自同一个主机并且具有相同的AWID标签的transaction,需要按照发送地址的顺序进行完成
  • 对于来自同一个主机并且具有相同的ARID标签的transaction,需要分为两种情况,
    • 第一种是如果访问的是同一个slave,则读取的数据需要按照收到的地址的顺序返回。
    • 第二种是如果访问的是不同的slave,interconnect需要保证返回的时候顺序和master发送的地址顺序相同
  • 如果ARID和AWID具有相同的值,在传输的顺序上没有相关的要求。如果主机有要求,那么是在第二个transaction开始时,第一个transaction必粗完全结束。

对于Read的顺序

如果是不同的ARID,则可以按照任意顺序发送或接收,

  • 从主机的角度,可以以任意顺序接收,并且还可以以interleave的方式接收
  • 从从机的角度,可以以任意顺序发送,不需要按照接收的顺序发送
    如果是相同的ARID,则必须按照顺序发送或接收
  • 从主机的角度,必须按照主机发送的地址的顺序进行接收
  • 从从机的角度,必须按照从机接收到的地址的顺序进行发送
    对于以上的read transaction,不管怎样都必须保证RID和ARID想匹配,对于去到不同从机的有着相同ARID的transaction,interconnect需要保证返回时的顺序和发送到slave的顺序相同,这个out-of-order的深度是可定义的,需要从机的设计者指定

对于普通的Write的顺序

如果slave不支持interleave,那就是普通的write顺序,不管是否具有相同的AWID,此时需要保证主机write的data需要按照address的顺序进行发送,从机的角度来看,就是按照接收address的顺序接收data
如果transaction来自不同的主机,那么需要保证写入的这些书序是按照地址顺序的

对于Interleave Write(AXI3)

interleave指的是不同AWID的transaction中的data可以interleave,从机需要指定支持的interleave的深度,一般默认为1,也就是不支持interleave的情况

对于Interconnect

如果master interface连接到了interconnect,interconnect会在ARID,AWID,WID上加入额外的bit,这个bit是独特的。
这个时候也就是说明master不需要考虑其他master的使用的ID,同时在slave interface的ID位宽要大于master的,因为加入了interconnect的ID bit

对于读操作,返回时的RID也将具有额外的bit,来让interconnect判断发送给哪个master,但是master不必考虑这个,因为interconnect将会在发送时将RID上额外的ID bit给去掉

一般建议master发出的ID有4位,interconnect加入额外的4位,slave支持8位的ID

AXI Ordering Model相关推荐

  1. AMBA协议之AXI协议——中文翻译

    AMBA协议之AXI协议--中文翻译 本规范的编写是为了帮助那些想要熟悉高级微控制器总线架构(AMBA)和设计与AXI协议兼容的系统和模块的硬件和软件工程师. 文章目录 AMBA协议之AXI协议--中 ...

  2. 数字IC设计--------AMBA AXI协议(英文原版)

    AXI:AMBA Advanced eXtensible Interface (AXI) Protocol Specification 目录 chapter 1 Introduction about ...

  3. AXI协议解析(五)

    今天先来看一下传输标识(transaction identifier)的概念,主要是ID信号. 开始之前先讲几个概念,首先是outstanding(想不好怎么翻译,有的人译为超前)传输.如果没有out ...

  4. outstanding and out-of-order

     Ordering model ​AXI的控制和数据通道分离,可以带来很多好处.地址和控制信息相对数据的相位独立,可以先发地址,然后再是数据,这样自然而然的支持显著操作,也就是 outstandi ...

  5. scala基础之泛型详解

    在Scala中你可以使用类型参数来实现类和函数,这样的类和函数可以用于多种类型.比如Array[T] 你可以存放任意指定类型T的数据. 类.特质.函数都可以有类型参数:将类型参数放在名字后面用方括号括 ...

  6. Python 数据科学手册 5.7 支持向量机

    5.7 支持向量机 支持向量机(SVM)是一种特别强大且灵活的监督算法,用于分类和回归. 在本节中,我们将探索支持向量机背后的直觉,及其在分类问题中的应用. 我们以标准导入开始: %matplotli ...

  7. Python 西瓜书机器学习支持向量机(SVM)

    %matplotlib inline #为了在notebook中画图展示 import numpy as np import matplotlib.pyplot as plt from scipy i ...

  8. 机器学习之SVM调参实例

    一.任务 这次我们将了解在机器学习中支持向量机的使用方法以及一些参数的调整.支持向量机的基本原理就是将低维不可分问题转换为高维可分问题,在前面的博客具体介绍过了,这里就不再介绍了. 首先导入相关标准库 ...

  9. Python数据科学学习笔记之——机器学习专题

    机器学习专题 1.专题:朴素贝叶斯分类 1.1.朴素贝叶斯分类 朴素贝叶斯分类器建立在贝叶斯分类方法的基础上,其数学基础是贝叶斯定理--一个描述统计量条件概率关系的公式.在贝叶斯分类中,我们希望确定一 ...

最新文章

  1. 83篇文献-万字总结强化学习之路
  2. CSS3中背景的四个新的属性
  3. numpy函数中的linspace
  4. 程序员如何快速成长为IT精英
  5. 怎么利用GitHub
  6. arduino支持的内核版本_Arduino开发(arduino IDE)
  7. Kafka模拟实现(用于自我测试环境)
  8. 面向对象 —— 类设计(九) —— 类设计的内在一致性
  9. 做一款仿映客的直播App
  10. cad转图片格式后不清晰怎么办?三步即可解决
  11. python提取文件中含某一字符串的行,并写入新的文件中
  12. 各大开源软件下载网址
  13. 初级基础HTML CSS实现二级下拉菜单
  14. 微服务设计指导-使用云原生微服务解决传统海量跑批时引起的系统间“级联雪崩”以及效率
  15. 去除word转pdf时的图片黑边
  16. mysql命令行导入csv_MySQL命令行导入CSV文件
  17. 使用 Docker Compose 构建复杂的多容器 App
  18. 想用 AI 在《MineCraft》挖矿躺赢?660 支队伍全部失败
  19. EOS智能合约开发系列(五): 配置VS Code
  20. Python中for循环的使用

热门文章

  1. 网页优化中,如果图片大小不做定义,则页面需要重新渲染,速度受到影响
  2. html访问按钮代码,使用html按钮调用javascript函数
  3. 不用 Flash 观看 bilibili 直播
  4. Python 爬取淘宝商品的价格并保存到本地excel文件中
  5. 2023数字中国创新大赛网络数据安全赛道数据安全产业人才能力挑战赛
  6. Linux学习笔记--locate命令(文件搜索命令)
  7. ElasticSearch学习宝典
  8. MySql数据库导出csv文件
  9. QT界面:QDockWidget停靠窗口使用小结
  10. Flutter——自定义AppBar