JP2007122158A - Simulation method and device - Google Patents

Simulation method and device Download PDF

Info

Publication number
JP2007122158A
JP2007122158A JP2005310002A JP2005310002A JP2007122158A JP 2007122158 A JP2007122158 A JP 2007122158A JP 2005310002 A JP2005310002 A JP 2005310002A JP 2005310002 A JP2005310002 A JP 2005310002A JP 2007122158 A JP2007122158 A JP 2007122158A
Authority
JP
Japan
Prior art keywords
simulation
data synchronization
synchronization processing
lsi
execution time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2005310002A
Other languages
Japanese (ja)
Inventor
Shintaro Muramatsu
慎太郎 村松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005310002A priority Critical patent/JP2007122158A/en
Publication of JP2007122158A publication Critical patent/JP2007122158A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To avoid the deterioration of a simulation speed due to the unbalance of the processing load of a simulation method in the simulation device of multiple divided LSI functions. <P>SOLUTION: A plurality of CPUs 110, 120 and 130 which simulates multiple divided LSI functions in parallel are respectively provided with scheduling parts 111, 121 and 131 for executing data synchronization processing among the respective CPUs, and for mutually exchanging information among the respective CPUs by collecting the simulation execution time of each LSI function, and for deciding the possibility of shortening a simulation total execution time by redistributing the simulation of the LSI functions based on the simulation execution time, and for reassigning the simulation of the LSI functions to the respective CPUs. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明はLSIのシミュレーション技術に係り、特に複数の機能ブロックが同時に動作するモデルを複数のシミュレーション実行手段を用いて高効率にシミュレートするシミュレーション方法および装置に関する。   The present invention relates to LSI simulation technology, and more particularly to a simulation method and apparatus for simulating a model in which a plurality of functional blocks operate simultaneously using a plurality of simulation execution means with high efficiency.

近年の大規模なシステムLSIの開発においては、複雑なシステムを短期間で開発することがますます強く求められてきている。そこで、システムLSI上で動作するソフトウェア開発も早期に行う必要があり、実際のLSI上で開発するのではなく、システムLSIの機能をソフトウェアでモデル化したシミュレータ上で開発することが一般的になっている。しかし、ソフトウェアでシステムをモデル化した場合に、その動作速度は一般に対象のシステムLSIの規模が大きく成る程に低下してしまうという問題がある。その対策として、LSI回路内の各機能を複数のコンピュータで並列にシミュレートする手法が従来採用されている。   In the development of large-scale system LSIs in recent years, it has been increasingly demanded to develop complex systems in a short period of time. Therefore, it is necessary to develop software that operates on the system LSI at an early stage, and it is common to develop it on a simulator in which the functions of the system LSI are modeled by software, rather than on an actual LSI. ing. However, when a system is modeled by software, there is a problem that the operation speed generally decreases as the scale of the target system LSI increases. As a countermeasure, a method of simulating each function in an LSI circuit in parallel with a plurality of computers has been conventionally employed.

図6は特許文献1に示された従来手法によるシミュレーション装置を示すブロック図である。図6において、シミュレーション装置400は、LSIを構成する異なるクロック周波数を持つ複数の回路について、それぞれのクロック周波数毎にLSI機能を分割し、それぞれのクロックについてコンピュータ401〜403を用いて並列にシミュレーションを行い、同期処理に関してはネットワーク450を用いて処理する。このような構成により、クロック周波数の違いを吸収するための分周周期に係る処理が不要になり、その処理に起因するシミュレーション速度の低下を招くことが無く、全体のシミュレーション速度を向上させることができるとしている。
特開2005−63002号公報
FIG. 6 is a block diagram showing a simulation apparatus according to the conventional method disclosed in Patent Document 1. In FIG. In FIG. 6, a simulation apparatus 400 divides an LSI function for each clock frequency for a plurality of circuits having different clock frequencies constituting an LSI, and performs simulation in parallel using computers 401 to 403 for each clock. The synchronization processing is performed using the network 450. Such a configuration eliminates the need for a process related to the frequency dividing period to absorb the difference in clock frequency, and does not cause a decrease in simulation speed due to the process, thereby improving the overall simulation speed. I can do it.
JP 2005-63002 A

しかし、特許文献1に開示されたシミュレーションにおいては、複数のクロック周波数にそれぞれ従属するソフトウェアでモデル化したLSI機能のシミュレーションの処理負荷に偏りがあった場合に、並列実行するコンピュータの負荷が偏り、全体としてコンピュータの使用効率が悪くなり、シミュレーション速度が低下する。   However, in the simulation disclosed in Patent Document 1, when there is a bias in the processing load of the LSI function simulation modeled by software dependent on a plurality of clock frequencies, the load on the computer to be executed in parallel is biased, Overall, the use efficiency of the computer is deteriorated, and the simulation speed is lowered.

本発明は、LSI機能をシミュレートする際に、並列実行するシミュレーション手段の処理負荷の偏りに起因するシミュレーション速度の低下を回避することを目的とする。   It is an object of the present invention to avoid a decrease in simulation speed due to an uneven processing load of simulation means executed in parallel when simulating an LSI function.

本発明は、複数に分割されたLSI機能のシミュレーションを並列に実行する複数のシミュレーション手段と、各シミュレーション手段の間でデータ同期処理を実行するデータ同期処理手段と、各LSI機能のシミュレーション実行時間を収集し各シミュレーション手段の間で相互に情報交換するシミュレーション実行時間収集手段と、前記シミュレーション実行時間に基づきLSI機能のシミュレーションの再配分によるシミュレーション総実行時間の短縮可能性を判断し、各シミュレーション手段に対するLSI機能のシミュレーションの再割り当てを実行するスケジューリング手段とを備える。   The present invention provides a plurality of simulation means for executing parallel simulation of LSI functions divided into a plurality of data, a data synchronization processing means for executing data synchronization processing between the simulation means, and a simulation execution time for each LSI function. A simulation execution time collecting means for collecting and exchanging information between each simulation means, and determining the possibility of shortening the total simulation execution time by redistributing the simulation of the LSI function based on the simulation execution time; Scheduling means for executing reallocation of simulation of LSI functions.

上記構成によれば、各シミュレーション手段における処理負荷を分割されたLSI機能のシミュレーションごとに把握し、シミュレーション総実行時間が短縮されるように分割されたLSI機能のシミュレーションを各シミュレーション手段に再割り当てすることができるため、並列実行を行うシミュレーション手段の処理負荷の偏りに起因するシミュレーション速度の低下を回避するという作用が達成できる。これにより、シミュレーション手段が高効率に使用され、総シミュレーション時間を短縮することができる。   According to the above configuration, the processing load in each simulation unit is grasped for each divided LSI function simulation, and the simulation of the LSI function divided so as to reduce the total simulation execution time is reassigned to each simulation unit. Therefore, it is possible to achieve an effect of avoiding a decrease in simulation speed due to the uneven processing load of the simulation means performing parallel execution. Thereby, the simulation means is used with high efficiency, and the total simulation time can be shortened.

さらに本発明において、前記データ同期処理手段はデータ同期条件として特定のシミュレーション対象信号の変化を判定する。これにより、特定のシミュレーション対象信号の変化を検知してデータ同期処理を行うため、LSI機能のシミュレーションに適したデータ同期条件の設定が容易になる。   Furthermore, in the present invention, the data synchronization processing means determines a change in a specific simulation target signal as a data synchronization condition. As a result, since the data synchronization process is performed by detecting a change in a specific simulation target signal, it becomes easy to set data synchronization conditions suitable for the LSI function simulation.

さらに本発明において、前記データ同期処理手段はデータ同期条件として特定の外部入力信号の変化を判定する。これにより、外部からシミュレーションのデータ同期を制御することができるため、多様なシミュレーションの実行が可能となる。   In the present invention, the data synchronization processing means determines a change in a specific external input signal as a data synchronization condition. As a result, simulation data synchronization can be controlled from the outside, and various simulations can be executed.

さらに本発明において、前記データ同期処理手段はデータ同期時にすべてのデータの同期処理を一括して行う。これにより、データ同期時に一度にすべてのデータの同期処理を行うことができるため、例えば、データ同期条件の抽出が困難な場合に、それを考慮せずに機能ブロックを並列配置することが可能となり、シミュレーションの適応性を増すことができる。   Further, in the present invention, the data synchronization processing means collectively performs synchronization processing of all data at the time of data synchronization. As a result, all data can be synchronized at the same time during data synchronization. For example, when it is difficult to extract data synchronization conditions, functional blocks can be arranged in parallel without considering that. The flexibility of simulation can be increased.

さらに本発明において、前記データ同期処理手段はデータ同期時に同期が必要なデータのみについて同期処理を行う。これにより、データ同期時に同期が必要なデータのみについて同期処理を行うことができるため、データ同期時の転送データ量を最小限に減らすことが可能となり、シミュレーションの速度向上を図ることができる。   Further, in the present invention, the data synchronization processing means performs synchronization processing only for data that needs to be synchronized at the time of data synchronization. As a result, only the data that needs to be synchronized at the time of data synchronization can be synchronized, so the amount of data transferred at the time of data synchronization can be reduced to the minimum, and the speed of simulation can be improved.

さらに本発明において、前記データ同期処理手段はファイル入力等により予め指定されたデータ同期条件で同期処理を行う。これにより、データ同期条件をファイル入力等により予め指定することができるため、データ同期条件とそれに伴う処理を最適に設定することが可能となり、シミュレーションの速度向上を図ることができる。   Further, in the present invention, the data synchronization processing means performs synchronization processing under data synchronization conditions designated in advance by file input or the like. Thus, since the data synchronization condition can be designated in advance by file input or the like, it is possible to optimally set the data synchronization condition and the processing associated therewith, and the simulation speed can be improved.

さらに本発明において、前記データ同期処理手段は各シミュレーション手段の間に張られたネットワークを介してデータ同期処理を実行する。これにより、並列にシミュレーションを実行する手段であるコンピュータやハードウェアエミュレータ等がネットワークを介して接続されるため、より柔軟なシステム構成をとることができる。   Further, in the present invention, the data synchronization processing means executes data synchronization processing via a network established between the simulation means. Accordingly, since a computer, a hardware emulator, and the like, which are means for executing simulation in parallel, are connected via the network, a more flexible system configuration can be achieved.

さらに本発明において、前記データ同期処理手段は各シミュレーション手段の間に張られたバスを介してデータ同期処理を実行する。これにより、複数CPUがバス接続された1台のコンピュータでシミュレーションを実行することができるため、ネットワーク接続で構成されたシミュレーション装置に比べて、より高速に動作するシミュレーション装置を実現することができる。   In the present invention, the data synchronization processing means executes data synchronization processing via a bus extending between the simulation means. As a result, the simulation can be executed by a single computer to which a plurality of CPUs are connected by bus, so that a simulation apparatus that operates at a higher speed than a simulation apparatus configured by network connection can be realized.

さらに本発明において、前記スケジューリング手段はデータ同期処理の転送処理に必要な時間を勘案してLSI機能のシミュレーションの再配分によるシミュレーション総実行時間の短縮可能性を判断する。これにより、シミュレーション総実行時間の短縮可能性を正しく判断することができる。   Furthermore, in the present invention, the scheduling means determines the possibility of shortening the total simulation execution time by redistributing the simulation of the LSI function in consideration of the time required for the transfer process of the data synchronization process. Thereby, the possibility of shortening the total simulation execution time can be correctly determined.

さらに本発明のシミュレーション装置は、上記構成のシミュレーション装置を上位ネットワークで接続したクラスタ構成とする。これにより、複数CPUが接続されたクラスタ内では高速にシミュレーションを実行することができ、さらにネットワーク接続でクラスタ間を接続することで、より大規模シミュレーションを高速に実行するシミュレーション装置を実現することができる。   Furthermore, the simulation apparatus of the present invention has a cluster configuration in which the above-configured simulation apparatuses are connected via a higher-level network. As a result, it is possible to execute a simulation at a high speed in a cluster to which a plurality of CPUs are connected, and further to realize a simulation apparatus that executes a large-scale simulation at a high speed by connecting the clusters through a network connection. it can.

また、本発明は、複数に分割されたLSI機能のシミュレーションを並列に実行し、各LSI機能のシミュレーションの間でデータ同期処理を実行し、各LSI機能のシミュレーションの実行時間を収集し、前記シミュレーション実行時間に基づき並列実行するシミュレーションの再スケジューリングによるシミュレーション総実行時間の短縮可能性を判断し、前記シミュレーション総実行時間の短縮が可能な場合に前記再スケジューリングを実行する。   Further, the present invention executes a simulation of LSI functions divided into a plurality of parts in parallel, executes a data synchronization process between the simulations of the LSI functions, collects execution times of the simulations of the LSI functions, and Based on the execution time, it is determined whether the simulation total execution time can be shortened by rescheduling the simulation to be executed in parallel. If the simulation total execution time can be shortened, the rescheduling is executed.

上記構成によれば、各シミュレーションの実行時間を分割されたLSI機能のシミュレーションごとに把握し、シミュレーション総実行時間が短縮されるように分割されたLSI機能のシミュレーションを再スケジューリングすることができるため、並列実行を行うシミュレーションの処理負荷の偏りに起因するシミュレーション速度の低下を回避するという作用が達成できる。これにより、シミュレーション手段が高効率に使用され、総シミュレーション時間を短縮することができる。   According to the above configuration, it is possible to grasp the execution time of each simulation for each divided LSI function simulation and reschedule the divided LSI function simulation so that the total simulation execution time is shortened. The effect of avoiding a decrease in the simulation speed due to the uneven processing load of the simulation that performs parallel execution can be achieved. Thereby, the simulation means is used with high efficiency, and the total simulation time can be shortened.

さらに本発明において、少なくともクロック周波数毎に前記LSI機能を分割する。これにより、並列に実行する複数のシミュレーションモデルを容易に構築することができる。   Further, in the present invention, the LSI function is divided at least for each clock frequency. Thereby, a plurality of simulation models to be executed in parallel can be easily constructed.

さらに本発明において、特定のシミュレーション対象信号の変化をデータ同期条件として前記データ同期処理を行う。これにより、特定のシミュレーション対象信号の変化を検知してデータ同期処理を行うため、具体的なLSI機能のシミュレーションに適したデータ同期条件の設定が容易になる。   Furthermore, in the present invention, the data synchronization processing is performed using a change in a specific simulation target signal as a data synchronization condition. As a result, since the data synchronization process is performed by detecting a change in a specific simulation target signal, it is easy to set a data synchronization condition suitable for a specific LSI function simulation.

さらに本発明において、特定の外部入力信号の変化をデータ同期条件として前記データ同期処理を行う。これにより、外部からシミュレーションのデータ同期を制御することができるため、多様なシミュレーションの実行が可能となる。   Furthermore, in the present invention, the data synchronization processing is performed using a change in a specific external input signal as a data synchronization condition. As a result, simulation data synchronization can be controlled from the outside, and various simulations can be executed.

さらに本発明において、すべてのデータに対して前記データ同期処理を一括して行う。これにより、データ同期時に一度にすべてのデータの同期処理を行うことができるため、例えば、データ同期条件の抽出が困難な場合に、それを考慮せずに機能ブロックを並列配置することが可能となり、シミュレーションの適応性を増すことができる。   Furthermore, in the present invention, the data synchronization processing is performed collectively for all data. As a result, all data can be synchronized at the same time during data synchronization. For example, when it is difficult to extract data synchronization conditions, functional blocks can be arranged in parallel without considering that. The flexibility of simulation can be increased.

さらに本発明において、同期が必要なデータに対してのみ前記データ同期処理を行う。これにより、データ同期時に同期が必要なデータのみについて同期処理を行うことができるため、データ同期時の転送データ量を最小限に減らすことが可能となり、シミュレーションの速度向上を図ることができる。   Further, in the present invention, the data synchronization process is performed only for data that needs to be synchronized. As a result, only the data that needs to be synchronized at the time of data synchronization can be synchronized, so the amount of data transferred at the time of data synchronization can be reduced to the minimum, and the speed of simulation can be improved.

さらに本発明において、ファイル入力等により予め指定されたデータ同期条件で前記データ同期処理を行う。これにより、データ同期条件をファイル入力等により予め指定することができるため、データ同期条件とそれに伴う処理を最適に設定することが可能となり、シミュレーションの速度向上を図ることができる。   Furthermore, in the present invention, the data synchronization processing is performed under data synchronization conditions designated in advance by file input or the like. Thus, since the data synchronization condition can be designated in advance by file input or the like, it is possible to optimally set the data synchronization condition and the processing associated therewith, and the simulation speed can be improved.

さらに本発明において、データ同期処理の転送処理に必要な時間を勘案して前記再スケジューリングによるシミュレーション総実行時間の短縮可能性を判断する。これにより、シミュレーション総実行時間の短縮可能性を正しく判断することができる。   Furthermore, in the present invention, the possibility of shortening the total simulation execution time by the rescheduling is determined in consideration of the time required for the transfer process of the data synchronization process. Thereby, the possibility of shortening the total simulation execution time can be correctly determined.

本発明によれば、並列実行するシミュレーション手段にそれぞれ割り当てられるLSI機能のシミュレーション処理が最適に割り当てられるため、シミュレーション手段が高効率に使用され、総シミュレーション時間を短縮することができる。   According to the present invention, since the simulation processing of the LSI function assigned to each of the simulation means to be executed in parallel is optimally assigned, the simulation means can be used with high efficiency and the total simulation time can be shortened.

図1は本発明の一実施の形態に係るLSIのシミュレーション装置の構成を示すブロック図である。図1において、シミュレーション装置100は1台のコンピュータ101で構成され、そのコンピュータ101がLSI機能のシミュレーションを分担する複数のCPU110、CPU120、CPU130と、それぞれのCPU上で動作するスケジューリング部111、スケジューリング部121、スケジューリング部131と、それらを接続するバス140とで構成されている。   FIG. 1 is a block diagram showing a configuration of an LSI simulation apparatus according to an embodiment of the present invention. In FIG. 1, a simulation apparatus 100 is composed of a single computer 101. The computer 101 shares a simulation of LSI functions with a plurality of CPUs 110, 120, and 130, and a scheduling unit 111 and a scheduling unit that operate on the respective CPUs. 121, a scheduling unit 131, and a bus 140 connecting them.

LSI機能を並列実行できるように、CPU110、CPU120、CPU130はそれぞれ分割されたLSI機能のシミュレーションを行う。その際に、シミュレーション時間の収集をスケジューリング部111、スケジューリング部121、スケジューリング部131が行う。CPU110、CPU120、CPU130はバス140を経由して情報を交換することで、LSI機能のシミュレーションを実現する。   The CPU 110, the CPU 120, and the CPU 130 each simulate the divided LSI functions so that the LSI functions can be executed in parallel. At that time, simulation unit 111, scheduling unit 121, and scheduling unit 131 collect simulation time. The CPU 110, CPU 120, and CPU 130 exchange information via the bus 140 to realize LSI function simulation.

図2は本実施の形態におけるLSI機能のシミュレーション方法を説明するフローチャートである。図2のフローチャートにおいては2つのCPUの動作のみを示しているが、他のCPUについても同様である。ここではシミュレーションの流れをCPU110により説明する。   FIG. 2 is a flowchart for explaining an LSI function simulation method according to this embodiment. Although only the operations of the two CPUs are shown in the flowchart of FIG. 2, the same applies to the other CPUs. Here, the flow of simulation will be described by the CPU 110.

それぞれのCPUがLSI機能をシミュレートするために、各CPUにはクロックに相当するクロックカウンタ変数を用意する。ステップ112では初期状態として、予め決めておいた他のCPUと重複しない処理を割り当てる。   In order for each CPU to simulate the LSI function, each CPU is provided with a clock counter variable corresponding to a clock. In step 112, processing that does not overlap with other CPUs determined in advance is assigned as an initial state.

ステップ113では処理カウンタのカウントを開始し、ステップ114にて割り当てられた複数のシミュレーション処理のうち1つを実行し、実行終了後ステップ115にて処理カウンタのカウントを終了させ、処理にかかった時間を算出しスケジューリング部に報告する。   In step 113, the process counter starts counting, one of the simulation processes assigned in step 114 is executed, and after completion of the execution, the process counter count is ended in step 115, and the time taken for the process Is calculated and reported to the scheduling unit.

その後、ステップ116にて割り当てられたシミュレーション処理がすべて完了したか判定を行う。判定結果が真の場合はステップ117に進み、偽の場合はステップ113に戻ってシミュレーション処理を続行する。   Thereafter, it is determined whether all the simulation processes assigned in step 116 have been completed. If the determination result is true, the process proceeds to step 117. If the determination result is false, the process returns to step 113 to continue the simulation process.

次に、ステップ117ではバス140を通じて他のCPUと通信を行い、スケジューラがシミュレーション処理にかかった時間を互いに報告する。その後、各CPUの負荷を比較し、負荷が最適になるように各CPUに対してシミュレーション処理の再配分を行う。   Next, in step 117, communication with other CPUs is performed via the bus 140, and the schedulers report the time taken for the simulation process to each other. Thereafter, the load of each CPU is compared, and the simulation process is redistributed to each CPU so that the load is optimized.

さらにステップ117ではデータ同期条件かどうかの判定を行い、同期条件の場合は同期処理を行う。ここで、データ同期条件にはシミュレーション処理の再割り当てによる要因も含む。   Further, in step 117, it is determined whether or not the data synchronization condition is satisfied. If the synchronization condition is satisfied, the synchronization process is performed. Here, the data synchronization condition includes a factor due to reassignment of the simulation process.

次に、ステップ118でクロックカウンタ変数をインクリメントした後、ステップ119において終了条件に達したかどうかを判定する。判定結果が真の場合はシミュレーションを終了し、判定結果が偽の場合はステップ113に戻る。   Next, after incrementing the clock counter variable in step 118, it is determined in step 119 whether an end condition has been reached. If the determination result is true, the simulation is terminated. If the determination result is false, the process returns to step 113.

図3は本実施の形態におけるスケジューリング部の動作を説明するフローチャートであり、図2のステップ117におけるスケジューリング処理で実行される内容である。   FIG. 3 is a flowchart for explaining the operation of the scheduling unit in the present embodiment, which is the content executed in the scheduling process in step 117 of FIG.

図3のステップ201において、図2のステップ113から116で記録された各シミュレーション処理のタスクの実行時間を取り出す。次に、ステップ202で自CPUにおいて処理に要した総実行時間を算出する。ステップ203では、ステップ202で算出した総実行時間の情報をバス140を用いて他CPUのスケジューラと報告し合う。   In step 201 of FIG. 3, the execution time of each simulation processing task recorded in steps 113 to 116 of FIG. 2 is extracted. Next, in step 202, the total execution time required for processing in the own CPU is calculated. In step 203, information on the total execution time calculated in step 202 is reported to the schedulers of other CPUs using the bus 140.

次のステップ204においてタスクの再割り当ての処理を行う。すなわち、自CPUが最も負荷が高かった場合に、自己の保持しているシミュレーションタスクのうち最も負荷の小さいタスクについて、他のCPUに割り振るのに必要なデータ同期時間とCPUのキャッシュに取り込まれるまでに要する時間を勘案して再割り当てした場合の処理時間を換算し、最も負荷の小さいCPUにそのタスクを割り当てたときのそれぞれのCPU処理負荷を再計算し、総処理時間の推定値がそのタスクの再割り当て前より小さくなる場合にタスクの再割り当てを実行する。   In step 204, task reassignment is performed. That is, when the load of the own CPU is the highest, the task with the lightest load among the simulation tasks held by itself is taken into the CPU cache and the data synchronization time required to allocate to the other CPU The processing time when reassigned in consideration of the time required for conversion is converted, the CPU processing load when the task is assigned to the CPU with the smallest load is recalculated, and the estimated total processing time is the task Task reassignment is executed when it becomes smaller than before reassignment.

このタスクの再割り当ては、総処理時間の推定値がタスクの再割り当てを実行しても小さくならない状態に達するまで繰り返す。ここで、再割り当ては初めに最も負荷が高かったCPUのみが行う処理である。   This task reassignment is repeated until the estimated value of the total processing time reaches a state where it does not become small even if the task reassignment is executed. Here, the reassignment is processing performed only by the CPU having the highest load at the beginning.

図4は上記ステップ204におけるシミュレーションタスクの再配分のアルゴリズムを具体的に説明した図であり、再配分前と後の各CPUの総処理時間を表している。再配分前にはCPU110の負荷が最も高い状態で、CPU120の負荷が最も低い状態となっている。   FIG. 4 is a diagram specifically illustrating the simulation task redistribution algorithm in step 204, and represents the total processing time of each CPU before and after the redistribution. Before redistribution, the load on the CPU 110 is the highest and the load on the CPU 120 is the lowest.

ここで、CPU110の中で最も負荷の小さいタスク210に対して、データ同期時間とCPUのキャッシュに取り込まれるまでに要する時間を勘案して再割り当てをした場合の処理時間の推定値220を算出し、総処理時間が再割り当てにより改善時間230だけ下がるので、タスク210をCPU120に再割り当てする。   Here, the estimated value 220 of the processing time is calculated when the task 210 having the lightest load among the CPUs 110 is reassigned in consideration of the data synchronization time and the time required to be taken into the CPU cache. Since the total processing time is reduced by the improvement time 230 due to the reassignment, the task 210 is reassigned to the CPU 120.

その状態で、さらに2番目に処理時間の小さいタスク211に対して同様に推定値221を算出し、総処理時間がさらに改善時間231だけ下がるので、タスク211をCPU120に再割り当てする。次にタスク212に対して同様に計算しても、総処理時間は改善されないので、再配分の処理を打ち切り、次のステップに進む。   In this state, the estimated value 221 is similarly calculated for the task 211 having the second smallest processing time, and the total processing time is further reduced by the improvement time 231. Therefore, the task 211 is reassigned to the CPU 120. Next, even if the calculation is performed for the task 212 in the same manner, the total processing time is not improved.

このように、シミュレーション処理の再配分を行うことにより、並列実行を行うシミュレーション手段における処理負荷の偏りに起因するシミュレーション速度の低下を回避することができる。   In this way, by redistributing simulation processing, it is possible to avoid a decrease in simulation speed due to uneven processing load in the simulation means performing parallel execution.

次に、図2のフローチャートにおけるステップ117のデータ同期条件の判定について説明する。本実施の形態においては、以下に説明するように、データ同期条件として様々な要因を設定することができる。   Next, the determination of the data synchronization condition in step 117 in the flowchart of FIG. 2 will be described. In the present embodiment, as described below, various factors can be set as the data synchronization condition.

(1)特定のシミュレーション対象信号の変化を判定。
これは、シミュレーション実行時に、シミュレーションによって特定の信号が変化したときに並列動作しているシミュレーション間のデータ同期処理を実行するものである。
(1) A change in a specific simulation target signal is determined.
This is to perform data synchronization processing between simulations operating in parallel when a specific signal is changed by simulation during simulation execution.

特定の信号の変化を判定してデータ同期条件とすることにより、具体的なLSI機能のシミュレーションに適したデータ同期条件が容易に設定でき、シミュレーションの速度向上効果を得ることができる。   By determining a change in a specific signal and setting it as a data synchronization condition, a data synchronization condition suitable for a specific LSI function simulation can be easily set, and an effect of improving the simulation speed can be obtained.

(2)特定の外部入力信号の変化を判定。
これは、シミュレーション実行時に、特定の外部入力信号が変化したときに並列動作しているシミュレーション間のデータ同期処理を実行するものである。
(2) Determine a change in a specific external input signal.
This executes data synchronization processing between simulations operating in parallel when a specific external input signal changes during simulation execution.

特定の外部入力信号の変化を判定してデータ同期条件とすることにより、外部からシミュレーションのデータ同期を制御することができるため、多様なシミュレーションの実行が可能となる。   By determining a change in a specific external input signal and setting it as a data synchronization condition, it is possible to control the data synchronization of the simulation from the outside, so that various simulations can be executed.

(3)すべてのデータの同期処理を一括処理。
これは、データ同期時に一度にすべてのデータの同期処理を行うものである。これにより、例えば、データ同期条件の抽出が困難な場合に、それを考慮せずに機能ブロックの並列配置することが可能となり、シミュレーションの適応性を増すことができる。
(3) Batch processing of all data synchronization processing.
In this method, all data is synchronized at the same time during data synchronization. Thereby, for example, when it is difficult to extract the data synchronization condition, it is possible to arrange the functional blocks in parallel without considering this, and the adaptability of the simulation can be increased.

(4)同期が必要なデータのみについて同期処理を行う。
これは、データ同期時に同期が必要なデータのみについて同期処理を行うものである。これにより、データ同期時の転送データ量を最小限に減らすことが可能となり、シミュレーションの速度向上効果を得ることができる。なお、同期が必要なデータの選択については、予め指定する方法や、実行時に動的に決定する方法などがある。
(4) A synchronization process is performed only for data that needs to be synchronized.
In this method, synchronization processing is performed only for data that needs to be synchronized during data synchronization. As a result, the amount of data transferred during data synchronization can be reduced to a minimum, and an effect of improving the simulation speed can be obtained. Note that selection of data that needs to be synchronized includes a method of specifying in advance and a method of dynamically determining at the time of execution.

(5)ファイル入力等によりデータ同期条件を指定。
これは、データ同期条件をファイル入力等により予め指定し、指定されたデータ同期条件とその指定処理方法により同期処理を行う。これにより、データ同期条件とそれに伴う処理を最適に設定することが可能となり、シミュレーションの速度向上効果を得ることができる。
(5) Data synchronization conditions are specified by file input.
In this method, data synchronization conditions are designated in advance by file input or the like, and synchronization processing is performed using the designated data synchronization conditions and the designated processing method. As a result, it is possible to optimally set the data synchronization condition and the processing associated therewith, and an effect of improving the simulation speed can be obtained.

本実施の形態の複数のシミュレーション装置をクラスタ構成にして、より大規模なシミュレーションに対処できるシミュレーション装置を構成することができる。図5は、このようなシミュレーション装置の構成を示すブロック図である。図5において、シミュレーション装置300は、図1のシミュレーション装置を101〜103としてクラスタリングし、ネットワーク350で接続して構成している。   A plurality of simulation apparatuses according to this embodiment can be configured in a cluster configuration to configure a simulation apparatus that can cope with a larger-scale simulation. FIG. 5 is a block diagram showing the configuration of such a simulation apparatus. In FIG. 5, the simulation apparatus 300 is configured by clustering the simulation apparatuses in FIG. 1 as 101 to 103 and connecting them by a network 350.

その動作は図2および図3に示したフローチャートと同様であるが、ステップ117ではバスおよび外部に接続されたネットワーク350を用いて同期処理を行い、ステップ203およびステップ204において通信を行う対象は、バス140およびネットワーク350に接続された別CPUのスケジューラである。   The operation is the same as the flowchart shown in FIG. 2 and FIG. 3, but in step 117, synchronization processing is performed using the network 350 connected to the bus and the outside, and the objects to be communicated in step 203 and step 204 are: This is a scheduler of another CPU connected to the bus 140 and the network 350.

これにより、複数CPUがバス接続されたクラスタ内では高速にシミュレーションを実行することができ、さらにクラスタ間をネットワークで接続することにより、さらなる大規模シミュレーションが高速に動作するシミュレーション装置を実現することができる。   As a result, simulation can be performed at high speed in a cluster in which a plurality of CPUs are connected by bus, and a simulation apparatus that can perform further large-scale simulation at high speed can be realized by connecting the clusters with a network. it can.

本発明のシミュレーション方法および装置は、並列実行するシミュレーション手段にそれぞれ割り当てられるLSI機能のシミュレーション処理が最適に割り当てられるため、シミュレーション手段が高効率に使用され、総シミュレーション時間を短縮することができるという効果を有し、LSIのシミュレーション技術等として有用である。   According to the simulation method and apparatus of the present invention, since the simulation processing of the LSI function respectively assigned to the simulation means to be executed in parallel is optimally assigned, the simulation means can be used with high efficiency and the total simulation time can be shortened. It is useful as an LSI simulation technique.

本発明に係るLSIのシミュレーション装置の構成例を示すブロック図。1 is a block diagram showing a configuration example of an LSI simulation apparatus according to the present invention. 本発明に係るLSIのシミュレーション方法を説明するフローチャート。6 is a flowchart for explaining an LSI simulation method according to the present invention. 本発明におけるスケジューリング方法を説明するフローチャート。The flowchart explaining the scheduling method in this invention. 本発明におけるシミュレーションタスクの再配分アルゴリズムを説明する図。The figure explaining the redistribution algorithm of the simulation task in this invention. 本発明に係るLSIのシミュレーション装置のクラスタ構成例を示す図。The figure which shows the cluster structural example of the simulation apparatus of LSI which concerns on this invention. 従来手法によるシミュレーション装置の実施形態を示すブロック図。The block diagram which shows embodiment of the simulation apparatus by a conventional method.

符号の説明Explanation of symbols

100、300、400 シミュレーション装置
101、102、103、401、402、403 コンピュータ
110、120、130 CPU
111、121、131 スケジューリング部
112〜119、132〜139、201〜204 処理ステップ
140 バス
210、211、212 再割り当て前の実測処理時間
220、221 再割り当て後の推定処理時間
230、231 再割り当てによる総処理時間の改善時間
350、450 ネットワーク
100, 300, 400 Simulation apparatus 101, 102, 103, 401, 402, 403 Computer 110, 120, 130 CPU
111, 121, 131 Scheduling unit 112-119, 132-139, 201-204 Processing step 140 Bus 210, 211, 212 Actual processing time before reassignment 220, 221 Estimated processing time after reassignment 230, 231 By reassignment Improvement of total processing time 350, 450 network

Claims (20)

複数に分割されたLSI機能のシミュレーションを並列に実行する複数のシミュレーション手段と、
各シミュレーション手段の間でデータ同期処理を実行するデータ同期処理手段と、
各LSI機能のシミュレーション実行時間を収集し各シミュレーション手段の間で相互に情報交換するシミュレーション実行時間収集手段と、
前記シミュレーション実行時間に基づきLSI機能のシミュレーションの再配分によるシミュレーション総実行時間の短縮可能性を判断し、各シミュレーション手段に対するLSI機能のシミュレーションの再割り当てを実行するスケジューリング手段とを備えるシミュレーション装置。
A plurality of simulation means for executing parallel simulation of the LSI function divided into a plurality of parts;
Data synchronization processing means for executing data synchronization processing between the simulation means;
Simulation execution time collection means for collecting simulation execution times of each LSI function and exchanging information between the simulation means;
A simulation apparatus comprising: scheduling means for determining the possibility of shortening the total simulation execution time by redistributing simulation of LSI functions based on the simulation execution time and executing reallocation of simulation of LSI functions to each simulation means.
前記データ同期処理手段は、データ同期条件として特定のシミュレーション対象信号の変化を判定する請求項1記載のシミュレーション装置。   The simulation apparatus according to claim 1, wherein the data synchronization processing unit determines a change in a specific simulation target signal as a data synchronization condition. 前記データ同期処理手段は、データ同期条件として特定の外部入力信号の変化を判定する請求項1記載のシミュレーション装置。   The simulation apparatus according to claim 1, wherein the data synchronization processing unit determines a change in a specific external input signal as a data synchronization condition. 前記データ同期処理手段は、データ同期時にすべてのデータの同期処理を一括して行う請求項1記載のシミュレーション装置。   The simulation apparatus according to claim 1, wherein the data synchronization processing means collectively performs synchronization processing of all data during data synchronization. 前記データ同期処理手段は、データ同期時に同期が必要なデータのみについて同期処理を行う請求項1記載のシミュレーション装置。   The simulation apparatus according to claim 1, wherein the data synchronization processing means performs synchronization processing only on data that needs to be synchronized during data synchronization. 前記データ同期処理手段は、ファイル入力等により予め指定されたデータ同期条件で同期処理を行う請求項1記載のシミュレーション装置。   The simulation apparatus according to claim 1, wherein the data synchronization processing means performs synchronization processing under a data synchronization condition designated in advance by file input or the like. 前記データ同期処理手段は、各シミュレーション手段の間に張られたネットワークを介してデータ同期処理を実行する請求項1記載のシミュレーション装置。   2. The simulation apparatus according to claim 1, wherein the data synchronization processing means executes data synchronization processing via a network stretched between the simulation means. 前記データ同期処理手段は、各シミュレーション手段の間に張られたバスを介してデータ同期処理を実行する請求項1記載のシミュレーション装置。   2. The simulation apparatus according to claim 1, wherein the data synchronization processing means executes data synchronization processing via a bus extending between the simulation means. 前記スケジューリング手段は、データ同期処理の転送処理に必要な時間を勘案して前記LSI機能のシミュレーションの再配分によるシミュレーション総実行時間の短縮可能性を判断する請求項1記載のシミュレーション装置。   The simulation apparatus according to claim 1, wherein the scheduling means determines the possibility of shortening the total simulation execution time by redistributing simulation of the LSI function in consideration of time required for transfer processing of data synchronization processing. 請求項1から9の何れか一項記載のシミュレーション装置を上位ネットワークで接続したクラスタ構成のシミュレーション装置。   10. A simulation apparatus having a cluster configuration in which the simulation apparatus according to claim 1 is connected by an upper network. 複数に分割されたLSI機能のシミュレーションを並列に実行し、
各LSI機能のシミュレーションの間でデータ同期処理を実行し、
各LSI機能のシミュレーションの実行時間を収集し、
前記シミュレーション実行時間に基づき並列実行するシミュレーションの再スケジューリングによるシミュレーション総実行時間の短縮可能性を判断し、
前記シミュレーション総実行時間の短縮が可能な場合に前記再スケジューリングを実行するシミュレーション方法。
Run parallel simulation of LSI functions divided into multiple parts,
Data synchronization processing is executed between simulations of each LSI function,
Collect the execution time of simulation of each LSI function,
Determine the possibility of shortening the total simulation execution time by rescheduling the simulation to be executed in parallel based on the simulation execution time,
A simulation method for executing the rescheduling when the total simulation execution time can be shortened.
少なくともクロック周波数毎に前記LSI機能を分割する請求項11記載のシミュレーション方法。   The simulation method according to claim 11, wherein the LSI function is divided at least for each clock frequency. 特定のシミュレーション対象信号の変化をデータ同期条件として前記データ同期処理を行う請求項11記載のシミュレーション方法。   The simulation method according to claim 11, wherein the data synchronization processing is performed using a change in a specific simulation target signal as a data synchronization condition. 特定の外部入力信号の変化をデータ同期条件として前記データ同期処理を行う請求項11記載のシミュレーション方法。   12. The simulation method according to claim 11, wherein the data synchronization processing is performed using a change in a specific external input signal as a data synchronization condition. すべてのデータに対して前記データ同期処理を一括して行う請求項11記載のシミュレーション方法。   The simulation method according to claim 11, wherein the data synchronization processing is collectively performed for all data. 同期が必要なデータに対してのみ前記データ同期処理を行う請求項11記載のシミュレーション方法。   The simulation method according to claim 11, wherein the data synchronization processing is performed only for data that needs to be synchronized. ファイル入力等により予め指定されたデータ同期条件で前記データ同期処理を行う請求項11記載のシミュレーション方法。   12. The simulation method according to claim 11, wherein the data synchronization processing is performed under data synchronization conditions specified in advance by file input or the like. データ同期処理の転送処理に必要な時間を勘案して前記再スケジューリングによるシミュレーション総実行時間の短縮可能性を判断する請求項11記載のシミュレーション方法。   The simulation method according to claim 11, wherein the possibility of shortening the total simulation execution time by the rescheduling is determined in consideration of a time required for the transfer process of the data synchronization process. コンピュータに請求項11から18の何れか一項記載のシミュレーション方法を実行させるコンピュータプログラム。   A computer program for causing a computer to execute the simulation method according to any one of claims 11 to 18. 請求項19記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which the computer program according to claim 19 is recorded.
JP2005310002A 2005-10-25 2005-10-25 Simulation method and device Withdrawn JP2007122158A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005310002A JP2007122158A (en) 2005-10-25 2005-10-25 Simulation method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005310002A JP2007122158A (en) 2005-10-25 2005-10-25 Simulation method and device

Publications (1)

Publication Number Publication Date
JP2007122158A true JP2007122158A (en) 2007-05-17

Family

ID=38145974

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005310002A Withdrawn JP2007122158A (en) 2005-10-25 2005-10-25 Simulation method and device

Country Status (1)

Country Link
JP (1) JP2007122158A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011022693A (en) * 2009-07-14 2011-02-03 Fujitsu Semiconductor Ltd Method, program and device for designing integrated circuit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011022693A (en) * 2009-07-14 2011-02-03 Fujitsu Semiconductor Ltd Method, program and device for designing integrated circuit

Similar Documents

Publication Publication Date Title
EP3698294B1 (en) Machine learning runtime library for neural network acceleration
TWI547817B (en) Method, system and apparatus of planning resources for cluster computing architecture
JP5417908B2 (en) Virtual machine management system, virtual machine management method, virtual machine management apparatus, and virtual machine management program
US9977758B1 (en) Device profiling for tuning OpenCL applications on programmable integrated circuits
US20110209157A1 (en) Resource allocation method, program, and resource allocation apparatus
US7984413B2 (en) Wiring design processing method and wiring design processing apparatus
JP2008225759A (en) Detection device, system, program and detection method
EP2738675B1 (en) System and method for efficient resource management of a signal flow programmed digital signal processor code
JP4842783B2 (en) Information processing apparatus, information processing method, and program
US8768680B2 (en) Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores
CN111767121A (en) Operation method, device and related product
JP6763411B2 (en) Design support equipment, design support methods, and design support programs
CN112068942A (en) Large-scale parallel system simulation method based on single-node simulation
JP2007122158A (en) Simulation method and device
US8688428B2 (en) Performance evaluation device, performance evaluation method and simulation program
WO2012026582A1 (en) Simulation device, distributed computer system, simulation method and program
JP2002108958A (en) System and method for designing circuit and computer readable recording medium stored with circuit design program
JP4205525B2 (en) Parallel simulation apparatus and parallel simulation method
US7110928B1 (en) Apparatuses and methods for modeling shared bus systems
JP6223637B2 (en) Simulation apparatus, simulation method, and simulation program
JP2007293761A (en) Arrangement program, method and device for agent
US20200004503A1 (en) Information processing device, information processing method, and computer readable medium
JP5390464B2 (en) Simulation apparatus, simulation apparatus control method, and program
JP7493687B2 (en) Production planning device, production planning method, and production planning program
JP2006011840A (en) Integrated system

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071113

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071120

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090106