JPH07334384A - 多重プロセッサ・エミュレーション・システム - Google Patents

多重プロセッサ・エミュレーション・システム

Info

Publication number
JPH07334384A
JPH07334384A JP7094674A JP9467495A JPH07334384A JP H07334384 A JPH07334384 A JP H07334384A JP 7094674 A JP7094674 A JP 7094674A JP 9467495 A JP9467495 A JP 9467495A JP H07334384 A JPH07334384 A JP H07334384A
Authority
JP
Japan
Prior art keywords
emulation
processor
software
control
processors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP7094674A
Other languages
English (en)
Other versions
JP2989518B2 (ja
Inventor
William F Beausoleil
ウィリアム・フランシス・ビューソレイル
Tak-Kwong Ng
タク−ウォン・ン
Harold R Palmer
ハロルド・リチャード・パーマー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07334384A publication Critical patent/JPH07334384A/ja
Application granted granted Critical
Publication of JP2989518B2 publication Critical patent/JP2989518B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation

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)

Abstract

(57)【要約】 【目的】 実用ASICチップの初期設計から検証作業
までの高速行程を妥当なコストにより提供する。 【構成】 ソフトウェア駆動型多重プロセッサ・エミュ
レーション・システムが、モジュール内で並列に接続さ
れる複数のエミュレーション・プロセッサEPを含む。
1個または複数のモジュールがエミュレーション・シス
テムを構成する。各プロセッサは、任意のタイプの論理
ゲート機能をエミュレートする実行ユニットを含む。並
列バスが各プロセッサの出力をマルチプレクサ入力に接
続し、それによりモジュール内のあらゆる他のプロセッ
サと接続される。各プロセッサは、そのオペレーション
を制御するソフトウェア論理表現信号を記憶する制御記
憶を組込む。更に各プロセッサには、制御記憶内のソフ
トウェア信号の制御の下で生成されるデータを受信する
データ記憶が組込まれる。各モジュール上の並列プロセ
ッサは、各プロセッサからのモジュール入力及びモジュ
ール出力を有する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は論理ゲート機能のエミュ
レーションに関し、特に多重プロセッサによるエミュレ
ーション・システムに関する。
【0002】
【従来の技術】20年に満たない間に、VLSI(超大
規模集積回路)チップの製造技術は、実験室レベルから
大量生産のレベルにまで発展した。集積回路密度が飛躍
するにつれ、チップ生産ツール及び方法もそれに歩調を
合わせて発展しつつある。有用性を保証するため、VL
SIチップは精密に設計され、十分にテストされ、完璧
に製造されなければならない。指の爪ほどのサイズの中
に数百万個もの実用トランジスタが数百万もの完璧な相
互接続により形成される1片のシリコンを生産すること
は大変な作業である。これを高速な行程で成し遂げるこ
とは不可能と思われるが、これが本発明が目指す現実的
な目標である。
【0003】今日の競争市場において、企業は複雑且つ
カスタム化された製品を迅速に生産しなければならな
い。市場投入までの期間短縮の必要性がカスタム化アプ
リケーション特有集積回路(ASIC)の人気を高め
た。ASICチップは新製品に欠くことのできない部品
であるので迅速に開発され、1度で正しく設計されなけ
ればならず、さもないとその製品が市場における適時性
を失い、失敗につながりうる。従って実用ASICチッ
プの初期設計から検証作業に至る高速な行程が必要とさ
れる。本発明は新ASICチップの設計期間を多大に短
縮するものである。
【0004】ASICの複雑性及び小サイズ化は、それ
らの開発ツール及び工程に対する固有の要求を有する。
その結果、機械設計者及びプリント回路基板(PCB)
設計者は、ASIC設計者と密に作業し、市場投入まで
の期間を短縮しなければならない。PCB及びASIC
は短い有効寿命(例えば2年)を有するが、ASICは
しばしばその設計に2年以上を要し、これは大部分のP
CBの4倍乃至6倍の期間に相当する。更に大規模AS
ICは、しばしばPCBのメモリ及びCPU能力、或い
は他の設計ツールを上回る。ASIC論理設計の数百万
個ものゲートのシミュレーションは、しばしばPCBシ
ミュレーション要求を上回る。更にPCBとは異なり、
製造されるASICのプロトタイプ(試作品)は、容易
にテスト、測定または変更することができない。
【0005】ASIC設計により課せられる要求に適合
するために、技術者は高性能、大容量且つ精密なツール
を必要とする。一般に"フロントエンド処理"と呼ばれる
設計製造、組立て、シミュレーションにより、設計者は
自らの設計の論理表現を開発することができる。物理的
レイアウト及び検証を含む"バックエンド処理"は、設計
の物理的表現により設計者を支援する。IC設計者は両
カテゴリに対応して、市場に存在する様々な特有のツー
ルから選択することができる。
【0006】
【発明が解決しようとする課題】原則的に、VLSIチ
ップ設計は検証されなければならない。すなわち使用以
前にその意図する機能の確実な宣言に対して、余す所な
くテストが実施されなければならない。検証無しに何十
万個もの構成ブロックを結合し、意図する複雑な機能を
正確に獲得する確率は非常に小さい。勿論、十分な時間
と資金があれば、実用設計が達成されるまでチップの試
作品を製造し、それらを意図する環境においてテストす
る工程を循環することは可能である。最近、チップ鋳造
ターンアラウンド・タイムが著しく低減されたが、試作
品を製造するコストは時間的にも資金的にもまだ大き
く、こうした状態が今後も続くものと思われる。
【0007】VLSIチップ設計のソフトウェア・シミ
ュレーションは、試作品製作に代わるものである。しか
しながら、これは時間を要し、冗長で能力的に極めて限
られている。テスト実行の遅さ、並びに完全な一連のテ
スト・ケースを生成及び実行する困難性及びコストによ
り、シミュレーションにより余す所なくVLSIチップ
設計をチェックすることは困難であり、ほとんど不可能
に近い。
【0008】市場競争の圧力及びVLSIチップの益々
増大化する回路密度は、密度が増大するにつれ、試作品
作成及びシミュレーションのそれぞれのアプローチを望
ましくないものにしつつある。両方のアプローチは相変
わらず、完全に機能するチップを生成するために、設計
の複数の試作品バーションを繰返し製造することを要求
する。
【0009】設計検証において、エミュレータはシミュ
レータよりも好適な選択である。なぜなら、エミュレー
タは試作品のように使用することができ、多くの場合、
より高速に実行するからである。エミュレータは試作品
により使用されるのと同一の入出力信号を使用し、実際
のシステムにおいて試作品の代わりをする。このことは
シミュレータでは不可能である。なぜならシミュレータ
の場合は、入出力信号が同期される必要があり、エミュ
レータまたは試作品により提供される実際の信号の形態
を有さないからである。
【0010】
【課題を解決するための手段】本発明の基本構成ブロッ
クは、例えば128などの多数の3入力論理ゲートをエ
ミュレートするエミュレーション・プロセッサ(EP)
である。各ゲート・エミュレーションは、3入力により
可能な256の2進機能の任意の機能を実行し、結果を
続く使用に備え、データ・スタックに記憶する。従来の
VLSI記述では、例えば"50000ゲート・アレイ"
などは、2入力NANDゲートを指すものと理解され
る。様々な設計の分析の結果、本発明のラッチ結果を有
する各3入力ゲート・エミュレーションは、4個の2入
力NANDゲートに匹敵することが判明した。従って、
各エミュレーション・プロセッサは相当に複雑な設計、
すなわち500個の2入力NANDゲートに匹敵する設
計をエミュレートすることができる。単一のエミュレー
ション・チップ(ここでは"モジュール"と呼ぶ)内に、
複数例えば64個のエミュレーション・プロセッサがパ
ッケージ化され、複数の例えば65個のエミュレーショ
ン・モジュールがエミュレーション・ボード上に実装さ
れる。各ボードは最大50万個の3入力ゲートまたは2
00万個の2入力NANDゲートをエミュレートするこ
とができる。勿論、複数のエミュレーション・ボードが
エミュレーション・エンジン内に結合されてもよく、こ
の場合、合理的サイズのエミュレーション・エンジンに
より、数千万個の論理ゲートをエミュレートすることが
できる。
【0011】ほとんどのASICチップはレジスタ間転
送論理により設計され、単一パス・クロック・サイクル
の間に、信号がレジスタ出力から組合わせ論理を介し
て、レジスタ入力に転送され、ここでラッチされる。組
合わせ論理は1個または複数のゲートを含み、各ゲート
は1つまたは複数の入力を有し、1つまたは複数の出力
を生成する。論理パスは組合わせ論理内の全てのゲート
を含み、これらを介して信号が転送され、レジスタへの
特有の入力を生成する。
【0012】従来のエミュレータは、処理要素を組合わ
せ論理内の各特有のゲートのエミュレートに専従させる
(参考文献"Quickturn"などを参照されたい)。本発明
は好適には高速技術を使用し、論理パス全体をエミュレ
ートするために、1個のエミュレーション・プロセッサ
が使用される。エミュレーションの間、シーケンサ(各
エミュレーション・モジュール内の1個)が0から最大
値まで増分され、全てのエミュレーション・プロセッサ
に送信される共通のステップ値を生成する。エミュレー
トされるパス・クロック・サイクルはシーケンサが0に
リセットされるときに開始し、最大定義論理パス長に達
すると終了する。エミュレートされるパス・クロック・
サイクルの間、各エミュレーション・プロセッサは特定
の論理パスに対応する全ての論理をエミュレートする
(1サイクル当たり1パス)。
【0013】エミュレーション・プロセッサの好適な実
施例は、制御記憶とデータ・スタックの2つの組込み型
メモリ・アレイを含み、各々が128エントリを有す
る。これらのアレイはシーケンサからのステップ値によ
りアドレスされ、こうしたステップ値は各エミュレーシ
ョン・ステップ後に増分される。各エミュレーション・
プロセッサはステップ値により、ステップの間に実行さ
れるオペレーションを定義する制御ワードをアクセスす
る。従って最大128個の3入力ゲートまたは約500
個のターゲット・システム・ゲートの論理機能を実現す
るために、各エミュレーション・プロセッサ内の単一の
論理要素が繰返し使用される。128個の3入力ゲート
よりも長いパスは、複数のエミュレーション・プロセッ
サに渡って拡張される。エミュレーション・プロセッサ
出力は、大域及び局所レジスタ機能を提供するエミュレ
ーション・プロセッサ内でラッチされる。
【0014】各エミュレーション・オペレーションによ
り生成された出力は、エミュレーション・プロセッサ内
に記憶され、その全ての後任オペレーションにより直接
使用される。これはまた、同一のエミュレーション・モ
ジュール内の他の全てのエミュレーション・プロセッサ
にとっても、相互接続網を介して使用可能になる。更に
オペレーション出力がエミュレーション・モジュール出
力としてラッチされれば、これは同一のエミュレーショ
ン・ボード上の他のエミュレーション・モジュール内の
1個または複数の他のエミュレーション・プロセッサに
よっても使用可能になる。更にエミュレーション・オペ
レーション出力が外部出力としてラッチされれば、これ
は他のエミュレーション・ボード、ターゲット・システ
ムまたはエミュレーション支援機構への入力となりう
る。
【0015】VLSIチップはしばしば、チップ内また
はチップ外に組込まれる特定の形態のメモリ・アレイ内
のデータをアクセスするために使用される。エミュレー
ション・プロセッサは両方のタイプのメモリ・アレイを
エミュレートし、このメモリ・アレイ・エミュレーショ
ンを上述の論理機能エミュレーションに絡める。各制御
ワード内のビットはメモリ・オペレーションを示し、右
制御ワード内の複数ビット例えば32ビットがメモリ・
アレイ・データをエミュレートする。メモリ・オペレー
ションの間に、右制御ワード内のエミュレートされるメ
モリ・アレイ・データをアクセスするために特殊アドレ
ス指定機構が使用される。
【0016】右制御ワードはメモリ・アレイをエミュレ
ートするために使用され、例えば1ビット幅で32ビッ
トの深さを有し、柔軟に結合されて様々な深さ及び幅を
有する単一のまたは複数のメモリ・アレイをエミュレー
トする。メモリ・アレイをエミュレートするために使用
される任意の右制御ワードについても、エミュレートさ
れるパス・クロック・サイクルの間に複数回アクセスさ
れ、多重ポート・メモリ・アレイをエミュレートする。
【0017】論理機能エミュレーション・オペレーショ
ン及びメモリ・アレイ・エミュレーション・オペレーシ
ョンは、非常に大きなエミュレーション容量を有しうる
エミュレーション・エンジン内のエミュレーション・プ
ロセッサ間で柔軟に結合される。好適な実施例では、各
エミュレーション・プロセッサは最大4096ビットの
メモリ・アレイ・データ(128×32)をエミュレー
トする潜在能力を有する。エミュレーション・モジュー
ルは、最大25万ビットのメモリ・アレイ・データをエ
ミュレートする潜在能力を有する。妥当なサイズのエミ
ュレーション・エンジンは、数百万ビットのメモリをエ
ミュレートすることができる。
【0018】エミュレーションを開始する以前に、エミ
ュレーション・コンパイラにより、エミュレートされる
論理設計が論理クラスタに区分される。各論理クラスタ
に対して、一連の制御ワードから成る制御プログラムが
特定のエミュレーション・プロセッサに対応して構成さ
れる。個々のエミュレーション・プロセッサ制御プログ
ラムがエミュレーションに先立ち、エミュレーション・
プロセッサの組込み型制御記憶にロードされる。エミュ
レーションの間、エミュレーション・プロセッサは各エ
ミュレーション・モジュール内の共通のシーケンサによ
り提供されるステップ値により、それぞれの制御プログ
ラムから制御ワードを同期して実行する。各ステップの
間、エミュレーション・プロセッサはエミュレートされ
る設計のレジスタ間の論理パス内の単一の3入力論理ゲ
ートに対応する制御ワードを実行する。ステップの完全
なシーケンスは、レジスタ出力と特定のレジスタ入力と
の間の組合わせ論理内の全ての論理パスを横断すること
に対応する。各エミュレーション・プロセッサはその固
有のプログラムを実行し、割当てられた論理クラスタを
エミュレートする。各エミュレーション・プロセッサは
エミュレートされる設計内の論理クラスタを結合する相
互接続網を介して、同一のエミュレーション・モジュー
ル内の他のエミュレーション・プロセッサと通信する。
ターゲット・システム、エミュレーション支援機構及び
同一のエミュレーション・モジュール内に存在しないエ
ミュレーション・プロセッサとの通信は、各エミュレー
ション・プロセッサに専用のエミュレーション・モジュ
ール・パッド上の入出力信号により提供される。
【0019】エミュレーションの間、シーケンサはプロ
グラムされたステップ数に従い増分され、エミュレーシ
ョン支援機構により停止されるまで繰返される。シーケ
ンサの各循環は、エミュレートされる設計の1パス・ク
ロック・サイクルに対応し、レジスタ出力及びターゲッ
ト・システム入力が論理的に結合され、次のパス・クロ
ック・サイクルにおけるレジスタ入力としてラッチされ
る。シーケンサは、エミュレートされるパス・クロック
・サイクルを、複数の例えば128のステップに効果的
に分割し、各ステップはエミュレートされる設計の1つ
の3入力論理ゲートのエミュレーションに対応する。
【0020】
【実施例】図1のエミュレーション・プロセッサ(ここ
では単に"プロセッサ"と呼ぶ)は、好適な実施例のエミ
ュレーション・エンジンの基本コンポーネントである。
プロセッサの主な機能は、3入力論理機能を実行し、シ
ーケンサの各ステップの間に機能ビット出力を生成する
ことである。各論理機能の入力は、以前のオペレーショ
ンまたは別のプロセッサから記憶されたビットなどの様
々なソースから選択される。結果の機能ビット出力は、
エミュレートされる設計の論理ゲート出力、エミュレー
トされる設計のレジスタ出力、合成中間論理状態、或い
はエミュレーション・プロセスにおいて生成される制御
ビットのいずれかに対応する。プロセッサの論理機能に
代わるものにメモリ・オペレーションがあり、この場合
には、制御記憶の一部が、エミュレートされる論理設計
のメモリ・アレイをエミュレートするために使用され
る。シーケンサ・ステップの間にプロセッサにより実行
される追加の共通オペレーションには、プロセッサによ
る続く使用に備えるための機能ビット出力の記憶、(プ
ロセッサの)外部データの捕獲及び記憶、別のプロセッ
サからのデータの受信、並びに別のプロセッサ、外部デ
ータまたはメモリ・アドレス・レジスタ(MAR)によ
る使用に備えるためのデータのラッチが含まれる。
【0021】エミュレーション・チップ(ここでは"モ
ジュール"と呼ぶ)は、複数の例えば64個のプロセッ
サを含む。モジュール内の全てのプロセッサは同一であ
り、図1に示される内部構造を有する。プロセッサ構造
の詳細が、図2乃至図5に示される。図1では、指定プ
ロセッサは"シーケンサ"及び"相互接続網"(破線ボック
スで示される)以外を含み、これらはモジュール内に1
個ずつ含まれる。左右の制御記憶は指定プロセッサに対
応してエミュレーション・コンパイラにより生成される
固有のプログラムを保持する。スタックは以前に生成さ
れたデータを保持し、対応する右制御ワード内のフィー
ルドによりアドレスされ、論理要素への入力となる3つ
の2進ビットを突きとめる。入力スタックは、ノード・
ビット入力(図5)を介して受信されるデータを保持
し、データ・スタックは、プロセッサにより以前に生成
されたデータ(機能ビット出力またはメモリ・ビット出
力)を保持する。
【0022】シーケンサの各ステップの間、エミュレー
ション・プロセッサはエミュレーション・プログラムに
従い、3入力論理機能またはメモリ・アレイ・アクセス
のいずれかをエミュレートする。論理オペレーションま
たはメモリ・オペレーションの選択は、各左制御ワード
内のビットにより動的に決定される。データ・フロー制
御は現制御ワードを解釈し、プロセッサ内でデータを経
路指定及びラッチする。
【0023】指定プロセッサからのノード・ビット出力
信号は、相互接続網(図1)に供給され、ここで、これ
は64個の各々の64入力マルチプレクサに分配され
る。左制御ワード内のノード・アドレス・フィールド
は、指定プロセッサがそのノード・ビット入力信号に応
じて、モジュール内の64個の任意のプロセッサからノ
ード・ビット出力信号を選択することを可能にする。ノ
ード・ビット入力は、毎ステップごとに入力スタックに
記憶される。任意の論理オペレーションまたはメモリ・
オペレーションの間に、指定プロセッサのノード・ビッ
ト出力信号がモジュール内の1個または全てのプロセッ
サによりアクセスされたり、されなかったりする。
【0024】各プロセッサのデータ・フローの内部の及
び相互接続網を通じるデータの経路指定は、各プロセッ
サ内の論理エミュレーション機能の実行とは独立に発生
し、これと重複する。
【0025】制御記憶:好適な実施例では、各制御記憶
は、関連モジュール内の共通シーケンサの制御の下で順
次繰返して実行される128制御ワードを記憶する。シ
ーケンサの各循環は、ステップ値を0から所定の最大値
に進め、エミュレートされる設計の1設計パス・クロッ
ク・サイクルに対応する。制御記憶内の左右の制御ワー
ドは、シーケンサの各ステップの間に同時に選択され
る。これらの図では多重信号バス表記法が使用され、例
えばPC(0−1)はPCバスの第1及び第2の信号を
表し、LC(2)はLC信号の第3の信号を表す。
【0026】論理機能エミュレーション・オペレーショ
ンは、左制御ワード内のメモリ・オペレーション・ビッ
トが非活動状態(オフ)のとき、左右の制御ワード対に
より定義される。メモリ・オペレーションは、左制御ワ
ード内のメモリ・オペレーション・ビットが活動状態
(オン)のとき、左制御ワードにより定義される。メモ
リ・オペレーションでは、右制御記憶はステップ値によ
り直接アドレスされずに、左制御ワードとメモリ・アド
レス・レジスタからのデータの組合わせによりアドレス
される。メモリ・オペレーションの間にアドレスされる
右制御ワードの内容は、エミュレートされるメモリ・ア
レイ内のデータとして解釈される。従って、任意の右制
御ワードが任意のシーケンサ・ステップの間にアドレス
され、左制御ワードだけがモジュール・シーケンサから
のステップ信号により順次アドレスされる。
【0027】図2及び図3は、プロセッサが論理機能オ
ペレーションまたはメモリ・アレイ・オペレーションを
それぞれエミュレートするときに、プロセッサにより使
用される制御ワード・フィールドを示す。ここで左右の
制御ワード内のフィールドは、ノード・アドレス及びメ
モリ・オペレーション・ビット(MOP)が活動状態の
時に活動状態を維持するパス制御ビットを除き、再定義
される。集結される制御ワード・フィールドには次のも
のが含まれる。 ノード・アドレス(NAD):プロセッサから相互接続
網に提供される6ビットであり、これにより関連する6
4入力マルチプレクサが、モジュール内の64個のプロ
セッサの1個からノード・ビット出力を選択する。選択
されたノード・ビット出力はノード・ビット入力信号と
して受信され、入力スタック内に記憶され、論理オペレ
ーションの間にプロセッサ内の1個または複数のラッチ
に記憶される。 パス制御(PC):プロセッサ内のデータ・フローを制
御する3ビットであり、主にノード・ビット出力として
提供されるデータを決定する(図5)。 ラッチ制御(LC):(MOP=0)論理オペレーショ
ンの間に限り、プロセッサ・データ・フロー内の4個の
ラッチの設定を独立に制御する4ビットである。 ソース制御(SRC):(MOP=0)論理機能をエミ
ュレートするための論理要素への入力に対応するデータ
の3つのソースを選択する6ビットである(図4参
照)。 メモリ・オペレーション(MOP):現ステップの間
に、論理機能エミュレーション・オペレーションまたは
メモリ・アレイ・アクセス・オペレーションのいずれが
実行されるかを決定する単一のビットである。MOPビ
ットが非活動状態の時、右制御記憶がステップ値により
アクセスされる。MOPビットが活動状態の時、右制御
記憶が左制御ワードのメモリ・アドレス・フィールド
と、メモリ・アドレス・レジスタからのライン・アドレ
スとの論理和によりアクセスされる(図3参照)。 論理機能テーブル(LFT):(MOP=0)エミュレ
ートされる論理機能を定義する8ビットである。論理機
能は、3つのデータ・ビットからアドレスを形成し、8
ビットの1つを抽出することによりエミュレートされ
る。 読出しアドレスA(RAA):(MOP=0)論理要素
内の論理機能エミュレーションのアドレス・ビット0と
して使用されるデータ・ビットを選択するために、両方
のスタックをアドレスする7ビットである(図4参
照)。 読出しアドレスB(RAB):(MOP=0)論理要素
内の論理機能エミュレーションのアドレス・ビット1と
して使用されるデータ・ビットを選択するために、両方
のスタックをアドレスする7ビットである(図4参
照)。 読出しアドレスC(RAC):(MOP=0)論理要素
内の論理機能エミュレーションのアドレス・ビット2と
して使用されるデータ・ビットを選択するために、両方
のスタックをアドレスする7ビットである(図4参
照)。 メモリ・アドレス(MAD):(MOP=1)メモリ・
アドレス・レジスタからのライン・アドレスと論理和さ
れ、メモリ・アレイ・アクセス・オペレーションのエミ
ュレーションの間に、右制御記憶内の制御ワードをアク
セスする7ビットである。
【0028】スタック:モジュール内の各プロセッサ
は、論理データ記憶用の128×1ビットの多重ポート
・スタックを有し、各スタックは1つの書込みアドレス
及び3つの読出しアドレスを有する。書込みアドレスは
ステップ値から導出され、毎ステップごとに両方のスタ
ックにデータを記憶するために使用される。3つの読出
しアドレス(RAA、RAB、RAC)は、論理機能エ
ミュレーション・オペレーションの間に、以前に記憶さ
れたデータを選択的にアクセスするために使用される。
読出されたデータは、右制御ワード内の論理機能(LF
T)から単一ビットをアクセスするためのアドレスを生
成するために、論理要素により使用される。
【0029】データ・スタックは、指定プロセッサによ
り内部的に生成されたデータ(機能ビット出力またはメ
モリ・ビット出力)を保持する。入力スタックは、プロ
セッサの外部で獲得され、プロセッサ・データ・フロー
により選択されたデータを保持する(図5参照)。一般
にこのデータは別のプロセッサ、エミュレーション支援
機構、または外部ターゲット・システムから到来する。
【0030】論理要素:プロセッサの論理要素によりエ
ミュレートされる論理機能は、8ビット論理機能テーブ
ルとして符号化される。3つのデータ・ビットがテーブ
ルのインデックスを構成するために使用され、アドレス
されたビットが論理機能の結果または出力を表す。例え
ば3入力NAND機能は"11111110"Bなどと符号化され
る。3つの全てのアドレス・ビットがハイの場合に限
り、アクセスされるビットが非活動状態すなわちNAN
Dとなる。同様に3入力OR機能は"01111111"Bなどと
符号化され、全てのアドレス・ビットが非活動状態の場
合に限り、アクセスされるビットは非活動状態となる。
単純なインバータは"10101010"Bなどと符号化され、ア
クセスされるビットは最下位アドレス・ビットの反転と
なる。8ビット論理機能テーブルにより、256の論理
機能のいずれかが指定される。
【0031】プロセッサの論理要素が図4の破線内に示
される。3個の4入力マルチプレクサの各々は、4つの
ソースの1つから、アドレス・ビットとなるデータを選
択する。3つのアドレス・ビットが8入力マルチプレク
サへの選択入力として結合される。このマルチプレクサ
へのデータ入力は、右制御ワード内の8ビットLFTフ
ィールドから得られる。LFTフィールドから選択され
るビットはエミュレートされる機能の結果であり、機能
ビット出力信号として提供される。
【0032】制御記憶内のソース制御(SRC)フィー
ルドの6ビットは、機能的に3つの2ビット・サブフィ
ールドに分割され、各々がアドレス・マルチプレクサに
より使用される。入力スタックまたはデータ・スタック
からのデータが論理機能インデックスとして使用される
場合には、"単純"論理機能がエミュレートされる。隣接
プロセッサが任意のステップの間に協働するようにプロ
グラムされる場合、"拡張"論理機能も実行される。拡張
論理機能ステップでは、1個または複数(本実施例では
最大3個)の隣接プロセッサの機能ビット出力が、論理
機能インデックスを形成するために使用される。図4に
は、これらの拡張入力がF−n及びF+nとして指定さ
れ、ここで、nは1、2または3である。実施例では、
F−n入力は識別プロセッサの機能ビット出力から得ら
れ、F+n入力は以前のステップのラッチされた機能ビ
ット出力値から得られる。例えば64個のプロセッサを
有するモジュールは、129ビット入力拡張論理機能を
1ステップでエミュレートすることができる。
【0033】論理要素により、左右の制御記憶内の制御
ワードの内容が、プログラムされた設計の低レベル論理
ゲートのエミュレーションと相関付けられる。通常、良
好な設計は、パス遅延を最小化し、性能を向上するよう
に論理パス内の論理ゲート数を制限する。我々の分析に
よれば、128の制御ワードにより、ほとんどの設計を
エミュレートすることができることが判明した。しかし
ながら、この制限を越える設計では、低レベル論理ゲー
トのサブセットを1ステップでエミュレートするため
に、拡張論理機能も使用される。エミュレーション・コ
ンパイラが、シミュレートされる設計の低レベル論理ゲ
ートを分析し、適宜拡張論理機能を挿入する。
【0034】データ・フロー:図5のデータ・フロー
は、単一のプロセッサの論理を実行する追加の内部ラッ
チ及びマルチプレクサを示す。このデータ・フローは、
プロセッサ内でデータを経路指定し、プロセッサ及びモ
ジュールの外部で使用されるデータをホールドするため
のラッチを含む。図5には更に、相互接続網(図1)の
対応する64入力マルチプレクサが示され、これはノー
ド・ビット入力信号に対応して、別のプロセッサからの
データを選択する。
【0035】現左制御ワードからのパス制御フィールド
(PC)は、ノード・ビット出力に対応するデータ・ソ
ース及びデータ・スタックに書込まれるデータを選択す
るように、データ・フロー内でデータを経路指定する。
ラッチ制御フィールド(LC)は、後の使用に備え、4
個のそれぞれのラッチに対するデータのラッチを独立に
制御する。
【0036】モジュール・ビット入力ラッチ及びモジュ
ール・ビット出力ラッチは、プロセッサが同一のエミュ
レーション・ボード(図7)上の別のモジュール内の指
定プロセッサと通信するために使用する。これらの2つ
の信号は専用のモジュール・ピンに接続され、同一のエ
ミュレーション・ボード上の別のモジュール上の特定の
対応ピンに配線される。これらのピン上に転送されるデ
ータ・ビットは、データが、エミュレートされる設計の
複数のノードに対応してステップ毎に変化するように、
時分割制御される。
【0037】外部ビット入力ラッチ及び外部ビット出力
ラッチは、プロセッサがエミュレーション支援機構、タ
ーゲット・システムまたは他のエミュレーション・ボー
ド上のプロセッサと通信するために使用する。これらの
2つの信号は専用のモジュール・ピンにも接続され、エ
ミュレーション・ボード上のコネクタ・ピンに配線され
る。通常、これらのピン上の情報は、シーケンサの1循
環の間に高々1度変化し、エミュレートされる設計の入
力または出力信号に対応する。エミュレーション支援機
構に接続されるとき、データ・ビットはステップ毎に変
化しうる。
【0038】このデータ・フローの重要な機能は、モジ
ュール・ビット入力データを相互接続網に渡すのと同時
に、論理オペレーションを実行する(結果を保管する)
能力である。このバイパス経路指定機能は、特定のプロ
セッサが相互接続されるように、モジュール間のボード
・レベル配線を増補する。これにより、プロセッサが同
一モジュール内に存在せず、エミュレーション・ボード
配線を介して直接接続されない場合、非ブロック化(no
n-blocking)プロセッサ間通信が2ステップで提供され
る。
【0039】メモリ・アドレス・レジスタ:エミュレー
トされるメモリ・アレイ・オペレーションを増補するた
めに、エミュレーション・モジュールは複数の、例えば
4個のメモリ・アドレス・レジスタを含む。各レジスタ
は3つのフィールド、すなわち7ビットのライン・アド
レス、5ビットのビット・アドレス及び読出し/書込み
オペレーション・ビットを含む。メモリ・オペレーショ
ンの間(図3)、ライン・アドレスが左制御ワードから
のメモリ・アドレス・データ(MAD)と論理和され、
組込み型メモリ要素をアクセスするために、右制御記憶
に供給されるアドレスを形成する。ビット・アドレス
は、メモリ読出しまたは書込みオペレーションのための
単一ビットを選択するために使用される。
【0040】概念的には、メモリ・アドレス・レジスタ
はモジュール内のプロセッサに独立であるが、物理的に
は、各メモリ・アドレス・レジスタは、13個のプロセ
ッサ内のメモリ・アドレス・ビット・ラッチから構成さ
れる。4個の独立のメモリ・アドレス・レジスタが、6
4個のプロセッサを有するモジュール上に構成され、各
々は四分区間内の16個のプロセッサに関連付けられ
る。関連付けられるプロセッサ内のエミュレーション制
御プログラムは、協働して、共有メモリ・アドレス・レ
ジスタの内容を生成及び変更する。各エミュレーション
・モジュール内の12個の残りの(予備の)メモリ・ア
ドレス・ビット・ラッチ(各四分区間から3個)は、論
理オペレーションの間に他の目的のために使用される。
【0041】エミュレーション・モジュール:上述のエ
ミュレーション・プロセッサは、エミュレーション・エ
ンジンの基本コンポーネントである。図6に示されるエ
ミュレーション・モジュールは、物理パッケージ化の第
1レベルであり、64個の同一のプロセッサのアレイ、
相互接続網及びシーケンサを含む。シーケンサからのス
テップ値は、モジュール内の全てのプロセッサに提供さ
れ、それらのエミュレーション・プログラムを同期して
実行することを可能にする。エミュレーションの間、シ
ーケンサは0から最大値まで繰返し増分される。最大値
(128未満)は、エミュレートされる設計の最大パス
長に依存する。設計をエミュレートするために複数のモ
ジュールが使用される場合、それらのシーケンサは同期
してステップし、同一の値を含む。
【0042】モジュール内で、各プロセッサはノードと
見なされる。64個のノードが、64個の64入力マル
チプレクサを含む非ブロック化相互接続網を介して、相
互接続される。各マルチプレクサはその関連プロセッサ
からノード・アドレスを受信し、ノード・ビット入力信
号を返却する。相互接続網内のあらゆるマルチプレクサ
は、その入力として、64個の各プロセッサからのノー
ド・ビット出力信号を有する。マルチプレクサの出力
は、そのプロセッサへのノード・ビット入力となる。各
マルチプレクサは、その関連プロセッサへの入力とし
て、モジュール内の任意の他のプロセッサのノード・ビ
ット出力信号を選択する。
【0043】任意のプロセッサに対応して相互接続網に
転送されるデータ・ビットは、ステップ毎に変化し、エ
ミュレートされる設計の特定のネットに専従するわけで
はない。任意の指定ステップにおけるあるプロセッサか
ら相互接続網へのデータは、エミュレートされるゲート
出力、エミュレートされるレジスタまたはメモリ出力、
或いはプロセッサ間エミュレーション制御情報を表す。
ノード・ビット入力値は、続く使用に備えてプロセッサ
の入力スタックに記憶され、非常に高いファンイン(fa
n-in)をもたらす。複数のプロセッサが、(それらのノ
ード・ビット入力として)同一のプロセッサのノード・
ビット出力を選択するとき、非常に高いファンアウト
(fan-out)または同報通信が達成される。
【0044】各プロセッサは、同一モジュール内のプロ
セッサ以外の装置とデータを転送するために、4つのモ
ジュール・パッドのセットに電気的に接続される。ほと
んどのモジュール入力及び出力パッドは、それぞれエミ
ュレーション・ボード上の他の特定のモジュール出力及
び入力パッドに配線される(図7参照)。幾つかのモジ
ュール入力及び出力パッドは、エミュレーション・ボー
ド・コネクタ・ピンに配線される。相互接続網に関して
は、モジュール入出力パッド上のデータ・ビットが、ス
テップ毎に変化する。
【0045】外部入力及び出力パッドは、内部的に関連
プロセッサの外部ビット入力信号及び外部ビット出力信
号にそれぞれ接続される。これらのパッドは、通常、エ
ミュレーション・システム内の他のエミュレーション・
ボードまたは他の機構と通信するために使用される。プ
ロセッサはこのように、エミュレーション支援機構また
はターゲット・システムの入出力信号に割当てられる。
外部入出力パッド上のデータは、ステップ毎に変化しう
る。しかしながら、ターゲット・システムに接続される
場合には、通常、シーケンサの循環(設計クロック・サ
イクル)の間に、高々1度変化する。
【0046】エミュレーション・ボード:物理パッケー
ジ化の次に高いレベルでは、図7に示されるエミュレー
ション・ボードは、65個の同一のエミュレーション・
モジュールのアレイを含む。これらの各モジュールは、
エミュレーション・ボード上のあらゆる他のモジュール
に対する特定の入出力信号対を有するように、それぞれ
のモジュール入出力ピンにより相互接続される。これら
の信号対はモジュール/プロセッサ対を相互接続し、モ
ジュールY内のプロセッサXが、モジュールX内のプロ
セッサYに接続される(但しX=Y以外の場合)。65
番目のエミュレーション・モジュールは、他の64個の
各エミュレーション・モジュールの未使用対(X=Y)
に接続される。異なる数のモジュール、またはモジュー
ル間で異なる数の信号対を有する他の多くのエミュレー
ション・ボード構成も可能である。
【0047】各モジュールからの外部入出力ピンは、他
のカード、エミュレーション支援機構及びターゲット環
境と通信するために、エミュレーション・ボード入出力
コネクタ・ピンに接続される。予備のモジュール入出力
ピン(上記X=Y)も、これらの追加の外部信号として
使用することができる。64個のモジュールを有するエ
ミュレーション・ボードは、その環境または他のカード
に接続するために、4160個の入力ピン(4096の
外部入出力ピンに加え、64個の予備モジュール入出力
ピン)及び4160個の出力ピンを有することができ
る。
【0048】エミュレーション・エンジン:物理パッケ
ージ化の次に高いレベルでは、等価の異なる複雑度を有
する複数のエミュレーション・ボードが相互接続され、
相当な容量のエミュレーション・エンジンを提供する。
こうしたエンジンは数百万ゲートの設計をエミュレート
するように構成される。単一のエミュレーション・エン
ジンが、単一の設計または複数の設計を同時にエミュレ
ートするようにプログラムされる。単一の設計をエミュ
レートする場合、あらゆるモジュール内のあらゆるシー
ケンサが、同一の値及びステップを同期して含む。シー
ケンサのステップ増分も、ターゲット・システム内のク
ロックに同期される。複数設計が同時にエミュレートさ
れる場合、指定設計に対応して動作中のシーケンサだけ
が、同期してステップ増分される必要がある。
【0049】設計は多大に変化するテスト条件の下で、
複数回、エミュレーション・エンジン上で"実行"され
る。設計誤りは、エミュレーション・プログラム制御ワ
ードを変更することにより、或いは変更された設計を再
コンパイルすることにより、容易に修正される。エミュ
レーション・エンジンは高性能を有し、ターゲット・シ
ステムと同じスピードで実行されるので、エミュレート
される設計は完全に検証される。
【0050】設計が完全に開発されると、エミュレーシ
ョン・エンジンはその設計の永久的具現となる。追加の
支援機構が、エミュレーション・プロセッサをロード
し、エミュレーション・プロセスを制御するために要求
される場合もある。
【0051】エミュレーション・システム:エミュレー
ション・システムは、エミュレーション・エンジン、タ
ーゲット・システム及び支援機構から構成される。通
常、支援機構は制御コンソール、エミュレーション制御
プロセッサ(例えばパーソナル・コンピュータ)、エミ
ュレーション・モニタリング及びデータ捕獲機構を含
む。
【0052】エミュレーション・エンジンを含むエミュ
レーション・ボード上の選択エミュレーション・ボード
・コネクタ・ピンが、信号インタフェース回路及びコネ
クタを介して、ターゲット・システムの信号ピンに1対
1ベースで接続される。従って、ターゲット・システム
の各入力または出力信号は、指定のエミュレーション・
プロセッサの出力または入力信号に接続される。同様に
エミュレーション・プロセッサは、モニタリング及びデ
ータ捕獲機構に接続される。
【0053】エミュレーション・コンパイラ:エミュレ
ーション・コンパイラは、ユーザの論理設計を制御ワー
ド(CW)のシーケンスに変換する。変換された制御ワ
ードは、エミュレーション・エンジン内のエミュレーシ
ョン・プロセッサの制御記憶にロードされる。コンパイ
ラはユーザの設計を記述するデータ・ファイルを読出
し、エミュレーションの間にエミュレーション・プロセ
ッサを制御するエミュレーション・プログラム・ファイ
ルのセットを生成する。
【0054】コンパイラは、ユーザ設計をセル及びそれ
らの相互接続により記述する以下の3つの入力ファイル
を処理し、ここで各セルは論理ゲート、レジスタまたは
メモリ・アレイのいずれかである。 設計ファイル:このファイルはユーザ設計の内部機能を
記述する。これは各々が特定のセル、その論理機能また
はメモリ機能、その入力信号の名前及びその出力信号の
名前を識別する複数のセル・ステートメントを含む。 制御ファイル:このファイルは、ユーザ設計がその外部
(ターゲット)環境に接続される様子を記述する。これ
は各々が特定の物理入出力ピン、そのピンに接続される
信号の名前、データ転送方向及びターゲット・システム
へのその接続を識別する複数の入出力ステートメントを
含む。 割当てファイル:ユーザ設計内のセルがエミュレーショ
ン・プロセッサに割当てられる様子を記述するオプショ
ンのファイルである。このファイル内のステートメント
は使用されるプロセッサの数、あるプロセッサから別の
プロセッサに移動されうるセル、こうした移動のコス
ト、最大論理パス長及び時間フェーズの名前を識別す
る。オプションのステートメントは、システム入力また
は出力信号及びそれらの開始または終了プログラム・ス
テップ及び関連プロセッサ番号を識別する。このファイ
ルはユーザによっては提供されず、コンパイラが割当て
フェーズの間に生成する。
【0055】入力ファイルを処理後、コンパイラは次に
示す4つのフェーズを通じ、エミュレーション・プログ
ラムを準備する。 サイズ化:システム入力または出力信号の数が、制御フ
ァイル内のプロセッサの数よりも大きいと、コンパイラ
は各プロセッサが1入力または1出力システム信号を処
理できるように、プロセッサの数を増加する。 割当て:設計内の全てのセルに対して、1個または複数
のプロセッサが1個または複数のセルに割当てられる。
割当ての目標は、 i)同一プロセッサ内で同一の入力及び出力信号を有す
るセルをグループ化する。あるプロセッサ内のセルから
異なるプロセッサ内のセルに渡される信号が、その信号
を転送するための追加のステップを要求する。 ii)エミュレーション作業負荷を平衡させるために、
ほぼ等しい数のセルをあらゆるプロセッサに割当てる。 パス分解:パスは、システム入力信号またはラッチ素子
(レジスタまたはメモリ・アレイ)で開始し、0個以上
の論理ゲートを通過し、システム出力信号またはラッチ
素子で終了するように、コンパイラ内で定義される。遅
延値がパス内の相互接続ゲート間リンクに次のように割
当てられる。 i)同一プロセッサには、ゲート間リンクとして1が割
当てられる。 ii)同一モジュール内の異なるプロセッサには、ゲー
ト間リンクとして2が割当てられる。 iii)異なるモジュール内のプロセッサには、ゲート
間リンクとして4が割当てられる。 パス長は、任意のパスにおける遅延値の合計として計算
される。パス長が割当てファイル内に指定される値より
も大きいと、これはレジスタを追加し、新たな時間フェ
ーズを割当てファイルに追加することにより分割され
る。パス区切り点を決定する基準は、エミュレーション
処理時間の最小化に依存する。 スケジューリング:このフェーズの間、各プロセッサが
各ステップにおいて何を実行するかを指定するプログラ
ム・ファイルが、各プロセッサに対して生成される。全
てのプロセッサは同一数のプログラム・ステップを有
し、任意のステップにおいて何も作業がスケジュールさ
れない場合には、プロセッサは遊休状態となる。このス
ケジューリング・フェーズの目標は、プログラム・ステ
ップの最大数を最小化することにより、作業負荷を平衡
させることである。最適な解決では、ゲートが毎ステッ
プの間にあらゆるプロセッサによりエミュレートされる
べきである。
【0056】エミュレーション例:エミュレーション・
エンジン内において、エミュレーション・コンパイルの
プロセス及びエミュレーション・プログラムの実行を例
証する仮の例が提供される。図9はこの例の概観を表
し、6ビット・レジスタがメモリ・アレイ(64ワード
×2ビット)にアドレスを提供する。毎設計サイクルご
とに2ビットがメモリから読出され、反転され、同一の
アドレスに書戻される。レジスタの内容も毎設計サイク
ルごとに増分される。図10はこの例の詳細をゲート・
レベルで表す。16進値がこの例では使用される。図1
1はエミュレーション・プロセッサ割当てを示す。表1
は、様々な論理機能に対応する論理機能テーブル符号化
を表す。テーブル内の全ての値が16進表記で示され、
例えば、16進の3Bは2進値の00111011に対応する。
【0057】表2乃至表5は、サイズ化、割当て及びス
ケジューリングの結果を反映した中間コンパイラ・デー
タを示す。この単純な例では、パス分解は要求されな
い。表6は、14個の各エミュレーション・プロセッサ
に対応するコンパイラ及びエミュレーション・プログラ
ムの結果を示す。
【0058】サイズ化及び割当てフェーズの間、コンパ
イラは次の割当てを生成する。 i)プロセッサ00乃至05は、6つの出力信号に割当
てられる。 ii)プロセッサ08乃至09は、64ビット・メモリ
・アレイをエミュレートするために割当てられる。 iii)プロセッサ0A乃至0Fは、メモリ・アレイを
アドレスするために割当てられる。
【0059】結果のエミュレーション・プログラムか
ら、プロセッサ04が増分器をエミュレートし、データ
をレジスタ出力として使用されるそれぞれのプロセッサ
に渡すわかる。
【表1】
【0060】
【表2】
【0061】
【表3】
【0062】
【表4】
【0063】
【表5】
【0064】
【表6】
【0065】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0066】(1)各々が複数タイプの論理ゲート機能
を処理する実行ユニットを含む複数のエミュレーション
・プロセッサと、それぞれが前記エミュレーション・プ
ロセッサに接続される出力と、それぞれが他の各エミュ
レーション・プロセッサに接続される入力と、任意のエ
ミュレーション・プロセッサからの出力を他のエミュレ
ーション・プロセッサに転送するバス手段とを有するマ
ルチプレクサと、各エミュレーション・プロセッサ内に
あって、関連するエミュレーション・プロセッサのオペ
レーションを制御するソフトウェア論理表現信号を記憶
する組込み型制御記憶と、各エミュレーション・プロセ
ッサ内にあって、当該エミュレーション・プロセッサ内
の前記組込み型制御記憶に記憶される前記ソフトウェア
信号の制御の下で、当該エミュレーション・プロセッサ
により生成されるデータを受信する組込み型データ記憶
と、前記組込み型制御記憶に記憶される前記ソフトウェ
ア信号の制御の下で、任意のエミュレーション・プロセ
ッサから、接続される前記マルチプレクサを介して、前
記バス手段上にデータを送信するバス制御手段と、を含
む、ソフトウェア駆動型多重プロセッサ・エミュレーシ
ョン・システム。 (2)各エミュレーション・プロセッサの前記実行ユニ
ットに含まれ、複数タイプの任意の論理ゲート機能をエ
ミュレートするテーブル索引ユニットを含む、前記
(1)記載のソフトウェア駆動型多重プロセッサ・エミ
ュレーション・システム。 (3)前記複数のエミュレーション・プロセッサに接続
され、前記エミュレーション・プロセッサを同期するた
めの出力循環信号を前記エミュレーション・プロセッサ
に提供するシーケンサを含む、前記(1)記載のソフト
ウェア駆動型多重プロセッサ・エミュレーション・シス
テム。 (4)前記複数のエミュレーション・プロセッサ、前記
バス手段、前記バス制御手段及び前記シーケンサを含む
単一のモジュール・ユニットを含む、前記(3)記載の
ソフトウェア駆動型多重プロセッサ・エミュレーション
・システム。 (5)前記モジュール・ユニットが複数設けられ、各モ
ジュール・ユニットの各前記エミュレーション・プロセ
ッサが外部入力及び外部出力を有しており、更に各モジ
ュール・ユニットの各エミュレーション・プロセッサの
前記外部入力及び前記外部出力を、異なるモジュール・
ユニットのエミュレーション・プロセッサの外部出力及
び外部入力に接続するモジュール間バス手段と、エミュ
レーション実行サイクルのために全ての前記モジュール
・ユニットの前記シーケンサを同期させる手段と、を含
む、前記(4)記載のソフトウェア駆動型多重プロセッ
サ・エミュレーション・システム。 (6)エミュレートされる論理のサブセットを表す論理
ソフトウェア・クラスタを含むように予めコンパイルさ
れた、ソフトウェア手段に記憶される論理ソフトウェア
と、全てのエミュレーション・プロセッサによる実行サ
イクルに先立ち、前記論理ソフトウェアの異なるソフト
ウェア・クラスタを、異なるエミュレーション・プロセ
ッサの組込み型制御記憶にロードするローディング手段
と、前記ソフトウェア・クラスタが前記エミュレーショ
ン・プロセッサにロードされた後、全てのエミュレーシ
ョン・プロセッサの実行サイクルのために前記シーケン
サを起動する起動手段と、を含み、前記論理の全てのソ
フトウェア・クラスタが処理され、該論理によるオペレ
ーションがエミュレートされるまで、前記ローディング
手段及び前記起動手段が交互に繰返し動作する、前記
(3)または(5)記載のソフトウェア駆動型多重プロ
セッサ・エミュレーション・システム。 (7)各エミュレーション・プロセッサに関連する前記
組込み型制御記憶及び前記組込み型データ記憶に関連付
けられ、当該多重エミュレーション・システムによりエ
ミュレートされるターゲット論理エンティティ内のメモ
リ・アレイの全部または一部をエミュレートするよう
に、前記組込み型制御記憶と前記組込み型データ記憶と
を協働させる特殊制御手段を含む、前記(4)記載のソ
フトウェア駆動型多重プロセッサ・エミュレーション・
システム。
【0067】
【発明の効果】本発明は、実用ASICチップの初期設
計から検証作業までの高速行程を妥当なコストにより提
供する。それにより設計がシリコンなどに縛られること
なく、"柔軟性"を維持したまま、設計者は"実世界"(re
al world)システム・コンポーネントを用い、実用環境
におけるチップ設計を検証することができる。本発明は
VLSIチップ・エミュレーションに無類の容量、相互
接続性、柔軟性、効率及びスピードを提供する。現VL
SIチップ・エミュレータの入出力ピン制限が、固有の
相互接続機構に結合される"1サイクル当たり1行程"
(path-per-cycle)エミュレーション技術により克服さ
れる。本発明自身はVLSI技術において具現され、V
LSIチップ設計において具現される超大規模高速論理
回路と共に、メモリ・アレイ及びそれらのソフトウェア
内容をエミュレートすることができる。
【図面の簡単な説明】
【図1】エミュレーション・プロセッサの概観を表す図
である。
【図2】論理回路をエミュレートするために使用される
制御ワード・フィールドを表す図である。
【図3】メモリをエミュレートするために使用される制
御ワード・フィールドを表す図である。
【図4】論理回路をエミュレートするために使用される
論理要素を表す図である。
【図5】エミュレーション・プロセッサの内部データ・
フローを表す図である。
【図6】エミュレーション・モジュールの概観を表す図
である。
【図7】エミュレーション・ボードの概観を表す図であ
る。
【図8】エミュレーション・システムの概観を表す図で
ある。
【図9】1設計例の概観を表す図である。
【図10】1設計例の詳細ブロック図である。
【図11】1設計例の割当てを表す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 タク−ウォン・ン アメリカ合衆国12538、ニューヨーク州ハ イド・パーク、ルーズベルト・ロード 118 (72)発明者 ハロルド・リチャード・パーマー アメリカ合衆国12603、ニューヨーク州ポ キプシ、アルダ・ドライブ 72

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】各々が複数タイプの論理ゲート機能を処理
    する実行ユニットを含む複数のエミュレーション・プロ
    セッサと、 それぞれが前記エミュレーション・プロセッサに接続さ
    れる出力と、それぞれが他の各エミュレーション・プロ
    セッサに接続される入力と、任意のエミュレーション・
    プロセッサからの出力を他のエミュレーション・プロセ
    ッサに転送するバス手段とを有するマルチプレクサと、 各エミュレーション・プロセッサ内にあって、関連する
    エミュレーション・プロセッサのオペレーションを制御
    するソフトウェア論理表現信号を記憶する組込み型制御
    記憶と、 各エミュレーション・プロセッサ内にあって、当該エミ
    ュレーション・プロセッサ内の前記組込み型制御記憶に
    記憶される前記ソフトウェア信号の制御の下で、当該エ
    ミュレーション・プロセッサにより生成されるデータを
    受信する組込み型データ記憶と、 前記組込み型制御記憶に記憶される前記ソフトウェア信
    号の制御の下で、任意のエミュレーション・プロセッサ
    から、接続される前記マルチプレクサを介して、前記バ
    ス手段上にデータを送信するバス制御手段と、 を含む、ソフトウェア駆動型多重プロセッサ・エミュレ
    ーション・システム。
  2. 【請求項2】各エミュレーション・プロセッサの前記実
    行ユニットに含まれ、複数タイプの任意の論理ゲート機
    能をエミュレートするテーブル索引ユニットを含む、 請求項1記載のソフトウェア駆動型多重プロセッサ・エ
    ミュレーション・システム。
  3. 【請求項3】前記複数のエミュレーション・プロセッサ
    に接続され、前記エミュレーション・プロセッサを同期
    するための出力循環信号を前記エミュレーション・プロ
    セッサに提供するシーケンサを含む、 請求項1記載のソフトウェア駆動型多重プロセッサ・エ
    ミュレーション・システム。
  4. 【請求項4】前記複数のエミュレーション・プロセッ
    サ、前記バス手段、前記バス制御手段及び前記シーケン
    サを含む単一のモジュール・ユニットを含む、 請求項3記載のソフトウェア駆動型多重プロセッサ・エ
    ミュレーション・システム。
  5. 【請求項5】前記モジュール・ユニットが複数設けら
    れ、各モジュール・ユニットの各前記エミュレーション
    ・プロセッサが外部入力及び外部出力を有しており、更
    に各モジュール・ユニットの各エミュレーション・プロ
    セッサの前記外部入力及び前記外部出力を、異なるモジ
    ュール・ユニットのエミュレーション・プロセッサの外
    部出力及び外部入力に接続するモジュール間バス手段
    と、 エミュレーション実行サイクルのために全ての前記モジ
    ュール・ユニットの前記シーケンサを同期させる手段
    と、 を含む、請求項4記載のソフトウェア駆動型多重プロセ
    ッサ・エミュレーション・システム。
  6. 【請求項6】エミュレートされる論理のサブセットを表
    す論理ソフトウェア・クラスタを含むように予めコンパ
    イルされた、ソフトウェア手段に記憶される論理ソフト
    ウェアと、 全てのエミュレーション・プロセッサによる実行サイク
    ルに先立ち、前記論理ソフトウェアの異なるソフトウェ
    ア・クラスタを、異なるエミュレーション・プロセッサ
    の組込み型制御記憶にロードするローディング手段と、 前記ソフトウェア・クラスタが前記エミュレーション・
    プロセッサにロードされた後、全てのエミュレーション
    ・プロセッサの実行サイクルのために前記シーケンサを
    起動する起動手段と、 を含み、 前記論理の全てのソフトウェア・クラスタが処理され、
    該論理によるオペレーションがエミュレートされるま
    で、前記ローディング手段及び前記起動手段が交互に繰
    返し動作する、 請求項3または5記載のソフトウェア駆動型多重プロセ
    ッサ・エミュレーション・システム。
  7. 【請求項7】各エミュレーション・プロセッサに関連す
    る前記組込み型制御記憶及び前記組込み型データ記憶に
    関連付けられ、当該多重エミュレーション・システムに
    よりエミュレートされるターゲット論理エンティティ内
    のメモリ・アレイの全部または一部をエミュレートする
    ように、前記組込み型制御記憶と前記組込み型データ記
    憶とを協働させる特殊制御手段を含む、 請求項4記載のソフトウェア駆動型多重プロセッサ・エ
    ミュレーション・システム。
JP7094674A 1994-06-03 1995-04-20 多重プロセッサ・エミュレーション・システム Expired - Fee Related JP2989518B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US253881 1994-06-03
US08/253,881 US5551013A (en) 1994-06-03 1994-06-03 Multiprocessor for hardware emulation

Publications (2)

Publication Number Publication Date
JPH07334384A true JPH07334384A (ja) 1995-12-22
JP2989518B2 JP2989518B2 (ja) 1999-12-13

Family

ID=22962096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7094674A Expired - Fee Related JP2989518B2 (ja) 1994-06-03 1995-04-20 多重プロセッサ・エミュレーション・システム

Country Status (2)

Country Link
US (1) US5551013A (ja)
JP (1) JP2989518B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005096500A1 (ja) * 2004-03-30 2005-10-13 Nec Corporation 回路検証装置および回路検証方法並びにそのための信号分配方法
JP2009539186A (ja) * 2006-05-31 2009-11-12 ケイデンス デザイン システムズ インコーポレイテッド ハードウエアエミュレーションシステムのプロセッサを同期化する方法及び装置
KR20140068863A (ko) * 2011-06-14 2014-06-09 몬타나 시스템즈 인코포레이션 스케일링가능한 병렬 프로세서를 위한 시스템, 방법 및 장치

Families Citing this family (243)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5920712A (en) * 1994-05-13 1999-07-06 Quickturn Design Systems, Inc. Emulation system having multiple emulator clock cycles per emulated clock cycle
US5764956A (en) * 1994-11-07 1998-06-09 Seiko Epson Conporation Computer peripheral function emulator
US5838908A (en) * 1994-11-14 1998-11-17 Texas Instruments Incorporated Device for having processors each having interface for transferring delivery units specifying direction and distance and operable to emulate plurality of field programmable gate arrays
US5673295A (en) * 1995-04-13 1997-09-30 Synopsis, Incorporated Method and apparatus for generating and synchronizing a plurality of digital signals
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US5815715A (en) * 1995-06-05 1998-09-29 Motorola, Inc. Method for designing a product having hardware and software components and product therefor
US5923865A (en) * 1995-06-28 1999-07-13 Quickturn Design Systems, Inc. Emulation system having multiple emulated clock cycles per emulator clock cycle and improved signal routing
US5819065A (en) * 1995-06-28 1998-10-06 Quickturn Design Systems, Inc. System and method for emulating memory
US5920713A (en) * 1995-10-06 1999-07-06 Advanced Micro Devices, Inc. Instruction decoder including two-way emulation code branching
US5838948A (en) * 1995-12-01 1998-11-17 Eagle Design Automation, Inc. System and method for simulation of computer systems combining hardware and software interaction
US5771370A (en) * 1996-05-14 1998-06-23 Mentor Graphics Corporation Method and apparatus for optimizing hardware and software co-simulation
US5768567A (en) * 1996-05-14 1998-06-16 Mentor Graphics Corporation Optimizing hardware and software co-simulator
US5822564A (en) * 1996-06-03 1998-10-13 Quickturn Design Systems, Inc. Checkpointing in an emulation system
US5886904A (en) * 1996-09-23 1999-03-23 Quickturn Design Systems, Inc. Latch optimization in hardware logic emulation systems
US5841967A (en) 1996-10-17 1998-11-24 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation
US6141636A (en) * 1997-03-31 2000-10-31 Quickturn Design Systems, Inc. Logic analysis subsystem in a time-sliced emulator
US5960191A (en) 1997-05-30 1999-09-28 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US6138266A (en) * 1997-06-16 2000-10-24 Tharas Systems Inc. Functional verification of integrated circuit designs
US5970240A (en) 1997-06-25 1999-10-19 Quickturn Design Systems, Inc. Method and apparatus for configurable memory emulation
US6266802B1 (en) 1997-10-27 2001-07-24 International Business Machines Corporation Detailed grid point layout using a massively parallel logic including an emulator/simulator paradigm
AU2557399A (en) 1998-01-02 1999-07-26 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
US7587044B2 (en) 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
US6035117A (en) * 1998-03-31 2000-03-07 International Business Machines Corporation Tightly coupled emulation processors
US6051030A (en) * 1998-03-31 2000-04-18 International Business Machines Corporation Emulation module having planar array organization
JP2002519722A (ja) * 1998-06-03 2002-07-02 クリプターグラフィー リサーチ インコーポレイテッド スマートカードおよび他の暗号システム用の、漏洩を最小に抑える、改良desおよび他の暗号プロセス
WO1999067766A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
WO2000002342A2 (en) 1998-07-02 2000-01-13 Cryptography Research, Inc. Leak-resistant cryptographic indexed key update
US6226756B1 (en) * 1998-11-03 2001-05-01 Integrated Device Technology, Inc. Apparatus and method for providing a common system interface for processors
US6604230B1 (en) 1999-02-09 2003-08-05 The Governing Counsel Of The University Of Toronto Multi-logic device systems having partial crossbar and direct interconnection architectures
US6618698B1 (en) * 1999-08-12 2003-09-09 Quickturn Design Systems, Inc. Clustered processors in an emulation engine
US6578133B1 (en) * 2000-02-24 2003-06-10 Stanley M. Hyduke MIMD array of single bit processors for processing logic equations in strict sequential order
JP2001249824A (ja) * 2000-03-02 2001-09-14 Hitachi Ltd 論理エミュレーションプロセッサおよびそのモジュールユニット
US6832185B1 (en) * 2000-03-09 2004-12-14 Quickturn Design Systems, Inc. Non-synchronous hardware emulator
US7089538B1 (en) * 2000-09-06 2006-08-08 Quicktum Design Systems, Inc. High speed software driven emulator comprised of a plurality of emulation processors with a method to allow memory read/writes without interrupting the emulation
US7043417B1 (en) 2000-09-06 2006-05-09 Quickturn Design Systems, Inc. High speed software driven emulator comprised of a plurality of emulation processors with improved multiplexed data memory
US7107203B1 (en) * 2000-09-06 2006-09-12 Quickturn Design Systems Inc. High speed software driven emulator comprised of a plurality of emulation processors with improved board-to-board interconnection cable length identification system
US6901359B1 (en) 2000-09-06 2005-05-31 Quickturn Design Systems, Inc. High speed software driven emulator comprised of a plurality of emulation processors with a method to allow high speed bulk read/write operation synchronous DRAM while refreshing the memory
US6850880B1 (en) 2000-09-06 2005-02-01 Quickturn Design Systems, Inc. High speed software driven emulator comprised of a plurality of emulation processors with an improved maintenance bus that streams data at high speed
US6775811B2 (en) * 2002-05-22 2004-08-10 Lsi Logic Corporation Chip design method for designing integrated circuit chips with embedded memories
US7386539B2 (en) * 2002-11-29 2008-06-10 Taiwan Semiconductor Manufacturing Company, Ltd. System, method, and user interface providing customized document portfolio management
US20040107197A1 (en) * 2002-11-29 2004-06-03 Shen Yu Yong System, method and user interface allowing customized portfolio management
US20040117374A1 (en) * 2002-12-16 2004-06-17 Hung Lup Cheong Patrick Customized design portfolio integrating IP libraries and technology documents
US20040107214A1 (en) * 2002-11-29 2004-06-03 Hung Lup Cheong Patrick Customized document portfolio system integrating IP libraries and technology documents
US7260794B2 (en) * 2002-12-20 2007-08-21 Quickturn Design Systems, Inc. Logic multiprocessor for FPGA implementation
US7440884B2 (en) * 2003-01-23 2008-10-21 Quickturn Design Systems, Inc. Memory rewind and reconstruction for hardware emulator
EP1450278B1 (en) 2003-01-23 2013-04-24 Cadence Design Systems, Inc. Methods and apparatus for verifying the operation of a circuit design
US7284100B2 (en) 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
US7159122B2 (en) * 2003-05-12 2007-01-02 International Business Machines Corporation Message digest instructions
US7505891B2 (en) * 2003-05-20 2009-03-17 Verisity Design, Inc. Multi-user server system and method
US7509646B1 (en) 2003-09-23 2009-03-24 Unisys Corporation Method of managing workloads in a distributed processing system
US7356454B2 (en) * 2003-10-17 2008-04-08 Ud Technology Corporation Method and apparatus for emulation of logic circuits
US7440866B2 (en) * 2004-06-01 2008-10-21 Quickturn Design Systems Inc. System and method for validating an input/output voltage of a target system
US7739093B2 (en) * 2004-06-01 2010-06-15 Quickturn Design System, Inc. Method of visualization in processor based emulation system
US7606697B2 (en) * 2004-06-01 2009-10-20 Quickturn Design Systems, Inc. System and method for resolving artifacts in differential signals
US7640155B2 (en) * 2004-06-01 2009-12-29 Quickturn Design Systems, Inc. Extensible memory architecture and communication protocol for supporting multiple devices in low-bandwidth, asynchronous applications
US7721036B2 (en) * 2004-06-01 2010-05-18 Quickturn Design Systems Inc. System and method for providing flexible signal routing and timing
US7738398B2 (en) * 2004-06-01 2010-06-15 Quickturn Design Systems, Inc. System and method for configuring communication systems
US7738399B2 (en) * 2004-06-01 2010-06-15 Quickturn Design Systems Inc. System and method for identifying target systems
US7555423B2 (en) * 2005-01-31 2009-06-30 Quickturn Design Systems, Inc. Emulation processor interconnection architecture
US7404160B2 (en) * 2005-02-18 2008-07-22 Quickturn Design Systems Inc. Method and system for hardware based reporting of assertion information for emulation and hardware acceleration
US7577558B2 (en) * 2005-04-06 2009-08-18 Quickturn Design Systems, Inc. System and method for providing compact mapping between dissimilar memory systems
US8145469B2 (en) 2005-04-06 2012-03-27 Quickturn Design Systems, Inc. System and method for providing compact mapping between dissimilar memory systems
US8453086B2 (en) 2005-06-03 2013-05-28 Cadence Design Systems, Inc. System and method for analyzing power consumption of electronic design undergoing emulation or hardware based simulation acceleration
CN103021908B (zh) * 2005-12-20 2015-09-30 应用材料公司 用于半导体设备制造装备的延伸主机设计
US8706469B2 (en) * 2006-01-31 2014-04-22 Cadence Design Systems, Inc. Method and apparatus for increasing the efficiency of an emulation engine
US7827023B2 (en) * 2006-02-01 2010-11-02 Cadence Design Systems, Inc. Method and apparatus for increasing the efficiency of an emulation engine
WO2007096376A1 (en) * 2006-02-21 2007-08-30 Mentor Graphics Corporation Communication scheme between programmable sub-cores in an emulation environment
US8090568B2 (en) 2006-02-21 2012-01-03 Cadence Design Systems, Inc. Hardware emulator having a variable input primitive
US7555424B2 (en) 2006-03-16 2009-06-30 Quickturn Design Systems, Inc. Method and apparatus for rewinding emulated memory circuits
US8612201B2 (en) * 2006-04-11 2013-12-17 Cadence Design Systems, Inc. Hardware emulation system having a heterogeneous cluster of processors
US7606698B1 (en) * 2006-09-26 2009-10-20 Cadence Design Systems, Inc. Method and apparatus for sharing data between discrete clusters of processors
US7904288B1 (en) * 2006-11-06 2011-03-08 Cadence Design Systems, Inc. Hardware emulator having a variable input emulation group
US7908465B1 (en) * 2006-11-17 2011-03-15 Cadence Design Systems, Inc. Hardware emulator having a selectable write-back processor unit
US7739094B1 (en) * 2006-11-22 2010-06-15 Cadence Design Systems, Inc. Method and apparatus for designing an emulation chip using a selectable fastpath topology
US8443029B2 (en) 2007-03-01 2013-05-14 International Business Machines Corporation Round for reround mode in a decimal floating point instruction
US8145470B2 (en) * 2007-06-27 2012-03-27 Microsoft Corporation Accelerated access device emulator access scheme in a hypervisor environment with child and root partitions
US8352235B1 (en) 2007-10-31 2013-01-08 Cadence Design Systems, Inc. Emulation of power shutoff behavior for integrated circuits
US8239182B2 (en) * 2007-12-04 2012-08-07 Spansion Llc Data transmission system-on-chip memory model based validation
US8037278B2 (en) 2008-01-11 2011-10-11 International Business Machines Corporation Dynamic address translation with format control
US8019964B2 (en) * 2008-01-11 2011-09-13 International Buisness Machines Corporation Dynamic address translation with DAT protection
US7895419B2 (en) 2008-01-11 2011-02-22 International Business Machines Corporation Rotate then operate on selected bits facility and instructions therefore
US8335906B2 (en) 2008-01-11 2012-12-18 International Business Machines Corporation Perform frame management function instruction for clearing blocks of main storage
US8041923B2 (en) * 2008-01-11 2011-10-18 International Business Machines Corporation Load page table entry address instruction execution based on an address translation format control field
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US8417916B2 (en) 2008-01-11 2013-04-09 International Business Machines Corporation Perform frame management function instruction for setting storage keys and clearing blocks of main storage
US8103851B2 (en) 2008-01-11 2012-01-24 International Business Machines Corporation Dynamic address translation with translation table entry format control for indentifying format of the translation table entry
US8151083B2 (en) 2008-01-11 2012-04-03 International Business Machines Corporation Dynamic address translation with frame management
US8041922B2 (en) * 2008-01-11 2011-10-18 International Business Machines Corporation Enhanced dynamic address translation with load real address function
US8677098B2 (en) 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US8082405B2 (en) * 2008-01-11 2011-12-20 International Business Machines Corporation Dynamic address translation with fetch protection
US7739434B2 (en) 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore
US7734900B2 (en) 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US8086811B2 (en) 2008-02-25 2011-12-27 International Business Machines Corporation Optimizations of a perform frame management function issued by pageable guests
US8176279B2 (en) * 2008-02-25 2012-05-08 International Business Machines Corporation Managing use of storage by multiple pageable guests of a computing environment
US8095773B2 (en) * 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
US8108194B2 (en) 2008-04-25 2012-01-31 Cadence Design Systems, Inc. Peak power detection in digital designs using emulation systems
US9459890B2 (en) 2008-07-10 2016-10-04 Mentor Graphics Corporation Controlling real time during embedded system development
US8532975B2 (en) * 2009-06-12 2013-09-10 Cadence Design Systems, Inc. System and method implementing a simulation acceleration capture buffer
US8473661B2 (en) * 2009-08-14 2013-06-25 Cadence Design Systems, Inc. System and method for providing multi-process protection using direct memory mapped control registers
US8650240B2 (en) * 2009-08-17 2014-02-11 International Business Machines Corporation Complex matrix multiplication operations with data pre-conditioning in a high performance computing architecture
US8577950B2 (en) * 2009-08-17 2013-11-05 International Business Machines Corporation Matrix multiplication operations with data pre-conditioning in a high performance computing architecture
US8949106B2 (en) * 2009-09-18 2015-02-03 International Business Machines Corporation Just in time compiler in spatially aware emulation of a guest computer instruction set
US9158566B2 (en) 2009-09-18 2015-10-13 International Business Machines Corporation Page mapped spatially aware emulation of computer instruction set
US8428930B2 (en) * 2009-09-18 2013-04-23 International Business Machines Corporation Page mapped spatially aware emulation of a computer instruction set
US8617049B2 (en) * 2009-09-18 2013-12-31 Ethicon Endo-Surgery, Inc. Symmetrical drive system for an implantable restriction device
US8447583B2 (en) 2009-09-18 2013-05-21 International Business Machines Corporation Self initialized host cell spatially aware emulation of a computer instruction set
US8301434B2 (en) 2009-09-18 2012-10-30 International Buisness Machines Corporation Host cell spatially aware emulation of a guest wild branch
US8918601B2 (en) * 2009-12-14 2014-12-23 International Business Machines Corporation Deferred page clearing in a multiprocessor computer system
US8510511B2 (en) * 2009-12-14 2013-08-13 International Business Machines Corporation Reducing interprocessor communications pursuant to updating of a storage key
US8930635B2 (en) 2009-12-14 2015-01-06 International Business Machines Corporation Page invalidation processing with setting of storage key to predefined value
US8806179B2 (en) 2009-12-15 2014-08-12 International Business Machines Corporation Non-quiescing key setting facility
US8850166B2 (en) 2010-02-18 2014-09-30 International Business Machines Corporation Load pair disjoint facility and instruction therefore
US8438340B2 (en) * 2010-02-18 2013-05-07 International Business Machines Corporation Executing atomic store disjoint instructions
US8914619B2 (en) 2010-06-22 2014-12-16 International Business Machines Corporation High-word facility for extending the number of general purpose registers available to instructions
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US8745292B2 (en) 2010-06-23 2014-06-03 International Business Machines Corporation System and method for routing I/O expansion requests and responses in a PCIE architecture
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8677180B2 (en) 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8683108B2 (en) 2010-06-23 2014-03-25 International Business Machines Corporation Connected input/output hub management
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8645606B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Upbound input/output expansion request and response processing in a PCIe architecture
US8504754B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Identification of types of sources of adapter interruptions
US8505032B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Operating system notification of actions to be taken responsive to adapter events
US8671287B2 (en) 2010-06-23 2014-03-11 International Business Machines Corporation Redundant power supply configuration for a data center
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8510599B2 (en) 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
US8478922B2 (en) 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8918573B2 (en) 2010-06-23 2014-12-23 International Business Machines Corporation Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US8645767B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Scalable I/O adapter function level error detection, isolation, and reporting
US8615622B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Non-standard I/O adapters in a standardized I/O architecture
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8639858B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8656228B2 (en) 2010-06-23 2014-02-18 International Business Machines Corporation Memory error isolation and recovery in a multiprocessor computer system
US8417911B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Associating input/output device requests with memory associated with a logical partition
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8416834B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Spread spectrum wireless communication code for data center environments
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US8407701B2 (en) 2010-06-24 2013-03-26 International Business Machines Corporation Facilitating quiesce operations within a logically partitioned computer system
US9851969B2 (en) 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor
US8595469B2 (en) 2010-06-24 2013-11-26 International Business Machines Corporation Diagnose instruction for serializing processing
US10521231B2 (en) 2010-06-24 2019-12-31 International Business Machines Corporation Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
US9600281B2 (en) 2010-07-12 2017-03-21 International Business Machines Corporation Matrix multiplication operations using pair-wise load and splat operations
US8533714B2 (en) 2011-05-03 2013-09-10 International Business Machines Corporation Dynamic virtual machine domain configuration and virtual machine relocation management
US9021180B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Clearing blocks of storage class memory
US8799522B2 (en) 2011-06-10 2014-08-05 International Business Machines Corporation Executing a start operator message command
US9116789B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Chaining move specification blocks
US9021179B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Store storage class memory information command
US8560737B2 (en) 2011-06-10 2013-10-15 International Business Machines Corporation Managing operator message buffers in a coupling facility
US9058243B2 (en) 2011-06-10 2015-06-16 International Business Machines Corporation Releasing blocks of storage class memory
US8689240B2 (en) 2011-06-10 2014-04-01 International Business Machines Corporation Transmitting operator message commands to a coupling facility
US9058275B2 (en) 2011-06-10 2015-06-16 International Business Machines Corporation Data returned responsive to executing a start subchannel instruction
US9037907B2 (en) 2011-06-10 2015-05-19 International Business Machines Corporation Operator message commands for testing a coupling facility
US9116788B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Using extended asynchronous data mover indirect data address words
US9323668B2 (en) 2011-06-10 2016-04-26 International Business Machines Corporation Deconfigure storage class memory command
US9116634B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Configure storage class memory command
US9021226B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Moving blocks of data between main memory and storage class memory
US8918797B2 (en) 2011-06-10 2014-12-23 International Business Machines Corporation Processing operator message commands
US8549094B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating communication between isolated memory spaces of a communications environment
US8959010B1 (en) 2011-12-08 2015-02-17 Cadence Design Systems, Inc. Emulation system with improved reliability of interconnect and a method for programming such interconnect
US9335993B2 (en) 2011-12-29 2016-05-10 International Business Machines Corporation Convert from zoned format to decimal floating point format
US9329861B2 (en) 2011-12-29 2016-05-03 International Business Machines Corporation Convert to zoned format from decimal floating point format
US9110878B2 (en) 2012-01-18 2015-08-18 International Business Machines Corporation Use of a warning track interruption facility by a program
US8850450B2 (en) 2012-01-18 2014-09-30 International Business Machines Corporation Warning track interruption facility
US9104508B2 (en) 2012-01-18 2015-08-11 International Business Machines Corporation Providing by one program to another program access to a warning track facility
US8743735B1 (en) 2012-01-18 2014-06-03 Cadence Design Systems, Inc. Emulation system for verifying a network device
WO2013113595A1 (en) 2012-01-31 2013-08-08 International Business Machines Corporation Major branch instructions with transactional memory
US9715383B2 (en) 2012-03-15 2017-07-25 International Business Machines Corporation Vector find element equal instruction
US9280347B2 (en) 2012-03-15 2016-03-08 International Business Machines Corporation Transforming non-contiguous instruction specifiers to contiguous instruction specifiers
US9459864B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Vector string range compare
US9459867B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a specified memory boundary indicated by the instruction
US9459868B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a dynamically determined memory boundary
US9710266B2 (en) 2012-03-15 2017-07-18 International Business Machines Corporation Instruction to compute the distance to a specified memory boundary
US9454366B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Copying character data having a termination character from one memory location to another
US9588762B2 (en) 2012-03-15 2017-03-07 International Business Machines Corporation Vector find element not equal instruction
US9454367B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Finding the length of a set of character data having a termination character
US9268566B2 (en) 2012-03-15 2016-02-23 International Business Machines Corporation Character data match determination by loading registers at most up to memory block boundary and comparing
DE102013210160A1 (de) 2012-06-15 2013-12-19 International Business Machines Corporation Erleichtern der Ausführung einer Transaktion nach wiederholten Abbrüchen der Transaktion
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
DE102013210839B4 (de) 2012-06-15 2023-06-07 International Business Machines Corporation Einschränken der Verarbeitung innerhalb eines Prozessors zum Erleichtern der Ausführung einer Transaktion
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US10656945B2 (en) 2012-06-15 2020-05-19 International Business Machines Corporation Next instruction access intent instruction for indicating usage of a storage operand by one or more instructions subsequent to a next sequential instruction
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US8880959B2 (en) 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US8966324B2 (en) 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US9182984B2 (en) 2012-06-15 2015-11-10 International Business Machines Corporation Local clearing control
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9778932B2 (en) 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9715385B2 (en) 2013-01-23 2017-07-25 International Business Machines Corporation Vector exception code
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9201629B2 (en) 2013-03-14 2015-12-01 International Business Machines Corporation Instruction for performing a pseudorandom number seed operation
US8873750B2 (en) 2013-03-14 2014-10-28 International Business Machines Corporation Instruction for performing a pseudorandom number generate operation
US9582279B2 (en) 2013-03-15 2017-02-28 International Business Machines Corporation Execution of condition-based instructions
US9513924B2 (en) 2013-06-28 2016-12-06 Globalfoundries Inc. Predictor data structure for use in pipelined processing
US9619230B2 (en) 2013-06-28 2017-04-11 International Business Machines Corporation Predictive fetching and decoding for selected instructions
US9348596B2 (en) 2013-06-28 2016-05-24 International Business Machines Corporation Forming instruction groups based on decode time instruction optimization
US9361144B2 (en) 2013-06-28 2016-06-07 Globalfoundries Inc. Predictive fetching and decoding for selected return instructions
US9372695B2 (en) 2013-06-28 2016-06-21 Globalfoundries Inc. Optimization of instruction groups across group boundaries
US10318299B2 (en) 2013-10-31 2019-06-11 International Business Machines Corporation Reading a register pair by writing a wide register
US10120681B2 (en) 2014-03-14 2018-11-06 International Business Machines Corporation Compare and delay instructions
US9454370B2 (en) 2014-03-14 2016-09-27 International Business Machines Corporation Conditional transaction end instruction
US9558032B2 (en) 2014-03-14 2017-01-31 International Business Machines Corporation Conditional instruction end operation
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US9256546B2 (en) 2014-03-31 2016-02-09 International Business Machines Corporation Transparent code patching including updating of address translation structures
US9858058B2 (en) 2014-03-31 2018-01-02 International Business Machines Corporation Partition mobility for partitions with extended code
US9824021B2 (en) 2014-03-31 2017-11-21 International Business Machines Corporation Address translation structures to provide separate translations for instruction fetches and data accesses
US9720661B2 (en) 2014-03-31 2017-08-01 International Businesss Machines Corporation Selectively controlling use of extended mode features
US9569115B2 (en) 2014-03-31 2017-02-14 International Business Machines Corporation Transparent code patching
US9483295B2 (en) 2014-03-31 2016-11-01 International Business Machines Corporation Transparent dynamic code optimization
US9715449B2 (en) 2014-03-31 2017-07-25 International Business Machines Corporation Hierarchical translation structures providing separate translations for instruction fetches and data accesses
US9734083B2 (en) 2014-03-31 2017-08-15 International Business Machines Corporation Separate memory address translations for instruction fetches and data accesses
US9292639B1 (en) 2014-10-30 2016-03-22 Cadence Design Systems Inc. Method and system for providing additional look-up tables
US9647688B1 (en) 2014-12-19 2017-05-09 Cadence Design Systems, Inc. System and method of encoding in a serializer/deserializer
US9379846B1 (en) 2014-12-19 2016-06-28 Cadence Design Systems, Inc. System and method of encoding in a serializer/deserializer
US9702933B1 (en) 2015-10-22 2017-07-11 Cadence Design Systems, Inc. System and method for concurrent interconnection diagnostics field
US9697324B1 (en) 2015-11-05 2017-07-04 Cadence Design Systems, Inc. System for concurrent target diagnostics field
US10176100B1 (en) 2015-12-21 2019-01-08 Cadence Design Systems, Inc. Cache coherency process
US10198538B1 (en) * 2015-12-28 2019-02-05 Cadence Design Systems, Inc. Relocate targets to different domains in an emulator
US10915640B2 (en) 2018-10-01 2021-02-09 International Business Machines Corporation Cyber security testing for authorized services
US11010479B2 (en) 2018-10-01 2021-05-18 International Business Machines Corporation Cyber security for space-switching program calls
US11336679B2 (en) 2020-01-28 2022-05-17 International Business Machines Corporation Combinatorial test design for optimizing parameter list testing

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4306286A (en) * 1979-06-29 1981-12-15 International Business Machines Corporation Logic simulation machine
JPS6120145A (ja) * 1984-07-07 1986-01-28 Iwatsu Electric Co Ltd マイクロプロセツサ動作解析装置
US4638423A (en) * 1985-03-06 1987-01-20 Motorola, Inc. Emulating computer
US4674089A (en) * 1985-04-16 1987-06-16 Intel Corporation In-circuit emulator
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US5132971A (en) * 1987-02-06 1992-07-21 Anritsu Corporation In-circuit emulator
US4873656A (en) * 1987-06-26 1989-10-10 Daisy Systems Corporation Multiple processor accelerator for logic simulation
US4916647A (en) * 1987-06-26 1990-04-10 Daisy Systems Corporation Hardwired pipeline processor for logic simulation
US5025364A (en) * 1987-06-29 1991-06-18 Hewlett-Packard Company Microprocessor emulation system with memory mapping using variable definition and addressing of memory space
US4868822A (en) * 1988-02-19 1989-09-19 John Fluke Mfg. Co., Inc. Memory emulation method and system for testing and troubleshooting microprocessor-based electronic systems
AU4347189A (en) * 1988-10-05 1990-05-01 Mentor Graphics Corporation Method of using electronically reconfigurable gate array logic and apparatus formed thereby
US5109353A (en) * 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware system
US5329470A (en) * 1988-12-02 1994-07-12 Quickturn Systems, Inc. Reconfigurable hardware emulation system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005096500A1 (ja) * 2004-03-30 2005-10-13 Nec Corporation 回路検証装置および回路検証方法並びにそのための信号分配方法
US7797653B2 (en) 2004-03-30 2010-09-14 Nec Corporation Circuit verification apparatus, circuit verification method, and signal distribution method for the same
JP2009539186A (ja) * 2006-05-31 2009-11-12 ケイデンス デザイン システムズ インコーポレイテッド ハードウエアエミュレーションシステムのプロセッサを同期化する方法及び装置
KR20140068863A (ko) * 2011-06-14 2014-06-09 몬타나 시스템즈 인코포레이션 스케일링가능한 병렬 프로세서를 위한 시스템, 방법 및 장치
JP2014523569A (ja) * 2011-06-14 2014-09-11 モンタナ・システムズ・インコーポレーテッド 拡張可能な並列プロセッサのためのシステム、方法、および、装置

Also Published As

Publication number Publication date
US5551013A (en) 1996-08-27
JP2989518B2 (ja) 1999-12-13

Similar Documents

Publication Publication Date Title
JP2989518B2 (ja) 多重プロセッサ・エミュレーション・システム
US7260794B2 (en) Logic multiprocessor for FPGA implementation
EP1489511B1 (en) Hierarchical, Network-Based emulation System
EP2216722B1 (en) Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets
US7483825B2 (en) Method for the creation of a hybrid cycle simulation model
US5594741A (en) Method for control of random test vector generation
US4914612A (en) Massively distributed simulation engine
US6058492A (en) Method and apparatus for design verification using emulation and simulation
US7036114B2 (en) Method and apparatus for cycle-based computation
US5937179A (en) Integrated circuit design system with shared hardware accelerator and processes of designing integrated circuits
US5822564A (en) Checkpointing in an emulation system
US6141636A (en) Logic analysis subsystem in a time-sliced emulator
US6842728B2 (en) Time-multiplexing data between asynchronous clock domains within cycle simulation and emulation environments
US5548785A (en) Interface for logic simulation using parallel bus for concurrent transfers and having fifo buffers for sending data to receiving units when ready
JP3020035B2 (ja) 集積回路装置のテスト方法及び該方法でテストするのに好適な集積回路装置
US9069918B2 (en) System and method implementing full-rate writes for simulation acceleration
US7043596B2 (en) Method and apparatus for simulation processor
US7437282B2 (en) Method and apparatus to provide alternative stimulus to signals internal to a model actively running on a logic simulation hardware emulator
US6832185B1 (en) Non-synchronous hardware emulator
KR20030066641A (ko) 효율적인 데이터 로딩 및 언로딩을 위하여 합성된 패킷기반 프로토콜 논리를 이용한 하드웨어 보조 설계 검증시스템
JP2001249824A (ja) 論理エミュレーションプロセッサおよびそのモジュールユニット
Carter et al. Restricted symbolic evaluation is fast and useful
US7043417B1 (en) High speed software driven emulator comprised of a plurality of emulation processors with improved multiplexed data memory
Takasaki et al. HAL II: A mixed level hardware logic simulation system
Denneau et al. Design and implementation of a software simulation engine

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S633 Written request for registration of reclamation of name

Free format text: JAPANESE INTERMEDIATE CODE: R313633

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20081008

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091008

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091008

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20101008

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20101008

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20111008

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20121008

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 14

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees