(57)【要約】  【課題】バス権がＣＰＵから他のバスマスタに移動した場合であっても、他のバスマスタの動作を確認することができ、システムを効率よくデバッグすることができるシステムデバッグ装置を提供する。  【解決手段】本発明のシステムデバッグ装置は、複数のバスマスタがＬＳＩ上に搭載され、この複数のバスマスタがバスを共用するシステムにおいて、バスを使用する権利が与えられたバスマスタを指定するためのマスタ選択情報、およびバスマスタから出力されるアドレス信号によって指定されるバススレーブを選択するためのスレーブ選択情報を含む各種情報を記録する第１手段と、バスを介して第１手段に記録された各種情報を読み出す第２手段とを備える。【選択図】図２
2005141532.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタがＬＳＩ上に搭載され、この複数のバスマスタがバスを共用するシステムにおいて、
前記バスを使用する権利が与えられた前記バスマスタを指定するためのマスタ選択情報、および前記バスマスタから出力されるアドレス信号によって指定されるバススレーブを選択するためのスレーブ選択情報を含む各種情報を記録する第１手段と、
前記バスを介して前記第１手段に記録された各種情報を読み出す第２手段とを備えることを特徴とするシステムデバッグ装置。
【請求項２】
複数のバスマスタがＬＳＩ上に搭載され、この複数のバスマスタがバスを共用するシステムにおいて、
前記バスを使用する権利が与えられた前記バスマスタを指定するためのマスタ選択情報、および前記バスマスタから出力されるアドレス信号によって指定されるバススレーブを選択するためのスレーブ選択情報を含む各種情報を記録する第１手段と、
ＪＴＡＧに対応したスキャンチェーンを介して前記第１手段に記録された各種情報を出力する第２手段とを備えることを特徴とするシステムデバッグ装置。
【請求項３】
請求項１または２に記載のシステムデバッグ装置であって、
さらに、前記第１手段への各種情報の記録の開始および終了を指定する情報を設定する第３手段と、この第３手段に設定された情報に基づいて、前記第１手段への各種情報の記録の開始および終了を制御する第４手段とを備えるシステムデバッグ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタがＬＳＩ（半導体集積回路）上に搭載され、これら複数のバスマスタが内部バスを共用するシステムのデバッグを行うシステムデバッグ装置に関するものである。
【背景技術】
【０００２】
図５は、ＣＰＵ（中央演算装置）がＬＳＩ上に搭載されたシステム（以下、ＣＰＵ搭載システムという）のデバッグ手法を表す一例の概略図である。同図に示すＣＰＵ搭載システムは、バスマスタとして、ＣＰＵ、ＤＭＡ（ダイレクトメモリアクセス）、その他のバスマスタを備え、バススレーブとして、外部メモリＩ／Ｆ（インタフェイス）、内部メモリ、その他のバススレーブを備えている。これら全てのバスマスタおよびバススレーブは内部バスを介して相互に接続され、このＣＰＵ搭載システムは外部Ｉ／Ｆを介して外部メモリと接続されている。
【０００３】
図６は、図５に示すＣＰＵ搭載システムの内部構成を表す一例の概略図である。同図には、説明を容易にするため、バスマスタとして、ＣＰＵおよびＤＭＡが示され、バススレーブとして、Ｓｌａｖｅ１，Ｓｌａｖｅ２，Ｓｌａｖｅ３が示されている。
【０００４】
ＣＰＵおよびＤＭＡから出力されるアドレス信号、バス制御信号、およびデータ信号は、バス権を調停するバスアービタ１２から出力されるマスタ選択情報に応じてマルチプレクサＭＵＸ１から選択的に出力され、Ｓｌａｖｅ１，Ｓｌａｖｅ２，Ｓｌａｖｅ３に入力されている。また、マルチプレクサＭＵＸ１から出力されるアドレス信号は、バススレーブを選択するアドレスデコーダ１４にも入力されている。Ｓｌａｖｅ１，Ｓｌａｖｅ２，Ｓｌａｖｅ３から出力されるデータ信号は、アドレスデコーダ１４から出力されるスレーブ選択情報に応じてマルチプレクサＭＵＸ２から選択的に出力され、ＣＰＵおよびＤＭＡに入力されている。
【０００５】
図６に示すＣＰＵ搭載システムにおいて、バスマスタであるＣＰＵやＤＭＡが内部バスを使用する場合、ＣＰＵやＤＭＡからバスアービタ１２に対してバスリクエスト信号（図示省略）が送信される。
【０００６】
バスアービタ１２では、バスリクエスト信号を受信すると、その時点におけるバス権（内部バスを使用する権利）の優先順位に従って、バスリクエスト信号を送信してきたバスマスタの中から最も優先順位の高いバスマスタが選択され、選択されたバスマスタに対して、バス権が与えられたことを表すグラント信号（図示省略）が送信される。同時に、バスアービタ１２からマルチプレクサＭＵＸ１に対して、選択されたバスマスタを指定するためのマスタ選択情報が与えられる。
【０００７】
グラント信号を受信したバスマスタから出力されるアドレス信号、バス制御信号、およびデータ信号は、バスアービタ１２から出力されるマスタ選択情報に応じて、マルチプレクサＭＵＸ１から選択的に出力される。
【０００８】
マルチプレクサＭＵＸ１から出力されるアドレス信号は、アドレスデコーダ１４によってデコードされ、このアドレス信号によって指定されるバススレーブを選択するためのスレーブ選択信号（図示省略）がＳｌａｖｅ１，Ｓｌａｖｅ２，Ｓｌａｖｅ３に送信される。同時に、アドレスデコーダ１４からマルチプレクサＭＵＸ２に対して、選択されたバススレーブを指定するためのスレーブ選択情報が与えられる。
【０００９】
Ｓｌａｖｅ１，Ｓｌａｖｅ２，Ｓｌａｖｅ３は、スレーブ選択信号を受信し、自分自身が選択されている場合、マルチプレクサＭＵＸ１から出力されるアドレス信号、バス制御信号（書き込み信号）に応じて、データ信号が書き込まれる。また、アドレス信号、およびバス制御信号（読み出し信号）に応じて、選択されたスレーブから読み出されるデータ信号は、アドレスデコーダ１４から出力されるスレーブ選択情報に応じて、マルチプレクサＭＵＸ２から選択的に出力される。
【００１０】
そして、マルチプレクサＭＵＸ２から出力されるデータ信号は、前述のグラント信号を受信したバスマスタによって受信される。
【００１１】
上記のＣＰＵ搭載システムのデバッグは、図５に示すように、このＣＰＵ搭載システムがＪＴＡＧ（Joint Test Action Group）に対応したデバイスである場合、通常、ＣＰＵとＩＣＥ（In-Circuit Emulator）との間をデバッグＩ／Ｆを介して数本の制御線で接続し、さらにＩＣＥとＰＣ（Personal Computer）との間を接続して、ＰＣ上で動作するデバッガ（デバッグ用のソフトウェアプログラム）を用いて、ＣＰＵの動作を制御しつつ、その状態をモニタすることにより行われる。
【００１２】
この場合、通常、ＰＣ上で動作するデバッガから、ブレークポイントと呼ばれる停止アドレスの情報がデバッグ対象のユーザソフトウェア内に配置される。ＣＰＵがブレークポイントのアドレスに到達すると、ＩＣＥから制御線を操作してＣＰＵの動作を停止するとともに、必要に応じて、ＣＰＵの内部レジスタ、内部バスに接続されたレジスタやメモリの内部の状態をＰＣ側に読み出すことによって、デバッグ担当者はハードウェアの状態を把握しつつ、この情報に基づいてデバッグを進める。
【００１３】
しかし、従来のデバッグ方式では、ＣＰＵを含む複数のバスマスタがＬＳＩ上に搭載されたシステムにおいて、バス権がＣＰＵから他のバスマスタに移動すると、ＣＰＵからは他のバスマスタの動作が全くモニタできず、デバッグ不可能になるという問題があった。具体的には、バス権が他のバスマスタに移動したのか、移動した場合、どのバスマスタがどのスレーブに対して、どのようなサイズで、どのような時間の長さでデータの転送を行ったかなどの情報をＣＰＵは全く把握することができない。
【００１４】
なお、本発明に関わる従来技術としては、例えば特許文献１、２等を挙げることができる。
【００１５】
特許文献１は、マルチプログラミングを実現する為のオペレーティングシステムの処理を司るマルチプログラミング指向ＣＰＵにおいて、システムコール命令実行時にマルチプログラミングシステムに関する情報をＣＰＵの外部データバス上に出力し、かつ外部データバス上に情報が出力されたことをＣＰＵの外部に対して通知する為の手段を備えるものである。
【００１６】
特許文献２は、伝送路を介して外部のデータ通信装置と交互通信を行う回線制御装置と、システム全体に対する入出力を行うマンマシーンインターフェース装置を有するデータ通信システムの回線モニタ方法において、回線制御装置の出力回線上の送信データおよび入力回線上の受信データをオンライン動作のためのデータ送受信制御回路とは独立して回線の入出力部分で収集し、収集した送受信データをデータ通信システム内部に格納し、格納した送受信データをマンマシンデータインタフェース装置からの指示に従い表示するものである。
【００１７】
【特許文献１】特開昭６３−１６７９４０号公報
【特許文献２】特開平５−１４４５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本発明の目的は、前記従来技術に基づく問題点を解消し、バス権がＣＰＵから他のバスマスタに移動した場合であっても、他のバスマスタの動作を確認することができ、システムを効率よくデバッグすることができるシステムデバッグ装置を提供することにある。
【課題を解決するための手段】
【００１９】
上記目的を達成するために、本発明は、複数のバスマスタがＬＳＩ上に搭載され、この複数のバスマスタがバスを共用するシステムにおいて、
前記バスを使用する権利が与えられた前記バスマスタを指定するためのマスタ選択情報、および前記バスマスタから出力されるアドレス信号によって指定されるバススレーブを選択するためのスレーブ選択情報を含む各種情報を記録する第１手段と、
前記バスを介して前記第１手段に記録された各種情報を読み出す第２手段とを備えることを特徴とするシステムデバッグ装置を提供するものである。
【００２０】
また、本発明は、複数のバスマスタがＬＳＩ上に搭載され、この複数のバスマスタがバスを共用するシステムにおいて、
前記バスを使用する権利が与えられた前記バスマスタを指定するためのマスタ選択情報、および前記バスマスタから出力されるアドレス信号によって指定されるバススレーブを選択するためのスレーブ選択情報を含む各種情報を記録する第１手段と、
ＪＴＡＧに対応したスキャンチェーンを介して前記第１手段に記録された各種情報を出力する第２手段とを備えることを特徴とするシステムデバッグ装置を提供する。
【００２１】
ここで、上記に記載のシステムデバッグ装置であって、
さらに、前記第１手段への各種情報の記録の開始および終了を指定する情報を設定する第３手段と、この第３手段に設定された情報に基づいて、前記第１手段への各種情報の記録の開始および終了を制御する第４手段とを備えるのが好ましい。
【発明の効果】
【００２２】
本発明のシステムデバッグ装置によれば、プログラムの実行中に、例えば初期状態から次のブレークポイントまでの間に、もしくはブレークポイントから次のブレークポイントまでの間に、バス権がＣＰＵ以外の他のバスマスタに移動したかどうか、どのバスマスタからどのバススレーブに対してアクセスしたかを知ることができる。また、必要に応じて、データの転送量や転送時間、転送スタイル等の情報を記録することによって、特定の区間のバスの占有状態を詳細に知ることができるため、バスの優先順位や各バスマスタのデータの転送量などが定量的に実時システムで把握することができ、ハードウェアとソフトウェアが適切に設計されているかどうかを確実に確認することができる。
【発明を実施するための最良の形態】
【００２３】
以下に、添付の図面に示す好適実施形態に基づいて、本発明のシステムデバッグ装置を詳細に説明する。
【００２４】
図１は、本発明のシステムデバッグ装置を適用したＣＰＵ搭載システムの内部構成を表す一実施形態の概略図である。同図に示すＣＰＵ搭載システム１０は、図６に示すＣＰＵ搭載システムに対して本発明を適用したもので、さらにバススレーブとして、本実施形態のシステムデバッグ装置となるＳｌａｖｅ４を備えている。
【００２５】
Ｓｌａｖｅ４は、Ｓｌａｖｅ１，Ｓｌａｖｅ２，Ｓｌａｖｅ３と同様、バスマスタからアクセス可能なもので、Ｓｌａｖｅ４には、マルチプレクサＭＵＸ１から出力されるアドレス信号、バス制御信号、およびデータ信号が入力され、さらにバスアービタ１２から出力されるマスタ選択情報、およびアドレスデコーダ１４から出力されるスレーブ選択情報が入力されている。また、Ｓｌａｖｅ４から出力されるデータ信号は、マルチプレクサＭＵＸ２に入力されている。
【００２６】
図２は、図１に示すシステムデバッグ装置の内部構成を表す第１の実施形態の概略図である。同図は、図１に示すＳｌａｖｅ４の内部構成を表すもので、バスアービタ１２から出力されるマスタ選択情報を記憶する第１回路１６と、同様にアドレスデコーダ１４から出力されるスレーブ選択情報を記憶する第２回路１８とを備えている。
【００２７】
第１回路１６は、コントローラ２０と、制御用レジスタおよびバスＩ／Ｆ２２と、記録用メモリまたはレジスタ２４とを備えている。
【００２８】
コントローラ２０にはバス制御信号が入力されている。また、制御用レジスタおよびバスＩ／Ｆ２２には、バスアドレスおよびバスデータ（書き込み）が入力され、制御用レジスタおよびバスＩ／Ｆ２２からはバスデータ（読み出し）が出力されている。このバスアドレス、バスデータ（書き込み）、およびバスデータ（読み出し）は、図１に示すマルチプレクサＭＵＸ１から出力されるアドレス信号およびデータ信号、ならびにＳｌａｖｅ４から出力されるデータ信号に相当するものである。
【００２９】
制御用レジスタおよびバスＩ／Ｆ２２からはスタート／ストップ命令が出力され、コントローラ２０に入力されている。コントローラ２０からは書き込み制御信号が出力され、記録用メモリまたはレジスタ２４に入力されている。記録用メモリまたはレジスタ２４には、バスアービタ１２のバス権決定回路２６から出力されるマスタ選択情報が入力され、記録用メモリまたはレジスタ２４からは、記録されたマスタ選択情報が出力され、制御用レジスタおよびバスＩ／Ｆ２２に入力されている。
【００３０】
なお、第２回路１８の構成は、記録用メモリまたはレジスタ２４に入力される信号が、マスタ選択情報ではなく、アドレスデコーダ１４のデコーダ２８から出力されるスレーブ選択情報である点を除いて第１回路１６の構成と同じであるから、同一の要素に同一の符号を付して、第２回路１８についての詳細な説明は省略する。第１回路１６と第２回路１８のコントローラ２０は相互に接続されており、互いにコントローラステータスの送受信が行われる。
【００３１】
マスタ選択情報およびスレーブ選択情報の記録を行う場合、いつから記録を開始して、いつ記録を終了するかを指示するスタート／ストップ命令を、ＣＰＵから第１回路１６および第２回路１８の制御用レジスタおよびバスＩ／Ｆ２２に直接設定する。
【００３２】
もしくは、ＣＰＵから制御用レジスタおよびバスＩ／Ｆ２２に制御情報を設定し、この制御情報に基づいてスタート／ストップ命令を生成する回路を設けてもよい。制御情報としては、例えばスタートのトリガとして、アドレスがある特定の値になった時、ある特定のバスマスタが選択された時、ある特定のデータがバス上に現れた時、ある特定のサイクルの後、今からすぐに、Ｎ個のデータを送信した後、などの条件を挙げることができる。ストップのトリガも同様である。
【００３３】
なお、スタート／ストップの条件は、例えばバスアービタ１２およびアドレスデコーダ１４の状態をモニタすることによって、それぞれ決定される場合もある。従って、マスタ選択情報およびスレーブ選択情報の記録を個別に行うことも可能であるし、両者を連動して記録することも可能である。また、第１回路１６および第２回路１８のコントローラ２０は、互いに相手の状態（コントローラステータス）を把握することによって、例えば互いに同期して、あるいは非同期に記録を行うことも可能である。
【００３４】
コントローラ２０は、制御用レジスタおよびバスＩ／Ｆ２２からのスタート／ストップ命令により記録開始の指示を受け取ると、バス制御信号を参照して書き込み制御信号を生成する。バス制御信号には、クロック信号や、有効なマスタ選択情報およびスレーブ選択情報が出力されるタイミング等の情報が含まれている。コントローラ２０は、バス制御信号を参照することによって、マスタ選択情報およびスレーブ選択情報を記録すべきタイミングを把握し、例えばアドレス信号、ライト信号等の書き込み制御信号を生成する。
【００３５】
コントローラ２０から書き込み制御信号が与えられることによって、第１回路１６および第２回路１８の記録用メモリまたはレジスタ２４には、それぞれマスタ選択情報およびスレーブ選択情報が記録される。
【００３６】
その後、コントローラ２０は、制御用レジスタおよびバスＩ／Ｆ２２からのスタート／ストップ命令により記録終了の指示を受け取ると、書き込み制御信号の生成が停止される。これにより、情報の記録が終了される。
【００３７】
情報の記録が終了した後、ＣＰＵから制御用レジスタおよびバスＩ／Ｆ２２を介して、記録用メモリまたはレジスタ２４に記録された情報が読み出され、さらにＩＣＥを介してＰＣ上のデバッガに引き渡される。これにより、デバッグ担当者は、マスタ選択情報およびスレーブ選択情報の内容を参照して、バス権がＣＰＵ以外の他のバスマスタに移動したかどうか、バス権を取得したバスマスタが何であるか、バスマスタが選択したスレーブが何であるかなどの状況を把握することができる。
【００３８】
なお、図１に示す実施形態では、本発明のシステムデバッグ装置は、バススレーブＳｌａｖｅ４としてＬＳＩ上に搭載されているが、これに限定されず、ＣＰＵから、記録用メモリまたはレジスタ２４に記憶された情報を読み出すことができればよく、例えばバスアービタ１２やアドレスデコーダ１４の内部に組み込んだり、他のバススレーブの内部に組み込んでも良い。また、本発明のシステムデバッグ装置は、ＣＰＵの内部にバスアービタ１２の機能が搭載されたシステムに対しても適用可能である。
【００３９】
また、スタート／ストップ命令を使用せず、常に所定の一定量または一定時間、情報を記録するようにしてもよい。
【００４０】
また、例えばコントローラ２０がバス制御信号に含まれるクロック信号の数をカウントする手段や、データの転送量をカウントする手段を備えることによって、データの転送に要した時間やその転送量等の情報を生成し記録することができる。また、これ以外にも、例えばデータの転送スタイル（バーストタイプ、データタイプ等）の情報を含む各種の情報を記録することも可能である。これら各種の情報を記録し参照することによって、さらにデバッグ性能を向上させることができる。
【００４１】
また、図３に示すように、図２に示す第１回路１６および第２回路１８のコントローラ２０、制御用レジスタおよびバスＩ／Ｆ２２、ならびに記録用メモリまたはレジスタ２４を統合し共用してもよい。この場合、記録用メモリまたはレジスタ２４には、マスタ選択情報およびスレーブ選択情報、さらには必要に応じて上記の各種の情報が記録される。図３に示すシステムデバッグ装置は、図２に示すシステムデバッグ装置よりも、その回路規模を削減することができる。
【００４２】
また、このＣＰＵ搭載システムもしくはＣＰＵがＪＴＡＧに対応したデバイスである場合、図４に点線で示すように、システムデバッグ装置にもＪＴＡＧを適用し、このＣＰＵ搭載システムもしくはＣＰＵと同じプロトコルで動作するＪＴＡＧスキャンチェーンを構成しておけば、ＣＰＵから内部バスを介してシステムデバッグ装置をアクセスすることなく、このＪＴＡＧスキャンチェーンを利用して、制御情報の設定、記録した情報の読み出し、スタート／ストップの制御等を行うことも可能である。
【００４３】
以上、ＣＰＵを搭載したシステムを前提に説明してきたが、ＣＰＵが搭載されていない場合であっても、記憶した各種情報をチップ外に読み出す手段あるいはこの手段を有するバスマスタにより、上記と同様にシステムを効率よくデバッグすることが可能である。
【００４４】
本発明は、基本的に以上のようなものである。
以上、本発明のシステムデバッグ装置について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【図面の簡単な説明】
【００４５】
【図１】本発明のシステムデバッグ装置を適用したＣＰＵ搭載システムの内部構成を表す一実施形態の概略図である。
【図２】図１に示すシステムデバッグ装置の内部構成を表す第１の実施形態の概略図である。
【図３】図１に示すシステムデバッグ装置の内部構成を表す第２の実施形態の概略図である。
【図４】図１に示すシステムデバッグ装置の内部構成を表す第３の実施形態の概略図である。
【図５】ＣＰＵ搭載システムのデバッグ手法を表す一例の概略図である。
【図６】図５に示すＣＰＵ搭載システムの内部構成を表す一例の概略図である。
【符号の説明】
【００４６】
１０  ＣＰＵ搭載システム
１２  バスアービタ
１４  アドレスデコーダ
１６  第１回路
１８  第２回路
２０  コントローラ
２２  制御用レジスタおよびバスＩ／Ｆ
２４  記録用メモリまたはレジスタ
２６  バス権決定回路
２８  デコーダ
【図１】
2005141532.tif 000003
【図２】
2005141532.tif 000004
【図３】
2005141532.tif 000005
【図４】
2005141532.tif 000006
【図５】
2005141532.tif 000007
【図６】
2005141532.tif 000008