JP2014123936A - 検索システム - Google Patents
検索システム Download PDFInfo
- Publication number
- JP2014123936A JP2014123936A JP2013092374A JP2013092374A JP2014123936A JP 2014123936 A JP2014123936 A JP 2014123936A JP 2013092374 A JP2013092374 A JP 2013092374A JP 2013092374 A JP2013092374 A JP 2013092374A JP 2014123936 A JP2014123936 A JP 2014123936A
- Authority
- JP
- Japan
- Prior art keywords
- search
- data
- bit
- read
- memory
- 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.)
- Granted
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
- G11C15/04—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 using semiconductor elements
-
- 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/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】検索システム2は、TCAM20,22と、TCAMを用いない検索エンジン21とを組み合わせたものである。TCAMを用いない検索エンジン21は、汎用メモリセル構造を用いて構築され、被検索データの有効ビット長ごとに異なるメモリ空間が割り当てられる。
【選択図】図8
Description
[TCAMの概略構成]
図1は、TCAMの構成を模式的に示すブロック図である。TCAM100は、メモリセルアレイ101と、プライオリティ・エンコーダ102とを含む。図1では、簡単のために、検索キーが4ビットであり、メモリセルアレイに4ビットのアドレスが割り当てられる場合(すなわち、格納可能なデータ数が16個)の場合が示されている。
図2は、TCAMのメモリセルの一例を示す回路図である。図2を参照して、TCAMセルMCは、SRAM(Static Random Access Memory)によって構成される2つのサブメモリセルSMC1およびSMC2と、これらのサブメモリセルSMC1およびSMC2に格納されるビットデータと検索ビットデータを比較する比較部CMPを含む。
図3は、TCAMの詳細な構成を示すブロック図である。図2、図3を参照して、TCAM100は、メモリセルアレイ101と、プライオリティ・エンコーダ102と、ワード線デコーダ104と、センスアンプ&ビット線ドライバ105_0〜105_nと、サーチ線ドライバ106と、プリチャージ電圧発生回路107とを含む。TCAM100は、さらに、メモリセルアレイ101の行にそれぞれ対応して設けられたワード線対WL0,WL1およびマッチ線MLと、列にそれぞれ対応して設けられたビット線対BL,/BLおよびサーチ線対SL,/SLとを含む。
上記のように、TCAMは、特殊なメモリセルを使用することで、検索時に、全検索テーブル空間を一括して活性化させ、検索キーに一致するデータを検索する方式である。このため、検索速度は高速であるが、極めて消費電力が大きくなる問題がある。
[省電力検索エンジンの構成]
図4は、省電力検索エンジンの構成を模式的に示すブロック図である。図4では、図1のTCAMの場合と同様に、6つの被検索データ[0101],[010*],[0***],[1010],[101*],[10**]に対して、入力された検索キー[0101]を用いた検索が行なわれる例が示される。そして、検索キー[0101]に一致するデータ[0101],[010*],[0***]のうち、最も有効ビット長の長い[0101]に対応するコード[0011]が出力される例が示される。図1の場合と同様に検索キーのビット長Mを4としているが、実際には、よりビット長の長い検索キーおよび被検索データが用いられる。検索動作は、検索キー[0101]の入力によって開始される。
記憶部201は、DRAM、SRAMなどの汎用メモリによって構成される互いに空間サイズの異なる複数のメモリ空間を含む。検索テーブルは、これらのメモリ空間を用いて構築される。通常、検索キーのビット数M(M≧2)に応じて、互いに空間サイズの異なる1〜Mビットのアドレス長のM個のメモリ空間が設けられる。図4では、M=4として、1〜4ビット長のアドレスによってそれぞれ特定可能なメモリ空間P1〜P4が設けられる。さらに、検索キーに一致する被検索データが無かった場合に出力されるコードを格納するために、メモリP0(レジスタP0とも称する)が設けられる。メモリP0にはアドレスは振られていないが、以下では、便宜上、メモリP0をメモリ空間P0と称する場合がある。
アドレス生成部202は、M個のメモリ空間の各々を特定するアドレスの長さに等しいビット数のデータを検索キーの最上位ビット側から抽出することによって、M個の読出アドレスを生成する。M個の読出アドレスは、1〜Mビットの各ビット長をそれぞれ有する。アドレス生成部202は、生成したM個の読出アドレスを記憶部201に出力する。
判定部203は、M個の読出アドレスによってM個のメモリ空間からそれぞれ読み出されたM個の読出データの各々が、所定のコードを含む有効な読出データであるか否かを判定する。具体的には、判定部203は、各読出データに含まれるバリッドビットが有効(「1」)であるか否かによって、各読出データが有効であるか否かを判定する。
選択部204は、判定部203によって有効と判定された読出データのうち、最も優先順位が高い、すなわち最も空間サイズの大きい(アドレスサイズが大きい)メモリ空間から読み出された読出データを選択し、選択した読出データに含まれる所定のコードを出力する。図4の場合、メモリ空間P4から読み出されたデータ「1/0011」に含まれるコード[0011]が、省電力検索エンジン200による検索結果として出力される。
上記の省電力検索エンジンによれば、TCAMという特殊なメモリセル構造を使用することなく、汎用メモリセル構造のみで安価な検索システムを構築することができる。この場合、検索キーから、各メモリ空間の読出アドレス(読出アドレス)が一意に定まるので、記憶部201において動作しているのは、読出アドレスによってアクセスされている領域のみである。したがって、全検索テーブル空間をチェックして、検索キーに一致する被検索データを探すTCAMに比べて低消費電力化が実現できる。
5×(2^1+2^2+2^3+2^4)=150
である(ただし、x^yは、xのy乗を表わす)。検索キーを1ビット増やして5ビットにすると、メモリ容量は、
5×(2^1+2^2+2^3+2^4+2^5)=310
に増加する。すなわち検索キーのビット長が増えると、メモリ容量は指数関数的に増加する。逆の考え方をすると検索キーのビット長が短いときは、省電力検索エンジンは非常に有効である。
図5は、実施の形態1による検索システムの構成を示すブロック図である。図5では、IPv4(Internet Protocol Version 4)用のIPアドレスの検索に用いられる場合を想定し、検索キーのビット数Lを32ビットにしている。
図8は、実施の形態2による検索システムの構成を示すブロック図である。実施の形態2の検索システム2は、ビット長Lの複数のデータワードを登録可能であり、入力されたビット長Lの検索キーと一致するデータワードを検索する。ここで、各データワードの最下位ビット側から連続する1または複数ビットは、ドントケアビットに設定可能である。
[省電力検索エンジン200Aの構成]
図13は、実施の形態3による検索システムで用いられる省電力検索エンジン200Aの構成を示すブロック図である。
図14は、図13の省電力検索エンジン200Aの使用例を説明するための図である。図14では、4ビットの検索キーに対応した省電力検索エンジン200Aを、2ビットの検索キーに対応した4つの省電力検索エンジンとして使用する例が示されている。この場合、記憶部201は、4つの記憶部(検索テーブル)201_0,201_1,201_2,201_3に分割される。記憶部201_0〜201_3のうち、どの記憶部を検索対象にするかは、検索キーに付加する2ビットのヘッダによって区別される。図14の場合、記憶部201_0,201_1,201_2,201_3は、ヘッダ“00”,“01”,“10”,“11”によってそれぞれ区別される。
図15は、図13の省電力検索エンジン200Aのその他の使用例を説明するための図である。図15では、4ビットの検索キーに対応した省電力検索エンジン200Aを、3ビットの検索キーに対応した1つの省電力エンジンとして使用する例が示されている。この場合、メモリ空間P3〜P1およびメモリP0が3ビットの検索キーに対応した省電力検索エンジン用の記憶部207(検索テーブル)として用いられ、メモリ空間P4は用いられない。
Claims (9)
- 各々が、ビット長Mの複数のデータを格納可能であり、入力されたビット長L(ただし、L>M)の検索キーのうち予め定めるN個(ただし、N=L−M)の特定ビットを除くビット長Mの非特定ビット列と一致する格納データを第1の検索方式で検索する複数の第1の検索部と、
ビット長Lの複数のデータを格納可能であり、前記検索キーと一致する格納データを前記第1の検索方式と異なる第2の検索方式で検索する第2の検索部と、
前記複数の第1の検索部および前記の第2の検索部の各々の検索結果に基づいて、いずれか1つの検索部の検索結果を選択する選択回路とを備えた検索システム。 - 前記複数の第1の検索部および前記第2の検索部の各々は、
最下位ビット側から連続する1または複数のドントケアビットを含むデータを格納可能であり、
検索された格納データのうち、ドントケアビットを除く有効ビット長が最長の格納データに対応する情報を検索結果として出力するように構成されている、請求項1に記載の検索システム。 - ビット長Nの複数のデータを格納可能であり、前記検索キーのうち前記N個の特定ビットからなるビット列と一致する格納データを前記第2の検索方式で検索する第3の検索部をさらに備え、
前記複数の第1の検索部は、前記第3の検索部に格納されている複数のデータにそれぞれ対応し、
前記選択回路は、前記複数の第1の検索部から出力された複数の検索結果のうちの1つを選択する場合には、前記第3の検索部によって検索された格納データに対応する第1の検索部の検索結果を選択する、請求項2に記載の検索システム。 - 前記第2の検索部および前記第3の検索部はTCAM(Ternary Content Addressable Memory)を含み、
前記複数の第1の検索部の各々はTCAMを含まない、請求項3に記載の検索システム。 - 前記第2の検索部はTCAM(Ternary Content Addressable Memory)を含み、
前記複数の第1の検索部の各々はTCAMを含まない、請求項2に記載の検索システム。 - 各前記第1の検索部は、M個のメモリ空間を有する記憶部を含み、
第i番目(ただし、1≦i≦M)のメモリ空間には、ビット数iのアドレスが割り当てられ、
アドレスサイズの大きいメモリ空間ほど優先順位が高く、
各前記第1の検索部において、各格納データの有効ビット部分をアドレスとして特定される前記メモリ空間の記憶領域には、各格納データに対応するコードが記憶され、
各前記第1の検索部は、さらに、
前記ビット長Mの非特定ビット列の最上位ビット側から、連続するj個(ただし、1≦j≦M)のビットを抽出することによって、前記M個のメモリ空間にそれぞれ対応するM個の読出アドレスを生成するアドレス生成部と、
前記M個の読出しアドレスによって前記M個のメモリ空間からそれぞれ読み出された読出データが、前記コードを含む有効な読出データであるか否かを判定する判定部と、
前記判定部によって有効と判定された読出データのうち、最も前記優先順位の高いメモリ空間から読み出された読出データに含まれるコードを選択して出力する選択部とを含む、請求項4または5に記載の検索システム。 - 前記M個のメモリ空間からそれぞれ読み出されたM個の読出データのうち予め定める1または複数を除く読出データは、前記判定部の判定対象として設定可能であり、
前記判定部は、判定対象に設定された読出データについて有効か否かを判定する、請求項6に記載の検索システム。 - 各前記第1の検索部は、M個のメモリ空間およびレジスタを有する記憶部を含み、
第i番目(ただし、1≦i≦M)のメモリ空間には、ビット数iのアドレスが割り当てられ、
アドレスサイズの大きいメモリ空間ほど優先順位が高く、
各前記第1の検索部において、各格納データの有効ビット部分をアドレスとして特定される前記メモリ空間の記憶領域には、各格納データに対応するコードが記憶され、
前記レジスタには、いずれの前記格納データも前記ビット長Mの非特定ビット列に一致しなかったときに出力するためのコードが記憶され、
前記レジスタは、前記M個のメモリ空間のいずれよりも優先順位が低く、
各前記第1の検索部は、さらに、
前記ビット長Mの非特定ビット列の最上位ビット側から、連続するj個(ただし、1≦j≦M)のビットを抽出することによって、前記M個のメモリ空間にそれぞれ対応するM個の読出アドレスを生成するアドレス生成部と、
前記M個の読出しアドレスによって前記M個のメモリ空間からそれぞれ読み出された読出データおよび前記レジスタから読み出された読出データが、前記コードを含む有効な読出データであるか否かを判定する判定部と、
前記判定部によって有効と判定された読出データのうち、最も前記優先順位の高いメモリ空間または前記レジスタから読み出された読出データに含まれるコードを選択して出力する選択部とを含む、請求項4または5に記載の検索システム。 - 前記M個のメモリ空間からそれぞれ読み出されたM個の読出データおよび前記レジスタから読み出された読出データのうち予め定める1または複数を除く読出データは、前記判定部の判定対象として設定可能であり、
前記判定部は、判定対象に設定された読出データについて有効か否かを判定する、請求項8に記載の検索システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013092374A JP6170718B2 (ja) | 2012-11-21 | 2013-04-25 | 検索システム |
US14/085,596 US9552881B2 (en) | 2012-11-21 | 2013-11-20 | Search system comprising first and second search units with different search schemes that respectively use specific and non-specific bit strings of search key |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012254983 | 2012-11-21 | ||
JP2012254983 | 2012-11-21 | ||
JP2013092374A JP6170718B2 (ja) | 2012-11-21 | 2013-04-25 | 検索システム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014123936A true JP2014123936A (ja) | 2014-07-03 |
JP2014123936A5 JP2014123936A5 (ja) | 2016-03-24 |
JP6170718B2 JP6170718B2 (ja) | 2017-07-26 |
Family
ID=50880813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013092374A Active JP6170718B2 (ja) | 2012-11-21 | 2013-04-25 | 検索システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9552881B2 (ja) |
JP (1) | JP6170718B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017049753A (ja) * | 2015-09-01 | 2017-03-09 | ルネサスエレクトロニクス株式会社 | 半導体装置および情報処理システム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778197B (zh) * | 2014-12-30 | 2019-02-01 | 北京锐安科技有限公司 | 一种数据查找方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06261078A (ja) * | 1993-03-03 | 1994-09-16 | Hitachi Ltd | テーブル検索方法及びルータ装置 |
JPH0823347A (ja) * | 1994-07-08 | 1996-01-23 | Nippon Telegr & Teleph Corp <Ntt> | 方路選択方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6744652B2 (en) * | 2001-08-22 | 2004-06-01 | Netlogic Microsystems, Inc. | Concurrent searching of different tables within a content addressable memory |
JP3639553B2 (ja) | 2001-10-23 | 2005-04-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ルーティング処理装置およびルーティング方法 |
JP3936883B2 (ja) * | 2002-04-08 | 2007-06-27 | 株式会社日立製作所 | フロー検出装置およびフロー検出機能を備えたパケット転送装置 |
US6771525B2 (en) * | 2002-05-31 | 2004-08-03 | Mosaid Technologies Incorporated | Method and apparatus for performing variable word width searches in a content addressable memory |
JP4336625B2 (ja) | 2004-06-17 | 2009-09-30 | 株式会社日立製作所 | パケット転送装置 |
US7707217B2 (en) * | 2005-01-24 | 2010-04-27 | 3Com Corporation | Trie search engines and ternary CAM used as pre-classifier |
JP2013038536A (ja) | 2011-08-05 | 2013-02-21 | Renesas Electronics Corp | 半導体装置 |
WO2013071183A1 (en) * | 2011-11-11 | 2013-05-16 | Tabula, Inc. | Content addressable memory in integrated circuit |
US8619451B1 (en) * | 2012-01-06 | 2013-12-31 | Netlogic Microsystems, Inc. | Power savings in a content addressable memory device using masked pre-compare operations |
US9269411B2 (en) * | 2012-03-14 | 2016-02-23 | Broadcom Corporation | Organizing data in a hybrid memory for search operations |
-
2013
- 2013-04-25 JP JP2013092374A patent/JP6170718B2/ja active Active
- 2013-11-20 US US14/085,596 patent/US9552881B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06261078A (ja) * | 1993-03-03 | 1994-09-16 | Hitachi Ltd | テーブル検索方法及びルータ装置 |
JPH0823347A (ja) * | 1994-07-08 | 1996-01-23 | Nippon Telegr & Teleph Corp <Ntt> | 方路選択方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017049753A (ja) * | 2015-09-01 | 2017-03-09 | ルネサスエレクトロニクス株式会社 | 半導体装置および情報処理システム |
Also Published As
Publication number | Publication date |
---|---|
US9552881B2 (en) | 2017-01-24 |
US20140160825A1 (en) | 2014-06-12 |
JP6170718B2 (ja) | 2017-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6934796B1 (en) | Content addressable memory with hashing function | |
US6697276B1 (en) | Content addressable memory device | |
US6910097B1 (en) | Classless interdomain routing using binary content addressable memory | |
US8462532B1 (en) | Fast quaternary content addressable memory cell | |
US7602629B2 (en) | Content addressable memory | |
US6751110B2 (en) | Static content addressable memory cell | |
JP3599273B2 (ja) | 内容参照可能メモリの改良 | |
US7280379B2 (en) | CAM device and method for repairing the same | |
US7057913B2 (en) | Low-power search line circuit encoding technique for content addressable memories | |
US20030005210A1 (en) | Intelligent CAM cell for CIDR processor | |
US7251707B1 (en) | Content based content addressable memory block enabling using search key | |
US7525867B2 (en) | Storage circuit and method therefor | |
US7219188B1 (en) | Segmented content addressable memory array and priority encoder | |
JP6170718B2 (ja) | 検索システム | |
US10545878B2 (en) | Search memory | |
JP4850403B2 (ja) | マグニチュード内容参照可能メモリ | |
US6898100B2 (en) | Semiconductor memory device used for cache memory | |
JPH05198186A (ja) | 連想メモリシステム | |
US11631459B2 (en) | Dual compare ternary content addressable memory | |
US7894226B2 (en) | Content addressable memory based on a ripple search scheme | |
JP5632797B2 (ja) | 連想メモリ、およびネットワークアドレス検索装置 | |
JP3908209B2 (ja) | ダイナミック連想記憶セル | |
JP2004253023A (ja) | 連想メモリ | |
JPH0235689A (ja) | 連想メモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160204 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160204 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161122 |
|
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: 20170613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170703 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6170718 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |