ARM程序执行周期估计的基于模拟的非线性方法
Simulation-Based Non-Linear Methods for the Estimation of Execution Cycles of ARM Programs
-
摘要: 为了快速而准确地估计ARM处理器上的程序执行时间,研究了基于模拟的非线性程序执行时间估计器的结构.它由程序功能剖面生成模块和程序执行时间预测模块串联而成.程序功能剖面生成模块直接用精确指令模拟器Sim-profile实现;而基于程序执行中的动态指令数与执行时间在处理器上的非线性关系,对于程序执行时间预测模块的实现,首先设计了一种人工神经网络方案,再根据对人工神经网络局限性的判断,如局部最优问题、不适于解决小样本的回归、网络拓扑结构依赖先验知识等缺点,又提出了基于最小二乘支持向量机的方法.实验证明,这些非线性方法,特别是基于最小二乘支持向量机的方法,可以用较低的模拟代价获得较高的程序执行时间估计精度.Abstract: In order to accurately estimate execution cycles of programs running on ARM architectures as soon as possible, a simulation-based non-linear estimator is proposed. The estimator consists of two cascade modules: profiling program function module and program execution time prediction module. The module of profiling program function can be directly implemented by Sim-profile, an instruction-accurate simulator. According to the non-linear behavior of the program execution time in advanced processors and the dynamic instruction counts during program executions, the program execution time prediction module is implemented by an artificial neural network (ANN). However, besides the problem of local minimization, ANN is not suited to solve small-sample set regression. It depends on the priori knowledge of designers, which could determine the topology of the model and finally impact its performance. In order to conquer the limitations of ANN, a non-linear method based on the least squares support vector machine (LS-SVM) is further proposed to map the number of executed instructions into execution cycle counts. Experimental results show that simulation-based non-linear estimators implemented with the two non-linear methods, especially the LS-SVM based method, can achieve higher precision of estimating program execution cycles at lower simulation cost.