(57)【要約】処理ユニット（３０）がメモリバス（２０−０）を介し複数のメモリ回路（１０−０〜１０−３）のデータの入出力を行うメモリシステムにおいて、複数のメモリ回路（１０−０〜１０−３）の仕様情報を収集し、共通の仕様情報を作成し、格納するメモリインターフェース回路（１４）を処理ユニットの制御バスに接続した。このため、メモリバスのメモリ接続数を増加できる。又、メモリバスにメモリを増加しても、処理ユニットの初期化処理を短縮できる。
2011148484.tif 000002
【特許請求の範囲】
【請求項１】
揮発性メモリと前記揮発性メモリのデータ入出力の仕様情報を格納する不揮発性メモリとを有する複数のメモリ回路と、前記複数のメモリ回路の前記不揮発性メモリに制御バスで接続されたメモリインターフェース回路とを有するメモリ装置と、
メモリバスを介し前記揮発性メモリのデータ入出力制御を行うメモリコントローラを有する処理ユニットとを有し、
前記メモリインターフェース回路は、
前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、読み出した前記複数のメモリ回路の前記仕様情報から、少なくとも前記複数のメモリ回路がメモリ拡張要件を満たすか否かの判定を行う処理回路と、
前記処理ユニットと制御バスで接続され、前記処理回路の判定結果を格納する記憶部とを有し、
前記処理ユニットは、前記制御バスを介し前記記憶部の格納情報を読み出し、前記メモリコントローラを初期化処理する
ことを特徴とするメモリシステム。
【請求項２】
前記処理回路は、前記読み出した前記複数のメモリ回路の前記仕様情報から、前記複数のメモリ回路を前記処理ユニットがデータ入出力する共通の仕様情報を作成し、前記記憶部に格納する
ことを特徴とする請求項１のメモリシステム。
【請求項３】
前記処理回路は、
前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、レジスタに格納する読み出し制御部と、
前記レジスタの前記複数のメモリ回路の前記仕様情報から、前記複数のメモリ回路の同一性判定を行い、且つ前記複数のメモリ回路を前記処理ユニットがデータ入出力する共通の仕様情報を作成する作成回路と、
前記作成した共通仕様を前記記憶部に書き込む書き込み制御部とを有する
ことを特徴とする請求項２のメモリシステム。
【請求項４】
前記処理回路は、前記複数のメモリ回路の仕様情報から前記複数のメモリ回路の動作速度が一致しているかを判定し、前記複数のメモリ回路の共通のタイミング情報を作成する
ことを特徴とする請求項２のメモリシステム。
【請求項５】
前記処理回路は、前記複数のメモリ回路の仕様情報から前記メモリの拡張のための共通のアドレスビット幅を作成する
ことを特徴とする請求項２のメモリシステム。
【請求項６】
前記メモリ装置に電源が入力されたことを検出する電源検出部を更に設け、
前記処理回路が前記電源検出部の前記電源検出結果に応じて、前記仕様情報の読み出しを開始する
ことを特徴とする請求項１のメモリシステム。
【請求項７】
前記メモリインターフェース回路は、
前記メモリバスに接続され、前記複数のメモリ回路の揮発性メモリに接続されたバッファメモリを更に有する
ことを特徴とする請求項１のメモリシステム。
【請求項８】
複数の前記メモリ装置を前記メモリバスを介し前記処理ユニットに接続した
ことを特徴とする請求項１のメモリシステム。
【請求項９】
揮発性メモリと前記揮発性メモリのデータ入出力の仕様情報を格納する不揮発性メモリとを有する複数のメモリ回路と、
メモリバスを介し前記揮発性メモリのデータ入出力制御を行う処理ユニットと制御バスで接続され、前記複数のメモリ回路の前記不揮発性メモリに制御バスで接続されたメモリインターフェース回路とを有し、
前記メモリインターフェース回路は、
前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、読み出した前記複数のメモリ回路の前記仕様情報から、少なくとも前記複数のメモリ回路がメモリ拡張要件を満たすか否かの判定を行う処理回路と、
前記制御バスに接続され、前記処理ユニットの初期化処理のための前記処理回路の判定結果を格納する記憶部とを有する
ことを特徴とするメモリ装置。
【請求項１０】
前記処理回路は、前記読み出した前記複数のメモリ回路の前記仕様情報から、前記複数のメモリ回路を前記処理ユニットがデータ入出力する共通の仕様情報を作成し、前記記憶部に格納する
ことを特徴とする請求項９のメモリ装置。
【請求項１１】
前記処理回路は、
前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、レジスタに格納する読み出し制御部と、
前記レジスタの前記複数のメモリ回路の前記仕様情報から、前記複数のメモリ回路の同一性判定を行い、且つ前記複数のメモリ回路を前記処理ユニットがデータ入出力する共通の仕様情報を作成する作成回路と、
前記作成した共通仕様を前記記憶部に書き込む書き込み制御部とを有する
ことを特徴とする請求項１０のメモリ装置。
【請求項１２】
前記処理回路は、前記複数のメモリ回路の仕様情報から前記複数のメモリ回路の動作速度が一致しているかを判定し、前記複数のメモリ回路の共通のタイミング情報を作成する
ことを特徴とする請求項１０のメモリ装置。
【請求項１３】
前記処理回路は、前記複数のメモリ回路の仕様情報から前記メモリの拡張のための共通のアドレスビット幅を作成する
ことを特徴とする請求項１０のメモリ装置。
【請求項１４】
前記メモリ装置に電源が入力されたことを検出する電源検出部を更に設け、
前記処理回路が前記電源検出部の前記電源検出結果に応じて、前記仕様情報の読み出しを開始する
ことを特徴とする請求項９のメモリ装置。
【請求項１５】
前記メモリインターフェース回路は、
前記メモリバスに接続され、前記複数のメモリ回路の揮発性メモリに接続されたバッファメモリを更に有する
ことを特徴とする請求項９のメモリ装置。
【請求項１６】
揮発性メモリと前記揮発性メモリのデータ入出力の仕様情報を格納する不揮発性メモリとを有する複数のメモリ回路の前記不揮発性メモリに制御バスで接続され、且つメモリバスを介し前記揮発性メモリのデータ入出力制御を行う処理ユニットと制御バスで接続されたメモリインターフェース回路であって、
前記メモリインターフェース回路は、
前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、読み出した前記複数のメモリ回路の前記仕様情報から、少なくとも前記複数のメモリ回路がメモリ拡張要件を満たすか否かの判定を行う処理回路と、
前記制御バスに接続され、前記処理ユニットの初期化処理のための前記処理回路の判定結果を格納する記憶部とを有する
ことを特徴とするメモリインターフェース回路。
【請求項１７】
前記処理回路は、前記読み出した前記複数のメモリ回路の前記仕様情報から、前記複数のメモリ回路を前記処理ユニットがデータ入出力する共通の仕様情報を作成し、前記記憶部に格納する
ことを特徴とする請求項１６のメモリインターフェース回路。
【請求項１８】
前記処理回路は、
前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、レジスタに格納する読み出し制御部と、
前記レジスタの前記複数のメモリ回路の前記仕様情報から、前記複数のメモリ回路の同一性判定を行い、且つ前記複数のメモリ回路を前記処理ユニットがデータ入出力する共通の仕様情報を作成する作成回路と、
前記作成した共通仕様を前記記憶部に書き込む書き込み制御部とを有する
ことを特徴とする請求項１７のメモリインターフェース回路。
【請求項１９】
前記処理回路は、前記複数のメモリ回路の仕様情報から前記複数のメモリ回路の動作速度が一致しているかを判定し、前記複数のメモリ回路の共通のタイミング情報を作成する
ことを特徴とする請求項１７のメモリインターフェース回路。
【請求項２０】
前記処理回路は、前記複数のメモリ回路の仕様情報から前記メモリの拡張のための共通のアドレスビット幅を作成する
ことを特徴とする請求項１６のメモリインターフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステム、メモリ装置及びメモリインターフェース装置に関する。
【背景技術】
【０００２】
高速で大容量なメモリシステムは、情報処理装置の高速化及び処理能力の向上に有効である。例えば、サーバーシステムの仮想化の急速な普及に伴って、既存システムのメモリの搭載容量が不足している。【０００３】
図１９は、従来のメモリシステムの構成図である。ＣＰＵ（Central  Processing  Unit）１００はメモリコントローラ１０２を有する。メモリコントローラ１０２は、３つのメモリバス１１２−０〜１１２−２を有する。３枚のメモリモジュール１１０−０〜１１０−２，１１０−３〜１１０−５，１１０−６〜１１０−８が、各メモリバス１１２−０〜１１２−２にスロットを介し接続される。ＤＤＲ（Double  Data  Rate）２／ＤＤＲ３のような高速メモリ伝送システムでは、１つのメモリバスは２〜３枚のメモリモジュールをメモリスロットに接続するのが限界である。【０００４】
又、メモリコントローラ１０２が各メモリモジュール１１０−０〜１１０−２，１１０−３〜１１０−５，１１０−６〜１１０−８の状態把握及び状態設定等の行うため、メモリコントローラ１０２は３つのシリアルバス１１４−０〜１１４−２を介し、３枚のメモリモジュール１１０−１〜１１０−２，１１０−３〜１１０−５，１１０−６〜１１０−８に接続する。このシリアルバス１１４−０〜１１４−２は、メモリバスに比較し、伝送速度の遅いバスが使用される。例えば、Ｉ２Ｃ（Inter-Integrated  Circuit）通信バスを利用する。このＩ２Ｃ通信バスは３ビットの識別が可能であり、１つのＩ２Ｃ通信バスはメモリモジュールを最大８個まで接続できる。【０００５】
図２０は、他の従来のメモリシステムの構成図である。図２０において、メモリバス１１２−０〜１１２−２、シリアルバス１１４−０〜１１４−２、メモリスロットの数は、図１９の従来システムと同じである。図２０では、メモリの拡張のため、この既存システムのメモリスロットに、ライザー１２０−０〜１２０−２を接続する。【０００６】
ライザー１２０−０〜１２０−２には、メモリ拡張用のメモリバッファチップ１２２と複数のメモリモジュール１２４−０〜１２４−３とが搭載されている。この例では、１つのメモリスロットがライザー１２０−０〜１２０−２によって、４つのメモリスロットに拡張される。各メモリモジュール１２４−０〜１２４−３のＳＰＤメモリはシリアルバス１１４−０〜１１４−２に直接接続される。又、各メモリモジュール１２４−０〜１２４−３のＲＡＭは、バッファメモリチップ１２２を介しメモリバス１１２−０〜１１２−２に接続される。すなわちメモリ容量を４倍に拡張することが可能である。【０００７】
一方、コンピュータシステムに電源が投入されると、ブート処理と呼ばれるオペレーティングシステム（ＯＳ：Operating  System）の立ち上げ処理を開始する。この立ち上げ処理には、ＢＩＯＳ（Basic  Input  Output  System）等のファームウェアやＯＳによる各種ハードウェアの初期化と診断、コンピュータシステムへの各種ハードウェアの組込み処理等が含まれる。【０００８】
メモリの初期化処理はシリアルバス１１４−０〜１１４−２を介しＢＩＯＳが行う。この初期化処理においては、ＢＩＯＳは、メモリモジュールに搭載される不揮発性メモリ（以下、ＳＰＤ（Serial  Presence  Detect）メモリと称す）に格納されているメモリモジュールの仕様情報（以下、ＳＰＤデータ）と言う）を読み出し、ＢＩＯＳが、メモリモジュールの動作スピード、レイテンシ、アクセスタイミング等を決定する。更に、ＢＩＯＳは、この決定した情報をもとにメモリコントローラの動作設定及びメモリモジュールに搭載されたＲＡＭ（Random  Access  Memory）の初期化処理を行う。【０００９】
このようなメモリシステムでは、メモリの増加とともに、ＢＩＯＳのメモリ初期化処理の負担が重くなり、メモリモジュール誤実装によるシステム障害が発生するおそれがある。ＢＩＯＳのメモリ初期化処理の負担を軽減するため、ＢＩＯＳに代わって、ＳＰＤデータの収集を行い、メモリ搭載ミスをチェックするメモリ初期化制御装置を、メモリモジュールと別に設けることが提案されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】日本特許公開２００６−０１８４８７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
図２０に示したように、ライザー１２０−０〜１２０−２のメモリモジュール１２４−０〜１２４−３のＳＰＤメモリがシリアルバス１１４−０〜１１４−２に直接接続するので、ＳＰＤメモリのバス接続数がボトルネックとなって、ライザーの追加数が制限されてしまう。例えば、前述のＩ２Ｃ通信バスをシリアスバスに使用する場合は、メモリモジュールのＳＰＤメモリのバス最大接続数は、１つのシリアルバスあたり８個である。【００１２】
図２０においては、１つのシリアルバス毎のＳＰＤメモリの接続数は６個であり、最大接続数の８個以下なので問題はない。しかし、１つのシリアルバスにライザー１２０−０を２個追加すると、最大接続数を越えてしまうので、ライザーを更に追加することはできない。このため、メモリの拡張に制限が生じる。【００１３】
本発明の目的は、複数のメモリモジュールを搭載したメモリ装置の搭載数を増加するメモリシステム、メモリ装置及びメモリインターフェース装置を提供することにある。
【課題を解決するための手段】
【００１４】
この目的の達成のため、開示のメモリシステムは、揮発性メモリと前記揮発性メモリのデータ入出力の仕様情報を格納する不揮発性メモリとを有する複数のメモリ回路と、前記複数のメモリ回路の前記不揮発性メモリに制御バスで接続されたメモリインターフェース回路とを有するメモリ装置と、メモリバスを介し前記揮発性メモリのデータ入出力制御を行うメモリコントローラを有する処理ユニットとを有し、前記メモリインターフェース回路は、前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、読み出した前記複数のメモリ回路の前記仕様情報から、少なくとも前記複数のメモリ回路がメモリ拡張要件を満たすか否かの判定を行う処理回路と、前記処理ユニットと制御バスで接続され、前記処理回路の判定結果を格納する記憶部とを有し、前記処理ユニットは、前記制御バスを介し前記記憶部の格納情報を読み出し、前記メモリコントローラを初期化処理する。【００１５】
又、この目的の達成のため、開示のメモリ装置は、揮発性メモリと前記揮発性メモリのデータ入出力の仕様情報を格納する不揮発性メモリとを有する複数のメモリ回路と、メモリバスを介し前記揮発性メモリのデータ入出力制御を行う処理ユニットと制御バスで接続され、前記複数のメモリ回路の前記不揮発性メモリに制御バスで接続されたメモリインターフェース回路とを有し、前記メモリインターフェース回路は、前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、読み出した前記複数のメモリ回路の前記仕様情報から、少なくとも前記複数のメモリ回路がメモリ拡張要件を満たすか否かの判定を行う処理回路と、前記制御バスに接続され、前記処理ユニットの初期化処理のための前記処理回路の判定結果を格納する記憶部とを有する。【００１６】
更に、この目的の達成のため、開示のメモリインターフェース回路は、揮発性メモリと前記揮発性メモリのデータ入出力の仕様情報を格納する不揮発性メモリとを有する複数のメモリ回路の前記不揮発性メモリに制御バスで接続され、且つメモリバスを介し前記揮発性メモリのデータ入出力制御を行う処理ユニットと制御バスで接続されたメモリインターフェース回路であって、前記メモリインターフェース回路は、前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、読み出した前記複数のメモリ回路の前記仕様情報から、少なくとも前記複数のメモリ回路がメモリ拡張要件を満たすか否かの判定を行う処理回路と、前記制御バスに接続され、前記処理ユニットの初期化処理のための前記処理回路の判定結果を格納する記憶部とを有する。
【発明の効果】
【００１７】
複数のメモリ回路の仕様情報を収集し、共通の仕様情報を作成し、格納するメモリインターフェース回路を処理ユニットの制御バスに接続したので、メモリバスのメモリ接続数を増加できる。又、メモリバスにメモリを増加しても、処理ユニットの初期化処理を短縮できる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態のメモリシステムの全体ブロック図である。
【図２】図１のメモリシステムの部分ブロック図である。
【図３】実施の形態の仮想ＳＰＤメモリのブロック図である。
【図４】実施の形態のＢＩＯＳの初期化処理フロー図である。
【図５】メモリモジュールのＳＰＤメモリの保持データとＳＰＤデータ整合性チェックの内容の説明図である。
【図６】メモリモジュールのＳＰＤメモリの保持データとメモリ拡張変換処理の説明図である。
【図７】図６のバイト４のＳＤＲＡＭ容量／バンクアドレス幅の変換処理の説明図である。
【図８】図６のバイト５のロー／カラムアドレス幅の説明図である。
【図９】ＤＲＡＭ容量とＳＰＤ設定値の関係図である。
【図１０】ＳＰＤデータメモリ拡張部が実行するロー／カラムアドレス変換処理フロー図である。
【図１１】図６のバイト７のモジュールランク数／ＳＤＲＡＭビット幅の変換処理の説明図である。
【図１２】図６のバイト１９の最小ＲＡＳｔｏＲＡＳデレイ時間（ｔＲＲＤｍｉｎ）の変換処理の説明図である。
【図１３】図６のバイト１２６−１２７のＳＰＤのＣＲＣコードの再計算処理の説明図である。
【図１４】第２の実施の形態のメモリシステムのブロック図である。
【図１５】第３の実施の形態のメモリシステムのブロック図である。
【図１６】第４の実施の形態のメモリシステムのブロック図である。
【図１７】第５の実施の形態のメモリシステムのブロック図である。
【図１８】第６の実施の形態のメモリシステムのブロック図である。
【図１９】従来のメモリシステムの説明図である。
【図２０】従来の他のメモリシステムの説明図である。
【発明を実施するための形態】
【００１９】
以下、実施の形態の例を、メモリシステムの第１の実施の形態、仮想ＳＰＤメモリ、メモリの一致／拡張変換処理、メモリシステムの他の実施の形態の順で説明するが、開示のメモリシステム、メモリ装置、メモリインターフェース装置は、この実施の形態に限られない。
【００２０】
（メモリシステムの第１の実施の形態）
図１は、実施の形態のメモリシステムの全体ブロック図である。図２は、図１のメモリシステムの部分ブロック図である。図１に示すように、ＣＰＵ（Central  Processing  Unit）３０は演算処理ユニット（図示せず）とメモリコントローラ３２とを有する。メモリコントローラ３２は、複数のメモリバス２０−０〜２０−２と複数のシリアルバス２２−０〜２２−２とを有する。この例では、３つのメモリバス２０−０〜２０−２と３つのシリアルバス２２−０〜２２−２を示すが、このバス数に限られない。
【００２１】
又、メモリバス２０−０〜２０−２は、ＤＤＲ（Double  Data  Rate）２／ＤＤＲ３仕様の高速メモリ伝送システムで構成される。シリアルバス２２−０〜２２−２は、メモリバスに比較し、伝送速度の遅いバスが使用される。例えば、Ｉ２Ｃ（Inter-Integrated  Circuit）通信バスを利用する。このＩ２Ｃ通信バスは３ビットの識別が可能であり、１つのＩ２Ｃ通信バスはメモリモジュールを最大８個まで接続できる。
【００２２】
ライザー１−０〜１−２，１−３〜１−５，１−６〜１−８は、各メモリバス２０−０〜２０−２と各シリアルバス２２−０〜２２−２に接続された３つのメモリスロットにそれぞれ接続される。
【００２３】
各ライザー１−０〜１−８には、メモリ拡張用のメモリバッファチップ１２と複数のメモリモジュール１０−０〜１０−３と、メモリインターフェース回路（仮想ＳＰＤメモリと称す）１４とが搭載されている。各メモリモジュール１０−０〜１０−３はメモリの仕様情報（ＳＰＤデータ：Serial  Presence  Detect  Data）を搭載する不揮発性メモリ７０（図では、ＳＰＤとも記す）とランダムアクセスメモリ（ＲＡＭ：Random  Access  Memory）７２とを有する。
【００２４】
図１の例では、ライザー１−０〜１−８が、４つのメモリモジュール１０−０〜１０−３を搭載するため、１つのメモリスロットがライザー１―０〜１−８によって、４つのメモリスロットに拡張される。仮想ＳＰＤメモリ１４はシリアルバス２２−０〜２２−２に接続し、且つ各メモリモジュール１０−０〜１０−３の不揮発性メモリ（以下、ＳＰＤメモリという）７０に接続する。又、各メモリモジュール１０−０〜１０−３のＲＡＭ７２は、バッファメモリチップ１２を介しメモリバス２０−０〜２０−２に接続される。
【００２５】
図１の例は、全メモリスロットにライザーを搭載したシステムを示すが、全メモリスロットの一部にライザーを搭載しても良く、必要なメモリ容量に応じて、ライザー搭載数を変更できる。又、ライザーが搭載するメモリモジュール数を４個で示しているが、複数であれば良い。
【００２６】
図１のメモリシステム全体を、１つのメモリバス２０−０、１つのシリアルバス２２−０を対象にすると、図２に示す構成となる。即ち、ライザー１−０〜１−２がメモリバス２０−０、シリアルバス２２−０を介しＣＰＵ３０のメモリコントローラ３２に接続する。各ライザー１−０〜１−２は、メモリバッファチップ１２と、複数のメモリモジュール１０−０〜１０−２と、仮想ＳＰＤメモリ１４とが搭載される。メモリバッファ１２はメモリバス２０−０によりメモリコントローラ３２と各メモリモジュール１０−０〜１０−２のＲＡＭ７２とに接続する。
【００２７】
仮想ＳＰＤメモリ１４は、シリアルバス２２−０によりメモリコントローラ３２と各メモリモジュール１０−０〜１０−２のＳＰＤメモリ７０とに接続する。ＳＰＤメモリ７０は後述するようにメモリの仕様情報（ＳＰＤデータ：Serial  Presence  Detect  Data）を搭載する不揮発性メモリである。尚、図２では、ライザー１−０〜１−２に３つのメモリモジュール１０−０〜１０−２を搭載する例で図示する。しかし、図１に示したように、ライザー１−０〜１−２に４つのメモリモジュール１０−０〜１０−３を搭載することもできる。
【００２８】
後述するように、仮想ＳＰＤメモリ１４は、ライザー内のメモリモジュール１０−０〜１０−３のＳＰＤデータを収集し、データの整合性チェックを行い、且つメモリ拡張変換を行い、拡張変換したＳＰＤデータを保持する。即ち、仮想ＳＰＤメモリ１４は、ライザー内の４つのメモリモジュール１０−０〜１０−３のＳＰＤメモリのＳＰＤデータを収約したＳＰＤデータを保持する。
【００２９】
このため、メモリコントローラ３２は、ライザーの複数のメモリモジュールがあたかも１つのメモリモジュールであると認識できる。即ち、シリアルバス２２−０の接続数の制限にもかかわらず、メモリモジュール数を拡張できる。又、メモリコントローラ３２は、ライザー内の個々のメモリモジュールの初期化処理を省略できる。このため、メモリモジュール数を増加しても、ＢＩＯＳの負荷を軽減することができる。
【００３０】
（仮想ＳＰＤメモリ）
図３は、実施の形態の仮想ＳＰＤメモリのブロック図である。図４は、実施の形態のＢＩＯＳの初期化処理フロー図である。図３において、図１及び図２で示したものと同一のものは、同一の記号で示してある。
【００３１】
図３に示すように、仮想ＳＰＤメモリ１４は、電源電圧監視回路４０と、ＳＰＤ読出しシーケンサ４２と、ローカルＳＰＤバス（シリアルバス）４４と、ＳＰＤ読出しレジスタ４６と、ＳＰＤデータチェック部４８と、ＳＰＤデータメモリ拡張変換部５０と、ＳＰＤ書き込みシーケンサ５２と、ＳＰＤコマンドデコード部５４と、ＳＰＤデータ記憶部５６とを有する。
【００３２】
ＳＰＤ読出しシーケンサ４２は、シリアルバス２２−０と同じ構成のローカルＳＰＤバス４４を介しメモリモジュール１０−０〜１０−３のＳＰＤメモリ７０のＳＰＤデータを、ＳＰＤ読出しレジスタ４６に読み出す。ＳＰＤデータチェック部４８は、ＳＰＤ読出しレジスタ４６に読みだされた各メモリモジュール１０−０〜１０−３のＳＰＤデータの一致判定を行う。
【００３３】
ＳＰＤデータメモリ拡張変換部５０は、ＳＰＤ読出しレジスタ４６に読みだされた各メモリモジュール１０−０〜１０−３のＳＰＤデータからアドレスビット幅等のメモリ拡張変換を行う。ＳＰＤ書き込みシーケンサ５２は、ＳＰＤコマンドデコード部５４を介しＳＰＤデータ記憶部５６にＳＰＤ読み出しレジスタ４６のデータを書き込む。又、ＳＰＤコマンドデコード部５４は、シリアルバス２２−０と接続し、メモリコントローラ３２からスレーブアドレスを受けと、ＳＰＤデータ記憶部５６をリードアクセスし、ＳＰＤデータ記憶部５６のデータをシリアルバス２２−０に送出する。
【００３４】
又、ＳＰＤ読み出しシーケンサ４２は、ＳＰＤ読み出し制御部６０と、ＳＰＤバス制御部６２とを有する。ＳＰＤ読み出し制御部６０は、電源電圧監視回路４０からのトリガー信号Ｔｒに応じて、メモリモジュール１０−０〜１０−３のローカルスレーブアドレスＬＳＡとワードアドレスＷＡをＳＰＤバス制御部６２に発行する。ＳＰＤバス制御部６２は、発行されたローカルスレーブアドレスＬＳＡとワードアドレスＷＡを含むリードコマンドＲＤをローカルＳＰＤバス４４を介しメモリモジュール１０−０〜１０−３のＳＰＤメモリ７０に送信する。
【００３５】
ＳＰＤ書き込みシーケンサ５２は、ＳＰＤ書き込み制御部６４とＳＰＤバス制御部６６とを有する。ＳＰＤ書き込み制御部６４は、ＳＰＤデータメモリ拡張変換部５０からのトリガー信号Ｔｒに応じて、ＳＰＤデータ記憶部５６ワードアドレスＷＡをＳＰＤバス制御部６２に発行する。ＳＰＤバス制御部６６は、発行されたワードアドレスＷＡを含むライトコマンドＷＤをＳＰＤコマンドデコード部５４に送信する。
【００３６】
次に、図４を参照して、図３の仮想ＳＰＤメモリ１４の動作を説明する。システムの電源が入力されると、電源電圧監視回路４０が動作して、電源電圧値をチェックする。電源電圧監視回路４０は、電源電圧値が規格内の正常な値であるとき、電源電圧監視回路４０はＳＰＤ読出しシーケンサにトリガー信号Ｔｒを出力する。
【００３７】
ＳＰＤ読出しシーケンサ４２は、トリガー信号Ｔｒを受けると、メモリバッファチップ１２（図１、図２参照）の配下にある複数のメモリモジュール１０−０〜１０−３の実ＳＰＤデータの収集を開始する。即ち、ＳＰＤ読出しシーケンサ４２のＳＰＤ読出し制御部６０は、ローカルＳＰＤスレーブアドレスＬＳＡとＳＰＤワードアドレスＷＡを生成する。ローカルＳＰＤスレーブアドレスＬＳＡは、ライザー１−０（１−１〜１−８）上の実ＳＰＤメモリデバイス７０を選択する信号である。ＳＰＤワードアドレスＷＡは、選択し実ＳＰＤメモリデバイス７０のＳＰＤデータの格納番地を示す信号である。
【００３８】
ＳＰＤバス制御部６２は、ＳＰＤ読出し制御部６０からローカルＳＰＤスレーブアドレスＬＳＡとＳＰＤワードアドレスＷＡとを受け取り、ＳＰＤリードコマンドＲＤを生成し、そのコマンドＲＤをローカルＳＰＤバス４４に送信する。指定されたＳＰＤメモリデバイス７０のＳＰＤデータが順次読みだされ、ローカルＳＰＤバス４４を介しＳＰＤ読み出しデータレジスタ４６に格納される。読出しシーケンサ４２はこの処理を繰り返し行い、全ＳＰＤメモリ７０の全ＳＰＤデータをＳＰＤ読み出しデータレジスタ４６に収集する（図４のＳ２０）。
【００３９】
収集したＳＰＤデータがＳＰＤ読出しデータレジスタ４６に一旦格納された後、ＳＰＤデータチェック部４８がデータの整合性チェックを行う。整合性チェックは、バッファメモリ１２の配下のメモリモジュール１０−０〜１０−３がメモリ拡張要件を満たすかどうかチェックするものである。
【００４０】
整合性チェックは、一致判定と共通タイミング算出の２つがある。一致判定は、メモリ容量が同一であるか、動作スピードは揃っているか等のチェックを行う。共通タイミング算出は、タイミング特性のバラつきがないかチェックを行い、ある場合はそれを吸収するデータ処理を行う（図４のＳ２２、Ｓ２４）。
【００４１】
図５で後述するように、一致判定の項目は、一致必須と一致選択の２つの項目に分けられる。一致必須項目は、メモリ拡張方式に関係なく、一致が必須である項目のことである。又、一致選択項目は、メモリ拡張方式によっては必ずしも一致している必要がない項目のことである。ライザー１−０上の各メモリモジュール１０−０〜１０−３の仕様は全て同一であることが基本である。しかし、メモリバッファチップ１２の拡張方式によっては、メモリ容量や動作スピード等は不一致でも問題ない場合があるため、一致項目を２つに分類している。
【００４２】
そのため、ＳＰＤデータチェック部４８の一致判定のロジックは、ＰＬＤ（Programable  Logic  Device）でプログラマブルにする、又は複数モードを持たせる、といった実装を行うことが望ましい。これにより、各拡張方式に柔軟に対応できる。
【００４３】
又、図５で説明するように、共通タイミング算出の項目は、各メモリモジュール１０−０〜１０−３のタイミング特性にバラつきがある場合、各メモリモジュール間のタイミング値の最大値を採用する。この理由は、一番タイミング値が遅いメモリモジュールにタイミングを合わせることによって、ライザー１−０内のタイミング特性のバラつきを吸収するためである。
【００４４】
ＳＰＤデータチェック部４８は、ＳＰＤデータの一致判定により整合性チェックに問題がある場合、すなわち、メモリ拡張要件を満たさないメモリモジュールが誤ってライザー１−０に実装された場合は、チェックエラー結果をＳＰＤデータ記憶部５６のリザーブビットにエラーログＥｒとしてログする（図４のＳ３０）。ＢＩＯＳはＳＰＤデータ記憶部５６のログビットを見ることによって、メモリモジュールの誤実装を検出できる。
【００４５】
一方、ＳＰＤデータチェック部４８は、最大値を共通タイミングとして算出した場合には、ＳＰＤデータ記憶部５６の該当フィールド項目を、最大値で更新する。
【００４６】
ＳＰＤデータチェック部４６が、ＳＰＤデータの一致判定により整合性に問題がないと判断する場合、ＳＰＤデータメモリ拡張変換部５０がＳＰＤデータを拡張変換する（図４のＳ２６）。メモリ拡張変換処理は、メモリ容量を２倍、４倍、８倍、、、に増やすために、アドレスビット幅を拡張する等のＳＰＤデータ処理である。
【００４７】
図６以下において後述するように、メモリ拡張変換部５０は、メモリモジュールのローアドレス幅を優先的に最大値まで拡張し、それでも足りない場合は、カラムアドレス幅を拡張する。このメモリ拡張変換部５０は、ハードワイヤ固定でも良い。しかしながら、メモリ拡張変換部５０を、ＰＬＤでプログラマブルにする、又は複数モードを持たせる、といった実装を行うことが望ましい。これにより、各拡張方式に柔軟に対応できる。
【００４８】
メモリ拡張変換部５０は全ての拡張変換処理を終了すると、ＳＰＤデータ記憶部５６の該当フィールドを変換した値に書き換える。そして、メモリ拡張変換部５０はＳＰＤ書込みシーケンサ５２にトリガー信号Ｔｒを出力する。ＳＰＤ書込みシーケンサ５２は、トリガー信号Ｔｒを受けると、ＳＰＤ読出しデータレジスタ４６に格納された更新されたＳＰＤデータ（図５、図６）をＳＰＤデータ記憶部５６に書き込む。
【００４９】
ＳＰＤ書込みシーケンサ５２のＳＰＤ書込み制御部６４は、ＳＰＤデータ記憶部５６のＳＰＤワードアドレスＷＡを生成する。ＳＰＤバス制御部６６は、ＳＰＤ書込み制御部６４からＳＰＤワードアドレスＷＡを受け取り、ＳＰＤライトコマンドＷＴを生成し、ライトコマンドをＳＰＤコマンドデコード部５４に送信する（図４のＳ２８）。
【００５０】
ＳＰＤコマンドデコード部５４は、ＳＰＤライトコマンドをデコードして、ＳＰＤデータ記憶部５６にＳＰＤ読み出しレジスタ４６のワードアドレスで指定されたデータを書き込む。ＳＰＤ書込みシーケンサ５２はこの処理を繰り返し行い、１つの仮想ＳＰＤメモリを生成する（図４のＳ３０）。
【００５１】
ＳＰＤデータ記憶部５６は、実ＳＰＤメモリ７０と同一のアドレスマップやデータフォーマットを備える。したがって、ＢＩＯＳは、実ＳＰＤメモリ７０と同じようにシリアルバス２２−０を介し、仮想ＳＰＤ記憶部５６にアクセスできる。すなわち、ＢＩＯＳの変更をすることなく、メモリ拡張が可能である。
【００５２】
次に、図４によりＢＩＯＳ及び仮想ＳＰＤメモリの処理を説明する。
【００５３】
（Ｓ１０）電源の投入により、ＣＰＵ３０のＯＳの立ち上げ処理のためのブート処理が起動する。又、前述した仮想ＳＰＤメモリ１４の仮想ＳＰＤメモリ作成処理が起動する。
【００５４】
（Ｓ１２）ＣＰＵ３０のブート処理では、ＣＰＵ３０及びメモリシステムを含む周辺回路のチップセットの設定を行う。次に、ブート処理は、バスの調整を行う。その後、ブート処理は、ＣＰＵ３０のプロセッサの内部設定を行う。
【００５５】
（Ｓ１４）ステップＳ１２のブート処理が成功した場合、プロセッサのリセットが解除される。
【００５６】
（Ｓ１６）プロセッサのリセットが解除されると、プロセッサはＢＩＯＳを起動する。
【００５７】
（Ｓ３２）ＣＰＵ３０の実行するＢＩＯＳは、シリアルバス２２−０を介しライザー１−０（１−１〜１−８）の仮想ＳＰＤメモリ１４のＳＰＤデータ記憶部５６のＳＰＤデータを読み出す。図３、図４のステップＳ２０〜Ｓ３０で説明したように、仮想ＳＰＤメモリ１４は、電源投入を検出し、ライザー１−０（１−１〜１−８）のメモリモジュール１０−０〜１０−３の初期化処理を実行し、その結果をＳＰＤデータ記憶部５６に格納している。
【００５８】
従って、ＢＩＯＳは、１回の読み出しにより、ライザー１−０（１−１〜１−８）のメモリモジュール１０−０〜１０−３のＳＰＤデータのメモリ認識処理が可能となる。このため、ＢＩＯＳのメモリ認識処理の負担を軽減できる。即ち、ＢＩＯＳの初期化時間を短縮できる。当然、メモリスロットにライザー構成でないメモリモジュール（図１９、図２０）を混在して搭載した場合には、ライザー以外のこれらのメモリモジュールのＳＰＤデータを読み出す。ＢＩＯＳは、このメモリ認識処理を、搭載された全ライザー（及び全メモリモジュール）枚数分だけ繰り返し行う。
【００５９】
（Ｓ３４）次に、ＢＩＯＳはＳＰＤデータ処理を行う。ＢＩＯＳは、各ライザーの仮想ＳＰＤメモリ１４から読み出したＳＰＤデータをもとに、ライザーのメモリモジュールの動作スピード、レイテンシ、アクセスタイミング等を決定する。この場合、ライザー内のアクセスタイミング等の決定は終了しているため、ＢＩＯＳは、ライザー間のアクセスタイミング等を決定するだけで良い。
【００６０】
従って、ＢＩＯＳはＳＰＤデータ拡張変換を行う必要がなく、ＢＩＯＳのＳＰＤデータ処理の負担を軽減できる。即ち、ＢＩＯＳの初期化時間を短縮できる。
【００６１】
（Ｓ３６）ＢＩＯＳは、この決定した情報をもとに、メモリコントローラ３２の動作設定及びメモリモジュールに搭載されたＲＡＭ７２の初期化処理を行う。
【００６２】
（メモリの一致／拡張変換処理）
次に、前述したメモリの一致及び拡張変換処理を説明する。図５は、メモリモジュール１０−０〜１０−３のＳＰＤメモリ７０の保持データとＳＰＤデータ整合性チェックの内容の説明図である。図５は、ＤＤＲ３仕様のメモリモジュールのＳＰＤメモリのバイト位置及びフィールド内容と、ＳＰＤデータ整合チェックの対象を示す関係図である。尚、図５において、ＳＰＤデータの内、整合性チェックを要しないデータは空欄で省略してある。
【００６３】
図５に示すように、ＳＰＤデータは、メモリモジュールの種類、容量、最高動作スピード、サポートレイテンシ、タイミング特性等を規定した仕様情報である。図５では、ＤＤＲ３仕様のＳＰＤデータを例に示す。ＤＤＲ３仕様では、ＳＰＤデータは、０〜２５５バイトのフィールドを持つ。
【００６４】
例えば、バイト０は、ＳＰＤ総バイト数／有効バイト数／ＣＲＣ（Cyclic  Redundancy  Code）保護幅を規定する。又、バイト１は、ＳＰＤの版数を規定する。前述の一致が必須である判定対象のＳＰＤデータ項目は、図５の「要」で示してある。
【００６５】
即ち、一致必須判定対象のＳＰＤデータ項目は、バイト２のＤＲＡＭデバイスタイプ、バイト３のモジュールタイプ、バイト６のモジュール電圧、バイト８のモジュールバス幅、バイト１２６−１２７のＳＰＤのＣＲＣコードである。
【００６６】
バイト２のＤＲＡＭ（Dynamic  Random  Access  Memory）デバイスタイプは、メモリモジュールがＤＤＲ２仕様かＤＤＲ３仕様かそれ以外かを規定する。バイト３のモジュールタイプは、メモリモジュールの種類がＲＤＩＭＭ（Registered  Dual  Inline  Memory  Module）か、ＵＤＩＭＭ(Unbaffered  Dual  Inline  Memory  Module）かを規定する。バイト６のモジュール電圧は、メモリモジュールの動作電圧値を規定する。バイト８のモジュールバス幅は、メモリモジュールのバス幅を規定する。バイト１２６−１２７のＳＰＤのＣＲＣコードは、ＳＰＤデータのＣＲＣコード値（０〜１１６ＢｙｔｅのＣＲＣ値又は０〜１２５ＢｙｔｅのＣＲＣ値）を規定する。
【００６７】
これらのＳＰＤデータは、各メモリモジュールで一致しないと、動作不能となる。前述のＳＰＤデータチェック部４８は、各メモリモジュール間でこのＳＰＤデータ項目が一致するか否かを比較し、一致判定を行う。前述のＳＰＤデータチェック部４８は、一致しない項目が見つかると、前述のように誤実装として、エラーログする。
【００６８】
又、一致が選択される判定項目のＳＰＤデータ項目は、図５の「（要）」で示す。即ち、一致が選択される判定項目のＳＰＤデータ項目は、バイト４のＳＤＲＡＭ容量／バンクアドレス幅、バイト５のロー（Ｒａｗ）／カラム（Ｃｏｌｕｍｎ）アドレス幅、バイト７のモジュールランク数／ＳＤＲＡＭビット幅、バイト１２のＳＤＲＡＭ最小サイクルタイム、バイト１４−１５のＣＡＳ（Column  Address  Strobe）レイテンシサポート、バイト１６の最小ＣＡＳレイテンシ（ｔＡＡ）、バイト１８の最小ＲＡＳ(Row  Address  Strobe)ｔｏＣＡＳデレイ（ｔＲＣＤｍｉｎ）、バイト２０の最小プリチャージ時間（ｔＲＰｍｉｎ）である。
【００６９】
これらの一致が選択される項目は、バッファメモリ１２の特性や複数メモリモジュールの同時リード（Lockstepという）動作や二重化動作を行う場合に選択される。例えば、ペアとなるメモリモジュールは同一仕様でなければならないからである。
【００７０】
一方、整合性チェックにおける共通タイミング計算に用いられるＳＰＤデータの項目は、図５の共通タイミング算出欄の「要」で示す。即ち、共通タイミング計算に用いられるＳＰＤデータの項目は、バイト１７の最小ライトリカバリ時間（ｔＷＲｍｉｎ）、バイト１９の最小ＲＡ（Row  Address）ｔｏＲＡデレイ（ｔＲＲＤｍｉｎ）、バイト２１のｔＲＡＳ／ｔＲＣ（Ｂｙｔｅ２２，２３）の上位ビット、バイト２２の最小ＡＣＴ(Bank  Active)ｔｏプリチャージデレイ（ｔＲＡｍｉｎ）、バイト２３の最小ＡＣＴｔｏＡＣＴデレイ（ｔＲＣｍｉｎ）、バイト２４−２５の最小リフレッシュリカバリ時間（ｔＲＦＣ）、バイト２６の最小ライトｔｏリードデレイ時間（ｔＷＴＲｍｉｎ）、バイト２７の最小リードｔｏプリチャージデレイ（ｔＲＴＰｍｉｎ）、バイト１２６−１２７のＳＰＤのＣＲＣコードである。
【００７１】
これらのメモリモジュールのタイミングや速度に関する仕様では、同一速度の仕様のメモリモジュール間でも、半導体のバラツキによりタイミング特性がある程度ズレ幅を持っている。このズレ幅に対処するため、共通タイミング計算は、個々メモリモジュールのタイミング特性を比較し、全メモリモジュールに有効なタイミング仕様を計算する。この例では、図５の処理内容に記載されたように、ＳＰＤデータチェック部４８は、対象ＳＰＤデータの最大値を選択し、ＳＰＤデータ記憶部５６の該当フィールドを選択値に更新する。
【００７２】
図６は、メモリモジュール１０−０〜１０−３のＳＰＤメモリ７０の保持データとメモリ拡張変換処理の説明図である。図６は、図５と同一であるＤＤＲ３仕様のメモリモジュールのＳＰＤメモリのバイト位置及びフィールド内容を示し、且つフィールド内容に対しメモリ拡張変換の変更個所、レイテンシ対策項目、処理内容を示す。尚、図６において、図５と同様に、ＳＰＤデータの内、整合性チェックと拡張変換を要しないデータは空欄で省略してある。
【００７３】
図６において、変換項目は、変換個所の欄に「要」で示す。即ち、変換個所は、バイト４のＳＤＲＡＭ容量／バンクアドレス幅、バイト５のロー／カラムアドレス幅、バイト７のモジュールランク数／ＳＤＲＡＭビット幅、バイト１２６−１２７のＳＰＤのＣＲＣコードである。
【００７４】
同様に、レイテンシ対策項目は、図６のレイテンシ対策欄の「要」で示す。レイテンシ対策項目は、バイト１９の最小ＲＡｔｏＲＡデレイ時間（ｔＲＲＤｍｉｎ）、バイト１２６−１２７のＳＰＤのＣＲＣコードである。
【００７５】
図７は、図６のバイト４のＳＤＲＡＭ容量／バンクアドレス幅の変換処理の説明図である。バイト４のＳＤＲＡＭ容量／バンクアドレス幅は、４ビット［３：０］のＳＤＲＡＭ容量欄と３ビット［６：４］のバンクアドレス幅欄とで構成される。図３のＳＰＤデータメモリ拡張部５０は、各メモリモジュールのＳＰＤデータのＳＤＲＡＭ容量を加算し、拡張した容量を計算し、計算した容量でＳＤＲＡＭ容量欄を書き換える。又、バンクアドレス幅は変更しない。
【００７６】
図８は、図６のバイト５のロー／カラムアドレス幅の説明図である。図９はＤＲＡＭ容量とＳＰＤ設定値の関係図である。図１０は、ＳＰＤデータメモリ拡張部５０が実行するロー／カラムアドレス変換処理フロー図である。図８に示すように、バイト５のロー／カラムアドレス幅は、３ビット［２：０］のカラムアドレス欄と３ビット［５：３］のローアドレス欄とからなる。
【００７７】
又、図９に示すように、ＤＲＡＭ容量（ＤＲＡＭテクノロジと記す）は、５１２Ｍｂｉｔ，１Ｇｂｉｔ，２Ｇｂｉｔ，４Ｇｂｉｔ，８Ｇｂｉｔ，１６Ｇｂｉｔの６種類を示す。各ＤＲＡＭ容量に対し、ＤＲＡＭ構成が２つ定義される。各ＤＲＡＭ構成は、×８ビットと×４ビットの２種類である。
【００７８】
各ＤＲＡＭ容量とＤＲＡＭ構成に応じて、ローアドレス（ＲＡ）ビット幅とカラム（ＣＡ）アドレスビット幅が設定される。ローアドレスビット幅は、最大１６ビットであり、カラムアドレスビット幅は、最大１２ビットである。
【００７９】
例えば、容量が５１２ＭｂｉｔのＤＲＡＭは、ローアドレスビット幅に１３ビットを使用し、容量が１ＧｂｉｔのＤＲＡＭは、ローアドレスビット幅に１４ビットを使用する。又、容量が２ＧｂｉｔのＤＲＡＭは、ローアドレスビット幅に１５ビットを使用し、容量が４Ｇｂｉｔ、８Ｇｂｉｔ，１６ＧｂｉｔのＤＲＡＭは、ローアドレスビット幅に１６ビットを使用する。
【００８０】
更に、容量が５１２Ｍｂｉｔ，１Ｇｂｉｔ，２Ｇｂｉｔ，４Ｇｂｉｔで構成が×８ビットのＤＲＡＭは、カラムアドレスビット幅に１０ビットを使用する。容量が５１２Ｍｂｉｔ，１Ｇｂｉｔ，２Ｇｂｉｔ，４Ｇｂｉｔで構成が×４ビットのＤＲＡＭは、カラムアドレスビット幅に１１ビットを使用する。容量が８Ｇｂｉｔで構成が×８ビットのＤＲＡＭは、カラムアドレスビット幅に１１ビットを使用する。容量が８Ｇｂｉｔで構成が×４ビットのＤＲＡＭと容量が１６ＧｂｉｔのＤＲＡＭは、カラムアドレスビット幅に１２ビットを使用する。
【００８１】
図１０により、ＳＰＤデータメモリ拡張変換部５０のＲＡ／ＣＡビット拡張処理を説明する。
【００８２】
（Ｓ４０）ＳＰＤデータメモリ拡張変換部５０は、仮想ランク（Ｒａｎｋ）数を設定する。仮想ランク数は、ライザーの仮想的なランク数であり、通常実ランク数より小さい。
【００８３】
（Ｓ４２）ＳＰＤデータメモリ拡張変換部５０は、仮想ランク数と実ランク総数の差から必要な拡張ビット数を計算する。例えば、仮想ランク数＝２、実ランク総数＝８である場合には、仮想ランク数＝２＝２の１乗（情報量１ビット）と実ランク総数＝８＝２の３乗（情報量３ビット）から、必要拡張ビット数は、３−１＝２ビットである。
【００８４】
（Ｓ４４）ＳＰＤデータメモリ拡張変換部５０は、図６のバイト５の実ＳＰＤデータのローアドレス（ＲＡ）幅に拡張ビット数を加算する。
【００８５】
（Ｓ４６）ＳＰＤデータメモリ拡張変換部５０は、計算したローアドレス幅が最大値である１６ビット以下であるか否かを判定する。そして、ＳＰＤデータメモリ拡張変換部５０は、計算したローアドレス幅が最大値である１６ビット以下であると判定すると、計算したローアドレス幅でＳＰＤ読み出しレジスタ４６の該当フィールド（図８参照）を書き換え、終了する。
【００８６】
（Ｓ４８）一方、ＳＰＤデータメモリ拡張変換部５０は、計算したローアドレス幅が最大値である１６ビット以下でないと判定する場合、即ち、計算したローアドレス幅が最大値である１６ビットを越えている場合には、計算したローアドレス幅が１７ビットであるか否かを判定する。
【００８７】
（Ｓ５０）ＳＰＤデータメモリ拡張変換部５０は、計算したローアドレス幅が１７ビットであると判定した場合、カラムアドレス幅を拡張する。即ち、ＳＰＤデータメモリ拡張変換部５０は、図６のバイト５の実ＳＰＤデータのカラムアドレス（ＣＡ）幅に１ビットを加算する。そして、ＳＰＤデータメモリ拡張変換部５０は、ローアドレス（ＲＡ）幅を最大値である「１６」に設定する。即ち、ローアドレスに対し、カラムアドレス（ＣＡ）で拡張した分を戻す。ＳＰＤデータメモリ拡張変換部５０は、計算したローアドレス幅とカラムアドレス幅でＳＰＤ読み出しレジスタ４６の該当フィールド（図８参照）を書き換え、終了する。
【００８８】
（Ｓ５２）一方、ＳＰＤデータメモリ拡張変換部５０は、計算したローアドレス幅が１７ビットでないと判定した場合、拡張不可能と判断し、エラーログでＳＰＤ読み出しレジスタ４６の該当フィールドを書き換え、終了する。
【００８９】
図１１は、図６のバイト７のモジュールランク数／ＳＤＲＡＭビット幅の変換処理の説明図である。バイト７のモジュールランク数／ＳＤＲＡＭのビット幅は、３ビット［２：０］のＳＤＲＡＭビット幅欄と３ビット［５：３］のランク数欄とで構成される。図３のＳＰＤデータメモリ拡張部５０は、ランク数欄に仮想ランク数を設定し、書き換える。又、ＳＤＲＡＭビット幅は変更しない。
【００９０】
図１２は、図６のバイト１９の最小ＲＡＳｔｏＲＡＳデレイ時間（ｔＲＲＤｍｉｎ）の変換処理の説明図である。バイト１９の最小ＲＡＳｔｏＲＡＳデレイ時間（ｔＲＲＤｍｉｎ）は、ＲＡＳ−ＲＡＳデレイ時間（ｎｓ）をベース時間（＝０．１２５ｎｓ）で割った値をフィールドとして格納する。図３のＳＰＤデータメモリ拡張変換部５０は、フィールドの値にバッファメモリチップ１２（図１、図２参照）のレイテンシ時間を加算する。
【００９１】
図１３は、図６のバイト１２６−１２７のＳＰＤのＣＲＣコードの再計算処理の説明図である。バイト１２６−１２７のＳＰＤのＣＲＣコードは、１６ビットのＣＲＣ値を有する。ここで、１６ビットのＣＲＣ値の内、上位８ビットをバイト１２７に、下位８ビットをバイト１２６に保持する。
【００９２】
図６で説明したように、ＳＰＤデータのＣＲＣコード値は、ＳＰＤデータの０〜１１６ＢｙｔｅのＣＲＣ値又は０〜１２５ＢｙｔｅのＣＲＣ値である。そのいずれかは、図６のバイト０のビット［７］で指定されている。
【００９３】
ここでは、ＳＰＤデータ変換拡張部５０が、図６のバイト０［７］＝１の場合は、図５、図６のＳＰＤデータ（変換及び拡張後）の０〜１１６バイトまでのＣＲＣを再計算し、バイト１２６，１２７のフィールドに書き込む。又、ＳＰＤデータ変換拡張部５０が、図６のバイト０［７］＝０の場合は、図５、図６のＳＰＤデータ（変換及び拡張後）の０〜１２５バイトまでのＣＲＣを再計算し、バイト１２６，１２７のフィールドに書き込む。そして、ＳＰＤデータ変換拡張部５０は、計算したＣＲＣ値でＳＰＤ読み出しレジスタ４６の該当フィールド（図５、図６参照）を書き換え、終了する。
【００９４】
前述のように、ＳＰＤ読み出しレジスタ部４６は、図５、図６の０〜２５５バイトのフィールドを持つＳＰＤデータを保持し、且つＳＰＤデータチェック部４８とＳＰＤデータメモリ拡張変換部５０により、一致検出、タイミング調整、拡張変換された値に書き換えられる。このＳＰＤ読み出しレジスタ部４６のＳＰＤデータが、仮想ＳＰＤ記憶部５６に書き込まれるため、仮想ＳＰＤ記憶部５６は、一致検出、タイミング調整、拡張変換された値に書き換えられた０〜２５５バイトのフィールドを持つＳＰＤデータを格納する。
【００９５】
このため、ＢＩＯＳは、１回の読み出しにより、ライザー１−０（１−１〜１−８）のメモリモジュール１０−０〜１０−３のＳＰＤデータのメモリ認識処理が可能となる。このため、ＢＩＯＳのメモリ認識処理の負担を軽減できる。即ち、ＢＩＯＳの初期化時間を短縮できる。
【００９６】
（メモリシステムの他の実施の形態）
図１４は、第２の実施の形態のメモリシステムのブロック図である。図１４において、図２で説明したものと同一のものは、同一の記号で示してある。図１４に示すように、ＣＰＵ３０のメモリコントローラ３２はシリアルバス２２−０を介しバススイッチ１６に接続する。バススイッチ１６は、シリアルバス２２−０により、図３で説明した仮想ＳＰＤメモリ１４と、メモリモジュール１０−０〜１０−２のＳＰＤメモリ７０に接続する。
【００９７】
ライザー１−０〜１−２にバススイッチ１６を設け、メモリコントローラ３２からのアドレスで、バススイッチ１６を切り替え、仮想ＳＰＤメモリ１４にアクセスする。又、メモリコントローラ３２は、メモリモジュール１０−０〜１０−２のＳＰＤメモリ７０にもアクセスできる。
【００９８】
図１５は、第３の実施の形態のメモリシステムのブロック図である。図１５において、図２、図１４で説明したものと同一のものは、同一の記号で示してある。図１５に示すように、ＣＰＵ３０のメモリコントローラ３２はシリアルバス２２−０を介し仮想ＳＰＤメモリ１４に接続する。仮想ＳＰＤメモリ１４は、バススイッチ１８を内蔵する。バススイッチ１８は、シリアルバス２２−０により、メモリモジュール１０−０〜１０−２のＳＰＤメモリ７０に接続する。
【００９９】
ライザー１−０〜１−２の仮想ＳＰＤメモリ１４内にバススイッチ１８を設け、メモリコントローラ３２からのアドレスで、バススイッチ１８を切り替え、メモリモジュール１０−０〜１０−２のＳＰＤメモリ７０にもアクセスできる。
【０１００】
図１４及び図１５の構成例は、何らかの理由（例えば、メモリアクセスエラー検出等）で、メモリモジュール１０−０〜１０−２のＳＰＤメモリ７０のＳＰＤデータを参照する場合に有効である。
【０１０１】
図１６は、第４の実施の形態のメモリシステムのブロック図である。図１６において、図２で説明したものと同一のものは、同一の記号で示してある。図１６に示すように、バッファメモリチップ１２内に仮想ＳＰＤメモリ１４を内蔵する。ＣＰＵ３０のメモリコントローラ３２はシリアルバス２２−０を介しバッファメモリチップ１２内の仮想ＳＰＤメモリ１４に接続する。仮想ＳＰＤメモリ１４は、シリアルバス２２−０により、メモリモジュール１０−０〜１０−２のＳＰＤメモリ７０に接続する。
【０１０２】
この仮想ＳＰＤメモリ１４を、メモリバッファチップ１２に内蔵することにより、ライザー内のＬＳＩ（Large  Scaled  Integrated）チップを削減できる。
【０１０３】
図１７は、第５の実施の形態のメモリシステムのブロック図である。図１６において、図２で説明したものと同一のものは、同一の記号で示してある。図１６に示すように、ＣＰＵ３０のメモリコントローラ３２はシリアルバス２２−０を介し仮想ＳＰＤメモリ１４に接続する。仮想ＳＰＤメモリ１４は、シリアルバス２２−０により、メモリモジュール１０−０〜１０−２のＳＰＤメモリ７０に接続する。
【０１０４】
この仮想ＳＰＤメモリ１４は、ＳＰＤデータチェック論理データやＳＰＤデータ拡張変換論理データを格納したＲＯＭ（Read  Only  Memory）２４と、ＲＯＭ２４の論理データによりプログラマブルにチェック論理や拡張変換論理を変更できるＰＬＤ（Programable  Logic  Device）２６とを有する。
【０１０５】
この構成により、図２で説明したＳＰＤデータチェック部４８やＳＰＤデータ拡張変換部５０の回路をプログラマブルに変更できる。即ち、ＳＰＤの仕様変更に柔軟に対応可能となる。
【０１０６】
図１８は、第６の実施の形態のメモリシステムのブロック図である。図１８において、図２で説明したものと同一のものは、同一の記号で示してある。図１８に示すように、ＣＰＵ３０のメモリコントローラ３２はシリアルバス２２−０を介し仮想ＳＰＤメモリ１４Ａに接続する。仮想ＳＰＤメモリ１４Ａは、シリアルバス２２−０により、メモリモジュール１０−０〜１０−２のＳＰＤメモリ７０に接続する。
【０１０７】
この仮想ＳＰＤメモリ１４Ａは、図５で説明したＳＰＤデータチェック（一致検出）機能を有し、ＳＰＤデータの共通タイミング機能、ＳＰＤデータ拡張変換機能を有しない。仮想ＳＰＤメモリ１４Ａのデータチェックのエラーログは、仮想ＳＰＤメモリ１４Ａの記憶部の空き領域にログされる。そして、ＢＩＯＳは、通常通りメモリモジュール１０−０〜１０−２の実ＳＰＤメモリ７０にアクセスして、メモリ初期化処理を行う。
【０１０８】
この構成によれば、仮想ＳＰＤメモリ１４Ａを、他の製造者のライザー１−０に変更なく、搭載できる。又、ＢＩＯＳのＳＰＤデータチェックを仮想ＳＰＤメモリが代わりに実行するため、ＢＩＯＳの負荷を軽減できる。
【０１０９】
前述の実施の形態では、メモリ回路をＤＩＭＭで説明したが、他の構成のメモリモジュール回路を適用できる。又、メモリバスを、時分割アドレス、コマンド送信方式のＤＤＲ３の例で説明したが、ＤＤＲ，ＤＤＲ２等の他の時分割アドレス、コマンド送信方式に適用できる。更に、制御バスとして、Ｉ２Ｃバスで説明したが、他の形式の制御バスを使用できる。
【０１１０】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【産業上の利用可能性】
【０１１１】
複数のメモリ回路の仕様情報を収集し、共通の仕様情報を作成し、格納するメモリインターフェース回路を処理ユニットの制御バスに接続したので、メモリバスのメモリ接続数を増加できる。又、メモリバスにメモリを増加しても、処理ユニットの初期化処理を短縮できる。
【符号の説明】
【０１１２】
１−０〜１−８  メモリ装置
１０−０〜１０−３  メモリモジュール
１２  メモリバッファ
１４  仮想ＳＰＤメモリ（メモリインターフェース回路）
２０−０〜２０−２  メモリバス
２２−０〜２２−２  制御バス（シリアルバス）
３０  ＣＰＵ
３２  メモリコントローラ
７０  ＳＰＤメモリ（不揮発性メモリ）
７２  揮発性メモリ（ＤＲＡＭ）
４０  電源電圧監視回路
４２  ＳＰＤ読み出しシーケンサ
４４  ローカルＳＰＤバス
４６  ＳＰＤ読み出しデータレジスタ
４８  ＳＰＤデータチェック部
５０  ＳＰＤデータメモリ拡張変換部
５２  ＳＰＤ書き込みシーケンサ
５４  ＳＰＤコマンドデコード部
５６  ＳＰＤデータ記憶部
【図１】
2011148484.tif 000003
【図２】
2011148484.tif 000004
【図３】
2011148484.tif 000005
【図４】
2011148484.tif 000006
【図５】
2011148484.tif 000007
【図６】
2011148484.tif 000008
【図７】
2011148484.tif 000009
【図８】
2011148484.tif 000010
【図９】
2011148484.tif 000011
【図１０】
2011148484.tif 000012
【図１１】
2011148484.tif 000013
【図１２】
2011148484.tif 000014
【図１３】
2011148484.tif 000015
【図１４】
2011148484.tif 000016
【図１５】
2011148484.tif 000017
【図１６】
2011148484.tif 000018
【図１７】
2011148484.tif 000019
【図１８】
2011148484.tif 000020
【図１９】
2011148484.tif 000021
【図２０】
2011148484.tif 000022
【手続補正書】
【提出日】平成24年11月9日(2012.11.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
揮発性メモリと前記揮発性メモリのデータ入出力の仕様情報を格納する不揮発性メモリとを有する複数のメモリ回路と、前記複数のメモリ回路の前記不揮発性メモリに制御バスで接続されたメモリインターフェース回路とを有するメモリ装置と、
メモリバスを介し前記揮発性メモリのデータ入出力制御を行うメモリコントローラを有する処理ユニットとを有し、
前記メモリインターフェース回路は、
前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、読み出した前記複数のメモリ回路の前記仕様情報から、少なくとも前記複数のメモリ回路がメモリ拡張要件を満たすか否かの判定を行う処理回路と、
前記処理ユニットと制御バスで接続され、前記処理回路の判定結果を格納する記憶部とを有し、
前記処理ユニットは、前記制御バスを介し前記記憶部の格納情報を読み出し、前記メモリコントローラを初期化処理する
ことを特徴とするメモリシステム。
【請求項２】
前記処理回路は、前記読み出した前記複数のメモリ回路の前記仕様情報から、前記複数のメモリ回路を前記処理ユニットがデータ入出力する共通の仕様情報を作成し、前記記憶部に格納する
ことを特徴とする請求項１のメモリシステム。
【請求項３】
揮発性メモリと前記揮発性メモリのデータ入出力の仕様情報を格納する不揮発性メモリとを有する複数のメモリ回路と、
メモリバスを介し前記揮発性メモリのデータ入出力制御を行う処理ユニットと制御バスで接続され、前記複数のメモリ回路の前記不揮発性メモリに制御バスで接続されたメモリインターフェース回路とを有し、
前記メモリインターフェース回路は、
前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、読み出した前記複数のメモリ回路の前記仕様情報から、少なくとも前記複数のメモリ回路がメモリ拡張要件を満たすか否かの判定を行う処理回路と、
前記制御バスに接続され、前記処理ユニットの初期化処理のための前記処理回路の判定結果を格納する記憶部とを有する
ことを特徴とするメモリ装置。
【請求項４】
前記処理回路は、前記読み出した前記複数のメモリ回路の前記仕様情報から、前記複数のメモリ回路を前記処理ユニットがデータ入出力する共通の仕様情報を作成し、前記記憶部に格納する
ことを特徴とする請求項３のメモリ装置。
【請求項５】
揮発性メモリと前記揮発性メモリのデータ入出力の仕様情報を格納する不揮発性メモリとを有する複数のメモリ回路の前記不揮発性メモリに制御バスで接続され、且つメモリバスを介し前記揮発性メモリのデータ入出力制御を行う処理ユニットと制御バスで接続されたメモリインターフェース回路であって、
前記メモリインターフェース回路は、
前記制御バスを介し前記複数のメモリ回路の前記不揮発性メモリの前記仕様情報を読み出し、読み出した前記複数のメモリ回路の前記仕様情報から、少なくとも前記複数のメモリ回路がメモリ拡張要件を満たすか否かの判定を行う処理回路と、
前記制御バスに接続され、前記処理ユニットの初期化処理のための前記処理回路の判定結果を格納する記憶部とを有する
ことを特徴とするメモリインターフェース回路。
【国際調査報告】
2011148484.tif 000023
2011148484.tif 000024