JP2009266119A - ストレージ装置及びデータ転送方法 - Google Patents

ストレージ装置及びデータ転送方法 Download PDF

Info

Publication number
JP2009266119A
JP2009266119A JP2008117634A JP2008117634A JP2009266119A JP 2009266119 A JP2009266119 A JP 2009266119A JP 2008117634 A JP2008117634 A JP 2008117634A JP 2008117634 A JP2008117634 A JP 2008117634A JP 2009266119 A JP2009266119 A JP 2009266119A
Authority
JP
Japan
Prior art keywords
transfer
controller
path
data
controllers
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
JP2008117634A
Other languages
English (en)
Inventor
Hiroshi Hirayama
洋志 平山
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 JP2008117634A priority Critical patent/JP2009266119A/ja
Priority to US12/175,763 priority patent/US7769921B2/en
Publication of JP2009266119A publication Critical patent/JP2009266119A/ja
Priority to US12/833,449 priority patent/US7904616B2/en
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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】アクセス性能を向上させ得るストレージ装置を提供する。
【解決手段】上位装置及び記憶デバイスと接続され、上位装置及び記憶デバイスとのデータの転送を制御するコントローラの複数と、コントローラ同士を接続するデータの転送路と、コントローラと接続され、コントローラを制御する複数のプロセッサとを備え、コントローラは、それぞれ同一又は異なるプロセッサに接続され、第1のプロセッサは、当該転送命令に基づいて、データの転送元となる第1のコントローラ及び当該データの転送先となる第2のコントローラを決定し、第1のコントローラ及び第2のコントローラ間の、転送路に属する経路を判定し、経路が複数あるときに、第2のプロセッサが当該第2のコントローラ以外に接続されているコントローラの数が最大となる経路を特定経路として選択し、経路に沿って、第1のコントローラ及び第2のコントローラ間で前記データを転送する。
【選択図】図14

Description

本発明は、ストレージ装置及びデータ転送方法に関し、特に、キャッシュメモリやホスト、HDD(Hard Disc Drive)ドライブとの各I/O(データ転送経路のことを示す。以下同じ。)を備えるコントローラにより構成されるストレージ装置及びデータ転送方法に関する。
従来、ストレージ装置は、例えば、ホストインターフェイス、キャッシュメモリ、HDDが接続されるドライブインターフェイスと、データ転送を制御するコントローラと、これらを接続するI/O、システム全体の制御を行うマイクロプロセッサを一つの単位(モジュール)として構成し、複数のモジュール間を、専用I/Oで接続することで構成される。各モジュールは、電源供給を独立させ、さらに、ホスト転送データを別モジュールのキャッシュメモリへ二重書きを行うなど、データ消失に対する信頼性向上を図っている(以上の内容は特許文献1を参照。)。
一方、ストレージ装置は、複数のモジュールを接続することで、ホストやHDDドライブを拡張する構成とする場合がある。I/Oによるデータ転送は、転送元から転送先が同一でも経由するモジュール間I/Oの選択が可能な場合がある。従って、ストレージ装置では、各I/Oによる転送状況、障害状況に従い、最適な経路選択(ルーティング)が可能となる。経路選択方法の一例として、ノード間接続、つまりコントローラ間接続の利用状況に応じて重み付けを与え、転送元から転送先の間に含まれるノード間の重み付け総和から、最適経路を選択する方法が特許文献2に開示されている。
特開2005−44010号公報 特開平11−313069号公報
ストレージ装置は、ホストとのI/OやHDDドライブとのI/Oの数を増すことで、拡張性(スケーラビリティ)に対応する。よって、ストレージ装置では、データ転送を制御するコントローラのホストとのI/O、HDDドライブとのI/Oの数を追加することで対応可能である。しかしながら、ストレージ装置におけるリード及びライトは、複数のI/Oにより同時に転送が行われる。従って、ストレージ装置では、I/O数の増加に比例して、コントローラ内で行われるI/Oの切り替え速度(スイッチ帯域)、キャッシュリード、ライト動作に対する帯域の向上が必要となる。特に、大規模なストレージ装置を構成する場合、必要なI/Oの数に対し、スイッチ帯域、キャッシュ帯域の確保が困難となる。つまり、ストレージ装置では、必要な帯域を備えたコントローラ等のデバイスが実現性困難となる。
従って、ストレージ装置では、コントローラ間を接続するモジュール間I/Oの追加で、モジュールを4個、8個と接続し、拡張性に対応する。つまり、ストレージ装置では、マルチコントローラ構成で拡張性に対応する。各コントローラは、I/Oの数に必要なスイッチ帯域、キャッシュ帯域を備えており、インターフェイスに対する転送レートを確保しながら、ストレージ装置に必要なI/Oの数の確保が可能である。
マルチコントローラ構成では、転送先及び転送元のI/Oが同一のコントローラに含まれる場合に限定されず、別のコントローラの場合もある。この場合、データ転送は、コントローラ間に備えたモジュール間I/Oを経由して行われる。ストレージ装置では、複数のコントローラを経由してデータ転送が行われる場合に、複数の転送経路が存在する場合がある。一方で、コントローラ間のモジュール間I/Oは、転送障害や、同一I/Oに複数のコントローラからの転送が集中することによる転送レート低下が発生する。ストレージ装置では、そのようなI/Oを避け、転送に最適な経路選択をすることが望ましい。
経路選択の例として、全てのノード間の重み付けを一元管理しながら、重み付けの総和計算、経路選択を行う方法が特許文献2に開示されている。ここで、ノードは、ストレージ装置におけるコントローラ、コントローラ間のI/Oに相当する。この方法をマルチコントローラ構成のストレージ装置に適用する場合には、次の課題がある。
この場合、インターフェイスに障害発生を考慮した重み付けが必要である。さらに、転送が発生するホストとのI/OやHDDドライブとのI/Oの数の変動により、各ノードの重みは、刻々と変化するため、転送前の経路選択に加え、転送中も経路判定を行うことが必要である。
また、実際のストレージ装置では、1つの制御手段(マイクロプロセッサ等)に対するコントローラ数を制限し、制御手段の処理能力不足による転送性能の低下を回避する。転送中に発生する障害管理は、一つのコントローラに集中させることが望ましいが、上記ストレージ装置では不可能である。従って、マルチコントローラ構成のストレージ装置における障害管理を考慮した転送経路選択が必要となる。
さらに、重み付け要素である障害状況と、転送状況、制御手段が管理するコントローラ数により、転送経路を決定する際には、各要素で重み付けを行い、最適な転送経路の選択を行う必要がある。
本発明は以上の点を考慮してなされたもので、アクセス性能を向上させ得るストレージ装置及びデータ転送方法を提案しようとするものである。
かかる課題を解決するために本発明においては、ストレージ装置であって、上位装置及び記憶デバイスと接続され、前記上位装置及び前記記憶デバイスとのデータの転送を制御するコントローラの複数と、前記コントローラ同士を接続するデータの転送路と、前記コントローラと接続され、前記コントローラを制御する複数のプロセッサとを備え、前記複数のコントローラは、それぞれ同一又は異なるプロセッサに接続され、前記上位装置から転送命令を受信したコントローラに接続されている第1のプロセッサは、当該転送命令に基づいて、データの転送元となる第1のコントローラ及び当該データの転送先となる第2のコントローラを決定し、前記第1のコントローラ及び第2のコントローラ間の、前記転送路に属する経路を判定し、前記経路が複数あるときに、前記第2のコントローラに接続されている第2のプロセッサが当該第2のコントローラ以外に接続されているコントローラの数が最大となる経路を特定経路として選択し、前記複数のプロセッサは、前記特定経路に沿って、前記第1のコントローラ及び第2のコントローラ間で前記データを転送する。
また、本発明においては、ストレージ装置であって、上位装置及び記憶デバイスと接続され、前記上位装置及び前記記憶デバイスとのデータの転送を制御するコントローラの複数と、前記コントローラ同士を接続するデータの転送路と、前記コントローラと接続され、前記コントローラを制御する複数のプロセッサとを備え、前記複数のコントローラは、それぞれ同一又は異なるプロセッサに接続され、前記上位装置から転送命令を受信したコントローラに接続されている第1のプロセッサは、転送元となる第1のコントローラのパケットのヘッダー情報として、当該第1のコントローラ及び転送先となる第2のコントローラの識別情報と、前記第1のコントローラ及び第2のコントローラ間の前記転送路の識別情報と、前記データを転送する際に経由するコントローラの識別情報とを生成する。
さらに、本発明においては、データ転送方法であって、上位装置及び記憶デバイスと接続され、前記上位装置及び前記記憶デバイスとのデータの転送を制御するコントローラの複数と、前記コントローラ同士を接続するデータの転送路と、前記コントローラと接続され、前記コントローラを制御する複数のプロセッサとを備え、前記複数のコントローラは、それぞれ同一又は異なるプロセッサに接続され、前記上位装置から転送命令を受信したコントローラに接続されている第1のプロセッサが、当該転送命令に基づいて、データの転送元となる第1のコントローラ及び当該データの転送先となる第2のコントローラを決定し、前記第1のコントローラ及び第2のコントローラ間の、前記転送路に属する経路を判定し、前記経路が複数あるときに、前記第2のコントローラに接続されている第2のプロセッサが当該第2のコントローラ以外に接続されているコントローラの数が最大となる経路を特定経路として選択し、前記複数のプロセッサが、前記特定経路に沿って、前記第1のコントローラ及び第2のコントローラ間で前記データを転送する。
従って、マルチコントローラ構成のストレージ装置において、転送元から転送先までのデータ転送に複数の経路選択が可能な場合、その選択を適切に行うことができるため、所望のデータに効率的にアクセスさせることができる。
本発明によれば、アクセス性能を向上させ得るストレージ装置及びデータ転送方法を実現することができる。
以下、本発明の一実施の形態を、図面を参照して詳細に説明する。なお、これにより本発明が限定されるものではない。
(1)実施例1
図1は、本発明のストレージ装置100について、第1の実施例を示す装置ブロック図である。図において、コントローラ1(1a〜1d)(CTL 0〜CTL 3)は、キャッシュメモリ4(4a〜4d)(Cache 0〜Cache 3)、ホストインターフェイス2(2a〜2d)(Host I/F 0〜Host I/F 3)、ドライブインターフェイス3(3a〜3d)(Drv I/F 0〜Drv I/F 3)、マイクロプロセッサ5(5a、5b)(MP0,MP1)との間のそれぞれのI/O(データ転送経路のことを示す。以下同じ。)を介したデータ転送を制御するコントローラである。コントローラ1同士は、I/O(デュアルI/O(Dual I/O)、クロスI/O(Cross I/O)により接続されている。
図1においては、コントローラ1a及びコントローラ1bは、クロス0I/O(Cross 0 I/O)により接続されており、コントローラ1a及びコントローラ1cは、デュアル0I/O(Dual 0 I/O)により接続されており、コントローラ1b及びコントローラ1cは、クロス1I/O(Cross 1 I/O)により接続されており、コントローラ1b及びコントローラ1dは、デュアル1I/O(Dual 1 I/O)により接続されており、ループ状アーキテクチャを構成する。デュアルI/O及びクロスI/Oの利用方法の違いについては図4及び図5にて説明する。
ホストインターフェイス2a〜2dは、ホストとの通信プロトコルに従い、パケット単位での転送を制御するホストインターフェイスである。ドライブインターフェイス3a〜3dは、ハードディスクドライブとの通信プロトコルに従い、セクタ単位でデータ転送を制御するドライブインターフェイスである。
さらに、本発明のストレージ装置100は、ホストインターフェイス2a〜2d及びドライブインターフェイス3a〜3dからの転送データを一時的に蓄積するキャッシュメモリ4a〜4dを備える。ストレージ装置100では、キャッシュメモリ4a〜4dを設けることで、ドライブ書き込み時のホスト転送データの消失防止や、キャッシュヒットによるホストリード性能の向上が可能となる。ドライブインターフェイス3a〜3dには、ハードディスクドライブが接続され、ホスト側から見たアクセス空間である論理ボリューム8a〜8d(LU0〜LU3, LU: Logical Unit)が割り当てられる。
マイクロプロセッサ5a、5bは、各コントローラコントローラ1a〜1d、ホストインターフェイス2a〜2d、ドライブインターフェイス3a〜3dの制御手段である。マイクロプロセッサ5a、5bは、メモリコントローラハブ6a、6b(Memory Controller Hub :MCH)を介して、コントローラ1a〜1d及びプロセッサメモリ7a、7b(MP Mem 0, MP Mem 1)と接続されている。例えば、メモリコントローラハブ6aは、コントローラ1a(CTL 0)及びコントローラ1b(CTL 1)と接続されており、マイクロプロセッサ5aは、コントローラ1a、コントローラ1b、ホストインターフェイス2a、ホストインターフェイス2b、ドライブインターフェイス3a、ドライブインターフェイス3bを直接の制御対象とする。また、メモリコントローラハブ6a及び6bは、MPI/O(MP I/O)によりコントローラ1a、1b及びコントローラ1c、1dに接続されている。ストレージ装置100は、以上の要素より構成される。
次に、ストレージ装置100を構成するコントローラ1a〜1dの内部構成を説明する。図2は、コントローラ1a〜1dのブロック図である。図2では、コントローラ1に接続される各I/O(MPI/O、クロスI/O、ホストI/O(Host I/O)、ドライブI/O(Drv I/O)、デュアルI/O)を介したデータ転送方法として、例えば、高速シリアルバス規格であるPCIエクスプレス(PCI-Express)が採用される。
DDRI/F10は、キャッシュメモリ4とコントローラ1間のデータ転送を制御する。この場合、キャッシュメモリ4には、DDR(Double Data Rate Synchronous DRAM)に代表される高速メモリが用いられる。DDRI/F10及びキャッシュメモリ4は、キャッシュI/Oにより接続されている。
PCII/F11a〜11e(PCI I/F)は、物理レイヤー、リンクレイヤー、トランザクションレイヤーの各レイヤーにおける通信プロトコルに従い、データ転送を制御する。トランザクションレイヤーのデータ転送は、TLP(Transaction Layer Packet)形式のパケット単位で行われる。
メモリコントローラ12(MEM CTL)は、キャッシュメモリに対するリード、ライト、RMW(Read Modify Write)、DRAMに対するリフレッシュ動作などDRAM対する各種コマンド発行を制御する。また、メモリコントローラ12は、コントローラ1a内部の高速スイッチ(SW)15と接続されている。
各ブリッジ回路13a〜13e(BRG MP, BRG Cross, BRG D, BRG Dual, BRG D)は、コントローラ1a内部の高速スイッチ15と接続され、転送されたTLPに対する受信バッファ、送信バッファを含むブリッジ回路である。ブリッジ回路13a〜13eは、バッファを備えることで、TLPを構成するヘッダー情報の保持、書き換えが可能であり、コントローラ1内、コントローラ1間のTLP転送に適したパケット変換機能も備える。これについては、図8〜図13にて説明する。
DMA回路14a、14b(D DMA, H DMA)は、ブリッジ回路13e(BRG H)、ブリッジ回路13c(BRG D)と接続されており、転送元の各I/Oを介したリクエスタとして、転送動作を制御する。DMA回路20(Multi DMA)は、マイクロプロセッサ5、キャッシュメモリ4との各I/Oを介した転送を制御する。
高速スイッチ15は、異なるI/Oを介して、同一のI/OへのTLP転送要求(REQ)が発生した場合、アービタ16に従い、各I/Oを介したTLP転送を時分割多重して転送する。
アービタ16は、同時発生のTLP転送要求(REQ)に対し、決められた優先順位に従ったI/O選択命令を生成する。また、アービタ16は、同時発生のTLP転送要求(REQ)の数、或いは、一定時間内にTLP転送要求(REQ)を生成した転送I/O数とある一定時間辺りに発生したTLP転送要求(REQ)回数から転送先のI/O上のTLP多重度を検出する。
トラフィックモニタ17(Traffic Mon.)は、ある一定時間間隔で、転送先のI/O上のTLP転送の占有時間を計測することで、トラフィック量を算出する。トラフィックモニタ17は、例えば、単位時間当たりで、転送元のI/Oを介して、出力のI/Oに接続される時間を計測する。計測は、アービタ16で生成される選択信号を利用したり、高速スイッチ15に、転送先のI/O上を流れるTLP転送の期間に同期して、転送状態を示すステータス検出機能を持たせることで実現する。
ダミー転送モニタ21(Dmy Xfer Mon.)は、コントローラ1内部でダミーデータを伴う転送を検出する機能である。ダミーデータを伴う転送は、受信したTLPデータ量が、受信バッファ量を満たさず、一定時間それ以降の受信がない場合に、ダミーデータを付加して受信バッファ量を強制的に満たし、転送(吐き出し)を行う処理である。
障害モニタ18(障害Mon.)は、特に、コントローラ間I/O(デュアルI/O及びクロスI/O)の障害検出機能を備える。I/O障害は、例えば、ノン・ポステッド(Non-Posted)でTLP転送を行う際に応答(コンプリーションステータス)タイムアウトや、PCIエクスプレスで転送の際に付加されるパリティエラーを受信側で検出した場合などが挙げられる。
MSI・MPI/Fレジスタ19は、各モニタ17、18、21で検出した多重度、トラフィック量、ダミーデータ転送の検出、障害検出を反映し、MPI/Oを介してマイクロプロセッサ5a、5bや、プロセッサメモリ7a、7bに転送する。
ここで、上述した多重度、トラフィック量、ダミーデータ転送検出の具体例について説明する。図3は、各転送元I/O(MP I/O、Host I/O、Drv I/O)介した、転送先I/O(Dual I/O)へのTLP転送、多重化の方法である。
転送元I/O(MP I/O、Host I/O、Drv I/O)のブリッジ回路13a、13c、13e(BRG MP, BRG H, BRG D)は、受信TLPを格納するバッファと、TLP受信間隔を計測するタイマーから構成される。バッファ容量は、例えば、ストレージ装置100を構成するハードディスクドライブのアクセス単位(セクタ)が512バイトに対し、2倍の容量(1024バイト(Byte)、1kバイト)を備える。バッファは、高速スイッチ15で他I/Oと多重する際のオーバーヘッドを最小とするためであり、あるI/Oを介した転送中に、別のI/OのTLP転送を継続するために設けられる。
転送元I/Oに対するブリッジ回路13a、13c、13eは、コントローラ1内レジスタの数バイト単位アクセスから、数Kバイト単位のデータ転送のTLP転送に対応した構成である。ブリッジ回路13a、13c、13eは、TLPの受信でタイマーを起動し、次のTLP受信までの時間間隔を測定する。ブリッジ回路13a、13c、13eは、タイムアウト検出なら、受信TLPにダミーデータを付加することで1kバイトのバッファ容量を強制的に満たし、高速スイッチ15へ転送する。ブリッジ回路13a、13c、13eは、同時に、アービタ16へTLP転送要求(REQ)を出力する。アービタ16は、TLP転送要求(REQ)発生の順に、アクナリッジ(Acknowledge: ACK)を各ブリッジ回路13a、13c、13eへ返す。アービタ16は、TLP転送要求(REQ)が同時発生した場合には、優先順位に従い、ACKを返す。ブリッジ回路13a、13c、13eは、ACKを受信後、バッファ内のデータを転送する。アービタ16は、ACKを返した順に高速スイッチ15に転送されたTLPを時分割多重し、出力I/O上に伝送させる。
アービタ16は、一方で、同時発生のTLP転送要求(REQ)の数、或いは、ある一定時間辺りに発生したTLP転送要求(REQ)の回数から、転送先のI/O上のTLP多重度を検出する。トラフィックモニタ17は、ある一定時間間隔で、出力I/O(Dual I/O)上のTLP占有時間を計測することで、トラフィック量を算出する。ダミー転送モニタ21は、コントローラ1内部でダミーデータを伴う転送を検出する機能であり、ブリッジ回路13a、13c、13eを構成するタイマーのタイムアウト検出に相当する。ダミー転送モニタ21は、一定時間単位でタイムアウト検出回数を計測し、閾値との比較を行う。ダミー転送モニタ21は、閾値との比較で、ダミーデータ転送の頻度を計測することでI/O帯域の浪費を検出可能となる。
次に、I/O帯域の浪費について、図4を用いて説明する。図4では、例えば、MPI/Oにデータ量小のTLPが受信され、ブリッジ回路13a、13c、13eを構成するバッファ量を満たさないまま、ダミーデータと共に転送される場合を示している。ダミーデータは、転送先では無意味なデータであるが、出力I/O上にはデータとして存在するため、I/O帯域の浪費が発生する。ストレージ装置100では、ダミーデータ転送の発生頻度が高い場合、I/O帯域の浪費が増加し、他I/Oの転送レート低下を引き起こすこととなる。
図4では、一例としてMPI/Oを用いて説明したが、ホスト I/O、ドライブ I/Oに接続されるホストインターフェイス2、ドライブインターフェイス3との間のレジスタアクセス等が発生する場合にも、ダミーデータを伴う転送が発生する。従って、図3では、全てのブリッジ回路13a、13c、13eにタイマーとダミーデータ付加機能を備える。
次に、各コントローラ1で検出の多重度、トラフィック量、ダミーデータ検出、障害検出など各ステータスの共有方法を説明する。この場合、マイクロプロセッサ5a(MP 0)は、直接制御するコントローラ1a、1b(CTL 0,CTL 1)、ホストインターフェイス2a、2b(Host I/F 0,1)、ドライブインターフェイス3a、3b(Drv I/F 0,1)に対するステータスや、制御レジスタへのアクセスを、メモリコントローラハブ6a(MCH 0)を介したプロセッサメモリ7a(MP Mem 0)との間のTLP転送や、マイクロプロセッサのレジスタアクセスによって行う(自系(CTL0/1)ステータス)。マイクロプロセッサ5b(MP 1)は、マイクロプロセッサ5aと同様に、コントローラ1c、1d(CTL 2,CTL 3)、ホストインターフェイス2c、2d(Host I/F 2,3)、ドライブインターフェイス3c、3d(Drv I/F 2,3)からのステータスを取得し、プロセッサメモリ7bに更新する(自系(CTL2/3)ステータス)。
ここで、1つのマイクロプロセッサ5から見て、直接制御可能なコントローラ1、ホストインターフェイス2、ドライブインターフェイス3を「自系」と定義し、デュアルI/Oを挟み、反対側にあるコントローラ等を「他系」と定義する。例えば、マイクロプロセッサ5aにおいては、コントローラ1a、1bは「自系」、コントローラ1c、1dは「他系」となり、マイクロプロセッサ5bにおいては、コントローラ1c、1dは「自系」、コントローラ1a、1bは「他系」となる。
一方、各マイクロプロセッサ5は、「他系」のコントローラ1やI/Oのステータスの取得が必要な場合がある。例えば、マイクロプロセッサ5aが、コントローラ1cあるいは1dのステータスや、I/Oを介してホストインターフェイス2c、2d、ドライブインターフェイス3c、3dへアクセスする場合がこれに相当する。
この場合、ストレージ装置100では、マイクロプロセッサ5aが、デュアルI/Oを介して、「他系」のプロセッサメモリ7bから、「自系」のプロセッサメモリ7aにデータ転送を行うことで、ステータスを共有する。また、ストレージ装置100では、マイクロプロセッサ5aが、直接、「他系」のコントローラ1c、1d内のレジスタ、I/Oに対してアクセスすることも考えられる。ここで、ストレージ装置100では、プロセッサメモリ7a、7b間の通信でステータスを共有する場合、転送経路が2種類存在する。そこで、ストレージ装置100では、例えば、ステータス等をプロセッサメモリ7bからプロセッサメモリ7aへ転送する場合には、マイクロプロセッサ5aが、「他系」のコントローラ1c、1dのデュアルI/Oに対する障害、多重度、トラフィック量、ダミーデータ転送検出から、転送に最適なデュアルI/Oを選択する。
なお、MSI・MPI/Fレジスタ19及びマイクロプロセッサ5間の通信は、MPI/O経由の通信に限定されず、例えば、ハードワイヤーで直接マイクロプロセッサ5に接続される割り込み信号や、専用のレジスタI/Fバスを設ける場合も考えられる。ストレージ装置100では、割り込み通知に、MSI(Message Signaled Interrupt)(図示せず)を用いる場合、MPI/Oを経由し、TLPとしてプロセッサメモリ7へ転送する。
次に、図1のストレージ装置100で行われるホスト、HDDドライブ(LU8a)間のデータ転送について説明する。図6は、ホストへのデータ転送(LUリード)の一例として、LU8a(LU 0)を再生し、キャッシュメモリ4a(Cache 0)に書き込み、キャッシュメモリ4aから、各ホストインターフェイス2a〜2d(Host I/F0−3)に転送する場合のデータ転送経路を示している。LU8aのキャッシュメモリ4aへの書き込みは、LU8aが属するコントローラ1a(CTL 0)を制御するマイクロプロセッサ5a(MP 0)が、コントローラ1aのDMA回路14b(D DMA)を起動することで行われる。
キャッシュメモリ4aへの書き込み後、転送先のホストインターフェイス2が属するコントローラ1内のDMA回路14a(H DMA)を、各コントローラ1を制御するマイクロプロセッサ5が起動し、LU8aのデータを転送する。図6では、各ホストインターフェイス2への転送経路(xfer0, xfer1, xfer2, xfer3)を図示している。図6中、転送元(キャッシュメモリ4a)と、転送先(Host I/F 3)が属するコントローラ1dが互いに隣接しない転送(xfer3)では、複数の転送経路が発生する。ここで、デュアルI/O、クロスI/Oで接続されないコントローラ1間の転送経路(xfer3)を「対角経路」と呼ぶことにする)。図6において、コントローラ1c(CTL 2)経由の対角経路xfer3の場合、転送先コントローラ1d(CTL 3)のDMA回路14a(H DMA)を起動し、コントローラ1c、1dを同一のマイクロプロセッサ5b(MP 1)で転送管理する。
一方で、コントローラ1a(LU8aのデータが書き込まれたキャッシュメモリ4a)とコントローラ1cとはデュアル0I/O(Dual 0 I/ O)で接続され、そのI/O障害はコントローラ1c側で受信データの転送タイムアウトにより管理される。従って、転送時の障害把握をマイクロプロセッサ5bで一元管理可能となる。なお、LU8aのデータのキャッシュメモリ4aへの書込みは、図6の一例に限定されず、例えば、転送先のホストインターフェイス3の属するコントローラ1へ転送し、転送先のホストインターフェイス3の属するキャッシュメモリ4に書き込むことも考えられる。この場合も、LU8aからキャッシュメモリ4dまでの伝送経路は、コントローラ1b又はコントローラ1cを経由する経路が存在する。本発明の内容は、この場合にも適用される。
図7は、ホストインターフェイス2aから各LU8へのデータ転送(LU書込み)経路を示している。図7において、ホストインターフェイス2aの受信データは、それぞれが属するコントローラ1aのキャッシュメモリ4aと、デュアル0I/Oを介して対称位置にあるコントローラ1cのキャッシュメモリ4cに二重書きされる。ストレージ装置100では、二重書きによりホストからの転送データの消失を回避することができる。マイクロプロセッサ5aは、二重書き終了後、目的のLU8aが存在するドライブインターフェイス3aへ転送し、LU8aを更新する。マイクロプロセッサ5aは、転送先のコントローラ1aのDMA回路14b(D DMA)で転送を制御する。なお、ホストインターフェイス2aから受信されたデータのキャッシュメモリ4への書き込みは、図7に限定されず、例えば、キャッシュメモリ4bやキャッシュメモリ4dに二重書きする場合も考えられる。
以上、図5〜図7により、コントローラ1間を接続するデュアルI/O、クロスI/O上を通過するI/Oアクセスについて説明する。デュアル0I/O、デュアル1I/Oには、「他系」のプロセッサメモリ7の共有や、「他系」のコントローラ1、ホストインターフェイス2、ドライブインターフェイス3のレジスタへのアクセスに伴う通信(図5)と、ホストからの転送データ二重書き処理(図7)、ホストへの転送時に発生するデータ転送(図6)が多重される。特に、マイクロプロセッサ5や、ホストインターフェイス2、ドライブインターフェイス3のレジスタアクセスは、図4で説明したダミーデータ転送を伴うため、デュアルI/Oは、それらアクセスの発生によって、帯域の浪費が発生しやすいことになる。一方で、クロス0I/O、クロス1I/Oは、コントローラ1間のデータ通信のみに利用されるため、上記問題が発生しない。
次に、図6及び図7で説明したホスト及びLU8間のデータ転送について、コントローラ1、マイクロプロセッサ5で行われる具体的な転送方法を説明する。
図8〜図12は、図1、図6及び図7のストレージ装置100を構成するコントローラ1内、コントローラ1間のデータ転送のみに適用されるTLPフォーマットを示す図である。TLPフォーマットは、PCIエクスプレスのTLP形式に準拠し、さらに、コントローラ1内、コントローラ1間のTLP転送に最適化している。
図8は、転送元からのライトコマンド31を示し、ヘッダー部とライトデータから構成される。図9は、ライトコマンド31に対するステータス応答を必要とするノン・ポステッド(Non-Posted)転送の応答パケット(ライト応答32)であり、ヘッダーとエラーステータスから構成される。図10は、リードコマンド33を示し、ヘッダーのみで構成される。図11は、リードコマンドに対するリード応答34(コンプリーション)であり、ヘッダーと転送元(コンプリータ)からの転送データより構成される。
図12は、各コマンドのヘッダー構成ビットに対し、コントローラ1内、コントローラ1間のTLP転送に最適化した部分を示す。図12において、TLPフォーマット(31〜34)には、データの転送元を示すコンプリータIDとデータの転送先を示すリクエスタIDに含める情報として、コンプリータ、或いは、リクエスタが属するコントローラを識別するLSI番号や、リクエスタ、或いは、リクエスタが接続されるI/Oを識別するFunc.(Function)番号が与えられる。さらに、TLPフォーマット(31〜34)には、図6における転送経路(xfer3)の対角経路選択に対応する目的で、リクエスタ、コンプリータがそれぞれ属するコントローラ1に挟まれた経由コントローラを識別するルートID1、ルートID2が与えられる。なお、コンプリータID、リクエスタID、ルートID1及びルートID2は、マイクロプロセッサ5により付与される。
ルートID1には、コントローラ1a〜1dのコントローラ番号(0〜3)が与えられる。しかしながら、図6の転送経路(xfer 0-2)や、図7の転送経路(xfer 0-3)の各経路識別のため、0〜3以外のコード値は、無効、つまり、経由するコントローラ1がないことを示す。ルートID2は、例えば、経由するコントローラ1におけるデータの転送元、つまり、コントローラ1への入力I/O(デュアルI/O又はクロスI/O)を規定する。ルートID2では、逆に、転送先、つまりコントローラ1からの出力I/Oの規定も考えられる。タグ(Tag)番号は、例えば、あるリード命令に対し、そのTLPに含まれるタグ番号を、全てのリード応答34に引継ぎ、リクエスタ要求に対する応答パケットの識別に用いる。
なお、図8〜図12は、全てPCIエクスプレスのTLPフォーマットに準拠しており、その他ヘッダーを構成する各ビットについての説明は省略する。
また、コントローラと接続されるI/O(Host I/O, Drv I/O, MP I/O)間のTLP転送には、以上説明したTLPヘッダーは適用されない。当該TLP転送には、PCIエクスプレスのTLPフォーマットに完全に準拠したフォーマットが適用され、転送互換性を維持する。TLP互換については、図13で説明する。
図13は、図8〜図12で説明したTLP形式で行われるコントローラ1内、コントローラ1間のデータ転送の説明図であり、一例として、図6における転送経路(xfer 3)(コントローラ2経由の転送)に適用した場合を示している。つまり、図13は、ホストインターフェイス2c(H0st I/F 3)にリード命令が受信され、キャッシュメモリ4a(Cache 0)にLU8a(LU 0)のデータを書込み、コントローラ2b(CTL 2)経由でキャッシュデータのホストインターフェイス2cへの転送を行う場合である。
図13において、ホストインターフェイス2cよりリード命令を含むTLPが受信されると、コントローラ1dを管理するマイクロプロセッサ5b(MP 1)は、受信TLPから転送命令を解析し、再生するLU8を検索する(LU検索は、図14を用いて後述する)。一方、コントローラ1dのブリッジ回路13e(BRG H)においてヘッダーを一時退避する。ヘッダー退避は、例えば、ブリッジ回路13eを構成するバッファからヘッダー部分をプロセッサメモリ7bへ転送することで行われる。
マイクロプロセッサ5bは、LUサーチ後、DMA回路14b(D DMA)の起動で再生LU8aのデータをキャッシュメモリ4aに格納する。一方、マイクロプロセッサ5bは、退避したリード命令に対するヘッダー情報を、リード命令を受信したI/Oと、コントローラ1cの番号(3)に対応したリクエスタIDに変換する。さらに、マイクロプロセッサ5bは、タグ番号を含む引き継がれるヘッダー情報も、プロセッサメモリ7bを介してコントローラ1aのメモリコントローラ12に転送する。
つまり、マイクロプロセッサ5bは、リード命令に対するコンプリーションステータス(Cpl STS)に、転送先を示すコンプリータIDのLSI番号としてコントローラ1cの番号(3)を与え、転送先I/Oとしてホストインターフェイス2を示すDMA回路14a(HDMA)(0x13)を与える。また、マイクロプロセッサ5bは、リクエスタIDのLSI番号としてコントローラ1aの番号(0)を与え、転送元I/Oとしてキャッシュを示すメモリコントローラ12(0x05)を与える。マイクロプロセッサ5bは、タグ番号を継承する。さらに、マイクロプロセッサ5bは、ルーティング結果に基づき、経由コントローラ番号、I/O(Route ID 1-2)を格納する。図13の場合、コントローラ1c経由であるため、コントローラ1cにおける入力は、デュアルI/Oであり、ルートID1にコントローラ1cの番号(2)、ルートID2にデュアルI/Oの番号(0x01)を格納する。ルーティングについては、図14以降で説明する。
マイクロプロセッサ5bは、コントローラ1aでのコンプリーションステータス転送準備が完了すると、転送先のコントローラ1cのDMA回路14a(H DMA)を起動し、TLP単位でキャッシュデータ転送を制御する。コントローラ1aのメモリコントローラ12(MEM CTL)では、ルートID1、ルートID2により、高速スイッチ15に対し、転送先I/Oへのデータ転送を要求する。コントローラ1aのメモリコントローラ12では、ルートID2が「0x01」であることから、転送先I/OとしてデュアルI/Oへの転送を要求し、コントローラ1a(CTL 0)からコントローラ1c(CTL 2)へのTLP転送を行う。
コントローラ1cにおいて、デュアル0I/O経由でTLPを受信したブリッジ回路13d(BRG Dual)は、ルートID1が「0x02」であることを検出し、自己のコントローラ番号(2)との一致を検出して、経由コントローラであることを識別する。ブリッジ回路13dは、その認識結果と、ルートID2が「0x01」であることと、入力が「デュアルI/O」であることから、コントローラ1間のI/Oであるクロス1I/Oを転送先I/Oとして認識する。さらに、ブリッジ回路13dは、高速スイッチ15に対し、転送先I/O(クロス1I/O)へのデータ転送を要求し、コントローラ1cのクロス1I/Oに接続されるコントローラ1d(CTL 3)に転送する。
コントローラ1dにおいて、クロス1I/O経由でTLPを受信したブリッジ回路13b(BRG Cross)は、コンプリータIDから、コントローラ識別情報である「0x03」を検出する。さらに、ブリッジ回路13bは、自己のコントローラ番号との一致を検出し、コンプリーションステータスの受信コントローラであることを識別する。また、ブリッジ回路13bは、転送先I/OがDMA回路14a(H DMA)(0x13)であることから、ホストI/Oを転送先として認識する。そして、ブリッジ回路13bは、高速スイッチ15に対し、ホストI/Oへのデータ転送を要求、ホストインターフェイス2d(Host I/F 3)へTLP転送する。一方、ブリッジ回路13e(BRG H)は、リードコマンド受信時に保持しておいたタグ番号と転送TLPに対するタグ番号との比較を行い、一致したものに対し、受信時のヘッダーに付け替え、外部I/Oの応答用コンプリーションステータスに変換する。
以上より、コントローラ1間の転送は、図8〜図12のTLPフォーマットを用い、外部I/O間の転送は、TLPヘッダー付け替えでPCIエクスプレスに完全に準拠したTLPを用い、データ転送が行われる。
次に、図6で説明したデータ転送制御について、図14のフローチャートを用いて説明する。図14では、コマンド受信、再生LUの検索から、データ転送経路選択の要否判定、経路選択処理、データ転送までの制御を示す。図14のフローチャートは、マイクロプロセッサ5がコントローラ1等を制御することで成し遂げられる。まず、マイクロプロセッサ5は、ホストからの転送命令をホストインターフェイス2により受信する(S801)。続いて、転送命令を受信したホストインターフェイス2を制御するマイクロプロセッサ5は、転送命令の受信をホストインターフェイス2、或いは、コントローラ1からの割り込み(MSI)を介して検知する。さらに、マイクロプロセッサ5は、受信した転送命令をプロセッサメモリ7に転送し、命令を解析する(S802)。
次に、S803からS807の範囲で行われるLU検索、キャッシュ書込み処理を説明する。続いて、マイクロプロセッサ5は、S802の処理後、LU再生命令を検出し、「自系」のコントローラ1で管理するLU8を検索する(S803)。そして、マイクロプロセッサ5は、再生目的のLU8が検出された場合(S803:検出)、S806にジャンプし、再生LU8が属するコントローラ1のDMA回路14b(D DMA)を起動し、キャッシュメモリ4へ再生LU8のデータを書き込む。
これに対して、マイクロプロセッサ5は、S803で該当LU8がない場合(S803:該当なし)、「他系」のマイクロプロセッサ5へ処理を引き継ぐ(S804)。具体的には、「自系」のプロセッサメモリ7内の受信コマンドを、「他系」のプロセッサメモリ7に転送する。「他系」のマイクロプロセッサ5は、自己の管理するLU8を検索し、再生LUを検出し(S805)、再生LU8が属するコントローラ1のDMA回路14b(D DMA)を起動し、キャッシュメモリ4へ再生LU8のデータを書き込む(S806)。
図6の例では、転送命令を受信したホストインターフェイス2d(Host I/F 3)を制御するマイクロプロセッサ5b(MP 1)は、管理するLU8c、8d(LU 2, LU 3)の範囲内でLU8a(LU 0)を検索する。続いて、マイクロプロセッサ5bは、結果該当LU8aがないため、マイクロプロセッサ5a(MP 0)に処理を引き継ぎ、マイクロプロセッサ5aが管理するLU8a、8b(LU 0, LU 1)の範囲内でLU8aの検索を行う。そして、マイクロプロセッサ5aは、検索の結果、LU8aを検出し、キャッシュメモリ4(Cache 0)への書き込みを制御する。
最後に、マイクロプロセッサ5は、S807で再生LU8のキャッシュメモリ4への書込み完了を、ステータスとしてマイクロプロセッサ5間で共有する。ステータスの共有方法については、図5で説明の方法が適用される。
なお、マイクロプロセッサ5別に管理されるLU情報は、プロセッサメモリ7やキャッシュメモリ4の一部を用いて、共有する場合も考えられる。従って、LU検索処理(S803〜S805)は、単独のマイクロプロセッサ5で行うこともできる。
続いて、マイクロプロセッサ5は、再生LU8のキャッシュメモリ4への書込み後、キャッシュメモリ4から転送先までの経路選択可否を判定する(S808)。図6の転送経路(xfer 0, xfer 1, xfer 2)は、経路上に障害が発生しない限り、最適経路は一意に決まる。しかしながら、転送経路(xfer 3)は、経路長、つまり、通過するコントローラ1の数が同一であり、転送経路が複数存在することから、各コントローラ1の動作状態の変化に応じて、最適な転送経路の選択が可能である。
続いて、マイクロプロセッサ5は、S808の経路選択可否判定の際において、再生LU8のデータが書き込まれたキャッシュメモリ4、転送命令を受信したホストインターフェイス2それぞれが属するコントローラ情報を、プロセッサメモリ7で共有している。そして、マイクロプロセッサ5は、例えば、キャッシュメモリ4a(Cache 0)と、ホストインターフェイス2d(Host I/F 3)について、コントローラ1同士が隣接せず、対角位置であることから、転送経路が「xfer 3」と判定し、転送経路の選択処理を行う(S808:YES)。
続いて、マイクロプロセッサ5は、S809、S80Aのルーティング判定1、2を順に行い、コントローラ障害や、コントローラ間I/Oの多重度、トラフィック量、ダミーデータ転送検出から、最適な転送経路を判定する(S809、S80A)。マイクロプロセッサ5は、転送を行う際には、図8〜図13で説明したコンプリーションステータス(TLPフォーマット)の生成方法、DMA起動による転送方法に従い、キャッシュメモリ4上の再生LU8のデータを転送する(S80B)。
これに対して、マイクロプロセッサ5は、S808で経路選択が不要の場合(S808:NO)(図6の転送経路の「xfer 0, xfer 1, xfer2」)、S80Bの処理に移行する(S80B)。なお、マイクロプロセッサ5は、S80B実行前にS809を実行し、経路上のI/Oに障害がある場合に対応する場合も考えられる。
最後に、マイクロプロセッサ5は、コンプリーションステータス転送中にも、S809及びS80A相当の処理であるS80Cのルーティング判定3を行い、変化するコントローラ1の状態に応じて最適な経路選択を行う(S80C)。
具体例として、図6の転送経路が「xfer 3」を図14のフローチャートに適用した場合を説明する。図6、図14において、マイクロプロセッサ5b(MP 1)は、ホストインターフェイス2d(Host I/F 3)により転送命令を受信する(S801)。続いて、マイクロプロセッサ5bは、転送命令を、ホストインターフェイス2dを制御するプロセッサメモリ7b(MP Mem 1)に転送する。
続いて、マイクロプロセッサ5bは、命令内容の解析を行い、再生LU8aを検出する(S802)。この場合、マイクロプロセッサ5bは、当該マイクロプロセッサ5bの管理LUがLU8c、8d(LU 2, LU 3)であり、該当なしと判断する(S803:該当なし)。続いて、マイクロプロセッサ5bは、「他系」のマイクロプロセッサ5a(MP 0)へ処理を引き渡す(S804)。
続いて、マイクロプロセッサ5aは、当該マイクロプロセッサ5aの管理LUがLU8a、8b(LU 0, LU 1)であり、再生LU8aを検出する(S805)。続いて、マイクロプロセッサ5aは、コントローラ1a(CTL 0)のDMA回路14b(D DMA)を起動し、再生LU8aのデータをキャッシュメモリ4a(Cache 0)へ書き込む(S806)。続いて、マイクロプロセッサ5aは、キャッシュメモリ4aの再生LU8aのデータの書込み終了ステータスを、プロセッサメモリ7a、7b(MP Mem 0, MP Mem 1)で共有する(S807)。
続いて、マイクロプロセッサ5aは、キャッシュメモリ4aと転送命令を受信したホストインターフェイス2dを対角位置と判断し(S808:YES)、S809の移行の処理を行い、最適な転送経路である「xfer 3」の選択を行う(ルーティング判定1(S809)、ルーティング判定2(S80A))。続いて、マイクロプロセッサ5aは、キャッシュメモリ4aから再生LU8aのデータの転送を行う(S80B)。続いて、マイクロプロセッサ5aは、S80Cにより、最適な転送経路の選択を常に行う(ルーティング判定3(S80C))。
次に、S809のルーティング判定1について説明する。図15のフローチャートは、コントローラ1の障害状況に応じた経路判定方法を示している。特に、経路選択に関係の深い各コントローラ間I/O(デュアルI/O及びクロスI/O)の障害に対する判定方法である。マイクロプロセッサ5は、S901にて、各コントローラ間I/O(デュアルI/O及びクロスI/O)の障害状況を取得し、各プロセッサメモリへの書込みで全てのコントローラ間I/Oの障害状況を共有する。障害検出方法の一例として、ノンポステッド(Non-Posted)転送される応答パケットの受信でタイムアウトが発生した場合や、ストレージ装置起動の際に行われるI/Oの自己診断で、コントローラ1間の通信不良が検出された場合などが挙げられる。
続いて、マイクロプロセッサ5は、S902において、共有している障害情報から「自系」のコントローラ1におけるコントローラ間I/O障害の有無を確認する。例えば、「自系」のマイクロプロセッサ5bは、図6の「xfer 3」の場合、コントローラ1c、1dのコントローラ間I/O障害を確認する(デュアル0I/O、クロス1I/O)。続いて、「自系」のマイクロプロセッサ5bは、コントローラ間I/O障害が無い場合(S902:NO)、コントローラ1c経由を選択する(S903)。
これにより、ストレージ装置100では、「xfer 3」の選択経路に対する障害管理が、転送先であるホストインターフェイス2dを制御するマイクロプロセッサ5bで一元管理可能となる。つまり、ストレージ装置100では、転送元直後のコントローラ間I/Oから、転送先のコントローラ間I/Oまで唯一のマイクロプロセッサ5bで管理されるため、障害発生を速やかに把握することができる。障害は、プロセッサメモリ7で共有することも考えられるが、デュアルI/Oで障害発生の場合には、共有不可能である。従って、S902からS903の優位性が理解される。
続いて、マイクロプロセッサ5は、S902でコントローラ間I/O障害発生の場合(S902:YES)、S904において、「他系」のコントローラ1のコントローラ間I/O障害を確認する(S904)。具体的に、S902では、「自系」のマイクロプロセッサ5bが、デュアル0I/O、クロス1I/Oを判定し、コントローラ1c経由の可否を判定する(S902)。S904では、「他系」のマイクロプロセッサ5aが、デュアル1I/O、クロス0I/Oを判定し、コントローラ1b経由の可否を判定する(S904)。
そして、マイクロプロセッサ5は、S904で障害検出した場合(S904:YES)、経路確保が不可能と判断する(S905)。最後に、マイクロプロセッサ5は、S901からのリトライを判断する(S906)。そして、マイクロプロセッサ5は、リトライ回数を超えた場合や、リトライ処理を行わない場合(S906:NO)、エラー終了とする。これに対して、マイクロプロセッサ5は、S904でコントローラ間I/O障害が無いと判断した場合(S904:NO)、コントローラ1b経由を選択する(S907)。
次に、S80Aのルーティング判定2について説明する。図16のフローチャートは、図2、図3で説明したコントローラ間I/Oの多重度、トラフィック量、ダミーデータ検出に基づいた転送経路の選択方法を示している。
マイクロプロセッサ5は、S101において、ルーティング判定1(S809)の結果から、各コントローラ間I/O障害の有無を確認する。そして、マイクロプロセッサ5は、障害I/Oが有る場合(S101:YES)、経路選択は不可能であり、ルーティング判定1の結果を、最終判定結果とする(S102)。また、マイクロプロセッサ5は、各コントローラ間I/O障害が無く、ルーティング判定1(S809)の結果を優先する場合にも適用され(S101:YES)、ルーティング判定1の結果を、最終判定結果とする(S102)。つまり、ストレージ装置100では、ルーティング判定1(S809)のS903による経路判定が行われた場合に相当するため、このような場合、前述のように転送経路の障害管理に有利である。
これに対して、マイクロプロセッサ5は、S101からS103に遷移の場合(S101:NO)、各コントローラ間I/O(デュアルI/O及びクロスI/O)に対する多重度、トラフィック量、ダミーデータ検出の各ステータス情報を取得する(S103)。各情報は、プロセッサメモリ7への共有や、コントローラ1内のMSI・MPI/Fレジスタ19から直接取得する。続いて、マイクロプロセッサ5は、S104からS106において、取得したステータス情報から経路判定を行う。
マイクロプロセッサ5は、最初の判定条件として、デュアルI/Oにおけるダミーデータ転送から判定する(S104)。さらに、マイクロプロセッサ5は、S104でダミーデータ転送検出がある場合(S104:YES)、S108において、ダミーデータ転送の発生I/Oを判定し(デュアル0I/O又はデュアル1I/O)、ダミーデータ転送の無いデュアルI/Oに対する経路を選択する(S108)。マイクロプロセッサ5は、図6の「xfer 3」適用の場合、例えば、デュアル0I/Oにダミーデータ転送を検出の場合、デュアル1I/O経由、つまりコントローラ1b経由を選択する。
なお、マイクロプロセッサ5は、デュアル0I/O及びデュアル1I/Oが共にダミーデータ転送を検出の場合、ステータス情報の更新、取得を繰り返し、検出頻度の低いデュアルI/Oの経路を選択する。もしくは、マイクロプロセッサ5は、S105以降の判定に委ねるようにすることも考えられる。
これに対して、マイクロプロセッサ5は、S104でダミーデータ転送検出がない場合(S104:NO)、S105において、デュアル0I/O及びデュアル1I/Oのパケット多重度を比較する(S105)。そして、マイクロプロセッサ5は、多重度に差が発生の場合(S105:YES)、S108に処理を移し、多重度が小さいデュアルI/Oを選択する(S108)。これにより、マイクロプロセッサ5は、高速スイッチ15で多重化の際に発生するオーバーヘッドの転送への影響に配慮した経路選択を行うことができる。
これに対して、マイクロプロセッサ5は、S105において多重度に差が無い場合(S105:NO)、S106において、デュアル0I/O及びデュアル1I/Oのトラフィック量から判断する(S106)。そして、マイクロプロセッサ5は、トラフィック量に差が発生の場合(S106:YES)、S108において、トラフィック量が小さいデュアルI/Oを選択する(S108)。これにより、マイクロプロセッサ5は、トラフィック量、つまり、デュアルI/Oに対する転送帯域に余裕がある転送経路の選択を行うことができる。
以上より、マイクロプロセッサ5は、デュアルI/Oによる経路判定について、S104(ダミーデータ転送の有無)に最大の重み付けを与え、次に、S105(多重度の差)、S106(トラフィック量の差)の順に重み付ける。S106によりもS105に重み付けを与える(多重度優先)理由は、パケット多重化により発生する転送オーバーヘッド増加が、転送効率の低下、つまり、デュアルI/Oの帯域を浪費するためである。
これに対して、マイクロプロセッサ5は、S106においてトラフィック量の差が無い場合(S106:NO)、S107において、クロスI/Oにおける同様のステータス情報(多重度、トラフィック量等)から、クロス0I/O又はクロス1I/O経由を判断する(S107)。この場合、マイクロプロセッサ5は、S107における判定の優先順位について、S105からS106と同様、「(多重度)>(トラフィック量)」の重み付けを与える。
また、クロスI/Oは、デュアルI/Oのようなプロセッサアクセス、キャッシュ二重書きも無いため、帯域の浪費は発生しない。従って、マイクロプロセッサ5は、経路選択を行う際には「(Dual I/O)>(Cross I/O)」とし、デュアルI/Oに重み付けをおいた判定を行う。
以上より、マイクロプロセッサ5は、上記において説明したルーティング判定1(図15)及びルーティング判定2(図16)を順番に行うことで、図6の「xfer 3」の経路選択を最適に行うことが可能となる。
次に、S80Cのルーティング判定3についてについて説明する。図17のフローチャートは、図14のS80Bの起動後で、ステータス情報の変化が発生した場合の制御方法を示している。マイクロプロセッサ5は、S80B起動後、まず、各コントローラ1に対するステータス情報からデュアルI/O及びクロスI/Oの障害有無を判定する(S111)。マイクロプロセッサ5は、障害発生の場合(S111:YES)、図15のルーティング判定1を行う(S112)。続いて、マイクロプロセッサ5は、S113にて障害が発生したデュアルI/O及びクロスI/Oを回避したルーティングが可能な場合(S113:NO)、S115に進む一方、当該ルーティングが不可能な場合(S113:YES)、エラー終了する。
これに対して、マイクロプロセッサ5は、S111で障害が無い場合(S111:NO)、図16のルーティング判定2を行う(S114)。続いて、マイクロプロセッサ5は、S115において、S114或いはS112〜S113の判定結果から、前回のルーティング結果と比較する(S115)。
そして、マイクロプロセッサ5は、差異が無い場合(S115:NO)、S111に遷移し、以降の処理を継続する(S111〜S115)。これに対して、マイクロプロセッサ5は、差異発生の場合(S115:YES)、転送を一時停止するか否かを判定し(S116)、一時停止の場合(S116:YES)、S117にて、DMA回路14を一時停止し、新しい転送経路の選択を、コンプリーションステータスにおけるルートID1、ルートID2を付け替えることで行い、DMA回路14を再起動する(S117)。続いて、マイクロプロセッサ5は、S116で転送一時停止をしない場合(S116:NO)、判定3を終了し、受信命令に対する転送終了まで、経路を維持したまま転送する。
以上より、マイクロプロセッサ5は、転送途中においても、コントローラ1の動作状況の変化に応じて経路を最適化することが可能となる。
(2)実施例2
図18は、本発明のストレージ装置100の別の構成例を示している。図18の本実施例におけるストレージ装置100では、図1のストレージ装置100の構成におけるコントローラ1a〜1dの代わりに、メモリコントローラハブ(Memory Controller Hub :MCH)6a〜6dに、ホストインターフェイス2a〜2d、ドライブインターフェイス3a〜3dを接続する。また、キャッシュメモリ4a〜4dは、マイクロプロセッサ5a〜5dに接続され、プロセッサメモリ7a、7b(MP Mem)は、キャッシュメモリ4a〜4dに統合される。なお、プロセッサメモリ7は、統合されることに限らず、マイクロプロセッサ5a〜5d上の別I/Oに接続されることも考えられる。
さらに、本実施例におけるストレージ装置100では、メモリコントローラハブ6間のTLP転送を制御する目的で、MCHブリッジ22a〜22dを備える。メモリコントローラハブ6間の接続は、図1と同様、メモリコントローラハブ6a及びメモリコントローラハブ6bをクロス0I/Oで接続し、メモリコントローラハブ6a及びメモリコントローラハブ6cをデュアル0I/Oで接続し、メモリコントローラハブ6b及びメモリコントローラハブ6dをデュアル1I/Oで接続し、メモリコントローラハブ6c及びメモリコントローラハブ6dをクロス1I/Oで接続する。なお、本実施例におけるストレージ装置100では、その他の構成は図1と同様であり、同一の参照数字をつけ説明を省略する。
図18の構成に対するデータ転送の一例として、LU8aからホストインターフェイス2dへのデータ転送を示している。これは、図6の「xfer 3」と同様の転送であり、転送経路が2種類存在することを示している。従って、実施例1と同様、最適な転送経路の選択が必要となる。
この場合、マイクロプロセッサ5は、最適経路選択の際には、第1の実施例と同様、最初に、各マイクロプロセッサ5の制御対象であるメモリコントローラハブ6の間のI/O障害を判定する。マイクロプロセッサ5は、メモリコントローラハブ6とMCHブリッジ22より全てのメモリコントローラハブ間I/Oに対する障害の有無を検出する。マイクロプロセッサ5は、取得したメモリコントローラハブ間I/Oの障害情報より、障害の無い経路選択を行う。
一方、マイクロプロセッサ5は、実施例1の図3で説明したダミーデータ転送、I/O多重度、トラフィック量それぞれの検出を、例えば、メモリコントローラハブ6内に同様の回路を設けることで、行うことができる。トラフィック量の検出については、MCHブリッジ22に含めることも可能である。マイクロプロセッサ5は、メモリコントローラハブ6、MCHブリッジ22から得られる検出情報を用い、図16で説明した方法に従い、経路選択を行う。
メモリコントローラハブ6間を流れるTLPについては、図8〜図12のヘッダー構成を用いることで、選択した転送経路に従ったパケット転送が可能となる。具体的に、メモリコントローラハブ6間を流れるTLPについては、第1の実施例と同様、コントローラ番号を、転送元、転送先、経由するメモリコントローラハブ6の識別情報、転送に利用するI/Oの識別情報に置き換えることで対応可能である。
図13で説明のパケットヘッダの付け替えについては、同様の要領でメモリコントローラハブ6にて行われる。
図8〜図12のヘッダー構成を備えるTLP転送は、メモリコントローラハブ6間のI/Oに限定して行う。マイクロプロセッサ5、ホストインターフェイス2、ドライブインターフェイス3への転送時は、メモリコントローラハブ6間を転送したTLPが到着後、各I/Oにおける転送命令受信時に保持したヘッダーに付け替えを行うことで、TLP互換性を維持する。
このようにして、ストレージ装置100では、マイクロプロセッサ5が、ホストから受信した転送命令を解析することにより、データの転送経路を判定し、データの転送経路が複数存在するときに、転送先の転送経路に接続されているコントローラ1を制御するマイクロプロセッサ5について、当該マイクロプロセッサ5に接続されているコントローラ1の数が最大となるデータの転送経路を選択して、当該転送経路を介してデータを転送する。
従って、コントローラ1を複数有するマルチコントローラ構成のストレージ装置において、転送元から転送先までのデータ転送に複数の経路選択が可能な場合、その選択を適切に行うことができるため、所望のデータに効率的にアクセスさせることができる。
本発明は、キャッシュメモリやホスト、HDDドライブとの各I/Oを備えるコントローラにより構成されるストレージ装置に広く適用することができる。
本発明が適用されるストレージ装置の構成図である。 ストレージ装置を構成するコントローラの内部構成図である。 I/Oポートに対する多重度、トラフィック量、ダミー転送検出の説明図である。 I/Oポートに対する多重度、トラフィック量、ダミー転送検出の説明図である。 ストレージ装置におけるマイクロプロセッサ管理のコントローラ割当とプロセッサメモリによるステータス共有方法を示す説明図である。 ストレージ装置におけるデータ転送経路の説明図である。 ストレージ装置におけるデータ転送経路の説明図である。 コントロール内、コントロール間のデータ転送に用いられるパケットフォーマットの説明図である。 コントロール内、コントロール間のデータ転送に用いられるパケットフォーマットの説明図である。 コントロール内、コントロール間のデータ転送に用いられるパケットフォーマットの説明図である。 コントロール内、コントロール間のデータ転送に用いられるパケットフォーマットの説明図である。 コントロール内、コントロール間のデータ転送に用いられるパケットフォーマットの説明図である。 コントロール内、コントロール間のパケットデータ転送例に対する説明図である。 本発明のデータ転送方法のメインルーチンを説明するフローチャートである。 コントローラ障害発生時に適用されるルーティング方法を説明するフローチャートである。 コントローラ間I/Oのパケット多重度、トラフィック量、ダミー転送検出の各状況からルーティング判定の方法を説明するフローチャートである。 データ転送中に行われるルーティング判定の方法を説明するフローチャートである。 本発明が適用されるストレージ装置の第2の構成図である。
符号の説明
1……コントローラ、2……ホストインターフェイス、3……ドライブインターフェイス、4……キャッシュ、5……マイクロプロセッサ、6……メモリコントローラハブ、7……プロセッサメモリ、8……LU、10……DDRメモリインターフェイス回路(DDRI/F)、11……PCIインターフェイス回路(PCII/F)、12……メモリコントローラ、13……I/Oブリッジ回路、14……DMA回路、15……高速スイッチ、16……アービタ、17……トラフィックモニタ、18……障害モニタ、19……MSI・MPI/Fレジスタ、20……ダミーマルチDMA回路、21……ダミー転送検出回路、22……MCHブリッジ、100……ストレージ装置

Claims (14)

  1. 上位装置及び記憶デバイスと接続され、前記上位装置及び前記記憶デバイスとのデータの転送を制御するコントローラの複数と、
    前記コントローラ同士を接続するデータの転送路と、
    前記コントローラと接続され、前記コントローラを制御する複数のプロセッサと
    を備え、
    前記複数のコントローラは、
    それぞれ同一又は異なるプロセッサに接続され、
    前記上位装置から転送命令を受信したコントローラに接続されている第1のプロセッサは、
    当該転送命令に基づいて、データの転送元となる第1のコントローラ及び当該データの転送先となる第2のコントローラを決定し、
    前記第1のコントローラ及び第2のコントローラ間の、前記転送路に属する経路を判定し、
    前記経路が複数あるときに、前記第2のコントローラに接続されている第2のプロセッサが当該第2のコントローラ以外に接続されているコントローラの数が最大となる経路を特定経路として選択し、
    前記複数のプロセッサは、
    前記特定経路に沿って、前記第1のコントローラ及び第2のコントローラ間で前記データを転送する
    ことを特徴とするストレージ装置。
  2. 前記複数のコントローラは、
    2の倍数であり、かつ、4つ以上の数のコントローラであり、
    前記複数のプロセッサは、
    2の倍数であり、かつ、2つ以上の数のプロセッサであると共に、前記コントローラの数よりも少ない数のプロセッサであり、1つの前記プロセッサに対して、前記コントローラの数を前記プロセッサの数で割った数のコントローラが接続されている
    ことを特徴とする請求項1に記載のストレージ装置。
  3. 前記コントローラは、
    前記転送路を介するデータ転送において、転送タイムアウト又はデータ転送の際に付加されるパリティに基づいて、前記転送路の通信エラーの障害情報を検出し、
    前記第1のプロセッサは、
    前記通信エラーの障害情報が検出されたときに、前記通信エラーの障害情報が検出されていない別の前記転送路を含む経路を特定経路として選択する
    ことを特徴とする請求項1に記載のストレージ装置。
  4. 前記コントローラは、
    前記転送路を介するデータ転送の転送パケットに対して、無効なデータが含まれるパケット転送を検出することにより、前記接続路の帯域の浪費を検出し、
    前記第1のプロセッサは、
    前記転送路の帯域の浪費が最小の前記転送路を含む経路を特定経路として選択する
    ことを特徴とする請求項1に記載のストレージ装置。
  5. 前記コントローラは、
    転送先となる前記第2のコントローラが同一であり、かつ、複数の接続先から転送される転送パケットが時分割多重されているときに、前記転送路に出力される際の転送パケットの多重度を検出し、
    前記第1のプロセッサは、
    前記転送路に対する多重度が最小の前記転送路を含む経路を特定経路として選択する
    ことを特徴とする請求項1に記載のストレージ装置。
  6. 前記コントローラは、
    転送先となる前記第2のコントローラが同一であり、かつ、複数の接続先から転送される転送パケットが時分割多重されているときに、前記転送路に出力される際の転送パケットの多重度を検出し、
    前記第1のプロセッサは、
    前記転送路の帯域の浪費に差異がないときに、前記転送路に対する多重度が最小の前記転送路を含む経路を特定経路として選択する
    ことを特徴とする請求項4に記載のストレージ装置。
  7. 前記コントローラは、
    前記転送路を介するデータ転送において、転送タイムアウト又はデータ転送の際に付加されるパリティに基づいて、前記転送路の通信エラーの障害情報を検出し、
    前記第1のプロセッサは、
    前記特定経路を選択する際、前記通信エラーの障害情報が検出されたときに、前記通信エラーの障害情報が検出されていない別の前記転送路を含む経路を特定経路として最優先に選択する
    ことを特徴とする請求項6に記載のストレージ装置。
  8. 前記コントローラは、
    前記特定経路に沿って、前記データの転送を開始した後に、前記転送路の通信エラーの障害情報を検出する
    ことを特徴とする請求項3に記載のストレージ装置。
  9. 前記コントローラは、
    前記通信エラーの障害情報が検出されなかったときに、前記転送路を介するデータ転送の転送パケットに対して、無効なデータが含まれるパケット転送を検出することにより、前記転送路の帯域の浪費を検出し、
    前記第1のプロセッサは、
    前記転送路の帯域の浪費が最小の前記転送路を含む経路を特定経路として改めて選択し、
    前記データの転送を開始した前記特定経路と、改めて選択した特定経路とが不一致のときに、前記データの転送を停止し、前記改めて選択した特定経路を選択し、
    前記複数のプロセッサは、
    前記改めて選択した特定経路に沿って、前記データの転送を再開する
    ことを特徴とする請求項8に記載のストレージ装置。
  10. 前記コントローラは、
    前記転送路の帯域の浪費に差異がないときに、転送先となる前記第2のコントローラが同一であり、かつ、複数の接続先から転送される転送パケットが時分割多重されているときに、前記転送路に出力される際の転送パケットの多重度を検出し、
    前記第1のプロセッサは、
    前記転送路の帯域の浪費に差異がないときに、前記転送路に対する多重度が最小の前記転送路を含む経路を特定経路として改めて選択し、
    前記データの転送を開始した前記特定経路と、改めて選択した特定経路とが不一致のときに、前記データの転送を停止し、前記改めて選択した特定経路を選択し、
    前記複数のプロセッサは、
    前記改めて選択した特定経路を介して前記データの転送を再開する
    ことを特徴とする請求項9に記載のストレージ装置。
  11. 前記第1のプロセッサは、
    前記特定経路を改めて選択する際、前記通信エラーの障害情報が検出されたときに、前記通信エラーの障害情報が検出されていない別の前記転送路を含む経路を特定経路として最優先に選択し、
    前記通信エラーの障害情報が検出されなかったときに、前記コントローラにより検出された前記転送路の帯域の浪費が最小の前記転送路を含む経路を特定経路として改めて選択し、
    前記転送路の帯域の浪費に差異がないときに、前記転送路に対する多重度が前記転送路を含む経路を特定経路として改めて選択する
    ことを特徴とする請求項10に記載のストレージ装置。
  12. 上位装置及び記憶デバイスと接続され、前記上位装置及び前記記憶デバイスとのデータの転送を制御するコントローラの複数と、
    前記コントローラ同士を接続するデータの転送路と、
    前記コントローラと接続され、前記コントローラを制御する複数のプロセッサと
    を備え、
    前記複数のコントローラは、
    それぞれ同一又は異なるプロセッサに接続され、
    前記上位装置から転送命令を受信したコントローラに接続されている第1のプロセッサは、
    転送元となる第1のコントローラのパケットのヘッダー情報として、当該第1のコントローラ及び転送先となる第2のコントローラの識別情報と、前記第1のコントローラ及び第2のコントローラ間の前記転送路の識別情報と、前記データを転送する際に経由するコントローラの識別情報とを生成する
    ことを特徴とするストレージ装置。
  13. 前記第1のプロセッサは、
    前記データ転送命令に含まれるパケットのヘッダー情報を受信元において保持し、
    前記第1のコントローラのパケットのヘッダー情報に従って、前記第1のコントローラのパケットを前記第2のコントローラにおいて受信すると、前記第1のコントローラのパケットのヘッダー情報を、前記受信元において保持した前記転送命令に含まれるパケットのヘッダー情報に変更した後、変更したパケットを該当する接続先に送信する
    ことを特徴とする請求項12に記載のストレージ装置。
  14. 上位装置及び記憶デバイスと接続され、前記上位装置及び前記記憶デバイスとのデータの転送を制御するコントローラの複数と、
    前記コントローラ同士を接続するデータの転送路と、
    前記コントローラと接続され、前記コントローラを制御する複数のプロセッサと
    を備え、
    前記複数のコントローラは、
    それぞれ同一又は異なるプロセッサに接続され、
    前記上位装置から転送命令を受信したコントローラに接続されている第1のプロセッサが、
    当該転送命令に基づいて、データの転送元となる第1のコントローラ及び当該データの転送先となる第2のコントローラを決定し、
    前記第1のコントローラ及び第2のコントローラ間の、前記転送路に属する経路を判定し、
    前記経路が複数あるときに、前記第2のコントローラに接続されている第2のプロセッサが当該第2のコントローラ以外に接続されているコントローラの数が最大となる経路を特定経路として選択し、
    前記複数のプロセッサが、
    前記特定経路に沿って、前記第1のコントローラ及び第2のコントローラ間で前記データを転送する
    ことを特徴とするデータ転送方法。
JP2008117634A 2008-04-28 2008-04-28 ストレージ装置及びデータ転送方法 Pending JP2009266119A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008117634A JP2009266119A (ja) 2008-04-28 2008-04-28 ストレージ装置及びデータ転送方法
US12/175,763 US7769921B2 (en) 2008-04-28 2008-07-18 Storage apparatus and data transfer method
US12/833,449 US7904616B2 (en) 2008-04-28 2010-07-09 Storage apparatus and data transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008117634A JP2009266119A (ja) 2008-04-28 2008-04-28 ストレージ装置及びデータ転送方法

Publications (1)

Publication Number Publication Date
JP2009266119A true JP2009266119A (ja) 2009-11-12

Family

ID=41216102

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008117634A Pending JP2009266119A (ja) 2008-04-28 2008-04-28 ストレージ装置及びデータ転送方法

Country Status (2)

Country Link
US (2) US7769921B2 (ja)
JP (1) JP2009266119A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048682A (ja) * 2010-08-30 2012-03-08 Ntt Docomo Inc ディスク管理システム、ディスク管理装置、メモリ装置、ディスク管理方法
JP2012133456A (ja) * 2010-12-20 2012-07-12 Fujitsu Ltd ストレージ装置及びストレージ装置の制御方法
JP2014106940A (ja) * 2012-11-30 2014-06-09 Fujitsu Ltd ストレージ装置、およびモジュール間データ転送方法
WO2014162586A1 (ja) * 2013-04-05 2014-10-09 株式会社日立製作所 ストレージシステムおよびストレージシステム制御方法
JP2015176158A (ja) * 2014-03-12 2015-10-05 株式会社東芝 情報処理装置、半導体チップ、情報処理方法およびプログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009266119A (ja) * 2008-04-28 2009-11-12 Hitachi Ltd ストレージ装置及びデータ転送方法
JP5550089B2 (ja) * 2009-03-30 2014-07-16 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム、ノードコントローラ、障害回復方式
KR20120037785A (ko) * 2010-10-12 2012-04-20 삼성전자주식회사 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법
JP2013250690A (ja) * 2012-05-31 2013-12-12 Renesas Electronics Corp データ処理装置、マイクロコントローラ、およびデータ処理装置の自己診断方法
US9195410B2 (en) * 2012-10-31 2015-11-24 Hitachi, Ltd. Storage system and access arbitration method
US9749448B2 (en) * 2014-11-25 2017-08-29 Intel Corporation Header parity error handling
US11340809B1 (en) * 2020-10-29 2022-05-24 EMC IP Holding Company LLC Redirecting i/o communications based on network topology

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09135273A (ja) * 1995-09-08 1997-05-20 Hitachi Ltd インタネットワーク装置
JP2003140837A (ja) * 2001-10-30 2003-05-16 Hitachi Ltd ディスクアレイ制御装置
JP2006018689A (ja) * 2004-07-02 2006-01-19 Hitachi Ltd ストレージ制御装置、そのクラスタ間データ通信方法、及びそのクラスタ間通信制御プログラム
WO2007094037A1 (ja) * 2006-02-13 2007-08-23 Fujitsu Limited 情報処理装置、システム制御装置および入出力リクエスト方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3030229B2 (ja) * 1994-06-20 2000-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション データを転送する方法及びデータ記憶システム
US5787304A (en) * 1996-02-05 1998-07-28 International Business Machines Corporation Multipath I/O storage systems with multipath I/O request mechanisms
JP3094986B2 (ja) 1998-04-27 2000-10-03 日本電気株式会社 ポイント−マルチポイントatmコネクション設定方法
JP4087072B2 (ja) * 2001-01-25 2008-05-14 株式会社日立製作所 ストレージシステム及び仮想プライベートボリューム制御方法
JP2003162377A (ja) * 2001-11-28 2003-06-06 Hitachi Ltd ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法
JP4090400B2 (ja) * 2003-07-24 2008-05-28 株式会社日立製作所 ストレージシステム
JP4480386B2 (ja) * 2003-11-28 2010-06-16 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置のデータ中継方法
JP2008097527A (ja) * 2006-10-16 2008-04-24 Hitachi Ltd ストレージシステム及びその制御方法
JP2008134775A (ja) * 2006-11-28 2008-06-12 Hitachi Ltd 記憶サブシステム及びこれを利用したリモートコピーシステム
JP2009266119A (ja) * 2008-04-28 2009-11-12 Hitachi Ltd ストレージ装置及びデータ転送方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09135273A (ja) * 1995-09-08 1997-05-20 Hitachi Ltd インタネットワーク装置
JP2003140837A (ja) * 2001-10-30 2003-05-16 Hitachi Ltd ディスクアレイ制御装置
JP2006018689A (ja) * 2004-07-02 2006-01-19 Hitachi Ltd ストレージ制御装置、そのクラスタ間データ通信方法、及びそのクラスタ間通信制御プログラム
WO2007094037A1 (ja) * 2006-02-13 2007-08-23 Fujitsu Limited 情報処理装置、システム制御装置および入出力リクエスト方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048682A (ja) * 2010-08-30 2012-03-08 Ntt Docomo Inc ディスク管理システム、ディスク管理装置、メモリ装置、ディスク管理方法
JP2012133456A (ja) * 2010-12-20 2012-07-12 Fujitsu Ltd ストレージ装置及びストレージ装置の制御方法
US8572428B2 (en) 2010-12-20 2013-10-29 Fujitsu Limited Storage apparatus and control method for storage apparatus
JP2014106940A (ja) * 2012-11-30 2014-06-09 Fujitsu Ltd ストレージ装置、およびモジュール間データ転送方法
WO2014162586A1 (ja) * 2013-04-05 2014-10-09 株式会社日立製作所 ストレージシステムおよびストレージシステム制御方法
US9015111B2 (en) 2013-04-05 2015-04-21 Hitachi, Ltd. Storage system and storage system control method
JP2015176158A (ja) * 2014-03-12 2015-10-05 株式会社東芝 情報処理装置、半導体チップ、情報処理方法およびプログラム

Also Published As

Publication number Publication date
US20100274935A1 (en) 2010-10-28
US20090271540A1 (en) 2009-10-29
US7904616B2 (en) 2011-03-08
US7769921B2 (en) 2010-08-03

Similar Documents

Publication Publication Date Title
JP2009266119A (ja) ストレージ装置及びデータ転送方法
US8352663B2 (en) Data storage apparatus and method of data transfer
JP4658122B2 (ja) Dmaコントローラ、ノード、データ転送制御方法、及びプログラム
US8499025B2 (en) Apparatus for enhancing performance of a parallel processing environment, and associated methods
US7526592B2 (en) Interrupt control system and storage control system using the same
JP5546635B2 (ja) データ転送装置およびその制御方法
JP4961481B2 (ja) シリアルアドバンストテクノロジーアタッチメント(sata)およびシリアルアタッチトスモールコンピュータシステムインターフェース(scsi)(sas)のブリッジング
US8060775B1 (en) Method and apparatus for providing dynamic multi-pathing (DMP) for an asymmetric logical unit access (ALUA) based storage system
US8898385B2 (en) Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment
US9400616B2 (en) Methodology for manipulation of SATA device access cycles
US20110167189A1 (en) Storage apparatus and its data transfer method
US20110145452A1 (en) Methods and apparatus for distribution of raid storage management over a sas domain
JP2005505056A (ja) モジュラーdmaアーキテクチャを用いた制御装置データ共有
JP2005507118A (ja) ネットワーク記憶制御装置のためのモジュラーアーキテクチャ
JP2007128437A (ja) ディスクアレイ装置及びその経路障害検出方法
JP2006195870A (ja) データ転送システム及び電子機器
JP2011070655A (ja) 情報処理装置、メモリダンプシステムおよびメモリダンプ方法
WO2014206078A1 (zh) 内存访问方法、装置及系统
CN117873931B (zh) 一种数据处理系统、方法及介质
US8799549B2 (en) Method for transmitting data between two computer systems
JP2007048323A (ja) 仮想化制御装置およびデータ移行制御方法
JP2004164047A (ja) 記憶システム
JP2019204463A (ja) ストレージシステム及びその制御方法
US20060277326A1 (en) Data transfer system and method
JP2014167818A (ja) データ転送装置およびデータ転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120814

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120927

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130312