(57)【特許請求の範囲】
【請求項１】
データの転送先と、複数のバスを用いたＳＡＳ（Serial Attached SCSI）によって接続されたデータ転送装置であって、
データ転送に係る処理要求をキューイングするキューイング部と、
該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、
該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部と、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、
該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、
該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、
該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送することを特徴とする、データ転送装置。
【請求項２】
該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信することを特徴とする、請求項１記載のデータ転送装置。
【請求項３】
該送信部が、該処理要求を分割する際に、当該処理要求に係る転送データ長を認識し、認識したデータ長に基づいて当該処理要求を分割することを特徴とする、請求項１または請求項２記載のデータ転送装置。
【請求項４】
該送信部が、当該処理要求に含まれる転送データ長情報に基づいて、該転送データ長を認識することを特徴とする、請求項３記載のデータ転送装置。
【請求項５】
該送信部が、該処理要求に含まれる転送データの格納元を示すアドレス情報、及び、該転送データ長情報を変更することにより、該処理要求を分割することを特徴とする、請求項４記載のデータ転送装置。
【請求項６】
該転送部が、
該処理要求に係る転送データを取得して該転送先に向けて出力する複数の取得部と、
該取得部によって出力される該転送データの転送に用いるバスを、該複数のバスから選択する選択部とをそなえて構成されていることを特徴とする、請求項１〜５のいずれか１項に記載のデータ転送装置。
【請求項７】
複数の情報処理装置と、該複数の情報処理装置を複数のバスを用いてデータ転送可能に接続するＳＡＳ（Serial Attached SCSI）とをそなえた情報処理システムであって、
該データ転送の転送元としての情報処理装置が、
データ転送に係る処理要求をキューイングするキューイング部と、
該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、
該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部と、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、
該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、
該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、
該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送することを特徴とする、情報処理システム。
【請求項８】
データの転送先と、複数のバスを用いたＳＡＳ（Serial Attached SCSI）によって接続され、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると当該処理要求に係る転送データを取得し取得した該転送データを該複数のバスのうちの一のバスを用いて該転送先に転送する転送部とを有するデータ転送装置において、該キューイング部にキューイングされた該処理要求を該転送部に送信することにより該処理要求にかかるデータ転送を実行させる機能を、コンピュータに実現させるためのデータ転送プログラムであって、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部、
該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部、及び、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部として、該コンピュータを機能させるとともに、
該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、
該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、
該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送するように、該コンピュータを機能させることを特徴とする、データ転送プログラム。
【請求項９】
データの転送先と、複数のバスを用いたＳＡＳ（Serial Attached SCSI）によって接続され、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると当該処理要求に係る転送データを取得し取得した該転送データを該複数のバスのうちの一のバスを用いて該転送先に転送する転送部とを有するデータ転送装置において、該キューイング部にキューイングされた該処理要求を該転送部に送信することにより該処理要求にかかるデータ転送を実行させる機能を、コンピュータに実現させるためのデータ転送プログラムを記録したコンピュータ読取可能な記録媒体であって、
該データ転送プログラムが、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部、
該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部、及び、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部として、該コンピュータを機能させるとともに、
該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、
該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、
該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送するように、該コンピュータを機能させることを特徴とする、データ転送プログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、SAS（Serial attached SCSI(Small Computer System Interface)）Wide Linkによって接続された装置間において、I/O（Input/Output）要求に応じて、データを転送するための技術に関する。
【背景技術】
【０００２】
近年、データの転送元であるサーバ等のイニシエータ装置と、データの転送先であるRAID（Redundant Arrays of Inexpensive Disks）装置等のターゲット装置との間のインタフェースとして、高速なデータ転送が可能なSASが注目されている。特に、複数のバスを用いて装置間を接続するSAS Wide Linkは、より高速なデータ転送が可能である。
例えば、SAS PHY（Physical layer）のデータ転送速度が１レーンにつき３Gbpsである場合、図５に示すように、４ポートのSAS Wide Portを使用して物理的に４本のバス１０１−０〜１０１−３（以下、これらバス１０１−０〜１０１−３を区別しない場合には符号１０１を用いて説明する）を用いてSASイニシエータ１１０及びSASターゲット１２０とを接続した、４レーン１０２−０〜１０２−３からなるSAS Wide Linkシステム１００によれば、１２Gbpsのバス性能を発揮する。
【０００３】
なお、レーン１０２−０〜１０２−３（以下、これらレーン１０２−０〜１０２−３を区別しない場合には符号１０２を用いて説明する）とは、各バス１０１を含むSASイニシエータ１１０及びSASターゲット１２０のSAS PHY０〜３によって実現されるデータの転送経路である。ここでは、バス１０１−０を含むSASイニシエータ１１０及びSASターゲット１２０のSAS PHY０によってレーン１０２−０が構成され、バス１０１−１を含むSASイニシエータ１１０及びSASターゲット１２０のSAS PHY１によってレーン１０２−１が構成され、バス１０１−２を含むSASイニシエータ１１０及びSASターゲット１２０のSAS PHY２によってレーン１０２−２が構成され、バス１０１−３を含むSASイニシエータ１１０及びSASターゲット１２０のSAS PHY３によってレーン１０２−３が構成される。
【０００４】
SAS Wide Linkシステム１００は、例えば、メモリコントローラ１０３から発行されたI/O要求（処理要求）を、SASイニシエータ１１０のDMA（Direct Memory Access）マネージャ１１１が受信すると、このDMAマネージャ１１１が、複数のDMAチャネル１１２−０〜１１２−ｎ（ｎは自然数であり好ましくは３〜７）のうちの一のDMAチャネル１１２−０〜１１２−ｎ（以下、DMAチャネル１１２−０〜１１２−ｎを区別しない場合には符号１１２を用いて説明する）に、当該I/O要求を渡す。
【０００５】
DMAチャネル１１２は、I/O要求を受け取ると、当該I/O要求に係る転送データを取得して出力するものであり、DMAチャネル１１２から出力された転送データは、レーン選択部１１３によって選択されたレーン１０２によってSASターゲット１２０に転送される。
また、SASターゲット１２０は、各レーン１０２を通じてSASイニシエータ１１０から受信した転送データを、アービター１２１が調整しながら受信制御部１２２に送り、受信制御部１２２は、受信したデータに応じてメモリコントローラ１０４に当該データに係るコマンドを出力する。
【０００６】
なお、従来からSASを用いた技術において、ターゲット装置としてのディスクアレイ装置のSAS-HDDの複数の物理リンク間のレート差吸収を、エクスパンダを用いて実現する技術がある（例えば、下記特許文献１参照）。
【特許文献１】特開２００６−７２６３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上記図５に示した従来のシステム１００は、物理的に４つのバス１０１を有し、４つのレーン１０２によって１２Gbpsのバス性能を有しているにも関わらず、DMAチャネル１１２が１個のみの動作（DMAの多重度が１）の場合、４つのレーン１０２があるにも関わらず、１つのレーン１０２（３Gbps）しか使用されず、４SAS（３Gbps×４＝１２Gbps）のバス性能が十分に使用されない。
【０００８】
つまり、処理すべきI/O要求の数が、レーン１０２の数よりも少ない場合であっても、１つのI/O要求に係るデータ転送は、１つのレーン１０２のみを用いて実行されるので、使用されないレーン１０２が存在することになり、非効率的であった。
また、近年の技術進歩により、メモリコントローラ１０３の処理性能（速度）の向上や、メモリコントローラ１０３とSASイニシエータ１１０との間のバス性能の向上により、メモリコントローラ１０３からのI/O要求等の転送速度が非常に速くなっているため、SASイニシエータ１１０とSASターゲット１２０との間（即ち、SASデバイス１１０，１２０間）のバス性能が悪いと、システム１００全体の性能向上を阻害するおそれがある。
【０００９】
例えば、メモリコントローラ１０３とSASイニシエータ１１０との間のメモリコントロールバスがPCI（Peripheral Component Interconnect）express２．５GB/s×４（１０GB/s）の場合には、SASデバイス１１０，１２０間で１つのレーン１０２（３Gbps）しか使用されなければ、SASデバイス１１０，１２０間が性能上のボルトネックとなってしまう。
【００１０】
本発明は、このような課題に鑑み創案されたもので、複数のバスを用いたSASによって接続されたSASデバイス間のデータ転送を効率的に実行して、より高速なデータ転送を実現できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、データ転送装置は、データの転送先と、複数のバスを用いたＳＡＳによって接続されたものであって、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、該キューイング部にキューイングされた該処理要求の数を検知する検知部と、該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送することを特徴としている。
【００１２】
なお、該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信することが好ましい。
【００１３】
また、該送信部が、該処理要求を分割する際に、当該処理要求に係る転送データ長を認識し、認識したデータ長に基づいて当該処理要求を分割することが好ましく、このとき、該送信部が、当該処理要求に含まれる転送データ長情報に基づいて、該転送データ長を認識することが好ましい。
さらに、該送信部が、該処理要求に含まれる転送データの格納元を示すアドレス情報、及び、該転送データ長情報を変更することにより、該処理要求を分割することが好ましい。
【００１４】
なお、該転送部が、該処理要求に係る転送データを取得して該転送先に向けて出力する複数の取得部と、該取得部によって出力される該転送データの転送に用いるバスを、該複数のバスから選択する選択部とをそなえて構成されていることが好ましい。
また、上記目的を達成するために、本発明の情報処理システムは、複数の情報処理装置と、該複数の情報処理装置を複数のバスを用いてデータ転送可能に接続するＳＡＳとをそなえたシステムであって、該データ転送の転送元としての情報処理装置が、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部と、該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送することを特徴としている。
【００１５】
さらに、上記目的を達成するために、本発明のデータ転送プログラムは、データの転送先と、複数のバスを用いたＳＡＳによって接続され、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると当該処理要求に係る転送データを取得し取得した該転送データを該複数のバスのうちの一のバスを用いて該転送先に転送する転送部とを有するデータ転送装置において、該キューイング部にキューイングされた該処理要求を該転送部に送信することにより該処理要求にかかるデータ転送を実行させる機能を、コンピュータに実現させるためのプログラムであって、該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部、該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部、及び、該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部として、該コンピュータを機能させるとともに、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送するように、該コンピュータを機能させることを特徴としている。
【００１６】
また、上記目的を達成するために、本発明のコンピュータ読取可能な記録媒体は、上述したデータ転送プログラムを記録したものである。
【発明の効果】
【００１７】
このように、本発明によれば、送信部が、判断部によって処理要求の数がバスの数よりも少ないと判断されると、キューイング部にキューイングされた処理要求を、バスの数とキューイング部にキューイングされた処理要求の数とに応じた数の処理要求に分割するので、常に多くのバスを用いたデータ転送が実現されることになり、複数のバスを用いたSASによって接続されたSASデバイス間のデータ転送を効率的に実行して、より高速なデータ転送を実現することができる。
【００１８】
つまり、送信部は、キューイング部にキューイングされた処理要求の数がバスの数よりも少ない場合には、かかる処理要求の数とバスの数とに応じて処理要求を分割するので、従来技術のごとく、バスが複数本あるにも係わらず、１つの処理要求に対して１つのバスのみを用いてデータ転送を行なうことが無くなり、複数のバスをすべて用いた効率的なデータ転送を実現できる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照しながら本発明の実施の形態について説明する。
〔１〕本発明の一実施形態について
まず、図１に示すブロック図を参照しながら、本発明の一実施形態としての情報処理システム（以下、本情報処理システムという）１の構成について説明する。この図１に示すように、本情報処理システム１は、複数（ここでは４本）のバス２−０〜２−３（以下、これらバス２−０〜２−３を区別しない場合には符号２を用いて説明する）を用いたSASによってデータの送受信可能に接続されたSASイニシエータ装置（データ転送装置）１０及びSASターゲット装置（転送先）２０，SASイニシエータ装置１０に接続されたメモリコントローラ４，及びSASターゲット装置２０に接続されたメモリコントローラ５をそなえて構成されている。
【００２０】
なお、SASイニシエータ装置１０は、本発明の一実施形態としてのデータ転送装置であり、例えば、サーバのSAS HBA（Host Bus Adapter）である。また、SASターゲット装置２０は、例えば、サーバのSAS HBAやRAID装置のコントローラやJBOD（Just a Bunch of Disks）である。
また、SASイニシエータ装置１０及びSASターゲット装置２０は、４ポートのSAS Wide Portを使用し、SASイニシエータ装置１０とSASターゲット装置２０とは物理的に４本のバス２−０〜２−３により接続されており、従って、SASは４つのレーン（転送経路）３−０〜３−３（以下、これらレーン３−０〜３−３を区別しない場合には符号３を用いて説明する）を実現している。
【００２１】
ここでは、SASイニシエータ装置１０とSASターゲット装置２０とのSAS PHY（Physical layer）０によってバス２−０を含むレーン３−０が構成され、SASイニシエータ装置１０とSASターゲット装置２０とのSAS PHY１によってバス２−１を含むレーン３−１が構成され、SASイニシエータ装置１０とSASターゲット装置２０とのSAS PHY２によってバス２−２を含むレーン３−２が構成され、SASイニシエータ装置１０とSASターゲット装置２０とのSAS PHY３によってバス２−３を含むレーン３−３が構成されている。
【００２２】
例えば、SAS PHYのデータ転送速度は１レーンにつき３Gbpsであり、本情報システム１は、４レーンあるので、１２Gbpsのバス性能を有する。
ここで、図２を参照しながら、SASのアーキテクチャについて説明する。図２はSASアーキテクチャの一般的な構成を示す図である。この図２に示すように、SASアーキテクチャは、SAS Device３０（例えば、本情報処理システムにおけるSASイニシエータ装置１０）内に、６つのレイヤ（層）３１〜３６を構成している。
【００２３】
即ち、上位層から下位層に向けて、アプリケーション層３１，トランスポート層３２，SASポート層（SAS port layer）３３，リンク層３４，SAS phy層（SAS phy layer）３５，及びSAS物理層（SAS physical layer）３６をそなえている。
アプリケーション層３１は、例えば、SCSIアプリケーション層（SCSI application layer）３１ａ，ATA（AT Attachment）アプリケーション層（ATA application layer）３１ｂ，及び管理アプリケーション層（Management application layer）３１ｃからなる。
【００２４】
トランスポート層３２は、例えば、SSP（Serial SCSI Protocol）トランスポート層（SSP transport layer）３２ａ，STP（SATA Tunneling Protocol）トランスポート層（STP transport layer）３２ｂ，及びSMP（Serial Management Protocol）トランスポート層（SMP transport layer）３２ｃからなる。
リンク層３４は、例えば、SSPリンク層（SSP link layer）３４ａ，STPリンク層（STP link layer）３４ｂ，SMPリンク層（SMP link layer）３４ｃ，及びSASリンク層（SAS link layer）３４ｄからなる。
【００２５】
ここで、トランスポート層３２，SASポート層３３，リンク層３４，SAS phy層３５，及びSAS物理層３６は、SASポート（SAS Port）３７に含まれている。
そして、リンク層３４，SAS phy層３５，及びSAS物理層３６からなるSAS Phy３８は、レーン数分そなえられる。例えば、本情報処理システム１では、SAS Phy３８は、４つ存在する。
【００２６】
図１に示すように、本情報処理システム１のメモリコントローラ４は、データ転送の転送元としてのSASイニシエータ装置１０に対してデータ転送に係る処理要求（IO；Input/Output）を発行するものである。
一方、メモリコントローラ５は、SASターゲット装置２０がSASイニシエータ装置１０から受け取った処理要求を、後段の記憶装置等（図示略）に対して実行するものである。
【００２７】
SASイニシエータ装置１０は、メモリコントローラ４から受け取った処理要求や当該処理要求に係る転送データを、SAS（複数のレーン３）を用いてSASターゲット装置２０に転送するものであり、DMA（Direct Memory Access）マネージャ１１，DMAチャネル（取得部）１２−０〜１２−ｎ（ｎは自然数であり、DMAチャネルは４〜８つそなえられるのが好ましく、したがってｎは３〜７が好ましい），及びレーン選択部（選択部）１３をそなえて構成されている。
【００２８】
DMAマネージャ１１は、上記図２におけるアプリケーション層３１に該当するものであり、メモリコントローラ４から受信した処理要求にかかる転送処理等を管理するものである。
DMAチャネル１２−０〜１２−ｎ（以下、これらDMAチャネル１２−０〜１２−ｎを区別しない場合には符号１２を用いて説明する）のそれぞれは、DMAマネージャ１１から処理要求を受け取ると、その処理要求に係る転送データを取得して転送先に向けて出力するものである。なお、転送データは、処理要求に係る転送データのほか、処理要求そのものであってもよい。
【００２９】
なお、DMAチャネル１２の数は、本発明において限定されるものではなく、例えば、４〜８つ程度（即ち、ｎは３〜７）である。
ここで、図３に処理要求の一例（ここではSCSI Readコマンド）を示す。DMAマネージャ１１がメモリコントローラ４から受信して、DMAチャネル１２に渡す処理要求は、例えば、図３のように構成されており、オペレーションコード（図中、“Operation Code(0x08)”と表記）４１，LUN（Logical Unit Number）４２，LBA（Logical Block Address）４３，転送データ長（図中“Transfer length”と表記）４４，及び制御情報（図中“Control”と表記）４５をそなえている。
【００３０】
そして、DMAチャネル１２は、図３に示す処理要求を受け取ると、LUN４２及びLBA４３に基づいて、記憶部（メモリ；図示略）から転送データを取得して、当該処理要求とともにSASターゲット装置２０へSASのレーン３を用いて出力する。
レーン選択部１３は、DMAチャネル１２によって出力される転送データの転送に用いるバス２を、複数のバス２から選択するものであり、DMAチャネル１２から転送データ等が出力される際に、空いているバス２（レーン３）を、当該転送データの転送に用いるバスとして選択し、当該DMAチャネル１２と当該バス２（レーン３）とを接続するスイッチとして機能する。
【００３１】
このように、DMAチャネル１２及びレーン選択部１３は、データ転送に係る処理要求を受け取ると、その処理要求に係る転送データを取得し、取得した転送データを、複数のバス２（レーン３）のうちの一のバス２を用いて転送先であるSASターゲット装置２０に転送する転送部１２ａとして機能する。
そして、図１に示すように、DMAマネージャ１１は、キューイング部１４，検知部１５，判断部１６，及び送信部１７をそなえている。
【００３２】
キューイング部１４は、例えば、FIFO（First In First Out）方式のメモリであり、メモリコントローラ４から発行され、DMAマネージャ１１が受信した処理要求をキューイング（一時的に保持）するものである。
検知部１５は、キューイング部１４にキューイングされた処理要求の数を検知するものであり、カウンタ１５ａをそなえている。
【００３３】
つまり、検知部１５は、キューイング部１４に処理要求が保持されると、カウンタ１５ａを１つカウントアップし、キューイング部１４から処理要求が出力されると、カウンタ１５ａを１つカウントダウンするとともに、このカウンタ１５ａの値を読み取ることにより、キューイング部１４にキューイング中の処理要求の数を検知する。
判断部１６は、検知部１５によって検知された、キューイング部１４にキューイング中の処理要求の数が、SASイニシエータ装置１０とSASターゲット装置２０とを接続するバス２の数（即ち、SASのレーン３の数である４）よりも少ないか否かを判断するものである。
【００３４】
つまり、判断部１６は、キューイング中の処理要求の数がバス２の数よりも少なければ、複数のレーン３が使用可能であるとみなして、後述する送信部１７の分割部１７ａがキューイング部１４にキューイングされた処理要求を分割すべきであると判断する。
送信部１７は、キューイング部１４にキューイング中の処理要求を、後段のDMAチャネル１２（即ち、転送部１２ａ）に送信するものであり、判断部１６によって処理要求の数がバス２の数よりも少ないと判断されると、キューイング部１４にキューイングされた処理要求を、バス２の数とキューイング部１４にキューイングされた処理要求の数とに応じた数の処理要求に分割する分割部１７ａをそなえている。
【００３５】
つまり、分割部１７ａは、バス２の数とキューイングされた処理要求の数との差に応じて、処理要求の数がバス２の数と同一になるように、キューイング中の処理要求を複数の処理要求に分割する。
そして、送信部１７は、分割部１７ａによって処理要求が複数の処理要求に分割されると、分割された処理要求をすべてDMAチャネル１２に送信する。
【００３６】
一方、分割部１７ａは、判断部１６によって処理要求の数がバス２の数以上であると判断されると、キューイング部１４にキューイングされた処理要求を分割せず、送信部１７は、キューイング部１４にキューイングされた処理要求をそのままDMAチャネル１２に送信する。つまり、このとき、送信部１７は、通常のSASの転送方法のまま処理要求ごとにレーンを割り当てる形で転送を実行させる。
【００３７】
ここで、分割部１７ａによる具体的な分割処理について説明すると、分割部１７ａは、キューイング中の処理要求の数が１である場合、バス２の数が４であるので、当該処理要求を４つの処理要求に分割する。
また、分割部１７ａは、キューイング中の処理要求の数が２である場合、バス２の数が４であるので、それら２つの処理要求のそれぞれを２つの処理要求に分割する。
【００３８】
さらに、分割部１７ａは、キューイング中の処理要求の数が３である場合、キューイング部１４の先頭から２つの処理要求をそれぞれ２つの処理要求に分割して出力する一方、残りの１つの処理要求は今回出力しない。
なお、分割部１７ａは、キューイング中の処理要求の数が３である場合、キューイング部１４の先頭の１つの処理要求を２つの処理要求に分割し、残りの２つの処理要求は分割せずにそのまま出力してもよい。
【００３９】
ところで、分割部１７ａは、処理要求を分割する際に、当該処理要求に係る転送データ長を、図２に示した処理要求に含まれる転送データ長４４（転送データ長情報）に基づいて認識し、認識したデータ長に基づいて各処理要求に係る転送データのデータ長ができる限り均等になるように、当該処理要求を分割する。
より具体的には、分割部１７ａは、処理要求に含まれる転送データの格納元を示すアドレス情報であるLBA４３、及び、転送データ長４４を変更することにより、処理要求を分割する。
【００４０】
例えば、分割部１７ａは、認識したデータ長が４GBであり、分割数が４であるときには、データ長が１GBの処理要求を４つ生成する。分割前の元の処理要求のLBA４３が１〜４００００を示すものである場合、分割部１７ａは、それぞれの転送データ長４４が１GBを示す４つの処理要求を生成するとともに、各処理要求のLBA４３のそれぞれを、“１〜１００００”，“１０００１〜２００００”，“２０００１〜３００００”，“３０００１〜４００００”とする。なお、分割後の各処理要求において、オペレーションコード４１，LUN４２，及び制御情報４５は元の処理要求のままである。
【００４１】
つまり、分割部１７ａは、例えば、元の処理要求のLBA４３を“１〜１００００”に変更し、転送データ長４４が１GBを示すように変更するとともに、元の処理要求をコピーして３つの処理要求を生成し、それぞれのLBA４３を“１０００１〜２００００”，“２０００１〜３００００”，“３０００１〜４００００”に変更するとともに、転送データ長４４が１GBを示すように変更することにより、元の処理要求を４つの処理要求に分割する。
【００４２】
このように、DMAマネージャ１１は、４つすべてのレーン３を使用してデータ転送を実行すべく、判断部１６が、DMAチャネル１２及びレーン選択部１３の処理状況やレーン３の実際の使用状況を見るのではなく、レーン３の数とキューイング部１４にキューイング中の処理要求の数とに基づいて、レーン３の空き状況を推定し、送信部１７（分割部１７ａ）が、その推定結果に応じて、キューイング中の処理要求が複数レーン３を使用可能であれば、使用可能なレーン数（つまり、レーン３の数からキューイング中の処理要求を差し引いた数）と、キューイング中の処理要求の数とに応じて、すべてのレーン３を使用するように、キューイング中の処理要求を分割する。これにより、空きレーン３の実際の使用状況を監視する機構を新たにそなえることなく、検知部１５，判断部１６，分割部１７ａをそなえる（ここでは、ソフトウェアにより検知部１５，判断部１６，分割部１７ａの機能を実現する）だけで、常に、すべてのレーン、もしくは、より多くのレーンを同時に用いたデータ転送を実現できる。
【００４３】
なお、DMAマネージャ１１の検知部１５，判断部１６，及び送信部１７（分割部１７ａ）の処理は、送信部１７がキューイング部１４から処理要求を読み出してDMAチャネル１２に送信する度に実行される。即ち、送信部１７の分割部１７ａによってキューイング部１４の処理要求が分割されると、分割された処理要求のすべてをDMAチャネル１２に送信してから、検知部１５，判断部１６及び送信部１７が次の処理を実行する。
【００４４】
ここで、DMAマネージャ１１の動作手順の具体例を説明すると、DMAマネージャ１１は、例えば、以下の（１）〜（５）の手順を実行する。
（１）まず、キューイング部１４に処理要求がキューイングされていない状態で、メモリコントローラ４から処理要求を受信し、キューイング部１４がその処理要求をキューイングすると、カウンタ１５ａが１つカウントアップされる。
【００４５】
（２）そして、送信部１７が送信処理を実行する際に、検知部１５によって“１”が検知され、判断部１６は検知部１５によって検知された“１”とバス数“４”とを比較し、キューイング中の処理要求の数がバス数よりも少ないと判断する。
（３）すると、送信部１７の分割部１７ａは、キューイング部１４からその１つの処理要求を読み出して４つの処理要求に分割し、送信部１７はDMAチャネル１２の処理状況に応じて、４つに分割した処理要求をDMAチャネル１２に順次送信する。なお、キューイング部１４から処理要求が読み出されると、カウンタ１５ａが１つカウントダウンされる。
【００４６】
（４）上記（３）の動作中に、メモリコントローラ４から新たに処理要求を受けると、その処理要求はキューイング部１４にキューイングされ、カウンタ１５ａが１つカウントアップされる。ここで、上記（３）の動作中に２つの処理要求がキューイングされると、カウンタ１５ａの値は“２”となる。
（５）その後、送信部１７による上記（３）の処理が終了すると、再度上記（２），（３）の処理と同様の処理が実行される。つまり、検知部１５によって“２”が検知され、判断部１６は検知部１５によって検知された“２”とバス数“４”とを比較し、キューイング中の処理要求の数がバス数よりも少ないと判断する。そして、送信部１７の分割部１７ａが、キューイング部１４から２つの処理要求を読み出し、２つの処理要求のそれぞれを２つの処理要求に分割して合計４つの処理要求を生成し、送信部１７はDMAチャネル１２の処理状況に応じて、かかる４つの処理要求をDMAチャネル１２に順次送信する。
【００４７】
なお、上記（４）において、４つ以上の処理要求がキューイングされ、検知部１５によって“４”以上が検知されると、上記（５）の処理とは異なり、判断部１６がキューイング中の処理要求の数がバス数以上であると判断し、分割部１７ａは分割処理を行なわず、送信部１７はキューイング部１４から１つの処理要求を読み出して、それをそのままDMAチャネル１２に送信する。
【００４８】
次に、SASターゲット装置２０について説明すると、SASターゲット装置２０は、前記図５に示す従来のシステム１００のSASターゲット装置１２０と同様のものであり、アービター２１及び受信制御部２２をそなえて構成されている。
アービター２１は、SASのレーン３を介してSASイニシエータ装置１０から受信した処理要求及び転送データを、後段の受信制御部２２に順に受け渡すための調整を行なうものである。
【００４９】
受信制御部２２は、受信した処理要求や処理要求と転送データに応じて、メモリコントローラ５にかかる処理要求等を出力するものである。
そして、メモリコントローラ５によって当該処理要求に係る処理（書込み処理／読出し処理）が、メモリコントローラ５に接続された記憶装置（図示略）に対して実行される。
【００５０】
このように、本発明の一実施形態としての通信装置によれば、送信部１７の分割部１７ａが、判断部１６によって処理要求の数がバス３の数よりも少ないと判断されると、キューイング部１４にキューイングされた処理要求を、バス２の数とキューイング部１４にキューイングされた処理要求の数とに応じた数の処理要求に分割するので、常に多くのバス２を用いたデータ転送が実現されることになり、複数のバス２を用いたSASによって接続されたSASデバイス１０，２０間のデータ転送を効率的に実行して、より高速なデータ転送を実現することができる。
【００５１】
つまり、送信部１７の分割部１７ａが、キューイング部１４にキューイングされた処理要求の数に応じて、すべてのバス２を使用するように処理要求を分割するので、従来技術のごとく、バス２が４本あるにも係わらず、１つの処理要求に対して１つのバス２だけを用いてデータ転送を行なうということが無くなり、トラフィックの多寡に係わらず、４つのレーン３を実現するSAS Wide Linkの帯域（３Gbps×４＝１２Gbps）をすべて活用することができる。
【００５２】
なお、他のインタフェースと比較した場合、Ethernet（登録商標）は次世代で１０Gbpsを実現し、FC（Fiber Channel）は４Gbpsもしくは次世代で８Gbpsを実現する。したがって、サーバ間転送データをサーバローカルのファイルシステムにライトする場合、将来的にサーバ間とSASの１レーン３（１レーン３の性能を３Gbpsとした場合）との性能差が大きくなり、SAS-HBAのボルトネックが深刻になることが予想される。そのときに、本情報処理システム１のごとく、すべてのレーン３を使用すべく単一の処理要求を分割して、すべてのレーン３を使用する（つまり、３Gbps×４＝１２Gbpsのバス能力を実現する）メリットは、より大きくなる。特に、シーケンシャル転送［FTP（File Transfer Protocol）でのサーバ間のデータ転送等］で有効であり、データのミラーリング処理等における、大量のファイル転送やデータコピー等を実施する際に大きな効果を期待できる。
【００５３】
また、本情報処理システム１は、SASアーキテクチャにおけるアプリケーション層３１であるDMAマネージャ１１を、前記図５に示した従来のシステム１００から改良することにより、検知部１５，判断部１６，及び送信部１７の機能を追加したので、SASイニシエータ装置１０は、SASデバイスとしての汎用性を維持したままであるとともに、主としてアプリケーションの改良によって上述した機能及び作用効果を実現することにより、本SASイニシエータ装置１０を実現するためのコストを抑えることができる。また、既存のSASデバイスに、本SASイニシエータ装置１０のDMAマネージャ１１の機能を低コストで且つ容易に追加することができる。
【００５４】
さらに、送信部１７の分割部１７ａが、判断部１６によって処理要求の数がバス２の数以上であると判断されると、キューイング部１４にキューイングされた処理要求をそのまま転送部１２ａに送信するので、複数のバス２がすべて使用されていると推測できる場合には、その状態を保ったまま通常の処理を実行できる。
また、送信部１７の分割部１７ａが、分割後の処理要求の数がバス２の数と同一になるように、キューイング部１４にキューイング中の処理要求を複数の処理要求に分割するので、送信部１７によって分割されたすべての処理要求が転送部１２ａに送信されることにより、すべてのバス２を使用した、より効率的なデータ転送をより確実に実現できる。
【００５５】
なお、送信部１７の分割部１７ａが、処理要求を分割する際に、当該処理要求に係る転送データ長を認識し、認識したデータ長に基づいて当該処理要求を分割するので、分割後の処理要求間で転送データ長が均等もしくは略均等となるように、当該処理要求を分割することができ、バス２のより効率的な使用を実現できる。
このとき、送信部１７の分割部１７ａが、当該処理要求に含まれる転送データ長情報４４に基づいて、転送データ長を認識するので、分割部１７ａは、その転送データ長を確実に且つ容易に認識できる。
【００５６】
さらに、送信部１７の分割部１７ａが、処理要求に含まれる転送データの格納元を示すアドレス情報（LBA４３）、及び、転送データ長情報４４を変更することにより、処理要求を分割するので、分割部１７ａは、処理要求を確実に分割できる。
〔２〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００５７】
例えば、上述した実施形態では、SASイニシエータ装置１０とSASターゲット装置２０とが４本のバス２で接続された場合（つまり、４ポートのSAS Wide Portをそなえた場合）を例にあげて説明したが、本発明において、SASが何本のバス２を用いて実現されるか（つまり、SASのレーン３の数）は限定されるものではなく、バス２は、例えば、８本，１２本，１６本，２０本，２４本であってもよい。
【００５８】
また、上述した実施形態では、キューイング部１４にキューイングされた処理要求が３つであった場合にも、分割部１７ａが処理要求を分割する場合を例にあげて説明したが、本発明はこれに限定されるものではなく、キューイング中の処理要求が３つである場合には、判断部１６が分割部１７ａは処理要求の分割を実行すべきではないと判断し、分割部１７ａは、判断部１６によって処理要求の分割を実行すべきではないと判断されると、処理要求を分割せずに、送信部１７は、処理要求をそのままDMAチャネル１２に送信するように構成してもよい。
【００５９】
なお、上述した実施形態では、キューイング部１４及びカウンタ１５ａが、DMAマネージャ１１内にそなえられた場合を例にあげて構成したが、本発明はこれに限定されるものではなく、キューイング部１４及びカウンタ１５ａは、DMAマネージャ１１の外部に設けられていてもよい。
さらに、上述した実施形態では、SASイニシエータ装置１０に対して、１つのSASターゲット装置２０が接続された場合を例にあげて説明したが、本発明はこれに限定されるものではなく、例えば、図４に示す本発明の変形例としての情報処理システム１´のごとく、SASイニシエータ装置（図中、イニシエータと表記）１０に対して、SASスイッチ６を介して複数のSASターゲット装置（図中、ターゲット０，１，Nと表記）２０−０〜２０−N（Nは自然数）が接続されていてもよい。
【００６０】
このとき、SASイニシエータ装置１０とSASスイッチ６とは複数のバス７で接続され、SASスイッチ６と各SASターゲット装置２０−０〜２０−Nとは、それぞれ、複数のバス８−０〜８−Nで接続されている。
そのため、SASイニシエータ装置１０と、各SASターゲット装置２０−０〜２０−Nとは、SASによって複数のレーンでデータ転送可能に接続され、SASスイッチ６によってSASイニシエータ装置１０の接続相手（SASターゲット装置２０−０〜２０−N）が切り替えられる。
【００６１】
このような本発明の変形例としての情報処理システム１´においても、上述した実施形態と同様の作用効果を得ることができる。
なお、上述した検知部１５，判断部１６，及び送信部１７（分割部１７ａ）としての機能は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のアプリケーションプログラム（データ転送プログラム）を実行することによって実現されてもよい。
【００６２】
そのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷなど）等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からデータ転送プログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
【００６３】
ここで、コンピュータとは、ハードウェアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえている。
【００６４】
上記データ転送プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、検知部１５，判断部１６，及び送信部１７（分割部１７ａ）としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
なお、本実施形態としての記録媒体としては、上述したフレキシブルディスク，ＣＤ，ＤＶＤ，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカード，コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
【００６５】
〔３〕付記
（付記１）
データの転送先と、複数のバスを用いたＳＡＳ（Serial Attached SCSI）によって接続されたデータ転送装置であって、
データ転送に係る処理要求をキューイングするキューイング部と、
該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、
該キューイング部にキューイングされた該処理要求の数を検知する検知部と、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、
該送信部が、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じた数の処理要求に分割することを特徴とする、データ転送装置。
【００６６】
（付記２）
該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信することを特徴とする、付記１記載のデータ転送装置。
（付記３）
該送信部が、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割することを特徴とする、付記１または付記２記載のデータ転送装置。
【００６７】
（付記４）
該送信部が、該処理要求を分割する際に、当該処理要求に係る転送データ長を認識し、認識したデータ長に基づいて当該処理要求を分割することを特徴とする、付記１〜３のいずれか１項に記載のデータ転送装置。
（付記５）
該送信部が、当該処理要求に含まれる転送データ長情報に基づいて、該転送データ長を認識することを特徴とする、付記４記載のデータ転送装置。
【００６８】
（付記６）
該送信部が、該処理要求に含まれる転送データの格納元を示すアドレス情報、及び、該転送データ長情報を変更することにより、該処理要求を分割することを特徴とする、付記５記載のデータ転送装置。
（付記７）
該転送部が、
該処理要求に係る転送データを取得して該転送先に向けて出力する複数の取得部と、
該取得部によって出力される該転送データの転送に用いるバスを、該複数のバスから選択する選択部とをそなえて構成されていることを特徴とする、付記１〜６のいずれか１項に記載のデータ転送装置。
【００６９】
（付記８）
複数の情報処理装置と、該複数の情報処理装置を複数のバスを用いてデータ転送可能に接続するＳＡＳ（Serial Attached SCSI）とをそなえた情報処理システムであって、
該データ転送の転送元としての情報処理装置が、
データ転送に係る処理要求をキューイングするキューイング部と、
該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、
該キューイング部にキューイングされた該処理要求の数を検知する検知部と、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、
該送信部が、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じた数の処理要求に分割することを特徴とする、情報処理システム。
【００７０】
（付記９）
該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信することを特徴とする、付記８記載の情報処理システム。
（付記１０）
該送信部が、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割することを特徴とする、付記８または付記９記載の情報処理システム。
【００７１】
（付記１１）
該送信部が、該処理要求を分割する際に、当該処理要求に係る転送データ長を認識し、認識したデータ長に基づいて当該処理要求を分割することを特徴とする、付記８〜１０のいずれか１項に記載の情報処理システム。
（付記１２）
該分割部が、当該処理要求に含まれる転送データ長情報に基づいて、該転送データ長を認識することを特徴等する、付記１１記載の情報処理システム。
【００７２】
（付記１３）
該分割部が、該処理要求に含まれる転送データの格納元を示すアドレス情報、及び、該転送データ長情報を変更することにより、該処理要求を分割することを特徴とする、付記１２記載の情報処理システム。
（付記１４）
該転送部が、
該処理要求に係る転送データを取得して該転送先に向けて出力する複数の取得部と、
該取得部によって出力される該転送データの転送に用いるバスを、該複数のバスから選択する選択部とをそなえて構成されていることを特徴とする、付記８〜１３のいずれか１項に記載の情報処理システム。
【００７３】
（付記１５）
データの転送先と、複数のバスを用いたＳＡＳ（Serial Attached SCSI）によって接続され、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると当該処理要求に係る転送データを取得し取得した該転送データを該複数のバスのうちの一のバスを用いて該転送先に転送する転送部とを有するデータ転送装置において、該キューイング部にキューイングされた該処理要求を該転送部に送信することにより該処理要求にかかるデータ転送を実行させる機能を、コンピュータに実現させるためのデータ転送プログラムであって、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部、
該キューイング部にキューイングされた該処理要求の数を検知する検知部、及び、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部として、該コンピュータを機能させるとともに、
該送信部が、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じた数の処理要求に分割するように、該コンピュータを機能させることを特徴とする、データ転送プログラム。
【００７４】
（付記１６）
該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信するように、該コンピュータを機能させることを特徴とする、付記１５記載のデータ転送プログラム。
【００７５】
（付記１７）
該送信部が、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するように、該コンピュータを機能させることを特徴とする、付記１５または付記１６記載のデータ転送プログラム。
（付記１８）
データの転送先と、複数のバスを用いたＳＡＳ（Serial Attached SCSI）によって接続され、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると当該処理要求に係る転送データを取得し取得した該転送データを該複数のバスのうちの一のバスを用いて該転送先に転送する転送部とを有するデータ転送装置において、該キューイング部にキューイングされた該処理要求を該転送部に送信することにより該処理要求にかかるデータ転送を実行させる機能を、コンピュータに実現させるためのデータ転送プログラムを記録したコンピュータ読取可能な記録媒体であって、
該データ転送プログラムが、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部、
該キューイング部にキューイングされた該処理要求の数を検知する検知部、及び、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部として、該コンピュータを機能させるとともに、
該送信部が、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じた数の処理要求に分割するように、該コンピュータを機能させることを特徴とする、データ転送プログラムを記録したコンピュータ読取可能な記録媒体。
【００７６】
（付記１９）
該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信するように、該データ転送プログラムが該コンピュータを機能させることを特徴とする、付記１８記載のデータ転送プログラムを記録したコンピュータ読取可能な記録媒体。
【００７７】
（付記２０）
該送信部が、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するように、該データ転送プログラムが該コンピュータを機能させることを特徴とする、付記１８または付記１９記載のデータ転送プログラムを記録したコンピュータ読取可能な記録媒体。
【図面の簡単な説明】
【００７８】
【図１】本発明の一実施形態としての情報処理システムの構成を示すブロック図である。
【図２】本発明の一実施形態としての情報処理システムにおけるSASアーキテクチャを説明するための図である。
【図３】本発明の一実施形態としての情報処理システムのメモリコントローラから発行された処理要求の一例を示す図である。
【図４】本発明の変形例としての情報処理システムの概略構成を示すブロック図である。
【図５】従来の情報処理システムの構成を示すブロック図である。
【符号の説明】
【００７９】
１，１´  情報処理システム
２，２−０〜２−３，１０１，１０１−０〜１０１−３，７，８−０〜８−Ｎ  バス
３，３−０〜３−３，１０２，１０２−０〜１０２−３  レーン
４，５，１０３，１０４  メモリコントローラ
６  SAS（Serial attached SCSI(Small Computer System Interface)）スイッチ
１０  SASイニシエータ装置（データ転送装置）
１１  DMA（Direct Memory Access）マネージャ
１２，１２−０〜１２−ｎ  DMAチャネル（取得部）
１２ａ  転送部
１３  レーン選択部（選択部）
２０  SASターゲット装置
２１，１２１  アービター
２２，１２２  受信制御部
３０  SAS Device
３１  アプリケーション層
３１ａ  SCSIアプリケーション層
３１ｂ  ATA（AT Attachment）アプリケーション層
３１ｃ  管理アプリケーション層
３２  トランスポート層
３２ａ  SSP（Serial SCSI Protocol）トランスポート層
３２ｂ  STP（SATA Tunneling Protocol）トランスポート層
３２ｃ  SMP（Serial Management Protocol）トランスポート層
３３  SASポート層
３４  リンク層
３４ａ  SSPリンク層
３４ｂ  STPリンク層
３４ｃ  SMPリンク層
３４ｄ  SASリンク層
３５  SAS phy層
３６  SAS物理層
３７  SASポート
３８  SAS Phy（Physical layer）
４１  オペレーションコード
４２  LUN（Logical Unit Number）
４３  LBA（Logical Block Address；アドレス情報）
４４  転送データ長（転送データ長情報）
４５  制御情報
１００  SAS Wide Linkシステム
１１０  SASイニシエータ
１１１  DMAマネージャ
１１２，１１２−０〜１１２−ｎ  DMAチャネル
１２０  SASターゲット
【図１】
0004445535.tif 000002
【図２】
0004445535.tif 000003
【図３】
0004445535.tif 000004
【図４】
0004445535.tif 000005
【図５】
0004445535.tif 000006