(57)【要約】【課題】デバッグ対象処理に要する時間を変化させずに、デバッグ処理を実行する。【解決手段】デバッグ処理及びデバッグ対象処理を実行し、前記デバッグ対象処理の1つ又は複数の予め定められたデバッグポイントにおける内部情報を内部メモリに格納し、割り込み要求信号を受信すると前記内部メモリに格納された前記内部情報に基づいて前記デバッグ処理を行う、プロセッサと、  前記デバッグ対象処理に必要な情報が前記内部メモリにないとき、前記プロセッサに前記割り込み要求信号を送信する、制御部と、  を備える。【選択図】図２
2009271894.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ処理及びデバッグ対象処理を実行し、前記デバッグ対象処理の1つ又は複数の予め定められたデバッグポイントにおける内部情報を内部メモリに格納し、割り込み要求信号を受信すると前記内部メモリに格納された前記内部情報に基づいて前記デバッグ処理を行う、プロセッサと、
前記デバッグ対象処理に必要な情報が前記内部メモリにないとき、前記プロセッサに前記割り込み要求信号を送信する、制御部と、
を備えることを特徴とする半導体集積回路。
【請求項２】
デバッグ処理に必要な命令及びデータが格納されるローカルメモリと、
前記デバッグ処理及びデバッグ対象処理を実行し、前記デバッグ対象処理の１つ又は複数の予め決められたデバッグポイントにおける内部情報を前記ローカルメモリに格納する、プロセッサと、
外部メモリに格納された情報の一部が格納されるキャッシュメモリと、
前記デバッグ対象処理に必要な情報が前記キャッシュメモリに存在しないことを検知すると、前記デバッグ処理を前記プロセッサに実行させる割り込み要求信号を生成し、前記外部メモリの情報を前記ローカルメモリ及び前記キャッシュメモリに転写する、制御回路と、
を備えることを特徴とする半導体集積回路。
【請求項３】
デバッグ処理に必要な命令及びデータが格納されるローカルメモリと、
前記デバッグ処理及びデバッグ対象処理を実行し、前記デバッグ対象処理の１つ又は複数の予め決められたデバッグポイントにおける内部情報を前記ローカルメモリに格納する、プロセッサと、
外部メモリに格納された情報の一部が格納されるキャッシュメモリと、
前記外部メモリの情報を前記ローカルメモリ及び前記キャッシュメモリに転写する、バスアクセス制御回路と、
前記デバッグ対象処理に必要な情報が前記キャッシュメモリに存在しないことを検知すると、前記デバッグ処理を前記プロセッサに実行させる割り込み要求信号を生成し、前記デバッグ対象処理に必要な前記情報を前記外部メモリから前記キャッシュメモリに転写する外部情報読込み処理を実行するための外部情報読込み要求信号を前記バスアクセス制御回路に送信する、メモリ制御回路と、
を備えることを特徴とする半導体集積回路。
【請求項４】
デバッグ処理に必要な命令及びデータが格納されるローカルメモリと、
前記デバッグ処理及びデバッグ対象処理を実行し、前記デバッグ対象処理の１つ又は複数の予め決められたデバッグポイントにおける内部情報を前記ローカルメモリに格納する、プロセッサと、
外部メモリに格納された情報の一部が格納されるキャッシュメモリと、
前記デバッグ対象処理に必要な情報が前記キャッシュメモリに存在しないことを検知すると、前記デバッグ対象処理に必要な前記情報を前記外部メモリから前記キャッシュメモリに転写する外部情報読込み処理を実行するための外部情報読込み要求信号を前記バスアクセス制御回路に送信する、メモリ制御回路と、
前記外部情報読込み要求信号を受信すると前記デバッグ処理を前記プロセッサに実行させる割り込み要求信号を生成し、前記デバッグ対象処理に必要な前記情報を前記外部メモリから前記キャッシュメモリに転写する外部情報読込み処理を実行する、バスアクセス制御回路と、
を備えることを特徴とする半導体集積回路。
【請求項５】
請求項３又は請求項４に記載の半導体集積回路であって、
外部装置と通信するための通信回路をさらに備え、
前記デバッグ処理は、前記外部情報読込み処理の実行に必要な時間及び前記通信回路の通信速度によって決まる情報量を上限として、前記ローカルメモリに格納された前記内部情報に基づきログデータを構成し、前記ログデータを前記外部装置に送信する処理を含む、
ことを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関する。
【背景技術】
【０００２】
半導体集積回路上で動作するソフトウェアのデバッグは、ソフトウェアによる処理の途中にデバッグポイントを設け、このデバッグポイントにおける内部情報をモニタすることにより行われる。しかし、デバッグ対象となる本来の処理（以下、デバッグ対象処理という）に、内部情報やコメントを記載したログを外部のデバッグ端末に出力するなどのデバッグ処理を挿入すると、デバッグ対象処理を完了するのに要する時間が増加してしまうという問題がある。詳細なデバッグをしようとすれば、出力データ量が増加するため、デバッグ対象処理の完了はさらに遅くなってしまう。
【０００３】
通信装置のようなデータの送受信に伴ってプロセッサに割り込みが頻繁に発生するシステムにおいては、さらに深刻な問題が発生する。上記のようにデバッグ対象処理にかかる時間が増加すると、デバッグ処理を挿入しない場合と異なるタイミングで割り込みが発生し、それにより、処理シーケンスが変わってしまい、システムとして異なる動作をすることになる。よって、デバッグ処理の挿入によりリアルタイム性が失われる結果、デバッグ自体が困難になる。
【０００４】
リアルタイム処理を行う情報処理制御システムが、例えば特許文献１に記載されている。しかし、これは必要な命令をプロセッサが実行する前に予めキャッシュメモリにダウンロードしておくことでプロセッサの稼働率を上げるためのものであり、上述の問題を克服するものではない。
【特許文献１】特開２００５−１０００３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、デバッグ対象処理に要する時間を変化させずに、デバッグ処理を実行可能な半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によれば、デバッグ処理及びデバッグ対象処理を実行し、前記デバッグ対象処理の1つ又は複数の予め定められたデバッグポイントにおける内部情報を内部メモリに格納し、割り込み要求信号を受信すると前記内部メモリに格納された前記内部情報に基づいて前記デバッグ処理を行う、プロセッサと、前記デバッグ対象処理に必要な情報が前記内部メモリにないとき、前記プロセッサに前記割り込み要求信号を送信する、制御部と、を備える半導体集積回路が提供される。
【発明の効果】
【０００７】
本発明によれば、デバッグ対象処理に要する時間を変化させずに、デバッグ処理を実行できる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明に係る２つの実施形態について図面を参照しながら説明する。
【０００９】
２つの実施形態はいずれも、処理に必要な情報がキャッシュメモリに存在しない（以下、キャッシュヒットミスという）場合にバスアクセス制御回路が外部メモリから情報をリードする間プロセッサがアイドル状態になることを利用して、この間にデバッグ処理を行うものである。第1の実施形態と第２の実施形態の相違点の1つは、デバッグ対象処理からデバッグ処理に（又はその逆）プロセッサの処理を切替えるための割り込み要求信号を、どの回路から送信するようにするかという点にある。即ち、第1の実施形態ではメモリ制御回路が割り込み要求信号を送信するのに対して、第２の実施形態ではバスアクセス制御回路が割り込み要求信号を送信する。
【００１０】
（第１の実施形態）
図１は第１の実施形態に係る半導体装置１００の構成を示している。この半導体装置１００は、半導体集積回路１０と、グローバルバス２０と、外部メモリ３０と、ＲＯＭ４０とを備える。図１からわかるように、半導体集積回路１０、外部メモリ３０及びＲＯＭ４０は、グローバルバス２０により互いに接続されている。
【００１１】
外部メモリ３０は揮発性のＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）である。
【００１２】
ＲＯＭ４０は不揮発性メモリであり、プログラム及びデータが格納されている。装置をブート（立ち上げ）する時、このＲＯＭ４０に格納された情報が外部メモリ３０にコピーされる。
【００１３】
また、図１からわかるように、半導体集積回路１０は、プロセッサ１と、ローカルメモリ２と、キャッシュメモリ３と、メモリ制御回路４と、バスアクセス制御回路５と、割り込み制御回路６とを有する。
【００１４】
ローカルメモリ２は、半導体集積回路１０の内部メモリである。ある処理に必要な命令及びデータを外部メモリ３０からこのローカルメモリ２に転写しておくことで、その後外部メモリ３０にアクセスすることなく処理を実行できる点で後述のキャッシュメモリ３と異なる。デバッグ処理に必要な命令及びデータは、このローカルメモリ２に格納される。
【００１５】
キャッシュメモリ３は、外部メモリ３０に格納された情報の一部を格納することで、外部メモリ３０へのアクセスを減らし、処理の高速化を図るためのメモリである。なお、このキャッシュメモリ３は命令キャッシュ及びデータキャッシュを含む。
【００１６】
メモリ制御回路４は、プロセッサ１の要求に応じてローカルメモリ２及びキャッシュメモリ３にアクセスする。また、キャッシュヒットミスが発生した場合には、外部メモリ３０から所望の情報をリードするよう要求するための外部情報読込み要求信号を後述のバスアクセス制御回路５に送信する。その際、後述の割り込み制御回路６に割り込み要求信号を送信する。また、後述のバスアクセス制御回路５から、外部メモリ３０からの読み込み完了の通知を受けたときも、割り込み制御回路６に割り込み要求信号を送信する。
【００１７】
バスアクセス制御回路５は、メモリ制御回路４から外部情報読込み要求信号（外部メモリ３０へのアクセス要求）を受けると、グローバルバス２０を介して外部メモリ３０から所望の情報をリードして、その情報をキャッシュメモリ３にコピーする。また、コピーが完了するとメモリ制御回路４に完了通知を送信する。
【００１８】
割り込み制御回路６は、メモリ制御回路４から割り込み要求信号を受信すると、プロセッサ１に通知する。なお、この割り込み制御回路６はメモリ制御回路４以外の構成要素からの割り込み要求も受け付けるように構成してもよい。
【００１９】
プロセッサ１は、割り込み制御回路６経由でメモリ制御回路４の発した割り込み要求信号を受信すると、デバッグ対象処理からデバッグ処理に実行する処理を切替える。また、このプロセッサ１はデバッグ端末と通信するための通信モジュール（図示せず）として、例えばＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ）を有し、デバッグ処理により生成されたログを外部のデバッグ端末に送信することができる。なお、この通信モジュールは、プロセッサ１の外部にあって、半導体集積回路１０内の構成要素を結ぶローカルバスによってプロセッサ１と接続されたものであってもよい。
【００２０】
次に、図２を用いて本実施形態に係る処理手順を説明する。図２は、プロセッサ１とバスアクセス制御回路５の実行する処理内容のタイミングチャートである。処理Ａの途中でキャッシュヒットミスが発生すると、外部メモリ３０にアクセスする必要が生じる。外部メモリ３０をリードする間、プロセッサ１はアイドル状態となる。このアイドル状態の空き時間を利用して処理Ｂを行う。
【００２１】
より詳しくは、プロセッサ１は、キャッシュヒットミスによる割り込み要求を受けると、図２からわかるように、プロセッサ１は処理Ａを中断し、処理Ｂの実行を開始する。バスアクセス制御回路５は、前述のように外部メモリ３０から所望のデータのリード処理を行う。このリード処理に要する時間（以下、バスアクセス期間という）は、外部メモリ３０の位置及びグローバルバス２０の性能などのハードウェア条件により決まるものであるため、予め判明している値である。但し、半導体集積回路１０以外にグローバスバス２０の使用を要求するものがある場合、バスアクセス期間はバス調停の結果、より長くなる可能性がある。
【００２２】
また、プロセッサ１内に処理Ｂ専用のレジスタ（図示せず）を設けることにより、処理Ａから処理Ｂに切替える際、処理Ａに関するデータのスタックへの退避を不要にし、切替え処理の高速化を図ってもよい。
【００２３】
次に、処理Ａ及び処理Ｂの処理内容の詳細について説明する。
【００２４】
処理Ａは、デバッグ対象処理を行うほか、デバッグポイントにおける変数の値、送受信データなどの内部情報を、必要に応じてコメントとともに、デバッグ情報としてローカルメモリ２に格納する処理も行う。
【００２５】
処理Ｂは、デバッグ処理を行う。即ち、ローカルメモリ２に格納されたデバッグ情報をＡＳＣＩＩ変換してログデータを構成した後、ＵＡＲＴを用いてこのログデータをデバッグ端末に出力する処理を行う。前述のように、処理Ｂに必要な命令及びデータはローカルメモリ２に格納されており、また、ＵＡＲＴモジュールは半導体集積回路１０内にあるため、処理Ｂの実行に伴うグローバルバス２０へのアクセスは発生しない。バスアクセス期間が経過して、外部メモリ３０からの読み込みが完了すると、プロセッサ１は、割り込み制御回路６を経由してメモリ制御回路４の発した割り込み要求信号をトリガとして処理Ｂを終了し、処理Ａを再開する。前述のようにバスアクセス期間の最小値は予め判明している。よって、この値と通信モジュールの通信速度に基づいて、出力するログの情報量をバスアクセス期間に送信可能な量にする。これにより、バスアクセス期間が経過する前に処理Ｂを確実に完了させることができる。
【００２６】
以上述べたように本実施形態によれば、デバッグ対象処理に要する時間を変化させずにデバッグ処理を実行することができる。これにより、割り込みタイミングを変化させることなくデバッグ可能な半導体集積回路が得られる。
【００２７】
（第２の実施形態）
第２の実施形態に係る半導体装置２００の構成を図３に示す。この半導体装置２００が前述の半導体装置１００と異なる点の一つは、割り込み制御回路への割り込み要求信号用の線がメモリ制御回路からではなく、バスアクセス制御回路から割り込み制御回路に設けられており、バスアクセス制御回路が割り込み要求信号を送信することである。
【００２８】
この半導体装置２００は半導体集積回路５０と、グローバルバス２０と、外部メモリ３０と、ＲＯＭ４０とを備える。図３からわかるように、半導体集積回路５０、外部メモリ３０及びＲＯＭ４０は、グローバルバス２０により互いに接続されている。
【００２９】
また、図３からわかるように、半導体集積回路５０は、プロセッサ１１と、ローカルメモリ１２と、キャッシュメモリ１３と、メモリ制御回路１４と、バスアクセス制御回路１５と、割り込み制御回路１６とを有する。
【００３０】
ローカルメモリ１２は、半導体集積回路５０の内部メモリである。ある処理に必要な命令及びデータを外部メモリ３０からこのローカルメモリ１２に転写しておくことで、その後外部メモリ３０にアクセスすることなく処理を実行できる点で後述のキャッシュメモリ１３と異なる。デバッグ処理に必要な命令及びデータはこのローカルメモリ１２に格納される。
【００３１】
キャッシュメモリ１３は、外部メモリ３０に格納された情報の一部を格納することで、外部メモリ３０へのアクセスを減らし、処理の高速化を図るためのメモリである。なお、このキャッシュメモリ１３は命令キャッシュ及びデータキャッシュを含む。
【００３２】
メモリ制御回路１４はプロセッサ１１の要求に応じてローカルメモリ１２及びキャッシュメモリ１３にアクセスする。また、キャッシュヒットミスが発生した場合には、外部メモリ３０から所望の情報をリードするよう要求するための外部情報読込み要求信号を後述のバスアクセス制御回路１５に送信する。
【００３３】
バスアクセス制御回路１５は、メモリ制御回路１４から外部情報読込み要求信号（外部メモリ３０へのアクセス要求）を受けると、割り込み制御回路１６に割り込み要求信号を送信し、グローバルバス２０を介して外部メモリ３０から所望の情報をリードして、その情報をキャッシュメモリ１３にコピーする。また、外部メモリ３０からの読み込みが完了すると、割り込み制御回路１６に割り込み要求信号を送信する。
【００３４】
割り込み制御回路１６は、バスアクセス制御回路１５から割り込み要求信号を受信すると、プロセッサ１１に通知する。なお、この割り込み制御回路１６はバス制御回路１５以外の構成要素からの割り込み要求も受け付けるように構成してもよい。
【００３５】
プロセッサ１１は、割り込み制御回路１６経由でメモリ制御回路１４の発した割り込み要求信号を受信すると、デバッグ対象処理からデバッグ処理に実行する処理を切替える。また、このプロセッサ１１はデバッグ端末と通信するための通信モジュール（図示せず）として、例えばＵＡＲＴを有し、デバッグ処理により生成されたログを外部のデバッグ端末に送信することができる。なお、この通信モジュールは、プロセッサ１１の外部にあって、半導体集積回路５０内の構成要素を結ぶローカルバスによってプロセッサ１１と接続されたものであってもよい。
【００３６】
第２の実施形態の動作も図２に示される。即ち、第２の実施形態においても、図２を用いて第１の実施形態で説明したように、処理Ａの実行途中で、キャッシュヒットミスが発生することで生じるバスアクセス期間にデバッグ処理（処理Ｂ）を行う。以下、詳細を説明する。
【００３７】
処理Ａの途中でキャッシュヒットミスが発生すると、外部メモリ３０にアクセスする必要が生じる。外部メモリ３０をリードする間、プロセッサ１１はアイドル状態となる。このアイドル状態の空き時間を利用して処理Ｂを行う。
【００３８】
プロセッサ１１がキャッシュヒットミスによる割り込み要求を受けると、プロセッサ１１は処理Ａを中断し、処理Ｂの実行を開始する。バスアクセス制御回路１５は、前述のように外部メモリ３０から所望のデータのリード処理を行う。バスアクセス期間は、前述のように、予め判明している値である。
【００３９】
また、プロセッサ１１内に処理Ｂ専用のレジスタを設けることにより、処理Ａから処理Ｂに切替える際、処理Ａに関するデータのスタックへの退避を不要にし、切替え処理の高速化を図ってもよい。
【００４０】
次に、処理Ａ及び処理Ｂの処理内容の詳細について説明する。
【００４１】
処理Ａは、デバッグ対象処理を行うほか、デバッグポイントにおける変数の値、送受信データなどの内部情報を、必要に応じてコメントとともに、デバッグ情報としてローカルメモリ１２に格納する処理も行う。
【００４２】
処理Ｂは、デバッグ処理を行う。即ち、ローカルメモリ１２に格納されたデバッグ情報をＡＳＣＩＩ変換した後、ＵＡＲＴを用いてデバッグ端末に出力する処理を行う。前述のように、処理Ｂに必要な命令及びデータはローカルメモリ１２に格納されており、また、ＵＡＲＴモジュールは半導体集積回路５０内にあるため、処理Ｂの実行に伴うグローバルバス２０へのアクセスは発生しない。バスアクセス期間が経過して、外部メモリ３０からの読み込みが完了すると、プロセッサ１１は、割り込み制御回路１６を経由してバスアクセス制御回路１５の発した割り込み要求信号をトリガとして処理Ｂを終了し、処理Ａを再開する。前述のようにバスアクセス期間の最小値は予め判明している。よって、この値と通信モジュールの通信速度に基づいて、出力するログの情報量をバスアクセス期間に送信可能な量にする。これにより、バスアクセス期間が経過する前に処理Ｂを確実に完了させることができる。
【００４３】
したがって、本実施形態によれば、デバッグ対象処理に要する時間を変化させずにデバッグ処理を実行することができる。これにより、割り込みタイミングを変化させることなくデバッグ可能な半導体集積回路が得られる。
【図面の簡単な説明】
【００４４】
【図１】第1の実施形態に係る半導体装置の構成を示す図である。
【図２】キャッシュヒットミスが発生した際における、プロセッサとバスアクセス制御回路の処理内容を示す図である。
【図３】第２の実施形態に係る半導体装置の構成を示す図である。
【符号の説明】
【００４５】
１，１１  プロセッサ
２，１２  ローカルメモリ
３，１３  キャッシュメモリ
４，１４  メモリ制御回路
５，１５  バスアクセス制御回路
６，１６  割り込み制御回路
１０，５０  半導体集積回路
２０  グローバルバス
３０  外部メモリ
４０  ＲＯＭ
１００，２００  半導体装置
【図１】
2009271894.tif 000003
【図２】
2009271894.tif 000004
【図３】
2009271894.tif 000005