JP5639965B2 - 非同期動作検索回路 - Google Patents
非同期動作検索回路 Download PDFInfo
- Publication number
- JP5639965B2 JP5639965B2 JP2011136627A JP2011136627A JP5639965B2 JP 5639965 B2 JP5639965 B2 JP 5639965B2 JP 2011136627 A JP2011136627 A JP 2011136627A JP 2011136627 A JP2011136627 A JP 2011136627A JP 5639965 B2 JP5639965 B2 JP 5639965B2
- Authority
- JP
- Japan
- Prior art keywords
- comparison
- rule
- information
- unit
- rule information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
そこで従来では、LANと外部ネットワークとの間でパケットを中継転送するルータなどのパケット転送処理装置に、パケットフィルタリング機能を持たせるようにしている。パケットフィルタリング機能は、受信されたパケットを予め設定されているルール情報と比較することにより、上記パケットの通過を許可するか否かを判定する。ルール情報は、パケット転送に使用される通信パラメータにより定義され、例えば、送信元アドレス、宛先アドレス、プロトコル、送信元ポート番号及び宛先ポート番号などがある。パケットフィルタリング処理の性能は、ルール情報の数の増加に伴って低下するため、ルール情報と受信パケットとの比較処理回路を並列化し、性能向上を狙う回路構成が存在する(例えば、非特許文献1参照)。
さらに、LSI製造技術の微細化により、リーク電流に起因する静的消費電力の増加が問題となっているが、非同期回路は、制御部のハンドシェイクにより処理を行っている処理段において有効なデータが存在しているか否かを知ることが容易である。従って、有効なデータが存在しない場合、処理段の電源を遮断するいわゆるパワーゲーティングを容易に実現することができる。
本実施形態に係る非同期検索回路を含むパケット処理回路100について図1を参照して説明する。
パケット処理回路100は、ネットワークインターフェース101,108、パーサ102、フレームコントローラ103、バッファメモリ104、非同期検索回路105、QoS(Quality of Service)部106およびフレーム生成部107を含む。
パーサ102は、ネットワークインターフェース101からパケットデータを受け取り、受信パケット情報を抽出する。受信パケット情報は、IPアドレスまたはポート番号といった、後述の非同期検索回路105における比較処理で必要とされるパケットに関する情報である。
フレームコントローラ103は、パーサ102からパケットデータを受け取り、バッファメモリ104に格納するように制御する。
非同期検索回路105は、パーサ102から受信パケット情報を受け取り、受信パケット情報と様々なルール情報とを比較する。ルール情報は、ルール番号、優先度値および比較情報を含む。ルール番号は、例えば後述するルール蓄積部207に蓄積されたルール情報のアドレスのような、ルール情報を識別するIDである。優先度値は、受信パケット情報とルールとが一致する場合に、どれほど優先して適用されるかを示す。ここでは、優先度が高いほど値が小さいとする。比較情報は、受信パケット情報と比較するための情報であって、それぞれの検索種別に対応してパケットの通過を許可するか否かを判定する情報である。例えば、経路検索であれば送信元アドレス、宛先アドレスなどの情報である。非同期検索回路105は、パケットデータの廃棄/通過、出力インターフェースの決定、通信品質クラス分けといった受信したパケットデータの取り扱いを決定する。なお、ルール情報は、非同期検索回路105内部に予め格納されていてもよいし、外部のルール情報蓄積部(図示せず)から比較処理のたびにルール情報を抽出して比較してもよい。非同期検索回路105の詳細については、図3を参照して後述する。
本実施形態に係る非同期検索回路105は、受信パケット情報振分け部201、比較回路202、第1ルール読出し回路203−1、第2ルール読出し回路203−2、第3ルール読出し回路203−3、結果出力部204、第1検索結果蓄積部205−1、第2検索結果蓄積部205−2および第3検索結果蓄積部205−3を含む。さらに、第1ルール読出し回路203−1は、第1ルール読出し部206−1および第1ルール蓄積部207−1を含む。同様に、第2ルール読出し回路203−2は、第2ルール読出し部206−2および第1ルール蓄積部207−2を含み、第3ルール読出し回路203−3は、第2ルール読出し部206−3および第1ルール蓄積部207−3を含む。
本実施形態に係る3つのステージの処理は、例えば、第1ステージにおいて論理インターフェースとNAT(Network Address Translation)検索を行い、第2ステージにおいて経路検索を行い、第3ステージにおいてパケット検索を行うことを想定する。しかし、これに限らず、各ステージにおいてどのような検索を行ってもよい。
ルール蓄積部207−1に蓄積されるすべてのルール情報について、受信パケット情報とルール情報とが一致したルール番号の中で最も優先度が高いルール番号(優先ルール番号)を決定する。全てのルールと比較処理が完了した場合は、受信パケット情報振分け部201に受信パケット情報ack信号を送信する。なお、ルール情報send信号とルール情報ack信号とは1ビットの信号とするが、何ビットの信号を用いてもよい。
第3ステージの比較回路202−3は、第2ステージの比較回路202−2と同様の動作を行うため、ここでの説明を省略する。
第1ルール読出し回路203−1のルール蓄積部207−1は、検索の種別に応じた複数のルール情報を予め蓄積する。
ルール情報およびルール情報send信号は、同一ステージの各比較回路202へブロードキャストされるため、まだ比較処理が終了していない比較回路202へルール情報を送ることにより誤動作する可能性がある。よって、全ての比較回路202からのルール情報ack信号を受けてからルール情報を送ることで誤動作をなくすことができる。
なお、比較回路202が受信パケット情報を受けておらず、ルール情報との比較が不要である場合でも、ルール情報ack信号を出力しないことによるルール読出し部203の読み出し処理のデッドロックを回避する必要があるため、比較回路202は、受信パケット情報を受信していない場合でも、受信パケット情報を受信して比較処理をしているときと同じように、ルール情報send信号に応じてルール情報ack信号を送信する。これにより、読み出し処理のデッドロックを避けることができる。
比較回路202は、比較回路制御部301、カウンタ302、比較部303、第1レジスタ304、第2レジスタ305、第3レジスタ306、第4レジスタ307、第1遅延素子308、第2遅延素子309、第1C素子310、第2C素子311およびORゲート312を含む。また、比較部303以外の部分を比較回路制御部と呼んでもよい。
第2遅延素子309は、比較回路制御部301、カウンタ302、比較部303の中で最も処理遅延の大きい遅延量に合わせ、処理後の値の確定を保証する。
第2C素子311は、比較回路制御部301、カウンタ302、比較部303の出力にそれぞれ接続されている、第1レジスタ304、第2レジスタ305および第3レジスタ306へのラッチ信号を生成するとともに、ルール情報send信号およびルール情報ack信号を制御する。これにより、比較回路制御部301、カウンタ302および比較部303は、第2C素子311で送受されるルール情報send信号およびルール情報ack信号に同期して動作する。
第2レジスタ305は、カウンタ302からの出力であるカウンタ値を保持し、再びカウンタ302へ出力するとともに、比較回路制御部301へカウンタ値を出力する。
第3レジスタ306は、比較部303からの出力(優先ルール番号や優先度)を保持し、再び比較部303へ出力する。
第4レジスタ307は、第3レジスタ306から検索結果となる優先ルール番号を、受信パケット情報振分け部201または前ステージの比較回路202から受信パケット情報をそれぞれ受け取って値を保持し、優先ルール番号と受信パケット情報とを出力する。第2ステージ以降の比較部303である場合は、第4レジスタ307では、受信パケット情報と前ステージの検索結果である優先ルール番号とをあわせて受け取り、前ステージの優先ルール番号とともに、比較部303で処理を完了した優先ルール番号と受信パケット情報とを、後のステージへ出力する。
比較部303は、ルール読出し部206からルール情報を、受信パケット情報振分け部201または前ステージの比較回路202から受信パケット情報を、比較回路制御部301から状態情報を、およびレジスタ306の出力をそれぞれ受け取る。比較部303は、ルール情報と受信パケット情報とを比較し、優先ルール番号と優先度を出力する。具体的な動作については、図5を参照して後述する。
ステップS401では、受信パケット情報send信号が入力されたとき、すなわち受信パケット情報send信号が「0」となったときに動作を開始し、比較回路制御部301が状態「Idle」から状態「ST1」に遷移する。
ステップS402では、比較回路制御部301の状態が「ST1」に遷移したことにより、比較部303の比較部出力360がクリアされ、カウンタ302の初期値がセットされる。ここでは、カウンタ出力358が、「127」となる。
ステップS404では、128回の比較が行われて、カウンタレジスタ出力359が「0」となった場合に、比較回路制御部301の状態が「ST1」から「ST2」に遷移する。
ステップS405では、比較回路制御部301の状態「ST2」では、out0信号が「0」となる。out0信号と受信パケット情報send信号とが入力されたORゲート312から、受信パケット情報send信号362が「0」となって第1C素子310に送られる。その後、第1C素子310において、受信パケット情報send信号354が「0」となる。
ステップS407では、前のステージからの受信パケット情報send信号354が「1」となり、その信号が第1C素子310で受信されると、第1C素子310は、ラッチ信号を生成し、受信パケット情報と優先ルール番号とが第4レジスタ307に保持され、比較部レジスタ出力361となる。ここでは、ルール番号「13」であるルール情報が優先ルール番号として選択される例を示す。
ステップS408では、一連のハンドシェイクを終了するため、第1C素子310は、受信パケット情報ack信号363を「1」にして、前のステージの比較回路に処理が終了したことを通知する。
比較部303は、以上のステップを新たな受信パケット情報を受け取るたびに繰り返し行う。
比較部303は、パケット情報比較部501、優先度値比較部502、論理積部503、第1選択部504および第2選択部505を含む。
パケット情報比較部501は、受信パケット情報振分け部201または前のステージの比較回路202から受信パケット情報を、ルール読出し部206からルール情報をそれぞれ受け取り、受信パケット情報とルール情報中の比較情報とを比較して一致するかどうかを判定する。パケット情報比較部501は、受信パケット情報が一致する場合には、「1」を出力し、受信パケット情報が一致しない場合には、「0」を出力する。
優先度値比較部502は、ルール読出し回路203からルール情報中の優先度値を、優先度レジスタからの出力をそれぞれ受け取り、優先度レジスタ値と優先度値とを比較する。優先度レジスタ値が優先度値よりも大きい(優先度値の方が優先度レジスタ値よりも優先度が高い)場合は、「1」を出力し、優先度レジスタ値が優先度値以下である場合は、「0」を出力する。
第1選択部504は、比較回路制御部301の状態が「Idle」の場合、ルール番号初期値を設定する。更新信号が「0」である場合は、第1選択部504において「1」が選択され、番号レジスタ値はそのまま保持される。更新信号が「1」である場合は、第1選択部504において「2」が選択され、番号レジスタ値が受け取った新たなルール番号で書き換えられる。
以上の処理を全てのルール情報について比較し、全てのルール情報について完了した場合、受信パケット情報がルール情報に一致し、かつ最も優先度の高いルール番号を有する優先ルール番号を得ることができる。比較回路制御部301の状態が「ST2」の場合、次のステージに比較回路202の検索結果となるルール番号を保持し続ける。
なお、優先度レジスタおよび番号レジスタは、値を保持できる記憶素子であればよく、本実施形態では、第3レジスタ306のことである。
ルール読出し部206は、有限ステートマシン601(以下、FSM(Finite State Machine))、ANDゲート602、第1C素子(C1)603、第2C素子(C2−0、C2−1、C2−N)604、マージ回路605、および遅延素子(D2)606を含む。なお、Nは2以上の自然数である。
ANDゲート602は、受信パケット情報send信号を論理積する。
FSM601は、各比較回路202から「0」である受信パケット情報send信号を受け取ることにより動作を開始する。本回路は、複数の比較回路202のうち1つでも受信パケット情報を受け取ったとき、つまり「0」である受信パケット情報send信号を1つでも受け取ったときに動作を開始する必要があるため、各比較回路202からの受信パケット情報send信号は、ANDゲート602により論理積されてFSM601に入力される。これにより、FSM601は、いずれか1つでも受信パケット情報を受け取った比較回路202があることを認識することができる。
遅延素子(D2)606は、ルール蓄積部207のメモリアクセス遅延にあわせた遅延量を加えて第2C素子604へ送る。
インクリメント素子651は、アドレスレジスタ652の値を1つインクリメントする。
アドレスレジスタ652は、インクリメント素子651により更新の度にアドレスがインクリメントされるので、本動作を繰り返すことにより、SRAM653に記憶されるルール情報を順次変更することができる。
SRAM653は、複数のルール情報が記憶されるメモリであり、インクリメントされたアドレスレジスタ651の値に応じた次のルール番号となるアドレス値のルール情報を出力する。
図7はFSM601の状態遷移図を示し、「Idle」、「req_L」および「req_H」の3つの状態が存在する。
状態「Idle」において、ルール情報send信号およびルール情報ack信号ともに1である場合で、かつ、いずれかの比較回路202からの検索要求がある場合(すなわち、受信パケット情報send信号が「0」(search_reqが「0」)となった場合)、状態「req_L」に遷移する(ステップS701)。FSM601の状態が状態「Req_L」に遷移した場合、ルール情報を送るためにルール情報send信号を「0」にする(key_reqを0にする)。次段は読み出しアドレスを生成する回路となっており、前回の読み出しアドレス生成が終了している場合、すぐにack信号を返す(key_ackが0)。FSM601におけるkey_reqおよびkey_ackがともに0となるため、状態が「req_H」に遷移する(ステップS702)。状態「req_H」では、ルール情報send信号を1にし、ルール情報ack信号が1になるタイミングを監視し、さらに、search_reqの状態により、状態「Idle」に遷移するか(ステップS703)、状態「req_L」に遷移し(ステップS704)、次のルール番号(読み出しアドレス)となるルール情報を送るため、ルール情報send信号を0にする(key_reqを0にする)。「Req_L」、「req_H」の繰り返しにより次々と読み出しアドレスを生成する。但し、受信パケットsend信号が「1」(search_reqが「1」)であり、どの比較回路202においても比較処理を行わないような場合には、状態「Idle」に戻り、次の検索要求が来るまでルール情報の送出を停止する。これによって、無駄な電力消費を押さえることができる。
非同期回路は、同期回路のように各レジスタに供給されるクロック信号に代わり、レジスタと対に置かれるC素子間のハンドシェイクによってレジスタのラッチ信号を生成して、処理を行う。レジスタに供給されるラッチ信号がすぐ近くに配置される制御回路から供給される点と、データが入力されない場合は制御回路間のハンドシェイクが発生せずラッチ信号も生成されない点から、非同期回路のほうが、クロック信号を用いた同期回路の電力消費よりも電力消費が少なく、大幅に削減することができる。
i−1ステージからの送信要求を受け取るとiステージでの処理が開始される。はじめに、send i outが0となり(ステップS1)、delay時間経過後send i inが0となる(ステップS2)。そのときのack i+1 inが1なので、送信要求を受け取ったことを伝えるべく、ack i outを0とする(ステップS3)。このとき、ack i inも0となる(ステップS4)。それと同時に、send i+1 outを0にする(ステップS5)。ack i in信号は0となっているので、send i outが1となる(ステップS806)。続いて、send i inは、delay時間遅延して1になる(ステップS7)。このタイミングでラッチまたはレジスタにおいてデータの更新または保持を行うために、clk iが立ち上がる(ステップS8)。その後ack i outは、1に変わり(ステップS9)、clk iをたち下げる。このとき、ack i inも1となる(ステップS10)。以上によりデータパスの信号伝播(処理)が制御される。
Claims (3)
- パケットの通過を許可するか否かを判定する検索種別に対応した複数のルール情報のうちの第1ルール情報と、受信したパケットに関する情報とを比較する比較部を具備し、前記比較部は複数あり、比較部ごとに受信したパケットが異なり、
比較部ごとに、複数の比較部で共通する前記第1ルール情報を受信した場合、前記比較部に比較処理をさせるように制御し、該第1ルール情報とパケットに関する情報との比較が完了した場合または該パケットを受信しなかった場合に処理が完了したことを示す第2信号を生成する比較回路制御部と、
前記複数の比較部からの全ての第2信号を受信した場合、前記第1ルール情報とは異なる第2ルール情報を読み出し、該第2ルール情報を前記複数の比較部に送信する読出し部と、をさらに具備し、
前記比較回路制御部は、前記複数のルール情報を全て受信するまで、前記比較部に順次前記比較処理を行わせ、前記第2信号を生成し、
前記読出し部は、少なくとも1つの前記比較部において該比較部に対応するパケットが受信されているときに、前記第2ルール情報を読み出し、前記比較部において比較処理が行われない場合は、ルール情報の送信を停止するように制御することを特徴とする非同期動作検索回路。 - 前記比較回路制御部は、前記比較部において全てのルール情報と前記パケット情報との比較が完了したのちに、前記パケット情報と一致しかつ優先度が最も高い優先ルール番号を出力するように制御することを特徴とする請求項1に記載の非同期動作検索回路。
- 前記読出し部は、少なくとも1つの前記比較部において該比較部に対応するパケットが受信されているときに、前記第2ルール情報を読み出すように制御することを特徴とする請求項1または請求項2に記載の非同期動作検索回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011136627A JP5639965B2 (ja) | 2011-06-20 | 2011-06-20 | 非同期動作検索回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011136627A JP5639965B2 (ja) | 2011-06-20 | 2011-06-20 | 非同期動作検索回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013005342A JP2013005342A (ja) | 2013-01-07 |
JP5639965B2 true JP5639965B2 (ja) | 2014-12-10 |
Family
ID=47673397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011136627A Expired - Fee Related JP5639965B2 (ja) | 2011-06-20 | 2011-06-20 | 非同期動作検索回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5639965B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3721880B2 (ja) * | 1998-10-05 | 2005-11-30 | 株式会社日立製作所 | パケット中継装置 |
JP2003256203A (ja) * | 2002-03-01 | 2003-09-10 | Mitsubishi Electric Corp | 自動機アプリケーションプログラム開発システム、プログラム開発方法、この方法を実行するプログラム、及びこのプログラムを記憶した記憶媒体 |
JP4263718B2 (ja) * | 2005-12-16 | 2009-05-13 | 日本電信電話株式会社 | 通信処理装置及び通信処理方法 |
JP5228600B2 (ja) * | 2008-04-23 | 2013-07-03 | 日本電気株式会社 | 情報通信機器、低消費電力回路及びそれらに用いる消費電力削減方法 |
-
2011
- 2011-06-20 JP JP2011136627A patent/JP5639965B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013005342A (ja) | 2013-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102402176B1 (ko) | 소프트웨어-규정된 네트워크 엔진에서 패킷 수정 및 포워딩을 위해서 룩업들을 생성하고 결정들을 수행하기 위한 장치 및 방법 | |
US7095742B2 (en) | Packet processing unit | |
JP4890613B2 (ja) | パケットスイッチ装置 | |
KR101476940B1 (ko) | 스위치 시스템, 및 데이터 전송 방법 | |
US20030231630A1 (en) | High speed data classification system | |
US20120163392A1 (en) | Packet processing apparatus and method | |
US20080069094A1 (en) | Urgent packet latency control of network on chip (NOC) apparatus and method of the same | |
CN109981464B (zh) | 一种在fpga中实现的tcam电路结构及其匹配方法 | |
US8824468B2 (en) | System and method for parsing frames | |
US20180113627A1 (en) | Method of Accessing Data for a Switch by Using Sub-flow Entry Tables | |
JP5639965B2 (ja) | 非同期動作検索回路 | |
US9559857B2 (en) | Preprocessing unit for network data | |
JP5674179B1 (ja) | 効率的なネットワークアドレス変換およびアプリケーションレベルゲートウェイ処理のための装置および方法 | |
JP5788308B2 (ja) | 整列回路及び受信装置 | |
US11425036B1 (en) | Pipelined match-action circuitry | |
US20180287939A1 (en) | Transfer device | |
WO2022222756A1 (zh) | 芯片、处理数据的方法和计算机设备 | |
JP4879728B2 (ja) | 検索装置およびデータ処理装置 | |
JP5581995B2 (ja) | メッセージ受信装置およびマイクロコントローラ | |
JP2019046379A (ja) | 計算ノード装置、並列計算機システム、および計算ノード装置の制御方法 | |
US20060117114A1 (en) | Staggering memory requests | |
JP2013225739A (ja) | フレーム検索処理装置および方法 | |
Tóthfalusi et al. | Line-rate packet processing in hardware: the evolution towards 400 Gbit/s | |
Mattihalli et al. | Intelligent Robust Router | |
JP2012050052A (ja) | パケット処理装置及び方法、並びに通信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130515 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130723 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140313 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140408 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140722 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140918 |
|
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: 20141021 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141027 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5639965 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |