JP2006135660A - Association memory and packet transfer device - Google Patents
Association memory and packet transfer device Download PDFInfo
- Publication number
- JP2006135660A JP2006135660A JP2004322425A JP2004322425A JP2006135660A JP 2006135660 A JP2006135660 A JP 2006135660A JP 2004322425 A JP2004322425 A JP 2004322425A JP 2004322425 A JP2004322425 A JP 2004322425A JP 2006135660 A JP2006135660 A JP 2006135660A
- Authority
- JP
- Japan
- Prior art keywords
- search
- unit
- packet
- tables
- keys
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明は、高速な経路テーブル検索を行う連想メモリ(CAM=Contents Addressable Memory)及びCAMを用いたネットワーク装置に関する。 The present invention relates to an associative memory (CAM = Contents Addressable Memory) for performing a high-speed route table search and a network device using the CAM.
IP(Internet Protocol)ネットワークを構成するルータやスイッチは、パケットの宛先を決定するルーティング検索や、パケットが属するフロー検出のためのフローテーブル検索を行っている。 Routers and switches constituting an IP (Internet Protocol) network perform a routing search for determining a packet destination and a flow table search for detecting a flow to which the packet belongs.
このようなネットワーク装置では、検索を行うアドレスを検索キー(ビット列)として入力し、予め設定したテーブルで入力した検索キーに対応するアドレスを出力する連想メモリ(CAM=Contents Addressable Memory)を用いた経路テーブル検索方法が広く採用されている。 In such a network device, a path using an associative memory (CAM = Contents Addressable Memory) that inputs an address to be searched as a search key (bit string) and outputs an address corresponding to the search key input in a preset table. A table search method is widely adopted.
近年、ネットワーク規模の大型化やトラフィックの増加などにより、連想メモリ(以下、CAM)の検索を高速化することが検討されている。CAMの高速化としては、CAMへ入力するデータ量を向上させる手法があり、単位クロック時間当りの入力データ量を増加させるため、クロック信号の立上がりエッジと立下りエッジの両エッジで異なるデータをCAMへ送信するDouble Data Rate (以下,DDR)方式がある。 In recent years, speeding up of associative memory (hereinafter referred to as CAM) search has been studied due to an increase in the size of a network and an increase in traffic. As an increase in the speed of CAM, there is a method of improving the amount of data input to the CAM. In order to increase the amount of input data per unit clock time, different data is generated at both the rising edge and falling edge of the clock signal. There is a Double Data Rate (hereinafter referred to as DDR) method.
また、他の高速化としては、CAMの検索処理を並列的に行うことで、単位時間当たりの検索処理能力を向上するものが知られている(例えば、特許文献1)。これは、CAMの記憶領域を複数のバンクに分けておき、入力された検索キーを上位ビットと下位ビットに分け、複数のバンクで同時に上位ビットと下位ビットの検索処理を行うものである。
しかし、上記特許文献1の従来例では、並列検索を行う複数のバンクの検索動作タイミングが同一タイミングである。この場合、CAMの全てのバンクが同時に検索されることになり、全く検索を行っていない状態から検索頻度が高くなる場合に、消費電流が大きく増加し、消費電流の増加に伴うCAM内の電源ノイズが大きくなり、このノイズによりCAMの検索動作が正しく行われない可能性がある。
However, in the conventional example of
また、CAMの入力に関して上述のようなDDRが知られているが、上記特許文献1の従来例では、検索キーの入力についてDDRを適用した場合にどのようなタイミングで処理が行われるかについて記載はなく、一般的なSDR(Single Data Rate)を適用した場合では、並列化により検索処理を向上させても、入力の帯域幅が拡張されていないため、CAM全体の性能向上は望めない、という問題がある。
In addition, DDR as described above is known regarding CAM input. However, in the conventional example of
本発明は、これらの問題点に鑑みてなされたもので、CAMへの検索キーの入力帯域とCAMの検索性能をバランスさせて、CAMの全体的な性能を向上させながら、検索実行時の消費電流の急増に伴う電源ノイズを抑え、CAMの誤動作を防ぐことを目的とする。 The present invention has been made in view of these problems, and balances the input bandwidth of the search key to the CAM and the search performance of the CAM, thereby improving the overall performance of the CAM while consuming the search at the time of execution. An object of the present invention is to suppress power supply noise caused by a sudden increase in current and prevent malfunction of the CAM.
本発明は、動作クロックに基づいて複数の検索キーを受信する検索キー受信部と、予めアドレス条件を設定した複数の検索テーブルと、前記複数の検索キーを前記複数の検索テーブルに対応付ける検索キー分配部と、前記複数の検索キーが対応付けられた前記複数のテーブルで並列的に検索を実行する検索制御部と、を備え、前記検索制御部は、前記複数のテーブルに対応付けられた検索キーについて、順次検索を開始する。 The present invention relates to a search key receiving unit that receives a plurality of search keys based on an operation clock, a plurality of search tables in which address conditions are set in advance, and a search key distribution that associates the plurality of search keys with the plurality of search tables. And a search control unit that executes a search in parallel with the plurality of tables associated with the plurality of search keys, wherein the search control unit is associated with the plurality of tables. The search is sequentially started.
また、前記検索キー受信部は、前記動作クロックの立ち上がりエッジと立ち下がりエッジで、前記複数の検索キーを順次受信する。 The search key receiving unit sequentially receives the plurality of search keys at a rising edge and a falling edge of the operation clock.
したがって、本発明は、複数の検索テーブルを異なる検索キーで順次検索処理を開始させてから並列的に処理することで連想メモリの高速化を達成し、複数の検索処理を順次開始するようにしたので、連想メモリの消費電力が段階的に上昇させることができ、消費電力の急増に起因するノイズの誘発を抑制して、安定した検索処理を実現できる。 Therefore, the present invention achieves the speed of the associative memory by sequentially starting a plurality of search tables with different search keys and then processing in parallel, thereby starting a plurality of search processes sequentially. Therefore, the power consumption of the associative memory can be increased in stages, and the induction of noise caused by the rapid increase in power consumption can be suppressed and stable search processing can be realized.
また、検索キーの入力をDDRで行うようにしたので、単位時間当たりに検索テーブルへ入力可能なデータ(検索キー)量を増大し、連想メモリの処理能力をさらに向上させることが可能となる。 In addition, since the search key is input by DDR, the amount of data (search key) that can be input to the search table per unit time can be increased, and the processing capability of the associative memory can be further improved.
以下、本発明の一実施形態を添付図面に基づいて説明する。 Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings.
図1は、本発明のCAM(Contents Addressable Memory)を用いたルータを示し、以下、ルータの概要動作を図1、図2および図3を用いて説明する。 FIG. 1 shows a router using a CAM (Contents Addressable Memory) of the present invention, and the general operation of the router will be described below with reference to FIGS.
図1は本発明のルータ200のブロック図を示す。ルータ200はネットワーク1からのパケットを受信するN個の入力回線201−i(i=1〜N)と、ネットワーク1にパケットを送信するN個の出力回線202−i(i=1〜N)と、送受信するパケットの処理を行うN個のインターフェース部210−i(i=1〜N)と、インターフェース部210−iを結合する一つのパケット中継処理部250と、各インターフェース部210−iを制御するプロセッサ280から構成される。なお、プロセッサ280は、制御端末10からの指令を受ける。
FIG. 1 shows a block diagram of a
インターフェース部210−iは、パケットの受信処理を行うパケット受信回路230と、入力(受信)したパケットの宛先IPアドレスに基づいて該パケットの次ホップIPアドレスと該パケットを出力する回線の番号(出力回線番号あるいはポート番号)を判定し、これらの情報をパケット受信回路230に出力する経路テーブル検索部100と、パケット中継処理部250から受信したパケットの送信処理を行うパケット送信回路270と、MACアドレスとIPアドレスの対応関係を示すARP(Address Resolution Protocol)テーブル検索部220から構成される。
The interface unit 210-i includes a
パケットが入力回線201−iより入力されるとパケット受信回路230は、受信したパケットのヘッダに内部ヘッダ部を付加して本パケットを蓄積すると同時に、ヘッダ内の宛先IPアドレスを経路テーブル検索部100に送信する。
When a packet is input from the input line 201-i, the
経路テーブル検索部100は前記宛先IPアドレスより入力したパケットを出力する出力回線の番号である出力回線番号と該パケットを受信する次のホップ(ルータまたは端末)のIPアドレスである次ホップIPアドレスを判定し、パケット出力回線情報としてパケット受信回路230に送信する。
The routing
パケット受信回路230は、パケット出力回線情報内の出力回線番号と次ホップIPアドレスを内部ヘッダ部に書き込み、パケット中継処理部250へ送信する。
The
パケットを受信したパケット中継処理部250は、出力回線番号に対応するインターフェース部210−iのパケット送信回路270に当該パケットを送信する。パケット送信回路270は本パケットを蓄積すると同時に、内部ヘッダ部の次ホップIPアドレスをARPテーブル検索部220に送信する。
The packet
ARPテーブル検索部220は次ホップIPアドレスに対応するMACアドレスを判定し、MACアドレス情報としてパケット送信回路270に送信する。
The ARP
パケット送信回路270は上記MACアドレス情報を受信すると、本情報内のMACアドレスを宛先MACアドレスとして、インターフェース部210−iの入出力回線のMACアドレスを送信元MACアドレスとしてそれぞれパケットに書き込み、内部ヘッダ部を削除して蓄積していたパケットを出力回線202−iに送信する。
Upon receiving the MAC address information, the
次に図2は、本発明の経路テーブル検索部100のブロック図を示す。経路テーブル検索部100は宛先IPアドレスを蓄積する宛先IPアドレス蓄積部180が信号線21を介してパケット受信回路220に接続され、宛先IPアドレス蓄積部180は検索制御部110に接続される。検索制御部110の検索結果は、信号線22を介してパケット受信回路230に接続される。
Next, FIG. 2 shows a block diagram of the route
検索制御部110は、経路エントリのIPアドレス条件を設定するCAM120を有し、宛先IPアドレス蓄積部180に格納された情報(検索キー)から、ルータ200へ入力されたパケットの次ホップIPアドレスと出力回線番号を判定する。
The
本発明の経路テーブル検索部100は、一つのCAM120の記憶領域を論理的に複数(例えば、2つ)のテーブル(検索グループ)に分割し、分割した第1検索グループ(検索テーブル)122−1と第2検索グループ(検索テーブル)122−2を用いて複数の検索キー(例えば、宛先IPアドレス)を、予め設定したアドレス条件に一致するかを並列的に検索する。ここで、「並列的」とは、処理開始、終了時刻が一致する場合だけでなく、2以上の処理が同時に進行している期間が少なくとも0.5クロック存在することをいう。
The route
CAM120は複数ビットの一致条件を格納するエントリを複数備え、検索キーが入力されるとエントリ内の一致条件(アドレス条件)と検索キーの一致比較を行い、一致したエントリのアドレスのなかで最も小さなアドレス値を高速に出力する。
The
そして、CAM120で一致すべきアドレス条件を判定した場合には、検索結果保持テーブル160より上記検索キーと一致したアドレス条件に対応する次ホップIPアドレスと出力回線番号を読み出して検索処理を終了する。
When the address condition to be matched is determined by the
経路テーブル検索部100は、上記検索結果に対応した次ホップIPアドレスと出力回線番号をパケット出力回線情報としてパケット受信回路230に送信し、パケット受信回路230はこのパケット出力回線情報に基づいてパケットをパケット中継処理部250に送信する。
The route
図3は、本発明のCAM120のブロック図である。
FIG. 3 is a block diagram of the
CAM120は、IPアドレスなどの検索キーを伝達する信号線(データ線)25を介して検索制御部110に接続され、検索制御部110はメモリクロック信号線27の動作クロックに同期してDDR(Doble Data Rate)で宛先IPアドレス蓄積部180に格納された複数の宛先IPアドレス等を検索キーとしてCAM120に送信する。CAM120は、受信した複数の検索キーで第1検索グループ122−1と第2検索グループ122−2を並列的に検索し、検索結果をメモリクロック信号線27のクロックに同期して、DDRで検索制御部110に送信する。なお、CAM120はメモリクロック信号線27を介して検索制御部110からクロックの供給を受け、CAM120の各部の同期をとる。
The CAM 120 is connected to the
さらに、CAM120は、検索の種別を示す情報を伝達する信号線28を介して検索制御部110と接続され、後述するように、検索制御部110は、信号線28を介して検索の種別(モード)を示す情報(以下、検索種別情報)をCAM120に送信し、CAM120では受信した検索種別情報に応じて検索のモードを切り替える。
CAM120の記憶領域は、複数の検索グループに論理的に分割されており、ここでは、第1の検索グループ122−1と第2の検索グループ122−2の2つで構成した場合を示す。
Further, the
The storage area of the
CAM120は、検索制御部110から検索キー及び検索種別情報を受信し、複数の検索キーを第1検索グループ122−1と第2検索グループ122−2へ分配する検索キー分配部121を備える。ここで、信号線25から受信する検索キーは、後述するように、クロック線27の動作クロックの立ち上がり(Rise)エッジで一つの検索キーを受信し、同じくクロックの立ち下がり(Fall)エッジで一つの検索キーを受信するDDRでデータ転送が行われる。
The
検索キー分配部121は、複数のデータ記憶ブロック123a−i(但し、i=1〜n)を備える第1検索グループ122−1と、複数のデータ記憶ブロック123b−i(但し、i=1〜n)を備える第2検索グループ122−2へ、検索種別情報に応じてDDRで受信した検索キーをそれぞれ投入し、並列的な一致検索を起動する。この並列的な一致検索をすることによって、DDRを用いて高速で受信した検索キーに対して逐一一致検索処理を行う場合に比べて、検索処理による遅延を低減することができ、高速に処理結果を出力することができる。
The search
第1検索グループ122−1は、検索キーに一致したアドレス条件を生成するヒットアドレス生成回路124−1に接続され、同様に、第2検索グループ122−2は、検索キーに一致したアドレス条件を生成するヒットアドレス生成回路124−2に接続され、第1及び第2検索グループ122−1、2で行われた検索結果が生成される。 The first search group 122-1 is connected to a hit address generation circuit 124-1, which generates an address condition that matches the search key. Similarly, the second search group 122-2 sets the address condition that matches the search key. Connected to the hit address generation circuit 124-2 to be generated, the search results performed in the first and second search groups 122-1, 2 are generated.
2つのヒットアドレス生成回路124−1、2の検索結果は、検索結果出力部125へ送られる。検索結果出力部125では、2つの検索結果をDDRにより信号線26を介して検索制御部110に送信する。
The search results of the two hit address generation circuits 124-1 and 124-2 are sent to the search
ここで、第1検索グループ122−1と第2検索グループ122−2の各データ記憶ブロック123a−i、123b−iは、図4に示すように構成され、各データ記憶ブロックはデータA0i(i=1〜n)とマスクA0i(i=1〜n)を格納する領域に分けられる。
Here, each
そして各検索グループ122−1、2は所定のデータ幅wとデータ記憶ブロック数で構成され、例えば、データ幅w=72bit、データ記憶ブロック数=64Kなどで構成される。この場合のCAM120のエントリ数は、データ記憶ブロック数に検索グループの数を乗じたものであり、上記の場合、128Kエントリとなる。これに対し、従来の並列検索処理では、同じ検索処理をしようとしたときに、144bitのCAMのデータ幅に合わせて、DDRで入力した2つの72bitの検索キーを合成して144bitの検索キーとし、この144bitの検索キーを複製して2つの144bitのCAMにそれぞれ入力し、さらに144bitのデータ幅のうちそれぞれのCAMでの検索対象外の72bitにマスクをかけて検索を行うことがあった。この場合、それぞれのCAMのデータ幅のうち、結果的にマスクをかけてしまう72bit分は検索に関与しない無駄なデータ記憶領域になっていた。この従来技術に比べて、図4を用いて説明した上記CAMでは、無駄なデータ記憶領域を確保する必要がなくなり、同じ容量のCAMでエントリ数又は並列段数を増やすことができる。
Each search group 122-1, 2 is configured with a predetermined data width w and the number of data storage blocks, for example, with a data width w = 72 bits and a data storage block number = 64K. The number of entries in the
次に、図5は検索キー分配部121の詳細を示すブロック図である。検索キー分配部121は、検索制御部110からの検索種別情報を受信し、この検索種別情報に対応して第1または第2検索グループに検索の実行指示を指令する検索種別判定部1211を有する。
Next, FIG. 5 is a block diagram showing details of the search
さらに、検索種別判定部1211は、データ線25からクロック信号の立ち上がりエッジのデータを第1の検索キーとして取得し、蓄積する第1検索キー蓄積部1212へ第1の検索キーを第1検索グループ122−1へ送信するように指令する。また、検索種別判定部1211は、データ線25からクロック信号の立ち下がりエッジのデータを第2の検索キーとして取得し、蓄積する第2検索キー蓄積部1213へ第2の検索キーを第2検索グループ122−2へ送信するように指令する。
Further, the search
また、検索種別判定部1211は、検索制御部110から受信した検索種別情報に応じて第1検索グループ122−1と第2検索グループ122−2で並列的に行われる検索のモードを切り替える。
In addition, the search
この検索モードは、例えば、データ線25から複数の検索キーが入力され、第1検索グループ122−1と第2検索グループ122−2で並列的に検索を実行する並列モードと、データ線25から一つの検索キーが入力され、第1検索グループ122−1または第2検索グループ122−2の何れか一方で検索を実行する単独モードなどである。このモード切替を行うことによって、検索処理が集中的に必要な場合には高速検索のために並列処理を行い、検索処理がそれほど必要ない場合には一方の検索グループを用いずに消費電力を低減することができる。
This search mode includes, for example, a parallel mode in which a plurality of search keys are input from the
検索制御部110は、データ線25に検索キーを出力するとともに信号線28に検索種別情報を出力する。
The
検索種別判定部1211は、信号線28から受信した検索種別情報が並列モードを示す場合、第1検索キー蓄積部1212と第2検索キー蓄積部1213に、受信した検索キーを第1検索グループ122−1と第2検索グループ122−2へそれぞれ出力するよう指令する。この後、検索種別判定部1211は、第1及び第2検索グループ122−1、2に対して検索を実行するように指令する。また、検索種別判定部1211は、現在行っている検索の種別を検索結果出力部125に通知する。検索結果出力部125は、検索種別判定部1211からの検索種別情報に応じて、ヒットアドレス生成回路124−1または124−2の出力をどのように扱うかを決定する。このように検索種別判定部1211が検索種別を検索結果出力部125に通知することによって、DDRによる検索キー受信及び並列検索処理が行われた場合には、検索結果出力部125がこれに合わせてDDRで結果を出力することができ、検索結果を遅延させることなく出力することができる。
When the search type information received from the
図6は、検索結果出力部125の詳細を示すブロック図である。検索結果出力部125は、上記図5の検索種別判定部1211からの検索種別情報を受信して、検索モードを判定する検索種別判定部1251と、検索種別判定部1251からの指令に応じて、ヒットアドレス生成回路124−1から受信した第1の検索結果を出力する第1検索結果蓄積部1252と、検索種別判定部1251からの指令に応じて、ヒットアドレス生成回路124−2から受信した第2の検索結果を出力する第2検索結果蓄積部1253から構成される。
FIG. 6 is a block diagram showing details of the search
検索種別判定部1251は、検索種別情報が並列モードであれば、2つの検索結果蓄積部1252、1253に対して、DDRで検索制御部110に検索結果を送信するように指令し、単独モードの場合には第1検索結果蓄積部1252または第2検索結果蓄積部1253の何れか一方から検索結果を出力するよう指令する。
If the search type information is the parallel mode, the search
第1及び第2検索結果蓄積部1252、1253は、出力側を信号線26に接続されており、並列モードの場合、第1検索結果蓄積部1252は、メモリクロック信号線27のクロックに同期して立ち上がりエッジで第1の検索結果を信号線26に送り、第2検索結果蓄積部1253は、メモリクロック信号線27のクロックに同期して立ち下がりエッジで第2の検索結果を信号線26に送る。
The first and second search
一方、検索種別判定部1251が単独モードと判定したときには、ヒットアドレス生成回路124−1または124−2の出力を取得した何れか一方の検索結果蓄積部の出力を信号線26から送信する。
On the other hand, when the search
次に、図7を参照しながら、CAM120で行われる処理の一例について説明する。この図7のフローチャートは、CAM120に検索キーが入力されるたびに実行されるものである。
Next, an example of processing performed by the
まず、S1では検索キー分配部121の検索種別判定部1211が検索制御部110から信号線28より検索動作種別(検索種別情報)を受信して、検索処理を開始する。
First, in S1, the search
S2では、検索種別判定部1211が、第1検索キー蓄積部1212および第2検索キー蓄積部1213に対して、受信した検索キーを記憶するように指令する。
In S2, the search
S3では、検索キーの記憶指示を受信した第1検索キー蓄積部1212が、メモリ動作クロック信号の立上りエッジのタイミングにて、データ線25から第1の検索キーを取得して、蓄積し、第1検索グループ122−1へ第1の検索キーを出力する。
In S3, the first search
S4では、検索キーの記憶指示を受信した第2検索キー蓄積部1213がメモリ動作クロック信号の立下りエッジのタイミングにて、データ線25から第2の検索キーを取得し、蓄積し、第2検索グループ122−2へ第2検索キーを出力する。
In S4, the second search
S5では、検索種別判定部1211が、第1検索グループ122−1と第2検索グループ122−2へ検索の実行を指令する。また、検索キー分配部121は、検索結果出力部125に検索種別情報を送信する。このように検索種別を検索結果出力部に通知することによって、DDRによる検索キー受信及び並列検索処理が行われた場合には、検索結果出力部がこれに合わせてDDRで結果を出力することができ、検索結果を遅延させることなく出力することができる。
In S5, the search
S6では、第1検索グループ122−1と第2検索グループ122−2が、それぞれ上記入力された第1検索キーと第2検索キーの一致比較を並列的に行う。なお、本実施例では、第1検索グループ122−1と第2検索グループ122−2のデータA0−iとデータB0−iは同じであり、マスクA0−iとマスクB0−iも同一の内容とするが、検索目的によっては必ずしも同一の内容でなくてもよい。 In S6, the first search group 122-1 and the second search group 122-2 perform the comparison of the input first search key and second search key in parallel, respectively. In this embodiment, the data A0-i and the data B0-i of the first search group 122-1 and the second search group 122-2 are the same, and the mask A0-i and the mask B0-i have the same contents. However, depending on the purpose of the search, the content may not necessarily be the same.
第1検索グループ122−1と第2検索グループ122−2がそれぞれ、各エントリに設定されたアドレス条件と各検索キーとの比較を並列的に行う。そして、第1検索グループ122−1は検索結果をヒットアドレス生成回路124−1に出力し、第2検索グループ122−2は検索結果をヒットアドレス生成回路124−2に出力する。ヒットアドレス生成回路124−1、2では、それぞれ第1及び第2検索キーと一致したアドレス条件を生成して、検索結果出力部125へ出力する。
The first search group 122-1 and the second search group 122-2 respectively compare the address condition set in each entry with each search key in parallel. The first search group 122-1 outputs the search result to the hit address generation circuit 124-1, and the second search group 122-2 outputs the search result to the hit address generation circuit 124-2. In the hit address generation circuits 124-1 and 124-2, address conditions that match the first and second search keys are generated and output to the search
S7では、検索キー分配部121から検索種別情報を受信した検索結果出力部125が、第1検索結果蓄積部1252および第2検索結果蓄積部1253に検索結果を記憶するよう指令する。ヒットアドレス生成回路124−1、2からの検索結果は、図6に示したように、第1検索キーに対応する検索結果が第1検索結果蓄積部1252に格納され、第2検索キーに対応する検索結果が第2検索結果蓄積部1253に格納される。
In S7, the search
S8では、検索結果の記憶指示を受信した第1検索結果蓄積部1252が、メモリ動作クロック信号の立上りエッジのタイミングにて、第1検索キーに対応する検索結果を信号線26から検索制御部110へ出力する。
In S8, the first search
次に、S9では、検索結果の記憶指示を受信した第2検索結果蓄積部1253が、メモリ動作クロック信号の立ち下がりエッジのタイミングにて、第2検索キーに対応する検索結果を信号線26から検索制御部110へ出力する。
Next, in S9, the second search
以上の処理により、検索制御部110から入力された2つの検索キーに対して、第1検索グループ122−1と第2検索グループ122−2で並列的に検索が実行され、検索結果出力部125がDDRで検索制御部110に出力することになる。このようにDDRで出力することによって、DDRによる検索キー受信及び並列検索処理が行われた結果を遅延させることなく出力することができる。
As a result of the above processing, the two search keys input from the
上記CAM120の動作について、図8のタイミングチャートを参照しながら説明する。
The operation of the
クロックが立ち上がりとなるC1の時点で、検索キー分配部121の検索種別判定部1211は第1検索キー(図中キー1)を取得し、次のクロックの立ち下がりとなるC2で、検索種別判定部1211は第2検索キー(図中キー2)を取得する。
At the time point C1 when the clock rises, the search
そして、第1検索キー蓄積部1212及び第2検索キー蓄積部1213へ入力された第1及び第2検索キーは、C3、C4の時点で第1検索グループ122−1と第2検索グループ122−2へそれぞれ入力される。
The first and second search keys input to the first search
第1検索グループ122−1では、C3〜C7の2クロックで第1検索キーの検索を行い、第2検索グループ122−2では、C4〜C8の2クロックで第2検索キーの検索を行う。したがって、C4〜C7の期間でCAM120の第1検索グループ122−1と第2検索グループ122−2は並列的に検索処理を実行する。なお、第1検索グループ122−1と第2検索グループ122−2の検索処理は、1クロックずつ2つのステップに分けて実行される。検索処理の負荷が低いときには、検索処理を1クロックで完了することも可能である。
In the first search group 122-1, the first search key is searched in two clocks C3 to C7, and in the second search group 122-2, the second search key is searched in two clocks C4 to C8. Accordingly, the first search group 122-1 and the second search group 122-2 of the
C7〜C8では第1検索キーの検索結果に応じたアドレス条件が生成され、ヒットアドレス生成回路124−1から検索結果出力部125へ転送される。同様に、C8〜C9では第2検索キーの検索結果に応じたアドレス条件が生成され、ヒットアドレス生成回路124−2から検索結果出力部125へ転送される。
In C7 to C8, an address condition corresponding to the search result of the first search key is generated and transferred from the hit address generation circuit 124-1 to the search
そして、C9のクロックの立ち上がりの時点で、信号線26に第1検索キーの検索結果が出力され、C10のクロックの立ち下がりの時点で、信号線26に第2検索キーの検索結果が出力される。
The search result of the first search key is output to the
このように、本発明のCAM120では、一つの記憶領域を2つの検索グループに分割し、各検索グループの各エントリの内容を同一のデータとマスクとすることにより、2つの異なる検索キーを並列的に処理することが可能となる。これにより、CAM120の見かけ上の性能を向上することができるのである。
As described above, in the
つまり、図8の例では、一つの検索キーの入力から出力までに4.5クロックを要しており、2つの検索キーの処理に要する時間は5クロックとなり、従来技術では1つ処理するのに4.5クロックを要する検索キーを2つの処理するには9クロックを要していたのに対し、見かけ上の性能(検索処理能力)は80%程向上することになる。これにより、本発明では高速かつ低コストのCAMを提供することができる。 That is, in the example of FIG. 8, 4.5 clocks are required from input to output of one search key, and the time required for processing two search keys is 5 clocks. In contrast to the fact that 9 clocks are required to process two search keys that require 4.5 clocks, the apparent performance (search processing capability) is improved by about 80%. As a result, the present invention can provide a high-speed and low-cost CAM.
次に、CAMの検索動作には多大な電力を必要とするため、上記従来例のように複数のテーブル(バンク)で同時に検索を開始する場合、CAMの消費電力が急激に増える。このため、CAM内でノイズの発生を招くことになる。すなわち、前記従来例では、複数のテーブルで同時に検索処理の開始を開始するため、CAMの消費電力が急増し、一気に消費電力のピークに達するためノイズを誘発することになる。 Next, since a large amount of power is required for the search operation of the CAM, the power consumption of the CAM increases drastically when the search is simultaneously started in a plurality of tables (banks) as in the above-described conventional example. For this reason, noise is generated in the CAM. That is, in the conventional example, since the search processing is started simultaneously with a plurality of tables, the power consumption of the CAM increases rapidly, and noise is induced because the power consumption peak is reached at once.
これに対して、本発明のCAM120では、図8で示すように、第1検索キーの検索処理が開始される時刻C3で、第1検索グループ122−1の消費電力が増える。この後、第2検索キーの検索処理が開始される時刻C4で、第2検索グループ122−2の電力消費が増大する。したがって、検索処理の開始に伴う、CAM120の消費電力の増加は、2段化に分けて行われることになる。
On the other hand, in the
したがって、本発明では、CAM120の複数の検索テーブルを順次作動させることで、消費電力が一気にピークに達するのを防ぎ、段階的に消費電力を上昇させるので、ノイズの発生を抑制することが可能となるのである。
Therefore, in the present invention, by sequentially operating a plurality of search tables of the
以上のように、本発明によれば、複数の検索テーブルを順次作動させてから並列的に処理することでCAM120の高速化を達成し、また、データ記憶ブロックを無駄なく利用することができるので、大容量のCAM120を提供できるのである。さらに、複数の検索処理を順次開始するようにしたので、CAM120の消費電力が急にピークに達するのを抑制し、ノイズの誘発を防止でき、安定した検索処理を実現できる。
As described above, according to the present invention, since the plurality of search tables are sequentially operated and then processed in parallel, the speed of the
<変形例1>
図9は、第1の変形例を示し、CAM120に設定した2つの検索グループを構成する各データ記憶ブロック123a−i、123b−iからマスクを削除して、データのみとしたもので、その他の構成は上記実施形態と同様である。
<
FIG. 9 shows a first modification example in which the mask is deleted from each of the
検索キーにマスクを施す必要がない場合には、図12のように、各エントリにはデータ(アドレス条件)のみを格納すれば良く、マスクを格納する記憶領域が不要となるので、さらに、CAM120のエントリ数を増大することができる。 If the search key does not need to be masked, only the data (address condition) needs to be stored in each entry as shown in FIG. 12, and a storage area for storing the mask becomes unnecessary. The number of entries can be increased.
なお、上記実施形態において、CAM120に検索キーを一つずつDDR入力する例を示したが、複数の検索キーを1ワードに結合し、CAM120がワード単位で受信するようにしても良い。この場合、CAM120は、1ワードから複数の検索キーを抽出し、これら複数の検索キーを、各検索グループへ順次投入すればよい。
In the above-described embodiment, an example in which search keys are input to the
以上のように、本発明は、CAMの検索リソースと、CAMと検索制御デバイス間の検索キーの入力帯域を有効活用し、経路テーブル検索を高速に行うことができるので、高速なルータやL3スイッチなどのパケット転送装置に適用することができる。 As described above, according to the present invention, the search resource of the CAM and the input band of the search key between the CAM and the search control device can be effectively used, and the routing table search can be performed at high speed. It can be applied to a packet transfer apparatus such as.
100 経路テーブル検索部
120 CAM
121 検索キー分配部
122−1 第1検索グループ
122−2 第2検索グループ
124−1、2 ヒットアドレス生成回路
125 検索結果出力部
100 Route
121 Search Key Distribution Unit 122-1 First Search Group 122-2 Second Search Group 124-1, Hit
Claims (8)
予めアドレス条件を設定した複数の検索テーブルと、
前記複数の検索キーを前記複数の検索テーブルに対応付ける検索キー分配部と、
前記複数の検索キーが対応付けられた前記複数のテーブルで並列的に検索を実行する検索制御部と、を備えた連想メモリにおいて、
前記検索制御部は、前記複数のテーブルに対応付けられた検索キーについて、順次検索を開始することを特徴とする連想メモリ。 A search key receiving unit for receiving a plurality of search keys based on an operation clock;
A plurality of search tables in which address conditions are set in advance;
A search key distribution unit that associates the plurality of search keys with the plurality of search tables;
An associative memory comprising: a search control unit that performs a search in parallel with the plurality of tables associated with the plurality of search keys;
The associative memory, wherein the search control unit sequentially starts searching for search keys associated with the plurality of tables.
前記検索キー受信部は、前記検索種別を示す信号を受信する検索種別信号受信部を含み、
前記検索種別設定部は、前記検索種別信号受信部が受信した信号に基づいて前記検索キーを対応付ける検索テーブルを変更することを特徴とする請求項1に記載の連想メモリ。 The search key distribution unit includes a search type setting unit for setting a search type for changing a search table associated with the search key,
The search key receiving unit includes a search type signal receiving unit that receives a signal indicating the search type,
The associative memory according to claim 1, wherein the search type setting unit changes a search table that associates the search key based on a signal received by the search type signal receiving unit.
パケットを出力する複数の出力回線と、
宛先アドレスのビット毎に一致条件を指定した宛先アドレス条件と、宛先アドレス条件毎に転送情報を設定した経路エントリを複数備えて、前記入力回線へ入力されたパケットの宛先アドレスに一致する前記宛先アドレス条件を検索し、前記宛先アドレス条件に一致したパケットの転送先を、当該宛先アドレス条件に対応する転送情報に設定する経路テーブル検索部と、
前記転送情報に対応する前記複数の出力回線のいずれかに前記パケットを転送するパケット転送部と、
を備えたパケット転送装置において、
前記経路テーブル検索部は、
前記宛先アドレス条件を設定する複数のエントリを有する連想メモリと、
前記入力されたパケットの宛先アドレスと、前記連想メモリのエントリとを比較して、一致する宛先アドレス条件を検索する検索処理部と、
前記検索処理部で検索した前記パケットの宛先アドレスと一意に対応する宛先アドレス条件に基づいて、前記パケットの転送情報を設定する転送情報設定部と、を備え、
前記連想メモリは、
動作クロックに基づいて前記入力回線から複数の検索キーを受信する検索キー受信部と、
前記宛先アドレス条件を設定した複数の検索テーブルと、
前記複数の検索キーを前記複数の検索テーブルに対応付ける検索キー分配部と、
前記複数の検索キーが対応付けられた前記複数のテーブルで並列的に検索を実行する検索制御部と、を備え、
前記検索制御部は、前記複数のテーブルに対応付けられた検索キーについて、順次検索を開始することを特徴とするパケット転送装置。 An input line for entering packets;
Multiple output lines that output packets;
The destination address that matches a destination address of a packet input to the input line, comprising a plurality of destination address conditions that specify a matching condition for each bit of the destination address and a route entry in which forwarding information is set for each destination address condition A route table search unit that searches for a condition, and sets a transfer destination of a packet that matches the destination address condition in transfer information corresponding to the destination address condition;
A packet transfer unit for transferring the packet to any one of the plurality of output lines corresponding to the transfer information;
In a packet transfer device comprising:
The route table search unit
An associative memory having a plurality of entries for setting the destination address condition;
A search processing unit for comparing a destination address of the input packet with an entry in the associative memory and searching for a matching destination address condition;
A transfer information setting unit that sets transfer information of the packet based on a destination address condition uniquely corresponding to the destination address of the packet searched by the search processing unit,
The associative memory is
A search key receiving unit that receives a plurality of search keys from the input line based on an operation clock;
A plurality of search tables in which the destination address condition is set;
A search key distribution unit that associates the plurality of search keys with the plurality of search tables;
A search control unit that performs a search in parallel with the plurality of tables associated with the plurality of search keys,
The packet transfer apparatus, wherein the search control unit sequentially starts searching for search keys associated with the plurality of tables.
前記検索キー受信部は、前記検索種別を示す信号を受信する検索種別信号受信部を含み、
前記検索種別設定部は、前記検索種別信号受信部が受信した信号に基づいて前記検索キーを対応付ける検索テーブルを変更することを特徴とする請求項5に記載のパケット転送装置。 The search key distribution unit includes a search type setting unit for setting a search type for changing a search table associated with the search key,
The search key receiving unit includes a search type signal receiving unit that receives a signal indicating the search type,
6. The packet transfer apparatus according to claim 5, wherein the search type setting unit changes a search table for associating the search key based on a signal received by the search type signal receiving unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004322425A JP2006135660A (en) | 2004-11-05 | 2004-11-05 | Association memory and packet transfer device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004322425A JP2006135660A (en) | 2004-11-05 | 2004-11-05 | Association memory and packet transfer device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006135660A true JP2006135660A (en) | 2006-05-25 |
Family
ID=36728792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004322425A Pending JP2006135660A (en) | 2004-11-05 | 2004-11-05 | Association memory and packet transfer device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006135660A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008167340A (en) * | 2006-12-29 | 2008-07-17 | Fujitsu Ltd | Entry compression/expansion method and entry compressing/expanding apparatus |
WO2015052818A1 (en) * | 2013-10-10 | 2015-04-16 | 富士通株式会社 | Data forwarding device, information processing device, and data forwarding method |
CN107622077A (en) * | 2016-07-14 | 2018-01-23 | 瑞萨电子株式会社 | Retrieve device and semiconductor device |
CN112507652A (en) * | 2020-12-11 | 2021-03-16 | 恒为科技(上海)股份有限公司 | Grouping method and device for double-rate synchronous dynamic random access memory |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000322892A (en) * | 1999-05-10 | 2000-11-24 | Nec Corp | Associative memory with shortest mask output function capable of continuous search operation |
JP2001060970A (en) * | 1999-08-24 | 2001-03-06 | Nippon Telegr & Teleph Corp <Ntt> | Address retrieving device |
JP2001144801A (en) * | 1999-11-10 | 2001-05-25 | Fujitsu Ltd | Header conversion device and frame transfer device |
JP2003023437A (en) * | 2001-07-11 | 2003-01-24 | Nec Corp | Packet-processing unit |
JP2003256265A (en) * | 2002-02-18 | 2003-09-10 | Internatl Business Mach Corp <Ibm> | Search memory, controller for memory search, and memory search method |
JP2003324464A (en) * | 2002-04-30 | 2003-11-14 | Fujitsu Ltd | Data search apparatus and data search method |
-
2004
- 2004-11-05 JP JP2004322425A patent/JP2006135660A/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000322892A (en) * | 1999-05-10 | 2000-11-24 | Nec Corp | Associative memory with shortest mask output function capable of continuous search operation |
JP2001060970A (en) * | 1999-08-24 | 2001-03-06 | Nippon Telegr & Teleph Corp <Ntt> | Address retrieving device |
JP2001144801A (en) * | 1999-11-10 | 2001-05-25 | Fujitsu Ltd | Header conversion device and frame transfer device |
JP2003023437A (en) * | 2001-07-11 | 2003-01-24 | Nec Corp | Packet-processing unit |
JP2003256265A (en) * | 2002-02-18 | 2003-09-10 | Internatl Business Mach Corp <Ibm> | Search memory, controller for memory search, and memory search method |
JP2003324464A (en) * | 2002-04-30 | 2003-11-14 | Fujitsu Ltd | Data search apparatus and data search method |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008167340A (en) * | 2006-12-29 | 2008-07-17 | Fujitsu Ltd | Entry compression/expansion method and entry compressing/expanding apparatus |
US7933201B2 (en) | 2006-12-29 | 2011-04-26 | Fujitsu Limited | Entry compression/decompression method and apparatus performing an entry compression and decompression |
WO2015052818A1 (en) * | 2013-10-10 | 2015-04-16 | 富士通株式会社 | Data forwarding device, information processing device, and data forwarding method |
CN107622077A (en) * | 2016-07-14 | 2018-01-23 | 瑞萨电子株式会社 | Retrieve device and semiconductor device |
CN107622077B (en) * | 2016-07-14 | 2023-12-05 | 瑞萨电子株式会社 | Search device and semiconductor device |
CN112507652A (en) * | 2020-12-11 | 2021-03-16 | 恒为科技(上海)股份有限公司 | Grouping method and device for double-rate synchronous dynamic random access memory |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kobayashi et al. | A longest prefix match search engine for multi-gigabit IP processing | |
US8625604B2 (en) | Hash-based prefix-compressed trie for IP route lookup | |
US7424468B2 (en) | Internet protocol address look-up device | |
JP4336625B2 (en) | Packet transfer device | |
US7286534B2 (en) | SRAM based cache for DRAM routing table lookups | |
US6987762B2 (en) | Packet exchange and router and input packet processing method thereof | |
US8295286B2 (en) | Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware | |
US7630373B2 (en) | Packet transfer apparatus | |
US6985483B2 (en) | Methods and systems for fast packet forwarding | |
US7890672B2 (en) | Data processing apparatus and data transfer method | |
US7313138B2 (en) | Router device and routing method | |
US20200228449A1 (en) | Exact match and ternary content addressable memory (tcam) hybrid lookup for network device | |
US8848707B2 (en) | Method for IP longest prefix match using prefix length sorting | |
US6570866B1 (en) | High-speed flexible longest match retrieval | |
US20160142316A1 (en) | Apparatus and method for scalable and flexible table search in a network switch | |
JP2006135660A (en) | Association memory and packet transfer device | |
JP2004046988A (en) | Associative memory device and repeater using the same | |
US6853640B1 (en) | Data selection apparatus | |
US20100318560A1 (en) | Search processor and search processing method | |
US10476785B2 (en) | IP routing search | |
EP2958286B1 (en) | A method of using generic modification instructions to enable flexible modifications of packets and an apparatus thereof | |
JP3700574B2 (en) | Search success signal look-ahead output data selection device | |
US20100228716A1 (en) | Protocol processing apparatus and method | |
JP5848185B2 (en) | Frame search processing apparatus and method | |
JP2001060969A (en) | System and method for retrieving high speed ip route |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071026 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091124 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100323 |