JPS62251933A - 多重ポ−ト・メモリ・アレイのシミユレ−シヨン方法 - Google Patents

多重ポ−ト・メモリ・アレイのシミユレ−シヨン方法

Info

Publication number
JPS62251933A
JPS62251933A JP62053235A JP5323587A JPS62251933A JP S62251933 A JPS62251933 A JP S62251933A JP 62053235 A JP62053235 A JP 62053235A JP 5323587 A JP5323587 A JP 5323587A JP S62251933 A JPS62251933 A JP S62251933A
Authority
JP
Japan
Prior art keywords
memory
address
data
instruction
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP62053235A
Other languages
English (en)
Inventor
アン・マリー・ルーデイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JPS62251933A publication Critical patent/JPS62251933A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
Δ、産業上の利用分野 本発明は、専用プロセッサによる。多重ポート・メモリ
・アレイ動作のシミュレーションに関するものである。 専用プロセッサは、論理シミュレーション機械からの模
擬アクセス信号を利用する。 論理シミュレーション機械は、模擬メモリ・アレイの周
辺論理の動作を表わす信号を発生する。 B、従来技術 シミュレーションは、電子論理回路の設計に広く使用さ
れている。論理回路の設計ができると、特定の一組のテ
スト条件下での回路の動作を表す働きをする論理シミュ
レーション機械(LSM)によって、その動作を間接的
に検査することができる。機械シミュレーションの目的
は、シミュレートされる論理の設計エラーを検出し、設
計を製造に移す前に論理設計者がエラーを訂正できるよ
うにすることである。 1983年のTEEE国際コンピュータ設計会議の議事
録にでている一連の論文に、特定の論理シミュレーショ
ン機械が記載されている。それらの論文とは、ジョン(
John)K、ハワード(Howard)外のr 18
Mロス・ガトス論理シミュレーション機械の概説(In
troduction t、o the I[1M L
os GatosLogic Simulation 
Machine)J 、テッド・バーブグラフ(Ted
 Burggraff)外のrI[1Mロス・ガトス・
シミュレーション機械ハードウェア(The I13阿
LosGatos Sin+ulation Mach
inCIlardware)J 、ジャック・コーン(
Jack Kahn)外のrInMロス・ガトス論理シ
ミュレーション機械ソフトウェア(The rrlML
os Gatos Logic Simulation
 Machine Software)J、およびK・
ハワード外のrIOMロス・ガトス論理シミュレーショ
ン機械の使用(Using the T[3MLos 
Gatos 5iIllulation Machin
)Jである。これらの論文に記載されたL S Mは、
米国特許第4306286号(特公昭59−48424
号公l1fi)に最初に開示された。 米国特許第4306286号のLSMは、それぞれ論理
ネットワークの一部分をシミュレートできる複数の機能
的に等価なプロセッサを組み込んだ、高度な並列機械で
ある。並列プロセッサの動作は、対話式プロセッサ・ス
イッチを備えた制御装置により制御される。従来技術の
LSMの動作は、並列プロセッサのそれぞれにおける一
連の命令の実行にもとづくもので、各命令が1つの論理
ゲートの動作に対応する機械動作ステップを開始する。 機械は周期的に動作し、各基本サイクルは、シミュレー
トされる論理ゲートでの全ての43号値の1回の更新に
対応する。 C1発明が解決しようとする問題点 従来技術のLSMは、離散形ゲートからなる論理回路を
シミュレートするには非常に効率的であるが、機械シミ
ュレーションが論理ゲート動作に関係する個々のビット
に作用するために、メモリ・アレイのシミュレーション
はうまくできない。したがって、従来技術のLSMで、
たとえば、8X32にメモリ・アレイの各ビットについ
て動作をシミュレートするには、256,000個を越
える命令が必要となるはずである。明らかに、従来技術
の論理シミュレータでは、多重ビット・メモリ動作が最
小限度の命令セットによってシミュレートできるような
改善が待望されている。できれば各メモリ参照が、1つ
の命令によってシミュレートされることが好ましい。 D1問題点を解決するための手段 従来技術のLSMで待望されていた改善は、本発明にお
いて、メモリ参照動作のシミュレーションを実現するメ
モリ・アレイ・アクセス命令しく「アレイ命令」)を定
義し、それを複数の模擬メモリ・アクセス信号に作用さ
せることにより。 実現される。各アレイ命令は、1つの命令実行ステップ
中で関連する複数の信号に作用して、模擬メモリ・アレ
イの特定のポートで予め定義されたメモリ参照をシミュ
レへ−1−する、そのときのメモリ参照パラメータは模
擬(8号によって設定される。これに関連して、「メモ
リ参照」という表現は、メモリの読取りまたは書込みを
表し、[メモリ参照パラメータ」という用語は、模擬メ
モリ参照を行うためのデータ、アドレス、およびメモリ
制御条件の特定の組を指す。 本発明の方法は、インターフェース用有限状態機械(F
SM)が少なくとも1つのメモリ・アレイをシミュレー
トするようになっている論理シミュレーション機械で実
行することにより、機械アクセス可能なメモリ・アレイ
に加えられたメモリ参照をシミュレートする。このシミ
ュレーション方法のステップには、模擬メモリ・アレイ
に対応するように1または複数のメモリ・ポート名を定
義すること、およびそれらのメモリ・ポート名をFSM
の入出力資源の対応するそれぞれのサブセットに関連づ
けることが含まれる6模擬メモリ参照を定義するアレイ
命令は、定義された選択可能なポート名に結合され、F
SMに記憶される。LSMからの模擬メモリ・アクセス
信号は、それらを特定のメモリ・アクセス命令に関連づ
ける所定のパターンレこしたがって、各入出力資源サブ
セットに置換可能な形で人力される。最後に、命令セン
トがFSMで実行されて、メモリ・アレイに対するアク
セスをシミュレ−1−する。 本発明の有限状プル機械は、論理シミュレーション機械
によって供給される模擬メモリ・アクセス信号に応答し
て、機械アクセス可能な多重ポート・メモリ・アレイで
の動作をシミュレートする目的の、パイプライン・プロ
セッサである。このプロセッサは、第1の置換入出力機
構を備えている。 この置換入出力機構は、1つの機械動作サイクル中に模
擬メモリ・アクセス信号を受は取ると同時に前の機械動
作サイクル中に受は取った模擬メモリ・アクセス信号を
置換して供給する。プログラマブル入力置換メモリは、
プログラムされた所定の置換パターンに応答して、第1
の置換入出力機構の各サブセット中の受は取られた模擬
メモリ・アクセス(8号の記憶を調整する。プログラマ
ブル・シミュレーション・プロファイル・メモリは、第
1または第2の置換入出力記憶機構の対応する各サブセ
ットと関連する複数のメモリ・ポート名を定義するアレ
イ命令を受は取って記憶する。これらのアレイ命令はさ
らに、ポート名によって定義される模擬メモリ・アレイ
について実行すべき模擬メモリ参照を定義する。プログ
ラマブル出力置換メモリは、プログラムされた所定の置
換パターンに応答して、第2の置換入出力機構に記憶さ
れたメモリ・ポート出力信号を取り出す。このプロセッ
サは、またアレイ命令実行回路を備えている。 このアレイ命令実行回路は第1の入出力資源から置換可
能な形で記憶されたメモリ・アクセス信号を受は取り、
かつメモリ・シミュレーション・プロファイル・メモリ
からアレイ命令を受は取り、受は取ったアレイ命令を実
行して、受は取った置換メモリ・アクセス信号によって
確定されるメモリ・アクセス・パラメータにしたがって
、定義済みメモリ・ポート名に対するメモリ参照の実行
をシミュレートし、模擬メモリ出力信号を供給する。 E、実施例 並列処理技術を用いて設計中の論理回路の動作をシミュ
レートする論理シミュレーション機械は、当技術で既知
である。この点に関して、上段に引用した4つの論文を
参照する。第2図は、これらの論文に記載されたLSM
システムを示す。 L S Mは、制御プロセッサ10と複数の論理シミュ
レータ16.18を備えている。制御プロセッサ10は
、特定の論理設計の動作をシミュレートする際にシステ
ムが行なう種々の動作を制御し。 スケジューリングし1周期する。さらに、制御プロセッ
サ10は、シミュレーション・システムと上位/インタ
ーフェース・プロセッサの間をインターフェースする。 この上位/インターフェース・プロセッサを介して、論
理設計およびテスト・パターンの記述が、高水準プログ
ラミング言語で入力される。従来のLSM上位/インタ
ーフェース・プロセッサは、高水準設計記述を機械に理
解できる特定のシミュレーション・プログラムに翻訳す
る、コンパイラを備えている。rIBMロス・ガトス論
理シミュレーション機械ソフトウェア」と題する。上段
で引用した論文に提示されているように、従来技術のコ
ンパイラは、高水準コマンドを解釈し、コマンドを実行
するための命令のリストをアセンブルし、LSM上で使
用可能な資源の割振りをスケジューリングする能力を備
えている9LSMの資源には、制御プロセッサ10の他
にプロセッサ間スイッチ12と論理シミュレータ・プロ
セッサ16.18がある。プロセッサ間スイッチ12は
、論理シミュレータ・プロセッサの任意の1台がLSM
内の他の任意のプロセッサと通信できるようにするNX
Nクロスバ−である。 論理シミュレータ・プロセッサ16.18は周知である
。米国特許第4306286号に記載されているように
、論理シミュレータ・プロセッサ16.18は並列に動
作して、模擬論理設計の特定の部分をシミュレートし、
模擬データ信号をプロセッサ間スイッチ12を介して交
換する。 論理設計シミューレーションを開始するには、アセンブ
ルされた命令が制御プロセッサ10を通り。 プロセッサ間スイッチ12を介して、特定のプロセッサ
16.18中の命令メモリおよびデータ・メモリに送ら
れる。周知のように、コンパイラは命令をプロセッサ1
6.18に分配する能力だけでなく、各プロセッサ内で
それらの命令を順序づけ、シミュレーションに必要なプ
ロセッサ間の通信をスケジューリングする能力も備えて
いる。 基本LSM信号m位は、2つのビット、すなわち値ビッ
トと未定義ビットで符号化される4つの可能な状態を有
する。それらの状態は、未初期設定、未定義、論理0お
よび論理1である。未初期設定状態は、シミュレーショ
ン前に初期設定されていない信号状態、または、シミュ
レーションが開始しているのにまだ計算されていない信
号状層を表わす。他の3つの状態は、シミュレーション
前の初期設定の結果、またはシミュレーション中の命令
実行の結果である。以下の議論では、基本信号単位をビ
ットと呼ぶ場合、仮定された動作環境でそのビットは上
記米国特許のLSMの値ビットおよび未定義ビットを含
むものとする。しかし、以下に説明する本発明は、他の
基本シミュレーション信号単位にも適合させることがで
きることを理解すべきである。 本発明の本質は、米国特許第4306286号の従来技
術のLSMなどの論理シミュレーション機械に接続され
る、メモリ・シミュレータ20にある。メモリ・シミュ
レータ20は、プログラミングおよびハードウェア構成
の特定の構造および機能にもとづいて、多重ポート・メ
モリ・アレイをシミュレートする能力をLSMに与える
。本発明が従来技術のLSMに与える利益は、内部メモ
リを備えた通常の論理設計をメモリ・シミュレータ20
を備えていない従来技術のLSM上でシミュレートする
場合に明らかになる。そのようなシミュレーションは、
1つのメモリ記憶スペース当り1つのLSM命令を用い
ることによって行なわれる。たとえば、32X32ビツ
トのメモリを備えた論理設計では、従来技術のシステム
だとすべてのメモリ・ピッ1−に作用するのに、102
4個のLSM命令が必要となり、そのため1つの論理シ
ミュレータ・プロセッサの全計算能力を使ってしまう。 それとは対照的に、メモリ・シミュレータ20は、メモ
リ・ポート1個当り(すなわち、読取リポートまたは書
込みポート1個当り)1つの命令を使って、同じメモリ
の動作をシミュレートできる。 第1図は、メモリ・シミュレータ20の基本的アーキテ
クチャを示す。メモリ・シミュレータ20は、シミュレ
ーション・プロファイル・メモリ22、入力データ置換
回路24.アレイ命令実行アセンブリ26.実メモリ3
0.および出力データ置換回路32を備えている。シミ
ュレータ2゜には、シミュレータの動作をLSMと同期
させるための幾つかのクロックを発生する、通常のクロ
ック発生回路33も含まれている。模擬論理設計中のメ
モリは、シミュレーション・プロファイル・メモリ22
に入力される一連のメモリ・アレイ命令によって表わさ
れる。各模擬メモリは、そのメモリの読取リポートまた
は、書込みポートを表わすために必要なだけの数のメモ
リ・アレイ命令によって表わされる。好ましい実施例で
は、各メモリ・アレイ命令は、一意的な名前をもつ読取
リポートまたは書込みポートのみをモデル化する。 模擬メモリに書き込むべきデータ、作用を受けるメモリ
・セクタを識別するアドレス・データ、およびポートま
たは装置の選択を示す制御データなどの、メモリ・アク
セス・パラメータを表すすデータ信号が、論理シミュレ
ータ・プロセッサから受は取られ、入力データ置換回路
24を通過する。入力データ置換口124は、それぞれ
の信号がプロファイル・メモリ22内の特定のアレイ命
令に関連づけられるように、模擬メモリ・アクセス・パ
ラメータ信号を再配列する。以下に説明するように、入
力データ置換回路24は、アクセス命令がメモリ22に
入力される時点で回路24に入力される置換パターンに
したがって、模擬信号を置換する。メモリ・シミュレー
タ20の動作中。 模擬信号は、命令実行アセンブリ26中でそれぞれ関連
する命令と組み合わされる。実行アセンブリ中でアセン
ブルされた組合せデータは、実メモリ30に対する模擬
メモリ・アクセス動作をそのアセンブリが実行できるよ
うにするために必要なすべての模擬データ、模擬アドレ
スおよび模擬制御情報を含む。 模擬読取り動作は、データを実メモリ30から取り出し
、出力データ置換回路32を通ってLSM内の種々記憶
位置に送る。出力データ置換回路32は、模擬読取りデ
ータのLSMへの転送をスケジューリングする置換パタ
ーンを埋め込んである。 初期プログラム・ロード(IPL)操作モード中に、ア
レイ命令が、シミュレーシ式ン―プロファイル・メモリ
22に入力され、それぞれの置換パターンが置換回路2
4および32に入れられる。 シミュレーション(RUN)モードの動作中は、模擬メ
モリ・アクセス信号が、それぞれ置換回路を介して、L
SMから受は取られ、またLSMに送られる。図示した
ように、IPLモードおよびPUNモードでのLSMと
のすべての通信は、プロセッサ間スイッチ12を介して
行なわれる。 アレイ命令を使って本発明においてメモリ・ハードウェ
アがどのようにしてシミュレートされるかを理解するた
め、次に第3図および第4図を参照する。第3図は、特
定の論理設計と関連してシミュレートすべきランダム・
アクセス・メモリ(RAM)を表わす。従来と同様、R
AMは少なくとも1つのアドレス・ポート八を有さねば
ならず、アドレス・ポート八を介して、アクセスすべき
資源記憶セクタを指定するためのアドレス・データ (
ADDATA)が受は取られる。RAMに対するアクセ
スは、】、つまたは複数の書込みポート(すPORT)
または読取リポート(RDPOI’lT)によって行な
われる。書込みポートを介するアクセス動作には、もち
ろん、書込みポートに関連するアドレス・ポートに供給
されるアドレスによって識別されるメモリ・セクタに、
指定された書込みポートを介してデータを入力すること
が必要である。読取りの場合、データは、指定された読
取リポートを介して、RAMのアドレスされたセクタか
ら取り出される。従来と同様、メモリ装置の動作は。 RAMのチップ選択ポート(C8)へ供給されるチップ
選択信号Cによってゲートされる。 第3図のRAMは、3つのメモリ・アクセス・ポート、
すなわち、読取リポートRDPORT 1、第1書込み
ポートWPORT 1、および第2書込みポートwpo
訂2を有するものと仮定する。1群のメモリ・アレイ命
令が、各ポートを介する1つのメモリ参照を完全に定義
する。その命令は、3111である。 すなわち、 RD[’0RT1を介する読取り動作に対
応するアレイ命令1、WI’ORT 1を介する書込み
動作に対応するアレイ命令2.および11”ORT 2
を介して行なうべきデータ入力動作に対応するアレイ命
令3である。 実メモリ30は、シミュレーション中に実行すべき各メ
モリ・アクセス命令に正しいメモリ応答を与えるために
使用される。実メモリは、シミュレ−1−すべきメモリ
・デバイスと同じ数のセクタに分割される。特定のメモ
リ・デバイスに対応するアレイ命令は、すべて実メモリ
の°同一区画セクタにマツピングされる。大部分の場合
、特定のメモリ・デバイスに対応するアレイ命令には、
すべて共通の実メモリ・ベース・アドレスが割り当てら
れる。例外については下段で考察する。 メモリ・シミュレーションがコンパイルされるとき、実
メモリ30はシミュレートすべきメモリ・デバイスに応
じて区分される。各メモリでシミュレートすべき各動作
に対する模擬データ、模擬アドレスおよび模擬制御信号
の値が、入力データ置換回路24で収集される。読取り
動作または書込み動作が、関連するアレイ命令によって
示される場合、メモリ・シミュレータ20は、そのメモ
リ・デバイスに割り当てられたセクタに対する実メモリ
・ベース・アドレスと、模擬アドレス信号によって表わ
されるアドレスとからなる合成アドレスにより、実メモ
リ・アクセスを実行する。メモリ読取り動作がシミュレ
ートされる場合、データは合成アドレスによって示され
る実メモリ位置から得られ、出力データ置換回路32を
介してステージングされる。 メモリ・シミュレータ20のRUNモードは一連のサイ
クルに分割され、その各サイクル中に、シミュレーショ
ン・プロファイル・メモリ22内のメモリ・アレイ命令
のすべてが一度実行される。 データ、アドレス、および制御ビットを表わす模擬信号
値が1−サイクルの間に入力データ置換回路24中に収
集されて配列され1次のサイクルで別の1組の模擬信号
がアセンブルされる間に、取り出されて検査される。1
サイクルの間に実メモリ30から得られた読取りデータ
は、そのサイクル中、出力データ置換回路32に保持さ
れ、次のサイクルで、プロセッサ間スイッチ12に送ら
れる。 次に、メモリ・シミュレータ20の構造および動作につ
いて詳細に説明するため、第5A図、第5B図および第
6図を参照する。メモリ・アクセス命令は、シミュレー
ション・プロファイル・メモリ40、アドレス・カウン
タ兼比較回路42、およびアクセス命令プロファイル・
ラッチ44を備えたアクセス命令回路内に記憶され、そ
こから供給される。シミュレーション・プロファイル・
メモリ40は、実行すべき各アレイ命令ごとに1つの3
1ビツト・データ・ワードを記憶する31ビツト×25
6ワード・メモリである。アクセス命令は、アドレス・
カウンタ兼比較回路42の制御のもとに、記憶された順
にシミュレーション・プロファイル・メモリ40から読
み取られる。 アドレス・カウンタ兼比較回路42は、進行中のシミュ
レーションの各サイクル中に実行すべきアレイ命令の数
に対応する2進数を受は取るための、8ビツト・レジス
タを備えている。たとえメモリ・シミュレータ20が進
行中のシミュレーションの間使用されない場合でも、シ
ミュレーション期間中実メモリ30が必要とするリフレ
ッシュ命令の数に対応する初期2進数を受は取らなけれ
ばならない。回路42のカウンタは、ゼロから、実行す
べきアレイ命令の数に対応する所定の2進数までカウン
トすることができる。そのカウント出力が、シミュレー
ション・プロファイル・メモリ40をアドレスするため
に使用され、カウンタがゼロから所定の2進数までカウ
ントされるにつれて、メモリ4o中に保持されたアレイ
命令が順にアドレスされる。アドレス・カウンタ兼比較
回路42は、さらに、現在のカウンタ出力と受は取った
2進数を比較する機能を備えている。カウンタ出力が2
進数値に等しくなると、カウンタは停止する。命令の数
を表わす2進数よりもカウンタ出力が小さい間は、信号
線43上の信号は、メモリ40中でアドレスされた現在
の命令が有効な命令であることを示す。カウンタ出力が
2進数値に等しくなると、線43上の信号は、実行すべ
き命令がもはやないことを示す9 各命令は、プロファイル・メモリ40から読み取られる
と、アレイ命令プロファイル・ラッチ44に入力される
。アレイ命令のフォーマットが理解しやすいように、ラ
ッチ44は実行すべき各アレイ命令のフォーマットに応
じて細分された32ビツト・レジスタを含んでいる。ア
レイ命令の最初のフィールドは実メモリのベース・アド
レスを含む。このベース・アドレスは、アレイ命令が表
わすボー]−を有するメモリ・デバイスに割り当てられ
た記憶セクタを定義する。好ましい実施例では、このベ
ース・アドレスは、シミュレート中のメモリ・デバイス
内のアドレス・ゼロに対応する。 アレイ命令内の次のフィールドは、シミュレート中のメ
モリ・デバイスのアドレス幅を示す。たとえば、アドレ
ス幅4は、16ワードの記憶容量を有するメモリ・デバ
イスを定義する、4ビツトのアドレス・フィールドを意
味する。この値は、後述のアドレス生成論理で実メモリ
・アドレスを計算するときに使用され、特定の模擬メモ
リ・デバイスに対して有効である所定の最大数のビット
のうち何ビットがアドレス・ビットであるかを決定する
。 アレイ命令のRAMタイプ・フィールドは、実行中のア
レイ命令のタイプを示す。このフィールドは、1つの状
態が読取リポートを介する参照を示し、逆の状態が書込
みポート参照を示すようになっている1ビツトからなる
ことが好ましい。 ワード幅フィールドは、シミュレート中のメモリ・デバ
イスのワード・サイズを示す。この値は、現アレイ命令
に対して有効な所定の最大ビット数のうち何ビットがデ
ータ・ビットであるかを指定するために、下段で説明す
る出力メモリ制御が使用する。所定の最大ビット数は、
実メモリのワード・サイズ(幅)を表わす。したがって
、たとえば、実メモリが36ビツl−幅で、呪アレイ命
令がワード幅8ビツトのアレイをシミュレートしている
場合、ワード幅フィールドの内容は8になる。 最後にリフレッシュ命令フィールドは、メモリ参照動作
をシミュレートする目的の有効なアレイ命令と、実メモ
リ上で実行すべきフレッシュ動作とを区別するために、
下段で説明する複合論理が使用する単一ビットからなる
。アレイ命令プロファイル・ラッチ44は、アレイ命令
フィールドの他に、アドレス・カウンタ兼比較回路42
によって供給される有効命令標識も受は取る6 各主サイクル中にスイッチ12を介してメモリ・シミュ
レータ20に受は取られたメモリ・パラメータ・シミュ
レーション・データは、所定の置換パターンで記憶され
る。このパターンは、ユーザによって入力されたプログ
ラムのコンパイルによってメモリ・シミュレータのデー
タ取入れ動作に課せられるスケジューリングを表わす。 この意味で、!換とは、主サイクル中に到着した個々の
データ単位を、プロセッサ間スイッチ12からメモリ・
シミュレータへ流れるデータ・シーケンス中での位置に
関係しない記憶セクタに記憶することである。このよう
な置換が必要なのは、メモリ・データ、アドレスおよび
制御信号に関係するメモリ・アクセス・パラメータ信号
が、論理シミュレーション・プロセッサ16.18の独
立した動作によって生成されるためである。 メモリ・シミュレータの入力メモリ46は、一対の同じ
記憶メモリを備えており、この記憶メモリの各々は、第
5A図の概略図では、6つの記憶要素を有し、それらは
他方のメモリの記憶要素と交互に配置されている。各記
憶要素は、1ビツトX1024の記憶位置を有するメモ
リ・デバイスである。メモリ46の2つのメモリの一方
は、Δ/INメモリと呼ばれ、他方はB/INメモリと
呼ばれる。1サイクル中に、メモリ・シミュレータに流
入するデータは、2つのメモリの一方に置換され、一方
、前のサイクル中に置換されたデータがもう一方のメモ
リから順次読み取られる。 メモリ46についてさらに説明すると、A/INメモリ
およびB/INメモリは、それぞれ一対の同じメモリ要
素を含む3つのセクションからなる。前記米国特許のL
 S Mにおける単位シミュレーション信号は、「値」
ピッ1へおよび「未定義」ビットと呼ばれる2つのビッ
トからなるので、メモリ要素は好ましい実施例では対に
なっている。 この対になったデータ構造は、特定のタイプの論理シミ
ュレーション構成に関連して本発明の好ましい実施例の
動作を理解しやすくするためにすぎない。実際には、メ
モリ46(および以下に説明する出力メモリ80)は、
メモリ・シミュレータ20が動作するシミュレーション
環境の基本信号単位を許容できるものであれば、どんな
構造でもよい。 次に、RUNモード中のメモリ46の書込み動作および
読取り動作をA、/INメモリについて説明する。B/
INメモリの場合も全く同じ説明になることは当然であ
る。 RU Nモード中に、A/INメモリが邸き込まれるど
き、現在使用可能な信号がどのアドレスに記憶されるか
は、入力置換メモリ50の出力によって決定される。好
ましい実施例の入力置換メモリは、1024ワードを線
形順序で記憶し、各ワードは12ビット幅である。記憶
された各ワードが、現在使用可能な信号を記憶すべきA
/INメモリ内の一意的アドレスを定義する。入力置換
メモリ50は各主サイクルで順次ステップされ、A/I
Nメモリに書込みアドレスを供給する。このため、シミ
ュレート中の特定の論理設計のコンパイルによって課せ
られる置換順序でΔ/INメモリに書き込むことが可能
になる。入力置換メモリ50は、各主サイクル毎に0か
ら1024まで単純にカウント・アップされる遅延側サ
イクル・カウンタ52によってアドレスされ、入力置換
メモリ・アドレスを順次供給する。好ましい実施例では
、遅延カウンタ52は、各主サイクルの始めに「−5」
に設定され、サイクルが開始すると、−5からカウント
・ダウンされる。遅延カウンタ52を−5の初期値にプ
リセットするのは、プロセフサ間スイッチ12から有効
な入力データが受は取られる前に消費される5つのLS
Mパイプライン・クロックを考慮に入れるためである。 A/INメモリ要素は、書き込まれるとき、上述のよう
に対になってアクセスされる。入力置換メモリ50から
現在使用可能な書込みアドレスの高位2ビツトが、メモ
リ要素のどの対に書き込むべきかを選択するため、複合
される。残りの10ビツトは、現在使用可能な信号を書
き込むべき選択された対の要素中のアドレスを定義する
。したがって、シミュレーション信号を形成し、特定の
アレイ命令に対する1つのデータ・ビット、制御ビット
またはアドレス・ビットを表わす2ビツトが、選択され
たA/INメモリ要素対内の同じアドレスに書き込まれ
る。前述のように、入力置換メモリ50は、メモリが所
期の任意の順序で書き込めるように、A/INメモリに
アドレスするために使用される。特定の順序が必要であ
り、入力置換メモリ50が、IPLモード中での適正な
順序に対応する順序でA/INアドレスを受は取ること
は、自明のはずである。この順序を、プログラム式置換
パターンと呼ぶ6 上段で論じたように、本発明の議論を組み立てるために
使われている特定の動作環境では、遅延カウンタ52を
「−5」または1019にプリセットすることが必要で
ある。したがって、最初の5つの無効信号は、入力置換
メモリのアドレス1019〜1023に書き込まれる。 プロセッサ間スイッチ14から最初の有効信号が到着す
ると。 入力置換メモリのアドレス0に書き込まれ1次の有効デ
ータは、入力置換メモリのアドレス1に書き込まれ、以
下同様にして、最後の有効データは。 入力置換メモリのアドレス1023に書き込まれる。 RUNモードの読み取りにおいては、3つのA/INメ
モリ要素対がすべて同じアドレスで同時にアクセスされ
る。アドレスは1通常の12ビツト・カウント装置であ
るAIN/BINアドレス・カウンタ54から得ること
ができ、アドレス・カウンタ54の現カウントがA/I
Nメモリに対する読取リアドレスとして使用される。カ
ウンタS4の低位10ビツトのみがA/INメモリをア
ドレスするために使用される(高位2ビツトは無視され
る)。カウンタ54は、サイクル毎にアドレス0からア
ドレス1023まで増分式にカウントされる。 A/INメモリおよび13/INメモリは、アドレス・
マルチプレクサ55の動作によって、各主サイクル毎に
その役割を交替する。アドレス・マルチプレクサ55は
、アドレス信号およびR/W制御信号をメモリ46の個
々のメモリ要素に供給する。したがって、たとえば1サ
イクル中に、アドレス・マルチプレクサ55の働きによ
り、各A/INメモリ要素がメモリ読取り動作を示す制
御信号およびAIN/BINアドレス・カウンタ54の
低位10ビツトを受は取り、現在アドレスされている入
力置換メモリ記憶位置の高位2ビツトで示されるB/I
Nメモリ要素対が書込み制御信号および現在アドレスさ
れている入力置換メモリ記憶位置の低位10ビツトを受
は取る。次のサイグルでは、これらの機能が反対になる
。 模擬メモリ・アクセス・パラメータは、AIN/BIN
ラッチ58内でそれぞれのアレイ命令と組み合わされる
。ラッチ58は、2つの論理部分からなる。すなわち、
メモリ46から供給されるメモリ・アクセス・パラメー
タをステージングするための部分と、アレイ命令プロフ
ァイル・ラッチ44から受は取ったアレイ命令を記憶し
、転送するためのもう1つの部分からなる。ラッチ58
の最初の部分は、さらにそれぞれのタイプのアクセス・
パラメータに対応する3つのフィールドに細分される。 ラッチ58の最初の部分の各フィールドにステージング
される3つのアクセス・パラメータは、第5A図で「書
込みデータ」、「制御」および「アドレスJとして示さ
れている。したがって、メモリ書込み動作中に書き込む
べき模擬データは書込みデータ・フィールドに記憶され
、制御ビット(チップまたはポート選択信号)は制御フ
ィールドに送られ、シミュレート中のメモリに対する現
アレイ命令によって参照されるメモリ・アドレスはアド
レス・フィールドにラッチされる。 好ましい実施例では、これら3つのラッチ・フィールド
は、それぞれ直列シフト・レジスタを構成し、各シフト
・レジスタはメモリ46の現在読取り中の部分から直列
パラメータ信号ストリームを受は取り、それをメモリ・
シミュレータ・パイプラインの次の段に並列シフトする
ため順次フォーマットに配列する。 AI:N/BINラッチ58のもう一方の部分は。 プロファイル・ラッチ44からシフ1−されるアレイ命
令を記憶する。メモリ46からのメモリ・アクセス・パ
ラメータ・データとアレイ命令を組み合わせると、シミ
ュレート中の特定のメモリの指定されたポートで実行す
べきメモリ参照動作を定義するために必要な完全な1組
の情報が確定される。この点に関して、ラッチ58内の
記憶フィールドを参照すると、ベース・アドレス・フィ
ールドは、どの模擬メモリ要素が操作されるのかを示し
、R,A Mタイプフィールドは実行すべき参照動作の
タイプ(読取りまたは書込み)を定義し、参照動作が書
込み動作の場合は、書き込むべきデータは書込みデータ
・フィールドにあり、定義された動作を実行すべき模擬
アドレスはアドレス・フィールドにあり、制御フィール
ドの値は、模擬選択信号を模擬デバイスに供給すべきか
否かを決定する。 制御複合回路60は、ラッチ58の制御フィールド・ア
ドレス・フィールド、RAMタイプ・フィールド、リフ
レッシュ命令フィールドおよび有効命令フィールドに含
まれる情報を複合するための通常のゲート・アレイから
なる。制御復号回路60は基本的には4状511i械で
あり、読取り状態、書込み状態、リフレッシュ状態また
はノー・オペレーション状態をとる。 制御復号回路60は、アレイ命令がリフレッシュ命令で
はなく、有効であり、読取り動作を定義するとき、およ
び制御信号がポートまたはチップ選択の状態にあるとき
、読取り状態に入る。復号回路60の書込み状態を決定
する条件は、RAMタイプ信号が書込み動作を示す点以
外は、読取り状態に対する条件と同じである。読取り状
態および書込み状態を決める追加的条件は、ランチ58
の制御フィールドおよびアドレス・フィールド内の未定
義ビットが、制御およびアドレス複合信号が定義されて
いることを示す状態であることである、復号回路60は
、有効なリフレッシュ命令がプロファイル・メモリから
ラッチ58に入力されたとき、リフレッシュ状態に入る
。最後に、命令が無効であることを有効命令フィールド
が示すか。 または未定義の制御ビットまたはアドレス・ビットがセ
ットされると、復号回路60は、どのオペレーションも
実行しない(No  OP)ことを示す。 呪アレイ命令を実行すべき実メモリ・アドレスは、実ア
ドレス生成回路62によって生成される。 実アドレス生成回路62は、ラッチ58のアドレス幅フ
ィールドを用いて、アドレス・フィールド内のどれだけ
多くのビットが呪アレイ命令に対して有効であるかを決
定する。有効なアドレス・ビットが復号され、ラッチの
ベース・アドレス・フィールド内のベース・アドレスに
加えられる。その結果、特定のメモリ参照動作用の実メ
モリ・アドレスが得られる。 制御復号回路60の状態および実メモリ・アドレスが決
定されると、メモリ・シミュレータの動作の流れは第5
B図の命令実行回路に移る。 命令実行回路は、実アドレス・ラッチ64、実メモリ・
インターフェース制御回路66、ゲート/ドライバ回路
68を備えている。実アドレス・ラッチ64は、ラッチ
58の書込みデータ・フィールド内のデータ、制御復号
回路60によって復号される4つの状態の1つを定義す
る一対の制御ビット、実アドレス生成回路62によって
生成された実アドレス、およびラッチ58のRAMタイ
プ、ワード幅および有効命令フィールド内のデータを受
は取る。制御ビットおよび有効命令信号が。 実アドレス・ラッチ64の対応するフィールドから実メ
モリ・インターフェース制御回路66に供給される。実
メモリ・インターフェース制御回路66は、埋込まれた
プログラムによって制御される通常のプログラマブル論
理からなり、この論理は、制御復号回路66しこよって
定義される現在の状態および有効な命令情報に応答して
、実メモリ70に対して実行される動作を制御する。 第7図は、実メモリ・インターフェース制御回路66の
動作を表わす状態図である。この動作は、最初の待ち状
態を含んでおり、制御復号回路60がN0OP(ノー・
オペレーション)信号を発生するときはいつでも、回路
は待ち状態に留まる。 復号回路60が書込みコマンドを発生し、実アドレス・
ラッチ64内の命令が有効であり、かつメモリ・シミュ
レータがRUNモードにあるときは常に、記憶サイクル
が始まる。同様に、復号回路60が読取り動作を実行す
べきことを示し、アドレス・ラッチ命令が有効であり、
さらにシミュレータがRUNモードにあるとき、制御回
路66は、取出しサイクルに入る。記憶サイクルおよび
取出しサイクル中、制御回路66は、ゲート/ドライバ
回路68に設けられた複数の制御線67上に適当な制御
信号を生成するにれらの線は、模擬メモリ参照を定義す
るメモリ・アクセス信号を、実メモリ70を動作させる
のに適した制御信号の形で伝え、またゲート/トライバ
回路68が実アドレス・ラッチ64に保持された実アド
レス書込みデータ、および制御ビットをメモリ70に供
給できるようにする実アドレス/書込みデータ/制御ビ
ット・ゲーティング信号を伝える。メモリ・アクセス信
号およびゲーティング信号は、メモリ70が適切に動作
するように、適切な順序で指定された時間の間提示され
る。 したがって、ラッチ64に現在保持されている命令が書
込み動作に対応するとき、制御回路66は適切な信号を
ゲート回路68に順次送って、ゲート回路に、制御信号
、計算された実メモリ・アドレス、および記憶すべきデ
ータを適切な順序で実メモリ70に供給させる。同様に
、読取り動作に対応する参照の場合、インターフェース
制御回路66は、実メモリ70からデータを読み取るた
めに必要な順序で、制御信号および計算された実アドレ
スをゲート回路68に供給する。さらに、実メモリ取出
しサイクルの終りに、制御回路66は線69にクロック
・パルスを供給する。このクロック・パルスは取り出さ
れたデータを実メモリ出力ラッチ72にロードさせ、し
たがって、得られたデータを出力置換回路へ転送するた
めにラッチすることができる。 制御回路66は、メモリ・シミュレータ動作のスタート
アップ時に、またはリフレッシュ動作を行なうことなく
所定のリフレッシュ・タイムアウト期間が経過したとき
、常に、前述の条件下でリフレッシュ・サイクルに入る
。リフレッシュ・サイクルでは、制御回路66が、実メ
モリ70上で通常のリフレッシュ動作を実行するため、
ゲート回路68を介して適切な信号を供給する。 図に示したように、実メモリ出力ラッチ72は、制御回
路66からのクロック・パルスの制御下で、実メモリ7
0から読み取られたデータをラッチする。実メモリ7o
はメモリ・シミュレータ論理の残りの部分に対して非同
期であるので、読み取られたデータは、メモリ・シミュ
レータがそれを使用する準備が整う前に、使用可能であ
る。したがって、データは出力置換回路に転送可能にな
るまで、ラッチ72内に保持される。以下の第5B図の
説明では、実メモリ70および実メモリ出力ラッチ72
は共に、好ましい実施例の動作環境に対して定義された
基本信号単位を記憶する機能を有する。すなわち、各信
号単位の「値」ビットおよび「未定義」ビットを記憶す
る。 実メモリ出力ラッチ72にラッチされたデータは、出力
データ置換回路に転送される。 出力データ置回路は、メモリ・データ・ラッチ74、書
込み制御兼書込みアドレス生成論理回路76、副サイク
ル・カウンタ77、出力置換メモリ(OPM)78.値
セクション80aと未定義セクション80bからなるA
10UTおよびB/○UT出カメモリカメモリに参照番
号82aおよび82bによって示される2つの部分から
なるアドレス・マルチプレクサからなる。 メモリ・データ・ラッチ74は、ラッチ64に保持され
ている実行されたばかりの動作に対するワード幅および
RAMタイプと共に、実メモリ読取り動作の結果を出力
ラッチ72から受は取るラッチからなる6書込み制御兼
書込みアドレス生成論理76の制御下で、ラッチ74内
の読取りデータが直列にタロツク・アウトされて、A/
○UTまたはB10UTメモリに書き込まれる。ワード
幅およびRAMタイプ・データは、どれだけ多くの読取
りデータ・ビットを選択されたメモリに書き込むかを制
御するために、論理回路76が使用する。 書込み制御兼書込みアドレス生成論理76は。 データ・ラッチ74からA10UTメモリまたはB10
UTメモリへの模a読取りデータの転送を制御する。こ
の転送は、信号経路83上で供給されるシフト・タロツ
ク信号および複合信号経路85」二で供給されるアドレ
ス信号と書込みイネーブル信号によって制御される。デ
ータ経路83上のシフト・クロック信号は、実メモリ7
0からメモリ・データ・ラッチ74に並列に入力された
データを直列にシフトする。直列にシフトされたデータ
は、1サイクル毎に交互にΔ/ OU Tメモリおよび
B/○UTメモリに送られ、値ビットはメモリ要素対8
0aの一方に進み、未定義ビットはメモリ要素対80b
のそれに対応する1つに進む。 直列にシフトされたデータを入力するための書込み制御
は、複合データ経路85上のアドレス信号および書込み
イネーブル信号によってもたらされる。アドレス信号は
、直列にシフトされたデータが記憶される宛先メモリ内
のアドレスを定義し。 書込みイネーブル信号は直列にシフトされたデータを、
指示されたメモリ位置に入力させる。 シフト・クロック、書込みアドレスおよび書込みイネー
ブル信号を生成するため、論理76は。 各サイクルの始めにゼロにリセットされる書込みアドレ
ス・カウント機能を備えている。次に、サイクルが進む
につれ、アレイ読取り命令がラッチに到達したことをメ
モリ・データ・ラッチ74のRAMタイプフィールドが
示すたびに、論理76は書込みアドレスを増分する。R
AMタイプ・フィールドがアレイ読取り命令を示すたび
に、書込みアト
【/ス・カウントがワード幅フィールド
内の値に等しい合計だけ増分される。これは出力メモリ
に書き込まれるビットの数を、読取り動作を開始させた
アレイ命令によってシミュレート中のワード幅までに厳
密に制限する。ワード幅フィールドの値が、データ・ワ
ードが実メモリのワード・サイズより小さいことを示す
場合は、メモリ・データ・ラッチ74内の余分なデータ
・ビットは無視される。所望のビットがA10UTメモ
リまた1まB10tJTメモリに書き込まれたとき、生
成論理76は、書き込まれたばかりのワードに続く最初
の空のメモリ位置を指す6次の読取りデータ・ワードの
最初のビットが、ポインタによって指示される記憶位置
に記憶される。したがって、読み取りデータは出力メモ
リ内に連続して記憶される。 好ましい実施例では、読取り動作がラッチ74のRA、
 Mタイプ・フィールドによって示されたときにN0O
Pが生じた場合、(たとえば、未定義ピッi−が制御復
号回路60によって検出されたとき。 あるいは読取リアレイ命令に関連する制御ビットがアク
セスを示さないときなど)1選択されたメモリに未定義
データが書き込まれる。 副サイクル・カウンタ″77および出力置換メモリ(O
PM)78の相補動作により、データがサイクルごとに
出力メモリから取り出される。副サイクル・カウンタ7
7は、RUNモード中にOI’M78をアドレスするた
めに使われる1、0ビツト・カウンタである。有効デー
タをメモリ・データ・ラッチ74にもたらすために必要
なパイプライン・クロックの数を考慮して、副サイクル
・カウンタ77は各サイクルの始めに−3にリセットさ
れる。 OPM78は、それぞれ10ピッ!−のワードを102
4個記憶できる容量を有する、通常の方法でアドレス可
能なメモリ要素である。OPM78は、副サイクル・カ
ウンタ77の動作により、各主サイクルごとに順次ステ
ップされ、A10UTメモリまたはB10IJTメモリ
に読取リアドレスを供給する。このため、Δ/○UTメ
モリおよびB10UTメモリを任意の順序で読み取るこ
とができ、それらのメモリに記憶されたデータが置換で
きる。 A10UTメモリおよびl310UTメモリは。 アドレス・マルチプレクサ82aおよび82bの動作に
より、各サイクルごとに読取りおよび書込みを交互に行
なう6したがって、1サイクル中にOP M 78から
の読取リアドレス信号と、マルチプレクサに関連する組
合せ論理(図示せず)で生成される読取リイネーブル信
号がA10UT、またはB10UTのどちらか一方に供
給され、一方、生成論理76からの書込みアドレスおよ
び書込みイネーブル信号がもう一方のメモリに供給され
る。 メモリ・シミュレータのパイプライン動作は、第6図を
参照すると理解できる。第6図には、ロード書込み可能
化クロック(LWE)、プロセッサ・クロック(PCK
)、アドレス・レジスタ・クロック(ARCK)、パイ
プライン・クロック#1(RCKI)、パイプライン・
クロック#2(RCK2)、 入出力クロック(IOC
K) 、?スタープロセッサ・クロック(M P G 
K)およびサイクル事前ロード/クリア(RΔR)信号
が示されている。MPCKを除くすべてのクロックは、
第1図のグロック発生器33に対応する通常のクロック
回路(図示せず)によって供給される。これらのクロッ
クは、最終的にはLSMから得られるI。 WEクロックから導かれる。MPCK信号およびRAR
信号は制御プロセッサ10から供給される。 LWEクロックは外部ソースから受は取られる。 好ましい実施例では、LWEクロックは制御プロセッサ
10から直接量は取られる。LWEクロックは、周期が
約167ナノ秒で接続時間が50ナノ秒のパルスを出す
ことが好ましい。メモリ・シミュレータ20がRUNモ
ード中、LWEクロックは連続したパルス・ストリーム
である。A/TNメモリおよびB/INメモリ46に対
する書込みイネーブル信号は、RUNモード中にLWE
タロツクから直接得られる。l0CK、PCKおよびA
RCK信号は、LWEクロックを反転し1反転された波
形を50ナノ秒だけ遅延させることによって得られる。 l0GKは、RUNモードではLWEの19番目のパル
スごとに(失なわれたパルスに等しい間)非活動状態に
留まる。ARCKは、RUN動作モード中、遅延副サイ
クル・カウンタ52および副サイクル・カウンタ77を
刻時するために使用される。したがって、データがメモ
リ46を介してメモリ・シミュレータ20に入力されて
いるとき、IPM50のアドレスが、ARCKの各パル
スの特定の遷移時に、遅延副サイクル・カウンタ52に
よって増分される。LWEの次のパルスの対応する遷移
時に、データがメモリ46に書き込まれ、それにより、
模擬データ・アクセス・パラメータのメモリ46への書
き込みのための適切なタイミングが確立される。メモリ
46および80a、80bからデータを読み取る場合に
ついても、同様なタイミング関係が確立される。 IOCK信号は、アドレス・カウンタ54に供給され、
またΔI N/B I Nラッチ58の直列にシフトさ
れる書込みデータ、制御およびアドレス・セクションに
供給されて、アドレス・カウンタ54のカウント・セク
ションによって入力メモリ46から直列に読み取られる
データをそれらのセクションにクロック・インする。カ
ウンタ54は、l0CKに応答してカウント・アップさ
れるので、ラッチ58の直列入力サブセクションでI 
OCKを使用すると、メモリ46からそれらのサブセク
ションへのデータの転送が同期される同様に、ARCK
はOPM78からの読取リアドレスをLWEに同期して
変更させ、それにより、データがメモリ80a、80b
からスイッチ】2に確実に転送されるようにする。 メモリ・シミュレータ20は、パイプライン・クロック
RCKIおよびRCK2が整相されているため、パイプ
ライン方式で動作する。RCK 1は主パイプライン・
タロツクであり、PCKから導かれ、RUNモードの間
だけ活動状態になる。 RC:に1はPCKの最初のパルスと共に発生し。 その後はPCKパルス19個ごとに1回発生する。 第2のパイプライン・クロックRCK2も、PCKから
導かれ、RUNモードの間だけ活動状態になる。RCK
2は、PCKのパルス19個ごとに1回発生し、RCK
lの直前に発生するPCKパルスと一致する。 メモリ・シミュレータのパイプライン動作を、第8図に
示す。第8図はプロファイル・メモリ40からの連続し
た3つの命令の経路を示す。読み取られる最初の命令l
N5Tiは、実メモリ70を読み取ることを要求する命
令であると仮定され、(R,) で示される。2番口の
命令I N S T jは書込み(W)命令であり、3
番目の命令rNsTkはもう1つの読取り(R)命令で
ある。パイプライン・クロックの整相は、第8図のグラ
フの最上部に左端から右端まで水平に示されている。 そのシーケンスは次の通りである。RCKIが最初に発
生したとき、lN5Tiは命令プロファイル・ラッチ4
4にラッチされ、アドレス・カウンタ兼比較回路(AC
C)42は、lN5Tjが記憶されているアドレスまで
増分される。RCKlの最初の発生から次のRCK2ま
での間、シミュレーション・データSDi、すなわち模
擬読取リアドレスを定義するデータおよびlN5Tiに
対する制御ビットがl0CKによってA/INメモリま
たはB/INメモリからΔI N/B I Nラッチ(
ABL)58へ直列にシフトされる。次に。 ラッチ44への命令転送およびラッチ58への対応する
読取りパラメータ・データの転送に続く最初のRCK2
で、lN5Tiはラッチ58にラッチされる。lN5T
iがラッチ58にラッチされると直ちにその命令に対す
る制御の復号および実アドレスの生成が行なわれる。 2番目のRCKIが発生するとき、I N S T i
に対する制御ビットおよび生成された実アドレスが、命
令のRAMタイプ、ワード幅および有効命令フィールド
内の情報と共に、実アドレス・ラッチ(RAL)64に
クロック・インされる。同時に、lN5Tjがラッチ4
4に入り、ACCカウントが増分されてlN5Tkを指
す。 2番目のRCKlが発生してからRCK2が次に発生す
るまでの間、実メモリ70がラッチ64内の実アドレス
で読み取られ、読み取られたデータが実メモリ出力ラッ
チ(RMOL)72内にラッチされる。同時に、メモリ
参照のためのシミュレーション・データSDj (書込
み、制御およびアドレス)がラッチ58に直列に入力さ
れて、工N5Tjに必要な記憶動作を実行するための条
件を設定する。 R,CK 1が2度目に発生した後のRCK2パルスで
、lN5Tiの実行中に実メモリから取り出されたデー
タが、実メモリ出力ラッチ72からメモリ・データ・ラ
ッチ(MDL)74に入力される。」二連したように、
このデータは上述の生成論理76の動作によってラッチ
74からメモリ80a、80bにシフトされる。同時に
、lN5Tjに必要な記憶動作が、制御ビットの復号お
よび実メモリ・アドレスの生成によってセットアツプさ
れる。 3番目のRCKIが発生すると、書込みデータ、制御ビ
ットおよび実メモリ・アドレスが、lN5TjのRAM
タイプ、ワード幅および有効命令フィールド内の情報と
共に、ラッチ64に入力され、続いてその命令に対する
記憶動作が実行される。 3番口のRCKIが発生すると、I N5Tkがラッチ
44に入り、この命令も、最初の命令の場合と同様の進
行になる。 実メモリ70.入力メモリ46および出力メモリ80a
、80bがそれぞれメモリ・シミュレータ2oの動作中
にどのように区分され、アクセスされるかを理解するた
め、次に第9図、第10A図ないし第10C図および第
11八図ないし第11C図を参照する。第9図に示すよ
うに、シミュレーション・プロファイル・メモリ(SP
M)40は、上で説明した順にアクセスされる連結した
アドレスに記憶された命令を有する。次に、SPMアド
レス位置Oにある最初の命令lN5TROを参照すると
、この命令の1つのフィールドは実メモリ・ベース・ア
ドレスBADDiを含んでおり、この実メモリ・ベース
・アドレスBADDiは、命令rNSTROによってシ
ミュレ−1−されるメモリ参照に対するデータが保持さ
れている実メモリ70内の最初のアドレスを定義する。 実メモリ70における命令lN5TRO専用のフィール
ドはBΔDDi+ (J−1)で終る。ただし、、Jは
命令I N S TROのアドレス幅フィールド中の値
である。同じ模擬メモリ・デバイスに対するメモリ参照
を表わすSPM40内の他の命令も。 ベース・ア1〜レス13ΔDDiを有する。たとえば。 命令I N S TROが力込み動作にシミュレ−1・
する場合、書込まれたデータに対して読取り動作を実行
すべきことがある。この場合、後続の読取り動作は、 
I&出しU+作により、命令lN5TROによって記憶
位V!11′(ΔDDiを開始位置として実メモリ70
に1・き込まれたデータに対して実行されることになる
。メモリ70の区分は、IPL中に行なわれ、コンパイ
ラによるベース・アドレスのアレイ命令への割り当てに
よって実現される。 入力メモリ46は、IPL中に区分される。この区分は
、第10A図を参照すると理解できる。 第10A図はメモリ4GのA/IN部分の3つの要素対
を示すが、以下の説明はメモリのB/IN部分しこ対し
ても有効であること髪理解すべきである。Δ/INメモ
リの要素対の各要素は、1ピッ+−x L O24位置
の記憶デバイスからなる。好ましい実施例では、長さが
最大736ビノ1−までのワードを最大G’lKの記憶
位置に記憶する能力を有するメモリ・デバイスのシミュ
レーションに対liユできるようになっている。したが
って、Δ/INメモリ対は、各命令に対する制御ピッ1
−に加えて最大サイズのワードおよびアドレスを受は取
れるようにされる。このことは、第10A図では5次の
ようにA/INメモリ要素を17.分することによって
示されている。SPM40中の各命令について、したが
って、各模擬ポートについて、同し18個の記憶スペー
スがA/lN5Sl14の各々で予約され、最初の要素
対中のスペースはデータ・ワードの最初の18ビット専
用、第2の要素対中の同じ記憶セクタはデータ・ワード
の第2の18ピント専用、第3の要素対中の対応する記
憶セクタは16個のアドレス・ピントおよび1つの制御
ビット専用になっている。第10Δ図に示すように、こ
の結果、すべてのA/IN対の各¥tli4中の最初の
18個の記憶スペースは、最初の命令用のシミュレーシ
ョン・データの累算専用になる。 j:、サイクル中にスイッチ12からメモリ46に流入
するデータの置換を第10B図に示す、上述のように、
入力に換メモリ(IPM)50は1024個の別個にア
ドレス可能な記憶スペース髪有し、その各々にスイッチ
IZからのシミュレーションず3号が記憶されている。 メモリ46内のアドレスが記憶される。コンパイラは、
各サイクル中に模擬メモリ・アクセス信号のメモリ・シ
ミュレータへの伝達をスケジューリングする能力を有す
る6その伝達スケジュールが、rpr、モード中にI 
P M 50 ニ記憶されたΔI N/B I Nメモ
リ・アドレスに反映される。RtJNt−Nモード中M
アドレスが順に供給され、それにより、現在供給中の信
号ピッ1へを記憶すべきアドレスが出力される。@に示
すように、アドレスの上位2つのMSBが3つのメモリ
要素対のうちの1つを選択するためにデコーダ51で復
号され、10個のLSI3は、現在使用iiJ能な値ビ
ットおよび未定義ビットを記憶すべき4択されたメモリ
対中の特定のアドレスを指定する6 第10C図は5Δ/INメモリ対に記憶されたデータの
読取りを示す60;I述のように、アドレス・カウンタ
54の制御下でメモリ46からデータが順次読み取られ
る。アドレス・カウンタ54は、各主サイクルの始めに
〇にリセットされ、0から1023まで増分式にカウン
トし、その結果、Δ/IN対に記憶されたデータがΔI
 N/B T Nラッチ58に順次読み出される。ラッ
チ58の最初の3つのフィールドは、3対の直列入力並
列出力シフト・レジスタに記憶される。これらのレジス
タは、第10C図では参照番号90で示され、それぞれ
18ビツトのデバイスからなる。データは。 RCKIの各サイクルの間に生じる18個のPCKサイ
クル中に、各A/INメモリ要素から関連する1つのレ
ジスタ90に直列にシフトされる。 したがって、各レジスタ90は1つのA/TNメモリg
!索中の連続する18個の記憶スペースからの18ビツ
トのデータで満たされる。ついで、次のRCKIでデー
タがパイプラインの次の段に転送される。第100図に
示すように、ラッチ58の書込みデータ・フィールドは
、最初の2組のレジスタ90中のデータからなる。制御
ピッ1−は。 最後のレジスタ対の第2記憶位置にあり、アドレス・フ
ィールドの情報は、最後のレジスタ対の記憶位置2〜]
7に保持される。出力メモリ80a80?+の11作は
、第1.1Δ図ないし第11C図を参照すると理解でき
る。第11Δ図に示すように。 3つのメモリ読取り命令から得られる値ビットおよび未
定義ピントが、それぞれA / OU Tメモリ要素8
0 a 、および80b内の連続する記憶位aに記憶さ
れる。3つの命令に対するワード幅は。 16.3.10であると仮定する。メモリ要素80a、
80bの区分の結果、最初の命令の16個のデータ・ビ
ットが記憶位io〜15に伝えられ。 第2の読取り命令の3つのデータ・ビットは位置16〜
1日にあり、第3の命令の10個のデータ・ビットは位
[19〜28にある。 次に、ΔOU T / f30 tJ Tメモリ上で実
行される書込みおよび読取り機能について理解するため
、第1.1 [3図および第LIC図を参照する。アド
レス・マルチプレクサ82a、821)は、各機械サイ
クルごとにA / O[J Tメモリど11 / O(
J Tメモリの間で沓込み制御信号と読取り制御信号を
交、Uに切替えるだけなので、第1113図および第1
1C図には示さない。 メモリ要素への読取りデータ・ビットの書込みを第1.
113図、第12図および第13図に示す。 第11B図では、書込み制御/書込みアドレス生成論理
76が、メモリ・データ・ラッチ(MDL)74からの
読取りデータをΔ/ OtJ Tメモリ要素内の連続す
る記憶位置に記憶するために必要なアドレスおよび制御
信号を供給する。第11. B図および第12図に示す
ように、生成論理76は、IくCKIおよびRCK2を
含むyJl取りデータ記憶制御信号ならびにMDL74
のRAMタイプ・フィールドおよびワード幅フィールド
に記憶された情報に応答して、必要なアドレス(Δ号、
イネーブル信号およびMDLシフト・クロック信号を生
成する。アドレス信号、イネーブル信号、およびMDL
シフト・りOツク信号の生成には1発振器90゜グー1
一式クロック回路91、遅延回路92.ゲート回路94
1幅カウンタ95.ゼロ・カウント検出器96.および
アドレス・カウンタ98の協調動作が必要である。 発振)’J90は2通常のものであり、AOUT/BO
UT  WE (W込みイネーブル)として示した出力
発振クロック信号を信号、185a(第5B図参照)上
に生成する。この信号はAOUT/11OUTメモリへ
のデータ入力を可能にする。線85a上のWE倍信号、
遅延回路92によってわずかに遅延され、カウンタ95
および98を刻時するのに使われるカウンタ・タロツク
をもたらす。 カウンタ・タロツク信号は、A OU T / B O
U Tメモリの書込みをパイプライン・クロックと同期
させるため、ゲート回路94に供給される。ゲート回路
94は読取り命令を復号するとき、ロードおよびイネー
ブル1信号を生成する。ロード信号は1幅カウンタ95
をワード幅フィールド内の値にプリセットさせる。イネ
ーブル1信号は、カウンタ95および98に供給される
0幅カウンタ95がゼロでない値にプリセットされると
、ゼロ・カウント検出回路96は、イネーブル2信号を
幅カウンタ95およびアドレス・カウンタ98に供給す
る0両方のイネーブル信号が使用可能なとき。 カウンタ95および98は共にカウンタ・クロック信号
と同期してカウントすることができる0幅カウンタ95
は、そのプリセット値からゼロに向かってカウント・ダ
ウンし、アドレス・カウンタ98はカウント・アンプす
る。幅カウンタ95がゼロ・カウントに達すると、ゼロ
・カウント検出器9Gは幅カウンタ95およびアドレス
・カウンタ98からイネーブル2(8号を除去する。 アドレス・カウンタ98は各サイクルの始めにゼロにな
り、検出回路96によって使用可能にされるたびに、カ
ウンタ・クロックと同期してカウント・アップする。し
たがって、各読取り命令ごとにアドレス・カウンタ98
は、命令のワード幅フィールド中の値に等しい値だけそ
のカウントを増分し、その命令の間、前の読取り命令の
終りに停止したカウントからカウント・アップする。し
たがって、アドレス・カウンタ98の出力は、信号線8
5bを介してA10UTメモリ要素80a。 80bに供給される順次アドレスを形成する順次増加カ
ウントである。 WE(i’1号線85aはまた、ゲート式クロック91
に入力されて、信号線83上にMDLシフト・タロツク
を生成する。MDLシフト・クロックは、前に実メモリ
70からMDL74に並列に入力された読取りデータを
直列にシフト・アウトする。 ゲート式クロック回路91は、MDL74からΔOUT
/BOUTメモリへのシフトが必要なときだけ行なわれ
るように、イネーブル1信号およびイネーブル2信号に
よって通常の方法でゲート制御される。たとえば、MD
L74がRCK2により並列にロードされているとき、
または書込み命令が実行されている場合は、MDLシフ
ト・クロックは必要でない。 AOUT/BOUTメモリへのデータの書込みに影響を
及ぼす種々の信号間のタイミング関係を第13図に示す
。各サイクルの始めに、RARはゲート回路94にロー
ド信号をリセットさせる。 一方、イネーブル1信号は、前のRCK2が読取リアレ
イ命令をロードした場合、RCK2によって非活動状態
にリセットされる。RCK2の正の遷移102が起こる
とき、MDL74が読取りデータ・ビットとワード幅フ
ィールドおよびRAMタイプ・フィールドの情報をそれ
にラッチしたものと仮定する。遷移102はゲート回路
94にそのイネーブル1信号をリセットさせる。RCK
2遷移の直後に、対応するMDL記憶位置からのRAM
タイプ信号が、読取り動作に対応する状態を取る。読取
り指示に対するゲート回路94の応答は、RCKIパル
ス104に続くカウンタ・クロックの最初の遷移まで遅
延される。カウンタ・クロックの遷移105は、ゲート
回路94にカウンタ・クロックの1サイクルの間継続す
るロード信号のセット・パルスを生成させ、カウンタ・
クロックの遷移106が起こったとき1幅カウンタ95
をMDL74のワード幅フィールド内の値にプリセット
させる。ロード・パルスの終りに、ゲート回路94はイ
ネーブル1パルスをセットする。 次に、ゼロ・カウント検出器96がイネーブル2パルス
をセットする。それに続いて、各イネーブルパルスがそ
れぞれカウンタ95および98にカウンタ・クロックと
同期してカウントを開始させる。最初のビットは、MD
L74がRCK2でロードされるとき、MDLシフト・
レジスタ(第11B図の110aおよび110b)から
得られるので、A OU T / B OU Tメモリ
への最初の書込みの前には2ビツトのシフトは不要であ
る。RCK2によるロードの後、カウンタ・クロックが
MDL74からビットを直列にシフトする。A10UT
メモリ要素への最初の書込みは、WEの立下り114で
起こり、カウンタ・クロックの遷移118が起こると、
読取りデータの次の値ビットおよび未定義ビットがMD
I、シフト・レジスタ110a、110bから得られ、
これらの2ビツトが書き込まれるA10UTアドレスが
生成される。 この過程は、ゼロ・カウントが幅カウンタ95から検出
されるまで、ビットをA10UTメモリ要表80a、8
0bに順次入力し続け、ゼロ、カウントが検出されると
、イネーブル2は検出器96によって、カウンタ95お
よび98がそれ以上増分するのを禁止する状態に変更さ
れる。イネーブル1は次のRCK2またはRARでリセ
ットされる。 AOUT/BOUTメモリ対に順次入力されたデータの
出力置換は、第LIC図に示すようにして実現される。 IPLモード中、○PM78は、その記憶スペースに入
力される一連のAOUT/13OUTメモリ・アドレス
を有する。AOUT/BOUTアドレスは、02Mアド
レス・シーケンスに対応する順序で記憶されるが、論理
シミニレ−212機械上で実行中のシミュレーション全
体への読取りデータの伝達を同期させるため上位/イン
ターフェース・プロセッサ・コンパイラによって課せら
れるAOUT/BOUTアドレス・シーケンスを定義す
る。好ましい実施例では、02Mアドレスは10ビツト
からなり、それぞれ各A10UTメモリ要素80a、8
0b中の1024個の1ビツト記憶スペースのうちの1
つを定義する。○PM78から取り出された情報の宛先
は、プロセッサ間スイッチ12である。 したがって、第11C図において、OPM78は、OP
Mアドレス078〜080によって示されるシーケンス
の断片を含む、一連のアドレスをその中に含むことがで
きる。これらのアドレスに。 それぞれA10UTアドレスi、jおよびbが記憶され
る。したがって、OPMアドレス・シーケンスの断片0
78〜080が、それらの位置に記憶されたΔ/○UT
アドレスにより、A10UTに順に記憶された情報を、
無順序ではあるが所定の置換パターンで取り出す、一意
的なマツピングをもたらす。 上記で説明した方法および装置は、以下で述べる幾つか
の独自の特徴をもたらす。第1の特徴は、周知の「ライ
ト・スルー」手法がどのようにシミュレートできるかを
示す。「ライト・スルー」とは、書込み中のデータ・オ
ブジェクトを反映する読取り動作と同時に、メモリ・デ
バイスがデータ・オブジェクトの書込みおよび読取りを
行なえる能力を指す。この点に関連して、1つの書込み
ポートと2つの読取リポートを有する3ポ一ト式アレイ
が前提となる。アレイはさらに、16個の4ビツト・ワ
ードを記憶する能力を有するものと指定される。したが
って、そのアドレス・バスは、16ワードのアドレス指
定を可能にするために、少なくとも4ビツトの幅がなけ
ればならず、データ入力および出力バスも、データ・ワ
ードをデバイス内に伝え、デバイスから出力するために
、少なくとも4ビツトの幅がなければならない。さらに
、それぞれ3つのデータ・スループット・ポートのうち
の1つを選択するための3つの別個の制御ポートが指定
される。模擬デバイスは、第14図ではランダム・アク
セス・メモリ(RAM)として示す、模WRAMに接続
された4ビツト幅のアドレス・バスは、第14図ではア
ドレス(0,3)として示される。かっこ内の表記は各
アドレス・バス信号バスの明示名を示す。RAMのそれ
ぞれの書込みポートおよび読取リポートに接続された書
込みデータ・バスおよび読取りデータ・バスも同様な表
記法による。この例では、各ポートは専用の制御ポート
によって制御され、たとえば、iF込み制御ポートは書
込み実行と記されている。 本例では、[MRAMが、RUNモード中、多数の連続
した主サイクルの各サイクル中に2回以上参照されるこ
とが前提とされる。この点に関して、1つの主サイクル
は任意の数の機械サイクルからなる。アレイ命令フォー
マットを第15図に示す。シミュレーション用のアレイ
命令は、それぞれ、SPM40のSPMアドレス位置j
、j+1、およびj+2に連続的に記憶される。アレイ
命令フィールドは、次の省略形で示される。BAはベー
ス・アドレス・フィールドを指し、その中の実メモリ・
アドレスiは、模擬RAMに割り当てられた実メモリ記
憶セクタ内の最初のアドレスを指す。アドレス・フィー
ルドは、AWと表記され、アドレス・バス幅に等しい値
(4)を含む。 RTは、RAMタイプ・フィールドを指し、その中の1
つは読取り命令に対応し、0は書込み命令に対応する6
WWフイールドは、ワード幅フィールドであり、データ
・オブジェクト・サイズが4であることを示し、さらに
書込みバスおよび読取りバスを4ビツト幅として暗黙の
内に定義する。 リフレッシュ命令フィールドRE Fは0を含み。 アレイ命令が実メモリに対するリフレッシュ動作を刺激
しないことを示す。 第16図の波形は、本実施例について本発明者が行なっ
た実際のシミュレーションを示す。アレイ・シミュレー
ションの初期条件は、TPL中にアレイ情報をすべてゼ
ロに初期設定すること、および読取り2ポートを表わす
命令が書込みポートを表わす命令よりも先行し、書込み
ポート命令が読取り1命令よりも先行するように、アレ
イ命令を配列することを含む。これらの初期条件は、従
来技術のシステムの上位プロセッサ中でのコンパイラの
通常の動作によって実現された。 第16図では、AIN/BINメモリの制御。 アドレスおよび書込みの各データ・フィールドならびに
AOUT/BOUTメモリの読取りデータ・フィールド
の部分に含まれる特定のデータ・ビットを表わす、値ビ
ットおよび未定義ビットの復号を表わす波形によって、
シミュレーションが図示されている。さらに、各ポート
に対する制御データ・フィールドの復号されたビットが
示される。 初期設定されていないデータは?で示され、未定義のデ
ータは申で示され、論理0および1は通常どおり対応す
る波の高さで表わされる。 シミュレーションは、RU Nモード中にほぼ4つの主
サイクルを経て進行するものとして図示される。第16
図で、シミュレーションが開始したとき、各ポートに対
する制御線は非活動状態であり、各実行線での論理Oに
対応する。このことは。 関連するポートに対してメモリ参照が実行されていない
ことを示す。好ましい実施例では、読取りアレイ命令が
ラッチ58中で、0の制御フィールド値に関連づけられ
ているときは、読取りメモリ・アクセスは発生せず、A
/○UTまたはB10UTメモリに転送された読取りデ
ータは1強制的に未定義状態にされる。このことは、第
16図の最初の主サイクルで本で示されている。 最初の主サイクル中に、W込みデータおよびアドレス・
データが定義されるが、実メモリ70から得られた読取
りデータは初期設定されていない。 もちろん、実メモリ70に、I P L中に初期データ
が入力されることは可能であるが、この例では、メモリ
は初期設定されていない。 第2の主サイクルの始めに、最初の機械サイクル中に、
読取り実行線およびアドレス・ポートに対する定義済み
データが、スイッチ】2からメモリ・シミュレータ20
に転送され、A/INメモリに捕捉される。第2の主サ
イクルの第2の機械サイクルが始まると、読取り実行信
号およびアドレス信号がA/INまたはB/INメモリ
から取り出され、実メモリ・アクセスが実行され、読み
取られたデータがA/○UTまたはB/○UTメモリに
記憶される。第2の主サイクルの第3の機械サイクルが
始まると、読み取られたデータがA10UTまたはB/
○UTメモリからプロセッサ間スイッチ12に送られる
。 第3の主サイクルの始めに、書込み実行線が活動状態に
なり、アドレスは依然としてアドレス1であり、V込み
データは再びすべて0である。読取り実行線は、第3の
主サイクルの間活動状態にある。このとき、書込み実行
線が正の状態であるため、第3の主サイクルの最初の2
つの機械サイクル中に、模擬データが実メモリ70に入
力される。第3の機械サイクルの始めに、指示されたア
ドレスに書き込まれたデータが、最初の読取リポートで
すべて1に変る。第2の読取リポートを表わす読取り命
令は、書込み命令に先行するので。 新しいデータが最初の読取リポートにより「認識」され
てから1@械サイクル後に新しいデータを「認識」する
。したがって、書き込まれたすべての1は、新しいデー
タが最初の読取リポートで使用可能になってから1機械
サイクル後に第2の読取リポートで使用可能になる。し
たがって、シミュレータ20の同じ機械サイクル中に(
すなわち、第3の主サイクルの第3の機械サイクル中に
)IF込みポートを経て、模擬RAMに入力されたデー
タを最初の模擬読取リポートで認識することにより、「
ライト・スルーJシミュレーションが実現される。 本発明のメモリ・シミュレータは、模擬メモリ参照(読
取りまたは書込み)が開始してからスイッチ12を通っ
て流れる結果が認識されるまで、本来的に2つの遅延レ
ベルを伴う。読取リアレイ命令を書込みアレイ命令の後
に配置することにより、書込みアレイ命令の実行後、で
きるだけ早く書込み命令データを読み取ることが可能に
なる。 読取り命令が書込み命令に先行するように命令が配置さ
れている場合は、さらに、1機械サイクルの遅延が生じ
る。大部分のシミュレーションの場面では、この付加的
遅延レベルは許容される。 しかし、書込み命令と読取り命令の間の余分な遅延レベ
ルが容認できない場合、設計者は、書込み命令が読取り
命令に先行するように命令を配置するというオプション
を選ぶことができる。 本発明によってもたらされるもう1つの特徴は、実メモ
リ70のデータ幅より幅の広いデータ・オブジェクトを
有するメモリ・デバイスのシミュレーションを可能にす
る。データ幅が、たとえば、実メモリ70で可能な最大
限度の36ビツトよりも大きいメモリ・デバイスをシミ
ュレートする場合、そのデバイスは、それぞれ36ビツ
ト(以下)のワード幅フィールドを有する2つ(以上)
のアレイ命令によって表わされる。このため、同一メモ
リ・デバイスの別個の2つの部分に対応する2つのアレ
イ命令が独立して実行できる。この場合、各部分に対す
るシミュレーション用のアドレスおよび制御データは同
じであり、各命令の間に書き込まれ、または読み取られ
るデータにのみ相違がある。したがって、模擬メモリ・
デバイスは、シミュレートすべき各ポートごとにコンパ
イルされた2つの独立したアレイ命令を有しく各命令は
データ・フィールドの1つのセクションに関連する)、
各命令はコンパイラによって実メモリ7oの別個の区域
を割り当てられ、この区域に対して各命令の動作が実行
される。もちろん、メモリ70の別個の各区域はそれ自
身のベース・アドレスによってアクセスされる。 最後に、本発明は、アドレス可能なサイズが1つの命令
によって表わされる最大限度の64にワード(アドレス
幅フィールドが16ビツト幅である結果)を越えるメモ
リ・デバイスのシミュレーションを実現する。この場合
、メモリ・デバイスをそれぞれ64にワード(以下)の
2つ(以上)の区画に分割し、高位アドレス・ビットを
使って各区画に対して制御信号を選択的にゲートするこ
とができる、残りのアドレス線およびデータ線は。 この場合1両方の区画に共通である。この点に関して、
命令には実メモリの別個の領域が割り当てられる。各領
域はそれぞれベース・アドレスを有し、シミュレート中
のメモリの各区画に対応する。 F8発明の効果 任意の幅および記憶容量をもち、任意の数の参照ポート
を有するどのようなメモリ・デバイスでも、本発明を用
いてシミュレートできる。さらに、1ビット幅のデータ
・オブジェクトに対してしか各シミュレーション動作を
実行できない従来技術の論理シミュレーション機械と対
比して、どのような模擬メモリ・デバイスに対するどの
ようなメモリ参照であっても、任意のサイズのデータ・
オブジェクトに作用することが認められる。
【図面の簡単な説明】
第1図は1本発明の主な機能を示す概略ブロック図、 第2図は1本発明の代表的な動作システム環境を示すブ
ロック図、 第3図は、アレイを定義するためポート名がどのように
使用されるかを示す1本発明によってシミュレートされ
るメモリ・アレイの図。 第4図は、第3図のメモリ・アレイ・シミュレーション
が、本発明においてソフトウェアとハードウェアの組合
せによってどのように実現されるかを示すブロック図。 第5A図および第5B図は本発明のハードウェア実施例
のブロック図、 第6図は、第5A図および第5B図のハードウェア実施
例を通るデータの流れをパイプライン方式で同期するた
めに使用されるクロック波形を示す波形図、 第7図は、第5A図および第5B図のハードウェア実施
例の実メモリ制御装置の動作を示す状態遷移図、 第8図は、第5A図および第5B図のハードウェア実施
例のパイプライン式動作を示すタイミング図。 第9図は、実メモリの区分を示すブロック図。 第10A図ないし第10C図は第5A図のAIN/B 
I Nメモリの区分、書込みおよび読取りを示すブロッ
ク図、 第11A図ないし第11C図は第5B図のAOUT/B
OUTメモリの区分別、書込みおよび読取りを示すブロ
ック図、 第12図は、第5B図の書込み制御/書込みアドレス生
成論理76のブロック図、 第13図は、第12図の論理の動作を示す波形図、 第14図は、シミュレート中の3ポート式メモリ・デバ
イスのブロック図、 第15図は、第14図のデバイスをシミュレ−1・する
ためのアレイ命令セットの例を示す図、第16図は、第
14図のメモリ・アレイをシミュレートする際の本発明
の動作を示す波形図である。 出題人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) 第工図

Claims (1)

  1. 【特許請求の範囲】 論理シミュレーション機械で多重ポート・メモリ・アレ
    イをシミュレートするために、少なくとも1つのメモリ
    ・アレイをシミュレートするインターフェース用有限状
    態機械(FSM)を使用するシミュレーション方法であ
    って、 シミュレートすべきメモリ・アレイに対応する複数のポ
    ート名を定義して、前記FSMの入出力資源の対応する
    各サブセットと関連付け、 前記メモリ・アレイで実行すべき模擬メモリ・アクセス
    動作を定義するアレイ命令の組を前記ポート名に関連付
    けて記憶し、 前記論理シミュレーション機械からの模擬メモリ・アク
    セス信号を、前記アレイ命令の組に関連する所定のパタ
    ーンに従って置換可能な形で前記入出力資源のサブセッ
    トへ供給し、 前記FSMで前記メモリ・アクセス信号を用いて前記ア
    レイ命令の組を実行し、 前記FSMでの実行結果を所定の順序で出力することを
    特徴とするシミュレーション方法。
JP62053235A 1986-04-22 1987-03-10 多重ポ−ト・メモリ・アレイのシミユレ−シヨン方法 Pending JPS62251933A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US855013 1986-04-22
US06/855,013 US4862347A (en) 1986-04-22 1986-04-22 System for simulating memory arrays in a logic simulation machine

Publications (1)

Publication Number Publication Date
JPS62251933A true JPS62251933A (ja) 1987-11-02

Family

ID=25320124

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62053235A Pending JPS62251933A (ja) 1986-04-22 1987-03-10 多重ポ−ト・メモリ・アレイのシミユレ−シヨン方法

Country Status (4)

Country Link
US (1) US4862347A (ja)
EP (1) EP0242599A3 (ja)
JP (1) JPS62251933A (ja)
CA (1) CA1256563A (ja)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5157778A (en) * 1986-08-20 1992-10-20 Digital Equipment Corporation Method and apparatus for circuit simulation using parallel processors including memory arrangements and matrix decomposition synchronization
US5159690A (en) * 1988-09-30 1992-10-27 Massachusetts Institute Of Technology Multidimensional cellular data array processing system which separately permutes stored data elements and applies transformation rules to permuted elements
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
US5329470A (en) * 1988-12-02 1994-07-12 Quickturn Systems, Inc. Reconfigurable hardware emulation system
US5109353A (en) * 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware system
US5313551A (en) * 1988-12-28 1994-05-17 North American Philips Corporation Multiport memory bypass under software control
US5165036A (en) * 1989-01-31 1992-11-17 Sharp Kabushiki Kaisha Parallel processing development system with debugging device includes facilities for schematically displaying execution state of data driven type processor
US5572708A (en) * 1989-02-28 1996-11-05 Nec Corporation Hardware simulator capable of dealing with a description of a functional level
US5369593A (en) 1989-05-31 1994-11-29 Synopsys Inc. System for and method of connecting a hardware modeling element to a hardware modeling system
US5353243A (en) 1989-05-31 1994-10-04 Synopsys Inc. Hardware modeling system and method of use
KR0158887B1 (ko) * 1990-01-12 1999-02-18 이노우에 키요시 논리 모의실험기
US5163016A (en) * 1990-03-06 1992-11-10 At&T Bell Laboratories Analytical development and verification of control-intensive systems
JP2781305B2 (ja) * 1992-05-08 1998-07-30 富士通株式会社 マルチポートramを含む論理シミュレーション方式
US6144930A (en) * 1993-06-09 2000-11-07 Compaq Computer Corporation Method for providing a memory model of a memory device for use in simulation
IL109921A (en) * 1993-06-24 1997-09-30 Quickturn Design Systems Method and apparatus for configuring memory circuits
US5455929A (en) * 1993-10-14 1995-10-03 Texas Instruments Incorporated Logic simulator employing hierarchical checkpointing
JPH07334372A (ja) * 1993-12-24 1995-12-22 Seiko Epson Corp エミュレートシステム及びエミュレート方法
US5623680A (en) * 1993-12-28 1997-04-22 Lucent Technologies Inc. Finite state machine for process control
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5448522A (en) * 1994-03-24 1995-09-05 Quickturn Design Systems, Inc. Multi-port memory emulation using tag registers
US5920712A (en) * 1994-05-13 1999-07-06 Quickturn Design Systems, Inc. Emulation system having multiple emulator clock cycles per emulated clock cycle
US5604889A (en) * 1994-06-15 1997-02-18 Texas Instruments Incorporated Memory management system for checkpointed logic simulator with increased locality of data
US6074428A (en) * 1994-10-19 2000-06-13 Hewlett-Packard Company Minimizing logic by resolving "don't care" output values in a finite state machine
US5542034A (en) * 1994-10-19 1996-07-30 Hewlett-Packard Company Minimizing logic to determine current state in an output encoded finite state machine
US5649164A (en) * 1994-12-30 1997-07-15 International Business Machines Corporation Sets and holds in virtual time logic simulation for parallel processors
US5632028A (en) * 1995-03-03 1997-05-20 Hal Computer Systems, Inc. Hardware support for fast software emulation of unimplemented instructions
US5706473A (en) * 1995-03-31 1998-01-06 Synopsys, Inc. Computer model of a finite state machine having inputs, outputs, delayed inputs and delayed outputs
US6053948A (en) * 1995-06-07 2000-04-25 Synopsys, Inc. Method and apparatus using a memory model
US5819065A (en) * 1995-06-28 1998-10-06 Quickturn Design Systems, Inc. System and method for emulating memory
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
US5809283A (en) * 1995-09-29 1998-09-15 Synopsys, Inc. Simulator for simulating systems including mixed triggers
US5784593A (en) * 1995-09-29 1998-07-21 Synopsys, Inc. Simulator including process levelization
JP2720860B2 (ja) * 1995-11-30 1998-03-04 日本電気株式会社 不揮発性半導体記憶装置の動作条件の設定方法
US5822564A (en) * 1996-06-03 1998-10-13 Quickturn Design Systems, Inc. Checkpointing in an emulation system
US5841967A (en) * 1996-10-17 1998-11-24 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation
US5950229A (en) * 1997-03-12 1999-09-07 Micron Electronics, Inc. System for accelerating memory bandwidth
US6421251B1 (en) 1997-05-02 2002-07-16 Axis Systems Inc Array board interconnect system and method
US6009256A (en) * 1997-05-02 1999-12-28 Axis Systems, Inc. Simulation/emulation system and method
US6026230A (en) * 1997-05-02 2000-02-15 Axis Systems, Inc. Memory simulation system and method
US6321366B1 (en) 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US6389379B1 (en) 1997-05-02 2002-05-14 Axis Systems, Inc. Converification system and method
US6134516A (en) * 1997-05-02 2000-10-17 Axis Systems, Inc. Simulation server system and method
US5960191A (en) * 1997-05-30 1999-09-28 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US5898863A (en) * 1997-06-03 1999-04-27 Emc Corporation Method and apparatus for determining I/O size distribution of an input/output system and its use for load simulation
US5970240A (en) * 1997-06-25 1999-10-19 Quickturn Design Systems, Inc. Method and apparatus for configurable memory emulation
US6618698B1 (en) 1999-08-12 2003-09-09 Quickturn Design Systems, Inc. Clustered processors in an emulation engine
US6229754B1 (en) * 2000-02-09 2001-05-08 International Business Machines Corporation Write through function for a memory
US6886111B1 (en) 2000-03-08 2005-04-26 International Business Machines Corporation Method and data processing system for software testing of a device driver
US6625789B2 (en) * 2000-04-14 2003-09-23 Hitachi, Ltd. Computer-readable medium for recording interface specifications
US6823472B1 (en) 2000-05-11 2004-11-23 Lsi Logic Corporation Shared resource manager for multiprocessor computer system
US6829572B2 (en) * 2000-12-07 2004-12-07 Internatinal Business Machines Corporation Method and system for efficiently overriding array net values in a logic simulator machine
US6898562B2 (en) 2000-12-07 2005-05-24 International Business Machines Corporation Method and system for efficiently overriding net values in a logic simulator machine
WO2005083615A1 (ja) * 2004-02-26 2005-09-09 Kyoto University 生体シミュレーション装置およびプログラム
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8359187B2 (en) * 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
KR101318116B1 (ko) 2005-06-24 2013-11-14 구글 인코포레이티드 집적 메모리 코어 및 메모리 인터페이스 회로
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
JP5242397B2 (ja) 2005-09-02 2013-07-24 メタラム インコーポレイテッド Dramをスタックする方法及び装置
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7555424B2 (en) 2006-03-16 2009-06-30 Quickturn Design Systems, Inc. Method and apparatus for rewinding emulated memory circuits
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US8234624B2 (en) 2007-01-25 2012-07-31 International Business Machines Corporation System and method for developing embedded software in-situ
JP4468410B2 (ja) * 2007-06-21 2010-05-26 株式会社東芝 ソフトウェア実行装置および協調動作方法
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
US20090055155A1 (en) * 2007-08-20 2009-02-26 Russell Klein Simulating execution of software programs in electronic circuit designs
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
US8239182B2 (en) * 2007-12-04 2012-08-07 Spansion Llc Data transmission system-on-chip memory model based validation
EP2441007A1 (en) 2009-06-09 2012-04-18 Google, Inc. Programming of dimm termination resistance values
US10481992B1 (en) * 2011-03-31 2019-11-19 EMC IP Holding Company LLC Optimization of flash storage
US20120296623A1 (en) * 2011-05-20 2012-11-22 Grayskytech Llc Machine transport and execution of logic simulation
US9208131B2 (en) * 2013-05-06 2015-12-08 Sas Institute, Inc. Techniques to simulate statistical tests
US9134966B2 (en) * 2013-12-12 2015-09-15 International Business Machines Corporation Management of mixed programming languages for a simulation environment
US10303385B1 (en) * 2017-03-07 2019-05-28 Xilinx, Inc. Updating block random access memory contents using memory emulation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59191656A (ja) * 1983-04-14 1984-10-30 Nec Corp メモリicシミュレ−タ

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4253145A (en) * 1978-12-26 1981-02-24 Honeywell Information Systems Inc. Hardware virtualizer for supporting recursive virtual computer systems on a host computer system
US4306286A (en) * 1979-06-29 1981-12-15 International Business Machines Corporation Logic simulation machine
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
US4488354A (en) * 1981-11-16 1984-12-18 Ncr Corporation Method for simulating and testing an integrated circuit chip
US4656580A (en) * 1982-06-11 1987-04-07 International Business Machines Corporation Logic simulation machine
EP0099114B1 (en) * 1982-07-13 1988-05-11 Nec Corporation Logic simulator operable on level basis and on logic block basis on each level
JPS5975347A (ja) * 1982-10-21 1984-04-28 Toshiba Corp 論理回路のシミユレ−シヨン装置
US4621339A (en) * 1983-06-13 1986-11-04 Duke University SIMD machine using cube connected cycles network architecture for vector processing
US4587625A (en) * 1983-07-05 1986-05-06 Motorola Inc. Processor for simulating digital structures
WO1985002033A1 (en) * 1983-11-03 1985-05-09 Prime Computer, Inc. Digital system simulation method and apparatus
US4736338A (en) * 1986-10-07 1988-04-05 Silicon Solutions Corporation Programmable look up system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59191656A (ja) * 1983-04-14 1984-10-30 Nec Corp メモリicシミュレ−タ

Also Published As

Publication number Publication date
CA1256563A (en) 1989-06-27
EP0242599A3 (en) 1990-06-13
US4862347A (en) 1989-08-29
EP0242599A2 (en) 1987-10-28

Similar Documents

Publication Publication Date Title
JPS62251933A (ja) 多重ポ−ト・メモリ・アレイのシミユレ−シヨン方法
US5729709A (en) Memory controller with burst addressing circuit
US5377339A (en) Computer for simultaneously executing instructions temporarily stored in a cache memory with a corresponding decision result
CN1020972C (zh) 超大规模计算机
US4553203A (en) Easily schedulable horizontal computer
EP0021404B1 (en) Computing system for the simulation of logic operations
JP2022539844A (ja) 静止再構成可能データ・プロセッサ
US6574626B1 (en) Method and apparatus for administration of extended memory
JPS58222355A (ja) 論理シミユレ−シヨン機械
WO1994009436A1 (en) Disk array controller having advanced internal bus protocol
JPH011042A (ja) ハードウェア・シミュレータ及びそのシミュレーション方法
US10185699B2 (en) Reconfigurable data interface unit for compute systems
JP2674709B2 (ja) 自動回路テスタ制御システム
US7401015B1 (en) Coherent state among multiple simulation models in an EDA simulation environment
JPH09101975A (ja) エミュレーションシステム
US5790865A (en) Method and apparatus for reordering components of computer programs
Vitter et al. Large-scale sorting in uniform memory hierarchies
Fisher 2n-way jump microinstruction hardware and an effective instruction binding method
Bonuccelli et al. A VLSI tree machine for relational data bases
JP3905951B2 (ja) シミュレーション/エミュレーションの効率を増すための論理変換方法
US6144930A (en) Method for providing a memory model of a memory device for use in simulation
GB2099618A (en) Algorithmic word generator
TWI278752B (en) Disk array controller and fast method of executing stripped-data operations in disk array controller
JPH04225475A (ja) ロジック・シミュレーション・マシン及び処理方法
JPS60243760A (ja) システムパラメ−タ設定方式