(57)【要約】【課題】通常の動作中に負荷の状況に依存することなく故障を診断することができる。【解決手段】データを入力し、入力されたデータを順次シフトしながら記憶する複数のレジスタ１１０〜１１７と、複数のレジスタ１１０〜１１７に記憶されたデータから所定の優先度に基づいて選択したデータを取り出し、取り出されたデータを出力すると共に、誤りを検出するバッファ装置１０であって、装置診断データ書込部１１０ａ〜１１７ａは、出力データ選択部１３０によって取り出されたデータのレジスタにレジスタの故障を診断するデータである診断データを書き込み、診断データ誤り検出部１５０は、データ出力部１２０から出力される診断データの誤りを検出する。【選択図】        図１
2006018486.tif 000002
【特許請求の範囲】
【請求項１】
データを入力するデータ入力手段と、前記データ入力手段によって入力されたデータを出力するデータ出力手段と、前記データ入力手段によって入力されたデータを前記データ入力手段から前記データ出力手段へ順次シフトしながら記憶する複数のレジスタと、前記複数のレジスタに記憶されたデータから所定の優先度に基づいて選択したデータを前記データ出力手段へ取り出す出力データ選択手段と、前記出力データ選択手段によって取り出されたデータの誤りを検出するデータ誤り検出手段と、を備えたバッファ装置であって、
前記出力データ選択手段によって取り出されたデータのレジスタに前記レジスタの故障を診断するデータである診断データを書き込む診断データ書込手段と、
前記データ出力手段から出力される前記診断データの誤りを検出する診断データ誤り検出手段と、
を備えたことを特徴とするバッファ装置。
【請求項２】
前記診断データ書込手段は、前記診断データが書き込まれたレジスタのアドレス情報を該診断データに書き込むことを特徴とする請求項１に記載のバッファ装置。
【請求項３】
前記診断データ誤り検出手段は、誤り検出符号によって前記診断データの誤りを検出することを特徴とする請求項１に記載のバッファ装置。
【請求項４】
前記誤りが検出された診断データを記憶する誤り情報記憶手段をさらに備え、
前記診断データ誤り検出手段は、前記診断データを前記誤り情報記憶手段に記憶させることを特徴とする請求項１または３に記載のバッファ装置。
【請求項５】
データを入力するデータ入力工程と、前記データ入力工程によって入力されたデータを出力するデータ出力工程と、前記データ入力工程によって入力されたデータを前記データ入力工程から前記データ出力工程へ順次シフトしながら記憶する複数のレジスタと、前記複数のレジスタに記憶されたデータから所定の優先度に基づいて選択したデータを前記データ出力工程へ取り出す出力データ選択工程と、前記出力データ選択工程によって取り出されたデータの誤りを検出するデータ誤り検出工程と、を含んだバッファ故障診断方法であって、
前記出力データ選択工程によって取り出されたデータのレジスタに前記レジスタの故障を診断するデータである診断データを書き込む診断データ書込工程と、
前記データ出力工程から出力される前記診断データの誤りを検出する診断データ誤り検出工程と、
を含んだことを特徴とするバッファ故障診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バッファ装置およびバッファ故障診断方法に関し、特に通常の動作中に負荷の状況に依存することなく故障を診断することができるバッファ装置およびバッファ故障診断方法に関するものである。
【背景技術】
【０００２】
従来、データを入力し、入力したデータを順次シフトしながら記憶する複数のレジスタと、複数のレジスタに記憶したデータから所定の優先度に基づいてデータを選択し、選択したデータを出力すると共にデータの誤りを検出するバッファ装置が知られている。ここで、図７および図８を参照して、従来のバッファ装置１０ｂの構成および動作例について説明する。図７は、従来のバッファ装置１０ｂの構成を示す機能ブロック図である。また、図８は、図７に示すバッファ装置１０ｂの動作例を示す図である。
【０００３】
図７に示すように、バッファ装置１０ｂは、データ入力部１００がデータを入力し、レジスタ１１０〜１１７は、入力したデータをデータ出力部１２０に近いレジスタ１１７から順次シフトしながら記憶し、出力データ選択部１３０は、レジスタ１１０〜１１７に記憶したデータから優先度の高いデータを選択し、取り出す。例えば、図８の６のデータの出力に示すように、データ出力部１２０は、レジスタ１１７に記憶されているデータＡ０を出力し、データＡ０を出力したレジスタ１１７は、レジスタ１１６からデータＡ１をシフトする。同時に、データ誤り検出部１４０は、データ出力部１２０に出力したデータＡ０の誤り検出をするので、出力したデータＡ０に誤りが検出されなければ、このデータＡ０が経由してきたレジスタについては故障していないことが期待できる。
【０００４】
このように、データを出力したレジスタは、後段のレジスタのデータをシフトするので、バッファ装置１０ｂが満杯にならないとデータ入力部１００に近いレジスタは、使用されることがない。したがって、出荷前試験によりバッファ装置１０ｂを高負荷な状態にしてレジスタの故障診断を行っていた。ところが、バッファ装置１０ｂは、負荷だけではなく、システム構成や他の装置の動作タイミングなど様々な要因に依存する。例えば、近年の大型サーバの通常の運用では、システム構成や負荷が動的に変化するので、出荷前試験で見逃していたレジスタの故障が顕在化する可能性がある。つまり、従来のバッファ装置では、通常の動作中に負荷の状況に依存することなく故障を診断することができなかった。
【０００５】
例えば、特許文献１では、バッファ装置をディセーブルにしてレジスタをデータで満杯にした後にイネーブルにしてバッファ装置の故障を診断する従来技術が開示されている。
【０００６】
【特許文献１】特開平８−３１４８１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１の従来技術では、バッファ装置をディセーブルにしてレジスタをデータで満杯にした後にイネーブルにしてバッファ装置の故障を診断することができる。しかしながら、特許文献１の従来の技術では、バッファ装置の通常の動作中に負荷の状況に依存することなく故障を診断することができなかった。
【０００８】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、通常の動作中に負荷の状況に依存することなく故障を診断することができるバッファ装置およびバッファ故障診断方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、請求項１の発明に係るバッファ装置は、データを入力するデータ入力手段と、前記データ入力手段によって入力されたデータを出力するデータ出力手段と、前記データ入力手段によって入力されたデータを前記データ入力手段から前記データ出力手段へ順次シフトしながら記憶する複数のレジスタと、前記複数のレジスタに記憶されたデータから所定の優先度に基づいて選択したデータを前記データ出力手段へ取り出す出力データ選択手段と、前記出力データ選択手段によって取り出されたデータの誤りを検出するデータ誤り検出手段と、を備えたバッファ装置であって、前記出力データ選択手段によって取り出されたデータのレジスタに前記レジスタの故障を診断するデータである診断データを書き込む診断データ書込手段と、前記データ出力手段から出力される前記診断データの誤りを検出する診断データ誤り検出手段と、を備えたことを特徴とする。
【００１０】
この請求項１の発明によれば、取り出されたデータのレジスタにレジスタの故障を診断するデータである診断データを書き込み、出力される診断データの誤りを検出することとしたので、バッファ装置は、通常の動作中に負荷の状況に依存することなく故障を診断することができる。
【００１１】
また、請求項２の発明に係るバッファ装置は、請求項１の発明において、前記診断データ書込手段は、前記診断データが書き込まれたレジスタのアドレス情報を該診断データに書き込むことを特徴とする。
【００１２】
この請求項２の発明によれば、診断データが書き込まれたレジスタのアドレス情報を診断データに書き込むこととしたので、バッファ装置は、誤りが検出された診断データから故障したレジスタを特定することができる。
【００１３】
また、請求項３の発明に係るバッファ装置は、請求項１の発明において、前記診断データ誤り検出手段は、誤り検出符号によって前記診断データの誤りを検出することを特徴とする。
【００１４】
この請求項３の発明によれば、誤り検出符号によって診断データの誤りを検出することとしたので、バッファ装置は、容易に診断データの誤りを検出することができる。
【００１５】
また、請求項４の発明に係るバッファ装置は、請求項１または３の発明において、前記誤りが検出された診断データを記憶する誤り情報記憶手段をさらに備え、前記診断データ誤り検出手段は、前記診断データを前記誤り情報記憶手段に記憶させることを特徴とする。
【００１６】
この請求項４の発明によれば、誤りが検出された診断データを記憶させることとしたので、バッファ装置は、容易に故障したレジスタを特定することができる。
【００１７】
また、請求項５の発明に係るバッファ装置は、データを入力するデータ入力工程と、前記データ入力工程によって入力されたデータを出力するデータ出力工程と、前記データ入力工程によって入力されたデータを前記データ入力工程から前記データ出力工程へ順次シフトしながら記憶する複数のレジスタと、前記複数のレジスタに記憶されたデータから所定の優先度に基づいて選択したデータを前記データ出力工程へ取り出す出力データ選択工程と、前記出力データ選択工程によって取り出されたデータの誤りを検出するデータ誤り検出工程と、を含んだバッファ故障診断方法であって、前記出力データ選択工程によって取り出されたデータのレジスタに前記レジスタの故障を診断するデータである診断データを書き込む診断データ書込工程と、前記データ出力工程から出力される前記診断データの誤りを検出する診断データ誤り検出工程と、を含んだことを特徴とする。
【００１８】
この請求項５の発明によれば、取り出されたデータのレジスタにレジスタの故障を診断するデータである診断データを書き込み、出力される診断データの誤りを検出することとしたので、バッファ装置は、通常の動作中に負荷の状況に依存することなく故障を診断することができる。
【発明の効果】
【００１９】
請求項１の発明によれば、取り出されたデータのレジスタにレジスタの故障を診断するデータである診断データを書き込み、出力される診断データの誤りを検出するよう構成したので、バッファ装置は、通常の動作中に負荷の状況に依存することなく故障を診断することができるという効果を奏する。
【００２０】
また、請求項２の発明によれば、診断データが書き込まれたレジスタのアドレス情報を診断データに書き込むよう構成したので、バッファ装置は、誤りが検出された診断データから故障したレジスタを特定することができるという効果を奏する。
【００２１】
また、請求項３の発明によれば、誤り検出符号によって診断データの誤りを検出するよう構成したので、バッファ装置は、容易に診断データの誤りを検出することができるという効果を奏する。
【００２２】
また、請求項４の発明によれば、誤りが検出された診断データを記憶させることとしたので、バッファ装置は、容易に故障したレジスタを特定することができるという効果を奏する。
【００２３】
また、請求項５の発明によれば、取り出されたデータのレジスタにレジスタの故障を診断するデータである診断データを書き込み、出力される診断データの誤りを検出するよう構成したので、バッファ装置は、通常の動作中に負荷の状況に依存することなく故障を診断することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２４】
以下に添付図面を参照して、この発明に係るバッファ装置の好適な実施例を詳細に説明する。ここでは、この発明に係るバッファ装置を以下の二つの実施例について説明する。
（１）実施例１は、一段のバッファ装置をコンピュータの主記憶コントローラに適用する    場合である。
（２）実施例２は、４段の多重化バッファ装置をコンピュータの主記憶コントローラに適    用する場合である。
【実施例１】
【００２５】
本実施例１では、一段のバッファ装置をコンピュータの主記憶コントローラに適用する場合について説明する。ここでは、（１−１）バッファ装置の概要と主要な特徴、（１−２）バッファ装置の構成、（１−３）データおよび診断データの構造の一例、（１−４）データの入出力の動作例、（１−５）データの入力手順、（１−６）データの出力手順の順番に説明する。
【００２６】
（１−１）バッファ装置の概要と主要な特徴
まず、図１を参照して、実施例１のバッファ装置１０の概要と主要な特徴について説明する。図１は、本実施例１に係るバッファ装置１０の構成を示す機能ブロック図である。本実施例１に係るバッファ装置１０は、データを入力するデータ入力部１００と、データ入力部１００によって入力されたデータを出力するデータ出力部１２０と、データ入力部１００によって入力されたデータをデータ入力部１００からデータ出力部１２０へ順次シフトしながら記憶するレジスタ１１０〜１１７と、レジスタ１１０〜１１７に記憶されたデータから所定の優先度に基づいて選択したデータをデータ出力部１２０へ取り出す出力データ選択部１３０と、出力データ選択部１３０によって取り出されたデータの誤りを検出するデータ誤り検出部１４０と、を備えた装置であり、通常の動作中に負荷の状況に依存することなく故障を診断することができることを特徴とする。
【００２７】
特に、診断データ書込部１１０ａ〜１１７ａは、出力データ選択部１３０によって取り出されたデータのレジスタにレジスタの故障を診断するデータである診断データを書き込み、診断データ誤り検出部１５０は、データ出力部１２０から出力される診断データの誤りを検出することとしたので、バッファ装置１０は、通常の動作中に負荷の状況に依存することなく故障を診断することができる。
【００２８】
（１−２）バッファ装置の構成
次に、図１を参照して、実施例１に係るバッファ装置１０の構成について説明する。図１に示すバッファ装置１０は、コンピュータのＣＰＵのキャッシュから主記憶装置へデータを入力し、または主記憶装置からＣＰＵのキャッシュへデータを出力する主記憶コントローラの入出力バッファを構成するバッファであり、データ入力部１００、レジスタ１１０〜１１７、データ出力部１２０、出力データ選択部１３０、データ誤り検出部１４０、診断データ誤り検出部１５０を有する。
【００２９】
データ入力部１００は、コンピュータのＣＰＵのキャッシュからデータを入力する入力部である。また、レジスタ１１０〜１１７は、データ入力部１００によって入力されたデータをデータ入力部１００からデータ出力部１２０へ順次シフトしながら記憶するレジスタであり、診断データ書込部１１０ａを有する。診断データ書込部１１０ａは、出力データ選択部１３０によって取り出されたデータのレジスタにレジスタの故障を診断するデータである診断データを書き込む書込部である。
【００３０】
診断データ書込部１１０ａは、無効なデータであることを識別する情報である無効データ識別情報を診断データに書き込むことができる。例えば、診断データのオペレーション部に無効データ識別情報を書き込む。なお、診断データについては別途詳細に説明する。また、診断データ書込部１１０ａは、所定のビットパターンを診断データに書き込むことができる。例えば、“０１０１０１０１・・・・・”または“１０１０１０１０・・・・・”の２つの互いに反転したビットパターンに対してパリティを付与したものを交互に使用する。このように、診断データ書込部１１０ａは、ビットパターンを診断データに書き込むこととしたので、バッファ装置１０は、レジスタの特定ビットが“０”あるいは“１”にスタックした故障の検出や隣接ビットの影響を受けるような故障の検出ができる。
【００３１】
診断データ書込部１１０ａは、診断データが書き込まれたレジスタのアドレス情報を診断データに書き込むことができる。また、診断データ書込部１１０ａは、複数のアドレス情報を診断データに書き込むことができる。このようにすると、バッファ装置１０は、診断データ誤り検出部１５０によってデータ出力部１２０から出力された診断データの誤りを検出し、診断データの複数のアドレス情報のうち誤りが検出されなかった正しいアドレス情報から故障したレジスタを特定することができる。例えば、診断データの正しいアドレス情報からレジスタの識別情報１１５が得られた場合は、レジスタ１１５〜１１７の間でレジスタが故障したことが分かる。なお、本実施例では、診断データ書込部１１０ａは、診断データとして複数のアドレス情報を診断データに書き込むこととする。
【００３２】
このように、診断データ書込部１１０ａは、診断データをレジスタに書き込む際にレジスタのアドレス情報を複数書き込むこととしたので、バッファ装置１０は、正しいアドレス情報によってレジスタの故障箇所を特定することができる。
【００３３】
データ出力部１２０は、データ入力部１００によって入力されたデータをコンピュータの主記憶装置に出力する出力部である。また、出力データ選択部１３０は、レジスタ１１０〜１１７に記憶されたデータから所定の優先度に基づいてデータを選択し、データ出力部１２０へ取り出す選択部である。
【００３４】
データ誤り検出部１４０は、出力データ選択部１３０によって取り出されたデータの誤りを検出する検出部である。また、データ誤り検出部１４０は、誤り検出符号によって診断データの誤りを検出する。例えば、データ誤り検出部１４０は、パリティビットによって診断データの誤りを検出する。
【００３５】
診断データ誤り検出部１５０は、データ出力部１２０から出力される診断データの誤りを検出する検出部であり、誤り情報記憶部１５０ａを有する。誤り情報記憶部１５０ａは、誤りが検出された診断データを記憶する。診断データは、複数のアドレス情報を有しているので、診断データ誤り検出部１５０は、誤りが検出されなかった正しいアドレス情報から故障したレジスタを特定することができる。また、診断データ誤り検出部１５０は、誤り検出符号によって診断データの誤りを検出する。例えば、診断データ誤り検出部１５０は、パリティビットによって診断データの誤りを検出する。
【００３６】
（１−３）データおよび診断データの構造の一例
次に、図２を参照して、図１に示すバッファ装置１０に記憶されるデータのデータ構造の一例について説明する。図２は、図１に示すバッファ装置１０に記憶されるデータのデータ構造の一例を示す図である。例えば、データは、３６ビットを１ワードとし、オペレーション部、オペランド部、パリティビット部を有する。オペレーション部は、８ビットであり、データの読出し、またはデータの書込みなどの命令を表す。また、オペランド部は、２４ビットであり、データのアドレスおよび／またはデータの内容を表す。また、パリティ部は、４ビットであり、オペレーション部とオペランド部の８ビットごとの誤りを検出するために付与されたパリティビットである。
【００３７】
診断データは、レジスタの故障を診断するデータであり、無効なデータであることを識別する情報である無効データ識別情報を有する。または、診断データは、所定のビットパターンを有する。例えば、“０１０１０１０１・・・・・”もしくは“１０１０１０１０・・・・・”の２つの互いに反転したビットパターンに対してパリティを付与したものを交互に使用する。または、診断データは、レジスタのアドレス情報を有する。または、診断データは、複数のアドレス情報を有する。なお、本実施例では、診断データは、複数のアドレス情報を有することとする。
【００３８】
（１−４）データの入出力の動作例
次に、図３を参照して、図１に示すバッファ装置１０の動作例について説明する。図３は、図１に示すバッファ装置１０の動作例を示す図である。同図の１および２に示すように、データ入力部１００は、データＡ０およびＢ０を入力し、順次入力する。そして、同図の３に示すように、出力データ選択部１３０は、所定の優先度に基づいてデータＢ０をデータ出力部１２０に取り出し、同時に、データ誤り検出部１４０は、データＢ０の誤り検出を行い、診断データ書込部１１０ａは、データＢ０のレジスタに診断データ（ＣＤ）を書き込む。
【００３９】
さらに、同図の４に示すように、データ入力部１００は、データＢ１、Ａ１を入力し、順次入力する。同図の５、６に示すように、出力データ選択部１３０は所定の優先度に基づいてデータＢ１、Ａ０をデータ出力部１２０に順次取り出すと、同時に、データ誤り検出部１４０はデータＢ１、Ａ０の誤り検出を順次行い、診断データ書込部１１０ａは、データＢ１、Ａ０のレジスタに順次診断データ（ＣＤ）を書き込む。
【００４０】
そして、同図の７に示すように、データ入力部１００は、データＡ２〜Ａ６を入力し、順次入力する。このように、バッファ装置１０は、データをデータ入力部１００から入力してデータ出力部１２０へシフトするよう制御し、かつデータが出力した後も診断データをレジスタに残すこととしたので、バッファ装置１０は、入力したデータに全てのレジスタを経由させることができるようになり、未使用のレジスタがなくなる。したがって、通常の動作中に負荷の状況に依存することなくレジスタの故障を診断することができる。
【００４１】
（１−５）データの入力手順
次に、図４を参照して、図１に示すバッファ装置１０の入力手順について説明する。図４は、図１に示すバッファ装置１０の入力手順を示すフローチャートである。バッファ１０の入力手順は、（１−５ａ）レジスタ１１７が初期データを保持する場合の手順、ステップＳ４０１〜ステップＳ４０８、（１−５ｂ）レジスタ１１７が診断データを保持する場合の手順、ステップＳ４０９〜ステップＳ４１１、（１−５ｃ）レジスタ１１７が通常のデータを保持する場合の手順、ステップＳ４１２〜ステップＳ４２０に大別できる。
【００４２】
レジスタ１１７が通常のデータまたは診断データを保持することは、バッファ装置１０のレジスタ１１０〜１１７は、通常のデータまたは診断データで満杯となっている状態である。また、レジスタ１１７が初期データを保持することは、バッファ装置１０が起動した際の初期データがそのまま残っており、レジスタ１１０〜１１７は、まだデータまたは診断データで満たされていない状態である。したがって、ステップＳ４０１〜ステップＳ４０８の手順は、バッファ装置１０が起動して間もない過度的な状態にあり、バッファ装置１０が定常的に動作するとこの手順を経ることはなくなる。ここでは、（１−５ａ）レジスタ１１７が初期データを保持する場合の手順、（１−５ｂ）レジスタ１１７が診断データを保持する場合の手順、（１−５ｃ）レジスタ１１７が通常のデータを保持する場合の手順の順番に説明する。
【００４３】
（１−５ａ）レジスタ１１７が初期データを保持する場合の手順
同図に示すように、データ入力部１００は、ＣＰＵのキャッシュからデータを入力するまで待つ（ステップＳ４０１）。そして、データ入力部１００がＣＰＵのキャッシュからデータを入力すると（ステップＳ４０１肯定）、出力データ選択部１３０は、レジスタ１１７がデータを保持しているか否かを判定する（ステップＳ４０２）。その結果、レジスタ１１７がデータを保持していない場合は（ステップＳ４０２否定）、出力データ選択部１３０は、さらに、レジスタ１１７が診断データを保持しているか否かを判定する（ステップＳ４０３）。
【００４４】
その結果、レジスタ１１７が診断データを保持していない場合は（ステップＳ４０３否定）、出力データ選択部１３０は、レジスタ１１７のデータが初期データであると判定し、レジスタの添え字ｉ＝１１６と設定する（ステップＳ４０４）。そして、出力データ選択部１３０は、レジスタｉが初期データでない最初のデータであるか否かを判定する（ステップＳ４０５）。その結果、レジスタｉが初期データでない最初のデータである場合は（ステップＳ４０５肯定）、出力データ選択部１３０は、ステップＳ４０７に進む。一方、レジスタｉが初期データである場合は（ステップＳ４０５否定）、出力データ選択部１３０は、レジスタｉ＝１１６〜１１０まで繰り返したか否かを判定する（ステップＳ４０６）。その結果、レジスタｉ＝１１６〜１１０まで繰り返していない場合は（ステップＳ４０６否定）、出力データ選択部１３０は、ステップＳ４０５に戻り、ステップＳ４０５〜ステップＳ４０６を繰り返す。
【００４５】
一方、レジスタｉ＝１１６〜１１０まで繰り返した場合は（ステップＳ４０６肯定）、出力データ選択部１３０は、さらにレジスタ１１０のデータが初期データであるか否かを判定する（ステップＳ４０７）。その結果、レジスタ１１０のデータが初期データでない場合は（ステップＳ４０７否定）、出力データ選択部１３０は、レジスタｉが通常のデータを保持すると判定し、レジスタの添え字ｋ＝ｉ＋１と設定し（ステップＳ４０８）、ステップＳ４１７〜ステップＳ４２０の手順を実施し、データを１つづつレジスタ１１７の方向にシフトして、レジスタ１１０に新しいデータを入力する。なお、ステップＳ４１７〜ステップＳ４２０の手順については別途詳細に説明する。一方、レジスタ１１０のデータが初期データである場合は（ステップＳ４０７肯定）、出力データ選択部１３０は、ステップＳ４２０に進み、レジスタに新しいデータを入力する。このようにバッファ装置１０は、レジスタ１１７が初期データである場合の手順、ステップＳ４０１〜ステップＳ４０８を実施する。
【００４６】
（１−５ｂ）レジスタ１１７が診断データを保持する場合の手順
これに対して、レジスタ１１７が診断データを保持している場合の手順、ステップＳ４０９〜ステップＳ４１１は、次の通りである。すなわち、レジスタ１１７が診断データを保持している場合は（ステップＳ４０３肯定）、診断データ誤り検出部１５０は、レジスタ１１７の診断データの誤り検出を実施する（ステップＳ４０９）。そして、レジスタ１１７にレジスタ１１６のデータをシフトし（ステップＳ４１０）、出力データ選択部１３０は、レジスタの添え字ｋ＝１１６と設定し（ステップＳ４１１）、ステップＳ４１７〜ステップＳ４２０の手順を実施し、データを１つづつレジスタ１１７の方向にシフトして、レジスタ１１０に新しいデータを入力する。このようにして、バッファ装置１０は、レジスタ１１７が診断データである場合の手順、ステップＳ４０９〜ステップＳ４１１を実施する。
【００４７】
（１−５ｃ）レジスタ１１７が通常のデータを保持する場合の手順
これに対して、レジスタ１１７が通常のデータを保持している場合の手順、ステップＳ４１２〜ステップＳ４２０は、次の通りである。すなわち、レジスタ１１７が通常のデータを保持している場合は（ステップＳ４０２肯定）、出力データ選択部１３０は、レジスタの添え字ｋ＝０、ｉ＝１１６と設定する（ステップＳ４１２）。
【００４８】
そして、出力データ選択部１３０は、レジスタｉが診断データを保持するか否かを判定する（ステップＳ４１３）。その結果、レジスタｉが診断データを保持している場合は（ステップＳ４１３肯定）、出力データ選択部１３０は、診断データを保持しているレジスタの添え字ｋ＝ｉと設定する（ステップＳ４１４）。一方、レジスタｉが診断データを保持していない場合は（ステップＳ４１３否定）、出力データ選択部１３０は、さらに、レジスタｉ＝１１６〜１１１まで繰り返したか否かを判定する（ステップＳ４１５）。その結果、レジスタｉ＝１１６〜１１１まで繰り返していない場合は（ステップＳ４１５否定）、出力データ選択部１３０は、ステップＳ４１３に戻り、ステップＳ４１３〜ステップＳ４１５の手順を繰り返し、診断データを保持しているレジスタを見つける。
【００４９】
一方、レジスタｉ＝１１６〜１１１まで繰り返した場合は（ステップＳ４１５肯定）、出力データ選択部１３０は、さらに添え字ｋ＝０であるか否かを判定する（ステップＳ４１６）。その結果、添え字ｋ＝０である場合は（ステップＳ４１６肯定）、すなわち、診断データが見つからなかった場合は、出力データ選択部１３０は、データを入力する余地がないので、本手順を終了する。
【００５０】
一方、添え字ｋ＝０でない場合は（ステップＳ４１６否定）、すなわち、診断データが見つかった場合は、出力データ選択部１３０は、レジスタの添え字ｉ＝ｋと設定する（ステップＳ４１７）。そして、出力データ選択部１３０は、レジスタｉにレジスタ（ｉ−１）のデータをシフトさせ（ステップＳ４１８）、データのシフトをレジスタｉ＝ｋ〜１１１まで繰り返したか否かを判定する（ステップＳ４１９）。
【００５１】
その結果、データのシフトをレジスタｉ＝ｋ〜１１１まで繰り返していない場合は（ステップＳ４１９否定）、出力データ選択部１３０は、ステップＳ４１８に戻り、ステップＳ４１８〜ステップＳ４１９の手順を繰り返す。一方、データのシフトをレジスタｉ＝ｋ〜１１１まで繰り返した場合は（ステップＳ４１９肯定）、データ入力部１００は、レジスタ１１０に新しいデータを入力する。
【００５２】
このように、（１−５ａ）レジスタ１１７が初期データを保持している場合の手順では、レジスタ１１６〜１１１のデータをレジスタ１１７の方向に１つシフトさせ、データ入力部１００がレジスタ１１０に新しいデータを入力し、（１−５ｂ）レジスタが診断データを保持している場合の手順では、診断データ誤り検出部１５０がレジスタ１１７の診断データの誤りを検出し、レジスタ１１７が保持した診断データに後段のデータをシフトして、データ入力部１００がレジスタ１１０に新しいデータを入力し、（１−５ｃ）レジスタ１１７が通常のデータを保持している場合の手順では、レジスタが保持している診断データに後段のデータをシフトして、データ入力部１００が新しいデータを入力することとしたので、バッファ装置１０は、診断データを必要以上にレジスタ１１０〜１１７に保持することなく、入力したデータを全てのレジスタを経由させることができるようになり、未使用のレジスタがなくなる。したがって、通常の動作中に負荷の状況に依存することなく、バッファ装置１０の故障を診断することができる。
【００５３】
（１−６）データの出力手順
次に、図５を参照して、図１に示すバッファ装置１０の出力手順について説明する。図５は、図１に示すバッファ装置１０の出力手順を示すフローチャートである。まず、出力データ選択部１３０は、レジスタの添え字ｓ＝１１７と設定する（ステップＳ５０１）。そして、出力データ選択部１３０は、レジスタｉのデータがレジスタｓのデータより優先度が高いか否かを判定する（ステップＳ５０２）。
【００５４】
その結果、レジスタｉのデータがレジスタｓのデータより優先度が高い場合は（ステップＳ５０２肯定）、出力データ選択部１３０は、添え字ｓ＝ｉと設定する（ステップＳ５０３）。一方、レジスタｉのデータがレジスタｓのデータより優先度が低い場合は（ステップＳ５０２否定）、出力データ選択部１３０は、レジスタｉ＝１１６〜１１０まで、優先度の比較を繰り返したか否かを判定する（ステップＳ５０４）。
【００５５】
その結果、レジスタｉ＝１１６〜１１０まで、優先度の比較を繰り返していない場合は（ステップＳ５０４否定）、出力データ選択部１３０は、ステップＳ５０２に戻り、ステップＳ５０２〜ステップＳ５０３を繰り返す。一方、レジスタｉ＝１１６〜１１０まで、優先度の比較を繰り返した場合は（ステップＳ５０４肯定）、データ出力部１２０は、レジスタｓのデータを出力し（ステップＳ５０５）、データ誤り検出部１４０は、レジスタｓのデータの誤りを検出し（ステップＳ５０６）、データレジスタｓの診断データ書込部は診断データを書き込む（ステップＳ５０７）。
【００５６】
このように、出力データ選択部１３０は、所定の優先度に基づいてレジスタ１１０〜１１７の中で最も高い優先度のレジスタｓのデータを選択し、レジスタｓからデータ出力部１２０に取り出し、レジスタｓの診断データ書込部は、データを取り出した後のレジスタｓに診断データを書き込むこととしたので、バッファ装置１０は、データまたは診断データを全てのレジスタ１１０〜１１７を経由させることができるようになり、未使用のレジスタがなくなる。したがって、通常の動作中に負荷の状況に依存することなく、レジスタ１１０〜１１７の故障を診断することができる。
【００５７】
上述してきたように、本実施例１では、診断データ書込部１１０ａ〜１１７ａは、取り出されたデータのレジスタにレジスタの故障を診断するデータである診断データを書き込み、診断データ誤り検出部１５０は、出力される診断データの誤りを検出することとしたので、バッファ装置１０は、通常の動作中に負荷の状況に依存することなく故障を診断することができる。
【００５８】
また、診断データ書込部１１０ａ〜１１７ａは、診断データが書き込まれたレジスタのアドレス情報を診断データに書き込むこととしたので、バッファ装置１０は、誤りが検出された診断データから故障したレジスタを特定することができる。
【００５９】
また、診断データ誤り検出部１５０は、誤り検出符号によって診断データの誤りを検出することとしたので、バッファ装置１０は、容易に診断データの誤りを検出することができる。
【００６０】
また、診断データ誤り検出部１５０は、誤りが検出された診断データを記憶させることとしたので、バッファ装置１０は、容易に故障したレジスタを特定することができる。
【実施例２】
【００６１】
本実施例２では、４段の多重化バッファ装置をコンピュータの主記憶コントローラに適用する場合について説明する。ここでは、図６を参照して、実施例２に係るバッファ装置１０ａの構成について説明する。図６は、実施例２に係るバッファ装置１０ａの構成を示す機能ブロック図である。なお、実施例１と共通の内容については説明を省略し、相違点について説明する。
【００６２】
同図に示すように、実施例２に係るバッファ装置１０ａは、データ入力部１００、入力切替部１０１〜１０３、バッファ１０−０〜３、データ出力部１２０、出力データ選択部１３０、１３０−０〜３、データ誤り検出部１４０を有する。
【００６３】
これらのうち、データ入力部１００、データ出力部１２０、出力データ選択部１３０、データ誤り検出部１４０は、実施例１と同様であるので、入力切替部１０１〜１０３およびバッファ１０−０〜３について説明する。
【００６４】
バッファ１０−０〜３は、それぞれ４組のレジスタ（１１０−０〜３、１１１−０〜３、１１２−０〜３、１１３−０〜３）、出力データ選択部１３０−０〜３、診断データ誤り検出部１５０−０〜３を有する。また、バッファ１０−０〜２は、出力データ選択部１３０−０〜２の出力側と次段のバッファ１０−１〜３のデータ入力部１００が接続されている。
【００６５】
バッファ１０−０〜３は、それぞれ診断データ誤り検出部１５０−０〜３を有しているので、診断データの故障を診断することができる。また、入力切替部１０１〜１０３は、データ入力部１００と前段の出力データ選択部１３０−０〜２を切替える切替部である。
【００６６】
このように、診断データ書込部（１１０ａ−０〜３）〜（１１３ａ−０〜３）は、出力データ選択部１３０−０〜１３０−３によって取り出されたデータのレジスタにレジスタの故障を診断するデータである診断データを書き込み、診断データ誤り検出部１５０−０〜３は、バッファ１０−０〜３から出力される診断データの誤りを検出することとしたので、バッファ装置１０ａは、通常の動作中に負荷の状況に依存することなく故障を診断することができる。
【００６７】
また、バッファ１０−１〜３は、データ入力部１００と前段の出力データ選択部１３０−０〜２を切替えることができるので、普段は前段のバッファ１０−０〜２からデータを入力するが、前段のバッファ１０−０〜２が故障した場合は、データ入力部１００から直接データを入力することができる。したがって、バッファ装置１０は、４段のどのバッファ１０−０〜３が故障しても故障したバッファを切り離してバッファとして機能することができる。
【００６８】
さて、これまで本発明の実施例１および２について説明したが、本発明は上述した実施例以外にも、上記特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【００６９】
例えば、本実施例１および２では、診断データは、複数のアドレス情報を有する場合について説明したが、これだけに限定されるものではなく、診断データは、無効データ識別情報を有する場合、または所定のビットパターンを有する場合にも適用できる。
【００７０】
（付記１）データを入力するデータ入力手段と、前記データ入力手段によって入力されたデータを出力するデータ出力手段と、前記データ入力手段によって入力されたデータを前記データ入力手段から前記データ出力手段へ順次シフトしながら記憶する複数のレジスタと、前記複数のレジスタに記憶されたデータから所定の優先度に基づいて選択したデータを前記データ出力手段へ取り出す出力データ選択手段と、前記出力データ選択手段によって取り出されたデータの誤りを検出するデータ誤り検出手段と、を備えたバッファ装置であって、
前記出力データ選択手段によって取り出されたデータのレジスタに前記レジスタの故障を診断するデータである診断データを書き込む診断データ書込手段と、
前記データ出力手段から出力される前記診断データの誤りを検出する診断データ誤り検出手段と、
を備えたことを特徴とするバッファ装置。
【００７１】
（付記２）前記診断データ書込手段は、無効なデータであることを識別する情報である無効データ識別情報を前記診断データに書き込むことを特徴とする付記１に記載のバッファ装置。
【００７２】
（付記３）
前記診断データ書込手段は、所定のビットパターンを前記診断データに書き込むことを特徴とする付記１または２に記載のバッファ装置。
【００７３】
（付記４）前記診断データ書込手段は、前記診断データが書き込まれたレジスタのアドレス情報を該診断データに書き込むことを特徴とする付記１または２に記載のバッファ装置。
【００７４】
（付記５）前記診断データ書込手段は、複数の前記アドレス情報を前記診断データに書き込むことを特徴とする付記１または４に記載のバッファ装置。
【００７５】
（付記６）前記診断データ誤り検出手段は、誤り検出符号によって前記診断データの誤りを検出することを特徴とする付記１に記載のバッファ装置。
【００７６】
（付記７）前記診断データ誤り検出手段は、パリティビットによって前記診断データの誤りを検出することを特徴とする付記１または６に記載のバッファ装置。
【００７７】
（付記８）前記誤りが検出された診断データを記憶する誤り情報記憶手段をさらに備え、
前記診断データ誤り検出手段は、前記診断データを前記誤り情報記憶手段に記憶させることを特徴とする付記１、６または７に記載のバッファ装置。
【００７８】
（付記９）データを入力するデータ入力工程と、前記データ入力工程によって入力されたデータを出力するデータ出力工程と、前記データ入力工程によって入力されたデータを前記データ入力工程から前記データ出力工程へ順次シフトしながら記憶する複数のレジスタと、前記複数のレジスタに記憶されたデータから所定の優先度に基づいて選択したデータを前記データ出力工程へ取り出す出力データ選択工程と、前記出力データ選択工程によって取り出されたデータの誤りを検出するデータ誤り検出工程と、を含んだバッファ故障診断方法であって、
前記出力データ選択工程によって取り出されたデータのレジスタに前記レジスタの故障を診断するデータである診断データを書き込む診断データ書込工程と、
前記データ出力工程から出力される前記診断データの誤りを検出する診断データ誤り検出工程と、
を含んだことを特徴とするバッファ故障診断方法。
【産業上の利用可能性】
【００７９】
以上のように、本発明にかかるバッファ装置は、データ処理装置のバッファ装置に有用であり、特に、コンピュータのバッファ装置に適している。
【図面の簡単な説明】
【００８０】
【図１】本実施例１に係るバッファ装置の構成を示す機能ブロック図である。
【図２】図１に示すバッファ装置に記憶されるデータのデータ構造の一例を示す図である。
【図３】図１に示すバッファ装置の動作例を示す図である。
【図４】図１に示すバッファ装置の入力手順を示すフローチャートである。
【図５】図１に示すバッファ装置の出力手順を示すフローチャートである。
【図６】実施例２に係るバッファ装置の構成を示す機能ブロック図である。
【図７】従来のバッファ装置の構成を示す機能ブロック図である。
【図８】図７に示すバッファ装置の動作例を示す図である。
【符号の説明】
【００８１】
１０、１０ａ、１０ｂ    バッファ装置
１０−０、１０−１、１０−２、１０−３    バッファ
１００    データ入力部
１０１、１０２、１０３    入力切替部
１１０、１１１、１１２、１１３、１１４、１１５、１１６、１１７、１１０−０、１１０−１、１１０−２、１１０−３、１１１−０、１１１−１、１１１−２、１１１−３、１１２−０、１１２−１、１１２−２、１１２−３、１１３−０、１１３−１、１１３−２、１１３−３    レジスタ
１１０ａ、１１１ａ、１１２ａ、１１３ａ、１１４ａ、１１５ａ、１１６ａ、１１７ａ、１１０ａ−０、１１０ａ−１、１１０ａ−２、１１０ａ−３、１１１ａ−０、１１１ａ−１、１１１ａ−２、１１１ａ−３、１１２ａ−０、１１２ａ−１、１１２ａ−２、１１２ａ−３、１１３ａ−０、１１３ａ−１、１１３ａ−２、１１３ａ−３    診断データ書込部
１２０    データ出力部
１３０、１３０−０、１３０−１、１３０−２、１３０−３    出力データ選択部
１４０    データ誤り検出部
１５０、１５０−０、１５０−１、１５０−２、１５０−３    診断データ誤り検出部
１５０ａ、１５０ａ―０、１５０ａ―１、１５０ａ―２、１５０ａ―３    誤り情報記憶部
【図１】
2006018486.tif 000003
【図２】
2006018486.tif 000004
【図３】
2006018486.tif 000005
【図４】
2006018486.tif 000006
【図５】
2006018486.tif 000007
【図６】
2006018486.tif 000008
【図７】
2006018486.tif 000009
【図８】
2006018486.tif 000010