JP2005267502A - データ転送用スイッチ - Google Patents

データ転送用スイッチ Download PDF

Info

Publication number
JP2005267502A
JP2005267502A JP2004082190A JP2004082190A JP2005267502A JP 2005267502 A JP2005267502 A JP 2005267502A JP 2004082190 A JP2004082190 A JP 2004082190A JP 2004082190 A JP2004082190 A JP 2004082190A JP 2005267502 A JP2005267502 A JP 2005267502A
Authority
JP
Japan
Prior art keywords
frame
switch
buffer memory
port
crossbar switch
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.)
Pending
Application number
JP2004082190A
Other languages
English (en)
Inventor
Katsuya Tanaka
勝也 田中
Tetsuya Shirogane
哲也 白銀
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004082190A priority Critical patent/JP2005267502A/ja
Priority to US10/847,881 priority patent/US7363400B2/en
Publication of JP2005267502A publication Critical patent/JP2005267502A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】
ディスクコントローラとディスクアレイを接続するスイッチにおけるデータ書き込み時のスループットを向上させる。
【解決手段】
フレーム出力先ポートのバッファメモリの空き容量が所定の値より多い場合は、クロスバスイッチによりフレームの経路変更を実行する。出力先ポートのバッファメモリの空き容量が所定の値以下である場合は、転送フレームを共有メモリに書き込み、その後該フレームを共有メモリから読み出して出力ポートへ転送する。クロスバスイッチによるフレーム転送と共有メモリ経由のフレーム転送を選択的に実行することにより、ポートバッファが溢れる影響を軽減でき、書き込みスループットを向上できる。
【選択図】図1

Description

本発明は、データ転送用スイッチに係り、より詳しくはコンピュータシステムの二次記憶装置に使用されるスイッチ、特にディスクコントローラとディスクアレイを接続するスイッチ及びそのデータ転送制御方法に関する。
コンピュータシステムは大容量の二次記憶装置を備え、CPU(中央処理装置)等の上位装置が必要とするデ−タをこの二次記憶装置に格納しておき、上位装置から随時にデータの書き込み及び読み出しを行っている。二次記憶装置としては一般に不揮発な記憶媒体、とりわけ磁気ディスク装置や光ディスク装置等のディスク装置が使用される。
近年、高度情報化に伴い、この二次記憶装置の高性能化が要求されている。ディスク装置の高性能化のためには、特にディスクドライブの接続台数を増加させ、かつスループットを向上させることが望ましい。そのためにディスク装置内のディスクコントローラとディスクアレイとをスイッチを用いて接続することが提案されている。高性能なディスク装置では、ディスクコントローラとディスクアレイ間の入出力インターフェイスとしてファイバチャネルが使用されることが多い。
例えば、特開平11−8636公報(特許文献1)には、ディスク装置内のディスクコントローラとディスクアレイの接続に適用可能なファイバチャネルのスイッチが開示されている。この文献に示されたスイッチは、スイッチの全ポートから入出力されるフレームが中央メモリを共有する共有メモリ型のスイッチである。
また、特開2003−303055公報(特許文献2)には、バッファメモリを有するスイッチを用いて、ディスク装置内のディスクコントローラとディスクアレイを接続するディスク装置が開示されている。より具体的には、ディスクアダプタDKAと、複数のディスクグループR1〜R4からなるディスクアレイDAを、複数のスイッチSW1〜SW4を介してそれぞれ接続し、スイッチは、ディスクアダプタの接続されたポートとディスクドライブの接続されたポートとの切り替えを、入力されたフレーム毎に、フレーム内の送信先情報に従って行うものである。
特開平11−8636公報
特開2003−303055公報
ネットワーク技術の進歩に伴い、1チャネル当たりの媒体速度は年々増加している。例えばディスク装置に使用されるファイバチャネルにおける媒体速度は、現状では1Gb/s乃至2Gb/sであるが、近い将来4Gb/sから10Gb/s程度に高速化されるものと予想されている。一方、ディスクドライブに対する読み出しまたは書き込み時の実効的なデータ転送速度は、現状では最大100MB/s程度である。ディスクドライブは機械部品を含むため、媒体速度の増加率ほどには高速化されないと考えられる。
上記特開2003−303055公報に開示された、ディスクアダプタとディスクアレイの接続形態では、スイッチを介してディスクアダプタとディスクアレイ内のディスクドライブが、1対多の接続形態となっている。この接続形態では、複数のディスクドライブに対する読み出しと書き込みが、ディスクアダプタとスイッチを接続する1本のチャネルに集約されることになる。つまり、スイッチのディスクアダプタ側チャネルとディスクアレイ側チャネルとでは要求されるスループットに差が生ずるので、スイッチにはその差を吸収するバッファメモリが必要となる。
図21及び図22に、ファイバチャネルのFCP-SCSI(Fibre Channel Protocol for SCSI)におけるエクスチェンジの例を示す。
一般的に、エクスチェンジはシーケンス群からなり、またシーケンスは一連の動作を行うフレーム又は複数のフレームからなる。読み出しの例を示す図21において、イニシエータ(ディスクコントローラ)からターゲット(ディスクドライブ)へ読み出し(Read)コマンドが送られ(FCP_CMND)、それに対してターゲットからイニシエータへ読み出しデータが送られ(FCP_DATA)、最後にターゲットからイニシエータへステータス情報が送信されて(FCP_RSP)、エクスチェンジが終了する。
一方、図22の書き込みの場合には、イニシエータからターゲットへ書き込み(Write)コマンドが送られ(FCP_CMND)、必要に応じてターゲットからイニシエータへバッファ制御情報が送られる(FCP_XFER_RDY)。これに対してイニシエータからターゲットへ書き込みデータが送られ(FCP_DATA)、最後にターゲットからイニシエータへステータス情報が送信されて(FCP_RSP)、エクスチェンジが終了する。
ディスクコントローラ(イニシエータ)とディスクドライブ(ターゲット)間では、一般的に連続したフレームからなるデータ転送シーケンスが送受信される。複数のディスクドライブからのデータ読み出しの場合は、ディスクドライブの実効的なデータ転送速度が媒体速度より低くても、ディスクコントローラとスイッチ間の媒体速度を十分に高速化し、且つ複数の読み出しをスイッチにおけるラウンドロビン等の負荷分散処理によりバッファメモリが溢れないように制御することにより、容易にディスクアダプタとスイッチ間のデータ転送速度を高速化することができる。
しかし、複数のディスクドライブへの書き込みの場合に、ディスクアダプタとディスクアレイ間を高スループット化するためには、スイッチ内のバッファメモリが溢れないように、ディスクコントローラ側においてフレーム送信先を、周期的且つ少数フレーム単位で切り換える必要があり、制御が複雑となる。
この点に関し、特許文献1に開示されたスイッチにおける共有メモリは、ディスクアダプタ側チャネルとディスクアレイ側チャネルの速度差を吸収するバッファメモリとして機能する。しかし、読み出しデータと書き込みデータが共に共有メモリを利用することになるので、スイッチ内に大容量の共有メモリが必要となる。さらに全ポートのスループットが共有メモリに集約されるので、高速スループットを持った共有メモリが必要となる。また、共有メモリ型ではないクロスバ型のスイッチに比べて、フレームがスイッチを通過するレイテンシが大きいという問題点がある。
上記特許文献2に開示されているディスク装置においては、スイッチポート内のバッファメモリが溢れないようにフレーム送信先を周期的に切り換え制御することにより、ディスクアダプタとディスクアレイ間を高スループット化している。しかし、同一スイッチポートへ接続されているドライブへの連続書き込みが発生するなどしてスイッチが長い時間切り換わらない状態が続く場合には、バッファメモリのオーバーフローが発生し、書き込みスループットが低下する恐れがある。オーバーフローを防ぐためには、ポート毎に大容量のバッファメモリが必要となる。
本発明の目的は、ディスクコントローラとディスクアレイを接続するスイッチにおいて、ディスクアレイへのデータの書き込み時のスループットを向上させたデータ転送用スイッチ、その制御方法、及びディスク装置を提供することにある。
本発明は、複数のポートに対応してバッファメモリを有するスイッチを用いて、第1の装置と第2の装置との間でデータの転送を行うデータ転送制御方法において、クロスバスイッチにより経路設定して、入力ポートから該バッファメモリを介してある出力ポートへデータを転送する第1のモードと、入力ポートから該クロスバスイッチを経由して共有メモリへデータを書き込むようにデータを転送する第2のモードとを有し、好ましくはバッファメモリの空き容量に従って、第2のモードを選択するように、クロスバスイッチにより経路変更すると共に、共有メモリに書き込まれたデータを読み出し、クロスバスイッチを経由してそのデータを出力ポートへ転送するように制御する。
好ましくは、上記第1の装置はディスクコントローラであり、第2の装置はディスクアレイであり、ディスクコントローラからディスクアレイへデータを書き込むときに、上記第2のモードの選択を有効とするように制御する。
本発明は、ディスクコントローラとディスクアレイを接続してデータを転送するスイッチとして把握される。このスイッチは、好ましくは、ディスクコントローラとディスクアレイ間で転送されるデータを一次的に格納するために、スイッチの複数のポートに対応して設けられたバッファメモリと、いずれかのポートに接続して、データを転送するための経路を設定するクロスバスイッチと、クロスバスイッチに接続され、転送データを格納する共有メモリと、転送されるフレームに対する出力ポートのバッファメモリの空き容量を監視する制御部とを有し、この制御部は、上記監視に従い、バッファメモリの空き容量が所定の値より多い場合には、フレーム内の送信先情報に従い、クロスバスイッチを経路設定して、フレームを入力ポートからバッファメモリを介して出力ポートへ転送し、一方、バッファメモリの空き容量が所定の値以下の場合には、入力ポートからクロスバスイッチを経由して共有メモリへフレームを書き込み、かつ、フレーム内の送信先情報に従ってクロスバスイッチを経路設定して、共有メモリからフレームを読み出し、クロスバスイッチを経由して出力ポートへ転送するように制御する。
好ましい例では、上記制御部は、フレームの入力ポートが予め定められたポートであるかを判別し、入力ポート判別及びバッファメモリの空き容量の監視に従い、バッファメモリの空き容量が所定の値より多いか、又はフレームの入力ポートが予め定められたポートではない場合は、フレーム内の送信先情報に従い、クロスバスイッチを経路設定して、入力ポートからバッファメモリを介して出力ポートへフレームを転送し、一方、バッファメモリの空き容量が所定の値以下であり、且つ入力ポートが予め定められたポートである場合は、入力ポートからクロスバスイッチを経由して共有メモリへフレームを書き込むように制御する。
制御部は、予め定められたポートとして、例えばディスクコントローラと接続されたスイッチのポートであるかを判別する。
他の例によれば、上記制御部は、更にフレームに含まれる送信元情報の識別を行い、送信元情報の識別及び上記バッファメモリの監視に従って、バッファメモリの空き容量が所定の値より多いか、或いは送信元情報が予め定められた送信元情報ではない場合は、フレーム内の送信先情報に従いクロスバスイッチを経路設定して、フレームを入力ポートからバッファメモリを介して出力ポートへ転送し、一方、バッファメモリの空き容量が所定の値以下であり、且つ送信元情報が予め定められた送信元情報である場合には、入力ポートからクロスバスイッチを経由して共有メモリへフレームを書き込むように制御する。
上記制御部は、この予め定められた送信元情報として、例えばディスクコントローラのポート識別情報であるかを識別する。
また、他の例によれば、上記制御部は、更に、フレームを含むエスチェンジに含まれるコマンドが予め定められたコマンドであるかの判別を行い、このコマンドの判別及びバッファメモリの監視に従い、バッファメモリの空き容量が所定の値より多いか、或いはエクスチェンジに含まれるコマンドが予め定められたコマンドではない場合は、フレーム内の送信先情報に従いクロスバスイッチを経路設定して、フレームを入力ポートから該出力ポートへ転送し、一方、バッファメモリの空き容量が所定の値以下であり、且つエクスチェンジに含まれるコマンドが予め定められたコマンドである場合は、入力ポートからクロスバスイッチを経由して共有メモリへフレームを書き込むように制御する。
制御部は、好ましくは、予め定められたコマンドの判別として、書き込みコマンドであるかを判別する。
本発明はまた、上記スイッチを有するディスク装置としても把握される。
本発明によれば、データ転送用スイッチにおける転送データ格納用のバッファメモリの空き容量に応じて共有メモリを利用するように構成したので、ディスク装置のデータの書き込みスループットを向上させることができる。
以下、図面を参照して本発明に係る実施の形態を詳細に説明する。
図1に、本発明の一実施形態におけるスイッチを示す。
スイッチSWは、この例では、P0、P1、P2、P3、P4の5個のポートを持つ。スイッチSWは、クロスバスイッチXSWとスイッチコントローラSCと共有メモリSMからなる。スイッチSWのポートP0〜P4は、クロスバスイッチのポートP_0〜P_4とそれぞれ信号線D0〜D4により接続される。共有メモリSMは、クロスバスイッチXSWのポートP_5と信号線D5で接続される。また、スイッチSWのポートP0〜P4は、スイッチコントローラSCとそれぞれ信号線C0〜C4で接続される。共有メモリSMは、スイッチコントローラSCと信号線C5で接続される。さらに、スイッチコントローラSCとクロスバスイッチXSWのポートSELECTは信号線SELで接続される。また、スイッチコントローラSCは信号線C6を介して、スイッチSWのポートNPと接続される。
信号線D0〜D5は、ポートP0〜P4および共有メモリ間で送受されるフレームと制御信号を送受する信号線である。信号線C0〜C5は、ポートP0〜P4および共有メモリSMと、スイッチコントローラSCとの間でフレームのヘッダ情報を送受するための信号線である。信号線SELは、スイッチコントローラSCからクロスバスイッチXSWへ、切り換え制御信号を送受するための信号線である。信号線C6は、スイッチ外部から設定情報を送受するため信号線である。また、ポートP0〜P4および共有メモリSMへの設定情報は、スイッチコントローラSCから信号線C0〜C6を通して分配される。
スイッチSWのポートP0〜P4の構成について、ポートP1を例にして説明する。ポートP1は、受信器Rx、送信器Tx、シリアルパラレル変換器SP、パラレルシリアル変換器PS、バッファメモリBMを有するプロトコルIC(集積回路) P_ICから構成される。ここで、プロトコルIC P_ICは、ファイバチャネルのFC-1層、FC-2層を実現する集積回路である。受信器Rxにて受信した信号は、シリアルパラレル変換器SPでパラレル信号に変換され、プロトコルIC P_ICに入力される。また、プロトコルIC P_ICから出力される信号は、パラレルシリアル変換器PSでシリアル信号に変換されて送信器TxからスイッチSW外へ送信される。
図2は、クロスバスイッチXSWの構成を示す図である。
クロスバスイッチXSWは、セレクタS0、S1、S2、S3、S4、S5からなる。ポートSELECTとセレクタS0〜S5は、信号線SEL0〜SEL5で接続される。ここで信号線SEL0〜SEL5は、図1における信号線SELと接続している。クロスバスイッチXSWのポートP_0〜P_5は送受信可能なポートであり、受信信号は信号線D0_in〜D5_inを介して全セレクタS0〜S5へ分配される。セレクタS0〜S5の出力は、信号線D0_out〜D5_outを介して、クロスバスイッチXSWのポートP_0〜P_5へ各々接続する。セレクタS0〜S5を信号線SEL0〜SEL5上の信号で制御することにより、クロスバスイッチXSWによる任意のポート間の接続が実現できる。
図3は、プロトコルIC P_ICの構成を示す図である。
プロトコルICP_ICは、プロトコル処理部301と、受信用バッファメモリ302と、送信用バッファメモリ303と、転送制御部304から構成される。バッファメモリ302及び303は、FIFO(First−In First−out)メモリである。転送制御部304は、スイッチポート間で転送するフレームのヘッダを解析するための、ヘッダ解析部305を有する。信号線310、311、312、313、314、315はクロスバスイッチXSWと接続する信号線であり、図1における信号線D0〜D4に相当する。信号線316、317はスイッチコントローラSCと接続する信号線であり,図1における信号線C0〜C4に相当する。
信号線310、311、312は、他ポートからのフレームを受信するための信号線である。信号線312はフレーム受信用、信号線311は書き込み制御信号を受信するための信号線である。信号線310はバッファ空き容量通知用の信号線であり、バッファ空き容量が所定の値より大きい場合は”0”レベルであり、バッファの空き容量が所定の空き容量以下になると”1”レベルとなる。
信号線320、321、322は、プロトコル処理部301がバッファメモリ302からフレームを読み出すための信号線である。信号線320はフレーム受信検出用の信号線であり、バッファに未読み出しのフレームが無い場合は”0”レベルであり、バッファに未読み出しのフレームがある場合は”1”レベルとなる。信号線322は受信フレームを転送するための、信号線321は読み出し制御信号受信用の信号線である。
信号線323、324、325は、プロトコル処理部301からの他ポートへの送信データをバッファメモリ303へ書き込むための信号線である。信号線323はフレーム転送用、信号線324は書き込み制御信号用の信号線である。信号線325はバッファ空き容量通知用の信号線であり、バッファ空き容量が所定の値より大きい場合は”0”レベルであり、バッファの空き容量が所定の空き容量以下になると”1”レベルとなる。
転送制御部304は、プロトコル処理部301から信号線326を介して送信フレームのヘッダ情報を受信し、ヘッダ解析部305へ入力する。ヘッダ解析部305は、送信フレームのヘッダから送信先アドレス情報を抽出し、信号線317を介してスイッチコントローラSCへ送信する。送信先アドレス情報を受信したスイッチコントローラSCは、クロスバスイッチXSWのスイッチ経路を設定した後、スイッチ切り換え完了を、信号線316を介して転送制御部304へ通知する。また、信号線316はポート毎の各種設定情報を、スイッチコントローラSCから受信するためにも使用する。
信号線313、314、315、330、331は、バッファメモリ303から他ポートへフレームを送信するための信号線である。信号線331は未送信フレーム検出用の信号線であり、バッファに未送信のフレームが無い場合は”0”レベルであり、バッファに未送信のフレームがある場合は”1”レベルとなる。信号線313はフレームを他ポートへ送信するための、信号線330は読み出し制御信号用の信号線である。信号線316を介してスイッチコントローラSCからスイッチ切り換え完了通知を受信した転送制御部304は、信号線315を介してフレーム送信先ポート内受信バッファメモリの空き容量を検査する。その後、信号線330上の読み出し制御信号と同期した書き込み制御信号を、信号線314を介してフレーム送信先ポート内受信用バッファメモリへ送信する。送信用バッファメモリ303からは、信号線330上の読み出し制御信号に同期したフレームが、信号線313を介して送信されている。従って、信号線313上の送信フレームと信号線314上の書き込み制御信号は、同期して送信先ポートへ届くことになる。
信号線310は他のプロトコルIC P_ICの信号線315と、信号線311は他のプロトコルIC P_ICの信号線314と、信号線312は他のプロトコルIC P_ICの信号線313と、クロスバスイッチXSWを介して、それぞれ接続する。
図4は、共有メモリSMの構成を示す図である。
共有メモリSMは、メモリ部401と転送制御部402からなる。メモリ部401はFIFOメモリである。また、転送制御部402はフレーム分析部403を有する。フレーム分析部403は、送信するフレームのヘッダを分析して送信先アドレス情報を抽出し、信号線417を介してスイッチコントローラSCへ送信する機能と、メモリ部401に蓄えられた各フレームが納められているメモリ・アドレス範囲を管理する機能を有する。信号線417を介してスイッチコントローラSCへ送信先アドレス情報を送信した後、その送信先アドレス情報を受信したスイッチコントローラSCは、クロスバスイッチXSWのスイッチ経路を設定し、その後スイッチ切り換え完了を、信号線416を介して転送制御部402へ通知する。また、信号線416は共有メモリSMの各種設定情報を、スイッチコントローラSCから受信するためにも使用する。
信号線410、411、412、413、414、415は、クロスバスイッチXSWと接続する信号線であり、図1における信号線D5に相当する。信号線416、417はスイッチコントローラSCと接続する信号線であり,図1における信号線C5に相当する。
信号線410、411、412は、他ポートからのフレームを受信するための信号線である。信号線412はフレーム受信用、信号線411は書き込み制御信号を受信するための信号線である。信号線410はバッファ空き容量通知用の信号線であり、バッファ空き容量が所定の値より大きい場合は”0”レベルであり、バッファの空き容量が所定の空き容量以下になると”1”レベルとなる。
メモリ部401には2組の読み出し信号線がある。1組目は信号線413、420、421の組み合わせであり、2組目は信号線422、423、424の組み合わせである。
1組目の信号線413、420、421は、転送制御部402がメモリ部401からフレームを読み出すための信号線である。信号線421は送信フレーム検出用の信号線であり、メモリ部401に未送信のフレームが無い場合は”0”レベルであり、メモリ部401に未送信のフレームがある場合は”1”レベルとなる。信号線413はフレームを他ポートへ送信するための、信号線420は読み出し制御信号用の信号線である。転送制御部402は、信号線415を介してフレーム送信先ポート内受信バッファメモリの空き容量を検査する。その後、信号線420上の読み出し制御信号に同期した書き込み制御信号を、信号線414を介して、フレーム送信先のポートへ送信する。
2組目の信号線422、423、424は、フレーム分析部403がメモリ部401からフレームを読み出すための信号線である。信号線424は送信フレーム検出用の信号線であり、メモリ部401に未送信のフレームが無い場合は”0”レベルであり、メモリ部401に未送信のフレームがある場合は”1”レベルとなる。信号線422はフレームをフレーム分析部403へ転送するための、信号線423は読み出し制御信号用の信号線である。フレーム分析部403は、転送制御部402によるフレーム送信に先立ち、送信フレームのヘッダ分析、メモリ部401上メモリ・アドレス範囲の検出等を実行する。
次に、図5を参照して、本実施形態によるスイッチSWを適用したディスク装置の構成について説明する。
ディスク装置は、主にディスクコントローラDKCと、ディスクアレイDA1と、スイッチSWから構成される。ディスクコントローラDKCは、チャネルアダプタCHAと、キャッシュメモリCMと、ディスクアダプタDKAを有する。チャネルアダプタCHAとキャッシュメモリCMとディスクアダプタDKAは、相互接続網NWで接続されている。チャネルアダプタCHAは、チャネルC00、C01、C02、C03を介してホストコンピュータのような上位装置(図示せず)と接続される。ディスクアダプタDKAはチャネルD00とスイッチSWを介して、ディスクアレイDA1と接続される。チャネルD01、D02、D03においてもチャネルD00と同様にスイッチを介してディスクアレイを接続可能であるが、ここでは簡単のために省略する。ディスクコントローラDKCとスイッチSWは、保守端末SVPから設定情報を入力することができる。
図6を参照して、チャネルアダプタCHAの構成について説明する。
チャネルアダプタCHAは、チャネルC00〜C03に接続されたホストチャネル・インターフェイス61と、相互結合網NWに接続されたキャッシュメモリ・インターフェイス62と、保守端末SVPに接続するためのネットワーク・インターフェイス63と、上位装置との間でのデータ転送を制御するためのプロセッサ64と、プロセッサ64が参照する各種のテーブルや実行すべきソフトウェアを格納したローカルメモリ65と、これらの要素間の相互接続するプロセッサ周辺制御部66から構成される。
保守端末SVPは、プロセッサ64、74(後述する)が参照する上記各種テーブルの設定、変更、あるいはディスク装置の稼働状況のモニタ等に使用する。
ホストチャネル・インターフェイス61は、チャネルC00〜C03上のデータ転送プロトコルと、ディスクコントローラ内部のデータ転送プロトコルとの間の変換機能を有し、ホストチャネル・インターフェイス61とキャッシュメモリ・インターフェイス62との間は信号線67によって接続される。
図7を参照して、ディスクアダプタDKAの構成について説明すると、ディスクアダプタDKAは、相互結合網NWに接続されたキャッシュメモリ・インターフェイス71と、ディスクチャネルD00〜D03に接続されたディスクチャネル・インターフェイス72と、保守端末SVPに接続するためのネットワーク・インターフェイス73と、プロセッサ74と、該プロセッサが参照する各種のテーブルや実行すべきソフトウェアを格納したローカルメモリ75と、これらの要素間の相互接続するプロセッサ周辺制御部76とから構成される。
キャッシュメモリ・インターフェイス71とディスクチャネル・インターフェイス72との間は信号線77によって接続される。ディスクチャネル・インターフェイス72は、ディスクコントローラ内部のデータ転送プロトコルと、チャネルD00〜D03上のデータ転送プロトコル、例えば、FCP-SCSIとの間の変換機能を備えている。
次に、本実施形態におけるディスクアレイDA1の構成について述べる。
図5に示したディスクアレイDA1は、チャネルD10上に接続した4個のディスクドライブからなるディスクアレイと、チャネルD11上に接続した4個のディスクドライブからなるディスクアレイと、チャネルD12上に接続した4個のディスクドライブからなるディスクアレイと、チャネルD13上に接続した4個のディスクドライブからなるディスクアレイ、からなる。
チャネルD10を例にとると、ディスクドライブDK0、DK4、DK8、DK12が、チャネルD10上に接続されている。このように、多数のドライブを一つのチャネル上に接続してディスクドライブにアクセスする方法としては、ファイバチャネル・アービトレイテッド・ループ(FC−AL)がある。また、R0、R1、R2、R3はディスクドライブの論理グループを示す。
ディスクコントローラDKCは、チャネルD00を介してスイッチSWのポートP0と接続する。また、ディスクアレイDA1のチャネルD10はスイッチSWのポートP1と、チャネルD11はスイッチSWのポートP2と、チャネルD12はスイッチSWのポートP3と、チャネルD13はスイッチSWのポートP4とそれぞれ接続する。さらに保守端末SVPはスイッチSWのポートNPと接続する。ディスクコントローラ側チャネルD00上の媒体速度は、ディスクアレイ側チャネルD10、D11、D12、D13上のデータ転送がチャネルD00に集約された場合にも余裕がある速度に設定するのがよい。
次に、図8及び図9を参照して本実施形態におけるスイッチの動作の特徴について説明する。
スイッチSWは、設定により、内部のクロスバスイッチXSWのみにより切り換える動作モード(以下、モードAとする)と、クロスバスイッチXSWと共有メモリSMを併用した切り換えの動作モード(以下、モードBとする)を、フレームの入力ポート毎に選択できる。図8及び図9は、共にディスクコントローラDKCと接続したポートP0と、ディスクアレイDA1と接続したポートP2間のフレーム転送を示している。
図8は、ディスクアレイDA1からディスクコントローラDKCへのフレーム転送であり、主にコントローラDKCの読み出し動作時に相当する。一方、図9は、ディスクコントローラDKCからディスクアレイDA1へのフレーム転送であり、主にディスクコントローラDKCの書き込み動作時に相当する。
ここで、ポートP0には、P0に入力するフレームに関してクロスバスイッチXSWと共有メモリSMを併用した切り換えの動作モード(モードB)を設定し、ポートP1、P2、P3、P4には入力フレームに関して、クロスバスイッチXSWのみにより切り換える動作モード(モードA)を設定している。なお、この動作モード設定は、保守端末SVPから設定、変更が可能である。
その結果、図8の矢印801に示すように、ディスクアレイDA1からディスクコントローラDKCへのフレーム転送はクロスバスイッチXSWのみを経由する。それに対してディスクコントローラDKCからディスクアレイDA1へのフレーム転送では、スイッチSWは図9の矢印901に示すように、クロスバスイッチXSWのみを経由するフレーム転送と、矢印902、903に示すような共有メモリSMとクロスバスイッチXSWを経由するフレーム転送を行う。
詳細については後述するが、ディスクコントローラDKCからディスクアレイDA1への転送において、ポートP0は、先ず、クロスバスイッチXSWのみを経由するフレーム転送(矢印901)を実行する。ディスクコントローラDKCとスイッチSWのポートP0間の実行スループットは、ポートP1、P2、P3、P4とディスクアレイDA1間の実行スループットより高いので、データ転送長が長い場合にはポートP2内のバッファメモリはオーバーフローすることになる。
ポートP2内バッファメモリの空き容量が所定の値以下になると、ポートP0はフレーム転送先を共有メモリSMに変更する(矢印902)。共有メモリSMにフレームが書き込まれると、矢印902のフレーム転送とは独立して、共有メモリSMからポートP2へのフレーム転送(矢印903)を開始する。矢印902のフレーム転送が終了後、図20の矢印2301に示すように、次にポートP0からP3へのフレーム転送が開始されたとする。このとき、共有メモリSMからポートP2へのフレーム転送(矢印2302)と、ポートP0からポートP3へのフレーム転送は、出力ポートが競合しないので並行して実行できる。
つまり、本実施形態のスイッチでは、スイッチ出力ポートのバッファメモリがオーバーフローしそうになった場合に、転送すべきフレームを一旦共有メモリSMに書き込み、出力ポートバッファに空き容量ができた時点で、フレームを共有メモリSMから出力ポートへ転送し直す。この動作により、スイッチの出力ポート先が競合しないフレーム転送に関しては並行実行できるので、出力ポートバッファが溢れる影響を軽減でき、ディスクコントローラDKCからディスクアレイDA1への転送スループットが向上することになる。
これにより本実施形態のスイッチを適用したディスク装置では、書き込み時のスループットが向上する効果がある。
図10は、動作モードAに設定されたポートにおけるフレーム転送フローを示す。
まず、入力ポートのヘッダ解析部304は、これから転送するフレームのヘッダを解析して、送信先アドレス情報(ファイバチャネルの場合は送信先ポートID)をスイッチコントローラSCへ送信する(1001)。スイッチコントローラSCは、受信した送信先アドレス情報に従い、クロスバスイッチXSWを切り換える(1002)。出力先スイッチポートに競合が発生した場合は調停を行う。そして、スイッチコントローラSCは、クロスバスイッチXSWの切り換え完了を入力ポートへ送信する。次に入力ポートは出力ポートへフレームを転送する(1003)。そして入力ポートは、転送完了をスイッチコントローラSCへ送信する(1004)。
図11は、動作モードBに設定されたポートにおけるフレーム転送フローを示す。
まず、入力ポートのヘッダ解析部304は、これから転送するフレームのヘッダを解析して、送信先アドレス情報(ファイバチャネルの場合は送信先ポートID)をスイッチコントローラSCへ送信する(1101)。スイッチコントローラSCは、受信した送信先アドレス情報に従い、クロスバスイッチXSWを切り換える。出力先スイッチポートに競合が発生した場合は調停を行う。そして、スイッチコントローラSCはクロスバスイッチXSWの切り換え完了を入力ポートへ送信する(1102)。次に、入力ポートはフレームの転送先である出力ポートのバッファメモリBMの空き容量を調べる(1103)。空き容量が所定の値より大き場合はステップ1104へ移行し、所定の値以下の場合はステップ1106へ進む。
バッファメモリBMの空き容量が所定の値より大き場合には、入力ポートはフレームを出力ポートへ転送する(1104)。そして、入力ポートは転送完了をスイッチコントローラSCへ送信する(1105)。
一方、その空き容量が所定の値以下の場合には、入力ポートはフレーム転送先を共有メモリSMに変更し(1106)、入力ポートと共有メモリとを接続するための接続要求をスイッチコントローラSCへ送信する。そして、スイッチコントローラSCは、クロスバスイッチXSWを切り換えて、入力ポートと共有メモリSMを接続する。その後、スイッチコントローラSCは切り換え完了を入力ポートへ送信する(1107)。その後、入力ポートは、フレームを共有メモリSMへ転送し(1108)、その転送が終わると、転送完了をスイッチコントローラSCへ送信する(1109)。
図11に示す動作モードBの処理動作により、共有メモリSMに書き込まれたフレームは、図12のフローにより、出力ポートへ転送される。
すなわち、共有メモリSMの転送制御部402は、これから転送するフレームのヘッダを解析して、送信先アドレス情報(ファイバチャネルの場合は送信先ポートID)をスイッチコントローラSCへ送信する(1201)。スイッチコントローラSCは、受信した送信先アドレス情報に従い、クロスバスイッチXSWを切り換える。出力先スイッチポートに競合が発生した場合は調停を行う。そして、スイッチコントローラSCはクロスバスイッチXSWの切り換え完了を共有メモリSMへ通知する(1202)。次に、共有メモリSMは出力ポートへフレームを転送する(1203)。フレームの転送が終わると、最後に共有メモリSMは転送完了をスイッチコントローラSCへ送信する(1204)。なお、図11と図12のフローは出力ポートの競合が無い限り、並行して実行することが可能である。
図11のフローでは、エクスチェンジに含まれる全てのフレームが動作モードBの対象になっている。図22に示すように、コマンドやレスポンスのシーケンスは短いので、ポートのバッファメモリをオーバーフローさせる主たる原因にはならないと考えられる。
そこで他の例として、図13のフローに、動作モードBの対象をデータ転送シーケンスに含まれるフレームに絞り、共有メモリを効率的に使用する例を示す。
図13のステップ1301において、入力ポートのヘッダ解析部304は、転送するフレームがデータ転送シーケンスに含まれるか、及び出力ポートのバッファメモリとの関係を検査する。
図18に、データ転送シーケンスに含まれるフレームの構造を示す。転送するフレームがデータ転送シーケンスに含まれるかどうかは、フィールド1801を検査することにより容易に知ることができる。図13の他のステップは、図11と同じである。
上記の図11および図13のフローは、動作モードBをフレームの入力ポート毎に設定する場合の例である。図14に、更に他の例による動作フローを示す。
図14には、ポート毎にフレームの送信元アドレス情報を検査することにより、動作モード決定するフローを示す。この例では、予めスイッチの各ポートに比較すべき送信元アドレス情報を登録しておく。即ち、ディスクコントローラ内ディスクアダプタのポートIDを、保守端末SVPからスイッチに入力し、各ポートに登録しておく。
ステップ1401において、これから転送するフレームの送信元情報と、登録してあるディスクアダプタのポートIDを比較する。両者が一致し且つ出力先ポートバッファの空き容量が所定の値以下である場合は、共有メモリSMへフレームを転送する。なお、図14の他のステップは、図11と同じである。
このようにフレーム毎の送信元情報で動作モードBを制御することにより、スイッチのどのポートをディスクコントローラDKCと接続しなければならないかを知っておく必要がなくなり、スイッチ接続トポロジの自由度が増す。さらに多段にスイッチを接続した場合に、全スイッチにディスクコントローラのポートIDを通知するだけでよいので、スイッチ間の接続関係を調べなければならない図11、図13の例に比べて、管理が容易である。
図17に、コマンド転送フレームの構造を示す。転送するフレームの送信元情報は、例えばフィールド1701を検査することにより容易に知ることができる。
図15に更に他の例について示す。この例は、図14と同様にディスクコントローラのポートID入力を必要としない動作モードBの制御フローチャートの例である。
ステップ1501において、転送フレームのヘッダを調べることにより、該フレームが書き込みエクスチェンジに含まれるか、さらにはデータ転送シーケンスに含まれるかをチェックする。転送するフレームが書き込みエクスチェンジのデータ転送シーケンスに含まれるフレームであり、且つ出力先ポートのバッファ空き容量が所定の値以下の場合に、転送フレームは共有メモリSMへ転送される。図15のその他のステップは、図11と同じである。
ステップ1501の判定をするためには、各ポート毎に、図19に示すようなエクスチェンジID1901を登録したテーブルが必要となる。
図16に、図19のテーブルの作成フローを示す。
まず、転送するフレームがコマンドフレームFCP_CMNDかどうかを判定する(1601)。これは、図17のフィード1702を検査することで容易に判断できる。検査の結果、コマンドフレームである場合は、書き込みコマンドであるかを検査する(1602)。これは、図17のフィード1704を検査することで容易に判断できる。判断の結果、書き込みコマンドである場合は、ステップ1603へ進む。図17におけるフィールド1703からエクスチェンジID(OX_ID)を抽出し、図19のテーブルに登録する(1603)。
一方、ステップ1601において転送フレームがコマンドフレームではなかった場合は、エクスチェンジ終了条件を検査する(1604)。エクスチェンジが終了するかどうかは、フレーム内のF_CTLフィールド例えば図18のフィールド1802を検査することで、容易に知ることができる。最後に、エクスチェンジが終了した場合には、図19のテーブルから終了したエクスチェンジに関連するエントリを削除する(1605)。
以上説明したように、本実施形態のスイッチによれば共有メモリを書き込みフレームのバッファメモリとして利用するため、読み出しフレームと書き込みフレーム両対応の共有メモリの場合に比べて、少ない容量の共有メモリでも効果的にバッファ効果を持たせることができる。また、ポート毎に大容量のバッファメモリを持たせる場合に比べても、低コスト化できる。
以上述べた例では、ディスク装置のディスクコントローラとディスクアレイを接続するスイッチについて、データ転送方式としてファイバチャネルを例に説明した。本発明によるスイッチはこれに限定されることなく、ファイバチャネル以外のディスク装置向けデータ転送方式、例えばSAS(Serial Attached SCSI)のエキスパンダにも適用できる。
また、上記実施形態によれば、バッファメモリの空き容量に従って、第1のモード又は第2のモードを選択するように、クロスバスイッチにより経路変更を行っているが、本発明はこれに限定されない。即ち、ディスクコントローラとディスクアレイ間のスループットの向上に寄与するものであれば、バッファメモリの空き容量以外の要因に従って、上記第1のモードと第2のモードを切り替えて経路を変更し、変更された経路でデータ転送を行うことができる。この場合、例えば、要因を監視又は解析する制御部からのコマンドに従って第1のモード又は第2のモードを選択する。
本発明の一実施形態におけるスイッチを示す図である。 クロスバスイッチXSWの構成を示す図である。 プロトコルICの構成を示す図である。 共有メモリSMの構成を示す図である。 一実施形態によるスイッチを適用したディスク装置を示す図である。 チャネルアダプタCHAの構成を示す図である。 ディスクアダプタDKAの構成を示す図である。 一実施形態におけるスイッチの動作を示す図である。 一実施形態のスイッチの動作を示す図である。 一実施形態のスイッチの制御フローチャートを示す図である。 一実施形態のスイッチの制御フローチャートを示す図である。 一実施形態のスイッチの制御フローチャートを示す図である。 他の例によるスイッチの制御フローチャートを示す図である。 更に他の例によるスイッチの制御フローチャートを示す図である。 更に他の例によるスイッチの制御フローチャートを示す図である。 一実施形態のスイッチの制御フローチャートを示す図である。 ファイバチャネルにおける転送フレームの構造を示す図である。 ファイバチャネルにおける転送フレームの構造を示す図である。 エクスチェンジ管理テーブルを示す図である。 一実施形態におけるスイッチの動作を示す図である。 ファイバチャネルのエクスチェンジ(読み出し)を示す図である。 ファイバチャネルのエクスチェンジ(書き込み)を示す図である。
符号の説明
SW:スイッチ DKC:ディスクコントローラ
CHA:チャネルアダプタ CM:キャッシュメモリ
DKA:ディスクアダプタ DA、DA1:ディスクアレイ
DK0〜DK16:ディスクドライブ S0〜S5:セレクタ
C00〜C03、D00〜D03、D10〜D13:チャネル
P_IC:プロトコルIC NP:ネットワークポート
P0〜P4:スイッチポート
P_0〜P_5、SELECT:クロスバスイッチポート
XSW:クロスバスイッチ SC:スイッチコントローラ
SM:共有メモリ SP:シリアルパラレル変換装置
PS:パラレルシリアル変換装置 BM、302、303:バッファメモリ
Tx:送信器 Rx:受信器 NW:相互結合網
R0〜R3:論理グループ SVP:保守端末
61:ホストチャネル・インターフェイス
72:ディスクチャネル・インターフェイス
62、71:キャッシュメモリ・インターフェイス
63、73:ネットワーク・インターフェイス
64、74:プロセッサ 66、76:プロセッサ周辺制御部
65、75:ローカルメモリ 301:プロトコル処理部
304、402:転送制御部 305:ヘッダ解析部
401:メモリ部 403:フレーム分析部

Claims (18)

  1. ディスクコントローラとディスクアレイを接続してデータを転送するスイッチにおいて、
    該ディスクコントローラとディスクアレイ間で転送されるデータを一次的に格納するために、スイッチの複数のポートに対応して設けられたバッファメモリと、
    いずれかのポートに接続して、データを転送するための経路を設定するクロスバスイッチと、
    該クロスバスイッチに接続され、転送データを格納する共有メモリと、
    転送されるフレームに対する出力ポートのバッファメモリの空き容量を監視する制御部と、を有し、
    該制御部は、
    該監視に従い、該バッファメモリの空き容量が所定の値より多い場合には、該フレーム内の送信先情報に従い、該クロスバスイッチを経路設定して、該フレームを該入力ポートから該バッファメモリを介して出力ポートへ転送し、
    該バッファメモリの空き容量が所定の値以下の場合には、該入力ポートから該クロスバスイッチを経由して該共有メモリへフレームを書き込み、
    かつ、該フレーム内の送信先情報に従って該クロスバスイッチを経路設定して、該共有メモリからフレームを読み出し、該クロスバスイッチを経由して出力ポートへ転送するように制御することを特徴とするスイッチ。
  2. 前記制御部は、フレームの入力ポートが予め定められたポートであるかを判別し、該入力ポート判別及び前記バッファメモリの空き容量の監視に従い、
    該バッファメモリの空き容量が所定の値より多いか、又は該フレームの入力ポートが予め定められたポートではない場合は、該フレーム内の送信先情報に従い前記クロスバスイッチを経路設定して、該入力ポートからバッファメモリを介して該出力ポートへ該フレームを転送し、
    該バッファメモリの空き容量が所定の値以下であり、且つ該入力ポートが予め定められたポートである場合は、該入力ポートから該クロスバスイッチを経由して該共有メモリへフレームを書き込むことを特徴とする請求項1記載のスイッチ。
  3. 前記制御部は、予め定められたポートとして、該ディスクコントローラと接続されたスイッチのポートであるかを判別することを特徴とする請求項2記載のスイッチ。
  4. 前記制御部は、更に該フレームに含まれる送信元情報の識別を行い、
    該送信元情報の識別及び前記監視に従って、
    該バッファメモリの空き容量が所定の値より多いか、或いは該送信元情報が予め定められた送信元情報ではない場合は、該フレーム内の送信先情報に従い前記クロスバスイッチを経路設定して、該フレームを該入力ポートから該バッファメモリを介して該出力ポートへ転送し、
    該バッファメモリの空き容量が所定の値以下であり、且つ該送信元情報が予め定められた送信元情報である場合には、該入力ポートから前記クロスバスイッチを経由して該共有メモリへフレームを書き込むことを特徴とする請求項1記載のスイッチ。
  5. 前記制御部は、前記予め定められた送信元情報として、該ディスクコントローラのポート識別情報であるかを識別することを特徴とする請求項4記載スイッチ。
  6. 前記制御部は、更に、該フレームを含むエスチェンジに含まれるコマンドが予め定められたコマンドであるかの判別を行い、
    該コマンドの判別及びバッファメモリの前記監視に従い、
    該バッファメモリの空き容量が所定の値より多いか、或いは該エクスチェンジに含まれるコマンドが予め定められたコマンドではない場合は、該フレーム内の送信先情報に従い前記クロスバスイッチを経路設定して、該フレームを該入力ポートから該出力ポートへ転送し、
    該バッファメモリの空き容量が所定の値以下であり、且つ該エクスチェンジに含まれるコマンドが予め定められたコマンドである場合は、該入力ポートから前記クロスバスイッチを経由して前記共有メモリへ該フレームを書き込むことを特徴とする請求項1記載のスイッチ。
  7. 前記制御部は、該予め定められたコマンドの判別として、書き込みコマンドであるかを判別することを特徴とする請求項6記載のスイッチ。
  8. バッファメモリを有するスイッチを用いて、ディスクコントローラとディスクアレイの間でデータの転送を行うデータ転送制御方法において、
    該ディスクコントローラと該ディスクアレイ間で転送されるフレームの出力ポートのバッファメモリの空き容量を監視するステップと、
    該監視により該バッファメモリの空き容量が所定の値より多い場合には、該フレーム内の送信先情報に従い、クロスバスイッチを経路設定して、該フレームを入力ポートから該バッファメモリを介して出力ポートへ転送するステップと、
    該バッファメモリの空き容量が所定の値以下の場合には、入力ポートから該クロスバスイッチを経由して共有メモリへ該フレームを書き込むステップと、
    該フレーム内の送信先情報に従って該クロスバスイッチを経路設定するステップと、
    該共有メモリから該フレームを読み出すステップと、
    該共有メモリから読み出された該フレームを、該クロスバスイッチを経由して出力ポートへ転送するステップと、
    を有することを特徴とするデータ転送制御方法。
  9. 更に、転送される該フレームの入力ポートが予め定められたポートであるか判別するステップを含み、
    該バッファメモリの空き容量が所定の値より多いか、又は該入力ポートが予め定められたポートでない場合には、該フレーム内の送信先情報に従い該クロスバスイッチを経路設定して、該フレームを該入力ポートから出力ポートへ転送し、
    該バッファメモリの空き容量が所定の値以下であり、かつ該入力ポートが予め定められたポートである場合には、該入力ポートから該クロスバスイッチを経由して該共有メモリへフレームを書き込むことを特徴とする請求項8記載のデータ転送制御方法。
  10. 更に、該フレームに含まれる送信元情報の識別を行うステップと含み、
    該バッファメモリの空き容量が所定の値より多いか、或いは該送信元情報が予め定められた送信元情報ではない場合は、該フレーム内の送信先情報に従い前記クロスバスイッチを経路設定して、該フレームを該入力ポートから該出力ポートへ転送し、
    該バッファメモリの空き容量が所定の値以下であり、且つ該送信元情報が予め定められた送信元情報である場合には、該入力ポートから前記クロスバスイッチを経由して該共有メモリへフレームを書き込むことを特徴とする請求項8記載のデータ転送制御方法。
  11. 更に、該フレームを含むエスチェンジに含まれるコマンドが予め定められたコマンドであるかの判別を行うステップを含み、
    該バッファメモリの空き容量が所定の値より多いか、或いは該エクスチェンジに含まれるコマンドが予め定められたコマンドではない場合は、該フレーム内の送信先情報に従い前記クロスバスイッチを経路設定して、該フレームを該入力ポートから該出力ポートへ転送し、
    該バッファメモリの空き容量が所定の値以下であり、且つ該エクスチェンジに含まれるコマンドが予め定められたコマンドである場合は、該入力ポートから前記クロスバスイッチを経由して前記共有メモリへ該フレームを書き込むことを特徴とする請求項8記載のデータ転送制御方法。
  12. 前記判別ステップは、該エスチェンジに含まれるコマンドが書き込みコマンドであるかを判別することを特徴とする請求項11記載のデータ転送制御方法。
  13. 前記フレームは、データ転送シーケンスに含まれるフレームであることを特徴とする請求項8乃至12のいずれか記載のデータ転送制御方法。
  14. データを記憶するディスクアレイと、該ディスクアレイへデータの読み書きを制御するディスクコントローラと、該ディスクコントローラとディスクアレイを接続するスイッチと、を有するディスク装置において、該スイッチは;
    該ディスクコントローラとディスクアレイ間で転送されるデータを一次的に格納するために、スイッチの複数のポートに対応して設けられたバッファメモリと、
    いずれかのポートに接続して、データを転送するための経路を設定するクロスバスイッチと、
    該クロスバスイッチに接続され、転送データを格納する共有メモリと、
    転送されるフレームに対する出力ポートのバッファメモリの空き容量を監視する制御部と、を有し、
    該制御部は、
    該監視に従い、該バッファメモリの空き容量が所定の値より多い場合には、該フレーム内の送信先情報に従い、該クロスバスイッチを経路設定して、該フレームを該入力ポートから該バッファメモリを介して出力ポートへ転送し、
    該バッファメモリの空き容量が所定の値以下の場合には、該入力ポートから該クロスバスイッチを経由して該共有メモリへフレームを書き込み、
    かつ、該フレーム内の送信先情報に従って該クロスバスイッチを経路設定して、該共有メモリからフレームを読み出し、該クロスバスイッチを経由して出力ポートへ転送するように制御することを特徴とするディスク装置。
  15. 前記制御部は、フレームの入力ポートが予め定められたポートであるかを判別し、該入力ポート判別及び前記バッファメモリの空き容量の監視に従い、
    該バッファメモリの空き容量が所定の値より多いか、又は該フレームの入力ポートが予め定められたポートではない場合は、該フレーム内の送信先情報に従い前記クロスバスイッチを経路設定して、該入力ポートからバッファメモリを介して該出力ポートへ該フレームを転送し、
    該バッファメモリの空き容量が所定の値以下であり、且つ該入力ポートが予め定められたポートである場合は、該入力ポートから該クロスバスイッチを経由して該共有メモリへフレームを書き込むことを特徴とする請求項14記載のディスク装置。
  16. 複数のポートに対応してバッファメモリを有するスイッチを用いて、第1の装置と第2の装置との間でデータの転送を行うデータ転送制御方法において、
    クロスバスイッチにより経路設定して、入力ポートから該バッファメモリを介してある出力ポートへデータを転送する第1のモードと、
    該入力ポートから該クロスバスイッチを経由して共有メモリへデータを書き込むようにデータを転送する第2のモードと、
    該第1のモード又は該第2のモードを選択するように、該クロスバスイッチにより経路変更するステップと、
    該第2のモードが選択された場合、該共有メモリに書き込まれたデータを読み出して、該クロスバスイッチを経由して該データを出力ポートへ転送するステップと、
    を有することを特徴とするデータ転送制御方法。
  17. 前記第1の装置はディスクコントローラであり、前記第2の装置はディスクアレイであり、該ディスクコントローラから該ディスクアレイへデータを書き込むときに、前記第2のモードの選択を有効とすることを特徴とする請求項16記載のデータ転送制御方法。
  18. 前記経路変更ステップは、該バッファメモリの空き容量に従って、該第2のモードを選択するように、経路変更することを特徴とする請求項16記載のデータ転送制御方法。

JP2004082190A 2004-03-22 2004-03-22 データ転送用スイッチ Pending JP2005267502A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004082190A JP2005267502A (ja) 2004-03-22 2004-03-22 データ転送用スイッチ
US10/847,881 US7363400B2 (en) 2004-03-22 2004-05-19 Data transfer switch

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004082190A JP2005267502A (ja) 2004-03-22 2004-03-22 データ転送用スイッチ

Publications (1)

Publication Number Publication Date
JP2005267502A true JP2005267502A (ja) 2005-09-29

Family

ID=34987679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004082190A Pending JP2005267502A (ja) 2004-03-22 2004-03-22 データ転送用スイッチ

Country Status (2)

Country Link
US (1) US7363400B2 (ja)
JP (1) JP2005267502A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013538389A (ja) * 2010-10-28 2013-10-10 インターナショナル・ビジネス・マシーンズ・コーポレーション Xfr_rdyの動的なイネーブリングおよびディセーブリングのための方法、コンピュータ・プログラム、およびシステム(xfr_rdyの動的なイネーブリングおよびディセーブリング)
JP2014182739A (ja) * 2013-03-21 2014-09-29 Nec Corp 通信制御システム、通信制御装置、通信制御方法、及びそのためのプログラム
JP2014197282A (ja) * 2013-03-29 2014-10-16 日本電気株式会社 切り替え装置、この装置を搭載した記憶システム、切り替え方法および切り替えプログラム
US8904065B2 (en) 2011-03-14 2014-12-02 Kabushiki Kaisha Toshiba Buffer management device, buffer management method, and storage device

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451245B2 (en) * 2004-12-01 2008-11-11 Broadcom Corporation System for dual use of an I/O circuit
US7499464B2 (en) * 2005-04-06 2009-03-03 Robert Ayrapetian Buffered crossbar switch with a linear buffer to port relationship that supports cells and packets of variable size
JP4755050B2 (ja) * 2006-08-18 2011-08-24 富士通株式会社 データ処理装置、モード管理装置、及びモード管理方法
US7870306B2 (en) 2006-08-31 2011-01-11 Cisco Technology, Inc. Shared memory message switch and cache
US20080059686A1 (en) * 2006-08-31 2008-03-06 Keith Iain Wilkinson Multiple context single logic virtual host channel adapter supporting multiple transport protocols
JP5287975B2 (ja) * 2009-03-09 2013-09-11 富士通株式会社 情報処理装置
US10230633B2 (en) * 2016-01-21 2019-03-12 Red Hat, Inc. Shared memory communication in software defined networking
US20180024762A1 (en) * 2016-07-22 2018-01-25 International Business Machines Corporation Data access management in distributed computer storage environments
US10545558B1 (en) * 2019-01-25 2020-01-28 BioMech Sensor LLC Systems and methods for elastic delivery, processing, and storage for wearable devices based on system resources

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4082922A (en) * 1977-02-22 1978-04-04 Chu Wesley W Statistical multiplexing system for computer communications
US4701856A (en) * 1985-03-12 1987-10-20 Pitney Bowes Inc. Reset delay circuit for an electronic postage meter
US5404550A (en) * 1991-07-25 1995-04-04 Tandem Computers Incorporated Method and apparatus for executing tasks by following a linked list of memory packets
US6351780B1 (en) * 1994-11-21 2002-02-26 Cirrus Logic, Inc. Network controller using held data frame monitor and decision logic for automatically engaging DMA data transfer when buffer overflow is anticipated
US5636210A (en) * 1995-08-02 1997-06-03 Agrawal; Jagannath P. Asynchronous transfer mode packet switch
US5991296A (en) * 1996-02-22 1999-11-23 Fujitsu, Ltd. Crossbar switch and method with reduced voltage swing and no internal blocking data path
US6160813A (en) * 1997-03-21 2000-12-12 Brocade Communications Systems, Inc. Fibre channel switching system and method
US6317427B1 (en) * 1997-04-24 2001-11-13 Cabletron Systems, Inc. Method and apparatus for adaptive port buffering
JP4294142B2 (ja) * 1999-02-02 2009-07-08 株式会社日立製作所 ディスクサブシステム
US6751704B2 (en) * 2000-12-07 2004-06-15 International Business Machines Corporation Dual-L2 processor subsystem architecture for networking system
US7406041B2 (en) 2001-07-31 2008-07-29 Brocade Communications Systems, Inc. System and method for late-dropping packets in a network switch
JP2003084919A (ja) 2001-09-06 2003-03-20 Hitachi Ltd ディスクアレイ装置の制御方法およびディスクアレイ装置
US7301906B2 (en) * 2001-12-17 2007-11-27 Lsi Corporation Methods and structures for improved buffer management and dynamic adaption of flow control status in high-speed communication networks
US6792506B2 (en) 2002-03-29 2004-09-14 Emc Corporation Memory architecture for a high throughput storage processor
JP2003303055A (ja) * 2002-04-09 2003-10-24 Hitachi Ltd ディスクアダプタとディスクアレイをスイッチを介して接続したディスク装置
JP4220887B2 (ja) 2003-11-17 2009-02-04 株式会社日立製作所 ディスク装置及びその制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013538389A (ja) * 2010-10-28 2013-10-10 インターナショナル・ビジネス・マシーンズ・コーポレーション Xfr_rdyの動的なイネーブリングおよびディセーブリングのための方法、コンピュータ・プログラム、およびシステム(xfr_rdyの動的なイネーブリングおよびディセーブリング)
US8732357B2 (en) 2010-10-28 2014-05-20 International Business Machines Corporation Apparatus and method for dynamically enabling and disabling write XFR—RDY
US8904065B2 (en) 2011-03-14 2014-12-02 Kabushiki Kaisha Toshiba Buffer management device, buffer management method, and storage device
JP2014182739A (ja) * 2013-03-21 2014-09-29 Nec Corp 通信制御システム、通信制御装置、通信制御方法、及びそのためのプログラム
JP2014197282A (ja) * 2013-03-29 2014-10-16 日本電気株式会社 切り替え装置、この装置を搭載した記憶システム、切り替え方法および切り替えプログラム

Also Published As

Publication number Publication date
US7363400B2 (en) 2008-04-22
US20050210171A1 (en) 2005-09-22

Similar Documents

Publication Publication Date Title
JP4220887B2 (ja) ディスク装置及びその制御方法
US8156270B2 (en) Dual port serial advanced technology attachment (SATA) disk drive
US8266353B2 (en) Serial advanced technology attachment (SATA ) switch
US8074002B2 (en) Route aware serial advanced technology attachment (SATA) switch
JP5546635B2 (ja) データ転送装置およびその制御方法
JP2007094996A (ja) データストレージシステム、データストレージ制御装置及びその障害箇所診断方法
JP2008546049A (ja) 宛先ディスクへのアクセス方法とディスク容量拡張システム及びディスクアレイ
US20130054867A1 (en) Communication apparatus and id setting method
US20080195831A1 (en) Data transfer apparatus and data transfer method
US20070005833A1 (en) Transmit buffers in connection-oriented interface
JP2005267502A (ja) データ転送用スイッチ
JP2003084919A (ja) ディスクアレイ装置の制御方法およびディスクアレイ装置
JP4445535B2 (ja) データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US7409486B2 (en) Storage system, and storage control method
EP1810161A1 (en) Method and system for optimizing data transfer in networks
US7757016B2 (en) Data transfer device, semiconductor integrated circuit, and processing status notification method
EP1794953B1 (en) Method and system for using an in-line credit extender with a host bus adapter
JP4087387B2 (ja) 記憶制御装置
US7668978B1 (en) Method and system for storing frames in networks
JP2005190499A (ja) 記憶サブシステム及び記憶制御装置
JP2003263278A (ja) ディスクアレイ制御装置
JP2006268881A (ja) ディスクアレイ制御装置
JP2008010005A (ja) ディスクアレイ制御装置