JP5835103B2 - 充足可能性問題の計算方法、充足可能性問題の計算システム及びプログラム - Google Patents
充足可能性問題の計算方法、充足可能性問題の計算システム及びプログラム Download PDFInfo
- Publication number
- JP5835103B2 JP5835103B2 JP2012120166A JP2012120166A JP5835103B2 JP 5835103 B2 JP5835103 B2 JP 5835103B2 JP 2012120166 A JP2012120166 A JP 2012120166A JP 2012120166 A JP2012120166 A JP 2012120166A JP 5835103 B2 JP5835103 B2 JP 5835103B2
- Authority
- JP
- Japan
- Prior art keywords
- true
- calculation processing
- value
- processing unit
- variable
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Complex Calculations (AREA)
Description
たとえば、ゲートレベルの論理回路の検証時に、コンピュータがその論理回路を積和形(Conjunctive Normal Form : CNF)の論理式で表現し、その論理式全体を真(“1”)とするような変数の真偽値の組み合わせが存在するか否かを判定する。
(第1の実施の形態)
図1は、第1の実施の形態のSATの計算方法の一例を説明する図である。
図1の下側に示されている例では、クライアントCnが、インプリケーションにより、変数x9の真偽値を算出し、レベル1のキューcqn1に格納するとともに、マスタMに通知している。マスタMは、コンフリクトの検出などのため、通知された変数x9の真偽値をレベル1のキューmq1に格納する。これに対して、クライアントC1,C2は、インプリケーションに時間がかかっており、インプリケーション結果は出力されていない。
そして、クライアントC1,C2,Cnは、変数x1の真偽値に基づくインプリケーションが終わると、レベル2のキューcq12,cq22,cqn2に格納された変数x3の真偽値に基づきインプリケーションを実施する。
図2の例では、クライアントC1は、インプリケーションにより、変数x5の真偽値を算出し、その結果を、レベル1のキューcq11に格納するとともに、マスタMと、変数x5を含む分割された論理式を演算するクライアントC2に通知している。クライアントC2とマスタMは通知された変数x5の真偽値をレベル1のキューcq21,mq1に格納する。
図3の例では、クライアントC2は、変数x1と変数x5の真偽値に基づくインプリケーションにより、変数x8の真偽値を算出し、真偽値をレベル1のキューcq21に格納するとともに、マスタMに通知している。マスタMは通知された変数x8の真偽値をレベル1のキューmq1に格納する。また、図3の例では、クライアントCnでの、変数x3の真偽値に基づくインプリケーションが終了して、変数x10の真偽値が得られている。このとき、クライアントCnは、変数x10の真偽値を、レベル2のキューcqn2に格納するとともに、マスタMに通知している。マスタMは通知された変数x10の真偽値をレベル2のキューmq2に格納する。
図4は、SATの計算を行う第2の実施の形態の計算システムの一例を示す図である。
ユーザコンピュータ10は、半導体集積回路の設計ツールを実行し、フォーマル検証時などにおいて、検証対象の論理回路をCNFの論理式で表現し、マスタ11に通知する。マスタ11は、クライアント12−1,12−2,…,12−nとともに、通知された論理式についてのSATの計算を行う。ユーザコンピュータ10とマスタ11、マスタ11とクライアント12−1〜12−n、及びクライアント12−1〜12−n同士は、たとえば、有線または無線通信により、情報の送受信を行う。
図5は、コンピュータのハードウェアの一例を示す図である。
(マスタ11の動作例)
図6は、マスタの動作の一例を示すフローチャートである。
φ=(x1b+x2)(x1b+x3+x9)(x2b+x3b+x4)(x4b+x5+x10)(x4b+x6+x11)(x5b+x6b)(x1+x7+x12b)(x1+x8)(x7b+x8b+x13b) (1)
なお、式(1)で、“x1b”、“x2b”などは、変数x1、x2の否定を示している。すなわち、変数x1が“1”のときは、変数x1bは“0”である。
図7の例では、クライアント12−2〜12−nは、レベル4のキューを実行中であり、レベル4のキューの生成時に真偽値が割り当てられた変数に基づくインプリケーションを行っている。クライアント12−1は最も遅く、レベル2のキューの生成時に真偽値が割り当てられた変数に基づくインプリケーションを行っている。
ステップS14の処理では、マスタ11は、クライアント12−1〜12−nからインプリケーション結果を受信し、その結果を各クライアント12−1〜12−nが実行しているキューのレベルに対応したマスタ11側のキューに格納する。
図8は、マスタ側のキューとインプリケーションテーブル及びアサインテーブルの一例を示す図である。
ステップS14の処理の後、マスタ11は、待機中のクライアントの割合が所定の割合(X%)よりも大きいか否かを判定する(ステップS15)。
ステップS17の処理では、マスタ11は、複数のレベルのキューを1つに変更する。そして、マスタ11は、アナライザを用いてコンフリクトの分析を行う(ステップS18)。キューを1つにするには、大きいレベルのキューの先頭を、前のレベルの末尾につなげるようにすればよい。アナライザが複数のレベルのキューを処理できるものであれば、キューを1つにしなくてもよい。
マスタ11は、ステップS10の処理で、CNFの論理式中に真偽値が未割り当ての変数がないと判定した場合は、インプリケーションなどを実施中であり、ビジーなクライアントがあるかないかを判定する(ステップS22)。ビジーなクライアントがある場合には、マスタ11は、ステップS14からの処理を行い、ビジーなクライアントがなければ、充足可能性問題は、充足可と判定し(ステップS23)、処理を終える。
(クライアント12−1〜12−nの動作例)
以下では、クライアント12−1の動作を説明するが、他のクライアント12−2〜12−nについても同様の動作が行われる。
クライアント12−1は、マスタ11からのメッセージを受信すると(ステップS30)、そのメッセージの内容を判定する(ステップS31)。メッセージがインプリケーションを指示するもので、クライアント12−1が演算する論理式に含まれる変数の真偽値が通知された場合、クライアント12−1は、ステップS32の処理を行う。ステップS32の処理では、クライアント12−1は、真偽値が割り当てられた変数を、マスタ11から指定されるDecisionまたはキューのレベルをもとに、指定されたレベルのキューに格納する。
上記の第2の実施の形態のSATの計算方法では、図6のステップS12の処理で使用する許容値を、ユーザ側から指定される値としたが、マスタ11が設定するようにしてもよい。
マスタ11は、演算部60、選択部61、タイム/コンフリクトカウンタ62の機能を実現する。
マスタ11は、コンフリクト発生の有無を判定する(ステップS40)。コンフリクトがある場合には、演算部60は、変数に割り当てられた真偽値をUndefにするキューのレベルの数(n−(k+1))を取得して出力する(ステップS41)。また、タイム/コンフリクトカウンタ62は、コンフリクト数をインクリメントする(ステップS42)。
C1〜Cn 計算処理部(クライアント)
mq1,cq11,cq21,cqn1 レベル1のキュー
mq2,cq12,cq22,cqn2 レベル2のキュー
Claims (8)
- 第1の計算処理部が、和積形で表される論理式に含まれる第1の変数に第1の真偽値を割り当て、割り当てた前記第1の真偽値を、前記論理式を分割して演算する複数の第2の計算処理部のうち、前記第1の変数を含む分割された論理式を演算する第2の計算処理部に対して通知し、
前記第1の真偽値が通知された前記第2の計算処理部は、前記第1の真偽値を第1のレベルのキューに格納し、前記第1の真偽値に基づき、前記分割された論理式に含まれる他の変数の真偽値を算出し、
前記第1の計算処理部は、前記他の変数の真偽値を算出が未完了の第2の計算処理部があっても、前記論理式に含まれる第2の変数に第2の真偽値を割り当て、割り当てた前記第2の真偽値を、前記複数の第2の計算処理部のうち、前記第2の変数を含む分割された論理式を演算する第2の計算処理部に対して通知し、
前記第2の真偽値が通知された前記第2の計算処理部は、前記第2の真偽値を第2のレベルのキューに格納し、前記第2の真偽値に基づき、前記分割された論理式に含まれる他の変数の真偽値を算出する、充足可能性問題の計算方法。 - 前記第1の計算処理部は、前記論理式に含まれる変数に真偽値を割り当てるたびに、新たなレベルのキューに前記真偽値を格納し、当該レベルと、前記複数の第2の計算処理部のうちで最も計算が遅れている第2の計算処理部が計算を実行中のキューのレベルとの差分が、許容値以下の場合に前記真偽値の通知を行う、請求項1に記載の充足可能性問題の計算方法。
- 前記第1の計算処理部は、一定時間におけるコンフリクト数が所定数より多いとき、前記新たなレベルと、コンフリクトが発生したレベルとの差分を、前記許容値として設定する、請求項2に記載の充足可能性問題の計算方法。
- 前記第1の計算処理部は、一定時間におけるコンフリクト数が所定数以下のとき、前記論理式に含まれる変数の数を、前記許容値として設定する、請求項2または3に記載の充足可能性問題の計算方法。
- 前記第1の計算処理部は、コンフリクト数が発生しない時間が所定の時間よりも長いとき、前記論理式に含まれる変数の数を、前記許容値として設定する、請求項2乃至4の何れか一項に記載の充足可能性問題の計算方法。
- 前記第1の計算処理部は、前記複数の第2の計算処理部のうち、待機中の第2の計算処理部の割合が所定の割合よりも大きいとき、前記第2の真偽値の割り当てを許容する、請求項1乃至5の何れか一項に記載の充足可能性問題の計算方法。
- 第1の計算処理部と、複数の第2の計算処理部とを有し、
前記第1の計算処理部が、和積形で表される論理式に含まれる第1の変数に第1の真偽値を割り当て、割り当てた前記第1の真偽値を、前記論理式を分割して演算する前記複数の第2の計算処理部のうち、前記第1の変数を含む分割された論理式を演算する第2の計算処理部に対して通知し、
前記第1の真偽値が通知された前記第2の計算処理部は、前記第1の真偽値を第1のレベルのキューに格納し、前記第1の真偽値に基づき、前記分割された論理式に含まれる他の変数の真偽値を算出し、
前記第1の計算処理部は、前記他の変数の真偽値を算出が未完了の第2の計算処理部があっても、前記論理式に含まれる第2の変数に第2の真偽値を割り当て、割り当てた前記第2の真偽値を、前記複数の第2の計算処理部のうち、前記第2の変数を含む分割された論理式を演算する第2の計算処理部に対して通知し、
前記第2の真偽値が通知された前記第2の計算処理部は、前記第2の真偽値を第2のレベルのキューに格納し、前記第2の真偽値に基づき、前記分割された論理式に含まれる他の変数の真偽値を算出する、充足可能性問題の計算システム。 - 第1の計算処理部が、和積形で表される論理式に含まれる第1の変数に第1の真偽値を割り当て、割り当てた前記第1の真偽値を、前記論理式を分割して演算する複数の第2の計算処理部のうち、前記第1の変数を含む分割された論理式を演算する第2の計算処理部に対して通知し、
前記第1の真偽値が通知された前記第2の計算処理部は、前記第1の真偽値を第1のレベルのキューに格納し、前記第1の真偽値に基づき、前記分割された論理式に含まれる他の変数の真偽値を算出し、
前記第1の計算処理部は、前記他の変数の真偽値を算出が未完了の第2の計算処理部があっても、前記論理式に含まれる第2の変数に第2の真偽値を割り当て、割り当てた前記第2の真偽値を、前記複数の第2の計算処理部のうち、前記第2の変数を含む分割された論理式を演算する第2の計算処理部に対して通知し、
前記第2の真偽値が通知された前記第2の計算処理部は、前記第2の真偽値を第2のレベルのキューに格納し、前記第2の真偽値に基づき、前記分割された論理式に含まれる他の変数の真偽値を算出する、
処理をコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012120166A JP5835103B2 (ja) | 2012-05-25 | 2012-05-25 | 充足可能性問題の計算方法、充足可能性問題の計算システム及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012120166A JP5835103B2 (ja) | 2012-05-25 | 2012-05-25 | 充足可能性問題の計算方法、充足可能性問題の計算システム及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013246657A JP2013246657A (ja) | 2013-12-09 |
JP5835103B2 true JP5835103B2 (ja) | 2015-12-24 |
Family
ID=49846365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012120166A Expired - Fee Related JP5835103B2 (ja) | 2012-05-25 | 2012-05-25 | 充足可能性問題の計算方法、充足可能性問題の計算システム及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5835103B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6044410B2 (ja) * | 2013-03-25 | 2016-12-14 | 富士通株式会社 | 論理検証プログラム、論理検証方法および論理検証装置 |
-
2012
- 2012-05-25 JP JP2012120166A patent/JP5835103B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013246657A (ja) | 2013-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593179B2 (en) | Capacity and load analysis using storage attributes | |
US10924535B2 (en) | Resource load balancing control method and cluster scheduler | |
US9715408B2 (en) | Data-aware workload scheduling and execution in heterogeneous environments | |
US7739635B2 (en) | Conjunctive BDD building and variable quantification using case-splitting | |
JP6083300B2 (ja) | プログラム、並列演算方法および情報処理装置 | |
JP7040319B2 (ja) | 運用管理装置、移動先推奨方法及び移動先推奨プログラム | |
US20150248312A1 (en) | Performance-aware job scheduling under power constraints | |
JP5121936B2 (ja) | リソース割り当て装置及びリソース割り当てプログラム及び記録媒体及びリソース割り当て方法 | |
US20190286077A1 (en) | Optimization apparatus and control method for optimization apparatus | |
Sekanina et al. | Automated search-based functional approximation for digital circuits | |
US10397315B2 (en) | Information processing apparatus and load distribution control method | |
US9996391B2 (en) | Parallel computer system, method of controlling parallel computer system, and recording medium | |
JPWO2011102219A1 (ja) | リアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラム | |
US20120266120A1 (en) | Glitch power reduction | |
US20190004728A1 (en) | Method and device for managing storage system | |
US8612911B2 (en) | Estimating power consumption of an electronic circuit | |
JP2021068393A (ja) | 情報処理システム、情報処理装置、および情報処理プログラム | |
US8407652B2 (en) | Task-based multi-process design synthesis | |
JP5515889B2 (ja) | 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム | |
US10248466B2 (en) | Managing workload distribution among processing systems based on field programmable devices | |
US9684751B2 (en) | Slack redistribution for additional power recovery | |
JP5835103B2 (ja) | 充足可能性問題の計算方法、充足可能性問題の計算システム及びプログラム | |
US8341565B2 (en) | Task-based multi-process design synthesis with reproducible transforms | |
US10394615B2 (en) | Information processing apparatus and job management method | |
US8392866B2 (en) | Task-based multi-process design synthesis with notification of transform signatures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150319 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150825 |
|
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: 20151006 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151019 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5835103 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |