아물레이터
ARMulator![]() | 이 글에는 여러 가지 문제가 있다.이 문제를 개선하거나 대화 페이지에서 토의하십시오.(이러한 템플릿 메시지를 제거하는 방법 및 시기 알아보기) |
ARM 명령 집합 시뮬레이터라고도 하는 ARM 명령 집합 시뮬레이터는 ARM Limited의 개발 시스템 사업부에서 ARM 기반 칩의 모든 사용자에게 제공하는 소프트웨어 개발 도구 중 하나이다.소피 윌슨이 설정한 지침이 조기에 개발된 덕분이다.이 유산의 일부는 ARMulator의 Tube BBC Micro 모델의 제공에서 여전히 볼 수 있다.
특징들
ARMulator는 C로 작성되었으며 명령 집합 시뮬레이터 이상의 기능을 제공하며, 시스템 에뮬레이션을 위한 가상 플랫폼을 제공한다.그것은 ARM 프로세서와 특정 ARM 코프로세서를 모방할 준비가 되어 있다.프로세서가 내장형 시스템의 일부인 경우, 면허인은 ARMulator를 확장하여 ARMulator 모델에 추가 하드웨어의 자체 구현을 추가할 수 있다.ARMulator는 시간 기반 행동과 이벤트 스케줄링에 도움이 되는 많은 서비스를 제공하며 메모리 매핑 및 공동 프로세서 확장의 예를 제공한다.이런 식으로, 그들은 ARMulator를 사용하여 그들의 전체 임베디드 시스템을 모방할 수 있다.ARMulator의 주요 제한사항은 ARM11까지의 거의 모든 ARM 코어를 사용할 수 있지만 한 번에 하나의 ARM CPU만 시뮬레이션할 수 있다는 것이다.
ARMulator의 성능은 채택된 기술에 적합하며, ARM 명령당 호스트(PC) 지침이 1000개 정도 된다.이는 에뮬레이트된 속도가 90년대 중후반 PC의 경우 1MHz가 정상이었다는 것을 의미한다.정확도도 좋다. 사이클 정확도가 아니라 사이클 카운트 정확도로 분류되지만, 이는 ARM 파이프라인이 완전하게 모델링되지 않았기 때문이다(등록기 인터록은 정확하지만).해결책은 명령에 대한 것이다. 따라서 레지스터 인터락을 한 번의 스텝으로 무시하고 프로그램을 단순히 실행했을 때와 다른 주기 카운트가 반환될 때, 이것은 피할 수 없는 일이었다.
ARMulator 테스트는 전체 ARM 아키텍처 검증 제품군을 채용하는 등 항상 시간이 많이 걸리는 과제였습니다.100만 줄이 넘는 C 코드는 상당히 두꺼운 제품이었다.
ARMulator는 armd(ARM Symbolic Debugger) 또는 SDT 및 이후 ADS 제품으로 출하된 그래픽 디버거 중 하나를 사용하여 런타임 디버깅을 허용한다.ARMulator는 많은 사람들이 구성하기 복잡하다고 생각하는 텍스트 파일 구성(armul.conf)을 가진 보이지 않는 도구로 인해 어려움을 겪었다.
ARMulator II는 ARM 프로세서의 높은 정확도, Cycle Callable Co-Verification 모델의 기초를 이루었으며, 이러한 CoVs 모델(Cycle Accuracy Simulator 참조)은 ARM 프로세서를 위한 많은 CoVerification 시스템의 기초였다.
유용성
ARMulator는 Mac, RISC OS 플랫폼, DEC Alpha, HP-UX, Solaris, SunOS, Windows, Linux를 포함한 그 수명을 통해 매우 광범위한 플랫폼에서 사용할 수 있었다.1990년대 중반에는 윈도우 플랫폼 지원을 꺼렸다. 윈도우 95 이전은 상대적으로 어려운 플랫폼이었다.1990년대 후반과 2000년대 초반에 걸쳐 Solaris, Windows, Linux를 제외한 모든 사람들에 대한 지원이 제거되었다. 물론 코드 기반은 #ifdef RISCOS와 같은 실용주의로 남아있다.
ARMulator II는 초기 ARM 툴킷뿐만 아니라 후기 SDT 2.5, SDT 2.5.1, ADS 1.0, ADS 1.1, ADS 1.2, RCVT 1.0으로 선적되었으며 RVISS로도 별도로 선적되었다.CPU 개발 중에 특수 모델이 생산되었는데, 특히 ARM9E, ARM10, ARM11은 이러한 모델들이 Summb-2, TrustZone과 같은 아키텍처 결정에 도움을 주었다.
ARMulator는 점차 단계적으로 폐지되어 Just-in-time 컴파일 기반 고성능 CPU 및 시스템 모델로 대체되었다(아래 FastSim 링크 참조).
ARMulator I는 오픈 소스로 만들어졌으며, ARMulator의 GNU 버전의 기본이다.주요 차이점은 메모리 인터페이스와 서비스에 있다. 또한 명령 디코드는 다르게 수행된다.GNU ARMulator는 ARM GNU Tools의 GDB 디버거의 일부로 사용할 수 있다.
ARMulator II는 ARM 프로세서의 높은 정확도, Cycle Callable Co-Verification 모델의 기초를 이루었으며, 이러한 CoVs 모델(Cycle Accuracy Simulator 참조)은 ARM 프로세서를 위한 많은 CoVerification 시스템의 기초였다.멘토그래픽스 이음매에는 ARM 코어 및 기타 CPU를 많이 지원하는 CoVs 시스템이 시장을 선도하고 있다.
ARMulator II는 초기 ARM 툴킷과 후기 SDT 2.5, SDT 2.5.1, ADS 1.0, ADS 1.1, ADS 1.2, RVCT 1.0으로 배송되었으며 RVISS로도 별도로 배송되었다.
ARMulator II의 주요 기여자는 마이크 윌리엄스, 루이스 제임슨, 찰스 라벤더, 도널드 싱클레어, 크리스 램, 레베카 브라이언(ARMulator에서 엔지니어 겸 제품 매니저로 일했다)이었다.당시 ARM CoVerification 모델 작업을 하던 앨런 스킬맨도 상당한 입력을 했다.
ARMulator I의 주요 기여자는 Dave Jaggar이다.
CPU 개발 중에 특수 모델이 생산되었는데, 특히 ARM9E, ARM10, ARM11은 이러한 모델들이 Summb-2, TrustZone과 같은 아키텍처 결정에 도움을 주었다.