JPS63313244A - デ−タ処理装置 - Google Patents

デ−タ処理装置

Info

Publication number
JPS63313244A
JPS63313244A JP62148982A JP14898287A JPS63313244A JP S63313244 A JPS63313244 A JP S63313244A JP 62148982 A JP62148982 A JP 62148982A JP 14898287 A JP14898287 A JP 14898287A JP S63313244 A JPS63313244 A JP S63313244A
Authority
JP
Japan
Prior art keywords
branch
instruction
address
branch instruction
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.)
Pending
Application number
JP62148982A
Other languages
English (en)
Inventor
Mitsuyuki Kawachi
河内 満幸
Hiroshi Ozaki
浩 尾崎
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 JP62148982A priority Critical patent/JPS63313244A/ja
Publication of JPS63313244A publication Critical patent/JPS63313244A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、データ処理技術さらにはソフトウェアのテ
スト方式に関し、例えば命令のブリフェッチ機能を有す
るマイクロプロセッサに利用して特に有効な技術に関す
る。
[従来の技術] マイクロプロセッサにおいて、分岐命令を実行する場合
、通常2つの分岐先が存在する。1つは、分岐条件が成
立して、その分岐命令で示された飛び先へ分岐する場合
である。もう1つは1分岐条件が成立せず、その分岐命
令の次にある命令を引き続き実行する場合である。
ところで、ソフトウェアのテスト充分性を示す尺度とし
て、現在一般的に用いられているのは、全分岐命令の全
分岐を実行した場合を100%とするいわゆるC1ガバ
レージである。
この01ガバレージを測定するためには、マイクロプロ
セッサの状態を外部から観測して、どのアドレスの分岐
命令のどちら方向への分岐かを知り、記憶装置(RAM
)に直ちに記録する必要がある。
ところが、命令先取り(ブリフェッチ)機能を有するマ
イクロプロセッサにおいては、命令を読み込んでも(ブ
リフェッチしても)それを実行するとは限らない、また
、実行する場合も、フェッチしてから数マシンサイクル
から数十マシンサイクル遅れて実行する。
マイクロプロセッサの外部から直接11!測できるのは
、メモリから命令を取り込む動作(フェッチ)であり、
その命令を実行したかどうかは、直接には観測できない
のが一般的である。また、割込み処理や例外処理の発生
により、命令のフェッチから実行までを外部からWt測
することが困難になる。
従来、ソフトウェアのテスト充分性を測定する手法につ
いては、種々提案されている。その一つに、例えば予め
被テストプログラムをソフト的に解析し、分岐命令のあ
るアドレスと飛び先番地を調べて、分岐命令の出現順に
取り出し、−貫番号をつける。そして、被テストシステ
ムのプログラムサイズと同じ大きさのメモリを用意し、
分岐命令の存在するアドレスと分岐先アドレス位置にフ
ラグを立て、なおかつ、その番舟を設定する。以上の前
準備の後、被テストプログラムを実行させ、被テストシ
ステムから出力されるアドレス信号を、上記フラグメモ
リのアドレスに入力して、どの分岐命令のどちら方向へ
分岐を実行したかをハードウェアで検出し、別のメモリ
へその分岐命令の番号と1分岐方向を記憶する方式があ
る。
上記の方式では被テストシステムのプログラムサイズと
同じサイズのフラグメモリへのフラグと番号の設定と、
事前のソフトウェアによる被テストプログラム解析とが
必要になるという不都合がある。そこで、被テストプロ
グラム実行時に、マイクロコンピュータのアドレスとデ
ータおよび制御信号(命令語の先頭であるか否か示す信
号)を用いて、ダイナミックに分岐命令を検出し、直ち
に、二つの分岐先アドレスを計算する。そして、マイク
ロコンピュータがこの分岐命令を実行した時に、どちら
へ分岐したかを検出してメモリに記録するというテスト
方式を提案した(特願昭62−58863号)。
[発明が解決しようとする問題点] この方式は、上記フラグメモリを使用する方式に比べ、
事前のソフト処理が不要なため、操作性が良く、ハード
ウェアも小形化できる。しかし。
コンピュータの動きを外部で観測し、分岐命令であるこ
とを検出すると同時に、コンピュータがその分岐命令を
実行するよりも先に、外部回路で分岐先アドレスを計算
しておかねばならないため、命令の先取りを行なうブリ
フェッチ方式のマイクロプロセッサのような複雑な動作
をするコンピュータでは実現困難となる。しかも、プロ
グラムがジャンプするのは、分岐命令の実行時のみでな
く、マイクロプロセッサに対して割込みが入ってジャン
プする場合もあるが、どちらの要因でジャンプしたのか
外部で検出することは、非常に困難である。
この発明の目的は、プログラムのテスト充分性を外部回
路で容易に測定できるようなマイクロプロセッサおよび
操作性の良いソフトウェアテスト装置を提供することに
ある。
この発明の前記ならびにそのほかの目的と新規な特徴に
ついては、本明細書の記述および添附図面から明らかに
なるであろう。
[問題点を解決するための手段] 本願において開示される発明のうち代表的なものの概要
を説明すれば、下記のとおりである。
この発明は、コンピュータの外部からどの分岐命令のど
の方向へ分岐したかを知ることは非常に難しいが、マイ
クロプロセッサ内部には、その情報が充分にあることに
着目し、マイクロプロセッサが分岐命令を実行する場合
に、分岐先または次の命令語をフェッチする前に、その
分岐命令の位置するアドレスと、条件が成立して分岐す
るのかあるいは分岐条件が成立せず次の命令へ行くのか
を示す制御信号を出力させるものである。この場合に、
アドレスはアドレスバス上へ出力し、分岐条件成立か不
成立かは、2または3bi tのステータス信号(ST
倍信号により出力する。また、上記のような特別なパス
サイクルは、MPU内部のマイクロプログラムにより実
現するものである。
[作用コ 上記した手段によれば、マイクロプロセッサから出力さ
れる分岐命令のアドレスと分岐条件の成立/不成立を示
す信号に基づいて、複数の分岐命令がプリフェッチされ
るような場合においても、命令の先取りか実行かを、ま
た分岐命令の実行によるジャンプか割込みによるジャン
プかを区別できるとともに、実行された分岐命令および
通過した分岐を容易に知ることができ、これによって、
プログラムのテスト充分性を外部回路で容易に測定でき
るようなマイクロプロセッサおよび操作性の良いソフト
ウェアテスト装置を提供するという上記目的を達成する
ことができる。
[実施例] 第1図には、本発明を適用したマイクロプロセッサの内
部構成の一実施例が示されている。
この実施例のマイクロプロセッサは、マイクロプログラ
ム制御方式の制御部を備えている。すなわち、マイクロ
プロセッサを構成するLSIチップ内には、マイクロプ
ログラムが格納されたマイクロROM (リード・オン
リ・メモリ)1が設けられている。マイクロROM1は
、マイクロアドレスデコーダ5によってアクセスされ、
マイクロプログラムを構成するマイクロ命令が順次読み
出される。
マイクロアドレスデコーダ5には、FIFO(ファース
トイン・ファーストアウト)メモリ等からなる命令レジ
スタ2にフェッチされたマクロ命令のコードが、マルチ
プレクサ3を介して供給され、これをデコードすること
によって、そのマクロ命令を実行する一連のマイクロ命
令群の最初の命令が読み出され、マイクロ命令レジスタ
6にラッチされる。
マイクロ命令レジスタ6にラッチされたマイクロ命令コ
ードの一部は、デコード回路7に供給されて制御信号が
形成され、ALUI 1やステータスレジスタ12、プ
ログラムカウンタ13、各種汎用レジスタ14,15、
アドレス出力レジスタ16、データ入力レジスタ17等
からなる実行ユニット10に供給される。また、マイク
ロ命令コードの他の一部(ネクストアドレスフィールド
内のコード)はマルチプレクサ3を介してマイクロアド
レスデコーダ5に供給され、一連のマイクロ命令群の2
番目以降のマイクロ命令がマイクロROMIから読み出
される。
さらに、この実施例のマイクロプロセッサは、実行ユニ
ット10内に、通常の命令の実行か分岐命令の実行かを
示すビットと分岐命令を実行するときにどちらの方向(
条件成立方向または条件不成立方向)へ進むかを示すビ
ットを有する状態レジスタ18が設けられている。この
状態レジスタ18の内容は、ステータス信号ST (2
ビット以上)としてプロセッサの外部へ出力されるよう
にされている。つまり、この実施例では、分岐命令が実
行されると状態レジスタ18が書き換えられて、分岐命
令の実行とその分岐方向を示す信号STが出力される。
これとともに、アドレス出力レジスタ16からは分岐命
令のアドレスが出力されるようにされている。これによ
って、外部でこのステータス信号STとアドレス信号を
監視することにより、通過した分岐命命を知ることがで
きるので、被テストプログラムの実行終了後または実行
中に01ガバレージの測定ができる。
この実施例のマイクロプロセッサでは、上記のようなバ
スサイクルを、マイクロプログラムシーケンスによって
実行するようになっている。
第2図には、分岐命令実行の際のマイクロプログラムフ
ローが、また第3図にはその場合のタイミングチャート
が示されている。
すなわち、マイクロプログラム方式の制御部は、先ずプ
ログラムカウンタ13の値をアドレス出力レジスタ16
に入れてそれを外部のアドレスバス上に出力させる(ス
テップSl)。すると、そのアドレスによって外部のプ
ログラムメモリがアクセスされてデータバス上に命令コ
ードが出力される。そこで、マイクロプロセッサはデー
タバス上の命令コードを命令レジスタ2に取り込み(ス
テップS2)、次にアドレス出力レジスタ16内のアド
レスをインクリメントしてそれを外部アドレスバス上に
出力させる(ステップS3)、すると、ステップS2で
フェッチされた命令の次のアドレスに入っているオペラ
ンドが外部メモリからデータバス上に出力される。そこ
で、マイクロプロセッサは、そのオペランドをデータバ
スからデータ入力レジスタ17に取り込む(ステップ3
4)。
ここで、仮りにステップS2で取り込んだ命令が分岐命
令であった場合には、その命令に続くオペランドは分岐
先の命令の位置を示すアドレス(分岐命令アドレスを基
準とする相対アドレス)であり、これがデータ入力レジ
スタ17レジスタに取り込まれる。
ここまでは、分岐命令以外の命令のフェッチと同じであ
る。フェッチした命令が通常の命令のときは、ステップ
810の実行サイクルに移行する。
しかして、この実施例のマイクロプロセッサでは、フェ
ッチした命令が分岐命令であった場合ステップS4の分
岐先アドレスの取込み後に、ステップS5へ進んでステ
ータスレジスタ12等を参照して分岐条件が成立してい
るか否かを判定するとともに、プログラムカウンタ13
の値(分岐命令のアドレス)をアドレス出力レジスタ1
6に入れ、それを外部アドレスバス上へ出力させる0次
に、上記判定結果に基づいて分岐先のアドレスの計算を
行ないながら、ステップS5での判定結果に応じて状態
レジスタ18の書き換えを行なってステータス信号ST
を外部へ出力させる(ステップS6)。その後、上記ス
テップS1へ戻って次の命令のフェッチを行なう。
なお、上記ステップS6における分岐先アドレスの計算
は、ステップS5での判定結果が“条件成立”のときは
プログラムカウンタ13の値にステップS4でデータ入
力レジスタ17に取り込んだ相対アドレスを加算する処
理であり、“′条件不成立”のときはプログラムカウン
タ13の値に「2」を加えて分岐命令の次の命令のアド
レスを計算する処理である。
第4図には、上記実施例のマイクロプロセッサ(第1図
参照)を用いたマイクロコンピュータシステムのソフト
ウェアテスト装置の一実施例が示されている。
この実施例のテスト装置には、分岐命令を実行して条件
が成立し分岐先アドレスヘジャンプした場合にその分岐
命令の分岐回数を記憶するメモリRAMIと、条件が成
立しないでそのまま次の命令に移行した場合(以下、通
過と称する)に分岐命令の通過回数を記憶するメモリR
AM2とが設けられている。また、各メモリRAMI、
RAM2に対応して分岐回数をカウントアツプするカウ
ンタCNT1と通過回数をカウントアツプするカウンタ
CNT2が設けられている。カウンタCNT1とCNT
2は共用させることができる。
そして、上記トレース用のメモリRAMIとRAM2を
条件成立の判定結果に応じて選択的にアクティブにさせ
るため、被テストシステム20のマイクロプロセッサC
PUから出力されるステータス信号STをデコードして
メモリに対する制御信号を形成するデコーダDECIが
設けられている。また、このテスト装置により得られた
分岐命令のアドレスや分岐回数等のデータを解析してC
1ガバレージを計算する解析用マイクロコンピュータM
PUと、被テストシステム20により被テストプログラ
ムを走らせてガバレージのテストに必要なデータを収集
するテストモードと、解析用マイクロコンピュータMP
Uによる解析モードとの切換えを行なうモード切換回路
MCCが設けられている。
テストモードでは、モード切換回路M CCからの制御
信号CVRによってバッファBFF11〜BFF15が
アクティブにされて、デコーダDEC1の出力に応じて
メモリRA M 1またはRA M2の分岐命令アドレ
スと同一アドレスにカウンタCNT1またはCNT2で
カウントアツプした分岐回数または通過回数を書き込む
一方、解析モードではモード切換回路MCCからの制御
信号MPUによってバッファBFF21〜BFF25が
アクティブにされて、テスト装置が被テストシステムか
ら切り離される。そして、デコーダDEC2からの選択
信号C8I、C82によりメモリRAM1またはRAM
2が選択され。
テストモードで収集した分岐情報が解析用マイクロコン
ピュータMPUによって読み出させるようにされている
ガバレージトレーサ(第4図のテスト装置から解析用マ
イクロコンピュータMPUを除いた部分)により、被テ
ストシステム20上で−通りのソフトウエアのテストを
終了した場合、解析用マイクロコンピュータMPUによ
り、トレース用メモリRA M 1とRAM2の内容を
読み出して、実行済みの分岐命令のアドレスと通過また
は分岐別にその実行回数を、コンソールまたはプリンタ
等のI10装置に出力する。さらに、被テストプログラ
ムのソースプログラムを上記テストとは別個に、ソフト
的に解析し、その被テストプログラム中にある全分岐命
令のアドレスを抜き出しておき、この情報とメモリRA
MI、RAM2の内容を比較することにより、C1ガバ
レージ末を計算して定斌的に表現することができる他、
未通過の分岐命令アドレスと未通過の方向を示すことが
可能となる。
第5図には、ソフトウェアテスト装置30とテストシス
テムの全体の構成を示す。第4図のガバレージトレース
部による被テストシステムのソフトウェアのテストで、
実行済みの分岐命令のアドレスと、分岐方向がわかる。
これらの情報は、解析袋w31のシリアルI゛10ポー
ト32を介して、ホストコンピュータ40に転送される
。ホストコンピュータ40上では、被テストシステム2
0のソースプログラムから分岐命令だけを抜き出し、そ
のアドレスを記録したファイルを作成しておき、ガバレ
ージトレーサ何から送られてきた、実行済分岐命令およ
び分岐方向情報と比較し、C1ガバレージ率の計算と、
未通過分岐命令の検出を行ない、CRT装置41に表示
したりプリンタ42により印字する。
また、通常ソフトウェアのテストは1日では終了しない
ので、トレース用のメモリRAMI、RAM2の内容を
保存できるようにすると便利である。このため、第4図
の実施例では解析装置31にバックアップ用のEEP−
ROM33a、33bを設けである。
また、ある一つの被テストシステムのナス1−中に、ガ
バレージトレーサを別のテストシステムに接続する必要
がある場合も考えられる。この場合には、メモリRAM
I、RAM2の内容を、ホストコンピュータ40に転送
して、フロッピーディスク等の記憶装置43内に保存す
ることもできる。
以上説明したように、上記実施例は、マイクロプロセッ
サが分岐命令を実行する場合に、分岐先または次の命令
語をフェッチする前にその分岐命令の位置するアドレス
と、条件成立して分岐するのかあるいは分岐条件が成立
せず次の命令へ行くのかを示す制御信号を出力させるよ
うにしたので、マイクロプロセッサから出力される分岐
命令のアドレスと分岐条件の成立/不成立を示す信号に
基づいて、複数の分岐命令がプリフェッチされる場合に
おいても、命令の先取りか実行かを、また分岐命令の実
行によるジャンプか割込みによるジャンプかを区別でき
るとともに、実行された分岐命令および通過した分岐を
容易に知ることができるという作用により、プログラム
のテスト充分性を外部回路で容易にテストできるという
効果がある。
以上本発明者によってなされた発明を実施例に基づき具
体的に説明したが、本発明は上記実施例に限定されるも
のではなく、その要旨を逸脱しない範囲で種々変更可能
であることはいうまでもない。例えば、上記実施例では
分岐命令の実行時の状態を示すステータス信号をマイク
ロプロセッサから出力させると説明したが、汎用マイク
ロプロセッサの中にはホールト状態や命令の先頭語のフ
ェッチ状態等を外部へ知らせる端子を持つものがあるの
で、それらの端子から実施例のステータス信号STを出
力させるようにしてもよい。
以上の説明では主として本発明者によってなされた発明
をその背景となった利用分野であるソフトウェアの01
ガバレージテスト用のテスト装置に適用したものについ
て説明したが、この発明はそれに限定されるものでなく
、エミュレータその他のデバッグ装置に利用することが
できる。
[発明の効果] 本願において開示される発明のうち代表的なものによっ
て得られる効果を簡単に説明すれば下記のとおりである
すなわち、被テストプログラムのテスト終了後またはテ
ストの最中に、被テストシステムに何の影響も与えるこ
となく、テスト充分性つまり全体の分岐命令の内のどれ
だけの分岐をテストしたのか、定量的に表示することが
できるとともに、分岐命令アドレスと分岐方向を示す情
報をバス上に出力するので、小さなハードウェアでC1
ガバレージ情報を記録できる。また、未通過の分岐命令
を知ることができるので、そこを通過させる条件を考え
ることができ、被テストソフトウェアのテストの効率を
向上させることができる。
【図面の簡単な説明】
第1図は本発明を適用したマイクロプロセッサの実施例
を示すブロック図、 第2図は分岐命令実行の際のバスサイクルの制御手法を
示すマイクロプログラムフローチャー1−1第3図はそ
の際のマイクロプロセッサのタイミングチャート、 第4図はテスト装置特にガバレージトレーサ部の構成例
を示すブロック図、 第5図はソフトウェアテスト装置全体のシステム構成例
を示すブロック図である。

Claims (1)

  1. 【特許請求の範囲】 1、分岐命令実行中もしくはそれ以外の命令の実行中で
    あることおよび分岐命令実行時における分岐の方向を示
    すステータス信号を出力する端子を備えてなることを特
    徴とするデータ処理装置。 2、分岐命令実行時に上記ステータス信号とともに、分
    岐命令の入っているメモリ上のアドレスを示す信号が出
    力されるようにされてなることを特徴とする特許請求の
    範囲第1項記載のデータ処理装置。
JP62148982A 1987-06-17 1987-06-17 デ−タ処理装置 Pending JPS63313244A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62148982A JPS63313244A (ja) 1987-06-17 1987-06-17 デ−タ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62148982A JPS63313244A (ja) 1987-06-17 1987-06-17 デ−タ処理装置

Publications (1)

Publication Number Publication Date
JPS63313244A true JPS63313244A (ja) 1988-12-21

Family

ID=15465046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62148982A Pending JPS63313244A (ja) 1987-06-17 1987-06-17 デ−タ処理装置

Country Status (1)

Country Link
JP (1) JPS63313244A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03260843A (ja) * 1990-03-12 1991-11-20 Fujitsu Ltd 実行確認装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03260843A (ja) * 1990-03-12 1991-11-20 Fujitsu Ltd 実行確認装置

Similar Documents

Publication Publication Date Title
US5751942A (en) Trace event detection during trace enable transitions
US5889981A (en) Apparatus and method for decoding instructions marked with breakpoint codes to select breakpoint action from plurality of breakpoint actions
US5134701A (en) Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities
US6754856B2 (en) Memory access debug facility
US8527812B2 (en) Information processing device
US5845064A (en) Method for testing and verification of a CPU using a reference model
US4742466A (en) System for measuring path coverage represented by the degree of passage of execution paths in a program
EP2054808A1 (en) Debug circuit comparing processor instruction set operating mode
JP2008513875A (ja) 非侵入的追跡を行う方法及び装置
JP2002512396A (ja) 組込みシステムのためのリアルタイムデバッガインターフェース
JP2014508367A (ja) シングルステップ実行を用いる診断コード
EP0530816A2 (en) Microprocessor with cache memory and trace analyzer therefor
US20120166887A1 (en) Monitoring multiple data transfers
JPS63313244A (ja) デ−タ処理装置
JPS6383841A (ja) プログラムテスト可能な計算機中央処理装置
JP2001249823A (ja) マイクロコンピュータ開発支援装置
JP2760228B2 (ja) キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ
JPS62197831A (ja) デ−タ処理装置
JPH11353205A (ja) トレースメモリ内蔵のプロセッサ
JPH0528002A (ja) マイクロプロセツサ
JPS62164140A (ja) デ−タ処理システムの試験方法
JP3068578B2 (ja) インサーキットエミュレータおよび飽和演算処理方法
JPS62109140A (ja) プログラム処理装置のトレ−ス回路
JPH02207345A (ja) マイクロプロセッサの命令実行過程のサンプル方法
JPH0444973B2 (ja)