JPH10228393A - 二重プロセッサ回路の動作をシミュレーションするためのコンピュータ実行方法及び信号プロセッサシミュレータ - Google Patents

二重プロセッサ回路の動作をシミュレーションするためのコンピュータ実行方法及び信号プロセッサシミュレータ

Info

Publication number
JPH10228393A
JPH10228393A JP9284063A JP28406397A JPH10228393A JP H10228393 A JPH10228393 A JP H10228393A JP 9284063 A JP9284063 A JP 9284063A JP 28406397 A JP28406397 A JP 28406397A JP H10228393 A JPH10228393 A JP H10228393A
Authority
JP
Japan
Prior art keywords
processor
simulator
instruction
clock
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9284063A
Other languages
English (en)
Other versions
JP4564110B2 (ja
Inventor
Moataz A Mohamed
エー モハメッド モアタズ
J Rickers Ian
ジェイ リッカーズ イアン
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JPH10228393A publication Critical patent/JPH10228393A/ja
Application granted granted Critical
Publication of JP4564110B2 publication Critical patent/JP4564110B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】 二重プロセッサ回路の動作をシミュレーショ
ンするためのコンピュータ実行方法及び信号プロセッサ
シミュレータを提供する。 【解決手段】 マルチプロセッサ回路シミュレータは、
デバッガーインタフェース202、同期装置204、A
RM7プロセッサシミュレータ206、ベクトルプロセ
ッサシミュレータ208、共有されるメモリ210、コ
プロセッサインタフェースモジュール212及びイベン
トモジュール214を含む。マルチプロセッサシミュレ
ータは、ARM7プロセッサシミュレータとベクトルプ
ロセッサシミュレータとを実行可能な単一プロセスと単
一アドレス領域に連結する。同期装置は、多数のプロセ
ッサシミュレータ間の命令実行のシミュレーションをイ
ンターリーブする。同期装置は、いずれプロセッサシミ
ュレータが最も遅いクロックキングに基づいて実行する
かを決定する。このクロックキングはプロセッサシミュ
レータに該当するクロックシミュレータ値を比較して実
行される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、回路のシミュレー
ションに係るもので、特に二重プロセッサ(dualproces
sor)回路の動作をシミュレーションするためのコンピ
ュータ実行方法及び信号プロセッサシミュレータに関す
る。
【0002】
【従来の技術】一般的に、電子回路設計と、新しく設計
された回路の大量生産との間には多くの時間間隔がある
ので、大量生産に費用を投資する前に、製造業者は回路
設計が適合しているか否かを確認するために回路のテス
トを行っている。個々の回路段階に回路を製造するには
費用が嵩むことから、回路のテストに物理的な制限が伴
う。回路の少量生産にかかる費用を削減するために、回
路設計者は少ない費用で且つ新しい回路設計の正確なテ
ストを提供するコンピュータシミュレーションに関心を
持つようになってきている。
【0003】従来、コンピュータシミュレータ間の信号
伝達に臨時ファイルを用いて行う方法がある。この方法
は、第1のシミュレータが臨時ファイルを割り当て、こ
の臨時ファイルに記入してから割り当てを取り消し、第
2のシミュレータは同じ臨時ファイルを割り当て、伝送
されるデータを読み出してから当該臨時ファイルの割り
当てを取り消すものである。
【0004】
【発明が解決しようとする課題】しかしながら、この方
法では、第1、第2のシミュレータ間の情報伝達に一連
の長い命令を伴うので、シミュレータの性能が低下する
という問題点がある。
【0005】シミュレータ間の情報伝達のための他の方
法として、パイプとバッファの構造を用いたものがある
が、このような構造を処理することもまた多くの費用が
かかる。また、伝統的なシミュレータでは、基礎となる
ハードウェアに存在する情報伝達能力をシミュレーショ
ンすることができない。例えば、回路要素は臨時ファイ
ルを通して情報を伝達しない。従って、従来のシミュレ
ーションより性能を向上させた二重プロセッサ回路のシ
ミュレータが要求される。また、基礎となる電子回路に
存在する信号伝達動作を正確にシミュレーションするシ
ミュレータも要求される。
【0006】そこで本発明は、従来のシミュレータに比
して向上された性能を有し、基礎となる電子回路に存在
する信号伝達動作を正確にシミュレーションできる二重
プロセッサ回路の動作をシミュレーションするためのコ
ンピュータ実行方法及び信号プロセッサシミュレータを
提供することを目的としている。
【0007】
【課題を解決するための手段】上記課題を解決し、上記
目的を達成するために、請求項1記載の発明による信号
プロセッサシミュレータは、二重プロセッサ回路上の並
列実行をシミュレーションするための信号プロセッサシ
ミュレータであって、二重プロセッサの第1プロセッサ
上の命令の実行をシミュレーションするための第1プロ
セッサシミュレータと、二重プロセッサの第2プロセッ
サ上の命令の実行をシミュレーションするための第2プ
ロセッサシミュレータと、信号プロセッサシミュレータ
によりアクセスされた値を格納するための共有されるメ
モリと、第1プロセッサに関するクロックをシミュレー
ションするための第1クロックシミュレータと、第2プ
ロセッサに関するクロックをシミュレーションするため
の第2クロックシミュレータと、第1クロックシミュレ
ータと第2クロックシミュレータとを比較し、後のクロ
ックシミュレータに該当するプロセッサシミュレータ上
の命令を処理する同期装置とを備えるものである。
【0008】第1プロセッサシミュレータは、RISC
プロセッサをシミュレーションするものであっても良
い。
【0009】また、第1プロセッサシミュレータは、A
RMULATORとしても良い。
【0010】第2プロセッサシミュレータは、ベクトル
プロセッサをシミュレーションするものであっても良
い。
【0011】前記共有されるメモリは、第1プロセッサ
シミュレータと第2プロセッサシミュレータとに示され
るものであっても良い。
【0012】前記共有されるメモリは、第2プロセッサ
シミュレータにより変更できる第1プロセッサシミュレ
ータのレジスタ値を含むものであっても良い。
【0013】同期装置は、第2プロセッサシミュレータ
に関する命令に要求されるクロック周期を含む検査表を
含み、第2プロセッサシミュレータ上の命令を実行する
前に、命令に必要なクロック周期を決定するために検査
表を検査し、命令を実行してから、第1プロセッサシミ
ュレータによりシミュレーションされる第1プロセッサ
動作が、少なくとも第2プロセッサシミュレータにより
シミュレーションされる第2プロセッサの動作期間程度
に遂行される時まで、第1プロセッサシミュレータ上の
1個以上の他の命令を実行するものであっても良い。
【0014】請求項8記載の発明による二重プロセッサ
回路の動作をシミュレーションするためのコンピュータ
実行方法は、二重プロセッサ回路上で実行される命令を
含む実行可能なプログラムと、二重プロセッサ回路の第
1プロセッサ上の命令実行をシミュレーションするため
の第1プロセッサシミュレータと、二重プロセッサ回路
の第2プロセッサ上の命令実行をシミュレーションする
ための第2プロセッサシミュレータと、第1プロセッサ
シミュレータと第2プロセッサシミュレータとの間の命
令実行をインターリーブするための同期装置と、第1プ
ロセッサクロックを示す第1クロック値と、第2プロセ
ッサクロックを示す第2クロック値と、第1プロセッサ
シミュレータと第2プロセッサシミュレータに示され
て、前記の第1プロセッサシミュレータに要求される一
個以上の第1レジスタ値及び第2プロセッサシミュレー
タに要求される一個以上の第2レジスタ値を含む、共有
されるメモリとを含むコンピュータ格納媒体に提供され
る二重プロセッサ回路の動作をシミュレーションするた
めのコンピュータ実行方法において、実行可能なプログ
ラムから第1命令をフェッチし、第1命令が並列処理の
ための信号でなければ、第1プロセッサシミュレータ上
の第1命令実行をシミュレーションし、第1命令が並列
処理のための信号であれば、並列処理をシミュレーショ
ンするコンピュータ実行段階を含む第1ループを遂行
し、前記の並列処理をシミュレーションする段階が、ク
ロック値と第2クロックとを比較し、第1クロック値が
第2クロック値より小さければ、前記の実行可能なプロ
グラムから第2命令をフェッチし、第1プロセッサシミ
ュレータ上の第2命令の実行をシミュレーションし、第
1プロセッサ上の第2命令の実行に必要な時間を第1ク
ロック値に加えて、第1クロック値が第2クロック値よ
り同一であるかまたは大きければ、前記の実行可能なプ
ログラムから第3命令をフェッチし、第2プロセッサシ
ミュレータ上の第3命令の実行をシミュレーションし、
第2プロセッサ上の第3命令を遂行するに必要な時間を
第2クロック値に加えて、第2プロセッサシミュレータ
がこれ以上必要となくなると第1ループに戻って、前記
の実行可能なプログラム内の第1プロセッサシミュレー
タと関連されているすべての命令がシミュレーションさ
れたら、第1ループを終了するコンピュータ実行段階を
含むことを特徴とする。
【0015】請求項9記載の発明による二重プロセッサ
回路の動作をシミュレーションするためのコンピュータ
実行方法は、二重プロセッサ回路上で実行される命令を
含む実行可能なプログラムと、二重プロセッサ回路の第
1プロセッサ上の命令の実行をシミュレーションするた
めの第1プロセッサシミュレータと、二重プロセッサ回
路の第2プロセッサ上の命令の実行をシミュレーション
するための第2プロセッサシミュレータと、第1プロセ
ッサシミュレートと第2プロセッサシミュレート間の命
令の実行をインターリーブするための同期装置と、第1
プロセッサクロックを示す第1クロック値と、第2プロ
セッサクロックを示す第2クロック値と、命令を実行す
ることに必要な時間を示す検査表と、第1プロセッサシ
ミュレータと第2プロセッサシミュレータで示されて、
第1プロセッサシミュレータに要求される1個以上の第
1レジスタ値及び第2プロセッサシミュレータに要求さ
れる1個以上の第2レジスタ値を含む、共有されるメモ
リと、を含むコンピュータ格納媒体に提供される二重プ
ロセッサ回路の動作をシミュレーションするためのコン
ピュータ実行方法において、前記の実行可能なプログラ
ムから第1命令をフェッチし、第1命令が並列プロセッ
シングのための信号でなければ、第1プロセッサシミュ
レータ上の第1命令の実行をシミュレーションし、第1
命令が、並列処理のための信号であれば、並列処理をシ
ミュレーションするコンピュータ実行段階を含む第1ル
ープを遂行し、前記の並列処理をシミュレーションする
段階が、クロック値と第2クロック値とを比較し、第1
クロック値が第2クロックより小さければ、前記の実行
可能なプログラムから第2命令をフェッチし、第1プロ
セッサシミュレータ上の第2命令の実行をシミュレーシ
ョンし、第1プロセッサ上の第2命令を実行することに
必要な時間を第1クロック値に加えて、第1クロック値
が第2クロック値より同一であるかまたは大きければ、
前記の実行可能なプログラムから第3命令をフェッチ
し、第3命令に必要な実行時間を決定するために検査表
をアクセスし、第2プロセッサシミュレータ上の第3命
令の実行をシミュレーションし、第2プロセッサ上の第
3命令を遂行することに必要な時間を第2クロック値に
加えて、第3命令に必要な実行時間を基準とし、実行可
能なプログラムから所定の命令の実行をシミュレーショ
ンし、第2プロセッサシミュレータがこれ以上必要とな
くなると第1ループに戻って、前記の実行可能なプログ
ラム内の第1プロセッサシミュレータと関連されている
すべての命令がシミュレーションされたら、第1ループ
を終了するコンピュータ実行段階を含むことを特徴とす
る。
【0016】
【発明の実施の形態】
<付録Aに関する参考>本明細書の一部である表1〜表
5に示されている付録Aは、本発明のコンピュータプロ
グラム実施例として以下で詳細に説明する。付録Aは、
著作権が保護されなければならないもので、著作権者は
米国特許及び商標国の特許ファイル、または記録に示さ
れているように、誰も特許明細書をファクシミリ複写で
きることには異議ないが、そうでなければすべての著作
権が取り消される。
【0017】図1は本発明の実施の形態の信号プロセッ
サシミュレータの概略構成を示すブロック図である。
【0018】この図において、コアイメージ(core ima
ge) 102は、2個の他のプログラムのための実行可能
なファイルからなる組み合わされた実行可能なファイル
である。一方のプログラムは、ARM7プロセッサ
(“ARM7プロセッサプログラム”)を動作させるた
めに設計されたもので、他方のプログラムはベクトルプ
ロセッサ(“ベクトルプロセッサプログラム”)を動作
させるために設計されたものである。
【0019】ARM7プロセッサは、ARMプロセッサ
または“ARM”とも呼ばれる。ベクトルプロセッサ
は、ベクトルコプロセッサまたは“VCP”とも呼ばれ
る。それぞれのプログラムの実行可能なファイルは、コ
ード部分領域とデータ部分領域とを含んでいる。
【0020】2個の他のプログラムは、共有する変数及
びそれぞれの変数を有する。コアイメージ102の一例
を表6に示した付録Bに表した。付録Bにおいて、コア
イメージ102は、ARM7プロセッサプログラムに関
するコード部分(A1−A4ライン)、ARM7プロセ
ッサプログラムに関するデータ部分(A5ライン)、ベ
クトルプロセッサプログラムに関するコード部分(A6
−A7ライン)、及びベクトルプロセッサプログラムに
関するデータ部分(A8)を順序に含む。このコアイメ
ージ102は二重プロセッサシミュレータ104の入力
となる。
【0021】二重プロセッサシミュレータ104は、命
令−ラベルシミュレータである。二重プロセッサシミュ
レータ104は、2個のプロセッサシミュレータ間の命
令実行シミュレーションをインターリーブし、二プロセ
ッサ上の並列命令実行をシミュレーションする。
【0022】一方のプロセッサシミュレータはARM7
・RISCプロセッサの動作をシミュレーションし、他
方のプロセッサシミュレータはベクトルプロセッサの動
作をシミュレーションする。ARM7・RISCプロセ
ッサのために設定された構造と命令は、英国ケンブリッ
ジのAdvance RISC MachinesLt
d.により提供される文書番号:ARM DDI 00
10Gの“ARM7DM Data Sheet”に記
述されている。ARM7DMデータシートは本明細書の
参考文献として共に記述されている。
【0023】ARM7レジスタと命令は、本明細書の参
考文献として共に記述された米国特許出願番号08/6
99,303、弁理士事件番号M−4368の“Method
s and Apparatus for Processing Video Data ”にも記
述されている。
【0024】ARM7・RISCプロセッサシミュレー
タの一例であるARMULATORは、英国ケンブリッ
ジのAdvance RISC Machine Ltd. により常用化されたも
のである。
【0025】ベクトルプロセッサのために設定された構
造と命令は、本明細書の参考文献の一つであるカリフォ
ルニア・サンホセの三星半導体の“Preliminary MSP-IE
X System Specification”及び“MSP Architecture Spe
cification”に記述されている。
【0026】ベクトルプロセッサレジスタと命令は、米
国特許出願番号08/699,597、弁理士事件番号
M−4355の“Single-Instruction-Multiple-Data P
rocessing in a Multimedia Signal Processor”に記述
されている。
【0027】ベクトルプロセッサシミュレータの一例
は、マルチメディア命令ラベルシミュレーションツール
(Multimedia Instruction Level simulation Tool;MIN
T )であり、これはカリフォルニア・サンホセの三星半
導体の“Architecture and Design Specification of M
INT ”に記述されている。
【0028】ARM7・RISCプロセッサとベクトル
プロセッサは例示的なもので、本発明を特定なプロセッ
サシミュレータとして制限するものではない。本明細書
を考慮すると、本発明の原理は適切なプロセッサシミュ
レータを採用する限り、プロセッサの特定構造でも、す
べての二重プロセッサ回路のシミュレーションに使用さ
れる場合もある。例えば、ARM7・RISCプロセッ
サは、従来の構造である多目的プロセッサに代替され得
る。
【0029】二重プロセッサシミュレータ104は、A
RM7プロセッサシミュレータとベクトルプロセッサと
を一つの共有するアドレス領域に丈夫に連結させる。こ
の2個の他のプロセッサシミュレータは、傘のような構
造のプロセッサの傘の骨の役割に該当するそれぞれのプ
ロセッサシミュレータ動作の一過程として共に実行され
る。
【0030】二重プロセッサシミュレータ104は命令
実行のシミュレーションをインターリーブする。例え
ば、ARM7プロセッサシミュレータが命令実行をシミ
ュレーションしてから、ベクトルプロセッサシミュレー
タが命令実行をシミュレーションし、それからARM7
プロセッサシミュレータの動作が続く。シミュレータの
動作は、このように飛ばす(leap-frog )形態で並列に
実行される命令がこれ以上存在しない時まで継続され
る。
【0031】二重プロセッサシミュレータ104は、ど
んなプロセッサシミュレータが一番最後のクロックキン
グ技術を通して次に動作するかを決定する。別途のクロ
ックシミュレータがそれぞれのプロセッサシミュレータ
に対して提供される。命令をフェッチする前に2個のク
ロックシミュレータを比較して、いずれのものが最後の
ものであるかを決定する。一番最後のクロックシミュレ
ータと関連されたプロセッサシミュレータが命令の実行
をシミュレーションしてから、プロセッサシミュレータ
となる。
【0032】二重プロセッサシミュレータ104の動作
は、2個のプロセッサシミュレータ間の同期を維持する
ことによって、二重プロセッサ集積回路上での実行順序
と比較した時に、命令が一つの命令以上から外れて実行
されないようにする。このように命令の実行をシミュレ
ーションすることで費用を低く抑えることができる。二
重プロセッサシミュレータ104は、コアイメージ10
2の入力で動作する二重プロセッサ集積回路から認可さ
れる結果を模写するシミュレーション結果106を生成
する。シミュレーション結果106はコアイメージ10
2を処理することに必要な周期を表す作業データを含
む。シミュレーション結果106はコードをデバッグ
(debug )し、作業数値を得るための正確な情報を提供
する。
【0033】本実施の形態による二重プロセッサシミュ
レータ104の構造を図2に詳細に示した。
【0034】二重プロセッサシミュレータ104の最上
部は、デバッガーインタフェース(debugger interfac
e)202である。このデバッガーインタフェース20
2はプロセッサ制御及びデバッグ命令を使用者から受け
る。この場合、デバッガーインタフェース202はレジ
スタをディスプレイし、プログラム命令を目録化し、変
数を変更するような機能を遂行するための命令を受け
る。なお、デバッガーインタフェース202は、WIN
DOWS95TM使用者インタフェースのための仕様に適
合するように変形され得る。WINDOWS95TMは、
ワシントン・レドモンドのマイクロソフト社により常用
化されたものである。
【0035】同期装置(synchronizer) 204は、デバ
ッガーインタフェース202と二重プロセッサシミュレ
ータ104の残余要素間の制御を行う部分である。デバ
ッガーインタフェース202は同期装置に命令を伝達
し、同期装置204からデータが印加される。
【0036】同期装置204は、メモリ位置ARM7c
lk216(ARM7プロセッサクロックのシミュレー
ションのための)と、メモリ位置VPclk218(ベ
クトルプロセッサクロックのシミュレーションのため
の)とを含んでいる。同期装置204は2個のプロセッ
サシミュレータであるARM7プロセッサシミュレータ
206(“ARM7シミュレータ206”ともいう)と
ベクトルプロセッサシミュレータ208(“VPシミュ
レータ208”ともいう)に連結される。情報は同期装
置204と2個のプロセッサシミュレータ206、20
8間の両方向に伝達される。
【0037】ARM7プロセッサシミュレータ206と
VPプロセッサシミュレータ208は、メモリアクセス
モジュール210、コプロセッサモジュール212及び
イベントモジュール214を共有する。メモリアクセス
モジュール210の一部はプロセッサシミュレータ20
6,208に示される。メモリアクセスモジュール21
0は、2個のプロセッサシミュレータがそれぞれの変数
と共有する変数を維持する。メモリアクセスモジュール
210はARM7プロセッサのレジスタの内容を維持す
るためのメモリ位置(ARM7 reg mem)220と、ベクト
ルプロセッサのレジスタの内容を維持するためのメモリ
位置(VP reg mem)222とを備えている。
【0038】コプロセッサモジュール212は、ARM
7プロセッサシミュレータ206とVPプロセッサシミ
ュレータ208との間のデータ伝送を遂行させる役割を
する。イベントモジュール214はリセット、排除(ex
ception)及びインタラプトのようなイベントを処理す
る。メモリアクセスモジュール210、コプロセッサモ
ジュール212及びイベントモジュール214は直接的
に連結されない。
【0039】ARM7プロセッサシミュレータ206
は、VPプロセッサシミュレータ208を丈夫に連結
し、二重プロセッサ回路構造を精密に複写できる。例え
ば、ベクトルプロセッサシミュレータ208は、二重プ
ロセッサ集積回路上の状態レジスタを表すメモリ位置
(VP reg mem)220に格納された状態レジスタ変数の
書き込みが可能であり、ARM7プロセッサシミュレー
タ206は、ARM7プロセッサシミュレータ206と
VPプロセッサシミュレータ208との間の情報伝達の
ために前記と同一な状態レジスタ変数をポーリング(po
lling )することができる。
【0040】ARM7プロセッサシミュレータ206
は、VPプロセッサシミュレータ208によりポーリン
グされたレジスタに書き込みできる。メモリアクセスモ
ジュール210を通したこのような情報伝達は、ARM
7プロセッサシミュレータ206とVPプロセッサシミ
ュレータ208との間の情報伝達のためにファイル、パ
イプ、または共有されるバッファを使用することより効
率的である。このような方法には、付加的な手段管理と
性能を落とす動作のアクセスが要求される。
【0041】例えば、ある動作システムにおいて、ファ
イルを通した情報伝達のためには、そのファイルを開
き、そのファイルに記入してファイルを閉じるためのV
Pプロセッサシミュレータ208が要求され、ARM7
プロセッサシミュレータ206は前記ファイルを開き、
このファイルから読み出しを遂行してファイルを閉じる
べきである。上述のごとく、メモリアクセスモジュール
210を利用して正常的なプロセッサ動作のシミュレー
ションのための情報伝達により、余分の段階を除去でき
る。
【0042】二重プロセッサシミュレータ104の動作
を図3に詳細に図示した。
【0043】まず、“デバッガーインタフェースの始
動”ブロック302でデバッガーインタフェース202
(図2に図示されている)が始動される。“同期装置の
始動”ブロック304で使用者は二重プロセッサ回路上
で実行される命令のシミュレーションを要求し、デバッ
ガーインタフェース202は同期装置204(図2参
考)に信号を送る。
【0044】同期装置204は、ARM7プロセッサシ
ミュレータ206とVPプロセッサシミュレータ208
との間の命令実行のシミュレーションをインターリーブ
する方式に同期させて、二重プロセッサ回路上で発生す
る並列実行に近づくようにする。
【0045】同期装置204は、駆動を開始してから
“ARM7プロセッサシミュレータの活性化”ブロック
306で、ARM7シミュレータ206(図2参考)を
始動する。二重プロセッサ回路上でARM7プロセッサ
とベクトルプロセッサは主従(master-slave) 関係を有
する。ベクトルプロセッサの動作はARM7プロセッサ
で実行される命令“STARTVP”(付録B、A2ラ
イン)を通して始動される。このような関係をシミュレ
ーションするために、ARM7プロセッサシミュレータ
206が先に活性化される。前記の命令がベクトルプロ
セッサを始動するための信号として使用されるために、
必ず“STARTVP”と呼ばれる必要がないというこ
とは、当分野に通常の知識を有する者は理解できる。
【0046】ARM7プロセッサシミュレータ206が
活性化された後、同期装置204は“ARM7部分から
命令をフェッチ”ブロック308を遂行する。ブロック
308で同期装置204は、ARM7プロセッサプログ
ラム(表6に示されている付録B、A1−A4ライン)
に該当するコアイメージ102のコード部分から命令を
検索する。
【0047】“ARM7部分を終了するか?”決定31
0段階で、同期装置204はARM7プログラムが終了
されなかったこと、すなわちブロック308でARM7
命令を成功的にフェッチしたことを確認する。ARM7
プログラムが終了されると、同期装置204は動作を終
了し、デバッガーインタフェース202に戻る。
【0048】同期装置204が、ブロック308で成功
的に命令をフェッチした場合、同期装置204は“ST
ARTVP命令であるか?”決定ブロック312で、こ
の命令が“STARTVP”であるかを決定する。ブロ
ック308で同期装置204がフェッチした命令が“S
TARTVP”命令であると、処理過程は“並列処理の
シミュレーション”ブロック314に移動する。
【0049】“STARTVP”命令とぶつかる時まで
同期装置204の制御下の単一プロセッサは、単一流れ
(thread)を有する。この流れは、ARM7プロセッサ
シミュレータ206の動作と関連する。“STARTV
P”命令は、VPプロセッサシミュレータ208の動作
と関連している他の流れの生成を要求する。ブロック3
14は、次に記述する“並列処理”で詳細に説明する。
【0050】ブロック308でフェッチされた命令が
“STARTVP”でなければ、同期装置204は、A
RM7プロセッサシミュレータ206が“ARM7命令
のシミュレーション”ブロックでフェッチされた命令の
実行をシミュレーションする信号を送る機能を遂行す
る。
【0051】なお、本発明の他の実施の形態として、同
期装置204は、ARM7プロセッサシミュレータ20
6を使用するためのサブルーチン信号を送るようにして
もよい。この場合、同期装置204がARM7プロセッ
サシミュレータ206を使用する特定な方法は、同期装
置204とARM7プロセッサシミュレータのプログラ
ミング遂行に依存する。
【0052】ブロック316のプロセッシングが終了さ
れてから、ARM7プロセッサシミュレータ206は同
期装置204に戻り、制御ループはブロック308に戻
って、ARM7プログラム(付録B、A1ライン)から
付加的な命令を読み出す。
【0053】<並列処理>上述のごとくブロック314
は、二重プロセッサ集積回路のARM7プロセッサとベ
クトルプロセッサ上の命令の並列実行をシミュレーショ
ンする。ここで、ブロック314を図4に図示した。プ
ロセッシングは同期装置204がVPプロセッサ208
を活性化する“ベクトルプロセッサシミュレータの活性
化”ブロック402で開始される。VPプロセッサシミ
ュレータ208が命令をプロセッサするために用意して
から、同期装置204は“シミュレータクロックの開
始”ブロック404を実行する。
【0054】同期装置204は、2個の独立されたクロ
ックシミュレータを時間プロセッサシミュレータ20
6,208に維持させるが、この中で一方のクロックシ
ミュレータはARM7クロック(図5参考)をシミュレ
ーションし、他方のクロックシミュレータはベクトルク
ロック(図5参考)に該当する。ARM7クロックシミ
ュレータはメモリ位置ARM7clk216(図2参
考)を含む。ベクトルクロックシミュレータはメモリ位
置VPclk218(図2参考)を含む。
【0055】ブロック404で同期装置204はメモリ
位置ARM7clk216とVPclk218をt1値
(図5参考)に初期化する。
【0056】なお、本発明の実施の形態において、AR
M7クロックは40MHz周波数で動作し、ベクトルク
ロックは80MHzの周波数で動作する。なお、この二
クロックの周波数のみに制限されるのではなく、本発明
の原理はいずれの周波数のプロセッサでも使用可能であ
ることは言うまでもない。
【0057】同期装置204は、2個のプロセッサシミ
ュレータの中のいずれのものが命令を受けて次の命令を
遂行するかを決定するために、前記の二クロックシミュ
レータを利用する。同期装置204は、続いて“二重処
理流れがそのまま活性化の状態であるか?”決定ブロッ
ク406を実行する。両側の流れが活性化状態でなけれ
ば、プロセッサシミュレータの中の或る一つに対するプ
ロセッシングが終了され、これにより並列処理はこれ以
上必要なくなる。並列処理がこれ以上必要なくなると、
ブロック314は終了する。
【0058】両側の流れがまだ活性化状態であれば、プ
ロセッシングは“ARM7クロックが後であるか?”を
決定するブロック408に移動する。決定段階408で
同期装置204は、ARM7クロックシミュレータがベ
クトルクロックシミュレータより後であるかを決定す
る。このような決定はARM7clk216とVPcl
k218を比較して遂行される。例えば、ARM7cl
k(216) =t1で、VPclk(218) =t3であれば
(図5参考)、ARM7クロックシミュレータがもっと
後である。ARM7クロックがもっと後であれば、これ
はVPプロセッサシミュレータ208が命令をプロセッ
シングし、ARM7プロセッサシミュレータ206はア
イドル(idle)状態であることを表す。二重プロセッサ
回路において2個のプロセッサが存在するので、この二
プロセッサが同時に動作する。
【0059】ARM7プロセッサシミュレータ206が
アイドル状態であれば、ARM7プロセッサシミュレー
タ206は、次の命令をプロセッシングすることにより
命令実行の順序が維持され、並列処理がシミュレーショ
ンされる。例えば、図5を参考すると、VPプロセッサ
シミュレータ208が時間t4の間にベクトルプロセッ
サ動作をシミュレーションし、ARM7プロセッサシミ
ュレータ206が時間t2の間にARM7プロセッサ動
作をシミュレーションすると、命令を実行する次のプロ
セッサはARM7プロセッサシミュレータ206になる
はずである。ARM7プロセッサシミュレータ206は
少なくともVPプロセッサシミュレータ208が動作す
る時間だけ、動作する間に命令の処理を継続する。或る
命令は終了されるための時間の量が異なるので、同期装
置204はアイドル状態で最後まで待機しているプロセ
ッサシミュレータがもっと多い命令を実行するように、
2個のプロセッサシミュレータ間の命令実行の厳しいイ
ンターリービングから外れるようになる。
【0060】ARM7クロックシミュレータがベクトル
クロックシミュレータより後であれば(即ち、ARM7
clk216<VPclk218)、プロセッシングは
同期装置204がコアイメージ102のARM7プログ
ラムのコード部分(付録B、A2−A4ライン)から命
令をフェッチする“ARM7命令のフェッチ”ブロック
410に移動する。前記命令がフェッチされてから、プ
ロセッシングは同期装置204がARM7シミュレータ
206によって、ARM7プロセッサ命令の実行をシミ
ュレーションするように信号を送る“ARM7命令のシ
ミュレーション”ブロック412に移動する。命令実行
のシミュレーションの一部として同期装置204はAR
M7プロセッサ上のシミュレーティングされた命令を遂
行することにかかる時間をARM7clk216に加え
る。例えば、図5を参考すると、ARM7プロセッサシ
ミュレータ206がARM7clk(216) =t1で命令
の実行を開始し、命令を実行することに必要な時間がA
RM7プロセッサ上の1クロック周期であれば、ARM
7clk(216) はt2にセットされる。ARM7命令の
実行がシミュレーションされてから、プロセッシングは
決定段階406に移動し、命令の並列実行をシミュレー
ションするループを形成する。
【0061】この実施の形態において、ARM7プロセ
ッサが、ベクトルプロセッサが実行(付録B、A4ライ
ン)を完了することを待っている間、待機ループを形成
することも可能である。ARM7プロセッサシミュレー
タ206が待機ループをシミュレーションする時、両側
の流れはまだ活性化状態であり、並列処理がシミュレー
ションされる。
【0062】ARM7クロックシミュレータがベクトル
クロックシミュレータより後でなければ(即ち、ARM
7clk216>=VPclk218)、処理過程は
“ベクトル命令のフェッチ”ブロック414に移動して
から、“ベクトル命令のシミュレーション”ブロック4
16に移動する。
【0063】なお、本発明の他の実施の形態として、A
RM7クロックシミュレータとベクトルクロックシミュ
レータとが同一であれば、ARM7プロセッサシミュレ
ータ206がARM7プログラム命令の実行をシミュレ
ーションする。図4のブロック414で、ARM7クロ
ックシミュレータが後の場合の処理過程と類似して、同
期装置204はコアイメージ102のベクトルプログラ
ムのコード部分(付録B、A6−A7ライン)から命令
をフェッチする。ブロック416で、同期装置204は
VPクロックシミュレータ208が命令の実行をシミュ
レーションする。ベクトルプログラム命令実行のシミュ
レーションの一部として、同期装置204はVPclk
(216) をベクトルプロセッサ上の命令を実行することに
必要な時間だけ増加させる。ブロック416以後の処理
過程の制御は決定ブロック416に移動されて命令の並
列実行をシミュレーションするループを形成する。
【0064】本発明の実施の形態において、ベクトルプ
ロセッサ命令“JOIN”(付録B、A7ライン)に注
目する。ARM7命令“STARTVP”に対応する
“JOIN”は、ベクトルプログラムが終了され、VP
プロセッサシミュレータ208に対する処理流れが取り
消されなければならないし、処理過程が基本ARM7プ
ログラムに戻るはずであるということを表す。前記の命
令をベクトルプロセッサを終了する信号として使用する
ためには、必ず“JOIN”としなくても良いというこ
とは、当分野の通常の知識を有する者は理解できる。
【0065】ARM7プロセッサシミュレータ206と
VPプロセッサシミュレータ208の丈夫な連結の一つ
の長所は、同期装置204がコンテキスト(context )
とタスクスイッチング(task switching)でぶつかるよ
うになる費用の問題を避けることにある。同期装置20
4はプロセッサシミュレータ(ブロック412のARM
7プロセッサシミュレータ206とブロック416のV
Pプロセッサシミュレータ208)に信号することがで
きる。同期装置204が本来は二プロセッサ間のタスク
スイッチングであることは、当分野で通常の知識を有す
る者は理解できる。
【0066】二つのプロセッサシミュレータ206,2
08が丈夫に連結されなければ、命令の形態がその前に
シミュレーションされた形態から変更されるごとに、一
方のプロセッサシミュレータは停止し、他方のプロセッ
サシミュレータが始動されるはずであるので、実行され
る新しいプロセッサが必要である(すなわち、ARM7命令
からベクトルプロセッサ命令に変更され、またはベクト
ルプロセッサ命令からARM7命令に変更される)。
【0067】なお、本発明の他の実施の形態として決定
ブロック406から開始される図4に図示したループ
は、クロック数を減らすために変更されることもある。
図4で同期装置204は、それぞれの命令を実行してか
ら、ARM7clk(216) とVPclk(218) とを比較
する。図6は前記の変更されたループを表したもので、
ブロック602,604が追加されたことを除外して
は、図4のループと同一である。
【0068】それぞれのベクトル命令が必要とするクロ
ック周期の数を含むクロック周期検査表(clock-cycle
lookup table)(図示されていない)が同期装置204
内に構成される。ブロック414が終了された後のブロ
ック416の前、ベクトル命令の実行がシミュレーショ
ンされる前に“命令周期時間の検査”ブロック602
で、同期措置204は命令が数個の周期を必要とするか
を決定するためにクロック周期検査表を検索する。
【0069】一般的に、ARM7プロセッサ上の命令は
1周期を必要とし、ベクトルプロセッサ上の命令は多数
のクロック周期を必要とする。ブロック602が終了さ
れてから、“ベクトル命令のシミュレーション”ブロッ
ク416が上述のごとく実行される。ベクトル命令のシ
ミュレーションの後、ARM7clk(216) とVPcl
k(218) を比較する代わり、“ARM7命令の反復実行
(loop)”ブロック604で、同期装置204はベクト
ル命令に要求されるクロック数の半分に該当する数のA
RM7命令をフェッチし、その命令の実行をシミュレー
ションする。例えば、処理過程が時間t=1から開始さ
れ(図5参考)、8個のクロック周期を必要とするベク
トルプロセッサ命令が実行されると仮定すると、ベクト
ルプロセッサは時間t=5で命令の実行を終了する。V
PクロックがARM7クロックより2倍程度早いので、
ARM7clk(216) はVPclk(218) より8クロッ
ク周期でない4クロック周期遅れるようになる。
【0070】同期装置204は、4個のARM7命令を
フェッチしてから、ARM7プロセッサシミュレータ2
06に信号を送ることにより、これらの命令の遂行をシ
ミュレーションする。図4に示したプロセッサ終了の
後、同期装置204はブロック414からフェッチされ
たベクトル命令がシミュレーションされた後、4回のク
ロック比較を行う。図6に示した方法はこのような4回
のクロック比較を必要としない。ブロック606後、処
理過程は図4のブロック416以後の過程と同様であ
る。
【0071】付録Aのコンピュータプログラムは、本発
明の実施の形態において、マイクロソフト社により常用
化されたマイクロソフトビジュアルC++4.0の統合
された開発環境を利用し、コムファイルされリンクされ
たもので、マイクロソフト社により常用化されたマイク
ロソフトWINDOWS95TMを利用する個人用コンピ
ュータ上で使用されることである。
【0072】他の実施の形態において、付録Aのコンピ
ュータプログラムは、UNIX Solaris2.5
駆動システムとGCCコムファイラー及びリンカーを利
用してコムファイル、リンクされる。付録Aのコンピュ
ータプログラムに使用される特定なコンピュータ言語
と、付録Aのコンピュータプログラムにより規定される
コンピュータプロセッサが遂行される、コンピュータシ
ステムは、本発明の重要な面ではない。他のコンピュー
タ言語及び他のコンピュータシステムを利用して本発明
を具現できることは当分野の通常の知識を有する者は理
解できる。
【0073】なお、上述の実施の形態は例示的なので、
本発明を制限しない。例えば、前記の実施の形態では、
ARM7プロセッサとベクトルプロセッサのシミュレー
ションに関して記述しているが、他のプロセッサにも本
発明を適用し、2個以上のプロセッサの実行をシミュレ
ーションし、マルチプロセッサ回路が集積回路ではない
場合もある。
【0074】また、本発明を特定の望ましい実施の形態
に関連して図示、説明したが、以下の特許請求の範囲に
より用意される本発明の精神や分野を逸脱しない限り、
本発明が多様に改造及び変化することができるというこ
とは、当業界で通常の知識を有する者は容易に知ること
ができる。
【0075】このように、実施の形態では、新しい二重
プロセッサ回路シミュレータは、それぞれ分離されたシ
ミュレータを連結し、このシミュレータ間の命令の実行
をインターリーブする。この新しい二重プロセッサシミ
ュレータは、正確なシミュレーションと基礎となる集積
回路の動作において優秀な性能を提供する。
【0076】同期装置204は、RISCプロセッサシ
ミュレータとベクトルプロセッサシミュレータの調整さ
れた動作を処理する。二重プロセッサシミュレータの入
力は基礎となるRISCプロセッサの実行可能なファイ
ルと、基礎となるベクトルプロセッサの実行可能なファ
イルとを組み合って構成された実行可能な組合ファイル
から構成される。同期装置204は外部ループ内のRI
SCプロセッサと関連される、組み合わされた実行可能
なファイルから命令をフェッチする。同期装置204は
RISCプロセッサと関連されたすべての命令が遂行さ
れるとき動作を終了する。
【0077】同期装置204は、ベクトルプロセッサが
初期化しなければならないフェッチされた命令信号を除
外した前記フェッチされた命令実行をRISCプロセッ
サシミュレータがシミュレーションするようにする。ベ
クトルプロセッサが要求される場合、同期装置204は
並列処理をシミュレーションする。
【0078】並列処理をシミュレーションするために、
同期装置204は、まずベクトルプロセッサシミュレー
タを動作させた後、RISCプロセッサシミュレータに
該当するクロックシミュレータを初期時間にセットさせ
る。ベクトルプロセッサに該当するクロックシミュレー
タは同一な初期時間にセットされる。
【0079】同期装置204は、並列処理が要求される
間、内部ループを実行する。並列処理がこれ以上要求さ
れなければ、同期装置204は外部ループに戻る。内部
ループで、同期装置204はRISCクロックシミュレ
ータとベクトルクロックシミュレータとを比較し、RI
SCクロックシミュレータが遅ければ、同期装置204
は組み合わされた実行可能なプログラムからRISC命
令をフェッチする。この命令はRISCプロセッサシミ
ュレータ上でシミュレーションされる。
【0080】シミュレーションの後、RISCプロセッ
サが命令を実行するのに必要な時間がRISCクロック
シミュレータ値に加えられる。その後、同期装置204
は内部ループの最初に戻る。
【0081】ベクトルクロックシミュレータがRISC
クロックシミュレータと同一、またはRISCクロック
シミュレータより遅ければ、同期装置204は組み合わ
された実行可能なプログラムからベクトルプロセッサ命
令をフェッチする。この命令はベクトルプロセッサシミ
ュレータ上でシミュレーションされる。シミュレーショ
ンした後、ベクトルプロセッサが命令を実行するのに必
要な時間がベクトルクロックシミュレータ値に加えられ
る。それから、同期装置204は内部ループの最初に戻
る。
【0082】RISCプロセッサとベクトルプロセッサ
間の情報伝達は、共有されるメモリを利用して遂行され
る。RISCプロセッサはベクトルプロセッサレジスタ
への書き込みや読み出しを遂行し得る。
【0083】本発明によると、多数のプロセッサ回路の
動作をシミュレーションする方法及び装置が提供され
る。本発明の実施の形態において、プロセッサ回路は二
重プロセッサ集積回路である。本発明の実施の形態によ
ると、新しい二重クロックシミュレーション方法は、丈
夫に連結された2個の独立的なプロセッサシミュレータ
間の命令実行シミュレーションをインターリーブする。
集積回路上の二重プロセッサを表す2個の独立的なプロ
セッサシミュレータは、一つの共有されるアドレス空間
で統合される。2個のプロセッサシミュレータは相互に
情報を伝達し得るメモリを共有する。一般的に、命令実
行が同期されることによりシミュレータプロセッサはシ
ミュレーション命令実行を交替に行う。
【0084】このようにして、集積回路上で可能な並列
実行がシミュレーションされる。別途のクロックシミュ
レータはそれぞれのプロセッサシミュレータに備えられ
る。次の命令の実行をシミュレーションするために選択
された実際のプロセッサは、最後のクロックシミュレー
タと関連されたプロセッサである。このように命令実行
のシミュレーションが行われるようにすると、命令実行
の順序が実際の二重プロセッサ集積回路の実行順序の一
つの命令内にあることが確実になる。
【0085】
【発明の効果】本発明によると、従来のシミュレータに
比して向上された性能を有する二重プロセッサ回路のシ
ミュレータが提供され、基礎となる電子回路に存在する
信号伝達動作を正確にシミュレーションするシミュレー
タを提供できる。
【0086】
【表1】
【0087】
【表2】
【0088】
【表3】
【0089】
【表4】
【0090】
【表5】
【0091】
【表6】
【図面の簡単な説明】
【図1】本発明の実施の形態の信号プロセッサシミュレ
ータの概略構成を示す図である。
【図2】図1の信号プロセッサシミュレータの二重プロ
セッサシミュレーションの構造を示す図である。
【図3】図1の信号プロセッサシミュレータの論理流れ
図である。
【図4】図3の並列処理のシミュレーションブロックで
遂行される処理過程を示す論理流れ図である。
【図5】図1の信号プロセッサシミュレータによりシミ
ュレーションされるプロセッサのクロックを示す図であ
る。
【図6】図4の処理過程よりクロックシミュレータの周
波数を減少させるための、本発明の他の実施の形態によ
る論理流れ図である。
【符号の説明】
102 コアイメージ 104 シミュレータ 106 シミュレーション結果 202 デバッガーインタフェース 204 同期装置 206 ARM7プロセッサシミュレータ 208 ベクトルプロセッサシミュレータ 210 メモリアクセスモジュール 212 コプロセッサモジュール 214 イベントモジュール 216 メモリ位置ARM7clk 218 メモリ位置VPclk 220 メモリ位置ARM7 REG MEM 222 メモリ位置VP REG MEM

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 二重プロセッサ回路上の並列実行をシミ
    ュレーションするための信号プロセッサシミュレータで
    あって、 二重プロセッサの第1プロセッサ上の命令の実行をシミ
    ュレーションするための第1プロセッサシミュレータ
    と、 前記二重プロセッサの第2プロセッサ上の命令の実行を
    シミュレーションするための第2プロセッサシミュレー
    タと、 信号プロセッサシミュレータによりアクセスされた値を
    格納するための共有されるメモリと、 前記第1プロセッサに関するクロックをシミュレーショ
    ンするための第1クロックシミュレータと、 前記第2プロセッサに関するクロックをシミュレーショ
    ンするための第2クロックシミュレータと、 前記第1クロックシミュレータと第2クロックシミュレ
    ータとを比較し、後になるクロックシミュレータに該当
    するプロセッサシミュレータ上の命令を処理する同期装
    置と、 を備えたことを特徴とする信号プロセッサシミュレー
    タ。
  2. 【請求項2】 前記第1プロセッサシミュレータは、R
    ISCプロセッサをシミュレーションすることを特徴と
    する請求項1記載の信号プロセッサシミュレータ。
  3. 【請求項3】 前記第1プロセッサシミュレータは、A
    RMULATORであることを特徴とする請求項1記載
    の信号プロセッサシミュレータ。
  4. 【請求項4】 前記第2プロセッサシミュレータは、ベ
    クトルプロセッサをシミュレーションすることを特徴と
    する請求項1記載の信号プロセッサシミュレータ。
  5. 【請求項5】 前記共有されるメモリは、前記第1プロ
    セッサシミュレータと第2プロセッサシミュレータとに
    示されることを特徴とする請求項1乃至4のいずれかに
    記載の信号プロセッサシミュレータ。
  6. 【請求項6】 前記共有されるメモリは、前記第2プロ
    セッサシミュレータにより変更できる前記第1プロセッ
    サシミュレータのレジスタ値を含むことを特徴とする請
    求項5記載の信号プロセッサシミュレータ。
  7. 【請求項7】 前記同期装置は、前記第2プロセッサシ
    ミュレータに関する命令に要求されるクロック周期を含
    む検査表を含み、前記第2プロセッサシミュレータ上の
    命令を実行する前に、命令に必要なクロック周期を決定
    するために前記検査表を検査し、前記命令を実行してか
    ら、前記第1プロセッサシミュレータによりシミュレー
    ションされる第1プロセッサ動作が、少なくとも前記第
    2プロセッサシミュレータによりシミュレーションされ
    る第2プロセッサの動作期間程度に遂行される時まで、
    前記第1プロセッサシミュレータ上の1個以上の他の命
    令を実行することを特徴とする請求項1乃至6のいずれ
    かに記載の信号プロセッサシミュレータ。
  8. 【請求項8】 二重プロセッサ回路上で実行される命令
    を含む実行可能なプログラムと、 前記二重プロセッサ回路の第1プロセッサ上の命令実行
    をシミュレーションするための第1プロセッサシミュレ
    ータと、 前記二重プロセッサ回路の第2プロセッサ上の命令実行
    をシミュレーションするための第2プロセッサシミュレ
    ータと、 前記第1プロセッサシミュレータと第2プロセッサシミ
    ュレータとの間の命令実行をインターリーブするための
    同期装置と、 第1プロセッサクロックを示す第1クロック値と、 第2プロセッサクロックを示す第2クロック値と、 前記第1プロセッサシミュレータと第2プロセッサシミ
    ュレータに示されて、前記第1プロセッサシミュレータ
    に要求される一個以上の第1レジスタ値及び前記第2プ
    ロセッサシミュレータに要求される一個以上の第2レジ
    スタ値を含む、共有されるメモリと、を含むコンピュー
    タ格納媒体に提供される二重プロセッサ回路の動作をシ
    ミュレーションするためのコンピュータ実行方法におい
    て、 前記実行可能なプログラムから第1命令をフェッチし、 前記第1命令が並列処理のための信号でなければ、前記
    第1プロセッサシミュレータ上の第1命令実行をシミュ
    レーションし、 前記第1命令が並列処理のための信号であれば、並列処
    理をシミュレーションするコンピュータ実行段階を含む
    第1ループを遂行し、 前記の並列処理をシミュレーションする段階が、 前記クロック値と第2クロックとを比較し、 前記第1クロック値が第2クロック値より小さければ、
    前記の実行可能なプログラムから第2命令をフェッチ
    し、前記第1プロセッサシミュレータ上の第2命令の実
    行をシミュレーションし、前記第1プロセッサ上の第2
    命令の実行に必要な時間を前記第1クロック値に加え
    て、 前記第1クロック値が前記第2クロック値より同一であ
    るかまたは大きければ、前記の実行可能なプログラムか
    ら第3命令をフェッチし、前記第2プロセッサシミュレ
    ータ上の第3命令の実行をシミュレーションし、前記第
    2プロセッサ上の第3命令を遂行するに必要な時間を前
    記第2クロック値に加えて、 前記第2プロセッサシミュレータがこれ以上必要となく
    なると前記第1ループに戻って、 前記の実行可能なプログラム内の第1プロセッサシミュ
    レータと関連されているすべての命令がシミュレーショ
    ンされたら、前記第1ループを終了するコンピュータ実
    行段階を含むことを特徴とする二重プロセッサ回路の動
    作をシミュレーションするためのコンピュータ実行方
    法。
  9. 【請求項9】 二重プロセッサ回路上で実行される命令
    を含む実行可能なプログラムと、 前記二重プロセッサ回路の第1プロセッサ上の命令の実
    行をシミュレーションするための第1プロセッサシミュ
    レータと、 前記二重プロセッサ回路の第2プロセッサ上の命令の実
    行をシミュレーションするための第2プロセッサシミュ
    レータと、 前記第1プロセッサシミュレートと第2プロセッサシミ
    ュレート間の命令の実行をインターリーブするための同
    期装置と、 第1プロセッサクロックを示す第1クロック値と、 第2プロセッサクロックを示す第2クロック値と、 命令を実行することに必要な時間を示す検査表と、 前記第1プロセッサシミュレータと第2プロセッサシミ
    ュレータで示されて、前記第1プロセッサシミュレータ
    に要求される1個以上の第1レジスタ値及び前記第2プ
    ロセッサシミュレータに要求される1個以上の第2レジ
    スタ値を含む、共有されるメモリと、を含むコンピュー
    タ格納媒体に提供される二重プロセッサ回路の動作をシ
    ミュレーションするためのコンピュータ実行方法におい
    て、 前記の実行可能なプログラムから第1命令をフェッチ
    し、 前記第1命令が、並列プロセッシングのための信号でな
    ければ、前記第1プロセッサシミュレータ上の第1命令
    の実行をシミュレーションし、 前記第1命令が、並列処理のための信号であれば、並列
    処理をシミュレーションするコンピュータ実行段階を含
    む第1ループを遂行し、 前記の並列処理をシミュレーションする段階が、 前記クロック値と第2クロック値とを比較し、 前記第1クロック値が第2クロックより小さければ、前
    記の実行可能はプログラムから第2命令をフェッチし、
    前記第1プロセッサシミュレータ上の第2命令の実行を
    シミュレーションし、前記第1プロセッサ上の第2命令
    を実行することに必要な時間を前記第1クロック値に加
    えて、 前記第1クロック値が前記第2クロック値より同一であ
    るかまたは大きければ、前記の実行可能なプログラムか
    ら第3命令をフェッチし、前記第3命令に必要な実行時
    間を決定するために検査表をアクセスし、前記第2プロ
    セッサシミュレータ上の第3命令の実行をシミュレーシ
    ョンし、前記第2プロセッサ上の第3命令を遂行するこ
    とに必要な時間を前記第2クロック値に加えて、前記第
    3命令に必要な実行時間を基準とし、前記実行可能なプ
    ログラムから所定の命令の実行をシミュレーションし、 前記第2プロセッサシミュレータがこれ以上必要となく
    なると前記第1ループに戻って、 前記の実行可能なプログラム内の第1プロセッサシミュ
    レータと関連されているすべての命令がシミュレーショ
    ンされたら、前記第1ループを終了するコンピュータ実
    行段階を含むことを特徴とする二重プロセッサ回路の動
    作をシミュレーションするためのコンピュータ実行方
    法。
JP28406397A 1996-10-18 1997-10-16 二重プロセッサ回路の動作をシミュレーションするためのコンピュータ実行方法及び信号プロセッサシミュレータ Expired - Fee Related JP4564110B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/730866 1996-10-16
US08/730,866 US6014512A (en) 1996-10-18 1996-10-18 Method and apparatus for simulation of a multi-processor circuit

Publications (2)

Publication Number Publication Date
JPH10228393A true JPH10228393A (ja) 1998-08-25
JP4564110B2 JP4564110B2 (ja) 2010-10-20

Family

ID=24937110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28406397A Expired - Fee Related JP4564110B2 (ja) 1996-10-18 1997-10-16 二重プロセッサ回路の動作をシミュレーションするためのコンピュータ実行方法及び信号プロセッサシミュレータ

Country Status (4)

Country Link
US (1) US6014512A (ja)
JP (1) JP4564110B2 (ja)
KR (1) KR100257516B1 (ja)
TW (1) TW364087B (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1025500B1 (de) * 1998-09-02 2003-12-10 Infineon Technologies AG Verfahren und vorrichtung zur systemsimulation von mikrocontrollern/mikroprozessoren und zugehörenden peripheriemodulen
US6718294B1 (en) * 2000-05-16 2004-04-06 Mindspeed Technologies, Inc. System and method for synchronized control of system simulators with multiple processor cores
US20020049910A1 (en) * 2000-07-25 2002-04-25 Salomon Allen Michael Unified trust model providing secure identification, authentication and validation of physical products and entities, and processing, storage and exchange of information
JP3884914B2 (ja) * 2001-01-30 2007-02-21 株式会社ルネサステクノロジ 半導体装置
US6981166B2 (en) * 2002-01-07 2005-12-27 International Business Machines Corporation Method, apparatus, and computer program product for pacing clocked operations
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
US20050120278A1 (en) * 2003-11-19 2005-06-02 Smith Zachary S. Systems and methods for verifying lockstep operation
US20050114735A1 (en) * 2003-11-20 2005-05-26 Smith Zachary S. Systems and methods for verifying core determinacy
US7477713B2 (en) * 2004-03-02 2009-01-13 International Business Machines Corporation method for providing automatic adaptation to frequency offsets in high speed serial links
US20060070042A1 (en) * 2004-09-24 2006-03-30 Muratori Richard D Automatic clocking in shared-memory co-simulation
US7742905B2 (en) 2005-02-25 2010-06-22 Coware, Inc. Method and system for dynamically adjusting speed versus accuracy of computer platform simulation
US7716031B2 (en) * 2005-02-25 2010-05-11 Coware, Inc. Interface converter for unified view of multiple computer system simulations
CN100336033C (zh) * 2005-02-25 2007-09-05 清华大学 单芯片多处理器结构模拟系统
WO2006093762A1 (en) * 2005-02-25 2006-09-08 Coware, Inc. Computer platform simulation
US8036873B2 (en) 2005-02-28 2011-10-11 Synopsys, Inc. Efficient clock models and their use in simulation
US9367493B2 (en) * 2005-12-09 2016-06-14 Globalfoundries Inc. Method and system of communicating between peer processors in SoC environment
US7711534B2 (en) * 2005-12-09 2010-05-04 International Business Machines Corporation Method and system of design verification
US7849362B2 (en) * 2005-12-09 2010-12-07 International Business Machines Corporation Method and system of coherent design verification of inter-cluster interactions
US8543367B1 (en) 2006-02-16 2013-09-24 Synopsys, Inc. Simulation with dynamic run-time accuracy adjustment
US7899661B2 (en) 2006-02-16 2011-03-01 Synopsys, Inc. Run-time switching for simulation with dynamic run-time accuracy adjustment
WO2008004006A1 (en) * 2006-07-06 2008-01-10 Imperas Ltd Multiprocessor development environment
US8423959B1 (en) 2006-12-11 2013-04-16 Synopsys, Inc. Techniques for coordinating and controlling debuggers in a simulation environment
US9317636B1 (en) * 2006-12-11 2016-04-19 Synopsys, Inc. System and method for stopping integrated circuit simulation
US8397220B1 (en) 2007-02-12 2013-03-12 Synopsys, Inc. Simulation control techniques
US20090055155A1 (en) * 2007-08-20 2009-02-26 Russell Klein Simulating execution of software programs in electronic circuit designs
CA2744746C (en) * 2008-12-15 2019-12-24 Exegy Incorporated Method and apparatus for high-speed processing of financial market depth data
EP2898436A1 (en) * 2012-09-18 2015-07-29 Siemens Aktiengesellschaft Multiple programmable logic controller simulator
US11042681B1 (en) * 2017-03-24 2021-06-22 Ansys, Inc. Integrated circuit composite test generation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05205005A (ja) * 1990-03-30 1993-08-13 Internatl Business Mach Corp <Ibm> ロジック・シミュレーション・マシン用ホスト・インタフェース
US5603012A (en) * 1992-06-30 1997-02-11 Discovision Associates Start code detector
US5758176A (en) * 1994-09-28 1998-05-26 International Business Machines Corporation Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system

Also Published As

Publication number Publication date
TW364087B (en) 1999-07-11
KR100257516B1 (ko) 2000-06-01
KR19980032143A (ko) 1998-07-25
US6014512A (en) 2000-01-11
JP4564110B2 (ja) 2010-10-20

Similar Documents

Publication Publication Date Title
JP4564110B2 (ja) 二重プロセッサ回路の動作をシミュレーションするためのコンピュータ実行方法及び信号プロセッサシミュレータ
EP0528585B1 (en) Data processing system with internal instruction cache
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US7197671B2 (en) Generation of trace elements within a data processing apparatus
JP3684831B2 (ja) マイクロコンピュータ、電子機器及びデバッグシステム
US20080208555A1 (en) Simulation method and simulation apparatus
US5815688A (en) Verification of accesses in a functional model of a speculative out-of-order computer system
JPS58222355A (ja) 論理シミユレ−シヨン機械
US8762779B2 (en) Multi-core processor with external instruction execution rate heartbeat
JP2693678B2 (ja) データ処理装置
US20120151186A1 (en) Controlling simulation of a microprocessor instruction fetch unit through manipulation of instruction addresses
JP3899104B2 (ja) システム開発方法及びデータ処理システム
CN114168200B (zh) 多核处理器访存一致性的验证系统及方法
JP2008140405A (ja) 電子回路と制御プログラムとのコバリデーション方法
JP2002163127A (ja) トレース制御回路
US7228513B2 (en) Circuit operation verification device and method
Fox An algebraic framework for modelling and verifying microprocessors using HOL
JP3953243B2 (ja) システム分析のためにバス・アービトレーション制御を使用する同期方法及び装置
JP2002183750A (ja) レンダリングシステム及びレンダリング方法
US6957370B2 (en) Digital signal processor including an interface therein capable of allowing direct access to registers from an external device
JPH05158740A (ja) 計算機性能評価装置
JP3085730B2 (ja) 複合cpuシステムの並列シミュレーション方式
JP3349911B2 (ja) マイクロプロセッサ及びその開発支援装置
JP2520158B2 (ja) ディジタルシグナルプロセッサのデバッグ方式
TWI470421B (zh) 微處理器及其除錯方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060404

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060703

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061002

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070508

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070905

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070911

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080314

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100507

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100512

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100608

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100730

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

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees