(57)【要約】【課題】複数に分割されたＬＳＩ機能のシミュレーション装置において、シミュレーション手段の処理負荷の偏りに起因するシミュレーション速度の低下を回避する。【解決手段】複数に分割されたＬＳＩ機能のシミュレーションを並列に実行する複数のＣＰＵ１１０，１２０，１３０は、各ＣＰＵの間でデータ同期処理を実行し、各ＬＳＩ機能のシミュレーション実行時間を収集し各ＣＰＵの間で相互に情報交換し、前記シミュレーション実行時間に基づきＬＳＩ機能のシミュレーションの再配分によるシミュレーション総実行時間の短縮可能性を判断し、各ＣＰＵに対するＬＳＩ機能のシミュレーションの再割り当てを実行するスケジューリング部１１１，１２１，１３１を備える。【選択図】図１
2007122158.tif 000002
【特許請求の範囲】
【請求項１】
複数に分割されたＬＳＩ機能のシミュレーションを並列に実行する複数のシミュレーション手段と、
各シミュレーション手段の間でデータ同期処理を実行するデータ同期処理手段と、
各ＬＳＩ機能のシミュレーション実行時間を収集し各シミュレーション手段の間で相互に情報交換するシミュレーション実行時間収集手段と、
前記シミュレーション実行時間に基づきＬＳＩ機能のシミュレーションの再配分によるシミュレーション総実行時間の短縮可能性を判断し、各シミュレーション手段に対するＬＳＩ機能のシミュレーションの再割り当てを実行するスケジューリング手段とを備えるシミュレーション装置。
【請求項２】
前記データ同期処理手段は、データ同期条件として特定のシミュレーション対象信号の変化を判定する請求項１記載のシミュレーション装置。
【請求項３】
前記データ同期処理手段は、データ同期条件として特定の外部入力信号の変化を判定する請求項１記載のシミュレーション装置。
【請求項４】
前記データ同期処理手段は、データ同期時にすべてのデータの同期処理を一括して行う請求項１記載のシミュレーション装置。
【請求項５】
前記データ同期処理手段は、データ同期時に同期が必要なデータのみについて同期処理を行う請求項１記載のシミュレーション装置。
【請求項６】
前記データ同期処理手段は、ファイル入力等により予め指定されたデータ同期条件で同期処理を行う請求項１記載のシミュレーション装置。
【請求項７】
前記データ同期処理手段は、各シミュレーション手段の間に張られたネットワークを介してデータ同期処理を実行する請求項１記載のシミュレーション装置。
【請求項８】
前記データ同期処理手段は、各シミュレーション手段の間に張られたバスを介してデータ同期処理を実行する請求項１記載のシミュレーション装置。
【請求項９】
前記スケジューリング手段は、データ同期処理の転送処理に必要な時間を勘案して前記ＬＳＩ機能のシミュレーションの再配分によるシミュレーション総実行時間の短縮可能性を判断する請求項１記載のシミュレーション装置。
【請求項１０】
請求項１から９の何れか一項記載のシミュレーション装置を上位ネットワークで接続したクラスタ構成のシミュレーション装置。
【請求項１１】
複数に分割されたＬＳＩ機能のシミュレーションを並列に実行し、
各ＬＳＩ機能のシミュレーションの間でデータ同期処理を実行し、
各ＬＳＩ機能のシミュレーションの実行時間を収集し、
前記シミュレーション実行時間に基づき並列実行するシミュレーションの再スケジューリングによるシミュレーション総実行時間の短縮可能性を判断し、
前記シミュレーション総実行時間の短縮が可能な場合に前記再スケジューリングを実行するシミュレーション方法。
【請求項１２】
少なくともクロック周波数毎に前記ＬＳＩ機能を分割する請求項１１記載のシミュレーション方法。
【請求項１３】
特定のシミュレーション対象信号の変化をデータ同期条件として前記データ同期処理を行う請求項１１記載のシミュレーション方法。
【請求項１４】
特定の外部入力信号の変化をデータ同期条件として前記データ同期処理を行う請求項１１記載のシミュレーション方法。
【請求項１５】
すべてのデータに対して前記データ同期処理を一括して行う請求項１１記載のシミュレーション方法。
【請求項１６】
同期が必要なデータに対してのみ前記データ同期処理を行う請求項１１記載のシミュレーション方法。
【請求項１７】
ファイル入力等により予め指定されたデータ同期条件で前記データ同期処理を行う請求項１１記載のシミュレーション方法。
【請求項１８】
データ同期処理の転送処理に必要な時間を勘案して前記再スケジューリングによるシミュレーション総実行時間の短縮可能性を判断する請求項１１記載のシミュレーション方法。
【請求項１９】
コンピュータに請求項１１から１８の何れか一項記載のシミュレーション方法を実行させるコンピュータプログラム。
【請求項２０】
請求項１９記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＬＳＩのシミュレーション技術に係り、特に複数の機能ブロックが同時に動作するモデルを複数のシミュレーション実行手段を用いて高効率にシミュレートするシミュレーション方法および装置に関する。
【背景技術】
【０００２】
近年の大規模なシステムＬＳＩの開発においては、複雑なシステムを短期間で開発することがますます強く求められてきている。そこで、システムＬＳＩ上で動作するソフトウェア開発も早期に行う必要があり、実際のＬＳＩ上で開発するのではなく、システムＬＳＩの機能をソフトウェアでモデル化したシミュレータ上で開発することが一般的になっている。しかし、ソフトウェアでシステムをモデル化した場合に、その動作速度は一般に対象のシステムＬＳＩの規模が大きく成る程に低下してしまうという問題がある。その対策として、ＬＳＩ回路内の各機能を複数のコンピュータで並列にシミュレートする手法が従来採用されている。
【０００３】
図６は特許文献１に示された従来手法によるシミュレーション装置を示すブロック図である。図６において、シミュレーション装置４００は、ＬＳＩを構成する異なるクロック周波数を持つ複数の回路について、それぞれのクロック周波数毎にＬＳＩ機能を分割し、それぞれのクロックについてコンピュータ４０１〜４０３を用いて並列にシミュレーションを行い、同期処理に関してはネットワーク４５０を用いて処理する。このような構成により、クロック周波数の違いを吸収するための分周周期に係る処理が不要になり、その処理に起因するシミュレーション速度の低下を招くことが無く、全体のシミュレーション速度を向上させることができるとしている。
【特許文献１】特開２００５−６３００２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示されたシミュレーションにおいては、複数のクロック周波数にそれぞれ従属するソフトウェアでモデル化したＬＳＩ機能のシミュレーションの処理負荷に偏りがあった場合に、並列実行するコンピュータの負荷が偏り、全体としてコンピュータの使用効率が悪くなり、シミュレーション速度が低下する。
【０００５】
本発明は、ＬＳＩ機能をシミュレートする際に、並列実行するシミュレーション手段の処理負荷の偏りに起因するシミュレーション速度の低下を回避することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、複数に分割されたＬＳＩ機能のシミュレーションを並列に実行する複数のシミュレーション手段と、各シミュレーション手段の間でデータ同期処理を実行するデータ同期処理手段と、各ＬＳＩ機能のシミュレーション実行時間を収集し各シミュレーション手段の間で相互に情報交換するシミュレーション実行時間収集手段と、前記シミュレーション実行時間に基づきＬＳＩ機能のシミュレーションの再配分によるシミュレーション総実行時間の短縮可能性を判断し、各シミュレーション手段に対するＬＳＩ機能のシミュレーションの再割り当てを実行するスケジューリング手段とを備える。
【０００７】
上記構成によれば、各シミュレーション手段における処理負荷を分割されたＬＳＩ機能のシミュレーションごとに把握し、シミュレーション総実行時間が短縮されるように分割されたＬＳＩ機能のシミュレーションを各シミュレーション手段に再割り当てすることができるため、並列実行を行うシミュレーション手段の処理負荷の偏りに起因するシミュレーション速度の低下を回避するという作用が達成できる。これにより、シミュレーション手段が高効率に使用され、総シミュレーション時間を短縮することができる。
【０００８】
さらに本発明において、前記データ同期処理手段はデータ同期条件として特定のシミュレーション対象信号の変化を判定する。これにより、特定のシミュレーション対象信号の変化を検知してデータ同期処理を行うため、ＬＳＩ機能のシミュレーションに適したデータ同期条件の設定が容易になる。
【０００９】
さらに本発明において、前記データ同期処理手段はデータ同期条件として特定の外部入力信号の変化を判定する。これにより、外部からシミュレーションのデータ同期を制御することができるため、多様なシミュレーションの実行が可能となる。
【００１０】
さらに本発明において、前記データ同期処理手段はデータ同期時にすべてのデータの同期処理を一括して行う。これにより、データ同期時に一度にすべてのデータの同期処理を行うことができるため、例えば、データ同期条件の抽出が困難な場合に、それを考慮せずに機能ブロックを並列配置することが可能となり、シミュレーションの適応性を増すことができる。
【００１１】
さらに本発明において、前記データ同期処理手段はデータ同期時に同期が必要なデータのみについて同期処理を行う。これにより、データ同期時に同期が必要なデータのみについて同期処理を行うことができるため、データ同期時の転送データ量を最小限に減らすことが可能となり、シミュレーションの速度向上を図ることができる。
【００１２】
さらに本発明において、前記データ同期処理手段はファイル入力等により予め指定されたデータ同期条件で同期処理を行う。これにより、データ同期条件をファイル入力等により予め指定することができるため、データ同期条件とそれに伴う処理を最適に設定することが可能となり、シミュレーションの速度向上を図ることができる。
【００１３】
さらに本発明において、前記データ同期処理手段は各シミュレーション手段の間に張られたネットワークを介してデータ同期処理を実行する。これにより、並列にシミュレーションを実行する手段であるコンピュータやハードウェアエミュレータ等がネットワークを介して接続されるため、より柔軟なシステム構成をとることができる。
【００１４】
さらに本発明において、前記データ同期処理手段は各シミュレーション手段の間に張られたバスを介してデータ同期処理を実行する。これにより、複数ＣＰＵがバス接続された１台のコンピュータでシミュレーションを実行することができるため、ネットワーク接続で構成されたシミュレーション装置に比べて、より高速に動作するシミュレーション装置を実現することができる。
【００１５】
さらに本発明において、前記スケジューリング手段はデータ同期処理の転送処理に必要な時間を勘案してＬＳＩ機能のシミュレーションの再配分によるシミュレーション総実行時間の短縮可能性を判断する。これにより、シミュレーション総実行時間の短縮可能性を正しく判断することができる。
【００１６】
さらに本発明のシミュレーション装置は、上記構成のシミュレーション装置を上位ネットワークで接続したクラスタ構成とする。これにより、複数ＣＰＵが接続されたクラスタ内では高速にシミュレーションを実行することができ、さらにネットワーク接続でクラスタ間を接続することで、より大規模シミュレーションを高速に実行するシミュレーション装置を実現することができる。
【００１７】
また、本発明は、複数に分割されたＬＳＩ機能のシミュレーションを並列に実行し、各ＬＳＩ機能のシミュレーションの間でデータ同期処理を実行し、各ＬＳＩ機能のシミュレーションの実行時間を収集し、前記シミュレーション実行時間に基づき並列実行するシミュレーションの再スケジューリングによるシミュレーション総実行時間の短縮可能性を判断し、前記シミュレーション総実行時間の短縮が可能な場合に前記再スケジューリングを実行する。
【００１８】
上記構成によれば、各シミュレーションの実行時間を分割されたＬＳＩ機能のシミュレーションごとに把握し、シミュレーション総実行時間が短縮されるように分割されたＬＳＩ機能のシミュレーションを再スケジューリングすることができるため、並列実行を行うシミュレーションの処理負荷の偏りに起因するシミュレーション速度の低下を回避するという作用が達成できる。これにより、シミュレーション手段が高効率に使用され、総シミュレーション時間を短縮することができる。
【００１９】
さらに本発明において、少なくともクロック周波数毎に前記ＬＳＩ機能を分割する。これにより、並列に実行する複数のシミュレーションモデルを容易に構築することができる。
【００２０】
さらに本発明において、特定のシミュレーション対象信号の変化をデータ同期条件として前記データ同期処理を行う。これにより、特定のシミュレーション対象信号の変化を検知してデータ同期処理を行うため、具体的なＬＳＩ機能のシミュレーションに適したデータ同期条件の設定が容易になる。
【００２１】
さらに本発明において、特定の外部入力信号の変化をデータ同期条件として前記データ同期処理を行う。これにより、外部からシミュレーションのデータ同期を制御することができるため、多様なシミュレーションの実行が可能となる。
【００２２】
さらに本発明において、すべてのデータに対して前記データ同期処理を一括して行う。これにより、データ同期時に一度にすべてのデータの同期処理を行うことができるため、例えば、データ同期条件の抽出が困難な場合に、それを考慮せずに機能ブロックを並列配置することが可能となり、シミュレーションの適応性を増すことができる。
【００２３】
さらに本発明において、同期が必要なデータに対してのみ前記データ同期処理を行う。これにより、データ同期時に同期が必要なデータのみについて同期処理を行うことができるため、データ同期時の転送データ量を最小限に減らすことが可能となり、シミュレーションの速度向上を図ることができる。
【００２４】
さらに本発明において、ファイル入力等により予め指定されたデータ同期条件で前記データ同期処理を行う。これにより、データ同期条件をファイル入力等により予め指定することができるため、データ同期条件とそれに伴う処理を最適に設定することが可能となり、シミュレーションの速度向上を図ることができる。
【００２５】
さらに本発明において、データ同期処理の転送処理に必要な時間を勘案して前記再スケジューリングによるシミュレーション総実行時間の短縮可能性を判断する。これにより、シミュレーション総実行時間の短縮可能性を正しく判断することができる。
【発明の効果】
【００２６】
本発明によれば、並列実行するシミュレーション手段にそれぞれ割り当てられるＬＳＩ機能のシミュレーション処理が最適に割り当てられるため、シミュレーション手段が高効率に使用され、総シミュレーション時間を短縮することができる。
【発明を実施するための最良の形態】
【００２７】
図１は本発明の一実施の形態に係るＬＳＩのシミュレーション装置の構成を示すブロック図である。図１において、シミュレーション装置１００は１台のコンピュータ１０１で構成され、そのコンピュータ１０１がＬＳＩ機能のシミュレーションを分担する複数のＣＰＵ１１０、ＣＰＵ１２０、ＣＰＵ１３０と、それぞれのＣＰＵ上で動作するスケジューリング部１１１、スケジューリング部１２１、スケジューリング部１３１と、それらを接続するバス１４０とで構成されている。
【００２８】
ＬＳＩ機能を並列実行できるように、ＣＰＵ１１０、ＣＰＵ１２０、ＣＰＵ１３０はそれぞれ分割されたＬＳＩ機能のシミュレーションを行う。その際に、シミュレーション時間の収集をスケジューリング部１１１、スケジューリング部１２１、スケジューリング部１３１が行う。ＣＰＵ１１０、ＣＰＵ１２０、ＣＰＵ１３０はバス１４０を経由して情報を交換することで、ＬＳＩ機能のシミュレーションを実現する。
【００２９】
図２は本実施の形態におけるＬＳＩ機能のシミュレーション方法を説明するフローチャートである。図２のフローチャートにおいては２つのＣＰＵの動作のみを示しているが、他のＣＰＵについても同様である。ここではシミュレーションの流れをＣＰＵ１１０により説明する。
【００３０】
それぞれのＣＰＵがＬＳＩ機能をシミュレートするために、各ＣＰＵにはクロックに相当するクロックカウンタ変数を用意する。ステップ１１２では初期状態として、予め決めておいた他のＣＰＵと重複しない処理を割り当てる。
【００３１】
ステップ１１３では処理カウンタのカウントを開始し、ステップ１１４にて割り当てられた複数のシミュレーション処理のうち１つを実行し、実行終了後ステップ１１５にて処理カウンタのカウントを終了させ、処理にかかった時間を算出しスケジューリング部に報告する。
【００３２】
その後、ステップ１１６にて割り当てられたシミュレーション処理がすべて完了したか判定を行う。判定結果が真の場合はステップ１１７に進み、偽の場合はステップ１１３に戻ってシミュレーション処理を続行する。
【００３３】
次に、ステップ１１７ではバス１４０を通じて他のＣＰＵと通信を行い、スケジューラがシミュレーション処理にかかった時間を互いに報告する。その後、各ＣＰＵの負荷を比較し、負荷が最適になるように各ＣＰＵに対してシミュレーション処理の再配分を行う。
【００３４】
さらにステップ１１７ではデータ同期条件かどうかの判定を行い、同期条件の場合は同期処理を行う。ここで、データ同期条件にはシミュレーション処理の再割り当てによる要因も含む。
【００３５】
次に、ステップ１１８でクロックカウンタ変数をインクリメントした後、ステップ１１９において終了条件に達したかどうかを判定する。判定結果が真の場合はシミュレーションを終了し、判定結果が偽の場合はステップ１１３に戻る。
【００３６】
図３は本実施の形態におけるスケジューリング部の動作を説明するフローチャートであり、図２のステップ１１７におけるスケジューリング処理で実行される内容である。
【００３７】
図３のステップ２０１において、図２のステップ１１３から１１６で記録された各シミュレーション処理のタスクの実行時間を取り出す。次に、ステップ２０２で自ＣＰＵにおいて処理に要した総実行時間を算出する。ステップ２０３では、ステップ２０２で算出した総実行時間の情報をバス１４０を用いて他ＣＰＵのスケジューラと報告し合う。
【００３８】
次のステップ２０４においてタスクの再割り当ての処理を行う。すなわち、自ＣＰＵが最も負荷が高かった場合に、自己の保持しているシミュレーションタスクのうち最も負荷の小さいタスクについて、他のＣＰＵに割り振るのに必要なデータ同期時間とＣＰＵのキャッシュに取り込まれるまでに要する時間を勘案して再割り当てした場合の処理時間を換算し、最も負荷の小さいＣＰＵにそのタスクを割り当てたときのそれぞれのＣＰＵ処理負荷を再計算し、総処理時間の推定値がそのタスクの再割り当て前より小さくなる場合にタスクの再割り当てを実行する。
【００３９】
このタスクの再割り当ては、総処理時間の推定値がタスクの再割り当てを実行しても小さくならない状態に達するまで繰り返す。ここで、再割り当ては初めに最も負荷が高かったＣＰＵのみが行う処理である。
【００４０】
図４は上記ステップ２０４におけるシミュレーションタスクの再配分のアルゴリズムを具体的に説明した図であり、再配分前と後の各ＣＰＵの総処理時間を表している。再配分前にはＣＰＵ１１０の負荷が最も高い状態で、ＣＰＵ１２０の負荷が最も低い状態となっている。
【００４１】
ここで、ＣＰＵ１１０の中で最も負荷の小さいタスク２１０に対して、データ同期時間とＣＰＵのキャッシュに取り込まれるまでに要する時間を勘案して再割り当てをした場合の処理時間の推定値２２０を算出し、総処理時間が再割り当てにより改善時間２３０だけ下がるので、タスク２１０をＣＰＵ１２０に再割り当てする。
【００４２】
その状態で、さらに２番目に処理時間の小さいタスク２１１に対して同様に推定値２２１を算出し、総処理時間がさらに改善時間２３１だけ下がるので、タスク２１１をＣＰＵ１２０に再割り当てする。次にタスク２１２に対して同様に計算しても、総処理時間は改善されないので、再配分の処理を打ち切り、次のステップに進む。
【００４３】
このように、シミュレーション処理の再配分を行うことにより、並列実行を行うシミュレーション手段における処理負荷の偏りに起因するシミュレーション速度の低下を回避することができる。
【００４４】
次に、図２のフローチャートにおけるステップ１１７のデータ同期条件の判定について説明する。本実施の形態においては、以下に説明するように、データ同期条件として様々な要因を設定することができる。
【００４５】
（１）特定のシミュレーション対象信号の変化を判定。
これは、シミュレーション実行時に、シミュレーションによって特定の信号が変化したときに並列動作しているシミュレーション間のデータ同期処理を実行するものである。
【００４６】
特定の信号の変化を判定してデータ同期条件とすることにより、具体的なＬＳＩ機能のシミュレーションに適したデータ同期条件が容易に設定でき、シミュレーションの速度向上効果を得ることができる。
【００４７】
（２）特定の外部入力信号の変化を判定。
これは、シミュレーション実行時に、特定の外部入力信号が変化したときに並列動作しているシミュレーション間のデータ同期処理を実行するものである。
【００４８】
特定の外部入力信号の変化を判定してデータ同期条件とすることにより、外部からシミュレーションのデータ同期を制御することができるため、多様なシミュレーションの実行が可能となる。
【００４９】
（３）すべてのデータの同期処理を一括処理。
これは、データ同期時に一度にすべてのデータの同期処理を行うものである。これにより、例えば、データ同期条件の抽出が困難な場合に、それを考慮せずに機能ブロックの並列配置することが可能となり、シミュレーションの適応性を増すことができる。
【００５０】
（４）同期が必要なデータのみについて同期処理を行う。
これは、データ同期時に同期が必要なデータのみについて同期処理を行うものである。これにより、データ同期時の転送データ量を最小限に減らすことが可能となり、シミュレーションの速度向上効果を得ることができる。なお、同期が必要なデータの選択については、予め指定する方法や、実行時に動的に決定する方法などがある。
【００５１】
（５）ファイル入力等によりデータ同期条件を指定。
これは、データ同期条件をファイル入力等により予め指定し、指定されたデータ同期条件とその指定処理方法により同期処理を行う。これにより、データ同期条件とそれに伴う処理を最適に設定することが可能となり、シミュレーションの速度向上効果を得ることができる。
【００５２】
本実施の形態の複数のシミュレーション装置をクラスタ構成にして、より大規模なシミュレーションに対処できるシミュレーション装置を構成することができる。図５は、このようなシミュレーション装置の構成を示すブロック図である。図５において、シミュレーション装置３００は、図１のシミュレーション装置を１０１〜１０３としてクラスタリングし、ネットワーク３５０で接続して構成している。
【００５３】
その動作は図２および図３に示したフローチャートと同様であるが、ステップ１１７ではバスおよび外部に接続されたネットワーク３５０を用いて同期処理を行い、ステップ２０３およびステップ２０４において通信を行う対象は、バス１４０およびネットワーク３５０に接続された別ＣＰＵのスケジューラである。
【００５４】
これにより、複数ＣＰＵがバス接続されたクラスタ内では高速にシミュレーションを実行することができ、さらにクラスタ間をネットワークで接続することにより、さらなる大規模シミュレーションが高速に動作するシミュレーション装置を実現することができる。
【産業上の利用可能性】
【００５５】
本発明のシミュレーション方法および装置は、並列実行するシミュレーション手段にそれぞれ割り当てられるＬＳＩ機能のシミュレーション処理が最適に割り当てられるため、シミュレーション手段が高効率に使用され、総シミュレーション時間を短縮することができるという効果を有し、ＬＳＩのシミュレーション技術等として有用である。
【図面の簡単な説明】
【００５６】
【図１】本発明に係るＬＳＩのシミュレーション装置の構成例を示すブロック図。
【図２】本発明に係るＬＳＩのシミュレーション方法を説明するフローチャート。
【図３】本発明におけるスケジューリング方法を説明するフローチャート。
【図４】本発明におけるシミュレーションタスクの再配分アルゴリズムを説明する図。
【図５】本発明に係るＬＳＩのシミュレーション装置のクラスタ構成例を示す図。
【図６】従来手法によるシミュレーション装置の実施形態を示すブロック図。
【符号の説明】
【００５７】
１００、３００、４００  シミュレーション装置
１０１、１０２、１０３、４０１、４０２、４０３  コンピュータ
１１０、１２０、１３０  ＣＰＵ
１１１、１２１、１３１  スケジューリング部
１１２〜１１９、１３２〜１３９、２０１〜２０４  処理ステップ
１４０  バス
２１０、２１１、２１２  再割り当て前の実測処理時間
２２０、２２１  再割り当て後の推定処理時間
２３０、２３１  再割り当てによる総処理時間の改善時間
３５０、４５０  ネットワーク
【図１】
2007122158.tif 000003
【図２】
2007122158.tif 000004
【図３】
2007122158.tif 000005
【図４】
2007122158.tif 000006
【図５】
2007122158.tif 000007
【図６】
2007122158.tif 000008