(57)【特許請求の範囲】
【請求項１】
メモリに記憶されるデータを通信路へ転送する制御部と、
前記通信路へのデータ転送周期に同期して発生する第１のデータを前記メモリから読み出すための、第１のポインタ情報を格納する第１の格納領域と、
前記データ転送周期とは非同期に発生する第２のデータを前記メモリから読み出すための、第２のポインタ情報を格納する第２の格納領域と、を備え、
前記制御部は、
一のデータ転送周期で、前記メモリから読み出した前記第１及び第２のポインタ情報を前記第１及び第２の格納領域にそれぞれ格納すると共に、前記第１及び第２のポインタ情報をそれぞれ参照して前記メモリから読み出した前記第１及び第２のデータを前記通信路へ順次転送し、
前記第２のデータの転送に際して、前記第２のポインタ情報が示すデータ長分の転送を完了できなかった場合、前記データ長を残りのデータのデータ長に更新すると共に、前記第２のポインタ情報が示すアドレスを前記残りのデータの前記メモリ上のアドレスに更新し、
次のデータ転送周期で、前記第２のポインタ情報を参照して前記残りのデータを前記メモリから読み出し、前記通信路へ転送し、
前記一のデータ転送周期で、ｎ個（ｎは２以上の整数）のポインタ情報を、前記第２のポインタ情報として前記メモリから順次読み出して前記第２の格納領域に択一的に格納し、当該格納の度毎に前記第２のポインタ情報を参照して、ｎ個のデータを、前記第２のデータとして前記メモリから順次読み出して前記通信路へ転送し、
前記ｎ個のデータ各々の転送に際して前記第２のポインタ情報が示すデータ長分の転送を完了できなかった場合、前記第２のポインタ情報に対する前記更新を行い、
前記次のデータ転送周期で、前記第２のポインタ情報を参照して前記ｎ個のデータの内の一のデータに対応する一の残りのデータを前記メモリから読み出し、前記通信路へ転送し、
前記ｎ個のデータの内の他のデータの転送に際して前記第２のポインタ情報が示すデータ長分の転送を完了できなかった場合、前記他のデータに対応する他の残りのデータのデータ長及び前記メモリ上のアドレスを用いて、前記メモリに記憶された前記他のデータに対応するポインタ情報を更新し、
前記一の残りのデータの転送の後、前記次のデータ転送周期で、前記他のデータに対応するポインタ情報を前記メモリから読み出して前記第２の格納領域に格納すると共に、前記他のデータに対応するポインタ情報を参照して前記他の残りデータを前記メモリから読み出し、前記通信路へ転送する、
データ転送回路。
【請求項２】
メモリに記憶されるデータを通信路へ転送するデータ転送方法であって、
前記通信路への一のデータ転送周期で、第１及び第２のポインタ情報を前記メモリから読み出して保持すると共に、前記第１及び第２のポインタ情報をそれぞれ参照して、前記一のデータ転送周期に同期して発生する第１のデータ、及び前記一のデータ転送周期とは非同期に発生する第２のデータを前記メモリから読み出し、前記通信路へ順次転送し、
前記第２のデータの転送に際して、前記第２のポインタ情報が示すデータ長分の転送を完了できなかった場合、前記データ長を残りのデータのデータ長に更新すると共に、前記第２のポインタ情報が示すアドレスを前記残りのデータの前記メモリ上のアドレスに更新し、
次のデータ転送周期で、前記第２のポインタ情報を参照して前記残りのデータを前記メモリから読み出し、前記通信路へ転送し、
前記一のデータ転送周期で、ｎ個（ｎは２以上の整数）のポインタ情報を、前記第２のポインタ情報として前記メモリから順次読み出して択一的に保持し、当該保持の度毎に前記第２のポインタ情報を参照して、ｎ個のデータを、前記第２のデータとして前記メモリから順次読み出して前記通信路へ転送し、
前記ｎ個のデータ各々の転送に際して前記第２のポインタ情報が示すデータ長分の転送を完了できなかった場合、前記第２のポインタ情報に対する前記更新を行い、
前記次のデータ転送周期で、前記第２のポインタ情報を参照して前記ｎ個のデータの内の一のデータに対応する一の残りのデータを前記メモリから読み出し、前記通信路へ転送し、
前記ｎ個のデータの内の他のデータの転送に際して前記第２のポインタ情報が示すデータ長分の転送を完了できなかった場合、前記他のデータに対応する他の残りのデータのデータ長及び前記メモリ上のアドレスを用いて、前記メモリに記憶された前記他のデータに対応するポインタ情報を更新し、
前記一の残りのデータの転送の後、前記次のデータ転送周期で、前記他のデータに対応するポインタ情報を前記メモリから読み出して保持すると共に、前記他のデータに対応するポインタ情報を参照して前記他の残りデータを前記メモリから読み出し、前記通信路へ転送する、
ことを含むデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送回路及び方法に関し、特にメモリに記憶されるデータを、通信バス等の通信路へ転送する回路及び方法に関する。
【背景技術】
【０００２】
図１１に、一般的なデータ転送回路１ｘを適用する通信システムの構成を示す。このデータ転送回路１ｘは、システムバス２を介してメモリ３に接続され、メモリ３から読み出したデータを通信バス４へ転送する。なお、図示を省略するが、システムバス２には、メモリ３へデータを記憶するプロセッサや各種の周辺回路等が接続される。
【０００３】
ここで、メモリ３には、プロセッサや各種の周辺回路等により、通信バス４へのデータ転送周期に同期して生成されるデータＤ＿Ａ(以下、周期転送用データと呼称する)と、データ転送周期とは非同期に生成されるデータＤ＿Ｂ(以下、非周期転送用データと呼称する)とが記憶される。周期転送用データＤ＿Ａは、周期的に発生する音楽データ等のデータであり、リアルタイムに転送する必要がある。一方、非周期転送用データＤ＿Ｂは、転送に先立って予め用意されたファイルデータ等のデータであり、必ずしもリアルタイムに転送する必要が無い。
【０００４】
また、メモリ３には、周期転送用データＤ＿Ａの読出に使用するポインタ情報Ｐ＿Ａ(以下、周期転送用ポインタ情報と呼称する)と、非周期転送用データＤ＿Ｂの読出に使用するポインタ情報Ｐ＿Ｂ(以下、非周期転送用ポインタ情報と呼称する)とが記憶される。図１２に示すように、これらのポインタ情報Ｐ＿Ａ及びＰ＿Ｂは、データのメモリ３上の記憶先アドレス２０１と、データ長２０２と、データをデータ転送周期に同期して転送すべきか否かを示す転送タイプ２０３と、データＩＤ(Ｉｄｅｎｔｉｆｉｅｒ) ２０４とを含む。転送タイプ２０３には、周期転送用データＤ＿Ａ(ポインタ情報Ｐ＿Ａ)の場合に"周期転送"が設定され、非周期転送用データＤ＿Ｂ(ポインタ情報Ｐ＿Ｂ)の場合には"非周期転送"が設定される。なお、図示を省略するが、ポインタ情報Ｐ＿Ａ及びＰ＿Ｂは、上記のアドレス２０１、データ長２０２、転送タイプ２０３、及びデータＩＤ ２０４の他、データが連続するデータの内の最終データであるか否かを示すインジケータや、ポインタ情報自身の有効／無効を示すインジケータ等を含む。
【０００５】
動作においては、図１３に示すように、データ転送回路１ｘが、フレームの開始を待機する(ステップＴ１)。ここで、フレームとは、データ転送周期同士間の時間間隔(すなわち、通信バス４の転送時間単位)を意味し、フレームの開始とは、或るデータ転送周期の到来を意味する。
【０００６】
フレームが開始されると、データ転送回路１ｘは、データの転送順番をスケジューリングする(ステップＴ２)。この時、データ転送回路１ｘは、フレーム開始直後の期間を周期転送に割り当て、残りの期間を非周期転送に割り当てる。具体的には、データ転送回路１ｘは、まず周期転送の対象とする周期転送用データＤ＿ＡのデータＩＤを決定し、次いで非周期転送の対象とする非周期転送用データＤ＿ＢのデータＩＤを決定する。メモリ３に複数の周期転送用データＤ＿Ａが記憶されている場合、データ転送回路１ｘは、例えばデータＩＤ ２０４(ＩＤ値)の昇順に１つの周期転送用データＤ＿Ａを選択する。同様にして、メモリ３に複数の非周期転送用データＤ＿Ｂが記憶されている場合、データ転送回路１ｘは、データＩＤ ２０４の昇順に１つの非周期転送用データＤ＿Ｂを選択する。
【０００７】
そして、上記のステップＴ２でスケジュールした全てのデータＩＤについての転送が終了する迄(ステップＴ３)、データ転送回路１ｘは、下記のステップＴ４〜Ｔ７に示す処理を繰り返し実行する。
【０００８】
今、図１４に示すフレームＦ１における転送に際し、データ転送回路１ｘが、周期転送用データＤ＿Ａ１のデータＩＤ＝"Ａ１"と、非周期転送用データＤ＿Ｂ１のデータＩＤ＝"Ｂ１"とを選択したとする。
【０００９】
この場合、データ転送回路１ｘは、データＩＤ＝"Ａ１"を含む周期転送用ポインタ情報Ｐ＿Ａ１を、図１４に示す如くシステムバス２を介してメモリ３から読み出す(ステップＴ４)。データ転送回路１ｘは、読み出したポインタ情報Ｐ＿Ａ１を、内部記憶領域に格納する(ステップＴ５)。
【００１０】
そして、データ転送回路１ｘは、ポインタ情報Ｐ＿Ａ１を解析する(ステップＴ６)。具体的には、データ転送回路１ｘは、ポインタ情報Ｐ＿Ａ１が示すデータ長２０２を参照し、周期転送用データＤ＿Ａ１の転送に割り当てた期間内で転送可能なデータ長(以下、データ転送長と呼称する)を決定する。この例では、データＤ＿Ａ１全体を転送可能な期間が割り当てられており、データ転送長としてデータ長２０２が決定されることとする。
【００１１】
そして、データ転送回路１ｘは、ポインタ情報Ｐ＿Ａ１と上記のステップＴ６で決定したデータ転送長とに基づき、データＤ＿Ａ１の転送処理を実行する(ステップＴ７)。
【００１２】
具体的には、まずデータ転送回路１ｘは、ポインタ情報Ｐ＿Ａ１が示すアドレス２０１からデータ転送長分のデータを読み出す。これにより、周期転送用データＤ＿Ａ１が、図１４に示す如くシステムバス２を介して、データ転送回路１ｘへ転送される。
【００１３】
次いで、データ転送回路１ｘは、読み出した周期転送用データＤ＿Ａ１を、図１４に示す如く通信バス４へ転送する。より詳細には、データ転送回路１ｘは、データＤ＿Ａ１を、通信バス４に適用される通信規格(ＵＳＢ(Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ)規格や、ＰＣＩ(Ｐｅｒｉｐｈｅｒａｌ Ｃｏｍｐｏｎｅｎｔ Ｉｎｔｅｒｃｏｎｎｅｃｔ) Ｅｘｐｒｅｓｓ規格等)に則したパケット長単位に分割する。そして、データ転送回路１ｘは、各パケットにバケット番号(シーケンス番号)を付加して通信バス４へ転送する。転送先デバイスから肯定応答(ハンドシェイクパケット)を受信すると、データ転送回路１ｘは、データＤ＿Ａ１の転送に成功したと判断する。一方、転送先デバイスから否定応答(受信失敗、再送要求、停止要求等)を受信すると、データ転送回路１ｘは、データＤ＿Ａ１の転送に失敗したと判断し、データＤ＿Ａ１の転送に割り当てた期間内でパケットの再送処理を実行する。これにより、周期転送用データＤ＿Ａ１が、図１４に示す如く通信バス４へ転送される。
【００１４】
そして、データ転送回路１ｘは、上記のステップＴ４に戻って、データＩＤ＝"Ｂ１"を含む非周期転送用ポインタ情報Ｐ＿Ｂ１を、図１４に示す如くシステムバス２を介してメモリ３から読み出す。データ転送回路１ｘは、上記のステップＴ５に進んで、読み出したポインタ情報Ｐ＿Ｂ１を内部記憶領域に上書きする。
【００１５】
そして、データ転送回路１ｘは、上記のステップＴ６に進んで、ポインタ情報Ｐ＿Ｂ１を解析する。今、非周期転送用データＤ＿Ｂ１の転送に割り当てた期間内では、データＤ＿Ｂ１全体を転送できないこととする。この場合、データ転送回路１ｘは、データ転送長としてデータＤ＿Ｂ１の一部に相当するデータ長を決定する。
【００１６】
そして、データ転送回路１ｘは、上記のステップＴ７に進んで、ポインタ情報Ｐ＿Ｂ１と決定したデータ転送長とに基づき、データＤ＿Ｂ１の転送処理を実行する。
【００１７】
これにより、図１４に示すように、非周期転送用データＤ＿Ｂ１の一部が、システムバス２を介してデータ転送回路１ｘへ転送された後、通信バス４へ転送される。
【００１８】
なお、図示を省略するが、データ転送回路１ｘは、メモリ３上のポインタ情報Ｐ＿Ｂ１が示すアドレス２０１を、データＤ＿Ｂ１の残りのデータに対応するアドレスで上書きする。また、データ転送回路１ｘは、メモリ３上のポインタ情報Ｐ＿Ｂ１が示すデータ長２０２を、データＤ＿Ｂ１の残りのデータのデータ長で上書きする。すなわち、システムバス２には、データ転送回路１ｘからメモリ３に向かってポインタ情報Ｐ＿Ｂ１が転送される。
【００１９】
また、データ転送回路１ｘは、上記のステップＴ３で、上記のステップＴ２でスケジュールした全てのデータＩＤ＝"Ａ１"及び"Ｂ１"についての転送が終了したと判定し、以てフレームＦ１における転送を終了する。
【００２０】
この後、図１４に示す如くフレームＦ２が開始されると、データ転送回路１ｘは、上記のステップＴ２で、周期転送用データＤ＿Ａ２のデータＩＤ＝"Ａ２"を新たに選択すると共に、非周期転送用データＤ＿Ｂ１のデータＩＤ＝"Ｂ１"を引き続き選択する。そして、データ転送回路１ｘは、データＩＤ＝"Ａ２"及び"Ｂ１"について、上記のステップＴ４〜Ｔ７に示した処理をそれぞれ実行する。
【００２１】
まず、データ転送回路１ｘは、データＩＤ＝"Ａ２"を含む周期転送用ポインタ情報Ｐ＿Ａ２を、図１４に示す如くシステムバス２を介してメモリ３から読み出す。データ転送回路１ｘは、読み出したポインタ情報Ｐ＿Ａ２を内部記憶領域に上書きする。
【００２２】
そして、データ転送回路１ｘは、ポインタ情報Ｐ＿Ａ２を解析し、以てデータ転送長として、ポインタ情報Ｐ＿Ａ２が示すデータ長２０２を決定する。データ転送回路１ｘは、ポインタ情報Ｐ＿Ａ２が示すアドレス２０１からデータ転送長分のデータを読み出す。これにより、周期転送用データＤ＿Ａ２が、図１４に示す如くシステムバス２を介して、データ転送回路１ｘへ転送される。
【００２３】
そして、データ転送回路１ｘは、読み出した周期転送用データＤ＿Ａ２を、図１４に示す如く通信バス４へ転送する。
【００２４】
そして、データ転送回路１ｘは、データＩＤ＝"Ｂ１"を含む非周期転送用ポインタ情報Ｐ＿Ｂ１を、図１４に示す如くシステムバス２を介してメモリ３から読み出す。データ転送回路１ｘは、読み出したポインタ情報Ｐ＿Ｂ１を内部記憶領域に上書きする。
【００２５】
そして、データ転送回路１ｘは、ポインタ情報Ｐ＿Ｂ１を解析する。今、非周期転送用データＤ＿Ｂ１の転送に割り当てた期間内で、非周期転送用データＤ＿Ｂ１の残りのデータ全体を転送できることとする。この場合、データ転送回路１ｘは、データ転送長として、非周期転送用データＤ＿Ｂ１の残りのデータ長(すなわち、ポインタ情報Ｐ＿Ｂ１が示すデータ長２０２)を決定する。データ転送回路１ｘは、ポインタ情報Ｐ＿Ｂ１が示すアドレス２０１からデータ転送長分のデータを読み出す。これにより、周期転送用データＤ＿Ｂ１の残りのデータが、図１４に示す如くシステムバス２を介して、データ転送回路１ｘへ転送される。
【００２６】
そして、データ転送回路１ｘは、読み出した周期転送用データＤ＿Ｂ１の残りのデータを、図１４に示す如く通信バス４へ転送する。
【先行技術文献】
【特許文献】
【００２７】
【特許文献１】特開２００２−２２２１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【００２８】
近年、通信バスに適用される通信規格においては、データ転送レート(すなわち、データ通信レート)の高速化が要求されている。
【００２９】
しかしながら、上記のデータ転送回路１ｘには、このような要求への対応が困難であるという課題があった。これは、メモリからのポインタ情報の読出に多くの時間を要し、その読出期間が通信バスへのデータ転送が行われないアイドル期間となってしまうためである。また、システムバスは他の回路によっても使用される。このため、システムバスの使用権が競合した場合には、ポインタ情報の読出期間(すなわち、通信バスのアイドル期間)が更に長くなってしまう。
【００３０】
なお、参考例として、特許文献１には、複数のデータの転送先領域(メモリ中のページ)が連続した領域である場合に、当該複数のデータを一括して転送し、データ転送先の設定に関する処理時間を短縮するデータ転送装置が記載されている。しかしながら、このデータ転送装置は、メモリからのポインタ情報の読出期間を短縮するものでは無く、上記の課題に何ら対処できない。
【課題を解決するための手段】
【００３１】
本発明の一態様に係るデータ転送回路は、メモリに記憶されるデータを通信路へ転送する制御部と、前記通信路へのデータ転送周期に同期して発生する第１のデータを前記メモリから読み出すための、第１のポインタ情報を格納する第１の格納領域と、前記データ転送周期とは非同期に発生する第２のデータを前記メモリから読み出すための、第２のポインタ情報を格納する第２の格納領域とを備える。前記制御部は、一のデータ転送周期で、前記メモリから読み出した前記第１及び第２のポインタ情報を前記第１及び第２の格納領域にそれぞれ格納すると共に、前記第１及び第２のポインタ情報をそれぞれ参照して前記メモリから読み出した前記第１及び第２のデータを前記通信路へ順次転送し、前記第２のデータの転送に際して、前記第２のポインタ情報が示すデータ長分の転送を完了できなかった場合、前記データ長を残りのデータのデータ長に更新すると共に、前記第２のポインタ情報が示すアドレスを前記残りのデータの前記メモリ上のアドレスに更新し、次のデータ転送周期で、前記第２のポインタ情報を参照して前記残りのデータを前記メモリから読み出し、前記通信路へ転送する。
【００３２】
また、本発明の一態様に係るデータ転送方法は、メモリに記憶されるデータを通信路へ転送するデータ転送方法を提供する。このデータ転送方法は、前記通信路への一のデータ転送周期で、第１及び第２のポインタ情報を前記メモリから読み出して保持すると共に、前記第１及び第２のポインタ情報をそれぞれ参照して、前記一のデータ転送周期に同期して発生する第１のデータ、及び前記一のデータ転送周期とは非同期に発生する第２のデータを前記メモリから読み出し、前記通信路へ順次転送し、前記第２のデータの転送に際して、前記第２のポインタ情報が示すデータ長分の転送を完了できなかった場合、前記データ長を残りのデータのデータ長に更新すると共に、前記第２のポインタ情報が示すアドレスを前記残りのデータの前記メモリ上のアドレスに更新し、次のデータ転送周期で、前記第２のポインタ情報を参照して前記残りのデータを前記メモリから読み出し、前記通信路へ転送することを含む。
【００３３】
すなわち、本発明では、メモリからの非周期転送用ポインタ情報の読出回数を低減することが可能である。このため、非周期転送用ポインタ情報の読出期間を、非周期転送用データの読出期間(すなわち、通信路へのデータ転送期間)として割り当てることが可能である。換言すると、非周期転送用ポインタ情報の読出期間を、通信路へのデータ転送期間に転換することが可能である。
【発明の効果】
【００３４】
本発明によれば、通信路のデータ転送レートを、上記のデータ転送回路１ｘと比較して大幅に向上させることができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態１及び２に共通のデータ転送回路の構成例を示したブロック図である。
【図２】本発明の実施の形態１に係るデータ転送回路の全体動作例を示したフローチャート図である。
【図３】本発明の実施の形態１に係るデータ転送回路における、フレーム転送例を示したタイムチャート図である。
【図４】本発明の実施の形態１に係るデータ転送回路における、ポインタ情報リード省略判断処理例を示したフローチャート図である。
【図５】本発明の実施の形態１に係るデータ転送回路における、ポインタ情報更新処理例を示したフローチャート図である。
【図６】本発明の実施の形態２に係るデータ転送回路の効果を説明するためのタイムチャート図である。
【図７】本発明の実施の形態２に係るデータ転送回路の全体動作例を示したフローチャート図である。
【図８】本発明の実施の形態２に係るデータ転送回路における、フレーム転送例を示したタイムチャート図である。
【図９】本発明の実施の形態２に係るデータ転送回路における、ポインタ情報更新処理例を示したフローチャート図である。
【図１０】本発明の実施の形態２に係るデータ転送回路における、ポインタ情報リード省略判断処理例を示したフローチャート図である。
【図１１】一般的なデータ転送回路を適用する通信システムの構成例を示したブロック図である。
【図１２】一般的なポインタ情報の構成例を示した図である。
【図１３】一般的なデータ転送回路の動作例を示したフローチャート図である。
【図１４】一般的なデータ転送回路におけるフレーム転送例を示したタイムチャート図である。
【発明を実施するための形態】
【００３６】
以下、本発明に係るデータ転送回路の実施の形態１及び２を、図１〜図１０を参照して説明する。なお、各図面において同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００３７】
[実施の形態１]
図１に示すように、本実施の形態に係るデータ転送回路１は、制御部１０と、周期転送用ポインタ情報格納領域２０と、非周期転送用ポインタ情報格納領域３０とを備えている。この内、格納領域２０は、メモリ３から読み出した周期転送用ポインタ情報Ｐ＿Ａを格納するための領域ある。一方、格納領域３０は、メモリ３から読み出した非周期転送用ポインタ情報Ｐ＿Ｂを格納するための領域である。
【００３８】
また、制御部１０は、大略、メモリ３からシステムバス２を介して読み出した周期転送用データＤ＿Ａ及び非周期転送用データＤ＿Ｂを、通信バス４へ順次転送する機能を有する。具体的には、制御部１０は、システムバスＩ／Ｆ １１と、通信バスＩ／Ｆ １２と、データ転送スケジューラ１３と、ポイント情報リード制御部１４と、データ転送処理部１５と、ポインタ情報リード省略判断部１６とを含む。
【００３９】
この内、システムバスＩ／Ｆ １１は、システムバス２とのインタフェースとして機能する。一方、通信バスＩ／Ｆ １２は、通信バス４とのインタフェースとして機能する。なお、データ転送回路１は、通信バス４に限らず、無線伝送路へデータを転送することもできる。この場合、通信バスＩ／Ｆ １２に代えて、データを変調して無線信号に変換する無線Ｉ／Ｆを設ければ良い。
【００４０】
また、データ転送スケジューラ１３は、データの転送順番をスケジューリングする。具体的には、データ転送スケジューラ１３は、周期転送の対象とするデータＩＤと非周期転送の対象とするデータＩＤとを決定し、ポインタ情報リード制御部１４及びデータ転送処理部１５に対してそれぞれ指示する。また、データ転送スケジューラ１３は、データ転送処理部１５から、或るフレームにおいて或る非周期転送用データの一部を転送した旨の通知を受けた場合、次のフレームにおいてその非周期転送用データを継続して転送対象とする。
【００４１】
また、ポインタ情報リード制御部１４は、システムバスＩ／Ｆ１１を介して、メモリ３から周期転送用ポインタ情報Ｐ＿Ａを読み出し、格納領域２０に格納する。また、ポインタ情報リード制御部１４は、システムバスＩ／Ｆ１１を介して、メモリ３から非周期転送用ポインタ情報Ｐ＿Ｂを読み出し、格納領域３０に格納する。さらに、ポインタ情報リード制御部１４は、ポインタ情報リード省略判断部１６に対して、非周期転送用ポインタ情報Ｐ＿Ｂのメモリ３からの読出を省略可能か否か問い合わせる。読出が省略可能である旨の応答を受けた場合、ポインタ情報リード制御部１４は、非周期転送用ポインタ情報Ｐ＿Ｂの読出を実行しない。
【００４２】
また、データ転送処理部１５は、周期転送に際して、格納領域２０から周期転送用ポインタ情報Ｐ＿Ａを読み出すと共に、ポインタ情報Ｐ＿Ａの解析処理、及びその解析結果に基づく周期転送用データＤ＿Ａの転送処理を実行する。また、データ転送処理部１５は、非周期転送に際して、格納領域３０から非周期転送用ポインタ情報Ｐ＿Ｂを読み出すと共に、ポインタ情報Ｐ＿Ｂの解析処理、及びその解析結果に基づく周期転送用データＤ＿Ｂの転送処理を実行する。さらに、データ転送処理部１５は、非周期転送用データＤ＿Ｂの一部を転送した場合、その旨をデータ転送スケジューラ１３へ通知する。加えて、非周期転送用データＤ＿Ｂの一部を転送した場合には、データ転送処理部１５は、ポインタ情報Ｐ＿Ｂが示すデータ長２０２を、非周期転送用データＤ＿Ｂの残りのデータのデータ長に更新すると共に、ポインタ情報Ｐ＿Ｂが示すアドレス２０１を、残りのデータに対応するメモリ３上のアドレスに更新する。すなわち、データ転送処理部１５は、格納領域３０上でポインタ情報Ｐ＿Ｂを更新し、メモリ３への書き戻しは実行しない。
【００４３】
さらに、ポインタ情報リード省略判断部１６は、ポインタ情報リード制御部１４から問合せを受けた場合、データ転送処理部１５により格納領域３０上でのポインタ情報Ｐ＿Ｂの更新処理が実行されたか否かを、後述する如く判定する。ポインタ情報Ｐ＿Ｂの更新処理が実行されたと判定した場合、ポインタ情報リード省略判断部１６は、ポインタ情報リード制御部１４に対して、ポインタ情報Ｐ＿Ｂのメモリ３からの読出が省略可能である旨を応答する。一方、ポインタ情報Ｐ＿Ｂの更新処理が実行されなかったと判定した場合、ポインタ情報リード省略判断部１６は、ポインタ情報リード制御部１４に対して、ポインタ情報Ｐ＿Ｂのメモリ３からの読出が省略不可である旨を応答する。
【００４４】
次に、本実施の形態の動作例を、図２〜図５を参照して詳細に説明する。
【００４５】
図２に示すように、データ転送回路１内のデータ転送スケジューラ１３は、フレームの開始を待機する(ステップＳ１)。
【００４６】
フレームが開始されると、データ転送スケジューラ１３は、データの転送順番をスケジューリングする(ステップＳ２)。この時、データ転送スケジューラ１３は、図１１に示す上記のデータ転送回路１ｘと同様、フレーム開始直後の期間を周期転送に割り当て、残りの期間を非周期転送に割り当てる。具体的には、メモリ３に複数の周期転送用データＤ＿Ａが記憶されている場合、データ転送スケジューラ１３は、例えばデータＩＤ ２０４(ＩＤ値)の昇順に１つの周期転送用データＤ＿Ａを選択する。一方、メモリ３に複数の非周期転送用データＤ＿Ｂが記憶されている場合、データ転送スケジューラ１３は、例えばデータＩＤ ２０４の昇順に１つの非周期転送用データＤ＿Ｂを選択する。但し、継続フラグ１０１が"ＯＮ"に設定されている場合には、データ転送スケジューラ１３は、前のフレームにおいて選択した非周期転送用データを継続して転送対象とする。
【００４７】
ここで、継続フラグ１０１は、格納領域３０中の非周期転送用ポインタ情報Ｐ＿Ｂを継続して使用可能か否か(すなわち、メモリ３からの非周期転送用ポインタ情報Ｐ＿Ｂの読出を省略可能か否か)を示すフラグであり、後述する如く、データ転送処理部１５が非周期転送用データＤ＿Ｂの一部を転送した場合に"ＯＮ(使用可)"に設定される。また、継続フラグ１０１は、後述するステップＳ１１で"ＯＦＦ(使用不可)"に設定される。なお、初期状態において、継続フラグ１０１は"ＯＦＦ"に設定されていることとする。また、以降の説明においては、継続フラグ１０１を"ＯＮ"に設定する処理を"セット"と呼称し、継続フラグ１０１を"ＯＦＦ"に設定する処理を"クリア"と呼称することがある。
【００４８】
そして、上記のステップＳ２でスケジュールした全てのデータＩＤについての転送が終了する迄(ステップＳ３)、データ転送回路１は、下記のステップＳ４〜Ｓ１１に示す処理を繰り返し実行する。
【００４９】
今、図３に示すフレームＦ１における転送に際し、データ転送スケジューラ１３が、周期転送用データＤ＿Ａ１のデータＩＤ＝"Ａ１"と、非周期転送用データＤ＿Ｂ１のデータＩＤ＝"Ｂ１"とを選択したとする。この場合、まずポインタ情報リード制御部１４は、ポインタ情報リード省略判断部１６に対し、データＤ＿Ａ１＝"Ａ１"についてのポインタ情報のメモリ３からの読出が省略可能か否か問い合わせる。
【００５０】
ポインタ情報リード省略判断部１６は、図４に示すポインタ情報リード省略判断処理を実行する(ステップＳ４)。具体的には、ポインタ情報リード省略判断部１６は、継続フラグ１０１がセットされているか否かを判定する(ステップＳ２１)。初期状態において、継続フラグ１０１はクリアされているため、ポインタ情報リード省略判断部１６は、ポインタ情報の読出を省略不可と判定し、その旨をポインタ情報リード制御部１４へ応答する(ステップＳ２２)。
【００５１】
図２に戻って、ポインタ情報リード省略判断部１６からポインタ情報の読出が省略不可である旨の応答を受けた場合(ステップＳ５)、ポインタ情報リード制御部１４は、データＩＤ＝"Ａ１"を含む周期転送用ポインタ情報Ｐ＿Ａ１を、図３に示す如くシステムバス２を介してメモリ３から読み出す(ステップＳ６)。また、ポインタ情報リード制御部１４は、読み出したポインタ情報Ｐ＿Ａ１を、格納領域２０に格納する(ステップＳ７)。
【００５２】
これを検知したデータ転送処理部１５は、格納領域２０からポインタ情報Ｐ＿Ａ１を読み出して解析する(ステップＳ８)。具体的には、データ転送処理部１５は、ポインタ情報Ｐ＿Ａ１が示すデータ長２０２を参照し、データ転送長を決定する。この例では、周期転送用データＤ＿Ａ１全体を転送可能な期間が割り当てられており、データ転送長としてデータ長２０２が決定されることとする。
【００５３】
そして、データ転送処理部１５は、ポインタ情報Ｐ＿Ａ１と上記のステップＳ８で決定したデータ転送長とに基づき、周期転送用データＤ＿Ａ１の転送処理を実行する(ステップＳ９)。
【００５４】
具体的には、まずデータ転送処理部１５は、ポインタ情報Ｐ＿Ａ１が示すアドレス２０１からデータ転送長分のデータを読み出す。これにより、周期転送用データＤ＿Ａ１が、図３に示す如くシステムバス２を介して、データ転送処理部１５へ転送される。
【００５５】
次いで、データ転送処理部１５は、読み出した周期転送用データＤ＿Ａ１を、図３に示す如く通信バス４へ転送する。より詳細には、データ転送処理部１５は、上記のデータ転送回路１ｘと同様、データＤ＿Ａ１を、通信バス４に適用される通信規格に則したパケット長単位に分割すると共に、各パケットにバケット番号(シーケンス番号)を付加して通信バス４へ転送する。転送先デバイスから肯定応答(ハンドシェイクパケット)を受信すると、データ転送処理部１５は、データＤ＿Ａ１の転送に成功したと判断する。一方、転送先デバイスから否定応答(受信失敗、再送要求、停止要求等)を受信すると、データ転送処理部１５は、データＤ＿Ａ１の転送に失敗したと判断し、データＤ＿Ａ１の転送に割り当てた期間内でパケットの再送処理を実行する。これにより、周期転送用データＤ＿Ａ１が、図３に示す如く通信バス４へ転送される。
【００５６】
そして、データ転送処理部１５は、図５に示すポインタ情報更新処理を実行する(ステップＳ１０)。具体的には、データ転送処理部１５は、ポインタ情報Ｐ＿Ａ１が示す転送タイプ２０３に"非周期転送"が設定されているか否かを判定する(ステップＳ３１)。上述した通り、周期転送用ポインタ情報には転送タイプ２０３＝"周期転送"が設定されているため、データ転送処理部１５は、以降のステップＳ３２〜Ｓ３４を実行せず、ポインタ情報更新処理を終了する。
【００５７】
図２に戻って、次に、ポインタ情報リード制御部１４は、ポインタ情報リード省略判断部１６に対し、データＩＤ＝"Ｂ１"についてのポインタ情報のメモリ３からの読出が省略可能か否か問い合わせる。
【００５８】
ポインタ情報リード省略判断部１６は、上記のステップＳ４で、ポインタ情報リード省略判断処理を再び実行する。具体的には、ポインタ情報リード省略判断部１６は、上記のステップＳ２１で、継続フラグ１０１がセットされているか否かを再び判定する。この結果、継続フラグ１０１はクリアされたままであるため、ポインタ情報リード省略判断部１６は、上記のステップＳ２２で、ポインタ情報の読出を省略不可と判定し、その旨をポインタ情報リード制御部１４へ応答する。
【００５９】
これを受けたポインタ情報リード制御部１４は、上記のステップＳ６で、データＩＤ＝"Ｂ１"を含む非周期転送用ポインタ情報Ｐ＿Ｂ１を、図３に示す如くシステムバス２を介してメモリ３から読み出す。また、ポインタ情報リード制御部１４は、上記のステップＳ７で、読み出したポインタ情報Ｐ＿Ｂ１を格納領域３０に格納する。
【００６０】
これを検知したデータ転送処理部１５は、上記のステップＳ８で、格納領域３０からポインタ情報Ｐ＿Ｂ１を読み出して解析する。今、非周期転送用データＤ＿Ｂ１の転送に割り当てた期間内では、データＤ＿Ｂ１全体を転送できないこととする。この場合、データ転送処理部１５は、データ転送長としてデータＤ＿Ｂ１の一部に相当するデータ長を決定する。
【００６１】
そして、データ転送処理部１５は、上記のステップＳ９で、ポインタ情報Ｐ＿Ｂ１と決定したデータ転送長とに基づき、データＤ＿Ｂ１の転送処理を実行する。これにより、図３に示すように、非周期転送用データＤ＿Ｂ１の一部が、システムバス２を介してデータ転送処理部１５へ転送された後、通信バス４へ転送される。
【００６２】
そして、データ転送処理部１５は、上記のステップＳ１０で、ポインタ情報更新処理を再び実行する。データ転送処理部１５は、図５に示した上記のステップＳ３１で、ポインタ情報Ｐ＿Ｂ１が示す転送タイプ２０３に"非周期転送"が設定されているか否かを判定する。上述した通り、非周期転送用ポインタ情報には転送タイプ２０３＝"非周期転送"が設定されているため、データ転送処理部１５は、以降のステップＳ３２〜Ｓ３４を実行する。
【００６３】
具体的には、非周期転送用データＤ＿Ｂ１に残りのデータがある場合(再送処理を実行しても転送に失敗した場合を含む)(ステップＳ３２)、データ転送処理部１５は、継続フラグ１０１をセットする(ステップＳ３３)。また、データ転送処理部１５は、格納領域３０上で、ポインタ情報Ｐ＿Ｂ１が示すアドレス２０１を、残りのデータに対応するメモリ３上のアドレスに更新すると共に、ポインタ情報Ｐ＿Ｂ１が示すデータ長２０２を、残りのデータ長に更新する(ステップＳ３４)。
【００６４】
また、データ転送回路１は、上記のステップＳ３で、上記のステップＳ２でスケジュールした全てのデータＩＤ＝"Ａ１"及び"Ｂ１"についての転送が終了したと判定し、以てフレームＦ１における転送を終了する。
【００６５】
この後、図３に示す如くフレームＦ２が開始されると、データ転送スケジューラ１３は、上記のステップＳ２で、周期転送用データＤ＿Ａ２のデータＩＤ＝"Ａ２"を新たに選択する。一方、継続フラグ１０１がセットされているため、データ転送スケジューラ１３は、前のフレームＦ１において用いた非周期転送用データＤ＿Ｂ１のデータＩＤ＝"Ｂ１"を引き続き選択する。
【００６６】
そして、データ転送回路１は、データＩＤ＝"Ａ２"及び"Ｂ１"について、上記のステップＳ４〜Ｓ１１に示した処理をそれぞれ実行する。
【００６７】
まず、ポインタ情報リード省略判断部１６は、データＩＤ＝"Ａ２"について、ポインタ情報リード省略判断処理を実行する。ポインタ情報リード省略判断部１６は、図４に示した上記のステップＳ２１で、継続フラグ１０１がセットされているか否かを判定する。今、継続フラグ１０１がセットされているため、ポインタ情報リード省略判断部１６は、以降のステップＳ２３及びＳ２４を実行する。
【００６８】
具体的には、ポインタ情報リード省略判断部１６は、非周期転送を実行中であるか否かを判定する(ステップＳ２３)。今、周期転送用データＤ＿Ａ２の転送中であるため、ポインタ情報リード省略判断部１６は、非周期転送を実行中で無いと判定し、上記のステップＳ２２に進んで、ポインタ情報の読出が省略不可である旨をポインタ情報リード制御部１４へ応答する。
【００６９】
これを受けたポインタ情報リード制御部１４は、データＩＤ＝"Ａ２"を含む周期転送用ポインタ情報Ｐ＿Ａ２を、図３に示す如くシステムバス２を介してメモリ３から読み出す。また、ポインタ情報リード制御部１４は、読み出したポインタ情報Ｐ＿Ａ２を格納領域２０に格納(上書き)する。
【００７０】
これを検知したデータ転送処理部１５は、ポインタ情報Ｐ＿Ａ２を解析し、以てデータ転送長として、ポインタ情報Ｐ＿Ａ２が示すデータ長２０２を決定する。データ転送処理部１５は、ポインタ情報Ｐ＿Ａ２が示すアドレス２０１からデータ転送長分のデータを読み出す。これにより、周期転送用データＤ＿Ａ２が、図３に示す如くシステムバス２を介して、データ転送処理部１５へ転送される。
【００７１】
そして、データ転送処理部１５は、読み出した周期転送用データＤ＿Ａ２を、図３に示す如く通信バス４へ転送する。
【００７２】
そして、データ転送処理部１５は、図５に示した上記のステップＳ３１で、ポインタ情報Ｐ＿Ａ２が示す転送タイプ２０３に"非周期転送"が設定されているか否かを判定する。この時、転送タイプ２０３には"周期転送"が設定されているため、データ転送処理部１５は、上記のステップＳ３２〜Ｓ３４を実行せず、ポインタ情報更新処理を終了する。
【００７３】
次に、ポインタ情報リード省略判断部１６は、データＩＤ＝"Ｂ１"について、ポインタ情報リード省略判断処理を実行する。ポインタ情報リード省略判断部１６は、図４に示した上記のステップＳ２１で、継続フラグ１０１がセットされているか否かを判定する。今、継続フラグ１０１がセットされているため、ポインタ情報リード省略判断部１６は、上記のステップＳ２３で、非周期転送を実行中であるか否かを判定する。今、非周期転送用データＤ＿Ｂ１の転送中であるため、ポインタ情報リード省略判断部１６は、非周期転送を実行中であると判定し、ポインタ情報の読出が省略可能である旨をポインタ情報リード制御部１４へ応答する(ステップ２４)。また、ポインタ情報リード省略判断部１６は、図２に示す如く、継続フラグ１０１をクリアする(ステップＳ１１)。
【００７４】
ポインタ情報リード制御部１４は、上記のステップＳ６及びＳ７をスキップし、以てメモリ３からの非周期転送用ポインタ情報Ｐ＿Ｂ１の読出を省略する。
【００７５】
一方、データ転送処理部１５は、ポインタ情報Ｐ＿Ｂ１を解析し、以てデータ転送長として、ポインタ情報Ｐ＿Ｂ１が示すデータ長２０２を決定する。データ転送処理部１５は、ポインタ情報Ｐ＿Ｂ１が示すアドレス２０１からデータ転送長分のデータを読み出す。これにより、非周期転送用データＤ＿Ｂ１の残りのデータが、図３に示す如くシステムバス２を介して、データ転送処理部１５へ転送される。
【００７６】
そして、データ転送処理部１５は、読み出した非周期転送用データＤ＿Ｂ１の残りのデータを、図３に示す如く通信バス４へ転送する。この後、データ転送処理部１５は、図５に示した上記のステップＳ３２で、データＤ＿Ｂ１に残りのデータが無いと判定し、以て継続フラグ１０１＝"ＯＦＦ"が維持される。
【００７７】
このように、本実施の形態においては、メモリからの非周期転送用ポインタ情報の読出回数を低減でき、以て非周期転送用データの通信バスへの転送期間をより長く割り当てることができる(すなわち、通信バスのデータ転送レートを向上させることができる)。この効果は、図３に格子模様で示す、フレームＦ２における上記のデータ転送回路１ｘによる非周期転送用データＤ＿Ｂ１の転送期間と、本実施の形態に係るデータ転送回路１による非周期転送用データＤ＿Ｂ１の転送期間とを比較してみると、より明確に理解されるであろう。
【００７８】
[実施の形態２]
本実施の形態に係るデータ転送回路は、図１に示したデータ転送回路１と同様に構成できる。但し、本実施の形態に係るデータ転送回路は、図６に示す、一般的なデータ転送回路１ｘが有する他の問題に対処するため、図７〜図１０に示す如く動作する点で、上記の実施の形態１と異なる。
【００７９】
まず、図６を参照して、一般的なデータ転送回路１ｘが有する他の問題について説明する。図６に示すように、データ転送のユースケースとして、複数(図示の例では２個)の非周期転送用データＤ＿Ｂ１及びＤ＿Ｂ２を同一フレーム内で転送する場合が挙げられる。この場合、上記のデータ転送回路１ｘには、フレーム毎に且つデータ毎にメモリからのポインタ情報の読出が行われることに起因して、通信バス４のデータ転送レートが低下してしまうという問題もあった。
【００８０】
次に、上記の問題に対処する本実施の形態の動作例を、図７〜図１０を参照して詳細に説明する。
【００８１】
図７に示すように、データ転送回路１内のデータ転送スケジューラ１３は、上記のステップＳ１で、フレームの開始を待機する。
【００８２】
フレームが開始されると、データ転送スケジューラ１３は、データの転送順番をスケジューリングする(ステップＳ１２)。この時、データ転送スケジューラ１３は、上記の実施の形態１と同様にフレーム開始直後の期間を周期転送に割り当てる一方、上記の実施の形態１とは異なり、残りの期間を複数回の非周期転送に割り当てる。具体的には、データ転送スケジューラ１３は、例えばデータＩＤ ２０４の昇順に複数の非周期転送用データＤ＿Ｂを選択する。但し、継続フラグ１０１がセットされ、且つ保持ＩＤ １０２に無効でないデータＩＤが設定されている場合には、データ転送スケジューラ１３は、保持ＩＤ １０２に対応する非周期転送用データを、他の非周期転送用データに先立って優先的に非周期転送の対象とする。
【００８３】
ここで、保持ＩＤ １０２には、後述する如く、非周期転送用ポインタ情報Ｐ＿Ｂに含まれるデータＩＤ２０４が設定される。また、保持ＩＤ １０２は、データ転送処理部１５が非周期転送用データＤ＿Ｂの一部を転送する度毎に更新される。さらに、保持ＩＤ １０２は、後述するステップＳ１３又は図９に示すステップＳ２８で"無効値"に初期化される。"無効値"とは、非周期転送用ポインタ情報Ｐ＿Ｂには含まれ得ないＩＤ値のことである。なお、初期状態において、保持ＩＤ １０２は"無効値"に設定されていることとする。また、以降の説明においては、保持ＩＤ １０２を"無効値"に初期化する処理を"クリア"と呼称することがある。
【００８４】
そして、データ転送回路１は、上記のステップＳ３で、上記のステップＳ１２でスケジュールした全てのデータＩＤについての転送が終了したと判定する迄、上記のステップＳ４〜Ｓ１１、及び下記のＳ１３に示す処理を繰り返し実行する。但し、ポインタ情報リード省略判断処理とポインタ情報処理の処理内容が、後述する如く、上記の実施の形態１から変更されている。
【００８５】
今、図８に示すフレームＦ１における転送に際し、データ転送スケジューラ１３が、周期転送用データＤ＿Ａ１のデータＩＤ＝"Ａ１"と、非周期転送用データＤ＿Ｂ１及びＤ＿Ｂ２のデータＩＤ＝"Ｂ１"及び"Ｂ２"とを選択したとする。この場合、まずポインタ情報リード制御部１４は、ポインタ情報リード省略判断部１６に対し、データＤ＿Ａ１＝"Ａ１"についてのポインタ情報のメモリ３からの読出が省略可能か否か問い合わせる。
【００８６】
ポインタ情報リード省略判断部１６は、上記のステップＳ４で、図９に示すポインタ情報リード省略判断処理を実行する。具体的には、ポインタ情報リード省略判断部１６は、上記のステップＳ２１で、継続フラグ１０１がセットされているか否かを判定する。初期状態において、継続フラグ１０１はクリアされているため、ポインタ情報リード省略判断部１６は、上記のステップＳ２２で、ポインタ情報の読出を省略不可と判定し、その旨をポインタ情報リード制御部１４へ応答する。
【００８７】
図７に戻って、ポインタ情報リード制御部１４は、上記のステップＳ５で、ポインタ情報リード省略判断部１６からポインタ情報の読出が省略不可である旨の応答を受けると、上記のステップＳ６で、データＩＤ＝"Ａ１"を含む周期転送用ポインタ情報Ｐ＿Ａ１を、図８に示す如くシステムバス２を介してメモリ３から読み出し、上記のステップＳ７で、読み出したポインタ情報Ｐ＿Ａ１を格納領域２０に格納する。
【００８８】
これを検知したデータ転送処理部１５は、上記のステップＳ８で、格納領域２０からポインタ情報Ｐ＿Ａ１を読み出して解析し、以て上記の実施の形態１と同様、データ転送長としてポインタ情報Ｐ＿Ａ１が示すデータ長２０２を決定する。
【００８９】
そして、データ転送処理部１５は、上記のステップＳ９で、ポインタ情報Ｐ＿Ａ１と決定したデータ転送長とに基づき周期転送用データＤ＿Ａ１の転送処理を実行し、以て周期転送用データＤ＿Ａ１を、図８に示す如くシステムバス２を介してメモリ３から読み出し、通信バス４へ転送する。
【００９０】
そして、データ転送処理部１５は、上記のステップＳ１０で、図１０に示すポインタ情報更新処理を実行する。具体的には、データ転送処理部１５は、上記のステップＳ３１で、ポインタ情報Ｐ＿Ａ１が示す転送タイプ２０３に"非周期転送"が設定されているか否かを判定する。今、転送タイプ２０３には"周期転送"が設定されているため、データ転送処理部１５は、以降のステップＳ３２〜Ｓ３５を実行せず、ポインタ情報更新処理を終了する。
【００９１】
図７に戻って、次に、ポインタ情報リード制御部１４は、ポインタ情報リード省略判断部１６に対し、データＩＤ＝"Ｂ１"についてのポインタ情報のメモリ３からの読出が省略可能か否か問い合わせる。
【００９２】
ポインタ情報リード省略判断部１６は、上記のステップＳ４で、ポインタ情報リード省略判断処理を再び実行する。具体的には、ポインタ情報リード省略判断部１６は、上記のステップＳ２１で、継続フラグ１０１がセットされているか否かを再び判定する。この結果、継続フラグ１０１はクリアされたままであるため、ポインタ情報リード省略判断部１６は、上記のステップＳ２２で、ポインタ情報の読出を省略不可と判定し、その旨をポインタ情報リード制御部１４へ応答する。
【００９３】
これを受けたポインタ情報リード制御部１４は、上記のステップＳ６で、データＩＤ＝"Ｂ１"を含む非周期転送用ポインタ情報Ｐ＿Ｂ１を、図８に示す如くシステムバス２を介してメモリ３から読み出すと共に、上記のステップＳ７で、読み出したポインタ情報Ｐ＿Ｂ１を格納領域３０に格納する。
【００９４】
これを検知したデータ転送処理部１５は、上記のステップＳ８で、格納領域３０からポインタ情報Ｐ＿Ｂ１を読み出して解析する。今、非周期転送用データＤ＿Ｂ１の転送に割り当てた期間内では、データＤ＿Ｂ１全体を転送できないこととする。この場合、データ転送処理部１５は、データ転送長としてデータＤ＿Ｂ１の一部に相当するデータ長を決定する。
【００９５】
そして、データ転送処理部１５は、上記のステップＳ９で、ポインタ情報Ｐ＿Ｂ１と決定したデータ転送長とに基づき、データＤ＿Ｂ１の転送処理を実行する。これにより、図８に示すように、非周期転送用データＤ＿Ｂ１の一部が、システムバス２を介してメモリ３から読み出され、通信バス４へ転送される。
【００９６】
そして、データ転送処理部１５は、上記のステップＳ１０で、ポインタ情報更新処理を再び実行する。データ転送処理部１５は、図１０に示した上記のステップＳ３１で、ポインタ情報Ｐ＿Ｂ１が示す転送タイプ２０３に"非周期転送"が設定されているか否かを判定する。今、転送タイプ２０３には"非周期転送"が設定されているため、データ転送処理部１５は、以降のステップＳ３２〜Ｓ３５を実行する。
【００９７】
具体的には、データＤ＿Ｂ１に残りのデータがあるため、データ転送処理部１５は、上記のステップＳ３３で、継続フラグ１０１をセットする。
【００９８】
次いで、データ転送処理部１５は、上記のステップＳ３４に進み、格納領域３０上で、ポインタ情報Ｐ＿Ｂ１が示すアドレス２０１を、残りのデータに対応するメモリ３上のアドレスに更新すると共に、ポインタ情報Ｐ＿Ｂ１が示すデータ長２０２を、残りのデータ長に更新する。
【００９９】
次いで、データ転送処理部１５は、保持ＩＤ １０２に、データＤ＿Ｂ１のデータＩＤ＝"Ｂ１"を設定する(ステップＳ３５)。
【０１００】
この後、ポインタ情報リード制御部１４は、ポインタ情報リード省略判断部１６に対し、データＩＤ＝"Ｂ２"についてのポインタ情報のメモリ３からの読出が省略可能か否か問い合わせる。
【０１０１】
ポインタ情報リード省略判断部１６は、上記のステップＳ４で、ポインタ情報リード省略判断処理を再び実行する。具体的には、ポインタ情報リード省略判断部１６は、図９に示した上記のステップＳ２１で、継続フラグ１０１がセットされているか否かを再び判定する。この結果、継続フラグ１０１がセットされているため、ポインタ情報リード省略判断部１６は、上記のステップＳ２３で、非周期転送を実行中であるか否かを判定する。今、非周期転送用データＤ＿Ｂ２の転送中であるため、ポインタ情報リード省略判断部１６は、非周期転送を実行中であると判定する。
【０１０２】
次いで、ポインタ情報リード省略判断部１６は、スケジュールされたデータＩＤと保持ＩＤ １０２とが一致するか否かを判定する(ステップＳ２５)。今、スケジュールされたデータＩＤ＝"Ｂ２"と保持ＩＤ １０２＝"Ｂ１"とが一致しないため、ポインタ情報リード省略判断部１６は、保持ＩＤ １０２に対応するメモリ３上の非周期転送用ポインタ情報Ｐ＿Ｂ１を、格納領域３０中のポインタ情報Ｐ＿Ｂ１で上書きする(ステップＳ２６)。また、ポインタ情報リード省略判断部１６は、継続フラグ１０１をクリアすると共に、保持ＩＤ １０２をクリアする(ステップＳ２７及びＳ２８)。さらに、ポインタ情報リード省略判断部１６は、上記のステップＳ２２に進んで、ポインタ情報の読出を省略不可と判定し、その旨をポインタ情報リード制御部１４へ応答する。
【０１０３】
これを受けたポインタ情報リード制御部１４は、上記のステップＳ６で、データＩＤ＝"Ｂ２"を含む非周期転送用ポインタ情報Ｐ＿Ｂ２を、図８に示す如くシステムバス２を介してメモリ３から読み出すと共に、上記のステップＳ７で、読み出したポインタ情報Ｐ＿Ｂ２を格納領域３０に格納(上書き)する。
【０１０４】
これを検知したデータ転送処理部１５は、上記のステップＳ８で、格納領域３０からポインタ情報Ｐ＿Ｂ２を読み出して解析する。今、非周期転送用データＤ＿Ｂ２の転送に割り当てた期間内では、データＤ＿Ｂ２全体を転送できないこととする。この場合、データ転送処理部１５は、データ転送長としてデータＤ＿Ｂ２の一部に相当するデータ長を決定する。
【０１０５】
そして、データ転送処理部１５は、上記のステップＳ９で、ポインタ情報Ｐ＿Ｂ２と決定したデータ転送長とに基づき、データＤ＿Ｂ２の転送処理を実行する。これにより、図８に示すように、非周期転送用データＤ＿Ｂ２の一部が、システムバス２を介してメモリ３から読み出され、通信バス４へ転送される。
【０１０６】
そして、データ転送処理部１５は、上記のステップＳ１０で、ポインタ情報更新処理を再び実行する。データ転送処理部１５は、図１０に示した上記のステップＳ３１で、ポインタ情報Ｐ＿Ｂ２が示す転送タイプ２０３に"非周期転送"が設定されているか否かを判定する。今、転送タイプ２０３には"非周期転送"が設定されているため、データ転送処理部１５は、上記のステップＳ３２を経由して上記ステップＳ３３に進み、以て継続フラグ１０１をセットする。
【０１０７】
次いで、データ転送処理部１５は、上記のステップＳ３４に進み、格納領域３０上で、ポインタ情報Ｐ＿Ｂ２が示すアドレス２０１を、データＤ＿Ｂ２の残りのデータに対応するメモリ３上のアドレスに更新すると共に、ポインタ情報Ｐ＿Ｂ２が示すデータ長２０２を、データＤ＿Ｂ２の残りのデータ長に更新する。また、データ転送処理部１５は、上記のステップＳ３５で、保持ＩＤ １０２を、データＩＤ＝"Ｂ２"に更新する。
【０１０８】
これにより、次のフレームＦ２において、データＤ＿Ｂ２が、データＤ＿Ｂ１に先立って優先的に非周期転送の対象とされることとなる。
【０１０９】
この後、図８に示す如くフレームＦ２が開始されると、データ転送スケジューラ１３は、上記のステップＳ１２で、周期転送用データＤ＿Ａ２のデータＩＤ＝"Ａ２"を新たに選択する。一方、継続フラグ１０１がセットされているため、データ転送スケジューラ１３は、前のフレームＦ１において用いた非周期転送用データＤ＿Ｂ１及びＤ＿Ｂ２のデータＩＤ＝"Ｂ１"及び"Ｂ２"を引き続き選択する。また、保持ＩＤ １０２に"Ｂ２"が設定されているため、データ転送スケジューラ１３は、データＩＤ＝"Ｂ２"及び"Ｂ１"をこの順に選択する。
【０１１０】
そして、データ転送回路１は、データＩＤ＝"Ａ２"、"Ｂ２"、及び"Ｂ１"について、上記のステップＳ４〜Ｓ１１、及びＳ１３に示した処理をそれぞれ実行する。
【０１１１】
まず、ポインタ情報リード省略判断部１６は、データＩＤ＝"Ａ２"について、ポインタ情報リード省略判断処理を実行する。ポインタ情報リード省略判断部１６は、図９に示した上記のステップＳ２１で、継続フラグ１０１がセットされているか否かを判定する。今、継続フラグ１０１がセットされているため、ポインタ情報リード省略判断部１６は、上記のステップＳ２３に進んで、非周期転送を実行中であるか否かを判定する。今、周期転送用データＤ＿Ａ２の転送中であるため、ポインタ情報リード省略判断部１６は、非周期転送を実行中で無いと判定し、上記のステップＳ２２に進んで、ポインタ情報の読出が省略不可である旨をポインタ情報リード制御部１４へ応答する。
【０１１２】
これを受けたポインタ情報リード制御部１４は、データＩＤ＝"Ａ２"を含む周期転送用ポインタ情報Ｐ＿Ａ２を、図８に示す如くシステムバス２を介してメモリ３から読み出す。また、ポインタ情報リード制御部１４は、読み出したポインタ情報Ｐ＿Ａ２を格納領域２０に格納(上書き)する。
【０１１３】
これを検知したデータ転送処理部１５は、ポインタ情報Ｐ＿Ａ２を解析し、以てデータ転送長として、ポインタ情報Ｐ＿Ａ２が示すデータ長２０２を決定する。データ転送処理部１５は、ポインタ情報Ｐ＿Ａ２が示すアドレス２０１からデータ転送長分のデータを読み出す。これにより、周期転送用データＤ＿Ａ２が、図８に示す如くシステムバス２を介してメモリ３から読み出され、通信バス４へ転送される。
【０１１４】
そして、データ転送処理部１５は、図１０に示した上記のステップＳ３１で、ポインタ情報Ｐ＿Ａ２が示す転送タイプ２０３に"非周期転送"が設定されているか否かを判定する。この時、転送タイプ２０３には"周期転送"が設定されているため、データ転送処理部１５は、ポインタ情報更新処理を終了する。
【０１１５】
次に、ポインタ情報リード省略判断部１６は、データＩＤ＝"Ｂ２"について、ポインタ情報リード省略判断処理を実行する。ポインタ情報リード省略判断部１６は、図９に示した上記のステップＳ２１で、継続フラグ１０１がセットされているか否かを判定する。今、継続フラグ１０１がセットされているため、ポインタ情報リード省略判断部１６は、上記のステップＳ２３で、非周期転送を実行中であるか否かを判定する。今、非周期転送用データＤ＿Ｂ２の転送中であるため、ポインタ情報リード省略判断部１６は、非周期転送を実行中であると判定する。
【０１１６】
そして、ポインタ情報リード省略判断部１６は、上記のステップＳ２５で、スケジュールされたデータＩＤと保持ＩＤ １０２とが一致するか否かを判定する。今、スケジュールされたデータＩＤ＝"Ｂ２"と保持ＩＤ １０２＝"Ｂ２"とが一致するため、ポインタ情報リード省略判断部１６は、上記のステップＳ２４に進んで、ポインタ情報の読出を省略可能と判定し、その旨をポインタ情報リード制御部１４へ応答する。また、ポインタ情報リード省略判断部１６は、図７に示す上記のステップＳ１１で継続フラグ１０１をクリアすると共に、保持ＩＤ １０２をクリアする(ステップＳ１３)。
【０１１７】
ポインタ情報リード制御部１４は、上記のステップＳ６及びＳ７をスキップし、以てメモリ３からの非周期転送用ポインタ情報Ｐ＿Ｂ２の読出を省略する。
【０１１８】
一方、データ転送処理部１５は、ポインタ情報Ｐ＿Ｂ２を解析し、以てデータ転送長として、ポインタ情報Ｐ＿Ｂ２が示すデータ長２０２を決定する。データ転送処理部１５は、ポインタ情報Ｐ＿Ｂ２が示すアドレス２０１からデータ転送長分のデータを読み出す。これにより、非周期転送用データＤ＿Ｂ２の残りのデータが、図８に示す如くシステムバス２を介してメモリ３から読み出され、通信バス４へ転送される。この後、データ転送処理部１５は、図１０に示した上記のステップＳ３２で、データＤ＿Ｂ２に残りのデータが無いと判定し、以て継続フラグ１０１＝"ＯＦＦ"を維持する。
【０１１９】
次に、ポインタ情報リード省略判断部１６は、データＩＤ＝"Ｂ１"について、ポインタ情報リード省略判断処理を実行する。ポインタ情報リード省略判断部１６は、図９に示した上記のステップＳ２１で、継続フラグ１０１がセットされているか否かを判定する。今、継続フラグ１０１がクリアされているため、ポインタ情報リード省略判断部１６は、上記のステップＳ２２に進んで、ポインタ情報の読出が省略不可である旨をポインタ情報リード制御部１４へ応答する。
【０１２０】
これを受けたポインタ情報リード制御部１４は、データＩＤ＝"Ｂ１"を含む非周期転送用ポインタ情報Ｐ＿Ｂ１を、図８に示す如くシステムバス２を介してメモリ３から読み出す。また、ポインタ情報リード制御部１４は、読み出したポインタ情報Ｐ＿Ｂ１を格納領域３０に格納(上書き)する。
【０１２１】
これを検知したデータ転送処理部１５は、ポインタ情報Ｐ＿Ｂ１を解析し、以てデータ転送長として、ポインタ情報Ｐ＿Ｂ１が示すデータ長２０２を決定する。データ転送処理部１５は、ポインタ情報Ｐ＿Ｂ１が示すアドレス２０１からデータ転送長分のデータを読み出す。これにより、非周期転送用データＤ＿Ｂ１の残りのデータが、図８に示す如くシステムバス２を介してメモリ３から読み出され、通信バス４へ転送される。この後、データ転送処理部１５は、図１０に示した上記のステップＳ３２で、データＤ＿Ｂ１に残りのデータが無いと判定し、以て継続フラグ１０１＝"ＯＦＦ"を維持する。
【０１２２】
このように、本実施の形態においては、複数の非周期転送用データを同一フレーム内で転送する場合であっても、メモリからの非周期転送用ポインタ情報の読出回数を低減でき、以て通信バスのデータ転送レートを向上させることができる。この効果は、図８に格子模様で示す、フレームＦ２における上記のデータ転送回路１ｘによる非周期転送用データＤ＿Ｂ２の転送期間と、本実施の形態に係るデータ転送回路１による非周期転送用データＤ＿Ｂ２の転送期間とを比較してみると、より明確に理解されるであろう。また、各非周期転送用データを、滞り無く通信バスへ転送することができる。
【０１２３】
また、メモリに周期転送用データが記憶されていない場合(すなわち、周期転送用データの転送が不要である場合)、周期転送用ポインタ情報格納領域２０を非周期転送用ポインタ情報格納領域に転用し、以てメモリから２つの非周期転送用ポインタ情報を並列に読み出すようにしても良い。この場合、格納領域毎に継続フラグ及び保持ＩＤを設け、且つ格納領域毎に図７、図９、及び図１０と同様の処理を実行すれば、メモリからの非周期転送用ポインタ情報の読出回数を更に低減できる。具体的には、１つのフレーム内で、非周期転送用ポインタ情報の読出が２回分省略されることとなる。
【０１２４】
なお、上記の実施の形態によって本発明は限定されるものではなく、特許請求の範囲の記載に基づき、当業者によって種々の変更が可能なことは明らかである。
【符号の説明】
【０１２５】
１  データ転送回路
２  システムバス
３  メモリ
４  通信バス
１０  制御部
１１  システムバスＩ／Ｆ
１２  通信バスＩ／Ｆ
１３  データ転送スケジューラ
１４  ポインタ情報リード制御部
１５  データ転送処理部
１６  ポインタ情報リード省略判断部
２０  周期転送用ポインタ情報格納領域
３０  非周期転送用ポインタ情報格納領域
１０１  継続フラグ
１０２  保持ＩＤ
２０１  アドレス
２０２  データ長
２０３  転送タイプ
２０４  データＩＤ
Ｄ＿Ａ  周期転送用データ
Ｄ＿Ｂ  非周期転送用データ
Ｐ＿Ａ  周期転送用ポインタ情報
Ｐ＿Ｂ  非周期転送用ポインタ情報
【図１】
0005383564.tif 000002
【図２】
0005383564.tif 000003
【図３】
0005383564.tif 000004
【図４】
0005383564.tif 000005
【図５】
0005383564.tif 000006
【図６】
0005383564.tif 000007
【図７】
0005383564.tif 000008
【図８】
0005383564.tif 000009
【図９】
0005383564.tif 000010
【図１０】
0005383564.tif 000011
【図１１】
0005383564.tif 000012
【図１２】
0005383564.tif 000013
【図１３】
0005383564.tif 000014
【図１４】
0005383564.tif 000015