Cachable和Bufferable

一个Master发出一个读写的request,中间要经过很多Buffer,最后才能送到memory。这些Buffer的添加是为了outstanding,timing,performance等。
Buffer有两种类型:一种FIFO结构,仅仅就是保存发送Request给下一级或者返回Response给上一级。还有一种Buffer,在接受了上一级的Request之后立刻给上一级回response,告诉上一级这个操作已经做完了,而实际上这个操作并没有发到下一级Buffer,更没有被送到memory。有的人可能就问,write的时候这样可以,read的时候则无法这么做。其实read一样有bufferable,如果此处buffer的write data channel有此read需要的数据,就可以直接返回,而不用去访问memory,如果没有,则要把Request发到下一级。
总之,所以的访问都要经过这些buffer,是否bufferable在于何时由谁回response,在于是否要把request送到最终的memory。

Cacheable

Interconnect其实只是一个路由的功能,内部有buffer,但并没有cache。而是在这个访问从Master发起request到送到最终的memory这个过程中,可能会经过一些cache,cacheable代表了是不是要去这个cache中查找自己需要的数据。要不要更新cache。

利用cache来提高性能,有些操作是要求绝对non-cacheable的,比如device 内部寄存器的访问,这些都是MMR。只能使用non-cachable。

AXI 五个channel所有的信号,可以是Master-Interconnect,也可以是Interconnect-Slave,也可以直接是Master-Slave。

outstanding 乱序与穿插

简单讲,如果没有outstanding,或者说outstanding能力为1,则AXI Master的行为如下:
读操作:读地址命令->等待读数据返回->读地址命令->等待读数据返回->读地址命令->等待读数据返回。。。。。
写操作:写地址命令->写数据->等待写响应返回->写地址命令->写数据->等待写响应返回。。。。。(如果支持out-of-order,对于AXI3,写命令和写数据不一定有先后顺序且ID顺序不一定相同,AXI4因为已经没有WID信号,所以写数据的顺序要和写地址的顺序一样)

而如果outstanding能力为N>1的话,则:
读操作:可以连续发N个读地址命令,这期间如果读数据没有返回,则需要需要等待读数据返回,如果有读数据返回,则返回了几个,那么仍然可以接着发几个。也就是说,“在路上” 的读命令(或者读数据)最多可以是N。多说一点,可以看出,如果数据返回得比较慢,那么IP需要等待,效率就会比较低,因此,为了提高效率,有必要提高outstanding能力,以弥补”路上“(总线)引入的延时。但是也不能无限制地发,有可能会引起总线拥塞,把其他IP给堵住。
写操作:可以连续发出N组写地址(写数据)命令,这期间如果写响应没有返回,则必须等待写响应返回才能接着发写地址(写数据)命令,如果有写响应返回,则返回了几个,那么仍然可以接着发几组。也就是说,“在路上” 的写响应最多可以是N。

out of order 和interleave

乱序和间插是两个完全不同的概念。笼统的说,乱序指的是burst这个粒度,而间插指的是beat这个粒度。
简单说了,乱序是salve返回master请求的out of order特性,但这个slave可以是广义上的,一般总线会完成这个功能;而间插(interleave)是指写数据,或是读返回数据,按找不同ID交织出现。比如:ID0 ID1 ID0 ID1....。乱序和间插都有深度,一般乱序深度比间插大的多。上面那个例子就是间插深度为2的情况。

exclusive 和lock
首先,Lock在amba2.0中就有涉及,意思是,某个master 可以通过Lock 总线来实现独占。只有当该master完成传输后才释放出总线。这样的话,总线的效率会降低。 2. 相比Lock,AXI 中引入了exclusive操作,不需要将bus锁定给某个master。而是通过TAG ID以及slave 返回的response来判断当前的传输是否成功。过程如下:

1)mst 首先向slave的某个地址位置发起一个exclusive读操作。slave中的monitor会纪录下该mst的 ARID和 要访问的地址位置(返回EXOKEY)。

2)mst向同一地址区域发起一exclusive写操作。slave同样要记录该操作的mst的 AWID 和 要访问的地址位置。如果AWID==ARID && 该地址内容没有改变(没有 其他的mst访问过),这个写操作就是成功的。该地址就会更新,同时slv会返回EXOKEY. 否则,slv会返回OKEY.

由此看来,对于exclusive操作,总线其实允许其他mst同时来请求总线。比如,当其他mst要同时通过总线访问其他的slv时,上述2)就不满足,所以总线就不会被锁定。

                                                                                                                          ————欢迎关注我的公众号《处理器与AI芯片》

AXI协议中的模棱两可的含义的解释相关推荐

  1. 【学习笔记】类AXI协议中的outstanding概念学习与计算

    我们的目标是┏ (゜ω゜)=☞芯片前端全栈工程师~喵! 前言 最近因为可能要写一个基于axi4协议的ddr模型(纯学习),正好也赶上我创作瓶颈了所以就把axi协议里的一些概念拿出来复习复习. 概念理解 ...

  2. HTTP协议中状态码的含义

    当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求. ...

  3. USB协议中的返回包含义

    三种返回确认信息 ACK .NAK .STALL [ACK 包] ACK(确认) 表示 主机和设备已经收到数据,没有出现错误.设备必须在Setup 事务的交换包中返回ACK,设备也必须在OUT事务的交 ...

  4. 关于蓝牙协议中GATT、特性、属性解释

    在蓝牙的学习中,一上来就要面对一大堆的专业名词.首先就是服务是什么?特性是什么?属性是什么?刚开始的时候查了很多资料都还是没有搞懂.这次就结合代码,尽量用最通俗易懂的方式将这些东西解释并记录下来,也希 ...

  5. 【AXI】解读AXI协议事务属性(Transaction Attributes)

    芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球 四社区联合力荐!近500篇数字IC精品文章收录! [数字IC精品文章收录]学习路线·基础知识·总线·脚本语言·芯片求职· ...

  6. 【AXI】解读AXI协议双向握手机制的原理

    解读AXI协议双向握手机制的原理 一.写在前面 二.AXI 双向握手机制简介 2.1 信号列表 2.2 双向握手目的 2.3 握手过程 2.3.1 CASE1(READY信号先于VALID信号改变) ...

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

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

  8. AXI协议解析(五)

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

  9. http协议中有关http头的技术资料

    一.基础篇 HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参 考RFC2616.HTTP协议采用了请求/ ...

最新文章

  1. 服务器温控系统,服务器温度监控
  2. ROS配置分布式通信
  3. 程序员---不要对自己说“不可能”
  4. python爬虫基础扫盲之HTTP以及HTTPS
  5. C#用注册表开机自动启动某某软件
  6. Batch入门教程(1)
  7. 只需一行代码,就能导入所有的Python库?
  8. 关于opencv设置视频的属性无效问题
  9. 2.对memcached进行curd操作
  10. oracle 数据库学习笔记
  11. Origin软件绘制柱形图
  12. 读《极简》《微习惯》
  13. [ubuntu] 安装五笔输入法
  14. BlueCoat ProxySG配置FTP代理
  15. Python如何按下指定按键后执行特定的操作
  16. 机器人辅助的符文天赋_LOL机器人辅助带什么天赋_S9机器人辅助怎么玩_3DM网游...
  17. 采用ODC改善软件质量:一个案例研究
  18. 百度地图API权限部分
  19. 10G光模块系列:10G 80公里(KM)光模块有哪些-易飞扬
  20. Oracle latch: cache buffers chains

热门文章

  1. 联合体Union详解
  2. linux系统可以安装企业微信,在Deepin中使用企业微信遇到错误的解决,附微信又升级的处理方法...
  3. 达梦数据库存储过程及游标使用
  4. springboot呼伦贝尔旅游网站毕业设计源码091833
  5. HCIP 第一天笔记
  6. Dr.com海淀宽带多人使用拨号软件
  7. 这可能是一份最完整的 RabbitMQ 总结!
  8. 思普linux安装教程,思普操作系统下载地址|思普国产操作系统好用吗_好特教程...
  9. GIMP入门-张抿轩-专题视频课程
  10. silabs ZLL