(57)【特許請求の範囲】
【請求項１】
データを格納する第一の格納部と、
該第一の格納部から読み出したデータのエラーを検出する第一のエラー検出部と、
該第一のエラー検出部によってエラーが検出されたデータが格納された該第一の格納部のアドレスを格納する使用禁止アドレス格納部およびデータ保護対象アドレス格納部と、
前記第一の格納部へのデータ書き込み時、データを書き込む該第一の格納部のアドレスと該使用禁止アドレス格納部に格納された使用禁止アドレスとが一致するか否かを判定し、一致した場合に信号を送信する第一判定部と、
該第一判定部から送信される信号に基づいて、差し替え用アドレスを格納する予備空間指定アドレス格納部に格納されている該差し替え用アドレスを選択し、該データ保護対象アドレス格納部に格納されたデータ保護対象アドレスと該差し替え用アドレスとが一致するか否かを判定し、一致した場合に信号を送出する第二判定部と、
該第二判定部から送信される信号に基づいて、該第一の格納部に書き込まれるデータを格納する第二の格納部と、
該第二の格納部から読み出したデータのエラーを検出する第二のエラー検出部と、
該第一のエラー検出部と、該第二のエラー検出部のエラー検出結果に基づき、該第一の格納部と該第二の格納部のいずれか一方に格納されたデータを読み出す読み出し部と、
を有することを特徴とする転送装置。
【請求項２】
請求項１記載の転送装置において、該読み出し部は、該第一のエラー検出部がエラーを検出した場合、該第二の格納部に格納されたデータを読み出すことを特徴とする転送装置。
【請求項３】
請求項１記載の転送装置において、該読み出し部は、該第二のエラー検出部がエラーを
検出した場合、該第一の格納部に格納されたデータを読み出すことを特徴とする転送装置
。
【請求項４】
転送装置の制御方法において、
該転送装置に備えられたデータを格納する第一の格納部から読み出したデータのエラーを検出し、
該エラーが検出されたデータが格納された該第一の格納部のアドレスを使用禁止アドレス格納部およびデータ保護対象アドレス格納部に格納し、
前記第一の格納部へのデータ書き込み時、該第一の格納部のデータを書き込むアドレスと該使用禁止アドレス格納部に格納された使用禁止アドレスとが一致するか否かを判定し、一致する場合に、差し替え用アドレスを格納する予備空間指定アドレス格納部に格納されている該差し替え用アドレスを選択し、
該選択された該差し替え用アドレスと該データ保護対象アドレス格納部に格納されたデータ保護対象アドレスとが一致するか否かを判定し、一致する場合に、該第一の格納部に書き込まれるデータを該転送装置に備えられた第二の格納部に格納し、
該転送装置に備えられた第二の格納部から読み出したデータのエラーを検出し、
該第一の格納部から読み出したデータのエラー検出結果と、該第二の格納部から読み出したデータのエラー検出結果に基づき、該第一の格納部と該第二の格納部のいずれか一方に格納されたデータを読み出すことを有することを特徴とする転送装置の制御方法。
【請求項５】
請求項４記載の転送装置の制御方法において、該第一の格納部から読み出したデータのエラーを検出した場合、該第二の格納部に格納されたデータを読み出すことを特徴とする転送装置の制御方法。
【請求項６】
請求項４記載の転送装置の制御方法において、該第二の格納部から読み出したデータのエラーを検出した場合、該第一の格納部に格納されたデータを読み出すことを特徴とする転送装置の制御方法。
【請求項７】
データを処理する処理装置と、データを格納するメモリとを有する複数のシステムボードが転送装置を介して接続される情報処理装置において、
データを格納する第一の格納部と、
該第一の格納部から読み出したデータのエラーを検出する第一のエラー検出部と、
該第一のエラー検出部によってエラーが検出されたデータが格納された該第一の格納部のアドレスを格納する使用禁止アドレス格納部およびデータ保護対象アドレス格納部と、
前記第一の格納部へのデータ書き込み時、データを書き込む該第一の格納部のアドレスと該使用禁止アドレス格納部に格納された使用禁止アドレスとが一致するか否かを判定し、一致した場合に信号を送信する第一判定部と、
該第一判定部から送信される信号に基づいて、差し替え用アドレスを格納する予備空間指定アドレス格納部に格納されている該差し替え用アドレスを選択し、該データ保護対象アドレス格納部に格納されたデータ保護対象アドレスと該差し替え用アドレスとが一致するか否かを判定し、一致した場合に信号を送出する第二判定部と、
該第二判定部から送信される信号に基づいて、該第一の格納部に書き込まれるデータを格納する第二の格納部と、
該第二の格納部から読み出したデータのエラーを検出する第二のエラー検出部と、
該第一のエラー検出部と、該第二のエラー検出部のエラー検出結果に基づき、該第一の格納部と該第二の格納部のいずれか一方に格納されたデータを読み出す読み出し部と、
を有することを特徴とする情報処理装置。
【請求項８】
請求項７記載の情報処理装置において、該読み出し部は、該第一のエラー検出部がエラーを検出した場合、該第二の格納部に格納されたデータを読み出すことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを転送する転送装置に関し、特にデータを処理する処理装置とデータを格納するメモリとを有する複数のシステムボードを接続する転送装置に関する。
【背景技術】
【０００２】
情報処理装置には、物理的に分離された複数のユニットが実装された構成のものがある。ユニットの１つとして、中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリモジュール等を搭載したシステムボードがある。また、ユニットの１つとして、ハードディスク装置やペリフェラルコンポーネントインターコネクト（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）デバイス等の入出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスを搭載したＩ／Ｏボードがある。システムボード及びＩ／Ｏボードには、データの送受信を行う転送装置であるクロスバスイッチが接続されている。
【０００３】
クロスバスイッチは、データ緩衝制御部を有している。システムボード間やＩ／Ｏボード間で送受信されるデータはデータ緩衝制御部に備えられたキューバッファに格納される。キューバッファは、あるシステムボードから送信されるデータを受信順に格納する。キューバッファはフリップフロップやＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリ素子で構成されている。メモリ素子に格納されたデータは破壊の危険にさらされている。データが破壊される要因の一つとして、ソフトエラーがある。ソフトエラーとは、半導体パッケージや配線材に含まれるウラン等から放射される電荷を持ったα線などがメモリ素子に衝突した際に、メモリ素子に蓄えられた電荷量の値を乱す現象である。フリップフロップの臨界電荷量が低電圧動作などにより減少すると、ソフトエラーが起こりやすくなり、システムの信頼性が低下する。
【０００４】
システムの信頼性を高める機構として、同じ容量のキューバッファを２つ用意し、キューバッファを完全に二重化するものがある。しかし、キューバッファを二重化すると、ハード構成量の増大、延いてはシステムの高価格化の要因となる。
【０００５】
先行技術文献としては、下記のものがある。
【特許文献１】特開昭５３−０９３７３５号公報
【特許文献２】特開昭５７−１９５３９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の課題は、キューバッファを完全に二重化することなく、信頼性を高めることのできるシステムを提供することである。
【課題を解決するための手段】
【０００７】
本発明の転送装置は、データを格納する第一の格納部と、該第一の格納部から読み出したデータのエラーを検出する第一のエラー検出部と、該第一のエラー検出部によってエラーが検出されたデータが格納された該第一の格納部のアドレスを格納する使用禁止アドレス格納部およびデータ保護対象アドレス格納部と、前記第一の格納部へのデータ書き込み時、データを書き込む該第一の格納部のアドレスと該使用禁止アドレス格納部に格納された使用禁止アドレスとが一致するか否かを判定し、一致した場合に信号を送信する第一判定部と、該第一判定部から送信される信号に基づいて、差し替え用アドレスを格納する予備空間指定アドレス格納部に格納されている該差し替え用アドレスを選択し、該データ保護対象アドレス格納部に格納されたデータ保護対象アドレスと該差し替え用アドレスとが一致するか否かを判定し、一致した場合に信号を送出する第二判定部と、該第二判定部から送信される信号に基づいて、該第一の格納部に書き込まれるデータを格納する第二の格納部と、該第二の格納部から読み出したデータのエラーを検出する第二のエラー検出部と、該第一のエラー検出部と、該第二のエラー検出部のエラー検出結果に基づき、該第一の格納部と該第二の格納部のいずれか一方に格納されたデータを読み出す読み出し部とを有することを特徴とする。 
【０００８】
また、本発明の転送装置は、該読み出し部は、該第一のエラー検出部がエラーを検出した場合、該第二の格納部に格納されたデータを読み出すことを特徴とする。
【０００９】
また、本発明の転送装置は、該読み出し部は、該第二のエラー検出部がエラーを検出した場合、該第一の格納部に格納されたデータを読み出すことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、第一の格納部において、読み出しエラーが検出されたアドレスにデータを書き込む場合は、第二の格納部にも当該データを書き込む。そのため、第二の格納部には、第一の格納部の読み出しエラーが検出されたアドレス以外のアドレスにデータを書き込む場合にはデータが書き込まれない。ゆえに、第二の格納部の容量を第一の格納部の容量に比較して小さくしつつ、システムの信頼性を高めることができる。
【発明を実施するための最良の形態】
【００１１】
以下に図面を用いて本実施形態について説明する。
【００１２】
図１は、本実施形態における情報処理装置０を表す。情報処理装置０は、例えば、ｎ個のシステムボード１００及びｎ個の入出力（Ｉ／Ｏ：Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）ボード２００から構成される。ここで、ｎは自然数を表す。システムボードと入出力ボードとは、同数である必要はない。
【００１３】
システムボード１００は、中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０６、メモリコントローラ１０２及びメモリモジュール１０４を有する。メモリコントローラ１０２は、ＣＰＵ１０６から送信されてくる命令に基づき、メモリモジュール１０４にメモリアクセスを行う。そして、メモリコントローラ１０２は、メモリモジュール１０４に対して、データの書き込み又は読み出しを行う。また、メモリコントローラ１０２は、メモリモジュール１０４から読み出したデータをＣＰＵ１０６に送信する。メモリモジュール１０４とは、例えば、複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ：Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が搭載されたデュアルインラインメモリモジュール（ＤＩＭＭ：Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）である。
【００１４】
Ｉ／Ｏボード２００は、ＰＣＩデバイス等２０２を有している。Ｉ／Ｏボード２００は、磁気ディスク装置（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や構内通信網（ＬＡＮ：Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のＩ／Ｏと接続するためのものである。Ｉ／Ｏコントローラ２０４は、ＰＣＩデバイス等２０２を制御する。
【００１５】
システムボード１００及びＩ／Ｏボード２００は、任意のシステムボード１００及びＩ／Ｏボード間のデータ転送を行うためにクロスバスイッチ３００と接続されている。クロスバスイッチ３００は、データ緩衝制御部３０１、アービタ３０２を備える。データ緩衝制御部３０１は、例えば、あるシステムボード１００から他のシステムボード１００に送信されるデータを格納する。格納されたデータは、アービタ３０２によって調停され、当該データを送信すべきシステムボード１００に送信される。
【００１６】
図２は、クロスバスイッチ３００に備えられたデータ緩衝制御部３０１の詳細な構成を表す。データ緩衝制御部３０１は、使用禁止アドレス格納用バッファ４０２、データ保護対象アドレス格納用バッファ４０４、予備空間指定アドレス格納用バッファ４０６、保護データ格納用バッファ４０８、読み出しエラー監視機構４１２、アドレス格納用バッファ登録制御機構４１４、診断制御ステートマシン４１６、キューバッファ４１８及び予備空間４２０を有する。
【００１７】
キューバッファ４１８は、受信順にデータの出し入れを行う。キューバッファ４１８は、フリップフロップやRAMから構成される。
【００１８】
まず、キューバッファ４１８からのデータの読み出し処理について説明する。読み出しエラー監視機構４１２は、第一検出部４１２１及び第二検出部４１２２から構成される。第一検出部４１２１は、キューバッファ４１８から読み出したデータのエラーの検出及び訂正を行う。キューバッファ４１８から読み出したデータには例えば、誤り訂正符号（ＥＣＣ：Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅ）が付加されている。第一検出部４１２１は、読み出したデータ及び当該データに付加された誤り訂正符号に基づいて、誤り検出及び訂正を行う。誤り検出及び訂正により、１ビットエラーは自動訂正され、情報処理装置０の継続運転が可能となっている。また、２ビットエラーについては、確実に問題を検出することができる。第一検出部４１２１は、キューバッファ４１８から読み出したデータの誤りを検出した場合、誤りを検出したデータが格納されていたキューバッファ４１８のアドレスをアドレス格納用バッファ登録制御機構４１４に通知する。第二検出部４１２２については後述する。
【００１９】
アドレス格納用バッファ登録制御機構４１４は、キューバッファ４１８から読み出されたデータが格納されていたアドレスを受信する。また、上述したように、アドレス格納用バッファ登録制御機構４１４には、第一検出部４１２１から、読み出したデータから誤りを検出した旨が通知される。アドレス格納用バッファ登録制御機構４１４は、これらの通知に基づいて、読み出しエラーが発生したアドレスを使用禁止アドレス格納用バッファ４０２及びデータ保護対象アドレス格納用バッファ４０４に格納する。また、アドレス格納用バッファ登録制御機構４１４は、第一検出部４１２１からの通知に基づいて、読み出しエラーが発生する頻度の高いアドレスを優先的に使用禁止アドレス格納用バッファ４０２及びデータ保護対象アドレス格納用バッファ４０４に格納しても良い。
【００２０】
使用禁止アドレス格納用バッファ４０２は、読み出しエラーが発生したキューバッファ４１８のアドレスを格納する。これによれば、当該アドレスにデータを書き込む命令がなされた場合、予め用意したキューバッファ４１８内の予備空間４２０にデータを書き込むように切り替えることで、エラーが発生する確率が高いキューバッファ４１８のアドレスにデータを書き込むことを防ぐことができる。ゆえに、データの信頼性が向上する。また、データ保護対象アドレス格納用バッファ４０４も、読み出しエラーが発生したアドレスを格納する。よって、データ書き込みが命令された場合、データ保護対象アドレス格納用バッファ４０４を参照し、書き込みが命令されたアドレスがデータ保護対象アドレス格納用バッファ４０４に格納されていたのであれば、書き込みデータを保護データ格納用バッファ４０８にも書き込むことができる。ゆえに、エラーが発生する確率が高いアドレスにデータを書き込む場合、データを二重化することができる。
【００２１】
続いて、データの書き込み処理について説明する。セレクタ１には、バス１２を介して診断用アドレスが入力し、バス１４を介して通常用アドレスが入力する。診断用アドレス及び通常用アドレスは、それぞれ診断用アドレス生成部及び通常用アドレス生成部によって生成される。なお、これらアドレス生成部は、クロスバ３００に備えられている。さらに、これらアドレス生成部は、キューバッファ４１８のデータの出し入れを制御している。情報処理装置０は、診断制御ステートマシン４１６によって、診断モードと通常モードに切り替えられる。情報処理装置０を診断モードにする場合は、診断制御ステートマシン４１６は診断用信号をバスを介してセレクタ１に入力する。なお、当該診断用信号は図２における「ＤＩＡＧ  ＳＴＡＴＥ」に対応する。診断用信号の入力によれば、セレクタ１は、バス１２から入力する診断用データを出力できるようになる。一方、情報処理装置０を通常モードにする場合は、診断制御ステートマシン４１６は診断用信号をバスを介してセレクタ１に入力しない。これによれば、セレクタ１は、バス１４から入力する通常用データを出力できるようになる。診断モードについては後述する。
【００２２】
第一比較部４２２は、セレクタ１から入力するアドレスと、使用禁止アドレス格納用バッファ４０２に格納されているアドレスとを比較する。第一比較部４２２は、比較の結果、セレクタ１から入力するアドレスが使用禁止アドレス格納用バッファ４０２に格納されているアドレスに一致すると判定した場合、一致した旨を表す信号をバス２３を介してセレクタ２に入力する。また、第一比較部４２２は、比較の結果、セレクタ１から入力するアドレスが使用禁止アドレス格納用バッファ４０２に格納されているアドレスに一致すると判定した場合、一致した旨を表す信号をバス２１を介して予備空間指定アドレス格納用バッファ４０６に入力する。予備空間指定アドレス格納用バッファ４０６は、第一比較部４２２から通知される信号に基づいて、差し替え用のアドレスをバス２４を介してセレクタ２に入力する。
【００２３】
セレクタ２には、バス２２を介してセレクタ１からのアドレスが入力し、バス２４を介して差し替え用のアドレスが入力する。セレクタ２は、バス２３に信号が入力しない場合は、バス２２から入力するアドレスを判定部である第二比較部４２４及びキューバッファ４１８に出力する。一方、セレクタ２は、バス２３に信号が入力する場合は、差し替え用のアドレスを第二比較部４２４及びキューバッファ４１８に出力する。差し替え用のアドレスは、予備空間指定アドレス格納用バッファ４０６に格納されている。差し替え用のアドレスは、予備空間４２０のアドレスに対応している。
【００２４】
一方、セレクタ３には、バス３２を介して診断用のデータが入力し、バス３４を介して通常用のデータが入力する。バス３４に入力する通常用のデータは、システムボード１００から送信される。情報処理装置０を診断モードにする場合は、診断制御ステートマシン４１６は診断用信号をバスを介してセレクタ３に入力する。これによれば、セレクタ３は、バス３２から入力する診断用データを出力できるようになる。一方、情報処理装置０を通常モードにする場合は、診断制御ステートマシン４１６は診断用信号をバスを介してセレクタ３に入力しない。これによれば、セレクタ３は、バス３４から入力する通常用データを出力できるようになる。
【００２５】
第二比較部４２４は、セレクタ２からアドレスが入力する場合、当該アドレスとデータ保護対象アドレス格納用バッファ４０４に格納されているアドレスとを比較する。第二比較部４２４は、比較の結果、セレクタ２から入力するアドレスがデータ保護対象アドレス格納用バッファ４０４に格納されているアドレスに一致すると判定した場合、バス３６を介して保護データ格納用バッファ４０８に、バス３４から入力するデータを格納するアドレスを通知する。また、第二比較部４２４は、データを書き込む旨の命令がなされると、バス３８を介して保護データ格納用バッファ４０８に、バス３４から入力するデータをラッチさせるための命令を出力する。保護データ格納用バッファ４０８は、第二比較部４２４から通知されるアドレスと、第二比較部４２４から出力される命令に基づいて、バス３４から入力するデータを格納する。これによれば、キューバッファ４１８の読み出しエラーが発生したアドレスにデータを書き込む場合は、保護データ格納用バッファ４０８にも当該データを書き込むことで、書き込み対象となるデータの信頼性を高めることができる。また、保護データ格納用バッファ４０８の容量は、キューバッファ４１８の容量よりも小さいため、情報処理装置０のハード構成量を大幅に増大させることなく、データの信頼性を高めることができる。
【００２６】
一方、第二比較部４２４は、比較の結果、セレクタ２から入力するアドレスがデータ保護対象アドレス格納用バッファ４０４に格納されているアドレスに一致しないと判定した場合、アドレスを保護データ格納用バッファ４０８に通知せず、データをラッチさせるための命令も出力しない。保護データ格納用バッファ４０８は、第二比較部４２４からアドレスの通知もなく、ラッチさせるための命令も出力されないので、バス３４から入力するデータを格納しない。
【００２７】
また、さらに、第二比較部４２４に、セレクタ２から差し替え用アドレスが入力する場合、当該差し替え用アドレスとセレクタ３から入力するデータに基づいて、予備空間４２０にデータを格納する。これによれば、キューバッファ４１８の読み出しエラーが発生したアドレスにデータを書き込む命令がなされた場合は、予備空間４２０に当該データを書き込むことで、データの信頼性を高めることができる。
【００２８】
続いて、データの読み出し処理について説明する。第三比較部４２６は、キューバッファ４１８から第一検出部４１２１によって読み出されるデータが格納されているキューバッファ４１８のアドレスを、キューバッファ４１８から取得する。また、キューバッファ４１８は当該データを第一検出部４１２１に出力する。そして、第三比較部４２６は、読み出したアドレスが、データ保護対象アドレス格納用バッファ４０４に格納されているアドレスと一致するか否かの比較を行う。第三比較部４２６は、当該比較を行うことで、キューバッファ４１８に格納されているデータが保護データ格納用バッファ４０８にも格納されているか否かを判定する。第三比較部４２６は、読み出したアドレスが、データ保護対象アドレス格納用バッファ４０４に格納されているアドレスと一致したと判定した場合、保護データ格納用バッファ４０８に、データが格納されているキューバッファ４１８のアドレスを通知する。保護データ格納用バッファ４０８は、第三比較部４２６から通知されるキューバッファ４１８のアドレスに基づいて、キューバッファ４１８から読み出されたデータに対応付けて格納しているデータを第二検出部４１２２に出力する。さらに、第三比較部４２６は、比較の結果をアドレス格納用バッファ登録制御機構４１４に通知する。アドレス格納用バッファ登録制御機構４１４は、例えば、第三比較部４２６から、読み出したアドレスとデータ保護対象アドレス格納用バッファ４０４に格納されているアドレスとが一致した旨の通知を受け、かつ、第一検出部４１２１が検出したデータのエラーが訂正不可能なデータであれば、使用禁止アドレス格納用バッファ４０２に当該読み出したアドレスを格納する。また、アドレス格納用バッファ登録制御機構４１４は、例えば、第三比較部４２６から、読み出したアドレスとデータ保護対象アドレス格納用バッファ４０４に格納されているアドレスとが一致しない旨の通知を受け、かつ、第一検出部４１２１が検出したデータのエラーが訂正可能なデータであれば、データ保護対象アドレス格納用バッファ４０４に当該読み出したアドレスを格納する。
【００２９】
第一検出部４１２１は、キューバッファ４１８から入力するデータのエラーの検出及び訂正を行う。そして、第一検出部４１２１は、エラー検出の有無をデータ選択部４２８に通知する。また、第一検出部４１２１は、データにエラーがあった場合は訂正したデータを、データにエラーがなかった場合は当該データをバス４２を介してセレクタ４に出力する。同様に、第二の検出部４１２２は、保護データ格納用バッファ４０８から出力するデータのエラーの検出及び訂正を行う。そして、第二の検出部４１２２は、エラー検出の有無をデータ選択部４２８に通知する。また、第二の検出部４１２２は、データにエラーがあった場合は訂正したデータを、データにエラーがなかった場合は当該データをバス４４を介してセレクタ４に出力する。
【００３０】
データ選択部４２８には、第一検出部４１２１及び第二の検出部４１２２からエラー検出の有無が通知される。データ選択部４２８は、第一検出部４１２１からエラー検出が有った旨が通知された場合、選択制御信号をバス４６を介してセレクタ４に入力する。これによれば、セレクタ４は、バス４４から入力するデータを出力する。一方、データ選択部４２８は、第一検出部４１２１からエラー検出が無かった旨が通知された場合、選択制御信号をバス４６を介してセレクタ４に入力しない。これによれば、セレクタ４は、バス４２から入力するデータを出力する。
【００３１】
セレクタ４が出力したデータは、クロスバスイッチ３００に設けられたアービタ３０２に入力する。アービタは、当技術分野では周知の任意のものを利用すれば良い。アービタ３０２は、当該データを送信すべきシステムボード１００に送信する。これによれば、第一検出部４１２１及び第二検出部４１２２が出力するデータのうち、エラーが検出されなかったデータを出力することができ、データの信頼性を高めることができる。
【００３２】
続いて、上述した診断モードについて説明する。診断モードとは通常モードで情報処理装置０を稼動させる前に情報処理装置０の異常を検出するためのモードである。上述したように、情報処理装置０が診断モードの場合、診断制御ステートマシン４１６は診断用信号をセレクタ１及びセレクタ３に入力する。これによれば、セレクタ１は診断用アドレスを出力し、セレクタ３は診断用データを出力することができるようになる。診断モードでは、まず予備空間４２０にデータを書き込む。そして、書き込んだデータを第一検出部４１２１が読み出し、エラーの検出を行い、読み出したデータにエラーが検出された場合にはエラーを検出したデータが格納されていた予備空間４２０のアドレスを使用不可能にする。例えば、エラーが検出されたデータが格納されていた予備空間４２０のアドレスに対応する予備空間指定アドレス格納用バッファ４０６を無効にするなどの方法がある。キューバッファ４１８の通常空間に対しても同様の診断処理を行い、エラーを検出したデータが格納されていたアドレスを使用不可能にする。これによれば、読み出しエラーが発生したデータが格納されていたキューバッファ４１８のアドレスを、通常モードにおいて使用不可能とすることができる。また、例えば、アドレス格納用バッファ登録制御機構４１４は、読み出しエラーが発生したアドレスを使用禁止アドレス格納用バッファ４０２及びデータ保護対象アドレス格納用バッファ４０４に格納しておいても良い。これによれば、通常モードにおいて、これらのバッファに格納されたアドレスに基づいて、情報処理装置０はデータの信頼性を高める処理を行うことができる。
【００３３】
診断制御ステートマシン４１６は、診断の結果やキューバッファ４１８の状態を各通知先に通知することで情報処理装置０の管理を行う。ここで、キューバッファ４１８の状態とは、読み出しエラーが訂正不可能であったこと、使用禁止アドレス格納用バッファ４０２に読み出しエラーが発生したアドレスを格納したこと及び使用不可能としたキューバッファ４１８のアドレスのことである。また、ここで、通知先とは、上位モジュールや保守者である。これによれば、保守者は的確なタイミングで保守を行えるため、高信頼で柔軟な情報処理装置０を構築することができる。
【００３４】
次に、フローチャートを用いて書き込み処理及び読み出し処理について説明する。まず、キューバッファ４１８へのデータ書き込み処理について説明する。
【００３５】
図３のステップＳ１０１において、アドレス生成部は、データを書き込むキューバッファ４１８のアドレスを生成する。アドレスはバス１４からセレクタ１に入力する。セレクタ１は、入力するアドレスを第一比較部４２２及びセレクタ２に出力する。処理はステップＳ１０２へ移行する。
【００３６】
ステップＳ１０２において、第一比較部４２２は、入力するアドレスが使用禁止アドレス格納用バッファ４０２に格納されているか否かを判定する。入力するアドレスが使用禁止アドレス格納用バッファ４０２に格納されている場合、処理はステップＳ１０３へ移行する。一方、入力するアドレスが使用禁止アドレス格納用バッファ４０２に格納されていない場合、処理はステップＳ１０４へ移行する。
【００３７】
ステップＳ１０３において、第一比較部４２２は、セレクタ２に、予備空間指定アドレス格納用バッファ４０６に格納されているアドレスをセレクタ２に出力させるための信号を入力する。これによれば、セレクタ２は、予備空間指定アドレス格納用バッファ４０６に格納されているアドレスをキューバッファ４１８及び第二比較部４２４に出力できるようになる。処理は図４のステップＳ１０５へ移行する。
【００３８】
ステップＳ１０４において、第一比較部４２２は、セレクタ２に、予備空間指定アドレス格納用バッファ４０６に格納されているアドレスをセレクタ２に出力させるための信号を入力しない。これによれば、セレクタ２は、セレクタ１からバス２２を介して入力するアドレスをキューバッファ４１８及び第二比較部４２４に出力できるようになる。処理は図４のステップＳ１０５へ移行する。
【００３９】
ステップＳ１０５において、第二比較部４２４は、セレクタ２から入力するアドレスがデータ保護対象アドレス格納用バッファ４０４に格納されているか否かを判定する。入力するアドレスがデータ保護対象アドレス格納用バッファ４０４に格納されている場合、処理はステップＳ１０６へ移行する。一方、入力するアドレスがデータ保護対象アドレス格納用バッファ４０４に格納されていない場合、処理はステップＳ１０７へ移行する。
【００４０】
ステップＳ１０６において、第二比較部４２４は、データを格納する保護データ格納用バッファ４０８のアドレスを、バス３６を介して、保護データ格納用バッファ４０８に通知する。また、第二比較部４２４は、バス３８を介して、保護データ格納用バッファに入力するデータをラッチさせるための信号を出力する。これによれば、保護データ格納用バッファ４０８は、データ保護対象アドレス格納用バッファ４０４に格納されたアドレスに対応したアドレスにデータを格納することができる。そのため、後述する読み出し処理において、第一検出部４１２１がキューバッファ４１８からデータを読み出す場合に、第二検出部４１２２が当該データに対応したデータを保護データ格納用バッファ４０８からも読み出すことができる。処理は終了する。
【００４１】
ステップＳ１０７において、第二比較部４２４は、データを格納するアドレスを保護データ格納用バッファ４０８に通知しない。これによれば、保護データ格納用バッファ４０８は、データ保護対象アドレス格納用バッファ４０４に格納されたアドレスに対応したアドレスにデータを格納しない。処理は終了する。
【００４２】
次に、キューバッファ４１８からのデータ読み出し処理について説明する。図５のステップＳ２０１において、第三比較部４２６は、キューバッファ４１８から読み出すデータのアドレスを受信する。処理はステップＳ２０２へ移行する。
【００４３】
ステップＳ２０２において、第三比較部４２６は、ステップＳ２０１において受信したアドレスが、データ保護対象アドレス格納用バッファ４０４に格納されているか否かを判定する。アドレスが、データ保護対象アドレス格納用バッファ４０４に格納されている場合は、処理は図７のステップＳ４０１または図８のステップＳ４０５へ移行する。一方、アドレスが、データ保護対象アドレス格納用バッファ４０４に格納されていない場合は、処理は図９のステップＳ４０６または図１０のステップＳ４１０へ移行する。
【００４４】
図６のステップＳ３０１において、第一検出部４１２１は、キューバッファ４１８から読み出したデータを受信する。処理はステップＳ３０２へ移行する。
【００４５】
ステップＳ３０２において、第一検出部４１２１は、ステップＳ３０１において受信したデータがエラーを有しているか否かを判定する。データがエラーを有している場合は、処理はステップＳ３０３へ移行する。一方、データがエラーを有していない場合は、処理は終了する。
【００４６】
ステップＳ３０３において、第一検出部４１２１は、ステップＳ３０１において受信したデータが訂正可能か否かを判定する。データが訂正可能な場合は、処理はステップＳ３０４へ移行する。一方、データが訂正可能でない場合は、処理は図７のステップＳ４０１または図９のステップＳ４０６へ移行する。
【００４７】
ステップＳ３０４において、第一検出部４１２１は、データのエラー訂正を行う。処理は図８のステップＳ４０５または図１０のステップＳ４１０へ移行する。
【００４８】
続いて、図５のステップＳ２０２において肯定的な判断がなされ、かつ図６のステップＳ３０３において否定的な判断がなされた場合について説明する。
【００４９】
図７のステップＳ４０１において、第三比較部４２６は、データ保護対象アドレス格納用バッファ４０４に格納されたアドレスに対応した保護データ格納用バッファ４０８のアドレスに格納されたデータを第二検出部４１２２に出力する。処理はステップＳ４０２へ移行する。
【００５０】
ステップＳ４０２において、第三比較部４２６は、使用禁止アドレス格納用バッファ４０２に空き領域があるか否かを判定する。使用禁止アドレス格納用バッファ４０２に空き領域がある場合、処理はステップＳ４０３へ移行する。一方、使用禁止アドレス格納用バッファ４０２に空き領域がない場合、処理は終了する。
【００５１】
ステップＳ４０３において、アドレス格納用バッファ登録制御機構４１４は、アドレスを使用禁止アドレス格納用バッファ４０２に格納する。処理はステップＳ４０４へ移行する。
【００５２】
ステップＳ４０４において、アドレス格納用バッファ登録制御機構４１４は、データ保護対象アドレス格納用バッファ４０４及び保護データ格納用バッファ４０８を解放し、新たなアドレスのエントリーを可能にする。処理は終了する。
【００５３】
続いて、図５のステップＳ２０２において肯定的な判断がなされ、かつ図６のステップＳ３０３において肯定的な判断がなされた場合について説明する。
【００５４】
図８のステップＳ４０５において、データ選択部４２８は、第一検出部４１２１によって訂正されたデータをセレクタ４に出力させる。具体的には、データ選択部４２８は、セレクタ４に信号を出力しないことで、セレクタ４は、バス４２からの入力を出力することができるようになる。処理は終了する。
【００５５】
続いて、図５のステップＳ２０２において否定的な判断がなされ、かつ図６のステップＳ３０３において否定的な判断がなされた場合について説明する。
【００５６】
図９のステップＳ４０６において、アドレス格納用バッファ登録制御機構４１４は、情報処理装置０が診断モードであるか否かを判定する。具体的には、アドレス格納用バッファ登録制御機構４１４は、診断制御ステートマシン４１６から診断用信号が入力しているか否かに基づいて判断する。情報処理装置０が診断モードである場合は、処理はステップＳ４０７へ移行する。一方、情報処理装置０が診断モードでない場合は、処理はステップＳ４０８へ移行する。
【００５７】
ステップＳ４０８において、データ選択部４２８は、第一検出部４１２１が出力したデータをセレクタ４に出力させる。処理は終了する。
【００５８】
ステップＳ４０７において、アドレス格納用バッファ登録制御機構４１４は、使用禁止アドレス格納用バッファ４０２及びデータ保護対象アドレス格納用バッファ４０４に空き領域があるか否かを判定する。空き領域がある場合は、処理はステップＳ４０９へ移行する。一方、空き領域がない場合は、処理は終了する。
【００５９】
ステップＳ４０９において、アドレス格納用バッファ登録制御機構４１４は、使用禁止アドレス格納用バッファ４０２及びデータ保護対象アドレス格納用バッファ４０４にアドレスを格納する。処理は終了する。
【００６０】
続いて、図５のステップＳ２０２において否定的な判断がなされ、かつ図６のステップＳ３０３において肯定的な判断がなされた場合について説明する。
【００６１】
図１０のステップＳ４１０において、データ選択部４２８は、第一検出部４１２１によって訂正されたデータをセレクタ４に出力させる。処理はステップＳ４１１へ移行する。
【００６２】
ステップＳ４１１において、アドレス格納用バッファ登録制御機構４１４は、データ保護対象アドレス格納用バッファ４０４に空き領域があるか否かを判定する。空き領域がある場合は、処理はステップＳ４１２へ移行する。一方、空き領域がない場合は、処理は終了する。
【００６３】
ステップＳ４１２において、アドレス格納用バッファ登録制御機構４１４は、データ保護対象アドレス格納用バッファ４０４にアドレスを格納する。処理は終了する。
【００６４】
以上の説明は、本実施形態をより良く理解させるために具体的に説明したものであって、別形態を制限するものではない。従って、趣旨を変更しない範囲で変更可能である。本実施形態では、システムボード１００間でのデータの送受信処理について説明したが、本実施形態をＩ／Ｏボード２００間でのデータの送受信処理に適用しても良い。
【００６５】
次に、以上に述べた実施形態から生成される技術的思想を請求項の記載形式に準じて付記として列挙する。本実施形態に係る技術的思想は上位概念から下位概念まで、様々なレベルやバリエーションにより把握できるものであり、以下の付記に本実施形態が限定されるものではない。
（付記１）
データを格納する第一の格納部と、
該第一の格納部から読み出したデータのエラーを検出する第一のエラー検出部と、
該第一のエラー検出部によってエラーが検出されたデータが格納された該第一の格納部のアドレスを格納するアドレス格納部と、
前記第一の格納部へのデータ書き込み時、データを書き込む該第一の格納部のアドレスと該アドレス格納部に格納された該アドレスとが一致するか否かを判定し、一致した場合に信号を送信する判定部と、
該判定部から送信される信号に基づいて、該第一の格納部に書き込まれるデータを格納する第二の格納部と、
該第二の格納部から読み出したデータのエラーを検出する第二のエラー検出部と、
該第一のエラー検出部と、該第二のエラー検出部のエラー検出結果に基づき、第一の格納部と第二の格納部のいずれか一方に格納されたデータを読み出す読み出し部と、
を有することを特徴とする転送装置。
（付記２）
付記１記載の転送装置において、該読み出し部は、該第一のエラー検出部がエラーを検出した場合、該第二の格納部に格納されたデータを読み出すことを特徴とする転送装置。
（付記３）
付記１記載の転送装置において、該読み出し部は、該第二のエラー検出部がエラーを検出した場合、該第一の格納部に格納されたデータを読み出すことを特徴とする転送装置。
（付記４）
付記１記載の転送装置において、該第一の格納部は、さらに、データを格納する予備格納部を有し、該第一の格納部のデータを書き込むアドレスと該アドレス格納部に格納された該アドレスとが一致した場合、該データが前記予備格納部に格納されることを特徴とする転送装置。
（付記５）
転送装置の制御方法において、
該転送装置に備えられたデータを格納する第一の格納部から読み出したデータのエラーを検出し、
該エラーが検出されたデータが格納された該第一の格納部のアドレスをアドレス格納部に格納し、
前記第一の格納部へのデータ書き込み時、該第一の格納部のデータを書き込むアドレスと該アドレス格納部に格納された該アドレスとが一致するか否かを判定し、
該第一の格納部のデータを書き込むアドレスと該アドレス格納部に格納された該アドレスとが一致する場合、該第一の格納部に書き込まれるデータを該転送装置に備えられた第二の格納部に格納し、
該転送装置に備えられた第二の格納部から読み出したデータのエラーを検出し、
該第一の格納部から読み出したデータのエラー検出結果と、該第二の格納部から読み出したデータのエラー検出結果に基づき、第一の格納部と第二の格納部のいずれか一方に格納されたデータを読み出すことを有することを特徴とする転送装置の制御方法。
（付記６）
付記５記載の転送装置の制御方法において、該第一の格納部から読み出したデータのエラーを検出した場合、該第二の格納部に格納されたデータを読み出すことを特徴とする転送装置の制御方法。
（付記７）
付記５記載の転送装置の制御方法において、該第二の格納部から読み出したデータのエラーを検出した場合、該第一の格納部に格納されたデータを読み出すことを特徴とする転送装置の制御方法。
（付記８）
付記５記載の転送装置の制御方法において、該第一の格納部は、さらに、データを格納する予備格納部を有し、該第一の格納部のデータを書き込むアドレスと該アドレス格納部に格納された該アドレスとが一致した場合、該データが前記予備格納部に格納されることを特徴とする転送装置の制御方法。
（付記９）
データを処理する処理装置と、データを格納するメモリとを有する複数のシステムボードが転送装置を介して接続される情報処理装置において、
データを格納する第一の格納部と、
該第一の格納部から読み出したデータのエラーを検出する第一のエラー検出部と、
該第一のエラー検出部によってエラーが検出されたデータが格納された該第一の格納部のアドレスを格納するアドレス格納部と、
前記第一の格納部へのデータ書き込み時、データを書き込む該第一の格納部のアドレスと該アドレス格納部に格納された該アドレスとが一致するか否かを判定し、一致した場合に信号を送信する判定部と、
該判定部から送信される信号に基づいて、該第一の格納部に書き込まれるデータを格納する第二の格納部と、
該第二の格納部から読み出したデータのエラーを検出する第二のエラー検出部と、
該第一のエラー検出部と、該第二のエラー検出部のエラー検出結果に基づき、第一の格納部と第二の格納部のいずれか一方に格納されたデータを読み出す読み出し部と、
を有することを特徴とする情報処理装置。
（付記１０）
付記９記載の情報処理装置において、該読み出し部は、該第一のエラー検出部がエラーを検出した場合、該第二の格納部に格納されたデータを読み出すことを特徴とする情報処理装置。
（付記１１）
付記９記載の情報処理装置において、該読み出し部は、該第二のエラー検出部がエラーを検出した場合、該第一の格納部に格納されたデータを読み出すことを特徴とする情報処理装置。
（付記１２）
付記９記載の情報処理装置において、該第一の格納部は、さらに、データを格納する予備格納部を有し、該第一の格納部のデータを書き込むアドレスと該アドレス格納部に格納された該アドレスとが一致した場合、該データが前記予備格納部に格納されることを特徴とする情報処理装置。
【図面の簡単な説明】
【００６６】
【図１】情報処理装置の構成を表した図である。
【図２】クロスバスイッチに備えられたデータ緩衝制御部の詳細な構成を表した図である。
【図３】書き込み処理を表したフローチャート（その１）である。
【図４】書き込み処理を表したフローチャート（その２）である。
【図５】読み出し処理を表したフローチャート（その１）である。
【図６】読み出し処理を表したフローチャート（その２）である。
【図７】読み出し処理を表したフローチャート（その３）である。
【図８】読み出し処理を表したフローチャート（その４）である。
【図９】読み出し処理を表したフローチャート（その５）である。
【図１０】読み出し処理を表したフローチャート（その６）である。
【符号の説明】
【００６７】
０  情報処理装置
１、２、３、４  セレクタ
１２、１４、２１、２２、２３、２４、３２、３４、３６、３８、４２、４４  バス
１００  システムボード
１０２  メモリコントローラ
１０４  メモリモジュール
１０６  中央処理装置
２００  Ｉ／Ｏボード
２０２  ＰＣＩデバイス等
２０４  Ｉ／Ｏコントローラ
３００  クロスバスイッチ
３０１  データ緩衝制御部
３０２  アービタ
４０２  使用禁止アドレス格納用バッファ
４０４  データ保護対象アドレス格納用バッファ
４０６  予備空間指定アドレス格納用バッファ
４０８  保護データ格納用バッファ
４１２  読み出しエラー監視機構
４１４  アドレス格納用バッファ登録制御機構
４１６  診断制御ステートマシン
４１８  キューバッファ
４２０  予備空間
４２２  第一比較部
４２４  第二比較部
４２６  第三比較部
４２８  データ選択部
４１２１  第一検出部
４１２２  第二検出部
【図７】
0005251142.tif 000002
【図１０】
0005251142.tif 000003
【図１】
0005251142.tif 000004
【図２】
0005251142.tif 000005
【図３】
0005251142.tif 000006
【図４】
0005251142.tif 000007
【図５】
0005251142.tif 000008
【図６】
0005251142.tif 000009
【図８】
0005251142.tif 000010
【図９】
0005251142.tif 000011