(57)【要約】【課題】専用ハードウェアをＣＰＵに内蔵せずに、また、メモリ内の命令コードを書き換えることなく、ＣＰＵのブレーク機能を実現する。【解決手段】ＣＰＵ１０１とメモリ１０２とに接続された命令コード管理システム１００において、修正命令コード記憶部１０４は、比較の対象となるアドレスの範囲を対象アドレス範囲として保持する。修正命令コード記憶部１０４は、メモリ１０２からの命令コード１１４を修正する修正命令コード１０９を記憶する。対象アドレス判定部１１０は、命令フェッチアドレスが対象アドレス範囲に含まれる場合に、メモリ１０２からの命令コード１１４の修正を指示する。命令コード修正部１０３は、対象アドレス判定部１１０からの修正指示１１２に基づき、メモリ１０２からの命令コード１１４を修正命令コード１０９を用いて修正し、修正後の命令コードをＣＰＵ１０１に出力する。【選択図】図１
2014096033.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリとに接続され、前記プロセッサへの命令コードの出力を管理する命令コード管理システムであって、
前記メモリのアドレスのうち、比較の対象となるアドレスの範囲を対象アドレス範囲として保持する対象アドレス範囲保持部と、
前記プロセッサからの命令フェッチ要求に対して前記メモリから出力された命令コードを修正する命令コードを修正命令コードとして記憶する修正命令コード記憶部と、
前記プロセッサから命令フェッチ要求があった場合に、命令フェッチ要求の対象のアドレスである命令フェッチアドレスと前記対象アドレス範囲とを比較し、前記命令フェッチアドレスが前記対象アドレス範囲に含まれる場合に、前記メモリから出力された命令コードを修正命令コードを用いて修正するよう指示する対象アドレス判定部と、
前記対象アドレス判定部からの指示に基づき、命令フェッチ要求に対して前記メモリから出力された命令コードを前記修正命令コード記憶部に記憶されている修正命令コードを用いて修正し、修正後の命令コードを前記プロセッサに出力する命令コード修正部とを有することを特徴とする命令コード管理システム。
【請求項２】
前記対象アドレス範囲保持部は、
複数の対象アドレス範囲を保持しており、
前記修正命令コード記憶部は、
前記複数の対象アドレス範囲に対応させて複数の修正命令コードを記憶しており、
前記対象アドレス判定部は、
前記命令フェッチアドレスがいずれかの対象アドレス範囲に含まれる場合に、対応する修正命令コードを用いた命令コードの修正を指示し、
前記命令コード修正部は、
前記複数の修正命令コードのうち、対応する修正命令コードを用いて、命令コードを修正することを特徴とする請求項１に記載の命令コード管理システム。
【請求項３】
前記命令コード修正部は、
前記対象アドレス判定部から修正命令コードを用いた命令コードの修正が指示された際に、命令コードの修正の許否を制御する命令コード修正許否フラグの値が命令コードの修正を許可する値であれば、命令コードを修正し、
前記命令コード修正許否フラグの値が命令コードの修正を禁止する値であれば、命令フェッチ要求に対して前記メモリから出力された命令コードを修正せずに前記プロセッサに出力することを特徴とする請求項１又は２に記載の命令コード管理システム。
【請求項４】
前記命令コード管理システムは、
前記命令コード修正部により修正後の命令コードが前記プロセッサに出力される前は、前記命令コード修正許否フラグの値が命令コードの修正を許可する値になっており、
前記命令コード修正部により修正後の命令コードが前記プロセッサに出力された後は、前記命令コード修正許否フラグの値が命令コードの修正を禁止する値になることを特徴とする請求項３に記載の命令コード管理システム。
【請求項５】
前記対象アドレス範囲保持部は、
複数の対象アドレス範囲を保持しており、
前記修正命令コード記憶部は、
前記複数の対象アドレス範囲に対応させて複数の修正命令コードを記憶しており、
前記対象アドレス判定部は、
前記命令フェッチアドレスがいずれかの対象アドレス範囲に含まれる場合に、対応する修正命令コードを用いた命令コードの修正を指示し、
前記命令コード修正部は、
前記対象アドレス判定部から修正命令コードへの置き換えが指示された際に、対応する修正命令コードに対して、命令コードの修正の許否を制御する命令コード修正許否フラグの値が命令コードの修正を許可する値であれば、対応する修正命令コードを用いた命令コードの修正を行い、
対応する修正命令コードに対して、前記命令コード修正許否フラグの値が命令コードの修正を禁止する値であれば、命令フェッチ要求に対して前記メモリから出力された命令コードを修正せずに前記プロセッサに出力することを特徴とする請求項３又は４に記載の命令コード管理システム。
【請求項６】
前記命令コード管理システムは、
修正命令コードごとに、
前記命令コード修正部により修正後の命令コードが前記プロセッサに出力される前は、前記命令コード修正許否フラグの値が命令コードの修正を許可する値になっており、
前記命令コード修正部により修正後の命令コードが前記プロセッサに出力された後は、前記命令コード修正許否フラグの値が命令コードの修正を禁止する値になることを特徴とする請求項５に記載の命令コード管理システム。
【請求項７】
前記修正命令コード記憶部は、
デバッグプログラムを起動するための命令コードを修正命令コードとして記憶していることを特徴とする請求項１〜６のいずれかに記載の命令コード管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ（以下、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）ともいう）に出力する命令コードを管理する技術に関する。
より具体的には、本発明は、ＣＰＵ及びＣＰＵ上で動作するソフトウェアを格納するメモリを含むシステムのデバッグ及び試験において、システムの動作中にソフトウェアの実行が任意の命令になった時に、ソフトウェアの実行をデバッグ用のプログラムへ移行させる、ＣＰＵのブレーク方法及びＣＰＵのブレーク装置に関する。
【背景技術】
【０００２】
多くの電子機器ではシステムの動作制御をソフトウェアによって実現しており、ソフトウェアを実行する為のＣＰＵを搭載している。
よって、システムのデバッグを行う場合には、システムが動作中、つまりソフトウェア実行中に行うことが重要である。
これは具体的には、ソフトウェアの実行を任意の命令で中断させ、デバッグプログラムに実行を移行させることである。
ソフトウェアの実行をデバッグプログラムへ移行させることをブレークと呼ぶ。
ブレーク機能を実現する従来方法として２つある。
【０００３】
１つは、ソフトウェアブレークと呼ばれる方法である。
ソフトウェアブレークでは、デバッグ時にはメモリに格納するソフトウェアに修正を行う。
つまり、実行直前で停止させたい命令をブレーク命令に変えるという修正をメモリに格納されるソフトウェアに対して行う。
こうすることで、システム動作中でのデバッグにおいて、ブレーク命令が実行されることで停止させたい命令の実行前にデバッグプログラムの実行へ移行できる。
例えば、特許文献１の技術では、ソフトウェアブレークが行われる。
ソフトウェアブレークの長所は、特別なハードウェアは必要無く、ソフトウェアの変更のみで対処可能なことである。
短所は、メモリは書き換え可能なＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である必要があることである。
メモリとしてＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を用いるシステムではソフトウェアブレークは利用できない。
【０００４】
もう１つはＰＣ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）ブレークと呼ばれる方法である。
ブレーク機能を提供する専用ハードウェアをＣＰＵ内に設ける方法である。
例えば、専用ハードウェア（レジスタ等）にブレークポイントのアドレスを格納し、ＰＣのアドレスが専用ハードウェアのブレークポイントのアドレスに一致した場合に、デバッグプログラムへ移行するという方法である。
本方法の長所はメモリのソフトウェアに修正を加えること無く、また、メモリとしてＲＯＭを用いるシステムにおいてもブレーク機能を実現できることである。
短所は、ＣＰＵ内部にブレーク専用のハードウェア機能が必要となることである。
本機能はＣＰＵ内部のコア機能と密に協調して動作する機能であり、ＣＰＵ設計の複雑度を上げる要因となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平２−１３５５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上記の事情に鑑みたものであり、専用ハードウェアをプロセッサに内蔵せずに、また、メモリ内の命令コードを書き換えることなく、ブレーク機能を実現することを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る命令コード管理システムは、
プロセッサとメモリとに接続され、前記プロセッサへの命令コードの出力を管理する命令コード管理システムであって、
前記メモリのアドレスのうち、比較の対象となるアドレスの範囲を対象アドレス範囲として保持する対象アドレス範囲保持部と、
前記プロセッサからの命令フェッチ要求に対して前記メモリから出力された命令コードを修正する命令コードを修正命令コードとして記憶する修正命令コード記憶部と、
前記プロセッサから命令フェッチ要求があった場合に、命令フェッチ要求の対象のアドレスである命令フェッチアドレスと前記対象アドレス範囲とを比較し、前記命令フェッチアドレスが前記対象アドレス範囲に含まれる場合に、前記メモリから出力された命令コードを修正命令コードを用いて修正するよう指示する対象アドレス判定部と、
前記対象アドレス判定部からの指示に基づき、命令フェッチ要求に対して前記メモリから出力された命令コードを前記修正命令コード記憶部に記憶されている修正命令コードを用いて修正し、修正後の命令コードを前記プロセッサに出力する命令コード修正部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明では、プロセッサ及びメモリの外部に存在する命令コード管理システムが、修正命令コードを保持し、プロセッサから命令フェッチ要求があり、命令フェッチアドレスが対象アドレス範囲に含まれる場合に、メモリから出力された命令コードを修正命令コードを用いて修正し、修正後の命令コードをプロセッサに出力する。
このため、プロセッサ内に専用ハードウェアが不要であり、また、メモリ内の命令コードを書き換えることなく、ブレーク機能を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るＣＰＵ、メモリ及び命令コード管理システムの構成例を示す図。
【図２】実施の形態２に係るＣＰＵ、メモリ及び命令コード管理システムの構成例を示す図。
【図３】実施の形態１に係る命令コード管理システムの動作例を示すフローチャート図。
【発明を実施するための形態】
【００１０】
実施の形態１．
本実施の形態及び実施の形態２では、ＣＰＵ及びＣＰＵ上で動作するソフトウェアを格納するメモリを含むシステムのデバッグ及び試験において、システムの動作中にソフトウェアの実行が任意の命令になった時に、ソフトウェアの実行をデバッグ用のプログラムへ移行させる、ＣＰＵのブレーク機能を、メモリとしてＲＯＭを用いるシステムで且つＰＣブレークと呼ばれる専用ハードウェアをＣＰＵに内蔵せずに実現する構成を説明する。
より具体的には、ＣＰＵとメモリの間の命令コード伝送信号に命令コード修正部を挿入することで、命令フェッチ要求が発生した時にＣＰＵへ供給する命令コードとして、メモリから送出される命令コードに対し適当な修正を加えた命令コードを送り込む様にしたシステムを説明する。
【００１１】
図１は、本実施の形態に係るＣＰＵ１０１、メモリ１０２及び命令コード管理システム１００の構成例を示す。
【００１２】
メモリ１０２には、ＣＰＵ１０１で実行されるプログラムが格納される。
具体的には、所定のプログラムを構成する複数の命令コード１１４と、デバッグプログラム１０８とが格納さている。
デバッグプログラム１０８は、システムをデバッグ、試験する為のプログラムである。
【００１３】
ＣＰＵ１０１とメモリ１０２とは、複数のバスで接続されている。
命令フェッチアドレスバス１０５は、命令フェッチ要求の対象のアドレスである命令フェッチアドレスをＣＰＵ１０１からメモリ１０２に出力するためのバスである。
命令フェッチ要求バス１０６は、命令コード１１４の出力要求である命令フェッチ要求をＣＰＵ１０１からメモリ１０２に出力するためのバスである。
命令コードバス１０７は、メモリ１０２から出力された命令コード１１４又は後述する命令コード修正部１０３で修正された後の命令コードをＣＰＵ１０１に出力するためのバスである。
なお、図１では、命令フェッチアドレスバス１０５、命令フェッチ要求バス１０６及び命令コードバス１０７を図示しているが、他の信号のためのバスが設けられていてもよい。
なお、以下では、命令フェッチアドレスバス１０５で送受信される信号である命令フェッチアドレスも命令フェッチアドレス１０５と表記する。
同様に、命令フェッチ要求バス１０６で送受信される信号である命令フェッチ要求も命令フェッチ要求１０６と表記する。
【００１４】
ＣＰＵ１０１は命令フェッチ要求１０６及び命令フェッチアドレス１０５を出力し、これを受けたメモリ１０２は命令コード１１４を命令コードバス１０７へ出力する。
ＣＰＵ１０１は命令コード１１４を入力し、命令の実行が行われる。
【００１５】
本実施の形態では、ＣＰＵ１０１とメモリ１０２との間の命令コードバス１０７に命令コード修正部１０３を挿入する。
これにより、命令フェッチ要求１０６の発生時にメモリ１０２から出力された命令コード１１４は、命令コード修正部１０３によって、修正命令コード記憶部１０４に格納されている修正命令コード１０９を用いて修正される。
命令コード修正部１０３は、命令コードバス１０７から修正後の命令コードをＣＰＵ１０１に出力し、この結果、ＣＰＵ１０１は修正後の命令コードを本来の命令コード１１４に代わって実行することとなる。
修正命令コード１０９は、例えば、デバッグプログラム１０８を起動するための命令コード（デバッグ割込み命令コード）である。
システムのデバッグ、試験を行う場合には、命令コード修正部１０３において、メモリ１０２からの命令コード１１４の末尾に修正命令コード１０９（デバッグ割込み命令コード）を追加する修正を行えば、ＣＰＵ１０１でのプログラム実行はメモリ１０２に格納されたデバッグプログラム１０８へ移行し、所望のデバッグ、試験が実施される。
また、命令コード修正部１０３において、メモリ１０２からの命令コード１１４に代えて、修正命令コード１０９（デバッグ割込み命令コード）のみをＣＰＵ１０１に出力するようにしてもよい。
本実施の形態では、命令コード１１４の末尾に修正命令コード１０９を追加する処理、修正命令コード１０９を命令コード１１４に置き換える処理のいずれも「修正」と呼ぶ。
【００１６】
対象アドレス範囲保持部１１１には、命令コード修正部１０３で修正の対象とする命令コード１１４のアドレス範囲を保持する。
つまり、対象アドレス範囲保持部１１１は、後述する対象アドレス判定部１１０が命令フェッチアドレス１０５と比較するアドレス範囲を対象アドレス範囲として保持する。
例えば、対象アドレス範囲保持部１１１には比較対象のアドレスの最小値と最大値を保持するという形で対象アドレス範囲を保持する。
この場合、対象アドレス判定部１１０が比較する対象のアドレスは、この最小値以上、且つ、最大値未満のアドレス値となる。
また、対象アドレス範囲保持部１１１は、これらの対象アドレス範囲を複数保持することもできる。
このときは、個々のアドレス範囲の論理和により対象アドレスを指定する。
なお、複数の対象アドレス範囲を保持する場合は、修正命令コード記憶部１０４に、複数の対象アドレス範囲の全てに対して共通に用いられる１つの修正命令コード１０９が記憶されていてもよいし、対応アドレス範囲ごとの修正命令コード１０９が記憶されていてもよいし、それぞれが２つ以上の対応アドレス範囲に対して共通に用いられる修正命令コード１０９が複数個記憶されていてもよい。
【００１７】
対象アドレス判定部１１０は、命令フェッチアドレスバス１０５と命令フェッチ要求バス１０６を監視し、命令フェッチアドレス１０５と命令フェッチ要求１０６がＣＰＵ１０１から出力された場合に、命令フェッチアドレス１０５と対象アドレス範囲保持部１１１で保持している対象アドレス範囲とを比較し、命令フェッチアドレス１０５が対象アドレス範囲に含まれるかどうかを判定する。
命令フェッチアドレス１０５が対象アドレス範囲に含まれる場合は、対象アドレス判定部１１０は、命令コード修正部１０３に修正指示１１２を出力し、命令コード修正部１０３に命令コード１１４の修正を行わせる。
修正命令コード記憶部１０４に修正命令コード１０９が１つのみ存在する場合は、修正指示１１２は、修正命令コード１０９で命令コード１１４を修正するよう指示する信号である。
修正命令コード記憶部１０４に修正命令コード１０９が２つ以上存在する場合は、修正指示１１２は、対象となる修正命令コード１０９の修正命令コード記憶部１０４内のアドレスを指定して、該当する修正命令コード１０９で命令コード１１４を修正するよう指示する信号である。
【００１８】
なお、命令コード修正部１０３、修正命令コード記憶部１０４、対象アドレス判定部１１０及び対象アドレス範囲保持部１１１の組み合わせが命令コード管理システム１００に相当する。
命令コード管理システム１００の各構成要素は、例えば素子、デバイス、回路といったハードウェアである。
命令コード管理システム１００の各構成要素は、例えば、チップセット内の半導体回路群である。
また、例えば、命令コード修正部１０３、対象アドレス判定部１１０は、プログラムを用いて実現されていてもよい。
【００１９】
次に、命令コード管理システム１００の動作例を図３のフローチャートを参照して説明する。
なお、図３では、対象アドレス範囲保持部１１１に複数の対象アドレス範囲が保持されている場合を想定している。
【００２０】
対象アドレス判定部１１０は命令フェッチアドレス１０５及び命令フェッチ要求１０６の状況を監視しており、ＣＰＵ１０１から命令フェッチアドレス１０５及び命令フェッチ要求１０６が出力された場合（Ｓ３０１でＹＥＳ）は、対象アドレス判定部１１０は、命令フェッチアドレス１０５と対象アドレス範囲保持部１１１の対象アドレス範囲と比較する（Ｓ３０２）。
命令フェッチアドレス１０５が対象アドレス範囲に含まれる場合（Ｓ３０３でＹＥＳ）は、対象アドレス判定部１１０は命令コード修正部１０３に修正指示１１２を出力する（Ｓ３０６）。
命令コード修正部１０３は、修正指示１１２を入力し、修正指示１１２に従い修正命令コード記憶部１０４から修正命令コード１０９を読み出し、また、メモリ１０２から命令フェッチアドレス１０５に従って読み出された命令コード１１４を命令コードバス１０７から入力するので、修正命令コード１０９を用いて命令コード１１４を修正し、修正後の命令コードを命令コードバス１０７に出力する（Ｓ３０７）。
これにより、ＣＰＵ１０１は、修正後の命令コードを実行し、この結果、デバッグ処理や試験に移行する。
【００２１】
一方、命令フェッチアドレス１０５が対象アドレス範囲に含まれない場合（Ｓ３０３でＮＯ）は、全ての対象アドレス範囲について調査するまでＳ３０２とＳ３０３の動作を繰り返し、全ての対象アドレス範囲について調査した場合（Ｓ３０４でＹＥＳ）は、命令コード修正部１０３は、メモリ１０２から命令フェッチアドレス１０５に従って読み出された命令コード１１４を命令コードバス１０７から入力した際に、命令コード１１４をそのまま命令コードバス１０７に出力する（Ｓ３０５）。
これにより、ＣＰＵ１０１は、命令フェッチアドレス１０５に対応する命令コード１１４を実行する。
【００２２】
以上のように、本実施の形態によれば、命令のアドレス範囲を指定して命令コードの修正を可能とし、その結果、ＣＰＵ１０１へはデバッグ割込み命令などが修正された命令コードが送られ、所望のデバッグ、試験が実施される。
【００２３】
実施の形態２．
図２は、本実施の形態に係るＣＰＵ１０１、メモリ１０２及び命令コード管理システム１００の構成例を示す。
図１の構成と比較して、図２では、命令コード管理システム１００にフラグ格納部１１３とＡＮＤ回路が追加されている。
【００２４】
実施の形態１の構成では、対象アドレス判定部１１０において命令フェッチアドレス１０５が対象アドレス範囲に合致すると判断すると、命令コード修正部１０３により命令コード１１４が修正され、修正後の命令コードがＣＰＵ１０１へ送られ、実行される。
ＣＰＵ１０１で、修正後の命令コードのデバッグ割込み命令コード部分が実行されると、ＣＰＵ１０１はデバッグプログラム１０８へ移行し所望のデバッグ、試験が実施される。
このデバッグ、試験が終了した後、ＣＰＵ１０１は元のプログラムへ戻る必要がある。
つまり修正前の命令を実行する必要があるのである。
これはデバッグプログラム１０８の中で適切な処理とリターン命令を実行することで修正した命令のアドレスに復帰することができる。
【００２５】
しかし、ＣＰＵ１０１がこの命令をフェッチしようとすると、再度命令コード修正部１０３が作動して前回と同様に修正後の命令コードが実行されてしまう。
その結果、ＣＰＵ１０１は無限ループに陥ってしまう。
【００２６】
これを回避する為に、命令コード管理システムは、命令コード修正無効フラグが格納されているフラグ格納部１１３を備える。
命令コード修正無効フラグは、命令コードの修正の許否を制御するフラグであり、命令コード修正許否フラグの例に相当する。
命令コード修正無効フラグの値が命令コードの修正を禁止する値（例えば、「０」）であれば、対象アドレス判定部１１０により修正指示１１２が出力された場合でも、ＡＮＤ回路により命令コード修正部１０３には修正指示１１２が出力されず、命令コード修正部１０３による命令コード１１４の修正は行われない。
一方、命令コード修正無効フラグの値が命令コードの修正を許可する値（例えば、「１」）であれば、対象アドレス判定部１１０により修正指示１１２が出力された場合に、ＡＮＤ回路により命令コード修正部１０３に修正指示１１２が出力され、命令コード修正部１０３による修正命令コード１０９を用いた命令コード１１４の修正が行われる。
命令コード修正無効フラグはアドレス空間にマッピングされており、プログラムから書き換えが可能である。
【００２７】
デバッグプログラム１０８でデバッグ、試験が実施され、本来の命令へ戻る為のリターン命令を実行する前に、デバッグプログラム１０８により命令コード修正無効フラグが命令コード修正を禁止する値にセットされる。
こうすることで、リターン命令により復帰した後は命令コード修正部１０３での修正は行わず、メモリ１０２からの命令コード１１４が修正されずに、ＣＰＵ１０１に出力される。
これによって無限ループを回避することができる。
また、命令フェッチ要求１０６の発生により、対象アドレス判定部１１０において命令フェッチアドレス１０５が対象アドレス範囲に一致すると判定した場合は、命令コード修正部１０３は、命令コード修正無効フラグをクリアする（命令コードの修正を許可する値にする）。
これにより、次の切り替えでの修正命令コード記憶部１０４に格納された修正命令コード１０９の選択を実行することが可能である。
なお、修正命令コード記憶部１０４に複数の修正命令コード１０９が記憶されている場合は、命令コード修正無効フラグは修正命令コード１０９ごとに設けられ、修正命令コード１０９ごとに命令コード修正無効フラグの値が調整される。
【００２８】
以上、本実施の形態１及び２では、
ＣＰＵ、メモリ、周辺Ｉ／Ｏ等から構成されるコンピュータシステムにおいて、ＣＰＵがメモリから命令を取り出す命令フェッチの際に、メモリから読み出された命令コードを修正する命令コード修正部を備えるシステムを説明した。
【００２９】
また、実施の形態１及び２では、
命令コードを修正した結果が一般の命令ではなくデバッグや試験を目的とした命令コードとなるように修正することを説明した。
【００３０】
また、実施の形態１及び２では、
対象アドレス範囲保持部と対象アドレス判定部を備え、対象アドレス判定部は命令フェッチアドレスを監視し、対象アドレス範囲保持部が保持するアドレス範囲内に対して行われる命令フェッチに対してのみ、命令コードの修正を行うシステムを説明した。
【００３１】
また、実施の形態２では、
命令コード修正無効フラグを備え、このフラグがセットされているときには命令コードの修正は行わず、このフラグがセットされていないときのみ命令コードの修正を行うシステムを説明した。
【００３２】
以上の実施の形態１及び２によれば、ＣＰＵで動作するソフトウェアを含むシステムのデバッグにおいて、ＣＰＵにデバッグ機能を実現する専用ハードウェアが無く且つソフトウェアを格納するメモリとして書き換え不可能なＲＯＭが利用されるシステムであっても、ＣＰＵのブレーク機能が実現され、システムのデバッグが可能になる。
【符号の説明】
【００３３】
１０１  ＣＰＵ、１０２  メモリ、１０３  命令コード修正部、１０４  修正命令コード記憶部、１０５  命令フェッチアドレスバス、１０６  命令フェッチ要求バス、１０７  命令コードバス、１０８  デバッグプログラム、１０９  修正命令コード、１１０  対象アドレス判定部、１１１  対象アドレス範囲保持部、１１２  修正指示、１１３  フラグ格納部、１１４  命令コード。
【図１】
2014096033.tif 000003
【図２】
2014096033.tif 000004
【図３】
2014096033.tif 000005