JP2005018942A - Integrated circuit with associative memory function - Google Patents

Integrated circuit with associative memory function Download PDF

Info

Publication number
JP2005018942A
JP2005018942A JP2003185234A JP2003185234A JP2005018942A JP 2005018942 A JP2005018942 A JP 2005018942A JP 2003185234 A JP2003185234 A JP 2003185234A JP 2003185234 A JP2003185234 A JP 2003185234A JP 2005018942 A JP2005018942 A JP 2005018942A
Authority
JP
Japan
Prior art keywords
data
search
associative memory
integrated circuit
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.)
Granted
Application number
JP2003185234A
Other languages
Japanese (ja)
Other versions
JP4346975B2 (en
JP2005018942A5 (en
Inventor
Kazunari Inoue
一成 井上
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2003185234A priority Critical patent/JP4346975B2/en
Priority to US10/872,771 priority patent/US7272685B2/en
Publication of JP2005018942A publication Critical patent/JP2005018942A/en
Publication of JP2005018942A5 publication Critical patent/JP2005018942A5/ja
Priority to US11/892,054 priority patent/US20070294472A1/en
Application granted granted Critical
Publication of JP4346975B2 publication Critical patent/JP4346975B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an integrated circuit having an associative memory function in which load imposed on a control section is reduced. <P>SOLUTION: A retrieval payload data shift section 9 is provided with n latches LT1 to LTn (where n≥2). Each of the latches stores one byte latch data. The retrieval payload data shift section 9 obtains n byte length retrieval payload data DP while shifting payload data inputted from an input terminal P1 in one byte unit. Data related to the retrieval payload data DP are given to a CAM array 11 as retrieval objective data DS. When entry data DE of the CAM array 11 and the retrieval objective data DS are agreed with each other, a hit signal hit instructing an agreement is outputted from the CAM array 11. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
この発明は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】
この発明に係る請求項4記載の連想メモリ機能付き集積回路は、入力データを所定長のエントリデータとして格納可能な連想メモリ部と、前記エントリーデータを複数の分割データに分割し、前記複数の分割データのチェックサム演算結果を得るチェックサム演算部と、前記エントリデータ及び前記チェックサム演算結果のうち一方を選択的に出力可能なセレクタとを備えている。
【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】
クロック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 チェックサム演算部。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an integrated circuit with an associative memory function, which incorporates an associative memory such as a CAM (Content-Addressable Memory).
[0002]
[Prior art]
In a router in a network, an associative memory called a CAM is generally used as a routing table that describes a MAC (Media Access Control) address. CAM is disclosed in Patent Document 1, for example. A high-speed search is enabled by a search operation unique to CAM.
[0003]
[Patent Document 1]
US Pat. No. 6,542,391
[0004]
[Problems to be solved by the invention]
However, since the CAM is merely a memory having a function of detecting whether or not there is an object to be searched at high speed, most processing in the router is NPU (Network Processor Unit: Network Processor), ASIC (Application Specific Integrated Circuit). ) Etc., and the control occupancy rate is extremely large and the control unit is overloaded, so queuing processing considering the priority level, packet logging and creation of statistics, etc. There is a problem that the performance of processing executed by a control unit such as accounting processing that is processing is adversely affected.
[0005]
The present invention has been made to solve the above problems, and an object thereof is to obtain an integrated circuit with an associative memory function capable of reducing a load applied to a control unit such as an NPU or an ASIC.
[0006]
[Means for Solving the Problems]
An integrated circuit with an associative memory function according to claim 1 of the present invention receives input data including payload data, captures the payload data in predetermined bit units, and shifts the predetermined bits × predetermined bits A payload data shift unit that obtains search payload data consisting of a length, stores at least one entry data, and compares search target data that is data related to the search payload data with the at least one entry data And an associative memory unit that outputs a comparison result signal indicating whether or not there is a match.
[0007]
An integrated circuit with an associative memory function according to a fourth aspect of the present invention is an associative memory unit capable of storing input data as entry data having a predetermined length, and the entry data is divided into a plurality of divided data, and the plurality of divided data A checksum calculation unit for obtaining a checksum calculation result of the data; and a selector capable of selectively outputting one of the entry data and the checksum calculation result.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
<Embodiment 1>
(principle)
The payload data corresponding to the information storage portion in the packet data corresponds to data in the application layer whose network layer is the fourth layer or higher, and this payload data may include a character string to be detected by a firewall or the like. It is important to find this character string as soon as possible and prohibit the passage of packets. However, conventionally, IDS (Intrusion Detection System) functions such as firewalls have been handled by control units such as NPUs and ASICs, and signature matching search that searches for character strings to be detected from all payload data It was a great load for the control unit. In the first embodiment, the IDS function is provided in an integrated circuit with an associative memory function.
[0009]
FIG. 1 is a block diagram schematically showing the concept of an integrated circuit with an associative memory function according to the first embodiment of the present invention.
[0010]
As shown in the figure, characters A, B, C, D,... Each represented by 1 byte (8 bits) are serially input to the input terminal P1 in units of 1 byte, and 1 character is input to the latch unit 21. It is latched every time.
[0011]
The search payload data shift unit 19 has four latch units 19a to 19d each capable of storing 1-byte latch data. The latch units 19a to 19d perform a shift operation in which the latch unit 19a takes in the latch data of the latch unit 21 and the latch units 19b to 19d take in the latch data of the latch units 19a to 19c in synchronization with a clock (not shown). . The 4-byte data (1 byte (= 8 bits) (predetermined bit) × 4 (predetermined length)) latched in the latch units 19a to 19d in the search payload data shift unit 19 becomes the search payload data DP. .
[0012]
On the other hand, the CAM array 11 can store a plurality of entry data DE of at least 4 bytes. In this example, it is assumed that the entry data DEx, which is one of the entry data DE, is a character string “EFGH”.
[0013]
As shown in FIG. 1, when payload data is input in the order of A, B, C, D, E, F, G, H... To the input terminal P1, the time when the character “A” is latched by the latch unit 19d. At t0, the search payload data DP becomes the character string “ABCD”. Thereafter, when the time t1 to t6 elapses in synchronization with the clock, the search payload data DP becomes “EFGH” at the time t4 and coincides with the entry data DEx (HIT). In the first embodiment, the matching information is included in the comparison result signal result and output to the outside so that the integrated circuit with an associative memory function itself has a signature matching search function.
[0014]
(Constitution)
FIG. 2 is a block diagram showing a configuration of an integrated circuit with built-in CAM which is an integrated circuit with an associative memory function according to the first embodiment. As shown in the figure, all or a part of header data D11 corresponding to the header portion in the packet data is transmitted through the input terminal P1 that can be input in units of 1 byte, respectively, for the first header portion 17 and the second header portion 18 respectively. Stored in For example, the first header portion 17 stores the second to fourth layer header data of the network layer, and the second header portion 18 stores the second layer header data.
[0015]
Further, via the input terminal P1, payload data D12 corresponding to the payload portion (user information portion) in the packet data is sent to the latch unit 21, and offset data D13 indicating the shift status of the payload data D12 is sent to the offset information output unit 20, respectively. Given. Further, setting data D14 from the input terminal P1 to the mask register 14 is given as necessary.
[0016]
FIG. 3 is an explanatory diagram showing the relationship between the CAM built-in integrated circuit 10 and the ASIC 1. As shown in the figure, the ASIC 1 receives the packet data D1, classifies the header data D11 and the payload data D12 from the packet data D1, and all or part of the header data D11 is classified into the first header portion 17 and the second header portion 18. The payload data D12 is given to the latch unit 21 in the preceding stage of the search payload data shift unit 9.
[0017]
Further, the ASIC 1 outputs a control signal SC (including the operation code OP.code) for controlling the operation of the CAM built-in integrated circuit 10 and is incremented by 1 from the initial value “0” in synchronization with the input of one character of the payload data D12. Then, the offset data D13 is output to the offset information output unit 20. Further, setting data D14 for data setting of the mask register 14 is given as necessary.
[0018]
On the other hand, the CAM built-in integrated circuit 10 outputs to the ASIC 1 a comparison result signal result including a hit signal hit indicating information on matching / mismatching with entry data in the CAM array 11 and an offset signal offset indicating a shift state at that time. . Although ASIC1 is shown in FIG. 3, the above-described operation of ASIC1 may be performed by an NPU that is another control unit.
[0019]
In FIG. 2, the first header data DH11 and the second header data DH12 output from the first header portion 17 and the second header portion 18 are taken into the selector 16, and the selector 16 selects one of the header data DH11 and DH12. Is output as header data DH. The selection content of the selector 16 is the operation code OP. Included in the control signal SC from the ASIC 1. controlled by code.
[0020]
The search payload data shift unit 9 has n latch units LT1 to LTn (n ≧ 2) each capable of storing 1-byte latch data.
[0021]
The latch units LT1 to LTn receive the latch data stored in the latch unit 21 in synchronization with a clock CLK obtained from the outside, and the latch data of the latch units LT1 to LT (n−1) is latched by the latch unit LT1. The shift operation that LT2 to LTn respectively capture is executed. Data of n bytes (8 bits (predetermined bit) × n (predetermined length)) latched in the latch units LT1 to LTn in the search payload data shift unit 9 becomes the search payload data DP.
[0022]
The header part 15a of the search data combination part 15 takes in the header data DH, and the payload part 15b takes in the search payload data DP, combines both data, and outputs them as combination search data D15 (DH + DP).
[0023]
In the AND gate group 13 including a plurality of AND gates G1, combination search data D15 is given to one input of the plurality of AND gates G1. On the other hand, the mask data stored in the mask register 14 is given to the other input of each of the plurality of AND gates G1 of the AND gate group 13. The data output from each AND gate G1 of the AND gate group 13 becomes the search target data DS.
[0024]
The CAM array 11 is. A plurality of entry data DE that can be compared with the search target data DS is stored. That is, each entry data DE is composed of more than the number of bytes corresponding to the search target data DS.
[0025]
Then, when any of the plurality of entry data DE matches the search target data DS, the CAM array 11 receives a hit signal hit including information indicating the match and information indicating the matched entry data DE by an address or the like. When it does not match any entry data DE, it outputs a hit signal hit including information indicating that all do not match. The hit signal hit also includes information indicating whether or not there are two or more matching entry data DE.
[0026]
For example, if the memory size of the CAM array 11 is 1 Mbit and the lookup length is 144b (bits) × 8K entries and 288b × 4K entries and two types of programs are possible, 144 bits × 8K entries and 13 bits Output information (information indicating one of 8K entries), a flag indicating whether the search result is a hit (match) or a miss (mismatch), and a flag indicating that there are two or more search results Is output as a hit signal hit.
[0027]
It is to be noted that which of the operations of reading and writing the entry data DE and the search processing of the search target data DS and the entry data DE is performed on the CAM array 11 is the operation code OP. It can be controlled by an instruction by code.
[0028]
The priority encoder 12 selects one entry data DE in accordance with a predetermined priority when the hit signal hit indicates that the entry data DE is equal to or greater than 2, and matches only the one entry data DE. An instructed hit signal hit is output to the output bus 22. FIG. 2 schematically shows a case where the hit signal hit indicates matching with one entry data DE, and the hit signal hit in the CAM array 11 is output to the output bus 22 as it is.
[0029]
The offset information output unit 20 synchronizes with the timing at which the comparison result of the search payload data DP stored in the search payload data shift unit 9 appears as the comparison result signal result. The data D13 is output on the output bus 22 as the offset signal offset.
[0030]
As a result, the hit signal hit and the offset signal offset output on the output bus 22 are output to the external ASIC 1 via the output terminal P12 as the comparison result signal result.
[0031]
Note that the connection relationship between the clock CLK and the reset signal RST to each component (CAM array 11 or the like) of the CAM built-in integrated circuit 10 is not shown, but is given to each component, and each component is synchronized with the clock CLK. It is initialized when an active reset signal RST is input.
[0032]
(Operation)
FIG. 4 is an explanatory diagram schematically showing a signature matching search operation of the CAM built-in integrated circuit 10 according to the first embodiment. In the example of FIG. 4, a case where the latch number n of the latch unit LT of the search payload data shift unit 9 is “8” is shown as an example.
[0033]
As shown in the figure, the header data D11 in the packet data D1 is searched for data via the first header part 17 or the second header part 18, the selector 16, the header part 15a, the mask register 14, and the AND gate group 13. Set as DS header data DH (DH0 to DH9). As shown in FIG. 4, the header data changes from header data DH0 to DH9 over time in synchronization with the clock CLK, but is actually fixed to either the first header data DH11 or the second header data DH12.
[0034]
On the other hand, the payload data D12 (“ABcdEfGH...”) Is shifted by 1 character (1 byte) from the first 8 characters “ABcdEfGH”, while the search payload data DP is synchronized with the clock CLK with the passage of time. It changes as data DP0 to DP9. That is, search payload data DP0 = “ABcdEfGH” (no shift (offset)) (offset0), DP1 = “BcdEfGHW” (shift once (offset1)), DP2 = “cdEfGHWA” (shift two times (offset2)). And change.
[0035]
Here, when “Warning!” Is registered in the portion corresponding to the search payload data DP as the entry data DE of the CAM array 11, the search payload data DP8 = “Warning!” (8 shifts (offset8)) At this time, the hit signal hit becomes an active state (indicated by a capital letter “HIT” in FIG. 4).
[0036]
As a result, a signature matching search for searching for the fact that the character string “Warning!” Is included in the payload data D12 as the comparison result signal result can be performed.
[0037]
FIG. 5 is a timing chart showing details of the operation of the CAM built-in integrated circuit 10 according to the first embodiment. The example of FIG. 5 also shows a case where the number of latches n of the latch unit LT of the search payload data shift unit 9 is “8”, as in FIG. In the example of FIG. 5, the case where the payload data D12 is “ABCDEFGHIJKLMNOPQ...” Is shown.
[0038]
As shown in the figure, each operation is executed in synchronization with the “H” rising or “L” falling of the clock CLK. The opcode OP. Included in the control signal SC. The code is used to control the selector 16, and in the example of FIG. 5, the first header data DH11 is selected when the first to fourth and seventh to ninth searches (Search) are executed, and the fifth and sixth searches are executed. An example in which 2 header data DH12 is selected is shown. Here, the search operation for the search payload data DP after the i (i ≧ 1) shift operation is performed is the i-th search operation.
[0039]
The offset data D13 is incremented by “1” in synchronization with the number of searches i and is output to the offset information output unit 20. That is, when the least significant byte LSB of the search payload data DP is “I”, it is set to “1” (00000001), and thereafter, offset data D13 incremented by “1” in synchronization with the clock CLK is output as offset information. Given to part 20.
[0040]
The data is taken into the search payload data shift unit 9 in synchronization with the “L” falling of the clock CLK, and input to the payload unit 15 b in synchronization with the “H” rising of the next clock CLK.
[0041]
After that, after the time (latency) is delayed by the pipeline processing of the search data combination unit 15, mask register 14, AND gate group 13, CAM array 11 and priority encoder 12, the hit signal hit is output from the priority encoder 12. . FIG. 5 shows a case where the latency is 4 clocks. That is, the result of the i-th search process (Search-i) is output as a hit signal (hit-i) delayed by 4 clocks.
[0042]
The offset information output unit 20 delays the offset data D13 by 4 clocks and outputs it as an offset signal offset. As a result, an offset signal offset indicating the shift status i is output in synchronization with the i-th hit signal (hit-i), so that the offset signal offset indicates the shift status during the search processing corresponding to the hit signal hit. It can be recognized accurately.
[0043]
As described above, since the CAM built-in integrated circuit 10 according to the first embodiment has a signature matching search function for the header data D11 and the payload data D12, the control unit such as the ASIC 1 or the NPU does not need to perform the signature matching search process. The burden on the control unit can be reduced.
[0044]
In the first embodiment, since the search payload data shift unit 9 is input in units of 1 byte, the band ratio consumed on the data pin during one search is 1 byte / 1 search. On the other hand, conventionally, since all data strings to be searched are generally input from the data pin input, the search is n bytes / 1. Therefore, the CAM built-in integrated circuit 10 of the first embodiment also has an effect of saving the band to 1 / n.
[0045]
In addition, the search target data DS can be determined by arbitrarily masking the combination search data D15 by the AND gate group 13 and the mask register 14. The writing to the mask register 14 can be set by setting data D14 input from the input terminal P1.
[0046]
For example, if all of the search payload data DP is masked by the AND gate group 13 and the mask register 14, it can be used for address search, which is a normal router function based on the header data DH. If both the header data DH and the search payload data DP are validated, they can be used as IDS by the signature matching function in addition to the normal router function. Accordingly, mass production is realized as the application is widened by the amount applicable to IDS in addition to the router function. As a result, the production cost can be reduced by the quantity.
[0047]
The search data combination unit 15, the mask register 14, and the AND gate group 13 variably set the bit length (header length) of the header data portion and the bit length (payload length) of the payload data portion in the search target data DS. can do. For example, when the bit length of the search target data DS is 288 bits, the first combination in which the header length is 32 bits, the payload length is 256 bits, the header length is 128 bits, and the payload length is 160 bits. It is possible to change to the third combination in which the header length is 0 bit and the payload length is 288 bits. However, in order to realize the first to third combinations, the number of bits stored in at least one of the first header portion 17 and the second header portion 18 and the header portion 15a is 128 bits or more, search payload data It is necessary to set the number of bits stored in the shift unit 9 and the payload unit 15b to 288 bits or more.
[0048]
As described above, the header length and payload length are variable when the network layer to be searched is the third layer L3. A header length of 32 bits is sufficient, but in the fourth layer L4 and the like, a longer header length is set. This is to cope with the case where the required header length differs depending on the network layer to be searched.
[0049]
<Embodiment 2>
(principle)
FIG. 6 is an explanatory diagram showing a packet data structure. As shown in the figure, the packet data includes preamble (Pre-amble) information 61, SFD (Start Frame Delimiter) information 62, transmission source (destination) information 63, transmission destination (Source) information 64, type and length ( Type / Length) information 65, a transmission message 66, PAD (Padding) data 67, and FCS (Frame Check Sequence) information 68. Note that octet in FIG. 6 means a data length with 8 bits (1 byte) as one unit.
[0050]
The data of the second layer L2 of the network layer corresponds to the transmission source information 63 and the transmission destination information 64, and a classification process (processing such as packet flow identification and class identification) is performed based on these information.
[0051]
The third layer data 66a of the transmitting message 66 is subjected to classification processing, checksum filtering processing, etc., and the fourth layer data 66b is subjected to classification processing, checksum filtering processing, etc. Signature matching processing, checksum filtering processing, and the like executed by the CAM built-in integrated circuit 10 of the first embodiment are performed on the fifth to seventh layer data 66c.
[0052]
Since a 4-byte error detection code is set in the FCS information 68, it is possible to detect whether or not the packet is normally received based on the FCS information 68.
[0053]
Further, a portion corresponding to each network layer of the transmitting message 66 has a checksum function for detecting whether or not the message is normally received. That is, in each network layer of the transmission message 66, it is divided into a plurality of chunks (chunks) every 16 bits, addition is performed for each chunk, and the lower 16 bits or less of the addition result is information of the transmission message 66. Has a function of storing as a part of the checksum information. Therefore, if the transmission message 66 is generated by adding the checksum information on the transmission side for each layer of the network layer, the checksum calculation for each layer is performed on the reception side, and the checksum result is compared with the checksum information. As a result, it is possible to detect in which hierarchy an error has occurred on the receiving side.
[0054]
FIG. 7 is an explanatory diagram showing a specific configuration for realizing the conventional checksum operation. As shown in the figure, the integrated circuit 25 with a built-in CAM has a CAM array 4, and reads the entry data DE of the CAM array 4 from the output terminal P30 via the dedicated bus 6, the common bus 7, etc. . Then, the read data RD is input to the input unit P11 of the ASIC 26 via the 144-bit signal line L11.
[0055]
The ASIC 26 reads the data of the k-th layer (any of k = 3 to 7) as read data RD by an internal checksum addition function 1a (which can be realized by hardware or software), and is 16-bit unit ([15: 0] , [31:16], [47:32], [63:48],..., [127: 112], [143: 128]) to obtain the final checksum. The result sum [15: 0] can be obtained, and the check sum information of the kth layer stored in the SRAM 2 is fetched through the 16-bit signal line L12 and the input / output terminal P12, and the final check of the kth layer is performed. Based on the comparison result between the sum result sum [15: 0] and the checksum information of the kth layer, it is possible to detect whether or not the reception of the kth layer has been performed normally.
[0056]
However, as described above, causing the ASIC 26 to perform the checksum calculation process entirely as described above places a load on the ASIC 26.
[0057]
Therefore, in a CAM built-in integrated circuit capable of taking the payload portion into the CAM array, such as the CAM built-in integrated circuit 10 of the first embodiment in which the header portion and the payload portion of the packet data are input to the CAM array, the transmission message 66, the third layer data 66a to the fifth to seventh layer data 66c are taken into the CAM array, and the checksum calculation result of each of these data 66a to 66c is further calculated in the CAM built-in integrated circuit. In the second embodiment, the above-described checksum filtering function can be realized.
[0058]
(Constitution)
8 and 9 are explanatory views showing the read data output function of the CAM built-in integrated circuit 3 according to the second embodiment.
[0059]
As shown in the figure, CAM arrays 40 to 43 corresponding to partial associative memory sections classified into four banks (Bank = 0 to 3) are provided, and sense amplifiers 40a to 43a to 72 of the CAM arrays 40 to 43 are provided. Bit read data RD0 to RD3 are read to dedicated buses 44 to 47.
[0060]
For example, as shown in FIG. 9, when the CAM array 40 has an entry data length of 288 bits, the selector 5 for narrowing the output 288 bits of the sense amplifier 40a to 72 bits is used as the output section of the sense amplifier 40a. The selector 5 outputs 72-bit read data RD0. The selector 5 is controlled by a selection signal S5 that is a part of the control signal SC output from the ASIC1. The illustration of the selector 5 is omitted in FIG. Further, when the CAM arrays 41 to 43 have an entry data length of 288 bits, the configuration is the same as that shown in FIG.
[0061]
The dedicated buses 44 to 47 are connected to a 288-bit common bus 48, and read data RD 0 to RD 3 are input to the selector 49. The selector 49 outputs any one of the read data RD0 to RD3 as the read data RD72 from the output terminal P30 based on the selection signal S49 which is a part of the control signal SC such as ASIC1.
[0062]
FIG. 10 is an explanatory diagram showing a checksum calculation result output function in the CAM built-in integrated circuit 3 according to the second embodiment.
[0063]
As shown in the figure, checksum operation units 50 to 53 corresponding to four partial checksum operation units are provided at the output units of the sense amplifiers 40a to 43a of the CAM arrays 40 to 43. The checksum calculation units 50 to 53 classify the output data of the sense amplifiers 40a to 43a into a plurality of chunks every 16 bits, and checksum calculation results DCS0 to DCS3 are the lower 16 bits of the sum of the 16 bit data of the plurality of checks. And output to dedicated buses 54-57. The checksum calculation results DCS0 to DCS3 described above correspond to a plurality of partial checksum calculation results.
[0064]
It should be noted that the data input of each network layer that is the target of the checksum calculation result can be handled by performing the same as normal writing under the control of the ASIC 1, for example. Data output of each network layer can be handled by, for example, reading written checksum calculation target data from the sense amplifier as in normal reading.
[0065]
The dedicated buses 54 to 57 are combined into a 64-bit common bus 58 and output from the output terminal P30 as a 64-bit checksum operation result DCS64. That is, the checksum calculation result DCS64 is set in the order of checksum calculation results DCS0 to DCS3 from the lower order. That is, the checksum calculation result DCS6 is an aggregate of checksum calculation results DCS0 to DCS3. Since 72 bits can be output from the output terminal P30, the upper 8 bits are reserved data fixed at an appropriate value.
[0066]
FIG. 11 is an explanatory diagram showing the periphery of the CAM array 40 in the CAM built-in integrated circuit 3 according to the second embodiment. The integrated circuit 3 with built-in CAM of the second embodiment has the normal data read function shown in FIGS. 8 and 9 and the checksum operation result output function shown in FIG. 10, and this configuration is specifically shown. It is FIG.
[0067]
As shown in the figure, 288-bit data is read from the sense amplifier 40 a of the CAM array 40 to the checksum calculation unit 50. The checksum calculation unit 50 is classified into 18 chunks CS0 to CS17 every 16 bits, and receives 16-bit data output from the corresponding sense amplifier 40a. For example, chunk CS0 reads 0-15 bit information of sense amplifier 40a, chunk CS16 reads 256-271 bit information of sense amplifier 40a, and chunk CS17 reads 272-287 bit information of sense amplifier 40a.
[0068]
The checksum operation unit 50 outputs the lower 16 bits of the sum of the 16-bit data stored in the chunks CS0 to CS17 to the dedicated bus 54 as the checksum operation result DCS0 of the CAM array 40. The checksum calculation results DCS1 to DCS3 of the CAM arrays 41 to 43 are similarly output to the dedicated buses 55 to 47, and the 64-bit checksum calculation result DCS64 is input to the selector 35 from the common bus 58.
[0069]
On the other hand, the 288-bit output of the sense amplifier 40a is input to the selector 5 in addition to the checksum operation unit 50, and is output to the common bus 48 as 72-bit read data RD0 from the selector 5, as shown in FIG. Similarly, the read data RD1 to RD3 of the CAM arrays 41 to 43 are also output to the dedicated buses 45 to 47, synthesized into 288 bits by the common bus 48, and any one of the read data RD0 to RD3 is selected by the selector 49. The data is output to the selector 35 as 72-bit read data RD72.
[0070]
The selector 35 receives an operation code OP. Based on the code, read data RD72 is output during normal read, and checksum operation result DCS64 is output during checksum operation.
[0071]
As described above, since the CAM built-in integrated circuit 3 according to the second embodiment has a checksum calculation function, the control unit such as the ASIC 1 or the NPU performs checksum calculation processing for detecting normal reception of data in each network layer. You don't have to do most of it. As a result, the burden on the control unit can be greatly reduced.
[0072]
In the second embodiment, the checksum calculation results DCS0 to DCS3 of each of the four CAM arrays 40 to 43 are configured to be output in a lump. Therefore, the checksums of the CAM arrays 40 to 43 are independently generated. Compared to the required case, the execution performance can be four times higher.
[0073]
Of course, by combining the first and second embodiments, a CAM built-in integrated circuit capable of executing both the signature matching function and the checksum calculation function can be obtained.
[0074]
【The invention's effect】
As described above, the integrated circuit with an associative memory function according to claim 1 according to the present invention outputs a comparison result signal that indicates whether or not there is a match by comparing the search object data with at least one entry data. Thus, a signature matching process of detecting a predetermined character string included in the payload data can be executed.
[0075]
As a result, the control unit that controls the integrated circuit with an associative memory function according to the first aspect does not need to perform the signature matching process, so that the load on the control unit can be reduced.
[0076]
Since the integrated circuit with an associative memory function according to the fourth aspect of the present invention can execute the checksum calculation process, the control unit for controlling the integrated circuit with the associative memory function according to the fourth aspect is Has the effect of reducing.
[Brief description of the drawings]
FIG. 1 is a block diagram schematically showing a concept of an integrated circuit with an associative memory function according to a first embodiment of the present invention;
FIG. 2 is a block diagram showing a configuration of a CAM built-in integrated circuit according to the first embodiment;
FIG. 3 is an explanatory diagram showing the relationship between a CAM built-in integrated circuit and an ASIC;
FIG. 4 is an explanatory diagram schematically showing a signature matching search operation of the CAM built-in integrated circuit according to the first embodiment.
FIG. 5 is a timing chart showing details of the operation of the CAM built-in integrated circuit according to the first embodiment;
FIG. 6 is an explanatory diagram showing a packet data structure.
FIG. 7 is an explanatory diagram showing a specific configuration for realizing a conventional checksum operation.
FIG. 8 is an explanatory diagram illustrating a read data output function of the CAM built-in integrated circuit according to the second embodiment;
FIG. 9 is an explanatory diagram showing a read data output function of the CAM built-in integrated circuit according to the second embodiment;
FIG. 10 is an explanatory diagram illustrating a checksum operation result output function in the CAM built-in integrated circuit according to the second embodiment;
FIG. 11 is an explanatory diagram showing the periphery of a CAM array in a CAM built-in integrated circuit according to the second embodiment;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ASIC (NPU), 2 SRAM, 3,10 CAM built-in integrated circuit, 9, 19 Search payload data shift part, 11, 40-43 CAM array, 12 Priority encoder, 13 AND gate group, 14 Mask register, 15 Data combination unit for search, 15a header unit, 15b piload unit, 5, 16, 35, 49 selector, 17 first header unit, 18 second header unit, 20 offset information output unit, 50-53 checksum calculation unit.

Claims (5)

ペイロードデータを含む入力データを受け、所定ビット単位に前記ペイロードデータを取り込み、前記所定ビット単位にシフトさせながら、前記所定ビット×所定長からなる検索用ペイロードデータを得るペイロードデータシフト部と、
少なくとも一つのエントリデータを格納し、前記検索用ペイロードデータに関連したデータである検索対象データと前記少なくとも一つのエントリデータとを比較して一致の有無を指示する比較結果信号を出力する連想メモリ部と、
を備える連想メモリ機能付き集積回路。
A payload data shift unit that receives input data including payload data, captures the payload data in predetermined bit units, and obtains search payload data consisting of the predetermined bits × predetermined length while shifting the predetermined bit units;
An associative memory unit that stores at least one entry data and outputs a comparison result signal that indicates whether there is a match by comparing search target data that is data related to the search payload data and the at least one entry data When,
An integrated circuit with an associative memory function.
請求項1記載の連想メモリ機能付き集積回路であって、
前記入力データはヘッダーデータをさらに含み、
前記ヘッダーデータと前記検索用ペイロードデータとを組み合わせて組合せ検索用データを得る検索データ組合せ部と、
前記組合せ検索用データを選択的に有効として前記検索対象データを得る検索データマスク部とを、
さらに備える連想メモリ機能付き集積回路。
An integrated circuit with an associative memory function according to claim 1,
The input data further includes header data;
A search data combination unit for obtaining combination search data by combining the header data and the search payload data;
A search data mask part for selectively obtaining the combination search data and obtaining the search target data;
An integrated circuit with an associative memory function further provided.
請求項1あるいは請求項2記載の連想メモリ機能付き集積回路であって、
前記比較結果信号は、前記検索用ペイロードデータのシフト状況を指示するオフセット情報を含む、
連想メモリ機能付き集積回路。
An integrated circuit with an associative memory function according to claim 1 or 2,
The comparison result signal includes offset information indicating a shift status of the search payload data.
Integrated circuit with associative memory function.
入力データを所定長のエントリデータとして格納可能な連想メモリ部と、
前記エントリーデータを複数の分割データに分割し、前記複数の分割データのチェックサム演算結果を得るチェックサム演算部と、
前記エントリデータ及び前記チェックサム演算結果のうち一方を選択的に出力可能なセレクタと、
を備える連想メモリ機能付き集積回路。
An associative memory unit capable of storing input data as entry data of a predetermined length;
A checksum calculation unit that divides the entry data into a plurality of divided data and obtains a checksum calculation result of the plurality of divided data;
A selector capable of selectively outputting one of the entry data and the checksum operation result;
An integrated circuit with an associative memory function.
請求項4記載の連想メモリ機能付き集積回路であって、
前記連想メモリ部は複数の部分連想メモリ部を含み、
前記チェックサム演算部は前記複数の部分連想メモリ部に対応した複数の部分チェックサム演算部を含み、前記複数の部分チェックサム演算部は複数の部分チェックサム演算結果を出力し、
前記チェックサム演算結果は、前記複数の部分チェックサム演算結果の集合体を含む、
連想メモリ機能付き集積回路。
An integrated circuit with an associative memory function according to claim 4,
The associative memory unit includes a plurality of partial associative memory units,
The checksum operation unit includes a plurality of partial checksum operation units corresponding to the plurality of partial associative memory units, and the plurality of partial checksum operation units output a plurality of partial checksum operation results,
The checksum operation result includes an aggregate of the plurality of partial checksum operation results.
Integrated circuit with associative memory function.
JP2003185234A 2003-06-27 2003-06-27 Integrated circuit with content addressable memory function and intrusion detection device Expired - Fee Related JP4346975B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003185234A JP4346975B2 (en) 2003-06-27 2003-06-27 Integrated circuit with content addressable memory function and intrusion detection device
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 (en) 2003-06-27 2003-06-27 Integrated circuit with content addressable memory function and intrusion detection device

Publications (3)

Publication Number Publication Date
JP2005018942A true JP2005018942A (en) 2005-01-20
JP2005018942A5 JP2005018942A5 (en) 2006-07-27
JP4346975B2 JP4346975B2 (en) 2009-10-21

Family

ID=34055346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003185234A Expired - Fee Related JP4346975B2 (en) 2003-06-27 2003-06-27 Integrated circuit with content addressable memory function and intrusion detection device

Country Status (2)

Country Link
US (2) US7272685B2 (en)
JP (1) JP4346975B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008192045A (en) * 2007-02-07 2008-08-21 Sharp Corp Image transfer system
JP2009510815A (en) * 2005-08-29 2009-03-12 株式会社コネクトテクノロジーズ Method and system for reassembling packets before search
US7865474B2 (en) 2005-05-20 2011-01-04 Duaxes Corporation Data processing system
US8336092B2 (en) 2005-02-18 2012-12-18 Duaxes Corporation Communication control device and communication control system
JP2017049753A (en) * 2015-09-01 2017-03-09 ルネサスエレクトロニクス株式会社 Semiconductor device and information processing system
US10203892B2 (en) 2015-11-26 2019-02-12 Renesas Electronics Corporation Semiconductor device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
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
GB2530513B (en) * 2014-09-24 2016-08-24 Ibm Assembling response packets
JP2019117677A (en) * 2017-12-27 2019-07-18 ルネサスエレクトロニクス株式会社 Retrieval memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
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 (en) * 1984-10-31 1986-05-26 Nec Corp Associative memory
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 (en) * 2001-08-23 2010-03-24 スパンション エルエルシー Memory controller for multilevel cell memory
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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8336092B2 (en) 2005-02-18 2012-12-18 Duaxes Corporation Communication control device and communication control system
US7865474B2 (en) 2005-05-20 2011-01-04 Duaxes Corporation Data processing system
JP2009510815A (en) * 2005-08-29 2009-03-12 株式会社コネクトテクノロジーズ Method and system for reassembling packets before search
JP2008192045A (en) * 2007-02-07 2008-08-21 Sharp Corp Image transfer system
JP2017049753A (en) * 2015-09-01 2017-03-09 ルネサスエレクトロニクス株式会社 Semiconductor device and information processing system
US10121541B2 (en) 2015-09-01 2018-11-06 Renesas Electronics Corporation Semiconductor device and information processing system
US10203892B2 (en) 2015-11-26 2019-02-12 Renesas Electronics Corporation Semiconductor device

Also Published As

Publication number Publication date
US20050013299A1 (en) 2005-01-20
US20070294472A1 (en) 2007-12-20
JP4346975B2 (en) 2009-10-21
US7272685B2 (en) 2007-09-18

Similar Documents

Publication Publication Date Title
KR102402176B1 (en) Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in software-defined network engine
US20070294472A1 (en) Integrated circuit with associated memory function
US6763426B1 (en) Cascadable content addressable memory (CAM) device and architecture
US6633865B1 (en) Multithreaded address resolution system
US7281085B1 (en) Method and device for virtualization of multiple data sets on same associative memory
US7701941B2 (en) Network switch with mutually coupled look-up engine and network processor
US7237058B2 (en) Input data selection for content addressable memory
US7949683B2 (en) Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
US20150066991A1 (en) Traversal With Arc Configuration Information
US20040249803A1 (en) Architecture for network search engines with fixed latency, high capacity, and high throughput
US7233597B2 (en) High speed parser
US20070183425A1 (en) Logical separation and accessing of descriptor memories
US6570866B1 (en) High-speed flexible longest match retrieval
US7117301B1 (en) Packet based communication for content addressable memory (CAM) devices and systems
US7379352B1 (en) Random access memory (RAM) method of operation and device for search engine systems
JP2004526272A (en) Memory system that detects the longest match
US7340570B2 (en) Engine for comparing a key with rules having high and low values defining a range
KR100428247B1 (en) Method of Constructing the Pipe-Lined Content Addressable Memory for High Speed Lookup of Longest Prefix Matching Algorithm in Internet Protocol Address Lookup
JP2002374289A (en) Retrieval system and method for registering retrieval condition to cam used therefor, and program thereof
JP2007194885A (en) Packet classifying apparatus
KR101056029B1 (en) Lookup device using internal content address memory module

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