(57)【特許請求の範囲】
【請求項１】
プロセッサと入出力装置とがメモリを共有するコンピュータシステムにおける、前記プロセッサ、前記入出力装置及び前記メモリのインターフェイスを制御する入出力制御装置において、
前記入出力装置の前記メモリに対するダイレクトメモリアクセス（ＤＭＡ）を制御するダイレクトメモリアクセスコントローラ（ＤＭＡＣ）と、
前記プロセッサと前記ＤＭＡＣとの前記メモリへのアクセスを調停するアービタと、
前記メモリのインターフェイスを制御するメモリコントローラと、
前記ＤＭＡＣからのＤＭＡ要求に伴ってデバッグ用のアクセスアドレス情報のメモリライト要求を前記メモリコントローラに対して発行するデバッグ制御部と、
を備えていることを特徴とする入出力制御装置。
【請求項２】
前記デバッグ制御部は、前記ＤＭＡ要求がメモリリードであるときは、リード要求されたデータをリードアクセスするのに先立って、次回アクセスするアドレスを前記メモリ上にライトするように、メモリライト要求を前記メモリコントローラに対して発行する、
請求項１に記載の入出力制御装置。
【請求項３】
前記デバッグ制御部は、前記ＤＭＡ要求がメモリライトであるときは、ライト要求されたデータと次回アクセスするアドレスとを合成して、この合成後のデータのライト要求をメモリコントローラに対して発行する、
請求項１に記載の入出力制御装置。
【請求項４】
前記デバッグ制御部は、前記ＤＭＡ要求があった際に当該要求がされた前記メモリのアドレスに対するライト要求をメモリコントローラに対して発行してリードアクセスし、このアドレスのデータ領域に前記ＤＭＡＣが正常動作時にアクセスしてはならないデータ領域であることを示す所定のマーキングが記録されているときは、前記プロセッサにその旨を通知する、
請求項１〜３のいずれかの一に記載の入出力制御装置。
【請求項５】
前記デバッグ制御部は、前記ＤＭＡによるメモリライト要求があった際に当該要求がされた前記メモリのアドレスに対するライト要求をメモリコントローラに対して発行してリードアクセスし、このアドレスのデータ領域の値をメモリライト要求でライトしようとする値と比較し、両者が不一致又は一致のときに、前記プロセッサにその旨を通知する、
請求項１〜４のいずれかの一に記載の入出力制御装置。
【請求項６】
プロセッサと入出力装置とがメモリを共有するコンピュータシステムにおいて、
前記プロセッサ、前記入出力装置及び前記メモリのインターフェイスを制御する請求項１〜５の何れかの一に記載の入出力制御装置を備えていること、
を特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、入出力制御装置及びこの入出力制御装置を備えたコンピュータシステムに関する。
【０００２】
【従来の技術】
プロセッサと周辺入出力機器がメモリを共有しているシステムにおいては、周辺入出力インターフェイスやダイレクトメモリアクセスコントローラ（ＤＭＡＣ）、メモリコントローラ、プロセッサインターフェイスを、１つのＬＳＩに実装して１つの入出力制御装置とするのが一般的である。
【０００３】
このような入出力制御装置のＤＭＡＣ動作におけるデバッグの方法として、特開平06-035750号公報には、特定したアドレスとの比較によるイベント検出を行なうことが提案されている。
【０００４】
また、アクセスするアドレスのトレースに関しては、プロセッサに関しては外付けのトレースメモリを使用したデバッグ装置等は知られているものの、ＤＭＡＣがアクセスするアドレスのトレースに関しては、アクセス量が多くトレースメモリを大量に消費することから、一般にはおこなわれていない。
【０００５】
【発明が解決しようとする課題】
ところで、メモリから画像データを読みとり、画像の回転処理等を施した後、メモリ上に再び書き込むような処理を行なうダイレクトメモリアクセス（ＤＭＡ）がプリンタ装置等で行なわれているが、画像の回転動作を行なうときは、動作効率上メモリに単純な昇順でアクセスしない場合があり、このような機能のデバッグを行なう際には、ＤＭＡＣのメモリアクセスがトレースできることが望ましい。
【０００６】
しかしながら、一般的なトレーサはデバッグ専用のトレースメモリが必要であり、プロセッサによるメモリアクセスのトレースよりもデータ量が多くなってしまうために、デバッグ装置の製造コストが増大するという不具合がある。
【０００７】
また、ＤＭＡのメモリアクセスの違反を検出し、あるいは、メモリへの書き込みデータ照合をする場合、装置（一般にはＬＳＩ）内部に期待値を持たせることは容量上困難であり、トレースメモリと連動した比較的大規模なデバッグ専用装置が必要になり、デバッグ装置の製造コストがさらに増大する不具合がある。
【０００８】
この発明の目的は、外付けのデバッグ装置を導入することなく、効率的に、低コストでデバッグ作業を行なうことである。
【０００９】
【課題を解決するための手段】
請求項１に記載の発明は、プロセッサと入出力装置とがメモリを共有するコンピュータシステムにおける、前記プロセッサ、前記入出力装置及び前記メモリのインターフェイスを制御する入出力制御装置において、前記入出力装置の前記メモリに対するダイレクトメモリアクセス（ＤＭＡ）を制御するダイレクトメモリアクセスコントローラ（ＤＭＡＣ）と、前記プロセッサと前記ＤＭＡＣとの前記メモリへのアクセスを調停するアービタと、前記メモリのインターフェイスを制御するメモリコントローラと、前記ＤＭＡＣからのＤＭＡ要求に伴ってデバッグ用のアクセスアドレス情報のメモリライト要求を前記メモリコントローラに対して発行するデバッグ制御部と、を備えていることを特徴とする入出力制御装置である。
【００１０】
したがって、入出力制御装置が備えているＤＭＡＣのメモリアクセスの履歴をメモリ上にデータと共にトレースができ、かつ、プロセッサ側からはメモリへリード、ライトしようとするデータへのアクセスも、デバッグを意図したトレースデータへのアクセスもでき、コンピュータシステムに実装されたときの本来の動作とデバッグモードでの動作との切り替えが容易になり、外付けのデバッグ装置を導入することなく、実際のコンピュータシステムに実装された状態でデバッグを実行することができるので、効率的に、低コストでデバッグ作業を行なうことができる。
【００１１】
請求項２に記載の発明は、請求項１に記載の入出力制御装置において、前記デバッグ制御部は、前記ＤＭＡ要求がメモリリードであるときは、リード要求されたデータをリードアクセスするのに先立って、次回アクセスするアドレスを前記メモリ上にライトするように、メモリライト要求を前記メモリコントローラに対して発行する。
【００１２】
したがって、メモリリードするに際して、デバッグ用のアクセスアドレス情報をメモリライトすることができる。
【００１３】
請求項３に記載の発明は、請求項１に記載の入出力制御装置において、前記デバッグ制御部は、前記ＤＭＡ要求がメモリライトであるときは、ライト要求されたデータと次回アクセスするアドレスとを合成して、この合成後のデータのライト要求をメモリコントローラに対して発行する。
【００１４】
したがって、メモリライトするに際して、デバッグ用のアクセスアドレス情報をメモリライトすることができる。
【００１５】
請求項４に記載の発明は、請求項１〜３のいずれかの一に記載の入出力制御装置において、前記デバッグ制御部は、前記ＤＭＡ要求があった際に当該要求がされた前記メモリのアドレスに対するライト要求をメモリコントローラに対して発行してリードアクセスし、このアドレスのデータ領域に前記ＤＭＡＣが正常動作時にアクセスしてはならないデータ領域であることを示す所定のマーキングが記録されているときは、前記プロセッサにその旨を通知する。
【００１６】
したがって、プロセッサがメモリ上にアクセス違反のマーキングを施すだけでＤＭＡＣのアクセス違反を検出できるので、効率的で低コストなデバッグ作業ができる。
【００１７】
請求項５に記載の発明は、請求項１〜４のいずれかの一に記載の入出力制御装置において、前記デバッグ制御部は、前記ＤＭＡによるメモリライト要求があった際に当該要求がされた前記メモリのアドレスに対するライト要求をメモリコントローラに対して発行してリードアクセスし、このアドレスのデータ領域の値をメモリライト要求でライトしようとする値と比較し、両者が不一致又は一致のときに、前記プロセッサにその旨を通知する。
【００１８】
したがって、プロセッサがメモリ上にライトデータの期待値をあらかじめ書き込んでおくことで、ＤＭＡＣのライトデータの期待値の不一致を検出できるので、効率的で低コストなデバッグ作業ができる。
【００１９】
請求項６に記載の発明は、プロセッサと入出力装置とがメモリを共有するコンピュータシステムにおいて、前記プロセッサ、前記入出力装置及び前記メモリのインターフェイスを制御する請求項１〜５の何れかの一に記載の入出力制御装置を備えていること、を特徴とするコンピュータシステムである。
【００２０】
したがって、請求項１〜５の何れかの一に記載の発明と同様の作用、効果を奏することができる。
【００２１】
【発明の実施の形態】
この発明の一実施の形態について説明する。
【００２２】
図１は、この実施の形態であるコンピュータシステムのシステム構成を示すブロック図である。このコンピュータシステムでは、プロセッサ２と、各種の入出力装置３と、プロセッサ２及び周辺入出力装置３が共有するメモリ４と、このプロセッサ２、入出力装置３及びメモリ４のインターフェイスを制御する入出力制御装置１と、を備えている。
【００２３】
入出力制御装置１は、図２に示すように、入出力装置３のインターフェイスを制御する入出力装置インターフェイス制御部１１と、入出力装置３がメモリアクセスをするためのダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１２と、プロセッサ２のインターフェイスを制御するプロセッサインターフェイス制御部１３と、プロセッサ２とＤＭＡＣ１２とのメモリアクセスを調停するアービタ１４と、メモリ４のインターフェイスを制御するメモリコントローラ１５と、アービタ１４とメモリコントローラ１５との間に位置して、ＤＭＡＣ１２からのＤＭＡ要求に伴って、後述するようにデバッグ用のアクセスアドレス情報のメモリライト要求をメモリコントローラ１５に対して発行する等を行なうデバッグ制御部１６と、を備えている。
【００２４】
図３に示すように、デバッグ制御部１６は、リクエスト変換／生成部２１を備えている。このリクエスト変換／生成部２１は、アービタ１４からのリクエスト群として、デバッグ動作を許可する「デバッグモード許可」信号と、リードライト区分（ＲＷ１）、アドレス（Ａ１）、データ長（Ｂ１）、メモリライト時のライトデータ（ＷＤ１）、メモリライト時のバイトイネーブル（ＢＥ１）、及び、プロセッサ２、ＤＭＡＣ１２を含めてアクセス要求元を識別するＩＤ（ＩＤ）を受付ける。
【００２５】
また、メモリコントローラ１５へのリクエスト群として、リードライト（Ｒ／Ｗ）区分（ＲＷ２）、アドレス（Ａ２）、データ長（Ｂ２）、メモリライト時のライトデータ（ＷＤ１）、メモリライト時のバイトイネーブル（ＢＥ２）を出力する。
【００２６】
そして、メモリリード時の応答データとして、メモリコントローラ１５からリードデータ（ＲＤ２）を受け取り、アービタ１４側にリードデータ（ＲＤ１）を返す。
【００２７】
さらに、デバッグ制御部１６は、内部レジスタ２２として、プロセッサ２が後述のようにトレースデータにアクセスするのを許可／禁止するレジスタ２３、ＤＭＡＣ１２が使用するメモリ４上の領域（開始アドレスとサイズ又は終端アドレス）を設定・保持するレジスタ２４、後述のようなトレース開始時のメモリ４のアドレスを保持するレジスタ２５を備えている。
【００２８】
このコンピュータシステムでは、ＤＭＡＣ１２の動作におけるデバッグを行なうデバッグ動作モード時は、メモリ４にアクセスしたアドレス情報もメモリ４上に保持する。そこで、非デバッグ動作モード時に比べて、２倍のメモリ容量を必要とする。例えば、ＤＭＡにより１語分のライトアクセスが発生した場合、メモリコントローラ１５にはその倍の２語分要求し、ライトデータに次回のアクセスアドレスを付加する。リードアクセスの場合は、まずアクセスアドレスをライトするための１語分のライト要求を生成し、次に本来のリードアクセスを実行する。
【００２９】
デバッグ動作モード時のメモリ４上の内容を図４に示す。図４の概念図においては、メモリバス幅２語分が１セットになっており、上位側がデータ領域、下位側がアドレスをトレースするための領域（次回のアクセスアドレスを登録）である。デバッグ制御部１６においては、アドレストレース情報を付加してアドレス変換もおこなうため、入出力装置３及びＤＭＡＣ１２からはアドレストレース領域は隠蔽され、データ領域が連続しているものとして見える。
【００３０】
デバッグ動作が禁止状態の場合、アービタ１４からのリクエストはメモリコントローラ１５へのリクエストに直結される（アクセスＩＤは使用しない）。このときは、各入出力装置３及びプロセッサ２のメモリアクセスはアービタ１４に調停されて要求通り実行される。
【００３１】
これに対し、デバッグ動作モードの場合、リード時においては、各部は、図５（ａ）に▲１▼〜▲９▼で示す順番に処理を行なう。すなわち、デバッグ制御部１６は、アービタ１４からＤＭＡのリード要求が発生すると（▲１▼）、データをリードアクセス（▲６▼）するのに先立って、次回アクセスするアドレスをメモリ４上にトレース（ライト）する（▲４▼）。すなわち、デバッグ制御部１６は、アドレス情報のライト要求をメモリコントローラ１５に出力し（▲３▼）、メモリコントローラ１５が、次回アクセスするアドレスをメモリ４上にトレース（ライト）してから（▲４▼）、本来のリード要求を生成する（▲５▼）。この場合、今回が最終データの場合は０をライトする。
【００３２】
ライト時においては、各部は、図５（ｂ）に▲１▼〜▲４▼で示す順番に処理を行なう。すなわち、デバッグ制御部１６は、アービタ１４からＤＭＡのライト要求が発生すると（▲１▼）、ライトするデータと次回アクセスするアドレスとを合成して（▲２▼）、このデータのライト要求をメモリコントローラ１５に出力し（▲３▼）、メモリ４上にライトする（▲４▼）。
【００３３】
この場合のライトデータとアドレストレース情報との合成の方法については、図６に示すとおりである。すなわち、アービタ１４からのライトデータ、要求アドレスが図６（ａ）である場合、デバッグ制御部１６は、ライトデータとアドレストレース情報とを合成して、メモリコントローラ１５へのライトデータ、要求アドレスを図６（ｂ）に示すようにする。これにより、例えば、ライトデータＷＤ１（１）の要求アドレスは、“ａｄｒ”から“ａｄｒ×２”となり、ライトデータＷＤ１（１）の直後には、“（ａｄｒ＋１語）×２”という、ライトデータＷＤ１（１）の直後に後続するライトデータＷＤ１（２）の要求アドレスが入ることになる。
【００３４】
プロセッサ２からのアクセスに関しては、レジスタ２３の設定でトレースデータへのアクセス許可時で、かつ、アクセスアドレスがＤＭＡ使用領域の場合である以外は、アドレストレース部分は隠蔽されてデータ部にのみアクセスが可能である。プロセッサ２のメモリアクセスはトレースしない。
【００３５】
すなわち、図５（ｃ）に示すように、アービタ１４からプロセッサアクセス要求を受けると（▲１▼）、デバッグ制御部１６は、アドレスを２倍、データ数を２倍するが、メモリライト時には、アドレストレース領域に０を入れておく（▲２▼）。そして、メモリコントローラ１５にメモリライト又はメモリリード要求を出力する（▲３▼）。
【００３６】
プロセッサ２のトレースアクセスが許可状態で且つＤＭＡ領域へのアクセス時は、アービタ１４からの要求はそのままメモリコントローラ１５に渡され、アドレストレース領域、データ領域共にアクセスが可能になる。デバッグ制御部１６は、プロセッサ２のアクセスかＤＭＡＣ１２のアクセスかの判定を、ＩＤ入力信号を使用して判定する。
【００３７】
以上説明したデバッグ動作モード時において、デバッグ制御部１６が行なう一連の処理の詳細を、図７、図８のフローチャートにまとめて示す。
【００３８】
すなわち、アドレスポインタ（ＡＰ）を初期値０にする（ステップＳ０）。そして、アービタ１４のＤＭＡメモリアクセス要求が発生したときは（ステップＳ１のＹ）、レジスタ２５にトレース開始アドレスとして“Ａ１×２”の値をラッチする（ステップＳ２のＮ，Ｓ１７）。
【００３９】
そして、メモリライトのときは（ステップＳ６のＮ）、メモリコントローラへの次のような要求を生成する（ステップＳ１８）。すなわち、アドレス（Ａ２）に“（Ａ１＋Ｉ語）×２”、データ長（Ｂ２）を１語分、Ｒ／Ｗ区分（ＲＷ２）をライトにする。また、ライトデータ（ＷＤ２）を、図６を参照して説明したようなアドレス／データインタリーブに設定する。そして、アドレスポインタ（ＡＰ）に“Ａ１＋（Ｂ１−１）語）×２”をセットして（ステップＳ１６）、ステップＳ１に戻る。
【００４０】
アドレスポインタが初期値０でないときは（ステップＳ２のＹ）、メモリコントローラへの次のような要求を生成する（ステップＳ４）。すなわち、アドレス（Ａ２）にアドレスポインタ（ＡＰ）の値を、データ長（Ｂ２）を１語分、Ｒ／Ｗ区分（ＲＷ２）をライトにする。また、ライトデータ（ＷＤ２）を“Ａ１×２”の値とする。ビット０にはＲＷ１の値を代入する。そして、メモリコントローラ１５の処理待ちをして（ステップＳ５）、ステップＳ６以降の処理を行なう。
【００４１】
メモリリードのときは（ステップＳ６のＹ）、カウント値Ｉを初期値０として（ステップＳ７）、メモリコントローラへの次のような要求を生成する（ステップＳ８）。すなわち、アドレス（Ａ２）を“（Ａ１＋Ｉ語）×２＋１語”、データ長（Ｂ２）を１語分、Ｒ／Ｗ区分（ＲＷ２）をライトにする。また、ライトデータ（ＷＤ２）を“（Ａ１＋（Ｉ＋１）語）×２”の値とし、カウント値Ｉが“Ｂ１−１”のときは０とする。ビット０にはＲＷ１の値を代入する。
【００４２】
そして、メモリコントローラ１５の処理待ちをして（ステップＳ９）、メモリコントローラ１５へ次のような要求を生成する（ステップＳ１０）。すなわち、アドレス（Ａ２）を“（Ａ１＋Ｉ語）×２語”、データ長（Ｂ２）を１語分、Ｒ／Ｗ区分（ＲＷ２）をリードにする。そして、メモリコントローラ１５の処理待ちをして（ステップＳ１１）、リードデータ（ＲＤ１）を集積し（ステップＳ１２）、カウント値Ｉがデータ長Ｂ１に達していないときは（ステップＳ１４のＮ）、ステップＳ８以降の処理を繰り返し、カウント値Ｉがデータ長Ｂ１に達したときは（ステップＳ１４のＹ）、リードデータ（ＲＤ１）をアービタ１４に出力する（ステップＳ１５）。そして、ステップＳ１６以降の処理を繰り返す。
【００４３】
また、プロセッサ２からのアクセスに関し、レジスタ２３の設定でトレースデータへのアクセス許可があるとき（ステップＳ２０のＹ）で、アクセスアドレスがＤＭＡ使用領域の場合以外は（ステップＳ２２のＮ）、メモリコントローラ１５へ次のような要求を生成する（ステップＳ２６）。すなわち、アドレス（Ａ２）を“Ａ１×２”、データ長（Ｂ２）を“（Ｂ１×２）語分”、Ｒ／Ｗ区分（ＲＷ２）をＲＷ１と同じにする。また、ライトデータ（ＷＤ２）をＷＤ１にする。そして、メモリコントローラ１５の処理待ちをして（ステップＳ２７）、リードデータ（ＲＤ１）をリードデータＲＤ２の奇数語（すなわち、データ領域）のみとする（ステップＳ２８）。
【００４４】
さらに、プロセッサ２のトレースアクセスが許可状態で（ステップＳ２０のＹ）、ＤＭＡ領域へのアクセスの際は（ステップＳ２２のＹ）、メモリコントローラ１５へ次のような要求を生成する（ステップＳ２３）。すなわち、アドレス（Ａ２）をアドレスＡ１、データ長（Ｂ２）をＢ１語分、Ｒ／Ｗ区分（ＲＷ２）をＲＷ１と同じにする。また、ライトデータ（ＷＤ２）をＷＤ２の値にする。そして、メモリコントローラ１５の処理待ちをして（ステップＳ２４）、リードデータ（ＲＤ１）をリードデータＲＤ２とする（ステップＳ２５）。
【００４５】
次に、前記の処理で得られたアドレストレースをプロセッサ２が追跡する手段について説明する。まず、デバッグ制御部１６のトレース開始アドレスをレジスタ２５から読み出す。前述のように、メモリ４上の当該アドレスには、当該アドレスのデータと次のトレースアドレスの２語が対になって保存されている。
【００４６】
このようにリスト構造になったトレースアドレスを追跡することで、ＤＭＡＣ１２のアクセスを追跡することが可能になる。例えば、図９の例では、トレース開始アドレスのデータ領域がＷＳであるときに、その直後の１語に記録されている次のアドレストレース領域ＡＳから、次のデータ領域Ｗ１を追跡し、その直後の１語に記録されている次のアドレストレース領域Ａ１から、次のデータ領域Ｗ２を追跡する、…という、ＤＭＡＣ１２のアクセスの追跡を行なうことができる。これにより、エラーアクセス解析のための有効なデバッグ情報を提供することができる。
【００４７】
なお、ＤＭＡが使用する領域は、内部レジスタ２２によりあらかじめ設定してあるので、先に説明したように、プロセッサ２がメモリ４上にある命令コードにアクセスする場合は、デバッグ制御部１６でトレースアドレスの部分は破棄され（図５（ｃ）の▲６▼を参照）、コード部分だけがプロセッサ２に渡される。
【００４８】
以上説明した、デバッグ制御部１６の構成を、図３を参照して説明したものに代えて図１０に示すようにし、図１１、図１２のフローチャートに示すような処理を行ってもよい。
【００４９】
すなわち、図１０のデバッグ制御部１６が、前記した図３のものと相違するのは、アービタ１４に対する割り込み出力を持ち、内部レジスタ２２として割り込みのステータスを登録するレジスタ２６を備えている点である。
【００５０】
そして、図１１、図１２のフローチャートに示すように、図７、図８を参照して説明した処理に加えて、ステップＳ３１〜Ｓ３５の処理を行なう。これにより、アドレストレース前にアドレストレース領域を読み出す（ステップＳ３１〜Ｓ３３）
すなわち、メモリコントローラ１５へ次のような要求を生成する（ステップＳ３１）。すなわち、アドレス（Ａ２）をアドレス“Ａ１×２”、データ長（Ｂ２）を“Ｂ１×２語分”、Ｒ／Ｗ区分（ＲＷ２）をＲＷ１にする。また、ライトデータ（ＷＤ２）をＷＤ１にする。そして、メモリコントローラ１５の処理待ちをして（ステップＳ２４）、リードデータ（ＲＤ１）をＲＤ２とする（ステップＳ２５）。
【００５１】
そして、マーキングがされている場合に（ステップＳ３４のＹ）、割り込み出力を使用してプロセッサ２に通知する（ステップＳ３５）。
【００５２】
プロセッサ２は、トレースアクセス許可状態にしておき、ＤＭＡＣ１２がアクセスした際に割り込みを発生させたいアドレスのアドレストレース領域に特定のマーキングデータをライトしておけば、ＤＭＡＣ１２が当該アドレスにアクセスする場合、デバッグ制御部１６は、まず、このアドレスのトレース領域を読み出すが、このマーキングを検出することで、割り込みを生成する。このマーキングは、例えば、0xFFFFFFFFのように特定の値を決めておくか、ユーザが定義可能なように内部レジスタを持ってもよい。
【００５３】
図７、図８を参照して説明した処理に加えて、ステップＳ４１〜Ｓ４５の処理を加えてもよい。すなわち、ライトアクセス前にデータ領域を読み出し（ステップＳ４１〜Ｓ４３（ステップＳ３１〜Ｓ３３の処理と同様であり、ステップＳ３１〜Ｓ３５の処理も実行するときは省略する））、ライトするデータと比較し（ステップＳ４４）、不一致（又は一致）の場合に（ステップＳ４４のＹ）、割り込み出力を生成してプロセッサ２に通知する（ステップＳ４５）。なお、プロセッサ２が期待値をライトする際は、トレースアクセス許可状態である必要はない。
【００５４】
これにより、ＤＭＡＣ１２がアクセスすると思われる領域にあらかじめ期待値を書き込んでおき、不一致の際に割り込みを発生するようにしておけば、例えば、期待値エラーによる割り込みを発生させることができる。
【００５５】
【発明の効果】
請求項１に記載の発明は、外付けのデバッグ装置を導入することなく、効率的に、低コストでデバッグ作業を行なうことができる。
【００５６】
請求項２に記載の発明は、請求項１に記載の入出力制御装置において、メモリリードするに際して、デバッグ用のアクセスアドレス情報をメモリライトすることができる。
【００５７】
請求項３に記載の発明は、請求項１に記載の入出力制御装置において、メモリライトするに際して、デバッグ用のアクセスアドレス情報をメモリライトすることができる。
【００５８】
請求項４に記載の発明は、請求項１〜３のいずれかの一に記載の入出力制御装置において、プロセッサがメモリ上にアクセス違反のマーキングを施すだけでＤＭＡＣのアクセス違反を検出して、効率的で低コストなデバッグ作業ができる。
【００５９】
請求項５に記載の発明は、請求項１〜４のいずれかの一に記載の入出力制御装置において、ＤＭＡＣのライトデータの期待値の不一致を検出して、効率的で低コストなデバッグ作業ができる。
【００６０】
請求項６に記載の発明は、請求項１〜５の何れかの一に記載の発明と同様の効果を奏することができる。
【図面の簡単な説明】
【図１】この発明の一実施の形態であるコンピュータシステムの全体構成を示すブロック図である。
【図２】コンピュータシステムを構成する入出力制御装置の全体構成を示すブロック図である。
【図３】入出力制御装置を構成するデバッグ制御部の全体構成を示すブロック図である。
【図４】デバッグ制御部によりメモリにライとされたデータのデータ構成を説明する説明図である。
【図５】デバッグ制御部及び各部が行なう処理の説明図である。
【図６】デバッグ制御部がアービタから受けたライトデータとメモリコントローラに出力するライトデータとの説明図である。
【図７】デバッグ制御部が行なう処理の詳細を説明するフローチャートである。
【図８】同フローチャートである。
【図９】メモリでのトレースアドレスの追跡について説明する説明図である。
【図１０】デバッグ制御部の他の構成例のブロック図である。
【図１１】デバッグ制御部が行なう処理の他の例の詳細を説明するフローチャートである。
【図１２】同フローチャートである。
【符号の説明】
１      入出力制御装置
２      プロセッサ
３      入出力装置
４      メモリ
１２    ＤＭＡＣ
１４    アービタ
１５    メモリコントローラ
１６    デバッグ制御部
【図１】
0003766339.tif 000002
【図２】
0003766339.tif 000003
【図３】
0003766339.tif 000004
【図４】
0003766339.tif 000005
【図５】
0003766339.tif 000006
【図６】
0003766339.tif 000007
【図７】
0003766339.tif 000008
【図８】
0003766339.tif 000009
【図９】
0003766339.tif 000010
【図１０】
0003766339.tif 000011
【図１１】
0003766339.tif 000012
【図１２】
0003766339.tif 000013