(57)【特許請求の範囲】
【請求項１】
メモリ制御装置自体の起動時に、主記憶メモリの初期化を行わず、ディレクトリメモリの初期化を行うことにより、ＣＰＵのキャッシュメモリに対する前記主記憶メモリの所定領域毎のキャッシング状態を保持する前記ディレクトリメモリ内に、前記主記憶メモリの所定領域毎の初期化状態を表す初期化情報を記憶するディレクトリ初期化手段と、
前記主記憶メモリの所定領域に対するアクセス時に、当該所定領域に対応する前記ディレクトリメモリ内の前記初期化情報に基づいて、当該所定領域の初期化を行う初期化手段と、を備えた、
ことを特徴とするメモリ制御装置。
【請求項２】
前記ディレクトリメモリ内に、前記主記憶メモリの所定領域の前記キャッシュメモリに対するキャッシング状態を表すキャッシング情報と共に、当該所定領域の前記初期化情報を記憶する、
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記ディレクトリメモリ内の、前記主記憶メモリの所定領域の前記キャッシュメモリに対するキャッシング状態を表すキャッシング情報を格納する領域の空きビットに、当該所定領域が未初期化であることを表す未初期化情報を記憶する、
ことを特徴とする請求項２記載のメモリ制御装置。
【請求項４】
前記ディレクトリメモリ内の、前記主記憶メモリの所定領域の前記キャッシュメモリに対する３つのキャッシング状態を表すキャッシング情報を格納する２ビットの領域に、当該所定領域が未初期化状態であることを表す未初期化情報をさらに記憶する、
ことを特徴とする請求項３記載のメモリ制御装置。
【請求項５】
前記ディレクトリメモリ内の前記２ビットの領域に、前記主記憶メモリの所定領域の前記キャッシュメモリに対する３つのキャッシング状態として、いずれの前記キャッシュメモリにもキャッシングされていない状態を表す第一の情報、いずれかひとつの前記キャッシュメモリにキャッシングされている可能性がある状態を表す第二の情報、ひとつあるいは複数の前記キャッシュメモリにキャッシングされている可能性がある状態を表す第三の情報、を記憶すると共に、さらに前記未初期化情報を記憶する、
ことを特徴とする請求項４記載のメモリ制御装置。
【請求項６】
前記第一の情報、第二の情報、第三の情報を、前記主記憶メモリの所定領域が初期化済みを表す情報とする、
ことを特徴とする請求項５記載のメモリ制御装置。
【請求項７】
前記初期化手段は、前記主記憶メモリの所定領域に対するアクセス時に、当該所定領域に対応する前記ディレクトリメモリ内の前記初期化情報が未初期化を表す場合に、当該所定領域内のデータのチェックを行わずに初期化する、
ことを特徴とする請求項１，２，３，４，５又は６記載のメモリ制御装置。
【請求項８】
請求項１乃至７のいずれか一項に記載のメモリ制御装置と、前記ディレクトリメモリと、前記主記憶メモリと、を備えたことを特徴とするコンピュータ。
【請求項９】
メモリ制御装置自体の起動時に、主記憶メモリの初期化を行わず、ディレクトリメモリの初期化を行うことにより、ＣＰＵのキャッシュメモリに対する前記主記憶メモリの所定領域毎のキャッシング状態を保持する前記ディレクトリメモリ内に、前記主記憶メモリの所定領域毎の初期化状態を表す初期化情報を記憶するステップと、
前記主記憶メモリの所定領域に対するアクセス時に、当該所定領域に対応する前記ディレクトリメモリ内の前記初期化情報に基づいて、当該所定領域の初期化を行うステップと、
を有することを特徴とするメモリ制御方法。
【請求項１０】
前記ディレクトリメモリ内に、前記主記憶メモリの所定領域の前記キャッシュメモリに対するキャッシング状態を表すキャッシング情報と共に、当該所定領域の前記初期化情報を記憶する、
ことを特徴とする請求項９に記載のメモリ制御方法。
【請求項１１】
コンピュータに、
メモリ制御装置自体の起動時に、主記憶メモリの初期化を行わず、ディレクトリメモリの初期化を行うことにより、ＣＰＵのキャッシュメモリに対する前記主記憶メモリの所定領域毎のキャッシング状態を保持する前記ディレクトリメモリ内に、前記主記憶メモリの所定領域毎の初期化状態を表す初期化情報を記憶するステップと、
前記主記憶メモリの所定領域に対するアクセス時に、当該所定領域に対応する前記ディレクトリメモリ内の前記初期化情報に基づいて、当該所定領域の初期化を行うステップと、
を実行させるためのプログラム。
【請求項１２】
前記ディレクトリメモリ内に、前記主記憶メモリの所定領域の前記キャッシュメモリに対するキャッシング状態を表すキャッシング情報と共に、当該所定領域の前記初期化情報を記憶する、
ことを特徴とする請求項１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置にかかり、特に、メモリの初期化を行うメモリ制御装置に関する。
【背景技術】
【０００２】
主記憶メモリを実装したコンピュータは、立ち上げ時に、主記憶メモリに正しいＥＣＣ（Error Correcting Code）にしたデータを書き込んで、当該主記憶メモリを初期化しておく必要があった。仮に、正しいＥＣＣを持つデータで初期化されていないと、主記憶メモリからデータを読み出した際に、ＥＣＣチェック回路によってチェックされた際に、不正データとみなしてしまうことになり、メモリの故障として誤って報告されてしまうことになる。
【０００３】
一方で、近年では、主記憶メモリの容量が大容量化し、主記憶メモリの初期化の時間がコンピュータの立ち上げ時間の支配項になってきた。このため、コンピュータの立ち上げ時間を短縮するには主記憶メモリの初期化時間を短縮する必要がある。
【０００４】
ここで、特許文献１は、外部記憶装置に対するアクセスに関する技術を開示している。この特許文献１に開示の技術では、外部記憶装置の記憶領域にデータを書き込んだブロックであるか否かをフラグ回路のブロック対応のフラグで表示している。そして、このフラグ回路をシステム立ち上げ時に初期化する、というものである。このように、フラグのセット又はリセットにより、システム立ち上げ後に、所定の記憶領域に１回もデータの書込みが行われていないことを識別することができる。
【０００５】
【特許文献１】特開平５−３２４４５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記技術では、システム立ち上げ時の初期化時にフラグのセット動作という処理が必要であり、かかる処理に時間を要する。従って、依然として、コンピュータの立ち上げ時間の短縮を図ることができない。また、上記フラグを格納する新たな記憶領域が必要となり、使用する記憶容量が増加してしまう、という問題があった。
【０００７】
このため、本発明の目的は、上記従来例の有する不都合を改善し、特に、使用する記憶容量の増加を抑制しつつ、コンピュータの立ち上げ時間の短縮化を図ることができるメモリ制御装置を提供する、ことにある。
【課題を解決するための手段】
【０００８】
そこで、本発明の一形態であるメモリ制御装置は、ＣＰＵのキャッシュメモリに対する主記憶メモリの所定領域毎のキャッシング状態を保持するディレクトリメモリ内に、主記憶メモリの所定領域毎の初期化状態を表す初期化情報を記憶し、主記憶メモリの所定領域に対するアクセス時に、当該所定領域に対応するディレクトリメモリ内の初期化情報に基づいて、当該所定領域の初期化を行う初期化手段を備えた、という構成を採る。
【０００９】
また、本発明の他の形態であるメモリ制御方法は、ＣＰＵのキャッシュメモリに対する主記憶メモリの所定領域毎のキャッシング状態を保持するディレクトリメモリ内に、主記憶メモリの所定領域毎の初期化状態を表す初期化情報を記憶するステップと、主記憶メモリの所定領域に対するアクセス時に、当該所定領域に対応するディレクトリメモリ内の初期化情報に基づいて、当該所定領域の初期化を行うステップと、を有する、という構成を採る。
【００１０】
さらに、本発明の他の形態であるプログラムは、コンピュータに、ＣＰＵのキャッシュメモリに対する主記憶メモリの所定領域毎のキャッシング状態を保持するディレクトリメモリ内に、主記憶メモリの所定領域毎の初期化状態を表す初期化情報を記憶するステップと、主記憶メモリの所定領域に対するアクセス時に、当該所定領域に対応するディレクトリメモリ内の初期化情報に基づいて、当該所定領域の初期化を行うステップと、を実行させる、という構成を採る。
【発明の効果】
【００１１】
本発明は、以上のように構成されるため、コンピュータ自体の立ち上げ時に、主記憶メモリの初期化を行う必要がなく、立ち上げ処理の高速化を図ることができる。同時に、初期化情報を、コンピュータに予め形成されているディレクトリメモリに記憶しているため、メモリ容量の増大も抑制することができる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００１２】
本発明の一形態であるメモリ制御装置は、ＣＰＵのキャッシュメモリに対する主記憶メモリの所定領域毎のキャッシング状態を保持するディレクトリメモリ内に、主記憶メモリの所定領域毎の初期化状態を表す初期化情報を記憶し、主記憶メモリの所定領域に対するアクセス時に、当該所定領域に対応するディレクトリメモリ内の初期化情報に基づいて、当該所定領域の初期化を行う初期化手段を備えた、という構成を採る。
【００１３】
そして、上記ディレクトリメモリ内に、主記憶メモリの所定領域のキャッシュメモリに対するキャッシング状態を表すキャッシング情報と共に、当該所定領域の初期化情報を記憶する、という構成を採る。このとき、ディレクトリメモリ内の、主記憶メモリの所定領域のキャッシュメモリに対するキャッシング状態を表すキャッシング情報を格納する領域の空きビットに、当該所定領域が未初期化であることを表す未初期化情報を記憶する、という構成を採る。
【００１４】
さらに、具体的には、上記ディレクトリメモリ内の、主記憶メモリの所定領域のキャッシュメモリに対する３つのキャッシング状態を表すキャッシング情報を格納する２ビットの領域に、当該所定領域が未初期化状態であることを表す未初期化情報をさらに記憶する、という構成を採る。例えば、ディレクトリメモリ内の２ビットの領域に、主記憶メモリの所定領域のキャッシュメモリに対する３つのキャッシング状態として、いずれのキャッシュメモリにもキャッシングされていない状態を表す第一の情報、いずれかひとつのキャッシュメモリにキャッシングされている可能性がある状態を表す第二の情報、ひとつあるいは複数のキャッシュメモリにキャッシングされている可能性がある状態を表す第三の情報、を記憶すると共に、さらに未初期化情報を記憶する、という構成を採る。なお、上記第一の情報、第二の情報、第三の情報を、主記憶メモリの所定領域が初期化済みを表す情報としてもよい。
【００１５】
上記発明によると、まず、キャッシュコヒーレンシ制御方式のコンピュータにて、主記憶メモリの所定領域毎のキャッシング状態を保持するディレクトリメモリ内に、当該所定領域毎の初期化状況を表す初期化情報を記憶しておく。そして、主記憶メモリの所定領域へのアクセス時に、上記ディレクトリメモリ内の初期化情報に基づいて初期化を行う。つまり、主記憶メモリのアクセス領域が初期化されていない場合には、このときにはじめて初期化される。従って、コンピュータ自体の立ち上げ時に、主記憶メモリの初期化を行う必要がなく、立ち上げ処理の高速化を図ることができる。
【００１６】
また、初期化情報は、キャッシュコヒーレンシ制御方式のコンピュータに予め形成されているディレクトリメモリに記憶しているため、メモリ容量の増大も抑制することができる。特に、ディレクトリメモリ内のキャッシング情報を記憶する領域の空きビットに未初期化であることを表す情報を記憶することで、メモリ容量を増大させることがない。
【００１７】
また、上記メモリ制御装置では、当該メモリ制御装置自体の起動時に、ディレクトリメモリの初期化を行うディレクトリ初期化手段を備えた、という構成を採る。また、上記初期化手段は、主記憶メモリの所定領域に対するアクセス時に、当該所定領域に対応するディレクトリメモリ内の初期化情報が未初期化を表す場合に、当該所定領域内のデータのチェックを行わずに初期化する、という構成を採る。
【００１８】
以下、上述したメモリ制御装置の具体的な構成及び動作を、実施形態にて説明する。なお、以下では、ディレクトリメモリを利用したコヒーレンシ制御方式のメモリ制御装置を備えたコンピュータを説明する。
【００１９】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図５を参照して説明する。図１は、コンピュータのメモリ制御装置の構成を示すブロック図である。図２乃至図３は、メモリ制御装置内のさらに詳細な構成を示すブロック図である。図４乃至図５は、メモリ制御装置の動作を示すフローチャートである。
【００２０】
［構成］
本実施形態におけるコンピュータは、ディレクトリメモリを利用したコヒーレンシ制御方式のメモリ制御装置を備えたコンピュータである。以下、主に、主記憶メモリとディレクトリメモリに対するメモリ制御を行うメモリ制御装置の構成について詳細に説明する。
【００２１】
図１に示すように、本実施形態におけるコンピュータのメモリ制御装置は、所定のデータを記憶する主記憶メモリ２と、当該主記憶メモリのキャッシュメモリに対するキャッシング状態を記憶するディレクトリメモリ３と、のメモリ制御を行うメモリ制御部１を備えている。また、メモリ制御装置は、上位ホストからの上位ホストからの要求に応じてメモリリクエスタをメモリ制御部１に発行するメモリリクエスタ４を備えている。そして、上記メモリ制御部１は、主記憶メモリ２のメモリ制御を行う主記憶メモリ制御部１１と、ディレクトリメモリ３のメモリ制御を行うディレクトリメモリ制御部１２と、を備えている。以下、各構成についてさらに詳述する。
【００２２】
まず、主記憶メモリ２について説明する。主記憶メモリ２は所定領域毎に区分けされて管理されている。具体的には、ＣＰＵ（プロセッサ）内のキャッシュメモリにキャッシングされる容量単位（メモリラインと呼ぶ）毎に管理されている。そして、メモリライン毎に、主記憶メモリ制御１１にてデータの読み書きが行われる。また、本実施形態では、主記憶メモリ２のメモリライン毎の、ＣＰＵのキャッシュメモリに対するキャッシング状態がディレクトリメモリ３に管理されている。このディレクトリメモリ３内の情報に基づいて、複数のＣＰＵ（プロセッサ）を備えているコンピュータにおいて、主記憶メモリ２内のデータのコヒーレンシを確保している。
【００２３】
また、本実施形態では、主記憶メモリ２は、コンピュータの起動時に初期化されない。但し、主記憶メモリ２は、後述するように、各メモリラインへのアクセス時に、該当するメモリラインが未初期化である場合に、主記憶メモリ制御部１１にて初期化される。
【００２４】
また、上記ディレクトリメモリ３は、主記憶メモリ２のメモリライン毎の、ＣＰＵのキャッシングメモリに対するキャッシング状態を表すキャッシング情報を格納する。具体的に、ディレクトリメモリ３は、各メモリライン毎のキャッシング情報を格納する領域として２ビットずつ用意している。この２ビットの領域には、キャッシング状態を表すキャッシング情報として、例えば、「Ｉｎｖａｌｉｄ」、「Ｐｒｉｖａｔｅ」、「Ｓｈａｒｅｄ」の３つの状態が格納される。なお、「Ｉｎｖａｌｉｄ」（第一の情報）とは、どのプロセッサ内キャッシュにもキャッシングされていない状態を表し、当該メモリラインは主記憶メモリ内のデータが最新であることを意味する。「Ｐｒｉｖａｔｅ」（第二の情報）とは、いずれかひとつのプロセッサ内キャッシュにキャッシングされている可能性がある状態を表し、当該メモリラインは主記憶メモリ内のデータが最新ではない可能性があることを意味する。「Ｓｈａｒｅｄ」（第三の情報）とは、ひとつあるいは複数のプロセッサ内キャッシュにキャッシングされている可能性がある状態を表し、当該メモリラインは主記憶メモリ内のデータが最新であることを意味する。
【００２５】
そして、主記憶メモリ２のメモリライン毎のキャッシング情報を格納すべく予め用意されたディレクトリメモリ３内の２ビットの領域は、４つの状態を表す情報を保持することができる。一方、上述したキャッシング情報は３つの状態を表す情報であるため、さらに１つの状態を格納することが可能である。つまり、１つのビットには、さらに１つの情報を割り当てることが可能な空きビットとなっている。このビットを利用し、本実施形態では、主記憶メモリ２の該当するメモリラインが、まだ初期化されていない状態を表す未初期化状態であることを表す「未初期化情報」をさらに格納する。なお、本実施形態では、上記「Ｉｎｖａｌｉｄ」、「Ｐｒｉｖａｔｅ」、「Ｓｈａｒｅｄ」を、主記憶メモリ２の該当するメモリラインが「初期化済み」であることを表す情報として用いている。これにより、本実施形態では、上記２ビットの領域を、メモリラインが、「未初期化」、「初期化済み」のいずれかを表すために用いており、具体的には、「未初期化」、「Ｉｎｖａｌｉｄ」、「Ｓｈａｒｅｄ」、「Ｐｒｉｖａｔｅ」の４つの状態を表すために用いる。以上のように、ディレクトリメモリ４内には、主記憶メモリの所定領域であるメモリライン毎のキャッシング情報と共に、初期化状態を表す初期化情報を記憶している。
【００２６】
また、上記メモリアクセスリクエスタ４は、上位ホストからの要求に応じて、主記憶メモリ２へのデータ書き込みリクエスト、あるいは、主記憶メモリ２からのデータ読み出しリクエストを生成する。そして、生成したリクエストを、主記憶メモリ制御部１１及びディレクトリメモリ制御部１２にそれぞれ発行する。また、メモリアクセスリクエスト４は、主記憶メモリ制御部１１にて主記憶メモリ２から読み出したデータを受け付ける。
【００２７】
次に、上記ディレクトリメモリ制御部１２の構成について詳細に説明する。ディレクトリメモリ制御部１２は、図２に示すように、ライン状態判定回路１２１と、ディレクトリメモリアクセス発行制御回路１２２と、を備えている。これら各制御回路１２１，１２２は、ハードウェアにて実現されていてもよく、各制御回路用プログラムが実行されることで実現されていてもよい。
【００２８】
そして、上記ディレクトリメモリアクセス発行制御回路１２２は、メモリアクセスリクエスタ４からのメモリアクセスを受け付けて、ディレクトリメモリ内の対応する主記憶メモリ２のメモリラインのキャッシング情報を格納する領域に対してディレクトリメモリアクセスコマンド等を発行する。そして、ディレクトリメモリ３からの読み出しデータはライン状態判定回路１２１へ入力される。すると、ライン状態判定回路１２１は、判定結果として、該当するメモリラインが未初期化状態であることを示す場合には、主記憶メモリ制御部１１のデータチェック回路１１１へ「データチェック抑止指示信号」を送出すると同時に、主記憶メモリ初期化データ生成回路１１２へ「主記憶メモリ初期化指示信号」を送出する。これに加え、ライン状態判定回路１２１は、ディレクトリメモリアクセス発行制御回路１２２へ「ディレクトリメモリ更新指示」を出す。一方、ライン状態判定回路１２１は、該当するメモリラインが初期化済み状態であることを示す場合には、上記動作は行わず、一般的なディレクトリベースのキャッシュコヒーレンシ制御方式のコンピュータの動作となる。
【００２９】
ここで、上記ディレクトリメモリアクセス発行制御回路１２２は、コンピュータつまりメモリ制御装置の起動時に、ディレクトリメモリ３を初期化するよう作動する（ディレクトリ初期化手段）。そして、初期化されたディレクトリメモリ３は、上述したメモリラインが「未初期化」状態を表す情報が格納されたこととなる。
【００３０】
次に、上記主記憶メモリ制御部１１について詳述する。主記憶メモリ制御部１１は、図３に示すように、データチェック回路１１１と、主記憶メモリ初期化データ生成回路１１２と、主記憶メモリアクセス発行制御回路１１３と、を備えている。これら各制御回路１１１，１１２，１１３は、ハードウェアにて実現されていてもよく、各制御回路用プログラムが実行されることで実現されていてもよい。
【００３１】
そして、上記主記憶メモリアクセス発行制御回路１１３は、メモリアクセスリクエスタ４からのメモリアクセスを受け付けて、主記憶メモリ２に対してアクセスコマンド等を発行する。また、メモリアクセスが読み出しの場合には、これに応じて主記憶メモリ２から読み出された読み出しデータを、データチェック回路１１１にてチェックする。そして、データチェック回路１１１は、チェックした読み出しデータを、メモリアクセスリクエスタ４へ主記憶メモリからの読み出しデータを返却する。
【００３２】
ここで、本実施形態におけるデータチェック回路１１１は、上述したディレクトリメモリ制御部１２のライン状態判定回路１２１から「データチェック抑止指示信号」を受けた場合には、データチェックを行わない。また、本実施形態における主記憶メモリ制御部１１は、上述した主記憶メモリ初期化データ生成回路１１２を備えている。この主記憶メモリ初期化データ生成回路１１２は、上述したようにアクセス対象のメモリラインが未初期化状態である場合に、ディレクトリメモリ制御部１２のライン状態判定回路１２１から「主記憶メモリ初期化指示信号」を受け付ける。これに応じて、主記憶メモリ初期化データ生成回路１１２は、正しいチェックデータを含む初期化データを生成し、主記憶メモリアクセス発行制御回路１１３へ「主記憶メモリ更新指示信号」を送出して、主記憶メモリへの初期化データ書き込みを指示する。そして、主記憶メモリアクセス制御回路１１３は、主記憶メモリ更新指示に応じて、該当するメモリラインに初期化データの書き込みを行うと共に、メモリアクセスリクエスタ４からの指示に応じてメモリアクセスを行う。
【００３３】
以上のようにして、本実施形態では、ディレクトリメモリ３内の索引結果によって、アクセス対象となる主記憶メモリ２のメモリラインが初期化済みかどうかを判断し、初期化済みで無い場合には主記憶メモリの読み出しデータのチェックを抑止して、このときはじめて主記憶メモリのメモリラインの初期化を行う機能を備えている（初期化手段）。これにより、コンピュータの立ち上げ時の主記憶メモリの初期化を省略することができるようになり、コンピュータの立ち上げ時間を短縮することができる。
【００３４】
［動作］
次に、上述した本実施形態におけるメモリ制御装置の動作を、図４乃至図５を参照して説明する。まず、本実施形態では、図４に示すように、コンピュータの立ち上げ時に（ステップＳ１）、主記憶メモリ２の初期化は行わずに、ディレクトリメモリ３の初期化を行う（ステップＳ２）。なお、本実施形態では、ディレクトリメモリ３が初期化された状態を、対応する主記憶メモリ２の各メモリラインが「未初期化」であることを表すこととしている。従って、これによりディレクトリメモリ３に、主記憶メモリ２の各メモリラインが「未初期化」であることを表す情報を格納することができる。
【００３５】
その後、主記憶メモリ２の制御に進む（ステップＳ３）。そして、実際に主記憶メモリ２にアクセスする段階では、メモリアクセスリクエスタ４が、メモリへのデータ書き込みリクエスト、あるいは、メモリからのデータ読み出しリクエストを生成し、メモリ制御部１に対して当該リクエストを発行する。以下、メモリからのデータ読み出しリクエストを生成した場合を例にとって、図５を参照して説明する。
【００３６】
メモリアクセスリクエスタ４が発行したデータ読み出しリクエストは（ステップＳ１１）、主記憶メモリ制御部１１の主記憶メモリアクセス発行制御回路１１３と、ディレクトリメモリ制御部１２のディレクトリメモリアクセス発行制御回路１２２に入力され、主記憶メモリ２およびディレクトリメモリ３に対して、当該メモリラインの読み出し指示が発行される。そして、ディレクトリメモリ３から読み出されたデータは（ステップＳ１２）、ライン状態判定回路１２１へ入力され、当該メモリラインの状態を判別する（ステップＳ１３）。つまり、該当するメモリラインの初期化状態あるいはキャッシング状態を判別する。
【００３７】
そして、ライン状態判定回路１２１は、アクセス対象となっているメモリラインが未初期化状態であると判定した場合には（ステップＳ１３で未初期化に進む）、主記憶メモリ制御部１１のデータチェック回路１１１に対してデータチェック抑止指示信号を送出する。データチェック回路１１１は、データチェック抑止指示信号を受信すると、主記憶メモリ２からの読み出しデータのチェックを無効化し（ステップＳ１４）、全ビットが０のデータをデータ読み出しリクエストに対するリプライとしてメモリリクエスタ４に返却する。
【００３８】
また、ライン状態判定回路１２１は、当該メモリラインが未初期化状態であると判定した場合には、主記憶メモリ初期化データ生成回路１１２に対して主記憶メモリ初期化指示信号を送出する。主記憶メモリ初期化データ生成回路１１２は、主記憶メモリ初期化指示信号を受信すると、全ビットが０のデータとそれに適合するチェックデータを生成し、主記憶メモリアクセス発行制御回路１１３に対して主記憶メモリ更新指示を送出する。チェックデータとしては、一般的にＥＣＣ（ＥｒｒｏｒＣｏｒｒｅｃｔｉｎｇ
Ｃｏｄｅ）あるいはパリティが用いられる。そして、主記憶メモリアクセス発行制御回路１１３は、主記憶メモリ更新指示に従って、主記憶メモリ２の当該メモリラインのデータを更新する（ステップＳ１５）。
【００３９】
さらに、ディレクトリメモリ制御部１２のライン状態判定回路１２１は、当該メモリラインが未初期化状態であると判定した場合には、ディレクトリメモリアクセス発行制御回路１２２に対してメモリアクセスリクエスタ４からのリクエスト種別に応じて、主記憶メモリが「Ｉｎｖａｌｉｄ」、「Ｓｈａｒｅｄ」、「Ｐｒｉｖａｔｅ」のいずれかの状態であるよう、ディレクトリメモリ更新指示を送出する。ディレクトリメモリ更新指示に従って、ディレクトリメモリアクセス発行制御回路１２２はディレクトリメモリ３の当該ラインの状態を更新する（ステップＳ１６）。
【００４０】
一方、ライン状態判定回路１２１がアクセス対象となるメモリラインが、上述した「Ｉｎｖａｌｉｄ」、「Ｓｈａｒｅｄ」、「Ｐｒｉｖａｔｅ」のいずれかの初期化済み状態であると判定した場合（ステップＳ１７）、データチェック回路１１１は主記憶メモリ２からの読み出しデータのチェックを行い、一般的なディレクトリベースのキャッシュコヒーレンシ制御方式のコンピュータの動作を行う。
【００４１】
以上のように、一般的なコンピュータの立ち上げ時には、主記憶メモリ制御部１１は主記憶メモリ２の全メモリラインに対して全ビットが０のデータとそれに適合するチェックデータを書き込むという初期化動作を行うが、本実施形態では、立ち上げ時の主記憶メモリの初期化を省略している。そして、本実施形態では、立ち上げ後に実際に主記憶メモリを読み出す段階で、ディレクトリメモリの状態によって対応する主記憶メモリラインが初期化済みかどうかを判断する。そして、初期化がされていない場合は、読み出しデータのチェックを抑止するとともに当該主記憶メモリラインの初期化を行う。従って、コンピュータの立ち上げ時間を高速化している。
【００４２】
また、本実施形態では、既に形成されているディレクトリメモリを用いて、主記憶メモリの初期化状態を記憶している。具体的には、ディレクトリメモリ内に格納されているメモリラインの状態は、通常２ビットで３状態を表しているため、新たに主記憶メモリの未初期化状態を追加して４状態を表すことにしても２ビットのままでよい。従って、ディレクトリメモリの容量を増加させる必要がなく、上述したコンピュータの立ち上げ時間の高速化を図ることができる。
【００４３】
なお、上述したように、主記憶メモリとディレクトリメモリが物理的に分かれておらず、同一のメモリに混在している場合においても、コンピュータの立ち上げ時にディレクトリメモリ領域のみを初期化することにより初期化時間を短縮することができるため、本発明は有効である。
【産業上の利用可能性】
【００４４】
本発明は、ディレクトリメモリを備えてコヒーレンシ制御を行うコンピュータに装備されるメモリ制御装置として適用することができる。
【図面の簡単な説明】
【００４５】
【図１】メモリ制御装置の構成を示すブロック図である。
【図２】ディレクトリメモリ制御部の構成を示すブロック図である。
【図３】主記憶メモリ制御部の構成を示すブロック図である。
【図４】メモリ制御装置の動作を示すフローチャートである。
【図５】メモリ制御装置の動作を示すフローチャートである。
【符号の説明】
【００４６】
１  メモリ制御部
２  主記憶メモリ
３  ディレクトリメモリ
４  メモリアクセスリクエスタ
１１  主記憶メモリ制御部
１２  ディレクトリメモリ制御部
１１１  データチェック回路
１１２  主記憶メモリ初期化データ生成回路
１１３  主記憶メモリアクセス発行制御回路
１２１  ライン状態判定回路
１２２  ディレクトリメモリアクセス発行制御回路
【図１】
0005286796.tif 000002
【図２】
0005286796.tif 000003
【図３】
0005286796.tif 000004
【図４】
0005286796.tif 000005
【図５】
0005286796.tif 000006