(57)【要約】【課題】ＳＰＤ制御装置で、メモリ初期化処理の時間を短縮化する。【解決手段】プロセッサ１０、メモリモジュール５０、及び該メモリモジュールの仕様を示す仕様情報を記憶する仕様情報記憶メモリ６０に接続される制御装置１００であって、制御装置１００への電源投入により、仕様情報記憶メモリ６０から仕様情報を読み出す読み出し部と１２０、仕様情報記憶メモリから読み出された仕様情報を格納する記憶部１３０と、プロセッサから仕様情報の読み出し指示を受信して、記憶部１３０に格納された仕様情報をプロセッサに受け渡す受け渡し部１１０と、を有する。【選択図】図１
2010039645.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ、メモリモジュール、及び該メモリモジュールの仕様を示す仕様情報を記憶する仕様情報記憶メモリに接続される制御装置であって、
前記制御装置への電源投入により、前記仕様情報記憶メモリから前記仕様情報を読み出す読み出し部と、
前記仕様情報記憶メモリから読み出された仕様情報を格納する記憶部と、
前記プロセッサから前記仕様情報の読み出し指示を受信して、前記記憶部に格納された前記仕様情報を前記プロセッサに受け渡す受け渡し部と、
を有することを特徴とする制御装置。
【請求項２】
前記制御装置は、複数のメモリモジュールと、該複数のメモリモジュールにそれぞれ対応する複数の前記仕様情報記憶メモリとに接続され、
前記記憶部は、前記複数の仕様情報記憶メモリに格納される複数の前記仕様情報のうち、重複部分を取り除いた仕様情報を格納し、
前記制御装置は、前記記憶部のアドレスを指示するポインタ情報を、前記メモリモジュールの位置情報と関連付けて格納するポインタ記憶部をさらに有し、
前記ＳＰＤ読み出し部は、読み出し対象となるメモリモジュールの位置情報を含む仕様情報の読み出し指示を受信して、該メモリモジュールの位置情報に関連付けられる前記ポインタ情報を前記ポインタ記憶部から取得し、且つ、該取得した前記ポインタ情報によって指示される前記記憶部のアドレスから、前記仕様情報を取得することを特徴とする、請求項１に記載の制御装置。
【請求項３】
前記読み出し部は、前記仕様情報をバースト転送で前記プロセッサに受け渡すことを特徴とする、請求項１又は２に記載の制御装置。
【請求項４】
プロセッサと、
メモリモジュールと、
制御装置と、を備え、
前記メモリモジュールは、
第一のメモリと、
前記メモリモジュールの仕様を示す仕様情報を記憶する第二のメモリとを有し、
前記制御装置は、
前記制御装置への電源投入により、前記第二のメモリから前記仕様情報を読み出す読み出し部と、
前記読出し部が読みだした仕様情報を格納する記憶部と、
前記プロセッサからの読み出し指示を受信して、前記記憶部に格納された仕様情報を前記プロセッサに受け渡す受け渡し部と、
を有することを特徴とする情報処理装置。
【請求項５】
前記制御装置は、前記メモリモジュールへのアクセスを制御するメモリ制御装置であることを特徴とする、請求項４に記載の情報処理装置。
【請求項６】
前記制御装置は、複数のメモリモジュールと、該複数のメモリモジュールにそれぞれ対応する複数の前記仕様情報記憶メモリとに接続され、
前記記憶部は、前記複数の仕様情報記憶メモリに格納される複数の前記仕様情報のうち、重複部分を取り除いた仕様情報を格納し、
前記制御装置は、前記記憶部のアドレスを指示するポインタ情報を、前記メモリモジュールの位置情報と関連付けて格納するポインタ記憶部をさらに有し、
前記ＳＰＤ読み出し部は、読み出し対象となるメモリモジュールの位置情報を含む仕様情報の読み出し指示を受信して、該メモリモジュールの位置情報に関連付けられる前記ポインタ情報を前記ポインタ記憶部から取得し、且つ、該取得した前記ポインタ情報によって指示される前記記憶部のアドレスから、前記仕様情報を取得することを特徴とする、請求項４又は５に記載の情報処理装置。
【請求項７】
前記読み出し部は、前記仕様情報をバースト転送で前記プロセッサに受け渡すことを特徴とする、請求項４〜６のいずれか１項に記載の情報処理装置。
【請求項８】
プロセッサ、メモリモジュール、及び該メモリモジュールの仕様を示す仕様情報を記憶する仕様情報記憶メモリに接続され、且つ記憶部を有する制御装置により前記プロセッサに前記メモリモジュールを認識させるメモリモジュール認識方法であって、
前記プロセッサが、前記制御装置への電源投入により、立ち上げ処理を開始し、
前記制御装置は、前記制御装置への電源投入により、前記仕様情報記憶メモリから前記仕様情報の読み出しを開始し、
前記制御装置は、前記仕様情報を前記記憶部に格納し、
前記制御装置は、前記立ち上げ処理を終了したプロセッサから前記仕様情報の読み出し指示を受信して、前記記憶部に格納された前記仕様情報を前記プロセッサに受け渡すことを特徴とするメモリモジュール認識方法。
【請求項９】
前記制御装置は、複数のメモリモジュールと、該複数のメモリモジュールにそれぞれ対応する複数の前記仕様情報記憶メモリとに接続され、且つ、ポインタ記憶部をさらに有すると共に、
前記複数の仕様情報記憶メモリに格納される複数の前記仕様情報のうち、重複部分を取り除いた仕様情報を前記記憶部に格納し、
前記記憶部のアドレスを指示するポインタ情報を、前記メモリモジュールの位置情報と関連付けて前記ポインタ記憶部に格納し、
読み出し対象となるメモリモジュールの位置情報を含む仕様情報の読み出し指示を受信して、該メモリモジュールの位置情報に関連付けられる前記ポインタ情報を前記ポインタ記憶部から取得し、且つ、該取得した前記ポインタ情報によって指示される前記記憶部のアドレスから、前記仕様情報を取得することを特徴とする、請求項８に記載のメモリモジュール認識方法。
【請求項１０】
前記仕様情報をバースト転送で前記プロセッサに受け渡すステップをさらに有することを特徴とする、請求項８又は９に記載のメモリモジュール認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、制御装置、情報処理装置、及びメモリモジュール認識方法に関する。
【背景技術】
【０００２】
コンピュータシステムに電源が投入されると、ブート処理と呼ばれるオペレーティングシステム（ＯＳ）の立ち上げ処理（「パワーオン・リセット・シーケンス」とも称す）が開始される。この立ち上げ処理には、ＢＩＯＳ（Basic Input Output System）等のファームウェア（ＦＷ）やＯＳによる各種ハードウェアの初期化と診断、コンピュータシステムへの各種ハードウェアの組込み処理等が含まれる。
【０００３】
また、メモリの初期化処理では、ＣＰＵ（Central Processing Unit）により実行されるＢＩＯＳが、メモリコントローラに読み込み処理を指示することで、メモリモジュールに搭載される不揮発性メモリ（以下、「ＳＰＤ（Serial Presence Detect）メモリ」と称す）に格納されているメモリモジュールの仕様情報（以下「ＳＰＤデータ」と言う）を読み出すメモリ認識処理が行われる。
種類、容量、エラーチェックの種類や有無、アクセスタイミング等を規定した、ＳＰＤデータをもとに、ＢＩＯＳはメモリモジュールに搭載されたＲＡＭ（Random Access Memory）の初期化処理を行い、メモリモジュールの制御方法を決定する。
【０００４】
ＳＰＤメモリとメモリコントローラとの接続は、伝送速度の遅いシリアルバスで接続されるのが一般的である。シリアルバスの一例として、Ｉ2Ｃバスがあげられる。伝送速度の遅いシリアルが用いられるのは、メモリ認識処理は、頻度が少なく又はＳＰＤデータのデータ量も少ないため、シンプルで低価格のバスが選択されるためである。しかしながら、シリアルバスの遅い伝送速度により、メモリ初期化処理が遅くなるという問題がある。
【０００５】
従来、メモリ認識処理をより高速化するために、ＣＰＵからシリアルバスを介して最初に読み出したＳＰＤデータを、システムバスを介してアクセス可能なメモリに保存することで、２度目のＳＰＤデータの読み出し時には、ＳＰＤデータの読み出し速度を高速化する技術が提案されている（下記特許文献１）。
【０００６】
【特許文献１】特開２００７−１２２６２７号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、従来技術では、ＳＰＤデータの読み出しは、プロセッサが実行するＢＩＯＳにより行われるため、ＳＰＤデータの読み出しを開始するために、プロセッサの初期化処理の終了を待つ必要があった。そして、プロセッサ起動後も、最初のＳＰＤデータの読み出しがシリアルバスを介して行われるため、このようなメモリ認識処理がコンピュータシステム立ち上げ時間に加算され、立ち上げ処理時間の短縮化が図られていない。
本発明は、プロセッサ初期化処理前に、ＳＰＤデータの読み出しを行うことで、コンピュータシステムの立ち上げ処理時間を短縮化するメモリ初期化処理を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、プロセッサ、メモリモジュール、及びメモリモジュールの仕様を示す仕様情報を記憶する仕様情報記憶メモリに接続される制御装置が提供される。
上記制御装置は、上記制御装置への電源投入により、上記仕様情報記憶メモリから上記仕様情報を読み出す読み出し部と、上記仕様情報記憶メモリから読み出された仕様情報を格納する記憶部と、上記プロセッサから上記仕様情報の読み出し指示を受信して、上記記憶部に格納された上記仕様情報を上記プロセッサに受け渡す受け渡し部と、を有する。
【０００９】
また、上記課題を解決するために、プロセッサと、メモリモジュールと、制御装置と、を備える情報処理装置が提供される。
上記メモリモジュールは、第一のメモリと、上記メモリモジュールの仕様を示す仕様情報を記憶する第二のメモリとを有し、上記制御装置は、上記制御装置への電源投入により、上記第二のメモリから上記仕様情報を読み出す読み出し部と、上記読出し部が読みだした仕様情報を格納する記憶部と、上記プロセッサからの読み出し指示を受信して、上記記憶部に格納された仕様情報を上記プロセッサに受け渡す受け渡し部と、を有する。
【００１０】
さらに、上記課題を解決するために、プロセッサ、メモリモジュール、及び該メモリモジュールの仕様を示す仕様情報を記憶する仕様情報記憶メモリに接続され、且つ記憶部を有する制御装置により上記プロセッサに上記メモリモジュールを認識させるメモリモジュール認識方法が提供される。
上記メモリモジュール認識方法は、上記プロセッサが、上記制御装置への電源投入により、立ち上げ処理を開始し、上記制御装置は、上記制御装置への電源投入により、上記仕様情報記憶メモリから上記仕様情報の読み出しを開始し、上記制御装置は、上記仕様情報を上記記憶部に格納し、上記制御装置は、上記立ち上げ処理を終了したプロセッサから上記仕様情報の読み出し指示を受信して、上記記憶部に格納された上記仕様情報を上記プロセッサに受け渡す。
【発明の効果】
【００１１】
ＳＰＤ制御装置は、プロセッサの初期化処理完了を待つことなく、ＳＰＤ制御装置への電源投入によりＳＰＤメモリからのＳＰＤデータの読み出しを開始することにより、メモリ初期化処理の時間、並びに、コンピュータシステムの立ち上げ処理時間を短縮化することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、実施形態を説明する。
図１を用いて、情報処理装置の構成の一例について説明する。情報処理装置１は、例えば、サーバ、パーソナルコンピュータ等のコンピュータとして実装できる。情報処理装置１は、プロセッサ１０、メモリコントローラハブ（ＭＣＨ）２０、マネージメントボード（ＭＭＢ）３０、メモリアクセスコントローラ（ＭＡＣ）４０、メモリモジュール５０、ＳＰＤメモリ６０、ＩＯ制御ハブ（ＩＣＨ）７０、入力装置７２、外部記憶装置７４、リードオンリーメモリ（ＲＯＭ）８０を有する。
【００１３】
プロセッサ１０は、情報処理装置１の動作を制御するために設けられたプロセッサであり、中央処理装置（ＣＰＵ）やデジタルシグナルプロセッサ（ＤＳＰ）として実装され得る。プロセッサ１０は、コンピュータのハードウェア資源及びソフトウェア資源の割り当てを統合的に管理するオペレーティングシステム（ＯＳ）、及び他のソフトウェアを実行する。また、プロセッサ１０は、ＲＯＭ８０に格納されたＢＩＯＳも実行する。ＢＩＯＳは、バスに接続されたハードウェア機器の制御用プログラムであり、ＳＰＤデータをもとに、メモリモジュール５０に搭載されたＲＡＭの初期化処理等を行う。ＢＩＯＳによる制御処理は、プロセッサ１０がＢＩＯＳを実行することにより行われる。
なお、図１には、１つのプロセッサのみを表しているが、情報処理装置１は、複数のプロセッサを有しても良い。
【００１４】
ＭＣＨ２０は、プロセッサ１０とＩＣＨ７０との間を接続するブリッジデバイスである。ＭＣＨ２０と接続される各ハードウェアは、ＩＳＡバス（Industrial Standard Architecture bus）やＰＣＩバス（Peripheral Components Interconnect bus）等の高速なシステムバスで接続される。ＭＣＨ２０は、ＡＧＰ（Accelerated Graphics Port）バスなどを介してグラフィックコントローラ（ＧＣ）２２との通信を実行する機能を有する。
【００１５】
メモリモジュール５０は、例えば、ＤＩＭＭ（Dual Inline Memory Module）等のＲＡＭ（Random Access Memory）を搭載する。メモリモジュール５０はまた、ＳＰＤメモリ６０を有する。ＳＰＤメモリ６０はＳＰＤデータを格納するメモリであり、不揮発性メモリ、例えば、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）である。なお、図１には、１つのメモリモジュールのみを表しているが、情報処理装置１は、複数のメモリモジュールを有しても良い。
ＳＰＤデータは、メモリモジュール５０の容量、メモリモジュールの動作クロック周波数、アクセス速度、アクセス方法、メモリ構成情報等、メモリモジュール５０の仕様を表す情報である。
【００１６】
グラフィックコントローラ２２は、情報処理装置１のディスプレイモニタとして使用される表示装置２４を制御する表示コントローラである。
ＩＣＨ７０は、ＩＤＥ（Integrated Drive Electronics）、ＰＣＩ（Peripheral Component Interconnect）バス等に接続される入力装置（ＩＤ）７２、外部記憶装置（ＨＤＤ）７４及びＲＯＭ８０へのアクセスを制御する。外部記憶装置（ＨＤＤ）７４には、プロセッサ１０で実行されるＯＳや各種プログラムが格納される。
ＲＯＭ８０は、書き換え可能な不揮発性メモリであっても良く、ＢＩＯＳ等のファームウェア（ＦＷ）を格納する。
【００１７】
ＭＡＣ４０は、メモリモジュール５０を制御するための装置であり、ＳＰＤ制御装置１００、及びパワーオンリセットシーケンサ（ＰＲＳ）４２を含む。ＭＡＣ４０は、チップセットとして実装できる。
ＰＲＳ４２は、ＳＰＤデータの読み出し処理を開始するために必要な処理を実行するシーケンス回路である。例えば、ＰＲＳ４２は、ＭＡＣ４０への電源投入、又は、シリアルバス９０ａに接続されるＭＭＢ３０からの起動指示に従って、ＳＰＤ読み出し処理を開始する。そして、ＰＲＳ４２は、ＳＰＤ読み出し部１２０にＳＰＤ読み出し指示を送信することで、ＳＰＤ記憶部１３０にＳＰＤデータを格納し、ＳＰＤデータをＳＰＤ受け渡し部１１０に転送する。
なお、ＭＭＢ３０は、情報処理装置１のリソースを管理する装置であり、複数の情報処理装置とＬＡＮやシリアルバス等を介して接続される。ＭＭＢ３０は、他の情報処理装置のリソースが上昇した場合、情報処理装置１に起動指示を送信する等の管理処理を実行する。また、ＭＭＢ３０は、ＭＭＢインタフェース１４８を介してＳＰＤ受け渡し部１１０からＳＰＤデータを取得することができる。ＰＲＳ４２は、ＭＡＣ４０への電源投入によりＳＰＤデータをＳＰＤ受け渡し部に転送させることができるため、ＭＭＢ３０は、ＭＡＣ３０の起動指示によりプロセッサ１０を起動させずに、ＳＰＤデータを取得することができる。
【００１８】
ＳＰＤ制御装置１００は、ＳＰＤ受け渡し部１１０、ＳＰＤ読み出し部１２０、ＳＰＤ記憶部１３０、ＳＰＤ読み出しレジスタ１４４、シリアルバス制御部１４６を有する。また、ＳＰＤ制御装置１００は、システムバス９２ａ、ＭＣＨ２０を介してプロセッサ１０と接続される。さらに、ＳＰＤ制御装置１００は、システムバス９２ｂを介してメモリモジュール５０と、シリアルバス９０ｂを介してＳＰＤメモリ６０とに接続される。なお、ＳＰＤ制御装置１００は、チップセットとして実装できる。
【００１９】
ＳＰＤ受け渡し部１１０は、ＦＷ又はＯＳがＳＰＤデータを取得するためのインタフェースとして機能する。ＳＰＤ受け渡し部１１０は、コマンドアドレスレジスタ１１１、ステータスレジスタ１１２、リードデータレジスタ１１３を有する。
ＦＷ又はＯＳは、ＳＰＤデータを取得するために、コマンドアドレスレジスタ１１１に、読み出しなどのオペレーションコードと、読みたいＳＰＤアドレスをセットする。ＳＰＤアドレスは、ＳＰＤデータを識別するためのチャネル番号、スロット番号、オフセット等を有するアドレスである。
【００２０】
ステータスレジスタ１１２は、ＳＰＤデータの読み出し処理の状態を示すビットデータを格納する。ビットデータ「１」の場合は、ＳＰＤデータの読み出し処理中を意味し、「ビットデータ「０」の場合は、ＳＰＤデータの読み出し処理が行われていないことを意味する。例えば、コマンドアドレスレジスタ１１１内のコマンド及びアドレスがＳＰＤ受け渡し部１１０によってデコードされると、ＳＰＤ受け渡し部１１０がステータスレジスタ１１２に記憶されるビットデータを「１」にする。
ＳＰＤ受け渡し部１１０は、コマンドアドレスレジスタ１１１内のコマンドアドレスをデコードすることによってＦＷ又はＯＳによるＳＰＤデータの読み出し指示を認識すると、ステータスレジスタ１１２に「Ｂｕｓｙ」フラグを立てる。そして、ＳＰＤ読み出し部１２０は、ＳＰＤ記憶部１３０に記憶されたＳＰＤデータ、又は、シリアルバス９０ｂを用いてＳＰＤメモリ６０から取得したＳＰＤデータを、リードデータレジスタ１１３にセットし、ステータスレジスタ１１２の「Ｂｕｓｙ」フラグをおとす。これは、ＳＰＤ受け渡し部１１０がＳＰＤデータの読み出し処理を終了したことを示す。
ＦＷ又はＯＳは、ステータスレジスタ１１２をポーリングしていて、「Ｂｕｓｙ」フラグが落ちているのを確認すると、リードデータレジスタ１１３からＳＰＤデータを読み出す。
【００２１】
なお、リードデータレジスタ１１３は、ＳＰＤ記憶部１３０に格納された全ＳＰＤデータを収納できる容量を有しても良い。この場合、シリアルバスの伝送速度に合わせたビット転送ではなく、数ワード以上のデータ量を有する全ＳＰＤデータを一度に転送するバースト転送を行うことができる。これにより、ＦＷ又はＯＳからのＳＰＤデータ読み出しの高速化、並びに、メモリ初期化処理の高速化を可能にする。
【００２２】
ＳＰＤ読み出し部１２０は、ＰＲＳ４２からのＳＰＤデータ読み出し指示に従って、ＳＰＤメモリ６０に格納されるＳＰＤデータを読み出し、ＳＰＤ記憶部１３０に記憶する。また、ＳＰＤ読み出し部１２０は、読み出したＳＰＤデータをＳＰＤ受け渡し部１１０のリードデータレジスタ１１３に設定する。
ＳＰＤ読み出し部１２０は、ＳＰＤ読み出しシーケンサ１２２と、ＳＰＤ読み書き制御部１２４とに機能を分けることもできる。
【００２３】
ＳＰＤ読み出しシーケンサ１２２は、ＳＰＤ受け渡し部１１０におけるリードコマンドやＳＰＤアドレスの受信、ＰＲＳ４２からのＳＰＤ読み出し指示の受信、ＳＰＤメモリ６０からのＳＰＤデータの読み出しなどの状態遷移を管理する。ＳＰＤ読み書き制御部１２４は、ＳＰＤ読み出しシーケンサ１２２で管理する状態遷移に基づいてＳＰＤ受け渡し部１１０、ＳＰＤ記憶部１３０、シリアルバス制御部１４６との信号制御を行うことができる。
なお、ＳＰＤ読み出しシーケンサ１２２及びＳＰＤ読み書き制御部１２４は、例えば、順序回路であるラッチ、フリップフロップ、レジスタファイル等で実装できる。
【００２４】
ＳＰＤ読み書き制御部１２４は、ＳＰＤ読み出しシーケンサ１２２からリードコマンドとアドレスを受信すると、シリアルバス制御部１４６を介して、シリアルバス９０ｂを介してＳＰＤメモリ６０からＳＰＤデータを読み出す。さらに、ＳＰＤ読み書き制御部１２４は、ＳＰＤメモリ６０から読み出したＳＰＤデータを、ＳＰＤ記憶部１３０に格納する。
【００２５】
ＳＰＤ記憶部１３０は、ＳＰＤ読み出し部１２０がＳＰＤ６０から読み出したＳＰＤデータをバッファするための記憶領域である。ＳＰＤ記憶部１３０は、ｌａｔｃｈ、ＦＦ、ＲＦ、ＲＡＭ等で実装できる。ＳＰＤ記憶部１３０は、ＭＡＣ４０のクロックで動作するため、高速で動作可能である。ＳＰＤ記憶部１３０内のＳＰＤデータにプロセッサ１０がアクセスする場合には、プロセッサ１０は、シリアルバス９０ｂを介することなく高速なシステムバスを介したＳＰＤデータの読み出しを行うことができる。
【００２６】
ＳＰＤ読み出しシーケンサ１２２は、読み出し対象となるチャネル、スロット、ＳＰＤメモリのメモリアドレスを変更し、ＳＰＤアドレスをインクリメントすることにより、ＳＰＤデータを読み出すことができる。このＳＰＤデータ読み出し処理のフローは、図７又は８を用いて後述する。また、ＳＰＤメモリ６０は、例えば、１個あたり２５６バイトの容量を有するが、２５６バイト全ての内容をＳＰＤ記憶部１３０に格納しなくても良い。
ＦＷ又はＯＳから読み出し要求が出されたとき、読み出しアドレスのＳＰＤデータがＳＰＤ記憶部１３０に格納されている、言い換えればヒットすれば、ＳＰＤ読み出し制御部１２４はＳＰＤ記憶部１３０からＳＰＤデータを読み出して、ＳＰＤ受け渡し部１１０内のリードデータレジスタ１１２にセットする。
指定された読み出しアドレスのＳＰＤデータが、ＳＰＤ記憶部１３０に無い場合は、ＳＰＤメモリ６０からＳＰＤデータを読み出して、読み出したＳＰＤデータをＳＰＤ読み出しレジスタ１４４にセットする。
【００２７】
情報処理装置１内の各コンポーネントは、並列に初期化処理が実行されるのが理想的であるが、実際にはコンポーネントの構成による物理的制約や制御の簡易性の必要性から、完全に並列化して初期化処理を行うことはできない。このため、全コンポーネントが初期化されるまでには時間がかかる。プロセッサ１０によりＳＰＤデータのＳＰＤメモリ６０からの読み出し処理が行われる場合、メモリ認識処理は、チップ内クロックに換算して非常に長い時間がかかり、メモリ初期化処理並びにコンピュータシステムの立ち上げ処理を遅延させていた。
そこで、図２を用いて、プロセッサ１０の初期化と独立して行われる、ＳＰＤ制御装置１００によるメモリ認識処理のフローの一例を説明する。
【００２８】
まず、ユーザがコンピュータ１の電源スイッチを押下することによって、情報処理装置１の電源投入を行うと（Ｓ２０１）、情報処理装置１内のＭＣＨ２０やＭＡＣ４０などの各コンポーネントへの電源投入、クロック供給、レジスタ値のリセット等の初期化処理が実行される（Ｓ２０２）。ＭＡＣ４０に電源投入されると、各装置間のバスの調整が行われるとともに（Ｓ２０３）、Ｓ２０３と並行してＰＲＳ４２が起動して、ＳＰＤ読み出し指示をＳＰＤ読み出しシーケンサ１２２に設定する（Ｓ２０４）。
【００２９】
ＳＰＤ読み出しシーケンサ１２２は、ＳＰＤ読み出し指示に従って、リードコマンドとＳＰＤアドレスを、ＳＰＤ読み書き制御部１２４のレジスタにセットする。ＳＰＤ読み書き制御部１２４は、ＳＰＤ読み出しシーケンサ１２２からリードコマンドとＳＰＤアドレスを受信すると、シリアルバス制御部１４６により、シリアルバス９０ｂを介してＳＰＤメモリ６０からＳＰＤデータを読み出す（Ｓ２０５）。ＳＰＤ読み書き制御部１２４は、ＳＰＤメモリ６０から読み出したＳＰＤデータを、ＳＰＤ読み出しレジスタ１４４を介してＳＰＤ記憶部１３０に格納する（Ｓ２０６）。
【００３０】
ＳＰＤデータの読み出し処理が行われるのと並行して、各装置間のバスの調整（Ｓ２０３）に続いて、ＩＣＨ７０の給電確認、システムバス設定、ＩＣＨ７０のＩＯポート有効化、システム設定、ＲＯＭ８０の設定等の情報処理装置１全体としての設定が行われ（Ｓ２０７）、制御レジスタ、トランスレーション・ルックアサイド・バッファ（ＴＬＢ）、タグの初期化といったプロセッサ１０の内部設定が行われる（Ｓ２０８）。このような処理が行われることで、プロセッサ１０の命令処理が可能になり、プロセッサ１０がメモリ初期化処理を行うためにＢＩＯＳを実行する（Ｓ２０９）。
【００３１】
このとき、ＳＰＤデータはＳ２０６において、ＭＡＣ内のＳＰＤ記憶部１３０に格納されている。プロセッサ１０は、シリアルバス９０ｂを介することなく、システムバス９２ａ並びにＳＰＤ受け渡し部１１０を介して、ＳＰＤ記憶部１３０内にバッファされているＳＰＤデータを読み出して（Ｓ２１０）、図２のフローを終了する。
【００３２】
このように、ＳＰＤ制御装置１００への電源投入により、ＳＰＤメモリ６０からＳＰＤデータの読み出しを開始するため、本実施形態によるＳＰＤ制御装置１００は、プロセッサ起動後に行われていたＳＰＤデータの読み取り処理を、プロセッサ初期化終了前に開始することができる。また、シリアルバスを用いたＳＰＤデータの読み出し処理を、プロセッサ初期化終了前に終了させることができるため、プロセッサ起動後、ＳＰＤデータの読み出し処理を行わずにメモリモジュールの初期化処理を開始して、ＯＳ等の立上げ時間を短縮することができる。
【００３３】
ＭＡＣ４０に接続されるメモリモジュール５０の数が増大すると、ＳＰＤ記憶部１３０が格納するＳＰＤデータも増大する。また、ＯＳ又はＦＷからのＳＰＤ読み出し指示に応答して、ＳＰＤメモリ６０からの読み出し処理が生じないように、ＳＰＤ記憶部１３０には、全てのメモリモジュール５０に対応する全ＳＰＤデータを格納することが好ましい。そのため、ＳＰＤ記憶部１３０は、ＳＰＤデータをデータ圧縮してＳＰＤデータに格納し、これにより必要な記憶容量を低減することができる。
【００３４】
以下、図３を用いて、ＳＰＤ記憶部の構成の一例を説明する。
一般的に、システム仕様、又は、システム運用上の制約により、同一チャネルあるいは同一スロットには、同一規格のメモリモジュールが搭載される。そのため、メモリモジュール間におけるＳＰＤデータの内容は、多くの部分が共通であり、一部だけが異なる。ＳＰＤデータのデータ圧縮を行うケースでは、そのようなＳＰＤデータの内容の共通性を利用して、ＳＰＤ記憶部にバッファするＳＰＤデータのデータ圧縮を行う。
【００３５】
図３（ａ）は、データ圧縮を行わずにＳＰＤデータをＳＰＤ記憶部に記憶する場合のＳＰＤ記憶部の装置構成の一例を示す図である。図３（ａ）に示される例では、ＳＰＤ制御装置１００は、ＳＰＤ記憶部１３０として、ＳＰＤ記憶部１３０ａに加えて、有効ポインタ記憶部１３４ａを有する。
図３（ａ）に示されるように、ＳＰＤ記憶部１３０ａのＳＰＤアドレス１３１ａは、チャネル番号、スロット番号、ＳＰＤメモリのメモリアドレスを有し、これらの組合せにより、メモリモジュール５０のＳＰＤデータを特定することができる。このＳＰＤアドレス１３１ａは、読み出し対象の全ＳＰＤデータがＳＰＤ記憶部１３０ａでヒットするために、全ＳＰＤメモリ６０の全てのＳＰＤデータを特定するアドレスであることが好ましい。
【００３６】
例えば、ＳＰＤメモリ６０のメモリ空間は、ＪＥＤＥＣ（Joint Electron Devices Engineering Council）から提供される仕様「ＪＥＤＥＣ  Ｓｔａｎｄａｒｄ  Ｎｏ．  ２１−Ｃ  Ｐａｇｅ  ４．１．２．４  -１  Ａｐｐｅｎｄｉｘ  Ｄ，  Ｒｅｖ．  １．０  ：  ＳＰＤ’ｓ  ｆｏｒ  ＤＤＲ  ＳＤＲＡＭ」に従って規定される。この場合、ＳＰＤメモリ６０のメモリ空間は、ＳＰＤメモリ６０のアドレス数である８ビットの行と、各アドレスに格納されるＳＰＤデータのデータ本体である８ビットの列で規定される。
上記ＪＥＤＥＣ仕様に従う場合、図３（ａ）に示されるメモリ空間は、例えば、チャネル番号（１ビット）＋スロット番号（１ビット）＋ＳＰＤメモリのメモリアドレス（８ビット）の行と、有効ビット（１ビット）＋データ本体（８ビット）の列で規定される。つまり、ＳＰＤアドレス１３１ａの各アドレスに格納されるデータのフォーマット１５１は、有効ビット（１ビット）＋データ本体（８ビット）のデータ幅を有する。ここで、有効ビット数とは、ＳＰＤ記憶部１３０ａにＳＰＤメモリ６０のＳＰＤアドレスに格納されたデータが格納されたか否かを示すビットである。有効ビットが「１」の場合、ＳＰＤデータが格納されており、有効ビットが「０」の場合、ＳＰＤデータが格納されていないことを示す。
【００３７】
図３（ａ）のＳＰＤアドレス１３１ａに示すように、ＳＰＤアドレス１３１ａは、チャネル番号、スロット番号、ＳＰＤ内メモリアドレスの並びに従って、昇順でシーケンシャルに配番されている。有効ポインタ記憶部１３４ａは、ＳＰＤメモリ６０から昇順で読み出されて、ＳＰＤ記憶部１３０ａにＳＰＤアドレス昇順で格納されたエントリのうち最後尾のＳＰＤアドレスをポインタとして格納する。なお、この最後尾のアドレスを指示するデータを「有効ポインタ」と称する。これにより、有効ポインタは、ＳＰＤアドレス１３１ａにおいて、昇順で数えてどの順番のＳＰＤアドレスまでＳＰＤデータが格納されたかを指示する。このように、有効ポインタ記憶部１３４ａはＳＰＤアドレスを格納するために、有効ポインタ記憶部１３４ａは、ＳＰＤアドレス１３１ａのアドレス幅と同じ１０ビットのデータ幅を有する。
この有効ポインタは、ＳＰＤアドレスに従って、ＳＰＤ記憶部１３０ａにＳＰＤデータを登録するために利用される（後述）。
【００３８】
図３（ｂ）は、データ圧縮してＳＰＤデータをＳＰＤ記憶部に記憶する場合のＳＰＤ記憶部の装置構成の一例を示す図である。図３（ｂ）に示される例では、ＳＰＤ制御装置１００は、ＳＰＤ記憶部１３０として、ＳＰＤ記憶部１３０ｂ、有効ポインタ記憶部１３４ｂ、ＳＰＤポインタ記憶部１３６ｂ、及びテンポラルポインタ記憶部１３８ｂを有する。
【００３９】
上記ＪＥＤＥＣ仕様によれば、ＳＰＤメモリのデータ幅は８ビットであるが、上記仕様に反して、ＳＰＤメモリのデータ幅が８ビット以上になる場合がある。例えば、ＪＥＤＥＣ仕様の「モジュールデータ幅設定」によれば、メモリモジュールのデータ幅は、２つの８ビットデータを利用してデータ定義される。しかしながら、メモリモジュールの提供会社によっては、上記ＪＥＤＥＣ仕様に反して、１つの１６ビットデータを利用してモジュールデータ幅を規定したＳＰＤメモリもある。その場合、ＳＰＤ記憶部１３０ａが、１６ビット分のデータ幅を用意する必要がある。
【００４０】
図３（ｂ）では、上記のような１６ビットのデータ幅を有するＳＰＤデータのデータ圧縮を図るため、ＳＰＤ記憶部１３０ｂには、共通のＳＰＤデータのうち、重複部分を排除してただ１つに選択された固有のＳＰＤデータを格納する。このようなデータ圧縮は、同じ仕様のメモリモジュールを複数使うとき、チャネル番号及びスロット番号が異なるだけで、同じＳＰＤメモリアドレスに格納された同じＳＰＤデータが読み出されるためより有用になる。
ＳＰＤ記憶部１３０ｂの各アドレスに格納されるデータのフォーマット１５２は、ＳＰＤメモリ６０に格納されるデータ本体のデータ幅を有する。このデータ本体は、例えば、１６ビットである。
また、本実施形態では、ＳＰＤ記憶部１３０ｂは、００〜ｆｆまでのアドレスがあるたため、ＳＰＤ記憶部１３０ｂのアドレス幅は、８ビットである。
【００４１】
ＳＰＤポインタ記憶部１３６ｂでは、ＳＰＤ記憶部１３０ａ同様に、ＳＰＤアドレス１３１ｂは、チャネル番号、スロット番号、ＳＰＤメモリアドレスを有し、これらの組合せにより、メモリモジュール５０のＳＰＤデータを特定する。このＳＰＤアドレス１３１ｂは、読み出し対象の全ＳＰＤデータがＳＰＤ記憶部１３０ｂでヒットするために、全ＳＰＤメモリ６０の全てのＳＰＤデータを特定するアドレスであることが好ましい。
ＳＰＤポインタ記憶部１３６ｂでは、ＳＰＤアドレス１３１ｂの各アドレスに格納されるデータのフォーマット１５３は、有効ビット（１ビット）＋ＳＰＤ記憶部１３０ｂのアドレス幅（８ビット）のデータ幅を有する。
【００４２】
有効ポインタ記憶部１３４ｂは、ＳＰＤメモリ６０から昇順で読み出されて、ＳＰＤデータの重複部分を排除してＳＰＤ記憶部１３０ｂにＳＰＤアドレス昇順で格納されたエントリのうち最後尾のＳＰＤアドレスを格納する。この最後尾のＳＰＤアドレスは、有効ポインタは、ＳＰＤアドレス１３１ｂにおいて、昇順で数えてどの順番のＳＰＤアドレスまでＳＰＤデータが格納されたかを指示する。
なお、有効ポインタ記憶部１３４ｂは、ＳＰＤ記憶部１３０ｂのアドレスを格納するためにＳＰＤ記憶部１３０ｂのアドレス幅と同じ８ビットのデータ幅を有する。有効ポインタは、ＳＰＤ記憶部１３０ｂにＳＰＤデータを登録するために利用される（後述）。
【００４３】
テンポラルポインタ記憶部１３８ｂは、ＳＰＤデータの中で重複部分を排除してＳＰＤ記憶部１３０ｂに固有のＳＰＤデータを選択する処理を行う上で、利用されるＳＰＤ記憶部１３０ｂのアドレスをテンポラルポインタとして格納する。ここで格納されるＳＰＤ記憶部１３０ｂのアドレスは、ＳＰＤ記憶部１３０ｂに既に登録されたＳＰＤデータに対応するＳＰＤ記憶部１３０ｂのアドレスである。このテンポラルポインタ記憶部１３８ｂに格納アドレスをインクリメントしながら利用することで、既登録のＳＰＤデータと、ＳＰＤメモリ６０内のＳＰＤデータとの照合処理を行うことができる。
また、テンポラルポインタ記憶部１３８ｂは、ＳＰＤ記憶部１３０ｂのアドレスを格納するために、ＳＰＤ記憶部１３０ｂのアドレス幅と同じ８ビットのデータ幅を有する。
なお、テンポラルポインタ記憶部１３８ｂに記憶された情報のより詳細な利用方法は、図５及び６において説明する。
【００４４】
ＳＰＤメモリ６０のデータ幅が１６ビットのとき、図３（ａ）に示すＳＰＤ記憶部１３０ａは、全ＳＰＤアドレス１３１ａ（チャネル・スロット数（４ビット）×ＳＰＤメモリアドレス（２５６ビット））×データ幅（１ビット＋１６ビット）のメモリ空間を有する。
一方、図３（ｂ）に示すＳＰＤポインタ記憶部１３６ｂは、全ＳＰＤアドレス１３１ａであるチャネル・スロット数（４ビット）×ＳＰＤメモリアドレス（２５６ビット）×データ幅（９ビット）のメモリ空間を有する。また、ＳＰＤ記憶部１３０ｂは、ＳＰＤメモリアドレス（２５６ビット）×データ幅（１６ビット）のメモリ空間を有する。
この場合のデータ圧縮率は、下記式で示される。
図３（ｂ）に示すメモリ容量／図３（ａ）に示すメモリ容量＝（４×２５６×９＋２５６×１６）／（４×２５６×１７）＝０．７６
したがって、図３（ｂ）に示すメモリ容量は、図３（ａ）に示すメモリ容量に対して約２３〜２４％のデータ圧縮効果がある。また、この効果は、チャネル及びスロット数の増加によりさらに大きくなる。例えば、チャネル及びスロット数を３２にして、３２個の同じメモリモジュールが搭載された場合について考えると、データ圧縮率は、下記式で示される。
【００４５】
図３（ｂ）に示すメモリ容量／図３（ａ）に示すメモリ容量＝（３２×２５６×９＋２５６×１６）／（３２×２５６×１７）＝０．５６
図３（ｂ）に示すメモリ容量は、図３（ａ）に示すメモリ容量に対して約４４％のデータ圧縮効果がある。
また、ＳＰＤデータは、そのデータが示す情報は異なっても、同じビット列となる場合がある。このような場合も、重複したＳＰＤデータは排除されてＳＰＤ記憶部１３０ｂに格納されるため、上記式では表されないデータ圧縮効果がある。
このように、本実施形態では、情報処理装置１に搭載される大量のメモリモジュール用のＳＰＤデータを圧縮して格納することができるため、ＳＰＤ記憶部１３０を小型化、低コスト化することができる。
【００４６】
図４を用いて、ＳＰＤ記憶部１３０ａへのＳＰＤデータの登録フローの一例を説明する。なお、図４に示されたＳＰＤデータの登録フローは、図２で説明した情報処理装置１の起動に伴うＳＰＤ読み出し処理（Ｓ２０４〜Ｓ２０６）に行われても良いし、ＯＳ又はＦＷのＳＰＤ読み出しに対応するＳＰＤデータがＳＰＤ記憶部１３０に無かった場合に行っても良い。
最初に、ＳＰＤ読み出しシーケンサ１２２は、ＳＰＤ読み書き制御部１２４に、リードコマンドとＳＰＤアドレスを送出する。ＳＰＤ読み書き制御部１２４は、ＳＰＤ読み出しシーケンサ１２２からＳＰＤアドレスを受信すると、まず、有効ポインタ記憶部１３４ａの内容を「−１」にリセットする（Ｓ３０１）。
ＳＰＤ読み書き制御部１２４は、ＳＰＤ記憶部１３０ａの内容を全て０にリセットする（Ｓ３０２）。例えば、チャネル番号＝０、スロット番号＝０、ＳＰＤ内のオフセット＝０に設定する。
【００４７】
ＳＰＤ読み出しシーケンサ１２２は、読み出し対象となるＳＰＤアドレスが、ＭＡＣ４０に接続されている全てのＳＰＤメモリ６０のＳＰＤアドレスの範囲内か否かを判断する（Ｓ３０３）。ＳＰＤアドレスは、最初の読み出しの場合、上記したように、チャネル番号＝０、スロット番号＝０、ＳＰＤ内のオフセット＝０となる。また、Ｓ３０３で判断されるＳＰＤメモリ６０のＳＰＤアドレスの範囲は、例えば、チャネル番号０〜４、スロット番号０〜１、ＳＰＤメモリのメモリアドレス０〜２５５である。
読み出し対象のＳＰＤアドレスがＳＰＤアドレス範囲内の場合（Ｓ３０３  Ｙｅｓ）、ＳＰＤ読み書き制御部１２４は、ＳＰＤメモリ６０からＳＰＤデータを読み出して、読み出したＳＰＤデータをＳＰＤ読み出しレジスタ１４４に設定する（Ｓ３０４）。読み出し対象のＳＰＤアドレスがＳＰＤアドレス範囲内にない場合（Ｓ３０３  Ｎｏ）、全ＳＰＤ範囲内のＳＰＤデータを読み出したと判断して、この処理フローを終了する。
ＳＰＤ読み書き制御部１２４は、ＳＰＤ読み出しレジスタ１４４に設定されたＳＰＤデータを、ＳＰＤ記憶部１３０の該当するＳＰＤアドレス１３１ａに格納する（Ｓ３０５）。次に、ＳＰＤ読み書き制御部１２４は、ＳＰＤ記憶部１３０に格納したＳＰＤアドレスの先頭ビットを有効（オン）にし、有効ポインタ記憶部１３４ａの有効データ数を１つインクリメントする（Ｓ３０６）。
【００４８】
ＳＰＤ読み出しシーケンサ１２２は、有効ポインタ記憶部１３４ａに格納した有効データ数が、Ｓ３０３で取得したＳＰＤアドレス範囲内の最終ＳＰＤアドレスに相当しないと判断する場合（Ｓ３０７  Ｎｏ）はＳ３０８に進む。一方、有効ポインタ記憶部１３４ａに格納した有効データ数がＳＰＤアドレス範囲内の最終ＳＰＤアドレスに相当すると判断する場合（Ｓ３０７  Ｙｅｓ）、全ＳＰＤ範囲内のＳＰＤデータを読み出したと判断して、フローを終了する。
Ｓ３０８では、ＳＰＤ読み書き制御部１２４は、読み出し対象のＳＰＤアドレスをインクリメントして、Ｓ３０３に戻り、上記したステップＳ３０３〜Ｓ３０７の処理を再度繰り返すことで、ＳＰＤデータをさらに読み出す。
【００４９】
図５及び６を用いて、ＳＰＤ記憶部１３０ｂのＳＰＤデータの登録フローの一例を説明する。
図５の登録フローのＳ３０１〜Ｓ３０３は、図４を用いて説明した登録フローＳ３０１〜Ｓ３０３と同じ処理が行われる。
Ｓ３０３に続き、ＳＰＤ読み書き制御部１２４は、テンポラルポインタ記憶部１３８ｂを「０」にリセットする（Ｓ４０１）。ＳＰＤ読み書き制御部１２４は、受信したリードコマンドとＳＰＤアドレスに従ってＳＰＤメモリ６０からＳＰＤデータを読み出し（Ｓ４０２）、読み出したＳＰＤデータを、ＳＰＤ読み出しレジスタ１４４に設定する（Ｓ４０３）。
ＳＰＤ読み出しシーケンサ１２２は、有効ポインタ記憶部１３４ｂと、テンポラルポインタ記憶部１３８ｂとを比較する（Ｓ４０４）。有効ポインタ記憶部１３４ｂに設定された有効データ数が、テンポラルポインタ記憶部１３８ｂに設定されたデータ数以上の場合（Ｓ４０４  Ｎｏ）、新たにＳＰＤデータ記憶部１３０ｂにＳＰＤデータを登録するために、Ｓ４０５に進む。一方、有効ポインタ記憶部１３４ｂに設定された有効データ数が、テンポラルポインタ記憶部１３８ｂに設定されたデータ数以下の場合（Ｓ４０４  Ｙｅｓ）、新たにＳＰＤポインタ記憶部１３６ｂにＳＰＤデータ記憶部１３０ｂのアドレスを登録するために、Ｓ４１０に進む。
【００５０】
Ｓ４０５〜Ｓ４０９では、ＳＰＤ読み書き制御部１２４によるＳＰＤポインタ記憶部１３６ｂへのＳＰＤ記憶部１３０ｂのアドレス登録処理が行われる。
【００５１】
まず、ＳＰＤ読み書き制御部１２４は、ＳＰＤ記憶部１３０ｂの有効データ数が増加するため、有効ポインタ記憶部１３４ｂの有効ポインタがインクリメントする（Ｓ４０５）。
ＳＰＤ読み書き制御部１２４は、有効ポインタ記憶部１３４ｂの有効ポインタと同じ値をとるＳＰＤ記憶部１３０ｂのアドレスに、Ｓ４０２で読み出したＳＰＤデータを登録する（Ｓ４０６）。有効ポインタ記憶部１３４ｂは、ＳＰＤ記憶部１３０ｂの有効データ数を指示するため、新たにＳＰＤ記憶部１３０ｂにＳＰＤデータを登録するときは、Ｓ４０５でインクリメントされた有効ポインタが利用される。
次に、Ｓ４０６で新たにＳＰＤデータが登録されたため、登録されたＳＰＤデータを指示するＳＰＤ記憶部１３０ｂのアドレスを、ＳＰＤ読み書き制御部１２４は、ＳＰＤポインタ記憶部１３６ｂに登録する（Ｓ４０７）。
ＳＰＤ読み出しシーケンサ１２２は、有効ポインタが、ＳＰＤ記憶部１３０ｂの最終アドレスより大きいか否かを判断することにより、ＳＰＤアドレスが最終アドレスに達したか否かを判断する（Ｓ４０８）。有効ポインタが最終アドレスより（Ｓ４０８  Ｙｅｓ）、ＳＰＤ記憶部１３０ｂは全アドレスにＳＤＰ情報が格納されているため、フローを終了する。有効ポインタが最終アドレスより小さい場合（Ｓ４０８  Ｎｏ）、まだＳＰＤ記憶部１３０ｂにＳＰＤデータを格納できるため、読み出しＳＰＤアドレスをインクリメントして（Ｓ４０９）、Ｓ３０３に戻り再度処理を繰り返す。有効ポインタが最終アドレスと同じ場合（Ｓ４０８  Ｙｅｓ）、ＳＰＤアドレスが最終アドレスに達したと判断して、フロー処理を終了する。
【００５２】
Ｓ４１０では、テンポラルポインタ記憶部１３８ｂのテンポラルポインタが指示するＳＰＤ記憶部１３０ｂのＳＰＤデータと、Ｓ４０３でＳＰＤ読み出しレジスタ１４４に格納されるＳＰＤデータが一致するか否かを判断する（Ｓ４１０）。一致する場合（Ｓ４１０  Ｙｅｓ）は、有効ポインタ記憶部１３６ｂにテンポラルポインタを記録する（Ｓ４１１）。Ｓ４１１に続き、Ｓ４１２では、次のＳＰＤアドレスについて処理をすすめるために、読み出しＳＰＤアドレスをインクリメントする。一致しない場合（Ｓ４１０  Ｎｏ）は、ＳＰＤデータ登録部１３０ｂの次の有効データを参照するためにテンポラルポインタをインクリメントする（Ｓ４１３）。
【００５３】
図７を用いて、ＦＷ又はＯＳからの読み出しによるＳＰＤ記憶部１３０ａからのＳＰＤデータの読み出しフローの一例を説明する。
最初に、ＳＰＤ受け渡し部１１０は、ＦＷ又はＯＳからの読み出し要求と共にこの読み出し要求に含まれる読み出し対象のＳＰＤアドレスを受信する（Ｓ５０１）。読み出し対象となるＳＰＤアドレスは、特定のメモリモジュールの全ＳＰＤアドレスや、全メモリモジュールの全ＳＰＤアドレス等である。ＳＰＤ読み書き制御部１２４は、全ＳＰＤアドレス１３１ａを、ＳＰＤ記憶部１３０ａから読み出す（Ｓ５０２）。
ＳＰＤ読み出しシーケンサは、Ｓ５０１で受信した読み出しアドレスが、Ｓ５０２で読み出した全ＳＰＤアドレス１３１ａの範囲内にあるか否かを判断する（Ｓ５０３）。読み出し対象のＳＰＤアドレスが、有効なＳＰＤアドレス範囲内に無い場合（Ｓ５０３  Ｎｏ）、図３のＳ３０４〜Ｓ３０５で説明したようにＳＰＤメモリ６０からＳＰＤ仕様情報を読み出す処理を実行して（Ｓ５０６）、読み出し対象のＳＰＤアドレスにあるＳＰＤデータを、ＳＰＤ記憶部１３０ａ又は１３０ｂに格納し、Ｓ５０４に進む。
なお、このようにＦＷ又はＯＳから受信した読み出し対象となるＳＰＤデータが、ＳＰＤ記憶部１３０ａに無い状況は、図２で説明したようなプロセッサ初期化前のＳＰＤデータの読み出し処理を無効化したケースが該当する。Ｓ５０３及びＳ５０６はそのような場合の異常処理として機能し得る。
また、Ｓ５０３において有効なＳＰＤアドレス範囲内にある場合（Ｓ５０３  Ｙｅｓ）、Ｓ５０４に進む。
【００５４】
Ｓ５０４では、読み出したＳＰＤデータが有効か否かを判断する。なお、ＳＰＤ記憶部１３０ａに「−１」が入力されているため、その値に基づいてＳＰＤデータが有効か否かを判断することができる。ＳＰＤデータが有効でない場合（Ｓ５０４  Ｎｏ）は、Ｓ５０７に進み再度ＳＰＤデータをＳＰＤから取得する。なお、Ｓ５０７では、図３のＳ３０４〜Ｓ３０５で説明したようにＳＰＤメモリ６０からＳＰＤ仕様情報を読み出す処理を実行する（Ｓ５０７）。読み出し処理終了後、Ｓ５０５に進む。ＳＰＤデータが有効である場合（Ｓ５０４  Ｙｅｓ）は、読み出したＳＰＤデータをＳＰＤ受け渡し部１１０を介して要求元であるＦＷ又はＯＳに戻して（Ｓ５０５）、ＳＰＤデータの読み出しフローを終了する。
【００５５】
図８を用いて、ＦＷ又はＯＳからの読み出しによるＳＰＤ記憶部１３０ｂからのＳＰＤデータの読み出しフローの一例を説明する。
最初に、ＳＰＤ読み書き制御部１２４は、ＦＷ又はＯＳからの読み出し要求と共に読み出し要求に含まれる読み出し対象のＳＰＤアドレスを受信する（Ｓ６０１）。ＳＰＤ読み書き制御部１２４は、読み出し対象のＳＰＤアドレスに格納されるポインタをＳＰＤ記憶部１３０ａから読み出す（Ｓ６０２）。ＳＰＤ読み書き制御部１２４は、読み出したポインタが有効か否かを判断する（Ｓ６０３）。言い換えれば、ＳＰＤ読み書き制御部１２４は、ＳＰＤポインタ記憶部１３６ｂの中で受信した読み出し対象のＳＰＤアドレス１３１ｂのポインタの有効ビットが「１」か「０」かを判断する。有効ビットが「０」の場合は、当該データエントリにはＳＰＤ記憶部１３０ｂのアドレスが格納されない。ポインタが有効でない場合（Ｓ６０３  Ｎｏ）は、ＳＰＤデータのＳＰＤ記憶部１３０ｂへの登録処理が実行される。この処理では、ＳＰＤ読み書き制御部１２４は、有効ポインタ記憶部１３４ｂから有効ポインタを取得する（Ｓ６０６）。そして、図５のＳ３０３、Ｓ４０１〜Ｓ４１３の処理を実行して、ＳＰＤメモリからＳＰＤデータを読み出して、ＳＰＤ記憶部１３０ｂにＳＰＤデータを登録する（Ｓ６０７）。ＳＰＤ読み出し処理終了後、Ｓ６０４に進む。
一方、Ｓ６０３で、ポインタが有効であると判断された場合（Ｓ６０３  Ｙｅｓ）は、ＳＰＤポインタ記憶部１３６ｂに格納されるＳＰＤ記憶部１３０ｂのアドレスを参照して、ＳＰＤ記憶部１３０ｂからＳＰＤデータを読み出す（Ｓ６０４）。
ＳＰＤ読み書き制御部１２４は、読み出したＳＰＤデータを、ＳＰＤ受け渡し部１１０を介して要求元であるＦＷ又はＯＳに戻して（Ｓ６０５）、ＳＰＤデータの読み出しフローを終了する。
【００５６】
以上述べた一実施形態は、以下の付記の通りである。
（付記１）
プロセッサ、メモリモジュール、及び該メモリモジュールの仕様を示す仕様情報を記憶する仕様情報記憶メモリに接続される制御装置であって、
前記制御装置への電源投入により、前記仕様情報記憶メモリから前記仕様情報を読み出す読み出し部と、
前記仕様情報記憶メモリから読み出された仕様情報を格納する記憶部と、
前記プロセッサから前記仕様情報の読み出し指示を受信して、前記記憶部に格納された前記仕様情報を前記プロセッサに受け渡す受け渡し部と、
を有することを特徴とする制御装置。
（付記２）
前記制御装置は、複数のメモリモジュールと、該複数のメモリモジュールにそれぞれ対応する複数の前記仕様情報記憶メモリとに接続され、
前記記憶部は、前記複数の仕様情報記憶メモリに格納される複数の前記仕様情報のうち、重複部分を取り除いた仕様情報を格納し、
前記制御装置は、前記記憶部のアドレスを指示するポインタ情報を、前記メモリモジュールの位置情報と関連付けて格納するポインタ記憶部をさらに有し、
前記ＳＰＤ読み出し部は、読み出し対象となるメモリモジュールの位置情報を含む仕様情報の読み出し指示を受信して、該メモリモジュールの位置情報に関連付けられる前記ポインタ情報を前記ポインタ記憶部から取得し、且つ、該取得した前記ポインタ情報によって指示される前記記憶部のアドレスから、前記仕様情報を取得することを特徴とする、付記１に記載の制御装置。
（付記３）
前記読み出し部は、前記仕様情報をバースト転送で前記プロセッサに受け渡すことを特徴とする、付記１又は２に記載の制御装置。
（付記４）
プロセッサと、
メモリモジュールと、
制御装置と、を備え、
前記メモリモジュールは、
第一のメモリと、
前記メモリモジュールの仕様を示す仕様情報を記憶する第二のメモリとを有し、
前記制御装置は、
前記制御装置への電源投入により、前記第二のメモリから前記仕様情報を読み出す読み出し部と、
前記読出し部が読みだした仕様情報を格納する記憶部と、
前記プロセッサからの読み出し指示を受信して、前記記憶部に格納された仕様情報を前記プロセッサに受け渡す受け渡し部と、
を有することを特徴とする情報処理装置。
（付記５）
前記制御装置は、前記メモリモジュールへのアクセスを制御するメモリ制御装置であることを特徴とする、付記４に記載の情報処理装置。
（付記６）
前記制御装置は、複数のメモリモジュールと、該複数のメモリモジュールにそれぞれ対応する複数の前記仕様情報記憶メモリとに接続され、
前記記憶部は、前記複数の仕様情報記憶メモリに格納される複数の前記仕様情報のうち、重複部分を取り除いた仕様情報を格納し、
前記制御装置は、前記記憶部のアドレスを指示するポインタ情報を、前記メモリモジュールの位置情報と関連付けて格納するポインタ記憶部をさらに有し、
前記ＳＰＤ読み出し部は、読み出し対象となるメモリモジュールの位置情報を含む仕様情報の読み出し指示を受信して、該メモリモジュールの位置情報に関連付けられる前記ポインタ情報を前記ポインタ記憶部から取得し、且つ、該取得した前記ポインタ情報によって指示される前記記憶部のアドレスから、前記仕様情報を取得することを特徴とする、付記４又は５に記載の情報処理装置。
（付記７）
前記読み出し部は、前記仕様情報をバースト転送で前記プロセッサに受け渡すことを特徴とする、付記４〜６のいずれか１項に記載の情報処理装置。
（付記８）
プロセッサ、メモリモジュール、及び該メモリモジュールの仕様を示す仕様情報を記憶する仕様情報記憶メモリに接続され、且つ記憶部を有する制御装置により前記プロセッサに前記メモリモジュールを認識させるメモリモジュール認識方法であって、
前記プロセッサが、前記制御装置への電源投入により、立ち上げ処理を開始し、
前記制御装置は、前記制御装置への電源投入により、前記仕様情報記憶メモリから前記仕様情報の読み出しを開始し、
前記制御装置は、前記仕様情報を前記記憶部に格納し、
前記制御装置は、前記立ち上げ処理を終了したプロセッサから前記仕様情報の読み出し指示を受信して、前記記憶部に格納された前記仕様情報を前記プロセッサに受け渡すことを特徴とするメモリモジュール認識方法。
（付記９）
前記制御装置は、複数のメモリモジュールと、該複数のメモリモジュールにそれぞれ対応する複数の前記仕様情報記憶メモリとに接続され、且つ、ポインタ記憶部をさらに有すると共に、
前記複数の仕様情報記憶メモリに格納される複数の前記仕様情報のうち、重複部分を取り除いた仕様情報を前記記憶部に格納し、
前記記憶部のアドレスを指示するポインタ情報を、前記メモリモジュールの位置情報と関連付けて前記ポインタ記憶部に格納し、
読み出し対象となるメモリモジュールの位置情報を含む仕様情報の読み出し指示を受信して、該メモリモジュールの位置情報に関連付けられる前記ポインタ情報を前記ポインタ記憶部から取得し、且つ、該取得した前記ポインタ情報によって指示される前記記憶部のアドレスから、前記仕様情報を取得することを特徴とする、付記８に記載のメモリモジュール認識方法。
（付記１０）
前記仕様情報をバースト転送で前記プロセッサに受け渡すステップをさらに有することを特徴とする、付記８又は９に記載のメモリモジュール認識方法。
（付記１１）
前記制御装置は、複数のメモリモジュール及び前記プロセッサとシステムバスで接続され、
前記制御装置は、前記複数のメモリモジュールにそれぞれ対応する複数の前記仕様情報記憶メモリとシリアルバスで接続され、
前記仕様情報の読み出しを開始するステップは、前記シリアルバスを介して実行され、
前仕様情報の受け渡しステップは、前記システムバスを介して実行されることを特徴とする、付記８〜１０のいずれか１項に記載のメモリモジュール認識方法。
【図面の簡単な説明】
【００５７】
【図１】図１は、情報処理装置の構成の一例を示す図である。
【図２】図２は、プロセッサの初期化と独立して行われるＳＰＤ制御装置におけるメモリ認識処理のフローチャートである。
【図３】図３は、ＳＰＤ記憶部の構成の一例を示す図である。
【図４】図４は、ＳＰＤ記憶部１３０ａへのＳＰＤデータの登録フローの一例を示す図である。
【図５】図５は、ＳＰＤ記憶部１３０ｂへのＳＰＤデータの登録フローの一例を示す図である。
【図６】図６は、ＳＰＤ記憶部１３０ｂへのＳＰＤデータの登録フローの一例を示す図である。
【図７】図７は、ＦＷ又はＯＳからの読み出しによるＳＰＤ記憶部１３０ａからのＳＰＤデータの読み出しフローの一例を示す図である。
【図８】図８は、ＦＷ又はＯＳからの読み出しによるＳＰＤ記憶部１３０ｂからのＳＰＤデータの読み出しフローの一例を示す図である。
【符号の説明】
【００５８】
１    情報処理装置
１０    プロセッサ
４０    ＭＡＣ
４２    ＰＲＳ
５０    メモリモジュール
６０    ＳＰＤメモリ
１００    ＳＰＤ制御装置
１１０    ＳＰＤ受け渡し部
１２０    ＳＰＤ読み出し部
１２２    ＳＰＤ読み出しシーケンサ
１２４    ＳＰＤ読み出しレジスタ
１３０、１３０ａ、１３０ｂ    ＳＰＤ記憶部
【図１】
2010039645.tif 000003
【図２】
2010039645.tif 000004
【図３】
2010039645.tif 000005
【図４】
2010039645.tif 000006
【図５】
2010039645.tif 000007
【図６】
2010039645.tif 000008
【図７】
2010039645.tif 000009
【図８】
2010039645.tif 000010