JP3115599B2 - 拡張テーブルを使用するページングシステム - Google Patents
拡張テーブルを使用するページングシステムInfo
- Publication number
- JP3115599B2 JP3115599B2 JP04503356A JP50335692A JP3115599B2 JP 3115599 B2 JP3115599 B2 JP 3115599B2 JP 04503356 A JP04503356 A JP 04503356A JP 50335692 A JP50335692 A JP 50335692A JP 3115599 B2 JP3115599 B2 JP 3115599B2
- Authority
- JP
- Japan
- Prior art keywords
- segment
- comparison
- entry
- index
- bits
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims description 39
- 238000000034 method Methods 0.000 claims description 22
- 230000004913 activation Effects 0.000 description 11
- 238000013519 translation Methods 0.000 description 4
- 238000010420 art technique Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241001147416 Ursus maritimus Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database 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)
Description
【発明の詳細な説明】 発明の背景 発明の分野 この発明は、ハッシュ技術がデータ処理システムにお
いてメモリからデータを探索および検索するために使用
されるときの衝突の解決法に関する。より特定的には、
この発明はデータ処理システムにおいて仮想アドレスを
実アドレスに変換する間のページテーブルの衝突の解決
法に対して特に有用である。
いてメモリからデータを探索および検索するために使用
されるときの衝突の解決法に関する。より特定的には、
この発明はデータ処理システムにおいて仮想アドレスを
実アドレスに変換する間のページテーブルの衝突の解決
法に対して特に有用である。
先行技術の説明 情報を効果的に記憶、探索および検索する技術は近代
のデータ処理システム、特に大型メインフレームシステ
ムにおいて非常に重要である。ハッシュは、通常、各々
のレコードがキー部分とデータ部分とに分割されるデー
タベースにおいて、レコードから情報を得るために利用
される。キー部分は、レコードを検索、変更および保守
機能のために利用する動作を管理するために使用され
る。既存のハッシュ技術の説明は、テッド G.ルイス
(Ted G.Lewis)およびカーティス R.クック(Curtis
R.Cook)による「動的および静的な内部テーブルのため
のハッシュ(Hashing for Dynamic and Static Interna
l Tables)」と題された1988年10月のIEEEの研究指導用
シリーズ『コンピュータ』(Computer)の45−56頁に見
られる。
のデータ処理システム、特に大型メインフレームシステ
ムにおいて非常に重要である。ハッシュは、通常、各々
のレコードがキー部分とデータ部分とに分割されるデー
タベースにおいて、レコードから情報を得るために利用
される。キー部分は、レコードを検索、変更および保守
機能のために利用する動作を管理するために使用され
る。既存のハッシュ技術の説明は、テッド G.ルイス
(Ted G.Lewis)およびカーティス R.クック(Curtis
R.Cook)による「動的および静的な内部テーブルのため
のハッシュ(Hashing for Dynamic and Static Interna
l Tables)」と題された1988年10月のIEEEの研究指導用
シリーズ『コンピュータ』(Computer)の45−56頁に見
られる。
キーフィールドを利用するレコードの設計は、1983年
2月の『ACMのコミュニケーション』(Communications
of the ACM)、第26巻第2号、の120−125頁のウィリア
ム ケント(William Kent)による「関係データベース
理論における5つの正規形への簡単な手引き(A Simple
Guide to Five Normal Forms in Relational Database
Theory)」と題された論文に説明されている。この論
文は、効果的な更新を提供し、かつデータの不一致を防
ぐために、レコードに含まれる情報に関するキーの選択
を洞察している。
2月の『ACMのコミュニケーション』(Communications
of the ACM)、第26巻第2号、の120−125頁のウィリア
ム ケント(William Kent)による「関係データベース
理論における5つの正規形への簡単な手引き(A Simple
Guide to Five Normal Forms in Relational Database
Theory)」と題された論文に説明されている。この論
文は、効果的な更新を提供し、かつデータの不一致を防
ぐために、レコードに含まれる情報に関するキーの選択
を洞察している。
ニューヨーク(米国)の1979年9月の『データベース
システムについてのACM論文集』(ACM Transactions on
Database Systems)の第4巻第3号の315−344頁にあ
るロナルド ファージン(Ronald Fagin)他による「拡
張可能なハッシュ−−動的ファイルのための速いアクセ
ス方法(Extendable Hashing−−A Fast Access Method
for Dynamic Files)」と題された論文は、ページメモ
リ内でのハッシュを説明した。ファージン(Fagin)他
において、均整の取れた3つの構造を得る試みがなされ
る。図8,9および10は、必ずしも1つのポインタに唯一
連結されているとは限らないリーフテーブルとしてのデ
ィレクトリテーブルを示している。リーフページがオー
バフローすると、ディレクトリの大きさは変化し、かつ
ディレクトリポインタのリーフページとの関係は変る。
システムについてのACM論文集』(ACM Transactions on
Database Systems)の第4巻第3号の315−344頁にあ
るロナルド ファージン(Ronald Fagin)他による「拡
張可能なハッシュ−−動的ファイルのための速いアクセ
ス方法(Extendable Hashing−−A Fast Access Method
for Dynamic Files)」と題された論文は、ページメモ
リ内でのハッシュを説明した。ファージン(Fagin)他
において、均整の取れた3つの構造を得る試みがなされ
る。図8,9および10は、必ずしも1つのポインタに唯一
連結されているとは限らないリーフテーブルとしてのデ
ィレクトリテーブルを示している。リーフページがオー
バフローすると、ディレクトリの大きさは変化し、かつ
ディレクトリポインタのリーフページとの関係は変る。
ファージン(Fagin)他のシステムは、探索木を「一
様に(flat)」維持するように設計される。それは最上
位ビットで始まり、各々のノードが多数の枝を有するこ
とを可能にする。木は、その次の最下位ビットによって
指定される多数のノードを有するかもしれない多数のノ
ードの第1の層の最下位ビットを拡張することによって
一様に維持される。多数の前のテーブルは、単一の拡張
テーブルに拡張するかもしれない。発生されるであろう
固有の衝突を処理するために、ファージン(Fagin)他
の論文のシステムを使用するときにいくつかのタイプの
衝突の解決法が、必要となるであろう。
様に(flat)」維持するように設計される。それは最上
位ビットで始まり、各々のノードが多数の枝を有するこ
とを可能にする。木は、その次の最下位ビットによって
指定される多数のノードを有するかもしれない多数のノ
ードの第1の層の最下位ビットを拡張することによって
一様に維持される。多数の前のテーブルは、単一の拡張
テーブルに拡張するかもしれない。発生されるであろう
固有の衝突を処理するために、ファージン(Fagin)他
の論文のシステムを使用するときにいくつかのタイプの
衝突の解決法が、必要となるであろう。
米国ワシントンのIEEE COMP SOC、1985年12月16日
の、『超伝導システムについての第1回国際会議の議事
録』(Proceedings of the First International Confe
rence on Superconducting Systems)の697−705頁にあ
る、シュリーカント S. サッカー(Shreekant S.Thak
kar)による「並列ハッシュハードウエアを使用する仮
想アドレス変換(Virtual Address Translation Using
Parallel Hashing Hardware)」と題された論文は、並
列ハッシュハードウエアを説明している。その論文の中
には、キーおよびアクセスキーを与えるためにコンパレ
ータが使用されるかもしれないことが開示されている。
その論文はまた、ハッシュ機能の一般的な議論を含み、
初期ハッシュアドレスは仮想ページをキーとして使用し
て発生されることができるということを教示している。
の、『超伝導システムについての第1回国際会議の議事
録』(Proceedings of the First International Confe
rence on Superconducting Systems)の697−705頁にあ
る、シュリーカント S. サッカー(Shreekant S.Thak
kar)による「並列ハッシュハードウエアを使用する仮
想アドレス変換(Virtual Address Translation Using
Parallel Hashing Hardware)」と題された論文は、並
列ハッシュハードウエアを説明している。その論文の中
には、キーおよびアクセスキーを与えるためにコンパレ
ータが使用されるかもしれないことが開示されている。
その論文はまた、ハッシュ機能の一般的な議論を含み、
初期ハッシュアドレスは仮想ページをキーとして使用し
て発生されることができるということを教示している。
ソフトウエアシステムがますます複雑になるにつれ、
より多くの記憶に対する需要が増大している。仮想記憶
システムは、仮想アドレスの実アドレスへのマッピング
のためおそらくすべての記憶空間をアドレス指定可能な
主記憶であると見なすようなユーザーにとって、明白な
方法で、この需要を満たすことができる。そのようなシ
ステムにおいては、仮想記憶の大きさは、主記憶のロケ
ーションの数によってではなく、コンピュータシステム
のアドレス指定方式および利用可能な補助記憶の量によ
って制限される。仮想アドレスを、メモリへのアクセス
に使用できる物理アドレスに変換することは、仮想アド
レス指定空間を「ページ」と呼ばれる固定した大きさの
セグメントに分割することによって達成され、それら
は、データベースにおけるレコードのデータ部分に類似
している。仮想アドレス空間はページに分割され、ペー
ジテーブルエントリはページのうち現在主または実メモ
リにあるページを指定するために使用される。これを達
成するための古典的な方法は、仮想アドレスの一部分を
インデックスとして選択することである。仮想アドレス
の別の部分は比較セグメントとして選択される。そして
仮想アドレスの残りのビットは、ページへのインページ
またはオフセットアドレスとして役立つ。仮想アドレス
の、比較部分とインデックスとを組合わせたものは、デ
ータベースシステムにおけるレコードのキー部分に類似
している。
より多くの記憶に対する需要が増大している。仮想記憶
システムは、仮想アドレスの実アドレスへのマッピング
のためおそらくすべての記憶空間をアドレス指定可能な
主記憶であると見なすようなユーザーにとって、明白な
方法で、この需要を満たすことができる。そのようなシ
ステムにおいては、仮想記憶の大きさは、主記憶のロケ
ーションの数によってではなく、コンピュータシステム
のアドレス指定方式および利用可能な補助記憶の量によ
って制限される。仮想アドレスを、メモリへのアクセス
に使用できる物理アドレスに変換することは、仮想アド
レス指定空間を「ページ」と呼ばれる固定した大きさの
セグメントに分割することによって達成され、それら
は、データベースにおけるレコードのデータ部分に類似
している。仮想アドレス空間はページに分割され、ペー
ジテーブルエントリはページのうち現在主または実メモ
リにあるページを指定するために使用される。これを達
成するための古典的な方法は、仮想アドレスの一部分を
インデックスとして選択することである。仮想アドレス
の別の部分は比較セグメントとして選択される。そして
仮想アドレスの残りのビットは、ページへのインページ
またはオフセットアドレスとして役立つ。仮想アドレス
の、比較部分とインデックスとを組合わせたものは、デ
ータベースシステムにおけるレコードのキー部分に類似
している。
仮想空間の非常に多数のワードを実メモリにマップす
るためには、ダイレクトページテーブルは実行不可能な
程大きいであろう。(たとえば、212ワードページを使
用する、仮想空間の254ワードは、実メモリの大きさに
かかわらず、242エントリを有さなければならないであ
ろう。)過去に行なわれた試みでは、ページのうち実メ
モリにあるもののみにページテーブルエントリを付し、
そのためページテーブルエントリの数が妥当な数に制限
される。依然として残る問題は、所与の仮想アドレスに
対してページテーブルエントリにどのようにアクセスす
るかということである。これは、いくつかの最下位ビッ
ト(たとえば12)をページのオフセットとして使用し、
かつ次のN個の下位ビットをページテーブルのインデッ
クスとすることによって達成されてきた。この方法が使
われるとき、その動作は「ハッシュ」と呼ばれ、ページ
テーブルはまたハッシュテーブルと呼ばれる。ハッシュ
テーブルへのエントリは、そのすべてがNビットの同じ
値を有する多数のページテーブルエントリの連鎖を開始
する。各々のエントリはそれが表わす仮想アドレスの残
りのビットを含み、Nの値はハードウエアおよびアルゴ
リズムを実行するために利用されるソフトウエアによっ
て決定される。
るためには、ダイレクトページテーブルは実行不可能な
程大きいであろう。(たとえば、212ワードページを使
用する、仮想空間の254ワードは、実メモリの大きさに
かかわらず、242エントリを有さなければならないであ
ろう。)過去に行なわれた試みでは、ページのうち実メ
モリにあるもののみにページテーブルエントリを付し、
そのためページテーブルエントリの数が妥当な数に制限
される。依然として残る問題は、所与の仮想アドレスに
対してページテーブルエントリにどのようにアクセスす
るかということである。これは、いくつかの最下位ビッ
ト(たとえば12)をページのオフセットとして使用し、
かつ次のN個の下位ビットをページテーブルのインデッ
クスとすることによって達成されてきた。この方法が使
われるとき、その動作は「ハッシュ」と呼ばれ、ページ
テーブルはまたハッシュテーブルと呼ばれる。ハッシュ
テーブルへのエントリは、そのすべてがNビットの同じ
値を有する多数のページテーブルエントリの連鎖を開始
する。各々のエントリはそれが表わす仮想アドレスの残
りのビットを含み、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つは連鎖方法であ
る。
説明はそのような先行技術の技法に対してこの発明をよ
り明白に規定しようとする意図で含まれたものである。
ページング技法はキーフィールドを使用することによっ
て仮想メモリシステムにおいてメモリにアクセスするた
めに利用されている。たとえば図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のインデ
ックス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および48上の一致を示しそれらはそれぞれ能動化
用ゲートまたはステップ50および52に連結されてそれら
を能動化する。それはハードウエアで実現してもよいま
たはソフトウエアで実現して達成されてもよい。
エントリ34の比較セグメント38との値は、ライン42およ
びライン43,44によって表わされるように、比較装置ま
たはステップ40に連結される。ハードウエアの実現例に
おいて、これらのラインの各々は信号伝達データライン
を表わす。ソフトウエアの実現例においては、それらは
プログラムデータフローを表わす。これにより、比較装
置またはステップ40によって行なわれる比較検査は、ラ
イン46および48上の一致を示しそれらはそれぞれ能動化
用ゲートまたはステップ50および52に連結されてそれら
を能動化する。それはハードウエアで実現してもよいま
たはソフトウエアで実現して達成されてもよい。
比較セグメント18および38が等しければ、ライン49お
よび51によって示されるように、能動化用ゲート50は仮
想アドレス10のオフセットセグメント22を連結し、最下
位ビットまたは実アドレス28のオフセット26として役立
つようにする。同様に、ページテーブルエントリ34の実
ページアドレス36は、ライン54および56によって表わさ
れるようにゲート52を介して連結され、実アドレス28の
最上位ビット部分30として役立つ。実ページアドレス30
はオフセット部分26と組合わされ、トータル実アドレス
28を形成する。
よび51によって示されるように、能動化用ゲート50は仮
想アドレス10のオフセットセグメント22を連結し、最下
位ビットまたは実アドレス28のオフセット26として役立
つようにする。同様に、ページテーブルエントリ34の実
ページアドレス36は、ライン54および56によって表わさ
れるようにゲート52を介して連結され、実アドレス28の
最上位ビット部分30として役立つ。実ページアドレス30
はオフセット部分26と組合わされ、トータル実アドレス
28を形成する。
実行がハードウエアによって達成されるかまたはソフ
トウエアによるかに従ってその場合次第で、比較装置ま
たはステップ58は仮想アドレス12の比較セグメント20と
ページテーブルエントリ34の比較セグメント38との比較
を表わす。比較セグメント20と比較セグメント38との値
はライン60およびライン43,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に供給される。
トウエアによるかに従ってその場合次第で、比較装置ま
たはステップ58は仮想アドレス12の比較セグメント20と
ページテーブルエントリ34の比較セグメント38との比較
を表わす。比較セグメント20と比較セグメント38との値
はライン60およびライン43,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つのレベルのインデックス衝突があると仮定して
いる。
よび図2bに示されており、図1と図2aと図2bとの要素の
間に類似性がある範囲では、図1を説明するために使用
した同じ要素の表示が図2aおよび図2bを示すために利用
されている。この発明はいかなる数の衝突レベルに対し
ても利用されるであろうが、図2aおよび図2bにおいて
は、2つのレベルのインデックス衝突があると仮定して
いる。
図2aおよび図2bに示された発明の実施例においては、
2つの仮想アドレス10と12があり、それらはインデック
ス部分14と16、比較部分18と20およびオフセット部分22
と24を有する。インデックス部分14および16は比較部分
18および20と重なるように示されており、それはいくつ
かのビットが比較およびインデックス部分の両方の一部
分を形成するかもしれないことを意味しているが、また
はそれらは隣接していて重なっていなくてもよい。サブ
インデックスセクション15および17もまた図2aおよび図
2bに示されており、それらはインデックス14と16との間
にインデックス衝突がある場合に使用するために、予め
選択されたビットを比較部分18および20からそれぞれ借
りることによってダイナミックに選択されるだろう。イ
ンデックス15と17との間にさらに衝突がある場合には、
ダイナミックに選択されるだろうインデックス部分19お
よび21はここに記載する方法でこの発明の実行をさらに
拡大するために使用できる。
2つの仮想アドレス10と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および86によって示されるように、ページテーブル
エントリ34の拡張値84が第2のページテーブル82を指す
ために使用できるようにする能動化用ゲート91に、ライ
ン90によって示されるように連結される、拡張フラグ88
を使用することによって達成される。
れる第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および86によって示されるように、ページテーブル
エントリ34の拡張値84が第2のページテーブル82を指す
ために使用できるようにする能動化用ゲート91に、ライ
ン90によって示されるように連結される、拡張フラグ88
を使用することによって達成される。
インデックス14と16との間にこの第1の衝突が発生す
るので、衝突を解決するために付加的なインデックス部
分15および17が必要とされる。これらの付加的なビット
は、インデックス部分14および16の最上位ビットにそれ
ぞれ隣接する比較部分18および20のいくつかのビットを
利用することによって与えられる。
るので、衝突を解決するために付加的なインデックス部
分15および17が必要とされる。これらの付加的なビット
は、インデックス部分14および16の最上位ビットにそれ
ぞれ隣接する比較部分18および20のいくつかのビットを
利用することによって与えられる。
図示された図2aおよび図2bにおいて、第1の組の発生
されたインデックス15および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はまた同一であり、かつ
ライン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に見られるビットよりも上位の仮想アドレスのビ
ットの総数によって結果的に制限される。
クション15および17の最上位ビットに隣接するいくつか
のビットを利用することによって、インデックス19およ
び21が次に発生される。もちろん、発生されるかもしれ
ないページテーブル拡張の数は、インデックス部分14お
よび16に見られるビットよりも上位の仮想アドレスのビ
ットの総数によって結果的に制限される。
図2aおよび図2bの発明の図示された例において、次の
グループの拡張インデックス19および21は、ページテー
ブル拡張92の異なるページテーブルエントリ116および1
18を指すライン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への転送の開始
を表わす。
グループの拡張インデックス19および21は、ページテー
ブル拡張92の異なるページテーブルエントリ116および1
18を指すライン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とについて行なわれる。比較値20はまた、比較装
置またはステップ58でページテーブルエントリ118の比
較値138と比較される。ページテーブル92が今両方の比
較値のためのエントリを含むため、比較装置またはステ
ップ40は、ライン48によって示されるように能動化用ゲ
ート143にページテーブルエントリ116から実ページアド
レス値144を供給するであろう。この値はそれからライ
ン148によって示されるように、実アドレス152の最上位
ビットの実ページアドレス部分150を形成するために供
給される。実アドレス152のオフセット値154は、ライン
156および159によって示されるようにオフセット部分2
2、およびライン48によって示されるように比較装置ま
たはステップ40によって能動化される能動化用ゲート15
8から与えられる。それによってオフセット部分22は、
実アドレス152のオフセット値154を与えるために直接供
給される。同様の方法で、ページテーブルエントリ118
は、ページテーブルエントリ118の実ページアドレスセ
グメント166が、ライン168および172によって示される
ように、能動化用ゲート170を介して供給されるように
し、このゲートは、ライン174によって示されるように
比較装置またはステップ58からの一致表示によって能動
化される。これにより、ライン178および184によって示
されるように実アドレス162のオフセット176は、仮想ア
ドレス12のオフセット部分24から、ライン174によって
示されるように比較装置またはステップ58によって能動
化される能動化用ゲート180を介して与えられる。
の比較値18とページテーブルエントリ116の対応の比較
値128とについて行なわれる。比較値20はまた、比較装
置またはステップ58でページテーブルエントリ118の比
較値138と比較される。ページテーブル92が今両方の比
較値のためのエントリを含むため、比較装置またはステ
ップ40は、ライン48によって示されるように能動化用ゲ
ート143にページテーブルエントリ116から実ページアド
レス値144を供給するであろう。この値はそれからライ
ン148によって示されるように、実アドレス152の最上位
ビットの実ページアドレス部分150を形成するために供
給される。実アドレス152のオフセット値154は、ライン
156および159によって示されるようにオフセット部分2
2、およびライン48によって示されるように比較装置ま
たはステップ40によって能動化される能動化用ゲート15
8から与えられる。それによってオフセット部分22は、
実アドレス152のオフセット値154を与えるために直接供
給される。同様の方法で、ページテーブルエントリ118
は、ページテーブルエントリ118の実ページアドレスセ
グメント166が、ライン168および172によって示される
ように、能動化用ゲート170を介して供給されるように
し、このゲートは、ライン174によって示されるように
比較装置またはステップ58からの一致表示によって能動
化される。これにより、ライン178および184によって示
されるように実アドレス162のオフセット176は、仮想ア
ドレス12のオフセット部分24から、ライン174によって
示されるように比較装置またはステップ58によって能動
化される能動化用ゲート180を介して与えられる。
比較テーブルエントリ116および118のそれぞれの比較
値128および138のどちらかがそれぞれ対応する比較セグ
メント18および20と一致しなければ、その特定の仮想ア
ドレスに対して、要求された実アドレスは主メモリにな
く、かつデータは大量メモリバックアップ記憶から得な
ければならない。
値128および138のどちらかがそれぞれ対応する比較セグ
メント18および20と一致しなければ、その特定の仮想ア
ドレスに対して、要求された実アドレスは主メモリにな
く、かつデータは大量メモリバックアップ記憶から得な
ければならない。
この発明のデータベースハッシュの適合 データベースの探索の間に生じる衝突はこの発明をこ
の実施例に適合することによって解決されるだろう。図
2aおよび図2bの説明に関する上述の概念はまたここにも
当てはまる。この実施例の実行は図示的な目的のために
ある特定のタイプのレコードを仮定することによって説
明される。ウィリアム ケント(William Kent)による
上述の論文に記録されたものを含むがしかしながらそれ
らに制限されない他の形式のデータベースレコードが当
業者に明確な方法で代用されてもよい。以下の例は簡潔
な方法でこの発明を説明することを意図したものであ
り、当業者に明らかであるためデータベース設計技法の
説明を意図するものではない。仮想メモリアドレス指定
の実施例の説明されたシステムの実行はまたこの実施例
に適用可能である。
の実施例に適合することによって解決されるだろう。図
2aおよび図2bの説明に関する上述の概念はまたここにも
当てはまる。この実施例の実行は図示的な目的のために
ある特定のタイプのレコードを仮定することによって説
明される。ウィリアム ケント(William Kent)による
上述の論文に記録されたものを含むがしかしながらそれ
らに制限されない他の形式のデータベースレコードが当
業者に明確な方法で代用されてもよい。以下の例は簡潔
な方法でこの発明を説明することを意図したものであ
り、当業者に明らかであるためデータベース設計技法の
説明を意図するものではない。仮想メモリアドレス指定
の実施例の説明されたシステムの実行はまたこの実施例
に適用可能である。
例示として、データベースは生徒の名前および様々な
科目におけるクラスでのランクから成り、かつ他の記憶
情報におけるクラスランキングを基にしてクラス内成績
順位を与える。この特定のタイプのレコードは以下のも
のを等しいと定義することによってこの発明に直接置き
換えることができるだろう。
科目におけるクラスでのランクから成り、かつ他の記憶
情報におけるクラスランキングを基にしてクラス内成績
順位を与える。この特定のタイプのレコードは以下のも
のを等しいと定義することによってこの発明に直接置き
換えることができるだろう。
比較部分 生徒の名前 インデックス部分 科目 オフセット部分 クラスでのランク 実アドレス 生徒についての記憶情報 この例において、比較およびインデックス部分は重な
るのではなく隣接すると仮定する。
るのではなく隣接すると仮定する。
類似した用語のデータベースレコードは、以下の2つ
のレコードを参照することによってわかるとおり、図2a
および図2bの仮想アドレス選択方式に直接関係するかも
しれない。 比較 インデックス オフセット BROWN ENGLISH 16 GREEN ENGLISH 21 ENGLISHを指定するレコードの部分が図2aおよび図2b
の実行においてインデックスとして使用されれば、第1
のレベルで衝突が発生しかつ拡張テーブル82が発生され
なければならないことがわかる。ワードENGLISHのデジ
タル値は、テーブル82を指す拡張部分84を含むであろう
テーブルエントリ34を選択するかもしれない。
のレコードを参照することによってわかるとおり、図2a
および図2bの仮想アドレス選択方式に直接関係するかも
しれない。 比較 インデックス オフセット BROWN ENGLISH 16 GREEN ENGLISH 21 ENGLISHを指定するレコードの部分が図2aおよび図2b
の実行においてインデックスとして使用されれば、第1
のレベルで衝突が発生しかつ拡張テーブル82が発生され
なければならないことがわかる。ワードENGLISHのデジ
タル値は、テーブル82を指す拡張部分84を含むであろう
テーブルエントリ34を選択するかもしれない。
今、生徒の名前BROWNおよびGREENの最後の文字が拡張
または補足インデックス値として使用されるようにイン
デックスが拡張されるかもしれないと仮定してみよう。
この場合、第2の衝突が発生し、衝突を解決するために
ページテーブル92を使用することが必要である。たとえ
ばBROWNの「W」およびGREENの「E」のような次の文字
の組を使用することは、このレベルでの非衝突インデッ
クスをもたらす。このことが発生すると、比較セグメン
ト「BROWN」および「GREEN」は、各々の生徒に関連した
異なる記憶データベース値にアクセスするために使用さ
れるだろう。
または補足インデックス値として使用されるようにイン
デックスが拡張されるかもしれないと仮定してみよう。
この場合、第2の衝突が発生し、衝突を解決するために
ページテーブル92を使用することが必要である。たとえ
ばBROWNの「W」およびGREENの「E」のような次の文字
の組を使用することは、このレベルでの非衝突インデッ
クスをもたらす。このことが発生すると、比較セグメン
ト「BROWN」および「GREEN」は、各々の生徒に関連した
異なる記憶データベース値にアクセスするために使用さ
れるだろう。
データベースからの最後の結果はそれから、各々の生
徒について戻された、かつ仮想アドレスシステムの実ペ
ージアドレス値144および166に類似する独自の記憶され
た値と組合わせてオフセットまたは生徒のクラスおよび
ランクを利用して、クラスでのランクを各々の生徒に関
する他の記憶情報と組合わせる値を形成するだろう。
徒について戻された、かつ仮想アドレスシステムの実ペ
ージアドレス値144および166に類似する独自の記憶され
た値と組合わせてオフセットまたは生徒のクラスおよび
ランクを利用して、クラスでのランクを各々の生徒に関
する他の記憶情報と組合わせる値を形成するだろう。
上述の発明は、添付の請求の範囲の意図および範囲か
ら外れることなく、当業者に明らかであろう多くの変更
および実行に組込まれるであろうことが理解されるはず
である。特に、この発明はメモリページを使用するシス
テムに関して説明されたが一方で、それは当業者に周知
の技法によってセグメント化、セグメント化の組合わせ
およびページングまたは他の認識されたメモリ割当方式
を使用するかもしれない、他のメモリ構成に応用可能で
あろう。
ら外れることなく、当業者に明らかであろう多くの変更
および実行に組込まれるであろうことが理解されるはず
である。特に、この発明はメモリページを使用するシス
テムに関して説明されたが一方で、それは当業者に周知
の技法によってセグメント化、セグメント化の組合わせ
およびページングまたは他の認識されたメモリ割当方式
を使用するかもしれない、他のメモリ構成に応用可能で
あろう。
フロントページの続き (72)発明者 デュッダ,クラウス・グスタフ アメリカ合衆国、55113 ミネソタ州、 ラムジィ・カウンティ、ローズビル、ウ ェスト・エルドリッジ・アベニュ、1772 (72)発明者 ハンコック,ピーター・ジョン アメリカ合衆国、55110 ミネソタ州、 ラムジィ・カウンティ、ホワイト・ベ ア・レイク、ミッドランド・アベニュ、 3183 (56)参考文献 特開 昭57−36490(JP,A) 特開 昭55−58877(JP,A) 特開 平2−132557(JP,A) 特開 昭57−66584(JP,A) 特開 平1−175651(JP,A) 特開 平1−125640(JP,A) 特開 昭63−127347(JP,A) 特開 昭62−274352(JP,A) 特開 昭62−208147(JP,A) 特開 昭61−128348(JP,A) 特開 昭60−157647(JP,A) 特開 昭60−123947(JP,A) 特開 昭58−155589(JP,A) 特開 昭58−37884(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/00,15/40
Claims (4)
- 【請求項1】規定された階層レベルでメモリに記憶され
る対象を表わす異なる2進ビット指定子のインデックス
値が比較されるときのメモリ探索システムにおける比較
衝突を解決するためのプロセスであって、前記指定子
(10,12)の各々が第1、第2および第3のセグメント
を含み、前記第1のセグメントは比較値(COMP 18,2
0)を表わし、前記第2のセグメントは前記インデック
ス値(INDEX A 14,16)を表わし、 a) 前記第2のセグメント(INDEX A 14,16)を使
用して(23,25)、前記第1のテーブルエントリ(34)
の第1のフラグ(88)が複数の指定子(10,12)の前記
第2のセグメント(14,16)が前記第1のテーブル(3
2)で同じエントリを指すことを示すとき第1のテーブ
ル(32)で第1のテーブルエントリ(34)を指すステッ
プと、 b) 前記第1のテーブルエントリ(34)に見られる拡
張値(84)を使用して(91)、第2のテーブル(82)を
指すステップと、 c) 前記指定子(10,12)の前記第1のセグメント(1
8,20)から選択された対応するビットの第1のグループ
(INDEX B 15,17)を使用して(96,94)、前記第2
のテーブル(82)で第2のエントリ(98)を指すステッ
プと、 d) 必要に応じて、もし第2のフラグ(100)が異な
る指定子の前記第1のグループのビットを示せば前記第
2のテーブルエントリ(98)に見られる付加的な拡張値
(108)を使用して(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,11
8)にある記憶された値のセグメント(144,166)を前記
2進ビット指定子の前記第3のセグメント(22,24)の
2進ビットと組合わせる(143,158,170,180)ステップ
とを含む、プロセス。 - 【請求項2】前記2進ビット指定子がデータベースレコ
ードを表わす、請求項1に記載のプロセス。 - 【請求項3】前記2進ビット指定子は仮想メモリアドレ
スを表わし、前記記憶された値のセグメントは実メモリ
アドレスの最上位ビット部分を表わし、前記第3のセグ
メントは前記実メモリアドレスの最下位ビット部分を表
わす、請求項1に記載のプロセス。 - 【請求項4】前記仮想メモリアドレスはメモリページテ
ーブルアドレスである、請求項3に記載のプロセス。
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 JPH06500656A (ja) | 1994-01-20 |
JP3115599B2 true 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)
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)
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 |
-
1990
- 1990-12-17 US US07/628,056 patent/US5293595A/en not_active Expired - Fee Related
-
1991
- 1991-12-16 EP EP92903443A patent/EP0563282B1/en not_active Expired - Lifetime
- 1991-12-16 WO PCT/US1991/009460 patent/WO1992011597A1/en active IP Right Grant
- 1991-12-16 DE DE69104625T patent/DE69104625T2/de not_active Expired - Fee Related
- 1991-12-16 CA CA002097718A patent/CA2097718C/en not_active Expired - Fee Related
- 1991-12-16 DE DE92903443T patent/DE563282T1/de active Pending
- 1991-12-16 JP JP04503356A patent/JP3115599B2/ja not_active Expired - Fee Related
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 |
JPH06500656A (ja) | 1994-01-20 |
WO1992011597A1 (en) | 1992-07-09 |
EP0563282B1 (en) | 1994-10-12 |
CA2097718C (en) | 2001-03-20 |
DE563282T1 (de) | 1994-04-28 |
DE69104625T2 (de) | 1995-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0851355B1 (en) | Cache-efficient object loader | |
US5542087A (en) | Linear hashing for distributed records | |
KR100297454B1 (ko) | 컴퓨터장치 | |
JPH0658646B2 (ja) | デ−タ持続性が制御される仮想記憶アドレス変換機構 | |
JPH09507109A (ja) | コンピュータデータベースに関するトランザクションの処理を促進させるための装置 | |
US7493464B2 (en) | Sparse matrix | |
JPH10198587A (ja) | ファイル・システムの間接アドレシング方法及び装置 | |
Lin et al. | Frame-sliced signature files | |
JP3115599B2 (ja) | 拡張テーブルを使用するページングシステム | |
JPH07234879A (ja) | 情報処理装置及びデータベース検索方法 | |
JP3859044B2 (ja) | インデクス作成方法および検索方法 | |
JPH04128946A (ja) | アドレス変換方式 | |
JP3068935B2 (ja) | エントリ置き換え制御方法 | |
JP3164257B2 (ja) | 索引方法 | |
JPS623354A (ja) | キヤツシユメモリ・アクセス方式 | |
Lin | Cat: An execution model for concurrent full text search | |
KR0165511B1 (ko) | 중복 자료 구조 및 해싱 함수와 순차적 링크 리스트를 이용한 고속 정보 접근 방법 | |
JP2871755B2 (ja) | ダイナミック・ハッシュにおけるスプリット制御方法 | |
Kocberber et al. | Compressed multi-framed signature files: an index structure for fast information retrieval | |
JPH1173353A (ja) | 時刻指定によるトランザクション検索処理装置 | |
JP2000132439A (ja) | パーソナルコンピュータのハードディスクに記憶されたファイルを検索する検索システム | |
Chow et al. | The Hong Kong Telephone Directory Enquiry System | |
Chow et al. | The telephone directory enquiry system of Hong Kong | |
Cooper et al. | Inverted signature trees and text searching on CD-ROMs | |
Maier et al. | Chemical Substructure Search on CD-ROM |
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 |