JPH06500656A - 拡張テーブルを使用するページングシステム - Google Patents

拡張テーブルを使用するページングシステム

Info

Publication number
JPH06500656A
JPH06500656A JP4503356A JP50335692A JPH06500656A JP H06500656 A JPH06500656 A JP H06500656A JP 4503356 A JP4503356 A JP 4503356A JP 50335692 A JP50335692 A JP 50335692A JP H06500656 A JPH06500656 A JP H06500656A
Authority
JP
Japan
Prior art keywords
index
comparison
bits
address
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
Application number
JP4503356A
Other languages
English (en)
Other versions
JP3115599B2 (ja
Inventor
カルダレイル,チャールズ・レイモンド
デュッダ,クラウス・グスタフ
ハンコック,ピーター・ジョン
Original Assignee
ユニシス・コーポレイション
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 ユニシス・コーポレイション filed Critical ユニシス・コーポレイション
Publication of JPH06500656A publication Critical patent/JPH06500656A/ja
Application granted granted Critical
Publication of JP3115599B2 publication Critical patent/JP3115599B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 拡張テーブルを使用するベージングシステムこの発明は、ハツシュ技術がデータ 処理システムにおいてメモリからデータを探索および検索するために使用される ときの衝突の解決法に関する。より特定的には、この発明はデータ処理システム において仮想アドレスを実アドレスに変換する間のページテーブルの衝突の解決 法に対して特に有用である。
先行技術の説明 情報を効果的に記憶、探索および検索する技術は近代のデータ処理システム、特 に大型メインフレームシステムにおいて非常に重要である。ハツシュは、通常、 各々のレコードがキ一部分とデータ部分とに分割されるデータベースにおいて、 レコードから情報を得るために利用される。キ一部分は、レコードを検索、変更 および保守機能のために利用する動作を管理するために使用される。既存のハツ シュ技術の説明は、テッド G、ルイス(Ted G、 Levis)およびカ ーティス R,クック(Curtis R,Cook)による「動的および静的 な内部テーブルのためのハツシュ(Mashing Ior D7nxmic  xnd Sla目c Internal Tables) Jと題された198 8年10月のIEEEの研究指導用シリーズ「コンピュータJ (Compl+ ter)の45−56頁に見られる。
キーフィールドを利用するレコードの設計は、1983年2月のrACMのコミ ュニケーションJ (Coma+unicaji。
ns o(the ACM ) 、第26巻第2号、の120−125頁のウィ リアム ケント(Willixm Kent)による[関係データベース理論に おける5つの正規形への簡単な手引き(ASimple Guide to F ive Notmal Forms in Re1ationxl Datab ase TheoB ) Jと題された論文に説明されている。この論文は、効 果的な更新を提供し、かつデータの不一致を防ぐために、レコードに含まれる情 報に関するキーの選択を洞察している。
ソフトウェアシステムがますます複雑になるにつれ、より多くの記憶に対する需 要が増大している。仮想記憶システムは、仮想アドレスの実アドレスへのマツピ ングのためおそらくすべての記憶空間をアドレス指定可能な主記憶であると見な すようなユーザーにとって、明白な方法で、この需要を満たすことができる。そ のようなシステムにおい 。
では、仮想記憶の大きさは、主記憶のロケーションの数によってではな(、コン ピュータシステムのアドレス指定方式および利用可能な補助記憶の量によって制 限される。仮想アドレスを、メモリへのアクセスに使用できる物理アドレスに変 換することは、仮想アドレス指定空間を「ページ」と呼ばれる固定した大きさの セグメントに分割することによって達成され、それらは、データベースにおける レコードのデータ部分に類似している。仮想アドレス空間はページに分割され、 ページテーブルエントリはページのうち現在生または実メモリにあるページを指 定するために使用される。これを達成するための古典的な方法は、仮想アドレス の一部分をインデックスとして選択することである。仮想アドレスの別の部分は 比較セグメントとして選択される。
そして仮想アドレスの残りのビットは、ページへのインページまたはオフセット アドレスとして役立つ。仮想アドレスの、比較部分とインデックスとを組合わせ たものは、データベースシステムにおけるレコードのキ一部分に類似している。
仮想空間の非常に多数のワードを実メモリにマツプするためには、ダイレクトペ ージテーブルは実行不可能な程大きいであろう。(たとえば、212ワードペー ジを使用する、仮想空間の254ワードは、実メモリの大きさにかかわらず、2 42エントリを有さなければならないであろう。)過去に行なわれた試みでは、 ページのうち実メモリにあるもののみにページテーブルエントリを付し、そのた めページテーブルエントリの数が妥当な数に制限される。依然として残る問題は 、所与の仮想アドレスに対してページテーブルエントリにどのようにアクセスす るかということである。これは、いくつかの最下位ビット(たとえば12)をペ ージのオフセットとして使用し、かつ次のN個の下位ビットをページテーブルの インデックスとすることによって達成されてきた。この方法が使われるとき、そ の動作は「ハツシュ」と呼ばれ、ページテーブルはまたハツシュテーブルと呼ば れる。ハツシュテーブルへのエントリは、そのすべてがNビットの同じ値を有す る多数のページテーブルエントリの連鎖を開始する。各々のエントリはそれが表 わす仮想アドレスの残りのビットを含み、Nの値はハードウェアおよびアルゴリ ズムを実行するために利用されるソフトウェアによって決定される。
このシステムの動作において、命令プロセッサはこれらのN個のビットによって 指定されるハツシュエントリに進み、その仮想アドレスがNビットの同じ値を含 むすべてのページの連鎖を位置付ける。それから命令プロセッサはあるページエ ントリから次へとその連鎖を進行し、各エントリで、一致が得られるまで、位置 付けられるべき仮想アドレスの比較部分をページテーブルエントリの記憶された 比較部分と比較する。一旦一致が得られると、実ページアドレスはエントリから 検索され、ページオフセットと連結され完全な実アドレスを形成する。命令プロ セッサが連鎖中に一致を見出さない(すなわち比較部分の値を含むエントリがな い)場合には、ページは実メモリにない。上述の連鎖技術を使用する先行技術の ページング変換方法は速度が遅くシステムの性能に有害な影響を与える。それに 加えて、連鎖の長さに依存してシステムの性能に望ましくないばらつきがあるか もしれない。
以下に続く図1に関する先行技術の技法のより詳細な説明はそのような先行技術 の技法に対してこの発明をより明白に規定しようとする意図で含まれたものであ る。ベージング技法はキーフィールドを使用することによって仮想メモリシステ ムにおいてメモリにアクセスするために利用されている。たとえば図1を参照す ると、そのようなシステムにおいて、仮想アドレス要求10および12は多くの 仮想アドレスを比較的小さい実アドレス空間にマツプするために使用されるかも しれない。これは、仮想アドレスを比較、インデックス(またはキー)およびオ フセットセグメントに分割することによって達成される。仮想アドレス10およ び12のインデックスまたはキ一部分14および16は、ページテーブル32に おいてメモリ位置を参照するために使用される。仮想アドレス10および12の 比較部分18および20は、その各々がページテーブルエントリの数に関連する であろう値を表わす。仮想アドレス10および12のページオフセット22およ び24は、ページの要求アドレスのオフセット位置を表わし、それは実アドレス 28を得るために適切な実ページアドレス36とともに利用されるかもしれない 。仮想アドレス10および12のインデックス部分14および16のみがページ テーブルエントリ34を選択するために利用されるため、説明されたタイプのペ ージングされた仮想メモリシステムにおけるユニーク(unique)でないイ ンデックス部分の間での衝突を解決するために補助技法が使用されなければなら ない。先に述べたそのような技術の1つは連鎖方法である。
先行技術の仮想メモリシステムがページテーブル32のようなテーブルを組込む とき、仮想アドレス10のインデックス14の値は、所望のページテーブルエン トリ34をページテーブル32に位置付けるために使用される。ページテーブル エントリ32は指定された実ページアドレス36と比較セグメント38とを含む 。第2の仮想アドレス12はまた第2のエントリを同じページテーブル32に位 置付けるために使用されることができ、そのインデックス値16は、比較セグメ ント18および20の値の間で衝突がなければ、インデックス値14と同じであ るかもしれない。
図1は、インデックス14およびインデックス16の両方が同じページテーブル エントリ34を指す先行技術の具体例を示している。ユニークでないインデック ス値に出会う可能性があるため、ページテーブルエントリ34の比較部分38を 見ること、およびこれを仮想アドレス10および12の比較部分18および20 とそれぞれ比較することが必要である。図1はこの比較が同時に起こることを示 しているが、比較セグメント18と比較セグメント38との比較を、比較セグメ ント20と比較セグメント38との比較の後に、または先に行なうシーケンシャ ルな比較も、先行技術の実施例と矛盾するものではない。この比較はハードウェ アのコンパレータを使用してまたはソフトウェアのアルゴリズムによって達成さ れてもよく、それはどちらも現在当業者に既知である様々な方法で達成されるだ ろう。この説明においては、比較セグメント18と比較セグメント38との間で 比較一致が起こるが、比較セグメント20と比較セグメント38との間では一致 は起こらないと仮定する。
仮想アドレス10の比較セグメント18とページテーブルエントリ34の比較セ グメント38との値は、ライン42およびライン43.44によって表わされる ように、比較装置またはステップ40に連結される。ハードウェアの実現例にお いて、これらのラインの各々は信号伝達データラインを表わす。ソフトウェアの 実現例においては、それらはプログラムデータフローを表わす。これにより、比 較装置またはステップ40によって行なわれる比較検査は、ライン46および4 8上の一致を示しそれらはそれぞれ能動化用ゲートまたはステップ50および5 2に連結されてそれらを能動化する。それはハードウェアで実現してもよいまた はソフトウェアで実現して達成されてもよい。
比較セグメント18および38が等しければ、ライン49および51によって示 されるように、能動化用ゲート50は仮想アドレス10のオフセットセグメント 22を連結し、最下位ビットまたは実アドレス28のオフセット26として役立 つようにする。同様に、ページテーブルエントリ34の実ページアドレス36は 、ライン54および56によって表わされるようにゲート52を介して連結され 、実アドレス28の最上位ビット部分30として役立つ。実ページアドレス30 はオフセット部分26と組合わされ、トータル実アドレス28を形成する。
実行がハードウェアによって達成されるかまたはソフトウェアによるかに従って その場合次第で、比較装置またはステップ58は仮想アドレス12の比較セグメ ント20とページテーブルエントリ34の比較セグメント38との比較を表わす 。比較セグメント20と比較セグメント38との値はライン60およびライン4 3.45によって表わされるように、そのような比較のために比較装置またはス テップ58に連結される。ライン60.43および45は、ライン42.43お よび45と同様に、ハードウェアまたはソフトウェアの実行が行なわれたかどう かに従ってデータラインかまたはプログラムデータフローを表わすだろう。
図示された実施例においては、インデックス14およびインデックス16は等し く、比較セグメント18および20の値は等しくないと仮定する。ページテーブ ルが所与のインデックス値を有するページテーブルエントリを1つしか含むこと ができないため、ページテーブルエントリ34は仮想アドレス10のみに対応し 、仮想アドレス12には対応しない。このため、比較装置またはステップ58は 仮想アドレス12に対する比較がないことを示し、大量メモリアクセス66への ライン64上の出力によって示されているように、仮想アドレス12が主記憶に ないためその内容を大容量記憶から得ることが必要であろう。図示された実施例 において比較セグメント20は比較セグメント38と一致しないと仮定している ため、ライン70によって示されているようにバックアップ記憶に所望の位置に 記憶されたデータを供給するために使用されるよう、ライン68によって示され ているように、完全な仮想アドレス12は能動大量メモリアクセス66に供給さ れる。
すなわち、図1は仮想アドレス10および12の両方が主記憶に存在する場合の 衝突を図示しているのではない。
仮想アドレスの両方が主記憶に存在すれば、曖昧さを解決するために衝突メカニ ズムが必要とされなければならない。
先に述べたように、これは典型的にはページテーブルエントリの拡張された連鎖 を探索することによって達成され、その各々は、所望の実アドレスの位置を見付 けることによってか、または仮想アドレスが主メモリにないことを示す「ページ フォルト」を与えることによって探索が終了するまで、連鎖の別の要素を指す。
この発明は、非衝突の場合を不利にすることなく、予測可能な数のメモリ参照で 探索を行なうことによって、より効果的な方法でページフォルトを判断できかつ ページングの衝突を解決することができる代替の衝突解決メカニズムに関する。
発明の概要 この発明は、ページアドレスの衝突が検出されるとダイナミックに拡大または収 縮されるページテーブルを利用する階層ルックアップメカニズムを使用すること によって、ページテーブルの衝突があるとき、メモリのページを規定する対応の ページテーブルエントリの位置決めが加速される、コンピュータの仮想アドレス の実アドレスへの変換に関する。また、衝突解決技法をデータベースからデータ ベース対象を選択するために使用してもよい。
図面の簡単な説明 この発明は、以下の図面を参照することによって示される。
図1は、衝突の解決法を示すのではないがここに記載された先行技術の連鎖衝突 の解決技法とともに使用されてもよい、仮想アドレスから実アドレスへの変換シ ステムのブロック図である。
図2は、図2を提供するために必要な図2aと図2bとの位置を示すマツプであ る。
図2aおよび図2bは、この発明に従った、仮想アドレスの実アドレスへの変換 時またはレコードをデータベース記憶システムに配置する際に生じ得る衝突の解 決法を示すブロック図である。
発明の詳細な説明 発明の仮想メモリの実施例 この発明は、仮想メモリページングシステムにおける、またはハツシュ技法を使 用するデータベースシステムのための、衝突解決法を得る方法を提供する。この 発明は、それが使用される各々の特定の機械でこの発明の使用を最適化するため に、好ましくは当業者に既知の方法でハードウェアおよびソフトウェアのトレー ドオフを使用して実行される。
この発明の仮想メモリアドレス指定の実施例は図2aおよび図2bに示されてお り、図1と図2aと図2bとの要素の間に類似性がある範囲では、図1を説明す るために使用した同じ要素の表示が図2aおよび図2bを示すために利用されて いる。この発明はいかなる数の衝突レベルに対しても利用されるであろうが、図 2aおよび図2bにおいては、2つのレベルのインデックス衝突があると仮定し ている。
図2aおよび図2bに示された発明の実施例においては、2つの仮想アドレス1 0と12があり、それらはインデックス部分14と16、比較部分18と20お よびオフセット部分22と24を有する。インデックス部分14および16は比 較部分18および20と重なるように示されており、それはいくつかのビットが 比較およびインデックス部分の両方の一部分を形成するかもしれないことを意味 しているが、またはそれらは隣接していて重なっていなくてもよい。サブインデ ックスセクション15および17もまた図2aおよび図2bに示されており、そ れらはインデックス14と16との間にインデックス衝突がある場合に使用する ために、予め選択されたビットを比較部分18および20からそれぞれ借りるこ とによってダイナミックに選択されるだろう。インデックス15と17との間に さらに衝突がある場合には、ダイナミックに選択されるだろうインデックス部分 19および21はここに記載する方法でこの発明の実行をさらに拡大するために 使用できる。
図1のように、図2にはページテーブルAとして示される第1のページテーブル 32がある。要求される仮想アドレスのインデックス部分14および16の衝突 がないか、または仮想アドレスのうちの1つが主メモリにないとき、システムは 図1に関して説明したように動作する。しかしながら、インデックス14とイン デックス16との間に衝突があるとき、第1の付加的なページテーブル82(拡 張B)が使用される。拡張されたインデックス15とインデックス17との間に なお衝突が存在するとき、第2の付加的なページテーブル92(拡張C)が発生 される。先の先行技術の説明におけるのと同じように、インデックス14および インデックス16はともに同じページテーブルエントリ34を指すと仮定する。
しかしながら、この発明においてページテーブル32レベルでの衝突時に、イン デックス14および16によって指されるテーブル32の拡張値84それ自身が ライン86によって示されるように拡張Bページテーブル82を指す。これによ り、ページテーブルエントリ34は、衝突が発生するとき、使用可能な比較セグ メントを含まない。その代わりに、拡張84がページテーブル82を指すために 使用され、それはページテーブルの衝突を解決する必要による要求に応じてダイ ナミックに作り出されるまたは破壊されるだろう。これは、ライン85および8 6によって示されるように、ページテーブルエントリ34の拡張値84が第2の ページテーブル82を指すために使用できるようにする能動化用ゲート91に、 ライン90によって示されるように連結される、拡張フラグ88を使用すること によって達成される。
インデックス14と16との間にこの第1の衝突が発生するので、衝突を解決す るために付加的なインデックス部分15および17が必要とされる。これらの付 加的なビットは、インデックス部分14および16の最上位ビットにそれぞれ隣 接する比較部分18および20のいくつかのビットを利用することによって与え られる。
図示された図2aおよび図2bにおいて、第1の組の発生されたインデックス1 5および17はまた同一であり、かつライン94および96によって示されるよ うにページテーブル82において同じページテーブルエントリ98を選択する。
したがって、インデックス部分15および17におけるビットの数がインデック ス部分14および16におけるビットよりもおそらく少ないため、テーブル82 およびテーブル92のような連続するテーブルはテーブル32よりも小さいだろ う。ページテーブルエントリ98は、ライン102によって示されるように、拡 張フラグ100を能動化用ゲート104に与え、それは、ライン106によって 示されるようにページテーブルエントリ98の拡張値108が使用されるべきで あることを合図する。ライン110によって示されるように、拡張値108は拡 張Cページテーブル92へのポインタとして供給され、それは当業者に既知の技 法による必要に応じてダイナミックに作り出され破壊されるであろう。
このレベルの既存の衝突のため、サブインデックスセクション15および17の 最上位ビットに隣接するいくつかのビットを利用することによって、インデック ス19および21が次に発生される。もちろん、発生されるかもしれないページ テーブル拡張の数は、インデックス部分14および16に見られるビットよりも 上位の仮想アドレスのビットの総数によって結果的に制限される。
図2aおよび図2bの発明の図示された例において、次のグループの拡張インデ ックス19および21は、ページテーブル拡張92の異なるページテーブルエン トリ116および118を指すライン112および114によって示されるよう にもはや同じページテーブルエントリを指さないと仮定する。このためページテ ーブル比較フラグ120がセットされ、これはライン122によって示されるよ うに能動化ゲート124に与えられて、ライン126によって示されるようにペ ージテーブルエントリ116の比較値128がライン140を介して比較装置ま たはステップ40に供給されることを可能にする。同様の方法で、ライン132 によって示されるように比較フラグ130は能動化用ゲート134に供給され、 かつライン136によって示されるようにそれはページテーブルエントリ118 の比較値138が、ライン142を介して比較装置またはステップ58に供給さ れることを可能にする。ライン126および136は、ライン140および14 2によって示されるように、比較値128および138からそれぞれの比較装置 またはステップ40および58への転送の開始を表わす。
比較は、比較装置またはステップ40で仮想アドレス10の比較値18とページ テーブルエントリ116の対応の比較値128とについて行なわれる。比較値2 0はまた、比較装置またはステップ58でページテーブルエントリ118の比較 値138と比較される。ページテーブル92が今両方の比較値のためのエントリ を含むため、比較装置またはステップ40は、ライン48によって示されるよう に能動化用ゲート143にページテーブルエントリ116から実ページアドレス 値144を供給するであろう。この値はそれからライン148によって示される ように、実アドレス152の最上位ビットの実ページアドレス部分150を形成 するために供給される。実アドレス152のオフセット値154は、ライン15 6および159によって示されるようにオフセット部分22、およびライン48 によって示されるように比較装置またはステップ40によって能動化される能動 化用ゲート158から与えられる。それによってオフセット部分22は、実アド レス152のオフセット値154を与えるために直接供給される。同様の方法で 、ページテーブルエントリ118は、ページテーブルエントリ118の実ページ アドレスセグメント166が、ライン168および]、 72によって示される ように、能動化用ゲート170を介して供給されるようにし、このゲートは、ラ イン174によって示されるように比較装置またはステップ58からの一致表示 によって能動化される。これにより、ライン178および184によって示され るように実アドレス162のオフセット176は、仮想アドレス12のオフセッ ト部分24から、ライン174によって示されるように比較装置またはステップ 58によって能動化される能動化用ゲート180を介して与えられる。
比較テーブルエントリ116および1−18のそれぞれの比較値128および1 38のどちらかがそれぞれ対応する比較セグメント18および20と一致しなけ れば、その特定の仮想アドレスに対して、要求された実アドレスは主メモリにな く、かつデータは大量メモリバックアップ記憶から得なければならない。
この発明のデータベースハツシュの適合データベースの探索の間に生じる衝突は この発明をこの実施例に適合することによって解決されるだろう。図2aおよび 図2bの説明に関する上述の概念はまたここにも当てはまる。この実施例の実行 は図示的な目的のためにある特定のタイプのレコードを仮定することによって説 明される。ウィリアム ケント(Wi I l目tn Kenj)による上述の 論文に記録されたものを含むがしかしながらそれらに制限されない他の形式のデ ータベースレコードが当業者に明確な方法で代用されてもよい。以下の例は簡潔 な方法でこの発明を説明することを意図したものであり、当業者に明らかである ためデータベース設計技法の説明を意図するものではない。仮想メモリアドレス 指定の実施例の説明されたシステムの実行はまたこの実施例に適用可能である。
例示として、データベースは生徒の名前および様々な科目におけるクラスでのラ ンクから成り、かつ他の記憶情報におけるクラスランキングを基にしてクラス内 成績順位を与える。この特定のタイプのレコードは以下のものを等しいと定義す ることによってこの発明に直接置き換えることができるだろう。
比較部分 生徒の名前 インデックス部分 科目 オフセット部分 クラスでのランク 実アドレス 生徒についての記憶情報 この例において、比較およびインデックス部分は重なるのではなく隣接すると仮 定する。
類似した用語のデータベースレコードは、以下の2つのレコードを参照すること によってわかるとおり、図2aおよび図2bの仮想アドレス選択方式に直接関係 するかもしれない。
BROWN ENGLISH16 GREEN ENGLISH21 ENGL I SHを指定するレコードの部分が図2aおよび図2bの実行にお いてインデックスとして使用されれば、第1のレベルで衝突が発生しかつ拡張テ ーブル82が発生されなければならないことがわかる。ワードENGL I S Hのデジタル値は、テーブル82を指す拡張部分84を含むであろうテーブルエ ントリ34を選択するかもしれない。
今、生徒の名前BROWNおよびGREENの最後の文字が拡張または補足イン デックス値として使用されるようにインデックスが拡張されるかもしれないと仮 定してみよう。この場合、第2の衝突が発生し、衝突を解決するためにページテ ーブル92を使用することが必要である。たとえばBROWNのrWJおよびG REENのrEJのような次の文字の組を使用することは、このレベルでの非衝 突インデックスをもたらす。このことが発生すると、比較セグメントrBROW NJおよびrGREENJは、各々の生徒に関連した異なる記憶データベース値 にアクセスするために使用されるだろう。
データベースからの最後の結果はそれから、各々の生徒について戻された、かつ 仮想アドレスシステムの実ページアドレス値144および166に類似する独自 の記憶された値と組合わせてオフセットまたは生徒のクラスおよびランクを利用 して、クラスでのランクを各々の生徒に関する他の記憶情報と組合わせる値を形 成するだろう。
上述の発明は、添付の請求の範囲の意図および範囲から外れることなく、当業者 に明らかであろう多くの変更および実行に組込まれるであろうことが理解される はずである。
特に、この発明はメモリページを使用するシステムに関して説明されたが一方で 、それは当業者に周知の技法によってセグメント化、セグメント化の組合わせお よびページングまたは他の認識されたメモリ割当方式を使用するかもしれない、 他のメモリ構成に応用可能であろう。
補正嘗の写しく翻訳文)提出書(特許法第184条の8)平成 5年 6月16 日 1、国際出願番号 PCT/US91109460 2、発明の名称 拡張テーブルを使用するページングシステム 、3、特許出願人 住所 アメリカ合衆国、19424 ペンシルバニア州、ブルー・ベル、ビイ・ オウ・ボックス・500、タウンシップ・ライン中アンド・ユニオン・ミーティ ング・ローズ (番地なし)名 称 ユニシス・コーポレイション 代表者 アンダーソン、ロナルド・シイ国 籍 アメリカ合衆国 4、代理人 住 所 大阪市北区南森町2丁目1番29号 住友銀行南森町ビル1992年1 1月30日 6、添付書類の目録 補正書の写しく翻訳文) 1通 拡張テーブルを使用するベージングシステムこの発明は、ハツシュ技術がデータ 処理システムにおいてメモリからデータを探索および検索するために使用される ときの衝突の解決法に関する。より特定的には、この発明はデータ処理システム において仮想アドレスを実アドレスに変換する間のページテーブルの衝突の解決 法に対して特に有用である。
先行技術の説明 情報を効果的に記憶、探索および検索する技術は近代のデータ処理システム、特 に大型メインフレームシステムにおいて非常に重要である。ハツシュは、通常、 各々のレコードがキ一部分とデータ部分とに分割されるデータベースにおいて、 レコードから情報を得るために利用される。キ一部分は、レコードを検索、変更 および保守機能のために利用する動作を管理するために使用される。既存のハツ シュ技術の説明は、テッド G、ルイス(Ted G、 Lewis)およびカ ーティス R,クック(Curjis R,Cook) ニよる[動的および静 的な内部テーブルのためのハツシュ(Hashing for D7namic  and 5tatic Internal Tables) Jと題された1 988年10月のIEEEの研究指導用シリーズ「コンピュータJ (Co町σ fer)の45−56頁に見られる。
キーフィールドを利用するレコードの設計は、1983年2月のrACMのコミ ュニケーションJ (Commanic[i。
ns oI!be ACM ) 、箪26巻第2号、の120−125頁のウィ リアム ケント(Willigm Kent)による[関係データベース理論に おける5つの正規形への簡単な手引き(^Simple Guide to F ive Notmal Forms in Re1xtionxl Datab xse Theory ) Jと題された論文に説明されている。この論文は、 効果的な更新を提供し、かつデータの不一致を防ぐために、レコードに含まれる 情報に関するキーの選択を洞察している。
ニューヨーク(米国)の1979年9月の「データベースシステムについてのA CM論文集J (ACM Tr*n5xctionson Ds[1base  S7sS75teの第4巻第3号の315−344頁にあるロナルド ファーシ ン(Ronald FBin)他による「拡張可能なハラシュー−動的ファイル のための速いアクセス方法(Extendable Hashing−A Fs sj^ccess Method 1or D7namic Files) J と題された論文は、ページメモリ内でのハツシュを説明した。ファーシン(Fx gin )他において、均整の取れた3つの構造を得る試みがなされる。図8゜ ているとは限らないリーフテーブルとしてのディレクトリテーブルを示している 。リーフページがオーバフローすると、ディレクトリの大きさは変化し、かつデ ィレクトリポインタのリーフページとの関係は変る。
ファーシン(pain )他のシステムは、探索木を「一様に(flat) J 維持するように設計される。それは最上位ビットで始まり、各々のノードが多数 の枝を有することを可能にする。木は、その次の最下位ビットによって指定され る多数のノードを有するかもしれない多数のノードの第1の層の最下位ビットを 拡張することによって一様に維持される。多数の前のテーブルは、単一の拡張テ ーブルに拡張するかもしれない。発生されるであろう固有の衝突を処理するため に、ファーシン(Fxgtn )他の論文のシステムを使用するときにいくつか のタイプの衝突の解決法が、必要となるであろう。
米国ワシントンのIEEE COMP SOC,1985年12月16日の、「 超伝導システムについての第1回国際会議の議事録J (Proceeding s of the First Internslioaal Contere nce on SvpercondacHng S7sS75jeの697−7 05頁にある、シュリーカント S、サッカー(Sh+eekanl S、 T hakkar)による「並列ハツシュハードウェアを使用する仮想アドレス変換 (Viinil Address Translxjion tlsing P xrallel Hxshing Ha+dvue ) Jと題された論文は、 並列ハツシュハードウェアを説明している。その論文の中には、キーおよびアク セスキーを与えるためにコンパレータが使用されるかもしれないことが開示され ている。その論文はまた、ハツシュ機能の一般的な議論を含み、初期ハツシュア ドレスは仮想ページをキーとして使用して発生されることができるということを 教示している。
ソフトウェアシステムがますます複雑になるにつれ、より多くの記憶に対する需 要が増大している。仮想記憶システムは、仮想アドレスの実アドレスへのマツピ ングのためおそらくすべての記憶空間をアドレス指定可能な主記憶であると見な すようなユーザーにとって、明白な方法で、この需要を満たすことができる。そ のようなシステムにおいては、仮想記憶の大きさは、主記憶のロケーションの数 によってではなく、コンピュータシステムのアドレス指定方式および利用可能な 補助記憶の量によって制限される。仮想アドレスを、メモリへのアクセスに使用 できる物理アドレスに変換することは、仮想アドレス指定空間を「ページ」と呼 ばれる固定した大きさのセグメントに分割することによって達成され、それらは 、データベースにおけるレコードのデータ部分に類似している。仮想アドレス空 間はページに分割され、ページテーブルエントリはページのうち現在主または実 メモリにあるページを指定するために使用される。これを達成するための古典的 な方法は、仮想アドレスの一部分をインデックスとして選択することである。仮 想アドレスの別の部分は比較セグメントとして選択される。
そして仮想アドレスの残りのビットは、ページへのインページまたはオフセット アドレスとして役立つ。仮想アドレスの、比較部分とインデックスとを組合わせ たものは、データベースシステムにおけるレコードのキ一部分に類似している。
仮想空間の非常に多数のワードを実メモリにマツプするためには、ダイレクトペ ージテーブルは実行不可能な程大きいであろう。(たとえば、212ワードペー ジを使用する、仮想空間の254ワードは、実メモリの大きさにかかわらず、2 42エントリを有さなければならないであろう。)過去に行なわれた試みでは、 ページのうち実メモリにあるもののみにページテーブルエントリを付し、そのた めページテーブルエントリの数が妥当な数に制限される。依然として残る問題は 、所与の仮想アドレスに対してページテーブルエントリにどのようにアクセスす るかということである。これは、いくつかの最下位ビット(たとえば12)をペ ージのオフセットとして使用し、かつ次のN個の下位ビットをページテーブルの インデックスとすることによって達成されてきた。この方法が使われるとき、そ の動作は「ハツシュ」と呼ばれ、ページテーブルはまたハツシュテーブルと呼ば れる。ハツシュテーブルへのエントリは、そのすべてがNビットの同じ値を有す る多数のページテーブルエントリの連鎖を開始する。各々のエントリはそれが表 わす仮想アドレスの残りのビットを含み、Nの値はハードウェアおよびアルゴリ ズムを実行するために利用されるソフトウェアによって決定される。
このシステムの動作において、命令プロセッサはこれらのN個のビットによって 指定されるハツシュエントリに進み、その仮想アドレスがNビットの同じ値を含 むすべてのページの連鎖を位置付ける。それから命令プロセッサはあるページエ ントリから次へとその連鎖を進行し、各エントリで、一致が得られるまで、位置 付けられるべき仮想アドレスの比較部分をページテーブルエントリの記憶された 比較部分と比較する。一旦一致が得られると、実ページアドレスはエントリから 検索され、ページオフセットと連結され完全な実アドレスを形成する。命令プロ セッサが連鎖中に一致を見出さない(すなわち比較部分の値を含むエントリがな い)場合には、ページは実メモリにない。上述の連鎖技術を使用する先行技術の ベージング変換方法は速度が遅くシステムの性能に有害な影響を与える。それに 加えて、連鎖の長さに依存してシステムの性能に望ましくないばらつきがあるか もしれない。
以下に続く図1に関する先行技術の技法のより詳細な説明はそのような先行技術 の技法に対してこの発明をより明白に規定しようとする意図で含まれたものであ る。ベージング技法はキーフィールドを使用することによって仮想メモリシステ ムにおいてメモリにアクセスするために利用されている。たとえば図1を参照す ると、そのようなシステムにおいて、仮想アドレス要求10および12は多くの 仮想アドレスを比較的小さい実アドレス空間にマツプするために使用されるかも しれない。これは、仮想アドレスを比較、インデックス(またはキー)およびオ フセットセグメントに分割することによって達成される。仮想アドレス10およ び12のインデックスまたはキ一部分14および16は、ページテーブル32に おいてメモリ位置を参照するために使用される。仮想アドレス10および12の 比較部分18および20は、その各々がページテーブルエントリの数に関連する であろう値を表わす。仮想アドレス10および12のページオフセット22およ び24は、ページの要求アドレスのオフセット位置を表わし、それは実アドレス 28を得るために適切な実ページアドレス36とともに利用されるかもしれない 。仮想アドレス10および12のインデックス部分14および16のみがページ テーブルエントリ34を選択するために利用されるため、説明されたタイプのベ ージングされた仮想メモリシステムにおけるユニーク(unique)でないイ ンデックス部分の間での衝突を解決するために補助技法が使用されなければなら ない。先に述べたそのような技術の1つは連鎖方法である。
先行技術の仮想メモリシステムがページテーブル32のようなテーブルを組込む とき、仮想アドレス10のインデックス14の値は、所望のページテーブルエン トリ34をページテーブル32に位置付けるために使用される。ページテーブル エントリ32は指定された実ページアドレス36と比較セグメント38とを含む 。第2の仮想アドレス12はまた第2のエントリを同じページテーブル32に位 置付けるために使用されることができ、そのインデックス値16は、比較セグメ ント18および20の値の間で衝突がなければ、インデックス値14と同じであ るかもしれない。
図1は、インデックス14およびインデックス16の両方が同じページテーブル エントリ34を指す先行技術の具体例を示している。ユニークでないインデック ス値に出会う可能性があるため、ページテーブルエントリ34の比較部分38を 見ること、およびこれを仮想アドレス10および12の比較部分18および20 とそれぞれ比較することが必要である。図1はこの比較が同時に起こることを示 しているが、比較セグメント18と比較セグメント38との比較を、比較セグメ ント20と比較セグメント38との比較の後に、または先に行なうシーケンシャ ルな比較も、先行技術の実施例と矛盾するものではない。この比較は/%−ドウ エアのコンパレータを使用してまたはソフトウェアのアルゴリズムによって達成 されてもよく、それはどちらも現在当業者に既知である様々な方法で達成される だろう。この説明においては、比較セグメント18と比較セグメント38との間 で比較一致が起こるが、比較セグメント20と比較セグメント38との間では一 致は起こらないと仮定する。
仮想アドレス10の比較セグメント18とページテーブルエントリ34の比較セ グメント38との値は、ライン42およびライン43.44によって表わされる ように、比較装置またはステップ40に連結される。ハードウェアの実現例にお いて、これらのラインの各々は信号伝達データラインを表わす。ソフトウェアの 実現例においては、それらはプログラムデータフローを表わす。これにより、比 較装置またはステップ40によって行なわれる比較検査は、ライン46および4 8上の一致を示しそれらはそれぞれ能動化用ゲートまたはステップ50および5 2に連結されてそれらを能動化する。それはハードウェアで実現してもよいまた はソフトウェアで実現して達成されてもよい。
比較セグメント18および38が等しければ、ライン49および51によって示 されるように、能動化用ゲート50は仮想アドレス10のオフセットセグメント 22を連結し、最下位ビットまたは実アドレス28のオフセット26として役立 つようにする。同様に、ページテーブルエントリ34の実ページアドレス36は 、ライン54および56によって表わされるようにゲート52を介して連結され 、実アドレス28の最上位ビット部分30として役立つ。実ページアドレス30 はオフセット部分26と組合わされ、トータル実アドレス28を形成する。
実行がハードウェアによって達成されるかまたはソフトウェアによるかに従って その場合次第で、比較装置またはステップ58は仮想アドレス12の比較セグメ ント20とページテーブルエントリ34の比較セグメント38との比較を表わす 。比較セグメント20と比較セグメント38との値はライン60およびライン4 3.45によって表わされるように、そのような比較のために比較装置またはス テップ58に連結される。ライン60.43および45は、ライン42.43お よび45と同様に、ハードウェアまたはソフトウェアの実行が行なわれたかどう かに従ってデータラインかまたはプログラムデータフローを表わすだろう。
図示された実施例においては、インデックス14およびインデックス16は等し く、比較セグメント18および20の値は等しくないと仮定する。ページテーブ ルが所与のインデックス値を有するページテーブルエントリを1つしか含むこと ができないため、ページテーブルエントリ34は仮想アドレス10のみに対応し 、仮想アドレス12には対応しない。このため、比較装置またはステップ58は 仮想アドレス12に対する比較がないことを示し、大量メモリアクセス66への ライン64上の出力によって示されているように、仮想アドレス12が主記憶に ないためその内容を大容量記憶から得ることが必要であろう。図示された実施例 において比較セグメント20は比較セグメント38と一致しないと仮定している ため、ライン70によって示されているようにバックアップ記憶に所望の位置に 記憶されたデータを供給するために使用されるよう、ライン68によって示され ているように、完全な仮想アドレス12は能動大量メモリアクセス66に供給さ れる。
すなわち、図1は仮想アドレス10および12の両方が主記憶に存在する場合の 衝突を図示しているのではない。
仮想アドレスの両方が主記憶に存在すれば、曖昧さを解決するために衝突メカニ ズムが必要とされなければならない。
先に述べたように、これは典型的にはページテーブルエントリの拡張された連鎖 を探索することによって達成され、その各々は、所望の実アドレスの位置を見付 けることによってか、または仮想アドレスが主メモリにないことを示す「ページ フォルト」を与えることによって探索が終了するまで、連鎖の別の要素を指す。
この発明は、非衝突の場合を不利にすることな(、予測可能な数のメモリ参照で 探索を行なうことによって、より効果的な方法でページフォルトを判断できかつ ページングの衝突を解決することができる代替の衝突解決メカニズムに関する。
発明の概要 この発明は、ページアドレスの衝突が検出されるとダイナミックに拡大または収 縮されるページテーブルを利用する階層ルックアップメカニズムを使用すること によって、ページテーブルの衝突があるとき、メモリのページを規定する対応の ページテーブルエントリの位置決めが加速される、コンピュータの仮想アドレス の実アドレスへの変換に関する。また、衝突解決技法をデータベースからデータ ベース対象を選択するために使用してもよい。
図面の簡単な説明 この発明は、以下の図面を参照することによって示される。
図1は、衝突の解決法を示すのではないがここに記載された先行技術の連鎖衝突 の解決技法とともに使用されてもよい、仮想アドレスから実アドレスへの変換シ ステムのブロック図である。
図2は、図2を提供するために必要な図2aと図2bとの位置を示すマツプであ る。
fM2aおよび図2bは、この発明に従った、仮想アドレスの実アドレスへの変 換時またはレコードをデータベース記憶システムに配置する際に生じ得る衝突の 解決法を示すブロック図である。
この発明は、仮想メモリページングシステムにおける、またはハツシュ技法を使 用するデータベースシステムのための、衝突解決法を得る方法を提供する。この 発明は、それが使用される各々の特定の機械でこの発明の使用を最適化するため に、好ましくは当業者に既知の方法でハードウェアおよびソフトウェアのトレー ドオフを使用して実行される。
この発明の仮想メモリアドレス指定の実施例は図2aおよび図2bに示されてお り、図1と図2aと図2bとの要素の間に類似性がある範囲では、図1を説明す るために使用した同じ要素の表示が図2aおよび図2bを示すために利用されて いる。この発明はいかなる数の衝突レベルに対しても利用されるであろうが、図 2aおよび図2bにおいては、2つのレベルのインデックス衝突があると仮定し ている。
図2aおよび図2bに示された発明の実施例においては、2つの仮想アドレス1 0と12があり、それらはインデックス部分14と16、比較部分18と20お よびオフセット部分22と24を有する。インデックス部分14および16は比 較部分18および20と重なるように示されており、それはいくつかのビットが 比較およびインデックス部分の両方の一部分を形成するかもしれないことを意味 しているが、またはそれらは隣接していて重なっていなくてもよい。サブインデ ックスセクション15および17もまた図28および図2bに示されており、そ れらはインデックス14と16との間にインデックス衝突がある場合に使用する ために、予め選択されたビットを比較部分18および20からそれぞれ借りるこ とによってダイナミックに選択されるだろう。インデックス15と17との間に さらに衝突がある場合には、ダイナミックに選択されるだろうインデックス部分 19および21はここに記載する方法でこの発明の実行をさらに拡大するために 使用できる。
TI!J1のように、Il!J2にはページテーブルAとして示される第1のペ ージテーブル32がある。要求される仮想アドレスのインデックス部分14およ び16の衝突がないか、または仮想アドレスのうちの1つが主メモリにないとき 、システムは図1に関して説明したように動作する。しかしながら、インデック ス14とインデックス16との間に衝突があるとき、第1の付加的なページテー ブル82(拡張B)が使用される。拡張されたインデックス15とインデックス 17との間になお衝突が存在するとき、第2の付加的なページテーブル92(拡 張C)が発生される。先の先行技術の説明におけるのと同じように、インデック ス14およびインデックス16はともに同じページテーブルエントリ34を指す と仮定する。しかしながら、この発明においてページテーブル32レベルでの衝 突時に、インデックス14および16によって指されるテーブル32の拡張値8 4それ自身がライン86によって示されるように拡張Bページテーブル82を指 す。これにより、ページテーブルエントリ34は、衝突が発生するとき、使用可 能な比較セグメントを含まない。その代わりに、拡張84がページテーブル82 を指すために使用され、それはページテーブルの衝突を解決する必要による要求 に応じてダイナミックに作り出されるまたは破壊されるだろう。これは、ライン 85および86によって示されるように、ページテーブルエントリ34の拡張値 84が第2のページテーブル82を指すために使用できるようにする能動化用ゲ ート91に、ライン90によって示されるように連結される、拡張フラグ88を 使用することによって達成される。
インデックス14と16との間にこの第1の衝突が発生するので、衝突を解決す るために付加的なインデックス部分15および17が必要とされる。これらの付 加的なビットは、インデックス部分14および16の最上位ビットにそれぞれ隣 接する比較部分18および20のいくつかのビットを利用することによって与え られる。
図示された図2aおよび図2bにおいて、第1の組の発生されたインデックス1 5および17はまた同一であり、かつライン94および96によって示されるよ うにページテーブル82において同じページテーブルエントリ98を選択する。
したがって、インデックス部分15および17におけるビットの数がインデック ス部分14および16におけるビットよりもおそらく少ないため、テーブル82 およびテーブル92のような連続するテーブルはテーブル32よりも小さいだろ う。ページテーブルエントリ98は、ライン102によって示されるように、拡 張フラグ100を能動化用ゲート104に与え、それは、ライン106によって 示されるようにページテーブルエントリ98の拡張値108が使用されるべきで あることを合図する。ライン110によって示されるように、拡張値108は拡 張Cページテーブル92へのポインタとして供給され、それは当業者に既知の技 法による必要に応じてダイナミックに作り出され破壊されるであろう。
このレベルの既存の衝突のため、サブインデックスセクション15および17の 最上位ビットに隣接するいくつかのビットを利用することによって、インデック ス19および21が次に発生される。もちろん、発生されるかもしれないページ テーブル拡張の数は、インデックス部分14および16に見られるビットよりも 上位の仮想アドレスのビットの総数によって結果的に制限される。
図2aおよびr1!J2bの発明の図示された例において、次のグループの拡張 インデックス19および21は、ページテーブル拡張92の異なるページテーブ ルエントリ116および118を指すライン112および114によって示され るようにもはや同じページテーブルエントリを指さないと仮定する。このためペ ージテーブル比較フラグ120がセットされ、これはライン122によって示さ れるように能動化ゲート124に与えられて、ライン126によって示されるよ うにページテーブルエントリ116の比較値128がライン140を介して比較 装置またはステップ40に供給されることを可能にする。同様の方法で、ライン 132によって示されるように比較フラグ130は能動化用ゲート134に供給 され、かつライン136によって示されるようにそれはページテーブルエントリ 118の比較値138が、ライン142を介して比較装置またはステップ58に 供給されることを可能にする。ライン126および136は、ライン140およ び142によって示されるように、比較値128および138からそれぞれの比 較装置またはステップ40および58への転送の開始を表わす。
比較は、比較装置またはステップ40で仮想アドレス10の比較値18とページ テーブルエントリ116の対応ノ比較値128とについて行なわれる。比較値2 0はまた、比較装置またはステップ58でページテーブルエントリ118の比較 値138と比較される。ページテーブル92が全両方の比較値のためのエントリ を含むため、比較装置またはステップ40は、ライン48によって示されるよう に能動化用ゲート143にページテーブルエントリ116から実ページアドレス 値144を供給するであろう。この値はそれからライン148によって示される ように、実アドレス152の最上位ビットの実ページアドレス部分150を形成 するために供給される。実アドレス152のオフセット値154は、ライン15 6および159によって示されるようにオフセット部分22、およびライン48 によって示されるように比較装置またはステップ40によって能動化される能動 化用ゲート158から与えられる。それによってオフセット部分22は、実アド レス152のオフセット値154を与えるために直接供給される。同様の方法で 、ページテーブルエントリ118は、ページテーブルエントリ118の実ページ アドレスセグメント166が、ライン168および172によって示されるよう に、能動化用ゲート170を介して供給されるようにし、このゲートは、ライン 174によって示されるように比較装置またはステップ58からの一致表示によ って能動化される。これにより、ライン178および184によって示されるよ うに実アドレス162のオフセット176は、仮想アドレス12のオフセット部 分24から、ライン1,74によって示されるように比較装置またはステップ5 8によって能動化される能動化用ゲート180を介して与えられる。
比較テーブルエントリ116および118のそれぞれの比較値128および13 8のどちらかがそれぞれ対応する比較セグメント18および20と一致しなけれ ば、その特定の仮想アドレスに対して、要求された実アドレスは主メモリになく 、かつデータは大量メモリバックアップ記憶から得なければならない。
この発明のデータベースハツシュの適合データベースの探索の間に生じる衝突は この発明をこの実施例に適合することによって解決されるだろう。図2aおよび 図2bの説明に関する上述の概念はまたここにも当てはまる。この実施例の実行 は図示的な目的のためにある特定のタイプのレコードを仮定することによって説 明される。ウィリアム ケント(Willism 1ent)による上述の論文 に記録されたものを含むがしかしながらそれらに制限されない他の形式のデータ ベースレコードが当業者に明確な方法で代用されてもよい。以下の例は簡潔な方 法でこの発明を説明することを意図したものであり、当業者に明らかであるため データベース設計技法の説明を意図するものではない。仮想メモリアドレス指定 の実施例の説明されたシステムの実行はまたこの実施例に適用可能である。
例示として、データベースは生徒の名前および様々な科目におけるクラスでのラ ンクから成り、かつ他の記憶情報におけるクラスランキングを基にしてクラス内 成績順位を与える。この特定のタイプのレコードは以下のものを等しいと定義す ることによってこの発明に直接置き換えることができるだろう。
比較部分 生徒の名前 インデックス部分 科目 オフセット部分 クラスでのランク 実アドレス 生徒についての記憶情報 この例において、比較およびインデックス部分は重なるのではなく隣接すると仮 定する。
類似した用語のデータベースレコードは、以下の2つのレコードを参照すること によってわかるとおり、図2aおよび図2bの仮想アドレス選択方式に直接関係 するかもしBROWN ENGLISH16 GREEN ENGLISH21 ENGL I SHを指定するレコードの部分が図2aおよび図2bの実行にお いてインデックスとして使用されれば、第1のレベルで衝突が発生しかつ拡張テ ーブル82が発生されなければならないことがわかる。ワードENGLISHの デジタル値は、テーブル82を指す拡張部分84を含むであろうテーブルエント リ34を選択するかもしれない。
今、生徒の名前BROWNおよびGREENの最後の文字が拡張または補足イン デックス値として使用されるようにインデックスが拡張されるかもしれないと仮 定してみよう。この場合、第2の衝突が発生し、衝突を解決するためにページテ ーブル92を使用することが必要である。たとえばBROWNのrWJおよびG REENの[E了のような次の文字の組を使用することは、このレベルでの非衝 突インデックスをもたらす。このことが発生すると、比較セグメントrBROW NJおよびrG RE E NJは、各々の生徒に関連した異なる記憶データベ ース値にアクセスするために使用されるだろう。
データベースからの最後の結果はそれから、各々の生徒について戻された、かつ 仮想アドレスシステムの実ページアドレス値144および166に類似する独自 の記憶された値と組合わせてオフセットまたは生徒のクラスおよびランクを利用 して、クラスでのランクを各々の生徒に関する他の記憶情報と組合わせる値を形 成するだろう。
上述の発明は、添付の請求の範囲の意図および範囲から外れることなく、当業者 に明らかであろう多くの変更および実行に組込まれるであろうことが理解される はずである。
特に、この発明はメモリページを使用するシステムに関して説明されたが一方で 、それは当業者に周知の技法によってセグメント化、セグメント化の組合わせお よびページングまたは他の認識されたメモリ割当方式を使用するかもしれない、 他のメモリ構成に応用可能であろう。
請求の範囲 1、規定された階層レベルでメモリに記憶される対象を表わす異なる2進ビツト 指定子のインデックス値が比較されるときのメモリ探索システムにおける比較衝 突を解決するためのプロセスであって、前記指定子(10,12)の各々が第1 、第2および第3のセグメントを含み、前記第1のセグメントは比較値(COM P 18.20)を表わし、前記第2のセグメントは前記インデックス値(IN DEXA 14,16)を表わし、 a) 前記第2のセグメント(INDEX A 14゜16)を使用して(23 ,25)、前記第1のテーブルエントリ(34)の第1のフラグ(88)が複数 の指定子(10,12)の前記第2のセグメント(14,16)が前記第1のテ ーブル(32)で同じエントリを指すことを示すとき第1のテーブル(32)で 第1のテーブルエントリ(34)を指すステップと、 b) 前記第1のテーブルエントリ(34)に見られる拡張値(84)を使用し て(91)、第2のテーブル(82)を指すステップと、 C) 前記指定子(10,12)の前記第1のセグメン) (18,20)から 選択された対応するビットの第1のグループ(INDEX B 15.17)を 使用して(96,94)、前記第2のテーブル(82)で第2のエントリ(98 )を指すステップと、 d) 必要に応じて、もし第2のフラグ(1,00)が異なる指定子の前記第1 のグループのビットを示せば前記第2のテーブルエントリ(98)に見られる付 加的な拡張値(1,08)を使用して(104)、前記第2のテーブルの同じ第 2のエントリ(98)を指すステップとを含み、前記第2の拡張値は付加的なテ ーブル(92)を指し、さらに、 e) 異なる指定子の対応するグループのビットに対して同じエントリを与えな い少なくとも1つのグループのビットが見付けられるまでまたは前記第1のセグ メントの前記ビットのすべてが使用されるまで付加的なフラグ、拡張値、前記指 定子の他の対応するビットのテーブルとグループ(19,21)および前記第1 のセグメントから選択される前記指定子の他の対応するビットの付加的なグルー プ(19,21)を必要に応じて使用するステップと、f) 前記フラグの1つ が異なる指定子のビットの特定のグループに対して同じエントリが見られないこ とを示すとき、前記2進ビツト指定子(19,21)の各々に関連する記憶され た比較セグメント(128,138)を検索する(124.134)、最終テー ブル(92)の最終テーブルエントリ(116,118)を参照するステップと 、前記記憶された比較セグメント(128,138)を対応する指定子に関連す る前記第1のセグメント(18,20)と比較する(40.58)ステップと、 対応する記憶された比較セグメントが前記第1のセグメントと一致すれば、前記 最終テーブルエントリ(116゜118)にある記憶された値のセグメント(1 44,166)を前記2進ビツト指定子の前記第3のセグメント(22,24) の2進ビツトと組合わせる(143,158゜170.180)ステップとを含 む、プロセス。
2、前記2進ビツト指定子がデータベースレコードを表わす、請求項1に記載の プロセス。
3、前記2進ビツト指定子は仮想メモリアドレスを表わし、前記記憶された値の セグメントは実メモリアドレスの最上位ビット部分を表わし、前記第3のセグメ ントは前記実メモリアドレスの最下位ビット部分を表わす、請求項1に記載のプ ロセス。
4、前記仮想メモリアドレスはメモリページテーブルアドレスである、請求項3 に記載のプロセス。
国際調音報告 Me PCT/LI591/(19460、−PCT/US 91109460 フロントベージの続き (72)発明者 デュッダ、クラウス・ゲスタフアメリカ合衆国、55113  ミネソタ州、ラムシイ・カランティ、ローズビル、ウェスト・エルドリッジ・ア ベニュ、1772(72)発明者 ハンコック、ビータ−・ジョンアメリカ合衆 国、55110 ミネソタ州、ラムシイ・カランティ、ホワイト・ベア・レイク 、ミツドランド・アベニュ、3183

Claims (6)

    【特許請求の範囲】
  1. 1.規定された階層レベルでメモリに記憶された対象を表わす異なる2進ビット 指定子のインデックス値が比較されるときに、メモリ探索システムにおける比較 衝突を解決するためのプロセスであって、前記2進ビット指定子の各々は第1、 第2および第3のセグメントを含み、前記第1のセグメントは比較値を表わし、 かつ前記第2のセグメントは前記インデックス値を表わし、 a)複数の前記第2のセグメントを比較し、もし同じであれば、第1のテーブル で第1のテーブルエントリを指すステップと、 b)前記第1のテーブルエントリで見出された拡張値を利用して第2のテーブル で第2のテーブルエントリを指すステップと、 c)少なくとも1つのグループのビットが別の2進ビット指定子の対応するグル ープのピットと一致しないことが発見されるまで、または前記第1および第2の セグメントのすべての前記ビットが比較されるまで、前記2進ビット指定子の対 応するビットの組を比較し、必要に応じて連携的に前記第1および第2のセグメ ントから選択される前記2進ビット指定子の他の対応するビットの付加的なグル ープを比較するステップと、 d)異なる2進ビット指定子の前記第1の比較されたグループのビットが一致し て第3のテーブルの第3のテーブルエントリを指す場合は、前記第2のテーブル エントリに見られる拡張値を利用するステップと、e)前記第1のグループのビ ットの各々の連締するグループのビットの各々を比較し、対応する後続のテーブ ルエントリにおいて見出される拡張値を利用した後続の比較の間に一致が見出さ れたときはいつでも、前記第1および第2のセグメントのすべてのビットが比較 されていない限り、その次に続くテーブルにおいて次に続く拡張値エントリを指 すステップと、 f)比較される特定のグループのビットに対して一致が見付けられないとき、最 後のテーブルで拡張値を使用して最終のテーブルで最終のテーブルエントリを指 すステップと、 g)前記最終のテーブルにおいて、最終テーブルエントリを参照して、前記2進 ビット指定子の各々と関連する記憶された比較セグメントを検索するステップと 、h)前記記憶された比較セグメントを、対応する2進ビット指定子に関連する 第1のセグメントと比較するステップと、 i)対応する記憶された比較セグメントが前記第3のセグメントと一致するなら ば、前記最終のテーブルエントリにある記憶された値のセグメントを、前記2進 ビット指定子の前記第3のセグメントの関連するものに対応する2進ビット指定 子と組合わせるステップとを含む、プロセス。
  2. 2.前記2進ビット指定子がデータベースレコードを表わす、請求項1に記載の プロセス。
  3. 3.前記2進ビット指定子が仮想メモリアドレスを表わし、前記記憶された値の セグメントは実メモリアドレスの最上位ビット部分を表わし、前記第3のセグメ ントは前記実メモリアドレスの最下位ビット部分を表わす、請求項1に記載のプ ロセス。
  4. 4.前記テーブルエントリはページテーブルエントリであり、前記テーブルは拡 張テーブルおよび最終テーブルの発生を制御するフラグを含むページテーブルで ある、請求項3に記載のプロセス。
  5. 5.対象の探索のための衝突解決法を提供するプロセスであって、前記対象は対 象指定子を使用するメモリから検索され、前記対象指定子の各々はインデックス 部分、比較部分および組合わせ部分を含み、前記部分の各々はいくつかのビット を含み、 a)複数の前記対象指定子のインデックス部分の第1のグループを比較して、2 つ以上の前記インデックス部分が同じであるかどうかを決定するステップと、b )前記対象指定子の比較およびインデックス部分から連続的に選択される、前記 対象指定子の他のインデックス部分の付加的なグループを比較するステップとを 含み、それはインデックス部分の衝突が発生しない比較を得ようとして、前記比 較部分の関連するものからのビットを含めることによって前記インデックス部分 のビットの数を拡大するためのものであり、さらに、 c)前記インデックス部分の衝突の各々に対して拡張テーブルを連携的に発生す るステップを含み、前記拡張テーブルは、非衝突インデックス部分が見出される までまたは前記インデックスおよび比較部分のすべてのビットが比較されるまで 前記拡張インデックス部分の関数であるエントリを含み、さらに、 d)対象指定子に関連する対象の第1の要素を含む非衝突対象指定子が見出され ると最終テーブルを発生するステップと、 e)関連する非衝突対象指定子の組合わせ部分を前記非衝突対象指定子と関連す る対象の第2の要素として組合わせて前記対象を与えるステップとを含む、プロ セス。
  6. 6.衝突を有するかもしれない仮想メモリページングシステムにおいて衝突解決 法を提供するプロセスであって、メモリページは、その各々がインデックス部分 、比較部分およびオフセット部分を含む要求アドレスを利用することによって検 索され、 a)複数の前記要求アドレスのインデックス部分を比較して2つ以上の前記イン デックス部分が同じであるかどうかを決定し、したがってインデックス値の衝突 を示すステップと、 b)前記2進ビット指定子の対応するビットの第1のグループおよび必要に応じ て、インデックス部分の衝突が発生しない比較を得るように前記インデックス値 を拡張するために、前記要求アドレスの前記比較およびインデックス部分から連 続的に選択された他の要求アドレスのビットの付加的なグループを比較するステ ップと、c)前記インデックス部分の衝突の各々に対して連続的に拡張テーブル を発生するステップを含み、前記拡張テーブルは、非衝突インデックス部分が見 付けられるまでまたは前記インデックスおよび比較部分のすべてのビットが比較 されるまで前記拡張インデックス部分の関数であるエントリを含み、さらに、 d)非衝突要求アドレスが見られると最終テーブルを発生するステップを含み、 それは、前記非衝突要求アドレスに関連する実アドレスの最上位ビット部分を含 み、さらに、 e)前記非衝突要求アドレスのオフセット部分を実アドレスの最下位ビット部分 として、前記要求アドレスに対する関連した最終テーブルに含まれる前記要求ア ドレスの最上位ビット部分と組合わせて前記メモリから前記対象を検索するため に実アドレスを与えるステップとを含む、プロセス。
JP04503356A 1990-12-17 1991-12-16 拡張テーブルを使用するページングシステム Expired - Fee Related JP3115599B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US628,056 1990-12-17
US07/628,056 US5293595A (en) 1990-12-17 1990-12-17 Paging system using extension tables for conflict resolution
PCT/US1991/009460 WO1992011597A1 (en) 1990-12-17 1991-12-16 Paging system using extension tables

Publications (2)

Publication Number Publication Date
JPH06500656A true JPH06500656A (ja) 1994-01-20
JP3115599B2 JP3115599B2 (ja) 2000-12-11

Family

ID=24517259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04503356A Expired - Fee Related JP3115599B2 (ja) 1990-12-17 1991-12-16 拡張テーブルを使用するページングシステム

Country Status (6)

Country Link
US (1) US5293595A (ja)
EP (1) EP0563282B1 (ja)
JP (1) JP3115599B2 (ja)
CA (1) CA2097718C (ja)
DE (2) DE69104625T2 (ja)
WO (1) WO1992011597A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761531A (en) * 1995-06-30 1998-06-02 Fujitsu Limited Input/output control apparatus and method for transfering track data from cache module to channel unit during the staging of the data track from device adapter
US5960194A (en) * 1995-09-11 1999-09-28 International Business Machines Corporation Method for generating a multi-tiered index for partitioned data
US5920900A (en) * 1996-12-30 1999-07-06 Cabletron Systems, Inc. Hash-based translation method and apparatus with multiple level collision resolution
US6122711A (en) 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
US6804759B2 (en) * 2002-03-14 2004-10-12 International Business Machines Corporation Method and apparatus for detecting pipeline address conflict using compare of byte addresses
US6963964B2 (en) 2002-03-14 2005-11-08 International Business Machines Corporation Method and apparatus for detecting pipeline address conflict using parallel compares of multiple real addresses
US7937554B2 (en) 2002-11-12 2011-05-03 Broadcom Corporation System and method for managing memory
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10195C (de) * MARIE JOHANNE CÖLESTINE, b. HEINRICH JOHN, c. CARL ROBERT Entlastete Ventile. Wittwe M. Amtmann, geb. Mason, in Breslau und deren minderjährige Kinder: a
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus
US4468728A (en) * 1981-06-25 1984-08-28 At&T Bell Laboratories Data structure and search method for a data base management system
US4430701A (en) * 1981-08-03 1984-02-07 International Business Machines Corporation Method and apparatus for a hierarchical paging storage system
US4611272A (en) * 1983-02-03 1986-09-09 International Business Machines Corporation Key-accessed file organization
US4914577A (en) * 1987-07-16 1990-04-03 Icon International, Inc. Dynamic memory management system and method
JPH0285927A (ja) * 1988-09-22 1990-03-27 Hitachi Vlsi Eng Corp 記憶装置
US5202986A (en) * 1989-09-28 1993-04-13 Bull Hn Information Systems Inc. Prefix search tree partial key branching

Also Published As

Publication number Publication date
DE69104625D1 (de) 1994-11-17
CA2097718A1 (en) 1992-06-18
EP0563282A1 (en) 1993-10-06
US5293595A (en) 1994-03-08
WO1992011597A1 (en) 1992-07-09
EP0563282B1 (en) 1994-10-12
JP3115599B2 (ja) 2000-12-11
CA2097718C (en) 2001-03-20
DE563282T1 (de) 1994-04-28
DE69104625T2 (de) 1995-02-16

Similar Documents

Publication Publication Date Title
US11899641B2 (en) Trie-based indices for databases
US5201048A (en) High speed computer system for search and retrieval of data within text and record oriented files
US6138114A (en) Sort system for merging database entries
US5664177A (en) Data processing system having a data structure with a single, simple primitive
US5692177A (en) Method and system for data set storage by iteratively searching for perfect hashing functions
US5752243A (en) Computer method and storage structure for storing and accessing multidimensional data
US6035303A (en) Object management system for digital libraries
JPH0749812A (ja) ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置
US6915302B1 (en) Method, system, and program for accessing files in a file system
JPH06500656A (ja) 拡張テーブルを使用するページングシステム
JPH0358249A (ja) フアイルのアクセス方法
JP3859044B2 (ja) インデクス作成方法および検索方法
CN114238226A (zh) 一种基于simd指令的nvm本地文件管理系统及方法
Yevheniia et al. ADVANTAGES AND DISADVANTAGES OF USING DIFFERENT TYPES OF A HASHING ALGORITHMS
JP2004178614A (ja) 文書管理方法および文書管理装置
Sikeler Var-page-lru a buffer replacement algorithm supporting different page sizes
Hawking High Speed Search of Large Text Bases On the Fujitsu Cellular Array Processor,"
Nørväg Efficient use of signatures in object-oriented database systems
JP2871755B2 (ja) ダイナミック・ハッシュにおけるスプリット制御方法
Bertino et al. An evaluation of text access methods
CN117290390A (zh) 一种基于特殊索引内存映射在大数据检索上的方法
JP2000132439A (ja) パーソナルコンピュータのハードディスクに記憶されたファイルを検索する検索システム
JPH04101272A (ja) データエレメント検索方法
Chow et al. The Hong Kong Telephone Directory Enquiry System
Chow et al. The telephone directory enquiry system of Hong Kong

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees