JP2000227874A - コンピュ―タ・システムにおいてディレクトリ構造を含むメイン・メモリの内容にアドレスするための方法および装置 - Google Patents

コンピュ―タ・システムにおいてディレクトリ構造を含むメイン・メモリの内容にアドレスするための方法および装置

Info

Publication number
JP2000227874A
JP2000227874A JP2000000285A JP2000000285A JP2000227874A JP 2000227874 A JP2000227874 A JP 2000227874A JP 2000000285 A JP2000000285 A JP 2000000285A JP 2000000285 A JP2000000285 A JP 2000000285A JP 2000227874 A JP2000227874 A JP 2000227874A
Authority
JP
Japan
Prior art keywords
memory
directory structure
entry
directory
address
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
Application number
JP2000000285A
Other languages
English (en)
Other versions
JP3439167B2 (ja
Inventor
Peter A Franaszek
ピーター・エイ・フラナシェク
T Robinson John
ジョン・ティー・ロビンソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000227874A publication Critical patent/JP2000227874A/ja
Application granted granted Critical
Publication of JP3439167B2 publication Critical patent/JP3439167B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02—Addressing or allocation; Relocation
    • G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023—Free address space management
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02—Addressing or allocation; Relocation
    • G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40—Specific encoding of data in memory or cache
    • G06F2212/401—Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 CPUを有し、メモリに含まれる第1のディ
レクトリ構造を介して間接的にアドレス可能なメイン・
メモリを実装するコンピュータ・システムにおいて、デ
ィレクトリ構造の内容にアクセスするためのシステムを
提供すること。 【解決手段】 このシステムにおいて、CPUが生成し
た実メモリ・アドレスは、ディレクトリ構造を使用して
1つまたは複数の物理メモリ位置に変換される。第2の
ディレクトリ構造がメイン・メモリ内に設けられ、これ
は1つまたは複数のエントリを含み、各エントリが第1
のディレクトリ構造内にある所定数のエントリへのアド
レス可能性を提供するようにフォーマットされている。
別法として、第2のディレクトリ構造が、メイン・メモ
リのすべての内容にアクセスすることもでき、メイン・
メモリ容量の変化に応じて適応可能である。また別法と
して第2のディレクトリ構造は、メイン・メモリ内のデ
ータにアクセスするためにアドレスを計算するハードウ
ェア装置として実装することもできる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般に、コンピュ
ータ・システムにおけるメモリ・アドレッシング方式に
関する。さらに詳細には、コンピュータ・プロセッサお
よびCPUが、メイン・メモリに格納されたディレクト
リ構造を使用して、メイン・メモリが実アドレスのハー
ドウェア変換手段によってアドレスされるメイン・メモ
リ・システムのデータ内容にアクセスできるようにする
ためのシステムおよび方法に関する。
【0002】
【従来の技術】コンピュータ組織では、コンピュータ・
システムのメイン・メモリにおいて各キャッシュ・ライ
ンをメイン・メモリに格納する前に圧縮するデータ圧縮
の使用法が新しく開発されている。その結果、メイン・
メモリの圧縮を使用しない従来のコンピュータ・システ
ムではメイン・メモリ内で均一の固定サイズであったキ
ャッシュ・ラインは、メモリ圧縮を使用することによっ
て、占有する空間の量が変化するようになった。可変サ
イズのキャッシュ・ラインをメイン・メモリ内に効率的
に格納しこれにアクセスする技術は、どちらも本発明の
譲受人に譲渡されている米国特許第5761536号お
よび同時係属中の「Compression Store Addressing」と
いう名称の米国特許出願第08/603976号に記載
されており、また、P.フラナシェク(Franaszek)お
よびJ.ロビンソン(Robinson)の「Design and Analy
sis of Internal Organizations for Compressed Rando
m Access Memories」(IBM Research Report RC 2114
6、IBM Watson Research Center、1998年3月30
日)と題する参照文献にも記載されている。
【0003】可変サイズのキャッシュ・ラインを効率的
に格納しこれにアクセスする技術では、ディレクトリ構
造を使用して、コンピュータ・システムのCPU(また
はプロセッサ)によって生成された実メモリ・アドレス
を使用してディレクトリ中に索引付けし、その後これを
使用して圧縮データを格納しているメイン・メモリ内容
を見つける必要がある。次に、圧縮メイン・メモリ・シ
ステムとディレクトリ構造の例を、図1ないし図3を参
照しながら説明する。
【0004】図1は、圧縮メイン・メモリを使用するコ
ンピュータ・システム例の全体構造を示す。CPU10
2はキャッシュ104からのデータの読取りおよび書込
みを実行する。キャッシュ・ミスおよび格納によって、
圧縮制御装置106を使用した圧縮メイン・メモリ10
8への読取りおよび書込みが行われる。
【0005】図2は、図1に示したキャッシュ104、
圧縮制御装置106の構成要素、および圧縮メイン・メ
モリ108の構造を詳細に示す。圧縮メイン・メモリ
は、ディレクトリ220および複数の固定サイズ・ブロ
ック230(231〜236)を格納するのに使用され
る、従来のRAMメモリ210を使用して実装される。
キャッシュ240は、従来どおり、1組のキャッシュ・
ライン248に対して1つのキャッシュ・ディレクトリ
245を使用して実装される。圧縮制御装置106は、
圧縮ラインの読取りに使用される圧縮解除装置250
と、圧縮ラインの書込みに使用される圧縮装置260と
を含む。各キャッシュ・ラインは所与の実メモリ・アド
レス270に関連付けられる。ただし従来のメモリとは
異なり、アドレス270はメモリ210内のアドレスを
指すのではなく、ディレクトリ220中に索引付けする
のに使用されるアドレス270を指す。各ディレクトリ
・エントリは関連するキャッシュ・ラインを取り出せる
ようにする情報(詳細は図3に記載)を格納している。
たとえば、アドレスA1 271に関連するライン1の
ディレクトリ・エントリ221は、圧縮されたラインを
ディレクトリ・エントリに完全に格納できる大きさにま
で圧縮したライン用であり、アドレスA2 272に関
連するライン2のディレクトリ・エントリ222は、第
1のフル・ブロック231および第2の部分的に充填さ
れたブロック232を使用して、圧縮形式で格納された
ライン用であり、最後に、それぞれアドレスA3 27
3およびA4 274に関連するライン3およびライン
4のディレクトリ・エントリ223および224は、い
くつかのフル・ブロック(ライン3にはブロック233
および234、ライン4にはブロック235)を使用し
た圧縮形式で格納され、この2つの圧縮されたライン3
および4の残りの部分はブロック236で結合されてい
る。
【0006】図3には、ディレクトリ・エントリ形式の
いくつかの例を示す。この例では、図2の各ブロックは
256バイト・サイズであり、図2のキャッシュ・ライ
ン248は1024バイト・サイズであると想定されて
いる。すなわち、ラインは4つのブロックを使用して非
圧縮形式で格納することができる。この例では、16バ
イト・サイズのディレクトリ・エントリが使用され、第
1のバイトはいくつかのフラグで構成されており、この
第1のバイト305の内容が残りのディレクトリ・エン
トリの形式を決定する。フラグ・ビット301は、ライ
ンが圧縮形式と非圧縮形式のどちらで格納されているか
を指定し、非圧縮形式で格納されている場合は、残りの
ディレクトリ・エントリが、ライン1 310用である
と解釈され、その際に4つの30ビット・アドレスはそ
のラインを格納している4つのブロックのメモリ内のア
ドレスを与える。圧縮形式で格納されている場合、フラ
グ・ビット302は、圧縮されたラインがディレクトリ
・エントリ内に完全に格納されているか否かを示し、そ
うである場合、そのディレクトリ・エントリの形式はラ
イン3 330用であり、そこに120ビットまでの圧
縮データが格納される。そうでない場合、圧縮されたラ
インが120ビットよりも長い場合は、ライン1 31
0またはライン2 320用の示された形式を使用する
ことができる。ライン1 310形式の場合、追加のフ
ラグ・ビット303が圧縮されたラインを格納するのに
使用されるブロック数を指定し、1から4までの30ビ
ット・アドレスがブロックの位置を指定し、最後に、最
終ブロックに格納された圧縮ラインの残りの部分または
断片のサイズ(32バイト単位)は、フラグメントがブ
ロックの先頭または末尾のどちらに格納されているかを
示すビットと共に、4つのフラグメント情報ビット30
4によって与えられる。ディレクトリ・エントリ形式3
20は、圧縮されたラインの一部が(圧縮解除の待ち時
間を削減するために)ディレクトリ・エントリに格納さ
れる代替形式を示しており、この場合、圧縮されたライ
ンの残りの部分を格納するために使用される最初のブロ
ックと最後のブロックのアドレスだけがディレクトリ・
エントリに格納され、中間のブロックがある場合、それ
はリンク・リスト技法を使用して見つける。すなわち、
圧縮されたラインを格納するために使用される各ブロッ
クが、必要であれば、所与の圧縮されたラインを格納す
るために使用される次のブロックのアドレスを含むポイ
ンタ・フィールドを有する。
【0007】これとは対照的に、圧縮メイン・メモリを
使用しない従来のコンピュータ・システムでは、実メモ
リ・アドレスが直接にメイン・メモリ・アドレスとして
使用される。圧縮メイン・メモリ・システムでは、圧縮
キャッシュ・ラインの内容を含むデータへのディレクト
リを使用したマッピングが、圧縮制御装置ハードウェア
を使用して自動的に行われ、ディレクトリはプロセッサ
には「不可視」である。したがって、プロセッサが(従
来のプロセッサ・アーキテクチャを使用して)ディレク
トリ内容にアクセスすることはできない。しかし様々な
理由から、このようなアクセスを提供することが望まし
い。1つの手法は、たとえば圧縮制御装置ハードウェア
を迂回し、メイン・メモリの内容を直接検査できるアド
レッシング・モードが利用できるように、プロセッサ・
アーキテクチャを修正するものである。この手法では問
題は解決されるが、既存のプロセッサ・アーキテクチャ
を使用する「市販の」プロセッサが使用できない場合が
あるなど、いくつかの欠点があることは明白である。
【0008】ディレクトリ構造を使用した実メモリ・ア
ドレスの物理メモリ位置へのハードウェア変換を迂回す
る、「R=P」(実=物理)モードと呼ばれる追加のア
ドレッシング・モードが使用できると仮定しても、次の
ような問題がある。すなわち、通常の動作の下でのキャ
ッシュ内容は、ディレクトリ構造を介した実メモリ・ア
ドレスの物理位置への変換を使用してアドレスされたと
きのメイン・メモリの内容を反映しているので、このモ
ードへ切り替えた後、コンピュータ・システムにおける
すべてのキャッシュ・レベルのすべてのキャッシュ内容
が無効になる。したがって、このモードに切り替えるに
は、まずすべてのキャッシュ・レベルの修正されたすべ
てのキャッシュ・ラインを強制的にメイン・メモリに書
き込み、次いですべてのキャッシュ・レベルのすべての
キャッシュ・ラインに無効のマークを付けなければなら
ない。R=Pモードをオフにする動作にも同様の処理を
行わなければならない。したがって、R=Pモードと通
常のアドレッシング・モードとの間の切替えには、大き
な処理時間のオーバヘッドを要する。さらに、マルチプ
ロセッサ・システムでは、1つのプロセッサがR=Pモ
ードで動作し、残りのプロセッサが通常のアドレッシン
グ・モードで動作している場合、キャッシュ・コヒーレ
ンス・プロトコルに関連する重要な問題が生じることが
ある。
【0009】
【発明が解決しようとする課題】間接アドレス指定式メ
イン・メモリ・アーキテクチャで、プロセッサおよびC
PUが圧縮メイン・メモリ・システムのディレクトリ構
造に直接アクセスできるようにするための装置および方
法、ならびに間接アドレス指定式メイン・メモリ・アー
キテクチャの他のアプリケーション(たとえば、フォー
ルト・トレラントのメイン・メモリ設計)を提供するこ
とが強く望まれる。
【0010】さらに、既存のプロセッサ・アーキテクチ
ャを修正する必要がなく、新しいアドレッシング・モー
ドを導入する必要もなしに、プロセッサが圧縮メモリ・
システムのメイン・メモリの内容に直接アクセスできる
ようにするシステムおよび方法を提供することも強く望
まれる。
【0011】
【課題を解決するための手段】本発明は、メイン・メモ
リ階層の最下位レベルが間接的にアドレスされるシステ
ムにおいて、プロセッサまたはCPUが、圧縮メイン・
メモリ(またはフォールト・トレラント・メモリあるい
はその両方)を実装するのに使用されるディレクトリ構
造に直接アクセスできるようにする、2層ディレクトリ
構造およびアドレッシング方式を対象とする。具体的に
は、(第1レベルの)ディレクトリを含むメモリ・ブロ
ックを指すエントリを含む第2レベルのディレクトリが
使用されるため、ハードウェア・デバッグ・アプリケー
ションおよびパフォーマンス監視アプリケーションのた
めにディレクトリ内容が直接検査できるようになる。さ
らにプロセッサが(純粋にハードウェアによって管理さ
れるメモリとは対照的に)ソフトウェアを使用してメモ
リ内容を管理できる設計が実行可能になり、これによっ
て圧縮メイン・メモリ・システムまたはフォールト・ト
レラント・メモリ・システムの費用が削減できる。
【0012】さらに本発明によれば、第2レベルのディ
レクトリはメモリの一部として所与の1組のメモリ・ア
ドレス位置に論理的に実装されるが、物理的にはメモリ
内に格納されない。すなわち、所与のその1組のメモリ
・アドレスに対するメモリ参照の結果は、このような各
論理メモリ・アドレスの論理的内容を計算するハードウ
ェア手段によって決定される。
【0013】
【発明の実施の形態】次に、圧縮メイン・メモリ・シス
テムのディレクトリ構造へのアドレッシングを可能にす
るための本発明の一方法について詳細に説明する。再度
図1および図2を参照すると、キャッシュ・ミスの場
合、CPU102(図1)によって生成された実アドレ
スが、圧縮制御装置106により、ディレクトリ220
(図2)を使用してディレクトリ・エントリ内の圧縮デ
ータ、1つまたは複数のブロック内の圧縮データ、ある
いはブロック230内の非圧縮データにアクセスするた
めに自動的に変換されることに留意されたい。したがっ
て前述のように、CPUは、メモリ210のディレクト
リ220を含む部分にはアクセスできない。
【0014】本発明の第1の実施形態によれば、図4に
示すように、ディレクトリ220へのアドレス可能性を
提供する一方法は、非圧縮形式ですべてのディレクトリ
220へのアドレス可能性を提供するようにフォーマッ
トされた複数のディレクトリ・エントリを含む第2レベ
ルのディレクトリ(D2)410を使用するものであ
る。すなわち、このような各ディレクトリ・エントリで
は、図3のディレクトリ・エントリに示される圧縮フラ
グ301が「非圧縮」に設定され、4つのブロック・ア
ドレス310がディレクトリ220内にある連続する4
つのメモリ・ブロックのシーケンスを指すように設定さ
れている。図3に示した例に関して述べたような、ディ
レクトリ・エントリ形式、ブロック・サイズなどを使用
して、各ディレクトリ・エントリは1024バイトのア
ドレス可能性を提供し、ディレクトリ・エントリはサイ
ズが16バイトであるため、第2レベルの各ディレクト
リ・エントリは、ディレクトリ220内の1024/1
6=64個のディレクトリ・エントリへのアドレス可能
性を提供する。このことは図4に示されている。図4で
は、ディレクトリ410においてアドレスA0 414
に対応するディレクトリ・エントリ412が、ディレク
トリ220においてアドレスA1からA64(430)
に対応する連続する64個のディレクトリ・エントリ4
20のアドレス可能性を提供する。したがって、CPU
102は、アドレスA0 414を使用して、アドレ
スA1からA64(430)に対応するディレクトリ・
エントリを含む1024バイトのメモリにアクセスする
ことができる。
【0015】前述の例では、第1レベルのディレクトリ
220用の静的ディレクトリ構造、すなわちディレクト
リ220が事前に割り振られたメモリの連続する区域か
らなる構造を例示した。圧縮メイン・メモリ・システム
のための別の手法は、動的ディレクトリ構造を使用する
ものであり、その際にディレクトリは、たとえば256
バイトのブロック230をデータとして使用するためで
はなく追加の16個の16バイト・ディレクトリ・エン
トリ用に割り振ることによって拡張することができる
(これにより、現在使用されている多くのコンピュータ
・システムで代表的なページ・サイズである4Kバイト
のページを4つ、すなわち16Kバイトのデータに対す
るアドレッシングが可能になる)。この方式で追加のメ
モリ・アドレス可能性が提供されるときは、論理メイン
・メモリ・サイズを変更できるように設計されたオペレ
ーティング・システムを使用して、オペレーティング・
システムのページ・テーブルを修正することによってこ
れが記録される。別法として、ディレクトリ・エントリ
を含むブロック230を割振り解除し、ページ・テーブ
ルを適切に修正することによって、論理メイン・メモリ
・サイズを減らすことも可能である。このような手法で
は、ディレクトリ220は必ずしも予めわかっている所
与のメモリ区域にある必要はなく、メイン・メモリ21
0全体に割り振られたいくつかのブロックを占めている
可能性もある。この場合に第1レベルのディレクトリへ
のアドレス可能性を提供するための本発明の第2の方法
が、図5に示されている。図5に示したシステムでは、
第1レベルのディレクトリおよび圧縮/圧縮解除を介す
ることなく、メモリ全体への直接アクセス可能性を提供
する。図5は、複数のディレクトリ・エントリ、たとえ
ば16バイトのエントリからなる第1部分(第2レベル
のディレクトリD2)510、およびたとえば各102
4バイトの複数のメモリ区域からなる第2部分(M2)
520から構成されるメモリの全体を示す。図のよう
に、アドレスA0 531に対応するディレクトリ・エ
ントリ541は、アドレスA3 534にある第1の1
024バイトのメモリ区域544へのアドレス可能性を
提供し、アドレスA1 532に対応するディレクトリ
・エントリ542は、アドレスA4 535にある10
24バイトのメモリ区域545へのアドレス可能性を提
供し、アドレスA2 533に対応するディレクトリ・
エントリ543は、アドレスA5 536にある最後の
1024バイトのメモリ区域546へのアドレス可能性
を提供する。第2部分520は、第1レベルのディレク
トリを含み得る。
【0016】第2レベルのディレクトリは、前述のよう
に、従来のRAMを使用して実装するか、(その場合、
第2レベルのディレクトリの内容はシステムのブート処
理時にロードされる)、または(第2レベルのディレク
トリの内容は変更されないので)ROMを使用して実装
することができる。別法として、図6に示すように、第
2レベルのディレクトリへのメモリ・アクセスの結果
を、専用ハードウェアによって計算することもできる。
この例では、図5に示される方法を想定し、ディレクト
リ・エントリ形式は図3に示す通りである。図6を参照
すると、読取り専用レジスタ602に、「テンプレー
ト」ディレクトリ・エントリがロードされ、フラグ・フ
ィールド610は非圧縮にセットされたビットを有し、
ブロック・アドレス・フィールド612、613、61
4、615には、第1の1024バイトのメモリ区域5
44(図5参照)のアドレスA3 534にある連続す
る4つの256バイト・ブロックのアドレスがロードさ
れる。メモリ・アドレスA 605は16バイトの細分
性であると仮定され、すなわちA+1が次の16バイト
・エントリを指す等々(この例では話を簡単にするため
に、第1の第2レベル・ディレクトリ・エントリがアド
レスA=0にあると仮定する。他の基底アドレスのため
の修正は簡単である)。連続する各第2レベル・ディレ
クトリ・エントリは連続する4つのブロックを指してい
るため、Aを4倍する必要があり、これはアドレスAを
2ビット左へシフトさせるシフト・レジスタ630を用
いて実施される。その結果であるA' 631が、加算
器632、633、634、635を使用して、「テン
プレート」ディレクトリ・エントリ・ブロック・アドレ
スの内容に加算され、メモリ出力レジスタ640内の対
応するフィールド622、623、624、625にロ
ードされる。最後に、フラグ・フィールド620の内容
が、ディレクトリ・エントリの「テンプレート」フラグ
・フィールド610からメモリ出力レジスタ640へ直
接ロードされる。したがって、この例は、第2レベルの
ディレクトリにRAMまたはROMメモリが必要なく、
その代わりに第2レベルのディレクトリへのメモリ・ア
クセスの結果がハードウェア機構を使用して計算され
る、代替実装を示すものである。
【0017】本発明により、メイン・メモリ階層の最下
位レベルが間接的にアドレスされるシステムにおいて、
圧縮メイン・メモリ(またはフォールト・トレラント・
メモリあるいはその両方)を実装するために使用される
ディレクトリ構造にプロセッサがアクセスできるように
なる。これによって、ハードウェア・デバッグ・アプリ
ケーションおよびパフォーマンス監視アプリケーション
のためにディレクトリ内容の検査が可能になり、またプ
ロセッサが(純粋にハードウェアによって管理されるメ
モリとは対照的に)ソフトウェアを使用してメモリ内容
を管理するいくつかの設計も実現可能になり、そのため
圧縮メイン・メモリ・システムまたはフォールト・トレ
ラント・メモリ・システムの費用を削減することができ
る。
【0018】圧縮メイン・メモリ・システムで使用され
るような間接アドレス指定式メイン・メモリの場合につ
いて詳細な説明を行ったが、本発明は、間接アドレス指
定式メイン・メモリの他の適用例にも使用できることを
理解されたい。
【0019】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0020】(1)CPUを有し、メイン・メモリに含
まれる第1のディレクトリ構造を使用してアクセス可能
なメイン・メモリを実装しており、CPUが生成した実
メモリ・アドレスが、前記第1のディレクトリ構造を使
用して1つまたは複数の物理メモリ位置に変換されるコ
ンピュータ・システムにおいて、前記第1のディレクト
リ構造の内容にアクセスするためのシステムであって、
前記メイン・メモリに設けられた第2のディレクトリ構
造を含み、前記第2のディレクトリ構造が1つまたは複
数のエントリを含み、各エントリが前記第1のディレク
トリ構造内の所定数のエントリへのアドレス可能性を与
えるようにフォーマットされており、前記第2のディレ
クトリ構造が前記CPUの生成した実メモリ・アドレス
に応答するシステム。 (2)前記第1のディレクトリ構造が事前に割り振られ
た連続するメモリ区域を含み、前記第2のディレクトリ
構造の各エントリが前記第1のディレクトリ構造におけ
る連続する複数のエントリへのアドレス可能性を与え
る、上記(1)に記載のコンピュータ・システム。 (3)前記第1のディレクトリ構造のエントリが、当該
エントリ内に残っているデータの形式を指定する1つま
たは複数のフラグ・インジケータを含む、上記(1)に
記載のコンピュータ・システム。 (4)第1のフラグ・インジケータが、前記エントリ内
のデータが圧縮形式と非圧縮形式のどちらで格納されて
いるかを指定する、上記(3)に記載のコンピュータ・
システム。 (5)前記第1のフラグ・インジケータが、前記エント
リ内の前記データが圧縮形式で格納されていることを示
す場合、第2のフラグ・インジケータが、圧縮データが
前記エントリに完全に格納されているか否かを示す、上
記(4)に記載のコンピュータ・システム。 (6)前記第2のフラグ・インジケータが、圧縮データ
が前記エントリに完全には格納されていないことを示す
場合、第3のフラグ・インジケータが、残りの圧縮デー
タのサイズを示す、上記(5)に記載のコンピュータ・
システム。 (7)CPUを有し、メモリに含まれる第1のディレク
トリ構造を使用してアクセス可能なメモリを実装してお
り、CPUが生成した実メモリ・アドレスが、前記第1
のディレクトリ構造を使用して1つまたは複数の物理メ
モリ位置に変換されるコンピュータ・システムにおい
て、前記メモリの全体にアクセスするためのシステムで
あって、各々がメイン・メモリの所定のセグメントへの
アドレス可能性を提供するようにフォーマットされてい
る1つまたは複数のエントリを含む第2のディレクトリ
構造を含み、前記第2のディレクトリ構造が、前記第1
のディレクトリ構造を含む前記メモリのすべての内容へ
の直接アドレス可能性を提供するシステム。 (8)前記第2のディレクトリ構造が前記メモリの一部
であり、前記第2のディレクトリ構造の内容がシステム
のブート処理時にロードされる、上記(7)に記載のシ
ステム。 (9)前記第2のディレクトリ構造がROMに含まれ
る、上記(7)に記載のシステム。 (10)前記第1のディレクトリ構造のエントリが、残
りのディレクトリ・エントリの形式を指定する1つまた
は複数のフラグ・インジケータを含む、上記(7)に記
載のシステム。 (11)第1のフラグ・インジケータが、前記エントリ
内のデータが圧縮形式と非圧縮形式のどちらで格納され
ているかを指定する、上記(10)に記載のシステム。 (12)前記第1のフラグ・インジケータが、前記エン
トリ内の前記データが圧縮形式で格納されていることを
示す場合、第2のフラグ・インジケータが、圧縮データ
が前記エントリに完全に格納されているか否かを示す、
上記(11)に記載のシステム。 (13)前記第2のフラグ・インジケータが、圧縮デー
タが前記エントリに完全には格納されていないことを示
す場合、第3のフラグ・インジケータが、残りの圧縮デ
ータのサイズを示す、上記(12)に記載のシステム。 (14)前記第2のディレクトリ構造がハードウェア機
構によって実装され、前記ハードウェア機構が、アクセ
スされる前記メモリ内の連続するブロックに対応し且つ
所定の細分性を有するブロック・アドレス・フィールド
を含む、所定の基底アドレス・ディレクトリ・テンプレ
ートをロードされた読取り専用レジスタ装置と、前記C
PUから前記メモリをアドレスするためにメモリ・アド
レスを受け取る手段と、前記アドレスに前記所定の細分
性に応じた数を乗算する手段と、アドレスの乗算結果を
前記ディレクトリ・テンプレートのそれぞれのブロック
・アドレス・フィールドに加算するための、1つまたは
複数の加算器と、前記加算の連続する結果を受け取るた
めのメモリ出力レジスタとを含み、前記メモリ出力レジ
スタにより前記メモリ内のメモリ位置へのアドレスが可
能になる、上記(7)に記載のシステム。(15)前記
乗算手段がビット・シフト装置を含む、上記(14)に
記載のシステム。
【図面の簡単な説明】
【図1】圧縮メイン・メモリを実装する従来のコンピュ
ータ・システムを全体的に示す図である。
【図2】従来の圧縮メイン・メモリ・システム構造を示
す図である。
【図3】図2の圧縮メイン・メモリ・システム用のディ
レクトリ・エントリ形式の例を示す図である。
【図4】本発明の第1の実施形態による圧縮メイン・メ
モリ内容をアドレスするための装置を示す図である。
【図5】本発明の第2の実施形態による圧縮メイン・メ
モリ内容をアドレスするための装置を示す図である。
【図6】コンピュータ・システムの圧縮メイン・メモリ
内容にアクセスするためのハードウェア手法を示す図で
ある。
【符号の説明】
210 メモリ 220 ディレクトリ 230 ブロック 410 ディレクトリ(D2) 412 ディレクトリ・エントリ 414 アドレスA0 420 ディレクトリ・エントリ 430 アドレスA1〜A64
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ピーター・エイ・フラナシェク アメリカ合衆国10549 ニューヨーク州マ ウント・キスコ クロウ・ヒル・ロード 355 (72)発明者 ジョン・ティー・ロビンソン アメリカ合衆国10579 ニューヨーク州ヨ ークタウン・ハイツ ノース・ディアフィ ールド・アベニュー3314

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】CPUを有し、メイン・メモリに含まれる
    第1のディレクトリ構造を使用してアクセス可能なメイ
    ン・メモリを実装しており、CPUが生成した実メモリ
    ・アドレスが、前記第1のディレクトリ構造を使用して
    1つまたは複数の物理メモリ位置に変換されるコンピュ
    ータ・システムにおいて、前記第1のディレクトリ構造
    の内容にアクセスするためのシステムであって、前記メ
    イン・メモリに設けられた第2のディレクトリ構造を含
    み、前記第2のディレクトリ構造が1つまたは複数のエ
    ントリを含み、各エントリが前記第1のディレクトリ構
    造内の所定数のエントリへのアドレス可能性を与えるよ
    うにフォーマットされており、前記第2のディレクトリ
    構造が前記CPUの生成した実メモリ・アドレスに応答
    するシステム。
  2. 【請求項2】前記第1のディレクトリ構造が事前に割り
    振られた連続するメモリ区域を含み、前記第2のディレ
    クトリ構造の各エントリが前記第1のディレクトリ構造
    における連続する複数のエントリへのアドレス可能性を
    与える、請求項1に記載のコンピュータ・システム。
  3. 【請求項3】前記第1のディレクトリ構造のエントリ
    が、当該エントリ内に残っているデータの形式を指定す
    る1つまたは複数のフラグ・インジケータを含む、請求
    項1に記載のコンピュータ・システム。
  4. 【請求項4】第1のフラグ・インジケータが、前記エン
    トリ内のデータが圧縮形式と非圧縮形式のどちらで格納
    されているかを指定する、請求項3に記載のコンピュー
    タ・システム。
  5. 【請求項5】前記第1のフラグ・インジケータが、前記
    エントリ内の前記データが圧縮形式で格納されているこ
    とを示す場合、第2のフラグ・インジケータが、圧縮デ
    ータが前記エントリに完全に格納されているか否かを示
    す、請求項4に記載のコンピュータ・システム。
  6. 【請求項6】前記第2のフラグ・インジケータが、圧縮
    データが前記エントリに完全には格納されていないこと
    を示す場合、第3のフラグ・インジケータが、残りの圧
    縮データのサイズを示す、請求項5に記載のコンピュー
    タ・システム。
  7. 【請求項7】CPUを有し、メモリに含まれる第1のデ
    ィレクトリ構造を使用してアクセス可能なメモリを実装
    しており、CPUが生成した実メモリ・アドレスが、前
    記第1のディレクトリ構造を使用して1つまたは複数の
    物理メモリ位置に変換されるコンピュータ・システムに
    おいて、前記メモリの全体にアクセスするためのシステ
    ムであって、各々がメイン・メモリの所定のセグメント
    へのアドレス可能性を提供するようにフォーマットされ
    ている1つまたは複数のエントリを含む第2のディレク
    トリ構造を含み、前記第2のディレクトリ構造が、前記
    第1のディレクトリ構造を含む前記メモリのすべての内
    容への直接アドレス可能性を提供するシステム。
  8. 【請求項8】前記第2のディレクトリ構造が前記メモリ
    の一部であり、前記第2のディレクトリ構造の内容がシ
    ステムのブート処理時にロードされる、請求項7に記載
    のシステム。
  9. 【請求項9】前記第2のディレクトリ構造がROMに含
    まれる、請求項7に記載のシステム。
  10. 【請求項10】前記第1のディレクトリ構造のエントリ
    が、残りのディレクトリ・エントリの形式を指定する1
    つまたは複数のフラグ・インジケータを含む、請求項7
    に記載のシステム。
  11. 【請求項11】第1のフラグ・インジケータが、前記エ
    ントリ内のデータが圧縮形式と非圧縮形式のどちらで格
    納されているかを指定する、請求項10に記載のシステ
    ム。
  12. 【請求項12】前記第1のフラグ・インジケータが、前
    記エントリ内の前記データが圧縮形式で格納されている
    ことを示す場合、第2のフラグ・インジケータが、圧縮
    データが前記エントリに完全に格納されているか否かを
    示す、請求項11に記載のシステム。
  13. 【請求項13】前記第2のフラグ・インジケータが、圧
    縮データが前記エントリに完全には格納されていないこ
    とを示す場合、第3のフラグ・インジケータが、残りの
    圧縮データのサイズを示す、請求項12に記載のシステ
    ム。
  14. 【請求項14】前記第2のディレクトリ構造がハードウ
    ェア機構によって実装され、前記ハードウェア機構が、 アクセスされる前記メモリ内の連続するブロックに対応
    し且つ所定の細分性を有するブロック・アドレス・フィ
    ールドを含む、所定の基底アドレス・ディレクトリ・テ
    ンプレートをロードされた読取り専用レジスタ装置と、 前記CPUから前記メモリをアドレスするためにメモリ
    ・アドレスを受け取る手段と、 前記アドレスに前記所定の細分性に応じた数を乗算する
    手段と、 アドレスの乗算結果を前記ディレクトリ・テンプレート
    のそれぞれのブロック・アドレス・フィールドに加算す
    るための、1つまたは複数の加算器と、 前記加算の連続する結果を受け取るためのメモリ出力レ
    ジスタとを含み、 前記メモリ出力レジスタにより前記メモリ内のメモリ位
    置へのアドレスが可能になる、請求項7に記載のシステ
    ム。
  15. 【請求項15】前記乗算手段がビット・シフト装置を含
    む、請求項14に記載のシステム。
JP2000000285A 1999-01-12 2000-01-05 コンピュータ・システムにおいてディレクトリ構造を含むメイン・メモリの内容にアドレスするための方法および装置 Expired - Fee Related JP3439167B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/229057 1999-01-12
US09/229,057 US6341325B2 (en) 1999-01-12 1999-01-12 Method and apparatus for addressing main memory contents including a directory structure in a computer system

Publications (2)

Publication Number Publication Date
JP2000227874A true JP2000227874A (ja) 2000-08-15
JP3439167B2 JP3439167B2 (ja) 2003-08-25

Family

ID=22859684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000000285A Expired - Fee Related JP3439167B2 (ja) 1999-01-12 2000-01-05 コンピュータ・システムにおいてディレクトリ構造を含むメイン・メモリの内容にアドレスするための方法および装置

Country Status (3)

Country Link
US (1) US6341325B2 (ja)
JP (1) JP3439167B2 (ja)
CN (1) CN1237438C (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039769B2 (en) 2002-05-30 2006-05-02 International Business Machines Corporation Direct addressed shared compressed memory system
JP2017516232A (ja) * 2014-05-21 2017-06-15 クアルコム,インコーポレイテッド メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法
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
JP2022545997A (ja) * 2019-07-02 2022-11-02 マイクロソフト テクノロジー ライセンシング,エルエルシー ハードウェアベースのメモリ圧縮

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI991261L (fi) * 1999-06-02 2000-12-03 Nokia Networks Oy Trie-rakenteeseen perustuva funktionaalinen muisti
AU6776200A (en) 1999-08-17 2001-03-13 Conexant Systems, Inc. Integrated circuit with a core processor and a co-processor to provide traffic stream processing
US6862662B1 (en) * 2000-03-03 2005-03-01 Micron Technology, Inc. High density storage scheme for semiconductor memory
US6581131B2 (en) * 2001-01-09 2003-06-17 Hewlett-Packard Development Company, L.P. Method and apparatus for efficient cache mapping of compressed VLIW instructions
US6854033B2 (en) * 2001-06-29 2005-02-08 Intel Corporation Using linked list for caches with variable length data
US6640283B2 (en) * 2002-01-16 2003-10-28 Hewlett-Packard Development Company, L.P. Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size
US7958289B2 (en) 2002-08-08 2011-06-07 International Business Machines Corporation Method and system for storing memory compressed data onto memory compressed disks
US6956507B2 (en) * 2002-12-12 2005-10-18 International Business Machines Corporation Method and apparatus for morphing memory compressed machines
US7017024B2 (en) * 2002-12-12 2006-03-21 International Business Machines Corporation Data processing system having no system memory
US7143232B2 (en) * 2003-02-25 2006-11-28 International Business Machines Corporation Method, system, and program for maintaining a directory for data written to a storage medium
US7246132B2 (en) * 2004-05-13 2007-07-17 Destiny Technology Corporation Method of storing compressed data
US8612797B2 (en) * 2006-03-31 2013-12-17 Hewlett-Packard Development Company, L.P. Systems and methods of selectively managing errors in memory modules
GB2444746A (en) * 2006-12-15 2008-06-18 Symbian Software Ltd Allocating memory sectors for a data block by finding a contiguous area which starts with a sector with unused memory at least at much as the overlap
US7685399B2 (en) * 2007-01-07 2010-03-23 International Business Machines Corporation Method, system, and computer program products for data movement within processor storage
US20130179642A1 (en) * 2012-01-10 2013-07-11 Qualcomm Incorporated Non-Allocating Memory Access with Physical Address
US10565099B2 (en) * 2012-12-28 2020-02-18 Apple Inc. Methods and apparatus for compressed and compacted virtual memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5119291A (en) * 1987-03-26 1992-06-02 International Business Machines Corporation Modular data storage directories for large-capacity data storage units wherein the index to the records in a sector is located in the next adjacent sector
DE68919483T2 (de) * 1988-02-20 1995-04-06 Fujitsu Ltd Chipkarten.
US5371885A (en) * 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
US5729228A (en) 1995-07-06 1998-03-17 International Business Machines Corp. Parallel compression and decompression using a cooperative dictionary
US5864859A (en) 1996-02-20 1999-01-26 International Business Machines Corporation System and method of compression and decompression using store addressing
US6085201A (en) * 1996-06-28 2000-07-04 Intel Corporation Context-sensitive template engine
US5974471A (en) * 1996-07-19 1999-10-26 Advanced Micro Devices, Inc. Computer system having distributed compression and decompression logic for compressed data movement
US5761536A (en) 1996-08-21 1998-06-02 International Business Machines Corporation System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis
US6141767A (en) * 1998-04-03 2000-10-31 Sony Corporation Method of and apparatus for verifying reliability of contents within the configuration ROM of IEEE 1394-1995 devices

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039769B2 (en) 2002-05-30 2006-05-02 International Business Machines Corporation Direct addressed shared compressed memory system
JP2017516232A (ja) * 2014-05-21 2017-06-15 クアルコム,インコーポレイテッド メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法
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
US10838862B2 (en) 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
JP2022545997A (ja) * 2019-07-02 2022-11-02 マイクロソフト テクノロジー ライセンシング,エルエルシー ハードウェアベースのメモリ圧縮
JP7438246B2 (ja) 2019-07-02 2024-02-26 マイクロソフト テクノロジー ライセンシング,エルエルシー ハードウェアベースのメモリ圧縮
US12430061B2 (en) 2019-07-02 2025-09-30 Microsoft Technology Licensing, Llc Hardware-based memory compression

Also Published As

Publication number Publication date
US20010044880A1 (en) 2001-11-22
CN1260536A (zh) 2000-07-19
US6341325B2 (en) 2002-01-22
CN1237438C (zh) 2006-01-18
JP3439167B2 (ja) 2003-08-25

Similar Documents

Publication Publication Date Title
JP3439167B2 (ja) コンピュータ・システムにおいてディレクトリ構造を含むメイン・メモリの内容にアドレスするための方法および装置
US7512767B2 (en) Data compression method for supporting virtual memory management in a demand paging system
US6795897B2 (en) Selective memory controller access path for directory caching
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
JP3493409B2 (ja) コンピユータ装置
US6457104B1 (en) System and method for recycling stale memory content in compressed memory systems
US5586297A (en) Partial cache line write transactions in a computing system with a write back cache
US5864876A (en) DMA device with local page table
JP2635058B2 (ja) アドレス変換方式
JP6505132B2 (ja) メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法
US5003459A (en) Cache memory system
US6349372B1 (en) Virtual uncompressed cache for compressed main memory
US6401181B1 (en) Dynamic allocation of physical memory space
US5765201A (en) Changing page size in storage media of computer system
US4825412A (en) Lockout registers
US5809562A (en) Cache array select logic allowing cache array size to differ from physical page size
US20020073298A1 (en) System and method for managing compression and decompression of system memory in a computer system
US20030188110A1 (en) Method for performing compressed I/O with memory expansion technology
JPH0519177B2 (ja)
JPH04320553A (ja) アドレス変換機構
EP0777183A1 (en) Computer cache system
EP0543991A1 (en) Improving computer performance by simulated cache associativity
US7496730B2 (en) System and method for reducing the number of translation buffer invalidates an operating system needs to issue
JPH02150940A (ja) データ処理システム及びその制御方法
US6289431B1 (en) Method and apparatus for accessing more than 4 Gigabytes of physical memory with 4-byte table entries

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080613

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080613

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090613

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees