(57)【特許請求の範囲】
【請求項１】
メモリミラーリング状態に装備された第１，第２の各メモリモジュールと、この各メモリモジュールに個別に対応して装備され上位装置の指令により所定のデータの書込み又は読出しを実行する第１，第２のメモリ駆動制御部を有するメモリインターフェイス制御部とを備えたメモリミラーリング装置において、
前記上位装置からの指令で稼働し前記各メモリモジュール用のアクセス命令を生成するメモリアクセス命令生成部を備えると共に、
このメモリアクセス命令生成部が、
通常時には前記第１，第２の各メモリ駆動制御部の各々へ所定の動作指令を送信する一方、前記第１，第２のメモリモジュールの内の何れか一方に障害が生じた場合と前記第１，第２のメモリモジュールの内の何れか一方が障害等により交換装備された場合には他方のメモリーモジュールのメモリ駆動制御部に対してのみ前記所定の動作指令を送信する通常時アクセス命令生成部と、
前記第１，第２の各メモリモジュールの内の何れか一方が障害等により交換装備された場合に稼働して当該交換されたメモリモジュールの初期化を、対応する何れか一方の前記メモリ駆動制御部を介して実行する障害時アクセス命令生成部とを備えたことを特徴とするメモリミラーリング装置。
【請求項２】
請求項１記載のメモリミラーリング装置において、
前記メモリインターフェイス制御部は、
前記第１，第２の各メモリモジュールの何れか一方に障害が発生した場合にこれを検知して対応する何れか一方の前記メモリ駆動制御部へ排除指令を出力すると共に前記上位装置からアクセスされた正常データを前記上位装置に送るリプライデータ制御部を、予め備えていることを特徴としたメモリミラーリング装置。
【請求項３】
請求項２記載のメモリミラーリング装置において、
前記メモリインターフェイス制御部が、更に、前記各メモリモジュールに対応して個別に装備され当該各メモリモジュールからの読出しデータの有効性を個別に判定すると共にエラー検出なしの場合に当該各読出しデータをそれぞれ正常データと認定する第１，第２のエラー検出訂正回路を装備し、
この第１，第２の各エラー検出訂正回路で正常データと認定されたデータの内の一の読出しデータを、前記リプライデータ制御部が前記上位装置へ出力する機能を備えていることを特徴とするメモリミラーリング装置。
【請求項４】
請求項３記載のメモリミラーリング装置において、
前記第１，第２の各エラー検出訂正回路は、読出しデータの有効性の判定時に訂正可能エラーを検出した場合には当該訂正可能エラーを訂正しこれを正常データとして出力する機能をそれぞれが備えていることを特徴としたメモリミラーリング装置。
【請求項５】
請求項３又は４に記載のメモリミラーリング装置において、
前記リプライデータ制御部は、前記各エラー検出訂正回路で有効と判定されたデータの内、一方のメモリモジュールである前記第１のメモリモジュールからのデータを優先して前記上位装置へ出力する機能を備えていることを特徴としたメモリミラーリング装置。
【請求項６】
請求項３又は４に記載のメモリミラーリング装置において、
前記リプライデータ制御部は、前記各メモリモジュールからの読出しデータに基づいて障害の発生有無を判定する障害有無判定機能と、この障害有りと判定されたメモリモジュールを交換対象として論理的に排除する前記排除指令を対応する前記第１又は第２のメモリ駆動制御部へ送信する排除指令送信機能とを備えていることを特徴としたメモリミラーリング装置。
【請求項７】
メモリミラーリング状態に装備された第１，第２の各メモリモジュールに個別に対応して稼働し、上位装置の指令により所定のデータの書込み又は読出しを第１，第２のメモリ駆動制御部が実行するメモリミラーリング装置にあって、
前記上位装置からの指令で予め装備された通常系アクセス命令生成部が稼働し、通常時には前記第１，第２の各メモリ駆動制御部の各々へのアクセス命令を生成する一方、前記第１，第２のメモリモジュールの内の何れか一方に障害が生じた場合と前記第１，第２のメモリモジュールの内の何れか一方が障害等により交換装備された場合には他方のメモリーモジュールのメモリ駆動制御部に対してのみアクセス命令を生成し（メモリアクセス命令生成工程）、
この生成されたアクセス命令に従って前記第１，第２の各メモリ駆動制御部が稼働し前記メモリミラーリング状態に装備された第１，第２の各メモリモジュールへの読み出し又は書き込みを実行し（読出し書込み制御工程）、
前記第１，第２の各メモリモジュールへの読み出し又は書き込みの実行に相前後して、第１，第２の各メモリモジュールの内の何れか一方が障害等の発生により交換装備された場合には、予め装備された障害時アクセス命令生成部が稼働して当該交換されたメモリモジュールの初期化を、対応する何れか一方の前記メモリ駆動制御部を介して実行する構成としたこと（交換メモリ初期化工程）を特徴とするメモリミラーリング方法。
【請求項８】
請求項７記載のメモリミラーリング方法において、
前記障害等の発生に伴う前記メモリモジュールの交換に先立って、
第１，第２の各メモリモジュールの内の何れか一方に障害が発生した場合に当該障害情報を入手したリプライデータ制御部が対応する前記メモリ駆動制御部へ排除指令を発信すると共に前記上位装置からアクセスされた正常データを前記上位装置に送出する工程（障害メモリ用排除指令発信工程）を設けたことを特徴とするメモリミラーリング方法。
【請求項９】
請求項７に記載のメモリミラーリング方法において、
前記交換メモリ初期化後に、前記上位装置からアクセスされた正常データを当該上位装置に送出するに際し、正常動作後の第１，第２の各メモリモジュールから得られる正常データの内、一方のメモリモジュールである前記第１のメモリモジュールからの正常データを、前記リプライデータ制御部が第２のメモリモジュールから得られる正常データに優先して前記上位装置へ出力するようにしたことを特徴とするメモリミラーリング方法。
【請求項１０】
メモリミラーリング状態に装備された第１，第２の各メモリモジュールに個別に対応して稼働し、上位装置の指令により所定のデータの書込み又は読出しを第１，第２のメモリ駆動制御部が実行するメモリミラーリング装置にあって、
前記上位装置からの指令で稼働し、通常時には前記第１，第２の各メモリ駆動制御部の各々へのアクセス命令を生成する一方、前記第１，第２のメモリモジュールの内の何れか一方に障害が生じた場合と前記第１，第２のメモリモジュールの内の何れか一方が障害等により交換装備された場合には他方のメモリーモジュールのメモリ駆動制御部に対してのみアクセス命令を生成する通常系アクセス命令生成機能、
この生成されたアクセス命令に従って前記メモリミラーリング状態に装備された前記第１，第２の各メモリモジュールへの読み出し又は書き込みを実行する読出し書込み制御機能、
および前記第１，第２の各メモリモジュールへの読み出し又は書き込みの実行に相前後して、第１，第２の各メモリモジュールの内の何れか一方が障害等の発生により交換装備された場合に機能し、当該交換されたメモリモジュールの初期化指令を対応する何れか一方の前記メモリ駆動制御部に対して発信する障害時アクセス命令生成処理機能、
を設け、これらの各機能をコンピュータに実現させるようにしたことを特徴とするメモリミラーリング用動作プログラム。
【請求項１１】
請求項１０記載のメモリミラーリング用動作プログラムにおいて、
前記障害等の発生に伴い交換される前記メモリモジュールの交換に先立って、
第１，第２の各メモリモジュールの内の何れか一方に障害が発生した場合に当該障害情報に基づいて機能し対応する前記メモリ駆動制御部へ排除指令を発信する機能、および前記上位装置からアクセスされた正常データを前記上位装置に送出する正常データ送出処理機能、
を設け、これらを前記コンピュータに実現させるようにしたことを特徴とするメモリミラーリング用動作プログラム。
【請求項１２】
請求項１０記載のメモリミラーリング用動作プログラムにおいて、
前記交換メモリ初期化後に、前記上位装置からアクセスされた正常データを当該上位装置に送出するに際し、正常動作後の前記第１，第２の各メモリモジュールから得られる正常データの内、一方のメモリモジュールである前記第１のメモリモジュールからの正常データを前記第２のメモリモジュールからの正常データに優先して前記上位装置へ出力する優先出力処理機能を設け、
これを前記コンピュータに実現させるようにしたことを特徴とするメモリミラーリング用動作プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリミラーリング装置に係り、特にシステム動作中に障害の発生したメモリモジュールを新規メモリモジュールに交換する構成のメモリミラーリング装置、メモリミラーリング方法、及びそのプログラムに関する。
【背景技術】
【０００２】
一般に、メモリミラーリングは、上位装置のデータを２以上のメモリに同一に格納することで、一方のメモリに障害があっても他方のメモリから正常なデータを読み出し可能とすることで、データ保護の安全性を高める手法である。
【０００３】
このようなメモリミラーリング装置にて、主にメモリモジュールの障害に起因してシステム動作中にメモリモジュールを交換した場合、交換により実装した新規メモリモジュールを再びシステムに動的に組み込むためには、該メモリモジュールに対する初期化処理が必須である。メモリホットプラグを用いた装置の際にも同様である。
【０００４】
この初期化の期間は、メモリインターフェイス制御にて通常運用系( 交換していない方)のメモリモジュールアクセスと初期化用のメモリモジュールアクセスが競合するため、この初期化の期間はメモリモジュールへのアクセスが制限されてしまう。この結果、システム全体のメモリアクセス性能低下が余儀なくされる。
【０００５】
これに関連した先行技術として、以下に示す技術文献（特許文献１乃至４）が知られている。
特許文献１には、ＣＰＵからシステム動作中に交換メモリをオンラインで診断することを目的として（第２頁左上欄）、テストモードフラグがオンの際には障害発生により切り離されているメモリユニットを診断タスクのアクセス先とする手法（第２頁右下欄）が開示されている。
【０００６】
特許文献２には、デュアル構成で二重化されたメモリの交換をシステム停止せずに行うことを目的として（段落0001，0005）、オンライン運転中のメモリ内容を新たに挿入されたメモリへコピーする手法（段落0011、0016〜0018、図３）が開示されている。
【０００７】
特許文献３には、上位装置のオペレーティングシステム側にメモリ縮退機能がなくてもシステムを停止させずに動的にメモリ（ＤＩＭＭ）を交換することを目的として（段落0006〜0008）、パリティーデータから交換したメモリのデータを復元する手法（段落0052）が開示されている。
【０００８】
特許文献４には、システムを停止させず障害メモリモジュールを交換することを目的として（段落0013）、複数の直列メモリに１つの予備メモリを装備し、数回エラーが発生したメモリのデータをエラー発生後に予備メモリにコピーする手法（段落0034）が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平０４−７４２４３号公報
【特許文献２】特開平０６−１１０７６０号公報
【特許文献３】特開２００３−３０３１３９号公報
【特許文献４】特開２００６−２６８５５６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記特許文献１から４及びこれらを組み合わせた技術では、主にメモリモジュールの障害に起因して、システムの動作中にメモリを交換すると、交換後に実装した新規メモリモジュールを再びシステムに組み込むため、メモリの初期化処理等のために通常のアクセスが制限され、システムのメモリアクセス性能が低下する、という不都合があった。
例えば、特許文献４記載の手法では、動的なメモリ交換において通常系のメモリと交換対象のメモリとが同一のバスに接続されているため交換後のメモリ初期化に際しては通常系のメモリへのアクセスが必然的に低下してしまう、という不都合があった。
【００１１】
［発明の目的］
本発明は、上記関連技術の有する不都合を改善し、通常のアクセス速度を低下させることなく、システム動作中にメモリモジュールを交換することのできるメモリミラーリング装置、メモリミラーリング方法、及びそのプログラムを提供することを、その目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明に係るメモリミラーリング装置は、メモリミラーリング状態に装備された第１，第２の各メモリモジュールと、この各メモリモジュールに個別に対応して設けられ上位装置の指令により所定のデータの書込み又は読出しを実行する第１，第２のメモリ駆動制御部を有するメモリインターフェイス制御部とを備えている。
そして、上位装置からの指令で稼働し前記各メモリモジュール用のアクセス命令を生成するメモリアクセス命令生成部を備えると共に、このメモリアクセス命令生成部が、
通常時には前記第１，第２の各メモリ駆動制御部の各々へ所定の動作指令を送信する一方、前記第１，第２のメモリモジュールの内の何れか一方に障害が生じた場合と前記第１，第２のメモリモジュールの内の何れか一方が障害等により交換装備された場合には他方のメモリーモジュールのメモリ駆動制御部に対してのみ前記所定の動作指令を送信する通常時アクセス命令生成部と、
前記第１，第２の各メモリモジュールの内の何れか一方が障害等により交換装備された場合に稼働して当該交換されたメモリモジュールの初期化を、対応する何れか一方の前記メモリ駆動制御部を介して実行する障害時アクセス命令生成部とを備える、という構成を採っている。
【００１３】
上記目的を達成するため、本発明に係るメモリミラーリング方法は、メモリミラーリング状態に装備された第１，第２の各メモリモジュールに個別に対応して稼働し、上位装置の指令により所定のデータの書込み又は読出しを第１，第２のメモリ駆動制御部が実行するメモリミラーリング装置にあって、
上位装置からの指令で予め装備された通常系アクセス命令生成部が稼働し、通常時には前記第１，第２の各メモリ駆動制御部の各々へのアクセス命令を生成する一方、前記第１，第２のメモリモジュールの内の何れか一方に障害が生じた場合と前記第１，第２のメモリモジュールの内の何れか一方が障害等により交換装備された場合には他方のメモリーモジュールのメモリ駆動制御部に対してのみアクセス命令を生成し、
この生成されたアクセス命令に従って前記第１，第２の各メモリ駆動制御部が稼働し前記メモリミラーリング状態に装備された第１，第２の各メモリモジュールへの読み出し又は書き込みを実行し、
前記第１，第２の各メモリモジュールへの読み出し又は書き込みの実行に相前後して、第１，第２の各メモリモジュールの内の何れか一方が障害等の発生により交換装備された場合には、予め装備された障害時アクセス命令生成部が稼働して当該交換されたメモリモジュールの初期化を、対応する何れか一方の前記メモリ駆動制御部を介して実行する、という構成を採っている。
【００１４】
上記目的を達成するため、本発明に係るメモリミラーリング用動作プログラムは、メモリミラーリング状態に装備された第１，第２の各メモリに個別に対応して稼働し、上位装置の指令により所定のデータの書込み又は読出しを第１，第２のメモリ駆動制御部が実行するメモリミラーリング装置にあって、
前記上位装置からの指令で稼働し、通常時には前記第１，第２の各メモリ駆動制御部の各々へのアクセス命令を生成する一方、前記第１，第２のメモリモジュールの内の何れか一方に障害が生じた場合と前記第１，第２のメモリモジュールの内の何れか一方が障害等により交換装備された場合には他方のメモリーモジュールのメモリ駆動制御部に対してのみアクセス命令を生成する通常系アクセス命令生成機能、
この生成されたアクセス命令に従って前記メモリミラーリング状態に装備された前記第１，第２の各メモリモジュールへの読み出し又は書き込みを実行する読出し書込み制御機能、
および前記第１，第２の各メモリモジュールへの読み出し又は書き込みの実行に相前後して、第１，第２の各メモリモジュールの内の何れか一方が障害等の発生により交換装備された場合に機能して当該交換されたメモリモジュールの初期化指令を対応する何れか一方の前記メモリ駆動制御部に対して発信するための障害時アクセス命令生成処理機能、
を設け、これらの各機能をコンピュータに実現させるようにする、という構成を採っている。
【発明の効果】
【００１５】
本発明は、以上のように構成したので、これによると、交換したメモリモジュールを通常アクセスを遅延させることなく初期化することができ、このため、システム全体の動作速度を低下させずにシステムの動作中に故障したメモリの交換をすることが可能となる、という上記関連技術にない優れたメモリミラーリング装置、メモリミラーリング方法、及びそのプログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明にかかるメモリミラーリング装置の一実施形態の基本的構成を示すブロック図である。
【図２】図１に開示した実施形態の具体的な構成を示すブロック図である。
【図３】図１に開示した実施形態における何れか一方のメモリモジュールの選択フロー（データ読出し動作）を示すフローチャートである。
【図４】図１に開示した実施形態におけるメモリモジュールの交換時におけるメモリコントローラの基本的な制御動作の手順を示すフローチャートである。
【図５】図３に開示したフローチャートにおける縮退１（ステップＢ２）部分の詳細動作例を示すフローチャートである。
【図６】図３に開示したフローチャートにおける縮退２（ステップＢ３）部分の詳細動作例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
次に、本発明にかかるメモリミラーリング装置の一実施形態を、図面を参照して詳細に説明する。
最初に、本実施形態の基本的な構成を説明し、その後に具体的な構成を説明する。
【００１８】
〔基本構成〕
図１において、本実施形態におけるメモリミラーリング装置２は、メモリミラーリング状態に装備された第１，第２の各メモリモジュール１０，２０と、この各メモリモジュール１０，２０に個別に対応して装備され上位装置１の指令により所定のデータの書込み又は読出しを実行する第１，第２のメモリ駆動制御部５０，５１を有するメモリインターフェイス制御部５とを備えている。
又、上位装置１からの指令で稼働し前記各メモリモジュール１０，２０用のアクセス命令を生成するメモリアクセス命令生成部４を備えている。
【００１９】
このメモリアクセス命令生成部４は、通常時に機能して前記第１，第２の各メモリ駆動制御部５０，５１へ所定の動作指令を送信する通常時アクセス命令生成部４０と、上記第１，第２の各メモリモジュール１０，２０の内の何れか一方が障害等により交換装備された場合に稼働して当該交換されたメモリモジュール１０（又は２０）の初期化を、対応する何れか一方の前記メモリ駆動制御部５０（又は５１）を介して実行する障害時アクセス命令生成部４１とを備えている。
【００２０】
このため、本実施形態にあっては、障害時アクセス命令生成部４１と前記第１，第２の各メモリ駆動制御部５０，５１とが有効に連係して作動し、交換したメモリモジュール１０（又は２０）を、稼働中のメモリモジュール２０（又は１０）とは独立して初期化することができ、このため、システム全体の動作速度を低下させずにシステムの動作中に故障したメモリの交換をすることが可能となる、という利点がある。
【００２１】
前述したメモリインターフェイス制御部５には、更に、第１，第２の各メモリモジュール１０，２０の何れか一方に障害が発生した場合にこれを検知して対応する何れか一方の前記メモリ駆動制御部５０，５１へ排除指令を出力するリプライデータ制御部５９が装備されている。又、このリプライデータ制御部５９は、具体的には後述するが、上位装置１からアクセスされた正常データを当該上位装置１に向けて送る正常データ送出機能を備えている。
【００２２】
これにより、障害発生にかかるメモリモジュール１０（又は２０）が、対応するメモリ駆動制御部５０（又は５１）によって論理的に排除され且つ外部表示部（図示せず）を介して交換要請が外部表示されるようになっている。
以下、これを更に詳述する。
【００２３】
〔具体的な構成〕
前述した第１，第２の各ＤＩＭＭ１０，２０は、図１の場合と同様に、メモリコントローラ３に制御されて同一のデータを格納し記憶する機能を備え、外部に対しては相互にメモリミラーリングを構成している（図２参照）。
【００２４】
この第１，第２の二個のメモリモジュール（以後は、具体的にJEDEC 準拠の汎用品メモリモジュールを前提として「ＤＩＭＭ」と記述する）１０，２０は、具体的には、対応するＤＩＭＭ用スロット１０Ａ，２０Ａによって個別に保持されている。
【００２５】
又、この各ＤＩＭＭ１０，２０に対する上位装置１からのアクセス指令（読出し書込み指令）は、前述したようにメモリコントローラ３に伝達され、このメモリコントローラ３のメモリ駆動制御部５０，５１によって、各ＤＩＭＭ１０，２０に対するアクセスが個別に且つ同時に実行されるようになっている。
【００２６】
メモリコントローラ３は、具体的には、前述したメモリアクセス命令生成部４とメモリインターフェイス制御部５とに加えて、更に、ＤＩＭＭ１０又は２０に障害が発生した場合に当該障害にかかるメモリモジュールであるＤＩＭＭ１０又は２０の電源を必要に応じて停止制御する電源動作制御部３Ａを備えている。
【００２７】
この内、メモリアクセス命令生成部４は、前述した図１に場合と同様に、通常の場合に機能して上位装置１から上記各ＤＩＭＭ１０，２０について成されるアクセス指令に対応して当該ＤＩＭＭ用の読出し指令又は書込み指令を生成し出力する通常系アクセス命令生成部４０と、通常時には動作停止状態を維持し且つＤＩＭＭ障害が発生した場合に機能して交換された新規のＤＩＭＭ１０又は２０についてその初期化動作を実行する障害系アクセス命令生成部４１とを備えている。
【００２８】
又、メモリインターフェイス制御部５は、メモリアクセス命令生成部４の通常系又は異常系のアクセス命令生成部４０，４１からのアクセス指令に基づいて、前記ＤＩＭＭ１０に対する前記上位装置１からの読み出し又は書き込み若しくはＤＩＭＭ初期化動作を実行する第１のメモリ駆動制御部５０を備えている。
【００２９】
更に、このメモリインターフェイス制御部５は、通常系又は異常系のアクセス命令生成部４０，４１からのアクセス指令に基づいて前記ＤＩＭＭ２０に対する前記上位装置１からの読出し又は書込み若しくはＤＩＭＭ初期化動作を実行する第２のメモリ駆動制御部５１を備えている。
【００３０】
そして、このメモリインターフェイス制御部５における上記第１，第２の各メモリ駆動制御部５０，５１は、ＤＩＭＭ用チャネル１０Ｂ，２０Ｂを介して、メモリモジュールである前記各ＤＩＭＭ１０，２０にそれぞれ個別に連結されている。
【００３１】
以下これを更に詳述する。
まず、前述した第１のメモリ駆動制御部５０は、具体的には、上記各アクセス命令生成部４０又は４１（制御は排他) から受け取ったメモリアクセス命令に基づいてＤＩＭＭ用チャネル１０Ａのアドレス線１０ａとデータ線１０ｂを介して第１のＤＩＭＭ１０へのアクセスを制御する。
【００３２】
同様に、第２のメモリ駆動制御部５１は、上記各アクセス命令生成部４０又は４１（制御は排他) から受け取ったメモリアクセス命令を元にＤＩＭＭ用チャネル２０Ａのアドレス線２０ａとデータ線２０ｂを介して第２のＤＩＭＭ２０へのアクセスを制御する。
【００３３】
また、前述した通常系アクセス命令生成部４０は、配線３００を介して上位装置１からＤＩＭＭアクセス命令を受け取り、通常時は同一命令を各メモリ駆動制御部５０，５１に配線４００を介して同時に出力し、ＤＩＭＭ用チャネル１０Ｂ，２０Ｂでそれぞれ同一動作を行わせて、メモリミラーリングを実現している。
ここで、前述した異常系アクセス命令生成部４１は、通常時は待機系として機能し、各メモリ駆動制御部５０と５１には配線４１０を介して何も出力しない。
【００３４】
一方、ＤＩＭＭ障害が発生して、例えば第１のＤＩＭＭ１０が論理的に切り離された場合、通常系アクセス命令生成部４０は、第２のメモリ駆動制御部５１のみに命令を出力し、対応するＤＩＭＭ用チャネル２０Ｂのみを制御する機能を有する。同時に、異常系アクセス命令生成部４１は、第１のメモリ駆動制御部５０のみに命令を出力し、切り離しが発生したＤＩＭＭ用チャネル１０Ｂのみを制御する機能を有する。
【００３５】
同様に、ＤＩＭＭ障害により第２のＤＩＭＭ２０が論理的に切り離された場合、通常系アクセス命令生成部４０は、第１のメモリ駆動制御部５０のみに命令を出力しＤＩＭＭ用チャネル１０Ａのみを制御する。同時に、異常系アクセス命令生成部４１は、第２のメモリ駆動制御部５１のみに命令を出力し、切り離しが発生した側の前記ＤＩＭＭ用チャネル２０Ｂの制御を行う。
【００３６】
前述したメモリインターフェイス制御部５は、第１，第２の各メモリ駆動制御部５０，５１に加えて、更に、当該第１，第２の各メモリ駆動制御部５０，５１に対応して個別に連結された第１，第２の各エラー検出訂正回路５２，５３と、この各エラー検出訂正回路５２，５３の出力を入力して何れか一方のデータを特定し前記上位装置１へ向けて出力するリプライデータ制御部５９とを備えている。
【００３７】
上記第１，第２の各エラー検出訂正回路５２，５３は、前記各メモリモジュールからの読出しデータの有効性を個別に判定すると共にエラー検出なしの場合に当該各読出しデータをそれぞれ正常データと認定する機能を備えている。
又、この第１，第２の各エラー検出訂正回路５２，５３は、読出しデータの有効性の判定時に訂正可能エラーを検出した場合には、当該訂正可能エラーを訂正しこれを正常データとして出力する機能をそれぞれが備えている（請求項３）。
【００３８】
また、第１のエラー検出訂正回路５２は、第１のＤＩＭＭ１０からの読出し動作時にエラーコードで保護された読出しデータのエラー検出（訂正可能エラー、訂正不可エラー）を行う。そして、訂正可能エラーを検出した場合は訂正したデータを配線５２０に出力する。
【００３９】
更に、第１のエラー検出訂正回路５２は、読み出しデータ以外にも第１のＤＩＭＭ１０の物理的な故障（障害）を配線１０ｅ（汎用ＤＩＭＭのErrorout信号を想定) を介して監視し且つ障害の発生に際しては障害データを配線５２０に出力しており、配線１０ｅが有効（故障解除）になった場合は当該配線５２０に出力する障害データを無効にする。
【００４０】
同様に、第２のエラー検出訂正回路５３は、第２のＤＩＭＭ２０からの読出し動作時にエラーコードで保護された読出しデータのエラー検出（訂正可能エラー、訂正不可エラー）を行う。そして、訂正可能エラーを検出した場合は訂正したデータを配線５３０に出力する。
【００４１】
更に、第２のエラー検出訂正回路５３は、読み出しデータ以外にも第２のＤＩＭＭ２０の物理的な故障（障害）を配線２０ｅ（汎用ＤＩＭＭのErrorout信号を想定) を介して監視し且つ障害の発生に際しては障害データを配線５２０に出力しており、配線１０ｅが有効（故障解除）になった場合は配線５３０に出力するデータを無効にする。
【００４２】
上記リプライデータ制御部５９は、第１のＤＩＭＭ１０又は第２のＤＩＭＭ２０の読出しデータを配線５２０，５３０とを介してそれぞれ受け取り、図２のフローに従い、何れか一方を選択し、これをメモリアクセスのリードデータとして配線５００に出力する。
そして、通常時（メモリミラー状態）は、配線５２０と配線５３０とを介して同一データを受け取りデフォルトとして配線５２０を選択する（図３：ステップＳ１０１〜Ｓ１０３参照) 。
【００４３】
即ち、前述したリプライデータ制御部５９は、上記各エラー検出訂正回路５２，５３で正常データと認定したデータの内の一つ（各ＤＩＭＭ１０又は２０からの読出しデータ）を、上位装置１へ出力する機能を備えている。この場合、リプライデータ制御部５９は、本実施形態では、第１のＤＩＭＭ１０からのデータを優先的に特定し上位装置１へ出力する機能を備えている。
【００４４】
前記リプライデータ制御部５９は、上記各エラー検出訂正回路５２，５３を介して得られる前記各ＤＩＭＭ１０，２０からエラーアウト線１０ｅ，２０ｅを介して得られるデータに基づいて障害の発生有無を判定する障害有無判定機能と、この障害有りと判定された第１のＤＩＭＭ１０又は第１のＤＩＭＭ２０を交換対象として論理的に排除する前記排除指令を対応する前記第１又は第２のメモリ駆動制御部へ通知する排除指令出力機能とを備えている。
【００４５】
〔実施形態の動作〕
最初に全体的な動作を説明する。
まず、上位装置１からの指令でメモリアクセス命令生成部４が稼働し、第１，第２の各ＤＩＭＭ１０，２０に対する通常時のアクセス命令を予め装備された通常系アクセス命令生成部４０が生成する（メモリアクセス命令生成工程）。
【００４６】
続いて、この生成されたメモリアクセス命令に従って第１，第２の各メモリ駆動制御部５０，５１が稼働し、メモリミラーリング状態に装備された第１，第２の各ＤＩＭＭ１０，２０への読み出し又は書き込みを同時に実行する（読出し書込み制御工程）。
【００４７】
一方、この第１，第２の各ＤＩＭＭ１０，２０への読み出し又は書き込みの実行に相前後して、第１，第２の各ＤＩＭＭ１０，２０の内の何れか一方が障害等の発生により交換装備された場合には、予め装備された障害時アクセス命令生成部４１が稼働して当該交換された第１又は第２のＤＩＭＭ１０（又は２０）の初期化を、対応する何れか一方の前記メモリ駆動制御部５０（又は５１）を介して実行する（交換メモリ初期化工程）。
【００４８】
ここで、前述した障害の発生に伴う前記メモリモジュールの交換に先立って、第１，第２の各ＤＩＭＭ１０，２０の内の何れか一方に障害が発生した場合には、当該障害情報を入手したリプライデータ制御部５９が対応する前記メモリ駆動制御部５０，５１へ排除指令を発信すると共に前記上位装置１からアクセスされた正常データを前記上位装置に送出する（障害メモリ用排除指令発信工程）。
【００４９】
又、前述した交換メモリの初期化後に、前記上位装置１からアクセスされた正常データを当該上位装置１に送出するに際し、前記リプライデータ制御部は、正常動作後の第１，第２の各ＤＩＭＭ１０，２０から得られる正常データの内、一方のＤＩＭＭ（メモリモジュール）である第１のＤＩＭＭからの正常データを、第２のＤＩＭＭから得られる正常データに優先して前記上位装置１へ出力するようにし、これによって、初期化後の現状復帰の円滑化が図られている。
以下、これを、具体的に説明する。
【００５０】
（実施形態の動作／通常時）
次に、第１の動作として、上記実施形態におけるメモリミラーリング装置２の通常時の動作を説明する（図４：ステップＳ２０１参照）。
【００５１】
最初に、メモリライト（書き込み）動作に関して説明する。
上位装置１から配線３００を介してメモリライト命令が入力されると、図１，図２に開示した通常系アクセス命令生成部４０は、配線４００を介して第１，第２の各メモリ駆動制御部５０，５１に、同一メモリライト指令を出力する。
【００５２】
ここで、障害系アクセス命令生成部４１は通常時は待機系となり、第１，第２の各メモリ駆動制御部５０，５１には何も出力しない。この場合、第１のメモリ駆動制御部５０は配線１０ａと１０ｂとを介して第１のＤＩＭＭ１０への書き込みを行う。同様に、第１のメモリ駆動制御部５１も、同一データを配線２０ａと２０ｂとを介して第２のＤＩＭＭ２０に書き込みを行う。
【００５３】
次に、メモリリード（読み出し）動作に関して説明する。
上記通常系アクセス命令生成部４０は、上位装置１から配線３００を介してメモリリード命令が出力されると、配線４００を介して第１，第２の各メモリ駆動制御部５０，５１に同一メモリ内容のリード指令を出力する。この場合、異常系アクセス命令生成部４１は待機系となり、各メモリ駆動制御部５０，５１に何も出力しない。
【００５４】
続いて、第１のメモリ駆動制御部５０は、配線１０ａと配線１０ｂを介して第１のＤＩＭＭ１０からの読出しを行う。同様に、第２のメモリ駆動制御部５１も、配線２０ａと配線２０ｂを介して、同一データを第２のＤＩＭＭ２０から読み出す。
【００５５】
次に、第１のエラー検出訂正回路５２は、第１のＤＩＭＭ１０の読出しデータのエラー検出を配線１０ｂを介して行うと共に、エラー検出しなかった場合は配線５２０にデータをそのまま出力する。一方、訂正可能エラーを検出した場合は、訂正したデータを配線５２０に出力する。第２のエラー検出訂正回路５３も、同様の処理をして、データを配線５３０に出力する。
続いて、リプライデータ制御部５９は、配線５２０，５３０に出力されたデータを図３のデータ選択フローチャートに従い選択する。
【００５６】
ここで、上記リプライデータ制御部５９のデータ選択動作を、図３のフローチャートに基づいて詳述する。
【００５７】
まず、第１のＤＩＭＭ１０の読出しデータに基づいて当該ＤＩＭＭ１０の有効性（縮退無し）が判定され、有効との判定により、次のステップへ移行する（図３：ステップＳ１０１／イエス）。次のステップでは、訂正不可能エラー（又はＥrrorout)が検出されたか否かが判定され、検出されない場合（図３：ステップＳ１０２／ノー）、当該第１のＤＩＭＭ１０からのデータが読出しデータとして選択される（図３：ステップＳ１０３）。
【００５８】
一方、ステップＳ１０１で第１のＤＩＭＭ１０の非有効性が、又はステップＳ１０２で当該ＤＩＭＭ１０にて訂正不可能エラー（又はＥrrorout)が検出された場合には、外部に対する第１ＤＩＭＭ１０の切り離し（例えば論理的切り離し：書き込み抑制等）が実行され、続いて、次のステップで、第２のＤＩＭＭ２０の有効性が判定される（図３：ステップＳ１０４）。
尚、上記第１のＤＩＭＭ１０の切り離し動作は、リプライデータ制御部５９の指令に基づいて、例えば、対応する第１のメモリ駆動制御部５０が、実行する。
【００５９】
続いて、上記有効性判定のステップＳ１０４で、第２のＤＩＭＭ２０の読出しデータに基づいて当該ＤＩＭＭ２０の有効性（縮退無し）が、前述した第１のＤＩＭＭ１０の場合と同様に判定され、有効との判定により次のステップへ移行する（図３：ステップＳ１０４／イエス）。次のステップでは、前述した第１のＤＩＭＭ１０の場合と同様に、訂正不可能エラー（又はＥrrorout)が検出されたか否かが判定され、検出されない場合（図３：ステップＳ１０５／ノー）、当該第２のＤＩＭＭ２０からのデータが読出しデータとして選択される（図３：ステップＳ１０６）。
【００６０】
一方、ステップＳ１０４で第２のＤＩＭＭ１０の非有効性が、又はステップＳ１０５で当該ＤＩＭＭ１０にて訂正不可能エラー（又はＥrrorout)が検出された場合には、外部に対する第２のＤＩＭＭ１０の切り離し（例えば論理的切り離し：書き込み抑制等）が実行され、続いてシステム全体が停止制御される（図３：ステップＳ１０７）。
【００６１】
即ち、通常時は、配線５２０のＤＩＭＭ１０からの読出しデータが優先的に選択され、メモリアクセスのリードデータとして配線５００を介して上位装置１に出力される（図３：ステップＳ１０１〜Ｓ１０３参照) 。
【００６２】
ここで、通常系アクセス命令生成部４０は、通常のメモリアクセス命令以外にも、汎用のＤＩＭＭ制御に必要なＤＩＭＭチャネル初期化専用の一連の命令や、通常動作時に定期的に発行するリフレッシュ命令も、合わせて第１，第２の各メモリ駆動制御部５０，５１に出力し、同時制御を指令する。
【００６３】
（実施形態の動作／ＤＩＭＭ障害時）
次に、第２の動作として、ＤＩＭＭ障害発生時の動作を説明する。
ＤＩＭＭ１０又は２０から読み出したデータの訂正不可エラー（又はErrorout信号）が確定すると、障害発生にかかるＤＩＭＭ１０又は２０が論理的に切り離しとなり、図３のフロー中の通常（ステップＳ２０１）から縮退１（図４：ステップＳ２０２）へと移行する。
【００６４】
ここでは、ＤＩＭＭ用チャネル１０Ａ側が切り離しとなるケースを例として、順を追って説明する。
前記メモリリード動作（読出し動作）で第１のエラー検出訂正回路５２で訂正不可能エラー（又はＥrrorout)信号を配線１０ｅを介して検出した場合、即時に図４の縮退１（図４：ステップＳ２０２）に移行し、ＤＩＭＭ用チャネル１０Ｂは通常系から論理的に切り離され、通常系アクセス命令生成部４０は第２のメモリ駆動制御部５１のみに命令を出力し、ＤＩＭＭ用チャネル２０Ｂのみで通常メモリアクセス動作を継続する。
【００６５】
この時、リプライデータ制御部５９は、図３のフローに従いＤＩＭＭ用チャネル１０Ｂでエラー検出時は図３のステップＳ１０１〜Ｓ１０２，Ｓ１０４〜Ｓ１０６のフローに従い、又、ＤＩＭＭ用チャネル１０Ｂの切り離し以降は図３のステップＳ１０１，Ｓ１０４〜Ｓ１０６に従い、それぞれ第２のＤＩＭＭ２０の読出しデータを固定的に選択する。
【００６６】
同時に障害系アクセス命令生成部４１は、切り離された側の第１のメモリ駆動制御部５０と接続し、ＤＩＭＭ用チャネル１０Ｂの制御を通常動作とは独立して行う。
これにより、ＤＩＭＭ用チャネル２０Ｂ側は性能低下無しに通常メモリアクセス動作が維持可能となる。
【００６７】
（ＤＩＭＭ交換と初期設定時の動作）
次に、論理的に切り離されたＤＩＭＭ用チャネル１０Ｂに対するＤＩＭＭ交換からＤＩＭＭの初期設定までの一連の動作を、図５のフローチャートに従い、順に説明する。
【００６８】
最初に、ＤＩＭＭ用チャネル１０Ｂ側の電源オフ（ＯＦＦ）の前準備として、メモリコントローラ３から出力するＤＩＭＭ用チャネル１０Ｂ側の一連のインタフェース信号を、一般の汎用ＤＩＭＭ仕様に従い固定値に設定する（図５：ステップＳ３０１）。
【００６９】
次に、メモリコントローラ３は、電源動作制御部３Ａを稼働させてＤＩＭＭ用チャネル１０Ｂ側のみ電源オフにする（図５：ステップＳ３０２）。
続いて、故障ＤＩＭＭ１０の物理的な交換を実施して新規なＤＩＭＭ１０を装備し（図５：ステップＳ３０３）、ＤＩＭＭ用チャネル１０Ｂ側の電源オン（ＯＮ）前の準備として、メモリコントローラ３側の設定を実施する（図５：ステップＳ３０４）。その後、電源動作制御部３Ａを稼働させてＤＩＭＭ用チャネル１０Ｂ側の電源をオンする（図５：ステップＳ３０５）。
【００７０】
続いて、新規に交換した第１のＤＩＭＭ１０の素性確認のため、ＳＰＤリードを実施し（図５：ステップＳ３０６）、ＤＩＭＭ用チャネル１０Ｂの立ち上げのための初期化シーケンスを、メモリコントローラ３側から設定し（図５：ステップＳ３０７）、ＤＩＭＭ用チャネル１０Ｂ立ち上げのためのＤＩＭＭ１０に対する一連の初期設定を、図１の障害系メモリアクセス命令生成部４１と第１のメモリ駆動制御部５０経由で実施する。
【００７１】
同時に、ＤＩＭＭ１０へのリフレッシュも有効にする（図５：ステップＳ３０８）。更に、立ち上げたＤＩＭＭ１０の良品確認と初期値格納を目的として、簡易的なＤＩＭＭテスト（図５：ステップＳ３０９）を実行する。
【００７２】
テストの１例として、第１のＤＩＭＭ１０の全アドレスに対してオール「１」をライト後に全アドレスを読出して期待値オール「１」を確認し、次に、オール「０」をライト後に全アドレス読出して期待値オール「０」を確認する。
このテストにより、データオール「１」および「０」の確認と初期値オール「０」の格納が実現可能となる。
【００７３】
最後に、障害系アクセス命令生成部４１からのリフレッシュを停止する（図５：ステップＳ３１０）。こまでの一連の動作完了で交換した第１のＤＩＭＭ１０が物理的に使用可能となり、縮退２（図５：ステップＳ２０３）に移行する。
【００７４】
ここで、障害系アクセス命令生成部４１は、前述した縮退１（図５：ステップＳ１０２) のみで使用され、交換が発生したＤＩＭＭ用チャネル１０Ｂ側の第１メモリ駆動制御部５０と接続し、ＤＩＭＭ用チャネルの初期化に必要な一連の命令と定期的に発行するリフレッシュ命令とを生成する（図５：ステップＳ３０８〜Ｓ３１０）。
【００７５】
本実施形態における縮退１のように、メモリミラーリングにおいて片側ＤＩＭＭが切り離された状態においては、従来例のように通常系アクセス命令生成部４０のみしか存在せず、障害系アクセス命令生成部４１が存在しなかった場合には、通常系アクセス命令生成部４０が通常系のメモリアクセスを処理しながら、更にＤＩＭＭ交換が発生したＤＩＭＭチャネルの初期化フローを実施しなければならない。このため、前述した従来例あっては、通常メモリアクセスの性能低下が発生する。
特に、図５のステップＳ３０８〜Ｓ３１０はＤＩＭＭ用チャネル１０Ｂ（又は２０Ｂ）経由でＤＩＭＭ１０（又は２０）の初期化を実施しなければならない。このため、メモリアクセス命令生成部４による制御が必須である。
【００７６】
この問題を解決するために本実施形態では、ＤＩＭＭ交換が発生したＤＩＭＭチャネルを専用に初期化する障害系アクセス命令生成部４１を設け、通常系アクセス命令生成部４０が制御する通常メモリアクセスとは独立して動作することで、メモリアクセス性能の低下を排除することを可能にした。
【００７７】
（縮退２における動作）
次に、第３の動作として、縮退２における動作（図４：ステップ２０３）を、図６のフローチャートに従って詳述する。
この縮退２（図４：ステップ２０３) のフェースでは、通常系のＤＩＭＭ２０の内容を、交換が完了した新規のＤＩＭＭ１０へ全てコピーする。
【００７８】
ここで、前述したＤＩＭＭ用チャネル１０Ｂが切り離しとなったケースに関して、順を追って説明する。
まず、縮退２（図４：ステップ２０３) に移行すると、通常系アクセス命令生成部４０は、配線４００を介して第１，第２の各メモリ駆動制御部５０，５１に接続する。この場合、メモリアクセス命令生成部４１は再び待機系となる。ただし、通常系アクセス命令生成部４０は、切り離しとなったＤＩＭＭ用チャネル１０Ｂに対しては、メモリライト命令のみを発行し、メモリリード命令は発行しない。
【００７９】
よって、リプライデータ制御部５９は、第１のＤＩＭＭ１０の配線５２０に出力されるリードデータも受け取らない。リードデータは配線５３０のＤＩＭＭ用チャネル２０Ｂ側からのみを、継続して受け取る。
【００８０】
そして、通常系ＤＩＭＭ２０の内容を全てコピーするためのスタートアドレスを、ＤＩＭＭ読出しアドレスとして設定する（図６：ステップ４０１）。ＤＩＭＭ読出しアドレスに対するメモリリード指示が図１の配線３００を介して上位装置１から入力されると、通常系ＤＩＭＭ２０から該当データが読み出され配線５００を介して前記上位装置１へ出力される（図６：ステップ４０２）。
【００８１】
この場合、前述したように、通常系アクセス命令生成部４０は切り離されたＤＩＭＭチャネル１０Ｂにはリード指示を出力しないため、リードはＤＩＭＭ用チャネル２０Ｂ側のみから実行される。次に、前記上位装置１からの読出しアドレスに対応して、前記第２のＤＩＭＭ２０からの読出しデータを書き込む命令が、前記上位装置１から配線３００を介して入力されると、第１のＤＩＭＭ１０及び第２のＤＩＭＭ２０の両方に、同一データが書き込まれる（図６：ステップ４０３）。
【００８２】
次に、現状のＤＩＭＭ読出しアドレスに対して定数（ＤＩＭＭ読出し単位長) を加算して、次のＤＩＭＭ読出しアドレスを生成する（図６：ステップ４０４）。このＤＩＭＭ読出しアドレスがＤＩＭＭに予め割り付けられた全アドレス領域を終了していない場合、ステップＳ４０２に戻る。
一方、全アドレス領域を終了している場合は、第２のＤＩＭＭ２０から第１のＤＩＭＭ１０へのメモリコピー終了、と判断し（図６：ステップ４０５）、通常処理（図４：ステップＳ２０１）に戻り、再びメモリミラーリング状態となる。
【００８３】
そして、この通常状態に戻ると、通常系アクセス命令生成部４０は配線４００を介して第１，第２の各メモリ駆動制御部５０，５１にメモリリード命令を含めた全ての同一メモリアクセス命令を出力する。
【００８４】
又、ＤＩＭＭ用チャネル２０Ｂが切り離しとなるケースに関しては、通常側がＤＩＭＭ用チャネル１０Ｂ、切り離し側である障害系がＤＩＭＭ用チャネル２０Ｂとなり、前述したＤＩＭＭ用チャネル１０Ｂが切り離しとなる場合と同様の動作制御が行われる。
【００８５】
ここで、上述した実施形態における各構成部分の関連したデータ処理にかかる連係動作については、これをコンピュータが実行可能にプログラム化し当該コンピュータに実現させるように構成してもよい。
この場合、本プログラムは非一時的な記憶媒体（例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等）に記録されてもよい。その場合、本プログラムは記憶媒体からコンピュータによって読み出され実行される。
【００８６】
〔実施形態の効果〕
第１の効果は、障害系アクセス命令生成部４１が有効に機能して、メモリミラーリングにおけるメモリモジュールである第１のＤＩＭＭ１０又は第１のＤＩＭＭ２０の交換時に従来より生じていたメモリアクセス性能の低下を、確実に回避することが可能となる。
第２の効果はメモリミラーリングにおけるメモリモジュール交換時間を短縮することで短時間でメモリミラーリング状態に復旧することが可能になり、システムの信頼度を有効に維持することができる。
【００８７】
その理由は、通常運用系である通常系アクセス命令生成部４０のほかに、障害等で交換が発生したメモリモジュールを専用に初期化する障害系メモリアクセス命令生成部４１を別に設けたことで、ミラーリング構成の片方のメモリモジュールを交換する場合に通常系のメモリアクセスと並列に、交換したメモリモジュールに対する初期化および組み込みが実行可能なためである。
【００８８】
このように、本実施形態によると、図１のメモリミラーリング装置において、通常系アクセス命令生成部４０のほかに障害等で交換が発生したメモリモジュールを専用に初期化する障害系メモリアクセス命令生成部４１を設けることで、メモリモジュール交換時の通常系メモリアクセスへの影響を最小限にし、かつメモリ交換時間を短縮することでメモリミラーリング状態への復旧の迅速化が可能になり、システムの可用性が維持できるという前述した関連技術にない優れた効果を奏するメモリミラーリング装置、メモリミラーリング方法、及びそのプログラムを得ることができる。
【００８９】
上述した実施形態については、その新規な技術的内容の要点をまとめると、以下のようになる。尚、ここにまとめた新規な技術的内容については、本発明をこれに限定するものではない。
【００９０】
〔付記１〕
メモリミラーリング状態に装備された第１，第２の各メモリモジュールと、この各メモリモジュールに個別に対応して装備され上位装置の指令により所定のデータの書込み又は読出しを実行する第１，第２のメモリ駆動制御部を有するメモリインターフェイス制御部とを備えたメモリミラーリング装置において、
前記上位装置からの指令で稼働し前記各メモリモジュール用のアクセス命令を生成するメモリアクセス命令生成部を備えると共に、
このメモリアクセス命令生成部が、通常時に機能して前記第１，第２の各メモリ駆動制御部へ所定の動作指令を送信する通常時アクセス命令生成部と、前記第１，第２の各メモリモジュールの内の何れか一方が障害等により交換装備された場合に稼働して当該交換されたメモリモジュールの初期化を、対応する何れか一方の前記メモリ駆動制御部を介して実行する障害時アクセス命令生成部とを備えたことを特徴とするメモリミラーリング装置。
【００９１】
〔付記２〕
付記１記載のメモリミラーリング装置において、
前記メモリインターフェイス制御部は、
前記第１，第２の各メモリモジュールの何れか一方に障害が発生した場合にこれを検知して対応する何れか一方の前記メモリ駆動制御部へ排除指令を出力すると共に前記上位装置からアクセスされた正常データを前記上位装置に送るリプライデータ制御部を、予め備えていることを特徴としたメモリミラーリング装置。
【００９２】
〔付記３〕
付記２記載のメモリミラーリング装置において、
前記メモリインターフェイス制御部が、更に、前記各メモリモジュールに対応して個別に装備され当該各メモリモジュールからの読出しデータの有効性を個別に判定すると共にエラー検出なしの場合に当該各読出しデータをそれぞれ正常データと認定する第１，第２のエラー検出訂正回路を装備し、
この第１，第２の各エラー検出訂正回路で正常データと認定されたデータの内の一の読出しデータを、前記リプライデータ制御部が前記上位装置へ出力する機能を備えていることを特徴とするメモリミラーリング装置。
【００９３】
〔付記４〕
付記３記載のメモリミラーリング装置において、
前記第１，第２の各エラー検出訂正回路は、読出しデータの有効性の判定時に訂正可能エラーを検出した場合には当該訂正可能エラーを訂正しこれを正常データとして出力する機能をそれぞれが備えていることを特徴としたメモリミラーリング装置。
【００９４】
〔付記５〕
付記３又は４に記載のメモリミラーリング装置において、
前記リプライデータ制御部は、前記各エラー検出訂正回路で有効と判定されたデータの内、一方のメモリモジュールである前記第１のメモリモジュールからのデータを優先して前記上位装置へ出力する機能を備えていることを特徴としたメモリミラーリング装置。
【００９５】
〔付記６〕
付記３又は４に記載のメモリミラーリング装置において、
前記リプライデータ制御部は、前記各メモリモジュールからの読出しデータに基づいて障害の発生有無を判定する障害有無判定機能と、この障害有りと判定されたメモリモジュールを交換対象として論理的に排除する前記排除指令を対応する前記第１又は第２のメモリ駆動制御部へ送信する排除指令送信機能とを備えていることを特徴としたメモリミラーリング装置。
【００９６】
〔付記７〕（方法の発明／付記１対応）
メモリミラーリング状態に装備された第１，第２の各メモリモジュールに個別に対応して稼働し、上位装置の指令により所定のデータの書込み又は読出しを第１，第２のメモリ駆動制御部が実行するメモリミラーリング装置にあって、
前記上位装置からの指令で稼働し前記各メモリモジュールに対する通常時のアクセス命令を予め装備された通常系アクセス命令生成部が生成し（メモリアクセス命令生成工程）、
この生成されたメモリアクセス命令に従って前記第１，第２の各メモリ駆動制御部が稼働し前記メモリミラーリング状態に装備された第１，第２の各メモリモジュールへの読み出し又は書き込みを実行し（読出し書込み制御工程）、
前記第１，第２の各メモリモジュールへの読み出し又は書き込みの実行に相前後して、第１，第２の各メモリモジュールの内の何れか一方が障害等の発生により交換装備された場合には、予め装備された障害時アクセス命令生成部が稼働して当該交換されたメモリモジュールの初期化を、対応する何れか一方の前記メモリ駆動制御部を介して実行する構成としたこと（交換メモリ初期化工程）を特徴とするメモリミラーリング方法。
【００９７】
〔付記８〕（付記２対応）
付記７記載のメモリミラーリング方法において、
前記障害等の発生に伴う前記メモリモジュールの交換に先立って、
第１，第２の各メモリモジュールの内の何れか一方に障害が発生した場合に当該障害情報を入手したリプライデータ制御部が対応する前記メモリ駆動制御部へ排除指令を発信すると共に前記上位装置からアクセスされた正常データを前記上位装置に送出する工程（障害メモリ用排除指令発信工程）を設けたことを特徴とするメモリミラーリング方法。
【００９８】
〔付記９〕（付記５対応）
付記７記載のメモリミラーリング方法において、
前記交換メモリ初期化後に、前記上位装置からアクセスされた正常データを当該上位装置に送出するに際し、正常動作後の第１，第２の各メモリモジュールから得られる正常データの内、一方のメモリモジュールである前記第１のメモリモジュールからの正常データを、前記リプライデータ制御部が第２のメモリモジュールから得られる正常データに優先して前記上位装置へ出力することを特徴としたメモリミラーリング方法。
【００９９】
〔付記１０〕（プログラム発明／付記７対応）
メモリミラーリング状態に装備された第１，第２の各メモリモジュールに個別に対応して稼働し、上位装置の指令により所定のデータの書込み又は読出しを第１，第２のメモリ駆動制御部が実行するメモリミラーリング装置にあって、
前記上位装置からの指令で稼働し前記各メモリモジュールに対する通常時のアクセス命令を生成する通常系アクセス命令生成機能、
この生成されたメモリアクセス命令に従って前記メモリミラーリング状態に装備された前記第１，第２の各メモリモジュールへの読み出し又は書き込みを実行する読出し書込み制御機能、
および前記第１，第２の各メモリモジュールへの読み出し又は書き込みの実行に相前後して、第１，第２の各メモリモジュールの内の何れか一方が障害等の発生により交換装備された場合に機能し、当該交換されたメモリモジュールの初期化指令を対応する何れか一方の前記メモリ駆動制御部に対して発信する障害時アクセス命令生成処理機能、
を設け、これらの各機能をコンピュータに実現させるようにしたことを特徴とするメモリミラーリング用動作プログラム。
【０１００】
〔付記１１〕（付記８対応）
付記１０記載のメモリミラーリング用動作プログラムにおいて、
前記障害等の発生に伴い交換される前記メモリモジュールの交換に先立って、
第１，第２の各メモリモジュールの内の何れか一方に障害が発生した場合に当該障害情報に基づいて機能し対応する前記メモリ駆動制御部へ排除指令を発信する機能、および前記上位装置からアクセスされた正常データを前記上位装置に送出する正常データ送出処理機能、
を設け、これらを前記コンピュータに実現させるようにしたことを特徴とするメモリミラーリング用動作プログラム。
【０１０１】
〔付記１２〕（付記９対応）
付記１０記載のメモリミラーリング用動作プログラムにおいて、
前記交換メモリ初期化後に、前記上位装置からアクセスされた正常データを当該上位装置に送出するに際し、正常動作後の前記第１，第２の各メモリモジュールから得られる正常データの内、一方のメモリモジュールである前記第１のメモリモジュールからの正常データを前記第２のメモリモジュールからの正常データに優先して前記上位装置へ出力する優先出力処理機能を設け、
これを前記コンピュータに実現させるようにしたことを特徴とするメモリミラーリング用動作プログラム。
【産業上の利用可能性】
【０１０２】
本発明は、全てのコンピュータ及びコンピュータを組み込んだ情報機器のメモリ用として利用される。
【符号の説明】
【０１０３】
１  上位装置
２  メモリミラーリング装置
３  メモリコントローラ
４  メモリアクセス命令生成部
５  メモリインターフェイス制御部
１０  第１のメモリモジュール（第１のＤＩＭＭ）
１１  第２のメモリモジュール（第２のＤＩＭＭ）
４０  通常系アクセス命令生成部
４１  障害系アクセス命令生成部
５０  第１のメモリ駆動制御部
５１  第２のメモリ駆動制御部
５２  第１のエラー検出訂正回路
５３  第２のエラー検出訂正回路
５９  リプライデータ制御部
【図１】
0005618219.tif 000002
【図２】
0005618219.tif 000003
【図３】
0005618219.tif 000004
【図４】
0005618219.tif 000005
【図５】
0005618219.tif 000006
【図６】
0005618219.tif 000007