OVP심

OVPsim
OVP심
개발자임페라스
안정적 해제
2021118.0 / 2021년 11월 18일; 4개월(2021-11-18)
운영 체제Windows, Linux
유형에뮬레이터
면허증모델 전용 Apache License
웹사이트www.ovpworld.org

OVPsim은 대상 하드웨어의 변경되지 않은 생산 바이너리를 실행하는 데 사용되는 다중 프로세서 플랫폼 에뮬레이터(흔히 전체 시스템 시뮬레이터라고 함)이다.사용자직접 프로세서, 주변기기, 플랫폼 모델을 만들 수 있는 공용 API를 갖추고 있다.다양한 모델을 오픈 소스로 이용할 수 있다.[1]OVPsim은 임베디드 소프트웨어 개발을 위한 오픈 가상 플랫폼의 사용을 촉진하기 위해 만들어진 조직인 오픈 가상 플랫폼 이니셔티브(OVP)의 핵심 구성 요소다.[2]OVPim을 다운로드하려면 OVP 등록이 필요하다.

라이센싱

OVPsim은 임페라스에 의해 개발되고 유지된다.[3]핵심 시뮬레이션 플랫폼은 독점 소프트웨어로, 비상업적 사용을 위해 무료로 이용할 수 있다.상업적 사용은 유지보수를 커버하기 위해 임페라스의 저가 면허를 필요로 한다.다양한 프로세서, 주변장치 및 플랫폼 모델은 Apache License 버전 2.0에 따라 무료 소프트웨어로 이용할 수 있다.

세부 사항

OVP에는 오픈소스 모델, 패스트 OVPsimulator, 모델링 API의 세 가지 주요 구성요소가 있다.이 부품들은 복잡한 메모리 계층 구조, 캐시 시스템, 임베디드 소프트웨어의 레이어 등을 갖춘 멀티코어 이기종 또는 동종 플랫폼을 손쉽게 조립할 수 있도록 설계되었으며, 표준 데스크탑 PC에서 수백 개의 MIPS로 실행할 수 있다.OVPSim은 정확한 명령으로 간주되지만 주기적 정확성은 아니다.구성요소의 예는 여러 가지가 있으며, OVP 홈페이지에서 5초 이내에 Linux 커널을 부팅할 수 있는 완전한 가상 플랫폼이 있다.

오픈 소스 모델

OVP 내에는 몇 가지 다른 모델 범주가 있다.이러한 모델은 사전 컴파일된 객체 코드와 경우에 따라 소스 파일로 제공된다.OVPsim은 더 이상 ARM 및 MIPS 프로세서 모델에 대한 소스 코드를 제공하지 않는다.Currently there are processor models of ARM (processors using the ARMv4, ARMv5, ARMv6, ARMv7, ARMv8 instruction sets) up to the ARM Cortex-A72MPx4 (and including multi-cluster ARMv8 models with GICv3), Imagination MIPS (processors using MIPS32, MIPS64, microMIPS, nanoMIPS and MIPS R6 instruction sets) up to the microAptiv, interAptiv, proAptiv, and Warrior cores, Synopsys Virage ARC600/ARC700 and ARC EM series, Renesas v850, RH850, RL78 and m16c, PowerPC, Altera Nios II, Xilinx MicroBlaze, RISC-V (models using 32bit RV32I, RV32M, RV32IM, RV32A, RV32IMA, RV32IMAC, RV32F, RV32D, RV32E, RV32EC, RV32C, RV32G, RV32GC, RV32GCN, RV32IMAFD and 64bit RV64I, RV64M, RV64IMAC, RV64F, RV64D, RV64C, RV64G, RV64GC, RV64GCN, RV64IMAFD ISA 하위 집합), Andes Technology N25/NX25, N25F/NX25F, A25/AX25, A25F/AX25F, Microsemi 코어RISCV/MiV-RV32IMA, SiFive E31, E51, U54, U54-MC, Freedom U540, Codasip Series 1, 3, 5, 7 RISC-V 코어 및 OpenRisc 제품군더 오픈HW 그룹은 OVPsim을 오픈 소스 RISC-V CV32E40 코어의 골든 레퍼런스로 사용한다.또한 RAM, ROM, 캐시, 브리지 등 다양한 유형의 시스템 구성요소 모델도 있다.이더넷 MAC, USB, DMA, UART, FIFO와 같은 주변 기종이 있다.가장 일반적인 운영 체제인[4] ucLinux, Linux, Android, FreeRTOS, Nucleus, Micrium을 포함하여 몇 가지 다른 사전 구축된 플랫폼을 사용할 수 있다.

OVP 시뮬레이션 인프라의 주요 용도 중 하나는 처음부터 또는 오픈 소스 모델 중 하나를 출발점으로 사용하여 사용자 정의 빌드 모델을 만들고 시뮬레이션하는 기능이다.OVP API는 프로세서, 주변기기의 행동 모델, 플랫폼 등 다양한 모델 유형에 맞춰져 있다.100개 이상의 소스 모델 변형 모델들을 다운로드할 수 있다.

OVP심 시뮬레이터

OVPsim 시뮬레이터는 OVP 참조로 사용할 수 있으며 비상업적 용도로 무료로 사용할 수 있다.시뮬레이터는 매우 높은 시뮬레이션 속도를 달성하기 위해 동적 바이너리 변환 기술을 사용한다.초당 10억 개 이상의 시뮬레이션 지침이 가능하며, 어떤 경우에는 일반 데스크탑 PC 기계에서 가능하다.OVPsim은 x86 Windows 및 Linux 호스트에 사용할 수 있다.

OVPsim은 시뮬레이션 프로세서에서 실행 중인 애플리케이션을 이 GDB RSP 인터페이스를 지원하는 모든 표준 디버거로 디버깅할 수 있도록 해주는 GDB RSP(Remote Serial Protocol) 인터페이스를 제공한다.OVPsim은 임페라스 iGui 그래픽 디버거와 Eclipse IDE 및 CDT 인터페이스가 함께 제공된다.

OVPsim은 캡슐화되어 다른 시뮬레이션 환경[5] 내에서 호출될 수 있으며 C, C++SystemC용 인터페이스 파일과 함께 표준으로 제공된다.[6]OVPsim은 기본 SystemC TLM2.0 인터페이스 파일을 포함한다.프로세서의 레거시 모델과 행동 모델의 캡슐화가 가능해 OVPsim이 사용할 수 있다.

API 모델링

OVP 모델은 C/C++ API를 사용하여 생성된다.OP, VMI, BHM/PPM의 3가지 주요 API가 있다.

OP

OP API는 플랫폼 제어, 연결 및 관찰을 위해 설계되었다.이 API는 C, C++ 또는 SystemC에서 호출할 수 있다.플랫폼은 설계의 기본 구조를 제공하고 구성요소를 생성, 연결 및 구성한다.플랫폼은 또한 주소 매핑과 프로세서에 로드되는 소프트웨어를 지정한다.OP를 사용하면 다양한 프로세서, 로컬 및 공유 메모리, 캐시, 버스 브리지, 주변장치 및 그 모든 복잡한 주소 맵, 인터럽트 및 운영 체제와 애플리케이션 소프트웨어의 매우 복잡하고 완전한 플랫폼을 지정할 수 있다.

OP API는 2016년 동안 ICM API를 대체했다.ICM API는 이전 플랫폼에서도 여전히 사용할 수 있다.

VMI

프로세서 모델링은 VMI API에 의해 제공된다.이러한 API 기능은 프로세서의 동작을 쉽게 설명할 수 있는 기능을 제공한다.VMI를 사용하여 C로 작성된 프로세서 모델은 시뮬레이션할 대상 명령을 해독하고 이를 PC에서 실행된 네이티브 x86 명령으로 변환한다.VMI는 8, 16, 32 및 64비트 아키텍처를 모델링하는 데 사용할 수 있다.프로세서 모델이나 시뮬레이션된 애플리케이션의 수정을 요구하지 않고 애플리케이션 런타임 라이브러리(예: 쓰기, fstat 등)의 기능에 대한 호출을 에뮬레이션할 수 있는 인터셉션 메커니즘이 있다.

PPM & BHM

행동 구성요소, 주변장치 및 전체 환경은 이 두 API에 대한 C 코드와 호출을 사용하여 모델링된다.이러한 API의 기본은 시간, 이벤트 및 동시성 모델링을 가능하게 하는 이벤트 기반 스케줄링 메커니즘이다.주변기기 모델은 주변기기 사용이 가능한 플랫폼 접속 메모리 위치에서 모델링된 프로세서에서 실행 중인 애플리케이션 소프트웨어가 호출될 때 호출되는 콜백을 제공한다.

사용자

OVPsim은 병렬 컴퓨팅 플랫폼,[7][8] 하드웨어/소프트웨어 공동 설계,[9] 임베디드 시스템의 성능 분석 [10]및 기타 임베디드 툴 개발의 기초로서 시뮬레이션 인프라를 제공하기 위해 여러 교육 기관에 의해 이용되고 있다.[citation needed]또한 학생들이 애플리케이션 소프트웨어를 개발 및 디버깅하고 가상 플랫폼과 새로운 모델을 만들 수 있도록 교육 과정에 활용된다.

많은 주요 상업 기관들도 OVPsim을 제품 오퍼링의 기초로 사용한다.이 기술은 MIPS[11] Technologies에 의해 MIPS 아키텍처 내장 프로세서 범위, 선도적인 프로세서 제공업체 ARM과의 파트너십에 따른 기능 및 [12][13]유럽 대학 일반 접근을 위한 Europractice[14] 제품군에 대한 모델 지원을 제공하기 위해 허가되었다.OVPsim의 버전은 RISC-V Foundation의 Compliance Working[15] Group에서 기준 시뮬레이터로 사용된다.레네사스 등 반도체 굴지의 기업들은 선도적인 전자산업 출판물에 공개된 대로 이 시뮬레이터를 프로세서 개발 작업에 사용해 왔다.[16]소프트웨어와 테스트 개발 환경으로 EU 연구 프로젝트인 NEPHRON+가 선정했다.[17]인도 첸나이의 빈칩 시스템 사는 인도에서 개발된 최초의 32비트 프로세서를 개발하기 위해 OpenOCD와 OVPsim을 사용했다.[18]OVP 모델과 가상 플랫폼은 임페라스에 의해 수행되고 있는 다른 활동의 기초를 형성한다.

참조

  1. ^ "Open Virtual Platforms Component Library". Ovpworld.org. 21 November 2012. Retrieved 8 May 2013.
  2. ^ "Open Virtual Platforms". Ovpworld.org. 21 November 2012. Retrieved 8 May 2013.
  3. ^ "Imperas". Imperas. 2 July 2008. Retrieved 10 September 2013.
  4. ^ "MIPS Linux". Linux MIPS. 24 November 2008. Retrieved 10 September 2013.
  5. ^ "Cadence Zynq". Cadence. 2 April 2010. Retrieved 10 September 2013.
  6. ^ "There Could Be Value In The Imperas Models". SystemC.org. 17 February 2010. Retrieved 19 September 2013.
  7. ^ "Hybrid Simulation Framework for Virtual Prototyping Using OVP, SystemC & SCMLEducation" (PDF). vdtt.iitd.ac.in. 11 January 2009. Retrieved 9 May 2013.
  8. ^ Pinto, C.; Raghav, S.; Marongiu, A.; Ruggiero, M.; Atienza, D.; Benini, L. (2011). "GPGPU-Accelerated Parallel and Fast Simulation of Thousand-Core Platforms". 2011 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (PDF). pp. 53–62. doi:10.1109/CCGrid.2011.64. ISBN 978-1-4577-0129-0.
  9. ^ Nita, I.; Lazarescu, V.; Constantinescu, R. (2009). "A new Hw/Sw co-design method for multiprocessor system on chip applications". 2009 International Symposium on Signals, Circuits and Systems. pp. 1–4. doi:10.1109/ISSCS.2009.5206089. ISBN 978-1-4244-3785-6.
  10. ^ "Using OVPsim for the power estimation of complex RISC based platforms". www.embedded.com. 16 December 2012. Retrieved 8 May 2013.
  11. ^ "MIPS Technologies Signs License to Distribute OEM Version of the Imperas OVP Simulator". Bloomberg.com. 24 February 2011. Retrieved 26 June 2013.
  12. ^ "OVPsim by Imperas Software Ltd". ARM Connected Community. 1 January 2012. Retrieved 26 June 2013.
  13. ^ "Imperas Preps Fast Models of ARM Cortex-A15 Processor". EETimes. 8 March 2012. Retrieved 19 September 2013.
  14. ^ "Europractice OVPsim Datasheet" (PDF). EuroPractice. 10 November 2012. Retrieved 10 September 2013.
  15. ^ "RISC-V Compliance Working Group". riscv.org. 6 June 2018. Retrieved 6 June 2018.
  16. ^ "Processor Models Aid Automotive Software Testing". EETimes. 14 October 2011. Retrieved 10 September 2013.
  17. ^ Maxfield, Clive (15 May 2012). "Open Virtual Platforms Selected by EU research project". EE Times.
  18. ^ "'First' India-developed 32-bit processor debuts". EE Times-India. 24 June 2009. ... VinChip Systems Inc. has released ..., which it claims is the first 32-bit processor to be developed in India. ... Support for virtual prototyping has been provided by the ... OVPsim simulator ...

외부 링크