收藏 分销(赏)

嵌入式系统性能瓶颈分析工具的设计与应用_张元胤名.pdf

上传人:自信****多点 文档编号:455751 上传时间:2023-10-11 格式:PDF 页数:4 大小:1.19MB
下载 相关 举报
嵌入式系统性能瓶颈分析工具的设计与应用_张元胤名.pdf_第1页
第1页 / 共4页
嵌入式系统性能瓶颈分析工具的设计与应用_张元胤名.pdf_第2页
第2页 / 共4页
嵌入式系统性能瓶颈分析工具的设计与应用_张元胤名.pdf_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 敬请登录网站在线投稿(t o u g a o.m e s n e t.c o m.c n)2 0 2 3年第4期 7 3 嵌入式系统性能瓶颈分析工具的设计与应用张元胤名(中国电子科技集团公司第三十二研究所,上海 2 0 1 8 0 0)摘要:本文研究对龙芯3 A 3 0 0 0处理器硬件拓扑信息的获取以及对性能管理单元PMU的访问。通过指定事件类型获取PMU中相关事件的发生次数来分析嵌入式应用性能瓶颈产生的原因。通过E c l i p s e插件技术使性能瓶颈分析工具以插件的方式集成到E c l i p s e开发环境上,为程序员提供图形用户界面,使程序员能够更直观地获取相关信息,方便其在开

2、发过程中及时发现程序中的性能瓶颈并进行定位。关键词:龙芯3 A 3 0 0 0;性能管理单元;性能瓶颈分析中图分类号:T P 3 1 文献标识码:AD e s i g n a n d A p p l i c a t i o n o f E m b e d d e d S y s t e m P e r f o r m a n c e B o t t l e n e c k A n a l y s i s T o o lZ h a n g Y u a n y i n m i n g(C h i n a E l e c t r o n i c s T e c h n o l o g y G r o

3、 u p C o r p o r a t i o n N o.3 2 R e s e a r c h I n s t i t u t e,S h a n g h a i 2 0 1 8 0 0,C h i n a)A b s t r a c t:T h e r e s e a r c h c o n t e n t o f t h i s p a p e r i s m a i n l y t o o b t a i n h a r d w a r e t o p o l o g y i n f o r m a t i o n o f L S 3 A 3 0 0 0 p r o c e s s

4、 o r a n d a c c e s s t o t h e p e r f o r m a n c e m a n a g e m e n t u n i t.B y s p e c i f y i n g t h e e v e n t t y p e,t h e n u m b e r o f r e l a t e d e v e n t s i n t h e PMU i s o b t a i n e d t o a n a l y z e t h e c a u s e o f p e r f o r m a n c e b o t t l e n e c k s.T h e

5、 p e r f o r m a n c e b o t t l e n e c k a n a l y s i s t o o l i s i n t e g r a t e d i n t o t h e E c l i p s e d e v e l o p m e n t e n v i r o n m e n t a s a p l u g-i n t h r o u g h E c l i p s e p l u g-i n t e c h n o l o g y,p r o v i d i n g a g r a p h i c a l u s e r i n t e r f a

6、 c e f o r p r o g r a mm e r s,e n a b l e s p r o g r a mm e r s t o o b t a i n r e l e v a n t i n f o r-m a t i o n m o r e i n t u i t i v e l y,s o t h a t t h e y c a n f i n d p e r f o r m a n c e b o t t l e n e c k s i n t h e p r o g r a m i n t i m e a n d l o c a t e t h e m d u r i n

7、 g t h e d e v e l o p m e n t p r o c e s s.K e y w o r d s:L S 3 A 3 0 0 0;p e r f o r m a n c e m a n a g e m e n t u n i t;p e r f o r m a n c e b o t t l e n e c k a n a l y s i s0 引 言对于应用程序来说,算法的复杂度决定了它的性能,因此,若希望软件运行得更加流畅,最根本、最直接的方式是改变其算法1。本文将处理器体系结构和应用程序特征结合起来分析,可以及时发现应用程序在指定处理器上的性能瓶颈。这是一个循环往

8、复的过程,在嵌入式开发中更是如此,程序员需要一个可以实时监测嵌入式系统的性能信息的工具,以便及时解决潜在性能问题。龙芯3 A 3 0 0 0(L S 3 A 3 0 0 0 H)是由龙芯中科技术股份有限公司研发设计的面向个人计算机、服务器等信息化领域的通用处理器。本文在龙芯3 A 3 0 0 0平台上设计并实现了一套面向R e w o r k s应用的性能瓶颈分析工具来解决以上问题。1 相关工作现有的性能分析技术主要分为以下两种:插桩方法和采样方法。接下来我们将探讨这两种分析技术的优缺点和适用的场景。插桩方法是一种常见的测试程序性能、检测错误、获取程序执行信息的技术2。插桩方法的原理如下:在保

9、证被测程序原有逻辑完整性的基础上,在程序中插入一些探针(p r o b e)(即添加一些代码)获得程序的控制流和数据流信息。插桩主要有两种方式:静态插桩和动态插桩。静态插桩在源程序代码编译之前对源代码进行插桩操作,比如在源代码的每一个函数入口或者出口进行探针插入,这样当程序运行起来时,就可以得到应用程序各个函数的运行时间、调用次数、调用关系等相关信息。静态插桩的优点是实现较为简单,且相对于动态插桩来说,对程序的性能影响相对较小。不过,缺点也比较明显,每一次插桩都要重新编译源代码,会造成额外的开销。动态插桩是指在程序运行时进行插桩,不同于静态插桩,动态插桩需要在编译或者链接程序前对程序插入探针,

10、插桩的动作是在程序运行中同时实现。动态插桩的实现较为复杂,需要调试器支持断点调试,而调试功能的使7 4 M i c r o c o n t r o l l e r s&E m b e d d e d S y s t e m s 2 0 2 3年第4期w w w.m e s n e t.c o m.c n 用同样可能会造成性能瓶颈。采样法也是常见的性能分析方法,主要有基于事件的采样和基于时间的采样两种采样方式。基于时间的采样主要支持那些没有性能计数器的处理器,它借助于操作系统的中断机制,每个时钟中断都会记录一次。相比于基于事件的采样,基于时间的采样所支持的采样时间相对较短。由于要借助操作系统时钟

11、中断,对禁用中断的代码不能进行分析。随着电子工业的发展,现在的中央处理器都集成了性能计数器(P e r f o r m a n c e M o n i t o r C o u n t e r,PMC),用于记录计算机系统所发生的硬件事件(如c a c h e未命中数、分支预测失败数等)。通过系统调用访问性能计数器,就能得到相关的性能信息。龙芯3 A 3 0 0 0处理器同样也集成了性能计数器,所以本文采用基于PMU的性能时间采样方法来实现。2 基于P M U的性能瓶颈分析工具在龙芯3 A 3 0 0 0处理器上的实现2.1 总体结构基于国产嵌入式系统的性能瓶颈分析工具主要由以下两部分组成:一部

12、分在搭载麒麟操作系统的宿主机上实现,通过E c l i p s e插件技术将性能瓶颈分析工具集成到嵌入式集成开发环境中,实现了与目标机通信进行参数传递,控制目标机性能数据采集引擎,以及接收目标机采集到的性能数据并进行解析展示等功能。另一部分在目标机上实现,主要功能模块有基于PMU的性能数据采样引擎模块和通信模块。其总体结构图如图1所示。图1 性能瓶颈分析工具结构图性能瓶颈分析工具的通信模块基于风河公司的开源统一交互框架(T a r g e t C o mm u n i c a t i o n F r a m e w o r k,T C F)设计,是一种轻量级、可扩展的通用通信框架,应用在嵌入式

13、开 发 中。T C F基 于T C P,传 输J S ON格 式 的 报 文。J S ON报文中只能容纳A S C I I字符,字节流要通过B a s e 6 4编码后才能传输。其示意图如图2所示。性能瓶颈分析工具的通信模块由两部分组成:第一部图2 目标通信框架结构示意图分在宿主机中,下发参数到目标机,接收从目标机采样引擎采样的数据;第二部分在目标机中,接收宿主机下发的采样参数并上传。2.2 性能瓶颈分析工具的采样模块2.2.1 采样引擎的启动龙芯3 A 3 0 0 0处理器由4个G S 4 6 4 E高性能处理器核组成,每个G S 4 6 4 E处 理 器 核 实 现 了2 8组 性 能 计

14、 数 器(H P C s),分配到7个模块上4,它的性能分析功能主要通过硬件集成的性能计数器来完成,用于统计处理器内部某些事件的发生次数。特别是可以分析程序代码在与处理器微结构交互影响过程中所体现的性能瓶颈,主要包括c a c h e不命中次数、T L B r e f i l l例外次数和分支预测出错次数等。由于龙芯3 A 3 0 0 0是多核平台,因此在采集前用户需要指定采集性能数据的C P U序号,然后将指定采样频率和P MU采样事件通过宿主机的控制按钮将参数下发到目标机,控制目标机采样引擎开始工作,其实现函数如下:v o i d p a O n(i n t p o l l D e l a

15、 y)u s e r I n i t P m u E v e n t();/初始化p m u事件 e n a b l e P m u E v e n t(i n t e v e n t I d);/使能p m u事件 目标机采样引擎在收到来自宿主机传来的采样周期和选定的PMU事件后,通过初始化PMU事件函数和使能PMU事件函数开启采样。采样的数据类型包括c a c h e不命中数、分支预测失败次数和T L B r e f i l l例外次数,通过以上3种事件帮助用户查找系统中可能发生性能瓶颈的原因。以上3种事件在龙芯G S 4 6 4 E处理器核中定义的事件号如表1所列。表1 处理器性能计数器

16、事件定义事件号事件描述所属模块1 4 6T L B r e f i l l例外次数ROQ模块1 5 6b r q提交的预测错的分支指令ROQ模块3 9 8c a c h e数据失效次数C A C HE 2 MEM模块 敬请登录网站在线投稿(t o u g a o.m e s n e t.c o m.c n)2 0 2 3年第4期 7 5 通过c o n v e r t P m u E v e n t T y p e()函数将宿主机下发的参数进行转换,之所以不在宿主机上直接下发对应参数,是考虑到在以后的开发中,宿主机端的嵌入式集成开发可能不仅仅集成一套工具链,这样可以方便日后的拓展。2.2.2

17、性能数据的采样过程基于PMU的性能事件采样方法以一定的采样频率对指定的PMU事件进行采集,用户所设定的采样事件不同,得到的采样结果也不同,其采样的数据结构体如下:t y p e d e f s t r u c t u n s i g n e d i n t p h i s i c a l I d x;/*p m u分配的c o u n t e r寄存器I D*/E V E N T_U P D A T E_T Y P E u p d a t e;/*更新标志*/u n s i g n e d i n t l a s t C o u n t;/*次计数器采样值*/u n s i g n e d i

18、 n t c o u n t;/*计数器采样值*/S a m p l e B u f f e r S t a t e b u f f e r S t a t e;/*缓冲区读写状态*/P e r f o r m a n c e S a m p l e D a t a L i s t p e v e n t S a m p l e L i s tS W A P B U F F E R N R;/*采样链表*/S y mH i s t L i s t p e v e n t S y mH i t L i s t;/*符号采样统计值*/P m u E v e n t P e r C P U C o

19、n f i g;基于PMU的性能事件采样流程如图3所示。图3 基于P M U的事件采样数据收集流程第一步,加载性能事件采样引擎,将PMU计数器溢出中断设置为不可屏蔽中断。第二步,对PMU进行初始化,通过龙芯PMC的控制寄存器设置PMU的采样事件和采样频率等。第三步,激活PMC的计数寄存器,使其开始计数,若发生PMC控制器所设置的性能事件,PMC计数器加1。第四步,当计数寄存器产生溢出中断时,重新开始计数,同时将计数器数值记录到l a s t C o u n t,然后重置计数器,转移到第三步。第四步,PMC计数器由于计数器溢出触发了中断,此时性能信息采样引擎将数据存储到一个缓冲区a中,同时每隔一

20、段时间通过操作系统的内核守护线程将缓冲区a中的数据导入缓冲区b,当缓冲区b中数据满时,便将数据导出,并通过嵌入式集成开发环境呈现给用户。2.2.3 G U I展示模块性能瓶颈分析工具设计的初衷是帮助程序开发者及时发现软件中的性能瓶颈,从而提高软件的质量。因此,将工具的显示模块以E c l i p s e插件方式集成到嵌入式集成开发环境中。这样,在开发过程中程序员就能及时修改源代码,便于开发。性能瓶 颈 工 具 的 图 形 化 展 示 采 用S WT(S t a n d a r d W i d g e t T o o l k i t,标准化图形工具箱,是利用J a v a语言研发的一种开发GU

21、I程序的技术)。由于性能瓶颈工具在宿主机上的开发系统是国产的麒麟操作系统,非常适合采用S WT开发图形化界面。此外,J F r a c e作为基于S WT的工具箱,提供了如“对话框”、“创建向导(W i z a r d)”等常见功能的实现框架,而性能瓶颈工具在使用前需要配置相关的参数,方便界面开发。J F r a c e通过操作(A c t i o n)机制和视图(V i e w e r)机制方便操控数据,整理从目标机传来的性能分析数据,还提供了如表格(T a b l e)和树(T r e e)相对应的包装,方便性能数据信息的展示。3 测试验证本文测试环境配置如下:宿主机配置麒麟操作系统,内存

22、为1 6 G B,目标机操作系统为R e w o r k s嵌入式操作系统,嵌入式性能瓶颈分析工具量级较小,无需过多进行逻辑测试,但是对功能要求则很高,因为若功能无法实现,则不能投入使用,不能达到测试目的,所以本文采用黑盒测试方法为主、白盒测试为辅完成整个测试环节,分别从工具配置、工具结束开始和工具运行开始测试。在工具配置阶段,先设置工具采样周期、事件类型和指定的C P U。在测试中,由于篇幅有限,设定采样周期为5 0、采样事件为c a c h e未命中数,C P U默认全选。配置界面如图4所示。图4 性能瓶颈分析工具配置界面7 6 M i c r o c o n t r o l l e r

23、s&E m b e d d e d S y s t e m s 2 0 2 3年第4期w w w.m e s n e t.c o m.c n 同时目标机收到配置信息如图5所示。图5 目标机采样工具初始化开始采样后,位于宿主机的GU I界面显示数据如图6所示。图6 位于宿主机的G U I界面显示结束采样后,退出性能瓶颈分析工具,同时在目标机上打印出退出提示,如图7所示。经验证,基于龙芯平台嵌入式系统的性能瓶颈分析工具可以监测嵌入式系统中的性能事件,并进行性能瓶颈分析,具有较强的工程应用性。图7 性能瓶颈分析工具终止服务4 结 语本文在龙芯3 A 3 0 0 0平台上开发基于P MU事件采样的性能

24、瓶颈分析工具,通过c a c h e未命中数、分支预测失败次数、T L B r e f i l l例外次数来定义性能瓶颈,并将其集成到嵌入式集成开发环境中,具有一定的可用性,使程序员可以及时发现瓶颈,提高嵌入式应用开发效率。不过,嵌入式系统产生性能瓶颈的原因远远不止以上3种,今后性能瓶颈分析工具的主要工作是完善其功能,如通过增添静态插桩或者动态插桩的功能来发现函数之间的调用关系。嵌入式开发中往往涉及多个平台,不仅限于一种嵌入式系统,本文所涉及到的性能瓶颈方法可以适配多种嵌入式系统。参考文献1 彭林,方建滨,杜琦,等.飞腾1 5 0 0 A处理器性能分析工具L i k w i d研究J.计算机工

25、程与科学,2 0 1 8,4 0(7):8.2 H u a n g J C.P r o g r a m I n s t r u m e n t a t i o n a n d S o f t w a r e T e s t i n gJ.C o m p u t e r,1 9 7 8,1 1(4):2 5 3 2.3 闫洁.多核平台上的并行程序性能调优技术与工具D.合肥:中国科学技术大学,2 0 1 0.4 龙芯3 A 3 0 0 0 3 B 3 0 0 0处理器用户手册,2 0 2 2.通信作者:张元胤名,1 2 4 0 2 9 3 7 7 7q q.c o m。(责任编辑:薛士然 收稿日期

26、:2 0 2 2-1 2-1 3)6 5 1 0 王明,严飞.局部距离优化的点云配准算法J.激光杂志,2 0 2 3(2):1 7.1 1 苏宇,刘海燕,李国勇.一种结合随机采样一致性与主成分分析的点云配准方法J.广西科技大学学报,2 0 2 2,3 3(4):7 0 7 7.1 2 史丰博,曹琴,魏军.基于特征点的曲面点云配准方法J.北京测绘,2 0 2 2,3 6(1 0):1 3 4 5 1 3 4 9.1 3 刘今越,张港,贾晓辉,等.基于曲率阈值的点云配准方法研究J.激光与光电子学进展,2 0 2 2,5 9(1 8):4 6 6 4 7 2.1 4 曾伟,杨涛,喻翌.结合改进F P

27、 F H的S u p e r 4 P C S点云配准方法J.现代雷达,2 0 2 3(2):1 8.1 5 岳晓峰,刘泽园,朱娟,等.基于局部点对特征与I C P的粗 精点云配准算法J.长春工业大学学报,2 0 2 2,4 3(Z 1):3 0 6 3 1 4.1 6 宁悦.三维点云配准方法研究J.测绘与空间地理信息,2 0 2 2,4 5(7):1 8 8 1 9 1.1 7 冯田,冯志辉,南亚明,等.基于特征向量提取的点云配准算法J.电子测量技术,2 0 2 2,4 5(1 5):5 7 6 2.1 8 杨宝金.点云配准算法及其在工件位姿估计中的研究与应用D.长春:长春工业大学,2 0 2

28、 2.1 9 卢月妮.基于几何特征的三维点云配准算法研究D.桂林:广西师范大学,2 0 2 2.2 0 F u K e x u e,L u o J i a z h e n g,L u o X i a o y u a n,e t a l.R o b u s t P o i n t C l o u d R e g i s t r a t i o n F r a m e w o r k B a s e d o n D e e p G r a p h M a t c-h i n gJ.I E E E t r a n s a c t i o n s o n p a t t e r n a n a l y s i s a n d m a c h i n e i n t e l l i g e n c e,2 0 2 2.2 1 杨飚,李三宝,王力.基于正态分布变换与迭代最近点的快速点云配准算法J.科学技术与工程,2 0 1 7,1 7(1 5):9 1 9 5.单彦虎(讲师),主要研究方向为动态测试技术、机器视觉;张潇丹(硕士研究生),主要研究方向为机器视觉;储成群(讲师),主要研究方向为恶劣环境下动态存储测试、机器视觉。通信作者:单彦虎,s h-a n y a n h u n u c.e d u.c n。(责任编辑:薛士然 收稿日期:2 0 2 2-1 2-0 5)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服