【总线】AXI4第六课时:寻址选项深入解析

  大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁。

        上几课时我们了解了AMBA和AXI的历史,也知道AXI4有5个独立的管道,并且有独立的握手机制,本章节更细致的讲一下AXI的寻址选项深入解析

        这里会有一系列的课程,和大家分享AMBA总线家族,欢迎大家一起学习,收藏点赞。

 系列文章

【总线】AMBA总线架构的发展历程-CSDN博客

【总线】设计fpga系统时,为什么要使用总线?-CSDN博客

【总线】AXI总线:FPGA设计中的通信骨干-CSDN博客

【总线】AMBA总线家族的明星成员:AXI协议简介-CSDN博客

【总线】AXI4第一课时:揭秘AXI4总线的五大独立通道-CSDN博客

【总线】AXI4第二课时:深入AXI4总线的基础事务-CSDN博客

【总线】AXI4第三课时:握手机制-CSDN博客

【总线】AXI4第五课时:信号描述-CSDN博客

【总线】AXI4第六课时:寻址选项深入解析-CSDN博客


目录

概念

关于寻址选项

突发长度

突发大小

突发类型

突发地址

升华! 

寻址选项的重要性

突发长度的实际应用

突发大小对性能的影响

突发类型的选择

突发地址的计算方法

结论


        在深入理解AMBA AXI协议的寻址选项之前,我们需要明确几个基本概念:突发传输、地址计算、以及如何利用这些选项来优化数据访问。

        第一章节直接翻译的官方文档。第二章对官方文档进行说明解释,帮助大家理解。

概念

关于寻址选项

AXI协议是基于突发的,主设备通过驱动传输控制信息和突发传输的第一个字节的地址来开始每个突发。随着突发事务的进展,计算突发内连续传输地址的责任在于从设备。突发不得跨越4KB边界,以防止它们跨越不同从设备之间的边界,并限制从设备内部所需的地址增量器的大小。

突发长度

AWLEN或ARLEN信号指定了每个突发中发生的数据传输的数量。如表4-1所示,每个突发可以包含1到16个传输。对于包装突发,突发长度必须为2、4、8或16个传输。每个事务必须完成ARLEN或AWLEN指定的传输数量。任何组件都不能提前终止突发以减少数据传输的数量。在写入突发期间,如果主设备通过取消所有写入使能信号来禁用进一步的写入,它必须完成突发中的剩余传输。在读取突发期间,主设备可以丢弃不需要的进一步读取数据,但它必须完成突发中的剩余传输。

注意: 丢弃不需要的读取数据可能导致在访问诸如FIFO之类的读取敏感设备时丢失数据。主设备在使用比需要的更长的突发长度访问此类设备时,绝不能这样做。

表 突发长度编码

ARLEN[3:0]

AWLEN[3:0]

数据传输数量

b0000

1

b0001

2

...

...

...

b1101

14

b1110

15

b1111

16

突发大小

表4-2展示了ARSIZE或AWSIZE信号如何指定突发传输中每个节拍传输的最大数据字节数。AXI根据传输地址确定数据总线上使用的字节道。

对于增量或包装突发,如果传输大小小于数据总线宽度,则每个节拍的数据传输在不同的字节道上进行。固定突发的地址保持不变,每个传输使用相同的字节道。任何传输的大小都不能超过事务中组件的数据总线宽度。

表 突发大小编码

ARSIZE[2:0]

AWSIZE[2:0]

传输中的字节数

b000

1

b001

2

b010

4

b011

8

b100

16

b101

32

b110

64

b111

128

突发类型

AXI协议定义了三种突发类型:

  1. 固定突发(Fixed Burst):在固定突发中,突发内每个传输的地址都保持不变。这种突发类型适用于对同一位置的重复访问,例如加载或清空外围FIFO。
  2. 增量突发(Incrementing Burst):在增量突发中,突发内每个传输的地址是前一个传输地址的增量。增量值取决于传输的大小。例如,在大小为四个字节的突发中,每个传输的地址是前一个地址加四。
  3. 包装突发(Wrapping Burst):包装突发类似于增量突发,但是当达到包装边界时,地址会回绕到较低的地址。包装边界是突发中每个传输的大小乘以突发的总传输数量。

表 突发类型编码

ARBURST[1:0]

AWBURST[1:0]

突发类型

访问类型

b00

b00

FIXED

固定地址突发

b01

b01

INCR

增量地址突发

b10

b10

WRAP

包装地址突发

b11

b11

Reserved

保留

突发地址

本节提供了一些简单的公式,用于确定突发传输中的地址和字节道。这些公式使用了以下变量:

  • Start_Address:主设备发出的起始地址。
  • Number_Bytes:每个数据传输的最大字节数。
  • Data_Bus_Bytes:数据总线的字节道数。
  • Aligned_Address:起始地址的对齐版本。
  • Burst_Length:突发内总的数据传输数量。
  • Address_N:突发内第N个传输的地址。N是2到16之间的整数。
  • Wrap_Boundary:包装突发内的最低地址。
  • Lower_Byte_Lane:传输中的最低地址字节的字节道。
  • Upper_Byte_Lane:传输中的最高地址字节的字节道。
  • INT(x):x的向下取整整数值。

使用这些方程来确定突发内传输的地址:

  • 起始地址:Start_Address = ADDR
  • 每个数据传输的字节数:Number_Bytes = 2^SIZE
  • 突发长度:Burst_Length = LEN + 1
  • 对齐的起始地址:Aligned_Address = INT(Start_Address / Number_Bytes) * Number_Bytes

使用这些方程来确定突发内第一个传输的地址:

  • 第一个传输的地址:Address_1 = Start_Address

使用这些方程来确定突发内第一个传输后的任何传输的地址:

  • Address_N = Aligned_Address + (N – 1) * Number_Bytes

对于包装突发,使用以下方程来确定包装边界:

  • Wrap_Boundary = INT(Start_Address / (Number_Bytes * Burst_Length)) * (Number_Bytes * Burst_Length)

如果Address_N等于Wrap_Boundary加上Number_Bytes乘以Burst_Length,则使用以下方程:

  • Address_N = Wrap_Boundary

使用这些方程来确定突发内第一个传输使用的字节道:

  • Lower_Byte_Lane = Start_Address - INT(Start_Address / Data_Bus_Bytes) * Data_Bus_Bytes
  • Upper_Byte_Lane = Aligned_Address + (Number_Bytes - 1) * INT(Start_Address / Data_Bus_Bytes) * Data_Bus_Bytes

使用这些方程来确定突发内第一个传输后所有传输使用的字节道:

  • Lower_Byte_Lane = Address_N – INT(Address_N / Data_Bus_Bytes) * Data_Bus_Bytes
  • Upper_Byte_Lane = Lower_Byte_Lane + Number_Bytes – 1

数据在以下位置传输:

  • DATA[(8 * Upper_Byte_Lane) + 7 : (8 * Lower_Byte_Lane)]

升华! 

寻址选项的重要性

        寻址选项在AXI协议中扮演着至关重要的角色。它们不仅决定了数据如何被传输,还影响着系统的性能和效率。通过合理配置寻址选项,可以确保数据传输的准确性,并最大化利用系统资源。

突发长度的实际应用

        突发长度是指在一个突发传输中包含的数据传输次数。这个参数直接影响到数据传输的总量。例如,在内存密集型应用中,较长的突发长度可以减少访问次数,从而提高效率。

示例说明: 假设一个系统使用32位宽的数据总线,并且ARLEN设置为b0100,表示突发长度为4。如果每次数据传输是32位,那么整个突发将传输128位(16字节)的数据。

突发大小对性能的影响

        突发大小定义了每次数据传输中包含的字节数。这个参数对于确保数据在总线上正确传输至关重要。较大的突发大小可以减少传输相同数量数据所需的总线周期数。

示例说明: 如果AWSIZE设置为b110,表示每次数据传输包含64字节。在上述相同的4次传输突发中,总共将传输256字节的数据,这比b100(16字节每次)的配置效率更高。

突发类型的选择

        突发类型的选择取决于具体的应用场景和数据访问模式。固定突发适用于对同一地址的连续访问,增量突发适用于顺序访问,而包装突发则适用于需要在特定边界回绕的场景。

示例说明: 考虑一个需要连续读取多个缓存行的应用,可以使用包装突发来优化访问模式。如果缓存行大小为64字节,并且数据总线宽度为128字节,则可以使用b111(128字节)的AWSIZEb10(包装)的AWBURST来实现高效的数据传输。

突发地址的计算方法

        正确的地址计算对于确保数据被传输到正确的位置至关重要。AXI协议提供了一套公式来计算突发内每个传输的地址和使用的字节道。

示例说明: 如果一个突发操作的起始地址是0x1000,数据总线宽度为128字节,ARSIZEb111(128字节),突发长度为4次传输(ARLENb0100),那么第一个传输的地址是0x1000,第二个是0x1080,第三个是0x1100,第四个是0x1180。

通过这些公式,设计者可以精确控制数据传输的地址,从而实现对系统内存的高效访问。

结论

AXI协议的寻址选项为设计者提供了强大的工具,以实现高效、灵活的数据传输。理解并正确应用这些选项,可以显著提高系统的整体性能。通过上述示例和说明,我们可以看到寻址选项在实际应用中的重要性,以及如何利用它们来满足不同的设计需求。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot创建一个初始化项目

提示:这一篇文章,主要是为了之后可以快速的去搭建项目,当然这篇博客,作者也会根据以后学习到的东西,慢慢去整理 文章目录 前言 搭建一个SpringBoot项目,目的是为了快速开发项目 项目列表 响应枚举类 /***…

AI奥林匹克竞赛:Claude-3.5-Sonnet对决GPT-4o,谁是最聪明的AI?

目录 实验设置 评估对象 评估方法 结果与分析 针对学科的细粒度分析 GPT-4o vs. Claude-3.5-Sonnet GPT-4V vs. Gemini-1.5-Pro 结论 AI技术日新月异,Anthropic公司最新发布的Claude-3.5-Sonnet因在知识型推理、数学推理、编程任务及视觉推理等任务上设立新…

网络攻防题录集

文章目录 第一章 网络攻防概述第二章 密码学第三章 网络协议脆弱性分析第四 自测题三第五章 自测题五第六章 自测题六第七章 自测题七第八章 自测题八第九章 自测题九第十章 自测题十第十一章 自测题十一第十二章 自测题十二第十三章 自测题十三 第一章 网络攻防概述 第一代安…

Anti-Canine Heartworm Antibody (Chicken) - HRP Conjugated

犬心丝虫(学名Dirofilaria immitis)是一种寄生丝虫,通过蚊子叮咬而传播。感染犬在早期阶段,大多不会出现症状。随着病情发展,将出现咳嗽、呼吸困难等症状,并伴有右心功能衰竭,最终全身衰弱或虚脱…

2008-2022年款哈弗维修手册和电路图线路图接线图资料更新

经过整理,2005-2022年款长城哈弗全系列已经更新至汽修帮手资料库内,覆盖市面上99%车型,包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照…

关于windows,wifi图标显示不了的解决方法

解决方法一(解决了我的问题的方法): winr -->输入 regedit 打开注册表 --> 删除HKEY-CLASSES_ROOT\CLSID\{3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b} CLSID在下面仔细找,然后找到09开头那个删掉重启就可以了,可能…

工程师这几招降低电机EMI的方法,提高系统电磁兼容性能

通过在电机端子之间放置陶瓷电容器、工模滤波器或BDL滤波器均可抑制差模和共模噪声,以提高系统的EMC性能。工程师在本文详细介绍这几种降低电机EMI的方法。 EMC和EMI背景 电磁干扰(EMI)是系统上的电磁噪声的辐射或感应。与大多数电磁电路组件一样,直流…

大数据开发中的数据倾斜问题

数据倾斜是大数据开发中常见的性能瓶颈,了解其原因并采取有效的解决方案对系统性能至关重要。本文将从数据倾斜的影响、解决方法及示例代码等方面进行详细讨论。 目录 1. 数据倾斜的影响2. 解决数据倾斜的方法调整分区键预聚合倾斜处理逻辑 3. 进一步解决数据倾斜的…

深入解析 androidx.databinding.Bindable 注解

在现代 Android 开发中,数据绑定 (Data Binding) 是一个非常重要的技术。它使得我们能够简化 UI 和业务逻辑之间的连接,从而提高代码的可读性和维护性。在数据绑定中,Bindable 注解是一个关键部分,它帮助我们实现双向数据绑定和自…

SAP Build 3-调用SAP BAPI和调用S4HC API

1. 调用SAP BAPI 1.1 前提 项目已创建 SAP环境登录正常 1.2 引入BAPI SDK 商店中下载BAPI SDK Process中导入BAPI SDK 1.3 新建action group 新建action group时,会要求填写SAP登录信息,根据连接类型分为SSO,Basic和Custom 如果选择SS…

数据恢复篇:如何在 Android 手机上恢复未保存/删除的 Word 文档

在 Android 手机上访问 Word 文档通常很简单,但是当这些重要文件被删除或未保存时会发生什么?这种情况虽然令人痛苦,但并非毫无希望。到 2024 年,有几种强大的方法来处理此类数据丢失。本指南重点介绍如何在Android手机上恢复已删…

AI时代创新潮涌,从探路到引路,萤石云引领千行百业创新

步入AI新时代,AI、云计算、大数据等技术迅速迭代,并日益融入经济社会发展各领域全过程,数字经济成为推动千行百业转型升级的重要驱动力量。 今年的政府工作报告提出,深入推进数字经济创新发展。积极推进数字产业化、产业数字化&a…

UnityUGUI之二 CameraTargetTexture

在我们需要将3D物体呈现在2D视角时就可以使用TargetTexture,若想只显示3D物体则需改变背景颜色,并且得再增加一个相机

为什么我学个 JAVA 就已经耗尽所有而有些人还能同时学习多门语言

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「JAVA的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!我的入门语言是C&#xff0c…

Spring两大核心思想 IoC和AoP

目录 ✨ 一、什么是IoC 1、定义 🎊 2、IoC思想 🎊 3、优势 🎊 4、对象的管理 🎊 存对象:Component 取对象:AutoWired ✨二、什么是DI 1、定义 🎊 2、IoC和DI的关系🎊 可…

Stable Diffusion【真人模型】:人脸特美的人像摄影大模型wuhaXL_realisticMixV3.0

今天和大家分享一个基于SDXL的真人大模型:wuhaXL_realisticMix。该模型无需使用LORA**就能生成的特别漂亮的人脸,虽然有时候人脸有些假,但是生成的人脸确实非常漂亮。 该模型底模融合了WhiteXL_realisticMix,训练素材来自于视频转…

nacos开启认证之后,服务就无法注册了

作者介绍:计算机专业研究生,现企业打工人,从事Java全栈开发 主要内容:技术学习笔记、Java实战项目、项目问题解决记录、AI、简历模板、简历指导、技术交流、论文交流(SCI论文两篇) 上点关注下点赞 生活越过…

机器学习项目-基于随机森林的航空公司用户满意度分析

摘要 ​ 航空旅行是人们出行的常用方式之一,乘客对于航空公司的服务质量有着较高的要求。满意度是衡量服务质量的重要指标,因此预测航空公司乘客的满意度对于提高服务质量具有重要意义。 ​ 近年来,机器学习在预测领域得到了广泛应用。机器…

08 - Python面向对象编程进阶

面向对象进阶 在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息。为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对Python中的面向对象编程进行更为深入的了解。 property装…

mst[讲课留档]

最小生成树(Minimum Spanning Tree) (1)概念 我们知道,树是有 n n n个结点, n − 1 n-1 n−1条边的无向无环的连通图。 一个连通图的生成树是一个极小的连通子图,它包含图中全部的 n n n个顶点,但只有构成一棵树的 n − 1 n-1 …