JPH08129569A - コンピュータ援用設計方法 - Google Patents
コンピュータ援用設計方法Info
- Publication number
- JPH08129569A JPH08129569A JP7264026A JP26402695A JPH08129569A JP H08129569 A JPH08129569 A JP H08129569A JP 7264026 A JP7264026 A JP 7264026A JP 26402695 A JP26402695 A JP 26402695A JP H08129569 A JPH08129569 A JP H08129569A
- Authority
- JP
- Japan
- Prior art keywords
- node
- computer
- memory
- aided design
- design method
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 大きな縮小順序付け二進決定図式(ROBD
D)を操作するのに実用的なパッドノード方法を備え
る。 【解決手段】 論理回路の縮小順序付け二進決定図式表
示の広さ第1操作は、順序付けられたページアクセス時
間を提供することによって第2のメモリから第1のメモ
リにノードを得るときに出会ったページアクセス時間の
ボットルネックを除去する。ノードへのポインタは、ノ
ードがメモリにおいて位置するアドレスであり、このア
ドレスからノードの位置するメモリブロックが決定され
る。調査表は、ノードの位置するレベルを表示する可変
インデックスにメモリブロック情報を変換するのに使用
される。ITE(if then else)要求の列
はレベルベーシス毎に維持される。
D)を操作するのに実用的なパッドノード方法を備え
る。 【解決手段】 論理回路の縮小順序付け二進決定図式表
示の広さ第1操作は、順序付けられたページアクセス時
間を提供することによって第2のメモリから第1のメモ
リにノードを得るときに出会ったページアクセス時間の
ボットルネックを除去する。ノードへのポインタは、ノ
ードがメモリにおいて位置するアドレスであり、このア
ドレスからノードの位置するメモリブロックが決定され
る。調査表は、ノードの位置するレベルを表示する可変
インデックスにメモリブロック情報を変換するのに使用
される。ITE(if then else)要求の列
はレベルベーシス毎に維持される。
Description
【0001】
【発明の属する技術分野】本発明は、二進決定図式の幅
第1の操作、特に、ロジック回路のコンピュータ援用設
計に通常遭遇した種類の内、縮小順序付け二進図式の操
作に関する。
第1の操作、特に、ロジック回路のコンピュータ援用設
計に通常遭遇した種類の内、縮小順序付け二進図式の操
作に関する。
【0002】
【従来の技術】ブール関数の能率的操作はコンピュータ
援用設計タスクの重要な要素である。ブール関数を操作
する最初の方法は、縮小順序付け二進決定図式(ROB
DD)表示に基づいている。これら方法は、一般的に
は、if then else(ITE)操作に基づい
ている。ROBDD操作に対する前方法はITE操作に
対する深さ第1再帰アルゴリズムに依存して来た。
援用設計タスクの重要な要素である。ブール関数を操作
する最初の方法は、縮小順序付け二進決定図式(ROB
DD)表示に基づいている。これら方法は、一般的に
は、if then else(ITE)操作に基づい
ている。ROBDD操作に対する前方法はITE操作に
対する深さ第1再帰アルゴリズムに依存して来た。
【0003】ブール関数の能率的表示および操作は、多
くの応用において重要である。特に、デジタル回路用コ
ンピュータ援用設計(CAD)において多くの問題が、
一組のブール関数について行われた一連の動作として表
示されるのが可能である。典型的なCAD応用は、組み
合わせロジック検証、順序機械相当物、組み合わせ回路
のロジック最適化、テキストソーティング生成、偽のパ
スおよび象徴的なシュミレーションの前のタイミング検
証を包含する。
くの応用において重要である。特に、デジタル回路用コ
ンピュータ援用設計(CAD)において多くの問題が、
一組のブール関数について行われた一連の動作として表
示されるのが可能である。典型的なCAD応用は、組み
合わせロジック検証、順序機械相当物、組み合わせ回路
のロジック最適化、テキストソーティング生成、偽のパ
スおよび象徴的なシュミレーションの前のタイミング検
証を包含する。
【0004】ROBDDをより理解するためには、幾つ
かの定義が役に立つ。二進決定図式(BDD)は、直接
非輪状グラフ(DAG)である。このグラフは、ブール
関数0および1を表す0または1のラベルが貼られた2
つのシンクノードを持つ。各非シンクノードは、v=1
ならばその1に対応するブール関数、またはv=0なら
ばその0に対応するブール関数を表わす。
かの定義が役に立つ。二進決定図式(BDD)は、直接
非輪状グラフ(DAG)である。このグラフは、ブール
関数0および1を表す0または1のラベルが貼られた2
つのシンクノードを持つ。各非シンクノードは、v=1
ならばその1に対応するブール関数、またはv=0なら
ばその0に対応するブール関数を表わす。
【0005】順序付け二進決定図式(OBDD)は、入
力変数が順序付けられそのOBDDにおける源からシン
クへのあらゆるパスは、順序付けの数が増える順に入力
変数を訪れるという制約を持つBDDである。
力変数が順序付けられそのOBDDにおける源からシン
クへのあらゆるパスは、順序付けの数が増える順に入力
変数を訪れるという制約を持つBDDである。
【0006】縮小順序付け二進決定図式(ROBDD)
は、各ノードが別個のロジック関数を表わすところのR
OBDDである。
は、各ノードが別個のロジック関数を表わすところのR
OBDDである。
【0007】前記if−then−elseすなわちI
TEは、IF F then Gelse Hを計算す
る3つの入力F、G、Hのために定義されたブール関数
を形成する。これは、ITE(F、G、H)=F・G+
F(バー)・Hに等価である。ITEがそのROBDD
の各ノードで行われたロジック関数であるから、それは
そのROBDD上の多くの他の動作に対する有効なビル
ディング用ブロックである。
TEは、IF F then Gelse Hを計算す
る3つの入力F、G、Hのために定義されたブール関数
を形成する。これは、ITE(F、G、H)=F・G+
F(バー)・Hに等価である。ITEがそのROBDD
の各ノードで行われたロジック関数であるから、それは
そのROBDD上の多くの他の動作に対する有効なビル
ディング用ブロックである。
【0008】今日、従来の深さ第1の再帰アルゴリズム
を使用して出会う可能性のない幾億中幾10のノードを
持つROBDDを操作するために必要である。深さ第1
のアルゴリズムは、ROBDD操作のための再帰アルゴ
リズムがコンパクトな深さ第1の再帰実行するのに自然
になるから、ROBDD操作のための選択のアルゴリズ
ムであった。ITE操作の実行のアウトラインは、K.
Brace他による、設計−自動化会議プロシィーディ
ングス(1990年、6月、40−45頁)における
「BDDパッケージの有効的実行」というタイトルの論
文の図1に示されている。その上、深さ第1の再帰の凡
例は、利用されされ、実時間におけるノード上の同形チ
ェックを行うことによる冗長なROBDDの一時的な創
作を除去する。すなわち、同一の属性を持つノードが既
に存在しないならば(図1における第12行参照)、新
しいノードが創作されるだけである。
を使用して出会う可能性のない幾億中幾10のノードを
持つROBDDを操作するために必要である。深さ第1
のアルゴリズムは、ROBDD操作のための再帰アルゴ
リズムがコンパクトな深さ第1の再帰実行するのに自然
になるから、ROBDD操作のための選択のアルゴリズ
ムであった。ITE操作の実行のアウトラインは、K.
Brace他による、設計−自動化会議プロシィーディ
ングス(1990年、6月、40−45頁)における
「BDDパッケージの有効的実行」というタイトルの論
文の図1に示されている。その上、深さ第1の再帰の凡
例は、利用されされ、実時間におけるノード上の同形チ
ェックを行うことによる冗長なROBDDの一時的な創
作を除去する。すなわち、同一の属性を持つノードが既
に存在しないならば(図1における第12行参照)、新
しいノードが創作されるだけである。
【0009】
【発明が解決しようとする課題】しかしながら、前記深
さ−第1のアルゴリズムの使用は、Ochi他によっ
て、コンピュータ援用設計の国際会議プロシィーディン
グス(1993年11月、48−55頁)においてタイ
トルが「非常に大きな二進決定図式の広さ第1の操作」
という論文において述べられているように極端な乱雑メ
モリアクセスから生じる非常に大きなROBDDに対し
て不利である。
さ−第1のアルゴリズムの使用は、Ochi他によっ
て、コンピュータ援用設計の国際会議プロシィーディン
グス(1993年11月、48−55頁)においてタイ
トルが「非常に大きな二進決定図式の広さ第1の操作」
という論文において述べられているように極端な乱雑メ
モリアクセスから生じる非常に大きなROBDDに対し
て不利である。
【0010】また、深さ第1のアプローチでは、幾つか
のトップ変数を持つ新しいITE計算要求が、同一のト
ップ変数を持つ前のITE要求の最終結果が知られた後
でのみ発行されるという特性に特徴がある。図1は連続
メモリアクセスがそのROBDDのF、G、およびHに
おいてパス上の連続ノードに対応することを示す。大き
なROBDDにおける典型的なノードは一般的に次数が
大きいので、ROBDDにおけるパス上でお互いに隣接
する任意の一対のノードが隣接メモリアドレスまたは同
一のパスにおいても創作されることを保証するのが不可
能である。例えば、UNIXメモリ管理において、一ペ
ージの単位で2次記憶から読み出し書き込む。一ページ
のそのサイズは環境に依存する一方、一ページは通常現
在のプロセッサ上のUNIXにおける4KB境界に置か
れたメモリの4KBブロックである。
のトップ変数を持つ新しいITE計算要求が、同一のト
ップ変数を持つ前のITE要求の最終結果が知られた後
でのみ発行されるという特性に特徴がある。図1は連続
メモリアクセスがそのROBDDのF、G、およびHに
おいてパス上の連続ノードに対応することを示す。大き
なROBDDにおける典型的なノードは一般的に次数が
大きいので、ROBDDにおけるパス上でお互いに隣接
する任意の一対のノードが隣接メモリアドレスまたは同
一のパスにおいても創作されることを保証するのが不可
能である。例えば、UNIXメモリ管理において、一ペ
ージの単位で2次記憶から読み出し書き込む。一ページ
のそのサイズは環境に依存する一方、一ページは通常現
在のプロセッサ上のUNIXにおける4KB境界に置か
れたメモリの4KBブロックである。
【0011】2次記憶から一ページをフェッチしてレイ
テンシーすることは、メインメモリからワードをフェッ
チすることより大きいマルチプル命令である。現在のテ
クノロジを使用すると、ページフェッチは、10m秒の
オーダの時間がかかる。もし処理サイズが利用可能なメ
インメモリを越えるならば、メインメモリから2次記憶
にある部分を移動する犠牲を払って直ぐに必要な処理の
部分は2次記憶からメインメモリにのみ移動され得る。
ROBDD操作の場合、移動されたROBDDが余りに
も大きくてメインメモリで適当でないならば、所望のノ
ードがメインメモリに存在しないであろう。従って、R
OBDDノードが移動するたびに、ROBDDノードを
含む完全なページは、最悪の場合には2次記憶からフェ
ッチされなくてはいけない。このような状況は、深さ第
1のアルゴリズムを使用しているワードの操作/創造を
事実上不可能にしてしまうと共に、幾億という興味のあ
るサイズのROBDD用ページフォールトをもたらすで
あろう。
テンシーすることは、メインメモリからワードをフェッ
チすることより大きいマルチプル命令である。現在のテ
クノロジを使用すると、ページフェッチは、10m秒の
オーダの時間がかかる。もし処理サイズが利用可能なメ
インメモリを越えるならば、メインメモリから2次記憶
にある部分を移動する犠牲を払って直ぐに必要な処理の
部分は2次記憶からメインメモリにのみ移動され得る。
ROBDD操作の場合、移動されたROBDDが余りに
も大きくてメインメモリで適当でないならば、所望のノ
ードがメインメモリに存在しないであろう。従って、R
OBDDノードが移動するたびに、ROBDDノードを
含む完全なページは、最悪の場合には2次記憶からフェ
ッチされなくてはいけない。このような状況は、深さ第
1のアルゴリズムを使用しているワードの操作/創造を
事実上不可能にしてしまうと共に、幾億という興味のあ
るサイズのROBDD用ページフォールトをもたらすで
あろう。
【0012】前述したOchi他では、乱雑メモリアク
セスパターンをROBDD操作用広さ第1(BF)反復
アルゴリズムを使用することによって避けることが提案
されている。ROBDD操作が(深さ第1の操作におい
て)パス毎に実行される代わりに、その動作は、各レベ
ルがROBDDにおける特定の可変インデックスに関連
するところのレベル毎に実行される。広さ第1の操作の
直接結果として、同形チェックが実時間で実行されず、
冗長ノードを一時的に発生することが必要になる。
セスパターンをROBDD操作用広さ第1(BF)反復
アルゴリズムを使用することによって避けることが提案
されている。ROBDD操作が(深さ第1の操作におい
て)パス毎に実行される代わりに、その動作は、各レベ
ルがROBDDにおける特定の可変インデックスに関連
するところのレベル毎に実行される。広さ第1の操作の
直接結果として、同形チェックが実時間で実行されず、
冗長ノードを一時的に発生することが必要になる。
【0013】しかしながら、冗長ノードの発生によるオ
ーバーヘッドは、順序付けメモリアクセスパターンから
生じるラン時間における節約の大きさの程度に比べれば
少ない。
ーバーヘッドは、順序付けメモリアクセスパターンから
生じるラン時間における節約の大きさの程度に比べれば
少ない。
【0014】現在の広さ第1のアルゴリズムの意味のあ
る限定としては、「パッドノード」がROBDDに付け
加えられねばならないので、新しいBDDにおけるいか
なるパスの上の次々のノードもそれらのインデックスは
丁度1だけ異なることになる。オリジナルのROBDD
におけるパスに沿う連続ノードがそれらのインデックス
において任意の量だけ異なるため、大量のパッドノード
が加えられなくてはいけないかも知れない。
る限定としては、「パッドノード」がROBDDに付け
加えられねばならないので、新しいBDDにおけるいか
なるパスの上の次々のノードもそれらのインデックスは
丁度1だけ異なることになる。オリジナルのROBDD
におけるパスに沿う連続ノードがそれらのインデックス
において任意の量だけ異なるため、大量のパッドノード
が加えられなくてはいけないかも知れない。
【0015】このようなアルゴリズムを使用すると、多
くのパッドノードの創作を生じる結果となり、全体のノ
ードカウントは多くの回路に対する多岐に亘る要因によ
って増加する。このような欠点は、パッドノードがオリ
ジナルノードと同様に扱われメモリからフェッチされな
くてはいけないためラン時間を意味のある様に増やして
も、アドレス空間限界を付与・構築され得るROBDD
の大きさを限定することによっても現れる。その結果、
パッドノード方法は大きなROBDDを操作するのに非
実用的である。
くのパッドノードの創作を生じる結果となり、全体のノ
ードカウントは多くの回路に対する多岐に亘る要因によ
って増加する。このような欠点は、パッドノードがオリ
ジナルノードと同様に扱われメモリからフェッチされな
くてはいけないためラン時間を意味のある様に増やして
も、アドレス空間限界を付与・構築され得るROBDD
の大きさを限定することによっても現れる。その結果、
パッドノード方法は大きなROBDDを操作するのに非
実用的である。
【0016】そこで、本発明の技術的課題は、大きなR
OBDDを操作するのに実用的なパッドノード方法を備
えたコンピュータ援用設計方法を提供することである。
OBDDを操作するのに実用的なパッドノード方法を備
えたコンピュータ援用設計方法を提供することである。
【0017】
【課題を解決するための手段】本発明によれば、製造す
べき回路に対して縮小順序付け二進決定図式を得るため
のコンピュータ援用設計方法において、製造すべき前記
回路の縮小順序付け二進決定図式の表示を形成するため
に、おのおのが関連付けられたポインタアドレスを持つ
複数のノードを備えるメモリにおいて、前記回路に対す
るブール演算を評価するための幅第1の二進図式操作ル
ーチンを応用する工程と、前記メモリからノードをフェ
ッチせずにノードのポインタアドレスからこのノードの
可変インデックスを決定する工程とを備えることを特徴
とするコンピュータ援用設計方法が得られる。
べき回路に対して縮小順序付け二進決定図式を得るため
のコンピュータ援用設計方法において、製造すべき前記
回路の縮小順序付け二進決定図式の表示を形成するため
に、おのおのが関連付けられたポインタアドレスを持つ
複数のノードを備えるメモリにおいて、前記回路に対す
るブール演算を評価するための幅第1の二進図式操作ル
ーチンを応用する工程と、前記メモリからノードをフェ
ッチせずにノードのポインタアドレスからこのノードの
可変インデックスを決定する工程とを備えることを特徴
とするコンピュータ援用設計方法が得られる。
【0018】
【作用】本発明は、パッドノード方法のための要件を削
除することによって現在公知の広さ第1のROBDD操
作アルゴリズムの上述した従来の限定に打ち勝つ。この
ことを、得られたアルゴリズムは、CPU時間の増加を
無視できるだけにとどめ順序付けられたメモリアクセス
パターンの混乱をほとんどなしに達成する。従って、ペ
ージアクセス時間は、第2のメモリから第1のメモリに
ノードを得るときに以前は起こったボトルネックである
が削除された。その上、本発明は、中間レベル用の付加
ノードを不要とした新規な広さ第1のROBDD操作に
言及する。
除することによって現在公知の広さ第1のROBDD操
作アルゴリズムの上述した従来の限定に打ち勝つ。この
ことを、得られたアルゴリズムは、CPU時間の増加を
無視できるだけにとどめ順序付けられたメモリアクセス
パターンの混乱をほとんどなしに達成する。従って、ペ
ージアクセス時間は、第2のメモリから第1のメモリに
ノードを得るときに以前は起こったボトルネックである
が削除された。その上、本発明は、中間レベル用の付加
ノードを不要とした新規な広さ第1のROBDD操作に
言及する。
【0019】その結果、複合の要因によるパッドノード
アプローチより早く動く広さ第1のROBDD操作の動
作方法が得られる。本発明は、非常に大部分のチップの
ためのBDDの創造のために、以前は実行可能と考えら
れていたものを許す。その上、この新規な方法は、機械
から独立であって、機械をベースにしたSPARC、S
GI、NEC EWSに修正しなくても用いられる。
アプローチより早く動く広さ第1のROBDD操作の動
作方法が得られる。本発明は、非常に大部分のチップの
ためのBDDの創造のために、以前は実行可能と考えら
れていたものを許す。その上、この新規な方法は、機械
から独立であって、機械をベースにしたSPARC、S
GI、NEC EWSに修正しなくても用いられる。
【0020】本発明は、ROBDDが多くのノードを含
むときにさえ、順序付けられたメモリアクセスを維持す
るためにROBDDノードの可変インデックスを決定す
る新規な方法を提供する。
むときにさえ、順序付けられたメモリアクセスを維持す
るためにROBDDノードの可変インデックスを決定す
る新規な方法を提供する。
【0021】ROBDD操作中の付与レベルで処理され
るべき要求とノードとのソーティングの新規な方法は、
ROBDDにおける多くのノードがあるときでも順序付
けられたメモリアドレスを提供する。ノードのレベルは
メモリからノードをフェッチせずに決定され得る。ノー
ドへのポインタはノードがメモリに位置するアドレスで
ある。その目的は、メモリにおいて互いに近い位置で一
緒にフェッチされるべきノードを維持することにある。
るべき要求とノードとのソーティングの新規な方法は、
ROBDDにおける多くのノードがあるときでも順序付
けられたメモリアドレスを提供する。ノードのレベルは
メモリからノードをフェッチせずに決定され得る。ノー
ドへのポインタはノードがメモリに位置するアドレスで
ある。その目的は、メモリにおいて互いに近い位置で一
緒にフェッチされるべきノードを維持することにある。
【0022】ノードのアドレスに係るビットの特定のサ
ブセットは、ノードが位置するメモリのブロックに対応
する。BDDにおける同一レベルに属するノードは同一
のメモリブロックに格納される。メインメモリにおける
表は、メモリにおけるブロックとBDDにおけるレベル
との間の関係を維持する。従って、BDDノードのレベ
ルはこの表から決定され得る。
ブセットは、ノードが位置するメモリのブロックに対応
する。BDDにおける同一レベルに属するノードは同一
のメモリブロックに格納される。メインメモリにおける
表は、メモリにおけるブロックとBDDにおけるレベル
との間の関係を維持する。従って、BDDノードのレベ
ルはこの表から決定され得る。
【0023】ITE要求は各レベルに対して列を作って
順番を待つ。新しいノードが各ITE動作中に創作され
る。このノードは、現在のレベル以下の任意レベルにあ
り得る。レベル毎のソーティング要求は、順序付けられ
たメモリアクセスパターンを維持する。
順番を待つ。新しいノードが各ITE動作中に創作され
る。このノードは、現在のレベル以下の任意レベルにあ
り得る。レベル毎のソーティング要求は、順序付けられ
たメモリアクセスパターンを維持する。
【0024】本発明は、添付図面と共に次の説明を読む
際にはより理解が深まるであろう。
際にはより理解が深まるであろう。
【0025】
【発明の実施の形態】図面を参照すると、広さ第1の計
算用の好ましいアルゴリズムの基本アウトラインが図
2、図3、および図4に示されている。少しの修正だけ
を持つ同一のコードは、引数の任意の数と共に広さ第1
のようにブール演算を実行するために使用され得る。
算用の好ましいアルゴリズムの基本アウトラインが図
2、図3、および図4に示されている。少しの修正だけ
を持つ同一のコードは、引数の任意の数と共に広さ第1
のようにブール演算を実行するために使用され得る。
【0026】第1のステップは、結果BDDが創作され
る「応用」というフェーズである。深さ第1と広さ第1
とのアプローチの本質的な相違点は、広さ第1とのアプ
ローチにおいていくつかのトップ変数を持つ新しいIT
E計算要求が、同一のトップ変数を持つ全ての前のIT
E要求の最終結果が公知になるまえに、発行されること
である。一組のBDDのトップ変数は、それらBDDの
トップ変数の内最小である。その結果、同形チェックは
実時間で行うことができず、結果BDDは、冗長ノ−ド
を包含するかも知れない。第2のステップは、冗長ノ−
ドをBDDから除去し最終ROBDDを発行する「縮
小」というフェーズである。
る「応用」というフェーズである。深さ第1と広さ第1
とのアプローチの本質的な相違点は、広さ第1とのアプ
ローチにおいていくつかのトップ変数を持つ新しいIT
E計算要求が、同一のトップ変数を持つ全ての前のIT
E要求の最終結果が公知になるまえに、発行されること
である。一組のBDDのトップ変数は、それらBDDの
トップ変数の内最小である。その結果、同形チェックは
実時間で行うことができず、結果BDDは、冗長ノ−ド
を包含するかも知れない。第2のステップは、冗長ノ−
ドをBDDから除去し最終ROBDDを発行する「縮
小」というフェーズである。
【0027】応用と縮小とのステップの詳細な説明は、
双方のステップ中に発行したメモリアクセスパターンの
解析とともに下に述べる。
双方のステップ中に発行したメモリアクセスパターンの
解析とともに下に述べる。
【0028】図2は、幅第1のROBDD操作用の一般
的なアウトラインで、図3に示されたbf ite a
pply(F,G,H)アルゴリズムが、図4に示され
たbf ite reduce()アルゴリズムの応用
の結果としての最終ROBDDが達成される前に、応用
されているのを示す。
的なアウトラインで、図3に示されたbf ite a
pply(F,G,H)アルゴリズムが、図4に示され
たbf ite reduce()アルゴリズムの応用
の結果としての最終ROBDDが達成される前に、応用
されているのを示す。
【0029】図3は、ROBDDトリプルのITEを計
算するため顕著な要求の処理がトップダウン(根変数か
ら葉変数に)であるbf ite apply(F,
G,H)アルゴリズムの疑似コードである。一般に、2
つの新しいITE要求は、一つのITE要求が処理され
るたびに発行される。新しい要求の結果は、ターミナル
ケースに出会うならば、直接有効である。そうではな
く、もし同一の要求が過去に既に発行されていないなら
ば、新しいノードが新しい要求のために割り当てられ
る。ITE要求の処理は、もしそのROBDDのトップ
変数が引数トリプルのトップ変数と同じならば引数RO
BDDのおのおのの根ノードがフェッチされるべきであ
ることを要求する。
算するため顕著な要求の処理がトップダウン(根変数か
ら葉変数に)であるbf ite apply(F,
G,H)アルゴリズムの疑似コードである。一般に、2
つの新しいITE要求は、一つのITE要求が処理され
るたびに発行される。新しい要求の結果は、ターミナル
ケースに出会うならば、直接有効である。そうではな
く、もし同一の要求が過去に既に発行されていないなら
ば、新しいノードが新しい要求のために割り当てられ
る。ITE要求の処理は、もしそのROBDDのトップ
変数が引数トリプルのトップ変数と同じならば引数RO
BDDのおのおのの根ノードがフェッチされるべきであ
ることを要求する。
【0030】広さ第1のアルゴリズムの重要な面は、顕
著なITE要求がこれらトップ変数の増える順に厳格に
処理されることである。使用された規約(コンベンショ
ン)は、根から葉に可変インデックスが増加するもので
ある。同一の可変インデックスを持つ懸案のITE要求
が連続して処理される。その結果は、付与された可変イ
ンデックスに対応するROBDDノードのアクセスにお
ける時間的な局所性となる。各可変インデックス用のR
OBDDノードがメモリにおける隣接ロケーションに格
納されることが保証され得るならば、時間的な局所性は
空間的な局所に平行移動する。ROBDD創作中メモリ
における空間的な局所性を導く能力は、広さ第1の操作
を使用するための根本的な理由である。
著なITE要求がこれらトップ変数の増える順に厳格に
処理されることである。使用された規約(コンベンショ
ン)は、根から葉に可変インデックスが増加するもので
ある。同一の可変インデックスを持つ懸案のITE要求
が連続して処理される。その結果は、付与された可変イ
ンデックスに対応するROBDDノードのアクセスにお
ける時間的な局所性となる。各可変インデックス用のR
OBDDノードがメモリにおける隣接ロケーションに格
納されることが保証され得るならば、時間的な局所性は
空間的な局所に平行移動する。ROBDD創作中メモリ
における空間的な局所性を導く能力は、広さ第1の操作
を使用するための根本的な理由である。
【0031】レベル付け要求列は、適切な順序で懸案の
ITE要求の処理を可能にする。一つの列は各可変イン
デックスのために創作される。新しい要求が発行するた
びに、要求はその引数トリプルのトップ変数に相当する
適切な列に置かれる。新しい要求は、現在のインデック
スより大きいインデックスを持つ列に置かれ得るだけで
ある。列そのものは可変インデックスの増える順に処理
される。
ITE要求の処理を可能にする。一つの列は各可変イン
デックスのために創作される。新しい要求が発行するた
びに、要求はその引数トリプルのトップ変数に相当する
適切な列に置かれる。新しい要求は、現在のインデック
スより大きいインデックスを持つ列に置かれ得るだけで
ある。列そのものは可変インデックスの増える順に処理
される。
【0032】アクセスパターンにおいてでたらめでない
ことを保証するために解決されなくてはいけない2つの
問題がある。その1。上述した方法から生じる問題は、
トップ変数問題の編集である。ROBDDと関連された
可変インデクックスがノード構造そのものにおけるエン
トリとして通常格納されるから、可変インデックス計算
は困難になる。その結果として、ノードのための可変イ
ンデックスは、メモリからのノードをフェッチせずには
計算されない。
ことを保証するために解決されなくてはいけない2つの
問題がある。その1。上述した方法から生じる問題は、
トップ変数問題の編集である。ROBDDと関連された
可変インデクックスがノード構造そのものにおけるエン
トリとして通常格納されるから、可変インデックス計算
は困難になる。その結果として、ノードのための可変イ
ンデックスは、メモリからのノードをフェッチせずには
計算されない。
【0033】図3に示された疑似コードの第8行、第1
2行、第26行に、問題が明らかに示してある。第8行
によれば、処理されるべき次の要求が要求列からフェッ
チされる。例えば、Xがトリプル(F、G、H)のトッ
プ変数であれば、そのトリプルのトップ変数が知られ
る。しかしながら、個々のROBDDのF、G、および
Hの根ノードは、同一の可変インデックスxを必ずしも
持つとは限らない。もし根ノードF1の可変インデック
スが、例えば、xより大きければ、Fx=F および
Fx(バー)=Fである。そのため、共因子を得るため
にメモリからノードFをフェッチする必要がない。しか
しながら、この結論に達するためには、Fのトップ可変
インデックスを計算する必要があり、そのため、Fはメ
モリからフェッチされねばならなかった。どちらの場合
にも、Fに対するノードは、メモリからフェッチされ
る。もしFのトップ変数インデクスがxより大きいなら
ば、メモリからFをフェッチすることは、「順序の乱れ
た」メモリアクセスに相当する。
2行、第26行に、問題が明らかに示してある。第8行
によれば、処理されるべき次の要求が要求列からフェッ
チされる。例えば、Xがトリプル(F、G、H)のトッ
プ変数であれば、そのトリプルのトップ変数が知られ
る。しかしながら、個々のROBDDのF、G、および
Hの根ノードは、同一の可変インデックスxを必ずしも
持つとは限らない。もし根ノードF1の可変インデック
スが、例えば、xより大きければ、Fx=F および
Fx(バー)=Fである。そのため、共因子を得るため
にメモリからノードFをフェッチする必要がない。しか
しながら、この結論に達するためには、Fのトップ可変
インデックスを計算する必要があり、そのため、Fはメ
モリからフェッチされねばならなかった。どちらの場合
にも、Fに対するノードは、メモリからフェッチされ
る。もしFのトップ変数インデクスがxより大きいなら
ば、メモリからFをフェッチすることは、「順序の乱れ
た」メモリアクセスに相当する。
【0034】第12行および第26行において、正負共
通の共因子トリプルにそれぞれ相当するトップ可変イン
デックスを、新しく発行した要求において決定する必要
がある。トップ可変インデックスを知る必要がある結
果、新しい要求が適切な列に置かれる。子のインデック
スが親のそれよりも大きくなくてはいけないことを除い
て、ROBDDにおいて親子ノードのインデックス間の
関係を必要としないから、これら2つのトリプルのトッ
プ可変インデックスの計算が要求される。インデックス
の計算をするために、2つのトリプルにおける6つの共
通の要因がフェッチされなくてはいけない。これらフェ
ッチが現在のインデックスよりも大きいインデックスを
持つノードであるから、それらは、「順序付けられた」
メモリアクセスである。「順序の乱れた」アクセスなし
で2つのトップ可変インデックスを計算できることが望
ましい。
通の共因子トリプルにそれぞれ相当するトップ可変イン
デックスを、新しく発行した要求において決定する必要
がある。トップ可変インデックスを知る必要がある結
果、新しい要求が適切な列に置かれる。子のインデック
スが親のそれよりも大きくなくてはいけないことを除い
て、ROBDDにおいて親子ノードのインデックス間の
関係を必要としないから、これら2つのトリプルのトッ
プ可変インデックスの計算が要求される。インデックス
の計算をするために、2つのトリプルにおける6つの共
通の要因がフェッチされなくてはいけない。これらフェ
ッチが現在のインデックスよりも大きいインデックスを
持つノードであるから、それらは、「順序付けられた」
メモリアクセスである。「順序の乱れた」アクセスなし
で2つのトップ可変インデックスを計算できることが望
ましい。
【0035】その2。解決されるべきもう一つの問題
は、図3の疑似コードの第13行および第28行に現れ
る。問題は、新しく発行された要求に関連した列をアク
セスすることに関する。新しい要求が発行される前に、
同一の要求が前に発行されたかどうかのチェックが行わ
れなくてはいけない。このチェックのために使用された
インデックスの次のインデックスを持つ適切な列を表に
調査させる。もし同じ要求がその列に存在するならば、
それはフェッチされなくてはいけない。もし同じ要求が
その列に存在しないならば、新しい要求は発行されその
列に挿入されななくてはいけない。次のインデックス列
の上の唯一の限定は、現在のインデックスより大きくす
べきであることである。その上、首尾よく発行された要
求のためのトップ可変インデックスの間には関係がな
い。関係が無いのでメモリアクセスパターンにおいて乱
雑のポテンシャルを創作する。インデックスを増加させ
る順に列の調査を行うことが望ましい。
は、図3の疑似コードの第13行および第28行に現れ
る。問題は、新しく発行された要求に関連した列をアク
セスすることに関する。新しい要求が発行される前に、
同一の要求が前に発行されたかどうかのチェックが行わ
れなくてはいけない。このチェックのために使用された
インデックスの次のインデックスを持つ適切な列を表に
調査させる。もし同じ要求がその列に存在するならば、
それはフェッチされなくてはいけない。もし同じ要求が
その列に存在しないならば、新しい要求は発行されその
列に挿入されななくてはいけない。次のインデックス列
の上の唯一の限定は、現在のインデックスより大きくす
べきであることである。その上、首尾よく発行された要
求のためのトップ可変インデックスの間には関係がな
い。関係が無いのでメモリアクセスパターンにおいて乱
雑のポテンシャルを創作する。インデックスを増加させ
る順に列の調査を行うことが望ましい。
【0036】これら2つの可変インデックスを計算し、
メモリアクセスにおいて乱雑を導くことなく同一の要求
のためにチェックする問題を解いたのが、Ochi他の
アプローチを越える本発明によって提供された改良であ
ることは以下に述べるとおりである。この解は付加メモ
リ使用によってCPU時間に無視できるオーバーヘッド
を犠牲にするだけで意味ある低いペナルティを使用す
る。
メモリアクセスにおいて乱雑を導くことなく同一の要求
のためにチェックする問題を解いたのが、Ochi他の
アプローチを越える本発明によって提供された改良であ
ることは以下に述べるとおりである。この解は付加メモ
リ使用によってCPU時間に無視できるオーバーヘッド
を犠牲にするだけで意味ある低いペナルティを使用す
る。
【0037】図4はBDDノードのボトムアップ横断を
行うことによってBDDから冗長ノードを除去するため
の疑似コードを示す。冗長BDDノードは、同一のTH
EN及びELSEノードを持つノードであるかまたは、
同一の属性を持つ他のノードが独自の表において既に存
在するようなノードである。図4におけるコードの第1
1行および第13行において対応するチェックが行われ
る。もしノードが冗長であると分かったならば、その場
所を取るべきノードに転送される。実行は次のとおりで
ある。ノードRがR1に転送されるならば、予め定義さ
れた値にR→Eをセットし、R1にR→Tをセットす
る。ノードRが転送されたかうかを決定するために、R
→Eが予め定義された値に対してチェックされる。
行うことによってBDDから冗長ノードを除去するため
の疑似コードを示す。冗長BDDノードは、同一のTH
EN及びELSEノードを持つノードであるかまたは、
同一の属性を持つ他のノードが独自の表において既に存
在するようなノードである。図4におけるコードの第1
1行および第13行において対応するチェックが行われ
る。もしノードが冗長であると分かったならば、その場
所を取るべきノードに転送される。実行は次のとおりで
ある。ノードRがR1に転送されるならば、予め定義さ
れた値にR→Eをセットし、R1にR→Tをセットす
る。ノードRが転送されたかうかを決定するために、R
→Eが予め定義された値に対してチェックされる。
【0038】処理されるべきノードは、レベル付け列に
対して、しかし可変インデックスを減らす順でアクセス
される。従って、同一のレベルに属するノードが隣接メ
モリロケーションに格納されるならば、ノードをフェッ
チするときにアドレスの空間的な局所性がある。その
上、次の理由によるメモリアクセスパターンにおける乱
雑性の可能性がまだある。
対して、しかし可変インデックスを減らす順でアクセス
される。従って、同一のレベルに属するノードが隣接メ
モリロケーションに格納されるならば、ノードをフェッ
チするときにアドレスの空間的な局所性がある。その
上、次の理由によるメモリアクセスパターンにおける乱
雑性の可能性がまだある。
【0039】ノードRの処理における第1のステップ
は、R→TおよびR→Eが転送されたかどうかをチェッ
クする(図4第5行乃至第10行を参照)のを含む。も
しR→Tが転送されたならば、転送されたノードに再び
割り当てなくてはいけない。R→Tが転送されかどうか
のチェックのためには、R→Tがメモリからフェッチさ
れなければならない。R→Tに対するインデックスはR
に対するインデックスより任意に大きいかもしれず、し
かも、一方を他方の後で転送するためにチェックされる
2つのノードの可変インデックスの間には関係がないか
ら、そのフェッチは、メモリアクセスパターンに乱雑性
を導く。もしアルゴリズムの性能が、一旦BDDがある
サイズに到達すると、グレードを下げないならば、ラン
ダムアクセス用のポテンシャルは除去されなくてはいけ
ない。理想的には、付与レベルに属するノード転送用の
全てのチェックは、次々に行われなくてはいけない。
は、R→TおよびR→Eが転送されたかどうかをチェッ
クする(図4第5行乃至第10行を参照)のを含む。も
しR→Tが転送されたならば、転送されたノードに再び
割り当てなくてはいけない。R→Tが転送されかどうか
のチェックのためには、R→Tがメモリからフェッチさ
れなければならない。R→Tに対するインデックスはR
に対するインデックスより任意に大きいかもしれず、し
かも、一方を他方の後で転送するためにチェックされる
2つのノードの可変インデックスの間には関係がないか
ら、そのフェッチは、メモリアクセスパターンに乱雑性
を導く。もしアルゴリズムの性能が、一旦BDDがある
サイズに到達すると、グレードを下げないならば、ラン
ダムアクセス用のポテンシャルは除去されなくてはいけ
ない。理想的には、付与レベルに属するノード転送用の
全てのチェックは、次々に行われなくてはいけない。
【0040】3つの問題全ての共通原因は、子ノードの
インデックスが親ノードのインデックスより任意に大き
くなり得ることである。従来のパッドノード解は、各子
ノードのインデックスがその親ノードのインデックスと
等しくまたは大きくなるか、または子ノードがターミナ
ルノードになるまで、ROBDDにおけるノードの付加
を必要としている。この技術の効果は、メモリアクセス
における乱雑性を除去するために複合の要因によるメモ
リ要求をポテンシャル的に増加することである。要する
に、増加したメモリ要求は、順序付けられたアクセスの
利益を無駄にする。
インデックスが親ノードのインデックスより任意に大き
くなり得ることである。従来のパッドノード解は、各子
ノードのインデックスがその親ノードのインデックスと
等しくまたは大きくなるか、または子ノードがターミナ
ルノードになるまで、ROBDDにおけるノードの付加
を必要としている。この技術の効果は、メモリアクセス
における乱雑性を除去するために複合の要因によるメモ
リ要求をポテンシャル的に増加することである。要する
に、増加したメモリ要求は、順序付けられたアクセスの
利益を無駄にする。
【0041】本発明は、今から詳細に述べるように、パ
ッドノードおよび関連オーバーヘッドを必要とせず、広
さ第1のROBDD操作の方法を提供する。ROBDD
ノードの可変インデックスの決定と「応用」・「縮小」
中の付与レベルで処理されるべき要求およびノードの適
切なソーティングの新規な方法は、広さ第1のROBD
D操作の改良された性能を提供する。
ッドノードおよび関連オーバーヘッドを必要とせず、広
さ第1のROBDD操作の方法を提供する。ROBDD
ノードの可変インデックスの決定と「応用」・「縮小」
中の付与レベルで処理されるべき要求およびノードの適
切なソーティングの新規な方法は、広さ第1のROBD
D操作の改良された性能を提供する。
【0042】メモリアクセスにおいて空間的な局所性を
保証するために、同一のトップ可変インデックスを持つ
ROBDDノードは隣接メモリロケーションに格納され
る。この結果を達成するために、メモリ処理者は、各ブ
ロックを特定の可変インデックスに関連させながら、適
切なサイズのブロックの形式でメモリを割り当てるのが
可能でなくてはいけない。新しいROBDDノード用の
メモリは、ノードの可変インデックスに関連したブロッ
ク内から割り当てられる。あるインデックス用に以前に
割り当てられたブロック全てが一杯になるときに付加ブ
ロックは可変インデックス用に割り当てられる。
保証するために、同一のトップ可変インデックスを持つ
ROBDDノードは隣接メモリロケーションに格納され
る。この結果を達成するために、メモリ処理者は、各ブ
ロックを特定の可変インデックスに関連させながら、適
切なサイズのブロックの形式でメモリを割り当てるのが
可能でなくてはいけない。新しいROBDDノード用の
メモリは、ノードの可変インデックスに関連したブロッ
ク内から割り当てられる。あるインデックス用に以前に
割り当てられたブロック全てが一杯になるときに付加ブ
ロックは可変インデックス用に割り当てられる。
【0043】メモリにおけるROBDDノードのこのよ
うな構成に伴う利益はノードのアドレスに対するもので
ある結果、ノード従ってそれの可変インデックスがどの
メモリブロックに属するのかが決定され得ることであ
る。従って、ノードの可変インデックスは、ノードのア
ドレス(ポインター)から直接決定される。ノード自身
は、メモリからフェッチされる必要がない。メモリから
ROBDDノードをフェッチせずに可変インデックスを
決定する能力は、上述の第1の問題の解となり得る。そ
の結果、BF操作中に順序正しいページアクセスができ
る。
うな構成に伴う利益はノードのアドレスに対するもので
ある結果、ノード従ってそれの可変インデックスがどの
メモリブロックに属するのかが決定され得ることであ
る。従って、ノードの可変インデックスは、ノードのア
ドレス(ポインター)から直接決定される。ノード自身
は、メモリからフェッチされる必要がない。メモリから
ROBDDノードをフェッチせずに可変インデックスを
決定する能力は、上述の第1の問題の解となり得る。そ
の結果、BF操作中に順序正しいページアクセスができ
る。
【0044】可変インデックスを計算するこの方法は、
完全にオーバーヘッド無しではない。しかし、オーバー
ヘッドは十分に小さくて実際の目的上は無視できる。
完全にオーバーヘッド無しではない。しかし、オーバー
ヘッドは十分に小さくて実際の目的上は無視できる。
【0045】BFアプローチの目的が各ページアクセス
を最大限に利用することにあるから、好ましくは、1ペ
ージのブロックサイズ(最新のUNIXシステム上で4
Kバイト)が使用される。可変インデックスがノードの
アドレスから直接決定されるから、ROBDDノード構
造において対応するフィールドは、もはや必要ではな
い。ノード構造における残るフィールドは、(1)RE
FERENCE COUNT(2)THEN(3)EL
SE(4)NEXTである。REFERENCECOU
NTのフィールドは、ノードへのファン入力のカウント
を維持する。THENおよびELSEフィールドは、T
HENおよびELSEノードにそれぞれポインターを格
納する。NEXTフィールドは、同一の可変インデック
スを持つ他のノードにポンターを格納し、デザイン自動
会議プロシィーディングス、1990年6月の40頁乃
至45頁における、Brace他による「BDDパッケ
ージの有効な実行」というタイトルの論文に述べられて
いるように独自の表を維持するのに使用される。これら
フィールドのおのおのは4バイト幅で、16バイトに等
しい各ROBDDノードフィールドの全てのサイズを作
成する。従って、4Kバイトブロックならば256RO
BDDノードが収納されよう。第2の格納からのページ
のフェッチは、メインメモリに256ROBDDノード
を入力する。
を最大限に利用することにあるから、好ましくは、1ペ
ージのブロックサイズ(最新のUNIXシステム上で4
Kバイト)が使用される。可変インデックスがノードの
アドレスから直接決定されるから、ROBDDノード構
造において対応するフィールドは、もはや必要ではな
い。ノード構造における残るフィールドは、(1)RE
FERENCE COUNT(2)THEN(3)EL
SE(4)NEXTである。REFERENCECOU
NTのフィールドは、ノードへのファン入力のカウント
を維持する。THENおよびELSEフィールドは、T
HENおよびELSEノードにそれぞれポインターを格
納する。NEXTフィールドは、同一の可変インデック
スを持つ他のノードにポンターを格納し、デザイン自動
会議プロシィーディングス、1990年6月の40頁乃
至45頁における、Brace他による「BDDパッケ
ージの有効な実行」というタイトルの論文に述べられて
いるように独自の表を維持するのに使用される。これら
フィールドのおのおのは4バイト幅で、16バイトに等
しい各ROBDDノードフィールドの全てのサイズを作
成する。従って、4Kバイトブロックならば256RO
BDDノードが収納されよう。第2の格納からのページ
のフェッチは、メインメモリに256ROBDDノード
を入力する。
【0046】可変インデックスは次のように編成され
る。32ビットアドレス空間(最大量のマイクロプロセ
ッサによって提供されるプロセスアドレス可能メモリ当
たり最大4Gバイトに相当する)と4Kバイトブロック
サイズとは、任意の時間に最大量1Mブロックがあるこ
とを意味する。ノードのアドレスのうち高いほうの20
ビットは、ノードが属するブロックを決定する。ブロッ
クと可変インデックスとの間の対応は、1Mエントリを
持つ表(ブロックインデックス表と呼ぶ)によって維持
される。各エントリは可変インデックスに対応する短い
整数である。従って、2バイト幅である。この表は、1
Mエントリが隣接する限りどこに位置されてもよい。1
Mエントリだけを持つ表は十分小さいので、その表を置
く位置を見つけるのは簡単なことである。その上、小さ
いサイズおよび可変インデックスを計算する必要のある
大きい回数の表は、メインメモリにいつも残されてい
て、2次格納には置かれないでよいことがほとんど保証
される。可変インデックスを計算するためには、ROB
DDノードアドレスは、最初に、ブロックを認識する2
0ビットが適切な位置を占有するまで右にシフトされ
る。シフトされた20ビットは、オフセットアドレスと
して、可変インデックスをフェッチするためにブロック
・インデックス表をインデックスするのに使われる。代
表的なCPUアーキテクチャを使用すると、この右シフ
トには一つの命令(インストラクション)を必要とし
て、オフセットをベースアドレスに加えるにはもう一つ
の命令を必要とする。従って、上述の方法は実際のメモ
リフェッチのほかに2つの命令を必要とする。
る。32ビットアドレス空間(最大量のマイクロプロセ
ッサによって提供されるプロセスアドレス可能メモリ当
たり最大4Gバイトに相当する)と4Kバイトブロック
サイズとは、任意の時間に最大量1Mブロックがあるこ
とを意味する。ノードのアドレスのうち高いほうの20
ビットは、ノードが属するブロックを決定する。ブロッ
クと可変インデックスとの間の対応は、1Mエントリを
持つ表(ブロックインデックス表と呼ぶ)によって維持
される。各エントリは可変インデックスに対応する短い
整数である。従って、2バイト幅である。この表は、1
Mエントリが隣接する限りどこに位置されてもよい。1
Mエントリだけを持つ表は十分小さいので、その表を置
く位置を見つけるのは簡単なことである。その上、小さ
いサイズおよび可変インデックスを計算する必要のある
大きい回数の表は、メインメモリにいつも残されてい
て、2次格納には置かれないでよいことがほとんど保証
される。可変インデックスを計算するためには、ROB
DDノードアドレスは、最初に、ブロックを認識する2
0ビットが適切な位置を占有するまで右にシフトされ
る。シフトされた20ビットは、オフセットアドレスと
して、可変インデックスをフェッチするためにブロック
・インデックス表をインデックスするのに使われる。代
表的なCPUアーキテクチャを使用すると、この右シフ
トには一つの命令(インストラクション)を必要とし
て、オフセットをベースアドレスに加えるにはもう一つ
の命令を必要とする。従って、上述の方法は実際のメモ
リフェッチのほかに2つの命令を必要とする。
【0047】解決されるべき第2の問題は、図3に示さ
れている「応用」アルゴリズム中の同一要求用のチェッ
クに関連する。現在のレベルで処理する一列の要求を持
つ目的は、ページアドレスにおいて乱雑さを除去するこ
とである。この目的を達成するためには、要求のおのお
のから発行される2つの新しい要求の可変インデックス
を増える順に、要求を現在のレベルで処理する。これ
は、次のように処理される。現在の要求列を通る第1の
パスにおいて、要求から発行され現在のレベルのすぐ下
に属するこの新しい要求は、すぐに処理される。他の要
求は各リストが現在のレベルの下のレベルに相当する複
数のリスト配列の中に格納される。上述のプロセスは、
計数ソートに一致する。第1のパスが完全になった後
で、表の中で新しく創作されたアレーの中での要求は、
レベルを増やす順に処理される。同一の要求から発行さ
れた2つの新しい要求のトップ可変インデックスの間に
は関係がないから、要求は、正の共要因に対応する新し
い要求のための一つと負の共要因に対応するもう一つと
を2つの表に同時に現れるかも知れない。このように要
求を処置することは、特定の列への調査が連続して行わ
れそれによって順序の乱れが除去されることを保証する
ことになる。
れている「応用」アルゴリズム中の同一要求用のチェッ
クに関連する。現在のレベルで処理する一列の要求を持
つ目的は、ページアドレスにおいて乱雑さを除去するこ
とである。この目的を達成するためには、要求のおのお
のから発行される2つの新しい要求の可変インデックス
を増える順に、要求を現在のレベルで処理する。これ
は、次のように処理される。現在の要求列を通る第1の
パスにおいて、要求から発行され現在のレベルのすぐ下
に属するこの新しい要求は、すぐに処理される。他の要
求は各リストが現在のレベルの下のレベルに相当する複
数のリスト配列の中に格納される。上述のプロセスは、
計数ソートに一致する。第1のパスが完全になった後
で、表の中で新しく創作されたアレーの中での要求は、
レベルを増やす順に処理される。同一の要求から発行さ
れた2つの新しい要求のトップ可変インデックスの間に
は関係がないから、要求は、正の共要因に対応する新し
い要求のための一つと負の共要因に対応するもう一つと
を2つの表に同時に現れるかも知れない。このように要
求を処置することは、特定の列への調査が連続して行わ
れそれによって順序の乱れが除去されることを保証する
ことになる。
【0048】順序の乱れは、現在の要求列を通る一つの
パス以上のコストで除去される。要求されたパスの効果
的な数は、第1のパスに処理される要求の数に依存する
1と2との間にのみある。しかも、表の新しいアレー
は、たかだかレベルの数に等しいサイズで、従って、非
常に小さい。レベル毎の新しい表の創作は、要求が既に
表(属する列に対応する表)の中のあるから、いかなる
付加的メモリを必要とはしない。これら要求は、表にお
いて次の要求を指すのに使用され得る構造において、N
EXTフィールドをすでに持っている。要求は、オリジ
ナル表から除去され新しい表に置かれることだけが必要
である。要求(正負共要因に相当する)から発行された
2つの新しい要求のトップ可変インデックスが異なるな
らば、この要求は複製される必要があるかもしれない。
この複製は要求が同時に2つのトップ可変インデックス
に対応する2つの表に置かれなくてはいけないから必要
である。要求を複製する必要性が存在するにもかかわら
ず、このアプローチは現在のアプローチに勝る。
パス以上のコストで除去される。要求されたパスの効果
的な数は、第1のパスに処理される要求の数に依存する
1と2との間にのみある。しかも、表の新しいアレー
は、たかだかレベルの数に等しいサイズで、従って、非
常に小さい。レベル毎の新しい表の創作は、要求が既に
表(属する列に対応する表)の中のあるから、いかなる
付加的メモリを必要とはしない。これら要求は、表にお
いて次の要求を指すのに使用され得る構造において、N
EXTフィールドをすでに持っている。要求は、オリジ
ナル表から除去され新しい表に置かれることだけが必要
である。要求(正負共要因に相当する)から発行された
2つの新しい要求のトップ可変インデックスが異なるな
らば、この要求は複製される必要があるかもしれない。
この複製は要求が同時に2つのトップ可変インデックス
に対応する2つの表に置かれなくてはいけないから必要
である。要求を複製する必要性が存在するにもかかわら
ず、このアプローチは現在のアプローチに勝る。
【0049】解かれるべき第3の問題は、図4に示され
た縮小アルゴリズム中のノードを転送するためのチェッ
ク期間のランダムページアクセス用の可能性である。こ
の解は、図3における応用アルゴリズム中の同一要求用
のチェックをする場合に類似である。転送用に次々にチ
ェックされたノードのインデックスにおける関係の欠如
のため問題が起こる。解決は一つ以上のパス使用であっ
て、第2のパスに処理されるべきノードのための表(現
在のレベル以下の各レベルにつき一つの表)の配列の維
持である。R→Tの表現は、もしR→TおよびR→Eの
レベルが異なるならば、第1のパスだけの期間中に処理
される。このアプローチを使用する、付与レベルに属す
るノードの転送用の全てのチェックは、次々に行われ
る。従って、ページアクセスパターンに乱れはない。
た縮小アルゴリズム中のノードを転送するためのチェッ
ク期間のランダムページアクセス用の可能性である。こ
の解は、図3における応用アルゴリズム中の同一要求用
のチェックをする場合に類似である。転送用に次々にチ
ェックされたノードのインデックスにおける関係の欠如
のため問題が起こる。解決は一つ以上のパス使用であっ
て、第2のパスに処理されるべきノードのための表(現
在のレベル以下の各レベルにつき一つの表)の配列の維
持である。R→Tの表現は、もしR→TおよびR→Eの
レベルが異なるならば、第1のパスだけの期間中に処理
される。このアプローチを使用する、付与レベルに属す
るノードの転送用の全てのチェックは、次々に行われ
る。従って、ページアクセスパターンに乱れはない。
【0050】この解に関連した費用は、同一のノード用
のチェックのときに、ランダクアクセスを避けることに
関連した費用に類似する。配列サイズは大変小さく、付
加メモリは新しい表に必要ではない。ROBDDノード
構造は既に独自のテーブルにおける表を維持するのに使
用されるべきNEXTフィールドを持つから、付加メモ
リは必要でない。ノードは独自のテーブルに置かれて初
めて縮小アルゴリズム中に処理されため、NEXTフィ
ールドが望ましい表を維持するのに使用され得る。
のチェックのときに、ランダクアクセスを避けることに
関連した費用に類似する。配列サイズは大変小さく、付
加メモリは新しい表に必要ではない。ROBDDノード
構造は既に独自のテーブルにおける表を維持するのに使
用されるべきNEXTフィールドを持つから、付加メモ
リは必要でない。ノードは独自のテーブルに置かれて初
めて縮小アルゴリズム中に処理されため、NEXTフィ
ールドが望ましい表を維持するのに使用され得る。
【0051】新しい一時ノードが発生されるべきである
ときに関連されたメモリ空間においてレベルのための自
由ノードがないならば、ごみ収集が行われる。ごみ収集
は2つの主な目的、すなわち、のちの使用のための自由
メモリを得ることおよび単一のROBDDによって使用
されたメモリの断片化を防止することである。
ときに関連されたメモリ空間においてレベルのための自
由ノードがないならば、ごみ収集が行われる。ごみ収集
は2つの主な目的、すなわち、のちの使用のための自由
メモリを得ることおよび単一のROBDDによって使用
されたメモリの断片化を防止することである。
【0052】数回のブール演算は、初期出力のためのR
OBDDが創作される前に行われなくはいけない。中間
のROBDDを解放し冗長ノードを解放するときにデッ
ドノードが創作される。デッドノードによって占有され
たメモリは新しいノードによって再利用され得る。デッ
ドノードによって使用されたメモリを再請求するための
好ましい方法は、「レフェレンス計数ごみ収集戦略」と
呼ばれている。この戦略によれば、再利用され得るノー
ドの表(自由表と呼ぶ)が維持される。新しいノードが
割り当てられるときに、自由表が利用可能ノードのため
にチェックされる。もしデッドノードが利用できるなら
ば、それは自由表から除去され新しいノード用に再利用
される。逆に、とのようなデッドノードもないならば、
新しいノードは新しいメモリに割り当てられる。本発明
に使用されたレベル構造の結果、分離された自由表が各
レベル用に維持される。
OBDDが創作される前に行われなくはいけない。中間
のROBDDを解放し冗長ノードを解放するときにデッ
ドノードが創作される。デッドノードによって占有され
たメモリは新しいノードによって再利用され得る。デッ
ドノードによって使用されたメモリを再請求するための
好ましい方法は、「レフェレンス計数ごみ収集戦略」と
呼ばれている。この戦略によれば、再利用され得るノー
ドの表(自由表と呼ぶ)が維持される。新しいノードが
割り当てられるときに、自由表が利用可能ノードのため
にチェックされる。もしデッドノードが利用できるなら
ば、それは自由表から除去され新しいノード用に再利用
される。逆に、とのようなデッドノードもないならば、
新しいノードは新しいメモリに割り当てられる。本発明
に使用されたレベル構造の結果、分離された自由表が各
レベル用に維持される。
【0053】デッドノードを認識するために、レフェレ
ンス計数フィールドがノードデータ構造に維持される。
レフェレンス計数フィールドは、特定のノードに係るノ
ードの数の計数を含んでいる。特定のノード用の計数が
ゼロになれときに、ノードはデッドノードと考えられ
る。ノードがデッドノードと考えられるときに、2つの
子ノードの双方のレフェレンス計数フィールドが1計数
だけ減らされなくてはいけない。従って、ノードがデッ
ドノードであると宣言することは、ROBDDを通るカ
スケード効果を持つ可能性がある。こうして、レフェレ
ンス計数ごみ収集の機能は、ROBBDにおけるノード
を上から下へ横切ることになる。もしモードのレフェレ
ンス計数がゼロであるならば、ノードはデッドであると
考えられ子ノードのフィールドは1計数だけ減らされ
る。本発明に他のアルゴリズムが行われるときには、ラ
ンダムページアクセスを避けるためにレベルごとを基本
にした横切りが行われる。あるレベルにおける列は、そ
のレベル上のデッドノードとレフェレンス計数を1だけ
減らさなくてはいけないノードとを備える。実際には、
レフェレンス計数ごみ収集は、例えば、ノードの数がレ
ベルダブルであるときはいつでも、周期的間隔において
必要である。上述のレフェレンス計数手続きの主な利点
はそのスピードにある。
ンス計数フィールドがノードデータ構造に維持される。
レフェレンス計数フィールドは、特定のノードに係るノ
ードの数の計数を含んでいる。特定のノード用の計数が
ゼロになれときに、ノードはデッドノードと考えられ
る。ノードがデッドノードと考えられるときに、2つの
子ノードの双方のレフェレンス計数フィールドが1計数
だけ減らされなくてはいけない。従って、ノードがデッ
ドノードであると宣言することは、ROBDDを通るカ
スケード効果を持つ可能性がある。こうして、レフェレ
ンス計数ごみ収集の機能は、ROBBDにおけるノード
を上から下へ横切ることになる。もしモードのレフェレ
ンス計数がゼロであるならば、ノードはデッドであると
考えられ子ノードのフィールドは1計数だけ減らされ
る。本発明に他のアルゴリズムが行われるときには、ラ
ンダムページアクセスを避けるためにレベルごとを基本
にした横切りが行われる。あるレベルにおける列は、そ
のレベル上のデッドノードとレフェレンス計数を1だけ
減らさなくてはいけないノードとを備える。実際には、
レフェレンス計数ごみ収集は、例えば、ノードの数がレ
ベルダブルであるときはいつでも、周期的間隔において
必要である。上述のレフェレンス計数手続きの主な利点
はそのスピードにある。
【0054】上述のごみ収集計画が持つかもしれない困
難は、最初にデッドノードメモリを使用し、デッドノー
ドがそのメモリにおける数ページにわたって散らばって
いるときに、空間的な局所性が部分的に失われるかも知
れないことである。この困難を避けるためには、「スト
ップおよびコピー機構」は、デッドでないすなわち生き
ているノードを新しいノード空間のみにコピーする。コ
ピーされたノードによって以前に使用されたアドレス空
間は、捨てられる。この結果、レフェレンス計数計画に
よって引き起こされた断片化が除去される。生きている
ノードのコピーはレフェレンス計数プロセス自身より多
くの時間を消費するため、ストップおよびコピー機構
は、単に十分大量のデッドノードの後から必要となる。
好ましくは、ストップおよびコピー機構は、大量のデッ
ドノードであって全てのレベル用でなくそれらのレベル
が必要となるだけである。
難は、最初にデッドノードメモリを使用し、デッドノー
ドがそのメモリにおける数ページにわたって散らばって
いるときに、空間的な局所性が部分的に失われるかも知
れないことである。この困難を避けるためには、「スト
ップおよびコピー機構」は、デッドでないすなわち生き
ているノードを新しいノード空間のみにコピーする。コ
ピーされたノードによって以前に使用されたアドレス空
間は、捨てられる。この結果、レフェレンス計数計画に
よって引き起こされた断片化が除去される。生きている
ノードのコピーはレフェレンス計数プロセス自身より多
くの時間を消費するため、ストップおよびコピー機構
は、単に十分大量のデッドノードの後から必要となる。
好ましくは、ストップおよびコピー機構は、大量のデッ
ドノードであって全てのレベル用でなくそれらのレベル
が必要となるだけである。
【0055】本発明の実際の実行において、ITE要求
は5つのフィールド、すなわち、引数F、G、H、要求
ノードR、および表を維持するために使用されたNEX
Tフィールドである。ITE要求のための別の構造は、
応用アルゴリズム中に割り当てられた各BDDノード用
に20の付加バイトの割り当てを必要とするであろう。
これらバイトは、要求が処理されるまでそのままであろ
う。
は5つのフィールド、すなわち、引数F、G、H、要求
ノードR、および表を維持するために使用されたNEX
Tフィールドである。ITE要求のための別の構造は、
応用アルゴリズム中に割り当てられた各BDDノード用
に20の付加バイトの割り当てを必要とするであろう。
これらバイトは、要求が処理されるまでそのままであろ
う。
【0056】付加バイトの要求は、ITE要求用のBD
Dノード構造を使用することと、様々なフィールドのメ
モリを過負荷にすることとによって避けられる。Fへな
らばGへ、そうでなければHへ、NEXTへのNEX
T、およびBDDノードそのものへのレフェレンス計数
フィールドマップは、結果フィールドRである。同一の
16バイトは、ITE要求のためにおよび続いてBDD
ノードのために最初使用される。
Dノード構造を使用することと、様々なフィールドのメ
モリを過負荷にすることとによって避けられる。Fへな
らばGへ、そうでなければHへ、NEXTへのNEX
T、およびBDDノードそのものへのレフェレンス計数
フィールドマップは、結果フィールドRである。同一の
16バイトは、ITE要求のためにおよび続いてBDD
ノードのために最初使用される。
【0057】32ビットのアドレス空間と4KBのペー
ジサイズとを持っているブロック・インデックス表であ
れば、フラット静止割当表の構成を許す最大1Mエント
リを持つ。アドレス空間の64ビットの出現はフラット
テーブルを実行不可能にするであろう。この問題の解
は、表に使われたメモリを動的に増やすのを許して、表
をハイアラキーにすることである。もっと多くの命令が
インデックス計数のために必要であるから、総経費は増
える。
ジサイズとを持っているブロック・インデックス表であ
れば、フラット静止割当表の構成を許す最大1Mエント
リを持つ。アドレス空間の64ビットの出現はフラット
テーブルを実行不可能にするであろう。この問題の解
は、表に使われたメモリを動的に増やすのを許して、表
をハイアラキーにすることである。もっと多くの命令が
インデックス計数のために必要であるから、総経費は増
える。
【0058】要約すると、広さ第1の実行を使用する本
発明では、BDDサイズがメインメモリを越えるとき、
深さ第1の実行より何桁か早い。オーバーヘッドは処理
しやすい。本発明の実行は、メモリ要件およびラン時間
においててパッドノード方法より優れている。
発明では、BDDサイズがメインメモリを越えるとき、
深さ第1の実行より何桁か早い。オーバーヘッドは処理
しやすい。本発明の実行は、メモリ要件およびラン時間
においててパッドノード方法より優れている。
【0059】表1は、IWLS´93ベンチマークセッ
トからと工業からのインダスト1および2の回路上で本
発明をランさせた結果を示す。
トからと工業からのインダスト1および2の回路上で本
発明をランさせた結果を示す。
【0060】
【表1】 大きなROBDD用の表1に示した経過時間は、非常に
大きなROBDDを短ラン時間で構築し操作するための
本発明の能力を明確に示している。例えば、s9234
用の3.85百万ノードROBDDは、32MBだけの
メインメモリを持つSPARC2マシーン上に概ね25
分間構築される。同一のROBDDを創作するために
は、カーネギーメロン大学(CMU)から現在利用可能
なROBDDパッケージを使用すると概ね48時間必要
となる。本発明は120倍にスピードを増加する。同様
に、64MBのメモリを持つSPARC10/41マシ
ーン上に26時間中にs38417の第1の7509ゲ
ート用に約1億4百万ノードを持つROBDDを構築す
ることは、本発明を使用することにより可能である。C
MUパッケージは、同一のマシーン上に43時間中に第
1の4807ゲート用に7.8百万のノードを持つRO
BDDを構築することができる。上述の方法は、第1の
4807ゲート用に約40倍早い解を提供する。同様の
スピードの向上が、ROBDDサイズが利用可能なメイ
ンメモリよりかなり大きいときには、一貫して得られ
る。テストにおける順序付けは、Malik他による、
1988年11月のコンピュータ援用設計国際会議プロ
シィーディングの6乃至9ページのタイトルが「ロジッ
ク組み立て環境における二進決定図式を使用するロジッ
ク証明」という論文における順序付けアルゴリズムを使
用して生成された。
大きなROBDDを短ラン時間で構築し操作するための
本発明の能力を明確に示している。例えば、s9234
用の3.85百万ノードROBDDは、32MBだけの
メインメモリを持つSPARC2マシーン上に概ね25
分間構築される。同一のROBDDを創作するために
は、カーネギーメロン大学(CMU)から現在利用可能
なROBDDパッケージを使用すると概ね48時間必要
となる。本発明は120倍にスピードを増加する。同様
に、64MBのメモリを持つSPARC10/41マシ
ーン上に26時間中にs38417の第1の7509ゲ
ート用に約1億4百万ノードを持つROBDDを構築す
ることは、本発明を使用することにより可能である。C
MUパッケージは、同一のマシーン上に43時間中に第
1の4807ゲート用に7.8百万のノードを持つRO
BDDを構築することができる。上述の方法は、第1の
4807ゲート用に約40倍早い解を提供する。同様の
スピードの向上が、ROBDDサイズが利用可能なメイ
ンメモリよりかなり大きいときには、一貫して得られ
る。テストにおける順序付けは、Malik他による、
1988年11月のコンピュータ援用設計国際会議プロ
シィーディングの6乃至9ページのタイトルが「ロジッ
ク組み立て環境における二進決定図式を使用するロジッ
ク証明」という論文における順序付けアルゴリズムを使
用して生成された。
【0061】どんなブール演算でもITE動作により表
現され得る。これまでの記述はITE動作に関するが、
本発明は、これには限定されず、ITE動作によって表
現され得るどんなブール演算でも包含する。たとえブー
ル演算がITE動作により表現されず、広さ第1の二進
決定図式操作ルーチンが特定のブール演算のために特に
修正さるとしても、本発明は、同一の結果を実質的に達
成するためにITE動作を使用のときと同じように作用
する。たとえば、AND(f、g)=ITE(f、g、
0)である。図2、図3、および図4に示された疑似コ
ードは、ITE動作として表現せずにAND(f、g)
を特に直接行うように修正され得る。このような場合に
は、ブール演算を直接評価するための広さ第1の二進決
定図式操作ルーチンが応用される。
現され得る。これまでの記述はITE動作に関するが、
本発明は、これには限定されず、ITE動作によって表
現され得るどんなブール演算でも包含する。たとえブー
ル演算がITE動作により表現されず、広さ第1の二進
決定図式操作ルーチンが特定のブール演算のために特に
修正さるとしても、本発明は、同一の結果を実質的に達
成するためにITE動作を使用のときと同じように作用
する。たとえば、AND(f、g)=ITE(f、g、
0)である。図2、図3、および図4に示された疑似コ
ードは、ITE動作として表現せずにAND(f、g)
を特に直接行うように修正され得る。このような場合に
は、ブール演算を直接評価するための広さ第1の二進決
定図式操作ルーチンが応用される。
【0062】実際の使用においては、製造されるべき回
路は、本発明を使用するコンピュータ援用設計によって
メモリに内蔵された情報の形式でROBDDに変換され
る。その情報は、公知の方法でその回路を製造するため
の基本として使用される。
路は、本発明を使用するコンピュータ援用設計によって
メモリに内蔵された情報の形式でROBDDに変換され
る。その情報は、公知の方法でその回路を製造するため
の基本として使用される。
【0063】広さ第1の操作の好ましい実施例を詳細に
述べたが、本発明の特許請求の範囲だけに限定される広
い範囲の原理・精神から逸脱せずに様々な変形・修正が
可能であることは当業者には明らかであろう。
述べたが、本発明の特許請求の範囲だけに限定される広
い範囲の原理・精神から逸脱せずに様々な変形・修正が
可能であることは当業者には明らかであろう。
【0064】
【発明の効果】以上説明したように、本発明によれば、
大きなROBDDを操作するのに実用的なパッドノード
方法を備えたコンピュータ援用設計方法を提供できると
いう効果を奏する。
大きなROBDDを操作するのに実用的なパッドノード
方法を備えたコンピュータ援用設計方法を提供できると
いう効果を奏する。
【図1】幅第1の再帰ROBDD操作の疑似コードであ
る。
る。
【図2】幅第1のROBDD操作用の疑似コードであ
る。
る。
【図3】bf ite apply(F,G,H)アル
ゴリズムの疑似コードである。
ゴリズムの疑似コードである。
【図4】bf ite reduce()アルゴリズム
の疑似コードである。
の疑似コードである。
各図の左端の数字はプログラムの行数を示す。
Claims (21)
- 【請求項1】 製造すべき回路に対して縮小順序付け二
進決定図式を得るためのコンピュータ援用設計方法にお
いて、製造すべき前記回路の縮小順序付け二進決定図式
の表示を形成するために、おのおのが関連付けられたポ
インタアドレスを持つ複数のノードを備えるメモリにお
いて、前記回路に対するブール演算を評価するための幅
第1の二進図式操作ルーチンを応用する工程と、前記メ
モリからノードをフェッチせずにノードのポインタアド
レスからこのノードの可変インデックスを決定する工程
とを備えることを特徴とするコンピュータ援用設計方
法。 - 【請求項2】 請求項1に記載のコンピュータ援用設計
方法において、更に、メモリの隣接ブロックを各可変イ
ンデックスに関連させる工程を備えることを特徴とする
コンピュータ援用設計方法。 - 【請求項3】 請求項2に記載のコンピュータ援用設計
方法において、同一の可変インデックスを持つノードが
実質的に隣接するメモリ空間に位置することを特徴とす
るコンピュータ援用設計方法。 - 【請求項4】 請求項2に記載のコンピュータ援用設計
方法において、メモリのブロックを可変インデックスに
関連させる前記工程は、前記メモリにおいてブロックイ
ンデックス表を形成するステップと、前記ノードが位置
しているメモリブロックを決定するために前記縮小順序
付け二進決定図式のアドレスの予め定められたビットの
値を選択するステップと、前記ノードが位置している前
記メモリブロックと関連した可変インデックスを前記ブ
ロックインデックス表において調査し、それにより前記
メモリから前記ノードをフェッチせずに前記ノードの可
変インデックスを決定するステップとを備えることを特
徴とするコンピュータ援用設計方法。 - 【請求項5】 請求項4のコンピュータ援用設計方法に
おいて、ブール演算の要求は各インデックスの要求列を
維持することによるトップ可変インデックスの順に処理
され、インデックスを増やす順に前記要求列を処理する
ことを特徴とするコンピュータ援用設計方法。 - 【請求項6】 請求項5に記載のコンピュータ援用設計
方法において、列におけるブール演算の要求は、前記ブ
ール演算の要求によって発生した新しいブール演算の要
求のトップ可変インデックスの順に処理されることを特
徴とするコンピュータ援用設計方法。 - 【請求項7】 請求項6に記載のコンピュータ援用設計
方法において、子供ノードのトップ可変インデックスの
順により各インデックスのための冗長ノードをチェック
することを特徴とするコンピュータ援用設計方法。 - 【請求項8】 製造すべき回路に対して縮小順序付け二
進決定図式を得るためのコンピュータ援用設計方法にお
いて、製造すべき前記回路の縮小順序付け二進決定図式
の表示を形成するために、おのおのが関連付けられたポ
インタアドレスを持つ複数のノードを備えるメモリにお
いて、前記回路に対するbf iteを応用する工程
と、前記メモリからノードをフェッチせずにノードのポ
インタアドレスからこのノードの可変インデックスを決
定する工程とを備えることを特徴とするコンピュータ援
用設計方法。 - 【請求項9】 請求項8に記載のコンピュータ援用設計
方法において、各可変インデックスを持つメモリの隣接
ブロックと関連させる工程を更に備えることを特徴とす
るコンピュータ援用設計方法。 - 【請求項10】 請求項9に記載のコンピュータ援用設
計方法において、同一の可変インデックスを持つノード
は実質的に隣接メモリ空間に位置することを特徴とする
コンピュータ援用設計方法。 - 【請求項11】 請求項9に記載のコンピュータ援用設
計方法において、メモリにおいてブロックインデックス
表を形成する工程と、ノードの位置するメモリブロック
を決定するために縮小順序付け二進決定図式におけるノ
ードのアドレスの予め定められたビット値を選択する工
程と、前記ノードが位置する前記メモリブロックと関連
した可変インデックスを前記ブロックインデックス表に
おいて調査し、それにより前記メモリから前記ノードを
フェッチせずに前記ノードの可変インデックスを決定す
る工程を更に備えることを特徴とするコンピュータ援用
設計方法。 - 【請求項12】 請求項11に記載のコンピュータ援用
設計方法おいて、ITE要求は、各インデックスに対す
る要求列を維持しインデックスを増やす順にこの要求列
を処理することによって、トップ可変インデックスの順
で処理されることを特徴とするコンピュータ援用設計方
法。 - 【請求項13】 請求項12に記載のコンピュータ援用
設計方法おいて、列におけるITE要求は、このITE
要求によって生成された新しいITE要求のトップ可変
インデックスの順に処理されることを特徴とするコンピ
ュータ援用設計方法。 - 【請求項14】 請求項13に記載のコンピュータ援用
設計方法おいて、前記子供ノードのトップ可変インデッ
クスを増やす順により各インデックスに対する冗長ノー
ドをチェックしどのような冗長ノードをも除去する工程
を更に備えることを特徴とするコンピュータ援用設計方
法。 - 【請求項15】 製造すべき回路に対して縮小順序付け
二進決定図式を得るためのコンピュータ援用設計方法に
おいて、二進決定図式を得るため製造すべき前記回路に
アルゴリズムbf iteが応用されるように応用する
工程と、おのおのが関連したポインタアドレスを持つ複
数のノードを備えているメモリにおいて、製造すべき前
記回路の縮小順序付け二進決定図式の表示を得るため複
数の冗長ノードを除去するための前記二進決定図式にア
ルゴリズムbf iteが縮小されるように応用する工
程とを備えることを特徴とするコンピュータ援用設計方
法。 - 【請求項16】 請求項15に記載のコンピュータ援用
設計方法において、メモリの隣接ブロックを各可変イン
デックスと関連させる工程を更に備えていることを特徴
とするコンピュータ援用設計方法。 - 【請求項17】 請求項16に記載のコンピュータ援用
設計方法において、同一の可変インデックスを持つノー
ドは実質的に隣接するメモリ空間に位置することを特徴
とするコンピュータ援用設計方法。 - 【請求項18】 請求項16に記載のコンピュータ援用
設計方法において、メモリにおいてブロックインデック
ス表を形成する工程と、ノードの位置するメモリブロッ
クを決定するために縮小順序付け二進決定図式における
ノードのアドレスの予め定められたビット値を選択する
工程と、前記ノードが位置するメモリブロックと関連し
た可変インデックスを前記ブロックインデックス表にお
いて調査し、それにより前記メモリから前記ノードをフ
ェッチせずに前記ノードの可変インデックスを決定する
工程を更に備えることを特徴とするコンピュータ援用設
計方法。 - 【請求項19】 請求項18に記載のコンピュータ援用
設計方法において、ITE要求は、各インデックスに対
する要求列を維持しインデックスを増やす順にこの要求
列を処理することによって、トップ可変インデックスの
順で処理されることを特徴とするコンピュータ援用設計
方法。 - 【請求項20】 請求項19に記載のコンピュータ援用
設計方法において、列におけるITE要求は、このIT
E要求によって生成された新しいITE要求のトップ可
変インデックスの順に処理されることを特徴とするコン
ピュータ援用設計方法。 - 【請求項21】 請求項20に記載のコンピュータ援用
設計方法において、複数の冗長ノードを除去する前記工
程は、前記子供ノードのトップ可変インデックスを増や
す順により各インデックスに対する冗長ノードをチェッ
クしどのような冗長ノードをも除去するステップを備え
ることを特徴とするコンピュータ援用設計方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/331075 | 1994-10-28 | ||
US08/331,075 US5748486A (en) | 1994-10-28 | 1994-10-28 | Breadth-first manipulation of binary decision diagrams |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08129569A true JPH08129569A (ja) | 1996-05-21 |
JP2803710B2 JP2803710B2 (ja) | 1998-09-24 |
Family
ID=23292528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7264026A Expired - Lifetime JP2803710B2 (ja) | 1994-10-28 | 1995-10-12 | コンピュータ援用設計方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5748486A (ja) |
JP (1) | JP2803710B2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6091725A (en) * | 1995-12-29 | 2000-07-18 | Cisco Systems, Inc. | Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network |
GB9720648D0 (en) * | 1997-09-29 | 1997-11-26 | Sgs Thomson Microelectronics | Method and apparatus for proving system properties |
US6370119B1 (en) * | 1998-02-27 | 2002-04-09 | Cisco Technology, Inc. | Computing the widest shortest path in high-speed networks |
US7216306B1 (en) | 1999-03-24 | 2007-05-08 | Zhe Li | Checkpoint restart method using condensed partial results by determining boolean constant subsets |
US6651096B1 (en) * | 1999-04-20 | 2003-11-18 | Cisco Technology, Inc. | Method and apparatus for organizing, storing and evaluating access control lists |
US6577992B1 (en) | 1999-05-07 | 2003-06-10 | Nassda Corporation | Transistor level circuit simulator using hierarchical data |
US6282694B1 (en) * | 1999-06-18 | 2001-08-28 | Chung-Kuan Cheng | IC design floorplan generation using ceiling and floor contours on an O-tree structure |
US6389576B1 (en) * | 1999-09-02 | 2002-05-14 | Sun Microsystems, Inc. | Method and apparatus for optimizing real functions in Boolean domain |
US6336206B1 (en) * | 1999-09-27 | 2002-01-01 | Synopsys, Inc. | Method and apparatus for structural input/output matching for design verification |
US7324514B1 (en) * | 2000-01-14 | 2008-01-29 | Cisco Technology, Inc. | Implementing access control lists using a balanced hash table of access control list binary comparison trees |
US20040117804A1 (en) * | 2001-03-30 | 2004-06-17 | Scahill Francis J | Multi modal interface |
US6609234B2 (en) * | 2001-06-29 | 2003-08-19 | Intel Corporation | Ordering binary decision diagrams used in the formal equivalence verification of digital designs |
US7506278B1 (en) | 2005-03-08 | 2009-03-17 | Xilinx, Inc. | Method and apparatus for improving multiplexer implementation on integrated circuits |
US7581199B1 (en) * | 2005-08-08 | 2009-08-25 | National Semiconductor Corporation | Use of state nodes for efficient simulation of large digital circuits at the transistor level |
US10333696B2 (en) | 2015-01-12 | 2019-06-25 | X-Prime, Inc. | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5029102A (en) * | 1987-06-08 | 1991-07-02 | International Business Machines, Corp. | Logical synthesis |
US5099450A (en) * | 1988-09-22 | 1992-03-24 | Syracuse University | Computer for reducing lambda calculus expressions employing variable containing applicative language code |
US5243538B1 (en) * | 1989-08-09 | 1995-11-07 | Hitachi Ltd | Comparison and verification system for logic circuits and method thereof |
US5477474A (en) * | 1992-10-29 | 1995-12-19 | Altera Corporation | Computer logic simulation with dynamic modeling |
-
1994
- 1994-10-28 US US08/331,075 patent/US5748486A/en not_active Expired - Fee Related
-
1995
- 1995-10-12 JP JP7264026A patent/JP2803710B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2803710B2 (ja) | 1998-09-24 |
US5748486A (en) | 1998-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Somenzi | Binary decision diagrams | |
Sanghavi et al. | High performance BDD package by exploiting memory hierarchy | |
Mellor-Crummey et al. | Improving memory hierarchy performance for irregular applications | |
Sugumar et al. | Efficient simulation of caches under optimal replacement with applications to miss characterization | |
Miller et al. | Implementing a multiple-valued decision diagram package | |
US5630097A (en) | Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses | |
Somenzi | Efficient manipulation of decision diagrams | |
JPH08129569A (ja) | コンピュータ援用設計方法 | |
Ashar et al. | Efficient breadth-first manipulation of binary decision diagrams | |
CN1667622B (zh) | 使用形式技术的设计验证 | |
JPH08212136A (ja) | 仮想メモリ変換処理を効率的に共有する方法及び装置 | |
Ladner et al. | Cache Performance Analysis of Traversals and Random Accesses. | |
JPH05509189A (ja) | コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置 | |
Tu et al. | Etree: A database-oriented method for generating large octree meshes | |
US5923837A (en) | Method of accessing data using approximate data structures | |
Musuvathi et al. | An incremental heap canonicalization algorithm | |
US6968428B2 (en) | Microprocessor cache design initialization | |
Jiménez-González et al. | CC-Radix: a cache conscious sorting based on Radix sort | |
Stergiou et al. | Dynamically resizable binary decision diagrams | |
Fent et al. | Start—self-tuning adaptive radix tree | |
Balakrishnan et al. | Fluid data structures | |
JP2000057203A (ja) | ネットリスト変換の使用によるレベル化コンパイル済みコ―ドのシミュレ―ション方法 | |
Saab | Parallel-concurrent fault simulation | |
JP2003186866A (ja) | データ駆動型情報処理装置およびその処理方法 | |
US7290085B2 (en) | Method and system for flexible and efficient protocol table implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19980617 |