AHB's problem

SoC bus 架构

AXI is used more and more

  • 频率200M使用AHB,频率再升高就使用AXI

AHB的问题

  • AHB协议本身限制要求较高,比如command和data必须是1Cycle的延迟,error response,HREADYOUT和HREADYIN等机制都很容易导致设计出错,这是从设计层面去考虑AHB存在的问题。
  • 我们分析一下AHB的带宽,在理想情况下,AHB的最大带宽为BW=Freq*DW。虽然AHB存在WDATA和RDATA,但是它的控制信号只有一路,并且COMMAND和DATA必须满足1T的延迟,所以WDATA和RDATA是无法同时工作的。等于数据信号的利用率最多只有50%。可以认为它近似于一个半双工的BUS。
  • 上述还不是最坏的情况,因为我们考虑数据是一拍回复,那当数据不是一拍回复,并且当我们需要改变传输方向的时候呢?比如我们先读后写。在读数据回来之前我们是不准写的,这个前面讲AHB协议的时候有说到,因为HREADY会反压,一直到读数据回来的时候才准写。因此当回数据需要很多拍的时候,并且频繁地发生读写转换的时候,AHB的效率是非常低的!

AXI的提升

  • AXI有五条独立的channel,AXI相比AHB最重要的改变就是读写通道分离,相当于我们有两路可以传输了(全双工),此外AXI还支持Outstanding(现在简单理解为在路上即可)。同样考虑开始开车的例子,同样是读写频繁转换,传输延迟很大为100s,在理想的情况下可以是2car/1s!。因为AXI不需要等读回数据响应再发送下一次传输,它支持“在路上”。

AHB 局限性的更多相关文章

  1. 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性

    Java并发编程实践 目录 并发编程 01—— ThreadLocal 并发编程 02—— ConcurrentHashMap 并发编程 03—— 阻塞队列和生产者-消费者模式 并发编程 04—— 闭 ...

  2. 【EF 译文系列】重试执行策略的局限性(EF 版本至少为 6)

    原文链接:Limitations with Retrying Execution Strategies (EF6 onwards) 当使用重试执行策略的时候,大体有以下两种局限性: 不支持以流的方式进 ...

  3. AHB中split机制简介

    完整的AHB协议:1)可以多个master,并且需要外加一个Arbiter,和write multiplexor.为了保证每一时刻只有一个master拥有访问权. 2)为了增强pipeline的能力, ...

  4. [实变函数]5.1 Riemann 积分的局限性, Lebesgue 积分简介

    1 Riemann 积分的局限性 (1) Riemann 积分与极限的条件太严:    $$\bex    f_k\rightrightarrows f\ra \lim \int_a^b f_k   ...

  5. JAVA与多线程开发(线程基础、继承Thread类来定义自己的线程、实现Runnable接口来解决单继承局限性、控制多线程程并发)

    实现线程并发有两种方式:1)继承Thread类:2)实现Runnable接口. 线程基础 1)程序.进程.线程:并行.并发. 2)线程生命周期:创建状态(new一个线程对象).就绪状态(调用该对象的s ...

  6. android TabActivity的局限性 是否还有存在的必要性

     TabActivity的局限性 是否还有存在的必要性 其实谷歌有此举动,我们也应该早就想到了,为什么会这么说呢?那就要从TabActivity的原理开始说起了. 做个假定先: 比如我们最外面的Act ...

  7. AHB总线和APB总线

    AHB主要用于高性能模块(如CPU.DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作:非三态的实现方式:支持突发传输:支持分段传输:支持多个主控制器:可配置 ...

  8. Docker在云环境中的应用实践初探:优势、局限性与效能评测

    作者 商之狄 发布于 2014年11月10日 本文依据笔者所在团队的一些近期开发和应用的实践,整理出一些有意义的信息,拿出来和社区分享.其中既包括在云端应用Docker与相关技术的讨论,同时也有实施过 ...

  9. 浅析busybox-1.12.0中ash的脚本命令局限性

    浅析busybox-1.12.0中ash的脚本命令局限性 LUTHER= 表示将LUTHER清空,将其变为null echo ${LUTHER:-111}如果执行该句之前LUTHER变量不存在,那么显 ...

  10. OSGi 学习之路(4) - osgi的模块化 java在模块化的局限性

    底层代码可见性控制 Java提供了private,public,protected和package private(无修饰符)这四种访问控制级别,不过这仅仅提供了底层的OO数据封装特性.包这个概念确实 ...

随机推荐

  1. Vue学习笔记-生命周期

    整体页面代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  2. SpringMVC中资源路径映射本地文件图片

    SpringMVC中资源路径映射本地文件图片 import org.springframework.context.annotation.Configuration; import org.sprin ...

  3. 工具类图片转base64

    工具类图片转base64 import sun.misc.BASE64Encoder; import java.io.FileInputStream; import java.io.IOExcepti ...

  4. CentOS7 安装MySQL 8.0.28+

    MySQL的三大版本 a)MySQL Enterprise Edition:企业版本(付费)b)MySQL Cluster CGE:高级集群版(收费)c)MySQL Community Server: ...

  5. ClickHouse的JOIN算法选择逻辑以及auto选项

    ClickHouse的JOIN算法选择逻辑以及auto选项 ClickHouse中的JOIN的算法有6种: Direct; Partial merge; Hash; Grace hash; Full ...

  6. K8S系列一:概念入门

    K8S系列一:概念入门 写在前面 本文组织方式: K8S的架构.作用和目的.需要首先对K8S整体有所了解. K8S是什么? 为什么是K8S? K8S怎么做? K8S的重要概念,即K8S的API对象.要 ...

  7. flutter中显示年月日、星期与时间

    代码 import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'dart:async'; imp ...

  8. 在线编辑Word——插入内容控件

    内容控件是可添加和自定义的以在模板.窗体和文档中使用的单个控件.Word中支持添加多种类型的控件用于不同文档的设计需求.本文,将通过在线编辑的方式展示如何在Word中插入内容控件,这里使用的在线编辑器 ...

  9. 即使不会node.js,拖拽就可完成数据的可视化展示

    摘要:node-red是一款基于Node.js的开源可视化界面开发工具,不需要掌握node.js而通过拖拽即可完成数据的可视化展示. 1.首先看一下node-red对数据的渲染效果 你可能认为,必须熟 ...

  10. GaussDB(DWS) NOT IN优化技术解密:排他分析场景400倍性能提升

    摘要:本文针对8.1.2版本中的NOT IN场景的Mixed-HashJoin新技术进行介绍.该技术在GaussDB(DWS)与招商银行的联创项目中落地,为招商银行的批量作业带来了总体15%的性能提升 ...