JP2002279011A - Method and program for operation simulation of logical unit and computer readable recording medium with the program recorded - Google Patents

Method and program for operation simulation of logical unit and computer readable recording medium with the program recorded

Info

Publication number
JP2002279011A
JP2002279011A JP2001387198A JP2001387198A JP2002279011A JP 2002279011 A JP2002279011 A JP 2002279011A JP 2001387198 A JP2001387198 A JP 2001387198A JP 2001387198 A JP2001387198 A JP 2001387198A JP 2002279011 A JP2002279011 A JP 2002279011A
Authority
JP
Japan
Prior art keywords
resource
thread
manager
request
logic device
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.)
Granted
Application number
JP2001387198A
Other languages
Japanese (ja)
Other versions
JP4088439B2 (en
Inventor
Akio Matsuda
明男 松田
Tsutomu Shu
強 朱
Kazuhiro Matsuzaki
和浩 松崎
Takeshi Doi
武史 土居
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001387198A priority Critical patent/JP4088439B2/en
Publication of JP2002279011A publication Critical patent/JP2002279011A/en
Application granted granted Critical
Publication of JP4088439B2 publication Critical patent/JP4088439B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To perform function confirmation and architecture evaluation by performing operation simulation in the initial stage of logical unit design and also to flexibly correspond even to architecture change with minimum description change. SOLUTION: A resource manager 12 allocates necessary hardware resource 14 for performance of a thread 13 where a thread manager 11 represents a needed function by the operation completion of a logical unit, in response to the request, the thread manger 11 further controls the performance state of the thread 13 in accordance with the allocation results, the thread manager 11 and the resource manager 12 also work together to repeatedly perform a resource request, resource allocation and thread control until the performance of the thread 13 is completed, and thereby, operation up to the operation completion of the logical unit is simulated.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、LSI(Large Sc
ale Integrated circuit)やIC(Integrated Circui
t)などの論理装置を設計する上でその機能や性能の検
証を目的として動作シミュレーションを行なうのに用い
て好適な、論理装置の動作シミュレーション方法並びに
論理装置の動作シミュレーションプログラム及び同プロ
グラムを記録したコンピュータ読み取り可能な記録媒体
に関する。
TECHNICAL FIELD The present invention relates to an LSI (Large Sc
ale Integrated circuit) and IC (Integrated Circui)
t) A method for simulating an operation of a logic device, a simulation program for an operation of a logic device, and a program for recording the program, which are suitable for use in performing an operation simulation for the purpose of verifying the function and performance in designing the logic device such as t). The present invention relates to a computer-readable recording medium.

【0002】[0002]

【従来の技術】従来、論理装置の設計はHDL(Hardwar
e Description Language)を用いてRT(Register Tran
sfer)レベルから設計を開始することが多い。しかし、
RTレベルはクロックサイクル精度のハードウェアを意
図した技術なので、ハードウェアとソフトウェアが明確
に分離していない設計初期段階の論理装置を表現して機
能を検証したり性能を評価したりすることは困難であ
る。
2. Description of the Related Art Conventionally, logic devices have been designed using HDL (Hardware).
RT (Register Tran) using e Description Language
sfer) Design often starts at the level. But,
Since the RT level is a technology intended for hardware with clock cycle accuracy, it is difficult to verify the function and evaluate the performance by expressing the logic device at the early design stage where the hardware and software are not clearly separated. It is.

【0003】そこで、RTレベルよりも抽象度の高い設
計の初期段階で論理装置を記述する言語〔例:C/C+
+,UML(Unified Modeling Language),SDL(Sp
ecification and Description Language)など〕を用い
る設計手法が数多く提案されている。例えば、以下に列
記する文献がある。 「Hardware-Software Co-design of Embedded System
s - The POLIS approach」(F.Balarin,E.Sentovich,
M.Chiodo,P.Giusto,H.Hsieh,B.Tabbara and A.Jurec
ska,L.Lavagno,C.Passerone,K.Suzuki and A.Sangio
vanni-VinCentelli,Kluwer Academic Publishers,199
7.) 「Coware - a design environmentfor heterogeneous
hardware/software partitioning problem」(K.Rompa
ey,D.Verkest,I.Bolsens and H.De Man,Proceedings
EuroDAC,1996.) 「An Object Oriented Programming Approach for Ha
rdware Design」(S.Vernalde,P.Schaumont and I. Bo
lsens,IEEE Computer Society Workshop on VLSI,Apr
il,1999.) 「A Methodology and Design Environment for DSP A
SIC Fixed Point Refinement」(R.Cmar,L.Rijnders,
P.Schaumount,S.Vernalde and I.Bolsens,Proceeding
s Design and Test in Europe Conference, pp. 271-27
6,March,1999.) 「Hardware Reuse at the Behavioral Level」(P.Sc
haumont,R.Cmar,S.Vernalde,M.Engels and I.Bolsen
s,The proceedings of 36th Design AutomationConfer
ence. ACM,1999,pp. 784-789,June 1999.) 「An Efficient Implementation of Reactivity for
Modeling Hardware in the SCENIC Design Environmen
t」(Stan Liao,Steve Tijang and Rajesh Gupta,Pro
ceedings of the Design Automation Conference DAC'9
7,pp. 70-75, June 1999.) 「SpecC System-Level Design Methodology Applied
to the Design of a GSMVocoder」(A.Gerstlauer,S.Z
hao,A.Horak and D.Gajski,Proceedings of the Work
shop on Synthesis And System Integration of MIxed
Technologies,April,2000.) 「On the use of C++ for system-on-chip design」
(DiederikVerkest,Johan Cockx and Freddy Potargen
t,Proceedings of the IEEE Workshop on VLSI (IW
V),pp.42-47,April,1999.)
Therefore, a language for describing a logic device at an early stage of design having a higher level of abstraction than the RT level [eg, C / C +
+, UML (Unified Modeling Language), SDL (Sp
ecification and Description Language). For example, there are documents listed below. `` Hardware-Software Co-design of Embedded System
s-The POLIS approach ”(F.Balarin, E.Sentovich,
M.Chiodo, P.Giusto, H.Hsieh, B.Tabbara and A.Jurec
ska, L. Lavagno, C. Passerone, K. Suzuki and A. Sangio
vanni-VinCentelli, Kluwer Academic Publishers, 199
7. "Coware-a design environment for heterogeneous
hardware / software partitioning problem "(K. Rompa
ey, D. Verkest, I. Bolsens and H. De Man, Proceedings
EuroDAC, 1996. "An Object Oriented Programming Approach for Ha
rdware Design ”(S. Vernalde, P. Schaumont and I. Bo
lsens, IEEE Computer Society Workshop on VLSI, Apr
il, 1999. "A Methodology and Design Environment for DSP A
SIC Fixed Point Refinement "(R. Cmar, L. Rijnders,
P.Schaumount, S.Vernalde and I.Bolsens, Proceeding
s Design and Test in Europe Conference, pp. 271-27
6, March, 1999. "Hardware Reuse at the Behavioral Level" (P.Sc
haumont, R. Cmar, S. Vernalde, M. Engels and I. Bolsen
s 、 The proceedings of 36th Design AutomationConfer
ence. ACM, 1999, pp. 784-789, June 1999. ) "An Efficient Implementation of Reactivity for
Modeling Hardware in the SCENIC Design Environment
t ”(Stan Liao, Steve Tijang and Rajesh Gupta, Pro
ceedings of the Design Automation Conference DAC'9
7, pp. 70-75, June 1999. ) "SpecC System-Level Design Methodology Applied
to the Design of a GSMVocoder ”(A. Gerstlauer, SZ
hao, A. Horak and D. Gajski, Proceedings of the Work
shop on Synthesis And System Integration of MIxed
Technologies, April, 2000. "On the use of C ++ for system-on-chip design"
(DiederikVerkest, Johan Cockx and Freddy Potargen
t, Proceedings of the IEEE Workshop on VLSI (IW
V), pp.42-47, April, 1999. )

【0004】これらの設計手法では論理装置の並列/並
行処理を実現するためにソフトウェアのスレッド技術
〔参考文献「並列オペレーティングシステム」(福田
晃,(株)コロナ社,pp.30,1997.),「Javaスレッ
ドプログラミング」(Scott Oaks,Henry Wong共著,戸
松豊和,西村利浩訳,(株)オーム社,1997.)など〕
を導入している。
[0004] In these design methods, a software thread technology [Ref. "Parallel operating system" (Akira Fukuda, Corona Co., pp.30, 1997.) "Java thread programming" (Scott Oaks, Henry Wong co-authored, Toyoka Tomatsu, translated by Toshihiro Nishimura, Ohmsha Co., Ltd., 1997.)
Has been introduced.

【0005】即ち、各スレッドを1つの処理ブロックに
マッピングして、ブロック間には「通信」機能を定義す
ることで論理装置のシミュレーションを実現している。
ここで、論理装置の設計コストに影響する大きな要素は
二つ存在している。1つは手戻り作業の有無であり、も
う1つは設計の再利用性である。即ち、手戻り作業が多
いほど、設計コストは増加する。特に、設計仕様書(以
下、単に「仕様」という)からいきなりHDLを用いて
RTレベルの設計を始める場合に、仕様の確認を行なわ
ず、実装設計を開始すると、実装した結果が要求されて
いる仕様を満たさない場合に、仕様の見直しが必要とな
り、実装設計の再設計を行なわなければならないケース
が多い。これは設計工数、設計期間を大きく増大させる
原因である。これを改善するために、早期に正確なパフ
ォーマンスの見積もりを行なうことが重要である。
That is, a simulation of a logical device is realized by mapping each thread to one processing block and defining a "communication" function between the blocks.
Here, there are two major factors that affect the design cost of the logic device. One is the presence or absence of rework, and the other is design reusability. That is, as the number of rework operations increases, the design cost increases. In particular, when starting the design at the RT level using HDL immediately from a design specification (hereinafter simply referred to as "specification"), if the design is not confirmed and the mounting design is started, the mounting result is required. If the specifications are not satisfied, the specifications need to be reviewed, and the mounting design must be redesigned in many cases. This is a cause of greatly increasing the design man-hour and the design period. In order to improve this, it is important to make an early and accurate performance estimate.

【0006】もう一方、設計の再利用性に関しては、二
種類の再利用の可能性があげられる。一つは以前設計し
たモジュールの再利用であり、もう一つは設計を段階化
したときの途中段階の記述(ソースコード)の再利用で
ある。例えば、設計の途中からパフォーマンスを見積も
った結果によって、再設計になった場合に、ソースコー
ドを変更しなければならないことは設計コストに影響す
る。この視点から、仕様書から直接RTレベルを設計す
る手法は設計コストが高い。なぜなら、設計を変更する
と、最悪の場合、全てのRTレベルでの記述を再記述し
なければならないことがあるからである。
[0006] On the other hand, with respect to design reusability, there are two types of reusability. One is the reuse of previously designed modules, and the other is the reuse of intermediate descriptions (source code) when the design is staged. For example, in the case of redesign based on the result of estimating the performance in the middle of the design, the need to change the source code affects the design cost. From this viewpoint, the method of designing the RT level directly from the specification has a high design cost. This is because if the design is changed, in the worst case, descriptions at all RT levels may need to be rewritten.

【0007】以上のように、仕様から直接RTレベルで
設計プロセスを開始することは設計コストの増大につな
がることがわかる。そこで、これを解決するために、シ
ステムの上位設計の手法が提案されている。例えば図3
0(A)及び図30(B)に示すような、段階的詳細化
による設計アプローチである。この段階的詳細化による
設計アプローチは、概略して、以下のような手順によっ
て設計が行なわれる。
As described above, it can be seen that starting the design process directly from the specification at the RT level leads to an increase in design cost. Therefore, in order to solve this, a method of higher-level design of the system has been proposed. For example, FIG.
0 (A) and FIG. 30 (B), a design approach based on stepwise refinement. In the design approach based on the stepwise refinement, the design is generally performed according to the following procedure.

【0008】・仕様100から機能(ブロック)を抽出
してブロック図化する〔図30(A)のステップA
1〕。そして、そのブロック図に基づいて、例えば、C
言語などによって、「UnTimed」レベルの機能モデル、
つまり、時間概念を考慮しない機能モデルを構築(記
述)する〔図30(A)のステップA2,図30(B)
のステップB1〕。なお、このとき、機能(ブロック)
間に依存関係があれば、その間には「通信」機能が定義
(記述)され、それらの機能(ブロック)はシーケンシ
ャルに実行される。
[0008] A function (block) is extracted from the specification 100 to make a block diagram [Step A in FIG.
1]. Then, based on the block diagram, for example, C
Depending on the language, etc., "UnTimed" level functional model,
In other words, a function model that does not consider the concept of time is constructed (described) [Step A2 in FIG. 30A, FIG.
Step B1]. At this time, the function (block)
If there is a dependency between them, a "communication" function is defined (described) between them, and those functions (blocks) are executed sequentially.

【0009】・アーキテクチャの設計によって、ハード
ウェアにマッピングする機能ブロックの記述をBCA
(Bus Cycle Accurate)に変更し〔図30(B)のステ
ップB2〕、「通信」機能はバス通信プロトコルになる
〔図30(B)のステップB3〕。この段階(レベル)
でパフォーマンスの見積もりを行ない〔図30(A)の
ステップA3〕、仕様の確認を行なう。
According to the architecture design, the description of the functional block to be mapped to the hardware is
(Bus Cycle Accurate) [Step B2 in FIG. 30 (B)], and the “communication” function becomes a bus communication protocol [Step B3 in FIG. 30 (B)]. This stage (level)
To estimate the performance [Step A3 in FIG. 30 (A)], and confirm the specifications.

【0010】・さらに記述をFCA(Full Cycle Accur
ate)に変更して〔図30(B)のステップB4〕、実
際のRTレベルの記述に変更する〔図30(A)のステ
ップA4〕。このとき、「通信」機能も記述に組み込む
〔図30(A)のステップA5〕。以上のような段階的
な詳細化によって、早期に仕様の確認ができ、実行可能
な仕様を実現することができる。
[0010] Further description is made by FCA (Full Cycle Accur
ate) (step B4 in FIG. 30B) and change to the actual RT level description [step A4 in FIG. 30A]. At this time, the "communication" function is also incorporated into the description (step A5 in FIG. 30A). By the above-described detailed refinement, the specifications can be confirmed at an early stage, and an executable specification can be realized.

【0011】[0011]

【発明が解決しようとする課題】しかしながら、上述し
たような従来手法では、各レベルでの変更を全て手作業
で行なうため、上記の「UnTimed」レベルからBCAレ
ベルに変更する際に余計な設計コストが必要となる。さ
らに、その段階でのパフォーマンスの見積もり(上記の
ステップA3)において、設計の見直しが必要になった
場合、記述を変更しなければならない。
However, in the above-described conventional method, since all changes at each level are performed manually, an extra design cost is required when changing from the "UnTimed" level to the BCA level. Is required. Further, in the performance estimation at that stage (step A3 described above), if the design needs to be reviewed, the description must be changed.

【0012】また、従来手法では、機能(ブロック)の
構成にアーキテクチャが反映されているため、アーキテ
クチャの変更が必要になった場合、その機能(ブロッ
ク)の構成を変更しなければならず、これに伴ってその
記述も変更しなければならなくなる。
In the conventional method, since the architecture is reflected in the configuration of the function (block), if the architecture needs to be changed, the configuration of the function (block) must be changed. Accordingly, the description must be changed.

【0013】例えば図31に示すように、BCA記述に
より、ハードウェア資源(リソース)「A」を用いて機
能「1」が実現(ハードウェア資源「A」に機能「1」
がマッピングされる)とともに、ハードウェア資源
「B」を用いて機能「2」が実現され、且つ、これらの
機能「1」,「2」間に「通信」機能が定義された状態
で、さらに、ハードウェア資源「A」を複数用いて上記
と同じ機能「1」を追加実現する必要があった場合を想
定する。
For example, as shown in FIG. 31, the function “1” is realized by using the hardware resource (resource) “A” by the BCA description (the function “1” is assigned to the hardware resource “A”).
Are mapped), the function “2” is realized using the hardware resource “B”, and the “communication” function is defined between these functions “1” and “2”. Assume that it is necessary to additionally realize the same function "1" as described above using a plurality of hardware resources "A".

【0014】この場合、追加分の機能「1」のBCA記
述をハードウェア資源「A」の個数分だけ用意しなけれ
ばならず、さらに、機能「1」と機能「2」との間の
「通信」機能を既に定義済みの分も含めて再定義しなけ
ればならない。このように、従来手法では、機能(ブロ
ック)の構成にアーキテクチャが反映されているため、
アーキテクチャの変更が必要になる度に機能(ブロッ
ク)の記述を全て変更する必要があり、設計コストが大
幅に増大し、設計効率が悪くなる。
In this case, the BCA description of the additional function “1” must be prepared by the number of the hardware resources “A”, and the “CA” between the function “1” and the function “2” must be prepared. The "communications" function must be redefined, including those already defined. As described above, in the conventional method, since the architecture is reflected in the configuration of the function (block),
Every time the architecture needs to be changed, it is necessary to change all the descriptions of the functions (blocks), which significantly increases the design cost and lowers the design efficiency.

【0015】本発明は、このような課題に鑑み創案され
たもので、論理装置の設計の初期段階において、動作シ
ミュレーションを行なって、機能の確認,アーキテクチ
ャの評価を行なえるようにするとともに、アーキテクチ
ャの変更に対しても最小限の記述の変更で柔軟に対応で
きるようにすることで、論理装置の設計コストを大幅に
削減できるようにすることを目的とする。
The present invention has been made in view of the above-mentioned problems. In the initial stage of the design of a logic device, an operation simulation is performed to confirm functions and evaluate an architecture. An object of the present invention is to make it possible to drastically reduce the design cost of a logical device by making it possible to flexibly cope with the change of the logical device with a minimum change of description.

【0016】[0016]

【課題を解決するための手段】上記の目的を達成するた
めに、本発明の論理装置の動作シミュレーション方法
(請求項1)は、プログラムの実行単位であるスレッ
ドの制御を行なうスレッドマネージャが、論理装置の設
計仕様に応じてその論理装置の動作完了までに必要とな
る機能を表したスレッドの実行に必要なハードウェアリ
ソースを、そのハードウェアリソースを管理するリソー
スマネージャに要求するリソース要求ステップと、上
記のリソースマネージャが、その要求に応じたハードウ
ェアリソースを予め規定されたルールに従って上記スレ
ッドに割り当てるリソース割り当てステップと、上記
のスレッドマネージャが、このリソースマネージャによ
る割り当て結果に応じて上記スレッドの実行状態を制御
するスレッド制御ステップとを有するとともに、上記ス
レッドの実行が完了するまで上記のスレッドマネージャ
とリソースマネージャとが連携して上記〜の各ステ
ップを繰り返し実行することにより、論理装置の動作完
了までの動作をシミュレーションすることを特徴として
いる。
In order to achieve the above object, according to the present invention, there is provided a method for simulating the operation of a logic device, comprising: a thread manager for controlling a thread which is a unit of execution of a program; A resource requesting step of requesting, from a resource manager that manages the hardware resource, a hardware resource required for executing a thread representing a function required until the operation of the logical device according to the device design specification, A resource allocation step in which the resource manager allocates a hardware resource according to the request to the thread according to a predetermined rule; and wherein the thread manager determines an execution state of the thread in accordance with an allocation result by the resource manager. Thread control step to control And simulating the operation until the operation of the logical device is completed by the thread manager and the resource manager cooperating with each other and repeatedly executing the above steps until the execution of the thread is completed. And

【0017】なお、上記のリソースマネージャは、上記
のリソース要求ステップ()によるリソース要求を監
視し、その監視結果に基づいて複数スレッド間のリソー
ス要求のデッドロック状態を判定するようにしてもよい
(請求項2)。
The resource manager may monitor the resource request in the resource request step () and determine a deadlock state of the resource request between a plurality of threads based on the monitoring result ( Claim 2).

【0018】また、上記のリソースマネージャは、上記
のリソース要求ステップ()によるリソース要求によ
って割り当てられたハードウェアリソースに対するリー
ド/ライト要求を監視し、その監視結果に基づいて複数
スレッドのハードウェアリソースに対するリード/ライ
ト動作の競合状態を判定するようにしてもよい(請求項
3)。
The resource manager monitors a read / write request for the hardware resource allocated by the resource request in the resource request step (), and based on the result of the monitoring, requests for a hardware resource of a plurality of threads. A conflict state between read / write operations may be determined.

【0019】さらに、上記のリソースマネージャは、上
記のハードウェアリソースに対するリソース要求数を監
視し、その監視結果に基づいてスレッドのボトルネック
を検出するようにしてもよい(請求項4)。また、上記
のリソースマネージャは、上記のハードウェアリソース
に対するリソース要求数を監視し、その監視結果に基づ
いてリソース要求のブロッキングを検出するようにして
もよい(請求項5)。
Further, the resource manager may monitor the number of resource requests for the hardware resource and detect a thread bottleneck based on the monitoring result. Further, the resource manager may monitor the number of resource requests for the hardware resource and detect blocking of the resource request based on the monitoring result.

【0020】さらに、上記のスレッドには、上記のリソ
ースマネージャによって割り当てられたハードウェアリ
ソースを占有する時間についての予算を与えておいても
よいし(請求項6)、上記の機能に実行制限時間を与え
ておいてもよい(請求項7)。また、本発明の論理装置
の動作シミュレーション方法(請求項8)は、上記の動
作シミュレーション方法によるシミュレーション結果
と、上記論理装置の動作予測値とを比較する比較ステッ
プと、この比較ステップでの比較結果を外部装置へ出力
する出力ステップとを有していることを特徴としてい
る。
Further, the thread may be given a budget for occupying the hardware resources allocated by the resource manager (claim 6), or the function may be limited to an execution time limit. (Claim 7). The operation simulation method for a logic device according to the present invention (claim 8) includes a comparison step of comparing a simulation result by the operation simulation method with an operation prediction value of the logic device, and a comparison result in the comparison step. And outputting to the external device.

【0021】次に、本発明の論理装置の動作シミュレー
ションプログラム(請求項11)は、コンピュータを、
プログラムの実行単位であるスレッドの制御を行なうス
レッドマネージャ及び上記スレッドの実行に必要なハー
ドウェアリソースを管理するリソースマネージャとして
機能させるとともに、上記のスレッドマネージャが、
論理装置の設計仕様に応じて該論理装置の動作完了まで
に必要となる機能を表したスレッドの実行に必要なハー
ドウェアリソースを上記のリソースマネージャに要求す
るリソース要求ステップと、上記のリソースマネージ
ャが、その要求に応じたハードウェアリソースを予め規
定されたルールに従って上記スレッドに割り当てるリソ
ース割り当てステップと、上記のスレッドマネージャ
が、上記のリソースマネージャによる割り当て結果に応
じて上記スレッドの実行状態を制御するスレッド制御ス
テップとを実行するとともに、上記スレッドの実行が完
了するまで上記のスレッドマネージャとリソースマネー
ジャとが連携して上記〜の各ステップを繰り返し実
行することにより、論理装置の動作完了までの動作をシ
ミュレーションすることを特徴としている。
Next, an operation simulation program for a logic device according to the present invention (claim 11) comprises a computer
A thread manager that controls a thread, which is a unit of execution of a program, and a resource manager that manages hardware resources necessary for the execution of the thread.
A resource requesting step of requesting the resource manager for hardware resources necessary for executing a thread representing a function required until the operation of the logical device is completed according to a design specification of the logical device; A resource allocating step of allocating a hardware resource according to the request to the thread according to a predetermined rule, and the thread manager controlling an execution state of the thread according to a result of the allocation by the resource manager By executing the control steps, the above thread manager and the resource manager cooperate with each other to repeatedly execute the above steps until the execution of the thread is completed, thereby simulating the operation until the operation of the logical device is completed. To do It is a symptom.

【0022】さらに、本発明の論理装置の動作シミュレ
ーションプログラム(請求項12)は、コンピュータ
に、上記の動作シミュレーション方法によるシミュレー
ション結果と論理装置の動作予測値とを比較する比較ス
テップと、この比較ステップでの比較結果を外部装置へ
出力する出力ステップとを実行させることを特徴として
いる。
Further, an operation simulation program for a logic device according to the present invention (claim 12) provides a computer with a comparison step of comparing a simulation result obtained by the above-described operation simulation method with a predicted operation value of the logic device; And outputting the comparison result to an external device.

【0023】そして、本発明の論理装置の動作シミュレ
ーションプログラムを記録したコンピュータ読み取り可
能な記録媒体(請求項9,10)は、上記の請求項1
1,12記載の動作シミュレーションプログラムを記録
したものである。
The computer readable recording medium (Claims 9 and 10) on which the operation simulation program for a logic device according to the present invention is recorded is described in claim 1 above.
1 and 12 are recorded.

【0024】[0024]

【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。 (A)第1実施形態の説明 図1は本発明の第1実施形態に係るパーソナルコンピュ
ータなどの計算機(情報処理装置)の構成を示すブロッ
ク図で、この図1に示す計算機1は、計算機本体2とデ
ィスプレイ(表示装置)3とをそなえており、計算機本
体2(以下、単に「本体2」と略記することがある)に
は、例えば、CPU(Central Processing Unit)4,
主記憶部(メモリ)5,二次記憶装置(ハードディス
ク)6,フロッピー(登録商標)ディスク(FD)ドラ
イブ7などがそなえられており、これらのコンポーネン
トがPCI(Peripheral Component Interconnect)バ
スなどの内部バス8を介して相互に通信可能に接続され
ている。
Embodiments of the present invention will be described below with reference to the drawings. (A) Description of First Embodiment FIG. 1 is a block diagram showing a configuration of a computer (information processing apparatus) such as a personal computer according to a first embodiment of the present invention. The computer 1 shown in FIG. 2 and a display (display device) 3, and the computer main unit 2 (hereinafter sometimes simply referred to as “main unit 2”) includes, for example, a CPU (Central Processing Unit) 4.
A main storage unit (memory) 5, a secondary storage device (hard disk) 6, a floppy (registered trademark) disk (FD) drive 7, and the like are provided. These components are connected to an internal bus such as a PCI (Peripheral Component Interconnect) bus. 8 are communicably connected to each other.

【0025】ここで、上記のCPU4は、計算機1とし
ての動作を統括制御するためのもので、メモリ5やハー
ドディスク6に内部バス8を介してアクセスして必要な
ソフトウェア(アプリケーション)プログラム(以下、
単に「プログラム」ともいう)やアプリケーションデー
タなどを読み込んで動作することによって、計算機1と
して必要な機能(本実施形態では、特に、論理装置の動
作シミュレーション装置としての機能)が発揮されるよ
うになっている。なお、その動作結果(論理装置の動作
シミュレーション結果を含む)は、適宜、ディスプレイ
3に表示(出力)される。
Here, the CPU 4 controls the operation of the computer 1 as a whole, and accesses the memory 5 and the hard disk 6 via the internal bus 8 to make necessary software (application) programs (hereinafter, referred to as “programs”).
The functions required as the computer 1 (in the present embodiment, in particular, the functions as the operation simulation device of the logic device) come to be exhibited by reading and operating the program data or application data. ing. The operation result (including the operation simulation result of the logic device) is displayed (output) on the display 3 as appropriate.

【0026】また、ハードディスク6は、上記のプログ
ラムやアプリケーションデータなど(以下、説明の便宜
上、単に「各種データ」と総称することがある)を予
め、あるいは、インストールなどによって記憶しておく
ためのもので、ここに記憶されている各種データが、適
宜、CPU4からのアクセス速度が高速なメモリ5に読
み出されて、CPU4によるプログラムの実行が高速に
行なわれるようになっている。
The hard disk 6 stores the above-mentioned programs, application data, and the like (hereinafter, may be simply referred to as “various data” for convenience of description) in advance or by installing. The various data stored therein are read out to the memory 5 having a high access speed from the CPU 4 as appropriate, and the CPU 4 executes the program at a high speed.

【0027】さらに、FDドライブ7は、フロッピーデ
ィスク(FD;記録媒体)9に記録されている各種デー
タをCPU4の制御のもとに読み出してハードディスク
6に記憶することによって、各種データのインストール
を可能にする機能を提供するもので、例えば、FD9
に、論理装置の動作シミュレーションプログラム10が
記録されていれば、このFD9からその動作シミュレー
ションプログラム10をインストールする(ハードディ
スク6に記憶する)ことによって、計算機1(CPU
4)を論理装置の動作シミュレーション装置として機能
させることが可能である。
Further, the FD drive 7 can install various data by reading various data recorded on a floppy disk (FD; recording medium) 9 under the control of the CPU 4 and storing the data on the hard disk 6. FD9, for example.
If the operation simulation program 10 of the logical device is recorded in the computer 1, the operation simulation program 10 is installed from the FD 9 (stored in the hard disk 6), so that the computer 1 (CPU
4) can function as an operation simulation device for a logic device.

【0028】なお、上記の論理装置の動作シミュレーシ
ョンプログラム10(以下、単に「シミュレーションプ
ログラム10」、もしくは、「プログラム10」とい
う)がハードディスク6あるいはメモリ5に記憶された
時点で、そのプログラム10を保持したハードディスク
6あるいはメモリ5が上記シミュレーションプログラム
10を記録した記録媒体となることはいうまでもない。
When the operation simulation program 10 (hereinafter simply referred to as “simulation program 10” or “program 10”) for the above logic device is stored in the hard disk 6 or the memory 5, the program 10 is held. Needless to say, the hard disk 6 or the memory 5 becomes a recording medium on which the simulation program 10 is recorded.

【0029】また、このプログラム10は、勿論、FD
9以外の記録媒体〔例えば、CD−ROMや光磁気ディ
スク(MO)など〕に記録されていてもよく、対応する
ドライブなどが本体2に装備されていれば、上記と同様
に、それらの記録媒体からのインストールが可能であ
る。さらに、記録媒体からのインストールだけでなく、
例えば、インターネットなどの所望の通信回線(ネット
ワーク)を介したオンラインでのインストールも可能で
ある。つまり、プログラム10は、FD9やCD−RO
M,MOなどの記録媒体として提供されてもよいし、イ
ンターネットなどの所望の通信回線を介して提供されて
もよい。
The program 10 is, of course, FD
9 may be recorded on a recording medium other than 9 (for example, CD-ROM, magneto-optical disk (MO), etc.). Installation from media is possible. Furthermore, not only installation from the recording medium,
For example, online installation via a desired communication line (network) such as the Internet is also possible. That is, the program 10 includes the FD9 and the CD-RO
It may be provided as a recording medium such as M or MO, or may be provided via a desired communication line such as the Internet.

【0030】さて次に、以下では、上記のシミュレーシ
ョンプログラム10の詳細について説明する。本実施形
態のシミュレーションプログラム10は、例えば図2に
示すようなOMT(Object-oriented Modeling Techniq
ue)に基づいて記述(オブジェクト指向プログラミン
グ)されており、その要部に着目すると、この図2に示
すように、スレッドマネージャ11,リソースマネージ
ャ12,スレッド13,リソース14,テストベンチ1
5,テストデータ16,入力キュー17,実行待ちキュ
ー18,(リソース)要求19,回答21,リソース回
答キュー22などが定義されている。なお、「OMT」
については、例えば、文献「オブジェクト指向方法論O
MT」(J.ランボー,M.ブラハ,W.プレラニ,F.エデ
ィ,W.ローレンセン共著,羽生田栄一訳,(株)トッパ
ン,1995.)になどに詳しく解説されている。
Next, the details of the simulation program 10 will be described below. The simulation program 10 according to the present embodiment includes, for example, an OMT (Object-oriented Modeling Techniq) as shown in FIG.
ue), the description is based on object-oriented programming. Focusing on the main part, as shown in FIG. 2, the thread manager 11, the resource manager 12, the thread 13, the resource 14, the test bench 1
5, test data 16, input queue 17, execution queue 18, (resource) request 19, answer 21, resource answer queue 22, and the like. "OMT"
For example, see the document “Object-oriented methodology O
MT "(J. Rambo, M. Blaha, W. Plelani, F. Eddy, W. Laurensen, co-authored, translated by Eiichi Hanyuda, Toppan Co., Ltd., 1995.).

【0031】ここで、まず、テストベンチ15は、論理
装置の動作シミュレーションを行なうのに必要なテスト
データ16を所定のデータ生成ルールに従って生成して
から実行権利を入力キュー17に譲るという機能を提供
するもので、このテストベンチ15で生成されたテスト
データ16がテストベンチ15の所有する入力キュー1
7に順次格納されたのち、スレッドマネージャ11によ
って順次取り出されて、スレッド13の生成に使用され
るようになっている。
Here, first, the test bench 15 provides a function of generating test data 16 necessary for simulating the operation of the logic device according to a predetermined data generation rule, and then transferring the execution right to the input queue 17. The test data 16 generated by the test bench 15 is stored in the input queue 1 owned by the test bench 15.
7 are sequentially retrieved by the thread manager 11 and used to generate a thread 13.

【0032】次に、上記のスレッド13は、「実行権利
を譲る」,「実行する」,「停止する」,「停止す
る」,「再開する」,「開始する」,「消滅する」,
「生成する」などの関数(OMTでは「メソッド」と呼
ばれる)が定義されることにより、スレッドマネージャ
11から実行権利を譲り受けた場合にスレッド13の実
行状態が制御されるようになっている。
Next, the above-mentioned thread 13 includes "give execution right", "execute", "stop", "stop", "resume", "start", "disappear",
By defining a function such as “generate” (called “method” in OMT), the execution state of the thread 13 is controlled when the execution right is transferred from the thread manager 11.

【0033】このスレッド13は、プログラムの実行単
位を表し、本実施形態では、実現したい論理装置の設計
仕様に応じて必要となる論理装置の入力から出力(動作
完了)までの処理(機能)を表した(定義した)逐次フ
ローとして記述される。仮に、論理装置の入力から出力
までに必要な処理(機能)を処理A→処理B→処理Cと
し、これらを1つのスレッド13に表すとすると、例え
ばC++記述スタイルを用いた場合、図5に示すように
記述される。なお、以降の説明においても、シミュレー
ションプログラム10の具体的な記述例については、特
に断らない限り、C++記述スタイルを適用するものと
する。
The thread 13 represents a unit of execution of a program. In the present embodiment, the thread 13 performs processing (function) from input to output (operation completion) of the logical device required according to the design specification of the logical device to be realized. It is described as a represented (defined) sequential flow. Assuming that processes (functions) required from the input to the output of the logical device are process A → process B → process C, and these are represented by one thread 13, for example, when the C ++ description style is used, FIG. It is described as shown. In the following description, a C ++ description style will be applied to a specific description example of the simulation program 10 unless otherwise specified.

【0034】そして、上記のスレッド13は、実行状態
になると、その進行(即ち、上記の処理A,B,Cなど
の「メソッド」の実行)のためにリソース14を確保す
る必要がある場合はそれを要求する要求(リソース要
求)19を、確保したリソース14を解放する場合には
それを要求する要求(解放要求)19を、それぞれ、自
立的に発行してリソース要求キュー20に順次格納して
ゆくようになっている。
When the thread 13 enters the execution state, if it is necessary to secure the resource 14 for its progress (ie, execution of the “methods” such as the processes A, B, and C), A request (resource request) 19 for requesting the resource and a request (release request) 19 for releasing the secured resource 14 are issued independently and sequentially stored in the resource request queue 20 when releasing the secured resource 14. It is going to go.

【0035】なお、ここでいうリソース14とは、本実
施形態では、ハードウェア資源(ハードウェアリソー
ス)に関する情報を意味し、例えば、プロセッサ,AS
IC(Application Specific Integrated Circuit),
演算器などがそれぞれリソースデータとして定義され
る。
In this embodiment, the resource 14 refers to information on hardware resources (hardware resources).
IC (Application Specific Integrated Circuit),
Arithmetic units are defined as resource data.

【0036】次に、実行待ちキュー18は、複数のキュ
ーのそれぞれに実行待ちのスレッド13を格納する機能
を提供するもので、この実行待ちキュー18は、スレッ
ドマネージャ11に集約されている。
Next, the execution queue 18 provides a function of storing the threads 13 waiting to be executed in each of a plurality of queues. The execution queue 18 is centralized in the thread manager 11.

【0037】つまり、本実施形態のスレッドマネージャ
11は、実行待ちキュー18と1つ以上のスレッド13
から構成され、スレッド13の進行(生成,実行,停
止,再開,消滅などの「メソッド」)及び複数のスレッ
ド13の実行スケジュール(順序)を管理する(即ち、
スレッド13の制御を行なう)タスクとして機能する。
なお、スレッド13の次回の動作は、このスレッドマネ
ージャ11が、リソースマネージャ12の発行する回答
21をリソース回答キュー22から取り出して参照する
ことで決定される(詳細については後述する)。
That is, the thread manager 11 according to the present embodiment includes the execution queue 18 and one or more threads 13
And manages the progress ("methods" such as generation, execution, stop, restart, and disappearance) of the thread 13 and the execution schedule (order) of the plurality of threads 13 (that is,
It functions as a task for controlling the thread 13).
The next operation of the thread 13 is determined by the thread manager 11 taking out the answer 21 issued by the resource manager 12 from the resource answer queue 22 and referring to it (details will be described later).

【0038】さらに、リソースマネージャ12は、スレ
ッド13が進行するのに(「メソッド」の実行に)必要
なリソース14(種類及び個数)を管理し、予め規定さ
れた上記「調停ルール」に従って単位時間当たりのリソ
ース要求19をリソース14の種類毎に調停しながら、
リソース要求19に応じたリソース14を要求元のスレ
ッド13に割り当てるものである。
Further, the resource manager 12 manages resources 14 (types and numbers) necessary for the thread 13 to proceed (to execute the “method”), and executes a unit time according to the above-mentioned “arbitration rule” defined in advance. While arbitrating resource requests 19 per type for each type of resources 14,
The resource 14 according to the resource request 19 is allocated to the requesting thread 13.

【0039】なお、このリソースマネージャ12による
リソース14の割り当て結果は回答21として発行さ
れ、一旦、リソース回答キュー22に格納(追加)され
たのち、スレッドマネージャ11によって取り出されて
参照される。また、上記の「単位時間」とは、リソース
マネージャ12がリソース14の調停を行なう最小の時
間単位を意味する。
The result of the allocation of the resource 14 by the resource manager 12 is issued as a response 21, temporarily stored (added) in the resource response queue 22, and then taken out and referenced by the thread manager 11. Further, the “unit time” means a minimum time unit in which the resource manager 12 arbitrates the resources 14.

【0040】ここで、本リソースマネージャ12を、上
記のスレッド13と同様にC++記述スタイルで記述す
ると、例えば図6に示すようになる。即ち、リソースマ
ネージャ12が管理するリソース(R)14の種類を例
えば“R1”,“R2”とし、上記のリソース要求キュ
ー20とリソース回答キュー22とを定義する。
Here, when the resource manager 12 is described in the C ++ description style in the same manner as the thread 13, the result is as shown in FIG. 6, for example. That is, the type of the resource (R) 14 managed by the resource manager 12 is, for example, “R1” or “R2”, and the resource request queue 20 and the resource reply queue 22 are defined.

【0041】そして、要求メソッド31a、リソース1
4の解放を行なう解放メソッド31b、リソース14の
調停を行なう調停メソッド31cをそれぞれ定義する。
ここで、要求メソッド31aは、どの種類のリソース1
4(“R1”or“R2”)を要求するのかをパラメー
タとして明確に指定し、要求したリソース14とその要
求19を出したスレッド13のスレッドIDとを要求メ
ッセージとしてリソース要求キュー20に登録する操作
を行なうための関数である。
Then, the request method 31a, the resource 1
4 and a mediation method 31c for mediating the resource 14, respectively.
Here, the request method 31a indicates which type of resource 1
4 (“R1” or “R2”) is explicitly specified as a parameter, and the requested resource 14 and the thread ID of the thread 13 that issued the request 19 are registered in the resource request queue 20 as a request message. A function for performing operations.

【0042】また、解放メソッド31bは、リソース1
4の解放を行ない、解放したリソース14の個数を1つ
増やす操作を行なう関数であり、調停メソッド31c
は、リソース14の種類(“R1”,“R2”)毎にそ
れぞれの「調停ルール」に従ってリソース割り当ての調
停を行なうための関数で、破線枠311内の記述によ
り、リソース要求キュー20が空でない限り、リソース
要求キュー20から1つずつ要求19が取り出され、例
えば、リソース14の種類が“R1”の場合は破線枠3
12及び313内の記述が実行され、リソース14の種
類が“R2”の場合は破線枠314及び315内の記述
が実行される。
Further, the release method 31 b
This function performs an operation of releasing the resource 4 and increasing the number of the released resources 14 by one.
Is a function for performing arbitration of resource allocation according to each "arbitration rule" for each type of resource 14 ("R1", "R2"). The resource request queue 20 is not empty according to the description in the broken line frame 311. As long as the request 19 is taken out of the resource request queue 20 one by one, for example, when the type of the resource 14 is “R1”,
The descriptions in 12 and 313 are executed. When the type of the resource 14 is “R2”, the descriptions in dashed frames 314 and 315 are executed.

【0043】なお、破線枠312,314内の記述は、
要求されたリソース14(“R1”もしくは“R2”)
の個数がその時点で0以下であれば、割り当てられるリ
ソース14が無いので、リソース割り当て結果の回答2
1として“False”をリソース回答キュー22に格納す
ることを意味する。また、破線枠313,315内の記
述は、上記以外の場合、即ち、要求されたリソース14
(“R1”もしくは“R2”)の個数が1以上であれ
ば、割り当て可能なので、そのリソース14の調停ルー
ルに従ってリソース14の割り当てを行なって、その調
停(割り当て)結果(“True”)を回答21としてリソ
ース回答キュー22に格納することを意味する。
The description in the broken lines 312 and 314 is as follows.
Requested resource 14 ("R1" or "R2")
If the number is less than or equal to 0 at that time, there are no resources 14 to be allocated,
"1" means that "False" is stored in the resource reply queue 22. The description in the dashed frames 313 and 315 is the case other than the above, that is,
If the number of (“R1” or “R2”) is 1 or more, allocation is possible. Therefore, the resource 14 is allocated according to the arbitration rule of the resource 14, and the arbitration (allocation) result (“True”) is returned. 21 means that it is stored in the resource reply queue 22.

【0044】以上のような構成により、本実施形態のシ
ミュレーションプログラム10は、計算機1(CPU
4)を、次のように動作(機能)させることが可能であ
る。即ち、図3に模式的に示すように、まず、テストベ
ンチ15が規定の「テスト生成ルール」に従ってテスト
データ16を生成して(ステップS1)、入力キュー1
7に追加する(ステップS2)。
With the above configuration, the simulation program 10 of the present embodiment is executed by the computer 1 (CPU
4) can be operated (functioned) as follows. That is, as schematically shown in FIG. 3, first, the test bench 15 generates test data 16 in accordance with a prescribed “test generation rule” (step S1), and the input queue 1
7 (step S2).

【0045】テストベンチ15は、全てのテストデータ
16を生成した後、スレッドマネージャ11に実行権利
を譲る(ステップS3)。実行権利を譲り受けたスレッ
ドマネージャ11は、入力キュー17からテストデータ
16を取り出して(ステップS4)、それに対応するス
レッド13を生成し(ステップS5;スレッド生成ステ
ップ)、実行待ちキュー18に追加する(ステップS
6)。なお、この時点でのスレッド13は何も実行して
いない未開始状態にある。
After generating all the test data 16, the test bench 15 gives the execution right to the thread manager 11 (step S 3). The thread manager 11 that has received the execution right extracts the test data 16 from the input queue 17 (step S4), generates a corresponding thread 13 (step S5; thread generation step), and adds it to the execution queue 18 (step S5). Step S
6). At this point, the thread 13 is in an unstarted state in which nothing is executed.

【0046】そして、スレッドマネージャ11は、入力
キュー17が空になってから実行待ちキュー18から実
行待ちのスレッド13を取り出し、そのスレッド13が
未開始状態であれば実行させて「実行状態」にする(ス
テップS7)。「実行状態」となったスレッド13は、
リソースマネージャ12に対して最初の「メソッド」に
必要なリソース14の確保を要求する(例えば、リソー
ス「A」〜「C」のうちのリソース「B」に対するリソ
ース要求19を発行する;ステップS8;リソース要求
ステップ)。このリソース要求19は、スレッドマネー
ジャ11によって、リソース要求キュー20に追加され
る。また、このリソース要求19を発行したスレッド1
3は、実行待ちキュー18の最後に追加される。
After the input queue 17 becomes empty, the thread manager 11 takes out the waiting thread 13 from the waiting queue 18 and, if the thread 13 has not been started yet, executes the thread 13 to bring it into the "execution state". (Step S7). The thread 13 in the “execution state”
Requests the resource manager 12 to secure a resource 14 required for the first "method" (for example, issues a resource request 19 for the resource "B" of the resources "A" to "C"; Step S8; Resource request step). This resource request 19 is added to the resource request queue 20 by the thread manager 11. The thread 1 that issued the resource request 19
3 is added to the end of the execution queue 18.

【0047】その後、スレッドマネージャ11は、実行
待ちキュー18に格納されている全てのスレッド13の
処理(実行)が終了すると、実行権利をリソースマネー
ジャ12に譲る(ステップS9)。実行権利を譲り受け
たリソースマネージャ12は、リソース要求キュー20
の先頭から、順次、リソース要求19を取り出して(ス
テップS10)、現在の「調停ルール」に従ってリソー
ス14の割り当て調停を行ないながら、要求されたリソ
ース14のスレッド13への割り当てを行ない、その結
果(割り当てられたか否か;“True” or “False”)
を回答21として発行し、リソース回答キュー22に追
加してゆく(ステップS11;リソース割り当てステッ
プ)。
After that, when the processing (execution) of all the threads 13 stored in the execution queue 18 is completed, the thread manager 11 transfers the execution right to the resource manager 12 (step S9). The resource manager 12 that has received the execution right sends the resource request queue 20
, The resource requests 19 are sequentially taken out from the beginning (step S10), and while arbitrating the allocation of the resources 14 according to the current "arbitration rule", the requested resources 14 are allocated to the threads 13, and as a result ( Assigned or not; “True” or “False”)
Is issued as an answer 21 and added to the resource answer queue 22 (step S11; resource allocation step).

【0048】そして、リソース要求キュー20に格納さ
れている全ての要求19に対するリソース割り当て処理
が終了してから、リソースマネージャ12は、実行権利
をスレッドマネージャ11に譲る(ステップS12)。
実行権利を譲り受けたスレッドマネージャ11は、リソ
ース回答キュー22から回答21を、順次、取り出して
(ステップS13)、その回答21の内容が“True”
(割り当てOK)であれば、スレッドIDに対応するス
レッド13(この時点で、実行待ちキュー18の先頭に
位置している)を実行させて(スレッド制御ステッ
プ)、次の「メソッド」の実行に必要なリソース要求1
9を発行し、これをリソース要求キュー20に追加して
から、実行したスレッド13を再び実行待ちキュー18
の最後に追加する。
After the resource allocation process for all the requests 19 stored in the resource request queue 20 is completed, the resource manager 12 transfers the execution right to the thread manager 11 (step S12).
The thread manager 11 that has received the execution right sequentially extracts the answers 21 from the resource answer queue 22 (step S13), and the content of the answer 21 is “True”.
If (allocation OK), the thread 13 corresponding to the thread ID (at this time, located at the head of the execution queue 18) is executed (thread control step), and the next “method” is executed. Required resource request 1
9 is added to the resource request queue 20, and the executed thread 13 is re-executed to the execution queue 18
To the end.

【0049】なお、リソース回答キュー22から取り出
した回答21が“False”(割り当てNG)であった場
合、スレッドマネージャ11は、現在の(前回発行し
た)リソース要求19を再びリソース要求キュー20に
追加してから、スレッド13を、「待ち状態」として再
度、実行待ちキュー18の最後に追加する(スレッド制
御ステップ)。また、全ての処理を終えた(リソース1
4の割り当てが完了した)スレッド13は消滅させて、
実行待ちキュー18からそのスレッド13を削除する。
If the answer 21 retrieved from the resource answer queue 22 is “False” (assigned NG), the thread manager 11 adds the current (previously issued) resource request 19 to the resource request queue 20 again. After that, the thread 13 is added to the end of the execution waiting queue 18 again as a “waiting state” (thread control step). In addition, all processing is completed (resource 1
Thread 13 has been deleted)
The thread 13 is deleted from the queue 18.

【0050】以上のようにして、スレッドマネージャ1
1とリソースマネージャ12とが連携して、全てのスレ
ッド13の実行(全ての「メソッド」の実行)が完了す
るまでリソース要求,リソース割り当て及び回答21に
応じたスレッド13の実行状態の制御を繰り返し実行す
ることによって、論理装置の動作シミュレーションを実
施する。
As described above, the thread manager 1
1 and the resource manager 12 cooperate to repeatedly control the execution state of the thread 13 according to the resource request, the resource allocation, and the answer 21 until the execution of all the threads 13 (the execution of all the “methods”) is completed. By executing, the operation simulation of the logic device is performed.

【0051】つまり、本実施形態のスレッドマネージャ
11及びリソースマネージャ12は、それぞれ、図4に
模式的に示すように、以下の各機能部を有しており、ス
レッド13の実行が完了するまで、これらのスレッドマ
ネージャ11とリソースマネージャ12とが連携して上
記のリソース要求19及びスレッド13の実行状態の制
御を繰り返し実行して、その実行結果を例えばディスプ
レイ3に出力することによって、論理装置の動作完了ま
での動作をシミュレーションするようになっているので
ある。
That is, the thread manager 11 and the resource manager 12 of this embodiment each have the following functional units, as schematically shown in FIG. The thread manager 11 and the resource manager 12 cooperate with each other to repeatedly execute the above-described control of the resource request 19 and the execution state of the thread 13, and output the execution result to, for example, the display 3. It simulates the operation up to completion.

【0052】スレッドマネージャ11・テストデータ1
6の入力により、論理装置の設計仕様に応じてその論理
装置の動作完了までに必要となる機能(処理)を表した
スレッドを生成するスレッド生成手段110としての機
能 ・スレッド13の実行に必要なリソース14をリソース
マネージャ12に要求するリソース要求手段111とし
ての機能 ・このリソース要求手段111による要求19に対する
リソースマネージャ12による割り当て結果(回答2
1)に応じてスレッド13の実行状態を制御するスレッ
ド制御手段112としての機能 リソースマネージャ12 ・リソース要求19に応じたリソース14を予め規定さ
れた「調停ルール」に従ってスレッド13に割り当てる
リソース割り当て手段121としての機能
Thread manager 11 and test data 1
The function as the thread generation means 110 for generating a thread representing a function (processing) required until the operation of the logical device is completed in accordance with the design specification of the logical device by input of 6. Function as resource requesting means 111 for requesting resource 14 from resource manager 12-Assignment result by resource manager 12 to request 19 by resource requesting means 111 (response 2
Function as thread control means 112 for controlling the execution state of thread 13 according to 1) Resource manager 12 Resource allocation means 121 for allocating resource 14 according to resource request 19 to thread 13 according to a predetermined "arbitration rule" Function as

【0053】換言すれば、本実施形態では、論理装置に
実装すべき「処理(機能)」が必要とするハードウェア
資源に関する記述はスレッド13(「メソッド」)には
行なわず、そのスレッド13の「メソッド」が実行され
るときに、その都度、必要なリソース14がリソースマ
ネージャ12によって動的に割り当てられるようになっ
ているのである。つまり、従来のように実現すべき「機
能」にアーキテクチャは反映されていないのである。
In other words, in this embodiment, the description of the hardware resources required by the “processing (function)” to be implemented in the logical device is not made to the thread 13 (“method”), Each time a “method” is executed, the required resources 14 are dynamically allocated by the resource manager 12. In other words, the architecture is not reflected in the "functions" to be realized as in the past.

【0054】従って、論理装置の設計初期段階における
動作シミュレーションが実現できて設計初期段階におい
て、仕様によって要求される「機能」を正確に実現でき
ているかといった機能(アルゴリズム)の検証が行なえ
るとともに、アーキテクチャに変更が必要になった場合
でも、「機能」の記述変更は殆ど行なわずに、リソース
14やリソース14の「調停ルール」,スレッド13の
スケジューリング,リソース14に対する要求などを、
その変更に応じて変更するだけで、簡単に設計の再検証
を行なうことが可能になる。
Therefore, it is possible to perform an operation simulation in the initial stage of the design of the logic device, and to verify the function (algorithm) in the initial stage of the design, such as whether or not the “function” required by the specification can be accurately realized. Even when the architecture needs to be changed, the description of the "function" is hardly changed, and the resource 14, the "arbitration rule" of the resource 14, the scheduling of the thread 13, the request for the resource 14, and the like are changed.
The design can be easily re-verified simply by making a change according to the change.

【0055】なお、このようにリソース14やリソース
の「調停ルール」,スレッドのスケジューリング,リソ
ースに対する要求などを変更するだけで設計の再検証を
行なえるということは、「機能」に適したアーキテクチ
ャの探索や、「機能」をアーキテクチャへマッピングす
る際のアーキテクチャの性能評価,設計初期段階におけ
るタイミングの検証なども行なえることを意味する。
The fact that the design can be re-verified only by changing the resource 14 or the "arbitration rule" of the resource, the scheduling of the thread, the request for the resource, etc., as described above, means that the architecture suitable for the "function" is required. This means that search, performance evaluation of the architecture when mapping "functions" to the architecture, and timing verification at the initial design stage can be performed.

【0056】(A1)第1実施形態の具体例の説明 さて次に、以下では、上述したシミュレーション方法に
ついて、具体例を挙げて、より詳細に説明する。即ち、
ここでは、QoS(Quality of Service)システムの設
計とその動作シミュレーションを行なう場合について説
明する。なお、ここでいう「QoSシステム」とは、I
P(Internet Protocol)ルータなどのパケット転送装
置において、例えば図7に模式的に示すように、入力
(受信)パケット41を或るルールに従ってクラス分け
して複数のパケットキュー45に格納し、最終的に、こ
れらの各キュー45から規定のサービスレートを満足す
るよう〔規定のサービスレートに応じた重み付け(W0
〜W3など)に応じて〕パケット41を出力するという
ものである。「QoS」の詳細については例えば、文献
「インターネットQoS」(Paul Ferguson,Geoff Hus
ton 共著,戸田 巖監訳,(株)オーム社,2000.)に記載
されている。
(A1) Description of Specific Example of First Embodiment Next, the above-described simulation method will be described in more detail with reference to specific examples. That is,
Here, the case of designing a QoS (Quality of Service) system and simulating its operation will be described. Note that the “QoS system” here means I
In a packet transfer device such as a P (Internet Protocol) router, for example, as schematically shown in FIG. 7, an input (received) packet 41 is classified into classes according to a certain rule and stored in a plurality of packet queues 45. In order to satisfy the specified service rate from each of the queues 45, the weight (W0 according to the specified service rate (W0
To W3) is output. For details of "QoS", see, for example, the document "Internet QoS" (Paul Ferguson, Geoff Hus
ton, co-authored by Toda Iwao, Ohmsha, 2000.)

【0057】仕様からの機能の抽出 まず、最初のステップとして、図8に示すように、仕様
40から実現すべきQoSシステムの「機能」を抽出す
る必要がある(ステップS20)。即ち、この場合は、
以下の(a)〜(c)に示す機能が最低限必要になる。 (a)パケット41のクラス分け機能42(図7参
照):Classify( ) この機能42は、パケットヘッダの「IP Precedenceフ
ィールド」の値によってクラス分けする機能で、本実施
形態では、例えば次表1に示すルールに従ってクラス分
けを行なうものと仮定する。
Extraction of Function from Specification First, as shown in FIG. 8, it is necessary to extract the “function” of the QoS system to be realized from the specification 40 as shown in FIG. 8 (step S20). That is, in this case,
The following functions (a) to (c) are required at a minimum. (A) Classification function of packet 41 (see FIG. 7): Classify () This function 42 is a function of classifying according to the value of the “IP Precedence field” of the packet header. It is assumed that classification is performed according to the rules shown in.

【0058】[0058]

【表1】 [Table 1]

【0059】(b)パケットをキュー45に格納する
(キューイング)機能43:Queuing() この機能43は、上記のクラス分け機能42によってク
ラス分けされたパケット41を対応するキュー45に格
納する機能である。ここで、各キュー45には格納でき
る最大パケット数(以下、最大サイズという)が予め決
められており、最大サイズを超える分のパケット41に
ついては廃棄されるものとする。
(B) Storing the packet in the queue 45 (queuing) function 43: Queuing () This function 43 stores the packet 41 classified by the classifying function 42 in the corresponding queue 45. It is. Here, the maximum number of packets that can be stored in each queue 45 (hereinafter referred to as the maximum size) is predetermined, and packets 41 exceeding the maximum size are discarded.

【0060】(c)キュー45からパケットを取り出す
(デキュー)機能44:Dequeuing() このデキュー機能44は、各キュー45からパケット4
1を取り出す(出力する)機能であるが、各キュー45
には予め「サービスレート」が定められており、この
「サービスレート」によってキュー45からパケット4
1を出力するか否かを決定する。
(C) Dequeuing () function 44 for taking out a packet from the queue 45 The dequeuing function 44
This is a function to take out (output) 1
Has a "service rate" set in advance, and the "service rate" indicates that the packet 4
Decide whether to output 1 or not.

【0061】「機能」のスレッド化 次に、上記の各機能42〜44を「メソッド」としてス
レッド化する(図8のステップS21)。即ち、前記の
処理A→処理B→処理Cという一連の処理(機能)を、
図5により前述したように次のような1つのスレッド1
3として表す。 Classify( ) → Queuing( ) → Dequeuing( ) ここで、このスレッド13の状態は次表2に示すように
3種類とする。
Next, the functions 42 to 44 are threaded as "methods" (step S21 in FIG. 8). That is, a series of processes (functions) of the above-described process A → process B → process C,
As described above with reference to FIG.
Expressed as 3. Classify () → Queuing () → Dequeuing () Here, there are three types of states of the thread 13 as shown in Table 2 below.

【0062】[0062]

【表2】 [Table 2]

【0063】なお、上記の各状態はリソース14の確保
状況(割り当て結果),キューイング機能42〔Queuin
g( )〕,デキュー機能43〔Dequeuing( )〕の結果に依
存する。例えば、Queuing( )を実行しようとしたとき
に、キュー45が既にいっぱいになっていて、パケット
41を廃棄しなければならない場合には、スレッド13
は「実行状態」から「終了状態」に変わる。また、リソ
ース14が確保できない場合は、そのスレッド13は図
3により上述したように実行待ちキュー18の最後に追
加されて「待ち状態」となる。
Each of the above-mentioned states includes the securing status of the resource 14 (allocation result), the queuing function 42 [Queuin
g ()] and the result of the dequeue function 43 [Dequeuing ()]. For example, when trying to execute Queuing (), if the queue 45 is already full and the packet 41 has to be discarded, the thread 13
Changes from the “executed state” to the “finished state”. If the resource 14 cannot be secured, the thread 13 is added to the end of the execution waiting queue 18 as described above with reference to FIG.

【0064】仕様40からのアーキテクチャの設計 さて、上記の一方で、仕様40を基にQoSシステムの
アーキテクチャを設計する必要がある(ステップS2
2)。即ち、例えば、上記のClassify( )とQueuing( )
とを或るリソース14(仮に、R1とする)の上に実現
し、Dequeuing( )を別のリソース14(仮に、R2とす
る)の上に実現する。
On the other hand, on the other hand, it is necessary to design the architecture of the QoS system based on the specification 40 (step S2).
2). That is, for example, the above Classify () and Queuing ()
Is realized on a certain resource 14 (tentatively R1), and Dequeuing () is realized on another resource 14 (tentatively R2).

【0065】ここで、上記のClassify( )がリソースR
1上に実現されているとき〔つまり、Classify( )がリ
ソースR1を確保して実行中〕の実行遅延時間をT1c、
同様に、Queuing( )がリソースR1上で実現されている
ときの実行遅延時間をT1q、Dequeuing( )がリソースR
2上で実現されているときの実行遅延時間をT2dとす
る。
Here, the above Classify () is the resource R
1 (that is, Classify () is allocating the resource R1 and executing) when the execution delay time is T1c,
Similarly, when Queuing () is realized on the resource R1, the execution delay time is T1q, and Dequeuing () is the resource R1.
Let T2d be the execution delay time when this is realized on the second.

【0066】また、リソースR1の競合が発生した場合
は、Classify( )からの要求を優先し、リソースR2の
競合が発生した場合は、要求の到着順位でリソースを割
り当てるものとする。さらに、上記Dequeuing( )の性能
をアップするため、リソースR2の数を例えば2つとす
る。
When contention for the resource R1 occurs, priority is given to the request from Classify (), and when contention for the resource R2 occurs, resources are allocated in the order of arrival of the requests. Further, in order to improve the performance of the dequeuing (), the number of resources R2 is set to, for example, two.

【0067】アーキテクチャからのリソースの抽出 以上により、リソース14(R1,R2)の個数及び調
停ルールが次表3に示すように定義される(図8のステ
ップS23)。
Extraction of Resources from Architecture As described above, the number of resources 14 (R1, R2) and arbitration rules are defined as shown in Table 3 (step S23 in FIG. 8).

【0068】[0068]

【表3】 [Table 3]

【0069】スレッド13へのリソース要求の取り込
み 次に、上記のClassify( ),Queuing( )およびDequeuing
( )を実行するために、上記のリソースR1とR2を確
保しなければならない(スレッド13にリソース要求を
組み込む;図8のステップS24)。即ち、以下の手順
(1)〜(5)を実現(記述)する必要がある。
Fetching of Resource Request into Thread 13 Next, the above Classify (), Queuing (), and Dequeuing
In order to execute (), the resources R1 and R2 described above must be secured (the resource request is incorporated in the thread 13; step S24 in FIG. 8). That is, it is necessary to realize (describe) the following procedures (1) to (5).

【0070】(1)パケット41が到着したら、スレッ
ド13が動的に生成され、スレッド13が実行状態にな
る。 (2)Classify( )を実行するために、リソースR1を
確保しようとする(リソースR1についての要求19を
発行する)。確保できたら、次へ進む〔Classify( )を
実行する〕。確保できなかったら、そのスレッド13は
「待ち状態」になる。次のステップで(次に、スレッド
13が「実行状態」となったときに)、再度、リソース
R1の確保を行なう。
(1) When the packet 41 arrives, the thread 13 is dynamically generated, and the thread 13 enters the execution state. (2) In order to execute Classify (), an attempt is made to secure resource R1 (issue request 19 for resource R1). If you can secure it, go to the next [Execute Classify ()]. If the thread 13 cannot be secured, the thread 13 enters a “waiting state”. In the next step (when the thread 13 enters the “execution state”), the resource R1 is secured again.

【0071】(3)Classify( )を実行した後、Queuing
( )を実行するために、リソースR1を確保しようとす
る。確保できたら、次へ進む〔Queuing( )を実行す
る〕。確保できなかったら、スレッド13は「待ち状
態」となり、次のステップで(次にスレッド13が「実
行状態」となったときに)、再度、リソースR1の確保
を行なう。
(3) After executing Classify (), Queuing
In order to execute (), an attempt is made to secure the resource R1. If you can secure it, go to the next [Execute Queuing ()]. If the thread R 13 cannot be secured, the thread 13 enters the “waiting state”, and in the next step (when the thread 13 subsequently enters the “executing state”), the resource R 1 is secured again.

【0072】(4)Queuing( )を実行した後、Dequeuin
g( )を実行するために、リソースR2を確保しようとす
る。確保できたら、次へ進む〔Dequeuing( )を実行す
る〕。確保できなかったら、スレッド13は「待ち状
態」となり、次のステップで(次にスレッド13が「実
行状態」となったときに)、再度、リソースR2の確保
を行なう。 (5)全ての処理が終了したので、スレッド13を終了
させる。
(4) After executing Queuing (), the Dequeuin
Attempt to reserve resource R2 to execute g (). When it is secured, proceed to the next [Execute Dequeuing ()]. If the thread R13 cannot be secured, the thread 13 enters the "waiting state", and in the next step (when the thread 13 subsequently enters the "executing state"), the resource R2 is secured again. (5) Since all the processes have been completed, the thread 13 is terminated.

【0073】リソース調停ルールの記述 次に、複数のスレッド13が同じリソース14(R1又
はR2)に対して要求した場合、リソース14の競合が
起きるため、「調停ルール」を定義する必要がある(図
8のステップS25)。
Description of Resource Arbitration Rule Next, when a plurality of threads 13 request the same resource 14 (R1 or R2), contention of the resource 14 occurs, so it is necessary to define an "arbitration rule" ( Step S25 in FIG. 8).

【0074】まず、リソースR1の「調停ルール」(図
6に示した破線枠313内における「R1の調停ルー
ル」に相当)は以下の手順が実現されるように記述す
る。 (1)現在、リソースR1が空いているかどうかを判別
する。空いていなければ、全ての要求19に対して、割
り当てられない旨の回答21を発行する。空いていれ
ば、次へ進む。
First, the "arbitration rule" of the resource R1 (corresponding to the "arbitration rule of R1" in the broken line frame 313 shown in FIG. 6) is described so that the following procedure is realized. (1) It is determined whether the resource R1 is currently free. If it is not empty, a response 21 indicating that the request is not allocated is issued to all requests 19. If not, proceed to the next step.

【0075】(2)単位時間内の要求19の中にClassi
fy( )を実行するためのリソース要求があれば、そのス
レッド13(複数ある場合は最先に要求19を出したス
レッド13)にリソースR1を割り当てる。Classify
( )を実行するためのリソース要求19がなければ、最
先に要求19を出したスレッド13にリソースR1を割
り当てる。それ以外の要求19に対しては割り当てられ
ない旨の回答21を発行する。
(2) Classi is included in the request 19 within the unit time.
If there is a resource request for executing fy (), the resource R1 is allocated to the thread 13 (if there are a plurality of threads, the thread 13 that issued the request 19 first). Classify
If there is no resource request 19 for executing (), the resource R1 is allocated to the thread 13 that issued the request 19 first. In response to the other requests 19, a response 21 indicating that the request is not allocated is issued.

【0076】一方、リソースR2の「調停ルール」(図
6に示した破線枠314内における「R2の調停ルー
ル」に相当)は以下の手順が実現されるように記述す
る。 (1)現在、リソースR2が空いているかどうかを判別
する。空いていなければ、全ての要求19に対して、割
り当てられない旨の回答21を発行する。空いていれ
ば、次へ進む。
On the other hand, the "arbitration rule" of the resource R2 (corresponding to the "arbitration rule of R2" in the broken line frame 314 shown in FIG. 6) is described so that the following procedure is realized. (1) It is determined whether the resource R2 is currently free. If it is not empty, a response 21 indicating that the request is not allocated is issued to all requests 19. If not, proceed to the next step.

【0077】(2)単位時間内の要求19の中で最先に
要求を出したスレッド13にリソースR1を割り当て
る。それ以外の要求19に対しては割り当てられない旨
の回答21を発行する。
(2) Allocate the resource R1 to the thread 13 which issued the request first among the requests 19 within the unit time. In response to the other requests 19, a response 21 indicating that the request is not allocated is issued.

【0078】シミュレーション 以上のようにしてQoSシステムに必要な「機能」をプ
ログラミングし(シミュレーションプログラム10を構
築し)、計算機1(CPU4)上で実行させることで、
QoSシステムの動作シミュレーションを実施する(図
8のステップS26)。即ち、計算機1(CPU4)
が、図3及び図4により前述したように、スレッドマネ
ージャ11及びリソースマネージャ12として動作する
ことにより、QoSシステムの動作シミュレーションが
実施される。
Simulation As described above, the “functions” required for the QoS system are programmed (a simulation program 10 is constructed) and executed on the computer 1 (CPU 4).
An operation simulation of the QoS system is performed (Step S26 in FIG. 8). That is, Calculator 1 (CPU 4)
However, as described above with reference to FIGS. 3 and 4, the operation simulation of the QoS system is performed by operating as the thread manager 11 and the resource manager 12.

【0079】シミュレーション結果と予測値の比較 上記のシミュレーションにより或るシミュレーション結
果が得られる。即ち、例えば、パケット41が或るレー
トで出力されることが分かる。そして、このシミュレー
ション結果と、仕様40から予測される動作結果(予測
値)40′とを比較する(図8のステップS27;比較
ステップ)ことにより、設計したアルゴリズムが正しい
(ステップS27のYESルートからステップS28)
か否(設計ミス)か(ステップS27のNOルートから
ステップS29)が判断され、その結果が、例えば外部
装置としてのディスプレイ3などに出力(表示)される
(出力ステップ)。
Comparison between Simulation Result and Predicted Value A certain simulation result is obtained by the above simulation. That is, for example, it is understood that the packet 41 is output at a certain rate. Then, by comparing the simulation result with the operation result (predicted value) 40 'predicted from the specification 40 (step S27 in FIG. 8; comparison step), the designed algorithm is correct (from the YES route in step S27). (Step S28)
It is determined whether or not (design error) (step S29 from the NO route of step S27), and the result is output (displayed) to, for example, the display 3 as an external device (output step).

【0080】つまり、図8に破線枠51内に示す部分
は、上述した論理装置のシミュレーション方法によるシ
ミュレーション結果と、その論理装置の動作予測値とを
比較する比較ステップ(S27)と、この比較ステップ
(S27)での比較結果をディスプレイ3などの外部装
置へ出力する出力ステップとを、計算機1(CPU4)
に実行させて、論理装置の機能検証を行なうための(動
作シミュレーション)プログラムとして機能する。
That is, the part shown in the broken line frame 51 in FIG. 8 is a comparison step (S27) for comparing the simulation result of the above-described logic device simulation method with the predicted operation value of the logic device, and this comparison step. An output step of outputting the comparison result in (S27) to an external device such as the display 3 is referred to as a computer 1 (CPU 4).
, And functions as a (operation simulation) program for verifying the function of the logic device.

【0081】なお、本プログラム51も、例えばFD9
やCD−ROM,MOなどの記録媒体に記録することが
でき、その記録媒体に記録されたプログラム51を計算
機1にインストールする(ハードディスク6に記憶す
る)ことで、計算機1(CPU4)を上述のごとく動作
させることが可能になる。
The program 51 is, for example, FD9
And a recording medium such as a CD-ROM, an MO, and the like, and the program 51 recorded on the recording medium is installed in the computer 1 (stored in the hard disk 6), thereby causing the computer 1 (CPU 4) to operate as described above. It can be operated as if.

【0082】そして、設計ミス(例えば、廃棄されてし
まうパケット41の数が規定よりも多いなど)であれ
ば、キュー45のサイズを変える〔キュー45(リソー
ス14)に関する記述を変更する〕などして、最適なア
ーキテクチャが得られるまで、上記のシミュレーション
を行なって、QoSシステムに最適なアーキテクチャを
探索する。
If there is a design error (for example, the number of packets 41 to be discarded is larger than the specified value), the size of the queue 45 is changed (the description of the queue 45 (resource 14) is changed). Until an optimal architecture is obtained, the above simulation is performed to search for an optimal architecture for the QoS system.

【0083】なお、上記の予測値は、上記の例の場合、
前述したClassify( )の実行遅延時間T1c,Queuing( )の
実行遅延時間T1qおよびDequeuing( )の実行遅延時間T2d
を基に算出できる。また、上記のシミュレーション結果
や予測値との比較結果は、ディスプレイ3だけでなく、
プリンタなどの周辺機器に出力することも可能である。
Note that the above predicted value is, in the case of the above example,
Classify () execution delay time T1c, Queuing () execution delay time T1q and Dequeuing () execution delay time T2d
Can be calculated based on In addition, the simulation result and the comparison result with the predicted value are not only displayed on the display 3,
It is also possible to output to a peripheral device such as a printer.

【0084】以上のようにして、論理装置としてのQo
Sシステムの機能検証(システムとしての要求を満足し
ているか否かの検証)を、システムの設計初期段階で実
施することができる。また、アーキテクチャに変更が必
要になった場合でも、使用するリソース14(R1,R
2)やリソース14の「調停ルール」,スレッド13の
スケジューリング,リソース14に対する要求などを、
その変更に応じて変更するだけで、簡単に設計(アルゴ
リズム)の再検証を行なうことができる。従って、手戻
り、記述スタイルの変更が少ない柔軟性の高い設計手法
(つまり、再利用性に優れた記述スタイル)を実現する
ことが可能となり、システムの設計コストを大幅に削減
することができる。
As described above, Qo as a logical device
The function verification of the S system (verification as to whether or not the requirements as the system are satisfied) can be performed at an early stage of system design. Further, even when the architecture needs to be changed, the resources 14 (R1, R1
2) and "arbitration rules" for resources 14, scheduling of threads 13, requests for resources 14, etc.
The design (algorithm) can be easily re-verified simply by making a change according to the change. Therefore, it is possible to realize a highly flexible design method (that is, a description style excellent in reusability) with little rework and a change in description style, and it is possible to greatly reduce the system design cost.

【0085】(B)第1変形例の説明 ところで、上述したリソースマネージャ12には、例え
ば図9に示すように、デッドロック検出機構122を追
加してもよい。このデッドロック検出機構122は、複
数のスレッド13がリソース14を取り合うことによっ
て「デッドロック」に陥る可能性があるか否かを検出す
るためのものである。
(B) Description of First Modification By the way, a deadlock detecting mechanism 122 may be added to the above-described resource manager 12, as shown in FIG. 9, for example. The deadlock detecting mechanism 122 is for detecting whether or not a plurality of threads 13 may fall into a “deadlock” by competing for the resources 14.

【0086】なお、ここでいう「デッドロック」とは、
2つ以上のスレッド13が互いに相手が占有しているリ
ソース13を要求して解決しない特定の状態になってい
ることを意味する。「デッドロック」については、例え
ば、文献「現代オペレーティングシステムの基礎」(萩
原宏,津田孝夫,大久保英嗣共著,(株)オーム社,p
p.63,1995.)で説明されている。
[0086] The "deadlock" here is
This means that two or more threads 13 request a resource 13 occupied by each other and are in a specific state that cannot be resolved. "Deadlock" is described, for example, in the literature "Basics of modern operating systems" (Hagiwara Hiroshi, Tsuda Takao, Okubo Eiji co-author, Ohmsha, p.
p.63, 1995. ).

【0087】例えば、それぞれ図10に示すように記述
されたスレッド13が2つ(仮に、スレッド“1”,
“2”とする)存在していた場合を考える。ただし、こ
こでのリソース14(“A”)の数は3個、リソース1
4(“B”)の数は2個と仮定する。また、この図10
において、「リソースA.要求( )」などの関数(括
弧)内に表示された数値(この場合は“2”)はスレッ
ドIDを表し、以降の説明においても同様とする。
For example, two threads 13 described as shown in FIG. 10 (for example, thread “1”,
Let us consider the case where it exists. Here, the number of resources 14 (“A”) is three,
4 (“B”) is assumed to be two. FIG.
, A numerical value (in this case, “2”) displayed in a function (parentheses) such as “resource A. request ()” represents a thread ID, and the same applies to the following description.

【0088】そして、このような場合、各スレッド
“1”,“2”のそれぞれのリソース割付けグラフ(re
source allocation graph)は、図11(A)に示すよ
うになる。この図11(A)に示す状態を簡約(reduc
e)して表すと、図11(B)に示すような状態となる
が、この状態で既にそれ以上の簡約が不可能(irreduci
ble)な状態であることが分かる。
In such a case, the resource allocation graphs (re
The source allocation graph is as shown in FIG. The state shown in FIG.
e), the state is as shown in FIG. 11B, but in this state, further reduction is already impossible (irreduci
ble).

【0089】これは、スレッド“1”とスレッド“2”
との間で「デッドロック」が発生する可能性があること
を意味する。デッドロック検出機構122は、このよう
にリソース割付けグラフを基に「デッドロック」の発生
可能性を判断する。こうすることで、設計の初期段階に
おいて「デッドロック」の発生可能性を検出することが
可能となり、論理装置の機能検証を行なうことが可能と
なる。
This is because thread “1” and thread “2”
This means that a "deadlock" may occur between them. The deadlock detection mechanism 122 thus determines the possibility of “deadlock” based on the resource allocation graph. This makes it possible to detect the possibility of “deadlock” in the initial stage of the design, and to verify the function of the logic device.

【0090】(C)第2変形例の説明 さて、上記のリソースマネージャ12には、例えば図1
2に示すように、リード/ライト検出機構123を追加
してもよい。ここで、このリード/ライト検出機構12
3は、次のような事象(1)〜(3)を監視(検出)す
ることにより、リード/ライトエラーの発生可能性を検
出するためのものである。
(C) Description of the Second Modification The resource manager 12 described above includes, for example, FIG.
As shown in FIG. 2, a read / write detection mechanism 123 may be added. Here, the read / write detection mechanism 12
Reference numeral 3 is for monitoring (detecting) the following events (1) to (3) to detect the possibility of a read / write error.

【0091】(1)同一リソース14に対するリード要
求とライト要求の同一単位時間内の発生 (2)既にライト要求によって占有されているリソース
14に対するリード要求の発生 (3)既にリード要求によって占有されているリソース
14に対するライト要求の発生
(1) Occurrence of a read request and a write request for the same resource 14 within the same unit time (2) Occurrence of a read request for the resource 14 already occupied by a write request (3) Occurrence of a read request Of write request to existing resource 14

【0092】つまり、このリード/ライト検出機構12
3の検出結果をみれば、複数のスレッド13がリソース
14に対してシーケンシャルに書き込み動作もしくは読
み出し動作を行なう時に、その順序が正しいか否かを判
定(つまり、複数スレッド13間のリソース14に対す
るリード/ライト動作の競合状態を判定)して、設計し
た論理装置が正しく動作するか否かを検証することがで
きるのである。
That is, the read / write detection mechanism 12
3, when the plurality of threads 13 sequentially perform the writing operation or the reading operation on the resource 14, it is determined whether or not the order is correct (that is, the reading of the resource 14 between the plurality of threads 13 is performed). / Competition state of the write operation) to verify whether the designed logical device operates correctly.

【0093】これを実現するには、要求19の記述を例
えば図13に示すように拡張する。即ち、次表4に示す
ような意味をもつ「リード/ライトフラグ」を定義す
る。
To realize this, the description of the request 19 is extended, for example, as shown in FIG. That is, a "read / write flag" having the meaning shown in the following Table 4 is defined.

【0094】[0094]

【表4】 [Table 4]

【0095】加えて、リソース14の記述を例えば図1
4に示すように拡張する。即ち、リソース14の解放が
行なわれた場合には、必ず「カレントフラグ(CurrentF
lag)」を“0”にするようにしておき(破線枠316
参照)、この「カレントフラグ」が“0”でないとき
に、要求19の「リード/ライトフラグ」とリソース1
4側の「カレントフラグ」とが一致しなければ、「リー
ド/ライトエラーの発生可能性がある」といったエラー
情報がディスプレイ3などに出力される(破線枠317
参照)ようにするのである。
In addition, the description of the resource 14 is described in FIG.
Expand as shown in FIG. That is, when the resource 14 is released, the “current flag (CurrentF
lag) ”to“ 0 ”(broken line frame 316).
When the “current flag” is not “0”, the “read / write flag” of the request 19 and the resource 1
If the "current flag" on the fourth side does not match, error information such as "there is a possibility of a read / write error" is output to the display 3 or the like (dashed box 317).
See).

【0096】(D)第3変形例の説明 さらに、上記のリソースマネージャ12には、例えば図
15に示すように、ボトルネック検出機構124を追加
してもよい。ここで、このボトルネック検出機構124
は、スレッド13の実行結果やリソース14に対するア
クセス状況を基に「ボトルネック」の検出を行なうため
のもので、例えば、リソース14の個数と種類を制限し
た環境下でシミュレーションを行なって、各リソース1
4に対するアクセス回数やリソース14を割り当てられ
なかった時の待ち時間などを確認することによって、論
理装置の「ボトルネック」となっている部分を検出する
ことが可能となる。
(D) Description of Third Modification Further, as shown in FIG. 15, for example, a bottleneck detecting mechanism 124 may be added to the resource manager 12 described above. Here, the bottleneck detection mechanism 124
Is to detect a “bottleneck” based on the execution result of the thread 13 and the access status to the resource 14. For example, a simulation is performed in an environment in which the number and type of the resource 14 are limited, 1
By checking the number of accesses to the logical device 4, the waiting time when the resource 14 cannot be allocated, and the like, it is possible to detect a portion of the logical device that is a "bottleneck".

【0097】具体的には、例えば図16に示すように、
リソース14の記述に、要求の数(アクセス数)を計数
する「メソッド」を加えるとともに、その計数結果を
「要求合計メンバ関数〔要求合計( )〕」によって呼び
出せるようにしておけば、リソース14のアクセス回数
を監視する仕組みがリソースマネージャ12において実
現される。
Specifically, for example, as shown in FIG.
If a "method" for counting the number of requests (the number of accesses) is added to the description of the resource 14 and the count result can be called by a "request total member function [request total ()]", the resource 14 A mechanism for monitoring the number of accesses is realized in the resource manager 12.

【0098】つまり、ボトルネック検出機構124によ
って、各リソース14の「要求合計メンバ関数」を呼び
出せば、それまでの各リソース14に対するアクセス頻
度を調べることができ、例えば、アクセス頻度が最も多
いリソース14は論理装置の「ボトルネック」になって
いる可能性があると推測することができる。従って、論
理装置の設計初期段階で論理装置の性能検証(ボトルネ
ックの有無の検証)を行なうことができる。
That is, if the “request total member function” of each resource 14 is called by the bottleneck detecting mechanism 124, the access frequency to each resource 14 can be checked. For example, the resource 14 with the highest access frequency can be checked. Can be inferred to be a "bottleneck" for logic devices. Therefore, performance verification (verification of the presence or absence of a bottleneck) of the logic device can be performed at an early stage of the design of the logic device.

【0099】(E)第4変形例の説明 また、上記のリソースマネージャ12には、例えば図1
7に示すように、ブロッキング検出機構125を追加し
てもよい。ここで、このブロッキング検出機構125
は、スレッド13からのリソース14の要求19が所定
の制限数を超えた場合の「ブロッキング」の発生状況を
調べる機能を提供するもので、リソース14に例えば図
18に示すような記述を加えることで実現される。
(E) Description of Fourth Modification The above resource manager 12 includes, for example, FIG.
As shown in FIG. 7, a blocking detection mechanism 125 may be added. Here, the blocking detection mechanism 125
Provides a function for checking the occurrence state of "blocking" when the number of requests 19 for the resource 14 from the thread 13 exceeds a predetermined limit. For example, the description shown in FIG. Is realized.

【0100】そして、リソース14の「個数」を制限し
た(予め定めておく)環境下でシミュレーションを行な
うことで、割り当てられるリソース数を超える要求19
があった場合〔if文の条件(「個数」<0)を満足する
場合〕には「ブロッキング」が発生したと考えられ、例
えば「リソースAの要求はブロッキングする必要があ
る。」といったエラー情報をディスプレイ3などに出力
する。
Then, by performing a simulation in an environment in which the “number” of resources 14 is limited (predetermined), requests 19 exceeding the number of resources to be allocated are obtained.
(If the condition of the if statement (“number” <0) is satisfied), it is considered that “blocking” has occurred, and for example, error information such as “the request for resource A needs to be blocked.” Is output to the display 3 or the like.

【0101】このようにして、本変形例では、ブロッキ
ング検出機構125により、リソース14の「個数」を
制限した環境下でのスレッド13からのリソース要求が
制限数を超えた場合のブロッキングの発生可能性を調べ
ることで、論理装置の性能を評価することができる。
As described above, in the present modification, the blocking detection mechanism 125 can cause the blocking when the resource request from the thread 13 exceeds the limited number under the environment where the “number” of the resources 14 is limited. By examining the performance, the performance of the logic device can be evaluated.

【0102】なお、上述した第1〜第4変形例における
デッドロック検出機構122,リード/ライト検出機構
123,ボトルネック検出機構124,ブロッキング検
出機構125は、論理装置の検証項目に応じて、全てあ
るいは一部の組み合わせでそなえられていてもよい。
Note that the deadlock detection mechanism 122, read / write detection mechanism 123, bottleneck detection mechanism 124, and blocking detection mechanism 125 in the above-described first to fourth modifications are all based on the verification items of the logical device. Alternatively, they may be provided in some combinations.

【0103】(F)第5変形例の説明 ところで、上記のスレッド13には、そのスレッド13
に記述されている一連の処理(「機能」;「メソッ
ド」)に必要な実行時間の見積もり値(つまり、リソー
スマネージャ12によって割り当てられたリソース14
を占有する時間についての予算)である「タイムバジェ
ット」を各「機能」に対してそれぞれ設定してもよい。
(F) Description of Fifth Modification By the way, the above thread 13
Of the execution time required for a series of processes (“function”; “method”) described in “.
"Time budget", which is a budget for the time occupying the "), may be set for each" function ".

【0104】即ち、図8により前述したようにアーキテ
クチャからリソース14を抽出して各リソース14に処
理をマッピングする際に(ステップS24にてスレッド
13にリソース要求を組み込んだ後)、各処理の見積も
り時間(タイムバジェット)をスレッド13に追加する
(図19のステップS25′)。
That is, as described above with reference to FIG. 8, when extracting the resources 14 from the architecture and mapping the processing to each resource 14 (after incorporating the resource request into the thread 13 in step S24), the estimation of each processing is performed. The time (time budget) is added to the thread 13 (step S25 'in FIG. 19).

【0105】例えば図20に示すように、スレッド13
に記述される「機能」を処理1,処理2とすると、それ
ぞれに対してdelay(処理1のタイムバジェット),delay
(処理2のタイムバジェット)を設定するのである。そし
て、仕様40から論理装置がn個の入力データを処理す
る際の実行時間の制限をTとし(図19のステップS2
6b)、テストベンチ15からn個のデータを生成させ
て、前述したごとくシミュレーションを実行する(ステ
ップ26a)。
For example, as shown in FIG.
If the “functions” described in “1” are processing 1 and processing 2, delay (time budget of processing 1) and delay
(Time budget of process 2) is set. Then, based on the specification 40, the execution time limit when the logic device processes n input data is set to T (step S2 in FIG. 19).
6b) Generate n data from the test bench 15 and execute the simulation as described above (step 26a).

【0106】その後、全てのスレッド13が消滅される
までの時間tを計測し、その計測時間tが制限時間T内
であれば正しい設計と判断できる(図19のステップS
27′のYESルートからステップS28′)。逆に、
計測時間tが制限時間Tよりも大きい場合には仕様40
の性能要件を満たしていないと判断できる(図19のス
テップS27′のNOルートからステップS29′)。
Thereafter, the time t until all the threads 13 disappear is measured, and if the measured time t is within the time limit T, it can be determined that the design is correct (step S in FIG. 19).
From the YES route of 27 ', step S28'). vice versa,
If the measurement time t is longer than the time limit T, the specification 40
(Step S29 ′ from the NO route of step S27 ′ in FIG. 19).

【0107】このようにして、各種「機能」の組み合わ
せで構成される論理装置が、仕様40により要求される
性能要件を満たしているか否かを、設計の初期段階にて
確認することができる。
In this way, it is possible to confirm at an early stage of design whether a logical device constituted by a combination of various "functions" satisfies the performance requirements required by the specification 40.

【0108】(G)第6変形例の説明 なお、上記のスレッド13には、例えば図21に示すよ
うに、上記のステップS24にてスレッド13にリソー
ス要求を組み込む前に、図22に示すようにして「ライ
フタイム」を設定してもよい(ステップS21′)。な
お、ここでいう「ライフタイム」とは、「機能」の実行
制限時間を表す。
(G) Description of the Sixth Modification As shown in FIG. 21, for example, as shown in FIG. 21, before incorporating the resource request into the thread 13 in the above-described step S24, as shown in FIG. "Lifetime" may be set (step S21 '). Here, the “lifetime” represents the execution time limit of the “function”.

【0109】そして、第5変形例にて上述したようにス
レッド13に「タイムバジェット」を設定(ステップS
25′)した上で、シミュレーションを実行し(ステッ
プS26″)、スレッド13が消滅する前にJudgeLifeT
ime( )関数(図22参照)を(例えばリソースマネージ
ャ12から)呼び出せば、上述した「タイムバジェッ
ト」による論理装置の性能検証に加えて、そのスレッド
13に設定した「ライフタイム」が切れたか否か、つま
り、「ライフタイム」内に処理が完了したか否かを判定
することができる(ステップS27″)。
Then, as described above in the fifth modification, “time budget” is set in the thread 13 (step S
25 '), and a simulation is executed (step S26 "), and JudgeLifeT is executed before the thread 13 disappears.
If the ime () function (see FIG. 22) is called (for example, from the resource manager 12), in addition to the performance verification of the logical device by the above “time budget”, whether the “lifetime” set for the thread 13 has expired That is, it can be determined whether or not the processing has been completed within the “lifetime” (step S27 ″).

【0110】この判定の結果、「ライフタイム」内にそ
のスレッド13の処理が完了していれば、論理装置が仕
様40により要求されるリアルタイム性に関する性能要
件を満足している(正しい設計である)と判断でき(ス
テップS27″のYESルートからステップS2
8″)、逆に、「ライフタイム」内に処理が完了してい
なければ、リアルタイム性に関する性能要件を満足して
いないと判断できる(ステップS29″)。
As a result of this determination, if the processing of the thread 13 is completed within the “lifetime”, the logical device satisfies the performance requirement relating to the real-time property required by the specification 40 (the design is correct). ) (From the YES route of step S27 ″ to step S2).
8 ″) On the contrary, if the processing is not completed within the “lifetime”, it can be determined that the performance requirement regarding the real-time property is not satisfied (step S29 ″).

【0111】このように、本変形例では、スレッド13
に「タイムバジェット」と「ライフタイム」とを設定す
ることで、各種「機能」の組み合わせで成る論理装置全
体としての処理時間に関する性能要件とリアルタイム性
に関する性能要件とを、論理装置の設計初期段階におい
て検証することが可能となる。なお、本変形例では、
「タイムバジェット」と「ライフタイム」の双方を設定
しているが、勿論、「ライフタイム」のみを設定して、
論理装置のリアルタイム性のみを検証するようにしても
よい。
As described above, in this modification, the thread 13
By setting "time budget" and "lifetime" in the initial stage of the design of the logical device, the performance requirements related to the processing time and the real-time performance of the entire logical device composed of a combination of various "functions" are set. Can be verified. In this modification,
Although both "time budget" and "lifetime" are set, of course, only "lifetime" is set,
Only the real-time property of the logical device may be verified.

【0112】また、これらの「タイムバジェット」,
「ライフタイム」は、上述した例ではスレッド13に記
述しているが、リソース14に記述することも可能であ
る。例えば、メモリやバッファなどの記憶素子でのデー
タ保持時間が規定されるケースであれば、その記憶素子
(リソース)に対して「タイムバジェット」や「ライフ
タイム」もしくはその両方を記述してもよい。
In addition, these “time budgets”,
The “lifetime” is described in the thread 13 in the above-described example, but may be described in the resource 14. For example, if the data retention time in a storage element such as a memory or a buffer is specified, “time budget” and / or “lifetime” may be described for the storage element (resource). .

【0113】(H)第7変形例の説明 上述した実施形態では、論理装置の動作完了までに必要
な一連の処理(機能)を1つのスレッド13に表した場
合について説明したが、上記「一連の処理」は、例えば
図23に模式的に示すように、複数の逐次的なスレッド
13(スレッド“1”〜スレッド“n”)に表されてい
てもよい。
(H) Description of Seventh Modification In the above-described embodiment, a case has been described in which a series of processes (functions) required until the operation of the logical device is completed is represented by one thread 13; The “process” may be represented by a plurality of sequential threads 13 (thread “1” to thread “n”), for example, as schematically shown in FIG.

【0114】この場合の動作は次のようになる。即ち、
外部入力(テストデータ16の入力)によりスレッドマ
ネージャ11が最初のスレッド“1”を生成する。する
と、スレッド“1”は処理“1”を実行して、処理
“1”に必要なリソース14をリソースマネージャ12
に要求する。
The operation in this case is as follows. That is,
The thread manager 11 generates the first thread "1" by an external input (input of the test data 16). Then, the thread “1” executes the process “1”, and allocates the resources 14 required for the process “1” to the resource manager 12.
Request to.

【0115】これにより、スレッド“1”にリソース1
4が割り当てられてスレッド“1”が処理“1”を完了
し、スレッドマネージャ11によって消滅させられる際
に、次のスレッド“2”を生成する。なお、リソース1
4が割り当てられなかった場合は、この場合も、そのス
レッド13はスレッドマネージャ11によって「待ち状
態」に制御される。
As a result, resource 1 is assigned to thread “1”.
When the thread “1” completes the process “1” after being allocated to “4” and is deleted by the thread manager 11, the next thread “2” is generated. Resource 1
When the thread 4 is not assigned, the thread 13 is controlled to the “waiting state” by the thread manager 11 in this case as well.

【0116】以降、スレッド“i”(ただし、i=1〜
n−1)が消滅する際にそのスレッド“i”が次のスレ
ッド“i+1”を生成する。このようにして、論理装置
の入力から動作完了までの一連の処理を一連の逐次的な
スレッド13に表現する。つまり、本変形例は、スレッ
ドマネージャ11が行なうスレッド13の生成を、スレ
ッド13からも生成できるようにしたものである。
Hereinafter, thread "i" (where i = 1 to 1)
When n-1) disappears, the thread "i" generates the next thread "i + 1". In this way, a series of processes from the input of the logical device to the completion of the operation are represented in a series of sequential threads 13. That is, in the present modified example, the generation of the thread 13 performed by the thread manager 11 can also be generated from the thread 13.

【0117】具体的に、これを実現するには、例えば図
24に示すように、スレッド13に対して「終了を待つ
( )」と言う「メソッド」を追加するとともに、処理
“1”,処理“2”,処理“3”,…に対応したスレッ
ド“1”,スレッド“2”,スレッド“3”,…を追加
する。
Specifically, this can be realized by, for example, as shown in FIG.
()) And threads “1”, “2”, “3”,... Corresponding to process “1”, process “2”, process “3”,. I do.

【0118】これにより、各処理“1”,“2”,
“3”,…に対して1つずつスレッド13が生成され、
それぞれのスレッド13の生成タイミングは前のスレッ
ド13が処理を終了した後になる。これにより、スレッ
ド13間の依存関係が前述した実施形態よりもさらに明
確になる。
As a result, each of the processes “1”, “2”,
One thread 13 is generated for each “3”,.
Each thread 13 is generated after the previous thread 13 finishes processing. Thereby, the dependency between the threads 13 becomes clearer than in the above-described embodiment.

【0119】そして、このように構成したスレッド13
を図3により前述したシステムに組み込んで設計の初期
段階における論理装置のシミュレーションを行なう。即
ち、この場合も、全てのスレッド13の処理が完了(全
てのスレッド13が消滅)するまで、スレッドマネージ
ャ11とリソースマネージャ12とが連携して、リソー
ス14の要求,リソース14の割り当て及びリソース1
4の割り当て結果に応じたスレッド13の実行状態の制
御を繰り返すことによって、論理装置の動作シミュレー
ションを実現する。
The thread 13 configured as described above
Is incorporated into the system described above with reference to FIG. 3 to simulate a logic device in an early stage of design. That is, also in this case, until the processing of all the threads 13 is completed (all the threads 13 disappear), the thread manager 11 and the resource manager 12 cooperate to request the resource 14, allocate the resource 14, and allocate the resource 1.
By repeating the control of the execution state of the thread 13 according to the allocation result of No. 4, an operation simulation of the logical device is realized.

【0120】このように、本変形例では、論理装置の入
力から動作完了までの一連の処理を一連の逐次的なスレ
ッド13に表現して、シミュレーションを行なうので、
論理装置に必要な処理の依存関係を明確にした上で、そ
の機能検証を設計初期段階において行なうことができ
る。
As described above, in this modified example, a series of processes from the input of the logical device to the completion of the operation is represented by a series of sequential threads 13 and simulation is performed.
After clarifying the dependency of processing required for a logic device, its function verification can be performed at an early stage of design.

【0121】(I)第8変形例の説明 なお、上記の論理装置の動作完了までの一連の処理は、
例えば図25に模式的に示すように、複数の逐次的また
は並行に実行されるスレッド13で表してもよい。即
ち、第7変形例にて上述したようにスレッド13が消滅
する際に、そのスレッド13が複数のスレッド13を同
時に生成して各スレッド13を並列に実行させ、これら
複数のスレッド13が消滅する際に、さらに次のスレッ
ド13を逐次的に生成するようにしてもよい。
(I) Description of Eighth Modification A series of processing up to the completion of the operation of the logical device is as follows.
For example, as schematically shown in FIG. 25, it may be represented by a plurality of threads 13 executed sequentially or in parallel. That is, when the thread 13 disappears as described above in the seventh modification, the thread 13 generates a plurality of threads 13 at the same time and causes each thread 13 to execute in parallel, and the plurality of threads 13 disappear. At this time, the next thread 13 may be sequentially generated.

【0122】この場合の動作は次のようになる。即ち、
外部入力(テストデータ16の入力)によりスレッドマ
ネージャ11が最初のスレッド“1”を生成する。スレ
ッド“1”は処理“1”を実行して、処理“1”に必要
なリソース14をリソースマネージャ12に要求する。
これにより、スレッド“1”にリソース14が割り当て
られてスレッド“1”が処理“1”を完了すると、スレ
ッドマネージャ11によって消滅させられる際に、次の
スレッド“2”〜“n”を同時に生成する。なお、リソ
ース14が割り当てられなかった場合は、この場合も、
そのスレッド13はスレッドマネージャ11によって
「待ち状態」に制御される。
The operation in this case is as follows. That is,
The thread manager 11 generates the first thread "1" by an external input (input of the test data 16). The thread “1” executes the process “1” and requests the resource 14 required for the process “1” from the resource manager 12.
Thereby, when the resource 14 is allocated to the thread “1” and the thread “1” completes the process “1”, when the thread “1” is deleted by the thread manager 11, the next threads “2” to “n” are simultaneously generated. I do. If the resource 14 is not allocated, also in this case,
The thread 13 is controlled by the thread manager 11 into a “waiting state”.

【0123】その後、各スレッド“2”〜“n”が並行
して処理を進めてそれぞれの処理が完了し、これらの各
“2”〜“n”がスレッドマネージャ11によって消滅
させられる際に、次のスレッド“n+1”を生成する。
以降は、上述した第7変形例と同様にして、順次、前の
スレッド13が消滅する際に、次のスレッド13が生成
されて処理が実行される。
Thereafter, when the threads "2" to "n" proceed in parallel to complete the respective processes, and when these "2" to "n" are deleted by the thread manager 11, The next thread “n + 1” is generated.
Thereafter, similarly to the above-described seventh modification, when the previous thread 13 sequentially disappears, the next thread 13 is generated and the processing is executed.

【0124】例えば、処理Aと処理Bの実行結果を処理
Cが使う場合、スレッド13の構成例は図26に示すよ
うになる。そして、このように構成したスレッド13
を、この場合も、図3により前述したシステムに適用し
て設計の初期段階における論理装置のシミュレーション
を行なう。
For example, when the execution result of the processing A and the processing B is used by the processing C, an example of the configuration of the thread 13 is as shown in FIG. And the thread 13 configured in this way
Is applied to the system described above with reference to FIG. 3 to simulate the logic device in the initial stage of design.

【0125】即ち、全てのスレッド13の処理が完了
(全てのスレッド13が消滅)するまで、スレッドマネ
ージャ11とリソースマネージャ12とが連携して、リ
ソース14の要求,リソース14の割り当て及びリソー
ス14の割り当て結果に応じたスレッド13の実行状態
の制御を繰り返すことによって、論理装置の動作シミュ
レーションを実現する。
That is, until the processing of all the threads 13 is completed (all the threads 13 disappear), the thread manager 11 and the resource manager 12 cooperate to request the resource 14, allocate the resource 14, and allocate the resource 14. By repeating the control of the execution state of the thread 13 according to the allocation result, the operation simulation of the logical device is realized.

【0126】このように、本変形例では、スレッド13
に並列性を導入して処理の並列化を図ることにより、上
述した実施形態や第7変形例よりも複雑な「機能」をも
った論理装置の動作シミュレーションを実現することが
できる。
As described above, in this modification, the thread 13
By introducing parallelism into the processing to achieve parallel processing, it is possible to realize an operation simulation of a logic device having more complicated "functions" than the above-described embodiment and the seventh modification.

【0127】(J)第9変形例の説明 次に、上述したリソースマネージャ12は、リソース1
4の種類に関係無く全てのリソース14を共通で管理し
ていたが、例えば図27に模式的に示すように、複数種
類のリソース14−1〜14−n毎にリソースマネージ
ャ12−1〜12−nを設けて、それぞれが1種類のリ
ソース14−j(j=1〜n)を独立して(ローカル
に)管理して、要求19に応じたリソース14−jをロ
ーカルな「調停ルール」に従って要求元のスレッド13
に割り当てるようにしてもよい。
(J) Description of Ninth Modification Next, the resource manager 12 described above
Although all the resources 14 are managed in common regardless of the four types, for example, as schematically shown in FIG. 27, the resource managers 12-1 to 12- -N, each independently manages (locally) one type of resource 14-j (j = 1 to n), and manages the resource 14-j in response to the request 19 to a local "arbitration rule". Requesting thread 13 according to
May be assigned.

【0128】この場合は計算機1(CPU4)を次のよ
うに動作させることが可能になる。即ち、外部入力(テ
ストデータ16の入力;ステップS31)によりスレッ
ドマネージャ11がスレッド13を生成する(ステップ
S32)。この場合も、スレッド13は独立して進行す
るが個々の実行順序はスレッドマネージャ11に管理さ
れている。そして、スレッド13は処理を進めるために
リソース14−jを確保する必要がある時は、そのリソ
ース14−jの確保をスレッドマネージャ11経由で対
応するリソースマネージャ12−jに要求する(ステッ
プS33;リソース要求ステップ)。
In this case, the computer 1 (CPU 4) can be operated as follows. That is, the thread manager 11 generates the thread 13 by an external input (input of the test data 16; step S31) (step S32). Also in this case, the threads 13 progress independently, but the execution order of each thread is managed by the thread manager 11. Then, when it is necessary to secure the resource 14-j in order to proceed with the processing, the thread 13 requests the corresponding resource manager 12-j to secure the resource 14-j via the thread manager 11 (step S33; Resource request step).

【0129】リソースマネージャ12−jは単位時間内
のリソース要求19をリソース14−j毎にローカルに
調停して、リソース14−jの割り当て結果をスレッド
マネージャ11に回答21を発行する(ステップS3
4;リソース割り当てステップ)。スレッドマネージャ
11はリソースマネージャ12−jからの回答21に基
づいてスレッド13の実行状態を制御する(スレッド制
御ステップ)。
The resource manager 12-j arbitrates the resource requests 19 within the unit time locally for each resource 14-j, and issues a response 21 to the thread manager 11 on the result of the allocation of the resource 14-j (step S3).
4: resource allocation step). The thread manager 11 controls the execution state of the thread 13 based on the response 21 from the resource manager 12-j (thread control step).

【0130】そして、この場合も、全てのスレッド13
の処理が完了するまで、図3により前述したごとく、ス
レッドマネージャ11とリソースマネージャ12−jと
が連携して、リソース要求,リソース割り当て及びスレ
ッド13の制御とを繰り返すことによって、実行結果を
出力して(ステップS35)、論理装置の動作シミュレ
ーションを実現する。
Also in this case, all the threads 13
Until the process is completed, as described above with reference to FIG. 3, the thread manager 11 and the resource manager 12-j cooperate to repeat the resource request, the resource allocation, and the control of the thread 13, thereby outputting the execution result. (Step S35), the operation simulation of the logic device is realized.

【0131】ここで、具体的に、リソース種類をA,
B,Cの3種類(以下、リソースA,B,Cと表記す
る)とした場合、リソースマネージャ12−jが管理
(参照)するリソースAは、C++記述スタイルで構成
(記述)すると例えば図28に示すように構成される。
即ち、前述したリソース要求キュー20とリソース回答
キュー22とを定義するとともに、要求メソッド31
a′、リソースAの解放を行なう解放メソッド31
b′、リソースAの調停を行なう調停メソッド31c′
をそれぞれ定義する。
Here, specifically, the resource type is A,
When three types B and C (hereinafter referred to as resources A, B, and C) are used, the resource A managed (referenced) by the resource manager 12-j is configured (described) in the C ++ description style. It is configured as shown in FIG.
That is, the resource request queue 20 and the resource reply queue 22 described above are defined, and the request method 31
a ', a release method 31 for releasing the resource A
b ′, arbitration method 31c ′ for arbitrating resource A
Are defined respectively.

【0132】ここで、要求メソッド31a′は、要求し
たリソースAとその要求19を出したスレッド13のス
レッドIDとを要求メッセージとしてリソース要求キュ
ー20に登録する操作を行なうための関数であり、解放
メソッド31b′は、リソースAの解放を行ない、解放
したリソースAの個数を1つ増やす操作を行なう関数で
ある。
Here, the request method 31a 'is a function for performing an operation of registering the requested resource A and the thread ID of the thread 13 which issued the request 19 as a request message in the resource request queue 20. The method 31b 'is a function that releases the resource A and increases the number of released resources A by one.

【0133】また、調停メソッド31c′は、リソース
Aの割り当て調停を独立して(ローカルに)行なうため
の関数で、破線枠311′内の記述により、リソース要
求キュー20が空でない限り、リソース要求キュー20
から1つずつ要求19が取り出され、要求されたリソー
スAの個数がその時点で0以下であれば破線枠312′
内の記述が実行され、要求されたリソースAの個数がそ
の時点で1以上であれば破線枠313′内の記述が実行
されるようになっている。
The arbitration method 31c 'is a function for independently (locally) arbitrating the allocation of the resource A. According to the description in the dashed box 311', unless the resource request queue 20 is empty, the arbitration method 31c ' Queue 20
From the request 19 one by one, and if the number of requested resources A is 0 or less at that time, a broken line frame 312 '
Are executed, and if the number of requested resources A is 1 or more at that time, the description in the broken line frame 313 'is executed.

【0134】即ち、要求されたリソースAの個数がその
時点で0以下であれば、新たに割り当てられるリソース
Aが無いので、リソース割り当て結果の回答21として
“False”をリソース回答キュー22に格納し、要求さ
れたリソースAの個数が1以上であれば、割り当て可能
なので、そのリソースAの調停ルールに従って割り当て
を行なって、その調停(割り当て)結果(“True”)を
回答21としてリソース回答キュー22に格納するので
ある。なお、リソースB,リソースCについても上記
(図28)と同様に記述できる。つまり、この場合は、
図6に示すものに比して記述量は増えるものの構成は簡
単になる。
That is, if the number of requested resources A is 0 or less at that time, there is no newly allocated resource A, and “False” is stored in the resource reply queue 22 as the reply 21 of the resource allocation result. If the number of requested resources A is 1 or more, allocation is possible. Therefore, allocation is performed in accordance with the arbitration rule of the resource A, and the arbitration (allocation) result (“True”) is set as a response 21 as a resource reply queue 22. It is stored in. Note that resources B and C can be described in the same manner as described above (FIG. 28). So in this case,
Although the description amount is increased as compared with that shown in FIG. 6, the configuration is simplified.

【0135】そして、このように構成したリソースA,
B,Cを図3に示すシステムに適用すれば、リソース種
類毎のリソースマネージャ12−jによって、互いに依
存関係の無いローカルな「調停ルール」に従ったリソー
ス割り当てが行なわれて、リソースA,B,Cの種類間
に依存関係が存在しない論理装置のシミュレーションが
可能となる。
The resources A,
If B and C are applied to the system shown in FIG. 3, the resource managers 12-j for each resource type perform resource allocation according to local "arbitration rules" having no dependency on each other. , C can be simulated without any dependency between the types.

【0136】(K)第10変形例の説明 なお、上述した第9変形例は、リソース種類に互いに依
存関係が無い場合であるが、依存関係がある場合は、上
述したローカルな調停では不十分である。例えば、「CP
U」というリソースが、「論理演算装置(ALU;Arithmet
ic Logic Unit),「バス(BUS)」,「レジスタ(REGI
STER)」などのリソースから構成され、「ALU」という
リソースが、さらに、「加算器(ADDER)」,「減算器
(SUBTRACTER)」,「論理積回路(AND)」,「論理和
回路(OR)」などのリソースから構成されているような
場合、「CPU」というリソースをスレッド13に割り当
てるには、下位階層の「ALU」,「BUS」,「REGISTE
R」,「ADDER」,「AND」,「OR」といったリソースも
空いていなければならない。
(K) Description of the Tenth Modification The ninth modification described above is a case where the resource types do not depend on each other, but if there is a dependency, the local arbitration described above is not sufficient. It is. For example, "CP
A resource called "U" becomes a "logical operation unit (ALU; Arithmet
ic Logic Unit), “Bus (BUS)”, “Register (REGI
STER)), and a resource called "ALU" is further divided into "ADDER", "Subtractor (SUBTRACTER)", "AND circuit", "OR circuit" (OR )), The resource “CPU” is allocated to the thread 13 by assigning the resources “ALU”, “BUS”, and “REGISTE” in the lower hierarchy.
Resources such as "R", "ADDER", "AND", and "OR" must also be available.

【0137】このように、リソースに14−jに依存関
係がある場合には、例えば図29に模式的に示すよう
に、その依存関係に応じてリソースマネージャ12−j
を階層化する。即ち、この図29の場合は、リソース1
4−1とリソース14−2との間には依存関係が無いた
め、それぞれリソースマネージャ12−1,12−2が
ローカルにリソース14−1,14−2を管理するが、
リソース14−1,14−2とリソース14−3との間
にはそれぞれ依存関係が存在するため、上位階層のリソ
ースマネージャ12−3が、下位階層のリソースマネー
ジャ12−1,12−2も管理することで下位階層のリ
ソース14−1,14−2の管理も行なえるようにする
のである。
As described above, when a resource has a dependency on 14-j, for example, as schematically shown in FIG. 29, the resource manager 12-j depends on the dependency.
Is hierarchized. That is, in the case of FIG.
Since there is no dependency between 4-1 and the resource 14-2, the resource managers 12-1 and 12-2 manage the resources 14-1 and 14-2 locally, respectively.
Since there is a dependency between the resources 14-1 and 14-2 and the resource 14-3, the upper layer resource manager 12-3 manages the lower layer resource managers 12-1 and 12-2. By doing so, it is possible to manage the resources 14-1 and 14-2 in the lower hierarchy.

【0138】同様にして、リソースマネージャ12−3
やリソースマネージャ12−(n−1)は、互いに独立
してリソース14−3や14−(n−1)の管理をロー
カルに行なうが、それぞれ上位階層のリソース14−n
と依存関係があるため、上位階層のリソースマネージャ
12−nが下位階層のリソースマネージャ12−3や1
2−(n−1)も管理する。
Similarly, the resource manager 12-3
And the resource manager 12- (n-1) manages the resources 14-3 and 14- (n-1) locally independently of each other, but each of the upper layer resources 14-n
Resource managers 12-n in the upper hierarchy are replaced by the resource managers 12-3 and 1-2 in the lower hierarchy.
2- (n-1) is also managed.

【0139】このようにして、リソース14−jに依存
関係があり前述したようなローカルなリソース調停で解
決できない場合はリソース14−jの階層化を行なって
グローバルなリソース調停を行なう。なお、この場合、
計算機1(CPU4)は、次のように動作することにな
る。即ち、外部入力(テストデータ16の入力;ステッ
プS41)によりスレッドマネージャ11がスレッド1
3を生成する(ステップS42)。この場合も、スレッ
ド13は独立して進行するが個々の実行順序はスレッド
マネージャ11に管理されている。
As described above, when the resource 14-j has a dependency and cannot be solved by the local resource arbitration as described above, the resource 14-j is hierarchized to perform a global resource arbitration. In this case,
Calculator 1 (CPU 4) operates as follows. That is, the thread manager 11 receives the thread 1 by an external input (input of the test data 16; step S41).
3 is generated (step S42). Also in this case, the threads 13 progress independently, but the execution order of each thread is managed by the thread manager 11.

【0140】そして、スレッド13は処理を進めるため
にリソース14−jを確保する必要がある時は、そのリ
ソース14−jの確保を、スレッドマネージャ11経由
でそのリソース種類に対応するリソースマネージャ12
−jに要求する(ステップS43;リソース要求ステッ
プ)。
When the thread 13 needs to secure the resource 14-j in order to proceed with the processing, the thread 13 allocates the resource 14-j via the thread manager 11 to the resource manager 12 corresponding to the resource type.
-J (step S43; resource request step).

【0141】リソースマネージャ12−jは、単位時間
内の個々のリソース要求に対する割り当てをリソース1
4−j毎にローカルに調停する。ローカルなリソース1
4−jの割り当て結果は上位階層のリソースマネージャ
12−k(k=j+1)に伝わり、上位階層のリソース
マネージャ12−kは、他の関連する(依存関係のあ
る)種類のリソース12−kの割り当て結果を考慮して
その階層のリソース割り当てを決定する。
The resource manager 12-j allocates each resource request within a unit time to the resource 1
4-j Local arbitration. Local resource 1
The allocation result of 4-j is transmitted to the resource manager 12-k (k = j + 1) of the upper layer, and the resource manager 12-k of the upper layer transmits the resource manager 12-k of another related (dependent) type of resource 12-k. The resource allocation of the hierarchy is determined in consideration of the allocation result.

【0142】以降、同様にして、下位階層のリソース割
り当て結果が、順次、上位階層に伝搬してゆき、最終的
に、最上位階層のリソースマネージャ12−nが最後の
割り当て結果をスレッドマネージャ11に回答する(ス
テップS44;リソース割り当てステップ)。
Thereafter, similarly, the result of resource allocation of the lower layer is sequentially propagated to the upper layer, and finally, the resource manager 12-n of the highest layer transmits the last result of allocation to the thread manager 11. Answer (step S44; resource allocation step).

【0143】つまり、本変形例では、リソース割り当て
ステップS44において、上位階層のリソースマネージ
ャ12−kが、自身の管理するリソース14−kと下位
階層のリソースマネージャ12−jの管理するリソース
14−jとの依存関係を考慮してリソース割り当てを行
なうのである。
That is, in this modification, in the resource allocation step S44, the resource manager 12-k of the upper layer manages the resource 14-k managed by itself and the resource 14-j managed by the resource manager 12-j of the lower layer. The resource allocation is performed in consideration of the dependency between the resources.

【0144】そして、スレッドマネージャ11は、この
リソースマネージャ12−jからの回答21に基づいて
スレッド13の実行状態を制御する(スレッド制御ステ
ップ)。その後、全てのスレッド13の処理が完了する
まで、スレッドマネージャ11とリソースマネージャ1
2−jとが連携して、上記のリソース要求,リソース割
り当て及びスレッド13の制御とを繰り返すことによ
り、実行結果(シミュレーション結果)を出力して(ス
テップS45)、論理装置のシミュレーションを実現す
る。
Then, the thread manager 11 controls the execution state of the thread 13 based on the response 21 from the resource manager 12-j (thread control step). After that, the thread manager 11 and the resource manager 1
By repeating the above-described resource request, resource allocation, and control of the thread 13 in cooperation with 2-j, an execution result (simulation result) is output (step S45), and simulation of the logical device is realized.

【0145】このように、本変形例では、リソース14
−jの依存関係に応じてリソース14−j及びリソース
マネージャ12−jを階層化することで、上位階層のリ
ソースマネージャ12−jが下位階層のリソースマネー
ジャ12−jの管理するリソース14−jも考慮してリ
ソース14−jの割り当てを行なうことができるので、
リソース種類間のグローバルな調停を行なうことがで
き、より複雑なリソースの依存関係を持つ論理装置の動
作シミュレーションを実現して、設計初期段階で機能や
性能検証を行なうことができる。
As described above, in this modification, the resource 14
The resource 14-j and the resource manager 12-j are hierarchized according to the dependency of the resource manager 12-j. Resource 14-j can be assigned taking into account
Global arbitration between resource types can be performed, an operation simulation of a logic device having more complicated resource dependencies can be realized, and functions and performance verification can be performed at an early design stage.

【0146】なお、上述した第7〜第10変形例は、勿
論、前述した第1〜第6変形例のいずれに適用してもよ
く、それぞれ、組み合わせによる利点ないし効果が得ら
れる。以上のように、本実施形態及びその各変形例の論
理装置の動作シミュレーション方法によれば、論理装置
の設計初期段階において機能レベルのシミュレーション
を行なって、「機能」の確認,「機能」を実現するアー
キテクチャの妥当性を設計の初期段階で確認して論理装
置の機能検証と性能評価を行なうことができる。
The seventh to tenth modifications described above may of course be applied to any of the first to sixth modifications described above, and the advantages and effects of the respective combinations are obtained. As described above, according to the operation simulation method of the logic device of the present embodiment and each of its modifications, the simulation of the function level is performed in the initial stage of the design of the logic device to confirm the “function” and realize the “function” The validity of the architecture to be performed can be confirmed at the initial stage of design, and the function verification and performance evaluation of the logic device can be performed.

【0147】また、設計の初期段階に「機能」を正確に
実現できたか否かを確認することができるとともに、設
計の安全性を確認することができる。その上、アーキテ
クチャに変更が必要となった場合でも、「機能」の記述
の変更は殆ど行なわずに、リソース14(14−j),
「調停ルール」,リソース要求などを変更するだけで、
簡単に設計の再検証を行なえるので、従来のように「機
能」の記述の変更による設計コスト増加を回避すること
ができる。
In addition, it is possible to confirm whether or not the “function” has been accurately realized in the initial stage of the design, and to confirm the safety of the design. In addition, even when the architecture needs to be changed, the description of the “function” is hardly changed, and the resources 14 (14-j),
Just change "arbitration rules", resource requirements, etc.
Since the design can be easily re-verified, it is possible to avoid an increase in design cost due to a change in the description of the “function” as in the related art.

【0148】(L)その他 上述した実施形態及びその各変形例では、シミュレーシ
ョンプログラム10の記述の具体例としてC++記述ス
タイルを例にしたが、勿論、Javaなどのなどの他の
プログラミング言語に基づく記述スタイルを適用して
も、上記と同様の作用効果が得られることはいうまでも
ない。そして、本発明は、上述した実施形態及びその各
変形例に限定されず、上記以外にも、本発明の趣旨を逸
脱しない範囲で種々変形して実施することができる。
(L) Others In the above-described embodiment and each of the modified examples, the C ++ description style is used as a specific example of the description of the simulation program 10. However, it is needless to say that the description based on another programming language such as Java is used. It goes without saying that the same operation and effect as described above can be obtained even if the style is applied. The present invention is not limited to the above-described embodiment and each of the modifications, and may be variously modified and implemented in addition to the above without departing from the gist of the present invention.

【0149】(M)付記 (付記1) プログラムの実行単位であるスレッドの制
御を行なうスレッドマネージャが、論理装置の設計仕様
に応じて該論理装置の動作完了までに必要となる機能を
表したスレッドの実行に必要なハードウェアリソース
を、当該ハードウェアリソースを管理するリソースマネ
ージャに要求するリソース要求ステップと、該リソース
マネージャが、該要求に応じたハードウェアリソースを
予め規定されたルールに従って該スレッドに割り当てる
リソース割り当てステップと、該スレッドマネージャ
が、該リソースマネージャによる割り当て結果に応じて
該スレッドの実行状態を制御するスレッド制御ステップ
とを有するとともに、該スレッドの実行が完了するまで
該スレッドマネージャと該リソースマネージャとが連携
して上記の各ステップを繰り返し実行することにより、
該論理装置の動作完了までの動作をシミュレーションす
ることを特徴とする、論理装置の動作シミュレーション
方法。
(M) Supplementary Note (Supplementary Note 1) A thread manager that controls a thread, which is a unit of execution of a program, indicates a function required until the operation of the logical device is completed in accordance with the design specification of the logical device. Requesting a hardware resource required for execution of the hardware resource from a resource manager that manages the hardware resource, and the resource manager sends the hardware resource corresponding to the request to the thread according to a predetermined rule. Allocating a resource, and the thread manager controls a thread execution state according to a result of the allocation by the resource manager, and the thread manager and the resource until the execution of the thread is completed. Manager By repeating the steps described above and,
A method for simulating the operation of a logic device, comprising simulating the operation of the logic device until the operation is completed.

【0150】(付記2) 上記の一連の機能が、複数の
逐次的なスレッドに表されていることを特徴とする、付
記1記載の論理装置の動作シミュレーション方法。 (付記3) 上記の一連の機能が、複数の逐次的または
並行に実行されるスレッドに表されていることを特徴と
する、付記1記載の論理装置の動作シミュレーション方
法。
(Supplementary note 2) The operation simulation method for a logic device according to supplementary note 1, wherein the series of functions described above are represented by a plurality of sequential threads. (Supplementary note 3) The operation simulation method for a logic device according to supplementary note 1, wherein the series of functions described above are represented by a plurality of threads that are executed sequentially or in parallel.

【0151】(付記4) 該リソースマネージャが、該
ハードウェアリソースの種類に対応して複数設けられる
とともに、該リソース割り当てステップにおいて、上記
の各リソースマネージャが、それぞれ、自身が管理する
ハードウェアリソースを予め規定されたローカルなルー
ルに従って該スレッドに割り当てることを特徴とする、
付記1〜3のいずれか1項に記載の論理装置の動作シミ
ュレーション方法。
(Supplementary Note 4) A plurality of the resource managers are provided corresponding to the types of the hardware resources, and in the resource allocating step, each of the resource managers described above manages the hardware resources managed by itself. Assigned to the thread according to a predefined local rule,
4. The operation simulation method for a logic device according to any one of supplementary notes 1 to 3.

【0152】(付記5) 該リソースマネージャが、該
ハードウェアリソースの種類に対応して複数設けられる
とともに、各リソースマネージャが、該ハードウェアリ
ソースの依存関係に応じて階層化され、該リソース割り
当てステップにおいて、該リソースマネージャが、自身
の管理するハードウェアリソースと下位階層のリソース
マネージャの管理するハードウェアリソースとの依存関
係を考慮して該ハードウェアリソースの割り当てを行な
うことを特徴とする、付記1〜3のいずれか1項に記載
の論理装置の動作シミュレーション方法。
(Supplementary Note 5) A plurality of the resource managers are provided corresponding to the types of the hardware resources, and each resource manager is hierarchized according to the dependency of the hardware resources. Wherein the resource manager allocates the hardware resource in consideration of the dependency between the hardware resource managed by the resource manager and the hardware resource managed by the lower-level resource manager. 4. The operation simulation method for a logic device according to any one of claims 1 to 3.

【0153】(付記6) 該リソースマネージャが、該
リソース要求ステップによるリソース要求を監視し、そ
の監視結果に基づいて複数スレッド間のリソース要求の
デッドロック状態を判定することを特徴とする、付記1
〜5のいずれか1項に記載の論理装置の動作シミュレー
ション方法。 (付記7) 該リソースマネージャが、該リソース要求
ステップによるリソース要求によって割り当てられたハ
ードウェアリソースに対するリード/ライト要求を監視
し、その監視結果に基づいて複数スレッドのハードウェ
アリソースに対するリード/ライト動作の競合状態を判
定することを特徴とする、付記1〜5のいずれか1項に
記載の論理装置の動作シミュレーション方法。
(Supplementary note 6) The resource manager monitors a resource request in the resource requesting step and determines a deadlock state of a resource request among a plurality of threads based on the monitoring result.
6. The operation simulation method for a logic device according to any one of claims 1 to 5. (Supplementary Note 7) The resource manager monitors a read / write request for the hardware resource allocated by the resource request in the resource request step, and performs a read / write operation on the hardware resource of a plurality of threads based on the monitoring result. 6. The operation simulation method for a logical device according to claim 1, wherein a race condition is determined.

【0154】(付記8) 該リソースマネージャが、該
ハードウェアリソースに対するリソース要求数を監視
し、その監視結果に基づいて該スレッドのボトルネック
を検出することを特徴とする、付記1〜5のいずれか1
項に記載の論理装置の動作シミュレーション方法。 (付記9) 該リソースマネージャが、該ハードウェア
リソースに対するリソース要求数を監視し、その監視結
果に基づいて該リソース要求のブロッキングを検出する
ことを特徴とする、付記1〜5のいずれか1項に記載の
論理装置の動作シミュレーション方法。
(Supplementary note 8) The resource manager according to any of Supplementary notes 1 to 5, wherein the resource manager monitors the number of resource requests for the hardware resource, and detects a bottleneck of the thread based on the monitoring result. Or 1
The operation simulation method of the logic device according to the paragraph. (Supplementary note 9) The resource manager according to any one of Supplementary notes 1 to 5, wherein the resource manager monitors the number of resource requests for the hardware resource, and detects blocking of the resource request based on the monitoring result. 4. The operation simulation method for a logic device according to claim 1.

【0155】(付記10) 該スレッドに、該リソース
マネージャによって割り当てられたハードウェアリソー
スを占有する時間についての予算を与えておくことを特
徴とする、付記1〜5のいずれか1項に記載の論理装置
の動作シミュレーション方法。 (付記11) 該スレッドに、該機能の実行制限時間を
与えておくことを特徴とする、付記1〜5のいずれか1
項に記載の論理装置の動作シミュレーション方法。
(Supplementary note 10) The thread according to any one of Supplementary notes 1 to 5, characterized in that the thread is provided with a budget for time occupying the hardware resources allocated by the resource manager. A logic device operation simulation method. (Supplementary note 11) Any one of Supplementary notes 1 to 5, wherein the thread is given an execution time limit of the function.
The operation simulation method of the logic device according to the paragraph.

【0156】(付記12) 付記1〜11のいずれか1
項に記載の動作シミュレーション方法によるシミュレー
ション結果と、該論理装置の動作予測値とを比較する比
較ステップと、該比較ステップでの比較結果を外部装置
へ出力する出力ステップとを有することを特徴とする、
論理装置の動作シミュレーション方法。
(Supplementary Note 12) Any one of Supplementary Notes 1 to 11
And a comparison step of comparing a simulation result by the operation simulation method described in the section with an operation prediction value of the logical device, and an output step of outputting the comparison result in the comparison step to an external device. ,
A logic device operation simulation method.

【0157】(付記13) プログラムの実行単位であ
るスレッドの制御を行なうスレッドマネージャと、該ス
レッドの実行に必要なハードウェアリソースを管理する
リソースマネージャとをそなえるとともに、該スレッド
マネージャが、論理装置の設計仕様に応じて該論理装置
の動作完了までに必要となる機能を表したスレッドの実
行に必要なハードウェアリソースを該リソースマネージ
ャに要求するリソース要求手段と、該リソース要求手段
による該要求に対する該リソースマネージャによる割り
当て結果に応じて該スレッドの実行状態を制御するスレ
ッド制御手段とをそなえ、且つ、該リソースマネージャ
が、該要求に応じたハードウェアリソースを予め規定さ
れたルールに従って該スレッドに割り当てるリソース割
り当て手段をそなえ、該スレッドの実行が完了するまで
該スレッドマネージャと該リソースマネージャとが連携
して上記のリソース要求及びスレッドの実行状態の制御
を繰り返し実行することにより、該論理装置の動作完了
までの動作をシミュレーションすることを特徴とする、
論理装置の動作シミュレーション装置。
(Supplementary Note 13) A thread manager that controls a thread, which is a unit of execution of a program, and a resource manager that manages hardware resources necessary for the execution of the thread are provided. A resource requesting unit for requesting the resource manager for hardware resources necessary for executing a thread representing a function required until the operation of the logical device according to the design specification, and a request for the resource by the resource requesting unit. A thread control means for controlling an execution state of the thread according to a result of assignment by the resource manager, and the resource manager assigning a hardware resource corresponding to the request to the thread according to a predetermined rule With allocation means The thread manager and the resource manager cooperate to repeatedly execute the resource request and the control of the thread execution state until the execution of the thread is completed, thereby simulating the operation of the logical device until the operation is completed. Characterized in that
An operation simulation device for logic devices.

【0158】(付記14) 論理装置の動作シミュレー
ションプログラムを記録したコンピュータ読み取り可能
な記録媒体であって、該コンピュータを、プログラムの
実行単位であるスレッドの制御を行なうスレッドマネー
ジャ及び該スレッドの実行に必要なハードウェアリソー
スを管理するリソースマネージャとして機能させるとと
もに、該スレッドマネージャが、論理装置の設計仕様に
応じて該論理装置の動作完了までに必要となる機能を表
したスレッドの実行に必要なハードウェアリソースを該
リソースマネージャに要求するリソース要求ステップ
と、該リソースマネージャが、該要求に応じたハードウ
ェアリソースを予め規定されたルールに従って該スレッ
ドに割り当てるリソース割り当てステップと、該スレッ
ドマネージャが、該リソースマネージャによる割り当て
結果に応じて該スレッドの実行状態を制御するスレッド
制御ステップとを実行するとともに、該スレッドの処理
が完了するまで該スレッドマネージャと該リソースマネ
ージャとが連携して上記の各ステップを繰り返し実行す
ることにより、該論理装置の動作完了までの動作をシミ
ュレーションするためのプログラムが記録されているこ
とを特徴とする、論理装置の動作シミュレーションプロ
グラムを記録したコンピュータ読み取り可能な記録媒
体。
(Supplementary Note 14) A computer-readable recording medium on which an operation simulation program for a logic device is recorded, wherein the computer is provided with a thread manager for controlling a thread which is an execution unit of the program, and a computer for executing the thread. And a thread manager that functions as a resource manager that manages the necessary hardware resources, and that is used by the thread manager to execute threads representing functions required until the operation of the logical device is completed according to the design specifications of the logical device. A resource requesting step of requesting a resource from the resource manager; a resource allocating step of the resource manager allocating a hardware resource corresponding to the request to the thread according to a predetermined rule; Executing a thread control step of controlling the execution state of the thread according to the allocation result by the source manager, and cooperating with the resource manager in cooperation with the resource manager until the processing of the thread is completed. A computer-readable recording medium on which a program for simulating an operation of a logic device is recorded, wherein a program for simulating an operation of the logic device up to the completion of the operation by being repeatedly executed is recorded.

【0159】(付記15) 上記の一連の機能が、複数
の逐次的なスレッドに表されていることを特徴とする、
付記14記載の論理装置の動作シミュレーションプログ
ラムを記録したコンピュータ読み取り可能な記録媒体。 (付記16) 上記の一連の機能が、複数の逐次的もし
くは並行に実行されるスレッドに表されていることを特
徴とする、付記14記載の論理装置の動作シミュレーシ
ョンプログラムを記録したコンピュータ読み取り可能な
記録媒体。
(Supplementary Note 15) The above-described series of functions is represented by a plurality of sequential threads.
A computer-readable storage medium storing the logic device operation simulation program according to supplementary note 14. (Supplementary note 16) The computer-readable recording of the logic device operation simulation program according to Supplementary note 14, wherein the series of functions described above is represented by a plurality of threads that are sequentially or concurrently executed. recoding media.

【0160】(付記17) 該リソースマネージャが、
該ハードウェアリソースの種類に対応して複数設けられ
るとともに、該リソース割り当てステップにおいて、上
記の各リソースマネージャが、それぞれ、自身が管理す
るハードウェアリソースを予め規定されたローカルなル
ールに従って該スレッドに割り当てることを特徴とす
る、付記14〜16のいずれか1項に記載の論理装置の
動作シミュレーションプログラムを記録したコンピュー
タ読み取り可能な記録媒体。
(Supplementary Note 17) The resource manager
A plurality of hardware resources are provided corresponding to the types of the hardware resources, and in the resource allocation step, each of the resource managers allocates the hardware resources managed by itself to the thread according to a predetermined local rule. 17. A computer-readable recording medium recording an operation simulation program for a logic device according to any one of Supplementary Notes 14 to 16, characterized by the above-mentioned.

【0161】(付記18) 該リソースマネージャが、
該ハードウェアリソースの種類に対応して複数設けられ
るとともに、各リソースマネージャが、該ハードウェア
リソースの依存関係に応じて階層化され、該リソース割
り当てステップにおいて、該リソースマネージャが、自
身の管理するハードウェアリソースと下位階層のリソー
スマネージャの管理するハードウェアリソースとの依存
関係を考慮して該ハードウェアリソースの割り当てを行
なうことを特徴とする、付記14〜16のいずれか1項
に記載の論理装置の動作シミュレーションプログラムを
記録したコンピュータ読み取り可能な記録媒体。
(Supplementary Note 18) The resource manager
A plurality of hardware managers are provided corresponding to the types of the hardware resources, and each resource manager is hierarchized according to the dependency of the hardware resources. 17. The logical device according to any one of appendices 14 to 16, wherein the hardware resource is allocated in consideration of a dependency relationship between the hardware resource and a hardware resource managed by a lower layer resource manager. A computer-readable recording medium on which an operation simulation program of the present invention is recorded.

【0162】(付記19) 該リソースマネージャが、
該リソース要求ステップによるリソース要求を監視し、
その監視結果に基づいて複数スレッド間のリソース要求
のデッドロック状態を判定することを特徴とする、付記
14〜18のいずれか1項に記載の論理装置の動作シミ
ュレーションプログラムを記録したコンピュータ読み取
り可能な記録媒体。
(Supplementary Note 19) The resource manager is
Monitoring a resource request by the resource request step;
19. A computer-readable recording program for the operation simulation program for a logical device according to any one of appendices 14 to 18, wherein a deadlock state of a resource request between a plurality of threads is determined based on the monitoring result. recoding media.

【0163】(付記20) 該リソースマネージャが、
該リソース要求ステップによるリソース要求によって割
り当てられたハードウェアリソースに対するリード/ラ
イト要求を監視し、その監視結果に基づいて複数スレッ
ドのハードウェアリソースに対するリード/ライト動作
の競合状態を判定することを特徴とする、付記14〜1
8のいずれか1項に記載の論理装置の動作シミュレーシ
ョンプログラムを記録したコンピュータ読み取り可能な
記録媒体。
(Supplementary Note 20) The resource manager
Monitoring a read / write request for the hardware resource allocated by the resource request in the resource request step, and determining a race condition of a read / write operation on the hardware resource of a plurality of threads based on the monitoring result. Supplementary notes 14-1
A computer-readable recording medium recording the operation simulation program for a logic device according to any one of claims 8 to 13.

【0164】(付記21) 該リソースマネージャが、
該ハードウェアリソースに対するリソース要求数を監視
し、その監視結果に基づいて該スレッドのボトルネック
を検出することを特徴とする、付記14〜18のいずれ
か1項に記載の論理装置の動作シミュレーションプログ
ラムを記録したコンピュータ読み取り可能な記録媒体。
(Supplementary Note 21) The resource manager is
19. The simulation program according to claim 14, wherein the number of resource requests for the hardware resource is monitored, and a bottleneck of the thread is detected based on the monitoring result. A computer-readable recording medium on which is recorded.

【0165】(付記22) 該リソースマネージャが、
該ハードウェアリソースに対するリソース要求数を監視
し、その監視結果に基づいて該リソース要求のブロッキ
ングを検出することを特徴とする、付記14〜18のい
ずれか1項に記載の論理装置の動作シミュレーションプ
ログラムを記録したコンピュータ読み取り可能な記録媒
体。
(Supplementary Note 22) The resource manager is
19. The logical device operation simulation program according to any one of claims 14 to 18, wherein the number of resource requests for the hardware resource is monitored, and blocking of the resource request is detected based on the monitoring result. A computer-readable recording medium on which is recorded.

【0166】(付記23) 該スレッドに、該リソース
マネージャによって割り当てられたハードウェアリソー
スを占有する時間についての予算を与えておくことを特
徴とする、付記14〜18のいずれか1項に記載の論理
装置の動作シミュレーションプログラムを記録したコン
ピュータ読み取り可能な記録媒体。 (付記24) 該スレッドに、該機能の実行制限時間を
与えておくことを特徴とする、付記14〜18のいずれ
か1項に記載の論理装置の動作シミュレーションプログ
ラムを記録したコンピュータ読み取り可能な記録媒体。
(Supplementary note 23) The thread according to any one of Supplementary notes 14 to 18, characterized in that the thread is provided with a budget for time occupying the hardware resources allocated by the resource manager. A computer-readable recording medium on which an operation simulation program for a logic device is recorded. (Supplementary note 24) A computer-readable recording recording a logic device operation simulation program according to any one of Supplementary notes 14 to 18, wherein the thread is given an execution time limit of the function. Medium.

【0167】(付記25) 論理装置の動作シミュレー
ションプログラムを記録したコンピュータ読み取り可能
な記録媒体であって、該コンピュータに、付記1〜11
のいずれか1項に記載の動作シミュレーション方法によ
るシミュレーション結果と該論理装置の動作予測値とを
比較する比較ステップと、該比較ステップでの比較結果
を外部装置へ出力する出力ステップとを実行させるため
の動作シミュレーションプログラムが記録されたことを
特徴とする、論理装置の動作シミュレーションプログラ
ムを記録したコンピュータ読み取り可能な記録媒体。
(Supplementary Note 25) A computer-readable recording medium storing an operation simulation program for a logic device, wherein
A comparison step of comparing a simulation result by the operation simulation method according to any one of the above with an operation prediction value of the logic device, and an output step of outputting the comparison result in the comparison step to an external device. A computer-readable recording medium on which an operation simulation program for a logic device is recorded, wherein the operation simulation program is recorded.

【0168】(付記26) 論理装置の動作シミュレー
ションプログラムであって、コンピュータを、プログラ
ムの実行単位であるスレッドの制御を行なうスレッドマ
ネージャ及び該スレッドの実行に必要なハードウェアリ
ソースを管理するリソースマネージャとして機能させる
とともに、該スレッドマネージャが、論理装置の設計仕
様に応じて該論理装置の動作完了までに必要となる機能
を表したスレッドの実行に必要なハードウェアリソース
を該リソースマネージャに要求するリソース要求ステッ
プと、該リソースマネージャが、該要求に応じたハード
ウェアリソースを予め規定されたルールに従って該スレ
ッドに割り当てるリソース割り当てステップと、該スレ
ッドマネージャが、該リソースマネージャによる割り当
て結果に応じて該スレッドの実行状態を制御するスレッ
ド制御ステップとを実行するとともに、該スレッドの処
理が完了するまで該スレッドマネージャと該リソースマ
ネージャとが連携して上記の各ステップを繰り返し実行
することにより、該論理装置の動作完了までの動作をシ
ミュレーションすることを特徴とする、論理装置の動作
シミュレーションプログラム。
(Supplementary Note 26) An operation simulation program for a logical device, wherein a computer is used as a thread manager that controls a thread that is a unit of execution of the program and a resource manager that manages hardware resources necessary for execution of the thread. A resource request for causing the thread manager to function, and requesting the resource manager for hardware resources necessary for executing a thread representing a function required until the operation of the logical device is completed according to the design specification of the logical device. A resource allocation step in which the resource manager allocates a hardware resource according to the request to the thread according to a predetermined rule; and the thread manager controls the resource in response to the allocation result by the resource manager. A thread control step for controlling the execution state of Red, and the thread manager and the resource manager cooperate with each other to repeatedly execute the above-described steps until the processing of the thread is completed. An operation simulation program for a logic device, characterized in that the operation up to the completion of the operation is simulated.

【0169】(付記27) 上記の一連の機能が、複数
の逐次的なスレッドに表されていることを特徴とする、
付記26記載の論理装置の動作シミュレーションプログ
ラム。 (付記28) 上記の一連の機能が、複数の逐次的もし
くは並行に実行されるスレッドに表されていることを特
徴とする、付記26記載の論理装置の動作シミュレーシ
ョンプログラム。
(Supplementary Note 27) The above series of functions are represented by a plurality of sequential threads.
27. An operation simulation program for a logic device according to attachment 26. (Supplementary note 28) The operation simulation program for a logic device according to supplementary note 26, wherein the series of functions described above is represented by a plurality of threads that are sequentially or concurrently executed.

【0170】(付記29) 該リソースマネージャが、
該ハードウェアリソースの種類に対応して複数設けられ
るとともに、該リソース割り当てステップにおいて、上
記の各リソースマネージャが、それぞれ、自身が管理す
るハードウェアリソースを予め規定されたローカルなル
ールに従って該スレッドに割り当てることを特徴とす
る、付記26〜28のいずれか1項に記載の論理装置の
動作シミュレーションプログラム。
(Supplementary Note 29) The resource manager is
A plurality of hardware resources are provided corresponding to the types of the hardware resources, and in the resource allocation step, each of the resource managers allocates the hardware resources managed by itself to the thread according to a predetermined local rule. 29. The operation simulation program for a logic device according to any one of supplementary notes 26 to 28, wherein:

【0171】(付記30) 該リソースマネージャが、
該ハードウェアリソースの種類に対応して複数設けられ
るとともに、各リソースマネージャが、該ハードウェア
リソースの依存関係に応じて階層化され、該リソース割
り当てステップにおいて、該リソースマネージャが、自
身の管理するハードウェアリソースと下位階層のリソー
スマネージャの管理するハードウェアリソースとの依存
関係を考慮して該ハードウェアリソースの割り当てを行
なうことを特徴とする、付記26〜28のいずれか1項
に記載の論理装置の動作シミュレーションプログラム。
(Supplementary Note 30) The resource manager
A plurality of hardware managers are provided corresponding to the types of the hardware resources, and each resource manager is hierarchized according to the dependency of the hardware resources. 29. The logical device according to any one of supplementary notes 26 to 28, wherein the hardware resource is allocated in consideration of a dependency relationship between the hardware resource and a hardware resource managed by a lower layer resource manager. Operation simulation program.

【0172】(付記31) 該リソースマネージャが、
該リソース要求ステップによるリソース要求を監視し、
その監視結果に基づいて複数スレッド間のリソース要求
のデッドロック状態を判定することを特徴とする、付記
26〜30のいずれか1項に記載の論理装置の動作シミ
ュレーションプログラム。 (付記32) 該リソースマネージャが、該リソース要
求ステップによるリソース要求によって割り当てられた
ハードウェアリソースに対するリード/ライト要求を監
視し、その監視結果に基づいて複数スレッドのハードウ
ェアリソースに対するリード/ライト動作の競合状態を
判定することを特徴とする、付記26〜30のいずれか
1項に記載の論理装置の動作シミュレーションプログラ
ム。
(Supplementary Note 31) The resource manager is
Monitoring a resource request by the resource request step;
31. The operation simulation program for a logical device according to any one of appendices 26 to 30, wherein a deadlock state of a resource request between a plurality of threads is determined based on the monitoring result. (Supplementary Note 32) The resource manager monitors a read / write request for the hardware resource allocated by the resource request in the resource request step, and performs a read / write operation on the hardware resource of a plurality of threads based on the monitoring result. 31. The operation simulation program for a logic device according to any one of supplementary notes 26 to 30, wherein a race condition is determined.

【0173】(付記33) 該リソースマネージャが、
該ハードウェアリソースに対するリソース要求数を監視
し、その監視結果に基づいて該スレッドのボトルネック
を検出することを特徴とする、付記26〜30のいずれ
か1項に記載の論理装置の動作シミュレーションプログ
ラム。 (付記34) 該リソースマネージャが、該ハードウェ
アリソースに対するリソース要求数を監視し、その監視
結果に基づいて該リソース要求のブロッキングを検出す
ることを特徴とする、付記26〜30のいずれか1項に
記載の論理装置の動作シミュレーションプログラム。
(Supplementary Note 33) The resource manager
31. The logical device operation simulation program according to any one of supplementary notes 26 to 30, wherein the number of resource requests for the hardware resource is monitored, and a bottleneck of the thread is detected based on the monitoring result. . (Supplementary note 34) Any one of Supplementary notes 26 to 30, wherein the resource manager monitors the number of resource requests for the hardware resource, and detects blocking of the resource request based on the monitoring result. An operation simulation program for a logic device according to item 1.

【0174】(付記35) 該スレッドに、該リソース
マネージャによって割り当てられたハードウェアリソー
スを占有する時間についての予算を与えておくことを特
徴とする、付記26〜30のいずれか1項に記載の論理
装置の動作シミュレーションプログラム。 (付記36) 該スレッドに、該機能の実行制限時間を
与えておくことを特徴とする、付記26〜30のいずれ
か1項に記載の論理装置の動作シミュレーションプログ
ラム。
(Supplementary note 35) The thread according to any one of Supplementary notes 26 to 30, wherein the thread is provided with a budget for time occupying the hardware resources allocated by the resource manager. An operation simulation program for a logic device. (Supplementary note 36) The operation simulation program for a logic device according to any one of Supplementary notes 26 to 30, wherein an execution time limit of the function is given to the thread.

【0175】(付記37) 論理装置の動作シミュレー
ションプログラムであって、コンピュータに、付記1〜
11のいずれか1項に記載の動作シミュレーション方法
によるシミュレーション結果と該論理装置の動作予測値
とを比較する比較ステップと、該比較ステップでの比較
結果を外部装置へ出力する出力ステップとを実行させる
ことを特徴とする、論理装置の動作シミュレーションプ
ログラム。
(Supplementary Note 37) This is an operation simulation program for a logic device.
11. A comparison step of comparing a simulation result by the operation simulation method according to any one of 11 with an operation prediction value of the logic device, and an output step of outputting the comparison result in the comparison step to an external device. An operation simulation program for a logic device.

【0176】[0176]

【発明の効果】以上詳述したように、本発明によれば、
論理装置に実装すべき「機能」が必要とするハードウェ
アリソース(以下、単に「リソース」という)に関する
記述はスレッドには行なわず、そのスレッドが実行され
るときに、その都度、必要なリソースをリソースマネー
ジャによって動的に割り当てながら、スレッドの実行が
完了するまでスレッドマネージャとリソースマネージャ
とが連携してスレッドの実行状態の制御を繰り返し実行
することにより、論理装置の動作完了までの動作をシミ
ュレーションするので、次のような利点が得られる。
As described in detail above, according to the present invention,
A description of hardware resources (hereinafter, simply referred to as “resources”) required by “functions” to be implemented in a logical device is not given to a thread, and each time the thread is executed, necessary resources are allocated. Simulating the operation until the operation of the logical device is completed by the thread manager and the resource manager cooperating and repeatedly controlling the execution state of the thread until the execution of the thread is completed while dynamically assigning the resource by the resource manager. Therefore, the following advantages can be obtained.

【0177】論理装置の動作予測値との比較により、
「機能」の確認,「機能」を実現するアーキテクチャの
妥当性を設計の初期段階で確認して論理装置の機能検証
と性能評価を行なうことができる。 論理装置の動作予測値との比較により、設計の初期段
階に「機能」を正確に実現できたか否かを確認すること
ができる。
By comparing with the operation prediction value of the logic device,
It is possible to confirm the "function" and confirm the validity of the architecture for realizing the "function" at an early stage of design, and perform function verification and performance evaluation of the logical device. By comparing with the predicted operation value of the logic device, it is possible to confirm whether or not the “function” was correctly realized in the initial stage of the design.

【0178】アーキテクチャに変更が必要になった場
合でも、「機能」の記述変更は殆ど行なわずに、リソー
スやリソースの割り当てルール,スレッドのスケジュー
リング,リソース要求などを、アーキテクチャの変更に
応じて変更するだけで、簡単に設計の再検証を行なうこ
とが可能になり、「機能」の記述の変更による設計コス
ト増加を回避することができる。
Even when the architecture needs to be changed, the description of the "function" is hardly changed, and the resources, the resource allocation rules, the thread scheduling, the resource requests, and the like are changed according to the architecture change. Only by doing so, it is possible to easily re-verify the design, and it is possible to avoid an increase in design cost due to a change in the description of the “function”.

【0179】「機能」に適したアーキテクチャの探索
や、「機能」をアーキテクチャへマッピングする際のア
ーキテクチャの性能評価,設計初期段階におけるタイミ
ングの検証などが行なえる。なお、論理装置の動作完了
までに必要な一連の「機能」は、複数の逐次的なスレッ
ド群に表されていてもよいし、複数の逐次的または並行
に実行されるスレッド群に表されていてもよい。前者の
場合は、論理装置の「機能」の依存関係をより明確にし
た上での動作シミュレーションが可能になり、後者の場
合はより複雑な「機能」構成をもった論理装置の動作シ
ミュレーションが可能になる。
The search for an architecture suitable for the “function”, the performance evaluation of the architecture when mapping the “function” to the architecture, the verification of the timing at the initial design stage, and the like can be performed. Note that a series of “functions” required until the operation of the logical device is completed may be represented by a plurality of sequential thread groups, or may be represented by a plurality of sequential or concurrently executed thread groups. You may. In the former case, it is possible to simulate the operation of the logic device with more clarified dependencies on the "functions", and in the latter case, it is possible to simulate the operation of a logic device with a more complex "function" configuration become.

【0180】また、上記のリソースマネージャは、リソ
ースの種類に対応して複数設けられていてもよく、例え
ば、それぞれが管理するリソースを予め規定されたロー
カルなルールに従ってスレッドに割り当てたり、各リソ
ースマネージャをリソースの依存関係に応じて階層化し
て、それぞれの管理するリソースと下位階層のリソース
マネージャの管理するリソースとの依存関係を考慮して
リソースの割り当てを行なったりすることも可能であ
る。
A plurality of resource managers may be provided corresponding to the types of resources. For example, resources managed by each resource may be assigned to a thread according to a predetermined local rule, or each resource manager may be assigned to a thread. Can be hierarchized in accordance with resource dependencies, and resources can be allocated in consideration of the dependencies between the resources managed by the respective resources and the resources managed by the lower-level resource managers.

【0181】前者の場合は簡単な記述(構成)でリソー
スに依存関係のない論理装置のシミュレーションが可能
となり、後者の場合はリソースの依存関係をも考慮した
グローバルなリソースの割り当て調停が可能となる。さ
らに、上記のリソースマネージャは、リソース要求を監
視し、その監視結果に基づいて複数スレッド間のリソー
ス要求のデッドロック状態を判定することもでき、この
場合は、設計の初期段階においてデッドロック状態の発
生可能性を検出することが可能となり、論理装置の機能
検証を行なうことが可能となる。
In the former case, it is possible to simulate a logical device having no dependency on resources by a simple description (configuration), and in the latter case, it is possible to arbitrate global resource allocation in consideration of resource dependencies. . Further, the resource manager can monitor the resource request and determine a deadlock state of the resource request among a plurality of threads based on the monitoring result. In this case, the deadlock state of the deadlock state is determined in an initial stage of design. The possibility of occurrence can be detected, and the function of the logic device can be verified.

【0182】また、上記のリソースマネージャは、リソ
ース要求によって割り当てられたリソースに対するリー
ド/ライト要求を監視し、その監視結果に基づいて複数
スレッドのリソースに対するリード/ライト動作の競合
状態を判定することもでき、この場合は、複数のスレッ
ドがリソースに対してシーケンシャルに書き込み動作も
しくは読み出し動作を行なう時に、その順序が正しいか
否かを判定して、設計した論理装置が正しく動作するか
否かを検証することができる。
Further, the resource manager monitors a read / write request for a resource allocated by the resource request, and determines a contention state of a read / write operation for a resource of a plurality of threads based on the monitoring result. In this case, when a plurality of threads sequentially perform a write operation or a read operation on a resource, it is determined whether or not the order is correct, and it is verified whether or not the designed logical device operates correctly. can do.

【0183】さらに、上記のリソースマネージャは、リ
ソースに対するリソース要求数を監視し、その監視結果
に基づいてスレッドのボトルネックを検出することもで
き、この場合は、アクセス頻度が最も多いリソースは論
理装置のボトルネックになっている可能性があると推測
することができ、論理装置の設計初期段階で論理装置の
性能検証(ボトルネックの有無の検証)を実現すること
ができる。
Further, the resource manager can monitor the number of resource requests for resources and detect a bottleneck of a thread based on the monitoring result. In this case, the resource with the highest access frequency is a logical device. It can be inferred that there is a possibility that the bottleneck has occurred, and the performance verification of the logic device (verification of the presence or absence of the bottleneck) can be realized in the initial stage of the design of the logic device.

【0184】また、上記のリソースマネージャは、リソ
ースに対するリソース要求数を監視し、その監視結果に
基づいてリソース要求のブロッキングを検出することも
できる。この場合は、リソース要求のブロッキングの発
生可能性を検出することで、論理装置の性能を評価する
ことができる。
Further, the resource manager can monitor the number of resource requests for resources and detect blocking of resource requests based on the monitoring result. In this case, the performance of the logical device can be evaluated by detecting the possibility of blocking of the resource request.

【0185】さらに、上記のスレッドには、リソースマ
ネージャによって割り当てられたリソースを占有する時
間についての予算を与えておいてもよい。このようにす
れば、各種「機能」の組み合わせで構成される論理装置
が、設計仕様により要求される処理時間に関する性能要
件を満たしているか否かを、設計の初期段階にて確認す
ることができる。
Further, the above thread may be given a budget for the time for occupying the resources allocated by the resource manager. In this way, it is possible to confirm at an early stage of the design whether or not a logical device composed of a combination of various “functions” satisfies the performance requirements relating to the processing time required by the design specifications. .

【0186】また、上記のスレッドには、上記機能の実
行制限時間を与えておいてもよく、このようすれば、設
計の初期段階においてリアルタイム性に関する性能要件
を論理装置が満足しているかを検証することが可能とな
る。さらに、上述した動作シミュレーション方法は、コ
ンピュータを上述のごとく動作させる動作シミュレーシ
ョンプログラム及びこれを記録したコンピュータ読み取
り可能な記録媒体によって提供されてもよく、このよう
すれば、コンピュータに上記プログラムを読み取らせれ
ば(インストールすれば)、そのコンピュータを上述し
たような論理装置の動作シミュレーション方法を実行す
る装置(論理装置の動作シミュレーション装置)として
機能させることができるので、その普及に大きく寄与す
る。
The above thread may be given a time limit for executing the above function, and in this case, it is verified whether or not the logic device satisfies the real-time performance requirement in the initial stage of design. It is possible to do. Further, the above-described operation simulation method may be provided by an operation simulation program that causes a computer to operate as described above and a computer-readable recording medium that records the operation simulation program. If the computer is installed (if installed), the computer can be made to function as a device that executes the above-described logic device operation simulation method (logic device operation simulation device), which greatly contributes to its widespread use.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1実施形態に係るパーソナルコンピ
ュータなどの計算機(情報処理装置)の構成を示すブロ
ック図である。
FIG. 1 is a block diagram illustrating a configuration of a computer (information processing device) such as a personal computer according to a first embodiment of the present invention.

【図2】本発明の第1実施形態に係る動作シミュレーシ
ョンプログラムを説明するためのオブジェクトモデル図
である。
FIG. 2 is an object model diagram for explaining an operation simulation program according to the first embodiment of the present invention.

【図3】図2に示す動作シミュレーションプログラムに
基づく計算機の動作(論理装置の動作シミュレーション
方法)を説明するための図である。
FIG. 3 is a diagram for explaining an operation of a computer based on the operation simulation program shown in FIG. 2 (operation simulation method of a logic device);

【図4】図1に示す計算機の要部に着目した構成を示す
ブロック図である。
FIG. 4 is a block diagram showing a configuration focusing on a main part of the computer shown in FIG. 1;

【図5】第1実施形態に係るスレッドの記述例を示す図
である。
FIG. 5 is a diagram illustrating a description example of a thread according to the first embodiment;

【図6】第1実施形態に係るリソースマネージャの記述
例を示す図である。
FIG. 6 is a diagram illustrating a description example of a resource manager according to the first embodiment.

【図7】第1実施形態に係る論理装置(QoSシステ
ム)に必要な「機能」を説明するためのブロック図であ
る。
FIG. 7 is a block diagram for explaining “functions” necessary for the logic device (QoS system) according to the first embodiment.

【図8】第1実施形態に係る論理装置(QoSシステ
ム)の設計手順(動作シミュレーション方法)を説明す
るためのフローチャートである。
FIG. 8 is a flowchart for explaining a design procedure (operation simulation method) of the logic device (QoS system) according to the first embodiment.

【図9】第1実施形態の第1変形例に係る計算機の要部
に着目した構成を示すブロック図である。
FIG. 9 is a block diagram showing a configuration focusing on a main part of a computer according to a first modification of the first embodiment.

【図10】第1変形例に係るスレッドの記述例を示す図
である。
FIG. 10 is a diagram illustrating a description example of a thread according to a first modification;

【図11】(A)及び(B)はそれぞれ第1変形例に係
るスレッドのデッドロックの検出を説明するためのリソ
ース割付けグラフである。
FIGS. 11A and 11B are resource allocation graphs for explaining detection of a deadlock of a thread according to a first modification;

【図12】第1実施形態の第2変形例に係る計算機の要
部に着目した構成を示すブロック図である。
FIG. 12 is a block diagram illustrating a configuration focusing on a main part of a computer according to a second modification of the first embodiment.

【図13】第2変形例に係るリソース要求の記述例を示
す図である。
FIG. 13 is a diagram illustrating a description example of a resource request according to a second modification.

【図14】第2変形例に係るリソースの記述例を示す図
である。
FIG. 14 is a diagram illustrating a description example of a resource according to a second modified example.

【図15】第1実施形態の第3変形例に係る計算機の要
部に着目した構成を示すブロック図である。
FIG. 15 is a block diagram showing a configuration focusing on a main part of a computer according to a third modification of the first embodiment.

【図16】第3変形例に係るリソースの記述例を示す図
である。
FIG. 16 is a diagram illustrating a description example of a resource according to a third modification.

【図17】第1実施形態の第4変形例に係る計算機の要
部に着目した構成を示すブロック図である。
FIG. 17 is a block diagram illustrating a configuration focusing on a main part of a computer according to a fourth modification of the first embodiment.

【図18】第4変形例に係るリソースの記述例を示す図
である。
FIG. 18 is a diagram illustrating a description example of a resource according to a fourth modification.

【図19】第1実施形態の第5変形例に係る論理装置の
設計手順(動作シミュレーション方法)を説明するため
のフローチャートである。
FIG. 19 is a flowchart illustrating a design procedure (operation simulation method) of a logic device according to a fifth modification of the first embodiment.

【図20】第5変形例に係るスレッドの記述例を示す図
である。
FIG. 20 is a diagram illustrating a description example of a thread according to a fifth modification;

【図21】第1実施形態の第6変形例に係る論理装置の
設計手順(動作シミュレーション方法)を説明するため
のフローチャートである。
FIG. 21 is a flowchart illustrating a design procedure (operation simulation method) of a logic device according to a sixth modification of the first embodiment.

【図22】第6変形例に係るスレッドの記述例を示す図
である。
FIG. 22 is a diagram illustrating a description example of a thread according to a sixth modification;

【図23】第1実施形態の第7変形例に係るスレッドの
生成方法を説明するための模式図である。
FIG. 23 is a schematic diagram illustrating a thread generation method according to a seventh modification of the first embodiment.

【図24】第7変形例に係るスレッドの記述例を示す図
である。
FIG. 24 is a diagram illustrating a description example of a thread according to a seventh modification;

【図25】第1実施形態の第8変形例に係るスレッドの
生成方法を説明するための模式図である。
FIG. 25 is a schematic diagram for explaining a thread generation method according to an eighth modification of the first embodiment.

【図26】第8変形例に係るスレッドの記述例を示す図
である。
FIG. 26 is a diagram illustrating a description example of a thread according to an eighth modification;

【図27】第1実施形態の第9変形例に係る計算機の要
部に着目した構成を示すブロック図である。
FIG. 27 is a block diagram illustrating a configuration focusing on a main part of a computer according to a ninth modification of the first embodiment.

【図28】第9変形例に係るリソースの記述例を示す図
である。
FIG. 28 is a diagram illustrating a description example of a resource according to a ninth modification.

【図29】第1実施形態の第10変形例に係る計算機の
要部に着目した構成を示すブロック図である。
FIG. 29 is a block diagram illustrating a configuration focusing on a main part of a computer according to a tenth modification of the first embodiment.

【図30】(A)及び(B)はいずれも従来の論理装置
の設計手順を説明するためのフローチャートである。
FIGS. 30A and 30B are flowcharts for explaining a conventional logic device design procedure.

【図31】従来の論理装置の設計手順による課題を説明
するための図である。
FIG. 31 is a diagram for describing a problem caused by a conventional logic device design procedure.

【符号の説明】[Explanation of symbols]

1 計算機(情報処理装置;論理装置の動作シミュレー
ション装置) 2 計算機本体 3 ディスプレイ(表示装置;外部装置) 4 CPU 5 主記憶部(メモリ) 6 二次記憶装置(ハードディスク) 7 フロッピーディスク(FD)ドライブ 8 内部バス 9 フロッピーディスク(コンピュータ読み取り可能な
記録媒体) 10,51 論理装置の動作シミュレーションプログラ
ム 11 スレッドマネージャ 12,12−1〜12−n リソースマネージャ 13 スレッド 14,14−1〜14−n リソース(ハードウェア資
源) 15 テストベンチ 16 テストデータ 17 入力キュー 18 実行待ちキュー 19 要求 20 リソース要求キュー 21 回答 22 リソース回答キュー 31a,31a′ 要求メソッド 31b,31b′ 解放メソッド 31c,31c′ 調停メソッド 41 パケット 42 クラス分け機能 43 キューイング機能 44 デキュー機能 45 キュー 110 スレッド生成手段 111 リソース要求手段 112 スレッド制御手段 121 リソース割り当て手段 122 デッドロック検出機構 123 リード/ライト検出機構 124 ボトルネック検出機構 125 ブロッキング検出機構
REFERENCE SIGNS LIST 1 Computer (information processing device; logic device operation simulation device) 2 Computer body 3 Display (display device; external device) 4 CPU 5 Main storage unit (memory) 6 Secondary storage device (hard disk) 7 Floppy disk (FD) drive Reference Signs List 8 internal bus 9 floppy disk (computer-readable recording medium) 10, 51 logic device operation simulation program 11 thread manager 12, 12-1 to 12-n resource manager 13 thread 14, 14-1 to 14-n resource ( Hardware resources) 15 test bench 16 test data 17 input queue 18 execution queue 19 request 20 resource request queue 21 reply 22 resource reply queue 31a, 31a 'request method 31b, 31b' release method 31 , 31c 'arbitration method 41 packet 42 classification function 43 queuing function 44 dequeue function 45 queue 110 thread generation means 111 resource request means 112 thread control means 121 resource allocation means 122 deadlock detection mechanism 123 read / write detection mechanism 124 bottleneck Detection mechanism 125 Blocking detection mechanism

フロントページの続き (72)発明者 松崎 和浩 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 土居 武史 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B046 AA08 BA03 5B098 GA05 GD01 GD14 GD24 Continued on the front page (72) Inventor Kazuhiro Matsuzaki 4-1-1, Kamidadanaka, Nakahara-ku, Kawasaki-shi, Kanagawa Prefecture Inside Fujitsu Limited (72) Inventor Takeshi Doi 4-1-1, Kamiodanaka, Nakahara-ku, Kawasaki-shi, Kanagawa F-term in Fujitsu Limited (reference) 5B046 AA08 BA03 5B098 GA05 GD01 GD14 GD24

Claims (12)

【特許請求の範囲】[Claims] 【請求項1】 プログラムの実行単位であるスレッドの
制御を行なうスレッドマネージャが、論理装置の設計仕
様に応じて該論理装置の動作完了までに必要となる機能
を表したスレッドの実行に必要なハードウェアリソース
を、当該ハードウェアリソースを管理するリソースマネ
ージャに要求するリソース要求ステップと、 該リソースマネージャが、該要求に応じたハードウェア
リソースを予め規定されたルールに従って該スレッドに
割り当てるリソース割り当てステップと、 該スレッドマネージャが、該リソースマネージャによる
割り当て結果に応じて該スレッドの実行状態を制御する
スレッド制御ステップとを有するとともに、 該スレッドの実行が完了するまで該スレッドマネージャ
と該リソースマネージャとが連携して上記の各ステップ
を繰り返し実行することにより、該論理装置の動作完了
までの動作をシミュレーションすることを特徴とする、
論理装置の動作シミュレーション方法。
A thread manager for controlling a thread, which is an execution unit of a program, includes a hardware necessary for executing a thread representing a function required until the operation of the logical device is completed according to a design specification of the logical device. A resource requesting step of requesting a hardware resource from a resource manager that manages the hardware resource; and a resource allocating step of the resource manager allocating the hardware resource corresponding to the request to the thread according to a predetermined rule. The thread manager having a thread control step of controlling an execution state of the thread according to a result of allocation by the resource manager, and the thread manager and the resource manager cooperating until the execution of the thread is completed Each of the above steps Repeating the steps to simulate the operation of the logical device until the operation is completed,
A logic device operation simulation method.
【請求項2】 該リソースマネージャが、該リソース要
求ステップによるリソース要求を監視し、その監視結果
に基づいて複数スレッド間のリソース要求のデッドロッ
ク状態を判定することを特徴とする、請求項1記載の論
理装置の動作シミュレーション方法。
2. The resource manager according to claim 1, wherein the resource manager monitors a resource request in the resource request step, and determines a deadlock state of the resource request among a plurality of threads based on the monitoring result. Operation simulation method for a logic device.
【請求項3】 該リソースマネージャが、該リソース要
求ステップによるリソース要求によって割り当てられた
ハードウェアリソースに対するリード/ライト要求を監
視し、その監視結果に基づいて複数スレッドのハードウ
ェアリソースに対するリード/ライト動作の競合状態を
判定することを特徴とする、請求項1記載の論理装置の
動作シミュレーション方法。
3. The resource manager monitors a read / write request for a hardware resource allocated by the resource request in the resource request step, and performs a read / write operation on a hardware resource of a plurality of threads based on the monitoring result. 2. The operation simulation method for a logic device according to claim 1, wherein a race condition is determined.
【請求項4】 該リソースマネージャが、該ハードウェ
アリソースに対するリソース要求数を監視し、その監視
結果に基づいて該スレッドのボトルネックを検出するこ
とを特徴とする、請求項1記載の論理装置の動作シミュ
レーション方法。
4. The logical device according to claim 1, wherein the resource manager monitors the number of resource requests for the hardware resource, and detects a bottleneck of the thread based on the monitoring result. Behavior simulation method.
【請求項5】 該リソースマネージャが、該ハードウェ
アリソースに対するリソース要求数を監視し、その監視
結果に基づいて該リソース要求のブロッキングを検出す
ることを特徴とする、請求項1記載の論理装置の動作シ
ミュレーション方法。
5. The logical device according to claim 1, wherein the resource manager monitors the number of resource requests for the hardware resource and detects blocking of the resource request based on the monitoring result. Behavior simulation method.
【請求項6】 該スレッドに、該リソースマネージャに
よって割り当てられたハードウェアリソースを占有する
時間についての予算を与えておくことを特徴とする、請
求項1記載の論理装置の動作シミュレーション方法。
6. The method according to claim 1, wherein the thread is provided with a budget for time occupying the hardware resources allocated by the resource manager.
【請求項7】 該スレッドに、該機能の実行制限時間を
与えておくことを特徴とする、請求項1記載の論理装置
の動作シミュレーション方法。
7. The operation simulation method according to claim 1, wherein the thread is given an execution time limit of the function.
【請求項8】 請求項1〜7のいずれか1項に記載の動
作シミュレーション方法によるシミュレーション結果
と、該論理装置の動作予測値とを比較する比較ステップ
と、 該比較ステップでの比較結果を外部装置へ出力する出力
ステップとを有することを特徴とする、論理装置の動作
シミュレーション方法。
8. A comparison step of comparing a simulation result obtained by the operation simulation method according to claim 1 with an operation prediction value of the logic device, and the comparison result in the comparison step is stored in an external device. And an output step of outputting to a device.
【請求項9】 論理装置の動作シミュレーションプログ
ラムを記録したコンピュータ読み取り可能な記録媒体で
あって、 該コンピュータを、 プログラムの実行単位であるスレッドの制御を行なうス
レッドマネージャ及び該スレッドの実行に必要なハード
ウェアリソースを管理するリソースマネージャとして機
能させるとともに、 該スレッドマネージャが、論理装置の設計仕様に応じて
該論理装置の動作完了までに必要となる機能を表したス
レッドの実行に必要なハードウェアリソースを該リソー
スマネージャに要求するリソース要求ステップと、該リ
ソースマネージャが、該要求に応じたハードウェアリソ
ースを予め規定されたルールに従って該スレッドに割り
当てるリソース割り当てステップと、該スレッドマネー
ジャが、該リソースマネージャによる割り当て結果に応
じて該スレッドの実行状態を制御するスレッド制御ステ
ップとを実行するとともに、該スレッドの実行が完了す
るまで該スレッドマネージャと該リソースマネージャと
が連携して上記の各ステップを繰り返し実行することに
より、該論理装置の動作完了までの動作をシミュレーシ
ョンするためのプログラムが記録されていることを特徴
とする、論理装置の動作シミュレーションプログラムを
記録した記録媒体。
9. A computer-readable recording medium recording an operation simulation program of a logic device, comprising: a thread manager for controlling a thread as an execution unit of the program; and a hardware necessary for executing the thread. The thread manager functions as a resource manager that manages hardware resources, and the thread manager allocates hardware resources necessary for execution of threads representing functions required until the operation of the logical device is completed according to the design specifications of the logical device. A resource requesting step for requesting the resource manager; a resource allocating step in which the resource manager allocates a hardware resource corresponding to the request to the thread according to a predetermined rule; Executing a thread control step of controlling the execution state of the thread according to the allocation result by the manager, and repeating the above steps in cooperation with the thread manager and the resource manager until the execution of the thread is completed. A recording medium storing an operation simulation program for a logic device, wherein the program stores a program for simulating the operation of the logic device up to the completion of the operation.
【請求項10】 論理装置の動作シミュレーションプロ
グラムを記録したコンピュータ読み取り可能な記録媒体
であって、 該コンピュータに、 請求項1〜7のいずれか1項に記載の動作シミュレーシ
ョン方法によるシミュレーション結果と該論理装置の動
作予測値とを比較する比較ステップと、該比較ステップ
での比較結果を外部装置へ出力する出力ステップとを実
行させるための動作シミュレーションプログラムが記録
されたことを特徴とする、論理装置の動作シミュレーシ
ョンプログラムを記録したコンピュータ読み取り可能な
記録媒体。
10. A computer-readable recording medium on which an operation simulation program for a logic device is recorded, wherein the computer stores a simulation result by the operation simulation method according to claim 1 and the logic. An operation simulation program for executing a comparison step of comparing an operation predicted value of the apparatus with an output step of outputting a comparison result in the comparison step to an external apparatus is recorded. A computer-readable recording medium recording an operation simulation program.
【請求項11】 論理装置の動作シミュレーションプロ
グラムであって、コンピュータを、 プログラムの実行単位であるスレッドの制御を行なうス
レッドマネージャ及び該スレッドの実行に必要なハード
ウェアリソースを管理するリソースマネージャとして機
能させるとともに、 該スレッドマネージャが、論理装置の設計仕様に応じて
該論理装置の動作完了までに必要となる機能を表したス
レッドの実行に必要なハードウェアリソースを該リソー
スマネージャに要求するリソース要求ステップと、該リ
ソースマネージャが、該要求に応じたハードウェアリソ
ースを予め規定されたルールに従って該スレッドに割り
当てるリソース割り当てステップと、該スレッドマネー
ジャが、該リソースマネージャによる割り当て結果に応
じて該スレッドの実行状態を制御するスレッド制御ステ
ップとを実行するとともに、該スレッドの処理が完了す
るまで該スレッドマネージャと該リソースマネージャと
が連携して上記の各ステップを繰り返し実行することに
より、該論理装置の動作完了までの動作をシミュレーシ
ョンすることを特徴とする、論理装置の動作シミュレー
ションプログラム。
11. A program for simulating the operation of a logical device, wherein a computer functions as a thread manager that controls a thread that is a unit of execution of the program and a resource manager that manages hardware resources necessary for executing the thread. A resource requesting step of requesting the resource manager for hardware resources required for execution of a thread representing functions required until the operation of the logical device according to the design specification of the logical device. A resource allocation step in which the resource manager allocates a hardware resource in response to the request to the thread according to a predetermined rule; and Executing a thread control step for controlling a line state, and repeatedly executing each of the above steps in cooperation with the thread manager and the resource manager until the processing of the thread is completed. An operation simulation program for a logic device, characterized in that the operation up to completion is simulated.
【請求項12】 論理装置の動作シミュレーションプロ
グラムであって、 コンピュータに、 請求項1〜7のいずれか1項に記載の動作シミュレーシ
ョン方法によるシミュレーション結果と該論理装置の動
作予測値とを比較する比較ステップと、該比較ステップ
での比較結果を外部装置へ出力する出力ステップとを実
行させることを特徴とする、論理装置の動作シミュレー
ションプログラム。
12. An operation simulation program for a logic device, comprising: a computer for comparing a simulation result by the operation simulation method according to claim 1 with a predicted operation value of the logic device. An operation simulation program for a logic device, characterized by executing a step and an output step of outputting a comparison result in the comparison step to an external device.
JP2001387198A 2000-12-28 2001-12-20 Logic device operation simulation method, logic device operation simulation program, and computer-readable recording medium recording the program Expired - Fee Related JP4088439B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001387198A JP4088439B2 (en) 2000-12-28 2001-12-20 Logic device operation simulation method, logic device operation simulation program, and computer-readable recording medium recording the program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000-403135 2000-12-28
JP2000403135 2000-12-28
JP2001387198A JP4088439B2 (en) 2000-12-28 2001-12-20 Logic device operation simulation method, logic device operation simulation program, and computer-readable recording medium recording the program

Publications (2)

Publication Number Publication Date
JP2002279011A true JP2002279011A (en) 2002-09-27
JP4088439B2 JP4088439B2 (en) 2008-05-21

Family

ID=26607223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001387198A Expired - Fee Related JP4088439B2 (en) 2000-12-28 2001-12-20 Logic device operation simulation method, logic device operation simulation program, and computer-readable recording medium recording the program

Country Status (1)

Country Link
JP (1) JP4088439B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006003702A1 (en) * 2004-07-01 2006-01-12 Fujitsu Limited Verification support device, verification support method, verification support program, and recording medium
JP2007226801A (en) * 2006-02-23 2007-09-06 Samsung Electronics Co Ltd Method of providing partially isolated performance environment for multiple applications and digital information apparatus using the same
US7739722B2 (en) 2003-04-24 2010-06-15 Nec Corporation System for supporting security administration and method of doing the same
JP2013069174A (en) * 2011-09-22 2013-04-18 Fujitsu Semiconductor Ltd Cooperation verification method and cooperation verification device
JP2013101604A (en) * 2011-10-14 2013-05-23 Apple Inc Global clock handler object for hdl environment
US8732715B2 (en) 2004-08-30 2014-05-20 Fujitsu Limited Resource management method, device and program thereof

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739722B2 (en) 2003-04-24 2010-06-15 Nec Corporation System for supporting security administration and method of doing the same
WO2006003702A1 (en) * 2004-07-01 2006-01-12 Fujitsu Limited Verification support device, verification support method, verification support program, and recording medium
US7640521B2 (en) 2004-07-01 2009-12-29 Fujitsu Limited Model verification support method, apparatus, and computer-readable recording medium storing program
US8732715B2 (en) 2004-08-30 2014-05-20 Fujitsu Limited Resource management method, device and program thereof
JP2007226801A (en) * 2006-02-23 2007-09-06 Samsung Electronics Co Ltd Method of providing partially isolated performance environment for multiple applications and digital information apparatus using the same
JP2013069174A (en) * 2011-09-22 2013-04-18 Fujitsu Semiconductor Ltd Cooperation verification method and cooperation verification device
JP2013101604A (en) * 2011-10-14 2013-05-23 Apple Inc Global clock handler object for hdl environment

Also Published As

Publication number Publication date
JP4088439B2 (en) 2008-05-21

Similar Documents

Publication Publication Date Title
KR101579897B1 (en) Apparatus and methods to concurrently perform memory access for each thread and each tag
KR101467932B1 (en) Shared storage for multi-threaded ordered queues in an interconnect
US9552448B2 (en) Method and apparatus for electronic system model generation
US20020124085A1 (en) Method of simulating operation of logical unit, and computer-readable recording medium retaining program for simulating operation of logical unit
US20060107264A1 (en) Operating system and architecture for embedded system
EP1691287A1 (en) Information processing device, process control method, and computer program
CN107003956A (en) Guarantee service quality in the non-nuclear structure of on-chip system
Verhoef Modeling and validating distributed embedded real-time control systems
CN102760176B (en) Hardware transaction level simulation method, engine and system
CN107729050A (en) Real-time system and task construction method based on LET programming models
JP2002279011A (en) Method and program for operation simulation of logical unit and computer readable recording medium with the program recorded
Jersak Compositional performance analysis for complex embedded applications.
Wang et al. Synthesizing operating system based device drivers in embedded systems
Schliecker et al. Integrated analysis of communicating tasks in MPSoCs
CN108958903B (en) Embedded multi-core central processor task scheduling method and device
US7925490B2 (en) Method of transactional simulation of a generic communication node model, and the corresponding computer program product and storage means
Vu et al. A fast yet accurate message-level communication bus model for timing prediction of sdfgs on mpsoc
Boudjadar et al. Schedulability and memory interference analysis of multicore preemptive real-time systems
CN108958904B (en) Driver framework of lightweight operating system of embedded multi-core central processing unit
CN108958905B (en) Lightweight operating system of embedded multi-core central processing unit
Pölzlbauer et al. Efficient constraint handling during designing reliable automotive real-time systems
Di Natale et al. Worst-case time analysis of CAN messages
Cho et al. Scheduling with accurate communication delay model and scheduler implementation for multiprocessor system-on-chip
Metzlaff et al. Leveraging transactional memory for a predictable execution of applications composed of hard real-time and best-effort tasks
Fakih et al. Exploiting segregation in bus-based mpsocs to improve scalability of model-checking-based performance analysis for sdfas

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071030

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080225

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120229

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130228

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140228

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees