(57)【要約】【課題】送信パケットの送信開始タイミングを早くして処理能力を向上させ、データエラーパケットの発生を抑えることができるデータ転送装置を得る。【解決手段】演算回路３４は、ＰＣＩマスタコントローラがデータ転送可能な状態であるか否かを示すＰＣＩマスタコントローラからの信号ＰＩＲＤＹＢ、及びメモリ部８がデータ転送可能な状態にあるか否かを示すチップセット６からの信号ＰＴＲＤＹＢから最適値に自動的に変更したデータをデータバスＣＳＴＶ［１５：０］からコンパレータ３２に出力し、コンパレータ３２の出力信号ＦＲＥＱＢは、ＤＴＣ［１５：０］≧ＤＬ［１５：０］及び／又はＤＴＣ［１５：０］≧ＣＳＴＶ［１５：０］である場合にアサートされて送信用ＦＩＦＯ１５に対して送信要求が行われ、送信用ＤＭＡＣ１４は、ＰＣＩバス５からのデータリードの処理状況によって、該パケットの送信開始時間を自動的に変更させるようにした。【選択図】　図４
2004054344.tif 000002
【特許請求の範囲】
【請求項１】
外部システム装置と内部システム装置との間でデータ転送を行うデータ転送装置において、
前記内部システム装置とのインタフェースを行う第１インタフェース回路部と、
前記外部システム装置とのインタフェースを行う第２インタフェース回路部と、
前記第１インタフェース回路部を介して前記内部システム装置から入力されたデータを一時的に記憶し、入力された制御信号に応じて、該記憶したデータを第２インタフェース回路部を介して前記外部システム装置へ送信する送信用データ記憶部と、
該送信用データ記憶部に記憶されたデータ量をモニタし、該モニタしたデータ量が所定値を超えると、前記送信用データ記憶部に記憶されたデータを前記第２インタフェース回路部へ送信させる、送信用データ記憶部の動作制御を行う制御回路部と、
を備え、
前記制御回路部は、前記内部システム装置のデータ転送能力に応じて前記所定値を変え、前記モニタしたデータ量が、該所定値未満であると共に前記外部システム装置から送信要求があったデータ量未満である場合は、前記送信用データ記憶部に対して前記第２インタフェース回路部へのデータ送信を禁止することを特徴とするデータ転送装置。
【請求項２】
前記制御回路部は、前記内部システム装置のデータ転送能力が低下して該内部システム装置からのデータ転送が停止すると、あらかじめ設定された値を前記所定値に加算することを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記制御回路部は、前記内部システム装置からデータ転送が行われている間は、前記所定値に対する、前記あらかじめ設定された値の加算を停止することを特徴とする請求項２記載のデータ転送装置。
【請求項４】
前記制御回路部は、送信用データ記憶部から第２インタフェース回路部へデータ送信を行っている際に、前記内部システム装置からのデータ送信が間に合わず該送信用データ記憶部からのデータ送信に失敗すると、内部システム装置から再度データ転送が行われるときに、前記モニタしたデータ量が、前記外部システム装置から送信要求があったデータ量になると、前記送信用データ記憶部に対して前記第２インタフェース回路部へのデータ送信を行わせることを特徴とする請求項１、２又は３記載のデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ送信用にＦＩＦＯ等の記憶装置を用いたＩＥＥＥ１３９４等で使用するデータ転送装置に関し、特にＯＨＣＩ（Ｏｐｅｎ　Ｈｏｓｔ　Ｃｏｎｔｒｏｌｌｅｒ　Ｉｎｔｅｒｆａｃｅ）規格に準拠したＬＩＮＫデバイスをなすデータ転送装置に関する。
【０００２】
【従来の技術】
従来、データ送信用にＦＩＦＯ等の記憶装置を用いＩＥＥＥ１３９４の規格に準拠したデータ転送装置では、パケット送信の開始タイミングが遅いと転送性能を低下させるという問題があった。このような問題が特に顕著に表れるのは、ＩＥＥＥ１３９４規格に準拠したインタフェース（以下、ＩＥＥＥ１３９４インタフェースと呼ぶ）を有するパーソナルコンピュータ（以下、ＰＣと呼ぶ）にハードディスク装置（以下、ＨＤＤ装置と呼ぶ）を接続して、その相互間でデータ転送したときである。
【０００３】
このような場合、ＰＣとＨＤＤ装置は、ＩＥＥＥ１３９４の規格で規定されているアイソクロナス（Ｉｓｏｃｈｒｏｎｏｕｓ）パケットとアシンクロナス（Ａｓｙｎｃｈｒｏｎｏｕｓ）パケットの内、アシンクロナスパケットを使用している。また、アシンクロナスパケットの内でもソフトウェアが介在せずハードウェアのみで高速にデータ転送を行うために用意されたフィジカル・リクエスト（Ｐｈｙｓｉｃａｌ　Ｒｅｑｕｅｓｔ）パケットがＨＤＤ装置からＰＣに送信される。そして、ＰＣ内のＩＥＥＥ１３９４インタフェース装置は、受信したフィジカル・リクエストパケットに対する処理を実行した後、フィジカル・レスポンス（Ｐｈｙｓｉｃａｌ　Ｒｅｓｐｏｎｓｅ）パケットを送信する。
【０００４】
ＰＣのＩＥＥＥ１３９４インタフェース装置とＨＤＤ装置はＩＥＥＥ１３９４の規格に準拠したバス（以下、ＩＥＥＥ１３９４バスと呼ぶ）で接続されており、ＩＥＥＥ１３９４インタフェース装置は、ＰＣＩバスを介してＰＣのＣＰＵに接続されている。このようなＰＣ内のＩＥＥＥ１３９４インタフェース装置でのデータの流れについて説明する。図１５は、ＩＥＥＥ１３９４バス及びＰＣＩバスでのデータの流れにおける概略のタイミング例を示した図である。
【０００５】
図１５で示しているように、Ａ期間では、ＨＤＤ装置からＩＥＥＥ１３９４バス上にＰＣへのフィジカル・リードリクエストパケットが送信される。次に、Ｂ期間では、ＰＣ内のＩＥＥＥ１３９４インタフェース装置は、ＰＣＩバス及びチップセットを介してＰＣ内のメモリ部からデータを読み出し、該メモリ部からのデータ読み出しが完了して送信用ＦＩＦＯにパケットを準備する。次に、Ｃ期間では、ＩＥＥＥ１３９４バス上にフィジカル・リードレスポンスパケットがＰＣからＨＤＤ装置に送信される。
【０００６】
このような状態では、ＨＤＤ装置からＰＣへのデータ転送要求はフィジカル・リードリクエストパケットでなされ、ソフトウェアが介在せずにハードウェアのみで高速にデータ転送しようとしているため、図１６で示すように、Ｂ期間でのデータ読み出し処理が終了していない状態でも、送信用ＦＩＦＯには送信パケットの最初のデータは用意できていることから、Ｃ期間のスタートを早めて処理能力を向上させる方法が考えられる。
【０００７】
【発明が解決しようとする課題】
しかし、ＩＥＥＥ１３９４の規格では、一度パケットを送信し始めるとそのデータ送信を止めることできなかった。このため、前記のような処理能力を向上させる方法では、前記送信開始時間を早め過ぎると、図１７で示すように、ＰＣＩバス側のデータ読み出しが間に合わず、ＩＥＥＥ１３９４バス上に送信しているフィジカル・レスポンスパケットのデータが途切れ、図１７の斜線で示した部分が不完全なデータ部分となり、不完全なパケットになってしまうという問題があった。
【０００８】
また、前記送信開始時間をあまり早めないような場合においても、ＰＣＩバスには様々なデバイスが接続されており、これらのデバイスのアクセスによって、ＩＥＥＥ１３９４インタフェース装置に割り当てられるＰＣＩバス使用時間が短くなり、送信パケットにおける最後の方のデータが準備できない場合があった。このような場合、ＩＥＥＥ１３９４のプロトコルでは、再度ＨＤＤ装置が前記と同じフィジカル・リクエストパケットを送信して再処理が開始されることから、処理能力が低下するという問題があった。
【０００９】
本発明は、上記のような問題を解決するためになされたものであり、送信パケットの送信開始タイミングを早くして処理能力を向上させることができると共に、不完全なデータエラーパケットの発生を抑えることができるデータ転送装置を得ることを目的とする。
【００１０】
【課題を解決するための手段】
この発明に係るデータ転送装置は、外部システム装置と内部システム装置との間でデータ転送を行うデータ転送装置において、前記内部システム装置とのインタフェースを行う第１インタフェース回路部と、前記外部システム装置とのインタフェースを行う第２インタフェース回路部と、前記第１インタフェース回路部を介して前記内部システム装置から入力されたデータを一時的に記憶し、入力された制御信号に応じて、該記憶したデータを第２インタフェース回路部を介して前記外部システム装置へ送信する送信用データ記憶部と、該送信用データ記憶部に記憶されたデータ量をモニタし、該モニタしたデータ量が所定値を超えると、前記送信用データ記憶部に記憶されたデータを前記第２インタフェース回路部へ送信させる、送信用データ記憶部の動作制御を行う制御回路部とを備え、前記制御回路部は、前記内部システム装置のデータ転送能力に応じて前記所定値を変え、前記モニタしたデータ量が、該所定値未満であると共に前記外部システム装置から送信要求があったデータ量未満である場合は、前記送信用データ記憶部に対して前記第２インタフェース回路部へのデータ送信を禁止するものである。
【００１１】
具体的には、前記制御回路部は、前記内部システム装置のデータ転送能力が低下して該内部システム装置からのデータ転送が停止すると、あらかじめ設定された値を前記所定値に加算するようにした。
【００１２】
また、前記制御回路部は、前記内部システム装置からデータ転送が行われている間は、前記所定値に対する、前記あらかじめ設定された値の加算を停止するようにしてもよい。
【００１３】
一方、前記制御回路部は、送信用データ記憶部から第２インタフェース回路部へデータ送信を行っている際に、前記内部システム装置からのデータ送信が間に合わず該送信用データ記憶部からのデータ送信に失敗すると、内部システム装置から再度データ転送が行われるときに、前記モニタしたデータ量が、前記外部システム装置から送信要求があったデータ量になると、前記送信用データ記憶部に対して前記第２インタフェース回路部へのデータ送信を行わせるようにしてもよい。
【００１４】
【発明の実施の形態】
次に、図面に示す実施の形態に基づいて、本発明を詳細に説明する。
第１の実施の形態．
図１は、本発明の第１の実施の形態におけるデータ転送装置の例を示したブロック図である。なお、図１では、ＩＥＥＥ１３９４規格に準拠したＰＣに、ＩＥＥＥ１３９４規格に準拠したＨＤＤ装置を接続し、該ＰＣとＨＤＤ装置との相互間でデータ転送を行う場合を例にして示している。また、図１で示した各ブロック間の矢印は、データの流れのみを示している。
【００１５】
図１において、データ転送装置１は、ＩＥＥＥ１３９４インタフェース装置をなしてＰＣ２内に設けられており、ＩＥＥＥ１３９４バス３を介してＩＥＥＥ１３９４規格に準拠したＨＤＤ装置４に接続されている。更に、データ転送装置１は、ＰＣ２内で、ＰＣＩバス５を介してチップセット６に接続され、該チップセット６はＣＰＵ７及びメモリ部８にそれぞれ接続されている。チップセット６は、ＰＣＩバス５とＣＰＵ７及びメモリ部８とのインタフェースを行うものである。なお、ＨＤＤ装置４は外部システム装置をなし、ＰＣＩバス５、チップセット６、ＣＰＵ７及びメモリ部８は内部システム装置をなす。
【００１６】
一方、データ転送装置１は、ＩＥＥＥ１３９４規格に準拠したリンク（ＬＩＮＫ）層と物理（ＰＨＹ）層が形成されてなるＬＩＮＫ／ＰＨＹ回路１１と、受信用ＦＩＦＯ１２と、受信用ＤＭＡＣ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ　Ｃｏｎｔｒｏｌｌｅｒ）１３と、送信用ＤＭＡＣ１４と、送信用ＦＩＦＯ１５と、ＰＣＩバス５との間でのデータ送受信の制御を行うＰＣＩインタフェース制御回路１６とを備えている。なお、ＬＩＮＫ／ＰＨＹ回路１１は第２インタフェース回路部を、ＰＣＩインタフェース制御回路１６は第１インタフェース回路部をそれぞれなし、送信用ＤＭＡＣ１４は制御回路部を、送信用ＦＩＦＯ１５は送信用データ記憶部をそれぞれなす。
【００１７】
ＬＩＮＫ／ＰＨＹ回路１１は、ＩＥＥＥ１３９４バス３を介してＨＤＤ装置４から入力されたデータを受信用ＦＩＦＯ１２に一時的に記憶し、受信用ＤＭＡＣ１３は、受信用ＦＩＦＯ１２に記憶されたデータを読み出し（以下、データの読み出しをリードと呼ぶ）、該リードしたデータに応じて該データを送信用ＤＭＡＣ１４又はＰＣＩインタフェース制御回路１６に出力する。ＰＣＩインタフェース制御回路１６は、入力されたデータをＰＣＩバス５を介してチップセット６に出力する。一方、送信用ＤＭＡＣ１４は、ＰＣＩインタフェース制御回路１６に入力されたデータを送信用ＦＩＦＯ１５に一時的に記憶させ、送信用ＦＩＦＯ１５に記憶されたデータは、ＬＩＮＫ／ＰＨＹ回路１１を介してＩＥＥＥ１３９４バス３に出力される。
【００１８】
ＰＣ２とＨＤＤ装置４は、相互間でデータ転送を行う場合、ＩＥＥＥ１３９４規格で規定されているアイソクロナスパケットとアシンクロナスパケットの内、アシンクロナスパケットを使用している。また、アシンクロナスパケットの内でも、ソフトウェアが介在せずハードウェアのみで高速にデータ転送をするために用意されたフィジカル・リクエストパケットがＨＤＤ装置４からＰＣ２に送信される。そして、ＰＣ２にあるデータ転送装置１は、受信したフィジカル・リクエストパケットに対する処理を実行した後、フィジカル・レスポンスパケットをＨＤＤ装置４に送信する。
【００１９】
このような場合におけるデータ転送装置１内のデータの流れについて、もう少し詳細に説明する。まず、ＨＤＤ装置４からフィジカル・リクエストパケットがＰＣ２にＩＥＥＥ１３９４バス３を介して送信される。該フィジカル・リクエストパケットは、ＬＩＮＫ／ＰＨＹ回路１１を経て受信用ＦＩＦＯ１２に蓄えられる。そして、受信用ＤＭＡＣ１３は、受信用ＦＩＦＯ１２から前記フィジカル・リクエストパケットをリードし、該リードしたパケットが単純なアシンクロナスパケットではなくフィジカルパケットであると判断すると、送信用ＤＭＡＣ１４に該パケットを転送する。
【００２０】
次に、送信用ＤＭＡＣ１４は、入力されたパケットの内容にしたがって、ＰＣＩバス５に接続されたチップセット６を経由して、メモリ部８から所望のデータをリードして送信用ＦＩＦＯ１５に蓄える。ＰＣＩバス５を介してメモリ部８から所定のデータをリードして、送信用ＦＩＦＯ１５に、フィジカル・レスポンスパケットが送信用ＤＭＡＣ１４内に内蔵されたレジスタ値数分準備できると、送信用ＤＭＡＣ１４は、ＬＩＮＫ／ＰＨＹ回路１１に送信準備ができたことを示す制御信号をイネーブルにして、ＬＩＮＫ／ＰＨＹ回路１１から該フィジカル・レスポンスパケットがＩＥＥＥ１３９４バス３を介してＨＤＤ装置４へ送信される。
【００２１】
一方、ＰＣＩバス５を使用してメモリ部８の内部データをリードしているとき、ＰＣＩバス５の空き状況やメモリ部８にデータが用意できているかどうか等でデータリードに要する時間が時々刻々と変化する。送信用ＤＭＡＣ１４は、該変化をＰＣＩバス５の状態を示す信号から判断し、内蔵レジスタ（図示せず）の値を変える。例えば、ＰＣＩバス５が空いていないためデータリードができない場合は該レジスタ値を大きくし、ＰＣＩバス５が空いていてデータをスムーズにリードできる場合は該レジスタ値を小さくする。
【００２２】
このようにすることにより、図１６で示したＣ期間の開始時期が、ＰＣＩバス５を介してのデータリード状況に応じて自動的に前後し、図１７で示したような状態になりにくくすることができる。また、受信したフィジカル・リクエストパケットに対するフィジカル・レスポンスパケットの送信を最適な時間に開始するだけでなく、単純なアシンクロナスパケットの送信を最適な時間で開始することにも使用することができる。
【００２３】
ここで、図２は、ＩＥＥＥ１３９４規格のパケットの概略構成例を示した図である。図２に示すように、ＩＥＥＥ１３９４のパケットは、１ｗｏｒｄが３２ｂｉｔで４ｗｏｒｄ以下で構成された、パケットのタイプやアドレス等の情報が入ったヘッダー部と、１ｗｏｒｄが３２ｂｉｔで２０４８ｗｏｒｄ以下で構成された、データが入っているデータ部とに大別される。また、パケットの種類によってはデータ部がないパケットも存在する。
【００２４】
また、送信用ＤＭＡＣ１４は、送信用パケットを作成するためのプログラムに似たデスクリプタというデータを使用する。図３は、このようなデスクリプタの概略構成例を示した図である。図３に示すように、デスクリプタは、１ｗｏｒｄが３２ｂｉｔで４ｗｏｒｄを１つの基本単位とし、１つのデスクリプタは最大８ｗｏｒｄで構成されている。デスクリプタＤｅｓｃｒｉｐｔｏｒ０〜Ｄｅｓｃｒｉｐｔｏｒ３には、デスクリプタのタイプ、データ部を作成するためのメモリアドレス及び次のデスクリプタメモリアドレス等が入ったコントロール部分が、デスクリプタＤｅｓｃｒｉｐｔｏｒ４〜Ｄｅｓｃｒｉｐｔｏｒ７には、送信用ＦＩＦＯ１５に書き込まれる（以下、データの書き込みをライトと呼ぶ）送信パケットのヘッダー部のデータが蓄えられている。
【００２５】
次に、図４は、送信用ＤＭＡＣ１４の構成例を示したブロック図である。図４で示すように、送信用ＤＭＡＣ１４は、送信パケットを作成するプログラムのようなものであるデスクリプタ又は前述したようなフィジカル・リードリクエストパケットを蓄えるレジスタ２１を備え、該レジスタ２１は、３２ｂｉｔ×８ｗｏｒｄのレジスタで構成されている。フィジカル・リードリクエストパケットは、受信用ＤＭＡＣ１３からデータバスＲＥＱＤ［３１：０］から入力され、デスクリプタは、ＰＣＩインタフェース制御回路１６内のＰＣＩマスタコントローラ（図示せず）からリードデータバスＭＤ［３１：０］を介して入力される。
【００２６】
また、送信用ＤＭＡＣ１４は、マルチプレクサ（ＭＵＸ）２２を備え、該マルチプレクサ２２は、レジスタ２１から入力される送信用パケットにおけるヘッダー部のデータ、又はリードデータバスＭＤ［３１：０］から入力される送信用パケットにおけるデータ部のデータのいずれかを排他的に選択し、データバスＦＤ［３１：０］を介して送信用ＦＩＦＯ１５に出力する。また、送信用ＤＭＡＣ１４は、送信用ＤＭＡＣ１４内のすべてのタイミング制御信号を作成するタイミング制御回路部２３を備えている。該タイミング制御回路部２３には、フィジカル・リードリクエストパケットのデータライト期間を示す信号ＲＥＱＷＲＢが受信用ＤＭＡＣ１３から入力される。
【００２７】
タイミング制御回路部２３は、前記ＰＣＩマスタコントローラに対して、ＰＣＩマスタコントローラへのアドレスをデータバスＭＡ［３１：０］へ、及びリード要求のデータレングス値を示すデータをデータバスＭＬ［１５：０］へそれぞれ出力すると共に、リード要求開始を示す信号ＭＲＥＱ及びデータをリードすることを示す信号ＭＲＤＢをそれぞれ出力する。信号ＭＲＥＱはハイレベルでアクティブとなり、信号ＭＲＤＢはローレベルでアクティブとなる。
【００２８】
タイミング制御回路部２３は、前記ＰＣＩマスタコントローラ内にあるＦＩＦＯ（図示せず）にリードされたデータがないことを示す信号ＭＥＭＰが入力される。また、タイミング制御回路部２３は、ＰＣＩインタフェース制御回路１６内のＰＣＩスレーブコントローラ（図示せず）に接続された入出力データバスＳＤ［３１：０］が接続され、該ＰＣＩスレーブコントローラからのライト要求信号ＳＷＲＢが入力され、タイミング制御回路部２３内にあるスタートレジスタ３１へのライトを実現する。
【００２９】
タイミング制御回路部２３は、タイミング制御を実施するために必要なデータが、レジスタ２１からデータバスＤＤ＃［３１：０］（＃は０から３の４系統のバスであることを示す）を介して入力される。また、タイミング制御回路部２３は、送信用ＦＩＦＯ１５へのライトパケットの最終データであることを示す信号ＦＥＯＰ、送信用ＦＩＦＯ１５へのライト要求信号ＦＷＲＢ、及び送信用ＦＩＦＯ１５にデータが用意できＬＩＮＫ／ＰＨＹ回路１１に送信開始を要求する信号ＦＲＥＱＢを出力する。
【００３０】
該信号ＦＲＥＱＢは、コンパレータ３２から出力され、該コンパレータ３２には、入力として送信用パケットのデータ部のデータを送信用ＦＩＦＯ１５にライトしたワード数をカウントするデータアップカウンタ３３からの出力データバスＤＴＣ［１５：０］からのデータ、及びデータバスＤＤ＃［３１：０］からのデータから要求バイト数データを伝送するデータバスＤＬ［１５：０］からのデータがそれぞれ入力される。
【００３１】
更に、コンパレータ３２には、外部から設定可能なスタートレジスタ３１から出力データバスＳＴＶ［１５：０］を介して出力されたデータを、演算回路３４によって、信号ＰＩＲＤＹＢ及びＰＴＲＤＹＢから最適値に自動的に変更されたデータが、データバスＣＳＴＶ［１５：０］を介して入力される。信号ＰＩＲＤＹＢは、ＰＣＩマスタコントローラがデータ転送可能な状態であるか否かを示すＰＣＩマスタコントローラから出力された信号であり、信号ＰＴＲＤＹＢは、メモリ部８がデータ転送可能な状態にあるか否かを示すチップセット６から出力された信号である。
【００３２】
コンパレータ３２の出力信号ＦＲＥＱＢが、（データバスＤＴＣ［１５：０］からのデータ）≧（データバスＤＬ［１５：０］からのデータ）及び／又は（データバスＤＴＣ［１５：０］からのデータ）≧（データバスＣＳＴＶ［１５：０］からのデータ）である場合、ロー（Ｌｏｗ）レベルとなってアサートされ、送信用ＦＩＦＯ１５に対して送信要求が行われる。送信用ＤＭＡＣ１４は、レスポンスパケットを準備するために必要なＰＣＩバス５からのデータリードの処理状況によって、該パケットの送信開始時間を自動的に変更させるようにした。
【００３３】
図５は、演算回路３４の内部構成例を示したブロック図である。図５に示すように、演算回路３４は、１６ｂｉｔのレジスタ４１を備え、マルチプレクサ（ＭＵＸ）４２からデータが入力される。マルチプレクサ４２には、データバスＳＴＶ［１５：０］及び加算器４３から出力された加算結果が入力され、マルチプレクサ４２は、信号ＭＲＥＱがハイ（Ｈｉｇｈ）レベルのときは、データバスＳＴＶ［１５：０］からのデータを、信号ＭＲＥＱがローレベルのときは、加算器４３の出力信号を選択して出力する。また、加算器４３は、レジスタ４１からデータバスＣＳＴＶ［１５：０］を介して出力されたデータと、マルチプレクサ（ＭＵＸ）４４から出力されたデータを加算して出力する。
【００３４】
また、信号ＰＩＲＤＹＢがインバータ４５に入力され、該インバータ４５の出力信号と信号ＰＴＲＤＹＢが入力されたＡＮＤ回路４６の出力信号が、マルチプレクサ４４のセレクト信号として入力される。マルチプレクサ４４は、該セレクト信号がハイレベルのときは所定値「０００４ｈ」を、該セレクト信号がローレベルのときは所定値「００００ｈ」を選択して出力する。
【００３５】
次に、図６〜図１０は、送信用ＤＭＡＣ１４が送信用ＦＩＦＯ１５に送信パケットをライトし、ＬＩＮＫ／ＰＨＹ回路１１にパケットリード要求を出すまでのタイミング例を示している。図６〜図１０を用いてパケット送信時のデータ転送装置１の動作について、もう少し詳細に説明する。
パケットを送信する際には、まず、送信パケットを作成するための情報としてデスクリプタ又はフィジカル・リードリクエストパケットのいずれかをレジスタ２１にライトする必要がある。
【００３６】
図６は、デスクリプタをレジスタ２１にライトするための各信号を示したタイミングチャートである。
図６において、タイミングＴ２で、ＰＣＩマスタコントローラへのリード要求を示す信号ＭＲＥＱがハイレベルになってアサートされ、同時に図４のタイミング制御回路部２３内にあるレジスタ（図示せず）に格納されたデスクリプタのメモリアドレスレジスタ値がデータバスＭＡ［３１：０］に出力され、３２バイト分のデータをリードするためにデータバスＭＬ［１５：０］にデータ「００２０ｈ」が出力される。
【００３７】
そして、ＰＣＩインタフェース制御回路１６内のＰＣＩマスタコントローラは、ＰＣＩバス５側からデータリードができると、前記ＰＣＩマスタコントローラ内にあるＦＩＦＯ（図示せず）が、格納するデータがない状態であるエンプティ状態でなくなるため、信号ＭＥＭＰがローレベルになる。タイミング制御回路部２３は、信号ＭＥＭＰがローレベルになると、前記ＰＣＩマスタコントローラへのデータリード要求信号ＭＲＤＢをローレベルにする。次に、リードデータバスＭＤ［３１：０］を介して順次リードされたデスクリプタデータＳ０〜Ｓ７が、レジスタ２１に蓄えられる。
【００３８】
次に、図７は、フィジカル・リードリクエストパケットをレジスタ２１にライトするためのタイミングを示したタイミングチャートである。
図７に示すように、タイミングＴ６〜Ｔ９の期間、受信用ＤＭＡＣ１３から信号ＲＥＱＷＲＢがローレベルになり、データバスＲＥＱＤ［３１：０］からフィジカル・リードリクエストパケットＰ０〜Ｐ３がリードされ、レジスタ２１にライトされる。このようにデスクリプタ又はフィジカル・リードリクエストパケットのいずれかがレジスタ２１にライトされ、送信用ＦＩＦＯ１５に送信パケットをライトする準備が整う。
【００３９】
次に、図８は、送信パケットのヘッダ部を送信用ＦＩＦＯ１５にライトするタイミング例を示したタイミングチャートである。
図８では、タイミングＴ６〜Ｔ９の期間、信号ＦＷＲＢがローレベルになって、送信用ＦＩＦＯ１５にデータがライトされることを示している。この場合、送信用ＤＭＡＣ１４は、信号ＦＷＲＢをローレベルにすると共に、レジスタ２１にすでに蓄えられているヘッダー部のデータをデータバスＦＤ［３１：０］に出力する。また、このときのパケットの最終データはまだライトしないことから、信号ＦＥＯＰはローレベルのままである。このようにして、送信用ＤＭＡＣ１４は、送信用ＦＩＦＯ１５にパケットのヘッダー部をライトさせる。
【００４０】
次に、図９及び図１０は、図６又は図７のタイミングでレジスタ２１に蓄えたデータを基にして、送信用ＤＭＡＣ１４が送信用ＦＩＦＯ１５にデータ部をライトするときのタイミング例を示したタイミングチャートである。なお、図９及び図１０で示した信号ＰＦＲＭＢ，ＰＩＲＤＹＢ，ＰＴＲＤＹＢ，ＰＳＴＯＰＢ及びデータバスＰＡＤ［３１：０］は、ＰＣＩバス５と接続される信号である。また、ＰＣＩ規格で用いる用語「イニシエータ」及び「ターゲット」において、ここではＰＣＩバス５からのデータリードのみの説明であるため、イニシエータはデータ転送装置１であり、ターゲットはメモリ部８となる。
【００４１】
図９及び図１０において、信号ＰＦＲＭＢは、ＰＣＩバス５のバスサイクルが実行されているか否かを示す信号であり、チップセット６から出力される。また、信号ＰＳＴＯＰＢはターゲットがイニシエータに対して現在実行中のトランザクションの中止を要求するときにチップセット６がアサートする信号であり、データバスＰＡＤ［３１：０］は、ＰＣＩバス５上における、アドレスとデータの入出力バスである。
【００４２】
図９において、タイミングＴ１で、送信用ＤＭＡＣ１４は信号ＭＲＥＱをハイレベルに立ち上げてＰＣＩマスタコントローラへリード要求を行う。同時に、送信用ＤＭＡＣ１４は、データバスＭＡ［３１：０］にメモリアドレスデータＭＳＡを、また、例えば「３０ｈ」ｂｙｔｅのデータを用意しようとしている場合、データバスＭＬ［１５：０］にデータ「００３０ｈ」をそれぞれ出力する。これらを受けて、ＰＣＩマスタコントローラは、タイミングＴ２から信号ＰＦＲＭＢをローレベルにしてアサートし、かつデータバスＰＡＤ［３１：０］にメモリ部８に対するメモリアドレスデータＭＳＡを出力する。
【００４３】
次に、ＰＣＩマスタコントローラは、タイミングＴ３から信号ＰＩＲＤＹＢをローレベルにしてアサートし、データリードが可能であることをチップセット６に知らせる。そして、チップセット６は、タイミングＴ４から信号ＰＴＲＤＹＢをローレベルにしてアサートしデータ送信が可能であることを示すと同時に、データバスＰＡＤ［３１：０］に順次データを出力する。タイミングＴ１０でチップセット６によって信号ＰＳＴＯＰＢがローレベルになってアサートされデータ転送を中止する要求が起こり、タイミングＴ１１からチップセット６によって信号ＰＴＲＤＹＢがハイレベルになってデアサートされる。ＰＣＩマスタコントローラは、タイミングＴ１１で信号ＰＦＲＭＢを、タイミングＴ１２で信号ＰＩＲＤＹＢをそれぞれハイレベルにしてデアサートし、データ転送を中断する。
【００４４】
しかし、送信用ＤＭＡＣ１４からＰＣＩマスタコントローラへのリード要求は「３０ｈ」ｂｙｔｅであるため、ＰＣＩマスタコントローラは、タイミングＴ１３から信号ＰＦＲＭＢを再度ローレベルにしてアサートすることによってリード要求を行い、タイミングＴ１３で前回のデータリードの続きのアドレス「ＭＳＡ＋１Ｃｈ」をデータバスＰＡＤ［３１：０］に出力する。
【００４５】
チップセット６は、タイミングＴ１５で信号ＰＴＲＤＹＢをローレベルにしてアサートし、タイミングＴ１５〜Ｔ１９でメモリ部８からのデータをデータバスＰＡＤ［３１：０］に順次出力する。また、ＰＣＩマスタコントローラは、タイミングＴ１９で合計「３０ｈ」ｂｙｔｅのデータリードが終了するため、信号ＰＦＲＭＢをハイレベルにしてデアサートし、トランザクションの終了をチップセット６に知らせる。信号ＰＩＲＤＹＢ及びＰＴＲＤＹＢは、タイミングＴ２０からそれぞれハイレベルになってデアサートされる。
【００４６】
このようなことから、タイミングＴ５〜Ｔ１１及びタイミングＴ１６〜Ｔ２０で、ＰＣＩマスタコントローラから送信用ＤＭＡＣ１４に入力される信号ＭＥＭＰがローレベルになる。このため、送信用ＤＭＡＣ１４は、タイミングＴ５で信号ＭＲＤＢ及びＦＷＲＢをローレベルにし、送信用ＦＩＦＯ１５に順次データをライトさせ、タイミングＴ２０では最終データであるため信号ＦＥＯＰをハイレベルにし、送信用ＦＩＦＯ１５に最終データがライトされる。
【００４７】
また、送信用ＦＩＦＯ１５へのデータライトしたバイト数を示すデータバスＤＴＣ［１５：０］からのデータは、タイミングＴ２のデータライト開始タイミングでデータ「０ｈ」にされてから、送信用ＦＩＦＯ１５にデータがライトされるごとに４インクリメントされる。また、スタートレジスタ３１からデータバスＳＴＶ［１５：０］に出力されるデータが「１４ｈ」である場合、演算回路３４からデータバスＣＳＴＶ［１５：０］にタイミングＴ２でデータバスＳＴＶ［１５：０］からのデータ「１４ｈ」が出力される。
【００４８】
信号ＰＩＲＤＹＢがローレベルであると共に信号ＰＴＲＤＹＢがハイレベルであり、データリードしようとしているがターゲット側からデータが来ない期間を示すタイミングのとき、すなわちタイミングＴ３及びＴ１４のとき、マルチプレクサ４４からデータ「０００４ｈ」が出力され、データバスＣＳＴＶ［１５：０］のデータが加算器４３によって４インクリメントされる。また、タイミングＴ１１では、図４におけるコンパレータ３２の比較結果が変化するため、タイミングＴ１２で信号ＦＲＥＱＢがローレベルになってアサートされ、ＬＩＮＫ／ＰＨＹ回路１１に対してパケットリード要求が行われる。
【００４９】
図９と同様のタイミング例ではあるが、信号ＰＩＲＤＹＢがローレベルであると共に信号ＰＴＲＤＹＢがハイレベルであり、データリードしようとしているがターゲット側からデータが来ない期間を示すタイミングが図９より長い場合の例を図１０に示す。
図１０に示すように、前記データが来ない期間がタイミングＴ３，Ｔ４，Ｔ１４，Ｔ１５で存在し、これらのときにデータバスＣＳＴＶ［１５：０］のデータは順次４インクリメントされる。また、タイミングＴ２０で図４のコンパレータ３２の比較結果が変化するため、タイミングＴ２１で信号ＦＲＥＱＢがローレベルになってアサートされ、ＬＩＮＫ／ＰＨＹ回路１１に対してパケットリード要求が行われる。
【００５０】
このように、本第１の実施の形態におけるデータ転送装置は、図１０では図９よりもターゲットのＰＣＩバス５へのデータ転送能力が低く、かつ、図９ではデータ部の「１８ｈ」ｂｙｔｅ目、図１０では「２４ｈ」ｂｙｔｅ目のデータが用意できた時点で、送信用ＤＭＡＣ１４が、ＬＩＮＫ／ＰＨＹ回路１１に対してパケットリード要求を行っている。このことから、ＰＣＩバス５のトランザクションでターゲットの状態及び転送能力に応じて自動的に送信パケットリード要求タイミングを変更することできる。
【００５１】
第２の実施の形態．
図１１は、本発明の第２の実施の形態におけるデータ転送装置の演算回路の構成例を示した図である。なお、本発明の第２の実施の形態におけるデータ転送装置の例を示したブロック図は、図１の送信用ＤＭＡＣ１４を送信用ＤＭＡＣ１４ａにし、図１のデータ転送装置１をデータ転送装置１ａにした以外は図１と同じであるので省略する。また、送信用ＤＭＡＣ１４ａの構成例を示したブロック図は、図４のタイミング制御回路部２３をタイミング制御回路部２３ａにした以外は図４と同じであるので省略する。図１１では、図５と同じものは同じ符号で示している。送信用ＤＭＡＣ１４ａは制御回路部をなしている。
【００５２】
図１１に示すように、演算回路３４ａは、１６ｂｉｔのレジスタ４１を備え、マルチプレクサ４２からデータが入力される。マルチプレクサ４２には、データバスＳＴＶ［１５：０］からのデータ及び加算器４３から出力された加算結果が入力されている。マルチプレクサ４２は、ＯＲ回路５２によって、信号ＭＲＥＱがハイレベルのとき又はコンパレータ５１の比較結果がハイレベルのときには、データバスＳＴＶ［１５：０］からのデータが選択され、これ以外のときは加算器４３から出力されたデータが選択される。コンパレータ５１は、データバスＳＴＶ［１５：０］からのデータと加算器４３から出力されたデータとの比較を行い、データバスＳＴＶ［１５：０］からのデータが加算器４３から出力されたデータよりも小さい場合はハイレベルの信号を出力し、これ以外の場合はローレベルの信号を出力する。
【００５３】
加算器４３には、レジスタ４１からデータバスＣＳＴＶ［１５：０］を介して出力されたデータと、マルチプレクサ４４から出力されたデータを加算して出力する。また、信号ＰＩＲＤＹＢ及びＰＴＲＤＹＢが対応する入力端に入力されたＮＯＲ回路５３の出力信号は、マルチプレクサ４４のセレクト信号として入力される。マルチプレクサ４４は、該セレクト信号がハイレベルのときは所定値「ＦＦＦＣｈ」を、該セレクト信号がローレベルのときは所定値「０００４ｈ」を選択して出力する。
【００５４】
このような構成において、図１２は、送信用ＤＭＡＣ１４ａが送信用ＦＩＦＯ１５に送信パケットをライトし、ＬＩＮＫ／ＰＨＹ回路１１にパケットリード要求を出すまでのタイミング例を示したタイミングチャートである。
図１２は、図１０で示したタイミングとほぼ同様であるが、図１０との相違点は、データバスＳＴＶ［１５：０］からのデータが「１Ｃｈ」であることと、データバスＣＳＴＶ［１５：０］からのデータが異なることにある。データバスＣＳＴＶ［１５：０］からのデータは、タイミングＴ２でデータバスＳＴＶ［１５：０］の値である「１Ｃｈ」に設定された後、実際にＰＣＩバス５上でデータ転送されているタイミングＴ５〜Ｔ１０及びタイミングＴ１６〜Ｔ２１でそれぞれ４デクリメントされ、これ以外のデータ転送が実行されていないタイミングでは４インクリメントされている。
【００５５】
しかし、タイミングＴ９〜Ｔ１１及びタイミングＴ２２では、コンパレータ５１の出力がハイレベルになるため、マルチプレクサ４２はデータバスＳＴＶ［１５：０］からのデータを選択し、レジスタ４１からデータバスＣＳＴＶ［１５：０］へ出力されるデータは、データバスＳＴＶ［１５：０］からのデータ「１Ｃｈ」のままである。また、タイミングＴ２０で図４のコンパレータ３２の比較結果が変化するため、タイミングＴ２１で信号ＦＲＥＱＢがローレベルになってアサートされ、送信用ＤＭＡＣ１４ａからＬＩＮＫ／ＰＨＹ回路１１へパケットリード要求が出力される。
このようにすることにより、本第２の実施の形態におけるデータ転送装置は、前記第１の実施の形態と同様の効果を得ることができる。
【００５６】
第３の実施の形態．
図１３は、本発明の第３の実施の形態におけるデータ転送装置の送信用ＤＭＡＣの構成例を示した図である。なお、本発明の第３の実施の形態におけるデータ転送装置の例を示したブロック図は、図１の送信用ＤＭＡＣ１４を送信用ＤＭＡＣ１４ｂにし、図１のデータ転送装置１をデータ転送装置１ｂにした以外は図１と同じであるので省略する。また、図１３では、図４と同じものは同じ符号で示し、ここではその説明を省略すると共に図４との相違点のみ説明する。送信用ＤＭＡＣ１４ｂは制御回路部をなす。
【００５７】
図１３における図４との相違点は、マルチプレクサ（ＭＵＸ）６１、Ｄ型フリップフロップ６２、ＡＮＤ回路６３及びインバータ６４を追加したことにあり、これに伴って図４の送信用ＤＭＡＣ１４を送信用ＤＭＡＣ１４ｂにしたことにある。
図１３において、インバータ６４には、送信用ＦＩＦＯ１５に準備されたデータをＬＩＮＫ／ＰＨＹ回路１１からＩＥＥＥ１３９４バス３へ送信を開始したが、送信用ＦＩＦＯ１５内へのデータの準備が間に合わなくなって送信パケットがデータエラーになったときにハイレベルになる信号ＵＮＤＥＲＴＭが送信用ＦＩＦＯ１５から入力される。
【００５８】
マルチプレクサ６１には、データバスＤＬ［１５：０］からのデータとデータバスＣＳＴＶ［１５：０］からのデータがそれぞれ入力されている。マルチプレクサ６１は、Ｄ型フリップフロップ６２の出力端ＱＢからの出力信号に応じて、データバスＤＬ［１５：０］からのデータ又はデータバスＣＳＴＶ［１５：０］からのデータのいずれか一方をコンパレータ３２の対応する入力端に出力する。Ｄ型フリップフロップ６２のＤ入力端には電源電圧ＶＤＤが入力され、リセット端ＲＢにはインバータ６４の出力信号が入力されている。また、Ｄ型フリップフロップ６２のクロック信号入力端にはＡＮＤ回路６３の出力信号が入力され、ＡＮＤ回路６３の各入力端には、Ｄ型フリップフロップ６２から出力された信号と信号ＦＲＥＱＢが対応して入力されている。
【００５９】
このような構成において、図１４は、図１３の各信号のタイミング例を示したタイミングチャートである。図１４において、タイミングＴ１〜Ｔ６及びタイミングＴ８〜Ｔ１３で送信用ＦＩＦＯ１５にパケットをライトする。また、タイミングＴ３で信号ＦＲＥＱＢがローレベルになってアサートされ、送信用ＦＩＦＯ１５からＬＩＮＫ／ＰＨＹ回路１１を介してＩＥＥＥ１３９４バス３へパケット送信が開始されたが、タイミングＴ５で送信用ＦＩＦＯ１５内へのデータ準備が間に合わず信号ＵＮＤＥＲＴＭがハイレベルとなる。これに伴って、タイミングＴ５でＤ型フリップフロップ６２の出力端ＱＢがハイレベルに立ち上がる。このため、マルチプレクサ６１は、データバスＤＬ［１５：０］からのデータを選択し、データバスＮＳＴＶ［１５：０］を介してコンパレータ３２の対応する入力端に出力する。
【００６０】
したがって、コンパレータ３２は、データバスＤＴＣ［１５：０］からのデータとデータバスＤＬ［１５：０］からのデータとの比較を行うことになる。このことから、データエラーが発生した次のパケットは、必ず送信用ＦＩＦＯ１５にデータが用意できたときのみ送信要求が行われる。しかし、一度確実にパケット送信を行った後は、タイミングＴ１８でＡＮＤ回路６３の出力端がローレベルからハイレベルに立ち上がり、Ｄ型フリップフロップ６２の出力端ＱＢはローレベルになる。
【００６１】
このため、マルチプレクサ６１からはデータバスＣＳＴＶ［１５：０］からのデータが選択されて出力され、コンパレータ３２は、データバスＤＴＣ［１５：０］、データバスＤＬ［１５：０］及びデータバスＣＳＴＶ［１５：０］からの各データの比較を行った結果を示した信号ＦＲＥＱＢを出力する。このことから、送信用ＦＩＦＯ１５からＬＩＮＫ／ＰＨＹ回路１１へのデータ転送を開始するタイミングは、演算回路３４の機能が作用したタイミングになる。
【００６２】
このように、本第３の実施の形態におけるデータ転送装置は、前記第１の実施の形態と同様の効果を得ることができると共に、パケット送信を行っているときにデータエラーが発生した場合、次の送信パケットの送信が確実に行うことができるため、システム上の安定度を向上させることができる。
【００６３】
なお、前記第１から第３の各実施の形態において、符号の末尾にＢを付けている信号、信号入力端及び信号出力端は、ローレベルでアクティブになり、符号の末尾にＢが付いていない信号、信号入力端及び信号出力端は、ハイレベルでアクティブになることをそれぞれ示している。
【００６４】
【発明の効果】
上記の説明から明らかなように、本発明のデータ転送装置によれば、データ転送装置の処理能力を向上させるため、パケット送信タイミングを早めたような場合でも、その送信データの準備をするための内部システム装置の状態によって自動的に送信開始タイミングを変更することができるため、データエラーとなった送信パケットの発生を低減させることができ、データ転送処理能力を更に向上させることができる。また、データ転送処理能力を向上させるために送信開始タイミングを早めた際に送信パケットがデータエラーになった場合、該データエラーとなった送信パケットを再送する際は、送信開始タイミングを早める処理を無効にすることによって、確実なデータ転送が可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるデータ転送装置の例を示したブロック図である。
【図２】ＩＥＥＥ１３９４規格のパケットの概略構成例を示した図である。
【図３】デスクリプタの概略構成例を示した図である。
【図４】図１の送信用ＤＭＡＣ１４の構成例を示したブロック図である。
【図５】図４の演算回路３４の内部構成例を示したブロック図である。
【図６】デスクリプタをレジスタ２１にライトするための各信号を示したタイミングチャートである。
【図７】フィジカル・リードリクエストパケットをレジスタ２１にライトするためのタイミングを示したタイミングチャートである。
【図８】送信パケットのヘッダー部を送信用ＦＩＦＯ１５にライトするタイミング例を示したタイミングチャートである。
【図９】送信用ＦＩＦＯ１５にデータ部をライトするときの図４及び図５で示した各信号のタイミング例を示したタイミングチャートである。
【図１０】送信用ＦＩＦＯ１５にデータ部をライトするときの図４及び図５で示した各信号の他のタイミング例を示したタイミングチャートである。
【図１１】本発明の第２の実施の形態におけるデータ転送装置の演算回路の構成例を示した図である。
【図１２】送信用ＦＩＦＯ１５に送信パケットをライトし、ＬＩＮＫ／ＰＨＹ回路１１にパケットリード要求を出すまでの各信号のタイミング例を示したタイミングチャートである。
【図１３】本発明の第３の実施の形態におけるデータ転送装置の送信用ＤＭＡＣの構成例を示した図である。
【図１４】図１３の各信号のタイミング例を示したタイミングチャートである。
【図１５】ＩＥＥＥ１３９４バス及びＰＣＩバスでのデータの流れにおける概略のタイミング例を示した図である。
【図１６】ＩＥＥＥ１３９４バス及びＰＣＩバスでのデータの流れにおける概略の他のタイミング例を示した図である。
【図１７】ＩＥＥＥ１３９４バス及びＰＣＩバスでのデータの流れにおける概略の他のタイミング例を示した図である。
【符号の説明】
１，１ａ，１ｂ　データ転送装置
２　ＰＣ
３　ＩＥＥＥ１３９４バス
４　ＨＤＤ装置
５　ＰＣＩバス
６　チップセット
７　ＣＰＵ
８　メモリ部
１１　ＬＩＮＫ／ＰＨＹ回路
１２　受信用ＦＩＦＯ
１３　受信用ＤＭＡＣ
１４，１４ｂ　送信用ＤＭＡＣ
１５　送信用ＦＩＦＯ
１６　インタフェース制御回路
２１，４１　レジスタ
２２，４２，４４，６１　マルチプレクサ
２３，２３ｂ　タイミング制御回路部
３１　スタートレジスタ
３２，５１　コンパレータ
３３　データアップカウンタ
３４，３４ａ　演算回路
４３　加算器
４５，６４　インバータ
４６，６３　ＡＮＤ回路
５２　ＯＲ回路
５３　ＮＯＲ回路
６２　Ｄ型フリップフロップ
【図１】
2004054344.tif 000003
【図２】
2004054344.tif 000004
【図３】
2004054344.tif 000005
【図４】
2004054344.tif 000006
【図５】
2004054344.tif 000007
【図６】
2004054344.tif 000008
【図７】
2004054344.tif 000009
【図８】
2004054344.tif 000010
【図９】
2004054344.tif 000011
【図１０】
2004054344.tif 000012
【図１１】
2004054344.tif 000013
【図１２】
2004054344.tif 000014
【図１３】
2004054344.tif 000015
【図１４】
2004054344.tif 000016
【図１５】
2004054344.tif 000017
【図１６】
2004054344.tif 000018
【図１７】
2004054344.tif 000019