(57)【要約】【課題】  メモリを二重化しても、計算機の継続動作が不可能になり、計算機に求められる信頼性が低下してしまう場合がある。【解決手段】  同一のデータを保持する第１及び第２のメモリと、入力される読み出し制御信号に基づき第１及び第２のメモリよりそれぞれ読み出されるデータのいずれかを選択するセレクタとを備える二重化記憶装置であって、読み出し制御信号が入力されるとき、読み出し制御信号を識別する識別子を該入力される読み出し制御信号に付与して出力する要求管理部と、第１及び第２のメモリのそれぞれに対して複数のメモリ制御部を有することを特徴とする二重化記憶装置を提供する。  二重化記憶装置は、要求管理部が付与する前記識別子の同一性を確認することにより、同期エラーを検出し、第１のメモリから読み出されるデータか第２のメモリから読み出されるデータのうち、同期エラーが検出されない方の系からのデータが使用されるようセレクタを制御する。【選択図】  図１
2006260160.tif 000002
【特許請求の範囲】
【請求項１】
同一のデータを保持する第１及び第２のメモリと、入力される読み出し制御信号に基づき前記第１及び前記第２のメモリよりそれぞれ読み出されるデータのいずれかを選択するセレクタとを備える二重化記憶装置であって、
前記読み出し制御信号が入力されるとき、該読み出し制御信号を識別する識別子を該入力される読み出し制御信号に付与して出力する要求管理部と、
前記要求管理部より出力される読み出し制御信号に基づき、前記第１のメモリからデータを読み出し、該第１のメモリから読み出されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第１の主メモリ制御部と、
前記要求管理部より出力される読み出し制御信号と、前記第１の主メモリ制御部が読み出すデータとが入力され、前記入力されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第１の副メモリ制御部と、
前記要求管理部より出力される読み出し制御信号に基づき、前記第２のメモリからデータを読み出し、該第２のメモリから読み出されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第２の主メモリ制御部と、
前記要求管理部より出力される読み出し制御信号と、前記第２の主メモリ制御部が読み出すデータとが入力され、前記入力されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第２の副メモリ制御部と、
前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性と、前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性とを確認する同期検査部と、
前記確認の結果に基づき、前記セレクタを制御するセレクタ制御部とを有することを特徴とする二重化記憶装置。
【請求項２】
請求項１において、更に、
前記同期検査部により、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性及び前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性が共に確認される場合に、前記第１のメモリから読み出されるデータと前記第２のメモリから読み出されるデータとが一致するかを確認する一致検査部を有し、
前記セレクタ制御部は、前記一致検査部により一致が確認されない場合、システムエラーを出力することを特徴とする二重化記憶装置。
【請求項３】
請求項１又は２において、
前記セレクタ制御部は、前記同期検査部により、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性が確認される場合、前記第１のメモリより読み出されるデータが選択されるよう前記セレクタを制御し、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性が確認されない場合、かつ、前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性が確認される場合、前記第２のメモリより読み出されるデータが選択されるよう前記セレクタを制御することを特徴とする二重化記憶装置。
【請求項４】
請求項１又は２において、
前記セレクタ制御部は、前記同期検査部により、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性及び前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性が共に確認されない場合、システムエラーを出力することを特徴とする二重化記憶装置。
【請求項５】
請求項１において、更に、
前記データに付与された誤り検出／訂正符号を検査する符号検査部を有し、
前記セレクタ制御部は、前記符号検査部により、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出されない場合、前記第１のメモリより読み出されるデータが選択されるよう前記セレクタを制御し、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、かつ、前記第２のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出されない場合、前記第２のメモリより読み出されるデータが選択されるよう前記セレクタを制御することを特徴とする二重化記憶装置。
【請求項６】
請求項５において、
前記セレクタ制御部は、前記符号検査部により、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、かつ、前記第２のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、システムエラーを出力することを特徴とする二重化記憶装置。
【請求項７】
同一のデータを保持する第１及び第２のメモリと、入力される読み出し制御信号に基づき前記第１及び前記第２のメモリよりそれぞれ読み出されるデータのいずれかを選択するセレクタとを備える二重化記憶装置の制御方法であって、
前記二重化記憶装置は、前記読み出し制御信号が入力されるとき、該読み出し制御信号を識別する識別子を生成し、
前記二重化記憶装置は、前記読み出し制御信号に基づき、前記第１のメモリからデータを読み出し、該第１のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第１の主データを生成し、
前記二重化記憶装置は、前記第１のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第１の副データを生成し、
前記二重化記憶装置は、前記読み出し制御信号に基づき、前記第２のメモリからデータを読み出し、該第２のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第２の主データを生成し、
前記二重化記憶装置は、前記第２のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第２の副データを生成し、
前記二重化記憶装置は、前記第１の主データと前記第１の副データにそれぞれ含まれる前記識別子の同一性と、前記第２の主データと前記第２の副データとにそれぞれ含まれる前記識別子の同一性とを確認し、
前記二重化記憶装置は、前記確認の結果に基づき、前記セレクタを制御することを特徴とする制御方法。
【請求項８】
請求項７において、更に、
前記二重化記憶装置は、前記第１の主データと前記第１の副データにそれぞれ含まれる前記識別子の同一性及び前記第２の主データと前記第２の副データとにそれぞれ含まれる前記識別子の同一性が共に確認される場合に、前記第１のメモリから読み出されるデータと前記第２のメモリから読み出されるデータとが一致するかを確認し、
前記二重化記憶装置は、前記データの一致が確認されない場合、システムエラーを出力することを特徴とする制御方法。
【請求項９】
請求項７又は８において、
前記二重化記憶装置は、前記前記第１の主データと前記第１の副データとにそれぞれ含まれる前記識別子の同一性が確認される場合、前記第１のメモリより読み出されるデータが選択されるよう前記セレクタを制御し、
前記二重化記憶装置は、前記第１の主データと前記第１の副データとにそれぞれ含まれる前記識別子の同一性が確認されない場合、かつ、前記第２の主データと前記第２の副データとにそれぞれ含まれる前記識別子の同一性が確認される場合、前記第２のメモリより読み出されるデータが選択されるよう前記セレクタを制御することを特徴とする制御方法。
【請求項１０】
請求項７又は８において、
前記二重化記憶装置は、前記第１の主データと前記第１の副データとにそれぞれ含まれる前記識別子の同一性及び前記第２の主データと前記第２の副データとにそれぞれ含まれる前記識別子の同一性が共に確認されない場合、システムエラーを出力することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを保持するメモリとその入出力系統とが二重化され、信頼性が高められた二重化記憶装置及びその制御方法に関する。
【背景技術】
【０００２】
現在、産業上で計算機が必要とされる範囲は広がり、計算機には一層の信頼性が求められている。計算機に求められる信頼性には、一つには、計算機に使用される資源(CPU(Central Processing Unit)、メモリ、ハードディスク等)が故障しても計算機が継続動作可能な耐故障性があり、一つには、情報伝達の過程で生じるビット反転等のデータエラーを検出／訂正可能な耐エラー性がある。
【０００３】
計算機に求められる信頼性を高める方法の一つに、資源を多重化することが挙げられる。例えば、特許文献１〜４によれば、メモリが二重化され、同一のデータを二重化されたメモリに書き込み、読み出し時にそれぞれのメモリから読み出されたデータが比較され、処理に使用するデータを選択する構成が記載される。
【０００４】
すると、一方のメモリが故障しても残りのメモリに格納されるデータを使用することができるため、耐故障性が高められる。また、二重化されたメモリから読み出されたデータが一致して初めて処理に使用されるため、比較の過程でエラーの検出／訂正が行われ、耐エラー性が高められる。
【特許文献１】特開昭６２−１４０１５３号公報
【特許文献２】特開平４−１４９６５３号公報
【特許文献３】特開昭５７−１０１９５０号公報
【特許文献４】特開平８−２９７５８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
メモリは、メモリに対する読み出し要求や書き込み要求を処理するメモリコントローラにより制御される。近年DIMM(Dual Inline Memory Module)の大容量化、データ転送の高速化によりこのメモリコントローラに使用するLSI(Large Scale Integration)は複雑な構成となり、LSI内部でエラーが発生する可能性や外乱などにより外部から影響を受ける可能性が高くなっている。
【０００６】
メモリが二重化される場合、各メモリに対する入出力系統も二重化され、各入出力系統にメモリコントローラが設けられる。そして、通常は２つのメモリコントローラが対称に（つまり、同期を取って）動作する。しかし、全く同じ条件で動作させると対称に（つまり、同期を取って）動くLSIでも、内部で発生するエラーや外乱などが原因で、各入出力系統に設けられるメモリコントローラの動作が異なるようになる場合がある。
【０００７】
二重化メモリのメモリコントローラの動作が非対称に（非同期に）なると、例えば、データのタイミングがずれる、データが喪失する、データの順序が入れ替わる、などの現象が計算機に発生する可能性がある。例えば、データのタイミングがずれるだけで、読み出し時にそれぞれのメモリから読み出されたデータが一致しなくなる。この場合、データ自体が破壊されたわけではなく、計算機としては、どちらのデータを処理に使用すべきかを判定できないため、計算機の継続動作が不可能になる。
【０００８】
こうして、従来技術においては、メモリが二重化されていても、メモリコントローラに使用するLSIの不調により、計算機の動作を停止させる必要が生じる。すると、メモリを二重化しても、計算機の継続動作が不可能になり、計算機に求められる信頼性が低下してしまう場合があるという課題を有していた。
【０００９】
そこで、本発明の目的は、計算機に求められる信頼性を低下させることなく、計算機の継続動作を一層可能にする二重化記憶装置及び二重化記憶装置の制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的は、本発明の第一の側面として、同一のデータを保持する第１及び第２のメモリと、入力される読み出し制御信号に基づき前記第１及び前記第２のメモリよりそれぞれ読み出されるデータのいずれかを選択するセレクタとを備える二重化記憶装置であって、前記読み出し制御信号が入力されるとき、該読み出し制御信号を識別する識別子を該入力される読み出し制御信号に付与して出力する要求管理部と、前記要求管理部より出力される読み出し制御信号に基づき、前記第１のメモリからデータを読み出し、該第１のメモリから読み出されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第１の主メモリ制御部と、前記要求管理部より出力される読み出し制御信号と、前記第１の主メモリ制御部が読み出すデータとが入力され、前記入力されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第１の副メモリ制御部と、前記要求管理部より出力される読み出し制御信号に基づき、前記第２のメモリからデータを読み出し、該第２のメモリから読み出されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第２の主メモリ制御部と、前記要求管理部より出力される読み出し制御信号と、前記第２の主メモリ制御部が読み出すデータとが入力され、前記入力されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第２の副メモリ制御部と、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性と、前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性とを確認する同期検査部と、前記確認の結果に基づき、前記セレクタを制御するセレクタ制御部とを有することを特徴とする二重化記憶装置を提供することにより達成される。
【００１１】
上記発明の側面においてより好ましい実施例によれば、前記同期検査部により、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性及び前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性が共に確認される場合に、前記第１のメモリから読み出されるデータと前記第２のメモリから読み出されるデータとが一致するかを確認する一致検査部を有し、前記セレクタ制御部は、前記一致検査部により一致が確認されない場合、システムエラーを出力する。
【００１２】
上記発明の側面においてより好ましい実施例によれば、前記セレクタ制御部は、前記同期検査部により、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性が確認される場合、前記第１のメモリより読み出されるデータが選択されるよう前記セレクタを制御し、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性が確認されない場合、かつ、前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性が確認される場合、前記第２のメモリより読み出されるデータが選択されるよう前記セレクタを制御する。
【００１３】
上記発明の側面においてより好ましい実施例によれば、前記セレクタ制御部は、前記同期検査部により、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性及び前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性が共に確認されない場合、システムエラーを出力する。
【００１４】
上記発明の側面においてより好ましい実施例によれば、前記データに付与された誤り検出／訂正符号を検査する符号検査部を有し、前記セレクタ制御部は、前記符号検査部により、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出されない場合、前記第１のメモリより読み出されるデータが選択されるよう前記セレクタを制御し、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、かつ、前記第２のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出されない場合、前記第２のメモリより読み出されるデータが選択されるよう前記セレクタを制御する。
【００１５】
上記発明の側面においてより好ましい実施例によれば、前記セレクタ制御部は、前記符号検査部により、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、かつ、前記第２のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、システムエラーを出力する。
【００１６】
また、上記目的は、第二の側面として、同一のデータを保持する第１及び第２のメモリと、入力される読み出し制御信号に基づき前記第１及び前記第２のメモリよりそれぞれ読み出されるデータのいずれかを選択するセレクタとを備える二重化記憶装置の制御方法であって、前記二重化記憶装置は、前記読み出し制御信号が入力されるとき、該読み出し制御信号を識別する識別子を生成し、前記二重化記憶装置は、前記読み出し制御信号に基づき、前記第１のメモリからデータを読み出し、該第１のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第１の主データを生成し、前記二重化記憶装置は、前記第１のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第１の副データを生成し、前記二重化記憶装置は、前記読み出し制御信号に基づき、前記第２のメモリからデータを読み出し、該第２のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第２の主データを生成し、前記二重化記憶装置は、前記第２のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第２の副データを生成し、前記二重化記憶装置は、前記第１の主データと前記第１の副データにそれぞれ含まれる前記識別子の同一性と、前記第２の主データと前記第２の副データとにそれぞれ含まれる前記識別子の同一性とを確認し、前記二重化記憶装置は、前記確認の結果に基づき、前記セレクタを制御することを特徴とする制御方法を提供することにより達成される。
【発明の効果】
【００１７】
本発明の実施形態の二重化記憶装置を用いれば、計算機に求められる信頼性を低下させることなく、計算機の継続動作を一層可能にする。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態について図面に従って説明する。しかしながら、本発明の技術的範囲はかかる実施の形態に限定されるものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【００１９】
図１は、本実施形態における二重化記憶装置の構成例を示す図である。二重化記憶装置は、図示省略されたバスを介してCPU(Central Processing Unit)に接続されており、CPUより入力される要求信号に応じた処理を行う。
【００２０】
例えば、書き込み要求であれば、二重化記憶装置は、書き込み要求と共に入力される書き込みデータをメモリ１Ａとメモリ１Ｂの指定されたアドレスに格納し、CPUに処理結果を通知する。こうして、メモリ１Ａとメモリ１Ｂには同一のデータが格納される。また、読み出し要求１０１であれば、二重化記憶装置は、指定されたアドレスからデータを読み出し、読み出されたデータを含むデータ１０４をCPUに出力するか、システムエラー１０８をCPUに通知する。
【００２１】
本実施形態の二重化記憶装置においては、データを格納する記憶素子を複数含むメモリが二重化され（メモリ１Ａとメモリ１Ｂ）、それに伴い入出力系統も二重化されている。ここでは、メモリ１Ａから読み出されるデータが使用される入出力系統をＡ系統、メモリ１Ｂから読み出されるデータが使用される入出力系統をＢ系統と呼んで区別することにする。
【００２２】
本実施形態の二重化記憶装置の特徴として、読み出し要求１０１が入力されると、管理部３０が、その読み出し要求１０１を識別する識別子（制御ID）を生成し、読み出し要求１０１に付加する。この制御IDが付与された読み出し要求をメモリ制御信号１０２として、後述するメモリ制御部に出力する。
【００２３】
読み出し要求１０１には、読み出し先として指定されるアドレス、読み出しであることを示すリードコマンド（書き込みであれば、ライトコマンドとなる）等が含まれる。管理部３０は、各読み出し要求１０１が二重化記憶装置に入力される時間や、その内容（指定アドレスやコマンド）が異なれば、異なる識別子となるよう、重複しない制御IDを生成し、各読み出し要求を識別可能とする。
【００２４】
この重複しない制御IDにより、二重化記憶装置は、異なるタイミングで入力された要求を処理する同期ずれエラーを検出する。なお、本実施形態では、読み出し要求に対し、制御IDを生成するが、書き込み要求に対し制御IDを発行しても構わない。
【００２５】
また、本実施形態の二重化記憶装置の別の特徴として、各入出力系統に対し２つのメモリ制御部が設けられる。即ち、Ａ系では、メモリ１Ａに対して、メモリ制御部２Ａ１とメモリ制御部２Ａ２が、Ｂ系では、メモリ１Ｂに対して、メモリ制御部２Ｂ１とメモリ制御部２Ｂ２が設けられる。管理部３０は、読み出し要求１０１が入力されると、同一のメモリ制御信号１０２を４つのメモリ制御部に対して出力する。
【００２６】
メモリ制御部２Ａ１、２Ａ２は、メモリ１Ａを制御し、メモリ制御部２Ｂ１、２Ｂ２は、メモリ２Ｂを制御する。各メモリ制御部は、メモリに対する書き込み要求に応じて、書き込み要求と共に入力される書き込みデータを指定されたアドレスに書き込む。
【００２７】
また、メモリに対する読み出し要求１０１に応じて、各メモリ制御部は、読み出し先の指定アドレス＋リードコマンド１０３をメモリに出力して、データ４１を読み出す。そして、各メモリ制御部は、メモリから読み出したデータ４１に、メモリ制御信号１０２より得られる制御IDを含むヘッダを追加して、ヘッダ付データ１０４を後段のデータ制御部１０に与える。
【００２８】
データ制御部１０は、ECC検査部（符号検査部）、同期検査部、一致検査部５、セレクタ制御部６、バスセレクタ７を含む。ECC検査部と同期検査部は、Ａ系統、Ｂ系統にそれぞれ設けられる。
【００２９】
ECC検査部３Ａ、３Ｂは、ヘッダ付データ１０４に含まれるヘッダとデータにそれぞれ含まれる誤り検出／訂正符号(ECC: Error Checking and Correct Code)に基づき、訂正不可能なビットエラーを検出する符号検査を行う。符号検査により訂正不可能なビットエラーが検出されると、各ECC検査部は、セレクタ制御部６に、符号エラー１０５を通知する。
【００３０】
同期検査部４Ａ、４Ｂは、ヘッダ付データ１０４に含まれるヘッダに含まれる制御IDに基づき、各入出力系統に２つ含まれるメモリ制御部が同期していない状態である同期エラーを検出する同期検査を行う。同期検査により同期エラーが検出されると、各同期検査部は、セレクタ制御部６に、同期エラー１０６を通知する。
【００３１】
同期検査部４Ａ、４Ｂは、ヘッダ全体が一致するかにより、一致しない場合、同期エラーとすることができる。また、同期検査部４Ａ、４Ｂは、ヘッダに含まれる制御IDが一致しない場合、同期エラーと判定しても良い。
【００３２】
一致検査部５は、各同期検査部、各ECC検査部において検出できない多重障害を検出するため、各同期検査部、各ECC検査部においてエラーが検出されなかった場合に、メモリ１Ａから読み出されたデータと、メモリ１Ｂから読み出されたデータとが一致するかを確認する一致検査を行う。一致検査部５は、セレクタ制御部６に、一致検査の結果１０７を通知する。
【００３３】
セレクタ制御部６は、各ECC検査部、各同期検査部における検査結果に応じて、Ａ系統かＢ系統かを選択する選択信号１０８をバスセレクタ７に入力する。セレクタ制御部６は、エラーが通知されていない方の系統を選択する選択信号１０８をバスセレクタ７に入力する。
【００３４】
例えば、ECC検査部３Ａが符号エラー１０５を通知する場合、セレクタ制御部６は、Ｂ系統を選択する選択信号１０８をバスセレクタ７に入力する。同期検査部４Ｂが同期エラー１０６を通知する場合、セレクタ制御部６は、Ａ系統を選択する選択信号１０８をバスセレクタ７に入力する。
【００３５】
そして、両系統からエラーが通知される場合、セレクタ制御部６は、システムエラー１０９を出力する。また、一致検査部５による一致検査で両データの不一致が確認される場合も、セレクタ制御部６は、システムエラー１０９を出力する。
【００３６】
バスセレクタ７は、セレクタ制御部６からの選択信号に基づき、使用する入出力系統を切り替える。なお、図１において、Ｂ系統における信号の内容は、Ａ系統における信号の内容と同じであるため、番号付けは省略されている。
【００３７】
図２は、本実施形態におけるメモリ制御部の詳細な構成例を示す図である。図２には、Ａ系統に関する構成が示されるが、メモリ制御部２Ｂ１、２Ｂ２の構成もメモリ制御部２Ａ１、２Ａ２と同様である。
【００３８】
読み出し制御信号１０２には、アドレス、リードコマンド、制御IDが含まれる。アドレスは、メモリ上のデータの位置を示す情報である。リードコマンドは、読み出し要求であることを示す。制御IDは、読み出し要求を一意に識別する識別子であり、管理部３０により生成される。
【００３９】
管理部３０より入力される読み出し制御信号１０２に含まれる情報のうち、アドレス２０１は、アドレスキュー１１、２１に格納される。そして、管理部３０より入力される読み出し制御信号１０２に含まれる情報のうち、リードコマンド＋制御ID２０２がコマンドキュー１２、２２に格納される。
【００４０】
コマンドキュー１２、２２は、リードコマンド、制御IDを格納するレジスタである。読み出し要求において、アドレスキュー１１に入ったアドレスと同期して動作する。コマンドキュー１２、２２に有効なコマンドが格納される場合、順次、メモリ１Ａに対してリードコマンドが実行される。
【００４１】
コマンドキュー１２からは、コマンドの実行時に、ヘッダの生成に必要な情報がヘッダ生成部１３へ出力される。この情報の中には、制御ID２０３が含まれる。
【００４２】
アドレスキュー１１、２１は、コマンドキュー１２、２２と同期して動作する。メモリ１Ａへのリードコマンドの実行と同期して、アドレスキュー１１、２１に格納されたアドレスがメモリ１Ａに送信される。
【００４３】
こうして、メモリには、リードコマンド＋アドレス１０３が入力される。そして、読み出されたデータ４１が、データキュー１４、２４に格納される。データキュー１４、２４は、メモリ１Ａから読み出されたデータ４１を蓄えるレジスタである。
【００４４】
ヘッダ生成部１３は、データ送信に必要なヘッダ３０２を生成すると共に、メモリ１Ａから読み出したデータ４１が到達するまで、ヘッダ３０２の送信を待ち合わせる制御を行う。また、ヘッダ生成部１３は、セレクタ１５を制御し、ヘッダとデータの順序が、ヘッダ＋データとなるようセレクタ制御信号３０１を出力する。更に、データキュー１４、２４の管理を行い、データキュー１４、２４内の資源が枯渇した場合、コマンドキュー１２、２２に対して出力を停止させるようBUSY信号を出力する。
【００４５】
セレクタ１５は、ヘッダ生成部１３より入力されるセレクタ制御信号３０１に基づき、ヘッダ＋データとして送信されるようヘッダ系とデータ系を切り替える。また、セレクタ１５は、データキュー１４に対し、必要なデータを出力させる制御を行うために、リードポインタ制御信号３０３を出力する。セレクタ１５からのリードポインタ制御信号に基づき、データキュー１４は、必要なパケット長のデータを出力する。
【００４６】
こうして、メモリ１Ａから読み出されたデータ４１に、ヘッダ生成部１３で生成されたヘッダが付与され、ヘッダ付データ１０４がメモリ制御部から後段のデータ制御部に入力される。
【００４７】
図３は、ヘッダ付データ１０４の構成例を示す図である。ヘッダ付データ１０４は、ヘッダ４４とデータ４１に分解される。そのうちヘッダ４４は、更に、ヘッダ本体４５と、ヘッダ本体４５に対する冗長符合であるECC４６に分解される。ヘッダ本体４５には、制御ID２０３が含まれる。
【００４８】
また、データ４１も、更に、データ本体４２と、データ本体に対する冗長符号であるECC４３に分解される。ヘッダに対するECC４６、データに対するECC４３により、伝送過程でのビット反転が検出される。
【００４９】
図４は、本実施形態におけるデータ制御部１０の詳細な構成例を示す図である。図１に示すECC検査部３Ａ、３Ｂの前段には、データ制御部１０に入力されるヘッダ付データ１０４をヘッダ４４とデータ４１に分解するためのヘッダデータ分離部(HD分離部)がメモリ制御部に合わせて４つ（HD分離部８Ａ１、８Ａ２、８Ｂ１、８Ｂ２）設けられる。
【００５０】
また、図１に示すECC検査部３Ａ、３Ｂが、データのECC４３を検査するデータECC検査部３１Ａ、３１Ｂと、ヘッダのECC４６を検査するヘッダECC検査部３２Ａ、３２Ｂに分かれている。そして、同期検査部４Ａ、４Ｂの後段に、一旦分離されたヘッダ４４とデータ４１を再合成するための合成部９Ａ、９Ｂが設けられる。以上の点が、図１より詳細になった箇所である。
【００５１】
HD分離部８Ａ１は、メモリ制御部２Ａ１より入力されるヘッダ付データ１０４を、ヘッダHa1とデータDa1に分離する。同様に、HD分離部８Ａ２は、メモリ制御部２Ａ２より入力されるヘッダ付データ１０４を、ヘッダHa2とデータDa2に分離する。そして、データDa1、Da2は、データECC検査部３１Ａに、ヘッダHa1、Ha2は、ヘッダECC検査部３２Ａに入力される。
【００５２】
データECC検査部３１Ａは、データDa1、Da2のいずれかに訂正不可能なビットエラーを検出すると、データに関する符号エラー１０５ｄをセレクタ制御部６に入力する。ヘッダECC検査部３２Ａは、ヘッダHa1、Ha2のいずれかに訂正不可能なビットエラーを検出すると、ヘッダに関する符号エラー１０５ｈをセレクタ制御部６に入力する。
【００５３】
ヘッダECC検査部３２Ａは、続いて、ヘッダHa1、Ha2を同期検査部４Ａに入力する。同期検査部４Ａは、ヘッダに含まれる制御IDに基づき、同期エラーを検出すると、セレクタ制御部６に、同期エラー１０６を通知する。
【００５４】
合成部９Ａ、９Ｂは、分離されたヘッダ４４とデータ４１を再合成し、バスセレクタ７に入力する。また、合成部９Ａ、９Ｂは、データ４１を一致検査部５に入力する。
【００５５】
残りの箇所については、図１における説明と同じであり、略す。
【００５６】
図５は、本実施形態におけるセレクタ制御部６の動作を説明するフローチャートである。まず、セレクタ制御部６は、データECCエラーが発生したかを判定する（Ｓ１）。データECC検査部３１Ａ、３１Ｂにより、データに関する符号エラー１０５ｄが入力されれば、セレクタ制御部６は、データECCエラーが発生したと判定する。その場合、どちらの系統でエラーが発生したかも、セレクタ制御部６に通知される。
【００５７】
データECCエラーが発生していない場合（Ｓ１Ｎｏ）、セレクタ制御部６は、ヘッダECCエラーが発生したかを判定する（Ｓ２）。ヘッダECC検査部３２Ａ、３２Ｂにより、ヘッダに関する符号エラー１０５ｈが入力されれば、セレクタ制御部６は、ヘッダECCエラーが発生したと判定する。その場合、どちらの系統でエラーが発生したかも、セレクタ制御部６に通知される。
【００５８】
ヘッダECCエラーが発生していない場合（Ｓ２Ｎｏ）、セレクタ制御部６は、同期エラーが発生したかを判定する（Ｓ３）。同期検査部４Ａ、４Ｂにより、同期エラー１０６が入力されれば、セレクタ制御部６は、同期エラーが発生したと判定する。その場合、どちらの系統でエラーが発生したかも、セレクタ制御部６に通知される。
【００５９】
符号検査、同期検査によりエラーが検出されない場合（Ｓ３Ｎｏ）、セレクタ制御部６は、メモリ１Ａとメモリ１Ｂから読み出されたデータが一致するかを判定する（Ｓ４）。両系のデータが一致すれば（Ｓ４Ｙｅｓ）、どちらの系統のデータを使用してもよいことになり、この場合セレクタ制御部６は、メモリ１Ａから読み出されたデータが使用されるようセレクタを制御する選択信号を出力する（Ｓ８）。この場合、メモリ１Ａから読み出されたデータが使用されるようセレクタを制御しても構わない。
【００６０】
符号検査、同期検査によりエラーが検出されないものの、両系のデータが一致しない場合（Ｓ４Ｎｏ）、どちらのデータを使用すべきかを判定することはできず、セレクタ制御部６は、システムエラーを出力する（Ｓ７）。
【００６１】
また、符号検査又は同期検査においてエラーが検出される場合（Ｓ１Ｙｅｓ、Ｓ２Ｙｅｓ、Ｓ３Ｙｅｓ）、セレクタ制御部６は、エラーが検出されたのが、Ａ系統であるかを判定する（Ｓ５）。エラーがＢ系統で検出される場合（Ｓ５Ｎｏ）、セレクタ制御部６は、メモリ１Ａから読み出されたデータが使用されるようセレクタを制御する選択信号を出力する（Ｓ８）。
【００６２】
エラーがＡ系統で検出される場合（Ｓ５Ｙｅｓ）、セレクタ制御部６は、Ｂ系統においてもエラーが検出されたかを判定する（Ｓ６）。Ｂ系統においては、エラーが検出されていない場合（Ｓ６Ｎｏ）、セレクタ制御部６は、メモリ１Ｂから読み出されたデータが使用されるようセレクタを制御する選択信号を出力する（Ｓ９）。
【００６３】
エラーがＡ系統でもＢ系統でも検出された場合（Ｓ６Ｙｅｓ）、セレクタ制御部６は、システムエラーを出力する（Ｓ７）。以上に説明した図５の動作をまとめると、図６の表のようになる。
【００６４】
以下、具体例で動作を説明する。
【００６５】
図７は、本実施形態における二重化記憶装置の通常時の動作を説明する図である。メモリ１Ａから読み出されたデータ４１が、メモリ制御部２Ａ１、２Ａ２に入力される。メモリ制御部２Ａ１、２Ａ２は、同一のヘッダを付して、ECC検査部３Ａにヘッダ付データ１０４を入力する。
【００６６】
ECC検査部３Ａでは、ヘッダとデータについての符号検査が行われる。ここでは、エラーは検出されない。ECC検査部３Ａは、同期検査部４Ａにヘッダを入力する。
【００６７】
同期検査部４Ａでは、ヘッダの同期検査が行われる。ここでも、エラーは検出されない。同様の処理が、Ｂ系統でも行われ、ECC検査部３Ｂでは符号検査が、同期検査部４Ｂでは同期検査が行われる。ここでもやはり、エラーは検出されない。
【００６８】
最終的に、メモリ１Ａから読み出されたデータと、メモリ１Ｂから読み出されたデータとが一致検査部５に入力され、一致検査が行われる。そして、エラーが検出されないことから、セレクタ制御部６が、例えば、メモリ１Ａから読み出されたデータが使用されるようバスセレクタ７を制御する。
【００６９】
図８は、二重化記憶装置が同期検査において片系のエラーを検出する例を説明する図である。メモリ１Ａから読み出されたデータ４１が、メモリ制御部２Ａ１、２Ａ２に入力される。図８では、メモリ制御部２Ａ１と２Ａ２において、同期ずれが発生し、メモリ制御部２Ａ２において異なるヘッダ８１が付与される。
【００７０】
ECC検査部３Ａでは、ヘッダとデータについての符号検査が行われる。ここでは、エラーは検出されない。同期ずれのヘッダではあるが、伝送過程におけるビット反転は発生せず、ECCエラーとはならないためである。
【００７１】
そして、ECC検査部３Ａは、同期検査部４Ａにヘッダを入力する。同期検査部４Ａでは、ヘッダの同期検査が行われる。ここで、同期エラーが検出される。そして、同期検査部４Ａは、Ａ系統において同期エラーが検出されたことをセレクタ制御部６に通知する。
【００７２】
同様の処理が、Ｂ系統でも行われ、ECC検査部３Ｂでは符号検査が、同期検査部４Ｂでは同期検査が行われる。Ｂ系統では、エラーは検出されない。最終的に、セレクタ制御部６が、メモリ１Ｂから読み出されたデータが使用されるようバスセレクタ７を制御する。
【００７３】
図９は、二重化記憶装置が同期検査において両系のエラーを検出する例を説明する図である。メモリ１Ａから読み出されたデータ４１が、メモリ制御部２Ａ１、２Ａ２に入力される。図８では、メモリ制御部２Ａ１と２Ａ２において、同期ずれが発生し、メモリ制御部２Ａ２において異なるヘッダ８１が付与される。更に、メモリ制御部２Ｂ１と２Ｂ２において、同期ずれが発生し、メモリ制御部２Ｂ１において異なるヘッダ８１が付与される。
【００７４】
ECC検査部３Ａでは、ヘッダとデータについての符号検査が行われる。ここでは、エラーは検出されない。同期ずれのヘッダではあるが、伝送過程におけるビット反転は発生せず、ECCエラーとはならないためである。
【００７５】
そして、ECC検査部３Ａは、同期検査部４Ａにヘッダを入力する。同期検査部４Ａでは、ヘッダの同期検査が行われる。ここで、同期エラーが検出される。そして、同期検査部４Ａは、Ａ系統において同期エラーが検出されたことをセレクタ制御部６に通知する。
【００７６】
同様の処理が、Ｂ系統でも行われ、ECC検査部３Ｂでは符号検査が、同期検査部４Ｂでは同期検査が行われる。その結果、同期検査部４Ｂで、同期エラーが検出される。そして、同期検査部４Ｂは、Ｂ系統において同期エラーが検出されたことをセレクタ制御部６に通知する。
【００７７】
この場合、セレクタ制御部６は、Ａ系統、Ｂ系統で共にエラーが検出されたため、システムエラーを通知する。
【００７８】
図１０は、二重化記憶装置がヘッダのECC検査において片系のエラーを検出する例を説明する図である。メモリ１Ａから読み出されたデータ４１が、メモリ制御部２Ａ１、２Ａ２に入力される。メモリ制御部２Ａ１、２Ａ２は、同一のヘッダを付して、ECC検査部３Ａにヘッダ付データ１０４を入力する。図８では、ECC検査部３Ａへの伝送過程において、メモリ制御部２Ａ２から出力されたヘッダにビット反転が生じるものとする（図１０では、ビット反転が生じたヘッダ８２が、ヘッダとECCを結合しても正方形にならない図形として描かれる）。
【００７９】
ECC検査部３Ａでは、ヘッダとデータについての符号検査が行われる。ここで、ヘッダに関する符号エラーが検出される。そして、ECC検査部３Ａは、Ａ系統において同期エラーが検出されたことをセレクタ制御部６に通知する。
【００８０】
同様の処理が、Ｂ系統でも行われ、ECC検査部３Ｂでは符号検査が、同期検査部４Ｂでは同期検査が行われる。Ｂ系統では、エラーは検出されない。最終的に、セレクタ制御部６が、メモリ１Ｂから読み出されたデータが使用されるようバスセレクタ７を制御する。
【００８１】
図１１は、二重化記憶装置がデータのECC検査において片系のエラーを検出する例を説明する図である。メモリ１Ａから読み出されたデータ４１が、メモリ制御部２Ａ１、２Ａ２に入力される。メモリ制御部２Ａ１、２Ａ２は、同一のヘッダを付して、ECC検査部３Ａにヘッダ付データ１０４を入力する。図１１では、ECC検査部３Ａへの伝送過程において、メモリ制御部２Ａ２から出力されたデータにビット反転が生じるものとする（図１１では、ビット反転が生じたデータ８３が、読み出されたデータ４１を示す図形に、黒く塗りつぶされた半円が付された図形として描かれる）。
【００８２】
ECC検査部３Ａでは、ヘッダとデータについての符号検査が行われる。ここで、データに関する符号エラーが検出される。そして、ECC検査部３Ａは、Ａ系統において同期エラーが検出されたことをセレクタ制御部６に通知する。
【００８３】
同様の処理が、Ｂ系統でも行われ、ECC検査部３Ｂでは符号検査が、同期検査部４Ｂでは同期検査が行われる。Ｂ系統では、エラーは検出されない。最終的に、セレクタ制御部６が、メモリ１Ｂから読み出されたデータが使用されるようバスセレクタ７を制御する。
【００８４】
図１２は、二重化記憶装置がデータのECC検査において両系のエラーを検出する例を説明する図である。メモリ１Ａから読み出されたデータ４１が、メモリ制御部２Ａ１、２Ａ２に入力される。メモリ制御部２Ａ１、２Ａ２は、同一のヘッダを付して、ECC検査部３Ａにヘッダ付データ１０４を入力する。
【００８５】
図１２では、ECC検査部３Ａへの伝送過程において、メモリ制御部２Ａ２から出力されたデータにビット反転が生じるものとする（図１２では、ビット反転が生じたデータ８３が、読み出されたデータ４１を示す図形に、黒く塗りつぶされた半円が付された図形として描かれる）。更に、ECC検査部３Ｂへの伝送過程においても、メモリ制御部２Ｂ１から出力されたデータにビット反転が生じるものとする。
【００８６】
ECC検査部３Ａでは、ヘッダとデータについての符号検査が行われる。ここで、データに関する符号エラーが検出される。そして、ECC検査部３Ａは、Ａ系統において同期エラーが検出されたことをセレクタ制御部６に通知する。
【００８７】
同様の処理が、Ｂ系統でも行われ、ECC検査部３Ｂで、データに関する符号エラーが検出される。そして、ECC検査部３Ｂは、Ｂ系統において同期エラーが検出されたことをセレクタ制御部６に通知する。
【００８８】
この場合、セレクタ制御部６は、Ａ系統、Ｂ系統で共にエラーが検出されたため、システムエラーを通知する。
【００８９】
図１３は、二重化記憶装置がデータの一致検査においてエラーを検出する例を説明する図である。符号検査、同期検査ではエラーは検出されないが、メモリ１Ａから読み出されたデータと、メモリ１Ｂから読み出されたデータとが異なる、多重障害の場合を示す。
【００９０】
まず、メモリ１Ａから読み出されたデータ４１が、メモリ制御部２Ａ１、２Ａ２に入力される。メモリ制御部２Ａ１、２Ａ２は、同一のヘッダを付して、ECC検査部３Ａにヘッダ付データ１０４を入力する。
【００９１】
ECC検査部３Ａでは、ヘッダとデータについての符号検査が行われる。ここでは、エラーは検出されない。ECC検査部３Ａは、同期検査部４Ａにヘッダを入力する。同期検査部４Ａでは、ヘッダの同期検査が行われる。ここでも、エラーは検出されない。
【００９２】
同様の処理が、Ｂ系統でも行われ、ECC検査部３Ｂでは符号検査が、同期検査部４Ｂでは同期検査が行われる。Ｂ系統においてもやはり、エラーは検出されない。
【００９３】
最終的に、メモリ１Ａから読み出されたデータと、メモリ１Ｂから読み出されたデータとが一致検査部５に入力され、一致検査が行われる。そして、一致検査により初めて、データの不一致が確認される。この場合、セレクタ制御部６は、どちらのデータを使用すべきかを判定することはできず、システムエラーを出力する。
【００９４】
なお、本実施形態の説明にあたり、各入出力系統において、メモリから読み出されたデータのコピーがメモリ制御部に入力されるが、メモリから読み出されたデータを二分割し、各入出力系統のメモリ制御部に入力する構成でもよい。例えば、メモリ１Ａから読み出される７２ビットのデータ（データ部分６４ビット＋ECC部分８ビット）を３６ビット（データ部分３２ビット＋ECC部分４ビット）に分割し、前半をメモリ制御部２Ａ１に、後半をメモリ制御部２Ａ２に入力する構成でもよい。
【００９５】
以上に説明した実施形態によれば、従来であれば、計算機を停止させ、信頼性を低下させる原因となっていた誤動作の発生を抑えることができ、計算機に求められる信頼性を低下させることなく、計算機の継続動作を一層可能にする。例えば、二重化記憶装置を使用する計算機において発生する現象（データのタイミングがずれる、データが喪失する、データの順序が入れ替わる等）を抑えることができる。
【００９６】
以上まとめると付記のようになる。
【００９７】
（付記１）
同一のデータを保持する第１及び第２のメモリと、入力される読み出し制御信号に基づき前記第１及び前記第２のメモリよりそれぞれ読み出されるデータのいずれかを選択するセレクタとを備える二重化記憶装置であって、
前記読み出し制御信号が入力されるとき、該読み出し制御信号を識別する識別子を該入力される読み出し制御信号に付与して出力する要求管理部と、
前記要求管理部より出力される読み出し制御信号に基づき、前記第１のメモリからデータを読み出し、該第１のメモリから読み出されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第１の主メモリ制御部と、
前記要求管理部より出力される読み出し制御信号と、前記第１の主メモリ制御部が読み出すデータとが入力され、前記入力されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第１の副メモリ制御部と、
前記要求管理部より出力される読み出し制御信号に基づき、前記第２のメモリからデータを読み出し、該第２のメモリから読み出されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第２の主メモリ制御部と、
前記要求管理部より出力される読み出し制御信号と、前記第２の主メモリ制御部が読み出すデータとが入力され、前記入力されるデータを前記要求管理部より出力される読み出し制御信号に付与される前記識別子と共に出力する第２の副メモリ制御部と、
前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性と、前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性とを確認する同期検査部と、
前記確認の結果に基づき、前記セレクタを制御するセレクタ制御部とを有することを特徴とする二重化記憶装置。
【００９８】
（付記２）
付記１において、更に、
前記同期検査部により、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性及び前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性が共に確認される場合に、前記第１のメモリから読み出されるデータと前記第２のメモリから読み出されるデータとが一致するかを確認する一致検査部を有し、
前記セレクタ制御部は、前記一致検査部により一致が確認されない場合、システムエラーを出力することを特徴とする二重化記憶装置。
【００９９】
（付記３）
付記１又は２において、
前記セレクタ制御部は、前記同期検査部により、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性が確認される場合、前記第１のメモリより読み出されるデータが選択されるよう前記セレクタを制御し、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性が確認されない場合、かつ、前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性が確認される場合、前記第２のメモリより読み出されるデータが選択されるよう前記セレクタを制御することを特徴とする二重化記憶装置。
【０１００】
（付記４）
付記１又は２において、
前記セレクタ制御部は、前記同期検査部により、前記第１の主メモリ制御部と前記第１の副メモリ制御部とから入力される前記識別子の同一性及び前記第２の主メモリ制御部と前記第２の副メモリ制御部とから入力される前記識別子の同一性が共に確認されない場合、システムエラーを出力することを特徴とする二重化記憶装置。
【０１０１】
（付記５）
付記１において、更に、
前記データに付与された誤り検出／訂正符号を検査する符号検査部を有し、
前記セレクタ制御部は、前記符号検査部により、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出されない場合、前記第１のメモリより読み出されるデータが選択されるよう前記セレクタを制御し、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、かつ、前記第２のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出されない場合、前記第２のメモリより読み出されるデータが選択されるよう前記セレクタを制御することを特徴とする二重化記憶装置。
【０１０２】
（付記６）
付記５において、
前記セレクタ制御部は、前記符号検査部により、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、かつ、前記第２のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、システムエラーを出力することを特徴とする二重化記憶装置。
【０１０３】
（付記７）
同一のデータを保持する第１及び第２のメモリと、入力される読み出し制御信号に基づき前記第１及び前記第２のメモリよりそれぞれ読み出されるデータのいずれかを選択するセレクタとを備える二重化記憶装置の制御方法であって、
前記二重化記憶装置は、前記読み出し制御信号が入力されるとき、該読み出し制御信号を識別する識別子を生成し、
前記二重化記憶装置は、前記読み出し制御信号に基づき、前記第１のメモリからデータを読み出し、該第１のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第１の主データを生成し、
前記二重化記憶装置は、前記第１のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第１の副データを生成し、
前記二重化記憶装置は、前記読み出し制御信号に基づき、前記第２のメモリからデータを読み出し、該第２のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第２の主データを生成し、
前記二重化記憶装置は、前記第２のメモリから読み出されるデータに前記読み出し制御信号に付与される前記識別子を追加して、第２の副データを生成し、
前記二重化記憶装置は、前記第１の主データと前記第１の副データにそれぞれ含まれる前記識別子の同一性と、前記第２の主データと前記第２の副データとにそれぞれ含まれる前記識別子の同一性とを確認し、
前記二重化記憶装置は、前記確認の結果に基づき、前記セレクタを制御することを特徴とする制御方法。
【０１０４】
（付記８）
付記７において、更に、
前記二重化記憶装置は、前記第１の主データと前記第１の副データにそれぞれ含まれる前記識別子の同一性及び前記第２の主データと前記第２の副データとにそれぞれ含まれる前記識別子の同一性が共に確認される場合に、前記第１のメモリから読み出されるデータと前記第２のメモリから読み出されるデータとが一致するかを確認し、
前記二重化記憶装置は、前記データの一致が確認されない場合、システムエラーを出力することを特徴とする制御方法。
【０１０５】
（付記９）
付記７又は８において、
前記二重化記憶装置は、前記前記第１の主データと前記第１の副データとにそれぞれ含まれる前記識別子の同一性が確認される場合、前記第１のメモリより読み出されるデータが選択されるよう前記セレクタを制御し、
前記二重化記憶装置は、前記第１の主データと前記第１の副データとにそれぞれ含まれる前記識別子の同一性が確認されない場合、かつ、前記第２の主データと前記第２の副データとにそれぞれ含まれる前記識別子の同一性が確認される場合、前記第２のメモリより読み出されるデータが選択されるよう前記セレクタを制御することを特徴とする制御方法。
【０１０６】
（付記１０）
付記７又は８において、
前記二重化記憶装置は、前記第１の主データと前記第１の副データとにそれぞれ含まれる前記識別子の同一性及び前記第２の主データと前記第２の副データとにそれぞれ含まれる前記識別子の同一性が共に確認されない場合、システムエラーを出力することを特徴とする制御方法。
【０１０７】
（付記１１）
付記７において、
前記データには、誤り検出／訂正符号が付与されており、
前記二重化記憶装置は、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出されない場合、前記第１のメモリより読み出されるデータが選択されるよう前記セレクタを制御し、
前記二重化記憶装置は、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、かつ、前記第２のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出されない場合、前記第２のメモリより読み出されるデータが選択されるよう前記セレクタを制御することを特徴とする制御方法。
【０１０８】
（付記１２）
付記１１において、
前記二重化記憶装置は、前記第１のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、かつ、前記第２のメモリより読み出されたいずれかのデータにおいて、訂正不可能な誤りが検出される場合、システムエラーを出力することを特徴とする制御方法。
【図面の簡単な説明】
【０１０９】
【図１】本実施形態における二重化記憶装置の構成例を示す図である。
【図２】本実施形態におけるメモリ制御部の詳細な構成例を示す図である。
【図３】ヘッダ付データの構成例を示す図である。
【図４】本実施形態におけるデータ制御部の詳細な構成例を示す図である。
【図５】本実施形態におけるセレクタ制御部の動作を説明するフローチャートである。
【図６】本実施形態における二重化記憶装置の動作をまとめた表である。
【図７】本実施形態における二重化記憶装置の通常時の動作を説明する図である。
【図８】二重化記憶装置が同期検査において片系のエラーを検出する例を説明する図である。
【図９】二重化記憶装置が同期検査において両系のエラーを検出する例を説明する図である。
【図１０】二重化記憶装置がヘッダのECC検査において片系のエラーを検出する例を説明する図である。
【図１１】二重化記憶装置がデータのECC検査において片系のエラーを検出する例を説明する図である。
【図１２】二重化記憶装置がデータのECC検査において両系のエラーを検出する例を説明する図である。
【図１３】二重化記憶装置がデータの一致検査においてエラーを検出する例を説明する図である。
【符号の説明】
【０１１０】
１  メモリ、２  メモリ制御部、３  ECC検査部、４  同期検査部、５  一致検査部、６  セレクタ制御部、７  バスセレクタ、８  HD分離部、９  合成部、１０  データ制御部、１１、２１  アドレスキュー、１２、２２  コマンドキュー、１３、２３  ヘッダ生成部、１４、２４  データキュー、１５、２５  セレクタ、３０  管理部、３１  データECC検査部、３２  ヘッダECC検査部、４１  読み出しデータ、４２  ヘッダ本体、４３  ECC、４４  ヘッダ、４５  ヘッダ本体、４６  ECC、１０１  読み出し要求、１０２  読み出し制御信号、１０３  アドレス＋リードコマンド、１０４  ヘッダ付きデータ、１０５  ECCエラー通知、１０６  同期エラー通知、１０７  一致エラー、１０８  選択信号、１０９  システムエラー通知、、１０８  システムエラー通知、２０１  メモリアドレス、２０２  コマンド＋制御ID、２０３  制御ID、３０１  セレクタ制御信号、３０２  ヘッダ、３０３  リードポインタ制御信号
【図１】
2006260160.tif 000003
【図２】
2006260160.tif 000004
【図３】
2006260160.tif 000005
【図４】
2006260160.tif 000006
【図５】
2006260160.tif 000007
【図６】
2006260160.tif 000008
【図７】
2006260160.tif 000009
【図８】
2006260160.tif 000010
【図９】
2006260160.tif 000011
【図１０】
2006260160.tif 000012
【図１１】
2006260160.tif 000013
【図１２】
2006260160.tif 000014
【図１３】
2006260160.tif 000015