(57)【特許請求の範囲】
【請求項１】
ＣＰＵとエミュレータとの間に接続され、前記ＣＰＵに実行させるプログラムのデバッグを支援するインタフェース回路と、
前記インタフェース回路に接続されたメモリと、
制御情報が設定されるレジスタとが半導体装置に備えられ、
前記レジスタに設定された制御情報に基づいて、前記メモリをエミュレータ空間にマッピングすることを特徴とするデバッグシステム。
【請求項２】
前記制御情報はデータ転送バッファ有効ビット、及び前記メモリの有効／無効を設定する情報であり、該制御情報に基づいて前記メモリをユーザ空間及び前記エミュレータ空間の双方からアクセス可能な領域にマッピングすることを特徴とする請求項１記載のデバッグシステム。
【請求項３】
前記制御情報は前記メモリの有効／無効を設定する情報であり、該制御情報に基づいて、前記ＣＰＵがブレーク時に実行するプログラムを記憶するアドレスを含む領域に前記メモリをマッピングすることを特徴とする請求項１又は２記載のデバッグシステム。
【請求項４】
前記制御情報はレジスタ退避領域有効ビット、及び前記メモリの有効／無効を設定する情報であり、該制御情報に基づいて、アドレスの即値を含む命令により前記ＣＰＵが有する汎用レジスタの内容を格納するアドレスを含む領域に前記メモリをマッピングすることを特徴とする請求項１〜３のうちの何れか一項記載のデバッグシステム。
【請求項５】
前記メモリの有無を示す制御情報が読み出されるレジスタを備え、該レジスタの情報を確認した後に前記メモリの有効／無効を設定することを特徴とする請求項１〜４のうちの何れか一項記載のデバッグシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデバッグシステムに係り、詳しくは外部エミュレータとのインタフェース回路を内蔵したマイクロコントローラ等の半導体装置にデバッグのために備えられたメモリのマッピング方法に関するものである。
【０００２】
近年、ＣＰＵを内蔵したマイクロコントローラ等の半導体装置が組み込み用途として用いられ、ソフトウェアの開発にはエバリュエーションチップ（以下エバチップ）が用いられる。エバチップには、開発対象となるマイクロコントローラに搭載されるＣＰＵ等の各種機能回路に加え、外部エミュレータと接続されＣＰＵに実行させるプログラムのデバッグを支援するインタフェース回路（デバッグサポートユニット：Debug Support Unit、以下ＤＳＵ）を内蔵している。そして、外部エミュレータをＤＳＵに接続し、外部エミュレータからデバッグ用コマンドをＤＳＵを介してＣＰＵに与えることにより、デバッグを行う。
【０００３】
【従来の技術】
図３は、従来の開発環境を示す概念図である。
マイクロコントローラ（以下、マイコン）１１はＣＰＵ１２とインタフェース回路（デバッグサポートユニット、以下ＤＳＵ）１３を含むエバチップであり、ＤＳＵ１３はツールバス１４を介してインサーキットエミュレータ（ＩＣＥ）１５に接続されている。具体的には、ＤＳＵ１３はデバッグ用端子に接続され、そのデバッグ用端子にツールバス１４のバスケーブルが接続される。ＩＣＥ１５はホストコンピュータ１６に接続されている。ホストコンピュータ１６には、プログラムを開発するための各種アプリケーションプログラムや、ＩＣＥ１５の制御プログラム等が記憶されている。
【０００４】
開発者は、ＩＣＥ１５を介して、エミュレータプログラムをマイコン１１に供給し、それを実行させる。そして、開発者は、ＩＣＥ１５を介してマイコン１１の動作制御、内部信号のモニタリング等を行う。これらにより、開発者は、エミュレータプログラムの動作を確認し、プログラムの開発・デバッグ作業を進める。
【０００５】
詳述すると、デバッグシステムは通常モードとエミュレータモードを持つ。通常モードはターゲット（ユーザシステム）を動作させるためのモードであり、エミュレータモードはエミュレータプログラムの実行やユーザシステムの状態を確認するためのモードである。
【０００６】
また、デバッグシステムは、ユーザ空間とエミュレータ空間を持つ。ユーザ空間はユーザシステムにメモリや周辺回路の入出力がマッピングされた領域である。ＣＰＵ１２は通常モードにおいてユーザシステムに搭載されたメモリや周辺回路をアクセスする。
【０００７】
エミュレータ空間はエミュレータ（ホストコンピュータ１６）に搭載されたメモリがマッピングされた領域である。ＣＰＵ１２はエミュレータモードにおいてＤＳＵ１３を介してＩＣＥ１５上のメモリにアクセスする。
【０００８】
開発者はプログラムの実行停止のためのブレークポイントを設定し、通常モードにてユーザプログラムを実行させる。そのユーザプログラムの実行がブレークポイントに達すると、ＣＰＵ１２はＩＣＥ１５に格納されているブレーク処理プログラムを読み込み、それを実行する。その際、ブレーク処理終了時にブレーク処理直前の状態を復元するために、ＣＰＵ１２は、ブレーク処理プログラムに先立ち、ユーザプログラムにて使用されていたレジスタの内容をエミュレータ空間にマッピングされたメモリに退避しておくことが必要となる。
【０００９】
【発明が解決しようとする課題】
しかしながら、上記の従来技術において、以下のような間題点がある。
（１）近年、マイコンの高速化及び多ビット化の傾向に対して、幅の広いバスでの高速転送が困難であることやデバッグ用端子の削減要求などのため、バス幅を細くする傾向にある。ここで、このツールバスの転送効率がネックとなり、ＩＣＥ１５からのエミュレーションプログラム供給の速度低下、ひいてはデバッグ効率の悪化につながっている。
【００１０】
（２）エミュレータモードにおいて、ユーザ空間のメモリに記憶されたデータをエミュレータ空間に転送する場合、そのデータ転送はＣＰＵ１２が持つ汎用レジスタを介して行われる。即ち、転送プログラムにおいて、ＣＰＵ１２は先ず領域をユーザ空間に切り替え、ユーザ空間にあるデータを汎用レジスタに転送する。次に、ＣＰＵ１２は、エミュレータ空間に切り替え、汎用レジスタからエミュレータ空間にデータを転送する。従って、汎用レジスタのサイズに比して大きなサイズのデータを転送する際には、２つのメモリ空間を頻繁に切り換える必要があるため、切り換え処理のオーバーヘッドが大きく、データの転送レートを上げることができない。
【００１１】
（３）ブレーク処理プログラムがＩＣＥ１５に格納されているため、ブレークしてエミュレータプログラムに制御が移る際に、ＣＰＵ１２はツールバス１４を介してプログラムを読み込むことになり、ツールバス１４の転送効率の低さがボトルネックとなっている。
【００１２】
（４）エミュレータプログラムに制御が移るさいには、必ずＣＰＵ１２の汎用レジスタの退避が行われる。この退避はツールバス１４を介して行われるため、そのツールバス１４の転送効率の低さがこの処理の効率を低下させ、デバッグ環境そのもののパフォーマンスを低下させる。
【００１３】
本発明は上記問題点を解決するためになされたものであって、その目的はデバッグの効率向上を図ることのできるデバッグシステムを提供することにある。
【００１４】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の発明は、チップに搭載されたＣＰＵとエミュレータとの間に接続され、前記ＣＰＵに実行させるプログラムのデバッグを支援するインタフェース回路と、前記インタフェース回路に接続されたメモリと、制御情報が設定されるレジスタとが半導体装置に備えられ、前記レジスタに設定された制御情報に基づいて、前記メモリをエミュレータ空間にマッピングする。従って、メモリにデバッグのためのプログラムを記憶させておけば、そのプログラムを読みとるのに要する時間が短くなり、デバッグ効率が向上する。
【００１５】
請求項２に記載の発明のように、前記制御情報はデータ転送バッファ有効ビット、及び前記メモリの有効／無効を設定する情報であり、該制御情報に基づいて前記メモリをユーザ空間及び前記エミュレータ空間の双方からアクセス可能な領域にマッピングする。このメモリをデータ転送のバッファとして用いることで、転送処理一回あたりのデータ転送量が増える。従って、必要な空間切り替え回数が減り、ひいては切り替え処理によるオーバーヘッドを削減できるため、ユーザ空間からエミュレータ空間へ、又はその逆へのデータ転送の効率が向上する。
【００１６】
請求項３に記載の発明のように、前記制御情報は前記メモリの有効／無効を設定する情報であり、該制御情報に基づいて、前記ＣＰＵがブレーク時に実行するプログラムを記憶するアドレスを含む領域に前記メモリをマッピングする。従って、ブレーク時に実行するプログラムの読み込み時間が短くなり、デバッグ効率が向上する。
【００１７】
請求項４に記載の発明のように、前記制御情報はレジスタ退避領域有効ビット、及び前記メモリの有効／無効を設定する情報であり、該制御情報に基づいて、アドレスの即値を含む命令により前記ＣＰＵが有する汎用レジスタの内容を格納するアドレスを含む領域に前記メモリをマッピングする。従って、汎用レジスタを格納する処理に要する命令数が少なくてすみ、汎用レジスタの格納に要する時間が短くなる
請求項５に記載の発明のように、前記メモリの有無を示す制御情報が読み出されるレジスタを備え、該レジスタの情報を確認した後に前記メモリの有効／無効を設定する。従って、メモリを備えていない半導体装置に対するデバッグプログラムと、メモリを備えた半導体装置に対するデバッグプログラムの変更部分が少なくてすみ、エミュレータデバッガの開発工数が抑えられる。
【００１８】
【発明の実施の形態】
以下、本発明を具体化した一実施の形態を図１及び図２に従って説明する。
図１（ａ），（ｂ）は、本実施形態の開発環境を示す概念図である。
【００１９】
図１（ａ）に示すように、マイクロコントローラ（以下、マイコン）２１はＣＰＵ２２とインタフェース回路（デバッグサポートユニット、以下ＤＳＵ）２３とデバッグ専用メモリ２４を含むエバリュエーションチップ（以下エバチップ）である。ＣＰＵ２２はＤＳＵ２３に接続され、そのＤＳＵ２３には専用メモリ２４が接続されている。
【００２０】
ＤＳＵ２３はデバッグ用端子（図示略）に接続され、そのデバッグ用端子にはツールバス２５を介してインサーキットエミュレータ（以下ＩＣＥ）２６に接続されている。そのＩＣＥ２６はホストコンピュータ２７に接続されている。
【００２１】
具体的には、ＤＳＵ２３はデバッグ用端子に接続され、そのデバッグ用端子にツールバスのバスケーブル２５が接続される。デバッグ用端子はチップサイズに与える影響を少なくするために少数（例えば４ピン）設けられ、ＤＳＵ２３はＩＣＥ２６とバスケーブル２５を介してシリアル通信する。ＩＣＥ２６はホストコンピュータ２７とパラレルケーブルにて接続されている。ホストコンピュータ２７には、プログラムを開発するための各種アプリケーションプログラムや、ＩＣＥ２６の制御プログラム等が記憶されている。
【００２２】
ホストコンピュータ２７は、ＤＳＵ２３から送信されるデバッグ情報の取り込みや、ブレークアドレス情報のＤＳＵ２３への送信などを行う。
開発者は、ホストコンピュータ２７からＩＣＥ２６を介してエミュレータプログラムをマイコン２１に実行させる。そして、開発者は、ホストコンピュータ２７及びＩＣＥ２６を介してマイコン２１の動作制御、内部信号のモニタリング等を行う。これらにより、開発者は、エミュレータプログラムの動作を確認し、プログラムの開発・デバッグ作業を進める。
【００２３】
次に、各機能ブロックの詳細を説明する。
ＣＰＵ２２はＲＩＳＣ型ＣＰＵであり、汎用レジスタ２２ａを含む。汎用レジスタ２２ａは複数のレジスタからなり、ＣＰＵ２２は汎用レジスタ２２ａを利用してメモリとの間でデータのロード・セーブ、データの演算処理を行い、また演算の結果生じる桁上がりや状態の変化を保存する。
【００２４】
マイコン２１は、通常モード時にユーザ空間（ＣＰＵ２２が出力するアドレス信号にて指定される領域（アドレス空間））にマッピングされたメモリや周辺回路（何れも図示略）をアクセスする。そして、マイコン２１は、メモリ等に記憶されたプログラムを実行する。
【００２５】
また、マイコン２１は、エミュレータモード時にエミュレータ空間（ＣＰＵ２２が出力するアドレス信号にて指定される領域）にマッピングされたホストコンピュータ２７が持つメモリ等の領域をアクセスする。そして、マイコン２１は、ホストコンピュータ２７に記録されたシステムプログラムやデバッグプログラムを実行する。
【００２６】
ＤＳＵ２３は、マイコン２１のステータス情報の通知、エミュレータ２６，２７からのオペレーションの受信・実行、実行アドレスデータ／トレースデータのステータスの通知、ブレークアドレス情報の受信・設定などを行う。
【００２７】
ＤＳＵ２３は、制御レジスタ２３ａを含む。制御レジスタ２３ａは、専用メモリ２４に関する制御情報を記憶する。制御情報は、専用メモリ２４の有無、有効／無効、マッピング領域の指定、を含む。
【００２８】
専用メモリ２４の有無を示す制御情報は、そのエバチップに専用メモリ２４が搭載されているか否かを示す情報である。そして、この情報は読取り専用に定義され、エバチップの作成時にその構成に従って情報が固定されている。例えば、専用メモリ２４が搭載されている場合は情報として「１」が読み出され、搭載されていない場合は「０」（ゼロ）が読み出される。
【００２９】
ホストコンピュータ２７は、制御レジスタ２３ａに記憶された制御情報に基づいて、専用メモリ２４の有無を確認する。そして、専用メモリ２４がエバチップに搭載されている場合、ホストコンピュータ２７は制御レジスタ２３ａの設定を変更してそれを有効にする。
【００３０】
尚、実際には、制御レジスタ２３ａはＣＰＵ２２からアクセス可能であり、ホストコンピュータ２７からアクセス不可能である。従って、制御レジスタ２３ａの設定確認及び設定変更はＣＰＵ２２により行われ、ホストコンピュータ２７は制御レジスタ２３ａの設定確認／設定変更を行うためのプログラムをＣＰＵ２２に実行させる。このプログラムの実行により、ホストコンピュータ２７は実質的に制御レジスタ２３ａの設定確認／設定変更を行う。
【００３１】
専用メモリ２４が有効に設定されると、ＤＳＵ２３は専用メモリ２４をエミュレータ空間の所定の第１領域にマッピングする。ＤＳＵ２３は、エミュレータモード時にＣＰＵ２２からのアクセスが第１領域の場合にそのアクセスを専用メモリ２４に対して実施し、第１領域以外の場合にはアクセスをＩＣＥ２６を介してホストコンピュータ２７に対して実施する。このため、ＣＰＵ２２がエミュレータ空間をアクセスする場合、第１領域に対するアクセスに要する時間は、それ以外の領域に対するアクセスに要する時間よりも短い。
【００３２】
従って、第１領域にマッピングされた専用メモリ２４に予めブレークプログラム等を転送しておくことで、そのプログラムの実行速度が早くなる。尚、第１領域をＣＰＵ２２がプログラムを実行するよう予め設定された領域と等しくすることで、ＣＰＵ２２の動作を何ら変更することがなく、プログラム等の修正の手間を省くことができる。
【００３３】
マッピング領域の指定は、専用メモリ２４が有効に設定された場合に有効とすることができる。制御レジスタ２３ａに有効を示す制御情報が設定されると、ＤＳＵ２３は専用メモリ２４を所定の第２又は第３領域にマッピングする。第２及び第３領域の指定は、制御レジスタ２３ａの制御情報に基づく。
【００３４】
第２領域はＣＰＵ２２が汎用レジスタの内容を退避するための領域である。ＣＰＵ２２は、ブレーク処理プログラムを実行し、そのプログラムの記述に従って汎用レジスタ２２ａの内容を第２領域に格納すべく出力し、その汎用レジスタ２２ａの内容はＤＳＵ２３から専用メモリ２４に出力され、それに記憶される。そして、この第２領域は、ＣＰＵ２２が実行する即値命令(immediate instruction )により汎用レジスタ２２ａの内容を格納可能な領域に設定されている。即値命令は、アドレスの即値を含む命令である。従って、即値命令を使用することでその格納に要する時間が短く、汎用レジスタ２２ａの内容を格納するための処理に要する命令数が少なくて済む。
【００３５】
第３領域はＣＰＵ２２がデータ転送のバッファとして利用するための領域である。大量のデータをユーザ空間からエミュレータ空間へ転送する場合、ユーザはＣＰＵ２２に転送のためのプログラムを実行させる。その実行において、ＣＰＵ２２は、先ず通常モードに切り替えてユーザ空間から専用メモリ２４にデータを転送し、次にエミュレーションモードに切り替えて専用メモリ２４からエミュレータ空間にデータを転送する。この動作を繰り返すことで、必要なデータをユーザ空間からエミュレータ空間に転送する。専用メモリ２４の容量はＣＰＵ２２が持つ汎用レジスタ２２ａの容量より大きいので、モード切替の回数が少なくて済み、転送時間が短くなる。
【００３６】
図１（ｂ）は、制御レジスタ２３ａの構成例とＣＰＵ２２のアクセス先を示す説明図である。
制御レジスタ２３ａは８ビットのレジスタであり、第１〜第４ビットＢ０〜Ｂ３には所定の機能が設定されている。第１ビットＢ０は専用メモリ確認ビットであり、第２ビットＢ１は専用メモリ有効ビットであり、第３ビットＢ２はレジスタ退避領域有効ビットであり、第４ビットＢ３はデータ転送バッファ有効ビットである。
【００３７】
エミュレータ空間３１は複数の領域３１ａ〜３１ｆに区画されている。デバッグの初期状態において、第２〜第４ビットＢ１〜Ｂ３は無効を示す制御情報が設定されている。この場合、ＣＰＵ２２のアクセス先は、全てエミュレータに向いている。
【００３８】
制御レジスタ２３ａの専用メモリ有効ビット及びレジスタ退避領域有効ビットに有効を示す制御情報が格納された場合、ＤＳＵ２３は、ＣＰＵ２２のアクセス先を、エミュレータから第１の領域３１ａに変更する。即ち、ＤＳＵ２３は、ＣＰＵ２２からのアドレス信号が第１の領域３１ａ内を示す場合、そのアドレスに基づくアクセスを第１の領域３１ａにマッピングされた専用メモリ２４に対して行い、アドレス信号がそれ以外を示す場合にはエミュレータ（ホストコンピュータ２７）に対して行う。
【００３９】
同様に、制御レジスタ２３ａの専用メモリ有効ビット及びデータ転送バッファ有効ビットに有効を示す制御情報が格納された場合、ＤＳＵ２３は、ＣＰＵ２２のアクセス先を、エミュレータから第２の領域３１ｃに変更する。制御レジスタ２３ａの専用メモリ有効ビットに有効を示す制御情報が格納された場合、ＤＳＵ２３は、ＣＰＵ２２のアクセス先を、エミュレータから第３の領域３１ｅに変更する。
【００４０】
そして、ＤＳＵ２３は、専用メモリ２４が割り当てられていないその他の領域３１ｂ，３１ｄ，３１ｆに対するＣＰＵ２２のアクセスを、エミュレータ（ホストコンピュータ２７）に対して行う。
【００４１】
上記の初期状態により、専用メモリ２４の有無によるエミュレータデバッガ（デバッグプログラム）の変更部分を最小限におさえ、開発コストの削減を図ることができる。詳述すると、専用メモリ有効ビットが有効な場合、専用メモリ２４をエミュレータ空間３１の第３の領域３１ｅに割り当てる。エミュレータデバッガ（又は一部プログラム）は、第３の領域３１ｅにロードされ実行するよう作成される。そして、第３の領域３１ｅにロードするプログラム部分を専用メモリ２４に予め転送する。従って、専用メモリ２４が搭載されていない場合には、そのプログラム部分はホストコンピュータ２７から読み込まれＣＰＵ２２にて実行される。即ち、専用メモリ２４を搭載したエバチップ２１と、それを搭載していないエバチップに対するエミュレータデバッガを共通化することができる。
【００４２】
図２は、専用メモリ２４をマッピングする領域の一例を示す説明図である。
専用メモリ２４は１ＫＢ（キロバイト）の記憶容量を持つ。
第１の領域３１ａは0x00000000〜0x000003FFの値を持つアドレス信号にてアクセスされるよう設定され、１ＫＢの容量を持つ領域である。この領域３１ａは、ＲＩＳＣ型のＣＰＵ２２の命令体系において、汎用レジスタ２２ａの値を１命令で書き出すことができる限定された領域である。通常、これ以外の領域では１つの汎用レジスタを退避するのにおよそ２命令かかる。従って、この領域３１ａに専用メモリ２４を割り当てることで、汎用レジスタ２２ａの内容の退避が効率的に行われる。
【００４３】
第２の領域３１ｃは0x0000800〜0x000009FFの値を持つアドレス信号にてアクセスされるよう設定され、０．５ＫＢの容量を持つ領域である。この領域３１ｃは、通常モードとエミュレータモードの双方においてＣＰＵ２２からアクセス可能な領域である。ＤＳＵ２３は専用メモリ２４を同じ記憶容量を持つ第１領域２４ａと第２領域２４ｂに分割し、第２領域２４ｂを第２の領域３１ｃに対して割り当てる。即ち、専用メモリ２４の第２領域２４ｂは、ユーザ空間３２の領域３２ａと、それと同じアドレスを持つエミュレータ空間３１の第２の領域３１ｃに割り当てられる。
【００４４】
従って、専用メモリ２４の第２領域２４ｂをユーザ空間３２からエミュレータ空間３１（又はその逆）に転送するデータの一時保管場所として利用される。この第２領域２４ｂの容量は汎用レジスタ２２ａに比べて容量が大きいため、データ転送に要する時間が短くなる、即ちデータ転送の実効速度が早くなる。
【００４５】
第３の領域３１ｅは0x000F0000〜0x000F03FFの値を持つアドレス信号にてアクセスされるよう設定され、１ＫＢの容量を持つ領域である。この領域３１ｅは、ＣＰＵ２２がブレーク時に実行するブレーク要因判定ルーチンなどのプログラムを読み込むよう設定されたアドレスに対応している。即ち、デバッグ中にブレークが実行されると、ＣＰＵ２２は、この領域３１ｅに記憶されているプログラム（命令）を順次読み込み、実行する。従って、ＣＰＵ２２によるプログラムの読み込みはチップ２１内にて行われるため、ツールバス２５を介して行う場合に比べてその読み込みに要する時間が短くなり、ブレーク時における処理の実効速度が大幅に早くなる。
【００４６】
以上記述したように、本実施の形態によれば、以下の効果を奏する。
（１）エバチップ２１には、ＣＰＵ２２と、ＣＰＵ２２に実行させるプログラムのデバッグを支援するＤＳＵ２３と、ＤＳＵ２３に接続された専用メモリ２４が搭載されている。ＤＳＵ２３は制御情報が設定される制御レジスタ２３ａを備え、該制御レジスタ２３ａに設定された制御情報に基づいて、専用メモリ２４をエミュレータ空間にマッピングする。その結果、専用メモリ２４にデバッグのためのプログラムを記憶させることで、そのプログラムをＣＰＵ２２が読み込むのに要する時間を短くすることができ、デバッグ効率を向上させることができる。
【００４７】
（２）制御レジスタ２３ａは専用メモリ有効ビットを持ち、専用メモリ２４の有効／無効を示す制御情報が設定される。ＤＳＵ２３は、その制御情報に基づいて専用メモリ２４をＣＰＵ２２がブレーク時に実行するプログラムを読み込むアドレスを含む領域３１ｅにマッピングする。その結果、ブレーク時に実行するプログラムの読み込みに要する時間を短くすることができる。
【００４８】
（３）制御レジスタ２３ａはデータ転送バッファ有効ビットを持ち、専用メモリ２４の有効／無効を示す制御情報が設定される。ＤＳＵ２３はその制御情報に基づいて専用メモリ２４をユーザ空間及びエミュレータ空間の双方からアクセス可能な領域３２ａ，３１ｃにマッピングする。その結果、専用メモリ２４をデータ転送のバッファとして利用する（転送プログラムをそのように構成する）ことで、ユーザ空間からエミュレータ空間へ（又はその逆）のデータ転送に要する時間を短くすることができる。
【００４９】
（４）制御レジスタ２３ａはレジスタ退避領域有効ビットを持ち、専用メモリ２４の有効／無効を示す制御情報が設定される。ＤＳＵ２３はその制御情報に基づいて専用メモリ２４をＣＰＵ２２が即値命令により汎用レジスタ２２ａの内容を退避することができる領域３１ａにマッピングする。その結果、汎用レジスタ２２ａの退避時間を短くすることができる。
【００５０】
（５）制御レジスタ２３ａは専用メモリ確認ビットを持ち、専用メモリ２４の有無に応じた制御情報が読み出される。その結果、専用メモリ２４を搭載したエバチップ２１と、専用メモリを搭載していないエバチップの双方に対してエミュレータデバッガを共通化することができ、そのエミュレータデバッガの開発工数の増加を抑えることができる。
【００５１】
尚、前記実施形態は、以下の態様に変更してもよい。
・専用メモリ２４の容量を適宜変更する。上記実施形態では１ＫＢの専用メモリ２４をエバチップ２１に搭載したが、それ以上の容量を設定する。そして、搭載した専用メモリを３つの領域に区分し、各領域を第１，第２，第３の領域３１ａ，３１ｃ，３１ｅにそれぞれ専用メモリが重ならないように割り当てる。このようにすれば、各領域３１ａ，３１ｃ，３１ｅを同時期に使用することができる。
【００５２】
・複数の専用メモリ２４を備え各専用メモリを適宜割り当てる。例えば、２つの専用メモリ２４を備え、１つの専用メモリを第１及び第２の領域３１ａ，３１ｃに、他の専用メモリを第３の領域３１ｅに割り当てる。また、２つの専用メモリを備え、各メモリを第１，第２，第３の領域３１ａ，３１ｃ，３１ｅにそれぞれ割り当てる。更に、４つ以上の専用メモリを備え、第１，第２，第３の領域３１ａ，３１ｃ，３１ｅのうちの少なくとも１つに複数の専用メモリを割り当てる。
【００５３】
・専用メモリ２４のマッピング領域を適宜変更する。上記実施形態において、専用メモリ２４を、第１，第２，第３の領域３１ａ，３１ｃ，３１ｅのうちの少なくとも１つに割り当てる。また、上記実施形態において、第１，第２，第３の領域３１ａ，３１ｃ，３１ｅのうちの少なくとも２つを隣接した領域にマッピングする。
【００５４】
・専用メモリ２４を４つ以上の領域に割り当てる。それに対し、制御レジスタ２３ａに割り当てる領域の有効／無効を設定するための制御情報を記憶するビットを設定する。
【００５５】
・制御レジスタ２３ａをＤＳＵ２３に対して接続する。又は、専用メモリ２４の一部領域を制御レジスタ２３ａの第２〜第４ビットＢ１〜Ｂ３として使用する。
【００５６】
・専用メモリ２４の搭載の有無を示す制御情報を記憶するレジスタ（専用メモリ確認ビット）として読み出し専用メモリ（ＲＯＭ）を設ける。
・専用メモリ２４を割り当てるアドレスを適宜変更する。例えば、第２の領域３１ｃを0x00000800〜0x00000AFFまでとし、専用メモリ２４の全領域を割り当てる。
【００５７】
以上の様々な実施の形態をまとめると、以下のようになる。
（付記１）  ＣＰＵとエミュレータとの間に接続され、前記ＣＰＵに実行させるプログラムのデバッグを支援するインタフェース回路と、
前記インタフェース回路に接続されたメモリと、
制御情報が設定されるレジスタとが半導体装置に備えられ、
前記レジスタに設定された制御情報に基づいて、前記メモリをエミュレータ空間にマッピングすることを特徴とするデバッグシステム。
（付記２）  前記制御情報は前記メモリの有効／無効を設定するものであり、該制御情報に基づいて前記メモリをユーザ空間及び前記エミュレータ空間の双方からアクセス可能な領域にマッピングすることを特徴とする付記１記載のデバッグシステム。
（付記３）  前記制御情報は前記メモリの有効／無効を設定するものであり、該制御情報に基づいて、前記ＣＰＵがブレーク時に実行するプログラムを記憶するアドレスを含む領域に前記メモリをマッピングすることを特徴とする付記１又は２記載のデバッグシステム。
（付記４）  前記制御情報は前記メモリの有効／無効を設定するものであり、該制御情報に基づいて、アドレスの即値を含む命令により前記ＣＰＵが有する汎用レジスタの内容を格納するアドレスを含む領域に前記メモリをマッピングすることを特徴とする付記１〜３のうちの何れか一項記載のデバッグシステム。
（付記５）  前記メモリの有無を示す制御情報が読み出されるレジスタを備え、該レジスタの情報を確認した後に前記メモリの有効／無効を設定することを特徴とする付記１〜４のうちの何れか一項記載のデバッグシステム。
（付記６）  前記レジスタは、前記メモリをユーザ空間及び前記エミュレータ空間の双方からアクセス可能な領域に対する前記メモリのマッピングを有効又は無効に設定する制御情報を記憶する第１のレジスタと、前記ＣＰＵがブレーク時に実行するプログラムを記憶するアドレスを含む領域に対する前記メモリのマッピングを有効又は無効に設定する第２のレジスタと、アドレスの即値を含む命令により前記ＣＰＵが有する汎用レジスタの内容を格納するアドレスを含む領域に対する前記メモリのマッピングを有効又は無効に設定する第３のレジスタとのうちの少なくとも１つを含むこと、を特徴とする付記１又は２記載のデバッグシステム。
（付記７）  ＣＰＵとエミュレータとの間に接続されたインタフェース回路と、前記インタフェース回路に接続されたメモリと、制御情報が設定されるレジスタとが半導体装置に備えられ、前記ＣＰＵに実行させるプログラムをデバッグするためのデバッグ方法において、
前記レジスタに設定された制御情報に基づいて、エミュレータ空間に前記メモリをマッピングし、該メモリを介して前記プログラムをデバッグすることを特徴とするデバッグ方法。
（付記８）  ＣＰＵと、
前記ＣＰＵに実行させるプログラムのデバッグを支援するインタフェース回路と、
前記インタフェース回路に接続されたメモリと、
制御情報が設定されるレジスタと、を備え、
前記インタフェース回路は、前記制御情報に基づいて前記メモリをエミュレータ空間にマッピングすることを特徴とする半導体装置。
【００５８】
【発明の効果】
以上詳述したように、本発明によれば、デバッグの効率向上を図ることのできる半導体装置におけるデバッグシステムを提供することができる。
【図面の簡単な説明】
【図１】  一実施形態の開発環境を示す概念図である。
【図２】  専用メモリのマッピング例を示す説明図である。
【図３】  従来の開発環境を示す概念図である。
【符号の説明】
２１  半導体装置（エバリュエーションチップ）
２２  ＣＰＵ
２２ａ  汎用レジスタ
２３  ＤＳＵ
２３ａ  制御レジスタ
２４  専用メモリ
２６  ＩＣＥ
２７  ホストコンピュータ
【図１】
0004421148.tif 000002
【図２】
0004421148.tif 000003
【図３】
0004421148.tif 000004