首页 > 其他分享 >【总线】AXI4第六课时:寻址选项深入解析

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

时间:2024-07-03 19:57:36浏览次数:21  
标签:字节 第六课 总线 突发 传输 地址 寻址 Address 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协议的寻址选项为设计者提供了强大的工具,以实现高效、灵活的数据传输。理解并正确应用这些选项,可以显著提高系统的整体性能。通过上述示例和说明,我们可以看到寻址选项在实际应用中的重要性,以及如何利用它们来满足不同的设计需求。

标签:字节,第六课,总线,突发,传输,地址,寻址,Address,AXI4
From: https://blog.csdn.net/sqqwm/article/details/140102059

相关文章

  • 【总线】AXI4第七课时:AXI的额外的控制信息(PROT和CACHE)
             大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁。    上......
  • 【总线】AXI4第二课时:深入AXI4总线的基础事务
                    大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁。......
  • gbase8s的select查询数据物理位置寻址分析和学习
    1.执行的sql语句和目的执行的sql语句selectrowid,*fromtest1whereid=1;目的:查找到test1表中id=1这个值在硬盘中的真实位置并取出2.寻址的过程-确定表的数据空间和逻辑页的信息根据表名查看这张表的数据空间位置和逻辑页号[gbasedbt@iZ2ze5s78e4tanwe5q2znxZ~]$......
  • 【总线】AXI4第一课时:揭秘AXI4总线的五大独立通道
    目录AXI4总线简介五大独立通道概览通道的命名规则通道的用途为什么需要五个通道?结语        大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者......
  • 计算机指令寻址的方式
    指令寻址想象一下,你手里有一本故事书,你一页一页地翻,这就是顺序寻址。你每次翻到下一页,就像电脑里的程序计数器(PC)自动跳到下一条指令。但是,如果故事书里有个提示说“跳到第50页”,这就是跳跃寻址。可能是故事的某个部分需要提前或者延后讲,电脑里的程序也会这样,通过一些特殊的......
  • 常见的数据寻址方式
    寄存器间接寻址:想象一下,你有一个信使(寄存器),他知道你想要的东西(操作数)放在哪里。你告诉信使去拿,但他得先看看地址本(寄存器里的地址信息)才知道东西具体在哪。这种方式挺快的,但信使可能要跑几趟,因为他得先查地址本,再去拿东西。相对寻址:这就像是你告诉信使,从当前位置(程序计数器......
  • 计算机组成原理之指令寻址
    一、顺序寻址1、定长指令字结构2、变长指令字结构二、跳跃寻址三、数据寻址1、直接寻址2、间接寻址3、寄存器寻址寄存器间接寻址4、隐含寻址5、立即寻址6、偏移寻址1、基址寻址2、变址寻址3、相对寻址......
  • AXI4+DDR学习
    我用的小梅哥的7010的开发板,这个板子无法直接在PL这边使用DDR存储,必须通过AXI4总线。HighPerformamcePORTS就是HP接口,为AXI接口,通常用于大量数据的高速传输。AXI总线介绍  AXI是基于burst的传输,burst传输是一种适用于AMBA协议的规则形式,通过这种规则,我们可以控制AMBA进行......
  • Zynq学习笔记--AXI4-Stream 图像数据从仿真输出到图像文件
    目录1.简介2.构建工程2.1Vivado工程2.2TestBench代码2.3关键代码分析3. VPG BackgroundPatternID(0x0020)Register4.总结1.简介使用SystemVerilog将AXI4-Stream图像数据从仿真输出到图像文件(PPM)。用到的函数包括$fopen、$fwrite和$fclose......
  • NTFS文件系统文件寻址实操记录
    前言最近在学NTFS,发现网上的博客千篇一律,讲的不够通透,于是决定自己写一篇。本文章通过寻找文件地址这个任务,讲述了NTFS文件系统$Boot文件、$MFT文件的结构,对$MFT文件中的A0、80属性进行了重点分析。本文对于NTFS的具体每种属性的字段含义不会详细阐述,因此可以预先了解相......