ZERO

keep learning, be curious !

AXI3/4 中出现了用于时钟和功耗的 C-channel,该协议有缺陷。后来新出的协议,更多的是采用 Q-channel 和 P-channel,这三个协议是怎么回事呢?

0 关于低功耗接口

本文档描述了可用于控制设备的时钟和电源状态的接口。接口为:

阅读全文 »

ATB协议主要用于在SOC的Debug系统中,将数据流导出给CoreSight使用。

1 前言

ATB协议是AMBA协议家族的一部分。

阅读全文 »

1 AXI基本概述

AMBA3版本推出了AXI协议,它支持高性能、高频率的系统设计,其主要特点如下所示:

  • 分离的地址/控制和数据阶段。
  • 通过字节选通方式支持非对齐的数据传输。
  • 使用基于突发的事务,只需起始地址发出。(Burst不得跨4KB边界,防止跨越Slave边界)
  • 单独的读写数据通道,这可以提供低成本的直接内存访问(DMA)。
  • 支持发布多个超前地址(outstanding)。
  • 支持完成乱序事务(out-of-order)。
  • 易于添加register stage来达到时序收敛。
  • AXI协议包括涵盖低功耗操作的可选扩展信号。
阅读全文 »

前面学习APB总线时,由于内容不多就直接将APB4手册翻译了下。到了AHB总线再这样学习就不好了,一是逐句翻译太累人,二是原文翻译过来划不清重点。因此AHB总线以学习笔记的形式记录下来,但其实大多数也就是手册的翻译和理解。

1 AHB特点

AHB协议相比APB协议更加复杂,性能更加优越,手册上也清楚写明了它的特点:高性能、流水线、突发、多主机、分段传输,原文如下所示:

阅读全文 »

APB是最简单的AMBA总线了,功耗很低,它多用于低速外围设备和访问寄存器。相比AHB和AXI,有几个很不一样的点:

  • 最快只能背靠背(back to back)传输,至少2个周期传输一个数据,PSEL起来然后PENABLE起来。
    • 背靠背传输,即连续传输,这笔传输传完,紧挨着下一个Cycle就可以开始下一笔传输。
  • 不能Pipeline传输、Burst传输、Outstanding传输,数据有效时,其地址必然是当前数据的对应地址。
    • pipeline传输,即流水式传输,指当前传输的结束Cycle可以是下一笔传输的起始Cycle,起到无缝衔接。
    • burst传输,即只需指定起始地址和突发长度,即可自动对后面连续地址进行操作,无需提供连续地址。
    • outstanding传输,即不需要等待读写数据完成,即可继续提供下一笔传输的命令和地址,提高传输效率。
  • 不能读写同时传输,因为其读写地址是共用的。(AHB也不能读写同时传输)
  • 不能仲裁,因为是单主多从协议。典型的APB协议包括唯一的APB桥作为Master,而所有的APB模块都是APB slave。

阅读全文 »

ARM 公司推出了 AMBA 系列总线,一直迭代至今,不断丰富扩展内容,常用的 AMBA 协议各个版本的变化如下所示:

在我刚入职时,指导人让我前 2 个星期什么都不用干,甚至不用登陆 Linux 系统,就在电脑上硬看 APB、AHB、AXI 数据手册。那时我连基本的握手、互联的概念都没有,看完后虽有收获,但非常流于表面。现在工作了一小段时间,打算再看一遍 AMBA 数据手册,希望把边边角角都给扫到。

阅读全文 »

算法分类

十种常见排序算法可以分为两大类:

  • 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。

  • 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。

    sort

时间,空间复杂度比较

排序算法 英文 平均时间复杂度 最差时间复杂度 空间复杂度 数据对象稳定性
选择排序 selection O(n2) O(n2) O(1) 数组不稳定、链表稳定
冒泡排序 Bubble O(n2) O(n2) O(1) 稳定
★ 插入排序 insertion O(n2) O(n2) O(1) 稳定
★ 快速排序 Quick O(n*log2n) O(n2) O(log2n) 不稳定
★ 归并排序 Merge O(n*log2n) O(n*log2n) O(n) 稳定
★ 堆排序 heap O(n*log2n) O(n*log2n) O(1) 不稳定
希尔排序 shell n^1.3 O(n2) O(1) 不稳定
桶排序 Bucket O(n) O(n) O(m) 稳定
计数排序 Counting O(n+m) O(n+m) O(n+m) 稳定
基数排序 Radix O(k*n) O(n2) O(n+k) 稳定
阅读全文 »