(57)【特許請求の範囲】
【請求項１】
メモリマップドＩ／Ｏを行なうために主記憶装置のアドレス空間が使用不可となることにより発生するメモリホール領域に対し、ＤＭＡ転送時にアクセス可能とすることにより、前記メモリホール領域を前記メモリマップドＩ／Ｏのメモリ領域とし、且つ前記メモリホール領域をディスク用のキャッシュ領域として使用するコンピュータシステムであって、
任意のタイミング、起動開始からＯＳの起動完了、あるいは前記キャッシュ領域が全て使用されたタイミングにて、前記主記憶装置のどの領域がキャッシュされているかの情報を取得する情報取得手段と、
該情報取得手段により取得された情報を当該コンピュータシステムの次回起動時に活用できるように不揮発性の記憶装置に保存する保存手段と、
当該コンピュータシステムの初期化中に、前記ＤＭＡ転送によりＯＳが起動する前に、前記ＯＳの起動に必要なデータを前記キャッシュ領域に転送しておく転送手段と、
を備えたことを特徴とするコンピュータシステム。
【請求項２】
前記メモリホール領域を有する主記憶装置に対して、当該メモリホール領域をアクセス可能にする操作手段を備えたことを特徴とする請求項１に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに関し、さらに詳しくは、主記憶装置内のメモリホール領域をキャッシュメモリとして使用する技術に関するものである。
【背景技術】
【０００２】
近年、システムメモリとして使用するＤＲＡＭの微細化に伴い、高容量・低価格化が進み４ＧＢのメモリを実装するシステムも珍しい物ではなくなってきている。同時にＶｉｄｅｏコントローラではフレームバッファとして２５６ＭＢのメモリ空間を必要とする物や、その他のＩ／Ｏデバイスもメモリ空間を必要とする場合が多い。またＰＣＩ  Ｅｘｐｒｅｓｓを使用するシステムではＣｏｎｆｉｇｕｒａｔｉｏｎ空間として２５６ＭＢのメモリ空間を必要とする。
これらのメモリ空間にマップする必要があるレジスタ類は、互換性のために３２Ｂｉｔのメモリ空間に配置する必要がある場合が多い。そのため、４ＧＢのメモリを実装した場合であっても、５１２ＭＢ以上のメモリをメモリホールとして使用できないという無駄が発生する場合が多くなってきている。
またメモリホールの領域に存在するメモリを４ＧＢ以上のメモリ空間に再配置し、アクセス可能にする方法などが知られているが、既存のＯＳでは対応できない場合が多い。
従来技術として特許文献１には、本体システム監視ボードの本体システム監視機能は、システムの異常を検出すると、その旨をディスク制御処理ボードへ通知する。ディスク制御処理ボードでは、ディスクキャッシュ取込プログラムを起動して、本体ボードのメモリからディスクキャッシュに関する情報を読み込んでディスクへ反映させる処理を実行すると共にその処理結果及び処理終了時間を反映ログ情報としてキャッシュ反映ログファイルに書き込むディスクキャッシュシステムについて開示されている。
また特許文献２、３、４には、複数のキャッシュ記憶をもつ計算機システムにおいて、キャッシュ間のデータ重複を避け、キャッシュ記憶領域の利用効率を向上する方法などが提案されている。
【特許文献１】特開２００２−２２２１１８公報
【特許文献２】特許第３５６８１１０号
【特許文献３】特開２００３−２１６４９１公報
【特許文献４】特開２００２−９９４６５公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に開示されている従来技術は、ディスクはメモリに比べてアクセス速度が遅いため、ディスクＩ／Ｏ要求に応じてそのままディスクにアクセスをしているとシステム全体のパフォーマンスの低下につながるといった問題がある。
また、特許文献２、３、４に開示されている従来技術は、キャッシュ用のメモリの容量を増やすことで回避可能であるが、大容量のキャッシュ専用のメモリを追加した場合、コストアップにもつながるといった問題がある。
本発明は、かかる課題に鑑み、メモリホール領域に存在するメモリを大容量のディスクキャッシュとして有効利用することにより、メモリを増設することなくキャッシュ動作が可能なコンピュータシステムを提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明はかかる課題を解決するために、請求項１の発明は、メモリマップドＩ／Ｏを行なうために主記憶装置のアドレス空間が使用不可となることにより発生するメモリホール領域に、ＤＭＡ転送時にアクセス可能とすることにより、前記メモリホール領域を前記メモリマップドＩ／Ｏのメモリ領域とし、且つ前記メモリホール領域をディスク用のキャッシュ領域として使用するコンピュータシステムであって、任意のタイミング、起動開始からＯＳの起動完了、あるいは前記キャッシュ領域が全て使用されたタイミングにて、前記主記憶装置のどの領域がキャッシュされているかの情報を取得する情報取得手段と、該情報取得手段により取得された情報を当該コンピュータシステムの次回起動時に活用できるように不揮発性の記憶装置に保存する保存手段と、当該コンピュータシステムの初期化中に、前記ＤＭＡ転送によりＯＳが起動する前に、前記ＯＳの起動に必要なデータを前記キャッシュ領域に転送しておく転送手段と、を備えたことを特徴とする。
メモリホール領域に存在し、通常のメモリアクセスでは読み書きできないメモリを、ＤＭＡ転送によってアクセス可能とすることで、メモリの追加などコストアップすること無くＩ／Ｏデバイスがバッファとして使用することができる。
また、キャッシュ専用のメモリ追加をすることによるコストアップが無く、本来無駄になっていたメモリを大容量のディスクキャッシュとして使用することが可能になり、複雑なキャッシュの制御を行わなくても、十分なキャッシュの効果を得ることが可能になる。
また、システムの初期化の内メモリ及びディスクコントローラの初期化をなるべく早めに行い、使用可能にしておくことで、残りの初期化を実行している間にＤＭＡ転送を用いてＯＳ起動時に必要なコード・データをディスクキャッシュに転送することで、実際のＯＳ起動時にはディスクアクセスを殆ど行わずに、ＯＳを起動することが可能になるため、システム全体の起動が早く行うことができる。
請求項２は、前記メモリホール領域を有する主記憶装置に対して、当該メモリホール領域をアクセス可能にする操作手段を備えたことを特徴とする。
特定の操作によって、通常アクセス不可能なキャッシュメモリを読み書き可能にすることで、ハイバネーション処理の際にこの領域を同時に保存してしまうことが可能になり、ハイバネーション処理に移行する直前のキャッシュの状態に戻すことが可能になる。
【発明の効果】
【０００５】
請求項１の発明によれば、メモリマップドＩ／Ｏを行なうために使用できなくなったアドレス空間に発生するメモリホールにアクセス可能なＤＭＡ転送によって、Ｉ／Ｏデバイスがアクセスできるようにすることで、大きなバッファを必要とする場合であってもメモリを追加せずにバッファを使用することができる。また、メモリマップドＩ／Ｏを行なうために使用できなくなったアドレス空間に発生するメモリホールをディスクキャッシュとして使用することで、メモリを追加すること無く大容量のキャッシュを使用することができる。また、ＯＳのロードに必要な情報を取得・保存できることで、次の起動時にその情報に基づいてディスクキャッシュに対してディスク上のデータを先に転送しておくことが可能になり、それによってＯＳの起動を高速化することができる。
また請求項２では、メモリホールの有効／無効を、あらかじめ定義された操作によって切替えられるようにしておくことで、ハイバネーション時にキャッシュデータも同時に保存することが可能になり、ハイバネーションからの復帰後もそれまでのキャッシュデータをそのまま使用することができる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
図１は本発明の一実施形態にかかるコンピュータシステムのブロック図である。システム全体を制御するＣＰＵ１と、ＣＰＵ１からのメモリアクセスをそのアドレスによってＤＲＡＭ３を制御するＭｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ２と、記憶装置として使用するＤＲＡＭ３と、ＣＲＴなどの表示装置の制御を行うＶｉｄｅｏ  Ｃｏｎｔｒｏｌｌｅｒ４と、Ｆｌａｓｈ  ＲＯＭ８を制御するＳｙｓｔｅｍ  Ｃｏｎｔｒｏｌｌｅｒ５と、ディスクアクセスのためのＨＤＤ  Ｃｏｎｔｒｏｌｌｅｒ６と、ハードディスクＨＤＤ７と、不揮発性メモリのＦｌａｓｈ  ＲＯＭ８と、ＬＡＮを制御するＬＡＮ  Ｃｏｎｔｒｏｌｌｅｒ９と、キーボード、マウスを制御するＫｅｙｂｏａｒｄ  Ｍｏｕｓｅ  Ｃｏｎｔｒｏｌｌｅｒ１０と、システムバス１１と、を備えて構成されている。
図２は本発明の一実施形態のメモリマップである。図２ａはＣＰＵ側から見たメモリ空間を示している。主記憶装置として使用するメモリ（例えばＤＲＡＭ）はメモリ領域２１にマップされ、メモリ空間を必要とするＰＣＩデバイスはメモリ領域２０にマップされる。図２ｄはＰＣＩデバイス側から見たメモリ空間を示している。メモリマップドＩＯを使用するデバイスをマップするために、メモリ領域２３が使用される。図２ｂ、図２ｃはメモリコントローラから見たメモリ空間を示している。図２ｃはメモリコントローラが管理可能なメモリ領域全体を示す。メモリマップドＩＯを使用するデバイス用にメモリホール２５が使用されるため、結果としてメモリ領域２４に示す主記憶装置は、それが実装されているにもかかわらず、使用する事ができない。
【０００７】
図３は本発明のコンピュータシステムの概念を示すブロック図である。ＣＰＵ１やＰＣＩ  Ｄｅｖｉｃｅ２３からメモリ空間へのアクセスは、アドレスによって通常ｃ．のパスを経由してＤＲＡＭ３ａへのアクセスとなるか、ｄ．又はｄ’．のパスを経由してＤｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ６やＰＣＩ  Ｄｅｖｉｃｅ２３へとＭｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ２によって振り分けられる。またＤｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ６がメモリホール領域に存在するメモリへのアクセスであることを示す特殊サイクル指示信号３０をアサートした場合、通常使用できないＤＲＡＭ３ｂへのアクセスに振り分けられる。
またメモリホール領域に存在するメモリへのアクセスを示す第一の例として、図３で示すように、通常のバス信号とは独立したＤｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ６とＭｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ２間を一対一で接続する特殊サイクル指示信号３０を利用する方法が考えられる。この信号をＤｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ６がアサートした際には、通常使用できないメモリ領域へのアクセスを実現できる。
第二の例として、ＰＣＩ  Ｂｕｓのバスサイクルの種別を定義する信号であるＣ／ＢＥ［３：０］を使用する。これらの信号はその組合わせによってＭｅｍｏｒｙ空間のＲｅａｄ／ＷｒｉｔｅやＩ／Ｏ空間のＲｅａｄ／Ｗｒｉｔｅなどが定義されている。未定義のＣ／ＢＥの信号パターンを受取った場合には、各デバイスはそのバスサイクルを無視することが要求されている。この未定義のＣ／ＢＥの信号パターンを新たにＤｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ６とＭｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ２の間で新しく定義し、通常使用できないメモリ領域へのアクセスを実現することが可能にする。
またＤｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ６がディスクの読み込みを支持された場合、そのデータが通常使用できなＤＲＡＭに保存されていないかを確認する。保存されていた場合、メモリホール領域に存在するメモリへのアクセスであることを示す信号をアサートし、通常使用できないメモリからデータを読み込み、そのデータを返すようにする。保存されていなかった場合、ＨＤＤ７からデータを読み込みそのデータを返した上で、バスの使用要求をＭｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ２に対して要求し、バスの使用権が与えられるとメモリホール領域に存在するメモリアクセスを示す信号をアサートし、ＨＤＤ７から読み込んだデータを通常使用できないＤＲＡＭ３ｂへと転送する。本実施形態では記述をわかりやすくするために、Ｄｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ６によって全て制御する様にしているが、Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ２側でバッファリングすることでより高速に処理を完了させることも可能である。
【０００８】
また書込みの場合も、通常のディスクキャッシュ操作と同等な処理を行うことで、見かけ上高速に書込みを完了させることが可能となる。尚、キャッシュ操作（吐き出し、置換え）に関しては、既に多くの提案がされているためここでは省略する。
また、ＯＳ本体をディスクからロードする際にも同様な処理を行い、ロードが完了した際にどの領域がキャッシュに読み込まれたかを読み取る手段を設けることで、ＯＳのロードまでを行うソフトウェア（通常図１  Ｆｌａｓｈ  ＲＯＭ８に保存されているパーソナルコンピュータの場合は、Ｓｙｓｔｅｍ  ＢＩＯＳと呼ばれる。以下ＢＩＯＳとする）は、その情報を不揮発性の記憶装置に保存する。ＯＳのロード完了に関しては、特定の時間経過や、ＯＳ起動後にロードされるドライバからの通知、キャッシュメモリが一杯になったなどの条件を使用することが可能である。また不揮発性の記憶装置としては、Ｄｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒが管理しているＨＤＤやＢＩＯＳ自身が保存されているＦｌａｓｈ  ＲＯＭ領域等を使用することが可能であるが、Ｆｌａｓｈ  ＲＯＭに保存する場合には、ＨＤＤのシリアル番号などにより、その情報の妥当性を調べる手段を設ける必要がある。
【０００９】
このように、本発明によれば、ＯＳ本体がロードされる時にディスクのどの領域が読込まれたかと言う情報を保存しておくことで、次にシステムを起動する時、システムの初期化中に使用できないメモリに対して、このデータを転送しておくことが可能になる。これによって、システムの起動を高速化することが可能になる。
また、通常使用できないメモリをあらかじめ定義された操作によって読み込めるようにする、つまりメモリホールを無効にすることで、ハイバネーション時にこのデータも同時に保存することが可能になり、キャッシュされたデータをレジューム後すぐに使用することが可能になる。
また、ディスクキャッシュとして使用しない場合であってもＩ／Ｏ  Ｄｅｖｉｃｅが大量のバッファを必要とする場合に、通常使用できずに無駄になるだけであったメモリを使用することが可能になり、メモリを追加する必要が無くなる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態にかかるコンピュータシステムのブロック図である。
【図２】本発明の一実施形態のメモリマップを示す図である。
【図３】本発明のコンピュータシステムの概念を示すブロック図である。
【符号の説明】
【００１１】
１  ＣＰＵ、２  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ、３  ＤＲＡＭ、４  Ｖｉｄｅｏ  Ｃｏｎｔｒｏｌｌｅｒ、５  Ｓｙｓｔｅｍ  Ｃｏｎｔｒｏｌｌｅｒ、６  ＨＤＤ  Ｃｏｎｔｒｏｌｌｅｒ、７  ＨＤＤ、８  Ｆｌａｓｈ  ＲＯＭ、９  ＬＡＮ  Ｃｏｎｔｒｏｌｌｅｒ、１０  Ｋｅｙｂｏａｒｄ  Ｍｏｕｓｅ  Ｃｏｎｔｒｏｌｌｅｒ、１１  システムバス
【図１】
0004800701.tif 000002
【図２】
0004800701.tif 000003
【図３】
0004800701.tif 000004