(57)【要約】【課題】  ソフトウェアの不具合によるバスマスタ間の同期制御違反に起因したバススレーブへの誤リードアクセス発生を検出できるデバック機構を提供することを目的とする。【解決手段】  バス制御装置400を監視し、任意指定された条件に該当するライトアクセスがライトバッファ401，402上に存在する期間中に、同条件のリードアクセスが発生したことを検出可能とする検出器として、ダーティー検出器600およびコヒーレンシエラー検出器700を設け、コヒーレンシエラー検出器700よりコヒーレンシエラー通知を受けてデバッグイベントを発生させることが可能なバスマスタ101に備わったデバッグ装置200を設ける。デバッグ装置200は、コヒーレンシエラー検出器700よりコヒーレンシエラー通知を受けてデバッグイベントを発生し、バスマスタ101の動作を停止させ、デバッグイベントをトリガとした各種デバッグ作業を行う。【選択図】      図１
2006309276.tif 000002
【特許請求の範囲】
【請求項１】
共通のバススレーブを複数のバスマスタが共有するシステムにおけるデバッグ機構であって、
前記複数のバスマスタをサポートし、各バスマスタから要求されたライトアクセスを受理するとライトバッファにその内容を登録し、前記バススレーブへのアクセス完了を待たずに各バスマスタに対してアクセス完了を通知する突き放し制御、および複数のバスマスタ間のバスアクセス実行順序を保証しないアクセスオーダー制御を行うバス制御装置と、
デバッグ対象とするバスアクセスの条件を指定する指定するデバッグレジスタと、
前記バス制御装置の動作を常時監視し、前記デバッグレジスタで指定された条件と一致するライトアクセスが前記ライトバッファに登録されてから前記バススレーブへアクセス完了するまでのバスマスタ・スレーブ間の状態不一致期間を検出し通知するダーティー検出器と、
前記ダーティー検出器より受ける状態不一致期間検出通知をデバッグイベント検出における論理積条件として扱うことが可能なバスマスタ側に備わったデバッグ装置
を設け、
前記デバッグ装置を備えたバスマスタにおいて、前記状態不一致期間中に、前記デバッグ装置にて任意指定された動作条件が成立した場合に発生するデバッグイベントを用いてバスマスタの動作を停止させること
を特徴とするデバッグ機構。
【請求項２】
前記デバッグ装置を備えたバスマスタにおいて、前記状態不一致期間中に、任意指定されたバスマスタ動作条件が成立してデバッグイベントが発生したことを、前記デバッグ装置が出力するバスマスタの動作トレース情報に加えること
を特徴とする請求項１に記載のデバッグ機構。
【請求項３】
共通のバススレーブを複数のバスマスタが共有するシステムにおけるデバッグ機構であって、
前記複数のバスマスタをサポートし、各バスマスタから要求されたライトアクセスを受理するとライトバッファにその内容を登録し、前記バススレーブへのアクセス完了を待たずに各バスマスタに対してアクセス完了を通知する突き放し制御、および複数のバスマスタ間のバスアクセス実行順序を保証しないアクセスオーダー制御を行うバス制御装置と、
デバッグ対象とするバスアクセスの条件を指定する指定するデバッグレジスタと、
前記バス制御装置の動作を常時監視し、前記デバッグレジスタで指定された条件と一致するライトアクセスが前記ライトバッファに登録されてから前記スレーブデバイスへアクセス完了するまでのバスマスタ・スレーブ間の状態不一致期間を検出し通知するダーティー検出器と、
前記バス制御装置の動作を常時監視し、前記デバッグレジスタで任意指定された条件と一致するリードアクセス要求を検出し、その検出結果と前記ダーティー検出器より得た状態不一致期間検出通知を用いて前記デバッグレジスタで任意指定されたバススレーブに対して状態不一致期間中にリードアクセスが行われたことを、リードアクセスを要求したバスマスタに対して通知するコヒーレンシエラー検出器と、
前記コヒーレンシエラー検出器よりコヒーレンシエラー通知を受けてデバッグイベントを発生させることが可能なバスマスタ側に備わったデバッグ装置
を設け、
前記コヒーレンシエラー検出器よりコヒーレンシエラー通知を受けて発生したデバッグイベントを用いて、前記デバッグ装置が前記バスマスタの動作を停止させること
を特徴とするデバッグ機構。
【請求項４】
前記コヒーレンシエラー検出器よりコヒーレンシエラー通知を受けてデバッグイベントが発生したことを、前記デバッグ装置が出力するバスマスタの動作トレース情報に加えること
を特徴とする請求項３に記載のデバッグ機構。
【請求項５】
前記バスマスタを、割込み発生機構を備えたプロセッサ型のバスマスタにより構成し、
前記コヒーレンシエラー検出器のコヒーレンシエラー通知を、前記バスマスタに対して割込み要求として与えることにより、コヒーレンシエラー検出時にバスマスタ上のソフトウェア動作をフックすること
を特徴とする請求項３に記載のデバッグ機構。
【請求項６】
前記バスマスタを、デバッグ装置も割込み発生機構も備えないバスマスタにより構成し、
前記バスマスタを制御する制御マスタを設け、
前記コヒーレンシエラー検出器のコヒーレンシエラー通知を、前記バスマスタに対してバスプロトコル上で規定されたエラー通知手段として与えることにより、前記バスマスタ上の状態レジスタもしくは状態信号へコヒーレンシエラー発生状態を反映し、これを参照する前記制御マスタにてコヒーレンシエラー発生を認識すること
を特徴とする請求項３に記載のデバッグ機構。
【請求項７】
請求項３に記載のデバッグ機構のデバッグレジスタであって、
前記ダーティー検出器および前記コヒーレンシ検出器に対して与える条件として前記バススレーブのアドレス条件を指定するレジスタを有し、前記ダーティー検出器に対して与える条件としてライトアクセス検出対象バスマスタを指定するレジスタを有し、前記コヒーレンシ検出器に対して与える条件としてリードアクセス検出バスマスタを指定するレジスタを有すること
を特徴とするデバッグレジスタ。
【請求項８】
前記ダーティー検出器による状態不一致期間検出結果の通知をどのバスマスタに対して出力するかを指定するレジスタを有すること
を特徴とする請求項７に記載のデバッグレジスタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグ機構、特に複数のバスマスタを備えたシステムの動作をデバッグする際に用いられる解析技術に関するものである。
【背景技術】
【０００２】
近年のシステムＬＳＩでは複数のバスマスタが１つのＬＳＩ上に集積されることが多く、共通のバススレーブ（例えば、メモリ）を複数のバスマスタが共有することが増えている。このことから各バスマスタの動作性能は勿論のことながらシステム全体の性能向上にはバスアクセスの高性能化が必須となっている。
【０００３】
その一手段として、特許文献１に記載されている、ライトアクセスに対する突き放し制御や、アクセス要求発生順序とバスアクセスの実行順序の一貫性を異バスマスタ間では保証しないバスアクセスのアウトオブオーダー制御が広く用いられている。これに伴って、システム仕様として共通のバススレーブを複数のバスマスタ間で共有する場合にはアウトオブオーダーの関係にあるバスマスタ間の同期を何らかの形で保証する必要が生じるのだが、この同期保証はソフトウェア処理にて実現する傾向がある。
【特許文献１】特許第３０２７４３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のソフトウェア開発環境では特定の単一バスマスタに特化したデバッグに対応したものしか存在せず、他のバスマスタ等のシステム動作を含めたデバッグするための機能に乏しくデバッグ作業そのものが極めて困難であった。
【０００５】
そこで、本発明は、従来のソフトウェア開発環境に欠けている複数のバスマスタ間動作を考慮したデバッグを可能にすることに主眼を置き、ソフトウェアの不具合にて発生し得るバスマスタ間の同期制御違反に起因した、バススレーブへの誤リードアクセス発生を検出可能な手段を用意することでシステムＬＳＩにおけるソフトウェア開発の容易性向上および開発期間短縮効果を得ることができるデバック機構を提供することを目的としたものである。
【課題を解決するための手段】
【０００６】
この目的を達成するために、本発明のデバッグ機構は、複数のバスマスタが同じバススレーブを共有するシステムにおけるデバッグ機構であって、
複数のバスマスタおよびバススレーブを扱うことが可能であり、かつライトアクセスの突き放し制御およびバスマスタ間のアウトオブオーダー制御を行うバス制御装置と、デバッグ対象とするバスアクセスの各種条件を指定するデバッグレジスタと、前記バス制御装置の動作を常時監視し、前記デバッグレジスタにて指定された条件に該当するライトアクセス要求の発生からバススレーブへのライト完了までの状態不一致期間（ダーティー期間）を検出するダーティー検出器と、前記ダーティー検出器より受けるダーティー期間検出通知をデバッグイベント検出における論理積条件として扱うこと、あるいはトレース情報として履歴を残すことが可能なバスマスタ側に備わったデバッグ装置を設け、
前記デバッグ装置を備えたバスマスタにおいて、前記ダーティー期間中に、前記デバッグ装置にて任意指定された動作条件が成立した場合に発生するデバッグイベントを用いて動作を停止させるか、あるいはダーティー期間検出通知をトレース情報として履歴を残すことを特徴とする。
【０００７】
上記構成によれば、バスマスタからのライトアクセス要求が行われた際に前記ダーティー検出器によって前記デバッグレジスタにて指定された条件との比較を行い、その比較結果が一致した場合、ダーティー期間が発生したことを前記デバッグレジスタにて指定されたバスマスタに対して通知する。また前記ダーティー検出器は、並行して各バススレーブへのライトアクセス完了を監視し、ダーティー期間を検出したライトアクセス要求がバススレーブに対して実行されライトバッファ上から無くなればダーティー期間の通知を取り下げる。前記ダーティー期間検出通知を受けたバスマスタにおいては、備えられたデバッグ装置を用いることにより、ダーティー期間中に任意のバスマスタ動作条件が成立した場合に動作を停止させるか、トレース情報として履歴を残すことでバスマスタ間の同期制御違反を発見することが容易に可能となる。
【０００８】
また本発明は、さらにバス制御装置の動作を常時監視し、前記ダーティー検出器によるダーティー期間検出中に前記デバッグレジスタにて指定された条件に該当するリードアクセス要求があったことを検出するコヒーレンシエラー検出器を加え、前記コヒーレンシエラー検出器よりコヒーレンシエラー通知を受けてデバッグイベントを発生させることが可能なバスマスタ側に備わったデバッグ装置を設け、前記コヒーレンシエラー検出器よりコヒーレンシエラー通知を受けて発生したデバッグイベントを用いて、前記デバッグ装置にてバスマスタの動作を停止させること、あるいはコヒーレンシエラー通知をトレース情報として履歴を残すことを特徴とする。
【０００９】
上記構成によれば、バスマスタからのライトアクセス要求が行われた際に前記ダーティー検出器によって前記デバッグレジスタにて指定された条件との比較を行い、その比較結果が一致した場合、ダーティー期間が発生したことを前記コヒーレンシエラー検出器に対して通知する。また、前記コヒーレンシエラー検出器は前記デバッグレジスタで指定された条件と一致するリードアクセス要求を検出した際に、前記ダーティー検出器によるダーティー期間検出通知を参照しダーティー期間中であった場合にコヒーレンシエラー通知をリードアクセス要求を行ったバスマスタに対して通知する。前記コヒーレンシエラー通知を受けた際にデバッグ装置を備えるバスマスタの動作を停止させるか、トレース情報として履歴を残すことでバスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行を発見することが容易に可能となる。
【００１０】
また本発明は、前記バスマスタを、割込み発生機構を備えたプロセッサ型のバスマスタにより構成し、前記コヒーレンシエラー検出器のコヒーレンシエラー通知を、前記バスマスタに対して割込み要求として与えることにより、コヒーレンシエラー検出時にバスマスタ上のソフトウェア動作をフックすることを特徴とする。
【００１１】
上記構成によれば、割込み発生機構にてコヒーレンシエラー通知を受けて割込みを発生させ、バスマスタ上のソフトウェア動作をフックすることにより、バスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行を発見することが同様に可能となる。
【００１２】
また本発明は、バスマスタを、デバッグ装置も割込み発生機構も備えないバスマスタにより構成し、前記バスマスタを制御する制御マスタを設け、前記コヒーレンシエラー検出器のコヒーレンシエラー通知を、前記バスマスタに対してバスプロトコル上で規定されたエラー通知手段として与えることにより、前記バスマスタ上の状態レジスタもしくは状態信号へコヒーレンシエラー発生状態を反映し、これを参照する前記制御マスタにてコヒーレンシエラー発生を認識することを特徴とする。
【００１３】
上記構成によれば、割込み発生機構もデバッグ装置も備えず他の制御マスタによって制御を受けるバスマスタでは、コヒーレンシエラー通知を受けたことを制御マスタが検出可能な形式で保持することで制御マスタ側にてバスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行を発見することが同様に可能となる。
【発明の効果】
【００１４】
本発明のデバック機構は、上記構成を有し、従来のソフトウェア開発環境では発見することすら容易ではなかったシステムレベルの不具合動作の検出が容易になることによって、システムＬＳＩにおけるソフトウェア開発効率を向上させることができ、システムＬＳＩにおけるソフトウェア開発に必要とされる時間を短縮できる、という効果を有している。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を、図面を参照しながら説明する。
図１は本発明の実施の形態におけるデバッグ機構の全体構成図である。
図１において、１００は第１バスマスタ、１０１はデバッグ装置２００を備える第２バスマスタ、１０２は割込み発生機構３００を備える第３バスマスタ、１０３は他の制御マスタ（図示せず）によって制御を受ける第４バスマスタである。また４００はバス制御装置、５００はデバッグレジスタ、６００はダーティー検出器、７００はコヒーレンシエラー検出器、８００，８０１はバススレーブである。これら構成により、共通のバススレーブを複数のバスマスタが共有するシステムとなっている。
【００１６】
前記第２バスマスタ１０１内にあるデバッグ装置２００は、検出したデバッグイベントに起因してバスマスタ１０１の実行動作を停止させるブレーク機能と、バスマスタ１０１の実行履歴情報中にデバッグイベント検出通知を混入させるトレース機能を備え、デバッグイベント検出の際にバスマスタ１０１動作の任意条件に加えて、後述するダーティー期間通知６０２の通知が行われていることを論理積条件とし、また後述するコヒーレンシエラー通知７０１を受けてデバッグイベントを発生させてバスマスタ１０１の動作を停止させる機能を有し、デバッグイベントが発生したことを、出力するバスマスタの動作トレース情報に加える（トレース情報に履歴を残す）機能を有している。なお、デバッグイベントが発生したことを、出力するバスマスタの動作トレース情報に加える機能は、必ずしも必要としない。
【００１７】
前記第３バスマスタ１０２内にある割込み発生機構３００は、後述するコヒーレンシエラー通知７０２を受けてバスマスタ１０２に対して割込みを発生させ動作をフックする機能を有している。
【００１８】
また割込み発生機構もデバッグ装置も備えず他の制御マスタによって制御を受ける第４バスマスタ１０３では、後述するコヒーレンシエラー通知を受けると、以降のバスアクセス実行を中止すると同時に、何らかの手段で、例えば、バスマスタ１０３上の状態レジスタもしくは状態信号として反映して（コヒーレンシエラー発生状態を反映して）、制御マスタに対してエラー発生を通知する。これを参照する前記制御マスタは、コヒーレンシエラー発生を検出可能な形式で保持する。これにより、バスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行が発見される。
［バス制御装置］
バス制御装置４００は、ライトバッファ４０１，４０２と、４つのマスタＩＦ４０５と、アクセス調停器４０６と、スレーブＩＦ４０７，４０８と、ライトバッファ制御器４２１，４２２から構成されている。
【００１９】
４つのマスタＩＦ４０５はそれぞれ、各バスマスタ１００，１０１，１０２，１０３毎に規定されたバスプロトコルにてこれらバスマスタ１００，１０１，１０２，１０３とのインターフェースを担う。また第４バスマスタ１０３のマスタＩＦ４０５は、後述するコヒーレンシエラー検出器７００のコヒーレンシエラー通知７０３を、第４バスマスタ１０３に対してバスプロトコル上で規定されたエラー通知として与える。
【００２０】
前記スレーブＩＦ４０７，４０８はそれぞれ、各バススレーブ８００，８０１毎に規定されたバスプロトコルにてバススレーブとのインターフェースを担う。またスレーブＩＦ４０７，４０８はそれぞれ、ライトバッファ４０１，４０２に記憶されたライトアクセス内容に基づき、バススレーブ８００，８０１へのライトアクセスを実行し、バススレーブ８００，８０１へのライトアクセスが完了した際に、ライトアクセス完了通知４１５，４１６を、各ライトバッファ制御器４２１，４２２およびダーティー検出器６００へ出力する。
【００２１】
また前記ライトバッファ４０１，４０２はそれぞれ、各バススレーブ８００，８０１毎に用意されたＦＩＦＯ方式のバッファである。
前記ライトバッファ制御器４２１，４２２はそれぞれ、各ライトバッファ４０１，４０２毎に用意され、アクセス調停器４０６より入力するライトアクセスの内容をライトバッファ４０１，４０２にバッファし、ライトアクセス完了通知４１５，４１６によりライトバッファ４０１，４０２の内容をＦＩＦＯ方式で、スレーブＩＦ４０７，４０８へ出力する。
【００２２】
前記アクセス調停器４０６は、各マスタＩＦ４０５より通知されるバススレーブ８００，８０１へのバスアクセス要求を、バスマスタ間のアクセス順序は保証しないアクセスオーダー制御の下で調停し、調停したバスアクセス要求がライトアクセスのときは、その内容をライトバッファ制御器４２１，４２２へ出力し、調停したバスアクセス要求がリードアクセスのときは、その内容をスレーブＩＦ４０７，４０８へ出力する。またアクセス調停器４０６は、ライトアクセスを受理した際にその内容をライト情報通知４０３によりダーティー検出器６００に対して通知し、またリードアクセスを受理した際にその内容をリード情報通知４０４によりコヒーレンシエラー検出器７００に対して通知する。
【００２３】
前記ライト情報通知４０３は、図２に示すように、ライトアドレス情報４０９、ライト要求マスタ情報４１０、ライトバッファに対するライトアクセス登録時のライトバッファ登録段数情報４１１、およびライト対象バススレーブ情報４１２を含んでいる。
【００２４】
またリード情報通知４０４は、図３に示すように、リードアドレス情報４１３およびリード要求マスタ情報４１４を含んでいる。
［デバッグレジスタ］
デバッグレジスタ５００は、図２および図３に示すように、ダーティー検出器６００およびコヒーレンシエラー検出器７００にて検出するバスアクセスの条件を指定するデバッグレジスタであり、アドレス指定レジスタ５０１、ライト検出マスタ指定レジスタ５０２、リード検出マスタ指定レジスタ５０３、およびダーティー通知マスタ指定レジスタ５０４から構成されている。
【００２５】
アドレス指定レジスタ５０１は、検出対象とするアドレス空間を指定するレジスタ、すなわちダーティー検出器６００およびコヒーレンシ検出器７００に対して与える条件としてバススレーブ８０１，８０２のアドレス条件を指定するレジスタである。
【００２６】
またライト検出マスタ指定レジスタ５０２は、ライトアクセスを検出する際に、ダーティー検出器６００に対して与える条件としてライトアクセス検出対象バスマスタを指定するレジスタである。
【００２７】
またリード検出マスタ指定レジスタ５０３は、リードアクセスを検出する際に、コヒーレンシ検出器７００に対して与える条件としてリードアクセス検出バスマスタを指定するレジスタである。
【００２８】
またダーティー通知マスタ指定レジスタ５０４は、ダーティー検出器６００にて検出されたダーティー期間（後述する）検出結果の通知をどのバスマスタに対して出力するかを指定するレジスタである。
［ダーティー検出器］
ダーティー検出器６００は、バス制御装置４００の動作を常時監視し、デバッグレジスタ５００で指定された条件と一致するライトアクセスがライトバッファ４０１，４０２に登録されてからバススレーブ（スレーブデバイス）８００，８０１へアクセス完了するまでのバスマスタ・スレーブ間の状態不一致期間（以降、ダーティー期間と称する）を検出し通知する検出器であり、ライト情報通知４０３とデバッグレジスタ５００の内容を比較し、一致する期間中、コヒーレンシエラー検出器７００およびバスマスタ側のデバッグ装置２００に対してダーティー検出通知６０１，６０２を出力する構成を持つ。この詳細を図２を用いて説明する。図２では、第１バスマスタ１００と、デバッグ装置２００を備える第２バスマスタ１０１を対象のバスマスタとしている。
【００２９】
ダーティー検出器６００は、ライトアドレス比較器６０３と、ライトマスタ比較器６０４と、ライトアクセス完了検出部６０５と、ライトカウンタ部６０６と、ライトバッファエミュレーション部６０７と、ダーティー検出部６０８と、ダーティー通知部６０９から構成されている。
【００３０】
ライトアドレス比較器６０３は、ライトアドレス情報４０９とアドレス指定レジスタ５０１の内容（バススレーブ８０１，８０２のアドレス条件）を比較し、一致すると一致信号を出力する。
【００３１】
またライトマスタ比較器６０４は、ライト要求マスタ情報４１０ライト検出マスタ指定レジスタ５０２の内容（ライトアクセス検出対象バスマスタ）を比較し、一致すると一致信号を出力する。
【００３２】
またライトアクセス完了検出部６０５は、ライト対象バススレーブ情報４１２の内容から、スレーブＩＦ４０７から出力されるライトアクセス完了通知４１５、またはスレーブＩＦ４０８から出力されるライトアクセス完了通知４１６を選択する。
【００３３】
またライトカウンタ部６０６は、ライトバッファ登録段数情報４１１の内容を取り込み、ライトアクセス完了検出部６０５の検出通知毎に減少するダウンカウンタ動作をする。
またライトバッファエミュレーション部６０７は、ライトカウンタ部６０６の値が零以外であるか否かによって、ライトバッファ４０１，４０２上に該当ライトアクセスが存在することを検出し、検出すると、ライトアクセス存在検出信号を出力する。
【００３４】
またダーティー検出部６０８は、ライトアドレス比較器６０３の一致信号、ライトマスタ比較器６０４の一致信号およびライトバッファエミュレーション部６０７のライトアクセス存在検出信号が全てオンのとき、ダーティー期間として判断し、その結果を出力する。
【００３５】
またダーティー通知部６０９は、ダーティー通知マスタ指定レジスタ５０４にて指定されたバスマスタに対して、ダーティー検出部６０８の結果を通知する。
［コヒーレンシエラー検出器７００］
コヒーレンシエラー検出器７００は、バス制御装置４００の動作を常時監視し、デバッグレジスタ５００で任意指定された条件と一致するリードアクセス要求を検出し、その検出結果とダーティー検出器６００より入力したダーティー期間検出通知６０１を用いてデバッグレジスタ５００で任意指定されたメモリに対してダーティー期間中にリードアクセスが行われたことを、リードアクセスを要求したバスマスタに対して通知する検出器であり、リード情報通知４０４とデバッグレジスタ５００の内容が一致し、かつダーティー検出通知６０１が通知されている場合に、リード情報通知４０４の内容に基づき、リードアクセス要求を行ったバスマスタに対してコヒーレンシエラー通知７０１，７０２および７０３を出力する構成を持つ。この詳細を図３を用いて説明する。
【００３６】
コヒーレンシエラー検出器７００は、リードアドレス比較器７０４と、リードマスタ比較器７０５と、コヒーレンシエラー検出部７０６と、コヒーレンシエラー通知部７０７，７０８，７０９から構成されている。
【００３７】
リードアドレス比較器７０４は、アクセス調停器４０６から出力されるリード情報通知４０４のリードアドレス情報４１３と、アドレス指定レジスタ５０１により指定されるアドレス空間（バススレーブ８０１，８０２のアドレス条件）を比較し、一致すると一致信号を出力する。
【００３８】
リードマスタ比較器７０５は、アクセス調停器４０６より出力されるリード情報通知４０４のリード要求マスタ情報４１４と、リード検出マスタ指定レジスタ５０３により特定されるリードアクセス検出バスマスタを比較し、一致すると一致信号を出力する。
【００３９】
コヒーレンシエラー検出部７０６は、リードアドレス比較器７０４から出力される一致信号と、リードマスタ比較器７０５から出力される一致信号と、ダーティー検出器６００から出力されるダーティー検出通知６０１が、全て真であれば、コヒーレンシエラーと判断し、その結果を検出する。
【００４０】
コヒーレンシエラー通知部７０７，７０８，７０９はそれぞれ、リード情報通知４０４のリード要求マスタ情報４１４の内容に基づき、コヒーレンシエラー検出部７０６の結果として、バスマスタ１０２のデバック装置２００へコヒーレンシエラー通知７０１を、またバスマスタ１０３の割込み発生機構３００へコヒーレンシエラー通知７０２を、また第４マスタＩＦ４０５へコヒーレンシエラー通知７０３を出力する。
［作用］
次に、上記構成による作用を説明する。
【００４１】
バス制御装置４００は、バスマスタ１００，１０１，１０２および１０３からのバスアクセス要求を受けアクセス調停器４０６にて受理する際に、アクセス対象となるバススレーブ８０１，８０２の空き状況およびバスマスタ間の優先度から受理するバスアクセス要求を決定する。この動作によって同一バススレーブ８００もしくは８０１に対するアクセス要求がバス制御装置４００に対してバスマスタ１００，１０１，１０２および１０３から連なって発行された場合、バススレーブ８００もしくは８０１に対するバスアクセス実行順序は必ずしもバス制御装置４００へのバスアクセス要求順とは一致しないアクセスオーダー制御をバス制御装置４００は行うことになる。
【００４２】
またバス制御装置４００は、バススレーブ８００もしくは８０１に対するライトアクセス要求をアクセス調停器４０６で受理した際に、各バススレーブ８００，８０１毎に用意されているライトバッファ４０１もしくは４０２に登録すると同時にバスマスタ１００，１０１，１０２および１０３に対してアクセス完了を通知する突き放し制御を行う。ライトバッファ４０１および４０２はＦＩＦＯ方式になっており、登録されている最古のライトアクセス要求から古い順にスレーブＩＦ４０７もしくは４０８に対して発行され、バススレーブ８００もしくは８０１へのライトアクセスが実行される。
【００４３】
ダーティー検出器６００は、バス制御装置４００から出力されるライトアドレス情報４０９、ライト要求マスタ情報４１０、ライトバッファ登録段数情報４１１およびライト対象バススレーブ情報４１２からなるライト情報通知４０３と、各スレーブＩＦ４０７および４０８から出力されるライトアクセス完了通知４１５および４１６を受けて、デバッグレジスタ５００にて指定された条件に該当するライトアクセス要求がバス制御装置４００内のライトバッファ４０１もしくは４０２上に存在するダーティー期間を検出する。その詳細動作を次に記載する。
【００４４】
ライトアドレス比較器６０３にて得られるアドレス指定レジスタ５０１のバススレーブ８０１，８０２のアドレス条件とライトアドレス情報４０９の一致検出結果と、ライトマスタ比較器６０３にて得られるライト検出マスタ指定レジスタ５０２のライトアクセス検出バスマスタとライト要求マスタ情報４１０の一致検出結果と、ライトバッファ登録段数情報４１１にて通知されたライトバッファ４０１もしくは４０２の登録段数をライトカウンタ６０６に記憶し、ライト対象バススレーブ情報４１２の内容に従ってライトアクセス完了検出部６０５にてライトアクセス完了通知４１５もしくは４１６を選択したライトアクセス完了通知を受ける度にライトカウンタ６０６の値をデクリメントしながらライトバッファエミュレーション部６０７においてライトカウンタ６０６の値が零であるか否かによってライトバッファ４０１もしくは４０２上にデバッグレジスタ５００で指定された条件に該当するライトアクセス要求が存在することを検出した結果の３条件からダーティー検出部６０８においてダーティー期間を検出する。このダーティー検出部６０８によるダーティー検出結果をコヒーレンシエラー検出器７００においてコヒーレンシエラー検出条件として利用されるためにダーティー期間通知６０１として出力する他、ダーティー通知マスタ指定レジスタ５０４の内容に従ってダーティー通知部６０９を通じてデバッグ装置２００を備えるバスマスタ１０１へダーティー期間通知６０２としても出力される。ライト検出マスタ指定レジスタ５０２によるライト検出マスタの絞り込みや、ダーティー通知マスタ指定レジスタ５０４によるダーティー通知マスタの絞り込みがより詳細な条件指定を可能とすることからデバッグ作業効率向上効果を得ることができる。
【００４５】
バスマスタ１０１内にあるデバッグ装置２００は、検出したデバッグイベントに起因してバスマスタ１０１の実行動作を停止させ、ダーティー期間通知６０２を受けると、この条件をバスマスタ１０１動作の任意条件に加えて（論理積条件）、特定のバススレーブ８０１もしくは８０２に対してダーティー期間中にデバッグイベントを検出し、デバッグイベントが発生したことを、出力するバスマスタの動作トレース情報に加える（トレース情報に履歴を残す）。このように、デバッグイベントを検出することにより、またトレース情報として履歴を残すことにより、バスマスタ間の同期制御違反を発見することが容易に可能となり、デバッグイベントをトリガとした各種デバッグ作業を効率的に行うことが可能な本発明のデバッグ機構の一実施形態が実現される。
【００４６】
コヒーレンシエラー検出器７００は、バス制御装置４００から出力されるリードアドレス情報４１３、リード要求マスタ情報４１４からなるリード情報通知４０４と、ダーティー検出器６００から出力されるダーティー期間通知６０１を受けて、デバッグレジスタ５００にて指定された条件に該当するライトアクセスがバス制御装置４００内のライトバッファ４０１もしくは４０２上に存在するダーティー期間中に同条件を満たすリードアクセス要求が発生したことを検出する。その詳細動作を次に記載する。
【００４７】
リードアドレス比較器７０４にて得られるリードアドレス情報４１３とアドレス指定レジスタ５０１のアドレス条件の一致検出結果と、リードマスタ比較器７０５にて得られるリード要求マスタ情報４１４とリード検出マスタ指定レジスタ５０３のリード検出対象バスマスタの一致検出結果と、ダーティー期間通知６０１の３条件からコヒーレンシエラー検出部７０６においてコヒーレンシエラーを検出する。このコヒーレンシエラー検出部７０６によるコヒーレンシエラー検出結果をリード要求マスタ情報４１４に従ってコヒーレンシエラー通知部７０７，７０８および７０９を通じてコヒーレンシエラーの検出要因となったリードアクセスを行ったバスマスタに対して通知する。リード検出マスタ指定レジスタ５０３によるリード検出マスタの絞り込みがより詳細な条件指定を可能とすることからデバッグ作業効率向上効果を得ることができる。
【００４８】
バスマスタ１０１内にあるデバッグ装置２００は、コヒーレンシエラー通知７０１を受けると、デバッグイベントを発生させてバスマスタ１０１の動作を停止させ、デバッグイベントが発生したことを、出力するバスマスタ１０１の動作トレース情報に加える（トレース情報に履歴を残す）。このように、デバッグイベントを発生させ、バスマスタ１０１の動作を停止させることにより、またトレース情報として履歴を残すことにより、ダーティー期間中にバスマスタ１０１が他のバスマスタからのライトアクセス完了を待つ同期制御を怠って誤ったリードアクセスを実行したこと（バスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行）を発見することが容易に可能となり、デバッグイベントをトリガとした各種デバッグ作業を効率的に行うことが可能な本発明のデバッグ機構の一実施形態が実現される。
【００４９】
またバスマスタ１０２内にある割込み発生機構３００は、コヒーレンシエラー通知７０２を受けてバスマスタ１０２に対して割込みを発生させる。よって、特定のバススレーブ８０１もしくは８０２に対してダーティー期間中にバスマスタ１０２が他のバスマスタからのライトアクセス完了を待つ同期制御を怠って誤ったリードアクセスを実行したこと（バスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行）を割込み発生にて検出し、その割込み発生をトリガとしたデバッグ作業を行うことが可能な本発明のデバッグ機構の一実施形態が実現される。
【００５０】
またデバッグ装置２００も割込み発生機構３００も備えず、かつ他のバスマスタからの制御を受けて動作するバスマスタ１０３は、マスタＩＦ４０５との間のバスプロトコルにおいてエラー通知が含まれている。このようなバスマスタ１０３に対してコヒーレンシエラー７０３を通知する場合は、コヒーレンシエラー通知７０１や７０２のようにバスマスタへの直接通知が不可能である。よって、このような場合にはコヒーレンシエラー通知７０３をバスマスタＩＦ４０５へ通知し、バスマスタＩＦ４０５にてバスプロトコル上のエラー通知に変換しバスマスタ１０３へエラー通知を行う。バスマスタ１０３はこのエラー通知を受けて以降のバスアクセス実行を中止すると同時に制御マスタに対して何らかの手段でエラー発生を通知する。これらを用いることにより、特定のバススレーブ８０１もしくは８０２に対してダーティー期間中にバスマスタ１０３が他のバスマスタのライトアクセス完了を待つ同期制御を怠って誤ったリードアクセスを実行したこと（バスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行）をバスマスタ１０３を制御する制御マスタ側にて間接的に検出し、そのエラー検出をトリガとしたデバッグ作業を行うことが可能な本発明のデバッグ機構の一実施形態が実現される。
【００５１】
以上のように、本実施の形態によれば、バス制御装置４００を監視し、任意指定された条件に該当するライトアクセスがライトバッファ４０１，４０２上に存在する期間中に、同条件のリードアクセスが発生したことを検出可能にすることにより、従来のソフトウェア開発環境では発見することすら容易ではなかったシステムレベルの不具合動作の検出が容易になることによって、システムＬＳＩにおけるソフトウェア開発効率を向上させることができ、このようなデバッグ機構の実現によって、システムＬＳＩにおけるソフトウェア開発に必要とされる時間を短縮できる。
【産業上の利用可能性】
【００５２】
本発明にかかるデバッグ機構は、システムＬＳＩにおけるソフトウェア開発効率を向上させることができるという効果を有し、複数のバスマスタを備えたシステムの動作をデバッグする際に用いられる解析技術として有用である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施の形態におけるデバッグ機構の全体構成図である。
【図２】同デバッグ機構のダーティー検出器の詳細構成図である。
【図３】同デバッグ機構のコヒーレンシエラー検出器の詳細構成図である。
【符号の説明】
【００５４】
１００，１０１，１０２，１０３    バスマスタ
２００    デバッグ装置
３００    割込み発生機構
４００    バス制御装置
４０１，４０２    ライトバッファ
４０３    ライト情報通知
４０４    リード情報通知
４０５    マスタＩＦ
４０６    アクセス調停器
４０７，４０８    スレーブＩＦ
４０９    ライトアドレス情報
４１０    ライト要求マスタ情報
４１１    ライトバッファ登録段数情報
４１２    ライト対象バススレーブ情報
４１３    リードアドレス情報
４１４    リード要求マスタ情報
４１５，４１６    ライトアクセス完了通知
４２１，４２２  ライトバッファ制御器
５００    デバッグレジスタ
５０１    アドレス指定レジスタ
５０２    ライト検出マスタ指定レジスタ
５０３    リード検出マスタ指定レジスタ
５０４    ダーティー通知マスタ指定レジスタ
６００    ダーティー検出器
６０１，６０２    ダーティー期間通知
６０３    ライトアドレス比較器
６０４    ライトマスタ比較器
６０５    ライトアクセス完了検出部
６０６    ライトカウンタ部
６０７    ライトバッファエミュレーション部
６０８    ダーティー検出部
６０９    ダーティー通知部
７００    コヒーレンシエラー検出器
７０１，７０２，７０３    コヒーレンシエラー通知
７０４    リードアドレス比較器
７０５    リードマスタ比較器
７０６    コヒーレンシエラー検出部
７０７，７０８，７０９    コヒーレンシエラー通知部
８００，８０１    バススレーブ
【図１】
2006309276.tif 000003
【図２】
2006309276.tif 000004
【図３】
2006309276.tif 000005