双层AMBA总线设计及其在SoC芯片设计中的应用
引言
一般说来,SoC芯片是由片上芯核、用户设计的IP核以及将这两者集成在一起的总线组成的。片上芯核决定了使用何种片上总线以及芯片的体系结构。ARM系列嵌入式微处理器凭借其高性能、低功耗的特点占据了市场的主要份额,ARM7TDMI因其相对低廉的价格在SoC芯片设计中应用比较广泛。同时,ARM公司开发的AMBA (Advanced Microprocessors Bus Architecture)片上总线架构由于其本身的高性能以及ARM核的广泛应用,成为了一种流行的片上总线结构。除了片上芯核和片上总线,各种由用户设计的或者由供应商提供的IP也集成在SoC芯片上。
ARM7TDMI需要通过总线访问各个Slave;DMA工作时也需要通过总线访问外设进行数据交换;而LCD控制器模块为了实现实时显示更是需要不断地通过总线来访问显存读取数据;系统中其他的Master在工作时也要占用总线。
特别要引起注意的是LCD控制器模块。彩屏显示需要很大的数据量,以一块320×240、16bpp的TFT彩屏为例,其每一帧需要:320× 240×16/8=153.6kByte。这么大的数据量不可能通过片上存储器提供,势必要通过存储器接口从外设取得。由于LCD控制器所需要的数据量很大并且需要实时显示,LCD控制器的工作将会占据大量的片上总线带宽,甚至影响整个系统的正常运行。而在目前的消费电子领域,支持彩屏应用几乎是不可缺少的。
解决此问题可以通过采用优化总线切换算法、增加片内Cache、改进总线架构等方法。其中,优化总线切换算法带来的性能改善比较有限,而 Cache本身设计的复杂性以及其License高昂费用,使之在很多情况下也不合适。因而,采用双总线架构的AMBA不失为一个较好的选择。
双总线架构AMBA及其实现
在单层总线情况下,所有的Master和Slave都挂在AHB总线上。任何一个Master如果要访问Slave的话,都必须先申请总线,在获得总线所有权后,通过总线互联结构中的MUX进行地址、数据和控制信号的交换,而其他的Master此时必须等待。
双层AMBA总线结构
双层AMBA总线架构则通过使用更为复杂的内部互联结构,能够同时有两组Master和Slave通过AMBA进行数据的交互,极大地提高了总线的带宽。而且任一个Master也都可以访问任一层上的Slave。另外,在采用了双层AMBA总线以后,对于AHB Master和AHB Slave来说是透明的,不需要任何的修改。对于这个双层AMBA总线,设置其能支持16个Master和16个Slave,并且每层各带8个Master和8个Slave。
其中的双层AMBA总线本身由三部分组成:Layer1的总线译码器、预仲裁器和多个数据选择器(MUX);Layer2的总线译码器、预仲裁器和多个数据选择器;整个总线的核心仲裁器(Arbiter)。其中,前二者基本是一致的,而核心仲裁器是整个双层总线架构的核心。其原理是:每层的8个 Master先在本层进行一次译码与仲裁,得到的结果送至核心仲裁器,再由核心仲裁器决定状态的切换以及各个MUX如何进行数据流和控制流的选择。
相关文章
- 2023-05-28浅谈核电站在役检查质量保证过程控制
- 2024-01-18加强矿石资源管理实施检水尺计量验收
- 2023-03-20超声波测距仪的设计
- 2021-10-31模拟有源滤波器的电路设计
- 2023-03-09流量计中超声波传播速度校正方案
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。