[go: up one dir, main page]

JP3938124B2 - データ検索装置 - Google Patents

データ検索装置 Download PDF

Info

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
Application number
JP2003328406A
Other languages
English (en)
Other versions
JP2004185792A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2003328406A priority Critical patent/JP3938124B2/ja
Priority to KR1020030081434A priority patent/KR101012825B1/ko
Priority to US10/715,352 priority patent/US7243187B2/en
Publication of JP2004185792A publication Critical patent/JP2004185792A/ja
Application granted granted Critical
Publication of JP3938124B2 publication Critical patent/JP3938124B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital 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

本発明は、高速で低消費電力のデータ検索装置に関するものである。
インターネットの発展に伴って、パケットの高速経路探索やセキュリティ確保のためにあらかじめ決められたルールデータとパケットデータとの高速な検索比較が要求されている。このような要求から、高速データ検索が可能な連想メモリ(CAM:Content Addressable Memory)が必須のデバイスとなってきている(たとえば、特許文献1参照)。
上記特許文献1には、「0」と「1」のみのデータをもつバイナリ(Binary)CAMや、これに加えて「X(Don't care)」のデータをもつターナリ(Ternary)CAMの種類、あるいはビット長の違いに応じて、格納すべきデータを異にする複数の物理バンクを有する連想メモリが開示されている。
ところで、現在主流のCAMは3値CAM(ターナリCAM)と称され、1つのデータは複数のビットデータで構成され、その各ビットは「0」と「1」と「*(ドントケア)」の3種類を格納することができる。この格納されたデータ(ルールデータ)と外部から入力される検索データ(パケットデータ)とをビットごとに比較する。格納データのビットが「0(または1)」で、検索データの対応ビットが「0(または1)」のときはビット比較結果が一致し、検索データが「1(または0)」のときは不一致ということになる。また、「*(ドントケア)」は、検索データが「0」であっても「1」であっても一致するということになる。この比較がデータを構成するすべてのビットに対して行われ、そのすべてが一致したとき、はじめて格納データと検索データが一致したことになる。
また、CAMに格納されるデータと外部からの検索データが複数個一致する場合が存在するので、その際に格納アドレスの小さい(あるいは大きい)順に出力するためのプライオリティ回路が存在する。通常は、この一致したデータのアドレスの一番小さいもののみが出力される構成になっている。したがって、ルールデータを作成する場合は、アドレスの小さい順に重要なルールデータを格納してゆくことになる。この一例を示したものが、図2である。
図2では簡単のために、格納ルールデータ100は大きく4ビットデータの3つの領域(A,B,C)に分かれており、そのルールデータのプライオリティ順(図中では、理解のために順番のプライオリティタグ102をつけているが、実際にはこのようなものは存在しない)にしたがって格納アドレス101の位置にそれぞれのルールデータが格納される。また、この格納ルールデータ100の中の「*(図中はこの記号1つで4ビットを表現している)」はその値がなんでもよいことを示している。さらに、たとえば「2−4」というのは、そのデータが「2」から「4」の領域を表現することを表している。実際には、このような範囲の指定には、格納ルールデータ100の各ビットの値を適当な値にし、かつ複数の格納ルールデータ100で1つのルールを表現する場合もあるが、今回簡単のために1つの格納ルールデータ100で1つのルールが表現できるとしている。
しかしながら、従来の連想メモリは自らに格納された格納データ1つ1つに対応して比較回路を持ち、外部からの検索データとすべての格納データを一度に比較する構造を有する。そのため、きわめて高速な検索が可能となるが、すべての比較回路が同時に動くために、極めて大きな消費電力を必要とする。当然このデバイスを用いたデータ転送装置も高速なデータ転送が可能となるが、大きな消費電力が問題となっている。このような比較回路については上記特許文献1には言及されていないが、言及されていない以上、一般的な構成をとると考えられることから、同じ問題を抱えている。
たとえば、図2に示すCAMはルールデータを効率的に格納し、また、外部からのデータとの検索が極めて高速に行うことができるが、その消費電力が極めて大きい。これは、すべての格納ルールデータと一度に検索データを比較するからである。また、CAMのプライオリティ回路の特性上、重要なルールほど、アドレスの小さい(または大きい)位置に格納する必要があり、外部からの検索データと一致するルールが存在するエリアをあらかじめ特定することが困難なためである。そのために、すべてのルールデータに対して一致比較を行う必要があったことから、その一致比較の実行に大きな電力を消費している。
特開2001−236790号公報
解決しようとする問題点は、外部からの検索データとすべての格納データとを比較するため、消費電力が大きく、そのことが高速で大規模なデータ検索装置の実現を阻害していたことである。
本発明に係るデータ検索装置は、あらかじめ第1の処理重要度の順序に配列された複数のルールデータを含む第1のデータ群を新たに第2の処理重要度の順序に再配列する再配列手段と、この再配列手段により前記第2の処理重要度の順序に並べ替えられた新たな第2のデータ群を前記第2の処理重要度の順序の小さい方または大きい方から順次、複数のメモリブロックに割り当てる割り当て手段と、を有し、前記割り当て手段により割り当てられたデータを前記メモリブロックに格納する際に、その前記メモリブロックの各々に割り当てられたデータに関して、前記再配列手段により前記第1の処理重要度の順序に再々配列して格納することを特徴とする。
本発明では、好適に、前記割り当て手段により割り当てられたデータに関して、すくなくとも1つの前記メモリブロックのデータが、前記第2の処理重要度の順序においてどの範囲にあるかを示す格納データ範囲表示レジスタを有することを特徴とする。
この場合、さらに好適に、前記格納データ範囲表示レジスタと入力検索データとを比較し、比較結果にもとづいて、当該入力検索データと比較すべきデータが格納されているメモリブロックを含むメモリ領域を指定する比較指定部と、前記比較指定部の指定結果にもとづいて、前記複数のメモリブロックから、前記比較すべきデータが格納されたメモリブロックを検索時にアクティブにするブロック制御部と、を有することを特徴とする。
あるいは、上記格納データ範囲表示レジスタを有する場合、好適に、前記複数のメモリブロックの何れか1つまたは複数のメモリブロックの組み合わせを参照番号に対応させて保持しているブロック指定レジスタと、前記ブロック指定レジスタに格納された値に応じて前記メモリブロックをアクティブにするブロック制御部と、を有することを特徴とする。
本発明のデータ検索装置において、第1の処理重要度が決められた複数のルールデータを含む第1のデータ群が入力されると、前記再配列手段により、その第1のデータ群が、新たに第2の処理重要度の順序に再配列される。割り当て手段は、第2の処理重要度に並べ替えられた第2のデータ群を、第2の処理重要度の順序の小さい方(または大きい方)から順次、複数のメモリブロックに割り当てる。そして、第2のデータ群は、メモリごとに割り当てられたデータ単位で、再度、第1の処理重要度の順序に再配列され、それぞれのメモリブロックに格納される。
このような構成のデータ検索装置では、入力される検索データに応じて、どのメモリブロック内を検索すればよいかがわかる。つまり、第2の処理重要度とメモリブロックとの対応関係が格納データ範囲表示レジスタに保持されている場合、その保持内容と入力検索データを比較指定部が比較することにより、あるいは、ブロック指定レジスタの保持内容を、参照番号をもとに調べることにより、ブロック制御部がアクティブにすべきメモリブロックが特定できる。したがって、検索データと同じ内容のデータが含まれる可能性があるメモリブロックを含む1つまたは複数のメモリブロックのみを、検索時にアクティブにする制御が可能となる。そのとき、他のメモリブロックはアクティブにされない。
本発明の構成をもつデータ検索装置を構成することで、従来CAMの大きな問題点であった大きな消費電力の発生を抑えることが可能になる。これにより、CAM本来の格納データの構成が自由に変えられ、かつ高速検索を可能とする高速・低消費電力CAMが実現できる。
[第1の実施の形態]
第1の実施の形態はデータ検索装置に関する。
本発明の実施の形態におけるデータ検索装置は、半導体メモリ集積回路、当該集積回路を搭載したモジュール、基板、あるいは、これらが筐体に収容された電子機器等で実現される。以下、本発明のデータ検索装置の要部である連想メモリ(CAM)を中心に、実施の形態を説明する。
図1は、CAMの概略構成を示すブロック図である。同図に示すCAM10は、複数のメモリブロック1−1,1−2,1−3,…からなるCAM部1、メモリブロックの何れかをアクティブにするブロック選択制御部2、および、検索制御部3を有する。
ブロック選択制御部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の処理重要度で順次配列されて格納されている。
以下、このデータ配列と格納、ならびに、データ検索時の制御を詳細に説明する。最初に、第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となっている。
この例でもわかるように、A,B,Cを一連のデータとみなすと、最もプライオリティが高いルールデータ100はその大きさが110203から110403までの範囲を表し、2番目のプライオリティのルールデータ100は000603から000605の範囲を表し、11番目のプライオリティのルールデータ100は080210を表す。一方、この格納ルールデータと外部からの検索データを比較するわけであるが、その際、従来のCAMはすべての格納ルールデータの比較回路がすべて動くことになるわけである。
このようにすべての格納ルールデータ100に対して比較しなければならないのは、格納ルールデータ100がある一般的な秩序(データの大小等)をもって配置されておらず、検索データSKと格納ルールデータ100の関係が全くわからないためである。
そこで、本発明では、あらたに、その格納ルールデータ100と検索データSKにある関係を見いだせるようにCAMデータを構成し、アクセスする部分を限定することで、低消費電力化をはかるものである。
さて、一般的な秩序の代表的なものとして、データの大小がある。そこで、前述した「再配置手段」によって、これをまず大小の順番にならべ、それを4つずつのメモリブロック(以下、単に「BLOCK」と表記する)にアサインしなおしたものが、図3である。大きさの順で並べた場合、本来のルールデータ100のプライオリティの順番は保たれていない。しかし、各BLOCKに格納されるルールデータ100の範囲は明確になる。たとえば、
BLOCK1のデータ範囲は、「000201(プライオリティタグP4のルールデータ)」から「011531(プライオリティタグP7のルールデータ)」、
BLOCK2のデータ範囲は、「011502(プライオリティタグP9のルールデータ)」から「070431(プライオリティタグP10のルールデータ)」、
BLOCK3のデータ範囲は、「080210(プライオリティタグP11のルールデータ)」から「120405(プライオリティタグP5のルールデータ)」、
となる。
しかし、ここでBLOCK1とBLOCK2の境界に問題が発生する。つまり、プライオリティタグP7のルールデータは自ら範囲をもち、「010800」から「011531」までのデータを表現している。一方、プライオリティタグP9のルールデータは「011502」を表している。つまり、プライオリティタグP7のルールデータはプライオリティタグP9のルールデータよりも小さい場合もあるし、また大きい場合もあるわけである。
このような場合に、このルールデータをどのBLOCKのデータとして扱うべきか、ということについて大きく2つの表現方法が考えられ、そのときの各BLOCKのデータ範囲は以下のようになる。
1)分割する方法
BLOCK1にはこのプライオリティタグP7のルールデータの「011501」までを、BLOCK2には「011502」から「011531」までのルールデータを分解して格納した場合、BLOCK1のデータ範囲は「000201」から「011501(プライオリティタグP7のルールデータの一部)」まで、BLOCK2のデータ範囲は「011502(プライオリティタグP7のルールデータの一部)」から「070431」まで、BLOCK3のデータ範囲は「080210」から「120405」までとなる。
2)分割なしの方法
BLOCK1にはこのプライオリティタグP7のルールデータの「010800」から「011531」のすべてを格納し、BLOCK2にはプライオリティタグP9のルールデータの「011502」以降のルールデータを格納した場合、BLOCK1のデータ範囲は「000201」から「011531」まで、BLOCK2のデータ範囲は「011502」から「070431」まで、BLOCK3のデータ範囲は「080210」から「120405」までとなる。
このときはBLOCK1とBLOCK2の間でデータの範囲が重複していることに注意をする必要がある。
まずは、上記1)に示す分割する方法の場合のルールデータ格納状態を示したものが図4である。BLOCK1に表現されているプライオリティタグP7のルールデータは、「010800」から「011501」の範囲を表す(同図P7AとP7B)。また、BLOCK2に表現されているプライオリティタグP7のルールデータは、「011502」から「011531」までを表す(同図P7C)。各BLOCKのなかでは、一応本来のルールデータの本来のプライオリティにもとづいたデータ配置にしてある。
さてこの状態で、外部からの検索データとどのように一致検索されるかを説明する。図4では、本発明の「格納データ範囲表示レジスタ」の一実施態様を構成するポインタ22Aを有している。まず、この例ではメモリブロック(BLOCK1からBLOCK3)のデータの範囲を表すものとして、ポインタ22AにおけるBLOCK2のデータトップポインタTP2にはBLOCK2の最小データ「011502」、ポインタ22AにおけるBLOCK3のデータトップポインタTP3にはBLOCK3の最小データ「070200」があらかじめ入力されている。
外部から入力される検索データ(SK)201の値を「011503」とする。このデータが、レンジコンパレータ(Range Comparator)21に入力され、データトップポインタTP2,TP3と比較され、その範囲が格納ルールデータのBLOCK2の範囲であることが判別される。なお、レンジコンパレータ21は、本発明の「比較指定部」の一実施態様を構成する。
この判別結果により、ブロック制御部(BLOCK CONTROLER)23がBLOCK2のみをアクティブにする。すると検索データ(SK)201を用いて、アクティブにされたメモリブロックに対し検索が開始される。このようにして従来不可能であったアクティブ化する検索領域を限定し、CAMによる高速・低消費電力検索を可能とする。
また、格納ルールデータ領域の各BLOCKへのデータのアサインの方法として、データ範囲が重なっている上記2)に示す場合に関しては、図5を参照すると、同図ではBLOCKの格納データ範囲を表示するレジスタ22内に、BLOCKごとに2つのポインタ値、すなわちトップポインタ(Top Pointer)値TPとエンドポインタ(End Pointer) 値EPをもっている。BLOCK1に関しては各々TP1(0,2,1)とEP1(1,15,31)、BLOCK2に関してはTP2(1,15,2)とEP2(7,4,31)、BLOCK3に関してはTP3(8,2,10)とEP3(12,4,5)が、それぞれトップポインタ値TPとエンドポインタ値EPの組み合わせとなる。
上記1)の場合と同様に、まず検索データ(SK)201はレンジコンパレータ21で各BLOCKのトップポインタとエンドポインタの各値と比較される。いま、仮に検索データを「011503」とすると、検索対象領域はBLOCK1とBLOCK2ということになり、検索時にアクティブになる領域としてBLOCK1とBLOCK2が制御される。このとき一致すべきプライオリティタグP7のルールデータはBLOCK1に格納されているため、BLOCK1で一致が発生する。
このように、プライオリティタグP7のルールデータの範囲が「010800」から「011531」であるため、プライオリティタグP9のルールデータに比べて小さい領域と大きい領域がある場合に、アドレスの小さいものを出力するような単純なCAMのプライオリティエンコーダ(図示せず)を使用するためには本来のルール上プライオリティの高いものを上位(アドレスの小さい)BLOCKに配置することが重要である。また、もちろん、プライオリティエンコーダ回路を特殊なプライオリティを判断制御するように設計することも可能ではある。
上記説明ではとくに言及しなかったが、一般にはCAMを半導体集積回路で構成するが、そのICの内部に入れる構成は、最低でも複数のBLOCKからなるCAM部1のみでよく、必要に応じて、すなわち制御のしやすさなどの観点からメモリ周辺回路に入れるべき構成としては、たとえばブロック制御部23をICに搭載することが望ましい。いずれにしても、本実施の形態によれば、CAM部1を構成する複数のBLOCKのうち必要なBLOCKのみがアクティブにされるので、CAM ICの消費電力を低減することが可能となる。
[第2の実施の形態]
上記第1の実施の形態では、比較指定部としてのポインタが保持しているデータの格納場所に関する情報がデータの大きさの範囲であった。
第2の実施の形態では、このデータの格納場所に関する情報として、データの大きさの範囲以外でもよい場合を例示する。
図6は、第2の実施の形態に係るデータ検索装置のブロック図である。なお、図1の全体構成図は本実施の形態でも共通する。
このデータ検索装置は、CAM30内に、第1の実施の形態と同様に、複数のメモリブロック(BLOCK)1−1〜1−4を有するCAM部1と、ブロック制御部、たとえばブロックコントローラ23とを有する。CAM部1内の各BLOCKの構成、BLOCKにデータを格納する方法、データが複数のBLOCKに含まれる場合のBLOCKの分割の仕方などは、第1の実施の形態と共通するため、ここでの説明は省略する。
本実施の形態では、CAM30内に、データの格納場所に関する情報の一例として、テーブル番号とブロック番号の対応関係を定義するブロック指定ブロック指定レジスタ31を有する。このテーブル番号とブロック番号が、本発明の「参照番号」に該当する。また変換回路32は、外部から入力されるテーブル番号をこのレジスタ内容と比較し、そのテーブル番号に対応したBLOCKの識別情報に変換する。ついで前記ブロックコントローラ23は、このBLOCKの識別情報が示す1つまたは複数のブロックのみアクティブにする。
図7はブロック指定レジスタ31の格納データ例として、テーブル番号とBLOCKとの対応関係を示す図表である。
同図中、「テーブル1」ではBLOCK1と2のブロック番号値が1で他は0である。これは、BLOCK1とBLOCK2のみがこのテーブル1に属することを表している。各BLOCKは基本的に1つのテーブルに属するが、図示のように、重複して複数のテーブルに属することも可能である。また、各テーブルの構成およびBLOCK数に関しても特に制限はない。
CAM30の外部には、入力された検索データ(SK)201にもとづいて、選択すべきテーブルを指定するテーブル選択制御部4を有する。テーブル選択制御部4は、テーブルポインタ(Table pointer)40と、テーブルコンパレータ(Table comparator)41と、テーブル制御部42とを含む。
テーブルポインタ40は、複数の、ここでは4つのポインタ値TA.P1〜TA.P4を保持しており、テーブルコンパレータ41の要求に応じてこれらのポインタ保持内容をテーブルコンパレータ41に出力する。テーブルコンパレータ41は、入力される検索データと、読み出したポインタ保持内容とを比較し、検索データと比較すべきCAM部内の格納データが格納されているテーブル番号を指定する。テーブル制御部42は、このテーブル番号を出力バス44に適合した形式に変換して出力させる。
この出力バス44から送られてきたテーブル番号は前記変換回路32に入力される。変換回路32は、テーブル番号とBLOCKとの定義内容を保持したブロック指定レジスタ31を参照しながら、入力されたテーブル番号から、アクティブにすべきBLOCKを特定する。変換回路32からのBLOCKの識別情報がブロックコントローラ23に入力されると、このブロックコントローラ23の制御によって、検索データと比較すべき格納データを少なくとも含む1つまたは複数のBLOCKがアクティブにされる。その後は、第1の実施の形態と同様に、データ検索が行われ、その検索結果が当該CAM30から出力される。
第2の実施の形態では、データ格納領域の指定をCAM外部で行うことによりCAM自体の消費電力を低減できる利点がある。また、第1の実施の形態とは観点を異にしたデータ格納領域の指定方法が可能である。
なお、本実施の形態では、第1の実施の形態と組み合わせることができる。
図8に、この変形例のブロック図を示す。
このデータ検索装置は、そのCAM30内に、第1の実施の形態と共通する構成として、データの大きさの範囲を示す情報を保持する「格納データ範囲表示レジスタ」としてのポインタ22(または22A)と、「比較指定部」としてのレンジコンパレータ21とを有する。これらの機能は第1の実施の形態と共通することから、ここでの説明は省略する。この変形例では、検索データと比較すべき格納データのデータ格納領域をテーブルとレンジ(大きさの範囲)の双方から調べるため、その精度が向上し、また、テーブルで大まかなデータ格納領域を絞って、その後、レンジによりデータ格納領域を特定するなど、この制御の効率を上げることができる。
上述した第1から第2の実施の形態では、以下に述べる利点が得られる。
CAMは、例えばSRAMベースのセル構成とすることができるため高速なデータ検索が可能である。
従来のCAMは、データがプライオリティ順(第1の処理重要度の順序)に格納されているのみで、データ自身から判別できる固有の順位(第2の処理重要度の順序)にもとづいて配置されていないことから、検索データと格納データの関係が全く分からない。そのため、従来のCAMでは、検索データが入力されるごとにすべてのCAMセルを短時間で一斉に駆動して、メモリの全領域に対し検索を行っていた。
本実施の形態では、メモリを複数のメモリブロックに分け、原則的には1つのメモリブロックのみを、あるいは、1ブロックが数キロバイトのデータを保持する通常のメモリブロックの規模から言うと確率的に少ないが、場合によっては2つのメモリブロックを駆動する。そのため、メモリ容量が大きく、ブロック数が多いほど、消費電力の低減効果が大きい。
ところで、例えばサーバー側や中継用のルータでは、極めて短い時間に非常に大量のパケットを処理するため消費電力が増大する。CAMチップの消費電力の増大は、チップの発熱により誤動作を引き起こし、高速性能を阻害する。これが、CAMの集積化を進めるうえでのボトルネックになっていた。本実施の形態では、CAMの消費電力を数分の1から1桁以上大幅に低減できるため、このような大規模なルータ等の性能を飛躍的に向上させることが可能となる。
なお、上述した実施の形態では、とくにブロック選択制御手段、データの再配列手段および割り当て手段の各処理が、専用あるいは既存のCPUなどにおいてプログラムにより実行させる、アルゴリズムベースの実施の形態も可能である。この場合、より高速な処理が可能となる。
この消費電力データ検索装置およびそれを用いたデータ転送装置の実現は、インターネットが進歩している現代では大きな社会課題になっており、今後この傾向は全世界におよぶものであり、その工業的価値はきわめて大きいものである。
本発明は、大規模なメモリ容量のCAM、および、それを内蔵したルータなどの各種データ検索装置およびデータ転送装置の用途に広く適用できる。
第1の実施の形態のCAMの概略構成を示すブロック図 第1の実施の形態のデータ格納方法の比較例として、一般的なデータ格納方法を示す図 第1の実施の形態のデータ格納方法を示す図 第1の実施の形態におけるブロック選択制御部の構成とデータ格納の例を示す図 第1の実施の形態におけるブロック選択制御部の他の構成とデータ格納の例を示す図 本発明の第2の実施のデータ検索装置のブロック図 第2の実施の形態におけるテーブル番号とブロックとの対応関係の一例を示す図表 第2の実施の形態のデータ検索装置の変形例のブロック図
符号の説明
1…データ格納部、1−1等…メモリブロック、2…ブロック選択制御部、3…検索制御部、10…内容アドレスメモリ部(CAM)、11…サーチキー抽出部、12…出力制御部、20…データ転送装置、21…レンジコンパレータ、22…ポインタレジスタ、23…ブロック制御部、100…格納ルールデータ、201…検索データ(SK)

Claims (20)

  1. あらかじめ第1の処理重要度の順序に配列された複数のルールデータを含む第1のデータ群を新たに第2の処理重要度の順序に再配列する再配列手段と、この再配列手段により前記第2の処理重要度の順序に並べ替えられた新たな第2のデータ群を前記第2の処理重要度の順序の小さい方または大きい方から順次、複数のメモリブロックに割り当てる割り当て手段と、を有し、
    前記割り当て手段により割り当てられたデータを前記メモリブロックに格納する際に、その前記メモリブロックの各々に割り当てられたデータに関して、前記再配列手段により前記第1の処理重要度の順序に再々配列して格納することを特徴とするデータ検索装置。
  2. 前記割り当て手段により割り当てられたデータに関して、すくなくとも1つの前記メモリブロックのデータが、前記第2の処理重要度の順序においてどの範囲にあるかを示す格納データ範囲表示レジスタを有することを特徴とする請求項1に記載のデータ検索装置。
  3. 前記格納データ範囲表示レジスタと入力検索データとを比較し、比較結果にもとづいて、当該入力検索データと比較すべきデータが格納されているメモリブロックを含むメモリ領域を指定する比較指定部と、
    前記比較指定部の指定結果にもとづいて、前記複数のメモリブロックから、前記比較すべきデータが格納されたメモリブロックを検索時にアクティブにするブロック制御部と、を有することを特徴とする請求項2に記載のデータ検索装置。
  4. 前記複数のメモリブロックの何れか1つまたは複数のメモリブロックの組み合わせを参照番号に対応させて保持しているブロック指定レジスタと、
    前記ブロック指定レジスタに格納された値に応じて前記メモリブロックをアクティブにするブロック制御部と、を有することを特徴とする請求項2に記載のデータ検索装置。
  5. 前記参照番号に対応して前記格納データ範囲表示レジスタを有することを特徴とする請求項4に記載のデータ検索装置。
  6. 前記第2の処理重要度が、数の大きさに応じた処理重要度を有することを特徴とする請求項1に記載のデータ検索装置。
  7. 前記第2の処理重要度が、数の大きさに応じた処理重要度を有することを特徴とする請求項2に記載のデータ検索装置。
  8. 前記第2の処理重要度が、数の大きさに応じた処理重要度を有することを特徴とする請求項3に記載のデータ検索装置。
  9. 前記第2の処理重要度が、数の大きさに応じた処理重要度を有することを特徴とする請求項4に記載のデータ検索装置。
  10. 前記第2の処理重要度が、数の大きさに応じた処理重要度を有することを特徴とする請求項5に記載のデータ検索装置。
  11. 前記複数のメモリブロックが連想メモリ素子で構成され、
    格納されたデータの前記第2の処理重要度の範囲に応じて決められる1つ又は複数のメモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項1に記載のデータ検索装置。
  12. 前記複数のメモリブロックが連想メモリ素子で構成され、
    格納されたデータの前記第2の処理重要度の範囲に応じて決められる1つ又は複数のメモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項2に記載のデータ検索装置。
  13. 前記複数のメモリブロックが連想メモリ素子で構成され、
    アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項3に記載のデータ検索装置。
  14. 前記複数のメモリブロックが連想メモリ素子で構成され、
    アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項4に記載のデータ検索装置。
  15. 前記複数のメモリブロックが連想メモリ素子で構成され、
    アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項5に記載のデータ検索装置。
  16. 前記複数のメモリブロックが連想メモリ素子で構成され、
    格納されたデータの前記第2の処理重要度の範囲に応じて決められる1つ又は複数のメモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項6に記載のデータ検索装置。
  17. 前記複数のメモリブロックが連想メモリ素子で構成され、
    格納されたデータの前記第2の処理重要度の範囲に応じて決められる1つ又は複数のメモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項7に記載のデータ検索装置。
  18. 前記複数のメモリブロックが連想メモリ素子で構成され、
    アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項8に記載のデータ検索装置。
  19. 前記複数のメモリブロックが連想メモリ素子で構成され、
    アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項9に記載のデータ検索装置。
  20. 前記複数のメモリブロックが連想メモリ素子で構成され、
    アクティブにした前記メモリブロックに対し、入力された前記検索データにもとづいて内容アドレス検索を実行させ、当該内容アドレス検索でヒットした前記メモリブロックのアドレスを出力する検索制御部を有する請求項10に記載のデータ検索装置。
JP2003328406A 2002-11-20 2003-09-19 データ検索装置 Expired - Fee Related JP3938124B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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