(57)【要約】【課題】障害の発生が予測される記憶領域がある場合においても、使用可能な記憶容量を効率的に確保しつつ動作を継続することができるメモリ制御回路を得る。【解決手段】メモリ制御回路を、アドレス管理手段１と、制御手段２と、障害監視手段３を備える構成とする。制御手段２は、第１の記憶領域および第２の記憶領域にアクセスする際に、階層化されたアドレス変換表を基に、入力される第１のアドレスを第２のアドレスに変換してアクセスする。アドレス管理手段１は、障害監視手段３が第１の記憶領域の第１の範囲の障害を検知した際に、第２の記憶領域上に、第１の範囲と同容量の第２の範囲を設定する。また、アドレス管理手段１は、所定の階層において第１の範囲に対応する第１のアドレスと第２の範囲を関連づけてアドレス変換表を変更する。制御手段２は、第１の範囲に対応する第１のアドレスが入力されたとき、第１の範囲と第２の範囲にアクセスする。【選択図】      図１
2017126200.tif 000002
【特許請求の範囲】
【請求項１】
入力される第１のアドレスと、メモリモジュールの第１の記憶領域上および前記第１の記憶領域とは異なる第２の記憶領域上の第２のアドレスとの対応を示す情報を、管理する領域が段階的に狭くなるように階層化されたアドレス変換表として生成するアドレス管理手段と、
前記第１の記憶領域および前記第２の記憶領域にアクセスする際に、入力される前記第１のアドレスを、階層化された前記アドレス変換表を基に前記第２のアドレスに変換し、前記第１の記憶領域および前記第２の記憶領域へのアクセスを制御する制御手段と、
前記第１の記憶領域と前記第２の記憶領域の障害の有無を監視する障害監視手段と、
を備え、
前記アドレス管理手段は、前記第１の記憶領域の第１の範囲の前記障害の発生状態が所定の基準を満たした際に、前記第２の記憶領域上に、前記第１の範囲と同容量の第２の範囲を設定し、所定の前記階層において前記第１の範囲に対応する記第１のアドレスと前記第２の範囲とが互いに関連づけられた状態となるように前記アドレス変換表を変更し、
前記制御手段は、前記第１の範囲に対応する前記第１のアドレスが入力されたとき、前記第１の範囲と前記第２の範囲の両方にアクセスするように制御することを特徴とするメモリ制御回路。
【請求項２】
前記所定の基準は、前記第１の記憶領域において生じる訂正可能な前記障害が、同一の範囲で所定の回数以上、生じたときとして設定されていることを特徴とする請求項１に記載のメモリ制御回路。
【請求項３】
前記アドレス管理手段は、前記障害監視手段が前記第１の記憶領域の第１の範囲の前記障害の発生状態が前記所定の基準を満たした際に、前記第１の範囲と前記第２の範囲を関連づけた情報を前記アドレス変換表の先頭行に設定することを特徴とする請求項１または２いずれかに記載のメモリ制御回路。
【請求項４】
前記制御手段は、前記第１の記憶領域へのアクセスを制御する第１のメモリ制御手段と、前記第２の記憶領域へのアクセスを制御する前記第２のメモリ制御手段とをそれぞれ有し、
前記アドレス管理手段は、前記第１のメモリ制御手段と前記第２のメモリ制御手段それぞれに割り当てられた前記アドレス変換表を同一の階層として含む階層化された前記アドレス変換表を基に、前記第１のアドレスから前記第２のアドレスに変換することを特徴とする請求項１から３いずれかに記載のメモリ制御回路。
【請求項５】
前記第１の範囲と前記第２の範囲は、同じメモリモジュール上に存在することを特徴とする請求項１から３いずれかに記載のメモリ制御回路。
【請求項６】
第１のメモリモジュールと、
第２のメモリモジュールと、
請求項１から４いずれかに記載のメモリ制御回路と、を備え、
前記第１の記憶領域は、前記第１のメモリモジュールに形成され、前記第２の記憶領域は前記第２のメモリモジュールに形成されていることを特徴とする情報処理装置。
【請求項７】
入力される第１のアドレスと、メモリモジュールの第１の記憶領域上および前記第１の記憶領域とは異なる前記第２の記憶領域上の第２のアドレスとの対応を示す情報を、管理する領域が段階的に狭くなるように階層化されたアドレス変換表として生成し、
前記第１の記憶領域および前記第２の記憶領域にアクセスする際に、入力される前記第１のアドレスを、階層化された前記アドレス変換表を基に前記第２のアドレスに変換し、
前記第１の記憶領域および前記第２の記憶領域へのアクセスを制御し、
前記第１の記憶領域と前記第２の記憶領域の障害の有無を監視し、
前記第１の記憶領域の第１の範囲の前記障害の発生状態が所定の基準を満たした際に、前記第２の記憶領域上に、前記第１の範囲と同容量の第２の範囲を設定し、所定の前記階層において前記第１の範囲に対応する前記第１のアドレスと前記第２の範囲とが互いに関連づけられた状態となるように記アドレス変換表を変更し、
前記第１の範囲に対応する前記第１のアドレスが入力されたとき、前記第１の範囲と前記第２の範囲の両方にアクセスするように制御することを特徴とすることを特徴とするメモリ制御方法。
【請求項８】
前記所定の基準は、前記第１の記憶領域において生じる訂正可能な前記障害が、同一の範囲で所定の回数以上、生じたときとして設定されていることを特徴とする請求項７に記載のメモリ制御方法。
【請求項９】
前記第１の記憶領域の第１の範囲の前記障害の発生状態が前記所定の基準を満たした際に、前記第１の範囲と前記第２の範囲を関連づけた情報を前記アドレス変換表の先頭行に設定することを特徴とすることを特徴とする請求項７または８に記載のメモリ制御方法。
【請求項１０】
前記第１の記憶領域と前記第２の記憶領域にそれぞれに割り当てられた前記アドレス変換表を同一階層として含む階層化された前記アドレス変換表を基に、前記第１のアドレスから前記第２のアドレスに変換することを特徴とする請求項７から９いずれかに記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御技術に関するものであり、特に、ミラーリングを行う際のメモリ制御技術に関するものである。
【背景技術】
【０００２】
情報システムの高可用化が要求されるようになり、サーバ等の情報処理装置を構成する各装置の冗長化が行われるようになっている。また、情報処理装置を構成するＤＩＭＭ（Dual Inline Memory Module）等の主記憶装置は、障害が生じた際に、障害を訂正して動作を継続するＥＣＣ（Error Check and Correct memory）等の機能を備えていることも多い。しかし、障害の訂正能力には限界があるため、訂正可能な障害が多発するような場合には、保守交換が行われるまでの間に訂正不可能な障害に移行して情報システムの停止が生じる可能性が高くなり、情報システムの信頼性が低下する。そのため、サーバ等の情報処理装置は、訂正可能な障害が訂正不可能な障害に移行した場合においても動作を継続できることが望ましい。また、サーバ等の情報処理装置が、訂正不可能な障害に移行した場合においても動作を継続する際に、情報処理装置が有する記憶装置等は、できるだけ効率的に利用されていることが望ましい。
【０００３】
主記憶装置において生じる訂正不可能な障害によって情報システムの停止を防ぐ方法としては、訂正不可能な障害の発生が予測される際に、障害の予測が発生される記憶領域へのアクセスを制限する方法が用いられることがある。障害の予測が発生される記憶領域へのアクセスを制限する方法としては、例えば、ＯＳ（Operating System）によるアクセスを制限する方法がある。
【０００４】
しかし、ＯＳによる障害の予測が発生される記憶領域へのアクセスを制限する方法では、立ち上げ時のＢＩＯＳ（Basic Input Output System）処理やハードウェア側で自律的に記憶装置にアクセスする場合には、制御を行うことができない。そのため、立ち上げ時のＢＩＯＳ処理等による障害の予測が発生される記憶領域へのアクセスを制限するために、障害の発生が予測されるＤＩＭＭ等を縮退して、正常に動作するＤＩＭＭ等のみで動作を行う方法が用いられることがある。
【０００５】
しかし、障害の発生が予測される記憶領域を含むＤＩＭＭを１枚単位等で縮退すると、サーバ等の情報処理装置が動作する際に使用できる記憶容量が大幅に減少し、データ処理等に支障が生じる恐れがある。そのため、障害の発生が予測される記憶領域がある場合においても、アクセス可能な記憶容量を十分に確保しつつ動作を継続できる技術があることが望ましく、関連する技術の開発が行われている。そのような、障害の発生が予測される記憶領域がある場合においても、アクセス可能な記憶容量を十分に確保しつつ動作を継続するための技術としては、例えば、特許文献１のような技術が開示されている。
【０００６】
特許文献１は、訂正不可能なエラーが検出されたメモリの縮退機能と、ミラーリング機能を有する制御装置を備えるサーバに関するものである。特許文献１の制御装置は、それぞれ２つのメモリを有するバンク１、バンク２およびバンク３の３つのメモリブロックを制御している。特許文献１の制御装置は、通常動作時は、例えば、バンク２およびバンク３のように２つのバンクを制御し、バンク間でミラーリングを行う。訂正不可能なエラーが検出されたとき、特許文献１の制御装置は、バンク２またはバンク３のうち訂正不可能なエラーが検出されたバンクを停止して縮退させる。訂正不可能なエラーが検出されたバンクを停止して縮退させると、特許文献１の技術は、停止していないバンクとそれまで稼働していなかったバンク１との間でミラーリングを行う。特許文献１は、このようにメモリの制御を行うことで、訂正不可能なエラーに対する耐性を向上することができるとしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−２７７６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の技術は次のような点で十分ではない。特許文献１の制御回路を備えるサーバは、ミラーリングを行うためのメモリの他に、さらに予備のメモリを有している必要がある。そのため、特許文献１において動作に必要な十分な記憶容量を確保しようとすると、必要なメモリの数が増大しメモリの利用効率が大きく低下する。よって、障害の発生が予測される記憶領域がある場合においても、使用可能な記憶容量を効率的に確保しつつ動作を継続するための技術としては十分ではない。
【０００９】
本発明は、上記の課題を解決するため、障害の発生が予測される記憶領域がある場合においても、使用可能な記憶容量を効率的に確保しつつ動作を継続することができるメモリ制御回路を得ることを目的としている。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明のメモリ制御回路は、アドレス管理手段と、制御手段と、障害監視手段を備えている。アドレス管理手段は、入力される第１のアドレスと、メモリモジュールの第１の記憶領域上および第１の記憶領域とは異なる第２の記憶領域上の第２のアドレスとの対応を示す情報をアドレス変換表として生成する。アドレス変換表は、管理する領域が段階的に狭くなるように階層化されている。制御手段は、第１の記憶領域および第２の記憶領域にアクセスする際に、入力される第１のアドレスを、階層化されたアドレス変換表を基に第２のアドレスに変換し、第１の記憶領域および第２の記憶領域へのアクセスを制御する。障害監視手段は、第１の記憶領域と第２の記憶領域の障害の有無を監視する。アドレス管理手段は、第１の記憶領域の第１の範囲の障害の発生状態が所定の基準を満たした際に、第２の記憶領域上に、第１の範囲と同容量の第２の範囲を設定する。また、アドレス管理手段は、所定の階層において第１の範囲に対応する第１のアドレスと第２の範囲とが互いに関連づけられた状態となるようにアドレス変換表を変更する。制御手段は、第１の範囲に対応する第１のアドレスが入力されたとき、第１の範囲と第２の範囲の両方にアクセスするように制御する。
【００１１】
本発明のメモリ制御方法は、入力される第１のアドレスと、メモリモジュールの第１の記憶領域上および第１の記憶領域とは異なる第２の記憶領域上の第２のアドレスとの対応を示す情報をアドレス変換表として生成する。アドレス変換表は、管理する領域が段階的に狭くなるように階層化されている。本発明のメモリ制御方法は、第１の記憶領域および第２の記憶領域にアクセスする際に、入力される第１のアドレスを、階層化されたアドレス変換表を基に第２のアドレスに変換し、第１の記憶領域および第２の記憶領域へのアクセスを制御する。本発明のメモリ制御方法は、第１の記憶領域と第２の記憶領域の障害の有無を監視する。本発明のメモリ制御方法は、第１の記憶領域の第１の範囲の障害の発生状態が所定の基準を満たした際に、第２の記憶領域上に、第１の範囲と同容量の第２の範囲を設定する。本発明のメモリ制御方法は、所定の階層において第１の範囲に対応する第１のアドレスと第２の範囲とが互いに関連づけられた状態となるようにアドレス変換表を変更する。本発明のメモリ制御方法は、第１の範囲に対応するシステムアドレスが入力されたとき、第１の範囲と第２の範囲の両方にアクセスするように制御する。
【発明の効果】
【００１２】
本発明によると、障害の発生が予測される記憶領域がある場合においても、使用可能な記憶容量を効率的に確保しつつ動作を継続することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態の構成の概要を示す図である。
【図２】本発明の第２の実施形態の構成の概要を示す図である。
【図３】本発明の第２の実施形態のサーバ部の構成の一部を示す図である。
【図４】本発明の第２の実施形態のサーバ部の構成の一部を示す図である。
【図５】本発明の第２の実施形態のサーバ部の構成の一部を示す図である。
【図６】本発明の第２の実施形態のサーバ部の構成の一部を示す図である。
【図７】本発明の第２の実施形態のアドレス変換表の構成の例を示す図である。
【図８】本発明の第２の実施形態における動作フローの概要を示す図である。
【図９】本発明の第２の実施形態におけるアドレス変換の例を模式的に示した図である。
【図１０】本発明の第２の実施形態のアドレス変換表の例を示す図である。
【図１１】本発明の第２の実施形態のアドレス変換表の例を示す図である。
【図１２】本発明の第２の実施形態のアドレス変換表の例を示す図である。
【図１３】本発明の第２の実施形態における動作フローの概要を示す図である。
【図１４】本発明の第２の実施形態の変更後のアドレス変換表の例を示す図である。
【図１５】本発明の第２の実施形態の変更後のアドレス変換表の例を示す図である。
【図１６】本発明の第２の実施形態の変更後のアドレス変換表の例を示す図である。
【図１７】本発明の第２の実施形態においてミラーリングが行われた箇所を模式的に示した図である。
【図１８】本発明の第３の実施形態における動作フローの概要を示す図である。
【図１９】本発明の第３の実施形態の変更後のアドレス変換表の例を示す図である。
【図２０】本発明の第３の実施形態の変更後のアドレス変換表の例を示す図である。
【図２１】本発明の第３の実施形態の変更後のアドレス変換表の例を示す図である。
【図２２】本発明の第３の実施形態においてミラーリングが行われた箇所を模式的に示した図である。
【発明を実施するための形態】
【００１４】
（第１の実施形態）
本発明の第１の実施形態について図を参照して詳細に説明する。図１は、本実施形態のメモリ制御回路の構成の概要を示したものである。本実施形態のメモリ制御回路は、アドレス管理手段１と、制御手段２と、障害監視手段３を備えている。アドレス管理手段１は、入力される第１のアドレスと、メモリモジュールの第１の記憶領域上および第１の記憶領域とは異なる第２の記憶領域上の第２のアドレスとの対応を示す情報をアドレス変換表として生成する。アドレス変換表は、管理する領域が段階的に狭くなるように階層化されている。制御手段２は、第１の記憶領域および第２の記憶領域にアクセスする際に、入力される第１のアドレスを、階層化されたアドレス変換表を基に第２のアドレスに変換し、第１の記憶領域および第２の記憶領域へのアクセスを制御する。障害監視手段３は、第１の記憶領域と第２の記憶領域の障害の有無を監視する。アドレス管理手段１は、第１の記憶領域の第１の範囲の障害の発生状態が所定の基準を満たした際に、第２の記憶領域上に、第１の範囲と同容量の第２の範囲を設定する。また、アドレス管理手段１は、所定の階層において第１の範囲に対応する第１のアドレスと第２の範囲とが互いに関連づけられた状態となるようにアドレス変換表を変更する。制御手段２は、第１の範囲に対応する第１のアドレスが入力されたとき、第１の範囲と第２の範囲の両方にアクセスするように制御する。
【００１５】
本実施形態のメモリ制御回路では、第１の記憶領域の第１の範囲の障害の発生状態が所定の基準を満たした際に、アドレス管理手段１が第２の記憶領域上に、第１の範囲と同容量の第２の範囲を設定し、アドレス変換表を変更している。また、本実施形態のメモリ制御回路の制御手段２は、第１の範囲に対応する第１のアドレスが入力されたとき、変更されたアドレス変換表に基づいて、第１の範囲と第２の範囲の両方にアクセスするように制御している。よって、本実施形態のメモリ制御回路は、障害の発生の恐れがあるような場合に、第１の範囲と第２の範囲の間でミラーリングを行って、安定した稼働を継続することができる。
【００１６】
また、本実施形態のメモリ制御回路は、管理する領域が段階的に狭くなるように階層化されたアドレス変換表に、第１の範囲と同容量の第２の範囲を設定している。そのため、本実施形態のメモリ制御回路は、第１の範囲と同容量の第２の範囲を設定する際に、障害の発生の恐れのある範囲に近い小さな範囲を単位として第１の範囲および第２の範囲を設定することができる。よって、本実施形態のメモリ制御回路は、そのように設定した第１の範囲と第２の範囲の両方にアクセスすることでミラーリングを行いつつ、ミラーリングに必要な記憶容量を抑制することができる。その結果、本実施形態のメモリ制御回路を用いることで、障害の発生が予測される記憶領域がある場合においても、使用可能な記憶容量を効率的に確保しつつ動作を継続することができる。
【００１７】
（第２の実施形態）
本発明の第２の実施形態について図を参照して詳細に説明する。図２は、本実施形態の情報システムの構成の概要を示したものである。本実施形態の情報システムは、サーバ部１００と、ＢＩＯＳ（Basic Input Output System）部２００と、ＯＳ（Operating System）部３００と、障害監視部４００を備えている。
【００１８】
サーバ部１００は、ＣＰＵ（Central Processing Unit）パッケージ１１０と、メモリ１２０と、不揮発メモリ１３０を備えている。ＣＰＵパッケージ１１０およびメモリ１２０は、それぞれ複数、備えられている。ＣＰＵパッケージ１１０は、１つであってもよい。
【００１９】
図３は、サーバ部１００のＣＰＵパッケージ１１０およびメモリ１２０の構成についてより具体的に示したものである。図３では、サーバ部１００が３つのＣＰＵパッケージ１１０を備えた例について説明している。図３において、３つのＣＰＵパッケージ１１０は、それぞれＣＰＵパッケージ０、ＣＰＵパッケージ１、ＣＰＵパッケージ２として示されている。各ＣＰＵパッケージ１１０は、結合網５１を介して互いに接続されている。結合網５１は、各ＣＰＵパッケージ１１０の間で信号の伝送を行うバスである。
【００２０】
ＣＰＵパッケージ１１０は、ＣＰＵコア１０と、第１のメモリコントローラ部２０と、第２のメモリコントローラ部３０を備えている。ＣＰＵコア１０、第１のメモリコントローラ部２０および第２のメモリコントローラ部３０は、結合網５２を介して接続されている。結合網５２は、各部位の間で信号の伝送を行うバスである。本実施形態のＣＰＵパッケージ１１０には、４つのＣＰＵコア１０が備えられている。１つのＣＰＵパッケージ１１０に備えられているＣＰＵコア１０は、４つ以外であってもよい。
【００２１】
ＣＰＵコア１０は、プログラムコードを実行する回路である。ＣＰＵコア１０は、図４に示す通りメモリコントローラアドレス生成部１１をさらに備えている。図４は、ＣＰＵコア１０の構成の概要を示したものである。メモリコントローラアドレス生成部１１は、システムアドレスから対応するメモリコントローラと、コントローラアドレス、すなわち、メモリコントローラ上のアドレスを関連づけたアドレス変換表を保持している。ＣＰＵコア１０は、アドレス変換表を基に、メモリ１２０の各記憶領域にアクセスを行いデータの書き込みおよび読み出しを行う。
【００２２】
第１のメモリコントローラ部２０は、メモリ１２０へのアクセスを制御する機能を有する。図３では、第１のメモリコントローラ部２０は、メモリ１２０として備えられている第１のメモリ４１および第２のメモリ４２へのアクセスを制御する。本実施形態の第１のメモリ４１および第２のメモリ４２は、それぞれＤＩＭＭ（Dual Inline Memory Module）によって構成されている。第１のメモリ４１および第２のメモリ４２は、ＤＩＭＭ以外のメモリモジュールであってもよい。
【００２３】
図５は、第１のメモリコントローラ部２０の構成の概要を示したものである。第１のメモリコントローラ部２０は、ＣＨアドレス生成部２１と、第１のＣＨ制御部２２と、第２のＣＨ制御部２３をさらに備えている。本実施形態の情報システムにおいて、ＣＨは、メモリチャネルのことをいい、メモリモジュールの制御単位ごとにメモリチャネルが割り当てられている。ＣＨアドレス生成部２１は、コントローラアドレスと、対応するメモリチャネルと、メモリチャネル上のアドレスであるＣＨアドレスの関係を関連づけたアドレス変換表を保持している。第１のメモリコントローラ部２０は、ＣＨアドレス生成部２１のアドレス変換表を基に対応するメモリチャネルのＣＨ制御部を介して、メモリへのアクセスを制御する。図３および図５では、第１のＣＨ制御部２２が、第１のメモリ４１を制御するメモリチャネルをＣＨ０として示している。また、第２のＣＨ制御部２３が、第２のメモリ４２を制御するメモリチャネルをＣＨ１として示している。
【００２４】
第１のＣＨ制御部２２は、ＣＰＵコア１０から入力されるコントローラアドレスから変換されたＣＨアドレスを基に、メモリ１２０として備えられている第１のメモリ４１へのアクセスを行う。第１のＣＨ制御部２２は、ＲＡＮＫアドレス生成部２４をさらに備えている。ＲＡＮＫアドレス生成部２４は、ＣＨアドレスと、対応するＲＡＮＫと、ＲＡＮＫ上のアドレスであるＲＡＮＫアドレスの情報を関連づけたアドレス変換表を保持している。第１のＣＨ制御部２２は、ＲＡＮＫアドレス生成部２４のアドレス変換表を基に、ＣＨアドレスに対応するＲＮＡＫアドレスにアクセスし、データの書き込みおよび読み出しを行う。
【００２５】
図６は、第２のメモリコントローラ部３０の構成の概要を示したものである。第２のメモリコントローラ部３０の構成と機能は、第１のメモリコントローラ部２０と同様である。第２のメモリコントローラ部３０は、ＣＨアドレス生成部３１と、第１のＣＨ制御部３２と、第２のＣＨ制御部３３をさらに備えている。第１のＣＨ制御部３２は、ＲＡＮＫアドレス生成部３４をさらに備えている。第２のＣＨ制御部３３は、ＲＡＮＫアドレス生成部３５をさらに備えている。ＣＨアドレス生成部３１、第１のＣＨ制御部３２、第２のＣＨ制御部３３、ＲＡＮＫアドレス生成部３４およびＲＡＮＫアドレス生成部３５の構成と機能は、第１のメモリコントローラ部２０の同名称の部位と同様である。本実施形態の第１のメモリコントローラ部２０および第２のメモリコントローラ部３０には、半導体装置が用いられる。また、本実施形態の第１のメモリコントローラ部２０および第２のメモリコントローラ部３０におけるメモリ１２０へのアクセスを制御する機能は、第１の実施形態の制御手段２に相当する。
【００２６】
メモリ１２０は、主記憶装置としての機能を有する。本実施形態のメモリ１２０にはＤＩＭＭが用いられている。本実施形態のメモリ１２０は、メモリコントローラごとに第１のメモリ４１および第２のメモリ４２としてそれぞれ２つ備えられている。図３に示す第１のメモリ４１および第２のメモリ４２は、それぞれＤＩＭＭ０とＤＩＭＭ１の２つのＤＩＭＭで構成されているメモリモジュールである。１つのメモリコントローラにメモリ１２０として備えられているメモリモジュールの数は、２つ以外であってもよい。また、本実施形態のメモリ１２０は、ＥＣＣ（Error Check and Correct memory）方式のエラー訂正機能を有している。メモリ１２０は、他の方式のエラー訂正機能を有していてもよい。
【００２７】
メモリ１２０として備えられている第１のメモリ４１および第２のメモリ４２のそれぞれのＤＩＭＭは、２つのＲＡＮＫに分離されている。図３では、ＤＩＭＭ０がＲＡＮＫ０およびＲＡＮＫ１の２つのＲＡＮＫに分離されている。また、ＤＩＭＭ１がＲＡＮＫ２およびＲＡＮＫ３の２つのＲＡＮＫに分離されている。ＤＩＭＭおよびＲＡＮＫの数は、それぞれ２つ以外であってもよい。
【００２８】
図７は、メモリコントローラアドレス生成部１１のアドレス変換表に対応する回路の構成の例を示したものである。図７の例では、最若番、すなわち、システムアドレスの値が最も小さいシステムアドレスを保存するレジスタが、最若番システムアドレスレジスタとして備えられている。また、システムアドレス上限値、宛先メモリコントローラおよびコントローラアドレスの下限値にそれぞれ割り当てられたレジスタが備えられている。本実施形態のメモリコントローラアドレス生成部１１のアドレス変換表では、表の若番行ほど、若番のシステムアドレスが設定されている。この制約により、アドレス変換表内の最若番システムアドレスと、各行のシステムアドレスの老番アドレスを保持すれば、入力されたシステムアドレスに対応する行を求めることができる。そのため、アドレス変換表を保持するために必要なレジスタの数を削減することができ、回路規模を抑制することが可能になる。また、各アドレスの若番順に並べる制約をＣＨアドレス生成部およびＲＡＮＫアドレス生成部のアドレス変換表においても設定することで、必要なレジスタの数を同様に削減することができる。メモリコントローラアドレス生成部１１のアドレス変換表に対応する回路は、最若番システムアドレス、システムアドレス上限値、宛先メモリコントローラおよびコントローラアドレスの下限値以外のデータに対応するレジスタを備えていてもよい。
【００２９】
ＢＩＯＳ部２００は、情報システムの起動に関する動作および入出力の制御等の情報システムの基本動作を制御する機能を有する。ＢＩＯＳ部２００は、アドレスデコーダ設定部２１０とＢＩＯＳ障害状況判断部２２０をさらに備えている。
【００３０】
アドレスデコーダ設定部２１０は、メモリコントローラアドレス生成部１１、並びに、第１のメモリコントローラ部２０および第２のメモリコントローラ部３０の各ＣＨアドレス生成部および各ＲＡＮＫアドレス生成部のアドレス変換表のデータを生成する。アドレスデコーダ設定部２１０が生成した各アドレス変換表は、対応する部位に結合網５２を介してそれぞれ送られる。本実施形態のアドレスデコーダ設定部２１０の機能は、第１の実施形態のアドレス管理手段１に相当する。
【００３１】
ＢＩＯＳ障害状況判断部２２０は、サーバ部１００の稼働状態を監視する機能を有する。ＢＩＯＳ障害状況判断部２２０は、サーバ部１００を監視し、サーバ部１００で発生する障害を検出する。ＢＩＯＳ障害状況判断部２２０は、サーバ部１００において訂正が行えない障害の発生が発生する可能性が高い場合に、発生が予測される障害の情報を不揮発メモリ１３０に保存する。本実施形態のＢＩＯＳ障害状況判断部２２０は、訂正可能な障害としてＥＣＣ機能によるエラー訂正の回数を、記憶領域ごとに計測する。例えば、単位時間当たりの訂正可能な障害の発生回数があらかじめ設定された所定の基準を超えたとき、ＢＩＯＳ障害状況判断部２２０は、訂正不可能な障害、すなわち、訂正が行えない障害の発生の可能性が高いと判断する。また、ＢＩＯＳ障害状況判断部２２０は、障害の発生間隔や定常とは異なる異常が生じた場合に、訂正が行えない障害が発生する可能性が高いと判断してもよい。
【００３２】
ＯＳ部３００は、情報システムのオペレーティングシステムを備えている。ＯＳ部３００は、オペレーティングシステムとアプリケーションプログラムを基にサーバ部１００において各処理を実行する。アプリケーションプログラムは、情報システムに保存されていてもよく、また、通信ネットワークを介して読み出しが行われていてもよい。
【００３３】
障害監視部４００は、情報システムにおいて動作するオペレーティングシステムや、アプリケーションプログラムの処理状態を監視し異常を検出する機能を有する。障害監視部４００は、アプリ障害状況判断部４１０を備えている。アプリ障害状況判断部４１０は、サーバ部１００を監視し、サーバ部１００でオペレーティングシステムが動作する際や、アプリケーションプログラムが実行される際に発生する障害を検出する。アプリ障害状況判断部４１０は、サーバ部１００において訂正が行えない障害の発生が発生する可能性が高い場合に、発生が予測される障害の情報を不揮発メモリ１３０に保存する。
【００３４】
アプリ障害状況判断部４１０は、ＢＩＯＳ障害状況判断部２２０と同様な方法で、サーバ部１００で発生し得る障害を予測する。例えば、単位時間当たりの障害の発生回数があらかじめ設定された所定の基準を超えたとき、アプリ障害状況判断部４１０は、訂正が行えない障害の発生の可能性が高いと判断する。また、ＢＩＯＳ障害状況判断部２２０は、障害の発生間隔や定常とは異なる異常が生じた場合に、訂正が行えない障害が発生する可能性が高いと判断してもよい。本実施形態のＢＩＯＳ障害状況判断部２２０およびアプリ障害状況判断部４１０は、第１の実施形態の障害監視手段３に相当する。
【００３５】
本実施形態の情報システムの動作について説明する。始めに本実施形態の情報システムにおいて、システムアドレスを基にメモリ１２０の各記憶領域にアクセスが行われる際の動作について説明する。図８は、本実施形態の情報システムにおいて、システムアドレスを基にメモリ１２０の各記憶領域にアクセスが行われる際の動作フローの概要を示したものである。また、図９は、ＣＰＵパッケージ０においてシステムアドレス１７０ＧＢ対応する記憶領域へのアクセス要求が発生した場合の例について模式的に示したものである。
【００３６】
以下の説明では、アドレスの値を各階層の記憶領域における先頭アドレスからのデータ量に基づいて示している。アドレスの値を示すデータは、他の表現形式に基づくものであってもよい。また、説明で利用している［Ｘ、Ｙ）という表記は、アドレスのうちＸからＹまでの範囲を示し、Ｘは範囲に含み、Ｙは範囲に含まないことを示している。
【００３７】
ＣＰＵパッケージ０のＣＰＵコア１０は、システムアドレス１７０ＧＢへのデータの書き込みまたは読み出しを行う際に、アクセス要求を発生させる（ステップ１０１）。アクセス要求を発生させると、ＣＰＵパッケージ０のＣＰＵコア１０は、システムアドレス１７０ＧＢの情報とともにアクセス要求をメモリコントローラアドレス生成部１１に送る。ＣＰＵパッケージ０のメモリコントローラアドレス生成部１１は、アドレス変換表を参照し、システムアドレス１７０ＧＢに対応するメモリコントローラとコントローラアドレスの情報を抽出する（ステップ１０２）。図１０は、メモリコントローラアドレス生成部１１のアドレス変換表の例を示したものである。図１０のアドレス変換表は、システムアドレスと、システムアドレスに対応する宛先メモリコントローラと、コントローラアドレスの情報を互いに関連づけて保存している。また、アドレス変換表の情報は、システムアドレスの値が若いほど、アドレス変換表の上側になるように保存されている。
【００３８】
ＣＰＵパッケージ０のメモリコントローラアドレス生成部１１は、アドレス変換表を参照し、システムアドレス１７０ＧＢに、ＣＰＵパッケージ１のメモリコントローラ０およびコントローラアドレス１７０ＧＢが対応する情報を抽出する。システムアドレス１７０ＧＢは、図１０のアドレス変換表において３行目のＮｏ．３に相当する。システムアドレスに対応する情報が抽出すると、ＣＰＵパッケージ０は、ＣＰＵパッケージ１のメモリコントローラ０に、アクセス要求とコントローラアドレス１７０ＧＢの情報を送る。
【００３９】
ＣＰＵパッケージ１のメモリコントローラ０のＣＨアドレス生成部２１は、コントローラアドレスの情報等を受け取ると、アドレス変換表からコントローラアドレスに対応するメモリチャネルとＣＨアドレスの情報を抽出する（ステップ１０３）。図１１は、ＣＨアドレス生成部２１のアドレス変換表の例を示したものである。ＣＨアドレス生成部２１のアドレス変換表は、コントローラアドレスと、対応するメモリチャネルを示す宛先ＣＨと、ＣＨアドレスの情報を互いに関連づけて保存している。
【００４０】
ＣＨアドレス生成部２１は、アドレス変換表からコントローラアドレス１７０ＧＢに対応する記憶領域が、ＣＨ１のＣＨアドレス１０ＧＢとの情報を抽出する。コントローラアドレス１７０ＧＢは、図１１のアドレス変換表において２行目のＮｏ．２に相当する。ＣＨアドレス生成部２１は、アドレス変換表からコントローラアドレス１７０ＧＢ対応する宛先ＣＨとＣＨアドレスの情報を抽出すると、ＣＨ１に対応するＲＡＮＫアドレス生成部２５にアクセス要求とＣＨアドレスの情報を送る。
【００４１】
ＲＡＮＫアドレス生成部２５は、ＣＨアドレスの情報等を受け取ると、アドレス変換表からＣＨアドレスに対応するＲＡＮＫを示す宛先ＲＡＮＫと、ＲＡＮＫアドレスの情報を抽出する（ステップ１０４）。図１２は、ＲＡＮＫアドレス生成部２５のアドレス変換表の例を示したものである。ＲＡＮＫアドレス生成部２５のアドレス変換表は、ＣＨアドレスと、宛先ＲＡＮＫと、ＲＡＮＫアドレスの情報を互いに関連づけて保存している。
【００４２】
ＲＡＮＫアドレス生成部２５は、アドレス変換表からＣＨアドレス１０ＧＢに対応する領域が、ＲＡＮＫ１のＲＡＮＫアドレス２ＧＢに対応する情報を抽出する。ＣＨアドレス１０ＧＢは、図１２のアドレス変換表において２行目のＮｏ．２に相当する。ＲＡＮＫアドレス等の情報が抽出されると、各アドレス変換表を基に抽出された宛先ＣＨ、宛先ＲＡＮＫ、ＲＡＮＫアドレスに対応する領域に対してアクセスが行われデータの読み込みまたは書き込みが行われる（ステップ１０５）。すなわち、アクセス要求に対応する領域がＲＡＮＫ１のＲＡＮＫアドレス２ＧＢに対応している情報が抽出されているので、ＲＡＮＫ１のＲＡＮＫアドレス２ＧＢに対して、アクセスが行われデータの読み込みまたは書き込みが行われる。
【００４３】
次に、実施形態の情報システムにおいて、訂正不可能な障害の発生が予測される際に、障害の発生が予測される記憶領域のミラーリングを行う際の動作について説明する。図１３は、本実施形態の情報システムにおいて、訂正不可能な障害の発生が予測される際に、障害の発生が予測される記憶領域のミラーリングを行う際の動作フローを示したものである。
【００４４】
以下の説明では、ＣＰＵパッケージ１のメモリコントローラ０のＣＨ０配下のＤＩＭＭ０のＲＡＮＫ１内のＲＮＡＫアドレス［４ＧＢ、８ＧＢ）で訂正不可能な障害の発生が予測されている場合を例として説明を行う。また、以下の説明では、訂正不可能な障害の発生が予測されている領域の範囲を障害予測範囲と呼ぶ。
【００４５】
ＢＩＯＳ障害状況判断部２２０またはアプリ障害状況判断部４１０は、サーバ部１００の動作状態を監視し、訂正可能な障害が所定の基準以上、発生したことを検知した際に訂正不可障害の発生の可能性が高いと予測する（ステップ１１１）。所定の基準は、例えば、同一の記憶領域で単位時間あたりにＥＣＣ方式のエラーの訂正を行った回数として設定されている。
【００４６】
ＢＩＯＳ障害状況判断部２２０またはアプリ障害状況判断部４１０は、障害予測範囲で訂正不可の障害の発生の可能性を検知すると、訂正不可の障害の発生が予測される範囲の情報を不揮発メモリ１３０に保存する（ステップ１１２）。訂正不可の障害の発生が予測される範囲の情報を不揮発メモリ１３０に保存した後は、サーバ部１００は、アプリケーションプログラムの実行等の通常の動作を行う。
【００４７】
作業者等によってサーバ部１００が再起動されると（ステップ１１３）、アドレスデコーダ設定部２１０は、不揮発メモリ１３０に保存されている障害の発生が予測される範囲の情報を抽出する。不揮発メモリ１３０に障害の発生が予測される範囲の情報がないとき、アドレスデコーダ設定部２１０は、第１のメモリ４１および第２のメモリ４２の全記憶領域のうちシステム領域等を除いた全領域を使用できるように設定を行う。
【００４８】
不揮発メモリ１３０に障害の発生が予測される範囲の情報が保存されているとき、アドレスデコーダ設定部２１０は、障害の発生が予測される範囲のミラーリングを行うための設定を開始する。
【００４９】
障害の発生が予測される範囲のミラーリングを行うための設定を開始すると、始めにアドレスデコーダ設定部２１０は、サーバ部１００内の全てのメモリコントローラアドレス生成部１１のアドレス変換表の変更を行う（ステップ１１４）。ＣＰＵパッケージ１のメモリコントローラ０配下のメモリに障害発生範囲がある場合は、アドレスデコーダ設定部２１０は、対応する行のシステムアドレスとコントローラアドレスの範囲を障害予測範囲のメモリサイズ分、減算する。
【００５０】
図１４は、変換後のメモリコントローラアドレス生成部１１のアドレス変換表の例を示したものである。図１４では、障害予測範囲がメモリサイズ４ＧＢ分の例について説明しているので、アドレスデコーダ設定部２１０は、対応する行、すなわち、Ｎｏ．３の行のシステムアドレスとコントローラアドレスの範囲を４ＧＢ分、減算する。障害予測範囲に対応する行の減算を行うと、アドレスデコーダ設定部２１０は、後続の行、すなわち、Ｎｏ．４以降の行のシステムアドレスとコントローラアドレスを４ＧＢ分ずつ前に詰める。この変更によって、ＣＰＵパッケージ１のメモリコントローラに対応するコントローラアドレスの範囲は、図１４に示す通り［１２８ＧＢ、１９８ＧＢ）から［１２８ＧＢ、１８８ＧＢ）に変更される。
【００５１】
コントローラアドレスの範囲を変更すると、アドレスデコーダ設定部２１０は、ＣＰＵパッケージ１のメモリコントローラ０のＣＨアドレス生成部２１のアドレス変換表の変更を行う。アドレスデコーダ設定部２１０は、ＣＨアドレス生成部２１のアドレス変換表の障害予測範囲に対応する行に、複数のＣＨを設定し、障害予測範囲が他のメモリチャネルにミラーリングされるようにアドレス変換表の変更を行う（ステップ１１５）。
【００５２】
図１５は、変換後のＣＨアドレス生成部２１のアドレス変換表の例を示したものである。アドレスデコーダ設定部２１０は、ＣＨアドレス生成部２１のアドレス変換表の先頭行、すなわち、Ｎｏ．１の行に、先頭アドレスから障害予測範囲のメモリサイズ分に相当するアドレス範囲を示す行を設定する。障害予測範囲が４ＧＢ分、ＣＰＵパッケージ１のメモリコントローラ０の先頭アドレスが１２８ＧＢであるため、アドレスデコーダ設定部２１０は、アドレス変換表の先頭に［１２８ＧＢ、１３２ＧＢ）の範囲を示す行を設定する。
【００５３】
アドレスデコーダ設定部２１０は、［１２８ＧＢ、１３２ＧＢ）の範囲を示す行のメモリチャネルを示す宛先ＣＨの項目には、ＣＨ０とＣＨ１の両方を設定する。アドレス変換表の同じ行において、宛先ＣＨの項目に、ＣＨ０とＣＨ１の両方が設定されることで、ＣＰＵコア１０は、コントローラアドレス［１２８ＧＢ、１３２ＧＢ）にアクセスする際にＣＨ０とＣＨ１の両方にアクセスする。ＣＰＵコア１０がコントローラアドレス［１２８ＧＢ、１３２ＧＢ）にアクセスする際に、ＣＨ０とＣＨ１の両方にアクセスすることでミラーリングが可能になる。
【００５４】
先頭行のアドレス範囲を設定すると、アドレスデコーダ設定部２１０は、先頭行に含まれない範囲である［１３２ＧＢ、１８８ＧＢ）について、２つの領域に分割する。２つの領域に分割すると、アドレスデコーダ設定部２１０は、２つに分割した領域の内、前半の［１３２ＧＢ、１６０ＧＢ）をＣＨ０に割り当てＮｏ．２の行に設定する。また、アドレスデコーダ設定部２１０は、後半の［１６０ＧＢ、１８０ＧＢ）をＣＨ１に割り当てＮｏ．３の行に設定する。アドレスデコーダ設定部２１０は、Ｎｏ．２とＮｏ．３に対応する行のＣＨアドレスの範囲を、［４ＧＢ、３２ＧＢ）として設定している。
【００５５】
ＣＨアドレス生成部２１のアドレス変換表の変更を行うと、アドレスデコーダ設定部２１０は、ＣＰＵパッケージ１のメモリコントローラ０の配下にある２つのＲＡＮＫアドレス生成部のアドレス変換用の設定を行う（ステップ１１６）。図１５は、変更後のＲＡＮＫアドレス生成部２４およびＲＡＮＫアドレス生成部２５のアドレス変換表の例を示したものである。
【００５６】
アドレスデコーダ設定部２１０は、ＣＨアドレス［０ＧＢ、４ＧＢ）が障害予測範囲であるＲＡＮＫ１のＲＮＡＫアドレス［４ＧＢ、８ＧＢ）に対応するように、ＲＡＮＫアドレス生成部のアドレス変換表の先頭行に設定する。先頭行を設定すると、アドレスデコーダ設定部２１０は、ＣＨアドレス［４ＧＢ、８ＧＢ）が、ＲＮＡＫ１の残りの領域のＲＮＡＫアドレス［０ＧＢ、４ＧＢ）に対応するように、アドレス変換表の２行目、すなわち、Ｎｏ．２の行に設定する。ＲＮＡＫ１の設定を行うと、アドレスデコーダ設定部２１０は、残りのＲＮＡＫ０、ＲＮＡＫ２およびＲＮＡＫ３に対応する行を、ＣＨアドレス８ＧＢから昇順に、アドレス変換表の３行目、すなわち、Ｎｏ．３の行から順に設定する。
【００５７】
アドレスデコーダ設定部２１０がＲＡＮＫアドレス生成部のアドレス変換表の変更を終えると、ＣＰＵコア１０は、変更が行われた各アドレス変換表を用いてメモリへのアクセスを行う。障害予測範囲に対応するシステムアドレスが指定されたとき、ＣＰＵコア１０は、ＣＨアドレス生成部２１のアドレス変換表に基づいて、ＣＨ１とＣＨ２の２つの領域にアクセスしてミラーリングを行う（ステップ１１７）。このようにＣＰＵコア１０がメモリへのアクセスを行うことで、障害予測範囲に対応するメモリサイズ分のミラーリングが行われる。
【００５８】
ＣＰＵコア１０は、障害予測範囲のシステムアドレスに対応する領域からデータを読み込む際に、ＣＨアドレス生成部２１の先頭行に複数、設定されているＣＨのうちいずれかのＣＨからデータの読み込みを行う。先頭行に設定されているＣＨのうちいずれかのＣＨからデータの読み込みを行った際に、エラーを検出すると、ＣＰＵコア１０は、先頭行に設定されている他のＣＨからデータの読み出しを行う。また、ＣＰＵコア１０は、障害予測範囲のシステムアドレスに対応する領域にデータを書き込む際に、ＣＨアドレス生成部２１の先頭行に複数、設定されているＣＨのすべてにデータの書き込みを行う。
【００５９】
図１７は、上記のステップ１１１からステップ１１７の説明において、第１のメモリ４１と第２のメモリ４２のＲＡＮＫ１の一部の領域の間でミラーリングが行われた例を模式的に示したものである。図１７の例では、障害予測範囲のＣＨ０のＲＮＡＫ１の［４ＧＢ、８ＧＢ）と、正常な範囲のＣＨ１のＲＮＡＫ１の［４ＧＢ、８ＧＢ）の間でミラーリングが行われている。
【００６０】
本実施形態のアドレス変換表は、例えば、図１０、図１１および図１２に示すように各アドレス変換表に基づいて管理される記憶領域が段階的に狭くなるように階層化されて設定されている。例えば、図１０のメモリコントローラアドレス生成部１１のアドレス変換表では、コントローラアドレスの範囲がメモリサイズ６４ＧＢ分であるのに対し、図１１のＣＨアドレス生成部のアドレス変換表のＣＨアドレスの範囲は３２ＧＢ分になっている。また、図１２のＲＡＮＫアドレス生成部のアドレス変換表のＲＮＡＫアドレスの範囲は、メモリサイズ８ＧＢ分になっている。このように、各アドレス変換表が段階的に狭い領域を管理対象とすることで、入力されるシステムアドレスを基にしたメモリへのアクセス制御を、小さな領域を単位として行うことができる。また、このように、管理する記憶領域が段階的に狭くなるように階層化されたアドレス変換表を基にメモリへのアクセス制御を行うことで、障害の発生の恐れがある際に、より小さな領域を単位としてミラーリングを行うことが可能になる。
【００６１】
本実施形態の情報システムでは、ＢＩＯＳ障害状況判断部２２０およびアプリ障害状況判断部４１０が、メモリ１２０の訂正可能な障害の発生を監視し、訂正不可能な障害の発生が予測された際にメモリ１２０のデータのミラーリングが行われている。本実施形態の情報システムでは、ミラーリングを行う際に、ＣＨアドレス生成部２１の障害予測範囲に対応する宛先ＣＨに他のＣＨ番号を併せて設定し、ＣＰＵコア１０がメモリ１２０上の複数の領域へアクセスすることを可能にしている。複数の領域へアクセスが可能になることで、本実施形態の情報システムは、訂正不可能な障害の発生が予測される際にも、ミラーリングによってシステムの停止を生じさせずに稼働を継続することができる。
【００６２】
本実施形態の情報システムは、管理する対象の記憶領域が段階的に狭くなるように階層化されたメモリコントローラアドレス生成部、ＣＨアドレス生成部およびＲＡＮＫアドレス生成部にそれぞれアドレス変換表を有している。また、メモリコントローラアドレス生成部、ＣＨアドレス生成部およびＲＡＮＫアドレス生成部のアドレス変換表は、それぞれが管理する領域に対応するように設定されている。そのため、モリコントローラアドレス生成部、ＣＨアドレス生成部およびＲＡＮＫアドレス生成部のアドレス変換表は、管理する領域が段階的に狭くなり、ＲＡＮＫアドレス生成部の管理領域が最も狭くなるように階層化されている。
【００６３】
本実施形態の情報システムは、管理領域が最も狭いＲＡＮＫを、障害予測範囲に基づいてさらに分割し、障害予測範囲のメモリサイズに相当する分のみミラーリングが行われるように各アドレス変換表の設定が行われている。そのため、本実施形態の情報システムでは、ミラーリングを行いつつ、ミラーリングに必要な記憶領域を最小化し使用可能な記憶容量の減少を抑制することができる。その結果、本実施形態の情報システムは、訂正不可能な障害の発生が予測される際にも、記憶容量の減少を抑制しつつミラーリングによって安定した稼働を継続することができる。すなわち、本実施形態の情報システムは、訂正可能な障害が多発し、メモリモジュール内において、訂正不可障害の発生が予測される場合に、部分的なミラーリングによって記憶領域の総容量の減少を抑えつつ、保守交換までの可用性を確保することができる。以上より、本実施形態の障害の発生が予測される記憶領域がある場合においても、使用可能な記憶容量を効率的に確保しつつ動作を継続することができる。
【００６４】
（第３の実施形態）
本発明の第３の実施形態について詳細に説明する。第２の実施形態の情報システムのＣＰＵコアは、ＣＨアドレス生成部の先頭行に２つのチャネルが設定されているときに、２つのメモリチャネルに対応する領域にアクセスを行ってミラーリングを実施していた。そのような構成に代えて、本実施形態の情報システムのＣＰＵコアは、ＲＡＮＫ生成部のアドレス変換用の同じ行に２つのＲＡＮＫが設定されていたときに、同じデータを同一メモリチャネル内の２つのＲＮＡＫに書き込むことでミラーリングを行う。
【００６５】
本実施形態の情報システムの構成は、第２の実施形態と同様である。そのため、以下の説明において、構成に係る説明では、図２乃至図６を参照して行う。また、本実施形態の情報システムにおいて、通常時の動作は図８のステップ１０１からステップ１０５までの動作と同様である。よって、以下では、訂正不可能な障害の発生が予測される際に、障害の発生が予測される記憶領域のミラーリングを行う際の動作についてのみ説明する。
【００６６】
本実施形態の情報システムにおいて、訂正不可能な障害の発生が予測される際に、障害の発生が予測される記憶領域のミラーリングを行う際の動作について説明する。図１８は、本実施系の情報システムにおいて、訂正不可能な障害の発生が予測される際に、障害の発生が予測される記憶領域のミラーリングを行う際の動作フローの概要を示したものである。
【００６７】
以下の説明では、第２の実施形態における説明と同様に、ＣＰＵパッケージ１のメモリコントローラ０のチャネル０配下のＤＩＭＭ０のＲＡＮＫ１内のＲＮＡＫアドレス［４ＧＢ、８ＧＢ）で訂正不可能な障害の発生が予測されている場合を例として説明を行う。
【００６８】
ＢＩＯＳ障害状況判断部２２０またはアプリ障害状況判断部４１０は、サーバ部１００の動作状態を監視し、訂正可能な障害が所定の基準以上、発生したことを検知した際に訂正不可障害の発生を予測する（ステップ１２１）。所定の基準は、例えば、同一の記憶領域で単位時間あたりに、ＥＣＣ方式のエラーの訂正を行った回数として設定されている。
【００６９】
ＢＩＯＳ障害状況判断部２２０またはアプリ障害状況判断部４１０は、訂正不可の障害の発生を予測すると、障害予測範囲の情報を不揮発メモリ１３０に保存する（ステップ１２２）。
【００７０】
作業者等によってサーバ部１００が再起動されると（ステップ１２３）、アドレスデコーダ設定部２１０は、不揮発メモリ１３０を参照し、障害予測範囲の情報を抽出して、障害の発生が予測される範囲のミラーリングの設定を開始する。
【００７１】
障害の発生が予測される範囲のミラーリングを行うための設定を開始すると、始めに、アドレスデコーダ設定部２１０は、サーバ部１００内の全てのメモリコントローラアドレス生成部１１のアドレス変換表の変更を行う（ステップ１２４）。ＣＰＵパッケージ１のメモリコントローラ０配下のメモリに障害発生範囲がある場合は、アドレスデコーダ設定部２１０は、対応する行のシステムアドレスとコントローラアドレスの範囲を障害予測範囲のメモリサイズ分、減算する。
【００７２】
図１９は、変換後のメモリコントローラアドレス生成部１１のアドレス変換表の例を示したものである。図１９では、障害予測範囲がメモリサイズ４ＧＢ分の例について説明しているので、アドレスデコーダ設定部２１０は、対応する行、すなわち、Ｎｏ．３の行のシステムアドレスとコントローラアドレスの範囲を４ＧＢ分、減算する。障害予測範囲に対応する行の減算を行うと、アドレスデコーダ設定部２１０は、後続の行、すなわち、Ｎｏ．４以降の行のシステムアドレスとコントローラアドレスを４ＧＢ分ずつ前に詰める。この変更によって、ＣＰＵパッケージ１のメモリコントローラに対応するコントローラアドレスの範囲は、図１９に示す通り［１２８ＧＢ、１９８ＧＢ）から［１２８ＧＢ、１８８ＧＢ）に変更される。
【００７３】
コントローラアドレスの範囲を変更すると、アドレスデコーダ設定部２１０は、ＣＰＵパッケージ１のメモリコントローラ０のＣＨアドレス生成部２１のアドレス変換表の変更を行う（ステップ１２５）。図２０は、変換後のＣＨアドレス生成部２１のアドレス変換表の例を示したものである。アドレスデコーダ設定部２１０は、ＣＨアドレス生成部２１のアドレス変換表において、障害予測範囲が属するメモリチャネルに対応するコントローラアドレスおよびＣＨアドレスの範囲を、障害予測範囲のメモリサイズの４ＧＢ分、減算する。図２０の例では、Ｎｏ．１の行のコントローラアドレスおよびＣＨアドレスをそれぞれ４ＧＢ分、減算している。コントローラアドレスおよびＣＨアドレスの範囲を、障害予測範囲のメモリサイズ分、減算すると、アドレスデコーダ設定部２１０は、後続の行、すなわち、Ｎｏ．２の行のコントローラアドレスを前詰めする。
【００７４】
ＣＨアドレス生成部２１のアドレス変換表を変更すると、アドレスデコーダ設定部２１０は、ＲＮＡＫアドレス生成部のアドレス変換表の設定を変更する（ステップ１２６）。図２１は、変更後のＲＡＮＫアドレス生成部のアドレス変換表の例を示したものである。アドレスデコーダ設定部２１０は、ＣＨアドレス［０ＧＢ、４ＧＢ）が障害予測範囲であるＲＡＮＫ１のＲＮＡＫアドレス［４ＧＢ、８ＧＢ）に対応するように、ＲＡＮＫアドレス生成部のアドレス変換表の先頭行に設定する。先頭行を設定する際に、アドレスデコーダ設定部２１０は、障害予測範囲に該当するＲＮＡＫ１に加えて、ＲＮＡＫ１以外の任意のＲＮＡＫを少なくとも１つ先頭行に設定する。図２１の例では、ＲＮＡＫ１に加えてＲＡＮＫ３が設定されている。
【００７５】
先頭行のＲＡＮＫの設定を行うと、アドレスデコーダ設定部２１０は、ＲＡＮＫ１およびＲＡＮＫ３の残りのＲＡＮＫアドレスである［０ＧＢ、４ＧＢ）を、アドレス変換表の２行目と３行目、すなわち、Ｎｏ．２とＮＯ．３の行にそれぞれ設定する。ＲＡＮＫ１およびＲＡＮＫ３の残りのＲＡＮＫアドレスを設定すると、アドレスデコーダ設定部２１０は、ＲＡＮＫ０およびＲＡＮＫ２のＲＡＮＫアドレスを、ＣＨアドレス１２ＧＢから昇順でアドレス変換表の４行目、すなわち、Ｎｏ．４の行から順に設定する。
【００７６】
アドレスデコーダ設定部２１０がＲＡＮＫアドレス生成部のアドレス変換表の変更を終えると、ＣＰＵコア１０は、変更が行われた各アドレス変換表を用いてメモリへのアクセスを行う。障害予測範囲に対応するシステムアドレスが指定されたとき、ＣＰＵコア１０は、ＲＡＮＫアドレス生成部のアドレス変換表に基づいて、同一メモリチャネル内のＲＡＮＫ１およびＲＡＮＫ３の２つの領域にアクセスしてミラーリングを行う（ステップ１２７）。このようにＣＰＵコア１０が同一メモリチャネル内の２つのＲＡＮＫへのアクセスを行うことで、障害予測範囲に対応するメモリサイズ分のミラーリングが行われる。
【００７７】
ＣＰＵコア１０は、障害予測範囲のシステムアドレスに対応する領域からデータを読み込む際に、ＲＡＮＫアドレス生成部の先頭行に複数、設定されているＲＡＮＫのうちいずれかのＲＡＮＫからデータの読み込みを行う。先頭行に設定されているＲＡＮＫのうちいずれかのＲＡＮＫからデータの読み込みを行った際に、エラーを検出すると、ＣＰＵコア１０は、先頭行に設定されている他のＲＡＮＫからデータの読み出しを行う。また、ＣＰＵコア１０は、障害予測範囲のシステムアドレスに対応する領域にデータを書き込む際に、ＲＡＮＫ生成部の先頭行に複数、設定されているＲＡＮＫのすべてにデータの書き込みを行う。
【００７８】
図２２は、上記のステップ１２１からステップ１２７の説明において、第１のメモリ４１のＲＡＮＫ１とＲＡＮＫ３の一部の領域の間でミラーリングが行われた例を模式的に示したものである。図２２の例では、障害予測範囲のＣＨ０のＲＮＡＫ１の［４ＧＢ、８ＧＢ）と、正常な範囲のＣＨ０のＲＮＡＫ３の［４ＧＢ、８ＧＢ）の間でミラーリングが行われている。
【００７９】
本実施形態の情報システムは、第２の実施形態の情報システムと同様の効果を有する。また、本実施形態の情報システムは、同じメモリチャネル内でミラーリングを行っているので、障害予測範囲にアクセスするときに他のＣＨ制御部を経由しない。そのため、本実施形態の情報システムは、効率的に記憶領域へのアクセスを行うことができる。また、本実施形態の情報システムは、同じメモリチャネル内でミラーリングを行っているので、メモリモジュールが１つの場合においても適用することができる。
【００８０】
第２および第３の実施形態では、それぞれ１つの障害予測範囲について、ミラーリングを行っていたが、複数の障害予測範囲についてミラーリングを行ってもよい。そのような構成とする場合には、例えば、２つ目に検出された障害予測範囲を対応するアドレス変換表の２行目に設定し、以下、順に設定を行うことができる。また、第２の実施形態では異なるメモリモジュール間でミラーリングを行い、第３の実施形態では同一のメモリモジュール間でミラーリングを行っている。そのような構成に代えて複数の障害予測範囲についてミラーリングを行う際には、異なるメモリモジュール間と同一のメモリモジュール間のミラーリングが混在していてもよい。
【符号の説明】
【００８１】
１    アドレス管理手段
２    制御手段
３    障害監視手段
１０    ＣＰＵコア
１１    メモリコントローラアドレス生成部
２０    第１のメモリコントローラ部
２１    ＣＨアドレス生成部
２２    第１のＣＨ制御部
２３    第２のＣＨ制御部
２４    ＲＡＮＫアドレス生成部
２５    ＲＡＮＫアドレス生成部
３０    第２のメモリコントローラ部
３１    ＣＨアドレス生成部
３２    第１のＣＨ制御部
３３    第２のＣＨ制御部
３４    ＲＡＮＫアドレス生成部
３５    ＲＡＮＫアドレス生成部
４１    第１のメモリ
４２    第２のメモリ
５１    結合網
５２    結合網
１００    サーバ部
１１０    ＣＰＵパッケージ
１２０    メモリ
１３０    不揮発メモリ
２００    ＢＩＯＳ部
２１０    アドレスデコーダ設定部
２２０    ＢＩＯＳ障害状況判断部
３００    ＯＳ部
４００    障害監視部
４１０    アプリ障害状況判断部
【図１】
2017126200.tif 000003
【図２】
2017126200.tif 000004
【図３】
2017126200.tif 000005
【図４】
2017126200.tif 000006
【図５】
2017126200.tif 000007
【図６】
2017126200.tif 000008
【図７】
2017126200.tif 000009
【図８】
2017126200.tif 000010
【図９】
2017126200.tif 000011
【図１０】
2017126200.tif 000012
【図１１】
2017126200.tif 000013
【図１２】
2017126200.tif 000014
【図１３】
2017126200.tif 000015
【図１４】
2017126200.tif 000016
【図１５】
2017126200.tif 000017
【図１６】
2017126200.tif 000018
【図１７】
2017126200.tif 000019
【図１８】
2017126200.tif 000020
【図１９】
2017126200.tif 000021
【図２０】
2017126200.tif 000022
【図２１】
2017126200.tif 000023
【図２２】
2017126200.tif 000024