JP4346975B2 - 連想メモリ機能付き集積回路及び侵入検知装置 - Google Patents
連想メモリ機能付き集積回路及び侵入検知装置 Download PDFInfo
- Publication number
- JP4346975B2 JP4346975B2 JP2003185234A JP2003185234A JP4346975B2 JP 4346975 B2 JP4346975 B2 JP 4346975B2 JP 2003185234 A JP2003185234 A JP 2003185234A JP 2003185234 A JP2003185234 A JP 2003185234A JP 4346975 B2 JP4346975 B2 JP 4346975B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- search
- integrated circuit
- associative memory
- payload
- 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
-
- 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/7453—Address table lookup; Address filtering using hashing
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
Description
【発明の属する技術分野】
この発明はCAM(Content-Addressable Memory)等の連想メモリを内蔵した連想メモリ機能付き集積回路に関する。
【0002】
【従来の技術】
ネットワークにおけるルーターにおいて、MAC(Media Access Control)アドレスを記述したルーティングテーブルとして、CAMと呼ばれる連想メモリが一般的に用いられている。CAMは例えば特許文献1に開示されている。CAM特有の検索動作によって高速検索を可能としている。
【0003】
【特許文献1】
米国特許第6542391号明細書
【0004】
【発明が解決しようとする課題】
しかしながら、CAMは単に検索すべきものが存在するか否かを高速に検知する機能を有するメモリに過ぎないため、ルーターにおける大半の処理はNPU(Network Processor Unit:ネットワークプロセッサ)、ASIC(Application Specific Integrated Circuit)等の制御部で実行されており、制御部の動作占有率が極めて大きく制御部に負荷がかかりすぎるため、優先度合を考慮したキューイング(Queuing)処理やパケットのロギングと統計の作成等の処理であるアカウンティング(Accounting)処理などの制御部が実行する処理の性能に悪影響を及ぼすという問題点があった。
【0005】
この発明は上記問題点を解決するためになされたもので、NPU,ASIC等の制御部に与える負荷を低減することが可能な連想メモリ機能付き集積回路及び侵入検知装置を得ることを目的とする。
【0006】
【課題を解決するための手段】
この発明に係る請求項1記載の連想メモリ機能付き集積回路は、ペイロードデータを含む入力データを受け、所定ビット単位に前記ペイロードデータを取り込み、前記所定ビット単位にシフトさせながら、前記所定ビット×所定長からなる検索用ペイロードデータを得るペイロードデータシフト部と、少なくとも一つのエントリデータを格納し、前記検索用ペイロードデータに関連したデータである検索対象データと前記少なくとも一つのエントリデータとを比較して一致の有無を指示する比較結果信号を出力する連想メモリ部とを備え、前記入力データはヘッダーデータをさらに含み、前記ヘッダーデータと前記検索用ペイロードデータとを組み合わせて組合せ検索用データを得る検索データ組合せ部と、前記組合せ検索用データを選択的に有効として前記検索対象データを得る検索データマスク部とを、さらに備えている。
【0007】
この発明に係る請求項3記載の連想メモリ機能付き集積回路は、請求項1記載の連想メモリ機能付き集積回路であって、前記エントリーデータを複数の分割データに分割し、前記複数の分割データのチェックサム演算結果を得るチェックサム演算部と、前記エントリデータ及び前記チェックサム演算結果のうち一方を選択的に出力可能なセレクタとをさらに備えている。
【0008】
【発明の実施の形態】
<実施の形態1>
(原理)
パケットデータにおける情報格納部分に該当するペイロードデータはネットワーク層が第4層以上のアプリケーション層のデータに相当するが、このペイロードデータにはファイアウォールなどのによって検知すべき文字列が含まれる場合がある。この文字列をいち早く発見しパケットの通過を禁止することが重要である。しかしながら、従来は、ファイアウォール等のIDS(Intrusion Detection System:浸入検知システム)機能はNPUやASIC等の制御部が担当しており、すべてのペイロードデータから検知すべき文字列を検索するシグネチャマッチング検索は制御部にとって多大な負荷となっていた。そこで、このIDS機能を連想メモリ機能付き集積回路に持たせたのが実施の形態1である。
【0009】
図1はこの発明の実施の形態1である連想メモリ機能付き集積回路の概念を模式的に示すブロック図である。
【0010】
同図に示すように、1文字が1バイト(8ビット)で表現される文字A,B,C,D,…が1バイト単位でシリアルに入力端子P1に入力され、ラッチ部21に1文字毎にラッチされる。
【0011】
検索用ペイロードデータ・シフト部19は、各々が1バイトのラッチデータが格納可能な4個のラッチ部19a〜19dを有している。ラッチ部19a〜19dは、図示しないクロックに同期して、ラッチ部21のラッチデータをラッチ部19aが取り込み、ラッチ部19a〜19cのラッチデータをラッチ部19b〜19dがそれぞれ取り込むシフト動作を実行する。検索用ペイロードデータ・シフト部19内のラッチ部19a〜19dにラッチされた4バイト(1バイト(=8ビット)(所定ビット)×4(所定長))のデータが検索用ペイロードデータDPとなる。
【0012】
一方、CAMアレイ11は少なくとも4バイトのエントリデータDEが複数個格納可能であり、この例では、エントリデータDEの一つであるエントリデータDExが“EFGH”という文字列であったとする。
【0013】
図1に示すように、入力端子P1にA,B,C,D,E,F,G,H…の順にペイロードデータが入力されると、文字“A”がラッチ部19dにラッチされた時刻t0で検索用ペイロードデータDPは文字列“ABCD”となる。以降、クロックに同期して時刻t1〜t6と経過すると、時刻t4のとき、検索用ペイロードデータDPが“EFGH”となり、エントリデータDExと一致する(HIT)。この一致したという情報を比較結果信号resultに含ませて外部に出力させることにより、連想メモリ機能付き集積回路自体にシグネチャマッチング(Signature Matching)検索機能を持たせたのが実施の形態1である。
【0014】
(構成)
図2は実施の形態1の連想メモリ機能付き集積回路であるCAM内蔵集積回路の構成を示すブロック図である。同図に示すように、1バイト単位に入力可能な入力端子P1を介して、パケットデータにおけるヘッダー部分に相当するヘッダーデータD11の全部もしくは一部が第1ヘッダー部17及び第2ヘッダー部18それぞれに格納される。例えば、第1ヘッダー部17にはネットワーク層の第2層〜第4層のヘッダーデータが格納され、第2ヘッダー部18には第2層のヘッダーデータが格納される。
【0015】
さらに、入力端子P1を介して、パケットデータにおけるペイロード部分(ユーザー情報部分)に相当するペイロードデータD12がラッチ部21に、ペイロードデータD12のシフト状況を示すオフセットデータD13がオフセット情報出力部20にそれぞれ与えられる。また、必要に応じて、入力端子P1からマスクレジスタ14への設定データD14が与えられる。
【0016】
図3はCAM内蔵集積回路10とASIC1との関係を示す説明図である。同図に示すように、ASIC1はパケットデータD1を受け、パケットデータD1からヘッダーデータD11及びペイロードデータD12を分類し、ヘッダーデータD11の全部あるいは一部を第1ヘッダー部17及び第2ヘッダー部18に与え、検索用ペイロードデータ・シフト部9の前段にあるラッチ部21にペイロードデータD12を与えている。
【0017】
さらに、ASIC1はCAM内蔵集積回路10の動作制御用の制御信号SC(オペコードOP.code等を含む)を出力するとともに、ペイロードデータD12の一文字入力に同期して、初期値“0”から1インクリメントしながらオフセットデータD13をオフセット情報出力部20に出力する。また、必要に応じて、マスクレジスタ14のデータ設定用の設定データD14を与える。
【0018】
一方、CAM内蔵集積回路10は、CAMアレイ11内のエントリデータとの一致/不一致に関する情報を示すヒット信号hitとその時のシフト状況を示すオフセット信号offsetとを含む比較結果信号resultをASIC1に出力する。なお、図3ではASIC1を示したが、上記したASIC1の働きをもう一つの制御部であるNPUに行わせても良い。
【0019】
図2において、第1ヘッダー部17及び第2ヘッダー部18から出力される第1ヘッダーデータDH11及び第2ヘッダーデータDH12はセレクタ16に取り込まれ、セレクタ16によりヘッダーデータDH11,DH12のうち一方のデータがヘッダーデータDHとして出力される。セレクタ16の選択内容はASIC1からの制御信号SCに含まれるオペコードOP.codeによって制御される。
【0020】
検索用ペイロードデータ・シフト部9は、各々が1バイトのラッチデータが格納可能なn個のラッチ部LT1〜LTn(n≧2)を有している。
【0021】
ラッチ部LT1〜LTnは、外部より得られるクロックCLKに同期して、ラッチ部21に格納されたラッチデータをラッチ部LT1が取り込み、ラッチ部LT1〜LT(n−1)のラッチデータをラッチ部LT2〜LTnがそれぞれ取り込むシフト動作を実行する。検索用ペイロードデータ・シフト部9内のラッチ部LT1〜LTnにラッチされたnバイト(8ビット(所定ビット)×n(所定長))のデータが検索用ペイロードデータDPとなる。
【0022】
検索用データ組合せ部15のヘッダー部15aはヘッダーデータDHを取り込み、ペイロード部15bは検索用ペイロードデータDPを取り込み、両データを結合して組合せ検索用データD15(DH+DP)として出力する。
【0023】
複数のANDゲートG1から構成されるANDゲート群13において、複数のANDゲートG1の一方入力に組合せ検索用データD15が付与される。一方、ANDゲート群13の複数のANDゲートG1それぞれの他方入力にはマスクレジスタ14に格納されたマスクデータが与えられる。そして、ANDゲート群13の各ANDゲートG1から出力されるデータが検索対象データDSとなる。
【0024】
CAMアレイ11は。検索対象データDSと比較可能な複数のエントリデータDEを格納している。すなわち、各エントリデータDEが検索対象データDSに対応するバイト数以上で構成される。
【0025】
そして、CAMアレイ11は、複数のエントリデータDEのいずれかと検索対象データDSとが一致したとき、一致したことを示す情報及び一致したエントリデータDEをアドレス等で指示する情報を含むヒット信号hitを出力し、いずれのエントリデータDEとも一致しないとき、全てが一致していないことを指示する情報を含むヒット信号hitを出力する。また、ヒット信号hitには一致したエントリデータDEが2以上存在したか否かを示す情報も含まれている。
【0026】
例えば、CAMアレイ11のメモリサイズが1Mビットでルックアップ長が144b(ビット)×8Kのエントリと288b×4Kのエントリと2種類のプログラムが可能な場合、144b×8Kのエントリの場合、13ビットの出力情報(8Kエントリのいずれかを指示する情報)、検索結果がヒット(一致)かミス(不一致)かを指示するフラグ、検索結果が2箇所以上存在したことを示すフラグからなる総計15ビットの情報をヒット信号hitとして出力する。
【0027】
なお、CAMアレイ11に対して、エントリデータDEの読み出し及び書き込み処理、並びに検索対象データDSとエントリデータDEとの検索処理のいずれの動作を行うかは、オペコードOP.codeによる指示によって制御することができる。
【0028】
プライオリティエンコーダ12は、ヒット信号hitが2以上のエントリデータDEでの一致を指示する場合に、予め定められた優先度に従い一のエントリデータDEを選択し、当該一のエントリデータDEでのみ一致を指示するヒット信号hitを出力バス22に出力する。なお、図2では、ヒット信号hitが一のエントリデータDEでの一致を指示する場合を模式的に示しており、CAMアレイ11でのヒット信号hitがそのまま出力バス22に出力されている。
【0029】
オフセット情報出力部20は検索用ペイロードデータ・シフト部9に格納された検索用ペイロードデータDPの比較結果が比較結果信号resultとして現れるタイミングに同期して、上記検索用ペイロードデータDP設定の際のオフセットデータD13をオフセット信号offsetとして出力バス22上に出力する。
【0030】
その結果、出力バス22上に出力されたヒット信号hit及びオフセット信号offsetが比較結果信号resultとして出力端子P12を介して外部のASIC1に出力される。
【0031】
なお、クロックCLK及びリセット信号RSTによるCAM内蔵集積回路10の各構成部(CAMアレイ11等)への接続関係は図示していないが各構成部に与えられ、各構成部はクロックCLKに同期して動作し、活性状態のリセット信号RSTの入力時に初期化される。
【0032】
(動作)
図4は実施の形態1のCAM内蔵集積回路10のシグネチャマッチング検索動作を模式的に示す説明図である。なお、図4の例では、検索用ペイロードデータ・シフト部9のラッチ部LTのラッチ数n=“8”の場合を例に示している。
【0033】
同図に示すように、パケットデータD1中のヘッダーデータD11が第1ヘッダー部17あるいは第2ヘッダー部18、セレクタ16、ヘッダー部15a、マスクレジスタ14及びANDゲート群13を介して、検索対象データDSのヘッダーデータDH(DH0〜DH9)として設定される。図4に示すように、クロックCLKに同期して時間経過とともにヘッダーデータDH0〜DH9と変化するが、実際には第1ヘッダーデータDH11,あるいは第2ヘッダーデータDH12のいずれかに固定される。
【0034】
一方、ペイロードデータD12(“ABcdEfGH…”)は最初の8文字“ABcdEfGH”から1文字(1バイト)ずつシフトさせながら、検索用ペイロードデータDPは、クロックCLKに同期して時間経過とともに検索用ペイロードデータDP0〜DP9として変化する。すなわち、検索用ペイロードデータDP0=“ABcdEfGH”(シフト(オフセット)無し(offset0))、DP1=“BcdEfGHW”(シフト1回(offset1))、DP2=“cdEfGHWa”(シフト2回(offset2))…と変化する。
【0035】
ここで、CAMアレイ11のエントリデータDEとして検索用ペイロードデータDPに対応する部分に"Warning!"が登録されていた場合、検索用ペイロードデータDP8="Warning!"(シフト8回(offset8))のとき、ヒット信号hitが活性状態(図4では大文字の”HIT”で示す)となる。
【0036】
その結果、比較結果信号resultとして、ペイロードデータD12中に文字列"Warning!"が含まれたことを検索するシグネチャマッチング検索が行える。
【0037】
図5は実施の形態1のCAM内蔵集積回路10の動作の詳細を示すタイミング図である。なお、図5の例も、図4同様、検索用ペイロードデータ・シフト部9のラッチ部LTのラッチ数n=“8”の場合を例に示している。図5の例では、ペイロードデータD12が“ABCDEFGHIJKLMNOPQ…”の場合を示している。
【0038】
同図に示すように、クロックCLKの“H”立ち上がりあるいは“L”立ち下がりに同期して各動作が実行される。制御信号SCに含まれるオペコードOP.codeはセレクタ16の制御に用いられ、図5の例では、1〜4回目及び7〜9回目の検索(Search)実行時に第1ヘッダーデータDH11を選択し、5,6回目の検索実行時に第2ヘッダーデータDH12を選択した例を示している。ここでは、i(i≧1)回目のシフト動作実行後の検索用ペイロードデータDPに対する検索動作時をi回目の検索動作時としている。
【0039】
オフセットデータD13は検索回数iに同期して“1”ずつ増加してオフセット情報出力部20に出力される。すなわち、検索用ペイロードデータDPの最下位バイトLSBが“I”のとき、“1”(00000001)とし、以降、クロックCLKに同期して“1”ずつインクリメントした内容のオフセットデータD13がオフセット情報出力部20に与えられる。
【0040】
検索用ペイロードデータDPは、クロックCLKの“L”立ち下がりに同期して検索用ペイロードデータ・シフト部9内に取り込まれ、次のクロックCLKの“H”立ち上がりに同期してペイロード部15bに入力される。
【0041】
その後、検索用データ組合せ部15、マスクレジスタ14、ANDゲート群13、CAMアレイ11及びプライオリティエンコーダ12それぞれのパイプライン処理による時間(レイテンシー)遅延した後、プライオリティエンコーダ12からヒット信号hitが出力される。図5では、上記レイテンシーが4クロックの場合を示している。すなわち、i回目の検索処理(Search-i)の結果が、4クロック遅れたヒット信号(hit-i)として出力される。
【0042】
オフセット情報出力部20は、オフセットデータD13を4クロック分、遅延させてオフセット信号offsetとして出力する。その結果、i回目のヒット信号(hit-i)に同期して、シフト状況iを指示するオフセット信号offsetが出力されるため、ヒット信号hitに対応する検索処理時のシフト状況をオフセット信号offsetから正確に認識することができる。
【0043】
このように、実施の形態1のCAM内蔵集積回路10は、ヘッダーデータD11及びペイロードデータD12に対するシグネチャマッチング検索機能を有するため、ASIC1あるいはNPU等の制御部がシグネチャマッチング検索処理を行う必要がなくなる分、制御部にかかる負担を軽減することができる。
【0044】
また、実施の形態1では、検索用ペイロードデータ・シフト部9が1バイト単位に入力されるため、1回の検索時にデータピン上で消費されるバンド比は、1バイト/1サーチとなる。一方、従来は、検索対象となるデータ列を全てデータピン入力から行うのが一般的であったため、nバイト/1サーチとなる。したがって、実施の形態1のCAM内蔵集積回路10はバンドをn分の1に節約できる効果も奏する。
【0045】
加えて、ANDゲート群13及びマスクレジスタ14により、組合せ検索用データD15に対して任意にマスク設定して、検索対象データDSを決定することができる。なお、マスクレジスタ14への書き込みは、入力端子P1から入力される設定データD14によって設定することができる。
【0046】
例えば、ANDゲート群13及びマスクレジスタ14によって、検索用ペイロードデータDPを全てマスク処理すれば、ヘッダーデータDHに基づく通常のルーターの機能であるアドレス検索用途として用いることができる。また、ヘッダーデータDH及び検索用ペイロードデータDPを共に有効にすれば、通常のルーター機能に加え、シグネチャマッチング機能によるIDSとして用いることができる。したがって、ルーター機能に加えIDSにも適用可能な分、用途が広範化するに伴い大量生産が実現する。その結果、数量による製造コストの低減が図れるという効果も奏する。
【0047】
なお、検索用データ組合せ部15、マスクレジスタ14及びANDゲート群13により、検索対象データDSにおけるヘッダーデータ部分のビット長(ヘッダー長)と、ペイロードデータ部分のビット長(ペイロード長)とを可変設定することができる。例えば、検索対象データDSのビット長が288ビットの場合、ヘッダー長を32ビット、ペイロード長を256ビットにした第1の組合せ、ヘッダー長を128ビット、ペイロード長を160ビットにした第2の組合せ、ヘッダー長を0ビット、ペイロード長を288ビットにした第3の組合せに変更可能である。ただし、第1〜第3の組合せを実現可能にするには、第1ヘッダー部17,第2ヘッダー部18の少なくとも一つ及びヘッダー部15aの格納ビット数を128ビット以上、検索用ペイロードデータ・シフト部9及びペイロード部15bの格納ビット数を288ビット以上に設定する必要がある。
【0048】
上述したようにヘッダー長及びペイロード長を可変にしたのは、検索対象のネットワーク層が第3層L3の場合はヘッダー長32ビットで十分であるが、第4層L4等ではさらに長いヘッダー長を必要とする等、検索対象のネットワーク層によって必要とするヘッダー長が異なる場合等にも対応するためである。
【0049】
<実施の形態2>
(原理)
図6はパケットデータ構造を示す説明図である。同図に示すように、パケットデータは、プリアンブル(Pre-anble)情報61、SFD(Start Frame Delimiter)情報62、送信先(destination)情報63、送信元(Source)情報64、タイプ・長さ(Type/Length)情報65、トランスミッティングメッセージ66、PAD(Pading)データ67及びFCS(Frame Check Sequence)情報68で構成される。なお、図6におけるocttetは8ビット(1バイト)を1単位としたデータ長を意味する。
【0050】
ネットワーク層の第2層L2のデータとして、送信先情報63及び送信元情報64が該当し、これらの情報に基づきクラシファイ(classify)処理(パケットのフロー識別、クラス識別等の処理)を行う。
【0051】
トランスミッティングメッセージ66の第3層データ66aに対しクラシファイ処理、チェックサムフィルタリング(Check Sum filtering)処理等が行われ、第4層用データ66bに対しクラシファイ処理、チェックサムフィルタリング処理等が行われ、第5〜第7層用データ66cに対し実施の形態1のCAM内蔵集積回路10が実行したシグネチャマッチング処理、チェックサムフィルタリング処理等が行われる。
【0052】
FCS情報68には4バイトの誤り検出符号が設定されているため、FCS情報68に基づきパケットが正常に受信されたか否かを検知することができる。
【0053】
さらに、トランスミッティングメッセージ66の各ネットワーク層に対応する部分にも正常に受信されたか否かを検知するためのチェックサム機能を有している。すなわち、トランスミッティングメッセージ66の各ネットワーク層において、16ビット毎に複数のチャンク(chunk:固まり)に分割し、それぞれのチャンクについて加算を行い、加算結果の下位16ビット以下をトランスミッティングメッセージ66の情報の一部のチェックサム情報として格納しておく機能を有している。したがって、ネットワーク層の階層毎に送信側でチェックサム情報を付加してトランスミッティングメッセージ66を生成すれば、受信側で階層毎のチェックサム計算を行い、チェックサム結果とチェックサム情報とを比較することにより、受信側においてどの階層でエラーが発生したことを検知することができる。
【0054】
図7は従来のチェックサム演算を実現する具体的構成を示す説明図である。同図に示すように、CAM内蔵集積回路25はCAMアレイ4を有し、CAMアレイ4のエントリデータDEを専用バス6,共通バス7等を介して、出力端子P30から読み出しデータRDを出力する。そして、144ビット長の信号線L11を介してASIC26の入力部P11に読み出しデータRDが入力される。
【0055】
ASIC26は内部のチェックサム加算機能1a(ハードでもソフトでも実現可)により、第k層(k=3〜7のいずれか)のデータを読み出しデータRDとして読み出し、16ビット単位([15:0],[31:16],[47:32],[63:48],…,[127:112],[143:128])のチャンク毎の和の下位16ビットを求めることにより、最終チェックサム結果sum[15:0]を得ることができ、SRAM2に保存しておいた第k層のチェックサム情報を16ビットの信号線L12及び入出力端子P12を介して取り込み、第k層の最終チェックサム結果sum[15:0]と第k層のチェックサム情報との比較結果により、第k層の受信が正常に行われたか否かを検出することができる。
【0056】
しかし、このようにASIC26に全面的にチェックサム演算処理を行わせるのは前述したように、ASIC26に負荷がかかってしまう。
【0057】
そこで、パケットデータのヘッダー部分とペイロード部分がCAMアレイに入力される実施の形態1のCAM内蔵集積回路10のように、ペイロード部分をCAMアレイ内に取り込み可能なCAM内蔵集積回路において、トランスミッティングメッセージ66の第3層用データ66a〜第5ないし第7層用データ66cそれぞれをCAMアレイ内に取り込んだ後、さらに、これらのデータ66a〜66cそれぞれのチェックサム計算結果をCAM内蔵集積回路内で計算するようにして上述したチェックサムフィルタリング機能を実現可能にしたのが実施の形態2である。
【0058】
(構成)
図8及び図9は実施の形態2のCAM内蔵集積回路3の読み出しデータ出力機能を示す説明図である。
【0059】
同図に示すように、4つのバンク(Bank=0〜3)に分類された部分連想メモリ部に相当するCAMアレイ40〜43が設けられ、CAMアレイ40〜43のセンスアンプ40a〜43aから72ビットの読み出しデータRD0〜RD3が専用バス44〜47に読み出される。
【0060】
例えば、図9に示すように、CAMアレイ40が288ビットのエントリデータ長を有している場合は、センスアンプ40aの出力288ビットを72ビットに絞り込むためのセレクタ5がセンスアンプ40aの出力部に設けられ、セレクタ5から72ビットの読み出しデータRD0が出力される。セレクタ5はASIC1から出力される制御信号SCの一部である選択信号S5によって制御される。なお、セレクタ5の図示は図8では省略している。また、CAMアレイ41〜43が288ビットのエントリデータ長を有する場合も図9で示した構成と同様となる。
【0061】
専用バス44〜47は288ビットの共通バス48に接続され、読み出しデータRD0〜RD3がセレクタ49に入力される。セレクタ49はASIC1等の制御信号SCの一部である選択信号S49に基づき、読み出しデータRD0〜RD3のうちいずれかを読み出しデータRD72として出力端子P30から出力する。
【0062】
図10は実施の形態2のCAM内蔵集積回路3におけるチェックサム演算結果出力機能を示す説明図である。
【0063】
同図に示すように、CAMアレイ40〜43のセンスアンプ40a〜43aの出力部には、4つの部分チェックサム演算部に相当するチェックサム演算部50〜53が設けられる。チェックサム演算部50〜53はセンスアンプ40a〜43aの出力データをそれぞれ16ビット毎に複数のチャンクに分類し、複数のチェックの16ビットデータの総和の下位16ビットをチェックサム演算結果DCS0〜DCS3として求めて専用バス54〜57に出力する。上述したチェックサム演算結果DCS0〜DCS3が複数の部分チェックサム演算結果に相当する。
【0064】
なお、チェックサム演算結果対象なる各ネットワーク層のデータ入力は、例えば、ASIC1の制御下で通常の書き込み同様に行うことで対応可能である。各ネットワーク層のデータ出力は、例えば、通常の読み出し時同様、書き込み済みのチェックサム演算対象のデータをセンスアンプから読み出すことにより対応可能である。
【0065】
専用バス54〜57は64ビットの共通バス58に合成され、出力端子P30から64ビットのチェックサム演算結果DCS64として出力される。すなわち、チェックサム演算結果DCS64は下位からチェックサム演算結果DCS0〜DCS3の順に設定される。すなわち、チェックサム演算結果DCS6はチェックサム演算結果DCS0〜DCS3の集合体である。なお、出力端子P30からは72ビット出力可能であるため、上位8ビットは適当な値に固定された予備(resereved)のデータとされる。
【0066】
図11は実施の形態2のCAM内蔵集積回路3におけるCAMアレイ40周辺を示す説明図である。実施の形態2のCAM内蔵集積回路3は図8及び図9で示した通常のデータ読み出し機能と図10で示したチェックサム演算結果出力機能とを併せもっており、この構成を具体的に示したの図11である。
【0067】
同図に示すように、CAMアレイ40のセンスアンプ40aから288ビットのデータがチェックサム演算部50に読み出される。チェックサム演算部50は16ビット毎に18個のチャンクCS0〜CS17に分類され、対応するセンスアンプ40aからの16ビットのデータ出力を受ける。例えば、チャンクCS0はセンスアンプ40aの0〜15ビットの情報を読み込み、チャンクCS16はセンスアンプ40aの256〜271ビットの情報を読み込み、チャンクCS17はセンスアンプ40aの272〜287ビットの情報を読み込む。
【0068】
チェックサム演算部50はチャンクCS0〜CS17に格納した16ビットデータの総和の下位16ビットを、CAMアレイ40のチェックサム演算結果DCS0として専用バス54に出力する。なお、CAMアレイ41〜43のチェックサム演算結果DCS1〜DCS3も同様にして専用バス55〜47に出力され、共通バス58から64ビットのチェックサム演算結果DCS64がセレクタ35に入力される。
【0069】
一方、センスアンプ40aの288ビット出力はチェックサム演算部50に加えセレクタ5にも入力され、図9に示したように、セレクタ5から72ビットの読み出しデータRD0として共通バス48に出力される。なお、CAMアレイ41〜43の読み出しデータRD1〜RD3も同様にして専用バス45〜47に出力され、共通バス48で288ビットに合成され、読み出しデータRD0〜RD3のいずれかがセレクタ49により選択され72ビットの読み出しデータRD72としてセレクタ35に出力される。
【0070】
セレクタ35は制御信号SCに含まれるオペコードOP.codeに基づき通常の読み出し時には読み出しデータRD72を出力し、チェックサム演算時にはチェックサム演算結果DCS64を出力する。
【0071】
このように、実施の形態2のCAM内蔵集積回路3はチェックサム演算機能を有するため、ASIC1,NPU等の制御部が、各ネットワーク層のデータの正常受信を検出するためのチェックサム演算処理の大半を実行する必要がなくなる。その結果、制御部の負担を大幅に軽減することができる。
【0072】
また、実施の形態2では4つのCAMアレイ40〜43それぞれのチェックサム演算結果DCS0〜DCS3を一括して出力可能な構成を呈しているため、CAMアレイ40〜43それぞれのチェックサムを独立して求める場合に比べ、4倍の実行性能を発揮することができる。
【0073】
また、当然ながら、実施の形態1及び実施の形態2とを組み合わせることにより、シグネチャマッチング機能及びチェックサム演算機能双方が実行可能なCAM内蔵集積回路を得ることができる。
【0074】
【発明の効果】
以上説明したように、この発明に係る請求項1記載の連想メモリ機能付き集積回路は、検索対象データと少なくとも一つのエントリデータとを比較して一致の有無を指示する比較結果信号を出力することにより、ペイロードデータに含まれる所定の文字列を検出するというシグネチャマッチング処理を実行することができる。
【0075】
その結果、請求項1記載の連想メモリ機能付き集積回路を制御する制御部は、シグネチャマッチング処理を行う必要がなくなるため、制御部にかかる負荷を軽減することができる。
【0076】
この発明に係る請求項4記載の連想メモリ機能付き集積回路はチェックサム演算処理を実行することができるため、請求項4記載の連想メモリ機能付き集積回路を制御する制御部は、その分、負荷が軽減される効果を奏する。
【図面の簡単な説明】
【図1】 この発明の実施の形態1である連想メモリ機能付き集積回路の概念を模式的に示すブロック図である。
【図2】 実施の形態1のCAM内蔵集積回路の構成を示すブロック図である。
【図3】 CAM内蔵集積回路とASICとの関係を示す説明図である。
【図4】 実施の形態1のCAM内蔵集積回路のシグネチャマッチング検索動作を模式的に示す説明図である。
【図5】 実施の形態1のCAM内蔵集積回路の動作の詳細を示すタイミング図である。
【図6】 パケットデータ構造を示す説明図である。
【図7】 従来のチェックサム演算を実現する具体的構成を示す説明図である。
【図8】 実施の形態2のCAM内蔵集積回路の読み出しデータ出力機能を示す説明図である。
【図9】 実施の形態2のCAM内蔵集積回路の読み出しデータ出力機能を示す説明図である。
【図10】 実施の形態2のCAM内蔵集積回路におけるチェックサム演算結果出力機能を示す説明図である。
【図11】 実施の形態2のCAM内蔵集積回路におけるCAMアレイ周辺を示す説明図である。
【符号の説明】
1 ASIC(NPU)、2 SRAM、3,10 CAM内蔵集積回路、9,19 検索用ペイロードデータ・シフト部、11,40〜43 CAMアレイ、12 プライオリティエンコーダ、13 ANDゲート群、14 マスクレジスタ、15 検索用データ組合せ部、15a ヘッダー部、15b パイロード部、5,16,35,49 セレクタ、17 第1ヘッダー部、18 第2ヘッダー部、20 オフセット情報出力部、50〜53 チェックサム演算部。
Claims (5)
- ペイロードデータを含む入力データを受け、所定ビット単位に前記ペイロードデータを取り込み、前記所定ビット単位にシフトさせながら、前記所定ビット×所定長からなる検索用ペイロードデータを得るペイロードデータシフト部と、
少なくとも一つのエントリデータを格納し、前記検索用ペイロードデータに関連したデータである検索対象データと前記少なくとも一つのエントリデータとを比較して一致の有無を指示する比較結果信号を出力する連想メモリ部とを備え、
前記入力データはヘッダーデータをさらに含み、
前記ヘッダーデータと前記検索用ペイロードデータとを組み合わせて組合せ検索用データを得る検索データ組合せ部と、
前記組合せ検索用データを選択的に有効として前記検索対象データを得る検索データマスク部とを、
さらに備える連想メモリ機能付き集積回路。 - 請求項1記載の連想メモリ機能付き集積回路であって、
前記比較結果信号は、前記検索用ペイロードデータのシフト状況を指示するオフセット情報を含む、
連想メモリ機能付き集積回路。 - 請求項1記載の連想メモリ機能付き集積回路であって、
前記エントリーデータを複数の分割データに分割し、前記複数の分割データのチェックサム演算結果を得るチェックサム演算部と、
前記エントリデータ及び前記チェックサム演算結果のうち一方を選択的に出力可能なセレクタと、
をさらに備える連想メモリ機能付き集積回路。 - 請求項3記載の連想メモリ機能付き集積回路であって、
前記連想メモリ部は複数の部分連想メモリ部を含み、
前記チェックサム演算部は前記複数の部分連想メモリ部に対応した複数の部分チェックサム演算部を含み、前記複数の部分チェックサム演算部は複数の部分チェックサム演算結果を出力し、
前記チェックサム演算結果は、前記複数の部分チェックサム演算結果の集合体を含む、
連想メモリ機能付き集積回路。 - 連想メモリ機能付き集積回路と信号処理回路を備え、不正侵入を検知する機能を有する侵入検知装置であって、
前記信号処理回路は、外部からパケットデータを受けて、ヘッダーデータとペイロードデータに分類し前記連想メモリ機能付き集積回路に出力し、
前記連想メモリ機能付き集積回路は、
前記ペイロードデータを受け、所定ビット単位に前記ペイロードデータを取り込み、前記所定ビット単位にシフトさせながら、前記所定ビット×所定長からなる検索用ペイロードデータを得るペイロードデータシフト部と、
少なくとも一つのエントリデータを格納し、前記検索用ペイロードデータに関連したデータである検索対象データと前記少なくとも一つのエントリデータとを比較して一致の有無を指示する比較結果信号を前記信号処理回路に出力する連想メモリ部と、
前記ヘッダーデータと前記検索用ペイロードデータとを組み合わせて組合せ検索用データを得る検索データ組合せ部と、
前記組合せ検索用データを選択的に有効として前記検索対象データを得る検索データマスク部とを有する、
侵入検知装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003185234A JP4346975B2 (ja) | 2003-06-27 | 2003-06-27 | 連想メモリ機能付き集積回路及び侵入検知装置 |
US10/872,771 US7272685B2 (en) | 2003-06-27 | 2004-06-22 | Integrated circuit with associated memory function |
US11/892,054 US20070294472A1 (en) | 2003-06-27 | 2007-08-20 | Integrated circuit with associated memory function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003185234A JP4346975B2 (ja) | 2003-06-27 | 2003-06-27 | 連想メモリ機能付き集積回路及び侵入検知装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005018942A JP2005018942A (ja) | 2005-01-20 |
JP2005018942A5 JP2005018942A5 (ja) | 2006-07-27 |
JP4346975B2 true JP4346975B2 (ja) | 2009-10-21 |
Family
ID=34055346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003185234A Expired - Fee Related JP4346975B2 (ja) | 2003-06-27 | 2003-06-27 | 連想メモリ機能付き集積回路及び侵入検知装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7272685B2 (ja) |
JP (1) | JP4346975B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060161647A1 (en) * | 2004-12-22 | 2006-07-20 | Waldemar Wojtkiewicz | Method and apparatus providing measurement of packet latency in a processor |
JP4546998B2 (ja) | 2005-02-18 | 2010-09-22 | デュアキシズ株式会社 | 通信制御システム |
CN101213528B (zh) | 2005-05-20 | 2010-04-07 | Duaxes株式会社 | 数据处理系统 |
US7486673B2 (en) * | 2005-08-29 | 2009-02-03 | Connect Technologies Corporation | Method and system for reassembling packets prior to searching |
JP4878303B2 (ja) * | 2007-02-07 | 2012-02-15 | シャープ株式会社 | 画像転送システム |
GB2530513B (en) * | 2014-09-24 | 2016-08-24 | Ibm | Assembling response packets |
JP6592310B2 (ja) * | 2015-09-01 | 2019-10-16 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2017097940A (ja) | 2015-11-26 | 2017-06-01 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2019117677A (ja) * | 2017-12-27 | 2019-07-18 | ルネサスエレクトロニクス株式会社 | 検索メモリ |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1984003970A1 (en) * | 1983-03-30 | 1984-10-11 | Siemens Ag | Hybrid associative memory and method for the retrieval and sorting of data contained therein |
JPS61107596A (ja) * | 1984-10-31 | 1986-05-26 | Nec Corp | 連想記憶装置 |
US5511213A (en) * | 1992-05-08 | 1996-04-23 | Correa; Nelson | Associative memory processor architecture for the efficient execution of parsing algorithms for natural language processing and pattern recognition |
US6542391B2 (en) * | 2000-06-08 | 2003-04-01 | Netlogic Microsystems, Inc. | Content addressable memory with configurable class-based storage partition |
US6892237B1 (en) * | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
US7043673B1 (en) * | 2001-08-03 | 2006-05-09 | Netlogic Microsystems, Inc. | Content addressable memory with priority-biased error detection sequencing |
JP4437519B2 (ja) * | 2001-08-23 | 2010-03-24 | スパンション エルエルシー | 多値セルメモリ用のメモリコントローラ |
US6993622B2 (en) * | 2001-10-31 | 2006-01-31 | Netlogic Microsystems, Inc. | Bit level programming interface in a content addressable memory |
US6842358B2 (en) * | 2002-08-01 | 2005-01-11 | Netlogic Microsystems, Inc. | Content addressable memory with cascaded array |
US7103708B2 (en) * | 2002-08-10 | 2006-09-05 | Cisco Technology, Inc. | Performing lookup operations using associative memories optionally including modifying a search key in generating a lookup word and possibly forcing a no-hit indication in response to matching a particular entry |
US7219187B1 (en) * | 2002-08-30 | 2007-05-15 | Netlogic Microsystems, Inc. | Search parameter table in a content addressable memory |
-
2003
- 2003-06-27 JP JP2003185234A patent/JP4346975B2/ja not_active Expired - Fee Related
-
2004
- 2004-06-22 US US10/872,771 patent/US7272685B2/en not_active Expired - Fee Related
-
2007
- 2007-08-20 US US11/892,054 patent/US20070294472A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20050013299A1 (en) | 2005-01-20 |
US7272685B2 (en) | 2007-09-18 |
US20070294472A1 (en) | 2007-12-20 |
JP2005018942A (ja) | 2005-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070294472A1 (en) | Integrated circuit with associated memory function | |
US11677664B2 (en) | Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine | |
US7577758B2 (en) | Hardware support for wire-speed, stateful matching and filtration of network traffic | |
US7281085B1 (en) | Method and device for virtualization of multiple data sets on same associative memory | |
US7437354B2 (en) | Architecture for network search engines with fixed latency, high capacity, and high throughput | |
US9495479B2 (en) | Traversal with arc configuration information | |
US7949683B2 (en) | Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph | |
US7701941B2 (en) | Network switch with mutually coupled look-up engine and network processor | |
US6665297B1 (en) | Network routing table | |
US7237058B2 (en) | Input data selection for content addressable memory | |
US7233597B2 (en) | High speed parser | |
CA2311078A1 (en) | Multithreaded address resolution system | |
EP2215565A1 (en) | Deterministic finite automata (dfa) graph compression | |
CA2265302C (en) | High-speed flexible longest match retrieval | |
CN101321162B (zh) | 基于tcam序偶的tcp序列号检查硬件实现方法 | |
US7117301B1 (en) | Packet based communication for content addressable memory (CAM) devices and systems | |
US20040190506A1 (en) | Method and apparatus for performing complex pattern matching in a data stream within a computer network | |
US7474586B1 (en) | Random access memory (RAM) method of operation and device for search engine systems | |
JP2004526272A (ja) | 最長一致を検出するメモリ・システム | |
US7340570B2 (en) | Engine for comparing a key with rules having high and low values defining a range | |
JP2002374289A (ja) | 検索システム及びそれに用いる検索条件cam登録方法並びにそのプログラム | |
WO2004059448A2 (en) | Packet inspection | |
KR101056029B1 (ko) | 내부 내용주소메모리 모듈을 이용한 룩업 장치 | |
JP2007194885A (ja) | パケット分類装置 | |
JPH1056474A (ja) | マルチレイヤスイッチ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060609 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060609 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090428 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090624 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090624 |
|
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: 20090714 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090715 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120724 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120724 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120724 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120724 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130724 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |