了解MCU的内部总线结构如何驱动应用效率

  MCU现在有一个惊人数量的片上外设,可以同时用于从CPU卸载低级别的功能。这可以极大地提高处理效率,降低功耗,简化您的设计。然而,如果你的外围功能淹没了内部总线接口和数据传输速度,你可能会遇到一个不幸的惊喜。幸运的是,MCU制造商增加了新的和高效的总线接口,通常在关键外围设备和片上存储器之间有多条路径,这有助于支持多个数据传输。然而,这些新的公共汽车确实有局限性,因为将所有的东西连接到所有其他地方在模具面积和功率方面都太贵了。了解这些新的片上总线的通用模型将有助于创建高效的设计,最大化数据传输带宽。

  本文将快速回顾一些常见的智能片上总线特性,并将说明利用这些关键特征的实例设计。其中的一些主题将包括:片上总线矩阵体系结构、DMA控制器的使用、专用外围数据传输功能、智能缓冲、总线优先级系统和中断控制。

  通用总线接口体系结构

  几个关键的架构方法出现在几乎每个高性能总线互连结构中。这并不奇怪,因为支持高带宽的关键策略是能够建立几个可以独立运行的并行连接。总线矩阵体系结构,其中多个总线主控器可以独立地访问多个总线奴隶,可能是最高效的总线体系结构的最常用的构建块。飞思卡尔KiETS K70 MCU是高效数据处理和移动所需的互连结构类型的一个很好的例子。

  如图1所示,飞思卡尔KiETS K70 MCU使用多级总线矩阵,可以在八个独立总线主控器和八个独立总线母线之间互连。多个主人和奴隶独立运作是可能的。内存分配是提高效率的关键。例如,下面的操作都可以并行操作,没有重叠:

  SAMLYL中的Flash和核心数据和堆栈的核心指令

  SRAM中的USB数据缓冲器

  液晶显示控制器DDR中的图形缓冲器

  飞思卡尔KYETICS K70 MCU总线互连结构映像(点击全尺寸)


  图1:飞思卡尔KiETS K70 MCU总线互连架构。(飞思卡尔)

  飞思卡尔还提供了K70的模块化开发平台,它是飞思卡尔塔架系统的一部分,它可以通过可重构硬件实现快速原型化和工具重用。TWR K70F120 M可用于塔式系统外围模块的广泛选择,包括新的TWR LCD-RGB,其接受来自K70 MCU图形LCD控制器的RGB数据。

  当两个或多个主机试图访问单个从端口时,接口将使用仲裁算法来确定哪个主机将首先访问端口。通常用于总线访问的两种常见仲裁方案是固定优先级或循环。在固定优先级方案中,主优先级是固定的,在较低优先级的主机上给予高优先级的主机访问权限。如果有几个具有同等优先级的主机,可以使用循环优先级方案。在该方案中,主控旋转优先级,以便随着时间的推移,对资源具有相等的访问。

  注意DMA访问总线矩阵的重要性。通常,DMA传输是最有功率效率的,所以DMA对总线矩阵有高效的主访问是至关重要的。一些资源将有多个连接到总线矩阵——例如注意DRAM控制器——因为它们是多个主控器的关键资源。这通过删除多个主机需要访问相同资源时可能发生的“访问阻塞”来提高整体性能。


  提高效率的高级外围总线体系结构

  在许多MCU应用程序中,外围操作与CPU和内存操作一样重要。它可以提高传输效率,如果有先进的总线接口与关键外围功能,以及基于CPU的功能。瑞萨RX600 MCU具有多个外围总线,可以更有效地扩展带宽负载。如图2所示,RX600不仅具有面向CPU的操作的总线矩阵(在图的顶部示出),而且具有多个外围总线(在图的底部示出),以便更好地在智能外围设备之间分配带宽。大量的外围业务不需要访问CPU总线矩阵,这提高了数据传输效率,而不增加CPU总线矩阵的大小,通常是更高的性能、大的芯片尺寸和更高的功率子系统。

  瑞萨RX600多总线体系结构的图像


  图2:瑞萨RX600多总线架构扩展带宽负载。

  在图2中,有六个并行数据传输操作同时发生:

  CPU获取指令

  USB数据传输到CPU

  以太网数据从SRAM移出

  RGB数据从外部SDRAM移至LCD

  将ADC值加载到SRAM中

  计时器数据写入DAC输出

  当多个活动同时发生时,独立的外围总线的可用性可以提供显著的效率提升。在外围设备要求较低的系统中,一个或两个外围总线就足够了。


  双CPU核心体系结构

  具有双CPU内核的MCU,如Atmel SAM4C8CA,也需要高性能总线接口,甚至比单核心MCUs更重要,因为重要的是允许每个CPU并行访问密钥资源,从而不影响整个系统性能。在许多实现中,一个CPU具有较高的处理能力,而另一个则具有较少的能力。这在需要较低性能系统控制器和更高性能应用处理器的设计中是有用的。

  如图3所示,Atmel SAM4C8C有一个具有浮点能力的CPU,而另一个CPU具有定点CPU。SAM4C8C具有512 kb的闪存和128+16+8 kb的SRAM。处理任务分配给适当的CPU以提高效率。两个高速AHB多层总线矩阵互连用于支持最大数量的处理重叠。独立的DMA控制器和中断控制器支持高效的数据传输,而不需要CPU干预。一个简单的异步AHB到AHB桥用于处理CPU地址空间之间的同步和数据传输,即使在DMA控制下也是如此。

  Atmel双CPU内核SAM4C8CA总线接口结构


  图3:Atmel双CPU核心SAM4C8CA总线接口架构。


  低功耗和高效率的数据传输

  您可能会认为,这些多总线体系结构以最高性能系统为目标,但即使是低功耗应用也可以利用高效的总线结构。德克萨斯仪器MSP430F5507IrgZR,供应商的MSP430系列的MCU,集成了USB,LCD控制,和高性能模拟在一个芯片上的小脚印应用。外围设备有几种自主操作的方法,这可以帮助降低CPU在低功耗模式下的工作功率,如图4所示。

  TI MSP430系列低功耗运行图像


  图4:TI MSP430家庭采用自主外围设备进行低功耗操作。

  通过使用即使在低功率操作期间保持活跃的外围总线,也可以从ADC采样数据,将数据传输到存储器,输出PWM信号,更新LCD显示,并且在CPU处于低功率待机状态时发送/接收串行数据通信。注意,快速唤醒时间使得有可能在需要时快速响应外围请求,而在唤醒时不消耗大量的功率。即使这样的能力,短CPU操作也是有效的。


  总结

  从一个复杂的MCU中获得最大的性能需要在外围设备和存储器之间以及在需要时向CPU和来自CPU的大量重叠总线活动。通常,最高效的实现将有多个传输同时运行,而不涉及任何CPU活动。了解MCU总线接口体系结构的能力和局限性是实现高效率的关键。

猜你喜欢

转载自blog.csdn.net/kailixun/article/details/80118197