(57)【要約】【課題】ブレークフラグ格納領域を小さくしつつ、ブレーク処理が可能な不揮発性メモリのアドレス範囲が広い半導体集積回路装置を設ける。【解決手段】半導体集積回路装置は、中央演算装置と、中央演算装置にて用いられるプログラムを格納する不揮発性メモリと、中央演算装置のワークエリアとして用いられる第一ランダムアクセスメモリと、不揮発性メモリのブレーク対象となるアドレス範囲を設定する第一レジスタとを有する。第一レジスタがあることにより、ブレーク対象となる不揮発性メモリのアドレス範囲が柔軟に設定できるのでデバック動作の制約が小さくなる。【選択図】図２
2014085859.tif 000002
【特許請求の範囲】
【請求項１】
中央演算装置と、
前記中央演算装置にて用いられるプログラムを格納する不揮発性メモリと、
前記中央演算装置のワークエリアとして用いられる第一ランダムアクセスメモリと、
前記不揮発性メモリのブレーク対象となるアドレス範囲を設定する第一レジスタとを有する半導体集積回路装置。
【請求項２】
ブレーク処理が有効となるか否かを定めるブレークフラグを格納する前記第一ランダムアクセスメモリのアドレス範囲を設定する第二レジスタをさらに有する請求項１に記載の半導体集積回路装置。
【請求項３】
ブレーク処理が有効となるか否かを定めるブレークフラグ用の第二ランダムアクセスメモリをさらに有する請求項１に記載の半導体集積回路装置。
【請求項４】
前記第一ランダムアクセスメモリは、複数のアドレスそれぞれに対応してデータを格納する複数のビット格納領域と、前記複数のビット格納領域から読み出されたデータがエラーがあるか否かを判定するためのパリティビットを格納するパリティビット格納領域とを有し、
デバック処理が行われる際は、前記パリティビット格納領域にブレーク処理が有効となるか否かを定めるブレークフラグが格納される請求項１に記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、半導体集積回路装置に関し、特にブレーク機能を持つ半導体集積回路装置に関する。
【背景技術】
【０００２】
ブレーク機能を実現するために、プログラムが格納された不揮発性メモリの各アドレスのプログラムに対してブレークを実現するか否かを定める方式として以下の２つの方式が存在する。
【０００３】
１つめは、不揮発性メモリの各アドレスに対して１ビットの格納領域をランダムアクセスメモリに対して割り当て、対応する格納領域にフラグが立っていた場合にそのアドレスのプログラムが読み出された場合にブレーク処理を行う方式である。
【０００４】
もう一つは、不揮発性メモリのアドレスを複数格納する記憶領域を準備しておき、この記憶領域に格納されたアドレスと、不揮発性メモリの読み出しアドレスとが一致した場合にブレーク処理を行う方式である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
１つめの方式においては、ランダムアクセスメモリのメモリ空間が多量に必要となる。たとえばランダムアクセスメモリの各アドレスに８ビットのデータが格納可能であるとしたら、不揮発性メモリのアドレス数を８で割った数だけのアドレス数のメモリ空間がランダムアクセスメモリに必要となる。
【０００６】
もう一つの方式においては、記憶領域に格納可能な不揮発性メモリのアドレス数のアドレスが読み出される場合でしかブレーク処理を実行することができない。たとえば格納可能なアドレス数が８つの場合、この８つのアドレスのいずれかが読み出されないとブレーク処理ができず、デバック動作の制約が大きくなる。
【０００７】
このようにブレーク用のフラグ格納領域をできるだけ小さくしつつ、ブレーク処理が可能な不揮発性メモリのアドレス範囲が広い半導体集積回路装置が存在しない問題がある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態による半導体集積回路装置は、プログラムが格納されたブレーク対象となる不揮発性メモリのアドレス範囲を設定する第一レジスタを有する。
【発明の効果】
【０００９】
上記一実施の形態によれば、第一レジスタがあることにより、ブレーク対象となる不揮発性メモリのアドレス範囲が柔軟に設定できるのでデバック動作の制約が小さい。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１の半導体集積回路装置の全体図である。
【図２】ブレークコントローラの構成図である。
【図３】メモリのアドレス空間とブレークコントローラにより設定されたアドレス範囲との関係を示している。
【図４】メモリのアドレス空間とブレークフラグとの関係を表した図である。
【図５】デバック処理の実行フローが示されている。
【図６】ブレークコントローラの各種内部回路の構成を表した図である。
【図７】実施の形態２の半導体集積回路装置の全体図である。
【図８】ブレークコントローラの構成図である。
【図９】メモリのアドレス空間とブレークコントローラにより設定されたアドレス範囲との関係を示している。
【図１０】デバック処理の実行フローが示されている。
【図１１】アドレス変換部の構造を示す図である。
【図１２】ブレークコントローラの構成図である。
【図１３】デバック処理の実行フローが示されている。
【図１４】ブレークコントローラの各種内部回路の構成を表した図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、実施の形態について詳細に説明する。
【００１２】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１３】
さらに、以下の実施の形態において、その構成要素（動作、タイミングチャート、要素ステップ、動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１４】
なお、実施の形態を説明するための全図において、同一の機能を有する部位や部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
また、実施の形態で用いる図面においては、断面図であっても図面を見易くするためにハッチングを省略する場合もある。また、平面図であっても図面を見易くするためにハッチングを付す場合もある。
【００１５】
（実施の形態１．）
図１は実施の形態１の半導体集積回路装置の全体図である。
【００１６】
半導体集積回路装置ＩＣは、中央演算装置ＣＰＵと、ランダムアクセスメモリＲＡＭと不揮発性メモリＦＬＡＳＨと、ＡＤ変換回路ＡＤＣと、入出力回路Ｉ／Ｏと、発振回路ＯＳＣと、バスＢＵＳと、ブレークコントローラＢＣとを有する。
【００１７】
中央演算装置ＣＰＵはプログラムに従って半導体集積回路装置ＩＣ全体を制御する。ランダムアクセスメモリＲＡＭは中央演算装置ＣＰＵのワークエリアとして用いられ、各種データや命令等を記憶する記憶領域である。不揮発性メモリＦＬＡＳＨは格納されたデータが書き換え可能となっており、中央演算装置ＣＰＵにて用いられる各種プログラムが記憶されている。入出力回路Ｉ／Ｏは各種ポートの入出力制御を行う回路である。ＡＤ変換回路ＡＤＣはアナログ信号をデジタル信号に変換する回路である。ブレークコントローラＢＣは半導体集積回路装置ＩＣのデバック処理のためのブレークポイントの設定、およびブレーク処理のためのランダムアクセスメモリや不揮発性メモリのアドレス範囲を設定するための回路である。バスＢＵＳは中央演算装置ＣＰＵ、ランダムアクセスメモリＲＡＭ、不揮発性メモリＦＬＡＳＨ、入出力回路Ｉ／Ｏ、ブレークコントローラＢＣ、及び発振回路ＯＳＣとの間にて各種データ、コマンド、及びアドレスを互いにやり取りするための複数の信号線である。発振回路ＯＳＣは外部のクロック信号に基づいて、中央演算装置ＣＰＵ、ランダムアクセスメモリＲＡＭ、不揮発性メモリＦＬＡＳＨ、入出力回路Ｉ／Ｏ、ブレークコントローラＢＣ、および発振回路ＯＳＣにて用いられる各種クロック信号を生成する。
【００１８】
図２はブレークコントローラの構成図である。
【００１９】
ブレークコントローラＢＣは、ランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧと、不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧと、不揮発性メモリ読み出しアドレス判定部ＦＬＡＳＨ−ＲＡＤ
と、アドレス変換部ＲＦ−ＡＣと、ブレーク実行判定部ＢＥＤと、デバックイネーブルレジスタＤＥ−ＲＥＧとを有する。
【００２０】
不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧは、ブレーク状態となるか否かを設定するブレークフラグが設定可能な不揮発性メモリのアドレス範囲を定めるレジスタである。ブレークフラグが立っているアドレスのプログラムが読み出されるとブレークルーチンが実行される形となる。不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧは、不揮発性メモリ上限アドレス格納部ＦＬＡＳＨ  −ＵＡと、不揮発性メモリ下限アドレス格納部ＦＬＡＳＨ  −ＬＡとを持つ。不揮発性メモリ上限アドレス格納部ＦＬＡＳＨ  −ＵＡは不揮発性メモリＦＬＡＳＨのアドレスの中で、ブレークフラグが設定可能なアドレスのもっとも大きなアドレスが格納される。不揮発性メモリ下限アドレス格納部ＦＬＡＳＨ  −ＬＡは不揮発性メモリＦＬＡＳＨのアドレスの中で、ブレークフラグが設定可能なアドレスのもっとも小さなアドレスが格納される。
【００２１】
ランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧは、ブレークフラグを格納可能なランダムアクセスメモリＲＡＭのアドレス範囲を設定するレジスタである。ランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧは、ランダムアクセスメモリ上限アドレス格納部ＲＡＭ−ＵＡと、ランダムアクセスメモリ下限アドレス格納部ＲＡＭ−ＬＡとを持つ。ランダムアクセスメモリ上限アドレス格納部ＲＡＭ−ＵＡはランダムアクセスメモリＲＡＭのアドレスの中で、ブレークフラグが格納されるアドレスのもっとも大きなアドレスが格納される。ランダムアクセスメモリ下限アドレス格納部ＲＡＭ−ＬＡはランダムアクセスメモリＲＡＭのアドレスの中で、ブレークフラグが格納されるアドレスのもっとも小さなアドレスが格納される。
【００２２】
不揮発性メモリ読み出しアドレス判定部ＦＬＡＳＨ−ＲＡＤは、デバック処理がなされる際、不揮発性メモリＦＬＡＳＨから読み出されるプログラムのアドレスが、不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧにて設定されたブレークフラグが設定可能な不揮発性メモリのアドレス範囲となっているか否かを判定する回路である。
【００２３】
アドレス変換部ＲＦ−ＡＣは、デバック処理がなされる際、不揮発性メモリＦＬＡＳＨから読み出されるプログラムのアドレスから、この不揮発性メモリＦＬＡＳＨのアドレスに対応するブレークフラグが格納されているランダムアクセスメモリＲＡＭのアドレスを算出する回路である。
【００２４】
ブレーク実行判定部ＢＥＤは、アドレス変換部ＲＦ−ＡＣにより算出されたランダムアクセスメモリＲＡＭのアドレスと、不揮発性メモリＦＬＡＳＨから読み出されるプログラムのアドレスとからブレークフラグを読み出してブレーク処理を実行する回路である。
【００２５】
デバックイネーブルレジスタＤＥ−ＲＥＧはデバック処理を行うか否かを設定するレジスタである。イネーブル状態となった場合はデバック処理が可能となり、ブレークコントローラＢＣが使用可能となる。
【００２６】
図３はメモリのアドレス空間とブレークコントローラにより設定されたアドレス範囲との関係を示している。
【００２７】
アドレス０００００からアドレス００３ＦＦはデータを書き込むとこの書き込みデータに従って半導体集積回路装置ＩＣの各種制御を行うアドレス領域となっている制御メモリＳＦＲのアドレス領域である。ここで、アドレスは１６進法にて表している。制御メモリＳＦＲはランダムアクセスメモリＲＡＭの一部として存在する。
【００２８】
アドレス００４００からアドレス０４ＦＦＦはランダムアクセスメモリＲＡＭのアドレス領域であり、アドレス０８０００からアドレスＦＦＦＦＦは不揮発性メモリＦＬＡＳＨのアドレス領域である。
【００２９】
アドレス０２４００からアドレス０４３ＦＦはランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧにより設定されたアドレス範囲である。アドレス０２４００がランダムアクセスメモリ下限アドレス格納部ＲＡＭ−ＬＡに格納されており、ブレークフラグが格納されるアドレスのもっとも小さなアドレスが格納される。アドレス０４３ＦＦがランダムアクセスメモリ上限アドレス格納部ＲＡＭ−ＵＡに格納されており、ブレークフラグが格納されるアドレスのもっとも大きなアドレスが格納される。
【００３０】
アドレスＡ００００からアドレスＢＦＦＦＦは不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧにより設定されたアドレス範囲である。アドレスＡ００００が不揮発性メモリ下限アドレス格納部ＦＬＡＳＨ-ＬＡに格納されており、ブレークフラグが設定可能なアドレスのもっとも小さなアドレスである。アドレス０４３ＦＦが不揮発性メモリ上限アドレス格納部ＦＬＡＳＨ-ＬＡに格納されており、ブレークフラグが設定可能なアドレスのもっとも大きなアドレスである。
【００３１】
図４はメモリのアドレス空間とブレークフラグとの関係を表した図である。
【００３２】
図３のような設定が、ランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧや不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧによってなされている。不揮発性メモリＦＬＡＳＨのプログラムが読み出される際、（１）に示すように不揮発性メモリ読み出しアドレス判定部ＦＬＡＳＨ−ＲＡＤにより、ブレークフラグが設定可能なアドレス範囲になっているか否かが判定される。アドレスＡ０００２はこのアドレス範囲に入っているので、ブレークフラグが設定可能なアドレス範囲であると判定される。
【００３３】
次に（１）の結果に従って、（２）の処理に移る。ランダムアクセスメモリＲＡＭは８ビットのビット格納領域Ｂ０〜Ｂ７を持つ。各ビット格納領域Ｂ０〜Ｂ７のブレークフラグが不揮発性メモリＦＬＡＳＨの各アドレスに対応している。アドレス０２４００のビット格納領域Ｂ０〜Ｂ７のブレークフラグが不揮発性メモリＦＬＡＳＨのアドレスＡ００００〜Ａ００００７に対応しており、アドレス０２４０１のビット格納領域Ｂ０〜Ｂ７のブレークフラグが不揮発性メモリＦＬＡＳＨのアドレスＡ０００８〜Ａ００００Ｆに対応している。以下同様であり、アドレス０４３ＦＦのビット格納領域Ｂ０〜Ｂ７のブレークフラグが不揮発性メモリＦＬＡＳＨのアドレスＢＦＦＦ８〜ＢＦＦＦＦに対応している。ランダムアクセスメモリＲＡＭが８ビットのビット格納領域Ｂ０〜Ｂ７を持つため、ランダムアクセスメモリＲＡＭの各アドレスにつき不揮発性メモリＦＬＡＳＨの８つのアドレスのブレークフラグが格納される形となっている。（２）に示すように、アドレス変換部ＲＦ−ＡＣにより、プログラムが読み出される不揮発性メモリＦＬＡＳＨのアドレス対応するブレークフラグが格納されているランダムアクセスメモリＲＡＭのアドレスを算出される。アドレス０２４００のビット格納領域Ｂ０がアドレスＡ００００に対応しており、アドレス０２４００のビット格納領域Ｂ１がアドレスＡ０００１に対応している。以下同様であり、アドレス０２４００のビット格納領域Ｂ７がアドレスＡ０００７に対応している。
【００３４】
（３）に示すように、プログラムが読み出されたアドレスＡ０００２は、対応するアドレス０２４００のビット格納領域Ｂ２においてブレークフラグの１が立っている状態となっている。ブレーク実行判定部ＢＥＤによって、ブレーク処理が実行される。なお、ブレーク処理とはプログラムが格納された不揮発性メモリＦＬＡＳＨの所定のアドレス（ここでは対応するブレークフラグが立っているアドレス）が読み出された際に、この所定のアドレスのプログラムが実行処理された後に中央演算装置ＣＰＵの動作を止め、半導体集積回路装置ＩＣ内部の各種レジスタや、制御メモリＳＦＲのアドレス領域やランダムアクセスメモリＲＡＭのアドレス領域のデータを読み出せる状態とする処理である。このようにしてプログラム実行途中の半導体集積回路装置ＩＣの内部データを読み出してプログラムのバグ解析を行うデバック処理を行う。
【００３５】
図５はデバック処理の実行フローが示されている。
【００３６】
図５の（ａ）はデバック処理の全体フローを示している。
【００３７】
デバックイネーブルレジスタＤＥ−ＲＥＧはデバック処理を行う設定がなされた際にステップＳ１０１において、ブレーク情報設定ルーチンが実行される。このブレーク情報設定ルーチンの実行フローは図５の（ｂ）にて説明する。
【００３８】
ステップＳ１０１はステップＳ１０６からステップＳ１０８にて構成される。
【００３９】
ステップＳ１０６において、ブレークフラグを格納可能なランダムアクセスメモリＲＡＭのアドレス範囲を半導体集積回路装置ＩＣ外部のデバッガが設定する。ランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧにアドレスを設定することで実行する。ランダムアクセスメモリ上限アドレス格納部ＲＡＭ−ＵＡに格納されたアドレスをアドレスＸ０とし、ランダムアクセスメモリ下限アドレス格納部ＲＡＭ−ＬＡに格納されたアドレスをアドレスＸ１とする。
【００４０】
ステップＳ１０６の後ステップＳ１０７において、ブレーク状態となるか否かを設定するブレークフラグが設定可能な不揮発性メモリＦＬＡＳＨのアドレス範囲を半導体集積回路装置ＩＣ外部のデバッガが定める。不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧにアドレスを設定することで実行する。不揮発性メモリ上限アドレス格納部ＦＬＡＳＨ-ＵＡに格納されたアドレスをアドレスＹ０とし、不揮発性メモリ下限アドレス格納部ＦＬＡＳＨ-ＬＡに格納されたアドレスをアドレスＹ１とする。
【００４１】
ステップＳ１０７の後ステップＳ１０８において、ステップＳ１０６にて定めたアドレス範囲の各ビット格納領域Ｂ０〜Ｂ７にブレークフラグを半導体集積回路装置ＩＣ外部のデバッガが格納する。
【００４２】
ステップＳ１０１の後ステップＳ１０２において、デバックされる不揮発性メモリＦＬＡＳＨ内のブログラムが実行される。この時、不揮発性メモリＦＬＡＳＨのプログラムが読み出されるアドレスを実行アドレスＹｎとする。
【００４３】
ステップＳ１０２の後ステップＳ１０３において、ステップＳ１０７にて定めたアドレス領域の範囲内であるか否かを判定する。範囲内であればステップＳ１０４に進み、範囲外であればステップＳ１０２に進む。
【００４４】
ステップＳ１０４において、ステップＳ１０８にて設定された実行アドレスＹｎに対応するブレークフラグが立っているか否かを判定する。ブレークフラグが立っている場合はステップＳ１０５に進み、ブレークフラグが立っていない場合はステップＳ１０２に進む。
【００４５】
ステップＳ１０５において、中央演算装置ＣＰＵによりブレークルーチンが実行され、デバッガによりデバッグ処理が実行される。ステップＳ１０５実行後、ステップＳ１０２に進む。
【００４６】
図６はブレークコントローラの各種内部回路の構成を表した図である。
【００４７】
図６の（ａ）はブレークコントローラＢＣの不揮発性メモリ読み出しアドレス判定部の構成を表した図である。
【００４８】
不揮発性メモリ読み出しアドレス判定部ＦＬＡＳＨ−ＲＡＤはアドレスＹ０とアドレスＹ１と実行アドレスＹｎを受けて、実行アドレスＹｎがアドレスＹ０とアドレスＹ１の間にあるか否かを判定する。間にある場合はブレークフラグが設定可能な不揮発性メモリのアドレス範囲となっていると判断する判定信号を出力しステップＳ１０４に進むようにする。間にない場合はブレークフラグが設定可能な不揮発性メモリのアドレス範囲となっていないと判断する判定信号を出力しステップＳ１０２に進むようにする。
【００４９】
図６の（ｂ）はアドレス変換部の構造を示す図である。
【００５０】
アドレス変換部ＲＦ−ＡＣは演算回路ＡＬＵ１と演算回路ＡＬＵ２を持つ。演算回路ＡＬＵ１はアドレスＹ０をビット格納領域Ｂ０〜Ｂ７の数である８で割り、その結果からアドレスＸ０を引いたもの（Ｚ０）を演算回路ＡＬＵ２に出力する。演算回路ＡＬＵ２は実行アドレスＹｎをビット格納領域Ｂ０〜Ｂ７の数である８で割り、その結果から演算回路ＡＬＵ１からの出力（Ｚ０）を引いたものを実行アドレスＹｎのブレークフラグが格納されているランダムアクセスメモリＲＡＭのアドレスＸｎとして出力する。
【００５１】
図６の（ｃ）はブレーク実行判定部の構造を示す図である。
【００５２】
ブレーク実行判定部ＢＥＤはランダムアクセスメモリ読み出し部ＲＡＭ−Ｒと演算回路ＡＬＵ３とを持つ。ランダムアクセスメモリ読み出し部ＲＡＭ−ＲはアドレスＸｎのデータを読み出してその読み出し結果を演算回路ＡＬＵ３に出力する。このデータは実行アドレスＹｎのブレークフラグが格納されているデータＤＡＴＡ（Ｘｎ）である。演算回路ＡＬＵ３は実行アドレスＹｎの下位ビット（ここではビット格納領域Ｂ０〜Ｂ７の数が８であるために、２進法で８を表せる３に対応した下位３ビット）と、データＤＡＴＡ（Ｘｎ）とに基づいて、実行アドレスＹｎに対応したブレークフラグを読み出す。ブレークフラグが１であればステップＳ１０５に進むように制御され、ブレークフラグが０であればステップＳ１０２に進むように制御される。
【００５３】
ステップＳ１０６やステップＳ１０７はデバッガにより自動的に設定されるような説明を行ったがそれに限らず、プログラムを開発するユーザー等外部から設定されるようになっていればよい。
【００５４】
本実施の形態によれば、プログラムが格納された不揮発性メモリＦＬＡＳＨのブレーク対象となるアドレス範囲を設定する不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧを有する。不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧがあることにより、ブレーク対象となる不揮発性メモリＦＬＡＳＨのアドレス範囲が柔軟に設定できるのでデバック動作の制約が小さい。アドレス範囲を狭く設定すれば、ブレークフラグを格納する領域も小さくできるために、ランダムアクセスメモリＲＡＭにおいて、デバック中にプログラム動作にて用いる領域を大きくすることが可能となり、デバック効率を上げることができる。
【００５５】
不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧにて設定されたアドレス範囲のアドレスそれぞれのプログラム読み出し時に、ブレーク処理が有効となるか否かを定めるブレークフラグを格納するランダムアクセスメモリＲＡＭのアドレス範囲を設定するランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧを有する。ランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧがあることにより、ランダムアクセスメモリＲＡＭのアドレス範囲が柔軟に設定できるので、ランダムアクセスメモリＲＡＭの使用制約を小さくでき、余分なランダムアクセスメモリＲＡＭのメモリ空間が必要となる事態を避けられる。
【００５６】
ユーザーが不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧやランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧにアドレス範囲を設定することが可能となっている。このことで、使用可能な不揮発性メモリＦＬＡＳＨのプログラムと、使用可能なランダムアクセスメモリＲＡＭのアドレス範囲を自由に設定できるので、デバック処理がやりやすくなる。たとえば、一度に連続したアドレス範囲をたくさん用いたい場合は、ランダムアクセスメモリＲＡＭのブレークポイント用のアドレス範囲を上位側のアドレスか下位側のアドレスに片寄せすればよい。ランダムアクセスメモリＲＡＭの上位側のアドレスには倍精度のデータを格納し、下位側には単精度のデータを格納したい場合は中央部付近のアドレスにブレークポイント用のアドレスを設ければよい。
【００５７】
デバッガ等の外部ツールにより不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧやランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧにアドレス範囲を設定してもらう場合は、ユーザー側は特にアドレス範囲を設定する動作がなくなるので、設定の手間はなくなる。しかしながら、デバック処理の使い勝手は外部ツールの性能に依存する形となる。
このように外部から不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧやランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧにアドレス範囲を設定できることで上述したようなメリットがある。
【００５８】
（実施の形態２）
実施の形態２は実施の形態１とは異なり、ブレーク処理時にブレークフラグが格納される専用領域を持っている。
【００５９】
図７は実施の形態２の半導体集積回路装置の全体図である。
【００６０】
半導体集積回路装置ＩＣ１は半導体集積回路装置ＩＣの構成に加えて、ブレーク処理時にブレークフラグが格納される専用領域を持つランダムアクセスメモリＤ−ＲＡＭを持つ。さらにブレークコントローラＩＣの代わりにブレークコントローラＢＣ１を持つ。
【００６１】
図８はブレークコントローラの構成図である。
【００６２】
ブレークコントローラＢＣ１はブレークコントローラＢＣと比べて、ランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧがなくなり、アドレス変換部ＲＦ−ＡＣがアドレス変換部ＲＦ−ＡＣ１に変更されている点が異なる。
【００６３】
図９はメモリのアドレス空間とブレークコントローラにより設定されたアドレス範囲との関係を示している。
【００６４】
実施の形態１のメモリのアドレス空間とブレークコントローラにより設定されたアドレス範囲との関係と比べて、ランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧにより設定されるアドレスがなくなり、ランダムアクセスメモリＤ−ＲＡＭのアドレス範囲があるのが異なる。ランダムアクセスメモリＤ−ＲＡＭはアドレス０５０００からアドレス０６ＦＦＦの範囲の格納領域を持つ。
【００６５】
図１０はデバック処理の実行フローが示されている。
【００６６】
図１０の（ａ）はデバック処理の全体フローを示している。
デバックイネーブルレジスタＤＥ−ＲＥＧはデバック処理を行う設定がなされた際にステップＳ２０１において、ブレーク情報設定ルーチンが実行される。このブレーク情報設定ルーチンの実行フローは図１０の（ｂ）にて説明する。
【００６７】
ステップＳ２０１はステップＳ２０６とステップＳ２０７にて構成される。
【００６８】
ステップＳ２０６において、ブレーク状態となるか否かを設定するブレークフラグが設定可能な不揮発性メモリＦＬＡＳＨのアドレス範囲を半導体集積回路装置ＩＣ外部のデバッガが定める。不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧにアドレスを設定することで実行する。不揮発性メモリ上限アドレス格納部ＦＬＡＳＨ-ＵＡに格納されたアドレスをアドレスＹ０とし、不揮発性メモリ下限アドレス格納部ＦＬＡＳＨ-ＬＡに格納されたアドレスをアドレスＹ１とする。
【００６９】
ステップＳ２０６の後ステップＳ２０７において、ランダムアクセスメモリＤ−ＲＡＭの各ビット格納領域Ｂ０〜Ｂ７にブレークフラグを半導体集積回路装置ＩＣ外部のデバッガが格納する。この時アドレスＹ０のブレークフラグがアドレス０５０００となるようにする。
【００７０】
ステップＳ２０１の後ステップＳ２０２において、デバックされる不揮発性メモリＦＬＡＳＨ内のブログラムが実行される。この時、不揮発性メモリＦＬＡＳＨのプログラムが読み出されるアドレスを実行アドレスＹｎとする。
【００７１】
ステップＳ２０２の後ステップＳ２０３において、ステップＳ２０６にて定めたアドレス領域の範囲内であるか否かを判定する。範囲内であればステップＳ２０４に進み、範囲外であればステップＳ２０２に進む。
【００７２】
ステップＳ２０４において、ステップＳ２０７にて設定された実行アドレスＹｎに対応するブレークフラグが立っているか否かを判定する。ブレークフラグが立っている場合はステップＳ２０５に進み、ブレークフラグが立っていない場合はステップＳ２０２に進む。
【００７３】
ステップＳ２０５において、中央演算装置ＣＰＵによりブレークルーチンが実行され、デバッガによりデバッグ処理が実行される。ステップＳ２０５実行後、ステップＳ２０２に進む。
【００７４】
図１１はアドレス変換部の構造を示す図である。
【００７５】
アドレス変換部ＲＦ−ＡＣは演算回路ＡＬＵ１１と演算回路ＡＬＵ１２を持つ。演算回路ＡＬＵ１はアドレスＹ０をビット格納領域Ｂ０〜Ｂ７の数である８で割ったもの（Ｚ０）を演算回路ＡＬＵ２に出力する。演算回路ＡＬＵ２は実行アドレスＹｎをビット格納領域Ｂ０〜Ｂ７の数である８で割り、その結果から演算回路ＡＬＵ１からの出力（Ｚ０）を引き、さらにアドレス０５０００としてランダムアクセスメモリＤ−ＲＡＭの初めのアドレスＸｄｓ足したものを実行アドレスＹｎのブレークフラグが格納されているランダムアクセスメモリＤ−ＲＡＭのアドレスＸｎとして出力する。
【００７６】
ステップＳ２０６はデバッガにより自動的に設定されるような説明を行ったがそれに限らず、プログラムを開発するユーザーにより設定するようにしてもよい。
【００７７】
本実施の形態によれば、プログラムが格納された不揮発性メモリＦＬＡＳＨのブレーク対象となるアドレス範囲を設定する不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧを有する。不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧがあることにより、ブレーク対象となる不揮発性メモリＦＬＡＳＨのアドレス範囲が柔軟に設定できるのでデバック動作の制約が小さい。アドレス範囲を指定できるので、ブレークフラグを格納するランダムアクセスメモリＤ−ＲＡＭも小さくできるために、コストや面積を削減することができる。
【００７８】
ブレークフラグ用のランダムアクセスメモリＤ−ＲＡＭがあることにより、ランダムアクセスメモリＲＡＭの全ての領域をデバック処理においても用いることができるので、デバック処理の使い勝手が上がる。しかしながら、専用領域としてのランダムアクセスメモリＤ−ＲＡＭは通常の演算動作を行う際には無駄となってしまう。
【００７９】
（実施の形態３）
実施の形態３は実施の形態１とは異なり、ブレークフラグがランダムアクセスメモリＲＡＭのパリティビット格納領域に格納されるようになっている。
【００８０】
図示しないが、ブレークコントローラＢＣがブレークコントローラＢＣ２に変更されている。さらに、ランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧにより設定されるアドレスがなくなっている。さらにビット格納領域Ｂ０〜Ｂ７に加えて、読み出しデータにエラーがあった時に検出するためのパリティビットを格納するパリティビット格納領域Ｐ０がある。パリティビット格納領域Ｐ０の代わりに、読み出しデータにエラーがあった時に訂正するためのエラー訂正ビット格納領域Ｅ０でもよい。
【００８１】
図１２はブレークコントローラの構成図である。
【００８２】
ブレークコントローラＢＣ２はブレークコントローラＢＣと比べて、ランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタＲＡＭ−ＢＦＳＡＲ−ＲＥＧがなくなり、アドレス変換部ＲＦ−ＡＣがアドレス変換部ＲＦ−ＡＣ２に変更されており、ブレーク実行判定部ＢＥＤがブレーク実行判定部ＢＥＤ２に変更されている点が異なる。
【００８３】
図１３はデバック処理の実行フローが示されている。
【００８４】
図１３の（ａ）はデバック処理の全体フローを示している。
【００８５】
デバックイネーブルレジスタＤＥ−ＲＥＧはデバック処理を行う設定がなされた際にステップＳ３０１において、ブレーク情報設定ルーチンが実行される。このブレーク情報設定ルーチンの実行フローは図１０の（ｂ）にて説明する。
【００８６】
ステップＳ３０１はステップＳ３０６とステップＳ３０７にて構成される。
【００８７】
ステップＳ３０６において、ブレーク状態となるか否かを設定するブレークフラグが設定可能な不揮発性メモリＦＬＡＳＨのアドレス範囲を半導体集積回路装置ＩＣ外部のデバッガが定める。不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧにアドレスを設定することで実行する。不揮発性メモリ上限アドレス格納部ＦＬＡＳＨ-ＵＡに格納されたアドレスをアドレスＹ０とし、不揮発性メモリ下限アドレス格納部ＦＬＡＳＨ-ＬＡに格納されたアドレスをアドレスＹ１とする。
【００８８】
ステップＳ３０６の後ステップＳ３０７において、ランダムアクセスメモリＲＡＭのパリティビット格納領域Ｐ０にブレークフラグを半導体集積回路装置ＩＣ外部のデバッガが格納する。
【００８９】
ステップＳ３０１の後ステップＳ３０２において、デバックされる不揮発性メモリＦＬＡＳＨ内のブログラムが実行される。この時、不揮発性メモリＦＬＡＳＨのプログラムが読み出されるアドレスを実行アドレスＹｎとする。
【００９０】
ステップＳ３０２の後ステップＳ３０３において、ステップＳ３０６にて定めたアドレス領域の範囲内であるか否かを判定する。範囲内であればステップＳ３０４に進み、範囲外であればステップＳ３０２に進む。
【００９１】
ステップＳ３０４において、ステップＳ３０７にて設定された実行アドレスＹｎに対応するブレークフラグが立っているか否かを判定する。ブレークフラグが立っている場合はステップＳ３０５に進み、ブレークフラグが立っていない場合はステップＳ３０２に進む。
【００９２】
ステップＳ３０５において、中央演算装置ＣＰＵによりブレークルーチンが実行され、デバッガによりデバッグ処理が実行される。ステップＳ３０５実行後、ステップＳ３０２に進む。
【００９３】
図１４はブレークコントローラの各種内部回路の構成を表した図である。
【００９４】
図１４の（ａ）はアドレス変換部の構造を示す図である。
【００９５】
アドレス変換部ＲＦ−ＡＣ２は演算回路ＡＬＵ２１と演算回路ＡＬＵ２２を持つ。演算回路ＡＬＵ２１はアドレスＹ０からアドレスＸＡを引いたものを演算回路ＡＬＵ２２に出力する。ここでアドレスＸＡはランダムアクセスメモリＲＡＭのスタートアドレスであるアドレス００４００である。演算回路ＡＬＵ２は実行アドレスＹｎから演算回路ＡＬＵ１からの出力（ＸＡ）を引いたものを実行アドレスＹｎのブレークフラグが格納されているランダムアクセスメモリＲＡＭのアドレスＸｎとして出力する。
【００９６】
図１４の（ｂ）はブレーク実行判定部の構造を示す図である。
【００９７】
ブレーク実行判定部ＢＥＤ２はアドレスＸｎのデータを読み出してその中のパリティビット格納部Ｐ０のブレークフラグを読み出す。ブレークフラグが１であればステップＳ３０５に進むように制御され、ブレークフラグが０であればステップＳ３０２に進むように制御される。
【００９８】
ステップＳ３０６はデバッガにより自動的に設定されるような説明を行ったがそれに限らず、  
【００９９】
プログラムを開発するユーザーにより設定するようにしてもよい。
本実施の形態によれば、プログラムが格納された不揮発性メモリＦＬＡＳＨのブレーク対象となるアドレス範囲を設定する不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧを有する。不揮発性メモリブレークポイント可能アドレス範囲設定レジスタＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧがあることにより、ブレーク対象となる不揮発性メモリＦＬＡＳＨのアドレス範囲が柔軟に設定できるのでデバック動作の制約が小さい。アドレス範囲を設定できるのでブレークフラグを格納する領域も小さくできるために、ランダムアクセスメモリＲＡＭのパリティ格納領域Ｐ０の数でも、ブレークフラグの格納領域の数が足りることとなり、特別なブレークフラグ用の格納領域も必要とせず、さらにランダムアクセスメモリＲＡＭのアドレス空間を全て用いてプログラムを動作させてデバック処理をすることができる。
【０１００】
ランダムアクセスメモリＲＡＭのパリティビット格納領域Ｐ０にブレークフラグを格納するようにしているので、デバック時にランダムアクセスメモリＲＡＭの領域を全てプログラム動作用に用いることができるので、デバック効率が上がる。
【０１０１】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【０１０２】
ＣＰＵ  中央演算装置
ＲＡＭ。Ｄ−ＲＡＭ  ランダムアクセスメモリ
ＦＬＡＳＨ  不揮発性メモリ
ＢＣ  ブレークコントローラ
ＦＬＡＳＨ−ＢＥＡＲ−ＲＥＧ  不揮発性メモリブレークポイント可能アドレス範囲設定レジスタ
ＲＡＭ−ＢＦＳＡＲ−ＲＥＧ  ランダムアクセスメモリブレークポイントフラグ格納アドレス範囲設定レジスタ
Ｂ０〜Ｂ７  ビット格納領域
【図１】
2014085859.tif 000003
【図２】
2014085859.tif 000004
【図３】
2014085859.tif 000005
【図４】
2014085859.tif 000006
【図５】
2014085859.tif 000007
【図６】
2014085859.tif 000008
【図７】
2014085859.tif 000009
【図８】
2014085859.tif 000010
【図９】
2014085859.tif 000011
【図１０】
2014085859.tif 000012
【図１１】
2014085859.tif 000013
【図１２】
2014085859.tif 000014
【図１３】
2014085859.tif 000015
【図１４】
2014085859.tif 000016