(57)【要約】【課題】フレームを結合する際に誤りを検出することを課題とする。【解決手段】分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納し、フレーム結合情報を用いて分割されたフレームを結合する場合に、所定の記憶部に格納された識別子を用いて、結合関係が正しいか否かを判定する。具体的には、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を所定の記憶部に格納し、フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、結合関係が正しいか否かを判定する。【選択図】        図１
2008278241.tif 000002
【特許請求の範囲】
【請求項１】
送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置であって、
前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手段と、
前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手段と、
を備えたことを特徴とする伝送装置。
【請求項２】
前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、前記分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を所定の記憶部に格納し、
前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、前記結合関係が正しいか否かを判定することを特徴とする請求項１に記載の伝送装置。
【請求項３】
前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子として、当該他のフレームが格納されている単位バッファを一意に特定する情報を所定の記憶部に格納し、
前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、後段となるフレームの前方識別子で特定される単位バッファに、前段となるフレームが格納されているか否かを判定することで、前記結合関係が正しいか否かを判定することを特徴とする請求項１に記載の伝送装置。
【請求項４】
前記分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納する復旧用識別子格納手段と、
前記フレーム結合情報を用いて結合される二つのフレームの間で、前記結合判定手段によって前記結合関係が正しくないと判定された場合に、前記所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御する結合制御手段と、
をさらに備えたことを特徴とする請求項１〜３のいずれか一つに記載の伝送装置。
【請求項５】
前記単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を所定の記憶部に格納する格納情報格納手段と、
前記単位バッファごとに、前記所定の記憶部に格納された格納情報を監視して、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定する格納時間判定手段と、
前記格納時間判定手段によって所定の単位バッファについて所定の時間が経過したと判定された場合に、当該所定の単位バッファを開放してフレームが格納されていないようにする単位バッファ開放手段と、
をさらに備えたことを特徴とする請求項１〜４のいずれか一つに記載の伝送装置。
【請求項６】
送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する伝送装置制御方法であって、
前記伝送装置が、前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納工程と、
前記伝送装置が、前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定工程と、
を含んだことを特徴とする伝送装置制御方法。
【請求項７】
送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する方法をコンピュータに実行させる伝送装置制御プログラムであって、
前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手順と、
前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手順と、
をコンピュータに実行させることを特徴とする伝送装置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、伝送装置、伝送装置制御方法、および伝送装置制御プログラムに関する。
【背景技術】
【０００２】
従来より、受信したフレームを他の伝送装置に送信する際に、フレームを受信してから送信するまでの間このフレームをバッファする伝送装置（例えば、スイッチなど）がある。このような伝送装置では、送信キューごとにメモリを配置するのではなく、メモリを固定サイズの複数の領域に仕切ることによって、すべての送信キューが一つのメモリを用いる共通バッファ方式が主に用いられている。このような共通バッファ方式を採用した伝送装置では、固定サイズの領域（単位バッファ）に仕切られて用いられるバッファを効率よく使用することを目的として、様々な工夫がされている。
【０００３】
例えば、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）やＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）を用いてフレームをバッファする伝送装置がある。このような伝送装置では、容量の問題からＦＰＧＡやＡＳＩＣの外部にメモリチップを実装し、また、このメモリチップを実装する際には、送信キューごとにメモリを配置するのではなく、一つのメモリに全ての送信キューを格納する共通バッファ方式が主に採用されている。
【０００４】
また、例えば、図２１に示すように、共通バッファ方式を採用した伝送装置では、固定サイズの領域である単位バッファごとに共通バッファを仕切られ、また、各単位バッファをそれぞれ一意に識別するための情報が割り振られる。そして、フレームを受信すると、このフレームが単位バッファより大きい場合には分割し、その後、単位バッファに格納する（図２１参照）。そして、図２２に示すように、単位バッファごとに、共通バッファにおいてどの領域（単位バッファ）がフレーム（データ）未格納領域かを示す空き情報を記憶し（図２２の「空き情報管理テーブル」参照）、受信したフレームごとに、分割されて格納されたフレームにおける先頭のフレームが格納された単位バッファの位置と最後尾のフレームが格納された単位バッファの位置とを示すキューポインタ情報を記憶し（図２２の「キューポインタ管理テーブル」参照）、分割されたフレームごとに、分割されたフレームの格納先を管理する情報として、分割されたフレームにおいて最後尾のフレームかを示す情報と、後方部に結合するフレームが格納された単位バッファの位置とを示す結合情報を記憶する（図２２の「結合情報管理テーブル」参照）。なお、図２１および図２２は、従来技術に係る共通バッファ方式を説明するための図である。
【０００５】
そして、例えば、図２２に示すように、共通バッファ方式においては、単位バッファに格納されたフレームを結合して読み出す際に、伝送装置は、まず、分割されたフレームにおいて先頭のフレームが格納された単位バッファの位置を取得する（図２２の（１）に示す例では「２」を取得する）。その後、取得した先頭のフレームが格納された単位バッファの位置から、結合情報を順に取得する（図２２の（２）〜（４）に示す例では、「ＥＯＱ：０、Ｎｅｘｔ：５」「ＥＯＱ：０，Ｎｅｘｔ：８」「ＥＯＱ：１、Ｎｅｘｔ：（ナシ）」を取得する）。ここで、最後尾のフレームを示す情報（図２２に示す例では、「ＥＯＱ＝１」）を取得すると、取得した結合情報に基づいて、順にフレームを読み出して結合し、フレームを読み出した単位バッファを未格納領域として空き情報管理テーブルに書き込み（図２２の（５）参照）、結合処理を無事終了する。
【０００６】
例えば、特許文献１では、バッファの各領域（単位バッファ）における状態（例えば、データが格納されているか否か、格納されているデータが複数の単位バッファを使用しているか否か）を表す種別と、バッファにおける対応する領域（単位バッファ）を示す情報とを対応付けて記憶してバッファを管理する技術が開示されている。
【０００７】
【特許文献１】特開平４−３３３９４６号公報（第１−２頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、上記した従来の技術は、フレームを結合する際に誤りを検出することができないという課題があった。そして、その結果、誤った結合処理を行うことにより、結合処理が暴走する（ループ状態に陥る）という課題があった。
【０００９】
例えば、図２２に示す例では、フレームを結合する際に、運用中の設定変更やノイズなどにより誤った結合情報を取得した場合に、例えば、図２２の（６）に示すように、「５」についての結合情報を取得した後に、適切な単位バッファのアドレスである「８」ではなく「７」を誤って取得した場合に、適切な単位バッファのアドレスではないことを認識できないという課題があった。また、その結果、例えば、図２２の（６）に示すように、取得するはずであった「ＥＯＱ＝１」を取得することができないために、処理が終了せず、その後さらに、「７」の後方部に結合するフレームが格納された単位バッファの位置として「９」を取得して結合処理が続行することにより、結合処理が暴走する（ループ状態に陥る）という課題があった。
【００１０】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、フレームを結合する際に誤りを検出することが可能である伝送装置、伝送装置制御方法および伝送装置制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置であって、前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手段と、前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手段と、を備えたことを特徴とする。
【００１２】
また、請求項２に係る発明は、上記の発明において、前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、前記分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を所定の記憶部に格納し、前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、前記結合関係が正しいか否かを判定することを特徴とする。
【００１３】
また、請求項３に係る発明は、上記の発明において、前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子として、当該他のフレームが格納されている単位バッファを一意に特定する情報を所定の記憶部に格納し、前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、後段となるフレームの前方識別子で特定される単位バッファに、前段となるフレームが格納されているか否かを判定することで、前記結合関係が正しいか否かを判定することを特徴とする。
【００１４】
また、請求項４に係る発明は、上記の発明において、前記分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納する復旧用識別子格納手段と、前記フレーム結合情報を用いて結合される二つのフレームの間で、前記結合判定手段によって前記結合関係が正しくないと判定された場合に、前記所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御する結合制御手段と、をさらに備えたことを特徴とする。
【００１５】
また、請求項５に係る発明は、上記の発明において、前記単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を所定の記憶部に格納する格納情報格納手段と、前記単位バッファごとに、前記所定の記憶部に格納された格納情報を監視して、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定する格納時間判定手段と、前記格納時間判定手段によって所定の単位バッファについて所定の時間が経過したと判定された場合に、当該所定の単位バッファを開放してフレームが格納されていないようにする単位バッファ開放手段と、をさらに備えたことを特徴とする。
【００１６】
また、請求項６に係る発明は、送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する伝送装置制御方法であって、前記伝送装置が、前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納工程と、前記伝送装置が、前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定工程と、を含んだことを特徴とする。
【００１７】
また、請求項７に係る発明は、送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する方法をコンピュータに実行させる伝送装置制御プログラムであって、前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手順と、前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１８】
請求項１、６および７の発明によれば、伝送装置は、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納し、フレーム結合情報を用いて分割されたフレームを結合する場合に、所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定するので、フレームを結合する際に誤りを検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する（例えば、処理を終了する、処理を中断する、処理を停止するなど）ことにより、誤った結合処理を行うことにより処理が暴走する（ループ状態に陥る）ことを防止することが可能である。
【００１９】
また、請求項２の発明によれば、伝送装置は、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、前記分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を所定の記憶部に格納し、フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、前記結合関係が正しいか否かを判定するので、フレームを結合する際に誤りを確実に検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する（例えば、処理を終了する、処理を中断する、処理を停止するなど）ことにより、誤った結合処理を行うことにより処理が暴走する（ループ状態に陥る）ことを防止することが可能である。
【００２０】
また、請求項３の発明によれば、伝送装置は、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子として、当該他のフレームが格納されている単位バッファを一意に特定する情報を所定の記憶部に格納し、フレーム結合情報を用いて結合される二つのフレームについて、後段となるフレームの前方識別子で特定される単位バッファに、前段となるフレームが格納されているか否かを判定することで、結合関係が正しいか否かを判定するので、識別子を一つ付与するのみで、フレームを結合する際に誤りを確実に検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する（例えば、処理を終了する、処理を中断する、処理を停止するなど）ことにより、誤った結合処理を行うことにより処理が暴走する（ループ状態に陥る）ことを防止することが可能である。
【００２１】
また、請求項４の発明によれば、伝送装置は、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納し、フレーム結合情報を用いて結合される二つのフレームの間で、結合判定手段によって前記結合関係が正しくないと判定された場合に、所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御するので、結合先が正しいか否かを判定できるだけでなく、結合先が誤っている場合には、正しい結合先を読み出すことで結合処理を復旧することが可能である。
【００２２】
また、請求項５の発明によれば、伝送装置は、単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を所定の記憶部に格納し、単位バッファごとに、前記所定の記憶部に格納された格納情報を監視して、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定し、所定の単位バッファについて所定の時間が経過したと判定された場合に、当該所定の単位バッファを開放してフレームが格納されていないようにするので、開放されるべきにもかかわらず開放されていない領域を開放することができ、バッファ資源を有効に活用することが可能である。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照して、この発明に係る伝送装置、伝送装置制御方法、および伝送装置制御プログラムの実施例を詳細に説明する。なお、以下では、本実施例に係る伝送装置の概要および特徴、伝送装置の構成および処理の流れを順に説明する。
【実施例１】
【００２４】
［伝送装置の概要および特徴］
まず最初に、図１を用いて、本実施例に係る伝送装置の概要および特徴を説明する。図１は、実施例１に係る伝送装置の概要および特徴を説明するための図である。
【００２５】
同図に示すように、実施例１に係る伝送装置は、図１の「結合情報管理テーブル」に示すように、分割されたフレームごとに、分割されたフレームの格納先を管理する情報を記憶する。具体的には、分割されたフレームにおいて最後尾のフレームか否かを示す「ＥＯＱ」情報と、後方部に結合するフレームが格納された単位バッファの位置を示す「Ｎｅｘｔ」とを対応付けて記憶する。
【００２６】
そして、実施例１に係る伝送装置は、送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として結合情報管理テーブルに格納する。具体的には、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納した場合には、「ＥＯＱ：０」と「Ｎｅｘｔ：５」とを単位バッファ「２」に対応させて格納し、「ＥＯＱ：０」と「Ｎｅｘｔ：８」とを単位バッファ「５」に対応させて格納し、「ＥＯＱ：１」と「Ｎｅｘｔ：（ナシ）」とを単位バッファ「８」に対応させて格納する。
【００２７】
そして、実施例１に係る伝送装置は、フレーム結合情報を用いて分割されたフレームを結合して送信する。具体的には、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納した場合には、例えば、単位バッファ「２」を読み出し、そして、単位バッファ「２」の「Ｎｅｘｔ：５」に対応する単位バッファ「５」を読み出し、その後、単位バッファ「５」の「Ｎｅｘｔ：８」に対応する単位バッファ「８」を読み出し、続いて、単位バッファ「２」「５」「８」に格納されたフレームを順に読み出して結合して送信する。
【００２８】
このような概要を有する伝送装置は、以下で説明するように、フレームを結合する際に誤りを検出することが可能であり、誤った結合処理を行うことにより処理が暴走する（ループ状態に陥る）のを防止することが可能である点に主たる特徴がある。
【００２９】
すなわち、実施例１に係る伝送装置は、図１の「識別子情報管理テーブル」に示すように、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を識別子情報管理テーブルに格納する。
【００３０】
具体的に例をあげれば、図１に示す例では、実施例１に係る伝送装置は、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納した場合には、単位バッファ「２」の「Ｎｅｘｔ  Ｃｏｄｅ」に格納する前方識別子と、単位バッファ「５」の「Ｂｅｆｏｒｅ  Ｃｏｄｅ」に格納する後方識別子とに同一の情報（例えば、「１２３」）を格納し、また、単位バッファ「５」の「Ｎｅｘｔ  Ｃｏｄｅ」に格納する前方識別子と、単位バッファ「８」の「Ｂｅｆｏｒｅ  Ｃｏｄｅ」に格納する後方識別子とに同一の情報（例えば、「５４２」）を格納する。
【００３１】
そして、実施例１に係る伝送装置は、フレーム結合情報を用いて分割されたフレームを結合する場合に、識別子情報管理テーブルに格納された識別子を用いて、結合関係が正しいか否かを判定する。具体的には、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となる否かを判定する。そして、例えば、結合関係が正しいと判定した際には、結合処理を続行し、結合関係が正しくないと判定した際には処理を終了する。
【００３２】
より詳細には実施例１に係る伝送装置は、「Ｎｅｘｔ」によって導きだされた二つのフレーム間で、「Ｎｅｘｔ  Ｃｏｄｅ」と「Ｂｅｆｏｒｅ  Ｃｏｄｅ」とを判定する。具体的に例をあげれば、図１に示す例では、図１の（１）に示すように、「Ｎｅｘｔ：５」に応じて単位バッファ「５」が導き出された場合には、単位バッファ「２」の「Ｎｅｘｔ  Ｃｏｄｅ：１２３」と単位バッファ「５」の「Ｂｅｆｏｒｅ  Ｃｏｄｅ：１２３」とが同一になり（比較一致）、結合関係が正しいと判定する。一方、図１の（２）に示すように、「Ｎｅｘｔ：８」に応じて誤って（誤認識）単位バッファ「７」が導き出された場合には、単位バッファ「５」の「Ｎｅｘｔ  Ｃｏｄｅ：５４２」と単位バッファ「７」の「Ｂｅｆｏｒｅ  Ｃｏｄｅ：６９７」とが同一にならず（比較不一致）、結合関係が正しくないと判定する。そして、例えば、結合関係が正しいと判定した際には、結合処理を続行し、結合関係が正しくないと判定した際には処理を終了する。
【００３３】
このようなことから、実施例１に係る伝送装置は、上記した主たる特徴の如く、フレームを結合する際に誤りを検出することが可能である。そして、誤りである旨の判定結果を得た場合に対処する（例えば、処理を終了する、処理を中断する、処理を停止するなど）ことにより、誤った結合処理を行うことにより処理が暴走する（ループ状態に陥る）ことを防止することが可能である。
【００３４】
［実施例１における伝送装置の構成］
次に、図２を用いて、実施例１に係る伝送装置の構成を説明する。図２は、実施例１における伝送装置の構成を示すブロック図である。同図に示すように、この伝送装置は、フレーム入力部１０と、フレーム出力部２０と、制御部３０と、記憶部４０を備えている。なお、本実施例に示す伝送装置の構成に関する説明は、本実施例に密接に関連する箇所のみを重点的に説明し、その他の構成に係る説明は、従来の伝送装置と同様であるため、省略または簡潔に行う。
【００３５】
フレーム入力部１０は、他の伝送装置からフレームを受信する。また、フレーム出力部２０は、後述する読み出し部３３によって結合されたフレームを他の伝送装置に対して出力する。
【００３６】
記憶部４０は、制御部３０による各種処理に必要なデータを格納し記憶する。特に本発明に密接に関連するものとしては、共通バッファ４１と、キューポインタ記憶部４２と、結合情報記憶部４３と、識別子記憶部４４と、空き情報記憶部４５とを備える。
【００３７】
共通バッファ４１は、複数の単位バッファによって構成され、受信したフレームをバッファし、メモリなどによって構成される。具体的には、固定サイズの領域である単位バッファによって仕切られ、また、共通バッファを構成する各単位バッファには、それぞれの単位バッファを一意に識別するための情報が割り振られている。
【００３８】
キューポインタ記憶部４２は、受信したフレームごとに、キューポイント情報を記憶する。具体的には、図３に示すように、受信したフレームごとに、受信したフレームを送信する送信キューを一意に特定する番号を示す「送信キュー番号」と、該当する送信キュー内のキューポインタを一意に特定する番号を示す「キューポインタ番号」とに対応付けて、分割されたフレームにおける先頭となるフレームが格納された単位バッファを一意に特定するアドレスを示す「Ｈｅａｄ」と、分割されたフレームにおける最後尾となるフレームが格納された単位バッファを一意に特定するアドレスを示す「Ｔａｉｌ」とを「キューポインタ管理テーブル」に記憶する。さらに、各送信キューごとに、フレームを書き込む際にいずれのキューポインタ番号を現に使用しているかを示す「キューポインタ書き込み側アドレス」と、各送信キューごとに、フレームを読み出す際にいずれのキューポインタ番号を現に使用しているかを示す「キューポインタ読み出し側アドレス」とを、送信キューごとにいずれかのキューポインタ番号と対応付けて「キューポインタ管理テーブル」に記憶する。
【００３９】
例えば、図３に示す例では、キューポインタ記憶部４２は、送信キュー「２」のフレームがキューポインタ「３」に格納される際に、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納された場合、すなわち、先頭のフレームを単位バッファ「２」に格納して最後尾のフレームを「８」に格納した場合には、「送信キュー２」と「キューポインタ番号：３」とに対応付けて、「Ｈｅａｄ：２」と「Ｔａｉｌ：８」とを「キューポインタ管理テーブル」に記憶する。なお、図３は、実施例１におけるキューポインタ記憶部に記憶されるキューポインタの一例を示す図である。
【００４０】
結合情報記憶部４３は、分割されたフレームごとに、分割されたフレームの格納先を管理する情報を記憶する。具体的には、図４に示すように、単位バッファごとに、単位バッファを一意に特定するアドレスを示す「単位バッファアドレス」と、当該単位バッファアドレスに格納されたフレームが分割されたフレームにおいて最後尾のフレームか否かを示す「ＥＯＱ」と、当該単位バッファアドレスに格納されたフレームの後方部に結合するフレームが格納された単位バッファの位置を示す「Ｎｅｘｔ」とを対応付けて「結合情報管理テーブル」に記憶する。例えば、図４に示す例では、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納された場合、すなわち、先頭のフレームが「２」に格納され、「２」の後方部に結合するフレームが「５」に格納され、「５」の後方部に結合するフレーム（最後尾のフレーム）が「８」に格納された場合には、「単位バッファアドレス：２」に対応付けて「ＥＯＱ：０」と「Ｎｅｘｔ：５」とを記憶し、「単位バッファアドレス：５」に対応付けて「ＥＯＱ：０」と「Ｎｅｘｔ：８」とを記憶し、「単位バッファアドレス：７」に対応付けて「ＥＯＱ：０」と「Ｎｅｘｔ：１０」とを対応付けて記憶し、「単位バッファアドレス：８」と「ＥＯＱ：１」と「Ｎｅｘｔ：（ナシ）」とを記憶する。なお、図４は、実施例１における結合情報記憶部に記憶される結合情報の一例を示す図である。
【００４１】
識別子記憶部４４は、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を記憶する。具体的には、図５に示すように、単位バッファごとに、「単位バッファアドレス」と、当該単位バッファアドレスに格納されたフレームの後方部に結合するフレームか否かを識別するための識別子を示す「後方識別子」と、当該単位バッファアドレスに格納されたフレームの前方部に結合するフレームか否かを識別するための識別子を示す「前方識別子」とを対応付けて「識別子情報管理テーブル」に記憶する。例えば、図５に示す例では、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納された場合、すなわち、先頭のフレームが「２」に格納され、「２」の後方部に結合するフレームが「５」に格納され、「５」の後方部に結合するフレーム（最後尾のフレーム）が「８」に格納された場合には、「２」についての「後方識別子」（例えば、「１２３」）と「５」についての「前方識別子」（例えば、「１２３」）とを対応させて記憶し、「５」についての「後方識別子」（例えば、「５４２」）と「８」についての「前方識別子」（例えば、「５４２」）とを対応させて記憶する。なお、図５は、実施例１における識別子記憶部に記憶される識別子の一例を示す図である。
【００４２】
空き情報記憶部４５は、単位バッファごとに、共通バッファにおけるどの領域（単位バッファ）がフレーム（データ）未格納領域かを示す空き情報を記憶する。具体的には、図６に示すように、空き情報を一意に識別するための番号である「空き情報管理番号」に対応付けて、フレーム（データ）未格納領域である単位バッファを一意に特定するアドレスを示す「空き単位バッファアドレス」を「空き情報管理テーブル」に記憶する。さらに、フレームを書き込む際にいずれの空き単位バッファアドレスを現に使用しているかを示す「空き情報書き込み側アドレス」と、フレームを読み出す際にいずれの空き単位バッファアドレスを現に使用しているかを示す「空き情報読み出し側アドレス」とをいずれかの空き単位バッファアドレスと対応付けて「空き情報管理テーブル」に記憶する。
【００４３】
例えば、図６に示す例では、空き情報記憶部４５は、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納され、かつ、空き情報書き込み側アドレス「１」であった場合には、「空き情報管理番号：２」に対応付けて「空き単位バッファアドレス：２」を記憶し、「空き情報管理番号：３」に対応付けて「空き単位バッファアドレス：５」を記憶し、「空き情報管理番号：４」に対応付けて「空き単位バッファアドレス：８」を記憶し、「空き情報書き込み側アドレス」に対応付けて「空き情報管理番号：４」を記憶する。なお、図６は、実施例１における空き情報記憶部に記憶される空き情報の一例を示す図である。
【００４４】
制御部４０は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部である。特に本発明に密接に関連するものとしては、図２に示すように、格納部３１と、識別子付与部３２と、読み出し部３３と、結合判定部３４とを備える。なお、識別子付与部３２は、特許請求の範囲に記載の「識別子格納手段」に対応し、結合判定部３４は、特許請求の範囲に記載の「結合判定手段」に対応する。
【００４５】
格納部３１は、送信対象であるフレームを分割して共通バッファ４１における複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として結合情報記憶部４３に格納する。また、書き込みを行う際に使用する「キューポインタ番号」を示す「書き込み側アドレス」をキューポインタ記憶部４２と空き情報記憶部４５とに設定する。なお、格納部３１による処理の詳細は、後に図７および図８を用いて説明する。
【００４６】
識別子付与部３２は、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を識別子記憶部４４に格納する。具体的には、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を識別子記憶部４４に格納する。例えば、結合する二つのフレームにおいて、前方部に結合するフレームの後方識別子と、後方部に結合するフレームの前方識別子とに同一の情報を付与して識別子記憶部４４に格納する。なお、識別子付与部３２による処理の詳細は、後に図７および図８を用いて説明する。
【００４７】
読み出し部３３は、結合情報記憶部４３に格納されたフレーム結合情報を用いて分割されたフレームを結合する。また、読み出しを行う際に使用する「キューポインタ番号」を示す「読み出し側アドレス」をキューポインタ記憶部４２と空き情報記憶部４５とに設定する。なお、読み出し部３３による処理の詳細は、後に図９および図１０を用いて説明する。
【００４８】
結合判定部３４は、フレーム結合情報を用いて分割されたフレームを結合する場合に、識別子記憶部４４に格納された識別子を用いて、結合関係が正しいか否かを判定する。具体的には、フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、結合関係が正しいか否かを判定する。さらに詳細には、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となるか否かを判定する。例えば、結合する二つのフレームにおいて、前方部に結合するフレームの後方識別子が「１２３」である場合に、後方部に結合するフレームの前方識別子が「１２３」であるか否かを判定する。なお、結合判定部３４による処理の詳細は、後に図９および図１０を用いて説明する。
【００４９】
ところで、上記した伝送装置は、例えば、フレームを転送する転送装置に適用することができ、図１９に示すように構成される。ここで、同図に示すように、フレームを受信する受信バッファ１９０１と、複数の受信バッファ１９０１から受信する多数のフレームを多重化して共通バッファに伝送するＭＵＸ（ｍｕｌｔｉｐｌｅｘｅｒ）１９０２とが、図２に示すフレーム入力部１０に対応し、受信したフレームをバッファする共通バッファ１９０３が、図２に示す共通バッファ４１に対応し、フレームを選択して送信するＳＥＬＥＣＴ１９０４が、図２に示すフレーム出力部２０に対応する。また、キューポインタを記憶するＱｕｅｕｅ  Ｐｏｉｎｔｅｒ管理テーブル１９０５が、図２に示すキューポインタ記憶部４２に対応し、空き情報を記憶する空き管理テーブル１９０６が、図２に示す空き情報管理記憶部４５に対応し、結合情報を記憶するＣｈａｉｎ管理テーブル１９０７が、図２に示す結合情報記憶部４３に対応する。また、読み出しアドレスおよび書き込みアドレスを管理するスケジューラ１９０８と、共通バッファ書き込み側制御１９０９とが、図２に示す格納部３１と識別子付与部３２とに対応し、スケジューラ１９０８と共通バッファ読み出し側制御１９１０とが、図２に示す読み出し部３３と結合判定部３４とに対応する。なお、図１９は、本発明を用いた共通バッファ型フレーム転送装置の一例を示す図である。
【００５０】
［実施例１に係る受信したフレーム格納の処理］
次に、図７および図８を用いて、実施例１におけるフレーム格納の処理を説明する。なお、図７は、実施例１におけるフレーム格納の処理を示すフローチャートであり、図８は、実施例１におけるフレーム格納の処理を説明するための図である。
【００５１】
まず、格納部３１は、フレーム入力部１０によってフレームが受信されると（ステップＳ１０１肯定）、所定の容量より大きいかを判定する（ステップＳ１０２）。つまり、受信したフレームが単位バッファの容量より大きいかを判定する。
【００５２】
ここで、格納部３１は、受信したフレームが所定の容量より小さい場合には（ステップＳ１０２否定）、空き情報記憶部４５における書き込み側アドレスを１インクリメントする（ステップＳ１０３）。その後、空き情報記憶部４５を確認して、空き単位バッファを取得する（ステップＳ１０４）。そして、取得した空き単位バッファにフレームを格納する（ステップＳ１０５）。例えば、図８の（０）に示す例では、空き情報管理テーブルにおける書き込み側アドレス（次に取得する空き単位バッファ）が「空き情報管理番号：５」である場合に、書き込み側アドレスを１インクリメントして、「空き情報管理番号：６」にセットする。その後、図８の（１）に示す例では、空き情報管理テーブルにおいて、「空き情報管理番号：６」と対応付けて格納された「空き単位バッファアドレス：２」を取得する。そして、図８に示す例では、「空き単位バッファアドレス：２」に受信したフレームを格納する。
【００５３】
その後、格納部３１は、キューポインタ記憶部４２における書き込み側アドレスを１インクリメントし（ステップＳ１０６）、キューポインタ記憶部４２にキューポイント情報を格納する（ステップＳ１０７）。つまり、例えば、図８に示す例では、キューポインタ管理テーブルにおける書き込み側アドレスを１インクリメントして、キューポイント情報を格納する。そして、フレーム格納の処理を終了する。
【００５４】
一方、格納部３１は、受信したフレームが所定の容量より大きい場合には（ステップＳ１０２肯定）、受信したフレームを分割する（ステップＳ１０８）。つまり、受信したフレームを単位バッファに格納できるサイズに分割する。そして、最前部のフレームを選択する（ステップＳ１０９）。
【００５５】
そして、格納部３１は、空き情報記憶部４５における書き込み側アドレスを１インクリメントして（ステップＳ１１０）、空き情報記憶部４５を確認して空き単位バッファを取得し（ステップＳ１１１）、取得した空き単位バッファにフレームを格納する（ステップＳ１１２）。
【００５６】
そして、格納部３１は、すべてのフレームを単位バッファに格納したかを判定する（ステップＳ１１３）。ここで、すべてのフレームを格納していない場合には（ステップＳ１１３否定）、次のフレームを選択する（ステップＳ１１４）。つまり、例えば、図８の（２）および(３)に示す例では、書き込み側アドレスを１インクリメントして「空き単位バッファアドレス：５」を取得してフレームを格納し、さらに、書き込み側アドレスを１インクリメントして「空き単位バッファアドレス：８」を取得してフレームを格納する。
【００５７】
一方、格納部３１は、上記したステップＳ１１３において、すべてのフレームを格納するまで、上記したステップＳ１１０からＳ１１４までの処理を繰り返す。そして、すべてのフレームを単位バッファに格納した場合には（ステップＳ１１３肯定）、キューポインタ記憶部４２における書き込み側アドレスを１インクリメントし（ステップＳ１１５）、キューポインタ記憶部４２にキューポインタ情報を格納する（ステップＳ１１６）。つまり、例えば、図８の（４）に示す例では、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納された場合、すなわち、先頭のフレームを単位バッファ「２」に格納して最後尾のフレームを「８」に格納した場合には、キューポインタ管理テーブルにおける書き込み側アドレスを１インクリメントして、「Ｈｅａｄ：２」と「Ｔａｉｌ：８」とを対応付けてキューポインタ管理テーブルに格納する。
【００５８】
そして、格納部３１は、結合情報を格納する（ステップＳ１１７）。つまり、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として結合情報記憶部４３に格納する。例えば、図８の（５）に示す例では、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納された場合、すなわち、先頭のフレームが「２」に格納され、「２」の後方部に結合するフレームが「５」に格納され、「５」の後方部に結合するフレーム（最後尾のフレーム）が「８」に格納された場合には、結合情報管理テーブルにおいて、「単位バッファアドレス：２」に対応付けて「ＥＯＱ：０」と「Ｎｅｘｔ：５」とを格納し、「単位バッファアドレス：５」に対応付けて「ＥＯＱ：０」と「Ｎｅｘｔ：８」とを格納し、「単位バッファアドレス：８」に対応付けて「ＥＯＱ：１」と「Ｎｅｘｔ：（ナシ）」とを格納する。
【００５９】
そして、識別子付与部３２は、前方識別子と後方識別子とを付与して格納する（ステップＳ１１８）。つまり、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を識別子記憶部４４に格納する。例えば、図８の（６）に示す例では、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納された場合、すなわち、先頭のフレームが「２」に格納され、「２」の後方部に結合するフレームが「５」に格納され、「５」の後方部に結合するフレーム（最後尾のフレーム）が「８」に格納された場合には、「２」についての「後方識別子」と「５」についての「前方識別子」とに同一の識別子（例えば、「１２３」）を付与して結合情報管理テーブルに格納し、「５」についての「後方識別子」と「８」についての「前方識別子」（例えば、「５４２」）とに同一の識別子（例えば、「５４２」）を付与して結合情報管理テーブルに格納する。そして、フレーム格納の処理を終了する。
【００６０】
［実施例１に係るフレーム読み出しの処理］
次に、図９および図１０を用いて、実施例１におけるフレーム読み出しの処理を説明する。なお、図９は、実施例１におけるフレーム読み出しの処理を示すフローチャートであり、図１０は、実施例１におけるフレーム読み出しの処理を説明するための図である。
【００６１】
まず、読み出し部３３は、読み出しタイミングとなると（ステップＳ２０１肯定）、キューポインタ記憶部における読み出し側アドレスを１インクリメントする（ステップＳ２０２）。つまり、例えば、図１０に示す例では、キューポインタ管理テーブルにおける読み出し側アドレス（次に取得するキューポイント）が「送信キュー１：１」である場合に、読み出し側アドレスを１インクリメントして、「送信キュー１：２」にセットする。
【００６２】
そして、読み出し部３３は、キューポインタ管理テーブルから先頭および最後尾のフレームが格納された単位バッファの位置を取得する（ステップＳ２０３）。つまり、例えば、図１０の（１）に示す例では、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納された場合、すなわち、先頭のフレームを単位バッファ「２」に格納して最後尾のフレームを「８」に格納した場合には、キューポインタ管理テーブルから、「Ｈｅａｄ：２」と「Ｔａｉｌ：８」とを取得する。
【００６３】
そして、読み出し部３３は、結合情報があるか否かを判定する（ステップＳ２０４）。ここで、結合情報がない場合（ステップＳ２０４否定）、つまり「Ｈｅａｄ」と「Ｔａｉｌ」が同じ場合には、空き情報管理テーブルの読み出し側アドレスを１インクリメントし（ステップＳ２０５）、取得した単位バッファアドレスを空き情報管理テーブルに書き込む（ステップＳ２０６）。そして、取得した単位バッファアドレスからフレームを読み出して送信し（ステップＳ２０７）、フレーム読み出しの処理を終了する。
【００６４】
一方、読み出し部３３は、結合情報がある場合には（ステップＳ２０４肯定）、先頭のフレームについて結合情報を結合情報記憶部４３から取得する（ステップＳ２０８）。例えば、図１０の（２）に示す例では、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納された場合、すなわち、先頭のフレームが「２」に格納され、「２」の後方部に結合するフレームが「５」に格納され、「５」の後方部に結合するフレーム（最後尾のフレーム）が「８」に格納された場合には、単位バッファ「２」についての結合情報である「ＥＯＱ：０」と「Ｎｅｘｔ：５」とを結合情報管理テーブルから取得する。そして、識別子記憶部４４から識別子を取得する（ステップＳ２０９）。つまり、例えば、図１０の（３）に示す例では、単位バッファ「２」についての識別情報である「Ｂｅｆｏｒｅ  Ｃｏｄｅ：（ナシ）」と「Ｎｅｘｔ  Ｃｏｄｅ：１２３」とを結合情報管理テーブルから取得する。
【００６５】
そして、読み出し部３３は、最後尾のフレームかを判定する（ステップＳ２１０）。例えば、取得した結合情報について、「ＥＯＱ：１」であるかどうかを判定する。ここで、最後尾のフレームでない場合には（ステップＳ２１０否定）、次のフレームについての結合情報を結合情報記憶部４３からを取得する（ステップＳ２１１）。例えば、図１０の（４）に示す例では、「ＥＯＱ：０」と「Ｎｅｘｔ：５」とを結合情報管理テーブルから取得する。その後、識別子記憶部４４から識別子を取得する（ステップＳ２１２）。例えば、図１０の（５）に示す例では、「Ｂｅｆｏｒｅ  Ｃｏｄｅ：１２３」と「Ｎｅｘｔ  Ｃｏｄｅ：５４２」とを結合情報管理テーブルから取得する。
【００６６】
そして、結合判定部３４は、結合関係が正しいかを判定する（ステップＳ２１３）。具体的には、フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、結合関係が正しいか否かを判定する。さらに詳細には、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となるか否かを判定する。
【００６７】
ここで、結合判定部３４は、結合関係が正しい場合には（ステップＳ２１４肯定）、つまり、例えば、図１０の（６）に示す例では、前段となるフレームの後方識別子である「Ｎｅｘｔ  Ｃｏｄｅ：１２３」と後段となるフレームの前方識別子と「Ｂｅｆｏｒｅ  Ｃｏｄｅ：１２３」とが同一（比較一致）であり結合関係が正しいと判定した場合には、後段のフレームが最後尾のフレームかを判定する（ステップＳ２１０）。一方、結合関係が正しくない場合には（ステップＳ２１４否定）、つまり、例えば、図１０の（７）に示す例では、「Ｎｅｘｔ：８」に応じて誤って（誤認識）単位バッファ「７」が導き出された場合には、単位バッファ「５」の「Ｎｅｘｔ  Ｃｏｄｅ：５４２」と単位バッファ「７」の「Ｂｅｆｏｒｅ  Ｃｏｄｅ：６９７」とが同一にならず（比較不一致）、結合関係が正しくないと判定する。そして、フレーム読み出しの処理を終了する。
【００６８】
一方、読み出し部３３は、上記したステップＳ２１０において、最後尾のフレームを取得するまで、上記したステップＳ２１１からＳ２１４までの処理を繰り返す。そして、最後尾のフレームである場合には（ステップＳ２１０肯定）、キューポインタ記憶部４２から取得したキューポインタ情報と一致するかを判定する（ステップＳ２１５）。つまり、例えば、１０の（８）に示す例では、「単位バッファアドレス：８」と「Ｔａｉｌ：８」とが一致するかどうかを判定する。その結果、一致する場合には（ステップＳ２１５肯定）、空き情報記憶部４５における読み出し側アドレスを１インクリメントし（ステップＳ２１６）、フレームを読み出した単位バッファのアドレスを書き込む（ステップＳ２１７）。ここで、上記したステップＳ２０９およびＳ２１２において取得したすべての単位バッファアドレスを書き込んでいない場合には（ステップＳ２１８否定）、再度読み出し側アドレスを１インクリメントして取得した単位バッファアドレスを書き込む（ステップＳ２１６およびＳ２１７）。その後、すべての単位バッファアドレスを書き込んだ場合には（ステップＳ２１８肯定）、取得した単位バッファアドレスからフレームを読み出して結合して送信し（ステップＳ２１９）、フレーム読み出しの処理を終了する。
【００６９】
［実施例１の効果］
上記したように、実施例１によれば、伝送装置は、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を識別子記憶部４４に格納し、フレーム結合情報を用いて分割されたフレームを結合する場合に、識別子記憶部４４に格納された識別子を用いて、結合関係が正しいか否かを判定するので、フレームを結合する際に誤りを検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する（例えば、処理を終了する、処理を中断する、処理を停止するなど）ことにより、誤った結合処理を行うことにより処理が暴走する（ループ状態に陥る）のを防止することが可能である。
【００７０】
また、実施例１によれば、伝送装置は、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を識別子記憶部４４に格納し、フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、結合関係が正しいか否かを判定するので、フレームを結合する際に誤りを確実に検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する（例えば、処理を終了する、処理を中断する、処理を停止するなど）ことにより、誤った結合処理を行うことにより処理が暴走する（ループ状態に陥る）のを防止することが可能である。
【００７１】
また、実施例１によれば、伝送装置は、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となるように識別子記憶部４４に格納し、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となる否かを判定するので、フレームを結合する際に簡便な処理で誤りを検出することが可能である。
【００７２】
[前方識別子の種類について]
ところで、上記実施例１では、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となるようにする場合について説明したが、本発明はこれに限定されるものではなく、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを所定の数式に代入すると常に一定値が得られるようにしてもよい。具体的には、前方識別子並びに後方識別子を識別子記憶部４４に格納し、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを所定の数式に代入すると常に一定値が得られるか否かを判定することで、結合関係が正しいか否かを判定してもよい。例えば、前方識別子と後方識別子との和や差や積や乗数やこれらを単数または複数用いた所定の数式に代入すると一定の値になるような識別子を格納して判定してもよい。
【００７３】
また、上記実施例１では、前方識別子と後方識別子とを用いて判定する場合について説明したが、本発明はこれに限定されるものではなく、当該フレームの前方部に結合するフレームが格納されたアドレスを前方識別子として所定の記憶部に格納してもよい。
【００７４】
すなわち、伝送装置は、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子として、当該他のフレームが格納されている単位バッファを一意に特定する情報を所定の記憶部に格納する。具体的には、図１１に示すように、当該分割されたフレームの前方部で結合される他のフレームが格納されている単位バッファを一意に特定する情報を、「Ｂｅｆｏｒｅ  Ｃｏｄｅ」として格納する。例えば、図１１の（１）に示す例では、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納された場合、すなわち、先頭のフレームが「２」に格納され、「２」の後方部に結合するフレームが「５」に格納され、「５」の後方部に結合するフレーム（最後尾のフレーム）が「８」に格納された場合には、結合情報管理テーブルにおける「単位バッファアドレス：５」に「Ｂｅｆｏｒｅ  Ｃｏｄｅ：２」を格納し、「単位バッファアドレス：８」に「Ｂｅｆｏｒｅ  Ｃｏｄｅ：５」を格納する。なお、図１１は、実施例１における前方部に結合されるフレームが格納されている単位バッファのアドレスを前方識別子として用いたフレーム読み出しの処理を説明するための図である。
【００７５】
そして、伝送装置は、フレーム結合情報を用いて結合される二つのフレームについて、後段となるフレームの前方識別子で特定される単位バッファに、前段となるフレームが格納されているか否かを判定することで、結合関係が正しいか否かを判定する。具体的には、後段となるフレームの前方識別子で特定される単位バッファと、前段となるフレームが格納されている単位バッファとが一致するか否かを判定することで、結合関係が正しいか否かを判定する。例えば、図１１の（２）に示すように、「単位バッファアドレス：２」のフレームを取得した後に「単位バッファアドレス：５」のフレームを取得した場合に、「単位バッファアドレス：５」に対応付けて格納されている「Ｂｅｆｏｒｅ  Ｃｏｄｅ」は「２」であり、前段となるフレームは「単位バッファアドレス：２」に格納されているため、結合関係は正しいと判定する。一方、図１１の（３）に示すように、「単位バッファアドレス：５」のフレームを取得した後に「単位バッファアドレス：７」のフレームを取得した場合（例えば、ノイズなどにより）に、「単位バッファアドレス：７」と対応付けて格納されている「Ｂｅｆｏｒｅ  Ｃｏｄｅ」は「３」であり、前段となるフレームは「単位バッファアドレス：２」に格納されているため、結合関係は正しくないと判定する。
【００７６】
このようなことから、上記の伝送装置は、識別子を一つ付与するのみで、フレームを結合する際に誤りを確実に検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する（例えば、処理を終了する、処理を中断する、処理を停止するなど）ことにより、誤った結合処理を行うことにより処理が暴走する（ループ状態に陥る）のを防止することが可能である。
【実施例２】
【００７７】
［実施例２に係る伝送装置の特徴］
さて、これまで、実施例１として、結合が正しいか否かを判定するための識別子を所定の記憶部に格納する場合について説明したが、本発明はこれに限定されるものではなく、結合処理を復旧させるための識別子を所定の記憶部に格納してもよい。
【００７８】
すなわち、実施例２に係る伝送装置は、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納する。具体的には、図１３に示すように、分割されたフレームごとに、次々フレームが格納されたアドレスを示す「Ｎｅｘｔ２」を格納する。例えば、図１３の（１）に示す例では、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納された場合、すなわち、先頭のフレームが「２」に格納され、「２」の後方部に結合するフレームが「５」に格納され、「５」の後方部に結合するフレーム（最後尾のフレーム）が「８」に格納された場合には、結合情報管理テーブルにおける「単位バッファアドレス：２」に、「Ｎｅｘｔ２：８」を格納する。
【００７９】
そして、実施例２に係る伝送装置は、フレーム結合情報を用いて結合される二つのフレームの間で、判定手段によって結合関係が正しくないと判定された場合に、所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御する。
【００８０】
例えば、実施例２に係る伝送装置は、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納した場合には、図１３の（２）に示すように、単位バッファ「５」の「Ｎｅｘｔ：８」に応じて誤って（誤認識）単位バッファ「７」が導き出されると、単位バッファ「７」の「Ｂｅｆｏｒｅ  Ｃｏｄｅ：３」と前方部に結合するフレームが格納された単位バッファアドレス「５」とが同一にならず（比較不一致）、結合関係が正しくないと判定する。その後、前段となるフレームのさらに前方部で結合されたフレームである単位バッファ「２」の復旧用識別子「Ｎｅｘｔ２：８」（図１３の（１）参照）を取得し、「Ｎｅｘｔ２：８」に応じて単位バッファ「８」と「ＥＯＱ：１」と「Ｂｅｆｏｒｅ  Ｃｏｄｅ：５」とを取得する。そして、例えば、結合関係が正しいと判定した際には、結合処理を続行し、結合関係が正しくないと判定した際には再度復旧用識別子を読み出して結合処理を続行し、または、結合処理を終了する。例えば、図１３の（３）に示すように、単位バッファ「８」の「Ｂｅｆｏｒｅ  Ｃｏｄｅ：５」と、当該フレームの前段となるフレームのさらに前方部で結合されたフレームである単位バッファ「２」の「Ｎｅｘｔ：５」とが同一になる（比較一致）場合には、結合処理を続行する。
【００８１】
このため、実施例２に係る伝送装置は、結合先が正しいか否かを判定できるだけでなく、結合先が誤っている場合には、正しい結合先を読み出すことで結合処理を復旧することが可能である。
【００８２】
［実施例２に係るフレーム格納の処理］
まず、図７を用いて、実施例２に係るフレーム格納の処理を簡単に説明する。実施例２に係る伝送装置は、図７におけるステップＳ１１６の後に、すなわち、前方識別子と後方識別子とを付与して格納した後に、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納する処理を行う。具体的には、図１３に示すように、識別子として「Ｂｅｆｏｒｅ  Ｃｏｄｅ」を格納するとともに、復旧用識別子として「Ｎｅｘｔ２」を識別子記憶部４４に格納する処理を行う。
【００８３】
［実施例１に係るフレーム読み出しの処理］
次に、図１２および図１３を用いて、実施例２におけるフレーム読み出しの処理を説明する。なお、図１２は、実施例２におけるフレーム読み出しの処理を示すフローチャートであり、図１３は、実施例２におけるフレーム読み出しの処理を説明するための図である。
【００８４】
まず、読み出し部３３は、読み出しタイミングとなると（ステップＳ３０１肯定）、その後、結合情報があるか否かを判定する（ステップＳ３０２〜Ｓ３０４）。ここで、結合情報がない場合には（ステップＳ３０４否定）、取得した単位バッファアドレスを空き情報管理テーブルに書き込む（ステップＳ３０５およびＳ３０６）。そして、取得した単位バッファアドレスからフレームを読み出して送信し（ステップＳ３０７）、フレーム読み出しの処理を終了する。一方、結合情報がある場合には（ステップＳ３０４肯定）、先頭のフレームについて結合情報を結合情報記憶部４３から取得し（ステップＳ３０８）、識別子を取得する（ステップＳ３０９）。
【００８５】
そして、読み出し部３３は、最後尾のフレームか否かを判定する（ステップＳ３１０）。ここで、最後尾のフレームでない場合には（ステップＳ３１０否定）、次のフレームについて結合情報と識別子を取得する。
【００８６】
そして、結合判定部３４は、結合関係が正しいかを判定する（ステップＳ３１１〜Ｓ３１３）。ここで、結合判定部３４は、結合関係が正しい場合には（ステップＳ３１４肯定）、後段のフレームが最後尾のフレームかを判定する（ステップＳ３１０）。
【００８７】
一方、結合判定部３４は、結合関係が正しくない場合には（ステップＳ３１４否定）、正しい結合先ではなかったフレームが三番目以降のフレームかを判定する（ステップＳ３１５）。つまり、当該フレームの後方部に結合されるべき他のフレームが、先頭のフレームおよび先頭のフレームの後方部に結合されるフレームではないかを判定する。ここで、三番目以降のフレームでない場合には（ステップＳ３１５否定）、フレーム読み出しの処理を終了する。一方、三番目以降のフレームである場合には（ステップＳ３１５肯定）、所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出す（ステップＳ３１６）。例えば、図１３に示す例では、「単位バッファアドレス：５」と「単位バッフアドレス：７」との間における結合関係が正しくない場合に、「単位バッファアドレス：５」に格納された前段となるフレームのさらに前方部で結合された「単位バッファアドレス：２」に格納されたフレームから取得した復旧用識別子である「Ｎｅｘｔ２：８」を確認する。
【００８８】
その後、結合判定部３４は、復旧用識別子識別子が示すアドレスについて結合情報を取得する（ステップＳ３１７）。つまり、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御する。例えば、図１３に示す例では、「単位バッファアドレス：８」について、「ＥＯＱ：１」と「Ｎｅｘｔ：（ナシ）」とを取得する。そして、復旧用識別子が示すアドレスについて識別子を取得する（ステップＳ３１８）。つまり、例えば、図１３に示す例では、「単位バッファアドレス：８」について、「Ｂｅｆｏｒｅ  Ｃｏｄｅ：５」を取得する。その後さらに、復旧用識別子が示すアドレスについて取得した識別子を用いて、結合関係が正しいかを判定する（ステップＳ３１３）。
【００８９】
一方、結合判定部３４は、上記したステップＳ３１０において、最後尾のフレームを取得するまで、上記したステップＳ３１１からＳ３１８までの処理を繰り返す。そして、上記したステップＳ３１０において、最後尾のフレームである場合には（ステップＳ３１０肯定）、キューポインタ記憶部４２から取得したキューポインタ情報と一致するかを判定する（ステップＳ３１９）。ここで、キューポインタ情報と一致せず、正しい結合先ではなかったフレームが三番目以降のフレームの場合には（ステップＳ３１９否定およびＳ３１５肯定）、復旧用識別子を取得して処理を続ける（ステップＳ３１６〜Ｓ３１９）。また、キューポインタ情報と一致せず、正しい結合先ではなかったフレームが三番目以降のフレームでない場合には（ステップＳ３１９否定およびＳ３１５否定）、フレーム読み出しの処理を終了する。また、キューポインタ情報と一致する場合には（ステップＳ３１９肯定）、読み出したすべてのフレームのアドレスを空き情報管理テーブルに書き込んだ後に（ステップＳ３２０〜Ｓ３２２）、取得した単位バッファアドレスからフレームを読み出して結合して送信し（ステップＳ３２３）、フレーム読み出しの処理を終了する。
【００９０】
［実施例２の効果］
上記したように、実施例２によれば、伝送装置は、分割されたフレームごとに、次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として識別子記憶部４４に格納し、フレーム結合情報を用いて結合される二つのフレームの間で、結合関係が正しくないと判定された場合に、識別子記憶部４４に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御するので、結合先が正しいか否かを判定できるだけでなく、結合先が誤っている場合には、正しい結合先を読み出すことで結合処理を復旧することが可能である。
【実施例３】
【００９１】
さて、これまで、実施例１および実施例２として、単位バッファからフレームが読み出された後のみ、この単位バッファを開放する（フレームが格納されていない単位バッファとする）場合について説明したが、本発明はこれに限定されるものではなく、フレームを格納した後に所定の時間経過した際に、この単位バッファを開放してもよい。
【００９２】
［実施例３における伝送装置の構成］
まず、図１４を用いて、実施例３に係る伝送装置の構成を説明する。図１４は、実施例３における携帯端末の構成を示すブロック図である。ここで、実施例１と同様の動作をするものについては、同じ番号を付して説明を省略し、以下では、エージング情報格納部３５ｂと、格納時間判定部３６ｂと、開放部３７ｂと、エージング管理記憶部４６ｂと、エージングポリシー記憶部４７ｂとについてのみ説明を行う。
【００９３】
エージング管理記憶部４６ｂは、単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を記憶する。具体的には、図１５に示すように、「単位バッファアドレス」に対応づけて、フレームが格納されているか否かを示す「Ｕｓｅｄ」と、フレームが格納された後に経過した時間であるエージング経過時間を示す「Ｔｉｍｅｒ」と、対象となる単位バッファを開放するエージング経過時間を示す「Ｏｆｆｓｅｔ」とを記憶する。さらに、フレームを書き込む際にいずれのキューポインタ番号を現に使用しているかを示す「エージング情報読み出し側アドレス」をいずれかの単位バッファアドレスと対応付けて「エージング管理テーブル」に記憶する。
【００９４】
例えば、図１５に示す例では、フレームを三つに分割して、単位バッファ「２」「５」「８」に順に格納され、単位バッファ「３」にはフレームが格納されていない場合には、エージング管理記憶部４６ｂは、「単位バッファアドレス：２」に対応付けて、「Ｕｓｅｄ：１（格納中）」と「Ｔｉｍｅｒ：１０」と「Ｏｆｆｓｅｔ：１０」とを記憶し、「単位バッファアドレス：３」に対応付けて、「Ｕｓｅｄ：０（ナシ格納中）」と「Ｔｉｍｅｒ：（ナシ）」と「Ｏｆｆｓｅｔ：（ナシ）」とを対応付けて記憶する。
【００９５】
エージングポリシー記憶部４７ｂは、後述する格納時間判定部３６ｂによって、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定するのに用いるエージングポリシーを記憶する。具体的には、図１６に示すように、送信キューを一意に特定するための番号を示す「送信キュー番号」に対応付けて、判定する際に用いる所定の時間を示す「Ｔｉｍｅ」を記憶する。例えば、図１６に示す例では、「送信キュー番号：２」に対応付けて「Ｔｉｍｅ：１０」を記憶する。
【００９６】
エージング情報格納部３５ｂは、単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を所定の記憶部に格納する。具体的には、図１５に示す例では、「単位バッファアドレス」に対応付けて、「Ｕｓｅｄ」と「Ｏｆｆｓｅｔ」とをエージング管理記憶部４６ｂに格納する。なお、エージング情報格納部３５ｂは、特許請求の範囲に記載の「格納情報格納手段」に対応する。
【００９７】
ここで、例えば、図１５に示す例を用いて説明すると、エージング情報格納部３５ｂは、「単位バッファアドレス：２」にフレームが格納されている場合には、「単位バッファアドレス：２」と「Ｕｓｅｄ：１」とを対応付けて格納し、「単位バッファアドレス：３」にフレームが格納されていない場合には、「単位バッファアドレス：３」と「Ｕｓｅｄ：０」とを対応付けて格納する。つまり、例えば、フレームが「単位バッファアドレス：２」に書き込まれると、「単位バッファアドレス：２」に対応付けて「Ｕｓｅｄ：１」を格納し、一方、例えば、フレームが「単位バッファアドレス：３」から読み出されると、「単位バッファアドレス：３」に対応付けて「Ｕｓｅｄ：０」を格納する（設定する）。
【００９８】
また、例えば、図１５および図１６に示す例を用いて説明すると、エージング情報格納部３５ｂは、送信キュー２における「単位バッファアドレス：２、５、８」に格納されたフレームについて送信許可（読み出し許可）が出た場合に、送信許可となった「送信キュー番号：２」の「Ｔｉｍｅ：１０」をエージングポリシー記憶部４７ｂから取得する（図１６参照）。その後、エージング管理記憶部４６ｂにおいて、送信許可が出たフレームが格納されている「単位バッファアドレス：２、５、８」の「Ｏｆｆｓｅｔ」に、この取得した「Ｔｉｍｅ：１０」を格納する（設定する）。つまり、「単位バッファアドレス：２」に対応付けて「Ｔｉｍｅ：１０」を格納し、「単位バッファアドレス：５」に対応付けて「Ｔｉｍｅ：１０」を格納し、「単位バッファアドレス：８」に対応付けて「Ｔｉｍｅ：１０」を格納する（設定する）。
【００９９】
格納時間判定部３６ｂは、単位バッファごとに、所定の記憶部に格納された格納情報を監視して、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定する。具体的には、図１５に示す例では、エージング管理記憶部４６ｂにおける「Ｔｉｍｅｒ」を監視して、「Ｏｆｆｓｅｔ」によって設定された時間が経過したか否かを判定する。なお、格納時間判定部３６ｂは、特許請求の範囲に記載の「格納時間判定手段」に対応する。また、格納時間判定部３６ｂによる処理の詳細は、後に図１８を用いて説明する。
【０１００】
開放部３７ｂは、格納時間判定部３６ｂによって所定の単位バッファについて所定の時間が経過したと判定された場合に、当該所定の単位バッファを開放してフレームが格納されていないようにする。具体的には、格納時間判定部３６ｂによって「Ｏｆｆｓｅｔ」によって設定された時間が経過したと判定された場合に、当該所定の単位バッファについて「Ｕｓｅｄ：０」に設定する。なお、開放部３７ｂは、特許請求の範囲に記載の「単位バッファ開放手段」に対応する。
【０１０１】
［実施例３に係るエージング情報設定の処理］
次に、図１７を用いて、実施例３に係るエージング情報設定の処理を説明する。なお、図１７は、実施例３におけるエージング情報設定の処理を示すフローチャートである。
【０１０２】
まず、エージング情報格納部３５ｂは、送信許可（読み出し許可）となると（ステップＳ４０１肯定）、エージングポリシー記憶部４７ｂから対応する送信ポリシーを読み出す（ステップＳ４０２）。つまり、送信許可となった「送信キュー番号」と対応付けられて記憶されている「Ｔｉｍｅ」をエージングポリシー記憶部４７ｂから取得する。
【０１０３】
そして、エージング情報格納部３５ｂは、送信するフレームが格納された単位バッファが格納された単位バッファアドレスを確認し（ステップＳ４０３）、Ｕｓｅｄに「１」を設定する（ステップＳ４０４）。その後、エージングポリシー記憶部４７ｂから取得した「Ｔｉｍｅ」を設定する（ステップＳ４０５）。そして、エージング情報設定の処理を終了する。
【０１０４】
［実施例３に係るエージング情報監視の処理］
次に、図１８を用いて、実施例３に係るエージング情報監視の処理を説明する。なお、図１８は、実施例３におけるエージング情報監視の処理を示すフローチャートである。
【０１０５】
まず、格納時間判定部３６ｂは、設定された時間が経過すると（ステップＳ５０１肯定）、エージング管理記憶部の読み出し側アドレスを１インクリメントする（ステップＳ５０２）。つまり、例えば、図１５の例を用いて説明すると、読み出し側アドレスが「単位バッファアドレス：４」にセットされていた場合、読み出し側アドレスを１インクリメントして「単位バッファアドレス：５」にセットする。そして、テーブルに設定された内容を読み出す（ステップＳ５０３）。例えば、図１５の例を用いて説明すると、「単位バッファアドレス：５」の「Ｕｓｅｄ：１」と「Ｔｉｍｅｒ：１０」と「Ｏｆｆｓｅｔ：１０」とを読み出す。
【０１０６】
そして、格納時間判定部３６ｂは、読み出した「Ｕｓｅｄ」の値が「１」か否かを判定し（ステップＳ５０４）、その後「Ｔｉｍｅｒ」の値が「０」か否かを判定する（ステップＳ５０５）。ここで、読み出した「Ｕｓｅｄ」の値が「１」でないと判定した場合には（ステップＳ５０４否定）、つまり、「Ｕｓｅｄ」の値が「０」である場合には、フレームが格納されていないと判定してエージング情報監視の処理を終了する。また、読み出した「Ｕｓｅｄ」の値が「１」と判定し（ステップＳ５０４肯定）、かつ、「Ｔｉｍｅｒ」の値が「０」でないと（タイムアウトしていないと）判定した場合には（ステップＳ５０５否定）、読み出したタイマー（「Ｔｉｍｅｒ」）の値を「１」減算して（ステップＳ５０６）、エージング情報監視の処理を終了する。
【０１０７】
また、格納時間判定部３６ｂは、読み出した「Ｕｓｅｄ」の値が「１」と判定し（ステップＳ５０４肯定）、かつ、「Ｔｉｍｅｒ」の値が「０」であると（タイムアウトしたと）判定した場合には（ステップＳ５０５肯定）、エージング管理記憶部４６ｂでの対象となる領域を開放する（ステップＳ５０７）。つまり、格納情報が格納されてから所定の時間が経過したと判定して、この領域を開放する。そして、「Ｕｓｅｄ」の値を「０」に設定して（ステップＳ５０８）、エージング情報監視の処理を終了する。
【０１０８】
なお、対象となる単位バッファ領域が開放されるまでの実時間「Ｔ」は、エージング管理記憶部のアドレスを１インクリメントするために設定された時間を示す「Δｔ」と、共通バッファが有する単位バッファのアドレス数（単位バッファの領域数分の深さ）を示す「ｋ」と、「Ｏｆｆｓｅｔ」とを用いることにより、以下の数式で表すことができる。
【０１０９】
「Ｔ」＝「Δｔ」×「ｋ」×「Ｏｆｆｓｅｔ」
【０１１０】
［実施例３の効果］
上記したように、実施例３によれば、伝送装置は、次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として識別子記憶部４４に格納し、フレーム結合情報を用いて結合される二つのフレームの間で、判定手段によって結合関係が正しくないと判定された場合に、識別子記憶部４４に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御するので、開放されるべきにもかかわらず開放されていない領域を開放することができ、バッファ資源を有効に活用することが可能である。
【実施例４】
【０１１１】
ところで、これまで実施例１〜３に係る伝送装置について説明してきたが、この発明は上記した実施例以外にも種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例４に係る携帯端末として、異なる実施例を説明する。
【０１１２】
（１）二重登録防止について
例えば、実施例３では、伝送装置は、単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を用いて、開放されるべきにもかかわらず開放されていない領域を開放する場合について説明したが、格納情報を用いて、フレーム格納領域への二重登録を防止してもよい。
【０１１３】
具体的には、伝送装置は、単位バッファにフレームを格納する際に、所定の記憶部に格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていないことを条件に、当該単位バッファにフレームを格納するように制御する。
【０１１４】
例えば、図１５に示す例を用いて説明すると、伝送装置は、フレームを単位バッファに格納する際に、フレームを格納する予定である単位バッファのアドレスについて、「エージング管理テーブル」における「Ｕｓｅｄ」領域を確認する。ここで、「Ｕｓｅｄ：０」の場合には（例えば、図１５における「単位バッファアドレス：３」）、フレーム未格納領域であることが確認できるため、格納処理を行う。一方、「Ｕｓｅｄ：１」の場合には（例えば、図１５における「単位バッファアドレス：２」）、フレーム格納中領域であることが確認できるため、格納処理を行わない。
【０１１５】
このように、単位バッファにフレームを格納する際に、エージング管理記憶部４６ｂに格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていないことを条件に、当該単位バッファにフレームを格納するように制御するので、二重登録を防止することができ、バッファに格納されたデータの安全性や信頼性を向上することが可能である。
【０１１６】
（２）未登録読み出し防止について
また、実施例３では、伝送装置は、格納情報を用いて、開放されるべきにもかかわらず開放されていない領域を開放する場合について説明したが、格納情報を用いて、フレーム未格納領域への未登録読み出しを防止してもよい。
【０１１７】
具体的には、伝送装置は、単位バッファからフレーム読み出して結合する際に、所定の記憶部に格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていることを条件に、当該単位バッファからフレームを読み出すように制御する。
【０１１８】
例えば、図１５に示す例を用いて説明すると、伝送装置は、フレームを単位バッファから読み出して結合する際に、フレームを読み出す予定である単位バッファのアドレスについて、「エージング管理テーブル」における「Ｕｓｅｄ」領域を確認する。ここで、「Ｕｓｅｄ：０」の場合には（例えば、図１５における「単位バッファアドレス：３」）、フレーム未格納領域であることが確認できるため、読み出し処理を終了する。一方、「Ｕｓｅｄ：１」の場合には（例えば、図１５における「単位バッファアドレス：２」）、フレーム格納中領域であることが確認できるため、読み出し処理を行う。
【０１１９】
このように、単位バッファからフレーム読み出して結合する際に、エージング管理記憶部４６ｂに格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていることを条件に、当該単位バッファからフレームを読み出すように制御するフレーム読み出しので、データを格納していない領域からの読み出しを防止することができ、処理の迅速化や信頼性を向上することが可能である。
【０１２０】
（３）システム
また、この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、図１〜１８、２０）については、特記する場合を除いて任意に変更することができる。
【０１２１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる（例えば、図２に示す構成例において、共通バッファ４１を分離し、また、結合情報記憶部４３と識別子記憶部４４とを統合する）。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１２２】
（４）伝送装置のプログラム
ところで、上記実施例１では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図２０を用いて、上記の実施例１に示した伝送装置と同様の機能を有する伝送装置制御プログラムを実行するコンピュータの一例を説明する。なお、図２０は、実施例１における伝送装置のプログラムを示す図である。
【０１２３】
同図に示すように、伝送装置は、入力部３００１、出力部３００２、共通バッファ３００３、ＣＰＵ３１１０、ＲＯＭ３１１１、ＨＤＤ３１１２、ＲＡＭ３１１３をバス３０１０などで接続して構成されている。
【０１２４】
ＲＯＭ３１１１には、上記の実施例１で示した格納部３１と識別子付与部３２と、読み出し部３３と、結合判定部３４と、同様の機能を発揮する制御プログラム、つまり、図２０に示すように、格納プログラム３１１１ａと、識別子付与プログラム３１１１ｂと、読み出しプログラム３１１１ｃと、結合判定プログラム３１１１ｄとが予め記憶されている。なお、これらのプログラム３１１１ａ〜３１１１ｄについては、図２に示した伝送装置の各構成要素と同様、適宜統合または分離してもよい。
【０１２５】
そして、ＣＰＵ３１１０が、これらのプログラム３１１１ａ〜３１１１ｄをＲＯＭ３１１１から読み出して実行することにより、図２０に示すように、各プログラム３１１１ａ〜３１１１ｄについては、格納プロセス３１１０ａと、識別子付与プロセス３１１０ｂと、読み出しプロセス３１１０ｃと、結合判定プロセス３１１０ｄとして機能するようになる。なお、各プロセス３１１０ａ〜３１１０ｄは、図２に示した、格納部３１、識別子付与部３２、読み出し部３３、結合判定部３４にそれぞれ対応する。
【０１２６】
そして、ＣＰＵ３１１０は、ＲＡＭ３１１３に格納されたキューポインタデータ３１１３ａと、結合情報データ３１１３ｂと、識別子データ３１１３ｃと、空き情報３１１３ｄとに基づいて伝送装置制御プログラムを実行する。
【０１２７】
なお、本実施例で説明した各プログラム３１１１ａ〜３１１１ｄについては、必ずしも最初からＲＯＭに記憶させておく必要はなく、例えば伝送装置に挿入されるメモリーカード、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、伝送装置の内外に備えられるＨＤＤなどの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介して伝送装置に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、伝送装置がこれらから各プログラムを読みだして実行するようにしてもよい。
【０１２８】
（付記１）送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置であって、
前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手段と、
前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手段と、
を備えたことを特徴とする伝送装置。
【０１２９】
（付記２）前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、前記分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を所定の記憶部に格納し、
前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、前記結合関係が正しいか否かを判定することを特徴とする付記１に記載の伝送装置。
【０１３０】
（付記３）前記識別子格納手段は、前記フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となるように、または、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを所定の数式に代入すると常に一定値が得られるように、前記前方識別子並びに後方識別子を所定の記憶部に格納し、
前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となる否か、または、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを所定の数式に代入すると常に一定値が得られるか否かを判定することで、前記結合関係が正しいか否かを判定することを特徴とする付記２に記載の伝送装置。
【０１３１】
（付記４）前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子として、当該他のフレームが格納されている単位バッファを一意に特定する情報を所定の記憶部に格納し、
前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、後段となるフレームの前方識別子で特定される単位バッファに、前段となるフレームが格納されているか否かを判定することで、前記結合関係が正しいか否かを判定することを特徴とする付記１に記載の伝送装置。
【０１３２】
（付記５）前記分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納する復旧用識別子格納手段と、
前記フレーム結合情報を用いて結合される二つのフレームの間で、前記結合判定手段によって前記結合関係が正しくないと判定された場合に、前記所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御する結合制御手段と、
をさらに備えたことを特徴とする付記１〜４のいずれか一つに記載の伝送装置。
【０１３３】
（付記６）前記単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を所定の記憶部に格納する格納情報格納手段と、
前記単位バッファごとに、前記所定の記憶部に格納された格納情報を監視して、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定する格納時間判定手段と、
前記格納時間判定手段によって所定の単位バッファについて所定の時間が経過したと判定された場合に、当該所定の単位バッファを開放してフレームが格納されていないようにする単位バッファ開放手段と、
をさらに備えたことを特徴とする付記１〜５のいずれか一つに記載の伝送装置。
【０１３４】
（付記７）前記単位バッファにフレームを格納する際に、前記所定の記憶部に格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていないことを条件に、当該単位バッファにフレームを格納するように制御するフレーム格納制御手段をさらに備えることを特徴とする付記６に記載の伝送装置。
【０１３５】
（付記８）前記単位バッファからフレーム読み出して結合する際に、前記所定の記憶部に格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていることを条件に、当該単位バッファからフレームを読み出すように制御するフレーム読み出し制御手段をさらに備えることを特徴とする付記６に記載の伝送装置。
【０１３６】
（付記９）送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する伝送装置制御方法であって、
前記伝送装置が、前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納工程と、
前記伝送装置が、前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定工程と、
を含んだことを特徴とする伝送装置制御方法。
【０１３７】
（付記１０）送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する方法をコンピュータに実行させる伝送装置制御プログラムであって、
前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手順と、
前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手順と、
をコンピュータに実行させることを特徴とする伝送装置制御プログラム。
【産業上の利用可能性】
【０１３８】
以上のように、本発明に係る伝送装置、伝送装置制御方法および伝送装置制御プログラムは、送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、フレーム結合情報を用いて分割されたフレームを結合して送信する伝送装置に有用であり、特に、フレームを結合する際に誤りを検出することが可能である伝送装置、伝送装置制御方法および伝送装置制御プログラムの実現に適する。
【図面の簡単な説明】
【０１３９】
【図１】実施例１に係る伝送装置の概要および特徴を説明するための図である。
【図２】実施例１における伝送装置の構成を示すブロック図である。
【図３】実施例１におけるキューポインタ記憶部に記憶されるキューポインタの一例を示す図である。
【図４】実施例１における結合情報記憶部に記憶される結合情報の一例を示す図である。
【図５】実施例１における識別子記憶部に記憶される識別子の一例を示す図である。
【図６】実施例１における空き情報記憶部に記憶される空き情報の一例を示す図である。
【図７】実施例１におけるフレーム格納の処理を示すフローチャートである。
【図８】実施例１におけるフレーム格納の処理を説明するための図である。
【図９】実施例１におけるフレーム読み出しの処理を示すフローチャートである。
【図１０】実施例１におけるフレーム読み出しの処理を説明するための図である。
【図１１】実施例１における前方部に結合される他のフレームが格納されている単位バッファのアドレスを識別子として用いたフレーム読み出しの処理を説明するための図である。
【図１２】実施例２におけるフレーム読み出しの処理を示すフローチャートである。
【図１３】実施例２におけるフレーム読み出しの処理を説明するための図である。
【図１４】実施例３における携帯端末の構成を示すブロック図である。
【図１５】実施例３におけるエージング管理記憶部に記憶されるエージング情報の一例を示す図である。
【図１６】実施例３におけるエージングポリシー記憶部に記憶されるエージングポリシーの一例を示す図である。
【図１７】実施例３におけるエージング情報設定の処理を示すフローチャートである。
【図１８】実施例３におけるエージング情報監視の処理を示すフローチャートである。
【図１９】本発明を用いた共通バッファ型フレーム転送装置の一例を示す図である。
【図２０】実施例１における伝送装置のプログラムを示す図である。
【図２１】従来技術に係る共通バッファ方式を説明するための図である。
【図２２】従来技術に係る共通バッファ方式を説明するための図である。
【符号の説明】
【０１４０】
１０  フレーム入力部
２０  フレーム出力部
３０  制御部
３１  格納部
３２  識別子付与部
３３  読み出し部
３４  結合判定部
３５ｂ  エージング情報格納部
３６ｂ  格納時間判定部
３７ｂ  開放部
４０  記憶部
４１  共通バッファ
４２  キューポインタ記憶部
４３  結合情報記憶部
４４  識別子記憶部
４５  空き情報記憶部
４６ｂ  エージング管理記憶部
４７ｂ  エージングポリシー記憶部
【図１】
2008278241.tif 000003
【図２】
2008278241.tif 000004
【図３】
2008278241.tif 000005
【図４】
2008278241.tif 000006
【図５】
2008278241.tif 000007
【図６】
2008278241.tif 000008
【図７】
2008278241.tif 000009
【図８】
2008278241.tif 000010
【図９】
2008278241.tif 000011
【図１０】
2008278241.tif 000012
【図１１】
2008278241.tif 000013
【図１２】
2008278241.tif 000014
【図１３】
2008278241.tif 000015
【図１４】
2008278241.tif 000016
【図１５】
2008278241.tif 000017
【図１６】
2008278241.tif 000018
【図１７】
2008278241.tif 000019
【図１８】
2008278241.tif 000020
【図１９】
2008278241.tif 000021
【図２０】
2008278241.tif 000022
【図２１】
2008278241.tif 000023
【図２２】
2008278241.tif 000024