微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 使用系统总线性能计数器来测量和改善嵌入式系统的

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

时间:06-01 来源:互联网 点击:

为了说明这一点,考虑这样一个情况,总线在时间区间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)。从这个数字无法看出哪个存储器组引起页错失,以及哪个数据流通道应对产生页错失负责。周期性地多次观测指标寄存器可帮助我们找到带宽利用率低的原因。

图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相对于内核的优先级,从而解决这个问题。

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top