首页 > 其他分享 >AMBA总线介绍-01

AMBA总线介绍-01

时间:2023-02-27 00:11:18浏览次数:36  
标签:AHB DMA 01 总线 地址 Master APB AMBA

AMBA总线介绍

  • AMBA总线概述
  • AHB
  • APB
  • 不同IP之间的互连

系统总线简介

系统芯片中各个模块之间需要有接口连接
总线作为子系统之间共享的通信链路
优点:成本低,方便易用(通用协议,不用协议之间的转换模块)
缺点:容易造成性能瓶颈

AMBA2.0

总线是有协议的,也有版本

  • Advanced Microcontroller Bus Architecture
  • AHB(Advanced High-performance Bus)
  • APB(Advanced Peripheral Bus)
  • ASB(Advanced System Bus)

总线发展历史

  • AMBA 1.0
    ASB和APB
  • AMBA 2.0
    AHB\ASB\APB
  • AMBA 3.0
    AMBA Advanced extensible interface(AXI)
  • AMBA 4.0

典型的AMBA系统

  • 对于AHB总线上,Master(主设备)可以有多个,Slave(从设备)也可以有多个。
  • 对于APB总线上,Master只有Bridge,主设备(Bridge)会将AHB的请求转换为APB的请求
  • Master(主设备):可以主动的发起读写请求
  • Slave(从设备):不能主动发起一些请求,但是可以接受主设备的发来的请求,并给予一些响应。

AHB特点

  • 高速总线
  • 2级流水线操作
  • 支持多个总线主设备
  • 支持burst传输
  • 总线带宽:8、16、32、64、128bits(根据不同的功能可以进行自定义)
  • 上升沿触发操作
  • 对于一个新设计建议使用AHB

ASB特点

  • 高速总线
  • 流水线操作
  • 支持多个总线主设备
  • 支持burst传输
  • 总线带宽::8、16、32bits
  • 三态、双向总线(不适用于DFT)
  • 下降沿或者上升沿触发

APB特点

  • 低速总线、低功耗
  • 接口简单(外设UART\I2C\SPI,本身的逻辑就会很简单)
  • 在Bridge中锁存地址信号和控制信号(APB中的唯一主设备,可以锁存总线的读写请求)
  • 适用于多种外设
  • 上升沿触发

AHB组成部分

  • AHB主设备(master)
    可以作为请求发起端访问从设备
    初始化一次读或写操作
    某一时刻只允许一个主设备使用总线
    CPU\DMA\DSP\LCDC

  • AHB从设备(slave)
    响应一次读写操作
    通过地址映射来选择使用哪一个从设备
    Bridge从AHB端是从设备,在APB端是主设备
    存储器的控制器(响应读写请求)

  • AHB仲裁器(arbiter)
    允许某一个主设备控制总线
    在AMBA协议中没有定义仲裁算法

  • AHB译码器(decoder)
    通过地址译码来决定选择哪一个从设备

APB组成

  • AHB2APB Bridge
    可以锁存所有的地址、数据和信号
    进行二进制译码来产生APB从设备选择信号
  • APB总线上所有的其他模块都是APB从设备

AMBA协议有关问题

  • 与工艺无关
  • 没有定义电气特性
  • 仅在时钟周期级定义时序
    提取时序参数依赖于所采用的工艺和工作频率

DMA实例

DMA既是主设备又是从设备,DMA相对于CPU是从设备,接受CPU的配置;相对于存储器来讲,DMA是主设备。CPU需要对一个slave接口进行配置,DMA接受(源地址,目标地址,数据长度)等信息,之后进行操作存储器进行数据传输

DMA工作过程

首先CPU向AHB总线发起一个读请求,查看DMA的状态。通常DMA在处理完数据之后,会发送一个中断给CPU,CPU接收到中断之后会进行中断处理,重新发起一个任务。

CPU在发现DMA状态可用的时候,会将DMA的描述符配置到DMA中,起始地址,结束地址,数据位宽;然后启动DMA

mem1将数据传递mem2

DMA完成数据执行之后,DMA向CPU发出终端请求;CPU检查DMA的状态

AHB总线

AHB总线互连

主设备可以发起请求,主要发送的是地址,数据和控制信号。每个Master都会发送给Arbiter,Arbiter决定哪个Master控制总线,比如选择Master2,mux就会将Master2选通,将信息传递给从设备,slave进行返回数据,decoder会选择哪个slave进行返回数据。

Dummy/Default Master

  • 如果没有Master发送请求,Arbiter会将总线控制权给Dummy Master,只会产生一种请求IDLE,表示当前Arbiter空闲,没有发起任何读写操作。(Dummy Master不是一个实体,相当于一个虚拟的Dummy Master,隐藏在Arbiter或者是decoder中)。
  • Default Master会将系统中的一个Master(使用频率最多的)作为一个Default Master,如果总线上没有任何一个Master进行请求的时候,Arbiter会将总线控制权给Default Master。
  • 如果使用Dummy Master,在申请总线的过程中也需要耗费时钟周期,仲裁过程一般耗费两个时钟周期,使用Default Master就会节省两个时钟周期。

Default slave

假设一个4G的地址空间,每一个slave地址占据地址空间中的一部分,如果CPU访问的地址是没有定义的地址,就认为是访问的是default slave,根据传输模式,返回响应

AHB信号

总线包含的是一组信号,有总线的请求端、控制端、地址端、数据端信号。所有遵循AMBA2.0协议的AHB总线的IP都要实现这些信号。

  • HWRITE拉高表示写请求,HWRITE拉低表示读请求
  • HWRITE信号拉高之后,需要把HWDATA驱动



  • 上图中的decoder(应该换为Arbiter和decoder,入下图所示),从Master发出经过Arbiter仲裁,选择Master,传输地址和控制信号,HREADY信号拉高表示传输完成

AHB时序

拿到任何一个协议,就要了解协议中包含的所有信号信号的时序关系

Address phaze第一个周期Master会把地址和控制信号(地址数据)驱动到总线上(HTRANS,HSIZE,HBURST,HPROT)
下一个周期,如果是写数据,Master会把(A地址)数据驱动到HWDATA上;如果是读数据,会由slave将HRDATA驱动到总线上
这里是无等待的响应,HREADY在Data phaze上升沿是拉高的,所以数据在下一个周期就驱动过来了;如果HREADY需要几个周期,那么数据可能会经过几个周期之后才会驱动到总线上;如果是写操作,主机必须保持数据信号保持不变;如果是读操作,则从机不需要将有效数据输出到总线上。

  • 如果slave没有ready,就会拉低HREADY
  • 总线拉低周期越多,那么会对总线产生的负面影响越大,导致总线性能的下降。AHB等待周期不能超过16个,超过之后需要重新执行任务。
  • 数据周期可以通过从机拉低HREADY信号来延迟。从机拉高HREADY代表此次传输已经成功完成。

多笔传输数据

首先将地址A驱动到总线上,下一个周期驱动A地址的数据和地址B


如果数据需要延迟两个周期才能ready,那么地址C能不能接着地址B驱动到总线上?
不能,因为地址B的数据还没有回来,如果此时驱动地址C,会造成总线数据的丢失,HREADY进行延迟的时候,地址C就需要进行相同的延迟,下一个地址驱动到总线的时候,一定是上一个地址数据HREADY的时候

AHB控制信号

Burst Transfer

一次请求里面有多笔数据传输

HTRANS


  • 如果是第一笔数据传输一定是NOSEQ
  • 如果当前传输数据是burst传输,传输到第四笔,SEQ传输

HWRITE & HSIZE

HPROT

控制信号小结


  • 每个slave最小的空间就是1k,burst一次只能访问一个slave,一次访问不会跨越两个slave

标签:AHB,DMA,01,总线,地址,Master,APB,AMBA
From: https://www.cnblogs.com/Icer-newer/p/17156742.html

相关文章

  • 7.5-总线标准
    总线标准常见总线标准EISI和VESA标准PCI标准外部总线 芯片内部的总线标准远距离  ......
  • 【题解】CTT 2019 Day 2
    目录A.循环序列B.MatrixC.杀蚂蚁简单版A.循环序列即求\(\sum\limits_{i=0}^{c}{k\choosem+in}\),即\(\frac{1}{n}\sum\limits_{j=0}^{n-1}\sum\limits_{i=0}^{k-m}......
  • 【题解】CTT 2019 Day 1
    目录A.递增树列B.异世界的文章分割者C.时间旅行A.递增树列令\(f_{u,i}\)表示\(u\)的子树,已经用掉\(i\)个点,剩下的点排列满足要求的方案数。考虑方案的计算,用......
  • 【题解】CTT 2018 Day 2
    目录A.宝石游戏B.面国建设C.WechatA.宝石游戏无修改时考虑长链剖分(加整体异或标记)。有修改时分块,不考虑关键点层长链剖分,最后算答案的时候处理关键点层的答案即可。......
  • 7.2-总线性能和总线事务
    总线的性能参数总线频率:反映总线工作速率(f),通常单位是MHz,类比于车速总线宽度:数据总线的位数,类似于告诉路有几条车道,单位是b是微型计算机的重要指标,通常与处理器的字长有......
  • 7.3-总线的链接方式
    单级总线结构通过一条总线将计算机的存储器,CPU以及输入输出设备全部通过一条总线链接起来,也称为系统总线如何在一条总线上区分不同的设备,简单的方式可以通过地址来区分......
  • 7.4-总线仲裁和数据传输方式
    菊花链式串行总线仲裁什么是总线仲裁,是指在总线上同一时刻只能有一个主设备占用总线,当计算机系统中只有一个主设备的时候不存在仲裁问题,当多个主设备同时提出总线占用的申......
  • 6.7-总线结构与CPU指令周期(2)
    MOVE指令执行数据通路,MOVER1,10功能是将10送到R1中,将指令寄存器中的地址部分,也就是我们的立即数部分送到寄存器中需要将IR的值输出,需要IRout来进行控制,用IRout将数据......
  • P6659 [POI 2019] Najmniejsza wspólna wielokrotność 题解
    题意给定一个整数\(M\),求是否存在一个区间\([a,b]\)使得\(M\)为\([a,b]\)这个区间中所有数的最小公倍数。解题方法1.区间长度\(=2\)。二分查找\(a\),由于相......
  • Shortest Prefixes POJ - 2001
    给一些串,问每个串的唯一前缀,若不存在输出本身  #include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=1e5;intch[N][......