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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design 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
までの高速行程を妥当なコストにより提供する。 【構成】 ソフトウェア駆動型多重プロセッサ・エミュ
レーション・システムが、モジュール内で並列に接続さ
れる複数のエミュレーション・プロセッサEPを含む。
1個または複数のモジュールがエミュレーション・シス
テムを構成する。各プロセッサは、任意のタイプの論理
ゲート機能をエミュレートする実行ユニットを含む。並
列バスが各プロセッサの出力をマルチプレクサ入力に接
続し、それによりモジュール内のあらゆる他のプロセッ
サと接続される。各プロセッサは、そのオペレーション
を制御するソフトウェア論理表現信号を記憶する制御記
憶を組込む。更に各プロセッサには、制御記憶内のソフ
トウェア信号の制御の下で生成されるデータを受信する
データ記憶が組込まれる。各モジュール上の並列プロセ
ッサは、各プロセッサからのモジュール入力及びモジュ
ール出力を有する。
Description
レーションに関し、特に多重プロセッサによるエミュレ
ーション・システムに関する。
規模集積回路)チップの製造技術は、実験室レベルから
大量生産のレベルにまで発展した。集積回路密度が飛躍
するにつれ、チップ生産ツール及び方法もそれに歩調を
合わせて発展しつつある。有用性を保証するため、VL
SIチップは精密に設計され、十分にテストされ、完璧
に製造されなければならない。指の爪ほどのサイズの中
に数百万個もの実用トランジスタが数百万もの完璧な相
互接続により形成される1片のシリコンを生産すること
は大変な作業である。これを高速な行程で成し遂げるこ
とは不可能と思われるが、これが本発明が目指す現実的
な目標である。
カスタム化された製品を迅速に生産しなければならな
い。市場投入までの期間短縮の必要性がカスタム化アプ
リケーション特有集積回路(ASIC)の人気を高め
た。ASICチップは新製品に欠くことのできない部品
であるので迅速に開発され、1度で正しく設計されなけ
ればならず、さもないとその製品が市場における適時性
を失い、失敗につながりうる。従って実用ASICチッ
プの初期設計から検証作業に至る高速な行程が必要とさ
れる。本発明は新ASICチップの設計期間を多大に短
縮するものである。
らの開発ツール及び工程に対する固有の要求を有する。
その結果、機械設計者及びプリント回路基板(PCB)
設計者は、ASIC設計者と密に作業し、市場投入まで
の期間を短縮しなければならない。PCB及びASIC
は短い有効寿命(例えば2年)を有するが、ASICは
しばしばその設計に2年以上を要し、これは大部分のP
CBの4倍乃至6倍の期間に相当する。更に大規模AS
ICは、しばしばPCBのメモリ及びCPU能力、或い
は他の設計ツールを上回る。ASIC論理設計の数百万
個ものゲートのシミュレーションは、しばしばPCBシ
ミュレーション要求を上回る。更にPCBとは異なり、
製造されるASICのプロトタイプ(試作品)は、容易
にテスト、測定または変更することができない。
するために、技術者は高性能、大容量且つ精密なツール
を必要とする。一般に"フロントエンド処理"と呼ばれる
設計製造、組立て、シミュレーションにより、設計者は
自らの設計の論理表現を開発することができる。物理的
レイアウト及び検証を含む"バックエンド処理"は、設計
の物理的表現により設計者を支援する。IC設計者は両
カテゴリに対応して、市場に存在する様々な特有のツー
ルから選択することができる。
ップ設計は検証されなければならない。すなわち使用以
前にその意図する機能の確実な宣言に対して、余す所な
くテストが実施されなければならない。検証無しに何十
万個もの構成ブロックを結合し、意図する複雑な機能を
正確に獲得する確率は非常に小さい。勿論、十分な時間
と資金があれば、実用設計が達成されるまでチップの試
作品を製造し、それらを意図する環境においてテストす
る工程を循環することは可能である。最近、チップ鋳造
ターンアラウンド・タイムが著しく低減されたが、試作
品を製造するコストは時間的にも資金的にもまだ大き
く、こうした状態が今後も続くものと思われる。
ュレーションは、試作品製作に代わるものである。しか
しながら、これは時間を要し、冗長で能力的に極めて限
られている。テスト実行の遅さ、並びに完全な一連のテ
スト・ケースを生成及び実行する困難性及びコストによ
り、シミュレーションにより余す所なくVLSIチップ
設計をチェックすることは困難であり、ほとんど不可能
に近い。
増大化する回路密度は、密度が増大するにつれ、試作品
作成及びシミュレーションのそれぞれのアプローチを望
ましくないものにしつつある。両方のアプローチは相変
わらず、完全に機能するチップを生成するために、設計
の複数の試作品バーションを繰返し製造することを要求
する。
レータよりも好適な選択である。なぜなら、エミュレー
タは試作品のように使用することができ、多くの場合、
より高速に実行するからである。エミュレータは試作品
により使用されるのと同一の入出力信号を使用し、実際
のシステムにおいて試作品の代わりをする。このことは
シミュレータでは不可能である。なぜならシミュレータ
の場合は、入出力信号が同期される必要があり、エミュ
レータまたは試作品により提供される実際の信号の形態
を有さないからである。
クは、例えば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ゲートをエミュレートするこ
とができる。勿論、複数のエミュレーション・ボードが
エミュレーション・エンジン内に結合されてもよく、こ
の場合、合理的サイズのエミュレーション・エンジンに
より、数千万個の論理ゲートをエミュレートすることが
できる。
送論理により設計され、単一パス・クロック・サイクル
の間に、信号がレジスタ出力から組合わせ論理を介し
て、レジスタ入力に転送され、ここでラッチされる。組
合わせ論理は1個または複数のゲートを含み、各ゲート
は1つまたは複数の入力を有し、1つまたは複数の出力
を生成する。論理パスは組合わせ論理内の全てのゲート
を含み、これらを介して信号が転送され、レジスタへの
特有の入力を生成する。
せ論理内の各特有のゲートのエミュレートに専従させる
(参考文献"Quickturn"などを参照されたい)。本発明
は好適には高速技術を使用し、論理パス全体をエミュレ
ートするために、1個のエミュレーション・プロセッサ
が使用される。エミュレーションの間、シーケンサ(各
エミュレーション・モジュール内の1個)が0から最大
値まで増分され、全てのエミュレーション・プロセッサ
に送信される共通のステップ値を生成する。エミュレー
トされるパス・クロック・サイクルはシーケンサが0に
リセットされるときに開始し、最大定義論理パス長に達
すると終了する。エミュレートされるパス・クロック・
サイクルの間、各エミュレーション・プロセッサは特定
の論理パスに対応する全ての論理をエミュレートする
(1サイクル当たり1パス)。
施例は、制御記憶とデータ・スタックの2つの組込み型
メモリ・アレイを含み、各々が128エントリを有す
る。これらのアレイはシーケンサからのステップ値によ
りアドレスされ、こうしたステップ値は各エミュレーシ
ョン・ステップ後に増分される。各エミュレーション・
プロセッサはステップ値により、ステップの間に実行さ
れるオペレーションを定義する制御ワードをアクセスす
る。従って最大128個の3入力ゲートまたは約500
個のターゲット・システム・ゲートの論理機能を実現す
るために、各エミュレーション・プロセッサ内の単一の
論理要素が繰返し使用される。128個の3入力ゲート
よりも長いパスは、複数のエミュレーション・プロセッ
サに渡って拡張される。エミュレーション・プロセッサ
出力は、大域及び局所レジスタ機能を提供するエミュレ
ーション・プロセッサ内でラッチされる。
り生成された出力は、エミュレーション・プロセッサ内
に記憶され、その全ての後任オペレーションにより直接
使用される。これはまた、同一のエミュレーション・モ
ジュール内の他の全てのエミュレーション・プロセッサ
にとっても、相互接続網を介して使用可能になる。更に
オペレーション出力がエミュレーション・モジュール出
力としてラッチされれば、これは同一のエミュレーショ
ン・ボード上の他のエミュレーション・モジュール内の
1個または複数の他のエミュレーション・プロセッサに
よっても使用可能になる。更にエミュレーション・オペ
レーション出力が外部出力としてラッチされれば、これ
は他のエミュレーション・ボード、ターゲット・システ
ムまたはエミュレーション支援機構への入力となりう
る。
はチップ外に組込まれる特定の形態のメモリ・アレイ内
のデータをアクセスするために使用される。エミュレー
ション・プロセッサは両方のタイプのメモリ・アレイを
エミュレートし、このメモリ・アレイ・エミュレーショ
ンを上述の論理機能エミュレーションに絡める。各制御
ワード内のビットはメモリ・オペレーションを示し、右
制御ワード内の複数ビット例えば32ビットがメモリ・
アレイ・データをエミュレートする。メモリ・オペレー
ションの間に、右制御ワード内のエミュレートされるメ
モリ・アレイ・データをアクセスするために特殊アドレ
ス指定機構が使用される。
ートするために使用され、例えば1ビット幅で32ビッ
トの深さを有し、柔軟に結合されて様々な深さ及び幅を
有する単一のまたは複数のメモリ・アレイをエミュレー
トする。メモリ・アレイをエミュレートするために使用
される任意の右制御ワードについても、エミュレートさ
れるパス・クロック・サイクルの間に複数回アクセスさ
れ、多重ポート・メモリ・アレイをエミュレートする。
ン及びメモリ・アレイ・エミュレーション・オペレーシ
ョンは、非常に大きなエミュレーション容量を有しうる
エミュレーション・エンジン内のエミュレーション・プ
ロセッサ間で柔軟に結合される。好適な実施例では、各
エミュレーション・プロセッサは最大4096ビットの
メモリ・アレイ・データ(128×32)をエミュレー
トする潜在能力を有する。エミュレーション・モジュー
ルは、最大25万ビットのメモリ・アレイ・データをエ
ミュレートする潜在能力を有する。妥当なサイズのエミ
ュレーション・エンジンは、数百万ビットのメモリをエ
ミュレートすることができる。
ュレーション・コンパイラにより、エミュレートされる
論理設計が論理クラスタに区分される。各論理クラスタ
に対して、一連の制御ワードから成る制御プログラムが
特定のエミュレーション・プロセッサに対応して構成さ
れる。個々のエミュレーション・プロセッサ制御プログ
ラムがエミュレーションに先立ち、エミュレーション・
プロセッサの組込み型制御記憶にロードされる。エミュ
レーションの間、エミュレーション・プロセッサは各エ
ミュレーション・モジュール内の共通のシーケンサによ
り提供されるステップ値により、それぞれの制御プログ
ラムから制御ワードを同期して実行する。各ステップの
間、エミュレーション・プロセッサはエミュレートされ
る設計のレジスタ間の論理パス内の単一の3入力論理ゲ
ートに対応する制御ワードを実行する。ステップの完全
なシーケンスは、レジスタ出力と特定のレジスタ入力と
の間の組合わせ論理内の全ての論理パスを横断すること
に対応する。各エミュレーション・プロセッサはその固
有のプログラムを実行し、割当てられた論理クラスタを
エミュレートする。各エミュレーション・プロセッサは
エミュレートされる設計内の論理クラスタを結合する相
互接続網を介して、同一のエミュレーション・モジュー
ル内の他のエミュレーション・プロセッサと通信する。
ターゲット・システム、エミュレーション支援機構及び
同一のエミュレーション・モジュール内に存在しないエ
ミュレーション・プロセッサとの通信は、各エミュレー
ション・プロセッサに専用のエミュレーション・モジュ
ール・パッド上の入出力信号により提供される。
グラムされたステップ数に従い増分され、エミュレーシ
ョン支援機構により停止されるまで繰返される。シーケ
ンサの各循環は、エミュレートされる設計の1パス・ク
ロック・サイクルに対応し、レジスタ出力及びターゲッ
ト・システム入力が論理的に結合され、次のパス・クロ
ック・サイクルにおけるレジスタ入力としてラッチされ
る。シーケンサは、エミュレートされるパス・クロック
・サイクルを、複数の例えば128のステップに効果的
に分割し、各ステップはエミュレートされる設計の1つ
の3入力論理ゲートのエミュレーションに対応する。
では単に"プロセッサ"と呼ぶ)は、好適な実施例のエミ
ュレーション・エンジンの基本コンポーネントである。
プロセッサの主な機能は、3入力論理機能を実行し、シ
ーケンサの各ステップの間に機能ビット出力を生成する
ことである。各論理機能の入力は、以前のオペレーショ
ンまたは別のプロセッサから記憶されたビットなどの様
々なソースから選択される。結果の機能ビット出力は、
エミュレートされる設計の論理ゲート出力、エミュレー
トされる設計のレジスタ出力、合成中間論理状態、或い
はエミュレーション・プロセスにおいて生成される制御
ビットのいずれかに対応する。プロセッサの論理機能に
代わるものにメモリ・オペレーションがあり、この場合
には、制御記憶の一部が、エミュレートされる論理設計
のメモリ・アレイをエミュレートするために使用され
る。シーケンサ・ステップの間にプロセッサにより実行
される追加の共通オペレーションには、プロセッサによ
る続く使用に備えるための機能ビット出力の記憶、(プ
ロセッサの)外部データの捕獲及び記憶、別のプロセッ
サからのデータの受信、並びに別のプロセッサ、外部デ
ータまたはメモリ・アドレス・レジスタ(MAR)によ
る使用に備えるためのデータのラッチが含まれる。
ジュール"と呼ぶ)は、複数の例えば64個のプロセッ
サを含む。モジュール内の全てのプロセッサは同一であ
り、図1に示される内部構造を有する。プロセッサ構造
の詳細が、図2乃至図5に示される。図1では、指定プ
ロセッサは"シーケンサ"及び"相互接続網"(破線ボック
スで示される)以外を含み、これらはモジュール内に1
個ずつ含まれる。左右の制御記憶は指定プロセッサに対
応してエミュレーション・コンパイラにより生成される
固有のプログラムを保持する。スタックは以前に生成さ
れたデータを保持し、対応する右制御ワード内のフィー
ルドによりアドレスされ、論理要素への入力となる3つ
の2進ビットを突きとめる。入力スタックは、ノード・
ビット入力(図5)を介して受信されるデータを保持
し、データ・スタックは、プロセッサにより以前に生成
されたデータ(機能ビット出力またはメモリ・ビット出
力)を保持する。
ション・プロセッサはエミュレーション・プログラムに
従い、3入力論理機能またはメモリ・アレイ・アクセス
のいずれかをエミュレートする。論理オペレーションま
たはメモリ・オペレーションの選択は、各左制御ワード
内のビットにより動的に決定される。データ・フロー制
御は現制御ワードを解釈し、プロセッサ内でデータを経
路指定及びラッチする。
信号は、相互接続網(図1)に供給され、ここで、これ
は64個の各々の64入力マルチプレクサに分配され
る。左制御ワード内のノード・アドレス・フィールド
は、指定プロセッサがそのノード・ビット入力信号に応
じて、モジュール内の64個の任意のプロセッサからノ
ード・ビット出力信号を選択することを可能にする。ノ
ード・ビット入力は、毎ステップごとに入力スタックに
記憶される。任意の論理オペレーションまたはメモリ・
オペレーションの間に、指定プロセッサのノード・ビッ
ト出力信号がモジュール内の1個または全てのプロセッ
サによりアクセスされたり、されなかったりする。
び相互接続網を通じるデータの経路指定は、各プロセッ
サ内の論理エミュレーション機能の実行とは独立に発生
し、これと重複する。
は、関連モジュール内の共通シーケンサの制御の下で順
次繰返して実行される128制御ワードを記憶する。シ
ーケンサの各循環は、ステップ値を0から所定の最大値
に進め、エミュレートされる設計の1設計パス・クロッ
ク・サイクルに対応する。制御記憶内の左右の制御ワー
ドは、シーケンサの各ステップの間に同時に選択され
る。これらの図では多重信号バス表記法が使用され、例
えばPC(0−1)はPCバスの第1及び第2の信号を
表し、LC(2)はLC信号の第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ビットである。
は、論理データ記憶用の128×1ビットの多重ポート
・スタックを有し、各スタックは1つの書込みアドレス
及び3つの読出しアドレスを有する。書込みアドレスは
ステップ値から導出され、毎ステップごとに両方のスタ
ックにデータを記憶するために使用される。3つの読出
しアドレス(RAA、RAB、RAC)は、論理機能エ
ミュレーション・オペレーションの間に、以前に記憶さ
れたデータを選択的にアクセスするために使用される。
読出されたデータは、右制御ワード内の論理機能(LF
T)から単一ビットをアクセスするためのアドレスを生
成するために、論理要素により使用される。
り内部的に生成されたデータ(機能ビット出力またはメ
モリ・ビット出力)を保持する。入力スタックは、プロ
セッサの外部で獲得され、プロセッサ・データ・フロー
により選択されたデータを保持する(図5参照)。一般
にこのデータは別のプロセッサ、エミュレーション支援
機構、または外部ターゲット・システムから到来する。
ミュレートされる論理機能は、8ビット論理機能テーブ
ルとして符号化される。3つのデータ・ビットがテーブ
ルのインデックスを構成するために使用され、アドレス
されたビットが論理機能の結果または出力を表す。例え
ば3入力NAND機能は"11111110"Bなどと符号化され
る。3つの全てのアドレス・ビットがハイの場合に限
り、アクセスされるビットが非活動状態すなわちNAN
Dとなる。同様に3入力OR機能は"01111111"Bなどと
符号化され、全てのアドレス・ビットが非活動状態の場
合に限り、アクセスされるビットは非活動状態となる。
単純なインバータは"10101010"Bなどと符号化され、ア
クセスされるビットは最下位アドレス・ビットの反転と
なる。8ビット論理機能テーブルにより、256の論理
機能のいずれかが指定される。
される。3個の4入力マルチプレクサの各々は、4つの
ソースの1つから、アドレス・ビットとなるデータを選
択する。3つのアドレス・ビットが8入力マルチプレク
サへの選択入力として結合される。このマルチプレクサ
へのデータ入力は、右制御ワード内の8ビットLFTフ
ィールドから得られる。LFTフィールドから選択され
るビットはエミュレートされる機能の結果であり、機能
ビット出力信号として提供される。
ルドの6ビットは、機能的に3つの2ビット・サブフィ
ールドに分割され、各々がアドレス・マルチプレクサに
より使用される。入力スタックまたはデータ・スタック
からのデータが論理機能インデックスとして使用される
場合には、"単純"論理機能がエミュレートされる。隣接
プロセッサが任意のステップの間に協働するようにプロ
グラムされる場合、"拡張"論理機能も実行される。拡張
論理機能ステップでは、1個または複数(本実施例では
最大3個)の隣接プロセッサの機能ビット出力が、論理
機能インデックスを形成するために使用される。図4に
は、これらの拡張入力がF−n及びF+nとして指定さ
れ、ここで、nは1、2または3である。実施例では、
F−n入力は識別プロセッサの機能ビット出力から得ら
れ、F+n入力は以前のステップのラッチされた機能ビ
ット出力値から得られる。例えば64個のプロセッサを
有するモジュールは、129ビット入力拡張論理機能を
1ステップでエミュレートすることができる。
ワードの内容が、プログラムされた設計の低レベル論理
ゲートのエミュレーションと相関付けられる。通常、良
好な設計は、パス遅延を最小化し、性能を向上するよう
に論理パス内の論理ゲート数を制限する。我々の分析に
よれば、128の制御ワードにより、ほとんどの設計を
エミュレートすることができることが判明した。しかし
ながら、この制限を越える設計では、低レベル論理ゲー
トのサブセットを1ステップでエミュレートするため
に、拡張論理機能も使用される。エミュレーション・コ
ンパイラが、シミュレートされる設計の低レベル論理ゲ
ートを分析し、適宜拡張論理機能を挿入する。
は、単一のプロセッサの論理を実行する追加の内部ラッ
チ及びマルチプレクサを示す。このデータ・フローは、
プロセッサ内でデータを経路指定し、プロセッサ及びモ
ジュールの外部で使用されるデータをホールドするため
のラッチを含む。図5には更に、相互接続網(図1)の
対応する64入力マルチプレクサが示され、これはノー
ド・ビット入力信号に対応して、別のプロセッサからの
データを選択する。
(PC)は、ノード・ビット出力に対応するデータ・ソ
ース及びデータ・スタックに書込まれるデータを選択す
るように、データ・フロー内でデータを経路指定する。
ラッチ制御フィールド(LC)は、後の使用に備え、4
個のそれぞれのラッチに対するデータのラッチを独立に
制御する。
ール・ビット出力ラッチは、プロセッサが同一のエミュ
レーション・ボード(図7)上の別のモジュール内の指
定プロセッサと通信するために使用する。これらの2つ
の信号は専用のモジュール・ピンに接続され、同一のエ
ミュレーション・ボード上の別のモジュール上の特定の
対応ピンに配線される。これらのピン上に転送されるデ
ータ・ビットは、データが、エミュレートされる設計の
複数のノードに対応してステップ毎に変化するように、
時分割制御される。
ラッチは、プロセッサがエミュレーション支援機構、タ
ーゲット・システムまたは他のエミュレーション・ボー
ド上のプロセッサと通信するために使用する。これらの
2つの信号は専用のモジュール・ピンにも接続され、エ
ミュレーション・ボード上のコネクタ・ピンに配線され
る。通常、これらのピン上の情報は、シーケンサの1循
環の間に高々1度変化し、エミュレートされる設計の入
力または出力信号に対応する。エミュレーション支援機
構に接続されるとき、データ・ビットはステップ毎に変
化しうる。
ュール・ビット入力データを相互接続網に渡すのと同時
に、論理オペレーションを実行する(結果を保管する)
能力である。このバイパス経路指定機能は、特定のプロ
セッサが相互接続されるように、モジュール間のボード
・レベル配線を増補する。これにより、プロセッサが同
一モジュール内に存在せず、エミュレーション・ボード
配線を介して直接接続されない場合、非ブロック化(no
n-blocking)プロセッサ間通信が2ステップで提供され
る。
トされるメモリ・アレイ・オペレーションを増補するた
めに、エミュレーション・モジュールは複数の、例えば
4個のメモリ・アドレス・レジスタを含む。各レジスタ
は3つのフィールド、すなわち7ビットのライン・アド
レス、5ビットのビット・アドレス及び読出し/書込み
オペレーション・ビットを含む。メモリ・オペレーショ
ンの間(図3)、ライン・アドレスが左制御ワードから
のメモリ・アドレス・データ(MAD)と論理和され、
組込み型メモリ要素をアクセスするために、右制御記憶
に供給されるアドレスを形成する。ビット・アドレス
は、メモリ読出しまたは書込みオペレーションのための
単一ビットを選択するために使用される。
はモジュール内のプロセッサに独立であるが、物理的に
は、各メモリ・アドレス・レジスタは、13個のプロセ
ッサ内のメモリ・アドレス・ビット・ラッチから構成さ
れる。4個の独立のメモリ・アドレス・レジスタが、6
4個のプロセッサを有するモジュール上に構成され、各
々は四分区間内の16個のプロセッサに関連付けられ
る。関連付けられるプロセッサ内のエミュレーション制
御プログラムは、協働して、共有メモリ・アドレス・レ
ジスタの内容を生成及び変更する。各エミュレーション
・モジュール内の12個の残りの(予備の)メモリ・ア
ドレス・ビット・ラッチ(各四分区間から3個)は、論
理オペレーションの間に他の目的のために使用される。
ミュレーション・プロセッサは、エミュレーション・エ
ンジンの基本コンポーネントである。図6に示されるエ
ミュレーション・モジュールは、物理パッケージ化の第
1レベルであり、64個の同一のプロセッサのアレイ、
相互接続網及びシーケンサを含む。シーケンサからのス
テップ値は、モジュール内の全てのプロセッサに提供さ
れ、それらのエミュレーション・プログラムを同期して
実行することを可能にする。エミュレーションの間、シ
ーケンサは0から最大値まで繰返し増分される。最大値
(128未満)は、エミュレートされる設計の最大パス
長に依存する。設計をエミュレートするために複数のモ
ジュールが使用される場合、それらのシーケンサは同期
してステップし、同一の値を含む。
見なされる。64個のノードが、64個の64入力マル
チプレクサを含む非ブロック化相互接続網を介して、相
互接続される。各マルチプレクサはその関連プロセッサ
からノード・アドレスを受信し、ノード・ビット入力信
号を返却する。相互接続網内のあらゆるマルチプレクサ
は、その入力として、64個の各プロセッサからのノー
ド・ビット出力信号を有する。マルチプレクサの出力
は、そのプロセッサへのノード・ビット入力となる。各
マルチプレクサは、その関連プロセッサへの入力とし
て、モジュール内の任意の他のプロセッサのノード・ビ
ット出力信号を選択する。
転送されるデータ・ビットは、ステップ毎に変化し、エ
ミュレートされる設計の特定のネットに専従するわけで
はない。任意の指定ステップにおけるあるプロセッサか
ら相互接続網へのデータは、エミュレートされるゲート
出力、エミュレートされるレジスタまたはメモリ出力、
或いはプロセッサ間エミュレーション制御情報を表す。
ノード・ビット入力値は、続く使用に備えてプロセッサ
の入力スタックに記憶され、非常に高いファンイン(fa
n-in)をもたらす。複数のプロセッサが、(それらのノ
ード・ビット入力として)同一のプロセッサのノード・
ビット出力を選択するとき、非常に高いファンアウト
(fan-out)または同報通信が達成される。
セッサ以外の装置とデータを転送するために、4つのモ
ジュール・パッドのセットに電気的に接続される。ほと
んどのモジュール入力及び出力パッドは、それぞれエミ
ュレーション・ボード上の他の特定のモジュール出力及
び入力パッドに配線される(図7参照)。幾つかのモジ
ュール入力及び出力パッドは、エミュレーション・ボー
ド・コネクタ・ピンに配線される。相互接続網に関して
は、モジュール入出力パッド上のデータ・ビットが、ス
テップ毎に変化する。
プロセッサの外部ビット入力信号及び外部ビット出力信
号にそれぞれ接続される。これらのパッドは、通常、エ
ミュレーション・システム内の他のエミュレーション・
ボードまたは他の機構と通信するために使用される。プ
ロセッサはこのように、エミュレーション支援機構また
はターゲット・システムの入出力信号に割当てられる。
外部入出力パッド上のデータは、ステップ毎に変化しう
る。しかしながら、ターゲット・システムに接続される
場合には、通常、シーケンサの循環(設計クロック・サ
イクル)の間に、高々1度変化する。
ジ化の次に高いレベルでは、図7に示されるエミュレー
ション・ボードは、65個の同一のエミュレーション・
モジュールのアレイを含む。これらの各モジュールは、
エミュレーション・ボード上のあらゆる他のモジュール
に対する特定の入出力信号対を有するように、それぞれ
のモジュール入出力ピンにより相互接続される。これら
の信号対はモジュール/プロセッサ対を相互接続し、モ
ジュールY内のプロセッサXが、モジュールX内のプロ
セッサYに接続される(但しX=Y以外の場合)。65
番目のエミュレーション・モジュールは、他の64個の
各エミュレーション・モジュールの未使用対(X=Y)
に接続される。異なる数のモジュール、またはモジュー
ル間で異なる数の信号対を有する他の多くのエミュレー
ション・ボード構成も可能である。
のカード、エミュレーション支援機構及びターゲット環
境と通信するために、エミュレーション・ボード入出力
コネクタ・ピンに接続される。予備のモジュール入出力
ピン(上記X=Y)も、これらの追加の外部信号として
使用することができる。64個のモジュールを有するエ
ミュレーション・ボードは、その環境または他のカード
に接続するために、4160個の入力ピン(4096の
外部入出力ピンに加え、64個の予備モジュール入出力
ピン)及び4160個の出力ピンを有することができ
る。
ージ化の次に高いレベルでは、等価の異なる複雑度を有
する複数のエミュレーション・ボードが相互接続され、
相当な容量のエミュレーション・エンジンを提供する。
こうしたエンジンは数百万ゲートの設計をエミュレート
するように構成される。単一のエミュレーション・エン
ジンが、単一の設計または複数の設計を同時にエミュレ
ートするようにプログラムされる。単一の設計をエミュ
レートする場合、あらゆるモジュール内のあらゆるシー
ケンサが、同一の値及びステップを同期して含む。シー
ケンサのステップ増分も、ターゲット・システム内のク
ロックに同期される。複数設計が同時にエミュレートさ
れる場合、指定設計に対応して動作中のシーケンサだけ
が、同期してステップ増分される必要がある。
複数回、エミュレーション・エンジン上で"実行"され
る。設計誤りは、エミュレーション・プログラム制御ワ
ードを変更することにより、或いは変更された設計を再
コンパイルすることにより、容易に修正される。エミュ
レーション・エンジンは高性能を有し、ターゲット・シ
ステムと同じスピードで実行されるので、エミュレート
される設計は完全に検証される。
ョン・エンジンはその設計の永久的具現となる。追加の
支援機構が、エミュレーション・プロセッサをロード
し、エミュレーション・プロセスを制御するために要求
される場合もある。
ション・システムは、エミュレーション・エンジン、タ
ーゲット・システム及び支援機構から構成される。通
常、支援機構は制御コンソール、エミュレーション制御
プロセッサ(例えばパーソナル・コンピュータ)、エミ
ュレーション・モニタリング及びデータ捕獲機構を含
む。
レーション・ボード上の選択エミュレーション・ボード
・コネクタ・ピンが、信号インタフェース回路及びコネ
クタを介して、ターゲット・システムの信号ピンに1対
1ベースで接続される。従って、ターゲット・システム
の各入力または出力信号は、指定のエミュレーション・
プロセッサの出力または入力信号に接続される。同様に
エミュレーション・プロセッサは、モニタリング及びデ
ータ捕獲機構に接続される。
ーション・コンパイラは、ユーザの論理設計を制御ワー
ド(CW)のシーケンスに変換する。変換された制御ワ
ードは、エミュレーション・エンジン内のエミュレーシ
ョン・プロセッサの制御記憶にロードされる。コンパイ
ラはユーザの設計を記述するデータ・ファイルを読出
し、エミュレーションの間にエミュレーション・プロセ
ッサを制御するエミュレーション・プログラム・ファイ
ルのセットを生成する。
らの相互接続により記述する以下の3つの入力ファイル
を処理し、ここで各セルは論理ゲート、レジスタまたは
メモリ・アレイのいずれかである。 設計ファイル:このファイルはユーザ設計の内部機能を
記述する。これは各々が特定のセル、その論理機能また
はメモリ機能、その入力信号の名前及びその出力信号の
名前を識別する複数のセル・ステートメントを含む。 制御ファイル:このファイルは、ユーザ設計がその外部
(ターゲット)環境に接続される様子を記述する。これ
は各々が特定の物理入出力ピン、そのピンに接続される
信号の名前、データ転送方向及びターゲット・システム
へのその接続を識別する複数の入出力ステートメントを
含む。 割当てファイル:ユーザ設計内のセルがエミュレーショ
ン・プロセッサに割当てられる様子を記述するオプショ
ンのファイルである。このファイル内のステートメント
は使用されるプロセッサの数、あるプロセッサから別の
プロセッサに移動されうるセル、こうした移動のコス
ト、最大論理パス長及び時間フェーズの名前を識別す
る。オプションのステートメントは、システム入力また
は出力信号及びそれらの開始または終了プログラム・ス
テップ及び関連プロセッサ番号を識別する。このファイ
ルはユーザによっては提供されず、コンパイラが割当て
フェーズの間に生成する。
示す4つのフェーズを通じ、エミュレーション・プログ
ラムを準備する。 サイズ化:システム入力または出力信号の数が、制御フ
ァイル内のプロセッサの数よりも大きいと、コンパイラ
は各プロセッサが1入力または1出力システム信号を処
理できるように、プロセッサの数を増加する。 割当て:設計内の全てのセルに対して、1個または複数
のプロセッサが1個または複数のセルに割当てられる。
割当ての目標は、 i)同一プロセッサ内で同一の入力及び出力信号を有す
るセルをグループ化する。あるプロセッサ内のセルから
異なるプロセッサ内のセルに渡される信号が、その信号
を転送するための追加のステップを要求する。 ii)エミュレーション作業負荷を平衡させるために、
ほぼ等しい数のセルをあらゆるプロセッサに割当てる。 パス分解:パスは、システム入力信号またはラッチ素子
(レジスタまたはメモリ・アレイ)で開始し、0個以上
の論理ゲートを通過し、システム出力信号またはラッチ
素子で終了するように、コンパイラ内で定義される。遅
延値がパス内の相互接続ゲート間リンクに次のように割
当てられる。 i)同一プロセッサには、ゲート間リンクとして1が割
当てられる。 ii)同一モジュール内の異なるプロセッサには、ゲー
ト間リンクとして2が割当てられる。 iii)異なるモジュール内のプロセッサには、ゲート
間リンクとして4が割当てられる。 パス長は、任意のパスにおける遅延値の合計として計算
される。パス長が割当てファイル内に指定される値より
も大きいと、これはレジスタを追加し、新たな時間フェ
ーズを割当てファイルに追加することにより分割され
る。パス区切り点を決定する基準は、エミュレーション
処理時間の最小化に依存する。 スケジューリング:このフェーズの間、各プロセッサが
各ステップにおいて何を実行するかを指定するプログラ
ム・ファイルが、各プロセッサに対して生成される。全
てのプロセッサは同一数のプログラム・ステップを有
し、任意のステップにおいて何も作業がスケジュールさ
れない場合には、プロセッサは遊休状態となる。このス
ケジューリング・フェーズの目標は、プログラム・ステ
ップの最大数を最小化することにより、作業負荷を平衡
させることである。最適な解決では、ゲートが毎ステッ
プの間にあらゆるプロセッサによりエミュレートされる
べきである。
エンジン内において、エミュレーション・コンパイルの
プロセス及びエミュレーション・プログラムの実行を例
証する仮の例が提供される。図9はこの例の概観を表
し、6ビット・レジスタがメモリ・アレイ(64ワード
×2ビット)にアドレスを提供する。毎設計サイクルご
とに2ビットがメモリから読出され、反転され、同一の
アドレスに書戻される。レジスタの内容も毎設計サイク
ルごとに増分される。図10はこの例の詳細をゲート・
レベルで表す。16進値がこの例では使用される。図1
1はエミュレーション・プロセッサ割当てを示す。表1
は、様々な論理機能に対応する論理機能テーブル符号化
を表す。テーブル内の全ての値が16進表記で示され、
例えば、16進の3Bは2進値の00111011に対応する。
ケジューリングの結果を反映した中間コンパイラ・デー
タを示す。この単純な例では、パス分解は要求されな
い。表6は、14個の各エミュレーション・プロセッサ
に対応するコンパイラ及びエミュレーション・プログラ
ムの結果を示す。
イラは次の割当てを生成する。 i)プロセッサ00乃至05は、6つの出力信号に割当
てられる。 ii)プロセッサ08乃至09は、64ビット・メモリ
・アレイをエミュレートするために割当てられる。 iii)プロセッサ0A乃至0Fは、メモリ・アレイを
アドレスするために割当てられる。
ら、プロセッサ04が増分器をエミュレートし、データ
をレジスタ出力として使用されるそれぞれのプロセッサ
に渡すわかる。
の事項を開示する。
を処理する実行ユニットを含む複数のエミュレーション
・プロセッサと、それぞれが前記エミュレーション・プ
ロセッサに接続される出力と、それぞれが他の各エミュ
レーション・プロセッサに接続される入力と、任意のエ
ミュレーション・プロセッサからの出力を他のエミュレ
ーション・プロセッサに転送するバス手段とを有するマ
ルチプレクサと、各エミュレーション・プロセッサ内に
あって、関連するエミュレーション・プロセッサのオペ
レーションを制御するソフトウェア論理表現信号を記憶
する組込み型制御記憶と、各エミュレーション・プロセ
ッサ内にあって、当該エミュレーション・プロセッサ内
の前記組込み型制御記憶に記憶される前記ソフトウェア
信号の制御の下で、当該エミュレーション・プロセッサ
により生成されるデータを受信する組込み型データ記憶
と、前記組込み型制御記憶に記憶される前記ソフトウェ
ア信号の制御の下で、任意のエミュレーション・プロセ
ッサから、接続される前記マルチプレクサを介して、前
記バス手段上にデータを送信するバス制御手段と、を含
む、ソフトウェア駆動型多重プロセッサ・エミュレーシ
ョン・システム。 (2)各エミュレーション・プロセッサの前記実行ユニ
ットに含まれ、複数タイプの任意の論理ゲート機能をエ
ミュレートするテーブル索引ユニットを含む、前記
(1)記載のソフトウェア駆動型多重プロセッサ・エミ
ュレーション・システム。 (3)前記複数のエミュレーション・プロセッサに接続
され、前記エミュレーション・プロセッサを同期するた
めの出力循環信号を前記エミュレーション・プロセッサ
に提供するシーケンサを含む、前記(1)記載のソフト
ウェア駆動型多重プロセッサ・エミュレーション・シス
テム。 (4)前記複数のエミュレーション・プロセッサ、前記
バス手段、前記バス制御手段及び前記シーケンサを含む
単一のモジュール・ユニットを含む、前記(3)記載の
ソフトウェア駆動型多重プロセッサ・エミュレーション
・システム。 (5)前記モジュール・ユニットが複数設けられ、各モ
ジュール・ユニットの各前記エミュレーション・プロセ
ッサが外部入力及び外部出力を有しており、更に各モジ
ュール・ユニットの各エミュレーション・プロセッサの
前記外部入力及び前記外部出力を、異なるモジュール・
ユニットのエミュレーション・プロセッサの外部出力及
び外部入力に接続するモジュール間バス手段と、エミュ
レーション実行サイクルのために全ての前記モジュール
・ユニットの前記シーケンサを同期させる手段と、を含
む、前記(4)記載のソフトウェア駆動型多重プロセッ
サ・エミュレーション・システム。 (6)エミュレートされる論理のサブセットを表す論理
ソフトウェア・クラスタを含むように予めコンパイルさ
れた、ソフトウェア手段に記憶される論理ソフトウェア
と、全てのエミュレーション・プロセッサによる実行サ
イクルに先立ち、前記論理ソフトウェアの異なるソフト
ウェア・クラスタを、異なるエミュレーション・プロセ
ッサの組込み型制御記憶にロードするローディング手段
と、前記ソフトウェア・クラスタが前記エミュレーショ
ン・プロセッサにロードされた後、全てのエミュレーシ
ョン・プロセッサの実行サイクルのために前記シーケン
サを起動する起動手段と、を含み、前記論理の全てのソ
フトウェア・クラスタが処理され、該論理によるオペレ
ーションがエミュレートされるまで、前記ローディング
手段及び前記起動手段が交互に繰返し動作する、前記
(3)または(5)記載のソフトウェア駆動型多重プロ
セッサ・エミュレーション・システム。 (7)各エミュレーション・プロセッサに関連する前記
組込み型制御記憶及び前記組込み型データ記憶に関連付
けられ、当該多重エミュレーション・システムによりエ
ミュレートされるターゲット論理エンティティ内のメモ
リ・アレイの全部または一部をエミュレートするよう
に、前記組込み型制御記憶と前記組込み型データ記憶と
を協働させる特殊制御手段を含む、前記(4)記載のソ
フトウェア駆動型多重プロセッサ・エミュレーション・
システム。
計から検証作業までの高速行程を妥当なコストにより提
供する。それにより設計がシリコンなどに縛られること
なく、"柔軟性"を維持したまま、設計者は"実世界"(re
al world)システム・コンポーネントを用い、実用環境
におけるチップ設計を検証することができる。本発明は
VLSIチップ・エミュレーションに無類の容量、相互
接続性、柔軟性、効率及びスピードを提供する。現VL
SIチップ・エミュレータの入出力ピン制限が、固有の
相互接続機構に結合される"1サイクル当たり1行程"
(path-per-cycle)エミュレーション技術により克服さ
れる。本発明自身はVLSI技術において具現され、V
LSIチップ設計において具現される超大規模高速論理
回路と共に、メモリ・アレイ及びそれらのソフトウェア
内容をエミュレートすることができる。
である。
制御ワード・フィールドを表す図である。
御ワード・フィールドを表す図である。
論理要素を表す図である。
フローを表す図である。
である。
る。
ある。
Claims (7)
- 【請求項1】各々が複数タイプの論理ゲート機能を処理
する実行ユニットを含む複数のエミュレーション・プロ
セッサと、 それぞれが前記エミュレーション・プロセッサに接続さ
れる出力と、それぞれが他の各エミュレーション・プロ
セッサに接続される入力と、任意のエミュレーション・
プロセッサからの出力を他のエミュレーション・プロセ
ッサに転送するバス手段とを有するマルチプレクサと、 各エミュレーション・プロセッサ内にあって、関連する
エミュレーション・プロセッサのオペレーションを制御
するソフトウェア論理表現信号を記憶する組込み型制御
記憶と、 各エミュレーション・プロセッサ内にあって、当該エミ
ュレーション・プロセッサ内の前記組込み型制御記憶に
記憶される前記ソフトウェア信号の制御の下で、当該エ
ミュレーション・プロセッサにより生成されるデータを
受信する組込み型データ記憶と、 前記組込み型制御記憶に記憶される前記ソフトウェア信
号の制御の下で、任意のエミュレーション・プロセッサ
から、接続される前記マルチプレクサを介して、前記バ
ス手段上にデータを送信するバス制御手段と、 を含む、ソフトウェア駆動型多重プロセッサ・エミュレ
ーション・システム。 - 【請求項2】各エミュレーション・プロセッサの前記実
行ユニットに含まれ、複数タイプの任意の論理ゲート機
能をエミュレートするテーブル索引ユニットを含む、 請求項1記載のソフトウェア駆動型多重プロセッサ・エ
ミュレーション・システム。 - 【請求項3】前記複数のエミュレーション・プロセッサ
に接続され、前記エミュレーション・プロセッサを同期
するための出力循環信号を前記エミュレーション・プロ
セッサに提供するシーケンサを含む、 請求項1記載のソフトウェア駆動型多重プロセッサ・エ
ミュレーション・システム。 - 【請求項4】前記複数のエミュレーション・プロセッ
サ、前記バス手段、前記バス制御手段及び前記シーケン
サを含む単一のモジュール・ユニットを含む、 請求項3記載のソフトウェア駆動型多重プロセッサ・エ
ミュレーション・システム。 - 【請求項5】前記モジュール・ユニットが複数設けら
れ、各モジュール・ユニットの各前記エミュレーション
・プロセッサが外部入力及び外部出力を有しており、更
に各モジュール・ユニットの各エミュレーション・プロ
セッサの前記外部入力及び前記外部出力を、異なるモジ
ュール・ユニットのエミュレーション・プロセッサの外
部出力及び外部入力に接続するモジュール間バス手段
と、 エミュレーション実行サイクルのために全ての前記モジ
ュール・ユニットの前記シーケンサを同期させる手段
と、 を含む、請求項4記載のソフトウェア駆動型多重プロセ
ッサ・エミュレーション・システム。 - 【請求項6】エミュレートされる論理のサブセットを表
す論理ソフトウェア・クラスタを含むように予めコンパ
イルされた、ソフトウェア手段に記憶される論理ソフト
ウェアと、 全てのエミュレーション・プロセッサによる実行サイク
ルに先立ち、前記論理ソフトウェアの異なるソフトウェ
ア・クラスタを、異なるエミュレーション・プロセッサ
の組込み型制御記憶にロードするローディング手段と、 前記ソフトウェア・クラスタが前記エミュレーション・
プロセッサにロードされた後、全てのエミュレーション
・プロセッサの実行サイクルのために前記シーケンサを
起動する起動手段と、 を含み、 前記論理の全てのソフトウェア・クラスタが処理され、
該論理によるオペレーションがエミュレートされるま
で、前記ローディング手段及び前記起動手段が交互に繰
返し動作する、 請求項3または5記載のソフトウェア駆動型多重プロセ
ッサ・エミュレーション・システム。 - 【請求項7】各エミュレーション・プロセッサに関連す
る前記組込み型制御記憶及び前記組込み型データ記憶に
関連付けられ、当該多重エミュレーション・システムに
よりエミュレートされるターゲット論理エンティティ内
のメモリ・アレイの全部または一部をエミュレートする
ように、前記組込み型制御記憶と前記組込み型データ記
憶とを協働させる特殊制御手段を含む、 請求項4記載のソフトウェア駆動型多重プロセッサ・エ
ミュレーション・システム。
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)
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)
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)
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 |
-
1994
- 1994-06-03 US US08/253,881 patent/US5551013A/en not_active Expired - Lifetime
-
1995
- 1995-04-20 JP JP7094674A patent/JP2989518B2/ja not_active Expired - Fee Related
Cited By (5)
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 |