製品情報

Solutions
Home > 製品情報 > モデル化、シミュレーション、分析のツール > VirtualTime
お問い合わせ 友だちに教える このページを印刷する

VirtualTime

VirtualTimeは、タイミングの正確なシミュレーションと分析を提供し、大規模で複雑なリアルタイム組込システムの最適化やトラブルシューティングを支援します。VirtualTimeはエニアとRapita Systemsの共同開発製品です。テレコム・インフラストラクチャのモデル化や携帯プラットフォームの開発向けに最適ですが、あらゆる組み込みシステムのアプリケーションにもフレキシブルに対応できます。
VirtualTime のプロダクト・シートをダウンロードする (443.4 kb)

VirtualTimeを使うと、組み込みシステム内のリアルタイム動作を正確にシミュレートするためのモデルを容易に構築することができます。これらのモデルは、CやC++といった馴染み深い高レベル言語を使って開発できるため、既存コードを再利用することも、新規に構築することもできます。

VirtualTimeは、クリティカルなコード・パスを実行するのに必要な時間を容易に予測できるようにします。また、エニアOSEリアルタイム・オペレーティングシステム向けにタイミングの正確なモデルを提供します。これらの機能の組み合わせにより、プログラマは、アプリケーションとシステム・ソフトウェア両方を組み込んだ、現実に近いモデルを構築できるようになります。

VirtualTimeを使う理由

VirtualTimeは、複雑なリアルタイム・システムのモデル化、シミュレーション、分析を素早く行うのに役立つツールを備えています。主要な機能は以下の通りです。

モデリング

• パフォーマンス要件を満たしながら、新規システムを開発でき、既存システムに新機能を追加できる
• 専門的なトレーニングを行うことなく、カスタマの組織全体ですぐに理解可能な高レベルのモデルを作成できる
• 共通のモデル記述を作成できるため、システム全体の決定に利用でき、システム・ドキュメンテーションの一部として組み込める

シミュレーション

• システム障害や異常なシステム動作を調査できる同じシナリオを何度も実行して、繰り返し発生するタイミング関連のバグを特定し、修正できる
• 異なる負荷でシステムをシミュレートできる予想外のシナリオや特殊なシナリオでシステムのパフォーマンスを評価し、システムの安定性の向上を図ることができる

分析

• プロセスの通信フローを分析し、アーキテクチャのボトルネックを発見できる
• パフォーマンスの制約を特定し、それに応じて最適化を行う。より高速のCPUや新しいハードウェアへの変更が本当に必要なのか?その代わりに、ソフトウェア・アーキテクチャを再設計できるか??
• システム改善の複数の代替案を評価できる。パフォーマンスにほとんど影響を与えない、または全く影響がない修正アクションを回避できる
• 評価キット、新規ハードウェア、ハードウェア・パッチを購入せずに、異なるハードウェア構成で分析を行える異なるクロック・レート、複数のCPU、高速/低速のクロック・レートで実験でき、その効果をすぐに見ることができる

VirtualTimeの働き

VirtualTimeの機能を理解するには、サンプル・システムで実際の働きを見るのが一番です。

自社システム向けモデルを作成

第1段階として、システム向けにモデルを作成します。図には、ネットワークとDSP間にパケットを分散したシステム向けモデルが示されています。このシステムには、タイミングの不具合があります。具体的には、このシステムは、最悪の場合でも5ミリ秒の応答時間でなくてはならないのですが、実際の応答時間は10ミリ秒に近くなっています。シミュレーションのアウトプットは、CPUの平均負荷は26%であることを示しています。

少し単純な変更を加えてみる

シミュレーション環境では、いろいろな変更を加えて実験することが容易になります。まず、プロセスの優先度を変更してみます。しかし、これは問題解決にはつながりそうにありません。問題は別のところにあるようです。
別のテクニックとしては、コード行の変更があります。異なるプロセッサ速度を使ってシステムのシミュレーションを行うことができます。ここでは、既存プロセッサを2倍の速度のプロセッサに置き換えた場合にどうなるかをシミュレートします。期待通り、CPUの平均負荷は13%に低下しましたが、システムの応答時間への影響はほとんどありませんでした。CPUを高速にしても問題解決にはならないということが明らかにわかります。


技術的な操作を行うタイミング

解決が容易ではない場合、設計の段階に立ち返ることがあります。設計者は、少し考えた結果、1つのプロセスを2つに分割することにしました。このモデルはC言語で書かれているため、ほんのわずかな変更のみでプロセスの分割を行うことができ、終了まで数分しかかかりません。この変更が行われたことにより、このシステムが期限に間に合わなくなってしまうケースはほとんどなくなりました。設計者に残されている仕事は、あまり頻繁に発生しない障害の原因を調査することです。

イベント・レポート

VirtualTimeは、標準的なイベントとプロパティを詳細に記述したHTMLレポートを生成します。しかも、設計者は自分のイベントをこのレポートに追加することができます。さらに素晴らしいのは、わずか2行のコード(1つはイベント定義、もう1つはログファイルへのイベントの記録)を追加するだけで、このような操作が可能となることです。

VirtualTimeのツールセット

VirtualTimeのツールセットは、以下の3つの個別エンジンで構成されています。
• シミュレーション・エンジン。シミュレーション・エンジンは、コードを実行し、タイミングの正確なプロセスの実行を処理し、システム・イベントのタイミング情報をログファイルにエクスポートする
• アナライザ・エンジン。アナライザ・エンジンは、プログラマがログファイルから抽出したいイベント・セットを記述した構成設定に基づいて、ログファイルをテキストファイルに変換する
• レポート・エンジン。レポート・エンジンは、アナライザ・エンジンから提示されたテキストファイルからHTMLレポートを作成する。ビジュアル・フォーマットは構成可能

VirtualTimeのワークフロー

VirtualTimeのモデルは高レベル言語を使って構築されているため、その開発サイクルは従来の組み込みソフトウェア開発に似ています。モデル化、コード化、コンパイル、リンク、シミュレート、分析、レポート作成という過程をたどります。この共通性により、VirtualTimeのユーザはこの製品をすぐに使い始めることができ、生産性の向上を実現できます。開発コストを抑え、市場への導入時間を短縮できます。