(57)【要約】【課題】チェーンメモリにエラーが発生した場合にも、誤り訂正符号を用いることなくエラーに対処する。【解決手段】本願の開示する技術は、受信された複数のデータをグループ化し、グループ化されたデータを一定のアドレス間隔ごとに記憶する。また、グループ化されたデータのうち先頭のデータが記憶されたアドレスを、直前にグループ化された複数のデータに対して対応付けて記憶する。結果、チェーンメモリが冗長化されるので、チェーンメモリにエラーが発生した場合にも、誤り訂正符号を用いずに、エラーに対して迅速に対応することが可能となる。【選択図】図６−２
2010278775.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータを記憶するデータ記憶部と、
入力されたデータ間の接続関係を示す接続情報を記憶する接続情報記憶部と、
順次入力される複数のデータを所定のデータ数ごとにグループ化し、当該グループ化された複数のデータを前記データ記憶部に所定のアドレス間隔で格納するデータ格納部と、
前記グループ化されたデータのうち先頭で入力されたデータが格納された位置を示すアドレス情報を、当該グループの直前にグループ化された複数のデータに対応付けられる接続情報として、前記接続情報記憶部に冗長化して格納する接続情報格納部と、
を備えることを特徴とするデータ管理装置。
【請求項２】
前記データ記憶部から前記グループ化されたデータを前記所定のアドレス間隔にしたがって入力順に読み出すとともに、当該読み出した複数のアドレスに対応付けられているアドレス情報を前記接続情報記憶部から取得し、当該アドレス情報に対応する位置に格納されているデータを、前記グループの直後にグループ化された複数のデータのうち先頭で入力されたデータとして読み出す読出部をさらに備えたことを特徴とする請求項１に記載のデータ管理装置。
【請求項３】
前記接続情報格納部は、前記グループ化されるデータ数よりも少ない個数で前記アドレス情報を冗長化して格納する事を特徴とする請求項１もしくは請求項２に記載のデータ管理装置。
【請求項４】
入力されたデータを記憶するデータ記憶部と、
入力されたデータ間の接続関係を示す接続情報を記憶する接続情報記憶部と、
順次入力される複数のデータを所定のデータ数ごとにグループ化し、当該グループ化された複数のデータを前記データ記憶部に所定のアドレス間隔で格納するデータ格納部と、
前記グループ化されたデータのうち先頭で入力されたデータが格納された位置を示すアドレス情報を、当該グループの直前にグループ化された複数のデータに対応付けられる接続情報として、前記接続情報記憶部に冗長化して格納する接続情報格納部と、
前記データ記憶部から前記グループ化されたデータを前記所定のアドレス間隔にしたがって入力順に読み出すとともに、当該読み出した複数のアドレスに対応付けられているアドレス情報を前記接続情報記憶部から取得し、当該アドレス情報に対応する位置に格納されているデータを、前記グループの直後にグループ化された複数のデータのうち先頭で入力されたデータとして読み出す読出部と、
前記読出部によって読み出されたデータを順次送信する送信部と、
を備えることを特徴とするデータ伝送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理装置およびデータ伝送装置に関する。
【背景技術】
【０００２】
従来より、パケットを中継するパケット伝送装置では、パケット間の接続関係を示す接続情報を用いてパケットを管理するチェーン管理方式を利用することが知られている。チェーン管理方式を用いたデータ伝送装置では、受信したパケットを一時的に共有バッファに格納するとともに、入力されたパケット間の接続関係を示す接続情報をチェーンメモリに格納する。
【０００３】
例えば、図１１に例示するように、データ伝送装置は、受信されたパケット１を共有バッファのアドレス「１」に格納し、パケット１の次に受信されたパケット２を共有バッファのアドレス「５」に格納する。このような場合に、データ伝送装置は、接続情報として、パケット２が記憶された共有バッファのアドレス「５」をパケット１に対応付けられているチェーンメモリに格納する。
【０００４】
ここで、図１１は、格納されたパケットとチェーンメモリとの対応を示す。図１１において、Ｈｅａｄメモリに格納されたアドレスは、最初のパケットが格納されたアドレスを示す。Ｔａｉｌメモリに格納されたアドレスは、最後のパケットが格納されたアドレスを示す。共有バッファは、パケットを記憶する記憶部である。また、チェーンメモリには、対応付けられたパケットの次に受信されたパケットが格納されたアドレスが格納されている。
【０００５】
このような構成のもと、データ伝送装置は、チェーンメモリに記憶されたアドレスを用いて、共有バッファに格納されたパケットを受信順に読み出す。例えば、図１２の図中において例示するように、データ伝送装置は、パケット１を読み出すとともに、パケット１に対応付けられているアドレス「５」をチェーンメモリから取得し、アドレス「５」に格納されているパケット２を共有バッファから読み出す。ここで、図１２は、チェーンメモリを用いて、図１１に示したパケットを読み出す処理を模式的に表した図である。
【０００６】
ところが、データ伝送装置は、チェーンメモリにエラーが発生した場合に、パケットを受信順に読み出すことができなくなる。ここで、図１３は、チェーンメモリに発生したエラーを表す模式図である。例えば、図１３の図中において例示するように、データ伝送装置は、パケット３に対応付けられているチェーンメモリのアドレスが「７」から「６」に変化するエラーが発生した場合には、パケット４のアドレスを誤って認識してしまい、パケット４を共有バッファから読み出すことができない。
【０００７】
このため、チェーンメモリにエラーが発生した場合に、チェーンメモリのエラーを修正する技術として、チェーンメモリに誤り訂正符合を付して記憶する技術が知られている（例えば、特許文献１参照）。具体的には、データ伝送装置は、チェーンメモリに誤り訂正符号を付して記憶している。そして、データ伝送装置は、チェーンメモリにエラーが発生した場合には、誤り訂正符号を用いて、チェーンメモリのエラーを修正し、次のパケットを送信する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−１２２８４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、上記したチェーンメモリに誤り訂正符号を付して記憶する技術では、チェーンメモリにエラーが発生した場合には、誤り訂正符号を用いてチェーンメモリの訂正を行う必要がある。このため、データ伝送装置は、チェーンメモリにエラーが発生した場合には、誤り訂正を実行するために複雑な処理を実行するので、チェーンメモリの復旧に時間がかかってしまうという問題があった。
【００１０】
また、上記したチェーンメモリに誤り訂正符号を付して記憶する技術では、データ伝送装置は、誤り訂正を実行するために複雑な処理を実行するので、複雑な処理回路や専用のメモリが必要となり、回路規模が大きくなってしまうという問題があった。
【００１１】
開示の技術は、上記に鑑みてなされたものであって、チェーンメモリにエラーが発生した場合にも、誤り訂正符号を用いることなく、エラーに対処することができる。
【課題を解決するための手段】
【００１２】
本願の開示するデータ管理装置は、複数の情報を一つのグループとして記憶させ、グループに含まれる複数の情報に対して、次のグループに含まれる情報を示すチェーンメモリを関連付けて記憶する。
【発明の効果】
【００１３】
本願の開示するデータ管理装置の一つの態様によれば、回路規模を大きくすること無く、チェーンメモリにエラーが発生した場合にも、チェーンメモリの復旧を短時間で実行することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係るデータ管理装置を表すブロック図である。
【図２】図２は、実施例２に係るデータ伝送装置を説明するためのブロック図である。
【図３】図３は、実施例２に係る記憶部を説明する図である。
【図４】図４は、実施例２に係る共有バッファについて説明するための図（１）である。
【図５】図５は、実施例２に係る共有バッファについて説明するための図（２）である。
【図６−１】図６−１は、実施例２に係るチェーン接続を説明するための図（１）である。
【図６−２】図６−２は、実施例２に係るチェーン接続を説明するための図（２）である。
【図７】図７は、実施例２に係る書込制御部が行う書込処理を説明するための図である。
【図８】図８は、実施例２に係る読取制御部が行う読取処理を説明するための図である。
【図９】図９は、実施例２に係る書込処理を説明するためのフローチャートである。
【図１０】図１０は、実施例２に係る読取処理の流れを説明するためのフローチャートである。
【図１１】図１１は、従来技術を説明するための図（１）である。
【図１２】図１２は、従来技術を説明するための図（２）である。
【図１３】図１３は、従来技術を説明するための図（３）である。
【発明を実施するための形態】
【実施例１】
【００１５】
以下に添付図面を参照して、この発明に係るデータ管理装置およびデータ伝送装置の実施例を詳細に説明する。
【００１６】
以下の実施例では、データ管理装置の構成および処理の流れを順に説明する。
【００１７】
[データ管理装置の構成]
まず最初に、図１を用いて、データ管理装置１の構成について説明する。ここで、図１は、実施例１に係るデータ管理装置の構成を説明するブロック図である。図１に示すように、データ管理装置１は、データ格納部２および接続情報格納部３とを有している。また、データ格納部２は、データ記憶部４と接続されている。また、接続情報格納部３は、接続情報記憶部５と接続されている。
【００１８】
データ記憶部４は、外部装置から入力されたデータを記憶する記憶部である。接続情報記憶部５は、データ間の接続関係を示す接続情報を記憶する記憶部である。
【００１９】
データ格納部２は、順次入力される複数のデータを所定のデータ数ごとにグループ化し、グループ化された複数のデータをデータ記憶部４に所定のアドレス間隔で格納する。
【００２０】
接続情報格納部３は、グループ化されたデータのうち先頭で入力されたデータが格納された位置を示すアドレス情報を、直前にグループ化された複数のデータに対応付けられる接続情報として、接続情報記憶部５に記憶する。
【００２１】
つまり、接続情報格納部３は、グループ化された複数のデータのうち、一番目に入力されたデータが記憶されたデータ記憶部４のアドレスを、直前にグループ化された複数のデータに対応付けて接続情報格納部３に格納する。
【００２２】
[実施例１の効果]
上述してきたように、実施例１に係るデータ管理装置１は、複数の情報を１つのグループとし、グループ化された複数のデータを所定のアドレス間隔でデータ記憶部４に記憶させる。また、データ管理装置１は、グループに含まれる一番目に入力されたデータが格納されたデータ記憶部４のアドレスを直前にグループ化された複数のデータに対応付けられる接続情報として、接続情報記憶部５に冗長化して格納する。
【００２３】
そのため、データ管理装置１は、一つのグループに次のグループを示す接続情報を複数対応付けることができる。結果として、データ管理装置１は、接続情報を多重化することができ、接続情報にエラーが発生した場合であっても、誤り訂正符号を用いることなく、迅速にエラーに対処することができる。
【実施例２】
【００２４】
以下の実施例２では、データ伝送装置の構成および処理の流れを順に説明する。最初に、図２を用いて、データ伝送装置の構成を説明する。ここで、図２は、実施例２に係るデータ伝送装置を説明するためのブロック図である。
【００２５】
実施例２に係るデータ伝送装置１０は、通信装置６と接続されており、通信装置６から送信されたパケットを中継する。図２に示すように、データ伝送装置１０は、記憶部１１と共有バッファ制御部１２とを有する。共有バッファ制御部１２は、書込制御部２１と読取制御部２２とＨｅａｄメモリ１３とＴａｉｌメモリ１４と蓄積カウンタ２３とを有している。
【００２６】
書込制御部２１は、データ格納部１５と、接続情報格納部１６と、制御出力部１７とを有している。読取制御部２２は、情報読取部１８と、接続情報読取部１９と、制御出力部２０とを有している。
【００２７】
次に、図３を用いて、実施例２に係る記憶部１１について説明する。ここで、図３は、実施例２に係る記憶部を説明する図である。記憶部１１は、空きアドレス管理メモリ７、共有バッファ８、チェーンメモリ９を有している。
【００２８】
共有バッファ８は、アドレス１からアドレス２αまでの記憶領域を有している。ここで、共有バッファ８は、記憶領域が２つに分割されており、前半のアドレスとしてアドレス１からアドレスαまでの記憶領域を有し、後半のアドレスとしてアドレスα＋１からアドレス２αまでの記憶領域を有する。また、空きアドレス管理メモリ７は、共有バッファ８が有する全記憶容量のうち、前半のアドレス（つまり、アドレス１からアドレスαまで）の空き状況を管理している。
【００２９】
チェーンメモリ９は、入力されたパケット間の接続関係を示す接続情報を記憶する。具体的には、チェーンメモリ９は、共有バッファ８に記憶されたパケットの順序関係を示す接続情報として、次に接続するグループの最初に入力されたパケットのアドレス値を記憶する。例えば、後述する図６―１の例を用いて説明すると、チェーンメモリ９は、パケット１とパケット２を含むグループの次のグループにおいて最初に入力されたパケット３のアドレス値「Ｙ」を、パケット１とパケット２に対応付けてそれぞれ記憶する。
【００３０】
データ格納部１５は、順次入力される複数のパケットを所定のパケット数ごとにグループ化する。また、データ格納部１５は、グループ化された複数のパケットを所定のアドレス間隔で共有バッファ８に格納する。具体的には、データ格納部１５は、２つのパケットを一つのグループにグループ化する。
【００３１】
そして、データ格納部１５は、グループに含まれる２つのパケットを共有バッファ８に格納する場合には、２つのパケットを格納するアドレス間隔を「α」にして格納する。例えば、データ格納部１５は、同一グループの２つのパケットを記憶する場合には、アドレス「１」とアドレス「１＋α」にそれぞれ格納する。
【００３２】
ここで、図４および図５を用いて、実施例２に係るグループ化について説明する。図４は、実施例２に係る共有バッファについて説明するための図（１）である。また、図５は、実施例２に係る共有バッファについて説明するための図（２）である。
【００３３】
データ格納部１５は、１つのグループに含まれる２つのパケットのうち、先に受信したパケットを共有バッファ８に記憶させる場合には、アドレス１からアドレスαまでの空いている記憶領域のアドレスを空きアドレス管理メモリ７から受信する。そして、データ格納部１５は、受信したアドレスにパケットを格納する。また、データ格納部１５は、パケットを格納したアドレスを空きアドレス管理メモリ７から消去する。
【００３４】
次に、データ格納部１５は、一つのグループに含まれる２つのパケットのうち、後に受信したパケットを共有バッファ８に記憶させる場合には、図５に示すように、前のパケットを記憶させたアドレスにαを加算したアドレスの記憶領域に対して後のパケットを記憶させる。すなわち、データ格納部１５は、共有バッファ８が有する記憶領域のうちアドレス１〜アドレスαまでの各記憶領域と、アドレスα＋１からアドレス２αまでの記憶領域とを関連付けている。
【００３５】
つまり、データ格納部１５は、一つのグループに含まれる２つのパケットのうち、前のパケットをアドレス１〜アドレスαのいずれかに記憶させ、前のパケットを記憶したアドレスにαを加算した値のアドレスに後のパケットを記憶させる。
【００３６】
また、データ格納部１５は、チェーンメモリを用いて接続される最初のパケットが記憶されたアドレスを、Ｈｅａｄメモリ１３に格納する。また、データ格納部１５は、チェーンメモリを用いて接続される最後のパケットが記憶されたアドレスを、Ｔａｉｌメモリ１４に格納する。また、データ格納部１５は、パケットを共有バッファ８に記憶させた場合には、蓄積カウンタ２３の値に１を加える。
【００３７】
接続情報格納部１６は、グループ化されたパケットのうち、先頭で入力されたパケットが格納されたアドレスを、直前にグループ化された複数のパケットに対応付けられた接続情報として、チェーンメモリ９に冗長化して格納する。具体的には、接続情報格納部１６は、グループに含まれるパケットのうち、前のパケットが共有バッファ８に格納された場合には、格納された共有バッファ８のアドレスを取得する。次に、接続情報格納部１６は、取得されたアドレスを直前にグループ化された複数のパケットに対応付けて、チェーンメモリ９に格納する。
【００３８】
図６−１を用いて、実施例２に係る接続情報格納部１６が行う処理について詳しく説明する。ここで、図６−１は、実施例２に係るチェーン接続を説明するための図（１）である。接続情報格納部１６は、図６−１に示すように、最初のグループに含まれるパケットであるパケット１およびパケット２を格納し、次のグループのパケット３が格納された場合には、パケット３が格納された共有バッファ８のアドレス「Ｙ」を取得する。
【００３９】
次に、接続情報格納部１６は、パケット３の直前にグループ化されたパケット、すなわちパケット１およびパケット２に対して、パケット３のアドレス「Ｙ」を対応付け、チェーンメモリ９に格納する。
【００４０】
そして、接続情報格納部１６は、パケット４を格納した後、パケット５が格納された場合には、パケット５が記憶されたアドレス「Ｚ」を前のグループに含まれるパケット３およびパケット４のチェーンメモリに記憶する。
【００４１】
制御出力部１７は、受信されたパケットがグループの一番最初のパケットであるかを判定する。また、制御出力部１７は、データ格納部１５と接続情報格納部１６とが行う各種処理を制御する。
【００４２】
情報読取部１８は、グループ化されたパケットを所定のアドレス間隔に従って入力順に読取処理を行い、読み出された複数のパケットに対応付けられているアドレスをチェーンメモリ９から取得する。また、情報読取部１８は、共有バッファ８のうち、取得されたアドレスに格納されたパケットを、次のグループに含まれる最初のパケットとして読取を行う。
【００４３】
具体的には、情報読取部１８は、共有バッファ８に記憶されたパケットの読取を行う場合には、Ｈｅａｄメモリ１３に記憶されたアドレスに格納されたパケットの読取を行う。次に、情報読取部１８は、直前に読取を行ったアドレスにαを加算した値のアドレスに格納されたパケットの読取を行う。
【００４４】
また、情報読取部１８は、共有バッファ８に記憶されたパケットの読取を行う場合には、読取を行ったパケットと対応付けられたアドレス値を接続情報記憶部１９から取得する。すなわち、情報読取部は、次のグループに含まれる最初のパケットが格納されたアドレスを取得する。次に、情報読取部１８は、取得されたアドレスに格納されたパケットの読取を行う。
【００４５】
ここで、図６−２を用いて、情報読取部１８が行う処理を詳しく説明する。図６−２は、実施例２に係るチェーン接続を説明するための図（２）である。情報読取部１８は、Ｈｅａｄメモリ１３に格納されたアドレス「Ｘ」を取得し、共有バッファ８のアドレス「Ｘ」に記憶されたパケット１を取得する。次に、情報読取部１８は、共有バッファ８のアドレス「Ｘ＋α」に記憶されたパケット２を取得する。
【００４６】
次に、情報読取部１８は、接続情報記憶部１９から、パケット１およびパケット２に対応付けられたチェーンメモリ「Ｙ」を取得する。そして、情報読取部１８は、共有バッファ８のアドレスＹに記憶されたパケット３を取得する。
【００４７】
以下同様の処理を行うことにより、情報読取部１８は、共有バッファ８に記憶されたパケットを記憶された順番通りに読取し、読取されたパケットを通信装置６へ順次送信する。
【００４８】
接続情報読取部１９は、接続情報読取部９に記憶されたチェーンメモリの読取を行う。具体的には、接続情報読取部１９は、共有バッファ８に記憶されたパケットと対応付けられたアドレス情報の読取を行う。そして、接続情報読取部１９は、読取られたアドレスを情報読取部１８へ送信する。
【００４９】
制御出力部２０は、情報読取部１８と接続情報読取部１９とが行う各種処理の制御を行う。具体的には、制御出力部２０は、情報読取部１８に対して、パケットの読取を指示する。また、制御出力部２０は、接続情報読取部１９に対して、接続情報の読取を指示する。また、制御出力部２０は、接続情報読取部１９がアドレス値の読取を行ったが、読取られたアドレス値にエラーが発生した場合には、接続情報読取部１９に対して、再度アドレス値の読取を指示する。
【００５０】
接続情報読取部１９は、再度アドレス値の読取処理を指示された場合には、情報読取部１８が直前に読取ったパケットのグループに関連付けられたアドレス値の読取を行う。具体的には、接続情報読取部１９は、直前に読取を行ったチェーンメモリ９のアドレスにαを加算したアドレスの情報を読取る。
【００５１】
ここで、図６−２を用いて、読取制御部２２の処理の流れを具体的に説明する。読取制御部２２は、Ｈｅａｄメモリ１３に格納されたアドレス「Ｘ」を用いて、共有バッファ８のアドレス「Ｘ」に記憶されていたパケット１を取得する。次に読取制御部２２は、アドレス「Ｘ」にαを加算したアドレス「Ｘ＋α」に記憶されていたパケット２を取得する。ここで、読取制御部２２は、パケット１およびパケット２に対応付けられていたアドレス「Ｙ」を取得する。
【００５２】
そのため、読取制御部２２は、パケット２の次に読取処理をおこなうパケットが格納されている記憶領域が、アドレス「Ｙ」であると識別できる。次に、読取制御部は、アドレス「Ｙ」に記憶されていたパケット３およびアドレス「Ｙ＋α」に記憶されていたパケット４を取得する。
【００５３】
ここで、図６−２に示すように、読取制御部２２は、パケット３に対応付けられたアドレス値にエラーが発生した場合でも、同一グループ内のパケット４に対応付けられたアドレス「Ｚ」を用いて、次に読取処理を行う記憶領域を識別する。すなわち、パケット伝送装置は、一つのグループに含まれるパケットに対して、次のグループに含まれるパケットのアドレスを二重に冗長化して記憶している。そして、パケット伝送装置は、グループ化されたパケットに対応付けられたアドレス値の一つにエラーが生じた場合にも、同一グループの他のパケットに対応付けられたアドレス値を用いて、次に読取処理を行うパケットを識別する。
【００５４】
次に、図７を用いて、実施例２に係る書込制御部２１が行う書込処理を説明する。ここで、図７は、実施例２に係る書込制御部が行う書込処理を説明するための図である。
【００５５】
まず最初に、制御出力部１７は、通信装置６からパケットを受信した場合には、受信されたパケットがグループの最初のパケットであるかを判断する。具体的には、制御出力部１７は、受信されたパケットの数をカウントする。そして、制御出力部１７は、カウンタ回路のカウンタが奇数の場合には、受信されたパケットがグループの最初のパケットであると判断する。一方、制御出力部１７は、カウンタ回路のカウンタが偶数の場合には、受信されたパケットがグループの最後のパケットであると判断する。
【００５６】
制御出力部１７は、受信されたパケットがグループの最初のパケットである場合には、出力回路を用いて、空きアドレス管理メモリ７に対し、空きアドレスをデータ格納部１５および接続情報格納部１６に対して送信するように要求する。一方、制御出力部１７は、受信されたパケットがグループの最後のパケットである場合には、空きアドレス管理メモリ７に対して、空きアドレスを送信するように要求しない。制御出力部１７は、出力回路を用いて、受信されたパケットを記憶させるようにデータ格納部１５に要求する。
【００５７】
また、制御出力部１７は、接続情報格納部１６に対して、接続情報記憶部を記憶させるように要求する。具体的には、制御出力部１７は、新たなグループの最初のパケットを受信した場合には、接続情報格納部１６に対して、新たなグループの最初のパケットのアドレスを、前のグループに含まれる各パケットの接続情報記憶部として記憶するように要求する。
【００５８】
空きアドレス管理メモリ７は、制御出力部１７から空きアドレスを送信するように要求された場合には、空きアドレスをデータ格納部１５および接続情報格納部１６に対して送信する。データ格納部１５は、空きアドレス管理メモリ７から送信された空きアドレスを受信した場合には、受信されたアドレスを選択回路に格納する。
【００５９】
また、データ格納部１５は、通信装置から送信されたパケットを選択回路に格納する。次に、データ格納部１５は、制御出力部２０からパケットの書込要求を取得した場合には、共有バッファ８に対して、受信されたパケットを受信されたアドレスに記憶させる。
【００６０】
また、データ格納部１５は、記憶されたパケットがチェーンメモリ９によって接続される最初のパケットである場合には、パケットを記憶したアドレスをＨｅａｄメモリ１３およびＴａｉｌメモリ１４に格納する。また、データ格納部１５は、記憶されたパケットがチェーンメモリ９によって接続される最初のパケットではない場合には、パケットを記憶したアドレスをＴａｉｌメモリ１４に格納する。また、パケット格納部は、パケットを記憶させた場合には、蓄積カウンタ２３の値を１つ加算する。
【００６１】
一方、データ格納部１５は、グループの最後のパケットを受信し、制御出力部１７から共有バッファ８に記憶する旨の要求を受信した場合には、直前にパケットを記憶させたアドレスにαを加算した値のアドレスに、受信したパケットを記憶させる。
【００６２】
接続情報格納部１６は、空きアドレスを受信した場合には、保持回路に空きアドレスを格納し、同時に、空きアドレスを選択回路に送信する。また、接続情報格納部１６は、新たなアドレスを受信した場合には、保持回路に保持されたアドレスと、保持回路に保持されたアドレスにαを加算した値とを選択回路に格納する。また、接続情報格納部１６は、新たに受信したアドレスを保持回路に格納し、同時に、新たに受信したアドレスを選択回路に送信する。
【００６３】
接続情報格納部１６は、制御出力部１７からアドレス値を記憶させる要求を受信した場合には、選択回路に格納された３つのアドレスを用いてアドレス値を記憶させる。すなわち、接続情報格納部１６は、直前に空きアドレス管理メモリ７から受信したアドレスと、当該アドレスにαを加算したアドレスとに対して、新たに受信したアドレスを記憶させる。
【００６４】
次に、図８を用いて、実施例２に係る読取制御部２２が行う読取処理を説明する。ここで、図８は、実施例２に係る読取制御部が行う読取処理を説明するための図である。
【００６５】
制御出力部２０は、読取処理を行う場合には、情報読取部１８および接続情報読取部１９に対して、パケットの読取要求を行う。ここで、読取し処理の開始となる契機の一例としては、通信装置からの要求や、共有バッファ８に記憶されたパケットのＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を用いてもよい。
【００６６】
制御出力部２０は、カウンタ回路を用いて、読取られるパケットが、チェーンメモリ９によってチェーン接続された最初のパケットであるかどうかを判別する。制御出力部２０は、読取られるパケットが最初のパケットである場合には、情報読取部１８に対して読取要求を行う。また、制御出力部２０は、カウンタ回路を用いて、読取られるパケットがグループの最初のパケットであるかを判別する。
【００６７】
また、制御出力部２０は、接続情報読取部１９によって読取られたアドレス値にエラーが発生した場合には、接続情報読取部１９に対して、新たなアドレス値の読込要求を行う。具体的には、制御出力部２０は、読取られたアドレス値にエラーが発生した場合には、接続情報読取部１９に対して、読取られたアドレス値に対応付けられたパケットと同じグループのパケットに対応付けられたアドレス値の読取を要求する。
【００６８】
情報読取部１８は、共有バッファ８に記憶されたパケットの読取を行う。具体的には、情報読取部１８は、チェーン接続された一番最初のパケットを読取る場合には、共有バッファ８に記憶されたパケットのうち、Ｈｅａｄメモリ１３に格納されたアドレスを取得する。次に情報読取部１８は、共有バッファ８の取得されたアドレスに記憶されたパケットを読取する。次に情報読取部１８は、読取られたパケットを通信装置へ送信する。
【００６９】
また、情報読取部１８は、直前に読取処理を行ったアドレスにαを加算したアドレスを用いて、共有バッファ８から次のパケット、すなわち、グループの最後のパケットを読取し、通信装置へ送信する。また、情報読取部１８は、グループの最初のパケットを読取る場合には、書込処理に利用するため、空きアドレス管理メモリ７に対して、読取処理を行ったアドレスを追加する。また、情報読取部１８は、グループの最初のパケットを読取った場合には、読取処理を行ったアドレスを接続情報読取部１９に送信する。
【００７０】
情報読取部１８は、パケットの読取処理を行った場合には、蓄積カウンタ２３に格納された値を１だけ減算する。そして情報読取部１８は、蓄積カウンタ２３が「０」になった場合には、読取処理を終了する。
【００７１】
接続情報読取部１９は、情報読取部１８から取得したアドレスを用いて、関連付けられたアドレス値の読取処理を行う。具体的には、接続情報読取部１９は、チェーンメモリ９が有する記憶領域のうち、情報読取部１８から取得したアドレスと同じアドレスに格納されている情報を読取る。次に、接続情報読取部１９は、読取られた情報のエラーチェックを行う。接続情報読取部１９は、読取られた情報にエラーが発生していない場合には、読み出された情報を情報読取部１８へ送信する。
【００７２】
一方、接続情報読取部１９は、読取られた情報にエラーが発生している場合には、エラーが発生している旨を制御出力部２０に通知する。制御出力部２０は、エラーが発生している旨の通知を受けた場合には、接続情報読取部１９に対して、グループに含まれる他のパケットと関連付けられたアドレス値の読取を要求する。
【００７３】
接続情報読取部１９は、再度の読取要求を受けた場合には、直前に読取を行ったアドレスにαを加算したアドレスを加算器を用いて取得する。そして、接続情報読取部１９は、取得されたアドレスに記憶されたチェーンメモリ９を取得する。次に、接続情報読取部１９は、新たに取得されたチェーンメモリ９にエラーが発生しているかどうかを判別する。
【００７４】
接続情報読取部１９は、新たに取得されたチェーンメモリ９にエラーが発生している場合には、制御出力部２０に通知する。制御出力部２０は、グループに含まれるパケットと関連付けられた全チェーンメモリ９にエラーが発生している場合には、読取処理を中止する。
【００７５】
次に、図９を用いて、データ伝送装置１０が行う書込処理の流れについて説明する。ここで、図９は、実施例２に係る書込処理を説明するための表フローチャートである。まず、データ伝送装置１０は、記憶する情報を取得したことを契機として、書込処理を開始する。
【００７６】
制御出力部２０は、通信装置６からパケットを受信した場合には（ステップＳ１０１肯定）、パケットがグループ内で最初のパケットとなるかを判別する（ステップＳ１０２）。
【００７７】
パケットがグループ内で最初のパケットである場合には（ステップＳ１０２肯定）、データ格納部１５は、空きアドレス管理メモリ７から空きアドレスを取得する（ステップＳ１０３）。次に、データ格納部１５は、取得したアドレスにパケットを記憶するように、記憶部１１に対して要求する（ステップＳ１０４）。
【００７８】
次に、制御出力部２０は、記憶されたパケットのグループが最初のグループかを判別する（ステップＳ１０５）。接続情報格納部１６は、記憶されたパケットのグループが、最初のグループである場合には（ステップＳ１０５肯定）、処理を行わない。その後、データ伝送装置１０は、書込み処理を終了する。
【００７９】
一方、接続情報格納部１６は、記憶されたパケットのグループが最初のグループではない場合には（ステップＳ１０５否定）、前グループの各パケットに対して、ステップＳ１０４のアドレスを接続情報記憶部として記憶部１１に記憶させる（ステップＳ１０６）。その後、データ伝送装置１０は、書込み処理を終了する。
【００８０】
一方、データ格納部１５は、記憶されるパケットがグループ内で最初のパケットではない場合には（ステップＳ１０２否定）、記憶部１１に対して、直前に記憶したパケットのアドレスにαを加算したアドレスにパケットを記憶するよう要求する（ステップＳ１０７）。その後、データ伝送装置１０は、書込み処理を終了する。
【００８１】
次に、図１０を用いて、実施例２に係る読取処理の流れについて説明する。ここで、図１０は、実施例２に係る読取処理の流れを説明するためのフローチャートである。まず、データ伝送装置１０は、記憶されたパケットが送信できることをトリガとして読取処理を開始する。
【００８２】
まず、制御出力部２０は、パケットを送信可能かどうかを判別する（ステップＳ２０１）。次に、制御出力部２０は、パケットが送信可能な場合には（ステップＳ２０１肯定）、カウンタ回路を用いて、読取するパケットがグループ内で最初のパケットか否かを判別する（ステップＳ２０２）。制御出力部２０は、読取するパケットがグループ内で最初のパケットである場合には（ステップＳ２０２肯定）、読取するパケットが接続された全パケットの先頭パケットであるかを判別する（ステップＳ２０３）。
【００８３】
情報読取部１８は、読取するパケットが接続された全パケットの先頭パケットである場合には（ステップＳ２０３肯定）、Ｈｅａｄメモリ１３に格納されているアドレスを用いて、共有バッファ８からパケットの読出しを行う（ステップＳ２０９）。次に、情報読取部１８は、読取されたパケットを通信装置へ送信し（ステップＳ２１１）、処理を終了する。
【００８４】
接続情報読取部１９は、読取するパケットが接続された全パケットの先頭パケットではない場合には（ステップＳ２０３否定）、前回読取を行ったパケットに関連付けられたチェーンメモリ９が示すアドレスを取得する（ステップＳ２０４）。次に、接続情報読取部１９は、取得されたアドレスにエラーが発生しているかを判別する（ステップＳ２０５）。
【００８５】
情報読取部１８は、取得されたアドレスにエラーが発生していない場合には（ステップＳ２０５否定）、取得されたアドレスを用いて、共有バッファ８からパケットの読取処理を実行する（ステップＳ２０８）。次に、情報読取部１８は、読取されたパケットを通信装置へ送信し（ステップＳ２１１）、処理を終了する。
【００８６】
一方、接続情報読取部１９は、取得されたアドレスにエラーが発生している場合には（ステップＳ２０５肯定）、読取処理を行ったアドレスにαを加算したアドレスのチェーンメモリ９が示すアドレスを取得する（ステップＳ２０６）。次に、接続情報読取部１９は、再度取得したアドレスにエラーが発生しているかどうかを判別する（ステップＳ２０７）。データ伝送装置１０は、再度取得したアドレスにエラーが発生している場合には（ステップＳ２０７肯定）、読取処理を終了する。
【００８７】
一方、情報読取部１８は、再度取得されたアドレスにエラーが発生していない場合には（ステップＳ２０７否定）、再度取得されたアドレスを用いて、共有バッファ８からパケットの読取処理を実行する（ステップＳ２０８）。次に、情報読取部１８は、読取されたパケットを通信装置へ送信し（ステップＳ２１１）、処理を終了する。
【００８８】
また、情報読取部１８は、読取するパケットがグループ内で最初のパケットではない場合には（ステップＳ２０２否定）、前回読取を行ったアドレスにαを加算したアドレスを用いて、共有バッファ８からパケットの読取を行う（ステップＳ２１０）。次に、情報読取部１８は、読取されたパケットを通信装置６へ送信し（ステップＳ２１１）、処理を終了する。
【００８９】
[実施例２の効果]
上述してきたように、実施例２に係るデータ伝送装置１０は、２つの情報を１つのグループとして記憶させ、グループに含まれる複数の情報に対して、次のグループに含まれるパケットが記憶されたアドレス値を関連付けて記憶する。
【００９０】
そのため、データ伝送装置１０は、次のパケットを示すアドレスを二重化し、チェーンメモリ９にエラーが発生した場合であっても、パケットの順序関係を失わない。例えば、データ伝送装置１０は、グループのパケットに対応付けられたアドレス値にエラーが発生した場合であっても、同じグループの他のパケットに対応付けられたアドレス値を用いて、パケットの順序関係を保つことができる。
【００９１】
よって、データ伝送装置１０は、パケットの順序関係を高速で復旧することができる。また、データ伝送装置１０は、チェーンメモリ９にエラーが発生した場合にも、接続情報記憶部の復旧に何ら新しい装置や複雑な処理等を必要とすることなく、エラーに対処することができる。
【実施例３】
【００９２】
これまで実施例１について説明したが、上述した実施例１および実施例２以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例３として本実施例に含まれる他の実施例を説明する。
【００９３】
（１）グループに含まれるパケットの数について
実施例１および実施例２に開示の技術では、一つのグループとして関連付けられるパケット数の一例として、２つのパケットを一つのグループとして関連付けていた。しかし、実施例３に開示する技術はこれに限定されるものではなく、別の数でも良い。
【００９４】
例えば、実施例３に開示の技術は、一つのグループとして３つのパケットを関連付けてもよいし、４つのパケットを関連付けてもよい。また、実施例３に開示の技術は、一つのグループに含まれるパケットと同じ数に共有バッファの記憶領域を分割し、分割された各記憶領域を関連付ける。
【００９５】
グループに含まれる複数のパケットの順序性を保持し、グループに含まれる複数のパケットに対して、次のグループを示す情報を対応付けることができれば目的を達することができるからである。
【００９６】
（２）複数のパケットに関連づけられる接続情報の数について
実施例１および実施例２に開示の技術では、一つのグループに含まれる全てのパケットに対して、次のグループの最初のパケットのアドレス値を関連付けていた。しかし、実施例３に開示の技術は、これに限定されるものではない。
【００９７】
例えば、一つのグループに含まれるパケットの数が３である場合には、一つのグループに含まれる２つのパケットのみに、アドレス値を関連付けてもよい。グループに含まれるパケットに対して、接続情報が複数関連付けられていれば、接続情報の冗長化は達成される。
【００９８】
結果として、接続情報にエラーが発生してもパケットの順序性を保持することができ、発明の目的を達することができるからである。また、アドレス値を記憶するために必要なメモリの量を節約することができるという効果を奏する。
【００９９】
（３）グループ化するパケットについて
実施例１および実施例２では、パケットが入力された順番を保持するために、一つのチェーン接続を有していた。しかし、実施例３に開示の技術は、これに限定されるものではなく、パケットの種別ごとに、複数のチェーン接続を有しても良い。例えば、実施例３に開示の技術は、パケットが送信される通信装置ごとに複数のチェーン接続を有してもよい。
【０１００】
すなわち、実施例３に開示の技術は、送信先ごとに分けられたパケットをグループ化し、グループ化されたパケットをチェーン接続してもよい。さらに、パケットを送信する場合には、送信先ごとに定められたパケットのＱｏＳを用いて、優先順位の高いチェーン接続された複数のパケットから送信しても良い。
【０１０１】
（４）プログラム
なお、本実施例で説明したパケット管理装置は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１０２】
１  データ管理装置
２  データ格納部
３  接続情報格納部
４  データ記憶部
５  接続情報格納部
６  通信装置
７  空きアドレス管理メモリ
８  共有バッファ
９  チェーンメモリ
１０  データ伝送装置
１１  記憶部
１２  共有バッファ制御部
１３  Ｈｅａｄメモリ
１４  Ｔａｉｌメモリ
１５  データ格納部
１６  接続情報格納部
１７  制御出力部
１８  情報読取部
１９  接続情報読取部
２０  制御出力部
２１  書込制御部
２２  読取制御部
２３  蓄積カウンタ
【図１】
2010278775.tif 000003
【図２】
2010278775.tif 000004
【図３】
2010278775.tif 000005
【図４】
2010278775.tif 000006
【図５】
2010278775.tif 000007
【図６−１】
2010278775.tif 000008
【図６−２】
2010278775.tif 000009
【図７】
2010278775.tif 000010
【図８】
2010278775.tif 000011
【図９】
2010278775.tif 000012
【図１０】
2010278775.tif 000013
【図１１】
2010278775.tif 000014
【図１２】
2010278775.tif 000015
【図１３】
2010278775.tif 000016