説明

伝送装置、伝送装置制御方法、および伝送装置制御プログラム

【課題】フレームを結合する際に誤りを検出することを課題とする。
【解決手段】分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納し、フレーム結合情報を用いて分割されたフレームを結合する場合に、所定の記憶部に格納された識別子を用いて、結合関係が正しいか否かを判定する。具体的には、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を所定の記憶部に格納し、フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、結合関係が正しいか否かを判定する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、伝送装置、伝送装置制御方法、および伝送装置制御プログラムに関する。
【背景技術】
【0002】
従来より、受信したフレームを他の伝送装置に送信する際に、フレームを受信してから送信するまでの間このフレームをバッファする伝送装置(例えば、スイッチなど)がある。このような伝送装置では、送信キューごとにメモリを配置するのではなく、メモリを固定サイズの複数の領域に仕切ることによって、すべての送信キューが一つのメモリを用いる共通バッファ方式が主に用いられている。このような共通バッファ方式を採用した伝送装置では、固定サイズの領域(単位バッファ)に仕切られて用いられるバッファを効率よく使用することを目的として、様々な工夫がされている。
【0003】
例えば、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)を用いてフレームをバッファする伝送装置がある。このような伝送装置では、容量の問題からFPGAやASICの外部にメモリチップを実装し、また、このメモリチップを実装する際には、送信キューごとにメモリを配置するのではなく、一つのメモリに全ての送信キューを格納する共通バッファ方式が主に採用されている。
【0004】
また、例えば、図21に示すように、共通バッファ方式を採用した伝送装置では、固定サイズの領域である単位バッファごとに共通バッファを仕切られ、また、各単位バッファをそれぞれ一意に識別するための情報が割り振られる。そして、フレームを受信すると、このフレームが単位バッファより大きい場合には分割し、その後、単位バッファに格納する(図21参照)。そして、図22に示すように、単位バッファごとに、共通バッファにおいてどの領域(単位バッファ)がフレーム(データ)未格納領域かを示す空き情報を記憶し(図22の「空き情報管理テーブル」参照)、受信したフレームごとに、分割されて格納されたフレームにおける先頭のフレームが格納された単位バッファの位置と最後尾のフレームが格納された単位バッファの位置とを示すキューポインタ情報を記憶し(図22の「キューポインタ管理テーブル」参照)、分割されたフレームごとに、分割されたフレームの格納先を管理する情報として、分割されたフレームにおいて最後尾のフレームかを示す情報と、後方部に結合するフレームが格納された単位バッファの位置とを示す結合情報を記憶する(図22の「結合情報管理テーブル」参照)。なお、図21および図22は、従来技術に係る共通バッファ方式を説明するための図である。
【0005】
そして、例えば、図22に示すように、共通バッファ方式においては、単位バッファに格納されたフレームを結合して読み出す際に、伝送装置は、まず、分割されたフレームにおいて先頭のフレームが格納された単位バッファの位置を取得する(図22の(1)に示す例では「2」を取得する)。その後、取得した先頭のフレームが格納された単位バッファの位置から、結合情報を順に取得する(図22の(2)〜(4)に示す例では、「EOQ:0、Next:5」「EOQ:0,Next:8」「EOQ:1、Next:(ナシ)」を取得する)。ここで、最後尾のフレームを示す情報(図22に示す例では、「EOQ=1」)を取得すると、取得した結合情報に基づいて、順にフレームを読み出して結合し、フレームを読み出した単位バッファを未格納領域として空き情報管理テーブルに書き込み(図22の(5)参照)、結合処理を無事終了する。
【0006】
例えば、特許文献1では、バッファの各領域(単位バッファ)における状態(例えば、データが格納されているか否か、格納されているデータが複数の単位バッファを使用しているか否か)を表す種別と、バッファにおける対応する領域(単位バッファ)を示す情報とを対応付けて記憶してバッファを管理する技術が開示されている。
【0007】
【特許文献1】特開平4−333946号公報(第1−2頁、第1図)
【発明の開示】
【発明が解決しようとする課題】
【0008】
ところで、上記した従来の技術は、フレームを結合する際に誤りを検出することができないという課題があった。そして、その結果、誤った結合処理を行うことにより、結合処理が暴走する(ループ状態に陥る)という課題があった。
【0009】
例えば、図22に示す例では、フレームを結合する際に、運用中の設定変更やノイズなどにより誤った結合情報を取得した場合に、例えば、図22の(6)に示すように、「5」についての結合情報を取得した後に、適切な単位バッファのアドレスである「8」ではなく「7」を誤って取得した場合に、適切な単位バッファのアドレスではないことを認識できないという課題があった。また、その結果、例えば、図22の(6)に示すように、取得するはずであった「EOQ=1」を取得することができないために、処理が終了せず、その後さらに、「7」の後方部に結合するフレームが格納された単位バッファの位置として「9」を取得して結合処理が続行することにより、結合処理が暴走する(ループ状態に陥る)という課題があった。
【0010】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、フレームを結合する際に誤りを検出することが可能である伝送装置、伝送装置制御方法および伝送装置制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置であって、前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手段と、前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手段と、を備えたことを特徴とする。
【0012】
また、請求項2に係る発明は、上記の発明において、前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、前記分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を所定の記憶部に格納し、前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、前記結合関係が正しいか否かを判定することを特徴とする。
【0013】
また、請求項3に係る発明は、上記の発明において、前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子として、当該他のフレームが格納されている単位バッファを一意に特定する情報を所定の記憶部に格納し、前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、後段となるフレームの前方識別子で特定される単位バッファに、前段となるフレームが格納されているか否かを判定することで、前記結合関係が正しいか否かを判定することを特徴とする。
【0014】
また、請求項4に係る発明は、上記の発明において、前記分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納する復旧用識別子格納手段と、前記フレーム結合情報を用いて結合される二つのフレームの間で、前記結合判定手段によって前記結合関係が正しくないと判定された場合に、前記所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御する結合制御手段と、をさらに備えたことを特徴とする。
【0015】
また、請求項5に係る発明は、上記の発明において、前記単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を所定の記憶部に格納する格納情報格納手段と、前記単位バッファごとに、前記所定の記憶部に格納された格納情報を監視して、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定する格納時間判定手段と、前記格納時間判定手段によって所定の単位バッファについて所定の時間が経過したと判定された場合に、当該所定の単位バッファを開放してフレームが格納されていないようにする単位バッファ開放手段と、をさらに備えたことを特徴とする。
【0016】
また、請求項6に係る発明は、送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する伝送装置制御方法であって、前記伝送装置が、前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納工程と、前記伝送装置が、前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定工程と、を含んだことを特徴とする。
【0017】
また、請求項7に係る発明は、送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する方法をコンピュータに実行させる伝送装置制御プログラムであって、前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手順と、前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【0018】
請求項1、6および7の発明によれば、伝送装置は、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納し、フレーム結合情報を用いて分割されたフレームを結合する場合に、所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定するので、フレームを結合する際に誤りを検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する(例えば、処理を終了する、処理を中断する、処理を停止するなど)ことにより、誤った結合処理を行うことにより処理が暴走する(ループ状態に陥る)ことを防止することが可能である。
【0019】
また、請求項2の発明によれば、伝送装置は、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、前記分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を所定の記憶部に格納し、フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、前記結合関係が正しいか否かを判定するので、フレームを結合する際に誤りを確実に検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する(例えば、処理を終了する、処理を中断する、処理を停止するなど)ことにより、誤った結合処理を行うことにより処理が暴走する(ループ状態に陥る)ことを防止することが可能である。
【0020】
また、請求項3の発明によれば、伝送装置は、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子として、当該他のフレームが格納されている単位バッファを一意に特定する情報を所定の記憶部に格納し、フレーム結合情報を用いて結合される二つのフレームについて、後段となるフレームの前方識別子で特定される単位バッファに、前段となるフレームが格納されているか否かを判定することで、結合関係が正しいか否かを判定するので、識別子を一つ付与するのみで、フレームを結合する際に誤りを確実に検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する(例えば、処理を終了する、処理を中断する、処理を停止するなど)ことにより、誤った結合処理を行うことにより処理が暴走する(ループ状態に陥る)ことを防止することが可能である。
【0021】
また、請求項4の発明によれば、伝送装置は、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納し、フレーム結合情報を用いて結合される二つのフレームの間で、結合判定手段によって前記結合関係が正しくないと判定された場合に、所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御するので、結合先が正しいか否かを判定できるだけでなく、結合先が誤っている場合には、正しい結合先を読み出すことで結合処理を復旧することが可能である。
【0022】
また、請求項5の発明によれば、伝送装置は、単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を所定の記憶部に格納し、単位バッファごとに、前記所定の記憶部に格納された格納情報を監視して、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定し、所定の単位バッファについて所定の時間が経過したと判定された場合に、当該所定の単位バッファを開放してフレームが格納されていないようにするので、開放されるべきにもかかわらず開放されていない領域を開放することができ、バッファ資源を有効に活用することが可能である。
【発明を実施するための最良の形態】
【0023】
以下に添付図面を参照して、この発明に係る伝送装置、伝送装置制御方法、および伝送装置制御プログラムの実施例を詳細に説明する。なお、以下では、本実施例に係る伝送装置の概要および特徴、伝送装置の構成および処理の流れを順に説明する。
【実施例1】
【0024】
[伝送装置の概要および特徴]
まず最初に、図1を用いて、本実施例に係る伝送装置の概要および特徴を説明する。図1は、実施例1に係る伝送装置の概要および特徴を説明するための図である。
【0025】
同図に示すように、実施例1に係る伝送装置は、図1の「結合情報管理テーブル」に示すように、分割されたフレームごとに、分割されたフレームの格納先を管理する情報を記憶する。具体的には、分割されたフレームにおいて最後尾のフレームか否かを示す「EOQ」情報と、後方部に結合するフレームが格納された単位バッファの位置を示す「Next」とを対応付けて記憶する。
【0026】
そして、実施例1に係る伝送装置は、送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として結合情報管理テーブルに格納する。具体的には、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納した場合には、「EOQ:0」と「Next:5」とを単位バッファ「2」に対応させて格納し、「EOQ:0」と「Next:8」とを単位バッファ「5」に対応させて格納し、「EOQ:1」と「Next:(ナシ)」とを単位バッファ「8」に対応させて格納する。
【0027】
そして、実施例1に係る伝送装置は、フレーム結合情報を用いて分割されたフレームを結合して送信する。具体的には、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納した場合には、例えば、単位バッファ「2」を読み出し、そして、単位バッファ「2」の「Next:5」に対応する単位バッファ「5」を読み出し、その後、単位バッファ「5」の「Next:8」に対応する単位バッファ「8」を読み出し、続いて、単位バッファ「2」「5」「8」に格納されたフレームを順に読み出して結合して送信する。
【0028】
このような概要を有する伝送装置は、以下で説明するように、フレームを結合する際に誤りを検出することが可能であり、誤った結合処理を行うことにより処理が暴走する(ループ状態に陥る)のを防止することが可能である点に主たる特徴がある。
【0029】
すなわち、実施例1に係る伝送装置は、図1の「識別子情報管理テーブル」に示すように、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を識別子情報管理テーブルに格納する。
【0030】
具体的に例をあげれば、図1に示す例では、実施例1に係る伝送装置は、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納した場合には、単位バッファ「2」の「Next Code」に格納する前方識別子と、単位バッファ「5」の「Before Code」に格納する後方識別子とに同一の情報(例えば、「123」)を格納し、また、単位バッファ「5」の「Next Code」に格納する前方識別子と、単位バッファ「8」の「Before Code」に格納する後方識別子とに同一の情報(例えば、「542」)を格納する。
【0031】
そして、実施例1に係る伝送装置は、フレーム結合情報を用いて分割されたフレームを結合する場合に、識別子情報管理テーブルに格納された識別子を用いて、結合関係が正しいか否かを判定する。具体的には、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となる否かを判定する。そして、例えば、結合関係が正しいと判定した際には、結合処理を続行し、結合関係が正しくないと判定した際には処理を終了する。
【0032】
より詳細には実施例1に係る伝送装置は、「Next」によって導きだされた二つのフレーム間で、「Next Code」と「Before Code」とを判定する。具体的に例をあげれば、図1に示す例では、図1の(1)に示すように、「Next:5」に応じて単位バッファ「5」が導き出された場合には、単位バッファ「2」の「Next Code:123」と単位バッファ「5」の「Before Code:123」とが同一になり(比較一致)、結合関係が正しいと判定する。一方、図1の(2)に示すように、「Next:8」に応じて誤って(誤認識)単位バッファ「7」が導き出された場合には、単位バッファ「5」の「Next Code:542」と単位バッファ「7」の「Before Code:697」とが同一にならず(比較不一致)、結合関係が正しくないと判定する。そして、例えば、結合関係が正しいと判定した際には、結合処理を続行し、結合関係が正しくないと判定した際には処理を終了する。
【0033】
このようなことから、実施例1に係る伝送装置は、上記した主たる特徴の如く、フレームを結合する際に誤りを検出することが可能である。そして、誤りである旨の判定結果を得た場合に対処する(例えば、処理を終了する、処理を中断する、処理を停止するなど)ことにより、誤った結合処理を行うことにより処理が暴走する(ループ状態に陥る)ことを防止することが可能である。
【0034】
[実施例1における伝送装置の構成]
次に、図2を用いて、実施例1に係る伝送装置の構成を説明する。図2は、実施例1における伝送装置の構成を示すブロック図である。同図に示すように、この伝送装置は、フレーム入力部10と、フレーム出力部20と、制御部30と、記憶部40を備えている。なお、本実施例に示す伝送装置の構成に関する説明は、本実施例に密接に関連する箇所のみを重点的に説明し、その他の構成に係る説明は、従来の伝送装置と同様であるため、省略または簡潔に行う。
【0035】
フレーム入力部10は、他の伝送装置からフレームを受信する。また、フレーム出力部20は、後述する読み出し部33によって結合されたフレームを他の伝送装置に対して出力する。
【0036】
記憶部40は、制御部30による各種処理に必要なデータを格納し記憶する。特に本発明に密接に関連するものとしては、共通バッファ41と、キューポインタ記憶部42と、結合情報記憶部43と、識別子記憶部44と、空き情報記憶部45とを備える。
【0037】
共通バッファ41は、複数の単位バッファによって構成され、受信したフレームをバッファし、メモリなどによって構成される。具体的には、固定サイズの領域である単位バッファによって仕切られ、また、共通バッファを構成する各単位バッファには、それぞれの単位バッファを一意に識別するための情報が割り振られている。
【0038】
キューポインタ記憶部42は、受信したフレームごとに、キューポイント情報を記憶する。具体的には、図3に示すように、受信したフレームごとに、受信したフレームを送信する送信キューを一意に特定する番号を示す「送信キュー番号」と、該当する送信キュー内のキューポインタを一意に特定する番号を示す「キューポインタ番号」とに対応付けて、分割されたフレームにおける先頭となるフレームが格納された単位バッファを一意に特定するアドレスを示す「Head」と、分割されたフレームにおける最後尾となるフレームが格納された単位バッファを一意に特定するアドレスを示す「Tail」とを「キューポインタ管理テーブル」に記憶する。さらに、各送信キューごとに、フレームを書き込む際にいずれのキューポインタ番号を現に使用しているかを示す「キューポインタ書き込み側アドレス」と、各送信キューごとに、フレームを読み出す際にいずれのキューポインタ番号を現に使用しているかを示す「キューポインタ読み出し側アドレス」とを、送信キューごとにいずれかのキューポインタ番号と対応付けて「キューポインタ管理テーブル」に記憶する。
【0039】
例えば、図3に示す例では、キューポインタ記憶部42は、送信キュー「2」のフレームがキューポインタ「3」に格納される際に、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納された場合、すなわち、先頭のフレームを単位バッファ「2」に格納して最後尾のフレームを「8」に格納した場合には、「送信キュー2」と「キューポインタ番号:3」とに対応付けて、「Head:2」と「Tail:8」とを「キューポインタ管理テーブル」に記憶する。なお、図3は、実施例1におけるキューポインタ記憶部に記憶されるキューポインタの一例を示す図である。
【0040】
結合情報記憶部43は、分割されたフレームごとに、分割されたフレームの格納先を管理する情報を記憶する。具体的には、図4に示すように、単位バッファごとに、単位バッファを一意に特定するアドレスを示す「単位バッファアドレス」と、当該単位バッファアドレスに格納されたフレームが分割されたフレームにおいて最後尾のフレームか否かを示す「EOQ」と、当該単位バッファアドレスに格納されたフレームの後方部に結合するフレームが格納された単位バッファの位置を示す「Next」とを対応付けて「結合情報管理テーブル」に記憶する。例えば、図4に示す例では、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納された場合、すなわち、先頭のフレームが「2」に格納され、「2」の後方部に結合するフレームが「5」に格納され、「5」の後方部に結合するフレーム(最後尾のフレーム)が「8」に格納された場合には、「単位バッファアドレス:2」に対応付けて「EOQ:0」と「Next:5」とを記憶し、「単位バッファアドレス:5」に対応付けて「EOQ:0」と「Next:8」とを記憶し、「単位バッファアドレス:7」に対応付けて「EOQ:0」と「Next:10」とを対応付けて記憶し、「単位バッファアドレス:8」と「EOQ:1」と「Next:(ナシ)」とを記憶する。なお、図4は、実施例1における結合情報記憶部に記憶される結合情報の一例を示す図である。
【0041】
識別子記憶部44は、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を記憶する。具体的には、図5に示すように、単位バッファごとに、「単位バッファアドレス」と、当該単位バッファアドレスに格納されたフレームの後方部に結合するフレームか否かを識別するための識別子を示す「後方識別子」と、当該単位バッファアドレスに格納されたフレームの前方部に結合するフレームか否かを識別するための識別子を示す「前方識別子」とを対応付けて「識別子情報管理テーブル」に記憶する。例えば、図5に示す例では、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納された場合、すなわち、先頭のフレームが「2」に格納され、「2」の後方部に結合するフレームが「5」に格納され、「5」の後方部に結合するフレーム(最後尾のフレーム)が「8」に格納された場合には、「2」についての「後方識別子」(例えば、「123」)と「5」についての「前方識別子」(例えば、「123」)とを対応させて記憶し、「5」についての「後方識別子」(例えば、「542」)と「8」についての「前方識別子」(例えば、「542」)とを対応させて記憶する。なお、図5は、実施例1における識別子記憶部に記憶される識別子の一例を示す図である。
【0042】
空き情報記憶部45は、単位バッファごとに、共通バッファにおけるどの領域(単位バッファ)がフレーム(データ)未格納領域かを示す空き情報を記憶する。具体的には、図6に示すように、空き情報を一意に識別するための番号である「空き情報管理番号」に対応付けて、フレーム(データ)未格納領域である単位バッファを一意に特定するアドレスを示す「空き単位バッファアドレス」を「空き情報管理テーブル」に記憶する。さらに、フレームを書き込む際にいずれの空き単位バッファアドレスを現に使用しているかを示す「空き情報書き込み側アドレス」と、フレームを読み出す際にいずれの空き単位バッファアドレスを現に使用しているかを示す「空き情報読み出し側アドレス」とをいずれかの空き単位バッファアドレスと対応付けて「空き情報管理テーブル」に記憶する。
【0043】
例えば、図6に示す例では、空き情報記憶部45は、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納され、かつ、空き情報書き込み側アドレス「1」であった場合には、「空き情報管理番号:2」に対応付けて「空き単位バッファアドレス:2」を記憶し、「空き情報管理番号:3」に対応付けて「空き単位バッファアドレス:5」を記憶し、「空き情報管理番号:4」に対応付けて「空き単位バッファアドレス:8」を記憶し、「空き情報書き込み側アドレス」に対応付けて「空き情報管理番号:4」を記憶する。なお、図6は、実施例1における空き情報記憶部に記憶される空き情報の一例を示す図である。
【0044】
制御部40は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部である。特に本発明に密接に関連するものとしては、図2に示すように、格納部31と、識別子付与部32と、読み出し部33と、結合判定部34とを備える。なお、識別子付与部32は、特許請求の範囲に記載の「識別子格納手段」に対応し、結合判定部34は、特許請求の範囲に記載の「結合判定手段」に対応する。
【0045】
格納部31は、送信対象であるフレームを分割して共通バッファ41における複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として結合情報記憶部43に格納する。また、書き込みを行う際に使用する「キューポインタ番号」を示す「書き込み側アドレス」をキューポインタ記憶部42と空き情報記憶部45とに設定する。なお、格納部31による処理の詳細は、後に図7および図8を用いて説明する。
【0046】
識別子付与部32は、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を識別子記憶部44に格納する。具体的には、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を識別子記憶部44に格納する。例えば、結合する二つのフレームにおいて、前方部に結合するフレームの後方識別子と、後方部に結合するフレームの前方識別子とに同一の情報を付与して識別子記憶部44に格納する。なお、識別子付与部32による処理の詳細は、後に図7および図8を用いて説明する。
【0047】
読み出し部33は、結合情報記憶部43に格納されたフレーム結合情報を用いて分割されたフレームを結合する。また、読み出しを行う際に使用する「キューポインタ番号」を示す「読み出し側アドレス」をキューポインタ記憶部42と空き情報記憶部45とに設定する。なお、読み出し部33による処理の詳細は、後に図9および図10を用いて説明する。
【0048】
結合判定部34は、フレーム結合情報を用いて分割されたフレームを結合する場合に、識別子記憶部44に格納された識別子を用いて、結合関係が正しいか否かを判定する。具体的には、フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、結合関係が正しいか否かを判定する。さらに詳細には、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となるか否かを判定する。例えば、結合する二つのフレームにおいて、前方部に結合するフレームの後方識別子が「123」である場合に、後方部に結合するフレームの前方識別子が「123」であるか否かを判定する。なお、結合判定部34による処理の詳細は、後に図9および図10を用いて説明する。
【0049】
ところで、上記した伝送装置は、例えば、フレームを転送する転送装置に適用することができ、図19に示すように構成される。ここで、同図に示すように、フレームを受信する受信バッファ1901と、複数の受信バッファ1901から受信する多数のフレームを多重化して共通バッファに伝送するMUX(multiplexer)1902とが、図2に示すフレーム入力部10に対応し、受信したフレームをバッファする共通バッファ1903が、図2に示す共通バッファ41に対応し、フレームを選択して送信するSELECT1904が、図2に示すフレーム出力部20に対応する。また、キューポインタを記憶するQueue Pointer管理テーブル1905が、図2に示すキューポインタ記憶部42に対応し、空き情報を記憶する空き管理テーブル1906が、図2に示す空き情報管理記憶部45に対応し、結合情報を記憶するChain管理テーブル1907が、図2に示す結合情報記憶部43に対応する。また、読み出しアドレスおよび書き込みアドレスを管理するスケジューラ1908と、共通バッファ書き込み側制御1909とが、図2に示す格納部31と識別子付与部32とに対応し、スケジューラ1908と共通バッファ読み出し側制御1910とが、図2に示す読み出し部33と結合判定部34とに対応する。なお、図19は、本発明を用いた共通バッファ型フレーム転送装置の一例を示す図である。
【0050】
[実施例1に係る受信したフレーム格納の処理]
次に、図7および図8を用いて、実施例1におけるフレーム格納の処理を説明する。なお、図7は、実施例1におけるフレーム格納の処理を示すフローチャートであり、図8は、実施例1におけるフレーム格納の処理を説明するための図である。
【0051】
まず、格納部31は、フレーム入力部10によってフレームが受信されると(ステップS101肯定)、所定の容量より大きいかを判定する(ステップS102)。つまり、受信したフレームが単位バッファの容量より大きいかを判定する。
【0052】
ここで、格納部31は、受信したフレームが所定の容量より小さい場合には(ステップS102否定)、空き情報記憶部45における書き込み側アドレスを1インクリメントする(ステップS103)。その後、空き情報記憶部45を確認して、空き単位バッファを取得する(ステップS104)。そして、取得した空き単位バッファにフレームを格納する(ステップS105)。例えば、図8の(0)に示す例では、空き情報管理テーブルにおける書き込み側アドレス(次に取得する空き単位バッファ)が「空き情報管理番号:5」である場合に、書き込み側アドレスを1インクリメントして、「空き情報管理番号:6」にセットする。その後、図8の(1)に示す例では、空き情報管理テーブルにおいて、「空き情報管理番号:6」と対応付けて格納された「空き単位バッファアドレス:2」を取得する。そして、図8に示す例では、「空き単位バッファアドレス:2」に受信したフレームを格納する。
【0053】
その後、格納部31は、キューポインタ記憶部42における書き込み側アドレスを1インクリメントし(ステップS106)、キューポインタ記憶部42にキューポイント情報を格納する(ステップS107)。つまり、例えば、図8に示す例では、キューポインタ管理テーブルにおける書き込み側アドレスを1インクリメントして、キューポイント情報を格納する。そして、フレーム格納の処理を終了する。
【0054】
一方、格納部31は、受信したフレームが所定の容量より大きい場合には(ステップS102肯定)、受信したフレームを分割する(ステップS108)。つまり、受信したフレームを単位バッファに格納できるサイズに分割する。そして、最前部のフレームを選択する(ステップS109)。
【0055】
そして、格納部31は、空き情報記憶部45における書き込み側アドレスを1インクリメントして(ステップS110)、空き情報記憶部45を確認して空き単位バッファを取得し(ステップS111)、取得した空き単位バッファにフレームを格納する(ステップS112)。
【0056】
そして、格納部31は、すべてのフレームを単位バッファに格納したかを判定する(ステップS113)。ここで、すべてのフレームを格納していない場合には(ステップS113否定)、次のフレームを選択する(ステップS114)。つまり、例えば、図8の(2)および(3)に示す例では、書き込み側アドレスを1インクリメントして「空き単位バッファアドレス:5」を取得してフレームを格納し、さらに、書き込み側アドレスを1インクリメントして「空き単位バッファアドレス:8」を取得してフレームを格納する。
【0057】
一方、格納部31は、上記したステップS113において、すべてのフレームを格納するまで、上記したステップS110からS114までの処理を繰り返す。そして、すべてのフレームを単位バッファに格納した場合には(ステップS113肯定)、キューポインタ記憶部42における書き込み側アドレスを1インクリメントし(ステップS115)、キューポインタ記憶部42にキューポインタ情報を格納する(ステップS116)。つまり、例えば、図8の(4)に示す例では、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納された場合、すなわち、先頭のフレームを単位バッファ「2」に格納して最後尾のフレームを「8」に格納した場合には、キューポインタ管理テーブルにおける書き込み側アドレスを1インクリメントして、「Head:2」と「Tail:8」とを対応付けてキューポインタ管理テーブルに格納する。
【0058】
そして、格納部31は、結合情報を格納する(ステップS117)。つまり、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として結合情報記憶部43に格納する。例えば、図8の(5)に示す例では、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納された場合、すなわち、先頭のフレームが「2」に格納され、「2」の後方部に結合するフレームが「5」に格納され、「5」の後方部に結合するフレーム(最後尾のフレーム)が「8」に格納された場合には、結合情報管理テーブルにおいて、「単位バッファアドレス:2」に対応付けて「EOQ:0」と「Next:5」とを格納し、「単位バッファアドレス:5」に対応付けて「EOQ:0」と「Next:8」とを格納し、「単位バッファアドレス:8」に対応付けて「EOQ:1」と「Next:(ナシ)」とを格納する。
【0059】
そして、識別子付与部32は、前方識別子と後方識別子とを付与して格納する(ステップS118)。つまり、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を識別子記憶部44に格納する。例えば、図8の(6)に示す例では、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納された場合、すなわち、先頭のフレームが「2」に格納され、「2」の後方部に結合するフレームが「5」に格納され、「5」の後方部に結合するフレーム(最後尾のフレーム)が「8」に格納された場合には、「2」についての「後方識別子」と「5」についての「前方識別子」とに同一の識別子(例えば、「123」)を付与して結合情報管理テーブルに格納し、「5」についての「後方識別子」と「8」についての「前方識別子」(例えば、「542」)とに同一の識別子(例えば、「542」)を付与して結合情報管理テーブルに格納する。そして、フレーム格納の処理を終了する。
【0060】
[実施例1に係るフレーム読み出しの処理]
次に、図9および図10を用いて、実施例1におけるフレーム読み出しの処理を説明する。なお、図9は、実施例1におけるフレーム読み出しの処理を示すフローチャートであり、図10は、実施例1におけるフレーム読み出しの処理を説明するための図である。
【0061】
まず、読み出し部33は、読み出しタイミングとなると(ステップS201肯定)、キューポインタ記憶部における読み出し側アドレスを1インクリメントする(ステップS202)。つまり、例えば、図10に示す例では、キューポインタ管理テーブルにおける読み出し側アドレス(次に取得するキューポイント)が「送信キュー1:1」である場合に、読み出し側アドレスを1インクリメントして、「送信キュー1:2」にセットする。
【0062】
そして、読み出し部33は、キューポインタ管理テーブルから先頭および最後尾のフレームが格納された単位バッファの位置を取得する(ステップS203)。つまり、例えば、図10の(1)に示す例では、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納された場合、すなわち、先頭のフレームを単位バッファ「2」に格納して最後尾のフレームを「8」に格納した場合には、キューポインタ管理テーブルから、「Head:2」と「Tail:8」とを取得する。
【0063】
そして、読み出し部33は、結合情報があるか否かを判定する(ステップS204)。ここで、結合情報がない場合(ステップS204否定)、つまり「Head」と「Tail」が同じ場合には、空き情報管理テーブルの読み出し側アドレスを1インクリメントし(ステップS205)、取得した単位バッファアドレスを空き情報管理テーブルに書き込む(ステップS206)。そして、取得した単位バッファアドレスからフレームを読み出して送信し(ステップS207)、フレーム読み出しの処理を終了する。
【0064】
一方、読み出し部33は、結合情報がある場合には(ステップS204肯定)、先頭のフレームについて結合情報を結合情報記憶部43から取得する(ステップS208)。例えば、図10の(2)に示す例では、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納された場合、すなわち、先頭のフレームが「2」に格納され、「2」の後方部に結合するフレームが「5」に格納され、「5」の後方部に結合するフレーム(最後尾のフレーム)が「8」に格納された場合には、単位バッファ「2」についての結合情報である「EOQ:0」と「Next:5」とを結合情報管理テーブルから取得する。そして、識別子記憶部44から識別子を取得する(ステップS209)。つまり、例えば、図10の(3)に示す例では、単位バッファ「2」についての識別情報である「Before Code:(ナシ)」と「Next Code:123」とを結合情報管理テーブルから取得する。
【0065】
そして、読み出し部33は、最後尾のフレームかを判定する(ステップS210)。例えば、取得した結合情報について、「EOQ:1」であるかどうかを判定する。ここで、最後尾のフレームでない場合には(ステップS210否定)、次のフレームについての結合情報を結合情報記憶部43からを取得する(ステップS211)。例えば、図10の(4)に示す例では、「EOQ:0」と「Next:5」とを結合情報管理テーブルから取得する。その後、識別子記憶部44から識別子を取得する(ステップS212)。例えば、図10の(5)に示す例では、「Before Code:123」と「Next Code:542」とを結合情報管理テーブルから取得する。
【0066】
そして、結合判定部34は、結合関係が正しいかを判定する(ステップS213)。具体的には、フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、結合関係が正しいか否かを判定する。さらに詳細には、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となるか否かを判定する。
【0067】
ここで、結合判定部34は、結合関係が正しい場合には(ステップS214肯定)、つまり、例えば、図10の(6)に示す例では、前段となるフレームの後方識別子である「Next Code:123」と後段となるフレームの前方識別子と「Before Code:123」とが同一(比較一致)であり結合関係が正しいと判定した場合には、後段のフレームが最後尾のフレームかを判定する(ステップS210)。一方、結合関係が正しくない場合には(ステップS214否定)、つまり、例えば、図10の(7)に示す例では、「Next:8」に応じて誤って(誤認識)単位バッファ「7」が導き出された場合には、単位バッファ「5」の「Next Code:542」と単位バッファ「7」の「Before Code:697」とが同一にならず(比較不一致)、結合関係が正しくないと判定する。そして、フレーム読み出しの処理を終了する。
【0068】
一方、読み出し部33は、上記したステップS210において、最後尾のフレームを取得するまで、上記したステップS211からS214までの処理を繰り返す。そして、最後尾のフレームである場合には(ステップS210肯定)、キューポインタ記憶部42から取得したキューポインタ情報と一致するかを判定する(ステップS215)。つまり、例えば、10の(8)に示す例では、「単位バッファアドレス:8」と「Tail:8」とが一致するかどうかを判定する。その結果、一致する場合には(ステップS215肯定)、空き情報記憶部45における読み出し側アドレスを1インクリメントし(ステップS216)、フレームを読み出した単位バッファのアドレスを書き込む(ステップS217)。ここで、上記したステップS209およびS212において取得したすべての単位バッファアドレスを書き込んでいない場合には(ステップS218否定)、再度読み出し側アドレスを1インクリメントして取得した単位バッファアドレスを書き込む(ステップS216およびS217)。その後、すべての単位バッファアドレスを書き込んだ場合には(ステップS218肯定)、取得した単位バッファアドレスからフレームを読み出して結合して送信し(ステップS219)、フレーム読み出しの処理を終了する。
【0069】
[実施例1の効果]
上記したように、実施例1によれば、伝送装置は、分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を識別子記憶部44に格納し、フレーム結合情報を用いて分割されたフレームを結合する場合に、識別子記憶部44に格納された識別子を用いて、結合関係が正しいか否かを判定するので、フレームを結合する際に誤りを検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する(例えば、処理を終了する、処理を中断する、処理を停止するなど)ことにより、誤った結合処理を行うことにより処理が暴走する(ループ状態に陥る)のを防止することが可能である。
【0070】
また、実施例1によれば、伝送装置は、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を識別子記憶部44に格納し、フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、結合関係が正しいか否かを判定するので、フレームを結合する際に誤りを確実に検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する(例えば、処理を終了する、処理を中断する、処理を停止するなど)ことにより、誤った結合処理を行うことにより処理が暴走する(ループ状態に陥る)のを防止することが可能である。
【0071】
また、実施例1によれば、伝送装置は、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となるように識別子記憶部44に格納し、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となる否かを判定するので、フレームを結合する際に簡便な処理で誤りを検出することが可能である。
【0072】
[前方識別子の種類について]
ところで、上記実施例1では、フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となるようにする場合について説明したが、本発明はこれに限定されるものではなく、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを所定の数式に代入すると常に一定値が得られるようにしてもよい。具体的には、前方識別子並びに後方識別子を識別子記憶部44に格納し、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを所定の数式に代入すると常に一定値が得られるか否かを判定することで、結合関係が正しいか否かを判定してもよい。例えば、前方識別子と後方識別子との和や差や積や乗数やこれらを単数または複数用いた所定の数式に代入すると一定の値になるような識別子を格納して判定してもよい。
【0073】
また、上記実施例1では、前方識別子と後方識別子とを用いて判定する場合について説明したが、本発明はこれに限定されるものではなく、当該フレームの前方部に結合するフレームが格納されたアドレスを前方識別子として所定の記憶部に格納してもよい。
【0074】
すなわち、伝送装置は、分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子として、当該他のフレームが格納されている単位バッファを一意に特定する情報を所定の記憶部に格納する。具体的には、図11に示すように、当該分割されたフレームの前方部で結合される他のフレームが格納されている単位バッファを一意に特定する情報を、「Before Code」として格納する。例えば、図11の(1)に示す例では、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納された場合、すなわち、先頭のフレームが「2」に格納され、「2」の後方部に結合するフレームが「5」に格納され、「5」の後方部に結合するフレーム(最後尾のフレーム)が「8」に格納された場合には、結合情報管理テーブルにおける「単位バッファアドレス:5」に「Before Code:2」を格納し、「単位バッファアドレス:8」に「Before Code:5」を格納する。なお、図11は、実施例1における前方部に結合されるフレームが格納されている単位バッファのアドレスを前方識別子として用いたフレーム読み出しの処理を説明するための図である。
【0075】
そして、伝送装置は、フレーム結合情報を用いて結合される二つのフレームについて、後段となるフレームの前方識別子で特定される単位バッファに、前段となるフレームが格納されているか否かを判定することで、結合関係が正しいか否かを判定する。具体的には、後段となるフレームの前方識別子で特定される単位バッファと、前段となるフレームが格納されている単位バッファとが一致するか否かを判定することで、結合関係が正しいか否かを判定する。例えば、図11の(2)に示すように、「単位バッファアドレス:2」のフレームを取得した後に「単位バッファアドレス:5」のフレームを取得した場合に、「単位バッファアドレス:5」に対応付けて格納されている「Before Code」は「2」であり、前段となるフレームは「単位バッファアドレス:2」に格納されているため、結合関係は正しいと判定する。一方、図11の(3)に示すように、「単位バッファアドレス:5」のフレームを取得した後に「単位バッファアドレス:7」のフレームを取得した場合(例えば、ノイズなどにより)に、「単位バッファアドレス:7」と対応付けて格納されている「Before Code」は「3」であり、前段となるフレームは「単位バッファアドレス:2」に格納されているため、結合関係は正しくないと判定する。
【0076】
このようなことから、上記の伝送装置は、識別子を一つ付与するのみで、フレームを結合する際に誤りを確実に検出することが可能である。つまり、誤りである旨の判定結果を得た場合に対処する(例えば、処理を終了する、処理を中断する、処理を停止するなど)ことにより、誤った結合処理を行うことにより処理が暴走する(ループ状態に陥る)のを防止することが可能である。
【実施例2】
【0077】
[実施例2に係る伝送装置の特徴]
さて、これまで、実施例1として、結合が正しいか否かを判定するための識別子を所定の記憶部に格納する場合について説明したが、本発明はこれに限定されるものではなく、結合処理を復旧させるための識別子を所定の記憶部に格納してもよい。
【0078】
すなわち、実施例2に係る伝送装置は、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納する。具体的には、図13に示すように、分割されたフレームごとに、次々フレームが格納されたアドレスを示す「Next2」を格納する。例えば、図13の(1)に示す例では、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納された場合、すなわち、先頭のフレームが「2」に格納され、「2」の後方部に結合するフレームが「5」に格納され、「5」の後方部に結合するフレーム(最後尾のフレーム)が「8」に格納された場合には、結合情報管理テーブルにおける「単位バッファアドレス:2」に、「Next2:8」を格納する。
【0079】
そして、実施例2に係る伝送装置は、フレーム結合情報を用いて結合される二つのフレームの間で、判定手段によって結合関係が正しくないと判定された場合に、所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御する。
【0080】
例えば、実施例2に係る伝送装置は、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納した場合には、図13の(2)に示すように、単位バッファ「5」の「Next:8」に応じて誤って(誤認識)単位バッファ「7」が導き出されると、単位バッファ「7」の「Before Code:3」と前方部に結合するフレームが格納された単位バッファアドレス「5」とが同一にならず(比較不一致)、結合関係が正しくないと判定する。その後、前段となるフレームのさらに前方部で結合されたフレームである単位バッファ「2」の復旧用識別子「Next2:8」(図13の(1)参照)を取得し、「Next2:8」に応じて単位バッファ「8」と「EOQ:1」と「Before Code:5」とを取得する。そして、例えば、結合関係が正しいと判定した際には、結合処理を続行し、結合関係が正しくないと判定した際には再度復旧用識別子を読み出して結合処理を続行し、または、結合処理を終了する。例えば、図13の(3)に示すように、単位バッファ「8」の「Before Code:5」と、当該フレームの前段となるフレームのさらに前方部で結合されたフレームである単位バッファ「2」の「Next:5」とが同一になる(比較一致)場合には、結合処理を続行する。
【0081】
このため、実施例2に係る伝送装置は、結合先が正しいか否かを判定できるだけでなく、結合先が誤っている場合には、正しい結合先を読み出すことで結合処理を復旧することが可能である。
【0082】
[実施例2に係るフレーム格納の処理]
まず、図7を用いて、実施例2に係るフレーム格納の処理を簡単に説明する。実施例2に係る伝送装置は、図7におけるステップS116の後に、すなわち、前方識別子と後方識別子とを付与して格納した後に、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納する処理を行う。具体的には、図13に示すように、識別子として「Before Code」を格納するとともに、復旧用識別子として「Next2」を識別子記憶部44に格納する処理を行う。
【0083】
[実施例1に係るフレーム読み出しの処理]
次に、図12および図13を用いて、実施例2におけるフレーム読み出しの処理を説明する。なお、図12は、実施例2におけるフレーム読み出しの処理を示すフローチャートであり、図13は、実施例2におけるフレーム読み出しの処理を説明するための図である。
【0084】
まず、読み出し部33は、読み出しタイミングとなると(ステップS301肯定)、その後、結合情報があるか否かを判定する(ステップS302〜S304)。ここで、結合情報がない場合には(ステップS304否定)、取得した単位バッファアドレスを空き情報管理テーブルに書き込む(ステップS305およびS306)。そして、取得した単位バッファアドレスからフレームを読み出して送信し(ステップS307)、フレーム読み出しの処理を終了する。一方、結合情報がある場合には(ステップS304肯定)、先頭のフレームについて結合情報を結合情報記憶部43から取得し(ステップS308)、識別子を取得する(ステップS309)。
【0085】
そして、読み出し部33は、最後尾のフレームか否かを判定する(ステップS310)。ここで、最後尾のフレームでない場合には(ステップS310否定)、次のフレームについて結合情報と識別子を取得する。
【0086】
そして、結合判定部34は、結合関係が正しいかを判定する(ステップS311〜S313)。ここで、結合判定部34は、結合関係が正しい場合には(ステップS314肯定)、後段のフレームが最後尾のフレームかを判定する(ステップS310)。
【0087】
一方、結合判定部34は、結合関係が正しくない場合には(ステップS314否定)、正しい結合先ではなかったフレームが三番目以降のフレームかを判定する(ステップS315)。つまり、当該フレームの後方部に結合されるべき他のフレームが、先頭のフレームおよび先頭のフレームの後方部に結合されるフレームではないかを判定する。ここで、三番目以降のフレームでない場合には(ステップS315否定)、フレーム読み出しの処理を終了する。一方、三番目以降のフレームである場合には(ステップS315肯定)、所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出す(ステップS316)。例えば、図13に示す例では、「単位バッファアドレス:5」と「単位バッフアドレス:7」との間における結合関係が正しくない場合に、「単位バッファアドレス:5」に格納された前段となるフレームのさらに前方部で結合された「単位バッファアドレス:2」に格納されたフレームから取得した復旧用識別子である「Next2:8」を確認する。
【0088】
その後、結合判定部34は、復旧用識別子識別子が示すアドレスについて結合情報を取得する(ステップS317)。つまり、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御する。例えば、図13に示す例では、「単位バッファアドレス:8」について、「EOQ:1」と「Next:(ナシ)」とを取得する。そして、復旧用識別子が示すアドレスについて識別子を取得する(ステップS318)。つまり、例えば、図13に示す例では、「単位バッファアドレス:8」について、「Before Code:5」を取得する。その後さらに、復旧用識別子が示すアドレスについて取得した識別子を用いて、結合関係が正しいかを判定する(ステップS313)。
【0089】
一方、結合判定部34は、上記したステップS310において、最後尾のフレームを取得するまで、上記したステップS311からS318までの処理を繰り返す。そして、上記したステップS310において、最後尾のフレームである場合には(ステップS310肯定)、キューポインタ記憶部42から取得したキューポインタ情報と一致するかを判定する(ステップS319)。ここで、キューポインタ情報と一致せず、正しい結合先ではなかったフレームが三番目以降のフレームの場合には(ステップS319否定およびS315肯定)、復旧用識別子を取得して処理を続ける(ステップS316〜S319)。また、キューポインタ情報と一致せず、正しい結合先ではなかったフレームが三番目以降のフレームでない場合には(ステップS319否定およびS315否定)、フレーム読み出しの処理を終了する。また、キューポインタ情報と一致する場合には(ステップS319肯定)、読み出したすべてのフレームのアドレスを空き情報管理テーブルに書き込んだ後に(ステップS320〜S322)、取得した単位バッファアドレスからフレームを読み出して結合して送信し(ステップS323)、フレーム読み出しの処理を終了する。
【0090】
[実施例2の効果]
上記したように、実施例2によれば、伝送装置は、分割されたフレームごとに、次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として識別子記憶部44に格納し、フレーム結合情報を用いて結合される二つのフレームの間で、結合関係が正しくないと判定された場合に、識別子記憶部44に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御するので、結合先が正しいか否かを判定できるだけでなく、結合先が誤っている場合には、正しい結合先を読み出すことで結合処理を復旧することが可能である。
【実施例3】
【0091】
さて、これまで、実施例1および実施例2として、単位バッファからフレームが読み出された後のみ、この単位バッファを開放する(フレームが格納されていない単位バッファとする)場合について説明したが、本発明はこれに限定されるものではなく、フレームを格納した後に所定の時間経過した際に、この単位バッファを開放してもよい。
【0092】
[実施例3における伝送装置の構成]
まず、図14を用いて、実施例3に係る伝送装置の構成を説明する。図14は、実施例3における携帯端末の構成を示すブロック図である。ここで、実施例1と同様の動作をするものについては、同じ番号を付して説明を省略し、以下では、エージング情報格納部35bと、格納時間判定部36bと、開放部37bと、エージング管理記憶部46bと、エージングポリシー記憶部47bとについてのみ説明を行う。
【0093】
エージング管理記憶部46bは、単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を記憶する。具体的には、図15に示すように、「単位バッファアドレス」に対応づけて、フレームが格納されているか否かを示す「Used」と、フレームが格納された後に経過した時間であるエージング経過時間を示す「Timer」と、対象となる単位バッファを開放するエージング経過時間を示す「Offset」とを記憶する。さらに、フレームを書き込む際にいずれのキューポインタ番号を現に使用しているかを示す「エージング情報読み出し側アドレス」をいずれかの単位バッファアドレスと対応付けて「エージング管理テーブル」に記憶する。
【0094】
例えば、図15に示す例では、フレームを三つに分割して、単位バッファ「2」「5」「8」に順に格納され、単位バッファ「3」にはフレームが格納されていない場合には、エージング管理記憶部46bは、「単位バッファアドレス:2」に対応付けて、「Used:1(格納中)」と「Timer:10」と「Offset:10」とを記憶し、「単位バッファアドレス:3」に対応付けて、「Used:0(ナシ格納中)」と「Timer:(ナシ)」と「Offset:(ナシ)」とを対応付けて記憶する。
【0095】
エージングポリシー記憶部47bは、後述する格納時間判定部36bによって、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定するのに用いるエージングポリシーを記憶する。具体的には、図16に示すように、送信キューを一意に特定するための番号を示す「送信キュー番号」に対応付けて、判定する際に用いる所定の時間を示す「Time」を記憶する。例えば、図16に示す例では、「送信キュー番号:2」に対応付けて「Time:10」を記憶する。
【0096】
エージング情報格納部35bは、単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を所定の記憶部に格納する。具体的には、図15に示す例では、「単位バッファアドレス」に対応付けて、「Used」と「Offset」とをエージング管理記憶部46bに格納する。なお、エージング情報格納部35bは、特許請求の範囲に記載の「格納情報格納手段」に対応する。
【0097】
ここで、例えば、図15に示す例を用いて説明すると、エージング情報格納部35bは、「単位バッファアドレス:2」にフレームが格納されている場合には、「単位バッファアドレス:2」と「Used:1」とを対応付けて格納し、「単位バッファアドレス:3」にフレームが格納されていない場合には、「単位バッファアドレス:3」と「Used:0」とを対応付けて格納する。つまり、例えば、フレームが「単位バッファアドレス:2」に書き込まれると、「単位バッファアドレス:2」に対応付けて「Used:1」を格納し、一方、例えば、フレームが「単位バッファアドレス:3」から読み出されると、「単位バッファアドレス:3」に対応付けて「Used:0」を格納する(設定する)。
【0098】
また、例えば、図15および図16に示す例を用いて説明すると、エージング情報格納部35bは、送信キュー2における「単位バッファアドレス:2、5、8」に格納されたフレームについて送信許可(読み出し許可)が出た場合に、送信許可となった「送信キュー番号:2」の「Time:10」をエージングポリシー記憶部47bから取得する(図16参照)。その後、エージング管理記憶部46bにおいて、送信許可が出たフレームが格納されている「単位バッファアドレス:2、5、8」の「Offset」に、この取得した「Time:10」を格納する(設定する)。つまり、「単位バッファアドレス:2」に対応付けて「Time:10」を格納し、「単位バッファアドレス:5」に対応付けて「Time:10」を格納し、「単位バッファアドレス:8」に対応付けて「Time:10」を格納する(設定する)。
【0099】
格納時間判定部36bは、単位バッファごとに、所定の記憶部に格納された格納情報を監視して、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定する。具体的には、図15に示す例では、エージング管理記憶部46bにおける「Timer」を監視して、「Offset」によって設定された時間が経過したか否かを判定する。なお、格納時間判定部36bは、特許請求の範囲に記載の「格納時間判定手段」に対応する。また、格納時間判定部36bによる処理の詳細は、後に図18を用いて説明する。
【0100】
開放部37bは、格納時間判定部36bによって所定の単位バッファについて所定の時間が経過したと判定された場合に、当該所定の単位バッファを開放してフレームが格納されていないようにする。具体的には、格納時間判定部36bによって「Offset」によって設定された時間が経過したと判定された場合に、当該所定の単位バッファについて「Used:0」に設定する。なお、開放部37bは、特許請求の範囲に記載の「単位バッファ開放手段」に対応する。
【0101】
[実施例3に係るエージング情報設定の処理]
次に、図17を用いて、実施例3に係るエージング情報設定の処理を説明する。なお、図17は、実施例3におけるエージング情報設定の処理を示すフローチャートである。
【0102】
まず、エージング情報格納部35bは、送信許可(読み出し許可)となると(ステップS401肯定)、エージングポリシー記憶部47bから対応する送信ポリシーを読み出す(ステップS402)。つまり、送信許可となった「送信キュー番号」と対応付けられて記憶されている「Time」をエージングポリシー記憶部47bから取得する。
【0103】
そして、エージング情報格納部35bは、送信するフレームが格納された単位バッファが格納された単位バッファアドレスを確認し(ステップS403)、Usedに「1」を設定する(ステップS404)。その後、エージングポリシー記憶部47bから取得した「Time」を設定する(ステップS405)。そして、エージング情報設定の処理を終了する。
【0104】
[実施例3に係るエージング情報監視の処理]
次に、図18を用いて、実施例3に係るエージング情報監視の処理を説明する。なお、図18は、実施例3におけるエージング情報監視の処理を示すフローチャートである。
【0105】
まず、格納時間判定部36bは、設定された時間が経過すると(ステップS501肯定)、エージング管理記憶部の読み出し側アドレスを1インクリメントする(ステップS502)。つまり、例えば、図15の例を用いて説明すると、読み出し側アドレスが「単位バッファアドレス:4」にセットされていた場合、読み出し側アドレスを1インクリメントして「単位バッファアドレス:5」にセットする。そして、テーブルに設定された内容を読み出す(ステップS503)。例えば、図15の例を用いて説明すると、「単位バッファアドレス:5」の「Used:1」と「Timer:10」と「Offset:10」とを読み出す。
【0106】
そして、格納時間判定部36bは、読み出した「Used」の値が「1」か否かを判定し(ステップS504)、その後「Timer」の値が「0」か否かを判定する(ステップS505)。ここで、読み出した「Used」の値が「1」でないと判定した場合には(ステップS504否定)、つまり、「Used」の値が「0」である場合には、フレームが格納されていないと判定してエージング情報監視の処理を終了する。また、読み出した「Used」の値が「1」と判定し(ステップS504肯定)、かつ、「Timer」の値が「0」でないと(タイムアウトしていないと)判定した場合には(ステップS505否定)、読み出したタイマー(「Timer」)の値を「1」減算して(ステップS506)、エージング情報監視の処理を終了する。
【0107】
また、格納時間判定部36bは、読み出した「Used」の値が「1」と判定し(ステップS504肯定)、かつ、「Timer」の値が「0」であると(タイムアウトしたと)判定した場合には(ステップS505肯定)、エージング管理記憶部46bでの対象となる領域を開放する(ステップS507)。つまり、格納情報が格納されてから所定の時間が経過したと判定して、この領域を開放する。そして、「Used」の値を「0」に設定して(ステップS508)、エージング情報監視の処理を終了する。
【0108】
なお、対象となる単位バッファ領域が開放されるまでの実時間「T」は、エージング管理記憶部のアドレスを1インクリメントするために設定された時間を示す「Δt」と、共通バッファが有する単位バッファのアドレス数(単位バッファの領域数分の深さ)を示す「k」と、「Offset」とを用いることにより、以下の数式で表すことができる。
【0109】
「T」=「Δt」×「k」×「Offset」
【0110】
[実施例3の効果]
上記したように、実施例3によれば、伝送装置は、次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として識別子記憶部44に格納し、フレーム結合情報を用いて結合される二つのフレームの間で、判定手段によって結合関係が正しくないと判定された場合に、識別子記憶部44に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御するので、開放されるべきにもかかわらず開放されていない領域を開放することができ、バッファ資源を有効に活用することが可能である。
【実施例4】
【0111】
ところで、これまで実施例1〜3に係る伝送装置について説明してきたが、この発明は上記した実施例以外にも種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例4に係る携帯端末として、異なる実施例を説明する。
【0112】
(1)二重登録防止について
例えば、実施例3では、伝送装置は、単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を用いて、開放されるべきにもかかわらず開放されていない領域を開放する場合について説明したが、格納情報を用いて、フレーム格納領域への二重登録を防止してもよい。
【0113】
具体的には、伝送装置は、単位バッファにフレームを格納する際に、所定の記憶部に格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていないことを条件に、当該単位バッファにフレームを格納するように制御する。
【0114】
例えば、図15に示す例を用いて説明すると、伝送装置は、フレームを単位バッファに格納する際に、フレームを格納する予定である単位バッファのアドレスについて、「エージング管理テーブル」における「Used」領域を確認する。ここで、「Used:0」の場合には(例えば、図15における「単位バッファアドレス:3」)、フレーム未格納領域であることが確認できるため、格納処理を行う。一方、「Used:1」の場合には(例えば、図15における「単位バッファアドレス:2」)、フレーム格納中領域であることが確認できるため、格納処理を行わない。
【0115】
このように、単位バッファにフレームを格納する際に、エージング管理記憶部46bに格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていないことを条件に、当該単位バッファにフレームを格納するように制御するので、二重登録を防止することができ、バッファに格納されたデータの安全性や信頼性を向上することが可能である。
【0116】
(2)未登録読み出し防止について
また、実施例3では、伝送装置は、格納情報を用いて、開放されるべきにもかかわらず開放されていない領域を開放する場合について説明したが、格納情報を用いて、フレーム未格納領域への未登録読み出しを防止してもよい。
【0117】
具体的には、伝送装置は、単位バッファからフレーム読み出して結合する際に、所定の記憶部に格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていることを条件に、当該単位バッファからフレームを読み出すように制御する。
【0118】
例えば、図15に示す例を用いて説明すると、伝送装置は、フレームを単位バッファから読み出して結合する際に、フレームを読み出す予定である単位バッファのアドレスについて、「エージング管理テーブル」における「Used」領域を確認する。ここで、「Used:0」の場合には(例えば、図15における「単位バッファアドレス:3」)、フレーム未格納領域であることが確認できるため、読み出し処理を終了する。一方、「Used:1」の場合には(例えば、図15における「単位バッファアドレス:2」)、フレーム格納中領域であることが確認できるため、読み出し処理を行う。
【0119】
このように、単位バッファからフレーム読み出して結合する際に、エージング管理記憶部46bに格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていることを条件に、当該単位バッファからフレームを読み出すように制御するフレーム読み出しので、データを格納していない領域からの読み出しを防止することができ、処理の迅速化や信頼性を向上することが可能である。
【0120】
(3)システム
また、この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報(例えば、図1〜18、20)については、特記する場合を除いて任意に変更することができる。
【0121】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる(例えば、図2に示す構成例において、共通バッファ41を分離し、また、結合情報記憶部43と識別子記憶部44とを統合する)。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0122】
(4)伝送装置のプログラム
ところで、上記実施例1では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図20を用いて、上記の実施例1に示した伝送装置と同様の機能を有する伝送装置制御プログラムを実行するコンピュータの一例を説明する。なお、図20は、実施例1における伝送装置のプログラムを示す図である。
【0123】
同図に示すように、伝送装置は、入力部3001、出力部3002、共通バッファ3003、CPU3110、ROM3111、HDD3112、RAM3113をバス3010などで接続して構成されている。
【0124】
ROM3111には、上記の実施例1で示した格納部31と識別子付与部32と、読み出し部33と、結合判定部34と、同様の機能を発揮する制御プログラム、つまり、図20に示すように、格納プログラム3111aと、識別子付与プログラム3111bと、読み出しプログラム3111cと、結合判定プログラム3111dとが予め記憶されている。なお、これらのプログラム3111a〜3111dについては、図2に示した伝送装置の各構成要素と同様、適宜統合または分離してもよい。
【0125】
そして、CPU3110が、これらのプログラム3111a〜3111dをROM3111から読み出して実行することにより、図20に示すように、各プログラム3111a〜3111dについては、格納プロセス3110aと、識別子付与プロセス3110bと、読み出しプロセス3110cと、結合判定プロセス3110dとして機能するようになる。なお、各プロセス3110a〜3110dは、図2に示した、格納部31、識別子付与部32、読み出し部33、結合判定部34にそれぞれ対応する。
【0126】
そして、CPU3110は、RAM3113に格納されたキューポインタデータ3113aと、結合情報データ3113bと、識別子データ3113cと、空き情報3113dとに基づいて伝送装置制御プログラムを実行する。
【0127】
なお、本実施例で説明した各プログラム3111a〜3111dについては、必ずしも最初からROMに記憶させておく必要はなく、例えば伝送装置に挿入されるメモリーカード、フレキシブルディスク、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」、または、伝送装置の内外に備えられるHDDなどの「固定用の物理媒体」、さらには、公衆回線、インターネット、LAN、WANなどを介して伝送装置に接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておき、伝送装置がこれらから各プログラムを読みだして実行するようにしてもよい。
【0128】
(付記1)送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置であって、
前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手段と、
前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手段と、
を備えたことを特徴とする伝送装置。
【0129】
(付記2)前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、前記分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を所定の記憶部に格納し、
前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、前記結合関係が正しいか否かを判定することを特徴とする付記1に記載の伝送装置。
【0130】
(付記3)前記識別子格納手段は、前記フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となるように、または、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを所定の数式に代入すると常に一定値が得られるように、前記前方識別子並びに後方識別子を所定の記憶部に格納し、
前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレーム間で、前段となるフレームの後方識別子と後段となるフレームの前方識別子とが同一となる否か、または、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを所定の数式に代入すると常に一定値が得られるか否かを判定することで、前記結合関係が正しいか否かを判定することを特徴とする付記2に記載の伝送装置。
【0131】
(付記4)前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子として、当該他のフレームが格納されている単位バッファを一意に特定する情報を所定の記憶部に格納し、
前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、後段となるフレームの前方識別子で特定される単位バッファに、前段となるフレームが格納されているか否かを判定することで、前記結合関係が正しいか否かを判定することを特徴とする付記1に記載の伝送装置。
【0132】
(付記5)前記分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納する復旧用識別子格納手段と、
前記フレーム結合情報を用いて結合される二つのフレームの間で、前記結合判定手段によって前記結合関係が正しくないと判定された場合に、前記所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御する結合制御手段と、
をさらに備えたことを特徴とする付記1〜4のいずれか一つに記載の伝送装置。
【0133】
(付記6)前記単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を所定の記憶部に格納する格納情報格納手段と、
前記単位バッファごとに、前記所定の記憶部に格納された格納情報を監視して、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定する格納時間判定手段と、
前記格納時間判定手段によって所定の単位バッファについて所定の時間が経過したと判定された場合に、当該所定の単位バッファを開放してフレームが格納されていないようにする単位バッファ開放手段と、
をさらに備えたことを特徴とする付記1〜5のいずれか一つに記載の伝送装置。
【0134】
(付記7)前記単位バッファにフレームを格納する際に、前記所定の記憶部に格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていないことを条件に、当該単位バッファにフレームを格納するように制御するフレーム格納制御手段をさらに備えることを特徴とする付記6に記載の伝送装置。
【0135】
(付記8)前記単位バッファからフレーム読み出して結合する際に、前記所定の記憶部に格納された当該単位バッフの格納情報を参照して、フレームが格納されていることを示す格納情報が格納されていることを条件に、当該単位バッファからフレームを読み出すように制御するフレーム読み出し制御手段をさらに備えることを特徴とする付記6に記載の伝送装置。
【0136】
(付記9)送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する伝送装置制御方法であって、
前記伝送装置が、前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納工程と、
前記伝送装置が、前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定工程と、
を含んだことを特徴とする伝送装置制御方法。
【0137】
(付記10)送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する方法をコンピュータに実行させる伝送装置制御プログラムであって、
前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手順と、
前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手順と、
をコンピュータに実行させることを特徴とする伝送装置制御プログラム。
【産業上の利用可能性】
【0138】
以上のように、本発明に係る伝送装置、伝送装置制御方法および伝送装置制御プログラムは、送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、フレーム結合情報を用いて分割されたフレームを結合して送信する伝送装置に有用であり、特に、フレームを結合する際に誤りを検出することが可能である伝送装置、伝送装置制御方法および伝送装置制御プログラムの実現に適する。
【図面の簡単な説明】
【0139】
【図1】実施例1に係る伝送装置の概要および特徴を説明するための図である。
【図2】実施例1における伝送装置の構成を示すブロック図である。
【図3】実施例1におけるキューポインタ記憶部に記憶されるキューポインタの一例を示す図である。
【図4】実施例1における結合情報記憶部に記憶される結合情報の一例を示す図である。
【図5】実施例1における識別子記憶部に記憶される識別子の一例を示す図である。
【図6】実施例1における空き情報記憶部に記憶される空き情報の一例を示す図である。
【図7】実施例1におけるフレーム格納の処理を示すフローチャートである。
【図8】実施例1におけるフレーム格納の処理を説明するための図である。
【図9】実施例1におけるフレーム読み出しの処理を示すフローチャートである。
【図10】実施例1におけるフレーム読み出しの処理を説明するための図である。
【図11】実施例1における前方部に結合される他のフレームが格納されている単位バッファのアドレスを識別子として用いたフレーム読み出しの処理を説明するための図である。
【図12】実施例2におけるフレーム読み出しの処理を示すフローチャートである。
【図13】実施例2におけるフレーム読み出しの処理を説明するための図である。
【図14】実施例3における携帯端末の構成を示すブロック図である。
【図15】実施例3におけるエージング管理記憶部に記憶されるエージング情報の一例を示す図である。
【図16】実施例3におけるエージングポリシー記憶部に記憶されるエージングポリシーの一例を示す図である。
【図17】実施例3におけるエージング情報設定の処理を示すフローチャートである。
【図18】実施例3におけるエージング情報監視の処理を示すフローチャートである。
【図19】本発明を用いた共通バッファ型フレーム転送装置の一例を示す図である。
【図20】実施例1における伝送装置のプログラムを示す図である。
【図21】従来技術に係る共通バッファ方式を説明するための図である。
【図22】従来技術に係る共通バッファ方式を説明するための図である。
【符号の説明】
【0140】
10 フレーム入力部
20 フレーム出力部
30 制御部
31 格納部
32 識別子付与部
33 読み出し部
34 結合判定部
35b エージング情報格納部
36b 格納時間判定部
37b 開放部
40 記憶部
41 共通バッファ
42 キューポインタ記憶部
43 結合情報記憶部
44 識別子記憶部
45 空き情報記憶部
46b エージング管理記憶部
47b エージングポリシー記憶部

【特許請求の範囲】
【請求項1】
送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置であって、
前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手段と、
前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手段と、
を備えたことを特徴とする伝送装置。
【請求項2】
前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子、並びに、前記分割されたフレームの後方部で結合される他のフレームとの結合関係が正しいか否かを判定するための後方識別子を所定の記憶部に格納し、
前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、前段となるフレームの後方識別子と後段となるフレームの前方識別子とを用いて、前記結合関係が正しいか否かを判定することを特徴とする請求項1に記載の伝送装置。
【請求項3】
前記識別子格納手段は、前記分割されたフレームごとに、当該分割されたフレームの前方部で結合される他のフレームとの結合関係が正しいか否かを判定するための前方識別子として、当該他のフレームが格納されている単位バッファを一意に特定する情報を所定の記憶部に格納し、
前記結合判定手段は、前記フレーム結合情報を用いて結合される二つのフレームについて、後段となるフレームの前方識別子で特定される単位バッファに、前段となるフレームが格納されているか否かを判定することで、前記結合関係が正しいか否かを判定することを特徴とする請求項1に記載の伝送装置。
【請求項4】
前記分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームのさらに後方部に結合されるべき次々フレームが格納されている単位バッファを一意に特定するアドレスを復旧用識別子として所定の記憶部に格納する復旧用識別子格納手段と、
前記フレーム結合情報を用いて結合される二つのフレームの間で、前記結合判定手段によって前記結合関係が正しくないと判定された場合に、前記所定の記憶部に格納された復旧用識別子のなかから、前段となるフレームのさらに前方部で結合されたフレームに対応する復旧用識別子を読み出し、当該復旧用識別子で特定される単位バッファに格納されているフレームを、前段となるフレームの後方部に結合するように制御する結合制御手段と、
をさらに備えたことを特徴とする請求項1〜3のいずれか一つに記載の伝送装置。
【請求項5】
前記単位バッファごとに、各単位バッファにフレームが格納されているか否かを示す格納情報を所定の記憶部に格納する格納情報格納手段と、
前記単位バッファごとに、前記所定の記憶部に格納された格納情報を監視して、フレームが格納されていることを示す格納情報が格納されてから所定の時間が経過したか否かを判定する格納時間判定手段と、
前記格納時間判定手段によって所定の単位バッファについて所定の時間が経過したと判定された場合に、当該所定の単位バッファを開放してフレームが格納されていないようにする単位バッファ開放手段と、
をさらに備えたことを特徴とする請求項1〜4のいずれか一つに記載の伝送装置。
【請求項6】
送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する伝送装置制御方法であって、
前記伝送装置が、前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納工程と、
前記伝送装置が、前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定工程と、
を含んだことを特徴とする伝送装置制御方法。
【請求項7】
送信対象であるフレームを分割して複数の単位バッファにそれぞれ格納するとともに、分割されたフレームごとに、当該フレームの後方部に結合されるべき他のフレームが格納されている単位バッファを一意に特定するアドレスをフレーム結合情報として所定の記憶部に格納し、前記フレーム結合情報を用いて前記分割されたフレームを結合して送信する伝送装置を制御する方法をコンピュータに実行させる伝送装置制御プログラムであって、
前記分割されたフレームが結合される際の結合関係が正しいか否かを判定するための識別子を所定の記憶部に格納する識別子格納手順と、
前記フレーム結合情報を用いて前記分割されたフレームを結合する場合に、前記所定の記憶部に格納された識別子を用いて、前記結合関係が正しいか否かを判定する結合判定手順と、
をコンピュータに実行させることを特徴とする伝送装置制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate