zoukankan      html  css  js  c++  java
  • AXI总结一

    本文提供对AXI3,4的一个简单概览。AXI总结系列主要参考ARM官方文档ARM IHI 0022D

    AMBA 3或者说AXI3家族有以下四个主要成员:

    • AXI 高性能和搞可行数据传输方案,支持数据的乱序传输;
    • AHB 使用简单的接口在单一频率的子系统上实现高效的数据传输,属于AXI3的简化版本;
    • APB 专门用于访问外设配置寄存器的端口支持的外设带宽比较低。兼容性一流,功耗极低。它与AMBA2 APB接口完全兼容;
    • ATB 具有单独的诊断接口,调试方便。

    AXI4是AXI3的升级标准,这里除非协议本身有具体的差别,否则不做区分。

    1.AXI基本架构

    1.0 基础定义

    AXI协议是基于突发传输构建的,它定义了多个独立的数据传输的通道:

    • read address
    • read data(读,一般是指从设备发送数据到主设备的操作)
    • write address
    • write data(一般从主设备到从设备的数据传送我们叫做写,从设备通过使用write response线来通知主机数据写的完成情况)
    • write response

    几乎每一个通道都包含多个信号脚,比如说VALID或者是READY,这些信号提供了双向的握手机制。信息源会使用VALID信号来表明在本通道上有有效的地址,数据或者控制信息可以访问。目标使用READY信号表明他们准备好了接收信息。读数据和写数据通道都会使用LAST信号来表示信息传输的末尾。

    读写通道的支持位宽都是可变的,比如说8,16,32。。。1024位宽等等。但是读写的架构有所不同。读数据线上不仅有读取的数据,还包括一些读反馈信息,比如说表征信号末尾的信号。写通道包含有一个单独的有效比特位检测信号(a byte lane stribe signalWSTRB),他会检测每8个数据比特位当中的有效信号,它代表了那些数据是有效的。写数据通道信息都是被当成存在缓冲的,所以主设备可以在没有从设备在上个读写完成反馈的时候进行下一次读写。(请注意有专门的write response通道,而没有read response通道)

    AXI的架构运行起来有以下的特点:

    • 地址和控制信息的传输总是早于实际的数据传输;
    • 支持多种不同的传输机制(FIXED,INCR,WRAP)
    • 支持数据的乱序传输;

    基础的读写传输的模式可以参见下面两张图:

    1.1 AXI的互联模式

    一个典型的系统当中一般包含若干个主设备和若干自设备,他们通过一些互联结构连接到一起。比如说

    在AXI协议当中,互联设备本身就是一个独立于主机和从设备之间的设备,所以在AXI协议当中至少存在以下三种接口形式:

    • 主设备和互联设备之间的接口;
    • 从设备和互联设备之间的接口;
    • 主机和从设备之间的接口;

    接口定义支持一系列不同的接口实现方式。

    典型的系统架构(topologies)一般为

    • 共同的地址和数据总线;
    • 共同的地址总线,多个数据总线;
    • 多层,多个地址总线和数据总线;

    请注意,在大多数系统当中,地址通道带宽的需求比数据通道带宽的需求小得多。所以前两种系统通过使用共同的地址总线和多个数据总线来使能并行的数据传输来来平衡系统的性能需求。

    1.2 杂项

    寄存器片(register slices)

    每个AXI通道的数据传输都是单向的,而且AXI架构没有通道间固定的关系。这意味着寄存器片可以被任何通道在任何时间点插入,插入之后会有额外的数据延迟。

    但这也有有意义的:

    • 用添加延迟的方法最大化运行时钟频率;
    • 可以实现更直接的快速的数据连接。使用简单的寄存器片子可以隔离向低性能外设的长途数据传输。

    1.3 常见术语

    • AXI components

      包括以下四项:

      • Component
      • Master component
      • Slave component
      • Interconnect component

      Upstream和Downstream描述的是一种相对关系,而不是绝对的位置关系;

    • AXI transactions and memory types

      这里面最起码有三种基本操作的定义:AXI Transaction,它是指一次完整的AXI总线的运行操作;AXI Burst指的是任何一次有效的数据传输(payload);一个Burst可以包括好几次数据传输,或者称包括好几个AXI Beat。

  • 相关阅读:
    标签的讲解
    属性分类
    LeetCode 003. 无重复字符的最长子串 双指针
    Leetcode 136. 只出现一次的数字 异或性质
    Leetcode 231. 2的幂 数学
    LeetCode 21. 合并两个有序链表
    象棋博弈资源
    acwing 343. 排序 topsort floyd 传播闭包
    Leetcode 945 使数组唯一的最小增量 贪心
    Leetcode 785 判断二分图 BFS 二分染色
  • 原文地址:https://www.cnblogs.com/lafiizh/p/9845732.html
Copyright © 2011-2022 走看看