首页 > 其他分享 >AMBA4 AXI 多主机多传输

AMBA4 AXI 多主机多传输

时间:2023-06-11 23:34:22浏览次数:54  
标签:事务 Interconnect 主机 从机 AMBA4 AXI ID


1. 多主机 AXI 架构

2. 不同主机间的事务独立

  • 如何实现多主机间事务独立
    • (1)各主机保证自己的ID与其它主机不同。
      • 协议并没有在主机之间设立消息共享机制,也就是各个主机都不知道其它主机使用的是什么ID,也就没办法避免。
    • (2)使用AXI Interconnect组件对不同主机的ID进行调整,即使各个主机发出的ID相同,经过AXI Interconnect之后,从机拿到的ID也是不同的。
      • 如上图所示,主机连接到Interconnect组件有对应的Sx端口,x值即表示了传输事务来自哪个主机,所以Interconnect可以在主机发过来的ARID号前面加上附加值x,再发送给从机。
      • 对于从机返回的RID,Interconnect需要剥掉附加值再返回数据给主机。
      • 对于从机返回的RID和BID的附加值可以直接将其转发至对应的主机。
      • 参考文献中有图片解释,更为清晰。
      • 考虑到要加附值信号,而赋值信号的位宽取决于主机的个数。
        • 协议建议:主机端ID位宽不超过4bit,从机端ID位宽不超过8bit。

3. Interconnect 功能

3.1 转发功能

  • AXI 本是一个单对单的协议,需要借助Interconnect组件才能实现多对多的通信。
  • Interconnect使用交叉总线连接每一个主机和从机端口,而交差总线的选通是由Interconnect内部的switch fabric或称crossbar来控制的。
    • 选通实现:Interconnect接收到主机发送过来的AxADDR,将其进行译码,选择对应的从机,这个过程相当于把哪根交叉线选通。
  • 写传输事务中,Interconnect需要保证写数据的保序性。
    • (1)写数据的顺序需要与写事务的顺序保持一致。
    • (2)在一个写事务的写数据期间,不能插入其它事务的数据。

3.2 多机仲裁功能

  • 需求:考虑到主机传输事务独立性,可能同时多个主机提出使用总线进行传输。Interconnect 也需为多个从机提供仲裁。
  • Interconnect中每个主机/从机接口有对应的缓冲通道Buff,而仲裁就是决定从哪个缓冲通道中读取事务,输入crossbar。
  • 仲裁策略
    • (1)轮询(round-robin),轮流从各个主机的缓存通道读取事务。
    • (2)优先级仲裁(priority),先读高优先级的缓存通道。

3.3 读数据重排序功能

  • 这篇博客中介绍,单主机的读事务中,由从机负责(相同ID传输事务的)保序性。
  • 在多主机通信中,主机可能向多个从机发出ID一致的传输事务,此时需要Interconnect来保证从机返回主机数据的顺序要与主机发出的事务顺序一致。重排序电路设计与从机内的相似。

如有问题,请多指正!!

标签:事务,Interconnect,主机,从机,AMBA4,AXI,ID
From: https://www.cnblogs.com/qianbinbin/p/17473848.html

相关文章

  • AMBA4 AXI 单主机多传输
    参考https://zhuanlan.zhihu.com/p/1490712601.超前传输(outstandingtransaction)这篇博客中提到,考虑写数字通道有缓存,所以可以在从机返回写回复信号之前,开启下一次的传输。超前传输就是在当前传输完成前,可以开始发起下一次的传输。如果多个事务可以并行处理,那么可以提......
  • 针对不同主机使用不同 SSH Key
    考虑到安全性和便捷性,相信大部分同学都已经习惯了SSHkey登录这种方式。有时候我们需要针对不同主机使用不同的key,甚至针对同一个主机使用不同的key,都可以通过~/.ssh/config这个配置文件来实现。默认情况下,ssh会使用~/.ssh/id_rsa。这里,我通过ssh-keygen命令生成另外一个......
  • 通过ngx-lua来统计nginx上的虚拟主机性能数据
    介绍以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页:https://github.com/skyeydemon/ngx-lua-stats功能支持分不同虚拟主机统计,同一个虚拟主机下可以分不同的location统计.可以统计与query-......
  • Vue 中通过事件总线方式组件间传递数据及调用 Vue脚手架中的axios数据调用方式获取git
    1:看界面效果2:代码结构3:代码内容3.1:引入第三方css样式表:bootstrap.css/*!*Bootstrapv3.3.5(http://getbootstrap.com)*Copyright2011-2015Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*//*!normalize.cssv3.0.3|......
  • axis2 maven报错Could not find artifact org.apache.axis2:axis2:jar:1.7.9
    Couldnotfindartifactorg.apache.axis2:axis2:jar:1.8.2inaliyunmaven(https://maven.aliyun.com/repository/public/)一开始以为是镜像的问题,但是换成中央仓库也没用https://repo.maven.apache.org/maven2/org/apache/axis2/axis2/1.7.9/实际上,这个目录里确实没有j......
  • 从 sum 求和谈 axis=1 or 0
    二维数组axis=0:表示从上往下axis=1:表示从左往右temp=np.array([[1,2],[3,4]])print("原矩阵数组:\n",temp)axis0=temp.sum(0)#从上到下求和axis1=temp.sum(1)#从左往右求和print("axis0(从上到下求和):",axis0)print("axis0(从左往右求和):",axis1)三维数......
  • 使用axios 请求后端
    1、使用CDN的方式导入axios点击查看代码<scriptsrc="https://unpkg.com/axios/dist/axios.min.js"></script>二,跨域问题的解决1,什么是跨域CORS,全称是:Cross-OriginResourceShareing2,跨域问题的解决后端增加全局的过滤器三,前端elementUI点击查看代码<!--引......
  • 读了会 axios 源码,虽然云里雾里,但是我想到了三个有趣的对比
    源码阅读最近翻来了axios源码,信心满满的看了会,虽然哪跟哪都没串起来,但是意外收获了一些新的想法。有几组不错的知识点,对比看,比单独看每个知识点,更有趣一些。遇到有趣的知识点,当然要分享一下。文章速读本文从axios的源码联想到了几个不错的知识点对比。阅读文章,可以有以下收获:知......
  • 宿主机 vim 编辑 docker 容器内部文件
    容器所有文件,一定在宿主机某个位置。具体位置是:/proc/<container-pid>/root,这个位置就是容器系统根目录所在的位置,注意只有运行中的容器才有pid,停止中的容器pid为0。查看一个容器pid可用命令dockerinspect-f'{{.State.Pid}}' <container> 示例(注意:需要root权......
  • 解密香港主机:提升你网站速度的秘密武器!
    在如今高速发展的互联网时代,网站速度对于用户体验和搜索引擎排名至关重要。当用户访问一个网站时,如果加载时间过长,他们很可能会感到沮丧并放弃继续浏览。此外,搜索引擎也更倾向于将速度较快的网站排名靠前。为了解决这个问题,许多网站管理员正在寻找提升网站速度的方法。而香港主......