深入浅出AXI协议(6)——传输属性

news/2024/12/28 12:34:48/

一、前言

         在之前的文章中,我们介绍的主要内容是AXI协议的数据读写结构和读写响应结构,主要讲述了当遇到各种特殊情况时,AXI如何完成数据的读写操作,最后介绍了读写响应的4种类型。

        在本文中,我们将介绍AXI协议的传输属性。

二、传输类型与属性

        AXI传输中,从机可以被定义成以下的两种:(1)内存型从机(2)外设型从机

1、内存型从机(Memory Slave )

        内存型的从机要求能够正确处理所有的传输类型。

2、外设型从机(Peripheral Slave )

        外设型的从机具有 实现定义(IMPLEMENTATION DEFINED)的访问方式。通常,这在元件的数据表中被定义,它描述了从设备能够正确处理的传输类型。对不属于实现定义(IMPLEMENTATION DEFINED)访问方法的外设型从设备的任何访问都必须按照协议完成。要注意的是,一旦进行了这样的访问(不属于实现方法的),外设型从设备就不一定会继续正确操作,它只需要继续以符合协议要求的方式完成进一步的传输即可。

        AXI协议定义了一组支持内存和外设从设备的事务属性。ARCACHE 和 AWCACHE信号定义了传输属性,它们控制:

  • 传输如何通过系统进行
  • 系统级缓存如何处理传输

三、AXI3内存属性信号

        在AXI3协议中,AxCACHE[3:0]中每一位都有着不同的特性,具体的特性编码方式如上图所示,我们来简单介绍以下各个位所代表特性的具体含义:

1、AxCACHE[0], Bufferable (B) bit

        当生效这个位时,互连(或任何元件)都可以把传输到达目的地的时间延迟任意个时钟周期。(注意:通常,可缓冲的属性只与写操作相关。)

        本质上来说,就是代表是否可缓存,AWCACHE[0]当为低时,表示写响应由终端设备发出;否则,可以由中间设备发出。ARCACHE[0]表示读数据由终端设备发出或所写的目的设备发出。

2、AxCACHE[1], Cacheable (C) bit

        当这个位失效时,将禁止对传输的分配。

        生效此位时:

  • 允许参数的分配。RA和WA提供了额外的提示信息。
  • 在最终目的地处的传输的特征不必与原始传输的特征相匹配。对于写操作,这意味着许多不同的写操作可以合并在一起。对于读取,这意味着可以预取一个位置的内容,或者来自单个读取的值可以用于多个读取事务。

3、AxCACHE[2], Read-allocate (RA) bit

        当生效此位时,建议对传输进行读分配,但不是强制性的。如果已失效C位,则不能生效RA位。

4、AxCACHE[3], Write-allocate (WA) bit

        当失效此位时,建议对传输进行写分配,但不是强制性的。如果已失效C位,则不能生效WA位。

四、AXI4内存属性信号

        AXI4协议是在AXI3协议的基础上发展而来的,在内存属性信号的部分,AXI4对于AXI3进行了如下的更改:

  • AxCACHE[1]位被重命名为可修改位(这样的更改是为了更好地描述所需的功能。实际的功能没有改变。)
  • 为不可修改的传输处理定义了ordering requirements
  • 更新了读分配和写分配的意义。

1、AxCACHE[1], Modifiable

        在AXI4中,AxCACHE[1]位是可修改位。当HIGH时,可修改表示可以修改传输的特征。当可修改为低时,参数为不可修改。

1.1 不可修改的传输

        对于不可修改的交易来说,不能将其分割成多个传输或者其他传输的合并。当传输为不可修改的传输时,下面的参数是不可修改的,即传输地址(AWADDR、ARADDR、AWREGION、ARREGION)、猝发大小(AWSIZE、ARSIZE)、猝发长度(AWLEN、ARLEN)、猝发类型(AWBURST、ARBURST)、锁类型(AWLOCK、ARLOCK)和保护类型(AWPROT、ARPROT)。

        只能修改AxCACHE属性,以便将事务从可缓冲转换为不可缓冲。不允许对AxCACHE进行其他更改。 传输的ID和QoS是可以修改的,对于猝发长度大于16的不可修改的传输来说,允许分割成多个传输。每个传输的传输都满足上面的要求,但减少猝发长度,所产生的猝发地址也相应进行修改。

1.2 可修改的传输

        可修改的传输可以通过下面的方式进行操作:

  • 传输可以分割成多个传输
  • 多个传输可以合并成一个传输
  • 读传输能够读取出比要求多的数据
  • 写传输可以访问比要求更大的地址范围,使用写选通信号以保证只更新正确的地址空间
  • 可以修改每个传输的传输地址,猝发大小,猝发长度。但是,不能修改锁类型和保护类型。

五、保护类型

AWPROT或者ARPROT信号提供三种级别的存取保护:

  • 正常存取或者特权存取, ARPROT[0] 和 AWPROT[0]安
  • 全性存取或者没有安全性存取, ARPROT[1] 和 AWPROT[1]
  • 指令存取或者数据存取  ,ARPROT[2] 和 AWPROT[2]

信号ARPROT[2:0] 和 信号AWPROT[2:0]的编码如下图:

六、总结

        本文中我们介绍了AXI协议的传输属性,主要介绍了AxCACHE信号不同位对应的不同含义以及使用方式,最后简单介绍了保护类型相关的信号。


http://www.ppmy.cn/news/1101326.html

相关文章

【vue2第十四章】 插槽(普通插槽、具名插槽、作用域插槽语法)

插槽 插槽是什么&#xff1f; 在 Vue 2 中&#xff0c;插槽&#xff08;slot&#xff09;是一种用于定义组件内部内容分发的机制。它允许你将组件中的一部分内容替换为用户自定义的内容&#xff0c;并在组件内部进行渲染。 通过在组件模板中使用 <slot></slot> 标…

单片机语言实例:3、数码管累加与累减动态显示

一、个位数累加动态显示 程序实例1&#xff1a; #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0c;头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换 sbit LATCH1 P2^2;//定义锁存使能端口…

查看Oracle_表名、字段名、注释、进程及杀进程等常用语句

-- 查看ORACLE 数据库中本用户下的所有表 SELECT table_name FROM user_tables; -- 查看ORACLE 数据库中所有用户下的所有表 select user,table_name from all_tables; -- 查看ORACLE 数据库中本用户下的所有列 select table_name,column_name from user_tab_columns; -- 查…

vue3中使用viewerjs实现图片预览效果

vue3中使用viewerjs实现图片预览效果 1、前言2、实现效果3、在vue3项目中使用viewer.js3.1 安装3.2 在main.js中引入3.3 组件中使用 1、前言 viewer.js是一款开源的图片预览插件&#xff0c;功能十分强大: 支持移动设备触摸事件支持响应式支持放大/缩小支持旋转&#xff08;类…

Shape Completion Enabled Robotic Grasping

摘要-这项工作提供了一个架构&#xff0c;使机器人能够通过形状完成抓取规划。形状完成是通过使用3D卷积神经网络(CNN)来完成的。该网络是在我们自己的新的开源数据集上训练的&#xff0c;该数据集包含了从不同视角捕获的超过44万个3D样本。运行时&#xff0c;从单个视角捕获的…

右值引用,移动语义,完美转发

文章目录 一、什么是左值、右值二、什么是左值引用、右值引用2.1 左值引用2.2 右值引用2.3 对左右值引用本质的讨论 三、右值引用和std::move使用场景3.1 右值引用优化性能&#xff0c;避免深拷贝浅拷贝重复释放深拷贝构造函数移动构造函数 3.2 移动语义&#xff08;move&#…

根据基站位置区识别码(LCA)和小区识别(CI)获取经纬度

需求 在网络攻击溯源时&#xff0c;需要对攻击者的位置进行定位。 已知参数 已知攻击者发送攻击报文的接入基站的位置区识别码(LCA)和小区识别(CI)码 目标 获取攻击者位置 技术路线 request 调用API查询经纬度位置openpyxl 读取 excel 表格sqlite3 读写数据库json 数据解…

Linux系统中驱动之设备树添加按键驱动方法

​大家好&#xff0c;每日一个简单的驱动&#xff0c;日久方长&#xff0c;对Linux驱动就越来越熟悉&#xff0c;也越来容易学会写驱动程序。今日进行简单的按键驱动。 一、Linux 下按键驱动原理 按键驱动和 LED 驱动原理上来讲基本都是一样的&#xff0c;都是操作 GPIO&…