JP3938124B2 - データ検索装置 - Google Patents
データ検索装置 Download PDFInfo
- Publication number
- JP3938124B2 JP3938124B2 JP2003328406A JP2003328406A JP3938124B2 JP 3938124 B2 JP3938124 B2 JP 3938124B2 JP 2003328406 A JP2003328406 A JP 2003328406A JP 2003328406 A JP2003328406 A JP 2003328406A JP 3938124 B2 JP3938124 B2 JP 3938124B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- search
- memory
- control unit
- block
- 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
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
この場合、さらに好適に、前記格納データ範囲表示レジスタと入力検索データとを比較し、比較結果にもとづいて、当該入力検索データと比較すべきデータが格納されているメモリブロックを含むメモリ領域を指定する比較指定部と、前記比較指定部の指定結果にもとづいて、前記複数のメモリブロックから、前記比較すべきデータが格納されたメモリブロックを検索時にアクティブにするブロック制御部と、を有することを特徴とする。
このような構成のデータ検索装置では、入力される検索データに応じて、どのメモリブロック内を検索すればよいかがわかる。つまり、第2の処理重要度とメモリブロックとの対応関係が格納データ範囲表示レジスタに保持されている場合、その保持内容と入力検索データを比較指定部が比較することにより、あるいは、ブロック指定レジスタの保持内容を、参照番号をもとに調べることにより、ブロック制御部がアクティブにすべきメモリブロックが特定できる。したがって、検索データと同じ内容のデータが含まれる可能性があるメモリブロックを含む1つまたは複数のメモリブロックのみを、検索時にアクティブにする制御が可能となる。そのとき、他のメモリブロックはアクティブにされない。
第1の実施の形態はデータ検索装置に関する。
本発明の実施の形態におけるデータ検索装置は、半導体メモリ集積回路、当該集積回路を搭載したモジュール、基板、あるいは、これらが筐体に収容された電子機器等で実現される。以下、本発明のデータ検索装置の要部である連想メモリ(CAM)を中心に、実施の形態を説明する。
ブロック選択制御部2は、本発明の「比較指定部」と「ブロック制御部」との機能を有する。検索制御部3は、データ検索に必要な制御を行うメモリ周辺回路であり、とくに図示しないが、CAMセルに接続されたビット線、ビット補線、マッチ線等の各種信号線を選択し駆動する回路、書き込みや読み出し時のデータバッファ回路、電源回路等を含む。また、必要に応じて、検索データ(SK)の一部のビットを比較対象から除くためのマスク機能も検索制御部3に含まれる。さらに、検索制御部3は、第1の処理重要度の順序にしたがって入力されてきた格納ルールデータ(第1のデータ群)を、第2の処理重要度の順序(たとえば、データ値の大小の順序)にしたがって並べ替える「再配列手段」の機能を有する。検索制御部3は、この第2の処理重要度で配列されたデータ群(第2のデータ群)を、その第2の処理重要度の順位で順次、複数のメモリブロック1−1,1−2,1−3,…に割り当てる「割り当て手段」の機能も有する。なお、この「再配列手段」と「割り当て手段」を1つまたはそれぞれ独立の機能ブロックに実現してもよいし、また、「割り当て手段」の機能をブロック選択制御部2に持たせてもよい。
上記「再配列手段」が第1のデータ群を並べ替えて第2のデータ群とし、上記「割り当て手段」により、第2のデータ群に対し、第2の処理重要度の順序にしたがって順次それぞれのメモリグロックに格納するデータ範囲が決められる。後述するように、そのデータ範囲とメモリブロックとの関係を示す情報は、たとえばブロック選択制御部2内の「格納データ範囲表示レジスタ」に保持される。その後、「再配列手段」は、第2のデータ群を実際のメモリブロックに書き込む際に、第2の処理重要度の順位で割り当てられたメモリブロックごとのデータ単位で、もう一度、本来の順位である第1の処理重要度に再配置し直す。そのため、検索制御部3により各メモリブロックに格納されたデータは、大きくメモリブロック間で見ると第2の処理重要度の範囲で区分けされているが、個々のメモリブロック内では第1の処理重要度で順次配列されて格納されている。
図2に、従来のデータ格納構造を示す。本例では、格納ルールデータは11個存在し、そのルールデータは各4ビットずつの3つの領域A,B,Cに分かれている。
最もプライオリティが高いルールデータ100(同図に示されるプライオリティタグ102がP1のもの)は、1番目のアドレスに格納されており、Aが11,Bが2−4,Cが3となっている。2番目のプライオリティのルールデータ100(同図に示されるプライオリティタグ102がP2のもの)は2番目のアドレスに格納されており、Aが0,Bが6,Cが3−5となっている。また、一番プライオリティが低いルールデータ100(同図に示されるプライオリティタグ102がP11のもの)は、11番目のアドレスに配置されており、Aが8,Bが2,Cが10となっている。
BLOCK1のデータ範囲は、「000201(プライオリティタグP4のルールデータ)」から「011531(プライオリティタグP7のルールデータ)」、
BLOCK2のデータ範囲は、「011502(プライオリティタグP9のルールデータ)」から「070431(プライオリティタグP10のルールデータ)」、
BLOCK3のデータ範囲は、「080210(プライオリティタグP11のルールデータ)」から「120405(プライオリティタグP5のルールデータ)」、
となる。
BLOCK1にはこのプライオリティタグP7のルールデータの「011501」までを、BLOCK2には「011502」から「011531」までのルールデータを分解して格納した場合、BLOCK1のデータ範囲は「000201」から「011501(プライオリティタグP7のルールデータの一部)」まで、BLOCK2のデータ範囲は「011502(プライオリティタグP7のルールデータの一部)」から「070431」まで、BLOCK3のデータ範囲は「080210」から「120405」までとなる。
BLOCK1にはこのプライオリティタグP7のルールデータの「010800」から「011531」のすべてを格納し、BLOCK2にはプライオリティタグP9のルールデータの「011502」以降のルールデータを格納した場合、BLOCK1のデータ範囲は「000201」から「011531」まで、BLOCK2のデータ範囲は「011502」から「070431」まで、BLOCK3のデータ範囲は「080210」から「120405」までとなる。
このときはBLOCK1とBLOCK2の間でデータの範囲が重複していることに注意をする必要がある。
上記第1の実施の形態では、比較指定部としてのポインタが保持しているデータの格納場所に関する情報がデータの大きさの範囲であった。
第2の実施の形態では、このデータの格納場所に関する情報として、データの大きさの範囲以外でもよい場合を例示する。
このデータ検索装置は、CAM30内に、第1の実施の形態と同様に、複数のメモリブロック(BLOCK)1−1〜1−4を有するCAM部1と、ブロック制御部、たとえばブロックコントローラ23とを有する。CAM部1内の各BLOCKの構成、BLOCKにデータを格納する方法、データが複数のBLOCKに含まれる場合のBLOCKの分割の仕方などは、第1の実施の形態と共通するため、ここでの説明は省略する。
同図中、「テーブル1」ではBLOCK1と2のブロック番号値が1で他は0である。これは、BLOCK1とBLOCK2のみがこのテーブル1に属することを表している。各BLOCKは基本的に1つのテーブルに属するが、図示のように、重複して複数のテーブルに属することも可能である。また、各テーブルの構成およびBLOCK数に関しても特に制限はない。
図8に、この変形例のブロック図を示す。
このデータ検索装置は、そのCAM30内に、第1の実施の形態と共通する構成として、データの大きさの範囲を示す情報を保持する「格納データ範囲表示レジスタ」としてのポインタ22(または22A)と、「比較指定部」としてのレンジコンパレータ21とを有する。これらの機能は第1の実施の形態と共通することから、ここでの説明は省略する。この変形例では、検索データと比較すべき格納データのデータ格納領域をテーブルとレンジ(大きさの範囲)の双方から調べるため、その精度が向上し、また、テーブルで大まかなデータ格納領域を絞って、その後、レンジによりデータ格納領域を特定するなど、この制御の効率を上げることができる。
CAMは、例えばSRAMベースのセル構成とすることができるため高速なデータ検索が可能である。
従来のCAMは、データがプライオリティ順(第1の処理重要度の順序)に格納されているのみで、データ自身から判別できる固有の順位(第2の処理重要度の順序)にもとづいて配置されていないことから、検索データと格納データの関係が全く分からない。そのため、従来のCAMでは、検索データが入力されるごとにすべてのCAMセルを短時間で一斉に駆動して、メモリの全領域に対し検索を行っていた。
本実施の形態では、メモリを複数のメモリブロックに分け、原則的には1つのメモリブロックのみを、あるいは、1ブロックが数キロバイトのデータを保持する通常のメモリブロックの規模から言うと確率的に少ないが、場合によっては2つのメモリブロックを駆動する。そのため、メモリ容量が大きく、ブロック数が多いほど、消費電力の低減効果が大きい。
ところで、例えばサーバー側や中継用のルータでは、極めて短い時間に非常に大量のパケットを処理するため消費電力が増大する。CAMチップの消費電力の増大は、チップの発熱により誤動作を引き起こし、高速性能を阻害する。これが、CAMの集積化を進めるうえでのボトルネックになっていた。本実施の形態では、CAMの消費電力を数分の1から1桁以上大幅に低減できるため、このような大規模なルータ等の性能を飛躍的に向上させることが可能となる。
Claims (20)
- あらかじめ第1の処理重要度の順序に配列された複数のルールデータを含む第1のデータ群を新たに第2の処理重要度の順序に再配列する再配列手段と、この再配列手段により前記第2の処理重要度の順序に並べ替えられた新たな第2のデータ群を前記第2の処理重要度の順序の小さい方または大きい方から順次、複数のメモリブロックに割り当てる割り当て手段と、を有し、
前記割り当て手段により割り当てられたデータを前記メモリブロックに格納する際に、その前記メモリブロックの各々に割り当てられたデータに関して、前記再配列手段により前記第1の処理重要度の順序に再々配列して格納することを特徴とするデータ検索装置。 - 前記割り当て手段により割り当てられたデータに関して、すくなくとも1つの前記メモリブロックのデータが、前記第2の処理重要度の順序においてどの範囲にあるかを示す格納データ範囲表示レジスタを有することを特徴とする請求項1に記載のデータ検索装置。
- 前記格納データ範囲表示レジスタと入力検索データとを比較し、比較結果にもとづいて、当該入力検索データと比較すべきデータが格納されているメモリブロックを含むメモリ領域を指定する比較指定部と、
前記比較指定部の指定結果にもとづいて、前記複数のメモリブロックから、前記比較すべきデータが格納されたメモリブロックを検索時にアクティブにするブロック制御部と、を有することを特徴とする請求項2に記載のデータ検索装置。 - 前記複数のメモリブロックの何れか1つまたは複数のメモリブロックの組み合わせを参照番号に対応させて保持しているブロック指定レジスタと、
前記ブロック指定レジスタに格納された値に応じて前記メモリブロックをアクティブにするブロック制御部と、を有することを特徴とする請求項2に記載のデータ検索装置。 - 前記参照番号に対応して前記格納データ範囲表示レジスタを有することを特徴とする請求項4に記載のデータ検索装置。
- 前記第2の処理重要度が、数の大きさに応じた処理重要度を有することを特徴とする請求項1に記載のデータ検索装置。
- 前記第2の処理重要度が、数の大きさに応じた処理重要度を有することを特徴とする請求項2に記載のデータ検索装置。
- 前記第2の処理重要度が、数の大きさに応じた処理重要度を有することを特徴とする請求項3に記載のデータ検索装置。
- 前記第2の処理重要度が、数の大きさに応じた処理重要度を有することを特徴とする請求項4に記載のデータ検索装置。
- 前記第2の処理重要度が、数の大きさに応じた処理重要度を有することを特徴とする請求項5に記載のデータ検索装置。
- 前記複数のメモリブロックが連想メモリ素子で構成され、
格納されたデータの前記第2の処理重要度の範囲に応じて決められる1つ又は複数のメモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項1に記載のデータ検索装置。 - 前記複数のメモリブロックが連想メモリ素子で構成され、
格納されたデータの前記第2の処理重要度の範囲に応じて決められる1つ又は複数のメモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項2に記載のデータ検索装置。 - 前記複数のメモリブロックが連想メモリ素子で構成され、
アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項3に記載のデータ検索装置。 - 前記複数のメモリブロックが連想メモリ素子で構成され、
アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項4に記載のデータ検索装置。 - 前記複数のメモリブロックが連想メモリ素子で構成され、
アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項5に記載のデータ検索装置。 - 前記複数のメモリブロックが連想メモリ素子で構成され、
格納されたデータの前記第2の処理重要度の範囲に応じて決められる1つ又は複数のメモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項6に記載のデータ検索装置。 - 前記複数のメモリブロックが連想メモリ素子で構成され、
格納されたデータの前記第2の処理重要度の範囲に応じて決められる1つ又は複数のメモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項7に記載のデータ検索装置。 - 前記複数のメモリブロックが連想メモリ素子で構成され、
アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項8に記載のデータ検索装置。 - 前記複数のメモリブロックが連想メモリ素子で構成され、
アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項9に記載のデータ検索装置。 - 前記複数のメモリブロックが連想メモリ素子で構成され、
アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項10に記載のデータ検索装置。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003328406A JP3938124B2 (ja) | 2002-11-20 | 2003-09-19 | データ検索装置 |
| KR1020030081434A KR101012825B1 (ko) | 2002-11-20 | 2003-11-18 | 데이터 검색장치 |
| US10/715,352 US7243187B2 (en) | 2002-11-20 | 2003-11-19 | Data retrieval device |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002337202 | 2002-11-20 | ||
| JP2003328406A JP3938124B2 (ja) | 2002-11-20 | 2003-09-19 | データ検索装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004185792A JP2004185792A (ja) | 2004-07-02 |
| JP3938124B2 true JP3938124B2 (ja) | 2007-06-27 |
Family
ID=32328336
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003328406A Expired - Fee Related JP3938124B2 (ja) | 2002-11-20 | 2003-09-19 | データ検索装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US7243187B2 (ja) |
| JP (1) | JP3938124B2 (ja) |
| KR (1) | KR101012825B1 (ja) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4622490B2 (ja) * | 2004-12-02 | 2011-02-02 | 株式会社日立製作所 | データ転送装置 |
| JP5045229B2 (ja) * | 2007-05-14 | 2012-10-10 | 富士ゼロックス株式会社 | ストレージシステム及びストレージ装置 |
| JP5993938B2 (ja) * | 2011-04-30 | 2016-09-21 | ヴイエムウェア インコーポレイテッドVMware,Inc. | コンピュータリソースのエンタイトルメントおよびプロビジョニングのためのグループの動的管理 |
| JP5575997B1 (ja) | 2013-03-13 | 2014-08-20 | 長瀬産業株式会社 | 半導体装置及び半導体装置に対するエントリアドレス書き込み/読み出し方法 |
| JP6205386B2 (ja) | 2015-05-18 | 2017-09-27 | 長瀬産業株式会社 | 半導体装置及び情報書込/読出方法 |
| JP6659486B2 (ja) * | 2016-07-20 | 2020-03-04 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| CN111201559B (zh) * | 2017-10-12 | 2023-08-18 | 日本电信电话株式会社 | 置换装置、置换方法、以及记录介质 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4749600B2 (ja) | 2001-05-30 | 2011-08-17 | 富士通セミコンダクター株式会社 | エントリデータの入れ替えを高速化したコンテンツ・アドレッサブル・メモリ |
| US6745280B2 (en) * | 2002-03-28 | 2004-06-01 | Integrated Device Technology, Inc. | Content addressable memories having entries stored therein with independently searchable weight fields and methods of operating same |
-
2003
- 2003-09-19 JP JP2003328406A patent/JP3938124B2/ja not_active Expired - Fee Related
- 2003-11-18 KR KR1020030081434A patent/KR101012825B1/ko not_active Expired - Fee Related
- 2003-11-19 US US10/715,352 patent/US7243187B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004185792A (ja) | 2004-07-02 |
| US7243187B2 (en) | 2007-07-10 |
| US20040103236A1 (en) | 2004-05-27 |
| KR20040044351A (ko) | 2004-05-28 |
| KR101012825B1 (ko) | 2011-02-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1936869B (zh) | 用于翻译地址的方法和系统 | |
| US6538911B1 (en) | Content addressable memory with block select for power management | |
| US20070192303A1 (en) | Method and Apparatus for Longest Prefix Matching in Processing a Forwarding Information Database | |
| US6430672B1 (en) | Method for performing address mapping using two lookup tables | |
| US20080104364A1 (en) | Vector indexed memory unit and method | |
| US8345685B2 (en) | Method and device for processing data packets | |
| CN112639748B (zh) | 异步正向缓存存储器系统和方法 | |
| US7093092B2 (en) | Methods and apparatus for data storage and retrieval | |
| CN112602066A (zh) | 正向高速缓存存储器系统和方法 | |
| US6898661B2 (en) | Search memory, memory search controller, and memory search method | |
| US11899985B1 (en) | Virtual modules in TCAM | |
| JP3938124B2 (ja) | データ検索装置 | |
| US9047329B1 (en) | Method and system for an algorithm and circuit for a high performance exact match lookup function | |
| US7099992B2 (en) | Distributed programmable priority encoder capable of finding the longest match in a single operation | |
| US8028118B2 (en) | Using an index value located on a page table to index page attributes | |
| JP4669244B2 (ja) | キャッシュメモリ装置およびメモリ制御方法 | |
| US11960402B2 (en) | Integrated circuit and configuration method thereof | |
| JP2009015509A (ja) | キャッシュメモリ装置 | |
| US6687786B1 (en) | Automated free entry management for content-addressable memory using virtual page pre-fetch | |
| US7043515B2 (en) | Methods and apparatus for modular reduction circuits | |
| JP5631278B2 (ja) | 内容参照メモリ | |
| US6742077B1 (en) | System for accessing a memory comprising interleaved memory modules having different capacities | |
| JP2006012006A (ja) | キャッシュ装置及び方法 | |
| CN119537266A (zh) | 浮动内部上下文存储器 | |
| Liptay | Structural aspects of the system/360 model 85 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040428 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040428 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060619 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060627 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070306 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070319 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100406 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110406 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120406 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120406 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |