(57)【要約】  本発明にかかる中継装置１００は、ネットワークサーチエンジン１７０、ＦＩＦＯ部１３０ａ等を介してデータワードを指定された場合に、データワードに対応する連想メモリアドレスを検索する。そして、内部的に連想メモリアドレスをコンテンツメモリアドレスに変換する場合であっても、コンテンツメモリアドレスに対応する検索結果に対応付けて連想メモリアドレスを記憶すると共に、検索結果とあわせて連想メモリアドレスを出力する。
2009004719.tif 000002
【特許請求の範囲】
【請求項１】
データワードに関連するデータのアドレスを検索する連想メモリと当該連想メモリによって検索されたアドレスに対応するデータを記憶するコンテンツメモリとを含み、データワードが指定された場合に、当該データワードに関連するデータを前記コンテンツメモリから検索して出力するチップを備えた中継装置であって、
前記チップは、前記コンテンツメモリのアドレスを前記連想メモリ上の連想メモリアドレスに変換する変換テーブルを記憶し、
データワードが指定され、前記連想メモリによってデータワードに対応する連想メモリアドレスが検索された場合に、当該連想メモリアドレスを前記コンテンツメモリのアドレスに変換する変換手段と、
前記コンテンツメモリのアドレスと前記変換テーブルとを基にして前記データワードに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスを出力する出力制御手段と、
を備えたことを特徴とする中継装置。
【請求項２】
前記コンテンツメモリとは別に前記連想メモリによって検索された連想メモリアドレスに対応するエントリにデータを記憶する書き込みメモリと、前記書き込みメモリにデータを書き込む書込手段とを更に備えたことを特徴とする請求項１に記載の中継装置。
【請求項３】
前記変換手段は、前記連想メモリがデータワードを取得して連想メモリアドレスを検索し、連想メモリアドレスに対応するエントリにデータを書き込む場合に、前記連想メモリによって検索された連想メモリアドレスを前記コンテンツメモリのアドレスに変換し、前記書込手段は、前記変換テーブルと前記コンテンツメモリのアドレスとを基にして、当該アドレスを連想メモリアドレスに再変換し、当該連想メモリアドレスに対応する前記書き込みメモリのエントリに書き込み対象となるデータを書き込むことを特徴とする請求項２に記載の中継装置。
【請求項４】
データワードに関連するデータのアドレスを検索する連想メモリと当該連想メモリによって検索されたアドレスに対応するデータを記憶するコンテンツメモリとを含み、データワードが指定された場合に、当該データワードに関連するデータを前記コンテンツメモリから検索して出力するチップを備えた中継装置のデータ制御方法であって、
前記チップは、前記コンテンツメモリのアドレスを前記連想メモリ上の連想メモリアドレスに変換する変換テーブルを記憶し、
データワードが指定され、前記連想メモリによってデータワードに対応する連想メモリアドレスが検索された場合に、当該連想メモリアドレスを前記コンテンツメモリのアドレスに変換する変換工程と、
前記コンテンツメモリのアドレスと前記変換テーブルとを基にして前記データワードに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスを出力する出力制御工程と、
を含んだことを特徴とするデータ制御方法。
【請求項５】
前記コンテンツメモリとは別に前記連想メモリによって検索された連想メモリアドレスに対応するエントリにデータを記憶する書き込みメモリにデータを書き込む書込工程を更に含んだことを特徴とする請求項４に記載のデータ制御方法。
【請求項６】
前記変換工程は、前記連想メモリがデータワードを取得して連想メモリアドレスを検索し、連想メモリアドレスに対応するエントリにデータを書き込む場合に、前記連想メモリによって検索された連想メモリアドレスを前記コンテンツメモリのアドレスに変換し、前記書込工程は、前記変換テーブルと前記コンテンツメモリのアドレスとを基にして、当該アドレスを連想メモリアドレスに再変換し、当該連想メモリアドレスに対応する前記書き込みメモリのエントリに書き込み対象となるデータを書き込むことを特徴とする請求項５に記載のデータ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データワードに関連するデータのアドレスを検索する連想メモリと当該連想メモリによって検索されたアドレスに対応するデータを記憶するコンテンツメモリとを含み、データワードが指定された場合に、当該データワードに関連するデータを前記コンテンツメモリから検索して出力するチップを備えた中継装置等に関するものである。
【背景技術】
【０００２】
ネットワーク上で、フレームの中継を行う中継装置（ルータ等）は、処理効率を向上させるためにＣＡＭ（Content  Addressable  Memory）を搭載している（例えば、特許文献１参照）。このＣＡＭは、あるデータワードを指定されると、かかるデータワードをＣＡＭ自身が検索し、データワードが格納されている場所のアドレスを出力するメモリである。【０００３】
なお、近年では、低コスト化、処理効率を向上させるなどの理由から、ＣＡＭとコンテンツメモリ（ＣＡＭによって検索されるアドレスに対応するデータを格納するメモリ）とを合わせてチップ化し、中継装置に搭載している（例えば、ＡＳＳＰ（Application  Specific  Standard  Product））。このチップは、データワードを指定された場合に、データワードが格納されている場所のアドレスを外部に出力するという処理を省略し、かかるアドレスに対応するデータをコンテンツメモリから検索し、検索したデータを直接出力することで、中継装置の処理効率を更に向上させている。【０００４】
【特許文献１】特開平９−１６２９２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したようにＣＡＭとコンテンツメモリとをチップ化して中継装置に搭載した場合には、指定したデータワードに関連するデータが格納されているアドレスを得ることができず、ＣＡＭを効率よく利用することができないという問題があった。【０００６】
本発明は、上記に鑑みてなされたものであって、ＣＡＭとコンテンツメモリとをチップ化している場合であっても、指定したデータワードに関連するデータが格納されているアドレスを得ることができる中継装置およびデータ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、データワードに関連するデータのアドレスを検索する連想メモリと当該連想メモリによって検索されたアドレスに対応するデータを記憶するコンテンツメモリとを含み、データワードが指定された場合に、当該データワードに関連するデータを前記コンテンツメモリから検索して出力するチップを備えた中継装置であって、前記チップは、前記コンテンツメモリのアドレスを前記連想メモリ上の連想メモリアドレスに変換する変換テーブルを記憶し、データワードが指定され、前記連想メモリによってデータワードに対応する連想メモリアドレスが検索された場合に、当該連想メモリアドレスを前記コンテンツメモリのアドレスに変換する変換手段と、前記コンテンツメモリのアドレスと前記変換テーブルとを基にして前記データワードに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスを出力する出力制御手段と、を備えたことを特徴とする。【０００８】
また、本発明は、上記発明において、前記コンテンツメモリとは別に前記連想メモリによって検索された連想メモリアドレスに対応するエントリにデータを記憶する書き込みメモリと、前記書き込みメモリにデータを書き込む書込手段とを更に備えたことを特徴とする。【０００９】
また、本発明は、上記発明において、前記変換手段は、前記連想メモリがデータワードを取得して連想メモリアドレスを検索し、連想メモリアドレスに対応するエントリにデータを書き込む場合に、前記連想メモリによって検索された連想メモリアドレスを前記コンテンツメモリのアドレスに変換し、前記書込手段は、前記変換テーブルと前記コンテンツメモリのアドレスとを基にして、当該アドレスを連想メモリアドレスに再変換し、当該連想メモリアドレスに対応する前記書き込みメモリのエントリに書き込み対象となるデータを書き込むことを特徴とする。【００１０】
また、本発明は、データワードに関連するデータのアドレスを検索する連想メモリと当該連想メモリによって検索されたアドレスに対応するデータを記憶するコンテンツメモリとを含み、データワードが指定された場合に、当該データワードに関連するデータを前記コンテンツメモリから検索して出力するチップを備えた中継装置のデータ制御方法であって、前記チップは、前記コンテンツメモリのアドレスを前記連想メモリ上の連想メモリアドレスに変換する変換テーブルを記憶し、データワードが指定され、前記連想メモリによってデータワードに対応する連想メモリアドレスが検索された場合に、当該連想メモリアドレスを前記コンテンツメモリのアドレスに変換する変換工程と、前記コンテンツメモリのアドレスと前記変換テーブルとを基にして前記データワードに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスを出力する出力制御工程と、を含んだことを特徴とする。【００１１】
また、本発明は、上記発明において、前記コンテンツメモリとは別に前記連想メモリによって検索された連想メモリアドレスに対応するエントリにデータを記憶する書き込みメモリにデータを書き込む書込工程を更に含んだことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、連想メモリとコンテンツメモリとを含んだチップは、コンテンツメモリのアドレスを連想メモリ上の連想メモリアドレスに変換する変換テーブルを記憶し、データワードが指定され、連想メモリによってデータワードに対応する連想メモリアドレスが検索された場合に、連想メモリアドレスをコンテンツメモリのアドレスに変換し、コンテンツメモリのアドレスと変換テーブルとを基にしてデータワードに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスを出力するので、データワードに関連するデータの連想メモリアドレスを得ることができ、連想メモリを効率よく利用することができる。【００１３】
また、本発明によれば、コンテンツメモリとは別に連想メモリによって検索された連想メモリアドレスに対応するエントリにデータを記憶する書き込みメモリを有し、書き込みメモリにデータを書き込むので、データ容量を容易に増加させることができる。【００１４】
また、本発明によれば、連想メモリがデータワードを取得して連想メモリアドレスを検索し、連想メモリアドレスに対応するエントリにデータを書き込む場合に、連想メモリによって検索された連想メモリアドレスをコンテンツメモリのアドレスに変換し、書込手段は、変換テーブルとコンテンツメモリのアドレスとを基にして、アドレスを連想メモリアドレスに再変換し、連想メモリアドレスに対応する書き込みメモリのエントリに書き込み対象となるデータを書き込むので、書き込みメモリに複雑な処理を実行させることなく効率よくデータを書き込むことができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、従来の技術を説明するための図である。
【図２】図２は、本発明の概要および特徴を説明するための図である。
【図３】図３は、本実施例にかかる中継装置の構成を示す機能ブロック図である。
【図４】図４は、論理テーブルの詳細を説明するための図である。
【図５】図５は、本実施例にかかる中継装置が空きエントリ検索処理を行う場合の処理手順を示すフローチャートである。
【図６】図６は、本実施例にかかる中継装置が書き込み処理専用メモリにデータを記録する処理手順を示すフローチャートである。
【符号の説明】
【００１６】
１０，５０    論理テーブル
１０ａ，１１０ａ  ＣＡＭ
１０ｂ，５０ａ，１１０ｂ  コンテンツメモリ
２０    SRAMアドレスGenerator
６０    フレーム
１００    中継装置
１１０ｃ  書き込み処理専用メモリ
１２０    ＮＰＵ
１３０ａ，１３０ｂ，１３０ｃ  ＦＩＦＯ部
１４０ａ，１４０ｂ  フレーム処理部
１５０    空きエントリ検索指示部
１６０    書き込み指示部
１７０    ネットワークサーチエンジン
１８０    LookAsideエンジン
【発明を実施するための最良の形態】
【００１７】
以下に、本発明にかかる中継装置およびデータ制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１８】
まず、本発明の概要および特徴を従来の技術と比較して説明する。図１は、従来の技術を説明するための図であり、図２は、本発明の概要および特徴を説明するための図である。まず、従来の技術から説明する。【００１９】
図１に示すように、従来では、ＣＡＭ（Content  Addressable  Memory）１０ａとコンテンツメモリ１０ｂとをSRAMアドレスGenerator２０によって対応付けた論理テーブル１０をチップ化し、かかるチップをルータ等の中継装置に搭載してフレーム伝送に利用していた。【００２０】
このうち、ＣＡＭ１０ａは、データワードを指定された場合に、指定されたデータワードに関連するデータのメモリアドレス（連想メモリアドレス）を検索するメモリ（連想メモリ）であり、コンテンツメモリ１０ｂは、連想メモリアドレスに対応するデータを記憶するメモリである。【００２１】
また、SRAMアドレスGenerator２０は、ＣＡＭ１０ａの連想メモリアドレスをコンテンツメモリ１０ｂのコンテンツメモリアドレスに変換する処理部である。連想メモリアドレスは、ＣＡＭ１０ａ内で利用されるメモリアドレスであり、コンテンツメモリアドレスは、コンテンツメモリ１０ｂ内で利用されるメモリアドレスである。連想メモリアドレスとコンテンツメモリアドレスとの対応関係は予め管理者等によって設定されているものとする。【００２２】
図１のＣＡＭ１０ａは、Validビット、キー１、キー２からなる検索キーと連想メモリアドレスとを備え、コンテンツメモリ１０ｂは、コンテンツメモリアドレスとこのコンテンツメモリに対応する検索結果（検索結果Ａ、検索結果Ｂ）とを備えている。【００２３】
このうち、Validビットは、該当エントリが有効であるか否かを示す情報である。Validビットが「１」の場合には、該当エントリが有効である旨を示し、Validビットが「０」である場合には、該当エントリが無効である旨を示す。空きエントリを検索する場合には、Validビットが「０」となるエントリが検索される。また、キー１、キー２は、データワードに関連するキーワードを格納している。【００２４】
そして、ＣＡＭ１０ａがデータワードを指定された場合には、指定されたデータワードとキー１、キー２とを比較し、データワードに関連するキーワードを検索し、検索したキーワードから連想メモリアドレスを特定する。例えば、指定されたデータワードに関連するキーワードがキー１の「６４７３」に関連している場合（データワードに「６４７３」が含まれている場合）には、連想メモリアドレス「ＡＡＡＡ」を特定する。【００２５】
SRAMアドレスGenerator２０は、予め設定されている連想メモリアドレスとコンテンツメモリアドレスとの対応関係から、連想メモリアドレス「ＡＡＡＡ」をコンテンツメモリアドレス「０００」に変換し、コンテンツメモリアドレスは、コンテンツメモリアドレス「０００」に対応する検索結果Ａ「５６６」、検索結果Ｂ「２２４」を出力する。【００２６】
このように、従来では、指定したデータワードに対応する連想メモリアドレスを出力することなく、内部的に連想メモリアドレスをコンテンツメモリアドレスに変換し、コンテンツメモリアドレスに対応するデータ（検索結果）を出力しているので、データワードに関連するデータの連想メモリアドレスを得ることができず、ＣＡＭ１０ａを効率よく利用することができなかった。【００２７】
一方、図２に示すように、本発明にかかる論理テーブル５０は、上述した従来技術の問題点を解消すべく、コンテンツメモリ５０ａが、自身のコンテンツメモリアドレスと連想メモリアドレスとを対応付けて記憶している。すなわち、SRAMアドレスGenerator２０によって内部的に連想メモリアドレスをコンテンツメモリアドレスに変換した場合であっても、コンテンツメモリアドレスに対応するデータ（検索結果）を出力すると共に、コンテンツメモリアドレスに対応付けておいた連想メモリアドレスを出力する。【００２８】
例えば、SRAMアドレスGenerator２０からコンテンツメモリアドレス「０００」が出力された場合には、コンテンツメモリアドレス「０００」に対応する検索結果Ａ「５６６」、検索結果Ｂ「２２４」を出力すると共に、コンテンツメモリアドレス「０００」に対応する連想メモリアドレス「ＡＡＡＡ」を出力する。【００２９】
このように、本発明では、内部的に連想メモリアドレスをコンテンツメモリアドレスに変換する場合であっても、コンテンツメモリアドレスに対応する検索結果とコンテンツメモリアドレスに対応する連想メモリアドレスを得ることができるので、データワードに関連するデータの記録された場所を把握でき、ＣＡＭ１０ａを効率よく利用することができる。【００３０】
次に、本実施例にかかる中継装置の構成について説明する。図３は、本実施例にかかる中継装置の構成を示す機能ブロック図である。本実施例にかかる中継装置１００は、フレーム６０を取得した場合に、取得したフレームを所定の宛先に転送する装置であり、特に、本発明に密接に関連するものとしては、図３に示すように、論理テーブル１１０とＮＰＵ（Network  Processing  Unit）１２０とを備える。その他、中継装置の基本的な構成要素は、従来の中継装置（ルータ等）と同様であるため、図３では説明を省略する。【００３１】
論理テーブル１１０は、ＣＡＭ１１０ａと、コンテンツメモリ１１０ｂと、書込み処理専用メモリ１１０ｃとを備える。ＣＡＭ１１０ａは、図１において説明したＣＡＭ１０ａに対応し、コンテンツメモリ１１０ｂは、図２において説明したコンテンツメモリ５０ａに対応する。なお、書込み処理専用メモリ１１０ｃは、コンテンツメモリ１１０ｂとは別に、連想メモリアドレスに対応するデータを記憶するメモリである。【００３２】
ここで、図３に示した論理テーブル１１０の詳細について説明する。図４は、論理テーブル１１０の詳細を説明するための図である。図４に示すように、この論理テーブル１１０は、ＣＡＭ１１０ａと、コンテンツメモリ１１０ｂと、書き込み専用メモリ１１０ｃと、SRAMアドレスGenerator２０とを備える。【００３３】
ＣＡＭ１１０ａは、図１に示したＣＡＭ１０ａと同様にして、Validビット、キー１、キー２からなる検索キーと連想メモリアドレスとを備えている。また、コンテンツメモリ１１０ｂは、図２に示したコンテンツメモリ５０ａと同様にして、コンテンツメモリアドレスと、検索結果Ａ、検索結果Ｂ、コンテンツメモリアドレスに対応する連想メモリアドレスからなる検索結果とを備えている。【００３４】
また、書き込み専用メモリ１１０ｃは、コンテンツメモリ１１０ｂとは別に連想メモリアドレスに対応させてデータを記憶するメモリであり、書き込み専用メモリアドレスと、データＡ、データＢからなる書き換えデータとを備える。また、書き込み専用メモリアドレスおよび連想メモリアドレスはそれぞれ対応付けられている。【００３５】
例えば、書き込み専用メモリ１１０ｃは、キー１「６４７３」、キー２「０００１」に関連するデータ（データＡ「５６６」、データＢ「２２４」）を、キー１「６４７３」、キー２「０００１」に対応するＣＡＭ１１０ａの連想メモリアドレスと同一の書き込み専用メモリアドレス「ＡＡＡＡ」となるエントリに記憶している。【００３６】
このように、コンテンツメモリ１１０ｂとは別に、書き込みメモリ１１０ｃを論理テーブルに含めることによって、記憶容量を容易に増加させることができる。【００３７】
図３の説明に戻ると、ＮＰＵ１２０は、ＦＩＦＯ（First  In  First  Out）部１３０ａ〜１３０ｃと、フレーム処理部１４０ａ，１４０ｂと、空きエントリ検索指示部１５０と、書き込み支持部１６０と、ネットワークサーチエンジン１７０と、LookAsideエンジン１８０とを備える。フレーム６０は、ＮＰＵ１２０に入力された後、各処理部（フレーム処理部１４０ａ，１４０ｂ、空きエントリ検索指示部１５０、書き込み指示部１６０）を通過し、各処理部は必要に応じて論理テーブル１１０に対してアクセスを行う。【００３８】
ＦＩＦＯ部１３０ａは、ネットワークサーチエンジン１７０から各種の処理命令を受け付け、受け付けた順番によって処理命令をＣＡＭ１１０ａに出力する処理部である。ＦＩＦＯ１３０ｂは、コンテンツメモリ１１０ｂからの出力結果を受け付け、受け付けた順番によって出力結果をネットワークサーチエンジンに出力する処理部である。また、ＦＩＦＯ部１３０ｃは、LookAsideエンジン１８０から処理命令を受け付け、受け付けた順番によって処理命令を書き込み専用メモリ１１０ｃに出力する処理部である。【００３９】
フレーム処理部１４０ａは、フレーム６０を取得し、制御部（図示略）から空きエントリ検索命令を受け付けた場合には、空きエントリ検索命令を空きエントリ検索支持部１５０に出力すると共に、フレーム６０を空きエントリ検索指示部１５０に出力する。ここで、空きエントリ検索命令は、ＣＡＭ１１０ａの空きエントリを検索するための命令である。【００４０】
フレーム処理部１４０ｂは、フレーム６０を取得し、制御部（図示略）から書き込み処理命令を取得した場合には、書き込み処理命令を書き込み指示部１６０に出力すると共に、フレーム６０を書き込み指示部１６０に出力する。【００４１】
空きエントリ検索指示部１５０は、空きエントリ検索命令を取得した場合に、ネットワークサーチエンジン１７０を起動し、空きエントリ検索命令をネットワークサーチエンジン１７０に出力する。また、空きエントリ検索指示部１５０は、フレーム処理部１４０ａから取得したフレーム６０をフレーム処理部１４０ｂに出力する。【００４２】
書き込み指示部１６０は、書き込み処理命令を取得した場合に、LookAsideエンジン１８０を起動し、書き込み処理命令をLookAsideエンジン１８０に出力する。また、書き込み指示部１６０は、フレーム処理部１４０ｂから取得したフレーム６０をその他の処理部（図示略）に出力する。フレーム６０は、その他の処理を通過した後に、中継装置１００に接続された他の中継装置に出力される。【００４３】
ネットワークサーチエンジン１７０は、空きエントリ検索指示部１５０から空きエントリ検索命令を取得した場合に、ＦＩＦＯ１３０ａを経由して、論理テーブル１１０内のＣＡＭ１１０ａに対して空きエントリ検索にかかるLookup処理を要求する処理部である。【００４４】
ここで、図４を用いて、ＣＡＭ１１０ａが行う空きエントリ検索のLookup処理を説明する。Validビットが「０」となるエントリが空きエントリとなるので、ＣＡＭ１１０ａは、検索キー内のValidビットが「０」となるエントリを検索する。図４に示す例では、３段目のエントリが空きエントリに対応する。【００４５】
そして、ＣＡＭ１１０ａは、空きエントリの連想メモリアドレスをSRAMアドレスGenerator２０に出力し、SRAMアドレスGenerator２０は連想メモリアドレスをコンテンツメモリアドレスに変換する。そして、コンテンツメモリ１１０ｂは、自身が持つコンテンツメモリアドレスと連想メモリアドレスとの対応関係からコンテンツメモリアドレスに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスをＦＩＦＯ部１３０ｂを経由してネットワークサーチエンジン１７０に出力する。【００４６】
ネットワークサーチエンジン１７０は、空きエントリ検索命令の応答となる連想メモリアドレスを取得した場合に、取得した連想メモリアドレスを空きエントリ検索指示部１５０に出力する。【００４７】
LookAsideエンジン１８０は、書き込み指示部１６０から書き込み命令を取得した場合に、ＦＩＦＯ１３０ｃを経由して、データワードを指定し、論理テーブル１１０内の書き込み処理専用メモリ１１０ｃに該当データ（例えば、フレーム６０に含まれるデータ）の記録要求を行う処理部である。LookAsideエンジン１８０が指定するデータワードは、記録対象となるデータの一部でもよいし、予め設定しておいたデータワードを利用することができる。【００４８】
ここで、図４を用いて、LookAsideエンジン１８０の命令を受けて、ＣＡＭ１１０ａが行う書き込み処理について説明する。ＣＡＭ１１０ａは、指定されたデータワードと検索キーとを比較して、連想メモリアドレスを出力する。例えば、データワードに「８１８１」が含まれている場合には、かかる検索キーに対応する連想メモリアドレス「ＡＢＤＥ」を出力する。【００４９】
SRAMアドレスGenerator２０は、連想メモリアドレス「ＡＢＤＥ」をコンテンツメモリアドレス「０１１」に変換し、コンテンツメモリ１１０ｂは、自身が持つテーブルを利用してコンテンツメモリアドレス「００１」を連想メモリアドレス「ＡＢＤＥ」に再変換して、書き込み専用メモリ１１０ｃに連想メモリアドレス「ＡＢＤＥ」を出力する。【００５０】
書き込み専用メモリ１１０ｃは、コンテンツメモリ１１０ｂから出力された連想メモリアドレス「ＡＢＤＥ」に対応するエントリに、LookAsideエンジン１８０から出力される書き込み対象となるデータを記憶する。【００５１】
次に、本実施例にかかる中継装置１００の処理手順について説明する。まず、本実施例にかかる中継装置１００が空きエントリ検索処理を行う場合の処理について説明する。図５は、本実施例にかかる中継装置１００が空きエントリ検索処理を行う場合の処理手順を示すフローチャートである。同図に示すように、空きエントリ検索指示部１５０が、空きエントリ検索命令を取得し（ステップＳ１０１）、ネットワークサーチエンジン１７０を起動する（ステップＳ１０２）。【００５２】
そして、ＣＡＭ１１０ａは、Validビットが「０」となるＣＡＭアドレスを検索し（ステップＳ１０３）、連想メモリアドレスをコンテンツメモリアドレスに変換し（ステップＳ１０４）、コンテンツメモリアドレスのエントリに付加された連想メモリアドレスを取得し（ステップＳ１０５）、連想メモリアドレスをネットワークサーチエンジン１７０に出力する（ステップＳ１０６）。【００５３】
このように、本実施例にかかる中継装置１００は、コンテンツメモリ１１０ｂに対応付けられた空きエントリの連想メモリアドレスを出力するので、かかる連想メモリアドレスを利用してＣＡＭ１１０ａを有効に利用することができる。【００５４】
次に、本実施例にかかる中継装置１００が書き込み処理専用メモリにデータを記録する処理について説明する。図６は、本実施例にかかる中継装置１００が書き込み処理専用メモリにデータを記録する処理手順を示すフローチャートである。【００５５】
同図に示すように、書き込み指示部１６０が書き込み命令を取得し（ステップＳ２０１）、LookAsideエンジン１８０を起動し（ステップＳ２０２）、ＣＡＭ１１０ａは、検索キーとデータワードとを比較して連想メモリアドレスを出力する（ステップＳ２０３）。【００５６】
そして、連想メモリアドレスをコンテンツメモリアドレスに変換し（ステップＳ２０４）、コンテンツメモリアドレスのエントリに付加された連想メモリアドレスを取得し（ステップＳ２０５）、ＮＰＵ１２０は、書き込み専用メモリ１１０の連想メモリアドレスに対応するエントリにデータを格納する（ステップＳ２０６）。【００５７】
このように、本実施例にかかる中継装置１００は、書き込み処理専用メモリ１１０ｃを用いることによって、論理テーブル１１０のデータ容量を容易に増加させることができる。【００５８】
上述してきたように、本実施例にかかる中継装置１００は、データワードを指定された場合に、データワードに対応する連想メモリアドレスを検索し、内部的に連想メモリアドレスをコンテンツメモリアドレスに変換する場合であっても、コンテンツメモリアドレスに対応する検索結果に対応付けて連想メモリアドレスを記憶し、検索結果とあわせて連想メモリアドレスを出力するので、データワードに関連するデータの連想メモリアドレスを得ることができ、ＣＡＭ１０ａを効率よく利用することができる。【００５９】
ところで、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部あるいは一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【００６０】
また、図３に示した中継装置１００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部がＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【産業上の利用可能性】
【００６１】
以上のように、本発明にかかるＣＡＭを利用した中継装置およびデータ制御方法は、ＣＡＭおよびコンテンツメモリを含んだチップを搭載した中継装置等に有用であり、特に、チップの構造を大幅に変更することなく連想メモリアドレスを得る必要がある場合に適している。
【図１】
2009004719.tif 000003
【図２】
2009004719.tif 000004
【図３】
2009004719.tif 000005
【図４】
2009004719.tif 000006
【図５】
2009004719.tif 000007
【図６】
2009004719.tif 000008
【手続補正書】
【提出日】平成21年11月11日(2009.11.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データワードに関連するデータのアドレスを検索する連想メモリと当該連想メモリによって検索されたアドレスに対応するデータを記憶するコンテンツメモリとを含み、データワードが指定された場合に、当該データワードに関連するデータを前記コンテンツメモリから検索して出力するチップを備えた中継装置であって、
前記チップは、前記コンテンツメモリのアドレスを前記連想メモリ上の連想メモリアドレスに変換する変換テーブルを記憶し、
データワードが指定され、前記連想メモリによってデータワードに対応する連想メモリアドレスが検索された場合に、当該連想メモリアドレスを前記コンテンツメモリのアドレスに変換する変換手段と、
前記コンテンツメモリのアドレスと前記変換テーブルとを基にして前記データワードに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスを出力する出力制御手段と、
を備えたことを特徴とする中継装置。
【請求項２】
前記コンテンツメモリとは別に前記連想メモリによって検索された連想メモリアドレスに対応するエントリにデータを記憶する書き込みメモリと、前記書き込みメモリにデータを書き込む書込手段とを更に備えたことを特徴とする請求項１に記載の中継装置。
【請求項３】
前記変換手段は、前記連想メモリがデータワードを取得して連想メモリアドレスを検索し、連想メモリアドレスに対応するエントリにデータを書き込む場合に、前記連想メモリによって検索された連想メモリアドレスを前記コンテンツメモリのアドレスに変換し、前記書込手段は、前記変換テーブルと前記コンテンツメモリのアドレスとを基にして、当該アドレスを連想メモリアドレスに再変換し、当該連想メモリアドレスに対応する前記書き込みメモリのエントリに書き込み対象となるデータを書き込むことを特徴とする請求項２に記載の中継装置。
【請求項４】
データワードに関連するデータのアドレスを検索する連想メモリと当該連想メモリによって検索されたアドレスに対応するデータを記憶するコンテンツメモリとを含み、データワードが指定された場合に、当該データワードに関連するデータを前記コンテンツメモリから検索して出力するチップを備えた中継装置のデータ制御方法であって、
前記チップは、前記コンテンツメモリのアドレスを前記連想メモリ上の連想メモリアドレスに変換する変換テーブルを記憶し、
データワードが指定され、前記連想メモリによってデータワードに対応する連想メモリアドレスが検索された場合に、当該連想メモリアドレスを前記コンテンツメモリのアドレスに変換する変換工程と、
前記コンテンツメモリのアドレスと前記変換テーブルとを基にして前記データワードに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスを出力する出力制御工程と、
を含んだことを特徴とするデータ制御方法。
【請求項５】
前記コンテンツメモリとは別に前記連想メモリによって検索された連想メモリアドレスに対応するエントリにデータを記憶する書き込みメモリにデータを書き込む書込工程を更に含んだことを特徴とする請求項４に記載のデータ制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データワードに関連するデータのアドレスを検索する連想メモリと当該連想メモリによって検索されたアドレスに対応するデータを記憶するコンテンツメモリとを含み、データワードが指定された場合に、当該データワードに関連するデータを前記コンテンツメモリから検索して出力するチップを備えた中継装置等に関するものである。
【背景技術】
【０００２】
ネットワーク上で、フレームの中継を行う中継装置（ルータ等）は、処理効率を向上させるためにＣＡＭ（Content  Addressable  Memory）を搭載している（例えば、特許文献１参照）。このＣＡＭは、あるデータワードを指定されると、かかるデータワードをＣＡＭ自身が検索し、データワードが格納されている場所のアドレスを出力するメモリである。
【０００３】
なお、近年では、低コスト化、処理効率を向上させるなどの理由から、ＣＡＭとコンテンツメモリ（ＣＡＭによって検索されるアドレスに対応するデータを格納するメモリ）とを合わせてチップ化し、中継装置に搭載している（例えば、ＡＳＳＰ（Application  Specific  Standard  Product））。このチップは、データワードを指定された場合に、データワードが格納されている場所のアドレスを外部に出力するという処理を省略し、かかるアドレスに対応するデータをコンテンツメモリから検索し、検索したデータを直接出力することで、中継装置の処理効率を更に向上させている。
【０００４】
【特許文献１】特開平９−１６２９２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したようにＣＡＭとコンテンツメモリとをチップ化して中継装置に搭載した場合には、指定したデータワードに関連するデータが格納されているアドレスを得ることができず、ＣＡＭを効率よく利用することができないという問題があった。
【０００６】
本発明は、上記に鑑みてなされたものであって、ＣＡＭとコンテンツメモリとをチップ化している場合であっても、指定したデータワードに関連するデータが格納されているアドレスを得ることができる中継装置およびデータ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、データワードに関連するデータのアドレスを検索する連想メモリと当該連想メモリによって検索されたアドレスに対応するデータを記憶するコンテンツメモリとを含み、データワードが指定された場合に、当該データワードに関連するデータを前記コンテンツメモリから検索して出力するチップを備えた中継装置であって、前記チップは、前記コンテンツメモリのアドレスを前記連想メモリ上の連想メモリアドレスに変換する変換テーブルを記憶し、データワードが指定され、前記連想メモリによってデータワードに対応する連想メモリアドレスが検索された場合に、当該連想メモリアドレスを前記コンテンツメモリのアドレスに変換する変換手段と、前記コンテンツメモリのアドレスと前記変換テーブルとを基にして前記データワードに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスを出力する出力制御手段と、を備えたことを特徴とする。
【０００８】
また、本発明は、上記発明において、前記コンテンツメモリとは別に前記連想メモリによって検索された連想メモリアドレスに対応するエントリにデータを記憶する書き込みメモリと、前記書き込みメモリにデータを書き込む書込手段とを更に備えたことを特徴とする。
【０００９】
また、本発明は、上記発明において、前記変換手段は、前記連想メモリがデータワードを取得して連想メモリアドレスを検索し、連想メモリアドレスに対応するエントリにデータを書き込む場合に、前記連想メモリによって検索された連想メモリアドレスを前記コンテンツメモリのアドレスに変換し、前記書込手段は、前記変換テーブルと前記コンテンツメモリのアドレスとを基にして、当該アドレスを連想メモリアドレスに再変換し、当該連想メモリアドレスに対応する前記書き込みメモリのエントリに書き込み対象となるデータを書き込むことを特徴とする。
【００１０】
また、本発明は、データワードに関連するデータのアドレスを検索する連想メモリと当該連想メモリによって検索されたアドレスに対応するデータを記憶するコンテンツメモリとを含み、データワードが指定された場合に、当該データワードに関連するデータを前記コンテンツメモリから検索して出力するチップを備えた中継装置のデータ制御方法であって、前記チップは、前記コンテンツメモリのアドレスを前記連想メモリ上の連想メモリアドレスに変換する変換テーブルを記憶し、データワードが指定され、前記連想メモリによってデータワードに対応する連想メモリアドレスが検索された場合に、当該連想メモリアドレスを前記コンテンツメモリのアドレスに変換する変換工程と、前記コンテンツメモリのアドレスと前記変換テーブルとを基にして前記データワードに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスを出力する出力制御工程と、を含んだことを特徴とする。
【００１１】
また、本発明は、上記発明において、前記コンテンツメモリとは別に前記連想メモリによって検索された連想メモリアドレスに対応するエントリにデータを記憶する書き込みメモリにデータを書き込む書込工程を更に含んだことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、連想メモリとコンテンツメモリとを含んだチップは、コンテンツメモリのアドレスを連想メモリ上の連想メモリアドレスに変換する変換テーブルを記憶し、データワードが指定され、連想メモリによってデータワードに対応する連想メモリアドレスが検索された場合に、連想メモリアドレスをコンテンツメモリのアドレスに変換し、コンテンツメモリのアドレスと変換テーブルとを基にしてデータワードに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスを出力するので、データワードに関連するデータの連想メモリアドレスを得ることができ、連想メモリを効率よく利用することができる。
【００１３】
また、本発明によれば、コンテンツメモリとは別に連想メモリによって検索された連想メモリアドレスに対応するエントリにデータを記憶する書き込みメモリを有し、書き込みメモリにデータを書き込むので、データ容量を容易に増加させることができる。
【００１４】
また、本発明によれば、連想メモリがデータワードを取得して連想メモリアドレスを検索し、連想メモリアドレスに対応するエントリにデータを書き込む場合に、連想メモリによって検索された連想メモリアドレスをコンテンツメモリのアドレスに変換し、書込手段は、変換テーブルとコンテンツメモリのアドレスとを基にして、アドレスを連想メモリアドレスに再変換し、連想メモリアドレスに対応する書き込みメモリのエントリに書き込み対象となるデータを書き込むので、書き込みメモリに複雑な処理を実行させることなく効率よくデータを書き込むことができる。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明にかかる中継装置およびデータ制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１６】
まず、本発明の概要および特徴を従来の技術と比較して説明する。図１は、従来の技術を説明するための図であり、図２は、本発明の概要および特徴を説明するための図である。まず、従来の技術から説明する。
【００１７】
図１に示すように、従来では、ＣＡＭ（Content  Addressable  Memory）１０ａとコンテンツメモリ１０ｂとをSRAMアドレスGenerator２０によって対応付けた論理テーブル１０をチップ化し、かかるチップをルータ等の中継装置に搭載してフレーム伝送に利用していた。
【００１８】
このうち、ＣＡＭ１０ａは、データワードを指定された場合に、指定されたデータワードに関連するデータのメモリアドレス（連想メモリアドレス）を検索するメモリ（連想メモリ）であり、コンテンツメモリ１０ｂは、連想メモリアドレスに対応するデータを記憶するメモリである。
【００１９】
また、SRAMアドレスGenerator２０は、ＣＡＭ１０ａの連想メモリアドレスをコンテンツメモリ１０ｂのコンテンツメモリアドレスに変換する処理部である。連想メモリアドレスは、ＣＡＭ１０ａ内で利用されるメモリアドレスであり、コンテンツメモリアドレスは、コンテンツメモリ１０ｂ内で利用されるメモリアドレスである。連想メモリアドレスとコンテンツメモリアドレスとの対応関係は予め管理者等によって設定されているものとする。
【００２０】
図１のＣＡＭ１０ａは、Validビット、キー１、キー２からなる検索キーと連想メモリアドレスとを備え、コンテンツメモリ１０ｂは、コンテンツメモリアドレスとこのコンテンツメモリに対応する検索結果（検索結果Ａ、検索結果Ｂ）とを備えている。
【００２１】
このうち、Validビットは、該当エントリが有効であるか否かを示す情報である。Validビットが「１」の場合には、該当エントリが有効である旨を示し、Validビットが「０」である場合には、該当エントリが無効である旨を示す。空きエントリを検索する場合には、Validビットが「０」となるエントリが検索される。また、キー１、キー２は、データワードに関連するキーワードを格納している。
【００２２】
そして、ＣＡＭ１０ａがデータワードを指定された場合には、指定されたデータワードとキー１、キー２とを比較し、データワードに関連するキーワードを検索し、検索したキーワードから連想メモリアドレスを特定する。例えば、指定されたデータワードに関連するキーワードがキー１の「６４７３」に関連している場合（データワードに「６４７３」が含まれている場合）には、連想メモリアドレス「ＡＡＡＡ」を特定する。
【００２３】
SRAMアドレスGenerator２０は、予め設定されている連想メモリアドレスとコンテンツメモリアドレスとの対応関係から、連想メモリアドレス「ＡＡＡＡ」をコンテンツメモリアドレス「０００」に変換し、コンテンツメモリアドレスは、コンテンツメモリアドレス「０００」に対応する検索結果Ａ「５６６」、検索結果Ｂ「２２４」を出力する。
【００２４】
このように、従来では、指定したデータワードに対応する連想メモリアドレスを出力することなく、内部的に連想メモリアドレスをコンテンツメモリアドレスに変換し、コンテンツメモリアドレスに対応するデータ（検索結果）を出力しているので、データワードに関連するデータの連想メモリアドレスを得ることができず、ＣＡＭ１０ａを効率よく利用することができなかった。
【００２５】
一方、図２に示すように、本発明にかかる論理テーブル５０は、上述した従来技術の問題点を解消すべく、コンテンツメモリ５０ａが、自身のコンテンツメモリアドレスと連想メモリアドレスとを対応付けて記憶している。すなわち、SRAMアドレスGenerator２０によって内部的に連想メモリアドレスをコンテンツメモリアドレスに変換した場合であっても、コンテンツメモリアドレスに対応するデータ（検索結果）を出力すると共に、コンテンツメモリアドレスに対応付けておいた連想メモリアドレスを出力する。
【００２６】
例えば、SRAMアドレスGenerator２０からコンテンツメモリアドレス「０００」が出力された場合には、コンテンツメモリアドレス「０００」に対応する検索結果Ａ「５６６」、検索結果Ｂ「２２４」を出力すると共に、コンテンツメモリアドレス「０００」に対応する連想メモリアドレス「ＡＡＡＡ」を出力する。
【００２７】
このように、本発明では、内部的に連想メモリアドレスをコンテンツメモリアドレスに変換する場合であっても、コンテンツメモリアドレスに対応する検索結果とコンテンツメモリアドレスに対応する連想メモリアドレスを得ることができるので、データワードに関連するデータの記録された場所を把握でき、ＣＡＭ１０ａを効率よく利用することができる。
【００２８】
次に、本実施例にかかる中継装置の構成について説明する。図３は、本実施例にかかる中継装置の構成を示す機能ブロック図である。本実施例にかかる中継装置１００は、フレーム６０を取得した場合に、取得したフレームを所定の宛先に転送する装置であり、特に、本発明に密接に関連するものとしては、図３に示すように、論理テーブル１１０とＮＰＵ（Network  Processing  Unit）１２０とを備える。その他、中継装置の基本的な構成要素は、従来の中継装置（ルータ等）と同様であるため、図３では説明を省略する。
【００２９】
論理テーブル１１０は、ＣＡＭ１１０ａと、コンテンツメモリ１１０ｂと、書込み処理専用メモリ１１０ｃとを備える。ＣＡＭ１１０ａは、図１において説明したＣＡＭ１０ａに対応し、コンテンツメモリ１１０ｂは、図２において説明したコンテンツメモリ５０ａに対応する。なお、書込み処理専用メモリ１１０ｃは、コンテンツメモリ１１０ｂとは別に、連想メモリアドレスに対応するデータを記憶するメモリである。
【００３０】
ここで、図３に示した論理テーブル１１０の詳細について説明する。図４は、論理テーブル１１０の詳細を説明するための図である。図４に示すように、この論理テーブル１１０は、ＣＡＭ１１０ａと、コンテンツメモリ１１０ｂと、書き込み専用メモリ１１０ｃと、SRAMアドレスGenerator２０とを備える。
【００３１】
ＣＡＭ１１０ａは、図１に示したＣＡＭ１０ａと同様にして、Validビット、キー１、キー２からなる検索キーと連想メモリアドレスとを備えている。また、コンテンツメモリ１１０ｂは、図２に示したコンテンツメモリ５０ａと同様にして、コンテンツメモリアドレスと、検索結果Ａ、検索結果Ｂ、コンテンツメモリアドレスに対応する連想メモリアドレスからなる検索結果とを備えている。
【００３２】
また、書き込み専用メモリ１１０ｃは、コンテンツメモリ１１０ｂとは別に連想メモリアドレスに対応させてデータを記憶するメモリであり、書き込み専用メモリアドレスと、データＡ、データＢからなる書き換えデータとを備える。また、書き込み専用メモリアドレスおよび連想メモリアドレスはそれぞれ対応付けられている。
【００３３】
例えば、書き込み専用メモリ１１０ｃは、キー１「６４７３」、キー２「０００１」に関連するデータ（データＡ「５６６」、データＢ「２２４」）を、キー１「６４７３」、キー２「０００１」に対応するＣＡＭ１１０ａの連想メモリアドレスと同一の書き込み専用メモリアドレス「ＡＡＡＡ」となるエントリに記憶している。
【００３４】
このように、コンテンツメモリ１１０ｂとは別に、書き込みメモリ１１０ｃを論理テーブルに含めることによって、記憶容量を容易に増加させることができる。
【００３５】
図３の説明に戻ると、ＮＰＵ１２０は、ＦＩＦＯ（First  In  First  Out）部１３０ａ〜１３０ｃと、フレーム処理部１４０ａ，１４０ｂと、空きエントリ検索指示部１５０と、書き込み支持部１６０と、ネットワークサーチエンジン１７０と、LookAsideエンジン１８０とを備える。フレーム６０は、ＮＰＵ１２０に入力された後、各処理部（フレーム処理部１４０ａ，１４０ｂ、空きエントリ検索指示部１５０、書き込み指示部１６０）を通過し、各処理部は必要に応じて論理テーブル１１０に対してアクセスを行う。
【００３６】
ＦＩＦＯ部１３０ａは、ネットワークサーチエンジン１７０から各種の処理命令を受け付け、受け付けた順番によって処理命令をＣＡＭ１１０ａに出力する処理部である。ＦＩＦＯ１３０ｂは、コンテンツメモリ１１０ｂからの出力結果を受け付け、受け付けた順番によって出力結果をネットワークサーチエンジンに出力する処理部である。また、ＦＩＦＯ部１３０ｃは、LookAsideエンジン１８０から処理命令を受け付け、受け付けた順番によって処理命令を書き込み専用メモリ１１０ｃに出力する処理部である。
【００３７】
フレーム処理部１４０ａは、フレーム６０を取得し、制御部（図示略）から空きエントリ検索命令を受け付けた場合には、空きエントリ検索命令を空きエントリ検索支持部１５０に出力すると共に、フレーム６０を空きエントリ検索指示部１５０に出力する。ここで、空きエントリ検索命令は、ＣＡＭ１１０ａの空きエントリを検索するための命令である。
【００３８】
フレーム処理部１４０ｂは、フレーム６０を取得し、制御部（図示略）から書き込み処理命令を取得した場合には、書き込み処理命令を書き込み指示部１６０に出力すると共に、フレーム６０を書き込み指示部１６０に出力する。
【００３９】
空きエントリ検索指示部１５０は、空きエントリ検索命令を取得した場合に、ネットワークサーチエンジン１７０を起動し、空きエントリ検索命令をネットワークサーチエンジン１７０に出力する。また、空きエントリ検索指示部１５０は、フレーム処理部１４０ａから取得したフレーム６０をフレーム処理部１４０ｂに出力する。
【００４０】
書き込み指示部１６０は、書き込み処理命令を取得した場合に、LookAsideエンジン１８０を起動し、書き込み処理命令をLookAsideエンジン１８０に出力する。また、書き込み指示部１６０は、フレーム処理部１４０ｂから取得したフレーム６０をその他の処理部（図示略）に出力する。フレーム６０は、その他の処理を通過した後に、中継装置１００に接続された他の中継装置に出力される。
【００４１】
ネットワークサーチエンジン１７０は、空きエントリ検索指示部１５０から空きエントリ検索命令を取得した場合に、ＦＩＦＯ１３０ａを経由して、論理テーブル１１０内のＣＡＭ１１０ａに対して空きエントリ検索にかかるLookup処理を要求する処理部である。
【００４２】
ここで、図４を用いて、ＣＡＭ１１０ａが行う空きエントリ検索のLookup処理を説明する。Validビットが「０」となるエントリが空きエントリとなるので、ＣＡＭ１１０ａは、検索キー内のValidビットが「０」となるエントリを検索する。図４に示す例では、３段目のエントリが空きエントリに対応する。
【００４３】
そして、ＣＡＭ１１０ａは、空きエントリの連想メモリアドレスをSRAMアドレスGenerator２０に出力し、SRAMアドレスGenerator２０は連想メモリアドレスをコンテンツメモリアドレスに変換する。そして、コンテンツメモリ１１０ｂは、自身が持つコンテンツメモリアドレスと連想メモリアドレスとの対応関係からコンテンツメモリアドレスに対応する連想メモリアドレスを検索し、検索した連想メモリアドレスをＦＩＦＯ部１３０ｂを経由してネットワークサーチエンジン１７０に出力する。
【００４４】
ネットワークサーチエンジン１７０は、空きエントリ検索命令の応答となる連想メモリアドレスを取得した場合に、取得した連想メモリアドレスを空きエントリ検索指示部１５０に出力する。
【００４５】
LookAsideエンジン１８０は、書き込み指示部１６０から書き込み命令を取得した場合に、ＦＩＦＯ１３０ｃを経由して、データワードを指定し、論理テーブル１１０内の書き込み処理専用メモリ１１０ｃに該当データ（例えば、フレーム６０に含まれるデータ）の記録要求を行う処理部である。LookAsideエンジン１８０が指定するデータワードは、記録対象となるデータの一部でもよいし、予め設定しておいたデータワードを利用することができる。
【００４６】
ここで、図４を用いて、LookAsideエンジン１８０の命令を受けて、ＣＡＭ１１０ａが行う書き込み処理について説明する。ＣＡＭ１１０ａは、指定されたデータワードと検索キーとを比較して、連想メモリアドレスを出力する。例えば、データワードに「８１８１」が含まれている場合には、かかる検索キーに対応する連想メモリアドレス「ＡＢＤＥ」を出力する。
【００４７】
SRAMアドレスGenerator２０は、連想メモリアドレス「ＡＢＤＥ」をコンテンツメモリアドレス「０１１」に変換し、コンテンツメモリ１１０ｂは、自身が持つテーブルを利用してコンテンツメモリアドレス「００１」を連想メモリアドレス「ＡＢＤＥ」に再変換して、書き込み専用メモリ１１０ｃに連想メモリアドレス「ＡＢＤＥ」を出力する。
【００４８】
書き込み専用メモリ１１０ｃは、コンテンツメモリ１１０ｂから出力された連想メモリアドレス「ＡＢＤＥ」に対応するエントリに、LookAsideエンジン１８０から出力される書き込み対象となるデータを記憶する。
【００４９】
次に、本実施例にかかる中継装置１００の処理手順について説明する。まず、本実施例にかかる中継装置１００が空きエントリ検索処理を行う場合の処理について説明する。図５は、本実施例にかかる中継装置１００が空きエントリ検索処理を行う場合の処理手順を示すフローチャートである。同図に示すように、空きエントリ検索指示部１５０が、空きエントリ検索命令を取得し（ステップＳ１０１）、ネットワークサーチエンジン１７０を起動する（ステップＳ１０２）。
【００５０】
そして、ＣＡＭ１１０ａは、Validビットが「０」となるＣＡＭアドレスを検索し（ステップＳ１０３）、連想メモリアドレスをコンテンツメモリアドレスに変換し（ステップＳ１０４）、コンテンツメモリアドレスのエントリに付加された連想メモリアドレスを取得し（ステップＳ１０５）、連想メモリアドレスをネットワークサーチエンジン１７０に出力する（ステップＳ１０６）。
【００５１】
このように、本実施例にかかる中継装置１００は、コンテンツメモリ１１０ｂに対応付けられた空きエントリの連想メモリアドレスを出力するので、かかる連想メモリアドレスを利用してＣＡＭ１１０ａを有効に利用することができる。
【００５２】
次に、本実施例にかかる中継装置１００が書き込み処理専用メモリにデータを記録する処理について説明する。図６は、本実施例にかかる中継装置１００が書き込み処理専用メモリにデータを記録する処理手順を示すフローチャートである。
【００５３】
同図に示すように、書き込み指示部１６０が書き込み命令を取得し（ステップＳ２０１）、LookAsideエンジン１８０を起動し（ステップＳ２０２）、ＣＡＭ１１０ａは、検索キーとデータワードとを比較して連想メモリアドレスを出力する（ステップＳ２０３）。
【００５４】
そして、連想メモリアドレスをコンテンツメモリアドレスに変換し（ステップＳ２０４）、コンテンツメモリアドレスのエントリに付加された連想メモリアドレスを取得し（ステップＳ２０５）、ＮＰＵ１２０は、書き込み専用メモリ１１０の連想メモリアドレスに対応するエントリにデータを格納する（ステップＳ２０６）。
【００５５】
このように、本実施例にかかる中継装置１００は、書き込み処理専用メモリ１１０ｃを用いることによって、論理テーブル１１０のデータ容量を容易に増加させることができる。
【００５６】
上述してきたように、本実施例にかかる中継装置１００は、データワードを指定された場合に、データワードに対応する連想メモリアドレスを検索し、内部的に連想メモリアドレスをコンテンツメモリアドレスに変換する場合であっても、コンテンツメモリアドレスに対応する検索結果に対応付けて連想メモリアドレスを記憶し、検索結果とあわせて連想メモリアドレスを出力するので、データワードに関連するデータの連想メモリアドレスを得ることができ、ＣＡＭ１０ａを効率よく利用することができる。
【００５７】
ところで、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部あるいは一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５８】
また、図３に示した中継装置１００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部がＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【産業上の利用可能性】
【００５９】
以上のように、本発明にかかるＣＡＭを利用した中継装置およびデータ制御方法は、ＣＡＭおよびコンテンツメモリを含んだチップを搭載した中継装置等に有用であり、特に、チップの構造を大幅に変更することなく連想メモリアドレスを得る必要がある場合に適している。
【図面の簡単な説明】
【００６０】
【図１】図１は、従来の技術を説明するための図である。
【図２】図２は、本発明の概要および特徴を説明するための図である。
【図３】図３は、本実施例にかかる中継装置の構成を示す機能ブロック図である。
【図４】図４は、論理テーブルの詳細を説明するための図である。
【図５】図５は、本実施例にかかる中継装置が空きエントリ検索処理を行う場合の処理手順を示すフローチャートである。
【図６】図６は、本実施例にかかる中継装置が書き込み処理専用メモリにデータを記録する処理手順を示すフローチャートである。
【符号の説明】
【００６１】
１０，５０    論理テーブル
１０ａ，１１０ａ  ＣＡＭ
１０ｂ，５０ａ，１１０ｂ  コンテンツメモリ
２０    SRAMアドレスGenerator
６０    フレーム
１００    中継装置
１１０ｃ  書き込み処理専用メモリ
１２０    ＮＰＵ
１３０ａ，１３０ｂ，１３０ｃ  ＦＩＦＯ部
１４０ａ，１４０ｂ  フレーム処理部
１５０    空きエントリ検索指示部
１６０    書き込み指示部
１７０    ネットワークサーチエンジン
１８０    LookAsideエンジン
【国際調査報告】
2009004719.tif 000009
2009004719.tif 000010