"転送データサイズの上限値を設定可能なレジスタと、この上限値と外部から送られた転送サイズとを比較し、この転送サイズがレジスタ設定値より大きい場合、この転送サイズを減少させる機構とを備えたデータ転送装置。コマンド数の下限値を設定可能な下限値レジスタを更に備え、外部から送られたコマンドのうち未実行なコマンドの数がこの下限値より小さい場合に前記転送サイズを減少する請求項1に記載のデータ転送装置。コマンド実行状況を監視し、保持コマンドに対し、実行済みであるか、未実行であるかのフラグを設定する請求項1に記載のデータ転送装置。未実行と分類された前記コマンドに対し、コマンド発行先イニシエータのアドレスを参照し、このイニシエータごとに未実行コマンド数の管理を行う請求項3に記載のデータ転送装置。レジスタに設定値を設定し、転送データサイズの上限値を設定し、この上限値と外部から送られた転送サイズとを比較し、この転送サイズが前記設定値より大きい場合、この転送サイズを減少させるデータ転送方法。本発明の実施の形態は、データ転送をより柔軟に行うことができるデータ転送装置及びデータ転送方法を提供することを目的とする。上記課題を解決するために、実施形態によればデータ転送装置は、転送データサイズの上限値を設定可能なレジスタと、この上限値と外部から送られた転送サイズとを比較し、この転送サイズがレジスタ設定値より大きい場合、この転送サイズを減少させる機構とを備える。以下、一実施形態を図1乃至図5を参照して説明する。図1は第1の実施形態に係る磁気ディスク装置を備えた電子機器の典型的な構成を示すブロック図である。図1において、電子機器は、磁気ディスク装置HDD10及びホストホストシステム20を備えている。電子機器は、例えば、パーソナルコンピュータ、ビデオカメラ、音楽プレーヤー、携帯端末、或いは携帯電話機である。ホスト20はHDD10を当該ホスト20の記憶装置として利用する。HDD10は、ヘッドディスクアセンブリ部HDA部100と、制御ボード部200とを備えている。HDA部100は、例えば2枚のディスク磁気ディスク1101及び1102と、スピンドルモータSPM130と、アクチュエータ140と、ヘッドIC150とを備えている。ディスク1101及び1102の各々は上側と下側の2つの記録面を備えている。ディスク1101及び1102はSPM130により高速に回転させられる。ディスク110ii=1,2はCDRconstantdensityrecordingと呼ばれる周知の記録フォーマットを適用している。このためディスク110iの各記録面は、当該ディスク11iの半径方向に複数のゾーンに区分して管理される。つまり、ディスク110iの各記録面は、複数のゾーンを備えている。アクチュエータ140はディスク1101のそれぞれの記録面に対応して配置されるヘッドアームの先端にヘッド磁気ヘッド1200及び1201を備えている。アクチュエータ140は更に、ディスク1102のそれぞれの記録面に対応して配置されるヘッドアームの先端にヘッド1202及び1203を有する。ヘッド1200及び1201は、ディスク1101へ/からのデータの書き込み/読み出しに用いられ、ヘッド1202及び1203は、ディスク1102へ/からのデータの書き込み/読み出しに用いられる。アクチュエータ140はボイスコイルモータVCM141を備えている。アクチュエータ140はVCM141によって駆動され、ヘッド1200乃至1203をディスク1101及び1102の半径方向に移動させる。SPM130及びVCM141は、後述するモータドライバIC210からそれぞれ供給される駆動電流SPM電流及びVCM電流により駆動される。ヘッドIC150は、ヘッド120jj=0,1,2,3により読み出された信号リード信号を増幅する。ヘッドIC150はまた、後述するリード/ライトチャネル230から転送されるライトデータをライト電流に変換してヘッド120jに出力する。制御ボード部200は、モータドライバIC210及びシステムLSI220の2つのLSIを備えている。モータドライバIC210は、SPM130を一定の回転速度で駆動する。モータドライバIC210はまた、CPU270から指定されたVCM操作量に相当する値の電流VCM電流をVCM141に供給することで、アクチュエータ140を駆動する。システムLSI220は、リード/ライトチャネルR/Wチャネル230、ディスクコントローラHDC240、バッファRAM250、フラッシュメモリ260、プログラムROM270、CPU280及びRAM290が単一チップに集積されたSOCSystemonChipと呼ばれるLSIである。R/Wチャネル230は、リード/ライトに関連する信号処理を行う信号処理デバイスである。R/Wチャネル230は、リード信号をデジタルデータに変換し、このデジタルデータからリードデータを復号する。R/Wチャネル230はまた、上記デジタルデータからヘッド120jの位置決めに必要なサーボデータを抽出する。R/Wチャネル230はまた、ライトデータを符号化する。HDC240は、ホスト20とホストインタフェース21を介して接続されている。HDC240は、ホスト20から転送されるコマンドライトコマンド、リードコマンド等を受信する。HDC240は、ホスト20と当該HDC240との間のデータ転送を制御する。HDC240は、R/Wチャネル230を介して行われるディスク110ii=1,2と当該HDC240との間のデータ転送を制御する。バッファRAM250は、ディスク110iに書き込まれるべきデータ及びディスク110iからヘッドIC150及びR/Wチャネル230を介して読み出されたデータを一時格納するのに用いられる。フラッシュメモリ260は、書き換え可能な不揮発性メモリである。フラッシュメモリ260は、例えばホストから受信するライトコマンドの端数セクタのデータを一時的に格納するのに用いられる。プログラムROM270は、制御プログラムファームウェアプログラムを予め格納する。なお、制御プログラムがフラッシュメモリ260の一部の領域に格納されていても構わない。CPU280は、HDD10の主コントローラとして機能する。CPU280はプログラムROM270に格納されている制御プログラムに従ってHDD10内の他の少なくとも一部の要素を制御する。RAM290の一部の領域は、CPU280の作業領域として用いられる。この作業領域には、HDD10のパワーオン時に、フラッシュメモリ260に格納されている一部のデータがロードされる。なお図2は、実施形態の要部を示す機能ブロック構成図である。図1のハードウェア構成を基にしているが、SSDSolidStateDrive等のハードウェア構成を基にしても同様な構成となる。図2に示すように、ディスク装置記録装置10Bは、MPU380、HDDコントローラ340AとI/F340B、バッファ350、不揮発性メモリ360、磁気ディスク媒体110、メモリ390、ロム370から構成されている。図2の構成と図1の構成とを比較すると、MPU380はCPU280に、HDDコントローラ340AとI/F340Bはディスクコントローラ240に、バッファ350はバッファRAM250に、不揮発性メモリ360はフラッシュメモリ260に、磁気ディスク媒体110はディスク1101及び1102に、メモリ390はRAM290に、ロム370はプログラムROM270に、それぞれ対応している。本実施形態は例えばSAS実行を行うケースを説明する。0準備:ファームウェアは、イニシエータよりMaximumBurstSize受領時、以下の設定を実施する。このファームウェアは、HDC240で実行されるものであるが、CPU280などで実行されてもよい。01:コマンド管理部のCommandCountRegister47に、ターゲットデバイスの保持コマンド数の下限値を設定する。02:MBS判定部のConfigRegister51に、読み替えを行うMaximumBurstSizeの下限値を設定する。1:コマンド起動までファームウェアは、コマンドテーブル41の情報を解析し、コマンド実行部のExchangeTable57に実行情報を登録し、転送起動をかける。以降、ターゲットデバイスはコマンド実行状態となる。2転送レート判定:コマンド管理部において、イニシエータテーブル43に登録される各イニシエータの転送レートを判定する。本実施例においては、イニシエータ0の転送レートが60Gで最も高い。3コマンド保持数判定:コマンド管理部において、リード先イニシエータから受領しているコマンド数と、MinimumCommandCountRegister値の比較を行う。本実施例においては、2010となり、コマンド保持数が下限値より少ない。コマンド管理部は、判定2および判定3より、リード先イニシエータの転送レートが最も高く、かつ、このイニシエータからのコマンド保持数が下限値より少ないと判断される場合、AlmostEmptyFlagをMBS判定部に通知する。4MaximumBurstSize読み替え判定:MBS判定は、AlmostEmptyFlagを元に、ConfigRegister値とMaximumBurstSizeの比較を行う。この比較により、MaximumBurstSizeがConfigRegister値より大きい場合、本来のMaximumBurstSizeの12をコマンド実行部に対して通知する。本実施例においては、50kB64kBであるので、コマンド実行部に対しては、32kBがMaximumBurstSizeとして通知される。コマンド実行部では、この値を直近の転送におけるMaximumBurstSizeとして採用し、転送データ長がこの値に達した時点で比較器58がCLOSE要求を行う。次に図5は、実施形態に用いられるファームウェアを主体とするMaximumBurstSize読み替え判定フロー図である。ステップS1:コマンド実行起動を行う。ステップS2:実行コマンドタイプを判定する判定1。この判定の結果が、リードコマンドである場合は次のステップS3へ進みそうでない場合はステップS7へ飛ぶ。ステップS3:リード転送先イニシエータの転送レートがイニシエータテーブル中で最も大きいかどうかを判定する判定2。この判定の結果が、Yesある場合は次のステップS4へ進みそうでない場合はステップS7へ飛ぶ。ステップS4:リード先のイニシエータから受領しているコマンド数と保持コマンドの下限値を比較する判定3。この比較の結果が、コマンド数が下限値より小さい場合は次のステップS5へ進みそうでない場合はステップS7へ飛ぶ。ステップS5:MaximumBurstSizeとConfig値を比較する判定4。この比較の結果が、MaximumBurstSizeがConfig値より大きい場合は次のステップS6へ進みそうでない場合はステップS7へ飛ぶ。ステップS6:を読み替え後のMaximumBurstSizeとして適用し、処理を終了する。ステップS7:MaximumBurstSizeの読み替えを行わず、処理を終了する。以上で、データ転送装置のコマンド保持状況を判定する技術に関し、次の仕組みの要点を説明した。A.装置のコマンド実行状況を監視し、保持する全コマンド数を管理する仕組み。より具体的には例えば、HDC240が、フラッシュメモリ260内のフラグテーブル264として、全コマンドと各実行状況実行ならフラグON、そでないならOFFなどの組みを管理するようにすればよい。BAによる管理をさらにイニシエータ毎の管理に振り分ける仕組み。Cコマンド実行起動時、データ送信先イニシエータから受領、保持しているコマンド数と装置で予め設定されるコマンド保持数の下限値を比較する仕組み。D装置で指定されるMaximumBurstSizeを小さく読み替える仕組み。本実施形態の方式は、ターゲットからのリード転送起動時、HWがデバイスのイニシエータ毎のコマンド保持状況と転送レートの判定を実施、リード先イニシエータデバイス間との転送レートが高く、かつこのイニシエータからのコマンド保持数が少ないと判断される場合、設定されるMaximumBurstSizeを小さく読み替え、このイニシエータデバイスに対し、優先的にバス権限を与えるものである。例えば以下の機構により、転送レートが高いイニシエータからの受領コマンド数を相対的に大きくすることができ、装置全体のスループット向上を図ることが可能となる。1ファームウェアよりMaximumBurstSizeの上限値を設定可能なレジスタを有し、このレジスタ設定値とデバイスが持つMaximumBurstSizeを比較し、MaximumBurstSizeがレジスタ設定値より大きい場合、MaximumBurstSizeを12に減算する機構。2ファームウェアよりデバイスが保持するコマンド数の下限値を設定可能なレジスタを有し、コマンド実行起動時、フレーム転送先のイニシエータから受領、保持しているコマンドのうち、未実行であるコマンド数とレジスタ設定値を比較し、未実行コマンド数がレジスタ設定値より小さい場合、1により減算を行ったMaximumBurstSizeを直近のコマンド実行のMaximumBurstSizeとして採用する機構。3デバイスによるコマンド実行状況を監視し、デバイスの全保持コマンドに対し、実行済みであるか、未実行であるかのフラグを設定する機構。43で未実行と分類されたコマンドに対し、コマンド発行先イニシエータのアドレスを参照し、イニシエータごとに未実行コマンド数の管理を行う機構。なお、この発明は上記実施形態に限定されるものではなく、この外その要旨を逸脱しない範囲で種々変形して実施することができる。例えば、リードコマンドだけでなくライトコマンドなどを使用する場合にも有効である。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係わる構成要素を適宜組み合わせても良いものである。"