JP2006178663A - Information processor, method for processing information, verification apparatus, and method of verification - Google Patents

Information processor, method for processing information, verification apparatus, and method of verification Download PDF

Info

Publication number
JP2006178663A
JP2006178663A JP2004369920A JP2004369920A JP2006178663A JP 2006178663 A JP2006178663 A JP 2006178663A JP 2004369920 A JP2004369920 A JP 2004369920A JP 2004369920 A JP2004369920 A JP 2004369920A JP 2006178663 A JP2006178663 A JP 2006178663A
Authority
JP
Japan
Prior art keywords
data processing
data
processing block
output
block
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
JP2004369920A
Other languages
Japanese (ja)
Inventor
Yoshihiro Terajima
義博 寺島
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004369920A priority Critical patent/JP2006178663A/en
Publication of JP2006178663A publication Critical patent/JP2006178663A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a technique for permitting the optimum host computer to execute a program requested to be executed. <P>SOLUTION: When a simulation execution accepting part 100 accepts a request to execute software, a memory usage predicting part 101 calculates the memory usage required to execute the software, and the job for executing the software is stored in a queue 120, 121, 122 corresponding to a group 130, 131, 132 to which computers each with the memory capacity allowing the calculated memory usage belong. Any of the computers belonging to the group corresponding to the queue that stores the job is given permission to use the job. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、共有されるソフトウェアの管理に係る技術に関するものである。   The present invention relates to a technique related to management of shared software.

半導体回路の論理検証に関して、シミュレーションツールライセンスやホストコンピュータの有効的活用を目的として、これらリソースを一括管理し、複数の人でこれを共有するということが行われている。例えば論理検証シミュレーションを行う1テスター(論理検証者)は、これらリソースを管理しているシステム(プログラム)に対してリソース要求を行い、管理システムはテスターに対して順番にリソース、すなわちツールライセンスやホストコンピュータを割り当てる。シミュレーションが終了すると、リソースは開放され、管理システムの管理下に戻る。   Regarding logic verification of semiconductor circuits, for the purpose of effective use of a simulation tool license and a host computer, these resources are collectively managed and shared by a plurality of people. For example, one tester (logic verifier) that performs a logic verification simulation makes a resource request to a system (program) that manages these resources, and the management system sequentially requests the resources, that is, a tool license and a host. Assign a computer. When the simulation ends, the resources are released and the management system returns to the management.

この様なシステムにより、各テスターは、ツールライセンスの数やホストコンピュータの使用状況を気にすることなく、シミュレーションを行う事ができる。既にシミュレーションが流れているホストコンピュータで、さらに別のシミュレーションを流すと、CPUの仕事量は限られているため、シミュレーション速度は遅くなる。このため、ホストコンピュータが複数ある場合には、同じホストコンピュータでなるべく少ないシミュレーションが行われるように、リソース管理するという事が行われている。   With such a system, each tester can perform a simulation without worrying about the number of tool licenses or the usage status of the host computer. If another simulation is run on a host computer that is already running simulation, the workload of the CPU is limited, and the simulation speed is slowed down. For this reason, when there are a plurality of host computers, resource management is performed so that as few simulations as possible are performed on the same host computer.

また、ツールライセンスを一括管理せず、各テスターに割り当てた場合では、テスターがシミュレーションを行っていないときには、リソースが遊んでいる状態になるにも関わらず、他のテスターはこのリソースを使用することができない。さらに、リソースの数がテスターの数より少ない場合には、全てのテスターにリソースを割り当てられない。   In addition, if the tool license is not managed in a batch and assigned to each tester, the other testers will use this resource even if the resource is idle when the tester is not simulating. I can't. Furthermore, when the number of resources is less than the number of testers, resources cannot be allocated to all testers.

よって、リソースを一括管理するシステム(プログラム)により、リソースを使いたい人に対して、使いたい数だけ割り当てるという事が実現でき、リソースを有効に利用する事ができている。   Therefore, a system (program) that collectively manages resources can realize that a desired number of resources is allocated to those who want to use the resources, and resources can be used effectively.

また、年々拡大する電子機器の性能への要求を満たすため、大規模集積回路(以下LSI)は高機能化・高集積化を続けている。中央制御回路(以下CPU)と、このCPUと電気的に接続されている周辺回路とを内蔵し、大規模化したシステムLSI、このシステムLSIの大規模化・複雑化により、論理回路の設計期間の長期化が問題になっており、とりわけこの回路が正しく動作することを確認する機能検証が大きな割合を占めている。そこで、効率良く検証を行うことが重要になっている。   In addition, large-scale integrated circuits (hereinafter referred to as LSIs) continue to be highly functional and highly integrated in order to meet the ever-increasing demand for electronic device performance. Built-in central control circuit (hereinafter referred to as CPU) and peripheral circuits that are electrically connected to the CPU. Larger system LSI, and the design and development period of the logic circuit due to the increased scale and complexity of this system LSI. In particular, functional verification that confirms that this circuit operates correctly occupies a large percentage. Therefore, it is important to perform verification efficiently.

一般に、システムLSI等の集積回路の為の論理検証テストにおいては、集積回路に含まれる複数の周辺回路のそれぞれを個別に検証するテスト(以下、個別検証という)と、複数の周辺回路を同時に動作させて検証を行うテスト(以下、システム検証という)とは、別々に記述されていたが、これを改善し、個別検証のためのテストをシステム検証で流用可能とし、精度の高いシステム検証を効率よく行う発明が特許文献2に開示されている。   Generally, in a logic verification test for an integrated circuit such as a system LSI, a plurality of peripheral circuits included in the integrated circuit are individually verified (hereinafter referred to as individual verification) and a plurality of peripheral circuits are operated simultaneously. The test (hereinafter referred to as “system verification”), which was performed separately, was described separately, but this was improved and the test for individual verification could be used in the system verification. A frequently performed invention is disclosed in Patent Document 2.

このような発明では、複数の個別検証テストをシステム検証テストとして同時に起動させる仕組み、およびシステム検証テストにおいて、各個別検証テストに記載された、CPUコマンドおよび、メモリへのアクセス要求が衝突して誤動作を発生させないための仕組みが記載されている。   In such an invention, a mechanism for simultaneously starting a plurality of individual verification tests as a system verification test, and in the system verification test, a CPU command and a memory access request described in each individual verification test collide to cause a malfunction. It describes a mechanism for preventing the occurrence of

また、データパスの個別検証テストをシステム検証で流用する仕組みが従来から開示されている。   Further, a mechanism for diverting an individual data path verification test in system verification has been disclosed.

ここで、一般的なシステムLSIの集積回路について説明する。図6は、一般的なシステムLSIの集積回路の基本構成を示すブロック図である。同図において601はシステムLSIの集積回路、602は以下説明する各部を制御すると共に、後述する検証処理を実行するCPUである。604はメモリを内蔵し、このメモリへのデータの読み書きを制御するためのメモリコントローラである。以下説明するプログラムやデータはこのメモリ内に保持されている。605,606はそれぞれ本システムLSIの集積回路と外部とのデータ通信を行うためのインターフェースとして機能するI/Oデバイスである。607は、I/Oデバイスを介してメモリコントローラ604が有するメモリに入力されたデータに対して、画像処理などの各種の処理を行うことで、このデータの加工処理を行うデータパスである。603は上述の各部を繋ぐバスである。   Here, a general system LSI integrated circuit will be described. FIG. 6 is a block diagram showing a basic configuration of a general system LSI integrated circuit. In the figure, reference numeral 601 denotes an integrated circuit of a system LSI, and reference numeral 602 denotes a CPU that controls each unit described below and executes verification processing described later. Reference numeral 604 denotes a memory controller that has a built-in memory and controls reading / writing of data to / from the memory. Programs and data described below are held in this memory. Reference numerals 605 and 606 denote I / O devices that function as interfaces for data communication between the integrated circuit of the system LSI and the outside. Reference numeral 607 denotes a data path for performing various data processing such as image processing on data input to the memory included in the memory controller 604 via the I / O device. A bus 603 connects the above-described units.

このような構成を有するシステムLSIの集積回路において、先ず、データパス607が図7に示す如く、3つのデータ処理ブロックが直列につながっている構成を有する場合の、各データ処理ブロックの検証処理について説明する。図7は、3つのデータ処理ブロックが直列につながっているデータパス607の構成を示すブロック図である。702から704はそれぞれデータ処理ブロックで、それぞれこの順に処理を行う。   In the integrated circuit of the system LSI having such a configuration, first, verification processing of each data processing block when the data path 607 has a configuration in which three data processing blocks are connected in series as shown in FIG. explain. FIG. 7 is a block diagram showing a configuration of a data path 607 in which three data processing blocks are connected in series. Reference numerals 702 to 704 denote data processing blocks, which perform processing in this order.

図8は、データ処理ブロック(同図ではデータ処理1ブロック)の個別検証の処理の流れを示す図である。同図において検証に用いられる入力データファイル801は、入力バスモデル802により解釈され、検証対象であるデータ処理1ブロック806に送られる。   FIG. 8 is a diagram showing a flow of individual verification processing of the data processing block (data processing 1 block in the figure). The input data file 801 used for verification in the figure is interpreted by the input bus model 802 and sent to the data processing 1 block 806 to be verified.

この時の動作モード等を設定するためのパラメータデータファイル803はCPU I/Fモデル805を通して、動作モードが設定され、データ処理1ブロック806は、設定された動作モードに従って、入力データファイル801を用いて動作する。この動作結果は出力バスモデル807を通して、出力データファイル810として出力される。   The parameter data file 803 for setting the operation mode and the like at this time is set through the CPU I / F model 805, and the data processing 1 block 806 uses the input data file 801 according to the set operation mode. Works. The operation result is output as an output data file 810 through the output bus model 807.

一方、データ処理1ブロック806が出力すべき正解データとしての期待値データファイル808は予め、正解データを生成するデータ処理1プログラム804を用いて、入力データファイル801、パラメータデータファイル803より生成し、検証対象であるデータ処理1ブロック806の処理が終了すると、終了結果は期待値データファイル808と比較され、データ処理1ブロック806が期待した動作を行ったか否かを検証する。   On the other hand, an expected value data file 808 as correct answer data to be output by the data processing 1 block 806 is previously generated from the input data file 801 and the parameter data file 803 using the data processing 1 program 804 for generating correct answer data. When the processing of the data processing 1 block 806 to be verified is completed, the end result is compared with the expected value data file 808 to verify whether the data processing 1 block 806 has performed the expected operation.

また、図3示した検証方法ではデータ処理1ブロック806が動作を終了した後に期待値比較を行うとしたが、別な方法として、図11に示すような方法も一般的に知られている。   Further, in the verification method shown in FIG. 3, the expected value comparison is performed after the operation of the data processing 1 block 806 ends. However, as another method, a method shown in FIG. 11 is generally known.

図11は、上記処理とは異なる、データ処理ブロック(同図ではデータ処理1ブロック)の個別検証の処理の流れを示す図である。   FIG. 11 is a diagram showing a flow of individual verification processing of a data processing block (data processing 1 block in the figure) different from the above processing.

検証対象回路であるデータ処理1ブロック1106にデータを入力する方法、パラメータの設定方法は共に図3に示したものもと同じであるが、期待値の比較方法が異なっている。   The method for inputting data to the data processing 1 block 1106, which is the circuit to be verified, and the parameter setting method are the same as those shown in FIG. 3, but the method for comparing expected values is different.

図11では、出力バスモデル1107はデータ処理1ブロック1106とのハンドシェイク動作のみを行い、出力データファイルは作成しない。データ処理1ブロック1106と出力バスモデル1107をつなぐバスの仕様がハンドシェイクを必要としないものである場合には、必ずしも出力バスモデル1107は必要としない。この検証環境では新たにデータ1モニタ1111を設けた。   In FIG. 11, the output bus model 1107 performs only a handshake operation with the data processing 1 block 1106 and does not create an output data file. If the specification of the bus connecting the data processing 1 block 1106 and the output bus model 1107 does not require handshaking, the output bus model 1107 is not necessarily required. In this verification environment, a data 1 monitor 1111 is newly provided.

データ1モニタ1111は、データ処理1ブロック1106が出力する処理結果データを各クロックサイクル毎に監視し、予め作成された期待値1データファイル1108とオン・ザ・フライで比較する。この検証環境は図8の検証環境と比して、オン・ザ・フライで期待値比較を行っているため、データ処理1ブロック1106が処理の途中で期待した動作を行わなかった場合であっても、ブロックが全ての処理を終了する前にErrorとして検出することができ、余計なシミュレーションを行わなくてよい。   The data 1 monitor 1111 monitors the processing result data output from the data processing 1 block 1106 every clock cycle, and compares it with an expected value 1 data file 1108 created in advance on the fly. Since this verification environment compares expected values on the fly compared to the verification environment of FIG. 8, the data processing 1 block 1106 does not perform the expected operation during the processing. However, before the block finishes all processing, it can be detected as an error, and no extra simulation is required.

このデータ処理1ブロックの検証において、従来では、図9に示したテスト記述を定義し、実行する。図9は、従来用いたテスト記述の構成例を示す図である。   In the verification of this data processing 1 block, conventionally, the test description shown in FIG. 9 is defined and executed. FIG. 9 is a diagram showing a configuration example of a test description used conventionally.

同図においてデータ処理1ブロック用シーケンスクラスは、全てのデータ処理ブロックに共通の検証シーケンスを定義する共通検証関数(共通シーケンス基本クラス)を継承して作成したものである。このシーケンスクラスが持つシーケンス関数には、データ処理1ブロックの検証シーケンスである、初期化、パラメータ設定、期待値作成、テスト開始、処理終了待ち、期待値比較等の処理が定義されている。また、この順に実行することも定義されている(同図では番号が付けてある順に実行する)。そして、このデータ処理1ブロック用シーケンスクラスと共通検証関数とを用いる事により、データ処理ブロック1の個別検証を行う。このような検証処理については周知のものであるので、これに関する詳細な説明は省略する。   In the figure, the sequence class for data processing 1 block is created by inheriting a common verification function (common sequence basic class) that defines a verification sequence common to all data processing blocks. In the sequence function of this sequence class, processes such as initialization, parameter setting, expected value creation, test start, process end wait, expected value comparison, etc., which are verification sequences for one block of data processing, are defined. It is also defined that the processes are executed in this order (in the figure, they are executed in the order in which they are numbered). The data processing block 1 is individually verified by using the sequence class for the data processing 1 block and the common verification function. Since such verification processing is well known, detailed description thereof will be omitted.

また、図7に示す如く、データ処理ブロックが複数の場合にはそれぞれについてシーケンスクラスを同様に作成する。図10は、図7の各データ処理ブロックについて作成したシーケンスクラス、及びそれぞれのシーケンスの実行順を示す図である。共通検証関数は、各シーケンスクラスのシーケンス関数を逐次呼び出す事によりシステム検証を行うことが出来、かつ個別検証でのテスト記述をシステム検証に流用可能となる。   Further, as shown in FIG. 7, when there are a plurality of data processing blocks, a sequence class is similarly created for each. FIG. 10 is a diagram showing the sequence class created for each data processing block in FIG. 7 and the execution order of each sequence. The common verification function can perform system verification by sequentially calling sequence functions of each sequence class, and the test description in the individual verification can be used for system verification.

また、図12に示すように個別検証で作成したテストベンチから、システム検証のテストベンチを構成することができる。図12は、それぞれのデータ処理ブロックに対する検証の流れ((a)〜(c))を1つ((d))にまとめた図である。ここでのシステムは、3つのデータ処理ブロックを有するシステムである。   Further, as shown in FIG. 12, a test bench for system verification can be configured from a test bench created by individual verification. FIG. 12 is a diagram that summarizes the verification flow ((a) to (c)) for each data processing block into one ((d)). The system here is a system having three data processing blocks.

図13は、3つのデータ処理ブロックを有するシステムの検証装置の基本構成を示すブロック図である。同図において1315は、データ処理1ブロックについて個別検証テストベンチを行うための各部を示すものであり、1325は、データ処理2ブロックについて個別検証テストベンチを行うための各部を示すものであり、1335は、データ処理3ブロックについて個別検証テストベンチを行うための各部を示すものである。   FIG. 13 is a block diagram showing a basic configuration of a verification apparatus of a system having three data processing blocks. In the figure, reference numeral 1315 indicates each part for performing the individual verification test bench for the data processing 1 block, and 1325 indicates each part for performing the individual verification test bench for the data processing 2 block. These show each part for performing an individual verification test bench about data processing 3 blocks.

このように、個別検証で用いられたデータモニタは、システム検証のテストベンチでも有効であり、システム検証において期待値比較エラーが場合にも、どのデータ処理ブロックブロックのバグによるものなのかを特定することが容易である。
特開2000−031284号公報 特開2002−55843号公報
In this way, the data monitor used in the individual verification is also effective in the test bench for system verification, and when an expected value comparison error occurs in the system verification, it is specified which data processing block block is caused by a bug. Is easy.
JP 2000-031284 A JP 2002-55843 A

検証対象の半導体回路や、これを検証するためのテストベンチ(テストプログラム)は、半導体プロセスの進化に伴い、年々巨大化している。この大きな半導体回路を論理検証するために、この大きなテストベンチを用いてシミュレーションを行うためには、ホストコンピュータに大きなサイズのメモリを搭載する事を必要とする。しかし、メモリは高価なため、全てのホストコンピュータに搭載できる限りの、大きなメモリを積むという事は難しい。   The semiconductor circuit to be verified and the test bench (test program) for verifying the semiconductor circuit have become larger year by year as the semiconductor process has evolved. In order to perform logic verification using this large test bench in order to verify the logic of this large semiconductor circuit, it is necessary to mount a large-sized memory in the host computer. However, since the memory is expensive, it is difficult to load as much memory as possible in all the host computers.

一方、各テスターの検証対象の回路規模やテストベンチの大きさには差があり、全てのテスターが大きなメモリを必要するわけではない。   On the other hand, there is a difference in the circuit scale to be verified and the size of the test bench of each tester, and not all testers require a large memory.

このため、予算の許す範囲でいくつかのホストコンピュータには、最大限のメモリを搭載するというように、ホストコンピュータによってメモリの搭載量に差をつけ、テストベンチの規模やテストの内容によりホストコンピュータを割り当てを変えたいという要求があった。しかし、前述のようなリソースを一括管理するような方法だけでは不十分であるという問題があった。   For this reason, some host computers are equipped with the maximum amount of memory within the limits of the budget, so that the amount of memory varies depending on the host computer, and the host computer depends on the size of the test bench and the content of the test. There was a request to change the allocation. However, there is a problem that the above-described method for managing resources collectively is not sufficient.

すなわち、管理システムによって割り当てられたホストコンピュータのメモリー容量が、テスト(テストベンチ)が必要とするメモリ容量よりも少なかった場合には、シミュレーションは異常終了をしてしまうという問題があった。   In other words, if the memory capacity of the host computer allocated by the management system is less than the memory capacity required by the test (test bench), the simulation ends abnormally.

本発明は以上の問題に鑑みてなされたものであり、実行要求されたプログラムを最適なホストコンピュータに対して実行許可する為の技術を提供することを目的とする。   The present invention has been made in view of the above problems, and an object of the present invention is to provide a technique for permitting execution of a requested program to an optimal host computer.

また、図13に示した構成でもって各データ処理ブロックを検証する際、それぞれのデータモニタは、前述の通り、クロックの毎サイクルにおいて処理出力データを監視しており、これら監視する回数が多くなればなるほどシミュレーション時間に影響を与え、遅くなるという問題があった。すなわちデータモニタの数が多ければ多いほどシミュレーション時間が長くなってしまう。これに対し、単純に最終段のデータモニタ、すなわち図13におけるデータ3モニタ1333だけを有効にするという方法もあるが、これではこのモニタにてErrorを検出したときに、どのデータ処理ブロックの処理が正しくなかったのかを特定することが非常に困難であるという問題があった。これらの問題は、集積回路の論理検証を長引かせ、製品開発日程に大きな影響を及ぼす。   Further, when verifying each data processing block with the configuration shown in FIG. 13, each data monitor monitors the processing output data in each cycle of the clock as described above, and the number of times of monitoring can be increased. There was a problem that the simulation time was affected more and more slowly. That is, the more data monitors, the longer the simulation time. On the other hand, there is a method in which only the last stage data monitor, that is, the data 3 monitor 1333 in FIG. 13 is enabled, but in this case, when an error is detected in this monitor, which data processing block processing There was a problem that it was very difficult to identify whether the error was incorrect. These problems prolong integrated circuit logic verification and have a significant impact on product development schedules.

よって、本発明の別の目的としては、より高速にデータ処理ブロックの動作検証を行うための技術を提供することを目的とする。   Therefore, another object of the present invention is to provide a technique for performing operation verification of a data processing block at a higher speed.

本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。   In order to achieve the object of the present invention, for example, an information processing apparatus of the present invention comprises the following arrangement.

即ち、複数のコンピュータで共有するソフトウェアを保持している情報処理装置であって、
前記複数のコンピュータを搭載メモリ容量に応じて複数のグループに分けた場合に、それぞれのグループに対応するキューを保持するキュー保持手段と、
前記ソフトウェアの実行要求を受けると、前記ソフトウェアの実行に必要なメモリ使用量を求める計算手段と、
前記計算手段が求めたメモリ使用量を許容する搭載メモリ容量を有するコンピュータが属するグループに対応するキューに、前記ソフトウェアの実行ジョブを格納する格納手段と
前記格納手段が実行ジョブを格納したキューに対応するグループに属するコンピュータの何れかに前記実行ジョブの使用許可を与える許可手段と
を備えることを特徴とする。
That is, an information processing apparatus holding software shared by a plurality of computers,
A queue holding means for holding a queue corresponding to each group when the plurality of computers are divided into a plurality of groups according to the installed memory capacity;
Upon receiving the execution request for the software, calculation means for obtaining the memory usage necessary for the execution of the software,
Corresponding to a queue corresponding to a group to which a computer having an installed memory capacity allowing the memory usage obtained by the calculation means belongs, and a queue storing the execution job of the software Permission means for granting permission to use the execution job to any of the computers belonging to the group.

本発明の目的を達成するために、例えば、本発明の検証装置は以下の構成を備える。   In order to achieve the object of the present invention, for example, the verification apparatus of the present invention comprises the following arrangement.

即ち、入力データを処理して後段に出力するデータ処理ブロックを複数個直列に結合した状態で備え、データ入力側のデータ処理ブロックにデータを入力した後に後段のデータ処理ブロックを順次動作させることで、それぞれのデータ処理ブロックの動作検証処理を行う検証装置であって、
それぞれのデータ処理ブロックについて、
データ処理ブロックの出力を所定の時間間隔で監視する監視手段と、
前記監視手段が監視している出力を保存する保存手段と、
前記監視手段が監視した出力が本来従うべき正解データを保持する保持手段と、
前記監視手段が監視した出力が、当該出力に対応する正解データと一致するか否かを判断する判断手段と
を備え、
出力側の末端データ処理ブロックについては当該末端データ処理ブロックの前記監視手段、前記保存手段、前記判断手段を動作させると共に、前記末端データ処理ブロック以外のデータ処理ブロックについては前記保存手段のみを動作させて前記動作検証処理を行い、当該判断手段が一致していないと判断した場合には、それぞれのデータ処理ブロックの出力を、当該判断時に最も最近の時点でそれぞれのデータ処理ブロックの前記保存手段が保存した出力値に再設定してから、それぞれのデータ処理ブロックの動作を再開させる制御手段と、
前記制御手段による動作再開後、それぞれのデータ処理ブロックの前記判断手段のうち、一致していないと判断した判断手段を有するデータ処理ブロックを特定する特定手段と
を備える。
That is, a plurality of data processing blocks that process input data and output to the subsequent stage are connected in series, and after the data is input to the data processing block on the data input side, the subsequent data processing block is operated sequentially. , A verification device that performs operation verification processing of each data processing block,
For each data processing block,
Monitoring means for monitoring the output of the data processing block at predetermined time intervals;
Storage means for storing the output monitored by the monitoring means;
Holding means for holding correct data that the output monitored by the monitoring means should follow originally;
Judgment means for judging whether or not the output monitored by the monitoring means matches the correct data corresponding to the output;
For the terminal data processing block on the output side, the monitoring unit, the storage unit, and the determination unit of the terminal data processing block are operated, and only the storage unit is operated for data processing blocks other than the terminal data processing block. When the operation verification process is performed and it is determined that the determination unit does not match, the output of each data processing block is output to the storage unit of each data processing block at the most recent time at the time of the determination. A control means for resetting the saved output value and restarting the operation of each data processing block;
After the operation is resumed by the control means, a specifying means for specifying a data processing block having a determining means determined to be inconsistent among the determining means of each data processing block.

本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。   In order to achieve the object of the present invention, for example, an information processing method of the present invention comprises the following arrangement.

即ち、複数のコンピュータで共有するソフトウェアを保持しており、当該複数のコンピュータを搭載メモリ容量に応じて複数のグループに分けた場合に、それぞれのグループに対応するキューを保持するキュー保持手段を備える情報処理装置が行う情報処理方法であって、
前記ソフトウェアの実行要求を受けると、前記ソフトウェアの実行に必要なメモリ使用量を求める計算工程と、
前記計算工程で求めたメモリ使用量を許容する搭載メモリ容量を有するコンピュータが属するグループに対応するキューに、前記ソフトウェアの実行ジョブを格納する格納工程と
前記格納工程で実行ジョブを格納したキューに対応するグループに属するコンピュータの何れかに前記実行ジョブの使用許可を与える許可工程と
を備えることを特徴とする。
In other words, when a plurality of computers holds software shared and the plurality of computers are divided into a plurality of groups according to the installed memory capacity, a queue holding unit that holds a queue corresponding to each group is provided. An information processing method performed by an information processing apparatus,
Upon receiving the execution request for the software, a calculation step for obtaining a memory usage necessary for executing the software;
Corresponding to the storage step for storing the execution job of the software and the queue for storing the execution job in the storage step in the queue corresponding to the group to which the computer having the installed memory capacity allowing the memory usage obtained in the calculation step belongs A permission step of giving permission to use the execution job to any of the computers belonging to the group.

本発明の目的を達成するために、例えば、本発明の検証装置の制御方法は以下の構成を備える。   In order to achieve the object of the present invention, for example, a method for controlling a verification apparatus of the present invention comprises the following arrangement.

即ち、入力データを処理して後段に出力するデータ処理ブロックを複数個直列に結合した状態で備え、データ入力側のデータ処理ブロックにデータを入力した後に後段のデータ処理ブロックを順次動作させることで、それぞれのデータ処理ブロックの動作検証処理を行う検証装置の制御方法であって、
それぞれのデータ処理ブロックについて、
データ処理ブロックの出力を所定の時間間隔で監視する監視工程と、
前記監視工程で監視している出力を保存する保存工程と、
前記監視工程で監視した出力が本来従うべき正解データを保持する保持工程と、
前記監視工程で監視した出力が、当該出力に対応する正解データと一致するか否かを判断する判断工程と
を備え、
出力側の末端データ処理ブロックについては当該末端データ処理ブロックの前記監視工程、前記保存工程、前記判断工程における処理を動作させると共に、前記末端データ処理ブロック以外のデータ処理ブロックについては前記保存工程における処理のみを動作させて前記動作検証処理を行い、当該判断工程で一致していないと判断した場合には、それぞれのデータ処理ブロックの出力を、当該判断時に最も最近の時点でそれぞれのデータ処理ブロックの前記保存工程で保存した出力値に再設定してから、それぞれのデータ処理ブロックの動作を再開させる制御工程と、
前記制御工程による動作再開後、それぞれのデータ処理ブロックの前記判断工程のうち、一致していないと判断した判断工程を有するデータ処理ブロックを特定する特定工程と
を備えることを特徴とする。
That is, a plurality of data processing blocks that process input data and output to the subsequent stage are connected in series, and after the data is input to the data processing block on the data input side, the subsequent data processing block is operated sequentially. , A method of controlling a verification device that performs an operation verification process of each data processing block,
For each data processing block,
A monitoring step of monitoring the output of the data processing block at predetermined time intervals;
A storage step for storing the output monitored in the monitoring step;
A holding step for holding correct data that the output monitored in the monitoring step should originally follow;
A determination step of determining whether or not the output monitored in the monitoring step matches the correct data corresponding to the output;
For the terminal data processing block on the output side, the processing in the monitoring step, the storage step, and the determination step of the terminal data processing block is operated, and for the data processing blocks other than the terminal data processing block, the processing in the storage step When the operation verification processing is performed by operating only the data, and it is determined that they do not match in the determination step, the output of each data processing block is displayed at the most recent time at the time of the determination. After resetting the output value stored in the storage step, the control step of restarting the operation of each data processing block,
And a specifying step of specifying a data processing block having a determination step that is determined not to match among the determination steps of the respective data processing blocks after the operation is resumed by the control step.

本発明の構成により、実行要求されたプログラムを最適なホストコンピュータに対して実行許可することができる。   According to the configuration of the present invention, it is possible to permit execution of a requested program to an optimal host computer.

以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。   Hereinafter, the present invention will be described in detail according to preferred embodiments with reference to the accompanying drawings.

[第1の実施形態]
先ず、従来のシステムについて説明する。
[First Embodiment]
First, a conventional system will be described.

<従来のシステム>
図3は、従来のシステムの機能構成を示す図である。このシステムは、回路の論理検証を行うためのシミュレーションプログラムを、要求されたコンピュータについて実行許可するというためのものである。
<Conventional system>
FIG. 3 is a diagram showing a functional configuration of a conventional system. This system is for permitting execution of a simulation program for performing logic verification of a circuit on a requested computer.

300はシミュレーション実行受付部で、ユーザからシミュレーション実行要求を受け付ける。シミュレーション実行受付部300はシミュレーション実行要求が入力されると、要求されたシミュレーションを行うソフトウェア(プログラム)を実行するジョブをシミュレーションキュー320に投入する。シミュレーションキュー320は、シミュレーション実行受付部300から投入されたジョブを順次保持するキューとして機能すると共に、ソフトウェアの実行状況を監視する。   Reference numeral 300 denotes a simulation execution receiving unit that receives a simulation execution request from a user. When a simulation execution request is input, the simulation execution accepting unit 300 inputs a job for executing the requested simulation (software) to the simulation queue 320. The simulation queue 320 functions as a queue that sequentially holds jobs submitted from the simulation execution receiving unit 300 and monitors the execution status of software.

なお、ここでは説明上、ソフトウェアのライセンス数を後述するホストコンピュータの数と同数にした。すなわち、シミュレーションを高速に行うため、1つのホストコンピューター上では1つのシミュレーションしか行わない(1つのシミュレーションソフトウェアしか動作しない)ように制御した。   Here, for the sake of explanation, the number of software licenses is the same as the number of host computers described later. That is, in order to perform the simulation at high speed, control was performed so that only one simulation is performed on one host computer (only one simulation software operates).

330はホストコンピュータ群で、この中に現在処理を行っていない(空いている)ホストコンピュータがあれば、このホストコンピュータにソフトウェアの実行のライセンスを与えると共に、シミュレーションキュー320から次に取り出し可能なジョブをこのホストコンピュータに割り当てるので、ホストコンピュータは割り当てられたジョブを実行(ソフトウェアを実行)する。   Reference numeral 330 denotes a host computer group. If there is any host computer that is not currently processing (free), a license for executing software is given to this host computer, and a job that can be taken out from the simulation queue 320 next. Is assigned to this host computer, the host computer executes the assigned job (executes the software).

そしてジョブの実行が完了すると、ホストコンピュータはジョブの実行終了の旨をシミュレーションキュー320に通知するので、シミュレーションキュー320は、シミュレーションソフトウェアを実行中のホストコンピュータを把握してると共に、シミュレーションキュー320に投入されたジョブは、ホストコンピュータ群330のうち、空いているホストコンピュータに割り当てられる。   When the execution of the job is completed, the host computer notifies the simulation queue 320 that the job has been completed, so that the simulation queue 320 knows the host computer that is executing the simulation software and puts it into the simulation queue 320. The assigned job is assigned to a free host computer in the host computer group 330.

図4は、シミュレーションキュー320が行う処理のフローチャートである。先ず、ホストコンピュータ群330のうち空いているホストコンピュータがあるかをチェックする(ステップS410)。そして空いているホストコンピュータが無ければ、シミュレーション実行終了の指示を待ち(ステップS450)、この指示を受ければ処理をステップS420に進め、この指示を発したホストコンピュータにシミュレーションソフトウェアのライセンスを発行する(ステップS420)と共に、このシミュレーションソフトウェアの実行許可を与える(ステップS430)。   FIG. 4 is a flowchart of processing performed by the simulation queue 320. First, it is checked whether there is a free host computer in the host computer group 330 (step S410). If there is no vacant host computer, it waits for an instruction to end simulation execution (step S450). If this instruction is received, the process proceeds to step S420, and a simulation software license is issued to the host computer that issued this instruction (step S450). Together with step S420), the execution permission of this simulation software is given (step S430).

その結果、ホストコンピュータは実行許可が与えられたシミュレーションソフトウェアを実行するのであるが、実行が終了すると、ライセンスを解放するので、シミュレーションキュー320はこれを待ち、受け付ける(ステップS440)。   As a result, the host computer executes the simulation software to which the execution permission is given. When the execution is completed, the license is released, and the simulation queue 320 waits for and accepts this (step S440).

ここで例えば、シミュレーションソフトウェアが、半導体回路の論理検証のシミュレーションであるとする。そうすると、ホストコンピュータにとってシミュレーションソフトウェアの実行負荷は、論理検証対象の半導体回路の規模、及び検証用プログラム(テスト、及びテストベンチ)の規模によって異なってくる。すなわち、これらが大きければ、使用するコンピュータ上のメモリも多くなる。時にはシミュレーションソフトウェアの実行負荷がホストコンピュータの能力を超え、すなわちシミュレーションソフトウェアの実行に必要なメモリ容量がホストコンピュータが有するメモリサイズを超えてしまい、シミュレーションが破綻するという問題が起きる。   Here, for example, it is assumed that the simulation software is a logic verification simulation of a semiconductor circuit. Then, the execution load of the simulation software for the host computer varies depending on the scale of the semiconductor circuit to be logically verified and the scale of the verification program (test and test bench). That is, if these are large, more memory is used on the computer. Sometimes, the execution load of the simulation software exceeds the capacity of the host computer, that is, the memory capacity necessary for executing the simulation software exceeds the memory size of the host computer, causing a problem that the simulation fails.

このため、ホストコンピュータにはさらに大きなサイズのメモリを搭載することが要求されるが、メモリは高価なため、前述のホストコンピュータ群全てに十分なメモリを搭載することが難しいという問題がある。   For this reason, the host computer is required to be equipped with a larger size memory. However, since the memory is expensive, there is a problem that it is difficult to install a sufficient memory in all the host computer groups described above.

また、前述のように、シミュレーションソフトウェアの実行負荷は、検証対象の半導体回路、及び検証用プログラムの規模によって異なるため、これらが比較的小さい場合は、ホストコンピュータに大きなメモリを搭載しなくても十分シミュレーションを行う事ができ、必要以上のメモリを搭載する事は無駄となるという問題がある。   As described above, since the execution load of the simulation software varies depending on the scale of the semiconductor circuit to be verified and the verification program, if these are relatively small, it is not necessary to install a large memory in the host computer. There is a problem that a simulation can be performed and it is useless to install more memory than necessary.

<本実施形態に係るシステム>
以上の問題を解決すべく、本実施形態に係るシステムは図1に示す構成を備える。図1は、本実施形態に係るシステムの機能構成を示す図である。なお、本実施形態に係るシステムもまた、ホストコンピュータから要求されたシミュレーションソフトウェアの実行を管理するものであるが、以下の説明においても、このシミュレーションは、半導体回路の論理検証のシミュレーションであるとする。しかし、以下の説明は、これ以外の種類のシミュレーションであっても良いし、シミュレーションの種類に限定するものではない。また、実行を管理するソフトウェアの種類についても特に限定するものではない。
<System according to this embodiment>
In order to solve the above problem, the system according to the present embodiment has the configuration shown in FIG. FIG. 1 is a diagram illustrating a functional configuration of a system according to the present embodiment. The system according to the present embodiment also manages the execution of simulation software requested from the host computer. In the following description, this simulation is assumed to be a logic verification simulation of a semiconductor circuit. . However, the following description may be other types of simulations, and is not limited to the types of simulations. Further, the type of software for managing execution is not particularly limited.

本実施形態に係るシステムは、大まかにはサーバ装置190、メモリ容量Aグループ130、メモリ容量Bグループ131、メモリ容量Cグループ132に大別される。   The system according to the present embodiment is roughly divided into a server device 190, a memory capacity A group 130, a memory capacity B group 131, and a memory capacity C group 132.

サーバ装置190は、シミュレーション実行受付部100、メモリ使用量予測部101、リソース管理部110、シミュレーションキューA120、シミュレーションキューB121、シミュレーションキューC122により構成されている。   The server device 190 includes a simulation execution receiving unit 100, a memory usage amount prediction unit 101, a resource management unit 110, a simulation queue A120, a simulation queue B121, and a simulation queue C122.

なお、本実施形態ではシミュレーション実行受付部100、メモリ使用量予測部101、リソース管理部110、シミュレーションキューA120、シミュレーションキューB121、シミュレーションキューC122は1つの装置(サーバ装置190)を構成する各部として説明するが、それぞれが別個の装置であっても良いということはいうまでもない。   In the present embodiment, the simulation execution receiving unit 100, the memory usage prediction unit 101, the resource management unit 110, the simulation queue A120, the simulation queue B121, and the simulation queue C122 are described as each unit constituting one apparatus (server apparatus 190). However, it goes without saying that each may be a separate device.

本実施形態に係るシステムでは先ず、複数のホストコンピュータを搭載メモリ容量別に複数のグループに予め分割している。同図では、3つのグループに分割しており、それぞれのグループをメモリ容量Aグループ130、メモリ容量Bグループ131、メモリ容量Cグループ132としている。ここで、メモリ容量Cグループ132に属するホストコンピュータが最も大きいメモリ容量を有するものとし、メモリ容量Bグループ131に属するホストコンピュータは次に大きいメモリ容量を有し、メモリ容量Aグループ130に属するホストコンピュータが最も小さいメモリ容量を有する、とする。   In the system according to this embodiment, first, a plurality of host computers are divided in advance into a plurality of groups according to the installed memory capacity. In the figure, the data is divided into three groups, and the groups are a memory capacity A group 130, a memory capacity B group 131, and a memory capacity C group 132, respectively. Here, it is assumed that the host computer belonging to the memory capacity C group 132 has the largest memory capacity, the host computer belonging to the memory capacity B group 131 has the next largest memory capacity, and the host computer belonging to the memory capacity A group 130 Have the smallest memory capacity.

ここで以下の説明では、メモリ容量Aグループ130に属するホストコンピュータが有するメモリのサイズ(それぞれの平均値でも良いし、最低値でも良い)をA、メモリ容量Bグループ131に属するホストコンピュータが有するメモリのサイズをB、メモリ容量Cグループ132に属するホストコンピュータが有するメモリのサイズをCと表現する。   Here, in the following description, the memory size (may be an average value or a minimum value) of the host computers belonging to the memory capacity A group 130 is A, and the memory possessed by the host computers belonging to the memory capacity B group 131 is the memory size. Is represented by B, and the memory size of the host computer belonging to the memory capacity C group 132 is represented by C.

また、本実施形態ではそれぞれのグループ毎にキューが設けられており、メモリ容量Aグループ130に対してはシミュレーションキューA120が設けられており、メモリ容量Bグループ131に対してはシミュレーションキューB121が設けられており、メモリ容量Cグループ132に対しては、シミュレーションキューC122が設けられている。   In this embodiment, a queue is provided for each group, a simulation queue A120 is provided for the memory capacity A group 130, and a simulation queue B121 is provided for the memory capacity B group 131. A simulation queue C122 is provided for the memory capacity C group 132.

図5は、上記サーバ装置190の基本構成を示すブロック図である。   FIG. 5 is a block diagram showing a basic configuration of the server device 190.

同図において501はCPUで、RAM502やROM503に格納されているプログラムやデータを用いてサーバ装置190全体の制御を行うと共に、サーバ装置190が行う後述の各処理を実行する。   In the figure, reference numeral 501 denotes a CPU, which controls the entire server device 190 using programs and data stored in a RAM 502 and a ROM 503, and executes each process described later performed by the server device 190.

502はRAMで、外部記憶装置506からロードされたプログラムやデータを一時的に記憶するためのエリアを備えると共に、CPU501が各種の処理を実行する際に使用するワークエリアを備える。また、以下の説明で登場する「キュー」はこのRAM502内に設けられたものである。また、後述するNIC507を介して外部から受信したプログラムやデータを一時的記憶するためのエリアを備える。   Reference numeral 502 denotes a RAM which includes an area for temporarily storing programs and data loaded from the external storage device 506 and a work area used when the CPU 501 executes various processes. The “queue” that appears in the following description is provided in the RAM 502. Further, an area for temporarily storing programs and data received from the outside via the NIC 507 described later is provided.

503はROMで、サーバ装置190の設定データや、ブートプログラムなどを格納する。   A ROM 503 stores setting data of the server device 190, a boot program, and the like.

504は操作部で、マウスやキーボードなどにより構成されており、各種の指示をCPU501に対して入力することができる。   An operation unit 504 includes a mouse and a keyboard, and can input various instructions to the CPU 501.

505は表示部で、CRTや液晶画面などにより構成されており、CPU501による処理結果を画像や文字などでもって表示することができる。   A display unit 505 includes a CRT, a liquid crystal screen, and the like, and can display processing results by the CPU 501 with images, characters, and the like.

506は外部記憶装置で、ハードディスクドライブ装置等の大容量情報記憶装置であって、ここにOS(オペレーティングシステム)や、CPU501に、サーバ装置190が行う後述の各処理を実行させるためのプログラムやデータなどが保存されており、これらの一部もしくは全部はCPU501の制御に従ってRAM502にロードされ、CPU501の処理対象となる。   Reference numeral 506 denotes an external storage device, which is a large-capacity information storage device such as a hard disk drive device. Here, an OS (Operating System) and a program or data for causing the CPU 501 to execute each process described below performed by the server device 190. Are stored in the RAM 502 under the control of the CPU 501 and are processed by the CPU 501.

507はNIC(ネットワークインターフェース)で、後述する各ホストコンピュータとのデータ通信を行うためのインターフェースとして機能するものである。   Reference numeral 507 denotes a NIC (network interface) that functions as an interface for performing data communication with each host computer described later.

508は上述の各部を繋ぐバスである。   A bus 508 connects the above-described units.

次に、このような構成を有するサーバ装置190を含むシステムが行う処理について説明する。ユーザから入力されたシミュレーションソフトウェアの実行要求はシミュレーション実行受付部100を介して入力されるので、メモリ使用量予測部101は、実行要求されたシミュレーションソフトウェアを実行したときに使用するメモリ量や、どの規模の回路のシミュレーションを行うのかといったことを求める。例えば、同じシミュレーションソフトウェアを実行するにも、規模の大きい回路の論理検証を行うためにはより大きいメモリ容量を必要とするし、逆に規模の小さい回路の論理検証を行うためにはより小さいメモリ容量で良い。そこで、シミュレーションソフトウェアを実行するために最低限必要なメモリ量と、どの規模の回路の論理検証を行うのかということを把握すれば、要求されたシミュレーションを実行するために必要なメモリ容量を求める(予測する)ことができる。   Next, processing performed by a system including the server device 190 having such a configuration will be described. Since the simulation software execution request input from the user is input via the simulation execution receiving unit 100, the memory usage prediction unit 101 determines the amount of memory to be used when executing the requested simulation software, It asks whether to simulate a circuit of scale. For example, even if the same simulation software is executed, a larger memory capacity is required to perform logic verification of a large scale circuit, and conversely, a smaller memory is required to perform logic verification of a small scale circuit. Capacity is good. Therefore, if you know the minimum amount of memory required to run the simulation software and the scale of the logic to be verified, the amount of memory required to run the requested simulation is obtained ( Predict).

シミュレーションを実行するために必要なメモリ容量は、例えば、シミュレーション受付実行部100において受け付けられたシミュレーションソフトウェアのプログラムから予めシミュレーションに用いるデータのサイズおよびサブプログラムが使用するメモリの使用量を取得し、これらの使用量を合計したものを最大使用量としておく。   The memory capacity necessary for executing the simulation is obtained, for example, by acquiring in advance the size of data used for the simulation and the amount of memory used by the subprogram from the simulation software program received by the simulation reception execution unit 100. The total usage amount is set as the maximum usage amount.

必要な最大メモリ使用量が求まると、リソース管理部110は、シミュレーションキューA120、シミュレーションキューB121、シミュレーションキューC122のうち、どのキューにシミュレーションソフトウェアの実行ジョブ(要求された規模の回路の論理検証を行うためのシミュレーションソフトウェアの実行のジョブ)を投入するのかを、メモリ使用量予測部101が計算したメモリ使用量、各キューの容量に基づいて決定する。   When the required maximum memory usage is obtained, the resource management unit 110 performs simulation software execution jobs (logic verification of the requested scale circuit) in any of the simulation queue A120, simulation queue B121, and simulation queue C122. Whether to submit a simulation software execution job) based on the memory usage calculated by the memory usage prediction unit 101 and the capacity of each queue.

例えば、メモリ使用量予測部101が求めたメモリ使用量がNであり、A<N<Bである場合、即ち、メモリ使用量がAよりも大きい場合には、このようなシミュレーションソフトウェアの実行ジョブが実行できるのはメモリ容量Bグループ131に属するホストコンピュータ、もしくはメモリ容量Cグループ132に属するホストコンピュータしかない。そこで、メモリ容量Cグループ132に属するホストコンピュータでなくても、メモリ容量Bグループ131に属するホストコンピュータで十分であるので、メモリ容量Bグループ131に対応するシミュレーションキューB121に実行ジョブを投入する。   For example, when the memory usage obtained by the memory usage prediction unit 101 is N and A <N <B, that is, when the memory usage is larger than A, such a simulation software execution job is executed. Only a host computer belonging to the memory capacity B group 131 or a host computer belonging to the memory capacity C group 132 can be executed. Therefore, even if it is not a host computer belonging to the memory capacity C group 132, a host computer belonging to the memory capacity B group 131 is sufficient, so an execution job is submitted to the simulation queue B121 corresponding to the memory capacity B group 131.

しかし、例えばシミュレーションキューB121にて待ち状態(ジョブが投入できない状態)であり、シミュレーションキューC122に空きがある場合には、メモリ容量Cグループ132に属するホストコンピュータにジョブを実行させるのはオーバースペックではあるものの、ジョブをシミュレーションキューC122に投入するようにしても良い。   However, for example, if the simulation queue B121 is in a waiting state (a state where a job cannot be submitted) and the simulation queue C122 has a free space, it is overspec that the host computer belonging to the memory capacity C group 132 execute the job. However, the job may be submitted to the simulation queue C122.

シミュレーションキューB121は、ジョブが投入されると、メモリ容量Cグループ132に属するホストコンピュータのうち、処理を行っていない、もしくは他の処理を行うほど能力に余裕のある等、所謂「空いている」ホストコンピュータを探し、そのホストコンピュータにジョブの実行ライセンスを与え、ジョブの実行許可を与える。   When a job is submitted, the simulation queue B 121 is so-called “free”, such as not performing processing among the host computers belonging to the memory capacity C group 132, or having sufficient capacity to perform other processing. The host computer is searched, a job execution license is given to the host computer, and job execution permission is given.

ジョブの実行処理は全てホストコンピュータが行うようにしても良いし、一部をサーバ装置190が行うようにしても良い。いずれにせよ、例え全てをホストコンピュータに行わせる場合であっても、このホストコンピュータは、ジョブを実行するために必要なメモリサイズを有しているが故に選出されたものであるので、このジョブは必ず実行することができ、メモリサイズの不足による処理の中断はない。   All of the job execution processing may be performed by the host computer, or part of the job execution processing may be performed by the server device 190. In any case, even if you want the host computer to do everything, this host computer is chosen because it has the memory size required to execute the job, so this job Can always be executed, and there is no interruption of processing due to insufficient memory size.

図2は、以上説明したサーバ装置190が行う処理のフローチャートである。なお、同図のフローチャートに従った処理をCPU501に実行させるためのプログラムやデータは外部記憶装置506からRAM502に予めロードされており、これをCPU501が実行することで、サーバ装置190は以下説明する処理を実行することになる。なお、以下の各ステップにおける処理は上述の通りであるので、ここでは簡単に説明する。   FIG. 2 is a flowchart of processing performed by the server device 190 described above. Note that a program and data for causing the CPU 501 to execute the processing according to the flowchart of FIG. 10 are pre-loaded from the external storage device 506 to the RAM 502, and the server device 190 will be described below when the CPU 501 executes the program and data. Processing will be executed. In addition, since the process in each following step is as above-mentioned, it demonstrates easily here.

先ず、CPU501が操作部504を介してユーザにより入力されたシミュレーションソフトウェアの実行要求を検知すると、シミュレーションソフトウェアに記述されたデータを解析し(ステップS201)、要求されたシミュレーションソフトウェアを実行したときに使用するメモリ量や、どの規模の回路のシミュレーションを行うのかといったことを求め、結果として、要求された回路規模の論理検証を行うためにこのシミュレーションソフトウェアを実行した際に使用するメモリ使用量を求める(予測する)(ステップS202)。   First, when the CPU 501 detects a simulation software execution request input by the user via the operation unit 504, it analyzes data described in the simulation software (step S201) and uses it when the requested simulation software is executed. As a result, the amount of memory used when this simulation software is executed to perform logic verification of the requested circuit scale is obtained ( Prediction) (step S202).

そして各グループのホストコンピュータに搭載されたメモリ量(図1ではA、B、C)のうち、ステップS202で求めたメモリ使用量Nを許容するメモリ量を許容するものを選ぶ(ステップS203)。ここで、各グループのホストコンピュータに搭載されたメモリ量のうち、ステップS202で求めたメモリ使用量Nを許容するメモリ量を許容するものがなかった場合には、処理をステップS205に進め、警告を発行する(ステップS205)のであるが、予めの設定により、これを「有効」とする場合には処理をステップS206を介して本処理を終了する。   Of the memory amounts (A, B, and C in FIG. 1) installed in the host computers of each group, a memory amount that allows the memory usage amount N obtained in step S202 is selected (step S203). Here, if there is no memory amount that allows the memory usage amount N obtained in step S202 among the memory amounts installed in the host computers of each group, the process proceeds to step S205, and a warning is issued. Is issued (step S205), but if this is set to “valid” due to the preset setting, the process is terminated via step S206.

これにより予想したメモリ使用量が、ホストコンピュータが搭載しているメモリ容量をオーバする事が分かり、無駄なシミュレーションを実行せずにシミュレーションプログラムの見直しを行う事ができる。また、予想メモリ使用量がホストコンピュータが搭載しているメモリ容量をオーバーしている場合でも、確実にシミュレーションが破綻するわけではないので、シミュレーションを実行したい場合もある。このときは前述の上記設定を「無効」とすることにより、最大のメモリを搭載したホストコンピュータのシミュレーションキューに投入することができる。前述のようにシミュレーションプログラムを見直した際に、変更する余地がない場合などにも上記設定を「無効」にする事は有効である。   As a result, it can be seen that the predicted memory usage exceeds the memory capacity installed in the host computer, and the simulation program can be reviewed without executing useless simulation. Even if the expected memory usage exceeds the memory capacity installed in the host computer, the simulation does not necessarily fail, so it may be desired to execute the simulation. At this time, by setting the above-described setting to “invalid”, the setting can be put into the simulation queue of the host computer equipped with the maximum memory. As described above, when the simulation program is reviewed, it is effective to set the above setting to “invalid” even when there is no room for change.

一方、上記設定を「無効」とする場合には処理をステップS206を介してステップS210に進める。   On the other hand, when the setting is “invalid”, the process proceeds to step S210 via step S206.

一方、各グループのホストコンピュータに搭載されたメモリ量(図1ではA、B、C)のうち、ステップS202で求めたメモリ使用量Nを許容するメモリ量を許容するものがある場合には処理をステップS204に進める。ここではメモリ容量Bグループ131がこれに相当するとして説明する。よってステップS204では、メモリ容量Bグループ131を選出する(ステップS204)。   On the other hand, if there is a memory amount that allows the memory usage amount N obtained in step S202 among the memory amounts (A, B, C in FIG. 1) installed in the host computers of each group, the processing is performed. Advances to step S204. Here, a description will be given assuming that the memory capacity B group 131 corresponds to this. Therefore, in step S204, the memory capacity B group 131 is selected (step S204).

そして、メモリ容量Bグループ131に属するホストコンピュータのうち、空いているホストコンピュータがあるか否かを判断し(ステップS210)、無ければ処理をステップS250に進め、シミュレーション実行終了の指示を待ち(ステップS250)、この指示を受ければ処理をステップS220に進め、この指示を発したホストコンピュータにシミュレーションソフトウェアのライセンスを発行する(ステップS220)と共に、このシミュレーションソフトウェアの実行許可を与える(ステップS230)。   Then, it is determined whether there is a vacant host computer among the host computers belonging to the memory capacity B group 131 (step S210). If not, the process proceeds to step S250 and waits for an instruction to end simulation execution (step S210). If this instruction is received, the process proceeds to step S220, a license for the simulation software is issued to the host computer that issued this instruction (step S220), and permission to execute the simulation software is given (step S230).

その結果、ホストコンピュータは実行許可が与えられたシミュレーションソフトウェアを実行するのであるが、実行が終了すると、ライセンスを解放するので、CPU501ははこれを待ち、受け付ける(ステップS240)。   As a result, the host computer executes the simulation software to which the execution permission is given. When the execution is completed, the license is released, and the CPU 501 waits for this and accepts it (step S240).

以上の説明により、本実施形態によって、実行要求されたプログラムを最適なホストコンピュータに対して実行許可することができる。これにより、例えば半導体回路の論理検証において、論理検証シミュレーションを行うホストコンピュータに搭載するメモリに対する投資を最小限抑えることが出来、また、無駄なシミュレーションを走らせる事のない論理検証システムを提供する事が出来る。   As described above, according to the present embodiment, execution of the requested program can be permitted to an optimal host computer. As a result, for example, in logic verification of a semiconductor circuit, it is possible to minimize the investment in the memory installed in the host computer that performs the logic verification simulation, and to provide a logic verification system that does not run a useless simulation. I can do it.

[第2の実施形態]
本実施形態では、直列に結合している3つのデータ処理ブロックの動作検証を行う場合について説明するが、以下の説明の本質はデータ処理ブロックの数に限定されるものではないことは、以下の説明により明らかと成るであろう。
[Second Embodiment]
In the present embodiment, a case where operation verification of three data processing blocks coupled in series is performed will be described. However, the essence of the following description is not limited to the number of data processing blocks. It will be clear from the explanation.

<従来の検証システム>
先ず、図2に示したシステムLSI601に含まれる3つのデータ処理ブロック(データ処理1ブロック、データ処理2ブロック、データ処理3ブロック)について、従来の検証方法について説明する。
<Conventional verification system>
First, a conventional verification method for three data processing blocks (data processing block 1, data processing block 2 and data processing block 3) included in the system LSI 601 shown in FIG. 2 will be described.

図13は上述の通り、この3つのデータ処理ブロックを従来の方法でもって検証する為の装置の構成を示すものである。同図では検証対象の論理回路は、データ処理1ブロック1106、データ処理2ブロック1320、データ処理3ブロック1330である。なお、以下の説明において、プログラムの実行や各種の処理制御は、CPU602が行うものである。   FIG. 13 shows the configuration of an apparatus for verifying these three data processing blocks by a conventional method as described above. In the figure, the logic circuits to be verified are a data processing 1 block 1106, a data processing 2 block 1320, and a data processing 3 block 1330. In the following description, the CPU 602 executes the program and controls various processes.

同図において検証に用いられる入力データファイル1101は、入力バスモデル1102により解釈され、データ処理1ブロック1106に送られる。   The input data file 1101 used for verification in the figure is interpreted by the input bus model 1102 and sent to the data processing 1 block 1106.

この時の動作モード等を設定するためのパラメータデータファイル1103はCPU I/Fモデル1105を通して、動作モードが設定され、データ処理1ブロック1106、データ処理2ブロック1320、データ処理3ブロック1330は、設定された動作モードに従って動作する。その動作については即ち、データ処理1ブロック1106は、入力バスモデル1102を介して入力された入力データファイル1101を設定された動作モードに従って処理して後段のデータ処理2ブロック1320に送出する。データ処理2ブロック1320は、データ処理1ブロック1106から出力されたデータを設定された動作モードに従って処理して後段のデータ処理3ブロック1330に送出する。データ処理3ブロック1330は、データ処理2ブロック1320から出力されたデータを設定された動作モードに従って処理して後段の出力バスモデル1340を通して出力する。   The parameter data file 1103 for setting the operation mode at this time is set to the operation mode through the CPU I / F model 1105, and the data processing 1 block 1106, the data processing 2 block 1320, and the data processing 3 block 1330 are set. Operate according to the specified operation mode. In other words, the data processing 1 block 1106 processes the input data file 1101 input via the input bus model 1102 according to the set operation mode and sends it to the subsequent data processing 2 block 1320. The data processing 2 block 1320 processes the data output from the data processing 1 block 1106 according to the set operation mode and sends the processed data to the subsequent data processing 3 block 1330. The data processing 3 block 1330 processes the data output from the data processing 2 block 1320 according to the set operation mode and outputs the processed data through the output bus model 1340 at the subsequent stage.

一方、データ処理1ブロック1106が出力すべき正解データとしての期待値1データファイル1108は予め、正解データを生成するデータ処理1プログラム1104を用いて、入力データファイル1101、パラメータデータファイル1103より生成している。またデータ処理1ブロック1106の出力は所定時間間隔毎にデータ1モニタ1111により監視されており、データ1モニタ1111は、監視した出力と期待値1データファイル1108とを比較し、データ処理1ブロック1106が期待した処理を行ったか否かを検証する。   On the other hand, the expected value 1 data file 1108 as correct data to be output by the data processing 1 block 1106 is generated in advance from the input data file 1101 and the parameter data file 1103 using the data processing 1 program 1104 for generating correct data. ing. The output of the data processing 1 block 1106 is monitored by the data 1 monitor 1111 at predetermined time intervals. The data 1 monitor 1111 compares the monitored output with the expected value 1 data file 1108, and the data processing 1 block 1106 is compared. Verify whether the expected processing has been performed.

また、データ処理2ブロック1320が出力すべき正解データとしての期待値2データファイル1322は予め、正解データを生成するデータ処理2プログラム1321を用いて、(先にデータ処理1プログラム1104により生成された)期待値1データファイル1108と、パラメータデータファイル1103より生成している。またデータ処理2ブロック1320の出力は所定時間間隔毎にデータ2モニタ1323により監視されており、データ2モニタ1323は、監視した出力と期待値2データファイル1322と比較し、データ処理2ブロック1320が期待した処理を行ったか否かを検証する。   In addition, the expected value 2 data file 1322 as correct data to be output by the data processing 2 block 1320 is previously generated using the data processing 2 program 1321 that generates correct data (previously generated by the data processing 1 program 1104). ) It is generated from the expected value 1 data file 1108 and the parameter data file 1103. The output of the data processing 2 block 1320 is monitored by the data 2 monitor 1323 at predetermined time intervals. The data 2 monitor 1323 compares the monitored output with the expected value 2 data file 1322, and the data processing 2 block 1320 Verify whether the expected processing has been performed.

また、データ処理3ブロック1330が出力すべき正解データとしての期待値3データファイル1332は予め、正解データを生成するデータ処理3プログラム1331を用いて、(先にデータ処理2プログラム1321により生成された)期待値2データファイル1322と、パラメータデータファイル1103より生成している。またデータ処理3ブロック1330の出力は所定時間間隔毎にデータ3モニタ1333により監視されており、データ3モニタ1333は、監視した出力と期待値3データファイル1332とを比較し、データ処理3ブロック1330が期待した処理を行ったか否かを検証する。   Further, the expected value 3 data file 1332 as correct data to be output by the data processing 3 block 1330 is generated in advance using the data processing 3 program 1331 that generates correct data (previously generated by the data processing 2 program 1321. ) It is generated from the expected value 2 data file 1322 and the parameter data file 1103. The output of the data processing 3 block 1330 is monitored by the data 3 monitor 1333 at predetermined time intervals, and the data 3 monitor 1333 compares the monitored output with the expected value 3 data file 1332, and the data processing 3 block 1330. Verify whether the expected processing has been performed.

以上の構成によるシステムによって行う検証では、検証対象のデータ処理ブロックが誤った動作を行った場合、各データ処理ブロックの出力バスに接続された各データモニターがこれを検出することができるため、どのデータ処理ブロックが誤った動作をしたのかの特定が容易であり、検証効率を向上させる利点がある。一方、これらデータモニタは各サイクル毎にバスを監視しているため、その度にバスとデータモニタ間で通信が発生し、シミュレーション速度を低下させる原因となる。システムが大きくなるほど接続されるデータモニタの数が多くなるため、シミュレーション速度の低下は顕著に表れる。   In the verification performed by the system having the above configuration, if the data processing block to be verified performs an incorrect operation, each data monitor connected to the output bus of each data processing block can detect this. It is easy to specify whether the data processing block has performed an error, and there is an advantage of improving the verification efficiency. On the other hand, since these data monitors monitor the bus for each cycle, communication occurs between the bus and the data monitor each time, causing a reduction in simulation speed. Since the number of connected data monitors increases as the system becomes larger, the simulation speed is significantly reduced.

よって本実施形態に係る検証システムはこれに鑑みて成されたものである。以下、本実施形態に係る検証システムについて説明する。   Therefore, the verification system according to the present embodiment is made in view of this. Hereinafter, the verification system according to the present embodiment will be described.

<本実施形態に係る検証システム>
図15は、本実施形態に係る検証システムの基本構成を示すブロック図である。尚同図において図11,13と同じ部分については同じ番号を付けており、その説明は省略する。
<Verification system according to this embodiment>
FIG. 15 is a block diagram illustrating a basic configuration of the verification system according to the present embodiment. In the figure, the same parts as those in FIGS. 11 and 13 are denoted by the same reference numerals, and the description thereof is omitted.

図15に示した構成が図13に示した構成と異なる点は、それぞれのデータモニタ(データ1モニタ1111、データ2モニタ1323、データ3モニタ1333)の監視/非監視を切り替えるためのスイッチ1501,1502,1503を設けた点にある。例えばスイッチ1501をオンにすると、データ処理1ブロック1106からの出力線はデータ1モニタ1111とつながるので、データ1モニタ1111は、データ処理1ブロック1106からの出力を監視することができ、逆にスイッチ1501をオフにすると、データ処理1ブロック1106からの出力線はデータ1モニタ1111とはつながっていないので、データ1モニタ1111は、データ処理1ブロック1106からの出力を監視することができない。これはスイッチ1502についても同様である。   The configuration shown in FIG. 15 is different from the configuration shown in FIG. 13 in that a switch 1501 for switching monitoring / non-monitoring of each data monitor (data 1 monitor 1111, data 2 monitor 1323, data 3 monitor 1333). 1502 and 1503 are provided. For example, when the switch 1501 is turned on, the output line from the data processing 1 block 1106 is connected to the data 1 monitor 1111. Therefore, the data 1 monitor 1111 can monitor the output from the data processing 1 block 1106. When 1501 is turned off, since the output line from the data processing 1 block 1106 is not connected to the data 1 monitor 1111, the data 1 monitor 1111 cannot monitor the output from the data processing 1 block 1106. The same applies to the switch 1502.

このようにして、データモニタにより監視/非監視をこのスイッチによって切り替えることができる。なお、データモニタによる監視/非監視の制御手段についてはこのような手段に限定するものではない。   In this way, monitoring / non-monitoring can be switched by this switch by the data monitor. The monitoring / non-monitoring control means by the data monitor is not limited to such means.

このようなシステムにおいて各データ処理ブロックの動作検証を行う場合には以下のようにして行う。なお、以下説明する各処理の制御はCPU602が行うものとする。   In such a system, operation verification of each data processing block is performed as follows. In addition, control of each process demonstrated below shall be performed by CPU602.

先ず、CPU602は、スイッチ1501,1502を共にオフにする指示を送出するので、スイッチ1501、1502は共にこれを受けて自身をオフにし、その後CPU602は、上記検証処理を制御する。即ち、データ処理1ブロック1106は、入力バスモデル1102を介して入力された入力データファイル1101を設定された動作モードに従って処理して後段のデータ処理2ブロック1320に送出する。データ処理2ブロック1320は、データ処理1ブロック1106から出力されたデータを設定された動作モードに従って処理して後段のデータ処理3ブロック1330に送出する。データ処理3ブロック1330は、データ処理2ブロック1320から出力されたデータを設定された動作モードに従って処理して後段の出力バスモデル1340を通して出力する。そしてデータ3モニタ1333は、所定時間間隔毎にデータ処理3ブロック1330の出力を監視し、監視した出力と期待値3データファイルとの比較を行い、一致しているのか否かを判断する。よってデータ3モニタ1333は、所定時間間隔毎に、一致しているか否かの判断処理を行っていることになる。   First, since the CPU 602 sends an instruction to turn off both the switches 1501 and 1502, the switches 1501 and 1502 both receive this and turn off themselves, and then the CPU 602 controls the verification process. That is, the data processing 1 block 1106 processes the input data file 1101 input via the input bus model 1102 according to the set operation mode and sends it to the subsequent data processing 2 block 1320. The data processing 2 block 1320 processes the data output from the data processing 1 block 1106 according to the set operation mode and sends the processed data to the subsequent data processing 3 block 1330. The data processing 3 block 1330 processes the data output from the data processing 2 block 1320 according to the set operation mode and outputs the processed data through the output bus model 1340 at the subsequent stage. The data 3 monitor 1333 monitors the output of the data processing 3 block 1330 at predetermined time intervals, compares the monitored output with the expected value 3 data file, and determines whether or not they match. Therefore, the data 3 monitor 1333 performs a determination process as to whether or not they match at every predetermined time interval.

また、CPU602は、それぞれのデータ処理ブロックの出力を所定時間間隔毎にサンプリングし、メモリコントローラ604内のメモリに格納する処理を行う。   In addition, the CPU 602 performs a process of sampling the output of each data processing block at predetermined time intervals and storing it in the memory in the memory controller 604.

このようにして、それぞれのデータ処理ブロックは入力されたデータを処理して後段に出力する処理を繰り返し、且つCPU602は、所定時間間隔毎のそれぞれのデータ処理ブロックの出力をサンプリングし、メモリコントローラ604内のメモリに格納する。また、データ3モニタ1333は、所定時間間隔毎に、データ処理3ブロック1330の出力と期待値3データファイル1332とが一致しているのか否かを判断する。   In this way, each data processing block repeats the process of processing the input data and outputting it to the subsequent stage, and the CPU 602 samples the output of each data processing block every predetermined time interval, and the memory controller 604. Store in memory. Further, the data 3 monitor 1333 determines whether the output of the data processing 3 block 1330 and the expected value 3 data file 1332 coincide with each other at predetermined time intervals.

ここで、ある時点でデータ3モニタ1333が「一致していない」と判断した場合(Errorを検出した場合)、CPU602はこれを検知して各部の動作を停止させる。ここで、データ3モニタ1333が「一致していない」と判断したということは、データ処理1ブロック1106、データ処理2ブロック1302の何れかもしくはその両方が期待値データファイルとは異なるものを出力したことになる。よって、以下では、データ処理1ブロック1106、データ処理2ブロック1302のうち、期待値データファイルと一致していないものを検知することで、動作が正常ではないデータ処理ブロックを特定する。   Here, when the data 3 monitor 1333 determines that “they do not match” at a certain time (when Error is detected), the CPU 602 detects this and stops the operation of each unit. Here, the fact that the data 3 monitor 1333 determines that “they do not match” means that either one or both of the data processing 1 block 1106 and the data processing 2 block 1302 are different from the expected value data file. It will be. Therefore, in the following, the data processing block whose operation is not normal is identified by detecting the data processing 1 block 1106 and the data processing 2 block 1302 that do not match the expected value data file.

CPU602は先ず、スイッチ1501、1502をオンにする。そして、CPU602が「一致していない」という判断を検知した時点に最も近いタイミングでメモリコントローラ604内のメモリに格納した(即ち最も最近メモリに格納した)それぞれのデータ処理ブロックの出力データを読み出して、それぞれのデータ処理ブロックの出力を再設定する。即ち、検証処理を、CPU602が「一致していない」という判断を検知した時点に最も近いタイミングにおける状態から再度行うようにする。なお、その際にはスイッチ1501、1502をオンにしているので、再度検証処理を行う場合にはデータ処理1ブロック1106、データ処理2ブロック1302の出力を監視する事になる。   First, the CPU 602 turns on the switches 1501 and 1502. Then, the output data of each data processing block stored in the memory in the memory controller 604 (that is, the most recently stored in the memory) is read out at the timing closest to the time point when the CPU 602 detects the “not coincident” determination. , Reset the output of each data processing block. That is, the verification process is performed again from the state at the timing closest to the time point when the CPU 602 detects the determination of “not matching”. At this time, since the switches 1501 and 1502 are turned on, the output of the data processing 1 block 1106 and the data processing 2 block 1302 is monitored when the verification process is performed again.

そしてCPU602は各部を制御して各部の動作を再開させると、データ1モニタ1111、データ2モニタ1323はそれぞれ、データ処理1ブロック1106、データ処理2ブロック1302の出力を監視することになり、上記タイミングまでで、データ1モニタ1111、及び/又はデータ2モニタ1323が「一致していない」と判断することになる。   When the CPU 602 controls each unit to resume the operation of each unit, the data 1 monitor 1111 and the data 2 monitor 1323 monitor the outputs of the data processing 1 block 1106 and the data processing 2 block 1302, respectively. Thus, the data 1 monitor 1111 and / or the data 2 monitor 1323 determines that “they do not match”.

これにより、検証処理開始時には全てのデータモニタを動作させず、1つのデータモニタのみを動作させるので、データ監視のためのデータ通信が多く発生することがなく、検証処理を上記従来よりもより高速に行うことができる。   As a result, not all the data monitors are operated at the start of the verification process, and only one data monitor is operated, so that a large amount of data communication for data monitoring does not occur, and the verification process is faster than the conventional one. Can be done.

図14は、本実施形態に係る検証処理のフローチャートである。なお、同図のフローチャートに従った処理の制御は上述の通り、CPU602が行う。   FIG. 14 is a flowchart of the verification process according to the present embodiment. Note that the CPU 602 controls the processing according to the flowchart of FIG.

先ず、CPU602はスイッチ1501、1502に対してオフの指示を送出する(ステップS900)ので、スイッチ1501、1502は自身をオフにする。これにより、データ1モニタ1111、データ2モニタ1323による監視は行われない。   First, since the CPU 602 sends an off instruction to the switches 1501 and 1502 (step S900), the switches 1501 and 1502 turn themselves off. As a result, monitoring by the data 1 monitor 1111 and the data 2 monitor 1323 is not performed.

次に、CPU602が各データ処理ブロックの出力データをメモリコントローラ604内のメモリに保存する時間間隔を設定する(ステップS901)のであるが、これは予め設定しておいてメモリコントローラ604内のメモリに保存しておいても良いし、CPU602のクロックに合わせて設定するようにしても良い。   Next, the CPU 602 sets a time interval for storing the output data of each data processing block in the memory in the memory controller 604 (step S901). This is set in advance in the memory in the memory controller 604. You may make it preserve | save and you may make it set according to the clock of CPU602.

次に、処理を1サイクル進める(ステップS902)。ここで処理を1サイクル進めるとは、データ処理1ブロック1106が、入力バスモデル1102を介して入力された入力データファイル1101を設定された動作モードに従って処理して後段のデータ処理2ブロック1320に送出し、次にデータ処理2ブロック1320が、データ処理1ブロック1106から出力されたデータを設定された動作モードに従って処理して後段のデータ処理3ブロック1330に送出し、次にデータ処理3ブロック1330が、データ処理2ブロック1320から出力されたデータを設定された動作モードに従って処理して後段の出力バスモデル1340を通して出力すると共に、データ3モニタ1333は、所定時間間隔毎にデータ処理3ブロック1330の出力を監視し、監視した出力と期待値3データファイルとの比較を行い、一致しているのか否かを判断する、という一連の処理を行うことを差す。   Next, the process is advanced by one cycle (step S902). Here, when the process is advanced by one cycle, the data processing 1 block 1106 processes the input data file 1101 input via the input bus model 1102 in accordance with the set operation mode and sends it to the subsequent data processing 2 block 1320. Then, the data processing 2 block 1320 processes the data output from the data processing 1 block 1106 according to the set operation mode and sends it to the subsequent data processing 3 block 1330. Next, the data processing 3 block 1330 The data output from the data processing 2 block 1320 is processed according to the set operation mode and output through the output bus model 1340 in the subsequent stage, and the data 3 monitor 1333 outputs the data processing 3 block 1330 at predetermined time intervals. Monitored output and expected value 3 data It compares with the file, determines whether the match refers to performing a series of processes called.

そして1サイクルの処理を行った結果、データ3モニタ1333が「一致していない」と判断した場合(ステップS903)には、処理をステップS908に進め、スイッチ1501、1502をオンにし(ステップS908)、メモリコントローラ604内のメモリに最も最近格納したそれぞれのデータ処理ブロックの出力をそれぞれのデータ処理ブロックに再設定し(ステップS909)、その後、1サイクルの処理を再開する(ステップS910)。   If the data 3 monitor 1333 determines that “they do not match” as a result of performing one cycle of processing (step S903), the processing proceeds to step S908, and the switches 1501 and 1502 are turned on (step S908). Then, the output of each data processing block most recently stored in the memory in the memory controller 604 is reset to each data processing block (step S909), and then one cycle of processing is resumed (step S910).

ここでの1サイクルの処理とは、ステップS902における処理に加え、データ1モニタ1111、データ2モニタ1323による監視処理、判断処理を行う。   The one-cycle processing here includes monitoring processing and determination processing by the data 1 monitor 1111 and the data 2 monitor 1323 in addition to the processing in step S902.

そして、データ1モニタ1111、データ2モニタ1323のうちの少なくとも1つがErrorを検出した場合には、CPU602はこれを検知し、Errorを発生したデータ処理ブロックを特定する(ステップS912)。   If at least one of the data 1 monitor 1111 and the data 2 monitor 1323 detects an error, the CPU 602 detects this and identifies the data processing block that generated the error (step S912).

より具体的には、データ1モニタ1111がErrorを検出した場合には、データ処理1ブロック1106をErrorを発生した(出力が期待値1データファイル1108と一致しない)データ処理ブロックとして特定し、データ2モニタ1323がErrorを検出した場合には、データ処理2ブロック1320をErrorを発生した(出力が期待値2データファイル1322と一致しない)データ処理ブロックとして特定する。   More specifically, if the data 1 monitor 1111 detects an error, the data processing 1 block 1106 is identified as the data processing block that generated the error (the output does not match the expected value 1 data file 1108), and the data If the 2 monitor 1323 detects an error, the data processing 2 block 1320 is identified as the data processing block that generated the error (the output does not match the expected value 2 data file 1322).

一方、ステップS911で、Errorを検出したデータモニタがない場合には処理ステップS910を繰り返す。なお、繰り返し処理は、CPU602がステップS903でErrorを検知した時点まで行う。   On the other hand, if there is no data monitor that has detected an error in step S911, processing step S910 is repeated. The iterative process is performed until the CPU 602 detects Error in step S903.

一方、ステップS903で、データ3モニタ1333が「一致していない」という判断を行っていない場合には処理をステップS904に進め、各データ処理ブロックの動作が終了していない場合には処理をステップS905に進め、ステップS902における処理を開始以降、ステップS901で設定した時間が経過したか否かを判断し、経過していない場合には処理をステップS902に戻し、以降の処理を繰り返すのであるが、経過した場合には処理をステップS907に進め、CPU602は各データ処理ブロックの出力をメモリコントローラ604内のメモリに格納する(ステップS907)。   On the other hand, if it is determined in step S903 that the data 3 monitor 1333 has not made a “mismatch” determination, the process proceeds to step S904. If the operation of each data processing block has not been completed, the process proceeds to step S904. In S905, it is determined whether or not the time set in Step S901 has elapsed since the start of the process in Step S902. If not, the process returns to Step S902, and the subsequent processes are repeated. If it has elapsed, the process proceeds to step S907, and the CPU 602 stores the output of each data processing block in the memory in the memory controller 604 (step S907).

ここで、各データ処理ブロックの出力をメモリに格納する際、メモリには2回前の分まで保存してあるとする。そして今回の格納を行う場合には2回前のデータ(2回前の各データ処理ブロックの出力のデータ)を消去し、新たに今回のデータ(今回の各データ処理ブロックの出力のデータ)を格納する。そしてステップS909で出力のデータをメモリから読み出す場合には2回前のものを読み出す。   Here, when the output of each data processing block is stored in the memory, it is assumed that the memory stores the previous two times. When the current storage is performed, the previous data (the data output from each previous data processing block) is erased, and the current data (the output data from each current data processing block) is newly stored. Store. If the output data is read from the memory in step S909, the previous data is read twice.

このように2回前の分までを保存しておくのであるが、これが1回前の分までしか保存していないとすると、保存した次のサイクルでステップS903にてErrorが検知された場合に、シミュレーション状態は1サイクル前にしか戻せず、全てのスイッチをオンにしたとしても、Errorを発生したデータ処理ブロックを特定することができない。よって、本実施形態では、各データ処理ブロックの出力は2回前の分までを保存しておく。   In this way, the previous two minutes are stored, but if this is stored only up to the previous one, if Error is detected in step S903 in the next stored cycle. The simulation state can be returned only one cycle before, and even if all the switches are turned on, the data processing block in which the error has occurred cannot be specified. Therefore, in this embodiment, the output of each data processing block is stored up to the previous two times.

なお、本実施形態では各データモニタは、データ処理ブロックの出力と期待値データファイルとが1回でも一致していないとErrorを検出するのであるが、1回に限定するものではなく、予め設定した回数であっても良い。   In this embodiment, each data monitor detects an error when the output of the data processing block and the expected value data file do not match even once, but the data monitor is not limited to once, but is set in advance. It may be the number of times.

[その他の実施形態]
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
[Other Embodiments]
Also, an object of the present invention is to supply a recording medium (or storage medium) in which a program code of software that realizes the functions of the above-described embodiments is recorded to a system or apparatus, and the computer (or CPU or Needless to say, this can also be achieved when the MPU) reads and executes the program code stored in the recording medium. In this case, the program code itself read from the recording medium realizes the functions of the above-described embodiment, and the recording medium on which the program code is recorded constitutes the present invention.

また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an operating system (OS) running on the computer based on the instruction of the program code. It goes without saying that a case where the function of the above-described embodiment is realized by performing part or all of the actual processing and the processing is included.

さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Furthermore, after the program code read from the recording medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer, the function is based on the instruction of the program code. It goes without saying that the CPU or the like provided in the expansion card or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.

本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。   When the present invention is applied to the recording medium, program code corresponding to the flowchart described above is stored in the recording medium.

本発明の第1の実施形態に係るシステムの機能構成を示す図である。It is a figure which shows the function structure of the system which concerns on the 1st Embodiment of this invention. サーバ装置190が行う処理のフローチャートである。It is a flowchart of the process which the server apparatus 190 performs. 従来のシステムの機能構成を示す図である。It is a figure which shows the function structure of the conventional system. シミュレーションキュー320が行う処理のフローチャートである。5 is a flowchart of processing performed by a simulation queue 320. サーバ装置190の基本構成を示すブロック図である。3 is a block diagram showing a basic configuration of a server device 190. FIG. 一般的なシステムLSIの集積回路の基本構成を示すブロック図である。It is a block diagram which shows the basic composition of the integrated circuit of a general system LSI. 3つのデータ処理ブロックが直列につながっているデータパス607の構成を示すブロック図である。It is a block diagram which shows the structure of the data path 607 in which three data processing blocks are connected in series. データ処理ブロック(同図ではデータ処理1ブロック)の個別検証の処理の流れを示す図である。It is a figure which shows the flow of a process of the individual verification of a data processing block (Data processing 1 block in the same figure). 従来用いたテスト記述の構成例を示す図である。It is a figure which shows the structural example of the test description used conventionally. 図7の各データ処理ブロックについて作成したシーケンスクラス、及びそれぞれのシーケンスの実行順を示す図である。FIG. 8 is a diagram illustrating a sequence class created for each data processing block in FIG. 7 and an execution order of each sequence. データ処理ブロック(同図ではデータ処理1ブロック)の個別検証の処理の流れを示す図である。It is a figure which shows the flow of a process of the individual verification of a data processing block (Data processing 1 block in the same figure). それぞれのデータ処理ブロックに対する検証の流れ((a)〜(c))を1つ((d))にまとめた図である。It is the figure which put together the flow ((a)-(c)) of verification with respect to each data processing block into one ((d)). 3つのデータ処理ブロックを有するシステムの検証装置の基本構成を示すブロック図である。It is a block diagram which shows the basic composition of the verification apparatus of the system which has three data processing blocks. 本発明の第2の実施形態に係る検証処理のフローチャートである。It is a flowchart of the verification process which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態に係る検証システムの基本構成を示すブロック図である。It is a block diagram which shows the basic composition of the verification system which concerns on the 2nd Embodiment of this invention.

Claims (8)

複数のコンピュータで共有するソフトウェアを保持している情報処理装置であって、
前記複数のコンピュータを搭載メモリ容量に応じて複数のグループに分けた場合に、それぞれのグループに対応するキューを保持するキュー保持手段と、
前記ソフトウェアの実行要求を受けると、前記ソフトウェアの実行に必要なメモリ使用量を求める計算手段と、
前記計算手段が求めたメモリ使用量を許容する搭載メモリ容量を有するコンピュータが属するグループに対応するキューに、前記ソフトウェアの実行ジョブを格納する格納手段と
前記格納手段が実行ジョブを格納したキューに対応するグループに属するコンピュータの何れかに前記実行ジョブの使用許可を与える許可手段と
を備えることを特徴とする情報処理装置。
An information processing apparatus holding software shared by a plurality of computers,
A queue holding means for holding a queue corresponding to each group when the plurality of computers are divided into a plurality of groups according to the installed memory capacity;
Upon receiving the execution request for the software, calculation means for obtaining the memory usage necessary for the execution of the software,
Corresponding to a queue corresponding to a group to which a computer having an installed memory capacity allowing the memory usage obtained by the calculation means belongs, and a queue storing the execution job of the software An information processing apparatus comprising: permission means for giving permission to use the execution job to any of the computers belonging to the group.
前記実行ジョブは、指示された規模の回路の論理検証のソフトウェアの実行ジョブであることを特徴とする請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the execution job is an execution job of logic verification software for a circuit of a designated scale. 入力データを処理して後段に出力するデータ処理ブロックを複数個直列に結合した状態で備え、データ入力側のデータ処理ブロックにデータを入力した後に後段のデータ処理ブロックを順次動作させることで、それぞれのデータ処理ブロックの動作検証処理を行う検証装置であって、
それぞれのデータ処理ブロックについて、
データ処理ブロックの出力を所定の時間間隔で監視する監視手段と、
前記監視手段が監視している出力を保存する保存手段と、
前記監視手段が監視した出力が本来従うべき正解データを保持する保持手段と、
前記監視手段が監視した出力が、当該出力に対応する正解データと一致するか否かを判断する判断手段と
を備え、
出力側の末端データ処理ブロックについては当該末端データ処理ブロックの前記監視手段、前記保存手段、前記判断手段を動作させると共に、前記末端データ処理ブロック以外のデータ処理ブロックについては前記保存手段のみを動作させて前記動作検証処理を行い、当該判断手段が一致していないと判断した場合には、それぞれのデータ処理ブロックの出力を、当該判断時に最も最近の時点でそれぞれのデータ処理ブロックの前記保存手段が保存した出力値に再設定してから、それぞれのデータ処理ブロックの動作を再開させる制御手段と、
前記制御手段による動作再開後、それぞれのデータ処理ブロックの前記判断手段のうち、一致していないと判断した判断手段を有するデータ処理ブロックを特定する特定手段と
を備えることを特徴とする検証装置。
A plurality of data processing blocks that process input data and output to the subsequent stage are connected in series, and after the data is input to the data processing block on the data input side, the subsequent data processing block is operated sequentially, A verification device that performs an operation verification process of the data processing block of
For each data processing block,
Monitoring means for monitoring the output of the data processing block at predetermined time intervals;
Storage means for storing the output monitored by the monitoring means;
Holding means for holding correct data that the output monitored by the monitoring means should follow originally;
Judgment means for judging whether or not the output monitored by the monitoring means matches the correct data corresponding to the output;
For the terminal data processing block on the output side, the monitoring unit, the storage unit, and the determination unit of the terminal data processing block are operated, and only the storage unit is operated for data processing blocks other than the terminal data processing block. When the operation verification process is performed and it is determined that the determination unit does not match, the output of each data processing block is output by the storage unit of each data processing block at the most recent time at the time of the determination. A control means for resetting the saved output value and restarting the operation of each data processing block;
A verification apparatus comprising: a specifying unit that specifies a data processing block having a determination unit that is determined not to match among the determination units of each data processing block after the operation is resumed by the control unit.
前記特定手段は、前記制御手段による動作再開後から前記時点までの間に、それぞれのデータ処理ブロックの前記判断手段のうち、一致していないと判断した判断手段を有するデータ処理ブロックを特定することを特徴とする請求項3に記載の検証装置。   The specifying unit specifies a data processing block having a determination unit that is determined not to match among the determination units of each data processing block between the time point after the operation is resumed by the control unit and the time point. The verification apparatus according to claim 3. 複数のコンピュータで共有するソフトウェアを保持しており、当該複数のコンピュータを搭載メモリ容量に応じて複数のグループに分けた場合に、それぞれのグループに対応するキューを保持するキュー保持手段を備える情報処理装置が行う情報処理方法であって、
前記ソフトウェアの実行要求を受けると、前記ソフトウェアの実行に必要なメモリ使用量を求める計算工程と、
前記計算工程で求めたメモリ使用量を許容する搭載メモリ容量を有するコンピュータが属するグループに対応するキューに、前記ソフトウェアの実行ジョブを格納する格納工程と
前記格納工程で実行ジョブを格納したキューに対応するグループに属するコンピュータの何れかに前記実行ジョブの使用許可を与える許可工程と
を備えることを特徴とする情報処理方法。
Information processing provided with queue holding means that holds software shared by a plurality of computers and holds a queue corresponding to each group when the plurality of computers are divided into a plurality of groups according to the installed memory capacity An information processing method performed by a device,
Upon receiving the execution request for the software, a calculation step for obtaining a memory usage necessary for executing the software;
Corresponding to the storage step for storing the execution job of the software and the queue for storing the execution job in the storage step in the queue corresponding to the group to which the computer having the installed memory capacity allowing the memory usage obtained in the calculation step belongs And a permission step of granting permission to use the execution job to any of the computers belonging to the group.
入力データを処理して後段に出力するデータ処理ブロックを複数個直列に結合した状態で備え、データ入力側のデータ処理ブロックにデータを入力した後に後段のデータ処理ブロックを順次動作させることで、それぞれのデータ処理ブロックの動作検証処理を行う検証装置の制御方法であって、
それぞれのデータ処理ブロックについて、
データ処理ブロックの出力を所定の時間間隔で監視する監視工程と、
前記監視工程で監視している出力を保存する保存工程と、
前記監視工程で監視した出力が本来従うべき正解データを保持する保持工程と、
前記監視工程で監視した出力が、当該出力に対応する正解データと一致するか否かを判断する判断工程と
を備え、
出力側の末端データ処理ブロックについては当該末端データ処理ブロックの前記監視工程、前記保存工程、前記判断工程における処理を動作させると共に、前記末端データ処理ブロック以外のデータ処理ブロックについては前記保存工程における処理のみを動作させて前記動作検証処理を行い、当該判断工程で一致していないと判断した場合には、それぞれのデータ処理ブロックの出力を、当該判断時に最も最近の時点でそれぞれのデータ処理ブロックの前記保存工程で保存した出力値に再設定してから、それぞれのデータ処理ブロックの動作を再開させる制御工程と、
前記制御工程による動作再開後、それぞれのデータ処理ブロックの前記判断工程のうち、一致していないと判断した判断工程を有するデータ処理ブロックを特定する特定工程と
を備えることを特徴とする検証装置の制御方法。
A plurality of data processing blocks that process input data and output to the subsequent stage are connected in series, and after the data is input to the data processing block on the data input side, the subsequent data processing block is operated sequentially, A method for controlling a verification apparatus that performs an operation verification process of the data processing block of
For each data processing block,
A monitoring step of monitoring the output of the data processing block at predetermined time intervals;
A storage step for storing the output monitored in the monitoring step;
A holding step for holding correct data that the output monitored in the monitoring step should originally follow;
A determination step of determining whether or not the output monitored in the monitoring step matches the correct data corresponding to the output;
For the terminal data processing block on the output side, the processing in the monitoring step, the storage step, and the determination step of the terminal data processing block is operated, and for the data processing blocks other than the terminal data processing block, the processing in the storage step When the operation verification processing is performed by operating only the data, and it is determined that they do not match in the determination step, the output of each data processing block is displayed at the most recent time at the time of the determination. After resetting the output value stored in the storage step, the control step of restarting the operation of each data processing block,
And a specifying step for specifying a data processing block having a determination step that is determined not to match among the determination steps of each data processing block after the operation is resumed by the control step. Control method.
コンピュータに請求項5に記載の情報処理方法を実行させることを特徴とするプログラム。   A program causing a computer to execute the information processing method according to claim 5. 請求項7に記載のプログラムを格納することを特徴とする、コンピュータ読み取り可能な記憶媒体。   A computer-readable storage medium storing the program according to claim 7.
JP2004369920A 2004-12-21 2004-12-21 Information processor, method for processing information, verification apparatus, and method of verification Withdrawn JP2006178663A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004369920A JP2006178663A (en) 2004-12-21 2004-12-21 Information processor, method for processing information, verification apparatus, and method of verification

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004369920A JP2006178663A (en) 2004-12-21 2004-12-21 Information processor, method for processing information, verification apparatus, and method of verification

Publications (1)

Publication Number Publication Date
JP2006178663A true JP2006178663A (en) 2006-07-06

Family

ID=36732730

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004369920A Withdrawn JP2006178663A (en) 2004-12-21 2004-12-21 Information processor, method for processing information, verification apparatus, and method of verification

Country Status (1)

Country Link
JP (1) JP2006178663A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010122758A (en) * 2008-11-17 2010-06-03 Fujitsu Ltd Job managing device, job managing method and job managing program
JP2011248580A (en) * 2010-05-26 2011-12-08 Nakayo Telecommun Inc Information processing terminal
JP2021157340A (en) * 2020-03-25 2021-10-07 京セラドキュメントソリューションズ株式会社 Data linkage system and API platform

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010122758A (en) * 2008-11-17 2010-06-03 Fujitsu Ltd Job managing device, job managing method and job managing program
US8812639B2 (en) 2008-11-17 2014-08-19 Fujitsu Limited Job managing device, job managing method and job managing program
JP2011248580A (en) * 2010-05-26 2011-12-08 Nakayo Telecommun Inc Information processing terminal
JP2021157340A (en) * 2020-03-25 2021-10-07 京セラドキュメントソリューションズ株式会社 Data linkage system and API platform
JP7421165B2 (en) 2020-03-25 2024-01-24 京セラドキュメントソリューションズ株式会社 Data linkage system and API platform

Similar Documents

Publication Publication Date Title
JP7313381B2 (en) Embedded scheduling of hardware resources for hardware acceleration
US5796941A (en) Method for supervising software execution in a license restricted environment
TWI410864B (en) Controlling instruction execution in a processing environment
US20120144146A1 (en) Memory management using both full hardware compression and hardware-assisted software compression
JP2006178663A (en) Information processor, method for processing information, verification apparatus, and method of verification
JP4580722B2 (en) Test simulator and test simulation program
US9058207B2 (en) Simulation apparatus, method, and computer-readable recording medium
JP5516737B2 (en) Processor system, control program, and control method
JP2012123726A (en) Simulation device and simulation program
US20130318310A1 (en) Processor processing method and processor system
US7945901B2 (en) System and method for facilitating software profiling procedures
US9582410B2 (en) Testing software on a computer system
JPWO2011118014A1 (en) Verification support program, control program, verification support apparatus, multi-core processor system, verification support method, and control method
JP2009238176A (en) Information processing apparatus and program verifying method
KR20170065845A (en) Processor and controlling method thereof
CN111930502A (en) Server management method, device, equipment and storage medium
US20020169908A1 (en) System and method for implementing a flexible arbitration mechanism
US20240289156A1 (en) Methods and systems of managing hypervisor efficiency and uptime
US11880231B2 (en) Accurate timestamp or derived counter value generation on a complex CPU
JP7478037B2 (en) Continuous integration system and continuous integration method
JP5390464B2 (en) Simulation apparatus, simulation apparatus control method, and program
JP2010231296A (en) Parallel computing system
JP5761419B2 (en) Multiprocessor system, control method, and control program
JP2967741B2 (en) CPU compatibility test equipment
CN113900928A (en) IO load automatic test method and device

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080304