(57)【要約】【課題】余計な付加情報を排除しつつ、互いに非同期の送受信装置間で高速に通信を行うことのできる通信装置及び通信方法を提供する。【解決手段】本発明の通信装置は、複数の通信路Ａ〜Ｃの各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のＦＩＦＯバッファＡ１０１〜Ｃ１０３と、受信したデータを、複数のＦＩＦＯバッファに対し所定の順番で各ＦＩＦＯバッファに書き込む書き込み処理を行う書き込み手段１０４と、複数のＦＩＦＯバッファ内のデータを所定の順番で読み出し、一のＦＩＦＯバッファ内の全てのデータを読み出す毎に次のＦＩＦＯバッファ内のデータを読み出す読み出し処理を行う読み出し手段１０５と、読み出し処理を開始したときに、読み出しを開始したデータが送られてきた通信路の識別子を、前記書き込み手段に通知する通知手段１０５ｃとを備える。【選択図】図１
2008152580.tif 000002
【特許請求の範囲】
【請求項１】
各々に識別子が割り当てられた複数の通信路から受信したデータを送信するための通信装置であって、
前記複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のＦＩＦＯ（First In First Out）バッファと、
受信したデータを、前記複数のＦＩＦＯバッファに対し所定の順番で各ＦＩＦＯバッファに書き込む書き込み処理を行う書き込み手段と、
前記複数のＦＩＦＯバッファ内のデータを所定の順番で読み出し、一のＦＩＦＯバッファ内の全てのデータを読み出す毎に次のＦＩＦＯバッファ内のデータを読み出す読み出し処理を行う読み出し手段と、
前記読み出し処理を開始したときに、読み出しを開始したデータが送られてきた通信路の識別子を、前記書き込み手段に通知する通知手段とを備え、
前記書き込み手段は、一のＦＩＦＯバッファへの書き込み処理を実行し終わった後、前記通知手段から通知を受けた識別子が示す通信路に設けられたＦＩＦＯバッファ以外のＦＩＦＯバッファについてのみ新たな書き込み処理を開始する
ことを特徴とする通信装置。
【請求項２】
さらに、前記複数の通信路の識別子のうち一の識別子を保持する識別子保持手段と、
データを一時的に保持するためのキャッシュとを備え、
前記書き込み手段は、前記識別子保持手段に保持されている識別子で識別される通信路に送出されるデータのみを当該通信路に設けられたＦＩＦＯバッファに書き込み、前記識別子保持手段に保持されている識別子で識別される通信路以外の通信路に送出されるデータは前記キャッシュに保持させるとともに、
一のＦＩＦＯバッファへの書き込み処理を実行し終わった後、前記通知指示手段から通知を受けた識別子と、前記識別子保持手段に保持されている識別子とが一致した場合、前記識別子保持手段の識別子を、前記所定の順番における前記一のＦＩＦＯバッファの次のＦＩＦＯバッファが設けられた通信路を識別するＦＩＦＯバッファ識別子に更新する
ことを特徴とする請求項１記載の通信装置。
【請求項３】
前記通信装置は、外部の送信元からデータを受信するものであり、
さらに、前記複数の通信路の識別子のうち一の識別子を保持する識別子保持手段を備え、
前記書き込み手段は、前記識別子保持手段に保持されている識別子で識別される通信路に送出されるデータのみ送信してくるよう前記送信元に指示し、
一のＦＩＦＯバッファへの書き込み処理を実行し終わった後、前記通知指示手段から通知を受けた識別子と、前記識別子保持手段に保持されている識別子とが一致した場合、前記識別子保持手段の識別子を、前記所定の順番における前記一のＦＩＦＯバッファの次のＦＩＦＯバッファが設けられた通信路を識別する識別子に更新する
ことを特徴とする請求項１記載の通信装置。
【請求項４】
各々に識別子が割り当てられた複数の通信路から受信したデータを送信するための通信装置であって、
複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のＦＩＦＯ（First In First Out）バッファと、
受信したデータを、前記複数のＦＩＦＯバッファに対し所定の順番で各ＦＩＦＯバッファに書き込む書き込み処理を行う書き込み手段と、
前記書き込み手段で書き込みを開始するＦＩＦＯバッファが設けられた通信路を示す識別子を保持するための識別子保持手段と、
前記識別子保持手段に保持されている識別子を取得し、取得した識別子が示す通信路に設けられたＦＩＦＯバッファ内のデータを読み出す読み出し処理を行う読み出し手段とを備え、
前記書き込み手段は、一のＦＩＦＯバッファへの書き込み処理を実行し終わる毎に、新たに書き込みを開始するＦＩＦＯバッファが空の場合にのみ当該ＦＩＦＯバッファへの新たな書き込みを開始するとともに、当該ＦＩＦＯバッファが設けられた通信路の識別子を前記識別子保持手段に送出し、
前記読み出し手段は、一のＦＩＦＯバッファ内の全てのデータを読み出す毎に前記識別子保持手段から識別子を取得する
ことを特徴とする通信装置。
【請求項５】
前記書き込み手段は、前記通信装置を同期状態とするか否かを決定する信号を受け、当該信号が同期状態を示す場合にのみ前記書き込み処理を実行し、
前記読み出し手段は、前記通信装置を同期状態とするか否かを決定する信号を受け、当該信号が同期状態を示す場合にのみ前記読み出し処理を実行する
ことを特徴とする請求項１又は４に記載の通信装置。
【請求項６】
さらに、各通信路の優先度を保持する優先度保持手段を備え、
前記書き込み手段は、前記優先度保持手段に保持されている優先度に基づいた順番で各ＦＩＦＯバッファに書き込む書き込み処理を実行する
ことを特徴とする請求項１又は４に記載の通信装置。
【請求項７】
前記書き込み手段と前記読み出し手段とは、同一のプロセッサに設けられており、
前記書き込み手段が書き込むデータは、前記プロセッサ内の所定の記憶領域に記憶されているデータのデータアドレス及び／又はデータサイズである
ことを特徴とする請求項１又は４に記載の通信装置。
【請求項８】
前記書き込み手段と前記読み出し手段とは、互いに異なるプロセッサに設けられており、
前記書き込み手段が書き込むデータは、前記プロセッサ外の所定の記憶領域に記憶されているデータのデータアドレス及び／又はデータサイズである
ことを特徴とする請求項１又は４に記載に通信装置。
【請求項９】
各々に識別子が割り当てられた複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のＦＩＦＯ（First In First Out）バッファを備える通信装置における通信方法であって、
受信したデータを、前記複数のＦＩＦＯバッファに対し所定の順番で各ＦＩＦＯバッファに書き込む書き込み処理を行う書き込みステップと、
前記複数のＦＩＦＯバッファ内のデータを所定の順番で読み出し、一のＦＩＦＯバッファ内の全てのデータを読み出す毎に次のＦＩＦＯバッファ内のデータを読み出す読み出し処理を行う読み出しステップと、
前記読み出し処理を開始したときに、読み出しを開始したデータが送られてきた通信路の識別子を、前記書き込み手段に通知する通知ステップとを含み、
前記書き込みステップでは、一のＦＩＦＯバッファへの書き込み処理を実行し終わった後、前記通知手段から通知を受けた識別子が示す通信路に設けられたＦＩＦＯバッファ以外のＦＩＦＯバッファについてのみ新たな書き込み処理を開始する
ことを特徴とする通信方法。
【請求項１０】
各々に識別子が割り当てられた複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のＦＩＦＯ（First In First Out）バッファを備える通信装置における通信方法であって、
受信したデータを、前記複数のＦＩＦＯバッファに対し所定の順番で各ＦＩＦＯバッファに書き込む書き込み処理を行う書き込みステップと、
前記書き込みステップで書き込みを開始するＦＩＦＯバッファが設けられた通信路を示す識別子を保持するための識別子保持ステップと、
前記識別子保持ステップで保持した識別子を取得し、取得した識別子が示す通信路に設けられたＦＩＦＯバッファ内のデータを読み出す読み出し処理を行う読み出しステップとを含み、
前記書き込みステップでは、一のＦＩＦＯバッファへの書き込み処理を実行し終わる毎に、新たに書き込みを開始するＦＩＦＯバッファが空の場合にのみ当該ＦＩＦＯバッファへの新たな書き込みを開始するとともに、
前記識別子保持ステップでは、当該新たな書き込みを開始したＦＩＦＯバッファが設けられた通信路の識別子を保持し、
前記読み出しステップでは、一のＦＩＦＯバッファ内の全てのデータを読み出す毎に識別子を取得する
ことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの通信を行うための通信技術に関し、特に、複数の通信路を介してデータを送受信するための通信装置及び通信方法に関する。
【背景技術】
【０００２】
従来、互いに非同期の送信装置と受信装置との間でデータ通信を行う際、両装置間で同期を取る同期制御の方法として、ハンドシェイク方式がある。ハンドシェイク方式では、送信装置と受信装置とでそれぞれレディ信号とストローブ信号とをやり取りすることによって互いに同期を取るようになっている。
しかし、ハンドシェイク方式ではデータの送受信毎に信号のやり取りを行うため、通信の高速化を阻害してしまう。このため、ハンドシェイク方式に代わって、より効率的に送信装置と受信装置間で同期を取る方法が模索されている。
【０００３】
例えば、同期を行う通信路全体の送信順序情報を通信データに付加することにより、送信装置と受信装置間でデータの順序を保障して両装置間で同期を取る技術が提案されている（特許文献１参照）。
【特許文献１】特開２００６−３９８４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、上記のように通信データに送信順序情報を付加する手法だと、ハンドシェイク方式に比べて通信速度を向上させることはできるが、通信データに余計な情報を付加する分通信データ量が増大してしまう。
特に、メモリを共有するモジュール・プロセッサ間の通信では、処理対象となるデータのメモリアドレスやデータサイズのみが送受信されるため、ペイロードのバイト数が小さい。このようにペイロードのバイト数が小さい場合、通信データ内でペイロード以外の付加情報が占める割合が大きくなり、通信の効率性を阻害することになる。
【０００５】
そこで、本発明は、余計な付加情報を排除しつつ、互いに非同期の送受信装置間で高速に通信を行うことのできる通信装置及び通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の第１の態様における通信装置は、各々に識別子が割り当てられた複数の通信路から受信したデータを送信するための通信装置であって、前記複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のＦＩＦＯ（First In First Out）バッファと、受信したデータを、前記複数のＦＩＦＯバッファに対し所定の順番で各ＦＩＦＯバッファに書き込む書き込み処理を行う書き込み手段と、前記複数のＦＩＦＯバッファ内のデータを所定の順番で読み出し、一のＦＩＦＯバッファ内の全てのデータを読み出す毎に次のＦＩＦＯバッファ内のデータを読み出す読み出し処理を行う読み出し手段と、前記読み出し処理を開始したときに、読み出しを開始したデータが送られてきた通信路の識別子を、前記書き込み手段に通知する通知手段とを備え、前記書き込み手段は、一のＦＩＦＯバッファへの書き込み処理を実行し終わった後、前記通知手段から通知を受けた識別子が示す通信路に設けられたＦＩＦＯバッファ以外のＦＩＦＯバッファについてのみ新たな書き込み処理を開始することを特徴とする。
【０００７】
また、第１の態様における通信方法は、各々に識別子が割り当てられた複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のＦＩＦＯ（First In First Out）バッファを備える通信装置における通信方法であって、受信したデータを、前記複数のＦＩＦＯバッファに対し所定の順番で各ＦＩＦＯバッファに書き込む書き込み処理を行う書き込みステップと、前記複数のＦＩＦＯバッファ内のデータを所定の順番で読み出し、一のＦＩＦＯバッファ内の全てのデータを読み出す毎に次のＦＩＦＯバッファ内のデータを読み出す読み出し処理を行う読み出しステップと、前記読み出し処理を開始したときに、読み出しを開始したデータが送られてきた通信路の識別子を、前記書き込み手段に通知する通知ステップとを含み、前記書き込みステップでは、一のＦＩＦＯバッファへの書き込み処理を実行し終わった後、前記通知手段から通知を受けた識別子が示す通信路に設けられたＦＩＦＯバッファ以外のＦＩＦＯバッファについてのみ新たな書き込み処理を開始することを特徴とする。
【０００８】
さらに、上記課題を解決するために、本発明の第２の態様における通信装置は、各々に識別子が割り当てられた複数の通信路から受信したデータを送信するための通信装置であって、複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のＦＩＦＯ（First In First Out）バッファと、受信したデータを、前記複数のＦＩＦＯバッファに対し所定の順番で各ＦＩＦＯバッファに書き込む書き込み処理を行う書き込み手段と、前記書き込み手段で書き込みを開始するＦＩＦＯバッファが設けられた通信路を示す識別子を保持するための識別子保持手段と、前記識別子保持手段に保持されている識別子を取得し、取得した識別子が示す通信路に設けられたＦＩＦＯバッファ内のデータを読み出す読み出し処理を行う読み出し手段とを備え、前記書き込み手段は、一のＦＩＦＯバッファへの書き込み処理を実行し終わる毎に、新たに書き込みを開始するＦＩＦＯバッファが空の場合にのみ当該ＦＩＦＯバッファへの新たな書き込みを開始するとともに、当該ＦＩＦＯバッファが設けられた通信路の識別子を前記識別子保持手段に送出し、前記読み出し手段は、一のＦＩＦＯバッファ内の全てのデータを読み出す毎に前記識別子保持手段から識別子を取得することを特徴とする。
【０００９】
また、第２の態様における通信方法は、各々に識別子が割り当てられた複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のＦＩＦＯ（First In First Out）バッファを備える通信装置における通信方法であって、受信したデータを、前記複数のＦＩＦＯバッファに対し所定の順番で各ＦＩＦＯバッファに書き込む書き込み処理を行う書き込みステップと、前記書き込みステップで書き込みを開始するＦＩＦＯバッファが設けられた通信路を示す識別子を保持するための識別子保持ステップと、前記識別子保持ステップで保持した識別子を取得し、取得した識別子が示す通信路に設けられたＦＩＦＯバッファ内のデータを読み出す読み出し処理を行う読み出しステップとを含み、前記書き込みステップでは、一のＦＩＦＯバッファへの書き込み処理を実行し終わる毎に、新たに書き込みを開始するＦＩＦＯバッファが空の場合にのみ当該ＦＩＦＯバッファへの新たな書き込みを開始するとともに、前記識別子保持ステップでは、当該新たな書き込みを開始したＦＩＦＯバッファが設けられた通信路の識別子を保持し、前記読み出しステップでは、一のＦＩＦＯバッファ内の全てのデータを読み出す毎に識別子を取得することを特徴とする。
【発明の効果】
【００１０】
第１の態様における構成により、通信装置において、所定の順番で複数の通信路を介してデータが送信される場合に、書き込み側はこのデータの順番を保ちながら各通信路に対応する各ＦＩＦＯバッファにデータを書き込んでいく中で、読み出し側が一のＦＩＦＯバッファ内のデータ全てを読み出さない限り、新たにこの一のＦＩＦＯバッファへは書き込みを行わずおり、読み込み側が他のＦＩＦＯバッファの読み出しを開始すると一のＦＩＦＯバッファへ新たな書き込みを行う。このように書き込みを行うことによって、特に順番を示すような情報を送信データに付加しなくても、読み出し側はこの順番を意識することなくＦＩＦＯバッファ内のデータ全てを読み込んでいくだけで当該順番が保たれたままデータを読み出すことができる。
【００１１】
例えば、２本の通信路（第１及び第２通信路）と各通信路に対するＦＩＦＯバッファ（第１及び第２バッファ）があり、第１通信路に１００バイト、第２通信路に１０バイト、第１通信路に５０バイト、第２通信路に２０バイトの４回のデータ書き込み／読み出しを行う場合、書き込み側は先ず第１ＦＩＦＯバッファに１００バイト書き込み、次に第２ＦＩＦＯバッファに１０バイト書き込む。読み出し側は第１ＦＩＦＯバッファ内のデータ（１００バイト）を読み出し、続いて第２ＦＩＦＯバッファ内のデータ（１０バイト）の読み出しに移る。書き込み側は、読み出し側が第２ＦＩＦＯバッファ内のデータ（１０バイト）の読み出し開始を確認してから、第１ＦＩＦＯバッファへの新たな書き込み（２００バイト）を開始する。
【００１２】
このようにすることで、読み出し側は、当該順番を意識することなく、順番（１００バイト、１０バイト、５０バイト、２０バイト）通りに読み出すことができる。
このように、特に読み出す順番を示す情報を送信データに付加する必要がなく、また、書き込み側と読み出し側でやり取りする信号は、読み出し側が一のＦＩＦＯバッファ内の全データを読み終わって新たなＦＩＦＯバッファの読み出しを開始するときに発する信号しか必要がないため、通信の高速化を図ることができる。
【００１３】
第２の態様における構成により、通信装置において、所定の順番で複数の通信路を介してデータが送信される場合に、書き込み側はこのデータの順番を保ちながら各通信路に対応する各ＦＩＦＯバッファにデータを書き込んでいく中で、データの書き込みを行うＦＩＦＯバッファの情報を読み出し側に伝えるとともに、ＦＩＦＯバッファが空になってから書き込みを開始する。このように書き込みを行うことによって、読み出し側は、書き込み側から伝えられたＦＩＦＯバッファ内のデータ全てを読み込んでいくだけで所定の順番が保たれたままデータを読み出すことができる。
【００１４】
例えば、２本の通信路（第１及び第２通信路）と各通信路に対するＦＩＦＯバッファ（第１及び第２バッファ）があり、第１通信路に１００バイト、第２通信路に１０バイト、第１通信路に５０バイト、第２通信路に２０バイトの４回のデータ書き込み／読み出しを行う場合、書き込み側は先ず、第１ＦＩＦＯバッファから書き込むことを伝えるとともに第１ＦＩＦＯバッファに１００バイト書き込み、読み出し側は伝えられた第１ＦＩＦＯバッファ内のデータ（１００バイト）から読み出す。次に書き込み側は、第１ＦＩＦＯバッファへの書き込みが完了すると、第２ＦＩＦＯバッファが空であったら第２ＦＩＦＯバッファに書き込むことを伝えるとともに第２ＦＩＦＯバッファに１０バイト書き込む。読み出し側は第１ＦＩＦＯバッファ内のデータ（１００バイト）の読み出しが終わると、続いて伝えられた第２ＦＩＦＯバッファ内のデータ（１０バイト）の読み出しに移る。
【００１５】
このようにすることで、読み出し側は、伝えられた順番にＦＩＦＯバッファ内のデータを全て読み出していくことで、順番（１００バイト、１０バイト、５０バイト、２０バイト）通りに読み出すことができる。
従って、特に読み出す順番を示す情報を送信データに付加する必要がなく、また、書き込み側と読み出し側でやり取りする信号は、書き込み側が一のＦＩＦＯバッファ内の全データの書き込みが完了して新たなＦＩＦＯバッファの書き込みを開始するときに発する信号しか必要がないため、通信の高速化を図ることができる。
【００１６】
また、上記第１の態様の通信装置は、さらに、前記複数の通信路の識別子のうち一の識別子を保持する識別子保持手段と、データを一時的に保持するためのキャッシュとを備え、前記書き込み手段は、前記識別子保持手段に保持されている識別子で識別される通信路に送出されるデータのみを当該通信路に設けられたＦＩＦＯバッファに書き込み、前記識別子保持手段に保持されている識別子で識別される通信路以外の通信路に送出されるデータは前記キャッシュに保持させるとともに、一のＦＩＦＯバッファへの書き込み処理を実行し終わった後、前記通知指示手段から通知を受けた識別子と、前記識別子保持手段に保持されている識別子とが一致した場合、前記識別子保持手段の識別子を、前記所定の順番における前記一のＦＩＦＯバッファの次のＦＩＦＯバッファが設けられた通信路を識別するＦＩＦＯバッファ識別子に更新するようにしてもよい。
【００１７】
この構成により、書き込み側は、一のＦＩＦＯバッファにのみ書き込み処理を行い、読み出し側がＦＩＦＯバッファに対する読み出し処理を完了する毎に、新たなＦＩＦＯバッファへの書き込み処理を行う。このように書き込み処理を行うことで、信頼性を高めることができる。すなわち、常に１つのＦＩＦＯバッファにしかデータが蓄積されないため、書き込み側がＦＩＦＯバッファに書き込む所定の順番が変更になった場合でも、読み出し側が当該変更になった順番どおりに正しくＦＩＦＯバッファを読み出すことができる。
【００１８】
また、上記第１の態様の通信装置は、外部の送信元からデータを受信するものであり、さらに、前記複数の通信路の識別子のうち一の識別子を保持する識別子保持手段を備え、前記書き込み手段は、前記識別子保持手段に保持されている識別子で識別される通信路に送出されるデータのみ送信してくるよう前記送信元に指示し、一のＦＩＦＯバッファへの書き込み処理を実行し終わった後、前記通知指示手段から通知を受けた識別子と、前記識別子保持手段に保持されている識別子とが一致した場合、前記識別子保持手段の識別子を、前記所定の順番における前記一のＦＩＦＯバッファの次のＦＩＦＯバッファが設けられた通信路を識別する識別子に更新するようにしてもよい。
【００１９】
この構成により、外部のデータ送信元に対して直接送信の可否を指示することで、通信装置自体にデータ一時保持用のキャッシュを設ける必要がなくなる。
また、上述の第１及び第２の態様の通信装置において、前記書き込み手段は、前記通信装置を同期状態とするか否かを決定する信号を受け、当該信号が同期状態を示す場合にのみ前記書き込み処理を実行し、前記読み出し手段は、前記通信装置を同期状態とするか否かを決定する信号を受け、当該信号が同期状態を示す場合にのみ前記読み出し処理を実行するようにしてもよい。
【００２０】
この構成により、書き込み側と読み出し側とが同期して通信を行う必要がある場合、すなわち、所定の順番を保って読み出し側がデータを読み出す必要がある場合にのみ、第１及び第２の態様で示した動作をさせ、互いに同期を取る必要がない場合には互いに非同期で動作させることができる。
また、上述の第１及び第２の態様の通信装置は、さらに、各通信路の優先度を保持する優先度保持手段を備え、前記書き込み手段は、前記優先度保持手段に保持されている優先度に基づいた順番で各ＦＩＦＯバッファに書き込む書き込み処理を実行するようにしてもよい。
【００２１】
この構成により、複数の通信路に優先度を設定したことによって、複数の通信路から同時にデータが送信された場合に、書き込み側がどのデータから書き込むかを決定することができる。
また、上述の第１及び第２の態様の通信装置において、前記書き込み手段と前記読み出し手段とは、同一のプロセッサに設けられており、前記書き込み手段が書き込むデータは、前記プロセッサ内の所定の記憶領域に記憶されているデータのデータアドレス及び／又はデータサイズであってもよい。
【００２２】
この構成により、１プロセッサ内の処理速度を向上させることができる。
また、上述の第１及び第２の態様の通信装置において、前記書き込み手段と前記読み出し手段とは、互いに異なるプロセッサに設けられており、前記書き込み手段が書き込むデータは、前記プロセッサ外の所定の記憶領域に記憶されているデータのデータアドレス及び／又はデータサイズであってもよい。
【００２３】
この構成により、異なるプロセッサ間の通信速度を向上させることができる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照しながら本発明の実施の形態について説明していく。
＜実施形態１＞
本発明の実施形態１について、図１〜８を参照しながら説明する。
（１．構成）
まず、図１を参照しながら、実施形態１に係る通信装置１００について説明する。
【００２５】
図１は、通信装置１００の構成を示すブロック図である。
通信装置１００は、複数の通信路（通信路Ａ、通信路Ｂ、及び通信路Ｃ）を介して外部の送信装置（不図示）から送信されるデータを受け取り、外部の受信装置（不図示）に中継するための通信装置である。
通信路Ａ〜Ｃにはそれぞれ、固有の識別子Ａ〜Ｃが割り当てられている。
【００２６】
通信装置１００は、ＦＩＦＯ（First In First Out）バッファＡ１０１、ＦＩＦＯバッファＢ１０２、ＦＩＦＯバッファＣ１０３、書き込み制御部１０４、読み出し制御部１０５、及びライン１０６を備える。
ＦＩＦＯバッファＡ１０１は、通信路Ａを介して送信されるデータを蓄積するためのＦＩＦＯバッファである。
【００２７】
ＦＩＦＯバッファＢ１０２は、通信路Ｂを介して送信されるデータを蓄積するためのＦＩＦＯバッファである。
ＦＩＦＯバッファＣ１０３は、通信路Ｃを介して送信されるデータを蓄積するためのＦＩＦＯバッファである。
書き込み制御部１０４は、各通信路Ａ〜Ｃを介して送信されるデータを、通信路それぞれに対応するＦＩＦＯバッファＡ１０１〜Ｃ１０３に書き込む書き込み処理を実行するものである。書き込み制御部１０４は、記憶部１０４ａ、書き込み部１０４ｂ、及びキャッシュ１０４ｃを含む。
【００２８】
記憶部１０４ａは、書き込み部１０４ａが書き込みを行うＦＩＦＯバッファが設けられた通信路を識別する識別子（識別子Ａ〜Ｃのいずれか）を記憶するためのものであり、例えば、レジスタで実現される。記憶部１０４ａの初期状態はヌルになっている。
書き込み部１０４ｂは、通信路Ａ〜Ｃを介して送信されてきてキャッシュ１０４ｃに保持されたデータ（書き込み対象データ）のうち、記憶部１０４ａに記憶されている識別子で示される通信路を介して送られてくるデータを、当該通信路に設けられたＦＩＦＯバッファに書き込みを実行するものである。記憶部１０４ａに記憶されている識別子で示される通信路以外の通信路を介して送られてくるデータは、書き込みを行わず、キャッシュ１０４ｃに保持したままにする。
【００２９】
キャッシュ１０４ｃは、通信路Ａ〜Ｃを介して送られてきた、ＦＩＦＯバッファＡ１０１〜Ｃ１０３に書き込むデータを、一時的に保持しておくためのキャッシュである。
読み出し制御部１０５は、ＦＩＦＯバッファＡ１０１〜Ｃ１０３内のデータを
読み出す読み出し処理を実行するものである。読み出し制御部１０５は、記憶部１０５ａ、読み出し部１０５ｂ、及び通知部１０５ｃを含む。
【００３０】
記憶部１０５ａは、読み込み部１０５ｂが読み出しを行うＦＩＦＯバッファが設けられた通信路の識別子（識別子Ａ〜Ｃのいずれか）を記憶するためのものであり、例えば、レジスタで実現される。
読み出し部１０５ｂは、ＦＩＦＯバッファＡ１０１〜Ｃ１０３のうち、記憶部１０５ａに記憶されている識別子で示される通信路に設けられたＦＩＦＯバッファから、当該ＦＩＦＯバッファが空になるまでデータを読み出すものである。また、一のＦＩＦＯバッファ内の全データを読み出す毎に、記憶部１０５ａに記憶されている識別子を１つ更新していくことで、ＦＩＦＯバッファＡ１０１〜Ｃ１０３内のデータを順番に読み出していく。
【００３１】
通知部１０５ｃは、読み出し部１０５ｂで一のＦＩＦＯバッファからデータの読み出しを開始するときに、ライン１０６を介して記憶部１０５ｂに記憶されている識別子を書き込み制御部１０４に通知するものである。
（２．動作）
次に、通信装置１００の動作について、図２〜４を参照しながら説明する。
【００３２】
ここで、以下、書き込み制御部１０４の記憶部１０４ａに記憶されている識別子を「識別情報Ａ」と呼び、読み出し制御部１０５の記憶部１０５ａに記憶されている識別子を「識別情報Ｂ」と呼ぶ。
（２−１．書き込み動作）
図２は、書き込み制御部１０４の書き込み動作を示すフローチャートであり、データを１単位当たり（例えば、１フレーム）書き込む処理を示す。
【００３３】
書き込み制御部１０４は、通信路Ａ〜Ｃからデータを受け取ると、まず、識別情報Ａが初期状態であるか否かを確認する（ステップＳ１００）。記憶部１０４ａがヌルであった場合、初期状態である。
識別情報Ａが初期状態であれば（ステップＳ１００：ＹＥＳ）、書き込み制御部１０４は識別情報Ａを、受け取ったデータが送信された通信路の識別子に更新する（ステップＳ１０４）。
【００３４】
書き込み部１０４ｂは、受け取ってキャッシュ１０４ｃに保持されたデータ（書き込み対象データ）を、識別情報Ａが示す通信路に設けられたＦＩＦＯバッファへ書き込む（ステップＳ１０５）。
いったん一のＦＩＦＯバッファへのデータ書き込みが開始すると、識別情報Ａは初期状態ではなく（ステップＳ１００：ＮＯ）、書き込み制御部１０４は、書き込み対象データが送られてきた通信路と、識別情報Ａとを比較し、両者の一致を確認する（ステップＳ１０１）。
【００３５】
書き込み対象のデータが送られてきた通信路と識別情報Ａとが一致する限り（ステップＳ１０１：ＹＥＳ）、当該ＦＩＦＯバッファへデータを書き込んでいく（ステップＳ１０５）。
一方、一のＦＩＦＯバッファへの書き込み処理が終了し、次のＦＩＦＯバッファへ書き込むデータが発生した場合、このＦＩＦＯバッファが設けられた通信路（書き込み対象データの通信路）と識別情報Ａとは一致しない（ステップＳ１０１：ＮＯ）。
【００３６】
この場合、書き込み部１０４ｂは、データをキャッシュ１０４ｃに保持したままにしておくことで、当該データの書き込みを待機する（ステップＳ１０２）。
その後、読み出し制御部１０５から、識別情報Ａと一致する識別情報Ｂが送られてこない限り（ステップＳ１０３：ＮＯ）、キャッシュ１０４ｃにデータは保持され続ける。
ここで、読み出し制御部１０５から、識別情報Ａと一致する識別情報Ｂが送られてくると（ステップＳ１０３：ＹＥＳ）、書き込み制御部１０４は記憶部１０４ａの内容を識別情報Ｂで書き換えることで識別情報Ａを更新する（ステップＳ１０４）。
【００３７】
その後、書き込み部１０４ｂは、キャッシュ１０４ｃに保持されている待機データのうち、識別情報Ａが示す通信路から送られてきたデータを当該ＦＩＦＯバッファへデータを書き込んでいく（ステップＳ１０５）。
送信データは１単位毎に、上記の処理を経て書き込み制御部１０４によってＦＩＦＯバッファに書き込まれていく。
（２−２．読み出し動作）
図３は、読み出し制御部１０５の読み出し動作を示すフローチャートであり、データを１単位当たり（例えば、１フレーム）読み出す処理を示す。
【００３８】
読み出し制御部１０５は、まず、識別情報Ｂが初期状態であるか否かを確認する（ステップＳ２００）。記憶部１０５ａがヌルであった場合、初期状態である。
識別情報Ｂが初期状態であれば（ステップＳ２００：ＹＥＳ）、読み出し制御部１０５は識別情報Ｂを、所定の順番に準じたＦＩＦＯバッファが設けられた通信路の識別子に更新する（ステップＳ２０１）。
【００３９】
通知部１０５ｃは、ライン１０６を介して、更新した識別情報Ｂを書き込み制御部１０４に通知する（ステップＳ２０２）。
読み出し部１０５ｂは、識別情報Ｂが示す通信路に設けられたＦＩＦＯバッファから（ステップＳ２０３：ＹＥＳ）、データの読み出しを行う（ステップＳ２０４）。
読み出し部１０５ｂは、ＦＩＦＯバッファからデータの読み出しに失敗しなければ（ステップＳ２０５：ＮＯ）、そのまま終了する。
【００４０】
いったん一のＦＩＦＯバッファからのデータ読み出しが開始すると、識別情報Ｂは初期状態ではなく（ステップＳ２００：ＮＯ）、読み出し制御部１０５は、逐次、識別情報Ｂが示す通信路に設けられたＦＩＦＯバッファに対しデータの読み出しを実行する（ステップＳ２０４）。
一のＦＩＦＯバッファからデータの読み出しが失敗しない限り（ステップＳ２０１：ＮＯ）、当該一のＦＩＦＯバッファからデータを読み出していく。
【００４１】
一方、一のＦＩＦＯバッファへの読み出し処理が失敗した場合（ステップＳ２０５：ＹＥＳ）、当該一のＦＩＦＯバッファが空になったということである。このとき、読み出し制御部１０５は、識別情報Ｂを初期状態に更新する（ステップＳ２０６）。
識別情報Ｂが初期状態に更新されると、次の読み出しでは、再び初期状態から開始し（ステップＳ２００：ＹＥＳ）、識別情報Ｂを、所定の順番に準じて一のＦＩＦＯバッファに続く次のＦＩＦＯバッファが設けられた識別子に更新する（ステップＳ２０１）。
【００４２】
その後、読み出し制御部１０５は、再び識別情報Ｂを書き込み制御部１０４に通知して（ステップＳ２０２）、ＦＩＦＯバッファ内のデータが空になるまで読み出していく（ステップＳ２０４、ステップＳ２０５：ＮＯ）。
以上のように書き込み制御部１０４と読み出し制御部１０５とが協働して動作することにより、書き込み制御部１０４は送信されるデータを順番通りに各通信路に対応する各ＦＩＦＯバッファにデータを書き込んでいく中で、読み出し制御部１０５が一のＦＩＦＯバッファ内のデータ全てを読み出さない限り、新たにこの一のＦＩＦＯバッファへは書き込みを行わず、他のＦＩＦＯバッファにのみ新たな書き込みを行う。このように書き込みを行うことによって、特に順番を示すような情報を送信データに付加しなくても、読み出し制御部１０５は逐次ＦＩＦＯバッファが空になるまでデータを読み出していくだけで、当該順番が保たれたままデータを読み出すことができる。
（２−３．具体例）
ここで、図４を参照し、書き込み制御部１０４と読み出し制御部１０５の動作について具体例を挙げて、説明する。
【００４３】
ここでは、データの送信元は、通信路Ａ、通信路Ｂ、通信路Ｃの順番でデータを送信してくるものとし、書き込み制御部１０４は、ＦＩＦＯバッファＡ１０１、ＦＩＦＯバッファＢ１０２、ＦＩＦＯバッファＣ１０３の順番で書き込み処理を実行するものとする。
図４は、書き込み制御部１０４の書き込み処理と読み出し制御部１０５の読み出し処理の様子を、ＦＩＦＯバッファＡ１０１〜Ｃ１０３の遷移で示した概略図である。
【００４４】
図４の［例］に示すように、ここでは、送信元から、通信路Ａに１８８バイトのデータが４フレーム送信され、続いて通信路Ｂに１００バイトのデータが１フレーム送信され、続いて通信路Ｃに９０バイトのデータが１フレーム送信され、その後通信路Ａに１８８バイトのデータが送信される例について説明する。
まず、書き込み制御部１０４は、初期状態であった識別情報を通信路Ａに更新し（ステップＳ１０４）、通信路Ａに送信された１８８バイトの１フレームをＦＩＦＯバッファＡ１０１に書き込む（ステップＳ１０５）。（図４（ａ））
続けて、書き込み制御部１０４は、１８８バイトの１フレームをＦＩＦＯバッファＡ１０１に書き込む（ステップＳ１０５）。（図４（ｂ））
続けて、書き込み制御部１０４は、１８８バイトの１フレームをＦＩＦＯバッファＡ１０１に書き込む（ステップＳ１０５）。（図４（ｃ））
次に、読み出し制御部１０５が、読み出しを開始するＦＩＦＯバッファＡ１０１の通信路（通信路Ａ）を通知し（ステップＳ２０２）、読み出しを開始する。ここで、１８８バイトの１フレームを読み出す（ステップＳ２０４）。一方、書き込み制御部１０４は、続けて１８８バイトの１フレームをＦＩＦＯバッファＡ１０１に書き込む（ステップＳ１０５）。（図４（ｄ））
【００４５】
続いて、読み出し制御部１０５は続けて１８８バイトの１フレームを読み出す（ステップ２０４）。一方、書き込み制御部１０４は、ＦＩＦＯバッファＡ１０１への書き込みが完了したので、ＦＩＦＯバッファＢ１０２への書き込みへ移る。識別情報Ａ（通信路Ａ）とＦＩＦＯバッファＢ１０２が設けられた通信路（通信路Ｂ）とが一致しない（ステップＳ１０１：ＮＯ）が、書き込み制御部１０４は、図４（ｄ）の段階で読み出し制御部１０５より通信路Ａの通知を受けていたので（ステップＳ１０３：ＹＥＳ）、識別情報Ａを通信路Ｂに更新し（ステップＳ１０４）、通信路Ｂを介して送信される１００バイトの１フレームをＦＩＦＯバッファＢに書き込む（ステップＳ１０５）。（図４（ｅ））
続いて、読み込み制御部１０５は、続けて１８８バイトの１フレームを読み出す（ステップＳ２０４）。一方、書き込み制御部１０４は、ＦＩＦＯバッファＢ１０２への書き込みが完了したので、ＦＩＦＯバッファＣ１０３への書き込みへ移る。ところが、識別情報Ａ（通信路Ｂ）はＦＩＦＯバッファＣ１０３が設けられた通信路（通信路Ｃ）と一致せず（ステップＳ１０１：ＮＯ）、かつ通知を受けていた通信路Ａとも一致しない（ステップＳ１０３：ＮＯ）ため、書き込み制御部１０４は９０バイトの１フレームをキャッシュ１０４ｃに保持したままにすることで書き込みを待機する（ステップＳ１０２）。（図４（ｆ））
続いて、読み込み制御部１０５は、続けて１８８バイトの１フレームを読み出す（ステップＳ２０４）。一方、書き込み制御部１０４は、新たに通信路Ａを介して１８８バイトの１フレームを受け取るが、その前に通信路Ｂを介して送られた９０バイトの１フレームがキャッシュされているため、同様にキャッシュされる。
（図４（ｇ））
【００４６】
次に、ＦＩＦＯバッファＡ１０１が空になるまで読み出されたことにより、読み出し制御部１０５はＦＩＦＯバッファＡ１０１からのデータ読み出しに失敗する（ステップＳ２０５：ＹＥＳ）ため、識別情報Ｂを初期状態に戻した（ステップＳ２０６）後、次の順番であるＦＩＦＯバッファＢ１０２が設けられた通信路（通信路Ｂ）に更新して（ステップＳ２０１）書き込み制御部１０４に通知し（ステップＳ２０２）、ＦＩＦＯバッファＢ１０２から１００バイトの１フレームを読み出す（ステップＳ２０４）。一方、書き込み制御部１０４は、識別情報Ａ（通信路Ｂ）と、通知された識別情報Ｂ（通信路Ｂ）とが一致する（ステップＳ１０３：ＹＥＳ）ことから、識別情報Ａを次の順番である通信路Ｃに更新する（ステップＳ１０４）。すると、書き込み制御部１０４は、ＦＩＦＯバッファＣ１０３宛の待機していた９０バイトの１フレームを書き込む（ステップＳ１０５）。通信路Ａを介して送られてくる１８８バイトの１フレームについては、書き込みを待機する（ステップＳ１０２）。（図４（ｈ））
次に、ＦＩＦＯバッファＢ１０２が空になるまで読み出されたことにより、読み出し制御部１０５はＦＩＦＯバッファＢ１０２からのデータ読み出しに失敗する（ステップＳ２０５：ＹＥＳ）ため、識別情報Ｂを初期状態に戻した（ステップＳ２０６）後、次の順番である通信路Ｃに更新して（ステップＳ２０１）書き込み制御部１０４に通知し（ステップＳ２０２）、ＦＩＦＯバッファＣ１０３から９０バイトの１フレームを読み出す（ステップＳ２０４）。一方、書き込み制御部１０４は、識別情報Ａ（通信路Ｃ）と、通知された識別情報Ｂ（通信路Ｃ）とが一致する（ステップＳ１０３：ＹＥＳ）ことから、識別情報Ａを次の順番である通信路Ａに更新する（ステップＳ１０４）。すると、書き込み制御部１０４は、ＦＩＦＯバッファＡ１０１宛の待機していた１８８バイトの１フレームを書き込む（ステップＳ１０５）。通信路Ａを介して送られてくる１８８バイトの１フレームはキャッシュされる（ステップＳ１０２）。（図４（ｉ））
【００４７】
次に、ＦＩＦＯバッファＣ１０３が空になるまで読み出されたことにより、読み出し制御部１０５はＦＩＦＯバッファＣ１０３からのデータ読み出しに失敗する（ステップＳ２０５：ＹＥＳ）ため、識別情報Ｂを初期状態に戻した（ステップＳ２０６）後、次の順番である通信路Ａに更新して（ステップＳ２０１）書き込み制御部１０４に通知し（ステップＳ２０２）、ＦＩＦＯバッファＡ１０１から１８８バイトの１フレームを読み出す（ステップＳ２０４）。一方、書き込み制御部１０４は、ＦＩＦＯバッファＡ１０１宛の待機していた１８８バイトの１フレームを書き込む（ステップＳ１０５）とともに、通信路Ｂから送られてくる１００バイトの１フレームをキャッシュする。（図４（ｊ））
続いて、読み込み制御部１０５は、続けて１８８バイトの１フレームを読み出す（ステップＳ２０４）。一方、書き込み制御部１０４は、ＦＩＦＯバッファＡ１０１宛の待機していた１８８バイトの１フレームを書き込む（ステップＳ１０５）とともに、通信路Ｂから送られてくる１００バイトの１フレームをキャッシュする。（図４（ｋ））
以上のように、書き込み制御部１０４と読み出し制御部１０５とが動作することで、読み出し制御部１０５は、ＦＩＦＯバッファＡ１０１〜Ｃ１０３を順番に空になるまで読んでいくだけで、読み出すべきデータの順番（通信路Ａの１８８バイトのデータを４フレーム、通信路Ｂの１００バイトのデータを１フレーム、通信路Ｃの９０バイトのデータを１フレーム、通信路Ａの１８８バイトのデータを３フレーム・・・という順番）通りに読み出すことができる。
（３．実装例）
次に、図５〜８を参照しながら、通信装置１００を、符号化データを復号化する復号化装置に実装した例について説明する。
（３−１．構成）
まず、図５を参照しながら、通信装置１００を実装した復号化装置１の構成について説明する。
【００４８】
図５は、通信装置１００を実装した復号化装置１を示すブロック図である。
復号化装置１は、復号化指示部１０、符号化データ記憶部２０及び３０、パラメータ用メモリ４０、符号化データ用メモリ５０、復号化実行部６０、及び通信装置１００を備える。
符号化データ記憶部２０は、例えばＨＤＤ（Hard Disk Drive）等の記憶装置であり、符号化データＡを記憶するものである。
【００４９】
符号化データ記憶部３０は、例えばＨＤＤ等の記憶装置であり、符号化データＢを記憶するものである。
パラメータ用メモリ４０は、復号化に使用するパラメータを一時的に保持するためのメモリであり、復号化指示部１０及び復号化実行部６０の両方からアクセス可能なメモリである。
【００５０】
符号化データ用メモリ５０は、符号化するデータを一時的に保持するためのメモリであり、復号化指示部１０及び復号化実行部６０の両方からアクセス可能なメモリである。
復号化指示部１０は、符号化データＡ及び符号化データＢの復号化を、復号化実行部６０に指示するものであり、符号化データ転送手段１１、転送完了通知手段１２、及びパラメータ指示手段１３を含む。
【００５１】
符号化データ転送手段１１は、符号化データＡ及び符号化データＢを符号化データ用メモリ５０に転送する機能を有する。
転送完了通知手段１２は、符号化データ転送手段１１による転送が完了したメモリのアドレスを通信部Ａへ送出する機能を有する。
パラメータ指示手段１３は、パラメータ用メモリ４０に復号化用パラメータを設定し、そのメモリアドレスを通信路Ｂに送出する機能を有する。
【００５２】
通信路Ａは、符号化データの通信に使用される。
通信路Ｂは、復号化用パラメータの通信に使用される。
復号化実行部６０は、復号化指示部１０から指示を受けて符号化データＡ及び符号化データＢを復号化するものであり、パラメータ取得手段６１と、データ復号手段６２とを含む。
【００５３】
パラメータ取得手段６１は、パラメータ指示手段１３から指示を受けたパラメータを、パラメータ用メモリ４０から取得する機能を有する。
データ復号手段６２は、転送完了通知手段１２から通知を受けた符号化データを、符号化データメモリ４０６から取得し、パラメータ取得手段６１で取得したパラメータを用いて復号化する機能を有する。
（３−２．データ）
次に、図６を参照しながら、復号化指示部１０が復号化実行部６０に送信するデータについて説明する。
【００５４】
図６は、復号化指示部１０が送信するデータのデータ構造を示す概略図である。
復号化指示部１０が送信するデータは、データメモリアドレス指示部とデータサイズ指示部から成る。
例えば、転送完了通知手段１２が送信するデータの場合、データメモリアドレス指示部には、符号化データの転送が完了したメモリのアドレスが入る。
【００５５】
また、パラメータ指示手段１３が送信するデータの場合、データメモリアドレス指示部には、復号化用パラメータを設定したメモリのアドレスが入る。
（３−３．動作）
次に、図７〜８を参照しながら、復号化装置１の動作について説明する。
図７は、復号化指示部１０のデータ送信時の動作を示すフローチャートである。
【００５６】
復号化指示部１０が復号化復号化指示処理を開始すると、まず、符号化データ転送手段１１が符号化データＡの符号化データ用メモリ５０への転送を開始する（ステップＳ３００）。符号化データ転送手段１１による転送処理は全ての符号化対象データの転送が完了するまで断続的に行われる。
パラメータ指示手段１３は、符号化データＡの復号化に必要なパラメータをパラメータ用メモリ４０に設定し（ステップＳ３０１）、そのメモリアドレスとメモリサイズを通信路Ｂに送出する（ステップＳ３０２）。この処理（ステップＳ３０２）は、符号化データ転送手段１１による転送処理（ステップＳ３０１）と平行して、全パラメータについて設定し終わるまで（ステップＳ３０３：ＹＥＳ）繰り返される。
【００５７】
次に、転送完了通知手段１２は、符号化データ用メモリ５０に転送された符号化データのメモリアドレス情報を、符号化単位（例えば、固定長１８８バイト）毎に通信路Ａへ順次送信する（ステップＳ３０４）。この処理（ステップＳ３０４）は、符号化データ転送手段１１による転送処理（ステップＳ３０１）と平行して行われ、通知すべき符号化データが終了した場合は、復号化指示処理を終了する（ステップＳ３０５）。
【００５８】
図８は、復号化実行部６０のデータ受信時の動作を示すフローチャートである。
復号化実行部６０が符号化データＡの受信と復号化を行うときは、まず、通信路Ｂを介して通信データを受信し（ステップＳ４００）、通信データの情報（パラメータ用メモリ４０内のメモリアドレスとデータサイズ）に従ってパラメータ取得手段６１でパラメータ用メモリ４０より復号化用パラメータを取得する（ステップＳ４０２）。この処理（ステップＳ４０１）は、通信路Ｂから通信データがなくなるまで（ステップＳ４０１：ＮＯ）繰り返し行われる。
【００５９】
次に、復号化実行部６０は通信路Ａを介して通信データを受信し（ステップＳ４０３）、通信データの情報（符号化データ用メモリ５０内のメモリアドレスとデータサイズ）に従ってデータ復号手段６２で符号化データ用メモリ５０より符号化データＡを取得し（ステップＳ４０５）、ステップＳ４０２にてパラメータ取得手段６１が取得したパラメータを用いて符号化データＡを復号化する（ステップＳ４０６）。この処理（ステップＳ４０５及びＳ４０６）は、通信路Ａから通信データがなくなるまで（ステップＳ４０４：ＮＯ）繰り返し行われる。一方、通信路Ａからデータがなくなると（ステップＳ４０４：ＹＥＳ）、復号化実行部６０は復号化処理を終了する。
【００６０】
符号化データＡの復号化処理に続いて符号化データＢの復号化処理を行う場合、復号化指示部１０は、符号化データＡの復号化指示完了後、復号化実行部６０による符号化データＡの復号化処理が完了するのを待たずに、符号化データＢの符号化データ用メモリ４０６への転送を開始し（ステップＳ３００）、符号化データＢの復号化に用いるパラメータのパラメータ用メモリ４０への転送を開始し（ステップＳ３０１）、パラメータ情報を通信路Ｂに送出する（ステップＳ３０２）。
【００６１】
このとき、通信装置１００が図２〜３に示した動作を行う、
すなわち、読み出し制御部１０５が、通信路Ｂを介して送られる符号化データＡに係るパラメータ情報をＦＩＦＯバッファＢ１０２から全て読み出すまで、書き込み制御部１０４は、パラメータ指示手段１３が通信路Ｂを介して送信する符号化データＢに係るパラメータ情報をキャッシュ１０４ｃに保持することでＦＩＦＯＢ１０２への書き込みを待機する（ステップＳ１０２）。
【００６２】
同様に、読み出し制御部１０５が符号化データＡに係るパラメータ情報の読み出しを実行中に、転送完了通知手段１２が符号化データＢのメモリアドレス情報を符号化単位毎に通信路Ａに送出する場合、書き込み制御部１０４は、このメモリアドレス情報をキャッシュ１０４ｃに保持することでＦＩＦＯバッファＡ１０１への書き込みを待機する（ステップＳ１０２）。
【００６３】
読み出し制御部１０５が符号化データＡに係るパラメータ情報の読み出しを完了し、通信路Ａを介して送られた（ＦＩＦＯバッファＡ１０１内の）符号化データＡのメモリアドレス情報の読み出しを開始すると（ステップＳ２０１、Ｓ２０２、Ｓ２０４）、書き込み制御部１０４は、キャッシュ１０４ｃに保持していた符号化データＢに係るパラメータ情報をＦＩＦＯバッファＢ１０２に書き込んでいく（ステップ１０５）。
【００６４】
このように動作することで、適切な順番（符号化データＡ用のパラメータ情報、符号化データＡのメモリアドレス情報、符号化データＢ用のパラメータ情報・・・）を遵守したまま、読み出し制御部１０５がデータを読み出し、復号化実行部６０がデータを復号化することできる。
仮に、図５に示す復号化装置１の構成から通信装置１００が欠けたとすると、復号化実行部６０が符号化データＡのメモリアドレス情報を受信する前に、符号化データＢ用のパラメータ情報を受信してしまい、復号化処理に支障をきたす可能性がある。
【００６５】
同様に、復号化実行部６０が符号化データＢのパラメータ情報を受信する前に、符号化データＢのメモリアドレス情報を受信してしまい、復号化処理に支障をきたす可能性がある。
こういった事態は、復号化実行部６０の処理速度が復号化指示部１０の処理速度よりも遅い場合に発生する。
【００６６】
以上、上述したように、本発明では、通信装置１００の存在により、上記の支障をきたすことがなく、復号化指示部１０と復号化実行部６０との間で正しく通信を行うことができる。
＜実施形態２＞
次に、本発明の実施形態２について、図９を参照しながら説明する。
【００６７】
実施形態２の通信装置２００は、書き込み制御部１０４と読み出し制御部１０５とが同期を行う必要が発生した場合にのみ、同期してデータの書き込みと読み出しを行う。
以下、実施形態２の通信装置２００について、実施形態１の通信装置１００と異なる点に焦点を当てて説明する。
図９は、通信装置２００の構成を示すブロック図である。
【００６８】
実施形態１の通信装置１００と同様の構成については、同じ符号を付し、説明は省略する。
通信装置２００は、同期スイッチ１０７を備える。
同期スイッチ１０７は、外部の送信装置（不図示）から、通信路Ａ〜Ｃへのデータ送信を開始する旨の信号を受け、書き込み制御部１０４と読み出し制御部１０５とに互いに同期して書き込み処理と読み出し処理を行うよう指示する同期信号を送出する機能を有する。
【００６９】
書き込み制御部１０４は、同期スイッチ１０７から同期信号を受けると、実施形態１で示した書き込み動作（ステップＳ１００〜Ｓ１０５）を実行する。
読み出し制御部１０５は、同期スイッチ１０７から同期信号を受けると、実施形態１で示した読み出し動作（ステップＳ２００〜Ｓ２０６）を実行する。
この構成により、外部の送信装置が送信するデータを所定の順番を保って読み出し制御部１０５が読み出す必要がある場合にのみ、書き込み制御部１０４と読み出し制御部１０５を同期させ、その必要がない場合には互いに非同期で動作させることができる。
＜実施形態３＞
次に、本発明の実施形態３について、図１０〜１２を参照しながら説明する。
【００７０】
実施形態１では、読み出し制御部１０５が読み出すＦＩＦＯバッファが設けられた通信路の識別子（識別情報Ｂ）を書き込み制御部１０４に通知するようになっていたが、本実施形態では、書き込み制御部１０４が書き込むＦＩＦＯバッファが設けられた通信路の識別子（識別情報Ａ）を読み出し制御部１０５に通知する点で異なる。
以下、実施形態３の通信装置３００について、実施形態１の通信装置１００と異なる点に焦点を当てて説明する。
（１．構成）
まず、図１０を参照しながら、通信装置１００の構成について説明する。
【００７１】
図１０は、通信装置３００の構成を示すブロック図である。
実施形態１の通信装置１００と同様の構成については、同じ符号を付し、説明は省略する。
通信装置３００は、ＦＩＦＯバッファＤ１０８を備える。
ＦＩＦＯバッファＤ１０８は、書き込み制御部１０４から送られてくる、通信路Ａ〜Ｃのいずれかの識別子を保持するものである。
【００７２】
書き込み制御部１０４は、通知部１０４ｄを含む。
通知部１０４ｄは、書き込み部１０４ｂで一のＦＩＦＯバッファにデータの書き込みを開始するときに、記憶部１０４ａに記憶されている識別子をＦＩＦＯバッファＤ１０８に送出するものである。
実施形態３の書き込み部１０４ｂは、一のＦＩＦＯバッファへのデータ書き込みを開始する際に、当該ＦＩＦＯバッファが空であるか否かを判断し、空である場合にのみ書き込みを開始する。空でない場合は、書き込み対象データをキャッシュ１０４ｃに保持したままにしておく。
【００７３】
読み出し制御部１０５は、取得部１０５ｄを含む。
取得部１０５ｄは、読み出し部１０５ｂが一のＦＩＦＯバッファからのデータ読み出しを開始するのに先立って、ＦＩＦＯバッファＤ１０８から識別子を取得し、読み出し部１０５ｂに通知するものである。
実施形態３での読み出し部１０５ｂは、取得部１０５ｄから取得した識別子が示す通信路に設けられたＦＩＦＯバッファからデータの読み出しを開始し、この読み出しを開始したＦＩＦＯバッファが空になるまでデータを読み出す。一のＦＩＦＯバッファ内の全データを読み出す毎に、取得部１０５ｄに識別子の取得を要求し、要求に応じて取得部１０５ｄから送られてくる識別子が示す通信路が設けられたＦＩＦＯバッファからデータ読み出しを開始する。
（２．動作）
次に、通信装置３００の動作について、図１１〜１２を参照しながら説明する。
【００７４】
ここで、以下、書き込み制御部１０４の記憶部１０４ａに記憶されている識別子を「識別情報Ａ」と呼び、読み出し制御部１０５の記憶部１０５ａに記憶されている識別子を「識別情報Ｂ」と呼ぶ。
また、実施形態１で示した動作と同様の動作については、同じ符号を付して詳述はしないことがある。
（２−１．書き込み動作）
図１１は、書き込み制御部１０４の書き込み動作を示すフローチャートであり、データを１単位当たり（例えば、１フレーム）書き込む処理を示す。
【００７５】
識別情報Ａが初期状態であれば（ステップＳ１００：ＹＥＳ）、書き込み制御部１０４は識別情報Ａを、受け取ったデータが送信された通信路の識別子に更新し（ステップＳ１０４）、書き込み部１０４ｂでキャッシュ１０４ｃに保持されたデータ（書き込み対象データ）を、通信路が設けられたＦＩＦＯバッファへ書き込む（ステップＳ１０５）。
いったん一のＦＩＦＯバッファへのデータ書き込みが開始すると、識別情報Ａは初期状態ではなく（ステップＳ１００：ＮＯ）、書き込み対象のデータが送られてきた通信路の識別子と識別情報Ａとが一致する限り（ステップＳ１０１：ＹＥＳ）、当該ＦＩＦＯバッファへデータを書き込んでいく（ステップＳ１０５）。
【００７６】
一方、一のＦＩＦＯバッファへの書き込み処理が終了し、次のＦＩＦＯバッファへ書き込むデータが発生し、このＦＩＦＯバッファが設けられた通信路の識別子と識別情報Ａとが一致しない場合（ステップＳ１０１：ＮＯ）、実施形態３では、書き込み部１０４ｂが、この新たに書き込み対象となるＦＩＦＯバッファが空であるか否かを判断する（ステップＳ１０６）。
【００７７】
書き込み対象のＦＩＦＯバッファが空であれば（ステップＳ１０６：ＹＥＳ）、書き込み部１０４ｂは、識別情報Ａを当該ＦＩＦＯバッファが設けられた通信路の識別子で更新する（ステップＳ１０４）とともに、更新した識別子をＦＩＦＯバッファＤ１０８へ送出し（ステップＳ１０７）、当該ＦＩＦＯバッファにデータ書き込みを開始する（ステップＳ１０５）。
【００７８】
ステップＳ１０６にて、書き込み対象のＦＩＦＯバッファが空でなければ（ステップＳ１０６：ＮＯ）、書き込み部１０４ｂは、データをキャッシュ１０４ｃに保持したままにしておく。
その後、書き込み対象のＦＩＦＯバッファが空にならない限り（ステップＳ１０６：ＮＯ）、キャッシュ１０４ｃにデータは保持され続ける。
（２−２．読み出し動作）
図１２は、読み出し制御部１０５の読み出し動作を示すフローチャートであり、データを１単位当たり（例えば、１フレーム）読み出す処理を示す。
【００７９】
読み出し制御部１０５は、まず、識別情報Ｂが初期状態であるか否かを確認し（ステップＳ２００）、識別情報Ｂが初期状態であれば（ステップＳ２００：ＹＥＳ）、読み出し制御部１０５は、取得部１０５ｄでＦＩＦＯバッファＤ１０８に保持されている識別情報Ａを取得する（ステップＳ２０７）とともに、取得した識別情報Ａで識別情報Ｂを更新する（ステップＳ２０８）。
【００８０】
その後、読み出し部１０５ｂは、識別情報Ｂが示す通信路に設けられたＦＩＦＯバッファから（ステップＳ２０３：ＹＥＳ）、データの読み出しを行う（ステップＳ２０４）。
読み出し部１０５ｂは、ＦＩＦＯバッファからデータの読み出しに失敗しなければ（ステップＳ２０５：ＮＯ）、そのまま終了する。
いったん一のＦＩＦＯバッファからのデータ読み出しが開始すると、識別情報Ｂは初期状態ではなく（ステップＳ２００：ＮＯ）、読み出し制御部１０５は、逐次、識別情報Ｂが示す通信路に設けられたＦＩＦＯバッファからデータの読み出しを実行する（ステップＳ２０４）。
【００８１】
一のＦＩＦＯバッファからデータの読み出しが失敗しない限り（ステップＳ２０１：ＮＯ）、当該一のＦＩＦＯバッファからデータを読み出していく。
一方、一のＦＩＦＯバッファへの読み出し処理が失敗した場合（ステップＳ２０５：ＹＥＳ）、当該一のＦＩＦＯバッファが空になったということであるので、読み出し制御部１０５は、識別情報Ｂを初期状態に更新する（ステップＳ２０６）。
【００８２】
識別情報Ｂが初期状態に更新されると、次の読み出しでは、再び初期状態から開始し（ステップＳ２００：ＹＥＳ）、読み出し制御部１０５はＦＩＦＯバッファＤ１０８から識別情報Ａを取得して（ステップＳ２０７）識別情報Ｂを更新する（ステップＳ２０８）。
その後、読み出し制御部１０５はＦＩＦＯバッファ内のデータが空になるまで読み出していく（ステップＳ２０４、ステップＳ２０５：ＮＯ）。
【００８３】
以上のように、書き込み制御部１０４と読み出し制御部１０５とが協働して動作することにより、書き込み制御部１０４は送信されるデータを順番通りに各通信路に対応する各ＦＩＦＯバッファに書き込んでいく中で、新たに一のＦＩＦＯバッファへの書き込み処理を開始する際にこのＦＩＦＯバッファが設けられた通信路の識別子（識別情報Ａ）をＦＩＦＯバッファＤ１０８に送出し、読み出し制御部１０５はＦＩＦＯバッファＤ１０８内の識別子が示す通信路に設けられたＦＩＦＯバッファからのみ読み出しを開始する。このように書き込み及び読み出しを行うことによって、特に順番を示すような情報を送信データに付加しなくても、読み出し制御部１０５は逐次ＦＩＦＯバッファが空になるまでデータを読み出していくだけで、当該順番が保たれたままデータを読み出すことができる。
＜実施形態４＞
次に、本発明の実施形態４について、図１３〜１５を参照しながら説明する。
【００８４】
実施形態４の通信装置４００は、各通信路に優先度付けを行い、各通信路から同時にデータが送信されてきた場合に対応する。
以下、実施形態４の通信装置４００について、実施形態１の通信装置１００と異なる点に焦点を当てて説明する。
（１．構成）
まず、図１３を参照しながら、通信装置４００の構成について説明する。
【００８５】
図１３は、通信装置４００の構成を示すブロック図である。
実施形態１の通信装置１００と同様の構成については、同じ符号を付し、説明は省略する。
通信装置４００は、外部の３つのＣＰＵ（ＣＰＵＡ、ＣＰＵＢ、ＣＰＵＣ）それぞれから送信されるデータを中継するものである。
【００８６】
ＣＰＵＡは、通信路Ａを介してデータを送信するものである。
ＣＰＵＢは、通信路Ｂを介してデータを送信するものである。
ＣＰＵＣは、通信路Ｃを介してデータを送信するものである。
各ＣＰＵは独立してデータの送信を行う並列処理システムである。
書き込み制御部１０４は、通信路Ａ〜Ｃの優先度を示す通信路優先度テーブル５００を記憶部１０４ａに記憶している。書き込み制御部１０４は、通信装置４００の動作中に通信路優先度テーブル５００を書き換えることが可能であり、２つ以上の通信路から同時にデータが送信された場合に、どの通信路のデータから優先して処理するかを決定するための処理順序決定処理を実行するものである。
（２．データ）
次に、通信路優先度テーブル５００のデータ構造について、図１４を参照しながら説明する。
【００８７】
通信路優先度テーブル５００では、各通信路Ａ〜Ｃの識別子と、各識別子と対応する優先度が記憶されている。ここでは、通信路Ａの優先度が一番高く（優先度１）、通信路Ｂの優先度が一番低い（優先度３）。初期設定では、図１４（ａ）に示すように、識別子の降順に並べられている。
（３．動作）
次に、書き込み制御部１０４が行う処理順序決定処理の動作について、図１５を参照しながら説明する。
【００８８】
通信路Ａ〜Ｃを介してＣＰＵＡ〜Ｃそれぞれから同時にデータが送信されてきた場合、書き込み制御部１０４は、通信路優先度テーブル５００を取得し（ステップＳ３００）、図１４（ｂ）に示すように優先度の高い順に通信路優先度テーブル５００を書き換える（ステップＳ３０１）。
書き換え制御部１０４は、書き換えられた通信路優先度テーブルに従い、優先度の高い通信路からのデータから書き込み処理を開始する。
【００８９】
なお、書き込み処理については、実施形態１で示した動作（図２）と同様なので説明は割愛する。
以上のように、書き込み制御部１０４が通信路の優先度に応じた制御を行うことで、２つ以上の通信路から同時にデータが送信してきた場合に競合を回避することができる。これは特に、通信路毎に異なるプロセッサを用いて各プロセッサ間で並列処理を行うシステムなどで効果を発揮する。
＜変形例＞
以上、実施形態１〜４に基づいて本発明について説明してきたが、本発明はこれら実施形態に記載した内容に限定されるものではなく、種々の変形を加えることができる。
（１）実施形態１〜４では、書き込み制御部１０４がキャッシュ１０４ｃを備え、キャッシュ１０４ｃがデータを保持することで書き込みを待機するようになっているが、これに限定されるものではなく、外部の送信元にデータの送信を待機させるようにしてもよい。
【００９０】
すなわち、書き込み制御部１０４は、不図示の外部の送信装置に対し、データの送信待機を指示する信号を送信する送信手段を備え、書き込み動作において、（ｉ）送信装置から送られてきたデータはキャッシュすることなく直接ＦＩＦＯバッファＡ１０１〜Ｃ１０３に書き込み、（ｉｉ）書き込みを待機するときは送信装置にデータを送信せずに待機するよう指示し、（ｉｉｉ）待機していたデータを書き込むときは送信装置にデータ送信を指示する構成とする。
【００９１】
外部の送信装置には、書き込み制御部１０４からの指示に応じてデータの送信の待機及び再開を行うよう制御させればよい。
（２）実施形態１〜４では、通信路Ａ〜Ｃに対応してＦＩＦＯバッファＡ１０１〜Ｃ１０３がハードウェア的に別個のものとして設けられていたが、これに限定されるものではない。
【００９２】
すなわち、例えば、通信路Ａ〜Ｃに対応する１つのＦＩＦＯバッファを備え、このＦＩＦＯバッファ内でチェーンポインタの手法を用いてソフトウェア的に複数のＦＩＦＯバッファを設けるようにしてもよい。
【産業上の利用可能性】
【００９３】
本発明に係る通信装置は、送信側と受信側とで同期を取る必要のある通信に広く適用可能であり、余計な付加データを付加することなく、送信側と受信側とで同期のための信号のやり取りを極力抑えて高速な通信を実現できる点で有用な技術である。
【図面の簡単な説明】
【００９４】
【図１】実施形態１に係る通信装置１００の構成を示すブロック図である。
【図２】実施形態１に係る書き込み制御部１０４の書き込み動作を示すフローチャートである。
【図３】実施形態１に係る読み出し制御部１０５の読み出し動作を示すフローチャートである。
【図４】ＦＩＦＯバッファＡ１０１〜Ｃ１０３の遷移を示す概略図である。
【図５】復号化装置１の構成を示すブロック図である。
【図６】復号化指示部１０が送信するデータのデータ構造を示す概略図である。
【図７】復号化指示部１０のデータ送信時の動作を示すフローチャートである。
【図８】復号化実行部６０のデータ受信時の動作を示すフローチャートである。
【図９】実施形態２に係る通信装置２００の構成を示すブロック図である。
【図１０】実施形態３に係る通信装置３００の構成を示すブロック図である。
【図１１】実施形態３に係る書き込み制御部１０４の書き込み動作を示すフローチャートである。
【図１２】実施形態３に係る読み出し制御部１０５の読み出し動作を示すフローチャートである。
【図１３】実施形態４に係る通信装置４００の構成を示すブロック図である。
【図１４】通信路優先度テーブルのデータ構造を示す概略図である。
【図１５】実施形態４に係る書き込み制御部１０４の処理順序決定処理動作を示すフローチャートである。
【符号の説明】
【００９５】
１０                                復号化指示部
１１                                符号化データ転送手段
１２                                転送完了通知手段
１３                                パラメータ指示手段
２０、３０                          符号化データ記憶部
４０                                パラメータ用メモリ
５０                                符号化データ用メモリ
６０                                復号化実行部
６１                                パラメータ取得手段
６２                                データ復号手段
１００、２００、３００              通信装置
１０１、１０２、１０３、１０８      ＦＩＦＯバッファ
１０４                              書き込み制御部
１０４ａ                            記憶部
１０４ｂ                            書き込み部
１０４ｃ                            キャッシュ
１０５                              読み出し制御部
１０５ａ                            記憶部
１０５ｂ                            読み出し部
１０５ｃ                            通知部
１０６                              ライン
１０７                              同期スイッチ
【図１】
2008152580.tif 000003
【図２】
2008152580.tif 000004
【図３】
2008152580.tif 000005
【図４】
2008152580.tif 000006
【図５】
2008152580.tif 000007
【図６】
2008152580.tif 000008
【図７】
2008152580.tif 000009
【図８】
2008152580.tif 000010
【図９】
2008152580.tif 000011
【図１０】
2008152580.tif 000012
【図１１】
2008152580.tif 000013
【図１２】
2008152580.tif 000014
【図１３】
2008152580.tif 000015
【図１４】
2008152580.tif 000016
【図１５】
2008152580.tif 000017