AXI相关知识点

news2024/11/16 17:42:24

1、Axcache相关知识点

xilinx 文档Pg059推荐:

. Xilinx recommends that master devices drive their AW/RCACHE outputs to 0b0011 to allow the AXI Interconnect core to pack data while performing width conversion.
下面这篇文档对Axcache讲解的非常通俗易懂。
【AXI】解读AXI协议事务属性(Transaction Attributes)-阿里云开发者社区

信号列表

image.png

2.3 信号含义

2.3.1 AxCACHE[0]信号bufferable

buffer:缓冲

这个信号是用来衡量AXI传输过程中过的缓冲能力的,为什么需要缓冲?

就跟我们上篇文章中讨论的Outstanding传输机制有关,先传输的命令会进行等待,依次吐出数据,以此来提升传输效率,因此这个信号置0,即无缓冲能力,置1,信号在到达其最终地址前可以缓冲数个周期(无论是读还是写都是如此)

具体的bufferable结构如何实现也存在很多的方法,一个最简单的肯定是在同时钟域的条件下,用类似同步FIFO的结构,来缓冲载入的命令,再依次读出,即可参考文章如下。

【数字IC手撕代码】Verilog同步FIFO|题目|原理|设计|仿真

2.3.2 AxCACHE[1]信号modifiable

AXI3.0中AxCACHE[1]信号被称作Cacheable,而非modifiable,我们这里还是取用AXI4.0协议来做讲解,采用modifiable的概念

modify:改变

这个信号是用来衡量在传输过程中相关的地址与控制信号是否会发生改变,假如AxCACHE[1]置1,信号可以发生改变,置0,信号不能发生改变,具体是哪些信号不能发生改变呢?

image.png

【AXI】解读AXI协议中的burst突发传输机制中,核心的起始地址,传输大小,传输长度,传输种类都进行过解读,这些是决定传输形式的最重要的四个信号,而不核心的Lock Type,Protection Type属于进阶内容,以后再讨论,这里也可以暂时一放,但是读者需要注意的是,就算是能改变,改变的也是前四个信号,后两个“Lock type和Protection type”在AxCACHE[1]为1的时候同样不能改变。

请读者思考,为什么在传输过程中我们需要设定控制信号可变或者控制信号不可变呢? 列举以下这些例子,以供参考

1.一个传输切分成了多个传输

2.多个传输合并成了一个传输

3.读传输多抓了一些数据存在Cache里

4.写传输激活了更大范围的地址空间

稍微解释一下2和3,其它的操作modifiable的原因也是相似的

2.多个传输合并成了一个传输

先后发送了两个burst读传输操作,前一个是针对于32bit数据通路的低16位进行,后一个是针对于32bit数据通路的高16bit进行,其他的burst参数一致,假如我们设定了modifiable后,在outstanding传输机制中,我们更倾向于将其合并,将两个读操作进行合并为一个来进行,当然这里面涉及到很多的考量,比如说地址之间依赖关系,或者是什么情况下可以进行合并、等等等。但若是这些事情都被解决了,传输的合并势必会提高整个AXI协议的效率。

3.读传输多抓了一些数据存在Cache里

之前就一直在讨论Cache中应该放什么样的数据,什么样的数据价值更高,一个普遍的观点是,假如我们抓取了0x0000_1000这个地址的数据,那这个地址周边的数据如0x0000_0111这种的离得很近的地址最终被读取的可能型一定比地址离它远的高,因此我们可不可以把它周边的数据也同样放到离CPU更近的位置来提高效率?modifiable给出了这种操作的可能性。

2.3.3 AxCACHE[2]信号

这个信号在AXI3中直接当作read-allocate的判断,但是在AXI4.0中被分配了新的意义,具体如下

对于读transaction而言

AxCACHE[2]置1,说明需要去cache中检查读地址是否之前被分配

AxCACHE[2]置0,说明不需要去cache中检查读地址是否被分配

对于写transaction而言

AxCACHE[2]置1,同样需要去cache中检查写地址是否被分配(虽然是写transaction,但是之前的读行为或其他主设备transaction行为同样可能使cache中存在这个地址)

AxCACHE[2]置0,说明不需要去cache中检查地址是否之前被分配

2.3.4 AxCACHE[3]信号

与AxCACHE[2]极其相似

对于写transaction而言

AxCACHE[3]置1,说明需要去cache中检查写地址是否之前被分配

AxCACHE[3]置0,说明不需要去cache中检查写地址是否被分配

对于读transaction而言

AxCACHE[3]置1,同样需要去cache中检查写地址是否被分配(虽然是读transaction,但是之前的写行为或其他主设备transaction行为可能使cache中存在这个地址)

AxCACHE[3]置0,说明不需要去cache中检查地址是否之前被分配

2.3.5 总结

具体是否应该去cache中检查是否allocate,由两个信号决定,即AxCACHE[2]和AxCACHE[3]共同决定。检查分配这个行为,只有 AxCACHE[3:2] = 2’b00 时才不需要检查cache中的数据,不过AxCACHE[3]和AxCAHE[2]置1,所代表的为什么cache中可能被分配的原因是不一样的,即“是读或写操作产生了分配,是自身还是其他主设备的操作产生了分配。”的区分

除此以外,AxCACHE[1]决定信号可否改变,AxCACHE[0]决定信号可否缓冲。

2.4 实例分析(memory为例)

为什么我们要用memory做例子解读?

因为对于内存来说,需要支持尽可能多的transaction种类,而对于很多其他从设备而言,只需要支持一部分transaction特性即可,使用meemory做例子,覆盖最广。

image.png

1.bufferable指能否缓冲

2.cacheable指是否需要去cache查找是否allocate

3.所谓的No-allocate并不是说读写transaction的分配被禁止

这些概念在协议中都有具体的规定,有需要的直接进行查阅即可,这些memory type的名字更多的是一种种类的划分,而非实际的含义

比如说“Write-through No-allocate”的含义是这样子

4995d5abf4104099b756ecd44b7f58c9.png

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

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

相关文章

2024年春招|个人简历范本(精选5篇)

HR浏览一份简历也就25秒左右,如果你连「好简历」都没有,怎么能找到好工作呢? 如果你不懂得如何在简历上展示自己,或者觉得怎么改简历都不出彩,那请你一定仔细读完。 个人求职简历第 1 篇 男 22 本科 AI简历 市场营销 123456789 resume@ai-tools.cn 个人概述 以互联…

数据库--SQL语言-1

练习网站:自学SQL网 Select 查询语法复习 SELECT column, another_column, …FROM mytableWHERE condition AND/OR another_condition AND/OR …; 操作符号: 如果属性是字符串, 我们会用到字符串相关的一些操作符号,其中 LIKE&#xff08…

「CISP题库精讲」CISP题库习题解析精讲5道

前言 本节只要对CISP考试中的5道习题进行详细的讲解,时间比较少,敲多少道,就算多少道,反正全部也就1400多道。 习题部分 第一题 某企业内网中感染了一种依靠移动存储进行传播的特洛伊木马病毒,由于企业部署的杀毒软件,为了解决该病毒在企业内部传播,作为信息化负责人…

C++进阶之路---多态(二)

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、多态的原理 1.虚函数表 // 这里常考一道笔试题:sizeof(Base)是多少? class Base { public:…

Java怎么实现word转PDF?

问题背景 这其实源自于使用ES搜索word、pdf等文档的方案实现过程,出现了只能正确解析pdf却不能解析word内容的错误,于是折中方案何不直接把word转成pdf呢?word转pdf肯定是比pdf转word容易太多了。 实现方案 以下是针对多种Java环境下将Wor…

我用 Python 做了个小仙女代码蹦迪视频

前言 最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿遍又亿遍,久久不能离开! 看着仙紫小姐姐的蹦迪视频,除了一键三连还能做什么?突发奇想,能不能把小仙女的蹦迪视频转成代码舞呢? 说…

Python 基于 OpenCV 视觉图像处理实战 之 背景知识

Python 基于 OpenCV 视觉图像处理实战 之 背景知识 目录 Python 基于 OpenCV 视觉图像处理实战 之 背景知识 一、简单介绍 二、人工智能(Artificial Intelligence,AI) 三、OpenCV 四、计算机视觉任务的主要类型 五、计算机视觉是通…

博客系统(SSM)

前端页面http://t.csdnimg.cn/zwKyG以上是之前写过的博客前端页面的内容,下面是通过SSM实现的后端内容。 目录 一.准备工作 1.1数据准备 1.2修改配置版本文件 1.3配置数据库 二.项目公共模块 2.1实体类 2.2操作数据库部分 三.功能开发 3.1博客列表 获取博…

确保电子设备稳定运行:晶振安装的详细检查方法

晶振的安装质量直接影响到电路的稳定性和可靠性,因此,检查晶振安装是否正确是非常重要的。下面,我们将介绍一些检查晶振安装是否正确的方法。 1. 检查晶振引脚的焊接质量 在检查晶振安装时,首先要确保晶振的引脚已经正确且牢固地…

stata中inlist2命令(划分区域的简洁命令)

inlist2 首先在stata命令框中输入ssc install inlist2,replace与传统的inlist命令相比,第一是没有字符串个数限制,第二是不用加引号。 常见的划分区域的stata命令 1.最原始的做法 gen area1 if province"北京市"|province"天津市"…

PolarDN的MISC题目:01,0和255详细过程

一、0和255 题目给了俩个文件,一个.txt,一个.py .txt文件中包含0和255 一个字节有八位,每一位只能储存1或0,计算机只懂二进制,所以就是2的八次方,又计算机规定从0开始计数,所以是0至255 考虑用编码转换工…

美团发布VisionLLaMA,为视觉生成和理解提供新基线

在人工智能领域,统一的模型架构对于简化模型设计、提高模型效率以及促进跨领域应用具有重要意义。近年来,大语言模型(Large Language Models, LLMs)在处理文本输入方面取得了显著的进展,其中基于变换器(Tra…

Leetcode笔记——二叉树的迭代遍历

中序遍历: 定义一个 保存中间量的栈 和一个 结果数组 1. 模板写法 注释版: 背诵版: 前序遍历 1. 中 右 左 的顺序遍历 2. 模板写法,按中 左 右 的顺序遍历 后序遍历 1. 模板写法,按左 右 中 的顺序遍历 注释版&am…

Anaconda 的一些配置

Anaconda 安装及修改环境默认位置 https://blog.csdn.net/qq_54562136/article/details/128932352 最重要的一步!!!!!改文件夹权限 Anaconda创建、激活、退出、删除虚拟环境 修改pip install 默认安装路径

鸿蒙Harmony应用开发—ArkTS声明式开发(模态转场设置:全屏模态转场)

通过bindContentCover属性为组件绑定全屏模态页面,在组件插入和删除时可通过设置转场参数ModalTransition显示过渡动效。 说明: 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 不支持横竖屏切换。…

智能合约开发基础知识:最小信任机制、智能合约、EVM

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 专栏的前面几篇详细了介绍了区块链的核心基础知识 有兴趣学习的小伙伴可以看看http://t.csdnimg.cn/fCD5E关于区块…

Redis高可用之哨兵模式和集群模式

Redis高可用 Redis哨兵高可用 概述 sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。 哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点 不会每次都通过sentinel代理访问redis的主…

Java开发从入门到精通(一):Java的基础语法项目案例

Java大数据开发和安全开发 Java 案例练习案例一:买飞机票案例二:开发验证码案例三:评委打分案例四:数字加密案例五:数组拷贝案例六: 抢红包案例七:找素数案例八:模拟双色球[拓展案例] Java 案例练习 案例一:买飞机票 分析: 方法是需要接收数据?需要接收机票原价、当前月份、舱…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:外描边设置)

设置组件外描边样式。 说明: 从API Version 11开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 outline outline(value: OutlineOptions) 统一外描边样式设置接口。 卡片能力: 从API version 11开始,该…

仿牛客网项目---Elasticsearch分布式搜索引擎

1.什么是ElasticSearch分布式搜索引擎? Elasticsearch是一个开源的分布式搜索引擎,提供实时的、高可用性的搜索和分析解决方案。它支持快速索引和搜索大规模数据,具有分布式架构、RESTful API、基于JSON的查询语言等功能,适用于各…