JP2000151696A - 情報処理システム - Google Patents

情報処理システム

Info

Publication number
JP2000151696A
JP2000151696A JP31597898A JP31597898A JP2000151696A JP 2000151696 A JP2000151696 A JP 2000151696A JP 31597898 A JP31597898 A JP 31597898A JP 31597898 A JP31597898 A JP 31597898A JP 2000151696 A JP2000151696 A JP 2000151696A
Authority
JP
Japan
Prior art keywords
search
data
memory
entry
processor
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
Application number
JP31597898A
Other languages
English (en)
Inventor
Noboru Tanabe
昇 田那邊
Kazuo Sukai
和雄 須貝
Yoshihiko Sakata
善彦 阪田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP31597898A priority Critical patent/JP2000151696A/ja
Publication of JP2000151696A publication Critical patent/JP2000151696A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 テーブル更新操作によるテーブル検索操作の
中断時間を短縮する。 【解決手段】 プロセッサインタフェース部13とメモ
リインタフェース部3との間に介在し、テーブル検索部
5と排他的に動作するテーブル操作部6内にエントリバ
ッファ、リードアドレスレジスタ、ライトアドレスレジ
スタ、制御部、ステータスレジスタを設け、プロセッサ
10からエントリバッファへ予めデータを書込んでお
き、書き込み先のエントリのアドレスをライトアドレス
レジスタに設定することを契機に制御部がエントリバッ
ファからメモリインタフェース部3の側に自動的にメモ
リライト転送を行うテーブル操作を開始し、テーブル検
索部5は1回の検索処理が終了するまでは検索処理を続
け、1回の検索処理が終了したところでテーブル操作が
入り、テーブル操作が終了した後、自動的にテーブル検
索を再開することにより、テーブル操作によるテーブル
検索処理の中断を短くする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理技術に関
し、特に、テーブルデータの作成をソフトウエアで行
い、テーブルデータの検索処理をハードウエアで行わせ
る、テーブル検索処理技術、より詳しくは、高速なテー
ブル検索を必要とするルータ等のネットワーク中継装置
等に適用して有効な技術に関する。
【0002】
【従来の技術】たとえば、情報処理の分野では、データ
ベースアクセス等に代表されるように、メモリ上に構築
されたテーブルデータを高速に検索する処理が必要とさ
れる場合が多々知られている。
【0003】たとえば、ネットワーク中継技術の分野で
は、中継データから読み取られた宛て先情報にて半導体
メモリ上のルーティングテーブルを検索し、送り先を決
定する処理を行うルータ等においても、ルーティングテ
ーブルの検索性能はルータの処理能力を左右する重要な
要素となるが、ルーティングテーブルの内容は、ネット
ワークの構成状態の経時的な変動に呼応して所定のプロ
トコル等にて実時間で更新する必要があり、取り分け、
このような更新処理が随時発生する状況下での検索処理
の効率化が必須となる。
【0004】検索テーブルの作成をソフトウエアで行
い、検索テーブルの検索処理をハードウエアで行わせる
方式の検索処理機構の参考技術のシステム構成図を図1
4に示す。10は中央演算処理装置(以下プロセッサと
呼ぶ)を、11は検索テーブルが格納されているメモリ
を、12はプロセッサ10とメモリ11間のデータの受
け渡し、および、検索テーブルの検索を行う集積回路を
示し、プロセッサ10は、集積回路12を介してメモリ
11内に検索テーブルデータを作成した後、集積回路1
2の検索動作を起動することにより検索を行わせる。
【0005】集積回路12において、13はプロセッサ
10との情報の授受を行うプロセッサインタフェース部
を、4はメモリ11とのインタフェース制御を行うメモ
リインタフェース部を、5はプロセッサ10の制御によ
り、検索動作の起動、および停止が行われるテーブル検
索部を示す。
【0006】参考技術の検索処理機構の集積回路12内
のメモリインタフェース部4の内部を図15に示す。3
0はテーブル検索部5からのテーブル検索要求、31は
テーブル検索要求30に対応するテーブル検索部5から
のテーブル検索用アドレスを示し、32はテーブル検索
要求30に対応してメモリ11からテーブル検索部5へ
渡されるテーブル検索用データを示す。33、34はそ
れぞれプロセッサ10からプロセッサインタフェース部
13を介して要求されるテーブル操作リード要求、テー
ブル操作ライト要求であり、35はテーブル操作リード
要求33およびテーブル操作ライト要求34に対応する
操作用アドレスであり、40はテーブル操作リード要求
33に対応してメモリ11からプロセッサインタフェー
ス部13を介してプロセッサ10へ渡されるテーブル操
作用リードデータ、および、テーブル操作ライト要求3
4に対応してプロセッサ10からプロセッサインタフェ
ース部13を介してメモリ11に渡されるテーブル操作
ライトデータ(ワード単位)である。
【0007】また、プロセッサ10からの起動停止指示
により、メモリ11内に構築された検索テーブルの検索
動作を行うテーブル検索部5の内部ブロック図を図16
に示す。図16で50はプロセッサ10からこのレジス
タにデータを書き込むことによりテーブル検索部5のテ
ーブル検索動作の起動、および、停止を指示する検索起
動停止レジスタ、51は検索起動停止レジスタ50にプ
ロセッサから書き込まれた検索起動停止指示により検索
動作を行う検索制御部であり、検索制御部51は、検索
起動停止レジスタ50により、検索の停止が指示された
場合、1回の検索動作が終了するまでは、検索動作を続
ける。52は現在、検索制御部51が検索を行っている
か止まっているかの状態を示すステータスレジスタであ
り、プロセッサ10は、ステータスレジスタ52を読む
ことにより、現在、テーブル検索部5が動作中か停止中
かを知ることができる。
【0008】プロセッサ10からテーブルデータの更新
を行う場合のテーブル操作ライトデータ、およびテーブ
ル操作リードデータ40は、通常、テーブルの1エント
リよりも小さい単位(以下ワードと呼ぶ)であり、テー
ブルの1エントリの内容を更新するためには、通常、複
数回のテーブル操作ライトデータ40の書き込みが必要
となり、一般にテーブルの1エントリのデータが部分的
に書き換えられた状態で、検索動作を行うと、検索結果
は、テーブル更新前のものでもテーブル更新後のもので
もない、誤った検索結果となることから、テーブルの1
エントリのデータの更新の途中では、検索動作を行って
はいけない。
【0009】テーブル更新途中で検索動作を行わせない
ようにするための参考技術のシステム構成での1エント
リの更新方法について、図17を参照して説明する。
【0010】プロセッサ10からプロセッサインタフェ
ース部13を介してテーブル検索停止信号を検索起動停
止レジスタ50に書込む。プロセッサインタフェース部
13はテーブル検索部5のステータスレジスタ52が停
止中になるまでポーリングし、検索が停止されたらプロ
セッサ10からプロセッサインタフェース部13とメモ
リインタフェース部3を介してメモリ11へ単発的にラ
イトアクセスを行う。ライトアクセスが終了したら、プ
ロセッサ10からプロセッサインタフェース部13を介
してテーブル検索起動信号を検索起動停止レジスタ50
に書込み、検索を再開する。
【0011】
【発明が解決しようとする課題】上述の参考技術では、
更新動作中にハードウェア検索動作が割り込まない様
に、図17に示すように検索を中断して、エントリ
を更新して、検索を再開する、と言う段階を踏まなけ
ればならない。従って、このテーブル更新操作に起因す
る、テーブル検索時のメモリアクセスの中断を最小限に
することが、テーブル検索の高速化を実現する上で必須
となる。
【0012】本発明の目的は、テーブル更新操作に起因
する、テーブル検索時のメモリアクセスの中断を最小限
にして、テーブル検索の高速化を実現することが可能な
情報処理技術を提供することにある。
【0013】本発明の他の目的は、テーブル検索にてル
ーティングを行う情報中継装置の性能を向上させること
にある。
【0014】
【課題を解決するための手段】本発明は、テーブルが格
納されるメモリと、前記テーブル内のデータの検索動作
を行うテーブル検索手段と、前記テーブル内のデータの
更新動作を行うテーブル操作手段と、プロセッサ等を含
み、テーブルの検索動作と更新操作を排他的に行う情報
処理システムにおいて、更新エントリのライトデータを
あらかじめレジスタバッファ等のバッファ領域に書込ん
でおき、ライトアドレスの指定を契機としてレジスタバ
ッファからメモリにバーストライトアクセスを行う。エ
ントリリード時は、リードアドレスを指定を契機にメモ
リにバーストリードアクセスを行いレジスタバッファに
リードデータを格納する。
【0015】これにより、プロセッサの介入によるメモ
リの更新操作の所要時間、すなわちテーブル操作のため
のメモリアクセス時間が削減され、この更新操作と排他
的に行われるメモリ内のデータ検索操作の中断時間が最
小化されるので、テーブル検索を高速化することが可能
になる。
【0016】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照しながら詳細に説明する。
【0017】(実施の形態1)図1は本発明の一実施の
形態である情報処理システムの構成の一例を示す概念図
であり、図2、図3および図4は、本実施の形態の情報
処理システムの構成要素をさらに詳細に例示した概念図
である。
【0018】本実施の形態の情報処理システムは、プロ
セッサ10と、このプロセッサ10にてアクセスされる
情報が格納されるメモリ11と、プロセッサ10による
メモリ11のアクセスを制御する集積回路12とを含ん
でいる。
【0019】集積回路12は、プロセッサインタフェー
ス部13、メモリインタフェース部12、メモリ11内
に構築されているテーブルのデータを検索する動作を行
うテーブル検索部5、メモリ11内に構築されているテ
ーブルのデータ更新操作等を行うテーブル操作部6、で
構成されている。
【0020】図2は、図1のテーブル操作部6の内部構
成の一例を示している。この図2において、60はプロ
セッサ10がメモリ11とリード/ライトアクセスする
為のエントリデータバッファレジスタ(以下、エントリ
バッファ60と呼ぶ)を、61と62はメモリ11にア
クセスする為のリード/ライトアドレスレジスタを、6
3はエントリバッファのリード/ライトアクセス要求信
号を出力する操作制御部を、64はエントリバッファの
リード/ライトアクセス中であることを示すビット情報
等が操作制御部63から設定されるステータスレジスタ
である。
【0021】図3は、図1に例示されたメモリインタフ
ェース部3の内部構成の一例を示している。この図3に
おいて、30はテーブル検索部5からのテーブル検索要
求、30aは、このテーブル検索要求に対して応答され
る検索許可信号、31はテーブル検索要求30に対応す
るテーブル検索部5からのテーブル検索用アドレスを示
し、32はテーブル検索要求30に対応してメモリ11
からテーブル検索部5へ渡されるテーブル検索用データ
を示す。33、34はそれぞれプロセッサ10からプロ
セッサインタフェース部13を介して要求されるテーブ
ル操作リード要求、テーブル操作ライト要求であり、3
5はテーブル操作リード要求33およびテーブル操作ラ
イト要求34に対応するテーブル操作用アドレスであ
り、40はテーブル操作リード要求33に対応してメモ
リ11からプロセッサインタフェース部13を介してプ
ロセッサ10へ渡されるテーブル操作用リードデータ、
および、テーブル操作ライト要求34に対応してプロセ
ッサ10からプロセッサインタフェース部13を介して
メモリ11に渡されるテーブル操作ライトデータであ
る。
【0022】37はアービタ部、37aおよび37bは
セレクタであり、アービタ部37は、テーブル検索部5
からのテーブル検索要求30、プロセッサ10からプロ
セッサインタフェース部13を介して要求されるテーブ
ル操作リード要求33およびテーブル操作ライト要求3
4のアービトレーションを行い、セレクタ37aおよび
セレクタ37bを操作して、検索用アドレス31および
操作用アドレス35のいずれをメモリアクセスアドレス
310とするか、またメモリアクセスデータ311を、
検索用データ32および操作用データ36の何れとして
出力するかを切り替えることで、テーブル検索部5およ
びテーブル操作部6のメモリ11に対する排他制御を行
う。
【0023】本実施の形態の場合、テーブル操作部6か
らメモリインタフェース部3を経由してメモリ11に渡
される操作用データ36は、メモリ11内に構築される
テーブルを構成するエントリ単位である。
【0024】次に、このメモリ11に対してエントリバ
ッファリード/ライトアクセスを行うと同時に、テーブ
ル検索が行われている場合のメモリインタフェース部3
の内部のアービタ部の動作を説明する。図3の33と3
4の両エントリバッファアクセス要求信号が先にアービ
タ部37に入力されていると、後から来るテーブル検索
要求30は待たされ、エントリバッファアクセスが優先
して実行される。アービタ部37はエントリバッファア
クセスを起動すると選択信号39を出力し、エントリバ
ッファアクセス用アドレス(操作用アドレス35)とエ
ントリバッファアクセスデータ(操作用データ36)を
選択し、それぞれメモリアクセスアドレス310とメモ
リアクセスデータ311として出力する。
【0025】エントリバッファライトアクセスの場合
は、アービタ部37はエントリバッファアクセス用アド
レス(操作用アドレス35)とエントリバッファアクセ
スデータ(操作用データ36)を選択し、メモリアクセ
スアドレス310とライト用のメモリアクセスデータ3
11として、メモリ制御信号38とともに出力し、バー
ストメモリライトアクセスを行う。エントリバッファリ
ードアクセスの時は、アービタ部37はエントリバッフ
ァアクセス用アドレス(操作用アドレス35)を選択
し、メモリアクセスアドレス310としてメモリ制御信
号38とともに出力し、バーストメモリリードアクセス
を行う。リードデータであるメモリアクセスデータ31
1は36を通ってエントリバッファ60にバーストライ
トされる。
【0026】図4は、図1に例示したテーブル検索部5
の内部構成の一例を示す概念図である。本実施の形態の
テーブル検索部5は、全体の制御を行う検索制御部5
1、プロセッサインタフェース部13等の外部から渡さ
れる検索用のキーデータ、および検索範囲アドレスがそ
れぞれ格納されるキーデータレジスタ51a、検索範囲
アドレスレジスタ51b、ヒット/ミス判定や、検索が
ヒットしたデータを外部に送出するための検索データバ
ッファ51c、等を備えている。キーデータレジスタ5
1a、検索範囲アドレスレジスタ51bは複数個あり、
複数種のキーデータに関する逐次的な検索操作を連続し
て実行することが可能である。
【0027】すなわち、プロセッサインタフェース部1
3の側から設定されたキーデータレジスタ51aが空か
否かを検索制御部51は常時監視し、キーデータが存在
する場合には、メモリインタフェース部3の側にテーブ
ル検索要求30を出力して検索許可30aが応答される
のを待ち、検索許可30aが応答されたことを契機に、
当該キーデータに対応した検索範囲アドレスレジスタ5
1b内のアドレスを検索用アドレス31としてメモリイ
ンタフェース部3に出力して検索用データ32を検索デ
ータバッファ51cに読出し、検索用データ32の所定
の部位とキーデータとの一致/不一致の判定(ヒット/
ミス判定)を行い、一致した場合には、ヒット信号と検
索データバッファ51c内の検索用データ32を検索要
求元に送出するとともに、次にの検索に備えてキーデー
タレジスタ51aを空にし、不一致の場合には、当該ア
ドレス範囲の次の検索用データ32を読み出すという操
作を最後の検索用データ32まで反復し、最後までヒッ
トしなかった場合には、キーデータレジスタ51aを空
にしてミス信号を検索要求元に送出する。
【0028】この検索動作は、複数のキーデータレジス
タ51aの全部が空でない限り、テーブル検索要求30
を出力して検索許可30aが応答されるのを待ち続ける
ことで、ハードウェア的に自動的に実行される。
【0029】図8〜図13は、テーブル操作部6におけ
るエントリバッファ60を使用した各種動作を実現する
ためのソフトウェア制御の一例を示すフローチャートで
ある。以下、この図8〜図13のフローチャートに基づ
きエントリバッファ60を使用した動作の一例を示す。
【0030】図8に示す1エントリデータライトを行う
場合は、図7にタイムチャートで示すように、プロセッ
サ10から登録したいエントリテーブルデータをプロセ
ッサインタフェース部13を介してエントリバッファ6
0へ書込み(ステップ801)、メモリ11へのライト
アドレスをライトアドレスレジスタ62に書き込む(ス
テップ802)。
【0031】テーブル操作部6の操作制御部63はライ
トアドレスレジスタ62にライトアドレスが書き込まれ
たという事象により、エントリバッファ60からメモリ
11へのライト動作を起動し、メモリインタフェース部
3にテーブル操作ライト要求34の信号を出力すると同
時にステータスレジスタ64のライトビットを立て、エ
ントリバッファ60からメモリ11へのデータ転送が終
了したら、ステータスレジスタ64のライトビットを落
とす。
【0032】従って、ステータスレジスタ64のライト
ビットが立っている間は、以前に起動したエントリバッ
ファ60からメモリ11へのライト動作が、まだ終了し
ていないことを示し、プロセッサ10はステータスレジ
スタ64を読み、ライトビットが立っている間は、エン
トリバッファ60とライトアドレスレジスタ62には書
込まないように制御しなければならない。ライトビット
が立っている間、新たにエントリバッファ60とライト
アドレスレジスタ62へのライトを行わないようにする
ためにプロセッサ10はステータスレジスタ64のライ
トビットが落ちるまでステータスレジスタ64を読み続
けるようにする(ステップ803)。
【0033】メモリインタフェース部3がエントリバッ
ファライトアクセスを実行開始すると、ライトデータを
エントリバッファ60からメモリ11へ連続して転送を
行う。メモリ11への連続ライトは、一般にダイナミッ
クRAMやシンクロナススタティックRAMでサポート
されているバーストライトサイクルを使用することがで
き、1ワードづつのライトサイクルを繰り返すよりも高
速に行うことができる。ライトアクセスが終了すると、
操作制御部63はステータスレジスタ64のライトビッ
トをクリアしてアクセス終了する。
【0034】テーブル検索部5は、テーブル操作部6に
よるエントリバッファ60からメモリ11へのバースト
ライトが終了すると、メモリインタフェース部3のアー
ビタ部37から検索許可30aをもらうことで、自動的
に検索動作を再開し、図7にタイムチャートで示す通
り、検索動作の中断はメモリ11のバーストライトの間
だけとなり、図17に示す参考技術の例で、プロセッサ
10からのレジスタライトで検索動作を停止した後、エ
ントリの内容を書き換え、レジスタライトで検索動作を
再開する場合に比べ、検索動作の中断時間(図7の検
索中断、更新期間、検索再開)を大幅に削減するこ
とができる。
【0035】図9に示す1エントリデータリードを行う
場合は、プロセッサ10からリードしたいテーブルのア
ドレスをリードアドレスレジスタ61に書き込む(ステ
ップ901)。
【0036】テーブル操作部6の操作制御部63はリー
ドアドレスが書き込まれたという事象により、メモリ1
1からエントリバッファ60へのリード動作を起動し、
メモリインタフェース部3にリードアクセス要求信号
(テーブル操作リード要求33)を出力すると同時にス
テータスレジスタ64のリードビットを立て、メモリ1
1からエントリバッファ60へのデータ転送が終了した
ら、ステータスレジスタ64のリードビットを落とす。
【0037】従って、ステータスレジスタ64のリード
ビットが立っている間は、以前に起動したメモリ11か
らエントリバッファ60へのリード動作が、まだ終了し
ていないことを示し、プロセッサ10はステータスレジ
スタ64を読み、リードビットが立っている間は、リー
ドアドレスレジスタ61には書き込まないように制御し
なければならず、また、エントリバッファ60を読まな
いように制御しなければならない。リードビットが立っ
ている間、新たにリードアドレスレジスタ62へのライ
トとエントリバッファ60のリードを行わないようにす
るためにプロセッサ10はステータスレジスタ64のリ
ードビットが落ちるまで、ステータスレジスタ64を読
み続けるようにする(ステップ902)。
【0038】メモリインタフェース部3がエントリバッ
ファリードアクセスの実行を開始すると、リードデータ
をメモリ11からエントリバッファ60へ連続して転送
を行う。メモリ11からの連続リードも、連続ライトと
同様に、一般にダイナミックRAMやシンクロナススタ
ティックRAMでサポートされているバーストリードサ
イクルを使用することができ、1ワードづつのリードサ
イクルを繰り返すよりも高速に行うことができる。リー
ドアクセスが終了すると操作制御部63はステータスレ
ジスタ64のリードビットをクリアする。
【0039】プロセッサ10はプロセッサインタフェー
ス部13を介してエントリバッファ60からデータをリ
ードしてアクセスを終了する(ステップ903)。
【0040】テーブル検索部5は、テーブル操作部6に
よるメモリ11からエントリバッファ60へのバースト
リードが終了すると、メモリインタフェース部3のアー
ビタ部37から検索許可30aをもらうことで、自動的
に検索動作を再開し、検索動作の中断はメモリ11のバ
ーストリードの間だけとなる。プロセッサ10からのエ
ントリバッファ60のリードは検索動作が再開した後に
並行して行うことができる。
【0041】図10に示す1エントリ内データ部分書換
えを行う場合は、図9に示すフローのステップ901〜
ステップ902と同様のフローで1エントリのデータを
エントリバッファ60に読み込んだ後(ステップ100
1〜ステップ1002)、エントリバッファ60にエン
トリ内容が格納されているので更新したい箇所をプロセ
ッサ10からエントリバッファ60へのデータライトに
より更新し(ステップ1003)、ライトアドレスレジ
スタ62にリード時と同じエントリのアドレスを書込む
(ステップ1004、ステップ1005)。後は図8の
1エントリデータライトと同じフローで1エントリのデ
ータをエントリバッファ60からメモリ11に転送す
る。
【0042】次に、図11にて、同じ内容を複数エント
リにフィルする場合のフローの例について説明する。同
じ内容を複数エントリにフィルするという処理は、例え
ばテーブルの初期化時に必要であり、システムを立ち上
げてからテーブルの検索が開始できるまでの時間を短縮
するために、フィルの高速化は重要である。
【0043】まず、図8に示す1エントリデータライト
と同じフロー(ステップ801〜803)でエントリバ
ッファ60にフィルするデータを書き込む(ステップ1
101)。その後、ライトアドレスレジスタ62にライ
トエントリアドレスを書き込んだ後(ステップ110
3)、ステータスレジスタ64のライトビットが落ちる
まで、ステータスレジスタ64を読み続ける(ステップ
1104)、という処理を書き込む全エントリ分、繰り
返す(ステップ1102)。
【0044】次に、図12にて、1エントリ内に全エン
トリ共通フィールドとエントリ毎に異なるフィールドと
が混在する場合のフィルのフローの例について説明す
る。
【0045】まず、エントリバッファ60に、全エント
リで共通なフィールドにフィルするデータを書き込む
(ステップ1201)。その後、エントリバッファ60
に、各エントリ毎に異なるフィールドのデータを書き込
み(ステップ1203)、ライトアドレスレジスタ62
にライトエントリアドレスを書き込んだ後(ステップ1
204)、ステータスレジスタ64のライトビットが落
ちるまでステータスレジスタ64を読み続ける(ステッ
プ1205)、という処理を書き込む全エントリ分繰り
返す(ステップ1202)。
【0046】次に、図13にて、テーブル内でのデータ
移動処理のフローの例について説明する。転送元のエン
トリに対し、図9に示す1エントリデータリードと同様
のフローでメモリ11からエントリバッファ60へのデ
ータ転送を行った後(ステップ1301、ステップ13
02)、図8に示す1エントリデータライトと同様のフ
ローでエントリバッファ60からメモリ11へのデータ
転送を行う(ステップ1303、ステップ1304)。
図13に示す通り、テーブル内でのデータの移動処理で
は、プロセッサ10とエントリバッファ60の間でのデ
ータライトおよびデータリードを行わずに、データ転送
が行え、高速にデータの移動ができるという特徴があ
る。
【0047】以上のように、本実施の形態によれば、集
積回路12内のテーブル操作部6に設けられたエントリ
バッファ60に1エントリのデータを、プロセッサ10
から複数回の書き込みにより格納した後、メモリ11へ
データを転送することにより、メモリ11へのバースト
アクセスが可能となり、メモリ11上に構築されたテー
ブル更新のためのメモリアクセス時間を削減できる、と
いう効果がある。
【0048】エントリバッファ60からメモリ11への
データ転送が終了後、テーブル検索部5が自動的に検索
動作を再開することにより、テーブル更新による検索動
作の中断時間を削減できる、という効果がある。
【0049】エントリバッファ60にエントリデータを
格納しておき、エントリバッファ60の内容を書き換え
ずに、複数のエントリにエントリバッファ60のデータ
を書き込むことにより、同じエントリデータの複数エン
トリへのフィルが高速化される。これは、同じエントリ
データの複数エントリへのフィルは、例えばテーブルの
初期化時に必要であり、システムを立ち上げてからテー
ブルの検索が開始できるまでの時間を短縮できる、とい
う効果がある。
【0050】メモリ11からエントリバッファ60へデ
ータを転送後、プロセッサ10からエントリバッファ6
0のデータを複数回の読み込みにより読み出すことによ
り、メモリ11へのバーストアクセスが可能となり、テ
ーブル読み込みのためのメモリアクセス時間を削減でき
る、という効果がある。
【0051】メモリ11からエントリバッファ60への
データ転送が終了後、自動的に検索動作を再開させるこ
とにより、テーブル読み込みによる検索動作の中断時間
を削減できる、という効果がある。
【0052】テーブル操作部6のライトアドレスレジス
タ62およびリードアドレスレジスタ61にライト/リ
ードするエントリのアドレスを書き込むことでライト/
リードアクセスが起動されるようにすることにより、起
動レジスタを省略でき、レジスタアクセスを1回分減ら
すことで高速な処理が可能になる。
【0053】(実施の形態2)次に、図5にて、本実施
の形態の情報処理システムを、情報ネットワークにおけ
る通信データの中継動作を行うルータ等の情報中継装置
に適用した例を説明する。
【0054】本実施の形態のルータでは、図1の例示し
た構成に加えて、TCP/IPパケットのバッファリン
グおよびフォワーディグを行うパケットフォワーディグ
エンジン70およびパケットバッファ71と、パケット
フォワーディグエンジン70のI/Oポート70aに接
続される複数のネットワークインタフェース72、等が
追加されている。
【0055】メモリ11には、TCP/IPパケット等
の通信データの中継/廃棄等の判定を行うためのルーテ
ィングテーブル80が設けられている。
【0056】このルーティングテーブル80は、たとえ
ば図6に例示されるように、キーデータとそれに対応し
た検索結果とからなる複数のエントリを含んでいる。
【0057】各エントリは、たとえば、サブネットI/
Pアドレス81、サブネットマスク82、これらに対応
した出力ポート番号83、ネクストホップIPアドレス
84、等の情報を含んでいる。
【0058】また、テーブルルックアップエンジン12
Aは、上述のメモリインタフェース部12の機能の他
に、さらにパケットフォワーディグエンジン70から与
えられるIPヘッダ/TCPヘッダ等の情報をキーデー
タとして、メモリ11内に構築されているルーティング
テーブル80のサブネットI/Pアドレス81、サブネ
ットマスク82を用いたヒット/ミス判定等の検索動作
を行い、この検索結果に基づいて当該ヘッダ情報を持つ
パケットの中継/廃棄の判断を行い、パケットフォワー
ディグエンジン70に指示する機能を有する。
【0059】プロセッサ10Aは、マイクロプロセッサ
10−1、マイクロプロセッサ10−1の制御プログラ
ム等が格納される主記憶10−2、キャッシュメモリ1
0−3、ブート用の情報等が格納される不揮発性半導体
メモリ10−4、PCIバス等の汎用バスとの情報の授
受を制御するバスインタフェース10−5、等で構成さ
れ、ルータの全体の制御を行う。
【0060】上述のテーブルルックアップエンジン12
Aやパケットフォワーディグエンジン70は、PCIバ
ス等の汎用バスを介してプロセッサ10Aに接続され
る。
【0061】ルータが接続される情報ネットワークの構
成の変化等により、他のルータから所定のプロトコルに
て伝達されるネットワーク経路情報等にて、随時、ルー
ティングテーブル80を更新する必要があり、このよう
な更新操作と、検索操作が競合して発生するシステムで
は、テーブルルックアップエンジン12Aに設けられた
上述のような機能を有するテーブル検索部5およびテー
ブル操作部6の機能により、テーブル検索部5によるル
ーティングテーブル80の検索動作の中断時間を最小限
にした高速な検索動作が可能になる。
【0062】従って、図5に例示された構成のルータに
よれば、テーブル検索部5およびテーブル操作部6を含
むテーブルルックアップエンジン12Aにより、情報ネ
ットワークの構成の変化等に伴うルーティングテーブル
80の更新と、IPヘッダ/TCPヘッダ等の情報をキ
ーデータとするメモリ11内のルーティングテーブル8
0の高速な検索によるパケットの中継先の決定や廃棄等
の判定結果に基づくパケットフォワーディグエンジン7
0によるパケットの中継動作を高速に行うことが可能と
なり、ルータの性能が向上する。
【0063】以下、具体的な数値にて、本発明の効果を
説明する。なお、以下の説明では一例として、メモリ1
1(ルーティングテーブル80)の容量を16Mバイ
ト、エントリバッファ60の容量を128バイト、プロ
セッサインタフェース部13からテーブル操作部6に対
するデータ転送経路の幅を4バイト、一回の所要時間を
400ns、とするが、本発明はこれらの数値に限定さ
れるものではない。
【0064】<メモリ11におけるルーティングテーブ
ル80の初期化> 図17の参考技術の場合、 ルーティングテーブル80へのライト 400ns×4M回(16Mバイト/4バイト)=1.
6秒 図8の本発明の場合、 テーブルライト ステータスリード (400ns + 600ns)×128k回(16M
バイト/128バイト) = 0.128秒 テーブルライト時間=10ns×32回(128バイト
/4)バースト+α≒400ns ルータ間では、ルーティングプロトコルを使用し、たと
えば30秒に1回の頻度で経路情報のやりとりをしてお
り、ルータの再起動等の動作中断により経路情報の配布
に参加できない回数が2回連続すると、当該ルータは故
障と見なされ他のルータの経路情報から外されてしま
う。従って、30秒間隔の経路情報の配布が2回連続し
て欠落しないためには、ルータの再起動を30秒以内に
行う必要がある。従って、上述のようなルーティングテ
ーブル80の初期化時間の短縮により、再起動時の全体
の所要時間を短縮でき、再起動の遅延によって他のルー
タの経路情報から外されてしまう、という懸念を解消で
きる。
【0065】<経路追加時間> 図17の参考技術の場合、 CPU時間 停止ライト+ステータスリード+(テーブ
ルライト×32回)+起動ライト=400ns+600
ns+(400ns×32回)+400ns=14.2
μ秒 検索停止時間 検索状態レジスタリード+テーブルライ
ト+検索状態レジスタライト=400ns+(400n
s×32回)+400ns=13.6μ秒 図7の本発明の場合、 CPU時間 (エントリバッファ1〜nライト)+ライ
トアドレスライト+エントリバッファステータスリード
=(400ns×32回)+400ns+600ns=
13.8μ秒 検索停止時間=テーブルライト時間=10ns×32回
(128バイト/4)バースト+α≒400ns <パケットバッファ71の容量>検索が停止している間
は、ルータに到来するパケットをパケットバッファ71
に蓄積する必要がある。回線速度を一例として1Gbp
sとして、上述の検索停止時間を考慮してバッファ容量
を決めると、 参考技術の場合、回線速度1Gbps×14.2μ秒=
14.2KBバイト 本発明の場合 回線速度1Gbps×0.4μ秒 =
400バイト となり、パケットバッファ71の容量を大幅に削減でき
る。
【0066】<パケット転送時間のゆらぎ>さらにパケ
ット受信側では検索停止時間がそのままデータ転送速度
のばらつき(ゆらぎ)に見える。このゆらぎは、インタ
ーネット電話、インターネット放送、等のように実時間
データを中継するときに映像や音声等の品質低下として
問題になる。
【0067】 ゆらぎの目安=1パケット転送時間 =64バイト/パケット÷回線速度100Mbps≒5μ秒 参考技術の場合には、上述のように検索停止時間が1
3.6μ秒でありゆらぎの目安を超過しているため、映
像や音声等の品質低下が懸念される場合があるが、本発
明の場合には、高々400nsであり、ゆらぎの目安よ
りもはるかに小さく、映像や音声等の品質低下は発生し
ない。
【0068】<1回の経路更新による検索停止時間>3
0秒に1回の割合でルータ間で経路情報をやりとりし、
1回のやりとりで、経路情報総数の50k経路中の1%
の経路が更新されると仮定すると、 参考技術の場合には、50k×1%×14.2μ秒=
7.2m秒 本発明の場合には、 50k×1%×0.4μ秒 =
0.2m秒 となり、経路更新に起因する検索停止時間、すなわち、
ルータのパケット処理性能の劣化を小さくすることが可
能になる。
【0069】以上本発明者によってなされた発明を実施
の形態に基づき具体的に説明したが、本発明は前記実施
の形態に限定されるものではなく、その要旨を逸脱しな
い範囲で種々変更可能であることはいうまでもない。
【0070】
【発明の効果】本発明の情報処理システムによれば、テ
ーブル更新操作に起因する、テーブル検索時のメモリア
クセスの中断を最小限にして、テーブル検索の高速化を
実現することができる、という効果が得られる。
【0071】また、本発明の情報処理システムを、テー
ブル検索にてルーティングを行う情報中継装置として利
用する場合における性能向上を実現できる。
【図面の簡単な説明】
【図1】本発明の一実施の形態である情報処理システム
の構成の一例を示す概念図である。
【図2】本発明の一実施の形態である情報処理システム
の構成要素をさらに詳細に例示した概念図である。
【図3】本発明の一実施の形態である情報処理システム
の構成要素をさらに詳細に例示した概念図である。
【図4】本発明の一実施の形態である情報処理システム
の構成要素をさらに詳細に例示した概念図である。
【図5】本発明の情報処理システムを、情報ネットワー
クにおける通信データの中継動作を行うルータ等の情報
中継装置に適用した例を示す概念図である。
【図6】本発明の情報処理システムおいてメモリ上に設
定されるルーティングテーブルの一例を示す概念図であ
る。
【図7】本発明の一実施の形態である情報処理システム
の作用の一例を示すタイムチャートである。
【図8】本発明の一実施の形態である情報処理システム
の作用の一例を示すフローチャートである。
【図9】本発明の一実施の形態である情報処理システム
の作用の一例を示すフローチャートである。
【図10】本発明の一実施の形態である情報処理システ
ムの作用の一例を示すフローチャートである。
【図11】本発明の一実施の形態である情報処理システ
ムの作用の一例を示すフローチャートである。
【図12】本発明の一実施の形態である情報処理システ
ムの作用の一例を示すフローチャートである。
【図13】本発明の一実施の形態である情報処理システ
ムの作用の一例を示すフローチャートである。
【図14】本発明の参考技術である、検索テーブルの検
索処理をハードウエアで行う検索処理機構のシステム構
成図である。
【図15】本発明の参考技術である、検索テーブルの検
索処理をハードウエアで行う検索処理機構の内部構成を
示す概念図である。
【図16】本発明の参考技術である、検索テーブルの検
索処理をハードウエアで行う検索処理機構の内部構成を
示す概念図である。
【図17】本発明の参考技術である、検索テーブルの検
索処理をハードウエアで行う検索処理機構の作用を示す
タイムチャートである。
【符号の説明】
3…メモリインタフェース部、4…メモリインタフェー
ス部、5…テーブル検索部、6…テーブル操作部、10
…プロセッサ、10A…プロセッサ、10−1…マイク
ロプロセッサ、10−2…主記憶、10−3…キャッシ
ュメモリ、10−4…不揮発性半導体メモリ、10−5
…バスインタフェース、11…メモリ、12…メモリイ
ンタフェース部、12…集積回路、12A…テーブルル
ックアップエンジン、13…プロセッサインタフェース
部、30…テーブル検索要求、30a…検索許可、31
…検索用アドレス、32…検索用データ、33…テーブ
ル操作リード要求、34…テーブル操作ライト要求、3
5…操作用アドレス、36…操作用データ、37…アー
ビタ部(排他制御部)、37a,37b…セレクタ、3
8…メモリ制御信号、39…選択信号、40…操作用デ
ータ、50…検索起動停止レジスタ、51…検索制御
部、51a…キーデータレジスタ、51b…検索範囲ア
ドレスレジスタ、51c…検索データバッファ、52…
ステータスレジスタ、60…エントリバッファ(バッフ
ァ領域)、61…リードアドレスレジスタ(アドレスレ
ジスタ)、62…ライトアドレスレジスタ(アドレスレ
ジスタ)、63…操作制御部、64…ステータスレジス
タ、70…パケットフォワーディグエンジン、70a…
I/Oポート、71…パケットバッファ、72…ネット
ワークインタフェース、80…ルーティングテーブル、
81…サブネットI/Pアドレス、82…サブネットマ
スク、83…出力ポート番号、84…ネクストホップI
Pアドレス、310…メモリアクセスアドレス、311
…メモリアクセスデータ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 阪田 善彦 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 Fターム(参考) 5K030 GA01 KA01 KA02 LB05 LD17 LE09 5K033 AA02 CB08 DA05 DB12 DB14 EC04 9A001 CC03 JJ14 JJ18 KK56

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 データを含むテーブルが格納されるメモ
    リと、前記テーブル内の前記データの検索動作を行うテ
    ーブル検索部、前記データの更新動作を行うテーブル操
    作部、前記テーブル検索部および前記データ操作部によ
    る前記メモリへのアクセスを排他的に行わせる排他制御
    部、を含むテーブル検索操作処理機構と、前記テーブル
    検索操作処理機構を制御するプロセッサと、を有する情
    報処理システムであって、 前記テーブル操作部は、 少なくとも前記テーブル内の前記データの1回の検索単
    位である1エントリ分の記憶容量を有するバッファ領域
    と、 前記バッファ領域から前記メモリへ前記データを書き込
    む際のライトアドレスおよび前記メモリから前記バッフ
    ァ領域へ前記データを読み出すためのリードアドレスの
    少なくとも一方が格納される少なくとも一つのアドレス
    レジスタと、 前記アドレスレジスタに対する前記ライトアドレスまた
    は前記リードアドレスの設定を契機に自発的に前記バッ
    ファ領域と前記メモリとの間における前記データの転送
    操作を実行する操作制御部と、 を含むことを特徴とする情報処理システム。
  2. 【請求項2】 請求項1記載の情報処理システムにおい
    て、 前記テーブル検索部が複数の検索処理を連続して実行す
    るとき、前記プロセッサから前記テーブル操作部内の前
    記アドレスレジスタへの設定動作によりテーブル操作が
    起動されると、前記テーブル検索部は、1回の前記検索
    処理が終了するまでは検索処理を続け、当該検索処理が
    終了したところで、前記テーブル操作を行い、当該テー
    ブル操作が終了した後、自動的に前記検索処理を再開す
    ることを特徴とする情報処理システム。
  3. 【請求項3】 請求項1記載の情報処理システムにおい
    て、 前記プロセッサから前記テーブル操作部内の前記バッフ
    ァ領域に特定データを書き込んだ後、前記メモリ内の書
    き込み対象の各エントリに対応したライトアドレスを前
    記アドレスレジスタに設定する動作を反復することで、
    前記テーブル内の複数の前記エントリを同一の前記特定
    データで埋める操作、 前記プロセッサから、前記アドレスレジスタに前記メモ
    リ内の目的のエントリのリードアドレスを設定すること
    により、前記テーブル内の前記アドレスレジスタで指示
    された位置から前記バッファ領域へのデータ転送を連続
    したメモリアクセスで行った後、前記プロセッサが前記
    バッファ領域から1エントリのデータを複数回のレジス
    タリードで読み込む操作、 前記プロセッサが前記アドレスレジスタに前記メモリ内
    の目的のエントリデータのリードアドレスを設定して前
    記バッファ領域に前記エントリデータを読み出すステッ
    プと、前記プロセッサが前記バッファ領域内に読出され
    た前記エントリデータを部分的に書き換えるステップ
    と、前記プロセッサが前記アドレスレジスタに前記リー
    ドアドレスと同じライトアドレスを設定して、前記バッ
    ファ領域内の部分的に書き換えられた前記エントリデー
    タを前記メモリ内の元の格納位置に書き戻すステップ
    と、を反復することで複数のエントリデータの部分更新
    を実行する操作、 前記プロセッサから第1の前記アドレスレジスタに転送
    元エントリのアドレスを書き込んだ後、前記プロセッサ
    から第2の前記アドレスレジスタに転送先エントリのア
    ドレスを書き込むことにより、前記メモリに格納された
    前記テーブル内のデータを前記バッファ領域を経由して
    移動させる操作、 の少なくとも一つの操作を行うことを特徴とする情報処
    理システム。
JP31597898A 1998-11-06 1998-11-06 情報処理システム Pending JP2000151696A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31597898A JP2000151696A (ja) 1998-11-06 1998-11-06 情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31597898A JP2000151696A (ja) 1998-11-06 1998-11-06 情報処理システム

Publications (1)

Publication Number Publication Date
JP2000151696A true JP2000151696A (ja) 2000-05-30

Family

ID=18071879

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31597898A Pending JP2000151696A (ja) 1998-11-06 1998-11-06 情報処理システム

Country Status (1)

Country Link
JP (1) JP2000151696A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005048176A1 (ja) * 2003-11-12 2005-05-26 Matsushita Electric Industrial Co., Ltd. 電子装置及びその制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005048176A1 (ja) * 2003-11-12 2005-05-26 Matsushita Electric Industrial Co., Ltd. 電子装置及びその制御方法
JPWO2005048176A1 (ja) * 2003-11-12 2007-11-29 松下電器産業株式会社 電子装置及びその制御方法
US7549594B2 (en) 2003-11-12 2009-06-23 Panasonic Corporation Electronic device having plurality of functional units and controller for controlling registers according to status of functional units
JP4602907B2 (ja) * 2003-11-12 2010-12-22 パナソニック株式会社 電子装置及びその制御方法

Similar Documents

Publication Publication Date Title
US6032190A (en) System and method for processing data packets
EP0606368B1 (en) Packet processing method and apparatus
US7546399B2 (en) Store and forward device utilizing cache to store status information for active queues
US6577634B1 (en) Method for sharing network information and a router apparatus
JPH10262075A (ja) スイッチングハブ
JP3926558B2 (ja) ルートルックアップエンジン
US7245619B1 (en) Method and apparatus for managing routes
AU772252B2 (en) Method and system for managing forwarding tables
US20040028044A1 (en) Network packet processing
JP2002050184A (ja) 連想メモリ
JP4342128B2 (ja) パケット処理プロセッサ及びパケット処理プロセッサシステム
US5913042A (en) Method and apparatus for managing packet memory
US6947971B1 (en) Ethernet packet header cache
JP2000151696A (ja) 情報処理システム
CN113438097B (zh) 一种网络加速的实现方法及装置
CN107517161B (zh) 一种网络处理器查表方法、网络处理器和查表系统
JPH0764868A (ja) 記憶更新装置
JP2005210385A (ja) 他装置とのバッファ共有方法及び装置
JP2005333220A (ja) ネットワークノード装置
JP4769316B2 (ja) パケットキューイング装置およびパケットキューイング方法
WO2024114138A1 (zh) 报文传输方法、电子设备及存储介质
US20240113996A1 (en) Routing information management method for a layer-3 switch, and system implementing the same
JP2000259523A (ja) データ転送装置、lan通信システム及びデータ転送方法
KR100396916B1 (ko) 고속 라우터를 위한 입출력 포트간의 패킷 연결 방법
JP3508057B2 (ja) レイヤ3スイッチ