电子产业一站式赋能平台

PCB联盟网

帖子
查看: 1532|回复: 0
收起左侧

学arm嵌入式_使用系统总线测量和改善嵌入式系统的性能

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2020-7-26 21:59:02 | 显示全部楼层 |阅读模式
学arm嵌入式_使用系统总线测量和改善嵌入式系统的性能,   

  了解系统总线的活动情况可帮助开发工程师显著改善嵌入式应用的性能。过去,由于嵌入式处理器缺乏复杂的软硬件结合特性,因此监测系统总线的活动情况是一项挑战性难题。在系统级了解应用程序的行为对于有效利用系统资源非常关键,这些资源包括外部存储器、DMA控制器、仲裁、系统总线互连等。

  Blackfin BF54x系列处理器提供性能计数器(指标寄存器),可帮助应用开发工程师在系统级别了解应用程序的行为。在掌握应用程序行为后,开发工程师可使用一些系统优化技术来提高性能和降低功耗。

  在本文中,将介绍性能指标寄存器的各种配置,并提供在Blackfin处理器上利用它们的软硬件接口实例。此外,还针对一些典型的应用情形给出了提高性能的方法。

  指标寄存器的定义

  在典型的实际应用中有多种资源,如内核处理器、外设DMA,以及可同时访问外部存储器和几个系统总线的MDMA(存储器到存储器的DMA)。性能指标寄存器提供了一种捕捉外部存储器组访问数、页错失数、总线流量数和总线转向数的方式,有效地利用从这些寄存器获得的数据可显著提高系统的资源利用率。

  表1是Blackfin BF54x系列处理器提供的指标寄存器及其简要说明。

    

  我们可以使用存储器组读/写寄存器、组激活计数寄存器和总线转向寄存器来改善应用程序的代码和数据外部存储器布局。授权计数寄存器(EBIU_DDRGCx)可帮助合理定义系统仲裁策略,还能实现高的系统吞吐率。

  我们可以利用代码和数据项映射到外部存储器的时间区间和空间位置来减少外部存储器的延迟。在通常情况下,要捕捉应用程序的空间位置和时间区间,需要记录在程序执行期间的代码和数据对象的踪迹。然而,对于一些简单的应用程序来说,利用指标寄存器的关键数据就可以揭示外部存储器中的不良映射代码和数据项。

  下面探讨一些应用情形,以及利用从这些指标寄存器得到的信息进行优化的一些简单技术。

  示例的使用

  下面将介绍如何分析和解读从指标寄存器获得的信息,并在此基础上讨论如何运用简单的优化技术来提高应用的性能。

  1 示例1

  在这个示例中,多个数据缓存映射到外部存储器,并使用存储器DMA通道把一组缓存的内容复制到另一组缓存。本实验中共有4个缓存,规模均为32KB。所有缓存均映射到DDR的Bank0并从地址0&TImes;0开始连续放置。图1显示了映射到外部存储器的四个缓存的默认布局。在这个例子中,两个存储器DMA通道采用自动缓冲模式不间断地把两个缓存的内容传送到另外两个缓存。下面介绍一个三步过程,利用从指标寄存器获得的信息并相应地使用一些系统优化技术,该过程可把性能提高到原系统的1.5倍。

    

  图1 未优化时的指标寄存器数据

  第1步 基本系统性能

  我们使用系统的平均吞吐率来量化系统的性能。平均吞吐率按下式计算:

  平均吞吐率=“读出和写入DDR存储器的数据字节总数”/秒

  系统总线活动的时间区间使用内核计时器来设置。通过设置,该定时器在到达实验设定的时间区间时产生一个中断。该计时器在存储器DMA通道开始启用之前启动,然后,在内核计时器ISR中禁用存储器DMA通道。传输的数据量用相应的计数器在DMA通道的中断服务程序中进行测量。每次缓存传输产生一个中断,DMA ISR每调用一次则计数器加1。由于所有的存储器DMA通道均运行在自动缓冲模式,在最终计算吞吐率时,通道中断延时不需计算在内。对于这个测量,定时器中断延时由于数值很小不计算在内。

  表2显示了该系统的基准性能。从该表可以看出,即使是这样一个简单的系统,我们也只利用了可用总带宽的一小部分。指标寄存器使我们可以看到系统总线的活动情况,并帮助我们明白性能较低的原因。基于这些信息,我们将能够应用某些优化技术来提高性能。

  
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表