실시간 운영체제 개발 환경에서 제공하는 도구 중에 하나인 RTOS시뮬레이터는 타겟 H/W가 호스트에 연결되어 있지 않은 상태에서도 호스트에서 응용 프로그램의 개발과 디버깅을 가능하게 해주는 타겟 시뮬레이션 환경을 제공해 줌으로써, 하드웨어 개발이 완료되기 전에도 응용 프로그램의 개발이 가능하도록 해준다. 그러한 이유로 현재 대부분의 상용 RTOS 개발환경에서는 RTOS 시뮬레이터를 제공하고 있다. 그러나 그들의 대부분은 RTOS의 기능적인 부분들만 호스트에서 시뮬레이션 하도록 구현되어 있어서, RTOS 및 응용 프로그램이 실제 타겟 UW에서 실행될 때의 실질적인 시간 추정이 불가능하다. 실시간 시스템은 정해진 시간 내에 프로그램 실행을 종료해야 하기 때문에, 실행시간 추정 기능도 가지는 RTOS 시뮬레이터가 필요하다. 본 연구에서는 RTOS 및 응용 프로그램이 실제 타겟 H/W에서 처리될 때의 실행시간 추정이 가능하고 구현도 용이한 기계명령어-레벨(machine instruction-level)의 RTOS 시뮬레이터를 개발하고, 실제 프로그램을 실행하여 기능과 정확도를 검증하였다.
실시간 운영체제 개발 환경에서 제공하는 도구 중에 하나인 RTOS 시뮬레이터는 타겟 H/W가 호스트에 연결되어 있지 않은 상태에서도 호스트에서 응용 프로그램의 개발과 디버깅을 가능하게 해주는 타겟 시뮬레이션 환경을 제공해 줌으로써, 하드웨어 개발이 완료되기 전에도 응용 프로그램의 개발이 가능하도록 해준다. 그러한 이유로 현재 대부분의 상용 RTOS 개발환경에서는 RTOS 시뮬레이터를 제공하고 있다. 그러나 그들의 대부분은 RTOS의 기능적인 부분들만 호스트에서 시뮬레이션 하도록 구현되어 있어서, RTOS 및 응용 프로그램이 실제 타겟 UW에서 실행될 때의 실질적인 시간 추정이 불가능하다. 실시간 시스템은 정해진 시간 내에 프로그램 실행을 종료해야 하기 때문에, 실행시간 추정 기능도 가지는 RTOS 시뮬레이터가 필요하다. 본 연구에서는 RTOS 및 응용 프로그램이 실제 타겟 H/W에서 처리될 때의 실행시간 추정이 가능하고 구현도 용이한 기계명령어-레벨(machine instruction-level)의 RTOS 시뮬레이터를 개발하고, 실제 프로그램을 실행하여 기능과 정확도를 검증하였다.
The real-time operating system(RTOS) simulator, one of the tools provided by RTOS development environment, allows users to develop and debug application programs even before the target hardware is ready. Thus, most of commercial RTOS development environments provide with RTOS simulator for the purpo...
The real-time operating system(RTOS) simulator, one of the tools provided by RTOS development environment, allows users to develop and debug application programs even before the target hardware is ready. Thus, most of commercial RTOS development environments provide with RTOS simulator for the purpose. But they are implemented to simulate only functional aspects on a host system, so that it is not possible to estimate execution time of application programs on the target hardware. Since the real-time system has to complete program executions in predetermined time, the RTOS simulator that can estimate the execution time is yeW useful in the development phase. In this study, we develop a machine instruction-level RTOS simulator that is able to estimate execution time of application programs on a target hardware, and prove its functionality and accuracy by using test .programs.
The real-time operating system(RTOS) simulator, one of the tools provided by RTOS development environment, allows users to develop and debug application programs even before the target hardware is ready. Thus, most of commercial RTOS development environments provide with RTOS simulator for the purpose. But they are implemented to simulate only functional aspects on a host system, so that it is not possible to estimate execution time of application programs on the target hardware. Since the real-time system has to complete program executions in predetermined time, the RTOS simulator that can estimate the execution time is yeW useful in the development phase. In this study, we develop a machine instruction-level RTOS simulator that is able to estimate execution time of application programs on a target hardware, and prove its functionality and accuracy by using test .programs.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 연구에서 개발한 Q+ 시뮬레이터 (Q+ Simulator: 이하 Q十Sim이라 함)는 Q+Esto에 포함되는 도구들 증의 하나로서, DTSB 보드와 같은 타겟 하드웨어가 호스트에 연결되어 있지 않더라도 타겟을 연결하여 작업할 때와 동일한 개발 환경을 개발자에게 제공할 수 있게 하는 것을 목표로 설계되었다. 또한 기능 면에서는 기존상용화된 RTOS 시뮬레이터에서 제공하는 기능들을 Q+Sim에서도 모두 지원하도록 하고, 이와 더불어 기존의 제품들이 가지지 못한 실질적인 수행시간 추정 기능을 추가하도록 함으로써 본 연구가 구현되어 상용화되었을 때에 차별화 된 제품으로 RTOS 시장에서 경쟁력을 가질 수 있게 설계하였다.
본 연구에서는 RTOS와 RTOS 응용프로그램이 실제타겟에서 처리될 때의 실행시간 추정이 가능하고 상용화가 가능한 기계 명령어 기반machine instruction-based) 의 RTOS 시뮬레이터를 구현하는 것을 목표로 하였다. 이를 위하여 기계 명령어 레벨의 시뮬레이션 기법을 이용하여 RTOS의 실행 이미지를 생성하고, 그것이 호스트 상에서 수행되도록 하였다.
또한 명령어의 비트 패턴은 복잡하게 구성되어 있으며, 명령어에 따라 비트 패턴이 의미하는 것이 달라진다[13]. 본 연구에서는 이렇게 복잡한 명령어들의 비트 패턴을 체계적으로 정리하여 명령어 시뮬레이션이 가능하도록 하였다. 전체적인 명령어 시뮬레이션 과정은 SAT10이 명령어를 수행하는 방법과 유사하게 설계되었으며, 복잡성을 감소시키기 위하여 기능에 영향을 받지 않는 부분들은 추상화시켰다.
타겟 하드웨어의 속성을 정밀하게 반영할수록 시뮬레이션의 정확도는 높아지는 반면에 시뮬레이션 시간이 오래 걸리기 때문어〕, 시뮬레이터의 사용 목적에 따라서 적절한 정밀도를 설정하는 것이 중요하다. 본 연구에서는 캐쉬 시뮬레이션에 대한 부분을 사용자가 선택할 수 있도록 함으로써, 시뮬레이터가 두 가지 정밀도를 제공할 수 있도록 설계되었다.
본 연구에서는 현재 상용 RTOS 시뮬레이터들이 가지고 있는 기능적 시뮬레이션의 문제점을 개선하기 위하여, 하드웨어 플랫폼에 제한되지 않고 구현돨 수 있으면서 실제 타겟 하드웨어에서의 실질적인 프로그램 실행 시간의 추정도 가능한 RTOS 시뮬레이터를 구현하는 기법을 개발하였다. 그리고 실제 이 기법을 이용하여 실시간 운영체제인 Q+의 실행 이미지를 시뮬레이션 하는 Q+Sim을 구현하였다.
가설 설정
실제 타겟 하드웨어의 실험 결과를 토대로 하여, 메모리 액세스 및 분기가 발생하지 않는 명령어의 평균 실행시간은12 사이클로 가정하였다. 그리고 메모리 액세스가 발생할 경우에는 6 사이클이 추가되고, 분기가 발생할 경우에는 4 사이클이 추가되는 것으로 가정하였으며, 사이클 시간은 200 眦 SA-110 프로세서의 경우에 5 ns이다.
실행시간 추정을 위하여 Q+Sim이 수집한데이타는 실행된 CPU 명령어들의 수, 메모리 액세스수, 명령어 캐쉬의, 적중률, 데이타 캐쉬의 적중률, 그리고 분기 명령어의 수이다. 실제 타겟 하드웨어의 실험 결과를 토대로 하여, 메모리 액세스 및 분기가 발생하지 않는 명령어의 평균 실행시간은12 사이클로 가정하였다. 그리고 메모리 액세스가 발생할 경우에는 6 사이클이 추가되고, 분기가 발생할 경우에는 4 사이클이 추가되는 것으로 가정하였으며, 사이클 시간은 200 眦 SA-110 프로세서의 경우에 5 ns이다.
제안 방법
명령어 시뮬레이션이 동작될 가상 하드웨어 환경으로는 DTSB 보드를 모델링 하였으며, 시뮬레이션돨 명령어는 SA-110 마이크로프로세서용으로 크로스 컴파일된 EEF 형태의 목적 프로그램을 사용하였다. ELF는 USLCUNIX System Laboratories)에서 처음 개발된 이진 형식으로 기존의 UNIX의 표준 이진 형식에 비하여 향상된 유연성을 가지고 있다[12丄 이러한 ELF 는 시뮬레이션에 사용될 명령어에 대한 유연성을 제공할 수 있기 때문에, 본 연구에서는 ELF 중에서 실행 파일(executable file) 형태의 Q+와 재배치 가능 파일 (relocatable file) 형태의 응용 프로그램을 사용하여 시뮬레이션을 수행한다.
Q+Sim에서는 이 기능을 지원하기 위하여 DTSB 보드와 동일한 간격으로 Q+Sim 코어에 타이머인터럽트를 발생시킨다. Q+Sim에서 멀티태스킹 기능을 확인하기 위하여 lqsimtest20, 함수와 qsimtestBO' 함수를 Q+Esto의 원격 대화형 쉘을 통하여 실행해 보았다. 그림 16의 Q+Sim 실행창은 일정한 간격으로 두 함수가 교대로 실행되는 것을 보여주고 있는데, 이것은 Q+Sim 이 타이머 인터럽트를 이용한 멀티태스킹 기능을 지원한다는 것을 나타낸다.
Top Box : 이하 DTSB라 함) 보드이다. 그리고 본연구에서 개발하는 RTOS 시뮬레이터의 동작환경은 원도 우즈 NT/2000이며, Q+의 통합개발환경인 Q十Esto[8] 에 도구들 중의 하나로서 포함되도록 하였다.
시간의 추정도 가능한 RTOS 시뮬레이터를 구현하는 기법을 개발하였다. 그리고 실제 이 기법을 이용하여 실시간 운영체제인 Q+의 실행 이미지를 시뮬레이션 하는 Q+Sim을 구현하였다.
그러나 실제 타겟 하드웨어에서의 실행 시간 분석은 불가능해진다. 두 번째는 명령어 단계의 시간 정밀도를 갖는 소프트웨어-사이클 정밀도 (software-cycle accuracy)서, 크로스 컴파일 된 타겟 환경의 목적 프로그램을 명령어 시뮬레이터(instruction set simulator)7]-명령어의 기능적인 면을 시뮬레이션 한다. 이 경우에는 명령어 수준의 사이클 측정이 가능하지만, 캐쉬나 버스 중재와 같은 하드웨어척인 요소는 반영이 되지 않는다.
전체적인 명령어 시뮬레이션 과정은 SAT10이 명령어를 수행하는 방법과 유사하게 설계되었으며, 복잡성을 감소시키기 위하여 기능에 영향을 받지 않는 부분들은 추상화시켰다. 따라서 가상기억장치에 있는 명령어를 인출하여, 해독하고, 실행하는 전형적인 명령어 실행 방법으로 명령어 시뮬레이션을 진행하며, 해당 명령어의 부가적인 특성이 필요한 부분은 기본 구조에 기능을 추가하는 방법으로 설계되어 그림 6과 같은 명령어 사이클로 명령어를 시뮬레이션하였다
반대로, 가상 하드웨어에서 표준 입력 요구가 발생하면, 시뮬레이션 제어기가 요구를 받아서 Q+Sim 쉘로 전달하여 표준 입력을 받아들인다. 또한 Q+Sim 쉘에서는 시뮬레이터 제어를 위해 소수의 콘솔 관리 명령어를 사용할 수 있도록 설계하였다.
또한 데이타 캐쉬의 write-back 쓰기 정책과이에 따른 캐쉬 일관성 유지를 위하여 캐쉬 슬롯 당 상태 필드를 두어 'INVALID', WALID', 'DIRTY' 중의 하나로 설정되게 구현하였다. 'INVALID, 는 현재 캐쉬슬롯에 있는 데이타가 무효라는 것을 나타내고, 'VALID' 는 데이타가 유효임을 나타내며, 'DIRTY'는 수정되었기 때문에 캐쉬 슬롯 교체 시에 기억장치에 저장되어야 하는 데이타를 나타낸다.
이를 위해 가상 하드웨어를 C 언어로 구현하고, 그 위에서 타겟 프로세서명령어로 컴파일 된 실행 이미지를 해석하여 시뮬레이션 하는 기계명령어-레벨의 명령어 시뮬레이션 방법을 사용하였다. 명령어 시뮬레이션이 동작될 가상 하드웨어 환경으로는 DTSB 보드를 모델링 하였으며, 시뮬레이션돨 명령어는 SA-110 마이크로프로세서용으로 크로스 컴파일된 EEF 형태의 목적 프로그램을 사용하였다. ELF는 USLCUNIX System Laboratories)에서 처음 개발된 이진 형식으로 기존의 UNIX의 표준 이진 형식에 비하여 향상된 유연성을 가지고 있다[12丄 이러한 ELF 는 시뮬레이션에 사용될 명령어에 대한 유연성을 제공할 수 있기 때문에, 본 연구에서는 ELF 중에서 실행 파일(executable file) 형태의 Q+와 재배치 가능 파일 (relocatable file) 형태의 응용 프로그램을 사용하여 시뮬레이션을 수행한다.
본 연구는 소프트웨어-사이클 정밀도와 하드웨어-사이클 정밀도의 중간 정도를 지향하여 설계함으로써 양쪽의 장점을 모두 가지게 하였다. 이를 위해 가상 하드웨어를 C 언어로 구현하고, 그 위에서 타겟 프로세서명령어로 컴파일 된 실행 이미지를 해석하여 시뮬레이션 하는 기계명령어-레벨의 명령어 시뮬레이션 방법을 사용하였다.
결과적으로 타겟 하드웨어에서의 RTOS 수행 동작이 호스트에서 시뮬레이션 되고, RTOS 상에서 처리되는 응용프로그램의 실행 동작도 시뮬레이션 된다. 본 연구에서 사용한 방법은 C와 같은 상위 수준의 명령어를 호스트 기반으로 시뮬레이션 하거나, VHDL과 같은 하드웨어 설계 언어 위에서 시뮬레이션 하는 기존의 방법과는 달리 타겟 시스템의 프로세서 명령어들을 타겟의 하드웨어 특성을 반영한 가상 하드웨어 위에서 시뮬레이션 한다는 점에서 구별된다.
이 경우에는 명령어 수준의 사이클 측정이 가능하지만, 캐쉬나 버스 중재와 같은 하드웨어척인 요소는 반영이 되지 않는다. 세 번째는 하드웨어-사이클 정밀도 hardware-cycle accuracy)서, 실제 타겟 하드웨어와 같은 역할을 할 수 있게 구성된 가상 하드웨어 위에서 명령어 시뮬레이터가 가상 하드웨어 클록에 따라 크로스 컴파일 된 타겟환경의 목적 프로그램을 수행한다. 이 경우에는 실제 타겟 하드웨어에서의 기능적 및 시간적 동작올 거의 동일하게 시뮬레이션 할 수 있지만, 복잡성 때문에 구현하기 어렵고 시뮬레이션 시간이 길어진다는 단점이 있다[11].
즉, 연산코드의 성격에 따라서 오피랜드의 형태가 다섯 가지로 분류되는데, 본 연구에서는 보조프로세서 명 宜 어의 연산 코드와 오퍼랜드 형태를 제외한 나머지 명령어의 해독을 구현하였다. 연산코드의 구현은 각 명령어의 비트 패턴을 분석한 후에 이들을 분류하여 하나의 비트 패턴이 하나의 명령어에 대응되도록 하였고, 오퍼랜드의 해독은 해독된 연산코드에 해당하는.오퍼랜드의 형태가 대응되도록 하였다.
이러한 통신 동작을 시뮬레이션하기 위하여 Q+Sim 에이전트의 통신 모듈은 MS 윈도우즈 NT/2000 에서 동작할 수 있도록 MS Visual C++를 이용하여 구현하였으며, UDP/IP 메시지를 수신한 Q+Sim 에이전트의 통신 모듈은 Q+Sim 코어에 인터럽트 11번을 강제로 발생시키도록 구현하였다’ Q+Sim 에이전트는 그림 8에서 보는 바와 같이 윈도우즈 통신 모듈을 통하여 Q+Esto로부터의 RPC 요구를 수신하면, Q+Sim 코어의 가상 기억장치에 있는 수신 영역(taXport)에 수신된 데이타를 저장하고, Q+Sim 코어에 인터럽트 11번을 발생시킨다. 이후의 RPC 메시지 처리는 Q+Sim 코어의 동작에 의하여 처리되는데, Q+Sim 코어는 RPC 처리가 끝나고 RPC 응답의 송신 함수가 실행되면 Q+Sim 에이전트에게 RPC 응답의 송신 요구를 보낸다.
하였다. 이를 위하여 기계 명령어 레벨의 시뮬레이션 기법을 이용하여 RTOS의 실행 이미지를 생성하고, 그것이 호스트 상에서 수행되도록 하였다. 결과적으로 타겟 하드웨어에서의 RTOS 수행 동작이 호스트에서 시뮬레이션 되고, RTOS 상에서 처리되는 응용프로그램의 실행 동작도 시뮬레이션 된다.
장점을 모두 가지게 하였다. 이를 위해 가상 하드웨어를 C 언어로 구현하고, 그 위에서 타겟 프로세서명령어로 컴파일 된 실행 이미지를 해석하여 시뮬레이션 하는 기계명령어-레벨의 명령어 시뮬레이션 방법을 사용하였다. 명령어 시뮬레이션이 동작될 가상 하드웨어 환경으로는 DTSB 보드를 모델링 하였으며, 시뮬레이션돨 명령어는 SA-110 마이크로프로세서용으로 크로스 컴파일된 EEF 형태의 목적 프로그램을 사용하였다.
또한 기능 면에서는 기존상용화된 RTOS 시뮬레이터에서 제공하는 기능들을 Q+Sim에서도 모두 지원하도록 하고, 이와 더불어 기존의 제품들이 가지지 못한 실질적인 수행시간 추정 기능을 추가하도록 함으로써 본 연구가 구현되어 상용화되었을 때에 차별화 된 제품으로 RTOS 시장에서 경쟁력을 가질 수 있게 설계하였다. 이를 위해 본 연구에서는 기계 명령어-레벨 시뮬레이션 기법을 이용하여 RTOS의 실행 이미지를 생성하여 RTOS를 시뮬레이션 하도록 하였다. 따라서 타겟 하드웨어에서의 RTOS 동작들이 호스트에서 수행되는 시뮬레이터에 의해 동일하게 시믈레이션 되고, 응용프로그램의 동작도 그 위에서 실행되도록 하였다.
명령어의 인출 동작에서는 현재 주소 레지스터(armTmar)에 저장된 주소를 사용하여 Q+Sim 코어에 있는 가상 메모리의 해당 영역을 읽어 명령어 레지스터(arm—ir)에 저장하며, PC 의 값을 4만큼 증가시키고 이 값을 주소 레지스터에 저장한다. 조건 코드의 검사는 명령어 레지스터에 저장된 명령어의 최상위 4비트의 조건 코드를 해독하여 이루어진다 조건 코드는 4비트이므로 16가지의 조건 코드가 존재하며, 상태 레지스터의 상태 플래그 (Negative I Zero I Carry I o V erflo wX 사용하여 조건을 검사한다. 만약 조건을 만족하지 못하면 인터럽트를 처리하는 부분을 실행하고, 조건을 만족하면 명령어 레지스터에 있는 명령어를 해독한 후에 해독된 명령어를 실행한다 [13].
관리하는 부분으로 구성된다. 주기억장치의 크기는 가변적이므로 동적 메모리를 이용하여 구현하였고, 반면에 캐쉬의 크기는 고정적이므로 정적 메모리를 이용하여 구현하였다. 이렇게 구현된 주기억장치와 캐쉬를 위한 자료 구조는 그림 9와 같다.
즉, 연산코드의 성격에 따라서 오피랜드의 형태가 다섯 가지로 분류되는데, 본 연구에서는 보조프로세서 명 宜 어의 연산 코드와 오퍼랜드 형태를 제외한 나머지 명령어의 해독을 구현하였다. 연산코드의 구현은 각 명령어의 비트 패턴을 분석한 후에 이들을 분류하여 하나의 비트 패턴이 하나의 명령어에 대응되도록 하였고, 오퍼랜드의 해독은 해독된 연산코드에 해당하는.
소프트웨어로 구현하였다. 파이프라인은 소프트웨어 복잡도를 고려하여 분기되는 명령어들을 계수하는 방식으로 설계되었고, 캐쉬는 명령어 캐쉬와 데이타 캐쉬를 각각 16K 바이트 동적 메모리로 구성하여 32-way 세트-연관 사상 방식과 라운드 로빈 교체 방식으로 동작하도록 함으로써 실제 물리적인 캐쉬와 동일하게 설계되었다. 그러나 캐쉬와 파이프라인을 시뮬레이션에 포함하는 경우에는 Q+Sim의 수행 시간이 매우 길어지기 때문에, 이 기능들은 실행시간 추정 기능을 수행하는 경우에만 동작하도록 구현하였다.
대상 데이터
본 연구에서 시뮬레이션 대상으로 한 RTOS는 최근 한국전자통신연구원(ETRD에서 개발된 Q+[기이고, Q十 가 동작하는 타겟 하드웨어는 ARM 계열의 StrongARM SA-110 마이크로프로세세이와 21285 주제어기(core logic controller)^]- 장착된 DTV 셋톱박스(Digital TV Set Top Box : 이하 DTSB라 함) 보드이다. 그리고 본연구에서 개발하는 RTOS 시뮬레이터의 동작환경은 원도 우즈 NT/2000이며, Q+의 통합개발환경인 Q十Esto[8] 에 도구들 중의 하나로서 포함되도록 하였다.
디버거의 부분적인 기능으로 동작한다. 이 시뮬레이터는 MIPS32 프로세서 명령어-세트 시뮬레이터로서, 응용프로그램의 소스 단계에서 명령어 자체를 해석하여 시뮬레이션 한다[4]. 타겟 응용프로그램의 개발언어인 C 언어 자체를 명령어 단위로 해석하여 기능성을 시뮬레이션하기 때문에 속도는 빠르지만, 타겟 H/W의 특성이 시뮬레이션에 반영되지 못하며, RTOS의 제한된 기능만이 시뮬레이션에 적용되는 단점이 있다.
타겟 하드웨어 플랫폼으로는 ARM 계열의 StrongARM SA-110 마이크로프로세서와 21285 주제어기가 내장되어진 DTVRO사의 DTSB 보드를 사용하였다. 이 보드는 SA-110과 21285 주제어기를 평가하기 위해 제작된 EBSA-285 평가 보드[1 이가 가지고 있던 기능을 대폭향상시킨 제품이다.
성능/효과
결과에 따르면, 추정 시간과 실제 타겟 하드웨어에서의 실행시간과 추정시간 간의 오차율은 tqsimtest4O, 함수의 경우에는 약 5.5%이고, qsimtestSO5 함수의 경우에는 약 16.7%로 나타났다. 표 2에서의 시뮬레이션 시간은 Q+Sim이 28 GHz 펜티엄-4 PC에서 시뮬레이션을 수행한 시간으로서, 정밀한 기계명령어-레벨의 시뮬레이션임에도 불구하고 비교적 짧은 시뮬레이션 시간이 소요되 었다.
것을 목표로 설계되었다. 또한 기능 면에서는 기존상용화된 RTOS 시뮬레이터에서 제공하는 기능들을 Q+Sim에서도 모두 지원하도록 하고, 이와 더불어 기존의 제품들이 가지지 못한 실질적인 수행시간 추정 기능을 추가하도록 함으로써 본 연구가 구현되어 상용화되었을 때에 차별화 된 제품으로 RTOS 시장에서 경쟁력을 가질 수 있게 설계하였다. 이를 위해 본 연구에서는 기계 명령어-레벨 시뮬레이션 기법을 이용하여 RTOS의 실행 이미지를 생성하여 RTOS를 시뮬레이션 하도록 하였다.
과정이 Q+Sim에서 이루어지게 된다. 또한 이와같이 타겟 하드웨어의 동작과 동일한 방법으로 기계 명령어 실행을 시뮬레이션 함으로써 어느 정도 정확한 실행 시간 추정이 가능하며, 파이프라인이나 캐쉬와 같은타겟 하드웨어의 특성들을 적용시키면 추정 실행 시간의 정확도는 더욱 높아진다. 그림 3은 이러한 실행 과정에 대한 개념도를 보여주고 있다.
본 연구에서 구현한 Q+Sime 호스트에서 소프트웨어로 구현된 타겟 하드웨어에 해당하므로, 타겟 하드웨어가 개발되기 전에도 호스트에서 응용프로그램의 개발이 가능하게 해준다. 따라서 Q+Sime 비교적 고가의 실제타겟 하드웨어를 구입하기 어려운 일반 사용자들에게타겟 하드웨어가 없이 호스트 상에서 RTOS를 사용할 수 있게 해주고, 타겟 응용프로그램을 개발할 수 있는 환경을 제공한다.
실제 시뮬레이션을 수행한 결과를 보면, Q+Sime 실시간 운영체제인 Q+의 각 모듈별 함수들을 정상적으로 수행하였고, Q+Esto의 원격 대화형 쉘과 디버거 등과 같은 도구들과의 연동도 확인할 수 있었다. 그리고 ARM 프로세서의 명령어 실행 파이프라인과 캐쉬의 영향을 고려하여 RTOS의 특정 함수나 응용프로그램의 실행 시간을 추정할 수 있었다.
본 연구에서는 이렇게 복잡한 명령어들의 비트 패턴을 체계적으로 정리하여 명령어 시뮬레이션이 가능하도록 하였다. 전체적인 명령어 시뮬레이션 과정은 SAT10이 명령어를 수행하는 방법과 유사하게 설계되었으며, 복잡성을 감소시키기 위하여 기능에 영향을 받지 않는 부분들은 추상화시켰다. 따라서 가상기억장치에 있는 명령어를 인출하여, 해독하고, 실행하는 전형적인 명령어 실행 방법으로 명령어 시뮬레이션을 진행하며, 해당 명령어의 부가적인 특성이 필요한 부분은 기본 구조에 기능을 추가하는 방법으로 설계되어 그림 6과 같은 명령어 사이클로 명령어를 시뮬레이션하였다
참고문헌 (13)
한국전자통신연구원, '조립형 실시간 OS 사용자 요구사항 정의서 1', 1998년 12월
WindRiver, VxWorks 5.3.1 Programmer's Guide, April, 1997
Realiant Systems, 'Carbon Kernel User Manual 1.2,' January, 2000
Ron Pluth, Taimur Aslam, 'Developing Device Drivers in a Hardware / Software Co-Simulation Environment,' The Embedded Systems Conference San Francisco, April, 1998
ARM, ARM ELF, 2000. 10
David Seal, ARM Architecture Reference Manual 2th ed., Addison-Wesley, 2000
※ AI-Helper는 부적절한 답변을 할 수 있습니다.