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

news2024/11/29 0:39:35

        

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

        上一课时我们了解到AXI4有五大独立通道,对他们有了初步的认识,这一课时我们再深入的了解下AXI的基础事务,进一步加深认识。

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

 系列文章

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

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

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

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

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

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

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


  •     回顾5个通道,每一个AXI传输通道都是单方向的
  1. 读地址 read address
  2. 读数据 read data
  3. 写地址 write address
  4. 写数据 write data
  5. 写回复 write response
  •        每个事务都有地址和控制信息在地址通道( address channel)中,用来描述被传输数据的性质。
  •         读事务的结构图如下。

  •         写事务的结构图如下

 

  •          这 5 条独立的通道都包含一个信息信号和一个双路的 VALD、 READY 握手机制

  •         信息源通过 VALID 信号来指示通道中的数据和控制信息什么时候有效。目地源用READY 信号来表示何时能够接收数据。 读数据和写数据通道都包括一个LAST 信号,用来指明一个事物传输的最后一个数据。

  •          读和写事务都有他们自己的地址通道,这地址通道携带着传输事务所必须的地址和信息。
  1. 独立的读写地址通道:每个读写事务都拥有自己的地址通道。这意味着读事务和写事务分别通过它们自己的地址通道进行通信。

  2. 地址和控制信息:每个地址通道都携带了执行事务所需的全部地址和控制信息。这包括事务的目标地址、事务的类型、大小等。

  3. 支持的机制

    • 可变长度突发:突发(Burst)是指连续的数据传输。在AXI协议中,突发的长度可以变化,从1到16个数据传输(transfers)。
    • 突发传输大小:每个突发传输的大小可以是8到1024位(bits),这提供了灵活的数据传输粒度。
    • 包装(Wrapping)、增量(Incrementing)和非增量(Non-incrementing)突发
      • 包装突发:在达到某个边界时,地址会“包装”回到较低的地址继续传输。
      • 增量突发:地址随着每个传输而递增。
      • 非增量突发:地址在突发传输中保持不变。
    • 原子操作:原子操作确保在执行期间不会被其他事务中断,使用独占(Exclusive)或锁定(Locked)访问来实现。
    • 系统级缓存和缓冲控制:AXI协议支持缓存和缓冲机制,以提高系统的性能和效率。这允许对数据进行缓存、合并写操作等。

总结来说,这部分强调了AXI协议在处理读写事务时,通过地址通道提供了一系列的高级特性,以支持复杂的系统设计和优化数据传输效率。

  •         读数据通道传送着从设备到主机的读数据和读响应信息。读响应信息指明读事务的完成状态。

  •         写数据通路传送着主机向设备的写数据。每八个数据都会有一个 byte lane ,用来指明数据总线上面的哪些 byte 有效。

  • 写响应通道提供了设备响应写事务的一种方式。
  1. 写响应通道的作用:在AXI协议中,写响应通道是用于从机(Slave)向主机(Master)发送写事务响应的通信路径。这意味着,当主机向从机发起写事务请求后,从机通过写响应通道告知主机该事务是否成功完成。

  2. 完成信号的使用:所有写事务都使用完成信号(Completion Signal)来指示事务的结束。完成信号是写事务中一个重要的部分,它确保了主机知道何时写操作已经完成。

  3. 完成信号的触发时机:完成信号是针对每个突发(Burst)触发一次,而不是针对突发内的每个单独数据传输。这里的“突发”是指一系列连续的写操作,它们共享相同的地址和控制信息。

    • 例如,如果一个突发包含4个数据传输,那么完成信号将在最后一个数据传输完成后触发一次,而不是在每个数据传输后分别触发。
  4. 事务完成的确认:完成信号的存在确保了主机可以准确地知道何时写事务已经完全处理完毕,从而可以继续执行后续的操作或者发起新的事务。

总结来说,这部分强调了写响应通道在AXI协议中用于指示写事务完成的重要性,以及完成信号是按突发而不是按单个数据传输来触发的机制。这有助于提高系统的效率,因为它减少了需要发送的信号数量,并且允许主机更有效地管理数据传输和事务处理。

  •         主机和设备的接口和互联图如下。

在AMBA AXI协议中接口定义如何支持多种不同的互连(interconnect)实现方式,以及系统设计中常见的几种互连方法。以下逐点解释:

  1. 接口定义的灵活性:AXI协议的接口定义允许实现多种不同的互连架构。这意味着设计者可以根据系统的需求和约束,选择或设计合适的互连方案。

  2. 互连的等效设备:在AXI协议中,互连在功能上等同于一个具有对称的主(master)和从(slave)端口的设备。这样,实际的主设备和从设备可以连接到这个互连设备上,就像它们直接连接到另一个AXI设备一样。

  3. 常见的互连方法

    • 共享地址和数据总线:所有设备共享相同的地址和数据总线。这是一种简单的互连方式,但可能在高负载下成为性能瓶颈。
    • 共享地址总线和多个数据总线:系统中有一条共享的地址总线,但是有多条数据总线。这样可以在保持地址总线简单性的同时,提高数据传输的带宽。
    • 多层互连,具有多个地址和数据总线:这是一种更复杂的互连方式,可能包含多个层次的地址和数据总线,以支持大规模或高性能的系统设计。
  4. 地址和数据通道带宽的需求差异:在大多数系统中,地址通道的带宽需求远小于数据通道。这是因为地址信息通常比数据量小得多,而且通常不需要那么高的传输速率。

  5. 系统性能与互连复杂性的平衡:通过使用共享地址总线和多个数据总线的方案,系统可以在保持较低互连复杂性的同时,实现较高的系统性能。这种方法允许并行数据传输,提高了整体的数据传输效率。

总结来说,这部分内容强调了AXI协议提供的灵活性,允许设计者根据系统的具体需求选择最合适的互连策略,并通过合理的互连设计实现高性能和适中的系统复杂性。

  • 寄存器切片的使用

  1. 单向传输:每个AXI通道仅支持一个方向的信息传输,没有规定各个通道之间必须有固定的关系。

  2. 灵活性:由于通道之间没有固定的顺序要求,可以在任何通道中插入寄存器切片,而不会影响其他通道的操作。

  3. 寄存器切片的作用:寄存器切片可以被看作是一种缓冲机制,它在数据传输路径中增加了一个或多个寄存器阶段。这样做的目的是为了在设计中引入可配置的延迟,以适应不同操作频率的组件。

  4. 延迟与频率的权衡:插入寄存器切片会增加数据传输的延迟(因为数据需要通过额外的寄存器阶段),但这样做可以提高系统的最高操作频率。这是因为额外的寄存器可以用于时钟域交叉(Clock Domain Crossing, CDC),减少亚稳态的风险,并允许不同频率的组件协同工作。

  5. 互连中的寄存器切片使用:在互连(interconnect)的几乎任何位置都可以使用寄存器切片。这为设计者提供了灵活性,可以根据系统的需求在不同的位置插入寄存器切片。

  6. 性能优化:在处理器和高性能内存之间可能使用直接、快速的连接,以最小化延迟。而在通往性能要求不高的外围设备的较长路径上,可以使用简单的寄存器切片来隔离,这样可以降低对高速时钟的需求,同时减少功耗。

总结来说,寄存器切片是一种设计工具,用于在系统设计中平衡延迟和操作频率,以及适应不同性能要求的组件。通过在AXI通道中适当地使用寄存器切片,设计者可以实现更高效的系统性能和更低的功耗。

  •          传输地址信息和数据都是在 VALID 和 READY 同时为高时有效。

  •         突发式读的时序图如下

        当地址出现在地址总线后, 传输的数据将出现在读数据通道上。 设备保持 VALID为低直到读数据有效。为了表明一次突发式读写的完成,设备用 RLAST 信号来表示最后一个被传输的数据。

  •  重叠突发式读时序图如下

设备会在第一次突发式读完成后处理第二次突发式读数据。也就意味着,主机一开始传送了两个地址给设备。 设备在完全处理完第一个地址的数据之后才开始处理第二个地址的数据。
 

  • 突发式写时序图如下

这一过程的开始时,主机发送地址和控制信息到写地址通道中,然后主机发送每一个写数据到写数据通道中。当主机发送最后一个数据时, WLAST 信号就变为高。当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成。

  • AXI 协议支持乱序传输。他给每一个通过接口的事务一个 IDtag。协议要求相同 ID tag 的事务必须有序完成,而不同 ID tag 可以乱序完成。

在AXI协议中,"无序传输"(out-of-order transactions)是一个重要的特性,它允许系统在处理多个事务时提高效率和吞吐量。这段描述提到的“复杂从机(Complex slaves)可以无序返回读取数据”可以理解如下:

  1. 复杂从机的能力:在AXI协议中,从机(Slave)可以是简单的或者复杂的。复杂从机拥有更高级的功能,比如内部缓冲(buffering)或者其他能够改善性能的特性。

  2. 无序返回数据:复杂从机在处理多个读取事务时,可能会根据其内部逻辑或优化,选择在不同顺序返回数据项。这意味着,即使某些数据项属于较早发起的读取事务,它们也可能在属于较晚事务的数据项之后被返回。

  3. 内部缓冲的影响:复杂从机可能拥有内部缓冲区,能够暂存一定量的数据。如果一个较晚发起的读取请求所需的数据已经存在于缓冲区中,那么复杂从机可以更快地提供这些数据,即使这意味着跳过了一些较早但尚未处理的请求。

  4. 对系统性能的影响:这种无序返回数据的能力可以减少等待时间和提高系统的整体性能。例如,如果系统能够快速响应对已经缓存数据的请求,那么它就可以更有效地利用资源,减少主设备(Master)的空闲时间。

  5. 事务ID的作用:尽管从机可以无序返回数据,但是每个事务都会分配一个唯一的ID,以确保每个事务的完整性和可追踪性。这样,即使数据返回是无序的,主设备也能够识别和处理每个事务的正确数据。

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

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

相关文章

PHP转Go系列 | 条件循环的使用姿势

大家好,我是码农先森。 条件 在 PHP 语言中条件控制语句,主要有 if、elseif、else 和 switch 语句 // if、elseif、else 语句 $word "a"; if ($word "a") {echo "a"; } elseif ($word "b") {echo "b&…

【论文笔记】LoRA LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

题目:LoRA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 来源: ICLR 2022 模型名称: LoRA 论文链接: https://arxiv.org/abs/2106.09685 项目链接: https://github.com/microsoft/LoRA 文章目录 摘要引言问题定义现有方法的问题方法将 LORA 应用于 Transformer 实…

无源编缆测尺助力料场实现自动化堆取料作业

随着工业4.0时代的到来,智能化、无人化成为现代工业发展的重要趋势。在港口码头、钢铁冶金、焦化等高耗能行业中,如何实现物料的精准测量与无人化操作,成为企业提高生产效率、降低人工成本的关键。武汉市微深节能科技有限公司凭借其先进的分段…

【面试干货】抽象类与接口的区别

【面试干货】抽象类与接口的区别 💖The Begin💖点点关注,收藏不迷路💖 在Java编程中,抽象类和接口是两个非常重要的概念,它们都为代码的可扩展性和复用性提供了基础。但是,它们之间也有一些明显…

class的流光效果

效果图&#xff1a; 代码示例 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&g…

React路由笔记(函数组件,自用)

配置 npm i react-router-dom基本使用 目录结构 在src中创建page文件夹放置各页面组件&#xff0c;router中放置路由 1、router中配置路由 在/router/index.js中&#xff0c;使用createBrowserRouter配置路由。 import { createBrowserRouter } from "react-router…

[Python人工智能] 四十六.PyTorch入门 (1)环境搭建、神经网络普及和Torch基础知识

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解合如何利用keras和tensorflow构建基于注意力机制的CNN-BiLSTM-ATT-CRF模型,并实现中文实体识别研究。这篇文章将介绍PyTorch入门知识。前面我们的Python人工智能主要以TensorFlow和Keras为主,…

Flutter第十四弹 抽屉菜单效果

目标&#xff1a; 1.怎么构建抽屉菜单效果&#xff1f; 2.抽屉菜单怎么定制&#xff1f; 一、抽屉菜单 侧滑抽屉菜单效果 1.1 抽屉菜单入口 Flutter 的脚手架Scaffold&#xff0c;默认提供了抽屉菜单效果入口。 主页面采用一个简单的页面&#xff0c;侧滑菜单首先使用一个I…

三星与SK海力士:以混合键合技术引领3D DRAM革新之路

在高速缓存内存&#xff08;HBM&#xff09;领域持续领跑的三星与SK海力士&#xff0c;正以混合键合技术为突破口&#xff0c;开启3D DRAM技术的新纪元。这一战略转型不仅预示着存储技术的深度革新&#xff0c;更体现了两大半导体巨头在提高集成度、优化性能与成本上的不懈追求…

【计算机网络篇】数据链路层(11)在数据链路层扩展以太网

文章目录 &#x1f354;使用网桥在数据链路层扩展以太网&#x1f95a;网桥的主要结构和基本工作原理&#x1f388;网桥的主要结构&#x1f50e;网桥转发帧的例子&#x1f50e;网桥丢弃帧的例子&#x1f50e;网桥转发广播帧的例子 &#x1f95a;透明网桥&#x1f50e;透明网桥的…

图论——代码随想录打卡

1 DFS深度搜索算法 深度优先搜索算法是从一个方向去进行搜索&#xff0c;直到遇到走不下去的终点&#xff0c;再进行回溯更换方向&#xff0c;重新进行搜索。因此有回溯也就意味着存在递归&#xff1a; void dfs(参数&#xff09;{处理节点dfs(图&#xff0c;选择的节点)回溯…

Hi3861 OpenHarmony嵌入式应用入门--0.96寸液晶屏 iic驱动ssd1306

使用iic驱动ssd1306&#xff0c;代码来源hihope\hispark_pegasus\demo\12_ssd1306 本样例提供了一个HarmonyOS IoT硬件接口的SSD1306 OLED屏驱动库&#xff0c;其功能如下&#xff1a; 内置了128*64 bit的内存缓冲区&#xff0c;支持全屏刷新;优化了屏幕刷新速率&#xff0c;…

AI发展核心要素之一(算力)

背景&#xff1a; 当今时代&#xff0c;云计算、人工智能、视频会议、短视频和各种社交媒体等行业蓬勃兴起&#xff0c;而ChatGPT-OpenAI的一次又一次的版本更新和迭代更是将我们带入了AI时代的新纪元。在2023年底的华为全联接大会上&#xff0c;孟晚舟就曾在演讲中表示:“算力…

云计算【第一阶段(17)】账号和权限管理

目录 一、用户账号和组账号概述 1.1、用户账号的三种角色 1.2、组账号的两个角色 二、用户账号文件 2.1、/etc/passwd 2.2、/etc/shadow 2.3、chage 命令 三、组账号文件 3.1、/etc/group 3.2、/etc/gshadow 四、添加组账户 4.1、添加删除组成员 4.2、删除组账号 …

北航数据结构与程序设计查找与排序编程题

查找与排序编程题 单词查找&#xff08;查找——基本题&#xff09;排座位&#xff08;简&#xff09;a 单词查找&#xff08;查找——基本题&#xff09; 【问题描述】 从标准输入中读入一个英文单词及查找方式&#xff0c;在一个给定的英文常用单词字典文件dictionary3000.…

Maven 和 Gradle 构建工具的基本使用

Maven和Gradle是Java生态系统中最常用的构建工具&#xff0c;它们不仅能简化项目的构建过程&#xff0c;还能帮助管理项目依赖、打包、发布等任务。本文将详细介绍如何掌握Maven和Gradle的基本使用&#xff0c;帮助开发者快速上手并应用于实际项目中。 一、Maven 1.1 什么是M…

第三方软件测试机构流程分享,软件检测报告需多少时间和费用?

第三方软件测试机构是区别于软件开发方和需求方的第三者存在&#xff0c;是专门为客户提供全方位软件测试服务的第三方检测机构。测试流程经过精心设计和不断优化&#xff0c;以确保客户的软件品质得到有效保障&#xff0c;那么第三方软件测试机构的基本测试流程具体有哪些呢?…

一套二开版微交易系统 香港十大贵金属交易平台 贵金属交易平台 贵金属交易app下载 微盘交易系统

一套二开前端UI得贵金属微交易系统&#xff0c;前端产品后台可任意更换 此系统框架不是以往的至尊的框架&#xff0c;系统完美运行&#xff0c;K线采用nodejs方式运行 源码使用起来非常流畅&#xff0c;不像至尊卡成翔 源码下载&#xff1a;https://download.csdn.net/downl…

Macbook pro插硬盘没反应,Macbook pro移动硬盘读不了怎么办

为了弥补Macbook pro硬盘容量的缺失&#xff0c;我们有时候会使用到外接硬盘或移动硬盘。一般来说&#xff0c;这些硬盘都是即插即用的&#xff0c;可能部分要安装插件。不过&#xff0c;在一些特殊情况下&#xff0c;也会遇到插硬盘没反应等问题。本文会给大家解答Macbook pro…

Linux——ansible关于“文件操作”的模块

修改文件并将其复制到主机 一、确保受管主机上存在文件 使用 file 模块处理受管主机上的文件。其工作方式与 touch 命令类似&#xff0c;如果不存在则创建一个空文件&#xff0c;如果存在&#xff0c;则更新其修改时间。在本例中&#xff0c;除了处理文件之外&#xff0c;Ansi…