(57)【要約】【課題】メモリ２重化システムにおいて、障害情報に対してリアルタイムに対処するとともに、アドレス線のエラーを推定することでシステムダウンを防止することを課題とする。【解決手段】ＬＤＸ＃１およびＬＤＸ＃０は、それぞれが所持するＥＣＣ情報（ＥＣＣチェックのための情報）を交換してＥＣＣチェックを行い、リクエストデータの一部についてそれぞれＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）チェックを行って、アドレス線にエラーが発生しているか否か推定する。具体的には、例えば、ＬＤＸ＃０は、リクエストデータの一部に関するＥＣＣチェック結果であるシンドローム（診断情報）を作成し、このシンドロームから把握されるリクエストデータの一部に関するエラーの状況に応じて、例えば、リクエストデータの大部分がアンコレクタブルエラーを起こしている場合には、アドレス線にエラーが発生しているものと推定する。【選択図】        図１
2008046979.tif 000002
【特許請求の範囲】
【請求項１】
アドレス線をそれぞれが備える複数のメモリでデータのエラー検査単位を構成し、当該メモリがそれぞれ二重化されたシステムにおいて、当該メモリを制御するメモリコントローラであって、
前記システム内においてリクエストがあった場合に、当該リクエスト毎に実行する当該リクエストに係るデータのエラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定するエラー推定手段と、
前記エラー推定手段により前記アドレス線にエラーが発生しているものと推定される場合には、前記リクエストに係るデータのエラーデータを生成して、当該リクエストに係るデータをエラーデータに切り替えることで、前記二重化されたメモリ片系のデータを使用しないように制御するデータ切換制御手段と、
を備えたことを特徴とするメモリコントローラ。
【請求項２】
前記エラー推定手段は、接続された前記複数のメモリについて実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記エラー推定手段は、接続された前記メモリについて実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする請求項１に記載のメモリコントローラ。
【請求項４】
前記エラー推定手段は、接続された前記複数のメモリごとに実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする請求項１に記載のメモリコントローラ。
【請求項５】
前記エラー推定手段は、前記エラー検査結果として得られるアンコレクタブルエラーの発生回数を計数するとともに、当該発生回数が所定の上限回数を超えている場合には、前記アドレス線にエラーが発生しているものと推定することを特徴とする請求項１〜４のいずれか一つに記載のメモリコントローラ。
【請求項６】
前記アドレス線にエラーが発生しているものと推定するための前記所定の上限回数を変更する変更手段をさらに備えたことを特徴とする請求項５に記載のメモリコントローラ。
【請求項７】
前記エラー推定手段により前記アドレス線にエラーが発生しているものと推定された場合に、エラー検査を再試行して、当該エラー検査の再試行結果に応じて当該アドレス線にエラーが発生していないものと判定する判定手段をさらに備え、
前記データ切換制御手段は、前記判定手段により前記アドレス線にエラーが発生していないものと判定された場合には、前記生成したエラーデータを前記リクエストに係るデータに切り替えることで、前記二重化されたメモリ片系のデータの使用を復帰するように制御することを特徴とする請求項１〜６のいずれか一つに記載メモリコントローラ。
【請求項８】
前記判定手段は、前記エラー検査の再試行結果として得られるノーエラーの回数を計数するとともに、当該回数が所定の上限回数を超えている場合には、前記アドレス線にエラーが発生していないものと判定することを特徴とする請求項７に記載のメモリコントローラ。
【請求項９】
前記アドレス線にエラーが発生していないものと判定するための前記所定の上限回数を変更する変更手段をさらに備えたことを特徴とする請求項８に記載のメモリコントローラ。
【請求項１０】
アドレス線をそれぞれが備える複数のメモリでデータのエラー検査単位を構成し、当該メモリがそれぞれ二重化されたシステムにおいて、当該メモリを制御するメモリコントローラに適用されるメモリ制御方法であって、
前記システム内においてリクエストがあった場合に、当該リクエスト毎に実行する当該リクエストに係るデータのエラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定するエラー推定工程と、
前記エラー推定手段により前記アドレス線にエラーが発生しているものと推定される場合には、前記リクエストに係るデータのエラーデータを生成して、当該リクエストに係るデータをエラーデータに切り替えることで、前記二重化されたメモリ片系のデータを使用しないように制御するデータ切換制御工程と、
を含んだことを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アドレス線をそれぞれが備える複数のメモリでデータのエラー検査単位を構成し、当該メモリがそれぞれ二重化されたシステムにおいて、当該メモリを制御するメモリコントローラ等に関する。
【背景技術】
【０００２】
従来より、データ処理装置などに、例えば、ＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）などを用いたメモリ２重化システムを適用することにより、データ処理装置などの信頼度を向上させる技術が開示されている。
【０００３】
例えば、特許文献１では、メモリ２重化システムの初期診断時に、障害情報をアドレス単位で管理し、２重化されたメモリの片系に２ビット以上の固定障害を検出した場合であっても、他系への切り換えを行ってリカバリを図る機能を有効に生かし、メモリ２重化システムの信頼性を向上する技術が開示されている。具体的には、初期診断時に、２重化されたメモリの片系に２ビット以上の固定障害を検出した場合、対応するメモリのアドレスのみを無効または有効を指示するとともに、このアドレスに関する無効信号を出力して比較回路を無効化し、アドレスが有効であると指示され、パリティエラーを検出していないアドレスを持つメモリのデータの使用を指示することで、メモリ２重化システムの信頼性を向上させている。
【０００４】
【特許文献１】特開平７−１６０５８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した従来の技術は、障害情報に対してリアルタイムに対処することができない、システムダウンが発生する可能性があるなどの問題点があった。
【０００６】
すなわち、上記した従来の技術は、メモリ２重化システムの初期診断における障害情報に基づいて、メモリ２重化システムの信頼性を向上する技術であるので、システム起動に報告される障害情報に対して対処することができないという問題点があった。
【０００７】
また、上記した従来の技術において、メモリ２重化システムであるＤＩＭＭのアドレス線はエラー保護されていないため、アドレス線にエラーが発生しても認識されず、誤ったアドレスのデータを使用してしまう危険があった。これを回避するため複数のＤＩＭＭ（例えば、２枚）で１つのＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）エラーチェック単位を組む技術があるが、一定の確率でＥＣＣが一致してしまうことでデータ化けが発生する可能性があり、ＥＣＣの偶発的な一致によるデータ化けが発生するのでは、２重化されたメモリの系切り換えを行ってエラーのリカバリを図る場合にも、どちらの系を選択するべきかが難しく、結果としてシステムダウンが発生する可能性があるという問題点があった。
【０００８】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、メモリ２重化システムにおいて、障害情報に対してリアルタイムに対処するとともに、アドレス線のエラーを推定することでシステムダウンを防止することが可能なメモリコントローラおよびメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、アドレス線をそれぞれが備える複数のメモリでデータのエラー検査単位を構成し、当該メモリがそれぞれ二重化されたシステムにおいて、当該メモリを制御するメモリコントローラであって、前記システム内においてリクエストがあった場合に、当該リクエスト毎に実行する当該リクエストに係るデータのエラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定するエラー推定手段と、前記エラー推定手段により前記アドレス線にエラーが発生しているものと推定される場合には、前記リクエストに係るデータのエラーデータを生成して、当該リクエストに係るデータをエラーデータに切り替えることで、前記二重化されたメモリ片系のデータを使用しないように制御するデータ切換制御手段と、を備えたことを特徴とする。
【００１０】
また、請求項２に係る発明は、上記の発明において、前記エラー推定手段は、接続された前記複数のメモリについて実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする。
【００１１】
また、請求項３に係る発明は、上記の発明において、前記エラー推定手段は、接続された前記メモリについて実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする。
【００１２】
また、請求項４に係る発明は、上記の発明において、前記エラー推定手段は、接続された前記複数のメモリごとに実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする。
【００１３】
また、請求項５に係る発明は、上記の発明において、前記エラー推定手段は、前記エラー検査結果として得られるアンコレクタブルエラーの発生回数を計数するとともに、当該発生回数が所定の上限回数を超えている場合には、前記アドレス線にエラーが発生しているものと推定することを特徴とする。
【００１４】
また、請求項６に係る発明は、上記の発明において、前記アドレス線にエラーが発生しているものと推定するための前記所定の上限回数を変更する変更手段をさらに備えたことを特徴とする。
【００１５】
また、請求項７に係る発明は、上記の発明において、前記エラー推定手段により前記アドレス線にエラーが発生しているものと推定された場合に、エラー検査を再試行して、当該エラー検査の再試行結果に応じて当該アドレス線にエラーが発生していないものと判定する判定手段をさらに備え、前記データ切換制御手段は、前記判定手段により前記アドレス線にエラーが発生していないものと判定された場合には、前記生成したエラーデータを前記リクエストに係るデータに切り替えることで、前記二重化されたメモリ片系のデータの使用を復帰するように制御することを特徴とする。
【００１６】
また、請求項８に係る発明は、上記の発明において、前記判定手段は、前記エラー検査の再試行結果として得られるノーエラーの回数を計数するとともに、当該回数が所定の上限回数を超えている場合には、前記アドレス線にエラーが発生していないものと判定することを特徴とする。
【００１７】
また、請求項９に係る発明は、上記の発明において、前記アドレス線にエラーが発生していないものと判定するための前記所定の上限回数を変更する変更手段をさらに備えたことを特徴とする。
【００１８】
また、請求項１０に係る発明は、アドレス線をそれぞれが備える複数のメモリでデータのエラー検査単位を構成し、当該メモリがそれぞれ二重化されたシステムにおいて、当該メモリを制御するメモリコントローラに適用されるメモリ制御方法であって、前記システム内においてリクエストがあった場合に、当該リクエスト毎に実行する当該リクエストに係るデータのエラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定するエラー推定工程と、前記エラー推定手段により前記アドレス線にエラーが発生しているものと推定される場合には、前記リクエストに係るデータのエラーデータを生成して、当該リクエストに係るデータをエラーデータに切り替えることで、前記二重化されたメモリ片系のデータを使用しないように制御するデータ切換制御工程と、を含んだことを特徴とする。
【発明の効果】
【００１９】
本発明によれば、システム内においてリクエストがあった場合に実行するリクエストに係るデータのエラー検査結果（例えば、データのエラー具合やエラー発生回数などの状況）に応じて、アドレス線（リクエストのデータアドレスを伝達する線）にエラーが発生しているか否か推定するとともに、アドレス線にエラーが発生しているものと推定される場合には、リクエストに係るデータのエラーデータを生成してエラーデータに切り替えることで、２重化されたメモリ片系のデータを使用しないように制御するので、メモリが２重化されたシステム（ミラー）において、アドレス線にエラーが発生していることを推定する情報などの障害情報に対してリアルタイムに対処することができるとともに、アドレス線のエラーに起因してデータ化けが発生していたとしても、メモリが２重化されたシステム（ミラー）内の比較回路でデータ比較させる前に、生成したエラーデータに切り替えて比較させないようにすることができ、アドレス線のエラーを推定することでシステムダウンを防止することが可能である。
【００２０】
また、本発明によれば、接続された複数のメモリについて実行するエラー検査結果に応じて、アドレス線にエラーが発生しているか否か推定するので、例えば、ＤＩＭＭ２枚について１つのメモリコントローラで制御するシステム構成とする場合において、アドレス線のエラーを推定することでシステムダウンを防止することが可能である。
【００２１】
また、本発明によれば、接続されたメモリについて実行するエラー検査結果に応じて、アドレス線にエラーが発生しているか否か推定するので、例えば、ＤＩＭＭ１枚について１つのメモリコントローラが制御するシステム構成とした場合においても、ＤＩＭＭ２枚について１つのメモリコントローラで制御するシステム構成とする場合よりも性能向上等を図りつつ、アドレス線のエラーを推定することでシステムダウンを防止することが可能である。
【００２２】
また、本発明によれば、接続された複数のメモリそれぞれについて実行するエラー検査結果に応じて、アドレス線にエラーが発生しているか否か推定するので、例えば、ＤＩＭＭ４枚について１つのメモリコントローラが制御するシステム構成とする場合において、１重化されるＤＩＭＭを最小限に抑えつつ、アドレス線のエラーを推定することでシステムダウンを防止することが可能である。
【００２３】
また、本発明によれば、エラー検査結果として得られるアンコレクタブルエラーの発生回数を計数するとともに、発生回数が所定の上限回数を超えている場合には、アドレス線にエラーが発生しているものと推定するので、簡易な構成によりアドレス線のエラーを推定することができ、システムダウンを防止することが可能である。
【００２４】
また、本発明によれば、アドレス線にエラーが発生しているものと推定するための所定の上限回数を変更するので、例えば、システム保守者が任意に上限回数を設定することにより、システムダウンを防止することが可能である。
【００２５】
また、本発明によれば、アドレス線にエラーが発生しているものと推定された場合に、エラー検査を再試行して、そのエラー検査の再試行結果に応じてアドレス線にエラーが発生していないものと判定するとともに、アドレス線にエラーが発生していないものと判定された場合には、生成したエラーデータをリクエストに係るデータに切り替えることで、二重化されたメモリ片系のデータの使用を復帰するように制御するので、アドレス線のエラーを推定することでシステムダウンを防止するだけでなく、例えば、アドレス線のエラーではなく、ＤＩＭＭ内のセルの一部の故障などによるテンポラリエラーの可能性を考慮しつつ、セルの故障である場合にはそれを改善することで、ＤＩＭＭが１重化されて信頼性が低下するのを極力回避することが可能である。
【００２６】
また、本発明によれば、エラー検査の再試行結果として得られるノーエラーの回数を計数するとともに、その回数が所定の上限回数を超えている場合には、アドレス線にエラーが発生していないものと判定するので、簡易な構成によりＤＩＭＭが１重化されて信頼性が低下するのを極力回避することが可能である。
【００２７】
また、本発明によれば、アドレス線にエラーが発生していないものと判定するための所定の上限回数を変更するので、例えば、システム保守者が任意に上限回数を設定することにより、ＤＩＭＭが１重化されて信頼性が低下するのを極力回避することが可能である。
【発明を実施するための最良の形態】
【００２８】
以下に添付図面を参照して、本発明に係るメモリコントローラおよびメモリ制御方法の実施例を詳細に説明する。なお、以下では、本発明に係るメモリコントローラを適用したシステムを実施例１として説明した後に、本発明に含まれる他の実施例を説明する。
【実施例１】
【００２９】
以下の実施例１では、実施例１に係るメモリコントローラの概要および特徴、メモリコントローラの構成および処理を順に説明し、最後に実施例１による効果を説明する。
【００３０】
［メモリコントローラの概要および特徴（実施例１）］
まず最初に、図１を用いて、実施例１に係るメモリコントローラの概要および特徴を説明する。図１は、実施例１に係るメモリコントローラの概要および特徴を説明するための図である。
【００３１】
実施例１に係るメモリコントローラは、アドレス線をそれぞれが備える複数のメモリでデータのエラー検査単位を構成し、メモリがそれぞれ二重化されたシステム（ミラー）においてメモリを制御することを概要とするが、障害情報に対してリアルタイムに対処するとともに、アドレス線のエラーを推定することでシステムダウンを防止することが可能である点に主たる特徴がある。
【００３２】
この主たる特徴について具体的に説明すると、図１に示すように、実施例１に係るメモリコントローラ（ＬＤＸ＃０〜３）を適用するシステムは、ＤＩＭＭ１に接続されるＬＤＸ＃１およびＤＩＭＭ０に接続されるＬＤＸ＃０と、ＤＩＭＭ３に接続されるＬＤＸ＃３およびＤＩＭＭ２に接続されるＬＤＸ＃２とでミラーを構成し、ＤＩＭＭ１およびＤＩＭＭ０でデータ単位を構成するとともに、ＤＩＭＭ１に接続されるＬＤＸ＃１およびＤＩＭＭ０に接続されるＬＤＸ＃０でエラー検査単位であるＥＣＣチェック単位を構成している。
【００３３】
ＳＢ（システムボード）＃０内のＣＰＵ１からアドレスとともにデータのリクエストが出力されると（図１の（１）参照）、例えば、アドレス線エラーを発生させているＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）０からリクエストデータの一部がＬＤＸ（メモリコントローラ）＃０に出力され（図１の（２）参照）、残りのリクエストデータがＤＩＭＭ１からＬＤＸ＃１へ出力される。
【００３４】
ＬＤＸ＃１およびＬＤＸ＃０は、それぞれが所持するＥＣＣ情報（ＥＣＣチェックのための情報）を交換してＥＣＣチェックを行い、リクエストデータの一部についてそれぞれＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）チェックを行って、アドレス線にエラーが発生しているか否か推定する（図１の（３）参照）。具体的には、例えば、ＬＤＸ＃０は、リクエストデータの一部に関するＥＣＣチェック結果であるシンドローム（診断情報）を作成し、このシンドロームから把握されるリクエストデータの一部に関するエラーの状況に応じて、例えば、リクエストデータの大部分がアンコレクタブルエラーを起こしている場合には、アドレス線にエラーが発生しているものと推定する。なお、ＬＤＸ＃０がアドレス線にエラーが発生しているものと推定する場合には、ＬＤＸ＃１も同様にアドレス線にエラーが発生しているものと推定する。
【００３５】
アドレス線にエラーが発生しているものと推定した場合には、ＬＤＸ＃１およびＬＤＸ＃０は、それぞれが管理するリクエストデータの一部についてエラーデータを生成して、リクエストデータの一部をそれぞれが生成したエラーデータに切り替える（図１の（４）参照）。そして、ＬＤＸ＃１およびＬＤＸ＃０は、ミラーの片系を構成するＤＩＭＭ１およびＤＩＭＭ０に記録されているデータを使用しないように制御するため、切り替えたエラーデータをＦＬＮ（比較回路）へ出力する（図１の（５）参照）。
【００３６】
ＦＬＮは、ミラーのもう一方の片系を構成するＬＤＸ＃３およびＬＤＸ＃２から入力されたリクエストデータと、ＬＤＸ＃１およびＬＤＸ＃０から入力されたデータを比較するに際して（図１の（６）参照）、ＬＤＸ＃１およびＬＤＸ＃０から入力されたデータがエラーデータであることから、比較の対象として採用することなく、ＬＤＸ＃３およびＬＤＸ＃２から入力されたリクエストデータをリクエスト元であるＣＰＵ１へ出力する（図１の（７）参照）。
【００３７】
このようなことから、実施例１によれば、上述した主たる特徴の如く、メモリが２重化されたシステム（ミラー）において、アドレス線の推定エラー情報などの障害情報に対してリアルタイムに対処することができるとともに、アドレス線のエラーに起因してデータ化けが発生していたとしても、メモリが２重化されたシステム（ミラー）内のＦＬＮ（比較回路）でデータ比較させる前に、生成したエラーデータに切り替えて比較させないようにすることができ、アドレス線のエラーを推定することでシステムダウンを防止することが可能である。
【００３８】
［メモリコントローラ等の構成（実施例１）］
次に、図２を用いて、実施例１に係るメモリコントローラを適用したシステム構成を説明するとともに、図３を用いて、実施例１に係るシステムボードおよびメモリコントローラの構成を説明する。図２は、実施例１に係るメモリコントローラを適用したシステム構成図であり、図３は、実施例１に係るシステムボードおよびメモリコントローラの構成を示すブロック図である。
【００３９】
図２に示すように、実施例１に係るメモリコントローラを適用したシステムは、ＭＭＢ１０と、ＧＤＸ（Ｄａｔａ  Ｃｒｏｓｓｂａｒ）２０と、ＧＡＣ（Ａｄｄｒｅｓｓ  Ｃｒｏｓｓｂａｒ）３０と、ＳＢ（Ｓｙｓｔｅｍ  Ｂｏａｒｄ）４０と、ＩＯＵ（Ｉｍｐｕｔ／Ｏｕｔｐｕｔ  Ｕｎｉｔ）５０とから構成される。
【００４０】
ＭＭＢ１０は、ＧＤＸ２０、ＧＡＣ３０、ＳＢ４０およびＩＯＵ５０に関する各種制御を行う制御装置である。ＧＤＸ２０は、ＳＢ４０およびＩＯＵ５０間でデータをやり取りするための中継装置である。ＧＡＣ３０は、ＳＢ４０およびＩＯＵ５０から入力されたリクエストまたはリクエスト応答の中継を制御する中継装置である。ＳＢ４０は、ＤＩＭＭ（メモリ）、ＬＤＸ（メモリコントローラ）やＣＰＵなどを配置して構成され、各種情報処理を制御するボードである。ＩＯＵ５０は、外部から接続される外部装置の入出力インターフェースを配置して構成されるボードである。
【００４１】
次に、図３に示すように、ＳＢ４０は、ＤＩＭＭ３に接続されるＬＤＸ＃３およびＤＩＭＭ２に接続されるＬＤＸ＃２と、ＤＩＭＭ１に接続されるＬＤＸ＃１およびＤＩＭＭ０に接続されるＬＤＸ＃０とを配置してミラーを構成するととともに、ＣＰＵおよびＦＬＮを配置して構成される。
【００４２】
ＤＩＭＭは、ＣＰＵによる各種処理に必要なデータおよびプログラムを記憶する記憶装置であり、ＤＩＭＭ３およびＤＩＭＭ２、ＤＩＭＭ１およびＤＩＭＭ０でそれぞれデータ単位を構成する。ＬＤＸは、ＤＩＭＭから入力される各種情報に基づいて、ＤＩＭＭを制御する処理部である。ＣＰＵは、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部である。ＦＬＮは、ミラーを構成する各ＬＤＸから入力されるデータをそれぞれ比較する回路を有し、データをＣＰＵ等に出力する処理部である。
【００４３】
ＬＤＸ（メモリコントローラ）＃０〜３は、それぞれＤＩＭＭリードデータ保持部と、ＥＣＣチェック回路と、アドレス線故障推定回路と、切り替え制御部と、ＵＥ生成回路とを備えて構成される。
【００４４】
ＤＩＭＭリードデータ保持部は、ＣＰＵなどのリクエストに応じて、ＤＩＭＭから読み出されたリクエストデータの一部を一時的に保持する保持部である。
【００４５】
ＥＣＣチェック回路は、ＤＩＭＭリードデータ保持部に保持されているリクエストデータの一部について、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）によるエラー検査（チェック）を行い、その検査結果をアドレス線故障推定回路へ出力する回路である。なお、ＥＣＣチェック回路は、ＬＤＸ＃３内のＥＣＣチェック回路およびＬＤＸ＃２内のＥＣＣチェック回路で一つ、ＬＤＸ＃１内のＥＣＣチェック回路およびＬＤＸ＃０内のＥＣＣチェック回路で一つのＥＣＣチェック単位をそれぞれ構成しており、ＥＣＣチェック単位を構成するＥＣＣチェック回路は、ＥＣＣ情報（ＥＣＣチェックのための情報）を交換して、ＥＣＣによるエラー検査（チェック）を行う。
【００４６】
アドレス線故障推定回路は、ＥＣＣチェック回路から入力されたリクエストデータの一部に関するエラー検査結果に応じて、アドレス線にエラーが発生しているか否か推定する回路である。具体的には、例えば、ＬＤＸ＃０は、リクエストデータの一部に関するＥＣＣチェック結果であるシンドローム（診断情報）を作成し、このシンドロームから把握されるリクエストデータの一部に関するエラーの状況に応じて、例えば、リクエストデータの大部分がアンコレクタブルエラーを起こしている場合には、アドレス線にエラーが発生しているものと推定する。そして、アドレス線にエラーが発生しているものと推定した場合には、その信号を切り替え制御部へ出力する。なお、ＬＤＸ＃０がアドレス線にエラーが発生しているものと推定する場合には、ＬＤＸ＃１も同様にアドレス線にエラーが発生しているものと推定する。
【００４７】
切り替え制御部は、リクエストデータのエラーデータへの切り替えを制御する処理部である。具体的には、アドレス線故障推定回路からアドレス線にエラーが発生しているものと推定する信号が入力された場合には、リクエストデータの一部についてエラーデータを生成するとともに、リクエストデータの一部を生成したエラーデータに切り替えるようにＵＥ生成回路に信号を出力する。
【００４８】
ＵＥ（Ｕｎｃｏｒｒｅｃｔａｂｌｅ  Ｅｒｒｏｒ）生成回路は、リクエストデータについてアンコレクタブルエラーとなるエラーデータを生成して切り替える回路である。具体的には、エラーデータ切り替え制御部から入力された信号に応じて、リクエストデータのエラーデータを生成して、リクエストデータをエラーデータに切り替える。
【００４９】
そして、ＬＤＸ＃１およびＬＤＸ＃０は、ミラーの片系を構成するＤＩＭＭ１およびＤＩＭＭ０に記録されているデータを使用しないように制御するため、切り替えたエラーデータをＦＬＮ（比較回路）へ出力する。なお、ＬＤＸ＃１およびＬＤＸ＃０からそれぞれ出力されたエラーデータは、結合されてリクエストデータに関するエラーデータとなる。
【００５０】
ＦＬＮは、ミラーのもう一方の片系を構成するＬＤＸ＃３およびＬＤＸ＃２から入力されたリクエストデータと、ＬＤＸ＃１およびＬＤＸ＃０から入力されたデータを比較するに際して、ＬＤＸ＃１およびＬＤＸ＃０から入力されたデータがエラーデータであることから、比較の対象として採用することなく、ＬＤＸ＃３およびＬＤＸ＃２から入力されたリクエストデータをリクエスト元（例えば、ＣＰＵ）へ出力する。
【００５１】
［メモリコントローラによる処理（実施例１）］
続いて、図４を用いて、実施例１に係るメモリコントローラ（ＬＤＸ）の処理を説明する。図４は、実施例１に係るメモリコントローラの処理の流れを示すフローチャートである。
【００５２】
同図に示すように、例えば、ＤＩＭＭ０から読み出されたリクエストデータの一部を受け付けると（ステップＳ４０１肯定）、ＬＤＸ＃０は、ＤＩＭＭリードデータ保持部に一時的に保持する。そして、ＬＤＸ＃０のＥＣＣチェック回路は、ＤＩＭＭリードデータ保持部に保持されているリクエストデータの一部について、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）によるエラー検査（チェック）を行い（ステップＳ４０２）、その検査結果をアドレス線故障推定回路へ出力する。なお、ＥＣＣチェック回路は、ＥＣＣチェック単位を構成する他のＥＣＣチェック回路とＥＣＣ情報（ＥＣＣチェックのための情報）を交換して、ＥＣＣによるエラー検査（チェック）を行う。
【００５３】
アドレス線故障推定回路は、ＥＣＣチェック回路から入力されたリクエストデータの一部に関するエラー検査結果に応じて、アドレス線にエラーが発生しているか否か推定する（ステップＳ４０３）。具体的には、例えば、リクエストデータの一部に関するＥＣＣチェック結果であるシンドローム（診断情報）を作成し、このシンドロームから把握されるリクエストデータの一部に関するエラーの状況に応じて、例えば、リクエストデータの大部分がアンコレクタブルエラーを起こしている場合には、アドレス線にエラーが発生しているものと推定する。
【００５４】
そして、アドレス線にエラーが発生しているものと推定した場合には（ステップＳ４０３肯定）、アドレス線故障推定回路は、その信号を切り替え制御部へ出力する。切り替え制御部は、リクエストデータの一部をエラーデータへ切り替えるように制御する（ステップＳ４０４）。具体的には、アドレス線故障推定回路からアドレス線にエラーが発生しているものと推定する信号が入力された場合には、ＵＥ生成回路にリクエストデータの一部についてエラーデータを生成して、リクエストデータの一部を生成したエラーデータに切り替えるように信号を出力する。一方、アドレス線故障推定回路は、アドレス線にエラーが発生しているものと推定しない場合には（ステップＳ４０３否定）、特に、切り替え制御部へ信号を出力することはない。
【００５５】
そして、ＬＤＸ＃０は、ミラーの片系を構成するＤＩＭＭ０に記録されているデータを使用しないように制御するため、切り替えたエラーデータをＦＬＮ（比較回路）へ出力し、ＬＤＸ＃１も同様にＤＩＭＭ１に記録されているデータを使用しないように制御するため、切り替えたエラーデータをＦＬＮ（比較回路）へ出力する（ステップＳ４０５）。
【００５６】
［実施例１の効果］
上述してきたように、実施例１によれば、システム内においてリクエストがあった場合に実行するリクエストデータのエラー検査結果（例えば、ＥＣＣチェック結果）に応じて、アドレス線（リクエストのデータアドレスを伝達する線）にエラーが発生しているか否か推定するとともに、アドレス線にエラーが発生しているものと推定される場合には、リクエストに係るデータのエラーデータを生成してエラーデータに切り替えることで、２重化されたメモリ片系のデータを使用しないように制御するので、メモリが２重化されたシステム（ミラー）において、アドレス線にエラーが発生していることを推定する情報などの障害情報に対してリアルタイムに対処することができるとともに、アドレス線のエラーに起因してデータ化けが発生していたとしても、メモリが２重化されたシステム（ミラー）内の比較回路でデータ比較させる前に、生成したエラーデータに切り替えて比較させないようにすることができ、アドレス線のエラーを推定することでシステムダウンを防止することが可能である。
【００５７】
また、実施例１によれば、接続されたメモリについて実行するエラー検査結果に応じて、アドレス線にエラーが発生しているか否か推定するので、例えば、ＤＩＭＭ１枚について１つのメモリコントローラが制御するシステム構成とした場合においても、ＤＩＭＭ２枚について１つのメモリコントローラで制御するシステム構成とする場合よりも性能向上等を図りつつ、アドレス線のエラーを推定することでシステムダウンを防止することが可能である。
【実施例２】
【００５８】
上記の実施例１では、ＥＣＣチェック回路によるエラー検査結果として取得したリクエストデータのエラーの状況（データの壊れ具合等）から、アドレス線にエラーが発生しているか否か推定する場合を説明したが、本発明はこれに限定されるものではなく、ＥＣＣチェック回路におけるリクエストデータのエラー検査において、アンコレクタブルエラーの発生回数を取得し、その取得した発生回数に基づいて、アドレス線にエラーが発生しているか否か推定するようにしてもよい。そこで、以下の実施例２では、実施例２に係るメモリコントローラの構成および処理を順に説明し、最後に実施例２による効果について説明する。
【００５９】
［メモリコントローラの構成（実施例２）］
まず、図５を用いて、実施例２に係るメモリコントローラの構成を説明する。図５は、実施例２に係るシステムボードおよびメモリコントローラの構成を示すブロック図である。実施例２に係るＳＢ（システムボード）およびメモリコントローラの構成は、実施例１に係るＳＢ（システムボード）およびメモリコントローラの構成と基本的に同様であるが、以下に説明する点が異なる。
【００６０】
アドレス線故障推定回路は、カウンタ、ＤｅｃｏｄｅｒおよびＯＰＳＲを備えて構成される。カウンタは、ＥＣＣチェック回路のエラー検査で検出されたアンコレクタブルエラー（ＵＥ）の発生回数を計数する装置である。Ｄｅｃｏｄｅｒは、カウンタ値を出力するための装置である。
【００６１】
また、ＯＰＳＲ（オペレーションレジスタ）は、ＭＭＢ１０からの設定を受け付けて、アドレス線にエラーが発生しているものと推定して、切り替え制御部にリクエストデータの一部に関するエラーデータへの切り替えを実行させるためのカウンタ値を指定する装置であり、例えば、図６に例示するように、アドレス線にエラーが発生しているものと推定するためのアンコレクタブルエラーの発生回数に対応付けて、データ切り替えを実行するか否かを記憶して構成されるテーブルを所持する。
【００６２】
そして、アドレス線故障推定回路は、Ｄｅｃｏｄｅｒから出力されるカウンタ値が、ＯＰＳＲから指定された上限回数を超えているか否か判定し、判定の結果、カウンタ値が上限回数を超えている場合には、リクエストデータをエラーデータへ切り替えるように切り替え制御部へ信号を出力する。なお、この上限回数ついては、ＭＭＢ１０から設定変更を受け付けて適宜変更することができる。
【００６３】
切り替え制御部は、アドレス線故障推定回路から信号が入力されると、リクエストデータのエラーデータへの切り替えを制御する。具体的には、ＵＥ生成回路にリクエストデータの一部についてエラーデータを生成して、リクエストデータの一部を生成したエラーデータに切り替えるように信号を出力する。
【００６４】
なお、ＯＰＳＲが所持するテーブル（図６参照）はあくまで一例であって、これに限定されることなく、適宜構成を変更したテーブル生成してもよいし、アドレス線故障推定回路は、エラー発生回数が上限回数を超えているか否かの判定結果に基づいて、リクエストデータの一部をエラーデータへ切り替えるように制御する場合に限られるものではなく、例えば、エラーの連続発生回数をカウントしておき、エラーの連続発生回数が所定の上限回数を超えた場合に、アドレス線に故障が発生したものと推定し、切り替え制御部にリクエストデータの一部をエラーデータへ切り替えるように制御させてもよい。
【００６５】
［メモリコントローラの処理（実施例２）］
次に、図７を用いて、実施例２に係るメモリコントローラ（ＬＤＸ）の処理を説明する。図７は、実施例１に係るメモリコントローラの処理の流れを示すフローチャートである。なお、ステップＳ７０１、ステップＳ７０２およびステップＳ７０５の処理は、図４を用いて、実施例１で説明したＳ４０１、ステップＳ４０２およびステップＳ４０５のステップの処理と同様であるので、以下では、ステップＳ７０３およびステップＳ７０４の処理について説明する。
【００６６】
同図に示すように、アドレス線故障推定回路は、ＥＣＣチェック回路から入力されたリクエストデータの一部に関するエラー検査結果に応じて、アドレス線にエラーが発生しているか否か推定する（ステップＳ７０３）。具体的には、Ｄｅｃｏｄｅｒから出力されるカウンタ値が、ＯＰＳＲから指定された上限回数を超えているか否か判定し、判定の結果、カウンタ値が上限回数を超えている場合には（ステップＳ７０３肯定）、アドレス線にエラーが発生しているものと推定し、リクエストデータをエラーデータへ切り替えるように切り替え制御部へ信号を出力する。一方、アドレス線故障推定回路は、カウンタ値が上限回数を超えていない場合には（ステップＳ７０３否定）、特に、切り替え制御部へ信号を出力することはない。
【００６７】
切り替え制御部は、アドレス線故障推定回路から信号が入力されると、リクエストデータのエラーデータへの切り替えを制御する（ステップＳ７０４）。具体的には、リクエストデータの一部についてエラーデータを生成するとともに、リクエストデータの一部を生成したエラーデータに切り替えるようにＵＥ生成回路に信号を出力する。
【００６８】
［実施例２の効果］
上述してきたように、実施例２によれば、エラー検査結果として得られるアンコレクタブルエラーの発生回数を計数するとともに、発生回数が所定の上限回数を超えている場合には、アドレス線にエラーが発生しているものと推定するので、簡易な構成によりアドレス線のエラーを推定することができ、システムダウンを防止することが可能である。
【００６９】
また、実施例２によれば、アドレス線にエラーが発生しているものと推定するための所定の上限回数を変更するので、例えば、システム保守者が任意に上限回数を設定することにより、システムダウンを防止することが可能である。
【実施例３】
【００７０】
また、上記の実施例２において、アドレス線にエラーが発生しているものと推定された場合に、ＥＣＣによるエラー検査を再試行して、そのエラー検査の再試行結果に応じてアドレス線にエラーが発生していないものと判定した場合には、エラーデータをリクエストデータに切り替えて、二重化されたメモリ片系のデータの使用を復帰するようにしてもよい。そこで、以下の実施例３では、実施例３に係るメモリコントローラの構成および処理を順に説明し、最後に実施例３による効果を説明する。
【００７１】
［メモリコントローラの構成（実施例３）］
まず、図８を用いて、実施例３に係るメモリコントローラの構成を説明する。図８は、実施例３に係るシステムボードおよびメモリコントローラの構成を示すブロック図である。実施例３に係るＳＢ（システムボード）およびメモリコントローラの構成は、上記の実施例２に係るＳＢ（システムボード）およびメモリコントローラの構成と基本的に同様であるが、以下に説明する点が異なる。
【００７２】
アドレス線故障推定回路は、カウンタ、ＤｅｃｏｄｅｒおよびＯＰＳＲの他、復帰用カウンタを備えて構成される。
【００７３】
ＯＰＳＲは、ＭＭＢ１０からの設定を受け付けて、アドレス線にエラーが発生していないものと推定して、切り替え制御部にエラーデータを元のリクエストデータの一部に切り替えて復帰させるためのカウンタ値を指定する。
【００７４】
ＥＣＣチェック回路は、アドレス線故障推定回路によりアドレス線にエラーが発生しているものと推定された場合には、ＥＣＣによるエラー検査を再試行して、ノーエラーの回数を計数し、Ｄｅｃｏｄｅｒに出力する。
【００７５】
アドレス線故障推定回路は、Ｄｅｃｏｄｅｒから出力されるカウンタ値が、ＯＰＳＲから指定された上限回数を超えているか否か判定し、判定の結果、カウンタ値が上限回数を超えている場合には、エラーデータを元のリクエストデータの一部に切り替えて復帰させるように切り替え制御部へ信号を出力する。なお、この上限回数ついては、ＭＭＢ１０から設定変更を受け付けて適宜変更することができる。
【００７６】
切り替え制御部は、アドレス線故障推定回路から信号が入力されると、エラーデータのリクエストデータへの切り替え復帰を制御する。具体的には、エラーデータを元のリクエストデータの一部に切り替えるようにＵＥ生成回路に信号を出力する。
【００７７】
なお、アドレス線故障推定回路は、ノーエラー発生回数が上限回数を超えているか否かの判定結果に基づいて、エラーデータを元のリクエストデータ一部へ切り替えるように制御する場合に限られるものではなく、例えば、ノーエラーの連続発生回数をカウントしておき、エラーの連続発生回数が所定の上限回数を超えた場合に、アドレス線にエラーが発生していないもと推定し、切り替え制御部にエラーデータを元のリクエストデータの一部へ切り替えるように制御させてもよい。
【００７８】
［メモリコントローラによる処理（実施例３）］
次に、図９を用いて、実施例３に係るメモリコントローラ（ＬＤＸ）の処理を説明する。図９は、実施例３に係るメモリコントローラの処理の流れを示すフローチャートである。なお、以下では、アドレス線故障回路により、アドレス線にエラーが発生しているものと推定され、リクエストデータをエラーデータへ切り替えた後の処理を説明する。
【００７９】
同図に示すように、アドレス線故障推定回路によりアドレス線にエラーが発生しているものと推定された場合には（ステップＳ９０１肯定）、ＥＣＣによるエラー検査を再試行して（ステップＳ９０２）、ノーエラーの回数を計数し、Ｄｅｃｏｄｅｒに出力する。
【００８０】
アドレス線故障推定回路は、Ｄｅｃｏｄｅｒから出力されるカウンタ値が、ＯＰＳＲから指定された上限回数を超えているか否か判定する（ステップＳ９０３）。判定の結果、カウンタ値が上限回数を超えている場合には（ステップＳ９０３肯定）、アドレス線故障推定回路は、エラーデータを元のリクエストデータの一部に切り替えて復帰させるように切り替え制御部へ信号を出力する。一方、アドレス線故障推定回路は、カウンタ値が上限回数を超えていない場合には（ステップＳ９０３否定）、特に、切り替え制御部へ信号を出力することはない。
【００８１】
切り替え制御部は、アドレス線故障推定回路から信号が入力されると、エラーデータのへのリクエストデータ切り替え復帰を制御する（ステップＳ９０５）。具体的には、エラーデータを元のリクエストデータの一部に切り替えるようにＵＥ生成回路に信号を出力する。
【００８２】
［実施例３の効果］
上述してきたように、実施例３によれば、アドレス線にエラーが発生しているものと推定された場合に、エラー検査を再試行して、そのエラー検査の再試行結果に応じてアドレス線にエラーが発生していないものと判定するとともに、アドレス線にエラーが発生していないものと判定された場合には、生成したエラーデータをリクエストに係るデータに切り替えることで、二重化されたメモリ片系のデータの使用を復帰するように制御するので、アドレス線のエラーを推定することでシステムダウンを防止するだけでなく、例えば、アドレス線のエラーではなく、ＤＩＭＭ内のセルの一部の故障などによるテンポラリエラーの可能性を考慮しつつ、セルの故障である場合にはそれを改善することで、ＤＩＭＭが１重化されて信頼性が低下するのを極力回避することが可能である。
【００８３】
また、実施例３によれば、エラー検査の再試行結果として得られるノーエラーの回数を計数するとともに、その回数が所定の上限回数を超えている場合には、アドレス線にエラーが発生していないものと判定するので、簡易な構成によりＤＩＭＭが１重化されて信頼性が低下するのを極力回避することが可能である。
【００８４】
また、実施例３によれば、アドレス線にエラーが発生していないものと判定するための所定の上限回数を変更するので、例えば、システム保守者が任意に上限回数を設定することにより、ＤＩＭＭが１重化されて信頼性ｔが低下するのを極力回避することが可能である。
【実施例４】
【００８５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる実施例を説明する。
【００８６】
（１）ＬＤＸに接続されるＤＩＭＭの数
上記の実施例では、ＬＤＸ（メモリコントローラ）に接続されるＤＩＭＭの数が一つである場合を説明したが、本発明はこれに限定されるものではなく、複数のＤＩＭＭを接続するようにしてもよい。
【００８７】
例えば、図１０に例示するように、ＬＤＸ＃０１にＤＩＭＭ１およびＤＩＭＭ０の二つのＤＩＭＭを接続して、ＤＩＭＭ１およびＤＩＭＭ０でデータ単位を構成するとともに、ＬＤＸ＃０１は、アドレス線のエラーを推定するため、ＤＩＭＭ１およびＤＩＭＭ０についてエラー検査単位を構成するＥＣＣチェック回路をそれぞれ配置するようにしてもよい。
【００８８】
このようなことから、接続された複数のメモリについて実行するエラー検査結果に応じて、アドレス線にエラーが発生しているか否か推定するので、例えば、ＤＩＭＭ２枚について１つのメモリコントローラで制御するシステム構成とする場合において、アドレス線のエラーを推定することでシステムダウンを防止することが可能である。
【００８９】
また、図１１に示すように、ＬＤＸ＃０〜３にそれぞれ４つのＤＩＭＭを接続して、例えば、ＤＩＭＭ３およびＤＩＭＭ３’でデータ単位を構成するとともに、ＤＩＭＭ３に接続されるＬＤＸ＃１およびＤＩＭＭ３’に接続されるＬＤＸ＃０でエラー検査単位であるＥＣＣチェック単位を構成するＥＣＣチェック回路をＬＤＸ＃１およびＬＤＸ＃０のそれぞれが配置し、上記の実施例と同様に、各ＥＣＣチェック回路は、それぞれが所持するＥＣＣ情報（ＥＣＣチェックのための情報）を交換してＥＣＣチェックを行うようにしてもよい。
【００９０】
このようなことから、接続された複数のメモリそれぞれについて実行するエラー検査結果に応じて、アドレス線にエラーが発生しているか否か推定するので、例えば、ＤＩＭＭ４枚について１つのメモリコントローラが制御するシステム構成とする場合において、１重化されるＤＩＭＭを最小限に抑えつつ、アドレス線のエラーを推定することでシステムダウンを防止することが可能である。
【００９１】
（３）装置構成等
また、例えば、図３に示したメモリコントローラ（ＬＤＸ＃０）の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、メモリコントローラの分散・統合の具体的形態は図示のものに限られず、例えば、ＥＣＣチェック回路とアドレス線故障推定回路とを統合するなど、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００９２】
また、上記の実施例において説明したメモリコントローラ（ＬＤＸ）にて行なわれる各処理機能（アドレス線故障推定処理機能、データ切り替え処理機能およびメモリデータ復帰判定処理機能）は、その全部または任意の一部が、予め用意され所定のメモリなどに記憶されているプログラムをＭＭＢ１０が読み出して実行することにより実現され得る。
【００９３】
（付記１）アドレス線をそれぞれが備える複数のメモリでデータのエラー検査単位を構成し、当該メモリがそれぞれ二重化されたシステムにおいて、当該メモリを制御するメモリコントローラであって、
前記システム内においてリクエストがあった場合に、当該リクエスト毎に実行する当該リクエストに係るデータのエラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定するエラー推定手段と、
前記エラー推定手段により前記アドレス線にエラーが発生しているものと推定される場合には、前記リクエストに係るデータのエラーデータを生成して、当該リクエストに係るデータをエラーデータに切り替えることで、前記二重化されたメモリ片系のデータを使用しないように制御するデータ切換制御手段と、
を備えたことを特徴とするメモリコントローラ。
【００９４】
（付記２）前記エラー推定手段は、接続された前記複数のメモリについて実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする付記１に記載のメモリコントローラ。
【００９５】
（付記３）前記エラー推定手段は、接続された前記メモリについて実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする付記１に記載のメモリコントローラ。
【００９６】
（付記４）前記エラー推定手段は、接続された前記複数のメモリごとに実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする付記１に記載のメモリコントローラ。
【００９７】
（付記５）前記エラー推定手段は、前記エラー検査結果として得られるアンコレクタブルエラーの発生回数を計数するとともに、当該発生回数が所定の上限回数を超えている場合には、前記アドレス線にエラーが発生しているものと推定することを特徴とする付記１〜４のいずれか一つに記載のメモリコントローラ。
【００９８】
（付記６）前記アドレス線にエラーが発生しているものと推定するための前記所定の上限回数を変更する変更手段をさらに備えたことを特徴とする付記５に記載のメモリコントローラ。
【００９９】
（付記７）前記エラー推定手段により前記アドレス線にエラーが発生しているものと推定された場合に、エラー検査を再試行して、当該エラー検査の再試行結果に応じて当該アドレス線にエラーが発生していないものと判定する判定手段をさらに備え、
前記データ切換制御手段は、前記判定手段により前記アドレス線にエラーが発生していないものと判定された場合には、前記生成したエラーデータを前記リクエストに係るデータに切り替えることで、前記二重化されたメモリ片系のデータの使用を復帰するように制御することを特徴とする付記１〜６のいずれか一つに記載メモリコントローラ。
【０１００】
（付記８）前記判定手段は、前記エラー検査の再試行結果として得られるノーエラーの回数を計数するとともに、当該回数が所定の上限回数を超えている場合には、前記アドレス線にエラーが発生していないものと判定することを特徴とする付記７に記載のメモリコントローラ。
【０１０１】
（付記９）前記アドレス線にエラーが発生していないものと判定するための前記所定の上限回数を変更する変更手段をさらに備えたことを特徴とする付記８に記載のメモリコントローラ。
【０１０２】
（付記１０）アドレス線をそれぞれが備える複数のメモリでデータのエラー検査単位を構成し、当該メモリがそれぞれ二重化されたシステムにおいて、当該メモリを制御するメモリコントローラに適用されるメモリ制御方法であって、
前記システム内においてリクエストがあった場合に、当該リクエスト毎に実行する当該リクエストに係るデータのエラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定するエラー推定工程と、
前記エラー推定手段により前記アドレス線にエラーが発生しているものと推定される場合には、前記リクエストに係るデータのエラーデータを生成して、当該リクエストに係るデータをエラーデータに切り替えることで、前記二重化されたメモリ片系のデータを使用しないように制御するデータ切換制御工程と、
を含んだことを特徴とするメモリ制御方法。
【０１０３】
（付記１１）前記エラー推定工程は、接続された前記複数のメモリについて実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする付記１０に記載のメモリ制御方法。
【０１０４】
（付記１２）前記エラー推定工程は、接続された前記メモリについて実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする付記１０に記載のメモリ制御方法。
【０１０５】
（付記１３）前記エラー推定工程は、接続された前記複数のメモリごとに実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする付記１０に記載のメモリ制御方法。
【０１０６】
（付記１４）前記エラー推定工程は、前記エラー検査結果として得られるアンコレクタブルエラーの発生回数を計数するとともに、当該発生回数が所定の上限回数を超えている場合には、前記アドレス線にエラーが発生しているものと推定することを特徴とする付記１０〜１３のいずれか一つに記載のメモリ制御方法。
【０１０７】
（付記１５）前記アドレス線にエラーが発生しているものと推定するための前記所定の上限回数を変更する変更工程をさらに備えたことを特徴とする付記１４に記載のメモリ制御方法。
【０１０８】
（付記１６）前記エラー推定工程により前記アドレス線にエラーが発生しているものと推定された場合に、エラー検査を再試行して、当該エラー検査の再試行結果に応じて当該アドレス線にエラーが発生していないものと判定する判定工程をさらに備え、
前記データ切換制御工程は、前記判定工程により前記アドレス線にエラーが発生していないものと判定された場合には、前記生成したエラーデータを前記リクエストに係るデータに切り替えることで、前記二重化されたメモリ片系のデータの使用を復帰するように制御することを特徴とする付記１０〜１５のいずれか一つに記載メモリ制御方法。
【０１０９】
（付記１７）前記判定工程は、前記エラー検査の再試行結果として得られるノーエラーの回数を計数するとともに、当該回数が所定の上限回数を超えている場合には、前記アドレス線にエラーが発生していないものと判定することを特徴とする付記１６に記載のメモリ制御方法。
【０１１０】
（付記１８）前記アドレス線にエラーが発生していないものと判定するための前記所定の上限回数を変更する変更工程をさらに備えたことを特徴とする付記１７に記載のメモリ制御方法。
【０１１１】
（付記１９）アドレス線をそれぞれが備える複数のメモリでデータのエラー検査単位を構成し、当該メモリがそれぞれ二重化されたシステムにおいて、当該メモリを制御する方法をコンピュータに実行させるメモリ制御プログラムであって、
前記システム内においてリクエストがあった場合に、当該リクエスト毎に実行する当該リクエストに係るデータのエラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定するエラー推定手順と、
前記エラー推定手順により前記アドレス線にエラーが発生しているものと推定される場合には、前記リクエストに係るデータのエラーデータを生成して、当該リクエストに係るデータをエラーデータに切り替えることで、前記二重化されたメモリ片系のデータを使用しないように制御するデータ切換制御手順と、
をコンピュータに実行させることを特徴とするメモリ制御プログラム。
【０１１２】
（付記２０）前記エラー推定手順は、接続された前記メモリについて実行する前記エラー検査結果に応じて、前記アドレス線にエラーが発生しているか否か推定することを特徴とする付記１９に記載のメモリ制御プログラム。
【産業上の利用可能性】
【０１１３】
以上のように、本発明に係るメモリコントローラおよびメモリ制御方法は、アドレス線をそれぞれが備える複数のメモリでデータのエラー検査単位を構成し、当該メモリがそれぞれ二重化されたシステムにおいて、当該メモリを制御する場合に有用であり、特に、メモリ２重化システムにおいて、障害情報に対してリアルタイムに対処するとともに、アドレス線のエラーを推定することでシステムダウンを防止することに適する。
【図面の簡単な説明】
【０１１４】
【図１】実施例１に係るメモリコントローラの概要および特徴を説明するための図である。
【図２】実施例１に係るメモリコントローラを適用したシステム構成図である。
【図３】実施例１に係るシステムボードおよびメモリコントローラの構成を示すブロック図である。
【図４】実施例１に係るメモリコントローラの処理の流れを示すフローチャートである。
【図５】実施例２に係るシステムボードおよびメモリコントローラの構成を示すブロック図である。
【図６】スレッシュホールドテーブルに構成例を示す図である。
【図７】実施例２に係るメモリコントローラの処理の流れを示すフローチャートである。
【図８】実施例３に係るシステムボードおよびメモリコントローラの構成を示すブロック図である。
【図９】実施例３に係るメモリコントローラの処理の流れを示すフローチャートである。
【図１０】実施例４に係るシステムボード構成図である。
【図１１】実施例４に係るシステムボード構成図である。
【符号の説明】
【０１１５】
０〜３、０’〜３’  ＤＩＭＭ
１０  ＭＭＢ
２０  ＧＤＸ
３０  ＧＡＣ
４０  ＳＢ
５０  ＩＯＵ
【図１】
2008046979.tif 000003
【図２】
2008046979.tif 000004
【図３】
2008046979.tif 000005
【図４】
2008046979.tif 000006
【図５】
2008046979.tif 000007
【図６】
2008046979.tif 000008
【図７】
2008046979.tif 000009
【図８】
2008046979.tif 000010
【図９】
2008046979.tif 000011
【図１０】
2008046979.tif 000012
【図１１】
2008046979.tif 000013