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

发布者:limm20032003最新更新时间:2012-09-26 来源: 21ic 关键字:系统总线测量  嵌入式系统  总线授权 手机看文章 扫描二维码
随时随地手机看文章

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

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

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

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

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

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

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

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

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

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

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

第1步  基本系统性能
我们使用系统的平均吞吐率来量化系统的性能。平均吞吐率按下式计算:
平均吞吐率=“读出和写入DDR存储器的数据字节总数”/秒
系统总线活动的时间区间使用内核计时器来设置。通过设置,该定时器在到达实验设定的时间区间时产生一个中断。该计时器在存储器DMA通道开始启用之前启动,然后,在内核计时器ISR中禁用存储器DMA通道。传输的数据量用相应的计数器在DMA通道的中断服务程序中进行测量。每次缓存传输产生一个中断,DMA ISR每调用一次则计数器加1。由于所有的存储器DMA通道均运行在自动缓冲模式,在最终计算吞吐率时,通道中断延时不需计算在内。对于这个测量,定时器中断延时由于数值很小不计算在内。[page]

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

第2步   使用指标寄存器
对于这些情况,外部存储器延迟通常是吞吐率低的原因。我们将首先考察DDR读/写访问总数和离页DDR访问总数。

从图1可以看出,计数寄存器的读取和写入访问表明,访问只针对一个组(组0),页激活数占访问总数的25%。这意味着,由于缓存影射到组0的不同页,DMA访问在同一组中的空间位置很小。由于源缓存和目标缓存在不同的页上,每次DMA访问均存在一次离页访问。

第3步   提高性能
把缓存放在不同的DDR组中可减少离页访问。如果把缓存放在不同的组中,则仅当某个通道穿越页边界时才会发生离页访问。Blackfin BF54x的DDR控制器支持最多同时打开8个内部DDR组,因此可以把四个缓存分别映射到不同的组。

2  示例2
在上面的例1中,只有很少的资源(两个MDMA通道)访问单个DDR存储器组,系统行为在一段时间内不变。因此,可通过提取指标寄存器的快照来理解系统总线的活动并捕捉空间位置。在更为实际的系统中,可能有多个资源(内核、多个DMA通道)访问多个DDR存储器组和系统总线,致使在较小的时间区间内DDR数据访问模式迅速变化。在这些情况下,难以仅仅利用指标寄存器的一个快照来捕捉空间位置和系统行为。因此,必须捕捉在应用执行过程中在多个点的总线活动情况来探索空间位置。

为了说明这一点,考虑这样一个情况,总线在时间区间T的活动表明,对所有组的访问是均衡的,但离页访问比例较高,但在较小时间区间(T1、T2,其中T1+T2=T)中记录的总线活动表明对各组的访问是不均衡的,见图2。如果缓存布局可对时间区间T1和T2分别进行优化,则有可能显著改善系统性能。

图2 在时间区间T、T1和 T2的系统总线活动(T > T1+T2)


困难在于如何找到对系统资源的访问方式始终如一,进而可使用一组相同优化技术的时间区间。这可能需要对应用程序进行多次迭代分析。

定期捕捉指标寄存器数据的实验装置
在本节中,介绍定期记录指标寄存器数据的实验装置。如图3所示,一台PC用作主机,通过利用JTAG接口进行通信的后台遥测通道(BTC)收集来自Blackfin的数据。数据记录程序运行在PC上,并定期向Blackfin处理器发送BTC指令。作为回应,Blackfin处理器把指标寄存器的快照发送给主机。

图3  定期捕捉指标寄存器数据的实验装置


Blackfin处理器使用一个通用定时器定期地产生中断。在定时器发出中断时,指标寄存器的内容被读出并存储在存储器中。在主机发出请求时,存储的指标寄存器数据通过BTC通道发送到PC。BTC通道支持数据传输速率高达3Mbps。


Now consider an example program where multiple buffers are mapped in the DDR memory and memory DMA's are used to transfers data between these buffers.现在考虑一个示例程序,该程序有多个缓存影射到DDR存储器中,并使用存储器的DMA在这些缓存之间传输数据。

图4 在外部DDR存储器中多组数据传输的例子


在这个例子中,MDMA0从srcBuffer0向dstBuffer0传输4KB的数据,MDMA1从 srcBuffer01向dstBuffer1传输4KB的数据。最开始只启动MDMA0,在MDMA0数据传输完成后,MDMA1通道启用,反之亦然,这种方式导致在各个时间区间存储器组访问数发生变化。在这个例子中,指标寄存器一个快照显示了下面情况(见图5)。从这个数字无法看出哪个存储器组引起页错失,以及哪个数据流通道应对产生页错失负责。周期性地多次观测指标寄存器可帮助我们找到带宽利用率低的原因。[page]

图5  例2指标寄存器数据的一个快照

我们将利用上述实验装置来记录指标寄存器数据。可使用在PC上获得的指标寄存器数据来绘制在页错失和存储器组访问之间的相关图,采用MATLAB等数学工具箱来分析该数据。从该图可以看出,大多数页错失是由存储器组0访问引起的。

图6  页错失和DDR Bankx访问之间的相关性

图7  存储器组访问与页错失

图8  例2未经优化的布局

图9  缓存布局优化

利用连接程序描述文件(ldf)或使用Blackfin处理器存储器窗口,可以确定哪些缓存影射到这些组,并把它们重新分别映射到其他组,从而减少页错失。

总线授权计数寄存器
总线授权计数寄存器(EBIU_DDRGCx)可帮助我们了解各个系统总线(EAB和DEBx总线)的资源利用率。实际上,这将有助于确定总线仲裁策略并确保实现高效的DMA和外部存储器资源共享。

Blackfin BF54x系列处理器对外部总线提供可编程优先级设置功能。另外,该系列处理器还把几个外设DMA和存储器DMA映射到多个DMA控制器上,为实现高效资源管理提供了额外的灵活性。

考虑一个从照相机获得视频数据的例子,压缩算法运行在Blackfin上,经压缩的视频数据通过USB总线从Blackfin发送给PC。观测结果表明USB吞吐率相当低,无法实时传输压缩的视频数据。可能的原因之一是USB总线由于系统中存在其他高优先级任务被挂起。对于这种情况,我们可以使用授权计数寄存器快速地进行验证。同上,我们观测指标寄存器在一段时间区间内的数据。在几个时间区间内指标寄存器的数据揭示出DEB2总线(USB总线)在与EAB总线(内核总线)竞争,因而限制了USB对DDR存储器的访问。

在默认情况下,内核拥有比USB接口更高的外部存储器访问优先权。对于当前的应用,USB总线的实时要求具有比内核更高的优先级。因此,我们必须使用其中的一个总线仲裁寄存器提高USB相对于内核的优先级,从而解决这个问题。

总线授权计数寄存器也可与存储器组访问寄存器配合使用,以了解在给定的时间区间内哪个总线最活跃,并找到页错失之间的关联和在给定时间区间的总线活动情况。存储器组访问计数、引起页错失的总线以及哪些资源在利用总线等信息可揭示出那些低效的代码或数据存储器布局。

关键字:系统总线测量  嵌入式系统  总线授权 引用地址:使用系统总线测量和改善嵌入式系统的性能

上一篇:基于PXI总线的瞄准设备检定系统
下一篇:基于CPCI总线的PowerPC主处理板设计

推荐阅读最新更新时间:2024-05-02 22:21

嵌入式系统的能耗动态管理方案
  一直以来,嵌入式处理器的低功耗是通过使用一些低功耗的空闲或睡眠模式来实现的。现在,嵌入式处理器要承担更复杂的工作,需要更高的性能。新的应用程序(如音频和视频播放以及游戏等)一般运行时间都相当长,“运行时间”与“空闲时间”之比也上升得很快。传统的电源管理技术在空闲时间中是非常有效的,但要在运行中节省电池能量就无能为力了。   此外,电源管理芯片制造商仅仅把注意力集中在供电的管理方面。情况一般是这样的,嵌入式处理器供应商给出输入/输出功率要求,功率半导体供应商则争相开发出尽可能高效的满足要求的 IC。然而,现在象开关稳压器这样的电源管理 IC 效率已经达到了 95% 的高峰。这迫使今天的电源 IC 供应商不仅要在价格上竞争
[电源管理]
<font color='red'>嵌入式系统</font>的能耗动态管理方案
基于ARM-μCLinux嵌入式系统启动引导的实现
32位ARM嵌入式处理器具有高性能、低轼耗的特性,已被广泛应用于消费电子产品、无线通信和网络通信等领域。ΜCLinux是专门为无MMU处理器设计的嵌入式操作系统,支持ARM、Motorola等微处理器。目前国内外采用ARM-μCLinux作为嵌入式系统非常普遍。而嵌入式系统的启动引导技术是嵌入式系统开发的一个难点。系统启动引导的成功与否决定了应用程序的运行环境是否能正确构建,即系统启动成功是应用正确运行的前提。 常用的嵌入式系统启动方法是先通过JTAG将嵌入式操作系统内核与进Flash,再由其带的引导程序bootloader完成嵌放式系统的启动引导工作。这种方法要借助昂贵的JTAG设备完成操作系统内核 的烧写工作,并且不能方便地
[单片机]
ARM嵌入式系统的异常及裸机开发设计
1、ARM的异常 异常在嵌入式开发中是很常见的事件,它也是非常重要的事件。简单来说,异常就是一种会打断程序正常执行的事件。异常通常又称为“中断”。 异常的种类大致可分为如下几种: 1、中断 IRQ / FIQ 由外部硬件触发的中断。 2、软中断 soft interrupt 由系统调用的中断事件,由软件产生的中断事件。 3、复位 Reset 4、未定义指令 5、数据异常 例如数据越界等。 中断: ARM 有两级外部中断:1、FIQ;2、IRQ。 但大多数的嵌入式系统都有多于两个的外部中断源,为了能正常响应所有的外部中断事件,就需要一个“中断控制器”。 嵌入式系统的中断响应架构大致如下图所示: 当在短时间内产生大量中断事件时
[单片机]
ARM<font color='red'>嵌入式系统</font>的异常及裸机开发设计
基于ARM的FPGA嵌入式系统实现
ARM(Advanced RISC Machines)既可以认为是一个公司。也可以认为是对一类微处理器的统称,还可以认为是一项技术。基于ARM技术的微处理器应用约占据了32位 RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到人们生活的各个方面 。到目前为止,ARM微处理器及技术已经广泛应用到各个领域,包括工业控制领域、网络应用、消费类电子产品、成像和安全产品等。 FPGA(Field Programmable Gate Array)是一种高密度现场可编程逻辑器件,其逻辑功能是通过把设计生成的数据文件配置到器件内部的静态配置数据存储器(SRAM)来实现的。FPGA具有可重复编程性,能灵活实现各种逻辑功能。 基于
[单片机]
基于ARM的FPGA<font color='red'>嵌入式系统</font>实现
DSP器件为核心的嵌入式系统技术
    摘要: 以DSP为信心的嵌入式系统具有实时性、利于并行处理等优点,这也是嵌入式系统中的重要技术。本文在讨论嵌入系统基本技术特征的基础上,比较详尽地介绍了DSP嵌入式系统的基本结构和技术特征,并对应用特性进行了讨论。     关键词: 嵌入式系统 DSP 嵌入式系统的目的是提供一个以多任务和网络为信心,易于开发的复杂数字系统。从数字技术和信息技术的角度看,嵌入式系统已成为现代信息网络技术应用的基础技术,已成为现代工控领域的基本技术。 使用嵌入式系统技术,不仅可以实现硬件和软件的优化集成,更主要的是提供了使用“数字基因技术”的基本工具。从计算机和信息网络技术发展的角度看,嵌入式系统标志着网络化计算机时
[应用]
嵌入式系统中实现对U盘的操作
摘要:主要介绍在嵌入式系统中利用SL811HS对U盘操作的实现方法;简要介绍USB设备中的海量存储类、SL811HS的芯片特点及FAT文件系统。 关键词:USB U盘 FAT SL811HS 引 言   USB(通用串行总线)用于将适用USB的外围设备(device)连接到主机(host),实现二者之间数据传输的外部总线结构;是一种快速、灵活的总线接口。它最大的特点是易于使用,主要是用在中速和低速的外设。   随着USB规范的完善和成熟,USB外设的种类不断丰富,应用领域也不断扩大。在传统的应用中,主要是PC扮演着主机的角色。根据USB的规范,可以看到在USB的拓朴结构中居于核心地位的是主机,每一次的数据传输都必须由主机发起
[嵌入式]
ARM7嵌入式系统在车辆调度系统设计中的应用
一、车辆调度系统的整体设计: 整个系统包括四个部分(1)通信主站;(2)车载从站;(3)通信链路。(4)系统监控部分。下面对各个部分的功能做一个简单的介绍。 (1)通信主站:完成信息的转发,它是连接系统监控部分和车载从站的纽带,它将从系统监控部分来的信息转发给车载从站。并且接收车载从站的信息,并将信息上传给系统监控部分。 (2)车载从站:被监控的对象,接收监控调度命令,并可以返回自己的状态信息。状态信息的取得是依靠在车载从站中的GPS接收机来完成车辆位置和速度信息等的采集工作。 (3)通信链路:完成通信主站和车载从站的信息传递及通信主站和系统监控部分的信息交互。其中前者在本次设计中是以GSM手机模块做为通信的工
[单片机]
ARM7<font color='red'>嵌入式系统</font>在车辆调度系统设计中的应用
军用嵌入式系统的可靠性设计
0 引言 目前用于机电一体化和工业自动控制的嵌入式系统,最早出现在20世纪60年代的武器控制系统之中,后来逐步用于军事指挥和通信。到了上世纪80年代,美军先进的武器系统基本都装备了嵌入式计算机。之后又经过几十年的发展,如今的嵌入式系统已广泛应用在各国军队的武器控制、指挥控制以及各种通信装备、野战指挥作战等专用设备上。 1 可靠性是军用嵌入式系统的重要因素 嵌入式系统往往工作环境恶劣、受电噪声干扰较大,而且随着软件越来越复杂,系统运行不稳定的现象愈来愈严重,因此,可靠性已经成为衡量嵌人式系统优劣的重要因素;军用嵌入式系统更应高度重视其可靠性设计、测试和评估技术,应把可靠性作为嵌入式系统最重要的指标优先考虑。这一方面是因为嵌入
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved