JP6313237B2 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
JP6313237B2
JP6313237B2 JP2015019963A JP2015019963A JP6313237B2 JP 6313237 B2 JP6313237 B2 JP 6313237B2 JP 2015019963 A JP2015019963 A JP 2015019963A JP 2015019963 A JP2015019963 A JP 2015019963A JP 6313237 B2 JP6313237 B2 JP 6313237B2
Authority
JP
Japan
Prior art keywords
packet
routing
unit
storage
storage system
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.)
Active
Application number
JP2015019963A
Other languages
English (en)
Other versions
JP2016143307A (ja
Inventor
敦寛 木下
敦寛 木下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2015019963A priority Critical patent/JP6313237B2/ja
Priority to US14/725,892 priority patent/US10389808B2/en
Publication of JP2016143307A publication Critical patent/JP2016143307A/ja
Application granted granted Critical
Publication of JP6313237B2 publication Critical patent/JP6313237B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

実施形態は、一般的に、ストレージシステムに関する。
ストレージシステムを備える複数の情報処理装置を、相互にネットワークで接続し、一つの情報処理システムを構成する場合がある。このような情報処理システムの一例としては、例えば、クラウドコンピューティングシステム等がある。近年では、情報処理システムにおけるクラウドデータ等のデータの利用が増加する傾向にある。
特開2012−103926号公報
デッドロックの発生を防止できるストレージシステムを提供する。
実施形態によれば、ストレージシステムは、複数のメモリ部と複数のルーティング部とを備えるストレージ部と、前記ストレージ部を外部と接続し、前記ストレージ部を制御するコネクション部と、前記ストレージ部および前記コネクション部の電源電圧の監視を少なくとも実行するマネージメント部とを具備し、前記複数のメモリ部の各々は、不揮発性メモリと前記不揮発性メモリを制御する制御部とを具備し、前記複数のルーティング部の各々は、前記複数のメモリ部の中の1又は複数のメモリ部に接続され、前記複数のルーティング部は複数のインターフェースを介して互いに接続され、前記複数のルーティング部の間のパケットの転送を制御し、前記複数のルーティング部の各々は、前記複数のインターフェースより多数の内部パケット経路を含む
第1実施形態に係るストレージシステムを示すブロック図。 第1実施形態に係るストレージ部を示すブロック図。 第1実施形態に係るFPGAを示すブロック図。 第1実施形態に係るNMを示すブロック図。 第1実施形態に係るパケット構成を示すブロック図。 第1実施形態に係るCUを示すブロック図。 第1実施形態に係るRCのパケット転送動作を示すフロー。 第1実施形態に係る宛先X,Yの構成を示す図。 比較例に係る転送ステップ数を説明するための図。 第1実施形態に係る転送ステップ数を説明するための図。 第2実施形態に係るルーティング回路の詳細構成を示すブロック図。 第2実施形態に係るパケット処理動作を示すフロー。 比較例に係るパケット処理を示すタイミングチャート。 図13の時刻t1におけるパケット処理を示すブロック図。 図13の時刻t2におけるパケット処理を示すブロック図。 図13の時刻t3におけるパケット処理を示すブロック図。 図13の時刻t4におけるパケット処理を示すブロック図。 第2実施形態に係るパケット処理を示すタイミングチャート。 第3実施形態に係る記憶部の冗長化の一例を示す図。 第3実施形態に係る記憶部の拡張化の一例を示す図。 第3実施形態に係るメモリシステムを収容するエンクロージャをマウント可能なサーバラックを示す斜視図。 第3実施形態に係るストレージシステムが収容されるエンクロージャを示す斜視図。 エンクロージャの前面図。 エンクロージャの背面図。 エンクロージャの内部の上面図。 バックプレーンの構成例を示す図。 エンクロージャの使用形態の一例を示す図。 NMカードの構成の一例を示すブロック図。 NMカードの概観図。 NMカードの概観図。 NC間の論理的な接続関係を示す図。 I/Fカードの構成の一例を示すブロック図。 NMカードとI/Fカードとの間の接続関係を示す図。 CUカードの構成の一例を示すブロック図。 MMカードの構成の一例を示すブロック図。 NMカード、CUカード、およびMMカードの間の接続関係を示す図。 CUカードとMMカードとの間の接続関係を示す図。 第1接続例において使用されるコネクタ群を示す図。 第1接続例による具体的な接続関係を示す図。 第1接続例によって論理的に構築される記憶部を示す図。
以下、図面を参照して、発明の実施形態について説明する。なお、以下の説明において、実質的に同一の機能及び要素については、同一符号を付し、必要に応じて説明を行う。また、本明細書では、いくつかの要素に複数の表現の例を付している。なおこれら表現の例はあくまで例示であり、上記要素が他の表現で表現されることを否定するものではない。また、複数の表現が付されていない要素についても、別の表現で表現されてもよい。
さらに、図面は模式的なものであり、厚みと平面寸法との関係や各層の厚みの比率などは現実のものと異なることがある。また、図面相互間において互いの寸法の関係や比率が異なる部分が含まれることもある。
(第1実施形態)
[1.構成]
[1−1.全体構成(ストレージシステム)]
まず、図1を用い、第1実施形態に係るストレージシステム100の全体構成を簡単に説明する。
図示するように、第1実施形態に係るストレージシステム100は、記憶部101、コネクションユニット(CU)110、インタフェース部(I/F部)120、マネジメントモジュール(MM)130、電源装置PSU、および補助電源装置BBUを備える。
[記憶部]
記憶部(ストレージ部)101は、マトリックス状に配置された複数のルーティング回路(RC)111とノードモジュール(NM)140とを備える。上記構成により、記憶部101は、複数のNM140に対してデータを分散して記憶し、分散的かつ並列的にデータを処理する。
ルーティング回路(ルーティング部、トーラスルーティング)111は、メッシュ状のネットワークにより、コネクションユニット(CU)110や他のルーティング回路111等から転送されたデータを含むパケットを、所定の方式にて転送するように構成される。ルーティング回路111は、2つ以上のインタフェース150を夫々備える。ルーティング回路111は、隣接するルーティング回路111と、インタフェース150を介して互いに電気的に接続される。ルーティング回路111の詳細については、後述する。
NM(メモリ部)140は、ルーティング回路111およびここでは図示しないパケットマネジメントユニット(PMU)を介して、隣接するNM140と互いに電気的に接続される。
図1では、各NM140が、其々格子点に配置された、矩形状のネットワークの例を示す。ここでは、格子点の座標を、10進数表記の座標(x,y)で示す。格子点に配置されるNM140の位置情報は、当該格子点の座標と対応する相対的なノードアドレス(xD,yD)(=10進数表記)で示されるものとする。また、図示する例では、左上隅に位置するNM140が、原点のノードアドレス(0,0)を有する。各NM140の相対的なノードアドレスは、横方向(X方向)および縦方向(Y方向)の整数値が変動することで、この変動に伴い増減する。
各NM140は、2以上の異なる方向に隣接するNM140と接続される。例えば、最も左上隅のNM140(0,0)は、ルーティング回路111を介して、X方向に隣接するNM140(1,0)と、X方向とは異なる方向であるY方向に隣接するNM140(0,1)と、斜め方向に隣接するNM140(1,1)と接続される。以降、相対的なノードアドレス(xD、yD)で表されるNM140を、単にノード(xD、yD)と表記する場合がある。
なお、図1では、各NM140が、矩形格子の格子点に配置されるように示したが、各NM140の配置の様態は、この例に限定されない。すなわち、格子の形状は、格子点に配置される各NM140が2以上の異なる方向に隣接するNM140と接続されればよく、例えば三角形、六角形などでもよい。また、図1では、各NM140が、2次元状に配置されるが、各NM140が3次元状に配置されてもよい。3次元状にNM140を配置する場合は、(x、y、z)の3つの値で各NM140を指定することができる。また、NM140が2次元状に配置される場合には、対辺に位置するNM140同士を接続することによって、NM140をトーラス状に接続するようにしてもよい。記憶部101の詳細については、後述する。
[コネクションユニット(CU)]
CU110は、外部のユーザと接続可能な所定のコネクタを備え、外部からの要求(コマンド、アドレス等)に応じて、記憶部101にデータを記憶し、記憶部101から読み出したデータを外部に出力する。具体的には、CU110は、後述する演算装置と記憶装置とを備える。CU110の演算装置は、記憶装置をワークエリアとして使用しながらサーバアプリケーションプログラムを実行する。
CU110は、サーバアプリケーションによる制御の下で、外部からの要求を処理する。CU110は、外部からの要求を処理する過程において、記憶部101に対するアクセスを実行する。CU110は、記憶部101にアクセスする際には、ルーティング回路111が転送したり実行したりすることが可能なパケットを生成し、生成したパケットを、自CU110に接続されるルーティング回路111に送信する。
図1の例では、ストレージシステム100は、4つのCU110を備える。4つのCU110は、夫々異なるルーティング回路111に一対一に接続される。
なお、CU110の数は、任意に構成することが可能である。CU110は、記憶部101を構成する任意のルーティング回路111に接続されることが可能である。また、1つのCU110が複数のルーティング回路111に接続されてもよいし、1つのルーティング回路111が複数のCU110に接続されてもよい。また、記憶部101を構成する複数のルーティング回路111のうちの任意のルーティング回路111にCU110が接続されてもよい。CU110の詳細については、後述する。
[インタフェース部(I/F部)]
I/F部120は、記憶部101を拡張するための接続インタフェースである。例えば、物理的に異なる2台のストレージシステム100が、互いにI/F部120を介して電気的に接続することが可能である。このように接続することで、各ストレージシステム100が備える記憶部101が論理的に結合されて、1つの記憶部101として使用可能となる。I/F部120は、1以上のルーティング回路111からインタフェース150により電気的に接続される。ここでは、2つのルーティング回路111に接続される各インタフェース150が、I/F部120に夫々接続される。
[マネジメントモジュール(MM)]
MM130は、各CU110と、NM(0,0)とに電気的に接続される。MM130は、図示しないBMC(Base Management Controller)を備える。MM130は、BMCの機能の一環として、例えば、環境温度の監視、ファンの回転数の監視とコントロール、電源電流および電源電圧の監視および制御、各CU110のステータスの記録、各CU110の温度の監視、CU110のリセット等を実行する。
また、MM130は、BMCの機能の他に、記憶部101に対する処理(NM制御処理)を実行する。NM制御処理は任意である。例えば、後述する第1のメモリ141がNAND型フラッシュメモリの場合には、MM130は、第1のメモリ141のウェアレベリングを実行してもよい。また、MM130は、NM140の故障が発見されたとき、故障したNM14が実装されているカード基板の交換を、CU110を介して外部に通知してもよい。また、MM130は、カード基板の交換後、RAID(Redundant Arrays of Inexpensive Disks)のリビルドを行ってもよい。
なお、NM140の故障の検知の主体は、後述するノードコントローラ(NC)140Cでもよいし、CU110でもよい。NM140の故障の検知は、そのNM140が有する第1のメモリ141からのリードデータに対するエラー検出に基づいて実行されてもよい。MM130は、記憶部101に対して処理を行う際には、処理に応じたパケットを発行する。MM130は、例えば、後述する図2に示す様式に準拠するパケットを発行する。
[電源装置(PSU)]
電源装置(主電源部)PSUは、外部電源VCから与えられる外部電源電圧を、所定の直流電圧に変換し、上記変換後の電源電圧VCOを上記各構成部(101、110、120、130)に供給する。外部電源VCは、例えば、100Vや200V等の交流電源である。第1実施形態に係るストレージシステム100は、2つの電源装置PSU−1,PSU−2を備える(図示せず)。しかし、電源装置PSUの構成は、これに限られることはない。
[補助電源装置(BBU)]
補助電源装置(バッテリ装置、補助電源部)BBUは、電源装置PSUから電源電圧VCOを受けることで、自身BBUに蓄電する。そして、補助電源装置BBUは、ストレージシステム100が外部電源VCから電気的に遮断された場合に、所定の補助電源電圧を各構成部(101、110、120、130)に供給する補助電源として働く。例えば、補助電源装置BBUは、停電等が発生して外部電源VCからの電源電圧の供給が停止した場合であっても、上記各構成部に補助電源電圧を供給し、記憶部101を動作させる。そして、NM140が備える図示しないノードコントローラ(NC)140Cは、供給された補助電源電圧により、ユーザデータを第1のメモリ141に書き込むこと(データコピー)により、ユーザデータを保護するバックアップを行う。
[インタフェース規格]
なお、第1実施形態では、上記各構成を電気的に接続するインタフェースは、以下の規格が適用可能である。
まず、各ルーティング回路111を互いに接続するインタフェース150には、Low voltage differential signaling(LVDS)規格等が適用される。
ルーティング回路111とCU110とを電気的に接続するインタフェース150には、PCI Express(PCIe)規格等が適用される。
ルーティング回路111とI/F部120とを電気的に接続するインタフェース150には、上記LVDS規格、およびJoint test action group(JTAG)規格等が適用される。
NM140とMM130とを電気的に接続するインタフェース150には、上記PCIe規格、およびInter-integrated circuit(I2C)規格が適用される。
なお、これらの規格は一例であり、必要に応じてその他の規格が適用可能であることは勿論である。
[1−2.記憶部101の構成]
次に、図2を用い、記憶部101の構成の一例について説明する。
図2に示すように、記憶部101は、1つのルーティング回路111と4つのNM140とを有する複数のFPGA(field-programmable gate array)を備える。ここでは、4つのFPGA0〜FPGA3を一例として示す。例えば、FPGA0は、1つのルーティング回路111と、4つのNM(0,0)、NM(1,0)、NM(0,1)、NM(1,1)を備える。
4つのFPGAは、各FPGAアドレスが、2進数表記で(000,000)、(010,000)、(000,010)、(010,010)で表されるものとする。
各FPGAにおいて、1つルーティング回路111と4つのNMとはインタフェース151にて、図示しないパケットマネジメントユニット(PMU)を介して電気的に接続される。
ルーティング回路111は、パケット転送動作において、FPGAアドレスの宛先x, 宛先yのうちの最下位ビットBX0、BY0を無視して(マスクして)、ルーティングを行う。パケット転送動作については、後述する。
[1−3.FPGAの構成]
次に、図3を用い、FPGAの構成の一例について説明する。ここでは、図2に示すFPGA0を一例に挙げて説明する。
図3に示すように、FPGA0は、1つのルーティング回路111と、4つのNM140と、5つのパケットマネジメントユニット(PMU)112と、CUインタフェース(PCIe I/F)113とを備える。
PMU(パケット制御部)112は、CU110およびNM140に対応して設けられ、CU110およびルーティング回路111からのパケットを解析し、解析したパケットに記述される座標(相対的なノードアドレス)と自分の座標とが一致する場合、対応するNM140にそのパケットを直接的に送信する。一方、PMU112は、解析したパケットに記述される座標と自分の座標とが一致しない場合(他の座標である場合)、その旨をルーティング回路111に返信する。
例えば、最終的な目的位置のノードアドレスが(3,3)である場合、当該ノードアドレス(3,3)に接続されるPMU112は、解析したパケットに記述される座標(3,3)と自分の座標(3,3)とが一致すると判定する。そのため、当該ノードアドレス(3,3)に接続されるPMU112は、解析したパケットを自分に接続されるノードアドレス(3,3)のNM140に送信する。送信されたパケットは、NM140の図示しないノードコントローラ(NC)140Cにより、NM140中の不揮発性メモリに記憶される等のパケットに記載の要求に基づいた所定の処理が行われる。
CUインタフェース(PCIe I/F)113は、CU110の要求やパケット等を解析する。また、CUインタフェース113は、解析された要求やパケット等を、PMU112に送信する。なお、送信されたパケットは、ルーティング回路111を介して、他のNM140に転送される。
[1−4.ノードモジュール(NM)の構成]
次に、図4を用い、NM140の構成の一例について説明する。ここでは、NM(0,0)140を一例に挙げて説明する。
図示するように、NM(0,0)140は、ノードコントローラ(NC)140Cと、ストレージメモリとして機能する第1のメモリ141と、NC140Cがワークエリアとして使用する第2のメモリ142とを備える。
NC140Cには、PMU112が電気的に接続される。NC140Cは、CU110または他のNM140からPMU112を介してパケットを受信したり、CU110または他のNM140にPMU112を介してパケットを送信したりする。NC140は、パケットの宛先が自身のNM140である場合には、そのパケット(そのパケットに記録されるコマンド)に応じた処理を実行する。例えば、コマンドがアクセスコマンド(リードコマンドまたはライトコマンド)である場合には、NC140Cは、第1のメモリ141に対するアクセスを実行する。NC140Cは、受信したパケットの宛先が自身のNM140ではない場合には、そのパケットを自身のNM140に接続されている他のNM140に転送する。
第1のメモリ141としては、例えば、NAND型フラッシュメモリ(以下、NANDメモリという。)、ビットコストスケーラブルメモリ(BiCS)、磁気抵抗メモリ(MRAM)、相変化メモリ(PcRAM)、抵抗変化型メモリ(RRAM(登録商標))、またはこれらの組み合わせが適用可能である。
第2のメモリ142としては、DRAM(dynamic random access memory)等の各種RAMが適用可能である。なお、第1のメモリ141がワークエリアとしての機能を提供する場合、第2のメモリ142はNM140に配置されなくともよい。
[1−5.パケット構成]
次に、図5を用い、パケット構成の一例について説明する。
図5に示すように、第1実施形態に係るパケットは、ヘッダ領域HA、ペイロード領域PA、および冗長領域RAにより構成される。
ヘッダ領域HAには、例えば、送り元のX方向およびY方向のアドレス(from_x, from_y)、および送り先のX方向およびY方向のアドレス(to_x, to_y)等が記述される。
ペイロード領域PAには、例えば、コマンドまたはデータ等が記述される。ペイロード領域PAのデータサイズは、可変である。
冗長領域RAには、例えば、CRC(cyclic redundancy check)符号等が記述される。CRC符号は、ペイロード領域PAのデータの誤りを検出するために用いられる符号(情報)である。
上記構成を備えるパケットを受信したルーティング回路111は、所定の転送アルゴリズムに基づいて、ルーティング先を決定する。第1実施形態に係るルーティング回路111は、送り先のFPGAのX方向およびY方向のアドレス(to_x, to_y)の最下位ビットBX0、BY0を無視して(マスクして)、ルーティングを行う。このような転送アルゴリズムに基づいて、パケットは、ルーティング回路111の間を転送されて、最終的な目的地のノードアドレスのNM140に到達する。
例えば、ルーティング回路111は、上記転送アルゴリズムに基づき、自身のNM140から宛先のNM140までの転送回数が最小となる経路上に位置するNM140を、転送先のNM140に決定する。また、ルーティング回路111は、上記転送アルゴリズムに基づき、自身のNM140から宛先のNM140までの転送回数が最小となる経路が複数存在する場合には、複数の経路から1つの経路を任意の方法で選択する。ルーティング回路111は、同様に、自身のNM140に接続される複数のNM140のうちの転送回数が最小となる経路上に位置するNM140が故障していたりビジーであったりする場合には、他のNM140を転送先に決定する。
ここで、記憶部101は、複数のNM140が互いにメッシュネットワーク状で論理的に接続されている。そのため、記憶部101におけるパケットの転送回数が最小となる経路が複数存在する場合がある。この場合において、特定のNM140を宛先とするパケットが複数発行されても、発行された複数のパケットは、上述の転送アルゴリズムにより複数の経路に分散して転送される。そのため、特定のNM140に対するアクセス集中を回避でき、ストレージシステム100全体のスループットの低下を抑制することができる。
[1−6.CUの構成]
次に、図6を用い、CU110の構成の一例について説明する。
図6に示すように、第1実施形態に係るCU110は、CPU(central processing unit)601と、第3のメモリ603とを備える。
CPU(制御部、演算装置)601は、外部のユーザと接続可能な所定のコネクタを介して、外部からの要求(コマンド、アドレス等)に応じて、記憶部101を制御する。CPU601は、第3のメモリ603をワークエリアとして使用しながら、サーバアプリケーションプログラムを実行する。具体的には、CPU601は、サーバアプリケーションによる制御の下で、外部からの要求を処理する。CPU601は、記憶部101にアクセスする際には、ルーティング回路111が転送したり実行したりすることが可能なパケットを生成し、生成したパケットを、自CU110に接続されるルーティング回路111に送信する。
第3のメモリ603は、CPU601のワークエリアとして使用されるメモリである。第3のメモリ603は、例えば、DRAM、SRAM等の揮発性の半導体メモリが適用可能である。しかし、第3のメモリ603は、これらに限られることはない。
[2.動作]
[2−1.パケット転送動作]
次に、図7および図8を用い、第1実施形態に係るストレージシステム100のパケット転送動作を説明する。ここでは、図7に示すフローに則して説明する。
図7のステップB1において、ルーティング回路111は、CU110や他のルーティング回路111からパケットを受信すると、そのパケットのヘッダHAに記述された送り先のX方向およびY方向のアドレスを解析する。この際、ルーティング回路111は、送り先のFPGAのX方向およびY方向のアドレスの最下位ビットを無視して(マスクして)、ルーティングを行う。
例えば図8に示すように、第1実施形態に係るパケットの送り先のFPGAのX方向およびY方向のアドレス(to_x, to_y)は、それぞれ16ビットで記述されている。そこで、ステップB1において、ルーティング回路111は、送り先のFPGAのX方向およびY方向のアドレス(to_x, to_y)の図8に斜線で示す最下位ビットBX0,BY0を無視して、パケットのルーティングを行う。換言すると、ルーティング回路111は、送り先のFPGAのX方向およびY方向のアドレス(to_x, to_y)の最下位ビットBX0,BY0にかかわらず、パケットのルーティングを行う。
より具体的には、図2に示したように、4つのFPGAアドレスが、2進数表記(000,000)、(010,000)、(000,010)、(010,010)で表される場合、ルーティング回路111は、上記4つのFPGAアドレスの最下位ビットを無視して、パケットのルーティングを行う。つまり、ルーティング回路111は、上記4つのFPGAアドレスの最下位ビットを無視する結果、(00X,00Y)、(01X,00Y)、(00X,01Y)、(01X,01Y)で表されるFPGAアドレスに基づいて、パケットのルーティングを行う。ここで、上記アドレス表記において、XおよびYのビットの状態(“0”状態または“1”状態)は、任意である。
続いて、図7のステップB2において、ルーティング回路111は、受け取ったパケットに記述されるFPGAアドレスの宛先Xおよび宛先Yが自分宛か否かを判定する。この際、ルーティング回路111は、ステップB1において説明したように、送り先のFPGAアドレスの最下位ビットBX0,BY0を無視した状態で、アドレスが自分宛か否かを判定する。
ステップB3において、受け取ったパケットのFPGAアドレスが自分宛でない場合(B2でNO)、ルーティング回路111は、転送回数が最小となる経路にて、パケットを他のRC(他のルーティング回路111)に転送し、この動作を終了する。
一方、ステップB4において、受け取ったパケットのFPGAアドレスが自分宛である場合(B2でYES)、ルーティング回路111は、送り先のFPGAアドレスの全ビットを認識して、当該認識したX方向およびY方向のアドレス先のノードアドレスにパケットを割り振る。換言すると、ステップB4において、ルーティング回路111は、送り先のFPGAアドレスの最下位ビットBX0,BY0を無視しないで、当該認識したX方向およびY方向のアドレス先のノードアドレスに相対的にパケットを割り振る。より具体的には、ルーティング回路111は、目的のノードアドレスに対応する自身のPMU112にパケットを転送する。パケットを転送されたPMU112は、目的のノードアドレスのNM140にパケットを割り振り、この動作を終了する。
[作用効果]
以上説明したように、第1実施形態に係るストレージシステム100の構成および動作によれば、少なくとも下記(1)乃至(2)の効果が得られる。
(1)パケットの転送ステップ数を低減できる。
この説明においては、比較例と第1実施形態とを対比して説明する。
A)比較例の場合
まず、比較例に係るストレージシステムについて、図9を用いて説明する。図9に示すように、比較例に係るストレージシステムは、第1実施形態に係るストレージシステム100と比較して、ルーティング回路111を備えていない。そのため、比較例に係るパケットは、ルーティング回路111を介することなく、直接的にNMの間を転送される。
従って、パケット転送動作において、送り先のFPGAのX方向およびY方向のアドレス(to_x, to_y)の最下位ビットBX0,BY0を無視して、パケットのルーティングを行うこともない。換言すると、比較例に係る記憶部では、送り先のFPGAの全てのX方向およびY方向のアドレスに基づき、パケットのルーティングを行う。
例えば、図9に示すように、パケットがノードアドレス(0,0)からノードアドレス(3,3)に転送される場合、パケットの転送回数が最小となる経路では、転送ステップ数は、合計で6ステップ(1S〜6S)必要である。具体的には、パケットは、ノードアドレス:(0,0)→(1,0)→(2,0)→(3,0)→(3,1)→(3,2)→(3,3)に示す経路にて、直接的にNMを介して転送される。
また、ショートカットするような斜め方向の経路(例えば、ノードアドレス:(0,0)→(1,1)→(2,2)→(3,3))にてパケットを転送することもできない。
そのため、比較例に係るストレージシステムは、パケットの転送数が増大する。例えばCUとNMとの転送距離が遠い場合、転送ステップ数がより増大する。転送ステップ数が増大すると、これに伴って、レイテンシが増大する原因ともなり得る。
B)第1実施形態の場合
上記比較例に対し、第1実施形態に係るストレージシステム100の記憶部101が備える各FPGAは、1つのルーティング回路111と、4つのNM140と、5つのパケットマネジメントユニット(PMU)112と、CUインタフェース(PCIe I/F)113とを備える。
上記構成において、ルーティング回路111は、送り先のFPGAアドレスのX方向およびY方向のアドレス(to_x, to_y)の最下位ビットBX0、BY0を無視して(マスクして)、ルーティングを行う。換言すると、ルーティング回路111は、送り先のFPGAのX方向およびY方向のアドレス(to_x, to_y)の最下位ビットBX0、BY0にかかわらず、パケットの転送を行う。このような転送アルゴリズムに基づいて、パケットは、ルーティング回路111の間を転送されて、最終的な目的地のノードアドレスのNM140に到達する。
例えば、図10に示すように、パケットがノードアドレス(0,0)(=2進数表記:(000,000))からノードアドレス(3,3)(=2進数表記:(011,011)に同様に転送される場合を一例に挙げて説明する。この場合、パケットの転送回数が最小となる経路では、転送ステップ数を、合計で3ステップ(1S〜3S)に低減することができる。
(1S)
まず、各ルーティング回路111は、送り先のFPGAアドレスのX方向およびY方向のFPGAアドレスの最下位ビットBX0、BY0を無視して、ルーティングを行う(B1)。そのため、ルーティング回路111は、パケットに記述されるアドレスが自分宛でない限り、各FPGAアドレス(00X,00Y)〜(01X,01Y)に基づいて、パケットのルーティングを行う。
例えば、図10に示すように、パケットの宛先がノードアドレス(3,3)(=2進数表記:(011,011)である場合、FPGA0のルーティング回路111は、自分のFPGAアドレス(00X,00Y)とパケットに記述されるノードアドレス(3,3)(=2進数表記:(011,011)とが一致するか否かを判定する(B2)。この際、ルーティング回路111は、FPGAアドレスの最下位ビットBX0、BY0を無視した状態で、両アドレスが互いに一致するか否かを判定する。そのため、この場合、ルーティング回路111は、自分のFPGAアドレス(00X,00Y)と、パケットに記述されるノードアドレス(3,3)(=2進数表記:(01X,01Y)とは一致しないと判定し、隣接するFPGA1にパケットを転送する(B3)。
(2S)
パケットが転送されたFPGA1のルーティング回路111は、同様に、自分のFPGAアドレス(01X,00Y)とパケットに記述されるノードアドレス(3,3)(=2進数表記:(011,011)とが一致するか否かを判定する(B2)。この際、ルーティング回路111は、自分のFPGAアドレス(01X,00Y)と、パケットに記述されるノードアドレス(3,3)(=2進数表記:(01X,01Y)とは一致しないと判定し、隣接するFPGA3にパケットを転送する(B3)。
(3S)
パケットが転送されたFPGA3のルーティング回路111は、同様に、自分のFPGAアドレス(01X,01Y)とパケットに記述されるノードアドレス(3,3)(=2進数表記:(011,011)とが一致するか否かを判定する(B2)。この際、ルーティング回路111は、自分のFPGAアドレス(01X,01Y)と、パケットに記述されるノードアドレス(3,3)(=2進数表記:(01X,01Y)とが一致すると判定する。
一致した場合、FPGA3のルーティング回路111は、パケットに記述されたFPGAアドレスの全ビットを認識して((3,3)(=2進数表記:(011,011))、当該認識したX方向およびY方向のアドレス先の自分のノードアドレスにパケットを割り振る(B4)。換言すると、ルーティング回路111は、パケットに記述されたFPGAアドレスの最下位ビットBX0,BY0を無視しないで、当該認識したX方向およびY方向のアドレス先のノードアドレスに相対的にパケットを割り振る。
より具体的には、ルーティング回路111は、目的のノードアドレス(3,3)(=2進数表記:(011,011)に対応する自身のPMU112にパケットを転送する。パケットを転送されたPMU112は、右斜め下の目的のノードアドレス(3,3)(=2進数表記:(011,011)のNM140にパケットを割り振る。なお、パケットを割り振られたNM(3,3)では、当該NM(3,3)が備えるNC140Cが、パケットに記述されたコマンドに基づいて、第1のメモリ141にパケット中のデータを書き込む等の所望の動作を行う。
以上説明したように、第1実施形態に係るストレージシステム100は、パケット転送動作において、まず、最下位ビットBX0,BY0を無視し、その他の上位ビットのアドレスに基づいて、自分のアドレスとパケットに記述されるアドレスとが一致するか否かを判定する(B1〜B2)。次に、自分のアドレスとパケットに記述されるアドレスとが一致する場合、ルーティング回路111は、全てのビットを考慮し、無視した最下位ビットBX0,BY0に対応する自分の配下のNM140のいずれかにパケットを割り振る(B4)。
このような構成および動作により、パケットの転送ステップ数を低減できる。例えば、第1実施形態では、比較例に比べて、パケットの転送ステップ数を半分以下に低減することができる。さらに、X方向、Y方向の他に、ショートカットするような斜め方向のパケット通信も可能となるため(B4)、パケットの転送ステップ数を低減することができる。
(2)パケットの転送アルゴリズムを変更する必要がない。
上記説明したように、第1実施形態に係るストレージシステム100は、少なくとも2つ以上のNM(メモリ部)140の間のパケット転送を制御するルーティング回路111を備える。例えば、ルーティング回路111が、2つ以上のNM140をまとめる単位は、2(N:自然数(N=1,2,3, ,,,))等である。
このように、ルーティング回路111は、パケット転送動作において、最下位ビットBX0,BY0を無視して(マスクして)ルーティングを行うだけでよい。
そのため、第1実施形態に係るストレージシステム100は、例えば上記比較例と比較して、パケットに記述するアドレス構成等の転送アルゴリズムを変更する必要がない点で有利である。従って、第1実施形態に係るストレージシステム100は、余計な設計変更等が不要となり、製造コストを低減できる。
なお、第1実施形態に係るストレージシステム100の場合、1個のCU110につき、少なくとも16個のNM140が制御可能である。そのため、1個のCU110につき、少なくとも16個のパケット通信が可能である。
(変形例1)
上記第1実施形態に係るルーティング回路111は、パケット転送動作の際に、最下位ビットBX0,BY0を無視して(マスクして)ルーティングを行ったが、複数のNM140のノードアドレスをまとめてルーティングを行う限り、これに限られないことは勿論である。
例えば、ルーティング回路111は、パケット転送動作の際に、最上位ビットを無視してルーティングを行ってもよい。より具体的には、ルーティング回路111は、最上位ビットを無視したアドレスに基づいて、自分のFPGAアドレスと、パケットに記述されるノードアドレスとが一致すると判定する。当該アドレスが一致した場合、ルーティング回路111は、送り先のFPGAアドレスの全ビットを認識して、当該認識したX方向およびY方向のアドレス先の自分のノードアドレスにパケットを割り振ってもよい。
例えば、ルーティング回路111は、パケット転送動作の際に、X方向、Y方向のアドレスの一部を無視して同様にルーティングを行ってもよい。さらに、例えば、ルーティング回路111は、パケット転送動作の際に、X方向、Y方向のアドレスのうちの少なくとも1ビット以上を無視して同様にルーティングを行ってもよい。
(第2実施形態(デッドロックの発生の防止に関する一例))
次に、第2実施形態に係るストレージシステム100について説明する。第2実施形態は、デッドロックの発生の防止に関する一例である。以下の説明において、上記第1実施形態と重複する部分の詳細な説明を省略する。
[構成(ルーティング回路111の詳細構成)]
まず、図11を用い、第2実施形態に係るストレージシステム100が備えるルーティング回路111の構成について説明する。図11の破線は返信パケットの経路を示し、実線は送信パケットの経路を示す。ここで、返信パケットとは、CU110からの何らかの命令に対して返信するためのパケットであり、パケットルーティングの方向がNM140からCU110へ向かう方向のパケットをいう。送信パケットとは、CU110からの何らかの命令(リクエスト)を送信するためのパケットであり、パケットルーティングの方向がCU110からNM140へ向かう方向のパケットをいう。
図11に示すように、第2実施形態に係るルーティング回路111は、ルーティング回路111の外部のルーティング経路であるインタフェース150の数を第1実施形態と同じ8系統に維持する。一方、ルーティング回路111は、ルーティング計算部115R,115S、バッファRBF,SBF、およびセレクタSEを備え、ルーティング回路111の内部のパケット処理経路の数を倍増させる。上記構成により、ルーティング回路111は、返信パケットと送信パケットとを区別し、各パケット処理を独立してルーティングを行う。
より具体的には、第2実施形態に係るルーティング回路111は、2個のルーティング計算部115R,115Sと、16個のバッファRBF,SBFと、8個のセレクタSEとを備える。
ルーティング計算部115Rと、8個のバッファRBFとは、返信パケットのルーティングを行うための構成である。ルーティング計算部115Rは、返信パケットについての所定のルーティング計算を専門に実行する。各バッファ(返信バッファ)RBFは、返信パケットを一時的に格納する。
ルーティング計算部115Sと、8個のバッファSBFとは、送信パケットのルーティングを行うための構成である。ルーティング計算部115Sは、送信パケットについての所定のルーティング計算を専門に実行する。各バッファ(送信バッファ)SBFは、送信パケットを一時的に格納する。
セレクタ(選択部)SEは、ルーティング回路111の図示しない制御部から通知される制御信号に基づいて、受信するパケットを返信バッファRBFに格納するか送信バッファSBFに格納するかを選択する。これらの動作の詳細については、後述する。
なお、他のルーティング回路111も、図11に示した構成と同様の構成を備える。その他の構成については、上記第1の実施形態と実質的に同様であるので、その詳細な説明を省略する。
[動作(パケット処理動作)]
次に、図12を用い、上記構成を備えるルーティング回路111のパケット処理動作について説明する。
まず、ステップB21において、ルーティング回路111は、受信するパケットが、返信パケットか送信パケットか否かを判定する。より具体的には、ルーティング回路111は、図5で示したヘッダ領域HAに記述されたパケットの種類に基づいて、受信するパケットの種類を判定する。このパケットの種類は、例えば所定の複数のビットにて、ヘッダ領域HAに記述される。このステップB21の際、ルーティング回路111は、ヘッダ領域HAに記述されたパケットの種類のうちの通信タイプ(communication type)を参照し、返信パケット(reply)である場合(参照ビットが“1”状態である場合)、当該受信するパケットが返信パケットであると判定する。同様に、ルーティング回路111は、ヘッダ領域HAに記述されたパケットの種類のうちの通信タイプを参照し、送信パケット(send)である場合(参照ビットが“0”状態である場合)、当該受信するパケットが送信パケットであると判定する。上記判定結果に基づき、ルーティング回路111は、所定の制御信号をセレクタSEに送信する。
(返信パケットの場合)
ステップB22において、上記受信するパケットが返信パケットである場合、セレクタSEは、制御信号に基づいて返信パケットを選択し、返信パケットを自ルーティング回路111の空いている返信バッファRBFに格納させる。
ステップB23において、返信側のルーティング計算部115Rは、CU110までの経路を計算し、返信パケットを、返信バッファRBFからCU110へ返信する。より具体的には、ルーティング計算部115Rは、CU110までの最短経路、または当該返信パケットを格納している返信バッファRBFからCU110までの経路上に存在する他の返信バッファRBFまでの優先経路等を計算する。続いて、ルーティング計算部115Rは、返信バッファRRBから当該計算した経路上へ返信パケットを転送する。
なお、続いて、当該計算された経路上へ転送された返信パケットは、例えば、計算された経路上の空いている返信バッファRBFに格納される。続いて、例えば、返信パケットがCU110に到達すると、返信パケットがCU110により解析され、CU110からの命令に対するNM140の返信パケットの処理が完了する。
(送信パケットの場合)
ステップB24において、上記受信するパケットが送信パケットである場合、セレクタSEは、制御信号に基づいて送信パケットを選択し、送信パケットを自ルーティング回路111の空いている送信バッファSBFに格納させる。
ステップB25において、送信側のルーティング計算部115Sは、目的のNM140までの経路を計算し、送信パケットを、送信バッファSBFから、当該目的のNM140に送信する。より具体的には、ルーティング計算部115Sは、送信パケットに記述された目的のNM140のアドレスを参照し、目的のNM140までの最短経路、または当該送信パケットを格納している送信バッファRBSから目的のNM140までの経路上に存在する他の送信バッファSBFまでの優先経路等を計算する。続いて、ルーティング計算部115Sは、送信バッファSRBから当該計算した経路上へ送信パケットを転送する。
なお、続いて、当該計算された経路上へ転送された送信パケットは、例えば、計算された経路上の空いている送信バッファSBFに格納される。続いて、例えば、送信パケットが宛先のNM140に到達すると、送信パケットが宛先のNM140のPMU112により解析される。続いて、送信パケットの解析結果に基づいて、CU110からの命令(例えば、データ書き込み等)が当該宛先のNM140において実行され、送信パケットの処理が完了する。
[作用効果]
以上説明したように、第2実施形態に係るストレージシステム100の構成および動作よれば、上記(1)乃至(2)と同様の効果が得られる。さらに、第2実施形態に係るストレージシステム100によれば、少なくとも下記(3)に示す効果が得られる。
(3)デッドロックの発生を防止できる。
この説明においては、比較例と第2実施形態とを対比して説明する。
A)比較例の場合
図9に示したように、比較例に係るストレージシステムは、第1、第2実施形態に係るストレージシステム100と比較して、ルーティング回路111を備えていない。そのため、比較例に係るパケットは、ルーティング回路111を介することなく、直接的にNMの間を転送される。
このように、複数のコンピュータノードが、ネットワークを経由して、データや命令をやり取りするような比較例に係るストレージシステムの場合、非常に単純な動作の場合には、特に大きな問題は生じない。しかしながら、例えばより複雑なアルゴリズム等を処理しようとした場合、ネットワーク上にデータや命令を収めたパケットが滞留してしまい、処理がストップしてしまう現象(以下、「デッドロック」という。)が生じるおそれがある。このデッドロックの発生について、図13および図14A〜図14Dを用い、より具体的に説明する。
まず、図13の時刻t1において、比較例に係るノードモジュールNMAが、CUからの命令1を行うためのコマンドcmd1を受信するとする(図14A)。ここで、命令1は、必ず2つの処理(処理1および処理2)を順に実行しなければ完了しない命令であるとする。コマンドcmd1は、一連の上記2つの処理を行うためのコマンドである。
続いて、図13の時刻t2において、コマンドcmd1を受け取ったノードモジュールNMAは、別のノードモジュールNMB1〜NMB3に対して、処理2に係るコマンドcmd2を発行する(図14B)。ここで、ノードモジュールNMB1〜NMB3は、例えば、所定のRAIDグループを構成するノードモジュール群である。なお、このコマンドcmd2の応答(RP1〜RP3)に対して、再度ノードモジュールNMAが何らかの処理を施した返信パケットがCUに返信されると、最初のコマンドcmd1に対する応答が完了する。換言すると、命令1を完了するためには、まず、ノードモジュールNMAが、ノードモジュールNMB1〜NMB3から返信される返信パケットRP1〜RP3を受信する必要がある。
そのため、図13の時刻t3において、コマンドcmd2がノードモジュールNMB1〜NMB3によって処理された後、コマンドcmd2の応答である返信パケットRP1〜RP3が、ノードモジュールNMAに戻ってこようとする(図14C)。
しかしながら、図13の時刻t4において、ノードモジュールNMAは、別の命令2に係る送信パケットSP1〜SP4を大量に受け取っており、これ以上パケットを受け付けられない状態にあったとする(図14D)。この際、ノードモジュールNMAが、以降の処理を続けるためには、ノードモジュールNMB1〜NMB3から帰ってきている返信パケットRP1〜RP3を受け取り、所定の処理をした後、コマンドcmd1に対する応答をCUに返信する必要がある。しかしながら、ノードモジュールNMAは、これ以上パケットを受け付けられない状態にあるため、命令1の完了が不可能となる。その結果、ノードモジュールNMAは、もはやこれ以上の処理を続けることができない(デッドロックの発生)。
換言すると、図13の時刻t4において、ノードモジュールNMAの外部との4つの全てのルーティング経路(スロット)は、命令2に係る送信パケットSP1〜SP4で既に埋まっている。そのため、ノードモジュールNMAは、返信パケットRP1〜RP3を新たに受信できない。従って、ノードモジュールNMAは、返信パケットRP1〜RP3を処理し、コマンドcmd1に対する応答をCUに返信できないので、命令1を完了することができない。命令1を完了することができないので、次の命令2に係る送信パケットSP1〜SP4を送信できず、命令2も完了できない。このように、命令1,2のいずれも他方の命令の処理待ちとなり、命令1,2のいずれも完了せず、デッドロックが発生し得る。
なお、ストレージシステムがクラウドシステム等の基幹的な情報処理システムで利用され場合、デッドロックが発生すると、システム動作全体の停止につながりかねない。そのため、デッドロックの発生は、システム全体の信頼性に大きく影響するものである。
B)第2実施形態の場合
上記比較例に対し、第2実施形態に係るストレージシステム100は、図11に示した構成のルーティング回路111を介して、パケット転送動作を行う。ルーティング回路111は、ルーティング回路111の外部のルーティング経路であるインタフェース150の数を第1実施形態と同じ8系統に維持する。一方、ルーティング回路111は、ルーティング計算部115R,115S、バッファRBF,SBF、およびセレクタSEを備え、ルーティング回路111の内部のパケット処理経路の数を倍増させる。上記構成により、ルーティング回路111は、返信パケットと送信パケットとを区別して分離し、各パケット処理を独立してルーティングを行う(図12)。ここで、「分離」とは、ルーティング回路111内において、返信パケットと送信パケットとの転送経路が、互いに交わらないことをいう。
例えば、上記比較例と同様のパケット処理が生じた場合について、図15を用いて説明する。ここでは、一例として、あるNM140が、比較例に係るノードモジュールNMAに対応するものとして説明する。
図15の時刻t4において、NM140は、同様に、別の命令2に係る大量の送信パケットSP1〜SP4が送信されている状態であるとする。この際、受信するパケットが送信パケットSP1〜SP4であると判定すると(図12のB21)、セレクタSEは、送信パケットSP1〜SP4を選択し、選択した送信パケットSP1〜SP4を自ルーティング回路111の空いている送信バッファSBFにそれぞれ格納させる(図12のB24)。
この際、NM140が処理を続けるためには、返信パケットRP1〜RP3を受け取り、所定の処理をした後、コマンドcmd1に対する応答をCU110に返信し、命令1を完了させる必要がある。
そこで、同時刻t4において、まず、NM140のルーティング回路111は、受信するパケットが、返信パケットか送信パケットか否かを判定する(図12のB21)。続いて、受信するパケットが返信パケットRP1〜RP3であると判定すると、セレクタSEは、返信パケットRP1〜RP3を選択し、選択した返信パケットRP1〜RP3を自ルーティング回路111の空いている返信バッファRBFにそれぞれ格納させる(図12のB22)。続いて、返信側のルーティング計算部115Rは、CU110までの経路を計算し、返信パケットRP1〜RP3を、各返信バッファRBFからCU110へ返信する(図12のB23)。そのため、命令1を完了させることが可能となる。
続いて、命令1の完了後の時刻t5において、送信側のルーティング計算部115Sは、目的のNM140までの経路を計算し、送信パケットSP1〜SP4を、各送信バッファSBFから、当該目的のNM140に送信する(図12のB25)。そのため、命令2を完了させることが可能となる。
以上説明したように、第2実施形態に係るストレージシステム100では、送信パケットまたは返信パケットに応じて、格納させるバッファ(SBF,RBF)とルーティング計算を行う計算部(115S,115R)とを分離させ、それぞれを独立してパケットのルーティングを行う。そのため、図15に示したように、少なくとも2つ以上のパケット転送動作を分離独立して行うことができ、2つ以上のパケット転送動作を並行して行うことができる。このように、第2実施形態に係るストレージシステム100の構成およびその動作によれば、デッドロックの発生を防止することができる点で有利である。
(変形例2(パケットの種類のその他の一例))
上記第2実施形態では、送信パケットか返信パケットに応じて、パケットのルーティングを分離して行う形態を一例に挙げて説明した。しかしながら、これは例示であり、パケットの種類(packet type)に基づいて、パケットのルーティングを行う限り、第2実施形態に限定されないことは勿論である。
例えば、ルーティング回路111は、ルーティング方向(routing direction)に応じて、同様にパケットのルーティングを分離して行ってもよい。より具体的には、上記図12のステップB21の際、ルーティング回路111は、ヘッダ領域HAに記述されたパケットの種類のうちのルーティング方向を参照し、返信方向(reverse)である場合(参照ビットが“1”状態である場合)、当該受信するパケットのルーティング方向が返信方向であると判定する。同様に、ルーティング回路111は、ヘッダ領域HAに記述されたパケットの種類のうちのルーティングの方向を参照し、送信方向(forward)である場合(参照ビットが“0”状態である場合)、当該受信するパケットのルーティング方向が送信方向であると判定する。
例えば、ルーティング回路111は、パケットの発行元(source type)に応じて、同様にパケットのルーティングを分離して行ってもよい。より具体的には、上記図12のステップB21の際、ルーティング回路111は、ヘッダ領域HAに記述されたパケットの種類のうちのパケットの発行元を参照し、それがNM140である場合(参照ビットが“1”状態である場合)、当該受信するパケットの発行元がNM140であると判定する。同様に、ルーティング回路111は、ヘッダ領域HAに記述されたパケットの種類のうちのパケットの発行元を参照し、CU110である場合(参照ビットが“0”状態である場合)、当該受信するパケットの発行元がCU110であると判定する。
例えば、ルーティング回路111は、パケットの送信先(destination type)に応じて、同様にパケットのルーティングを分離して行ってもよい。より具体的には、上記図12のステップB21の際、ルーティング回路111は、ヘッダ領域HAに記述されたパケットの種類のうちのパケットの送信元を参照し、それがCU110である場合(参照ビットが“1”状態である場合)、当該受信するパケットの送信先がCU110であると判定する。同様に、ルーティング回路111は、ヘッダ領域HAに記述されたパケットの種類のうちのパケットの送信先を参照し、NM140である場合(参照ビットが“0”状態である場合)、当該受信するパケットの送信先がNM140であると判定する。
なお、これらに限られず、例えば、X方向のルーティングであるのかそうでないのか、Y方向のルーティングであるのかそうでないのか、分割パケットか分割パケットでないのか等のパケットの種類に応じて、パケットのルーティングを分離して行ってもよい。さらに、その他の必要に応じて、パケットのルーティングを分離して行ってもよい。
(第3実施形態(冗長化、拡張化、実装例等に関する一例))
次に、図16乃至図37を用いて、第3実施形態に係るストレージシステム100ついて説明する。第3実施形態は、上記ストレージシステム100の冗長化、拡張化、実装例等に関する。ここで、第3実施形態に係るストレージシステム100は、例えば、システム動作の停止が困難なクラウドシステム等の基幹的な情報処理システムで利用されるストレージシステム等である。
以下の説明において、上記第1実施形態と重複する部分の詳細な説明を省略する。また、記憶部101に配置されるルーティング回路111の図示を省略する。
[記憶部の冗長化]
まず、図16を用い、記憶部101の冗長化の一例について説明する。
図示するように、各NM140は、カード基板20Bに実装される。4つのカード基板20Bが、着脱可能にコネクタを介してバックプレーン220に装着される。各カード基板20Bには、4つのNM140が実装される。Y方向に配列された4つのNM140は、同一のカード基板20Bに実装され、X方向に配列された4つのNM140は、夫々異なるカード基板20Bに実装される。
ここで、記憶部101において、RAID(Redundant Arrays of Inexpensive Disks)を構築することが可能である。例えば、図示する例では、4つのRAIDグループ210が構築されており、各NM140は、4つのRAIDグループ210のうちのいずれかに属する。そして、夫々異なるカード基板20Bに実装されている4つのNM140は、1つのRAIDグループ210が構成される。ここでは、X方向に配列された4つのNM140が同一のRAIDグループ210に属する。例えば、X方向に配列された4つのNM(0,0)、NM(1,0)、NM(2,0)、NM(3,0)は、同一のRAIDグループ210に属する。
適用されるRAIDのレベルは、任意である。例えばRAID5が適用される場合には、RAIDグループ210を構成する複数のNM140のうちの1つが破損したとき、破損したNM140を有するカード基板20Bを交換することで、破損したNM140に記憶されるデータが復旧される。また、RAID6が適用される場合には、RAIDグループ210を構成する複数のNM140のうちの2つのNM140が破損した場合であっても復旧可能である。
[記憶部の拡張化]
次に、図17を用い、記憶部101の拡張化の一例について説明する。I/F部120は、記憶部101を拡張するための接続インタフェースである。
図示する接続関係において、2台のストレージシステム100A,100Bが、I/F部120を介して接続されている。図示するように、2台のストレージシステム100A,100Bのうちの一方のストレージシステム100Aに備えられる4つのNM140と、他方のストレージシステム100Bに備えられる4つのNM14とが、I/F部120を介して一対一で接続される。
2台のストレージシステム100A,100B間では、I/F部120により接続されたインタフェース150を介してパケットが転送可能である。これにより、4行4列のNM140群により構成される2つの記憶部101A,101Bが論理的に結合され、4行8列のNM140群により構成される1つの記憶部101として使用可能となる。
なお、記憶部101を構成する複数のNM140のうちの何れをI/F部120に接続するか、および、I/F部120に接続するNM140の数は、任意である。また、記憶部101間の接続関係のバリエーションについては後述する。また、ここでは、2つの記憶部101A,101Bにおいて、直接的にNM140群が互いに接続されている。しかし、より具体的には、ルーティング回路111を介して、2つの記憶部101A,101Bにおいて、NM140群が互いに接続される。
[3.実装例]
次に、上記各構成を実装して構成した実装例について説明する。
[3−1.全体]
まず、図18を用い、実装例の全体について説明する。図18は、ストレージシステム100が収容される筐体(エンクロージャ)200を示す図である。ストレージシステム100は、サーバラック201にマウント可能なエンクロージャ200に収容される。
エンクロージャ200の寸法は、サーバラック201が準拠する規格によって規定される。エンクロージャ200の寸法のうちの高さは、‘U(ユニット)’によって表現される。例えば、第3実施形態に係るエンクロージャ200は、積層方向(layer stack)において、‘2U’の高さを有する。
[3−1−1.エンクロージャ(外観)]
次に、図19を用い、ストレージシステム100を収容するエンクロージャ200の外観について説明する。
図示するように、エンクロージャ200は、外装部材211〜213、ノードモジュールカード(NMC)、コネクションユニットカード(CUC)、インタフェースカード(IFC)、マネジメントモジュールカード(MMC)、コンソールカード(COC)、電源装置PSU、補助電源装置BBU、ファン203を備える。
外装部材211,212は、積層方向において、エンクロージャ200の上記各構成部材上を覆うように配置され、所定のねじ止め等により固定される。外装部材213は、エンクロージャ200の前面側(Front side)において、上記各構成部材の前面を覆うように配置され、所定のねじ止め等により固定される。
ノードモジュールカードNMCは、上記NM140、NC140C、ルーティング回路111、PMU112、およびCUインタフェース(PCIe I/F)113が所定のカード基板(回路基板)上に実装された、カード状のモジュールである。各NMCは、エンクロージャ200中のバックプレーン220における所定のコネクタに其々装着され、略鉛直方向に起立した姿勢で並べて支持される。複数のNMCが、コネクタを介して電気的に互いに接続されることで、記憶部101を構成する。
コネクションユニットカードCUCは、上記コネクションユニットCUが所定のカード基板上に実装された、カード状のモジュールである。各CUCは、背面側(Rear side)から略水平方向にエンクロージャ200に収容されてコネクタに装着され、並べて配置される。複数のCUCは、コネクタを介して電気的に互いに接続されてもよい。
インタフェースカードIFCは、上記I/F部120が所定のカード基板上に実装された、カード状のモジュールである。各IFCは、背面側から略水平方向にエンクロージャ200に収容されてコネクタに装着され、並べて配置される。複数のIFCは、コネクタを介して電気的に互いに接続されてもよい。
マネジメントモジュールカードMMCは、上記マネジメントモジュール130(MM)が所定のカード基板上に実装された、カード状のモジュールである。各MMCは、背面側から略水平方向にエンクロージャ200に収容されてコネクタに装着され、並べて配置される。複数のMMCは、コネクタを介して電気的に互いに接続されてもよい。
コンソールカードCOCは、ディスプレイ等の表示装置やキーボード等の入出力装置で構成され、上記各構成部材の入出力等を行うためのものである。COCは、前面側において、エンクロージャ200の表面上に配置される。
電源装置PSUは、上記説明したように、電源コネクタ204を介して外部電源VCから与えられる外部電源電圧を、所定の直流電圧に変換し、変換後の電源電圧VCOを各構成部材に供給する。ここでは、2つの電源装置PSUが、背面側からエンクロージャ200に収容される。また、各電源装置PSUは、所定のファン203Pを備える。このファン203Pを動作させることで送風を行い、上記変換等による発生した熱を放熱させることができる。
補助電源装置BBUは、エンクロージャ200の内の略中央部分に並べて配置される。補助記憶装置BBUは、ここでは、3つを配置する場合を一例に挙げる。補助記憶装置BBUは、上記説明したように、電源装置PSUから電源電圧VCOを受けることで、電気を自身に蓄電する。そして、補助電源装置BBUは、電源装置PSUが外部電源VCから電気的に遮断された場合に、所定の補助電源電圧を上記各構成部材に供給する補助電源として働く。
ファン203は、エンクロージャ200の前面側の端部において、一列ごとに2個ずつの合計8個配置される。各ファン203を動作させることで、列状に配置されたNMC、CUC、IFC、およびMMCに送風を行い、上記各構成部材に発生した熱を放熱させることができる。
[3−1−2.エンクロージャ(Front side)]
次に、図20を用い、エンクロージャ200の前面側の外観について説明する。
図示するように、エンクロージャ200の前面側には、その中央にCOCが配置される。COCには、電源ボタン、各種LED、および各種コネクタが設けられる。COCの左右には、空気を吸気または排気する上記ファン203が夫々2つずつ設けられる。
[3−1−3.エンクロージャ(Rear side)]
次に、図21を用い、エンクロージャ200の背面側の外観について説明する。エンクロージャ200の背面側の中央には、2つの電源装置PSUが配置される。電源装置PSUには、電源装置PSUを冷却するためのファン203Pと、電源コネクタ204とが設けられている。
背面側の左右には、CUC、IFC、MMCが配置される。
CUCは、自身が外部と接続するための6対で合計12個のコネクタ205を備える。ここでは、コネクタ205の規格として、イーサネット(登録商標)規格に準拠するコネクタを一例として説明する。しかし、コネクタ205の規格は、ネットワーク接続可能な規格であれば、任意の規格が採用可能である。
IFCは、自身が外部(他のエンクロージャ)と接続するための4対で合計8個のコネクタ206を備える。コネクタ206の規格には、任意の規格が採用可能である。ここでは、NM140間のインタフェース150として上記LVDSが採用され、コネクタ206の規格としてLVDSが採用されるものとする。
MMCは、自身が外部と接続するための1個のコネクタ207を備える。コネクタ207の規格として、任意の規格が採用可能である。
[3−1−4.エンクロージャ(Lear stack side)]
次に、図22および図23を用い、エンクロージャ200の積層側の外観について説明する。
まず、図22に示すように、エンクロージャ200の内部においては、中央部分に、電源用のバックプレーン210が収容される。電源用のバックプレーン210の左右には、2つのバックプレーン300A,300Bが其々収容される。
各バックプレーン300A,300Bには、カード基板に実装されたCU110、I/F部120、MM130、およびNM140が装着される。そのことで、1つのストレージシステム100として機能する。即ち、エンクロージャ200は、2つのストレージシステム100が収容可能である。
なお、エンクロージャ200は、2つのバックプレーン300A,300Bのうちのいずれか一方が収容される状態で動作可能である。また、エンクロージャ200は、2つのバックプレーン300A,300Bが収容された場合、2つのバックプレーン300A,300Bがコネクタ206を介して互いに接続することが可能である。このように接続することで、2つのストレージシステム100の夫々が有する記憶部101を1つの記憶部101に統合して運用することが可能である。
電源用のバックプレーン210には、エンクロージャ200の積層方向(高さ方向)に重ねて配置された2個の電源装置PSUがエンクロージャ200の背面側(Rear)に配置される。また、電源用のバックプレーン210には、エンクロージャ200の前面側(Front)に3個の補助電源装置BBUが並べて配置される。2個の電源装置PSUは、外部から電源コネクタ204を介して供給された外部電源(商用電源)に基づいて内部電源を生成し、生成した内部電源を電源用のバックプレーン210を介して2つのバックプレーン300A,300Bに供給する。3個のバッテリBBUは、停電など商用電源の供給が途絶えたときに内部電源を生成するバックアップ用の電源である。
次に、図23を用い、図22中の一方のバックプレーン300Aについて説明する。
図示するように、CU110、I/F部120、MM130、およびNM140は、夫々カード基板に実装され、CUC、IFC、MMC、およびNMCとしてバックプレーン300Aのスロットに装着される。
例えば、バックプレーン300Aには、背面側において、左から1枚のMMC、2枚のI/FC、および6枚のCUCが装着される。また、バックプレーン300Aには、前面側において、24枚のNMCが2列に配列されて装着されている。24枚のNMCは、紙面左側の12枚のNMCからなるブロック(第1ブロック401)と、紙面右側の12枚のNMCからなるブロック(第2ブロック402)とに分類される。この分類は、装着位置に基づくものである。
[3−1−5.エンクロージャの使用形態の一例]
次に、図24を用い、エンクロージャ200の使用形態の一例について説明する。図24は、エンクロージャ200の使用形態の一例を示す図である。
図示するように、エンクロージャ200は、配線L2,L3により、CUCのコネクタ205と、ネットワークスイッチ(Network SW)3を介して、PCサーバ2に電気的に接続される。
上記使用形態において、エンクロージャ200に収容されるストレージシステム100は、CUCにおいてPCサーバ2からの要求を解釈し、記憶部101にアクセスする。CUCにおいては、サーバアプリケーションが実行される。PCサーバ2は、サーバアプリケーションが受け付け可能な要求を送信することができる。
なお、ここでは、CUC毎にコネクタ205とネットワークスイッチ3とが接続されている。しかし、この使用形態に限られず、任意のCUCとネットワークスイッチ3とを電気的に接続することが可能である。
[4.各カード構成および接続関係]
次に、エンクロージャ200に収容されるストレージシステム100を構成する上記各カード(NMC、IFC、CUC、MMC)およびこれらの接続関係について説明する。
[4−1.NMC]
[4−1−1.構成]
まず、図25〜図27を用い、NMCの構成について説明する。図25は、NMCの構成を示すブロック図である。図26は、NMCの一方の面を示すブロック図である。図27は、NMCの他方の面を示すブロック図である。
図25に示すように、NMCは、第1および第2のFPGA(field-programmable gate array)403,404、NANDメモリ405〜408,411〜414、DRAM409,410,415,416、およびコネクタ417を備える。
図26、図27に示すように、第1のFPGA403、NANDメモリ405,406、DRAM409,410、およびNANDメモリ407,408は、其々、第2のFPGA404、NANDメモリ411,412、DRAM415,416、NANDメモリ414,415に対して位置的に対称に設けられる。
コネクタ417は、該対称の中心から偏心された位置に設けられる。コネクタ417は、バックプレーン300上のスロットに物理的および電気的に接続される接続機構である。NMCは、コネクタ417とバックプレーン300に形成された配線とを介して、他のNMCと電気的に接続され、他のNMCと通信を行うことが可能である。
[第1のFPGA]
図25に示すように、第1のFPGA403は、4つのNANDメモリ405〜408と、2つのDRAM409,410とに接続される。第1のFPGA403は、1つのルーティング回路111と、5つのPMUと、1つのCUインタフェース113と、4つのNC140Cとを内部に含む。第1のFPGA403に含まれる4つのNC140Cは、DRAM409,410を、上記第2のメモリ142として使用する。
また、第1のFPGA403に含まれる4つのNC140Cは、NANDメモリ405〜408のうちの夫々異なるNANDメモリを、第1のメモリ141として使用する。換言すると、第1のFPGA403、NANDメモリ405〜408、DRAM409、410は、4つのNM140CからなるNM140の一群に相当する。
[第2のFPGA]
第2のFPGA404は、4つのNANDメモリ411〜414と、2つのDRAM415,416とに接続される。第2のFPGA404は、1つのルーティング回路111と、5つのPMUと、1つのCUインタフェース113と、4つのNC140Cを内部に含む。第2のFPGA404に含まれる4つのNC140Cは、DRAM415、416を、上記第2のメモリ142として使用する。
また、第2のFPGA404に含まれる4つのNC140は、NANDメモリ411〜414のうちの夫々異なるNANDメモリを、第1のメモリ141として使用する。換言すると、第2のFPGA404、フラッシュメモリ411〜414、DRAM415,416は、4つのNM140CからなるNM140の一群に相当する。
[インタフェース]
第1のFPGA403は、1本のPCIeインタフェース418(CUインタフェース113)および6本のLVDSインタフェース419により、コネクタ417と電気的に接続される。
第2のFPGA404は、同様に、1本のPCIeインタフェース418(CUインタフェース113)および6本のLVDSインタフェース419により、コネクタ417と電気的に接続される。
第1のFPGA403と第2のFPGA404とは、2本のLVDSインタフェース420で互いに電気的に接続される。
第1のFPGA403および第2のFGPA404は、I2Cインタフェース421でコネクタ417に電気的に接続される。
[4−1−2.NMC(各NC間の論理的な接続関係)]
次に、図28を用い、NMCにおける各ノードコントローラ(NC)140C間の論理的な接続関係について、より詳細に説明する。
図示するように、各NC140Cは、合計4つのインタフェースを其々備える。各NC140Cは、FPGAの内部の2つのインタフェースで、同一のFPGAに含まれる他の2つのNC140と接続される。
具体的には、第1のFPGA403に含まれる4つのNC140Cのうち、2つのNC140Cは、第2のFPGA404に含まれる4つのNC140のうちの2つのNC140Cと、LVDSインタフェース420で相互に接続される。このようにNC140C間が接続されることにより、NMCが有する8個相当のNM140は、4行2列のNM140の一群を構成する。
各NC140Cが備える残りのインタフェースは、他のNMC(図示せず)上のFPGAに含まれるNC140Cと接続するためのインタフェース(LVDSインタフェース419)である。4行2列の配列の4隅に位置するNC140Cは、2つのLVDSインタフェース419を備え、4隅以外の外縁部に位置するNC140は、1つのLVDSインタフェース419を備える。即ち、NMCは、合計12本のLVDSインタフェース419を備える。
LVDSインタフェース419は、他のNMCとの間の接続に使用される。X方向のうちの正側(「X+」方向)に位置するNC140Cは、「X+」方向に論理的に隣接して装着される他のNMC上のNC140Cと相互に接続可能である。X方向のうちの負側(「X−」方向)に位置するNC140Cは、「X−」方向に論理的に隣接して装着される他のNMC上のNC140Cと相互に接続可能である。Y方向のうちの正側(「Y+」方向)に位置するNC140Cは、「Y+」方向に論理的に隣接して装着される他のNMC上のNC140と相互に接続可能である。Y方向のうちの負側(「Y−」方向)に位置するNC140Cは、「Y−」方向に論理的に隣接して装着される他のNMC上のNC140と相互に接続可能である。
[オッドグループ/イーブングループ]
第3実施形態では、NMCが有する合計12本のLVDSインタフェース419は、オッドグループとイーブングループとの2つのグループに分類して説明する。
以下、オッドグループに分類されるLVDSインタフェース419を、LVDSインタフェース419aと表記する。イーブングループに分類されるLVDSインタフェース419を、LVDSインタフェース419bと表記する。
図28において、実線は、オッドグループに属するLVDSインタフェース419aを示す。点線は、イーブングループに属するLVDSインタフェース419bを示す。図示するように、12本のLVDSインタフェース419は、「X+」方向、「X−」方向、「Y+」方向、および「Y−」方向の夫々において、オッドグループとイーブングループとで同数となるように、分類される。
[4−2.IFC]
[4−2−1.構成]
次に、図29を用い、IFCの構成について説明する。図29は、IFCの構成を示すブロック図である。
図示するように、IFCは、コネクタ509,206、LVDSバッファ501,502、キャパシタ503,504を備える。
コネクタ509は、バックプレーン300上のスロットに物理的および電気的に接続される接続機構である。IFCは、コネクタ509とバックプレーン300に形成された配線とを介して、NMCおよび各カード等に電気的に接続される。
コネクタ206は、上記のように、他のIFCを介して、他のエンクロージャ200に収容されるストレージシステム100と電気的に接続するための接続機構である。コネクタ206は、4つのコネクタ505〜508を含む。なお、コネクタ505とコネクタ506とは、同時に着脱可能な着脱機構を備え、コネクタ507とコネクタ508とは、同時に着脱可能な着脱機構を備える。
コネクタ505は、「X+」方向のLVDSインタフェース419の端子を集めたLVDSケーブルコネクタである。コネクタ506は、「X−」方向のLVDSインタフェース419の端子を集めたLVDSケーブルコネクタである。コネクタ507は、「Y+」方向のLVDSインタフェース419の端子を集めたLVDSケーブルコネクタである。コネクタ508は、「Y−」方向のLVDSインタフェース419の端子を集めたLVDSケーブルコネクタである。
「X+」方向のLVDSインタフェース419および「X−」方向のLVDSインタフェース419は、コネクタ509、LVDSバッファ501、およびキャパシタ503を介して、コネクタ505およびコネクタ506に夫々接続される。
「Y+」方向のLVDSインタフェース419および「Y−」方向のLVDSインタフェース419は、コネクタ509、LVDSバッファ502、およびキャパシタ504を介して、コネクタ507およびコネクタ508に夫々接続される。
なお、前述のように、各バックプレーン300には、2枚のIFCが装着される。各バックプレーン300に装着される2枚のIFCのうちの一方は、オッドグループだけを集めたものであり、他方はイーブングループだけを集めたものである。
[4−2−2.IFCとNMCとの接続関係]
次に、図30を用い、IFCとNMCとの接続関係について説明する。図30は、IFCとNMCとの間の電気的な接続関係を示す図である。ここで、オッドグループにかかるコネクタには、符号の末尾にアルファベット「a」を付し、イーブングループにかかるコネクタには、符号の末尾にアルファベット「b」を付して互いに区別する。
図30に示すように、X方向に物理的に隣接する2枚のNMCが、第1ブロック401および第2ブロック402の夫々において、1本のLVDSインタフェース419aと1本のLVDSインタフェース419bとで相互に接続される。
Y方向に物理的に隣接する2枚のNMCが、第1ブロック401および第2ブロック402の夫々において、2本のLVDSインタフェース419aと2本のLVDSインタフェース419bとで相互に接続される。
第1ブロック401の下段に装着されているNMCは、第2ブロック402の下段に装着されているNMCと、1本のLVDSインタフェース419aと1本のLVDSインタフェース419bとで一対一に接続される。
第1ブロック401の下段において紙面左側からi番目に装着されているNMCは、第2ブロック402の下段において紙面右側からi番目に装着されているNMCと一対一に接続される。
[NMCとIFCとの論理的な接続関係]
上記のように物理的に接続されることにより、論理的には、X方向の定義およびY方向の定義が、第1ブロック401と第2ブロック402とで相違する。つまり、第1ブロック401においては紙面右方向が「X+」方向に該当する。第2ブロック402においては紙面左方向が「X+」方向に該当する。第1ブロック401においては紙面上方向が「Y+」方向に該当する。第2ブロック402においては紙面下方向が「Y+」方向に該当する。
そのため、コネクタ505aには、第1ブロック401の右端に装着されたNMCおよび第2ブロック402の左端に装着されたNMCが有する「X+」方向のLVDSインタフェース419のうち、オッドグループに属するLVDSインタフェース419aが接続される。
コネクタ505bには、第1ブロック401の右端に装着されたNMCおよび第2ブロック402の左端に装着されたNMCが有する「X+」方向のLVDSインタフェース419のうち、イーブングループに属するLVDSインタフェース419bが接続される。
コネクタ506aには、第1ブロック401の左端に装着されたNMCおよび第2ブロック402の右端に装着されたNMCが有する「X−」方向のLVDSインタフェース419のうち、オッドグループに属するLVDSインタフェース419aが接続される。
コネクタ506bには、第1ブロック401の左端に装着されたNMCおよび第2ブロック402の右端に装着されたNMCが有する「X−」方向のLVDSインタフェース419のうち、イーブングループに属するLVDSインタフェース419bが接続される。
コネクタ507aには、第1ブロック401の上段に装着されたNMCが有する「Y+」方向のLVDSインタフェース419のうち、オッドグループに属するLVDSインタフェース419aが接続される。
コネクタ507bには、第1ブロック401の上段に装着されたNMCが有する「Y+」方向のLVDSインタフェース419のうち、イーブングループに属するLVDSインタフェース419bが接続される。
コネクタ508aには、第2ブロック402の上段に装着されたNMCが有する「Y−」方向のLVDSインタフェース419のうち、オッドグループに属するLVDSインタフェース419aが接続される。
コネクタ508bには、第2ブロック402の上段に装着されたNMCが有する「Y−」方向のLVDSインタフェース419のうち、イーブングループに属するLVDSインタフェース419bが接続される。
[4−3.CUC(構成)]
次に、図31を用い、CUCの構成について説明する。図31は、CUCの構成を示すブロック図である。
図示するように、CUCは、コネクタ611、第1、第2のプロセッサ601、602、DRAM603、604、2つのコネクタ205、SDソケット609、610を備える。
コネクタ611は、バックプレーン300上のスロットに物理的および電気的に接続される接続機構である。CUCは、コネクタ611とバックプレーン300に形成された配線とを介して、他のカードであるMMCおよびNMCと通信を行うことができる。
第1および第2のプロセッサ601、602は、夫々プログラムを実行することにより、夫々個別のCU110として機能する。換言すれば、1つのCUCは、2つのCU11に相当する。
第1のプロセッサ601は、DRAM603に接続されており、DRAM603をワークエリアとして使用する。第1のプロセッサ601は、SDソケット609に接続される。SDソケット609には、第1のプロセッサ601によって実行されるプログラムが予め格納されたMicroSDカード612が接続される。
第1のプロセッサ601は、2個のコネクタ205のうちの1つにイーサネット規格に準拠するインタフェース606で接続される。第1のプロセッサ601は、コネクタ205を介して、外部と接続される。また、第1のプロセッサ601は、2本のPCIeインタフェース605でコネクタ611に接続される。また、第1のプロセッサ601は、イーサネット規格に準拠する1本のインタフェース607でコネクタ611に接続される。また、第1のプロセッサ601は、1本のI2Cインタフェース608でコネクタ611に接続される。第1のプロセッサ601は、コネクタ611を介して、上記NMCおよびMMCと接続される。
第2のプロセッサ602は、同様に、DRAM604に接続されており、DRAM604をワークエリアとして使用する。第2のプロセッサ602は、SDソケット610に接続される。SDソケット610は、第2のプロセッサ602によって実行されるプログラムが予め格納されたMicroSDカード613が接続される。
第2のプロセッサ602は、同様に、2個のコネクタ205のうちの1つにイーサネット規格に準拠するインタフェース606で接続される。また、第2のプロセッサ602は、2本のPCIeインタフェース605でコネクタ611に接続される。第2のプロセッサ602は、コネクタ205を介して、外部と接続される。また、第2のプロセッサ602は、イーサネット規格に準拠する1本のインタフェース607でコネクタ611に接続される。また、第2のプロセッサ602は、1本のI2Cインタフェース608でコネクタ611に接続される。第2のプロセッサ602は、コネクタ611を介して、上記NMCおよびMMCと接続される。
[4−4.MMC]
[4−4−1.構成]
次に、図32を用い、MMCの構成について説明する。図32は、MMCの構成を示すブロック図である。
図示するように、MMCは、コネクタ720、BMCチップ701、第3のプロセッサ702、DRAM703、704、スイッチ705、コネクタ207、SDソケット706、707を備える。
コネクタ720は、バックプレーン300上のスロットに物理的および電気的に接続される接続機構である。MMC700は、コネクタ720と、バックプレーン300に形成された配線と、を介して他のカードであるNMCおよびCUCと通信を行う。
[BMCチップ]
BMCチップ701は、上記BMCの機能を実現するチップである。BMCチップ701は、DRAM703に接続されており、DRAM703をワークエリアとして使用する。BMCチップ701は、SDソケット706と接続される。BMCチップ701は、SDソケット706に接続されたMicroSDカード716に、各種監視データを記録することができる。BMCチップ701は、コネクタ207とイーサネット規格に準拠するインタフェース708で接続されており、コネクタ207を介して外部と通信を行うことができる。
[第3のプロセッサ]
第3のプロセッサ702は、プログラムに基づいて記憶部101に対してNM制御処理を実行する。第3のプロセッサ702は、DRAM704に接続されており、DRAM704をワークエリアとして使用することができる。第3のプロセッサ702は、SDソケット707に接続されている。SDソケット707は、第3のプロセッサ702によって実行されるプログラムが予め格納されたMicroSDカード717が接続される。
スイッチ705は、コネクタ720との間で12本のインタフェース710で接続され、第3のプロセッサ702との間で1本のインタフェース711で接続され、BMCチップ701との間で1本のインタフェースで接続される。スイッチ705に接続される各インタフェースは、イーサネット規格に準拠するものである。12本のインタフェース710は、コネクタ720およびバックプレーン300を介して、CUCに実装されている各プロセッサ(第1のプロセッサ601、第2のプロセッサ602)に接続される。スイッチ705は、第1のプロセッサ601、第2のプロセッサ602、および第3のプロセッサ702と、BMCチップ701と、の間の通信を中継する。BMCチップ701は、各プロセッサが生成する情報を、スイッチ705を介して取得することができる。
また、BMCチップ701は、コネクタ720との間でI2Cインタフェース712で接続されている。I2Cインタフェース712は、途中でI2Cインタフェース713に分岐する。分岐したI2Cインタフェース713は、第3のプロセッサ702に接続されている。I2Cインタフェース712のコネクタ720側の端子は、バックプレーン300および各種カードのコネクタを介して第1のプロセッサ601、第2のプロセッサ602、第1のFPGA403、および第2のFPGA404に接続される。BMCチップ701は、I2Cインタフェース712を介して第1のプロセッサ601、第2のプロセッサ602、第1のFPGA403、および第2のFPGA404を監視する。第1のプロセッサ601、第2のプロセッサ602、第1のFPGA403、および第2のFPGA404から送られてくる監視データは、I2Cインタフェース713を介して第3のプロセッサ702からも参照される。第3のプロセッサ702は、監視データを用いてNM制御処理を実行することができる。
第3のプロセッサ702は、PCIeインタフェース714でコネクタ720と接続される。PCIeインタフェース714のコネクタ720側の端子は、バックプレーン300を介して、1つのNMCに接続される。第3のプロセッサ702は、任意のNC140に対するパケットをPCIeインタフェース714に送信したり、任意のNC140からのパケットをPCIeインタフェース714を介して受信したりする。
[4−4−2.MMC、CUC、NMCの接続関係]
次に、図33を用い、MMC、CUC、CNC間の接続関係について説明する。図33は、NMC、CUC、およびMMCの間の接続関係を示す図である。本図に示す接続は、全てPCIeインタフェースによるものである。また、図示する接続関係は、各カード内の配線とバックプレーン300に形成された配線とによって実現される。
前述のように、各CUCは、4本のPCIeインタフェース605を備え、各NMCは、2本のPCIeインタフェース418を備える。各CUCは、4本のPCIeインタフェース605が夫々異なるNMCとの接続に使用されることにより、4つのNMCに接続される。各NMCは、2本のPCIeインタフェース418のうちの1本がCUCとの接続に使用される。ここでは、第1のFPGA403が有するPCIeインタフェース418がCUCとの接続に使用される。
紙面左側の3枚のCUCが有する各第1のプロセッサ601は、第1ブロック401の上段に装着された夫々異なるNMCと、第2ブロック402の上段に装着された夫々異なるNMCと、に接続される。また、紙面左側の3枚のCUCが有する各第2のプロセッサ602は、第1ブロック401の下段に装着された夫々異なるNMCと、第2ブロック402の下段に装着された夫々異なるNMCと、に接続される。
紙面右側の3枚のCUCが有する各第1のプロセッサ601は、第1ブロック401の上段に装着された夫々異なるNMCと、第2ブロック402の上段に装着された夫々異なるNMCと、の両方に接続される。また、紙面右側の3枚のCUCが有する各第2のプロセッサ602は、第1ブロック401の下段に装着された夫々異なるNMCと、第2ブロック402の下段に装着された夫々異なるNMCと、の両方に接続される。
このように、各CUCは、第1ブロック401に属するNMCと第2ブロック402に属するNMCの両方に接続される。これにより、第1ブロック401および第2ブロック402の何れか一方にしかNMCが装着されない場合であっても、各CUCは、装着されているNMCに対してCU11としての機能を発揮することが可能となる。また、第1ブロック401および第2ブロック402の両方にNMCが装着されているか否かにかかわらず、1〜6のうちの任意の数のCUCを装着した状態で運用することが可能となる。
なお、次に説明するように、MMCは、第1ブロック401に属する1つのNMCにのみ接続されるので、エンクロージャ200は、少なくとも第1ブロック401にNMCが接続されている状態で運用される。MMCが第2ブロック402に属する任意のNMCに接続される場合には、エンクロージャ200は、第2ブロック402にのみNMCが装着されている状態での運用が可能である。
MMCは、1本のPCIeインタフェース714を備える。MMCは、PCIeインタフェース714が使用されることにより、1つのNMCに接続される。ここでは、NMCにおいては、第2のFPGA404が有するPCIeインタフェース418がMMCとの接続に使用される。また、MMCは、第1ブロック401の上段の最も左側に装着されたNMCに接続される。MMCは、PCIeインタフェース714を介してパケットを送受信することができる。
[4−4−3.MMCとCUCとの間の接続関係]
次に、図34を用い、MMCとCUCとの間の接続関係について説明する。図34は、CUCとMMCとの間の接続関係を示す図である。
ここでは、I2Cインタフェースによる接続の図示を省略し、イーサネット規格に準拠するインタフェースによる接続関係を示す。図示する接続関係は、各カード内の配線とバックプレーン300に形成された配線とによって実現する。
MMCは、イーサネット規格に準拠する12本のインタフェース710を備える。また、各CUCは、イーサネット規格に準拠する2本のインタフェース607を備える。MMCは、CUC毎に2本のインタフェース710が使用されることにより、6枚のCUCと接続される。
[5.スケールアウトのための接続例]
次に、図35乃至図37を用い、記憶部101をスケールアウトするための接続例を説明する。
ここでは、1つのエンクロージャ200が備える2つのストレージシステム100を用いて、1つの記憶部101を構築するための接続例(第1接続例)を説明する。複数のストレージシステム100を互いに識別するために、各ストレージシステム100の符号の末尾にアルファベットを付すこととする。
図35は、第1接続例において使用されるコネクタ群を示す図である。図36は、第1接続例による具体的な接続関係を示す図である。図37は、第1接続例によって論理的に構築される記憶部101を示す図である。
図35に示すように、第1接続例においては、配線L4により、1つのエンクロージャ200が備える2つのストレージシステム100のうちの一(ストレージシステム100A)が備えるコネクタ206と、他(ストレージシステム100B)が備えるコネクタ206との間で相互に接続される。
具体的には、図36に示すように、ストレージシステム100Aが備えるコネクタ507aと、ストレージシステム100Bが備えるコネクタ508aとが接続される。また、ストレージシステム100Aが備えるコネクタ507bと、ストレージシステム100Bが備えるコネクタ508bとが接続される。これらの接続により、ストレージシステム100Aが備える記憶部101Aの「Y+」方向にストレージシステム100Bが備える記憶部101Bが接続される。
その結果、図37に示すように、各ストレージシステム100A、100Bの記憶部101A,101Bが互いに統合されて、新たな1つの記憶部101が論理的に構成される。当該新たな記憶部101は、X方向に6枚のNMCが配列され、Y方向に8枚のNMCが配列されて構成される。
なお、第1接続例においてはY方向に2つの記憶部101が接続されたが、これに限らない。例えば、2つの記憶部101をX方向に接続することも同様に可能である。
[作用効果]
以上説明したように、第3実施形態に係るストレージシステム100の構成および動作よれば、上記(1)乃至(3)と同様の効果が得られる。さらに、第3実施形態に係るストレージシステム100によれば、少なくとも下記(4)に示す効果が得られる。
(4)大容量化とレイテンシの低減化とを両立化することができる。
この説明においては、ストレージシステムの技術的な背景を説明しつつ、説明する。
A)技術的な背景
近年、企業や政府等が取り扱うデータ量やデータ処理の複雑性は、飛躍的に増大し続けている。このようなビッグデータ処理を行うため、3V(Volume、Variety、Velocity)を兼ね備えた大規模データ処理を効率的に行えるようなデータ処理プラットフォームが求められる傾向がある。
しかしながら、例えばHadoop等に代表されるシステムでは、データの移動、前処理、メタデータ処理等の実際のコンピューティングを開始する前に、データ管理に相当するプロセスが数多く必要なことが多い。また、データを分散させることにより、データの一貫性管理の複雑さが増すため、プロセッサを大量に並べて同時処理するようなプラットフォームを用意しても、高速かつ効率的に所望のデータ処理を行うことは困難である。
さらに、上記困難さの度合いは、データ量や要求される処理速度が増加するにつれて飛躍的に増大する。そのため、例えば汎用品を組み合わせてこのようなシステムを構成しようとすると、データサイズとレイテンシとのトレードオフに悩まされることになる。すなわち、取り扱えるデータサイズを大きくするためには、レイテンシを犠牲にしなければならない。一方で、レイテンシを小さくするためには、取り扱うデータサイズを小さくしなければならない。より具体的には、例えばTB(テラビット)を超えるオーダーのデータサイズを取り扱えて、かつサブミリ秒のレイテンシを実現できるようなプラットフォーム等は、ほとんど存在しない。また、まれに存在しても、現実的には、極めて高額のシステムとなってしまう。
B)第3実施形態
上記技術的な背景を鑑み、第3実施形態に係るストレージシステム100は、少なくとも以下の2つを備えて構成される。
第一に、アクティブなデータをすべてNM140の第1のメモリであるNANDメモリ141(405〜408,411〜414)に格納する点である。NANDメモリ141は、大規模データベースを格納可能なシステムをリーズナブルなコストで提供可能な「安価なビットコスト」と、エンタープライズ用途に耐えられる高信頼性を満たすために必要な「不揮発性」とを兼ね備えている。そのため、第3実施形態に係るストレージシステム100は、例えばDRAMベースのインメモリのストレージシステム等と比べて、大規模で高信頼なデータベースを構築するのに適している。さらに、ビッグデータ処理で求められる「サブミリ秒オーダー」のレイテンシを実現するのに十分なアクセス速度を備えている。これらの特性は、例えばHDDベースのストレージシステム等では、実現が極めて困難なものである。
第二に、第3実施形態に係るメモリシステム100は、上記NANDメモリ141を読み書きするNC140Cが互いにパケットデータを送受信するためのネットワークポートであるルーティング回路111やPMU112を備えており、このネットワークポートを相互に接続することで二次元メッシュ状のネットワークを構成する点である。そのため、このネットワーク全体を一つのアドレス空間でアクセスできる、(単一の)巨大な不揮発メモリとみなすことができる。さらに、上記NC140Cは,CU110と直接的に接続可能なインタフェース(ここでは、PCIe I/F 113)を備える。そのため、この巨大な不揮発メモリ空間を、複数のCU110が備える複数のCPU601によってシェアすることができる。すなわち、第3実施形態に係るメモリシステム100は、多数のCPU601が、単一の巨大なデータベースを介し、大規模並列演算をするのに都合が良い。そのため、上記3Vを兼ね備えるビッグデータ分析のプラットフォームとして適しているといえる。
例えば、図17,図35〜図37に示したように、第3実施形態に係るストレージシステム100では、2台のストレージシステム100A,100Bを、I/F部120を介して電気的に接続させることで、容易に拡張化(スケールアウト)することが可能である。このように、記憶部101を拡張化することで、容易に大容量化することができる。
さらに、例えば、図10に示したように、第3実施形態に係るストレージシステム100では、スケールアウトをした場合であっても、ステップ数を低減することができる。そのため、ステップ数の増大に伴うレイテンシを低減することができる。
以上説明したように、第3実施形態に係るストレージシステム100の構成および動作によれば、大容量化とレイテンシの低減化とを両立することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100…ストレージシステム、101…ストレージ部、110…コネクション部、111…ルーティング部、112…パケット制御部、120…インタフェース部、130…マネージメント部、140…メモリ部、140C…制御部、141…不揮発性メモリ、SBF,RBF…記憶部、115S,115R…計算部、SE…選択部。

Claims (7)

  1. 複数のメモリ部と、複数のルーティング部とを備えるストレージ部と、
    前記ストレージ部を外部と接続し、前記ストレージ部を制御するコネクション部と、
    前記ストレージ部および前記コネクション部の電源電圧の監視を少なくとも実行するマネージメント部とを具備し、
    前記複数のメモリ部の各々は、不揮発性メモリと前記不揮発性メモリを制御する制御部とを具備し、
    前記複数のルーティング部の各々は、前記複数のメモリ部の中の1又は複数のメモリ部に接続され、
    前記複数のルーティング部は複数のインターフェースを介して互いに接続され、前記複数のルーティング部の間のパケットの転送を制御し、
    前記複数のルーティング部の各々は、前記複数のインターフェースより多数の内部パケット経路を含むストレージシステム。
  2. 前記複数のルーティング部の各々は、第1パケットを記憶する第1記憶部と、前記第1パケットと種類が異なる第2パケットを記憶する第2記憶部とを有し、前記第1記憶部と前記第2記憶部は前記複数のインターフェースの各々に接続される請求項1に記載のストレージシステム。
  3. 前記複数のルーティング部の各々は、前記第1記憶部に記憶される前記第1パケットのルーティング計算を実行する第1計算部と、前記第2記憶部に記憶される前記第2パケットのルーティング計算を実行する第2計算部と、を更に有する請求項2に記載のストレージシステム。
  4. 前記複数のルーティング部の各々は、前記第1パケットと前記第2パケットのいずれかを選択し、選択した前記第1パケットと前記第2パケットのいずれかを前記第1記憶部と前記第2記憶部のいずれかに記憶させる選択部を更に有する請求項2または請求項3に記載のストレージシステム。
  5. 前記第1パケットと前記第2パケットは、送信パケットと返信パケット、ルーティング方向が返信方向のパケットと送信方向のパケット、異なる発行元からの複数のパケット、又は異なる送信先の複数のパケットを含む請求項2乃至請求項4のいずれか一項に記載のストレージシステム。
  6. 前記複数のルーティング部の各々は、前記パケットに記述されたアドレスの最下位ビットを無視し、前記最下位ビット以外のその他の上位ビットに基づいてルーティングを行う請求項1乃至請求項5のいずれか一項に記載のストレージシステム。
  7. 前記ストレージ部は、前記複数のルーティング部の中のいずれかのルーティング部から転送される前記パケットを解析し、解析結果に基づいて、前記メモリ部に前記パケットを送信するパケット制御部を更に備える請求項1乃至請求項6のいずれか一項に記載のストレージシステム。
JP2015019963A 2015-02-04 2015-02-04 ストレージシステム Active JP6313237B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015019963A JP6313237B2 (ja) 2015-02-04 2015-02-04 ストレージシステム
US14/725,892 US10389808B2 (en) 2015-02-04 2015-05-29 Storage system and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015019963A JP6313237B2 (ja) 2015-02-04 2015-02-04 ストレージシステム

Publications (2)

Publication Number Publication Date
JP2016143307A JP2016143307A (ja) 2016-08-08
JP6313237B2 true JP6313237B2 (ja) 2018-04-18

Family

ID=56554941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015019963A Active JP6313237B2 (ja) 2015-02-04 2015-02-04 ストレージシステム

Country Status (2)

Country Link
US (1) US10389808B2 (ja)
JP (1) JP6313237B2 (ja)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021186A (en) 1995-04-17 2000-02-01 Ricoh Company Ltd. Automatic capture and processing of facsimile transmissions
US5805871A (en) 1995-07-21 1998-09-08 Ricoh Company Ltd. System and method for phase-synchronous, flexible-frequency clocking and messaging
US6594752B1 (en) 1995-04-17 2003-07-15 Ricoh Company, Ltd. Meta-address architecture for parallel, dynamically reconfigurable computing
US5794062A (en) 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US5933642A (en) 1995-04-17 1999-08-03 Ricoh Corporation Compiling system and method for reconfigurable computing
US6077315A (en) 1995-04-17 2000-06-20 Ricoh Company Ltd. Compiling system and method for partially reconfigurable computing
US6055618A (en) 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
JP4285877B2 (ja) * 1999-02-23 2009-06-24 株式会社リコー 動的再構成計算のためのメタアドレス指定アーキテクチャ及び動的再構成計算のためのメタアドレス指定方法
GB0123421D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Power management system
CA2597692A1 (en) 2005-04-21 2006-11-02 Violin Memory, Inc. Interconnection system
US8549092B2 (en) * 2009-02-19 2013-10-01 Micron Technology, Inc. Memory network methods, apparatus, and systems
FR2946441A1 (fr) 2009-06-08 2010-12-10 Commissariat Energie Atomique Reseau d'interconnexions a sous-reseaux dynamiques.
JP5238791B2 (ja) * 2010-11-10 2013-07-17 株式会社東芝 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法
JP5985403B2 (ja) 2013-01-10 2016-09-06 株式会社東芝 ストレージ装置
JP5659289B1 (ja) 2013-12-27 2015-01-28 株式会社東芝 ストレージシステム

Also Published As

Publication number Publication date
US20160226974A1 (en) 2016-08-04
JP2016143307A (ja) 2016-08-08
US10389808B2 (en) 2019-08-20

Similar Documents

Publication Publication Date Title
US20210105207A1 (en) Direct memory access (dma) engine with network interface capabilities
US9176799B2 (en) Hop-by-hop error detection in a server system
US9734081B2 (en) Thin provisioning architecture for high seek-time devices
US9442877B2 (en) Storage device
CN101877342A (zh) 电路布置以及设计方法
US20150036681A1 (en) Pass-through routing at input/output nodes of a cluster server
US9806908B2 (en) Route mapping at individual nodes of a cluster server
JP5659289B1 (ja) ストレージシステム
JP7368942B2 (ja) メモリシステムを含むコンピュータシステム
US11461024B2 (en) Computing system and operating method thereof
JP6342351B2 (ja) ストレージシステム
US11301295B1 (en) Implementing an application specified as a data flow graph in an array of data processing engines
US9939863B2 (en) Power control system and storage system
JP6313237B2 (ja) ストレージシステム
US10928871B2 (en) Computing device and operation method thereof
US9645760B2 (en) Storage system and control method thereof
US10558603B2 (en) Storage system including a plurality of storage devices arranged in a holder
CN105450481A (zh) 片上网络的布局优化方法及装置
US20230244462A1 (en) Handling Interrupts from a Virtual Function in a System with a Reconfigurable Processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170224

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170531

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180206

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180322

R150 Certificate of patent or registration of utility model

Ref document number: 6313237

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150