(57)【要約】【課題】  データをメイン・メモリにも書き込むことなく、キャッシュの一部又は他の高速メモリに記憶すること。【解決手段】  本発明は、Ｉ／Ｏ装置、ネットワーク、又はディスクから転送されたデータを、メイン・メモリにも書き込むことなく、キャッシュの一部又は他の高速メモリに記憶する方法を提供する。さらに、データは、使用のためにロードされるまでキャッシュ又は他の高速メモリに「ロック」される。データは、ソフトウェアの制御下で明確に上書きされるまで、ロッキング・キャッシュ内に残る。本発明の実施形態においては、プロセッサは、データを、メイン・メモリにも書き込むことなく、キャッシュ又は他の高速メモリに書き込むことができる。キャッシュの一部又は他の高速メモリを、付加的なシステム・メモリとして用いることができる。【選択図】      図１
2006134324.tif 000002
【特許請求の範囲】
【請求項１】
データを直接キャッシュに転送し、このデータが使用のためにアクセスされるまで、そこに保持するコンピュータ・システムであって、
プロセッサと、
前記プロセッサに接続されたロッキング・キャッシュと、
前記ロッキング・キャッシュに接続されたシステム・バスと、
前記システム・バスに接続されたＩ／Ｏサブシステムと、
を備え、
前記Ｉ／Ｏサブシステムは、データをシステム・メモリにも転送することなく、前記ロッキング・キャッシュに転送するように少なくとも構成されており、
前記ロッキング・キャッシュは、前記データが使用のためにアクセスされるまで該データを保持するように、少なくとも構成された、
コンピュータ・システム。
【請求項２】
前記プロセッサが、データをシステム・メモリにも書き込むことなく、前記ロッキング・キャッシュに書き込むように、少なくとも構成されており、
前記ロッキング・キャッシュが、さらに、使用のために前記Ｉ／Ｏサブシステムによりアクセスされるまで、前記プロセッサにより該ロッキング・キャッシュ内に書き込まれたデータを保持するように構成された、
請求項１に記載のコンピュータ・システム。
【請求項３】
さらに、前記Ｉ／Ｏサブシステムにより生成された特定のアドレス範囲をもつバス・コマンドが、前記ロッキング・キャッシュにアクセスするように構成された、請求項１に記載のコンピュータ・システム。
【請求項４】
さらに、１つ又は２つのアドレス範囲レジスタを含み、前記１つ又は２つのアドレス範囲レジスタは、前記Ｉ／Ｏサブシステムにより生成されたバス・コマンド上のアドレスが、前記バス・コマンドが前記ロッキング・キャッシュにアクセスするための前記特定のアドレス範囲内にあるかどうかを判断するように、少なくとも構成された、請求項３に記載のコンピュータ・システム。
【請求項５】
さらに、多数のセット連想キャッシュを備え、前記キャッシュが、複数のセット又はウェイを含み、前記ロッキング・キャッシュが、該キャッシュの１つ又はそれ以上のセット又はウェイを含むが、セット又はウェイのすべてを含むものではない、請求項１に記載のコンピュータ・システム。
【請求項６】
さらに、置き換え管理テーブル（ＲＭＴ）を備え、前記ＲＭＴにおける入力項目が、キャッシュにおけるどのセットがトランザクションに使用可能であるかを示す、請求項５に記載のコンピュータ・システム。
【請求項７】
コンピュータ・システムのＩ／Ｏサブシステムから、データを直接ロッキング・キャッシュに転送し、前記データが使用のためにロードされるまで、前記ロッキング・キャッシュ内に保持するための方法であって、
前記ロッキング・キャッシュに書き込まれたデータが、オペレーティング・システムにより命令されない限りはアプリケーションによって上書きされないように、該ロッキング・キャッシュを構成するステップと、
データを前記Ｉ／Ｏサブシステムから前記ロッキング・キャッシュに転送するステップと、
前記データを使用のためにロードするステップと、
を含む方法。
【請求項８】
データが前記ロッキング・キャッシュに転送された場合に、信号を発行するステップをさらに含む、請求項７に記載の方法。
【請求項９】
データが使用のためにロードされた場合に、信号を発行するステップをさらに含む、請求項７に記載の方法。
【請求項１０】
前記コンピュータ・システムのプロセッサが、データを前記ロッキング・キャッシュに直接書き込むようにする請求項７に記載した方法であって、さらに、
前記コンピュータ・システムのプロセッサにより、データを前記ロッキング・キャッシュに書き込むステップと、
前記データを使用のためにロードするステップと、
を含む方法。
【請求項１１】
前記ロッキング・キャッシュを区画化するステップと、
前記区画のすべてではないが、１つ又はそれ以上を前記Ｉ／Ｏサブシステムに割り当てるステップと、
前記Ｉ／Ｏサブシステムに割り当てられなかった前記区画の１つ又はそれ以上を、前記コンピュータ・システムの前記プロセッサに割り当てるステップと、
をさらに含み、
前記Ｉ／Ｏシステムから前記ロッキング・キャッシュに転送されたデータは、該Ｉ／Ｏシステムに割り当てられた該ロッキング・キャッシュの区画にのみ書き込まれ、前記プロセッサにより該ロッキング・キャッシュに書き込まれたデータは、該プロセッサに割り当てられた該ロッキング・キャッシュの区画にのみ書き込まれる、
請求項１０に記載の方法。
【請求項１２】
複数の区画が前記Ｉ／Ｏサブシステムに割り当てられるステップが、さらに、
前記Ｉ／Ｏサブシステムによる第１の区画へのデータの転送が完了した後、該Ｉ／Ｏサブシステムから第２の区画にデータを転送するステップ、
を含む請求項１１に記載の方法。
【請求項１３】
前記ロッキング・キャッシュが、多数のセット連想キャッシュの１つ又はそれ以上のセット又はウェイを含むが、セット又はウェイのすべてを含むものではない請求項７に記載の方法。
【請求項１４】
ＲＭＴが、前記キャッシュのどのセットがトランザクションにアクセス可能であるかを示すのに用いられる、請求項１３に記載の方法。
【請求項１５】
前記ロッキング・キャッシュを構成する前記ステップが、さらに、該ロッキング・キャッシュ内のデータを「有効で変更済み」としてマーキングするステップをさらに含む請求項７に記載の方法。
【請求項１６】
データを使用のためにロードする前記ステップが、
変更する目的なしでロード要求を発行するステップと、
前記要求をスヌープするステップと、
前記データをシステム・バス上で前記キャッシュから伝送することに介入するステップと、
からなる請求項１５に記載の方法。
【請求項１７】
キャッシュを付加的なシステム・メモリとして使用する方法であって、
ロッキング・キャッシュに書き込まれたデータが、オペレーティング・システムにより命令されない限りはアプリケーションによって書き込まれないように、前記ロッキング・キャッシュを構成するステップと、
データを前記ロッキング・キャッシュに書き込むステップと、
前記データを使用のためにロードするステップと、
を含む方法。
【請求項１８】
特定のアドレス範囲をもつバス・コマンドが前記ロッキング・キャッシュにアクセスし、前記特定のアドレス範囲が、システム・メモリのアドレス範囲から非結合される、請求項１７の方法。
【請求項１９】
特定のアドレス範囲をもつ命令が前記ロッキング・キャッシュにアクセスし、前記特定のアドレス範囲が、システム・メモリのアドレス範囲から非結合される、請求項１７の方法。
【請求項２０】
記憶命令の前記アドレスが、特定のアドレス範囲内にあるかどうかを判断するステップと、
前記アドレスが、前記特定のアドレス範囲内にある場合には、前記ロッキング・キャッシュに書き込むステップと、
をさらに含む請求項１８に記載の方法。
【請求項２１】
コンピュータ・プログラムが具現化された媒体を有しており、コンピュータ・システムのＩ／Ｏサブシステムから、データをロッキング・キャッシュに、直接、転送し、使用のためにロードされるまで、前記データを前記ロッキング・キャッシュ内に保持するコンピュータ・プログラムであって、該コンピュータ・プログラムが、前記コンピュータ・システムを、
前記ロッキング・キャッシュに書き込まれたデータが、オペレーティング・システムにより命令されない限りはアプリケーションによって上書きされないように、該ロッキング・キャッシュを構成する手段、
前記Ｉ／Ｏサブシステムからデータを前記ロッキング・キャッシュに転送する手段、
前記データを使用のためにロードする手段、
として機能させるためのコンピュータ・プログラム。
【請求項２２】
前記コンピュータ・システムのプロセッサが、データを前記ロッキング・キャッシュに直接書き込むようにされた請求項２１に記載したコンピュータ・プログラムであって、さらに、前記コンピュータ・システムを、
前記コンピュータ・システムのプロセッサにより、データを前記ロッキング・キャッシュに書き込むための手段、
前記データを使用のためにロードするための手段、
として機能させるためのコンピュータ・プログラム。
【請求項２３】
前記ロッキング・キャッシュが、多数のセット連想キャッシュの１つ又はそれ以上のセット又はウェイを含むが、セット又はウェイのすべてを含むものではない、請求項２１に記載のコンピュータ・プログラム。
【請求項２４】
ＲＭＴが、前記キャッシュのどのセットがトランザクションにアクセス可能であるかを示すのに用いられる、請求項２３に記載のコンピュータ・プログラム。
【請求項２５】
キャッシュを付加的なシステム・メモリとして用いるコンピュータ・プログラムであって、コンピュータを、
ロッキング・キャッシュに書き込まれたデータが、オペレーティング・システムにより命令されない限りはアプリケーションによって上書きされないように、前記ロッキング・キャッシュを構成するための手段、
データを前記ロッキング・キャッシュに書き込むための手段、
前記データを使用のためにロードするための手段、
として機能させるためのコンピュータ・プログラム。
【請求項２６】
特定のアドレス範囲をもつ命令が前記ロッキング・キャッシュにアクセスし、前記特定のアドレス範囲が、システム・メモリのアドレス範囲から非結合される、請求項２５に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、Ｍｉｃｈａｅｌ  Ｎｏｒｍａｎ  Ｄａｙ、Ｃｈａｒｌｅｓ  Ｒａｙ  Ｊｏｈｎｓ、及び、Ｔｈｕｏｎｇ  Ｑｕａｎｇ  Ｔｒｕｏｎｇの名前で、本出願と同時出願された「Ｍｅｔｈｏｄ  ｆｏｒ  Ｐｒｏｃｅｓｓｏｒ  ｔｏ  Ｕｓｅ  Ｌｏｃｋｉｎｇ  Ｃａｃｈｅ  ａｓ  Ｐａｒｔ  ｏｆ  Ｓｙｓｔｅｍ  Ｍｅｍｏｒｙ」（ドケット番号ＡＵＳ９２００４０３２４ＵＳ１）という表題の同時係属中の米国特許出願に関連する。
本発明は、一般に、メモリ管理に関し、より具体的には、キャッシュの使用に関する。
【背景技術】
【０００２】
メモリへの書き込み及びメモリからの読み取りの両方に対するメモリ・アクセスの待ち時間（待ちに費やされる時間）は、多くの場合、ソフトウェア・プログラムにとって問題となる。現行のコンピュータでは、プロセッサのサイクルは、メモリ・アクセスのための時間よりもかなり短い。さらに、この問題はさらに厳しくなりつつある。プロセッサ速度は急激に増加しているが、メモリ・アクセスは徐々に増加しているに過ぎない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
メモリ・アクセスの待ち時間問題に対する１つの部分的な対策は、メモリ階層である。メイン・メモリは大きい容量を有し、最も低速である。この上には、連続する、より小さく、より高速のメモリ又はキャッシュのいくつかの層がある。
現行のキャッシュの使用は、問題を提示する。キャッシュからの読み取りは、そのキャッシュが所望のデータを含まない場合には、失敗することとなる。次いで、データは低速のメイン・メモリからアクセスされねばならない。データを排他的にキャッシュに書き込む試みは可能ではない。Ｉ／Ｏ装置から、ネットワークから、又はディスクからのデータの転送は、データが排他的にメイン・メモリに、又は、さらにローカル・メモリ或いはキャッシュにも書き込まれることを要求されることがある。何れの場合においても、低速のメイン・メモリに書き込む際に待ち時間がある。さらに、データにアクセスする際にも待ち時間があることになる。第１の場合には、プロセッサは、メイン・メモリからデータにアクセスして処理せねばならず、結果としてアクセスの待ち時間が生じる。第２の場合には、キャッシュに書き込まれたデータは、そのデータがアクセスされる前に、他のデータで置き換えられることがある。これが生じる場合には、置き換えられたデータはメイン・メモリに書き込まれる。次いで、このデータを使用するためには、プロセッサはメイン・メモリから該データにアクセスしなければならない。
【０００４】
従って、メイン・メモリにも記憶させることなく、プロセッサ、Ｉ／Ｏ装置、ネットワーク又はディスクから、データをキャッシュ又は他の高速メモリに記憶するための方法に対する必要性が存在する。さらに、この方法は、データが用いられるまで、該データがキャッシュ又は他の高速メモリに残ることを保証しなければならない。
【課題を解決するための手段】
【０００５】
本発明は、Ｉ／Ｏ装置、ネットワーク、又はディスクから転送されたデータを、メイン・メモリにも書き込むことなく、キャッシュ又は他の高速メモリに記憶する方法を提供する。さらに、データは、使用のためにロードされるまで、キャッシュ又は他の高速メモリに「ロック」される。データは、ソフトウェアの制御下で明確に上書きされるまで、ロッキング・キャッシュに残る。
【発明を実施するための最良の形態】
【０００６】
ここで、本発明及びその利点のより完全な理解のために、添付の図面と併せてなされる以下の説明を参照する。
【０００７】
以下の説明では、本発明の完全な理解を与えるために幾多の特定の詳細が述べられる。しかし、当業者であれば、本発明をそのような特定の詳細なしで実行することができることが明らかであろう。他の例においては、不要な詳細で本発明を不明瞭にしないように、周知の要素は、概略図又はブロック図の形態で示される。
【０００８】
さらに、特に指示のない限り、ここに説明される全ての機能をハードウェア或いはソフトウェア、又はそれの何らかの組み合わせにより実行することができることがわかる。しかし、好ましい実施形態においては、特に指示のない限り、それらの機能は、そのような機能を実行するようにコード化されたコンピュータ・プログラム・コードといったコード、ソフトウェア、及び／又は、集積回路に従って、コンピュータといったプロセッサ又は電子データ・プロセッサによって実行される。
【０００９】
図１は、Ｉ／Ｏサブシステムから転送されたデータをロッキング・キャッシュに記憶するためのシステムのブロック図を示す。プロセッサ１０２は、キャッシュ１１０、キャッシュ・コントローラ１０６、及び、アドレス範囲レジスタ１０４の第１のセットに結合される。置き換え管理テーブル（ＲＭＴ，ｒｅｐｌａｃｅｍｅｎｔ  ｍａｎａｇｅｍｅｎｔ  ｔａｂｌｅ）１０８は、アドレス範囲レジスタ・セット１０４及びキャッシュ・コントローラ１０６に結合される。キャッシュ・コントローラ１０６及びキャッシュ１１０は、システム・バス１１２に結合される。第２のアドレス範囲レジスタ・セット１１６は、システム・バス１１２及びＲＭＴ１０８に結合される。システム・バス１１２は、さらに、入力／出力（Ｉ／Ｏ）サブシステム１１４に結合される。本発明の実施形態においては、ロッキング・キャッシュは、セット又は複数のセットを含むが、多数のセット連想（ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ）キャッシュ１１０のセットすべてを含むものではない。残りのセットは、通常のキャッシュに用いられる。キャッシュ１１０を、通常のキャッシュ及びロッキング・キャッシュとして使用するために非結合セットに分離することは、ロッキング・キャッシュに書き込まれたデータが、その通常の使用においてキャッシュに書き込まれたデータによって上書きされることを防ぐ。
【００１０】
プロセッサ１０２及びＩ／Ｏサブシステム１１４の両方に対して、ロックされたキャッシュにおけるスペースは、付加的なシステム・メモリとして現れ、そのアドレス範囲は実際のメインシステム・メモリ・アドレス範囲より高い。本発明の実施形態においては、レジスタの２つのセット、すなわち、プロセッサ１０２に対する第１のアドレス範囲レジスタ・セット１０４、及び、Ｉ／Ｏ装置に対する第２のアドレス範囲レジスタ・セット１１６が、ロックされたキャッシュに対するアクセスを判断する。これらのセットは２つのアドレス範囲レジスタ及びマスク・レジスタを含む。ロード命令即ち記憶命令／バス・コマンドのアクセス用アドレスが、アドレス範囲レジスタのコンテンツと比較される。次に、ｃｌａｓｓ＿ｉｄが索引として置き換え管理テーブル（ＲＭＴ）１０８に与えられる。ＲＭＴ１０８は、キャッシュ１１０のどのセットがロード命令即ち記憶命令／バス・コマンドに使用可能であるかを示す。アクセス用アドレスが特定の範囲内にあるトランザクションは、ロッキング・キャッシュへのアクセスを有する。他のトランザクションは、キャッシュ１１０の他のセット又はウェイ（ｗａｙ）に書き込まれる。
【００１１】
ロッキング・キャッシュに対するアクセスは、ソフトウェアの制御下にある。プロセッサ１０２又はＩ／Ｏサブシステム１１４が、データをキャッシュ１１０のロックされた部分に書き込むのを完了した場合には、データが使用可能であるという信号を発行することができる。一旦、通知されると、そのデータを用いるプロセッサ１０２又はＩ／Ｏサブシステム１１４は、キャッシュ１１０のロックされた部分からデータを獲得し、データが読み取られたという信号を発行する。次いで、データを保持するスペースは、さらなる書き込みのために使用可能になる。データの有効性を保証するために、１つの装置によってデータが書き込まれつつあるロックされたキャッシュの領域が、別の装置によって同時に読み取られ、或いは、書き込まれることはない。
【００１２】
図１のシステムの結果として、プロセッサ１０２及びＩ／Ｏサブシステム１１４の両方は、はるかに低速のメイン・メモリにではなく、メモリの高速形態であるロッキング・キャッシュに、新規に生成されたデータを書き込むことができる。さらに、プロセッサ１０２及びＩ／Ｏサブシステム１１４の両方は、ロッキング・キャッシュからデータをロードして、データをメイン・メモリからロードする際の待ち時間を避けることができる。データは、最初にロッキング・キャッシュに書き込まれ、これがアクセスされるまでは、キャッシュ１１０にロックされる。
【００１３】
キャッシュのロックされた部分においては、データは有効で及び変更済みであるとマークされる。ＩＯコントローラ又は他の装置がこのデータにアクセスする場合には、該データのロードを行っているこのＩＯコントローラ又は他の装置は、要求を変更する目的なしでロードを発行する。キャッシュは要求をスヌープする。データの状態が与えられると、キャッシュ・コントローラ１０６は要求を満たすために介入する。ロックされたキャッシュのアドレス範囲のデータがプロセッサによってロードされる場合には、キャッシュ・コントローラ１０６は、該データをキャッシュ・ヒットとして該プロセッサに戻す。
【００１４】
データがシステム・バス１１２から記憶される場合には、キャッシュ・コントローラ１０６はアドレス範囲情報を用いることによってトランザクションを検出する。アドレスが、ロックされたキャッシュにアクセスするアドレス範囲内にある場合には、キャッシュ・コントローラ１０６は、キャッシュの状態を変更することなく、ロックされたセットにおけるキャッシュ１１０を新規のデータにより更新する。このアドレス範囲内のデータは、「有効で変更済み」のキャッシュの状態のため、バス・トランザクションを必要とすることなくプロセッサ１０２から記憶される。
【００１５】
図２は、データをロッキング・キャッシュ内に記憶するＩ／Ｏサブシステム１１４を例示するフロー図を示す。ステップ２０２では、Ｉ／Ｏサブシステム１１４が記憶要求をシステム・バス１１２に送信する。ステップ２０４では、キャッシュ・コントローラ１０６が、アドレス範囲レジスタ・セット１１６の一対のアドレス範囲レジスタを用いて、要求のアドレス範囲を検査する。本発明の実施形態においては、キャッシュ・コントローラは、マスキング・レジスタを用いることもできる。ステップ２０５では、要求のアドレスが範囲内にあるかどうかが判断される。アドレスがロッキング・キャッシュの範囲内にある場合には、次いでステップ２０６で、データが該ロッキング・キャッシュに書き込まれる。アドレスが範囲内にない場合には、次いでステップ２０８で、データがキャッシュの非ロッキング部分又はシステム・メモリに書き込まれる。本発明の実施形態においては、ステップ２０８で、データがシステム・メモリに書き込まれる。本発明の別の実施形態においては、ステップ２０８で、データはシステム・メモリ及びキャッシュ１１０の両方に書き込まれるが、ロッキング・キャッシュに用いられるキャッシュの部分には書き込まれない。本発明のさらに別の実施形態においては、ステップ２０８で、データはキャッシュ１１０に書き込まれるが、ロッキング・キャッシュに使用される部分には書き込まれない。
【００１６】
図３はプロセッサがデータを記憶する場合のアドレス範囲の検査を例示するフロー図を示す。ステップ３０２では、プロセッサ１０２は記憶要求を発行する。ステップ３０４では、アドレス範囲レジスタ・セット１０４の一対のアドレス範囲レジスタが、要求のアドレス範囲を検査する。本発明の実施形態においては、アドレス範囲レジスタ・セット１０４はマスキング・レジスタも含むことができる。ステップ３０５では、要求のアドレスが範囲内にあるかどうかが判断される。アドレスがロッキング・キャッシュの範囲内にある場合には、次いで、ステップ３０６で、データが該ロッキング・キャッシュに書き込まれる。アドレスが範囲内にない場合には、次いで、ステップ３０８で、データがキャッシュの非ロッキング部分又はシステム・メモリに書き込まれる。本発明の３つの異なる実施形態においては、ステップ３０８で、データは、それぞれ、システム・メモリに書き込まれるか、システム・メモリ及びキャッシュ１１０に書き込まれるがロッキング・キャッシュに用いられるキャッシュの部分には書き込まれないか、又は、キャッシュ１１０に書き込まれるがロッキング・キャッシュに用いられる部分には書き込まれない。
【００１７】
図４は、Ｉ／Ｏサブシステムの観点からのメモリのレイアウトを示す図である。ロッキング・キャッシュは、アドレス範囲がメインシステム・メモリのアドレス範囲より上にある付加的なシステム・メモリのように見える。図４では、メイン・メモリは、アドレス０×６００００（１６進法）で終了し、ロッキング・キャッシュは、アドレス０×６０００１（１６進法）から０×６０ＦＦＦ（１６進法）までを含む。図４に示されるロッキング・キャッシュは４ｋｂを含む。ロッキング・キャッシュのサイズは実装依存である。図４においては、メイン・メモリ及びロッキング・キャッシュのアドレス・スペースは連続しているが、他の実施形態においては、アドレス・スペースが連続している必要はない。
【００１８】
図５は、各々がバイナリ数００、０１、１０及び１１によって索引付けされた４つの入力項目の行、５０２、５０４、５０６及び５０８を有する置き換え管理テーブル（ＲＭＴ）５００を示す。ＲＭＴ５００の行における入力項目は、キャッシュにおけるどのセットがトランザクションに使用可能であるかを示す。列は、キャッシュ１１０のウェイ又はセットに対応する。列内の１ビットは、対応するウェイがトランザクションに対して使用可能であることを示し、０ビットは、対応するウェイが使用可能ではないことを示す。ロックされたキャッシュ４０４を含むトランザクションには、ロックされたキャッシュからなるセットが１であり、他のセットが０である列に対する索引を与えるｃｌａｓｓ＿ｉｄが定められる。ロックされたキャッシュを含まないトランザクションには、ロックされたキャッシュからなるセットが０であり、キャッシュ内のロックされたキャッシュを含まない少なくとも１つのセットが１である列に対する索引を与えるｃｌａｓｓ＿ｉｄが定められる。図５におけるＲＭＴに対応するキャッシュは８つのセット又はウェイを有する。第１のセットがロッキング・キャッシュとして用いられ、残りのセットが通常のキャッシュに用いられる。ＲＭＴに対して４つの行が存在する。第２の行５０４に対応する索引０１が、ロッキング・キャッシュにアクセスするトランザクションに用いられる。行５０４の第１の列の「１」は、ロッキング・キャッシュに用いられる第１のセットが、トランザクションに使用可能であることを示す。行５０４の残りの列における「０」は、キャッシュ内の他のセットがトランザクションに使用可能ではないことを示す。他の行５０２、５０６、及び５０８は、ロッキング・キャッシュに用いられるセットは使用可能ではないが、通常のキャッシュを含むセットは使用可能であることを示す。
【００１９】
他の実施形態においては、多数のセットをロッキング・キャッシュに用いることができる。これらの実施形態においては、ソフトウェアが、特定のデータを記憶するセットを選択する。ソフトウェアは、ロッキング・キャッシュの第１のセットに書き込みを開始することができる。そのセットが満たされた場合には、ソフトウェアは、ロッキング・キャッシュの第２のセットに書き込みを開始することができる。
【００２０】
図６は、ロッキング・キャッシュを４つの区画又はセグメントに区画化したものを示す。プロセッサ１０２は、最初の２つのセグメントにデータを記憶することができ、Ｉ／Ｏサブシステム１１４は、残りの２つのセグメントにデータを記憶することができる。結果として、プロセッサは、Ｉ／Ｏサブシステム１１４が第１のセグメント６０２に書き込まれたデータにアクセスするのを待っている間、データを第２のセグメント６０４に書き込むことができる。同様に、Ｉ／Ｏサブシステム１１４は、プロセッサ１０２が第４のセグメント６０８に書き込まれたデータにアクセスするのを待っている間、データを第３のセグメント６０６に書き込むことができる。このように、プロセッサ１０２及びＩ／Ｏサブシステム１１４の両方が、データがアクセスされるのを待って他のデータを記憶することによる待ち時間を避けることができる。
【００２１】
このように、本発明の特定の好ましい実施形態を参照することにより本発明を説明してきたが、開示された実施形態は、本質的に、制限するものではなく、例示的なものであり、広範囲の変形物、修正物、変更物、及び代替物が上記の開示において想定され、場合によっては、本発明のいくつかの特徴を、対応する他の特徴を用いることなく採用できることがわかる。このような多くの変形物及び修正物は、好ましい実施形態の上記の説明の再検討に基づいて当業者によって望ましいと考えることができる。従って、添付の特許請求の範囲は、広く及び本発明の範囲と一致する方法により解釈されることが適切である。
【図面の簡単な説明】
【００２２】
【図１】Ｉ／Ｏサブシステムから転送されたデータをロッキング・キャッシュ内に記憶するためのシステムのブロック図を示す。
【図２】データをロッキング・キャッシュ内に記憶するＩ／Ｏサブシステムを例示するフロー図を示す。
【図３】プロセッサがデータを記憶する場合のアドレス範囲の検査を例示するフロー図を示す。
【図４】Ｉ／Ｏサブシステムの観点からのメモリのレイアウトを示す図である。
【図５】置き換え管理テーブルを示す。
【図６】ロッキング・キャッシュの区画化を示す。
【符号の説明】
【００２３】
１０２：プロセッサ
１０４：アドレス範囲レジスタ・セット
１０６：キャッシュ・コントローラ
１０８：ＲＭＴ
１１０：キャッシュ
１１２：システム・バス
１１４：Ｉ／Ｏサブシステム
１１６：アドレス範囲レジスタ・セット
【図１】
2006134324.tif 000003
【図２】
2006134324.tif 000004
【図３】
2006134324.tif 000005
【図４】
2006134324.tif 000006
【図５】
2006134324.tif 000007
【図６】
2006134324.tif 000008