JP4810542B2 - メモリ制御方法、プログラム及び装置 - Google Patents

メモリ制御方法、プログラム及び装置 Download PDF

Info

Publication number
JP4810542B2
JP4810542B2 JP2007552819A JP2007552819A JP4810542B2 JP 4810542 B2 JP4810542 B2 JP 4810542B2 JP 2007552819 A JP2007552819 A JP 2007552819A JP 2007552819 A JP2007552819 A JP 2007552819A JP 4810542 B2 JP4810542 B2 JP 4810542B2
Authority
JP
Japan
Prior art keywords
memory
area
address
information
logical address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007552819A
Other languages
English (en)
Other versions
JPWO2007077595A1 (ja
Inventor
浩作 中田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2007077595A1 publication Critical patent/JPWO2007077595A1/ja
Application granted granted Critical
Publication of JP4810542B2 publication Critical patent/JP4810542B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明は、複数のメモリモジュールで構成されたメモリをアクセスするメモリ制御方法、プログラム及び装置に関し、特に、メモリモジュールの異常箇所に基づきCPUのアドレス空間に利用禁止領域を設定するメモリ制御方法、プログラム及び装置に関する。
従来、マルチCPU構成のコンピュータシステムに利用される主記憶などの記憶装置にあっては、独立してアクセス可能なメモリ素子である複数のメモリモジュール(メモリバンクともいう)をボードに実装して記憶装置を構築しており、このように記憶装置に利用されるメモリモジュールは、メモリモジュールの生産過程によって生ずる品質のばらつきは不回避である。
このメモリモジュールの生産上の品質のばらつきにより、記憶装置に実装して利用している間に、一部のアドレスについてデータの読み書きを正常に行うことができなくなる異常が発生する場合がある。メモリ異常を検出した場合には、メモリ異常を起しているメモリモジュールを特定し、システムから異常部分を排除することで、システムを安定運用することが重要である。
また、一度異常と認識したメモリモジュールについては、例えインタリーブ制御のウェイ数の変更によりメモリ構成が変わっても、異常メモリモジュールが交換されるまではシステムに組み込まないようにすることが、運用システムにおける堅牢性の向上、運用後に故障が起こったときの故障保守作業時間、保守にかかるコストの節減のために必要なことである。
そこで従来の記憶装置にあっては、メモリコントローラのハードウェア機能により、メモリ異常を検出した場合に、メモリ異常を起しているメモリモジュールを特定し、システムから異常部分を排除するようにしている。即ち、メモリコントローラは、CPUから見えるメモリモジュールのアドレス空間を適当な大きさの領域に分割し、メモリモジュールの異常を検出した場合には、異常個所に対応した領域を利用禁止に設定し、CPUにより利用可能な領域に異常個所を含む領域を組み込まないようにメモリを縮退するメモリ制御を行っている。
特開平2−166543号公報 特開平4−165548号公報
しかしながら、従来のメモリ制御にあっては、メモリ異常を起しているメモリモジュールを特定してシステムに組み込まないように縮退する機能をハードウェア機能により実装していたため、実装回路の増大によるコストアップおよびサイズ増大が問題となっている。
またCPUから見えるメモリモジュールのアドレス空間を適当な大きさの領域に分割してCPUで利用可能な領域を管理する従来のメモリ制御方法にあっては、インタリーブ制御におけるウェイ数の変更によりメモリ構成を変更した場合に対応することができない。
例えばインタリーブ制御のウェイ数は1ウェイ(インタリーブなし)から2ウェイのメモリ構成に変更した場合、メモリモジュールの実アドレスとCPUから見える論理アドレスとの対応関係も変更されることになり、例えばメモリ構成変更前の異常個所のアドレスはm番目の領域に対応していたものが、メモリ構成変更後は別のn番目の領域に対応するといったことが発生する。
このためメモリ構成を変更した後に、改めてメモリモジュールの異常箇所を特定し、構成変更後のCPUから見えるアドレス空間の分割領域について、メモリモジュールの異常個所に対応した領域を判別して利用禁止に設定し、CPUの利用領域に異常個所を含む領域を組み込まないようにする領域管理を必要とし、構成変更前の領域利用情報を構成変更後に引き継ぐことができず、メモリ再構成後のCPU利用可能領域を決定するための処理負担が増大し、メモリ構成変更後の処理再開に時間がかかる問題がある。
本発明は、CPUから見たメモリアドレス空間を分割した領域の利用情報をメモリ構成を変更した際に引き継いで構成変更後の領域利用情報を簡単且つ迅速に設定可能とするメモリ制御装置、方法及びプログラムを提供することを目的とする。
(方法)
本発明はメモリ制御方法を提供する。即ち本発明は、論理アドレスを実アドレスに変換してメモリをアクセスするメモリ制御方法に於いて、
メモリの異常を検出した際に、メモリの実アドレス空間の利用可能情報を記録した実アドレス領域利用表の中の、異常が検出されたメモリに対応する領域に利用禁止情報を記録するステップと、
実アドレス領域利用表から、論理アドレス空間における各領域の利用可能情報又は利用禁止情報を記録した論理アドレス領域利用表を生成するステップと、
を備えたことを特徴とする。
本発明はメモリ制御方法を提供する。即ち本発明は、CPUからの論理アドレスを素子選択アドレスとメモリ素子アドレスから構成される実アドレスに変換して複数のメモリ素子をアクセスするメモリ制御方法に於いて、
N領域に分割された論理アドレス空間を利用したCPUの論理アドレスをウェイ数Wで決まる実アドレスに変換して複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Wの指定によりメモリ構成を再構成可能なインタリーブ制御ステップと、
複数のメモリ素子で構成される実アドレス空間を、CPU論理アドレス空間の領域数Nにインタリーブ制御の最大ウェイ数Wmaxを乗じた(N×Wmax)領域に分割して利用可能情報を記録した全ウェイ数に共通な実アドレス領域利用表を作成し、メモリ素子の異常を検出した際に実アドレス領域利用表の異常個所を含む領域に利用禁止情報を記録する実アドレス領域管理ステップと、
インタリーブ制御ステップのウェイ数Wで決まるメモリ構成に対応して、実アドレス領域利用表から論理アドレス空間における各領域に利用可能情報又は利用禁止情報を記録した論理アドレス領域利用表を生成してCPUが利用する論理アドレス空間の領域を決定する論理アドレス領域管理ステップと、
を備えたことを特徴とする。
ここで、インタリーブ制御ステップは、2のべき乗数となる異なるウェイ数Wのいずれか指定によりメモリ構成を再構成する。
(1−2ウェイ切替)
インタリーブ制御ステップがウェイ数1又は2の指定によりメモリ再構成が可能な場合、
実アドレス領域管理ステップは(括弧内は例えばCPUアドレスが10ビット、メモリ素子アドレスがA7〜A0の8ビット、素子選択アドレスがB1〜B0の2ビットの場合)、
素子選択アドレスの下位2ビット(B1 B0)、
実アドレスの最上位ビット(A7)及び
実アドレスの最下位ビット(A0)
の4ビットアドレス(B1 B0 A7 A0)によりCPU論理アドレス空間の領域数Nにインタリーブ制御の最大ウェイ数2を乗じて(N×2)分割された各領域に利用許可情報又は利用禁止情報を記録した実アドレス領域利用表を生成し、
論理アドレス領域管理ステップは、インタリーブ制御ステップが1ウェイで決まるメモリ構成の場合、実アドレス領域利用表の
素子選択アドレスの下位2ビット(B1 B0)及び
実アドレスの最上位ビット(A7)
の3ビットアドレス(B1 B0 A7)によりN分割された各領域に利用許可情報又は利用禁止情報を記録した1ウェイ論理アドレス領域利用表を作成してCPUが利用する論理アドレス空間の領域を決定し、
また論理アドレス領域管理ステップは、インタリーブ制御ステップが2ウェイで決まるメモリ構成の場合、実アドレス領域利用表の
素子選択アドレスの下位第2ビット(B1)、
実アドレスの最下位ビット(A0)及び
実アドレスの最上位ビット(A7)
の3ビットアドレス(B1 A0 A7)によりN分割された各領域に利用許可情報又は利用禁止情報を記録した2ウェイ論理アドレス領域利用表を作成して前記CPUが利用する論理アドレス空間の領域を決定することを特徴とするメモリ制御方法。
(1−2−4ウェイ切替)
インタリーブ制御ステップが、ウェイ数1、2又は4の指定によりメモリ再構成可能な場合、
実アドレス領域管理ステップは(括弧内は例えばCPUアドレスが10ビット、メモリ素子アドレスがA7〜A0の8ビット、素子選択アドレスがB1〜B0の2ビットの場合)、
素子選択アドレスの下位2ビット(B1 B0)、
実アドレスの最上位ビット(A7)及び
実アドレスの最下位2ビット(A1 A0)
の5ビットアドレス(B1 B0 A7 A1 A0)によりCPU論理アドレス空間の領域数Nにインタリーブ制御の最大ウェイ数4を乗じて(N×4)分割された各領域に利用許可情報又は利用禁止情報を記録した実アドレス領域利用表を生成し、
論理アドレス領域管理ステップは、インタリーブ制御ステップが1ウェイで決まるメモリ構成の場合、実アドレス領域利用表の
素子選択アドレスの下位2ビット(B1 B0)及び
実アドレスの最上位ビット(A7)
の3ビットアドレス(B1 B0 A7)によりN分割された各領域に利用許可情報又は利用禁止情報を記録した1ウェイ論理アドレス領域利用表を作成してCPUが利用する論理アドレス空間の分割領域を決定し、
また論理アドレス領域管理ステップは、インタリーブ制御ステップが2ウェイで決まるメモリ構成の場合、実アドレス領域利用表の
素子選択アドレスの下位第2ビット(B1)、
実アドレスの最下位ビット(A0)及び
実アドレスの最上位ビット(A7)
の3ビットアドレス(B1 A0 A7)によりN分割された各領域に利用許可情報又は利用禁止情報を記録した2ウェイ論理アドレス領域利用表を作成してCPUが利用する論理アドレス空間の分割領域を決定し、
更に論理アドレス領域管理ステップは、インタリーブ制御ステップが4ウェイで決まるメモリ構成の場合、実アドレス領域利用表の
実アドレスの下位2ビット(A1 A0)及び
実アドレスの最上位ビット(A7)
の3ビットアドレス(A1 A0 A7)によりN分割された各領域に利用許可情報又は利用禁止情報を記録した4ウェイ論理アドレス領域利用表を作成してCPUが利用する論理アドレス空間の分割領域を決定する。
(プログラム)
本発明はメモリ制御プログラムを提供する。本発明のメモリ制御プログラムは、CPUからの論理アドレスを素子選択アドレスとメモリ素子アドレスから構成される実アドレスに変換して複数のメモリ素子をアクセスするメモリ制御装置のコンピュータに、
N領域に分割された論理アドレス空間を利用したCPUの論理アドレスをウェイ数Wで決まる実アドレスに変換して複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Wの指定によりメモリ構成を再構成可能なインタリーブ制御ステップと、
複数のメモリ素子で構成される実アドレス空間を、CPU論理アドレス空間の領域数Nにインタリーブ制御の最大ウェイ数Wmaxを乗じた(N×Wmax)領域に分割して利用可能情報を記録した全ウェイ数に共通な実アドレス領域利用表を作成し、メモリ素子の異常を検出した際に実アドレス領域利用表の異常個所を含む領域に利用禁止情報を記録する実アドレス領域管理ステップと、
インタリーブ制御ステップのウェイ数Wで決まるメモリ構成に対応して、実アドレス領域利用表から論理アドレス空間における各領域に利用可能情報又は利用禁止情報を記録した論理アドレス領域利用表を生成してCPUが利用する論理アドレス空間の領域を決定する論理アドレス領域管理ステップと、
を実行させることを特徴とする。
(装置)
本発明はメモリ制御装置を提供する。即ち、本発明のメモリ制御装置は、
素子選択アドレスとメモリ素子アドレスから構成される実アドレスによりアクセスされる複数のメモリ素子と、
N領域に分割された論理アドレス空間を利用したCPUの論理アドレスをウェイ数Wで決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Wの指定によりメモリ構成を再構成可能なインタリーブ制御部と、
複数のメモリ素子で構成される実アドレス空間を、CPU論理アドレス空間の領域数Nにインタリーブ制御の最大ウェイ数Wmaxを乗じた(N×Wmax)領域に分割して利用可能情報を記録した全ウェイ数に共通な実アドレス領域利用表を作成し、メモリ素子の異常を検出した際に実アドレス領域利用表の異常個所を含む領域に利用禁止情報を記録する実アドレス領域管理部と、
インタリーブ制御部のウェイ数Wで決まるメモリ構成に対応して、実アドレス領域利用表から論理アドレス空間における各領域に利用可能情報又は利用禁止情報を記録した論理アドレス領域利用表を生成してCPUが利用する論理アドレス空間の領域を決定する論理アドレス領域管理部と、
を備えたことを特徴とする。
本発明は情報処理装置を提供する。即ち、本発明は、
処理部と、
処理部に接続され、情報を記憶する記憶部と、
記憶装置へのアクセスを制御するメモリ制御部とを備えた情報処理装置に於いて、
メモリ制御部は、CPUからの論理アドレスを実アドレスに変換して記憶部をアクセスする制御部と、
記憶部の実アドレス空間の領域ごとに記憶部の利用可否情報を記憶した第一のテーブルに、異常が検出された前記記憶部の領域に関する利用禁止情報を記録する実アドレス管理部と、
第一のテーブル内容に基づいて、論理アドレス空間における各領域の利用可否情報を記録した論理アドレス領域利用表の内容を更新する論理アドレス領域管理部と、
を備えたことを特徴とする。
本発明によれば、CPUから見たメモリモジュールの利用可能な領域の管理をメモリ素子アドレスを基準として行う。メモリ素子アドレスは、メモリの構成変更に依存せず、メモリ素子により決まる。メモリ異常箇所が同じであれば、その異常箇所を指すメモリ素子アドレスは変わらない。このメモリ素子アドレスによる利用可能領域の情報として実アドレス領域利用表を作成し、この実アドレス領域利用表をそのときのメモリ構成に対応するCPUから見えるアドレスでの利用可能な領域情報である論理アドレス領域利用表に変換し、この論理アドレス領域利用表の情報を元にメモリ利用可能領域を決定する。
このため、メモリ素子アドレスによる利用可能領域の情報として実アドレス領域利用表を作成して保持しておくだけで良く、インタ
リーブ制御のウェイ数に対応したメモリ構成ごとに異なるCPUアドレスから見たメモリ利用可能情報を保持する必要がなくなり、メモリ利用可能領域の管理が容易になる。
更に、メモリの構成変更により、メモリ素子アドレスとCPUから見えるアドレスの対応が変更となった場合、変更前のメモリ異常個所に基づくメモリ縮退情報を引き継ぐことができ、新しいCPUから見えるアドレスでのメモリ縮退情報を簡単に作成することができる。
本発明のメモリ制御装置を備えたコンピュータシステムのブロック図 図1のメモリコントローラのアドレス変換機構の説明図 1ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図 図3の1ウェイインターリーブのアドレス変換に対応したアドレスマップの説明図 1ウェイインタリーブによるメモリモジュールのアクセスの説明図 2ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図 図6の2ウェイインタリーブのアドレス変換に対応したアドレスマップの説明図 2ウェイインタリーブによるメモリモジュールのアクセスの説明図 CPUアドレス空間を8領域とした場合のインタリーブ制御のウェイ数に対する実アドレス空間の分割領域数、CPUアドレスと実アドレスとの対応関係の説明図 1ウェイと2ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの実アドレス領域利用表と、そこから作成される1ウェイメモリ構成時のCPUの論理アドレス領域利用表の説明図 1ウェイと2ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの実アドレス領域利用表と、そこから作成される2ウェイメモリ構成時のCPUの論理アドレス領域利用表の説明図 本発明におけるメモリ素子アドレスの実アドレス領域利用表作成処理のフローチャート 図12の処理により作成した実アドレス領域利用表からウェイ数に応じたメモリ構成の論理アドレス領域利用表を作成してCPUの使用領域を決定するコンピュータシステムのフローチャート 図13のステップS6による1ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャート 図14に続く2ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャート 4ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図 図16の4ウェイインタリーブのアドレス変換に対応したアドレスマップの説明図 図17に続くアドレスマップの説明図 4ウェイインタリーブによるメモリモジュールのアクセスの説明図 1ウェイ、2ウェイ又は4ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの実アドレス領域利用表と、そこから1ウェイメモリ構成時のCPUの論理アドレス領域利用表を作成する処理の説明図 1ウェイ、2ウェイ又は4ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの実アドレス領域利用表と、そこから2ウェイメモリ構成時のCPUの論理アドレス領域利用表を作成する処理の説明図 1ウェイ、2ウェイ又は4ウェイでメモリ再構成可能な場合に作成されるメモリ素子アドレスの実アドレス領域利用表と、そこから4ウェイメモリ構成時のCPUの論理アドレス領域利用表を作成する処理の説明図 図22の実アドレス領域利用表から作成した論理アドレス領域利用表の説明図 1ウェイ、2ウェイ又は4ウェイに対応した実アドレス領域利用表から1ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャート 1ウェイ、2ウェイ又は4ウェイに対応した実アドレス領域利用表から2ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャート 1ウェイ、2ウェイ又は4ウェイに対応した実アドレス領域利用表から4ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャート
図1は本発明のメモリ制御装置を備えたコンピュータシステムのブロック図である。図1において、本発明のメモリ制御装置を構成するメモリコントローラ10に対しては、CPU12−1〜12−4とメモリモジュール14−1〜14−4が接続されている。メモリコントローラ10にはインタリーブ制御部16、実アドレス領域管理部18及び論理アドレス領域管理部20が設けられ、更に実アドレス領域管理ファイル22が接続されている。
メモリコントローラ10のインタリーブ制御部16は、異なるウェイ数Wの指定によりメモリ構成を再構成可能であり、ウェイ数Wとしては例えば2のべき乗となる1ウェイ、2ウェイ、4ウェイといったウェイ数のメモリ構成によるインタリーブ制御を行う。
ここでインタリーブ制御は複数のメモリモジュールに対し同一アドレスを指定し、モジュール選択アドレスによりモジュールを交互に切り替えながらアクセスする制御であり、メモリモジュールを順番に選択してアクセスする場合に比べ、予めアドレス指定が行われた状態でモジュールを切り替えることから、メモリモジュールの高速動作が可能である。
そして2ウェイのインタリーブとは2つのメモリモジュール間に跨って同一アドレスを指定してモジュールを切り替える制御であり、4ウェイとは4つのメモリモジュールに対し同一アドレスを指定した状態でモジュールを順番に切り替えてアクセスする制御となる。
また1ウェイのインタリーブ制御とは、メモリモジュールを順番に選択しながらアクセスするもので、複数のメモリモジュールに跨ったアドレス指定でないことから、これはインタリーブなしのアクセスであるが、説明を分かり易くするため、以下にあってはインタリーブなしを1ウェイのインタリーブ制御としている。
またインタリーブ制御部16にあっては、メモリモジュール14−1〜14−4側におけるメモリ故障に対応するため、CPU12−1〜12−4のCPUアドレスで見える論理アドレス空間を複数領域、例えばN領域に分割し、メモリ異常を検出した際には異常個所に対応した領域を利用禁止とする領域利用管理を行っている。
このCPU空間における利用管理領域は、従来はCPUのアドレス空間の分割領域に分けて領域利用情報、即ち利用可能か利用禁止かを格納した論理アドレス領域利用表を作成し、これに基づきCPUが利用する論理アドレス空間の領域を決定しているが、本発明にあっては、このようなCPUの論理アドレス空間を管理する論理アドレス領域利用表を固定的にメモリコントローラ10が保持せず、メモリモジュール14−1〜14−4側のメモリ素子アドレスに基づいて、CPUの論理アドレス空間の論理アドレス領域利用表に変換可能な実アドレス領域利用表を作成して保持している。
即ちメモリコントローラ10に設けた実アドレス領域管理部18は、メモリモジュール14−1〜14−4で構成される実アドレス空間を、CPU側の論理アドレス空間の領域数Wに、インタリーブ制御部16で再構成可能な異なるウェイ数Wのうちの最大ウェイ数Wmaxを乗じた(N×Wmax)の領域に分割し、この分割領域ごとに、初期状態にあっては利用可能情報を記録した全ウェイ数のメモリ構成で共用できる実アドレス領域利用表を作成している。
この実アドレス領域利用表には、メモリモジュール14−1〜14−4の異常を検出した際に、異常箇所を含む実アドレス領域利用表の領域に利用禁止情報を記録する。実アドレス領域管理部18で作成されたインタリーブ制御部16でメモリ構成の再構成可能な全ウェイ数に共通な実アドレス領域利用表は、実アドレス領域管理ファイル22に保存される。
メモリコントローラ10の論理アドレス領域管理部20は、コンピュータシステムの立上げ時あるいはインタリーブ制御部16におけるメモリ構成の再構成時に、実アドレス領域管理ファイル22に保持されている実アドレス領域利用表からCPU側の論理アドレス空間をN領域に分割して利用可能情報または利用禁止情報を記録した論理アドレス領域利用表をその都度作成し、作成した論理アドレス領域利用表に基づいて、立上げ時またはメモリ再構成時にCPU12−1〜12−4が利用する論理アドレス空間の領域を決定するようにしている。
このように本発明のメモリ制御にあっては、メモリモジュール14−1〜14−4の実アドレスから見たCPU側の論理アドレス空間の領域を生成可能な実アドレス領域利用表を作成して保持しておくことで、インタリーブ制御部16でウェイ数に応じてメモリ構成が決まれば、そのウェイ数により決まったメモリ構成に対応した変換処理により実アドレス領域管理ファイル22に保持されている実アドレス領域利用表から、そのときのウェイ数のインタリーブ制御に対応した論理アドレス領域利用表をその都度作成して、CPUが利用する論理アドレス空間の領域を決定することができる。
この結果、メモリコントローラ10においてメモリ構成を変更した場合にも、変更前の領域利用情報を変更後に引き継いで、CPUのアドレス空間における領域の利用可能情報または利用禁止情報を簡単に生成して、メモリモジュール14−1〜14−4の任意の位置における異常箇所をCPU側の領域に組み込まないようにすることができる。
このような本発明のメモリ制御につき、インタリーブ制御部16でウェイ数1または2の指定によりメモリ再構成が可能な場合を例にとって具体的に説明する。
図2は図1のメモリコントローラ10のウェイ数の設定によりインタリーブ制御のメモリ構成を再構成可能なアドレス変換機構の説明図である。
図2において、メモリモジュール14−1〜14−4はそれぞれ256バイトであり、合計サイズは1024バイトを例にとっている。このようなメモリモジュール14−1〜14−4で構成される1024バイトのメモリ空間につき、CPU12−1〜12−4側にあっては、例えばN=8領域に分割して利用可能情報を管理しており、CPU側の1領域のサイズは128バイトとなる。
メモリモジュール14−1〜14−4で構成される1024バイトのメモリ空間は、CPU12−1〜12−4からの10ビットのCPUアドレスC9〜C0でアクセスすることができる。このためメモリコントローラ10には、10ビットのCPUアドレスC9〜C0を保持する入力アドレスレジスタ26が設けられている。
一方、メモリモジュール14−1〜14−4の実アドレスは、メモリモジュール14−1〜14−4のそれぞれをアクセスする8ビットのメモリ素子アドレスA7〜A0と、メモリモジュール14−1〜14−4を選択するための2ビットの素子選択アドレスB1,B0で構成される。
このためメモリモジュール14−1〜14−4側には、メモリ素子アドレスA7〜A0を格納する出力アドレスレジスタ28と、素子選択アドレスB1,B0を保持するモジュール選択レジスタ30が設けられ、モジュール選択レジスタ30のアドレスはメモリモジュール選択器32に入力され、B1,B0=00,01,10,11により、メモリモジュール14−1〜14−4を順次選択できるようにしている。
入力アドレスレジスタ26と出力アドレスレジスタ28の間にはセレクタ34,36が設けられている。セレクタ34は、入力アドレスレジスタ26の上位2ビットC9,C8と出力アドレスレジスタ28の下位2ビットA1,A0の切替接続を行う。またセレクタ36は、入力アドレスレジスタ26の上位2ビットC9,C8と下位2ビットC1,C0のモジュール選択レジスタ30の素子選択ビットB1,B0に対する切替接続を行う。
ここでメモリコントローラ10のインタリーブ制御におけるウェイ数は、1ウェイ、2ウェイ、4ウェイの3つによるメモリ構成の切替を例にとっており、セレクタ34,36による切替接続で1ウェイ、2ウェイまたは4ウェイによるアドレス変換機構を実現するための接続を確立できるようにしている。
このため、入力アドレスレジスタ26、出力アドレスレジスタ28、メモリモジュール選択器32に設けたモジュール選択レジスタ30、及びセレクタ34,36によって、インタリーブ制御によるウェイメモリ構成24を構築することができる。
図3は1ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図である。図3において、メモリコントローラ10は、図2に示したセレクタ34,36による接続切替で、図示の1ウェイメモリ構成24−1の入力アドレスレジスタ26に対する出力アドレスレジスタ28及びモジュール選択レジスタ30の接続を確立し、これによってCPU12−1〜12−4からの10ビットのCPUアドレスC9〜C0を入力アドレスレジスタ26に保持した状態で、出力アドレスレジスタ28のメモリモジュール14−1〜14−4の8ビットのメモリ素子アドレスA7〜A0とモジュール選択のための素子選択アドレスB1,B0に変換し、1ウェイインタリーブに従ったメモリアクセスを実行する。
1ウェイメモリ構成24−1はインタリーブなしの場合であり、この場合にはCPUアドレスの上位2ビットC9,C8を素子選択アドレスB1,B0に変換し、CPUアドレスの下位8ビットC7〜C0をメモリ素子アドレスA7〜A0に変換してアクセスする。
図4は図3の1ウェイインタリーブのアドレス変換に対応した1ウェイアドレスビットマップ38−1の説明図である。図4において、1ウェイアドレスマップ38−1は、上欄にメモリ選択とメモリアドレスに分けて、CPUアドレスC9〜C0と実アドレスとなる素子選択アドレスB1,B0及びメモリ素子アドレスA7〜A0を表示しており、CPUアドレスC9〜C0をオール0からオール1まで順次変化させたときのアドレスビットと、これに対応したアドレス10進表示を示している。
図5は1ウェイインタリーブによるメモリモジュールのアクセス説明図であり、この場合のアクセスは単純であり、4つのメモリモジュール14−1〜14−3は点線で示すように、CPU側から見た場合に8つの領域42−1〜42−8に分けられているが、CPUアドレスをオール0からオール1まで順次変化させた場合、矢印44−1〜44−8に示すようにメモリモジュール14−1〜14−3の順番、即ちCPU側から見た領域42−1〜42−8の順にアクセスすることができる。
ここで図3のメモリモジュール14−1のアドレス「11111111」、即ち10進表示でアドレス255番にデータの読み書きができないメモリ異常が発生していたとすると、図4の1ウェイアドレスマップ38−1においては異常箇所40となり、これはCPUアドレスC9〜C0から見ると「00111111111」となり、10進表示とした場合にも同じく255番アドレスとなる。
図6は2ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図である。図6のメモリコントローラ10にあっては、インタリーブ制御のウェイ数Wを2ウェイに指定することで、2ウェイメモリ構成24−2に示す入力アドレスレジスタ26に対する出力アドレスレジスタ28とメモリモジュール選択器32に設けたモジュール選択レジスタ30間の接続が確立される。
図7は図6の2ウェイインタリーブのアドレス変換に対応した2ウェイアドレスマップ38−2の説明図である。この2ウェイのインタリーブ制御にあっては、図8のメモリモジュール14−1〜14−4に示すように、2つのメモリモジュール14−1〜14−2のCPU側の分割数で決まる128バイト単位の領域につき、先頭アドレスで矢印60−1に示すように、メモリモジュール14−1とメモリモジュール14−2の同一アドレスを指定した状態で、素子選択アドレスによりメモリモジュール14−1,14−2を順番に切り替えて2アドレス分のアクセスを行う。
これをメモリモジュール14−1,14−2の前半の領域について行った後、次に後半の領域についてこれを繰り返す。続いて、次のメモリモジュール14−3,14−4につき、矢印60−3,60−4に示すように、128バイトに分けた前半の領域の同一アドレスの指定による順次読出しと後半の領域の同一アドレスの指定による順次読出しを繰り返す。
このような2ウェイインタリーブによる図7の2ウェイアドレスマップ38−2にあっては、CPUアドレスC9〜C0のオール0からオール1への変化に対し、メモリモジュール14−1,14−2を対象とした偶数アドレス領域58−1と奇数アドレス領域58−2、及びメモリモジュール14−3,14−4を対象とした偶数アドレス領域58−3と奇数アドレス領域58−4に分けられる。
そして前半の偶数アドレス領域58−1と奇数アドレス領域58−2にあっては、メモリ選択アドレスに示すように、素子選択アドレスB1,B0が「00」「01」と交互に変化することで、同一アドレスを2つのメモリモジュール14−1,14−2に指定した状態でモジュール選択を行う2ウェイのインタリーブ制御を行っている。この点は後半の偶数アドレス領域58−3,奇数アドレス領域58−4に対応したメモリモジュール14−3,14−4についても同様である。
このような2ウェイアドレスマップ38−2にあっては、マップ上における図4に示した1ウェイアドレスマップ38−1における異常箇所40は同じアドレス位置として保存することができる。
図9は本発明のメモリ制御におけるCPUアドレス空間の分割領域数N、インタリーブのウェイ数W、CPUアドレス空間の分割領域数Nに最大ウェイ数Wmaxを掛けた値として与えられる実アドレス空間の分割領域数M、更に、これに対応したCPU及び実メモリアドレスの対応関係の説明図である。即ち図9の対応表は、N=8、W=1,2,4、M=8,16,32とした場合につき、それぞれのメモリ構成におけるアドレス変換機構の変換関係を表わしている。
図10は、図1のメモリコントローラ10のインタリーブ制御部16で1ウェイと2ウェイでメモリ再構成可能な場合の実アドレス領域管理部18により生成される実アドレス利用表と、論理アドレス領域管理部20により実アドレス利用表から作成される1ウェイのメモリ構成で使用する論理アドレス領域利用表の説明図である。
図10(A)は、図10(B)に示す実アドレス領域利用表48から図10(C)に示す1ウェイ論理アドレス領域利用表50−1を作成するために使用する1ウェイサーチレジスタ46−1である。
まず図10(B)の実アドレス領域利用表48は、項目欄54に示すように、メモリモジュール14−1〜14−4の実アドレスを構成する素子選択アドレスとメモリ素子アドレスを使用した図9の対応表から決まる16領域に分けて利用フラグを格納している。
この実アドレス領域利用表48に格納する実アドレスは、実アドレス領域利用表48の上部に説明的に付加した項目52のように、図3の1ウェイメモリ構成24−1に示すアドレス変換機構により、CPUアドレスのC9,C8,C7,C0の4ビットが対応している。
ここで実アドレス領域利用表48の利用フラグは、利用可能情報として「○」を記載し、利用禁止情報として図4に示した異常箇所40のアドレスを含む領域に「×」を記録している。
このような実アドレス領域利用表48から1ウェイのインタリーブ制御のメモリ構成に必要な図10(C)の1ウェイ論理アドレス領域利用表50−1を作成する際には、図10(A)の1ウェイサーチレジスタ46−1を使用して実アドレス領域利用表48の利用フラグを調べる。
1ウェイサーチレジスタ46−1は、X、Y、Z、更に「0/1」領域と利用フラグの格納領域で構成されており、実アドレス領域利用表48を調べる際には
X=B1
Y=B0
Z=A7
A0=0/1
を格納し、上位3ビットが同一で4ビット目が0又は1と変化する4ビットアドレスの2領域を調べる。
このような1ウェイサーチレジスタ46−1による実アドレス領域利用表48の調査は、表の右側に矢印で示すように、領域ペア56−1〜56−8の各2つの領域につき、利用フラグが利用可能「○」か利用禁止「×」かを調べ、2つの領域につき両方とも利用可能「○」であれば、これに対応した図10(C)の領域の利用フラグを利用可能「○」とし、いずれか一方が利用禁止「×」であれば図10(C)の論理アドレス領域利用表50−1の利用フラグは利用禁止「×」とする。
このような実アドレス領域利用表48から作成された1ウェイ論理アドレス領域利用表50−1を見ると、CPU領域の2番目の領域#1が利用禁止「×」となっている。
図11は図10(B)と同じ実アドレス領域利用表48を使用して、2ウェイのインタリーブ制御によるメモリ構成時に2ウェイ論理アドレス領域利用表を作成する処理の説明図である。
図11(A)は、図11(B)の実アドレス領域利用表48から図11(C)の2ウェイ論理アドレス領域利用表50−2を作成するための調査を行う2ウェイサーチレジスタ46−2である。2ウェイサーチレジスタ46−2には上位側から
X=B1
B0=0/1
Z=A7
Y=A0
を格納して、それぞれの4ビット領域で決まる領域の利用フラグを調べる。
この2ウェイサーチレジスタ46−2を使用した実アドレス領域利用表48の調査は、右側の矢印で示す領域ペア62−1〜62−8につき、2つの領域の利用フラグが両方とも利用許可「○」であれば図11(C)の2ウェイ論理アドレス領域利用表50−2の対応する領域の利用フラグを利用可能「○」とし、いずれか一方が利用禁止「×」であれば2ウェイ論理アドレス領域利用表50−2の対応する領域の利用フラグを利用禁止「×」に記録する。
この結果、2ウェイのインタリーブ制御によるメモリ構成における2ウェイ論理アドレス領域利用表50−2のメモリ異常箇所を含むCPU領域は、4番目のCPU領域#3であることが分かる。
図12は本発明におけるメモリ素子アドレスから見た実アドレス領域利用表を作成する処理のフローチャートである。図12において、実アドレス領域利用表の作成処理は、ステップS1で論理アドレス空間の分割領域数N、例えばN=8を読み込み、ステップS2でメモリ構成可能なウェイ数W、例えばW=1,2,4を読み込み、ステップS3で論理アドレス空間の領域数Nに最大ウェイ数Wmaxを掛け合わせて実アドレス空間の分割数Mを算出する。例えば1ウェイと2ウェイで切替可能な場合には、M=8×2=16として16領域の分割数を求める。
続いてステップS4で、例えば図10(B)に示したような1ウェイと2ウェイの再構成が可能な場合には、素子選択アドレスB1,B0及びメモリ素子アドレスの最上位ビットA7と最下位ビットA0の4ビットを使用して16分割した領域を持つ実アドレス領域利用表を作成し、その利用フラグ即ち利用情報としては、初期作成時にあっては利用可能「○」を記録する。
図13は図12の処理により作成した実アドレス領域利用表からインタリーブ制御のウェイ数に応じたメモリ構成の論理アドレス表を作成してCPUの使用領域を決定するコンピュータシステムのフローチャートである。
図13において、コンピュータシステムは、ステップS1で電源起動に伴い初期化と診断を実行し、ステップS2でもしメモリ異常が検出されると、ステップS3で異常メモリモジュールの素子選択アドレスとメモリ素子アドレスを取得し、ステップS4で、既に作成した実アドレス領域利用表の異常箇所に対応した分割領域に使用禁止情報を書き込む。もちろんステップS2でメモリ異常がなければ、ステップS3,4の処理はスキップする。
続いてステップS5でメモリ構成のウェイ数を取得し、ステップS6で実アドレス領域利用表からウェイ数で決まるメモリ構成の論理アドレス領域利用表を作成し、CPUの利用領域を決定する。
続いてステップS7でコンピュータのブート処理に伴ってOSのインストールを行い、ステップS8でアプリケーションによる運用処理に入る。この運用処理中にステップS9でメモリ構成の変更があると、ステップS5に戻り、このメモリ構成の変更に伴う変更後のウェイ数を取得し、ステップS6で実アドレス領域利用表からメモリ構成変更後のウェイ数で決まるメモリ構成の論理アドレス領域利用表を作成してCPUの利用領域を決定し、再起動などによりステップS7からのOSのインストールを経て、ステップS8のアプリケーションによる運用処理に入る。
図14は図13のステップS6による1ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャートである。図14において、ステップS1でインタリーブによるメモリ構成が1ウェイであることを判別すると、ステップS2に進み、図10(A)の1ウェイサーチレジスタ46−1に実アドレス領域利用表48の実アドレス側の4ビットを配置した後、ステップS3でアドレスXYをオール0にセットし、ステップS4でアドレスXYZにつき実アドレス領域利用表48におけるA0=0の領域とA0=1の領域の利用フラグを調査する。
ステップS5で2つの領域の両方が利用許可「○」であればステップS6をスキップし、少なくともいずれか一方が利用禁止「×」であった場合にはステップS6で図10(C)の1ウェイ論理アドレス領域利用表50−1に、そのときのアドレスXYZに対応した領域に使用禁止「×」を書き込む。
続いてステップS7でアドレスXYZが最終アドレスか否かチェックし、最終アドレスでなければ、ステップS8でアドレスXYZを1つインクリメントし、ステップS4からの処理を繰り返す。
図15は図14に続く2ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャートである。図15にあっては、ステップS9でメモリ構成が2ウェイであることを判別すると、ステップS10に進み、図11(A)に示した2ウェイサーチレジスタ46−2に図11(B)の実アドレス領域利用表48のアドレスをセットする。
続いてステップS11でアドレスXYZをオール0の初期値にセットした後、ステップS12でアドレスXYにつきB0=0とB0=1の2つの領域の利用フラグを調査する。続いてステップS13で2つの領域の利用フラグの両方が利用許可「○」の場合は、ステップS14はスキップする。
少なくともいずれか一方が利用禁止「×」であった場合にはステップS14に進み、図11(C)に示した2ウェイ論理アドレス領域利用表50−2のアドレスXYZに対応した領域に利用禁止「×」を書き込む。続いてステップS15でアドレスXYZが最終アドレスか否かチェックし、そうでなければステップS16に戻ってアドレスXYZを1つインクリメントして、ステップS12からの処理を繰り返す。
次に図1のメモリコントローラ10に設けたインタリーブ制御部16において、インタリーブ制御によるメモリ構成として、1ウェイ、2ウェイ及び4ウェイのメモリ再構成が可能な場合の実アドレス領域利用表の作成と、そこから生成する論理アドレス領域利用表の作成を説明する。
図16は4ウェイインタリーブのメモリ構成によるアドレス変換機構の説明図であり、メモリコントローラ10における入力アドレスレジスタ26に対し、出力アドレスレジスタ28及びモジュール選択レジスタ30は図示のように接続され、これによって4ウェイメモリ構成24−3を確立する。
図17及び図18は、図16の4ウェイインタリーブのアドレス変換に対応した4ウェイアドレスマップ38−3の説明図である。
図19は4ウェイインタリーブによるメモリモジュールのアクセスの説明図である。図19において、4ウェイのインタリーブ制御にあっては、256バイトサイズを持つメモリモジュール14−1〜14−4をCPU側の分割数8に応じた128バイト領域に分け、矢印66−1〜66−3に示すように、メモリモジュール14−1〜14−4の前半について、同一アドレスを指定した状態で素子選択アドレスによりメモリモジュール14−1,14−2,14−3,1−4を順番に選択して、4ウェイインタリーブのアクセスを行う。
これをメモリモジュール14−1〜14−4の前半の領域につき繰り返した後、後半の領域について矢印68−1,68−2,68−3に示すように、4つのメモリモジュール14−1〜14−4につき同一アドレスを指定した状態で素子選択アドレスにより順次切り替えて、4インタリーブによるアクセスを繰り返す。
このような4ウェイのインタリーブ制御による図17及び図18の4ウェイアドレスマップ38−3にあっては、まず第1アドレス領域64−1に示すように、各メモリモジュール14−1〜14−4につき、アドレス10進表示に示すようにアドレス番号0,4,8,・・・と4アドレスずつ飛びながら4ウェイインタリーブによるアクセスを行い、続いて第2アドレス領域64−2のように、10進表示でアドレス番号1,5,7,・・・というように4アドレス置きとなるインタリーブを行い、更に第3アドレス領域64−3でアドレス番号2,6,12,・・・というように4ウェイインタリーブのアクセスを行い、更に図18の第4アドレス領域64−4に示すようにアドレス番号3,7,11,・・・とする4ウェイインタリーブによるアクセスを行うことになる。
図20は、1ウェイ、2ウェイ、4ウェイでメモリ再構成可能な場合に作成される実アドレス領域利用表と、そこから1ウェイメモリ構成時のCPUアドレスの論理アドレス領域利用表を作成する処理の説明図である。
図20(A)は、図20(B)の実アドレス領域利用表72から1ウェイ論理アドレス表を作成するために使用する1ウェイサーチレジスタ70−1の説明図である。
まず図20(B)の1ウェイ、2ウェイ及び4ウェイに対応した実アドレス領域利用表72は、図10(B)に示した1ウェイと2ウェイに対応した実アドレス領域利用表48に、更にメモリアドレスビットA1を加えた4ビットとすることで、実アドレス領域を32領域に分割している。
図20(A)の1ウェイサーチレジスタ70−1は、図10(A)の1ウェイサーチレジスタ46−1にメモリアドレスのアドレスビットA1=0/1を加えており、この1ウェイサーチレジスタ70−1を使用して実アドレス領域利用表72を調査することで、図10(C)に示したと同じ1ウェイ論理アドレス領域利用表50−1を作成することができる。
1ウェイサーチレジスタ70−1による実アドレス領域利用表72の調査は、4つの領域を1グループとしたグループ78−1〜78−8のそれぞれにつき、4領域の利用フラグが全て利用可能「○」であれば、図10(C)の1ウェイ論理アドレス領域利用表50−1の対応する利用フラグに利用可能「○」を記録する。
1グループを構成する領域の少なくともずれか1つが利用禁止「×」であれば、図10(C)の1ウェイ論理アドレス領域利用表50−1の利用フラグに利用禁止「×」を書き込む。
図21は、図20(B)と同じ実アドレス領域利用表72を使用して、図21の(A)の2ウェイサーチレジスタ70−2により調査して、図11(C)と同じ2ウェイ論理アドレス領域利用表50−2を作成する処理である。
この場合には、2ウェイサーチレジスタ70−2により実アドレス領域利用表72の右側に矢印で示す4つの領域のグループ80−1〜80−8のそれぞれの利用フラグを調べ、4つの領域の利用フラグが全て利用可能「○」であれば2ウェイ論理アドレス領域利用表50−2に利用可能「○」を記録し、4つの領域の少なくともいずれか1つが利用不可「×」であれば2ウェイ論理アドレス領域利用表50−2に利用禁止「×」を記録する。
図22は、図20(B)と同じ実アドレス領域利用表72を使用して4ウェイのメモリ構成に対応した論理アドレス領域利用表を作成する処理の説明図である。図22(A)は実アドレス領域利用表72の調査に使用する4ウェイサーチレジスタ70−3であり、
X=A1
Y=A0
Z=A7
B0=0/1
B1=0/1
をセットする。
即ち、アドレスXYZを000〜111で変化させながら各位置ごとにB1,B0を00,01,10,11の4段階に変化させて、実アドレス領域利用表72を調査する。
この4ウェイサーチレジスタ70−3を用いた実アドレス領域利用表72の調査により、その右側に矢印で示す4領域のグループ82−1〜82−8につき、4領域の利用フラグが全て利用可能「○」であれば、図23の4ウェイ論理アドレス領域利用表50−3の対応する利用フラグに利用可能「○」を記録する。一方、4領域の少なくともいずれか1つの利用フラグが利用禁止「×」であれば、図23の4ウェイ論理アドレス領域利用表50−3の利用フラグに利用禁止「×」を格納する。
このような実アドレス領域利用表48から作成された図23の4ウェイ論理アドレス領域利用表50−3を見ると、CPU領域の8番目の領域#7が利用禁止「×」となっている。
このように、1ウェイ、2ウェイ、4ウェイについてメモリ構成が再構成可能な場合についても、メモリ素子アドレスから見た1つの実アドレス領域利用表72を作成して保存しておくことで、その後はメモリ構成が確定するごとに、そのメモリ構成を確定するインタリーブ制御のウェイ数に応じた実アドレス領域利用表の調査即ち変換操作により、それぞれのウェイ数に対応した論理アドレス領域利用表を作成して、CPU側の使用可能領域を決定することができる。
図24は図20に示した実アドレス領域利用表から1ウェイメモリ構成時の論理アドレス領域利用表を作成する処理であり、ステップS1で1ウェイを判別すると、ステップS2で実アドレス領域利用表72のアドレスを1ウェイサーチレジスタ70−1にセットし、ステップS3でアドレスXYZを初期値にセットした後、ステップS4でアドレスXYZにつきA1,A0=00,01,10,11の4領域につき利用フラグを調査する。
続いてステップS5で4領域の全てが利用許可であればステップS6はスキップし、少なくともいずれか1つが利用禁止であればステップS6で1ウェイ論理アドレス領域利用表のアドレスXYZに使用禁止を書き込む。このような処理をステップS7でアドレスXYの最終アドレスを判別するまで、ステップS8でアドレスXYをインクリメントしながら繰り返す。
図25は、図21において実アドレス領域利用表72から2ウェイメモリ構成時の論理アドレス領域利用表を作成する処理のフローチャートである。図25において、ステップS9で2ウェイのメモリ構成を判別すると、ステップS10で実アドレス領域利用表72のアドレスを2ウェイサーチレジスタ70−2にセットし、ステップS11でアドレスXYZを初期アドレスにセットした後、ステップS12でアドレスXYZにつきA1,B0=00,01,10,11の4領域の利用フラグを調査する。
続いてステップS13で4領域の全てが利用許可「○」であればステップS14はスキップし、少なくともいずれか1つが利用不可「×」であればステップS14で2ウェイ論理アドレス領域利用表のアドレスXYZの領域に利用禁止「×」を書き込む。このステップS12からの処理を、ステップS15で最終アドレスを判別するまで、ステップS16でアドレスをインクリメントしながら繰り返す。
図26は、図22及び図23における実アドレス領域利用表72から4ウェイ構成時の論理アドレス領域利用表50−3を作成する処理のフローチャートである。図26において、ステップS17で4ウェイのメモリ構成を判別すると、ステップS18で実アドレス領域利用表72のアドレスを4ウェイサーチレジスタ70−3にセットし、ステップS19でアドレスXYZを初期値にセットした後、ステップS20でアドレスXYZにつきB1,B0=00,01,10,11の4領域の利用フラグを調査する。
続いてステップS21で、4領域の全てが利用許可「○」であればステップS22はスキップし、少なくともいずれか1つが利用禁止「×」であればステップS22に進み、図23の4ウェイ論理アドレス領域利用表50−3の利用フラグに利用禁止「×」を書き込む。このステップS20からの処理を、ステップS23で最終アドレスを判別するまで、ステップS24でアドレスをインクリメントしながら繰り返す。
また本発明は、コンピュータシステムのメモリコントローラ、即ちメモリ制御装置で実行されるプログラムを提供するものであり、このプログラムは図12、図13、図14、図15、図24、図25、図26のフローチャートに示した内容を持つことになる。
また上記の実施形態は、CPUの論理アドレス空間の分割数NをN=8、インタリーブ制御のウェイ数を1ウェイ、2ウェイ、4ウェイとした場合を例にとるものであるが、CPU空間の分割数N及びインタリーブ制御のウェイ数Wは必要に応じて任意に定めることができ、望ましくはそれぞれ2のべき数として定めることが望ましい。
また上記の実施形態は、説明を簡単にするため、メモリモジュール1つ当たりのサイズを256バイトとした場合を例に取るものであったが、このメモリモジュールのメモリサイズについても必要に応じて適宜の値をとることができる。
また上記の実施形態にあっては、コンピュータシステムの起動時とメモリ再構成時における実アドレス領域利用表からの論理アドレス領域利用表の作成処理を例に取るものであったが、この実アドレス領域利用表からの作成処理は、これ以外に、電源ダウンに伴う再起動時、システム切替えによる再構成時など、適宜のメモリ構成のタイミング、更にはメモリモジュールにつき新たな異常箇所を検出した際に行うようにしてもよい。
特にメモリモジュールの故障検出については、保存している実アドレス領域利用表の対応する領域の許可フラグを利用禁止に書き替える処理を異常検出が行われるごとに実行することが望ましい。これによって、メモリ異常による縮退状況をリアルタイムに反映したCPU側におけるメモリ領域の利用に反映した制御を行うことができる。
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。

Claims (10)

  1. 処理装置からの論理アドレスをメモリ素子選択アドレスとメモリ素子アドレスとを有する実アドレスに変換して複数のメモリ素子をアクセスするメモリ制御方法に於いて、
    領域数領域に分割された論理アドレス空間をもつ前記処理装置の論理アドレスをウェイ数Wで決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Wの指定によりメモリ構成を再構成可能なインタリーブ制御ステップと、
    前記メモリ素子の異常を検出した際に、前記複数のメモリ素子で構成される実アドレス空間を、前記領域数Nに前記インタリーブ制御の最大ウェイ数Wmaxを乗じた(N×Wmax)領域に分割して利用可能情報を記録した実アドレス領域利用情報格納部に前記メモリ素子の異常が検出された個所を含む領域が利用できないことを示す利用禁止情報を記録する実アドレス領域管理ステップと、
    前記インタリーブ制御ステップのウェイ数Wで決まるメモリ構成に対応して、前記実アドレス領域利用情報格納部に記録した利用禁止情報に基づいて前記メモリ素子の利用できない領域を含まないように前記論理アドレス空間における各領域の利用可能情報を有する論理アドレス領域利用情報を生成して前記処理装置が利用する前記論理アドレス空間の領域を決定する論理アドレス領域管理ステップと、
    を備えたことを特徴とするメモリ制御方法。
  2. 請求項記載のメモリ制御方法に於いて、前記インタリーブ制御ステップは、2のべき乗数となる異なるウェイ数Wのいずれか指定によりメモリ構成を再構成することを特徴とするメモリ制御方法。
  3. 請求項記載のメモリ制御方法に於いて、
    前記インタリーブ制御ステップは、ウェイ数1又は2の指定によりメモリ再構成が可能であり、
    前記実アドレス領域管理ステップは、
    素子選択アドレスの下位2ビット、
    実アドレスの最上位ビット及び
    実アドレスの最下位ビット
    の4ビットアドレスにより前記CPU論理アドレス空間の領域数Nに前記インタリーブ制御の最大ウェイ数2を乗じて(N×2)分割された各領域に利用許可情報又は利用禁止情報を記録した実アドレス領域利用情報情報を生成し、
    前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが1ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報
    素子選択アドレスの下位2ビット及び
    実アドレスの最下位ビット
    の3ビットアドレスによりN分割された各領域に利用許可情報又は利用禁止情報を記録した1ウェイ論理アドレス領域利用情報を作成して前記CPUが利用する前記論理アドレス空間の領域を決定し、
    また前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが2ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報
    素子選択アドレスの下位第2ビット、
    実アドレスの最下位ビット及び
    実アドレスの最上位ビット
    の3ビットアドレスによりN分割された各領域に利用許可情報又は利用禁止情報を記録した2ウェイ論理アドレス領域利用情報を作成して前記処理装置が利用する前記論理アドレス空間の領域を決定することを特徴とするメモリ制御方法。
  4. 請求項記載のメモリ制御方法に於いて、
    前記インタリーブ制御ステップは、ウェイ数1又は2の指定によりメモリ再構成が可能であり、
    前記実アドレス領域管理ステップは、
    素子選択アドレスの下位2ビット、
    実アドレスの最上位ビット及び
    実アドレスの最下位ビット
    の4ビットアドレスにより前記処理装置論理アドレス空間の領域数Nに前記インタリーブ制御の最大ウェイ数2を乗じて(N×2)分割された各領域に利用許可情報又は利用禁止情報を記録した実アドレス領域利用情報を生成することを特徴とするメモリ制御方法。
  5. 請求項記載のメモリ制御方法に於いて、
    前記インタリーブ制御ステップは、ウェイ数1又は2の指定によりメモリ再構成が可能であり、
    前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが1ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報
    素子選択アドレスの下位2ビット及び
    実アドレスの最下位ビット
    の3ビットアドレスによりN分割された各領域に利用許可情報又は利用禁止情報を記録した1ウェイ論理アドレス領域利用情報を作成して前記処理装置が利用する前記論理アドレス空間の領域を決定することを特徴とするメモリ制御方法。
  6. 請求項記載のメモリ制御方法に於いて、
    前記インタリーブ制御ステップは、ウェイ数1又は2の指定によりメモリ再構成が可能であり、
    前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが2ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報
    素子選択アドレスの下位第2ビット、
    実アドレスの最下位ビット及び
    実アドレスの最上位ビット
    の3ビットアドレスによりN分割された各領域に利用許可情報又は利用禁止情報を記録した2ウェイ論理アドレス領域利用情報を作成して前記処理装置が利用する前記論理アドレス空間の領域を決定することを特徴とするメモリ制御方法。
  7. 請求項記載のメモリ制御方法に於いて、
    前記インタリーブ制御ステップは、ウェイ数1、2又は4の指定によりメモリ再構成可能であり、
    前記実アドレス領域管理ステップは、
    素子選択アドレスの下位2ビット、
    実アドレスの最上位ビット及び
    実アドレスの下位2ビット
    の5ビットアドレスにより前記CPU論理アドレス空間の領域数Nに前記インタリーブ制御の最大ウェイ数4を乗じて(N×4)分割された各領域に利用許可情報又は利用禁止情報を記録した実アドレス領域利用情報を生成し、
    前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが1ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報
    素子選択アドレスの下位2ビット及び
    実アドレスの最下位ビット
    の3ビットアドレスによりN分割された各領域に利用許可情報又は利用禁止情報を記録した1ウェイ論理アドレス領域利用情報を作成して前記処理装置が利用する前記論理アドレス空間の領域を決定し、
    また前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが2ウェイで決まるメモリ構成の場合、前記実アドレス領域利用情報
    素子選択アドレスの下位第2ビット、
    実アドレスの最下位ビット及び
    実アドレスの最上位ビット
    の3ビットアドレスによりN分割された各領域に利用許可情報又は利用禁止情報を記録した2ウェイ論理アドレス領域利用情報を作成して前記CPUが利用する前記論理アドレス空間の領域を決定し、
    更に前記論理アドレス領域管理ステップは、前記インタリーブ制御ステップが4ウェイで決まるメモリ構成の場合、前記実アドレス領域利用表の
    実アドレスの下位2ビット及び
    実アドレスの最上位ビット
    の3ビットアドレスによりN分割された各領域に利用許可情報又は利用禁止情報を記録した4ウェイ論理アドレス領域利用情報を作成して前記CPUが使用する前記論理アドレス空間の領域を決定することを特徴とするメモリ制御方法。
  8. 処理装置からの論理アドレスをメモリ素子選択アドレスとメモリ素子アドレスとを有する実アドレスに変換して複数のメモリ素子をアクセスするメモリ制御装置のコンピュータに、
    領域数領域に分割された論理アドレス空間をもつ前記処理装置の論理アドレスをウェイ数Wで決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Wの指定によりメモリ構成を再構成可能なインタリーブ制御ステップと、
    前記メモリ素子の異常を検出した際に、前記複数のメモリ素子で構成される実アドレス空間を、前記領域数Nに前記インタリーブ制御の最大ウェイ数Wmaxを乗じた(N×Wmax)領域に分割して利用可能情報を記録した実アドレス領域利用情報格納部に前記メモリ素子の異常が検出された個所を含む領域が利用できないことを示す利用禁止情報を記録する実アドレス領域管理ステップと、
    前記インタリーブ制御ステップのウェイ数Wで決まるメモリ構成に対応して、前記実アドレス領域利用情報格納部に記録した利用禁止情報に基づいて前記メモリ素子の利用できない領域を含まないように前記論理アドレス空間における各領域の利用可能情報を有する論理アドレス領域利用情報を生成して前記処理装置が利用する前記論理アドレス空間の領域を決定する論理アドレス領域管理ステップと、
    を実行させることを特徴とするメモリ制御プログラム。
  9. 処理装置からの論理アドレスをメモリ素子選択アドレスとメモリ素子アドレスとを有する実アドレスに変換して複数のメモリ素子をアクセスするメモリ制御装置に於いて、
    領域数Nの領域に分割された論理アドレス空間をもつ前記処理装置の論理アドレスをウェイ数Wで決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Wの指定によりメモリ構成を再構成可能なインタリーブ制御部と、
    前記メモリ素子の異常を検出した際に、前記複数のメモリ素子で構成される実アドレス空間を、前記領域数Nに前記インタリーブ制御の最大ウェイ数Wmaxを乗じた(N×Wmax)領域に分割して利用可能情報を記録した実アドレス領域利用情報格納部に前記メモリ素子の異常が検出された個所を含む領域が利用できないことを示す利用禁止情報を記録する実アドレス領域管理部と、
    前記インタリーブ制御ステップのウェイ数Wで決まるメモリ構成に対応して、前記実アドレス領域利用情報格納部に記録した利用禁止情報に基づいて前記メモリ素子の利用できない領域を含まないように前記論理アドレス空間における各領域の利用可能情報を有する論理アドレス領域利用情報を生成して前記処理装置が利用する前記論理アドレス空間の領域を決定する論理アドレス領域管理部と、
    を備えたことを特徴とするメモリ制御装置。
  10. 処理装置からの論理アドレスをメモリ素子選択アドレスとメモリ素子アドレスとを有する実アドレスに変換して複数のメモリ素子をアクセスを制御する情報処理装置に於いて、
    領域数Nの領域に分割された論理アドレス空間をもつ前記処理装置の論理アドレスをウェイ数Wで決まる実アドレスに変換して前記複数のメモリ素子をインタリーブ制御によりアクセスし、異なるウェイ数Wの指定によりメモリ構成を再構成可能なインタリーブ制御部と、
    前記メモリ素子の異常を検出した際に、前記複数のメモリ素子で構成される実アドレス空間を、前記領域数Nに前記インタリーブ制御の最大ウェイ数Wmaxを乗じた(N×Wmax)領域に分割して利用可能情報を記録した実アドレス領域利用情報格納部に前記メモリ素子の異常が検出された個所を含む領域が利用できないことを示す利用禁止情報を記録する実アドレス領域管理部と、
    前記インタリーブ制御ステップのウェイ数Wで決まるメモリ構成に対応して、前記実アドレス領域利用情報格納部に記録した利用禁止情報に基づいて前記メモリ素子の利用できない領域を含まないように前記論理アドレス空間における各領域の利用可能情報を有する論理アドレス領域利用情報を生成して前記処理装置が利用する前記論理アドレス空間の領域を決定する論理アドレス領域管理部と、
    を備えたことを特徴とする情報処理装置。
JP2007552819A 2005-12-28 2005-12-28 メモリ制御方法、プログラム及び装置 Expired - Fee Related JP4810542B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2005/024053 WO2007077595A1 (ja) 2005-12-28 2005-12-28 メモリ制御方法、プログラム及び装置

Publications (2)

Publication Number Publication Date
JPWO2007077595A1 JPWO2007077595A1 (ja) 2009-06-04
JP4810542B2 true JP4810542B2 (ja) 2011-11-09

Family

ID=38227962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007552819A Expired - Fee Related JP4810542B2 (ja) 2005-12-28 2005-12-28 メモリ制御方法、プログラム及び装置

Country Status (6)

Country Link
US (1) US8219881B2 (ja)
EP (1) EP1967955A4 (ja)
JP (1) JP4810542B2 (ja)
KR (1) KR101011171B1 (ja)
CN (1) CN101292229B (ja)
WO (1) WO2007077595A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101553651B1 (ko) * 2009-10-13 2015-09-17 삼성전자 주식회사 다중 뱅크 메모리 액세스 장치
US9256531B2 (en) 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
CN103197999B (zh) * 2013-03-22 2016-08-03 北京百度网讯科技有限公司 一种内存故障自动定位方法及装置
US9495291B2 (en) * 2013-09-27 2016-11-15 Qualcomm Incorporated Configurable spreading function for memory interleaving
US9043638B1 (en) * 2014-11-14 2015-05-26 Quanta Computer Inc. Method for enhancing memory fault tolerance

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5532188A (en) * 1978-08-29 1980-03-06 Nec Corp Reconstruction controller of memory module
JPS5552600A (en) * 1978-10-13 1980-04-17 Nec Corp Main memory unit
JPH01156852A (ja) * 1987-12-15 1989-06-20 Nec Corp インターリーブ制御方式
JPH11312120A (ja) * 1998-04-28 1999-11-09 Nec Eng Ltd 記憶装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory
JPH02166543A (ja) 1988-12-21 1990-06-27 Nec Ibaraki Ltd 複数メモリ用動作制御装置
JPH0430231A (ja) * 1990-05-25 1992-02-03 Hitachi Ltd 主記憶アドレッシング方式
JPH04145557A (ja) 1990-10-05 1992-05-19 Nec Corp 記憶装置の障害処理方式
JPH04165548A (ja) 1990-10-30 1992-06-11 Fujitsu Ltd メモリアドレス制御方式
US5367653A (en) * 1991-12-26 1994-11-22 International Business Machines Corporation Reconfigurable multi-way associative cache memory
EP0615190A1 (en) * 1993-03-11 1994-09-14 Data General Corporation Expandable memory for a digital computer
US5524231A (en) * 1993-06-30 1996-06-04 Intel Corporation Nonvolatile memory card with an address table and an address translation logic for mapping out defective blocks within the memory card
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
JP4315488B2 (ja) * 1998-06-30 2009-08-19 ソニー株式会社 データ記憶装置、データ処理装置、データ処理システム並びにデータ処理方法
US6748480B2 (en) * 1999-12-27 2004-06-08 Gregory V. Chudnovsky Multi-bank, fault-tolerant, high-performance memory addressing system and method
JP3741258B2 (ja) * 2000-03-31 2006-02-01 シャープ株式会社 半導体記憶装置およびその救済方法
JP2002278836A (ja) * 2001-03-15 2002-09-27 Oki Electric Ind Co Ltd キャッシュメモリ
DE10127194B4 (de) * 2001-06-05 2008-08-21 Infineon Technologies Ag Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen
US6874070B2 (en) * 2002-02-22 2005-03-29 Hewlett-Packard Development Company, L.P. System and method for memory interleaving using cell map with entry grouping for higher-way interleaving
JP4145557B2 (ja) 2002-04-24 2008-09-03 東芝機械株式会社 主軸端面清掃機能を有する自動工具交換装置およびそのシーケンス制御装置
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
JP4165548B2 (ja) 2005-10-06 2008-10-15 株式会社日立製作所 利用条件販売型デジタルコンテンツ販売電子モールシステム
US7486537B2 (en) * 2006-07-31 2009-02-03 Sandisk 3D Llc Method for using a mixed-use memory array with different data states

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5532188A (en) * 1978-08-29 1980-03-06 Nec Corp Reconstruction controller of memory module
JPS5552600A (en) * 1978-10-13 1980-04-17 Nec Corp Main memory unit
JPH01156852A (ja) * 1987-12-15 1989-06-20 Nec Corp インターリーブ制御方式
JPH11312120A (ja) * 1998-04-28 1999-11-09 Nec Eng Ltd 記憶装置

Also Published As

Publication number Publication date
KR20080049824A (ko) 2008-06-04
WO2007077595A1 (ja) 2007-07-12
CN101292229A (zh) 2008-10-22
JPWO2007077595A1 (ja) 2009-06-04
US8219881B2 (en) 2012-07-10
KR101011171B1 (ko) 2011-01-26
EP1967955A1 (en) 2008-09-10
CN101292229B (zh) 2012-05-30
US20080189493A1 (en) 2008-08-07
EP1967955A4 (en) 2009-10-21

Similar Documents

Publication Publication Date Title
JP3950831B2 (ja) メモリインタリーブ方式
JP4810542B2 (ja) メモリ制御方法、プログラム及び装置
US8688948B2 (en) Flexible memory controller for autonomous mapping of memory
KR100757128B1 (ko) 플래시 메모리를 이용한 메모리 카드 및 그 제어 방법
JP2023540232A (ja) 効率的なプロセッシングインメモリのためのハードウェア‐ソフトウェア協働アドレスマッピング方式
JP2003084751A5 (ja)
JPS621047A (ja) メモリ回路を有する半導体装置
JP3576148B2 (ja) 並列プロセッサ
CN1040159C (zh) 存储控制器与数据处理系统
JP2011129218A (ja) 不良解析方法、不良解析装置および不良解析プログラム
JPS5844263B2 (ja) 記憶制御回路
JP2004280924A (ja) メモリテスト回路
JP2812292B2 (ja) 画像処理装置
JP4895264B2 (ja) 記憶装置および情報処理装置
JP3704927B2 (ja) プログラマブルコントローラ
JP6123510B2 (ja) 半導体装置及び半導体装置の制御方法
JP2787958B2 (ja) 文字パターン発生器
KR19980070351A (ko) 프로그래머블 컨트롤러
JP3704101B2 (ja) 画像処理装置
JPH1049447A (ja) 半導体メモリ装置
JP2004152292A (ja) 予測アドレス値を生成するための計算回路、および計算回路で次アドレスを予測する方法
JP2978706B2 (ja) 制御記憶キャッシング方式
JP2009048343A (ja) キャッシュタグ試験方式
JPH0244445A (ja) データ処理装置
JPH02196332A (ja) 情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110620

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110726

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110822

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4810542

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees