| 開発者 | インペラス |
|---|---|
| 安定リリース | 20231026.0 / 2023年10月26日 |
| オペレーティング·システム | Windows、Linux の場合 |
| タイプ | エミュレータ |
| ライセンス | モデルは独自のApacheライセンスバージョン2.0に準拠 |
| Webサイト | 詳しくはこちら |
OVPsimは、ターゲットハードウェアの未変更の製品バイナリを実行するために使用されるマルチプロセッサ プラットフォーム エミュレータ(フルシステムシミュレータとも呼ばれる)です。公開APIがあり、ユーザーは独自のプロセッサ、周辺機器、プラットフォームモデルを作成できます。さまざまなモデルがオープンソースとして利用できます。[1] OVPsimは、組み込みソフトウェア開発のためのオープン仮想プラットフォームの使用を促進するために設立された組織であるOpen Virtual Platforms initiative(OVP)[2]の主要コンポーネントです。OVPsimをダウンロードするには、OVP登録が必要です。
ライセンス
OVPsimはImperasによって開発および保守されています。[3]コアシミュレーションプラットフォームはプロプライエタリソフトウェアであり、非商用目的では無料で利用できます。商用利用には、メンテナンス費用をカバーするためにImperasからの低価格のライセンスが必要です。さまざまなプロセッサ、周辺機器、プラットフォームモデルがApacheライセンスバージョン2.0の下で無料ソフトウェアとして利用できます。
詳細
OVP には、オープンソース モデル、高速 OVPsim シミュレーター、モデリングAPIという 3 つの主要コンポーネントがあります。これらのコンポーネントは、複雑なメモリ階層、キャッシュ システム、および標準デスクトップ PC で数百 MIPS で実行できる組み込みソフトウェアのレイヤーを備えた、マルチコアの異種または同種のプラットフォームを簡単に組み立てられるように設計されています。OVPSim は命令精度が高いと考えられていますが、サイクル精度は高くありません。OVP ホームページには、 Linuxカーネルを 5 秒未満で 起動できるコンポーネントや完全な仮想プラットフォームの例が多数あります。
オープンソースモデル
OVP には、いくつかの異なるモデル カテゴリがあります。これらのモデルは、事前にコンパイルされたオブジェクト コードとして、また場合によってはソース ファイルとして提供されます。OVPsim は、ARM および MIPS プロセッサ モデルのソース コードをもう提供していません。現在、ARM(ARMv4、ARMv5、ARMv6、ARMv7、ARMv8命令セットを使用するプロセッサ)からARM Cortex-A72MPx4(GICv3を備えたマルチクラスタARMv8モデルを含む)、Imagination MIPS(MIPS32、MIPS64、microMIPS、nanoMIPS、MIPS R6命令セットを使用するプロセッサ)からmicroAptiv、interAptiv、proAptiv、Warriorコアまで、Synopsys Virage ARC600/ARC700およびARC EMシリーズ、Renesas v850、RH850、RL78、m16c、PowerPC、Altera Nios II、Xilinx MicroBlaze、RISC-V(32ビットRV32I、RV32M、RV32IM、RV32Aを使用するモデル)のプロセッサモデルがあります。 RV32IMA、RV32IMAC、RV32F、RV32D、RV32E、RV32EC、RV32C、RV32G、RV32GC、RV32GCN、RV32IMAFD および 64 ビット RV64I、RV64M、RV64IMAC、RV64F、RV64D、RV64C、RV64G、RV64GC、RV64GCN、RV64IMAFD ISA サブセット)、Andes Technology N25/NX25、N25F/NX25F、A25/AX25、A25F/AX25F、Microsemi CoreRISCV/MiV-RV32IMA、SiFive E31、E51、U54、U54-MC、Freedom U540、Codasipシリーズ 1、3、5、7 RISC-V コア、Intel NiosV RISC-V コア、Texas Instruments TMS320 DSP、OpenRiscファミリー。OpenHW グループは、オープンソース RISC-V CV32E40 および CV32E20 コアのゴールデンリファレンスとして OVPsim を使用しています。RAM、ROM、キャッシュ、ブリッジなど、さまざまな種類のシステムコンポーネントのモデルもあります。イーサネット MAC、USB、DMA、UART、FIFO などの周辺機器モデルもあります。最も一般的なオペレーティングシステム[4] ucLinux、Linux、Android、FreeRTOS、Nucleus、Micrium を含む、いくつかの異なるビルド済みプラットフォームが利用可能です。
OVP シミュレーション インフラストラクチャの主な用途の 1 つは、カスタム ビルド モデルを最初から作成してシミュレートする機能、またはオープン ソース モデルの 1 つを開始点として使用して作成してシミュレートする機能です。OVP API は、プロセッサ、周辺機器の動作モデル、プラットフォームなど、さまざまなモデル タイプに合わせて調整されています。ダウンロード可能なソース モデル バリアントは 100 種類以上あります。
OVPsim シミュレータ
OVPsim シミュレーターは OVP リファレンスとして利用でき、非商用利用の場合は無料です。シミュレーターは、動的バイナリ変換テクノロジを使用して、非常に高速なシミュレーション速度を実現します。場合によっては、通常のデスクトップ PC マシンで 1 秒あたり 10 億を超える命令をシミュレートできます。OVPsim は、 x86 Windows およびLinuxホスト で利用できます。
OVPsim にはGDB RSP (リモート シリアル プロトコル) インターフェイスが付属しており、シミュレートされたプロセッサ上で実行されているアプリケーションを、この GDB RSP インターフェイスをサポートする任意の標準デバッガーでデバッグできます。OVPsim には、Imperas iGui グラフィカル デバッガーと、Eclipse IDE および CDT インターフェイスが付属しています。
OVPsimはカプセル化して他のシミュレーション環境から呼び出すことができ[5]、C、C++、SystemC用のインターフェースファイルが標準で付属しています。[6] OVPsimにはネイティブSystemC TLM 2.0インターフェースファイルが含まれています。プロセッサや動作モデルのレガシーモデルをカプセル化してOVPsimで使用することも可能です。
モデリングAPI
OVP モデルはC / C++ API を使用して作成されます。主な API は OP、VMI、BHM/PPM の 3 つです。
OP
OP API は、プラットフォームの制御、接続、監視用に設計されています。この API は、C、C++、または SystemC から呼び出すことができます。プラットフォームは、設計の基本構造を提供し、コンポーネントの作成、接続、構成を行います。また、アドレス マッピングとプロセッサにロードされるソフトウェアも指定します。OP を使用すると、さまざまなプロセッサ、ローカル メモリと共有メモリ、キャッシュ、バス ブリッジ、周辺機器、およびそれらの複雑なアドレス マップ、割り込み、オペレーティング システム、アプリケーション ソフトウェアなど、非常に複雑で完全なプラットフォームを簡単に指定できます。
OP API は 2016 年に ICM API に取って代わりました。ICM API は古いプラットフォームでも引き続き使用できます。
VMI
プロセッサ モデリングは、VMI API によって提供されます。これらの API 関数は、プロセッサの動作を簡単に記述する機能を提供します。VMI を使用して C で記述されたプロセッサ モデルは、シミュレートするターゲット命令をデコードし、これをネイティブ x86 命令に変換して、PC で実行します。VMI は、8、16、32、および 64 ビットのアーキテクチャのモデリングに使用できます。プロセッサ モデルまたはシミュレートされたアプリケーションを変更することなく、アプリケーション ランタイム ライブラリ内の関数 (write、fstat など) への呼び出しをエミュレートできるインターセプション メカニズムがあります。
PPMとBHM
動作コンポーネント、周辺機器、および環境全体は、C コードとこれら 2 つの API への呼び出しを使用してモデル化されます。これらの API の基盤となるのは、時間、イベント、および同時実行のモデル化を可能にするイベント ベースのスケジュール メカニズムです。周辺機器モデルは、プラットフォームでモデル化されたプロセッサ上で実行されているアプリケーション ソフトウェアが周辺機器が有効になっているメモリ位置にアクセスしたときに呼び出されるコールバックを提供します。
ユーザー
OVPsimは、並列コンピューティングプラットフォームの研究、 [7] [8]ハードウェア/ソフトウェアの共同設計、[9]組み込みシステムのパフォーマンス分析、[10]およびその他の組み込みツール開発の基礎として、シミュレーションインフラストラクチャを提供するために、複数の教育機関で使用されています。[要出典]また、学生がアプリケーションソフトウェアを開発およびデバッグし、仮想プラットフォームや新しいモデルを作成できるように、教育コースでも活用されています。
多くの大手商業組織も、自社製品の基盤として OVPsim を使用しています。このテクノロジは、MIPS [11] Technologies によってライセンス供与され、 MIPS アーキテクチャ組み込みプロセッサ製品群のモデリング サポートを提供するとともに、大手プロセッサ プロバイダ ARM [12] [13]とのパートナーシップの一環として提供され、ヨーロッパの大学が一般利用できる Europractice [14]製品群の一部となっています。OVPsim のバージョンは、RISC-V Foundation の Compliance Working Group [15]によってリファレンス シミュレータとして使用されています。Renesas などの大手半導体企業は、大手電子業界の出版物で明らかにされているように、プロセッサ開発作業にこのシミュレータを使用しています。[16] EU の研究プロジェクトである NEPHRON+ では、ソフトウェアおよびテスト開発環境にこのシミュレータを選択しました。[17]インドのチェンナイ にある VinChip Systems Inc. は、OpenOCD と OVPsim を使用して、インドで開発された最初の 32 ビット プロセッサを開発しました。[18] OVPモデルと仮想プラットフォームは、Imperasが行っている他の活動の基礎を形成しています。
参考文献
- ^ 「Open Virtual Platforms Component Library」Ovpworld.org、2012年11月21日。 2013年5月8日閲覧。
- ^ 「Open Virtual Platforms」Ovpworld.org、2012年11月21日。 2013年5月8日閲覧。
- ^ 「インペラ」.インペラス。 2008 年 7 月 2 日。2013 年9 月 10 日に取得。
- ^ 「MIPS Linux」。Linux MIPS。2008年11月24日。 2013年9月10日閲覧。
- ^ 「Cadence Zynq」。Cadence。2010年4月2日。 2013年9月10日閲覧。
- ^ 「Imperas モデルには価値がある可能性がある」。SystemC.org。2010 年 2 月 17 日。2013年9 月 19 日閲覧。
- ^ 「OVP、SystemC、SCMLEducation を使用した仮想プロトタイピング用のハイブリッド シミュレーション フレームワーク」(PDF) vdtt.iitd.ac.in. 2009 年 1 月 11 日. 2013 年5 月 9 日閲覧。
- ^ Pinto, C.; Raghav, S.; Marongiu, A.; Ruggiero, M.; Atienza, D.; Benini, L. (2011). 「GPGPU による 1000 コア プラットフォームの高速並列シミュレーション」。2011 第 11 回 IEEE/ACM 国際クラスター、クラウド、グリッド コンピューティング シンポジウム(PDF) 。pp . 53–62。doi :10.1109 / CCGrid.2011.64。ISBN 978-1-4577-0129-0。
- ^ Nita, I.; Lazarescu, V.; Constantinescu, R. (2009). 「マルチプロセッサ システム オン チップ アプリケーション向けの新しい Hw/Sw 共同設計手法」。2009 International Symposium on Signals, Circuits and Systems。pp . 1–4。doi : 10.1109 / ISSCS.2009.5206089。ISBN 978-1-4244-3785-6。
- ^ 「OVPsim を使用した複雑な RISC ベース プラットフォームの電力推定」 www.embedded.com。2012 年 12 月 16 日。2013年5 月 8 日に閲覧。
- ^ 「MIPS Technologies、Imperas OVP シミュレータの OEM バージョンを配布するライセンスを締結」。Bloomberg.com。2011 年 2 月 24 日。2013年6 月 26 日閲覧。
- ^ 「OVPsim by Imperas Software Ltd」。ARM Connected Community。2012 年 1 月 1 日。2013年6 月 26 日閲覧。
- ^ 「Imperas、ARM Cortex-A15プロセッサの高速モデルを準備」。EETimes。2012年3月8日。 2013年9月19日閲覧。
- ^ 「Europractice OVPsim データシート」(PDF)。EuroPractice。2012 年 11 月 10 日。2013 年9 月 10 日に閲覧。
- ^ 「RISC-V Compliance Working Group」. riscv.org. 2018年6月6日. 2018年6月6日閲覧。
- ^ 「プロセッサ モデルが自動車ソフトウェアのテストを支援」。EETimes。2011 年 10 月 14 日。2013年9 月 10 日閲覧。
- ^ Maxfield, Clive (2012 年 5 月 15 日)。「EU 研究プロジェクトがオープン仮想プラットフォームを選択」。EE Times。
- ^ "「インドで開発された初の 32 ビット プロセッサがデビュー」。EE Times-India 2009 年 6 月 24 日。...
VinChip Systems Inc. は ... をリリースしました。同社によると、これはインドで開発された初の 32 ビット プロセッサだそうです。... 仮想プロトタイピングのサポートは、... OVPsim シミュレータによって提供されています...
外部リンク
- 公式サイト
- OVPモデルを使用するImperasマルチコアデバッグおよびプロファイリングツール
- MIPS Malta プラットフォームのエミュレーションに使用される OVPsim
- ユーロプラクティス
