JPH04344568A - マイクロプロセッサのデータ登録、探索方式 - Google Patents

マイクロプロセッサのデータ登録、探索方式

Info

Publication number
JPH04344568A
JPH04344568A JP3144128A JP14412891A JPH04344568A JP H04344568 A JPH04344568 A JP H04344568A JP 3144128 A JP3144128 A JP 3144128A JP 14412891 A JP14412891 A JP 14412891A JP H04344568 A JPH04344568 A JP H04344568A
Authority
JP
Japan
Prior art keywords
address
hash
search
search data
microprocessor
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.)
Pending
Application number
JP3144128A
Other languages
English (en)
Inventor
Osamu Hatakeyama
修 畠山
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 JP3144128A priority Critical patent/JPH04344568A/ja
Publication of JPH04344568A publication Critical patent/JPH04344568A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、テーブルを用いたデー
タ登録、探索方式に関し、特に、ハッシュ法におけるハ
ッシュテーブルを構成して行なうマイクロプロセッサの
データ登録、探索方式に関する。
【0002】
【従来の技術】従来のハッシュ法におけるハッシュテー
ブルの構成では、ハッシュ関数の値の最小値と最大値の
範囲の大きさのハッシュテーブルを用意し、ハッシュテ
ーブルの各項目に探索データへのポインタを格納してい
る。そして、探索データが持つ探索キーからハッシュ関
数を用いてハッシュテーブルのアドレスを得て、目的の
ハッシュテーブル中の探索データへのポインタを参照し
ている。
【0003】
【発明が解決しようとする課題】上述した従来のハッシ
ュ法におけるハッシュテーブルの構成では、登録すべき
探索データが持つ探索キーの集合が既知でない場合は、
探索データが持つ探索キーからハッシュ関数を用いて得
たハッシュテーブルのアドレスの衝突を少なくするため
に、大きな範囲の値をとるハッシュ関数が必要となり、
それにともないハッシュテーブルも大きくしなくてはい
けない。しかし、登録した探索データの数が少なかった
場合は、ハッシュテーブルの大きさに対する登録した探
索データの個数の割合が小さくなり、ハッシュテーブル
に無駄な領域が多数存在する、という課題があった。
【0004】また、データ登録、探索の高速化のために
は、例えばリロケーション方式のリロケーションレジス
タのような特別なハードウェアを用意する場合があるが
、ハードウェアを用意できない場合は、データ登録、探
索の高速化が難しい、という課題もあった。
【0005】本発明は上述の課題を解決するもので、特
別なハードウェアを用意する必要がなく、ハッシュテー
ブルに無駄な領域を確保する必要のないマイクロプロセ
ッサのデータ登録、探索方式を得ることを目的とする。
【0006】
【課題を解決するための手段】本発明のデータ登録、探
索方式では、探索データが持つ探索キーからハッシュ関
数を用いて得るハッシュアドレスと、プログラム実行に
必要なアドレス変換テーブルと共存させるために仮想ア
ドレス空間中の未使用領域をハッシュアドレスとして確
保するハッシュテーブルと、このハッシュテーブルのア
ドレス変換情報をもとにマイクロプロセッサのアドレス
変換機能を利用して前記ハッシュアドレスをアドレス変
換して得られる格納アドレスと、この格納アドレスを探
索データを格納している仮想アドレスとして再度前記ア
ドレス変換テーブル中のプログラムの実行に必要なアド
レス変換情報を用いてアドレス変換して得られる探索デ
ータを格納している実アドレスとを有する。
【0007】
【作用】本発明のマイクロプロセッサのデータ登録、探
索方式においては、探索データが持つ探索キーからハッ
シュ関数を用いて得たハッシュアドレスを、マイクロプ
ロセッサのアドレス変換機能を利用して、アドレス変換
テーブル中のハッシュテーブルとしてのアドレス変換情
報によって格納アドレスにアドレス変換して、この格納
アドレスを再度仮想アドレスとみなし、アドレス変換テ
ーブル中のプログラムの実行に必要な探索データを格納
している実アドレスに変換するので効率的なテーブル作
成ができる。
【0008】
【実施例】次に、本発明について図面を参照して説明す
る。
【0009】図1は本発明の一実施例であるマイクロプ
ロセッサのデータ登録、探索方式の概要図である。
【0010】図1から、探索データが持つ探索キー1か
らハッシュ関数2を用いて得たハッシュアドレス3を、
マイクロプロセッサのアドレス変換機能を利用して、ア
ドレス変換テーブル7中のハッシュテーブル(4)とし
てのアドレス変換情報により格納アドレス4に変換し、
その格納アドレス4を探索データを格納している仮想ア
ドレス5として再度マイクロプロセッサのアドレス変換
機能により探索データを格納したプログラム実行に必要
な実アドレス6として変換する様に構成されている。
【0011】図2は、本発明のマイクロプロセッサのア
ドレス変換機能のブロック図である。
【0012】図2において、201はアドレス変換機能
を備えた一般的なマイクロプロセッサであり、ここで機
能する仮想アドレスをたとえば32ビットとしてその仮
想空間は4Gバイトの大きさで、さらに1つのセクショ
ンはIGバイトの大きさを持ち複数のエリアから成り、
1つのエリアはIMバイトの大きさで複数のページから
成り、1つのページは4Kバイトの大きさだとする。
【0013】命令実行部205からアクセス要求がある
と、アドレス変換部203の内部にあるエリアテーブル
のエリアテーブルベースレジスタが変換すべき仮想アド
レスのポインタによって選択される、これは32ビット
中の上位2ビット分等に相当するものとする、これと、
選択されたレジスタに保持されているエリアテーブルベ
ースアドレスと変換すべき仮想アドレスのエリア番号に
よって主記憶202上のエリアテーブルエントリが選択
され、主記憶制御部204によって読み込まれ、読み込
まれたエリアテーブルエントリ内のページテーブルベー
スレジスタと変換すべき仮想アドレスのページ番号によ
り主記憶202上のページテーブルエントリが選択され
、主記憶制御部204に読み込まれる、読み込まれたペ
ージテーブルエントリ内の実ページ番号と変換すべき仮
想アドレスのページ下位ビット部が連接されて実アドレ
スとなる様に機能する。
【0014】図3は、本発明のマイクロプロセッサのデ
ータ登録、探索方式の説明図であり、3は32ビットと
して表示されるハッシュアドレス、4はハッシュアドレ
ス3に対応して変換されるハッシュテーブルによる格納
アドレスであり、10はマイクロプロセッサ201のア
ドレス変換機能203におけるエリアテーブルレジスタ
である。12は同じくエリアテーブル、13はページテ
ーブル、11はアドレス変換動作としてのエリア加算器
であり、14は同じくページ加算器である。
【0015】図4は、本発明の探索データの格納例を示
す図である。
【0016】aはハッシュアドレス空間、bは格納アド
レス空間、cは仮想アドレス空間として3記憶空間の関
係を表わす、探索データ0×3ffff、0×2000
0、0×00000は32ビット空間域の3ビットに対
応している、図5は、本発明の探索データの探索成功の
例を示す図である。
【0017】図6は、本発明の探索失敗の例を示す図で
ある。
【0018】次に動作について説明する。
【0019】ここでは、本発明の一実施例として、サイ
ズが4Gバイトの仮想アドレス空間中の最上位1Gバイ
トとして図4に示す番地(0×c0000000番地か
ら0×ffffffff番地)が未使用仮想アドレスの
場合に、サイズが4Kバイトの探索データの探索、登録
、削除を行なう例を用いて説明する。
【0020】図3から、探索データが持つ探索キー1か
らハッシュ関数2を用いて、上位2ビットに0b11、
中位18ビットに探索データが持つ探索キーによって一
意に決まる値(0×00000から0×3ffff)、
下位12ビットに0×000、からなる32ビットの値
をハッシュアドレス3として得る。さらに、ハッシュア
ドレス3が、マイクロプロセッサ201のアドレス変換
機能を利用して、あらかじめ用意した、アドレス変換テ
ーブル7中のハッシュテーブル(4)としてのアドレス
変換情報を用いて、格納アドレス4にアドレス変換され
る機能上の変換手順は、上位2ビット0b11は、エリ
アテーブルレジスタペア10のレジスタを選択保持し、
エリヤ番号とエリア加算器11で加算してエリアテーブ
ルエントリアドレスを得てこれから18ビットについて
もページテーブルベースとページ番号をページ加算器1
3により加算してページテーブルエントリアドレスを得
て最後に下位12ビットを連接して格納アドレス4に変
換される。
【0021】今、ハッシュ関数2を用いて得たハッシュ
アドレス3の中位18ビットの値が、0×00000か
ら0×3ffffの値を取る探索キー1を持つ探索デー
タをそれぞれ、探索データ0×00000から探索デー
タ0×3ffffとし、すでに、探索データ0×000
00、探索データ0×20000、探索データ0×3f
fffが登録されている場合を考える。
【0022】プログラムの実行に必要なコード部、デー
タ部と探索データ0×00000、探索データ0×20
000、探索データ0×3ffffは、図4Cのように
、仮想アドレス空間cに配置されているとする。その時
、格納アドレス空間b中には、図bのように、探索デー
タ0×00000、探索データ0×20000、探索デ
ータ0×3ffffを、仮想アドレス空間cと同じアド
レスに配置する。さらに、ハッシュアドレス空間a中に
は、図aのように、探索データ0×00000、探索デ
ータ0×20000、探索データ0×3ffffを、各
探索データが持つ探索キーからハッシュ関数2を用いて
得たハッシュアドレス3に配置する。そして、探索デー
タ0×00000、探索データ0×20000、探索デ
ータ0×3ffffのハッシュアドレス3を対応する各
探索データの格納アドレス4へ割り付けるハッシュテー
ブル(4)としてのアドレス変換情報を、アドレス変換
テーブル7中に作成する。
【0023】ここで図5を参照して探索例を示すと、図
4の状態で、すでに登録されている探索データ0×20
000を探索しようとする場合は、探索データ0×20
000が持つ探索キー1からハッシュ関数2を用いて得
たハッシュアドレス3(0×e0000000番地)を
、マイクロプロセッサ201のアドレス変換機能を利用
して、あらかじめ用意した、アドレス変換テーブル7中
のハッシュテーブル(4)としてのアドレス変換情報を
用いて、アドレス変換を行なえば、探索データ0×20
000が格納されている仮想アドレス5と同じアドレス
の格納アドレス4(0×bfffe000番地)を得ら
れることがわかる。このあと仮想アドレス5をマイクロ
プロセッサ201のアドレス変換機能を利用して実アド
レス6に変換すればプログラム実行ができる。
【0024】また未登録、探索データの場合は、図6に
示すように、図4の状態で、図示されてないまだ登録さ
れていない探索データを仮りに0×20001としてこ
れを探索しようとする場合は、探索データ0×2000
1が持つ探索キー1からハッシュ関数2を用いて得たハ
ッシュアドレス3(0×e0001000番地とすると
)を、マイクロプロセッサ201のアドレス変換機能を
利用して、あらかじめ用意した、アドレス変換テーブル
7中のハッシュテーブル(4)としてのアドレス変換情
報を用いて、アドレス変換を行なうことになり、実アド
レス6が割り付けられていない仮想アドレス5を参照し
ようとした場合にメモリ管理例外が発生するのと同様に
、格納アドレス4が割り付けられていないハッシュアド
レス3を参照しようとすることになるため、メモリ管理
例外が発生して探索の失敗を検出できることがわかる。
【0025】また、図4の状態で、まだ登録されていな
い探索データ0×20001を登録しようとする場合は
、探索データ0×20001が持つ探索キー1から探索
データ0×20001の探索が成功するよう、すなわち
、探索データ0×20001が持つ探索キー1からハッ
シュ関数2を用いて得たハッシュアドレス3(0×e0
001000番地)を、マイクロプロセッサ201のア
ドレス変換機能を利用して、あらかじめ用意した、アド
レス変換テーブル中7のハッシュテーブル(4)として
のアドレス変換情報を用いて、アドレス変換を行なえば
、探索データ0×20001を格納している仮想アドレ
ス5と同じ格納アドレス4(0×e0001000番地
)に変換できるよう、アドレス変換テーブル7中のハッ
シュテーブル(4)としてのアドレス変換情報を変更す
れば可能である。
【0026】同様に、図4の状態で、すでに登録されて
いる探索データ0×20000を削除しようとする場合
は、探索データ0×20000が持つ探索キー1から探
索データ0×20000の探索が失敗するよう、すなわ
ち、探索データ0×20000が持つ探索キー1からハ
ッシュ関数2を用いて得たハッシュアドレス3(0×e
0000000番地)を、マイクロプロセッサ201の
アドレス変換機能を利用して、あらかじめ用意した、ア
ドレス変換テーブル7中のハッシュテーブル(4)とし
てのアドレス変換情報を用いて、アドレス変換を行なう
際に、格納アドレス4が割り付けられていないハッシュ
アドレス3を参照になるため、メモリ管理例外が発生し
て探索の失敗を検出できるよう、アドレス変換テーブル
7中のハッシュテーブル(4)としてのアドレス変換情
報を変更すれば削除可能である。
【0027】
【発明の効果】以上説明したように本発明では、仮想ア
ドレス空間中の未使用仮想アドレスの領域と、マイクロ
プロセッサのアドレス変換機能を利用して、あらかじめ
用意した、アドレス変換テーブル中のハッシュテーブル
としてのアドレス変換情報を用いて、ハッシュアドレス
から格納アドレスへアドレス変換を行なうことにより、
登録すべき探索データが持つ探索キーの集合が既知でな
い場合でも、ハッシュテーブルであるアドレス変換テー
ブルの大きさは、登録した探索データの個数に応じて可
変となるため、登録した探索データの個数にかかわらず
、ハッシュテーブルに無駄な領域ができない、という効
果がある。さらに、特別なハードウェアがなくとも、マ
イクロプロセッサのアドレス変換機能のためのハードウ
ェアを利用するため、高速なデータの探索を行なうこと
が可能となる、という効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例であるマイクロプロセッサの
データ登録、探索方式の概要図である。
【図2】本発明のマイクロプロセッサのアドレス変換機
能のブロック図である。
【図3】本発明のマイクロプロセッサのデータ登録、探
索方式の説明図である。
【図4】本発明の探索データ格納例を示す図である。
【図5】本発明の探索データの探索成功の例を示す図で
ある。
【図6】本発明の探索データの探索失敗の例を示す図で
ある。
【符号の説明】
1    探索キー 2    ハッシュ関数 3    ハッシュアドレス 4    格納アドレス (4)    ハッシュテーブル 5    仮想アドレス 6    実アドレス 7    アドレス変換テーブル 201    マイクロプロセッサ 203    アドレス変換部

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  探索データが持つ探索キーからハッシ
    ュ関数を用いて得るハッシュアドレスと、プログラム実
    行に必要なアドレス変換テーブルと共存させるために仮
    想アドレス空間中の未使用領域を前記ハッシュアドレス
    として確保するハッシュテーブルと、このハッシュテー
    ブルのアドレス変換情報をもとにマイクロプロセッサの
    アドレス変換機能を利用して前記ハッシュアドレスをア
    ドレス変換して得られる格納アドレスと、この格納アド
    レスを探索データを格納している仮想アドレスとして再
    度前記アドレス変換テーブル中のプログラムの実行に必
    要なアドレス変換情報を用いてアドレス変換して得られ
    る探索データを格納している実アドレスとを有するマイ
    クロプロセッサの登録、探索方式。
JP3144128A 1991-05-21 1991-05-21 マイクロプロセッサのデータ登録、探索方式 Pending JPH04344568A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3144128A JPH04344568A (ja) 1991-05-21 1991-05-21 マイクロプロセッサのデータ登録、探索方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3144128A JPH04344568A (ja) 1991-05-21 1991-05-21 マイクロプロセッサのデータ登録、探索方式

Publications (1)

Publication Number Publication Date
JPH04344568A true JPH04344568A (ja) 1992-12-01

Family

ID=15354856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3144128A Pending JPH04344568A (ja) 1991-05-21 1991-05-21 マイクロプロセッサのデータ登録、探索方式

Country Status (1)

Country Link
JP (1) JPH04344568A (ja)

Similar Documents

Publication Publication Date Title
US5276868A (en) Method and apparatus for pointer compression in structured databases
KR101729503B1 (ko) 계층 변환 테이블 제어
US9871727B2 (en) Routing lookup method and device and method for constructing B-tree structure
EP0408188B1 (en) Compressed prefix matching database searching
JP3250544B2 (ja) 転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体
US4241401A (en) Virtual address translator utilizing interrupt level code
JPH0749812A (ja) ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置
JP2000324172A (ja) アドレスに関するプレフィクスの格納方法
EP0746823A1 (en) Bit mapping apparatus and method
CN115203211B (zh) 一种唯一哈希序号生成方法和系统
WO2013166101A1 (en) Managing buffer memory
US20090171651A1 (en) Sdram-based tcam emulator for implementing multiway branch capabilities in an xml processor
KR960032197A (ko) 메모리 관리 방법 및 시스템과 데이타 처리 시스템
JPH04344568A (ja) マイクロプロセッサのデータ登録、探索方式
US7660908B2 (en) Implementing virtual packet storage via packet work area
JPS6015971B2 (ja) 緩衝記憶装置
CN120378132A (zh) 实时实现动态ip黑白名单的方法及电子设备
CN116992088A (zh) 一种基于整数的多层次的字典数据结构和算法
JPH05151119A (ja) ネツトワークアドレス管理装置
JPS631196A (ja) デ−タ索引方法
JPH0517583B2 (ja)
JPH02259947A (ja) ディジタル・データ処理システムにおける多次元列のアドレス指定のための仮想メモリー管理装置
JPS61204752A (ja) アドレス変換方式
JPH08101843A (ja) 情報検索装置
JPH01191957A (ja) メモリアドレス変換機構