JPH07191879A - デバッグ用命令の実行機能を有するマイクロプロセッサおよびデバッグ方法 - Google Patents
デバッグ用命令の実行機能を有するマイクロプロセッサおよびデバッグ方法Info
- Publication number
- JPH07191879A JPH07191879A JP5332878A JP33287893A JPH07191879A JP H07191879 A JPH07191879 A JP H07191879A JP 5332878 A JP5332878 A JP 5332878A JP 33287893 A JP33287893 A JP 33287893A JP H07191879 A JPH07191879 A JP H07191879A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- memory
- address
- debugging
- main memory
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Microcomputers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】プログラムの任意のチェックポイントでは、プ
ログラムの実行の影響が必ずチップ外のメモリ参照とな
って現れ、その動作をチップ外から観察することにより
プログラム実行の様子が簡単に把握できるようにする。 【構成】命令デコーダ106で解読した命令がデバッグ
用命令の場合、当該デバッグ用命令の指定するインデッ
クス番号idi (=i)を命令デコーダ106からデバ
ッグ用命令動作制御部110に渡して、命令の読み出し
を指示する。デバッグ用命令動作制御部110は、この
idi とベースレジスタ109の内容(BR)とをもと
に、デバッグ用命令により置き換えられた本来実行すべ
き命令の移動先のメモリ番地、即ち主メモリ20のテー
ブル領域201のi番目のエントリの先頭番地を算出
し、その番地から真に実行すべき命令をシステムバス3
0を介して読み込み、命令デコーダ106に渡し、解読
させる。
ログラムの実行の影響が必ずチップ外のメモリ参照とな
って現れ、その動作をチップ外から観察することにより
プログラム実行の様子が簡単に把握できるようにする。 【構成】命令デコーダ106で解読した命令がデバッグ
用命令の場合、当該デバッグ用命令の指定するインデッ
クス番号idi (=i)を命令デコーダ106からデバ
ッグ用命令動作制御部110に渡して、命令の読み出し
を指示する。デバッグ用命令動作制御部110は、この
idi とベースレジスタ109の内容(BR)とをもと
に、デバッグ用命令により置き換えられた本来実行すべ
き命令の移動先のメモリ番地、即ち主メモリ20のテー
ブル領域201のi番目のエントリの先頭番地を算出
し、その番地から真に実行すべき命令をシステムバス3
0を介して読み込み、命令デコーダ106に渡し、解読
させる。
Description
【0001】
【産業上の利用分野】この発明は、チップ外に設けられ
た主メモリの格納情報の一部のコピーが保持されるキャ
ッシュメモリを内蔵し、デバッグ用命令の実行機能を有
するマイクロプロセッサおよびデバッグ方法に関する。
た主メモリの格納情報の一部のコピーが保持されるキャ
ッシュメモリを内蔵し、デバッグ用命令の実行機能を有
するマイクロプロセッサおよびデバッグ方法に関する。
【0002】
【従来の技術】近年のマイクロプロセッサは、半導体技
術の著しい進歩に伴う集積度の向上のために、同一チッ
プ上にキャッシュメモリを内蔵しているのが一般的であ
る。このようなマイクロプロセッサでは、当該プロセッ
サのチップ外に設けられた主メモリ(外部の主メモリ)
に格納されている実行中のプログラムの一部が外部バス
(システムバス)を介してキャッシュメモリに既に読み
込まれていて、実行すべき命令が直接キャッシュメモリ
から取り出される場合には、チップ外(の主メモリ)に
は命令フェッチ等の動作が生じない。
術の著しい進歩に伴う集積度の向上のために、同一チッ
プ上にキャッシュメモリを内蔵しているのが一般的であ
る。このようなマイクロプロセッサでは、当該プロセッ
サのチップ外に設けられた主メモリ(外部の主メモリ)
に格納されている実行中のプログラムの一部が外部バス
(システムバス)を介してキャッシュメモリに既に読み
込まれていて、実行すべき命令が直接キャッシュメモリ
から取り出される場合には、チップ外(の主メモリ)に
は命令フェッチ等の動作が生じない。
【0003】このような場合、たとえロジックアナライ
ザ等で外部からチップ(とシステムバスとの接続部)を
観察していても、プログラムがどのように実行されるか
判断できない、
ザ等で外部からチップ(とシステムバスとの接続部)を
観察していても、プログラムがどのように実行されるか
判断できない、
【0004】
【発明が解決しようとする課題】上記したように、キャ
ッシュメモリをチップ上に内蔵するマイクロプロセッサ
では、当該マイクロプロセッサのチップ外に設けられた
主メモリに格納されている実行中のプログラムの一部が
キャッシュメモリに既に読み込まれていて、実行すべき
命令が直接キャッシュメモリから取り出される場合に
は、チップ外(の主メモリ)には命令フェッチ等の動作
が生じない。
ッシュメモリをチップ上に内蔵するマイクロプロセッサ
では、当該マイクロプロセッサのチップ外に設けられた
主メモリに格納されている実行中のプログラムの一部が
キャッシュメモリに既に読み込まれていて、実行すべき
命令が直接キャッシュメモリから取り出される場合に
は、チップ外(の主メモリ)には命令フェッチ等の動作
が生じない。
【0005】このため従来は、ロジックアナライザ等で
外部からチップを観察していても、プログラムの実行状
況は把握できず、プログラムのデバッグ作業が困難にな
るという問題があった。
外部からチップを観察していても、プログラムの実行状
況は把握できず、プログラムのデバッグ作業が困難にな
るという問題があった。
【0006】この発明は上記事情を考慮してなされたも
のでその目的は、プログラムの任意のチェックポイント
では、プログラムの実行の影響が必ずチップ外のメモリ
参照となって現れるようにすることができ、これによ
り、その動作をチップ外から観察することによりプログ
ラム実行の様子が簡単に把握できるデバッグ用命令の実
行機能を有するマイクロプロセッサおよびデバッグ方法
を提供することにある。
のでその目的は、プログラムの任意のチェックポイント
では、プログラムの実行の影響が必ずチップ外のメモリ
参照となって現れるようにすることができ、これによ
り、その動作をチップ外から観察することによりプログ
ラム実行の様子が簡単に把握できるデバッグ用命令の実
行機能を有するマイクロプロセッサおよびデバッグ方法
を提供することにある。
【0007】
【課題を解決するための手段】この発明は、キャッシュ
メモリをチップ上に内蔵するマイクロプロセッサが有す
る命令デコード手段に、上記キャッシュメモリから取り
出された実行すべき命令がチップ外に設けられた主メモ
リ上のメモリ番地を直接または間接に指定するためのア
ドレス情報を持つデバッグ用命令である場合には、当該
アドレス情報で指定される主メモリ上のメモリ番地の命
令の読み出しを指示する機能を付加する他、この命令デ
コード手段からの命令読出し指示に応じて、上記アドレ
ス情報で指定される主メモリ上のメモリ番地の命令を真
に実行すべき命令として読み込んで、この命令をデコー
ド手段に与えるデバッグ用命令動作制御手段を上記マイ
クロプロセッサに設け、上記デバッグ用命令を実行する
ことにより、当該命令で指定される主メモリのメモリ番
地から真に実行すべき命令がマイクロプロセッサ内に読
み込まれて、命令デコード手段により解読されるように
したことを特徴とするものである。
メモリをチップ上に内蔵するマイクロプロセッサが有す
る命令デコード手段に、上記キャッシュメモリから取り
出された実行すべき命令がチップ外に設けられた主メモ
リ上のメモリ番地を直接または間接に指定するためのア
ドレス情報を持つデバッグ用命令である場合には、当該
アドレス情報で指定される主メモリ上のメモリ番地の命
令の読み出しを指示する機能を付加する他、この命令デ
コード手段からの命令読出し指示に応じて、上記アドレ
ス情報で指定される主メモリ上のメモリ番地の命令を真
に実行すべき命令として読み込んで、この命令をデコー
ド手段に与えるデバッグ用命令動作制御手段を上記マイ
クロプロセッサに設け、上記デバッグ用命令を実行する
ことにより、当該命令で指定される主メモリのメモリ番
地から真に実行すべき命令がマイクロプロセッサ内に読
み込まれて、命令デコード手段により解読されるように
したことを特徴とするものである。
【0008】
【作用】上記の構成において、プログラムのデバッグを
行う際には、主メモリに格納される当該プログラム中の
それぞれチェックポイントとすべき場所の各命令を、デ
バッグ用命令に置き換え、置き換えられた命令を、対応
するデバッグ用命令中のアドレス情報により直接或いは
間接に指定される主メモリの各メモリ番地に移してお
く。
行う際には、主メモリに格納される当該プログラム中の
それぞれチェックポイントとすべき場所の各命令を、デ
バッグ用命令に置き換え、置き換えられた命令を、対応
するデバッグ用命令中のアドレス情報により直接或いは
間接に指定される主メモリの各メモリ番地に移してお
く。
【0009】この主メモリ内のプログラムをマイクロプ
ロセッサにより実行する。ここで、マイクロプロセッサ
にて実行すべき命令は、キャッシュメモリから(キャッ
シュメモリにないミスヒット時には、目的とする命令を
含む1ライン分の命令群が主メモリからキャッシュメモ
リに転送された後)取り出され、命令デコード手段によ
り解読される。
ロセッサにより実行する。ここで、マイクロプロセッサ
にて実行すべき命令は、キャッシュメモリから(キャッ
シュメモリにないミスヒット時には、目的とする命令を
含む1ライン分の命令群が主メモリからキャッシュメモ
リに転送された後)取り出され、命令デコード手段によ
り解読される。
【0010】したがって、実行すべき命令が既にキャッ
シュメモリに読み込まれている場合には、チップ外(の
主メモリ)には命令フェッチ等の動作が生じない。とこ
ろが上記の構成においては、キャッシュメモリから取り
出されて命令デコード手段により解読された命令がデバ
ッグ用命令である場合には、命令デコード手段からデバ
ッグ用命令動作制御手段に対して当該デバッグ用命令中
のアドレス情報で指定される主メモリ上のメモリ番地の
命令の読み出しが指示されるため、このデバッグ用命令
動作制御手段によりチップ外の主メモリがアクセスされ
て、上記デバッグ用命令中のアドレス情報で直接または
間接に指定される主メモリ上のメモリ番地の命令、即ち
当該デバッグ用命令に置き換えられて当該デバッグ用命
令のアドレス情報の指定するメモリ番地に移された命令
が、真に実行すべき命令としてマイクロプロセッサ内に
読み込まれる。
シュメモリに読み込まれている場合には、チップ外(の
主メモリ)には命令フェッチ等の動作が生じない。とこ
ろが上記の構成においては、キャッシュメモリから取り
出されて命令デコード手段により解読された命令がデバ
ッグ用命令である場合には、命令デコード手段からデバ
ッグ用命令動作制御手段に対して当該デバッグ用命令中
のアドレス情報で指定される主メモリ上のメモリ番地の
命令の読み出しが指示されるため、このデバッグ用命令
動作制御手段によりチップ外の主メモリがアクセスされ
て、上記デバッグ用命令中のアドレス情報で直接または
間接に指定される主メモリ上のメモリ番地の命令、即ち
当該デバッグ用命令に置き換えられて当該デバッグ用命
令のアドレス情報の指定するメモリ番地に移された命令
が、真に実行すべき命令としてマイクロプロセッサ内に
読み込まれる。
【0011】このように、デバッグ用命令に置き換えら
れたプログラムの任意のチェックポイントでは、必ずそ
の置き換えられた元の命令をチップ外の主メモリから読
み込むための動作が行われる。
れたプログラムの任意のチェックポイントでは、必ずそ
の置き換えられた元の命令をチップ外の主メモリから読
み込むための動作が行われる。
【0012】したがって、そのメモリ参照の動作(参照
されるメモリ番地)をチップ外からロジックアナライザ
等で観察することによりプログラム実行の様子が簡単に
把握できる。
されるメモリ番地)をチップ外からロジックアナライザ
等で観察することによりプログラム実行の様子が簡単に
把握できる。
【0013】なお、デバッグ用命令動作制御手段により
マイクロプロセッサ内に読み込まれた命令は、命令デコ
ード手段に渡されて、キャッシュメモリから取り出され
た命令の場合と同様に解読され、実行に供される。
マイクロプロセッサ内に読み込まれた命令は、命令デコ
ード手段に渡されて、キャッシュメモリから取り出され
た命令の場合と同様に解読され、実行に供される。
【0014】
【実施例】図1はこの発明の一実施例に係るマイクロプ
ロセッサを備えた情報処理装置の構成を、マイクロプロ
セッサの内部構成を中心に示すブロック図である。同図
において、10は1チップのマイクロプロセッサ、20
はマイクロプロセッサ1のチップ外に設けられた主メモ
リ、30はマイクロプロセッサ10および主メモリ20
が接続されるシステムバスである。このシステムバス3
0は、マイクロプロセッサ10の外部バスをなしてい
る。
ロセッサを備えた情報処理装置の構成を、マイクロプロ
セッサの内部構成を中心に示すブロック図である。同図
において、10は1チップのマイクロプロセッサ、20
はマイクロプロセッサ1のチップ外に設けられた主メモ
リ、30はマイクロプロセッサ10および主メモリ20
が接続されるシステムバスである。このシステムバス3
0は、マイクロプロセッサ10の外部バスをなしてい
る。
【0015】主メモリ20は、プログラム、データ等を
格納するためのものである。この主メモリ20には、マ
イクロプロセッサ10内の後述するベースレジスタ(B
R)108の指定する特定のメモリ番地(ベースアドレ
ス)から始まる例えば4nバイトのテーブル領域201
が必要に応じて確保される。
格納するためのものである。この主メモリ20には、マ
イクロプロセッサ10内の後述するベースレジスタ(B
R)108の指定する特定のメモリ番地(ベースアドレ
ス)から始まる例えば4nバイトのテーブル領域201
が必要に応じて確保される。
【0016】テーブル領域201は、例えば4バイト長
の命令がそれぞれ格納されるn個のエントリからなる。
このテーブル領域201内エントリ(のメモリ番地)は
インデックス番号(エントリ番号)idi (idi =0
〜n−1)により間接指定される。
の命令がそれぞれ格納されるn個のエントリからなる。
このテーブル領域201内エントリ(のメモリ番地)は
インデックス番号(エントリ番号)idi (idi =0
〜n−1)により間接指定される。
【0017】マイクロプロセッサ10は、主メモリ20
に格納されている実行中のプログラムの一部のコピーが
保持される命令キャッシュメモリ101と、主メモリ2
0に格納されているデータの一部が保持されるデータキ
ャッシュメモリ102と、システムバス30を介して主
メモリ20と命令キャッシュメモリ101/データキャ
ッシュメモリ102間の命令/データの転送を制御する
バスインタフェース103と、このバスインタフェース
103および後述するデバッグ用命令動作制御部110
とシステムバス30との間に設けられたバスドライバ1
04とを有している。
に格納されている実行中のプログラムの一部のコピーが
保持される命令キャッシュメモリ101と、主メモリ2
0に格納されているデータの一部が保持されるデータキ
ャッシュメモリ102と、システムバス30を介して主
メモリ20と命令キャッシュメモリ101/データキャ
ッシュメモリ102間の命令/データの転送を制御する
バスインタフェース103と、このバスインタフェース
103および後述するデバッグ用命令動作制御部110
とシステムバス30との間に設けられたバスドライバ1
04とを有している。
【0018】マイクロプロセッサ10はまた、命令キャ
ッシュメモリ101から読み出された命令を保持するた
めの命令バッファ105と、この命令バッファ105に
保持された命令のオペレーションコード(OPコード)
をもとに当該命令の指示する処理内容を解読する命令デ
コーダ106と、オペランドデータを保持するレジスタ
ファイル107とを有している。
ッシュメモリ101から読み出された命令を保持するた
めの命令バッファ105と、この命令バッファ105に
保持された命令のオペレーションコード(OPコード)
をもとに当該命令の指示する処理内容を解読する命令デ
コーダ106と、オペランドデータを保持するレジスタ
ファイル107とを有している。
【0019】命令デコーダ106は、命令の解読の他、
レジスタファイル107からの必要なオペランドの読み
出し(例えば分岐命令の場合に、分岐アドレスの計算に
必要なオペランドの読み出し)を行う。
レジスタファイル107からの必要なオペランドの読み
出し(例えば分岐命令の場合に、分岐アドレスの計算に
必要なオペランドの読み出し)を行う。
【0020】また命令デコーダ106は、主メモリ20
のテーブル領域201内のエントリ(のメモリ番地)を
間接指定するためのインデックス番号idi が設定され
たインデックスフィールドを持つデバッグ用命令を解読
した場合には、デバッグ用命令動作制御部110に対し
て、当該インデックス番号idi で間接指定される主メ
モリ20上のメモリ番地の4バイト命令の読み出しを指
示するようになっている。
のテーブル領域201内のエントリ(のメモリ番地)を
間接指定するためのインデックス番号idi が設定され
たインデックスフィールドを持つデバッグ用命令を解読
した場合には、デバッグ用命令動作制御部110に対し
て、当該インデックス番号idi で間接指定される主メ
モリ20上のメモリ番地の4バイト命令の読み出しを指
示するようになっている。
【0021】マイクロプロセッサ10は更に、命令デコ
ーダ106の命令解読結果に従い、指示された演算やデ
ータキャッシュメモリ102とのロード/ストア等を実
行し、結果のオペランドデータをレジスタファイル10
7等に書き込む命令実行部108と、上記デバッグ用命
令が使用する主メモリ20上のテーブル領域201の先
頭メモリ番地(をベースアドレスとして)保持するベー
スレジスタ(BR)109と、デバッグ用命令の指定す
る動作を制御するためのデバッグ用命令動作制御部11
0とを有している。
ーダ106の命令解読結果に従い、指示された演算やデ
ータキャッシュメモリ102とのロード/ストア等を実
行し、結果のオペランドデータをレジスタファイル10
7等に書き込む命令実行部108と、上記デバッグ用命
令が使用する主メモリ20上のテーブル領域201の先
頭メモリ番地(をベースアドレスとして)保持するベー
スレジスタ(BR)109と、デバッグ用命令の指定す
る動作を制御するためのデバッグ用命令動作制御部11
0とを有している。
【0022】デバッグ用命令動作制御部110は、命令
デコーダ105からのデバッグ用命令の解読結果に従う
命令読み出し指示に従いて、当該命令中のインデックス
番号idi およびベースレジスタ109の内容(BR)
をもとに算出されるメモリ番地を用いてシステムバス3
0を介して主メモリ20をアクセスし、そのメモリ番地
から始まるテーブル領域201内エントリに格納されて
いる命令を読み込むようになっている。この読み込まれ
た命令は、命令デコーダ106に渡される。
デコーダ105からのデバッグ用命令の解読結果に従う
命令読み出し指示に従いて、当該命令中のインデックス
番号idi およびベースレジスタ109の内容(BR)
をもとに算出されるメモリ番地を用いてシステムバス3
0を介して主メモリ20をアクセスし、そのメモリ番地
から始まるテーブル領域201内エントリに格納されて
いる命令を読み込むようになっている。この読み込まれ
た命令は、命令デコーダ106に渡される。
【0023】次に、図1の構成の動作を説明する。今、
主メモリ20内に、図2(a)に示すようにデバッグ対
象となるプログラム202が格納されているものとす
る。もし、このプログラム202中のチェックポイント
となる場所CPi の(分岐命令などの)命令203をフ
ェッチして実行しようとする場合に、当該命令203を
含む命令列が既に命令キャッシュメモリ101に読み込
まれているならば、当該命令203は、主メモリ20か
らではなくて、命令キャッシュメモリ101から高速に
取り出され、命令バッファ105を介して命令デコーダ
106に送られる。そして、この命令203は命令デコ
ーダ106で解読され、その解読結果に従い、命令実行
部108で実行される。
主メモリ20内に、図2(a)に示すようにデバッグ対
象となるプログラム202が格納されているものとす
る。もし、このプログラム202中のチェックポイント
となる場所CPi の(分岐命令などの)命令203をフ
ェッチして実行しようとする場合に、当該命令203を
含む命令列が既に命令キャッシュメモリ101に読み込
まれているならば、当該命令203は、主メモリ20か
らではなくて、命令キャッシュメモリ101から高速に
取り出され、命令バッファ105を介して命令デコーダ
106に送られる。そして、この命令203は命令デコ
ーダ106で解読され、その解読結果に従い、命令実行
部108で実行される。
【0024】このようにプログラムデバッグのチェック
ポイントとなる場所CPi の命令203が既に命令キャ
ッシュメモリ101に読み込まれている状態で、当該命
令203を実行しようとした場合には、当該命令203
は命令キャッシュメモリ101から取り出され、マイク
ロプロセッサ10のチップ外、即ちシステムバス30上
には(主メモリ20に対する)命令フェッチの動作は現
れない。この場合、ロジックアナライザ等で外部からチ
ップ(とシステムバス30との接続部)を観察しても、
プログラムの実行状況は把握できない。
ポイントとなる場所CPi の命令203が既に命令キャ
ッシュメモリ101に読み込まれている状態で、当該命
令203を実行しようとした場合には、当該命令203
は命令キャッシュメモリ101から取り出され、マイク
ロプロセッサ10のチップ外、即ちシステムバス30上
には(主メモリ20に対する)命令フェッチの動作は現
れない。この場合、ロジックアナライザ等で外部からチ
ップ(とシステムバス30との接続部)を観察しても、
プログラムの実行状況は把握できない。
【0025】そこで本実施例では、プログラム202を
デバッグしようとする場合、プログラム202中のチェ
ックポイントとすべき場所CPi の命令203を、図2
(b)に示すように、インデックス番号idi (=i)
が設定されているインデックスフィールドを持つデバッ
グ用命令204に置き換えて、デバッグ対象プログラム
212としておく。また、主メモリ20上にテーブル領
域201を確保し、当該デバッグ用命令204のインデ
ックスフィールド中のインデックス番号idi(=i)
で間接指定されるi番目のエントリエントリに、図2
(b)に示すように上記置き換えられた命令203を移
しておく。
デバッグしようとする場合、プログラム202中のチェ
ックポイントとすべき場所CPi の命令203を、図2
(b)に示すように、インデックス番号idi (=i)
が設定されているインデックスフィールドを持つデバッ
グ用命令204に置き換えて、デバッグ対象プログラム
212としておく。また、主メモリ20上にテーブル領
域201を確保し、当該デバッグ用命令204のインデ
ックスフィールド中のインデックス番号idi(=i)
で間接指定されるi番目のエントリエントリに、図2
(b)に示すように上記置き換えられた命令203を移
しておく。
【0026】なお、図では、1つの命令だけが操作の対
象となっているが、実際には、同様の操作が任意のn個
の命令について行われる。更に、ベースレジスタ(B
R)109をデスティネーションレジスタとして指定す
るロード命令を実行することにより、当該ベースレジス
タ(BR)109に、テーブル領域201の先頭番地
(BR)を設定しておく。
象となっているが、実際には、同様の操作が任意のn個
の命令について行われる。更に、ベースレジスタ(B
R)109をデスティネーションレジスタとして指定す
るロード命令を実行することにより、当該ベースレジス
タ(BR)109に、テーブル領域201の先頭番地
(BR)を設定しておく。
【0027】以上のようにした後、主メモリ20内に図
2(b)に示すように格納されているデバッグ対象プロ
グラム212を実行する。今、このプログラム212の
実行状態にあり、当該プログラム212中のチェックポ
イントとなる場所CPi に(命令203に代えて)新た
に設定されたデバッグ用命令204を含む命令列が既に
命令キャッシュメモリ101に読み込まれているものと
する。
2(b)に示すように格納されているデバッグ対象プロ
グラム212を実行する。今、このプログラム212の
実行状態にあり、当該プログラム212中のチェックポ
イントとなる場所CPi に(命令203に代えて)新た
に設定されたデバッグ用命令204を含む命令列が既に
命令キャッシュメモリ101に読み込まれているものと
する。
【0028】この状態で、場所CPi の命令(デバッグ
用命令204)をフェッチして実行しようとする場合、
当該命令(デバッグ用命令204)は、主メモリ20か
らではなくて、命令キャッシュメモリ101から高速に
取り出され、命令バッファ105を介して命令デコーダ
106に送られる。
用命令204)をフェッチして実行しようとする場合、
当該命令(デバッグ用命令204)は、主メモリ20か
らではなくて、命令キャッシュメモリ101から高速に
取り出され、命令バッファ105を介して命令デコーダ
106に送られる。
【0029】命令デコーダ106は、命令バッファ10
5を介して送られた命令のオペレーションコード(OP
コード)をもとに当該命令の指示する処理内容を解読す
る。そして命令デコーダ106は、解読の対象となって
いる命令がデバッグ用命令(ここではデバッグ用命令2
04)場合には、命令実行部108の動作を中断させ、
(デバッグ用命令204に置き換えられた真に実行すべ
き命令203を読み出すための)命令読み出し指示をデ
バッグ用命令動作制御部110に発行する。この際、命
令デコーダ106は、当該デバッグ用命令204のイン
デックスフィールドに設定されているインデックス番号
(エントリ番号)idi をデバッグ用命令動作制御部1
10に渡す。
5を介して送られた命令のオペレーションコード(OP
コード)をもとに当該命令の指示する処理内容を解読す
る。そして命令デコーダ106は、解読の対象となって
いる命令がデバッグ用命令(ここではデバッグ用命令2
04)場合には、命令実行部108の動作を中断させ、
(デバッグ用命令204に置き換えられた真に実行すべ
き命令203を読み出すための)命令読み出し指示をデ
バッグ用命令動作制御部110に発行する。この際、命
令デコーダ106は、当該デバッグ用命令204のイン
デックスフィールドに設定されているインデックス番号
(エントリ番号)idi をデバッグ用命令動作制御部1
10に渡す。
【0030】デバッグ用命令動作制御部110は、命令
デコーダ106から命令読み出し指示を受けると、同指
示と共に渡されたインデックス番号(エントリ番号)i
diと、ベースレジスタ109の内容(BR)、即ち主
メモリ20上のテーブル領域201の先頭メモリ番地
(ベースアドレス)とをもとに、次式 PA=(BR)+idi *4 ………(1) の演算を行い、インデックス番号idi (=i)で間接
指定される、主メモリ20上のテーブル領域201内の
エントリのメモリ番地(物理アドレス)PAを算出す
る。なお、上記(1)式中の“4”は命令語のバイト長
(エントリのサイズ)を示す。
デコーダ106から命令読み出し指示を受けると、同指
示と共に渡されたインデックス番号(エントリ番号)i
diと、ベースレジスタ109の内容(BR)、即ち主
メモリ20上のテーブル領域201の先頭メモリ番地
(ベースアドレス)とをもとに、次式 PA=(BR)+idi *4 ………(1) の演算を行い、インデックス番号idi (=i)で間接
指定される、主メモリ20上のテーブル領域201内の
エントリのメモリ番地(物理アドレス)PAを算出す
る。なお、上記(1)式中の“4”は命令語のバイト長
(エントリのサイズ)を示す。
【0031】次にデバッグ用命令動作制御部110は、
上記算出したメモリ番地(物理アドレス)PA、即ち
(BR)+idi *4をもとにバスドライバ104およ
びシステムバス30を介して(マイクロプロセッサ10
のチップ外に設けられている)主メモリ20をアクセス
し、そのメモリ番地から始まる4バイト長の命令、即ち
チェックポイントとなる場所CPi から主メモリ20上
のテーブル領域201のidi (=i)番目のエントリ
に移された命令203を、真に実行すべき命令として取
り込む。
上記算出したメモリ番地(物理アドレス)PA、即ち
(BR)+idi *4をもとにバスドライバ104およ
びシステムバス30を介して(マイクロプロセッサ10
のチップ外に設けられている)主メモリ20をアクセス
し、そのメモリ番地から始まる4バイト長の命令、即ち
チェックポイントとなる場所CPi から主メモリ20上
のテーブル領域201のidi (=i)番目のエントリ
に移された命令203を、真に実行すべき命令として取
り込む。
【0032】このように、プログラム202中のチェッ
クポイントとなる場所CPi の命令203をデバッグ用
命令204に置き換えて(プログラム212とし)、置
き換えられた本来実行すべき命令203を、当該デバッ
グ用命令204のインデックスフィールドに設定されて
いるインデックス番号idi で指定されるテーブル領域
201内エントリ、即ちidi (=i)番目のエントリ
に移しておくことにより、当該デバッグ用命令204が
命令キャッシュメモリから取り出されて命令デコーダ1
06で解読された場合には、このテーブル領域201内
のidi (=i)番目のエントリに移されている命令2
03を主メモリ20から読み込む動作が、デバッグ用命
令動作制御部110によって必ず行われる。
クポイントとなる場所CPi の命令203をデバッグ用
命令204に置き換えて(プログラム212とし)、置
き換えられた本来実行すべき命令203を、当該デバッ
グ用命令204のインデックスフィールドに設定されて
いるインデックス番号idi で指定されるテーブル領域
201内エントリ、即ちidi (=i)番目のエントリ
に移しておくことにより、当該デバッグ用命令204が
命令キャッシュメモリから取り出されて命令デコーダ1
06で解読された場合には、このテーブル領域201内
のidi (=i)番目のエントリに移されている命令2
03を主メモリ20から読み込む動作が、デバッグ用命
令動作制御部110によって必ず行われる。
【0033】したがって、そのメモリアクセスの動作
(アクセスされるメモリ番地)をチップ外からロジック
アナライザ等で観察することによりプログラム実行の様
子が簡単に把握できる。
(アクセスされるメモリ番地)をチップ外からロジック
アナライザ等で観察することによりプログラム実行の様
子が簡単に把握できる。
【0034】さて、デバッグ用命令動作制御部110
は、命令デコーダ106からのデバッグ用命令204に
従う命令読み出し指示に応じて、当該デバッグ用命令2
04に置き換えられた命令203を真に実行すべき命令
として取り込むと、この命令203を命令デコーダ10
6に送る。
は、命令デコーダ106からのデバッグ用命令204に
従う命令読み出し指示に応じて、当該デバッグ用命令2
04に置き換えられた命令203を真に実行すべき命令
として取り込むと、この命令203を命令デコーダ10
6に送る。
【0035】すると命令デコーダ106は、このデバッ
グ用命令動作制御部110から送られた命令203を、
命令キャッシュメモリ101から読み出された場合と同
様に、即ち通常の手順で命令が読み出された場合と同様
に解読し、当該命令203の指定する処理を実行するの
に必要な各種制御信号を命令実行部108等に出力す
る。もし、当該命令203が分岐命令であるならば、命
令デコーダ106は、分岐アドレスの計算に必要なオペ
ランドをレジスタファイル107から読み出して、命令
実行部108に出力する。
グ用命令動作制御部110から送られた命令203を、
命令キャッシュメモリ101から読み出された場合と同
様に、即ち通常の手順で命令が読み出された場合と同様
に解読し、当該命令203の指定する処理を実行するの
に必要な各種制御信号を命令実行部108等に出力す
る。もし、当該命令203が分岐命令であるならば、命
令デコーダ106は、分岐アドレスの計算に必要なオペ
ランドをレジスタファイル107から読み出して、命令
実行部108に出力する。
【0036】命令実行部108は、命令デコーダ106
からの制御信号に従い、命令203の指定する処理(命
令203が分岐命令であるならば、分岐先アドレスに従
う分岐先の命令への分岐処理)を実行する。
からの制御信号に従い、命令203の指定する処理(命
令203が分岐命令であるならば、分岐先アドレスに従
う分岐先の命令への分岐処理)を実行する。
【0037】なお、前記実施例では、デバッグ用命令2
04に置き換えられた命令の移動先を当該デバッグ用命
令204により間接指定するものとして説明したが、直
接指定するようにしても構わない。但し、直接指定方式
の場合には、テーブル領域201の位置が固定されるた
め、自由度に乏しくなる。
04に置き換えられた命令の移動先を当該デバッグ用命
令204により間接指定するものとして説明したが、直
接指定するようにしても構わない。但し、直接指定方式
の場合には、テーブル領域201の位置が固定されるた
め、自由度に乏しくなる。
【0038】また、前記実施例では、マイクロプロセッ
サ10に内蔵のキャッシュメモリが、命令を保持する命
令キャッシュメモリ101とデータを保持するデータキ
ャッシュメモリ102の2種である場合について説明し
たが、命令およびデータを保持するキャッシュメモリで
あっても構わない。
サ10に内蔵のキャッシュメモリが、命令を保持する命
令キャッシュメモリ101とデータを保持するデータキ
ャッシュメモリ102の2種である場合について説明し
たが、命令およびデータを保持するキャッシュメモリで
あっても構わない。
【0039】
【発明の効果】以上詳述したようにこの発明によれば、
マイクロプロセッサの命令デコード手段に、当該マイク
ロプロセッサに内蔵のキャッシュメモリから取り出され
た実行すべき命令が外部の主メモリ上のメモリ番地を直
接または間接に指定するためのアドレス情報を持つデバ
ッグ用命令である場合には、そのアドレス情報で指定さ
れる主メモリ上のメモリ番地の命令の読み出しを指示す
る機能を付加する他、この命令デコード手段からの命令
読出し指示に応じて、上記アドレス情報で指定される主
メモリ上のメモリ番地の命令を真に実行すべき命令とし
て読み込んで、この命令デコード手段に与えて解読させ
るデバッグ用命令動作制御手段を上記マイクロプロセッ
サに設けたことにより、キャッシュメモリからデバッグ
用命令が読み出されて解読された場合、必ず当該デバッ
グ用命令で指定される命令を外部の主メモリから読み込
む動作が行われるため、その動作をチップ外からロジッ
クアナライザ等で観察することによりプログラム実行の
様子が簡単に把握できる。
マイクロプロセッサの命令デコード手段に、当該マイク
ロプロセッサに内蔵のキャッシュメモリから取り出され
た実行すべき命令が外部の主メモリ上のメモリ番地を直
接または間接に指定するためのアドレス情報を持つデバ
ッグ用命令である場合には、そのアドレス情報で指定さ
れる主メモリ上のメモリ番地の命令の読み出しを指示す
る機能を付加する他、この命令デコード手段からの命令
読出し指示に応じて、上記アドレス情報で指定される主
メモリ上のメモリ番地の命令を真に実行すべき命令とし
て読み込んで、この命令デコード手段に与えて解読させ
るデバッグ用命令動作制御手段を上記マイクロプロセッ
サに設けたことにより、キャッシュメモリからデバッグ
用命令が読み出されて解読された場合、必ず当該デバッ
グ用命令で指定される命令を外部の主メモリから読み込
む動作が行われるため、その動作をチップ外からロジッ
クアナライザ等で観察することによりプログラム実行の
様子が簡単に把握できる。
【0040】また、プログラム中のチェックポイントと
すべき場所の命令をデバッグ用命令で置き換え、その置
き換えられた命令を当該デバッグ用命令で直接または間
接に指定される主メモリのメモリ番地に移しておくこと
により、上記のチェックポイントでは必ず主メモリを参
照する動作が発生して、デバッグ用命令に置き換えられ
た本来実行すべき命令がマイクロプロセッサ内に読み込
まれて解読・実行されるため、プログラムの実行トレー
スを行うことができる。
すべき場所の命令をデバッグ用命令で置き換え、その置
き換えられた命令を当該デバッグ用命令で直接または間
接に指定される主メモリのメモリ番地に移しておくこと
により、上記のチェックポイントでは必ず主メモリを参
照する動作が発生して、デバッグ用命令に置き換えられ
た本来実行すべき命令がマイクロプロセッサ内に読み込
まれて解読・実行されるため、プログラムの実行トレー
スを行うことができる。
【図1】この発明の一実施例に係るマイクロプロセッサ
を備えた情報処理装置の構成を、マイクロプロセッサの
内部構成を中心に示すブロック図。
を備えた情報処理装置の構成を、マイクロプロセッサの
内部構成を中心に示すブロック図。
【図2】同実施例におけるデバッグ用命令の利用方法を
説明するための図。
説明するための図。
10…マイクロプロセッサ、20…主メモリ、30…シ
ステムバス、101…命令キャッシュメモリ、103…
バスインタフェース、106…命令デコーダ、108…
命令実行部、109…ベースレジスタ(BR)、110
…デバッグ用命令動作制御部、201…テーブル領域、
202,212…プログラム、203…命令(チェック
ポイントとすべき場所の命令)、204…デバッグ用命
令。
ステムバス、101…命令キャッシュメモリ、103…
バスインタフェース、106…命令デコーダ、108…
命令実行部、109…ベースレジスタ(BR)、110
…デバッグ用命令動作制御部、201…テーブル領域、
202,212…プログラム、203…命令(チェック
ポイントとすべき場所の命令)、204…デバッグ用命
令。
Claims (2)
- 【請求項1】チップ外に設けられた主メモリの格納情報
の一部のコピーが保持されるキャッシュメモリを前記チ
ップ上に内蔵するマイクロプロセッサにおいて、 前記キャッシュメモリから取り出された実行すべき命令
を解読する命令デコード手段であって、当該命令が前記
主メモリ上の真に実行すべき命令のメモリ番地を直接ま
たは間接に指定するためのアドレス情報を持つデバッグ
用命令である場合には、当該アドレス情報で指定される
前記主メモリ上のメモリ番地の命令の読み出しを指示す
る命令デコード手段と、 この命令デコード手段からの前記命令読出し指示に応じ
て、前記アドレス情報で直接または間接に指定される前
記主メモリ上のメモリ番地の命令を真に実行すべき命令
として読み込んで、前記命令デコード手段に与えるデバ
ッグ用命令動作制御手段とを具備し、前記デバッグ用命
令を実行することにより、当該命令で指定される前記主
メモリのメモリ番地から真に実行すべき命令が前記マイ
クロプロセッサ内に読み込まれて、前記命令デコード手
段により解読されるようにしたことを特徴とするマイク
ロプロセッサ。 - 【請求項2】主メモリに格納されるプログラム中のチェ
ックポイントとすべき場所の命令を、前記主メモリ上の
メモリ番地を直接または間接に指定するためのアドレス
情報を持つデバッグ用命令に置き換えると共に、置き換
えられた命令を当該デバッグ用命令の前記アドレス情報
で指定されるメモリ番地に移しておき、 前記主メモリを外部メモリとして用い、当該メモリの格
納情報の一部のコピーが保持されるキャッシュメモリを
チップ上に内蔵するマイクロプロセッサにおいて、前記
キャッシュメモリから取り出された実行すべき命令が前
記デバッグ用命令の場合に、当該デバッグ用命令中の前
記アドレス情報で指定される前記主メモリ上のメモリ番
地の命令を真に実行すべき命令として読み込んで解読・
実行することにより、 前記チップ外からプログラム実行状況が観察できるよう
にしたことを特徴とするデバッグ方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5332878A JPH07191879A (ja) | 1993-12-27 | 1993-12-27 | デバッグ用命令の実行機能を有するマイクロプロセッサおよびデバッグ方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5332878A JPH07191879A (ja) | 1993-12-27 | 1993-12-27 | デバッグ用命令の実行機能を有するマイクロプロセッサおよびデバッグ方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07191879A true JPH07191879A (ja) | 1995-07-28 |
Family
ID=18259815
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5332878A Pending JPH07191879A (ja) | 1993-12-27 | 1993-12-27 | デバッグ用命令の実行機能を有するマイクロプロセッサおよびデバッグ方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07191879A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004103024A (ja) * | 2002-09-11 | 2004-04-02 | Agere Systems Inc | キャッシュをベースとしたソフトウェア・ブレークポイントを有するプロセッサ・システム |
-
1993
- 1993-12-27 JP JP5332878A patent/JPH07191879A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004103024A (ja) * | 2002-09-11 | 2004-04-02 | Agere Systems Inc | キャッシュをベースとしたソフトウェア・ブレークポイントを有するプロセッサ・システム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5247639A (en) | Microprocessor having cache bypass signal terminal | |
| KR100309615B1 (ko) | 고속프로그램가능로직컨트롤러(plc) | |
| US4937738A (en) | Data processing system which selectively bypasses a cache memory in fetching information based upon bit information of an instruction | |
| JPH0283735A (ja) | 命令先取り装置 | |
| JPS6125169B2 (ja) | ||
| JPH05204709A (ja) | プロセッサ | |
| JPH03233630A (ja) | 情報処理装置 | |
| JP3452771B2 (ja) | 命令制御システム及びその方法 | |
| JPH07191879A (ja) | デバッグ用命令の実行機能を有するマイクロプロセッサおよびデバッグ方法 | |
| AU714669B2 (en) | Peripheral device control | |
| JPH0259829A (ja) | マイクロコンピュータ | |
| JPH04245334A (ja) | 情報処理装置の命令先読み制御方式 | |
| JPH0752402B2 (ja) | データ処理装置 | |
| JP2856703B2 (ja) | プロセッサ | |
| JPS62264332A (ja) | 命令先読み制御回路 | |
| JPS58134350A (ja) | メモリ制御装置 | |
| JP3428253B2 (ja) | シーケンサ | |
| JPH03168845A (ja) | 命令実行制御方式 | |
| JPH0323938B2 (ja) | ||
| JPH0399338A (ja) | マイクロプロセッサ | |
| JPH024011B2 (ja) | ||
| JPS6286442A (ja) | デ−タ処理装置 | |
| JPH04127326A (ja) | 情報処理装置および命令生成方法 | |
| JPH0235330B2 (ja) | ||
| JPH05250156A (ja) | Riscプロセッサ |