Verification Engineerの戯言
ICM(Innovative CPU Manager)は、プラットフォームを作るためのもので、OVMSimで動作するシステムの構成を記述するためのAPI群です。
ICMは、マルチコアプロセッサ(異種プロセッサ混在も可)、バス、メモリ、ペリフェラルが利用できます。
ICMはC言語のAPIになっています。Cのプログラムとして、ICMを使ってシステムの構成を記述します。SystemCで構造的にシステムを記述するのと同じです。
記述したCのプログラムは、MinGW(GCC 3.4.5/runtime 3.14で動作確認済)にてコンパイルし、実行プログラムにします。
ICMの記述例は、DEMOシステムにあります(ただし、DEMOシステムをダウンロードするにはユーザ登録が必要です)。
SystemCで構造記述をしたことがあるのであれば、ICMの記述にはとまどうことはないでしょう!
ICMは、cycle-accurate simulationをターゲットにしていません。あくまでもソフトウェア開発を行うためのものです。
SystemCモデルをOVPSimに取り込むことはできませんが、SystemCにOVPSimのモデルを利用することは可能のようです。
ICMは、マルチコアプロセッサ(異種プロセッサ混在も可)、バス、メモリ、ペリフェラルが利用できます。
ICMはC言語のAPIになっています。Cのプログラムとして、ICMを使ってシステムの構成を記述します。SystemCで構造的にシステムを記述するのと同じです。
記述したCのプログラムは、MinGW(GCC 3.4.5/runtime 3.14で動作確認済)にてコンパイルし、実行プログラムにします。
ICMの記述例は、DEMOシステムにあります(ただし、DEMOシステムをダウンロードするにはユーザ登録が必要です)。
SystemCで構造記述をしたことがあるのであれば、ICMの記述にはとまどうことはないでしょう!
ICMは、cycle-accurate simulationをターゲットにしていません。あくまでもソフトウェア開発を行うためのものです。
SystemCモデルをOVPSimに取り込むことはできませんが、SystemCにOVPSimのモデルを利用することは可能のようです。
VMIは、プロセッサ動作モデルを作るためのものです。現在、ARM7/MIPS32/OR1KのCPUモデルがあります。
32ビットRISCであれば、6~8週間で書くことができ、3GHzのPCであれば500MIPS動作も可能のようです。
ということは、500MHz程度のCPUはシミュレーションでも同じ速度が出てしまうということです。すばらしい。
なぜこんな速く動くのでしょう。それはJust-In-Time Code Morphingという技術を使って各CPUの命令コードをX86に命令コードに置き換えることによって実現しています。
32ビットRISCであれば、6~8週間で書くことができ、3GHzのPCであれば500MIPS動作も可能のようです。
ということは、500MHz程度のCPUはシミュレーションでも同じ速度が出てしまうということです。すばらしい。
なぜこんな速く動くのでしょう。それはJust-In-Time Code Morphingという技術を使って各CPUの命令コードをX86に命令コードに置き換えることによって実現しています。