(57)【要約】【課題】この発明は、データ転送の中止が決定された後に不所望に送信される無効データを受信するという無駄な処理を削減して、電力消費量の節約と、システムバスやメモリ等における無駄なトラフィックの削減を図り得るようにしたデータ転送装置及びデータ転送方法を提供することを目的としている。【解決手段】第１の機器（１１）と、第１の機器（１１）に接続され、第１の機器（１１）によって制御される第２の機器（１２）との間でデータ転送を制御する転送手段（１６）と；第２の機器から第１の機器にデータ転送が行なわれている状態で、第１の機器（１１）が第２の機器（１２）から送信されるデータの受信を中止することを決定したとき、第２の機器（１２）から送信されるデータを破棄する制御手段（２４）とを備える。【選択図】    図１
2008118211.tif 000002
【特許請求の範囲】
【請求項１】
第１の機器と、
前記第１の機器に接続され、該第１の機器によって制御される第２の機器と、
前記第１の機器による制御に基づいて、前記第１の機器と第２の機器との間でデータ転送を制御する転送手段と、
前記転送手段により前記第２の機器から前記第１の機器にデータ転送が行なわれている状態で、前記第１の機器が前記第２の機器から送信されるデータの受信を中止することを決定したとき、前記第２の機器から送信されるデータを破棄する制御手段とを具備することを特徴とするデータ転送装置。
【請求項２】
前記転送手段は、前記第２の機器から送信されるデータを取り込んで出力するＦＩＦＯ部を備え、
前記制御手段は、前記第１の機器が前記第２の機器から送信されるデータの受信を中止することを決定したとき、前記第２の機器から送信されるデータが前記ＦＩＦＯ部に取り込まれないように制御することを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記制御手段は、前記第１の機器が前記第２の機器から送信されるデータの受信を中止することを決定したとき、前記ＦＩＦＯ部に対して、前記第２の機器から送信されるデータの受け取りを要求する要求信号を発生させないように制御することを特徴とする請求項２記載のデータ転送装置。
【請求項４】
前記制御手段は、
前記第１の機器が前記第２の機器から送信されるデータの受信を中止することを決定したとき、破棄モードに設定されるレジスタと、
前記レジスタの破棄モードに設定されたときの出力に基づいて、前記ＦＩＦＯ部に対して、前記第２の機器から送信されるデータの受け取りを要求する要求信号を発生させないように制御するゲート手段とを具備することを特徴とする請求項２記載のデータ転送装置。
【請求項５】
前記制御手段は、前記第１の機器から前記第２の機器に対してデータ転送の中止を指示するコマンドが送信されたとき、前記第２の機器から送信されるデータを破棄するモードを解除することを特徴とする請求項１記載のデータ転送装置。
【請求項６】
前記コマンドは、前記第２の機器から前記第１の機器へのデータ転送が行なわれなくなったときに、前記第１の機器から前記第２の機器へ送信されることを特徴とする請求項５記載のデータ転送装置。
【請求項７】
前記第１の機器はコンピュータであり、前記第２の機器はストレージデバイスであることを特徴とする請求項１記載のデータ転送装置。
【請求項８】
第１の機器と、前記第１の機器に接続され、該第１の機器によって制御される第２の機器との間でデータ転送を制御するデータ転送方法であって、
前記第２の機器から前記第１の機器にデータ転送が行なわれている状態で、前記第１の機器が前記第２の機器から送信されるデータの受信を中止することを決定する第１の工程と、
前記第１の工程で前記第１の機器が前記第２の機器から送信されるデータの受信中止を決定したとき、前記第２の機器から送信されるデータを破棄する第２の工程とを具備することを特徴とするデータ転送方法。
【請求項９】
前記第１の機器から前記第２の機器に対してデータ転送の中止を指示するコマンドが送信されたとき、前記第２の機器から送信されるデータを破棄するモードを解除する第３の工程を具備することを特徴とする請求項８記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばホスト装置とそれに接続されたデバイスとの間でデータ転送を行なうデータ転送装置及びデータ転送方法の改良に関する。
【背景技術】
【０００２】
周知のように、例えばＰＣ（personal computer）等のホスト装置と、このホスト装置に接続されたＨＤＤ（hard disk drive）等のストレージデバイスとの間でデータ転送を行なう際、エラーやアボート等の発生により、ホスト装置がデバイスから送信されるデータの受信を中止したい場合がある。
【０００３】
このような場合、ホスト装置は、デバイスにリセットコマンドを発生して、データ転送の中止を指示することになるが、デバイスからデータが送信され続けている間は、ホスト装置とデバイスとを接続するバスラインがデバイスからのデータ送信に使用されているため、リセットコマンドをデバイスに送信することができない。
【０００４】
すなわち、ホスト装置は、デバイスからのデータ送信が完了するか、または、一旦途切れるかして、バスラインが空いてからでないと、デバイスにリセットコマンドを送信してデータ転送の中止を伝えることができない。このため、ホスト装置は、データ転送の中止を決定してから、実際にリセットコマンドがデバイスに送信されるまでの間、デバイスから送信されるデータを受信し続けることになる。
【０００５】
しかしながら、ホスト装置がデータ転送の中止を決定した後にデバイスから送信されるデータは、ホスト装置にとっては無効と判断すべきデータであり、そのような無効データを正規のデータと同様に受信することは、ホスト装置内部のシステムバスやメモリ等を含む各種の構成部品に無駄な処理を行なわせることになるとともに、電力消費の点でも不利になる。
【０００６】
特許文献１には、独立したバスアービトレーション機能を持つ２つのシステムバス間でデータ転送を可能とするバスブリッジ装置であって、バスタイムアウトエラーが起きる可能性がある場合、バスサイクルを終了させ、読み出したデータを内部に取り込まずに破棄するようにした構成が開示されている。
【特許文献１】特開平１０−３４４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、この発明は上記事情を考慮してなされたもので、データ転送の中止が決定された後に不所望に送信される無効データを受信するという無駄な処理を削減して、電力消費量の節約と、システムバスやメモリ等における無駄なトラフィックの削減を図り得るようにしたデータ転送装置及びデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係るデータ転送装置は、第１の機器と、第１の機器に接続され、該第１の機器によって制御される第２の機器と、第１の機器による制御に基づいて、第１の機器と第２の機器との間でデータ転送を制御する転送手段と、転送手段により第２の機器から第１の機器にデータ転送が行なわれている状態で、第１の機器が第２の機器から送信されるデータの受信を中止することを決定したとき、第２の機器から送信されるデータを破棄する制御手段とを備えるようにしたものである。
【０００９】
また、この発明に係るデータ転送方法は、第１の機器と、第１の機器に接続され、該第１の機器によって制御される第２の機器との間でデータ転送を制御するデータ転送方法を対象としている。そして、第２の機器から第１の機器にデータ転送が行なわれている状態で、第１の機器が第２の機器から送信されるデータの受信を中止することを決定する第１の工程と、第１の工程で第１の機器が第２の機器から送信されるデータの受信中止を決定したとき、第２の機器から送信されるデータを破棄する第２の工程とを備えるようにしたものである。
【発明の効果】
【００１０】
上記した発明によれば、第２の機器から第１の機器にデータ転送が行なわれている状態で、第１の機器が第２の機器からのデータの受信を中止することを決定したとき、第２の機器から送信されるデータを破棄するようにしたので、データ転送の中止が決定された後に不所望に送信される無効データを受信するという無駄な処理を削減して、電力消費量の節約と、システムバスやメモリ等における無駄なトラフィックの削減を図ることが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、この発明の実施の形態について図面を参照して詳細に説明する。図１は、この実施の形態で説明するデータ転送システムの一例を示している。すなわち、このデータ転送システムは、例えばＰＣ等でなるホスト装置１１と、例えばＨＤＤ等でなるデバイス１２とを、バスライン１３を介してデータ転送可能に接続したものである。
【００１２】
このうち、ホスト装置１１は、プロセッサ１４とメモリ部１５とデータ転送制御部１６とを備え、これらがシステムバス１７で接続された構成となっている。そして、プロセッサ１４は、ホスト装置１１が実行する各種の動作を統括的に制御している。また、メモリ部１５は、プロセッサ１４が実行する各種の制御プログラムの格納、プロセッサ１４に対する作業エリアの提供、映像や音声等の情報，各種の設定情報及び制御情報等の格納を行なっている。
【００１３】
さらに、データ転送制御部１６は、例えばパラレルＡＴＡ規格またはシリアルＡＴＡ規格に準拠した形態で、メモリ部１５とデバイス１２との間のデータ転送を制御している。すなわち、このデータ転送制御部１６は、物理層１８とデータ制御部１９とＦＩＦＯ（first in first out）部２０とＤＭＡ（direct memory access）部２１とを備えている。
【００１４】
そして、ホスト装置１１がデバイス１２から送信されるデータを受信する場合には、デバイス１２からの送信データが、バスライン１３、物理層１８、データ制御部１９の受信バッファ２２及びＦＩＦＯ部２０を介した後、ＤＭＡ部２１によりシステムバス１７を介してメモリ部１５に転送され、書き込まれる。
【００１５】
また、ホスト装置１１がデバイス１２にデータを送信する場合には、ＤＭＡ部２１がシステムバス１７を介してメモリ部１５からデータを読み出し、そのデータが、ＦＩＦＯ部２０、データ制御部１９の送信バッファ２３、物理層１８及びバスライン１３を介してデバイス１２に転送される。
【００１６】
ここで、上記データ制御部１９には、データフロー制御部２４が設けられている。このデータフロー制御部２４は、プロセッサ１４がデバイス１２から送信されるデータの受信を中止することを決定したとき、その時点より以後にデバイス１２から送信される、ホスト装置１１にとっては無効と判断すべきデータを、ＦＩＦＯ部２０に取り込ませることなく破棄（読み捨て）するための破棄モードを設定するように機能する。
【００１７】
図２は、上記データ制御部１９におけるデータフロー制御部２４及び受信バッファ２２の一例を示している。すなわち、データフロー制御部２４は、破棄要求設定部２５を備えている。この破棄要求設定部２５は、通常は論理値“０”を出力しており、プロセッサ１４がデバイス１２から送信されるデータの受信を中止することを決定したときに、論理値“１”を出力する。
【００１８】
また、この破棄要求設定部２５は、論理値“１”を出力している状態で、デバイス１２に対してデータ転送の中止を指示するリセットコマンドが実際に送信されたとき、その出力が論理値“０”に戻される。
【００１９】
そして、この破棄要求設定部２５の出力は、レジスタ２６により所定のクロックＣＬＫに同期して保持され出力される。このレジスタ２６の保持内容は、クリア信号ＣＬＲを供給することによりリセットすることが可能である。このレジスタ２６の保持出力は、ノット回路２７で反転された後、アンド回路２８の一方の入力端に供給される。
【００２０】
このアンド回路２８の他方の入力端には、受信制御部２９の出力が供給されている。この受信制御部２９は、デバイス１２から送信されたデータが上記受信バッファ２２に保持され、ＦＩＦＯ部２０に渡す用意ができたとき、アンド回路２８に対して受信要求信号ＲＣＶ＿ＲＥＱとなる論理値“１”の信号を出力し、それ以外の状態で、論理値“０”を出力している。
【００２１】
このため、通常、破棄要求設定部２５から論理値“０”が出力されている状態では、アンド回路２８の一方の入力端には論理値“１”が供給されている。これにより、受信制御部２９から受信要求信号ＲＣＶ＿ＲＥＱ（論理値“１”）が出力されると、アンド回路２８からＦＩＦＯ部２０に対して、データの受け取りを要求する要求信号ＲＥＱとなる論理値“１”の信号が出力される。
【００２２】
そして、ＦＩＦＯ部２０は、データを受け取れる状態であれば、データの受け取りを許可する許可信号ＲＤＹとなる論理値“１”の信号を受信制御部２９に出力する。これにより、ＦＩＦＯ部２０は、要求信号ＲＥＱ（論理値“１”）と許可信号ＲＤＹ（論理値“１”）とが共に発生されたことを条件として、現在受信バッファ２２に保持されているデータをＲＣＶ＿ＤＡＴＡから受け取り保持する。
【００２３】
また、受信バッファ２２は、物理層１８から供給されたデータＰＨＹ＿ＤＩＮを保持するレジスタ３０を備えており、受信制御部２９からデータ保持信号ＬＤ（論理値“１”）が供給されたとき、データＰＨＹ＿ＤＩＮをレジスタ３０に保持し、ＲＣＶ＿ＤＡＴＡに出力する。
【００２４】
一方、プロセッサ１４がデバイス１２から送信されるデータの受信を中止することを決定したときには、破棄要求設定部２５の出力は論理値“１”となり、これがレジスタ２６に保持されることにより、レジスタ２６からは、破棄モードであることを示す破棄モード信号ＨＡＫＩ＿ＭＯＤＥとなる論理値“１”の信号が発生される。
【００２５】
すると、アンド回路２８の出力は、受信制御部２９の出力に無関係に論理値“０”となり、ＦＩＦＯ部２０に対してデータの受け取りを要求する要求信号ＲＥＱ（論理値“１”）が発生されなくなる。これにより、ＦＩＦＯ部２０では、データＲＣＶ＿ＤＡＴＡの受け取りが行なわれなくなる。
【００２６】
しかしながら、その一方で、受信制御部２９では、受信要求信号ＲＣＶ＿ＲＥＱ（論理値“１”）と許可信号ＲＤＹ（論理値“１”）とが共に発生された場合、ＦＩＦＯ部２０がデータを受け取ったものと認識する。これにより、受信制御部２９がデータ保持信号ＬＤ（論理値“１”）を出力することによって、受信バッファ２２は、新たな次のデータＰＨＹ＿ＤＩＮを物理層１８から受け取り、レジスタ３０に保持する。
【００２７】
すなわち、受信バッファ２２の保持データは、これ以降も新たなデータＰＨＹ＿ＤＩＮで更新され続けるにもかかわらず、結果的に以降の受信データはここで破棄されることになる。
【００２８】
このため、プロセッサ１４がデバイス１２から送信されるデータの受信を中止することを決定した後にデバイス１２から送信される、ホスト装置１１にとっては無効と判断すべきデータをＦＩＦＯ部２０に渡さずに破棄し、ＦＩＦＯ部２０からＤＭＡ部２１及びシステムバス１７を介してメモリ部１５に書き込ませるという一連の処理を施さないようにしたので、無駄な処理動作が行なわれることを防止することができ、電力消費量の節約と、システムバスやメモリ等における無駄なトラフィックの削減を図ることができる。
【００２９】
特に、無効データがメモリ部１５に書き込まれた場合、無効データの内容によっては、ステイタスチェック等の後処理を実行させるものもあるため、このような無駄な後処理が実行されることも防止することができ、データ転送システムの負荷と性能の低下とを実用上十分なレベルに軽減することができる。
【００３０】
また、デバイス１２に対してデータ転送の中止を指示するリセットコマンドが実際に送信された後は、破棄要求設定部２５の出力が論理値“０”に戻されるため、データフロー制御部２４は、破棄モードの解除された通常の状態、つまり、デバイス１２から送信されるデータの受信が可能な状態に復元される。
【００３１】
デバイス１２に対してリセットコマンドが実際に送信されると、そのリセットコマンドに基づいてデバイス１２がデータ転送の中止を認識することができる。このため、破棄要求設定部２５の出力を論理値“０”に戻すタイミングとして、リセットコマンドが実際に送信されたことを利用するのは有効である。
【００３２】
図３及び図４は、上記したデータ転送に伴なう一連の処理動作をまとめたフローチャートを示している。まず、データ転送システムのアイドル状態（ステップＳ１）において、プロセッサ１４は、ステップＳ２で、デバイス１２から送信されるデータの受信を中止することが決定されたか否か、つまり、デバイス１２に対してリセットコマンドを送信する要求が発生されたか否かを判別する。
【００３３】
そして、デバイス１２に対してリセットコマンドを送信する要求が発生されていないと判断された場合（ＮＯ）、プロセッサ１４は、ステップＳ３で、デバイス１２からホスト装置１１に対してデータの送信が要求されたか否かを判別し、要求されていないと判断された場合（ＮＯ）、ステップＳ１の処理に戻される。
【００３４】
また、上記ステップＳ３でデバイス１２からホスト装置１１に対してデータの送信が要求されたと判断された場合（ＹＥＳ）、プロセッサ１４は、ステップＳ４で、破棄モードであるか否か、つまり、レジスタ２６から破棄モード信号ＨＡＫＩ＿ＭＯＤＥ（論理値“１”）が出力されているか否かを判別する。
【００３５】
そして、破棄モードでないと判断された場合（ＮＯ）、プロセッサ１４は、ステップＳ５で、デバイス１２から送信されたデータを受信してメモリ部１５に書き込むように、つまり、デバイス１２からホスト装置１１へのデータ転送が正常に行なわれるように各部を制御する。
【００３６】
その後、プロセッサ１４は、ステップＳ６で、デバイス１２から送信されるデータの受信を中止することが決定されたか否かを判別し、決定されていないと判断された場合（ＮＯ）、ステップＳ７で、デバイス１２からホスト装置１１へのデータ転送が全て完了したか否かを判別する。
【００３７】
そして、データ転送が全て完了したと判断された場合（ＹＥＳ）、プロセッサ１４は、ステップＳ１の処理に戻され、データ転送が全て完了していないと判断された場合（ＮＯ）、ステップＳ５の処理に戻される。デバイス１２からホスト装置１１への通常のデータ転送は、ステップＳ１〜Ｓ７の流れで処理が行なわれ、データ転送が継続されている間は、ステップＳ５〜Ｓ７の処理が繰り返される。
【００３８】
また、上記ステップＳ６でデバイス１２から送信されるデータの受信を中止することが決定されたと判断された場合（ＹＥＳ）、プロセッサ１４は、ステップＳ８で、ＤＭＡ部２１の動作を停止させるとともに、破棄要求設定部２５の出力を論理値“１”とし、レジスタ２６から破棄モードであることを示す破棄モード信号ＨＡＫＩ＿ＭＯＤＥ（論理値“１”）を出力させる。
【００３９】
このステップＳ８の後、または、上記ステップＳ４で既に破棄モードであると判断された場合（ＹＥＳ）には、前述したように、データ制御部１９からのデータ転送要求信号ＲＥＱがアンド回路２８によって強制的に論理値“０”となるので、ステップＳ９で、デバイス１２から送信され受信バッファ２２のレジスタ３０に保持されたデータは、ＦＩＦＯ部２０に渡されずに破棄されることになる。
【００４０】
その後、プロセッサ１４は、ステップＳ１０で、デバイス１２からホスト装置１１へのデータ転送が全て完了したか否かを判別し、データ転送が全て完了したと判断された場合（ＹＥＳ）、ステップＳ１の処理に戻され、データ転送が全て完了していないと判断された場合（ＮＯ）、ステップＳ９の処理に戻される。
【００４１】
また、上記ステップＳ２でデバイス１２に対してリセットコマンドを送信する要求が発生された判断された場合（ＹＥＳ）、プロセッサ１４は、ステップＳ１１で、デバイス１２に対してリセットコマンドを送信する。そして、リセットコマンドが送信されると、プロセッサ１４は、ステップＳ１２で、破棄要求設定部２５の出力を論理値“０”に戻し、レジスタ２６の出力を論理値“０”として破棄モードを解除し、ステップＳ１の処理に戻される。
【００４２】
なお、この発明は上記した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
【図面の簡単な説明】
【００４３】
【図１】この発明の実施の形態を示すもので、データ転送システムの一例を説明するために示すブロック構成図。
【図２】同実施の形態におけるデータ転送システムのデータ制御部及び受信バッファの一例を説明するために示すブロック構成図。
【図３】同実施の形態におけるデータ転送システムの主要な処理動作の一部を説明するために示すフローチャート。
【図４】同実施の形態におけるデータ転送システムの主要な処理動作の残部を説明するために示すフローチャート。
【符号の説明】
【００４４】
１１…ホスト装置、１２…デバイス、１３…バスライン、１４…プロセッサ、１５…メモリ部、１６…データ転送制御部、１７…システムバス、１８…物理層、１９…データ制御部、２０…ＦＩＦＯ部、２１…ＤＭＡ部、２２…受信バッファ、２３…送信バッファ、２４…データフロー制御部、２５…破棄要求設定部、２６…レジスタ、２７…ノット回路、２８…アンド回路、２９…受信制御部、３０…レジスタ。
【図１】
2008118211.tif 000003
【図２】
2008118211.tif 000004
【図３】
2008118211.tif 000005
【図４】
2008118211.tif 000006