JP2003503800A - ロジック・イベント・シミュレーション - Google Patents

ロジック・イベント・シミュレーション

Info

Publication number
JP2003503800A
JP2003503800A JP2001507236A JP2001507236A JP2003503800A JP 2003503800 A JP2003503800 A JP 2003503800A JP 2001507236 A JP2001507236 A JP 2001507236A JP 2001507236 A JP2001507236 A JP 2001507236A JP 2003503800 A JP2003503800 A JP 2003503800A
Authority
JP
Japan
Prior art keywords
register
gate
associative
logic
delay
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.)
Pending
Application number
JP2001507236A
Other languages
English (en)
Inventor
ダルトン,ダミアン
Original Assignee
ネオセラ・システムズ・リミテッド
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 ネオセラ・システムズ・リミテッド filed Critical ネオセラ・システムズ・リミテッド
Publication of JP2003503800A publication Critical patent/JP2003503800A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model 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)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 本発明では、ロジック・シミュレーションの並列処理方法であって、ライン上の信号をある時間期間にわたりビット・シーケンスとして表すステップと、任意の内在的な遅延の評価を含む任意のロジック・ゲートの出力を、所定の一連のビット・パターンへの入力のビット・シーケンスを比較することによって評価するステップと、を含んでおり、その出力が前記時間期間の間に変化したロジック・ゲートは前記ゲート出力の評価の間に真のゲート変化として識別され、前記真のゲート変化だけがファンアウト・ゲートまで伝搬され、この方法の制御は連想メモリ機構において実行され、前記連想メモリ機構は、ロジック・ゲートの状態変化のヒット・リスト・レジスタをコンパイルし、更に、それぞれのヒットに対してアドレスを発生するこの連想メモリ機構の複数応答レゾルバ形成部分を用いることにより、ゲート入力信号の履歴をワード形式で記憶し、前記ヒット・リスト上の結果を後の使用のために出力レジスタに転送する、方法が提供される。本発明は、レジスタ又はヒット・リストの少なくとも一方の分割のセグメント化をすることによって、計算時間を短縮する。更に、本発明は、信号遅延をモデル化することによるライン信号の伝播の処理方法にも関係する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、ロジック・シミュレーションの並列処理方法であって、ライン上の
信号をある時間期間にわたりビット・シーケンスとして表すステップと、任意の
内在的な遅延の評価を含む任意のロジック・ゲートの出力を、所定の一連のビッ
ト・パターンへの入力のビット・シーケンスを比較することによって評価するス
テップと、を含んでおり、その出力が前記時間期間の間に変化したロジック・ゲ
ートは前記ゲート出力の評価の間に真のゲート変化として識別され、前記真のゲ
ート変化だけがファンアウト・ゲートまで伝搬され、この方法の制御は連想メモ
リ機構において実行され、前記連想メモリ機構は、ロジック・ゲートの状態変化
のヒット・リスト・レジスタをコンパイルし、更に、それぞれのヒットに対して
アドレスを発生するこの連想メモリ機構の複数応答レゾルバ形成部分を用いるこ
とにより、ゲート入力信号の履歴をワード形式で記憶し、前記ヒット・リスト上
の結果を後の使用のために出力レジスタに転送する、方法に関する。出力レジス
タは、シミュレーションの最終的な結果を含むか、又は、他のゲートへの以後の
ファンアウトに用いられる出力のリストでありうる。更に、本発明は、ロジック
・イベント・シミュレーションのための並列プロセッサ(APPLES)を提供
することに関する。
【0002】
【従来の技術】
ロジック・シミュレーションは、VLSI回路の設計及び確認において重要な
役割を演じる。回路のサイズと複雑さが増大すると、この設計ツールの処理速度
を加速させることが常に要求される。並列処理は、産業界では、この目的を達成
するための最良の方法であると受け止められており、多数の並列処理システムが
開発されてきた。しかし、不幸にも、大幅な高速化は、このアプローチを用いて
いない。より高度な高速化の数字は得られているが、そのような数字は、これら
のシステムにおいて用いられているゲート遅延モデルの精度を犠牲にすることに
よって得られたものである。複数のプロセッサの間で値を移動させることに起因
する大きな通信オーバーヘッドのために、デッドロックを回避し又はデッドロッ
クから回復する方策が苦心して作られてきたが、負荷均衡化技術が、主な障害で
ある。
【0003】 VLSI回路のサイズがますます大型化することにより、デジタル回路をシミ
ュレートする高速で正確な手段に対する必要性が強調されてきた。モデルの正確
性と計算上のフィージビリティとの間の妥協が、ロジック・シミュレートにおい
て見られる。このシミュレート・パラダイムでは、信号値は離散的であり、最も
単純な場合には論理値0及び1を取りうる。より複雑な過渡的状態の信号値も、
9状態論理までを用いてモデル化されている。ロジック・ゲートは、スイッチン
グ時間がゼロである理想的素子として、そして、より現実的に、慣性、純粋又は
曖昧な遅延などの有限の遅延及びスイッチング特性を備えた電子素子として、モ
デル化することができる。
【0004】 大型の回路に対する計算上の努力は膨大であるから、並列処理をこの問題に適
応することは、これまでも、試みられてきた。しかし、不運にも、ほとんどのシ
ステム及びアプローチに対する大幅な高速化の性能は、得られていない。
【0005】 シーケンシャルな(1プロセッサによる)ロジック・シミュレーションは、大
きくは、コンパイル型コードとイベント駆動型シミュレーションとの2つのカテ
ゴリに分けることができる(Breur et al.: Diagnosis and Reliable Design of
Digital Systems, Computer-Science Press, New York, 1976)。これらの技術
は、回路をプロセッサの間で分割することによって、並列環境において用いるこ
とができる。コンパイル型のコード・シミュレーションでは、すべてのゲートが
、アクティブでない場合であっても、すべての時点のステップにおいて評価され
る。回路は、平準化され、単位又はゼロ遅延のモデルだけを用いることができる
。シーケンシャルな回路は、このタイプのシミュレーションに関しても困難を提
供する。コンパイル型のコード機構は、IBM、ロジック・シミュレーション・
マシンLSM(Howard et al.: Introduction to the IBM Los Gatos Simulatio
n Machine, Proc. IEEE Int. Conf. Computer Design: VLSI in Computers, Oct
1982, 580-583)、ヨークタウン・シミュレーション・エンジン(Pfister: The
Yorktown Simulation Engine, Introduction 19th ACM/IEEE Design Automatio
n Conf., June 1982, 51-54)、及びエンジニアリング確認エンジンEVE(Dun
n: IBM's Engineering Design System Support for VLSI Design and Verificat
ion, IEEE Design and Test Computers, February 1984, 30-40)によって設計
された特別の並列ハードウェア・アクセラレータのいくつかの発生に適用され、
毎秒2億2千万回のゲート評価という性能に関する数字も報告されている。Agra
wal et al.: Logic Simulation and Parallel Processing International Confe
rence on Computer Aided Design (1990)では、複数の回路の動作を解析してお
り、その結果は、任意の時点において、回路の動作(すなわち、出力が変化状態
にあるゲート)は、典型的には1%から0.1%の範囲にあることが示されてい
る。従って、これらのエンジンのゲート評価の実際の数は、100分の1以上も
小さいことになる。様々なコンパイル型のコード・ベンチマーク回路では高速化
の値は6から13の範囲であるということが、Soule and Blank: Parallel Logi
c Simulation on General purpose machines, Proc. Design Automation Conf,
June 1988, 166-171による共有メモリMIMDアンコール・マルチマックス・マ
ルチプロセッサ上で観察された。SIMD(アレイ)バージョンも、Kravitz(M
ueller-Thuns et al.: Benchmarking Paralell Processing Platforms: An Appl
ication Perspective, IEEE Trans on Parallel and Distributed Systems, 4 N
o. 8, Aug 1933)において調べられており、類似の結果が得られている。
【0006】 コンパイル型のコード・シミュレータの内在的な単位遅延モデルは、多くの応
用例にとって、過渡に単純である。 コンパイル型コード・シミュレーションのいくつかの遅延モデルの制限は、並
列のイベント駆動型技術において、取り除かれてきた。これらの並列アルゴリズ
ムは、大部分が、2つのフェーズから構成されている。すなわち、ゲート評価フ
ェーズと、イベント・スケジューリング・フェーズとである。ゲート評価フェー
ズでは、変化しているゲートを識別する。スケジューリング・フェーズでは、こ
れらの変化に影響を受けているゲート(ファンアウト・ゲート)を、現在時間と
アクティブ・ゲートの遅延とによって決定される時間的な順序が付けられリンク
されたスケジュール・リストに配置する。Soule and Blank: Parallel Logic Si
mulation on General purpose machines, Proc. Design Automation Conf, June
1988, 166-171と、Mueller-Thuns et al.: Benchmarking Paralell Processing
Platforms: An Application Perspective, IEEE Trans on Parallel and Distr
ibuted Systems, 4 No. 8, Aug 1933とでは、共有及び分散型の両方のメモリ同
期イベントのMIMDアーキテクチャが調べられている。また、全体的な性能は
喜ばしいものではなく、8プロセッサのアンコール・マルチマックス及び8プロ
セッサのiPSCハイパーキューブの上で実行されたいくつかのベンチマークの
結果は、高速化の値が3から5の範囲に過ぎないことを示している。
【0007】 非同期イベント・シミュレーションによると、制限されたプロセッサの自律が
許容される。因果関係に関する制約によって、複数のプロセッサの間の頻繁な同
期とイベントのロールバックとが必要になる。Chandy and Misra: Asynchronous
Distributed Simulation via Sequence of Parallel Computations, Comm ACM
24(ii), April 1981, 198-206と、Bryant: Simulation of Packet Communicatio
ns Architecture Computer Systems, Tech Report MIT-LSC-TR-188, MIT, Cambr
idge, 1977では、デッドロックを回避するアルゴリズムが開発されている。それ
に対して、Briner: Parallel Mixed Level Simulation of Digital Circuits Vi
rtual Time, Ph.D. thesis, Dept of El Engineering, Duke university, 1990
と、Jefferson: Virtual Time, ACM Trans Programming Languages Systems, Ju
ly 1985, 404-425では、デッドロックからの回復に基づくアルゴリズムが探求さ
れている。共有及び分散メモリ非同期MIMDすsyに対する最良の高速化性能
の数値は、14プロセッサのシステムの場合に8.5であり、32プロセッサの
BBNシステムの場合に20である。
【0008】 負荷の均衡化、回路分割及び分散型のキューなどの最適化方法が、この最良の
高速化の数字を実現するのに必要である。不運にも、これらの機構は、それ自体
では、中程度のサイズの並列システムの場合であっても、大きなオーバーヘッド
通信コストを生じさせる。更に、ゲート評価プロセスは、僅かなプロセスであっ
ても、10から250までの範囲のマシン・サイクルが、ゲート評価に必要とな
る。
【0009】
【発明の概要】
本発明は、ロジック・イベント・シミュレーションのための連想並列プロセッ
サのための方法及びプロセッサで構成される。本発明によるプロセッサは、この
明細書ではAPPLESと称するが、離散的なイベント・ロジック・シミュレー
ションのために特に設計され、そのような並列処理方法を実行する。まとめると
、本発明は、メモリにおけるゲート評価を提供し、走査技術によって、プロセッ
サ相互間の通信を代替する。更に、走査機構が、並列化を容易にするように構成
され、広範囲の遅延モデルを用いることができる。
【0010】 本質的には、従って、ロジック・シミュレーションの並列処理方法であって、
ライン上の信号をある時間期間にわたりビット・シーケンスとして表すステップ
と、任意の内在的な遅延の評価を含む任意のロジック・ゲートの出力を、所定の
一連のビット・パターンへの入力のビット・シーケンスを比較することによって
評価するステップと、を含んでおり、その出力が前記時間期間の間に変化したロ
ジック・ゲートは前記ゲート出力の評価の間に真のゲート変化として識別され、
前記真のゲート変化だけがファンアウト・ゲートまで伝搬される方法が提供され
る。この方法の制御は連想メモリ機構において実行され、前記連想メモリ機構は
、ロジック・ゲートの状態変化のヒット・リスト・レジスタをコンパイルし、更
に、それぞれのヒットに対してアドレスを発生するこの連想メモリ機構の複数応
答レゾルバ形成部分を用いることにより、ゲート入力信号の履歴をワード形式で
記憶し、前記ヒット・リスト上の結果を後の使用のために出力レジスタに転送す
る。
【0011】 本発明の中心的な特徴の1つとして、レジスタ又はヒット・リストの少なくと
も一方を、より小さなレジスタ又はヒット・リストにセグメント化又は分割して
、計算時間を短縮することである。非常に重要な別の特徴として、信号遅延をモ
デル化することによるライン信号偏パターンの取扱がある。最後に、本発明によ
る方法によると、シミュレーションを、任意に選択された時間期間で実行するこ
とが可能になる。
【0012】 連想レジスタは、別個のより小さな連想サブレジスタに分割され、それぞれの
連想サブレジスタには1つのタイプのロジック・ゲートが配分されており、前記
連想サブレジスタはそれぞれがそれ自体に接続された対応するサブレジスタを有
することによって、ゲート評価及びテストがそれぞれの連想サブレジスタ上で並
列に実行される。
【0013】 あるいは、シミュレーションの対象である回路が大きすぎる場合に、ヒット・
リストを複数の別個のより小さなヒット・リストにセグメント化することによっ
て、十分なシミュレーションを達成することができる。その際に、それぞれのよ
り小さなヒット・リストは、この場合には、別個の走査レジスタに接続され、そ
れぞれの走査レジスタは、並列に動作して、結果を出力レジスタに転送する。こ
れにより、これらの並列プロセッサにおける特定の計算上の問題が解決され、シ
ミュレーションの全体を著しく高速化する。
【0014】 更に、本発明は、複数の別個の連想サブレジスタを備えた連想メモリ機構を有
することを本質とするAPPLESを提供する。複数の連想サブレジスタは、そ
れぞれが、特定のタイプのロジック・ゲートへのゲート入力信号の履歴をワード
形式で記憶する。更に、それぞれの連想サブレジスタと関連付けされた別個の追
加的なサブレジスタが多数存在し、それによって、ゲート評価及びテストを連想
サブレジスタ上で並列的に実行することができる。
【0015】 本発明の方法においては、それぞれの連想サブレジスタは、対応する別個の走
査レジスタに接続されたヒット・リストを形成するのに用いられる。 理想的には、前記1つのタイプのロジック・ゲートの数が所定の数を超える場
合には、複数のサブレジスタが用いられる。
【0016】 理想的には、走査レジスタは、ORゲートを用いた例外ロジックを用いて制御
され、それによって、前記走査は、前記ORゲートが状態を変化させるとそれぞ
れのレジスタに対して終了し、従って、それ以上の一致がないことを指示する。
ここで、所定の数は、計算上の負荷によって決定される。
【0017】 本発明による走査は、前記ヒット・リストの中のシーケンシャルなカウントに
よって実行され、更に、 前記ビットがヒットを指示するように設定されているかどうかをチェックする
ステップと、 ヒットの場合には、そのヒットによって達成されるアドレスを決定するステッ
プと、 前記アドレスを記憶するステップと、 前記ヒット・リストにおける前記ビットをクリアするステップと、 前記ヒット・リストの中の次の位置に移動するステップと、 前記ヒット・リストがクリアされるまで、以上のステップを反復するステップ
と、 が実行される。
【0018】 明らかに、ファンアウトが生じると、その結果、複数のアドレスが影響を受け
る。 本発明のある特定の実施例では、ターゲット・ロジック・ゲートへのそれぞれ
のライン信号は、ある時間期間の遅延をそれぞれが表す複数のビットとして記憶
され、前記集合体ビットは、前記ターゲット・ロジック・ゲートへの信号出力と
前記ターゲット・ロジック・ゲートによる受取りとの間の遅延を表す方法が提供
される。時間期間は、任意の選択され、1ナノ秒以下のオーダーである。時間期
間が人に選択されるという事実は非常に重要なことであるが、その理由は、複数
の異なる時間期間の間、回路をシミュレートすることが可能になるからである。
更に、ロジック・ゲートの間のライン信号の転送に内在する遅延の影響は、回路
の構成要素の応答時間が短くなればなるほど、ますます重要になる。
【0019】 この実施例では、それぞれの遅延は、前記連想メモリ機構の一部を形成する連
想メモリに遅延ワードとして記憶され、 前記遅延ワードの長さが確認され、前記遅延ワードの幅が前記連想レジスタ・
ワード幅を超える場合には、 前記遅延ワードの中に含まれるレジスタ・ワード幅の整数倍の数が、ゲート
状態として計算され、 前記ゲート状態は、別の状態レジスタに記憶され、 前記計算からの剰余は、幅が前記連想レジスタ・ワード幅を超えなかった遅
延ワードと共に、前記連想レジスタに記憶され、 前記連想レジスタのカウントが開始すると、 前記状態レジスタは当該状態レジスタに入力された遅延ワードを参照され、
前記剰余は前記連想レジスタのこのカウントに対して無視され、 前記連想レジスタのカウントの終了時には、前記状態レジスタが更新され、 前記カウントは、前記カウントが依然として必要であることを前記剰余が表
すまで継続する。
【0020】 本発明を実行するには、初期化フェーズが実行されるのであるが、このフェー
ズでは、特定された信号値が入力され、特定されない信号値は未知として設定さ
れ、それぞれのロジック・ゲートに対する遅延モデルを定義するテスト・テンプ
レートが準備され、入力回路がパージングされて、2入力型ロジック・ゲートで
構成される等価回路が発生され、前記2入力型ロジック・ゲートが構成される。
【0021】 本発明では、多値ロジックが適用され、nビットが任意の時点における信号値
を表すのに用いられる。ただし、nは任意に選択されたロジックである。特に適
切なものとして、8値のロジックがあり、その場合には、000はロジック0を
表し、111はロジック1を表し、001から110は任意に定義されたそれ以
外の信号状態を表す。
【0022】 本発明の特徴の1つは、ロジック・ゲート上の一連の値が、一意的なワードを
形成するビット・パターンとして、連想メモリ機構に記憶されるということであ
る。これにより、ロジック・ゲートが回路における最長の遅延の遅延のユニット
に対して取得したすべての値の記録を記憶することが可能になる。
【0023】
【発明の実施の形態】
本発明は、例として与えられている以下の実施例の説明を、添付の図面を参照
して読むことによって、より明瞭に理解することができる。
【0024】 並列ロジック・シミュレートのための本質的な基本タスクは、次の通りである
。 1.ゲート評価 2.遅延モデルの実現 3.ファンアウト・ゲートの更新 特定の並列ロジック・シミュレート・アーキテクチャのための設計フレームワ
ークは、並列に実行することができる本質的な基本シミュレート動作を識別し、
これらの動作をサポートし当該並列システムに完全に内在的であるタスクを最小
化することによって、創始された。
【0025】 本発明は、以上の目的を考慮にいれ、いくつかの特別な連想メモリブロックと
ハードウェアとをAPPLESアーキテクチャに組み入れる。 ゲート評価/遅延モデルの実現及び更新/ファンアウト・プロセスを、図1の
APPLESアーキテクチャを参照しながら説明する。
【0026】 図1を参照すると、APPLESプロセッサの機能ブロックが示されている。
ゲート評価に関係するブロックは、連想(associative)アレイ1a1と、入力
値レジスタ・バンク2と、連想アレイ1bと、テスト結果レジスタ・バンク4と
、グループ結果レジスタ・バンク5と、グループ・テスト・ヒット・リスト6と
である。グループ・テスト・ヒット・リストは複数応答レゾルバ7に至り、複数
応答レゾルバ7はファンアウト・メモリ8を入力値レジスタ・バンク2に接続さ
れたアドレス・レジスタ9に与える。連想アレイ1は連想マスク・レジスタ1a
と入力レジスタ1aとを有し、それに対して、連想アレイ1bはマスク・レジス
タ1bと入力レジスタ1bとを有する。同様に、テスト結果レジスタ・バンク4
は結果アクティブ・レジスタ14を有し、グループ結果レジスタ・バンク5はマ
スク・レジスタ15と入力レジスタ16とを有する。最後に、入力値レジスタ・
バンク17が提供される。連想アレイとは別に、グループ結果レジスタ・バンク
が並列サーチ装置を有している。これらの中のワード数とは関係なく、構造は、
一定時間で並列にサーチすることができる。更に、入力値レジスタ・バンク17
と連想アレイ1bとは、メモリに存在する間に、並列に右にシフトさせることが
できる。
【0027】 ゲートは、その入力ワイヤ値が既知となれば、評価することができる。従来型
の1プロセッサ及び並列システムでは、これらの値は、メモリに記憶されており
、ゲートが付勢されると、プロセッサによってアクセスされる。APPLESで
は、ゲート信号値は、連想メモリ・ワードに記憶される。ある時間期間の間に特
定のワイヤ上に現れた信号値の連続が、時間的な順序の付いたシーケンスで、与
えられた連想メモリ・ワードに記憶される。例えば、バイナリ値モデルは、32
ビット・ワードで、最後の32の時間間隔にわたって現れたワイヤ値の履歴を記
憶することができる。ゲート評価は、連想メモリにおける適切な信号値を並列に
サーチすることによって、進行する。関係のないワードの部分(例えば、4ユニ
ットのゲート遅延モデルでは、最も最近の4ビットだけが関係ある)は、メモリ
の入力及びマスク・レジスタの組合せによって、サーチから除外(マスク・アウ
ト)される。与えられたゲート・タイプ(例えば、ANDやOR)やゲート遅延
モデルに対して、出力の変化を生じさせるためには、入力信号の構造に関する要
件が存在する。連想メモリにおけるそれぞれのパターン・サーチは、必要な構造
のある属性を有する信号値を検出する(例えば、最後の3時間ユニットの間にハ
イになった信号など)。すべての属性を有するワイヤは、アクティブなゲートを
示す。ワイヤ値は、メモリ・ブロックが指定された連想アレイ1bに記憶される
(ワード・ライン・レジスタ・バンク)。与えられたサーチ・パターンと関係す
るゲート・タイプだけが選択される。これは、ゲート・タイプをそれぞれのワー
ドにタグとして付けることによって達成される。これらのタグは、連想アレイ1
aに保持される。特定のゲート・タイプが、連想アレイ1aの中の指定されたタ
グの並列サーチによって付勢される。
【0028】 単純な評価機構とは、ワイヤは、それらが流れ込むゲート・タイプによって識
別されなければならないことを意味する。その理由は、異なるゲート・タイプは
、それらを付勢スペクトル異なる入力ワイヤ・シーケンスを有するからである。
あるタイプのゲートは、連想アレイ1aにおけるゲート・タイプ識別しに関する
並列サーチによって選択される。
【0029】 それぞれの信号属性は、メモリのビット・パターン・サーチに対応する。付勢
された1つのゲートには複数の属性が要求されるのが通常であるから、複数のパ
ターン・サーチの結果を記録しなければならない。これらのサーチは、ワードに
関するテストであると考慮することができる。
【0030】 テストの結果は、成功かそうでないかのいずれかである。これは、テスト結果
レジスタ・バンクと称されるレジスタ・バンクに保持されている別のレジスタの
中の対応するワードの中の1ビットとして記録することができる。それぞれのゲ
ートは2つの入力を有していると想定されるから(インバータと複数の入力ゲー
トとは、2入力ゲート回路の等価物に翻訳される)、テストは、このバンクにお
けるワードの対の上に組み合わされる。この組合せ機構は、ある遅延モデルに特
定であり、結果付勢化(result-activator)レジスタによって定義され、ワード
対におけるビットの間のAND又はOR演算によって構成される。
【0031】 それぞれのワード対のそれぞれの組合せの結果は、ゲート評価プロセスの最終
段階であるが、別の連想アレイであるグループ結果レジスタ・バンク5における
1ワードとして記憶される。アクティブなゲートは、このバンクにおいて一意的
なビット・パターンを有し、このビット・パターンに対する並列サーチによって
識別することができる。このサーチの成功裏な候補な、そのビットを、1ビット
・コラム・レジスタ・グループ・テスト・ヒット・リストにおいて設定する。
【0032】 テスト結果レジスタ・バンク4におけるすべてのゲート対のそれぞれのコラム
位置におけるビットは、結果付勢化レジスタにおいて定義された論理演算子に従
って組み合わされる。それぞれのコラムにおけるビットは、時間的にシーケンシ
ャルに組み合わされ、テスト結果レジスタ・バンク4における出力ラインの数を
減少させる。このようにして、それぞれのコラム位置に対する1つのワイヤでは
なく、テスト結果レジスタ・バンクにおけるそれぞれのゲート対に対して、ただ
1つの出力ラインが存在する。
【0033】 テスト結果レジスタ・バンク4におけるゲート対の組合せの結果は、グループ
結果レジスタ・バンク5の中にコラムごとに書き込まれる。ただ1つの並列なコ
ラムが、特定のクロック・エッジにおいて書き込まれる。これは、グループ結果
レジスタ・バンク5への入力ワイヤが、テスト結果レジスタ・バンクにおけるゲ
ート対当たり、ただ1つ必要であることを意味している。これにより、テスト結
果レジスタ・バンクからグループ結果レジスタ・バンクへの接続の数を減少させ
ることができる。
【0034】 走査レジスタは、他の走査レジスタが消勢されている間にデクリメント又はイ
ンクリメントすることができる限り独立であるが、1つのクロック信号によって
同時にクロックされる。
【0035】 走査レジスタの最適な数は、あるヒットがヒット・リストにおいて検出される
確率の逆数によって与えられる。 本質的であるのは、ヒット・リストにおけるすべてのビットのOR演算はクロ
ック周期の1つのエッジにおいて計算され、いつすべてのヒット・ビットがクリ
アになるかを判断し、同じクロック・サイクルの逆のエッジにおいて、そのファ
ンアウト・リストへのアクセスを与えられた任意の走査レジスタが、それ自身が
検出したヒット・ビットをクリアすることが許されているということである。こ
のアクセスは、待機セマフォア(wait semaphore)システムによって、一度にた
だ1回のアクセスだけがそれぞれの1ポート型メモリに対してなされることが確
実になるように、制御される。
【0036】 別のシステムは、マルチポート型のファンアウト・メモリによって構成されて
おり、このメモリは、それぞれに同時に同時にアクセスできるいくつかのメモリ
・バンクによって構成されている。システム内のそれぞれのメモリ・バンクは、
それ自体のセマフォア制御機構を有する。
【0037】 別の方法は、入力値レジスタにおけるファンアウト・リストの入力をイネーブ
ルするヒット・ビットを有する。ヒット・リストから入力値レジスタ・バンクに
おける適切な要素へのイネーブル接続は、シミュレートの開始よりも前になされ
、シミュレーション対称の回路におけるゲートの間の接続性によって決まる。こ
れらの接続は、ヒット・リストの要素をそのファンアウト入力に物理的にルーテ
ィングすることができるFPGA(フィールド・プログラマブル・ゲート・アレ
イ)などの動的に構成されたデバイスによってなされる。このプロセスでは、こ
のように接続されたすべてのアクティブなファンアウト要素は同時にイネーブル
され、同じ論理値を用いて並列に更新される。
【0038】 制御コアは、同期のとれた自己規制式の一連のイベントによって構成される。
このイベントは、一例であるベリログ・コードでは、e0、e1、e2などとし
て識別される。1つのイベントは、主なタスクの完了に対応する。自己規制式(
self-regulation)というのは、この一連のイベントを制御するソフトウェアが
存在しないことを意味する。ただし、プロセッサの外部のソフトウェアが、プロ
セッサの状態に関する情報を求める場合はありうる。更に、これは、この設計に
はマイクロプログラミングが含まれないことも意味する。これによって、マイク
ロプログラムのなされたユニットの必要がなくなり、処理速度が向上する。
【0039】 例えばe20によって制御されるファンアウト更新動作においては、複数応答
レゾルバ(multiple response resolver)7がそれ以上のヒットを検出しないイ
ベントがこの動作を終了させることが本質的である。この動作を、すべてのヒッ
ト・リストが走査されたイベントによって終了させるという選択肢もある。しか
し、それ以上のヒットは存在しないということが検出されると、このファンアウ
ト更新手順を早い時期に終了させることが可能であり、この手順の実行時間を高
速化することになる。
【0040】 いくつかの論理装置は、連想アレイ1bのワードにおいて表現可能な時間フレ
ームを超える遅延を有することがある。ある状態をあるゲート・タイプに関連付
けることによって、より大きな遅延をモデル化することも可能である。この場合
には、ゲートとその状態とは、連想アレイ1aにおいて定義される。テストは連
想アレイ1bにおいて実行され、ある状態を有するゲートが影響を受ける可能性
があるゲートのファンアウト成分に加えて何らかの臨界的(クリティーク)な入
力値を送るときに、ゲート状態が連想アレイ1aにおいて修正される。この新た
な状態は、また、新たな出力値をゲートのファンアウト・リストに帰することも
可能である。適用されるテストは、ゲート・タイプ及び状態によって、決定され
る。この機構では、ゲートのファンアウト・リストは、通常ファンアウト入力と
ゲート自体の連想アレイ1aにおけるアドレスとを含む。
【0041】 状態が又は状態とファンアウト・ゲートとの両方が更新されるべきかどうかを
決定するために、この状態(バイナリ値)は、ゲートのファンアウト更新データ
・ファイルへのオフセットとして機能することがある。状態は、ゲートのデータ
・ファイルそれぞれの開始位置に加算され、それによって、ゲートの通常のファ
ンアウト・リストをバイパスする又はしないことが可能になる。
【0042】 シミュレートされる論理装置の間の相互接続は、以下で説明する大遅延モデル
を用いてモデル化することができる。更に、単一のワイヤを、連想アレイ1aと
連想アレイ1bとテスト結果レジスタ・バンク4とにおいて、2ワードではなく
1ワードによって、モデル化することができる。分岐点は、別の分岐点に異なる
遅延特性を有することを許す別個のワイヤとして、モデル化される。
【0043】 効率的な実現には、連想アレイ1aと連想アレイ1bとテスト結果レジスタ・
バンクとの単一ワード点バージョンを用いる。 APPLESのゲート評価機構は、あるタイプのゲートを選択し、一連のビッ
ト・パターン・サーチ(テスト)をそのゲートに与え、それぞれのパターン・サ
ーチの結果を記録し、すべての必要なテストを満足したものを決定することによ
って、アクティブなゲートを確認する。この機構は、一定時間でゲート評価を実
行する。というのは、配列サーチは、ワード数とは独立であるからである。これ
は、評価動作に対する有効な線形の高速化である。また、これは、異なる遅延モ
デルを容易にもするのであるが、その理由は、遅延モデルは1組のサーチ・パタ
ーンによって定義することができるからである。これに関しては、以下で、更に
論じる。
【0044】 アクティブ・ゲートは、そのビットを、コラム・ヒット・リストに設定する。
複数応答レゾルバは、上から下までリストの全体を検査する1つのカウンタであ
るっことができ、このカウンタは、設定されたビットに遭遇したときに停止し、
その現在値を、識別されたアクティブ・ゲートのファンアウト・リストのための
ベクトルとして用いる。このリストは、入力値レジスタ・バンクにおけるファン
アウト・ゲート入力のアドレスを有している。アクティブ・ゲートの新たな論理
値は、このバンクの適切なワードに書き込まれる。
【0045】 そして、リストの剰余を通じてデクリメントしこのプロセスを頒布する前に、
このビットはクリアされる。すべてのヒット・ビットは、相互にOR演算がなさ
れ、それによって、すべてのビットがクリアになる。これは、直ちに検出するこ
とができ、これ以上の走査は必要ない。
【0046】 複数応答レゾルバでは、複数の走査レジスタを用いて、コラム・ヒット・リス
トを並列に走査することができる。それぞれは、2つ又はそれよりも多くのレジ
スタが同時に1つのヒットを検出してクラッシュが生じる場合以外は、自律的に
動作する。そして、それぞれの走査レジスタは、そのファンアウト・リストにア
クセスして更新することが任意に許可されるまで、待機しなければならない。そ
れぞれのレジスタは、等しいサイズの部分を走査する。クラッシュの頻度は、そ
れぞれの走査レジスタに対するヒットの確率に依存し、典型的には、この確率は
、デジタル回路の場合、0.01から0.001の間である。APPLESにお
けるタイミング機構によって、アクティブ・ゲートだけが識別されることが可能
になり、複数走査レジスタ構造が、現在の時間間隔の間に明示的なスケジュール
機構なしに更新されるゲートのパイプラインを提供する。スケジューラは、この
より効率的な並列走査手順によって、置き換えられる。
【0047】 現在の時間間隔に対してすべてのゲート・タイプが評価されると、すべての信
号が、入力値レジスタのワードをワード・ライン・レジスタ・バンクの対応する
ワードに並列にシフトさせることによって、更新される。8値論理では(すなわ
ち、入力値レジスタにおけるそれぞれのワードに対して3ビット)、このフェー
ズは、3マシン・サイクルを要する。入力値レジスタ・バンクは、マルチポート
型のメモリ・システムとして実現することができ、このシステムによると、複数
の入力値を同時に更新することが可能である。ただし、これらの値が異なるメモ
リ・バンクに位置している場合に限る。これ以外の論理値を用いることも可能で
ある。
【0048】 APPLESのビット・シフト機構は、スケジューラの役割を冗長なものにし
た。更に、ゲート評価プロセスがメモリにおいて実行されることを可能にしたの
で、伝統的なフォン・ノイマンのボトルネックを回避している。アレイ1bにお
けるそれぞれのワード対は、実際は、プロセッサである。他の並列ロジックにお
いて大きなオーバーヘッドを生じさせる深刻な問題は、「デッドロック」とスケ
ジューリングとの問題である。
【0049】 デッドロックは、時間的な正確さのために要求される、入力待機ルールと出力
待機ルールという2つのルールに起因して、チャンディ・ミスラ(Chandy-Misra
)アルゴリズムにおいて生じる。ルール1は、APPLESの更新機構によって
守られている。任意の時間間隔TiからTi+1の間に、アレイ1bのすべてのワー
ドは、時刻Tiにおけるワイヤの状態を反映し、評価及び更新プロセスが終了時
に、すべてのワイヤは、時刻Ti+1に更新されなければならない。すべてのワイ
ヤは、最小のタイムスタンプである1つの離散的な時間ユニットごとにインクリ
メントされる。従って、すべての時間間隔の開始時において、すべてのゲートを
評価することができ、この評価は、入力値はすべて正しいと信頼できるものであ
る。出力ルールが課されるのは、信号値が減少的ではないタイムスタンプの順序
で処理のために到着するからである。しかし、これは、APPLESでは保証さ
れている。というのは、すべての信号値はシフト動作を通じてそれぞれのワード
におけるその時間的な順序を維持するからである。チャンディ・ミスラ・アルゴ
リズムとは異なり、すべてのゲートをそれぞれの時間間隔において評価すること
ができるので、デッドロックはあり得ない。
【0050】 APPLESシステムには、スケジューラは存在しない。慣性遅延などの複雑
なモデリングは、スケジューラを(時間的に)コストがかかるアンスケジューリ
ング問題と直面させる。アクティブになるようにスケジューリングされているゲ
ートは、入力信号が予め定められた最小の継続時間よりも短いことが分かると、
スケジュールを変更しなければならない。これは、通常のスケジューリング・タ
スクと共に、著しいオーバーヘッドを生じさせる。
【0051】 図2には、APPLESにおける等価的な機構が示されている。ANDゲート
は2つの入力a及びbを有し、信号が少なくとも3単位分の継続時間を有してい
なければ出力において何の効果も生じないと仮定すると、シミュレートは、バイ
ナリ値0及び1だけに関係し、アレイ1bにおけるそれぞれのビットは1つの時
間ユニットを表し、信号bは値1で一定であるが、信号aは、最小時間よりも短
い2時間ユニットの間、論理1である。これは、入力及びマスク・レジスタの組
合せによって発生される並列サーチによって検出され、ゲートは、アクティブに
はならない。
【0052】 回路は、この時点で、APPLESによるシミュレーションがなされる用意が
できており、パージングがなされて、連想アレイ1a及び1bとファンアウト・
ベクトル・テーブルを初期化するのに必要なゲート・タイプと遅延モデル及びト
ポロジ情報とが発生される。ファンアウト・ゲートの数には制限はない。
【0053】 APPLESプロセッサは、シミュレートされる回路は2入力型のロジック・
ゲートだけで構成されている等価回路に翻訳されていることを想定する。従って
、すべてのゲートは、それに至るワイヤを2つ有している(インバータは、1つ
のソースからの2つのワイヤを有している)。これらのワイヤは、ワード・セッ
トと称される連想アレイ1b1における隣接するワードとして構成されている。
連想アレイ1a1は、ゲート・タイプとワイヤが接続されている入力とを示すす
べてのワイヤからの識別子を含む。これらの識別子は連想メモリの中にあり、従
って、特定のゲート評価テストが実行されると、関連するビット・パターンを入
力レジスタ1aの中に配置し、マスク・レジスタ1aがゲート・タイプを特定す
る。そのようなゲートに接続されたすべてのワイヤは連想アレイ1a上の並列サ
ーチによって識別され、これらは連想アレイ1b(ワード・ライン・レジスタ・
バンク)の中の適切なワードを付勢するのに用いられる。このように、ゲート評
価テストは、関連するワード・セットの上だけでアクティブとなる。
【0054】 入力値レジスタ・バンク17は、それぞれのワイヤに対する現在の入力値を含
む。連想アレイ1bにおけるすべてのワードの最も左側にある3ビットは、すべ
ての信号値が1時間ユニットごとに更新されるときには、このバンクから並列に
シフトされる。シミュレーションの更新フェーズの間には、アクティブ・ゲート
のファンアウト・ワイヤが識別され、入力値レジスタ・バンクにおける対応する
ワードが修正される。
【0055】 シミュレーションは、離散的な時間ユニットで進行する。任意の時間間隔の間
、それぞれのゲート・タイプは、連想アレイ1b上でテストを行い結果を組み合
わせて隣接するレジスタ・バンクに記録することによって、評価される。評価さ
れるゲートの数とは無関係に、このプロセスは、最も単純な場合の10マシン・
サイクルから、より複雑なゲート遅延モデルの場合の20マシン・サイクルまで
を要する。図3を参照のこと。ファンアウト・ゲート入力が修正されると、すべ
てのワイヤは、3マシン・サイクルの長さの並列シフト動作を通じて、時間的に
インクリメントされる。一般的には、2N値の論理では、すべての信号値を更新
するのに、N回のシフト動作が必要となる。
【0056】 図3には、シミュレーション・サイクルが図解されている。シミュレーション
・サイクルでは、回路のサイズに特に影響を受けるタスクは、ヒット・リストを
走査するタスクである。回路のサイズが大きくなるにつれて、リストとシーケン
シャルな走査時間が、それに比例して増大する。従来型の通信オーバーヘッド問
題と同じように、APPLESアーキテクチャでは、ヒット・リストが拡張する
につれて走査速度を有効に向上させることができる走査機構が組み入れられてい
る。従って、複数走査レジスタ構造が提供される。後で説明するように、本発明
の特徴の1つとして、ゲート評価フェーズにおけるテスト・ベクトルの適用の並
列化がある。同様に、図4は、ANDゲートに対するサーチ・テスト・パターン
である。
【0057】 離散的な時間ユニットの間隔にわたってワイヤ上に生じる一連の信号値は、一
連の数字で表現することができる。例えば、バイナリ形式で、ワイヤが、時刻t 0 、t1、t2においてそれ自身に与えられた1、1、0という論理値の列を有す
るとする。ただし、t0<t1<t2である。このワイヤ上での信号値の履歴は、
011というビット・シーケンスとして表現することができる。左側のビット位
置ほど、ワイヤ上でその値が最近生じたことを示す。
【0058】 異なる遅延モデルであれば、様々な時間間隔の間に複数の信号値を得る。どの
ようなモデルでも、ワードの中に記憶されているが関連のない信号値は、サーチ
・パターンから除去される。
【0059】 特定のワイヤの信号値を更新するプロセスは、すべての値を1時間ユニット分
だけ右にシフトさせ、現在の値を最も左の位置に配置することによって、達成さ
れる。連想アレイ1bは、すべてのワードを同時に右向きにシフトさせることが
できる。新たな現在値は、入力値レジスタ・バンクから、連想アレイ1bの中に
シフトさせる。
【0060】 図4を参照すると、ANDゲートに対する並列サーチ・パターンであって、論
理0への変化が図解されている。 ワイヤ信号値が連想メモリ・ワードにおけるビット・シーケンスとして表現さ
れていると、ゲート評価のタスクは、一連の並列パターン・サーチとして実行す
ることができる。図4は、8値論理が用いられ、ANDゲートが1ユニットの遅
延を有するようにモデル化されている状況を示している。
【0061】 T1を満足する任意の入力を有しT2を満足する入力を有していないゲートは、
すべて、0に変化する。 結果的に、このゲートの出力が論理1から論理0に変化する場合には、現在時
刻tc及びtc-1に蹴る信号値を知る必要がある。現在値は、ワード・セットの最
も左側の3ビットに含まれている。図4は、2つの入力上の現在値を論理1=1
11及び論理0=000と宣言し、先行する値を共に論理1であると宣言してい
る。
【0062】 ANDゲートが論理0への出力変化を有することを確認するためには、2回の
単純なビット・パターン・テストで十分である。任意の現在入力値が論理0であ
り(テストT1)、先行する入力値のどれも論理0でない(テストT2)場合には
、出力は論理0に変化する。これらは、この遅延モデルに対する唯一の条件であ
り、この変化を実現させる。連想メモリを用いると、1ワードの任意の部分を、
サーチにおいてアクティブにも非アクティブにもすることができる。従って、「
000」と「111」とを連想アレイ1bのサーチ及びマスク・レジスタの最も
左側の3ビットに配置することで、テストT1を実行することができる。テスト
2は、最も左の次の3ビット位置に対してほぼ同じテストを行うことで、実行
することができる。
【0063】 一般的に、それぞれのテストは、一度に1つずつ適用される。ワードiに対す
るテストTiの結果は、テスト結果レジスタ・バンク4のワードのi番目のビッ
ト位置に記憶される。それぞれのワード・セットに対して、そして、すべてのテ
ストで、特定のテストをいずれかの入力が満足したのか、両方の入力が満足した
のか、それとも、どの入力も満足しなかったのかを知ることが必要である。テス
ト結果レジスタ・バンクの中のワードjとワードj+1i番目のビットがOR演算
され、この演算の結果が1である場合には、対応するワード・セットにおける少
なくとも1つの入力がテストTiつまり「いずれか」の条件テストを満足したこ
とになる。演算の結果が0である場合には、どの入力もテストTiを満足しなか
ったということであり、「いずれもそうでない」という条件テストである。最後
に、i番目のビットがAND演算され、結果が1である場合には、「どちらも」
テストTiを満足したことになる。
【0064】 結果付勢化レジスタ14は、結果を組み合わせ、それらは後でグループ結果レ
ジスタによって確認される。論理的な相互作用が、図5に示されている。 ビット位置の間のAND又はOR演算が、結果付勢化レジスタによって命じら
れる。結果付勢化レジスタのi番目の位置にある0は、テスト結果レジスタ・バ
ンクのそれぞれのワード・セットに対してテストTiの結果に対してOR作用を
実行する。そして、逆に、1は、AND作用を実行する。それぞれのi番目のA
ND又はOR演算は、すべてのワード・セットとテスト結果レジスタとの対に対
して並列的に行われる。
【0065】 ワード・セットとテスト結果レジスタとのそれぞれの対に対する結果付勢化レ
ジスタの動作の結果は、連想グループ結果レジスタにセーブされる。特定のワー
ド・セットに対して結果を保持することの他に、グループ結果レジスタは、連想
アレイにおける複合要素(composite elements)である。これによって、特定の
結果パターンに対する並列サーチが容易になり、従って、すべてのアクティブ・
ゲートが識別される。これらのゲートは、グループ・テスト・ヒット・リストに
おけるヒット(グループ結果レジスタ・バンクにおけるサーチの)として識別さ
れる。
【0066】 ANDゲートの論理0への変化の例に戻ると、ANDゲートは、その対応する
グループ結果レジスタが最初の2つのビット位置にビット・シーケンス「10」
を有する場合には、テストの要件を満足するものとして識別され、すべての入力
がテストT1を満足し、どれもテストT2を満足しない。
【0067】 ゲート評価フェーズとそのシーケンシングとに関係するAPPLESの成分が
、図6に示されている。 本発明では、この方法の主な特徴の1つとして、ターゲット・ロジック・ゲー
トへのそれぞれのライン信号を、それぞれがある時間期間の遅延を表す複数のビ
ットとして記憶することがある。この集合体ビットによって、ターゲット・ロジ
ック・ゲートへの信号出力とターゲット・ロジック・ゲートによる受取りとを正
確に表現することが可能になる。このようにして、これらは、それぞれのロジッ
ク・ゲートの内在的な遅延と同じ態様で表される。今ここで考慮しなければなら
ないのは、回路速度が上昇すると、メッセージを2つのロジック・ゲートの間で
移動させる時間が増大する可能性があるということである。従って、ロジック・
ゲートだけでなくラインも、論理装置(logic entities)と考えなければならな
い。
【0068】 いくつかの論理装置は、連想アレイ1bのワードにおいて表現可能な時間フレ
ームを超える遅延を有する場合がある。ある状態をゲート・タイプと関連付ける
ことによって、より大きな遅延をモデル化することができる。この場合に、ゲー
トとその状態とは、連想アレイ1aにおいて定義される。テストは、連想アレイ
1bに対して実行され、ある状態を有するゲートがある臨界入力値を満足すると
、影響を受ける可能性があるゲートのファンアウト成分に加えて、ゲート状態が
、連想アレイ1aにおいても修正される。また、この新たな状態のために、新た
な出力値がゲートのファンアウト・リストに与えられる。適用されるテストは、
ゲート・タイプと状態とによって決定される。この機構では、ゲート自身のファ
ン・アレイ1aである。
【0069】 状態が更新されるべきかどうか、又は、状態とファンアウト・ゲートとが更新
されるべきかどうかを決定するためには、状態(バイナリ値)は、ゲートのファ
ンアウト更新データ・ファイルを選択するものとして機能することができる。状
態は、ゲート・データ・ファイルの開始位置に対するアクセス点を修正し、それ
によって、ゲート野津雨情のファンアウト・リストをバイパスすること又はしな
いことが可能になる。
【0070】 新たな時間フレーム(連想アレイ1bにおける1ワード)の充填が開始される
ときに、特別のシンボルが、最も左側(最も最近)の位置に挿入される。このシ
ンボルは、ゲート上への入力値を搬送し、マーカとして機能する。このマーカが
そのワードの最も右側の位置に到達すると、これは、時間フレームの全体が経過
したことを示す。これは、連想アレイ1bに対する通常の並列テスト・パターン
・サーチによって検出することができる(図1を参照のこと)。
【0071】 シミュレートされる論理装置の間の相互接続は、ここで説明されている大遅延
モデルを用いてモデル化することができる。更に、単一のワイヤを、連想アレイ
1aと連想アレイ1bとテスト結果レジスタ・バンクとにおいて、2ワードでは
なく1ワードによって、モデル化することができる。分岐点は、別の分岐点に異
なる遅延特性を有することを許す別個のワイヤとして、モデル化される。
【0072】 実際、行われるのは、それぞれの遅延が、遅延ワードとして、連想メモリ機構
の一部を形成する連想メモリに記憶されることである。遅延ワードの長さが確認
され、遅延ワード幅は、連想レジスタのワード幅を超える場合には、単純にその
レジスタに記憶することはできない。津市に、遅延ワードの中に含まれているレ
ジスタ・ワード幅の整数倍が、ゲート状態として計算される。このゲート状態は
、別の状態レジスタ、実際には、連想アレイ1aの連想レジスタに記憶される。
計算からの剰余は、幅が連想レジスタ・ワード幅を超えた遅延ワードだけでなく
超えなかった遅延ワードと共に、連想レジスタ・アレイ1bに記憶される。そし
て、連想レジスタ16のカウントが開始すると、状態レジスタ、すなわち、連想
レジスタ1aが参照され、遅延ワードがそのレジスタに入力される。剰余は、連
想レジスタ・アレイ1bのこのカウントに対して無視される。連想レジスタ1b
のカウントの終了時には、連想レジスタ1aが、1時間ユニット分だけデクリメ
ントすることによって、更新される。これによっても依然としてカウントが生じ
ない場合には、プロセスが反復される。しかし、連想レジスタ1aがクリアされ
ると、カウントは継続し、剰余は要求されているカウントを表す。
【0073】 慣性遅延などの複雑な遅延モデルは、いずれかのタイミング臨界値の違反がな
される場合には、イベントのスケジューリングを変更する従来型のシーケンシャ
ルで並列のロジック・シミュレータを必要とする。これは、イベント・リスト全
体にわたる著しく時間のかかるサーチに依存する。本発明では、慣性遅延は、信
号が少なくともある最小の時間遅延を有していることを確認することだけが必要
となる。これは、1回のパターン・サーチとして実現可能である。
【0074】 ゲートの統計的な振る舞いが出力における不確実性を表しているような曖昧な
遅延は、更に複雑である。ゲート出力は、パラメータtmin(M時間ユニット)
とtmax(N時間ユニット)との間の未知の値を取得する。4値論理を用いて、
APPLESは、tminにおけるこの未知の値への当初の出力変化を検出し、そ
れに続いて、それに続く未知の値から時間tmaxにおける論理状態0への変化が
生じる。図7を参照のこと。両方の入力が同時に逆の値に切り替わってしまうよ
うな有害な条件が検出されることもありうる。これも図7に図解されている。
【0075】 それぞれのゲート・タイプに対して、評価時間Tgate-evalは一定に維持され
、典型的には、10ないし20マシン・サイクルの範囲内にある。ヒット・リス
トを走査する時間は、その長さと走査において用いられるレジスタの数とに依存
する。N個の走査レジスタは、H個の位置を有するヒット・リストを、サイズが
H/NでありN個の等しいサイズに分割することができる。1つの位置が1マシ
ン・サイクルで走査可能であると仮定すると、走査時間TscanはH/Nサイクル
である。同様にして、1回のファンアウト更新を行うには、1サイクルで十分で
あると考えることができる。
【0076】 1つの走査レジスタの分割のためには、更新の回数は、(Probhit)H/
Nである。すべてのN回の分割が他の分割からの干渉なしで更新する場合には、
これは、システム全体に対する全体の更新時間も表す。しかし、1つのファンア
ウトが更新される間に、他のレジスタは走査を継続し、これらの分割におけるヒ
ットは、待機しキューを生じることがありうる。これが生じる確率は分割の数と
共に増加し、N1(Probhit)H/Nで与えられる。
【0077】 2つ以上のレジスタが1つのヒットを同時に検出して1ポート型ファンアウト
・メモリにアクセスしようとすると、クラッシュが生じる。このような状況では
、セマフォアが、待機しているレジスタがメモリにアクセスすることを承認する
。1回の走査の間のクラッシュの回数は、
【0078】
【数1】
【0079】 クラッシュ数 =(1検査当たり2ヒットの確率)xH/N+より高位の確率 (1) 回路の動作速度が低い(全体のゲート・カウントの1%ないし5%)というこ
とは、より高位(オーダーが高い)の確率が無視されることを意味する。ヒット
の分布が一様かつランダムであると仮定し、Probhitを、レジスタが1回の
検査で1回のヒットに遭遇する確率であるとすると、上の数式1は、次のように
なる。
【0080】
【数2】
【0081】 クラッシュ数=N1(Probhit2H/N (2) 従って、特定のゲート・タイプの1つの分割のファンアウト・リストを走査し
て更新するのに要する全体の時間の平均であるTNは、次のようになる。
【0082】
【数3】
【0083】 すべての分割は並列に走査されるので、TNは、N走査レジスタ型のシステム
に対する処理時間にも対応する。従って、そのようなシステムの高速化Sp=T1 /TNは、次の通りである。
【0084】
【数4】
【0085】 数式(4)は、経験的に確認されている。予測された結果は、サンプル回路C
75552及びC2670に対して20%の範囲内にあり、C1908に対して
30%の範囲内にある。
【0086】 TNをNに関して微分して、Probhitの2次及びそれよりもオーダーが高い
ベキを無視すると、走査レジスタの最適個数Noptimumと、それに対応する最適
の高速化Soptimumとが次のように得られる。
【0087】
【数5】
【0088】
【数6】
【0089】 このようにして、走査レジスタの最適個数は、ヒット・リストにおいてヒット
に遭遇する確率の逆数によって、決定される。APPLESでは、重要な処理計
量(metric)は、ゲートを評価することができそのファンアウト・リストを更新
することができる速度である。ヒットの確率が上昇すると、ゲートが更新される
速度も共に上昇する。シミュレーションを行っており偶然に高いヒット・レート
を示す回路は、更新速度も高くなる。
【0090】 平均のファンアウト時間が1サイクルではないときには、ProbhitにFout を乗算する。ここで、Foutは、実際の平均ファンアウト時間である。 より高いヒット・レートは、余分のレジスタを導入することによっても達成す
ることができる。レジスタを増やすと、ヒット・レートとクラッシュ数も上昇す
る。ヒット・レートがファンアウト更新速度と等しくなると、この上昇は停止す
る。このような事態が生じるのは、Noptimumにおいてである。この状況は、飽
和状態にあるパイプラインと類似している。レジスタの数が更に増加しても、ク
ラッシュの数と、ファンアウト・リストの更新を試みるレジスタの待機リストが
増えるだけである。
【0091】 更なるシミュレーションが、APPLESのベリログ・モデルを用いて再び実
行された。今回は、単位遅延モデルを用いて、ISCAS−85の4つのベンチ
マークであるC7552(4392個のゲート)、C2670(1736個のゲ
ート)、C1908(1286個のゲート)、C880(622個のゲート)を
シミュレートした。それぞれのシミュレートは、1000から10000マシン
・サイクルまでの時間期間にわたって、10のランダム入力ベクトルを用いて行
った。走査レジスタの数を1から50まで変動させ、統計値を得た。走査レジス
タの数に対する高速化が、次の表1に示されている。
【0092】
【表1】
【0093】 表1の(a)は、一般的に、高速化は走査レジスタの数と共に進行することを
示している。ゲート評価や入力のシフトなどに関する固定サイズのオーバーヘッ
ドは、多数のレジスタを有するより小型の回路の性能を低下させる傾向を有する
。シミュレーションの結果における固定時間オーバーヘッドをすべて取り除くこ
とによって、より均衡のとれた分析が得られる。これは、固定オーバーヘッドが
走査時間に対して無視できるような現実的な大型の回路の性能を反映する。表1
の(b)は、そのような訂正を行った後の結果の詳細を示している。予測される
とおり、この訂正は、ベンチマークがより大きな回路に対しては、影響がより小
さい。
【0094】
【表2】
【0095】 次に、訂正されたシミュレーションに関する性能の統計値を考えるが、表2に
は、1つのゲートを処理するのに用いられたマシン・サイクルの平均数が表示さ
れている。APPLESシステムは、アクティブなゲートだけを内在的に検出す
るのであって、無用の更新又は処理は実行されない。このデータは、ヒットとフ
ァンアウト・リストを更新する時間との間の走査時間を考慮している。より多く
のレジスタが導入されるにつれて、ヒットの間の時間は短縮され、ゲート更新レ
ートは上昇する。クラッシュが発生し、アクティブ・ゲートがファンアウト/更
新パイプラインにおいてキューを形成する。高速化は、平均のファンアウト・リ
ストのサイズによって決定されるファンアウト/更新速度がパイプラインに入る
速度と等しくなると、飽和する。
【0096】 また、回路のベンチマーク性能により、高速化の理論の有効性を評価すること
が可能になる。表1の(b)における高速化の測定値から、数式7を用いてfav に対する対応する値が計算される。この値は、マシン・サイクルを単位とする平
均のファンアウト更新時間を表すが、走査レジスタの数とは無関係に一定でなけ
ればならない。更に、評価されたベンチマークに関して、ファンアウトは、0か
ら3ゲートまでの範囲にあり、ヒットの確率であるProbhitは、0.01±
5%であることが分かった。1.5クロック・サイクル以内に、2つのファンア
ウト・ゲートを更新することが可能であり、従って、回路favに応じて、0.5
から1.5までの範囲にあるはずである。計算された値favは、表3に示されて
いる。
【0097】
【表3】
【0098】 favに対する値は、これらの回路のファンアウトに対して予測された範囲内に
ある。一定であるべきfavがローの間で値のゆらぎを生じているのは、おそらく
、回路のサンプル及びサイズが比較的小さいことに起因すると思われる。そのよ
うな場合には、ヒット・リストにおけるヒットの分布の小さな摂動が、高速化の
数値に影響を与えている。C880の場合には、高速化が10%低下しており、
それによって、favが10倍に増加している。
【0099】 表4は、比較のために示してあるが、これは、Benerjee: Parallel Algorithm
s for VLSI Computer-Aided Design, Prentice-Hall, 1994から借用した。この
書籍には、この出願において用いられているのと同様のサイズの回路に対するサ
ーチ並列アーキテクチャ上での高速化性能が、図解されている。これによると、
APPLESは、一貫して、より高い高速化を提供することができる。
【0100】
【表4】
【0101】 以下のページには、ベリログ(Verilog)で書かれたソフトウェアでの本発明
の実装例を示す。 以下では、APPLESのベリログ(Verilog)による記述を与える。
【0102】 表5は、連想アレイ1aである。 説明:このアレイの各ワードは、連想アレイ1bの対応する位置における、ワ
イヤのゲート・タイプ入力接続を識別するビット・シーケンスを保持する。入力
/マスク・レジスタの組み合わせは、連想アレイ1aにおけるサーチのために付
勢されるゲート・タイプを定義する。一致したワードは、1ビット・コラム・レ
ジスタにおいて示される。また、アレイは書き込み能力を有する。
【0103】
【表5】
【0104】 次の表6は、連想アレイ1bである。 説明:このアレイの各ワードは、特定のワイヤ上の信号値の時間的な幅を表す
。最新の値が各ワードの最も左にある。全ワードは同時に右へシフトすることが
でき、全ワイヤで1単位時間の増分を行うことになる。信号値は1ビット・コラ
ム・レジスタから更新される。アレイは、パラレル・サーチおよび読み出しおよ
び書き込みの能力を有する。
【0105】
【表6】
【0106】
【0107】 次の表7は、テスト結果レジスタ・バンクである。 説明:連想アレイ1bにi番目のサーチが実行されるときに、アレイ1bのワ
ードjがサーチ・パターンに一致した場合には、テスト結果レジスタ・バンクの
ワードjのビットiがセットされ、そうでない場合には、クリアされる。結果付
勢化レジスタは、ワード対(ゲートの入力の組)間の論理的組合せを指定する。
ワード対のこの組合せの結果が、コラム・レジスタである(ワード対の数の長さ
の半分)。
【0108】
【表7】
【0109】
【0110】 次の表8は、グループ結果レジスタ・バンクである。 説明:テスト結果レジスタにおけるワード対の組合せの結果は、ビットのコラ
ムとして、グループ結果レジスタ・バンクへ書き込まれる。全ての組み合わせの
結果が生成されると、グループ結果レジスタにパラレル・サーチが実行され、全
テスト・パターン・サーチをパスしたアレイ1bの全ワード対が確かめられる。
【0111】
【表8】
【0112】 次の表9は、複数応答リゾルバ(バージョン1.0;単一スキャン・モード)
である。 説明:複数応答リゾルバは、グループ−テスト・ヒット・リスト(1ビット・
コラム・レジスタ)を走査する。リゾルバは、そのカウンタをヒット・リストの
最上位アドレスを用いて初期設定し、走査を開始する。このカウンタはアドレス
・レジスタとして働き、各ヒット・リスト・ビットの読み出しを容易にする。検
査されたビットがセットされると、関連するゲートのファンアウト・リストがア
クセスされ、適切に更新される。その後、ビットはリセットされる。リセットの
後、又はビットが既に零であった場合、カウンタは、ヒット・リストの次のアド
レスを指すように減分される。検査プロセスが反復される。スキャンは、全ビッ
トが検査されたとき又は全ビットが零のときに、終了する。
【0113】
【表9】
【0114】
【0115】
【0116】 次の表10は、複数応答リゾルバ(バージョン2.0;複数スキャン・モード
)である。 説明:複数応答リゾルバは、グループ−テスト・ヒット・リスト(1ビット・
カラム・レジスタ)を走査する。複数スキャン・モードにおけるリゾルバは、幾
つかのカウンタ(走査)レジスタを備える。各レジスタには、グループ・テスト
のヒット・リストの等サイズの部分が割り当てられる。リゾルバが初期設定され
ると、全スキャン・レジスタは、それぞれの対応するヒット・リスト・セグメン
トの最上部を指す。レジスタは1つのクロックにより同期される。多数スキャン
・モード・リゾルバの外部機能は、単一スキャン・モードのバージョンのものと
同じである。内部的に、多数スキャンのバージョンは、待機セマフォアを用いて
、ファンアウト・リストへの多数のアクセスをキューに入れる。クラッシュする
レジスタは任意にキューに入れられ、それらのファンアウト・リストを更新する
許可を得た後にのみスキャンを再び開始する。スキャンは、全ビットが検査され
たとき又は全ビットが零のときに、終了する。
【0117】
【表10】
【0118】
【0119】
【0120】
【0121】
【0122】 次の表11は、ファンアウト発生器モジュールである。 説明:グループ−テストのヒット・リストにおいてヒットが検出された場合、
スキャン・レジスタ内のアドレスが、現在アクティブなゲートに対するファンア
ウト・リストの開始を位置付けるベクトルを選択する(ファンアウト・hdrテ
ーブルから)。このモジュールのアドレス・レジスタには、ファンアウト・リス
トのヘッダのアドレスがロードされる。このファンアウト・リストのサイズ、お
よび送信される更新後の信号値もまた、このモジュールへ運ばれる。モジュール
は、ファンアウト・リストにおける全ての変更を行う。
【0123】
【表11】
【0124】
【0125】 次の表12は、入力値バンクである。 説明:バンクは、回路の全信号の現在値を含む。バンクの各位置はワイヤに対
応する。何れの位置のワードも3ビット幅であるので、8つの値のロジックまで
シミュレートすることができる(これは、ワード幅を増加することにより増加で
きる)。何れのワイヤの現在値も、時間が経過したときに、このバンクからアレ
イ1bへシフトすることができる。これは並列に行われる。現在の時間インター
バルで変更されたワイヤの値のみが更新される。
【0126】
【表12】
【0127】 次の表13は、APPLESプロセッサのシーケンス・ロジックである。
【0128】
【表13】
【0129】
【0130】
【0131】
【0132】
【0133】
【0134】
【0135】
【0136】
【0137】
【0138】 APPLESアーキテクチャは、ロジック・シミュレーションのための高速で
柔軟性を有する機構を提供するように設計されている。テスト・パターンを連想
メモリに与えることにより、一定の時間でゲート処理を行うことができ、柔軟性
に富む遅延モデルを得ることができる。複数の走査レジスタは、ファンアウト更
新手順を並列化する有効な方法を提供してくれる。この機構により、負荷の均衡
化や、デッドロックの回避又は回復など従来の並列処理技術において必要であっ
たことを取り除くことができる。結果的に並列的なオーバーヘッドを縮小するこ
とができる。より多くの走査レジスタが導入されるにつれて、ゲート評価速度が
向上し、最終的には、ゲート当たりの平均ファンアウト・リストのサイズによっ
て制限され、従って、ファンアウト・リスト・メモリのメモリ帯域幅によって制
限されるだけである。
【0139】 図8を参照すると、それぞれが上述したAPPLESプロセッサを備えている
複数のセル21で構成されるアレイ20が図解されている。同期ロジック制御2
2が提供される。シミュレーションの対象となる回路は、APPLESプロセッ
サの間で分割されている。ゲート評価は、それぞれのプロセッサ又はセル21に
おいて、独立に実行される。それぞれのセル21には、ローカルな入力値レジス
タ・バンクと外部(foreign)の入力値レジスタ・バンクとが設けられ、それに
よって、同期ロジック22を組み入れている相互接続ネットワーク23を介して
達成される相互接続が可能となる。厳密にいえばメインの同期ロジック回路であ
る同期ロジック回路22からセル21のそれぞれへの接続は、図示されていない
【0140】 セル21を形成するプロセッサにおいて、すべてのゲート・タイプに対するす
べてのゲート評価と対応する更新とが生じた後では、そのプロセッサは、他のす
べてのプロセッサが同じ状態に達するのと待機しなければならない。すべてのプ
ロセッサがこの状態に達すると、対応する入力値レジスタ・バンクを、対応する
アレイと連想レジスタ1bとの中にシフトすることができ、次の時間ユニットの
評価が生じる。従って、実装(implementation)を達成するには、適切な相互接
続ネットワークが設計されなければならず、APPLESプロセッサへのインタ
ーフェースが構築されなければならない。次の時間ユニットの評価がいつなされ
なければならないかを決定する同期方法が存在しなければならない。複数のプロ
セッサの間でヒット・リスト情報を分配するシステムが必要であり、それによっ
て、このシステムが初期化される。
【0141】 プロセッサのアレイは、図8に示されているように、トーラス(ラップアラウ
ンドを有する二次元メッシュと等価)として実現される。ラップアラウンド接続
を含むことにより、ネットワークの直径が小さくなり、ネットワークの速度が向
上する。これはまた、それぞれのプロセッサが同一であり、アレイのエッジにお
けるハードウェアの浪費が存在しないことを意味する。しかし、そのためには、
より複雑なルーティング機構が必要となる。設定されたサイズがアレイに対して
用いられるということはなく、むしろ、サイズは、シミュレーションの間に変動
する基準として用いられている。この基準は、ベリログ(Verilog)コンパイラ
へのコマンド・ライン・パラメータによって特定される。これらのコマンド・ラ
イン・パラメータについては、次の章において、詳細に論じられる。
【0142】 それぞれのセルは、それに隣接する4つのセルに、シリアル接続を介して接続
される。明らかに、パラレル接続の方が高速であろう。しかし、バーテクス(Vi
rtex)FPGAが用いられており、そこでは、ピンの数が限定されている。FP
GAアーキテクチャによる特定の設計に、これらのピンがすべて利用可能でない
場合も起こりうる。従って、ピンは、貴重な資源である。それぞれのFPGAは
8つのパラレル接続(4つのエッジのそれぞれにおける入力及び出力接続)を必
要とするので、これには、多数のピンが必要となる。後の段階で余分なピンが存
在することが発見され、パラレル・ネットワークが正当化されるような場合であ
れば、設計を変更することが可能である。この設計では、それぞれのセルは、そ
の4つのエッジのそれぞれにおいて、シリアル入力とシリアル出力とを有する。
これらのシリアル接続は、それぞれが、1つのデータ・ラインと2つの制御ライ
ンとで構成される。従って、これらのシリアル接続は、それぞれのバーテクスF
PGAにおいて、12のピンを必要とする。それぞれのセルは、また、アレイの
同期ロジックに接続される。
【0143】 ネットワークを設計するためには、ネットワークが搬送しなければならない情
報に関する知識が要求される。ネットワークは、プロセッサの間でファンアウト
更新を送るために必要となる。これらの更新は、メッセージとして送ることがで
きる。それぞれのメッセージは、更新であり、宛先アドレスと更新値とで構成さ
れる。1つのバーテクスFPGAを用いて、約256のゲートを有する回路をシ
ミュレートすることができるAPPLESプロセッサを実現することができる。
この数字はいくぶん概算であり、更なる設計作業によって、要求される真の値が
明らかになる。1プロセッサ当たり256のゲートという制限がなされると、十
分に複雑な回路をシミュレートするには、約64のプロセッサが必要となる。こ
れは、8x8のアレイに対応する。それぞれのプロセッサは、他の任意のプロセ
ッサに更新を送り、その512のゲート入力の任意の1つを更新することが必要
である。これは、プロセッサを識別するには6つのアドレス空間が、ワイヤを識
別するには9つのアドレス空間を要することを意味する。送られたそれぞれの更
新は、また、更新値を必要とする。これらは、幅が3ビットである(8状態ロジ
ックに対するサポートを可能にする)。従って、プロセッサからプロセッサに送
られるメッセージは、幅が18ビットであることが必要である。これらの数字は
任意であるが、有用な出発点である。
【0144】 セル21の構造が、図9に示されている。4つのエッジは、それぞれが、1つ
の送信機25と1つの受信機26とを有している。これらのモジュールは、シリ
アル接続を取り扱う。受信機26は、ビット・ストリームを取り入れ、それを下
の18ビットのメッセージに再構成する。
【0145】 リクエスト・スキャナ27は、すべての受信機26とAPPLESプロセッサ
30とを同時にチェックして、これらがルーティングを待機しているメッセージ
を有しているかどうかを調べる。リクエスト・スキャナ27は、これらのソース
のそれぞれに循環するプライオリティを割り当て、メッセージと最高のプライオ
リティとを有するソースを選択する。そして、選択したメッセージをリクエスト
・ルータ28に送る。
【0146】 リクエスト・ルータ28は、そのメッセージを、APPLESプロセッサ30
か送信機25かのどちらか一方に送る。選択されたオプションが送信機である場
合には、メッセージは、別のセル21に送られる。選択されたオプションがAP
PLESプロセッサ30である場合には、メッセージは、そのローカルなプロセ
ッサに対する更新である。同期ロジック回路31は、同期ロジック回路22を介
して、セル21を制御する。
【0147】 図9では、すべての送信機と、すべての受信機と、APPLESプロセッサの
入力及び出力ポートとには、バッファが接続されている。ベリログ・コンパイラ
へのコマンド・ライン・パラメータは、これらの成分が用いられるべきか又はこ
の設計から取り除かれるべきかを決める。これらのバッファの若干異なる動作の
1つとして、これらがLIFO式のデータ処理をすることがある。これらのバッ
ファのパフォーマンスへの効果は、システム解析の重要な部分である。
【0148】 リクエスト・ルータ28は、2つの異なるルーティング技術の一方を用いる。
用いられる技術は、本発明を実現するのに用いられるベリログ・シミュレータへ
のコマンド・ライン・パラメータによって決定される。ルーティング技術の比較
は、本発明を理解するのに重要である。両方のルーティング技術は、類似する態
様で動作する。
【0149】 リクエスト・ルータ28は、メッセージを復号する。そして、リクエスト・ル
ータ28は、宛先プロセッサを決定することができる。メッセージのルーティン
グのための有効なオプションが、すべて決定される。メッセージは、ローカルな
APPLESプロセッサ30に、又は、送信機25の1つにルーティングするこ
とができる。このように、メッセージは、有効なオプションの中の1つにルーテ
ィングされる。
【0150】 第1のルーティング技術は、1つの有効なルーティング・オプションを生じる
だけであり、そのルートがブロックされていない場合には、メッセージは、その
方向にルーティングされる。ブロックされている場合には、リクエスト・ルータ
28は、別のメッセージをルーティングすることを試みる。メッセージは、目的
地に到達するまで、セル21からセル21に送られる。このルーティング技術で
は、メッセージは、正しい東西の位置に存在するようになるまで、まず、東向き
又は西向きに送られる。次に、その目的地に到達するまで、北向き又は南向きに
ルーティングされる。このようにメッセージを送ることの正味(ネット)の結果
は、メッセージが最小距離を移動するということである。このルーティング方法
の結果として、任意の2つのセル21の間のトラフィックは、常に、ネットワー
クを通過する同じルートに従うことになる。このルーティングの方法は、標準ル
ーティングと称することができる。
【0151】 第2のルーティング技術は、より複雑である。この第2の方法では、リクエス
ト・ルータ28は、結果的に最小の移動距離となるメッセージが選択できる利用
可能なすべての方向を決定する。様々なオプションに、異なるプライオリティが
関連付けられている。このプライオリティは、それまでに選択されたオプション
に依存する。このプライオリティの方法は、様々なルートを均等に従って効率的
に用いるのに役立つ。いくつかのオプションは、それまでのメッセージと共に用
いられたという理由で、選択できないことがあり得る。オプションは、プライオ
リティと利用可能性とに基づいて選択される。このようにして、プライオリティ
情報が更新される。このルーティング方法は、アドバンストなルーティングであ
る。
【0152】 両方のルーティング技術共に、有効な経路がすべてブロックされており、リク
エスト・ルータ28がそのメッセージをルーティングすることができない場合に
は、リクエスト・ルータ28は、単純にそのメッセージをドロップする。これは
、リクエスト・スキャナ27とリクエスト・ルータ28とが協動する態様の重要
な側面である。リクエスト・スキャナ27は、そのソースの1つからメッセージ
を選択する。しかし、リクエスト・スキャナ27は、このメッセージをルーティ
ングしようとしているということを、そのソースに告知しない。そのソースは、
選択されたメッセージをその出力に維持する。リクエスト・ルータ28は、メッ
セージのルーティングに成功する場合には、リクエスト・スキャナ27に、成功
した旨を伝え、リクエスト・スキャナ27がソースに告知する。リクエスト・ル
ータ28は、このように、特定のメッセージのルーティングには関与しない。従
って、リクエスト・ルータ28は、常に自由にメッセージのルーティングを試み
ることができる。
【0153】 ネットワーク・インターフェース42は、ローカルなプロセッサとネットワー
クとの間の入力値レジスタ・バンク20へのアクセスを共有する。ローカルなプ
ロセッサがプライオリティを取得する。このモジュールは、メッセージを復号し
て、入力値レジスタ・バンク2における適切な位置を更新する。
【0154】 ネットワーク・インターフェース42は、ファンアウト発生器43と入力値レ
ジスタ・バンク2との間に接続されている。従って、適切なときに、ファンアウ
ト更新を、プロセッサからネットワークへ送ることができるし、又は、単に、入
力値レジスタ・バンク2に送ることもできる。また、ファンアウト更新を、ネッ
トワークから入力値レジスタ・バンク2に送ることもできる。ネットワーク・イ
ンターフェース42に対応するためには、ファンアウト発生器43におけるいく
らかの変更が要求される。
【0155】 アレイのそれぞれのプロセッサがそのアクティブ・ゲートのそれぞれに対する
ファンアウト・リストを処理し、すべての更新がその目的地に到達すると、それ
ぞれのプロセッサは、その入力値レジスタ・バンク2をそのアレイ1bにシフト
させ、次の時間ユニットの評価に進むことができる。これを達成するためには、
セル21の間に何らかの同期ロジックが必要である。これを実現させるには、そ
れぞれのプロセッサが、更新の送出をいつ完了したかをそのセル21に報告する
ことが要求される。また、それぞれのセル21は、ネットワークの動作をモニタ
して、ネットワークの動作とプロセッサの動作とのどちらが存在するのかをアレ
イに報告する。従って、アレイは、すべてのプロセッサがいつ更新を終了し、い
つネットワークが空であるかを知っている。そのような時点で、アレイは、セル
21に報告する。すると、セル21は、プロセッサに、遅延モデルにおける次の
時間ユニットに進むように命じる。このシステムの実現には、APPLESプロ
セッサのシーケンス・ロジックにおける若干の変更が必要である。
【0156】 ネットワークは、この同期情報を通信するのには用いられない。その代わりに
、専用ワイヤが提供される。それぞれのセル21は、終了入力ワイヤと終了出力
ワイヤとを有している。セル21は、そのプロセッサが終了し、セル21の周囲
でネットワークの動作が生じていないときには、終了出力ワイヤをハイに保持す
る。終了入力ワイヤは、アレイ同期ロジックによって制御される。アレイは、す
べての終了出力ワイヤが同時にハイであることを検出すると、終了入力ワイヤを
ハイに保持する。ネットワークを用いてこの同期情報を通信することも可能であ
る。そうすると、この設計によって要求されるバーテクスのピンの数を減らすこ
とができる。しかし、この同期ロジックは、より複雑であり、より多くの回路を
必要とする。また、この同期プロセスは、実行により多くの時間がかかる。
【0157】 回路の記述に関係する情報は、APPLESプロセッサの中の5つのメモリに
記憶される。基本的なAPPLESベリログ設計では、これらのメモリは、$R
EADMEMシステム・コマンドを用いて、データ・ファイルからロードされる
。システムをバーテクス・チップ上に実現するには、これらのメモリは、PCI
インターフェースを介してロードすることができる。
【0158】 APPLESアレイでは、それぞれのプロセッサは、シミュレートされる回路
の一部を評価する。上述の5つのメモリのコンテンツは、アレイにおけるプロセ
ッサの間に分配される必要がある。メモリのコンテンツは、また、アレイの設計
と互換性を有するように処理される必要がある。バーテクス・チップのアレイを
用いた実現例では、このデータは、PCIバスを介してロードし、アレイ・ネッ
トワークを用いて分配することができる。このデータは、アレイに対して予め処
理しておき、それぞれのプロセッサは、単に、データをメモリにロードする。シ
ステムの設計へ組み入れてこのデータを分配することは、自明ではない。この計
画は、主に、アレイ設計が回路をシミュレートする能力の解析に関係する。アレ
イの初期化システムの解析は、この時点では最重要課題ではない。結果的に、初
期化システムは、設計されていない。
【0159】 設計を初期化し、回路シミュレーションを容易にするためには、ベリログのタ
スクは、メモリをロードすることであると書かれている。1つのプロセッサ回路
記述ファイルが、この設計におけるグローバル・メモリにロードされる。アレイ
のそれぞれのプロセッサには、1つの数が割り当てられる。プロセッサの数は、
そのy座標にアレイ幅を乗算し、x座標を加算することによって計算される。そ
れぞれのプロセッサは、グローバル・アレイ1a、アレイ1b、ファンアウト・
ヘッダ・テーブル及びファンアウト・サイズ・テーブルをそのローカル・メモリ
にロードする。これらのセグメントのサイズは等しい。選択されたセグメントは
、そのプロセッサの数に基づく。プロセッサ0は第1のセグメントを取り、プロ
セッサ1は第2のセグメントを取る、等である。また、ファンアウト・ベクトル
・テーブルのセグメントもロードされなければならない。このセグメントは、ロ
ーカル・ファンアウト・サイズ及びファンアウト・ヘッダ・テーブルのコンテン
ツを見ることによって、決定される。グローバル・ファンアウト・ベクトル・テ
ーブルからロードされる第1のアドレスは、ローカル・ファンアウト・ヘッダ・
テーブルの第1の位置に記憶されているアドレスである。ロードされる最後のア
ドレスは、ローカル・ファンアウト・ヘッダ・テーブルの最後のエントリに記憶
されているアドレスをローカル・ファンアウト・サイズ・テーブルの最後のエン
トリに記憶されている最後のファンアウト・サイズに加算することによって、計
算される。ファンアウト・ヘッダ・テーブルの中のアドレスは、新たなローカル
・ファンアウト・ベクトル・テーブルを指すように、調整されなければならない
。これは、ローカル・ファンアウト・ヘッダ・テーブルの第1の位置に記憶され
ているアドレスを同じテーブルのそれぞれのアドレスから減算することによって
達成される。ローカル・ファンアウト・ベクトル・テーブルに記憶されているそ
れぞれのゲート入力アドレスは、アレイ・アドレスに変換されなければならない
。アレイ・アドレスは、14から12までのビットに記憶されている宛先プロセ
ッサのx座標と、11から9までのビットに記憶されている宛先プロセッサのy
座標と、8から10までのビットに記憶されている宛先プロセッサのゲート入力
のローカル・アドレスとによって構成される。
【0160】 このシステムを用いると、回路の記述は、プロセッサの間で分配される。どの
ゲートがどのプロセッサ上でシミュレートされるのかは、考慮されない。APP
LES回路記述ファイルは、それぞれのゲートがどこでシミュレートされるのか
を決定する。これらのファイルのレイアウトは、APPLES回路記述ファイル
を発生するのに用いられたiscas−85のネット・リスト・ファイルのレイ
アウトによって、決定される。
【0161】 図10を参照すると、プロセッサの別のレイアウトが図解されており、ここで
は、図1を参照して説明されたものと類似の構成要素は、同じ参照番号によって
識別されている。この実施例では、走査レジスタは参照番号6aによって識別さ
れ、一般ロジック・シーケンスは参照番号40によって識別されている。プロセ
ッサは、また、回路分割ロジック回路41とネットワーク・インターフェース4
2とを含む。ファンアウト発生器43が示されており、例えば、ファンアウト・
メモリ8を含む。ネットワーク・インターフェース42は、入力値レジスタ・バ
ンク2へのアクセスを共有する。
【0162】 オリジナルのAPPLES設計は、ベリログで書かれている。アレイ設計も同
様である。ベリログ・コードは、行動(behavioural)レベルで書かれている。
これは、ベリログのプログラマにとって、利用できる最も抽象的なレベルである
。どのベリログ・システムの場合とも同じように、これは、ベリログ・モジュー
ルに分割される。それぞれのモジュールは、システムの構成要素である。APP
LESアレイ設計において追加されたベリログ・モジュールは、次の通りである
。 ・トップ・モジュール ・アレイ・モジュール ・セル・モジュール ・受信機モジュール ・送信機モジュール ・リクエスト・スキャナ・モジュール ・リクエスト・ルータ・モジュール ・バッファ・モジュール ・ネットワーク・インターフェース・モジュール トップ・モジュールは、システムが正確に動作していることをテストするのに
用いられる。トップ・モジュールの実例には、アレイ・モジュールの実例が含ま
れる。アレイは、セル・モジュールの実例を含む。それぞれのセルは、送信機及
び受信機モジュール両方の4つの実例を含む。また、セルは、リクエスト・スキ
ャナと、リクエスト・ルータと、複数のバッファと、APPLESプロセッサと
を含む。APPLESプロセッサは、ネットワーク・インターフェース・モジュ
ールの実例と共に、標準的なプロセッサ成分の実例を含む。この構造とこれらの
モジュールの行動とについては、この章において既に説明した。これらのモジュ
ールは、それぞれが、適切な名前を付けられたファイルの中に含まれる。
【0163】 これらのモジュールを設計することに加えて、アレイの設計にも次の変更が必
要である。 ・ベリログ・タスクを導入して、回路記述情報をアレイの中の複数のプロセッサ
の間に分配すること。 ・プロセッサ同期ロジックを、APPLESプロセッサ・モジュールとセル・モ
ジュールとアレイ・モジュールとの中に組み入れること。 ・ネットワーク・インターフェース・モジュールをAPPLESプロセッサに中
に統合すること。
【0164】 APPLESアーキテクチャは、複雑なデッドロック回避の必要性及び回復手
順や、イベント駆動式のシミュレーションを構成するのが通常であるそれ以外の
機構を必要としない別のタイミング方法を組み入れている。本発明は、従来型の
アプリケーションよりもはるかに小さなオーバーヘッドを有し、ゲート評価がメ
モリにおいて付勢されることを可能する。処理オーバーヘッドの縮小は、他の技
術と比較して向上している高速化パフォーマンスにおいて、明らかである。
【0165】 チャンディ・ミスラ(Chandy-Misra)アルゴリズムに内在的なメッセージ送出
機構は、並列走査機構によって代替されている。この機構により、ファンアウト
/更新手順を並列化することが可能となった。クラッシュが生じると、ゲートは
、効果的に、待機キューの中に入れられ、このキューがファンアウト/更新パイ
プラインを充填する。結果的に、パイプラインが充填されると(走査レジスタの
数の増加と共に)、パフォーマンスが向上する。キューに入る新たなゲートがフ
ァンアウト速度と等しくなると、高速化は、ある限度に到達する。しかし、高速
化とゲート当たりの処理サイクル数とは、従来型のアプローチよりも相当に優れ
ている。更に、このシステムによれば、広範囲の遅延モデルが可能となる。
【0166】 APPLESにおけるビット・パターン評価機構により、一連の配列サーチと
しての単純及び複雑な遅延モデルの実現が容易になる。その結果、評価プロセス
は時間的に一定であり、メモリにおいて実行される。実際、ゲートとプロセッサ
との間には、1対1の対応が存在する(ゲート・ワード・ペア)。このきめの細
かい並列化により、ゲート評価フェーズにおける最大の並列化が可能となる。ア
クティブなゲートは、自動的に識別され、そのファンアウト・リストは、ヒット
・リストを走査することにより更新される。この走査機構は、典型的な並列処理
アーキテクチャにおける通信オーバーヘッドと類似するのであるが、この走査は
並列化自体に従う。複数の走査レジスタは、オーバーヘッド時間を短縮し、ゲー
ト処理速度がファンアウト・メモリの帯域幅だけによって制限されることを可能
にする。APPLESアーキテクチャを用いると、論理的シミュレーションの実
質的な高速化が達成でき、結果的に数マシン・サイクルのゲート処理速度が得ら
れる。
【0167】 この明細書では、「備えている」(comprise)という用語は、「含む」(incl
ude)という用語と相互交換が可能に用いており、それぞれに、可能な限り最も
広い解釈が与えられるべきである。
【0168】 本発明は、以上で説明した実施例には限定されず、実施例は、冒頭の特許請求
の範囲の範囲の中で構成及び詳細において変動することがありうる。
【図面の簡単な説明】
【図1】 APPLEプロセッサのブロックの機能を図解している
【図2】 APPLEシステムの慣性遅延機構を図解している。
【図3】 シミュレートされたサイクルの図解である。
【図4】 テスト・サーチ・パターンである。
【図5】 本発明による論理的組合機構の図解である。
【図6】 ゲート評価フェーズの間にアクティブな構成要素を図解している。
【図7】 曖昧な遅延モデルとハザード検出のためのビット・パターンである。
【図8】 本発明によるプロセッサの別の構成の概要である。
【図9】 1つのプロセッサの構造をより詳細に図解している。
【図10】 図1に類似の、プロセッサの別の構成を示す図である。
【手続補正書】
【提出日】平成14年3月7日(2002.3.7)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,MZ,SD,SL,SZ,TZ,UG ,ZW),EA(AM,AZ,BY,KG,KZ,MD, RU,TJ,TM),AE,AL,AM,AT,AU, AZ,BA,BB,BG,BR,BY,CA,CH,C N,CR,CU,CZ,DE,DK,DM,EE,ES ,FI,GB,GD,GE,GH,GM,HR,HU, ID,IL,IN,IS,JP,KE,KG,KP,K R,KZ,LC,LK,LR,LS,LT,LU,LV ,MA,MD,MG,MK,MN,MW,MX,NO, NZ,PL,PT,RO,RU,SD,SE,SG,S I,SK,SL,TJ,TM,TR,TT,TZ,UA ,UG,US,UZ,VN,YU,ZA,ZW

Claims (38)

    【特許請求の範囲】
  1. 【請求項1】 ロジック・シミュレーションの並列処理方法であって、ライ
    ン上の信号をある時間期間にわたりビット・シーケンスとして表すステップと、
    任意の内在的な遅延の評価を含む任意のロジック・ゲートの出力を、所定の一連
    のビット・パターンへの入力のビット・シーケンスを比較することによって評価
    するステップと、を含んでおり、その出力が前記時間期間の間に変化したロジッ
    ク・ゲートは前記ゲート出力の評価の間に真のゲート変化として識別され、前記
    真のゲート変化だけがファンアウト・ゲートまで伝搬され、この方法の制御は連
    想メモリ機構において実行され、前記連想メモリ機構は、ロジック・ゲートの状
    態変化のヒット・リスト・レジスタをコンパイルし、更に、それぞれのヒットに
    対してアドレスを発生するこの連想メモリ機構の複数応答レゾルバ形成部分を用
    いることにより、ゲート入力信号の履歴をワード形式で記憶し、前記ヒット・リ
    スト上の結果を後の使用のために出力レジスタに転送する、方法において、 前記ヒット・リストは、別個の走査レジスタにそれぞれが接続されている複数
    の別個のより小さなヒット・リストにセグメント化されており、それぞれの走査
    レジスタは、並列に動作して前記結果を前記出力レジスタに転送することを特徴
    とする方法。
  2. 【請求項2】 請求項1記載の方法において、前記連想レジスタは、別個の
    より小さな連想サブレジスタに分割され、それぞれのサブレジスタには1つのタ
    イプのロジック・ゲートが配分されており、前記連想サブレジスタはそれぞれが
    それ自体に接続された対応するサブレジスタを有することによって、ゲート評価
    及びテストがそれぞれの連想サブレジスタ上で並列に実行されることを特徴とす
    る方法。
  3. 【請求項3】 請求項1又は請求項2記載の方法において、それぞれの連想
    サブレジスタは、対応する別個の走査レジスタに接続されたヒット・リストを形
    成するのに用いられることを特徴とする方法。
  4. 【請求項4】 請求項1ないし請求項3の任意の請求項に記載の方法におい
    て、前記1つのタイプのロジック・ゲートの数が所定の数を超える場合には、複
    数のサブレジスタが用いられることを特徴とする方法。
  5. 【請求項5】 請求項1ないし請求項4の任意の請求項に記載の方法におい
    て、前記走査レジスタは、ORゲートを用いた例外ロジックを用いて制御され、
    それによって、前記走査は、前記ORゲートが状態を変化させるとそれぞれのレ
    ジスタに対して終了し、従って、それ以上の一致がないことを指示することを特
    徴とする方法。
  6. 【請求項6】 請求項5記載の方法において、前記走査は、前記ヒット・リ
    ストの中のシーケンシャルなカウントによって実行され、更に、 前記ビットがヒットを指示するように設定されているかどうかをチェックする
    ステップと、 ヒットの場合には、そのヒットによって達成されるアドレスを決定するステッ
    プと、 前記アドレスを記憶するステップと、 前記ヒット・リストにおける前記ビットをクリアするステップと、 前記ヒット・リストの中の次の位置に移動するステップと、 前記ヒット・リストがクリアされるまで、以上のステップを反復するステップ
    と、 が実行されることを特徴とする方法。
  7. 【請求項7】 請求項1ないし請求項6の任意の請求項に記載の方法におい
    て、ターゲット・ロジック・ゲートへのそれぞれのライン信号は、ある時間期間
    の遅延をそれぞれが表す複数のビットとして記憶され、前記集合体ビットは、前
    記ターゲット・ロジック・ゲートへの信号出力と前記ターゲット・ロジック・ゲ
    ートによる受取りとの間の遅延を表すことを特徴とする方法。
  8. 【請求項8】 請求項1ないし請求項7の任意の請求項に記載の方法におい
    て、それぞれの遅延は、前記連想メモリ機構の一部を形成する連想メモリに遅延
    ワードとして記憶され、 前記遅延ワードの長さが確認され、前記遅延ワードの幅が前記連想レジスタ・
    ワード幅を超える場合には、 前記遅延ワードの中に含まれるレジスタ・ワード幅の整数倍の数が、ゲート
    状態として計算され、 前記ゲート状態は、別の状態レジスタに記憶され、 前記計算からの剰余は、幅が前記連想レジスタ・ワード幅を超えなかった遅
    延ワードと共に、前記連想レジスタに記憶され、 前記連想レジスタのカウントが開始すると、 前記状態レジスタは当該状態レジスタに入力された遅延ワードを参照され、
    前記剰余は前記連想レジスタのこのカウントに対して無視され、 前記連想レジスタのカウントの終了時には、前記状態レジスタが更新され、 前記カウントは、前記カウントが依然として必要であることを前記剰余が表
    すまで継続することを特徴とする方法。
  9. 【請求項9】 請求項1ないし請求項8の任意の請求項に記載の方法におい
    て、 特定された信号値が入力され、 特定されない信号値は未知として設定され、 それぞれのロジック・ゲートに対する遅延モデルを定義するテスト・テンプレ
    ートが準備され、 入力回路がパージングされて、2入力型ロジック・ゲートで構成される等価回
    路が発生され、 前記2入力型ロジック・ゲートが構成される、初期化フェーズが存在すること
    を特徴とする方法。
  10. 【請求項10】 請求項1ないし請求項9の任意の請求項に記載の方法にお
    いて、多値ロジックが適用され、nビットが任意の時点における信号値を表すの
    に用いられ、nは任意に選択されたロジックであることを特徴とする方法。
  11. 【請求項11】 請求項10記載の方法において、000はロジック0を表
    し、111はロジック1を表し、001から110は任意に定義されたそれ以外
    の信号状態を表す8値ロジックが用いられることを特徴とする方法。
  12. 【請求項12】 請求項10又は請求項11記載の方法において、ロジック
    ・ゲート上の一連の値は、一意的なワードを形成するビット・パターンとして前
    記連想メモリ機構に記憶されることを特徴とする方法。
  13. 【請求項13】 請求項1ないし請求項12の任意の請求項に記載の方法に
    おいて、前記回路における最長の遅延の遅延のユニットに対してロジック・ゲー
    トが取得したすべての値の記録が記憶されていることを特徴とする方法。
  14. 【請求項14】 ロジック・シミュレーションの並列処理方法であって、ラ
    イン上の信号をある時間期間にわたりビット・シーケンスとして表すステップと
    、任意の内在的な遅延の評価を含む任意のロジック・ゲートの出力を、所定の一
    連のビット・パターンへの入力のビット・シーケンスを比較することによって評
    価するステップと、を含んでおり、出力が前記時間期間の間に変化したロジック
    ・ゲートは前記ゲート出力の評価の間に真のゲート変化として識別され、前記真
    のゲート変化だけがファンアウト・ゲートまで伝搬され、この方法の制御は連想
    メモリ機構において実行され、前記連想メモリ機構は、ロジック・ゲートの状態
    変化のヒット・リスト・レジスタをコンパイルし、更に、それぞれのヒットに対
    してアドレスを発生するこの連想メモリ機構の複数応答レゾルバ形成部分を用い
    ることにより、ゲート入力信号の履歴をワード形式で記憶し、前記ヒット・リス
    ト上の結果を後の使用のために出力レジスタに転送する、方法において、 前記連想レジスタは、別個のより小さな連想サブレジスタに分割され、それぞ
    れのサブレジスタには1つのタイプのロジック・ゲートが配分されており、前記
    連想サブレジスタはそれぞれがそれ自体に接続された対応するサブレジスタを有
    することによって、ゲート評価及びテストがそれぞれの連想サブレジスタ上で並
    列に実行されることを特徴とする方法。
  15. 【請求項15】 請求項1記載の方法において、前記ヒット・リストはそれ
    ぞれの連想サブレジスタに対応する複数の別個のより小さなヒット・リストにセ
    グメント化され、それぞれのより小さなヒット・リストは別個の走査レジスタに
    接続され、それぞれの走査レジスタは並列に動作して前記結果を前記出力レジス
    タに転送することを特徴とする方法。
  16. 【請求項16】 請求項14又は請求項15に記載の方法において、前記1
    つのタイプのロジック・ゲートの数が所定の数を超える場合には、複数のサブレ
    ジスタが用いられることを特徴とする方法。
  17. 【請求項17】 請求項16記載の方法において、前記走査レジスタは、O
    Rゲートを用いた例外ロジックを用いて制御され、それによって、前記走査は、
    前記ORゲートが状態を変化させるとそれぞれのレジスタに対して終了し、従っ
    て、それ以上の一致がないことを指示することを特徴とする方法。
  18. 【請求項18】 請求項17記載の方法において、前記走査は、前記ヒット
    ・リストの中のシーケンシャルなカウントによって実行され、更に、 前記ビットがヒットを指示するように設定されているかどうかをチェックする
    ステップと、 ヒットの場合には、そのヒットによって達成されるアドレスを決定するステッ
    プと、 前記アドレスを記憶するステップと、 前記ヒット・リストにおける前記ビットをクリアするステップと、 前記ヒット・リストの中の次の位置に移動するステップと、 前記ヒット・リストがクリアされるまで、以上のステップを反復するステップ
    と、 が実行されることを特徴とする方法。
  19. 【請求項19】 請求項14ないし請求項18の任意の請求項に記載の方法
    において、ターゲット・ロジック・ゲートへのそれぞれのライン信号は、ある時
    間期間の遅延をそれぞれが表す複数のビットとして記憶され、前記集合体ビット
    は、前記ターゲット・ロジック・ゲートへの信号出力と前記ターゲット・ロジッ
    ク・ゲートによる受取りとの間の遅延を表すことを特徴とする方法。
  20. 【請求項20】 請求項14ないし請求項19の任意の請求項に記載の方法
    において、それぞれの遅延は、前記連想メモリ機構の一部を形成する連想メモリ
    に遅延ワードとして記憶され、 前記遅延ワードの長さが確認され、前記遅延ワードの幅が前記連想レジスタ・
    ワード幅を超える場合には、 前記遅延ワードの中に含まれるレジスタ・ワード幅の整数倍の数が、ゲート
    状態として計算され、 前記ゲート状態は、別の状態レジスタに記憶され、 前記計算からの剰余は、幅が前記連想レジスタ・ワード幅を超えなかった遅
    延ワードと共に、前記連想レジスタに記憶され、 前記連想レジスタのカウントが開始すると、 前記状態レジスタは当該状態レジスタに入力された遅延ワードを参照され、
    前記剰余は前記連想レジスタのこのカウントに対して無視され、 前記連想レジスタのカウントの終了時に、前記状態レジスタは更新され、 前記カウントは、前記カウントが依然として必要であることを前記剰余が表
    すまで継続することを特徴とする方法。
  21. 【請求項21】 請求項14ないし請求項20の任意の請求項に記載の方法
    において、 特定された信号値が入力され、 特定されない信号値は未知として設定され、 それぞれのロジック・ゲートに対する遅延モデルを定義するテスト・テンプレ
    ートが準備され、 入力回路がパージングされて、2入力型ロジック・ゲートで構成される等価回
    路が発生され、 前記2入力型ロジック・ゲートが構成される、初期化フェーズが存在すること
    を特徴とする方法。
  22. 【請求項22】 請求項14ないし請求項21の任意の請求項に記載の方法
    において、多値ロジックが適用され、nビットが任意の時点における信号値を表
    すのに用いられ、nは任意に選択されたロジックであることを特徴とする方法。
  23. 【請求項23】 請求項22記載の方法において、000はロジック0を表
    し、111はロジック1を表し、001から110は任意に定義されたそれ以外
    の信号状態を表す8値ロジックが用いられることを特徴とする方法。
  24. 【請求項24】 請求項22又は請求項23記載の方法において、ロジック
    ・ゲート上の一連の値は、一意的なワードを形成するビット・パターンとして前
    記連想メモリ機構に記憶されることを特徴とする方法。
  25. 【請求項25】 請求項14ないし請求項24の任意の請求項に記載の方法
    において、前記回路における最長の遅延の遅延のユニットに対してロジック・ゲ
    ートが取得したすべての値の記録が記憶されていることを特徴とする方法。
  26. 【請求項26】 ロジック・シミュレーションの並列処理方法であって、ラ
    イン上の信号をある時間期間にわたりビット・シーケンスとして表すステップと
    、任意のロジック・ゲートの出力を、所定の一連のビット・パターンへの入力の
    ビット・シーケンスを比較することによって評価するステップと、を含んでおり
    、出力が前記時間期間の間に変化したロジック・ゲートは前記ゲート出力の評価
    の間に真のゲート変化として識別され、前記真のゲート変化だけがファンアウト
    ・ゲートまで伝搬され、この方法の制御は連想メモリ機構において実行され、前
    記連想メモリ機構は、ロジック・ゲートの状態変化のヒット・リスト・レジスタ
    をコンパイルし、更に、それぞれのヒットに対してアドレスを発生するこの連想
    メモリ機構の複数応答レゾルバ形成部分を用いることにより、ゲート入力信号の
    履歴をワード形式で記憶し、前記ヒット・リスト上の結果を後の使用のために出
    力レジスタに転送する、方法において、 ターゲット・ロジック・ゲートへのそれぞれのライン信号は、ある時間期間の
    遅延をそれぞれが表す複数のビットとして記憶され、前記集合体ビットは、前記
    ターゲット・ロジック・ゲートへの信号出力と前記ターゲット・ロジック・ゲー
    トによる受取りとの間の遅延を表し、それぞれのロジック・ゲートの内在的な遅
    延も同じ態様で表されることを特徴とする方法。
  27. 【請求項27】 請求項26記載の方法において、それぞれの遅延は、前記
    連想メモリ機構の一部を形成する連想メモリに遅延ワードとして記憶され、 前記遅延ワードの長さが確認され、前記遅延ワードの幅が前記連想レジスタ・
    ワード幅を超える場合には、 前記遅延ワードの中に含まれるレジスタ・ワード幅の整数倍の数が、ゲート
    状態として計算され、 前記ゲート状態は、別の状態レジスタに記憶され、 前記計算からの剰余は、幅が前記連想レジスタ・ワード幅を超えなかった遅
    延ワードと共に、前記連想レジスタに記憶され、 前記連想レジスタのカウントが開始すると、 前記状態レジスタは当該状態レジスタに入力された遅延ワードを参照され、
    前記剰余は前記連想レジスタのこのカウントに対して無視され、 前記連想レジスタのカウントの終了時に、前記状態レジスタは更新され、 前記カウントは、前記カウントが依然として必要であることを前記剰余が表
    すまで継続することを特徴とする方法。
  28. 【請求項28】 請求項26又は請求項27に記載の方法において、前記ヒ
    ット・リストはそれぞれの連想サブレジスタに対応する複数の別個のより小さな
    ヒット・リストにセグメント化され、それぞれのより小さなヒット・リストは別
    個の走査レジスタに接続され、それぞれの走査レジスタは並列に動作して前記結
    果を前記出力レジスタに転送することを特徴とする方法。
  29. 【請求項29】 請求項26ないし請求項28の任意の請求項に記載の方法
    において、前記走査レジスタは、ORゲートを用いた例外ロジックを用いて制御
    され、それによって、前記走査は、前記ORゲートが状態を変化させるとそれぞ
    れのレジスタに対して終了し、従って、それ以上の一致がないことを指示するこ
    とを特徴とする方法。
  30. 【請求項30】 請求項29記載の方法において、前記走査は、前記ヒット
    ・リストの中のシーケンシャルなカウントによって実行され、更に、 前記ビットがヒットを指示するように設定されているかどうかをチェックする
    ステップと、 ヒットの場合には、そのヒットによって達成されるアドレスを決定するステッ
    プと、 前記アドレスを記憶するステップと、 前記ヒット・リストにおける前記ビットをクリアするステップと、 前記ヒット・リストの中の次の位置に移動するステップと、 前記ヒット・リストがクリアされるまで、以上のステップを反復するステップ
    と、 が実行されることを特徴とする方法。
  31. 【請求項31】 請求項26ないし請求項30の任意の請求項に記載の方法
    において、 特定された信号値が入力され、 特定されない信号値は未知として設定され、 それぞれのロジック・ゲートに対する遅延モデルを定義するテスト・テンプレ
    ートが準備され、 入力回路がパージングされて、2入力型ロジック・ゲートで構成される等価回
    路が発生され、 前記2入力型ロジック・ゲートが構成される、初期化フェーズが存在すること
    を特徴とする方法。
  32. 【請求項32】 請求項26ないし請求項31の任意の請求項に記載の方法
    において、多値ロジックが適用され、nビットが任意の時点における信号値を表
    すのに用いられ、nは任意に選択されたロジックであることを特徴とする方法。
  33. 【請求項33】 請求項32記載の方法において、000はロジック0を表
    し、111はロジック1を表し、001から110は任意に定義されたそれ以外
    の信号状態を表す8値ロジックが用いられることを特徴とする方法。
  34. 【請求項34】 請求項32又は請求項33記載の方法において、ロジック
    ・ゲート上の一連の値は、一意的なワードを形成するビット・パターンとして前
    記連想メモリ機構に記憶されることを特徴とする方法。
  35. 【請求項35】 請求項26ないし請求項34の任意の請求項に記載の方法
    において、前記回路における最長の遅延の遅延のユニットに対してロジック・ゲ
    ートが取得したすべての値の記録が記憶されていることを特徴とする方法。
  36. 【請求項36】 ロジック・イベント・シミュレーションのための並列プロ
    セッサ(APPLES)であって、メイン・プロセッサと、応答レゾルバを含む連想メ
    モリ機構とを備えている並列プロセッサにおいて、前記連想メモリ機構は、 それぞれが、ある特定されたタイプのロジック・ゲートに対するゲート入力信
    号の履歴をワード形式で記憶する、複数の別個の連想サブレジスタと、 それぞれの連想サブレジスタと関連付けられていることにより、ゲート評価及
    びテストをそれぞれの連想サブレジスタにおいて並列に実行することができる複
    数の別個の追加的なサブレジスタと、 を備えていることを特徴とする並列プロセッサ。
  37. 【請求項37】 請求項36記載の並列プロセッサにおいて、前記追加的な
    サブレジスタは、入力サブレジスタと、マスク・サブレジスタと、走査サブレジ
    スタとを備えていることを特徴とする並列プロセッサ。
  38. 【請求項38】 請求項37記載の並列プロセッサにおいて、前記走査サブ
    レジスタは、出力レジスタに接続されていることを特徴とする並列プロセッサ。
JP2001507236A 1999-06-28 2000-06-28 ロジック・イベント・シミュレーション Pending JP2003503800A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IE990535 1999-06-28
IE990535 1999-06-28
PCT/IE2000/000083 WO2001001298A2 (en) 1999-06-28 2000-06-28 Logic event simulation

Publications (1)

Publication Number Publication Date
JP2003503800A true JP2003503800A (ja) 2003-01-28

Family

ID=11042093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001507236A Pending JP2003503800A (ja) 1999-06-28 2000-06-28 ロジック・イベント・シミュレーション

Country Status (8)

Country Link
US (1) US20070156380A1 (ja)
EP (1) EP1192570B1 (ja)
JP (1) JP2003503800A (ja)
KR (1) KR20020077032A (ja)
AT (1) ATE310281T1 (ja)
AU (1) AU5422600A (ja)
DE (1) DE60024088T2 (ja)
WO (1) WO2001001298A2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583263A (en) * 1995-08-30 1996-12-10 Shell Oil Company Process of making ketones
EP1476828B1 (en) * 2002-02-22 2007-10-24 Neosera Systems Limited A method and a processor for parallel processing of logic event simulation
EP1812877A1 (en) * 2004-10-04 2007-08-01 University College Dublin A method and processor for power analysis in digital circuits
US7983890B2 (en) * 2007-06-18 2011-07-19 Massachusetts Institute Of Technology Method and apparatus performing automatic mapping for a multi-processor system
EP2218024A1 (en) * 2007-10-03 2010-08-18 University College Dublin System level power evaluation method
US8024168B2 (en) 2008-06-13 2011-09-20 International Business Machines Corporation Detecting X state transitions and storing compressed debug information
CN101794214B (zh) * 2009-02-04 2013-11-20 世意法(北京)半导体研发有限责任公司 使用多块物理寄存器映射表的寄存器重命名系统及其方法
CN111522255B (zh) * 2020-04-22 2022-09-23 第四范式(北京)技术有限公司 仿真系统和仿真方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68926347T2 (de) * 1988-10-20 1996-11-14 Chung Speicherstruktur und verwendung
US6226710B1 (en) * 1997-11-14 2001-05-01 Utmc Microelectronic Systems Inc. Content addressable memory (CAM) engine

Also Published As

Publication number Publication date
EP1192570A2 (en) 2002-04-03
WO2001001298A3 (en) 2001-07-26
WO2001001298A2 (en) 2001-01-04
DE60024088D1 (de) 2005-12-22
AU5422600A (en) 2001-01-31
EP1192570B1 (en) 2005-11-16
DE60024088T2 (de) 2006-08-17
KR20020077032A (ko) 2002-10-11
ATE310281T1 (de) 2005-12-15
US20070156380A1 (en) 2007-07-05

Similar Documents

Publication Publication Date Title
US4527249A (en) Simulator system for logic design validation
US7224689B2 (en) Method and apparatus for routing of messages in a cycle-based system
US8359186B2 (en) Method for delay immune and accelerated evaluation of digital circuits by compiling asynchronous completion handshaking means
Bagrodia et al. A unifying framework for distributed simulation
US9558306B2 (en) Retiming a design for efficient parallel simulation
US20070156380A1 (en) Logic event simulation
Abramovici et al. A logic simulation machine
Levendel et al. Special‐Purpose Computer for Logic Simulation Using Distributed Processing
Ulrich et al. Concurrent and comparative discrete event simulation
Bernhard Computers: Computing at the speed limit: Computers 1000 times faster than today's supercomputers would benefit vital scientific applications
Chung et al. Data parallel simulation using time-warp on the Connection Machine
Konas et al. Synchronous parallel discrete event simulation on shared-memory multiprocessors
Koike et al. HAL: A high-speed logic simulation machine
Anderson Simulation and analysis of barrier synchronization methods
Konas et al. Improved parallel architectural simulations on shared-memory multiprocessors
Chung et al. Efficient parallel logic simulation techniques for the connection machine.
Lewis Hardware accelerators for timing simulation of VLSI digital circuits
Júlvez et al. On the performance evaluation of multi-guarded marked graphs with single-server semantics
Kormicki et al. Parallel logic simulation on a network of workstations using parallel virtual machine
Karthik et al. A framework for distributed VLSI simulation on a network of workstations
Mohamed HW/SW Co-Exploration and Co-Design
IE20000519A1 (en) Logic event simulation
Konas Parallel architectural simulations on shared memory multiprocessors
Muller Evaluation of a communication architecture by means of simulation
Gile et al. Towards distributed simulation of complex discrete event systems represented by colored Petri nets: a review

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091222