(57)【要約】【課題】バス内にリトライを繰り返すユニットと正常動作のユニットが混在する場合に、任意のユニットにおける障害発生時のバストレースと、障害発生後のバストレースを読み出せるようにすること。【解決手段】複数ユニット２ａ〜２ｄを接続するバス２におけるバストレース回路３であって、同一のユニットから特定のトランザクションが所定回数リトライされたことを検知（４ｃ１）し、検知に基づいてバスが疑バス障害状態であると認識し、疑バス障害認識の時直前の所定数のバストレースを保存する機能と、疑バス障害認識後に発生するバストレースをも保存する機能と、を具備すること。また、バストレースを保存するメインバストレースメモリとサブバストレースメモリとを設け、疑バス障害認識の時直前の所定数のバストレースをサブバストレースメモリに保存すること。【選択図】　　　　図１
2004054685.tif 000002
【特許請求の範囲】
【請求項１】
複数ユニットを接続するバスにおける情報処理装置であって、
同一のユニットから特定のトランザクションが所定回数リトライされたことを検知し、前記検知に基づいてバスが疑バス障害状態であると認識し、前記疑バス障害認識の時直前の所定数のバストレースを保存する機能と、
前記疑バス障害認識後に発生するバストレースをも保存する機能と、を具備する
ことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記バストレースを保存するメインバストレースメモリとサブバストレースメモリとを設け、
前記疑バス障害認識の時直前の所定数のバストレースを前記サブバストレースメモリに保存し、
前記疑バス障害認識後に発生するバストレースを前記メインバストレースメモリに保存する
ことを特徴とする情報処理装置。
【請求項３】
情報処理装置に複数のバスを設け、各バスに複数ユニットを接続する複数バスにおける情報処理装置であって、
前記複数バスのいずれか１つのバスで同一のユニットから特定のトランザクションが所定回数リトライされたことを検知し、前記検知に基づいて前記複数バスのすべてが疑バス障害状態であると認識し、前記疑バス障害認識の時直前の所定数のバストレースを保存する機能と、
前記疑バス障害認識後に発生するバストレースをも保存する機能と、を具備する
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置においてバス上のデータをトレースするバストレース回路に関する。
【０００２】
【従来の技術】
情報処理装置では、バストレースを読み出して解析することにより障害の原因の追求を行うが、トレースメモリの容量は有限であり障害時のバスイベント情報を残すための仕組みが必要である。
【０００３】
前記バスイベント情報を残す仕組みとして、従来の技術では、特開平１１−２１９２９３号公報に記載のように、アドレスのループを検出してループ部を削除し、最後の繰り返し部のみを残すことによりトレースメモリの消費を抑える方法や、特開平６−１０３１７９号公報に記載のように、情報処理装置に接続されているユニット数と同数の領域にメモリ記憶領域を分割することにより、特定ユニットからのデータによるトレースメモリ全体の消費を抑える方法がある。
【０００４】
【発明が解決しようとする課題】
上述した従来技術が持つ課題について図２を用いて以下説明する。図２は、バス上のイベントを時系列でそのままトレースした時のトレーサの状態例である。なお、図２のバスイベントはアクセスに関する情報であるが、本発明では、これに限らず、諸々の機能を備えたバス上での指令や応答に関する情報を含むバスイベントに対処するものである。
【０００５】
従来技術においては、バス上のユニットが図２に示す状態ｔ１内のエントリのように、ある一定のループを繰り返す場合（エントリｅ０１〜ｅ０３，エントリｅ０４〜ｅ０６，エントリｅ０７〜ｅ０９，エントリｅ１０〜ｅ１２は、トランザクションがＵＮＩＴ１アドレス１ａ、ＵＮＩＴ２アドレス２ａ、ＵＮＩＴ３アドレス３ａというように繰り返している）は、最初のループ（ｅ０１〜ｅ０３）のみをメモリに残し、以降の繰り返し部（ｅ０４以降）を削除することでループによるトレースメモリの消費を抑え、ループ現象発生時以前（ｅ０１以前）のエントリを保護することができる（例えば、ｅ０１以前のエントリを残してこれを読み出し解析することでループの原因を追究することができる）。また、特開平１１−２１９２９３号公報記載のように、このループを複数検出できるものもある。
【０００６】
しかし、従来技術において、同一バス内にループを繰り返すユニットと、正常に動作しつづけるユニットとが混在するケースについて考慮されていない。例えば、図２に示す状態ｔ２のように、バスイベントエントリがトレースされる場合、ＵＮＩＴ１のバスイベント（ｍ０１，ｍ０４，ｍ０６，ｎ０３，ｎ０６）のうち、アドレス１ｂについてのリクエスト（ｍ０６，ｎ０３，ｎ０６）は、リトライによるループを繰り返しているが、一方、ＵＮＩＴ２のバスイベント（ｍ０２，ｍ０５，ｎ０２，ｎ０４）およびＵＮＩＴ３のバスイベント（ｍ０３，ｎ０１，ｎ０５）はループ状態にはない、というケースがある。
【０００７】
このようなケースにおいては、ループ部を検出する従来の手法では、ＵＮＩＴ１アドレス１ｂが繰り返されるので、最初のエントリｍ０４はメモリされ以降のエントリは削除される。さらに、他のＵＮＩＴ２，３では繰り返しがないので、最初のループをメモリに残すことができず、その後のバスイベントによってループ開始前のエントリ（ｍ０１，ｍ０２，ｍ０３）が上書きされる（トレースメモリが満杯になってメモリの最初（例えば、ｍ０）から上書きされる）おそれがある。ここで、ＵＮＩＴ１アドレス１ｂがリトライ（ｍ０６、ｎ０３）する原因を解析するには、基本的に、ｍ０４以前のＵＮＩＴ１のエントリばかりではなくて、ｍ０４以前のＵＮＩＴ２，３の数個のトレース結果が求められるのである（ＵＮＩＴ１アドレス１ｂのリトライの原因がＵＮＩＴ２，３のトランザクションによる場合が有り得るから）。
【０００８】
また、ユニットごとにメモリ領域を分割する従来の手法を適用するとＵＮＩＴ１のエントリに関しては（ｍ０１，ｍ０４，ｍ０６，ｎ０３，ｎ０６）は、ループ部が削除されるので（ｍ０６，ｎ０３，ｎ０６が削除）、ループ前のエントリ（ｍ０１）が保存されるが、他のＵＮＩＴに関しては正常動作を続けるのでループ開始前のエントリ（ｍ０２，ｍ０３）が保存されない（ｍ０２やｍ０３が原因となって、ＵＮＩＴ１アドレス１ｂがリトライする場合があるので、エントリ（ｍ０２，ｍ０３）を保存する必要性がある）。
【０００９】
また、前述のように正常に動作するユニットが混在するケースで、特定ユニットのループによって、トレースの書き込みを止めてしまう手法を用いると、正常に動作するユニットではその以降のトレースが取れない（正常動作のユニットが前記書き込み停止以後にリトライを繰り返す場合も有り得、この場合には前記ユニットのリトライ原因解析ができないこととなる）。
【００１０】
以上のように従来技術では、同一バス内にループを繰り返すユニットと正常に動作しつづけるユニットが混在するケースにおいて、ループ開始前のエントリをユニットのループの有無に関わらず保存し、なおかつトレース停止までトレースを続けるのは困難である。このような混在例は同一バス上のユニットについて述べたが、情報処理装置内で複数バスにまたがり複数ＵＮＩＴが存在するケースにおいても同様である。
【００１１】
本発明の目的は、バス内にリトライを繰り返すユニットと正常動作のユニットが混在する場合に、任意のユニットにおける障害発生時のバストレースと、障害発生後のバストレースを読み出せるようなバストレース回路を提供することにある。
【００１２】
【課題を解決するための手段】
前記課題を解決するために、本発明は次のような構成を採用する。
複数ユニットを接続するバスにおける情報処理装置であって、
同一のユニットから特定のトランザクションが所定回数リトライされたことを検知し、前記検知に基づいてバスが疑バス障害状態であると認識し、前記疑バス障害認識の時直前の所定数のバストレースを保存する機能と、
前記疑バス障害認識後に発生するバストレースをも保存する機能と、を具備する情報処理装置。
【００１３】
また、前記情報処理装置において、前記バストレースを保存するメインバストレースメモリとサブバストレースメモリとを設け、
前記疑バス障害認識の時直前の所定数のバストレースを前記サブバストレースメモリに保存し、
前記疑バス障害認識後に発生するバストレースを前記メインバストレースメモリに保存する情報処理装置。
【００１４】
また、情報処理装置に複数のバスを設け、各バスに複数ユニットを接続する複数バスにおける情報処理装置であって、
前記複数バスのいずれか１つのバスで同一のユニットから特定のトランザクションが所定回数リトライされたことを検知し、前記検知に基づいて前記複数バスのすべてが疑バス障害状態であると認識し、前記疑バス障害認識の時直前の所定数のバストレースを保存する機能と、
前記疑バス障害認識後に発生するバストレースをも保存する機能と、を具備する情報処理装置。
【００１５】
【発明の実施の形態】
本発明の実施形態に係る情報処理装置について、図面を参照しながら以下説明する。図１は本発明の実施形態に係るバストレース回路を含む情報処理装置の全体構成を示す図である。図３は本発明の実施形態に係る、複数バスからなる情報処理装置におけるバストレース回路の構成を示すブロック図である。
【００１６】
先ず、本実施形態に係るバストレース回路の機能ブロックについて説明すると、図１は単一バス、単一トレースメモリでのバストレース回路の構成例を示したものであり、図３は複数バスを有する情報処理装置におけるバストレース回路の構成例を示したものである。図１において、情報処理装置（１）は、バス（２）とバスに接続されるＵＮＩＴ１〜ＵＮＩＴ４（２ａ，２ｂ，２ｃ，２ｄ）と装置トレーサ部（３）から構成される。ここで、ＵＮＩＴとは命令を実行したり、データを授受するものであり、必ずしもプロセッサに限らない。
【００１７】
装置トレーサ部（３）は、バス（２）の信号をもとにＵＮＩＴ毎に同一アドレスに対するリクエストのリトライを監視し、リトライが発生したとき（同一アドレスへの再度のアクセス）、ＵＮＩＴ０〜ＵＮＩＴ４リトライ検出信号（４ｂ１〜４ｂ４）をアサートし、一定回数以上のリトライが連続した場合にＵＮＩＴ１〜ＵＮＩＴ４トレーサ保存命令信号（４ａ１〜４ａ４）をアサートする機能をもつＵＮＩＴ１〜ＵＮＩＴ４リトライ検出回路（３ａ１〜３ａ４）と、従来のバス障害を監視して検出時にバス障害トレーサ保存命令信号（４ａ５）をアサートするバス障害検出回路（３ｂ）と、を障害検出機構として備えている。
【００１８】
また、ＯＲ回路（３ｃ）は、前記トレーサ保存命令信号（４ａ１〜４ａ５）の論理和および前記ＵＮＩＴリトライ検出信号（４ｂ１〜４ｂ４）及びバス障害トレーサ保存命令信号（４ａ５）の論理和をそれぞれ取り、リトライ検出信号（４ｃ２）およびトレーサ保存命令信号（４ｃ１）を送出する。
【００１９】
トレースメモリ読み書きに関する機構としては、バス（２）信号及び前記トレーサ保存命令信号（４ｃ１）およびリトライ検出信号（４ｃ２）を元に、トレースメモリ（３ｅ）へデータ信号（４ｄ１）と書込み制御信号（４ｄ２）により書き込みを行う書き込み制御部（３ｄ）と、情報処理装置（１）からの読み出し要求（４ｆ１）によりトレーサリード部（３ｆ）でリード制御信号（４ｅ１）を生成し、これによってトレースメモリ（３ｅ）よりリードデータ（４ｅ２）を読み出して情報処理装置にトレーサリードデータ（４ｆ２）を送出するトレーサリード部（３ｆ）と、からなる。
【００２０】
また、トレーサ書き込み制御部３ｄは、情報処理装置（１）からのカウンタ制御信号（４ｄａ１）を元にカウントアップ動作を行いライトアドレス（４ｄｅ１）を生成するライトアドレスカウンタ（３ｄｅ）と、情報処理装置からのアドレス保持命令信号（４ｄａ２）を元に前記ライトアドレス（４ｄｅ１）を保持しリトライ発生時アドレス（４ｄｂ１）を送出するアドレスバッファａ（３ｄｂ１）と、前記リトライ発生時アドレス（４ｄｂ１）を減算処理しロードタイミングアドレス（４ｄｃ１）を出力する減算回路（３ｄｃ）と、情報処理装置からのアドレス保持命令信号（４ｄａ３）を元に前記ライトアドレス（４ｄｅ１）を保持しその値をライトカウンタロード値（４ｄｂ２）として送出するアドレスバッファｂ（３ｄｂ２）と、前述した回路（３ｄｂ，３ｄｃ，３ｄｅ）を制御しバス（２）信号を元にトレースメモリ（３ｅ）への書き込みを行うトレース書き込み制御回路（３ｄａ）と、から構成される。
【００２１】
次に、図２に示すトレース状態例と図１のバストレース回路を含む全体構成例を参照しながら、情報処理装置（１）内のＵＮＩＴ１（２ａ）でリトライが連続する障害が発生したときの動作について説明する。
【００２２】
バス（２）上の信号を監視することによって、ＵＮＩＴ１リトライ検出回路（３ａ１）は、リトライを検出した瞬間（図２のｍ０６トレース書き込み時に相当）にＵＮＩＴ１リトライ検出信号（４ｂ１）をアサートする。トレース書き込み制御回路（３ｄａ）は前記ＵＮＩＴ１リトライ検出信号（４ｂ１）より生成されるリトライ検出信号（４ｃ２）のアサートの立ち上がりを検出し、その時のライトアドレス（４ｄｅ１）をアドレスバッファａ（３ｄｂ１）に保存する。減算回路（３ｄｃ）では前記アドレスバッファａ（３ｄｂ１）が出力するリトライ発生時アドレス（４ｄｂ１）からリトライ発生以前のトレースとして保存したい（保存すべき）或る一定のエントリ数を引いた値をロードタイミングアドレス（４ｄｃ１）として保持する（ロードタイミングアドレスとして出力している）。減算結果が負となった場合は、最終エントリのアドレスから負数分を引いたアドレスをロードタイミングアドレス（４ｄｃ１）として保持する。その後、一定回数以上リトライが連続したとき（例として、図２のｎ０３トレース書き込み時とする）にＵＮＩＴ１トレーサ保存命令信号（４ａ１）をアサートする。
【００２３】
トレース書き込み制御回路（３ｄａ）は、前記ＵＮＩＴトレーサ保存命令信号（４ａ１）を元に生成されるトレーサ保存命令信号（４ｃ１）アサートの立ち上がりを検出し、アドレスバッファｂ（３ｄｂ２）にその時のライトアドレス（４ｄｅ２）を保存する。トレース書き込み制御回路は（３ｄａ）は、前記トレーサ保存命令信号（４ｃ１）アサート中はトレーサ保護モード起動中をあらわすビットを付加し書込みを続けるが、ライトアドレス（４ｄｅ２）がロードタイミングアドレス（４ｄｃ１）となったときにライトアドレスカウンタ（３ｄｅ）にライトカウンタロード値（４ｄｂ２）に１を足した値をロードしその間のエントリを保護し書き込みを続行する。前記トレーサ保存命令信号（４ｃ１）がディアサートされている間は、ライトアドレスカウンタ（３ｄｅ）へのロード動作は行わない。
【００２４】
以上説明した動作によって、トレースメモリ（３ｅ）内には、リトライ発生時（ｍ０６）から減算回路（３ｄｃ）によって指定されるある一定数エントリ前（例えば、ｍ０１）から一定回数リトライ検出時（ｎ０３）までのバスイベントと、メモリ容量に応じて一定回数リトライ検出（ｎ０３）後のバスイベントが保存される。
【００２５】
再度、図２に示すトレース状態ｔ２の例示（リトライを繰り返すＵＮＩＴ１と正常動作のＵＮＩＴ２，３とが混在する例）で説明すれば、リトライを最初に繰り返すｍ０６のエントリを検出し、このエントリｍ０６からリトライ解析に必要とされるエントリｍ０６以前のエントリ数５を減算してエントリｍ０１を出力し（４ｄｃ１）、さらに、ＵＮＩＴ１のリトライが繰り返されてバス障害状態と疑われる所定回数のリトライ（当該所定回数リトライ以後のリトライで正常状態に復帰する場合も有り得るが、当該所定回数リトライを繰り返せば一応、疑バス障害状態と認識する）があったエントリｎ０３を検出して出力する（４ｄｂ２）。そして、エントリｎ０４からのバスイベントはトレースメモリを満たすまで保存される。トレースメモリが満杯になったときには引き続くバスエントリに対して、エントリｍ０１〜ｎ０３は上書きされずにエントリｎ０４まで飛んでこのエントリｎ０４から上書きされる。
【００２６】
以上、ＵＮＩＴ１でリトライが連続する障害が発生したケースについて説明したが、ＵＮＩＴ２〜ＵＮＩＴ４（２ｂ，２ｃ，２ｄ）で発生した場合もそれぞれのＵＮＩＴリトライ検出回路（３ａ２，３ａ３，３ａ４）が動作をして、同様の手順でトレーサは動作する。また、本実施形態は、特定のトランザクションの一例として同一アドレスへのトランザクションを検出する例について述べたが、本発明は、これに限定するものではなく一定の条件のもとにリトライを繰り返すものであれば実施可能である。また、本実施形態ではＵＮＩＴが４つのケースについて述べたが、４つに限定するものではなく前記リトライ検出回路の増減によって対応できる。
【００２７】
次に、図３を用い複数バス構成を持つ情報処理装置でトレースを保護する手段として主たるトレースメモリとサブトレースメモリを実装した実施例について述べる。情報処理装置（１ｂ）は、バス０（２０）と、バス０（２０）に接続するバス０ＵＮＩＴ０１〜ＵＮＩＴ０ｎ（２０１〜２０ｎ）と、バス１（２１）と、バス１（２１）に接続するバス１ＵＮＩＴ１１〜ＵＮＩＴ１ｎ（２１１〜２１ｎ）と、装置トレーサ部（３ｂ）と、から構成される。
【００２８】
装置トレーサ部（３ｂ）は、既存の構成要素としては、バストレースデータ（４０６，４０９）をトレース書きこみ制御信号（４０７，４１１）に従い保存する主たるバス０，１トレースメモリ（３５，３８）と、情報処理装置（１ｂ）からのトレーサリード要求（４１２）に応じトレースリード制御信号（４１３，４１５，４１７，４１９）によりトレースデータ信号（４１４，４１６，４１８，４２０）を読みだし、情報処理装置にトレースリード結果をリードデータ信号（４２１）にて送信するトレースリード制御回路（３９）と、がある。
【００２９】
本発明の実施形態に係る構成要素としては、バス信号（４００，４０１）での障害を監視しバスリクエストに対してレスポンスを返すべきＵＮＩＴがレスポンスを一定時間返さなかった時、又は一定回数以上同一ＵＮＩＴから同一アドレスに対するリクエストがリトライされた時、又は接続するＵＮＩＴ０１〜０ｎ又はＵＮＩＴ１１〜１ｎがバス障害を通知して来た時、に何らかのバス障害が発生していると判断しバス障害検出信号（４０３，４０４）を送出するバス０，１障害検出回路（３０，３１）と、情報処理装置（１ｂ）内の装置トレーサ部（３ｂ）以外で情報処理装置内部の障害を検出したことを通知する障害検出信号（４０２）とバス０障害検出信号（４０３）とバス１障害検出信号（４０４）の条件をとりトレース保存命令信号（４０５）を送出するＯＲ回路（３２）と、バス０，１信号（４００，４０１）を元にバス０，１上に起こるバスイベントをトレースしたトレースデータ（４０６，４０９）、バストレース書きこみ制御信号（４０７，４１１）、バスサブトレース制御信号（４０８，４１０）にて時系列にバストレースメモリ（３５，３８）およびバスサブトレースメモリ（３６，３７）に書きこみ、また前記トレース保存命令信号（４０５）に応じてバスサブトレース制御信号（４０８，４１０）によりバスサブトレースメモリ（３６，３７）への書きこみを中断する機能を持つバス０，１トレーサ書込み制御回路（３３，３４）と、がある。
【００３０】
次に、図３に示すバス０障害検出回路（３０）の詳細な構成例を図４に示す。図４を参照しながら、バス障害検出回路について説明する。
【００３１】
バス障害検出回路（３０）は、バス０（２０）からのバス信号（４００）をもとに、バス０上でＵＮＩＴからのバス障害通知を監視し障害検出時にバス障害信号検出信号（３０ｂ１）を送信するバス障害信号検出部（３０ｂ）と、バスリクエストに対して一定時間以上レスポンスが応答しない時にレスポンス障害検出信号（３０ａ１）を送信するレスポンスタイマ部（３０ａ）と、バスに接続するＵＮＩＴ毎に一定回数以上同一アドレスに対してリトライされた時にＵＮＩＴ疑バス障害信号（３０ｄ１〜３０ｄｎ）を送信するＵＮＩＴ０〜ＵＮＩＴｎリトライ判定回路（３００〜３０ｎ）と、前記障害信号すべて（３０ｄ１〜３０ｄｎ），（３０ａ１），（３０ｂ１）のどれかひとつが検出されたときバス障害検出信号（４００）を送信するバス障害判定回路（３０ｃ）と、から構成される。
【００３２】
また、ＵＮＩＴリトライ判定回路（３００〜３０ｎ）内部は、バス信号からのリクエスト、アドレス、レスポンスをもとに直前のトランザクション情報を書き込むためのアドレス用バッファ（３００２ａ）およびレスポンス用バッファ（３００２ｂ）からなるリトライ判定用バッファ（３００２）と、リトライ判定用バッファへの書き込み信号（３００ａ）を制御するバッファ書き込み制御回路（３００１）と、リトライ判定用バッファ（３００２）に保存されている直前のトランザクション情報を読み出し信号（３００ｂ）から読み出し、新規トランザクションの情報と比較し同一アドレスに対してリトライが繰り返されて時にカウンタ制御信号（３００ｃ）によりリトライカウンタ（３００４）をカウントアップし、そうでない場合はリトライカウンタ（３００４）をリセットするリトライ判定回路（３００３）と、リトライカウンタ（３００４）と、カウンタ値出力（３００ｄ）が一定値以上になるとＵＮＩＴ疑バス障害信号（３０ｄ１〜３０ｄｎ）を送出するデコード回路と、から構成される。
【００３３】
次に、図３及び図４に示す情報処理装置（１ｂ）のバス障害発生時の動作について、図５及び図６のフローを用いて説明する。情報処理装置（１ｂ）稼働中に、バス障害検出回路（３０，３１）はそれぞれのバス０，１（２０，２１）について以下の様な処理を行う。
【００３４】
（条件Ｓ１１）同一ＵＮＩＴから同一アドレスへのリクエストがリトライ繰り返しされていないかをＵＮＩＴリトライ判定回路（３００）で判定する。（条件Ｓ１２）リクエストに対するリプライが返らない状態になっていないかをレスポンスタイマ（３０ａ）で判定する。（条件Ｓ１３）バスユニットからのバス障害通知はないかをバス障害信号検出部３０ｂで監視する。前記のいずれかの条件（Ｓ１１，Ｓ１２，Ｓ１３）に当てはまったとき（条件Ｓ１４）、例えば、リトライ繰り返しが検出されたとき（Ｓ１１）、バス障害検出回路（３０，３１）はバス障害検出信号（４０３，４０４）をアサートする。
【００３５】
上記条件（Ｓ１１，Ｓ１２，Ｓ１３）に当てはまらない場合はバス障害検出信号（４０３，４０４）をディアサートする（Ｓ１５）。バス障害検出回路（３０，３１）は、図６のフローのＳＴＡＲＴ（Ｓ１０）からＥＮＤ（Ｓ１６）までを常に繰り返す。
【００３６】
条件（Ｓ１４）によってアサートされたバス０障害検出信号（４０３）を検出した場合（条件Ｓ０２）、バス１障害検出信号（４０４）を検出した場合（条件Ｓ０３）、情報処理装置（１ｂ）内の他部からの障害検出信号（４０２）を検出した場合（条件Ｓ０４）に、ＯＲ回路３２はトレース保存命令信号（４０５）をアサートする。（Ｓ０５）そうでない場合はトレース保存命令信号（４０５）をディアサートする（Ｓ０７）。
【００３７】
前記トレース保存命令信号（４０５）がアサートされている間、バストレーサ書き込み制御回路（３３，３４）は、バスサブトレース制御信号（４０８，４１０）を制御することにより、バスサブトレースメモリ（３６，３７）への書き込みを抑止し、条件（Ｓ１４）成立時点でのバストレースをサブトレースメモリ（３６，３７）に保存し、条件（Ｓ１４）成立中はメインのトレースメモリ（３５，３８）書き込み時にサブトレースメモリへの書き込み抑止中を表すビットを付加して書込みを行う（Ｓ０６）。トレース保存命令信号（４０５）がディアサートされている時は、サブトレースメモリ（３６，３７）に主たるトレースメモリ（３５，３８）と同様にバスイベントのトレースを書き込む（Ｓ０８）。
【００３８】
以上のことを具体例で再度説明すると、バスが複数個、例えば図３のようにバス０とバス１の２つのバスがある場合に、バス０におけるリトライ繰り返しはバス０のＵＮＩＴ自体の障害の外に、バス１のＵＮＩＴを原因とした障害である場合が有り得る。このような他バスからの障害が発生した場合においても障害解析ができるように、互いのバスの障害発生時以前のバスイベントを保存し且つ前記障害発生時以後のバスイベントをも保存しようするものである。これを達成するための構成を図３に開示している。具体的には、バス０（２０）を例にすると、バストレースのためのメモリとして、メインメモリ（３５）とサブメモリ（３６）を設け、サブメモリ（３６）には、通常状態でバスイベント書き込むが、障害（例えば、リトライの繰り返し）が発生した時点でそれ以後のバスイベントは書き込みを中止する（障害発生以前の適宜数のバスイベントを記憶することができて障害解析に役立てることができる）。一方、メインメモリ（３５）には障害発生以後もバスイベントを書き込み続ける。バス１（２１）の障害についても同様に動作するように図示のように構成する。
【００３９】
装置トレーサ部（３ｂ）では、図５のフローＳＴＡＲＴ（Ｓ０１）からＥＮＤ（Ｓ０９）までを常に繰り返す。また、一定回数以上同一ＵＮＩＴからの同一アドレスへのリトライ繰り返しが検出された（条件Ｓ１１）後に、前記リトライ繰り返し状態が解除され結果的にバス障害とならなかった場合は条件（Ｓ１１）が不成立となり、他のバス障害条件（Ｓ１２，Ｓ１３）が成立していなければバス障害検出信号（４０３，４０４）がディアサートされる（Ｓ１５）ため、トレース保存命令信号（４０５）がディアサートされサブトレースメモリ（３６，３７）へのトレース書き込みが再開される（Ｓ０８）。
【００４０】
条件（Ｓ１１）成立後、情報処理装置（１ｂ）或いはソフトウェアにて障害を検出した場合（この場合はトレースメモリ３５，３８へのバスイベント書き込みをも中止して障害解析をするという障害）、トレースメモリ（３５，３８）には前記障害検出時までのバス０，１双方のトレースが、サブトレースメモリ（３６，３７）には、条件（Ｓ１１）成立時までのバス０，１双方のトレースが、それぞれのトレースメモリ容量に応じて保存される。障害解析時は、前記トレースメモリ（３５，３８）およびサブトレースメモリ（３６，３７）双方を読み出し比較することによって障害発生直前のバス状態を調査する。
【００４１】
以上、本発明の実施形態を図示の構成例に基づいて説明してきたが、本発明は前記構成例のようにバス数を２本に限定するものではなく、複数のバスに対する適用も通常の知識の範囲で行えるものである。また、バス毎にバストレースメモリとバスサブトレースメモリを設けた構成例を示したが、これに限らず、バストレースメモリとバスサブトレースメモリを２つのバスに対して共通に設けても良い（バスイベントが２つのバスに同時に発生する場合のことも考慮してバス毎のタブを付す等の工夫を施す）。また、図１に示すような１つのバスにおけるバストレース回路に、図３に示すようなメインとサブのバストレースメモリを設けて、リトライ繰り返し（疑バス障害状態）時までのバスイベントをサブバストレースメモリに保存し、且つリトライ繰り返し時以後のバスイベントをメインバストレースメモリに保存しても良い。
【００４２】
以上説明したように、本発明の実施形態は、バストレース回路に従来のバス障害の他に、一定回数以上同一ユニットから特定のトランザクションがリトライされた場合、例えば、同一ユニットから同一アドレスへのトランザクションがリトライされた場合に、疑バス障害状態と認識し（何度もリトライされた結果正常に復帰する場合も有り得るが、リトライが繰り返しあった場合には取り敢えずバス障害と認識する）、障害認識時以前の一定のトレースをエントリ保存する機能と、前記障害認識後もトレースし続ける機能を備えるものである。
【００４３】
また、複数バス構成をもつ情報処理装置においては、装置内のすべてのバストレース回路に上述した機能を設け、何れかのバスＵＮＩＴにおいて疑バス障害状態と認識した場合に、すべてのバストレース回路が疑バス障害状態と認識することで適用できる。
【００４４】
【発明の効果】
本発明によれば、情報処理装置内の任意のＵＮＩＴにおいて障害を検出したとき、すべてのＵＮＩＴについて、障害認識時のトレースおよび障害発生後読み出し直前のトレースを読み出せるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施形態に係るバストレース回路を含む情報処理装置の全体構成を示す図である。
【図２】本実施形態に関するバス上のイベントを時系列でそのままトレースした時のトレーサの状態例を示す図である。
【図３】本発明の実施形態に係る、複数バスからなる情報処理装置におけるバストレース回路の構成を示すブロック図である。
【図４】図３に示すバス障害検出回路の具体的構成例を示すブロック図である。
【図５】図３に示すバストレース回路におけるバス障害検出時のトレース回路動作を示すフロー図である。
【図６】図４に示すバス障害検出回路の動作フローを示す図である。
【符号の説明】
ｔ１，ｔ２　トレーサ状態例
ｍ０１〜ｍ０６　トレーサエントリ
ｎ０１〜ｎ０６　前のトレーサエントリからある時間経過したトレーサエントリｅ０１〜ｅ１２　ループを繰り返すトレーサエントリ
１，１ｂ　情報処理装置
２，２０，２１　バス，バス０，バス１
２ａ，２ｂ，２ｃ，２ｄ　ＵＮＩＴ１〜ＵＮＩＴ４
３，３ｂ　装置トレーサ部
３ａ１〜３ａ４　ＵＮＩＴ１〜ＵＮＩＴ４リトライ検出回路
３ｃ　ＯＲ回路
３ｂ　バス障害検出回路
３ｄ　書き込み制御部
３ｄａ　トレース書き込み制御回路
３ｄｂ１　アドレスバッファａ
３ｄｂ２　アドレスバッファｂ
３ｄｃ　減算回路
３ｄｅ　ライトアドレスカウンタ
３ｅ　トレースメモリ
３ｆ　トレーサリード部
４ａ１〜４ａ４　ＵＮＩＴトレーサ保存命令信号
４ａ５　バス障害トレーサ保存命令信号
４ｂ１〜４ｂ４　ＵＮＩＴリトライ検出信号
４ｃ１　トレーサ保存命令信号
４ｃ２　リトライ検出信号
４ｄ１　データ信号
４ｄ２　書き込み制御信号
４ｅ１　リード制御信号
４ｅ２　リードデータ信号
４ｆ１　リード要求信号
４ｆ２　リードデータ
４ｄａ１　カウンタ制御信号
４ｄａ２　，４ｄａ３　アドレス保持命令信号
４ｄｂ１　リトライ発生時アドレス
４ｄｂ２　ライトカウンタロード値
４ｄｃ１　ロードタイミングアドレス
４ｄｅ１　ライトアドレス
２０１〜２０ｎ　バス０ＵＮＩＴ０１〜ＵＮＩＴ０ｎ
２１１〜２１ｎ　バス１ＵＮＩＴ０１〜ＵＮＩＴ０ｎ
３０，３１　バス０障害検出回路，バス１障害検出回路
３２　ＯＲ回路
３３，３４　バス０トレーサ書込み制御回路，バス１トレーサ書込み制御回路
３５，３８　バス０トレースメモリ，バス１トレースメモリ
３６，３７　バス０サブトレースメモリ，バス１サブトレースメモリ
３９　トレースリード制御回路
４００，４０１　バス０バス信号，バス１バス信号
４０２　装置からの障害検出信号
４０３，４０４　バス障害検出信号
４０５　トレース保存命令信号
４０６，４０９　トレースデータ
４０７，４１１　バストレース書きこみ制御信号
４０８，４１０　バスサブトレース制御信号
４１２　トレーサリード要求信号
４１３，４１５，４１７，４１９　トレースリード制御信号
４１４，４１６，４１８，４２０　トレースデータ信号
４２１　リードデータ信号
３００〜３０ｎ　ＵＮＩＴリトライ判定回路
３０ｄ１〜３０ｄｎ　ＵＮＩＴ疑バス障害信号
３００１　バッファ書き込み制御回路
３００２　リトライ判定用バッファ
３００２ａ　アドレス用バッファ
３００２ｂ　レスポンス用バッファ
３００３　リトライ判定回路
３００４　リトライカウンタ
３００５　デコード回路
３０ａ　レスポンスタイマ部
３０ａ１　レスポンス障害検出信号
３０ｂ　バス障害信号検出回路
３０ｂ１　バス障害信号検出信号
３０ｃ　バス障害判定回路
Ｓ０１　フローＳＴＡＲＴ
Ｓ０２　条件バス０障害検出
Ｓ０３　条件バス１障害検出
Ｓ０４　条件装置障害検出
Ｓ０５　トレース保存信号アサート
Ｓ０６　サブトレースメモリ書き込み抑止
Ｓ０７　トレース保存信号ディアサート
Ｓ０８　サブトレースメモリ書き込み
Ｓ０９　フローＥＮＤ
Ｓ１０　サブフロー障害検出ＳＴＡＲＴ
Ｓ１１　条件同一ＵＮＩＴから同一アドレスへのリトライ繰り返し検出
Ｓ１２　条件リプライ応答タイムアウト
Ｓ１３　条件バス障害信号検出
Ｓ１４　バス障害検出信号アサート
Ｓ１５　バス障害検出信号ディアサート
Ｓ１６　サブフロー障害検出ＥＮＤ
【図１】
2004054685.tif 000003
【図２】
2004054685.tif 000004
【図３】
2004054685.tif 000005
【図４】
2004054685.tif 000006
【図５】
2004054685.tif 000007
【図６】
2004054685.tif 000008