JP2004355124A - 直接アドレス指定共用圧縮メモリ・システム - Google Patents
直接アドレス指定共用圧縮メモリ・システム Download PDFInfo
- Publication number
- JP2004355124A JP2004355124A JP2003149410A JP2003149410A JP2004355124A JP 2004355124 A JP2004355124 A JP 2004355124A JP 2003149410 A JP2003149410 A JP 2003149410A JP 2003149410 A JP2003149410 A JP 2003149410A JP 2004355124 A JP2004355124 A JP 2004355124A
- Authority
- JP
- Japan
- Prior art keywords
- host
- memory
- real address
- sectors
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Memory System (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】この装置は、装置を相互接続ネットワークに結合するためのネットワーク・アダプタと、メモリ・セクタの集合を記憶するためのメモリと、メモリを管理するための制御ロジックとを含み、制御ロジックはメモリ圧縮器/圧縮解除器を含む。メモリは、少なくとも1つのホストの実アドレスを装置内のアドレスに変換するためのディレクトリをさらに含む。各ホストが使用するいくつかのメモリ・セクタを管理するための方法と、少なくとも1つのホストが指定する実アドレスをその装置の実アドレスに変換するための方法も提供する。
【選択図】 図5
Description
【発明の属する技術分野】
本発明は、コンピュータ・アーキテクチャに関し、より具体的には、複数のホストがメモリ・セクタの集合を共用できるようにし、そのメモリ・セクタを使用して圧縮データを記憶するネットワーク接続装置に関する。この装置は、以下、「直接アドレス指定共用圧縮メモリ・システム」(SCMS)と呼ぶ。
【0002】
本発明は、ホストによって生成された実アドレスをSCMSによって管理される実アドレスに変換するための方法であって、次にその実アドレスが圧縮メモリ管理システムによって物理アドレスに変換される方法と、メモリ内容保護を確実にするための方法と、種々のホスト間でメモリの内容を共用するためのメカニズムと、複数のSCMSにわたって1つのホストの実アドレス空間の連続部分を分散させるための方法と、各ホストに対して所与の数のメモリ・セクタを保証できることを確実にするための方法とを含む。
【0003】
【従来の技術】
コンピュータ編成において新たに発展したものの1つは、コンピュータ・システムのメイン・メモリでデータ圧縮を使用することである。実メモリ、すなわち、メモリに記憶されたデータに対応する1組のプロセッサ・アドレスは、通常、固定数の連続プロセッサ・アドレスに対応する、いくつかのペアワイズ・ディスジョイント・セグメントに分割される。ペアワイズ・ディスジョイントにより、各実アドレスがこのようなセグメントのうちの唯一無二のセグメントに属することになる。このようなセグメントはメモリ・ラインと呼ぶ。メモリ・ラインは圧縮の単位である。圧縮メモリに記憶されたメモリ・ラインは圧縮され、可変数の記憶場所に記憶され、その数はその内容がどの程度十分に圧縮しているかによって決まる。インターナショナル・ビジネス・マシン(IBM)コーポレーションでは、メイン・メモリの内容が圧縮されるコンピュータ・システムに関するいくつかの特許を有する。このようなシステムの例は、1998年3月17日にFranaszek他に交付され、「Parallel compression and decompression using a cooperative dictionary」という名称の米国特許第5729228号、1998年6月2日にFranaszekに交付され、「Systemand method for reducing memory fragmentation by assigning remainders to sharememory blocks on a best fit basis」という名称の米国特許第5761536号、1999年1月26日にFranaszekに交付され、「Systemand method of compression and decompression using store addressing」という名称の米国特許第5864859号に開示されている。
【0004】
図1は、このようなデータ圧縮機能を有する例示的なシステムを示している。図1の中央演算処理装置(CPU)102は、1つまたは複数のキャッシュ104にデータを読み込み、そこからデータを書き出す。キャッシュ・ミスおよびストアの結果、圧縮コントローラ106により圧縮メイン・メモリ110からの読取りおよびそこへの書込みが行われる。圧縮メイン・メモリ110は、データ部分108とディレクトリ107(圧縮変換テーブルCTTとしても知られている)という2つの部分に分割される。データ部分108は、ペアワイズ・ディスジョイント・セクタ、すなわち、固定サイズ間隔の物理的記憶場所に分割される。たとえば、1つのセクタは、連続物理アドレスを有する256の物理バイトから構成される可能性がある。1つの圧縮メモリ・ラインの内容は、可能な最小数の物理セクタに記憶される。1つの圧縮ラインを含む物理セクタは、連続物理アドレスを有する必要がなく、圧縮メイン・メモリ110のデータ部分108内のどこにでも位置することができる。1つのバイトの実アドレスとそれを含む物理セクタのアドレスとの変換は、ディレクトリまたはCTT107を介して実行される。
【0005】
図2は、圧縮メモリ210の動作をより十分に理解するためにさらに詳細を含んでいる。プロセッサ・キャッシュ240は、未圧縮キャッシュ・ライン241とキャッシュ・ディレクトリ242とを含み、そのキャッシュ・ディレクトリは各キャッシュ・ラインの実アドレスを記憶する。例示のため、1つのキャッシュ・ラインは1つのメモリ・ライン(圧縮の単位)と同じサイズを有するものと想定する。キャッシュ・ミスが発生すると、そのミスを引き起こした実アドレス270を提供することにより、キャッシュは対応するラインをメモリから要求する。この実アドレスは、log2()が2を底とする対数である場合にそのライン内のアドレスのオフセットであるlog2(ライン長)個の最下位ビットと、サポートされる実アドレス範囲の各ラインごとに1つのライン項目を含むディレクトリ220内のインデックスとして使用する残りのビットという2つの部分に分割される。図2のアドレスA1(271)はライン項目1(221)に対応し、アドレスA2(272)はライン項目2(222)に対応し、アドレスA3(273)はライン項目3(513)に対応し、アドレスA4(274)はライン項目4(514)に対応する。圧縮メイン・メモリに圧縮データを記憶するための種々の方法を示すために、この例では種々のアドレスを使用する。この例では、アドレスA1を有するラインが非常に十分に圧縮している(たとえば、すべてゼロから構成されるライン)。このようなラインはCTT項目221に完全に記憶され、メモリ・セクタを必要としない。アドレスA2のラインはあまり十分に圧縮しておらず、2つのメモリ・セクタ231および232を必要とし、これらはデータ・セクション230に記憶される。ライン項目222は、メモリ・セクタ231および232を指すポインタを含む。メモリ・セクタ232の最後の部分は未使用であることに留意されたい。アドレスA3を有するラインは、3つのメモリ・セクタ233、234、235を必要とする。セクタ235内に未使用のまま残っている空間は、実アドレスA4を有する圧縮ラインの部分を記憶するのに十分な長さであり、次にそれがセクタ236と、235の一部とを使用する。アドレスA4およびA3のラインはルームメートと呼ばれる。
【0006】
圧縮器261は、キャッシュ内のダーティ・ラインをメモリにライトバックするときに使用する。キャッシュ・ライトバックが行われると、ダーティ・ラインは圧縮される。それがライトバック以前に使用していたのと同じ量のメモリに収まる場合、それは所定の位置に記憶される。そうではない場合、それは適切な数のセクタに書き込まれる。必要なセクタの数が減少した場合、未使用セクタはフリーセクタ・リストに追加される。必要なセクタの数が増加した場合、それらはフリーセクタ・リストから取り出される。
【0007】
図3は、ディレクトリまたはCTT220内の項目について可能な編成を示している。3通りのライン編成を例示する。項目1(306)は、1組のフラグ(301)と、4つのセクタのアドレスとを含む。ライン・サイズが1024バイトであり、メモリ・セクタ・サイズが256である場合、そのラインは多くても4つのセクタを必要とする。項目2(307)は、1組のフラグと、そのラインが使用する最初のセクタのアドレスと、圧縮ラインの先頭と、そのラインが使用する最後のセクタのアドレスとを含む。そのラインが3つ以上のメモリ・セクタを必要とする場合、そのセクタはポインタのリンク・リストによって接続される(すなわち、各メモリ・セクタは次のセクタのアドレスを含む)。項目3は、1組のフラグと、120ビット以下に圧縮している高圧縮ラインとを含む。この例のフラグは、そのラインが圧縮フォーマットで記憶されているかまたは未圧縮であるかを示すフラグ302と、そのラインが高圧縮性であり、そのディレクトリ項目に完全に記憶されるかどうかを示すフラグ303と、そのラインがいくつのセクタを使用するかを示すフラグ304(2ビット)と、フラグメント情報、すなわち、最後に使用するセクタのどの部分がそのラインによって占有されるか(この情報はルームメート化に使用する)を含むフラグ305(4ビット)にすることができる。上記の圧縮メモリ編成に依拠するメモリ圧縮を備えたシステムで達成可能な最大圧縮比はディレクトリのサイズによって決まり、すなわち、実アドレスの最大数はそのディレクトリ内のディレクトリ項目の数に等しくなる。
【0008】
関連分野では、たとえば、「Partitionedmultiprocessor programming system」という名称の米国特許第4564903号においてR.R.Guyette他により、未圧縮メモリを区分化するための方法が教示されている。この特許は、主記憶装置(MS)を共用する複数のCPUと、複数の入出力装置をMSに接続するための入出力処理手段とを有するマルチプロセッサ(MP)システムのための制御方法を教示するものであり、この制御方法により、MPは、UPSが同じアーキテクチャまたはMPとは異なるアーキテクチャを有するユニプロセッサ(UP)システム上でのみ実行するように設計されていても、MP内の複数のCPU上で同時にユニプロセッサ・プログラミング・システム(UPS)を実行することができる。この特許は、MPシステム内に含まれる非圧縮メモリのための装置および方法を教示するものである。しかし、MPシステムの一部ではない圧縮メモリのための装置および方法や、種々のコンピュータ・システムによって共用され、それらのコンピュータ・システムのいずれの一部でもない圧縮メモリのための装置および方法を教示するものではない。
【0009】
区分化については、たとえば、1989年6月27日にG.H.Bean他に交付され、「Logical resource partitioning of a data processing system」という名称の米国特許第4843541号にも教示されている。この特許は、データ処理システム内のゲスト操作をゲストに割り当てられたシステム・リソースに制限する方法を教示するものであり、システム内のリソースとしては、1つまたは複数の実CPUと、システム主記憶装置(MS)と、任意選択のシステム拡張記憶装置(ES)と、それぞれの入出力装置を備えた複数の入出力装置制御ユニットをシステムに接続するために入出力プロセッサを使用する複数の入出力チャネルと、ソフトウェアを含むホスト・ハイパーバイザ(ホスト)であって、同時かつ独立してシステム内で動作可能な複数のソフトウェア制御プログラム(ゲスト)を監視し、ゲストが同じタイプまたは種々のタイプの制御プログラムにすることができるホストと、ホストおよびゲストへの入出力装置を表すためのサブチャネル(SCH)とを含み、各ゲストが割り当てられたサブセット(区分)のシステム・リソースに制限される。しかし、この特許は、種々のホスト間でネットワーク接続圧縮メモリを共用することを教示するものではない。
【0010】
当技術分野で教示されている区分化は、コンピュータ上で実行されるソフトウェア・コンポーネントが認識する実アドレスをコンピュータが管理する実アドレスに変換するための方法を具備する。このようなソフトウェア・コンポーネントは、同じオペレーティング・システムまたは種々のオペレーティング・システムの複数のイメージにすることができ、したがって、論理/実アドレス変換を実行することができる。区分化では、このようなソフトウェア・コンポーネントが生成する実アドレスを論理アドレスとして扱い、後続の論理/実変換を実行する。ハードウェアがメモリ圧縮をサポートしていない場合、実アドレスは物理アドレスと同等のものである。しかし、メモリが圧縮されている場合、実アドレスは物理アドレスと同等のものではなく、後続の変換が必要である。従来の区分化は、特定の区分で実行されるソフトウェア・コンポーネントが他の区分で実行されるソフトウェア・コンポーネントのメモリの内容にアクセスするのを防止する保護メカニズムも含む。
【0011】
しかし、当技術分野で教示されている区分化は、データを使用するソフトウェア・コンポーネントが実行されるコンピュータ・システムから物理的に分離した装置内でメモリ・リソースを共用する方法ならびにセキュリティ・メカニズムに対処するものではなく、したがって、共用およびセキュリティ・メカニズムはコンピュータ・システムによって制御されず、実際にはこのようなコンピュータ・システムにとって透過になる。
【0012】
【発明が解決しようとする課題】
本発明は、複数のホストがネットワークにより接続されるコンピュータ・システムにおいて、同じくネットワークに接続され、ホストの論理実メモリを拡張し、そのメモリの内容を圧縮形式で維持する機能を提供するネットワーク接続装置を提供する。本発明のネットワーク接続装置は、直接アドレス指定共用圧縮メモリ・システム(以下、SCMSと呼ぶ)である。SCMSは、その内部実メモリ空間をセグメントと呼ばれる隣接実アドレス範囲に分割し、その物理メモリをセクタと呼ばれる隣接物理アドレス範囲の共通プールに分割する。ホストは、このようなデバイスからのセグメントを割り振り、その内部メモリをアドレス指定するように、すなわち、実アドレスによりその内容をアドレス指定することができる。SCMSは、ホストが提供するメモリ・アドレスを内部実アドレスに変換し、その実アドレスは、圧縮メモリ・ディレクトリ(CTT)によって、圧縮データが実際に記憶されるセクタの物理アドレスに変換される。セグメントは、可変数の物理セクタに動的に関連づけられる。1つのセグメント内に記憶されたデータの圧縮率が減少すると、そのセグメントに関連づけられた物理セクタの数が増加し、逆もまた同じである。本発明は、特に、共通プールからメモリ・セグメントへの物理セクタの割当てを管理するための装置および方法を提供するが、これはメモリ圧縮をサポートしていない同様のデバイスまたはメモリ圧縮をサポートしている通常のコンピュータにも存在しないものと思われる。
【0013】
【課題を解決するための手段】
本発明の一実施形態によれば、複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムにおいて、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにし、メモリ・セクタが圧縮データを記憶する装置が提供される。この装置は、装置を相互接続ネットワークに結合するためのネットワーク・アダプタと、メモリ・セクタの集合を記憶するためのメモリと、メモリを管理するための制御ロジックとを含み、制御ロジックはメモリ圧縮器/圧縮解除器を含む。メモリは、少なくとも1つのホストの実アドレスを装置内のアドレスに変換するためのディレクトリをさらに含む。
【0014】
他の実施形態では、この装置の制御ロジックはレジスタのマトリックスをさらに含み、マトリックスの各行はそれぞれ異なるホストIDに対応し、各列はそれぞれ異なるセグメント番号に対応し、それにより、少なくとも1つのホストのIDと所望のセグメントによって決定される特定のレジスタの内容は、結果的に装置の実アドレスになるオフセットに連結される。
【0015】
さらに他の実施形態では、この装置の制御ロジックはレジスタのアレイを含み、そのアレイは装置のいくつかのセグメントに対応するいくつかのレジスタを含み、各レジスタがサポートされる各ホストごとに1つのビットを具備し、それにより、その1つのビットが1に等しい場合に、所望のセグメントは結果的に装置の実アドレスになるオフセットに連結され、その1つのビットが0に等しい場合に、少なくとも1つのホストはそのセグメントへのアクセスを拒否される。
【0016】
本発明のさらに他の実施形態では、この装置の制御ロジックは、装置の各管理セグメントごとに1つの行を含み、第1の列がキーを含み、第2の列が値を含む連想メモリを含み、そのキーは所望のセグメントについて複数のホストが提供する開始実アドレスであり、その値は装置内のセグメントの開始実アドレスであり、それにより、少なくとも1つのホストの探索キーによって決定される値は、結果的に装置の実アドレスになるオフセットに連結される。
【0017】
他の実施形態によれば、相互接続ネットワークにより接続されるホストと、各装置がメモリ・セクタの集合を含む複数の装置とを含み、複数の装置が相互接続ネットワークに結合され、ホストが複数の装置間でメモリ・セクタの集合を共用できるようにし、メモリ・セクタが圧縮データを含む、コンピュータ・システムが提供される。ホストの実アドレスの連続サブセットが複数の装置にわたって分散される。
【0018】
本発明のさらに他の実施形態では、複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムであって、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにするための装置を含み、メモリ・セクタが圧縮データを記憶するコンピュータ・システムにおいて、各ホストが使用するいくつかのメモリ・セクタを管理するための方法が提供される。この方法は、各ホストに認可すべき最大数のセクタを決定するステップと、少なくとも1つのホストに認可された最大数のセクタを記憶するためのしきい値レジスタを少なくとも1つのホストに割り振るステップと、少なくとも1つのホストが使用するいくつかのセクタを記憶するためのカウンタ・レジスタを少なくとも1つのホストに割り振るステップと、少なくとも1つのホストのしきい値レジスタの値と少なくとも1つのホストのカウンタ・レジスタの値とを比較して、カウンタ・レジスタの値がしきい値レジスタを超えているかどうかを判定するステップとを含む。
【0019】
この方法は、カウンタ・レジスタの値がしきい値レジスタを超えている場合に少なくとも1つのホストによる書込み動作を防止するステップと、書込み動作が失敗したことをこのような1つまたは複数のホストのそれぞれに通知するステップとをさらに含む。
【0020】
本発明のさらに他の実施形態によれば、複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムであって、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにするための装置を含み、メモリ・セクタが圧縮データを記憶するコンピュータ・システムにおいて、少なくとも1つのホストが指定する実アドレスをその装置の実アドレスに変換するための方法が提供される。この方法は、ホスト指定の実アドレスを使用して装置の所望の実アドレスを少なくとも1つのホストにより要求するステップと、ホスト指定の実アドレスを使用して装置内のデータ保持位置を識別するステップと、データ保持位置の内容を使用して第1の値を決定するステップと、結果的に装置の実アドレスになるオフセットに第1の値を連結するステップとを含む。
【0021】
本発明の上記その他の目的、特徴、および利点は、添付図面に関連して考慮したときに以下の詳細な説明からより明らかになるだろう。
【0022】
【発明の実施の形態】
本発明の好ましい実施形態の説明では、ネットワークのオペレーティング・システムが、Windows(R)95、Windows(R)98、Windows(R)NT、Windows(R)2000、Linux、AIX(R)およびUNIX(R)のその他のすべてのバージョン、MacOS(R)、IBMOS/400(R)などのページ・オペレーティング・システムであると想定する。当業者であれば、本発明が非ページ・オペレーティング・システムにどのように適合できるかが容易に分かるだろう。
【0023】
ページ・オペレーティング・システムでは、仮想アドレス空間、すなわち、プログラムによってアドレス指定可能なアドレスの集合がページに分割され、そのページが固定長を有する連続仮想アドレスの集合になっている。通常、1ページは4KBを含む。1つのプログラムの仮想アドレス空間は使用可能な物理メモリよりかなり大きいものにすることができる。オペレーティング・システムはこの特徴をサポートする1組の機能を提供し、その機能は一括して仮想メモリ・マネージャと呼ぶ。物理メモリより大きい仮想アドレス空間をサポートするために、仮想メモリ・マネージャは、メモリ内と、3次記憶装置上、通常はハード・ディスク上の両方に仮想ページを記憶する。ある仮想ページにアクセスし、その仮想ページがメイン・メモリ内にない場合、それはディスクから読み取られる(ページイン動作)。ディスクから読取り中のページについて使用可能な物理空間がまったくない場合、他の仮想ページがディスクに書き込まれ(ページアウト動作)、その空間は解放される。仮想ページがディスクから読み取られると、その仮想ページには開始実アドレス(すなわち、プロセッサから認識されるアドレス)が割り当てられる。実メモリ(プロセッサのアドレス空間)は、論理ページと同じサイズを有する連続するペアワイズ・ディスジョイント実アドレス範囲の集合に分割される。これらはページ・フレームと呼ばれる。このため、論理ページがメモリから読み取られると、その論理ページはページ・フレーム内に記憶される。論理ページと実ページとの変換は、ページ・テーブルと呼ばれるページに分割されたディレクトリ構造に依拠する。各論理ページは、ページ・テーブル項目と呼ばれる、ページ・テーブル内の固有の項目を有し、その項目はそのページを含むページ・フレームの開始実アドレスを含むかまたは論理ページが3次記憶装置上にある場合はディスク上の位置を含む。フリー・ページ・フレームは、(Windows(R)NTおよびWindows(R)2000では)ページ・フレーム番号データベースと呼ばれる別個のデータ構造を使用して管理される。
【0024】
図4は、本発明の特徴を有するネットワークのアーキテクチャを示している。複数のコンピュータ・ホスト401は、相互接続ネットワーク402を介してメモリ圧縮をサポートするSCMS(直接アドレス指定共用圧縮メモリ・システム)403に接続されている。コンピュータ・ホスト401は、たとえば、パーソナル・コンピュータ、ワークステーション、対称型マルチプロセッサ(SMP)マシン、非一様メモリ・アクセス・マシン(NUMA)、キャッシュ専用マシン(COMA)、ストレージ・サーバ、SPノードなどにすることが可能である。
【0025】
SCMS403は、メモリ圧縮をサポートし、メモリ圧縮/圧縮解除、実アドレスと物理アドレスとの変換、保護(たとえば、あるホストが他のホストに割り振られたメモリ・アクセスにアクセスするのを防止する)、ロード・バランシング、パフォーマンス分離(すなわち、あるホスト401の行動が他のホストに及ぼす影響を最小限にする)などを含む、コンピュータ・ホスト401がフリー・メモリ・セクタの集合を共用するために必要なサービスを提供する。
【0026】
図5は、SCMS403の一般的なアーキテクチャを示している。SCMS403は、デバイスの集合501とメモリ502とを含む。デバイスの集合501は、ネットワーク・アダプタ503と、メモリ502の管理のための制御ロジック504と、3次記憶装置505とを含む。メモリ502の管理のための制御ロジック504は、メモリ圧縮器/圧縮解除器、レジスタ、ディレクトリまたはCTT項目を収容するためのキャッシュ、メモリからのアドレス指定、読取り、および書込みのための回路、バッファなどをさらに具備する。3次記憶装置505としては、ROM、EPROM、FLASHメモリ・カード、ハード・ディスクを含む。また、好ましい実施形態のSCMS403は、1つまたは複数のホスト401と1つまたは複数のハード・ディスクを共用する。
【0027】
メモリ502は、前述のように、メモリ・ディレクトリ領域506(圧縮変換テーブルとしても知られ、以下、CTTと呼ぶ)と、直接マップ領域507(たとえば、レジスタからのオフセットとしてアドレスが計算される場所)と、未圧縮領域508と、メモリ・セクタのプール509に論理的に分割されている。本発明の精神では、このような領域はそれぞれ、1つのアドレス範囲全体に及ぶ必要はないが、複数のアドレス範囲にわたって拡散することができ、その場合、このような各領域は複数の領域と見なすこともできる。
【0028】
好ましい実施形態のSCMS403は、ホスト401の実メモリ空間の拡張部分として動作する。より具体的には、ホスト401は、ある範囲の実アドレスに対応するようSCMS403に指示することができる。ホスト401がその実アドレスの範囲内の記憶場所にアクセスする(そこで読取りまたは書込みを行う)必要がある場合、ホストは所望の動作を実行するようSCMS403に要求する。好ましい実施形態では、SCMSのハードウェアの複雑さを妥当なものに保持するために、メモリ502は最高H通りのホストに対応することができる。SCMSを使用することを希望するホストはそれに登録し、SCMSが現在、H個未満のホストに対応している場合、SCMSは要求側ホストにたとえば0〜H−1の範囲の固有のIDを割り当て、登録プロセスが完了する。
【0029】
好ましい実施形態のホスト401は、事前定義された細分性で、すなわち、以後、セグメントと呼ぶ固定数の連続実アドレスを含む単位で、SCMS内の実メモリ・アドレス範囲を割り振ることができる。セグメント・サイズはLで示し、SCMSがサポートするセグメント数はSで示す。たとえば、H=16かつL=1Gbである場合に、32Gbの実メモリをサポートするSCMSについて検討する。この例では、SCMSが対応する実メモリ空間は32個のセグメントに分割され、したがって、各ホスト401は1〜17個のセグメントを割り振ることができる(残りのH−1個のホストが1つのセグメントのみを使用する場合)。一実施形態のSCMSは、使用するリソースが多すぎることにより、あるホストが他のホストのパフォーマンスに過度に影響するのを防止するために、個々のホストが割り振ることができるセグメントの数を最大値Nに制限する。たとえば、SCMSは、ホストが使用するセグメントの数を8に制限することが可能である。ホストはSCMSからセグメントを要求することができ、複数のセグメントが使用可能であって、ホストがそのセグメント限界に達していない場合、そのホストには1つのセグメントが認可される。また、ホストはセグメントを解放することができ、そのセグメントはその後、フリー・セグメントのプールに追加される。
【0030】
好ましい実施形態では、あるホストが1つのメモリ・セグメントを割り振ると、SCMSは対応する実アドレス範囲をそのホストに通知する。この実施形態では、64ビットのアドレス指定と想定すると、そのアドレスのうちのlog2(H)個の最上位ビットがホストIDになり、この例では、H=16である場合、4個の最上位ビットがホストを識別する。次のlog2(N)個のビット(この例では3)がそのアドレスを含むセグメントを識別し、log2(L)個の最下位ビット(この例では30)がそのセグメント内のオフセットになる。この方式では、多数のアドレス・ビットの値(この例では27)を指定しない。これらは、たとえば、ホスト401が複数のSCMSに登録され、同じIDが割り当てられている場合に使用することができる。この場合、以下に説明するように、未指定のビットを使用して、種々のSCMSで割り振られたセグメント間を区別することができる。
【0031】
前述のように、メモリ圧縮をサポートするシステムにおける実アドレスと物理アドレスとの変換は、CTTと呼ばれるディレクトリに依拠する。本発明の精神では、SCMSのCTT506は複数の連続部分に分割され、そのそれぞれは1つのセグメントに関する実/物理変換を実行するために使用する。したがって、連続部分の数はSCMSが管理するセグメントの最大数に等しくなり、各連続部分のサイズは、1つのセグメントをアドレス指定するのに必要なCTT項目の数を収容できるものになる。好ましい実施形態では、CTTのサイズは、初期プログラム・ロードIPL時(すなわち、マシンがブートしている間)に決定される。たとえば、SCMSが16Gbの物理メモリを含み、32Gbの実メモリをサポートし、圧縮の単位が1Kである場合、CTTは32×220個の項目を含むことになり、それが32個の連続部分に分割され、そのそれぞれが異なる1つのセグメントに対応する220個の項目を含む。
【0032】
メモリ圧縮をサポートする通常のコンピュータ、メモリ・サーバの機能を提供するデバイス、メモリ圧縮をサポートしないデバイスには見られない本発明の1つの特徴は、各ホストがどのくらいの物理メモリを使用するかを制御する方針をサポートするのに必要なハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方である。この特徴については図6に関連して説明する。あるホストが1つのセグメントを要求すると、そのホストは、そのセグメントに割り振られるかまたは予約された保証数の物理セクタであると解釈可能ないくつかの物理セクタも要求することができる。予約セクタの総数がセクタの総数を超えない場合、その要求を認可することができる。
【0033】
SCMSは、しきい値601とカウンタ602とを含む1組のレジスタを含む。各ホストに認可される物理セクタの最大数は固有のしきい値レジスタに記憶され、そのホストが使用する物理セクタの数は固有のカウンタ・レジスタに記憶される。書込みまたはメモリ解放動作がホストから出されると、そのホストID603を使用して、関連のしきい値およびカウンタを選択する。この動作が解放である場合、カウンタは、ホストが解放する1組の実アドレスが使用する物理セクタの数だけ減分される。この動作が書込みである場合、圧縮器/圧縮解除器(604)は、書込み動作が影響する各メモリ・ラインが書込み動作前に使用する物理セクタの数だけカウンタを削減する。次に圧縮器は各ラインを圧縮し、そのラインが使用する物理セクタの数だけカウンタを増分する。比較器605はしきい値の値とカウンタの値とを比較する。その値がしきい値を超えている場合、比較器605は、そのホストがそれに割り振られたクオータの物理セクタを超えていることを示す比較結果606を発生する。そうではない場合、比較器は、しきい値を超えていないことを示す比較結果を発生する。
【0034】
比較結果606は、その使用セグメント数がしきい値を超えているときに1つのホスト(または複数のホスト)に信号で知らせるために(ソフトウェアまたはハードウェア)メカニズムが使用し、しきい値は予約セクタのカウンタ付近であるがそれ未満になるようソフトウェアで設定することができる。これにより、あるホストがその限界に近づいたときにそのセクタの使用を削減できるようにするメカニズムが可能になる。あるホストがそのセクタを正常に削減しない場合、ホストによるSCMSへのストア動作(書込み)の結果、その使用セクタがその予約セクタを超える可能性がある状況が発生する場合もある。このような場合、いくつかのオプションが可能である。
(1)SCMSは、書込み動作が完了するのを防止し、そのホストに信号でエラーを知らせることができる。これにより、使用セクタ数がしきい値以下に低下する時点まで、そのホスト、たとえばホスト0からの後続の書込みが履行されるのを防止する。さらに、ホスト0の圧縮比がどれほど劣化しても、他のホストが動作を続行できるようにする。
(2)依然として十分な数の未使用セクタがSCMSで使用可能であると想定して、SCMSは書込み動作を履行することができる。また、SCMSはそのホストにもう一度、信号でエラーを知らせることになり、それはそのセクタ使用量を削減するための最優先メッセージとして解釈することができる。この場合、他のホストは動作を続行することができるが、ホスト0の圧縮比が劣化し続けた場合に最終的にセクタを使い果たす可能性があることが露呈する。
【0035】
図7は、ホストが指定する実アドレスをどのようにしてSCMS実アドレスに変換するかという変換の好ましい実施形態を示している。ホスト指定の実アドレス701は、ホストID702と、セグメント番号703と、オフセット704に分解され、いくつかのビットは無視される。図5に示すようにSCMSの制御ロジック504は、レジスタのマトリックス705、すなわち、データ保持位置を含む。マトリックス705の各行はそれぞれ異なるホストIDに対応し、このため、マトリックス705はH個の行を含む。マトリックスの各列はそれぞれ異なるセグメント番号に対応し、したがって、このマトリックスはL個の列を含む。ホストID702はマトリックスの行706を選択するために使用し、セグメント番号703は列707を選択するために使用する。列707と行706が相俟ってレジスタ709を一意に識別する。レジスタ709の内容、すなわち、所望のセグメントをアドレス指定するために使用するCTTの部分の開始点は、レジスタ709に含まれるビットをオフセット・ビット704に連結することにより、マトリックス705の外部にあるレジスタ710内のオフセット704と結合される。この時点でレジスタ710はSCMS実アドレス、言い換えれば、メモリ502が管理する所望のデータの実アドレスを含んでいる。
【0036】
他の実施形態では、ホストIDはアドレスの一部ではないが、たとえば、ネットワーク・アダプタから入手される。この実施形態については図8に関連して説明することになるが、この実施形態では、ホスト401から提供されるアドレス801の事前定義部分802、すなわち、セグメント番号を使用して、所望のセグメントを指定し(したがって、この部分の長さはlog2(S)ビットである)、アドレス801の最下位ビット803はオフセットになる。当業者であれば、セグメント番号を含むアドレス801の事前定義部分802の事前指定位置は隣接ビットで構成される必要はなく、これらのビットはオフセット803が使用する部分以外のアドレス801のどこにでも配置できることが分かるだろう。ホストID805は所望のアドレスから別個に提供される。図5に示すようにSCMSの制御ロジック504は、セグメントあたり1つのレジスタを含むレジスタのアレイ804(データ保持位置)を含み、各レジスタはサポートしているホストあたり1つのビットを含む。あるホストが1つのセグメントを割り振ると、それは、レジスタ内の対応するビットを「1」に設定することにより、どのホストがそのセグメントに対して読取りおよび書込みを実行できるかを指定し、残りのビットは「0」に設定される。読取り/書込み動作時には、セグメント番号802を使用してレジスタ・アレイ804内の1つのレジスタを選択し、ホストID805に対応する項目のビットをチェックする。このビットが「1」に設定されている場合、アドレス807を使用できるようにする許可信号806が生成される。アドレス807はセグメント番号802とオフセット803から構成される。このビットが「0」に設定されている場合、エラー信号が生成され、要求側ホストに送られる。この方法により、ホストが他のホストが使用するメモリ・セグメントからの読取りまたはそのメモリ・セグメントへの書込みを行うのを防止する保護メカニズムが得られる。また、複数のホスト401がメモリ空間の一部を共用する共用メモリ環境でアクセス制御を行うためのメカニズムも提供される。
【0037】
図6の方法により、制御ロジック504は、各ホストごとに1つのカウンタを含むことになり、そのカウンタはそのホストが使用するセグメントの数を含み、1つのホストが許容数を超える数のセグメントを割り振るのを防止する。図8の保護メカニズムを取り入れるために図6の方式を変更する方法は、当業者にとって明白になるだろう。
【0038】
本発明は、レジスタのアレイ804を使用せずに、図7に示す方法を使用して保護メカニズムを構築するための方法も提供する。図7に示すようにアドレスのホストID部分も図8のように別個に提供される場合(たとえば、ネットワーク・アダプタから得られるホスト・ネットワーク・アドレスをホストIDに変換する変換テーブルを使用する)、あるセグメントへの排他的アクセスは、アドレス801の一部である図7のホストID702とそのアドレスとは別個の図8のホストID805とを比較することにより、容易に実現される。不一致がある場合、そのアドレスは無効であり、エラー・メッセージが生成される。セグメントの共用をサポートするために、あるセグメントが割り振られ、それを共用するホストIDが指定されると、SCMSは、指定されたホストに対応する変換マトリックス705の行で未使用項目を見つけ、その項目を空にし、割り振られたセグメントの開始点のアドレスをすべての項目にコピーする。この手法により、同じセクタを共用するホストごとに異なる実アドレスが得られる。SCMS制御ロジックは、すでに使用されているセグメントの開始アドレスを変換マトリックス705の項目に書き込むことを許可しないので、したがって、上記の方法によって所望の保護メカニズムが提供される。
【0039】
ホストIDがアドレスの一部ではないが、別個に提供される場合、別個に提供されるホストID(この時点ではもはやアドレス701の一部ではない)を介して変換マトリックスの行が選択され、セグメント番号703を使用して列が選択されるように、図7の方法を変更することができる。この方法も自動的に保護メカニズムを提供するものであり、前の段落で記述したようにセクタへの共用アクセスを制御するために使用することができる。
【0040】
他の実施形態では、あるセグメントを要求するホスト401はそのセグメント用の開始実アドレスも指定し、それはセグメント境界上に位置合せされる。この実施形態では、SCMSは、同じ開始アドレスが指定される2つの異なるセグメントをホスト401が割り振ることができないことを保証するロジックを含む。図9は、ホストが提供する実アドレスとSCMS実アドレスとの変換プロセスを示している。この場合、図5の制御ロジック504は、連想メモリ904(データ保持位置)を含む。連想メモリ904は、各管理セグメント(現在割り振られていないものを含む)あたり1つの行と、2つの列を含む。第1の列905は、割り振られたセグメントについてホスト401が提供する開始実アドレスであるキーを含む。第2の列906は、SCMSの実メモリ空間内のセグメントの開始実アドレスである値を含む。
【0041】
ホスト401によってアドレス901が提供されると、そのアドレスは、最下位ビットから構成されるセグメント内のオフセット903と、連想メモリ904用の探索キーとして使用する最上位ビット902という2つの部分に分割される。1つの行、たとえば行907がそのキー・フィールドに探索キーと同じ値を含む場合、連想メモリ904は値フィールド908の内容を返す。次に値908はレジスタ909でオフセット903と結合され、SCMS実アドレスを生成する。図9の変換メカニズムと図8の保護メカニズムを結合する方法は、当業者にとって明白になるだろう。
【0042】
SCMSが多数のセグメントを管理する場合、図7の変換マトリックス705、図8のレジスタ804、図9の連想メモリ904、および上記のようにそれらから得られるものは、図5の制御ロジック504内のレジスタとして実現するには潜在的に高価であると思われる。好ましい実施形態では、構成要素705、804、904に含まれる情報がメモリ502に記憶される。制御ロジック504は、容易に使用可能になるように、前記情報のサブセットのみが記憶されるキャッシュを含む。このようなキャッシュは、最後に使用したセグメント情報をキャッシュ内に維持するなど、既知のキャッシュ管理方針によって管理することができる。
【0043】
本発明では、複数のSCMSにわたってホストの実メモリ空間を拡散する方法も教示する。図10は、ホスト1001が相互接続ネットワーク1002により複数のSCMS1003に接続され、そのホストの実メモリ空間の一部が複数のSCMSにわたって拡散され、各メモリ1004がある範囲の実アドレスを含む例を示している。図9の方法を使用すると、ホスト1001の実メモリ空間の連続サブセットが複数のSCMS1003にわたって分散されることを保証することができる。
【0044】
好ましい実施形態では、1つのSCMSが、たとえば、その番号と、それぞれの個別SCMSのアドレスと、各SCMSごとに割り振られたセグメントの数と圧縮率情報とを含む、同じネットワークに接続された他のSCMS上の情報も含む。
【0045】
本発明は、ハードウェア、ソフトウェア、ファームウェア、専用プロセッサ、またはそれらの組合せという様々な形態で実現可能であることを理解されたい。一実施形態では、本発明は、プログラム記憶装置上に具体的に実施されたアプリケーション・プログラムとしてソフトウェアで実現することができる。このアプリケーション・プログラムは、適当なアーキテクチャを具備するマシンにアップロードし、そのマシンによって実行することができる。好ましくは、このマシンは、1つまたは複数の中央演算処理装置(CPU)、1つのランダム・アクセス・メモリ(RAM)、入出力(I/O)インタフェース(複数も可)などのハードウェアを有するコンピュータ・プラットフォーム上で実現される。このコンピュータ・プラットフォームは、オペレーティング・システムと、マイクロ命令コードも含む。本明細書に記載した様々なプロセスおよび機能は、オペレーティング・システムを介して実行されるこのマイクロ命令コードの一部またはアプリケーション・プログラムの一部のいずれか(あるいはこれらの組合せ)にすることができる。さらに、このコンピュータ・プラットフォームには、追加のデータ記憶装置および印刷装置などの様々な他の周辺装置を接続することもできる。
【0046】
添付図面に示す構成上のシステム構成要素および方法ステップの一部はソフトウェアで実現できるので、システム構成要素(またはプロセス・ステップ)間の実際の接続は、本発明をプログラミングする方法に応じて異なってくる可能性があることをさらに理解されたい。本明細書に記載した本発明の教示を考慮すれば、当業者は、本発明の上記および同様の実現例または構成を企図することができるだろう。
【0047】
図11は、ホスト・システムがどのようにメモリ参照をSCMSへの要求に変換するかを示している。ステップ1101では、ホスト・システムは、実アドレスがネットワーク接続装置に記憶された時期を識別する。好ましい実施形態の論理/物理アドレス変換は、SCMSに記憶されたアドレスを識別するための備えを含む。この実施形態では、ページ・テーブル項目内の適切なフラグを使用して、ホストの主記憶装置に記憶されたページと外部に記憶されたページとを区別する。その場合、外部に記憶されたページは、メモリ参照をネットワーク接続装置への要求に変換するドライバまたはハードウェア装置によりアクセスされる。この変換は、SCMSに記憶されたアドレスのディレクトリ1103でデータを含むSCMSのネットワーク・アドレスを見つけるステップ1102と、ステップ1102で識別されたSCMSに対して要求を出すステップ1104から構成されることになるだろう。
【0048】
他の実施形態では、SCMSに記憶されたページは、ホストのメモリによってサポートされる実アドレスの範囲に属さない実アドレスを有する。たとえば、ホストがメモリ圧縮をサポートしていない場合、ホストのメモリによってサポートされる実アドレスはゼロから物理メモリ・サイズに等しい最大値までの範囲になる。ホストが圧縮をサポートしている場合、実アドレスの範囲は実/物理変換メカニズムによって決定され、前記変換メカニズムが静的ディレクトリ(CTT)に依拠する場合、実アドレスの範囲は前記ディレクトリのサイズによって決定される。最新のオペレーティング・システムでは、ホスト内でサポートされる実アドレスの範囲外の実アドレスが出されると、例外が発生し、割込みが発生する。この実施形態では、この特定の割込みが発生したときに呼び出されるオペレーティング・システム・モジュールは、動作1102および1104を実行するコードを含む。
【0049】
本発明の直接アドレス指定共用圧縮メモリ・システム(SCMS)のさらに他の実施形態では、SCMSは、各CTTがそれぞれ異なる実アドレス空間に対応するCTTの集合を含む。この実施形態では、複数のホスト間で共用されないアドレス空間を多くても1つのホストに関連づけることができる。新しいホストが非共用アドレス空間を要求し、実アドレス空間が使用可能である場合、SCMSの制御ロジックは、対応するCTTによって使用可能な実アドレス空間をそのホストに割り当て、そのアドレス空間をそのホストのIDに関連づける。そのホストのメモリ動作がSCMSを対象としている場合、SCMSはホストIDを対応するCTTのアドレスに変換し、ホストが提供する実アドレスをCTTを使用して物理アドレスに変換する。
【0050】
この実施形態の一例については図12に関連して説明する。SCMS1202は、とりわけ、CTTの集合1207と、共用可能なメモリ・セクタの集合1209、1210をさらに含むメモリ1211とを含む。動作時にホスト1201は、SCMS1202に対してメモリ動作を出し、アドレス1203を送信する。SCMSは、アドレス1203からホストが生成した実アドレス1206とホストID1204を取り出す。次にこのホストID1204は、ホストID/CTT変換テーブル1205を使用してCTTの集合1207から1つのCTTを選択するために使用する。SCMSは、ホストID/CTT変換テーブル1205を使用して、ホスト1201に関連するCTT1208を選択する。選択したCTT1208を使用して、ホスト1206が生成した実アドレスを、対応するデータを含む物理アドレスに変換する。この例では、アドレス1206を含むメモリ・ラインは、2つのメモリ・セクタ1209および1210を使用して記憶される。
【0051】
当業者であれば、前述の本発明の他の特徴とこの特徴とをどのように結合するかが分かるだろう。たとえば、SCMSでは、ホストIDとCTTとのマッピングを多対一のマッピングにすることにより、CTT集合1207内の1つのCTTに関連する同一セグメントを複数のホストで共用することができる。この場合、複数のホストIDを単一CTTにマッピングすることにより、ホストID/CTT変換テーブルを使用して、複数のホストIDをマッピングする。当業者であれば、単一セグメントが使用するメモリの物理的な量、ホストが生成するアドレスと1つのセグメント内の実アドレスとの追加変換などを制御する方針が本発明のこの特徴にどのように適用されるかも分かるだろう。
【0052】
本発明の所与の好ましい実施形態に関連して本発明を示し説明してきたが、当業者であれば、特許請求の範囲で定義した本発明の精神および範囲を逸脱せずに形態および詳細について様々な変更が可能であることが分かるだろう。
【0053】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0054】
(1)各ホストが関連の実アドレス空間を1つずつ有する複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムにおいて、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにし、メモリ・セクタが圧縮データを記憶する装置であって、
装置を相互接続ネットワークに結合するためのネットワーク・アダプタと、
メモリ・セクタの集合を記憶するためのメモリであって、少なくとも1つのホストの実アドレスを圧縮データが記憶される装置内のアドレスに変換するためのディレクトリを含むメモリと、
メモリを管理するための制御ロジックであって、メモリ圧縮器/圧縮解除器を含む制御ロジックとを具備する装置。
(2)3次記憶装置をさらに具備する、上記(1)に記載の装置。
(3)メモリが直接マップ領域と未圧縮領域とをさらに具備する、上記(1)に記載の装置。
(4)1組のレジスタであって、各ホストに認可された最大数のセクタを記憶するための複数のしきい値レジスタと、各ホストが使用するいくつかのセクタを記憶するための複数のカウンタ・レジスタとを含む1組のレジスタをさらに具備する、上記(1)に記載の装置。
(5)少なくとも1つのホストのしきい値レジスタの値と少なくとも1つのホストのカウンタ・レジスタの値とを比較して、カウンタ・レジスタの値がしきい値レジスタを超えているかどうかを判定するための比較器をさらに具備する、上記(4)に記載の装置。
(6)少なくとも1つのホストの実アドレスが、少なくとも1つのホストのIDと、装置の所望のメモリ・セグメントと、所望のセグメントのオフセットとを具備する、上記(1)に記載の装置。
(7)実アドレスが種々の装置内の割振り済みセグメントをさらに具備する、上記(6)に記載の装置。
(8)制御ロジックがレジスタのマトリックスをさらに具備し、マトリックスの各行がそれぞれ異なるホストIDに対応し、各列がそれぞれ異なるセグメント番号に対応し、それにより、少なくとも1つのホストのIDと所望のメモリ・セグメントによって決定される特定のレジスタの内容が、結果的に装置が管理する実アドレスになるオフセットに連結される、上記(6)に記載の装置。
(9)制御ロジックがレジスタのアレイをさらに具備し、そのアレイが装置のいくつかのメモリ・セグメントに対応するいくつかのレジスタを含み、各レジスタがサポートされる各ホストごとに1つのビットを具備し、それにより、その1つのビットが1に等しい場合に、所望のメモリ・セグメントが、結果的に装置が管理する実アドレスになるオフセットに連結され、その1つのビットが0に等しい場合に、少なくとも1つのホストがそのセグメントへのアクセスを拒否される、上記(1)に記載の装置。
(10)制御ロジックが、装置の各管理メモリ・セグメントごとに1つの行を含み、第1の列がキーを含み、第2の列が値を含む連想メモリをさらに具備し、そのキーが所望のメモリ・セグメントについて複数のホストが提供する開始実アドレスであり、その値が装置内のセグメントの開始実アドレスであり、それにより、少なくとも1つのホストの探索キーによって決定される値が、結果的に装置が管理する実アドレスになるオフセットに連結される、上記(1)に記載の装置。
(11)コンピュータ・システムが複数の装置をさらに具備し、その装置が、装置の数、複数の装置のそれぞれのアドレス、複数の装置のそれぞれに割り振られたいくつかのセグメント、記憶されたデータの圧縮率などの他の装置の情報を含む、上記(1)に記載の装置。
(12)メモリが複数のディレクトリをさらに具備し、各ディレクトリが複数のホストのうちの各ホストのそれぞれ異なる実アドレス空間に対応する、上記(1)に記載の装置。
(13)メモリがホストID/ディレクトリ変換テーブルをさらに具備し、少なくとも1つのホストが生成するホストIDを使用して、複数のディレクトリのうち少なくとも1つのホストに対応するディレクトリを選択し、そのディレクトリが少なくとも1つのホストの実アドレスを装置の物理アドレスに変換する、上記(12)に記載の装置。
(14)相互接続ネットワークにより接続されるホストと、各装置がメモリ・セクタの集合を含む複数の装置であって、相互接続ネットワークに結合され、ホストが複数の装置間でメモリ・セクタの集合を共用できるようにし、メモリ・セクタが圧縮データを記憶する複数の装置とを具備するコンピュータ・システム。
(15)ホストの実アドレスの連続サブセットが複数の装置にわたって分散される、上記(14)に記載のコンピュータ・システム。
(16)複数の装置のうちの少なくとも1つの装置が、装置の数、複数の装置のそれぞれのアドレス、複数の装置のそれぞれに割り振られたいくつかのセグメント、記憶されたデータの圧縮率などの他の装置の情報を含む、上記(14)に記載のコンピュータ・システム。
(17)複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムであって、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにするための装置を含み、メモリ・セクタが圧縮データを記憶するコンピュータ・システムにおいて、各ホストが使用するいくつかのメモリ・セクタを管理するための方法であって、
各ホストに認可すべき最大数のセクタを決定するステップと、
少なくとも1つのホストに認可された最大数のセクタを記憶するためのしきい値レジスタを少なくとも1つのホストに割り振るステップと、
少なくとも1つのホストが使用するいくつかのセクタを記憶するためのカウンタ・レジスタを少なくとも1つのホストに割り振るステップと、
少なくとも1つのホストのしきい値レジスタの値と少なくとも1つのホストのカウンタ・レジスタの値とを比較して、カウンタ・レジスタの値がしきい値レジスタを超えているかどうかを判定するステップとを具備する方法。
(18)少なくとも1つのホストのIDにより、少なくとも1つのホストの関連のしきい値レジスタとカウンタ・レジスタを選択するステップをさらに具備する、上記(17)に記載の方法。
(19)少なくとも1つのホストが解放動作を実行するときに、少なくとも1つのホストが解放する1組の実アドレスが使用するいくつかのセクタ分だけカウンタ・レジスタを減分するステップをさらに具備する、上記(17)に記載の方法。
(20)カウンタ・レジスタの値がしきい値レジスタを超えている場合に、使用するセクタの数が認可されているセクタの数を超えていることを少なくとも1つのホストに信号で知らせるステップをさらに具備する、上記(17)に記載の方法。
(21)カウンタ・レジスタの値がしきい値レジスタを超えている場合に、少なくとも1つのホストが使用するセクタの数を削減するステップをさらに具備する、上記(17)に記載の方法。
(22)少なくとも1つのホストが書込み動作を実行するときに、書き込むべきメモリ・ラインを圧縮するステップと、そのメモリ・ラインが使用するいくつかのセクタ分だけカウンタ・レジスタを増分するステップとをさらに具備する、上記(17)に記載の方法。
(23)カウンタ・レジスタの値がしきい値レジスタを超えている場合に、少なくとも1つのホストによる書込み動作を防止するステップをさらに具備する、上記(22)に記載の方法。
(24)書込み動作が失敗したことを少なくとも1つのホストに通知するステップをさらに具備する、上記(23)に記載の方法。
(25)複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムであって、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにするための装置を含み、メモリ・セクタが圧縮データを記憶するコンピュータ・システムにおいて、少なくとも1つのホストが指定する実アドレスをその装置の実アドレスに変換するための方法であって、
ホスト指定の実アドレスを使用して装置の所望の実アドレスを少なくとも1つのホストにより要求するステップと、
ホスト指定の実アドレスを使用して装置内のデータ保持位置を識別するステップと、
データ保持位置の内容を使用して第1の値を決定するステップと、
結果的に装置の実アドレスになるオフセットに第1の値を連結するステップとを具備する方法。
(26)ホスト指定の実アドレスをホストIDと、セグメント番号と、オフセットに分解するステップをさらに具備する、上記(25)に記載の方法。
(27)データ保持位置がレジスタのマトリックスであり、マトリックスの各行が少なくとも1つのホストのそれぞれ異なるホストIDに対応し、各列がそれぞれ異なるセグメント番号に対応する、上記(26)に記載の方法。
(28)識別ステップが、少なくとも1つのホストのホストIDを使用してマトリックスの1つの行を選択し、セグメント番号を使用してマトリックスの1つの列を選択することにより、マトリックス内の1つのレジスタを識別することをさらに具備する、上記(27)に記載の方法。
(29)決定ステップが、識別されたレジスタの内容を第1の値として提供することをさらに具備する、上記(28)に記載の方法。
(30)データ保持位置がレジスタのアレイであり、そのアレイが装置のいくつかのセグメントに対応するいくつかのレジスタを含む、上記(25)に記載の方法。
(31)各レジスタが、サポートされる各ホストごとに1つのビットを具備し、サポートされるホストがそのセグメントへのアクセスを許可されている場合にそのビットが1に設定され、サポートされるホストがそのセグメントへのアクセスを許可されていない場合にそのビットが0に設定される、上記(30)に記載の方法。
(32)識別ステップが、アレイのうち、ホスト指定の実アドレスから抽出したセグメント番号に対応するレジスタを識別することをさらに具備する、上記(31)に記載の方法。
(33)決定ステップが、
少なくとも1つのホストによって提供されるホストIDに対応する、識別されたレジスタ内の1つのビットをチェックするステップと、
その1つのビットが1に等しい場合に、セグメント番号を第1の値として提供するステップとをさらに具備する、上記(32)に記載の方法。
(34)決定ステップが、
少なくとも1つのホストによって提供されるホストIDに対応する、識別されたレジスタ内の1つのビットをチェックするステップと、
その1つのビットが0に等しい場合に、そのセグメントがアクセス不能であることを示し、少なくとも1つのホストに送られるエラー信号を生成するステップとをさらに具備する、上記(32)に記載の方法。
(35)データ保持位置が、装置の各管理セグメントごとに1つの行を含み、第1の列がキーを含み、第2の列が第2の値を含む連想メモリであり、そのキーが所望のセグメントについて複数のホストが提供する開始実アドレスであり、その第2の値が装置内のセグメントの開始実アドレスである、上記(25)に記載の方法。
(36)ホスト指定のアドレスを探索キーとオフセットに分解するステップをさらに具備する、上記(35)に記載の方法。
(37)識別ステップが、少なくとも1つのホストの探索キーを使用して連想メモリの1つの行を識別することをさらに具備する、上記(36)に記載の方法。
(38)決定ステップが、識別された行に対応する第2の値を第1の値として提供することをさらに具備する、上記(37)に記載の方法。
(39)複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムであって、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにするための装置を含み、メモリ・セクタが圧縮データを記憶するコンピュータ・システムにおいて、マシンによって読取り可能であり、各ホストが使用するいくつかのメモリ・セクタを管理するための方法ステップを実行するためにマシンによって実行可能な複数命令からなるプログラムを具体的に実施するプログラム記憶装置であって、その方法ステップが、
各ホストに認可すべき最大数のセクタを決定するステップと、
少なくとも1つのホストに認可された最大数のセクタを記憶するためのしきい値レジスタを少なくとも1つのホストに割り振るステップと、
少なくとも1つのホストが使用するいくつかのセクタを記憶するためのカウンタ・レジスタを少なくとも1つのホストに割り振るステップと、
少なくとも1つのホストのしきい値レジスタの値と少なくとも1つのホストのカウンタ・レジスタの値とを比較して、カウンタ・レジスタの値がしきい値レジスタを超えているかどうかを判定し、カウンタ・レジスタの値がしきい値レジスタを超える場合に、少なくとも1つのホストの書込み動作を拒否するステップとを具備するプログラム記憶装置。
(40)複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムであって、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにするための装置を含み、メモリ・セクタが圧縮データを記憶するコンピュータ・システムにおいて、マシンによって読取り可能であり、少なくとも1つのホストが指定する実アドレスをその装置の実アドレスに変換するための方法ステップを実行するためにマシンによって実行可能な複数命令からなるプログラムを具体的に実施するプログラム記憶装置であって、その方法ステップが、
ホスト指定の実アドレスを使用して装置の所望の実アドレスを少なくとも1つのホストにより要求するステップと、
ホスト指定の実アドレスを使用して装置内のデータ保持位置を識別するステップと、
データ保持位置の内容を使用して第1の値を決定するステップと、
結果的に装置の実アドレスになるオフセットに第1の値を連結するステップとを具備するプログラム記憶装置。
【図面の簡単な説明】
【図1】圧縮メイン・メモリをサポートする従来のコンピュータ・システムの構造を示す図である。
【図2】図1に示す圧縮メイン・メモリをサポートする従来のコンピュータ・システムのメモリ・システムの詳細構造を示す図である。
【図3】図1に示す圧縮メイン・メモリをサポートする従来のコンピュータ・システムにおけるメモリ・ディレクトリの構造を示す図である。
【図4】本発明による直接アドレス指定共用圧縮メモリ・システム(SCMS)を使用するネットワークのアーキテクチャを示す図である。
【図5】本発明によるSCMSのブロック図である。
【図6】本発明によるSCMSにおいて各ホストが使用するセクタの数を追跡するために使用する制御ロジックの構造を示す図である。
【図7】ホストからのアドレスをSCMSが管理する実アドレスに変換するための方法であって、変換マトリックスに依拠する方法を示す図である。
【図8】保護ビットのアレイを使用してSCMS内で保護を可能にし、セグメントへのアクセスを制御するための方法を示す図である。
【図9】ホストからのアドレスをSCMSが管理する実アドレスに変換するための方法であって、連想メモリに依拠する方法を示す図である。
【図10】ホスト・システムの実アドレス空間の一部が複数のSCMSにわたって拡散されるネットワークのアーキテクチャを示す図である。
【図11】メモリ参照をSCMSへの要求に変換するための方法を示す図である。
【図12】本発明により複数のメモリ・ディレクトリ(CTT)を含むSCMSの一実施形態を示す図である。
【符号の説明】
501 デバイスの集合
502 メモリ
503 ネットワーク・アダプタ
504 制御ロジック
505 3次記憶装置
506 メモリ・ディレクトリ領域
507 直接マップ領域
508 未圧縮領域
509 メモリ・セクタのプール
Claims (40)
- 各ホストが関連の実アドレス空間を1つずつ有する複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムにおいて、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにし、メモリ・セクタが圧縮データを記憶する装置であって、
装置を相互接続ネットワークに結合するためのネットワーク・アダプタと、
メモリ・セクタの集合を記憶するためのメモリであって、少なくとも1つのホストの実アドレスを圧縮データが記憶される装置内のアドレスに変換するためのディレクトリを含むメモリと、
メモリを管理するための制御ロジックであって、メモリ圧縮器/圧縮解除器を含む制御ロジックとを具備する装置。 - 3次記憶装置をさらに具備する、請求項1に記載の装置。
- メモリが直接マップ領域と未圧縮領域とをさらに具備する、請求項1に記載の装置。
- 1組のレジスタであって、各ホストに認可された最大数のセクタを記憶するための複数のしきい値レジスタと、各ホストが使用するいくつかのセクタを記憶するための複数のカウンタ・レジスタとを含む1組のレジスタをさらに具備する、請求項1に記載の装置。
- 少なくとも1つのホストのしきい値レジスタの値と少なくとも1つのホストのカウンタ・レジスタの値とを比較して、カウンタ・レジスタの値がしきい値レジスタを超えているかどうかを判定するための比較器をさらに具備する、請求項4に記載の装置。
- 少なくとも1つのホストの実アドレスが、少なくとも1つのホストのIDと、装置の所望のメモリ・セグメントと、所望のセグメントのオフセットとを具備する、請求項1に記載の装置。
- 実アドレスが種々の装置内の割振り済みセグメントをさらに具備する、請求項6に記載の装置。
- 制御ロジックがレジスタのマトリックスをさらに具備し、マトリックスの各行がそれぞれ異なるホストIDに対応し、各列がそれぞれ異なるセグメント番号に対応し、それにより、少なくとも1つのホストのIDと所望のメモリ・セグメントによって決定される特定のレジスタの内容が、結果的に装置が管理する実アドレスになるオフセットに連結される、請求項6に記載の装置。
- 制御ロジックがレジスタのアレイをさらに具備し、そのアレイが装置のいくつかのメモリ・セグメントに対応するいくつかのレジスタを含み、各レジスタがサポートされる各ホストごとに1つのビットを具備し、それにより、その1つのビットが1に等しい場合に、所望のメモリ・セグメントが、結果的に装置が管理する実アドレスになるオフセットに連結され、その1つのビットが0に等しい場合に、少なくとも1つのホストがそのセグメントへのアクセスを拒否される、請求項1に記載の装置。
- 制御ロジックが、装置の各管理メモリ・セグメントごとに1つの行を含み、第1の列がキーを含み、第2の列が値を含む連想メモリをさらに具備し、そのキーが所望のメモリ・セグメントについて複数のホストが提供する開始実アドレスであり、その値が装置内のセグメントの開始実アドレスであり、それにより、少なくとも1つのホストの探索キーによって決定される値が、結果的に装置が管理する実アドレスになるオフセットに連結される、請求項1に記載の装置。
- コンピュータ・システムが複数の装置をさらに具備し、その装置が、装置の数、複数の装置のそれぞれのアドレス、複数の装置のそれぞれに割り振られたいくつかのセグメント、記憶されたデータの圧縮率などの他の装置の情報を含む、請求項1に記載の装置。
- メモリが複数のディレクトリをさらに具備し、各ディレクトリが複数のホストのうちの各ホストのそれぞれ異なる実アドレス空間に対応する、請求項1に記載の装置。
- メモリがホストID/ディレクトリ変換テーブルをさらに具備し、少なくとも1つのホストが生成するホストIDを使用して、複数のディレクトリのうち少なくとも1つのホストに対応するディレクトリを選択し、そのディレクトリが少なくとも1つのホストの実アドレスを装置の物理アドレスに変換する、請求項12に記載の装置。
- 相互接続ネットワークにより接続されるホストと、各装置がメモリ・セクタの集合を含む複数の装置であって、相互接続ネットワークに結合され、ホストが複数の装置間でメモリ・セクタの集合を共用できるようにし、メモリ・セクタが圧縮データを記憶する複数の装置とを具備するコンピュータ・システム。
- ホストの実アドレスの連続サブセットが複数の装置にわたって分散される、請求項14に記載のコンピュータ・システム。
- 複数の装置のうちの少なくとも1つの装置が、装置の数、複数の装置のそれぞれのアドレス、複数の装置のそれぞれに割り振られたいくつかのセグメント、記憶されたデータの圧縮率などの他の装置の情報を含む、請求項14に記載のコンピュータ・システム。
- 複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムであって、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにするための装置を含み、メモリ・セクタが圧縮データを記憶するコンピュータ・システムにおいて、各ホストが使用するいくつかのメモリ・セクタを管理するための方法であって、
各ホストに認可すべき最大数のセクタを決定するステップと、
少なくとも1つのホストに認可された最大数のセクタを記憶するためのしきい値レジスタを少なくとも1つのホストに割り振るステップと、
少なくとも1つのホストが使用するいくつかのセクタを記憶するためのカウンタ・レジスタを少なくとも1つのホストに割り振るステップと、
少なくとも1つのホストのしきい値レジスタの値と少なくとも1つのホストのカウンタ・レジスタの値とを比較して、カウンタ・レジスタの値がしきい値レジスタを超えているかどうかを判定するステップとを具備する方法。 - 少なくとも1つのホストのIDにより、少なくとも1つのホストの関連のしきい値レジスタとカウンタ・レジスタを選択するステップをさらに具備する、請求項17に記載の方法。
- 少なくとも1つのホストが解放動作を実行するときに、少なくとも1つのホストが解放する1組の実アドレスが使用するいくつかのセクタ分だけカウンタ・レジスタを減分するステップをさらに具備する、請求項17に記載の方法。
- カウンタ・レジスタの値がしきい値レジスタを超えている場合に、使用するセクタの数が認可されているセクタの数を超えていることを少なくとも1つのホストに信号で知らせるステップをさらに具備する、請求項17に記載の方法。
- カウンタ・レジスタの値がしきい値レジスタを超えている場合に、少なくとも1つのホストが使用するセクタの数を削減するステップをさらに具備する、請求項17に記載の方法。
- 少なくとも1つのホストが書込み動作を実行するときに、書き込むべきメモリ・ラインを圧縮するステップと、そのメモリ・ラインが使用するいくつかのセクタ分だけカウンタ・レジスタを増分するステップとをさらに具備する、請求項17に記載の方法。
- カウンタ・レジスタの値がしきい値レジスタを超えている場合に、少なくとも1つのホストによる書込み動作を防止するステップをさらに具備する、請求項22に記載の方法。
- 書込み動作が失敗したことを少なくとも1つのホストに通知するステップをさらに具備する、請求項23に記載の方法。
- 複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムであって、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにするための装置を含み、メモリ・セクタが圧縮データを記憶するコンピュータ・システムにおいて、少なくとも1つのホストが指定する実アドレスをその装置の実アドレスに変換するための方法であって、
ホスト指定の実アドレスを使用して装置の所望の実アドレスを少なくとも1つのホストにより要求するステップと、
ホスト指定の実アドレスを使用して装置内のデータ保持位置を識別するステップと、
データ保持位置の内容を使用して第1の値を決定するステップと、
結果的に装置の実アドレスになるオフセットに第1の値を連結するステップとを具備する方法。 - ホスト指定の実アドレスをホストIDと、セグメント番号と、オフセットに分解するステップをさらに具備する、請求項25に記載の方法。
- データ保持位置がレジスタのマトリックスであり、マトリックスの各行が少なくとも1つのホストのそれぞれ異なるホストIDに対応し、各列がそれぞれ異なるセグメント番号に対応する、請求項26に記載の方法。
- 識別ステップが、少なくとも1つのホストのホストIDを使用してマトリックスの1つの行を選択し、セグメント番号を使用してマトリックスの1つの列を選択することにより、マトリックス内の1つのレジスタを識別することをさらに具備する、請求項27に記載の方法。
- 決定ステップが、識別されたレジスタの内容を第1の値として提供することをさらに具備する、請求項28に記載の方法。
- データ保持位置がレジスタのアレイであり、そのアレイが装置のいくつかのセグメントに対応するいくつかのレジスタを含む、請求項25に記載の方法。
- 各レジスタが、サポートされる各ホストごとに1つのビットを具備し、サポートされるホストがそのセグメントへのアクセスを許可されている場合にそのビットが1に設定され、サポートされるホストがそのセグメントへのアクセスを許可されていない場合にそのビットが0に設定される、請求項30に記載の方法。
- 識別ステップが、アレイのうち、ホスト指定の実アドレスから抽出したセグメント番号に対応するレジスタを識別することをさらに具備する、請求項31に記載の方法。
- 決定ステップが、
少なくとも1つのホストによって提供されるホストIDに対応する、識別されたレジスタ内の1つのビットをチェックするステップと、
その1つのビットが1に等しい場合に、セグメント番号を第1の値として提供するステップとをさらに具備する、請求項32に記載の方法。 - 決定ステップが、
少なくとも1つのホストによって提供されるホストIDに対応する、識別されたレジスタ内の1つのビットをチェックするステップと、
その1つのビットが0に等しい場合に、そのセグメントがアクセス不能であることを示し、少なくとも1つのホストに送られるエラー信号を生成するステップとをさらに具備する、請求項32に記載の方法。 - データ保持位置が、装置の各管理セグメントごとに1つの行を含み、第1の列がキーを含み、第2の列が第2の値を含む連想メモリであり、そのキーが所望のセグメントについて複数のホストが提供する開始実アドレスであり、その第2の値が装置内のセグメントの開始実アドレスである、請求項25に記載の方法。
- ホスト指定のアドレスを探索キーとオフセットに分解するステップをさらに具備する、請求項35に記載の方法。
- 識別ステップが、少なくとも1つのホストの探索キーを使用して連想メモリの1つの行を識別することをさらに具備する、請求項36に記載の方法。
- 決定ステップが、識別された行に対応する第2の値を第1の値として提供することをさらに具備する、請求項37に記載の方法。
- 複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムであって、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにするための装置を含み、メモリ・セクタが圧縮データを記憶するコンピュータ・システムにおいて、マシンによって読取り可能であり、各ホストが使用するいくつかのメモリ・セクタを管理するための方法ステップを実行するためにマシンによって実行可能な複数命令からなるプログラムを具体的に実施するプログラム記憶装置であって、その方法ステップが、
各ホストに認可すべき最大数のセクタを決定するステップと、
少なくとも1つのホストに認可された最大数のセクタを記憶するためのしきい値レジスタを少なくとも1つのホストに割り振るステップと、
少なくとも1つのホストが使用するいくつかのセクタを記憶するためのカウンタ・レジスタを少なくとも1つのホストに割り振るステップと、
少なくとも1つのホストのしきい値レジスタの値と少なくとも1つのホストのカウンタ・レジスタの値とを比較して、カウンタ・レジスタの値がしきい値レジスタを超えているかどうかを判定し、カウンタ・レジスタの値がしきい値レジスタを超える場合に、少なくとも1つのホストの書込み動作を拒否するステップとを具備するプログラム記憶装置。 - 複数のホストが相互接続ネットワークにより接続されるコンピュータ・システムであって、相互接続ネットワークに結合され、複数のホストがメモリ・セクタの集合を共用できるようにするための装置を含み、メモリ・セクタが圧縮データを記憶するコンピュータ・システムにおいて、マシンによって読取り可能であり、少なくとも1つのホストが指定する実アドレスをその装置の実アドレスに変換するための方法ステップを実行するためにマシンによって実行可能な複数命令からなるプログラムを具体的に実施するプログラム記憶装置であって、その方法ステップが、
ホスト指定の実アドレスを使用して装置の所望の実アドレスを少なくとも1つのホストにより要求するステップと、
ホスト指定の実アドレスを使用して装置内のデータ保持位置を識別するステップと、
データ保持位置の内容を使用して第1の値を決定するステップと、
結果的に装置の実アドレスになるオフセットに第1の値を連結するステップとを具備するプログラム記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003149410A JP3808058B2 (ja) | 2003-05-27 | 2003-05-27 | 複数のホストが圧縮データを記憶するメモリ・セクタの集合を共用できるようにするための装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003149410A JP3808058B2 (ja) | 2003-05-27 | 2003-05-27 | 複数のホストが圧縮データを記憶するメモリ・セクタの集合を共用できるようにするための装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004355124A true JP2004355124A (ja) | 2004-12-16 |
JP3808058B2 JP3808058B2 (ja) | 2006-08-09 |
Family
ID=34045521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003149410A Expired - Fee Related JP3808058B2 (ja) | 2003-05-27 | 2003-05-27 | 複数のホストが圧縮データを記憶するメモリ・セクタの集合を共用できるようにするための装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3808058B2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008112332A (ja) * | 2006-10-31 | 2008-05-15 | Nec Corp | メモリ管理装置 |
JP2017519286A (ja) * | 2014-05-21 | 2017-07-13 | クアルコム,インコーポレイテッド | 中央処理装置(cpu)搭載システム内の圧縮メモリコントローラ(cmc)を使用したメモリ帯域圧縮の提供 |
CN108885585A (zh) * | 2016-03-31 | 2018-11-23 | 高通股份有限公司 | 在基于中央处理单元(cpu)的系统中使用多个末级高速缓冲存储器(llc)线提供存储器带宽压缩 |
JP2019500705A (ja) * | 2015-10-01 | 2019-01-10 | ティダルスケール・インコーポレーテッドTidalscale Incorporated | 選択的リソースマイグレーションを用いるネットワーク接続型メモリ |
US10838862B2 (en) | 2014-05-21 | 2020-11-17 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
US11175927B2 (en) | 2017-11-14 | 2021-11-16 | TidalScale, Inc. | Fast boot |
US11803306B2 (en) | 2017-06-27 | 2023-10-31 | Hewlett Packard Enterprise Development Lp | Handling frequently accessed pages |
US11907768B2 (en) | 2017-08-31 | 2024-02-20 | Hewlett Packard Enterprise Development Lp | Entanglement of pages and guest threads |
-
2003
- 2003-05-27 JP JP2003149410A patent/JP3808058B2/ja not_active Expired - Fee Related
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4715723B2 (ja) * | 2006-10-31 | 2011-07-06 | 日本電気株式会社 | メモリ管理装置 |
JP2008112332A (ja) * | 2006-10-31 | 2008-05-15 | Nec Corp | メモリ管理装置 |
US10503661B2 (en) | 2014-05-21 | 2019-12-10 | Qualcomm Incorporated | Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system |
JP2017519286A (ja) * | 2014-05-21 | 2017-07-13 | クアルコム,インコーポレイテッド | 中央処理装置(cpu)搭載システム内の圧縮メモリコントローラ(cmc)を使用したメモリ帯域圧縮の提供 |
US10838862B2 (en) | 2014-05-21 | 2020-11-17 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
US11240334B2 (en) | 2015-10-01 | 2022-02-01 | TidalScale, Inc. | Network attached memory using selective resource migration |
JP2019500705A (ja) * | 2015-10-01 | 2019-01-10 | ティダルスケール・インコーポレーテッドTidalscale Incorporated | 選択的リソースマイグレーションを用いるネットワーク接続型メモリ |
JP2019513271A (ja) * | 2016-03-31 | 2019-05-23 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと |
CN108885585A (zh) * | 2016-03-31 | 2018-11-23 | 高通股份有限公司 | 在基于中央处理单元(cpu)的系统中使用多个末级高速缓冲存储器(llc)线提供存储器带宽压缩 |
CN108885585B (zh) * | 2016-03-31 | 2022-11-01 | 高通股份有限公司 | 在基于中央处理单元(cpu)的系统中使用多个末级高速缓冲存储器(llc)线提供存储器带宽压缩 |
US11803306B2 (en) | 2017-06-27 | 2023-10-31 | Hewlett Packard Enterprise Development Lp | Handling frequently accessed pages |
US11907768B2 (en) | 2017-08-31 | 2024-02-20 | Hewlett Packard Enterprise Development Lp | Entanglement of pages and guest threads |
US11175927B2 (en) | 2017-11-14 | 2021-11-16 | TidalScale, Inc. | Fast boot |
US11656878B2 (en) | 2017-11-14 | 2023-05-23 | Hewlett Packard Enterprise Development Lp | Fast boot |
Also Published As
Publication number | Publication date |
---|---|
JP3808058B2 (ja) | 2006-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7039769B2 (en) | Direct addressed shared compressed memory system | |
US5899994A (en) | Flexible translation storage buffers for virtual address translation | |
US8453015B2 (en) | Memory allocation for crash dump | |
US7206915B2 (en) | Virtual space manager for computer having a physical address extension feature | |
US7620766B1 (en) | Transparent sharing of memory pages using content comparison | |
US4742450A (en) | Method to share copy on write segment for mapped files | |
US7653803B2 (en) | Address translation for input/output (I/O) devices and interrupt remapping for I/O devices in an I/O memory management unit (IOMMU) | |
US5852738A (en) | Method and apparatus for dynamically controlling address space allocation | |
US6956507B2 (en) | Method and apparatus for morphing memory compressed machines | |
US7921426B2 (en) | Inter partition communication within a logical partitioned data processing system | |
US5893166A (en) | Addressing method and system for sharing a large memory address space using a system space global memory section | |
US8135899B1 (en) | Expansion of virtualized physical memory of virtual machine | |
EP3324296A1 (en) | File data access method and computer system | |
US20040117594A1 (en) | Memory management method | |
US20120210066A1 (en) | Systems and methods for a file-level cache | |
US20030110205A1 (en) | Virtualized resources in a partitionable server | |
US6366994B1 (en) | Cache aware memory allocation | |
JP2006252554A (ja) | 仮想マシン環境内でのゲスト物理アドレスの仮想化の方法およびシステム | |
US20090164715A1 (en) | Protecting Against Stale Page Overlays | |
Peleg et al. | Utilizing the {IOMMU} scalably | |
US5146580A (en) | Method and system for using expanded memory for operating system buffers and application buffers | |
US20070260769A1 (en) | Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages | |
US10216529B1 (en) | Method and system for sharing driver pages | |
US6457107B1 (en) | Method and apparatus for reducing false sharing in a distributed computing environment | |
US5293622A (en) | Computer system with input/output cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20030527 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050622 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050908 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050913 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051209 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060509 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060516 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100526 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |