The Software Complexity Estimation Method in Algorithm Level by Analysis of Source code

소스코드의 분석을 통한 알고리즘 레벨에서의 소프트웨어 복잡도 측정 방법

  • Received : 2009.11.30
  • Published : 2010.09.25

Abstract

A program consumes energy by executing its instructions. The amount of cosumed power is mainly proportional to algorithm complexity and it can be calculated by using complexity information. Generally, the complexity of a S/W is estimated by the microprocessor simulator. But, the simulation takes long time why the simulator is a software modeled the hardware and it only provides the information about computational complexity quantitatively. In this paper, we propose a complexity estimation method of analysis of S/W on source code level and produce the complexity metric mathematically. The function-wise complexity metrics give the detailed information about the calculation-concentrated location in function. The performance of the proposed method is compared with the result of the gate-level microprocessor simulator 'SimpleScalar'. The used softwares for performance test are $4{\times}4$ integer transform, intra-prediction and motion estimation in the latest video codec, H.264/AVC. The number of executed instructions are used to estimate quantitatively and it appears about 11.6%, 9.6% and 3.5% of error respectively in contradistinction to the result of SimpleScalar.

프로그램은 실행파일 내의 각 명령어를 수행함으로써 전력을 소비한다. 소비 전력은 복잡도와 비례하기 때문에 프로그램의 복잡도를 측정함으로써 예측될 수 있다. 일반적으로 소프트웨어의 복잡도는 마이크로프로세서 시뮬레이터를 사용하여 측정한다. 그러나 시뮬레이터를 사용한 복잡도 측정방법은 하드웨어를 트랜지스터 레벨과 같은 낮은 레벨에서 모델링하기 때문에 수행시간이 오래 걸리고, 단순히 정량적 측정치만을 제공한다. 본 논문에서는 소프트웨어의 최상위 레벨인 프로그램의 소스코드를 분석하고, 복잡도 매트릭을 생성하여 프로그램 전체에 대한 복잡도를 수식화하여 표현하는 방법을 제안한다. 또한 복잡도 매트릭을 함수 단위로 생성함으로써 연산이 집중되는 모듈에 대한 세분화된 정보를 제공할 수 있다. 제안한 알고리즘의 성능분석은 게이트 레벨 마이크로프로세서 시뮬레이터인 SimpleScalar와의 비교를 통해서 수행하였다. 분석을 위해 사용된 소프트웨어는 최신 비디오코덱인 H.264/AVC에서 사용되는 $4{\times}4$ 정수변환, 화면 내 예측, 화면 간 예측 모듈이다. 각각의 소프트웨어에 대하여 정량적으로 측정된 성능 분석을 위하여 입력된 각 모듈에 대한 실행 명령어의 수를 비교하였으며, 정확도는 SimpleScalar를 통하여 측정된 시뮬레이션 결과 대비 약 11.6%, 9.6%, 3.5%의 오차를 보였다.

Keywords

References

  1. Coleman D. Bagwell, Emil Jovanov, Jeffery H. Kulick, "A Dynamic Power Profiling of Embedded Computer Systems" IEEE System Theory, 2002. Proceedings of the Thirty-Fourth Southeastern Symposium, pp. 15-19, Huntsville, Alabama, March 2002.
  2. Chun-Hao Hsu, Jian Jhen Chen, Shiao-Li Tsao, "Evaluation and modeling of power consumption of a heterogeneous dual-core processor", IEEE Transactions on Volume 24, Issue 7, Computer-Aided Design of Integrated Circuits and Systems, pp. 1030 - 1041, Hsinchu, Taiwan, July 2005.
  3. Yu Hu, Qing Li, C.-C. Jay Kuo, "Run-time Modeling and Estimation of Multimedia System Power Consumption", 11th IEEE International Conference, Embedded and Real-Time Computing Systems and Applications, pp.353-356, 17-19, Hong Kong, China, Aug. 2005.
  4. D. Burger, T. Austin, "The simplescalar tool set version 2.0", Technical Report 1342, Computer Sciences Department, University of Wisconsin, Madison, WI, June 1997.
  5. Toshinori SATO, Yukio OOTAGURO, Masato NAGAMATSU, Haruyuki TAGO, "Evaluation of Architecture-level Power Estimation for CMOS RISC Processors", Low Power Electronics, IEEE Symposium, pp. 44 - 45, San Jose, CA, 9-11 Oct. 1995.
  6. Vivek Tiwari, Sharad Malik, Andrew Wolfe, "Power analysis of embedded software: a first step towards software power minimization", IEEE Trans. Very Large Scale Integration (VLSI) Systems, Vol. 2, no. 4, pp. 437-445, December 1994. https://doi.org/10.1109/92.335012
  7. Vivek Tiwari, Sharad Malik, Andrew Wolfe, "Instruction level power analysis and optimization of software", IEEE VLSI Design, 1996. Proceedings., Ninth International Conference, pp. :326 - 328, Bangalore, India, Jan. 1996.
  8. Chi-ying Tsui; Marculescu, R.; Marculescu, D.; Pedram, M., "Improving the efficiency of power simulators by input vector compaction", 33rd IEEE Design Automation Conference, pp. 165-168, Las Vegas, NV, 3-7 June 1996.
  9. Diana Marculescu, Radu Marculescu, Massoud Pedram, "Stochastic Sequential Machine Synthesis Targeting Constrained Sequence Generation", the 33rd annual Design Automation Conference, pp. 696-701, Las Vegas, Nevada, United States, January, 1996.