JP3119646B2 - 再コンフュギュレーション可能なハードウェアシステムの評価装置及び演算処理方法 - Google Patents

再コンフュギュレーション可能なハードウェアシステムの評価装置及び演算処理方法

Info

Publication number
JP3119646B2
JP3119646B2 JP11076687A JP7668799A JP3119646B2 JP 3119646 B2 JP3119646 B2 JP 3119646B2 JP 11076687 A JP11076687 A JP 11076687A JP 7668799 A JP7668799 A JP 7668799A JP 3119646 B2 JP3119646 B2 JP 3119646B2
Authority
JP
Japan
Prior art keywords
variable
backtracking
value
search
leaf
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
Application number
JP11076687A
Other languages
English (en)
Other versions
JPH11353357A (ja
Inventor
アシャー プラナブ
マリク シャラッド
マリオノシ マーガレット
ツォング ペイジン
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.)
NEC Corp
Princeton University
Original Assignee
NEC Corp
Princeton University
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 NEC Corp, Princeton University filed Critical NEC Corp
Publication of JPH11353357A publication Critical patent/JPH11353357A/ja
Application granted granted Critical
Publication of JP3119646B2 publication Critical patent/JP3119646B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ブール関数式充足
可能性(SAT)問題を速く処理することによって自動テス
トパターン発生(ATPG)及び論理合成・検証を速めること
に関する。特に、本発明は、従来のソフトウェア的取り
組みよりももっと本質的にスピードアップ可能な(多く
の場合200倍)、SAT解決のためのコンフィギュレーショ
ン可能な演算処理方法を提供する。ブール関数式充足可
能性への取り組みは論理演算が集中しているので、SAT
式の部分を直接論理ゲートにマッピングし論理評価の際
に多数の並行処理計算を活用することによって、ハード
ウェア的取り組みが多大な効果を発揮できる。
【0002】
【従来の技術】FPGA(field programmable gate array)
は、ソフトウェア自体において、機能的に設定可能かつ
変更可能な集積回路として知られている。FPGA回路は周
知の製品化された技術であるので(例えば、IKOS シス
テムズ社製のVIRTUALOGIC SLI EMULATOR)、その詳細な
説明はここでは省略する。FPGA回路はコンフィギュレー
ション可能なハードウェアシステムに利用できる。つま
り、FPGA回路は、ソフトウェアによるプログラミングに
応じて機能的に変更可能なハードウェア装置を提供する
ことができる。
【0003】コンフィギュレーション可能なハードウェ
アシステムは様々な方法で利用されてきた。コンフィギ
ュレーション可能な演算処理は、従来同じデータを持ち
演算処理集約型のアプリケーションによく利用されてき
た。このため、従来のコンフィギュレーション可能な演
算処理用アプリケーションは、FPGA回路のプログラム可
能な論理が一般的に多数の並行処理データパスから成り
かつ制御がほとんど必要ないという点に特徴を持ってい
た。つまり、コンフィギュレーション可能な演算処理用
アプリケーションには単純な制御フローしかなかった。
【0004】ブールSATは制御フローをより多く必要と
する問題であり、1998年5月18日に出願され具体化され
た特許出願(特願平10−135138号)において、
ブールSATを解決するための初めてのコンフィギュレー
ション可能なハードウェアシステムが、同じ発明者達に
よって提案された。この初めてのSAT解決のためのコン
フィギュレーション可能なハードウェアシステムは、一
般的にデイビス・パットナム・アルゴリズムによるSAT
ソルバーの特徴を持っていた。第一次デイビス・パット
ナム・アルゴリズムが、時系列的なバックトラッキング
に備えて用意された。つまり、このアルゴリズムは一番
新しく割り当てられた変数へ後戻りする。
【0005】発明者達は、再コンフィギュレーション可
能なハードウェアを使ってSATを解決するために次の2
つの提案を参照した。
【0006】・ T.スヤマ、M.ヨコオ、H.サワダ FPGA回路に関する充足可能性問題の解決 1996年9月 第6回フィールド設定可能な論理及びアプリ
ケーションに関する国際研究集会・ M. Abramovici、D. Saab 再コンフィギュレーション可能なハードウェアに関する
充足可能性 1997年9月 第7回フィールド設定可能な論理及びアプリ
ケーションに関する国際研究集会 スヤマら(これ以降スヤマと称する)はデイビスパット
ナム方式でない彼ら独自のアルゴリズムを提案した。ス
ヤマのアルゴリズムでは、SAT式の各変数は常にある割
り当て値を持つ。スヤマのアルゴリズムでは、完全に定
義されたある値の組から別の完全に定義された値の組に
移行しながら進んでいく。スヤマ・アルゴリズムの発明
者らは余分な検索スペースを取り除くための方法を発明
したが、彼らの取り組みにおける参照回数は第一次デイ
ビス・パットナム方式よりも8倍も多いことを認めてい
る。さらに、スヤマ方式では、ハードウェアリソースを
集約させて、最高の計算機と複雑なルールチェッカーを
必要とする。
【0007】Abramoviciら(これ以降Abramoviciと称す
る)による上述の提案も、デイビス・パットナムSATア
ルゴリズムで実行されたものではなく、基本的には、再
コンフィギュレーション可能なハードウェアにおいて、
PODEMに基づくアルゴリズムで実行されるものである。P
ODEMに基づくアルゴリズムでは、その式において値を所
定の下位セットの変数に割り当てることによってCNF式
全体の満足のいく割当をみつけることができるものとす
る。この種のアルゴリズムに関するより詳しい情報につ
いては、有益な背景情報として参照された以下の文献を
参照のこと。
【0008】・P. Goel 結合論理回路用テストを生成するための絶対的数値によ
るアルゴリズム IEEE(電気電子学会) コンピュータ会報C30(3):215-222, 1981年3月
【発明が解決しようとする課題】テスト中の回路が主入
出力を充分に定義し、かつテストベクターを主出力で観
察されるように、主入力で利用しなければならず、ATPG
ドメインで生成されるSAT問題において、この技術は直
接的な応用性を持つ。このためAbramovici提案では直接
的には一般的CNFの公式を扱うことができない。
【0009】PODEM(及びAbramovici)の別の欠点として
は、SAT決定ツリーの変数の数が減少するとしても、検
索中参照される回数は必ずしも減らない。デイビス・パ
ットナムの効率的データ構造における内部変数間の関係
を把握すると、PODEM上の参照回数を減らし、実行時間
をかなり減らすことがわかった。
【0010】Abramovici提案のさらなる欠点として、以
下のようなハードウェア必要条件があげられる。すなわ
ち、故障用テストを生成するためには、(i) それぞれ元
の回路より数倍大きい、前方及び後方検索用回路に分け
ること、(ii) 2n入力、2n出力、及び3nビットレジスタ
ー付き複合制御回路を含むこと、但しnは主入力の数、
(iii) 幅がnで深さがnの大変大きいスタックを含むこ
と、(iv) 元の回路全体の2つのコピーを含むハードウ
ェアが必要となる。Abramovici提案の発明者達による
と、スタックのサイズは潜在的に縮小可能であると示し
てはいるが、そのような縮小はコード化及び復号化の回
路構成を著しく増加させる。従って、Abramovici提案
は、ハードウェアの必要条件が非常に多いという欠点が
ある。大きい回路を検査する場合、このことは現行のチ
ップ統合を弱めたり、論理エミュレーション限度を超え
たりする。このように、スタックとその他の制御構成に
加えて、2つの回路のコピーを保持するハードウェアの
コストはとても大きくなる。
【0011】今日、SAT解決のためのほとんどのソフト
ウェアはデイビス・パットナム・アルゴリズムに基づい
ている。デイビス・パットナム・アルゴリズムの最近の
ソフトウェア手段は、同じ基本的な流れを維持しなが
ら、様々な方法でそれを向上させてきた。それについて
もっと詳しく知るためには、各々有益な背景情報を参照
して具体化された以下の文献を参照のこと。
【0012】・ T. Larrabee ブール関数式充足可能性を用いたテストパターン生成 コンピュータ支援設計に関するIEEE会報(11巻、4から1
5ページ、1992年1月)・ S. Chakradhar, V. Agrawal, S. Rothweiler テスト生成のための推移的閉包アルゴリズム 集積回路及びシステムのコンピュータ支援設計に関する
IEEE会報、12(7):1015-1028, 1993年7月・ P. Stephan, R. Brayton, A. Sangiovanni-Vincentel
li 充足可能性を使った結合的テスト生成 バークレイ、カリフォルニア大学、電子工学・コンピュ
ータサイエンス部、1992年UCB/ERLメモM92/112・ J. Silva, K. Sakallah GRASP− 充足可能性のための新しい検索アルゴリズム CAD-96に関するIEEE ACM国際会議、 220ページから227
ページ、1996年11月 GRASPワークは、検索スペースをさらに節約するために
非時系列的バックトラッキング及び動的節の加法(dynam
ic claus addition)を利用するため、それの寄与すると
ころは顕著である。デイビス・パットナム・アルゴリズ
ムの向上に関する上述の文献は、ソフトウェア実現をめ
ざすものである。再コンフィギュレーション可能なハー
ドウェアにおいてもそのような向上を実現する必要があ
るが、従来の技術では、要求されるような複雑なフロー
制御はうまく達成できなかった。非時系列的なバックト
ラッキングに関する制御フローは非常に複雑である。発
明者の知る限りでは、スヤマ提案もAbramovici提案も実
際にはハードウェア・プラットフォーム上で実現され
ず、これまでシミュレーション結果のみ紹介されてき
た。
【0013】
【課題を解決するための手段】上記の目的を達成する本
発明は、入力された検索問題を解くためのコンフィギュ
レーション可能な評価装置において、コンフュギュレー
ション命令を有するメモリと、前記コンフィギュレーシ
ョン命令に従ってコンフィギュレーション可能なハード
ウェアシステムとを備え、前記コンフィギュレーション
命令は、前記入力された検索問題の現在の問題に基づい
て検索を実行するよう前記ハードウェアシステムをコン
フィギュレーションし、かつ、前記コンフィギュレーシ
ョン命令は、前記入力された検索問題の各々について、
前記検索中に行なわれるバックトラッキングが、前記ハ
ードウェアシステムの制御下で非時系列的バックトラッ
キングを含むよう前記ハードウェアシステムをコンフィ
ギュレーションし、さらに 前記コンフュギュレーション
命令は 前記入力された検索問題がブール関数式充足可
能性問題になり、かつ前記ブール関数式充足可能性問題
に対して、前記検索が前記非時系列的バックトラッキン
グを使ったブール関数式SAT解決検索となるように、前
記コンフィギュレーション命令が前記ハードウェアシス
テムをコンフィギュレーションすると共に 前記コンフ
ィギュレーション命令が前記ハードウェアシステムをコ
ンフィギュレーションすることにより ブロッキング変
数をリーフ変数としてみなすための手段と、リーフ変数
の値を変えるための手段と、リーフ変数のレベルよりも
高いレベルで第1のバックトラッキング変数を設定し変
えるための手段と、第1のバックトラッキング変数が論
理的矛盾を生成する時、第1のバックトラッキング変数
のレベルよりも高いレベルで第2のバックトラッキング
変数を設定し変えるための手段とを形成することを特徴
とする。
【0014】上記の目的を達成する他の本発明は、入力
された検索問題を解くためのコンフィギュレーション可
能な演算処理方法において 前記入力された検索問題の
現在の問題に基づいて検索を実行するようハードウェア
システムをコンフィギュレーションし、かつ、前記入力
された検索問題の各々について、前記検索中に行なわれ
るバックトラッキングが、前記ハードウェアシステムの
制御下で非時系列的バックトラッキングを含むよう前記
ハードウェアシステムをコンフィギュレーションし
らに 前記入力された検索問題がブール関数式充足可能
性問題になり、かつ前記ブール関数式充足可能性問題に
対して、前記検索が前記非時系列的バックトラッキング
を使ったブール関数式SAT解決検索となるように、前記
ハードウェアシステムをコンフィギュレーションすると
共に 変数ネットリストの前記非時系列的バックトラッ
キングにおいて ブロッキング変数をリーフ変数として
みなし、リーフ変数の値を変え、第1のバックトラッキ
ング変数として、リーフ変数のレベルよりも高いレベル
で変数を設定し、かつ第1のバックトラッキング変数の
値を変え、リーフ変数の値と第1バックトラッキング変
数の値に基づいて論理的一貫性を求めてネットリストを
評価し、その評価が論理的矛盾を生じた時は、第2バッ
クトラッキング変数として、第1バックトラッキング変
数のレベルよりも高いレベルの変数のうち1つの異なる
変数を設定し、かつその異なるバックトラッキング変数
の値を変えることによって、バックトラッキング変数そ
のものを変え、リーフ変数の値と第2バックトラッキン
グ変数の値に基づいて論理的一貫性を求めてネットリス
トを評価することを特徴とする。
【0015】請求項3の本発明 入力された検索問題
を解くためのコンフィギュレーション可能な演算処理方
法において 前記入力された検索問題の現在の問題に基
づいて検索を実行するようハードウェアシステムをコン
フィギュレーションし、かつ、前記入力された検索問題
の各々について、前記検索中に行なわれるバックトラッ
キングが、前記ハードウェアシステムの制御下で非時系
列的バックトラッキングを含むよう前記ハードウェアシ
ステムをコンフィギュレーションし さらに 前記入力さ
れた検索問題がブール関数式充足可能性問題になり、か
つ前記ブール関数式充足可能性問題に対して、前記検索
が前記非時系列的バックトラッキングを使ったブール関
数式SAT解決検索となるように、前記ハードウェアシス
テムをコンフィギュレーションすると共に 各変数がそ
れぞれのレベルを持ち、該変数のセットが論理値ネット
リストを形成し、レベル毎に順序づけられたブール関数
式変数のセットを積標準型で表現するための充足変数割
当を決定するための、前記非時系列的バックトラッキン
グにおいて、ブロッキング変数をリーフ変数としてみな
し、リーフ変数の値を変え、第1のバックトラッキング
変数として、リーフ変数のレベルよりも高いレベルで変
数の1つを設定し、かつ第1のバックトラッキング変数
の値を変え、リーフ変数の値と第1バックトラッキング
変数の値に基づいて論理的一貫性を求めて論理値ネット
リストを並行に評価し、論理的矛盾を生じた評価に対し
ては、第2バックトラッキング変数として、第1バック
トラッキング変数のレベルよりも高いレベルの変数のう
ち1つの異なる変数を設定し、かつその異なるバックト
ラッキング変数の値を変えることによって、バックトラ
ッキング変数そのものを変え、リーフ変数の値と第2バ
ックトラッキング変数の値に基づいて論理的一貫性を求
めて論理値ネットリストを並行に評価することを特徴と
する。
【0016】請求項4の本発明は 入力された検索問題
を解くためのコンフィギュレーション可能な演算処理方
法において 前記入力された検索問題の現在の問題に基
づいて検索を実行するようハードウェアシステムをコン
フィギュレーションし、かつ、前記入力された検索問題
の各々について、前記検索中に行なわれるバックトラッ
キングが、前記ハードウェアシステムの制御下で非時系
列的バックトラッキングを含むよう前記ハードウェアシ
ステムをコンフィギュレーションし さらに 前記入力さ
れた検索問題がブール関数式充足可能性問題になり、か
つ前記ブール関数式充足可能性問題に対して、前記検索
が前記非時系列的バックトラッキングを使ったブール関
数式SAT解決検索となるように、前記ハードウェアシス
テムをコンフィギュレーションすると共に それぞれの
レベルで順序づけられたブール関数式変数のセットを積
標準型で表現し、かつ論理値ネットリストを形成するた
めの充足変数割当を決定するための、前記非時系列的バ
ックトラッキングにおいて、(a) リーフ変数に関して、
リーフ変数値のみを変えるステップで、前記リーフ変数
値をブロッキング変数に基づいて決め、(b) バックトラ
ッキング変数に関して、バックトラッキング変数そのも
のとバックトラッキング変数値を変えるステップで、前
記バックトラッキング変数が前記リーフ変数のレベルよ
りも高いレベルを持ち、(c) 前記リーフ変数値と前記バ
ックトラッキング変数値及び前記バックトラッキング変
数そのものに基づいて論理的一貫性を求めて前記論理値
ネットリストを、平行して評価することを特徴とする。
【0017】請求項5の本発明によるコンフィギュレー
ション可能な演算処理方法は 前記評価のステップがさ
らに、順序づけられた複数の状態装置を備え、各状態装
置がブール関数式変数の1つに相当しそれらの間で個別
に順序づけられるステップと、前記複数の状態装置の各
々に関して、含意回路を備えるステップと、各含意回路
の出力を結合して、前記論理値ネットリストが論理的に
一貫性がないことを示すグローバルな矛盾信号を出力す
るステップとを含むことを特徴とする。
【0018】請求項6の本発明によるコンフィギュレー
ション可能な演算処理方法は 前記結合ステップがさら
に、前記論理値ネットリストのすべての遷移的含意が決
定されたかどうかを示すグローバル変更信号を提供する
ことを含むことを特徴とする。
【0019】請求項7の本発明は 入力された検索問題
を解くためのコンフィギュレーション可能なハードウェ
アシステムの評価を行なうコンピュータシステムにおい
て、プロセッサーと、前記プロセッサーに以下の処理を
実行させるソフトウェア命令を含むメモリとを備え、前
記ソフトウェア命令は、前記入力された検索問題の現在
の問題に基づいて検索を実行するよう前記ハードウェア
システムをコンフィギュレーションし、かつ、前記ソフ
トウェア命令は、前記入力された検索問題の各々につい
て、前記検索中に行なわれるバックトラッキングが、前
記ハードウェアシステムの制御下で非時系列的バックト
ラッキングを含むよう前記ハードウェアシステムをコン
フィギュレーションし さらに 前記ソフトウェア命令
前記入力された検索問題がブール関数式充足可能性
問題になり、かつ前記ブール関数式充足可能性問題に対
して、前記検索が前記非時系列的バックトラッキングを
使ったブール関数式SAT解決検索となるように、前記コ
ンフィギュレーション命令が前記ハードウェアシステム
をコンフィギュレーションすると共に それぞれのレベ
ルで順序づけられたブール関数式変数のセットを積標準
型で表現し、かつ論理値ネットリストを形成するための
充足変数割当を決定する 前記非時系列的バックトラッ
キングにおいて、(a) リーフ変数に関して、リーフ変数
値のみを変えるステップで、前記リーフ変数値をブロッ
キング変数に基づいて決め、(b) バックトラッキング変
数に関して、バックトラッキング変数そのものとバック
トラッキング変数値を変えるステップで、前記バックト
ラッキング変数が前記リーフ変数のレベルよりも高いレ
ベルを持ち、(c) 前記リーフ変数値、前記バックトラッ
キング変数値及び前記バックトラッキング変数そのもの
に基づいて論理的一貫性を求めて前記論理値ネットリス
トを、平行して評価するステップとを実行させること
特徴とする。
【0020】請求項8の本発明は コンピュータを制御
して入力された検索問題を解くためのコンフィギュレー
ション可能な演算処理を行なうプログラムを格納したコ
ンピュータで読み取り可能な記録媒体において 前記プ
ログラムが 前記入力された検索問題の現在の問題に基
づいて検索を実行するようハードウェアシステムをコン
フィギュレーションし、かつ、前記入力された検索問題
の各々について、前記検索中に行なわれるバックトラッ
キングが、前記ハードウェアシステムの制御下で非時系
列的バックトラッキングを含むよう前記ハードウェアシ
ステムをコンフィギュレーションし さらに 前記入力さ
れた検索問題がブール関数式充足可能性問題になり、か
つ前記ブール関数式充足可能性問題に対して、前記検索
が前記非時系列的バックトラッキングを使ったブール関
数式SAT解決検索となるように、前記ハードウェアシス
テムをコンフィギュレーションすると共に それぞれの
レベルで順序づけられたブール関数式変数のセットを積
標準型で表現し、かつ論理値ネットリストを形成するた
めの充足変数割当を決定するための、前記非時系列的バ
ックトラッキングにおいて、(a) リーフ変数に関して、
リーフ変数値のみを変えるステップで、前記リーフ変数
値がブロッキング変数に基づいて決められ、(b) バック
トラッキング変数に関して、バックトラッキング変数そ
のものとバックトラッキング変数値を変えるステップ
で、前記バックトラッキング変数が前記リーフ変数のレ
ベルよりも高いレベルを持ち、(c) 前記リーフ変数値、
前記バックトラッキング変数値及び前記バックトラッキ
ング変数そのものに基づいて論理的一貫性を求めて前記
論理値ネットリストを、平行して評価するステップとを
含むことを特徴とする。
【0021】
【0022】本発明は、解決されるデータセットまたは
それぞれの問題のためのテンプレート駆動のハードウェ
ア設計を実行することによって、ますます拡大している
FPGA回路の統合レベルと再コンフィグレーション性を積
極的に活用する、入力特定コンフィギュレーション可能
ハードウェア・アプリケーションの部類に属す。
【0023】本発明の1つの具体例として、新規のSAT
ソルバーがある。従来のコンフィギュレーション可能な
演算処理アプリケーションと本発明による方法との差を
強調するために、コンフィギュレーション可能な演算処
理のSAT解決アプリケーションを選んだ。特に、従来の
コンフィギュレーション可能な演算処理が、同一データ
を有し、多くの演算処理を要するアプリケーションに利
用されていたのに対し、SAT問題を解くことは、多くの
検索を要するアプリケーションに利用されている。従来
のコンフィギュレーション可能な演算処理用アプリケー
ションは、概して多数の並行処理データパスとわずかな
制御から成るプログラム可能な論理を使って、多くの演
算処理を行なってきた。このように、本発明の実施例と
しての、具体例のSATソルバーは、複雑な制御フローの
アルゴリズムに対して、コンフィギュレーション可能な
演算処理を使う方法を示している。本実施例が、再コン
フィギュレーション可能なハードウェアにおいて、複雑
な制御フローを実行するという、より広範囲の発明の一
例にすぎないことを考慮されたい。
【0024】コンフィギュレーション可能な演算処理を
アプリケーションにおいて使う従来の試みは、かなり単
純なデータ中心の収縮設計で実行されてきた。本発明は
複雑な制御構造の実行に備えて提供された。コンフィギ
ュレーション可能な演算処理によりこれまで実行されて
きた検索アルゴリズムが、概して単純な信号処理パイプ
ラインであったのに対して、本発明では、ツリー型検索
アルゴリズムが、ソフトウェアSATソルバーで見られる
のと類似の非時系列的バックトラッキングのハードウェ
ア版を使って、いかにして実行されるかを説明してい
る。このためには、バックトラッキングのステップを管
理する複雑な制御構造が必要になる。
【0025】SATソルバーが本発明を説明するのに有益
な別の理由として、どの検索戦略も相当量のビットレベ
ルの論理演算を駆使することがあげられる。こうした状
況故、プログラム可能な論理によって提供されるビット
レベルの論理並行処理の開発と演算の加速が促進され
る。
【0026】「入力特定」コンフィギュレーション可能
なハードウェア・アプリケーションは、特定な問題に基
づく演算を加速するためにコンフィギュレーション可能
なハードウェア(例えばFPGA回路)を利用することを意
味している。つまり、一般的解法のためのテンプレート
設計から始まって、本発明は、解決すべき特殊SAT公式
にいたるまでのアクセラレーター・デザインの特殊化に
備える。このように、ハードウェアは解決すべき特別な
問題(つまり、「入力」)を解くよう形成されている。ハ
ードウェア・コンフィギュレーションが入力、つまり問
題に合うように調整されているので、ハードウェアがよ
り一般的に形成されている状況よりもさらにもっと大き
い利点が生ずる。
【0027】本発明のその他の実施例としては、一般的
に問題を検索するのに応用されるような新規の非時系列
的方法、特にSAT問題に適用されるような非時系列的方
法、コンフィギュレーション可能なハードウェアを有す
るコンピュータシステムで具体化されるような非時系列
的方法、同じくコンフィギュレーション可能なハードウ
ェアを持たないコンピュータシステムで具体化されるよ
うな方法、コンピュータ使用可能媒体上のソフトウェア
命令で具体化されるような非時系列的方法などがある。
【0028】
【発明の実施の形態】SAT問題 ブール関数式充足可能性(SAT)の問題は、テスト生成や
論理証明やタイミング分析のように、集積回路のコンピ
ュータ支援設計における多くのアプリケーションにとっ
て、よく知られた制約的充足性の問題である。ブールの
公式をとってみると、その目的は、(a) その式が真と評
価されるように、変数への0か1かの割当を見つける
か、(b) そのような割当が存在しないように設定するか
のいずれかである。
【0029】ブールの公式は、一般的に積標準形(CNF)
で表わされ、和積形とも呼ばれている。いずれのブール
の公式もCNFで表現される。この形では、CNFの和項
(節)は単一リテラルの和で、リテラルは変数かその否
定である。n個の節はn個のリテラルのある節を意味し
ている。例えば、 は3個の節である。公式全体が1の数になるためには、
各節が、1の数になるよう、満たされなければならな
い。
【0030】0か1の値を変数の下位セットに割り当て
れば(部分的割当)、いくつかの節を満たすことができ、
その他は未定のままにされる。例えば、Vi=1は を満たし、一方、Vi=0は節を未定にする。未定の節が
その中に1つだけまだ割り当てられていないリテラルを
持つ場合、その節を満たすためには当該リテラルは1に
しなければならない。そのような場合、該当する変数は
その値に含意されると言われる。例えば、部分的割当Vi
=0、Vk=0はVj=0を含意する。含意されない変数は、
自由変数とみなされる。ある変数に含意される値が、以
前にその変数に含意された値または割り当てられた値と
違う場合には、対立または矛盾が生じる。対立を検出す
ると、該当する部分的割当がどんな有効な解の一部にも
なり得ないことを意味する。
【0031】ごく最近のSATソルバーは、図1に示され
るようにデイビス・パットナム・アルゴリズムに基づ
く。この論題に関する有益な背景情報としては、以下の
論文を参照されたい。M. Davis とH. Putnamによる「量
子化論のための演算処理手順(A Computing Procedure
for Quantification Theory)」、ACM ジャーナル 1960
年 7:201-215。第一次アルゴリズムは空の部分的割当か
ら始まる。それは0か1の値を一度に1つの自由変数に
割り当てることによって行なわれる。各割当後、アルゴ
リズムは他の変数に関してその割当の直接的及び遷移的
含意を決定する。含意の手続きの間、矛盾を検出しなか
ったならば、そのアルゴリズムは次の自由変数を取り上
げ、その手順を繰り返す。そうでない場合には、一番新
しく割り当てられ、1つの値だけがこれまでに試された
ことのある変数を補足することによって、そのアルゴリ
ズムは新たな部分的割当を試みる。このステップをバッ
クトラッキングという。自由変数が利用できず、かつ矛
盾に遭遇しなかった場合(すべての節が満たされ、解が
見つかったことを意味している)、または可能な割当が
すべて無くなった場合、アルゴリズムは終わりになる。
解が存在する場合は、その解を見つけることでアルゴリ
ズムが完了する。
【0032】含意を決定することは、余分な検索スペー
スを取り除くのに非常に重要である。なぜなら、(1)
そうすることで、矛盾した部分的割当に相当する検索ス
ペースの全領域をアルゴリズムでスキップすることがで
きるし、(2)すべての含意された変数は検索すべき自
由変数より1つ少ない自由変数に相当しているからであ
る。新たに割り当てられた変数、または含意された変数
を含む各節を、新たな含意が検出されなくなるまで過程
を繰り返しながら、引き続き走査して更新するので、残
念ながら、ソフトウェアにおいて含意を検出すること
は、大変時間がかかる。
【0033】アルゴリズムの中心的な含意手順は並行処
理が可能でかつ基本論理ゲートにマッピングが可能であ
る。発明者のハードウェア全体のアーキテクチャーがこ
の並行処理を利用して設計されている。以下に、公式指
定の方法で再コンフィギュレーション可能なハードウェ
アにデイビス・パットナム・アルゴリズムによりマッピ
ングする本発明者たちの方法を詳しく述べる。
【0034】公式指定のマッピング: デイビス・パッ
トナム・アルゴリズム ハードウェア構成 ソフトウェアに類似した、本発明者たちによるデイビス
・パットナム・アルゴリズムのハードウェア的方法は、
(i) 含意回路と、(ii) 検索スペースのバックトラッキ
ングに基づく探索を管理するための状態装置との2つの
部分から成る。SAT式を取り上げてみると、どちらのハ
ードウェア・モジュールも自動的に発生する。
【0035】ソフトウェアを上回ってスピードが向上し
たのは、本発明者たちが含意回路を利用したことに起因
する。ソフトウェアと違って、この回路は新たに割り当
てられた、または新たな含意されたすべての変数の直接
的含意を全部1クロックサイクルで見つける。従って、
新たな変数割当のすべての遷移的含意を、ソフトウェア
によって要求されたクロックサイクルの何分の1かで決
定することができる。
【0036】本発明では、各々の変数がそれぞれ含意回
路を持っている。
【0037】含意回路(IMPLICATION CIRCUIT) 図2及び図3は含意回路の具体例を詳細に示す。回路に
おける各変数の状態は、そのリテラルが取る値により符
号化される。変数vとして、そのリテラルの組 が値(0、0)をもつと、変数vは、含意による割当値も
割当による割当値も持たず、自由である。もしそれが値
(1、0)か(0、1)を持つ場合には、変数vはそれ
ぞれ値1か0を持つものと理解される。最後に、 が値(1、1)をとる場合、変数vは値1と0を同時には
取り得ないので、矛盾が生じる。
【0038】含意回路の役割は各リテラルの含意された
値を決定することである。あるリテラルは、それが1に
含意されるか、あるいは1に割り当てられるかのいずれ
かの場合には、1として評価される。このため、回路に
おいては、各リテラルの値は含意値と割当値のブールOR
である。いずれの変数のリテラルも両方とも1になる場
合には矛盾が起こる。矛盾信号は、リテラルの各ペアの
論理積のブールORとして、生成される。
【0039】リテラルの含意値を決定するためには、回
路はCFN式における節から生ずる変数間の関係を要約し
なければならない。回路は、普通は、各変数によって違
ってくる。
【0040】ここでリテラルaに対する含意回路の具体
例を、図2を参照しながら説明する。節 として、もしc=1、またはd=1、またはb=1でc=0なら
ば、結論から言うと、aは値1にならなければならな
い。つまり、aは1に含意されると結論づけられる。同
様にして、もしe=0、またはc=0ならば、aは0に含意さ
れる。この例では、リテラルaの含意値に対する等式
は、図2に示されるように、 となる。 は該当する変数に対するそれぞれのリテラルである。同
様に、リテラル の等式は となる。
【0041】次に、リテラルcの含意回路の具体例を、
図3を参照しながら説明する。同じ5つの節 だすると、最初の節から、aが値0を取るとすると、結
論から言うと、 は1に含意される。2番目の節はcを含意しない。3番目
の節では、もしa=0で ならば、cは1に含意される。4番目の節はcを含意しな
い。5番目の節から、 ならば、cは1に含意されることが結論づけられる。リ
テラルcの含意値の式は となり、その式は図3の論理ゲートに反映される。リテ
ラル の等式は となる。図3は図示のため をORゲートへの唯一の入力として示す。
【0042】このように、解決される問題においてCNF
節に応じて各リテラルごとに含意回路は変わる。
【0043】リテラル の値はそれぞれ依存し合っているので、上記の小さな例
でさえ含意依存状態においてはループを持つ。理論で
は、公式のすべてのリテラルの値を計算する回路全体
が、そうしたループがあるにもかかわらず、フリップフ
ロップなしで実行される。ループはすべて反転不能なの
で、結合回路は正しい値に収束するよう保証されている
が、非常に長い結合パスとその結果長いサイクル時間に
なる。
【0044】こうした欠点を避けるために、各リテラル
が、フィードバックされる前に、同期されたDフリップ
フロップ回路によってラッチされるような回路が使われ
る。各クロックサイクルの間、回路は、前のサイクルに
おいて割り当てられたり、または含意されたすべての変
数の直接的含意を並行に決定する。1クロックサイクル
の間、新たな含意を検出しない場合には、その手続きを
完了する。新しい含意は、各リテラルごとのDフリップ
フロップ回路の入出力のXORをとることによって検出さ
れる。こうしたXORゲートのいずれもが出力1を持つ場合
(例えば、LChangeが1の場合)、回路はもう1クロック
サイクル作動しなければならない。一番新しく変数割当
てが行なわれた含意手順の最初から、完了信号が発生す
るまでのクロックサイクルの数は、ソフトウェアでのそ
れよりは可能性としては随分少ないかもしれない。なぜ
ならば、可能性として非常にたくさんの新しい含意が各
クロックサイクルで発生し、こうして新しく含意された
変数から二次的に生じるすべての直接的含意が、次のク
ロックサイクルで即並行して決定されるからである。こ
の並行処理は実際にはかなりの量である。DIMACSの組の
おけるaim-100-6_0-yes1-1の例では、このやり方では、
1サイクルにつき平均で41.9の並行処理の節の数を生成
する。その例では、1サイクルで395のたくさんの節が
効果的に処理される。こうした数は他のベンチマークで
もよく見られる。
【0045】グローバル回路のトポロジィ及びバックト
ラック状態装置 本発明による回路構成の2つの重要な特徴は、(i) 別々
の状態装置が各変数に備えられていることと、(ii) 変
数が割り当てられる順番が予め決められていることであ
る。従って、本発明のグローバル回路トポロジィは図4
に示されるような形態を取る。図面の各々の四角には、
各変数ごとの状態装置とリテラル演算回路が入ってい
る。こうして配置されたトポロジィは全体の信号を最小
に保持し、ハードウェアのコストを下げる。どんな瞬間
でも、1つの状態装置だけはコントロール下にある。い
ったん状態装置が処理を終えると、Eor(つまり、右へ
出ていくのを可能にする信号)をアサートにして(演算
処理が前方へ進む場合には)制御を右の状態装置に移す
か、あるいはE01(つまり、左へ出て行くのを可能にす
る信号)をアサートにして、(バックトラッキングの場
合には)制御を左に渡す。各状態装置は、変数が割り当
てられているか、または含意されているか、あるいは自
由変数のままかどうかを認識する。
【0046】1つの変数に対する状態装置が図5に示さ
れている。状態装置の5つの状態が3ビットでコード化
されている。各状態装置はほぼ同じである。2ビット
は、この変数の正のリテラルと負のリテラルの値に相当
する。3番目のビットはこの個々の状態装置がアクティ
ブかどうかを示す。
【0047】各状態装置への入力には、Eil(つまり、
左からの入りを可能にする信号)、Eir(右からの入り
を可能にする信号)、GContra(グローバル矛盾信号)、
GChange(グローバル変更信号)、GClear(すべてのフ
リップフロップ回路をリセットするためのグローバル信
号)などがある。各状態装置は、共通のクロック信号に
よって通常の仕方で同期される。
【0048】各状態装置からの出力には、E01とEor(す
でに述べた)、LContra(ローカル矛盾信号)、LChange
(ローカル変更信号)、LClear(ローカルクリア信号)
などがある。図4に、各状態装置の入出力を示す。装置
Vi-1は装置Viの左にあり、それは装置Vi+1の左にある。
図示されていないが、明確にするため、LChange出力の
すべてがORゲートに入ってGChangeを生成し、LContra出
力のすべてがORゲートに入ってGContraを生成し、LClea
r出力のすべてがORゲートに入ってGClearを生成する。
同じく図示されていないが、明確にするため、GChange
入力はすべての装置に共通であり、同様に、GContra入
力とGClear入力もすべてに共通である。
【0049】また、図示されてはいないが、含意信号が
ある。各装置は変数が自由か、割り当てられているか、
含意されているかを記憶していることを思い起こして欲
しい。1の値が、 に対する結果である場合に、変数が含意される。このよ
うにローカル含意信号は、ある状態装置内で から獲得できることが理解されるであろう。ローカル含
意信号は、変数の値がすでに含意されている状態を、状
態装置が素早く飛ばすことができるようにするのに利用
される。
【0050】図5では、以下のような規約が使われてい
る。記号がそれぞれの状態遷移線の隣に現われる。各記
号は入出力のフォーマットをとる。つまり、スラッシュ
(/)の前の項目は、状態装置を、現在の状態から状態遷
移線によって示される状態に移行させるのに必要な入力
である。スラッシュに続く項目は状態遷移の結果として
提供された出力である。特に、こうした出力はE01とEor
である。
【0051】例えば、init状態からactive 1状態への
状態遷移線がある。この状態遷移線の次に現われる記号
は、 である。この記号は、状態装置がinit状態で、そしてE
ilが1になり変数vに対する含意された値がないなら
ば、状態装置の状態はactive 1に移行し、状態装置はE
01に対して0そしてEorに対して0を出力する(こうし
て現在の状態装置をアクティブな状態装置として保
つ)。
【0052】前方演算:初期化後、すべての状態装置は
init状態にある。状態装置がイネーブル信号を受け取る
と、現在のリテラル値とイネーブルの方向を使って新し
い値をアサートにすべきかどうか、またどの新しい値を
アサートにするかを決める。制御が左から移り(つま
り、Eil=1)、変数の値が現在自由な場合(つまり、in
it状態にあって、値が含意されていなくて、 が値(0、0)を持つ場合)、値1(active 1に移行す
る)をアサートにし、その割当のすべての遷移的含意を
決定する。つまり、 を(1、0)に設定する。図2を参照すると、例えば、 を(1、0)に設定することは、 を設定することによって行なわれる。含意がまた設置中
で(つまり、GChangeがアサートにされている限りは)
かつ矛盾がない間は(つまり、GContraが0である限
り)、 繰り返し同じ状態に移りながら待ち状態にな
る。含意が一度設定されると、矛盾が生ずるかもしれな
い。もし、矛盾が起こったら、(つまり、GContraをア
サートにして)そのかわりに(active 0)値0を試みて、
含意ステップを繰り返す。もし、矛盾がない場合、制御
を状態装置の右に移し、passive 1状態に移行する。Act
ive 0から、矛盾を検出すると、後戻りする。その状態
をinitにリセットし、制御を左に移す。一方、含意が矛
盾なく落ち着けば、active 0からpassive 0に移動して
制御を右に移す。
【0053】上述のように、制御を左から状態装置に移
するが、変数の値がすでに前の割当(つまり、 のいずれか)で含意されている場合には、単に制御を次
のクロックサイクルで状態装置の右に移してinit状態に
する。
【0054】バックトラッキング:制御が状態装置の右
から移された場合、矛盾があるために計算を後戻りし、
その矛盾を避けるような新しい割当を見つけるように努
めることを言う。このシナリオでは、現在のローカル変
数値に応じて再び可能な応答が3つある。
【0055】第1に、状態装置がinit状態にある場合
(それより前の前方演算中、以前の割当によって変数が
すでに含意されていた場合などがそうである)、状態装
置はinit状態にとどまり、制御を状態装置の左に移す。
【0056】第2に、変数が割当値1を現在持つ場合
(つまり、passive 1状態にある時)、それにかわっ
て、値0を割り当て(active 0に移る)、その割当の含
意を決定する。矛盾が見つからない場合、その対立はク
リアされていて、この状態装置が制御を右に移動させ
て、計算をふただび進めることができる。けれども、矛
盾が見つかると、initにリセットされ制御を左に移す。
【0057】3番目に可能なシナリオとは、この変数が
すでに割当値0を持っているということである(つまり
passive 0状態にある)。これは、そのプロセスでこの
変数に対する可能な値をどちらもすでに試したというこ
とを示している。この場合、init状態に遷移して、変数
の割当を行なわないし、また制御を左に移すことによっ
て後戻りする。
【0058】解を見つける:上述の説明のいかなる所で
も、最も右の状態装置が、制御をさらに右に渡そうとす
る時に、解が見つかった。一方、最も左の状態装置が、
制御をさらに左に渡すことによって後戻りを試みる場合
には、その問題に対する解が存在しないことを意味す
る。
【0059】 公式特定マッピング:非時系列的バックトラック アルゴリズム デイビス・パットナム・アルゴリズムが最も新しく割り
当てられた変数に後戻りする時、そのバックトラッキン
グは時系列的と言われる。一方、アルゴリズムが、複数
の前に割り当てられた変数を超えて、現在の変数よりも
1レベル以上の変数に飛び越える場合、バックトラッキ
ングは非時系列的と言われる。直接前のレベルに飛び越
えるためには、アルゴリズムは、飛び越えた変数に関す
る値のどの組合わせもアルゴリズムを満足させる結果に
ならないよう最初に決めていなければならない。こうし
た変数を高機能に飛び越えることによって、アルゴリズ
ムは、すべてのこれらの組合わせが矛盾になるよう決め
さえすれば、これらの変数を様々な組合わせの値に明示
的に割り当てるのにかかる時間が無駄になるのを避ける
ことができる。GRASPはSATソルバーにおける非時系列的
なバックトラッキングの最近の手段です。GRASPワーク
は非時系列的なバックトラッキングが実行時間をかなり
短縮できることを示した。
【0060】GRASPは、含意グラフと呼ばれるデータ構
造を保持し、その含意グラフから矛盾に導く含意のチェ
ーンを引き出すことができる。GRASPはこのデータ構造
を使って、ジャンプ可能なレベルを見つけることができ
る。
【0061】再コンフィギュレーション可能なハードウ
ェアにおいて、そのような含意グラフを使うのは大変難
しい。このため、対立または矛盾の源を突き止めるため
に含意回路を通るのにもっとたくさんのハードウェアを
加える必要がある。本発明が、特定の問題を解決するた
めにカスタムハードウェア回路の急速な開発に関係して
いることを思い起こしてほしい。ソフトウェアだけを使
った場合に比べて、全体的な時間を節約するこのやり方
では、カスタムハードウェア回路は、調整に時間がかか
りすぎてはいけないし、ハードウェア・リソースを使い
すぎてもいけない。
【0062】本発明によるやり方は、並行処理のため、
上記に示したSATソルバーのハードウェア的実行では、
含意を決めるのが大変速いという事実を活用している。
特に、ある特定変数の双方の割当に対して矛盾が起こっ
た場合、現在の変数に最も近い変数に戻し、これよりも
前の変数の値をはじくことによって矛盾がなくなるよう
にする。過程が、飛び越された変数値の組合わせを指数
の数だけ試さなくてもこれより前の変数に戻ることか
ら、このやり方は時間を節約する。
【0063】Viが、iをそのレベルとして、Viへの双方
の割当に対して矛盾が検出された変数であるとする。本
発明による手順は、一度に1レベル、レベルを上げてい
く。その手順によると、それぞれのレベルj(<i)で、Vj
ははじかれた値なのでViに対する各値に1度づつ、含意
ルーチンを2度呼び出す。含意ルーチンが呼び出される
時には、つまり、両方のリテラル が0に設定される時には、iとjの間の変数Vk(j<k<i)は
割り当てられないままである。2つの割当の1つに対し
て矛盾がなかった場合、アルゴリズムはVjに後戻りしな
くてはならない。Viの両方の割当が矛盾を生ずる場合、
変数Vjは飛び越されて、手順は変数Vj-1のためにこのス
テップを繰り返す。
【0064】下記に、Viを使用し、VkがVi-1として検討
され、VjがVi-2として検討されるもっと詳しい例を使い
ながら、この動作について説明する。
【0065】この手順では、アルゴリズムがnレベルで
戻る場合には含意ルーチンの呼び出しが2nだけ必要であ
る。この手順では指数の回数の含意ルーチンの呼び出し
をしないし、またハードウェアの含意ルーチンが大変速
いので、非時系列的バックトラッキングに対するこの分
析も、大変速いことが期待できる。比較では、GRASP
は、矛盾が見つかった時には含意グラフのデータ構造を
維持し分析する諸経費がかかるが、2nの含意は行なわな
い。
【0066】次の簡単な例は、図7との関連で理解され
たいが、本発明による手順がどのように動作するかを示
している。以下のような公式があると仮定する。 また変数V2-V11に対するどの割当も矛盾を生じないもの
とする。このアルゴリズムに対する基本的なサーチ・ツ
リーが図7に示される。この図では、各矢印が新しい値
を割当てその含意を決めることを表わしている。V1=1
を割り当てることによって始まり、V11=1まで進む。最
後に、V12=1が試みられる。V13は(上記の公式の最初
の2つの節によって)0と1の両方であることを同時に
要求されているので、矛盾が起こる。
【0067】同様に、(上記の3番目と4番目の節によ
って)V12=0も矛盾が生じる。通常の後戻りの手順で
は、V12を未知数にリセットしV11に後戻りする。一時的
に対立は消えるが、V12がセットされるとまた現われ
る。
【0068】図7(a)では本発明による非時系列的なバッ
クトラッキングのやり方を示す。点線の矢印は飛び越し
を示し、そこでは計算が生じない。それらは単に含意計
算前にどんな値が想定されたかを示す。検索はV12まで
は同じであるが、バックトラッキングは異なる。各レベ
ルでバックトラッキングする時、含意手順は2度呼び出
しされる。つまり、標準的なバックトラッキングのやり
方の4082回よりもかなり少なく、含意手順をたった22回
だけ呼び出した後に、V1へのバックトラッキングが生じ
る。この単純な例は教育的すぎるが、実際のベンチマー
クでは劇的なスピードアップの可能性がある。例えば、
SAT組からのaim-100-1_6-yes1-1ベンチマークにおい
て、時系列的なバックトラッキングは606578の部分的割
当を巡回し、非時系列的バックトラッキング・アルゴリ
ズムはたった1384の部分的割当を巡回するだけである。
【0069】再コンフィギュレーション可能なハードウ
ェアのSATソルバーに対する新規なバックトラッキング
のやり方を、これから別の方法で説明する。SATソルバ
ーは複数の状態装置を含み、個々の装置はそれぞれブー
ルSAT問題における複数の変数のうちの1つに相当して
いると言える。該複数の変数は所定の発見的方法に基づ
いて順序づけられ、そのため状態装置も、最初の変数に
最初の状態装置を、また最後の変数に最後の状態装置を
該当させて配列する。
【0070】変数はブール関数なので、検索スペースは
トップつまり最も高いレベルに第1変数を配置したバイ
ナリ・ツリーとして考えられるかもしれない。変数はノ
ードとして考えることもできる。その変数が想定する2
つの値は、ノードから次の低いレベルに下がるブランチ
を定義する。最も高いレベルの下のレベルは、ブランチ
のそれぞれに対するノードを含み、このレベルのノード
のすべてが最初の変数の後の変数(つまり、2番目の変
数)に関係する。バイナリ・ツリーは最も低いレベルま
で続き、そこでは可能なノードのすべてが最後の順番の
変数に関係する。
【0071】従来、すべてのノードから導かれる2つの
ブランチが、順序付けられる(つまり、値1に相当する
ブランチは最も左で、値0に相当するブランチは最も右
である)。言葉の便宜上、2つのバイナリ値は第1値及
び第2値として説明される。例では、第1値は1で第2値
は0であるが、これはあくまでも説明の便宜上のこと
で、任意で構わない。第1値は、デフォルトでは、論理
的肯定あるいは否定をテストする時に最初に変数に割り
当てられた値である。このため、例では、通常自由変数
がテストのための第1値(1)に与えられ、次いで、必
要ならば、第2値(0)に与えられる。
【0072】処理の間、各変数は割り当てられたか、含
意されたか、あるいは自由であるか、いずれかの状態を
持つ。infraと叙述された状態装置の状態と混乱するの
を避けるために、通常状況(condition)という言葉を使
って変数が割り当てられたとか、含意されたとか、ある
いは自由だとか称することにする。従って、変数が自由
な状況、含意された状況、あるいは自由な状況というこ
とができる。再コンフィギュレーション可能なハードウ
ェアのSATソルバーが解を検索している時は、通常、あ
る変数は割り当てらた状況にあり、ある変数は含意され
た状況にあり、また他の変数は自由な状況にある。割り
当てられた変数と含意された変数との間には、それらの
間に矛盾がない場合は、全体的な論理的一貫性が存在す
る(自由変数は論理値を持たないので、全体的な論理的
一貫性に影響を与えない)。割り当てられた変数と含意
された変数は、今後所定の箇所では、集合的に論理値ネ
ットリストという言い方をすることがある。
【0073】処理の所定のレベル、level iにおいて、
すべてのノードは変数Viに関連付けられる。最も高いレ
ベル方向のlevel iのレベルは、level i-1として理解さ
れ、level i-1のノードのすべては変数Vi-1に関連付け
られる。level i-1より上のレベルはlevel i-2であると
理解され、変数Vi-2に関連付けられるノードを含む。同
様に、level iより下のレベルに対しても同様の名前の
付け方をする。
【0074】Viに対する両方の可能なバイナリ値が、複
数の順序づけられた変数の他方の割当値および含意値
(つまり、論理値ネットリスト)に基づいて論理的矛盾
となった場合、一番低いレベルへこれ以上進んでもSAT
の解は得られないことは明らかである。解を見つけれら
れそうもないノードに進んで時間を無駄にするのを避け
るために、バックトラッキングが実行される。特に、最
大限に時間を節約するために、非時系列的バックトラッ
キングが実行される。特に、両方の可能なバイナリ値が
現在の論理値ネットリストに対して論理的矛盾となるよ
うな変数Viは、今後ブロッキング変数と呼ばれる。
【0075】非時系列的なバックトラッキングは、詳細
には以下のように実行される。ブロッキング変数はリー
フ変数として設定される。リーフ変数は、下記のよう
に、矛盾がクリアされるまで第1値と第2値の間で切り
替わることを特徴とする。
【0076】それから変数Vi-1が考慮される。変数Vi-1
は現在、考慮中の上位レベル変数、または便宜上バック
トラッキング変数と称される。バックトラッキング変数
についての可能性は2つある。1つは、バックトラッキ
ング変数が第1値を持っていることと、もう1つの可能
性として、バックトラッキング変数が第2値を持ってい
ることである。これら2つの可能性について各々順番に
説明する。
【0077】まず、1番目の可能性について述べる。バ
ックトラッキング変数がすでに第1値を持っている場
合、そのバックトラッキング変数ははじかれる。言い換
えれば、バックトラッキング変数は第1値にかわって第
2値を割り当てられる。バックトラッキング変数が第2値
を割り当てられた後、結果として現在の矛盾にならない
ようなリーフ変数の割当があるかどうかを決定する。つ
まり、第2値を持つバックトラッキング変数及び第1値
を持つリーフ変数を使って、論理値ネットリストは論理
的一貫性を調べられる。矛盾が見つかった場合、リーフ
変数は第2値に飛ぶ。そこで、第2値を持つバックトラッ
キング変数で、今度は第2値を持つリーフ変数とを使っ
て、論理値ネットリストの論理的一貫性を検査する。第
2値に飛んだ変数Vi-1がリーフ変数Viのどちらかの可能
な値に対して矛盾を生じる場合、次に高いレベル変数
(つまり、変数Vi-2)がバックトラッキング変数として
指名され、同時に変数Vi-1が自由な状況に置かれる。
【0078】次に2番目の可能性について述べる。バッ
クトラッキング変数にすでに第2値が割り当てられてい
る場合には、第1値は前の矛盾に陥ってしまったに違い
ない。このため、バックトラッキング変数にすでに第2
値が割り当てられている場合には、そのバックトラッキ
ング変数ははじかれない。かわって、次に高いレベルの
変数(つまり、変数Vi-2)がバックトラッキング変数と
して指名され、同時に変数Vi-1は自由な状況に置かれ
る。
【0079】次に高いレベルの変数が上記の2つの可能
性のいずれかでバックトラッキング変数として指名され
た場合、同じ分析結果になる。つまり、新しいバックト
ラッキング変数に関して2つの可能性がある。1つの可
能性としては、バックトラッキング変数が第1値を持っ
ていることと、もう1つの可能性としては、バックトラ
ッキング変数が第2値を持っていることである。
【0080】つまり、前に述べた説明からわかるよう
に、非時系列的バックトラッキングの過程にはブロッキ
ング変数を検出することとそれをリーフ変数として設定
すること、及びリーフ変数として別の値を選ばないでリ
ーフ変数の値を変えることが含まれる。別の言い方をす
れば、その過程にはリーフ変数の値を変えることは含ま
れるが、リーフ変数それ自体を変えることは含まれな
い。
【0081】非時系列的バックトラッキングの過程に
も、バックトラッキング変数の値を変えることと、矛盾
がクリアされるまで、バックトラッキング変数となり得
るまでさらに高いレベルの変数を選ぶことが含まれる。
別の言い方をすると、本発明によれば、バックトラッキ
ング変数の値とバックトラッキング変数そのものを変え
る過程が含まれる。
【0082】論理的一貫性が現在の論理値ネットリスト
において獲得された時に、バックトラッキングは終わ
る。バックトラッキングが終わった後で、上述した通常
の前方演算が行なわれ、SAT問題に対する解が求められ
る。バックトラッキングから前方演算への切り替えにお
いて、リーフ変数は自由な状況に置かれる。前方演算が
現在のバックトラッキング変数から下方に進む。
【0083】ハードウェア構成 上述の新規非時系列的バックトラッキング・アルゴリズ
ムを実行するためには、状態装置を、時系列的バックト
ラッキングを使ったものから修正しなくてはならない。
本装置の特に有利な所としては、新しくグローバルな信
号を追加しなくてもいいことと含意回路を修正しなくて
もいいことである。
【0084】図6に非時系列的バックトラッキングを実
行するための状態装置を示す。図には以前に概括した複
雑なバックトラッキング手順を反映させるために状態と
遷移をもっと多く示した。状態装置はより大きくなった
が、追加の状態についてたった1つの符号化ビットが余
計に必要となるだけである。
【0085】図6の状態装置の意味はこのフィールドに
おいてほぼ自明のよく知られたものであるが、簡単に説
明する。
【0086】各変数はinit状態で始まる。init状態で
は、変数Viは、自由な状態かまたは含意された状況にあ
る。init状態では、変数が含意されていない場合(つま
り、 ならば)、Eil信号はinitからactive 1へ遷移させる。a
ctive 1にある時、変数Viは、この実施例では1となる
第1値を与えられる。矛盾がないならば、すべての含意
が決まるまでGChangeは高くなり、状態は正常に遷移し
ない。GChangが低くなると、含意が決まる。矛盾がない
ということはGContraが低いということを意味する。GCh
angとGContraが両方とも低い場合、passive 1への遷移
に合うよう状況を満足させる。passive 1への移行はE01
を0の出力にEorを1の出力にする。Eorを1の出力にす
ると、装置を右に駆動させて、次に低いレベルの変数V
i+1 に対応する。
【0087】active 1にある時は、変数Viに第1値を与
えることを思い起こして欲しい。この値が論理値ネット
リストで結果的に矛盾となる場合、GContra信号を受信
する。含意が決まったかどうか、GContra信号を受信す
るとすぐに、active 0への移行に合うよう状況を満足さ
せる。active 0への移行はE01を0の出力にEorを0の出
力にする。言い換えれば、active 0への移行は、現在ア
クティブな状態装置をアクティブなままにする。
【0088】active 0にある時は、変数は第2値を与え
られる。本実施例では0である。変数に第2値が与えら
れると、論理値ネットリスト全体を通して含意が各含意
回路によって決まる。含意が矛盾なく決まるとすると、
GChangeは低くなり、GContraも低い。こうした信号はpa
ssive 0へ移行するための状況を満足させる。active0か
らpassive 0への移行はE01を0の出力にEorを1の出力
にする。Eorを1の出力にすると、装置を右に駆動させ
て、次に低いレベルの変数Vi+1に対応する。
【0089】状態init, active 1, passive 1, active
0, passive 0に関する前述の動作は、時系列的バックト
ラッキングを使った前述の実施例とほぼ同じである。非
時系列的バックトラッキングを使った本発明による実施
例が異なっている点をこれから説明する。
【0090】より大きな1組の隣り合う状態装置におい
て、3つの隣り合った状態装置があるとする。これらの
3つの装置の中で、1番低い装置が変数Viに相当し、次
に高いレベルの装置が変数Vi-1に相当し、次にさらに高
いレベルの装置が変数Vi-2に相当する。便宜上、これら
3つの装置をVi-2装置、Vi-1 装置、Vi装置と呼ぶこと
にする。
【0091】前方演算中、Vi-2は、矛盾もなく第1値を
割り当てられ、passive 1状態に移行し、かつVi-1とVi
はまだ自由状況にあるとする。Vi-2装置はpassive 1に
移行したので、Eor=1を出力する。Vi-2装置からの出力E
orはVi-1装置によってEi1 =1として受信される。この信
号がVi-1装置をactive 1状態に移行させ、第1値(つま
り、1)がVi-1に割り当てられた。含意が矛盾なく(つ
まり、GContraが低く)決まったとすれば(つまり、GCh
angeが低い)、Vi-1装置はpassive 1に移行し、移行時
にEor=1を出力した。この例では、Vi-1=1の割当がVi
状況を自由な状態から変えなかったこともわかる。
【0092】Vi装置はVi-1装置からEorをEi1として受信
し、Viは自由な状態にあるので、Vi 装置はinitからacti
ve 1に移行した。active 1では、Vi装置は第1値をVi
割り当てた(つまり、Vi=1)。第1値にViが割り当てら
れたら、含意回路は、論理値ネットリストがまだ論理的
に一貫性があるかどうか、またはVi=1が矛盾を生じるか
どうかを決めた。この例では、Vi=1は論理的に矛盾とな
ったことが推定される。こうして、矛盾を検出した含意
回路は、LContra=1を出力する。この信号は、図4に示
す他のLContra信号と一緒に論理和をとられ、GContra=1
になった。GContraに対して高い値を受信したら、Vi
置はactive 1状態からactive 0状態へ移行した。
【0093】active 0では、Vi装置は第2値をViに割り
当てた(つまり、Vi=0)。再び、含意回路はこの割当が
矛盾を生ずるかどうかを判定した。この例では、Vi=0は
論理的矛盾になったことがわかる。つまり、Viに対し
て、第1値も第2値の割当も論理値ネットリスト内で論
理的矛盾となった。また別の言い方をすると、Viは現在
の論理値ネットリストに関してその時ブロッキング変数
であった。従って、バックトラッキングが必要となる。
【0094】第2値のViへの割当に応じてVi装置により
受信されたGContra信号は、Vi装置をactive 0からleaf
1状態に移行させた。Vi装置がactive 0からleaf 1状態
に移行した時に、E01=1及びEor=0を出力した。leaf 1の
状態では、Vi装置はVi=1を設定した。つまり、ブロッキ
ング変数がリーフ変数として設定された。
【0095】状態装置における状態は、コンフィギュレ
ーション可能なハードウェアにおいて、ハードウェアと
しての手段を与えられる。ブロッキング変数を証明し、
かつリーフ変数として設定する前述の状態を実行するハ
ードウェアは、ブロッキング変数をリーフ変数とみなす
ための手段の具体的例として理解することができる。
【0096】Vi装置によるE01=1の出力は、Vi-1装置に
よってEir=1として受信された。Vi-1 装置はpassive 1状
態にあった。このため、Vi-1装置がEir=1を受信した
際、Vi-1 装置をbk 0 a状態に移行させた。Vi-1装置は、
Vi装置がleaf 1状態に移行したのとほぼ同じに、bk 0 a
状態に移行した。bk 0 a状態では、Vi-1装置はVi-1を1
から0に移行した。つまり、bk 0 aでは、Vi-1装置はV
i-1=0を割り当てた。
【0097】上述のように、Vi-2=1でVi-2装置はpassiv
e 1にあり、Vi-1=0でVi-1装置はbk0 a状態にあり、Vi
置=1でVi装置はleaf 1にある。Viが両方の可能な値に対
して矛盾となり、それゆえ現在の論理値ネットリストに
関してブロッキング変数であった時、Viはリーフ変数と
して設定されていたことが解かった。次に高いレベルの
変数(つまり、Vi-1)はバックトラッキング変数となっ
た。バックトラッキング変数に関係して2つの可能性が
あった。第1値が割り当てられていた可能性と、第2値
が割り当てられていた可能性がある。バックトラッキン
グ変数が第1値を持っていたので、バックトラッキング
変数は際2値に飛ばされた。リーフ変数Viにも第1値が
割り当てられていた。
【0098】Vi-1に第2値(Vi-1=0)がbk 0 aの状態で
割り当てられ、またViに第1値が割り当てられた時、含
意回路は論理値ネットリストにおける論理的一貫性を調
べた。この例では、矛盾が見つかりGContraが高くなっ
たことがわかる。
【0099】GContraが高くなるとすぐに、Vi-1装置及
びVi装置は移行した。特に、Vi-1装置はbk 0 b状態に移
行し、Vi装置はleaf 0状態に移行した。bk 0 b状態で
は、Vi -1装置はバックトラッキング変数Vi-1を第2値で
保持していた。 leaf 0状態では、Vi装置はリーフ変数V
iを第2値にはじいた(つまり、Vi=0)。含意回路は、
バックトラッキング変数Vi-1とリーフ変数をそれぞれ第
2値で使って(つまり、どちらも0)、論理値ネットリ
ストにおける論理的一貫性をチェックした。
【0100】この例では、矛盾が見つかり、GContraが
高くなったことがわかる。GContraが高くなるとすぐ
に、3つの装置がすべて影響を受けた。
【0101】特に、Vi装置はleaf 0からleaf 1に逆戻り
し、その結果Vi=1になった。つまり、リーフ変数はそれ
自体は同じままであったが、その矛盾を検出すると値を
変えた。
【0102】Vi-1装置はbk 0 bからinitに移行した。移
行時に、E01=1及びEor=0を出力した。init状態では、変
数Vi-1は自由な状況に設定された。
【0103】Vi-1装置によって出力されたE01=1はVi-2
装置によってEir=1として受信された。Vi-2装置へのこ
うした入力により、状態がpassive 1からbk 0 aへ移行
された。つまり、変数Vi-2はバックトラッキング変数に
なった。bk 0 aでは、Vi-2の値は第2値に設定された
(つまり、0)。
【0104】こうしてVi-2装置はVi-2=0でbk 0 aの状態
にあり、Vi-1装置はVi-1が自由な状況でinit状態にあ
り、Vi装置はVi=1でleaf 1の状態にあった。Vi-1がバッ
クトラッキング変数で第2値を割り当てられていた時、
また矛盾がリーフ変数Viの両方の値に対して見つかった
時、バックトラッキング変数の状況は自由(free)に設定
され、またバックトラッキング変数は次に高いレベルの
変数Vi-2に設定されたことに気づく。
【0105】この時点で、含意回路は、Vi-2=0、Vi-1
自由、Vi=1で、論理値ネットリストにおける矛盾をチェ
ックした。この例では、矛盾が見つからなかったことが
わかる。こうして、含意のすべてが決まると(つまり、
GChangeが低くなると)、GContra信号は低いレベルにと
どまった。
【0106】GChangeとGContraを両方低くすると、3つ
の装置は以下のように影響を受けた。Vi-2装置はbk 0 a
からpassive 0に移行した。移行時に、E01=0及びEor=1
を出力した。制御がVi-2装置にもどると、Vi-2装置はin
it状態に移行し制御を次に高いレベルに渡すことが図6
から明らかである。これは上述の非時系列的バックトラ
ッキングのやり方と一致している。Vi-2装置がバックト
ラッキング変数になって、すでに第2値を持っていると
(つまり、Vi-2が0に設定されていると)、Vi -2レベル
ですべきチェックはこれ以上ないし、チェックはもっと
高いレベルで進められなければならない。けれども、本
例では、Vi-2装置はpassive 0にとどまっている。
【0107】GChangeとGContraが両方とも低くなると、
Vi-1装置も影響を受けた。特に、Vi -1装置は変数Vi-1
自由な状況でinit状態にあった(つまり、含意値がな
い)。含意回路によって新たに矛盾をチェックしてもV
i-1に対して何も値が含意されていなかったならば、V
i-1装置はactive 1に移行したであろう。
【0108】GChangeとGContraの両方が低くなると、Vi
装置も影響を受けた。特に、Vi装置はVi=1でleaf 1状態
からinit状態に移行した。init状態では、変数Viは自由
な状況に設定された。
【0109】leaf 1及びleaf 0状態を実行するハードウ
ェアを、リーフ変数の値を変える手段の具体的な例とし
て考えることができる。リーフ変数を探索する状態装置
から次の状態装置において、bk 0 a及び bk 0 b状態を
実行するハードウェアを、同様にリーフ変数のレベルよ
りももっと高いレベルで最初のバックトラッキング変数
を設定して変えるための手段として理解することもでき
る。同じように、最初にバックトラッキング変数を持っ
た状態装置から次の状態装置においてbk 0 a及びbk 0 b
状態を実行するハードウェアを、1番目のバックトラッ
キング変数が論理的矛盾を発生した時に、2番目のバッ
クトラッキング変数を設定して変えるための手段として
理解することもできる。
【0110】前述の例が示すように、本発明の実施例は
再コンフュギュレーション可能なハードウェアを用いた
非時系列的バックトラッキングのために提供された。
【0111】問題の特徴に応じて、コンフュギュレーシ
ョン可能な演算処理を実施すると、ソフトウェアSATソ
ルバー上のスピードを著しく上げることができるし、非
時系列的バックトラッキングの機能を持ったハードウェ
ア・ソルバーは、時系列的バックトラッキングの機能を
持ったハードウェア・ソルバー以上のスピードを上げる
ことができる。
【0112】けれども、加速を有益にするためには、ハ
ードウェア・コンパイル時間とコンフィギュレーション
時間を考慮に入れたとしても、高い性能が提供されなけ
ればならない。このため、主にコンフュギュレーション
可能なハードウェア技術は、主にSAT問題に関しては大
変長いGRASP実行時間(数時間または数日)で使用され
るか、またはGRASPがアボートした場合に使用されるこ
とが薦められる。そのような場合、必要なハードウェア
合成時間は許容できる。
【0113】全体的に、簡単なSAT問題ならソフトウェ
アで解くことができ、非常に大きい問題、今ならしばし
ばタイムアウトになるような問題なら、ハードウェア・
コンパイラーを呼び出し、FPGAボードをコンフィギュレ
ーションしてその問題を解くのを手伝うようなシステム
が構想されてある。
【0114】構想上のハードウェア・プラットフォーム
はFPGAボードが外部接続または入出力バス経由で取り付
けられた高性能ワークステーションである。ワークステ
ーションそれ自体の上で動作するソフトウェアによって
扱える問題は、解くのが簡単だが、FPGAボードで扱える
ものは動作時間が長い。FPGAボードそのものに対する必
要要件には、ある程度、解かれる問題のハードウェアサ
イズが関係する。これについては次の項で述べる。
【0115】本発明の方法に対するハードウェアの必要
条件は解く公式のサイズと複雑さに関係する。本発明に
よるSAT解法のためのテンプレートに基づく設計ではメ
モリを必要としないし、問題解決前に、または解決中に
入力データをダウンロードすることもない。かわりに、
問題全体がFPGAのコンフュギュレーション可能な論理ブ
ロック(CLBs)に埋め込まれている。
【0116】SATソルバーのCLB必要条件は当然解かれる
べき公式によって広く変わってくる。DIMACSのベンチマ
ーク全体で中間のCLB必要条件は3655である。全体的に
は、これらの問題のほんの少ししか(30%未満)現在
のFPGAチップのCLB極限値の1000または2000の範囲内に
入らない(FPGAチップについてもっと詳しくは、ここに
具体化された以下の有益な背景文献を参照のこと。Prog
rammable Logic DataBook(プログラム可能な論理デー
タブック)1994年カリフォルニア、サンノゼ、Xilinx
社)。しかしながら、ほとんどが10未満のFPGA回路で
ある。
【0117】使用される正規のトポロジィのため、FPGA
回路全体の設計を分割することは簡単なことである。実
験では、発明者らは、もともとMIT Virtual Wiresの労
作の一部として発達したIKOS SLI論理エミュレーション
・システムにおける分割及びピン多重化技術を使用し
た。MIT Virtual Wiresの労作に関するもっと詳しい情
報は、背景情報を参照して具体化された以下の文献を参
照のこと。
【0118】・J. Babb、 R. Tessier、 A. Agarwal.
Virtual Wires: FPGAに基づく論理エミュレーターにおけるピン制限値の
克服 In Proceeding & IEEE Workshop on FPGA-based Custom
Computing Machines (FPGAに基づくカスタム・コンピュータ装置に関する進
め方及びIEEE研究会) ページ142-151, 1993年4月 この分割ソフトウェアは複数の内部チップ信号を多重し
て同じ物理ピンを使い、それによって、しばしばFPGA設
計のCLB利用を制限するピンの制限を回避する。さら
に、ソフトウェアは、ハードウェアのサイクル回数にほ
とんど影響を与えず、この多重化を実行する。
【0119】全体的に、いくつかの重要な点で本発明は
以下のような貢献をする。まず、コンフュギュレーショ
ン可能なハードウェア実行による、公式特定のブール関
数式充足可能性解決のためのシステム設計を提供する。
新規設計のハードウェア必要条件はかなり少なくなっ
た。さらに、本発明によるハードウェアの性能結果は、
コンフィギュレーション可能なハードウェア的方法が、
最新のソフトウェアに基づく技術さえ格段に上回る可能
性を持っていることを示している。
【0120】また、本発明は、コンフュギュレーション
可能なハードウェアで実行することができる非時系列的
バックトラッキングについて新しい方法を提供してい
る。けれども、本発明による非時系列的バックトラッキ
ングは他のやり方でも実行できる。例えば、コンフュギ
ュレーション可能なハードウェアを持たないコンピュー
タシステムにおいても実行できる。つまり、本発明を具
体化するコンピュータシステムは非時系列的バックトラ
ッキング方式を実行可能にするハードウェアとソフトウ
ェアを含む。
【0121】同様に、上述した発明は、これから説明す
るように、コンピュータプログラム製品として具体化で
きる。
【0122】実際には、コンピュータシステムに上記方
法及び本発明の動作を実行可能にさせるソフトウェア
は、さまざまなメディアのうちどんなメディア上にも提
供される。特に、このソフトウェアは、コンフィギュレ
ーション可能なハードウェアを持ったシステム、あるい
はコンフィギュレーション可能なハードウェアを持たな
いシステムに関連付けることができる。前者の場合は、
ソフトウェアはコンフュギュレーション可能な構造を含
む。
【0123】さらに、本発明の方法及び動作は、プログ
ラム可能な言葉で書かれたステートメントの形で実際に
実行される。そのようなプログラム可能な言葉によるス
テートメントは、コンピュータで実行されると、そのス
テートメントの特定する内容に一致するようコンピュー
タを動かす。さらに、発明に一致するようにコンピュー
タシステムを動かすソフトウェアは、もともとの原始コ
ード、アセンブリコード、オブジェクトコード、機械
語、圧縮版または暗号化された版など、これらに限ら
ず、こうした形態において、形態の数に関係なく、提供
される。
【0124】この技術を生かす手段の1つとして薦めら
れるのが、ここで使われているように、「メディア」、
つまり「コンピュータ読み取り可能なメディア」であ
る。それには、ディスケット、テープ、CD、集積回路、
カートリッジ、通信回路による遠隔地伝送、その他コン
ピュータにて読み取り可能な同様の記録媒体が含まれ
る。例えば、本発明に従ってコンピュータシステムが動
作できるようなソフトウェアを提供するためには、供給
する人が、ディスケットを用意したり、衛星放送を通し
てある形態でソフトウェアを伝送したり、あるいは直接
電話回線やまたはインターネットを通してソフトウェア
を伝送する。
【0125】使用可能なソフトウェアはディスケット上
に書かれていたり、集積回路にストアされていたり、通
信回線上を運ばれていたりするかもしれないが、このア
プリケーションの目的のためには、コンピュータにて読
み取り可能な記録媒体がソフトウェアを「記録する」と
いう言い方が適切であろう。このように、「記録する」
という言葉は、ソフトウェアがコンピュータにて読み取
り可能な記録媒体と関連する前述の方法などを包括する
言い方である。
【0126】このため、簡単に言うと、「プログラム製
品」という言葉は、コンピュータにて読み取り可能な記
録媒体が、前記説明した発明に従って、コンピュータシ
ステムを動作させるソフトウェアをどんな形態であれ記
録したコンピュータにて読み取り可能な記録媒体を言う
ために使用される。こうして、本発明は、本発明に従っ
てコンピュータに上述した非時系列的バックトラッキン
グ方式を実行させるソフトウェアを記録したプログラム
製品においても具体化される。
【0127】
【発明の効果】まず、コンフュギュレーション可能なハ
ードウェア実行による、公式特定のブール関数式充足可
能性解決のためのシステム設計を提供する。新規設計の
ハードウェア必要条件はかなり少なくなった。
【0128】さらに、本発明によるハードウェアの性能
結果は、コンフィギュレーション可能なハードウェア的
方法が、最新のソフトウェアに基づく技術さえ格段に上
回る可能性を持っていることを示している。
【図面の簡単な説明】
【図1】 1次検索アルゴリズムのための擬似コードを
示す図である。
【図2】 含意および矛盾を検出するための回路の一例
を示す図である。
【図3】 含意および矛盾を検出するための回路の他の
例を示す図である。
【図4】 全体的トポロジィを示す図である。
【図5】 時系列的バックトラッキングを行なう装置の
状態を示す線図である。
【図6】 非時系列的バックトラッキングを行なう装置
の状態を示す線図である。
【図7】 基本的なバックトラッキングのための検索例
を示す図である。
【図8】 非時系列的バックトラッキングのための2つ
の検索例を示し、ハードウェア・アルゴリズムにおける
アルゴリズムを示す図である。
【図9】 非時系列的バックトラッキングのための2つ
の検索例を示し、ソフトウェア・アルゴリズムを示す図
である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 プラナブ アシャー アメリカ合衆国、ニュージャージー 08540、プリンストン、4インディペン デンス ウェイ、エヌ・イー・シー・ユ ー・エス・エー・インク内 (72)発明者 シャラッド マリク アメリカ合衆国、ニュージャージー 08544、プリンストン、ピーオーボック ス 36、ニューサウスビルディング、プ リンストン ユニバーシティー内 (72)発明者 マーガレット マリオノシ アメリカ合衆国、ニュージャージー 08544、プリンストン、ピーオーボック ス 36、ニューサウスビルディング、プ リンストン ユニバーシティー内 (72)発明者 ペイジン ツォング アメリカ合衆国、ニュージャージー 08544、プリンストン、ピーオーボック ス 36、ニューサウスビルディング、プ リンストン ユニバーシティー内 (56)参考文献 特開 平10−91612(JP,A) 特開 平5−28126(JP,A) 須山敬之,外3名,”FPGAと論理 合成システムを用いた充足可能性問題の 解法”,電子情報通信学会技術研究報告 (VLD),電子情報通信学会,平成8 年,Vol.96,No.426,p.167〜 174 Makoto Yokoo,外2 名,”Solving Satisfi ability Problems U sing Field Program mable Gate Arrays: First Results”,Lec ture Notes in Comp uter Science,平成8年, p.497−509 J.P.Marques Silv a,外1名,”GRASP−A New Search Algorithm for Satisfiabilit y”,ICCAD,IEEE,平成8 年,p.220〜227 T.Suyama,外2名,”Sol ving Satisfiabilit y Problems on FPGA s”,Lecture Notes i n Computer Scienc e,平成8年,p.136〜145 Miron Abramovici, 外1名,”Satisfiabilit y on Reconfigurabl e Hardware”,Lectur e Notes in Compute r Science,平成8年,p448 −456 Y.Hamadi,外1名,”Rec onfigurable Archit echtures:A New Vis ion for Optimizati on Problems”Lectur e Notes in Compute r Science,平成9年,p. 209〜221 (58)調査した分野(Int.Cl.7,DB名) G06F 17/50 G06F 17/10 G06F 9/44 550 JICSTファイル(JOIS)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 入力された検索問題を解くためのコンフ
    ィギュレーション可能な評価装置において、 コンフュギュレーション命令を有するメモリと、 前記コンフィギュレーション命令に従ってコンフィギュ
    レーション可能なハードウェアシステムとを備え、 前記コンフィギュレーション命令は、前記入力された検
    索問題の現在の問題に基づいて検索を実行するよう前記
    ハードウェアシステムをコンフィギュレーションし、 かつ、前記コンフィギュレーション命令は、前記入力さ
    れた検索問題の各々について、前記検索中に行なわれる
    バックトラッキングが、前記ハードウェアシステムの制
    御下で非時系列的バックトラッキングを含むよう前記ハ
    ードウェアシステムをコンフィギュレーションし、さらに 前記コンフュギュレーション命令は 前記入力さ
    れた検索問題がブール関数式充足可能性問題になり、か
    つ前記ブール関数式充足可能性問題に対して、前記検索
    が前記非時系列的バックトラッキングを使ったブール関
    数式SAT解決検索となるように、前記コンフィギュレー
    ション命令が前記ハードウェアシステムをコンフィギュ
    レーションすると共に 前記コンフィギュレーション命令が前記ハードウェアシ
    ステムをコンフィギュレーションすることにより ブロッキング変数をリーフ変数としてみなすための手段
    と、 リーフ変数の値を変えるための手段と、 リーフ変数のレベルよりも高いレベルで第1のバックト
    ラッキング変数を設定し変えるための手段と、 第1のバックトラッキング変数が論理的矛盾を生成する
    時、第1のバックトラッキング変数のレベルよりも高い
    レベルで第2のバックトラッキング変数を設定し変える
    ための手段とを形成すること を特徴とするコンフィギュ
    レーション可能な評価装置。
  2. 【請求項2】 入力された検索問題を解くためのコンフ
    ィギュレーショ ン可能な演算処理方法において 前記入力された検索問題の現在の問題に基づいて検索を
    実行するようハードウェアシステムをコンフィギュレー
    ションし、 かつ、前記入力された検索問題の各々について、前記検
    索中に行なわれるバックトラッキングが、前記ハードウ
    ェアシステムの制御下で非時系列的バックトラッキング
    を含むよう前記ハードウェアシステムをコンフィギュレ
    ーションし さらに 前記入力された検索問題がブール関数式充足可
    能性問題になり、かつ前記ブール関数式充足可能性問題
    に対して、前記検索が前記非時系列的バックトラッキン
    グを使ったブール関数式SAT解決検索となるように、前
    記ハードウェアシステムをコンフィギュレーションする
    と共に 変数ネットリストの前記非時系列的バックトラッキング
    において ブロッキング変数をリーフ変数としてみなし、 リーフ変数の値を変え、 第1のバックトラッキング変数として、リーフ変数のレ
    ベルよりも高いレベルで変数を設定し、かつ第1のバッ
    クトラッキング変数の値を変え、 リーフ変数の値と第1バックトラッキング変数の値に基
    づいて論理的一貫性を求めてネットリストを評価し、 その評価が論理的矛盾を生じた時は、第2バックトラッ
    キング変数として、第1バックトラッキング変数のレベ
    ルよりも高いレベルの変数のうち1つの異なる変数を設
    定し、かつその異なるバックトラッキング変数の値を変
    えることによって、バックトラッキング変数そのものを
    変え、 リーフ変数の値と第2バックトラッキング変数の値に基
    づいて論理的一貫性を求めてネットリストを評価するこ
    を特徴とするコンフィギュレーション可能な演算処理
    方法。
  3. 【請求項3】 入力された検索問題を解くためのコンフ
    ィギュレーション可能な演算処理方法において 前記入力された検索問題の現在の問題に基づいて検索を
    実行するようハードウェアシステムをコンフィギュレー
    ションし、 かつ、前記入力された検索問題の各々について、前記検
    索中に行なわれるバッ クトラッキングが、前記ハードウ
    ェアシステムの制御下で非時系列的バックトラッキング
    を含むよう前記ハードウェアシステムをコンフィギュレ
    ーションし さらに 前記入力された検索問題がブール関数式充足可
    能性問題になり、かつ前記ブール関数式充足可能性問題
    に対して、前記検索が前記非時系列的バックトラッキン
    グを使ったブール関数式SAT解決検索となるように、前
    記ハードウェアシステムをコンフィギュレーションする
    と共に 各変数がそれぞれのレベルを持ち、該変数のセットが論
    理値ネットリストを形成し、レベル毎に順序づけられた
    ブール関数式変数のセットを積標準型で表現するための
    充足変数割当を決定するための、前記非時系列的バック
    トラッキングにおいて、 ブロッキング変数をリーフ変数としてみなし、リーフ変
    数の値を変え、 第1のバックトラッキング変数として、リーフ変数のレ
    ベルよりも高いレベルで変数の1つを設定し、かつ第1
    のバックトラッキング変数の値を変え、 リーフ変数の値と第1バックトラッキング変数の値に基
    づいて論理的一貫性を求めて論理値ネットリストを並行
    に評価し、 論理的矛盾を生じた評価に対しては、第2バックトラッ
    キング変数として、第1バックトラッキング変数のレベ
    ルよりも高いレベルの変数のうち1つの異なる変数を設
    定し、かつその異なるバックトラッキング変数の値を変
    えることによって、バックトラッキング変数そのものを
    変え、 リーフ変数の値と第2バックトラッキング変数の値に基
    づいて論理的一貫性を求めて論理値ネットリストを並行
    に評価すること を特徴とするコンフィギュレーション可
    能な演算処理方法
  4. 【請求項4】 入力された検索問題を解くためのコンフ
    ィギュレーション可能な演算処理方法において 前記入力された検索問題の現在の問題に基づいて検索を
    実行するようハードウェアシステムをコンフィギュレー
    ションし、 かつ、前記入力された検索問題の各々について、前記検
    索中に行なわれるバックトラッキングが、前記ハードウ
    ェアシステムの制御下で非時系列的バックトラッキング
    を含むよう前記ハードウェアシステムをコンフィギュレ
    ーションし さらに 前記入力された検索問題がブール関数式充足可
    能性問題になり、かつ前記ブール関数式充足可能性問題
    に対して、前記検索が前記非時系列的バックトラッキン
    グを使ったブール関数式SAT解決検索となるように、前
    記ハードウェアシステムをコンフィギュレーションする
    と共に それぞれのレベルで順序づけられたブール関数式変数の
    セットを積標準型で表現し、かつ論理値ネットリストを
    形成するための充足変数割当を決定するための、前記非
    時系列的バックトラッキングにおいて、 (a) リーフ変数に関して、リーフ変数値のみを変えるス
    テップで、前記リーフ変数値をブロッキング変数に基づ
    いて決め、 (b) バックトラッキング変数に関して、バックトラッキ
    ング変数そのものとバックトラッキング変数値を変える
    ステップで、前記バックトラッキング変数が前記リーフ
    変数のレベルよりも高いレベルを持ち、 (c) 前記リーフ変数値と前記バックトラッキング変数値
    及び前記バックトラッキング変数そのものに基づいて論
    理的一貫性を求めて前記論理値ネットリストを、平行し
    て評価すること を特徴とするコンフィギュレーション可
    能な演算処理方法
  5. 【請求項5】 前記評価のステップがさらに、 順序づけられた複数の状態装置を備え、各状態装置がブ
    ール関数式変数の1つに相当しそれらの間で個別に順序
    づけられるステップと、 前記複数の状態装置の各々に関して、含意回路を備える
    ステップと、 各含意回路の出力を結合して、前記論理値ネットリスト
    が論理的に一貫性がないことを示すグローバルな矛盾信
    号を出力するステップとを含むこと を特徴とする請求項
    4に記載のコンフィギュレーション可能な演算処理方
  6. 【請求項6】 前記結合ステップがさらに、前記論理値
    ネットリストのすべての遷移的含意が決定されたかどう
    かを示すグローバル変更信号を提供することを含むこと
    を特徴とする請求項5に記載のコンフィギュレーション
    可能な演算処理方法
  7. 【請求項7】 入力された検索問題を解くためのコンフ
    ィギュレーション可能なハードウェアシステムの評価を
    行なうコンピュータシステムにおいて、 プロセッサーと、 前記プロセッサーに以下の処理を実行させるソフトウェ
    ア命令を含むメモリとを備え、 前記ソフトウェア命令は、前記入力された検索問題の現
    在の問題に基づいて検索を実行するよう前記ハードウェ
    アシステムをコンフィギュレーションし、 かつ、前記ソフトウェア命令は、前記入力された検索問
    題の各々について、前記検索中に行なわれるバックトラ
    ッキングが、前記ハードウェアシステムの制御下で非時
    系列的バックトラッキングを含むよう前記ハードウェア
    システムをコンフィギュレーションし さらに 前記 ソフトウェア命令は 前記入力された検索問
    題がブール関数式充足可能性問題になり、かつ前記ブー
    ル関数式充足可能性問題に対して、前記検索が前記非時
    系列的バックトラッキングを使ったブール関数式SAT解
    決検索となるように、前記コンフィギュレーション命令
    が前記ハードウェアシステムをコンフィギュレーション
    すると共に それぞれのレベルで順序づけられたブール関数式変数の
    セットを積標準型で表現し、かつ論理値ネットリストを
    形成するための充足変数割当を決定する 前記非時系列
    的バックトラッキングにおいて、 (a) リーフ変数に関して、リーフ変数値のみを変えるス
    テップで、前記リーフ変数値をブロッキング変数に基づ
    いて決め、 (b) バックトラッキング変数に関して、バックトラッキ
    ング変数そのものとバックトラッキング変数値を変える
    ステップで、前記バックトラッキング変数が前記リーフ
    変数のレベルよりも高いレベルを持ち、 (c) 前記リーフ変数値、前記バックトラッキング変数値
    及び前記バックトラッキング変数そのものに基づいて論
    理的一貫性を求めて前記論理値ネットリストを、平行し
    て評価するステップとを実行させること を特徴とするコ
    ンピュータシステム
  8. 【請求項8】 コンピュータを制御して入力された検索
    問題を解くためのコンフィギュレーション可能な演算処
    理を行なうプログラムを格納したコンピュータで読み取
    り可能な記録媒体において 前記プログラムが 前記入力された検索問題の現在の問題に基づいて検索を
    実行するようハードウェアシステムをコンフィギュレー
    ションし、 かつ、前記入力された検索問題の各々について、前記検
    索中に行なわれるバックトラッキングが、前記ハードウ
    ェアシステムの制御下で非時系列的バックトラッキング
    を含むよう前記ハードウェアシステムをコンフィギュレ
    ーションし さらに 前記入力された検索問題がブール関数式充足可
    能性問題になり、かつ前記ブール関数式充足可能性問題
    に対して、前記検索が前記非時系列的バックトラッキン
    グを使ったブール関数式SAT解決検索となるように、前
    記ハードウェアシステムをコンフィギュレーションする
    と共に それぞれのレベルで順序づけられたブール関数式変数の
    セットを積標準型で表現し、かつ論理値ネットリストを
    形成するための充足変数割当を決定するための、前記非
    時系列的バックトラッキングにおいて、 (a) リーフ変数に関して、リーフ変数値のみを変えるス
    テップで、前記リーフ変数値がブロッキング変数に基づ
    いて決められ、 (b) バックトラッキング変数に関して、バックトラッキ
    ング変数そのものとバックトラッキング変数値を変える
    ステップで、前記バックトラッキング変数が前記リーフ
    変数のレベルよりも高いレベルを持ち、 (c) 前記リーフ変数値、前記バックトラッキング変数値
    及び前記バックトラッキング変数そのものに基づいて論
    理的一貫性を求めて前記論理値ネットリストを、平行し
    て評価するステップとを含むこと を特徴とするコンピュ
    ータで読み取り可能な記録媒体
JP11076687A 1998-05-27 1999-03-19 再コンフュギュレーション可能なハードウェアシステムの評価装置及び演算処理方法 Expired - Fee Related JP3119646B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/085,646 US6038392A (en) 1998-05-27 1998-05-27 Implementation of boolean satisfiability with non-chronological backtracking in reconfigurable hardware
US09/085646 1998-05-27

Publications (2)

Publication Number Publication Date
JPH11353357A JPH11353357A (ja) 1999-12-24
JP3119646B2 true JP3119646B2 (ja) 2000-12-25

Family

ID=22193026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11076687A Expired - Fee Related JP3119646B2 (ja) 1998-05-27 1999-03-19 再コンフュギュレーション可能なハードウェアシステムの評価装置及び演算処理方法

Country Status (3)

Country Link
US (1) US6038392A (ja)
JP (1) JP3119646B2 (ja)
DE (1) DE19903633A1 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138266A (en) 1997-06-16 2000-10-24 Tharas Systems Inc. Functional verification of integrated circuit designs
US6292916B1 (en) * 1998-12-10 2001-09-18 Lucent Technologies Inc. Parallel backtracing for satisfiability on reconfigurable hardware
US6415430B1 (en) * 1999-07-01 2002-07-02 Nec Usa, Inc. Method and apparatus for SAT solver architecture with very low synthesis and layout overhead
US6877040B1 (en) * 2000-07-25 2005-04-05 Xilinx, Inc. Method and apparatus for testing routability
US6618841B1 (en) 2000-11-06 2003-09-09 Verplex Systems, Inc. Non-assignable signal support during formal verification of circuit designs
US7073143B1 (en) 2000-11-06 2006-07-04 Cadence Design Systems, Inc. Solving constraint satisfiability problem for circuit designs
US6691287B2 (en) 2000-12-14 2004-02-10 Tharas Systems Inc. Functional verification system
US6470480B2 (en) * 2000-12-14 2002-10-22 Tharas Systems, Inc. Tracing different states reached by a signal in a functional verification system
US6629297B2 (en) 2000-12-14 2003-09-30 Tharas Systems Inc. Tracing the change of state of a signal in a functional verification system
US6625786B2 (en) 2000-12-14 2003-09-23 Tharas Systems, Inc. Run-time controller in a functional verification system
US6883134B2 (en) 2001-03-27 2005-04-19 Logicvision, Inc. Method and program product for detecting bus conflict and floating bus conditions in circuit designs
US7418369B2 (en) * 2001-09-07 2008-08-26 The Trustees Of Princeton University Method and system for efficient implementation of boolean satisfiability
US7653520B2 (en) * 2002-07-19 2010-01-26 Sri International Method for combining decision procedures with satisfiability solvers
US7743085B2 (en) 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7342415B2 (en) * 2004-11-08 2008-03-11 Tabula, Inc. Configurable IC with interconnect circuits that also perform storage operations
US7496879B2 (en) * 2004-12-01 2009-02-24 Tabula, Inc. Concurrent optimization of physical design and operational cycle assignment
US7236009B1 (en) * 2004-12-01 2007-06-26 Andre Rohe Operational time extension
US7428721B2 (en) * 2004-12-01 2008-09-23 Tabula, Inc. Operational cycle assignment in a configurable IC
US7443196B2 (en) 2005-07-15 2008-10-28 Tabula, Inc. Configuration network for a configurable IC
US7372297B1 (en) 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US7679401B1 (en) * 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
JP5035239B2 (ja) 2006-03-15 2012-09-26 日本電気株式会社 再構成可能デバイスのテストシステム及びその方法並びにそれに用いる再構成可能デバイス
DE102006041918A1 (de) 2006-09-07 2008-03-27 Mahle International Gmbh Verstellbare Nockenwelle
US7543266B2 (en) * 2006-11-20 2009-06-02 Microsoft Corporation Lock-free state merging in parallelized constraint satisfaction problem solvers
EP2140548A4 (en) * 2007-03-20 2010-06-09 Tabula Inc CONFIGURABLE IC WITH A COUPLING AREA WITH MEMORY ELEMENTS
US8069425B2 (en) 2007-06-27 2011-11-29 Tabula, Inc. Translating a user design in a configurable IC for debugging the user design
WO2009039462A1 (en) * 2007-09-19 2009-03-26 Tabula, Inc. Method and system for reporting on a primary circuit structure of an integrated circuit (ic) using a secondary circuit structure of the ic
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US8131660B2 (en) * 2008-04-08 2012-03-06 Microsoft Corporation Reconfigurable hardware accelerator for boolean satisfiability solver
US8166435B2 (en) * 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US8525548B2 (en) 2008-08-04 2013-09-03 Tabula, Inc. Trigger circuits and event counters for an IC
US10528868B2 (en) * 2010-06-25 2020-01-07 Clayton Gillespie Solving NP-complete problems without hyper polynomial cost
US9031890B2 (en) 2010-08-04 2015-05-12 Sherwin Han Inverse function method of boolean satisfiability (SAT)
US8996435B2 (en) * 2011-08-02 2015-03-31 International Business Machines Corporation Determining invariants in a model
US8984464B1 (en) 2011-11-21 2015-03-17 Tabula, Inc. Detailed placement with search and repair
US9171029B2 (en) * 2013-01-31 2015-10-27 International Business Machines Corporation Performing batches of selective assignments in a vector friendly manner
CN104395900B (zh) 2013-03-15 2017-08-25 北京未名博思生物智能科技开发有限公司 序列比对的空间计数运算方法
WO2014165752A1 (en) 2013-04-04 2014-10-09 Sherwin Han A polynomial method of constructing a non-deterministic (np) turing machine
US9154137B2 (en) 2013-07-04 2015-10-06 Altera Corporation Non-intrusive monitoring and control of integrated circuits
SG11201606976PA (en) * 2014-03-25 2016-09-29 Clayton Gillespie Solving np-complete problems without hyper polynomial cost
US9418137B2 (en) 2014-08-29 2016-08-16 Sherwin Han Database without structured query language

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5377201A (en) * 1991-06-18 1994-12-27 Nec Research Institute, Inc. Transitive closure based process for generating test vectors for VLSI circuit
US5602856A (en) * 1993-04-06 1997-02-11 Nippon Telegraph And Telephone Corporation Test pattern generation for logic circuits with reduced backtracking operations
US5831996A (en) * 1996-10-10 1998-11-03 Lucent Technologies Inc. Digital circuit test generator

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
J.P.Marques Silva,外1名,"GRASP−A New Search Algorithm for Satisfiability",ICCAD,IEEE,平成8年,p.220〜227
Makoto Yokoo,外2名,"Solving Satisfiability Problems Using Field Programmable Gate Arrays:First Results",Lecture Notes in Computer Science,平成8年,p.497−509
Miron Abramovici,外1名,"Satisfiability on Reconfigurable Hardware",Lecture Notes in Computer Science,平成8年,p448−456
T.Suyama,外2名,"Solving Satisfiability Problems on FPGAs",Lecture Notes in Computer Science,平成8年,p.136〜145
Y.Hamadi,外1名,"Reconfigurable Architechtures:A New Vision for Optimization Problems"Lecture Notes in Computer Science,平成9年,p.209〜221
須山敬之,外3名,"FPGAと論理合成システムを用いた充足可能性問題の解法",電子情報通信学会技術研究報告(VLD),電子情報通信学会,平成8年,Vol.96,No.426,p.167〜174

Also Published As

Publication number Publication date
JPH11353357A (ja) 1999-12-24
US6038392A (en) 2000-03-14
DE19903633A1 (de) 1999-12-02

Similar Documents

Publication Publication Date Title
JP3119646B2 (ja) 再コンフュギュレーション可能なハードウェアシステムの評価装置及び演算処理方法
Mailhot et al. Algorithms for technology mapping based on binary decision diagrams and on Boolean operations
US6247164B1 (en) Configurable hardware system implementing Boolean Satisfiability and method thereof
US6298319B1 (en) Incremental compilation of electronic design for work group
Jyu et al. Statistical timing analysis of combinational logic circuits
US7020856B2 (en) Method for verifying properties of a circuit model
US6782511B1 (en) Behavioral-synthesis electronic design automation tool business-to-business application service provider
US7571405B1 (en) Electrical design rule checking expert traverser system
US7949987B1 (en) Method and system for implementing abstract layout structures with parameterized cells
Stok et al. Booledozer: Logic synthesis for asics
US6415430B1 (en) Method and apparatus for SAT solver architecture with very low synthesis and layout overhead
Lavagno et al. Synthesis of hazard-free asynchronous circuits with bounded wire delays
Mousavi et al. Formal semantics and analysis of component connectors in Reo
Berstis The V compiler: automatic hardware design
Lavagno et al. Synthesis of verifiably hazard-free asynchronous control circuits
Brayton The future of logic synthesis and verification
US8904318B1 (en) Method and apparatus for performing optimization using don&#39;t care states
Devadas et al. Verification of asynchronous interface circuits with bounded wire delays
e Silva et al. Realistic delay modeling in satisfiability-based timing analysis
US6434728B1 (en) Activation path simulation equipment and activation path simulation method
Jacobi A study of the application of binary decision diagrams in multilevel logic synthesis
Tibebu et al. Augmenting all solution SAT solving for circuits with structural information
US7836419B1 (en) Method and system for partitioning integrated circuits
Oh et al. Efficient logic-level timing analysis using constraint-guided critical path search
El-Maleh et al. Delay-fault testability preservation of the concurrent decomposition and factorization transformations

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071013

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20081013

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091013

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091013

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101013

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20111013

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20131013

Year of fee payment: 13

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees