초록
내장형 시스템에서 응용 프로그램을 구동시킬 때는 일련의 태스크들의 집합을 수행하여야 한다. 이러한 태스크들은 특정 하드웨어로 구현 될 수도 있고, 특정 프로세서에서 구동되는 소프트웨어로 구현될 수도 있다. 내장형 시스템에서 응용 프로그램을 구동시키기 위하여 하드웨어/소프트웨어의 자원 선택 및 작업 분할이 필요하게 되고 이때 하드웨어 및 소프트웨어의 성능 예측이 이용된다. 하드웨어 성능 예측과 달리 소프트웨어 성능 예측은 구동 환경과 밀접한 관계가 있으며, 하드웨어 소프트웨어 통합 설계를 위하여 최적 및 최악의 수행 시간 경계를 예측하는 것은 중요한 문제이다. 수행 시간 경계의 엄격한 예측은 저 비용의 프로세서를 사용할 수 있게 하며, 시스템 비용을 낮추는데 도움을 준다. 본 논문에서는 ARM용 내장형 시스템을 고려하여, loop문의 반복 횟수 경계 값과 프로그램의 추가적인 경로 호출 정보를 이용하여, 수행 시간의 경계를 최대한 실제 값에 접근하도록 예측하는 도구를 개발하였다. 개발된 도구는 현재 i960과 m68k 아키텍처를 지원하는 "Cinderella"라는 시간 분석 도구를 기본 도구로 활용하고 있다. ARM 프로세서를 지원하기 위하여 제어흐름과 디버깅 정보를 추출할 수 있는 ARM ELF 목적 파일 모듈을 추가하고, ARM 명령어 집합을 처리할 수 있는 모듈을 기존 도구에 추가하였다. 여러 가지 벤치마크 프로그램을 대상으로 실시한 실험 결과, 임의의 입력 데이타를 이용하고 수행 횟수를 고려한 ARMulator의 수행 시간이 구현된 도구에서의 정적인 수행 시간 예측 경계 값으로 들어오는 것을 확인할 수 있었다.
Embedded systems have a set of tasks to execute. These tasks can be implemented either on application specific hardware or as software running on a specific processor. The design of an embedded system involves the selection of hardware software resources, Partition of tasks into hardware and software, and performance evaluation. An accurate estimation of execution time for extreme cases (best and worst case) is important for hardware/software codesign. A tighter estimation of the execution time bound nay allow the use of a slower processor to execute the code and may help lower the system cost. In this paper, we consider an ARM-based embedded system and developed a tool to estimate the tight boundary of execution time of a task with loop bounds and any additional program path information. The tool we developed is based on an exiting timing analysis tool named 'Cinderella' which currently supports i960 and m68k architectures. We add a module to handle ARM ELF object file, which extracts control flow and debugging information, and a module to handle ARM instruction set so that the new tool can support ARM processor. We validate the tool by comparing the estimated bound of execution time with the run-time execution time measured by ARMulator for a selected bechmark programs.