JP2008085866A - データ格納方法、データ検索方法、データ検索回路及びデータ削除回路 - Google Patents

データ格納方法、データ検索方法、データ検索回路及びデータ削除回路 Download PDF

Info

Publication number
JP2008085866A
JP2008085866A JP2006265501A JP2006265501A JP2008085866A JP 2008085866 A JP2008085866 A JP 2008085866A JP 2006265501 A JP2006265501 A JP 2006265501A JP 2006265501 A JP2006265501 A JP 2006265501A JP 2008085866 A JP2008085866 A JP 2008085866A
Authority
JP
Japan
Prior art keywords
data
pointer
search
address
hash
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
JP2006265501A
Other languages
English (en)
Inventor
Teruaki Uehara
輝昭 上原
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2006265501A priority Critical patent/JP2008085866A/ja
Publication of JP2008085866A publication Critical patent/JP2008085866A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】NAPT処理などギガビット単位の処理スピードに対応できない。
【解決手段】鍵となるデータをハッシュ関数を用いてハッシュ値を算出し、算出されたハッシュ値を用いて、テーブルに格納されているデータを読み出し、もしデータが空で無いならばポインタ発生回路において発生する値をアドレスとして、その指定するテーブルのロケーションにデータを格納し、ポインタ発生回路のポインタを1つ増加する。
【選択図】 図2

Description

この発明は、テーブルのデータ格納方法、データ検索方法、データ検索回路及びデータ削除回路に関し、特に、ハッシュ関数を用いたデータ格納方法、データ検索方法、データ検索回路及びデータ削除回路に関する。
特許文献1は、ハッシュ関数の結果をテーブルに格納する従来の格納方法及びそのテーブルから所定の値を検索する従来の検索方法を開示している。
従来のデータ格納方法は、ハッシュ関数により得られたハッシュ値をアドレスとして、そのアドレスにより指定されるテーブルのロケーションに既にデータが格納されているか否か判断する。そして、もし既にデータが格納されている場合には、アドレスを一つ増加し、再度、その指定するアドレスにデータが格納されているか否か判断し、その指定するアドレスにデータが格納されていないロケーションを見つけるまでアドレスを一つずつ増加する。もし、指定するアドレスにデータが格納されていなければ、そのロケーションにデータを格納する。
また、従来のデータ検索方法は、ハッシュ関数により得られたハッシュ値をアドレスとして、そのアドレスにより指定されるテーブルのロケーションに格納されているデータが所望のデータか否か判断する。そして、もし所望のデータでない場合には、アドレスを一つ増加し、再度、その指定するアドレスにより指定されるテーブルのロケーションに格納されているデータが所望のデータか否か判断する。従来のデータ検索方法は、その指定するアドレスにデータが格納されていないロケーションを見つけるまでアドレスを一つずつ増加する。
また、従来のデータ削除方法によれば、ハッシュ関数により得られたハッシュ値をアドレスとして、そのアドレスにより指定されるテーブルのロケーションに格納されているデータが所望のデータか否か判断する。そして、もし、所望のデータである場合には、その指定するアドレスにより指定されるテーブルのロケーションに格納されているデータを削除する。所望のデータでない場合には、アドレスを一つ増加し、再度、その指定するアドレスにより指定されるテーブルのロケーションに格納されているデータが所望のデータか否か判断する。従来のデータ削除方法は、その指定するアドレスに所望のデータが格納されているロケーションを見つけるまでアドレスを一つずつ増加する。
米国特許番号6,795,816号
従来のデータ格納方法によれば、ハッシュ関数で得られたロケーションが既に使用されていた場合、空きロケーションを見つけるまで、演算されたハッシュ値を一つずつ増加していかなければならない。また、従来のデータ検索方法及び削除方法によれば、所望のデータを見つけるまで、演算されたハッシュ値を一つずつ増加していかなければならない。これは、この手法をNAPT(Network Address Port Translation)処理に用いてギガビット単位の処理する場合に、その処理速度に対応できないことを意味する。例えば、所望のデータが常にRAMの最後のロケーションに格納されている場合には、いつもハッシュ値を一つずつ増加していかなくてはならない。そのため、常にハッシュ値を一つずつ増加しては対象物を探す作業が必要となり、ギガビット単位の処理スピードに対応できない。
そこで、本発明は、NAPT処理などギガビット単位の処理スピードを要求された場合でも、その処理スピードに対応できるためのデータ格納方法、データ検索方法及びデータ検索回路及びデータ削除方法を提供することを目的とする。
本発明のデータ格納方法は、鍵となるデータをハッシュ関数を用いてハッシュ値を算出し、算出されたハッシュ値を用いてテーブルに格納されているデータを読み出し、もしデータが空で無いならばポインタ発生回路において発生する値をアドレスとしてその指定するテーブルのロケーションにデータを格納し、ポインタ発生回路のポインタを1つ増加することを特徴とする。
また、本発明のデータ検索方法は、鍵となるデータをハッシュ関数を用いてハッシュ値を算出し、算出されたハッシュ値を用いてテーブルに格納されているデータを読み出し、もしデータが所望のデータで無いならばポインタ発生回路において発生する値をアドレスとして、その指定するテーブルのロケーションにデータを読み出し、ポインタ発生回路のポインタを1つ増加することを特徴とする。
また、本発明のデータ検索回路は、ハッシュ衝突により使用するハッシュ検索を行うポインタテーブルとは別の逐次検索を行うポインタテーブルを持ち、 その逐次検索を行うポインタテーブルの値を読み出すときにそのポインタデータ及びアドレスを遅延させて、アドレスを1ずらしながらポインタテーブルに書き込むことを備える。
また、本発明のデータ削除回路は、ハッシュ関数を使用したテーブル検索回路において、ハッシュ衝突により使用するハッシュ検索を行うポインタテーブルとは別の逐次検索を行うポインタテーブルを持ち、その逐次検索を行うポインタテーブルの値を削除する場合、Keyが一致を調査するために読み出されるポインタデータ及びアドレスを遅延させ、アドレスを1ずらしながらポインタテーブルに書き込み、Keyが一致した場合に逐次検索をする先頭番地を1加算することで逐次検索の場所をずらすことを備える。
本発明のデータ格納方法、データ検索方法、データ検索回路及びデータ削除回路によれば、ギガビット単位の処理スピードに対応したNAPT処理を行うことが可能になる。
また、本発明のデータ検索回路は、ハッシュ衝突によって逐次検索を行う場合、ある鍵の検索時間が固定されることなく、直前に検索した鍵は高速に検索可能としている。また、テーブル値削除を行った場合も逐次検索順序が保護される。
また、本発明のデータ検索方法は、ハッシュ衝突によって逐次検索を行う場合でも検索履歴に応じた(過去に遡り検索された順に高速である検索)検索を実現している。また、テーブル値削除時の逐次検索順序保護と過去に遡り検索された順に高速である検索は同一のハードで実現され、小さな回路で実現可能である。
初めに、図1を用いて、NAPT処理について説明する。NAPT処理はルータが行う処理で、インターネット接続時のプライベートIP(=ローカルIP)とグローバルIPを変換する処理である。この処理によって1個のグローバルIPを使用して複数のPCが同時にインターネット接続することを可能としている。ルータ内のNAPTはAのIPパケットのソースアドレスを“ローカル1IP:20”から“自分IP:220”に変更している。Aのパケットへの返信であるCのパケットでは送り先アドレスを“自分IP:220”から“ローカル1IP:20”に変更している。これにより1つのグローバルIPを複数のPCが使用することを可能としている。
以下、図面を用いて、本発明のデータ格納方法、データ検索方法及びデータ検索回路を説明する。
図2は、本発明のデータ検索回路の構成を示すブロック図である。本発明のデータ検索回路は、ハッシュ回路200と、ポインタ・テーブルRAM201、202と、Extポインタ発生回路203と、Nextポインタ発生回路204と、チェック・選択回路205と、テーブルRAM206と、ポインタ遅延レジスタ207とにより構成される。
次に、NAPTデータ格納方法について説明する。初めに、鍵となるデータ(Key)をハッシュ回路200に入力し、ハッシュ値を得る。次に、ハッシュ値をポインタテーブルRAM201のアドレスとしてポインタテーブルRAMのデータを読み出し、空ならばNextポインタ発生回路204の発生する値をそのアドレスに入れる。一方、空で無いならばExtポインタ発生回路203の発生する値をポインタテーブルRAM202のアドレスとしてNextポインタ発生回路204の発生する値をポインタテーブルRAM202に入力する。その後、Nextポインタ発生回路204のポインタを1つ増加する。
次に、NAPTデータ検索方法について説明する。初めに、鍵となるデータ(Key)をハッシュ回路200に入力し、ハッシュ値を得る。次に、ハッシュ値をポインタテーブルRAM201のアドレスとしてポインタテーブルRAMのデータを読み出し、読み出された値をテーブルRAM206のアドレスとしてテーブルRAMからデータを読み出す。読み出されたデータが鍵に対応するデータである場合、処理を終了する。一方、読み出されたデータが鍵に対応するデータでない場合、アドレス0(ゼロ)から順に、ポインタテーブルRAM202を読み出した上で、テーブルRAMからデータを読み出す。
次に、NAPTデータ削除方法について説明する。初めに、鍵となるデータ(Key)をハッシュ回路200に入力し、ハッシュ値を得る。次に、ハッシュ値をポインタテーブルRAM201のアドレスとしてポインタテーブルRAMのデータを読み出す。読み出されたデータが鍵に対応するデータである場合、ハッシュ値がアドレスのポインタテーブルRAM201若しくはポインタテーブルRAM202のデータ及び、そのポインタテーブルRAM201若しくはポインタテーブルRAM202の内容がアドレスのテーブルRAMのデータを削除する。一方、読み出されたデータが鍵に対応するデータでない場合、アドレス0(ゼロ)から順に、ポインタテーブルRAM202のデータを読み出した上で、テーブルRAMからデータを読み出す。
次に、本発明のExtポインタ発生回路203について、詳細に説明する。
以下、図3を用いて、実施例1のExtポインタ発生回路203を説明する。図3は、実施例1のExtポインタ発生回路203を示すブロック図である。実施例1のExtポインタ発生回路203は、Extスタートポイントレジスタ300と、+1インクリメンタ301と、Extアドレスレジスタ302と、Extアドレス遅延レジスタ303とにより構成される。
図4は、Extアドレスレジスタ302、ポインタ・テーブルRAM202、テーブルRAM206、チェック・選択回路205の動作を示す表である。図4に示されるように、ポインタ・テーブルRAM202の値を順次読み出しながら、アドレスは2サイクル、データは1サイクル遅延させて、ポインタ・テーブルRAM202にデータを書き込んでいる。この例では、MT adr Eが鍵に一致する検索データである。図4からわかるように、6サイクル目でアドレスnにMT adr Eが書き込まれている。ここで、図5に、動作開始時、検索時、終了時のポインタ・テーブルRAM202の状態を示す。図5に示されるように、終了時のポインタ・テーブルRAM202の状態から明らかなように、鍵と一致したデータあるMT adr Eがテーブルの先頭アドレスnに移動され、それまでのデータが1ずつ繰り下げられている状態となっている。これは、次回の検索では、MT adr Eが最初に検索されることを意味する。従って、実施例1の本発明によれば、一度使用した鍵検索は、次回から高速に検索することができる。また、MT adr Eが入る前の検索順(この例では、MT adr A、MT adr B、MT adr C、MT adr D)が検索終了時も保護されている。そのため、実施例1の本発明によれば、使用頻度に応じてテーブルにデータが格納され、処理スピードを向上することができる。
以下、図6を用いて、実施例2のExtポインタ発生回路203を説明する。図6は、実施例2のExtポインタ発生回路203を示すブロック図である。実施例2のExtポインタ発生回路203は、Extスタートポイントレジスタ300と、+1インクリメンタ301、600と、Extアドレスレジスタ302と、Extアドレス遅延レジスタ303とにより構成される。
図7は、Extアドレスレジスタ302、ポインタ・テーブルRAM202、テーブルRAM206、チェック・選択回路205の動作を示す表である。図4に示されるように、ポインタ・テーブルRAM202の値を順次読み出しながら、アドレスは2サイクル、データは1サイクル遅延させて、ポインタ・テーブルRAM202にデータを書き込んでいる。この例では、MT adr Eが鍵に一致する検索データである。図7からわかるように、6サイクル目でアドレスnにMT adr Eが書き込まれている。ここで、図8に、動作開始時、検索時、終了時のポインタ・テーブルRAM202及びExtスタートポイントレジスタ300の状態を示す。図8に示されるように、終了時のポインタ・テーブルRAM202の状態から明らかなように、鍵と一致したデータあるMT adr Eが削除され、それまでのデータが1つずつ繰り下げられている。Extスタートポイントレジスタ300は1つ加算されているため、以後の検索はn+1から開始される。これは、次回の検索もMT adr Aから検索されることを示しており、ポインタ・テーブルRAM202の順番が維持されている。
なお、実施例に示した回路の遅延レジスタはRAM等のパイプライン段数によって異なる。
NAPT処理を示すブロック図である。 本発明のデータ検索回路を示すブロック図である。 本発明の実施例1のExtポインタ発生回路203を示すブロック図である。 本発明の実施例1のデータ遷移を示す表である。 本発明の実施例1のポインタテーブルRAMの状態を示す表である 本発明の実施例2のExtポインタ発生回路203を示すブロック図である。 本発明の実施例2のデータ遷移を示す表である。 本発明の実施例2のポインタテーブルRAM及びExtポインタレジスタの状態を示す表である。
符号の説明
200 ハッシュ回路
201、202 ポインタ・テーブルRAM
203 Extポインタ発生回路
204 Nextポインタ発生回路
205 チェック・選択回路
206 テーブルRAM
207 ポインタ遅延レジスタ
300 Extスタートポイントレジスタ
301、600 +1インクリメンタ
302 Extアドレスレジスタ
303 Extアドレス遅延レジスタ

Claims (5)

  1. 鍵となるデータをハッシュ関数を用いてハッシュ値を算出し、
    前記算出されたハッシュ値を用いて、テーブルに格納されているデータを読み出し、
    もしデータが空で無いならばポインタ発生回路において発生する値をアドレスとして、その指定するテーブルのロケーションにデータを格納し、
    前記ポインタ発生回路のポインタを1つ増加するデータ格納方法。
  2. 鍵となるデータをハッシュ関数を用いてハッシュ値を算出し、
    前記算出されたハッシュ値を用いて、テーブルに格納されているデータを読み出し、
    もしデータが所望のデータで無いならばポインタ発生回路において発生する値をアドレスとして、その指定するテーブルのロケーションにデータを読み出し、
    前記ポインタ発生回路のポインタを1つ増加するデータ検索方法。
  3. ハッシュ関数を使用したテーブル検索回路において、ハッシュ衝突により使用するハッシュ検索を行うポインタテーブルとは別の逐次検索を行うポインタテーブルを持ち、
    その逐次検索を行うポインタテーブルの値を読み出すときにそのポインタデータ及びアドレスを遅延させて、アドレスを1ずらしながらポインタテーブルに書き込むことを特徴とするテーブル検索回路。
  4. ハッシュ関数を使用したテーブル検索回路において、ハッシュ衝突により使用するハッシュ検索を行うポインタテーブルとは別の逐次検索を行うポインタテーブルを持ち、
    その逐次検索を行うポインタテーブルの値を読み出すときにそのポインタデータ及びアドレスを遅延させ、アドレスを1ずらしながらポインタテーブルに書き込み,Keyが一致した場合に逐次検索の最初にKeyが一致したポインタデータを書き込むことを特徴とするテーブル検索回路。
  5. ハッシュ関数を使用したテーブル検索回路において、ハッシュ衝突により使用するハッシュ検索を行うポインタテーブルとは別の逐次検索を行うポインタテーブルを持ち、
    その逐次検索を行うポインタテーブルの値を削除する場合、Keyが一致を調査するために読み出されるポインタデータ及びアドレスを遅延させ、アドレスを1ずらしながらポインタテーブルに書き込み、Keyが一致した場合に逐次検索をする先頭番地を1加算することで逐次検索の場所をずらすことを特徴とするデータ削除回路。
JP2006265501A 2006-09-28 2006-09-28 データ格納方法、データ検索方法、データ検索回路及びデータ削除回路 Pending JP2008085866A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006265501A JP2008085866A (ja) 2006-09-28 2006-09-28 データ格納方法、データ検索方法、データ検索回路及びデータ削除回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006265501A JP2008085866A (ja) 2006-09-28 2006-09-28 データ格納方法、データ検索方法、データ検索回路及びデータ削除回路

Publications (1)

Publication Number Publication Date
JP2008085866A true JP2008085866A (ja) 2008-04-10

Family

ID=39356215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006265501A Pending JP2008085866A (ja) 2006-09-28 2006-09-28 データ格納方法、データ検索方法、データ検索回路及びデータ削除回路

Country Status (1)

Country Link
JP (1) JP2008085866A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0581102A (ja) * 1991-09-19 1993-04-02 Fuji Xerox Co Ltd テーブル管理方式
JPH06290054A (ja) * 1993-03-30 1994-10-18 Nec Corp コンパイラにおける記号表および予約語表検索方式
JPH1049545A (ja) * 1996-08-06 1998-02-20 Fujitsu Ltd 連想記憶装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0581102A (ja) * 1991-09-19 1993-04-02 Fuji Xerox Co Ltd テーブル管理方式
JPH06290054A (ja) * 1993-03-30 1994-10-18 Nec Corp コンパイラにおける記号表および予約語表検索方式
JPH1049545A (ja) * 1996-08-06 1998-02-20 Fujitsu Ltd 連想記憶装置

Similar Documents

Publication Publication Date Title
US10254968B1 (en) Hybrid memory device for lookup operations
US6665297B1 (en) Network routing table
JP3935880B2 (ja) ネットワーク・プロセッサおよびコンピュータ・システム用ハイブリッド・サーチ・メモリ
US11182365B2 (en) Systems and methods for distributed storage of data across multiple hash tables
US7680806B2 (en) Reducing overflow of hash table entries
EP1156432B1 (en) Apparatus, method, data structure and recording medium for data retrieval by accessing retrieval tables
US20070168377A1 (en) Method and apparatus for classifying Internet Protocol data packets
EP3270551B1 (en) Retrieval device, retrieval method, program, and recording medium
JP2005513895A5 (ja)
US9449116B2 (en) Online radix tree compression with key sequence skip
JP2005242997A (ja) データ検索装置及び方法
US9419646B2 (en) Hardware compression to find backward references with multi-level hashes
US8694707B2 (en) Memory data transfer method and system
US20080034115A1 (en) Apparatus for handling hash collisions of hash searching and method using the same
JP2004194321A (ja) トライを基礎としたipルックアップアルゴリズムのパイプライン型ハードウエア実現におけるルックアップレイテンシーを減少させるメカニズム
JP2008085866A (ja) データ格納方法、データ検索方法、データ検索回路及びデータ削除回路
JP3558151B2 (ja) データ検索回路
CN107204926B (zh) 预处理cache的路由快速查找方法
JP2010211388A (ja) 検索装置及び検索方法
JP4642628B2 (ja) データ転送装置、アドレス情報検索回路、及びアドレス情報検索方法
CN109344222B (zh) 一种高带宽tcam的查找与存储方法及装置
JP3754043B2 (ja) データ検索装置
JP6205463B2 (ja) 検索装置、検索方法、プログラム、及び記録媒体
JP6495343B2 (ja) リスト内でのアイテム一致の検索
JPWO2004088539A1 (ja) 構文解析方法及び構文解析のためのプログラマブル・プロセッサ・ユニット

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080922

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20081210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110215