以下为《AMBA总线介绍》的无排版文字预览,完整内容请下载
计算机基本知识AMBA总线介绍
一:背景介绍
ARM公司定义了AMBA(Advanced Microcontroller Bus Architecture)总线规范,它是一组针对基于ARM核的、片上系统之间通信而设计的标准协议。因为ARM处理器的广泛使用而拥有众多第三方支持,被ARM公司90%以上的合作伙伴采用。
在AMBA总线规范中,定义了AHB ,APB ,ASB这3种总线。最初的AMBA总线是ASB和APB。在它的第二个版本中,ARM引入了AHB。 (l)AHB:Advanced High Performace Bus,用于高性能系统模块的连接,支持突发模式数据传输和事务分割; (2)ASB:Advanced System Bus,也用于高性能系统模块的连接,支持突发模式数据传输,这是较老的系统总线格式,后来由AHB总线替代; (3)APB:Advanced PeriPheral Bus,用于较低性能外设的简单连接,一般是接在AHB或ASB系统总线上的第二级总线。
图1 典型的基于AMBA总线的系统[1]
一个以AMBA 为架构的SOC,图1是个典型的系统架构,一般来说包含了high-performance 的system bus – AHB以及low speed, low power 的peripheral bus - APB 。System bus 是负责连接例如ARM 之类的embedded processor 以及DMA controller,on-chip memory 和其他 interface,或其他需要high bandwidth的模块。而peripheral bus 则是用来连接系统的外围慢速模块,其协议规则相对AHB来说较为简单,它以AHB之间则通过Bridge 相连,期望能n少system bus 的loading。
二:结构以及仲裁原理
1 .AHB Bus
AHB System是由Master,Slave,Infrastructure 三部分所组成。整个AHB bus上的传输都是由master 所发出,由slave 负责回应。而infrastructure 则由arbiter ,master to slave multiplexor,slave to master multiplexor,decoder,dummy slave,dummy master 所组成。
AHB总线互联结构图【2】
AHB支持多主设备,所以需要仲裁器。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。
AHB Arbitration的机制简述如下:
当master 想要access bus 时候,master 将HBUSREQ signal(bus request) 给drive high(每个master 都有自己的HBUSREQ 信号),同一个时间可能有多个master 都想要access bus,因此arbiter 在HCLK 的rising edge 去sample 各个master 的HBUSREQ 信号后,需要决定哪个发出request 的master 有最高的priority(虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由设计工程师自行决定,AHB 并没有规定priority algorithm,其中两个最 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 简单的一种连接方式;数据流连接方式主要用于数字信号 处理等应用场合;共享总线,它适用于系统中有两台或者多台主设备需要与一台或则多台从设备通信的场合,它只允许在任何一时刻最多只允许一对主设备和从设备通过共享总线进行通信。而交叉开关互联方式中,最多允许超过一对的主设备和从设备对同时惊醒通信,当然在任一时刻,一台从设备只能与一台主设备进行通信,两台主设备不能同时访问同一从设备。
为了实现共享总线及十字交叉方式的互联,Wishbone总线用户必须自己实现仲裁(Arbitrator)逻辑模块。系统中采用的是共享总线和交叉开关互联2者兼有的连接方式,其总裁机制采用固定优先级,具体实现体现在源程序代码中。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《AMBA总线介绍》的无排版文字预览,完整内容请下载
AMBA总线介绍由用户“keke0216”分享发布,转载请注明出处