(57)【特許請求の範囲】
【請求項１】
複数のスイッチを縦続接続してそなえるとともに、計算装置に接続可能なストレージ装置であって、
該複数のスイッチが、該計算装置と該複数のスイッチのそれぞれに接続された１以上の記憶装置との間で送受信されるフレームの伝送経路を選択的に切り替えるものであって、
該複数のスイッチのそれぞれは、
記憶装置，他のスイッチまたは該計算装置のいずれかが接続されるポートを複数そなえるとともに、
該フレームの伝送を遅延させる遅延部と、
該フレームの送信先に応じて、該複数のポート同士を選択的に接続することで、該フレームの伝送経路を設定する切替装置とをそなえ、
該遅延部が、該フレームの伝送を、該フレームの送信先に応じた該計算装置と該記憶装置との間の伝送経路に基づいて予め設定された遅延時間遅延させ、
該計算装置に接続されるスイッチにおいて、該計算装置から該記憶装置を送信先とするフレームに対しては、該伝送経路における該フレームの伝送時間が長いほど、該遅延時間が短い時間である一方、当該スイッチに接続された記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が、該記憶装置を送信先とするフレームに対する遅延時間のうち最大の時間であるとともに、当該スイッチに接続されていない記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が０であることを特徴とする、ストレージ装置。
【請求項２】
該計算装置に接続されるスイッチ以外において、該計算装置から該記憶装置を送信先とするフレームに対しては、該遅延時間が０である一方、当該スイッチに接続された記憶装置から該計算装置を送信先とするフレームに対しては、該伝送経路における該フレームの伝送時間が長いほど、該遅延時間が短い時間であるとともに、当該スイッチに接続されていない記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が０であることを特徴とする請求項１記載のストレージ装置。
【請求項３】
該遅延部が、
該切替装置から受信したフレームを格納する格納部と、
該格納部に格納されたフレームを読み出す読み出し部と、
該遅延時間に基づいて、該読み出し部によるフレームの読み出しタイミングを制御する遅延制御部とをそなえたことを特徴とする請求項１又は２記載のストレージ装置。
【請求項４】
計算装置と記憶装置との間で送受信されるフレームの伝送経路を選択的に切り替えるスイッチであって、
記憶装置，他のスイッチまたは該計算装置のいずれかが接続されるポートを複数そなえるとともに、
該フレームを遅延させる遅延部と、
該フレームの送信先に応じて、該複数のポート同士を選択的に接続することで、該フレームの伝送経路を設定する切替装置とをそなえ、
該遅延部が、該フレームの伝送を、該フレームの送信先に応じた該計算装置と該記憶装置との間の伝送経路に基づいて予め設定された遅延時間遅延させ、
該計算装置に接続されるスイッチにおいて、該計算装置から該記憶装置を送信先とするフレームに対しては、該伝送経路における該フレームの伝送時間が長いほど、該遅延時間が短い時間である一方、当該スイッチに接続された記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が、該記憶装置を送信先とするフレームに対する遅延時間のうち最大の時間であるとともに、当該スイッチに接続されていない記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が０であることを特徴とする、スイッチ。
【請求項５】
該計算装置に接続されるスイッチ以外において、該計算装置から該記憶装置を送信先とするフレームに対しては、該遅延時間が０である一方、当該スイッチに接続された記憶装置から該計算装置を送信先とするフレームに対しては、該伝送経路における該フレームの伝送時間が長いほど、該遅延時間が短い時間であるとともに、当該スイッチに接続されていない記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が０であることを特徴とする請求項４記載のスイッチ。
【請求項６】
該遅延部が、
該切替装置から受信したフレームを格納する格納部と、
該格納部に格納されたフレームを読み出す読み出し部と、
該遅延時間に基づいて、該読み出し部によるフレームの読み出しタイミングを制御することで該フレームの伝送を遅延させる遅延制御部とをそなえたことを特徴とする請求項４又は５記載のスイッチ。
【請求項７】
複数のスイッチを縦続接続してそなえるとともに、該複数のスイッチが、計算装置と該複数のスイッチのそれぞれに接続された１以上の記憶装置との間で送受信されるフレームの伝送経路を選択的に切り替えるものであり、さらに、該複数のスイッチのそれぞれが、記憶装置，該複数のスイッチのうち１の他のスイッチまたは該計算装置のいずれかが接続されるポートを複数そなえて構成された、該計算装置に接続可能なストレージ装置の制御方法であって、
該フレームの送信先に応じて、該複数のポート同士を選択的に接続することで、該フレームの送信先を設定する切替ステップと、
該フレームの伝送を、該フレームの送信先に応じた該計算装置と該記憶装置との間の伝送経路に基づいて予め設定された遅延時間遅延させる遅延ステップとをそなえ、
該計算装置に接続されるスイッチにおいて、該計算装置から該記憶装置を送信先とするフレームに対しては、該伝送経路における該フレームの伝送時間が長いほど、該遅延時間が短い時間である一方、当該スイッチに接続された記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が、該記憶装置を送信先とするフレームに対する遅延時間のうち最大の時間であるとともに、当該スイッチに接続されていない記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が０であることを特徴とするストレージ装置の制御方法。
【請求項８】
該計算装置に接続されるスイッチ以外において、該計算装置から該記憶装置を送信先とするフレームに対しては、該遅延時間が０である一方、当該スイッチに接続された記憶装置から該計算装置を送信先とするフレームに対しては、該伝送経路における該フレームの伝送時間が長いほど、該遅延時間が短い時間であるとともに、当該スイッチに接続されていない記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が０であることを特徴とする請求項７記載のストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、ストレージ装置，スイッチおよびストレージ装置の制御方法に関する。
【背景技術】
【０００２】
例えば、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置のような、一般的なストレージシステムでは、計算装置と記憶装置との間に、スイッチを多段接続してストレージネットワークを構築し通信を行なう。この通信は、計算装置と記憶装置とが、データを含んだフレームをスイッチを介して送受信することで行なわれる。
図１１は、従来のストレージシステム２００のハードウェア構成例を模式的に示す図である。計算装置１００は、記憶装置４１０〜４６０からデータを読み出し、もしくは、記憶装置４１０〜４６０へのデータ書き込みを行なうものである。筐体２１０−１〜２１０−３はそれぞれ、１以上の記憶装置をそなえるＤＥ（Drive enclosure）である。筐体２１０−１は、スイッチ３１０−１および記憶装置４１０，４２０を、筐体２１０−２は、スイッチ３１０−２および記憶装置４３０，４４０をそなえている。さらに、筐体２１０−３は、スイッチ３１０−３および記憶装置４５０，４６０をそなえている。また、スイッチ３１０−１〜３１０−３はそれぞれ、フレームを取得した場合に、そのフレームの宛先にフレームをルーティングするものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１４０１７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来のストレージシステムでは、記憶装置の配置される位置によって、計算装置から記憶装置へのフレームの到達時間（レイテンシ）が異なるため、性能バランス不均衡が生じるという問題点がある。
以下に、上記問題点が生じることの具体的な説明を行なう。
図１１に示す例において、例えば、計算装置１００が、記憶装置４１０宛てにフレームを送信する場合を考える。計算装置１００から送信されたフレームは、ケーブル５１０を通じて、スイッチ３１０−１に受信される。スイッチ３１０−１において、フレームは、記憶装置４１０へルーティングされ、記憶装置４１０に到達する。このとき、フレームが、計算装置１００から送信され記憶装置４１０に到達するまでには、ケーブル５１０を伝わる時間とスイッチ３１０−１内でルーティングされる時間とが必要となる。
【０００５】
次に、例えば、計算装置１００が、記憶装置４３０宛てにフレームを送信する場合を考える。計算装置１００から送信されたフレームは、ケーブル５１０を通じて、スイッチ３１０−１に受信される。スイッチ３１０−１において、フレームは、スイッチ３１０−２へ送信されるようにルーティングされる。ルーティングされたフレームは、ケーブル５２０を通じて、スイッチ３１０−２に受信される。スイッチ３１０−２において、フレームは、記憶装置４３０へルーティングされ、記憶装置４３０に到達する。このとき、フレームが、計算装置１００から送信され記憶装置４３０に到達するまでには、ケーブル５１０およびケーブル５２０を伝わる時間とスイッチ３１０−１およびスイッチ３１０−２内でルーティングされる時間とが必要となる。
【０００６】
すなわち、記憶装置４１０〜４６０がどのスイッチ３１０−１〜３１０−３の配下にあるかによって、計算装置１００から記憶装置４１０〜４６０へのフレームの到達時間は異なる。また、記憶装置４１０〜４６０から、計算装置１００へフレームを送信する場合も同様に、記憶装置４１０〜４６０がどのスイッチ３１０−１〜３１０−３の配下にあるかによって、記憶装置４１０〜４６０から計算装置１００へのフレームの到達時間は異なる。
【０００７】
従って、多数のフレームの送受信によって行なわれる記憶装置の読み出し処理(Read)や記憶装置への書き込み処理(Write)等の処理時間も異なる結果となる。
各記憶装置に対して同一の処理を行なう場合であっても、記憶装置の配置される位置によって処理時間が異なると、例えば、性能バランス不均衡という問題が生じる。性能バランス不均衡とは、例えば、図１１において、スイッチ３１０−１配下の記憶装置４１０とスイッチ３１０−２配下の記憶装置４３０とに対して、同時に同一の処理を行なっても、レイテンシが異なることにより、処理時間に偏りが発生する。すなわち、計算装置１００からの伝送距離が短い記憶装置４１０の性能が高いように見え、記憶装置４３０の性能が低いように見える。
【０００８】
また、性能バランス不均衡は、記憶装置４３０に対するコマンドが期待した時間内で処理されずタイムアップしてしまう、いわゆるコマンド沈み込みといった問題を発生させることがある。
性能バランス不均衡は、装置の管理者が性能低下を起こさないように設定・制御したり、計算装置１００上で記憶装置をコントロールするプログラムで性能管理などの追加処理を行なえば回避可能ではあるが、多くの手間がかかったりプログラムが複雑となるといった問題がある。特に記憶装置が多段カスケードで数多くあり、レイテンシのばらつきが大きくなってしまう場合では、人手で設定することや十分な処理を行なうプログラムを作成することが困難となってしまうことがある。
【０００９】
本件の目的の一つは、このような課題に鑑み創案されたもので、計算装置と記憶装置との間の伝送距離にかかわらず、計算装置または記憶装置に対して、同一のレイテンシでアクセス可能とし、レイテンシの違いによって発生するシステム全体への悪影響を軽減することである。なお、本願において、同一とは、完全同一のみならず略同一を含む概念である。
【００１０】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【００１１】
このため、このストレージ装置は、複数のスイッチを縦続接続してそなえるとともに、計算装置に接続可能なストレージ装置であって、該複数のスイッチが、該計算装置と該複数のスイッチのそれぞれに接続された１以上の記憶装置との間で送受信されるフレームの伝送経路を選択的に切り替えるものであって、該複数のスイッチのそれぞれは、記憶装置，該複数のスイッチのうち１の他のスイッチまたは該計算装置のいずれかが接続されるポートを複数そなえるとともに、該フレームの伝送を遅延させる遅延部と、該フレームの送信先に応じて、該複数のポート同士を選択的に接続することで、該フレームの伝送経路を設定する切替装置とをそなえ、該遅延部が、該フレームの伝送を、該フレームの送信先に応じた該計算装置と該記憶装置との間の伝送経路に基づいて予め設定された遅延時間遅延させ、該計算装置に接続されるスイッチにおいて、該計算装置から該記憶装置を送信先とするフレームに対しては、該伝送経路における該フレームの伝送時間が長いほど、該遅延時間が短い時間である一方、当該スイッチに接続された記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が、該記憶装置を送信先とするフレームに対する遅延時間のうち最大の時間であるとともに、当該スイッチに接続されていない記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が０である。
【００１２】
また、このスイッチは、計算装置と記憶装置との間で送受信されるフレームの伝送経路を選択的に切り替えるスイッチであって、記憶装置，該複数のスイッチのうち１の他のスイッチまたは該計算装置のいずれかが接続されるポートを複数そなえるとともに、該フレームを遅延させる遅延部と、該フレームの送信先に応じて、該複数のポート同士を選択的に接続することで、該フレームの伝送経路を設定する切替装置とをそなえ、該遅延部が、該フレームの伝送を、該フレームの送信先に応じた該計算装置と該記憶装置との間の伝送経路に基づいて予め設定された遅延時間遅延させ、該計算装置に接続されるスイッチにおいて、該計算装置から該記憶装置を送信先とするフレームに対しては、該伝送経路における該フレームの伝送時間が長いほど、該遅延時間が短い時間である一方、当該スイッチに接続された記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が、該記憶装置を送信先とするフレームに対する遅延時間のうち最大の時間であるとともに、当該スイッチに接続されていない記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が０である。
【００１３】
さらに、このストレージ装置の制御方法は、複数のスイッチを縦続接続してそなえるとともに、該複数のスイッチが、計算装置と該複数のスイッチのそれぞれに接続された１以上の記憶装置との間で送受信されるフレームの伝送経路を選択的に切り替えるものであり、さらに、該複数のスイッチのそれぞれが、記憶装置，該複数のスイッチのうち１の他のスイッチまたは該計算装置のいずれかが接続されるポートを複数そなえて構成された、該計算装置に接続可能なストレージ装置の制御方法であって、該フレームの送信先に応じて、該複数のポート同士を選択的に接続することで、該フレームの送信先を設定する切替ステップと、該フレームの伝送を、該フレームの送信先に応じた該計算装置と該記憶装置との間の伝送経路に基づいて予め設定された遅延時間遅延させる遅延ステップとをそなえ、該計算装置に接続されるスイッチにおいて、該計算装置から該記憶装置を送信先とするフレームに対しては、該伝送経路における該フレームの伝送時間が長いほど、該遅延時間が短い時間である一方、当該スイッチに接続された記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が、該記憶装置を送信先とするフレームに対する遅延時間のうち最大の時間であるとともに、当該スイッチに接続されていない記憶装置から該計算装置を送信先とするフレームに対しては、該遅延時間が０である。
【発明の効果】
【００１４】
開示のストレージ装置，スイッチおよびストレージ装置の制御方法によれば、計算装置と記憶装置との間の伝送距離にかかわらず、計算装置と記憶装置との間のレイテンシを同一とし、レイテンシの違いによって発生するシステム全体への悪影響を軽減することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
【図２】実施形態の一例としてのストレージシステムにおけるスイッチの詳細な構成を模式的に示す図である。
【図３】実施形態の一例としてのスイッチにおける送信バッファの構成例を模式的に示す図である。
【図４】実施形態の一例としてのストレージシステムにおいて送受信されるフレームの構成を模式的に示す図である。
【図５】実施形態の一例としてのストレージシステムにおける処理を説明するためのフローチャートである。
【図６】（ａ）〜（ｃ）は、実施形態の一例としてのストレージシステムにおけるルーティングテーブルを例示する図である。
【図７】（ａ）〜（ｃ）は、実施形態の一例としてのストレージシステムにおけるレイテンシテーブルを例示する図である。
【図８】実施形態の一例としてのストレージシステムにおけるレイテンシテーブルの作成を説明するためのフローチャートである。
【図９】実施形態の一例としてのストレージシステムにおけるルーティングの処理を説明するためのフローチャートである。
【図１０】実施形態の一例としてのストレージシステムにおけるルーティングの処理を説明するためのフローチャートである。
【図１１】従来のストレージシステムの構成を模式的に示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本ストレージ装置，スイッチおよびストレージ装置の制御方法に係る実施の形態を説明する。
〔Ａ〕実施形態の説明
図１は実施形態の一例にかかるストレージシステムの構成を模式的に示す図、図２はそのスイッチの詳細な構成を模式的に示す図である。
【００１７】
図１に示すストレージシステム１は、計算装置１０およびストレージ装置２をそなえて構成されている。ストレージシステム１は、例えば、ＲＡＩＤ装置であり、図示しないサーバやホストコンピュータ（情報処理装置）に接続され、このサーバやホストコンピュータに記憶領域を提供するものである。
ストレージ装置２は、ケーブル５１を介して、計算装置１０と通信可能に接続されている。ストレージ装置２は、縦続接続された複数のＤＥ２１−１〜２１−３をそなえて構成されている。ＤＥ２１−１とＤＥ２１−２とは、ケーブル５２を介して、ＤＥ２１−２とＤＥ２１−３とは、ケーブル５３を介して、それぞれ通信可能に接続されている。なお、本実施形態の一例において、ケーブル５１〜５３は、それぞれ同一の長さであり、フレームが、それぞれのケーブル５１〜５３を伝搬する時間は同一であるものとする。
【００１８】
ＤＥ２１−１〜２１−３は、例えば、それぞれ1以上の記憶装置をそなえ、これらの記憶領域をサーバやホストコンピュータに提供する増設筐体である。ＤＥ２１−１は、スイッチ３１−１および記憶装置４１，４２をそなえて構成されている。同様に、ＤＥ２１−２は、スイッチ３１−２および記憶装置４３，４４を、ＤＥ２１−３は、スイッチ３１−３および記憶装置４５，４６をそなえて構成されている。このように、ＤＥ２１−１〜２１−３は、互いにほぼ同様の構成を有している。
【００１９】
以下、ＤＥを示す符号としては、複数のＤＥのうち１つを特定する必要があるときには符号２１−１〜２１−３を用いるが、任意のＤＥを指すときには符号２１を用いる。
さらに、スイッチを示す符号としては、複数のスイッチのうち１つを特定する必要があるときには符号３１−１〜３１−３を用いるが、任意のスイッチを指すときには符号３１を用いる。
【００２０】
なお、ＤＥ２１，スイッチ３１，後述するポート６１〜６４等の種々の装置（部材）を示す符号における「−（ハイフン）」以下の数字（１〜Ｎ）は、縦続接続における計算装置１０からの順序を示している。
記憶装置４１〜４６は、例えば、ＨＤＤ（Hard Disk Drive）であり、各種の情報を記憶するものであって、例えば、計算装置１０から受信したフレームのデータをその記憶領域に記憶する。さらに、記憶装置４１〜４６は、その記憶領域から読み出したデータをフレームとして計算装置１０に対して送信する。記憶装置４１〜４６から計算装置１０に対するフレームの送信により、計算装置１０は、記憶装置４１〜４６に記憶された情報を取得することができる。なお、本実施形態の一例において、記憶装置４１〜４６の、フレームに対する応答時間は同一であるものとする。
【００２１】
スイッチ３１は、例えば、ＬＳＩ(Large-Scale integration)であり、フレームの伝送経路を選択的に切り替えるものである。また、スイッチ３１は、図２に示すように、複数のポート６１〜６４，クロスバ７１，メモリ８１，ＣＰＵ９１をそなえて構成されている。なお、本実施形態の一例において、スイッチ３１−１，３１−２，３１−３でのルーティング時間が同一であるものとする。
【００２２】
クロスバ７１は、後述する設定部６３０の指示に応じて、ポート６１〜６４同士を選択的に接続する。すなわち、クロスバ７１は、複数のポート同士を選択的に接続することで、フレームの伝送経路を設定する切替装置として機能する。
メモリ８１は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）であり、後述するＣＰＵ９１によって実行される種々のアプリケーションプログラムや、後述するレイテンシ値の設定されたルーティングテーブル（以下、レイテンシテーブルという）等の各種データを記憶する。すなわち、メモリ８１は、フレームの送信先と遅延時間とを対応付けた遅延制御情報を格納する遅延制御情報格納部として機能する。
【００２３】
ＣＰＵ（Central Processing Unit）９１は、演算処理装置であり、メモリ８１に記録された種々のアプリケーションプログラムを実行することにより各種機能を実現する。
ポート６１〜６４は、他の装置と接続されるインターフェイスであり、例えば、ＳＡＳ（Serial Attached SCSI）等の規格に基づくものである。なお、記憶装置４１〜４６が接続されるポートおよび計算装置１０が接続されるポートをダイレクトポート，スイッチ２１同士が接続されるポートをカスケードポートと呼ぶ場合がある。
【００２４】
図２に示す例では、ポート６１に、計算装置１０もしくは他のスイッチ３１のポート６２が接続される。さらに、ポート６２に他のスイッチ３１のポート６１が接続可能になっている。また、ポート６３に記憶装置４１（４３，４５）が、ポート６４に記憶装置４２（４４，４６）が接続される。すなわち、ポート６１〜６４は、記憶装置，複数のスイッチのうち１の他のスイッチまたは計算装置のいずれかが接続されるポートとして機能する。
【００２５】
ポート６１〜６４のそれぞれは、互いにほぼ同様の構成を備えており、受信バッファ６１０，フレーム処理部６２０，設定部６３０および送信バッファ６４０をそなえて構成される。なお、この図２中においては、便宜上、ポート６１についてのみ、その構成を示し、ポート６２〜６４の構成は省略している。
受信バッファ６１０は、例えば、ＦＩＦＯ（First In First Out）バッファであり、計算装置１０，記憶装置４１〜４６および他のスイッチ３１から送信されたフレームを一時的に保持するバッファである。
【００２６】
フレーム処理部６２０は、受信バッファ６１０と接続されており、受信バッファ６１０に格納されたフレームの送信先（送信先アドレス）を、フレームのヘッダ部から取得する。また、フレーム処理部６２０は、メモリ８１に記憶されたレイテンシテーブルを参照することで、取得した送信先に対応する振り分け先ポートおよびレイテンシ値を決定する。なお、フレーム処理部６２０は、後述するフレームのデータ部を参照することで、例えば、経路選択フレームであるか否か等、フレームの種類を判別する。
【００２７】
設定部６３０は、フレーム処理部６２０が決定した振り分け先ポートに基づいて、クロスバ７１を設定するとともに、フレーム処理部６２０が決定したレイテンシ値を、図示しない内部バスを介して振り分け先ポートにおける後述する遅延設定部６３６に設定する。
送信バッファ６４０は、例えば、ＦＩＦＯバッファであり、クロスバ７１から受信したフレームを一時的に保持する。また、送信バッファ６４０は、レイテンシ値に応じて、フレームを遅延させる。
【００２８】
図３は、送信バッファ６４０の構成例を模式的に示す図である。送信バッファ６４０は、書き込みポインタ６３１，書き込みセレクタ６３２，フレームメモリ・アレイ６３３，読み出しポインタ６３４，読み出しセレクタ６３５および遅延時間設定部６３６をそなえて構成されている。
書き込みポインタ６３１は、後述する書き込みセレクタ６３２に対して、フレームメモリ・アレイ６３３への書き込み位置を指示する。書き込みポインタ６３１は、１ずつインクリメントされ、フレームを受信した順番に後述するフレームメモリ・アレイ６３３に書き込むよう書き込みセレクタ６３２に指示する。
【００２９】
書き込みセレクタ６３２は、書き込みポインタ６３１からの指示を契機に、書き込みポインタ６３１の指示に従い後述するフレームメモリ・アレイ６３３における書き込み位置を選択し、クロスバ７１から受信したフレームをフレームメモリ・アレイ６３３に書き込む。
フレームメモリ・アレイ６３３は、例えば、ＤＲＡＭであり、複数（０〜ｎ）の格納領域をそなえ、これらの格納領域にフレームを記憶する。すなわち、フレームメモリ・アレイ６３３は、クロスバ７１から受信したフレームを格納する格納部として機能する。
【００３０】
読み出しポインタ６３４は、後述する読み出しセレクタ６３５に対して、フレームメモリ・アレイ６３３における、読み出し対象のフレームの位置を指示する。例えば、読み出しポインタ６３４は、通常、ハードクロック等で決定される一定の間隔でインクリメントされ、後述する読み出しセレクタ６３５に対して指示を行なう。
読み出しセレクタ６３５は、読み出しポインタ６３４からの指示を契機に、読み出しポインタ６３４の指示に従いフレームメモリ・アレイ６３３における読み出し位置を選択し、フレームメモリ・アレイ６３３から、フレームを読み出す。すなわち、読み出しポインタ６３４および読み出しセレクタ６３５は、格納部に格納されたフレームを読み出し、複数のポートのいずれかに送信する読み出し部として機能する。
【００３１】
遅延時間設定部６３６は、例えば、ＬＳＩの一機能であり、設定部６３０によって設定されたレイテンシ値を図示しないレジスタに保持する。さらに、遅延時間設定部６３６は、保持するレインテンシ値に基づいて、読み出しポインタ６３４の読み出しセレクタ６３５に対する指示のタイミングを制御し、読み出しセレクタ６３５のフレームメモリ・アレイ６３３からのフレームの読み出しを遅延させる。例えば、読み出しポインタ６３４の読み出しセレクタ６３５に対する指示のタイミングの制御は、読み出しポインタ６３４がインクリメントされるハードクロック周期を変更することで実現される。例えば、レイテンシ値が０の場合に、ハードクロック１周期毎に読み出しポインタ６３４がインクリメントされていた状態から、レイテンシ値が０より大きい場合には、ハードクロックＸ周期毎（Ｘ＞１）に読み出しポインタ６３４がインクリメントされる状態にする。なお、遅延設定部６３６は、図示しないレジスタに、設定されたレインテンシ値と、読み出しポインタ６３４がインクリメントされるハードクロック周期とを対応付けた情報を保持してもよい。この場合、遅延時間設定部６３６は、この情報と設定されたレイテンシ値と基づいて、読み出しポインタ６３４がインクリメントされるハードクロックの周期を変更する。すなわち、遅延時間設定部６３６は、読み出し部によるフレームの読み出しタイミングを制御することでフレームの伝送を遅延させる遅延制御部として機能する。
【００３２】
さらに、フレームメモリ・アレイ６３３，読み出しポインタ６３４，読み出しセレクタ６３５及び遅延時間設定部６３６は、フレームの伝送を遅延させる遅延部として機能する。
計算装置１０は、例えば、コントローラモジュールであり、フレームを送受信することで、記憶装置４１〜４６に格納されたデータの読み出し処理(Read)や記憶装置４１〜４６へのデータの書き込み処理(Write)等の各種の処理を行なう。すなわち、計算装置１０は、イニシエータとして、ターゲットである記憶装置４１〜４６に対してコマンドを発行することで装置間のデータ等のやり取りを行なう。また、計算装置１０は、ストレージシステム１全体のトポロジを認識し、後述するレイテンシテーブルを作成する。なお、コマンドやデータはフレームの形態で送受信される。
【００３３】
計算装置１０は、図１に示すように、ＣＰＵ１１，チップセット１２，メモリ１３，記憶装置側インターフェイス１４およびサーバ側インターフェイス１５をそなえて構成されている。
チップセット１２は、例えば、後述するＣＰＵ１１と記憶装置側インターフェイス１４およびサーバ側インターフェイス１５とを接続するブリッジチップである。
【００３４】
ＣＰＵ１１は、演算処理装置であり、後述するメモリ１３に記録された種々のアプリケーションプログラムを実行することにより各種機能を実現する。例えば、ＣＰＵ１１は、ストレージ装置２へのフレームの送信を行なう。また、ＣＰＵ１１は、ストレージシステム１全体のトポロジを認識し、認識したトポロジに基づいて、各スイッチ３１用に、フレームの送信先と、送信先に応じた振り分け先のポート６１〜６４とを対応付けたルーティングテーブルをそれぞれ作成する。さらに、ＣＰＵ１１は、計算装置１０とストレージ装置２がそなえる記憶装置４１〜４６との間のレイテンシを求め、求められたレイテンシに基づいて、各スイッチ３１用に、レイテンシテーブルを作成する。また、ＣＰＵ１１は、フレームをストレージ装置２へ送信し、ストレージ装置２から送信されてくるフレームを受信する。
【００３５】
すなわち、ＣＰＵ１１は、ストレージシステム１全体のトポロジを確認するトポロジ確認機能を実現する。さらに、ＣＰＵ１１は、スイッチ３１毎に、フレームの送信先と送信先に応じた振り分け先のポート６１〜６４とを対応付けたルーティングテーブルを作成するルーティングテーブル作成機能を実現する。また、ＣＰＵ１１は、計算装置１０とストレージ装置２がそなえる記憶装置４１〜４６との間のそれぞれのレイテンシを求めるレイテンシ計算機能を実現する。さらに、ＣＰＵ１１は、スイッチ３１毎に、フレームの送信先と、送信先に応じた振り分け先のポート６１〜６４とレイテンシ値とを対応付けたレイテンシテーブルを作成するレイテンシテーブル作成機能とを実現する。
【００３６】
トポロジ確認機能は、例えば、Discovery処理を行なうことで実現され、ストレージシステム１全体のトポロジを把握する機能である。トポロジ確認機能は既知の種々の手法を用いて実現可能であり、その詳細な説明は省略する。
ルーティングテーブル作成機能は、例えば、トポロジ確認機能により把握したストレージシステム１のトポロジに基づいて、各スイッチ３１用に、フレームの送信先と、ポート６１〜６４とを対応付けたルーティングテーブルを作成する機能である。ルーティングテーブル作成機能は既知の種々の手法を用いて実現可能であり、その詳細な説明は省略する。
【００３７】
レイテンシ計算機能は、例えば、計算装置１０から、ストレージ装置２がそなえる記憶装置４１〜４６のそれぞれに対してフレームを送信してから、そのフレームの応答を計算装置１０が受信するまでの時間を計測することによりレイテンシを算出する。具体的には、フレームの送信からそのフレームに対する応答を計算装置１０が受信するまでの時間の半分をレイテンシとして決定する機能である。すなわち、レイテンシ計算機能は、計算装置１０と記憶装置４１〜４６との間の伝送経路に基づいてレイテンシを決定する。
【００３８】
なお、同一のスイッチ３１（例えばスイッチ３１−１）に接続されている、記憶装置４１，４２と計算装置１０とのそれぞれの間でのフレームの送受信に要する時間が異なる場合、フレームの送受信に要する時間の代表値（例えば、最大値、最小値、平均値等）を用いてレイテンシを決定してもよい。
また、レイテンシ計算機能は、計算装置１０と記憶装置４１〜４６との間に介在するケーブル５１〜５３の伝送速度、および、スイッチ３１のルーティングに要する処理時間等から理論的に計算装置１０と記憶装置４１〜４６との間のレイテンシを決定することもできる。なお、スイッチ３１のルーティングに要する処理時間は、スイッチ３１を構成するＬＳＩ（Large Scale Integration）等の構成要素に応じて把握することができる。
【００３９】
さらに、計算装置１０から、各記憶装置４１〜４６に対しフレームを送信することなく、計算装置１０から、接続経路上最も遠いスイッチ３１−３の配下にある記憶装置の少なくとも１つ（図１では、記憶装置４５または記憶装置４６）に対してのみ、フレームを送信し、レイテンシを求めてもよい。トポロジ確認機能により、ストレージシステム１全体のトポロジを把握しているので、求められたレイテンシをスイッチ３１のカスケード数Ｎで除算することで、スイッチ１個分のレイテンシ等を求めることができる。ここで、スイッチ１個分のレイテンシとは、例えば、フレームがケーブル５１〜５３のいずれか１のケーブルを伝搬する時間と、フレームがスイッチ３１内でルーティングされる時間との和である。
【００４０】
また、計算装置１０から、各記憶装置４１〜４６に対しフレームを送信することなく、接続経路上、計算装置１０に最も近いスイッチ３１−１の配下にある記憶装置の少なくとも１つ記憶装置（図１では、記憶装置４１または記憶装置４２）に対してのみフレームを送信し、レイテンシを求めてもよい。トポロジ確認機能により、ストレージシステム１全体のトポロジを把握しているので、求められたレイテンシに、スイッチ３１のカスケード数Ｎを乗算することで、計算装置１０と、記憶装置４５，４６との間のレイテンシ、すなわち最大レイテンシ等を求めることができる。すなわち、任意のスイッチ３１の配下にある任意の記憶装置に対してフレームを送信し、レイテンシを求め、求められたレイテンシとスイッチ３１のカスケード数と基づいて、スイッチ１個分のレイテンシや最大レイテンシ等を求めることができる。言い換えれば、求められたレイテンシと任意の記憶装置の属するスイッチ３１の接続経路上における計算装置１０からの位置と基づいて、スイッチ１個分のレイテンシや最大レイテンシ等を求めることができる。
【００４１】
レイテンシテーブル作成機能は、例えば、レイテンシ計算機能により求められたレイテンシに基づいて、各スイッチ３１用にレイテンシテーブルを作成する機能である。
例えば、計算装置１０に対して、スイッチ３１がＮ個縦続接続されている場合には、各スイッチ３１用のルーティングテーブルに対して、以下のように、レイテンシを設定する。なお、Ｌはスイッチ１個分のレイテンシであり、接続経路上における任意の位置のスイッチ３１をｎ番目のスイッチと表現する。ｎは、自然数であり、接続経路上における計算装置１０からの並び順を示す。
（I）１番目のスイッチ用のレイテンシテーブル（ｎ＝１）
計算装置１０のエントリ：最大レイテンシ − L
１番目のスイッチ３１−１内の記憶装置のエントリ：最大レイテンシ − L
２番目のスイッチ３１−２内の記憶装置のエントリ：最大レイテンシ − 2×L
:                                  :
Ｎ番目のスイッチ３１−Ｎ内の記憶装置のエントリ：最大レイテンシ − Ｎ×L= 0
（II）２番目以降のスイッチ用のレイテンシテーブル（２≦ｎ≦Ｎ）
計算装置１０のエントリ：  最大レイテンシ − ｎ×L
１番目のスイッチ３１−１内の記憶装置のエントリ： 0
２番目のスイッチ３１−２内の記憶装置のエントリ： 0
:                           :
Ｎ番目のスイッチ３１−Ｎ内の記憶装置のエントリ： 0
すなわち、１番目のスイッチ用のレイテンシテーブルにおいて、記憶装置４１〜４６宛てに送信されるフレームに対して設定されるレイテンシ値は、計算装置１０とフレームの送信先の記憶装置との間に介在するスイッチ３１の数に反比例もしくは略反比例した値となる。言い換えれば、記憶装置４１〜４６宛てに送信されるフレームに対して設定されるレイテンシ値は、伝送経路におけるフレームの伝送時間が長いほど、短い時間となる。一方、１番目のスイッチ用のレイテンシテーブルにおいて、計算装置１０宛てに送信されるフレームに対して設定されるレイテンシ値は、記憶装置４１〜４６に宛てに送信されるフレームに対して設定されるレイテンシ値のうち最大の値と同様の値となる。すなわち、計算装置１０宛てに送信されるフレームに対して設定されるレイテンシ値は、計算装置１０と記憶装置４１〜４６との間でのフレーム伝送に対するレイテンシ値のうち最大の値となる。さらに、１番目〜Ｎ番目のスイッチ用のレイテンシテーブルにおいて、計算装置１０に宛てに送信されるフレームに対して設定されるレイテンシ値は、計算装置１０と送信元の記憶装置との間に介在するスイッチ３１の数に反比例もしくは略反比例した値となる。言い換えれば、計算装置１０宛てに送信されるフレームに対して設定されるレイテンシ値は、伝送経路におけるフレームの伝送時間が長いほど、短い時間となる。また、２番目〜Ｎ番目のスイッチ用のレイテンシテーブルにおいて、記憶装置４１〜４６に宛てに送信されるフレームに対して設定されるレイテンシ値は０となる。
【００４２】
メモリ１３は、例えば、ＤＲＡＭであり、ＣＰＵ１１によって実行される種々のアプリケーションプログラムや各種データを記憶する記憶装置である。また、メモリ１３は、計算装置１０にて、作成されたレイテンシテーブル等を一時的に記憶する。なお、メモリ１３は、所謂ノースブリッジを介してＣＰＵ１１と接続されてもよいし、直接ＣＰＵ１１と接続されてもよい。
【００４３】
記憶装置インターフェイス（ＩＦ）１４は、例えば、デバイスアダプタ（ＤＡ）であり、ストレージ装置２が接続される。
サーバインターフェイス（ＩＦ）１５は、例えば、チャネルアダプタ（ＣＡ）であり、サーバやホストコンピュータが接続される。
図４は、計算装置１０と記憶装置４１〜４６との間で送受信されるフレームのデータ構造の一例を示す図である。同図に示すように、このフレームは、フレームの始まりを示すＳＯＦ（Start  Of  Frame）と、送信先アドレスおよび送信元アドレスを含むヘッダ部と、経路選択フレーム等フレームの種類を示す情報等の各種のデータを含むデータ部とをそなえる。さらに、このフレームは、フレームデータの保護チェックコードを示すＣＲＣ（Cyclic  Redundancy  Check）と、フレームの終わりを示すＥＯＦ（End  Of  Frame）とをそなえる。上述したフレーム処理部６２０は、フレームにおけるヘッダ部を構成する送信先アドレスを参照することで、フレームの送信先を判別する。
【００４４】
上述の如く構成された、実施形態の一例としてのストレージシステム１におけるレイテンシテーブルの作成処理の動作を、図５に示すフローチャート（ステップＡ０〜Ａ４）を参照しながら説明する。
まず、例えば、ストレージシステム１の起動、もしくは、ホットスワップイベント等によってストレージシステム１が初期化されると（ステップＡ０）、計算装置１０が、トポロジ確認機能により、ストレージシステム１のトポロジを把握する（ステップＡ１）。計算装置１０は、トポロジ確認機能により把握されたトポロジに基づいて、各スイッチ３１用に、装置のアドレスと、振り分け先ポートとが関連付けられたルーティングテーブルを作成する（ステップＡ２）。図６（ａ）〜（ｃ）に、ステップＡ１にて、作成されるルーティングテーブルの一例を示す。図６（ａ）〜（ｃ）は、それぞれ、スイッチ３１−１〜３１−３用のルーティングテーブルである。
【００４５】
次に、計算装置１０が、レイテンシ計算機能により、計算装置１０と各記憶装置４１〜４６との間のレイテンシをそれぞれ求める（ステップＡ３）。そして、計算装置１０が、レイテンシテーブル作成機能により、ステップＡ３で求めたレイテンシに基づいて、各スイッチ３１用に、レイテンシテーブルを作成する（ステップＡ４）。レイテンシテーブルは、ステップＡ２で作成されたルーティングテーブルに対して、レイテンシ値を各装置のアドレス(フレームの送信先)に対応付けることで作成される。図７（ａ）〜（ｃ）にステップＡ４にて作成されるレイテンシテーブルの一例を示す。図７（ａ）〜（ｃ）は、それぞれ、スイッチ３１−１〜３１−３用のルーティングテーブルである。すなわち、図７（ａ）〜（ｃ）に示すレイテンシテーブルは、図６（ａ）〜（ｃ）に示すルーティングテーブルを拡張したものである。
【００４６】
そして、計算装置１０から、各スイッチ３１に、作成されたレイテンシテーブルを送信し、各スイッチ３１は、作成されたレイテンシテーブルをそれぞれ、メモリ８１に記憶する。具体的には、スイッチ３１−１は、図７（ａ）に示すレイテンシテーブルを、スイッチ３１−２は、図７（ｂ）に示すレイテンシテーブルを、スイッチ３１−３は、図７（ｃ）に示すレイテンシテーブルをそれぞれ記憶する。その後、各スイッチ３１に記憶されたレイテンシテーブルに従って、計算装置１０と記憶装置４１〜４６との間でフレームのルーティングが開始される。
【００４７】
次に、レイテンシテーブルを作成するステップの詳細、すなわち図５におけるステップＡ３，Ａ４の詳細な動作を、図８に示すフローチャート（ステップＡ３０〜Ａ３２）を参照しながら説明する。
まず、レイテンシ計算機能により、計算装置１０は、各記憶装置４１〜４６に対してフレームを送信し、そのフレームの応答を受信することで、計算装置１０と各記憶装置４１〜４６との間のそれぞれのレイテンシを測定する（ステップＡ３０）。次に、レイテンシ計算機能により決定されたレイテンシから、最大レイテンシと、最小レイテンシ（スイッチ１個分のレイテンシＬ）とを決定する（ステップＡ３１）。本実施形態の一例においては、最大レイテンシは、計算装置１０とスイッチ３１−３配下の記憶装置４５，４６との間のレイテンシであり、ケーブル５１〜５３の伝送時間とスイッチ３１−１〜３１−３でのルーティング時間との和である。最小レイテンシＬは、計算装置１０とスイッチ３１−１配下の記憶装置４１，４２との間のレイテンシ、すなわち、ケーブル５１の伝送時間とスイッチ３１−１でのルーティング時間との和である。
【００４８】
例えば、３つのスイッチ３１−１，３１−２，３１−３でのルーティング時間が同一であれば、最大レイテンシは、最小レイテンシの３倍（３Ｌ）となる。この最大レイテンシと最小レイテンシとに基づいて、各スイッチ３１用に、レイテンシテーブルを作成する（ステップＡ３２）。例えば、以下のように、レイテンシテーブルを作成する。本実施形態の一例では、例えば、スイッチ３１−１用のレイテンシテーブルでは、記憶装置４１，４２のエントリに対して、最大レイテンシ３Ｌと最小レイテンシＬとの差である２Ｌが対応付けられる。
【００４９】
（i）スイッチ３１−１用のレイテンシテーブル
計算装置１０のエントリ：最大レイテンシ−L
記憶装置４１，４２のエントリ：最大レイテンシ−L
記憶装置４３，４４のエントリ：最大レイテンシ−２× L
記憶装置４５、４６のエントリ：最大レイテンシ−３× L = ０
（ii）スイッチ３１−２用のレイテンシテーブル
計算装置１０のエントリ：最大レイテンシ−２× L
記憶装置４１，４２のエントリ：０
記憶装置４３，４４のエントリ：０
記憶装置４５、４６のエントリ：０
（iii）スイッチ３１−３用のレイテンシテーブル
計算装置１０のエントリ：最大レイテンシ−３×L = ０
記憶装置４１，４２のエントリ：０
記憶装置４３，４４のエントリ：０
記憶装置４５、４６のエントリ：０
そして、計算装置１０は、作成したレイテンシテーブルを、対応する各スイッチ３１に対して、送信し、各スイッチ３１は、それぞれレイテンシテーブルをメモリ８１に格納する。
【００５０】
次に、計算装置１０と記憶装置４１〜４６との間で行なわれるフレームのルーティングの詳細、すなわち、図５におけるステップＡ５の詳細な動作を、図９に示すフローチャートを参照しながら説明する（ステップＡ５０〜Ａ５７）。
まず、計算装置１０または記憶装置４１〜４６は、フレームを送信する（ステップＡ５０）。送信されたフレームは、スイッチ３１のポート６１〜６４のいずれかのポートで受信される（ステップＡ５１）。受信ポートにおけるフレーム処理部６２０が、フレームの送信先アドレスを取得する（ステップＡ５２）。さらに、受信ポートにおけるフレーム処理部６２０が、ルーティングテーブルを参照し、送信先アドレスに対応する、振り分け先ポート及びレイテンシ値を決定する（ステップＡ５３）。受信ポートにおける設定部６３０が、フレーム処理部６２０がステップＡ５３で決定した振り分け先ポートにおける遅延時間設定部６３６に、フレーム処理部６２０がステップＡ５３で決定したレイテンシ値を設定する（ステップＡ５４）。また、フレームを受信したポートとステップＡ５３で決定した振り分け先ポートとが、クロスバ７１で接続され（ステップＡ５５）、フレームが、振り分け先ポートへクロスバ７１を介して送信される（ステップＡ５６）。送信されたフレームは、ステップＡ５３で決定した振り分け先ポートにおける送信バッファ６４０において、ステップＡ５３で決定したレイテンシ値だけ遅延させられた後、振り分け先ポートから送信される（ステップＡ５７）。
【００５１】
各スイッチ３１において、上記ステップＡ５１〜Ａ５７の処理が行なわれることにより、計算装置１０と記憶装置４１〜４６との間のそれぞれのレイテンシを同一とするフレームのルーティングが行なわれる。なお、ステップＡ５３において、常にルーティングテーブルを参照し、送信先アドレスに対応する、振り分け先ポート及びレイテンシ値を決定することとしているが、これに限定されるものではない。フレームを受信したポートがカスケードポートであれば、フレーム処理部６２０は、レイテンシテーブルからレイテンシ値を決定することなく、レイテンシ値は０であると判断してもよい。
【００５２】
なお、例えば、ＳＡＳなどの規格では、フレーム受信毎にフレームのルーティング処理を行なわず経路選択フレーム（ＳＡＳではＯＰＥＮフレーム）で最初にコネクションを確立してから、通信を行なうものがある。この場合には、上記ステップＡ５０〜Ａ５７に代わり、例えば、図１０に示すステップＡ６０〜Ａ７４の処理が行なわれる。
まず、計算装置１０または記憶装置４１〜４６は、経路選択フレームを送信する（ステップＡ６０）。送信された経路選択フレームは、スイッチ３１のポート６１〜６４のいずれかのポートで受信される（ステップＡ６１）。受信ポートにおけるフレーム処理部６２０が、経路選択フレームの送信先アドレスを取得する（ステップＡ６２）。さらに、受信ポートにおけるフレーム処理部６２０が、ルーティングテーブルを参照し、送信先アドレスに対応する、振り分け先ポート及びレイテンシ値を決定する（ステップＡ６３）。受信ポートにおける設定部６３０が、フレーム処理部６２０がステップＡ６３で決定した振り分け先ポートにおける遅延時間設定部６３６に、フレーム処理部６２０がステップＡ６３で決定したレイテンシ値を設定する（ステップＡ６４）。また、受信ポートにおけるフレーム処理部６２０が、経路選択フレームの送信元アドレスを取得する（ステップＡ６５）。さらに、受信ポートにおけるフレーム処理部６２０が、ルーティングテーブルを参照し、送信元アドレスに対応するレイテンシ値を決定する（ステップＡ６６）。受信ポートにおける設定部６３０が、受信ポートにおける遅延時間設定部６３６に、フレーム処理部６２０がステップＡ６６で決定したレイテンシ値を設定する（ステップＡ６７）。また、経路選択フレームを受信したポートとステップＡ６３で決定した振り分け先ポートとが、クロスバ７１で接続され（ステップＡ６８）、経路選択フレームが、振り分け先ポートへクロスバ７１を介して送信される（ステップＡ６９）。経路選択フレームの送信元が、送信された経路選択フレームに対する正常応答を受信した場合に、コネクションが確立され、そのコネクション関係が維持される（ステップＡ７０，Ａ７１）。コネクション確立後、経路選択フレームの送信元と経路選択フレームの送信先との間でフレームの送受信が行なわれる（ステップＡ７２）。そして、計算装置１０は、通信終了フレームを送信することで、コネクションを終了する（ステップＡ７３，Ａ７４）。
【００５３】
以下に、計算装置１０から、各記憶装置４１〜４６へフレームを送信する場合のそれぞれのレイテンシと、各記憶装置４１〜４６から、計算装置１０へフレームを送信する場合のそれぞれのレイテンシとを示す。なお、各スイッチ３１は、それぞれ図７に示すレイテンシテーブルを保持している。
（１）計算装置１０から、記憶装置４１（４２）へフレームを送信する場合
まず、計算装置１０から送信されたフレームは、ケーブル５１を経由して、スイッチ３１−１のポート６１−１にて受信される。ポート６１−１におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、記憶装置４１宛てのフレームであることを読み取る。次に、ポート６１−１におけるフレーム処理部６２０は、スイッチ３１−１が保持するレイテンシテーブルから、記憶装置４１のエントリを検索して、振り分け先ポートがポート６３−１，レイテンシ値が２Ｌであることを読み取る。ポート６１−１における設定部６３０が、ポート６３−１における遅延時間設定部６３６にレイテンシ値２Ｌを設定するとともに、ポート６１−１における設定部６３０が、ポート６１−１と６３−１とを接続するようにクロスバ７１を設定する。ポート６１−１と６３−１とがクロスバ７１により接続されると、フレームはポート６３−１へ送信される。フレームは、ポート６３−１の送信バッファ６４０にて、２Ｌ遅延させられた後、ポート６３−１から記憶装置４１へ送信され、記憶装置４１へ到達する。従って、計算装置１０から、記憶装置４１へフレームが到達するまでのレイテンシは、スイッチ３１−１のスイッチ１個分のレイテンシＬと、ポート６３−１における送信バッファ６４０での遅延時間２Ｌとの和、すなわち３Ｌとなる。
【００５４】
計算装置１０から、記憶装置４２へフレームを送信する場合には、スイッチ３１−１における振り分け先ポートが、ポート６３−１ではなくポート６４−１となる点が異なるのみである。従って、計算装置１０から、記憶装置４２へフレームが到達するまでのレイテンシは、計算装置１０から、記憶装置４１へフレームを送信する場合と同様に３Ｌとなる。
【００５５】
（２）計算装置１０から、記憶装置４３（４４）へフレームを送信する場合
まず、計算装置１０から送信されたフレームは、ケーブル５１を経由して、スイッチ３１−１のポート６１−１にて受信される。ポート６１−１におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、記憶装置４３宛てのフレームであることを読み取る。次に、ポート６１−１におけるフレーム処理部６２０は、スイッチ３１−１が保持するレイテンシテーブルから、記憶装置４３のエントリを検索して、振り分け先ポートがポート６２−１，レイテンシ値がＬであることを読み取る。ポート６１−１における設定部６３０が、ポート６２−１における遅延時間設定部６３６にレイテンシ値Ｌを設定するとともに、ポート６１−１における設定部６３０が、ポート６１−１と６２−１とを接続するようにクロスバ７１を設定する。ポート６１−１と６２−１とがクロスバ７１により接続されると、フレームはポート６２−１へ送信される。フレームは、６２−１の送信バッファ６４０にて、２Ｌ遅延させられた後、ポート６２−１から送信され、ケーブル５２を経由して、スイッチ３１−２のポート６１−２にて受信される。
【００５６】
ポート６１−２におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、記憶装置４３宛てのフレームであることを読み取る。次に、ポート６１−２におけるフレーム処理部６２０は、スイッチ３１−２が保持するレイテンシテーブルから、記憶装置４３のエントリを検索して、振り分け先ポートがポート６３−２，レイテンシ値が０であることを読み取る。ポート６１−２における設定部６３０が、ポート６３−２における遅延時間設定部６３６にレイテンシ値０を設定するとともに、ポート６１−２における設定部６３０が、ポート６１−２と６３−２とを接続するようにクロスバ７１を設定する。ポート６１−２と６３−２とがクロスバ７１により接続されると、フレームはポート６３−２へ送信される。フレームは、ポート６３−２の送信バッファ６４０にて遅延させられることなく、ポート６３−２から記憶装置４３へ送信され、記憶装置４３へ到達する。従って、計算装置１０から、記憶装置４３へフレームが到達するまでのレイテンシは、スイッチ３１−１および３１−２のスイッチ２個分のレイテンシ２×Ｌと、スイッチ３１−１のポート６２−１における送信バッファ６４０での遅延時間Ｌとの和、すなわち３Ｌとなる。
【００５７】
計算装置１０から、記憶装置４４へフレームを送信する場合には、スイッチ３１−２における振り分け先ポートが、ポート６３−２ではなくポート６４−２となる点が異なるのみである。従って、計算装置１０から、記憶装置４４へフレームが到達するまでのレイテンシは、計算装置１０から、記憶装置４３へフレームを送信する場合と同様に３Ｌとなる。
【００５８】
（３）計算装置１０から、記憶装置４５（４６）へフレームを送信する場合
まず、計算装置１０から送信されたフレームは、ケーブル５１を経由して、スイッチ３１−１のポート６１−１にて受信される。ポート６１−１におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、記憶装置４５宛てのフレームであることを読み取る。次に、ポート６１−１におけるフレーム処理部６２０は、スイッチ３１−１が保持するレイテンシテーブルから、記憶装置４５のエントリを検索して、振り分け先ポートがポート６２−１，レイテンシ値が０であることを読み取る。ポート６１−１における設定部６３０が、ポート６２−１における遅延時間設定部６３６にレイテンシ値０を設定するとともに、ポート６１−１における設定部６３０が、ポート６１−１と６２−１とを接続するようにクロスバ７１を設定する。ポート６２−１と６１−２とがクロスバ７１により接続されると、フレームはポート６２−１へ送信される。フレームは、６２−１の送信バッファ６４０にて遅延させられることなく、ポート６２−１から送信され、ケーブル５２を経由して、スイッチ３１−２のポート６１−２にて受信される。
【００５９】
ポート６１−２におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、記憶装置４５宛てのフレームであることを読み取る。次に、ポート６１−２におけるフレーム処理部６２０は、スイッチ３１−２が保持するレイテンシテーブルから、記憶装置４５のエントリを検索して、振り分け先ポートがポート６２−２，レイテンシ値が０であることを読み取る。ポート６１−２における設定部６３０が、ポート６２−２における遅延時間設定部６３６にレイテンシ値０を設定するとともに、ポート６１−２における設定部６３０が、ポート６１−２と６２−２とを接続するようにクロスバ７１を設定する。ポート６１−２と６２−２とがクロスバ７１により接続されると、フレームはポート６２−２へ送信される。フレームは、ポート６２−２の送信バッファ６４０にて遅延させられることなく、ポート６２−２から送信され、ケーブル５３を経由して、スイッチ３１−３のポート６１−３にて受信される。
【００６０】
ポート６１−３におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、記憶装置４５宛てのフレームであることを読み取る。次に、ポート６１−３におけるフレーム処理部６２０は、スイッチ３１−３が保持するレイテンシテーブルから、記憶装置４５のエントリを検索して、振り分け先ポートがポート６３−３，レイテンシ値が０であることを読み取る。ポート６１−３における設定部６３０が、ポート６３−３における遅延時間設定部６３６にレイテンシ値０を設定するとともに、ポート６１−３における設定部６３０が、ポート６１−３と６３−３とを接続するようにクロスバ７１を設定する。ポート６１−３と６３−３とがクロスバ７１により接続されると、フレームはポート６３−３へ送信される。フレームは、ポート６３−３の送信バッファ６４０にて、遅延させられることなく、ポート６３−３から記憶装置４５へ送信され、記憶装置４５へ到達する。従って、計算装置１０から、記憶装置４５へフレームが到達するまでのレイテンシは、スイッチ３１−１〜３１−３のスイッチ３個分のレイテンシ３×Ｌと、スイッチ３１−１〜３１−３における送信バッファ６４０での遅延時間０との和、すなわち３Ｌとなる。
【００６１】
計算装置１０から、記憶装置４６へフレームを送信する場合には、スイッチ３１−３における振り分け先ポートが、ポート６３−３ではなくポート６４−３となる点が異なるのみである。従って、計算装置１０から、記憶装置４６へフレームが到達するまでのレイテンシは、計算装置１０から、記憶装置４５へフレームを送信する場合と同様に３Ｌとなる。
【００６２】
（４）記憶装置４１（４２）から、計算装置１０へフレームを送信する場合
まず、記憶装置４１から送信されたフレームは、スイッチ３１−１のポート６３−１にて受信される。ポート６３−１におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、計算装置１０宛てのフレームであることを読み取る。次に、ポート６３−１におけるフレーム処理部６２０は、スイッチ３１−１が保持するレイテンシテーブルから、計算装置１０のエントリを検索して、振り分け先ポートがポート６１−１，レイテンシ値が２Ｌであることを読み取る。ポート６３−１における設定部６３０が、ポート６１−１における遅延時間設定部６３６にレイテンシ値２Ｌを設定するとともに、ポート６３−１における設定部６３０が、ポート６３−１と６１−１とを接続するようにクロスバ７１を設定する。ポート６３−１と６１−１とがクロスバ７１により接続されると、フレームはポート６１−１へ送信される。フレームは、ポート６１−１の送信６４０バッファにて、２Ｌ遅延させられた後、ポート６１−１から計算装置１０へ送信され、計算装置１０へ到達する。従って、記憶装置４１から、計算装置１０へフレームが到達するまでのレイテンシは、スイッチ３１−１のスイッチ１個分のレイテンシＬと、ポート６１−１における送信バッファ６４０での遅延時間２Ｌとの和、すなわち３Ｌとなる。
【００６３】
記憶装置４２から、計算装置１０へフレームを送信する場合には、スイッチ３１−１においてフレームを受信するポートが、６３−１ではなく６４−１となる点が異なるのみである。従って、記憶装置４２から、計算装置１０へフレームが到達するまでのレイテンシは、記憶装置４１から、計算装置１０へフレームを送信する場合と同様に３Ｌとなる。
（５）記憶装置４３（４４）から、計算装置１０へフレームを送信する場合
まず、記憶装置４３から送信されたフレームは、スイッチ３１−２のポート６３−２にて受信される。ポート６３−２におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、計算装置１０宛てのフレームであることを読み取る。次に、ポート６３−２におけるフレーム処理部６２０は、スイッチ３１−２が保持するレイテンシテーブルから、計算装置１０のエントリを検索して、振り分け先ポートがポート６１−２，レイテンシ値がＬであることを読み取る。ポート６３−２における設定部６３０が、ポート６１−２における遅延時間設定部６３６にレイテンシ値Ｌを設定するとともに、ポート６３−２における設定部６３０が、ポート６３−２と６１−２とを接続するようにクロスバ７１を設定する。ポート６３−２と６１−２とがクロスバ７１により接続されると、フレームはポート６１−２へ送信される。フレームは、ポート６１−２の送信バッファ６４０にて、Ｌ遅延させられた後、ポート６１−２から送信され、ケーブル５２を経由して、スイッチ３１−１のポート６２−１にて受信される。
【００６４】
ポート６２−１におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、計算装置１０宛てのフレームであることを読み取る。次に、ポート６２−１におけるフレーム処理部６２０は、スイッチ３１−１が保持するレイテンシテーブルから、計算装置１０のエントリを検索して、振り分け先ポートがポート６１−１，レイテンシ値が０であることを読み取る。ポート６２−１における設定部６３０が、６１−１における遅延時間設定部６３６にレイテンシ値０を設定するとともに、ポート６２−１における設定部６３０が、ポート６２−１と６１−１とを接続するようにクロスバ７１を設定する。ポート６２−１と６１−１とがクロスバ７１により接続されると、フレームはポート６１−１へ送信される。フレームは、ポート６１−１の送信バッファ６４０にて、遅延させられることなく、ポート６１−１から計算装置１０へ送信され、ケーブル５１を経由して、計算装置１０へ到達する。
【００６５】
従って、記憶装置４３から、計算装置１０へフレームが到達するまでのレイテンシは、スイッチ３１−１および３１−２のスイッチ２個分のレイテンシ２×Ｌと、スイッチ３１−２のポート６１−２における送信バッファ６４０での遅延時間Ｌとの和、すなわち３Ｌとなる。
記憶装置４４から、計算装置１０へフレームを送信する場合には、スイッチ３１−２においてフレームを受信するポートが、ポート６３−２ではなくポート６４−２となる点が異なるのみである。従って、記憶装置４４から、計算装置１０へフレームが到達するまでのレイテンシは、記憶装置４３から、計算装置１０へフレームを送信する場合と同様に３Ｌとなる。
【００６６】
（６）記憶装置４５（４６）から、計算装置１０へフレームを送信する場合
まず、記憶装置４５から送信されたフレームは、スイッチ３１−３のポート６３−３にて受信される。ポート６３−３におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、計算装置１０宛てのフレームであることを読み取る。次に、ポート６３−３におけるフレーム処理部６２０は、スイッチ３１−３が保持するレイテンシテーブルから、計算装置１０のエントリを検索して、振り分け先ポートがポート６１−３，レイテンシ値が０であることを読み取る。ポート６３−３における設定部６３０が、ポート６１−３における遅延時間設定部６３６にレイテンシ値０を設定するとともに、ポート６３−３における設定部６３０が、ポート６３−３と６１−３とを接続するようにクロスバ７１を設定する。ポート６３−３と６１−３とがクロスバ７１により接続されると、フレームはポート６１−３へ送信される。フレームは、ポート６１−３の送信バッファ６４０にて、遅延させられることなく、ポート６１−３から送信され、ケーブル５３を経由して、スイッチ３１−２のポート６２−２にて受信される。
【００６７】
ポート６２−２におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、計算装置１０宛てのフレームであることを読み取る。次に、ポート６２−２におけるフレーム処理部６２０は、スイッチ３１−２が保持するレイテンシテーブルから、計算装置１０のエントリを検索して、振り分け先ポートがポート６１−２，レイテンシ値が０であることを読み取る。ポート６２−２における設定部６３０が、ポート６１−２における遅延時間設定部６３６にレイテンシ値０を設定するとともに、ポート６２−２における設定部６３０が、ポート６２−２と６１−２とを接続するようにクロスバ７１を設定する。ポート６２−２と６１−２とがクロスバ７１により接続されると、フレームはポート６１−２へ送信される。フレームは、ポート６１−２の送信バッファ６４０にて、遅延させられることなく、ポート６１−２から計算装置１０へ送信され、ケーブル５２を経由して、スイッチ３１−１のポート６２−１にて受信される。
【００６８】
ポート６２−１におけるフレーム処理部６２０が、受信したフレームからフレームの送信先を取得することで、計算装置１０宛てのフレームであることを読み取る。次に、ポート６２−１におけるフレーム処理部６２０は、スイッチ３１−１が保持するレイテンシテーブルから、計算装置１０のエントリを検索して、振り分け先ポートがポート６１−１，レイテンシ値が０であることを読み取る。ポート６２−１における設定部６３０が、ポート６１−１における遅延時間設定部６３６にレイテンシ値０を設定するとともに、ポート６２−１における設定部６３０が、ポート６２−１と６１−１とを接続するようにクロスバ７１を設定する。ポート６２−１と６１−１とがクロスバ７１により接続されると、フレームはポート６１−１へ送信される。フレームは、ポート６１−１の送信バッファ６４０にて、遅延させられることなく、ポート６１−２から計算装置１０へ送信され、ケーブル５１を経由して、計算装置１０へ到達する。
【００６９】
従って、記憶装置４５から、計算装置１０へフレームが到達するまでのレイテンシは、スイッチ３１−１〜３１−３のスイッチ３個分のレイテンシ３×Ｌと、スイッチ３１−１〜３１−３における送信バッファ６４０での遅延時間０との和、すなわち３Ｌとなる。
記憶装置４６から、計算装置１０へフレームを送信する場合には、スイッチ３１−３においてフレームを受信するポートが、ポート６３−３ではなくポート６４−３となる点が異なるのみである。従って、記憶装置４６から、計算装置１０へフレームが到達するまでのレイテンシは、記憶装置４５から、計算装置１０へフレームを送信する場合と同様に３Ｌとなる。
【００７０】
このように、実施形態の一例としてのストレージシステム１によれば、各スイッチ３１−１〜３１−３が、それぞれレイテンシテーブルをそなえることにより、計算装置１０と各記憶装置４１〜４６との間におけるフレームの送受信のレイテンシを同一とすることができる。すなわち、記憶装置４１〜４６が、スイッチ３１−１〜３１−３のどの配下にあるかによらず、常にレイテンシを３Ｌとすることができる。従って、多数のフレームの送受信によって行なわれる記憶装置４１〜４６の読み出し処理(Read)や記憶装置４１〜４６への書き込み処理(Write)等の処理時間を均等にすることが可能となる。また、記憶装置４１〜４６の読み出し処理(Read)や記憶装置４１〜４６への書き込み処理(Write)等の処理時間が均等になるため、性能バランスの不均衡等の問題を生じさせない。
【００７１】
さらに、各スイッチ３１−１〜３１−３のそれぞれにレイテンシテーブルを保持させることで、に計算装置１０と記憶装置４１〜４６との間のレイテンシを同一にすることができるため、スイッチの縦続接続の数が多くなった場合でも、複雑な処理を行なうことなく簡単に計算装置と記憶装置との間のレイテンシを同一にすることができる。
また、実施形態の一例としてのストレージシステム１によれば、フレームのレイテンシを可変制御できるため、システムを構成しているどのリソースを使用するかはその時々によって異なる場合があるクラウドコンピューティングにおいても、ユーザに対して、同じ処理時間で応答を返すことが可能となる。
【００７２】
〔Ｂ〕その他
なお、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、本実施形態の一例では、計算装置１０のＣＰＵ１１が、トポロジ確認機能，ルーティングテーブル作成機能，レイテンシ計算機能およびレイテンシテーブル作成機能とを実現しているが、これに限定されるものではない。例えば、各スイッチ３１がそなえるＣＰＵ９１が、トポロジ確認機能，ルーティングテーブル作成機能，レイテンシ計算機能およびレイテンシテーブル作成機能を実現してもよい。この場合、各スイッチ３１のレイテンシ計算機能は、計算装置１０と記憶装置４１〜４６との間に介在するケーブル５１〜５３の伝送速度、および、スイッチ３１のルーティングに要する処理時間等から理論的に計算装置１０と記憶装置４１〜４６との間のレイテンシを決定する。また、スイッチ３１のルーティングテーブル作成機能は、レイテンシ計算機能により決定されたレイテンシを基に、それぞれ、各スイッチ３１自身が用いるレイテンシテーブルを作成する。スイッチ３１は、トポロジ確認機能により、自身が何番目のスイッチであるかを把握しているため、各スイッチ３１は、例えば、図７（ａ）〜（ｃ）に示すレイテンシテーブルを作成することができる。
【００７３】
また、本実施形態の一例では、スイッチ３１を３個縦続接続した場合を用いて説明したが、これに限定されるものではなく、スイッチ３１を２個以下または４個以上縦続接続してもよい。
さらに、本実施形態の一例では、スイッチ３１の配下にそなえられる、記憶装置は２個とした場合を用いて説明したが、これに限定されるものではなく、スイッチ３１の配下にそなえられる記憶装置の数は１個または３個以上であってもよい。
【００７４】
また、本実施形態の一例では、各スイッチ３１にそなえられる記憶装置は、それぞれ同じ数である場合を用いて説明したが、これに限定されるものではなく、スイッチ３１にそなえられる記憶装置の数は、それぞれ異なっていてもよい。
さらに、本実施形態の一例では、記憶装置４１〜４６は、フレームに対する応答時間は同一であるものとして説明したが、これに限定されるものではない。例えば、異なる種類の記憶装置(SSD（Solid State Drive）,SASディスク,SATA（Serial ATA）ディスク等)がストレージ装置内にそなえられる場合、異なる種類の記憶装置間のレスポンス差に基づいて、レイテンシテーブルのレイテンシ値を変更することもできる。具体的には、応答時間の早い記憶装置と応答時間の遅い記憶装置とのレスポンス差だけ、応答時間の早い記憶装置に対するフレームを遅延させる。これにより、計算装置と異なる種類の記憶装置それぞれとの間のレイテンシを同一にすることが可能となる。
【００７５】
また、本実施形態の一例では、レイテンシテーブルのレイテンシ値は、計算装置１０が設定しているが、これに限定さえるものではなく、ユーザ装置などの外部装置からも設定することができる。例えば、ユーザ装置からシステム要件のため、あるエントリのレイテンシ値を0とすることができる。
さらに、本実施形態の一例では、レイテンシテーブルを、図７（ａ）〜（ｃ）に示すように、フレームの送信先と振り分け先ポートとレイテンシ値とを対応付けたものとしているが、これに限定されるものではない。例えば、レイテンシテーブル内に追加でフレームの種類ごとにレイテンシを設定できるフィールドを持たせてもよい。例えば、バスを獲得する際に行なわれるアービトレーションの処理は、デバイス間でできるだけ均等(フェア)となるようなアルゴリズムが採用されているが、一般的な構成を想定して設計されているため特定の構成において不均等になる場合がある。レイテンシテーブルにフレームの種類ごとにレイテンシを設定できるフィールドを持たせることで、アービトレーションに使用するフレーム(SASではOPENフレーム等)に対して特別なレイテンシ値を設定することができ、特定構成における不均等を解消することができる。
【００７６】
また、本実施形態の一例では、レイテンシテーブルを、図７（ａ）〜（ｃ）に示すように、フレームの送信先と振り分け先ポートとレイテンシ値とを対応付けたものとしているが、これに限定されるものではない。SAS等ではルーティングテーブル内に宛先アドレスがない場合に特定の1ポート(サブトラクティブポート)を振り分け先ポートとするサブトラクティブルーティング処理がある。そこで、例えば、レイテンシテーブル内に宛先アドレスがない場合にもレイテンシ値が設定可能なように、レイテンシテーブルに、サブトラクティブポートを振り分け先ポートとする場合のレイテンシ値を設定する箇所を設けてもよい。設定するレイテンシ値は、例えば、サブトラクティブポートの最終的な接続先(多くの場合は計算装置)に対する値となる。
【００７７】
さらに、本実施形態の一例では、レイテンシ値が０の場合にも、振り分け先ポートにおける遅延時間設定部６３６に０を設定してルーティングを行なっているが、これに限定されるものではなく、振り分け先ポートにおける遅延時間設定部６３６にレイテンシ値を設定しなくてもよい。
また、レイテンシテーブル内でレイテンシ値が設定されていない場合は、振り分け先ポートにおける遅延時間設定部６３６に０を設定してルーティングが行なってもよし、振り分け先ポートにおける送信バッファ６４０を経由しないルートを用意してもよい。
【００７８】
また、本実施形態の一例では、各スイッチ３１−１〜３１−３が、それぞれレイテンシテーブルをそなえているが、これに限定されるものではない。例えば、各スイッチ３１−１〜３１−３が、ルーティングテーブルのみをそなえる場合においても、各スイッチ３１−１〜３１−３の各ポート６１〜６４におけるフレーム処理部６２０が、受信したフレームの送信先を基に、伝送経路を判断して、レイテンシ値を算出し、振り分け先ポートの遅延時間設定部６３６にレイテンシ値を設定してもよい。
【００７９】
さらに、本実施形態の一例では、計算装置１０と記憶装置４１〜４６との間のそれぞれのレイテンシは、最大レイテンシ（３Ｌ）で同一となる場合を用いて説明したがこれに限定されるものではなく、最大レイテンシよりも大きな値でもよい。
また、本実施形態の一例では、ＣＰＵ１１が、メモリ１３に記録された種々のアプリケーションプログラムを実行することにより、トポロジ確認機能，ルーティングテーブル作成機能，レイテンシ計算機能およびレイテンシテーブル作成機能を実現している。しかし、これに限定されるものではなく、記憶装置インターフェイス（ＩＦ）１４が、ＣＰＵ１１に代わり、これらの機能を実現してもよい。
【００８０】
さらに、本実施形態の一例では、スイッチ３１は、ＬＳＩ(Large-Scale integration)であると記載したが、例えば、スイッチ３１の各部(フレーム処理部６２０，設定部６３０，遅延時間設定部６３６等)の機能は、適宜ＦＰＧＡ(Field Programmable Gate Array)によって実現してもよい。
また、本実施形態の一例において、ケーブル５１〜５３は、それぞれ同一の長さであり、フレームが、それぞれのケーブル５１〜５３を伝搬する時間は同一である場合を用いて説明したが、これに限定されるものではない。さらに、本実施形態の一例において、スイッチ３１−１，３１−２，３１−３でのルーティング時間が同一である場合を用いて説明したがこれに限定されるものではない。すなわち、フレームが、ケーブル５１〜５３を伝搬する時間が異なる場合には、フレームの伝搬時間差を考慮してレインテンシテーブルを作成してもよい。また、スイッチ３１−１，３１−２，３１−３でのルーティング時間が異なる場合には、ルーティング時間差を考慮してレインテンシテーブルを作成してもよい。
【００８１】
なお、ＣＰＵ１１及びチップセット１２の各機能を実現するための種々のアプリケーションプログラム、および、ＣＰＵ９１の各機能を実現するための種々のアプリケーションプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【符号の説明】
【００８２】
１    ストレージシステム
２    ストレージ装置
１０    計算装置
１１    ＣＰＵ
１２    チップセット
１３    メモリ
１４    記憶装置ＩＦ
１５    サーバＩＦ
２１−１，２１−２，２１−３    ＤＥ
３１−１，３１−２，３１−３，３１−４    スイッチ
４１，４２，４３，４４，４５，４６    記憶装置
５１，５２，５３    ケーブル
６１，６２，６３，６４    ポート
７１    クロスバ
８１    メモリ
９１    ＣＰＵ
６１０    受信バッファ
６２０    フレーム処理部
６４０    送信バッファ
６３１    書き込みポインタ
６３２    書き込みセレクタ
６３３    フレームメモリ・アレイ
６３４    読み出しポインタ
６３５    読み出しセレクタ
６３６    遅延時間設定部
【図１】
0005526802.tif 000002
【図２】
0005526802.tif 000003
【図３】
0005526802.tif 000004
【図４】
0005526802.tif 000005
【図５】
0005526802.tif 000006
【図６】
0005526802.tif 000007
【図７】
0005526802.tif 000008
【図８】
0005526802.tif 000009
【図９】
0005526802.tif 000010
【図１０】
0005526802.tif 000011
【図１１】
0005526802.tif 000012