JPH09293002A - ハードウェア・ソフトウェア相互作用を結合した、コンピュータシステムのシミュレーション・システム、および、方法 - Google Patents

ハードウェア・ソフトウェア相互作用を結合した、コンピュータシステムのシミュレーション・システム、および、方法

Info

Publication number
JPH09293002A
JPH09293002A JP32190896A JP32190896A JPH09293002A JP H09293002 A JPH09293002 A JP H09293002A JP 32190896 A JP32190896 A JP 32190896A JP 32190896 A JP32190896 A JP 32190896A JP H09293002 A JPH09293002 A JP H09293002A
Authority
JP
Japan
Prior art keywords
target
processor
hardware
emulator
microprocessor
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
JP32190896A
Other languages
English (en)
Inventor
Geoffrey J Bunza
ジェイ ブンザ ジェフリー
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.)
Eagle Design Automation Inc
Original Assignee
Eagle Design Automation Inc
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 Eagle Design Automation Inc filed Critical Eagle Design Automation Inc
Publication of JPH09293002A publication Critical patent/JPH09293002A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/919Designing, planning, programming, CAD, CASE
    • Y10S706/92Simulation

Landscapes

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

Abstract

(57)【要約】 【目的】標的ハードウェア・ソフトウェアの完全テスト
を効率的に、低コストで実行することを可能にするシス
テムを提供する。 【構成】ハードウェアと実行ソフトウェアの、相互に作
用を及ぼし合う要素を結合させた標的電子システムを、
一部は物理的エミュレーション手段により、一部は概念
的なソフトウェア・シミュレーションにより、シミュレ
ートするシステム。プロセッサー・エミュレータを、通
信リンクによって、ハードウェア・シミュレータに結合
する。このプロセッサー・エミュレータは標的マイクロ
プロセッサーの機能性を与え、一方、ハードウェア・シ
ミュレータは、付加的な標的回路をシミュレートする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的に、コンピ
ュータ・ハードウェア・シミュレータに関わる。特に、
ハードウェア、ソフトウェア相互作用を併用するシステ
ム・シミュレーション用のシステムと方法に関わる。
【0002】
【従来の技術】コンピュータ・シミュレーションの使用
は、多くの分野で広く普及している。そのような、分野
の一つとして、例えば、回路設計がある。集積回路の製
造コストはきわめて高いので、集積回路に組み込まれる
ハードウェアについては、実際のチップ製造前にテスト
することが好ましい。この目的のため、集積回路メーカ
ーは、ハードウェアと、そのハードウェアによる実行を
企図されているソフトウェアのテストのために、シミュ
レータを使うことが多い。目的とするハードウェア設計
案を、標的ハードウェアと名づけ、この標的ハードウェ
アによる実行を企図されているソフトウェアを、標的プ
ログラムと名づけることにする。標的ハードウェアとソ
フトウェアをシミュレートするのに用いられる技法はい
くつかある。一つの方法は、コンピュータ・ハードウェ
ア・シミュレータを用いてハードウェアをシミュレート
するやり方である。このハードウェア・シミュレータ
は、標的ハードウェアの応答をシミュレートするソフト
ウェア・プログラムであり、完全にソフトウェアとして
収められている。したがって、このハードウェア・シミ
ュレータにおいては、標的ハードウェアと標的プログラ
ムは、完全にコンピュータ・ソフトウェアによってシミ
ュレートされる。もう一つの方法は、通常、標的ハード
ウェアの一部を形成し、かつ、標的プログラムを実行す
るのに用いられるマイクロプロセッサーのモデルとして
マイクロプロセッサー・エミュレータを用いるやり方で
ある。この場合、標的プログラムと、標的ハードウェア
の一部が、ハードウェア装置、例えば、プロセッサー・
エミュレータによってシミュレートされることになる。
【0003】
【発明が解決しようとする課題】前記の方法のいずれに
も利点と欠点がある。ハードウェア・シミュレータはき
わめて遅く、手間がかかる。特に、標的プログラムを実
行するマイクロプロセッサーが複雑で、それをシミュレ
ートするのに使用する場合はそうである。この場合、通
常のハードウェア・シミュレータを用いる場合、全標的
プログラムをテストするのは実際的ではない。極端に長
い実行時間を要するからである。プロセッサー・エミュ
レータは、ハードウェア・シミュレータに比べると、ず
っと早く標的プログラムを実行することができるが、実
行のためには、標的マイクロプロセッサーと相互作用を
持つべき外部回路の開発が必要である。したがって、標
的ハードウェア・ソフトウェアの完全テストを効率的
に、低コストで実行することを可能にするシステムにた
いしては大きな要求があることは理解できる。本発明
は、このような利点と共に、他の利点をももたらすもの
であり、それらの利点については、下記の説明と、付属
の図によって具体的に示す。
【0004】
【課題を解決するための手段】本発明は、標的マイクロ
プロセッサーとシミュレートされる標的回路、および、
その標的マイクロプロセッサー上で実行される付属の標
的ソフトウェアを含む電子システムを検査・分析するた
めのシステムと方法において具体化される。このシステ
ムは、標的ソフトウェアを含む、複数のコンピュータ指
令を保存するメモリー、および、そのマイクロプロセッ
サーをエミュレートするためのハードウェア装置を搭載
するプロセッサー・エミュレータから成る。このプロセ
ッサー・エミュレータは、前記メモリーと結合し、コン
ピュータ指令を実行する。ハードウェア・シミュレータ
が、このプロセッサー・エミュレータと結合して、標的
回路をシミュレートする。通信インタフェースが、メモ
リー、プロセッサー・エミュレータ、および、ハードウ
ェア・シミュレータ間の通信を制御する。プロセッサー
・エミュレータは、メモリーと連絡し、コンピュータ指
令を受け取り、また、ハードウェア・シミュレータと通
信インタフェースによって連絡しているが、情報のやり
取りは、標的ソフトウェアが標的回路との相互作用を要
求する場合に限られる。
【0005】プロセッサー・エミュレータは、コンピュ
ータ・ネットワーク結合によってハードウェア・シミュ
レータと結合していてもよい。その場合、通信インタフ
ェースがネットワーク上の情報通信を制御する。このシ
ステムはまた、プロセッサー・エミュレータと結合した
例外検出器を含んでいてもよい。すなわち、この検出器
によって、標的ソフトウェアにたいし標的回路と相互作
用を持つことを要求する場合が検出される。この例外検
出器は、複数のコンピュータ指令の実行を一時的に停止
してもよい。一方、その間に、ハードウェア・シミュレ
ータは、標的ソフトウェアを標的回路と相互作用を持た
なければならないように仕向けたその場合を処理する。
標的ソフトウェアを標的回路と相互作用を持たなければ
ならないように仕向けた場合は、ハードウェア・シミュ
レータにたいする入力/出力 (I/O) 指令であってもよ
い。この場合、通信インタフェースが、プロセッサー・
エミュレータから、ハードウェア・シミュレータに発せ
られる I/O 指令の伝達を制御する。通常、プロセッサ
ー・エミュレータは、第 1 データ・フォーマットを利
用し、ハードウェア・シミュレータは、第 2 データ・
フォーマットを用いる。本システムは、トランスレータ
を含む。これは、標的ソフトウェアにたいし標的回路と
相互作用を持つよう要求した事象について、それを、第
1 データ・フォーマットから、相互作用を要求する事
象用の第 2 データ・フォーマットに書き換えるためで
ある。ハードウェア・シミュレータは、標的回路をシミ
ュレートするためのプロセッサー・モデル・シェルを含
んでいてもよい。その場合、本システムはまたマッパー
を含む。これは、事象の種類を、プロセッサー・モデル
・シェルと適合する一組の信号列にマップ(map) するた
めである。プロセッサー・エミュレータは、このトラン
スレータ、および、マッパーに、第 1 コンピュータ・
ネットワーク結合を通じて接続されていてもよい。この
場合、通信インタフェースが、第 1 ネットワーク上の
通信を制御する。トランスレータとマッパーは、第2 コ
ンピュータ・ネットワーク結合を通じて、ハードウェア
・シミュレータに接続されていてもよい。この場合、プ
ロセッサー・エミュレータとハードウェア・シミュレー
タが、第 1、第 2 ネットワーク結合を通じて行なう通
信は、通信インタフェースが制御する。好ましい実施態
様として、マッパーが事象の種類を直接決めて、その事
象種類を、トランスレータの助けを借りずに、ハードウ
ェア・シミュレータと適合する一組の信号にマップして
もよい。
【0006】ある実施例では、プロセッサー・エミュレ
ータは、マイクロプロセッサー・エミュレータであり、
その内部に組み込まれたメモリーが、コンピュータ指令
を含む集積メモリーを統合する構成を持つ。また別の実
施例では、プロセッサー・エミュレータは、メモリーを
内部に組み込んだハードウェア回路エミュレータであ
り、その組み込んだメモリーがコンピュータ指令を含む
ものである。また別の実施例では、本システムは、第
1、第 2 標的マイクロプロセッサーを含んでおり、それ
らは、それぞれの標的マイクロプロセッサー上で実行さ
れる一組のコンピュータ指令を保存するメモリーを持
つ。この実施例では、第 1、第2 プロセッサー・エミュ
レータからハードウェア・シミュレータへ向けて発せら
れる通信は、通信インタフェースが制御する。第 1、お
よび、第 2 プロセッサー・エミュレータは、それぞ
れ、第 1、および、第 2 メモリーと連絡し、それぞれ
のメモリーから、第 1、および、第 2 組のコンピュー
タ指令を受け取る。第 1 プロセッサー・エミュレータ
は、通信インタフェースによって、ハードウェア・シミ
ュレータと連絡するが、それは、第 1 標的マイクロプ
ロセッサーの標的ソフトウェアが標的回路との相互作用
を要求する事象が生じた場合に限られる。また、第 2
プロセッサー・エミュレータは、通信インタフェースに
よって、ハードウェア・シミュレータと連絡するが、そ
れは、第 2 標的マイクロプロセッサーの標的ソフトウ
ェアが標的回路との相互作用を要求する事象が生じた場
合に限られる。
【0007】この二連標的プロセッサー例はさらに、通
信制御器として、第 1、および、第2 部分を含んでいて
もよい。この場合、通信制御第 1 部分は、第 1 プロセ
ッサー・エミュレータと機能的に結合し、第 1 プロセ
ッサー・エミュレータとハードウェア・シミュレータ間
の通信を制御する。ただし、その制御は、第 1標的マイ
クロプロセッサーの標的ソフトウェアが標的回路との相
互作用を要求する事象が生じた場合に限られる。通信制
御第 2 部分は、第 2 プロセッサー・エミュレータと機
能的に結合し、第 2 プロセッサー・エミュレータとハ
ードウェア・シミュレータ間の通信を制御する。ただ
し、その制御は、第 2 標的マイクロプロセッサーの標
的ソフトウェアが標的回路との相互作用を要求する事象
が生じた場合に限られる。この実施例では、第 1、およ
び、第 2 プロセッサー・エミュレータは、マイクロプ
ロセッサー・エミュレータでもよいし、ハードウェア回
路エミュレータであってもよい。
【0008】
【発明の実施の形態】32 ビット・マイクロプロセッサ
ーや、複雑なオペレーティング・ソフトウェアの登場と
共に、内部搭載システムがきわめて複雑なシステムにな
った。今日製造される電子製品の内、莫大なものが、内
部に保存されたソフトウェア・プログラムを実行するコ
ンピュータ・ハードウェアを何らかの形で含んでいる。
内部搭載システムは、通常、指令を実行したり、アプリ
ケーション特異的集積回路 (ASIC) や、特注集積回路
(IC) と相互作用を持ったりするマイクロプロセッサー
を含んでいる。システムの中で使用されるマイクロプロ
セッサーを、ここでは標的マイクロプロセッサーと名づ
ける。それが ASIC であれ、特注 IC であれ、他の形式
の電子回路であれ、ともかく標的マクロプロセッサーと
相互作用を持つ外部回路を、ここでは、標的回路と名づ
ける。標的回路と標的マイクロプロセッサーとの結合
を、ここでは、標的ハードウェアと名づける。標的マイ
クロプロセッサーによる実行が企図されているソフトウ
ェア・プログラムを、ここでは、標的プログラムと名づ
ける。
【0009】現代の電子部品設計はきわめて複雑、高密
度であるから、標的ハードウェアと標的プログラムを含
め、最初のシステム原形は、通常、形態、適合性、およ
び、機能において最終製品に近似していることが望まし
い。したがって、標的ハードウェアの原形も、工場で製
造され、それぞれの資格検査・製品検査をパスした ASI
C や IC を含むことになる。標的プログラムに関して
は、通常、コードは、モヂュールごとに、設計され、書
かれ、検査される。モヂュール統合工程はさらに、統合
されたソフトウェア・モヂュールの検査を行なう。しか
しながら、標的ハードウェアは、このソフトウェア開発
の時点で入手できないこともあるから、その場合は、標
的ハードウェアと標的プログラムの相互作用を検査する
ことはできない。この存在しない標的ハードウェアに代
わるものとして、設計の断片が「スタブ出し(stubbed o
ut) 」されたり、または、雛型を造り、標的ハードウェ
アの、予想される非存在部分の代用とする。この「スタ
ブ出し」という用語は、非存在の回路のある位置へ移動
というプログラムの請求にたいする模擬応答を指す。プ
ログラマーは、標的回路から真の応答がなくとも、標的
プログラムに、それを無視させるような返答指令をプロ
グラムしなければならない。模擬標的ハードウェアを代
用するには、もとのハードウェア設計仕様をさらに詳細
に解釈しなければならない。ソフトウェアをハードウェ
ア原形に載せる以前に、ソフトウェア・システムの統合
操作を一度も行なったとことがないなどはごく当たり前
のことで、ましてや、総合テストを行なうなどは滅多に
ない(スタブ出しであろうが、他の方法であろうが)。
【0010】ソフトウェア技術者が仕事を始める時に
は、標的プログラムを最終的に実行することになる標的
ハードウェアの実体は存在しない。標的プログラムは、
既存のシステムとクロスコンパイルしてテストすること
ができる。また、標的プログラムのハードウェア依存部
分は、他のソフトウェア・モヂュールでエミュレートす
ることができる。通常、このためには、シミュレートさ
れるハードウェア機能を書かなければならない。それに
よって、標的ハードウェアとの低位の相互作用をシミュ
レートし、問題の設計にたいする「ブラック・ボック
ス」的接近を可能にするためである。したがって、ある
特定のソフトウェア機能を書き、それによって、標的ハ
ードウェアからの予想される応答をシミュレートするこ
とができる。もし計画の標的ハードウェアが変更になっ
ても、特定の、シミュレートされたハードウェア機能を
修正するだけでよい。シミュレーション・プログラムの
他の部分はそのまま存続する。この方法は、ある程度の
ソフトウェア・テストも可能にする。しかしながら、特
注ソフトウェア・モヂュールにおける標的ハードウェア
をエミュレートする能力は、通常は、きわめて限定され
る。まだ製造されていない標的ハードウェアと同等の機
能モヂュールを書くのは、手間のかかるモデル構築作業
となることがある。さらに、そのソフトウェア・モヂュ
ールが標的ハードウェア回路と適合する応答を与えるこ
とを証明するのはもっと膨大な作業となることがある。
なぜなら、ソフトウェア・モヂュールは、単に、もとの
システム仕様にたいする、プログラマーの解釈にすぎな
いからである。開発システムの大部分が、たまたま、予
想される標的コンピュータ・システムと一致する場合を
除いては、この方法では、通常、標的プログラムは実行
されない。
【0011】通常、標的システム設計のハードウェア部
分とソフトウェア部分とは、標的ハードウェアの原形が
製造された時点で始めて結合される。実際の標的ハード
ウェアはそれ以前に存在しなかったわけであるから、原
形標的ハードウェアとソフトウェアとの統合時に、載せ
た標的プログラムが動かないということはしばしばあ
る。また、一般に、統合時の問題は、厳密にソフトウェ
ア上の不具合だけによることが多い。このような標的プ
ログラムの問題のために、ソフトウェア開発に大きな遅
れを生ずることがある。統合に関わるその他の問題とし
て、標的ハードウェアと標的プログラムとの相互作用に
よるものがある。以上から、ASIC や、特注 IC 設計は
大コストを要するが、ソフトウェア修正は比較的低コス
トで簡単なことから、ソフトウェアを、標的ハードウェ
アの原形に無理矢理合わせることが通例であるが、その
ために、計画のソフトウェア開発総合時間が延びる。
【0012】標的ハードウェアは、チップ、ボード、お
よび、システム・レベルで、様々な程度でシミュレート
することが可能である。この場合、シミュレート用標的
ハードウェアが使えるのであるから、実際の標的ハード
ウェアが建造される前に、コードをデバッグしたり、標
的プログラムと標的ハードウェア両方の正常動作を確か
めることを含め、システム・シミュレーションに標的プ
ログラムを含めることができるから、大きな利益とな
る。標的ハードウェアと標的プログラムの相互作用に伴
う問題も、最終的なハードウェア製造前に検出、是正す
ることができるから、ASIC 再設計というコストと時間
のかかる作業を省略することができる。現在の技術では
ただ、初歩的な、性能の低いハードウェア・ソフトウェ
ア・シミュレーションだけが簡単化されるにすぎない。
数百行の標的プログラム・コードを実行するマイクロプ
ロセッサーをシミュレートするには、大規模な処理能力
が必要である。従来の、ハードウェア・シミュレート用
マイクロプロセッサーは、毎秒約 1-4 個のマイクロプ
ロセッサー指令を実行するにすぎず、これでは、やっと
システムを立ち上げることができるにすぎない。相当量
の標的プログラム・コードが実行される有効なシステム
・シミュレーションを行なうには、大量の計算実行用の
リソースが必要である。
【0013】標的ハードウェアの原形を建造し、それに
よって、標的プログラムが、特注設計の標的回路や標的
マイクロプロセッサーと適合して動作することを確かめ
るやり方がある。原形標的ハードウェアを用いる場合の
問題点の一つは、原形が一旦建造されると、デバッグの
視認性が失われることである。この技術分野に熟練して
いる人であればすぐ察せられるように、通常の内蔵型シ
ステムは、デバッグ機能や、制御機能をまったく持って
いない。間違いが、原形標的システムの中に検出された
場合、その問題点をデバッグし、分析し、訂正するのに
必要なソフトウェア開発ツールを利用する手立てがな
い。視認性が失われるというのは、内部レジスターの内
容、メモリー配置などを調べることができない、という
ことである。原形ハードウェアはさらに、デバッグ制御
機能を持たない。すなわち、標的プログラムの流れを、
スタート・コマンドやストップ・コマンド、ワン・ステ
ップ・コマンドなどによって制御する機能を持っていな
い。
【0014】
【比較例】従来のシミュレーション・システムについて
簡単に触れておくことは、本発明の特徴を明確にするの
に有効であろう。従来のシミュレーション・システム
は、ハードウェア型、ソフトウェア型、併用型と分類で
きる。「腕力型(brute-force) 」と呼ばれる標的システ
ム評価法である、ハードウェア型シミュレーション法
は、図 1に示してあるが、ハードウェア・シミュレータ
20 を用いる。ハードウェア・シミュレータ 20 は、標
的マイクロプロセッサーと標的回路の電気的、論理的性
質を含めて、標的ハードウェアの記述を組み込んだソフ
トウェア・プログラムである。標的ハードウェア設計
は、模式図によって図式的に特定してもよいし、また
は、ハードウェア記述言語 (HDL)、例えば、VHDL で特
定してもよい。ハードウェア・シミュレータ 20 は市販
の製品である。
【0015】ハードウェア・シミュレータ 20 は、標的
ハードウェアの信号伝達と、論理的機能性を、事象ごと
にシミュレートする。ここで注意したいのは、通常の、
マイクロプロセッサーの指令サイクルは、実際には、標
的内における多数のハードウェア事象の結果として得ら
れるということである。したがって、ハードウェア・シ
ミュレータ 20 は、信号タイミング、信号強度、およ
び、論理機能をできるだけ正確に表わそうとする。この
ため、これらハードウェア事象をシミュレートする際
に、ナノ秒以下の時間精度を実現することもしばしばで
ある。高度に複雑な標的マイクロプロセッサーにたい
し、このような高精度を実現するために、機能類が詳細
な構造によって表わされることがよくある。もっとも、
ハードウェア・シミュレータの多くは、スイッチまたは
トランジスター・レベル型式から、高度の実体追随型式
まで、様々のレベルのモデル抽出に対応するようになっ
ているが。
【0016】標的プログラム 22 は、オブジェクト・コ
ードにコンパイルされ、このオブジェクト・コードは、
ハードウェア・シミュレータ 20 内の、プロセッサー・
メモリー・モデル 24 にダウンロードされる。プロセッ
サー機能モデル 26 は、標的マイクロプロセッサーの電
気的・論理的性質を含むソフトウェア記述である。一
方、標的回路機能モデル 28 は、標的回路、例えば、AS
IC、その他の、特注ないし半特注設計のモデルとなる。
ハードウェア・シミュレータ 20 により、プロセッサー
機能モデル 26 は、標的プログラムの実行を事象ごとに
シミュレートすることができる。前述したように、プロ
セッサー機能モデル 26 と標的回路機能モデル 28 は、
従来の HDL により、様々なレベルの抽出化に合わせる
ことができる。
【0017】標的ハードウェアをシミュレートするのに
ハードウェア・シミュレータ 20 を用いる場合不都合な
点がある。マイクロプロセッサー・メーカーは、全機能
性プロセッサー・モデル 20 を販売することにたいして
は用心深い。なぜなら、競合製品に交換可能な形で組み
込まれる可能性があるからである。さらに、全機能性プ
ロセッサー・モデル 26 は、極めて精細なもので、標的
マイクロプロセッサーのような複雑回路でも扱いかねる
ことがある。厳密なシミュレーションのためには、ハー
ドウェア・シミュレータ 21 は、標的マイクロプロセッ
サー内に起こる活動をすべて、プロセッサー機能モデル
26 を用いてシミュレートし、それによって、タイミン
グ・エラー、競争状態などを検出しなければならない。
このため、標的ハードウェアによって実行される標的プ
ログラム 22 の各指令をシミュレートするのに、ハード
ウェア・シミュレータ 20 内のたくさんのプロセッサー
・サイクルを必要とすることになる。全機能性プロセッ
サー・モデル 26 をシミュレートするのに必要な実行時
間は、シミュレーション用実行時間をさらに大きく増す
ことになる。標的プログラム 22 が長時間を要すること
もある。標的プログラム 22 にはずい分長いものもあ
る。大きな標的プログラム 22 のシミュレーションに長
時間かかる上に、それをプロセッサー・メモリー・モデ
ル 24 に組み込むためにさらに負担がかかることとな
り、これが、大量のシステム・リソースを消費する。こ
のため、シミュレーション実行時間が受容不能なほどに
長くなることがある。通常のシミュレーション速度が、
やっと毎秒 2-4 マイクロプロセッサー指令にしかなら
ないことがある。
【0018】もしも標的プログラム 22 の動作が不良の
場合、プログラマーは、標的プログラムをデバッグし、
さらに、目的コード位置を、通常のソフトウェア開発環
境外の、何か高位のプログラム指令にまで遡及するとい
う、ぞっとしない作業をしなければならない。このデバ
ッグ作業は、通常、デバッグ専用ツール、または、その
他のソフトウェア設計・分析ツールの支援無しに実行し
なければならない。ハードウェア・シミュレータ 20 に
おいて全機能性モデル 26 を使用するさいの変法とし
て、タイミング精度と総合機能性の兼ね合いを取った妥
協策がある。ハードウェア・シミュレーションの全体速
度を上げるために、タイミング精度を、主要なプロセッ
サーないしバス・サイクルにたいしてのみ維持し、それ
によって、シミュレートされる事象の全体数を減らす場
合がある。しかしながら、このように詳細な分析を省く
と、タイミング故障や、競争状態を正しく検出できない
ことになる。ハードウェア機能にたいして「ゼロ遅延」
タイミングを用いて、遅延計算を省略することもある。
ゼロ遅延タイミング・システムというのは、すべての事
象は、伝送遅延ないし応答遅延なしに起こると仮定して
いる。このことは、標的マイクロプロセッサーのすべて
の内部機能は遅延ゼロで起こり、標的回路からの応答も
遅延ゼロで起こると仮定することである。この方法は、
シミュレーションの速度を高めるけれども、システム・
タイミングにたいして厳密なシミュレーションを与えな
い。
【0019】標的ハードウェアをソフトウェアでシミュ
レートするのに、もう一つ別の形がある。これは、図2
に図示するように、指令設定シミュレータ (ISS) 40 を
用いる。この ISS 40 は、標的プログラム 22 を含むメ
モリー 42 を搭載する。ISS40 は、指令機能とメモリー
参照の両方について、プロセッサー指令レベルにおいて
のみ機能的精度を確保しようとするものである。このた
め、内部タイミングにたいする精度は、早さのために犠
牲にされる。通例の ISS 40 の速度は、毎秒1,000-10,0
00 マイクロプロセッサー指令の桁である。ISS 40 は、
標的マイクロプロセッサーの機能的モデルとはなるけれ
ども、ASIC のような特注設計のハードウェアとは適合
しない。ISS 40 は、標的プログラム 44 を実行するけ
れども、標的マイクロプロセッサー外の回路にたいする
視認性には限界がある。通例の ISS 40 は、特注標的回
路にたいしては、レジスター参照以上には、シミュレー
トしない。したがって、ハードウェア設計技師には、あ
まり有用ではない。
【0020】図1、2に示したシステムは、標的ハード
ウェアを完全にソフトウェアでシミュレートするもので
あった。この分野において通常の技能を有するものには
既知のことであるが、標的ハードウェアをソフトウェア
を用いてシミュレートするやり方は、シミュレートされ
る標的ハードウェアを変更する際に、比較的低コスト
で、かつ、弾力性に富む。しかしながら、完全なソフト
ウェア・シミュレーション法は、標的ハードウェアを完
全にモデル化できないことがあるという欠点を持つ。さ
らに、シミュレータの処理時間が膨大になりすぎ、プロ
セッサー機能モデル(図1参照)が、全標的プログラム
22 をシミュレートすることが困難、ないし、不可能と
なることがある。全機能性モデル 22 (図1参照)に見
られる、あまりに長すぎる実行時間に対処するために取
る一般的なやり方として、ハードウェア・シミュレータ
20 内の全機能性モデルを、図3に示すように、実際の
集積回路 (IC) マイクロプロセッサー 50 と交換する方
法がある。マイクロプロセッサー 50 は、ハードウェア
・モデル 52 を介してハードウェア・シミュレータ 20
に結合する。標的プログラム 22 は、ハードウェア・シ
ミュレータ 20 中のメモリー・モデル 24 に含まれるの
で、すべての指令は、図1に関して前述したように、こ
のメモリー・モデル24 から引き出されて実行される。
図1に示したシステムと、図3のシステムの大きな違い
は、完全にソフトウェアでシミュレートされていたプロ
セッサー機能モデル 26 (図1参照)が、実体マイクロ
プロセッサー 50 とハードウェア・モデル 52 に代わっ
ていることである。このマイクロプロセッサー 50 は、
実際の標的マイクロプロセッサーであってもよいし、他
の、標的マイクロプロセッサーの動作をシミュレートす
る回路であってもよい。ここで注意すべきなのは、実体
マイクロプロセッサー 50 とハードウェア・モデル 52
は、ソフトウェア・シミュレーションではなく、ハード
ウェア成分であるということである。通常のハードウェ
ア・モデル 52 のコストはきわめて高く、$40,000 から
$200,000 以上にもなる。
【0021】ハードウェア・モデル 52 を用いれば、プ
ロセッサーの複雑さに関係なく、全機能プロセッサー・
モデルが得られるが、ハードウェア・モデル 52 の使用
はそれだけ余分に大きなコストを必要とする。しかも、
必ずしも、それに見合ったシミュレーション性能が得ら
れるわけではない。ハードウェア・モデル 52 は、ベク
トル・メモリー(図示せず)を搭載する。これは、ハー
ドウェア・シミュレータの各時間スライスごとに、実体
マイクロプロセッサー 50 の各ピン当りのインプット・
データを保存するためである。時間スライスは任意に小
さく取ることができるが、通常は、マイクロプロセッサ
ーの 1 クロック・サイクル未満である。前述したよう
に、タイミング故障を検出するには、伝送遅延を含む、
標的ハードウェアの事象ごとの分析が必要である。ハー
ドウェア・モデル 52 は、ハードウェア・シミュレータ
20 とステップ連動で動作する。この場合、実体マイク
ロプロセッサー 50 が、ベクトル・メモリーから引き出
した次の組のバイナリー信号をマイクロプロセッサーの
ピン結合部に発生させ、これが、ハードウェア・シミュ
レータ 20 の次のシミュレーション・ステップ用に組み
込まれる。したがって、ハードウェア・モデル 52 は、
ハードウェア・シミュレータ 20 と完全に同期して動作
する。
【0022】ハードウェア・モデル 52 中のプロセッサ
ーは、多くの場合、ダイナミック装置である。すなわ
ち、データを保持するために、クロックを動かし続けな
ければならない。ハードウェア・シミュレータ 20 は、
任意に短い時間スライスにおいて、事象ごとにシステム
応答をシミュレートするのであるから、実体マイクロプ
ロセッサー 50 は、ハードウェア・シミュレータ 20 が
シミュレーション・サイクルを完了をするのをいちいち
待たなければならない。したがって、実体マイクロプロ
セッサー 50 はいちいちリセットしなければならず、ま
た、各シミュレーション・サイクルのスタート、およ
び、これまでのすべてのベクトルも再起動しなければな
らない。シミュレーションが長引くにつれて、先行ベク
トルを再起動するのに要する時間も延びる。標的プログ
ラム 22 の実行は大量のクロック・サイクルを要するも
ので、しばしば、ハードウェア・モデル 52 に備えられ
たベクトル・メモリーの最大値を超過することがあり、
このため、標的プログラムの長さが極度に制限される結
果となる。ハードウェア・モデル 52 には大容量のメモ
リーが必要である外に、標的プログラム 24 を目的コー
ド・レベルで実行しなければならないために、標的プロ
グラム 22 をデバッグするのに好適な手段が得られな
い。
【0023】図3に示したシステムでは、標的ハードウ
ェアの一部をモデル化するのに、僅かではあるがハード
ウェアを、すなわち、ハードウェア・モデル 52 を使っ
ている。しかしながら、この方法は、前述したように、
コスト高であり、かつ、大容量の、通常標的プログラム
22 をモデル化する能力に限界がある。標的プロセッサ
ーをモデル化するのに用いられる、また別の装置とし
て、図4に示すプロセッサー・エミュレータ 60 があ
る。このプロセッサー・エミュレータ 60 は、標的マイ
クロプロセッサーの代用となるハードウェア装置であ
る。プロセッサー・エミュレータは、現在、アプライド
・マイクロシステム・コーポレーション (Applied Micr
osystem Corporation) から入手できる普通の装置であ
る。図4に示したシステムには、標的ハードウェアの一
部 62 が含まれ、さらに、その中に、標的プログラム 2
2 を搭載するメモリー 66 と、標的マイクロプロセッサ
ー用のソケット 70 が含まれる。プロセッサー・エミュ
レータ 60 は、標的ハードウェアの一部 62 にデータ・
バス 72 によって結合するが、通常は、標的マイクロプ
ロセッサーの代用として、ソケット 70 に直接差し込み
接続される。 プロセッサー・エミュレータ 60 は、マ
イクロプロセッサー 76 を含むが、通常、これが標的プ
ロセッサーとなる。プロセッサー・エミュレータ 60 は
また、エミュレータ・メモリー 78 と制御回路 80 を含
んでいてもよい。プロセッサー・エミュレータは、通信
リンク 86 を介して、ワークステーション 84、また
は、コンピュータ端末に接続される。ワークステーショ
ン 84 は、スタンド・アローン型のコンピュータ・ワー
クステーションでもよいし、あるいは、単に、このプロ
セッサー・エミュレータ 60 が結合するコンピュータ
(図示せず)に接続した端末でもよい。ワークステーシ
ョン 84 内部のユーザー・インタフェース・ソフトウェ
ア 88 は、ワークステーションにおけるデータ表示を制
御し、ユーザーからエミュレータへの入力を受けつけ
る。プロセッサー・エミュレータ 60 のユーザー・イン
タフェース・ソフトウェア 88 と制御回路 80 は、従来
のプロセッサー・エミュレータに付随する成分であっ
て、原形ハードウェア・システム制御の補助手段とな
る。ユーザー・インタフェース・ソフトウェア 88 と制
御回路 80 はさらに、標的プログラム 22 にたいする高
度のデバッグ機能を可能にする。この機能により、標的
プログラム 22 をロードし、起動し、停止し、検査し、
かつ、修正することができる。エミュレータ・メモリー
78 は、メモリー 66 内部の標的プログラム 22 とは独
立に、エミュレータ制御プログラムを含む。しかしなが
ら、標的プログラム 22 はまた、エミュレータ・メモリ
ー 78 中に、時に上乗せメモリーと呼ばれる形式でロー
ドすることもできる。この場合、標的プログラム 22
は、メモリー 66、エミュレータ・メモリー 78、また
は、その両方から引き出して実行することができる。エ
ミュレータ・メモリーからだけ標的プログラム 22 を引
き出して実行することにすると、ソフトウェアと標的回
路との相互作用という利点を生かすことなしに、標的プ
ログラムを実行することになる。 開発者は、このプロ
セッサー・エミュレータ 60 を、読み込み専用メモリー
(ROM) の代用として使用することができる。通常、こ
の ROM が、システムの最終製品モデルにおいて標的プ
ログラムを含むこととなり、一方、ランダム・アクセス
・メモリー(RAM) は、エミュレータ・メモリー 78 に
上乗せされる。上乗せ RAM によって、開発者は、たと
え標的ハードウェアが完全な形で入手できなくとも、標
的プログラム 22 のデバッグを行なうことができる。通
常のプロセッサー・エミュレータ 60 はさらに、メモリ
ー・サイクルがいつ・どこで始まるかを検出する、メモ
リー・マップ用ソフトウェアを与える。これによって、
ユーザーは、標的プログラムの実行をワン・ステップご
とに辿ることができる。プロセッサー・エミュレータ 6
0 はさらに、特定の指令で、あるいは、ある特定の条件
が満足された時点で、標的プログラム 22 の実行を中止
することができる。このような、あらかじめ特定された
条件としては、番地参照、中断信号、I/O 指令などがあ
る。プロセッサー・エミュレータでは、標的システムに
おける時間依存性故障の分析が簡単になる。なぜなら、
指令実行追跡機能、複雑断点システム、および、上乗せ
メモリーを備えているからである。
【0024】ハードウェア・エミュレータのもう一つの
形式を、図5に示すが、これは、ハードウェア回路エミ
ュレータ 94 である。このハードウェア回路エミュレー
タ 94 は、プログラム変更可能なゲート・アレー (FPG
A) のような、再構成可能な回路 96 を用いる。これに
よって、ASIC や、特注 IC を含む標的回路機能をエミ
ュレートすることができる。クイックターン (Quicktur
n) や、アプティックス(Aptix) のような企業は、ハー
ドウェア回路エミュレータの開発に従事しているが、そ
れによれば、ハードウェア設計を、再構成可能回路 96
にダウンロードし、ボード様装置に組み込む。このハー
ドウェア回路エミュレータ 94 は、プロセッサー・チッ
プ 100 とメモリー 102 を含み、メモリーはさらに標的
プログラム 22 を含む。このハードウェア回路エミュレ
ータ 94 によって、標的システムを、あたかももう製造
されたもののようにして、検査することができる。 こ
のハードウェア回路エミュレータ 94 は、制御プログラ
ム 106 を含む、コンピュータ・ワークステーション 10
4 か、コンピュータ端末によって制御される。ワークス
テーションは、ハードウェア回路エミュレータ 94 に、
データ・リンク61 を介して結合する。このデータ・リ
ンクには、例えば、シリアル結合、パラレル結合、ネッ
トワーク結合などがある。ハードウェア回路エミュレー
タ 94 には、速度と、ブレッド・ボードの製造が早いと
いう利点がある。しかしながら、コストが高いこと、構
成やデバッグ作業に手間がかかることから、その応用は
限られる。前記のツールではまたハードウェア・ソフト
ウェア・デバッグ作業において視認性が得られない。内
部レジスターや、メモリー配置へアクセスできないから
である。
【0025】回路機能をシミュレートするのに、図4の
プロセッサー・エミュレータや、図5のハードウェア回
路エミュレータ 94 のようなハードウェア・エミュレー
タを用いた場合、それは、通常、設計の手間という点で
も、全体投資コストにおいても、ユーザーの投資額の主
要部分を占める。ハードウェア・エミュレータ使用の利
点は、詳細なハードウェアのシミュレーションが速やか
にできることにある。その速度は、標的システムの速度
に近い。ハードウェア・タイミングは厳密ではないが、
きわめて近似性が高い。ハードウェア・エミュレータの
場合、システムのデバッグ作業が重大問題として残る。
なぜなら、ソフトウェア技術者にたいする配慮などはほ
とんどなされないからである。設計をハードウェア・エ
ミュレータにロードするためには、その設計を、詳細
な、構成様式に表わす必要がある。このことは、標的ハ
ードウェア設計が、設計工程においてはるかに先行して
いることを意味する。この方法は、開発にコストがかか
るという不利を背負いこむことが多い。なぜなら、標的
プログラムの開発は、標的ハードウェアの完成を待たな
ければならないからである。したがって、設計の初期段
階ではありがちのことだが、合成不能な行動形式の表現
や、高度の設計表現は、ハードウェア・エミュレータを
使用する場合、実行不能となる。原形標的回路が、ハー
ドウェア・エミュレータと一緒に使用できる頃には、製
品開発は、時間的にはきわめて進んだ状態にあるから、
すでにその場に納まっている ASIC を設計しなおす可能
性は実際上ほとんどない。さらに、原形標的回路の出現
を待つということは、標的プログラム開発工程を直列化
することである。なぜなら、ソフトウェア開発は、原形
標的回路の開発を待たなければならないのだから。標的
プログラムに関するこのような直列化は、ソフトウェア
・デバッグ作業や、システム統合作業に遅延をもたらす
ので好ましくない。
【0026】
【実施例】本発明は、標的ハードウェアの速やかなシミ
ュレーションを可能にし、標的ハードウェアと、標的プ
ログラムとの並列開発を可能にする。本発明のシステム
はまた、既存のデバッグ用ツールの広範な使用を可能に
する。これは、開発者の、標的システム開発と統合の作
業を促進する。このシステムは、ハードウェアと、実行
ソフトウェアの相関要素を、一部は実際のエミュレーシ
ョンによって、また一部は抽象的なソフトウェア・シミ
ュレーションによって結合する。本発明は、図6のシス
テム 200 の中に組み込まれる。このシステム 200 は、
プロセッサー・エミュレータ 202 を含む。これは、例
えば、アプライド・マイクロシステムズ・コーポレーシ
ョンその他の製造するマイクロプロセッサー・エミュレ
ータ 60 (図4参照)のようなものである。このプロセ
ッサー・エミュレータ 202 は、通常、標的マイクロプ
ロセッサーそのものを、マイクロプロセッサー 76 とし
て含む。しかしながら、マイクロプロセッサー 76 は、
標的マイクロプロセッサーと違っていて、標的マイクロ
プロセッサーのハードウェア回路エミュレーションを実
行するために、FPGA のような付加的な部分を持ってい
てもよい。プロセッサー・エミュレータ 202 の動作
は、図4に示した、従来のハードウェア・エミュレータ
のものと同様である。ただし、制御回路 80 (図4参
照)と、制御プログラム 104 (図 5参照)の動作を除
く。この動作は、本発明では、制御回路 204 の機能が
代行する。システム 200 における制御回路 204の働き
については下記に詳しく述べる。
【0027】システム 200 においては、標的ハードウ
ェアのある一部はプロセッサー・エミュレータ 202 が
モデル化し、標的ハードウェアのまたある一部は、ハー
ドウェア・シミュレータ 206 がモデル化する。ハード
ウェア・シミュレータ 206は、プロセッサー・モデル・
シェル 210 を含む。これは、標的マイクロプロセッサ
ーの実際のピン結合をエミュレートする。ハードウェア
・シミュレータ 206は、標的マイクロプロセッサーと標
的回路の間の相互作用をシミュレートする。この相互作
用をモデル化するためには、ハードウェア・シミュレー
タ 206 は、標的マイクロプロセッサーのピン位置で、
標的回路の電気的・論理的活動をシミュレートしなけれ
ばならない。プロセッサー・モデル・シェル 210 は、
全機能プロセッサー 25 (図1参照)と等価なものでは
なく、ただ、標的マイクルプロセッサーのピン位置にお
ける標的回路の活動をモデル化しているにすぎない。こ
こで注意しなければならないのは、従来のプロセッサー
・エミュレータ(図4参照)では、ソケット 70 に実際
に差し込まれるデータ・バス 72 が含まれることであ
る。一方、本発明のプロセッサー・エミュレータ 202
はデータ・バス 72は使用せず、ハードウェア・シミュ
レータ 206 とは、後述するようにコンピュータ機能に
よって連絡している。
【0028】プロセッサー・エミュレータ 202 は、通
常、第 1 データ・フォーマットを持つが、このフォー
マットは、ハードウェア・シミュレータ 206 の用いる
第 2データ・フォーマットとは異なる。ソフトウェア・
カーネル 212 は、プロセッサー・エミュレータ 202 と
ハードウェア・シミュレータ 206 の間の橋渡しとな
り、第 1 データ・フォーマットから第 2 データ・フォ
ーマットへと変換する。ソフトウェア・カーネル 212
は、トランスレータ 214 とマッパー 216を含む。トラ
ンスレータ 214 は、必要な相互作用の性質を決め、第
1 データ・フォーマットによる、相互作用用の事象を、
中間データ・フォーマットに変換する。一方、マッパー
216 は、この中間データ・フォーマットを第 2 データ
・フォーマットに変換し、一連の事象を生成し、これら
を、ハードウェア・シミュレータ 206 の使用に委ね
る。ソフトウェア・カーネル 212 とその所属部分の働
きについては下記に詳述する。このように、トランスレ
ータ 214 は、プロセッサー・エミュレータ 202 に特異
的であり、マッパー 216 は、ハードウェア・シミュレ
ータ 206 にたいして特異的である。中間データ・フォ
ーマットは、汎用プロトコルであり、これによって、全
てのトランスレータ 214 とすべてのマッパー 216 間の
適合性が確保される。
【0029】システム 200 の各部分は、互いに物理的
に接近していてよいし、同じコンピュータ・システムの
部分同士であってもよい。例えば、ハードウェア・シミ
ュレータ 206 とソフトウェア・カーネル 212 は共にソ
フトウェア部品である。本システムのこの要素を、一個
のホスト・コンピュータに載せてもよい。複雑さを避け
るため、ホスト・コンピュータはここには図示していな
い。一方、ハードウェア・シミュレータ 206 とソフト
ウェア・カーネル 212 は、別々のコンピュータ・シス
テムに載せてもよい。ハードウェア・シミュレータ 206
とソフトウェア・カーネル 212 は、通信リンク 220
によって結合されるが、このリンクは、ハードウェア・
シミュレータとソフトウェア・カーネルを同一ホスト・
コンピュータに載せた場合は、プログラムによるインタ
ーフェイスであってもよい。ハードウェア・シミュレー
タ 206 とソフトウェア・カーネル 212 を別々のコンピ
ュータ・システムに載せた場合、通信リンク 220 は、
例えば、シリアル結合、パラレル結合、または、ネット
ワーク結合とすることができる。
【0030】同様に、プロセッサー・エミュレータ 202
は、通信リンク 222 によって、ソフトウェア・カーネ
ル 212 に接続される。通信リンク 200 に関して前述し
たように、この通信リンク 222 も、例えば、シリアル
結合、パラレル結合、または、ネットワーク結合であっ
てもよい。この、好ましい実施態様においては、プロセ
ッサー・エミュレータ 202 からソフトウェア・カーネ
ルへ連絡する通信リンク 222 と、ソフトウェア・カー
ネルからプロセッサー・モデル・シェル 210 へ連絡す
る通信リンク 210 は、イーサーネット・リンク上の一
組の TCPIPソケットとして実現される。しかしながら、
この分野において通常の能力を持つものならばすぐ理解
できるように、通信リンク 220 と 222 は、その他の通
信手段、例えば、シリアルやパラレルの通信ポート、光
ファイバー FDDI リンクや、その他の実行可能な手段に
よって実現してもよい。本発明においては、通信リンク
220 と 222 は特定の形に限定されない。
【0031】システム 200 は、プロセッサー・エミュ
レータ 202 による標的マイクロプロセッサーと標的プ
ログラムのモデル化、ハードウェア・シミュレータ 206
による標的回路のモデル化、この両者の結合を利用す
る。システム 200 は、図4、および、図5に例示した
ようなハードウェア・エミュレータとは明確に異なる。
なぜなら、システム 200 は、ハードウェア・シミュレ
ータ 206 を用いて、標的回路をシミュレートするから
である。これによって、ソフトウェア開発者は、標的回
路の開発前に、標的プログラムを開発することができ
る。これは、標的回路の開発を必要とした、従来のハー
ドウェア・エミュレータとは異なる。本システムはさら
に、標的プログラムの実行するコンピュータ指令の多く
は、標的回路との相互作用を必要としないという分析結
果を利用する。相互作用の程度は、標的システムの設計
目標である特定用途に完全に依存するが、実験による
と、通常の標的プログラムが標的回路と相互作用を持つ
のは、時間の 20% 未満であり、残りの 80% は標的プロ
グラムと標的マイクロプロセッサーとの相互作用に関わ
る。システム 200 は、標的マイクロプロセッサーをエ
ミュレートするのに、高速のハードウェア装置であるプ
ロセッサー・エミュレータ 202 を用い、標的回路をモ
デル化するのに、比較的低速のソフトウェア・シミュレ
ータである、ハードウェア・シミュレータ 206 を用い
る。したがって、標的プログラムの大部分(通常 80%
以上)は、システム 200 の高速ハードウェア部分で処
理され、標的回路との相互作用を要求する小部分(通常
20% 未満)は、システムの低速のソフトウェア部分に
よって処理される。これによって、システムの中でも、
設計工程において初期に選択できる部分、例えば、標的
マイクロプロッセサーに関して、標的プログラムを高速
に動作させることができる。本システムはさらに次の利
点を提供する。すなわち、ハードウェア・シミュレータ
206 のソフトウェア・モデル化能力を用いて、標的ハ
ードウェアを速やかにシュミレートすることができる。
ハードウェア・シミュレータ 206 は、プロセッサー・
エミュレータ 202 よりもはるかに遅いけれども、シス
テム 200 は、従来のシステムに見られた指令実行の低
速による被害を受けることがない。なぜなら、大部分の
指令は、ハードウェア・シミュレータと相互作用を持つ
ことなく、高速のプロセッサー・エミュレータによって
処理されるからである。さらに、ハードウェア・シミュ
レータのモデル化するハードウェアの多くは、その複雑
性が、マイクロプロセッサー中のハードウェアのものよ
りもはるかに小さい。
【0032】ソフトウェア・カーネル 212 は、標的プ
ログラムが標的マイクロプロセッサーと標的回路との相
互作用を要求する際に、通信制御器として働く。トラン
スレータ 214 は、プロセッサー・エミュレータ 202 と
ハードウェア・シミュレータ 206 の要求する相互作用
のタイプを決め、データが、プロセッサー・エミュレー
タ 202 からハードウェア・シミュレータ 206 へ向かう
場合には、第 1データ・フォーマットによる、そのよう
な相互作用請求を、中間データ・フォーマットに翻訳
し、一方、マッパー 216 は、中間フォーマットで書か
れたデータを、ハードウェア・シミュレータ 206 用の
第 2 データ・フォーマットにマップ(変換)し、さら
に、ハードウェア・シミュレータが、問題の事象をモデ
ル化するのに必要な事象ステップに対応する一連の機能
を生成する。しかしながら、ここで承知しておかなけれ
ばならないのは、標的マイクロプロセッサーと標的回路
との相互作用を要求するすべての請求が、標的マイクロ
プロセッサーから発せられるとは限らないということで
ある。例えば、標的回路が、標的マイクロプロセッサー
に中断信号を送ることもあり得る。その場合、ハードウ
ェア・シミュレータ 206 からプロセッサー・エミュレ
ータ 202 へデータの転送がなければならない。マッパ
ー 216 とトランスレータ 214 は両方向に動作する。こ
れによって、プロセッサー・エミュレータ 202 とハー
ドウェア・シミュレータ 206との間の完全な相互作用が
可能になる。プロセッサー・エミュレータ 202 からハ
ードウェア・シミュレータ 206 へ向かうデータに関し
ては、トランスレータ214 は、その事象の性質を決め、
第 1 データ・フォーマットから中間フォーマットへ翻
訳し、マッパー 216 は、中間データ・フォーマットで
書かれたデータを第 2 データ・フォーマットに変換
し、ハードウェア・シミュレータ 206にたいし適当な機
能シークエンスを生成する。ハードウェア・シミュレー
タ 206からプロセッサー・エミュレータ 202 へ向かう
データに関しては、マッパー216 は、第 2 データ・フ
ォーマットで書かれた、ハードウェア・シミュレータ 2
06 からの機能シークエンスを、中間データ・フォーマ
ットに転換し、トランスレータ 214 は、この中間デー
タ・フォーマットから、第 1 データ・フォーマットに
翻訳し、必要な相互作用の性質を決定する。このように
して、ソフトウェア・カーネル 212 は、プロセッサー
・エミュレータ 202 とハードウェア・シミュレータ 20
6 との間の双方向通信、および、翻訳を制御する。
【0033】次に、システム 200 の各部の動作につい
て詳述する。ハードウェア・シミュレータ 206 は、標
的プログラム 22 にたいして、外部ハードウェア応答を
与えるのに使われる。標的プログラムは、プロセッサー
・エミュレータ 202 に付随するメモリー 226 から取り
出して実行される。図6では、メモリー 226 をプロセ
ッサー・エミュレータ 202 の一部として描かれている
が、システム 200は、そのようなメモリー配置に限定さ
れるものではない。例えば、標的プログラム 22 を含む
メモリー 226 は、プロセッサー・エミュレータ 202 の
一部として存在してもよいし、プロセッサー・エミュレ
ータ中のデータ・バス(図4参照)に接続されていても
よいし、あるいは、他の電気手段によって、プロセッサ
ー・エミュレータに接続されていてもよい。
【0034】標的ハードウェア設計でその他の標的回路
を記載するのに、HDL を含む既存の回路記述法が用いら
れる。プロセッサー・モデル・シェル 210 は、標的回
路のHDL を用い、ハードウェア・シミュレータ 206
と、ソフトウェア・カーネル212 との間の通信と同期を
実現する。この通信と同期は、従来技術のハードウェア
・シミュレータ 20 (図1参照)と同様にして行なわれ
るので、ここではこれ以上述べない。図7に示すよう
に、プロセッサー動作機能の例を定義した。これは、プ
ロセッサー・エミュレータ 202 と、ハードウェア・シ
ミュレータ 206 内のプロセッサー・モデル・シェル 21
0 との間の相互作用をやりやすくするためである。これ
らプロセッサー動作機能には、メモリーや、入力/出力
(I/O) 操作のための読み込み・書き出し機能も含まれ
る。ある動作コード(オペコード)が、標的プログラム
22 内で実行されると、プロセッサー・エミュレータ 2
02 は、制御回路 204 と協力して、また、プロセッサー
・エミュレータ内に含まれるソフトウェアも、標的マイ
クロプロセッサーと標的回路間の相互作用が必要かどう
かを認識する。もし外部との相互作用が必要でなけれ
ば、標的プログラム 22 は、邪魔されずに、プロセッサ
ー・エミュレータ 202 内部でコードの実行を継続す
る。もし、プロセッサー・エミュレータ 202 とハード
ウェア・シミュレータ 206間の相互作用が必要とされる
ならば、トランスレータ 214 が、これはソフトウェア
成分の一つであるが、現在進行中の動作を解釈し、マッ
パー 216 と連絡し、目的のオペコード動作を、定義さ
れたプロセッサー機能に変換する。プロセッサー・モデ
ル・シェル 210 は、ハードウェア・シミュレータ 206
において相応する動作を実行し、プロセッサー機能を、
標的マイクロプロセッサーのピンにたいするシミュレー
ト活動に変換する。例えば、もしもプロセッサー・エミ
ュレータ 202 とハードウェア・シミュレータ 202 間の
相互作用を要求する事象が、32 ビット I/O 書き込み指
令(図7の機能 16)だとすると、プロセッサー・エミ
ュレータは、I/O トラップを発し、トランスレータ 214
は、このトラップの領域を確定し、トラップのタイプ
を決める。トランスレータ 214 はさらに特定の指令、
この例では 32 ビット I/O 書き込みであるが、その指
令を汎用中間フォーマットに変換する。マッパー 216
は、この中間フォーマットを受け取り、その指令を一連
の機能に転換する。これは、ハードウェア・シミュレー
タ 206 で使えるように、第 2 フォーマットで書かれ
る。この例では、プロセッサー・モデル・シェル 210
上の番地とデータ列が適当な時間に変換され、それによ
って、ハードウェア・シミュレータ 206 において、32
ビット I/O 書き込みがシミュレートされる。さらに、
読み込み/書き出し制御列のような他の列も、ハードウ
ェア・シミュレータのシミュレーション・サイクルの適
当な時点で、確認され、かつ、確認解除される。マッパ
ー 216 は、標的プロセッサー内で発生する事象に相当
する様々な機能を生成するが、その機能は、ハードウェ
ア・シミュレータ 206 が用いる第 2 フォーマットで書
かれる。この分野において通常の技量を持つ人であれ
ば、様々な指令タイプを用いることにより、マッパー 2
16 によって、一つの又は複数の別様の機能コール(呼
出し)シークエンスをもたらすことは可能であることが
了解されるであろう。
【0035】トランスレータ 214 は、プロセッサー・
エミュレータ 202 とハードウェア・シミュレータ 206
の間の必要な相互作用の性質を決め、第 1 データ・フ
ォーマットと汎用中間フォーマットの間でデータの翻訳
を行なうわけであるが、このような翻訳は必要不可欠で
はない。好ましい実施例では、マッパー 216 が、標的
プログラムの要求する相互作用の性質を決め、ハードウ
ェア・シミュレータ206 に機能シークエンスを直接発送
する。ハードウェア・シミュレータ 206の要求する相互
作用に関しては、マッパー 216 は、トランスレータ 21
4 の介助なしに逆過程を実行する。読み込み機能を実行
する場合には、プロセッサー・モデル・シェル 210 が
ハードウェア・シミュレータ 206 から読み込んだデー
タが、逆過程によって、標的プログラム 22 に返送され
る。
【0036】プロセッサー・エミュレータ 202 は、制
御回路 204 と制御プログラムの両方を含む。これらは
共にメモリー 226 の中にあって、実行標的プログラム
22や、周囲のハードウェア環境において、ハードウェア
・シミュレータ 210 との通信を要求する条件を特定す
ることができる。そのような条件としては、ロードされ
た標的プログラムの番地範囲外におけるメモリー参照、
入力/出力 (I/O)動作、中断記号の処理、RESET のよう
な明白なハードウェア機能処理指令が含まれる。この分
野において熟練した人であれば、他の指令であっても、
ハードウェア・シミュレータ 206 とこのような相互作
用を持つことを要求することができることを了解される
であろう。プロセッサー・エミュレータ 202 中の制御
回路204 は、標的マイクロプロセッサーと標的回路間の
相互作用を要求する事象を検出するハードウェア能力を
持つ。同様に、メモリー 226 中の制御プログラムは、
標的マイクロプロセッサーと標的回路間の相互作用を要
求する事象を検出するソフトウェア能力を持つ。
【0037】標的プログラム 22 の多くは、プロセッサ
ー・エミュレータ 202 において、メモリー 226 から引
き出されて、プロセッサー 76 上で邪魔されずに実行さ
れるのであるから、プロセッサー・モデル・シェル 210
は、ハードウェア・シミュレータ 206 における指令受
領のようなバス・サイクルを実行する必要がない。した
がって、ハードウェア・シミュレータ 206 は、プロセ
ッサー・エミュレータ 202 に同期しない。ただし、標
的マイクロプロセッサーと標的回路の間の相互作用を要
求する事象が発生した場合は別で、この時は同期する。
このことは次のことを意味する。すなわち、ハードウェ
ア・シミュレータ 206 の側からデータ、例えば、信号
波形を眺めた場合、プロセッサー・モデル・シェル 210
のタイミング・サイクルは、厳密に正確である。なぜ
なら、標的マイクロプロセッサーと標的回路の間の相互
作用を要求する事象の発生時には、同期しているからで
ある。さらに、標的プログラム 22 のサイクル間の実行
時間は、標的マイクロプロセッサーと標的回路間の相互
作用を要求する事象がない時は、速くなる。それでい
て、実行サイクルの配列は常に正確であり、標的プログ
ラム 22 によって実行される作業は機能的に適正であ
る。さらに、システム 200 を操作するためのソース・
レベルやオブジェクトコード・レベルにおいて、ユーザ
ーによる標的プログラム 22 の修正も必要ない。
【0038】システム 200 のもう一つの重要な利点と
して、標的プロセッサーで使える従来の開発ツールが、
標的プログラム 22 でも使えることがある。例えば、従
来のソフトウェア・デバッグ・ツールや、オペレーティ
ング・システムなども、普通に、標的プログラム 22 に
たいして使用することができる。したがって、システム
開発者は、従来の開発ツールのすべてを利用して、標的
プログラムの開発に役立てることができる。これは、従
来のシステム、例えば、ハードウェア・シミュレータ 2
0 (図1参照)と異なるところである。従来のこのシス
テムでは、システム開発者は、デバッグ・ツールを使用
できない。本システム 200 は、標的プログラム 22 に
たいするハードウェア中断信号を処理することができ
る。ハードウェア・シミュレータ 206 内のプロセッサ
ー・モデル・シェル 210 の受け取った中断信号は、ソ
フトウェア・カーネルに伝えられ、中断信号として翻訳
され、標的プログラムに伝えられる。プログラマーは、
標的プログラム 22 の内部に、中断信号処理部分を造る
ことができる。この処理部は、中断信号を受領すると非
同期的に立ちあがる。中断信号マスキングのための装置
はいくつかあり、これによって、標的システムの中にあ
るハードウェア相当部分は完全にサポートされる。これ
らの装置によって、システム 200 は、中断駆動コード
と確実に適合することができるようになる。
【0039】システム 200 の動作は、8,9図のフロ
ーチャートで具体的に示される。第8図は、標的マイク
ロプロセッサーと標的回路間の相互作用が、標的マイク
ロプロセッサーによって起動された場合のシステム 200
の動作を示す。スタート 300 時において、標的プログ
ラム 22 はプロセッサー・エミュレータ 202 (図6参
照)において実行中である。標的プログラム 22 は、通
常、I/O 参照指令 302、プロセッサー固有動作 304、お
よび、外部プログラム・メモリー参照 306を含む。ここ
で注意しなければならないのは、標的プログラム 22 が
前述の要素すべてを含むことは、システム 200 の動作
にとって必須ではない、ということである。標的プログ
ラム 22 が I/O 参照指令 302 を実行する場合、システ
ム200 は、ステップ 310 において I/O 指令トラップを
発生する。同様に、標的プログラム 22 が、プロセッサ
ー固有動作 304 を実行する場合には、システムは、ス
テップ 312 において、プロセッサー固有動作トラップ
を発生する。もしも標的プログラム 22 が、外部プログ
ラム・メモリー参照を実行するのなら、システムは、ス
テップ 314 において境界外メモリー参照トラップを発
生する。
【0040】ステップ 318 において、システム 200
は、ステップ 310, 312、または、314 において発生し
たトラップの原因を分離・特定する。ステップ 320 に
おいて、システム 200 は、トランスレータ 214 (図6
参照)内の翻訳ソフトウェアを呼び出す。ステップ 324
において、トランスレータ 214 は、このトラップを、
一つ又は複数の機能コールシークエンスに翻訳する。ス
テップ 328 において、ソフウェア・カーネル 212 は、
プロセッサー・インタフェース機能を起動する。ある種
のプロセッサー・インタフェース機能、例えば、中断
点、指令追跡、エミュレータ内部位置にたいするメモリ
ー参照(図6参照)の場合には、標的回路からの応答は
必要ではない。この場合、システム 200 は、ステップ
334 へ進み、標的プログラム 22 の正規のプログラム実
行を再開する。他の、プロセッサー・インタフェース機
能、例えば、I/O 読み込み指令は、標的回路からの応答
を必要とする。この場合、マッパー 216 が、ステップ
330 において、プロセッサー・インタフェース機能を、
適当なプロセッサー・ハードウェア・ピンのタイミング
と配列に変換する。いくつかのインターフェース機能、
例えば、中断信号マスク登録の設定は、ハードウェア・
シミュレータのシミュレータ・サイクルを必要としな
い。システム 200 は、プロセッサー・モデル・シェル
210 の中に中断信号マスク登録を設定するだけであり、
シェルは、ハードウェア・シミュレータにシミュレータ
・サイクルの実行を要求することなく、この作業を完了
する。この場合、システムはステップ 334 に跳び、正
規のプログラム実行を再開する。他のプロセッサー・イ
ンタフェース機能、例えば、I/O 読み込み、I/O 書き出
しは、ハードウェア・シミュレータ 206 において 1 サ
イクル以上を必要とする。この場合、システムは、ステ
ップ 332 において、固有インタフェース機能の要求す
るハードウェア・シミュレーション・サイクルを、前述
したようなやり方でハードウェア・シミュレータ 206
を用いて完了する。ハードウェア・シミュレータ 206
が、必要サイクルを完了すると、システム 200 は、ス
テップ334 に進み、標的プログラム 22 の正規の実行を
再開する。このようにして、システム 200 は、ハード
ウェア・シミュレータ 206 においてシミュレートされ
る標的回路との相互作用を要求する、標的プログラムの
中の様々の指令にたいして応答する。
【0041】前述したように、標的回路の側から、標的
マイクロプロセッサーと標的回路間の相互作用を要求す
る事象を開始してもよい。この方は、図9に例示してあ
る。すなわち、スタート 350 時、標的プログラム 22
(図6参照)は、プロセッサー・エミュレータ 202 の
上で実行している。ステップ 352 において、ハードウ
ェア・シミュレータ 206 (図6参照)でシミュレート
される標的回路が、中断信号ないしその他の状態、例え
ば、電源オン、リセット、バス・エラー、番地エラー、
メモリー不良、マスク不能中断信号などを発っして、標
的回路と標的マイクロプロセッサー間の相互作用を要求
する。ステップ 354 において、シミュレータ・インタ
フェースは、プロセッサー・モデル・シェル 210 を用
いて、特定の中断信号ないし状態に対応するバス行動を
開始する。この中には、標的回路の活動をシミュレート
する、タイミング、および、信号配列の発信も含まれ
る。ステップ 356 において、プロセッサー・モデル・
シェル 210 は、マッパー 216 と連絡する。ステップ 3
60 において、マッパー 216 は、ハードウェア中断信号
を、プロセッサー・インタフェース機能に結びつける。
ステップ 362 において、トランスレータ 214 が、この
インタフェース機能を一つ又は複数のコールシークエン
スに翻訳する。ステップ 364 において、システムは、
エミュレーター通信請求を発する。
【0042】ステップ 368 において、システム 200
は、このコールシークエンスを、エミュレータの中断信
号制御部に伝える。ステップ 370 において、プロセッ
サー・エミュレータ 202 (図6)は、装置中断状態を
シミュレートする。ステップ372 において、プロセッサ
ー・エミュレータ 202 は、標的プログラム 22 の正規
の流れを中断し、制御指令を、標的プログラム内の中断
信号処理部に伝える。ステップ 374 において、標的プ
ログラム 22 は、この中断信号を、標的中断信号処理部
によって処理する。標的中断信号処理が終了すると、シ
ステム 200は制御指令を標的プログラム 22 に戻し、標
的プログラムは正規のプログラム処理を継続する。この
ようにして、図8、図9に示す通り、システム 200
は、標的マイクロプロセッサーと標的回路間の相互作用
請求を、標的システムのどちらの側が、そのような相互
作用の必要な事象を発するかということに関わりなく、
処理する。
【0043】システム 200 はさらに、ネットワーク上
における、すなわち、コンピュータ・ワークステーショ
ンからコンピュータ・ワークステーションへと向かう際
に起きる分岐実行をも可能にする。これは、特に、次の
ような設計集団にとっては重要である。すなわち、その
集団のハードウェア設計家たちは、あるプラットフォー
ム型で走るツールを用いて作業しており、一方、ソフト
ウェア設計家たちは、別のプラットフォーム型で走るツ
ールを用いて作業している、そのような集団である。シ
ステム 200 の場合、ハードウェア・シミュレータ 206
は、ハードウェア設計家のワークステーション上で実行
することができ、ソフトウェア・カーネル 212 は、ソ
フトウェア技術者の装置で実行できることになる。標的
プログラム 22 は、デバッグ用ツールやその他の開発用
ツールと共に、プロセッサー・エミュレータ 202 上で
実行されるが、このエミュレータもネットワークで共有
できる資産となる。このようにして、ソフトウェア、ハ
ードウェアのデバッグ・ツールを同時に走らせることが
できるから、ハードウェア、ソフトウェア分析を自由に
実行することができる。したがって、システム 200
は、一つのプラットフォームの実行に限定されることが
なく、異なるいくつかの開発グループが、異なる場所
で、ネットワークのような通信リンクの上で資産を共有
しながら、同時に開発に従事することを可能にする。
【0044】システム 200 のまた別の実施例では、図
10に示すように、マルチ・プロセッサー・エミュレー
タ 202 は、複数の標的プログラムの同時実行を可能に
する。各プロセッサー・エミュレータ 202 は、自己領
域内で同期を維持し、独自の標的プログラム 22 (図6
参照)を実行する。もし一方のプロセッサー・エミュレ
ータ 202 が、何かが起こるのを待っている場合でも、
これは、他方のプロセッサー・エミュレータが独立に実
行することを妨げない。ハードウェア・シミュレータ 2
06 内のソフトウェア・カーネル 212 とプロセッサー・
モデル・シェル 210 によって実行される機能は、図6
のシステムに関して前述したものと同じである。ただ
し、このシステムでは、ソフトウェア・カーネルが、二
つのプロセッサー・エミュレータ 202 に結合している
ところが異なる。通信リンク 390がソフトウェア・カー
ネル 212 をもう一つのプロセッサー・エミュレータ 20
2 に結びつける。図 9 に示したシステムは、二つしか
プロセッサー・シミュレータ 202 を含んでいないけれ
ども、システム 200 の中に含ませることのできるプロ
セッサー・エミュレータの数に制限はない。なお、プロ
セッサー・エミュレータ 202 は、別々の標的マイクロ
プロセッサーを用いてもよい。
【0045】もう一つの実施例においては、図11に示
すように、システム 200 は、第 9図で述べた第 2 プロ
セッサー・エミュレータ 392 の代わりに、一台のプロ
セッサー兼メモリー・シミュレーション・エンジン 392
を用いる。このプロセッサー兼メモリー・シミュレー
ション・エンジン 392 は、例えば、ISS 40 (図2参
照)であってもよい。このプロセッサー兼メモリー・シ
ミュレーション・エンジン 392 は、図 6、図10に関
して述べたようなやり方で、ソフトウェア・カーネル 2
12 と連絡する。プロセッサー兼メモリー・シミュレー
ション・エンジン 392 では、プロセッサー・エミュレ
ータ 202 で得られる厳密な内部タイミングや、デバッ
グ機能は得られないけれども、標的マイクロプロセッサ
ーの機能性は得られる。
【0046】本発明の各種実施例や利点は、前項に記載
の通りであるけれども、前記開示は、ただ例示的なもの
であって、細部において変更を加えてもなお、本発明の
広義の原理内に含まれることは十分あり得ることを了解
しなければならない。したがって、本発明は、ただ、付
属の請求項によってのみ限定される。
【図面の簡単な説明】
【図1】従来のハードウェア・シミュレータの機能的ブ
ロック・ダイアグラムである。この場合、標的プログラ
ム実行をシミュレートするために、プロセッサー機能モ
デルを用いている。
【図2】従来の、指令設定シミュレータの機能的ブロッ
ク・ダイアグラムである。
【図3】従来のハードウェア・シミュレータの機能的ブ
ロック・ダイアグラムである。この場合、標的プログラ
ム実行をシミュレートするために、ハードウェア・モデ
ルを用いている。
【図4】従来のプロセッサー・エミュレータの機能的ブ
ロック・ダイアグラムである。
【図5】従来のハードウェア回路エミュレータの機能的
ブロック・ダイアグラムである。
【図6】本発明の機能的ブロック・ダイアグラムであ
る。
【図7】プロセッサー動作の表である。これは、第 6
図のシステムにおいて、通信プロトコルの一部として使
用される。
【図8】第8図は、本発明の制御プログラムの動作を示
すフローチャートである。
【図9】第9図は、本発明の制御プログラムの動作を示
すフローチャートである。
【図10】本発明のデュアル・プロセッサー構成の機能
ブロック・ダイグラムである。これは、プロセッサー・
エミュレータを二つ用いている。
【図11】本発明のデュアル・プロセッサー構成の機能
ブロック・ダイグラムである。これは、一台のプロセッ
サー・エミュレータと一台のソフトウェア・プロセッサ
ー・シミュレーション・エンジンを用いている。
【符号の説明】
20) ハードウェア・シミュレータ 22) 標的プログラム 24) メモリー・モデル 26) プロセッサー機能モデル 28) 標的回路モデル 40) 特定マイクロプロセッサー用の、指令設定シミュレ
ータ 42) メモリー・アレー 50) 実体マイクロプロセッサー 52) ハードウェア・モデル 60) エミュレータ 66) メモリー 76) プロセッサー 78) メモリー 80) 制御回路 88) ユーザー・インタフェース・ソフトウェア 94) ハードウェア回路エミュレータ 96) 他の設計要素をエミュレートする、再構成可能な回
路 100) 実体マイクロプロセッサー 102) 実体メモリー回路 104) ワークステーション 106) 制御プログラム 202) エミュレータ 204) 制御回路 206) ハードウェア・シミュレータ 210) プロセッサー・モデル・シェル 214) トランスレータ 216) マッパー 226) メモリー プロセッサー固有動作 内部コマンド デバッグ・コマンド 300) スタート 302) I/O 参照 304) プロセッサー固有動作 306) 外部プログラム・メモリー参照 310) I/O 指令トラップ 312) プログラム固有指令トラップ 314) 境界外メモリー参照トラップ 318) トラップ理由の分離・特定 320) 翻訳ソフトウェアの呼び出し 324) トラップを機能請求配列に翻訳 328) プロセッサー・インタフェース機能を起動 330) プロセッサー・インタフェース機能を、プロセッ
サー・ハードウェア・ピンのタイミングと配列に転換 332) サイクル(単数、複数)完了 334) プログラムの実行を再開 350) スタート 352) シミュレートされるハードウェアが、中断ないし
その他の状態を発信する。 354) シミュレータ・インタフェースが、適当に、タイ
ミングや信号配列を含むバス相互作用を開始する。 356) バス・インタフェースが、マッパーと連絡する。 360) ハードウェア中断信号をプロセッサー・インタフ
ェース機能に転換する。 362) 機能請求配列(単数、複数)に翻訳する。 364) エミュレータ通信を起動する。 368) エミュレータが、制御指令を中断する。 370) 装置の中断状態をシミュレートする。 372) プログラムの流れを中断し、制御指令を伝える。 374) 標的中断信号処理部 392) プロセッサー兼メモリー・シミュレーション・エ
ンジン

Claims (62)

    【特許請求の範囲】
  1. 【請求項1】 電子システムを検査・分析するためのシ
    ステムであって、標的マイクロプロセッサーと、シミュ
    レートされる標的回路、および、標的マイクロプロセッ
    サー上で実行される付属の標的プログラムを含み、か
    つ、次のものから成るシステムである、すなわち、 複数のコンピュータ指令を保存するメモリーで、かつ、
    前記コンピュータ指令が標的プログラムを含むもの、 標的マイクロプロセッサーをエミュレートするための、
    ハードウェア装置を用いたプロセッサー・エミュレータ
    で、かつ、前記プロセッサー・エミュレータは前記メモ
    リーに接続され、前記コンピュータ指令を実行するも
    の、 前記プロセッサー・エミュレータに接続されるハードウ
    ェア・シミュレータであって、標的回路をシミュレート
    するもの、および、 前記プロセッサー・エミュレータと前記ハードウェア・
    シミュレータ間の通信を制御する通信インタフェースで
    あって、かつ、前記プロセッサー・エミュレータは、前
    記メモリーと連絡して、前記メモリーから前記コンピュ
    ータ指令を受け取り、前記プロセッサー・エミュレータ
    は、事象が標的プログラムと標的回路との相互作用を要
    求する時にのみ、前記通信インタフェースを用いて、前
    記ハードウェア・シミュレータと通信するもの。
  2. 【請求項2】 請求項1のシステムであって、ここに、
    前記プロセッサー・エミュレータは、コンピュータ・ネ
    ットワーク結合によって前記ハードウェア・シミュレー
    タに接続され、かつ、前記通信インタフェースは前記ネ
    ットワークにおける通信を制御するもの。
  3. 【請求項3】 請求項1のシステムであって、さらに、
    前記プロセッサー・エミュレータに接続される例外検出
    器を含み、それによって、標的プログラムが標的回路と
    相互作用を持つことを要求する前記事象を検出するも
    の。
  4. 【請求項4】 請求項3のシステムであって、ここに、
    前記例外検出器は一時的に前記複数のコンピュータ指令
    の実行を停止し、その間に、前記シミュレータが、標的
    プログラムが標的回路と相互作用を持つことを要求する
    前記事象を処理するもの。
  5. 【請求項5】 請求項1のシステムであって、ここに、
    標的プログラムが標的回路と相互作用を持つことを要求
    する前記事象が、前記ハードウェア・シミュレータにた
    いする、入力/出力 (I/O)指令であって、かつ、前記通
    信インタフェースが、前記プロセッサー・エミュレータ
    から、前記ハードウェア・シミュレータへの、前記 I/O
    指令の伝達を制御しているもの。
  6. 【請求項6】 請求項1のシステムであって、ここに、
    前記プロセッサー・エミュレータは第1データ・フォー
    マットを用い、前記ハードウェア・シミュレータは第2
    データ・フォーマットを用い、かつ、システムはさら
    に、標的プログラムが標的回路と相互作用を持つことを
    要求する前記事象を、第1データ・フォーマットから、
    第2データ・フォーマットで書かれた1個以上の機能請
    求に変換するトランスレータを含むもの。
  7. 【請求項7】 請求項6のシステムであって、ここに、
    前記ハードウェア・シミュレータは、標的マイクロプロ
    セッサーのピンの活動をシミュレートするプロセッサー
    ・モデル・シェルを含んでおり、かつ、システムはさら
    に、前記第2データ・フォーマットによる前記機能請求
    を、プロセッサー・モデル・シェルと適合する一組の信
    号列にマップするマッパーを含むもの。
  8. 【請求項8】 請求項7のシステムであって、さらに、
    前記プロセッサー・エミュレータと連絡するコンピュー
    タを含み、かつ、前記コンピュータがさらに、前記ハー
    ドウェア・シミュレータ、前記トランスレータ、およ
    び、前記マッパーを実行するもの。
  9. 【請求項9】 請求項7のシステムであって、ここに、
    前記プロセッサー・エミュレータが、前記トランスレー
    タと前記マッパーに、第1コンピュータ・ネットワーク
    結合によって接続され、かつ、前記通信インタフェース
    が、前記第1ネットワーク結合における通信を制御する
    もの。
  10. 【請求項10】 請求項 9 のシステムであって、ここ
    に、前記トランスレータと前記マッパーは、前記ハード
    ウェア・シミュレータに、第 2 コンピュータ・ネット
    ワーク結合によって接続され、かつ、前記通信インタフ
    ェースが、前記第 1 および、第 2 ネットワーク結合に
    おける、前記プロセッサー・エミュレータと前記ハード
    ウェア・シミュレータ間の通信を制御するもの。
  11. 【請求項11】 請求項 1 のシステムであって、ここ
    に、前記プロセッサー・エミュレータが、前記メモリー
    を内部に組み込んだマイクロプロセッサー・エミュレー
    タであり、かつ、前記組み込まれたメモリーが、前記コ
    ンピュータ指令を含むもの。
  12. 【請求項12】 請求項 1 のシステムであって、ここ
    に、前記プロセッサー・エミュレータが、前記メモリー
    を内部に組み込んだハードウェア回路エミュレータであ
    って、かつ、前記組み込まれたメモリーが、前記コンピ
    ュータ指令を含むもの。
  13. 【請求項13】 請求項 1 のシステムであって、さら
    に、前記プロセッサー・エミュレータと連絡するコンピ
    ュータを含み、かつ、前記コンピュータがさらに前記ハ
    ードウェア・シミュレータを実行するもの。
  14. 【請求項14】 請求項 1 のシステムであって、ここ
    に、前記ハードウェア・シミュレータは、標的マイクロ
    プロセッサーのピンの活動をシミュレートするプロセッ
    サー・モデル・シェルを含んでおり、かつ、システムは
    さらに、標的プログラムが標的回路と相互作用を持つこ
    とを要求する前記事象を、プロセッサー・モデル・シェ
    ルと適合する一組の信号列にマップするマッパーを含む
    もの。
  15. 【請求項15】 請求項 14 のシステムであって、さら
    に、前記プロセッサー・エミュレータと連絡するコンピ
    ュータを含み、かつ、前記コンピュータがさらに前記ハ
    ードウェア・シミュレータと前記マッパーとを実行する
    もの。
  16. 【請求項16】 電子システムを検査・分析するための
    システムであって、第1、第 2 標的マイクロプロセッサ
    ーと、シミュレートされる標的回路、および、各々の標
    的マイクロプロセッサー上で実行される付属の標的プロ
    グラムを含み、かつ、次のものから成るシステムであ
    る、すなわち、 第 1 標的マイクロプロセッサー用の、一組のコンピュ
    ータ指令を保存するメモリーで、かつ、前記第 1 組の
    コンピュータ指令が、第 1 標的マイクロプロセッサー
    用の標的プログラムを含むもの、 第 1 標的マイクロプロセッサーをエミュレートするた
    めの、ハードウェア装置を用いた第 1 プロセッサー・
    エミュレータで、かつ、前記第 1 プロセッサー・エミ
    ュレータは前記第 1 メモリーに接続され、前記第 1 組
    のコンピュータ指令を実行するもの、 第 2 標的マイクロプロセッサー用の、第 2 組のコンピ
    ュータ指令を保存するメモリーで、かつ、前記第 2 組
    のコンピュータ指令が、第 2 標的マイクロプロセッサ
    ー用の標的プログラムを含むもの、 第 2 標的マイクロプロセッサーをエミュレートするた
    めの、ハードウェア装置を用いた第 2 プロセッサー・
    エミュレータで、かつ、前記第 2 プロセッサー・エミ
    ュレータは前記第 2 メモリーに接続され、前記第 2 組
    のコンピュータ指令を実行するもの、 前記第 1、第 2 プロセッサー・エミュレータに接続さ
    れるハードウェア・シミュレータであって、標的回路を
    シミュレートするもの、 前記第 1 と 2 プロセッサー・エミュレータと前記ハー
    ドウェア・シミュレータ間の通信を制御する通信インタ
    フェースであって、かつ、前記第 1 と 2プロセッサー
    ・エミュレータは、それぞれ、前記第 1 と 2 メモリー
    と連絡して、前記第 1 と 2 メモリーから前記第 1 と
    2 組のコンピュータ指令を受け取り、前記第 1 プロセ
    ッサー・エミュレータは、事象が、第 1 標的マイクロ
    プロセッサー用の標的プログラムと標的回路との相互作
    用を要求する時にのみ、前記通信インタフェースを用い
    て、前記ハードウェア・シミュレータと通信し、さら
    に、前記第 2 プロセッサー・エミュレータは、事象
    が、第 2 標的マイクロプロセッサー用の標的プログラ
    ムと標的回路との相互作用を要求する時にのみ、前記通
    信インタフェースを用いて、前記ハードウェア・シミュ
    レータと通信するもの。
  17. 【請求項17】 請求項 16 のシステムであって、ここ
    に、前記通信制御部が、第 1 と第 2 部分を持ち、か
    つ、前記通信制御部第 1 部分が、前記第 1プロセッサ
    ー・エミュレータに機能的に接続され、それによって、
    第 1 標的マイクロプロセッサー用の標的プログラムが
    標的回路との相互作用を要求する前記事象が起きた場合
    にのみ、前記第 1 プロセッサー・エミュレータと前記
    ハードウェア・シミュレータ間の通信を制御し、さら
    に、前記通信制御部第 2 部分が、前記第 2 プロセッサ
    ー・エミュレータに機能的に接続され、それによって、
    第 2 標的マイクロプロセッサー用の標的プログラムが
    標的回路との相互作用を要求する前記事象が起きた場合
    にのみ、前記第 2 プロセッサー・エミュレータと前記
    ハードウェア・シミュレータ間の通信を制御するもの。
  18. 【請求項18】 請求項 16 のシステムであって、ここ
    に、前記第 1 と第 2プロセッサー・エミュレータが、
    それぞれ、コンピュータ・ネットワークによって、前記
    ハードウェア・シミュレータに接続されており、かつ、
    前記通信インタフェースが、前記ネットワーク結合にお
    ける通信を制御するもの。
  19. 【請求項19】 請求項 16 のシステムであって、さら
    に、それぞれ、前記第1 と 2 プロセッサー・エミュレ
    ータに接続される第 1 と 2 例外検出器を含んでおり、
    かつ、前記第1 例外検出器は、第 1 標的マイクロプロ
    セッサー用の標的プログラムが標的回路との相互作用を
    要求する前記事象を検出し、さらに、前記第2 例外検出
    器は、第 2 標的マイクロプロセッサー用の標的プログ
    ラムが標的回路との相互作用を要求する前記事象を検出
    するもの。
  20. 【請求項20】 請求項 19 のシステムであって、ここ
    に、前記第 1 例外検出器は一時的に前記第 1 組のコン
    ピュータ指令の実行を停止し、その間に、前記ハードウ
    ェア・シミュレータが、第 1 標的マイクロプロセッサ
    ー用標的プログラムと標的回路との相互作用を要求する
    前記事象を処理し、かつ、前記第 2例外検出器は一時的
    に前記第 2 組のコンピュータ指令の実行を停止し、そ
    の間に、前記ハードウェア・シミュレータが、第 2 標
    的マイクロプロセッサー用標的プログラムと標的回路と
    の相互作用を要求する前記事象を処理するもの。
  21. 【請求項21】 請求項 16 のシステムであって、ここ
    に、第 1 標的マイクロプロセッサー用標的プログラム
    が標的回路と相互作用を持つことを要求する前記事象
    が、前記ハードウェア・シミュレータにたいする、入力
    /出力 (I/O) 指令であって、かつ、前記通信インタフ
    ェースが、前記第 1 プロセッサー・エミュレータか
    ら、前記ハードウェア・シミュレータへの、前記 I/O
    指令の伝達を制御しているもの。
  22. 【請求項22】 請求項 16 のシステムであって、ここ
    に、第 2 標的マイクロプロセッサー用標的プログラム
    が標的回路と相互作用を持つことを要求する前記事象
    が、前記ハードウェア・シミュレータにたいする、入力
    /出力 (I/O) 指令であって、かつ、前記通信インタフ
    ェースが、前記第 2 プロセッサー・エミュレータか
    ら、前記ハードウェア・シミュレータへの、前記 I/O
    指令の伝達を制御しているもの。
  23. 【請求項23】 請求項 16 のシステムであって、ここ
    に、前記第 1 と 2プロセッサー・エミュレータは第 1
    データ・フォーマットを用い、前記ハードウェア・シミ
    ュレータは第2データ・フォーマットを用い、かつ、シ
    ステムはさらに、第1と 2標的マイクロプロセッサー用
    標的プログラムが標的回路と相互作用を持つことを要求
    する前記事象を、第1データ・フォーマットから、第2
    データ・フォーマットで書かれた1個以上の機能コール
    に変換するトランスレータを含むもの。
  24. 【請求項24】 請求項 23 のシステムであって、ここ
    に、前記ハードウェア・シミュレータは、それぞれ、第
    1 と 2 標的マイクロプロセッサーのピンの活動をシミ
    ュレートする第 1 と 2 プロセッサー・モデル・シェル
    を含んでおり、かつ、システムはさらに、第 1 標的マ
    イクロプロセッサーにたいする前記機能コールを、前記
    第 2 データ・フォーマットから、前記第 1 プロセッサ
    ー・モデル・シェルと適合する一組の信号列に転換し、
    さらに、第 2 標的マイクロプロセッサーにたいする前
    記機能コールを、前記第 2 データ・フォーマットか
    ら、前記第 2 プロセッサー・モデル・シェルと適合す
    る一組の信号列にマップするマッパーを含むもの。
  25. 【請求項25】 請求項 24 のシステムであって、さら
    に、前記第 1 と 2プロセッサー・エミュレータと連絡
    するコンピュータを含み、かつ、前記コンピュータがさ
    らに、前記ハードウェア・シミュレータ、前記トランス
    レータ、および、前記マッパーを実行するもの。
  26. 【請求項26】 請求項 23 のシステムであって、ここ
    に、前記第 1 と 2プロセッサー・エミュレータが、前
    記トランスレータに、第 1 コンピュータ・ネットワー
    ク結合によって接続され、かつ、前記通信インタフェー
    スが、前記第1 ネットワーク結合における通信を制御す
    るもの。
  27. 【請求項27】 請求項 26 のシステムであって、ここ
    に、前記トランスレータは、前記ハードウェア・シミュ
    レータに、第 2 コンピュータ・ネットワーク結合によ
    って接続され、かつ、前記通信インタフェースが、前記
    第 1 および、第 2 ネットワーク結合における、前記プ
    ロセッサー・エミュレータと前記ハードウェア・シミュ
    レータ間の通信を制御するもの。
  28. 【請求項28】 請求項 16 のシステムであって、ここ
    に、前記第 1 と 2プロセッサー・エミュレータが、そ
    れぞれ、前記第 1 と 2 メモリーを内部に組み込んだハ
    ードウェア回路エミュレータであり、かつ、前記組み込
    まれた第 1メモリーが、第 1 標的マイクロプロセッサ
    ー用の、前記第 1 組コンピュータ指令を保存してお
    り、さらに、前記組み込まれた第 2 メモリーが、第 2
    標的マイクロプロセッサー用の、前記第 2 組コンピュ
    ータ指令を保存しているもの。
  29. 【請求項29】 請求項 16 のシステムであって、ここ
    に、前記第 1 と 2プロセッサー・エミュレータが、そ
    れぞれ、前記第 1 と 2 メモリーを内部に組み込んだマ
    イクロプロセッサー・エミュレータであり、かつ、前記
    組み込まれた第 1 メモリーが、第 1 標的マイクロプロ
    セッサー用の、前記第 1 組コンピュータ指令を保存し
    ており、さらに、前記組み込まれた第 2 メモリーが、
    第2 標的マイクロプロセッサー用の、前記第 2 組コン
    ピュータ指令を保存しているもの。
  30. 【請求項30】 請求項 16 のシステムであって、さら
    に、前記第 1 と 2プロセッサー・エミュレータと連絡
    するコンピュータを含み、かつ、前記コンピュータがさ
    らに前記ハードウェア・シミュレータを実行するもの。
  31. 【請求項31】 請求項 16 のシステムであって、ここ
    に、前記ハードウェア・シミュレータは、それぞれ、第
    1 と 2 標的マイクロプロセッサーのピンの活動をシミ
    ュレートする第 1 と 2 プロセッサー・モデル・シェル
    を含んでおり、かつ、システムはさらに、第 1 標的マ
    イクロプロセッサー用の標的プログラムが標的回路と相
    互作用を持つことを要求する前記事象を、前記第 1 プ
    ロセッサー・モデル・シェルと適合する一組の信号列に
    転換するマッパーを含み、さらに、前記マッパーは、第
    2 標的マイクロプロセッサー用の標的プログラムが標
    的回路と相互作用を持つことを要求する前記事象を、前
    記第 2 プロセッサー・モデル・シェルと適合する一組
    の信号列にマップするものでもある。
  32. 【請求項32】 請求項 31 のシステムであって、さら
    に、前記プロセッサー・エミュレータと連絡するコンピ
    ュータを含み、かつ、前記コンピュータがさらに前記ハ
    ードウェア・シミュレータと前記マッパーを実行するも
    の。
  33. 【請求項33】 電子システムを検査・分析するための
    システムであって、標的マイクロプロセッサーと標的マ
    イクロプロッセサー上で実行される標的プログラム、お
    よび、ハードウェア・シミュレータ上でシミュレートさ
    れる標的回路を含み、かつ、次のものから成るシステム
    である、すなわち、 標的マイクロプロセッサーをエミュレートするハードウ
    ェア装置を用いるプロセッサー・エミュレータで、か
    つ、前記プロセッサー・メモリーが、標的プログラムの
    保存・実行用メモリーを含む、 ハードウェア・シミュレータ中のプロセッサー・モデル
    に代わるプロセッサー・モデル・シェルで、かつ、前記
    プロセッサー・モデル・シェルが、標的マイクロプロセ
    ッサーのピンの活動をシミュレートするもの、 プロセッサー・エミュレータと前記プロセッサー・モデ
    ル・シェルに結合する相互作用検出手段で、かつ、前記
    相互作用検出手段が、前記プロセッサー・エミュレータ
    と協力して、標的プログラムが、ハードウェア・シミュ
    レータ中の標的回路と相互作用を持たなければならない
    時を認識するもの、および、 前記プロセッサー・モデル・シェルと前記相互作用検出
    手段に結合し、前記相互作用検出手段を前記プロセッサ
    ー・エミュレータに結合する通信リンクであって、それ
    によって、システムが、シミュレートされる標的回路と
    共同して、標的プログラムを実行する標的マイクロプロ
    セッサーの機能状態をシミュレートするもの。
  34. 【請求項34】 請求項 33 のシステムであって、ここ
    に、前記相互作用検出手段が、プロセッサー・エミュレ
    ータと前記プロセッサー・モデル・シェルと連絡するソ
    フトウェア・カーネルを含み、それによって、標的プロ
    グラムが、ハードウェア・シミュレータ内の標的回路と
    相互作用を持たなければならない時を検出するもの。
  35. 【請求項35】 請求項 34 のシステムであって、ここ
    に、前記ソフトウェア・カーネルは、ハードウェア・シ
    ミュレータ内の標的回路との相互作用を要求する標的プ
    ログラムからの動作要求を翻訳し、かつ、前記動作要求
    を、前記プロセッサー・モデル・シェルへの伝達のため
    にプロセッサー機能に変換するもの。
  36. 【請求項36】 請求項 34 のシステムであって、ここ
    に、前記ソフトウェア・カーネルは、標的プログラムと
    の相互作用を要求する前記プロセッサー・モデル・シェ
    ルからの、ハードウェア生成による要求をマップし、か
    つ、前記ソフトウェア・カーネルが、前記ハードウェア
    生成による要求を翻訳し、さらに、前記プロセッサー・
    エミュレータ中の標的プログラムに伝達するもの。
  37. 【請求項37】 請求項 34 による、外部コンピュータ
    と協調するシステムであって、ここに、前記ハードウェ
    ア・シミュレータが、外部コンピュータの内の第 1 の
    ものによって実行され、前記ソフトウェア・カーネル
    が、外部コンピュータの内の第 2 のものによって実行
    されるもの。
  38. 【請求項38】 請求項 34 のシステムであって、ここ
    に、前記ソフトウェア・カーネルが複数の論理機能を含
    み、かつ、前記論理機能が、前記プロセッサー・エミュ
    レータ制御ソフトウェア中の制御プログラム要素とし
    て、さらに、ハードウェア・シミュレータと共同して動
    作する前記プロセッサー・モデル・シェルの一部とし
    て、分配されるもの。
  39. 【請求項39】 請求項 34 のシステムであって、さら
    に、前記プロセッサー・エミュレータと連絡するコンピ
    ュータを含み、かつ、前記コンピュータがさらに、ハー
    ドウェア・シミュレータを実行し、前記プロセッサー・
    モデル・シェルや、前記ソフトウェア・カーネルを含む
    もの。
  40. 【請求項40】 請求項 33 のシステムであって、ここ
    に、前記プロセッサー・エミュレータがハードウェア制
    御回路と制御ソフトウェアを含み、かつ、前記相互作用
    検出手段が前記制御回路を用いて、標的プログラムが、
    ハードウェア・シミュレータ内の標的回路と相互作用を
    持たなければならない時を選択的に認識し、さらに、前
    記制御回路が、標的プログラムが、ハードウェア・シミ
    ュレータ内の標的回路と相互作用を持たなければならな
    い時に、標的プログラムの実行を中断し、その他の場合
    は、標的プログラムの継続的実行を実現するもの。
  41. 【請求項41】 請求項 33 のシステムであって、ここ
    に、前記プロセッサー・エミュレータが制御回路と制御
    ソフトウェアを含み、かつ、前記相互作用検出手段が前
    記制御ソフトウェアを用いて、標的プログラムが、ハー
    ドウェア・シミュレータ内の標的回路と相互作用を持た
    なければならない時を選択的に認識し、さらに、前記制
    御ソフトウェアが、標的プログラムが、ハードウェア・
    シミュレータ内の標的回路と相互作用を持たなければな
    らない時に、標的プログラムの実行を中断し、その他の
    場合は、標的プログラムの継続的実行を実現するもの。
  42. 【請求項42】 請求項 33 のシステムであって、ここ
    に、ハードウェア・シミュレータと前記プロセッサー・
    モデル・シェルが、コンピュータ・ワークステーション
    上で実行され、かつ、前記通信リンクが、前記エミュレ
    ータと前記ワークステーション間の通信を制御するも
    の。
  43. 【請求項43】 請求項 33 のシステムであって、ここ
    に、前記プロセッサー・エミュレータが、メモリーを内
    部に組み込んだマイクロプロセッサー・エミュレータで
    あって、かつ、前記組み込まれたメモリーが、標的プロ
    グラムを含み、さらに、前記マイクロプロセッサー・エ
    ミュレータが、シミュレートされる標的回路と協調する
    前記相互作用検出手段と連絡しているもの。
  44. 【請求項44】 請求項 33 のシステムであって、ここ
    に、前記プロセッサー・エミュレータが、メモリーを内
    部に組み込んだハードウェア回路エミュレータであっ
    て、かつ、前記組み込まれたメモリーが、標的プログラ
    ムを含み、さらに、前記ハードウェア・エミュレータ
    が、シミュレートされる標的回路と協調する前記相互作
    用検出手段と連絡しているもの。
  45. 【請求項45】 請求項 33 のシステムであって、前記
    通信リンクが、TCPIPソケット・プロトコールを実行可
    能にするもの。
  46. 【請求項46】 請求項 33 のシステムであって、ここ
    に、前記プロセッサー・モデル・シェルを前記ソフトウ
    ェア・カーネルに接続し、かつ、前記ソフトウェア・カ
    ーネルを前記プロセッサー・エミュレータに接続する前
    記通信リンクは、ソフトウェア・プログラム請求である
    もの。
  47. 【請求項47】 請求項 33 のシステムであって、ここ
    に、前記プロセッサー・エミュレータ手段が、メモリー
    を内部に組み込んだマイクロプロセッサー・エミュレー
    タであり、システムはさらに、マイクロプロセッサー・
    バス結合を通じて前記マイクロプロセッサー・エミュレ
    ータに結合する外部メモリーを含み、さらに、標的プロ
    グラムは、前記組み込みメモリーと外部メモリーの少な
    くとも一つから成るプログラム・メモリーに含まれるも
    の。
  48. 【請求項48】 請求項 47 のシステムであって、ここ
    に、標的プログラムが、前記組み込みメモリーと外部メ
    モリーの両方に含まれるもの。
  49. 【請求項49】 請求項 33 のシステムであって、さら
    に、もう一つの標的マイクロプロセッサーをエミュレー
    トするハードウェア装置を用いる、もう一つのプロセッ
    サー・エミュレータを含み、かつ、前記もう一つのプロ
    セッサー・エミュレータは、前記もう一つの標的マイク
    ロプロセッサー上にて実行される標的プログラムを保存
    ・実行するためのもう一つのメモリーを含み、ここに、
    前記ソフトウェア・カーネルは、前記もう一つのプロセ
    ッサー・エミュレータと協調して、前記もう一つの標的
    マイクロプロセッサー上にて実行される前記標的プログ
    ラムが、ハードウェア・シミュレータ中の標的回路と相
    互作用を持たなければならない時を認識するもの。
  50. 【請求項50】 電子システムを検査・分析するための
    システムであって、標的マイクロプロセッサーをエミュ
    レートするためのハードウェア装置を採用したプロセッ
    サー・エミュレータと、前記プロセッサー・エミュレー
    タは、標的マイクロプロッセー上で実行される標的プロ
    グラムの保存・実行用メモリーを含むが、さらに、ハー
    ドウェア・シミュレータ上でシミュレートされる標的回
    路とを含み、かつ、次のものから成るシステムである、
    すなわち、 プロッセサー・エミュレータとハードウェア・シミュレ
    ータと連絡するソフトウェア・カーネルであって、か
    つ、前記ソフトウェア・カーネルは、プロセッサー・エ
    ミュレータと協調して、標的プログラムが、ハードウェ
    ア・シミュレータ中の標的回路と相互作用を持たなけれ
    ばならない時を認識するもの、および、 ハードウェア・シミュレータを前記ソフトウェア・カー
    ネルに接続し、かつ、前記ソフトウェア・カーネルをプ
    ロセッサー・エミュレータに接続する通信リンクであ
    り、それによって、システムが、シミュレートされる標
    的回路と共同して、標的プログラムを実行する標的マイ
    クロプロセッサーの機能状態をシミュレートするもの。
  51. 【請求項51】 コンピュータ・ハードウェアを検査・
    分析する方法であって、標的マイクロプロセッサーとシ
    ミュレートされる標的回路、および、標的マイクロプロ
    セッサー上にて実行される付属ソフトウェアを含み、シ
    ステムが次のものから成る、すなわち、 複数のコンピュータ指令をメモリーに保存するが、ここ
    に前記コンピュータ指令は、付属のソフトウェアを含
    み、 プロセッサー・エミュレータを用いて標的マイクロプロ
    セッサーをエミュレートするが、ここに前記プロセッサ
    ー・エミュレータは前記メモリーに接続されて、前記コ
    ンピュータ指令を実行し、 前記プロセッサー・エミュレータに接続したハードウェ
    ア・シミュレータを用いて標的回路をシミュレートし、
    かつ、 前記プロセッサー・エミュレータと前記ハードウェア・
    シミュレータ間の連絡を制御するが、ここに前記プロセ
    ッサー・エミュレータは前記メモリーと連絡して、前記
    メモリーから前記コンピュータ指令を受け取り、さら
    に、前記プロセッサー・エミュレータは、事象が、標的
    マイクロプロセッサーが標的回路と相互作用を持つこと
    を要求する時のみ、前記ハードウェア・シミュレータと
    連絡する。
  52. 【請求項52】 請求項 51 の方法であって、さらに、
    その発生時に、標的マイクロプロセッサーが標的回路と
    相互作用を持たなければならない前記事象を、例外検出
    ソフトウェア・ルーチンを用いて検出する手順を含む。
  53. 【請求項53】 請求項 51 の方法であって、ここに、
    その発生時に、標的マイクロプロセッサーが標的回路と
    相互作用を持たなければならない前記事象が、前記ハー
    ドウェア・シミュレータへの入力/出力 (I/O) 指令で
    あり、かつ、前記の組の制御通信が、前記プロセッサー
    ・エミュレータから前記ハードウェア・シミュレータへ
    の前記 I/O 指令の伝達を制御する。
  54. 【請求項54】 請求項 51 の方法であって、ここに、
    前記プロセッサー・エミュレータは第 1 データ・フォ
    ーマットを用い、前記ハードウェア・シミュレータは第
    2 データ・フォーマットを用い、かつ、この方法はさ
    らに、標的マイクロプロセッサーが標的回路と相互作用
    を持つことを要求する前記事象を、第 1データ・フォー
    マットから、第 2 データ・フォーマットで書かれた 1
    個以上の機能に変換する手順を含む。
  55. 【請求項55】 請求項 54 の方法であって、ここに、
    前記ハードウェア・シミュレータは、標的マイクロプロ
    セッサーのピンの活動をシミュレートするプロセッサー
    ・モデル・シェルを含んでおり、かつ、この方法はさら
    に、前記第 2データ・フォーマットによる前記機能を、
    プロセッサー・モデル・シェルと適合する一組の信号列
    に転換する手順を含む。
  56. 【請求項56】 請求項 55 の方法であって、前記プロ
    セッサー・エミュレータと連絡するコンピュータに使用
    され、ここに、前記コンピュータがさらに、前記ハード
    ウェア・シミュレータを用いて標的回路をシミュレート
    し、前記事象を変換し、マッパー操作することから成る
    前記手順を実行する。
  57. 【請求項57】 請求項 55 の方法であって、ここに、
    前記プロセッサー・エミュレータが、前記トランスレー
    タと前記マッパーに、第 1 コンピュータ・ネットワー
    ク結合によって接続され、かつ、前記通信制御手順が、
    前記第 1 ネットワーク結合における通信を制御する。
  58. 【請求項58】 請求項 56 の方法であって、ここに、
    前記トランスレータと前記マッパーが、前記ハードウェ
    ア・シミュレータに、第 2 コンピュータ・ネットワー
    ク結合によって接続され、かつ、前記通信制御手順が、
    前記第 2 ネットワーク結合における通信を制御する。
  59. 【請求項59】 請求項 51 の方法であって、前記プロ
    セッサー・エミュレータと連絡するコンピュータに使用
    され、ここに、前記コンピュータがさらに、前記ハード
    ウェア・シミュレータを用いて標的回路をシミュレート
    することから成る前記手順を実行する。
  60. 【請求項60】 請求項 51 の方法であって、ここに、
    前記ハードウェア・シミュレータは、標的マイクロプロ
    セッサーのピンの活動をシミュレートするプロセッサー
    ・モデル・シェルを含んでおり、かつ、この方法はさら
    に、標的プログラムが標的回路と相互作用を持つことを
    要求する前記事象を、プロセッサー・モデル・シェルと
    適合する一組の信号列に転換する手順を含む。
  61. 【請求項61】 請求項 60 の方法であって、前記プロ
    セッサー・エミュレータと連絡するコンピュータに使用
    され、ここに、前記コンピュータがさらに、前記ハード
    ウェア・シミュレータを用いて標的回路をシミュレート
    する前記手順と、マッパー操作をする前記手順を実行す
    る。
  62. 【請求項62】 請求項 51 の方法であって、さらに、
    もう一つの標的マイクロプロセッサーをエミュレートす
    るハードウェア装置を用いる、もう一つのプロセッサー
    ・エミュレータに使用され、かつ、このもう一つのプロ
    セッサー・エミュレータは、このもう一つの標的マイク
    ロプロセッサー上にて実行される標的プログラムを保存
    ・実行するためのもう一つのメモリーを含み、この方法
    はさらに、このもう一つのメモリー、このもう一つのプ
    ロセッサー・エミュレータと前記ハードウェア・シミュ
    レータ間の通信を制御する手順を含み、かつ、このもう
    一つのプロセッサー・エミュレータは、このもう一つの
    メモリーと連絡し、このもう一つの標的マイクロプロセ
    ッサー上で実行される標的プログラムを含むコンピュー
    タ指令を、このもう一つのメモリーから受け取り、さら
    に、このもう一つのプロセッサー・エミュレータは、前
    記ハードウェア・シミュレータと、その発生時に、この
    もう一つの標的マイクロプロセッサーが標的回路と相互
    作用を持たなければならない事象の発生時にのみ通信す
    る。
JP32190896A 1995-12-01 1996-12-02 ハードウェア・ソフトウェア相互作用を結合した、コンピュータシステムのシミュレーション・システム、および、方法 Pending JPH09293002A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/566,401 US5838948A (en) 1995-12-01 1995-12-01 System and method for simulation of computer systems combining hardware and software interaction
US08/566401 1995-12-01

Publications (1)

Publication Number Publication Date
JPH09293002A true JPH09293002A (ja) 1997-11-11

Family

ID=24262737

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32190896A Pending JPH09293002A (ja) 1995-12-01 1996-12-02 ハードウェア・ソフトウェア相互作用を結合した、コンピュータシステムのシミュレーション・システム、および、方法

Country Status (4)

Country Link
US (1) US5838948A (ja)
EP (1) EP0777180A3 (ja)
JP (1) JPH09293002A (ja)
CA (1) CA2191391A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007164780A (ja) * 2005-12-09 2007-06-28 Internatl Business Mach Corp <Ibm> 方法、システムおよびプログラム(設計を検証する方法およびシステム)
US8250545B2 (en) 2002-06-25 2012-08-21 Fujitsu Semiconductor Limited Associated apparatus and method for supporting development of semiconductor device

Families Citing this family (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69704004T2 (de) * 1996-06-19 2001-06-07 Matsushita Electric Ind Co Ltd Vorrichtung zur Programmfehlerbeseitigung
US6031992A (en) * 1996-07-05 2000-02-29 Transmeta Corporation Combining hardware and software to provide an improved microprocessor
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5841967A (en) * 1996-10-17 1998-11-24 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation
US6006022A (en) * 1996-11-15 1999-12-21 Microsystem Synthesis, Inc. Cross-linked development and deployment apparatus and method
US6009256A (en) 1997-05-02 1999-12-28 Axis Systems, Inc. Simulation/emulation system and method
US6152612A (en) * 1997-06-09 2000-11-28 Synopsys, Inc. System and method for system level and circuit level modeling and design simulation using C++
WO1998057283A1 (en) * 1997-06-13 1998-12-17 Simpod, Inc. Concurrent hardware-software co-simulation
US6173243B1 (en) * 1997-07-31 2001-01-09 Advanced Micro Devices, Inc. Memory incoherent verification methodology
AU9503398A (en) * 1997-10-02 1999-04-27 Wam!Net Inc. Method for data communication involving message files created by standard-compliant equipment
US20010039564A1 (en) * 1997-10-20 2001-11-08 Victor Hahn Log on personal computer
US6425762B1 (en) * 1998-02-24 2002-07-30 Wind River Systems, Inc. System and method for cosimulation of heterogeneous systems
GB9805488D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Microcomputer
GB9805482D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Microcomputer
US6317706B1 (en) * 1998-03-31 2001-11-13 Sony Corporation Simulation development tool for an embedded system
US6188975B1 (en) 1998-03-31 2001-02-13 Synopsys, Inc. Programmatic use of software debugging to redirect hardware related operations to a hardware simulator
US20030229486A1 (en) * 1998-04-28 2003-12-11 Nec Corporation System level simulation method and device
US9195784B2 (en) * 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
US20060117274A1 (en) * 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
DE59908019D1 (de) 1998-09-02 2004-01-22 Infineon Technologies Ag Verfahren und vorrichtung zur systemsimulation von mikrocontrollern/mikroprozessoren und zugehörenden peripheriemodulen
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6279146B1 (en) 1999-01-06 2001-08-21 Simutech Corporation Apparatus and method for verifying a multi-component electronic design
US6298452B1 (en) * 1999-02-05 2001-10-02 Hewlett-Packard Company Hardware test coverage using inter-chip event filtering in multi-chip simulations
US6738737B1 (en) * 1999-02-18 2004-05-18 Cirrus Logic, Inc. Race condition ordering and functional verification system and method
KR100306596B1 (ko) * 1999-03-19 2001-09-29 윤덕용 프로세서와 재설정가능 칩을 사용한 집적회로 에뮬레이터
US6715043B1 (en) * 1999-03-19 2004-03-30 Phoenix Technologies Ltd. Method and system for providing memory-based device emulation
US6581029B1 (en) * 1999-05-11 2003-06-17 International Business Machines Corporation Method and system for optimizing execution of a collection of related module sequences by eliminating redundant modules
US6701491B1 (en) * 1999-06-26 2004-03-02 Sei-Yang Yang Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
US6810373B1 (en) * 1999-08-13 2004-10-26 Synopsis, Inc. Method and apparatus for modeling using a hardware-software co-verification environment
US6230114B1 (en) * 1999-10-29 2001-05-08 Vast Systems Technology Corporation Hardware and software co-simulation including executing an analyzed user program
US6751583B1 (en) * 1999-10-29 2004-06-15 Vast Systems Technology Corporation Hardware and software co-simulation including simulating a target processor using binary translation
US6263302B1 (en) * 1999-10-29 2001-07-17 Vast Systems Technology Corporation Hardware and software co-simulation including simulating the cache of a target processor
US6973417B1 (en) * 1999-11-05 2005-12-06 Metrowerks Corporation Method and system for simulating execution of a target program in a simulated target system
US6718485B1 (en) 1999-11-16 2004-04-06 Parasoft Corporation Software emulating hardware for analyzing memory references of a computer program
KR20010064251A (ko) * 1999-12-27 2001-07-09 오길록 상대적 타이머를 이용한 실시간 소프트웨어 시뮬레이션 방법
US7107202B1 (en) * 2000-01-31 2006-09-12 Intel Corporation Method and apparatus for hardware and software co-simulation
US6487699B1 (en) 2000-01-31 2002-11-26 International Business Machines Corporation Method of controlling external models in system-on-chip verification
US6571373B1 (en) 2000-01-31 2003-05-27 International Business Machines Corporation Simulator-independent system-on-chip verification methodology
US6427224B1 (en) 2000-01-31 2002-07-30 International Business Machines Corporation Method for efficient verification of system-on-chip integrated circuit designs including an embedded processor
US6539522B1 (en) 2000-01-31 2003-03-25 International Business Machines Corporation Method of developing re-usable software for efficient verification of system-on-chip integrated circuit designs
US6615167B1 (en) 2000-01-31 2003-09-02 International Business Machines Corporation Processor-independent system-on-chip verification for embedded processor systems
US6868545B1 (en) 2000-01-31 2005-03-15 International Business Machines Corporation Method for re-using system-on-chip verification software in an operating system
US6978233B1 (en) * 2000-03-03 2005-12-20 Unisys Corporation Method for emulating multi-processor environment
AU2001237027A1 (en) * 2000-03-07 2001-09-17 Electronics For Imaging, Inc. Tcl pli, a framework for reusable, run time configurable test benches
US7174285B1 (en) * 2000-03-27 2007-02-06 Lucent Technologies Inc. Method and apparatus for assessing quality of service for communication networks
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
DE10042559A1 (de) * 2000-06-30 2002-01-10 Continental Teves Ag & Co Ohg System zur Simulation von Fahrzeugkomponenten in Kraftfahrzeugen und dessen Verwendung zur Entwicklung und Fertigung von elektronischen Bremssystemen und Einrichtung zur Regelung der Fahrdynamik
GB2367654B (en) 2000-10-05 2004-10-27 Advanced Risc Mach Ltd Storing stack operands in registers
GB2367653B (en) 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
US20020069402A1 (en) * 2000-10-05 2002-06-06 Nevill Edward Colles Scheduling control within a system having mixed hardware and software based instruction execution
KR20020028814A (ko) * 2000-10-10 2002-04-17 나조미 커뮤니케이션즈, 인코포레이티드 마이크로코드 엔진을 이용한 자바 하드웨어 가속기
WO2002033597A1 (fr) * 2000-10-18 2002-04-25 Advantest Corporation Appareil et procede de support de conception d'un dispositif electronique, procede de fabrication d'un tel dispositif, et programme correspondant
GB2369464B (en) 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
US7076771B2 (en) 2000-12-01 2006-07-11 Arm Limited Instruction interpretation within a data processing system
US7016826B2 (en) * 2000-12-21 2006-03-21 Intel Corporation Apparatus and method of developing software for a multi-processor chip
US7865349B2 (en) * 2001-01-19 2011-01-04 National Instruments Corporation Simulation, measurement and/or control system and method with coordinated timing
US6684169B2 (en) * 2001-06-29 2004-01-27 Teradyne, Inc. Facilitating comparisons between simulated and actual behavior of electronic devices
US20020188432A1 (en) * 2001-05-15 2002-12-12 Houlihane Thomas Sean Circuit model generation and circuit model testing
GB2376100B (en) * 2001-05-31 2005-03-09 Advanced Risc Mach Ltd Data processing using multiple instruction sets
GB2376098B (en) * 2001-05-31 2004-11-24 Advanced Risc Mach Ltd Unhandled operation handling in multiple instruction set systems
GB2376099B (en) * 2001-05-31 2005-11-16 Advanced Risc Mach Ltd Program instruction interpretation
GB2376097B (en) 2001-05-31 2005-04-06 Advanced Risc Mach Ltd Configuration control within data processing systems
US20020198696A1 (en) * 2001-06-08 2002-12-26 Hector Sanchez Method and apparatus for designing and making an integrated circuit
EP2287723A3 (en) 2001-07-26 2012-11-14 IRiSE System and process for gathering, recording and validating requirements for computer applications
DE10137574B4 (de) * 2001-07-31 2006-01-19 Infineon Technologies Ag Verfahren, Computerprogramm und Datenverarbeitungsanlage zur Verarbeitung von Netzwerktopologien
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
US6961794B2 (en) * 2001-09-21 2005-11-01 International Business Machines Corporation System and method for analyzing and optimizing computer system performance utilizing observed time performance measures
US7529653B2 (en) * 2001-11-09 2009-05-05 Sun Microsystems, Inc. Message packet logging in a distributed simulation system
US7464016B2 (en) * 2001-11-09 2008-12-09 Sun Microsystems, Inc. Hot plug and hot pull system simulation
US20030093256A1 (en) * 2001-11-09 2003-05-15 Carl Cavanagh Verification simulator agnosticity
US7231338B2 (en) * 2001-11-09 2007-06-12 Sun Microsystems, Inc. Distributed simulation system having phases of a timestep
US20030093253A1 (en) * 2001-11-09 2003-05-15 Freyensee James P. Grammar for message passing in a distributed simulation environment
EP1452968A4 (en) * 2001-11-30 2010-03-03 Fujitsu Ten Ltd DEVELOPMENT DEVICE FOR MICROCOMPUTER LOGIC
JP2003280902A (ja) * 2002-03-25 2003-10-03 Fujitsu Ten Ltd マイコンロジック開発システム及びそのプログラム
US20030188302A1 (en) * 2002-03-29 2003-10-02 Chen Liang T. Method and apparatus for detecting and decomposing component loops in a logic design
US7188060B1 (en) * 2002-03-29 2007-03-06 Unisys Corporation Emulation of a high-speed, high-stability clock
TWI261297B (en) * 2002-05-01 2006-09-01 Via Tech Inc Chip manufacturing process capable of testing efficiency in advance and its test method
US6912473B2 (en) * 2002-06-28 2005-06-28 International Business Machines Corporation Method for verifying cross-sections
US7131118B2 (en) * 2002-07-25 2006-10-31 Arm Limited Write-through caching a JAVA® local variable within a register of a register bank
US20040059562A1 (en) * 2002-09-20 2004-03-25 Bergman Eric D. Systems and methods for calibrating emulated device performance
US20040064829A1 (en) * 2002-09-30 2004-04-01 Kim Pallister Method for identifying processor affinity and improving software execution
US7146581B2 (en) * 2002-11-15 2006-12-05 Russell Alan Klein Automated repartitioning of hardware and software components in an embedded system
US7958267B1 (en) 2002-11-19 2011-06-07 Quadrus Corporation Message traffic interception system
JP2004234530A (ja) 2003-01-31 2004-08-19 Fujitsu Ten Ltd マイクロコンピュータのロジック開発装置
GB2399897B (en) * 2003-03-26 2006-02-01 Advanced Risc Mach Ltd Memory recycling in computer systems
US20040243379A1 (en) * 2003-05-29 2004-12-02 Dominic Paulraj Ideal machine simulator with infinite resources to predict processor design performance
US7137087B1 (en) * 2003-08-20 2006-11-14 Adaptec, Inc. Integrated circuit verification scheme
US7409602B2 (en) * 2003-11-12 2008-08-05 Lsi Corporation Methodology for debugging RTL simulations of processor based system on chip
US7356455B2 (en) 2003-11-18 2008-04-08 Quickturn Design Systems, Inc. Optimized interface for simulation and visualization data transfer between an emulation system and a simulator
GB2412192B (en) * 2004-03-18 2007-08-29 Advanced Risc Mach Ltd Function calling mechanism
US7930526B2 (en) 2004-03-24 2011-04-19 Arm Limited Compare and branch mechanism
US7802080B2 (en) 2004-03-24 2010-09-21 Arm Limited Null exception handling
US7738399B2 (en) * 2004-06-01 2010-06-15 Quickturn Design Systems Inc. System and method for identifying target systems
US7721036B2 (en) * 2004-06-01 2010-05-18 Quickturn Design Systems Inc. System and method for providing flexible signal routing and timing
US7424416B1 (en) * 2004-11-09 2008-09-09 Sun Microsystems, Inc. Interfacing hardware emulation to distributed simulation environments
US8219379B2 (en) * 2004-11-29 2012-07-10 Arm Limited System, method and computer program product for testing software
US7480609B1 (en) * 2005-01-31 2009-01-20 Sun Microsystems, Inc. Applying distributed simulation techniques to hardware emulation
US7478027B2 (en) * 2005-03-30 2009-01-13 International Business Machines Corporation Systems, methods, and media for simulation of integrated hardware and software designs
US8447580B2 (en) * 2005-05-31 2013-05-21 The Mathworks, Inc. Modeling of a multiprocessor system
US8756044B2 (en) * 2005-05-31 2014-06-17 The Mathworks, Inc. Graphical partitioning for parallel execution of executable block diagram models
JP4346587B2 (ja) * 2005-07-27 2009-10-21 富士通株式会社 システムシミュレーション方法
US20070028216A1 (en) * 2005-07-28 2007-02-01 Boss Gregory J Systems and methods for embedded application test suites
US8983823B1 (en) 2005-12-29 2015-03-17 The Mathworks, Inc. Verification harness for automatically generating a text-based representation of a graphical model
US9317628B1 (en) 2005-12-29 2016-04-19 The Mathworks, Inc. Automatic comparison and performance analysis between different implementations
EP1864219A1 (en) * 2006-02-28 2007-12-12 Mentor Graphics Corporation Monitoring physical parameters in an emulation environment
US20090055155A1 (en) * 2007-08-20 2009-02-26 Russell Klein Simulating execution of software programs in electronic circuit designs
KR20090026230A (ko) * 2007-09-09 2009-03-12 김건 임베디드 시스템의 범용 고속 실시간 모니터링 장치
CN100562848C (zh) * 2007-09-21 2009-11-25 深圳职业技术学院 微处理器通用开发系统
US9779235B2 (en) * 2007-10-17 2017-10-03 Sukamo Mertoguno Cognizant engines: systems and methods for enabling program observability and controlability at instruction level granularity
US8402438B1 (en) 2007-12-03 2013-03-19 Cadence Design Systems, Inc. Method and system for generating verification information and tests for software
US8326592B2 (en) * 2007-12-21 2012-12-04 Cadence Design Systems, Inc. Method and system for verifying electronic designs having software components
US8156474B2 (en) * 2007-12-28 2012-04-10 Cadence Design Systems, Inc. Automation of software verification
US7983893B2 (en) 2008-01-08 2011-07-19 Mentor Graphics Corporation Fault support in an emulation environment
US7930165B2 (en) * 2008-02-07 2011-04-19 Accemic Gmbh & Co. Kg Procedure and device for emulating a programmable unit providing system integrity control
US8214195B2 (en) * 2008-03-21 2012-07-03 Mentor Graphics Corporation Testing in a hardware emulation environment
US20090248390A1 (en) * 2008-03-31 2009-10-01 Eric Durand Trace debugging in a hardware emulation environment
US20100049486A1 (en) * 2008-08-22 2010-02-25 General Electric Company Systems and Methods for Simulating Plant Operations
US8504344B2 (en) * 2008-09-30 2013-08-06 Cadence Design Systems, Inc. Interface between a verification environment and a hardware acceleration engine
US20100280817A1 (en) * 2009-04-30 2010-11-04 Spansion Llc Direct pointer access and xip redirector for emulation of memory-mapped devices
EP2625606A4 (en) 2010-10-08 2014-11-26 Irise SYSTEM AND METHOD FOR EXTENDING A VISUALIZATION PLATFORM
US9081896B1 (en) * 2012-03-21 2015-07-14 Amazon Technologies, Inc. Generating a replacement binary for emulation of an application
US9225665B2 (en) * 2012-09-25 2015-12-29 Qualcomm Technologies, Inc. Network on a chip socket protocol
GB2524016B (en) * 2014-03-11 2021-02-17 Advanced Risc Mach Ltd Hardware simulation
DE102014219709A1 (de) * 2014-09-29 2016-03-31 Siemens Aktiengesellschaft Verfahren zur Kraftwerkssimulation für Test- und Schulungszwecke mittels einer verteilten Simulationshardware
US10310833B2 (en) * 2017-01-30 2019-06-04 Dell Products L.P. Parallel diagnostic/software installation system
US10133654B1 (en) * 2017-02-28 2018-11-20 American Megatrends, Inc. Firmware debug trace capture
US20190004920A1 (en) * 2017-06-30 2019-01-03 Intel Corporation Technologies for processor simulation modeling with machine learning
US10534588B2 (en) * 2018-06-08 2020-01-14 Sap Se Data processing simulator with simulator module and data elements
CN112947256A (zh) * 2021-03-31 2021-06-11 中国建设银行股份有限公司 基于机器人的电脑系统控制方法、装置、介质及机器人
CN114281381A (zh) * 2021-12-23 2022-04-05 广州航海学院 一种全任务轮机模拟器板卡的管理方法及设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4638423A (en) * 1985-03-06 1987-01-20 Motorola, Inc. Emulating computer
US5077657A (en) * 1989-06-15 1991-12-31 Unisys Emulator Assist unit which forms addresses of user instruction operands in response to emulator assist unit commands from host processor
JPH04229337A (ja) * 1990-12-27 1992-08-18 Hitachi Ltd エミュレータ
AU3424693A (en) * 1992-01-02 1993-07-28 Amdahl Corporation Software control of hardware interruptions
US5572710A (en) * 1992-09-11 1996-11-05 Kabushiki Kaisha Toshiba High speed logic simulation system using time division emulation suitable for large scale logic circuits
US5363501A (en) * 1992-12-22 1994-11-08 Sony Electronics, Inc. Method for computer system development verification and testing using portable diagnostic/testing programs
GB9405729D0 (en) * 1994-03-23 1994-05-11 Vantage Analysis Systems Europ Software execution systems
US5574927A (en) * 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
US5493672A (en) * 1994-05-16 1996-02-20 Sun Microsystems, Inc. Concurrent simulation of host system at instruction level and input/output system at logic level with two-way communication deadlock resolution
US5551013A (en) * 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
US5600579A (en) * 1994-07-08 1997-02-04 Apple Computer, Inc. Hardware simulation and design verification system and method
US5546562A (en) * 1995-02-28 1996-08-13 Patel; Chandresh Method and apparatus to emulate VLSI circuits within a logic simulator

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250545B2 (en) 2002-06-25 2012-08-21 Fujitsu Semiconductor Limited Associated apparatus and method for supporting development of semiconductor device
JP2007164780A (ja) * 2005-12-09 2007-06-28 Internatl Business Mach Corp <Ibm> 方法、システムおよびプログラム(設計を検証する方法およびシステム)

Also Published As

Publication number Publication date
US5838948A (en) 1998-11-17
EP0777180A2 (en) 1997-06-04
EP0777180A3 (en) 1999-02-10
CA2191391A1 (en) 1997-06-02

Similar Documents

Publication Publication Date Title
JPH09293002A (ja) ハードウェア・ソフトウェア相互作用を結合した、コンピュータシステムのシミュレーション・システム、および、方法
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
Aarno et al. Software and system development using virtual platforms: full-system simulation with wind river simics
US7171653B2 (en) Systems and methods for providing communication between a debugger and a hardware simulator
US5911059A (en) Method and apparatus for testing software
US7475288B2 (en) Accelerated hardware emulation environment for processor-based systems
US7647583B2 (en) Method and apparatus for emulating a hardware/software system using a computer
Yoo et al. Building fast and accurate SW simulation models based on hardware abstraction layer and simulation environment abstraction layer
Engblom et al. Full-system simulation from embedded to high-performance systems
Benini et al. Legacy SystemC co-simulation of multi-processor systems-on-chip
CN103713977B (zh) 一种微处理器ip核比较验证的实现方法
Lin et al. Functional verifications for SoC software/hardware co-design: From virtual platform to physical platform
CN117422026B (zh) 一种基于risc-v架构的处理器验证系统
Chevalier et al. A SystemC refinement methodology for embedded software
Bacivarov et al. Timed HW-SW cosimulation using native execution of OS and application SW
Turner System-level verification-a comparison of approaches
El-Moursy et al. Efficient embedded SoC hardware/software codesign using virtual platform
CN112329369A (zh) 一种在芯片仿真模型上进行软件调试的方法
Fummi et al. SystemC co-simulation for core-based embedded systems
Joloboff et al. Virtual prototyping of embedded systems: speed and accuracy tradeoffs
Mueller-Gritschneder et al. Safety evaluation based on virtual prototypes: fault injection with multi-level processor models
Karmitsa Pre-validation of SoC via hardware and software co-simulation
Mohamed HW/SW Co-Verification and Co-Debugging
Kleinert et al. Adaptive synchronization interface for hardware-software co-simulation based on systemc and QEMU
JP3424548B2 (ja) 組み込み機器用ソフトウエア論理シミュレータ