微信公众号制作网站有哪些,手机网站推荐哪些,建立网站 英语怎么说,高校网站设计方案目录
一、传说中的AMBA总线是什么#xff1f;
二、为什么要使用AMBA总线 三、AXI主要特点
四、几中AMBA总线AHB、AXI、APB相关性能的区别与联系
总结 一、传说中的AMBA总线是什么#xff1f; IoT(物联网)Internet of Things 下图是一个典型的AMBA系统。 典型AMBA系统
大…目录
一、传说中的AMBA总线是什么
二、为什么要使用AMBA总线 三、AXI主要特点
四、几中AMBA总线AHB、AXI、APB相关性能的区别与联系
总结 一、传说中的AMBA总线是什么 IoT(物联网)Internet of Things 下图是一个典型的AMBA系统。 典型AMBA系统
大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块主模块或者从模块。主模块是向从模块发出读写操作的模块如CPUDSP等从模块是接受命令并做出反应的模块如片上的RAMAHBAPB 桥等。
另外还有一些模块同时具有两种属性例如直接存储器存取(DMA)在被编程时是从模块但在系统读传输数据时必须是主模块。如果总线上存在多个主模块就需要仲裁器来决定如何控制各种主模块对总线的访问。
虽然仲裁规范是AMBA总线规范中的一部分但具体使用的算法由RTL设计工程师决定其中两个最常用的算法是固定优先级算法和循环制算法。AHB总线上最多可以有16个主模块和任意多个从模块如果主模块数目大于16则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。APB 桥既是APB总线上唯一的主模块也是AHB系统总线上的从模块。其主要功能是锁存来自AHB系统总线的地址、数据和控制信号并提供二级译码以产生APB外围设备的选择信号从而实现AHB协议到APB协议的转换。
AMBA AHB循环级建模标准是完全公开和免费的。
二、为什么要使用AMBA总线 三、AXI主要特点 1.分离的读写通道 2.支持outstanding交易 3.地址与数据操作之间没有严格的时序关系 4.支持未对齐传输 5.支持乱序交易 四、几中AMBA总线AHB、AXI、APB相关性能的区别与联系
AHB增量burst地址每一拍都会给实际快速传输响应的比如一拍传输只关心是不是NONSEQ和SEQ。
AXI增量burst传输只需要给首地址就能继续后续传输。
HADDR没有分读和写的ADDR
AHB不是全双工的读写是不可以同时进行的。所以性能上比AXI一般来讲是要弱的。
AHB主要是针对高效率、高频宽及快速系统模块所设计的总线它可以连接如微处理器、芯片上或芯片外的内存模块和DMA等高效率模块。
APB主要用在低速且低功率的外围可针对外围设备作功率消耗及复杂接口的最佳化。APB在AHB和低带宽的外围设备之间提供了通信的桥梁所以APB是AHB或ASB的二级拓展总线。
AXI高速度、高带宽管道化互联单向通道只需要首地址读写并行支持乱序支持非对齐操作有效支持初始延迟较高的外设连线非常多。 总线 AXI AHB APB 总线宽度 8, 16, 32, 64, 128, 256, 512, 1024 32, 64, 128, 256 8, 16, 32 地址宽度 32 32 32 通道特性 读写地址通道、读写数据通道均独立 读写地址通道共用读写数据通道 读写地址通道共用读写数据通道 不支持读写并行操作 体系结构 多主/从设备 仲裁机制 多主/从设备 仲裁机制 单主设备桥/多从设备 无仲裁 数据协议 支持流水/分裂传输 支持猝发传输 支持乱序访问 字节/半字/字 大小端对齐 非对齐操作 支持流水/分裂传输 支持猝发传输 支持乱序访问 字节/半字/字 大小端对齐 不支持非对齐操作 一次读/写传输占两个时钟周期 不支持突发传输 传输方式 支持读写并行操作 不支持读写并行操作 不支持读写并行操作 时序 同步 同步 同步 互联 多路 多路 无定义 总结
AXI突发式读写的地址必须以4KB对齐。1024Byte(字节)1KB AXI协议中之所以规定一个burst不能跨越4K边界是为了避免一笔burst交易访问两个slave每个slave的地址空间是4K/1K对齐的。假如一个burst交易访问了两个slave A 和BA在前B在后那么只有A收到了地址和控制信息而B不会收到地址和控制信息因此只有A响应B并无响应这就会导致此笔burst交易无法完成B无法返回最后一笔transfer。因此如果你必须确定系统中所有slave中地址空间最小的那一个假设是1M这样你的burst边界可以大于4K至1M。
所谓的4K边界是指低12bit为0的地址例如32h00001000, 32h00002000... 这些特殊的地址我们称之为4k边界同理1k边界是指低10bit为0的地址例如32h00000400,32h00000800...
4K对齐最大原因是系统中定义一个page大小是4K。所以为了更好的设定每个slave的访问attribue就给一个slave划分4K空间。 4K对齐以32位地址为例[31:12]相等的地址都是同一个page没有跨4K边界。 即[11:0] 可以为0~0xFFF. 例如0x1000和0x2000就是在不同的page跨了4K边界。0x1000和0x1FFF则是在同一个page没有跨4K边界。同理0x1FFF和0x2000则跨了4K边界虽然他们是相邻的byte。 再说到一次burst没有4K大小但是如果起始地址是0x1FFC, INCR模式会跨边界吧 1K对齐就是说 [31:10]相等的地址都是在一个1K对齐的空间内。 至于真的跨越了就拆分。例如处理器load多个数据就是跨页访问到了接口控制模块也会把这一个访问拆分成两个访问。在interfere上的都是符合协议的transaction。例如core要访问0x1FF0-0x200C共32byte的数据每次beat 4B。系统会自动给拆分成0x1FF0-0x1FFC和0x2000-0x200C两个transaction。
ARM对AHB burst这样设计的目的是在于SLAVE的地址访问空间基本都是以1KB为单位的当AHB以burst方式传输时为了避免错误的访问到其他的Slave空间而造成系统致命错误因此在burst传输时限制1KB若需要跨1KB边界时需要重新initial一个新的传输。
在AHB划分系统时最小的地址空间为1KB即slave至少地址空间是1k或者2K或者1M等。这样当AHB访问地址空间时因为地址空间对其的原因就不会恶意的访问到其他的地址空间。
cpu发出这样的请求时AHB会自动的将其转换为1KB1KB的传输格式可以根据其地址区间是否跨越对齐的000来判断。
AHB突发式读写的Master,BURST传输不能跨越1K边界比如到3xC 不能跨越到400地址用NONSEQ重新开始一个新的传输slave最小是1k,或者是1k的倍数。