JP2797961B2 - 検索システム - Google Patents

検索システム

Info

Publication number
JP2797961B2
JP2797961B2 JP6072668A JP7266894A JP2797961B2 JP 2797961 B2 JP2797961 B2 JP 2797961B2 JP 6072668 A JP6072668 A JP 6072668A JP 7266894 A JP7266894 A JP 7266894A JP 2797961 B2 JP2797961 B2 JP 2797961B2
Authority
JP
Japan
Prior art keywords
search
address
data
tlb
virtual
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 - Lifetime
Application number
JP6072668A
Other languages
English (en)
Other versions
JPH07262221A (ja
Inventor
大志 高橋
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP6072668A priority Critical patent/JP2797961B2/ja
Publication of JPH07262221A publication Critical patent/JPH07262221A/ja
Application granted granted Critical
Publication of JP2797961B2 publication Critical patent/JP2797961B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は検索システムに関し、特
に入力された検索キーに基づきデータの検索を行う高速
データ検索システムに関するものである。
【0002】
【従来の技術】情報処理システムにおけるデータ検索処
理は、各々が検索キーと称されるキー値によって特徴付
けられる登録されたデータ集合の中から、特定の検索キ
ーに対応するデータを探し出す処理のことである。
【0003】従来のこの種のデータ検索処理をCPU
(中央処理装置)にて行う場合、ハッシュアルゴリズム
や二分木探索等の方法を用いて行うのが一般的である。
これ等の方法は検索キーを検索に適したデータ構造に構
成しておき、ソフトウェアにて処理を行うようにしたも
のである。
【0004】また、別の方法として、検索のための専用
の素子を装置に組込み、それを用いて検索を行う方法が
ある。この様な素子としては、例えばCAM(Cont
ent Address Memory;連想メモリ)
がある。これは、検索キーとデータとの組のエントリを
予め複数組登録しておくバッハァと、入力キー値とバッ
ファ内の複数エントリとの一致を同時比較する回路とか
らなるメモリの一種である。
【0005】
【発明が解決しようとする課題】上述した従来のソフト
ウェアによる検索方法では、実行時間が遅いという問題
があり、また検索専用の素子であるハードウェアを用い
る検索方法では、ハードウェアが複雑かつ高価になると
いう欠点がある。
【0006】そこで、本発明はかかる従来技術の欠点を
解消すべくなされたものであって、その目的とするとこ
ろは、特別な検索専用のハードウェア素子を用いること
なく簡単な構成でかつ高速の検索システムを提供するこ
とにある。
【0007】
【課題を解決するための手段】本発明による検索システ
ムは、、被検索用データ格納領域の物理アドレスに被検
索用データが予め格納されたメインメモリと、このメイ
ンメモリの物理アドレスと仮想アドレスとの変換機構で
あるアドレス変換テーブルを予め有するCPUとを含む
情報処理装置を使用したデータ検索システムであって、
入力される検索キーに基き前記メインメモリの前記検索
用データ格納領域の物理アドレスに対応する検索用仮想
アドレスを生成する手段と、この生成された検索用仮想
アドレスにより前記アドレス変換テーブルを索引して前
記物理アドレスを得、この物理アドレスにより前記メイ
ンメモリをアクセスしてデータを検索するアクセス手段
含むことを特徴とする。
【0008】本発明による他の検索システムは、上記構
成の他に、前記検索用の仮想アドレスが前記アドレス変
換テーブルに登録されているか否かを判定するヒット判
定手段と、この判定結果がヒットを示すとき前記アクセ
ス手段を起動制御し、ミスヒットを示すとき予め定めら
れた例外処理を起動制御する制御手段とを更に含むこと
を特徴としている。
【0009】
【作用】本発明による検索システムは、CPUに予め搭
載されているアドレス変換用のTLB(Transla
tion Look Aside Buffer)と呼
ばれる仮想アドレス/物理アドレス変換テーブル機構を
用いて高速検索を行うものである。
【0010】すなわち、全ての検索キーの取り得る値に
対して唯一の仮想アドレスを生成し、この仮想アドレス
とそのキーに対応するデータエントリの物理アドレスと
の組とをTLBに予め登録しておく。検索キーにより生
成された仮想アドレスによってTLBをアクセスし、対
応物理アドレスを読出してこれによりメインメモリをア
クセスするもので、高速検索処理が可能となる。
【0011】また、TLBへのアクセス時にミスヒット
(TLB未登録)が検出されると、例外処理を行って、
従来のハッシュアルゴリズム等によるソフトウェアによ
る検索処理へ進むようにすれば、より完全な検索が可能
となる。
【0012】
【実施例】以下に図面を参照しつつ本発明の実施例につ
いて詳細に説明する。
【0013】先ず、図1を参照して本発明の基本概念に
つき説明する。近年の高性能CPU10は前述した如
く、TLB20と称される仮想アドレス/物理アドレス
変換機構を備えるようになっている。これは、仮想アド
レスとそれが変換されるべき物理アドレスとの組を複数
組登録できるバッファであり、CPU10の仮想アドレ
スへのアクセス時には、この仮想アドレスをTLB20
の登録エントリのなかから比較検索して物理アドレスに
高速に変換するようになっている。
【0014】このアドレス変換は、通常ページと呼ばれ
る適当な大きさの連続領域毎に行われるものであり、よ
って当該変換はページ番号と呼ばれるアドレスの上位部
分のみが対象となり、オフセットと呼ばれるアドレスの
下位部分はそのまま物理アドレスに組入れられる。
【0015】本発明では、このCPU10に組込まれて
いるTLB20をデータ検索のために使用するものであ
り、従って、メインメモリ30の仮想アドレス空間を図
示する如く通常領域32と検索領域31とに分割して使
用し、通常の仮想アドレッシングとの競合を避けるよう
にしている。
【0016】TLB20の登録エントリのテーブル内容
を図2に示しており、メインメモリ30の仮想アドレス
空間内の検索領域31に対応する登録検索エントリの組
310と、同じく通常領域32に対応する通常エントリ
の組320とからなっている。各エントリの組は、図示
する如く、仮想ページ番号とそれに対応する物理ページ
番号とからなる。
【0017】図3は、図1,2に示したTLB変換機構
を用いた本発明の一実施例のシステムブロック図であ
る。検索キー入力部1はオペレータによる検索キーが入
力されるものである。検索用アドレス生成部2はこの入
力された検索キーに一対一に対応した検索用仮想アドレ
ス(仮想ページ番号)を生成するものであり、図4にそ
の例を示している。
【0018】図4を参照すると、検索キー41が入力さ
れると、この検索キー値を、検索用領域(メモリ30の
領域31)を指定する部分42とオフセット部43との
間に挿入することにより、仮想アドレスが生成される。
オフセット部43には全て“0”が挿入され、また検索
用領域指定部分42には、“0”が挿入される。この場
合、検索処理以外の処理では、アドレスの最上位ビット
が“0”である仮想アドレスを使用しないようにする必
要がある。
【0019】こうすることにより、検索キーの取り得る
全てのキー値に対して唯一に仮想ページ番号を割当てる
ことができることになる。
【0020】検索用アドレスによるメモリアクセス部3
は検索用アドレス生成部2にて生成された仮想アドレス
を用いて仮想/物理アドレス変換部5に対するアクセス
を行う。この仮想/物理アドレス変換部5はTLB20
と物理アドレス生成部51とを有している。
【0021】すなわち、TLB20の検索内容から物理
アドレスを生成してメインメモリ30の検索用物理アド
レス領域31へのデータ読出しが行われ、その結果が検
索結果出力部4から導出されることになる。
【0022】図5は検索用TLBエントリとメインメモ
リの物理アドレスマップとの関連を示す図であり、検索
データは物理ページの先頭に配置される。TLBエント
リの仮想ページ番号は検索キーから生成され、Va,V
b,………,Vcで表されている。物理ページ番号とし
ては、検索キーに対応する被検索データa,b,……,
cが存在する物理ページ番号Ps,Pu,……,Ptと
なっている。
【0023】図6は図3のブロックの動作処理の流れ図
である。先ず、入力された検索キーから仮想アドレスが
生成され(ステップ61)、その仮想アドレスによりT
LB20がアクセスされ(ステップ62)、ハードウェ
アによりTLB変換が行われる。この変換された物理ア
ドレスにより、メインメモリ30がアクセスされ、メイ
ンメモリから読出されたデータが検索キーに対応するデ
ータとなるのである(ステップ63)。
【0024】以上の例では、検索されるべきデータのエ
ントリ数は検索用TLBの登録エントリ数に制限を受
け、またデータエントリを置く位置がページの先頭に限
定されるものである。
【0025】そこで、図7に示す如き、第2の実施例が
考えられる。この例では、通常のソフトウェアアルゴリ
ズムによるデータ検索と、TLBを用いたデータ検索と
を併用してエントリ数の制限をなくし、またTLBの各
エントリに固定的に物理ページ番号を割当ててその内容
に検索キーに対応するデータのポインタを書込むことに
より、データエントリを配置するアドレスの制限のない
検索を実現するものである。
【0026】図7において、図3と同等部分は同一符号
にて示している。仮想/物理アドレス変換部5は、図3
の構成の他に更に、TLB20のエントリに対するヒッ
ト/ミスヒット(登録/未登録)の判定をなすTLBミ
スヒット判定部52を含んでいる。
【0027】この判定部52によりミスヒット判定がな
されると、TLBミスヒット例外処理部7が起動されて
例外処理がなされる。この例外処理部7はソフトウェア
による検索処理部71とエントリ登録部72とからな
り、ソフトウェアによる検索処理部71はメインメモリ
30内のソフトウェア検索処理用データ領域33をアク
セスして、ソフトウェアによる検索処理の起動をなす。
エントリ登録部72はTLBミスヒット時の検索キーと
データエントリのアドレスとをTLB20へ登録するも
のである。
【0028】図8は本実施例における検索用TLBエン
トリと物理アドレスマップとの関連を示す図である。T
LBエントリの仮想ページ番号は検索キーから生成され
るVa,Vb,………,Vcであり、物理ページ番号は
実際にメモリ内の格納領域であって、全ての検索用TL
Bエントリに対して一対一の唯一であるものとする。
【0029】ここでは、物理アドレス空間の一部の連続
領域の各ページを順に各検索用TLBエントリに固定的
に割当ててP1,P2,………,Pnとする。割当てら
れた各ページの先頭には、各検索キーに対応するデータ
エントリへのポインタを書込む。
【0030】図9は図7のブロックの動作を示す処理フ
ローである。検索手順としては、最初にTLBを利用す
る方法にて行われ、TLBミスヒット時にのみソフトウ
ェアによる方法にて行われる。
【0031】先ず、入力された検索キーから仮想アドレ
スが生成される(ステップ81)。次に、その仮想アド
レスによるTLBアクセスが行われる(ステップ8
2)。このとき、TLBミスヒット判定部52におい
て、TLBヒットと判定されれば(ステップ83)、T
LB20のアクセスがなされて物理アドレス変換が行わ
れ、この物理アドレスによりメインメモリ30の検索用
物理アドレス領域31のアクセスが行われることによ
り、検索キーに対応するデータが得られる(ステップ8
6)。
【0032】TLBに検索キーに対応するエントリが存
在せず、TLBミスヒット部52にてミスヒットである
と判定されると(ステップ83)、TLBミスヒット例
外処理部7が起動され、ソフトウェアによる検索処理ル
ーチンが行われる。(ステップ84)。そして、この検
索結果のキーとデータエントリの物理アドレスとがTL
B20へ新たに登録される(ステップ85)。
【0033】この場合のTLB20のエントリの登録更
新時には、既登録のエントリと入れ替えがなされるが、
この場合の更新アルゴリズムの例としては、LRU(L
east Recently Used)アルゴリズム
による最古のエントリとの入れ替えや、使用頻度が最小
のエントリとの入れ替え等の従来のアルゴリズムを用い
ることができる。
【0034】また、例外処理ルーチンとしてのソフトウ
ェアによる検索処理方法として、代表的なハッシュアル
ゴリズムによる検索手法を用いることができ、これにつ
いて以下に述べる。尚、このハッシュアルゴリズムにつ
いては、例えば、浪平博人著、別冊インタフェース“デ
ータ構造とアルゴリズム”、1991年5月、CQ出版
社発行に詳述されている。
【0035】ハッシュアルゴリズムでは、検索データを
登録するための大きさNのテーブルを用意し、検索キー
が与えられると、0〜N−1のいずれかの数値を生成す
るハッシュ関数を用いてそのテーブル内の登録位置が決
定される。
【0036】このハッシュ関数H(KEY)としては、
例えばキーをテーブルサイズNで割った余りである、 H(KEY)=KEY mod N 等が使用される。尚、KEYは整数とする。
【0037】このハッシュ関数が生成される値はハッシ
ュ値と呼ばれ、異なるキーについてハッシュ値が等しく
なる場合があり、この対処法としては、例えばポインタ
で次々に繋いでいく方法がある。
【0038】図10はこの場合のデータ構造の例を示す
図である。テーブル位置1にK1が存在し、ポインタで
K4が繋がれるのは、K1,K4のハッシュ値が共に1
になることによる。同様に、K2,K5,K6のハッシ
ュ値は全て3になる。
【0039】テーブル位置0,2にはデータは登録され
ていないが、これは登録されたデータにはハッシュ値が
0または2になるものがなかったことによる。K3のハ
ツシュ値はN−1であり、他にハッシュ値がN−1にな
るエントリは登録されていない。
【0040】図11はこの場合の検索処理の流れ図であ
る。検索キーが与えられると、先ずハッシュ値が計算さ
れ(ステップ100)、ハッシュテーブルのハッシュ値
を示す位置が参照され(ステップ200)、登録されて
いるキーと一致するかどうかが調べられる(ステップ3
00)。一致すれば検索成功であり(ステップ60
0)、処理は終了となる。
【0041】不一致であれば、テーブルに繋がれた“N
EXT”が存在するかどうか調べられ(ステップ40
0)、あればそれが参照され(ステップ500)、キー
が一致するか“NEXT”がなくなるまで繰返えされ
る。“NEXT”がなければ、登録されているエントリ
には一致するものはなく検索失敗となる(ステップ70
0)。
【0042】図7に示した第二の実施例では、検索され
るべきデータエントリは全てソフトウェアによる検索方
法における登録をメインメモリ内にて行っておく必要が
あり、またその一部はTLBを利用する検索方法におけ
る登録がなされることになる。
【0043】尚、ソフトウェアによる検索方法として
は、上述した代表的なハッシュ方法に限らず、他の手法
を用いることができる。例えば、検索キーとそれに対応
するデータエントリへのポインタとの組を、メインメモ
リ上の連続した領域に並べ、検索キーを順次比較する方
法等もあり、限定されない。
【0044】
【発明の効果】以上述べた如く、本発明によれば、CU
Pに本来備えられているTLB変換機構をデータ検索に
用いるようにしたので、特別なハードウェアを追加する
ことなく簡単にかつ高速に検索処理を行うことが可能と
なるという効果がある。
【0045】また、TLBミスヒット時には例外処理ル
ーチンを起動して従来のソフトウェアによる検索処理を
なすようにすれば、全ての検索キーに対するデータ検索
が確実となり、誤検索や該当データ無し等がなくなるも
のである。
【図面の簡単な説明】
【図1】本発明の基本的考え方を示す概念図である。
【図2】本発明の実施例におけるTLB変換用バッファ
テーブルの一例を示す図である。
【図3】本発明の一実施例のブロック図である。
【図4】検索キーと仮想アドレスとの関係を示す図であ
る。
【図5】TLBの各エントリと物理アドレスマップとの
関係を示す図である。
【図6】図3のブロックの動作を示すフロー図である。
【図7】本発明の他の実施例のブロック図である。
【図8】本発明の他の実施例におけるTLBエントリと
メインメモリ物理アドレスマップとの関係を示す図であ
る。
【図9】図7のブロックの動作を示すフロー図である。
【図10】ハッシュアルゴリズムのデータ構造の例を示
す図である。
【図11】ハッシュアルゴリズム検索処理のフロー図で
ある。
【符号の説明】
1 検索キー入力部 2 検索用アドレス生成部 3 メモリアクセス部 4 検索結果出力部 5 仮想/物理アドレス変換部 7 TLBミスヒット例外処理部 10 CPU 20 TLB 30 メインメモリ 31 検索領域 32 通常領域 33 ソフトウェア検索処理用データ領域 51 物理アドレス生成部 52 TLBミスヒット判定部 71 ソフトウェアによる検索処理部 72 エントリ登録部

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 被検索用データ格納領域の物理アドレス
    に被検索用データが予め格納されたメインメモリと、こ
    のメインメモリの物理アドレスと仮想アドレスとの変換
    機構であるアドレス変換テーブルを予め有するCPUと
    を含む情報処理装置を使用したデータ検索システムであ
    って、 入力される検索キーに基き前記メインメモリの前記検索
    用データ格納領域の物理アドレスに対応する検索用仮想
    アドレスを生成する手段と、 この生成された検索用仮想アドレスにより前記アドレス
    変換テーブルを索引して前記物理アドレスを得、この物
    理アドレスにより前記メインメモリをアクセスして デー
    タを検索するアクセス手段と、 を含むことを特徴とする検索システム。
  2. 【請求項2】 前記検索用の仮想アドレスが前記アドレ
    ス変換テーブルに登録されているか否かを判定するヒッ
    ト判定手段と、この判定結果がヒットを示すとき前記ア
    クセス手段を起動制御し、ミスヒットを示すとき予め定
    められた例外処理を起動制御する制御手段とを更に含む
    ことを特徴とする請求項1記載の検索システム。
  3. 【請求項3】 前記制御手段による例外処理は、予め設
    定されているソフトウェアによる検索処理を起動制御す
    る処理であることを特徴とする請求項2記載の検索シス
    テム。
  4. 【請求項4】 前記制御手段による例外処理は、前記ソ
    フトウェアによる検索結果に基き前記アドレス変換テー
    ブルの登録エントリを更新制御する処理を更に有するこ
    とを特徴とする請求項3記載の検索システム。
  5. 【請求項5】 前記更新制御の処理アルゴリズムは、検
    索回数が少ないエントリを更新するアルゴリズムである
    ことを特徴とする請求項4記載の検索システム。
  6. 【請求項6】 前記ソフトウェアによる検索処理はハッ
    シュアルゴリズムであることを特徴とする請求項3〜5
    いずれか記載の検索システム。
JP6072668A 1994-03-16 1994-03-16 検索システム Expired - Lifetime JP2797961B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6072668A JP2797961B2 (ja) 1994-03-16 1994-03-16 検索システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6072668A JP2797961B2 (ja) 1994-03-16 1994-03-16 検索システム

Publications (2)

Publication Number Publication Date
JPH07262221A JPH07262221A (ja) 1995-10-13
JP2797961B2 true JP2797961B2 (ja) 1998-09-17

Family

ID=13495981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6072668A Expired - Lifetime JP2797961B2 (ja) 1994-03-16 1994-03-16 検索システム

Country Status (1)

Country Link
JP (1) JP2797961B2 (ja)

Also Published As

Publication number Publication date
JPH07262221A (ja) 1995-10-13

Similar Documents

Publication Publication Date Title
KR960001946B1 (ko) 우선 변환 참조버퍼
JP3640978B2 (ja) ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置
KR920005280B1 (ko) 고속 캐쉬 시스템
JP3577575B2 (ja) アドレス変換を行う装置及び方法
JP2825550B2 (ja) 多重仮想空間アドレス制御方法および計算機システム
JP4268332B2 (ja) 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
US5241638A (en) Dual cache memory
JPH0564816B2 (ja)
JPH10228419A (ja) 様々なデフォルト・アドレス変換属性を事前ロードする方法および装置
JPH11203199A (ja) キャッシュ・メモリ
JP2010518519A (ja) アドレス変換方法及び装置
US10831674B2 (en) Translation support for a virtual cache
JPH08212136A (ja) 仮想メモリ変換処理を効率的に共有する方法及び装置
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
JPH0981459A (ja) アドレス変換バッファ装置
US6990551B2 (en) System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
JP3210637B2 (ja) データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム
JP2797961B2 (ja) 検索システム
EP0486154A2 (en) Virtual memory system
JPH0760411B2 (ja) バッファ記憶制御装置
EP0206050A2 (en) Virtually addressed cache memory with physical tags
JP4116346B2 (ja) 演算処理装置及びそのアドレス変換方法
JPH06139147A (ja) キャッシュメモリシステム