JPH01145740A - マルチプロセス用エミユレータ - Google Patents

マルチプロセス用エミユレータ

Info

Publication number
JPH01145740A
JPH01145740A JP62303118A JP30311887A JPH01145740A JP H01145740 A JPH01145740 A JP H01145740A JP 62303118 A JP62303118 A JP 62303118A JP 30311887 A JP30311887 A JP 30311887A JP H01145740 A JPH01145740 A JP H01145740A
Authority
JP
Japan
Prior art keywords
event
address
emulator
identification information
register
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
JP62303118A
Other languages
English (en)
Inventor
Megumi Kondo
惠 近藤
Satoshi Masuda
増田 訓
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62303118A priority Critical patent/JPH01145740A/ja
Publication of JPH01145740A publication Critical patent/JPH01145740A/ja
Priority to US07/701,359 priority patent/US5280626A/en
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマルチプロセス用エミュレータ、更に詳しく言
えば、ソフトウェアのテストを支援する装置に係り、特
にマルチプロセス環境下でのソフトウアテストに好適な
マルチプロセス用エミュレータに関する。
〔従来の技術〕
32ビツトや16ビツトのマイクロプロセッサを組込ん
だシステムをテストする場合には、イン・サーキット・
エミュレータ(In−Circln−C1rcuitE
、以下では単にエミュレータと呼ぶ)を用いることが多
い、ターゲットシステムのCPUのかわりにエミュレー
タを接続することにより。
実際の使用環境でテストを行なうことができる。
第2図を用いてエミュレータの動作概要を説明する。エ
ミュレータはエミュレータ本体4とエミュレーションC
PU部1から構成される。エミュレータ本体はエミュレ
ートするターゲットシステム8のCPUが変っても変え
る必要はない、エミュレーションCPU部1をターゲッ
トシステム8のCPUに合わせて置換える。エミュレー
ションCPU3はターゲットシステム8のCPUにかわ
って実行するものであり、ターゲットシステムのCPU
と同一でなければならない、タイミング回路2はCPU
3にマツチしたタイミング信号を発生する。エミュレー
タ本体4はエミュレータ全体を統括する制御プロセッサ
7と、エミュレーションCPU部1からの信号を記憶す
るトレースメモリ6と、イベントの設定・監視・検出を
行なうイベントモニタ5から構成される。
このようなエミュレータの操作としては、あるアドレス
までプログラムが進んだ時に実行を停止させて、その時
のメモリ内容を読出し/書換えること、読出し/書換え
データが特定の値に等しくなった時に実行を停止させる
こと、あるアドレスからプログラムを一命令ずつ実行さ
せることなどが可能である。
従来のエミュレータではプログラムの実行を停止させる
契機(イベント)の発生が、単なるアドレスでしか規定
できず、マルチプロセスでのソフトウェアをテストする
場合どのプログラムが動いているかとは無関係になって
しまう。
第3図を用いて説明する1図は従来一方式によるエミュ
レータの内、イベントの生成、監視を行うイベントモニ
タの構成図である。第1の従来方式は図の破線で囲まれ
た単純イベント検出部51のみからなる。ある条件が成
立した時、プロセスの実行を中止させたい場合(ブレー
クポイント設定とよぶ)には、37,39.41の各レ
ジスタに条件を設定する。あるアドレスに、ある値が書
込まれた時、イベントを発生させたとすれば、アドレス
レジスタ37に所望のアドレスを、データレジスタ39
に所望の値を、ステータレジスタ41にW(Write
)を設定する。実行中止にはエミュレーションCPUか
ら刻々とアドレス、データ。
ステータスの各情報が供給されるので、3個のコンパレ
ータ38,40.42で比較し、一致すれば出力を1と
する。アドレス、データ、ステータスの3者が一致すれ
ばANDゲート48の出力が1となり、イベント発生と
なる。なお、アドレスレジスタ37.ステータスレジス
タ39.データレジスタ41に条件が設定されていない
場合には。
対応する各コンパレータは常に1を出力する。
第2の従来方式は第3図の全要素からなる。この方式で
はシーケンシャルイベント、すなわち、あるイベントE
x  (前イベントと呼ぶ)が発生した後、別イベント
Ex  (後イベントと呼ぶ)が発生した時イベント発
生とする、の設定が可能となる。単純イボント検出部5
1と同様にイベントE1の条件をSレジスタ31,33
.35に設定し、イベントE2の条件を単純イベント検
出部に設定する。(ここでプリフィックスのSは5eq
uentialを意味する)Elの条件が成立するとA
NDゲート50の出力が1となり、Sイベントレジスタ
43のS (Set)入力が1となり、E−1イベント
発生を記憶する。この時Sイベントレジスタの出力も1
となる。この後単純イベント検出部51でイベントE2
が発生すると、ANDゲート48の出力が1となる。A
NDゲート49の出力も1となり、シーケンシャルイベ
ント発生となる。
なお、ここでSイベントレジスタはR−5(Reset
−3et)フリップフロップであって、S入力が1にな
ると出力が1となり、R入力が1となってリセットされ
るまでその状態を保持する。
〔発明が解決しようとする問題点〕 第1の従来方式ではイベントの検出は、単一のプログラ
ムの実行におけるアドレス、データ、ステータスの組合
せでしか行なわれないので、マルチプロセスシステムで
は問題がある。マルチプロセスシステムでは複数のプロ
グラムが(マクロには)同時に動作する。そのアドレス
空間を第4図に示す。A、B、Cの3個のプロセスがあ
り、それぞれ太線で示すアドレス空間をっている。プロ
セス空間は1個々のプロセスが独立に持っており。
プロセスAとCがアドレスXを持っている。プロセスA
のアドレス又とプロセスCのアドレスXとは全く別のも
のである。一方システム空間などのプロセスから同一に
見える空間であり、制御プログラム(オペレーティング
システム)やプロセス間で共用するデーター等がおかれ
る。
この様に複数のプロセスが動いている状況で、プロセス
AのアドレスXにブレークポイントを設定したとする。
第1の従来方式ではアドレスxしか指定できないので、
アドレスXでイベントが発生したと教えられても、ユー
ザはプロセスAが動いているのか、プロセスCが動いて
いるのかわらかない。
第2の従来方式では、シーケンシャルイベントを設定で
きるので、現在勤いているプロセスのプロセス識別番号
が格納されているアドレスをSアドレスレジスタ31に
、所望のプロセス識別情報をSデータレジスタ35に、
W(vrita)をSステータスレジスタ33に設定し
、単純イベント検出部51にブレークポイントを設定す
べきアドレス条件を設定することによって、あるプロセ
スが動いている(即ち、特定アドレスに所望のプロセス
識別情報が格納されている)時に、所望のアドレスで停
止させることができる。しかし、この場合にも問題があ
る。プロセス識別情報に関するイベントをEl、ブレー
クポイントアドレスに関するイベントをE2とするaE
tの後にE2が発生して始めて所望のイベントというこ
とになる。第2の従来方式では、−旦Exが発生すると
、イベントモニタ5をリセットしない限り、イベントE
1の発生をリセットできない。
このために生じる問題を再び第4図を用いて説明する。
今プロセスAのアドレスXにブレークポイントを設定し
たいとする。プロセスXが走り始めるとイベントE1が
発生する。その後、実行プロセスがAからCに切換わり
(プロセススイッチと呼ぶ)、アドレスXが発生したと
すれば、本方式ではイベント発生となる。これは望まし
いイベントではない。
〔問題点を解決するための手段〕
本発明は上記問題を解決するため、前記イベントE1の
検出及び記憶手段、後イベントE2.の検出手段に加え
て、前記イベント発生条件が成立しなくなった時に、前
記イベント検出状態をリセットする手段を追加すること
によって構成される。
〔作用〕 プロセスAのアドレスXにブレークポイントを設定する
際には、前記イベントとしてプロ誉スAを後イベントと
してアドレスXを設定する。プロセスAが動きはじめる
と、前イベントが発生し、その旨記憶されるが、プロセ
スAからプロセスCへのプロセススイッチが生じると、
前イベントがリセットされる。その為、仮にプロセスC
でアドレスXが発生しても、ブレークポイントが誤って
発生することはない。
〔実施例〕
以下1本発明の詳細な説明する。マルチプロセス環境で
はプロセスを管理するオペレーティングシステム(以下
ではO8と略す)が必ず存在する。O8内部には現在ど
のプロセスが動いているかを示す“プロセス識別情報″
が(システム毎に定まる)特定のアドレス(カレントプ
ロセスアドレスと呼ぶ)に格納されている。
第4図に示すマルチプロセス環境下でプロセスAのアド
レスXにブレークポイントを設定する場合について、第
1図を用いて説明する。Sアドレスレジスタ31にカレ
ントプロセスアドレスを、Sステータスレジスタ33に
W(!jrite)を、Sデータレジスタ3ミにブレー
クポイントを設定したいプロセスのプロセス識別情報を
設定する。更にアドレスレジスタ37にはブレークポイ
ントを設定したいアドレスを設定し、ステータレジスタ
39、データレジスタ41には何も設定しない。
この状態でプログラムの実行が開始されると、エミュレ
ーションCPU3からアドレス、ステータス、データの
各信号が供給され、32,34゜36.38,40,4
2の各コンパレータで時々刻々比較が行なわれる6プロ
セスXが動き始めるとO8はカレントプロセスアドレス
にAのプロセス識別情報を書込むので、コンパレータ3
2゜34の出力が1となり、ANDゲート44の出力も
1となる。コンパレータ36の出力も1となるのでAN
Dゲート45の出力が1となり、Sイベントレジスタ4
3のS (set)入力が1となり、前イベント発生が
記憶される。この後、アドレスXが発生すると、コンパ
レータ38の出力が1となり、コンパレータ40,42
の出力も1である(ステータスレジスタ39.データレ
ジスタ41が未設定であるため)ので、ANDゲート4
8の出力が1となり、ANDゲート49の出力も1とな
ってイベントが発生する。
前イベントが発生してSイベントレジスタ43の出力が
1になっている状態で、プロセススイッチが発生し、プ
ロセスAからプロセスCに変ったとすると、エミュレー
ションCPUから供給されるアドレスがカレントプロセ
スアドレスに等しくなり、かつ、ステータスがW(Wr
ite)になるので。
コンパレータ32,34の出力が共に1となり、AND
ゲート44の出力も1になる。しかも、この時点でエミ
ュレーションCPUから供給されるデータ(プロセス識
別情報)はCであって、Sデータレジスタ35の内容(
A)とは異なるので、インバータ47を通ったANDゲ
ート46の入力が1となり、その出力も1となり、Sイ
ベントレジスタ43のR(Reset)入力が1となり
、前イベント発生がリセットされる。従ってこの状態で
仮にアドレスX(プロセスCのアドレスX)が発生して
ANDゲート48の出力が1となってもANDゲート4
9の出力は1とならず、誤ったイベントが発生する事は
ない。
以上の説明では′:Sデータレジスタ35に、プロセス
識別情報が直接設定されるものとしたが。
実際エミュレータが使われる状況では、Sデータレジス
タに設定するプロセス識別情報はO8が内部的に生成す
る場合が多く、エミュレータのユーザがそれを知るのは
難しい場合もある。その様な状況下でプロセスを指定す
る方法はいくつか考えられる。
第1の方法はO8がプロセスを新たに生成した時にシン
ボリックなプロセス識別名称(エミュレータの使用者が
認識できる名前)と識別情報(O8が付与するもの)と
の対応付けをターゲットデイスプレィ10(第2図)に
出力し、使用者はこれを参照して、プロセス識別情報お
よびアドレス等からなるブレークポイント情報をエミュ
レータデイスプレィ9付属のキーボードから入力する。
入力された識別情報はSデータレジスタ35に設定され
る。この状態でエミュレータが動作を開始する。前に説
明した手順に従ってイベントが発生すると、エミュレー
タCPU部1の実行を中止し、トレースメモリ6への書
込みも中止した上で、制御プロセッサ7ヘコントロール
を渡す。その後トレースメモリ6の内容や、ターゲット
システム8のメモリ内容を調べることにより、プログラ
ムの実行履歴や現在の状態を知ることができ。
テストを効率よく行なうことができる。
プロセスを指定する第2の方法はO8がプロセスを新た
に生成した時にプロセス識別名称と識別情報のペアを名
称登録レジスタ11と情報登録レジスタ12に書込むこ
とによってエミュレータに知らせる方法である。情報登
録レジスタ12に書込むと、制御プロセッサ7への割込
となり、制御プロセッサは識別名称と識別情報をレジス
タから読出して、図示しないメモリに記憶する。プロセ
スが消滅して場合には識別情報を削除レジスタ13に書
込むと制御プロセッサ7への割込となり、制御プロセッ
サは識別名称と識別情報のペアを削除する。この様にし
てエミュレータは現時点でどの様なプロセスが動いてい
るか、そのプロセスの識別名称と識別情報を何かを知る
ことができる。
エミュレータデイスプレィ9付属のキーボードを用いて
入力することにより、エミュレータデイスプレィ9に現
時点で動いているプロセスの識別名称と識別情報の対応
を、使用者はいつでも知ることができる。プロセス識別
情報を知った後の操作及び動作は上述の実施例と同様で
ある。またブレークポイントを設定する際に、カレント
プロセスアドレス、プロセス識別情報、ブレークポイン
トアドレスの組合せで指定する例について述べたが、カ
レントプロセスアドレスを事前に入力しておいて、ブレ
ークポイント設定時には、プロセス識別名称とブレーク
ポイントアドレスの組合せで指定することも可能である
。上記説明では、シンボリックな識別名称と識別情報の
対応をエミュレータ自身が記憶するものとしたが、対応
付けを外部に接続した別プロセッサで管理しエミュレー
タ自身では識別情報しか扱わない方法も可能である。
プロセスをシンボリックな名称で指定できる上記機能は
、使用者の操作を軽減するための対加的な機能である。
本実施例では、プロセス識別情報とアドレスの組合せ条
件でブレークポイントを設定する場合について述べたが
、あるアドレスの内容が(プロセス識別情報に限らず)
特定の値である時に、あるアドレスが発生した場合にブ
レークポイントを発生させるという場合に一般化するこ
とが可能である。
また上記説明では、全ての条件のANDでイベントが発
生する例について述べたが、ORの場合及びそれらの組
合せの場合にも適用できるのは当然である。
〔発明の効果〕
本発明によれば、プロセス識別情報とアドレスの組合せ
によってブレークポイントを設定できるので、マルチプ
ロセス環境下でエミュレータを有効に利用できる様にな
る。従来はアドレスは同一であるが、別プロセスが走っ
ているにもがかわらず間違ってブレークポイントが発生
するという間頭があったため、シングルプロセスシステ
ムやO8のテスト・デバッグにはエミュレータが使える
が、マルチプロセスのアプリケーション(O8以外のユ
ーザ作成プログラム)のテスト・デバッグにはエミュレ
ータは無力であるとされており、そのテスト・デバッグ
の為には他の手段1例えばソフトウェアデバッグ等が必
要とされていた0本発明によればそれらを作成する必要
がなく、osとアプリケーションを同−環境下でデバッ
グすることが可能になる。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図はエミュレ
ータの全体構成図、第3図は従来方式を示す図、第4図
はマルチプロセスシステムの説明図である。 1・・・エミュレーションCPU部、2・・・タイミン
グ回路、3・・・エミュレーションCPU、4・・・エ
ミュレータ本体、5・・・イベントモニタ、6・・・ト
レースメモリ、7・・・制御プロセッサ、8・・・ター
ゲットシステム、9・・・エミュレータデイスプレィ、
10・・・ターゲットデイスプレィ、11・・・名称登
録レジスタ、12・・・情報登録レジスタ、13・・・
削除レジスタ、31・・・Sアドレスレジスタ、32・
・・Sアドレスコンパレータ、33・・・Sステータレ
ジスタ。 34・・・Sステータスコンパレータ、35・・・sデ
ータレジスタ、36・・・Sデータコンパレータ、37
・・・アドレスレジスタ、38・・・アドレスコンパレ
ータ、39・・・ステータスレジスタ、40・・・ステ
ータスコンパレータ、41・・・データレジスタ、42
・・・データコンパレータ、43・・・Sイベントレジ
スタ、44.45.46・・・ANDゲート、47・・
・インバータ、48,49.50・・・ANDゲート、
51・・・早 l 凹 43・・・S4公ントレシ^7 q・・・Lミュし一タテイスプLf 第 3 図 第 4 目

Claims (1)

  1. 【特許請求の範囲】 1、計算機の動作を模擬し、ソフトウェアのテストを支
    援するエミユレータにおいて、アドレスを用いてイベン
    トを検出するイベント検出手段とプロセス識別情報を記
    憶する記憶手段と、所望のプロセスが動作する際、上記
    記憶手段に該プロセス識別情報をセットし、所望外のプ
    ロセスが動作する際には、上記記憶手段の内容をリセッ
    トする手段を設けることにより、アドレスとプロセスを
    組合せたイベント検出を行うことを特徴とするマルチプ
    ロセス用エミユレータ。 2、第1項においてエミュレーション対象であるターゲ
    ットシステム上に上記プロセス識別情報とプロセス識別
    名称との対応付けを記憶する手段と、プロセス識別情報
    とプロセス識別名称との対応付けを表示する手段とを有
    することを特徴とするマルチプロセス用エミユレータ。 3、第2項においてプロセス識別情報とプロセス識別名
    称との対応付けを記憶する手段と、プロセス識別情報と
    プロセス識別名称との対応付けを表示する手段をエミユ
    レータ側に設けたことを特徴とするマルチプロセス用エ
    ミユレータ。
JP62303118A 1987-12-02 1987-12-02 マルチプロセス用エミユレータ Pending JPH01145740A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62303118A JPH01145740A (ja) 1987-12-02 1987-12-02 マルチプロセス用エミユレータ
US07/701,359 US5280626A (en) 1987-12-02 1991-05-10 Multi-process emulator suitable for testing software under multi-process environments

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62303118A JPH01145740A (ja) 1987-12-02 1987-12-02 マルチプロセス用エミユレータ

Publications (1)

Publication Number Publication Date
JPH01145740A true JPH01145740A (ja) 1989-06-07

Family

ID=17917097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62303118A Pending JPH01145740A (ja) 1987-12-02 1987-12-02 マルチプロセス用エミユレータ

Country Status (1)

Country Link
JP (1) JPH01145740A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250821A (ja) * 2004-03-04 2005-09-15 Renesas Technology Corp エミュレータ及びマイクロプロセッサ
JP2008310702A (ja) * 2007-06-15 2008-12-25 Nec Electronics Corp モニタ装置及びモニタ方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250821A (ja) * 2004-03-04 2005-09-15 Renesas Technology Corp エミュレータ及びマイクロプロセッサ
JP2008310702A (ja) * 2007-06-15 2008-12-25 Nec Electronics Corp モニタ装置及びモニタ方法

Similar Documents

Publication Publication Date Title
US5751942A (en) Trace event detection during trace enable transitions
JP5905904B2 (ja) デバッグ例外生成の制御
JP5905911B2 (ja) シングルステップ実行を用いる診断コード
JP2005317023A (ja) データ処理装置のブレークポイント論理ユニット、デバッグ論理、およびブレークポイントの方法
JPH011039A (ja) インサーキット・エミュレータ
CN110580226A (zh) 操作系统级程序的目标码覆盖率测试方法、系统及介质
KR940003318B1 (ko) 캐시 메모리를 구비한 프로세서
US5280626A (en) Multi-process emulator suitable for testing software under multi-process environments
JPH0728670A (ja) 情報処理装置
JPH01145740A (ja) マルチプロセス用エミユレータ
JP2713124B2 (ja) インサーキット・エミュレータ
JP2000181748A (ja) マルチメモリ空間プログラムのデバッグシステムおよびそのデバッグ方法
JP2001166966A (ja) デバッガにおける被テストプログラムの実行環境管理方法
JP3068578B2 (ja) インサーキットエミュレータおよび飽和演算処理方法
JP2658982B2 (ja) 特定命令実行検出方式
JPS59183443A (ja) デバツグ装置
JP2002366378A (ja) プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体
JPH11102306A (ja) エミュレータ
JPS59202546A (ja) デバツグ装置
JP2007041887A (ja) デバッグ装置、そのメモリアクセス方法およびメモリアクセス方法を実現するプログラム
JPH1091477A (ja) 制御用マイクロコンピュータ装置及び該装置の保守ツール
JP3119859B2 (ja) 計算機システム
JPS61294555A (ja) プログラム暴走検出方法
JPH0287237A (ja) Execute命令制御方式
JP2007213396A (ja) デバッグシステム、オペレーションシステム、デバッグ方法、プログラム