(57)【要約】【課題】  宛先情報をリスト構造で格納した情報の変更時の宛先蓄積メモリへのアクセス回数を削減する。【解決手段】  メモリアドレスに対応する宛先情報の有効または無効を表示するフラグを備える。また、宛先情報を順次たどる過程で、フラグが無効を表示するメモリアドレスに遭遇したときには、これをさらにたどることによりフラグが有効を表示するメモリアドレスまでたどり着く。また、同一情報内容のパケットの宛先グループの終端に属するメモリアドレスに対応する次の宛先情報には実在しない宛先情報を書き込む。また、新たな宛先情報を追加する際には、フラグが無効を表示しているメモリアドレスに対応する宛先情報を当該新たな宛先情報により上書きする。【選択図】  図１
2007174046.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介した通信に使用されるパケットであり、データを１つの塊として取り扱うデータの宛先および宛元を特定可能なヘッダ部とデータそのものを搭載するペイロード部とから構成されるものを、複数の宛先向けに複製を生成し、それらのヘッダに含まれる宛先および宛元情報を各宛先毎に変更する機能を提供するパケット配信装置に実装され、
複製対象のパケットを自パケット配信装置に入力されるパケット群からヘッダ情報をもとに選出する手段と、
複製したパケットを送るべき複数の宛先の情報を蓄積する宛先情報蓄積手段と、
複製対象パケットのヘッダ情報と前記宛先情報蓄積手段内部のメモリアドレスとの関連を解決する手段と、
前記宛先情報蓄積手段から宛先情報を読み出し、複製対象パケットの複製を生成すると共に複製パケットの宛先情報を変更する手段と、
前記宛先情報蓄積手段に蓄積された宛先情報を更新する手段と
を有し、
前記宛先情報蓄積手段は、１つの宛先情報に対しての格納位置を示すメモリアドレスを基にした宛先情報の取り出しが可能な構造（片方向リスト構造）を備え、
１つのメモリアドレスに属して格納される情報が、複製パケットの宛先情報と次の宛先情報とが格納されるメモリアドレスから構成され、
前記メモリアドレスをたどることにより複製パケットの宛先情報を順次読み出すことが可能な構成を有する
通信パケット複製分配用宛先情報蓄積メモリ管理回路において、
前記メモリアドレスに属する宛先情報の有効または無効を意味するフラグを有する
ことを特徴とする通信パケット複製分配用宛先情報蓄積メモリ管理回路。
【請求項２】
前記宛先情報蓄積手段に蓄積される１つのメモリアドレスに属する宛先情報の有効または無効を意味するフラグが有効を意味する場合には、前記宛先情報蓄積手段から得た宛先情報を読み出し、対象パケットの複製を生成すると共にヘッダ部分を変更する手段は、前記フラグが無効を意味する場合には、前記フラグが有効を意味するメモリアドレスまで情報をたどる動作を行う請求項１記載の通信パケット複製分配用宛先情報蓄積メモリ管理回路。
【請求項３】
前記宛先情報蓄積手段に蓄積されるメモリアドレスをたどり宛先情報を順次読出すデータ構造において、１つのリスト構造の終端を意味するメモリアドレス内の次のメモリアドレスを意味する値を終端点を表現する特定値とする請求項１または２記載の通信パケット複製分配用宛先情報蓄積メモリ管理回路。
【請求項４】
新たな宛先情報を追加する際には、前記フラグが無効を表示しているメモリアドレスに属する宛先情報を当該新たな宛先情報により上書きする手段を備えた請求項１ないし３のいずれかに記載の通信パケット複製分配用宛先情報蓄積メモリ管理回路。
【請求項５】
ネットワークを介した通信に使用されるパケットであり、データを１つの塊として取り扱うデータの宛先および宛元を特定可能なヘッダ部とデータそのものを搭載するペイロード部とから構成されるものを、複数の宛先向けに複製を生成し、それらのヘッダに含まれる宛先および宛元情報を各宛先毎に変更する機能を提供するパケット配信装置が、
複製対象のパケットを自パケット配信装置に入力されるパケット群からヘッダ情報をもとに選出するステップと、
複製対象パケットのヘッダ情報と複製したパケットを送るべき複数の宛先の情報を蓄積する宛先情報蓄積手段内部のメモリアドレスとの関連を解決するステップと、
前記宛先情報蓄積手段から宛先情報を読み出し、複製対象パケットの複製を生成すると共に複製パケットの宛先情報を変更するステップと、
前記宛先情報蓄積手段に蓄積された宛先情報を更新するステップと
を実行し、
前記宛先情報蓄積手段は、１つの宛先情報に対しての格納位置を示すメモリアドレスを基にした宛先情報の取り出しが可能な構造（片方向リスト構造）を備え、
１つのメモリアドレスに属して格納される情報が、複製パケットの宛先情報と次の宛先情報とが格納されるメモリアドレスから構成され、
前記メモリアドレスをたどることにより複製パケットの宛先情報を順次読み出すことが可能な構成を有する
通信パケット複製分配用宛先情報蓄積メモリ管理方法において、
前記メモリアドレスに属する宛先情報の有効または無効を意味するフラグを用いる
ことを特徴とする通信パケット複製分配用宛先情報蓄積メモリ管理方法。
【請求項６】
前記宛先情報蓄積手段に蓄積される１つのメモリアドレスに属する宛先情報の有効または無効を意味するフラグが有効を意味する場合には、前記宛先情報蓄積手段から得た宛先情報を読み出し、対象パケットの複製を生成すると共にヘッダ部分を変更するときに、前記フラグが無効を意味する場合には、前記フラグが有効を意味するメモリアドレスまで情報をたどる動作を行う請求項５記載の通信パケット複製分配用宛先情報蓄積メモリ管理方法。
【請求項７】
前記宛先情報蓄積手段に蓄積されるメモリアドレスをたどり宛先情報を順次読出すデータ構造において、１つのリスト構造の終端を意味するメモリアドレス内の次のメモリアドレスを意味する値を終端点を表現する特定値とする請求項５または６記載の通信パケット複製分配用宛先情報蓄積メモリ管理方法。
【請求項８】
新たな宛先情報を追加する際には、前記フラグが無効を表示しているメモリアドレスに属する宛先情報を当該新たな宛先情報により上書きする請求項５ないし７のいずれかに記載の通信パケット複製分配用宛先情報蓄積メモリ管理方法。
【請求項９】
情報処理装置にインストールすることにより、その情報処理装置に、請求項１ないし４のいずれかに記載の通信パケット複製分配用宛先情報蓄積メモリ管理回路に相応する機能を実現させるプログラム。
【請求項１０】
請求項９記載のプログラムが記録された前記情報処理装置が読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット通信ネットワークを利用して１つのパケットを複数の宛先に複製して分配するデータ配信技術に関する。特に、リスト構造（例えば、非特許文献１参照）を利用した通信パケット複製分配用宛先情報蓄積メモリの管理技術に関する。
【背景技術】
【０００２】
パケット配信装置は、ネットワークを介した通信に使用され、データを１つの塊として取り扱うデータの宛先および送信元を特定可能なヘッダ部と、データそのものを搭載するペイロード部とから構成されるパケットを、複数の宛先向けに複製を生成し、それらのヘッダに含まれる宛先および送信元情報を各宛先毎に変更する機能を有する。
【０００３】
さらに、複製対象のパケットを、装置に入力されるパケット群からヘッダ情報を基に選出する機能と、複製したパケットを送るべき複数の宛先の情報を蓄積する宛先情報蓄積手段と、複製対象パケットのヘッダ情報と前記宛先情報蓄積手段内部のメモリアドレスとの関連を解決する機能と、前記宛先情報蓄積手段から宛先情報を読み出し、複製対象パケットの複製を生成すると共に複製パケットの宛先情報を変更する機能と、前記宛先情報蓄積手段に蓄積された複数の宛先情報を更新する機能とを備える。
【０００４】
また、前記宛先情報蓄積手段は、１つの宛先情報に対してのその格納位置を示すメモリアドレスを基にした宛先情報の取り出しが可能な構造（片方向リスト構造）を備え、１つの前記メモリアドレスに属して格納される情報が、複製パケットの宛先情報と次の宛先情報とが格納されるメモリアドレスから構成され、前記メモリアドレスをたどることにより複製パケットの宛先情報を順次読出可能な構成を有する（例えば、非特許文献１参照）。
【０００５】
【非特許文献１】技術評論社、「Ｃ言語によるはじめてのアルゴリズム入門」、ＩＳＢＮ４−８７４０８−５００−８、２１９頁から２３８頁
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のリスト構造では、構成要素の追加または削除において、対象となるメモリアドレスの１つ前のメモリアドレスに関連する構成要素内の次のメモリアドレスの変更を行う必要がある。すなわち、１つの情報の追加または削除に対して、対象のメモリアドレスとその前のメモリアドレスに対応する情報の２つを操作する必要がある。
【０００７】
本発明は、このような背景の下に行われたものであって、宛先情報をリスト構造で格納した情報の変更時の宛先情報蓄積メモリへのアクセス回数を削減することができる通信パケット複製分配用宛先情報蓄積メモリ管理回路および方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、ネットワークを介した通信に使用されるパケットであり、データを１つの塊として取り扱うデータの宛先および宛元を特定可能なヘッダ部とデータそのものを搭載するペイロード部とから構成されるものを、複数の宛先向けに複製を生成し、それらのヘッダに含まれる宛先および宛元情報を各宛先毎に変更する機能を提供するパケット配信装置に実装され、複製対象のパケットを自パケット配信装置に入力されるパケット群からヘッダ情報をもとに選出する手段と、複製したパケットを送るべき複数の宛先の情報を蓄積する宛先情報蓄積手段と、複製対象パケットのヘッダ情報と前記宛先情報蓄積手段内部のメモリアドレスとの関連を解決する手段と、前記宛先情報蓄積手段から宛先情報を読み出し、複製対象パケットの複製を生成すると共に複製パケットの宛先情報を変更する手段と、前記宛先情報蓄積手段に蓄積された宛先情報を更新する手段とを有し、前記宛先情報蓄積手段は、１つの宛先情報に対しての格納位置を示すメモリアドレスを基にした宛先情報の取り出しが可能な構造（片方向リスト構造）を備え、１つのメモリアドレスに属して格納される情報が、複製パケットの宛先情報と次の宛先情報とが格納されるメモリアドレスから構成され、前記メモリアドレスをたどることにより複製パケットの宛先情報を順次読み出すことが可能な構成を有する通信パケット複製分配用宛先情報蓄積メモリ管理回路である。
【０００９】
ここで、本発明の特徴とするところは、前記メモリアドレスに属する宛先情報の有効または無効を意味するフラグを有するところにある。
【００１０】
このように、本発明では、リスト構造で格納された情報に配信宛先情報が有効、もしくは、無効を意味する情報（フラグ）を設けている。よって、メモリアドレスに属する配信宛先情報が有効、もしくは、無効を意味するフラグにより、リスト構造内の１つの配信宛先情報を削除する場合に、そのフラグを無効とする操作を行うことにより目的を達成することができる。
【００１１】
また、前記宛先情報蓄積手段に蓄積される１つのメモリアドレスに属する宛先情報の有効または無効を意味するフラグが有効を意味する場合には、前記宛先情報蓄積手段から得た宛先情報を読み出し、対象パケットの複製を生成すると共にヘッダ部分を変更する手段は、前記フラグが無効を意味する場合には、前記フラグが有効を意味するメモリアドレスまで情報をたどる動作を行うことができる。
【００１２】
これにより、フラグが無効を表示するメモリアドレスを読み飛ばす形で連続したメモリアドレスの読み出しを行うことができる。
【００１３】
また、前記宛先情報蓄積手段に蓄積されるメモリアドレスをたどり宛先情報を順次読出すデータ構造において、１つのリスト構造の終端を意味するメモリアドレス内の次のメモリアドレスを意味する値を終端点を表現する特定値、例えば、“０”とすることにより、多入力ＮＡＮＤ演算器等を使用したリストの終端検出を行うことができる。
【００１４】
また、新たな宛先情報を追加する際には、前記フラグが無効を表示しているメモリアドレスに属する宛先情報を当該新たな宛先情報により上書きする手段を備えることができる。
【００１５】
これにより、無効のフラグを有するメモリアドレスが存在する場合で、新たな宛先情報を追加する場合は、無効フラグを有するメモリアドレスの情報を新たな配信宛先情報で上書きし、フラグを有効とすることのみで、追加の処理を実施することができるため、新たな宛先情報に対して新たなメモリアドレスを割り当てる必要がなく、メモリアドレスの有効利用を図ることができる。
【００１６】
本発明を、通信パケット複製分配用宛先情報蓄積メモリ管理方法の観点からみると、本発明は、ネットワークを介した通信に使用されるパケットであり、データを１つの塊として取り扱うデータの宛先および宛元を特定可能なヘッダ部とデータそのものを搭載するペイロード部とから構成されるものを、複数の宛先向けに複製を生成し、それらのヘッダに含まれる宛先および宛元情報を各宛先毎に変更する機能を提供するパケット配信装置が、複製対象のパケットを自パケット配信装置に入力されるパケット群からヘッダ情報をもとに選出するステップと、複製対象パケットのヘッダ情報と複製したパケットを送るべき複数の宛先の情報を蓄積する宛先情報蓄積手段内部のメモリアドレスとの関連を解決するステップと、前記宛先情報蓄積手段から宛先情報を読み出し、複製対象パケットの複製を生成すると共に複製パケットの宛先情報を変更するステップと、前記宛先情報蓄積手段に蓄積された宛先情報を更新するステップとを実行し、前記宛先情報蓄積手段は、１つの宛先情報に対しての格納位置を示すメモリアドレスを基にした宛先情報の取り出しが可能な構造（片方向リスト構造）を備え、１つのメモリアドレスに属して格納される情報が、複製パケットの宛先情報と次の宛先情報とが格納されるメモリアドレスから構成され、前記メモリアドレスをたどることにより複製パケットの宛先情報を順次読み出すことが可能な構成を有する通信パケット複製分配用宛先情報蓄積メモリ管理方法である。
【００１７】
ここで、本発明の特徴とするところは、前記メモリアドレスに属する宛先情報の有効または無効を意味するフラグを用いるところにある。
【００１８】
また、前記宛先情報蓄積手段に蓄積される１つのメモリアドレスに属する宛先情報の有効または無効を意味するフラグが有効を意味する場合には、前記宛先情報蓄積手段から得た宛先情報を読み出し、対象パケットの複製を生成すると共にヘッダ部分を変更するときに、前記フラグが無効を意味する場合には、前記フラグが有効を意味するメモリアドレスまで情報をたどる動作を行うことができる。
【００１９】
また、前記宛先情報蓄積手段に蓄積されるメモリアドレスをたどり宛先情報を順次読出すデータ構造において、１つのリスト構造の終端を意味するメモリアドレス内の次のメモリアドレスを意味する値を終端点を表現する特定値、例えば、“０”とすることにより、多入力ＮＡＮＤ演算器等を使用したリストの終端検出を行うことができる。
【００２０】
また、新たな宛先情報を追加する際には、前記フラグが無効を表示しているメモリアドレスに属する宛先情報を当該新たな宛先情報により上書きすることができる。
【００２１】
また、本発明をプログラムの発明の観点からみると、本発明は、情報処理装置にインストールすることにより、その情報処理装置に、本発明の通信パケット複製分配用宛先情報蓄積メモリ管理回路に相応する機能を実現させるプログラムである。
【００２２】
また、本発明を記録媒体の発明の観点からみると、本発明は、本発明のプログラムが記録された前記情報処理装置が読み取り可能な記録媒体である。
【００２３】
本発明のプログラムは本発明の記録媒体に記録されることにより、前記情報処理装置は、この記録媒体を用いて本発明のプログラムをインストールすることができる。あるいは、本発明のプログラムを保持するサーバからネットワークを介して直接前記情報処理装置に本発明のプログラムをインストールすることもできる。
【００２４】
これにより、汎用の情報処理装置を用いて、本発明の通信パケット複製分配用宛先情報蓄積メモリ管理回路を実現することができ、当該通信パケット複製分配用宛先情報蓄積メモリ管理回路を用いて本発明の通信パケット複製分配用宛先情報蓄積メモリ管理方法を実行することができる。
【発明の効果】
【００２５】
本発明の通信パケット複製分配用宛先情報蓄積メモリ管理回路を実装したパケット配信装置が接続される回線帯域に応じての高速動作が必要な以下の機能（高速動作機能）
・複製対象のパケットを装置に入力されるパケット群からヘッダ情報をもとに選出する機能
・複製対象パケットのヘッダ情報と宛先情報を蓄積する機能との関連を確定する機能
・宛先情報を蓄積する機能から宛先情報を読み出し複製対象パケットの複製を生成すると共にその複製パケットの宛先情報を変更する機能
および、パケット配信装置の外部から指示される、回線と比較すると低速な動作を行う以下の機能（低速動作機能）
・複製したパケットを送るべき複数の宛先情報を蓄積する機能に蓄積された宛先情報を更新する機能
の間に位置し、双方から排他的にアクセスされる以下の機能
・複製したパケットを送るべき複数の宛先情報を蓄積する機能
に対する前記高速動作機能のアクセスが、前記低速動作機能からのアクセスにより影響を受ける可能性を抑制する必要がある。
【００２６】
本発明では、配信宛先情報をリスト構造で蓄積する場合に、その情報変更に必要な２回の情報の書き換え操作を、有効または無効を意味するフラグの導入により、無効フラグを有する情報が存在する場合に、１回の情報の書き換え操作とすることを可能とし、高速動作機能のアクセスが、低速動作機能からのアクセスにより影響を受ける可能性を抑制することができる。
【００２７】
特に、動作開始から時間を経過した後、前記宛先情報を蓄積する機能内の総宛先数の変化が少なく安定した状態（無効宛先の発生数と、新たな宛先追加の発生数とがバランスした状態）においては、アクセス数を半数にできる。
【発明を実施するための最良の形態】
【００２８】
以下、図と共に本発明の実施の形態を説明する。
【００２９】
図１に、本発明による通信パケット複製分配用宛先情報蓄積メモリ管理回路を適用したパケット配信装置の構成を示す。本発明の通信パケット複製分配用宛先情報蓄積メモリ管理回路は、ネットワークを介した通信に使用されるパケットであり、データを１つの塊として取り扱うデータの宛先および宛元を特定可能なヘッダ部とデータそのものを搭載するペイロード部とから構成されるものを、複数の宛先向けに複製を生成し、それらのヘッダに含まれる宛先および宛元情報を各宛先毎に変更する機能を提供するパケット配信装置に実装される。
【００３０】
図中、１は入力される複製対象パケットのヘッダ情報を抽出する機能を有するヘッダ情報抽出部、２はヘッダ情報から当該パケットの複製を転送すべき宛先がリスト構造で格納された宛先情報蓄積メモリ６内の先頭アドレスを確定する機能を有する先頭アドレス確定部、３はパケットを一時蓄積する機能を有する一時蓄積部、４は先頭アドレス確定部２から得られる先頭アドレスを鍵として宛先情報蓄積メモリ６をアクセスしリスト構造に従い宛先情報を逐次読み出す機能を有する宛先情報読出部、５は一時蓄積部３からパケット情報を複製読み出し宛先情報読出部４から与えられる宛先情報を基にパケットヘッダを変更しネットワークに送出する機能を有する複製読出部、６はパケットの複製を届ける宛先情報を格納した宛先情報蓄積メモリ、７は宛先情報蓄積メモリ６に蓄積される宛先情報を変更するためにメモリ情報保守部８からアクセスするためのインタフェース、８は外部機器インタフェース９を介して入力される命令に従いインタフェース７を介して宛先情報蓄積メモリ６内の情報を操作するメモリ情報保守部、９は当該パケット複製装置の外部から入力される命令をメモリ情報保守部８に伝えるための外部機器インタフェース、１０はインタフェース７、メモリ情報保守部８、外部機器インタフェース９を結ぶ連結部、１１は外部からの命令を発生する外部装置である。
【００３１】
なお、図示を省略したが、ヘッダ情報抽出部１の前段には、複製対象パケットを自パケット配信装置に入力されるパケット群からヘッダ情報をもとに選出する手段を有する。
【００３２】
また、図中の１２は複製対象パケットの流れ、１３は一時蓄積部３に一時蓄積される一時蓄積パケットの流れ、１４は一時蓄積部３から読み出される複製パケットの流れ、１５はヘッダ情報抽出部１により読み出されたパケットヘッダ情報の流れ、１６はパケットヘッダ情報１５に基づき先頭アドレス確定部２により変換された宛先情報蓄積メモリ６に格納された宛先情報のリストの先頭アドレスの流れ、１７は先頭アドレス１６に基づき宛先情報読出部４が宛先情報蓄積メモリ６を読み出すメモリアドレスの流れ、１８はメモリアドレス１７に基づき宛先情報蓄積メモリ６が出力する宛先情報を含むメモリ内情報の流れ、１９はメモリ内情報１８により宛先情報読出部４が複製読出部５に出力する宛先情報の流れ、２０はインタフェース７が宛先情報蓄積メモリ６内の情報の保持のためにアクセスするメモリアドレスの流れ、２１はメモリ情報保守部８がインタフェース７を介して宛先情報蓄積メモリ６内の情報の保守のためにアクセスするメモリ内情報の流れ、２２はメモリ情報保守部８が連結部１０を介してインタフェース７にアドレスおよびメモリ情報を伝えるためのメモリアクセス（書き込み）の流れ、２３はメモリ情報保守部８が外部機器インタフェース９を介して入力される命令の入力およびメモリアクセス２２を含むアクセスの流れ、２４はメモリ情報保守部８が外部装置１１からの命令を受け取るためのアクセスの流れ、２５は複製読出部５が装置外部へ出力する複製パケットの流れである。
【００３３】
本発明は、当該装置の宛先情報蓄積メモリ６、宛先情報読出部４およびメモリ情報保守部８に関する。
【００３４】
図２に、図１の宛先情報蓄積メモリ６内部に蓄積される宛先情報を含むメモリ情報の構成を示す。本メモリ情報は、宛先情報蓄積メモリ６のメモリアドレス１つに関連する１つのデータフィールドに格納される。図中２０１はデータフィールド全体であり、図１のメモリ内情報１８および２１に相当する。２０２は、本発明のメモリ管理方法に使用するフィールドであり、２０３は複製したパケットを転送する際に利用する宛先のＩＰアドレス（以下では、宛先アドレスと記す）を格納するフィールドである。２０２の内部には、片方向リンクリストを構成するに必須な次のデータフィールドのメモリアドレスの他に、本発明の管理方法で使用するフラグが含まれる。本実施例ではフラグは１ビットで構成する。
【００３５】
図３に、図２の構成に基づき図１の宛先情報蓄積メモリ６に複数の宛先情報を格納した例を示す。ここでは宛先情報蓄積メモリ６を構成するメモリのアドレスを離散的に使用しており、先頭アドレスは“５０”となっている。アドレス“５０”のデータフィールドには３０１に示すフラグ、３０２に示す次のデータフィールドへのメモリアドレス、３０３には宛先アドレスがそれぞれ格納されている。先頭アドレスは図１の先頭アドレス１６として先頭アドレス確定部２から与えられる値であり、宛先情報読出部４はメモリアドレス１７として宛先情報蓄積メモリ６に出力される。
【００３６】
図中３０１で示されるフラグはそのデータフィールドに格納されるＩＰアドレス３０３の有効または無効を示すものであり、“１”の場合は有効、“０”の場合は無効となる。３０２は次のデータフィールドへのメモリアドレスを格納するデータフィールドを示すものであり、メモリアドレスが“５０”のデータフィールドには次のデータフィールドのメモリアドレス値“１００”が格納されている。このデータフィールドの値を新たなメモリアドレスとしてたどることで、次々と複製パケットの宛先アドレスを得ることができる。このメモリアドレスの利用法に関しては周知技術の片方向リスト構造である。本発明では、周期技術である片方向リスト構造に新たにフラグ３０１が付加させる。３０４は片方向リスト構造の終端を意味するデータフィールドであり、次データフィールドのアドレスを“０００”としている。このデータフィールド内の宛先ＩＰアドレスは無効であるのでフラグは“０”とする。
【００３７】
図４に、図３のデータの一部が削除された例を示す。図中４０１に示す部分が無効とされたデータフィールドであり、フラグは“０”となる。図１の宛先情報読出部４はフラグが“０”のデータフィールド内の宛先ＩＰアドレスは無効であると判断し、当該データフィールドの次のデータフィールドのメモリアドレスに基づき、次の読み込みを行う。
【００３８】
図５に、図４で無効であったデータフィールドが存在している時点で、新たな１つの宛先が追加された例を示す。図４の時点で無効であったメモリアドレス値１２０のデータフィールドに格納された宛先アドレス５０２と、フラグ５０１とを同時に更新することで、新たな宛先情報をリスト構造の中に追加することができる。このとき、図２のデータフィールド２０１が１つのメモリアドレスに対応し、一度に変更可能な場合には、通常２回のアクセスが必要な片方向リスト構造の中に、１回の書き込みアクセスでの新たな宛先を登録することができる。
【００３９】
図６に、フラグによる無効データフィールドが存在しない場合の新規データフィールドの追加の例を示す。この動作は、フラグを用いない片方向リスト構造への新規データの追加と同一の動作となり、２回のアクセスが必須となる。図中６０１は全く利用されていないデータフィールドである。図中６０２は新たに挿入されるデータフィールドの１つ前の位置にあるデータフィールドであり、次のデータフィールドへのメモリアドレス６０３は“１４０”を示しており、新たに挿入されるデータフィールドの直後のデータフィールドのメモリアドレスを格納している。
【００４０】
図６の６０１に新たなデータフィールドを設け、図５の状態とするためには、データフィールド６０１にフラグ５０１の情報を格納し、次に、データフィールド６０２の位置のメモリアドレス６０３をデータフィールド６０１のメモリアドレスに変更する必要がある。動作には２回のメモリの書き込みアクセスが必要となる。
【００４１】
フラグにより無効データフィールドが存在する場合には、１回のメモリの書き込みアクセスで目的を達成することができる。
【００４２】
図７に、図４のフラグ４０１による無効データフィールドを無視する機能を実現した図１の宛先情報読出部４の構成を示す。図中７０１は図１の先頭アドレス１６による入力を受ける第１のレジスタ、７０２は図２のデータフィールド２０２内に格納された次のデータフィールドのメモリアドレスと第一のレジスタ７０１の出力との選択を行うセレクタ、７０３はセレクタ７０２の出力を一時蓄積するための第２のレジスタ、７０４は図３のデータフィールド３０４に示す終端のデータフィールドをデータフィールド３０２の位置に格納されたメモリアドレスから検出しセレクタ７０２を操作する比較器で構成される終端検出器、７０５は図１のメモリ内情報１８による入力を受ける第３のレジスタ、７０６は第３のレジスタ７０５の出力から図３の３０３に示す宛先アドレスを、図３の３０１のフラグに基づき出力するゲートである。
【００４３】
また、図７中の７０７は図１の先頭アドレス１６の入力、７０８は第１のレジスタ７０１で一時蓄積された先頭アドレス１６の値の流れ、７０９はセレクタ７０２により選択されたメモリアドレスの流れ、７１０は第３のレジスタ７０５により一時蓄積された図１のメモリ内情報１８の中に含まれる次のデータフィールドへのメモリアドレスの流れ、７１１は図１のメモリアドレス１７への読み出しアドレス（出力）の流れ、７１２は図１のメモリ内情報１８の読み出しデータ（入力）の流れ、７１３は第３のレジスタ７０５に一時蓄積されたデータフィールドの宛先アドレスの流れ、７１４は第３のレジスタ７０５に一時蓄積されたフラグ出力（フラグ値）の流れ、７１５はゲート７０６の出力の宛先アドレス出力の流れであり、フラグ出力７１４および宛先アドレス出力７１５は図１の宛先情報１９として重畳され、図１の複製読出部５に出力される。７１６は終端検出器７０４による比較結果出力である。
【００４４】
終端検出器７０４は比較対象の一方の入力に“０”の値を入力として持ち、終端のデータフィールドの識別情報として利用可能な次のデータフィールドへのメモリアドレスと比較を行った上で、データフィールドへのメモリアドレスが“０”の場合には、比較結果出力７１６を介してセレクタ７０２を操作し、新たな先頭アドレスを第１のレジスタ７０１から第２のレジスタ７０３に導入する。
【００４５】
ゲート７０６は第３のレジスタ７０５が出力する宛先アドレスに関わらず、フラグ値が“０”の場合には、宛先アドレス出力７１５を“０”とする。これにより、無効なデータフィールドの宛先アドレスが宛先アドレス出力７１５に出力されるのを抑制する。また、図１の複製読出部５は、フラグ出力７１４および宛先アドレス出力７１５の信号を重畳する図１の宛先情報１９の値が“０”の場合に、宛先情報１９で与えられたデータは無効であると自律的に判断することができる。
【００４６】
図８に、図４に示した例を、図７の構成がどのように処理するかを、タイミングチャートを使用して示す。図中８０１は図７の第１のレジスタ７０１に一時蓄積された片方向リストを構成する先頭のデータフィールドのメモリアドレスである先頭アドレス入力である。先頭アドレス入力８０１はセレクタ７０２を経て、第２のレジスタ７０３に一時蓄積され読み出しアドレス８０３が出力される（図７では読み出しアドレス７１１に相当）。それに応じて、図７の読み出しデータ７１２には入力として図８の先頭アドレス入力８０１のメモリアドレスに対応するデータフィールドの情報が与えられる。読み出しデータ７１２は、第３のレジスタ７０５で一時蓄積され、宛先アドレス７１３に出力される。
【００４７】
このとき、フラグの値は“１”であるので、ゲート７０６は宛先アドレス７１３の値を宛先アドレス出力７１５として出力し、図８の宛先アドレス出力８０９の値が図７の宛先アドレス７１５に現れる。さらに、このとき、次のメモリアドレスのフィールドの値は、終端検出器７０４およびセレクタ７０２に入力され、終端検出器７０４は次のメモリアドレスの値が“０”であるかを評価するが、このときは、メモリアドレス値として“１００”が与えられているので、比較結果は異なるという意味で“１”となり、比較結果出力７１６を経てセレクタ７０２に入力される。
【００４８】
セレクタ７０２は、比較結果出力７１６が“１”であるので、メモリアドレス７１０に与えられた次のメモリアドレスのフィールドの値を第２のレジスタ７０３に入力し、読み出しアドレス７１１として出力する。これは図８では読み出しアドレス８０４に相当する。
【００４９】
読み出しアドレス８０４に応じて次のデータフィールドが読み出され、前述の図７の構成の動作を経て、図７の宛先アドレス出力７１５に図８の宛先アドレス出力８１０が現れる。このときのデータフィールドの格納された次のデータフィールドへのメモリアドレスの値は“１２０”である。このメモリアドレスのデータフィールドが第３のレジスタ７０５に一時蓄積されたとき、フラグ値８１５は“０”となり、図８の宛先アドレス出力８１１に示すようにゲート７０６は図７の宛先アドレス出力７１５の出力を“０”とする。このとき、宛先アドレス出力７１５およびフラグ出力７１４の先に存在する図１の複製読出部５はデータが無効と判断し、次の有効データを待つ。
【００５０】
メモリアドレスの値が“１２０”のデータフィールドに格納された次のデータフィールドのメモリアドレスは“１４０”であり、この値が、図８の読み出しアドレス８０６として、図７の終端検出器７０４での評価およびセレクタ７０２での選択を経て、第２のレジスタ７０３に一時蓄積されることで、読み出しアドレス７１１として出力される。
【００５１】
図８の読み出しアドレス８０６のメモリアドレス値（値は“１４０”）に対応するデータフィールドのデータが図７の読み出しデータ７１２に出力され、第３のレジスタ７０５に一時蓄積される。このデータフィールドのフラグの値は有効を示す“１”であるので図７のフラグ出力７１４の値は図８のフラグ出力８１６に示すように“１”となる。図８の宛先アドレス８１２は有効なものである。この宛先アドレス８１２に対応するメモリアドレス値が“１４０”のデータフィールドに格納された次のデータフィールド内のメモリアドレスを示す値は“１５０”であるので、図７の構成の動作を経て図８の読み出しアドレス８０７が図７の読み出しアドレス７１１として出力される。
【００５２】
メモリアドレスの値が“１５０”のデータフィールドは終端のデータフィールドであり、そこに格納されるフラグ、次のデータフィールドの値は共に“０”である。終端のデータフィールドが第３のレジスタ７０５に一時蓄積されると、図８のフラグ出力８１７に相当する図７のフラグ出力７１４の値は“０”となり、図７の宛先アドレス出力７１５は図８の宛先アドレス８１３に示すように“０”となる。さらに、メモリアドレス７１０の次のデータフィールドへのメモリアドレスの値は“０”となり、図８の終端検出器出力８１８に示すように終端検出器７０４は図７の比較一致の比較結果出力７１６として“０”を出力する。セレクタ７０２は比較結果出力７１６に従い、第１のレジスタ７０１に予め蓄積された、新たな片方リスト構造の先頭アドレス（図８の先頭アドレス入力８０２）を第２のレジスタ７０３へと導き、図８の読み出しアドレス８０８を図７の読み出しアドレス７１１として出力する。
【００５３】
図９に、図１のメモリ情報保守部８の機能構成を示す。図１のメモリ情報保守部８は通常、コンピュータソフトウェアとして実装する。図中９０１はコンピュータ機能のメモリ上に作られた図１の宛先情報蓄積メモリ６と同じ内容を蓄積した管理用テーブル、９０２はこの管理用テーブル９０１を管理し、図１の外部装置１１からの入力に応じて、図１の宛先情報蓄積メモリ６上のデータフィールドの変更操作を実施するテーブル管理機能、９０３は図１の外部装置１１にインタフェースを設ける操作インタフェース、９０４は図１のインタフェース７へのインタフェースを設けるインタフェースである。
【００５４】
図１０に、図９のテーブル管理機能９０２の動作を示す。１００１はコマンドの入力待ちステップであり、９０３からの命令の入力の待機である。１００２はコマンドが入力された際に、そのコマンドに意味を解釈するコマンド解析ステップであり、新たな宛先アドレスの追加あるいは指定した宛先アドレスの削除（無効化を含む）を判断する。
【００５５】
コマンド解析ステップ１００２で追加のコマンドと判断された場合には、管理用テーブル検索ステップ１００６は管理用テーブル９０１を検索し、フラグが無効なデータフィールドの存在と、そのメモリアドレスとを得る。フラグが無効を示すデータフィールドが存在する場合には、ステップ１００８でそのデータフィールド内の宛先アドレスを更新すると共にフラグを“１”に書き換える。その後、ステップ１０１２において、修正を管理用テーブル９０１に反映し、入力待ちステップ１００１に戻る。
【００５６】
管理用テーブル検索ステップ１００６の検索で、フラグが無効を示すデータフィールドが存在しない場合には、読み出し停止ステップ１００７で図１の宛先情報蓄積メモリ６の宛先情報読出部４からの読み出しを一時停止し、ステップ１００９で追加対象データフィールドのメモリアドレスを１つ前のデータフィールド内の次のデータフィールドに修正書き込みを行い、次に、ステップ１０１０で追加対象データフィールドを当該メモリアドレスに属するデータフィールドに書き込む。その後、ステップ１０１１で、図１の宛先情報読出部４から宛先情報蓄積メモリ６への読み出し処理を再開する。その後、ステップ１０１２を経て入力待ちステップ１００１へ戻る。
【００５７】
コマンド解析ステップ１００２で削除のコマンドと判断された場合には、管理用テーブル検索ステップ１００３で管理用テーブル９０１を検索し、削除対象の宛先アドレスを格納したデータフィールドのメモリアドレスの前後に既に無効のフラグを有するデータフィールドが存在しない場合には、フィールドのフラグ操作による無効化を実施すると判断し、ステップ１００５で図１の宛先情報蓄積メモリ６内の当該メモリアドレスに属するデータフィールドのフラグを、無効を意味する“０”にする。その後、ステップ１０１２を経て、入力待ちステップ１００１に戻る。
【００５８】
管理用テーブル検索ステップ１００３で管理用テーブル９０１を検索し、削除対象の宛先アドレスを格納したデータフィールドのメモリアドレスの前後に既に無効のフラグを有するデータフィールドが存在する場合には、無効のフラグを有するデータフィールドの連続的存在として、それが、予め指定した数を越える場合には、当該の連続した無効フラグを有するデータフィールドを削除するステップ１００４を行う。ステップ１００４では、当該の連続した無効フラグを有するデータフィールドの１つ前の有効なフラグを有するデータフィールドに格納される次のデータフィールドのメモリアドレスを示す値を、当該の連続した無効フラグを有するデータフィールドの直後の有効なフラグを有するデータフィールドのメモリアドレスの値に変更する。
【００５９】
これにより、当該の連続した無効フラグを有するデータフィールドに関して図１の宛先情報読出部４からの読み込みは発生しなくなる。無効なフラグを有するデータフィールドの連続する数は、実装した装置の性能に応じて指定する必要がある。ステップ１００４の終了後、ステップ１０１２を経て、入力待ちステップ１００１に戻る。
【００６０】
データフィールドの無効または有効を意味するフラグを使用しない場合は、追加動作時に、ステップ１００７、１００９、１０１０、１０１１の操作が常に必要になるが、当該フラグがある場合は、ステップ１００８により１回の操作で終了することができる。この動作は、図１の宛先情報蓄積メモリ６内部のデータフィールドの総数が一定となり、宛先情報が常に入れ替わる定常状態で、図１の宛先情報蓄積メモリ６への変更アクセス数を約５０％に削減する効果がある。
【００６１】
本実施例は、汎用の情報処理装置にインストールすることにより、その情報処理装置を本実施例の通信パケット複製分配用宛先情報蓄積メモリ管理回路として機能させるプログラムとして実施することができる。このプログラムは、記録媒体に記録されて情報処理装置にインストールされ、あるいは通信回線を介して情報処理装置にインストールされることにより当該情報処理装置を本実施例の通信パケット複製分配用宛先情報蓄積メモリ管理回路として機能させることができる。
【産業上の利用可能性】
【００６２】
本発明は、ＭＰＵ(Micro-Processing-Module)を応用しての機能実現と比較して、広帯域で配信されるデータを多数の宛先に低消費電力で分配することを目的にした装置の構成要素であり、宛先情報の変更に関連した宛先情報蓄積メモリの書き換え動作を削減することができる。
【図面の簡単な説明】
【００６３】
【図１】本発明による通信パケット複製分配用宛先情報蓄積メモリ管理回路を適用したパケット配信装置の構成を示す図。
【図２】宛先情報蓄積メモリ内部に蓄積される宛先情報を含むメモリ情報の構成図。
【図３】宛先情報蓄積メモリに複数の宛先情報を格納した例を示す図。
【図４】図３のデータの一部が削除された例を示す図。
【図５】図４で無効であったデータフィールドが存在している時点で、新たな１つの宛先が追加された例を示す図。
【図６】フラグによる無効データフィールドが存在しない場合の新規データフィールドの追加の例を示す図。
【図７】図４の４０１に示すフラグによる無効データフィールドを無視する機能を実現した図１の宛先情報読出部の構成を示す図。
【図８】図４に示した例を図７の構成がどのように処理するかをタイミングチャートを使用して示す図。
【図９】メモリ情報保守部の機能構成を示す図。
【図１０】テーブル管理機能の動作を示す図。
【符号の説明】
【００６４】
１  ヘッダ情報抽出部
２  先頭アドレス確定部
３  一時蓄積部
４  宛先情報読出部
５  複製読出部
６  宛先情報蓄積メモリ
７  インタフェース
８  メモリ情報保守部
９  外部機器インタフェース
１０  連結部
１１  外部装置
１２  複製対象パケット
１３  一時蓄積パケット
１４、２５  複製パケット
１５  パケットヘッダ情報
１６、７０７、７０８  先頭アドレス
１７、２０、７０９、７１０  メモリアドレス
１８、２１  メモリ内情報
１９  宛先情報
２２  メモリアクセス（書き込み）
２３、２４  アクセス
２０１  データフィールド全体
２０２  メモリ管理方法に使用するフィールド
２０３  宛先アドレスを格納するフィールド
３０１、５０１  フラグ
３０２  次のデータフィールドへのメモリアドレス
３０３、５０２、７１３、８０９〜８１３  宛先アドレス
３０４  片方向リスト構造の終端を意味するデータフィールド
４０１  無効とされたデータフィールド
６０１  全く利用されていないデータフィールド
６０２  新たに挿入されるデータフィールドの１つ前の位置にあるデータフィールド
６０３  次のデータフィールドへのメモリアドレス
７０１  第１のレジスタ
７０２  セレクタ
７０３  第２のレジスタ
７０４  終端検出器
７０５  第３のレジスタ
７０６  ゲート
７１１、８０３〜８０８  読み出しアドレス
７１２  読み出しデータ（入力）
７１４、８１４〜８１７  フラグ出力（フラグ値）
７１５  宛先アドレス出力
７１６  比較結果出力
８０１、８０２  先頭アドレス入力
８１８  終端検出器出力
９０１  管理用テーブル
９０２  テーブル管理機能
９０３  操作インタフェース
９０４  インタフェース
１００１  コマンドの入力待ちステップ
１００２  コマンド解析ステップ
１００３、１００６  管理用テーブル検索ステップ
１００４  削除対象フィールドの１つ前のアドレス修正ステップ
１００５  対象フィールドのフラグを“０”に修正ステップ
１００７  読み出し停止ステップ
１００８  対象フィールドのデータを修正しフラグを“１”に変更ステップ
１００９  削除対象フィールドの１つ前のアドレスの修正ステップ
１０１０  追加対象フィールドの書き込みステップ
１０１１  読み出し再開ステップ
１０１２  修正を管理用テーブルに反映ステップ
【図１】
2007174046.tif 000003
【図２】
2007174046.tif 000004
【図３】
2007174046.tif 000005
【図４】
2007174046.tif 000006
【図５】
2007174046.tif 000007
【図６】
2007174046.tif 000008
【図７】
2007174046.tif 000009
【図８】
2007174046.tif 000010
【図９】
2007174046.tif 000011
【図１０】
2007174046.tif 000012