JP2008152580A - 通信装置、及び通信方法 - Google Patents

通信装置、及び通信方法 Download PDF

Info

Publication number
JP2008152580A
JP2008152580A JP2006340557A JP2006340557A JP2008152580A JP 2008152580 A JP2008152580 A JP 2008152580A JP 2006340557 A JP2006340557 A JP 2006340557A JP 2006340557 A JP2006340557 A JP 2006340557A JP 2008152580 A JP2008152580 A JP 2008152580A
Authority
JP
Japan
Prior art keywords
data
identifier
writing
fifo buffer
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006340557A
Other languages
English (en)
Inventor
Yohei Ikeuchi
陽平 池内
Kensuke Kotani
謙介 小谷
Hironobu Maeda
洋信 前田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006340557A priority Critical patent/JP2008152580A/ja
Publication of JP2008152580A publication Critical patent/JP2008152580A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

【課題】余計な付加情報を排除しつつ、互いに非同期の送受信装置間で高速に通信を行うことのできる通信装置及び通信方法を提供する。
【解決手段】本発明の通信装置は、複数の通信路A〜Cの各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のFIFOバッファA101〜C103と、受信したデータを、複数のFIFOバッファに対し所定の順番で各FIFOバッファに書き込む書き込み処理を行う書き込み手段104と、複数のFIFOバッファ内のデータを所定の順番で読み出し、一のFIFOバッファ内の全てのデータを読み出す毎に次のFIFOバッファ内のデータを読み出す読み出し処理を行う読み出し手段105と、読み出し処理を開始したときに、読み出しを開始したデータが送られてきた通信路の識別子を、前記書き込み手段に通知する通知手段105cとを備える。
【選択図】図1

Description

本発明は、データの通信を行うための通信技術に関し、特に、複数の通信路を介してデータを送受信するための通信装置及び通信方法に関する。
従来、互いに非同期の送信装置と受信装置との間でデータ通信を行う際、両装置間で同期を取る同期制御の方法として、ハンドシェイク方式がある。ハンドシェイク方式では、送信装置と受信装置とでそれぞれレディ信号とストローブ信号とをやり取りすることによって互いに同期を取るようになっている。
しかし、ハンドシェイク方式ではデータの送受信毎に信号のやり取りを行うため、通信の高速化を阻害してしまう。このため、ハンドシェイク方式に代わって、より効率的に送信装置と受信装置間で同期を取る方法が模索されている。
例えば、同期を行う通信路全体の送信順序情報を通信データに付加することにより、送信装置と受信装置間でデータの順序を保障して両装置間で同期を取る技術が提案されている(特許文献1参照)。
特開2006−39849号公報
ところが、上記のように通信データに送信順序情報を付加する手法だと、ハンドシェイク方式に比べて通信速度を向上させることはできるが、通信データに余計な情報を付加する分通信データ量が増大してしまう。
特に、メモリを共有するモジュール・プロセッサ間の通信では、処理対象となるデータのメモリアドレスやデータサイズのみが送受信されるため、ペイロードのバイト数が小さい。このようにペイロードのバイト数が小さい場合、通信データ内でペイロード以外の付加情報が占める割合が大きくなり、通信の効率性を阻害することになる。
そこで、本発明は、余計な付加情報を排除しつつ、互いに非同期の送受信装置間で高速に通信を行うことのできる通信装置及び通信方法を提供することを目的とする。
上記課題を解決するために、本発明の第1の態様における通信装置は、各々に識別子が割り当てられた複数の通信路から受信したデータを送信するための通信装置であって、前記複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のFIFO(First In First Out)バッファと、受信したデータを、前記複数のFIFOバッファに対し所定の順番で各FIFOバッファに書き込む書き込み処理を行う書き込み手段と、前記複数のFIFOバッファ内のデータを所定の順番で読み出し、一のFIFOバッファ内の全てのデータを読み出す毎に次のFIFOバッファ内のデータを読み出す読み出し処理を行う読み出し手段と、前記読み出し処理を開始したときに、読み出しを開始したデータが送られてきた通信路の識別子を、前記書き込み手段に通知する通知手段とを備え、前記書き込み手段は、一のFIFOバッファへの書き込み処理を実行し終わった後、前記通知手段から通知を受けた識別子が示す通信路に設けられたFIFOバッファ以外のFIFOバッファについてのみ新たな書き込み処理を開始することを特徴とする。
また、第1の態様における通信方法は、各々に識別子が割り当てられた複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のFIFO(First In First Out)バッファを備える通信装置における通信方法であって、受信したデータを、前記複数のFIFOバッファに対し所定の順番で各FIFOバッファに書き込む書き込み処理を行う書き込みステップと、前記複数のFIFOバッファ内のデータを所定の順番で読み出し、一のFIFOバッファ内の全てのデータを読み出す毎に次のFIFOバッファ内のデータを読み出す読み出し処理を行う読み出しステップと、前記読み出し処理を開始したときに、読み出しを開始したデータが送られてきた通信路の識別子を、前記書き込み手段に通知する通知ステップとを含み、前記書き込みステップでは、一のFIFOバッファへの書き込み処理を実行し終わった後、前記通知手段から通知を受けた識別子が示す通信路に設けられたFIFOバッファ以外のFIFOバッファについてのみ新たな書き込み処理を開始することを特徴とする。
さらに、上記課題を解決するために、本発明の第2の態様における通信装置は、各々に識別子が割り当てられた複数の通信路から受信したデータを送信するための通信装置であって、複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のFIFO(First In First Out)バッファと、受信したデータを、前記複数のFIFOバッファに対し所定の順番で各FIFOバッファに書き込む書き込み処理を行う書き込み手段と、前記書き込み手段で書き込みを開始するFIFOバッファが設けられた通信路を示す識別子を保持するための識別子保持手段と、前記識別子保持手段に保持されている識別子を取得し、取得した識別子が示す通信路に設けられたFIFOバッファ内のデータを読み出す読み出し処理を行う読み出し手段とを備え、前記書き込み手段は、一のFIFOバッファへの書き込み処理を実行し終わる毎に、新たに書き込みを開始するFIFOバッファが空の場合にのみ当該FIFOバッファへの新たな書き込みを開始するとともに、当該FIFOバッファが設けられた通信路の識別子を前記識別子保持手段に送出し、前記読み出し手段は、一のFIFOバッファ内の全てのデータを読み出す毎に前記識別子保持手段から識別子を取得することを特徴とする。
また、第2の態様における通信方法は、各々に識別子が割り当てられた複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のFIFO(First In First Out)バッファを備える通信装置における通信方法であって、受信したデータを、前記複数のFIFOバッファに対し所定の順番で各FIFOバッファに書き込む書き込み処理を行う書き込みステップと、前記書き込みステップで書き込みを開始するFIFOバッファが設けられた通信路を示す識別子を保持するための識別子保持ステップと、前記識別子保持ステップで保持した識別子を取得し、取得した識別子が示す通信路に設けられたFIFOバッファ内のデータを読み出す読み出し処理を行う読み出しステップとを含み、前記書き込みステップでは、一のFIFOバッファへの書き込み処理を実行し終わる毎に、新たに書き込みを開始するFIFOバッファが空の場合にのみ当該FIFOバッファへの新たな書き込みを開始するとともに、前記識別子保持ステップでは、当該新たな書き込みを開始したFIFOバッファが設けられた通信路の識別子を保持し、前記読み出しステップでは、一のFIFOバッファ内の全てのデータを読み出す毎に識別子を取得することを特徴とする。
第1の態様における構成により、通信装置において、所定の順番で複数の通信路を介してデータが送信される場合に、書き込み側はこのデータの順番を保ちながら各通信路に対応する各FIFOバッファにデータを書き込んでいく中で、読み出し側が一のFIFOバッファ内のデータ全てを読み出さない限り、新たにこの一のFIFOバッファへは書き込みを行わずおり、読み込み側が他のFIFOバッファの読み出しを開始すると一のFIFOバッファへ新たな書き込みを行う。このように書き込みを行うことによって、特に順番を示すような情報を送信データに付加しなくても、読み出し側はこの順番を意識することなくFIFOバッファ内のデータ全てを読み込んでいくだけで当該順番が保たれたままデータを読み出すことができる。
例えば、2本の通信路(第1及び第2通信路)と各通信路に対するFIFOバッファ(第1及び第2バッファ)があり、第1通信路に100バイト、第2通信路に10バイト、第1通信路に50バイト、第2通信路に20バイトの4回のデータ書き込み/読み出しを行う場合、書き込み側は先ず第1FIFOバッファに100バイト書き込み、次に第2FIFOバッファに10バイト書き込む。読み出し側は第1FIFOバッファ内のデータ(100バイト)を読み出し、続いて第2FIFOバッファ内のデータ(10バイト)の読み出しに移る。書き込み側は、読み出し側が第2FIFOバッファ内のデータ(10バイト)の読み出し開始を確認してから、第1FIFOバッファへの新たな書き込み(200バイト)を開始する。
このようにすることで、読み出し側は、当該順番を意識することなく、順番(100バイト、10バイト、50バイト、20バイト)通りに読み出すことができる。
このように、特に読み出す順番を示す情報を送信データに付加する必要がなく、また、書き込み側と読み出し側でやり取りする信号は、読み出し側が一のFIFOバッファ内の全データを読み終わって新たなFIFOバッファの読み出しを開始するときに発する信号しか必要がないため、通信の高速化を図ることができる。
第2の態様における構成により、通信装置において、所定の順番で複数の通信路を介してデータが送信される場合に、書き込み側はこのデータの順番を保ちながら各通信路に対応する各FIFOバッファにデータを書き込んでいく中で、データの書き込みを行うFIFOバッファの情報を読み出し側に伝えるとともに、FIFOバッファが空になってから書き込みを開始する。このように書き込みを行うことによって、読み出し側は、書き込み側から伝えられたFIFOバッファ内のデータ全てを読み込んでいくだけで所定の順番が保たれたままデータを読み出すことができる。
例えば、2本の通信路(第1及び第2通信路)と各通信路に対するFIFOバッファ(第1及び第2バッファ)があり、第1通信路に100バイト、第2通信路に10バイト、第1通信路に50バイト、第2通信路に20バイトの4回のデータ書き込み/読み出しを行う場合、書き込み側は先ず、第1FIFOバッファから書き込むことを伝えるとともに第1FIFOバッファに100バイト書き込み、読み出し側は伝えられた第1FIFOバッファ内のデータ(100バイト)から読み出す。次に書き込み側は、第1FIFOバッファへの書き込みが完了すると、第2FIFOバッファが空であったら第2FIFOバッファに書き込むことを伝えるとともに第2FIFOバッファに10バイト書き込む。読み出し側は第1FIFOバッファ内のデータ(100バイト)の読み出しが終わると、続いて伝えられた第2FIFOバッファ内のデータ(10バイト)の読み出しに移る。
このようにすることで、読み出し側は、伝えられた順番にFIFOバッファ内のデータを全て読み出していくことで、順番(100バイト、10バイト、50バイト、20バイト)通りに読み出すことができる。
従って、特に読み出す順番を示す情報を送信データに付加する必要がなく、また、書き込み側と読み出し側でやり取りする信号は、書き込み側が一のFIFOバッファ内の全データの書き込みが完了して新たなFIFOバッファの書き込みを開始するときに発する信号しか必要がないため、通信の高速化を図ることができる。
また、上記第1の態様の通信装置は、さらに、前記複数の通信路の識別子のうち一の識別子を保持する識別子保持手段と、データを一時的に保持するためのキャッシュとを備え、前記書き込み手段は、前記識別子保持手段に保持されている識別子で識別される通信路に送出されるデータのみを当該通信路に設けられたFIFOバッファに書き込み、前記識別子保持手段に保持されている識別子で識別される通信路以外の通信路に送出されるデータは前記キャッシュに保持させるとともに、一のFIFOバッファへの書き込み処理を実行し終わった後、前記通知指示手段から通知を受けた識別子と、前記識別子保持手段に保持されている識別子とが一致した場合、前記識別子保持手段の識別子を、前記所定の順番における前記一のFIFOバッファの次のFIFOバッファが設けられた通信路を識別するFIFOバッファ識別子に更新するようにしてもよい。
この構成により、書き込み側は、一のFIFOバッファにのみ書き込み処理を行い、読み出し側がFIFOバッファに対する読み出し処理を完了する毎に、新たなFIFOバッファへの書き込み処理を行う。このように書き込み処理を行うことで、信頼性を高めることができる。すなわち、常に1つのFIFOバッファにしかデータが蓄積されないため、書き込み側がFIFOバッファに書き込む所定の順番が変更になった場合でも、読み出し側が当該変更になった順番どおりに正しくFIFOバッファを読み出すことができる。
また、上記第1の態様の通信装置は、外部の送信元からデータを受信するものであり、さらに、前記複数の通信路の識別子のうち一の識別子を保持する識別子保持手段を備え、前記書き込み手段は、前記識別子保持手段に保持されている識別子で識別される通信路に送出されるデータのみ送信してくるよう前記送信元に指示し、一のFIFOバッファへの書き込み処理を実行し終わった後、前記通知指示手段から通知を受けた識別子と、前記識別子保持手段に保持されている識別子とが一致した場合、前記識別子保持手段の識別子を、前記所定の順番における前記一のFIFOバッファの次のFIFOバッファが設けられた通信路を識別する識別子に更新するようにしてもよい。
この構成により、外部のデータ送信元に対して直接送信の可否を指示することで、通信装置自体にデータ一時保持用のキャッシュを設ける必要がなくなる。
また、上述の第1及び第2の態様の通信装置において、前記書き込み手段は、前記通信装置を同期状態とするか否かを決定する信号を受け、当該信号が同期状態を示す場合にのみ前記書き込み処理を実行し、前記読み出し手段は、前記通信装置を同期状態とするか否かを決定する信号を受け、当該信号が同期状態を示す場合にのみ前記読み出し処理を実行するようにしてもよい。
この構成により、書き込み側と読み出し側とが同期して通信を行う必要がある場合、すなわち、所定の順番を保って読み出し側がデータを読み出す必要がある場合にのみ、第1及び第2の態様で示した動作をさせ、互いに同期を取る必要がない場合には互いに非同期で動作させることができる。
また、上述の第1及び第2の態様の通信装置は、さらに、各通信路の優先度を保持する優先度保持手段を備え、前記書き込み手段は、前記優先度保持手段に保持されている優先度に基づいた順番で各FIFOバッファに書き込む書き込み処理を実行するようにしてもよい。
この構成により、複数の通信路に優先度を設定したことによって、複数の通信路から同時にデータが送信された場合に、書き込み側がどのデータから書き込むかを決定することができる。
また、上述の第1及び第2の態様の通信装置において、前記書き込み手段と前記読み出し手段とは、同一のプロセッサに設けられており、前記書き込み手段が書き込むデータは、前記プロセッサ内の所定の記憶領域に記憶されているデータのデータアドレス及び/又はデータサイズであってもよい。
この構成により、1プロセッサ内の処理速度を向上させることができる。
また、上述の第1及び第2の態様の通信装置において、前記書き込み手段と前記読み出し手段とは、互いに異なるプロセッサに設けられており、前記書き込み手段が書き込むデータは、前記プロセッサ外の所定の記憶領域に記憶されているデータのデータアドレス及び/又はデータサイズであってもよい。
この構成により、異なるプロセッサ間の通信速度を向上させることができる。
以下、図面を参照しながら本発明の実施の形態について説明していく。
<実施形態1>
本発明の実施形態1について、図1〜8を参照しながら説明する。
(1.構成)
まず、図1を参照しながら、実施形態1に係る通信装置100について説明する。
図1は、通信装置100の構成を示すブロック図である。
通信装置100は、複数の通信路(通信路A、通信路B、及び通信路C)を介して外部の送信装置(不図示)から送信されるデータを受け取り、外部の受信装置(不図示)に中継するための通信装置である。
通信路A〜Cにはそれぞれ、固有の識別子A〜Cが割り当てられている。
通信装置100は、FIFO(First In First Out)バッファA101、FIFOバッファB102、FIFOバッファC103、書き込み制御部104、読み出し制御部105、及びライン106を備える。
FIFOバッファA101は、通信路Aを介して送信されるデータを蓄積するためのFIFOバッファである。
FIFOバッファB102は、通信路Bを介して送信されるデータを蓄積するためのFIFOバッファである。
FIFOバッファC103は、通信路Cを介して送信されるデータを蓄積するためのFIFOバッファである。
書き込み制御部104は、各通信路A〜Cを介して送信されるデータを、通信路それぞれに対応するFIFOバッファA101〜C103に書き込む書き込み処理を実行するものである。書き込み制御部104は、記憶部104a、書き込み部104b、及びキャッシュ104cを含む。
記憶部104aは、書き込み部104aが書き込みを行うFIFOバッファが設けられた通信路を識別する識別子(識別子A〜Cのいずれか)を記憶するためのものであり、例えば、レジスタで実現される。記憶部104aの初期状態はヌルになっている。
書き込み部104bは、通信路A〜Cを介して送信されてきてキャッシュ104cに保持されたデータ(書き込み対象データ)のうち、記憶部104aに記憶されている識別子で示される通信路を介して送られてくるデータを、当該通信路に設けられたFIFOバッファに書き込みを実行するものである。記憶部104aに記憶されている識別子で示される通信路以外の通信路を介して送られてくるデータは、書き込みを行わず、キャッシュ104cに保持したままにする。
キャッシュ104cは、通信路A〜Cを介して送られてきた、FIFOバッファA101〜C103に書き込むデータを、一時的に保持しておくためのキャッシュである。
読み出し制御部105は、FIFOバッファA101〜C103内のデータを
読み出す読み出し処理を実行するものである。読み出し制御部105は、記憶部105a、読み出し部105b、及び通知部105cを含む。
記憶部105aは、読み込み部105bが読み出しを行うFIFOバッファが設けられた通信路の識別子(識別子A〜Cのいずれか)を記憶するためのものであり、例えば、レジスタで実現される。
読み出し部105bは、FIFOバッファA101〜C103のうち、記憶部105aに記憶されている識別子で示される通信路に設けられたFIFOバッファから、当該FIFOバッファが空になるまでデータを読み出すものである。また、一のFIFOバッファ内の全データを読み出す毎に、記憶部105aに記憶されている識別子を1つ更新していくことで、FIFOバッファA101〜C103内のデータを順番に読み出していく。
通知部105cは、読み出し部105bで一のFIFOバッファからデータの読み出しを開始するときに、ライン106を介して記憶部105bに記憶されている識別子を書き込み制御部104に通知するものである。
(2.動作)
次に、通信装置100の動作について、図2〜4を参照しながら説明する。
ここで、以下、書き込み制御部104の記憶部104aに記憶されている識別子を「識別情報A」と呼び、読み出し制御部105の記憶部105aに記憶されている識別子を「識別情報B」と呼ぶ。
(2−1.書き込み動作)
図2は、書き込み制御部104の書き込み動作を示すフローチャートであり、データを1単位当たり(例えば、1フレーム)書き込む処理を示す。
書き込み制御部104は、通信路A〜Cからデータを受け取ると、まず、識別情報Aが初期状態であるか否かを確認する(ステップS100)。記憶部104aがヌルであった場合、初期状態である。
識別情報Aが初期状態であれば(ステップS100:YES)、書き込み制御部104は識別情報Aを、受け取ったデータが送信された通信路の識別子に更新する(ステップS104)。
書き込み部104bは、受け取ってキャッシュ104cに保持されたデータ(書き込み対象データ)を、識別情報Aが示す通信路に設けられたFIFOバッファへ書き込む(ステップS105)。
いったん一のFIFOバッファへのデータ書き込みが開始すると、識別情報Aは初期状態ではなく(ステップS100:NO)、書き込み制御部104は、書き込み対象データが送られてきた通信路と、識別情報Aとを比較し、両者の一致を確認する(ステップS101)。
書き込み対象のデータが送られてきた通信路と識別情報Aとが一致する限り(ステップS101:YES)、当該FIFOバッファへデータを書き込んでいく(ステップS105)。
一方、一のFIFOバッファへの書き込み処理が終了し、次のFIFOバッファへ書き込むデータが発生した場合、このFIFOバッファが設けられた通信路(書き込み対象データの通信路)と識別情報Aとは一致しない(ステップS101:NO)。
この場合、書き込み部104bは、データをキャッシュ104cに保持したままにしておくことで、当該データの書き込みを待機する(ステップS102)。
その後、読み出し制御部105から、識別情報Aと一致する識別情報Bが送られてこない限り(ステップS103:NO)、キャッシュ104cにデータは保持され続ける。
ここで、読み出し制御部105から、識別情報Aと一致する識別情報Bが送られてくると(ステップS103:YES)、書き込み制御部104は記憶部104aの内容を識別情報Bで書き換えることで識別情報Aを更新する(ステップS104)。
その後、書き込み部104bは、キャッシュ104cに保持されている待機データのうち、識別情報Aが示す通信路から送られてきたデータを当該FIFOバッファへデータを書き込んでいく(ステップS105)。
送信データは1単位毎に、上記の処理を経て書き込み制御部104によってFIFOバッファに書き込まれていく。
(2−2.読み出し動作)
図3は、読み出し制御部105の読み出し動作を示すフローチャートであり、データを1単位当たり(例えば、1フレーム)読み出す処理を示す。
読み出し制御部105は、まず、識別情報Bが初期状態であるか否かを確認する(ステップS200)。記憶部105aがヌルであった場合、初期状態である。
識別情報Bが初期状態であれば(ステップS200:YES)、読み出し制御部105は識別情報Bを、所定の順番に準じたFIFOバッファが設けられた通信路の識別子に更新する(ステップS201)。
通知部105cは、ライン106を介して、更新した識別情報Bを書き込み制御部104に通知する(ステップS202)。
読み出し部105bは、識別情報Bが示す通信路に設けられたFIFOバッファから(ステップS203:YES)、データの読み出しを行う(ステップS204)。
読み出し部105bは、FIFOバッファからデータの読み出しに失敗しなければ(ステップS205:NO)、そのまま終了する。
いったん一のFIFOバッファからのデータ読み出しが開始すると、識別情報Bは初期状態ではなく(ステップS200:NO)、読み出し制御部105は、逐次、識別情報Bが示す通信路に設けられたFIFOバッファに対しデータの読み出しを実行する(ステップS204)。
一のFIFOバッファからデータの読み出しが失敗しない限り(ステップS201:NO)、当該一のFIFOバッファからデータを読み出していく。
一方、一のFIFOバッファへの読み出し処理が失敗した場合(ステップS205:YES)、当該一のFIFOバッファが空になったということである。このとき、読み出し制御部105は、識別情報Bを初期状態に更新する(ステップS206)。
識別情報Bが初期状態に更新されると、次の読み出しでは、再び初期状態から開始し(ステップS200:YES)、識別情報Bを、所定の順番に準じて一のFIFOバッファに続く次のFIFOバッファが設けられた識別子に更新する(ステップS201)。
その後、読み出し制御部105は、再び識別情報Bを書き込み制御部104に通知して(ステップS202)、FIFOバッファ内のデータが空になるまで読み出していく(ステップS204、ステップS205:NO)。
以上のように書き込み制御部104と読み出し制御部105とが協働して動作することにより、書き込み制御部104は送信されるデータを順番通りに各通信路に対応する各FIFOバッファにデータを書き込んでいく中で、読み出し制御部105が一のFIFOバッファ内のデータ全てを読み出さない限り、新たにこの一のFIFOバッファへは書き込みを行わず、他のFIFOバッファにのみ新たな書き込みを行う。このように書き込みを行うことによって、特に順番を示すような情報を送信データに付加しなくても、読み出し制御部105は逐次FIFOバッファが空になるまでデータを読み出していくだけで、当該順番が保たれたままデータを読み出すことができる。
(2−3.具体例)
ここで、図4を参照し、書き込み制御部104と読み出し制御部105の動作について具体例を挙げて、説明する。
ここでは、データの送信元は、通信路A、通信路B、通信路Cの順番でデータを送信してくるものとし、書き込み制御部104は、FIFOバッファA101、FIFOバッファB102、FIFOバッファC103の順番で書き込み処理を実行するものとする。
図4は、書き込み制御部104の書き込み処理と読み出し制御部105の読み出し処理の様子を、FIFOバッファA101〜C103の遷移で示した概略図である。
図4の[例]に示すように、ここでは、送信元から、通信路Aに188バイトのデータが4フレーム送信され、続いて通信路Bに100バイトのデータが1フレーム送信され、続いて通信路Cに90バイトのデータが1フレーム送信され、その後通信路Aに188バイトのデータが送信される例について説明する。
まず、書き込み制御部104は、初期状態であった識別情報を通信路Aに更新し(ステップS104)、通信路Aに送信された188バイトの1フレームをFIFOバッファA101に書き込む(ステップS105)。(図4(a))
続けて、書き込み制御部104は、188バイトの1フレームをFIFOバッファA101に書き込む(ステップS105)。(図4(b))
続けて、書き込み制御部104は、188バイトの1フレームをFIFOバッファA101に書き込む(ステップS105)。(図4(c))
次に、読み出し制御部105が、読み出しを開始するFIFOバッファA101の通信路(通信路A)を通知し(ステップS202)、読み出しを開始する。ここで、188バイトの1フレームを読み出す(ステップS204)。一方、書き込み制御部104は、続けて188バイトの1フレームをFIFOバッファA101に書き込む(ステップS105)。(図4(d))
続いて、読み出し制御部105は続けて188バイトの1フレームを読み出す(ステップ204)。一方、書き込み制御部104は、FIFOバッファA101への書き込みが完了したので、FIFOバッファB102への書き込みへ移る。識別情報A(通信路A)とFIFOバッファB102が設けられた通信路(通信路B)とが一致しない(ステップS101:NO)が、書き込み制御部104は、図4(d)の段階で読み出し制御部105より通信路Aの通知を受けていたので(ステップS103:YES)、識別情報Aを通信路Bに更新し(ステップS104)、通信路Bを介して送信される100バイトの1フレームをFIFOバッファBに書き込む(ステップS105)。(図4(e))
続いて、読み込み制御部105は、続けて188バイトの1フレームを読み出す(ステップS204)。一方、書き込み制御部104は、FIFOバッファB102への書き込みが完了したので、FIFOバッファC103への書き込みへ移る。ところが、識別情報A(通信路B)はFIFOバッファC103が設けられた通信路(通信路C)と一致せず(ステップS101:NO)、かつ通知を受けていた通信路Aとも一致しない(ステップS103:NO)ため、書き込み制御部104は90バイトの1フレームをキャッシュ104cに保持したままにすることで書き込みを待機する(ステップS102)。(図4(f))
続いて、読み込み制御部105は、続けて188バイトの1フレームを読み出す(ステップS204)。一方、書き込み制御部104は、新たに通信路Aを介して188バイトの1フレームを受け取るが、その前に通信路Bを介して送られた90バイトの1フレームがキャッシュされているため、同様にキャッシュされる。
(図4(g))
次に、FIFOバッファA101が空になるまで読み出されたことにより、読み出し制御部105はFIFOバッファA101からのデータ読み出しに失敗する(ステップS205:YES)ため、識別情報Bを初期状態に戻した(ステップS206)後、次の順番であるFIFOバッファB102が設けられた通信路(通信路B)に更新して(ステップS201)書き込み制御部104に通知し(ステップS202)、FIFOバッファB102から100バイトの1フレームを読み出す(ステップS204)。一方、書き込み制御部104は、識別情報A(通信路B)と、通知された識別情報B(通信路B)とが一致する(ステップS103:YES)ことから、識別情報Aを次の順番である通信路Cに更新する(ステップS104)。すると、書き込み制御部104は、FIFOバッファC103宛の待機していた90バイトの1フレームを書き込む(ステップS105)。通信路Aを介して送られてくる188バイトの1フレームについては、書き込みを待機する(ステップS102)。(図4(h))
次に、FIFOバッファB102が空になるまで読み出されたことにより、読み出し制御部105はFIFOバッファB102からのデータ読み出しに失敗する(ステップS205:YES)ため、識別情報Bを初期状態に戻した(ステップS206)後、次の順番である通信路Cに更新して(ステップS201)書き込み制御部104に通知し(ステップS202)、FIFOバッファC103から90バイトの1フレームを読み出す(ステップS204)。一方、書き込み制御部104は、識別情報A(通信路C)と、通知された識別情報B(通信路C)とが一致する(ステップS103:YES)ことから、識別情報Aを次の順番である通信路Aに更新する(ステップS104)。すると、書き込み制御部104は、FIFOバッファA101宛の待機していた188バイトの1フレームを書き込む(ステップS105)。通信路Aを介して送られてくる188バイトの1フレームはキャッシュされる(ステップS102)。(図4(i))
次に、FIFOバッファC103が空になるまで読み出されたことにより、読み出し制御部105はFIFOバッファC103からのデータ読み出しに失敗する(ステップS205:YES)ため、識別情報Bを初期状態に戻した(ステップS206)後、次の順番である通信路Aに更新して(ステップS201)書き込み制御部104に通知し(ステップS202)、FIFOバッファA101から188バイトの1フレームを読み出す(ステップS204)。一方、書き込み制御部104は、FIFOバッファA101宛の待機していた188バイトの1フレームを書き込む(ステップS105)とともに、通信路Bから送られてくる100バイトの1フレームをキャッシュする。(図4(j))
続いて、読み込み制御部105は、続けて188バイトの1フレームを読み出す(ステップS204)。一方、書き込み制御部104は、FIFOバッファA101宛の待機していた188バイトの1フレームを書き込む(ステップS105)とともに、通信路Bから送られてくる100バイトの1フレームをキャッシュする。(図4(k))
以上のように、書き込み制御部104と読み出し制御部105とが動作することで、読み出し制御部105は、FIFOバッファA101〜C103を順番に空になるまで読んでいくだけで、読み出すべきデータの順番(通信路Aの188バイトのデータを4フレーム、通信路Bの100バイトのデータを1フレーム、通信路Cの90バイトのデータを1フレーム、通信路Aの188バイトのデータを3フレーム・・・という順番)通りに読み出すことができる。
(3.実装例)
次に、図5〜8を参照しながら、通信装置100を、符号化データを復号化する復号化装置に実装した例について説明する。
(3−1.構成)
まず、図5を参照しながら、通信装置100を実装した復号化装置1の構成について説明する。
図5は、通信装置100を実装した復号化装置1を示すブロック図である。
復号化装置1は、復号化指示部10、符号化データ記憶部20及び30、パラメータ用メモリ40、符号化データ用メモリ50、復号化実行部60、及び通信装置100を備える。
符号化データ記憶部20は、例えばHDD(Hard Disk Drive)等の記憶装置であり、符号化データAを記憶するものである。
符号化データ記憶部30は、例えばHDD等の記憶装置であり、符号化データBを記憶するものである。
パラメータ用メモリ40は、復号化に使用するパラメータを一時的に保持するためのメモリであり、復号化指示部10及び復号化実行部60の両方からアクセス可能なメモリである。
符号化データ用メモリ50は、符号化するデータを一時的に保持するためのメモリであり、復号化指示部10及び復号化実行部60の両方からアクセス可能なメモリである。
復号化指示部10は、符号化データA及び符号化データBの復号化を、復号化実行部60に指示するものであり、符号化データ転送手段11、転送完了通知手段12、及びパラメータ指示手段13を含む。
符号化データ転送手段11は、符号化データA及び符号化データBを符号化データ用メモリ50に転送する機能を有する。
転送完了通知手段12は、符号化データ転送手段11による転送が完了したメモリのアドレスを通信部Aへ送出する機能を有する。
パラメータ指示手段13は、パラメータ用メモリ40に復号化用パラメータを設定し、そのメモリアドレスを通信路Bに送出する機能を有する。
通信路Aは、符号化データの通信に使用される。
通信路Bは、復号化用パラメータの通信に使用される。
復号化実行部60は、復号化指示部10から指示を受けて符号化データA及び符号化データBを復号化するものであり、パラメータ取得手段61と、データ復号手段62とを含む。
パラメータ取得手段61は、パラメータ指示手段13から指示を受けたパラメータを、パラメータ用メモリ40から取得する機能を有する。
データ復号手段62は、転送完了通知手段12から通知を受けた符号化データを、符号化データメモリ406から取得し、パラメータ取得手段61で取得したパラメータを用いて復号化する機能を有する。
(3−2.データ)
次に、図6を参照しながら、復号化指示部10が復号化実行部60に送信するデータについて説明する。
図6は、復号化指示部10が送信するデータのデータ構造を示す概略図である。
復号化指示部10が送信するデータは、データメモリアドレス指示部とデータサイズ指示部から成る。
例えば、転送完了通知手段12が送信するデータの場合、データメモリアドレス指示部には、符号化データの転送が完了したメモリのアドレスが入る。
また、パラメータ指示手段13が送信するデータの場合、データメモリアドレス指示部には、復号化用パラメータを設定したメモリのアドレスが入る。
(3−3.動作)
次に、図7〜8を参照しながら、復号化装置1の動作について説明する。
図7は、復号化指示部10のデータ送信時の動作を示すフローチャートである。
復号化指示部10が復号化復号化指示処理を開始すると、まず、符号化データ転送手段11が符号化データAの符号化データ用メモリ50への転送を開始する(ステップS300)。符号化データ転送手段11による転送処理は全ての符号化対象データの転送が完了するまで断続的に行われる。
パラメータ指示手段13は、符号化データAの復号化に必要なパラメータをパラメータ用メモリ40に設定し(ステップS301)、そのメモリアドレスとメモリサイズを通信路Bに送出する(ステップS302)。この処理(ステップS302)は、符号化データ転送手段11による転送処理(ステップS301)と平行して、全パラメータについて設定し終わるまで(ステップS303:YES)繰り返される。
次に、転送完了通知手段12は、符号化データ用メモリ50に転送された符号化データのメモリアドレス情報を、符号化単位(例えば、固定長188バイト)毎に通信路Aへ順次送信する(ステップS304)。この処理(ステップS304)は、符号化データ転送手段11による転送処理(ステップS301)と平行して行われ、通知すべき符号化データが終了した場合は、復号化指示処理を終了する(ステップS305)。
図8は、復号化実行部60のデータ受信時の動作を示すフローチャートである。
復号化実行部60が符号化データAの受信と復号化を行うときは、まず、通信路Bを介して通信データを受信し(ステップS400)、通信データの情報(パラメータ用メモリ40内のメモリアドレスとデータサイズ)に従ってパラメータ取得手段61でパラメータ用メモリ40より復号化用パラメータを取得する(ステップS402)。この処理(ステップS401)は、通信路Bから通信データがなくなるまで(ステップS401:NO)繰り返し行われる。
次に、復号化実行部60は通信路Aを介して通信データを受信し(ステップS403)、通信データの情報(符号化データ用メモリ50内のメモリアドレスとデータサイズ)に従ってデータ復号手段62で符号化データ用メモリ50より符号化データAを取得し(ステップS405)、ステップS402にてパラメータ取得手段61が取得したパラメータを用いて符号化データAを復号化する(ステップS406)。この処理(ステップS405及びS406)は、通信路Aから通信データがなくなるまで(ステップS404:NO)繰り返し行われる。一方、通信路Aからデータがなくなると(ステップS404:YES)、復号化実行部60は復号化処理を終了する。
符号化データAの復号化処理に続いて符号化データBの復号化処理を行う場合、復号化指示部10は、符号化データAの復号化指示完了後、復号化実行部60による符号化データAの復号化処理が完了するのを待たずに、符号化データBの符号化データ用メモリ406への転送を開始し(ステップS300)、符号化データBの復号化に用いるパラメータのパラメータ用メモリ40への転送を開始し(ステップS301)、パラメータ情報を通信路Bに送出する(ステップS302)。
このとき、通信装置100が図2〜3に示した動作を行う、
すなわち、読み出し制御部105が、通信路Bを介して送られる符号化データAに係るパラメータ情報をFIFOバッファB102から全て読み出すまで、書き込み制御部104は、パラメータ指示手段13が通信路Bを介して送信する符号化データBに係るパラメータ情報をキャッシュ104cに保持することでFIFOB102への書き込みを待機する(ステップS102)。
同様に、読み出し制御部105が符号化データAに係るパラメータ情報の読み出しを実行中に、転送完了通知手段12が符号化データBのメモリアドレス情報を符号化単位毎に通信路Aに送出する場合、書き込み制御部104は、このメモリアドレス情報をキャッシュ104cに保持することでFIFOバッファA101への書き込みを待機する(ステップS102)。
読み出し制御部105が符号化データAに係るパラメータ情報の読み出しを完了し、通信路Aを介して送られた(FIFOバッファA101内の)符号化データAのメモリアドレス情報の読み出しを開始すると(ステップS201、S202、S204)、書き込み制御部104は、キャッシュ104cに保持していた符号化データBに係るパラメータ情報をFIFOバッファB102に書き込んでいく(ステップ105)。
このように動作することで、適切な順番(符号化データA用のパラメータ情報、符号化データAのメモリアドレス情報、符号化データB用のパラメータ情報・・・)を遵守したまま、読み出し制御部105がデータを読み出し、復号化実行部60がデータを復号化することできる。
仮に、図5に示す復号化装置1の構成から通信装置100が欠けたとすると、復号化実行部60が符号化データAのメモリアドレス情報を受信する前に、符号化データB用のパラメータ情報を受信してしまい、復号化処理に支障をきたす可能性がある。
同様に、復号化実行部60が符号化データBのパラメータ情報を受信する前に、符号化データBのメモリアドレス情報を受信してしまい、復号化処理に支障をきたす可能性がある。
こういった事態は、復号化実行部60の処理速度が復号化指示部10の処理速度よりも遅い場合に発生する。
以上、上述したように、本発明では、通信装置100の存在により、上記の支障をきたすことがなく、復号化指示部10と復号化実行部60との間で正しく通信を行うことができる。
<実施形態2>
次に、本発明の実施形態2について、図9を参照しながら説明する。
実施形態2の通信装置200は、書き込み制御部104と読み出し制御部105とが同期を行う必要が発生した場合にのみ、同期してデータの書き込みと読み出しを行う。
以下、実施形態2の通信装置200について、実施形態1の通信装置100と異なる点に焦点を当てて説明する。
図9は、通信装置200の構成を示すブロック図である。
実施形態1の通信装置100と同様の構成については、同じ符号を付し、説明は省略する。
通信装置200は、同期スイッチ107を備える。
同期スイッチ107は、外部の送信装置(不図示)から、通信路A〜Cへのデータ送信を開始する旨の信号を受け、書き込み制御部104と読み出し制御部105とに互いに同期して書き込み処理と読み出し処理を行うよう指示する同期信号を送出する機能を有する。
書き込み制御部104は、同期スイッチ107から同期信号を受けると、実施形態1で示した書き込み動作(ステップS100〜S105)を実行する。
読み出し制御部105は、同期スイッチ107から同期信号を受けると、実施形態1で示した読み出し動作(ステップS200〜S206)を実行する。
この構成により、外部の送信装置が送信するデータを所定の順番を保って読み出し制御部105が読み出す必要がある場合にのみ、書き込み制御部104と読み出し制御部105を同期させ、その必要がない場合には互いに非同期で動作させることができる。
<実施形態3>
次に、本発明の実施形態3について、図10〜12を参照しながら説明する。
実施形態1では、読み出し制御部105が読み出すFIFOバッファが設けられた通信路の識別子(識別情報B)を書き込み制御部104に通知するようになっていたが、本実施形態では、書き込み制御部104が書き込むFIFOバッファが設けられた通信路の識別子(識別情報A)を読み出し制御部105に通知する点で異なる。
以下、実施形態3の通信装置300について、実施形態1の通信装置100と異なる点に焦点を当てて説明する。
(1.構成)
まず、図10を参照しながら、通信装置100の構成について説明する。
図10は、通信装置300の構成を示すブロック図である。
実施形態1の通信装置100と同様の構成については、同じ符号を付し、説明は省略する。
通信装置300は、FIFOバッファD108を備える。
FIFOバッファD108は、書き込み制御部104から送られてくる、通信路A〜Cのいずれかの識別子を保持するものである。
書き込み制御部104は、通知部104dを含む。
通知部104dは、書き込み部104bで一のFIFOバッファにデータの書き込みを開始するときに、記憶部104aに記憶されている識別子をFIFOバッファD108に送出するものである。
実施形態3の書き込み部104bは、一のFIFOバッファへのデータ書き込みを開始する際に、当該FIFOバッファが空であるか否かを判断し、空である場合にのみ書き込みを開始する。空でない場合は、書き込み対象データをキャッシュ104cに保持したままにしておく。
読み出し制御部105は、取得部105dを含む。
取得部105dは、読み出し部105bが一のFIFOバッファからのデータ読み出しを開始するのに先立って、FIFOバッファD108から識別子を取得し、読み出し部105bに通知するものである。
実施形態3での読み出し部105bは、取得部105dから取得した識別子が示す通信路に設けられたFIFOバッファからデータの読み出しを開始し、この読み出しを開始したFIFOバッファが空になるまでデータを読み出す。一のFIFOバッファ内の全データを読み出す毎に、取得部105dに識別子の取得を要求し、要求に応じて取得部105dから送られてくる識別子が示す通信路が設けられたFIFOバッファからデータ読み出しを開始する。
(2.動作)
次に、通信装置300の動作について、図11〜12を参照しながら説明する。
ここで、以下、書き込み制御部104の記憶部104aに記憶されている識別子を「識別情報A」と呼び、読み出し制御部105の記憶部105aに記憶されている識別子を「識別情報B」と呼ぶ。
また、実施形態1で示した動作と同様の動作については、同じ符号を付して詳述はしないことがある。
(2−1.書き込み動作)
図11は、書き込み制御部104の書き込み動作を示すフローチャートであり、データを1単位当たり(例えば、1フレーム)書き込む処理を示す。
識別情報Aが初期状態であれば(ステップS100:YES)、書き込み制御部104は識別情報Aを、受け取ったデータが送信された通信路の識別子に更新し(ステップS104)、書き込み部104bでキャッシュ104cに保持されたデータ(書き込み対象データ)を、通信路が設けられたFIFOバッファへ書き込む(ステップS105)。
いったん一のFIFOバッファへのデータ書き込みが開始すると、識別情報Aは初期状態ではなく(ステップS100:NO)、書き込み対象のデータが送られてきた通信路の識別子と識別情報Aとが一致する限り(ステップS101:YES)、当該FIFOバッファへデータを書き込んでいく(ステップS105)。
一方、一のFIFOバッファへの書き込み処理が終了し、次のFIFOバッファへ書き込むデータが発生し、このFIFOバッファが設けられた通信路の識別子と識別情報Aとが一致しない場合(ステップS101:NO)、実施形態3では、書き込み部104bが、この新たに書き込み対象となるFIFOバッファが空であるか否かを判断する(ステップS106)。
書き込み対象のFIFOバッファが空であれば(ステップS106:YES)、書き込み部104bは、識別情報Aを当該FIFOバッファが設けられた通信路の識別子で更新する(ステップS104)とともに、更新した識別子をFIFOバッファD108へ送出し(ステップS107)、当該FIFOバッファにデータ書き込みを開始する(ステップS105)。
ステップS106にて、書き込み対象のFIFOバッファが空でなければ(ステップS106:NO)、書き込み部104bは、データをキャッシュ104cに保持したままにしておく。
その後、書き込み対象のFIFOバッファが空にならない限り(ステップS106:NO)、キャッシュ104cにデータは保持され続ける。
(2−2.読み出し動作)
図12は、読み出し制御部105の読み出し動作を示すフローチャートであり、データを1単位当たり(例えば、1フレーム)読み出す処理を示す。
読み出し制御部105は、まず、識別情報Bが初期状態であるか否かを確認し(ステップS200)、識別情報Bが初期状態であれば(ステップS200:YES)、読み出し制御部105は、取得部105dでFIFOバッファD108に保持されている識別情報Aを取得する(ステップS207)とともに、取得した識別情報Aで識別情報Bを更新する(ステップS208)。
その後、読み出し部105bは、識別情報Bが示す通信路に設けられたFIFOバッファから(ステップS203:YES)、データの読み出しを行う(ステップS204)。
読み出し部105bは、FIFOバッファからデータの読み出しに失敗しなければ(ステップS205:NO)、そのまま終了する。
いったん一のFIFOバッファからのデータ読み出しが開始すると、識別情報Bは初期状態ではなく(ステップS200:NO)、読み出し制御部105は、逐次、識別情報Bが示す通信路に設けられたFIFOバッファからデータの読み出しを実行する(ステップS204)。
一のFIFOバッファからデータの読み出しが失敗しない限り(ステップS201:NO)、当該一のFIFOバッファからデータを読み出していく。
一方、一のFIFOバッファへの読み出し処理が失敗した場合(ステップS205:YES)、当該一のFIFOバッファが空になったということであるので、読み出し制御部105は、識別情報Bを初期状態に更新する(ステップS206)。
識別情報Bが初期状態に更新されると、次の読み出しでは、再び初期状態から開始し(ステップS200:YES)、読み出し制御部105はFIFOバッファD108から識別情報Aを取得して(ステップS207)識別情報Bを更新する(ステップS208)。
その後、読み出し制御部105はFIFOバッファ内のデータが空になるまで読み出していく(ステップS204、ステップS205:NO)。
以上のように、書き込み制御部104と読み出し制御部105とが協働して動作することにより、書き込み制御部104は送信されるデータを順番通りに各通信路に対応する各FIFOバッファに書き込んでいく中で、新たに一のFIFOバッファへの書き込み処理を開始する際にこのFIFOバッファが設けられた通信路の識別子(識別情報A)をFIFOバッファD108に送出し、読み出し制御部105はFIFOバッファD108内の識別子が示す通信路に設けられたFIFOバッファからのみ読み出しを開始する。このように書き込み及び読み出しを行うことによって、特に順番を示すような情報を送信データに付加しなくても、読み出し制御部105は逐次FIFOバッファが空になるまでデータを読み出していくだけで、当該順番が保たれたままデータを読み出すことができる。
<実施形態4>
次に、本発明の実施形態4について、図13〜15を参照しながら説明する。
実施形態4の通信装置400は、各通信路に優先度付けを行い、各通信路から同時にデータが送信されてきた場合に対応する。
以下、実施形態4の通信装置400について、実施形態1の通信装置100と異なる点に焦点を当てて説明する。
(1.構成)
まず、図13を参照しながら、通信装置400の構成について説明する。
図13は、通信装置400の構成を示すブロック図である。
実施形態1の通信装置100と同様の構成については、同じ符号を付し、説明は省略する。
通信装置400は、外部の3つのCPU(CPUA、CPUB、CPUC)それぞれから送信されるデータを中継するものである。
CPUAは、通信路Aを介してデータを送信するものである。
CPUBは、通信路Bを介してデータを送信するものである。
CPUCは、通信路Cを介してデータを送信するものである。
各CPUは独立してデータの送信を行う並列処理システムである。
書き込み制御部104は、通信路A〜Cの優先度を示す通信路優先度テーブル500を記憶部104aに記憶している。書き込み制御部104は、通信装置400の動作中に通信路優先度テーブル500を書き換えることが可能であり、2つ以上の通信路から同時にデータが送信された場合に、どの通信路のデータから優先して処理するかを決定するための処理順序決定処理を実行するものである。
(2.データ)
次に、通信路優先度テーブル500のデータ構造について、図14を参照しながら説明する。
通信路優先度テーブル500では、各通信路A〜Cの識別子と、各識別子と対応する優先度が記憶されている。ここでは、通信路Aの優先度が一番高く(優先度1)、通信路Bの優先度が一番低い(優先度3)。初期設定では、図14(a)に示すように、識別子の降順に並べられている。
(3.動作)
次に、書き込み制御部104が行う処理順序決定処理の動作について、図15を参照しながら説明する。
通信路A〜Cを介してCPUA〜Cそれぞれから同時にデータが送信されてきた場合、書き込み制御部104は、通信路優先度テーブル500を取得し(ステップS300)、図14(b)に示すように優先度の高い順に通信路優先度テーブル500を書き換える(ステップS301)。
書き換え制御部104は、書き換えられた通信路優先度テーブルに従い、優先度の高い通信路からのデータから書き込み処理を開始する。
なお、書き込み処理については、実施形態1で示した動作(図2)と同様なので説明は割愛する。
以上のように、書き込み制御部104が通信路の優先度に応じた制御を行うことで、2つ以上の通信路から同時にデータが送信してきた場合に競合を回避することができる。これは特に、通信路毎に異なるプロセッサを用いて各プロセッサ間で並列処理を行うシステムなどで効果を発揮する。
<変形例>
以上、実施形態1〜4に基づいて本発明について説明してきたが、本発明はこれら実施形態に記載した内容に限定されるものではなく、種々の変形を加えることができる。
(1)実施形態1〜4では、書き込み制御部104がキャッシュ104cを備え、キャッシュ104cがデータを保持することで書き込みを待機するようになっているが、これに限定されるものではなく、外部の送信元にデータの送信を待機させるようにしてもよい。
すなわち、書き込み制御部104は、不図示の外部の送信装置に対し、データの送信待機を指示する信号を送信する送信手段を備え、書き込み動作において、(i)送信装置から送られてきたデータはキャッシュすることなく直接FIFOバッファA101〜C103に書き込み、(ii)書き込みを待機するときは送信装置にデータを送信せずに待機するよう指示し、(iii)待機していたデータを書き込むときは送信装置にデータ送信を指示する構成とする。
外部の送信装置には、書き込み制御部104からの指示に応じてデータの送信の待機及び再開を行うよう制御させればよい。
(2)実施形態1〜4では、通信路A〜Cに対応してFIFOバッファA101〜C103がハードウェア的に別個のものとして設けられていたが、これに限定されるものではない。
すなわち、例えば、通信路A〜Cに対応する1つのFIFOバッファを備え、このFIFOバッファ内でチェーンポインタの手法を用いてソフトウェア的に複数のFIFOバッファを設けるようにしてもよい。
本発明に係る通信装置は、送信側と受信側とで同期を取る必要のある通信に広く適用可能であり、余計な付加データを付加することなく、送信側と受信側とで同期のための信号のやり取りを極力抑えて高速な通信を実現できる点で有用な技術である。
実施形態1に係る通信装置100の構成を示すブロック図である。 実施形態1に係る書き込み制御部104の書き込み動作を示すフローチャートである。 実施形態1に係る読み出し制御部105の読み出し動作を示すフローチャートである。 FIFOバッファA101〜C103の遷移を示す概略図である。 復号化装置1の構成を示すブロック図である。 復号化指示部10が送信するデータのデータ構造を示す概略図である。 復号化指示部10のデータ送信時の動作を示すフローチャートである。 復号化実行部60のデータ受信時の動作を示すフローチャートである。 実施形態2に係る通信装置200の構成を示すブロック図である。 実施形態3に係る通信装置300の構成を示すブロック図である。 実施形態3に係る書き込み制御部104の書き込み動作を示すフローチャートである。 実施形態3に係る読み出し制御部105の読み出し動作を示すフローチャートである。 実施形態4に係る通信装置400の構成を示すブロック図である。 通信路優先度テーブルのデータ構造を示す概略図である。 実施形態4に係る書き込み制御部104の処理順序決定処理動作を示すフローチャートである。
符号の説明
10 復号化指示部
11 符号化データ転送手段
12 転送完了通知手段
13 パラメータ指示手段
20、30 符号化データ記憶部
40 パラメータ用メモリ
50 符号化データ用メモリ
60 復号化実行部
61 パラメータ取得手段
62 データ復号手段
100、200、300 通信装置
101、102、103、108 FIFOバッファ
104 書き込み制御部
104a 記憶部
104b 書き込み部
104c キャッシュ
105 読み出し制御部
105a 記憶部
105b 読み出し部
105c 通知部
106 ライン
107 同期スイッチ

Claims (10)

  1. 各々に識別子が割り当てられた複数の通信路から受信したデータを送信するための通信装置であって、
    前記複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のFIFO(First In First Out)バッファと、
    受信したデータを、前記複数のFIFOバッファに対し所定の順番で各FIFOバッファに書き込む書き込み処理を行う書き込み手段と、
    前記複数のFIFOバッファ内のデータを所定の順番で読み出し、一のFIFOバッファ内の全てのデータを読み出す毎に次のFIFOバッファ内のデータを読み出す読み出し処理を行う読み出し手段と、
    前記読み出し処理を開始したときに、読み出しを開始したデータが送られてきた通信路の識別子を、前記書き込み手段に通知する通知手段とを備え、
    前記書き込み手段は、一のFIFOバッファへの書き込み処理を実行し終わった後、前記通知手段から通知を受けた識別子が示す通信路に設けられたFIFOバッファ以外のFIFOバッファについてのみ新たな書き込み処理を開始する
    ことを特徴とする通信装置。
  2. さらに、前記複数の通信路の識別子のうち一の識別子を保持する識別子保持手段と、
    データを一時的に保持するためのキャッシュとを備え、
    前記書き込み手段は、前記識別子保持手段に保持されている識別子で識別される通信路に送出されるデータのみを当該通信路に設けられたFIFOバッファに書き込み、前記識別子保持手段に保持されている識別子で識別される通信路以外の通信路に送出されるデータは前記キャッシュに保持させるとともに、
    一のFIFOバッファへの書き込み処理を実行し終わった後、前記通知指示手段から通知を受けた識別子と、前記識別子保持手段に保持されている識別子とが一致した場合、前記識別子保持手段の識別子を、前記所定の順番における前記一のFIFOバッファの次のFIFOバッファが設けられた通信路を識別するFIFOバッファ識別子に更新する
    ことを特徴とする請求項1記載の通信装置。
  3. 前記通信装置は、外部の送信元からデータを受信するものであり、
    さらに、前記複数の通信路の識別子のうち一の識別子を保持する識別子保持手段を備え、
    前記書き込み手段は、前記識別子保持手段に保持されている識別子で識別される通信路に送出されるデータのみ送信してくるよう前記送信元に指示し、
    一のFIFOバッファへの書き込み処理を実行し終わった後、前記通知指示手段から通知を受けた識別子と、前記識別子保持手段に保持されている識別子とが一致した場合、前記識別子保持手段の識別子を、前記所定の順番における前記一のFIFOバッファの次のFIFOバッファが設けられた通信路を識別する識別子に更新する
    ことを特徴とする請求項1記載の通信装置。
  4. 各々に識別子が割り当てられた複数の通信路から受信したデータを送信するための通信装置であって、
    複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のFIFO(First In First Out)バッファと、
    受信したデータを、前記複数のFIFOバッファに対し所定の順番で各FIFOバッファに書き込む書き込み処理を行う書き込み手段と、
    前記書き込み手段で書き込みを開始するFIFOバッファが設けられた通信路を示す識別子を保持するための識別子保持手段と、
    前記識別子保持手段に保持されている識別子を取得し、取得した識別子が示す通信路に設けられたFIFOバッファ内のデータを読み出す読み出し処理を行う読み出し手段とを備え、
    前記書き込み手段は、一のFIFOバッファへの書き込み処理を実行し終わる毎に、新たに書き込みを開始するFIFOバッファが空の場合にのみ当該FIFOバッファへの新たな書き込みを開始するとともに、当該FIFOバッファが設けられた通信路の識別子を前記識別子保持手段に送出し、
    前記読み出し手段は、一のFIFOバッファ内の全てのデータを読み出す毎に前記識別子保持手段から識別子を取得する
    ことを特徴とする通信装置。
  5. 前記書き込み手段は、前記通信装置を同期状態とするか否かを決定する信号を受け、当該信号が同期状態を示す場合にのみ前記書き込み処理を実行し、
    前記読み出し手段は、前記通信装置を同期状態とするか否かを決定する信号を受け、当該信号が同期状態を示す場合にのみ前記読み出し処理を実行する
    ことを特徴とする請求項1又は4に記載の通信装置。
  6. さらに、各通信路の優先度を保持する優先度保持手段を備え、
    前記書き込み手段は、前記優先度保持手段に保持されている優先度に基づいた順番で各FIFOバッファに書き込む書き込み処理を実行する
    ことを特徴とする請求項1又は4に記載の通信装置。
  7. 前記書き込み手段と前記読み出し手段とは、同一のプロセッサに設けられており、
    前記書き込み手段が書き込むデータは、前記プロセッサ内の所定の記憶領域に記憶されているデータのデータアドレス及び/又はデータサイズである
    ことを特徴とする請求項1又は4に記載の通信装置。
  8. 前記書き込み手段と前記読み出し手段とは、互いに異なるプロセッサに設けられており、
    前記書き込み手段が書き込むデータは、前記プロセッサ外の所定の記憶領域に記憶されているデータのデータアドレス及び/又はデータサイズである
    ことを特徴とする請求項1又は4に記載に通信装置。
  9. 各々に識別子が割り当てられた複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のFIFO(First In First Out)バッファを備える通信装置における通信方法であって、
    受信したデータを、前記複数のFIFOバッファに対し所定の順番で各FIFOバッファに書き込む書き込み処理を行う書き込みステップと、
    前記複数のFIFOバッファ内のデータを所定の順番で読み出し、一のFIFOバッファ内の全てのデータを読み出す毎に次のFIFOバッファ内のデータを読み出す読み出し処理を行う読み出しステップと、
    前記読み出し処理を開始したときに、読み出しを開始したデータが送られてきた通信路の識別子を、前記書き込み手段に通知する通知ステップとを含み、
    前記書き込みステップでは、一のFIFOバッファへの書き込み処理を実行し終わった後、前記通知手段から通知を受けた識別子が示す通信路に設けられたFIFOバッファ以外のFIFOバッファについてのみ新たな書き込み処理を開始する
    ことを特徴とする通信方法。
  10. 各々に識別子が割り当てられた複数の通信路の各々に設けられ、各通信路を介して受信したデータを蓄積するための複数のFIFO(First In First Out)バッファを備える通信装置における通信方法であって、
    受信したデータを、前記複数のFIFOバッファに対し所定の順番で各FIFOバッファに書き込む書き込み処理を行う書き込みステップと、
    前記書き込みステップで書き込みを開始するFIFOバッファが設けられた通信路を示す識別子を保持するための識別子保持ステップと、
    前記識別子保持ステップで保持した識別子を取得し、取得した識別子が示す通信路に設けられたFIFOバッファ内のデータを読み出す読み出し処理を行う読み出しステップとを含み、
    前記書き込みステップでは、一のFIFOバッファへの書き込み処理を実行し終わる毎に、新たに書き込みを開始するFIFOバッファが空の場合にのみ当該FIFOバッファへの新たな書き込みを開始するとともに、
    前記識別子保持ステップでは、当該新たな書き込みを開始したFIFOバッファが設けられた通信路の識別子を保持し、
    前記読み出しステップでは、一のFIFOバッファ内の全てのデータを読み出す毎に識別子を取得する
    ことを特徴とする通信方法。
JP2006340557A 2006-12-18 2006-12-18 通信装置、及び通信方法 Pending JP2008152580A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006340557A JP2008152580A (ja) 2006-12-18 2006-12-18 通信装置、及び通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006340557A JP2008152580A (ja) 2006-12-18 2006-12-18 通信装置、及び通信方法

Publications (1)

Publication Number Publication Date
JP2008152580A true JP2008152580A (ja) 2008-07-03

Family

ID=39654679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006340557A Pending JP2008152580A (ja) 2006-12-18 2006-12-18 通信装置、及び通信方法

Country Status (1)

Country Link
JP (1) JP2008152580A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012104034A (ja) * 2010-11-12 2012-05-31 Nec Access Technica Ltd 出力制御回路、出力制御回路の制御方法及びその制御プログラム
CN104699236A (zh) * 2013-12-05 2015-06-10 联想(新加坡)私人有限公司 利用境况解释自然语言语音识别命令

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012104034A (ja) * 2010-11-12 2012-05-31 Nec Access Technica Ltd 出力制御回路、出力制御回路の制御方法及びその制御プログラム
CN104699236A (zh) * 2013-12-05 2015-06-10 联想(新加坡)私人有限公司 利用境况解释自然语言语音识别命令
US11138971B2 (en) 2013-12-05 2021-10-05 Lenovo (Singapore) Pte. Ltd. Using context to interpret natural language speech recognition commands

Similar Documents

Publication Publication Date Title
US20070297433A1 (en) Method and apparatus for double buffering
WO2014082421A1 (zh) 一种众核处理器进程间相互通信的方法、装置及系统
JP5617839B2 (ja) パケット通信システム、パケット通信装置、パケット通信方法、パケット通信プログラムを記録したコンピュータ読み取り可能な記録媒体
US20070162642A1 (en) A dma controller with multiple intra-channel software request support
CN113535425A (zh) 一种数据发送方法、装置、电子设备及存储介质
JP2008152580A (ja) 通信装置、及び通信方法
JP2009237872A (ja) メモリ制御装置,メモリ制御方法および情報処理装置
CN111666237B (zh) 具有高速缓存管理功能的dma控制器
US8862783B2 (en) Methods and system to offload data processing tasks
WO2007096712A1 (en) A method and device for exchanging data using a virtual fifo data structure
JP4693576B2 (ja) データ転送制御装置、およびデータ転送制御方法
JP2792866B2 (ja) バッファプール事前拡張装置
JP5093986B2 (ja) プロセッサ間通信方法及びプロセッサ間通信装置
CN114828298B (zh) 一种协议栈与物理层之间的通信系统与方法
JP5334173B2 (ja) データ転送システム及びリトライ制御方法
JP5587530B2 (ja) エンジン・プロセッサ連携システム及び連携方法
JP3933134B2 (ja) 通信システム
JP2009194719A (ja) データ通信装置及び送信候補メッセージの決定方法
JP2007156935A (ja) データ入出力システム、スレーブ機器及びその信号処理方法
JP5268477B2 (ja) 情報処理装置およびその制御方法、データ処理システム
JP2006165642A (ja) 二重化システムにおける制御ユニット及び制御方法
KR100800704B1 (ko) 이동 통신 단말기의 메시지 전처리기 및 그 제어 방법
JP2004147243A (ja) パケット通信システム
KR20100034390A (ko) 데이터 통신 시스템 및 방법
JP2012094081A (ja) バス調停回路及びバス調停方法