(57)【要約】【課題】ランクの交替を行う切替機構の故障及び交替処理失敗を検出する電子装置、電子装置制御方法及び電子装置制御プログラムを提供する。【解決手段】書込部２１１は、初期化用データに第１エラーを発生させるデータを付加して交替側ランク１２に格納することで交替側ランク１２を初期化する。ランク制御部２１３は、通常側ランク１１に対してデータの読み書きを行っている状態で、通常側ランク１１で切替対象エラーが発生した場合に、通常側ランク１１内のデータを交替側ランク１２へコピーし、交替側ランク１２に対するデータの読み書きに切替える切替処理を行う。エラー検出部は、交替側ランク１２及び通常側ランク１１からデータを読出し、第１エラーが発生しているか否かにより切替部の故障又は切替処理の失敗を検出する。【選択図】図２
2014010712.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶部及び第２記憶部と、
初期化用データに第１エラーを発生させるデータを付加して前記第１記憶部に格納することで前記第１記憶部を初期化する初期化処理部と、
前記第２記憶部に対してデータの読み書きを行っている状態で、前記第２記憶部で第２エラーが発生した場合に、第２記憶部内のデータを前記第１記憶部へコピーし、前記第１記憶部に対するデータの読み書きに切替える切替処理を行う切替部と、
前記第１記憶部及び前記第２記憶部からデータを読出し、前記第１エラーが発生しているか否かにより前記切替部の故障又は前記切替処理の失敗を検出するエラー検出部と
を備えたことを特徴とする電子装置。
【請求項２】
前記第１記憶部及び前記第２記憶部は、各々独立してデータを読み書き可能であることを特徴とする請求項１に記載の電子装置。
【請求項３】
前記第１記憶部及び前記第２記憶部は、１つのメモリモジュールに搭載されていることを特徴とする請求項１又は請求項２に記載の電子装置。
【請求項４】
前記エラー検出部は、前記切替処理前に前記第２記憶部から読み出したデータにおいて前記第１エラーが発生している場合、前記切替部の故障を検出することを特徴とする請求項１〜３のいずれか一つに記載の電子装置。
【請求項５】
前記エラー検出部は、前記切替処理後に前記第１記憶部から読み出したデータにおいて前記第１エラーが発生している場合、前記切替処理の失敗を検出することを特徴とする請求項１〜４のいずれか一つに記載の電子装置。
【請求項６】
前記第１記憶部及び前記第２記憶部に誤り検出データを付加したデータを書き込む書込部と、
前記第１記憶部及び前記第２記憶部から前記誤り検出データを付加したデータを読み出す読出部とを備え、
前記初期化処理部は、前記誤り検出データの中の第１エラーを発生させるデータを前記初期化用データに付加して前記第１記憶部に格納することで前記第１記憶部を初期化し、
前記エラー検出部は、前記誤り検出データを基に、前記読出部が読み出したデータで前記第１エラー又は前記第２エラーが発生しているか否か及びエラーの種類を検出し、
前記切替部は、前記エラー検出部により第２エラーが発生していることが検出された場合に、前記書込部及び前記読出部におけるデータの読み書きの対象を前記第２記憶部から前記第１記憶部に切替える
ことを特徴とする請求項１〜５のいずれか一つに記載の電子装置。
【請求項７】
前記初期化処理部は、前記第１エラーとして前記初期化用データの異なる２つ以上の位置でエラーを発生させるデータを前記初期化用データに付加することを特徴とする請求項１〜６のいずれか一つに記載の電子装置。
【請求項８】
初期化用データに第１エラーを発生させるデータを付加して第１記憶部に格納することで前記第１記憶部を初期化し、
第２記憶部に対してデータの読み書きを行っている状態で、前記第２記憶部で第２エラーが発生した場合に、第２記憶部内のデータを前記第１記憶部へコピーし、前記第１記憶部に対するデータの読み書きに切替える切替処理を行い、
前記第１記憶部及び前記第２記憶部からデータを読出し、前記第１エラーが発生しているか否かにより前記切替処理を行う切替部の故障又は前記切替処理の失敗を検出する
ことを特徴とする電子装置制御方法。
【請求項９】
初期化用データに第１エラーを発生させるデータを付加して第１記憶部に格納することで前記第１記憶部を初期化し、
第２記憶部に対してデータの読み書きを行っている状態で、前記第２記憶部で第２エラーが発生した場合に、第２記憶部内のデータを前記第１記憶部へコピーし、前記第２記憶部に対するデータの読み書きに切替える切替処理を行い、
前記第１記憶部及び前記第２記憶部からデータを読出し、前記第１エラーが発生しているか否かにより前記切替処理を行う切替部の故障又は前記切替処理の失敗を検出する
処理をコンピュータに実行させることを特徴とする電子装置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置、電子装置制御方法及び電子装置制御プログラムに関する。
【背景技術】
【０００２】
近年、電子装置の用途は広がり、高度で複雑な処理を行う場面が増えてきている。このような電子装置の例としては、情報処理装置がある。そして、重要な処理を実行している電子装置では停止する事態を避けることが好ましい。そのため、電子装置に対して、障害の発生の回避や、障害発生からの迅速な復旧といった高可用性が求められてきている。このような高可用性を求められる電子装置には、Dual  Inline  Memory  Module（ＤＩＭＭ）を用いるものがある。
【０００３】
ＤＩＭＭを構成しているSynchronous  Dynamic  Random  Access  Memory（ＳＤＲＡＭ）は故障発生率が高い。そのため、ＤＩＭＭをデータの保護無しで使用するとＤＩＭＭに記録されているデータが壊れるおそれがあり、電子装置の処理に重大な影響を及ぼすことがある。そこで、エラー検出・訂正機能であるError  Correcting  Code（ＥＣＣ）機能が搭載されたＤＩＭＭを用いて、さらに電子装置の可用性を高めることが行われている。具体的には、ＤＩＭＭに対してデータとともにＥＣＣを書き込むことで、ＳＤＲＡＭが故障してＤＩＭＭが保持しているデータが壊れてしまっても、壊れたしまったＳＤＲＡＭが１つであれば誤りを訂正して運用が続けられる。ただし、１つのＳＤＲＡＭが壊れて誤り訂正を行って運用をしている状態で、さらにもう１つのＳＤＲＡＭが壊れた場合には、回復不可能となってしまう。
【０００４】
ＥＣＣ機能では、データから特定の計算式で作り出されるチェックビットが、ＥＣＣとしてデータともにＤＩＭＭに書き込まれる。そして、データを読み出したときに、読み出したデータとチェックビットとを再計算することでシンドロームコードを生成する。シンドロームコードは誤り箇所を特定する位置情報であり、シンドロームコードを用いることで、ＤＩＭＭ上のどこのビットで誤りが発生したかを特定することができる。ＥＣＣ機能を搭載したＤＩＭＭは、１つのＳＤＲＡＭにおけるエラーであれば位置を特定し、２つ以上のＳＤＲＡＭにおけるエラーの場合は誤りが発生した位置の特定はせずに故障の検出を行うものがある。この点、複数のＳＤＲＡＭにおけるエラーを特定することもできるが、その場合チェックビットが増えるためＤＩＭＭ１枚ではビット幅が足りなくなってしまう。そこで、複数のＳＤＲＡＭにおけるエラーの対策として、ＤＩＭＭを複数枚使い、ＥＣＣのビット数を増やすことが行われている。
【０００５】
また、予備のＳＤＲＡＭをＤＩＭＭに搭載し、１つのＳＤＲＡＭにおけるエラーが検出された場合、予備のＳＤＲＡＭにエラーが発生したＳＤＲＡＭのデータを移し変え、その後は予備のＳＤＲＡＭを使用して運用を継続する技術がある。この技術を用いたＤＩＭＭであれば、１つのＳＤＲＡＭにおけるエラーであれば、最大２回まで対応できる。ただし、予備のＳＤＲＡＭを使用している状態で再度１つのＳＤＲＡＭにエラーが発生すると再びシステムが危険な状態になるので、予備のＳＤＲＡＭの使用はあくまでＤＩＭＭを交換するまでの応急処置である。
【０００６】
さらに、予備のＳＤＲＡＭを使用することはＳＤＲＡＭ自体及びＳＤＲＡＭへの配線により、ＤＩＭＭ上の多くのスペースが取られる。そのため、近年の小型化された電子装置では、予備のＳＤＲＡＭを有するＤＩＭＭを搭載するための十分なスペースを確保することが困難になってきている。そこで、２つのランクを有するＤＩＭＭを用いて、一方のランクを通常は使用し、他方を予備として２重化を行う従来技術が提供されている（例えば、特許文献１参照）。ここで、ランクとは、ＤＩＭＭ上の１まとめのメモリ・コンポーネントのことであり、ＤＩＭＭはこのランク単位で有効になり、各ランクがＤＩＭＭへのアクセスの単位となる。すなわち、複数のランクを有するＤＩＭＭは、ランク単位で独立してデータの読み書きを行うことができる。この従来技術では、例えば、通常使用するランク及び予備のランクをオールゼロなどで初期化しておき、さらに正常なＥＣＣを付加しておく。そして、使用しているランクでエラーが発生した場合に、予備のランクへデータを書き写し、その後予備のランクを使用して運用を継続することが行われる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−１０２６４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来技術では、メモリコントローラの故障などによって意図せずランクの交替が発生し予備のランクのデータを読込んだとしても、誤ったデータの読込みにもかかわらず、ＥＣＣエラーとならず正常なデータとして扱ってしまう危険がある。また、書き写しに失敗し予備のランクに書き写し前のデータが残っていても、それを検出することなく、予備のランクを使用してもＥＣＣではエラーを検出することができない。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、ランクの交替を行う切替機構の故障及び交替処理失敗を検出する電子装置、電子装置制御方法及び電子装置制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示する電子装置、電子装置制御方法及び電子装置制御プログラムは、一つの態様において、第１記憶部及び第２記憶部を備える。初期化処理部は、初期化用データに第１エラーを発生させるデータを付加して前記第１記憶部に格納することで前記第１記憶部を初期化する。切替部は、前記第２記憶部に対してデータの読み書きを行っている状態で、前記第２記憶部で第２エラーが発生した場合に、第２記憶部内のデータを前記第１記憶部へコピーし、前記第１記憶部に対するデータの読み書きに切替える切替処理を行う。エラー検出部は、前記第１記憶部及び前記第２記憶部からデータを読出し、前記第１エラーが発生しているか否かにより前記切替部の故障又は前記切替処理の失敗を検出する。
【発明の効果】
【００１１】
本願の開示する電子装置、電子装置制御方法及び電子装置制御プログラムの一つの態様によれば、ランクの交替を行う切替機構の故障及び交替処理失敗を検出することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例に係る情報処理装置のハードウェア構成図である。
【図２】図２は、実施例に係る情報処理装置のブロック図である。
【図３Ａ】図３Ａは、正常な場合のＥＣＣとシンドロームコードとの関係を表す図である。
【図３Ｂ】図３Ｂは、判定用エラーコードを埋め込んだ場合のＥＣＣとシンドロームコードとの関係を表す図である。
【図４】図４は、実施例に係る情報処理装置によるＤＩＭＭの初期化の処理のフローチャートである。
【図５】図５は、ＤＩＭＭの故障監視の処理のフローチャートである。
【図６】図６は、ランクの交替処理のフローチャートである。
【図７】図７は、ランクの交替処理後のＤＩＭＭの故障監視の処理のフローチャートである。
【図８】図８は、実施例に係る情報処理装置によるＥＣＣエラーによる特定される故障をまとめた図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する電子装置、電子装置制御方法及び電子装置制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する電子装置、電子装置制御方法及び電子装置制御プログラムが限定されるものではない。特に、以下の説明では、情報処理装置であるサーバを例に説明するが、ＤＩＭＭなどのメモリを使用する電子装置であれば他のものでもよい。
【実施例１】
【００１４】
図１は、実施例に係る情報処理装置のハードウェア構成図である。本実施例に係る情報処理装置は、例えばサーバなどである。そして、本実施例にかかる情報処理装置は、ＤＩＭＭ１、Large  Scale  Integration（ＬＳＩ）２、ハードディスク３及びユーザインタフェース４を有している。
【００１５】
ＬＳＩ２は、Central  Processing  Unit（ＣＰＵ）２２及びＤＩＭＭコントローラ２１を有している。ハードディスク３、ユーザインタフェース４及びＤＩＭＭコントローラ２１は、バスによりＣＰＵ２２に接続されている。
【００１６】
ＤＩＭＭ１は、例えば、デュアルランクのＤＩＭＭである。ＤＩＭＭ１は、通常側ランク１１と交替側ランク１２という２つのランクを有している。通常側ランク１１及び交替側ランク１２は、それぞれ独立したデータの読み書きが行われる。通常側ランク１１には、ＳＤＲＡＭ１１１〜１１４が搭載されている。また、交替側ランク１２には、ＳＤＲＡＭ１２１〜１２４が搭載されている。ここで、図１では、通常側ランク１１及び交替側ランク１２のそれぞれに、４つのＳＤＲＡＭを記載しているが、ＤＩＭＭ１に搭載できる数であればＳＤＲＡＭの数に特に制限はない。ＳＤＲＡＭ１１１〜１１４及び１２１〜１２４は、例えば４ビット又は８ビットの容量を有する。
【００１７】
さらに、ＤＩＭＭ１は、セレクタ１３１〜１３４を備えている。セレクタ１３１は、ＳＤＲＡＭ１１１及び１２１と接続されている。また、セレクタ１３１は、ＤＩＭＭコントローラ２１と接続されている。図１では、ＤＩＭＭコントローラ２１とセレクタ１３１は、２本の経路で接続されている。この経路のうち、一方がＳＤＲＡＭ１１１又は１２１に対して読み書きが行われるデータの伝送経路であり、他方がセレクタ１３１に対するデータの読み書きの対象とするＳＤＲＡＭの切り替えなどの制御信号を送信する経路である。セレクタ１３２〜１３４も同様の構成を有している。
【００１８】
また、本実施例にかかる情報処理装置では、ＤＩＭＭ１は、ＳＤＲＡＭ単位での故障に対応するため、ＳＤＲＡＭを特定し、さらに同一のＳＤＲＡＭ内のビット化けは全て訂正できるＥＣＣを用いる。そのため、ＤＩＭＭ１は、ＤＩＭＭを２枚用いて、１２８ビットデータに対して１６ビットのＥＣＣビットを用いる。
【００１９】
ハードディスク３は、各種プログラムなどを記憶する。ユーザインタフェース４は、キーボードやマウスなどの入力装置及びモニタなどの出力装置を有する。
【００２０】
次に、図２を参照して、各部が有する機能を説明する。図２は、実施例に係る情報処理装置のブロック図である。図２に示すように、本実施例に係る情報処理装置は、ＤＩＭＭ１、ランク制御部２１３、書込部２１１、読出部２１２、データ処理部２２１、ＥＣＣ生成部２２２及びＥＣＣチェック部２２３を有している。
【００２１】
図２のＤＩＭＭ１は、図１のＤＩＭＭ１と同じものである。書込部２１１、読出部２１２及びランク制御部２１３の各機能は、例えば、図１に示すＤＩＭＭコントローラ２１によって実現される。また、データ処理部２２１、ＥＣＣ生成部２２２及びＥＣＣチェック部２２３の各機能は、例えば、図１に示すＣＰＵ２２によって実現される。
【００２２】
ＳＤＲＡＭ１１１〜１１４及び１２１〜１２４には、書込部２１１から出力されたデータが書き込まれる。また、ＳＤＲＡＭ１１１〜１１４及び１２１〜１２４は、格納されているデータが読出部２１２によって読み出される。ここで、本実施例では、ＳＤＲＡＭ１１１〜１１４を有する通常側ランク１１は、障害が発生していない場合に使用されるランクである。そして、ＳＤＲＡＭ１２１〜１２４を有する交替側ランク１２は、通常側ランク１１が使用されている場合には使用されず、通常側ランク１１に障害が発生した場合に使用されるランクである。以下では、通常側ランク１１に障害が発生していない状態を「通常の状態」という場合がある。また、通常側ランク１１に障害が発生し交替側ランク１２が使用されるようになることを「ランクの交替」という場合がある。通常側ランク１１が、「第２記憶部」の一例にあたる。また、交替側ランク１２が、「第１記憶部」の一例にあたる。
【００２３】
セレクタ１３１は、ＤＩＭＭコントローラ２１からの制御信号による指示にしたがい、通常側ランク１１又は交替側ランク１２のいずれかをデータの読み書きの対象のランクとして選択する。そして、セレクタ１３１は、書込部２１１からのデータをＳＤＲＡＭ１１１又は１２１のうち選択しているランクのＳＤＲＡＭへ出力する。また、セレクタ１３１は、ＳＤＲＡＭ１１１又は１２１のうち選択しているランクのＳＤＲＡＭからのデータを読出部２１２へ出力する。セレクタ１３２〜１３４も同様である。
【００２４】
次に、データ処理部２２１について説明する。データ処理部２２１は、初期化実行時、故障監視時及びデータ処理時のそれぞれで実行する処理が異なる。さらに、故障監視については、ランクの交替処理が行われる前とランクの交替処理が行われた後とで、データ処理部２２１の処理が異なる。そこで、以下では、それら各場合に分けて説明する。ここで、本実施例で用いるＥＣＣは、上述したようにＳＤＲＡＭ毎にエラーの検出が可能で且つ１つのＳＤＲＡＭでのエラーであれば訂正が可能なＥＣＣを用いている。以下の説明では、数字にＲＡＭという単位を付して壊れたＳＤＲＡＭの数を表す。例えば、１つのＳＤＲＡＭが壊れた場合には、１ＲＡＭのエラーという。
【００２５】
（初期化時）
通常側ランク１１の初期化の場合、データ処理部２２１は、初期化命令を書込部２１１へ送信する。初期化命令とは、例えば、初期化用データの通常側ランク１１のＳＤＲＡＭ１１１〜１１４への書き込み命令である。さらに、データ処理部２２１は、ＥＣＣ生成部２２２に初期化用データを送信しＥＣＣの付加を指示する。初期化用データは、本実施例では、例えば、全て値が０であるデータとする。ただし、初期化用データは他のものでもよく、例えば全ての値がｆであるデータなどでもよい。さらに、データ処理部２２１は、通常側ランク１１の選択の指示をランク制御部２１３へ送信する。
【００２６】
交替側ランク１２の初期化の場合、データ処理部２２１は、初期化命令を書込部２１１へ送信する。初期化命令とは、例えば、初期化用データの交替側ランク１２のＳＤＲＡＭ１２１〜１２４への書き込み命令である。また、データ処理部２２１は、ＥＣＣ生成部２２２に初期化用データを送信し、さらに、ＥＣＣを用いたエラーチェックを行った場合に予め決められた判定用エラーを発生させるＥＣＣの付加をＥＣＣ生成部２２２に指示する。ここで、判定用エラーとは、ランクの交替処理の失敗やランク制御部２１３又はセレクタ１３１〜１３４の故障などを検出するために設定されたＥＣＣエラーである。この判定用エラーが、「第１エラー」の一例にあたる。さらに、データ処理部２２１は、交替側ランク１２の選択の指示をランク制御部２１３へ送信する。判定用エラーの生成などの詳細については後で説明する。また、以下では、判定用エラーの場合に生成されるシンドロームコードを「判定用エラーコード」という。以下では、判定用エラーを発生させるＥＣＣをデータに付加することを判定用エラーコードの埋め込みという。
【００２７】
（ランクの交替前の故障監視時）
データ処理部２２１は、ランクの交替前の状態では、ＤＩＭＭ１における通常側ランク１１及び交替側ランク１２の故障監視の処理を行う。例えば、データ処理部２２１は、故障の監視を初期化直後及び定期的に行う。具体的には、データ処理部２２１は、読出部２１２に通常側ランク１１及び交替側ランク１２からデータを読出させ、読出部２１２により読出されたデータに対してＥＣＣチェック部２２３にＥＣＣチェックを行わせる。そして、データ処理部２２１は、読出したデータとともに正常の通知又はエラーの通知をＥＣＣチェック部２２３から受ける。また、以下では、故障監視におけるエラーの検出の処理を「エラーチェック」という場合がある。
【００２８】
ＥＣＣチェック部２２３から正常の通知が来た場合、データ処理部２２１は、次のデータのエラーチェックに進む。
【００２９】
ＥＣＣチェック部２２３から通常側ランク１１における１ＲＡＭのエラーの通知を受けた場合、データ処理部２２１は、ＥＣＣを利用して読出したデータのエラー訂正を行う。そして、データ処理部２２１は、エラー訂正を行ったデータの書込みを書込部２１１に指示する。その後、データ処理部２２１は、同じデータの読出しを読出部２１２に指示する。そして、データ処理部２２１は、同じデータのＥＣＣチェックの結果をＥＣＣチェック部２２３から受信する。この時、正常の通知であれば、データ処理部２２１は、次のデータのチェックに進む。
【００３０】
これに対して、１ＲＡＭのエラーが通知された場合、データ処理部２２１は、通常側ランク１１において固定故障が発生したと判定する。そして、データ処理部２２１は、読み出したデータのエラー訂正を行う。さらに、データ処理部２２１は、読出部２１２に通常側ランク１１のデータを読み出させる。そして、データ処理部２２１は、通常側ランク１１から読み出したデータの交替側ランク１２への書込みを書込部２１１へ指示する。この場合、１ＲＡＭのエラーが発生したデータについては、データ処理部２２１は、読出したデータに変えてエラー訂正を行ったデータを書込部２１１に書き込ませる。以下では、通常側ランク１１からデータを読出し交替側ランク１２へ書込み、交替側ランク１２の使用へ切替えることを「ランクの交替処理」という場合がある。ランクの交替処理を発生させる１ＲＡＭのエラーが、「第２エラー」の一例にあたる。
【００３１】
ランクの交替処理において、データ処理部２２１は、ランク制御部２１３に対して、読出しの場合には通常側ランク１１に接続し、書込みの場合には交替側ランク１２に接続するように指示する。そして、通常側ランク１１の中のデータを交替側ランク１２に全て移した後、データ処理部２２１は、交替側ランク１２に接続するようにランク制御部２１３に指示する。その後、データ処理部２２１は、ユーザインタフェース４（図１参照）を用いて操作者にランクの交替処理の実行を通知する。
【００３２】
通常側ランク１１に対するエラーチェック時に、ＥＣＣチェック部２２３から判定用エラーコードを受信した場合、データ処理部２２１は、ランク制御部２１３又はセレクタ１３１〜１３４などのランクの選択を行う機構の故障が発生したと判定する。以下では、ランク制御部２１３又はセレクタ１３１〜１３４などのランクの選択を行う機構を「切替機構」という場合がある。そして、データ処理部２２１は、ユーザインタフェース４（図１参照）を用いて操作者に切替機構の故障の発生を通知する。
【００３３】
通常側ランク１１に対するエラーチェック時に、ＥＣＣチェック部２２３から判定用エラーコード以外の２ＲＡＭ以上のエラーコードを受信した場合、データ処理部２２１は、通常側ランク１１に故障が発生したと判定する。そして、データ処理部２２１は、ユーザインタフェース４（図１参照）を用いて操作者にＤＩＭＭ１の通常側ランク１１の故障の発生を通知する。
【００３４】
交替側ランク１２に対するエラーチェック時に、ＥＣＣチェック部２２３から１ＲＡＭのエラーの通知を受けた場合、データ処理部２２１は、ＥＣＣを利用して読出したデータのエラー訂正を行う。そして、データ処理部２２１は、エラー訂正を行ったデータの書込みを書込部２１１に指示する。その後、データ処理部２２１は、同じデータの読出しを読出部２１２に指示する。そして、データ処理部２２１は、同じデータのＥＣＣチェックの結果をＥＣＣチェック部２２３から受信する。この時、正常の通知であれば、データ処理部２２１は、次のデータのチェックに進む。これに対して、１ＲＡＭのエラーが通知された場合、データ処理部２２１は、交替側ランク１２において固定故障が発生したと判定する。そして、データ処理部２２１は、読み出したデータのエラー訂正を行う。そして、データ処理部２２１は、ユーザインタフェース４（図１参照）を用いてＤＩＭＭ１の交替側ランク１２における固定故障の発生を操作者に通知する。
【００３５】
交替側ランク１２に対するエラーチェック時に、ＥＣＣチェック部２２３から判定用エラーコードを受信した場合、データ処理部２２１は、交替側ランク１２が正常と判定する。そして、データ処理部２２１は、次のデータのチェックに進む。
【００３６】
交替側ランク１２に対するエラーチェック時に、ＥＣＣチェック部２２３から判定用エラーコード以外の２ＲＡＭ以上のエラーを表すシンドロームコードを受信した場合、データ処理部２２１は、交替側ランク１２に故障が発生したと判定する。同様に、正常の通知を受けた場合も、データ処理部２２１は、交替側ランク１２に故障が発生したと判定する。これらの場合、データ処理部２２１は、ランク制御部２１３に対してランク切替処理の不可を通知する。そして、データ処理部２２１は、ユーザインタフェース４（図１参照）を用いて操作者にＤＩＭＭ１の交替側ランク１２の故障の発生を通知する。
【００３７】
（ランクの交替処理後の故障監視時）
データ処理部２２１は、ランクの交替処理が行われた後に、ＤＩＭＭ１の交替側ランク１２における故障の監視の処理を定期的に行う。具体的には、データ処理部２２１は、読出部２１２に交替側ランク１２からデータを読出させ、読出部２１２により読出されたデータに対してＥＣＣチェック部２２３にＥＣＣチェックを行わせる。そして、データ処理部２２１は、読出したデータとともに正常の通知又はエラーの通知をＥＣＣチェック部２２３から受ける。
【００３８】
ＥＣＣチェック部２２３から正常の通知が来た場合、データ処理部２２１は、次のデータのチェックに進む。
【００３９】
ＥＣＣチェック部２２３から１ＲＡＭのエラーの通知を受けた場合、データ処理部２２１は、ＥＣＣを利用して読出したデータのエラー訂正を行う。そして、データ処理部２２１は、エラー訂正を行ったデータの書込みを書込部２１１に指示する。次に、データ処理部２２１は、同じデータの読出しを読出部２１２に指示する。
【００４０】
その後、データ処理部２２１は、同じデータのＥＣＣチェックの結果をＥＣＣチェック部２２３から受信する。この時、正常の通知であれば、データ処理部２２１は、次のデータのチェックに進む。これに対して、１ＲＡＭのエラーが通知された場合、データ処理部２２１は、交替側ランク１２において固定故障が発生したと判定する。そして、データ処理部２２１は、読み出したデータのエラー訂正を行う。その後、データ処理部２２１は、ユーザインタフェース４（図１参照）を用いて交替側ランク１２における固定故障の発生を操作者に通知する。これを受けて操作者はＤＩＭＭ１の交換などを行う。
【００４１】
ＥＣＣチェック部２２３から判定用エラーコードを受信した場合、データ処理部２２１は、ランクの交替処理が失敗したと判定する。そして、データ処理部２２１は、ユーザインタフェース４（図１参照）を用いてランクの交替処理の失敗を操作者に通知する。この場合、操作者は、ＬＳＩ２の交換などを行う。
【００４２】
ＥＣＣチェック部２２３から交替側ランク１２における判定用エラーコード以外の２ＲＡＭ以上のエラーを表すシンドロームを受信した場合、データ処理部２２１は、交替側ランク１２に故障が発生したと判定する。そして、データ処理部２２１は、ユーザインタフェース４（図１参照）を用いてＤＩＭＭ１の交替側ランク１２の故障の発生を操作者に通知する。この場合、操作者は、ＤＩＭＭ１の交換などを行う。
【００４３】
（データ処理時）
データ処理部２２１は、アプリケーションなどを実行しデータ処理を行う。そして、データ処理としてデータの書込み処理を行う場合、データ処理部２２１は、書込み命令を書込部２１１へ送信する。さらに、データ処理部２２１は、書込むデータをＥＣＣ生成部２２２に送信する。また、データ処理として読出し処理を行う場合、データ処理部２２１は、データの読出し命令を読出部２１２へ通知する。さらに、データ処理部２２１は、読出し命令の対象のデータ及びＥＣＣチェック結果をＥＣＣチェック部２２３から受ける。
【００４４】
ＥＣＣチェック結果が１ＲＡＭのエラーの場合、データ処理部２２１は、ＥＣＣを用いてデータを修正し、修正したデータをデータ処理に用いる。また、ＥＣＣチェックの結果が２ＲＡＭ以上のエラーの場合、データ処理部２２１は、データ処理を停止する。その後、データ処理部２２１は、上述した故障監視の処理を実行する。
【００４５】
ＥＣＣ生成部２２２は、通常側ランク１１の初期化を行う場合、初期化用データをデータ処理部２２１から受信する。そして、ＥＣＣ生成部２２２は、初期化用データから正常なＥＣＣを生成する。そして、ＥＣＣ生成部２２２は、生成した正常なＥＣＣを初期化用データに付加して書込部２１１へ出力する。
【００４６】
図３Ａは、正常な場合のＥＣＣとシンドロームコードとの関係を表す図である。ＥＣＣ生成部２２２は、初期化用データとして全ての値が０であるデータ４１１を受信する。そして、ＥＣＣ生成部２２２は、予め決められたＥＣＣ生成処理を初期化用データに対して実行し、０Ｆ０ＦというＥＣＣ４１２を取得する。この時、データ４１１及びＥＣＣ４１２から生成されるシンドロームコードは４１３となる。そして、ＥＣＣ生成部２２２は、データ４１１にＥＣＣ４１２を付加したデータを書込部２１１へ出力する。
【００４７】
また、交替側ランク１２の初期化を行う場合、ＥＣＣ生成部２２２は、初期化用データをデータ処理部２２１から受信する。そして、ＥＣＣ生成部２２２は、初期化用データから判定用エラーを発生させるＥＣＣである判定用エラーコードを生成する。ここで、判定用エラーは、少なくとも同じランクの中の２つのＳＤＲＡＭにおいてエラーが発生するものであることが好ましい。ここで、同じランクの中でエラーを発生させるＳＤＲＡＭの数が多い判定用エラー程、実際に発生するＥＣＣエラーと区別を付けやすくなる。本実施例では、判定用エラーとして、４つのＳＤＲＡＭにおいてエラーが発生する場合、すなわち３ＲＡＭのエラーが発生する場合で説明する。
【００４８】
本実施例では、ＥＣＣ生成部２２２は、初期化用データから正常なＥＣＣを作成し、その後、正常なＥＣＣの中の予め決められたビットを反転させることで判定用エラーを発生させる判定用エラーコードを生成している。ただし、判定用エラーコードの生成はこれに限らず、例えば、ＥＣＣ生成部２２２は、正常なＥＣＣを作成した後、判定用エラーが発生するように予め決められた初期化用データのビットを反転させても良い。また、ＥＣＣ生成部２２２は、初期化用データの中の判定用エラーが発生するように予め決められたビットを反転させたものから通常通りにＥＣＣを作成することで判定用エラーコードを作成し、作成した判定用エラーコードを初期化用データに付加させても良い。
【００４９】
図３Ｂは、判定用エラーコードを埋め込んだ場合のＥＣＣとシンドロームコードとの関係を表す図である。例えば、本実施例では、ＥＣＣ生成部２２２は、初期化用データとして全ての値が０であるデータ４２１を受信する。そして、ＥＣＣ生成部２２２は、予め決められたＥＣＣ生成処理を初期化用データに対して実行し、０Ｆ０ＦというＥＣＣを取得する。さらに、ＥＣＣ生成部２２２は、０Ｆ０Ｆにおける予め決められたビットを反転させることで、６Ｅ９ＤというＥＣＣ４２２を生成する。具体的には、ＥＣＣの先頭の値を表す４ビットのうち先頭から２番目及び３番目のビット、２番目の値を表す４ビットのうち最後尾のビットを反転させる。さらに、ＥＣＣの３番目の値を表す４ビットのうち先頭のビット及び最後のビット、そして、最後の値を表す４ビットのうち３番目及び最後尾のビットを反転させている。この場合、データ４２１及びＥＣＣ４２２から生成されるシンドロームコード４２３である判定用エラーコードは、６Ｅ９Ｄとなるそして、ＥＣＣ生成部２２２は、ＥＣＣ４２２をデータ４２１へ付加して書込部２１１へ出力する。
【００５０】
また、ＥＣＣ生成部２２２は、データの書込みを行う場合、書込むデータをデータ処理部２２１から受信する。そして、ＥＣＣ生成部２２２は、受信したデータから正常なＥＣＣを生成する。そして、ＥＣＣ生成部２２２は、生成した正常なＥＣＣを初期化用データに付加して書込部２１１へ出力する。例えば、ＥＣＣ生成部２２２は、図３Ａにおけるデータ４１４を書込むデータとしてデータ処理部２２１から受信する。そして、ＥＣＣ生成部２２２は、データ４１４から正常なＥＣＣ４１５としてＡＤ８Ｅを生成する。この時、データ４１４及びＥＣＣ４１５から生成されるシンドロームコードは０Ｆ０Ｆである。シンドロームコード４１３とシンドロームコード４１６とは同じになっている。このように、データが正常でありＥＣＣが正常なＥＣＣであればシンドロームコードは０Ｆ０Ｆという同じシンドロームになる。
【００５１】
また、例えば、図３Ｂにおけるデータ４１４と同じ値を有するデータであるデータ４２４に対して、ＥＣＣ４２５のようにＣＣ１Ｃという値のＥＣＣが付加されている場合、が判定用エラーコードと同じ値を有するシンドロームコード４２２が生成される。しかし、データ４２４とＥＣＣ４２５とが組になる場合は、３ＲＡＭのエラーが発生する場合である。そして、３ＲＡＭのエラーが発生することは稀であるので、データ４２４とＥＣＣ４２５とが組になる場合が発生することはほぼ無いといえる。したがって、通常のエラーによるシンドロームコードと判定用エラーコードとを区別することは容易である。
【００５２】
書込部２１１は、セレクタ１３１〜１３４が選択しているランクが有するＳＤＲＡＭへＥＣＣ生成部２２２から受信したデータを書込む。以下では、ＳＤＲＡＭ１１１〜１１４又は１２１〜１２４に対するデータの書込み及び読出しを、ＤＩＭＭ１に対するデータの書込み及び読出しという場合がある。本実施例では、書込部２１１は、７２ビットのデータを１度に１枚のＤＩＭＭ１に書き込む。さらに、本実施例では、書込部２１１は、データ処理部２２１からの１回の書込み命令で、８回連続してデータの書込みを行う。すなわち、書込部２１１は、１回のデータ書込みで６４バイトのデータを書込む。ただし、この書き込み量は一例であって、１回のデータ書込みで書込むデータの量は他の値でもよい。
【００５３】
書込部２１１は、通常側ランク１１の初期化の場合、初期化命令をデータ処理部２２１から受ける。そして、書込部２１１は、正常なＥＣＣが付加された初期化データをＥＣＣ生成部２２２から受信する。そして、書込部２１１は、セレクタ１３１〜１３４によって選択されているＳＤＲＡＭに正常なＥＣＣが付加された初期化データを書き込む。この場合、後述するランク制御部２１３及びセレクタ１３１〜１３４が正常に動作していれば、セレクタ１３１〜１３４は、通常側ランク１１のＳＤＲＡＭ１１１〜１１４を選択している。そこで、ランク制御部２１３及びセレクタ１３１〜１３４が正常に動作していれば、書込部２１１は、通常側ランク１１のＳＤＲＡＭ１１１〜１１４に正常なＥＣＣが付加された初期化データを書き込むことになる。
【００５４】
書込部２１１は、交替側ランク１２の初期化の場合、初期化命令をデータ処理部２２１から受ける。そして、書込部２１１は、シンドロームコードが判定用エラーコードとなるＥＣＣが付加された初期化データをＥＣＣ生成部２２２から受信する。そして、書込部２１１は、セレクタ１３１〜１３４によって選択されているＳＤＲＡＭにシンドロームコードが判定用エラーコードとなるＥＣＣが付加された初期化データを書き込む。この場合、後述するランク制御部２１３及びセレクタ１３１〜１３４が正常に動作していれば、セレクタ１３１〜１３４は、交替側ランク１２のＳＤＲＡＭ１２１〜１２４を選択している。そこで、ランク制御部２１３及びセレクタ１３１〜１３４が正常に動作していれば、書込部２１１は、交替側ランク１２のＳＤＲＡＭ１２１〜１２４にシンドロームコードが判定用エラーコードとなるＥＣＣが付加された初期化データを書き込むことになる。
【００５５】
また、故障監視時において１ビットエラーが検出された場合、書込部２１１は、エラーが検出されたデータが格納されていたアドレスへのデータの書込み命令をデータ処理部２２１から受ける。そして、書込部２１１は、正常なＥＣＣが付加された書込用のデータをＥＣＣ生成部２２２から受ける。書込部２１１は、正常なＥＣＣが付加された書込用のデータをセレクタ１３１〜１３４が選択しているランクのＳＤＲＡＭの指定されたアドレスに書込む。
【００５６】
さらに、書込部２１１は、ランクの交替処理において、交替側ランク１２へのデータの書込み命令をデータ処理部２２１から受ける。そして、書込部２１１は、通常側ランク１１から読み出したデータに正常なＥＣＣが付加されたデータをＥＣＣ生成部２２２から受信し、セレクタ１３１〜１３４が選択しているランクのＳＤＲＡＭに書込む。この場合、後述するランク制御部２１３及びセレクタ１３１〜１３４が正常に動作していれば、セレクタ１３１〜１３４は、交替側ランク１２のＳＤＲＡＭ１２１〜１２４を選択している。そこで、ランク制御部２１３及びセレクタ１３１〜１３４が正常に動作していれば、書込部２１１は、交替側ランク１２のＳＤＲＡＭ１２１〜１２４に通常側ランク１１から読み出したデータを書き込むことになる。
【００５７】
また、書込部２１１は、データ処理の場合、データの書込み命令をデータ処理部２２１から受ける。そして、書込部２１１は、正常なＥＣＣが付加された書込用のデータをＥＣＣ生成部２２２から受ける。書込部２１１は、正常なＥＣＣが付加された書込用のデータをセレクタ１３１〜１３４が選択しているランクのＳＤＲＡＭに書込む。書込部２１１及びＥＣＣ生成部２２２の機能の一部が、「初期化処理部」の一例にあたる。
【００５８】
読出部２１２は、セレクタ１３１〜１３４が選択しているランクが有するＳＤＲＡＭからデータ処理部２２１により指定されたデータを読込む。本実施例では、読出部２１２は、７２ビットのデータを１度に１枚のＤＩＭＭ１に読み出す。さらに、本実施例では、読出部２１２は、データ処理部２２１からの１回の読出し命令で、８回連続してデータの読出しを行う。すなわち、書込部２１１は、１回のデータ書込みで６４バイトのデータを読み出す。ただし、この読出し量は一例であって、１回のデータ読出しで読み出すデータの量は他の値でもよい。
【００５９】
読出部２１２は、故障監視の場合、データの読出し命令をデータ処理部２２１から受ける。そして、読出部２１２は、セレクタ１３１〜１３３により選択されているランクのＳＤＲＡＭからデータを読み出す。ここで、ランク制御部２１３及びセレクタ１３１〜１３３が正常に動作している場合、読出部２１２は、データ処理部２２１が指定したランクのＳＤＲＡＭからデータを読み出すことになる。そして、読出部２１２は、読み出したデータをＥＣＣチェック部２２３へ出力する。
【００６０】
故障監視時において１ＲＡＭのエラーが検出された場合、読出部２１２は、エラーが発生したデータの再書込みを書込部２１１が行った後、エラーが検出されたデータが格納されていたアドレスからのデータの読出し命令をデータ処理部２２１から受ける。そして、読出部２１２は、指定されたアドレスからデータを読み出す。そして、読出部２１２は、読み出したデータをＥＣＣチェック部２２３へ出力する。
【００６１】
さらに、読出部２１２は、ランクの交替処理において、通常側ランク１１からのデータの読出し命令をデータ処理部２２１から受ける。そして、読出部２１２は、セレクタ１３１〜１３４が選択しているランクのＳＤＲＡＭからデータを読み出す。この場合、後述するランク制御部２１３及びセレクタ１３１〜１３４が正常に動作していれば、セレクタ１３１〜１３４は、通常側ランク１１のＳＤＲＡＭ１１１〜１１４を選択している。そこで、ランク制御部２１３及びセレクタ１３１〜１３４が正常に動作していれば、読出部２１２は、通常側ランク１１のＳＤＲＡＭ１１１〜１１４からデータを読み出すことになる。
【００６２】
また、読出部２１２は、データ処理の場合、データの読出し命令をデータ処理部２２１から受ける。そして、読出部２１２は、ＥＣＣが付加された指定されたデータをセレクタ１３１〜１３３により選択されているランクのＳＤＲＡＭから読み出す。読出部２１２は、読み出したデータをＥＣＣチェック部２２３へ出力する。
【００６３】
ＥＣＣチェック部２２３は、読出部２１２が読み出したデータを受信する。そして、ＥＣＣチェック部２２３は、受信したデータのデータ部分及びＥＣＣを用いてシンドロームコードを生成する。そして、ＥＣＣチェック部２２３は、シンドロームコードを用いてデータが正常か、１ＲＡＭのエラーが発生しているか、又は２ＲＡＭ以上のエラーが発生しているかを判定する。そして、ＥＣＣチェック部２２３は、受信したデータとともに以下の情報をデータ処理部２２１へ出力する。データが正常の場合、ＥＣＣチェック部２２３は、正常の通知をデータ処理部２２１へ出力する。１ＲＡＭのエラーが発生している場合、ＥＣＣチェック部２２３は、１ＲＡＭのエラーの発生の通知とともにシンドロームコードをデータ処理部２２１へ出力する。２ＲＡＭ以上のエラーが発生している場合、ＥＣＣチェック部２２３は、２ＲＡＭ以上のエラーの発生の通知とともにシンドロームコードをデータ処理部２２１へ出力する。ＥＣＣチェック部２２３及びデータ処理部２２１が「エラー検出部」の一例にあたる。
【００６４】
ランク制御部２１３は、通常側ランク１１の初期化の場合、通常側ランク１１の選択の指示をデータ処理部２２１から受ける。そして、ランク制御部２１３は、通常側ランク１１のＳＤＲＡＭ１１１〜１１４を選択するようにセレクタ１３１〜１３４を制御する。
【００６５】
また、ランク制御部２１３は、交替側ランク１２の初期化の場合、交替側ランク１２の選択の指示をデータ処理部２２１から受ける。そして、ランク制御部２１３は、交替側ランク１２のＳＤＲＡＭ１２１〜１２４を選択するようにセレクタ１３１〜１３４を制御する。
【００６６】
また、ランク制御部２１３は、故障監視時には、故障監視の処理の過程に従って通常側ランク１１又は交替側ランクの選択の指示をデータ処理部２２１から受ける。そして、ランク制御部２１３は、データ処理部２２１からの指示に従い、通常側ランク１１のＳＤＲＡＭ１１１〜１１４又は交替側ランク１２のＳＤＲＡＭ１２１〜１２４を選択するようにセレクタ１３１〜１３４を制御する。
【００６７】
さらに、ランク制御部２１３は、ランクの交替処理において読出部２１２が通常側ランク１１からデータを読み出す場合、通常側ランク１１の選択の指示をデータ処理部２２１から受ける。この指示を受けて、ランク制御部２１３は、通常側ランク１１のＳＤＲＡＭ１１１〜１１４を選択するようにセレクタ１３１〜１３４を制御する。また、ランクの交替処理において書込部２１１が交替側ランク１２へデータを書込む場合、交替側ランク１２の選択の指示をデータ処理部２２１から受ける。この指示を受けて、ランク制御部２１３は、交替側ランク１２のＳＤＲＡＭ１２１〜１２４を選択するようにセレクタ１３１〜１３４を制御する。ランク制御部２１３及びセレクタ１３１〜１３４が、「切替部」の一例にあたる。
【００６８】
次に、図４を参照して、本実施例に係る情報処理装置によるＤＩＭＭの初期化の処理の流れについて説明する。図４は、実施例に係る情報処理装置によるＤＩＭＭの初期化の処理のフローチャートである。ここで、通常側ランク１１及び交替側ランク１２のアドレスに０から始まる連番が振られている場合で説明する。
【００６９】
データ処理部２２１は、初期化の対象とする先頭アドレスを０（アドレス＝０）とする（ステップＳ１０１）。そして、データ処理部２２１は、初期化の対象とするアドレスが交替側ランク１２のアドレスか否かを判定する（ステップＳ１０２）。
【００７０】
通常側ランク１１のアドレスの場合（ステップＳ１０２：否定）、データ処理部２２１は、初期化用データに正常なＥＣＣが付加された通常初期化データの生成をＥＣＣ生成部２２２に通知する。ＥＣＣ生成部２２２は、通常初期化データを生成する（ステップＳ１０３）。そして、ＥＣＣ生成部２２２は、通常初期化データを書込部２１１へ出力する。また、データ処理部２２１は、ランク制御部２１３に通常側ランク１１の選択を指示する。ランク制御部２１３は、通常側ランク１１を選択するようにセレクタ１３１〜１３４を制御する（ステップＳ１０４）。
【００７１】
これに対して、交替側ランク１２のアドレスの場合（ステップＳ１０２：肯定）、データ処理部２２１は、判定用エラーコードが埋め込まれた初期化用データの生成をＥＣＣ生成部２２２に通知する。ＥＣＣ生成部２２２は、判定用エラーコードが埋め込まれた初期化用データを生成する（ステップＳ１０５）。そして、ＥＣＣ生成部２２２は、判定用エラーコードが埋め込まれた初期化用データを書込部２１１へ出力する。また、データ処理部２２１は、ランク制御部２１３に交替側ランク１２の選択を指示する。ランク制御部２１３は、交替側ランク１２を選択するようにセレクタ１３１〜１３４を制御する（ステップＳ１０６）。
【００７２】
書込部２１１は、ＥＣＣ生成部２２２から受信したデータをセレクタ１３１〜１３２が選択しているランクのＳＤＲＡＭに書込む（ステップＳ１０７）。
【００７３】
データ処理部２２１は、ＤＩＭＭ１の全容量の初期化が終了したか否かを判定する（ステップＳ１０８）。全容量の初期化が終了していない場合（ステップＳ１０８：否定）、データ処理部２２１は、現在の初期化の対象の先頭アドレスに６４バイトを加えた値を次の初期化の対象とする先頭アドレスとする（アドレス＝アドレス＋６４バイト）（ステップＳ１０９）。そして、ステップＳ１０２に戻る。
【００７４】
これに対して、全容量の初期化が終了した場合（ステップＳ１０８：肯定）、データ処理部２２１は、ＤＩＭＭ１のエラーチェックを行う（ステップＳ１１０）。このエラーチェックの処理については次に詳細に説明する。その後、データ処理部２２１は、ＤＩＭＭ１の初期化を終了する。
【００７５】
次に、図５を参照して、ＤＩＭＭの故障監視の処理の流れについて説明する。図５は、ＤＩＭＭの故障監視の処理のフローチャートである。
【００７６】
データ処理部２２１は、故障検出の対象とする先頭アドレスを０（アドレス＝０）とする（ステップＳ２０１）。そして、データ処理部２２１は、先頭アドレスから６４バイト先のアドレスまでのデータの読出しを読出部２１２に指示する。読出部２１２は、指定された先頭アドレスから６４バイト先のアドレスまでのデータを読み出す（ステップＳ２０２）。読出部２１２は、読み出したデータをＥＣＣチェック部２２３へ出力する。
【００７７】
ＥＣＣチェック部２２３は、データの入力を読出部２１２から受ける。そして、ＥＣＣチェック部２２３は、ＥＣＣエラーが発生しているか否かを判定する（ステップＳ２０３）。ＥＣＣエラーが発生していない場合（ステップＳ２０３：否定）、データ処理部２２１は、チェックしているアドレスが割り当てられているランクが交替側ランク１２か否かを判定する（ステップＳ２０４）。
【００７８】
通常側ランク１１の場合（ステップＳ２０４：否定）、データ処理部２２１は、チェックが正常終了したと判定する（ステップＳ２０５）。次に、データ処理部２２１は、ＤＩＭＭ１の全容量の初期化が終了したか否かを判定する（ステップＳ２０６）。全容量の初期化が終了していない場合（ステップＳ２０６：否定）、データ処理部２２１は、現在の初期化の対象の先頭アドレスに６４バイトを加えた値を次の初期化の対象とする先頭アドレスとする（アドレス＝アドレス＋６４バイト）（ステップＳ２０７）。そして、ステップＳ２０２に戻る。
【００７９】
これに対して、全容量の初期化が終了した場合（ステップＳ２０６：肯定）、データ処理部２２１は、ＤＩＭＭ１の故障監視を終了する。
【００８０】
一方、交替側ランク１２の場合（ステップＳ２０４：肯定）、データ処理部２２１は、ランク切替の故障が発生したことを操作者に通知する（ステップＳ２１０）。その後、データ処理部２２１は、故障監視を終了する。
【００８１】
また、ＥＣＣエラーがある場合（ステップＳ２０３：肯定）、データ処理部２２１は、ＥＣＣチェック部２２３から受信したシンドロームコードが判定用エラーコードと一致しているか否かを判定する（ステップＳ２０８）。
【００８２】
シンドロームコードが判定用エラーコードと一致している場合（ステップＳ２０８：肯定）、データ処理部２２１は、チェックしているアドレスが割り当てられているランクが交替側ランク１２か否かを判定する（ステップＳ２０９）。交替側ランク１２の場合（ステップＳ２０９：肯定）、期待通りのシンドロームとなっているので、データ処理部２２１は、ステップＳ２０５へ進み、チェック正常と判定する。
【００８３】
一方、通常側ランク１１の場合（ステップＳ２０９：否定）、通常側ランク１１からのつもりで、誤って交替側ランク１２からデータを読み出しているので、データ処理部２２１は、切替機構に故障が発生したことを操作者に通知する（ステップＳ２１０）。その後、データ処理部２２１は、故障監視を終了する。
【００８４】
一方、シンドロームコードが判定用エラーコード以外のコードの場合（ステップＳ２０８：否定）、データ処理部２２１は、発生したエラーが１ＲＡＭのエラーか否かを判定する（ステップＳ２１１）。２ＲＡＭ以上のエラーが発生している場合（ステップＳ２１１：否定）、データ処理部２２１は、チェックしているアドレスが割り当てられているランクが交替側ランク１２か否かを判定する（ステップＳ２１２）。通常側ランク１１の場合（ステップＳ２１２：否定）、データ処理部２２１は、通常側ランク１１で故障が発生していることを操作者に通知し（ステップＳ２１３）、故障監視の処理を終了する。
【００８５】
これに対して、交替側ランク１２の場合（ステップＳ２１２：肯定）、交替側ランク１２が故障しているので、データ処理部２２１は、ランク制御部２１３に対してランクの交替機能の停止を指示する。ランク制御部２１３は、ランクの交替機能を停止する（ステップＳ２１４）。また、データ処理部２２１は、交替側ランク１２で故障が発生していることを操作者に通知し（ステップＳ２１５）、故障監視の処理を終了する。
【００８６】
一方、１ＲＡＭのエラーが発生している場合（ステップＳ２１１：肯定）、データ処理部２２１は、エラーが発生したＳＤＲＡＭのデータのエラーを訂正する。そして、データ処理部２２１は、エラーが発生したＳＤＲＡＭへの書込みを書込部２１１に指示する。書込部２１１は、エラーが訂正されたデータに正常なＥＣＣが付加されたデータをＥＣＣ生成部２２２から受信し、受信したデータをエラーが発生したＳＤＲＡＭに書込む（ステップＳ２１６）。
【００８７】
読出部２１２は、データ処理部２２１からの指示を受けて、エラーが発生したデータを読出したアドレスと同じアドレスからデータを読み出す（ステップＳ２１７）。
【００８８】
ＥＣＣチェック部２２３は、読出部２１２が読み出したデータで１ＲＡＭのエラーが発生しているか否かを判定する（ステップＳ２１８）。１ＲＡＭのエラーが発生していない場合（ステップＳ２１８：否定）、データ処理部２２１は、ＤＩＭＭ１の間欠故障と判定する（ステップＳ２１９）。そして、データ処理部２２１は、ステップＳ２０５へ進み、チェックが正常終了したと判定する。
【００８９】
これに対して、再度１ＲＡＭのエラーが発生している場合（ステップＳ２１８：肯定）、データ処理部２２１は、チェックしているアドレスが割り当てられているランクが交替側ランク１２か否かを判定する（ステップＳ２２０）。通常側ランク１１の場合（ステップＳ２２０：否定）、データ処理部２２１は、通常側ランク１１で固定故障が発生していることを操作者に通知する（ステップＳ２２１）。そして、データ処理部２２１は、ランクの交替処理を実施する（ステップＳ２２２）。この交替処理については、次に詳細に説明する。その後、データ処理部２２１は、故障監視の処理を終了する。
【００９０】
これに対して、交替側ランク１２の場合（ステップＳ２２０：肯定）、データ処理部２２１は、交替側ランク１２で固定故障が発生していることを操作者に通知し（ステップＳ２２３）、故障監視の処理を終了する。
【００９１】
次に、図６を参照して、ランクの交替処理の流れについて説明する。図６は、ランクの交替処理のフローチャートである。
【００９２】
データ処理部２２１は、故障検出の対象とする先頭アドレスを０（アドレス＝０）とする（ステップＳ３０１）。
【００９３】
データ処理部２２１は、通常側ランク１１の選択をランク制御部２１３に指示する。ランク制御部２１３は、セレクタ１３１〜１３４が通常側ランク１１を選択するように制御する（ステップＳ３０２）。
【００９４】
データ処理部２２１は、先頭アドレスから６４バイト先のアドレスまでのデータの読出しを読出部２１２に指示する。読出部２１２は、通常側ランク１１における指定された先頭アドレスから６４バイト先のアドレスまでのデータを読み出す（ステップＳ３０３）。読出部２１２は、読み出したデータをＥＣＣチェック部２２３へ出力する。
【００９５】
ＥＣＣチェック部２２３は、データの入力を読出部２１２から受ける。そして、ＥＣＣチェック部２２３は、ＥＣＣエラーが発生しているか否かを判定する（ステップＳ３０４）。ＥＣＣエラーが発生していない場合（ステップＳ３０４：否定）、データ処理部２２１は、交替側ランク１２の選択をランク制御部２１３に指示する。ランク制御部２１３は、セレクタ１３１〜１３４が交替側ランク１２を選択するように制御する（ステップＳ３０５）。
【００９６】
データ処理部２２１は、通常側ランク１１から読み出されたデータの書き込みを書込部２１１へ指示する。書込部２１１は、通常側ランク１１から読み出されたデータに正常なＥＣＣが付加されたデータをＥＣＣ生成部２２２から受信する。そして、書込部２１１は、受信したデータを交替側ランク１２のＳＤＲＡＭ１２１〜１２４に書込む（ステップＳ３０６）。ただし、ランク制御部２１３又はセレクタ１３１〜１３４の動作に異常が生じている場合、書込部２１１は、受信したデータを通常側ランク１１へ書込んでしまうことが考えられる。
【００９７】
データ処理部２２１は、通常側ランク１１のデータの交替側ランク１２への移動が通常側ランク１１の全容量について終了したか否かを判定する（ステップＳ３０７）。通常側ランク１１の全容量が終了していない場合（ステップＳ３０７：否定）、データ処理部２２１は、現在の初期化の対象の先頭アドレスに６４バイトを加えた値を次の初期化の対象とする先頭アドレスとする（アドレス＝アドレス＋６４バイト）（ステップＳ３０８）。そして、ステップＳ３０２に戻る。
【００９８】
これに対して、全容量の初期化が終了した場合（ステップＳ３０８：肯定）、データ処理部２２１は、ランクの交替処理を終了する。
【００９９】
一方、ＥＣＣエラーがある場合（ステップＳ３０４：肯定）、データ処理部２２１は、発生したエラーが１ＲＡＭのエラーか否かを判定する（ステップＳ３０９）。１ＲＡＭのエラーの場合（ステップＳ３０９：肯定）、データ処理部２２１は、エラーが発生したＳＤＲＡＭのデータのエラーを訂正し（ステップＳ３１０）、ステップＳ３０５へ進む。
【０１００】
これに対して、２ＲＡＭ以上のエラーが発生している場合（ステップＳ３０９：否定）、データ処理部２２１は、ＥＣＣチェック部２２３から受信したシンドロームコードが判定用エラーコードと一致しているか否かを判定する（ステップＳ３１１）。
【０１０１】
シンドロームコードが判定用エラーコードと一致している場合（ステップＳ３１１：肯定）、データ処理部２２１は、交替側ランク１２からデータを読み出していると判定する。そこで、データ処理部２２１は、ランクの交替処理が失敗したこと及びランク切替機構の故障を操作者に通知し（ステップＳ３１２）、ランクの交替処理を終了する。このように、本実施例に係る情報処理装置は、ランクの交替処理中にランク制御部２１３又はセレクタ１３１〜１３４に故障が発生した場合でも、故障を検出することができる。
【０１０２】
これに対して、シンドロームコードが判定用エラーコードと一致していない場合（ステップＳ３１１：否定）、データ処理部２２１は、通常側ランク１１が故障していると判定する。そこで、データ処理部２２１は、ランクの交替処理が失敗したこと及びＤＩＭＭ１の故障を操作者に通知し（ステップＳ３１３）、ランクの交替処理を終了する。このように、本実施例に係る情報処理装置は、ランクの交替処理中に通常側ランク１１に故障が発生した場合でも、故障を検出することができる。
【０１０３】
次に、図７を参照して、ランクの交替処理後のＤＩＭＭの故障監視の処理の流れについて説明する。図７は、ランクの交替処理後のＤＩＭＭの故障監視の処理のフローチャートである。
【０１０４】
データ処理部２２１は、故障検出の対象とする先頭アドレスをＤＩＭＭ１の全容量の半分（アドレス＝全容量／２）とする（ステップＳ４０１）。そして、データ処理部２２１は、先頭アドレスから６４バイト先のアドレスまでのデータの読出しを読出部２１２に指示する。読出部２１２は、指定された先頭アドレスから６４バイト先のアドレスまでのデータを読み出す（ステップＳ４０２）。読出部２１２は、読み出したデータをＥＣＣチェック部２２３へ出力する。
【０１０５】
ＥＣＣチェック部２２３は、データの入力を読出部２１２から受ける。そして、ＥＣＣチェック部２２３は、ＥＣＣエラーが発生しているか否かを判定する（ステップＳ４０３）。ＥＣＣエラーが発生していない場合（ステップＳ４０３：否定）、データ処理部２２１は、チェックが正常終了したと判定する（ステップＳ４０４）。
【０１０６】
次に、データ処理部２２１は、交替側ランク１２の全容量に対するエラーチェックが終了したか否かを判定する（ステップＳ４０５）。全容量のエラーチェックが終了していない場合（ステップＳ４０５：否定）、データ処理部２２１は、現在の初期化の対象の先頭アドレスに６４バイトを加えた値を次の初期化の対象とする先頭アドレスとする（アドレス＝アドレス＋６４バイト）（ステップＳ４０６）。そして、ステップＳ４０２に戻る。
【０１０７】
これに対して、全容量の初期化が終了した場合（ステップＳ４０５：肯定）、データ処理部２２１は、ＤＩＭＭ１の故障監視を終了する。
【０１０８】
一方、ＥＣＣエラーがある場合（ステップＳ４０３：肯定）、データ処理部２２１は、ＥＣＣチェック部２２３から受信したシンドロームコードが判定用エラーコードと一致しているか否かを判定する（ステップＳ４０７）。
【０１０９】
シンドロームコードが判定用エラーコードと一致している場合（ステップＳ４０７：肯定）、データ処理部２２１は、交替処理時に交替側ランク１２へのデータの書込みが失敗していると判定する。そこで、データ処理部２２１は、切替機構に故障が発生したことを操作者に通知し（ステップＳ４０８）、故障監視を終了する。
【０１１０】
一方、シンドロームコードが判定用エラーコード以外のコードの場合（ステップＳ４０７：否定）、データ処理部２２１は、発生したエラーが１ＲＡＭのエラーか否かを判定する（ステップＳ４０９）。２ＲＡＭ以上のエラーが発生している場合（ステップＳ４０９：否定）、データ処理部２２１は、交替側ランク１２で故障が発生していることを操作者に通知し（ステップＳ４１０）、故障監視の処理を終了する。
【０１１１】
一方、１ＲＡＭのエラーが発生している場合（ステップＳ４０９：肯定）、データ処理部２２１は、エラーが発生したＳＤＲＡＭのデータのエラーを訂正する。そして、データ処理部２２１は、エラーが発生したＳＤＲＡＭへの書込みを書込部２１１に指示する。書込部２１１は、エラーが訂正されたデータに正常なＥＣＣが付加されたデータをＥＣＣ生成部２２２から受信し、受信したデータをエラーが発生したＳＤＲＡＭに書込む（ステップＳ４１１）。
【０１１２】
読出部２１２は、データ処理部２２１からの指示を受けて、エラーが発生したデータを読出したアドレスと同じアドレスからデータを読み出す（ステップＳ４１２）。
【０１１３】
ＥＣＣチェック部２２３は、読出部２１２が読み出したデータで１ＲＡＭのエラーが発生しているか否かを判定する（ステップＳ４１３）。１ＲＡＭのエラーが発生していない場合（ステップＳ４１３：否定）、データ処理部２２１は、ＤＩＭＭ１の間欠故障と判定する（ステップＳ４１４）。そして、データ処理部２２１は、ステップＳ４０４へ進み、チェックが正常終了したと判定する。
【０１１４】
これに対して、再度１ＲＡＭのエラーが発生している場合（ステップＳ４１３：肯定）、データ処理部２２１は、交替側ランク１２で固定故障が発生していることを操作者に通知し（ステップＳ４１５）、故障監視の処理を終了する。
【０１１５】
次に、図８を参照して、本実施例に係る情報処理装置によるＥＣＣエラーによる故障特定についてまとめて説明する。図８は、実施例に係る情報処理装置によるＥＣＣエラーによる特定される故障をまとめた図である。
【０１１６】
交替前、通常側ランク１１にアクセスしている状態で、１ＲＡＭのエラーが検出された場合、シンドロームコードは１ＲＡＭのエラーを表すシンドロームコードとなる。この場合、故障箇所はＤＩＭＭ１であり、具体的には通常側ランク１１で故障が発生している。この場合、ＥＣＣのエラーは、欄５０１に示すように通常の１ＲＡＭのエラーである。通常側ランク１１にアクセスしている場合の欄５０１のエラーは、図５のステップＳ２２１において操作者に通知されるエラーである。
【０１１７】
また、交替前に交替側ランク１２にアクセスしている状態で、１ＲＡＭのエラーが検出された場合、シンドロームコードは１ＲＡＭのエラーを表すシンドロームコードとなる。この場合、故障箇所はＤＩＭＭ１であり、具体的には交替側ランク１２で故障が発生している。この場合も、ＥＣＣのエラーは、欄５０１に示すように通常の１ＲＡＭの訂正可能なエラーである。交替側ランク１２にアクセスしている場合の欄５０１のエラーは、図５のステップＳ２２３において操作者に通知されるエラーである。
【０１１８】
次に、交替前に通常側ランク１１にアクセスしている状態で、２ＲＡＭ以上のエラーが検出された場合について説明する。この場合で、シンドロームコードが判定用エラーコードの場合、故障箇所はランク制御部２１３又はセレクタ１３１〜１３４などの切替機構である。この場合、ＥＣＣのエラーは、欄５０２に示すように切替回路の故障を表している。欄５０２のエラーは、図５のステップＳ２１０及び図６のステップＳ３１２で操作者に通知されるエラーである。
【０１１９】
また、シンドロームコードが、判定用エラーコード以外の２ＲＡＭ以上のエラーを表すエラーコードの場合、故障箇所はＤＩＭＭ１であり、具体的には通常側ランク１１で故障が発生している。この場合、ＥＣＣのエラーは、欄５０３に示すように通常の２ＲＡＭ以上のエラーである。欄５０３のエラーは、図５のステップＳ２１３及び図６のステップＳ３１３で操作者に通知されるエラーである。
【０１２０】
次に、交替前に交替側ランク１２にアクセスしている状態で、２ＲＡＭ以上のエラーが検出された場合について説明する。この場合で、シンドロームコードが判定用エラーコードの場合、故障は発生していない。この場合、ＥＣＣのエラーは、欄５０４に示すように正常な状態で発生する期待通りのエラーである。欄５０４のエラーは、図５のステップＳ２０９からステップＳ２０５への遷移により正常と判定されるエラーである。
【０１２１】
また、シンドロームコードが、判定用エラーコード以外の２ＲＡＭ以上のエラーを表すエラーコードの場合、故障箇所はＤＩＭＭ１であり、具体的には交替側ランク１２で故障が発生している。この場合、ＥＣＣのエラーは、欄５０５に示すように通常の２ＲＡＭ以上のエラーである。欄５０５のエラーは、図５のステップＳ２１５で操作者に通知されるエラーである。
【０１２２】
次に、交替後で交替側ランク１２にアクセスしている状態で、１ＲＡＭのエラーが検出された場合、シンドロームコードは１ＲＡＭのエラーを表すシンドロームコードとなる。この場合、故障箇所はＤＩＭＭ１であり、具体的には交替側ランク１２で故障が発生している。この場合、ＥＣＣのエラーは、欄５０６に示すように通常の１ＲＡＭの訂正可能なエラーである。欄５０６のエラーは、図７のステップＳ４１５で操作者に通知されるエラーである。
【０１２３】
次に、交替後に交替側ランク１２にアクセスしている状態で、２ＲＡＭ以上のエラーが検出された場合について説明する。この場合で、シンドロームコードが判定用エラーコードの場合、ランクの切替処理において交替側ランク１２への書込みが失敗している。すなわち、切替機構で故障が発生している。この場合、ＥＣＣのエラーは、欄５０７に示すように交替処理の失敗を表している。欄５０７のエラーは、図７のステップＳ４０８で操作者に通知されるエラーである。
【０１２４】
また、シンドロームコードが、判定用エラーコード以外の２ＲＡＭ以上のエラーを表すエラーコードの場合、故障箇所はＤＩＭＭ１であり、具体的には交替側ランク１２で故障が発生している。この場合、ＥＣＣのエラーは、欄５０８に示すように通常の２ＲＡＭ以上のエラーである。欄５０８のエラーは、図７のステップＳ４１０で操作者に通知されるエラーである。
【０１２５】
以上に説明したように、本実施例に係る情報処理装置は、ＥＣＣチェックにおいて判定用エラーコードが発生したか否かにより、ランクの交替前及び交替処理の実施中に切替機構の故障や交替処理の失敗を検出することができる。これにより、ランクの交替処理を行う切替機構の故障を、事前に検出することができ、切替機構の故障による装置における重大な問題の発生を回避することができる。また、交替処理後にも、ＥＣＣチェックにおいて判定用エラーコードが発生したか否かにより、切替機構の故障や交替処理の失敗を検出することができる。これにより、従来よりも正確に切替機構の故障や交替処理の失敗を検出することができる。また、切替機構の故障や交替処理の失敗を検出するので、エラーが発生した場合にＤＩＭＭの故障かＬＳＩの故障かの切り分けを容易にすることができる。
【０１２６】
また、交替側ランクのクロックの停止などを行いアクセスを制限しておき、切替機構の誤作動を回避する技術では、交替側ランクを使用するときに初めて故障が検出されるおそれがある。その場合、交替処理が行えず、壊れた通常側ランクで運用を継続することが考えられる。また、交替側ランクを立ち上げるために、ＤＩＭＭの初期化シーケンスの一部を再度やり直すため、時間がかかってしまう。これに対して、本実施例に係る情報処理装置では、交替側ランクも動作させておき、定期的に故障監視を行うので、交替処理の前に交替側ランクの故障を検出できる。また、交替処理において、ＤＩＭＭの初期化シーケンスを省くことができ、交替処理の時間を短縮することができる。
【０１２７】
ここで、以上の説明では、電子装置として高い可用性が求められる情報処理装置、特にサーバを例に説明したので、ＳＤＲＡＭ単位でエラーの訂正を行うＥＣＣを用いる場合で説明したが、ＥＣＣはこれに限らない。例えば、パーソナルコンピュータなどの場合であれば、ビット単位でエラー訂正を行うＥＣＣを用いることが一般的であるが、その場合にもＥＣＣのエラー訂正の単位がＲＡＭからビットに替わるだけで、以上に説明した機能は動作し、同様の効果を得ることができる。
【符号の説明】
【０１２８】
１  ＤＩＭＭ
２  ＬＳＩ
３  ハードディスク
４  ユーザインタフェース
１１  通常側ランク
１２  交替側ランク
２１  ＤＩＭＭコントローラ
２２  ＣＰＵ
１１１〜１１４、１２１〜１２４  ＳＤＲＡＭ
１３１〜１３４  セレクタ
２１１  書込部
２１２  読出部
２１３  ランク制御部
２２１  データ処理部  
２２２  ＥＣＣ生成部
２２３  ＥＣＣチェック部
【図１】
2014010712.tif 000003
【図２】
2014010712.tif 000004
【図３Ａ】
2014010712.tif 000005
【図３Ｂ】
2014010712.tif 000006
【図４】
2014010712.tif 000007
【図５】
2014010712.tif 000008
【図６】
2014010712.tif 000009
【図７】
2014010712.tif 000010
【図８】
2014010712.tif 000011