(57)【要約】  【課題】  メモリ等のハードリソースの少ない組込みシステムに適用可能なデータ転送効率の良いデータ転送システムを提供する。  【解決手段】  データ転送システム１は、バス１２，１４によって接続された複数のデータ転送装置１０Ａ，１０Ｂを備え、各データ転送装置１０Ａ，１０Ｂは、データ転送を要求するコマンドを出力し、コマンドに対する応答を待たずに次のコマンドを先行的に発行可能なデータ転送システムである。データ転送装置１０Ａがデータ転送装置１０Ｂに複数のリードコマンドを先行的に送信し、データ転送装置１０Ａがデータ転送装置１０Ｂに、複数のリードコマンドのそれぞれに対応するリードデータを受信できないことを示す受信不可能識別データをデータ転送装置１０Ｂに送信し、データ転送装置１０Ｂが、受信不可能識別データに基づいて、データ転送装置１０Ａにリードコマンドに対応するリードデータを送信する。【選択図】  図１
2009282935.tif 000002
【特許請求の範囲】
【請求項１】
バスによって接続された複数のデータ転送装置によって構成されるデータ転送システムに適用されるデータ転送装置であって、
複数のリードコマンドを先に送信したコマンドに対応する応答を待たずに通信相手の装置に送信すると共に、前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを送信する送信制御部と、
前記送信制御部にて送信したリードコマンドのうち、前記受信可否データによって受信可能であると判断されたリードコマンドに対応して前記通信相手の装置から送信されたリードデータを受信する受信制御部と、
を備えるデータ転送装置。
【請求項２】
前記受信制御部が、前記リードコマンドに対応するリードデータが前記通信相手の装置から転送されてきたときに、前記リードデータを受信できないと判断した場合に、
前記送信制御部は、前記リードデータの転送要求を拒否する旨のデータに加えて、その時点での前記受信可否データを返信する請求項１に記載のデータ転送装置。
【請求項３】
前記送信制御部は、前記受信可否データをデータまたはコマンドの一部に含めて送信する請求項１または２に記載のデータ転送装置。
【請求項４】
前記送信制御部は、前記受信可否データを単独のコマンドとして送信する請求項１または２に記載のデータ転送装置。
【請求項５】
バスによって接続された複数のデータ転送装置によって構成されるデータ転送システムに適用されるデータ転送装置であって、
通信相手の装置から送信される複数のリードコマンドと、前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを受信する受信制御部と、
前記受信可否データに基づいて前記リードコマンドに対応するデータを送信する送信制御部と、
を備えるデータ転送装置。
【請求項６】
前記受信可否データに基づいて、受信不可能なリードコマンドの識別子を記憶した受信不可能識別子記憶部と、
データの送信準備が完了したコマンドの識別子を記憶した送信可能識別子記憶部とを備え、
前記送信制御部は、前記送信可能識別子記憶部に記憶されたコマンドを読み出し、読み出されたコマンドが受信不可能識別子記憶部に記憶されたリードコマンドに対応するコマンドでない場合に、前記コマンドを送信する請求項５に記載のデータ転送装置。
【請求項７】
前記受信可否データに基づいて、受信可能なリードコマンドの識別子を記憶した受信可能識別子記憶部と、
データの送信準備が完了したコマンドの識別子を記憶した送信可能識別子記憶部とを備え、
前記送信制御部は、前記送信可能識別子記憶部に記憶されたコマンドを読み出し、読み出されたコマンドが受信可能識別子記憶部に記憶されたリードコマンドに対応するコマンドである場合に、前記コマンドを送信する請求項５に記載のデータ転送装置。
【請求項８】
バスによって接続された複数のデータ転送装置を備え、各データ転送装置は、データ転送を要求するコマンドを送信し、前記コマンドに対する応答を待たずに先行的に次のコマンドを送信可能なデータ転送システムであって、
第１のデータ転送装置が第２のデータ転送装置に先行的に複数のリードコマンドを送信し、
前記第１のデータ転送装置が、前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを前記第２のデータ転送装置に送信し、
前記第２のデータ転送装置が、前記受信可否データに基づいて、前記リードコマンドに対応するリードデータを前記第１のデータ転送装置に送信するデータ転送システム。
【請求項９】
バスによって接続された複数のデータ転送装置によって構成されるデータ転送システムに適用されるデータ転送方法であって、
前記データ転送装置が、複数のリードコマンドを先に送信したコマンドに対応する応答を待たずに通信相手の装置に送信するステップと、
前記データ転送装置が、前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを前記通信相手の装置に送信するステップと、
前記送信制御部にて送信したリードコマンドのうち、前記受信可否データによって受信可能であると判断されたリードコマンドに対応して前記通信相手の装置から送信されたリードデータを受信するステップと、
を備えるデータ転送方法。
【請求項１０】
バスによって接続された複数のデータ転送装置によって構成されるデータ転送システムに適用されるデータ転送方法であって、
通信相手の装置から送信される複数のリードコマンドを受信するステップと、
通信相手の装置から送信される前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを受信するステップと、
前記受信可否データに基づいて、前記通信相手の装置に前記リードコマンドに対応するデータを送信するステップと、
を備えるデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機器間におけるデータ転送システムに関し、特に、先に発行したコマンドに基づくデータ転送の完了を待たずに先行的に複数のデータ転送コマンドを発行することが可能なデータ転送システムに関する。
【背景技術】
【０００２】
近年のデータ処理規模の拡大に伴い、高性能のデータ処理システムの需要が益々増加している。高性能化の一手段として、データ転送の完了を待たずに、複数のデータ転送要求を先行して発行し、応答の速いデータ転送から先に済ませるデータ処理システムが増えつつある。このデータ転送システムによれば、バスの稼働率を高めることにより、高性能な転送能力を実現できる。なお、一のコマンドによるデータ転送の完了を待たずに次のコマンドを発行することを、本明細書では、コマンドを「先行的」に発行するという。
【０００３】
例えば、非特許文献１、非特許文献２に記載されたＰＣＩ−Ｅｘｐｒｅｓｓは、パソコンやワークステーションで用いられるデータ転送方式である。ＰＣＩ−Ｅｘｐｒｅｓｓでは、データの送信と受信を独立した専用バスを用いて行う。データ受信については複数のコマンドを先行的に発行し、コマンドを受けた通信相手は、データ転送が可能になった時点でコマンドを用いてデータ転送を行う。
【非特許文献１】David Harriman「PCI Express Protocol Overview」PCI-SIG
【非特許文献２】Ajar Bhatt「PCI Express Architectural Overview」PCI-SIG
【発明の開示】
【発明が解決しようとする課題】
【０００４】
データ受信に関するコマンドを先行的に発行する方式は、ＰＣＩ−Ｅｘｐｒｅｓｓが適用されるパソコンやワースクテーション等のように、受信バッファの容量を十分に確保できる場合には有効である。しかし、組込みシステムなどの用途においては、受信バッファの容量が小さいため、リードコマンドに対応するリードデータが送信されたときに、送信されたリードデータを受信できないという事態が生じ、効率的なデータ転送を実現することが困難であった。
【０００５】
本発明は、上記背景に鑑み、特にメモリ等のハードリソースの少ない組込みシステムに適用可能なデータ転送効率の良いデータ転送システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のデータ転送装置は、バスによって接続された複数のデータ転送装置によって構成されるデータ転送システムに適用されるデータ転送装置であって、複数のリードコマンドを先に送信したコマンドに対応する応答を待たずに通信相手の装置に送信すると共に、前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを送信する送信制御部と、前記送信制御部にて送信したリードコマンドのうち、前記受信可否データによって受信可能であると判断されたリードコマンドに対応して前記通信相手の装置から送信されたリードデータを受信する受信制御部とを備える。
【０００７】
本発明の別の態様のデータ転送装置は、バスによって接続された複数のデータ転送装置によって構成されるデータ転送システムに適用されるデータ転送装置であって、通信相手の装置から送信される複数のリードコマンドと、前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを受信する受信制御部と、前記受信可否データに基づいて前記リードコマンドに対応するデータを送信する送信制御部とを備える。
【発明の効果】
【０００８】
本発明によれば、リードデータを送信する側のデータ転送装置は、受信可否データによってリードデータを受信する側のデータ転送装置の受信可否の状態を把握し、無駄なデータ転送を防止して、データ転送効率を高めることができるというすぐれた効果を有する。
【発明を実施するための最良の形態】
【０００９】
本実施の形態のデータ転送装置は、バスによって接続された複数のデータ転送装置によって構成されるデータ転送システムに適用されるデータ転送装置であって、複数のリードコマンドを先に送信したコマンドに対応する応答を待たずに通信相手の装置に送信すると共に、前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを送信する送信制御部と、前記送信制御部にて送信したリードコマンドのうち、前記受信可否データによって受信可能であると判断されたリードコマンドに対応して前記通信相手の装置から送信されたリードデータを受信する受信制御部とを備える。
【００１０】
この構成により、通信相手の装置は、受信可否データに基づいて、リードコマンドを発行した側のデータ転送装置によるリードデータの受信可否を把握し、データ転送装置が受信できない場合にはリードデータを送信しない。このように無駄なデータ転送を防止して、データ転送効率を高めることができる。また、リードデータの受信準備の完了を待たないで通信相手の装置にリードコマンドを送信するので、通信相手の装置は、データ転送装置が受信の準備をする時間を利用してリードデータの送信準備を行うことができる。これにより、通信相手の装置は、データ転送装置の受信準備が完了したときに速やかにリードデータの転送を開始できる。
【００１１】
本実施の形態のデータ転送装置は、前記受信制御部が、前記リードコマンドに対応するリードデータが前記通信相手の装置から転送されてきたときに、前記リードデータを受信できないと判断した場合に、前記送信制御部は、前記リードデータの転送要求を拒否する旨のデータに加えて、その時点での前記受信可否データを返信する構成を有する。
【００１２】
この構成により、データの受信可否の状況に変化があったときに、受信可否データを送信することにより、タイミング良く受信可否データを通知できる。
【００１３】
本実施の形態のデータ転送装置において、前記送信制御部は、前記受信可否データをデータまたはコマンドの一部に含めて送信する構成を有する。
【００１４】
この構成により、データまたはコマンドと共に受信可否データを送信することができる。なお、受信可否データを、データまたはコマンドの最後に含める構成としてもよい。これにより、最新の受信可否データを付加することができる。
【００１５】
本実施の形態のデータ転送装置において、前記送信制御部は、前記受信可否データを単独のコマンドとして送信する構成を有する。
【００１６】
この構成により、通信相手の装置へ送信されるコマンドまたはデータがない場合にも、受信可否データを通知できる。
【００１７】
本実施の形態の別の態様のデータ転送装置は、バスによって接続された複数のデータ転送装置によって構成されるデータ転送システムに適用されるデータ転送装置であって、通信相手の装置から送信される複数のリードコマンドと、前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを受信する受信制御部と、前記受信可否データに基づいて前記リードコマンドに対応するデータを送信する送信制御部とを備える。
【００１８】
この構成により、受信可否データに基づいてリードデータを送信するので、無駄なデータ転送を防止して、データ転送効率を高めることができる。
【００１９】
本実施の形態のデータ転送装置は、前記受信可否データに基づいて、受信不可能なリードコマンドの識別子を記憶した受信不可能識別子記憶部と、データの送信準備が完了したコマンドの識別子を記憶した送信可能識別子記憶部とを備え、前記送信制御部は、前記送信可能識別子記憶部に記憶されたコマンドを読み出し、読み出されたコマンドが受信不可能識別子記憶部に記憶されたリードコマンドに対応するコマンドでない場合に、前記コマンドを送信する構成を有する。
【００２０】
この構成により、送信準備が完了したコマンドの識別子を記憶した送信可能識別子記憶部と、受信不可能なリードコマンドの識別子を記憶した受信不可能識別子記憶部とを用いて、送信すべきコマンドを適切に選ぶことができる。
【００２１】
本実施の形態のデータ転送装置は、前記受信可否データに基づいて、受信可能なリードコマンドの識別子を記憶した受信可能識別子記憶部と、データの送信準備が完了したコマンドの識別子を記憶した送信可能識別子記憶部とを備え、前記送信制御部は、前記送信可能識別子記憶部に記憶されたコマンドを読み出し、読み出されたコマンドが受信可能識別子記憶部に記憶されたリードコマンドに対応するコマンドである場合に、前記コマンドを送信する構成を有する。
【００２２】
この構成により、送信準備が完了したコマンドの識別子を記憶した送信可能識別子記憶部と、受信可能なコマンドの識別子を記憶した受信可能識別子記憶部とを用いて、送信すべきコマンドを適切に選ぶことができる。
【００２３】
本実施の形態のデータ転送システムは、バスによって接続された複数のデータ転送装置を備え、各データ転送装置は、データ転送を要求するコマンドを送信し、前記コマンドに対する応答を待たずに先行的に次のコマンドを送信可能なデータ転送システムであって、第１のデータ転送装置が第２のデータ転送装置に先行的に複数のリードコマンドを送信し、前記第１のデータ転送装置が、前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを前記第２のデータ転送装置に送信し、前記第２のデータ転送装置が、前記受信可否データに基づいて、前記リードコマンドに対応するリードデータを前記第１のデータ転送装置に送信する。
【００２４】
この構成により、第２のデータ転送装置は、受信可否データに基づいて第１のデータ転送装置によるリードデータの受信可否を把握し、第１のデータ転送装置が受信できない場合にはリードデータを送信しない。このように無駄なデータ転送を防止して、データ転送効率を高めることができる。また、第１のデータ転送装置は、リードデータの受信準備の完了を待たないで第２のデータ転送装置にリードコマンドを送信するので、第２のデータ転送装置は、第１のデータ転送装置が受信の準備をする時間を利用してリードデータの送信準備を行うことができる。これにより、第１のデータ転送装置の受信準備が完了したときに速やかにリードデータの転送を開始できる。
【００２５】
本実施の形態のデータ転送方法は、バスによって接続された複数のデータ転送装置によって構成されるデータ転送システムに適用されるデータ転送方法であって、前記データ転送装置が、複数のリードコマンドを先に送信したコマンドに対応する応答を待たずに通信相手の装置に送信するステップと、前記データ転送装置が、前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを前記通信相手の装置に送信するステップと、前記送信制御部にて送信したリードコマンドのうち、前記受信可否データによって受信可能であると判断されたリードコマンドに対応して前記通信相手の装置から送信されたリードデータを受信するステップとを備える。
【００２６】
この構成により、通信相手の装置は、受信可否データに基づいてデータ転送装置によるリードデータの受信可否を把握し、データ転送装置が受信できない場合にはリードデータを送信しない。このように無駄なデータ転送を防止して、データ転送効率を高めることができる。また、リードデータの受信準備の完了を待たないで通信相手の装置にリードコマンドを送信するので、通信相手の装置は、データ転送装置が受信の準備をする時間を利用してリードデータの送信準備を行うことができる。これにより、通信相手の装置は、データ転送装置の受信準備が完了したときに速やかにリードデータの転送を開始できる。
【００２７】
本実施の形態の別の態様のデータ転送方法は、バスによって接続された複数のデータ転送装置によって構成されるデータ転送システムに適用されるデータ転送方法であって、通信相手の装置から送信される複数のリードコマンドを受信するステップと、通信相手の装置から送信される前記複数のリードコマンドのそれぞれに対応するリードデータの受信可否を示す受信可否データを受信するステップと、前記受信可否データに基づいて、前記通信相手の装置に前記リードコマンドに対応するデータを送信するステップとを備える。
【００２８】
この構成により、受信可否データに基づいてリードデータを送信するので、無駄なデータ転送を防止して、データ転送効率を高めることができる。
【００２９】
以下、本発明の実施の形態のデータ転送システムおよびデータ転送装置について、図面を参照してさらに詳細に説明する。
【００３０】
図１は、本発明の実施の形態のデータ転送システム１の構成を示す図である。データ転送システム１は、２台のデータ転送装置１０Ａ、１０Ｂを有している。以下、データ転送装置１０Ａ、１０Ｂを総称する場合には、データ転送装置１０という。本実施の形態では、２台のデータ転送装置１０Ａ、１０Ｂを有する例について説明するが、データ転送装置１０の台数は、２台に限定されず、何台であってもよい。データ転送装置１０Ａ、１０Ｂはそれぞれ、上位装置に接続されている。データ転送装置１０Ａ、１０Ｂは上位装置から取得したデータを転送すると共に、転送されたデータを上位装置に渡す機能を有する。
【００３１】
データ転送装置１０Ａとデータ転送装置１０Ｂは、２本のバス１２，１４によって接続されている。バス１２は、データ転送装置１０Ａからデータ転送装置１０Ｂにデータまたはコマンドを送信するためのバスである。バス１４は、データ転送装置１０Ｂからデータ転送装置１０Ａにデータまたはコマンドを送信するためのバスである。なお、バスの本数は２本に限らず、３本以上であってもよい。また、データ転送システム１は、コマンドの送受信を専用に行うバスを有してもよい。データ転送装置１０Ａ、１０Ｂは、基本的に同じ構成を有する。以下、データ転送装置１０Ａの構成について説明する。
【００３２】
データ転送装置１０Ａは、コマンドやデータの送信制御を行う送信制御部１６と、コマンドやデータの受信制御を行う受信制御部１８と、送信コマンド、送信データ、受信データを記憶するＦＩＦＯバッファ２０とを有している。
【００３３】
また、データ転送装置１０Ａは、送信可能識別子記憶部２２と、受信不可能識別子記憶部２４を有している。送信可能識別子記憶部２２は、データまたはコマンドの送信準備が完了したコマンドの識別子を記憶している。送信可能識別子記憶部２２に記憶されたコマンドには、過去に通信相手のデータ転送装置１０Ｂから要求されたリードコマンドのうち、上位装置からデータの読み出しが完了し送信準備が整ったデータを送信するためのコマンドも含まれる。
【００３４】
受信不可能識別子記憶部２４は、データ転送装置１０Ｂから要求されたリードコマンドのうち、データ転送装置１０Ｂが受信不可能な状態のリードコマンドの識別子を記憶している。受信不可能な場合とは、例えば、受信側のデータ転送装置１０Ｂにおいて、リードデータを格納するための受信バッファを確保できていない場合等である。この受信不可能識別子は、コマンドやデータに付加された拡張データによって、データ転送装置１０Ｂから通知される。受信制御部１８は、受信データの中に含まれる拡張データを解析して通信相手のデータ転送装置１０Ｂの受信可否を示す受信不可能識別子を抽出する機能を有する。
【００３５】
次に、本実施の形態のデータ転送システム１の動作について説明する。本実施の形態のデータ転送システム１においては、データ転送はライトコマンドのみで行い、リードデータの転送の場合もライトコマンドを用いる。すなわち、データをリードする場合には、通信相手のデータ転送装置１０にリードコマンドを送信し、通信相手のデータ転送装置１０がリードコマンドに対応するリードデータを送信する際にライトコマンドを送信する。このライトコマンドに続いて、リードデータが転送される。
【００３６】
図２は、本実施の形態におけるデータ転送装置１０のデータ送信処理を示すフローチャートである。図２を参照しながら、データ転送装置１０によるデータ送信処理について説明する。以下では、説明の便宜上、データ転送装置１０Ａを処理の主体として説明するが、データ転送装置１０Ｂのデータ送信処理も同じである。
【００３７】
データ転送装置１０Ａの送信制御部１６は、データ転送装置１０Ａ内の新規コマンド、あるいは、通信相手のデータ転送装置１０Ｂからのリードコマンドに応答するデータ転送コマンドの登録を行う（Ｓ１０）。ここで、コマンドの登録とは、新規コマンドやデータ転送コマンドをキューイングすることを意味する。キューに並べる順番は、転送要求のあった順番でもよいし、転送要求に付加された優先順位に従った順番でもよい。
【００３８】
図３は、リードコマンドＲＣｍｄに対応するデータ転送コマンド（ライトコマンド）ＷＣｍｄの登録を行ったデータの例を示す図である。各コマンド識別子に付された数字は対応しており、リードコマンドＲＣｍｄ１に対応するリードデータを転送するためのコマンドは、データ転送コマンドＷＣｍｄ１である。なお、前述したように、登録されるコマンドには、リードコマンドに対応しない新規のコマンドも含まれるが、図３では記載していない。
【００３９】
次に、データ転送装置１０Ａは、送信可能識別子記憶部２２を参照し、現時点で送信可能でコマンドを１つ選出する（Ｓ１２）。図３に示す例では、送信可能識別子記憶部２２には、データ転送コマンドＷＣｍｄ１、ＷＣｍｄ３が記憶されている。従って、データ転送コマンドＷＣｍｄ１はコマンド発行可能であり、キューの先頭のデータ転送コマンドＷＣｍｄ１が読み出される。
【００４０】
続いて、データ転送装置１０Ａは、選出したコマンドが受信不可能識別子記憶部２４に記憶されたリードコマンドに対応するコマンドか否かによって、コマンド発行可能か否かを判定する（Ｓ１６）。選出したコマンドが受信不可能識別子記憶部２４に記憶されたリードコマンドに対応していれば、データ転送装置１０Ａは、コマンド発行不可能と判断し（Ｓ１６でＮＯ）、送信可能識別子記憶部２２から別のコマンドを選出する（Ｓ１２）。
【００４１】
一方、選出したコマンドが受信不可能識別子記憶部２４に記憶されたリードコマンドに対応していなければ、データ転送装置１０Ａは、コマンド発行可能と判断し（Ｓ１６でＹＥＳ）、コマンドを発行する（Ｓ１８）。図３に示す例では、受信不可能識別子記憶部２４には、リードコマンドＲＣｍｄ２、ＲＣｍｄ３、ＲＣｍｄ４が記憶されており、データ転送コマンドＷＣｍｄ１に対応するリードコマンドＲＣｍｄ１は記憶されていない。従って、リードコマンドＲＣｍｄ１に対応するデータ転送コマンドＷＣｍｄ１をデータ転送することが可能である。
【００４２】
次に、データ転送装置１０Ａは、発行したコマンドの種類を判定し（Ｓ２０）、コマンドがライトコマンドならば、ライトデータを通信相手のデータ転送装置１０Ｂに転送する（Ｓ２２）。コマンドがリードコマンドならば、リードコマンドを通信相手のデータ転送装置１０Ｂに送信する（Ｓ２４）。図３に示す例では、コマンドの種類はライトコマンドＷＣｍｄ１であるので、ライトデータを転送する。
【００４３】
ライトデータまたはリードコマンドの最後に、データ転送装置１０Ａから以前に通信相手のデータ転送装置１０Ｂに発行済みのリードコマンドのうちで、受信処理が不可能なリードコマンドの識別子（受信不可能識別子）を拡張データとして送信する（Ｓ２４）。以上で、データ転送装置１０Ａによるデータ送信処理は完了する。
【００４４】
データ転送装置１０Ａが送信する受信不可能識別子は、受信不可能識別子を送信する時点において受信処理が不可能なすべてのリードコマンドの識別子を送信する。つまり、受信不可能識別子の内容は、送信時の最新のデータである。拡張データのフォーマットについては後述する。
【００４５】
なお、ここでは、受信不可能識別子に受信不可能なリードコマンドの識別子をすべて含めて送信する例について説明しているが、受信不可能識別子には、受信不可能なリードコマンドのうちの一部のコマンドの識別子を含めることとしてもよい。例えば、リードコマンド１〜リードコマンド５が発行済みであって、リードコマンド３〜リードコマンド５に対応するデータを受信不可能な場合、上記した例では、リードコマンド３〜５の識別子を送信するが、リードコマンド３，４の識別子を最初に送信し、次に、リードコマンド５の識別子を送信してもよい。このように受信不可能識別子を分割して送信する態様は、リードコマンドに優先度が設定されている場合に特に有効である。例えば、上記の例において、リードコマンド１，２の優先度が高い場合には、リードコマンド５に対応するリードデータが受信可能か否かにかかわらず、リードコマンド１，２からデータ転送処理がなされる。優先度の低いリードコマンド５に対応するリードデータが受信可能か否かは、リードコマンド１，２に対応するリードデータの転送が完了するまでに分かっていればよいという事情がある一方で、受信不可能識別子のデータ量を減らすことにより、データ転送効率を高めることができる。
【００４６】
図４は、本実施の形態におけるデータ転送装置１０のデータ受信処理を示すフローチャートである。図４を参照しながら、データ転送装置１０によるデータ受信処理について説明する。以下では、説明の便宜上、データ転送装置１０Ｂを処理の主体として説明するが、データ転送装置１０Ａのデータ受信処理も同じである。
【００４７】
まず、データ転送装置１０Ｂは、通信相手のデータ転送装置１０Ａからのコマンドまたはデータがあるか否かを判定する（Ｓ３０）。データ転送装置１０Ｂは、コマンドまたはデータがないと判定した場合には（Ｓ３０でＮＯ）、データ転送装置１０Ａからのコマンドまたはデータがあるまで待つ。データ転送装置１０は、コマンドまたはデータを受信したと判定した場合には（Ｓ３０でＹＥＳ）、コマンドまたはデータを受信する（Ｓ３２）。
【００４８】
続いて、データ転送装置１０Ｂは、受信したコマンドまたはデータの種類を判定する（Ｓ３４）。受信内容がリードコマンドである場合、リードコマンドに対応するリードデータ応答用のコマンド要求を送信制御部１６に通知する（Ｓ３６）。受信内容がデータと判定された場合、受信データをＦＩＦＯバッファ２０に格納する（Ｓ３８）。
【００４９】
次に、データ転送装置１０Ｂは、コマンドやデータの末尾に追加された拡張データがあるか否かを判定する（Ｓ４０）。拡張データがある場合（Ｓ４０でＹＥＳ）、拡張データの内容を解析して受信不可能識別子を抽出し（Ｓ４２）、受信不可能識別子記憶部２４に登録する（Ｓ４４）。以上で、データ転送装置１０Ｂによるコマンドまたはデータの受信処理が完了する。
【００５０】
ここで、データ転送装置１０Ａが受信不可能識別子を送信したときには、データ受信可能であったリードコマンドが、後に受信不可能となった場合の動作について、次の具体例に基づいて説明する。リードコマンドＲＣｍｄ１〜ＲＣｍｄ５をデータ転送装置１０Ｂに送信済みである場合に、データ転送装置１０Ａが、リードコマンドＲＣｍｄ１，ＲＣｍｄ２に対応するリードデータの受信準備が完了して受信不可能識別子としてリードコマンドＲＣｍｄ３〜ＲＣｍｄ５を送信した。これを受けたデータ転送装置１０Ｂが、リードコマンドＲＣｍｄ１に対応するリードデータのデータ転送装置１０Ａへ転送したところ、データ転送装置１０Ａの状況が変わって、リードコマンドＲＣｍｄ１，ＲＣｍｄ２に対応するデータを受信できなくなったとする。
【００５１】
この場合、データ転送装置１０Ａは、リードデータを受信できないことを示す否定応答をデータ転送装置１０Ｂに送信する。この否定応答に、現時点での受信不可能識別子ＲＣｍｄ１〜ＲＣｍｄ５を付加する。これにより、データ転送装置１０Ｂは、リードデータＲＣｍｄ１のみならず、ＲＣｍｄ２も受信不可能識別子であることを把握でき、無駄なデータ転送を防止することができる。このように、本実施の形態のデータ転送システム１では、どのようなデータに対して拡張データを付加してもよい。
【００５２】
図５（ａ）は、本実施の形態において用いられるリードコマンドのフォーマットの一例を示す図である。リードコマンドは、コマンド３０にコマンド種類３２とコマンド識別子３４とを有し、コマンド３０に続いて拡張データ３６を有している。
【００５３】
図５（ｂ）はライトコマンドおよびデータのフォーマットの一例を示す図である。ライトコマンドは、コマンド３０にコマンド種類３２とコマンド識別子３４とを有している。ライトすべきデータ３８は、ライトコマンド３０に続いている。ライトすべきデータ３８に続いて、拡張データ３６を有している。
【００５４】
図５（ｃ）は、拡張データ３６の内容を示す図である。拡張データ３６には、受信不可能識別子として、すでに送信済みのリードコマンドのうち、対応するリードデータを受信することができないコマンド識別子３４が含まれている。
【００５５】
本実施の形態のデータ転送システム１では、データ転送装置１０Ｂは、受信可否データに基づいてデータ転送装置１０Ａによるリードデータの受信可否を把握できる。そして、通信相手のデータ転送装置１０Ａがリードデータを受信できる状態にあるときにリードデータを転送する。これにより、無駄なデータ転送を防止し、データ転送効率を高めることができる。
【００５６】
また、本実施の形態のデータ転送システム１は、データ転送装置１０Ａは、受信準備の完了を待たずにリードコマンドを送信するので、データ転送装置１０Ｂは、データ転送装置１０Ａがリードデータの受信準備に要する時間を利用して、リードデータの準備を行うことができる。従って、データ転送装置１０Ｂは、データ転送装置１０Ａがリードデータの受信準備を完了したときに速やかにリードデータの転送を開始できる。
【００５７】
以上、本発明のデータ転送システムについて、実施の形態を挙げて詳細に説明したが、本発明は上記した実施の形態に限定されるものではない。
【００５８】
上記した実施の形態においては、受信可否データとして受信不可能識別子を用いる例について説明したが、逆に受信可能識別データを用いることとしてもよい。また、受信不可能識別子と受信可能識別データの両方を用いることとしてもよい。この構成によっても、上記した実施の形態と同様に、無駄なリードデータ転送を防止してデータ転送効率を高める効果がある。なお、受信不可能識別子と受信可能識別子の両方を用いた場合には、例えば、最初に受信不可能なリードコマンドの識別子を送信しておき、受信不可能であったリードコマンドのうち受信可能となったリードコマンドの受信可能識別子を送信するという構成をとることができる。これにより、受信可否データを受信する側のデータ転送装置１０は、現在受信中の全てのリードコマンドとの比較を行うことなく、受信可否の判定を容易に行うことができる。
【００５９】
上記した実施の形態では、受信不可能識別子の個数を定めていないが少なくとも１つ以上でかつ装置で許されるコマンド先行発行数分の範囲であればよい。
【００６０】
上記した実施の形態では、拡張データをコマンドやデータの末尾に置いたが、コマンドやデータの先頭や先頭からの特定位置など、システムを実現する上で都合の良い位置においてよいことは言うまでもない。
【００６１】
上記した実施の形態では、受信可否データをコマンドまたはデータの拡張データとして送信する構成について説明したが、受信可否データを送信するコマンドを設けることとしてもよい。これにより、コマンドまたはデータを送信していないときにも受信可否データを送信することが可能となる。
【産業上の利用可能性】
【００６２】
本発明は、無駄なリードデータ転送を防止し、データ転送効率を高めることができるというすぐれた効果を有し、複数の機器間におけるデータ転送システムとして有用である。
【図面の簡単な説明】
【００６３】
【図１】実施の形態のデータ転送システムの構成を示す図
【図２】実施の形態のデータ転送システムによるデータ送信処理を示す図
【図３】リードコマンドＲＣｍｄに対応するデータ転送コマンド（ライトコマンド）ＷＣｍｄの登録を行ったデータの例を示す図
【図４】実施の形態のデータ転送システムによるデータ受信処理を示す図
【図５】（ａ）リードコマンドのフォーマットの例を示す図（ｂ）ライトコマンドのフォーマットの例を示す図（ｃ）拡張データのフォーマットの例を示す図
【符号の説明】
【００６４】
１  データ転送システム
１０Ａ，１０Ｂ  データ転送装置
１２，１４  バス
１６  送信制御部
１８  受信制御部
２０  ＦＩＦＯバッファ
２２  送信可能識別子記憶部
２４  受信不可能識別子記憶部
３０  コマンド
３２  コマンド種類
３４  コマンド識別子
３６  拡張データ
３８  データ
【図１】
2009282935.tif 000003
【図２】
2009282935.tif 000004
【図３】
2009282935.tif 000005
【図４】
2009282935.tif 000006
【図５】
2009282935.tif 000007