(57)【要約】【課題】データ転送装置及びデータ転送方法のバッファオーバーラン及びバッファアンダーランを抑制すること。【解決手段】データ処理装置１２は、入力されるパケットデータを、先入れ先出し方式で記憶するＦＩＦＯ記憶手段１２ａを備える。ＦＩＦＯ記憶手段１２ａは、記憶したパケットデータ量が閾値を超えたときに、記憶したパケットデータを出力する。また、入力されるパケットデータは、パケットデータ量の情報を含む。さらに、データ処理装置１２は、パケットデータ量と、ＦＩＦＯ記憶手段１２ａの記憶容量と、に基づいて、閾値を設定する閾値設定手段１２ｅを備える。【選択図】図１
2009282591.tif 000002
【特許請求の範囲】
【請求項１】
入力されるパケットデータを、先入れ先出し方式で記憶するＦＩＦＯ記憶手段を備え、
前記ＦＩＦＯ記憶手段は、前記記憶したパケットデータ量が閾値を超えたときに、該記憶したパケットデータを出力する、データ転送装置であって、
前記入力されるパケットデータは、パケットデータ量の情報を含み、
前記パケットデータ量と、前記ＦＩＦＯ記憶手段の記憶容量と、に基づいて、前記閾値を設定する閾値設定手段を備える、ことを特徴とするデータ転送装置。
【請求項２】
請求項１記載のデータ転送装置であって、
前記入力されるパケットデータは、前記ＦＩＦＯ記憶手段が記憶する際の、書込み速度の情報を含み、
前記パケットデータの書込み速度及びパケットデータ量と、前記閾値設定手段により設定された前記閾値と、に基づいて、前記ＦＩＦＯ記憶手段の読出し速度を設定する読出し速度設定手段を更に備える、ことを特徴とするデータ転送装置。
【請求項３】
請求項１記載のデータ転送装置であって、
前記閾値設定手段は、
前記入力されるパケットデータの前記パケットデータ量が、前記ＦＩＦＯ記憶手段の記憶容量よりも大きいとき、該記憶容量を所定比率にした前記閾値を設定し、
前記入力されるパケットデータの前記パケットデータ量が、前記ＦＩＦＯ記憶手段の記憶容量よりも小さいとき、前記パケットデータ量を所定比率にした前記閾値を設定する、ことを特徴とするデータ転送装置。
【請求項４】
入力されるパケットデータを、先入れ先出し方式で記憶するＦＩＦＯ記憶手段を備え、
前記ＦＩＦＯ記憶手段は、前記記憶したパケットデータ量が閾値を超えたときに、該記憶したパケットデータを出力し、
前記入力されるパケットデータは、パケットデータ量の情報を含む、データ転送方法であって、
前記パケットデータ量と、前記ＦＩＦＯ記憶手段の記憶容量と、に基づいて、前記閾値を設定する閾値設定工程を含む、ことを特徴とするデータ転送方法。
【請求項５】
請求項４記載のデータ転送方法であって、
前記入力されるパケットデータは、前記ＦＩＦＯ記憶手段が記憶する際の、書込み速度の情報を含み、
前記ＦＩＦＯ記憶手段の書込み開始時期と、前記記憶容量と、前記パケットデータの書込み速度と、に基づいて、前記ＦＩＦＯ記憶手段の書込み終了時期を決定する、書込み終了時期決定工程と、
前記パケットデータの書込み速度と、前記閾値設定工程で設定された前記閾値と、に基づいて、前記ＦＩＦＯ記憶手段の読出し開始時期を決定する、読出し開始時期決定工程と、
前記書込み終了時期決定工程で決定した前記書込み終了時期と、前記読出し開始時期決定工程で決定した前記読出し開始時期と、前記パケットデータのパケットデータ量と、に基づいて、前記ＦＩＦＯ記憶手段の読出し速度を決定する、読出し速度決定工程と、を含む、ことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、先入れ先出し方式で記憶するＦＩＦＯ記憶手段を備えるデータ転送装置及びデータ転送方法に関するものであり、より詳細には、ＦＩＦＯ記憶手段に記憶されたパケットデータ量が閾値を超えたときに、記憶したパケットデータを出力する、データ転送装置及びデータ転送方法に関するものである。
【背景技術】
【０００２】
従来、１つのパケットの全データの入力を完了する前に、ＦＩＦＯバッファに蓄積されたデータが空になると、閾値を所定値だけ大きくするパケット転送方法が知られている（例えば、特許文献１参照）。当該転送方法において、バッファアンダーランが発生すると閾値を大きくすることで、次のパケット転送時におけるバッファアンダーランを抑制している。一方で、当該転送方法において、１パケット分のデータ書込みが完了した時に、ＦＩＦＯバッファのデータ蓄積量が閾値よりも大きい場合、閾値を所定値だけ小さく設定する。これにより、次のパケット転送時期を早めて、バッファオーバーランを抑制している。
【特許文献１】特開２００６−３１１３２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記パケット転送方法において、ＦＩＦＯバッファのバッファオーバーラン又はバッファアンダーランの発生に応じて、閾値を設定している。このため、入力されるパケットのデータ量が、連続して大きく変動する場合に、適切な閾値を設定するのが困難となり、バッファオーバーラン又はバッファアンダーランを連続して、引き起こす虞がある。
【０００４】
本発明は、このような問題点を解決するためになされたものであり、バッファオーバーラン及びバッファアンダーランを抑制したデータ転送装置及びデータ転送方法を提供することを主たる目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するための本発明の一態様は、入力されるパケットデータを、先入れ先出し方式で記憶するＦＩＦＯ記憶手段を備え、前記ＦＩＦＯ記憶手段は、前記記憶したパケットデータ量が閾値を超えたときに、該記憶したパケットデータを出力する、データ転送装置であって、前記入力されるパケットデータは、パケットデータ量の情報を含み、前記パケットデータ量と、前記ＦＩＦＯ記憶手段の記憶容量と、に基づいて、前記閾値を設定する閾値設定手段を備える、ことを特徴とするデータ転送装置である。
【０００６】
他方、上記目的を達成するための本発明の一態様は、入力されるパケットデータを、先入れ先出し方式で記憶するＦＩＦＯ記憶手段を備え、前記ＦＩＦＯ記憶手段は、前記記憶したパケットデータ量が閾値を超えたときに、該記憶したパケットデータを出力し、前記入力されるパケットデータは、パケットデータ量の情報を含む、データ転送方法であって、前記パケットデータ量と、前記ＦＩＦＯ記憶手段の記憶容量と、に基づいて、前記閾値を設定する閾値設定工程を含む、ことを特徴とするデータ転送方法であってもよい。
【発明の効果】
【０００７】
本発明によれば、データ転送装置及びデータ転送方法のバッファオーバーラン及びバッファアンダーランを抑制することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明を実施するための最良の形態について、添付図面を参照しながら一実施形態を挙げて説明する。図１は、本発明の一実施形態に係るデータ転送装置の機能ブロック図である。本実施形態に係るデータ転送装置１２は、入力されるパケットデータを、先入れ先出し方式で記憶するＦＩＦＯ記憶手段１２ａを備えている。ＦＩＦＯ記憶手段１２ａは、記憶したパケットデータ量が閾値を超えたときに、記憶したパケットデータを出力する。また、入力されるパケットデータは、パケットデータ量の情報を含んでいる。さらに、データ転送装置１２は、パケットデータ量と、ＦＩＦＯ記憶手段１２ａの記憶容量と、に基づいて、閾値を設定する閾値設定手段１２ｅを備えている。閾値設定手段１２ｅは、入力されるパケットデータ量と、ＦＩＦＯ記憶手段１２ａの記憶容量と、を考慮して、バッファオーバーラン及びバッファアンダーランを適切に抑制する閾値を設定する。すなわち、データ転送装置１２のバッファオーバーラン及びバッファアンダーランをより確実に抑制することができる。
【０００９】
図２は、本発明の一実施形態に係るデータ転送装置を含むデータ処理システムのシステム構成の一例を示すブロック図である。図２に示す如く、本実施形態に係るデータ処理システム１は、一方のデータ処理装置１０と、他方のデータ処理装置２０と、を備えている。
【００１０】
一方のデータ処理装置１０は、演算処理、制御処理等を行うＣＰＵ（Central Processing Unit）１１と、パケットデータを転送するデータ転送装置１２と、パケットデータを受信するシリアルデータ受信回路１３と、を備えている。同様に、他方のデータ処理装置２０は、演算処理、制御処理等を行うＣＰＵ２１と、パケットデータを受信するシリアルデータ受信回路２２と、パケットデータを転送するデータ転送装置２３と、を備えている。
【００１１】
データ処理装置１０のＣＰＵ１１と、データ処理装置２０のＣＰＵ２１とは、独立して非同期動作を行いつつ、相互にパケットデータの送受信を行っている。データ処理装置１０のＣＰＵ１１は、パケットデータを、データ転送装置１２を介して、データ処理装置２０のシリアルデータ受信回路２２に対して送信する。一方、データ処理装置２０のＣＰＵ２１は、パケットデータを、データ転送装置２３を介してデータ処理装置１０のシリアルデータ受信回路１３に対して送信する。
【００１２】
一方のデータ処理装置１０のＣＰＵ１１が、他方のデータ処理装置２０のＣＰＵ２１に対してパケットデータを送信する際において、ＣＰＵ１１は、バスクロック信号１０１に同期して、データ転送装置１２に対して、パケットデータであるパラレルデータ１００と、後述の書込み可能状態にするイネーブル信号１０２とを、データバスを介して送信する。
【００１３】
また、他方のデータ処理装置２０のＣＰＵ２１が、一方のデータ処理装置１０のＣＰＵ１１からパケットデータを受信する際において、ＣＰＵ２１は、バスクロック信号２０１に同期して、シリアルデータ受信回路２２に対して、後述の読出し可能状態にするイネーブル信号２０２を送信すると共に、シリアルデータ受信回路２２からパラレルデータ２００を、データバスを介して受信する。
【００１４】
データ処理装置１０のデータ転送装置１２は、送信ＦＩＦＯメモリ１２ａと、蓄積データ量計測部１２ｂと、データ識別部１２ｃと、読出しクロック生成部１２ｄと、読出し時期設定部１２ｅと、読出し判定部１２ｆと、パラレル／シリアル変換部１２ｇと、を備えている。
【００１５】
送信ＦＩＦＯメモリ（ＦＩＦＯ記憶手段）１２ａは、入力されるパケットデータを、先入れ先出し方式で記憶し、蓄積する。そして、送信ＦＩＦＯメモリ１２ａは、蓄積したパケットデータ量が閾値を超えたときに、蓄積したパケットデータを出力する。
【００１６】
また、送信ＦＩＦＯメモリ１２ａは、ＣＰＵ１１からのイネーブル信号１０２に応じて、書込み可能な状態となる。そして、送信ＦＩＦＯメモリ１２ａは、ＣＰＵ１１からのバスクロック信号１０１に同期して、ｎビット幅（ｎは自然数）のパラレルデータ１００の書き込み、記憶を行う。さらに、送信ＦＩＦＯメモリ１２ａは、上記パラレルデータ１００の書き込みを行うと共に、蓄積データ量計測部１２ｂに対して、その書込みを通知する書込み通知信号１０６を送信する。
【００１７】
一方で、送信ＦＩＦＯメモリ１２ａは、読出し判定部１２ｆからの読出し命令信号１０３に応じて、読出しクロック生成部１２ｄからの転送クロック信号１０４に同期して、ｎビット幅のパラレルデータ１０５の読出しを行う。そして、送信ＦＩＦＯメモリ１２ａは、読出したパラレルデータ１０５を、パラレル／シリアル変換部１２ｇに対して送信する。
【００１８】
なお、送信ＦＩＦＯメモリ１２ａは、転送データとなる１パケット分のデータの書込みを終了しているか否かに関わらず、読出し判定部１２ｆからの読出し命令信号１０３に応じて、読出しクロック生成部１２ｄからの転送クロック信号１０４に同期して、パラレルデータ１０５の読出しを開始する。
【００１９】
蓄積データ量計測部１２ｂは、送信ＦＩＦＯメモリ１２ａからの書込み通知信号１０６と、読出し判定部１２ｆからの読出し命令信号１０３と、に基づいて、ＣＰＵ１１からのバスクロック信号１０１と、読出しクロック生成部１２ｄからの転送クロック信号１０４とに同期して、送信ＦＩＦＯメモリ１２ａに蓄積されている蓄積データ量１０７（例えば、ワード数）を計測する。
【００２０】
蓄積データ量計測部１２ｂは、例えば、アップダウンカウンタで構成されている。より具体的には、蓄積データ量計測部１２ｂは、ＣＰＵ１１からのバスクロック信号１０１に同期して、送信ＦＩＦＯメモリ１２ａからの書込み通知信号１０６を受信する毎に、アップカウントを行う。一方で、蓄積データ量計測部１２ｂは、読出しクロック生成部１２ｄからの転送クロック信号１０４に同期して、読出し判定部１２ｆからの読出し命令信号１０３を受信する毎に、ダウンカウントを行う。
【００２１】
このように、蓄積データ量計測部１２ｂは、上述のアップカウント及びダウンカウントを繰り返すことで、送信ＦＩＦＯメモリ１２ａに蓄積されている蓄積データ量１０７を計測する。そして、蓄積データ量計測部１２ｂは、計測した蓄積データ量１０７を、読出し判定部１２ｆに対して、逐次的に送信する。
【００２２】
データ識別部１２ｃは、ＣＰＵ１１からのバスクロック信号１０１に同期して、ＣＰＵ１１からのパラレルデータ１００に含まれる、パケット情報１００ａの抽出を行う。ここで、ＣＰＵ１１から送信されるパラレルデータ１００は、例えば、図３に示すようなＨＤＬＣ（High-Level Data Link Control）フレームにより構成されている。このＨＤＬＣフレームで構成されたパラレルデータ１００は、所定位置にパケット情報（ＩＮＦＯＲＭＡＴＩＯＮ）１００ａを含んでいる。また、パケット情報１００ａは、パケットデータ量１００ｂ、送信ＦＩＦＯメモリ１２ａへの書込み速度１００ｃ等の情報を含んでいる。
【００２３】
データ識別部１２ｃは、ＣＰＵ１１からのパラレルデータ１００から、パケット開始のフラグ（ＦＬＡＧ、例えば、７Ｅ）を識別し、検出する。次に、データ識別部１２ｃは、パケット開始のフラグ検出後（ＡＤＤＲＥＳＳ）から、送信ＦＩＦＯメモリ１２ａへの書込みデータの計測を開始する。その後、データ識別部１２ｃは、ＨＤＬＣフレームの所定位置まで計測を行い、パケットデータ量１００ｂ、書込み速度１００ｃ等のパケット情報１００ａを抽出する。データ識別部１２ｃは、抽出したパケットデータ量１００ｂ、書込み速度１００ｃ等のパケット情報１００ａを、読出し時期設定部１２ｅと、読出しクロック生成部１２ｄとに対して送信する。
【００２４】
読出しクロック生成部（読出し速度設定手段）１２ｄは、ＣＰＵ１１からのバスクロック信号１０１に同期して、データ識別部１２ｃからのパケットデータ量１００ｂ、書込み速度１００ｃ等のパケット情報１００ａに基づいて、送信ＦＩＦＯメモリ１２ａからパケットデータを読出す際の読出し速度Ｖｒを設定する。そして、読出しクロック生成部１２ｄは、設定された読出し速度Ｖｒとなるような、転送クロック信号１０４を生成し、送信ＦＩＦＯメモリ１２ａと、読出し判定部１２ｆと、パラレル／シリアル変換部１２ｇと、シリアルデータ受信回路２２と、に対して送信する。
【００２５】
読出し時期設定部（閾値設定手段）１２ｅは、データ識別部１２ｃからのパケットデータ量１００ｂ、書込み速度１００ｃ等のパケット情報１００ａに基づいて、送信ＦＩＦＯメモリ１２ａからデータの読出し開始時期を決める閾値１０８を、設定する。そして、読出し時期設定部１２ｅは、設定した閾値１０８を、読出し判定部１２ｆに対して送信する。
【００２６】
読出し判定部１２ｆは、送信ＦＩＦＯメモリ１２ａによる読出し開始の判定を行う。まず、読出し判定部１２ｆは、読出しクロック生成部１２ｄからの転送クロック信号１０４に同期して、蓄積データ量計測部１２ｂからの送信ＦＩＦＯメモリ１２ａの蓄積データ量１０７と、読出し時期設定部１２ｅからの閾値１０８と、の比較を行う。そして、読出し判定部１２ｆは、蓄積データ量１０７が閾値１０８を超えていると判定したとき、送信ＦＩＦＯメモリ１２ａと、蓄積データ量計測部１２ｂとに対して、上述の読出し命令信号１０３を送信する。
【００２７】
なお、読出し判定部１２ｆは、一旦、蓄積データ量１０７が閾値１０８を超えていると判定すると、送信ＦＩＦＯメモリ１２ａの蓄積データ量が０になるまで、送信ＦＩＦＯメモリ１２ａと、蓄積データ量計測部１２ｂとに対して、上述の読出し命令信号１０３を、継続して送信する。
【００２８】
パラレル／シリアル変換部１２ｇは、読出しクロック生成部１２ｄからの転送クロック信号１０４に同期して、送信ＦＩＦＯメモリ１２ａからのパラレルデータ１０５を、シリアルデータ１１０に変換する。そして、パラレル／シリアル変換部１２ｇは、変換したシリアルデータ１１０を、データ処理装置２０のシリアルデータ受信回路２２に対して出力する。
【００２９】
他方で、データ処理装置２０のシリアルデータ受信回路２２は、シリアル／パラレル変換部２２ａと、受信ＦＩＦＯメモリ２２ｂと、受信書込み制御部２２ｃと、を備えている。
【００３０】
シリアル／パラレル変換部２２ａは、データ処理装置１０のデータ転送装置１２からの転送クロック信号１０４に同期して、データ転送装置１２からのシリアルデータ１１０を、ｎビット幅のパラレルデータ２０３に変換する。そして、シリアル／パラレル変換部２２ａは、変換したパラレルデータ２０３を、受信ＦＩＦＯメモリ２２ｂと、受信書き込み制御部２２ｃとに対して送信する。
【００３１】
受信ＦＩＦＯメモリ２２ｂは、受信書き込み制御部２２ｃからの書き込み制御信号２０４に応じて、データ転送装置１２から受信した転送クロック信号１０４に同期して、シリアル／パラレル変換部２２ａからのパラレルデータ２０３の書込み、記憶を行う。一方で、受信ＦＩＦＯメモリ２２ｂは、ＣＰＵ２１からのイネーブル信号２０２に応じて、読出し可能な状態となる。そして、受信ＦＩＦＯメモリ２２ｂは、ＣＰＵ２１からのバスクロック信号２０１に同期して、ｎビット幅のパラレルデータ２００の読出しを行う。さらに、受信ＦＩＦＯメモリ２２ｂは、読出したパラレルデータ２００を、データバスを介してＣＰＵ２１に対して送信する。
【００３２】
受信書込み制御部２２ｃは、データ処理装置１０のデータ転送装置１２からの転送クロック信号１０４に同期して、シリアル／パラレル変換部２２ａからのパラレルデータ２０３から、パケット開始のフラグ（図３）を識別し、検出する。そして、受信書込み制御部２２ｃは、パケット開始のフラグを検出すると、受信ＦＩＦＯメモリ２２ｃに対して書込み制御信号２０４を送信する。受信ＦＩＦＯメモリ２２ｂは、上述の如く、受信書き込み制御部２２ｃからの書込み制御信号２０４を受信すると、データ転送装置１２から受信した転送クロック信号１０４に同期して、シリアル／パラレル変換部２２ａからのパラレルデータ２０３の書込みを開始する。
【００３３】
なお、データ処理装置１０のシリアルデータ受信回路１３は、データ処理装置２０のシリアルデータ受信回路２２と略同一の構成となっている。同様に、データ処理装置２０のデータ転送装置２３は、データ処理装置１０のデータ転送装置１２と略同一の構成となっている。したがって、これらシリアルデータ受信回路１３及びデータ転送装置２３の詳細な説明は、省略する。
【００３４】
次に、読出し時期設定部１２ｅにおける、送信ＦＩＦＯメモリ１２ａからのデータ読出し開始時期を決める閾値１０８の設定方法について、詳細に説明する。読出し時期設定部１２ｅは、上述の如く、データ識別部１２ｃからのパケットデータ量１００ｂ、書込み速度１００ｃ等のパケット情報１００ａに基づいて、閾値１０８を設定する。
【００３５】
読出し時期設定部１２ｅは、例えば、データ識別部１２ｃからのパケットデータ量１００ｂと、送信ＦＩＦＯメモリ１２ａの記憶容量と、の大小関係に応じて、閾値１０８を設定する。これにより、パケットデータ量及び送信ＦＩＦＯメモリ１２ａの記憶容量を考慮した、最適な閾値が設定されるため、バッファオーバーラン及びバッファアンダーランを未然に回避することができる。
【００３６】
より具体的には、読出し時期設定部１２ｅは、データ識別部１２ｃからのパケットデータ量１００ｂが、送信ＦＩＦＯメモリ１２ａの記憶容量よりも大きいと判断したとき、送信ＦＩＦＯメモリ１２ａの記憶容量を所定比率（例えば、５０％程度）にした、閾値１０８を設定する。このように、パケットデータ量が送信ＦＩＦＯメモリ１２ａの記憶容量よりも大きい場合は、記憶容量に応じた閾値１０８を設定する。これにより、送信ＦＩＦＯメモリ１２ａのバッファオーバーラン及びバッファアンダーランを確実に回避することができる。
【００３７】
一方で、読出し時期設定部１２ｅは、データ識別部１２ｃからのパケットデータ量１００ｂが、送信ＦＩＦＯメモリ１２ａの記憶容量よりも小さいと判断したとき、送信ＦＩＦＯメモリ１２ａの記憶容量ではなく、パケットデータ量１００ｂを所定比率（例えば、５０％程度）にした、閾値１０８を設定する。このように、パケットデータ量が送信ＦＩＦＯメモリ１２ａの記憶容量よりも小さい場合は、パケットデータ量に応じた閾値１０８を設定する。これにより、送信ＦＩＦＯメモリ１２ａのバッファオーバーラン及びバッファアンダーランを確実に回避しつつ、パケットデータが送信ＦＩＦＯメモリ１２ａに滞留する滞留時間を、最小化することができる。なお、上記記憶容量及びパケットデータ量の所定比率は、バッファオーバーラン及びバッファアンダーランを確実に回避できるような最適値が設定される。
【００３８】
次に、読出しクロック生成部１２ｄにおける、送信ＦＩＦＯメモリ１２ａからパケットデータを読出す際の読出し速度Ｖｒの設定方法について、詳細に説明する。図４は、読出しクロック生成部１２ｄによる読出し速度Ｖｒの設定方法を示す図である。なお、図４において、横軸は送信ＦＩＦＯメモリ１２ａに対するデータ書込みが開始されてからの経過時間を示しており、縦軸はデータ量（ワード数）を示している。  
【００３９】
読出しクロック生成部１２ｄは、上述の如く、データ識別部１２ｃからのパケットデータ量１００ｂ、書込み速度１００ｃ等のパケット情報１００ａに基づいて、送信ＦＩＦＯメモリ１２ａからの読出し速度Ｖｒを設定する。
【００４０】
ここで、図４に示すように、送信ＦＩＦＯメモリ１２ａの記憶容量をＮとし、ＣＰＵ１１から送信されるパラレルデータ１００のパケットデータ量を４Ｎ（記憶容量Ｎの４倍）とする。但し、パケットデータ量４Ｎは、受信ＦＩＦＯメモリ２２ｂの記憶容量よりも小さいものとする。
【００４１】
まず、読出しクロック生成部１２ｄは、送信ＦＩＦＯメモリ１２ａへの書込み開始時期Ｔｗｓと、記憶容量４Ｎと、データ識別部１２ｃからの書込み速度１００ｃ（図４に示す直線（I）の傾きＶｗ）と、に基づいて、書込み終了時期Ｔｅｎｄを決定する（書込み終了時期決定工程）。次に、読出しクロック生成部１２ｄは、データ識別部１２ｃからの書込み速度Ｖｗと、読出し時期設定部１２ｅからの閾値１０８と、に基づいて、読出し開始時期Ｔｒｓを決定する（読出し開始時期決定工程）。
【００４２】
さらに、読出しクロック生成部１２ｄは、決定した書込み終了時期Ｔｅｎｄと、読出し開始時期Ｔｒｓと、データ識別部１２ｃからのパケットデータ量１００ｂと、に基づいて、読出し速度（図４に示す直線（II）の傾きＶｒ）を決定する（読出し速度決定工程）。そして、読出しクロック生成部１２ｄは、決定した読出し速度Ｖｒとなる転送クロック信号１０４を、送信ＦＩＦＯメモリ１２ａと、読出し判定部１２ｆと、パラレル／シリアル変換部１２ｇと、シリアルデータ受信回路２２と、に対して送信する。
【００４３】
図４に示すように、送信ＦＩＦＯメモリ１２ａは、書込み動作と略同時（略平行）に、読出し動作を行うように、読出し開始時期Ｔｒｓ及び読出し速度Ｖｒが設定される。さらに、送信ＦＩＦＯメモリ１２ａの読出し速度Ｖｒは、書込み速度Ｖｗよりも大きくなるように設定される。これにより、送信ＦＩＦＯメモリ１２ａの上書きによるデータ消失、すなわち、バッファオーバーランの発生を確実に抑制できる。
【００４４】
また、読出しクロック生成部１２ｄは、バッファアンダーランが生じないように、送信ＦＩＦＯメモリ１２ａの書込み終了時期Ｔｅｎｄ、読出し開始時期Ｔｒｓ、及び読出し速度Ｖｒを夫々決定する。これにより、読出し速度Ｖｒが書込み速度Ｖｗよりも速いことによる不正なデータの読出し、すなわち、バッファアンダーランの発生を確実に抑制できる。なお、読出しクロック生成部１２ｄは、書込み終了時期Ｔｅｎｄを適切に設定することで、書込み終了時期Ｔｅｎｄと読出し終了時期との差、すなわち、遅延時間を、最小に設定することができる。
【００４５】
さらに、読出しクロック生成部１２ｄは、送信ＦＩＦＯメモリ１２ａの書込み終了時期Ｔｅｎｄ、読出し開始時期Ｔｒｓ、及び読出し速度Ｖｒを適切に設定することで、パケットデータが送信ＦＩＦＯメモリ１２ａに滞留する滞留時間を、最小にすることができる。
【００４６】
次に、本実施形態に係るデータ転送装置１２の制御処理フローについて、詳細に説明する。図５は、本実施形態に係るデータ転送装置１２の制御処理フローの一例を示すフローチャートである。なお、図５に示す制御処理は、所定時間毎に繰り返し実行される。
【００４７】
まず、データ転送装置１２の送信ＦＩＦＯメモリ１２ａは、ＣＰＵ１１からのイネーブル信号１０２と、バスクロック信号１０１とに基づいて、パラレルデータ１００の書込みを行うと共に、蓄積データ量計測部１２ｂに対して、書込み通知信号１０６を送信する（ステップＳ３００）。
【００４８】
次に、データ識別部１２ｃは、ＣＰＵ１１からのパラレルデータ１００から、パケットデータ量１００ｂ、書込み速度１００ｃ等のパケット情報１００ａを抽出する。データ識別部１２ｃは、抽出したパケット情報１００ａを、読出し時期設定部１２ｅと、読出しクロック生成部１２ｄとに対して送信する（ステップＳ３０１）。
【００４９】
その後、読出し時期設定部１２ｅは、送信ＦＩＦＯメモリ１２ａの記憶容量と、データ識別部１２ｃからのパケットデータ量１００ｂ、書込み速度１００ｃ等のパケット情報１００ａと、に基づいて、送信ＦＩＦＯメモリ１２ａからデータ読出しを開始する時期を決める閾値１０８を設定する（閾値設定工程）（ステップＳ３０２）。
【００５０】
また、読出しクロック生成部１２ｄは、データ識別部１２ｃからのパケットデータ量１００ｂ、書込み速度１００ｃ等のパケット情報１００ａに基づいて、送信ＦＩＦＯメモリ１２ａの読出し速度Ｖｒを設定する（読出し速度決定工程）。そして、読出しクロック生成部１２ｄは、設定された読出し速度Ｖｒで転送クロック信号１０４を生成し、送信ＦＩＦＯメモリ１２ａと、読出し判定部１２ｆと、パラレル／シリアル変換部１２ｇと、シリアルデータ受信回路２２と、に対して送信する（ステップＳ３０３）。
【００５１】
さらに、蓄積データ量計測部１２ｂは、送信ＦＩＦＯメモリ１２ａからの書込み通知信号１０６と、読出し判定部１２ｆからの読出し命令信号１０３と、に基づいて、送信ＦＩＦＯメモリ１２ａに蓄積されている蓄積データ量１０７を計測する（ステップＳ３０４）。
【００５２】
読出し判定部１２ｆは、読出しクロック生成部１２ｄからの転送クロック信号１０４に同期して、蓄積データ量計測部１２ｂからの送信ＦＩＦＯメモリ１２ａの蓄積データ量１０７と、読出し時期設定部１２ｅからの閾値１０８と、を比較する。そして、読出し判定部１２ｆは、蓄積データ量１０７が閾値１０８を超えていると判定したとき、送信ＦＩＦＯメモリ１２ａと、蓄積データ量計測部１２ｂとに対して、上述の読出し命令信号１０３を送信する（ステップＳ３０５）。
【００５３】
送信ＦＩＦＯメモリ１２ａは、読出し判定部１２ｆからの読出し命令信号１０３に応じて、読出しクロック生成部１２ｄからの転送クロック信号１０４に同期して、パラレルデータ１０５の読出しを行う。そして、送信ＦＩＦＯメモリ１２ａは、読出したパラレルデータ１０５を、パラレル／シリアル変換部１２ｇに対して送信する（ステップＳ３０６）。
【００５４】
以上、本実施形態に係るデータ転送装置１２において、読出し時期設定部１２ｅは、データ識別部１２ｃからのパケットデータ量１００ｂが、送信ＦＩＦＯメモリ１２ａの記憶容量よりも大きいと判断したとき、送信ＦＩＦＯメモリ１２ａの記憶容量を所定比率にした、閾値１０８を設定する。これにより、送信ＦＩＦＯメモリ１２ａのバッファオーバーラン及びバッファアンダーランを確実に回避することができる。一方で、読出し時期設定部１２ｅは、データ識別部１２ｃからのパケットデータ量１００ｂが、送信ＦＩＦＯメモリ１２ａの記憶容量よりも小さいと判断したとき、パケットデータ量１００ｂを所定比率にした、閾値１０８を設定する。これにより、送信ＦＩＦＯメモリ１２ａのバッファオーバーラン及びバッファアンダーランを確実に回避しつつ、パケットデータが送信ＦＩＦＯメモリ１２ａに滞留する滞留時間を、最小化することができる。
【００５５】
また、本実施形態に係るデータ転送装置１２において、読出しクロック生成部１２ｄは、送信ＦＩＦＯメモリ１２ａの書込み動作と略同時に、読出し動作を行うように、読出し開始時期Ｔｒｓ及び読出し速度Ｖｒを設定する。そして、読出しクロック生成部１２ｄは、送信ＦＩＦＯメモリ１２ａの読出し速度Ｖｒを、書込み速度Ｖｗよりも大きくなるように設定する。これにより、送信ＦＩＦＯメモリ１２ａの上書きによるデータ消失、すなわち、バッファオーバーランの発生を確実に抑制できる。
【００５６】
さらに、読出しクロック生成部１２ｄは、バッファアンダーランが発生しないように、送信ＦＩＦＯメモリ１２ａの書込み終了時期Ｔｅｎｄ、読出し開始時期Ｔｒｓ、及び読出し速度Ｖｒを夫々決定する。これにより、読出し速度Ｖｒが書込み速度Ｖｗよりも速いことによる不正なデータの読出し、すなわち、バッファアンダーランの発生を確実に抑制できる。また、読出しクロック生成部１２ｄは、書込み終了時期Ｔｅｎｄを適切に設定することで、書込み終了時期Ｔｅｎｄと読出し終了時期との差、すなわち、遅延時間を、最小に設定することができる。
【００５７】
なお、読出しクロック生成部１２ｄは、送信ＦＩＦＯメモリ１２ａの書込み終了時期Ｔｅｎｄ、読出し開始時期Ｔｒｓ、及び読出し速度Ｖｒを適切に設定することで、パケットデータが送信ＦＩＦＯメモリ１２ａに滞留する滞留時間を、最小にすることができる。
【００５８】
以上、本発明を実施するための最良の形態について一実施形態を用いて説明したが、本発明はこうした一実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、上述した一実施形態に種々の変形及び置換を加えることができる。
【００５９】
例えば、上記一実施形態において、閾値設定工程（ステップＳ３０２）後に、読出し速度決定工程（ステップＳ３０３）が実行されているが、読出し速度決定工程後に閾値設定工程が実行されてもよく、各ステップＳを任意に変更可能である。
【００６０】
また、上記一実施形態において、データ処理装置１０のＣＰＵ１１とデータ処理装置２０のＣＰＵ２１とが、非同期で動作して、双方向でパケットデータの送受信を行う構成に適用されているが、これに限られず、ＦＩＦＯメモリの書込み速度と読込み速度とが相違する装置間でも適用可能である。
【００６１】
さらに、上記一実施形態において、ＣＰＵ１１から送信されるパラレルデータ１００は、ＨＤＬＣフレームにより構成されているが、これに限られず、パケット情報１００ａの位置をフレーム上に固定できれば、任意のフレームフォーマットによって構成することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施形態に係るデータ転送装置の機能ブロック図である。
【図２】本発明の一実施形態に係るデータ転送装置を含むデータ処理システムのシステム構成の一例を示すブロック図である。
【図３】ＨＤＬＣフレームにより構成されたパケットデータの一例を示す図である。
【図４】本発明の一実施形態に係るデータ転送装置の読出しクロック生成部による読出し速度の設定方法を示す図である。
【図５】本発明の一実施形態に係るデータ転送装置の制御処理フローの一例を示すフローチャートである。
【符号の説明】
【００６３】
１          データ処理システム
１０、２０    データ処理装置
１１、２１    ＣＰＵ
１２、２３    データ転送装置
１２ａ        送信ＦＩＦＯメモリ
１２ｂ        蓄積データ量計測部
１２ｃ        データ識別部
１２ｄ        読出しクロック生成部
１２ｅ        読出し時期設定部
１２ｆ        読出し判定部
１２ｇ        パラレル／シリアル変換部
１３、２２    シリアルデータ受信回路
２２ａ        シリアル／パラレル変換部
２２ｂ        受信ＦＩＦＯメモリ
２２ｃ        受信書込み制御部
１００、１０５  パラレルデータ
１０１、２０１  バスクロック信号
１０２、２０２  イネーブル信号
１０３          読出し命令信号
１０４          転送クロック信号
１０６          書込み通知信号
１０７          蓄積データ量
１０８          閾値
２００、２０３  パラレルデータ        
２０４          書き込み制御信号        
【図１】
2009282591.tif 000003
【図２】
2009282591.tif 000004
【図３】
2009282591.tif 000005
【図４】
2009282591.tif 000006
【図５】
2009282591.tif 000007