JP4445535B2 - データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 - Google Patents

データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 Download PDF

Info

Publication number
JP4445535B2
JP4445535B2 JP2007242710A JP2007242710A JP4445535B2 JP 4445535 B2 JP4445535 B2 JP 4445535B2 JP 2007242710 A JP2007242710 A JP 2007242710A JP 2007242710 A JP2007242710 A JP 2007242710A JP 4445535 B2 JP4445535 B2 JP 4445535B2
Authority
JP
Japan
Prior art keywords
unit
transfer
processing request
processing
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007242710A
Other languages
English (en)
Other versions
JP2009075753A (ja
Inventor
敬子 加藤
光正 羽根田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007242710A priority Critical patent/JP4445535B2/ja
Priority to US12/197,497 priority patent/US20090077276A1/en
Priority to KR1020080090724A priority patent/KR101013269B1/ko
Priority to CN2008101491912A priority patent/CN101393540B/zh
Publication of JP2009075753A publication Critical patent/JP2009075753A/ja
Application granted granted Critical
Publication of JP4445535B2 publication Critical patent/JP4445535B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/378Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a parallel poll method

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、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)のデータ転送速度が1レーンにつき3Gbpsである場合、図5に示すように、4ポートのSAS Wide Portを使用して物理的に4本のバス101−0〜101−3(以下、これらバス101−0〜101−3を区別しない場合には符号101を用いて説明する)を用いてSASイニシエータ110及びSASターゲット120とを接続した、4レーン102−0〜102−3からなるSAS Wide Linkシステム100によれば、12Gbpsのバス性能を発揮する。
なお、レーン102−0〜102−3(以下、これらレーン102−0〜102−3を区別しない場合には符号102を用いて説明する)とは、各バス101を含むSASイニシエータ110及びSASターゲット120のSAS PHY0〜3によって実現されるデータの転送経路である。ここでは、バス101−0を含むSASイニシエータ110及びSASターゲット120のSAS PHY0によってレーン102−0が構成され、バス101−1を含むSASイニシエータ110及びSASターゲット120のSAS PHY1によってレーン102−1が構成され、バス101−2を含むSASイニシエータ110及びSASターゲット120のSAS PHY2によってレーン102−2が構成され、バス101−3を含むSASイニシエータ110及びSASターゲット120のSAS PHY3によってレーン102−3が構成される。
SAS Wide Linkシステム100は、例えば、メモリコントローラ103から発行されたI/O要求(処理要求)を、SASイニシエータ110のDMA(Direct Memory Access)マネージャ111が受信すると、このDMAマネージャ111が、複数のDMAチャネル112−0〜112−n(nは自然数であり好ましくは3〜7)のうちの一のDMAチャネル112−0〜112−n(以下、DMAチャネル112−0〜112−nを区別しない場合には符号112を用いて説明する)に、当該I/O要求を渡す。
DMAチャネル112は、I/O要求を受け取ると、当該I/O要求に係る転送データを取得して出力するものであり、DMAチャネル112から出力された転送データは、レーン選択部113によって選択されたレーン102によってSASターゲット120に転送される。
また、SASターゲット120は、各レーン102を通じてSASイニシエータ110から受信した転送データを、アービター121が調整しながら受信制御部122に送り、受信制御部122は、受信したデータに応じてメモリコントローラ104に当該データに係るコマンドを出力する。
なお、従来からSASを用いた技術において、ターゲット装置としてのディスクアレイ装置のSAS-HDDの複数の物理リンク間のレート差吸収を、エクスパンダを用いて実現する技術がある(例えば、下記特許文献1参照)。
特開2006−72636号公報
ところで、上記図5に示した従来のシステム100は、物理的に4つのバス101を有し、4つのレーン102によって12Gbpsのバス性能を有しているにも関わらず、DMAチャネル112が1個のみの動作(DMAの多重度が1)の場合、4つのレーン102があるにも関わらず、1つのレーン102(3Gbps)しか使用されず、4SAS(3Gbps×4=12Gbps)のバス性能が十分に使用されない。
つまり、処理すべきI/O要求の数が、レーン102の数よりも少ない場合であっても、1つのI/O要求に係るデータ転送は、1つのレーン102のみを用いて実行されるので、使用されないレーン102が存在することになり、非効率的であった。
また、近年の技術進歩により、メモリコントローラ103の処理性能(速度)の向上や、メモリコントローラ103とSASイニシエータ110との間のバス性能の向上により、メモリコントローラ103からのI/O要求等の転送速度が非常に速くなっているため、SASイニシエータ110とSASターゲット120との間(即ち、SASデバイス110,120間)のバス性能が悪いと、システム100全体の性能向上を阻害するおそれがある。
例えば、メモリコントローラ103とSASイニシエータ110との間のメモリコントロールバスがPCI(Peripheral Component Interconnect)express2.5GB/s×4(10GB/s)の場合には、SASデバイス110,120間で1つのレーン102(3Gbps)しか使用されなければ、SASデバイス110,120間が性能上のボルトネックとなってしまう。
本発明は、このような課題に鑑み創案されたもので、複数のバスを用いたSASによって接続されたSASデバイス間のデータ転送を効率的に実行して、より高速なデータ転送を実現できるようにすることを目的とする。
上記目的を達成するために、データ転送装置は、データの転送先と、複数のバスを用いたSASによって接続されたものであって、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、該キューイング部にキューイングされた該処理要求の数を検知する検知部と、該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送することを特徴としている。
なお、該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信することが好ましい。
また、該送信部が、該処理要求を分割する際に、当該処理要求に係る転送データ長を認識し、認識したデータ長に基づいて当該処理要求を分割することが好ましく、このとき、該送信部が、当該処理要求に含まれる転送データ長情報に基づいて、該転送データ長を認識することが好ましい。
さらに、該送信部が、該処理要求に含まれる転送データの格納元を示すアドレス情報、及び、該転送データ長情報を変更することにより、該処理要求を分割することが好ましい。
なお、該転送部が、該処理要求に係る転送データを取得して該転送先に向けて出力する複数の取得部と、該取得部によって出力される該転送データの転送に用いるバスを、該複数のバスから選択する選択部とをそなえて構成されていることが好ましい。
また、上記目的を達成するために、本発明の情報処理システムは、複数の情報処理装置と、該複数の情報処理装置を複数のバスを用いてデータ転送可能に接続するSASとをそなえたシステムであって、該データ転送の転送元としての情報処理装置が、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部と、該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送することを特徴としている。
さらに、上記目的を達成するために、本発明のデータ転送プログラムは、データの転送先と、複数のバスを用いたSASによって接続され、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると当該処理要求に係る転送データを取得し取得した該転送データを該複数のバスのうちの一のバスを用いて該転送先に転送する転送部とを有するデータ転送装置において、該キューイング部にキューイングされた該処理要求を該転送部に送信することにより該処理要求にかかるデータ転送を実行させる機能を、コンピュータに実現させるためのプログラムであって、該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部、該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部、及び、該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部として、該コンピュータを機能させるとともに、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送するように、該コンピュータを機能させることを特徴としている。
また、上記目的を達成するために、本発明のコンピュータ読取可能な記録媒体は、上述したデータ転送プログラムを記録したものである。
このように、本発明によれば、送信部が、判断部によって処理要求の数がバスの数よりも少ないと判断されると、キューイング部にキューイングされた処理要求を、バスの数とキューイング部にキューイングされた処理要求の数とに応じた数の処理要求に分割するので、常に多くのバスを用いたデータ転送が実現されることになり、複数のバスを用いたSASによって接続されたSASデバイス間のデータ転送を効率的に実行して、より高速なデータ転送を実現することができる。
つまり、送信部は、キューイング部にキューイングされた処理要求の数がバスの数よりも少ない場合には、かかる処理要求の数とバスの数とに応じて処理要求を分割するので、従来技術のごとく、バスが複数本あるにも係わらず、1つの処理要求に対して1つのバスのみを用いてデータ転送を行なうことが無くなり、複数のバスをすべて用いた効率的なデータ転送を実現できる。
以下、図面を参照しながら本発明の実施の形態について説明する。
〔1〕本発明の一実施形態について
まず、図1に示すブロック図を参照しながら、本発明の一実施形態としての情報処理システム(以下、本情報処理システムという)1の構成について説明する。この図1に示すように、本情報処理システム1は、複数(ここでは4本)のバス2−0〜2−3(以下、これらバス2−0〜2−3を区別しない場合には符号2を用いて説明する)を用いたSASによってデータの送受信可能に接続されたSASイニシエータ装置(データ転送装置)10及びSASターゲット装置(転送先)20,SASイニシエータ装置10に接続されたメモリコントローラ4,及びSASターゲット装置20に接続されたメモリコントローラ5をそなえて構成されている。
なお、SASイニシエータ装置10は、本発明の一実施形態としてのデータ転送装置であり、例えば、サーバのSAS HBA(Host Bus Adapter)である。また、SASターゲット装置20は、例えば、サーバのSAS HBAやRAID装置のコントローラやJBOD(Just a Bunch of Disks)である。
また、SASイニシエータ装置10及びSASターゲット装置20は、4ポートのSAS Wide Portを使用し、SASイニシエータ装置10とSASターゲット装置20とは物理的に4本のバス2−0〜2−3により接続されており、従って、SASは4つのレーン(転送経路)3−0〜3−3(以下、これらレーン3−0〜3−3を区別しない場合には符号3を用いて説明する)を実現している。
ここでは、SASイニシエータ装置10とSASターゲット装置20とのSAS PHY(Physical layer)0によってバス2−0を含むレーン3−0が構成され、SASイニシエータ装置10とSASターゲット装置20とのSAS PHY1によってバス2−1を含むレーン3−1が構成され、SASイニシエータ装置10とSASターゲット装置20とのSAS PHY2によってバス2−2を含むレーン3−2が構成され、SASイニシエータ装置10とSASターゲット装置20とのSAS PHY3によってバス2−3を含むレーン3−3が構成されている。
例えば、SAS PHYのデータ転送速度は1レーンにつき3Gbpsであり、本情報システム1は、4レーンあるので、12Gbpsのバス性能を有する。
ここで、図2を参照しながら、SASのアーキテクチャについて説明する。図2はSASアーキテクチャの一般的な構成を示す図である。この図2に示すように、SASアーキテクチャは、SAS Device30(例えば、本情報処理システムにおけるSASイニシエータ装置10)内に、6つのレイヤ(層)31〜36を構成している。
即ち、上位層から下位層に向けて、アプリケーション層31,トランスポート層32,SASポート層(SAS port layer)33,リンク層34,SAS phy層(SAS phy layer)35,及びSAS物理層(SAS physical layer)36をそなえている。
アプリケーション層31は、例えば、SCSIアプリケーション層(SCSI application layer)31a,ATA(AT Attachment)アプリケーション層(ATA application layer)31b,及び管理アプリケーション層(Management application layer)31cからなる。
トランスポート層32は、例えば、SSP(Serial SCSI Protocol)トランスポート層(SSP transport layer)32a,STP(SATA Tunneling Protocol)トランスポート層(STP transport layer)32b,及びSMP(Serial Management Protocol)トランスポート層(SMP transport layer)32cからなる。
リンク層34は、例えば、SSPリンク層(SSP link layer)34a,STPリンク層(STP link layer)34b,SMPリンク層(SMP link layer)34c,及びSASリンク層(SAS link layer)34dからなる。
ここで、トランスポート層32,SASポート層33,リンク層34,SAS phy層35,及びSAS物理層36は、SASポート(SAS Port)37に含まれている。
そして、リンク層34,SAS phy層35,及びSAS物理層36からなるSAS Phy38は、レーン数分そなえられる。例えば、本情報処理システム1では、SAS Phy38は、4つ存在する。
図1に示すように、本情報処理システム1のメモリコントローラ4は、データ転送の転送元としてのSASイニシエータ装置10に対してデータ転送に係る処理要求(IO;Input/Output)を発行するものである。
一方、メモリコントローラ5は、SASターゲット装置20がSASイニシエータ装置10から受け取った処理要求を、後段の記憶装置等(図示略)に対して実行するものである。
SASイニシエータ装置10は、メモリコントローラ4から受け取った処理要求や当該処理要求に係る転送データを、SAS(複数のレーン3)を用いてSASターゲット装置20に転送するものであり、DMA(Direct Memory Access)マネージャ11,DMAチャネル(取得部)12−0〜12−n(nは自然数であり、DMAチャネルは4〜8つそなえられるのが好ましく、したがってnは3〜7が好ましい),及びレーン選択部(選択部)13をそなえて構成されている。
DMAマネージャ11は、上記図2におけるアプリケーション層31に該当するものであり、メモリコントローラ4から受信した処理要求にかかる転送処理等を管理するものである。
DMAチャネル12−0〜12−n(以下、これらDMAチャネル12−0〜12−nを区別しない場合には符号12を用いて説明する)のそれぞれは、DMAマネージャ11から処理要求を受け取ると、その処理要求に係る転送データを取得して転送先に向けて出力するものである。なお、転送データは、処理要求に係る転送データのほか、処理要求そのものであってもよい。
なお、DMAチャネル12の数は、本発明において限定されるものではなく、例えば、4〜8つ程度(即ち、nは3〜7)である。
ここで、図3に処理要求の一例(ここではSCSI Readコマンド)を示す。DMAマネージャ11がメモリコントローラ4から受信して、DMAチャネル12に渡す処理要求は、例えば、図3のように構成されており、オペレーションコード(図中、“Operation Code(0x08)”と表記)41,LUN(Logical Unit Number)42,LBA(Logical Block Address)43,転送データ長(図中“Transfer length”と表記)44,及び制御情報(図中“Control”と表記)45をそなえている。
そして、DMAチャネル12は、図3に示す処理要求を受け取ると、LUN42及びLBA43に基づいて、記憶部(メモリ;図示略)から転送データを取得して、当該処理要求とともにSASターゲット装置20へSASのレーン3を用いて出力する。
レーン選択部13は、DMAチャネル12によって出力される転送データの転送に用いるバス2を、複数のバス2から選択するものであり、DMAチャネル12から転送データ等が出力される際に、空いているバス2(レーン3)を、当該転送データの転送に用いるバスとして選択し、当該DMAチャネル12と当該バス2(レーン3)とを接続するスイッチとして機能する。
このように、DMAチャネル12及びレーン選択部13は、データ転送に係る処理要求を受け取ると、その処理要求に係る転送データを取得し、取得した転送データを、複数のバス2(レーン3)のうちの一のバス2を用いて転送先であるSASターゲット装置20に転送する転送部12aとして機能する。
そして、図1に示すように、DMAマネージャ11は、キューイング部14,検知部15,判断部16,及び送信部17をそなえている。
キューイング部14は、例えば、FIFO(First In First Out)方式のメモリであり、メモリコントローラ4から発行され、DMAマネージャ11が受信した処理要求をキューイング(一時的に保持)するものである。
検知部15は、キューイング部14にキューイングされた処理要求の数を検知するものであり、カウンタ15aをそなえている。
つまり、検知部15は、キューイング部14に処理要求が保持されると、カウンタ15aを1つカウントアップし、キューイング部14から処理要求が出力されると、カウンタ15aを1つカウントダウンするとともに、このカウンタ15aの値を読み取ることにより、キューイング部14にキューイング中の処理要求の数を検知する。
判断部16は、検知部15によって検知された、キューイング部14にキューイング中の処理要求の数が、SASイニシエータ装置10とSASターゲット装置20とを接続するバス2の数(即ち、SASのレーン3の数である4)よりも少ないか否かを判断するものである。
つまり、判断部16は、キューイング中の処理要求の数がバス2の数よりも少なければ、複数のレーン3が使用可能であるとみなして、後述する送信部17の分割部17aがキューイング部14にキューイングされた処理要求を分割すべきであると判断する。
送信部17は、キューイング部14にキューイング中の処理要求を、後段のDMAチャネル12(即ち、転送部12a)に送信するものであり、判断部16によって処理要求の数がバス2の数よりも少ないと判断されると、キューイング部14にキューイングされた処理要求を、バス2の数とキューイング部14にキューイングされた処理要求の数とに応じた数の処理要求に分割する分割部17aをそなえている。
つまり、分割部17aは、バス2の数とキューイングされた処理要求の数との差に応じて、処理要求の数がバス2の数と同一になるように、キューイング中の処理要求を複数の処理要求に分割する。
そして、送信部17は、分割部17aによって処理要求が複数の処理要求に分割されると、分割された処理要求をすべてDMAチャネル12に送信する。
一方、分割部17aは、判断部16によって処理要求の数がバス2の数以上であると判断されると、キューイング部14にキューイングされた処理要求を分割せず、送信部17は、キューイング部14にキューイングされた処理要求をそのままDMAチャネル12に送信する。つまり、このとき、送信部17は、通常のSASの転送方法のまま処理要求ごとにレーンを割り当てる形で転送を実行させる。
ここで、分割部17aによる具体的な分割処理について説明すると、分割部17aは、キューイング中の処理要求の数が1である場合、バス2の数が4であるので、当該処理要求を4つの処理要求に分割する。
また、分割部17aは、キューイング中の処理要求の数が2である場合、バス2の数が4であるので、それら2つの処理要求のそれぞれを2つの処理要求に分割する。
さらに、分割部17aは、キューイング中の処理要求の数が3である場合、キューイング部14の先頭から2つの処理要求をそれぞれ2つの処理要求に分割して出力する一方、残りの1つの処理要求は今回出力しない。
なお、分割部17aは、キューイング中の処理要求の数が3である場合、キューイング部14の先頭の1つの処理要求を2つの処理要求に分割し、残りの2つの処理要求は分割せずにそのまま出力してもよい。
ところで、分割部17aは、処理要求を分割する際に、当該処理要求に係る転送データ長を、図2に示した処理要求に含まれる転送データ長44(転送データ長情報)に基づいて認識し、認識したデータ長に基づいて各処理要求に係る転送データのデータ長ができる限り均等になるように、当該処理要求を分割する。
より具体的には、分割部17aは、処理要求に含まれる転送データの格納元を示すアドレス情報であるLBA43、及び、転送データ長44を変更することにより、処理要求を分割する。
例えば、分割部17aは、認識したデータ長が4GBであり、分割数が4であるときには、データ長が1GBの処理要求を4つ生成する。分割前の元の処理要求のLBA43が1〜40000を示すものである場合、分割部17aは、それぞれの転送データ長44が1GBを示す4つの処理要求を生成するとともに、各処理要求のLBA43のそれぞれを、“1〜10000”,“10001〜20000”,“20001〜30000”,“30001〜40000”とする。なお、分割後の各処理要求において、オペレーションコード41,LUN42,及び制御情報45は元の処理要求のままである。
つまり、分割部17aは、例えば、元の処理要求のLBA43を“1〜10000”に変更し、転送データ長44が1GBを示すように変更するとともに、元の処理要求をコピーして3つの処理要求を生成し、それぞれのLBA43を“10001〜20000”,“20001〜30000”,“30001〜40000”に変更するとともに、転送データ長44が1GBを示すように変更することにより、元の処理要求を4つの処理要求に分割する。
このように、DMAマネージャ11は、4つすべてのレーン3を使用してデータ転送を実行すべく、判断部16が、DMAチャネル12及びレーン選択部13の処理状況やレーン3の実際の使用状況を見るのではなく、レーン3の数とキューイング部14にキューイング中の処理要求の数とに基づいて、レーン3の空き状況を推定し、送信部17(分割部17a)が、その推定結果に応じて、キューイング中の処理要求が複数レーン3を使用可能であれば、使用可能なレーン数(つまり、レーン3の数からキューイング中の処理要求を差し引いた数)と、キューイング中の処理要求の数とに応じて、すべてのレーン3を使用するように、キューイング中の処理要求を分割する。これにより、空きレーン3の実際の使用状況を監視する機構を新たにそなえることなく、検知部15,判断部16,分割部17aをそなえる(ここでは、ソフトウェアにより検知部15,判断部16,分割部17aの機能を実現する)だけで、常に、すべてのレーン、もしくは、より多くのレーンを同時に用いたデータ転送を実現できる。
なお、DMAマネージャ11の検知部15,判断部16,及び送信部17(分割部17a)の処理は、送信部17がキューイング部14から処理要求を読み出してDMAチャネル12に送信する度に実行される。即ち、送信部17の分割部17aによってキューイング部14の処理要求が分割されると、分割された処理要求のすべてをDMAチャネル12に送信してから、検知部15,判断部16及び送信部17が次の処理を実行する。
ここで、DMAマネージャ11の動作手順の具体例を説明すると、DMAマネージャ11は、例えば、以下の(1)〜(5)の手順を実行する。
(1)まず、キューイング部14に処理要求がキューイングされていない状態で、メモリコントローラ4から処理要求を受信し、キューイング部14がその処理要求をキューイングすると、カウンタ15aが1つカウントアップされる。
(2)そして、送信部17が送信処理を実行する際に、検知部15によって“1”が検知され、判断部16は検知部15によって検知された“1”とバス数“4”とを比較し、キューイング中の処理要求の数がバス数よりも少ないと判断する。
(3)すると、送信部17の分割部17aは、キューイング部14からその1つの処理要求を読み出して4つの処理要求に分割し、送信部17はDMAチャネル12の処理状況に応じて、4つに分割した処理要求をDMAチャネル12に順次送信する。なお、キューイング部14から処理要求が読み出されると、カウンタ15aが1つカウントダウンされる。
(4)上記(3)の動作中に、メモリコントローラ4から新たに処理要求を受けると、その処理要求はキューイング部14にキューイングされ、カウンタ15aが1つカウントアップされる。ここで、上記(3)の動作中に2つの処理要求がキューイングされると、カウンタ15aの値は“2”となる。
(5)その後、送信部17による上記(3)の処理が終了すると、再度上記(2),(3)の処理と同様の処理が実行される。つまり、検知部15によって“2”が検知され、判断部16は検知部15によって検知された“2”とバス数“4”とを比較し、キューイング中の処理要求の数がバス数よりも少ないと判断する。そして、送信部17の分割部17aが、キューイング部14から2つの処理要求を読み出し、2つの処理要求のそれぞれを2つの処理要求に分割して合計4つの処理要求を生成し、送信部17はDMAチャネル12の処理状況に応じて、かかる4つの処理要求をDMAチャネル12に順次送信する。
なお、上記(4)において、4つ以上の処理要求がキューイングされ、検知部15によって“4”以上が検知されると、上記(5)の処理とは異なり、判断部16がキューイング中の処理要求の数がバス数以上であると判断し、分割部17aは分割処理を行なわず、送信部17はキューイング部14から1つの処理要求を読み出して、それをそのままDMAチャネル12に送信する。
次に、SASターゲット装置20について説明すると、SASターゲット装置20は、前記図5に示す従来のシステム100のSASターゲット装置120と同様のものであり、アービター21及び受信制御部22をそなえて構成されている。
アービター21は、SASのレーン3を介してSASイニシエータ装置10から受信した処理要求及び転送データを、後段の受信制御部22に順に受け渡すための調整を行なうものである。
受信制御部22は、受信した処理要求や処理要求と転送データに応じて、メモリコントローラ5にかかる処理要求等を出力するものである。
そして、メモリコントローラ5によって当該処理要求に係る処理(書込み処理/読出し処理)が、メモリコントローラ5に接続された記憶装置(図示略)に対して実行される。
このように、本発明の一実施形態としての通信装置によれば、送信部17の分割部17aが、判断部16によって処理要求の数がバス3の数よりも少ないと判断されると、キューイング部14にキューイングされた処理要求を、バス2の数とキューイング部14にキューイングされた処理要求の数とに応じた数の処理要求に分割するので、常に多くのバス2を用いたデータ転送が実現されることになり、複数のバス2を用いたSASによって接続されたSASデバイス10,20間のデータ転送を効率的に実行して、より高速なデータ転送を実現することができる。
つまり、送信部17の分割部17aが、キューイング部14にキューイングされた処理要求の数に応じて、すべてのバス2を使用するように処理要求を分割するので、従来技術のごとく、バス2が4本あるにも係わらず、1つの処理要求に対して1つのバス2だけを用いてデータ転送を行なうということが無くなり、トラフィックの多寡に係わらず、4つのレーン3を実現するSAS Wide Linkの帯域(3Gbps×4=12Gbps)をすべて活用することができる。
なお、他のインタフェースと比較した場合、Ethernet(登録商標)は次世代で10Gbpsを実現し、FC(Fiber Channel)は4Gbpsもしくは次世代で8Gbpsを実現する。したがって、サーバ間転送データをサーバローカルのファイルシステムにライトする場合、将来的にサーバ間とSASの1レーン3(1レーン3の性能を3Gbpsとした場合)との性能差が大きくなり、SAS-HBAのボルトネックが深刻になることが予想される。そのときに、本情報処理システム1のごとく、すべてのレーン3を使用すべく単一の処理要求を分割して、すべてのレーン3を使用する(つまり、3Gbps×4=12Gbpsのバス能力を実現する)メリットは、より大きくなる。特に、シーケンシャル転送[FTP(File Transfer Protocol)でのサーバ間のデータ転送等]で有効であり、データのミラーリング処理等における、大量のファイル転送やデータコピー等を実施する際に大きな効果を期待できる。
また、本情報処理システム1は、SASアーキテクチャにおけるアプリケーション層31であるDMAマネージャ11を、前記図5に示した従来のシステム100から改良することにより、検知部15,判断部16,及び送信部17の機能を追加したので、SASイニシエータ装置10は、SASデバイスとしての汎用性を維持したままであるとともに、主としてアプリケーションの改良によって上述した機能及び作用効果を実現することにより、本SASイニシエータ装置10を実現するためのコストを抑えることができる。また、既存のSASデバイスに、本SASイニシエータ装置10のDMAマネージャ11の機能を低コストで且つ容易に追加することができる。
さらに、送信部17の分割部17aが、判断部16によって処理要求の数がバス2の数以上であると判断されると、キューイング部14にキューイングされた処理要求をそのまま転送部12aに送信するので、複数のバス2がすべて使用されていると推測できる場合には、その状態を保ったまま通常の処理を実行できる。
また、送信部17の分割部17aが、分割後の処理要求の数がバス2の数と同一になるように、キューイング部14にキューイング中の処理要求を複数の処理要求に分割するので、送信部17によって分割されたすべての処理要求が転送部12aに送信されることにより、すべてのバス2を使用した、より効率的なデータ転送をより確実に実現できる。
なお、送信部17の分割部17aが、処理要求を分割する際に、当該処理要求に係る転送データ長を認識し、認識したデータ長に基づいて当該処理要求を分割するので、分割後の処理要求間で転送データ長が均等もしくは略均等となるように、当該処理要求を分割することができ、バス2のより効率的な使用を実現できる。
このとき、送信部17の分割部17aが、当該処理要求に含まれる転送データ長情報44に基づいて、転送データ長を認識するので、分割部17aは、その転送データ長を確実に且つ容易に認識できる。
さらに、送信部17の分割部17aが、処理要求に含まれる転送データの格納元を示すアドレス情報(LBA43)、及び、転送データ長情報44を変更することにより、処理要求を分割するので、分割部17aは、処理要求を確実に分割できる。
〔2〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態では、SASイニシエータ装置10とSASターゲット装置20とが4本のバス2で接続された場合(つまり、4ポートのSAS Wide Portをそなえた場合)を例にあげて説明したが、本発明において、SASが何本のバス2を用いて実現されるか(つまり、SASのレーン3の数)は限定されるものではなく、バス2は、例えば、8本,12本,16本,20本,24本であってもよい。
また、上述した実施形態では、キューイング部14にキューイングされた処理要求が3つであった場合にも、分割部17aが処理要求を分割する場合を例にあげて説明したが、本発明はこれに限定されるものではなく、キューイング中の処理要求が3つである場合には、判断部16が分割部17aは処理要求の分割を実行すべきではないと判断し、分割部17aは、判断部16によって処理要求の分割を実行すべきではないと判断されると、処理要求を分割せずに、送信部17は、処理要求をそのままDMAチャネル12に送信するように構成してもよい。
なお、上述した実施形態では、キューイング部14及びカウンタ15aが、DMAマネージャ11内にそなえられた場合を例にあげて構成したが、本発明はこれに限定されるものではなく、キューイング部14及びカウンタ15aは、DMAマネージャ11の外部に設けられていてもよい。
さらに、上述した実施形態では、SASイニシエータ装置10に対して、1つのSASターゲット装置20が接続された場合を例にあげて説明したが、本発明はこれに限定されるものではなく、例えば、図4に示す本発明の変形例としての情報処理システム1´のごとく、SASイニシエータ装置(図中、イニシエータと表記)10に対して、SASスイッチ6を介して複数のSASターゲット装置(図中、ターゲット0,1,Nと表記)20−0〜20−N(Nは自然数)が接続されていてもよい。
このとき、SASイニシエータ装置10とSASスイッチ6とは複数のバス7で接続され、SASスイッチ6と各SASターゲット装置20−0〜20−Nとは、それぞれ、複数のバス8−0〜8−Nで接続されている。
そのため、SASイニシエータ装置10と、各SASターゲット装置20−0〜20−Nとは、SASによって複数のレーンでデータ転送可能に接続され、SASスイッチ6によってSASイニシエータ装置10の接続相手(SASターゲット装置20−0〜20−N)が切り替えられる。
このような本発明の変形例としての情報処理システム1´においても、上述した実施形態と同様の作用効果を得ることができる。
なお、上述した検知部15,判断部16,及び送信部17(分割部17a)としての機能は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のアプリケーションプログラム(データ転送プログラム)を実行することによって実現されてもよい。
そのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど)等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からデータ転送プログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
ここで、コンピュータとは、ハードウェアとOS(オペレーティングシステム)とを含む概念であり、OSの制御の下で動作するハードウェアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえている。
上記データ転送プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、検知部15,判断部16,及び送信部17(分割部17a)としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
なお、本実施形態としての記録媒体としては、上述したフレキシブルディスク,CD,DVD,磁気ディスク,光ディスク,光磁気ディスクのほか、ICカード,ROMカートリッジ,磁気テープ,パンチカード,コンピュータの内部記憶装置(RAMやROMなどのメモリ),外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
〔3〕付記
(付記1)
データの転送先と、複数のバスを用いたSAS(Serial Attached SCSI)によって接続されたデータ転送装置であって、
データ転送に係る処理要求をキューイングするキューイング部と、
該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、
該キューイング部にキューイングされた該処理要求の数を検知する検知部と、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、
該送信部が、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じた数の処理要求に分割することを特徴とする、データ転送装置。
(付記2)
該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信することを特徴とする、付記1記載のデータ転送装置。
(付記3)
該送信部が、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割することを特徴とする、付記1または付記2記載のデータ転送装置。
(付記4)
該送信部が、該処理要求を分割する際に、当該処理要求に係る転送データ長を認識し、認識したデータ長に基づいて当該処理要求を分割することを特徴とする、付記1〜3のいずれか1項に記載のデータ転送装置。
(付記5)
該送信部が、当該処理要求に含まれる転送データ長情報に基づいて、該転送データ長を認識することを特徴とする、付記4記載のデータ転送装置。
(付記6)
該送信部が、該処理要求に含まれる転送データの格納元を示すアドレス情報、及び、該転送データ長情報を変更することにより、該処理要求を分割することを特徴とする、付記5記載のデータ転送装置。
(付記7)
該転送部が、
該処理要求に係る転送データを取得して該転送先に向けて出力する複数の取得部と、
該取得部によって出力される該転送データの転送に用いるバスを、該複数のバスから選択する選択部とをそなえて構成されていることを特徴とする、付記1〜6のいずれか1項に記載のデータ転送装置。
(付記8)
複数の情報処理装置と、該複数の情報処理装置を複数のバスを用いてデータ転送可能に接続するSAS(Serial Attached SCSI)とをそなえた情報処理システムであって、
該データ転送の転送元としての情報処理装置が、
データ転送に係る処理要求をキューイングするキューイング部と、
該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、
該キューイング部にキューイングされた該処理要求の数を検知する検知部と、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、
該送信部が、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じた数の処理要求に分割することを特徴とする、情報処理システム。
(付記9)
該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信することを特徴とする、付記8記載の情報処理システム。
(付記10)
該送信部が、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割することを特徴とする、付記8または付記9記載の情報処理システム。
(付記11)
該送信部が、該処理要求を分割する際に、当該処理要求に係る転送データ長を認識し、認識したデータ長に基づいて当該処理要求を分割することを特徴とする、付記8〜10のいずれか1項に記載の情報処理システム。
(付記12)
該分割部が、当該処理要求に含まれる転送データ長情報に基づいて、該転送データ長を認識することを特徴等する、付記11記載の情報処理システム。
(付記13)
該分割部が、該処理要求に含まれる転送データの格納元を示すアドレス情報、及び、該転送データ長情報を変更することにより、該処理要求を分割することを特徴とする、付記12記載の情報処理システム。
(付記14)
該転送部が、
該処理要求に係る転送データを取得して該転送先に向けて出力する複数の取得部と、
該取得部によって出力される該転送データの転送に用いるバスを、該複数のバスから選択する選択部とをそなえて構成されていることを特徴とする、付記8〜13のいずれか1項に記載の情報処理システム。
(付記15)
データの転送先と、複数のバスを用いたSAS(Serial Attached SCSI)によって接続され、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると当該処理要求に係る転送データを取得し取得した該転送データを該複数のバスのうちの一のバスを用いて該転送先に転送する転送部とを有するデータ転送装置において、該キューイング部にキューイングされた該処理要求を該転送部に送信することにより該処理要求にかかるデータ転送を実行させる機能を、コンピュータに実現させるためのデータ転送プログラムであって、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部、
該キューイング部にキューイングされた該処理要求の数を検知する検知部、及び、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部として、該コンピュータを機能させるとともに、
該送信部が、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じた数の処理要求に分割するように、該コンピュータを機能させることを特徴とする、データ転送プログラム。
(付記16)
該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信するように、該コンピュータを機能させることを特徴とする、付記15記載のデータ転送プログラム。
(付記17)
該送信部が、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するように、該コンピュータを機能させることを特徴とする、付記15または付記16記載のデータ転送プログラム。
(付記18)
データの転送先と、複数のバスを用いたSAS(Serial Attached SCSI)によって接続され、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると当該処理要求に係る転送データを取得し取得した該転送データを該複数のバスのうちの一のバスを用いて該転送先に転送する転送部とを有するデータ転送装置において、該キューイング部にキューイングされた該処理要求を該転送部に送信することにより該処理要求にかかるデータ転送を実行させる機能を、コンピュータに実現させるためのデータ転送プログラムを記録したコンピュータ読取可能な記録媒体であって、
該データ転送プログラムが、
該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部、
該キューイング部にキューイングされた該処理要求の数を検知する検知部、及び、
該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部として、該コンピュータを機能させるとともに、
該送信部が、該判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じた数の処理要求に分割するように、該コンピュータを機能させることを特徴とする、データ転送プログラムを記録したコンピュータ読取可能な記録媒体。
(付記19)
該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信するように、該データ転送プログラムが該コンピュータを機能させることを特徴とする、付記18記載のデータ転送プログラムを記録したコンピュータ読取可能な記録媒体。
(付記20)
該送信部が、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するように、該データ転送プログラムが該コンピュータを機能させることを特徴とする、付記18または付記19記載のデータ転送プログラムを記録したコンピュータ読取可能な記録媒体。
本発明の一実施形態としての情報処理システムの構成を示すブロック図である。 本発明の一実施形態としての情報処理システムにおけるSASアーキテクチャを説明するための図である。 本発明の一実施形態としての情報処理システムのメモリコントローラから発行された処理要求の一例を示す図である。 本発明の変形例としての情報処理システムの概略構成を示すブロック図である。 従来の情報処理システムの構成を示すブロック図である。
符号の説明
1,1´ 情報処理システム
2,2−0〜2−3,101,101−0〜101−3,7,8−0〜8−N バス
3,3−0〜3−3,102,102−0〜102−3 レーン
4,5,103,104 メモリコントローラ
6 SAS(Serial attached SCSI(Small Computer System Interface))スイッチ
10 SASイニシエータ装置(データ転送装置)
11 DMA(Direct Memory Access)マネージャ
12,12−0〜12−n DMAチャネル(取得部)
12a 転送部
13 レーン選択部(選択部)
20 SASターゲット装置
21,121 アービター
22,122 受信制御部
30 SAS Device
31 アプリケーション層
31a SCSIアプリケーション層
31b ATA(AT Attachment)アプリケーション層
31c 管理アプリケーション層
32 トランスポート層
32a SSP(Serial SCSI Protocol)トランスポート層
32b STP(SATA Tunneling Protocol)トランスポート層
32c SMP(Serial Management Protocol)トランスポート層
33 SASポート層
34 リンク層
34a SSPリンク層
34b STPリンク層
34c SMPリンク層
34d SASリンク層
35 SAS phy層
36 SAS物理層
37 SASポート
38 SAS Phy(Physical layer)
41 オペレーションコード
42 LUN(Logical Unit Number)
43 LBA(Logical Block Address;アドレス情報)
44 転送データ長(転送データ長情報)
45 制御情報
100 SAS Wide Linkシステム
110 SASイニシエータ
111 DMAマネージャ
112,112−0〜112−n DMAチャネル
120 SASターゲット

Claims (9)

  1. データの転送先と、複数のバスを用いたSAS(Serial Attached SCSI)によって接続されたデータ転送装置であって、
    データ転送に係る処理要求をキューイングするキューイング部と、
    該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、
    該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、
    該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部と、
    該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、
    判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、
    該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、
    該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送することを特徴とする、データ転送装置。
  2. 該送信部が、該判断部によって該処理要求の数が該バスの数以上であると判断されると、該キューイング部にキューイングされた該処理要求をそのまま該転送部に送信することを特徴とする、請求項1記載のデータ転送装置。
  3. 該送信部が、該処理要求を分割する際に、当該処理要求に係る転送データ長を認識し、認識したデータ長に基づいて当該処理要求を分割することを特徴とする、請求項1または請求項2記載のデータ転送装置。
  4. 該送信部が、当該処理要求に含まれる転送データ長情報に基づいて、該転送データ長を認識することを特徴とする、請求項記載のデータ転送装置。
  5. 該送信部が、該処理要求に含まれる転送データの格納元を示すアドレス情報、及び、該転送データ長情報を変更することにより、該処理要求を分割することを特徴とする、請求項記載のデータ転送装置。
  6. 該転送部が、
    該処理要求に係る転送データを取得して該転送先に向けて出力する複数の取得部と、
    該取得部によって出力される該転送データの転送に用いるバスを、該複数のバスから選択する選択部とをそなえて構成されていることを特徴とする、請求項1〜のいずれか1項に記載のデータ転送装置。
  7. 複数の情報処理装置と、該複数の情報処理装置を複数のバスを用いてデータ転送可能に接続するSAS(Serial Attached SCSI)とをそなえた情報処理システムであって、
    該データ転送の転送元としての情報処理装置が、
    データ転送に係る処理要求をキューイングするキューイング部と、
    該処理要求を受け取ると、当該処理要求に係る転送データを取得し、取得した該転送データを、該複数のバスのうちの一のバスを用いて該転送先に転送する転送部と、
    該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部と、
    該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部と、
    該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部とをそなえ、
    判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、
    該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、
    該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送することを特徴とする、情報処理システム。
  8. データの転送先と、複数のバスを用いたSAS(Serial Attached SCSI)によって接続され、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると当該処理要求に係る転送データを取得し取得した該転送データを該複数のバスのうちの一のバスを用いて該転送先に転送する転送部とを有するデータ転送装置において、該キューイング部にキューイングされた該処理要求を該転送部に送信することにより該処理要求にかかるデータ転送を実行させる機能を、コンピュータに実現させるためのデータ転送プログラムであって、
    該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部、
    該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部、及び、
    該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部として、該コンピュータを機能させるとともに、
    判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、
    該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、
    該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送するように、該コンピュータを機能させることを特徴とする、データ転送プログラム。
  9. データの転送先と、複数のバスを用いたSAS(Serial Attached SCSI)によって接続され、データ転送に係る処理要求をキューイングするキューイング部と、該処理要求を受け取ると当該処理要求に係る転送データを取得し取得した該転送データを該複数のバスのうちの一のバスを用いて該転送先に転送する転送部とを有するデータ転送装置において、該キューイング部にキューイングされた該処理要求を該転送部に送信することにより該処理要求にかかるデータ転送を実行させる機能を、コンピュータに実現させるためのデータ転送プログラムを記録したコンピュータ読取可能な記録媒体であって、
    該データ転送プログラムが、
    該キューイング部にキューイングされた該処理要求を該転送部に送信する送信部、
    該送信部による該処理要求の送信毎に、該キューイング部にキューイングされた該処理要求の数を検知する検知部、及び、
    該検知部によって検知された該処理要求の数が、該バスの数よりも少ないか否かを判断する判断部として、該コンピュータを機能させるとともに、
    判断部によって該処理要求の数が該バスの数よりも少ないと判断されると、
    該送信部が、該キューイング部にキューイングされた該処理要求を、該バスの数と該キューイング部にキューイングされた該処理要求の数とに応じて、分割後の処理要求の数が該バスの数と同一になるように該キューイング部にキューイング中の処理要求を複数の処理要求に分割するとともに、該複数の処理要求を該転送部に送信し、
    該転送部が、該複数の処理要求を受け取ると、当該複数の処理要求に係る複数の転送データを取得し、取得した該複数の転送データを、該複数のバスを用いて該転送先に転送するように、該コンピュータを機能させることを特徴とする、データ転送プログラムを記録したコンピュータ読取可能な記録媒体。
JP2007242710A 2007-09-19 2007-09-19 データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 Expired - Fee Related JP4445535B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007242710A JP4445535B2 (ja) 2007-09-19 2007-09-19 データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US12/197,497 US20090077276A1 (en) 2007-09-19 2008-08-25 Data transfer device, information processing system, and computer-readable recording medium carrying data transfer program
KR1020080090724A KR101013269B1 (ko) 2007-09-19 2008-09-16 데이터 전송 장치, 정보 처리 시스템, 데이터 전송 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN2008101491912A CN101393540B (zh) 2007-09-19 2008-09-19 数据传送装置和信息处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007242710A JP4445535B2 (ja) 2007-09-19 2007-09-19 データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体

Publications (2)

Publication Number Publication Date
JP2009075753A JP2009075753A (ja) 2009-04-09
JP4445535B2 true JP4445535B2 (ja) 2010-04-07

Family

ID=40455792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007242710A Expired - Fee Related JP4445535B2 (ja) 2007-09-19 2007-09-19 データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体

Country Status (4)

Country Link
US (1) US20090077276A1 (ja)
JP (1) JP4445535B2 (ja)
KR (1) KR101013269B1 (ja)
CN (1) CN101393540B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384160B2 (en) * 2008-09-04 2016-07-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods and controllers for affiliation managment
US20100070656A1 (en) * 2008-09-12 2010-03-18 Atto Technology, Inc. System and method for enhanced load balancing in a storage system
US8281054B2 (en) * 2010-08-25 2012-10-02 Lsi Corporation Methods and apparatus for improved host/initiator utilization in serial advanced technology attachment communication
US8621113B2 (en) * 2011-05-31 2013-12-31 Micron Technology, Inc. Apparatus including host bus adapter and serial attachment programming compliant device and related methods
US9336171B2 (en) * 2012-11-06 2016-05-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Connection rate management in wide ports
WO2015000105A1 (en) * 2013-07-01 2015-01-08 Empire Technology Development Llc Data migration in a storage network
JP6698353B2 (ja) * 2016-01-05 2020-05-27 Necプラットフォームズ株式会社 情報処理装置、dma転送制御方法およびdma転送制御プログラム
CN117749739B (zh) * 2024-02-18 2024-06-04 北京火山引擎科技有限公司 数据发送方法、数据接收方法、装置、设备及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5718714A (en) * 1994-10-11 1998-02-17 Circon Corporation Surgical instrument with removable shaft assembly
EP0716370A3 (en) * 1994-12-06 2005-02-16 International Business Machines Corporation A disk access method for delivering multimedia and video information on demand over wide area networks
WO2001001262A1 (fr) * 1999-06-24 2001-01-04 Fujitsu Limited Controleur de peripherique et systeme d'entree/sortie
JP2003131815A (ja) * 2001-10-22 2003-05-09 Fujitsu Media Device Kk シリアルインタフェースのデータ転送システム
JP3998532B2 (ja) * 2002-08-07 2007-10-31 株式会社ルネサステクノロジ データ転送装置
US7603464B2 (en) * 2003-06-04 2009-10-13 Sony Computer Entertainment Inc. Method and system for identifying available resources in a peer-to-peer network
US7162550B2 (en) * 2003-07-21 2007-01-09 Intel Corporation Method, system, and program for managing requests to an Input/Output device
US7341587B2 (en) * 2003-11-20 2008-03-11 Warsaw Orthopedic, Inc. Methods and devices for inserting and engaging vertebral implants in minimally invasive procedures
US8123757B2 (en) * 2003-12-31 2012-02-28 Depuy Spine, Inc. Inserter instrument and implant clip
US7290066B2 (en) * 2004-03-18 2007-10-30 Lsi Corporation Methods and structure for improved transfer rate performance in a SAS wide port environment
US7334056B2 (en) * 2004-08-09 2008-02-19 Lsi Logic Corporation Scalable architecture for context execution
US7462182B2 (en) * 2004-08-10 2008-12-09 Warsaw Orthopedic, Inc. Reducing instrument for spinal surgery
JP4555029B2 (ja) * 2004-09-01 2010-09-29 株式会社日立製作所 ディスクアレイ装置
US20060080671A1 (en) * 2004-10-13 2006-04-13 Day Brian A Systems and methods for opportunistic frame queue management in SAS connections
JP2006164010A (ja) * 2004-12-09 2006-06-22 Seiko Epson Corp 印刷システム、ドライバプログラム、及び印刷装置

Also Published As

Publication number Publication date
KR101013269B1 (ko) 2011-02-09
KR20090030220A (ko) 2009-03-24
CN101393540B (zh) 2010-07-14
CN101393540A (zh) 2009-03-25
US20090077276A1 (en) 2009-03-19
JP2009075753A (ja) 2009-04-09

Similar Documents

Publication Publication Date Title
JP4445535B2 (ja) データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US10725684B2 (en) Method and apparatus for cost-based load balancing for port selection
US8898385B2 (en) Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment
US6842835B1 (en) Storage subsystem and its controlling method
JP4961481B2 (ja) シリアルアドバンストテクノロジーアタッチメント(sata)およびシリアルアタッチトスモールコンピュータシステムインターフェース(scsi)(sas)のブリッジング
US7913037B2 (en) Computer system for controlling allocation of physical links and method thereof
CN103150275B (zh) 掉电后重建闪存控制器中使用的元数据的方法及闪存装置
US9400616B2 (en) Methodology for manipulation of SATA device access cycles
US7739432B1 (en) Command switching for multiple initiator access to a SATA drive
JP5546635B2 (ja) データ転送装置およびその制御方法
US7839788B2 (en) Systems and methods for load balancing storage system requests in a multi-path environment based on transfer speed of the multiple paths
US7464235B2 (en) Storage system and control method thereof, and computer program product
CN102741801B (zh) 存储控制装置和存储控制装置的控制方法
CN106688217A (zh) 用于融合联网和存储的方法和系统
JP6955159B2 (ja) ストレージシステム、ストレージ制御装置およびプログラム
US20090112877A1 (en) System and Method for Communicating Data in a Storage Network
US7451285B2 (en) Computer systems, management computers and storage system management method
CN110609659A (zh) 用于执行读取命令的NVMeoF RAID实现方法
US9268493B2 (en) Systems and methods for smart storage interconnection in a heterogeneous storage environment
US8868806B2 (en) Methods and structure for hardware management of serial advanced technology attachment (SATA) DMA Non-Zero Offsets in a serial attached SCSI (SAS) expander
JP2005267502A (ja) データ転送用スイッチ
US20040205269A1 (en) Method and apparatus for synchronizing data from asynchronous disk drive data transfers
JP2014167818A (ja) データ転送装置およびデータ転送方法
US7949806B2 (en) Apparatus and method to provide an operation to an information storage device including protocol conversion and assigning priority levels to the operation
JP2009294699A (ja) ストレージ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100115

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140122

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees