(57)【特許請求の範囲】
【請求項１】
処理装置からの論理アドレスをメモリ素子選択アドレスとメモリ素子アドレスとを有する実アドレスに変換して複数のメモリ素子をアクセスするメモリ制御方法に於いて、
領域数Ｎの領域に分割された論理アドレス空間をもつ前記処理装置の論理アドレスをウェイ数Ｗで決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Ｗの指定によりメモリ構成を再構成可能なインタリーブ制御ステップと、
前記メモリ素子の異常を検出した際に、前記複数のメモリ素子で構成される実アドレス空間を、前記領域数Ｎに前記インタリーブ制御の最大ウェイ数Ｗｍａｘを乗じた（Ｎ×Ｗｍａｘ）領域に分割して利用可能情報を記録した実アドレス領域利用情報格納部に前記メモリ素子の異常が検出された個所を含む領域が利用できないことを示す利用禁止情報を記録する実アドレス領域管理ステップと、
前記インタリーブ制御ステップのウェイ数Ｗで決まるメモリ構成に対応して、前記実アドレス領域利用情報格納部に記録した利用禁止情報に基づいて前記メモリ素子の利用できない領域を含まないように前記論理アドレス空間における各領域の利用可能情報を有する論理アドレス領域利用情報を生成して前記処理装置が利用する前記論理アドレス空間の領域を決定する論理アドレス領域管理ステップと、
を備えたことを特徴とするメモリ制御方法。
【請求項２】
請求項１記載のメモリ制御方法に於いて、前記インタリーブ制御ステップは、２のべき乗数となる異なるウェイ数Ｗのいずれか指定によりメモリ構成を再構成することを特徴とするメモリ制御方法。
【請求項３】
請求項１記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数１又は２の指定によりメモリ再構成が可能であり、
前記実アドレス領域管理ステップは、
素子選択アドレスの下位２ビット、
実アドレスの最上位ビット及び
実アドレスの最下位ビット
の４ビットアドレスにより前記ＣＰＵ論理アドレス空間の領域数Ｎに前記インタリーブ制御の最大ウェイ数２を乗じて（Ｎ×２）分割された各領域に利用許可情報又は利用禁止情報を記録した実アドレス領域利用情報情報を生成し、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが１ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報の
素子選択アドレスの下位２ビット及び
実アドレスの最下位ビット
の３ビットアドレスによりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した１ウェイ論理アドレス領域利用情報を作成して前記ＣＰＵが利用する前記論理アドレス空間の領域を決定し、
また前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが２ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報の
素子選択アドレスの下位第２ビット、
実アドレスの最下位ビット及び
実アドレスの最上位ビット
の３ビットアドレスによりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した２ウェイ論理アドレス領域利用情報を作成して前記処理装置が利用する前記論理アドレス空間の領域を決定することを特徴とするメモリ制御方法。
【請求項４】
請求項１記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数１又は２の指定によりメモリ再構成が可能であり、
前記実アドレス領域管理ステップは、
素子選択アドレスの下位２ビット、
実アドレスの最上位ビット及び
実アドレスの最下位ビット
の４ビットアドレスにより前記処理装置論理アドレス空間の領域数Ｎに前記インタリーブ制御の最大ウェイ数２を乗じて（Ｎ×２）分割された各領域に利用許可情報又は利用禁止情報を記録した実アドレス領域利用情報を生成することを特徴とするメモリ制御方法。
【請求項５】
請求項１記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数１又は２の指定によりメモリ再構成が可能であり、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが１ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報の
素子選択アドレスの下位２ビット及び
実アドレスの最下位ビット
の３ビットアドレスによりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した１ウェイ論理アドレス領域利用情報を作成して前記処理装置が利用する前記論理アドレス空間の領域を決定することを特徴とするメモリ制御方法。
【請求項６】
請求項１記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数１又は２の指定によりメモリ再構成が可能であり、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが２ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報の
素子選択アドレスの下位第２ビット、
実アドレスの最下位ビット及び
実アドレスの最上位ビット
の３ビットアドレスによりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した２ウェイ論理アドレス領域利用情報を作成して前記処理装置が利用する前記論理アドレス空間の領域を決定することを特徴とするメモリ制御方法。
【請求項７】
請求項１記載のメモリ制御方法に於いて、
前記インタリーブ制御ステップは、ウェイ数１、２又は４の指定によりメモリ再構成可能であり、
前記実アドレス領域管理ステップは、
素子選択アドレスの下位２ビット、
実アドレスの最上位ビット及び
実アドレスの下位２ビット
の５ビットアドレスにより前記ＣＰＵ論理アドレス空間の領域数Ｎに前記インタリーブ制御の最大ウェイ数４を乗じて（Ｎ×４）分割された各領域に利用許可情報又は利用禁止情報を記録した実アドレス領域利用情報を生成し、
前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが１ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報の
素子選択アドレスの下位２ビット及び
実アドレスの最下位ビット
の３ビットアドレスによりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した１ウェイ論理アドレス領域利用情報を作成して前記処理装置が利用する前記論理アドレス空間の領域を決定し、
また前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが２ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報の
素子選択アドレスの下位第２ビット、
実アドレスの最下位ビット及び
実アドレスの最上位ビット
の３ビットアドレスによりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した２ウェイ論理アドレス領域利用情報を作成して前記ＣＰＵが利用する前記論理アドレス空間の領域を決定し、
更に前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが４ウェイで決まるメモリ構成の場合、前記実アドレス領域利用表の
実アドレスの下位２ビット及び
実アドレスの最上位ビット
の３ビットアドレスによりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した４ウェイ論理アドレス領域利用情報を作成して前記ＣＰＵが使用する前記論理アドレス空間の領域を決定することを特徴とするメモリ制御方法。
【請求項８】
処理装置からの論理アドレスをメモリ素子選択アドレスとメモリ素子アドレスとを有する実アドレスに変換して複数のメモリ素子をアクセスするメモリ制御装置のコンピュータに、
領域数Ｎの領域に分割された論理アドレス空間をもつ前記処理装置の論理アドレスをウェイ数Ｗで決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Ｗの指定によりメモリ構成を再構成可能なインタリーブ制御ステップと、
前記メモリ素子の異常を検出した際に、前記複数のメモリ素子で構成される実アドレス空間を、前記領域数Ｎに前記インタリーブ制御の最大ウェイ数Ｗｍａｘを乗じた（Ｎ×Ｗｍａｘ）領域に分割して利用可能情報を記録した実アドレス領域利用情報格納部に前記メモリ素子の異常が検出された個所を含む領域が利用できないことを示す利用禁止情報を記録する実アドレス領域管理ステップと、
前記インタリーブ制御ステップのウェイ数Ｗで決まるメモリ構成に対応して、前記実アドレス領域利用情報格納部に記録した利用禁止情報に基づいて前記メモリ素子の利用できない領域を含まないように前記論理アドレス空間における各領域の利用可能情報を有する論理アドレス領域利用情報を生成して前記処理装置が利用する前記論理アドレス空間の領域を決定する論理アドレス領域管理ステップと、
を実行させることを特徴とするメモリ制御プログラム。
【請求項９】
処理装置からの論理アドレスをメモリ素子選択アドレスとメモリ素子アドレスとを有する実アドレスに変換して複数のメモリ素子をアクセスするメモリ制御装置に於いて、
領域数Ｎの領域に分割された論理アドレス空間をもつ前記処理装置の論理アドレスをウェイ数Ｗで決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Ｗの指定によりメモリ構成を再構成可能なインタリーブ制御部と、
前記メモリ素子の異常を検出した際に、前記複数のメモリ素子で構成される実アドレス空間を、前記領域数Ｎに前記インタリーブ制御の最大ウェイ数Ｗｍａｘを乗じた（Ｎ×Ｗｍａｘ）領域に分割して利用可能情報を記録した実アドレス領域利用情報格納部に前記メモリ素子の異常が検出された個所を含む領域が利用できないことを示す利用禁止情報を記録する実アドレス領域管理部と、
前記インタリーブ制御ステップのウェイ数Ｗで決まるメモリ構成に対応して、前記実アドレス領域利用情報格納部に記録した利用禁止情報に基づいて前記メモリ素子の利用できない領域を含まないように前記論理アドレス空間における各領域の利用可能情報を有する論理アドレス領域利用情報を生成して前記処理装置が利用する前記論理アドレス空間の領域を決定する論理アドレス領域管理部と、
を備えたことを特徴とするメモリ制御装置。
【請求項１０】
処理装置からの論理アドレスをメモリ素子選択アドレスとメモリ素子アドレスとを有する実アドレスに変換して複数のメモリ素子をアクセスを制御する情報処理装置に於いて、
領域数Ｎの領域に分割された論理アドレス空間をもつ前記処理装置の論理アドレスをウェイ数Ｗで決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Ｗの指定によりメモリ構成を再構成可能なインタリーブ制御部と、
前記メモリ素子の異常を検出した際に、前記複数のメモリ素子で構成される実アドレス空間を、前記領域数Ｎに前記インタリーブ制御の最大ウェイ数Ｗｍａｘを乗じた（Ｎ×Ｗｍａｘ）領域に分割して利用可能情報を記録した実アドレス領域利用情報格納部に前記メモリ素子の異常が検出された個所を含む領域が利用できないことを示す利用禁止情報を記録する実アドレス領域管理部と、
前記インタリーブ制御ステップのウェイ数Ｗで決まるメモリ構成に対応して、前記実アドレス領域利用情報格納部に記録した利用禁止情報に基づいて前記メモリ素子の利用できない領域を含まないように前記論理アドレス空間における各領域の利用可能情報を有する論理アドレス領域利用情報を生成して前記処理装置が利用する前記論理アドレス空間の領域を決定する論理アドレス領域管理部と、
を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリモジュールで構成されたメモリをアクセスするメモリ制御方法、プログラム及び装置に関し、特に、メモリモジュールの異常箇所に基づきＣＰＵのアドレス空間に利用禁止領域を設定するメモリ制御方法、プログラム及び装置に関する。
【背景技術】
【０００２】
従来、マルチＣＰＵ構成のコンピュータシステムに利用される主記憶などの記憶装置にあっては、独立してアクセス可能なメモリ素子である複数のメモリモジュール（メモリバンクともいう）をボードに実装して記憶装置を構築しており、このように記憶装置に利用されるメモリモジュールは、メモリモジュールの生産過程によって生ずる品質のばらつきは不回避である。【０００３】
このメモリモジュールの生産上の品質のばらつきにより、記憶装置に実装して利用している間に、一部のアドレスについてデータの読み書きを正常に行うことができなくなる異常が発生する場合がある。メモリ異常を検出した場合には、メモリ異常を起しているメモリモジュールを特定し、システムから異常部分を排除することで、システムを安定運用することが重要である。【０００４】
また、一度異常と認識したメモリモジュールについては、例えインタリーブ制御のウェイ数の変更によりメモリ構成が変わっても、異常メモリモジュールが交換されるまではシステムに組み込まないようにすることが、運用システムにおける堅牢性の向上、運用後に故障が起こったときの故障保守作業時間、保守にかかるコストの節減のために必要なことである。【０００５】
そこで従来の記憶装置にあっては、メモリコントローラのハードウェア機能により、メモリ異常を検出した場合に、メモリ異常を起しているメモリモジュールを特定し、システムから異常部分を排除するようにしている。即ち、メモリコントローラは、ＣＰＵから見えるメモリモジュールのアドレス空間を適当な大きさの領域に分割し、メモリモジュールの異常を検出した場合には、異常個所に対応した領域を利用禁止に設定し、ＣＰＵにより利用可能な領域に異常個所を含む領域を組み込まないようにメモリを縮退するメモリ制御を行っている。
【特許文献１】特開平２−１６６５４３号公報
【特許文献２】特開平４−１６５５４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のメモリ制御にあっては、メモリ異常を起しているメモリモジュールを特定してシステムに組み込まないように縮退する機能をハードウェア機能により実装していたため、実装回路の増大によるコストアップおよびサイズ増大が問題となっている。【０００７】
またＣＰＵから見えるメモリモジュールのアドレス空間を適当な大きさの領域に分割してＣＰＵで利用可能な領域を管理する従来のメモリ制御方法にあっては、インタリーブ制御におけるウェイ数の変更によりメモリ構成を変更した場合に対応することができない。【０００８】
例えばインタリーブ制御のウェイ数は１ウェイ（インタリーブなし）から２ウェイのメモリ構成に変更した場合、メモリモジュールの実アドレスとＣＰＵから見える論理アドレスとの対応関係も変更されることになり、例えばメモリ構成変更前の異常個所のアドレスはｍ番目の領域に対応していたものが、メモリ構成変更後は別のｎ番目の領域に対応するといったことが発生する。【０００９】
このためメモリ構成を変更した後に、改めてメモリモジュールの異常箇所を特定し、構成変更後のＣＰＵから見えるアドレス空間の分割領域について、メモリモジュールの異常個所に対応した領域を判別して利用禁止に設定し、ＣＰＵの利用領域に異常個所を含む領域を組み込まないようにする領域管理を必要とし、構成変更前の領域利用情報を構成変更後に引き継ぐことができず、メモリ再構成後のＣＰＵ利用可能領域を決定するための処理負担が増大し、メモリ構成変更後の処理再開に時間がかかる問題がある。【００１０】
本発明は、ＣＰＵから見たメモリアドレス空間を分割した領域の利用情報をメモリ構成を変更した際に引き継いで構成変更後の領域利用情報を簡単且つ迅速に設定可能とするメモリ制御装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
（方法）
本発明はメモリ制御方法を提供する。即ち本発明は、論理アドレスを実アドレスに変換してメモリをアクセスするメモリ制御方法に於いて、
メモリの異常を検出した際に、メモリの実アドレス空間の利用可能情報を記録した実アドレス領域利用表の中の、異常が検出されたメモリに対応する領域に利用禁止情報を記録するステップと、
実アドレス領域利用表から、論理アドレス空間における各領域の利用可能情報又は利用禁止情報を記録した論理アドレス領域利用表を生成するステップと、
を備えたことを特徴とする。【００１２】
本発明はメモリ制御方法を提供する。即ち本発明は、ＣＰＵからの論理アドレスを素子選択アドレスとメモリ素子アドレスから構成される実アドレスに変換して複数のメモリ素子をアクセスするメモリ制御方法に於いて、
Ｎ領域に分割された論理アドレス空間を利用したＣＰＵの論理アドレスをウェイ数Ｗで決まる実アドレスに変換して複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Ｗの指定によりメモリ構成を再構成可能なインタリーブ制御ステップと、
複数のメモリ素子で構成される実アドレス空間を、ＣＰＵ論理アドレス空間の領域数Ｎにインタリーブ制御の最大ウェイ数Ｗｍａｘを乗じた（Ｎ×Ｗｍａｘ）領域に分割して利用可能情報を記録した全ウェイ数に共通な実アドレス領域利用表を作成し、メモリ素子の異常を検出した際に実アドレス領域利用表の異常個所を含む領域に利用禁止情報を記録する実アドレス領域管理ステップと、
インタリーブ制御ステップのウェイ数Ｗで決まるメモリ構成に対応して、実アドレス領域利用表から論理アドレス空間における各領域に利用可能情報又は利用禁止情報を記録した論理アドレス領域利用表を生成してＣＰＵが利用する論理アドレス空間の領域を決定する論理アドレス領域管理ステップと、
を備えたことを特徴とする。【００１３】
ここで、インタリーブ制御ステップは、２のべき乗数となる異なるウェイ数Ｗのいずれか指定によりメモリ構成を再構成する。【００１４】
（１−２ウェイ切替）
インタリーブ制御ステップがウェイ数１又は２の指定によりメモリ再構成が可能な場合、
実アドレス領域管理ステップは（括弧内は例えばＣＰＵアドレスが１０ビット、メモリ素子アドレスがＡ７〜Ａ０の８ビット、素子選択アドレスがＢ１〜Ｂ０の２ビットの場合）、
素子選択アドレスの下位２ビット（Ｂ１  Ｂ０）、
実アドレスの最上位ビット（Ａ７）及び
実アドレスの最下位ビット（Ａ０）
の４ビットアドレス（Ｂ１  Ｂ０  Ａ７  Ａ０）によりＣＰＵ論理アドレス空間の領域数Ｎにインタリーブ制御の最大ウェイ数２を乗じて（Ｎ×２）分割された各領域に利用許可情報又は利用禁止情報を記録した実アドレス領域利用表を生成し、
論理アドレス領域管理ステップは、インタリーブ制御ステップが１ウェイで決まるメモリ構成の場合、実アドレス領域利用表の
素子選択アドレスの下位２ビット（Ｂ１  Ｂ０）及び
実アドレスの最上位ビット（Ａ７）
の３ビットアドレス（Ｂ１  Ｂ０  Ａ７）によりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した１ウェイ論理アドレス領域利用表を作成してＣＰＵが利用する論理アドレス空間の領域を決定し、
また論理アドレス領域管理ステップは、インタリーブ制御ステップが２ウェイで決まるメモリ構成の場合、実アドレス領域利用表の
素子選択アドレスの下位第２ビット（Ｂ１）、
実アドレスの最下位ビット（Ａ０）及び
実アドレスの最上位ビット（Ａ７）
の３ビットアドレス（Ｂ１  Ａ０  Ａ７）によりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した２ウェイ論理アドレス領域利用表を作成して前記ＣＰＵが利用する論理アドレス空間の領域を決定することを特徴とするメモリ制御方法。【００１５】
（１−２−４ウェイ切替）
インタリーブ制御ステップが、ウェイ数１、２又は４の指定によりメモリ再構成可能な場合、
実アドレス領域管理ステップは（括弧内は例えばＣＰＵアドレスが１０ビット、メモリ素子アドレスがＡ７〜Ａ０の８ビット、素子選択アドレスがＢ１〜Ｂ０の２ビットの場合）、
素子選択アドレスの下位２ビット（Ｂ１  Ｂ０）、
実アドレスの最上位ビット（Ａ７）及び
実アドレスの最下位２ビット（Ａ１  Ａ０）
の５ビットアドレス（Ｂ１  Ｂ０  Ａ７  Ａ１  Ａ０）によりＣＰＵ論理アドレス空間の領域数Ｎにインタリーブ制御の最大ウェイ数４を乗じて（Ｎ×４）分割された各領域に利用許可情報又は利用禁止情報を記録した実アドレス領域利用表を生成し、
論理アドレス領域管理ステップは、インタリーブ制御ステップが１ウェイで決まるメモリ構成の場合、実アドレス領域利用表の
素子選択アドレスの下位２ビット（Ｂ１  Ｂ０）及び
実アドレスの最上位ビット（Ａ７）
の３ビットアドレス（Ｂ１  Ｂ０  Ａ７）によりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した１ウェイ論理アドレス領域利用表を作成してＣＰＵが利用する論理アドレス空間の分割領域を決定し、
また論理アドレス領域管理ステップは、インタリーブ制御ステップが２ウェイで決まるメモリ構成の場合、実アドレス領域利用表の
素子選択アドレスの下位第２ビット（Ｂ１）、
実アドレスの最下位ビット（Ａ０）及び
実アドレスの最上位ビット（Ａ７）
の３ビットアドレス（Ｂ１  Ａ０  Ａ７）によりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した２ウェイ論理アドレス領域利用表を作成してＣＰＵが利用する論理アドレス空間の分割領域を決定し、
更に論理アドレス領域管理ステップは、インタリーブ制御ステップが４ウェイで決まるメモリ構成の場合、実アドレス領域利用表の
実アドレスの下位２ビット（Ａ１  Ａ０）及び
実アドレスの最上位ビット（Ａ７）
の３ビットアドレス（Ａ１  Ａ０  Ａ７）によりＮ分割された各領域に利用許可情報又は利用禁止情報を記録した４ウェイ論理アドレス領域利用表を作成してＣＰＵが利用する論理アドレス空間の分割領域を決定する。【００１６】
（プログラム）
本発明はメモリ制御プログラムを提供する。本発明のメモリ制御プログラムは、ＣＰＵからの論理アドレスを素子選択アドレスとメモリ素子アドレスから構成される実アドレスに変換して複数のメモリ素子をアクセスするメモリ制御装置のコンピュータに、
Ｎ領域に分割された論理アドレス空間を利用したＣＰＵの論理アドレスをウェイ数Ｗで決まる実アドレスに変換して複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Ｗの指定によりメモリ構成を再構成可能なインタリーブ制御ステップと、
複数のメモリ素子で構成される実アドレス空間を、ＣＰＵ論理アドレス空間の領域数Ｎにインタリーブ制御の最大ウェイ数Ｗｍａｘを乗じた（Ｎ×Ｗｍａｘ）領域に分割して利用可能情報を記録した全ウェイ数に共通な実アドレス領域利用表を作成し、メモリ素子の異常を検出した際に実アドレス領域利用表の異常個所を含む領域に利用禁止情報を記録する実アドレス領域管理ステップと、
インタリーブ制御ステップのウェイ数Ｗで決まるメモリ構成に対応して、実アドレス領域利用表から論理アドレス空間における各領域に利用可能情報又は利用禁止情報を記録した論理アドレス領域利用表を生成してＣＰＵが利用する論理アドレス空間の領域を決定する論理アドレス領域管理ステップと、
を実行させることを特徴とする。【００１７】
（装置）
本発明はメモリ制御装置を提供する。即ち、本発明のメモリ制御装置は、
素子選択アドレスとメモリ素子アドレスから構成される実アドレスによりアクセスされる複数のメモリ素子と、
Ｎ領域に分割された論理アドレス空間を利用したＣＰＵの論理アドレスをウェイ数Ｗで決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Ｗの指定によりメモリ構成を再構成可能なインタリーブ制御部と、
複数のメモリ素子で構成される実アドレス空間を、ＣＰＵ論理アドレス空間の領域数Ｎにインタリーブ制御の最大ウェイ数Ｗｍａｘを乗じた（Ｎ×Ｗｍａｘ）領域に分割して利用可能情報を記録した全ウェイ数に共通な実アドレス領域利用表を作成し、メモリ素子の異常を検出した際に実アドレス領域利用表の異常個所を含む領域に利用禁止情報を記録する実アドレス領域管理部と、
インタリーブ制御部のウェイ数Ｗで決まるメモリ構成に対応して、実アドレス領域利用表から論理アドレス空間における各領域に利用可能情報又は利用禁止情報を記録した論理アドレス領域利用表を生成してＣＰＵが利用する論理アドレス空間の領域を決定する論理アドレス領域管理部と、
を備えたことを特徴とする。【００１８】
本発明は情報処理装置を提供する。即ち、本発明は、
処理部と、
処理部に接続され、情報を記憶する記憶部と、
記憶装置へのアクセスを制御するメモリ制御部とを備えた情報処理装置に於いて、
メモリ制御部は、CＰＵからの論理アドレスを実アドレスに変換して記憶部をアクセスする制御部と、
記憶部の実アドレス空間の領域ごとに記憶部の利用可否情報を記憶した第一のテーブルに、異常が検出された前記記憶部の領域に関する利用禁止情報を記録する実アドレス管理部と、
第一のテーブル内容に基づいて、論理アドレス空間における各領域の利用可否情報を記録した論理アドレス領域利用表の内容を更新する論理アドレス領域管理部と、
を備えたことを特徴とする。
【発明の効果】
【００１９】
本発明によれば、ＣＰＵから見たメモリモジュールの利用可能な領域の管理をメモリ素子アドレスを基準として行う。メモリ素子アドレスは、メモリの構成変更に依存せず、メモリ素子により決まる。メモリ異常箇所が同じであれば、その異常箇所を指すメモリ素子アドレスは変わらない。このメモリ素子アドレスによる利用可能領域の情報として実アドレス領域利用表を作成し、この実アドレス領域利用表をそのときのメモリ構成に対応するＣＰＵから見えるアドレスでの利用可能な領域情報である論理アドレス領域利用表に変換し、この論理アドレス領域利用表の情報を元にメモリ利用可能領域を決定する。【００２０】
このため、メモリ素子アドレスによる利用可能領域の情報として実アドレス領域利用表を作成して保持しておくだけで良く、インタ
リーブ制御のウェイ数に対応したメモリ構成ごとに異なるＣＰＵアドレスから見たメモリ利用可能情報を保持する必要がなくなり、メモリ利用可能領域の管理が容易になる。【００２１】
更に、メモリの構成変更により、メモリ素子アドレスとＣＰＵから見えるアドレスの対応が変更となった場合、変更前のメモリ異常個所に基づくメモリ縮退情報を引き継ぐことができ、新しいＣＰＵから見えるアドレスでのメモリ縮退情報を簡単に作成することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明のメモリ制御装置を備えたコンピュータシステムのブロック図
【図２】図１のメモリコントローラのアドレス変換機構の説明図
【図３】１ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図
【図４】図３の１ウェイインターリーブのアドレス変換に対応したアドレスマップの説明図
【図５】１ウェイインタリーブによるメモリモジュールのアクセスの説明図
【図６】２ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図
【図７】図６の２ウェイインタリーブのアドレス変換に対応したアドレスマップの説明図
【図８】２ウェイインタリーブによるメモリモジュールのアクセスの説明図
【図９】ＣＰＵアドレス空間を８領域とした場合のインタリーブ制御のウェイ数に対する実アドレス空間の分割領域数、ＣＰＵアドレスと実アドレスとの対応関係の説明図
【図１０】１ウェイと２ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの実アドレス領域利用表と、そこから作成される１ウェイメモリ構成時のＣＰＵの論理アドレス領域利用表の説明図
【図１１】１ウェイと２ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの実アドレス領域利用表と、そこから作成される２ウェイメモリ構成時のＣＰＵの論理アドレス領域利用表の説明図
【図１２】本発明におけるメモリ素子アドレスの実アドレス領域利用表作成処理のフローチャート
【図１３】図１２の処理により作成した実アドレス領域利用表からウェイ数に応じたメモリ構成の論理アドレス領域利用表を作成してＣＰＵの使用領域を決定するコンピュータシステムのフローチャート
【図１４】図１３のステップＳ６による１ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャート
【図１５】図１４に続く２ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャート
【図１６】４ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図
【図１７】図１６の４ウェイインタリーブのアドレス変換に対応したアドレスマップの説明図
【図１８】図１７に続くアドレスマップの説明図
【図１９】４ウェイインタリーブによるメモリモジュールのアクセスの説明図
【図２０】１ウェイ、２ウェイ又は４ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの実アドレス領域利用表と、そこから１ウェイメモリ構成時のＣＰＵの論理アドレス領域利用表を作成する処理の説明図
【図２１】１ウェイ、２ウェイ又は４ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの実アドレス領域利用表と、そこから２ウェイメモリ構成時のＣＰＵの論理アドレス領域利用表を作成する処理の説明図
【図２２】１ウェイ、２ウェイ又は４ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの実アドレス領域利用表と、そこから４ウェイメモリ構成時のＣＰＵの論理アドレス領域利用表を作成する処理の説明図
【図２３】図２２の実アドレス領域利用表から作成した論理アドレス領域利用表の説明図
【図２４】１ウェイ、２ウェイ又は４ウェイに対応した実アドレス領域利用表から１ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャート
【図２５】１ウェイ、２ウェイ又は４ウェイに対応した実アドレス領域利用表から２ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャート
【図２６】１ウェイ、２ウェイ又は４ウェイに対応した実アドレス領域利用表から４ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャート
【発明を実施するための最良の形態】
【００２３】
図１は本発明のメモリ制御装置を備えたコンピュータシステムのブロック図である。図１において、本発明のメモリ制御装置を構成するメモリコントローラ１０に対しては、ＣＰＵ１２−１〜１２−４とメモリモジュール１４−１〜１４−４が接続されている。メモリコントローラ１０にはインタリーブ制御部１６、実アドレス領域管理部１８及び論理アドレス領域管理部２０が設けられ、更に実アドレス領域管理ファイル２２が接続されている。【００２４】
メモリコントローラ１０のインタリーブ制御部１６は、異なるウェイ数Ｗの指定によりメモリ構成を再構成可能であり、ウェイ数Ｗとしては例えば２のべき乗となる1ウェイ、２ウェイ、４ウェイといったウェイ数のメモリ構成によるインタリーブ制御を行う。【００２５】
ここでインタリーブ制御は複数のメモリモジュールに対し同一アドレスを指定し、モジュール選択アドレスによりモジュールを交互に切り替えながらアクセスする制御であり、メモリモジュールを順番に選択してアクセスする場合に比べ、予めアドレス指定が行われた状態でモジュールを切り替えることから、メモリモジュールの高速動作が可能である。【００２６】
そして２ウェイのインタリーブとは２つのメモリモジュール間に跨って同一アドレスを指定してモジュールを切り替える制御であり、４ウェイとは４つのメモリモジュールに対し同一アドレスを指定した状態でモジュールを順番に切り替えてアクセスする制御となる。【００２７】
また１ウェイのインタリーブ制御とは、メモリモジュールを順番に選択しながらアクセスするもので、複数のメモリモジュールに跨ったアドレス指定でないことから、これはインタリーブなしのアクセスであるが、説明を分かり易くするため、以下にあってはインタリーブなしを１ウェイのインタリーブ制御としている。【００２８】
またインタリーブ制御部１６にあっては、メモリモジュール１４−１〜１４−４側におけるメモリ故障に対応するため、ＣＰＵ１２−１〜１２−４のＣＰＵアドレスで見える論理アドレス空間を複数領域、例えばＮ領域に分割し、メモリ異常を検出した際には異常個所に対応した領域を利用禁止とする領域利用管理を行っている。【００２９】
このＣＰＵ空間における利用管理領域は、従来はＣＰＵのアドレス空間の分割領域に分けて領域利用情報、即ち利用可能か利用禁止かを格納した論理アドレス領域利用表を作成し、これに基づきＣＰＵが利用する論理アドレス空間の領域を決定しているが、本発明にあっては、このようなＣＰＵの論理アドレス空間を管理する論理アドレス領域利用表を固定的にメモリコントローラ１０が保持せず、メモリモジュール１４−１〜１４−４側のメモリ素子アドレスに基づいて、ＣＰＵの論理アドレス空間の論理アドレス領域利用表に変換可能な実アドレス領域利用表を作成して保持している。【００３０】
即ちメモリコントローラ１０に設けた実アドレス領域管理部１８は、メモリモジュール１４−１〜１４−４で構成される実アドレス空間を、ＣＰＵ側の論理アドレス空間の領域数Ｗに、インタリーブ制御部１６で再構成可能な異なるウェイ数Ｗのうちの最大ウェイ数Ｗｍａｘを乗じた（Ｎ×Ｗｍａｘ）の領域に分割し、この分割領域ごとに、初期状態にあっては利用可能情報を記録した全ウェイ数のメモリ構成で共用できる実アドレス領域利用表を作成している。【００３１】
この実アドレス領域利用表には、メモリモジュール１４−１〜１４−４の異常を検出した際に、異常箇所を含む実アドレス領域利用表の領域に利用禁止情報を記録する。実アドレス領域管理部１８で作成されたインタリーブ制御部１６でメモリ構成の再構成可能な全ウェイ数に共通な実アドレス領域利用表は、実アドレス領域管理ファイル２２に保存される。【００３２】
メモリコントローラ１０の論理アドレス領域管理部２０は、コンピュータシステムの立上げ時あるいはインタリーブ制御部１６におけるメモリ構成の再構成時に、実アドレス領域管理ファイル２２に保持されている実アドレス領域利用表からＣＰＵ側の論理アドレス空間をＮ領域に分割して利用可能情報または利用禁止情報を記録した論理アドレス領域利用表をその都度作成し、作成した論理アドレス領域利用表に基づいて、立上げ時またはメモリ再構成時にＣＰＵ１２−１〜１２−４が利用する論理アドレス空間の領域を決定するようにしている。【００３３】
このように本発明のメモリ制御にあっては、メモリモジュール１４−１〜１４−４の実アドレスから見たＣＰＵ側の論理アドレス空間の領域を生成可能な実アドレス領域利用表を作成して保持しておくことで、インタリーブ制御部１６でウェイ数に応じてメモリ構成が決まれば、そのウェイ数により決まったメモリ構成に対応した変換処理により実アドレス領域管理ファイル２２に保持されている実アドレス領域利用表から、そのときのウェイ数のインタリーブ制御に対応した論理アドレス領域利用表をその都度作成して、ＣＰＵが利用する論理アドレス空間の領域を決定することができる。【００３４】
この結果、メモリコントローラ１０においてメモリ構成を変更した場合にも、変更前の領域利用情報を変更後に引き継いで、ＣＰＵのアドレス空間における領域の利用可能情報または利用禁止情報を簡単に生成して、メモリモジュール１４−１〜１４−４の任意の位置における異常箇所をＣＰＵ側の領域に組み込まないようにすることができる。【００３５】
このような本発明のメモリ制御につき、インタリーブ制御部１６でウェイ数１または２の指定によりメモリ再構成が可能な場合を例にとって具体的に説明する。【００３６】
図２は図１のメモリコントローラ１０のウェイ数の設定によりインタリーブ制御のメモリ構成を再構成可能なアドレス変換機構の説明図である。【００３７】
図２において、メモリモジュール１４−１〜１４−４はそれぞれ２５６バイトであり、合計サイズは１０２４バイトを例にとっている。このようなメモリモジュール１４−１〜１４−４で構成される１０２４バイトのメモリ空間につき、ＣＰＵ１２−１〜１２−４側にあっては、例えばＮ＝８領域に分割して利用可能情報を管理しており、ＣＰＵ側の１領域のサイズは１２８バイトとなる。【００３８】
メモリモジュール１４−１〜１４−４で構成される１０２４バイトのメモリ空間は、ＣＰＵ１２−１〜１２−４からの１０ビットのＣＰＵアドレスＣ９〜Ｃ０でアクセスすることができる。このためメモリコントローラ１０には、１０ビットのＣＰＵアドレスＣ９〜Ｃ０を保持する入力アドレスレジスタ２６が設けられている。【００３９】
一方、メモリモジュール１４−１〜１４−４の実アドレスは、メモリモジュール１４−１〜１４−４のそれぞれをアクセスする８ビットのメモリ素子アドレスＡ７〜Ａ０と、メモリモジュール１４−１〜１４−４を選択するための２ビットの素子選択アドレスＢ１，Ｂ０で構成される。【００４０】
このためメモリモジュール１４−１〜１４−４側には、メモリ素子アドレスＡ７〜Ａ０を格納する出力アドレスレジスタ２８と、素子選択アドレスＢ１，Ｂ０を保持するモジュール選択レジスタ３０が設けられ、モジュール選択レジスタ３０のアドレスはメモリモジュール選択器３２に入力され、Ｂ１，Ｂ０＝００，０１，１０，１１により、メモリモジュール１４−１〜１４−４を順次選択できるようにしている。【００４１】
入力アドレスレジスタ２６と出力アドレスレジスタ２８の間にはセレクタ３４，３６が設けられている。セレクタ３４は、入力アドレスレジスタ２６の上位２ビットＣ９，Ｃ８と出力アドレスレジスタ２８の下位２ビットＡ１，Ａ０の切替接続を行う。またセレクタ３６は、入力アドレスレジスタ２６の上位２ビットＣ９，Ｃ８と下位２ビットＣ１，Ｃ０のモジュール選択レジスタ３０の素子選択ビットＢ１，Ｂ０に対する切替接続を行う。【００４２】
ここでメモリコントローラ１０のインタリーブ制御におけるウェイ数は、１ウェイ、２ウェイ、４ウェイの３つによるメモリ構成の切替を例にとっており、セレクタ３４，３６による切替接続で１ウェイ、２ウェイまたは４ウェイによるアドレス変換機構を実現するための接続を確立できるようにしている。【００４３】
このため、入力アドレスレジスタ２６、出力アドレスレジスタ２８、メモリモジュール選択器３２に設けたモジュール選択レジスタ３０、及びセレクタ３４，３６によって、インタリーブ制御によるウェイメモリ構成２４を構築することができる。【００４４】
図３は１ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図である。図３において、メモリコントローラ１０は、図２に示したセレクタ３４，３６による接続切替で、図示の１ウェイメモリ構成２４−１の入力アドレスレジスタ２６に対する出力アドレスレジスタ２８及びモジュール選択レジスタ３０の接続を確立し、これによってＣＰＵ１２−１〜１２−４からの１０ビットのＣＰＵアドレスＣ９〜Ｃ０を入力アドレスレジスタ２６に保持した状態で、出力アドレスレジスタ２８のメモリモジュール１４−１〜１４−４の８ビットのメモリ素子アドレスＡ７〜Ａ０とモジュール選択のための素子選択アドレスＢ１，Ｂ０に変換し、１ウェイインタリーブに従ったメモリアクセスを実行する。【００４５】
１ウェイメモリ構成２４−１はインタリーブなしの場合であり、この場合にはＣＰＵアドレスの上位２ビットＣ９，Ｃ８を素子選択アドレスＢ１，Ｂ０に変換し、ＣＰＵアドレスの下位８ビットＣ７〜Ｃ０をメモリ素子アドレスＡ７〜Ａ０に変換してアクセスする。【００４６】
図４は図３の１ウェイインタリーブのアドレス変換に対応した１ウェイアドレスビットマップ３８−１の説明図である。図４において、１ウェイアドレスマップ３８−１は、上欄にメモリ選択とメモリアドレスに分けて、ＣＰＵアドレスＣ９〜Ｃ０と実アドレスとなる素子選択アドレスＢ１，Ｂ０及びメモリ素子アドレスＡ７〜Ａ０を表示しており、ＣＰＵアドレスＣ９〜Ｃ０をオール０からオール１まで順次変化させたときのアドレスビットと、これに対応したアドレス１０進表示を示している。【００４７】
図５は１ウェイインタリーブによるメモリモジュールのアクセス説明図であり、この場合のアクセスは単純であり、４つのメモリモジュール１４−１〜１４−３は点線で示すように、ＣＰＵ側から見た場合に８つの領域４２−１〜４２−８に分けられているが、ＣＰＵアドレスをオール０からオール１まで順次変化させた場合、矢印４４−１〜４４−８に示すようにメモリモジュール１４−１〜１４−３の順番、即ちＣＰＵ側から見た領域４２−１〜４２−８の順にアクセスすることができる。【００４８】
ここで図３のメモリモジュール１４−１のアドレス「１１１１１１１１」、即ち１０進表示でアドレス２５５番にデータの読み書きができないメモリ異常が発生していたとすると、図４の１ウェイアドレスマップ３８−１においては異常箇所４０となり、これはＣＰＵアドレスＣ９〜Ｃ０から見ると「００１１１１１１１１１」となり、１０進表示とした場合にも同じく２５５番アドレスとなる。【００４９】
図６は２ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図である。図６のメモリコントローラ１０にあっては、インタリーブ制御のウェイ数Ｗを２ウェイに指定することで、２ウェイメモリ構成２４−２に示す入力アドレスレジスタ２６に対する出力アドレスレジスタ２８とメモリモジュール選択器３２に設けたモジュール選択レジスタ３０間の接続が確立される。【００５０】
図７は図６の２ウェイインタリーブのアドレス変換に対応した２ウェイアドレスマップ３８−２の説明図である。この２ウェイのインタリーブ制御にあっては、図８のメモリモジュール１４−１〜１４−４に示すように、２つのメモリモジュール１４−１〜１４−２のＣＰＵ側の分割数で決まる１２８バイト単位の領域につき、先頭アドレスで矢印６０−１に示すように、メモリモジュール１４−１とメモリモジュール１４−２の同一アドレスを指定した状態で、素子選択アドレスによりメモリモジュール１４−１，１４−２を順番に切り替えて２アドレス分のアクセスを行う。【００５１】
これをメモリモジュール１４−１，１４−２の前半の領域について行った後、次に後半の領域についてこれを繰り返す。続いて、次のメモリモジュール１４−３，１４−４につき、矢印６０−３，６０−４に示すように、１２８バイトに分けた前半の領域の同一アドレスの指定による順次読出しと後半の領域の同一アドレスの指定による順次読出しを繰り返す。【００５２】
このような２ウェイインタリーブによる図７の２ウェイアドレスマップ３８−２にあっては、ＣＰＵアドレスＣ９〜Ｃ０のオール０からオール１への変化に対し、メモリモジュール１４−１，１４−２を対象とした偶数アドレス領域５８−１と奇数アドレス領域５８−２、及びメモリモジュール１４−３，１４−４を対象とした偶数アドレス領域５８−３と奇数アドレス領域５８−４に分けられる。【００５３】
そして前半の偶数アドレス領域５８−１と奇数アドレス領域５８−２にあっては、メモリ選択アドレスに示すように、素子選択アドレスＢ１，Ｂ０が「００」「０１」と交互に変化することで、同一アドレスを２つのメモリモジュール１４−１，１４−２に指定した状態でモジュール選択を行う２ウェイのインタリーブ制御を行っている。この点は後半の偶数アドレス領域５８−３，奇数アドレス領域５８−４に対応したメモリモジュール１４−３，１４−４についても同様である。【００５４】
このような２ウェイアドレスマップ３８−２にあっては、マップ上における図４に示した１ウェイアドレスマップ３８−１における異常箇所４０は同じアドレス位置として保存することができる。【００５５】
図９は本発明のメモリ制御におけるＣＰＵアドレス空間の分割領域数Ｎ、インタリーブのウェイ数Ｗ、ＣＰＵアドレス空間の分割領域数Ｎに最大ウェイ数Ｗｍａｘを掛けた値として与えられる実アドレス空間の分割領域数Ｍ、更に、これに対応したＣＰＵ及び実メモリアドレスの対応関係の説明図である。即ち図９の対応表は、Ｎ＝８、Ｗ＝１，２，４、Ｍ＝８，１６，３２とした場合につき、それぞれのメモリ構成におけるアドレス変換機構の変換関係を表わしている。【００５６】
図１０は、図１のメモリコントローラ１０のインタリーブ制御部１６で１ウェイと２ウェイでメモリ再構成可能な場合の実アドレス領域管理部１８により生成される実アドレス利用表と、論理アドレス領域管理部２０により実アドレス利用表から作成される１ウェイのメモリ構成で使用する論理アドレス領域利用表の説明図である。【００５７】
図１０（Ａ）は、図１０（Ｂ）に示す実アドレス領域利用表４８から図１０（Ｃ）に示す１ウェイ論理アドレス領域利用表５０−１を作成するために使用する１ウェイサーチレジスタ４６−１である。【００５８】
まず図１０（Ｂ）の実アドレス領域利用表４８は、項目欄５４に示すように、メモリモジュール１４−１〜１４−４の実アドレスを構成する素子選択アドレスとメモリ素子アドレスを使用した図９の対応表から決まる１６領域に分けて利用フラグを格納している。【００５９】
この実アドレス領域利用表４８に格納する実アドレスは、実アドレス領域利用表４８の上部に説明的に付加した項目５２のように、図３の１ウェイメモリ構成２４−１に示すアドレス変換機構により、ＣＰＵアドレスのＣ９，Ｃ８，Ｃ７，Ｃ０の４ビットが対応している。【００６０】
ここで実アドレス領域利用表４８の利用フラグは、利用可能情報として「○」を記載し、利用禁止情報として図４に示した異常箇所４０のアドレスを含む領域に「×」を記録している。【００６１】
このような実アドレス領域利用表４８から１ウェイのインタリーブ制御のメモリ構成に必要な図１０（Ｃ）の１ウェイ論理アドレス領域利用表５０−１を作成する際には、図１０（Ａ）の１ウェイサーチレジスタ４６−１を使用して実アドレス領域利用表４８の利用フラグを調べる。【００６２】
１ウェイサーチレジスタ４６−１は、Ｘ、Ｙ、Ｚ、更に「０／１」領域と利用フラグの格納領域で構成されており、実アドレス領域利用表４８を調べる際には
Ｘ＝Ｂ１
Ｙ＝Ｂ０
Ｚ＝Ａ７
Ａ０＝０／１
を格納し、上位３ビットが同一で４ビット目が０又は１と変化する４ビットアドレスの２領域を調べる。【００６３】
このような１ウェイサーチレジスタ４６−１による実アドレス領域利用表４８の調査は、表の右側に矢印で示すように、領域ペア５６−１〜５６−８の各２つの領域につき、利用フラグが利用可能「○」か利用禁止「×」かを調べ、２つの領域につき両方とも利用可能「○」であれば、これに対応した図１０（Ｃ）の領域の利用フラグを利用可能「○」とし、いずれか一方が利用禁止「×」であれば図１０（Ｃ）の論理アドレス領域利用表５０−１の利用フラグは利用禁止「×」とする。【００６４】
このような実アドレス領域利用表４８から作成された１ウェイ論理アドレス領域利用表５０−１を見ると、ＣＰＵ領域の２番目の領域＃１が利用禁止「×」となっている。【００６５】
図１１は図１０（Ｂ）と同じ実アドレス領域利用表４８を使用して、２ウェイのインタリーブ制御によるメモリ構成時に２ウェイ論理アドレス領域利用表を作成する処理の説明図である。【００６６】
図１１（Ａ）は、図１１（Ｂ）の実アドレス領域利用表４８から図１１（Ｃ）の２ウェイ論理アドレス領域利用表５０−２を作成するための調査を行う２ウェイサーチレジスタ４６−２である。２ウェイサーチレジスタ４６−２には上位側から
Ｘ＝Ｂ１
Ｂ０＝０／１
Ｚ＝Ａ７
Ｙ＝Ａ０
を格納して、それぞれの４ビット領域で決まる領域の利用フラグを調べる。【００６７】
この２ウェイサーチレジスタ４６−２を使用した実アドレス領域利用表４８の調査は、右側の矢印で示す領域ペア６２−１〜６２−８につき、２つの領域の利用フラグが両方とも利用許可「○」であれば図１１（Ｃ）の２ウェイ論理アドレス領域利用表５０−２の対応する領域の利用フラグを利用可能「○」とし、いずれか一方が利用禁止「×」であれば２ウェイ論理アドレス領域利用表５０−２の対応する領域の利用フラグを利用禁止「×」に記録する。【００６８】
この結果、２ウェイのインタリーブ制御によるメモリ構成における２ウェイ論理アドレス領域利用表５０−２のメモリ異常箇所を含むＣＰＵ領域は、４番目のＣＰＵ領域＃３であることが分かる。【００６９】
図１２は本発明におけるメモリ素子アドレスから見た実アドレス領域利用表を作成する処理のフローチャートである。図１２において、実アドレス領域利用表の作成処理は、ステップＳ１で論理アドレス空間の分割領域数Ｎ、例えばＮ＝８を読み込み、ステップＳ２でメモリ構成可能なウェイ数Ｗ、例えばＷ＝１，２，４を読み込み、ステップＳ３で論理アドレス空間の領域数Ｎに最大ウェイ数Ｗｍａｘを掛け合わせて実アドレス空間の分割数Ｍを算出する。例えば１ウェイと２ウェイで切替可能な場合には、Ｍ＝８×２＝１６として１６領域の分割数を求める。【００７０】
続いてステップＳ４で、例えば図１０（Ｂ）に示したような１ウェイと２ウェイの再構成が可能な場合には、素子選択アドレスＢ１，Ｂ０及びメモリ素子アドレスの最上位ビットＡ７と最下位ビットＡ０の４ビットを使用して１６分割した領域を持つ実アドレス領域利用表を作成し、その利用フラグ即ち利用情報としては、初期作成時にあっては利用可能「○」を記録する。【００７１】
図１３は図１２の処理により作成した実アドレス領域利用表からインタリーブ制御のウェイ数に応じたメモリ構成の論理アドレス表を作成してＣＰＵの使用領域を決定するコンピュータシステムのフローチャートである。【００７２】
図１３において、コンピュータシステムは、ステップＳ１で電源起動に伴い初期化と診断を実行し、ステップＳ２でもしメモリ異常が検出されると、ステップＳ３で異常メモリモジュールの素子選択アドレスとメモリ素子アドレスを取得し、ステップＳ４で、既に作成した実アドレス領域利用表の異常箇所に対応した分割領域に使用禁止情報を書き込む。もちろんステップＳ２でメモリ異常がなければ、ステップＳ３，４の処理はスキップする。【００７３】
続いてステップＳ５でメモリ構成のウェイ数を取得し、ステップＳ６で実アドレス領域利用表からウェイ数で決まるメモリ構成の論理アドレス領域利用表を作成し、ＣＰＵの利用領域を決定する。【００７４】
続いてステップＳ７でコンピュータのブート処理に伴ってＯＳのインストールを行い、ステップＳ８でアプリケーションによる運用処理に入る。この運用処理中にステップＳ９でメモリ構成の変更があると、ステップＳ５に戻り、このメモリ構成の変更に伴う変更後のウェイ数を取得し、ステップＳ６で実アドレス領域利用表からメモリ構成変更後のウェイ数で決まるメモリ構成の論理アドレス領域利用表を作成してＣＰＵの利用領域を決定し、再起動などによりステップＳ７からのＯＳのインストールを経て、ステップＳ８のアプリケーションによる運用処理に入る。【００７５】
図１４は図１３のステップＳ６による１ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャートである。図１４において、ステップＳ１でインタリーブによるメモリ構成が１ウェイであることを判別すると、ステップＳ２に進み、図１０（Ａ）の１ウェイサーチレジスタ４６−１に実アドレス領域利用表４８の実アドレス側の４ビットを配置した後、ステップＳ３でアドレスＸＹをオール０にセットし、ステップＳ４でアドレスＸＹＺにつき実アドレス領域利用表４８におけるＡ０＝０の領域とＡ０＝１の領域の利用フラグを調査する。【００７６】
ステップＳ５で２つの領域の両方が利用許可「○」であればステップＳ６をスキップし、少なくともいずれか一方が利用禁止「×」であった場合にはステップＳ６で図１０（Ｃ）の１ウェイ論理アドレス領域利用表５０−１に、そのときのアドレスＸＹＺに対応した領域に使用禁止「×」を書き込む。【００７７】
続いてステップＳ７でアドレスＸＹＺが最終アドレスか否かチェックし、最終アドレスでなければ、ステップＳ８でアドレスＸＹＺを１つインクリメントし、ステップＳ４からの処理を繰り返す。【００７８】
図１５は図１４に続く２ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャートである。図１５にあっては、ステップＳ９でメモリ構成が２ウェイであることを判別すると、ステップＳ１０に進み、図１１（Ａ）に示した２ウェイサーチレジスタ４６−２に図１１（Ｂ）の実アドレス領域利用表４８のアドレスをセットする。【００７９】
続いてステップＳ１１でアドレスＸＹＺをオール０の初期値にセットした後、ステップＳ１２でアドレスＸＹにつきＢ０＝０とＢ０＝１の２つの領域の利用フラグを調査する。続いてステップＳ１３で２つの領域の利用フラグの両方が利用許可「○」の場合は、ステップＳ１４はスキップする。【００８０】
少なくともいずれか一方が利用禁止「×」であった場合にはステップＳ１４に進み、図１１（Ｃ）に示した２ウェイ論理アドレス領域利用表５０−２のアドレスＸＹＺに対応した領域に利用禁止「×」を書き込む。続いてステップＳ１５でアドレスＸＹＺが最終アドレスか否かチェックし、そうでなければステップＳ１６に戻ってアドレスＸＹＺを１つインクリメントして、ステップＳ１２からの処理を繰り返す。【００８１】
次に図１のメモリコントローラ１０に設けたインタリーブ制御部１６において、インタリーブ制御によるメモリ構成として、１ウェイ、２ウェイ及び４ウェイのメモリ再構成が可能な場合の実アドレス領域利用表の作成と、そこから生成する論理アドレス領域利用表の作成を説明する。【００８２】
図１６は４ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図であり、メモリコントローラ１０における入力アドレスレジスタ２６に対し、出力アドレスレジスタ２８及びモジュール選択レジスタ３０は図示のように接続され、これによって４ウェイメモリ構成２４−３を確立する。【００８３】
図１７及び図１８は、図１６の４ウェイインタリーブのアドレス変換に対応した４ウェイアドレスマップ３８−３の説明図である。【００８４】
図１９は４ウェイインタリーブによるメモリモジュールのアクセスの説明図である。図１９において、４ウェイのインタリーブ制御にあっては、２５６バイトサイズを持つメモリモジュール１４−１〜１４−４をＣＰＵ側の分割数８に応じた１２８バイト領域に分け、矢印６６−１〜６６−３に示すように、メモリモジュール１４−１〜１４−４の前半について、同一アドレスを指定した状態で素子選択アドレスによりメモリモジュール１４−１，１４−２，１４−３，１−４を順番に選択して、４ウェイインタリーブのアクセスを行う。【００８５】
これをメモリモジュール１４−１〜１４−４の前半の領域につき繰り返した後、後半の領域について矢印６８−１，６８−２，６８−３に示すように、４つのメモリモジュール１４−１〜１４−４につき同一アドレスを指定した状態で素子選択アドレスにより順次切り替えて、４インタリーブによるアクセスを繰り返す。【００８６】
このような４ウェイのインタリーブ制御による図１７及び図１８の４ウェイアドレスマップ３８−３にあっては、まず第１アドレス領域６４−１に示すように、各メモリモジュール１４−１〜１４−４につき、アドレス１０進表示に示すようにアドレス番号０，４，８，・・・と４アドレスずつ飛びながら４ウェイインタリーブによるアクセスを行い、続いて第２アドレス領域６４−２のように、１０進表示でアドレス番号１，５，７，・・・というように４アドレス置きとなるインタリーブを行い、更に第３アドレス領域６４−３でアドレス番号２，６，１２，・・・というように４ウェイインタリーブのアクセスを行い、更に図１８の第４アドレス領域６４−４に示すようにアドレス番号３，７，１１，・・・とする４ウェイインタリーブによるアクセスを行うことになる。【００８７】
図２０は、１ウェイ、２ウェイ、４ウェイでメモリ再構成可能な場合に作成される実アドレス領域利用表と、そこから１ウェイメモリ構成時のＣＰＵアドレスの論理アドレス領域利用表を作成する処理の説明図である。【００８８】
図２０（Ａ）は、図２０（Ｂ）の実アドレス領域利用表７２から１ウェイ論理アドレス表を作成するために使用する１ウェイサーチレジスタ７０−１の説明図である。【００８９】
まず図２０（Ｂ）の１ウェイ、２ウェイ及び４ウェイに対応した実アドレス領域利用表７２は、図１０（Ｂ）に示した１ウェイと２ウェイに対応した実アドレス領域利用表４８に、更にメモリアドレスビットＡ１を加えた４ビットとすることで、実アドレス領域を３２領域に分割している。【００９０】
図２０（Ａ）の１ウェイサーチレジスタ７０−１は、図１０（Ａ）の１ウェイサーチレジスタ４６−１にメモリアドレスのアドレスビットＡ１＝０／１を加えており、この１ウェイサーチレジスタ７０−１を使用して実アドレス領域利用表７２を調査することで、図１０（Ｃ）に示したと同じ１ウェイ論理アドレス領域利用表５０−１を作成することができる。【００９１】
１ウェイサーチレジスタ７０−１による実アドレス領域利用表７２の調査は、４つの領域を１グループとしたグループ７８−１〜７８−８のそれぞれにつき、４領域の利用フラグが全て利用可能「○」であれば、図１０（Ｃ）の１ウェイ論理アドレス領域利用表５０−１の対応する利用フラグに利用可能「○」を記録する。【００９２】
１グループを構成する領域の少なくともずれか１つが利用禁止「×」であれば、図１０（Ｃ）の１ウェイ論理アドレス領域利用表５０−１の利用フラグに利用禁止「×」を書き込む。【００９３】
図２１は、図２０（Ｂ）と同じ実アドレス領域利用表７２を使用して、図２１の（Ａ）の２ウェイサーチレジスタ７０−２により調査して、図１１（Ｃ）と同じ２ウェイ論理アドレス領域利用表５０−２を作成する処理である。【００９４】
この場合には、２ウェイサーチレジスタ７０−２により実アドレス領域利用表７２の右側に矢印で示す４つの領域のグループ８０−１〜８０−８のそれぞれの利用フラグを調べ、４つの領域の利用フラグが全て利用可能「○」であれば２ウェイ論理アドレス領域利用表５０−２に利用可能「○」を記録し、４つの領域の少なくともいずれか１つが利用不可「×」であれば２ウェイ論理アドレス領域利用表５０−２に利用禁止「×」を記録する。【００９５】
図２２は、図２０（Ｂ）と同じ実アドレス領域利用表７２を使用して４ウェイのメモリ構成に対応した論理アドレス領域利用表を作成する処理の説明図である。図２２（Ａ）は実アドレス領域利用表７２の調査に使用する４ウェイサーチレジスタ７０−３であり、
Ｘ＝Ａ１
Ｙ＝Ａ０
Ｚ＝Ａ７
Ｂ０＝０／１
Ｂ１＝０／１
をセットする。【００９６】
即ち、アドレスＸＹＺを０００〜１１１で変化させながら各位置ごとにＢ１，Ｂ０を００，０１，１０，１１の４段階に変化させて、実アドレス領域利用表７２を調査する。【００９７】
この４ウェイサーチレジスタ７０−３を用いた実アドレス領域利用表７２の調査により、その右側に矢印で示す４領域のグループ８２−１〜８２−８につき、４領域の利用フラグが全て利用可能「○」であれば、図２３の４ウェイ論理アドレス領域利用表５０−３の対応する利用フラグに利用可能「○」を記録する。一方、４領域の少なくともいずれか１つの利用フラグが利用禁止「×」であれば、図２３の４ウェイ論理アドレス領域利用表５０−３の利用フラグに利用禁止「×」を格納する。【００９８】
このような実アドレス領域利用表４８から作成された図２３の４ウェイ論理アドレス領域利用表５０−３を見ると、ＣＰＵ領域の８番目の領域＃７が利用禁止「×」となっている。【００９９】
このように、１ウェイ、２ウェイ、４ウェイについてメモリ構成が再構成可能な場合についても、メモリ素子アドレスから見た１つの実アドレス領域利用表７２を作成して保存しておくことで、その後はメモリ構成が確定するごとに、そのメモリ構成を確定するインタリーブ制御のウェイ数に応じた実アドレス領域利用表の調査即ち変換操作により、それぞれのウェイ数に対応した論理アドレス領域利用表を作成して、ＣＰＵ側の使用可能領域を決定することができる。【０１００】
図２４は図２０に示した実アドレス領域利用表から１ウェイメモリ構成時の論理アドレス領域利用表を作成する処理であり、ステップＳ１で１ウェイを判別すると、ステップＳ２で実アドレス領域利用表７２のアドレスを１ウェイサーチレジスタ７０−１にセットし、ステップＳ３でアドレスＸＹＺを初期値にセットした後、ステップＳ４でアドレスＸＹＺにつきＡ１，Ａ０＝００，０１，１０，１１の４領域につき利用フラグを調査する。【０１０１】
続いてステップＳ５で４領域の全てが利用許可であればステップＳ６はスキップし、少なくともいずれか１つが利用禁止であればステップＳ６で１ウェイ論理アドレス領域利用表のアドレスＸＹＺに使用禁止を書き込む。このような処理をステップＳ７でアドレスＸＹの最終アドレスを判別するまで、ステップＳ８でアドレスＸＹをインクリメントしながら繰り返す。【０１０２】
図２５は、図２１において実アドレス領域利用表７２から２ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャートである。図２５において、ステップＳ９で２ウェイのメモリ構成を判別すると、ステップＳ１０で実アドレス領域利用表７２のアドレスを２ウェイサーチレジスタ７０−２にセットし、ステップＳ１１でアドレスＸＹＺを初期アドレスにセットした後、ステップＳ１２でアドレスＸＹＺにつきＡ１，Ｂ０＝００，０１，１０，１１の４領域の利用フラグを調査する。【０１０３】
続いてステップＳ１３で４領域の全てが利用許可「○」であればステップＳ１４はスキップし、少なくともいずれか１つが利用不可「×」であればステップＳ１４で２ウェイ論理アドレス領域利用表のアドレスＸＹＺの領域に利用禁止「×」を書き込む。このステップＳ１２からの処理を、ステップＳ１５で最終アドレスを判別するまで、ステップＳ１６でアドレスをインクリメントしながら繰り返す。【０１０４】
図２６は、図２２及び図２３における実アドレス領域利用表７２から４ウェイ構成時の論理アドレス領域利用表５０−３を作成する処理のフローチャートである。図２６において、ステップＳ１７で４ウェイのメモリ構成を判別すると、ステップＳ１８で実アドレス領域利用表７２のアドレスを４ウェイサーチレジスタ７０−３にセットし、ステップＳ１９でアドレスＸＹＺを初期値にセットした後、ステップＳ２０でアドレスＸＹＺにつきＢ１，Ｂ０＝００，０１，１０，１１の４領域の利用フラグを調査する。【０１０５】
続いてステップＳ２１で、４領域の全てが利用許可「○」であればステップＳ２２はスキップし、少なくともいずれか１つが利用禁止「×」であればステップＳ２２に進み、図２３の４ウェイ論理アドレス領域利用表５０−３の利用フラグに利用禁止「×」を書き込む。このステップＳ２０からの処理を、ステップＳ２３で最終アドレスを判別するまで、ステップＳ２４でアドレスをインクリメントしながら繰り返す。【０１０６】
また本発明は、コンピュータシステムのメモリコントローラ、即ちメモリ制御装置で実行されるプログラムを提供するものであり、このプログラムは図１２、図１３、図１４、図１５、図２４、図２５、図２６のフローチャートに示した内容を持つことになる。【０１０７】
また上記の実施形態は、ＣＰＵの論理アドレス空間の分割数ＮをＮ＝８、インタリーブ制御のウェイ数を１ウェイ、２ウェイ、４ウェイとした場合を例にとるものであるが、ＣＰＵ空間の分割数Ｎ及びインタリーブ制御のウェイ数Ｗは必要に応じて任意に定めることができ、望ましくはそれぞれ２のべき数として定めることが望ましい。【０１０８】
また上記の実施形態は、説明を簡単にするため、メモリモジュール１つ当たりのサイズを２５６バイトとした場合を例に取るものであったが、このメモリモジュールのメモリサイズについても必要に応じて適宜の値をとることができる。【０１０９】
また上記の実施形態にあっては、コンピュータシステムの起動時とメモリ再構成時における実アドレス領域利用表からの論理アドレス領域利用表の作成処理を例に取るものであったが、この実アドレス領域利用表からの作成処理は、これ以外に、電源ダウンに伴う再起動時、システム切替えによる再構成時など、適宜のメモリ構成のタイミング、更にはメモリモジュールにつき新たな異常箇所を検出した際に行うようにしてもよい。【０１１０】
特にメモリモジュールの故障検出については、保存している実アドレス領域利用表の対応する領域の許可フラグを利用禁止に書き替える処理を異常検出が行われるごとに実行することが望ましい。これによって、メモリ異常による縮退状況をリアルタイムに反映したＣＰＵ側におけるメモリ領域の利用に反映した制御を行うことができる。【０１１１】
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【図１】
0004810542.tif 000002
【図２】
0004810542.tif 000003
【図３】
0004810542.tif 000004
【図４】
0004810542.tif 000005
【図５】
0004810542.tif 000006
【図６】
0004810542.tif 000007
【図７】
0004810542.tif 000008
【図８】
0004810542.tif 000009
【図９】
0004810542.tif 000010
【図１０】
0004810542.tif 000011
【図１１】
0004810542.tif 000012
【図１２】
0004810542.tif 000013
【図１３】
0004810542.tif 000014
【図１４】
0004810542.tif 000015
【図１５】
0004810542.tif 000016
【図１６】
0004810542.tif 000017
【図１７】
0004810542.tif 000018
【図１８】
0004810542.tif 000019
【図１９】
0004810542.tif 000020
【図２０】
0004810542.tif 000021
【図２１】
0004810542.tif 000022
【図２２】
0004810542.tif 000023
【図２３】
0004810542.tif 000024
【図２４】
0004810542.tif 000025
【図２５】
0004810542.tif 000026
【図２６】
0004810542.tif 000027