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. 华企盾DSC启动服务器提示“发生系统错误5”

    解决方法:没有管理员权限 导致,需要以管理员权限运行服务器安装包,覆盖安装一下

  2. 假如这个地方可能为null,那他一定会为null

    假如你的代码,在某个地方(比如controller层)提示你:这个方法调用可能会产生null,那么千万不要视而不见,在某一瞬间它一定会是null,势必报错. /** * 修改保存管理员 */ @Pos ...

  3. 冲刺秋招之牛客刷Java记录第二天

    第一题 下列代码输入什么? public class Test { public static Test t1 = new Test(); { System.out.println("blo ...

  4. linux文件和文件夹的筛选、查找及用户和组管理命令

    1.列出当前系统上所有已经登陆的用户的用户名, 注意:同一个用户登录多次,则只显示一次即可. 查看系统用户的命令为: (1)getent passwd 查看系统上的所有用户信息 (2)w 查看登录用户 ...

  5. JavaFx之使用高版本JDK(二十八)

    JavaFx之使用高版本JDK(二十八) 如何使用高版本的jfx? 根据官网的需要手动引入jfx模块(运行参数:–module-path) 要知道高版本jfx已经集成了丰富的主流功能,例如视频编码,大 ...

  6. APM市场冰火两重天,或许只是行业无处安放的焦虑

    近两年来,无论从国内还是到国外,市场出现一种APM批判的论调,甚至有"传统APM已经落后"的个别声音出现. 可放眼望去,国外主流APM厂商如:DATADOG. Dynatrace. ...

  7. LeetCode 947. 移除最多的同行或同列石头 并查集

    传送门 思路 干货太干就不太好理解了,以下会有点话痨( ̄▽ ̄)" 首先题目给了一个二维stones数组,存储每个石子的坐标,因为在同行或者同列的石子最终可以被取到只剩下一个,那么我们将同行同 ...

  8. js-audio-pluging(录音)

    安装 npm i js-audio-recorder 代码 <template> <div class="BaseRecorder"> <div cl ...

  9. LeetCode 分治篇(50、17)

    50. Pow(x, n) 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, ...

  10. 云小课|RDS实例连接又失败?看我祭出杀手锏!

    摘要:自从购买了RDS实例,连接失败的问题就伴随着我,我真是太难了.不要害怕,不要着急,跟着小云妹,读了本文,让你风里雨里,实例连接自此畅通无阻! 顺着以下几个方面进行排查,问题就可以迎刃而解~ 本文 ...