JPH0454636A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JPH0454636A
JPH0454636A JP2164102A JP16410290A JPH0454636A JP H0454636 A JPH0454636 A JP H0454636A JP 2164102 A JP2164102 A JP 2164102A JP 16410290 A JP16410290 A JP 16410290A JP H0454636 A JPH0454636 A JP H0454636A
Authority
JP
Japan
Prior art keywords
instruction
debug
processor
processing
debugging
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
JP2164102A
Other languages
English (en)
Inventor
Koji Yoneyama
浩司 米山
Hiroshi Takeyama
寛 竹山
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 JP2164102A priority Critical patent/JPH0454636A/ja
Publication of JPH0454636A publication Critical patent/JPH0454636A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は命令を解読して実行するプロセッサに関し、例
えばシングルチップマイクロコンピュータに適用して有
効な技術に関する。
〔従来の技術〕
プロセッサは、命令のブリフェッチを行う命令ブリフェ
ッチユニット、命令をデコードする命令デコードユニッ
ト、この命令デコード結果に従って命令を実行する実行
ユニットなどを含む、このようなプロセッサにおいては
、基本命令レベルの高速実行を可能とするため各種のキ
ャッシュメモリを内蔵し、高度なパイプライン処理を実
行可能としたものがある。また専用のハードウェア(エ
ミュレータ)を使用しなくてもユーザプログラムのデバ
ッグを可能とする機能としてセルフデバッグ機能を備え
たプロセッサも存在する。このセルフデバッグ機能とし
て、命令オペランドブレークやステップトレースを挙げ
ることができ、それらはプロセッサステータスワード中
のビットをセットすることにより使用可能とされる。
尚、このようなプロセッサについて記載された文献の例
としては、昭和63年6月に日立製作所より発行された
rH32/200  オペレーションアーキテクチャマ
ニュアル(第3版)」がある。
〔発明が解決しようとする課題〕
しかしながら従来のプロセッサについて本発明者が検討
したところによれば、以下のような問題点のあることが
見い出された。
すなわち、セルフデバッグ機能を用いたデバッグにおい
て、プログラムミスによって命令実行が無限ループとな
ってしまう場合があり、この無限ループからの脱出が困
難とされる。
またセルフデバッグ機能のステップトレースでは一命令
実行毎に必ずデバッグ例外処理が行われるようになって
いるため、リアルタイム性が重要とされる。ユーザシス
テムやそのプログラムのデバッグを行うのに従来のセル
フデバッグ機能は不適切とされる。リアルタイム性を向
上させるため所望命令についてのみトレースを行うよう
にすることもできるが、それを可能とするには、ユーザ
プログラムの命令置換えをを行わなければならないなど
の不便を伴う。尚、リアルタイム性を向上させるのにセ
ルフデバッグにおいて専用ハードウェアを使用すること
が考えられるが、CPU (中央処理装置)の高速化や
キャッシュメモリを内蔵するなど高機能化されたものに
おいては、専用ハードウェアを持つデバッガの開発が困
難となっているのが実情である。
更に、セルフデバッグ機能の命令オペランドブレークに
よれば、ブレークポイント設定用レジスタの規模に限り
があることから、設定可能なブレークポイント数に限界
があり、規模の大きなプログラムのデバッグには使用し
難いものとされる。
このように従来のプロセッサにおいては、ユーザプログ
ラムによってはセルフデバッグ機能が使い難い場合があ
り、ソフトウェア開発のためのデバッグの効率を必ずし
も向上し得るものではないことが、本発明者によって明
らかにされた。
本発明の目的は、ソフトウェア開発のためのデバッグの
効率向上を図ることができる技術を提供することにある
本発明の前記ならびにその他の目的と新規な特徴は本明
細書の記述及び添付図面から明らかになるであろう。
〔課題を解決するための手段〕
本願において開示される発明のうち代表的なものの概要
を簡単に説明すれば下記の通りである。
すなわち、特定命令の解読結果に対する処理ルーチンを
第1の処理とそれとは異なる第2の処理とのいずれかと
する選択手段と、この選択手段に選択情報を与える指示
手段若しくは外部からこの選択手段への選択情報の供給
を可能とする外部端子とを設けてプロセッサを構成する
ものである。
ここで上記第1の処理を非デバッグ処理とし、上記第2
の処理をデバッグ処理とすることができる。
また、上記特定命令をジャンプ命令とすることができ、
かかる場合に当該ジャンプ命令によって指定されたジャ
ンプ先から少なくとも更に1ネストレベル先の処理ルー
チンを上記デバッグ処理とすることができる。そしてま
た、マイクロ命令アドレスを指定するマイクロアドレス
シーケンサを上記選択手段とすることができる。
〔作 用〕
上記した手段によれば、上記指示手段により若しくは外
部端子を介して外部より与えられた選択情報に基づいて
、特定命令の解読結果に対する処理ルーチンとして第1
の処理とそれとは異なる第2の処理とのいずれかが選択
可能とされる。このことが、プログラムミスによる命令
実行の無限ル−プからの脱出を容易とする。また、命令
毎にデバッグ例外を発生させるものではなく特定命令に
ついての処理ルーチンの選択的切換えによりデバッグ例
外を発生させるようにすることは、デバッグのリアルタ
イム性を向上させ、更にブレークポイント設定用レジス
タへのブレークポイントの設定を不要としてデバッグ効
率を向上させる。
〔実 施 例〕
第2図には本発明の一実施例であるマイクロコンピュー
タが示される。同図に示されるマイクロコンピュータは
、特に制限されないが、公知の半導体集積回路製造技術
により単結晶シリコンなどの一つの半導体基板に形成さ
れる。
命令ブリフェッチユニット2は、命令キャッシュメモリ
を内蔵し、命令の実行とは独立して命令のブリフェッチ
を行う。命令キャッシュにヒツトした場合には外部メモ
リへのアクセスは行われない。また分岐命令の高速化の
ため、特に制限されないが、4本の分岐ウィンドウが形
成され、これにヒツトした場合には分岐先命令のフェッ
チが簡略化される。また、外部データ/アドレスバスに
結合された入出力制御ユニット13は、命令やオペラン
ドの出力を制御し、命令デコートユニット5は、フェッ
チされた命令のデコード(解読)を行う。このデコード
結果は、後段の制御ユニット6に渡され、実行ユニット
8が制御される。これによって、フェッチされたオペラ
ンドの処理が行われる。処理されたオペランドは再び入
出力制御ユニット13に転送され、外部メモリにストア
される。また外部メモリへのアクセスはメモリ管理ユニ
ット11による保護条件のチエツクと、アドレス変換を
経て行われる。これは命令実行処理と並行して行われる
ため、性能のオーバヘッドは生じない。
第1図には、第2図に示されるマイクロコンピュータの
主要部の更に詳細な構成が示される。
命令デコードユニット5は、上記入出力制御ユニット1
3から転送された命令を保持する命令レジスタ5Aと、
この命令レジスタ5Aの保持出力をデコードする命令デ
コーダ5Bとを含む。この命令デコーダ5Bのデコード
出力が、後述するマイクロ命令の先頭アドレスとされる
制御ユニット6は、マイクロプログラムを格納するマイ
クロプログラムROM (リード・オンリ・メモリ)6
Bと、このROM6Bのマイクロ命令アドレスを指定す
るマイクロアドレスシーケンサ6Aと、上記マイクロプ
ログラムROM6Bより読出されたマイクロ命令6Cを
デコードするマイクロ命令デコーダ6Dとを含む。そし
てこのデコーダ6Dのデコード出力は制御信号6Eとし
て各部に供給され、また直前に読出されたマイクロ命令
に含まれるネクストマイクロアドレス情報は上記マイク
ロアドレスシーケンサ6Aに取込まれる。
すなわちこのマイクロアドレスシーケンサ6Aは、上記
命令デコーダ5Bからのマイクロ命令の先頭アドレスと
上記デコーダ6Dからのネクストマイクロアドレス情報
とに基・づいてマイクロプログラムROM6B内から一
連のマイクロ命令を読出す。
そしてこのマイクロアドレスシーケンサ6Aにおいては
、特定命令の解読結果に対する処理ルーチンを第1の処
理とそれとは異なる第2の処理とのいずれかとする選択
機能が備えられ、この選択機能はマイクロプログラムR
OM6Bの読出しアドレス制御によって実現される。特
に制限されないが、上記特定命令はJSR(ジャンプサ
ブルーチン)命令とされ、第1の処理は非デバッグ処理
とされ、第2の処理はデバッグ処理どされる。ここにい
う非デバッグ処理はJSR命令の本来の処理とされ、デ
バッグ処理は後に詳述するデバッグのための例外処理と
される。また、このマイクロアドレスシーケンサ6Aに
よって第1の処理(非デバッグ処理)が選択されるか、
第2の処理(例外処理)が選択されるかは後述するレジ
スタブロック8A内の状態フラグレジスタ8Bの状態に
よって決定される。すなわち、本実施例において状態フ
ラグレジスタ8Bの状態が、上記第1.第2の処理の選
択情報とされる。特に制限されないが、状態フラグがd
i Ot+の場合に非デバッグ処理が選択され、1”の
場合にデバッグ処理が選択される。
実行ユニット8は、複数のレジスタより成るレジスタブ
ロック8Aと、ALU (算術論理演算ユニット)を含
む演算器ブロック8Cとを有し、それらは内部バス17
に結合され、当該内部バス17に結合された他ブロック
との間でデータのやりとりが可能とされる。
ここで、本発明における命令実行制御部は上記制御ユニ
ット6と実行ユニット8とによって構成される。
第3図及び第4図には、本実施例プロセッサで実行され
るアプリケーションの一例が示される。
状態フラグレジスタ8Bのフラグ状態がt O+″の場
合、それは通常状態とされ、JSR命令のフェッチによ
って当該命令本来の処理が行われる。
すなわち、フラグ状態がIt OIIの場合、シーケン
サ6Aによって読出されるマイクロ命令によれば、先ず
レジスタブロック8A内のプログラムカウンタPCの値
が同ブロック8A内のスタックポインタSPに退避され
、サブルーチンアドレスdがプログラムカウンタPCに
入れられる。これによりメインルーチンからサブルーチ
ンに移行される。
一方、状態フラグレジスタ8Bのフラグ状態がII I
 IIの場合、それはデバッグ状態とされ、JSR命令
のフェッチによってデバッグ処理が行われる。すなわち
、フラグ状態が11111の場合、プログラムカウンタ
PCの値がスタックポインタSPに退避され、更にサブ
ルーチンアドレスdがスタックポインタSPに退避され
、デバッグ例外アドレスVがプログラムカウンタPCに
入れられる。
これによりメインルーチンからデバッグ例外処理に移行
され、所定の例外処理の後にサブルーチン処理に移行さ
れ、しかる後にメインルーチンに戻される。つまりデバ
ッグ例外処理はJSR命令によって指定されたジャンプ
先から1ネストレベル先の処理ルーチンとされる。勿論
設定の仕方によっては、2ネストレベル以上先の処理ル
ーチンとすることも可能である。
第5図には上記デバッグ例外処理ルーチンの一例が示さ
れる。
デバッグ例外ベクタによりデバッガの処理プログラムに
移行される。先ずユーザレジスタの内容が退避され(ス
テップ5TI)、ユーザプログラム停止時の状態が表示
(ブレーク表示)される(ステップ5T2)、そしてデ
バッガコマンドが入力され(ステップ5T3) 、当該
コマンドの解析が行われる(ステップST4.ST7,
5T9)。すなわちユーザプログラム再実行か否かの判
別が行われ(ステップ5T4)、この判別において再実
行ではない′N”と判断された場合にはメモリ表示か否
かの判別が行われ(ステップ5T7)、この判別におい
てメモリ表示ではない“N′″と判断された場合にはメ
モリ変更か否かの判別が行われ(ステップ5T9) 、
この判別においてメモリ変更ではないIIN”と判断さ
れた場合には更に他の判別が行われ、このようにしてデ
バッガコマンドの解析が行われる。そして上記ステップ
ST4の判別において再実行であるIIY”と判断され
た場合にはユーザプログラム再実行のための状態設定が
行われ(ステップ5T5)、上記ステップST1で退避
されたユーザレジスタの内容が回復され(ステップ5T
6)、当該デバッガプログラムの実行が終了される。ま
た、上記ステップST7の判別においてメモリ表示であ
る# Y IIと判断された場合にはメモリの内容表示
処理が行われ(ステップ5T8) 、更に上記ステップ
ST9の判別においてメモリ変更であるII Y jj
と判断された場合にはメモリ変更処理が行われ(ステッ
プ5T10)、しかる後に上記ステップST3の入力が
行われる。
本実施例によれば以下の作用効果を得ることができる。
(1)状態レジスタ8Bのフラグ状態によって、特定命
令の解読結果に対する処理ルーチンを非デバッグ処理か
らデバッグ処理に変更することができ、従来のステップ
トレースのように命令毎にデバッグ例外処理を発生させ
るものではないから、デバッグのリアルタイム性を向上
させることができる。
(2)また上記実施例におけるデバッグ処理では従来の
セルフデバッグ機能の場合のように所定のレジスタにブ
レークポイントの設定を行う必要がなく、デバッグ対象
プログラムの規模が大きい場合でもレジスタとの関係で
ブレークポイント数が制限されることがないから、有効
なデバッグ機能とされる。
(3)上記(1)、(2)の作用効果により、デバッグ
専用のハードウェア(エミュレータ)が存在しない場合
でも、デバッグ対象プログラムのデバッグを効率良く行
うことができる。
以上本発明者によってなされた発明を実施例に基づいて
具体的に説明したが、本発明は上記実施例に限定されず
、その要旨を逸脱しない範囲において種々変更可能であ
る。
例えば上記実施例では特定命令をJSR命令として説明
したが、このJSR命令に代えてRTS(リターンサブ
ルーチン)命令やその他の命令を使用することができる
。特に条件分岐命令を使用する場合において、この条件
分岐命令の処理ルーチンを状態フラグの状態によってサ
ブルーヂンジャンプ(JSR)命令と同様の処理に移行
可能とする場合には、通常動作状態においてプログラム
ミスによって無限ループ状態になった場合でも状態フラ
グ設定によりJSR命令実行と同様の処理に移行させる
ことで当該無限ループから容易に脱出することができる
また、上記実施例では状態フラグレジスタ8Bにフラグ
設定を行うようにしたが、プロセッサの外部端子を利用
して処理ルーチンの選択情報を外部より与えるようにす
ることもできる。この場合状態フラグレジスタ8Bは不
要とされる。
また、特定命令の解読結果に対する処理ルーチン選択は
、プロセッサのテスティングや自己エラー検出などにも
利用することができる。
例えばNOP (無効)命令が処理ルーチン選択によっ
てソフトウェア割込み命令に変わるようにしても有効で
あるし、プロセッサ命令のデバッグ処理として、実際に
コプロセッサが使用される場合にはコプロセッサ命令と
して機能するが、それが存在しない場合にはデバッグル
ーチンをコールする命令とされるようにしても有効であ
る。
以上の説明では主として本発明者によってなされた発明
をシングルチップマイクロコンピュータに適用した場合
について説明したが、本発明はそれに限定されるもので
はなく、シングルボードに形成されたマイクロコンピュ
ータにも適用することができる。本発明は少なくとも解
読された命令を実行する命令実行制御部を備える条件の
ものに適用することができる。
〔発明の効果〕
本願において開示される発明のち代表的なものによって
得られる効果を簡単に説明すれば下記の通りである。
すなわち、指示手段により若しくは外部端子を介して外
部より与えられた選択情報に基づいて、デバッグ対象プ
ログラムを変更することなく、特定命令の解読結果に対
する処理ルーチンを第1の処理とこれとは異なる第2の
処理とに切換えることができるので、デバッグにおいて
無限ループからの脱出を容易とし、また、命令毎にデバ
ッグ例外処理を発生させるものではないのでデバッグの
リアルタイム性に優れ、そしてブレークポイント設定用
レジスタへのブレークポイント設定を不要とすることに
より、デバッグ対象プログラムの規模が大きい場合でも
当該レジスタとの関係でブレークポイント数が制限され
ることがない。これにより、デバッグ専用のハードウェ
アを用いなくともデバッグ効率を向上させることができ
る。
【図面の簡単な説明】
第1図は本発明の一実施例マイクロコンピュータの主要
部構成ブロック図、 第2図は本発明に係るマイクロコンピュータの一実施例
ブロック図、 第3図及び第4図は本実施例マイクロコンピュータで実
行されるアプリケーションの一例の説明図、 第5図は上記アプリケーションにおけるデバッグ例外処
理の一例を示すフローチャートである。 1・・・マイクロコンピュータ、2・・・命令ブリフェ
ッチユニット、5・・・命令デコードユニット、5A・
・・命令レジスタ、5B・・・命令デコーダ、6・・・
制御ユニット、6A・・・マイクロアドレスシーケンサ
、6B・・・マイクロプログラムROM、6D・・マイ
クロ命令デコーダ、8・・・実行ユニット、8A・・・
レジスタブロック、8B・・・状態フラグレジスタ、8
C・・・演算器ブロック、13・・・入出力制御ユニッ
ト。

Claims (1)

  1. 【特許請求の範囲】 1、命令を解読し、これに従って当該命令を実行させる
    命令実行制御部を含むプロセッサにおいて、上記命令実
    行制御部は、特定命令の解読結果に対する処理ルーチン
    を第1の処理とそれとは異なる第2の処理とのいずれか
    とする選択手段と、この選択手段に選択情報を与える指
    示手段とを含むことを特徴とするプロセッサ。 2、命令を解読し、これに従って当該命令を実行させる
    命令実行制御部を含むプロセッサにおいて、上記命令実
    行制御部は、特定命令の解読結果に対する処理ルーチン
    を第1の処理とそれとは異なる第2の処理とのいずれか
    とする選択手段と、外部からこの選択手段への選択情報
    の供給を可能とする外部端子とを含むことを特徴とする
    プロセッサ。 3、上記第1の処理を非デバッグ処理とし、上記第2の
    処理をデバッグ処理とした請求項1又は2記載のプロセ
    ッサ。 4、上記特定命令はジャンプ命令であり、上記デバッグ
    処理はこのジャンプ命令によって指定されたジャンプ先
    から少なくとも更に1ネストレベル先の処理ルーチンと
    される請求項1,2又は3記載のプロセッサ。 5、上記選択手段は、マイクロ命令アドレスを指定する
    マイクロアドレスシーケンサとされる請求項1,2,3
    又は4記載のプロセッサ。
JP2164102A 1990-06-25 1990-06-25 プロセッサ Pending JPH0454636A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2164102A JPH0454636A (ja) 1990-06-25 1990-06-25 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2164102A JPH0454636A (ja) 1990-06-25 1990-06-25 プロセッサ

Publications (1)

Publication Number Publication Date
JPH0454636A true JPH0454636A (ja) 1992-02-21

Family

ID=15786799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2164102A Pending JPH0454636A (ja) 1990-06-25 1990-06-25 プロセッサ

Country Status (1)

Country Link
JP (1) JPH0454636A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161822A (ja) * 1992-11-20 1994-06-10 Mitsubishi Electric Corp マイクロプロセッサ
JPH08263324A (ja) * 1995-03-22 1996-10-11 Nec Ibaraki Ltd デバッグ容易化装置
US7062684B2 (en) 2002-12-19 2006-06-13 International Business Machines Corporation Enabling tracing of a repeat instruction
JP2006350676A (ja) * 2005-06-16 2006-12-28 Hitachi Software Eng Co Ltd 組込みシステムのプログラムデバッグ方法
JP2007004516A (ja) * 2005-06-24 2007-01-11 Hitachi Software Eng Co Ltd 組込みシステムのプログラムデバッグ方法
WO2012147168A1 (ja) * 2011-04-26 2012-11-01 富士通株式会社 システム、および検出方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161822A (ja) * 1992-11-20 1994-06-10 Mitsubishi Electric Corp マイクロプロセッサ
JPH08263324A (ja) * 1995-03-22 1996-10-11 Nec Ibaraki Ltd デバッグ容易化装置
US7062684B2 (en) 2002-12-19 2006-06-13 International Business Machines Corporation Enabling tracing of a repeat instruction
JP2006350676A (ja) * 2005-06-16 2006-12-28 Hitachi Software Eng Co Ltd 組込みシステムのプログラムデバッグ方法
JP2007004516A (ja) * 2005-06-24 2007-01-11 Hitachi Software Eng Co Ltd 組込みシステムのプログラムデバッグ方法
WO2012147168A1 (ja) * 2011-04-26 2012-11-01 富士通株式会社 システム、および検出方法
CN103493023A (zh) * 2011-04-26 2014-01-01 富士通株式会社 系统以及检测方法
JP5725169B2 (ja) * 2011-04-26 2015-05-27 富士通株式会社 システム、および検出方法

Similar Documents

Publication Publication Date Title
Yiu The definitive guide to the ARM Cortex-M3
JP6507435B2 (ja) 命令エミュレーションプロセッサ、方法、およびシステム
US5740413A (en) Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
US5530804A (en) Superscalar processor with plural pipelined execution units each unit selectively having both normal and debug modes
CN100483336C (zh) 数据处理系统内处理数据的设备及方法
US5838897A (en) Debugging a processor using data output during idle bus cycles
US5388233A (en) Method and apparatus for counting instruction types using bit masks and a programmable bit map
JP6508851B2 (ja) 例外からの復帰時のマスク不可割り込みの早期有効化の回避
EP0313848A2 (en) Data processor with development support features
US20050257089A1 (en) Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus
US20040030870A1 (en) Software breakpoints with tailoring for multiple processor shared memory or multiple thread systems
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
CN103119566A (zh) 数据处理装置的除错
JPH03158928A (ja) データ処理装置
US5410660A (en) System and method for executing branch on bit set/clear instructions using microprogramming flow
JPH0454636A (ja) プロセッサ
US5761492A (en) Method and apparatus for uniform and efficient handling of multiple precise events in a processor by including event commands in the instruction set
JP3716604B2 (ja) 情報処理装置
JP2710994B2 (ja) データ処理装置
US6772372B2 (en) System and method for monitoring unaligned memory accesses
JPH04359323A (ja) マイクロコンピュータ
JPH06103109A (ja) データプロセッサ、及びこれを用いるデバッグ装置
Utting et al. Pipeline specification of a MIPS R3000 CPU
CN114168193B (zh) 一种指令处理方法、装置、系统及智能设备
Vranken Debug facilities in the TriMedia CPU64 architecture