$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

소스코드의 분석을 통한 알고리즘 레벨에서의 소프트웨어 복잡도 측정 방법
The Software Complexity Estimation Method in Algorithm Level by Analysis of Source code 원문보기

電子工學會論文誌. Journal of the Institute of Electronics Engineers of Korea. SP, 신호처리, v.47 no.5=no.335, 2010년, pp.153 - 164  

임웅 (광운대학교 컴퓨터공학과) ,  남정학 (광운대학교 컴퓨터공학과) ,  심동규 (광운대학교 컴퓨터공학과) ,  조대성 (삼성전자(주)) ,  최웅일 (삼성전자(주))

초록
AI-Helper 아이콘AI-Helper

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

Abstract AI-Helper 아이콘AI-Helper

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 lon...

주제어

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 이러한 실행명령어의 수는 프로그램의 알고리즘 레벨 분석을 통해 계산될 수 있다. 본 논문에서 제안하는 방법은 소프트웨어의 소비전력 측정을 위하여 알고리즘 레벨에서 소프트웨어의 복잡도를 예측하는 것이다.
  • 이를 입력으로 분석하여 프로그램의 복잡도 매트릭을 생성한다. 논문에서는 ARM 명령어 아키텍쳐를 바탕으로 하여 구현 및 실험을 수행하였다. C/Assembly 혼합 코드를 파일로 저장하기 위해서 ARM gcc 크로스 컴파일러를 사용할 경우 다음의 옵션을 사용하여 컴파일하면 된다.
  • 이는 어셈블리 명령어를 실행시키는 것과 동일하기 때문에 어셈블리 코드를 분석함으로써 프로세서가 개발된 소프트웨어를 동작시키기 위해서 얼마나 많은 명령어를 실행시키는지를 알 수 있다. 논문에서는 C/Assembly 혼합 코드를 분석할 수 있는 프로그램을 작성하여 실험하였다. 이는 코드 내에 정해진 몇몇 규칙들을 찾아내어 파일을 분석하는 방법이므로, 기존의 시뮬레이터나 프로파일러와는 비교할 수 없을 정도로 빠른 분석이 가능하다.
  • 본 논문에서는 프로그램의 최적화 과정에 반드시 필요한 복잡도 분석을 위하여 알고리즘 레벨 복잡도 분석 방법을 제안하였다. 제안한 알고리즘은 C/Assembly 혼합 코드를 분석하여 각각의 명령어 블톡, 순환문, 분기 문에 대하여 B, N, P를 사용한 복잡도 매트릭을 생성함으로써 각 모듈별 복잡도를 쉽게 알 수 있도록 하였다.

가설 설정

  • 앞서 설명한 소스코드 분석방법을 사용하여 그림 13 의 예와 같은 매트릭을 생성할 수 있다. 이 매트릭의 각각의 명령어 블록에 포함되는 명령어의 종류와 실행 횟수는 입력된 C/Assembly 혼합 코드의 분석을 통해 정확하게 측정됐다고 가정하자. 이때 그림 13의 프로그램이 실행하는 명령어의 수를 얻기 위해서 Ni, N2, 日의 값을 알아야 한다.
본문요약 정보가 도움이 되었나요?

참고문헌 (9)

  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. 

  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. 

저자의 다른 논문 :

관련 콘텐츠

저작권 관리 안내
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로