JP2014194610A - ストレージ装置、制御装置、及びメモリ装置 - Google Patents

ストレージ装置、制御装置、及びメモリ装置 Download PDF

Info

Publication number
JP2014194610A
JP2014194610A JP2013070261A JP2013070261A JP2014194610A JP 2014194610 A JP2014194610 A JP 2014194610A JP 2013070261 A JP2013070261 A JP 2013070261A JP 2013070261 A JP2013070261 A JP 2013070261A JP 2014194610 A JP2014194610 A JP 2014194610A
Authority
JP
Japan
Prior art keywords
information
packet
communication information
port
destination
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.)
Granted
Application number
JP2013070261A
Other languages
English (en)
Other versions
JP6070357B2 (ja
Inventor
Mitsumasa Haneda
光正 羽根田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013070261A priority Critical patent/JP6070357B2/ja
Priority to US14/219,068 priority patent/US9424892B2/en
Publication of JP2014194610A publication Critical patent/JP2014194610A/ja
Application granted granted Critical
Publication of JP6070357B2 publication Critical patent/JP6070357B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1003Interface circuits for daisy chain or ring bus memory arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System (AREA)

Abstract

【課題】ストレージ装置にメモリモジュール群を多段に接続可能にするためにかかる作業負担を軽減させる。
【解決手段】制御装置は、通信情報の宛先までの経路を示す経路情報であって、通信情報の宛先に到達するまでに通過する中継先の宛先を含む該経路情報を付加した該通信情報を送信し、メモリ装置は、前記通信情報を受信し、前記通信情報の宛先が前記自装置宛ではない場合、前記通信情報の前記経路情報に含まれる中継先の宛先を用いて、次の中継先へ、前記通信情報を送信する。
【選択図】図4

Description

本発明は、ストレージ装置に関する。
HDD(Hard disk drive)を記憶媒体とするストレージ装置には、幾つかの大きなデメリットがある。その一つは、HDDのアクセス性能(特にシーク)がボトルネックとなり、ユーザからの性能要求を満たせないことである。スループットを改善するためにストレージ装置にキャッシュを設けることが考えられるが、その場合、装置の信頼性を確保するためにキャッシュの保護のための複雑な仕組みを設けることとなる。
図1は、HDDを記憶媒体としキャッシュを設けたストレージ装置の一例を示す。ストレージ装置10は、CPU(Central Processing Unit)11、メモリコントローラ12、スイッチ13、HDD14、キャッシュメモリ(以下、キャッシュと記す)15、キャッシュミラー16、及びキャッシュバックアップ17を含む。また、ストレージ装置10はホスト18とネットワーク等を介して接続される。
CPU11はホスト18からストレージ装置10に対する入出力要求を受信し、ストレージ装置全体の動作を制御する。メモリコントローラ12はホスト18からのアクセス対象データが格納された領域にアクセスするための仕組みを提供する。スイッチ13は複数のHDD14に接続し、メモリコントローラ12とHDD14のデータのやり取りを中継する。HDD14にはホスト18からのアクセス対象のデータが格納される。
キャッシュ15は、ホスト18とHDD14との間のデータの受け渡しの高速化を図るために使用される。キャッシュミラー16は、キャッシュ15に障害が発生した場合にデータの損失を回避するために設けられたものであり、キャッシュ15と同一の内容のデータが記憶される。キャッシュ15及びキャッシュミラー16はDRAM(Dynamic Random Access Memory)で構成される。
キャッシュ15及びキャッシュミラー16がDRAMで構成される場合、DRAMは揮発性メモリであるので、停電等により予期しない電源停止が発生した場合にキャッシュの内容が失われる。キャッシュバックアップ17は、そのような場合に備えて、不揮発性メモリであるNAND型フラッシュメモリ(以下、NANDと記す)で構成され、予期せぬ電源切断時のキャッシュのバックアップとして機能する。
図1のようにHDDを記録媒体とするストレージシステムにおいて性能を改善するためにキャッシュを設けた場合にシステムの信頼性を確保しようとすると、ストレージシステムの仕組みが複雑になる。
そこで、記憶媒体としてHDDではなくNANDを用いた構成のストレージシステムがある。この構成ではHDDより高速に入出力が行えるため、ユーザの性能要求を満たすためのキャッシュを設けずに、シンプルな構成とすることができる。
図2はNANDで構成されたストレージシステムの一例を示す。ストレージシステム20は、CPU21、NANDコントローラ22、及びNAND型フラッシュメモリ(以下、NANDと記す)23を含む。また、ストレージ装置20はホスト24とネットワーク等を介して接続される。
CPU21は、図1で記したものと同様の機能を提供する。NANDコントローラ22は、複数のNAND23と接続され、NAND23の管理を行う。例えば、NANDコントローラ22は、各NAND23の書換え回数の平準化(wear leveling)や、不良ブロックの管理、エラー訂正(ECC(Error Check and Correct)等)、論理物理アドレス変換などを行う。NAND23にはホストからのアクセス対象のデータが格納される。
ここで、NAND23を記憶媒体とする場合、性能面を考慮すると図2に示すようにNAND23をNANDコントローラ22に対して並列に配置する。また、NAND23は物理的に実装可能な数に限度が有るため、ストレージシステム全体の容量が制限される。このように、図2のようなストレージシステムは、実装密度面でHDDの構成に劣る。
そこで、小容量のNANDを制御するモジュールをツリーもしくはメッシュ状に多段に接続することにより、実装密度面の向上を図る方法がある。図3に、小容量のNANDを制御するモジュールを多段に接続したストレージ装置の一例を示す。ストレージシステム30は、CPU31、メモリコントローラ32、及びメモリモジュール33(図または以下の説明において、MMと記す場合がある)を含む。また、ストレージ装置30はホスト34とネットワーク等を介して接続される。
CPU31は、図1で記したものと同様の機能を提供する。メモリコントローラ32は、ホスト34からのアクセス対象データが格納されたメモリモジュールの領域にアクセスするための仕組みを提供する。メモリモジュール33は、NANDコントローラとNANDを含み、図2で説明したNANDコントローラ22及びNAND23と同様の機能を提供する。
図3においては、メモリモジュール33は、自身に接続されたNANDに対するアクセスパス以外に、他のメモリモジュールに対するスルーパスを備える。
図3に示すようなメモリモジュール群を多段に接続可能にするための方法として、独自にプロトコルを定義して設定する方法がある。
米国特許出願公開第2009/0150707号明細書 特開2010−287203号公報 特開2012−18639号公報
しかしながら、独自にプロトコルを定義する方法では、開発手番(コスト、工数)が大きくなる。
そこで、1つの側面では、本発明は、ストレージ装置にメモリモジュール群を多段に接続可能にするためにかかる作業負担を軽減させることを目的とする。
一態様のストレージ装置は、制御装置と、複数のメモリ装置を含む。制御装置は、通信情報の宛先までの経路を示す経路情報であって、通信情報の宛先に到達するまでに通過する中継先の宛先を含む経路情報を付加した通信情報を送信する。メモリ装置は、通信情報を受信し、通信情報の宛先が自装置宛ではない場合、通信情報の経路情報に含まれる中継先の宛先を用いて、次の中継先へ、通信情報を送信する。
本実施形態に係るストレージ装置によれば、ストレージ装置にメモリモジュール群を多段に接続可能とするためにかかる作業負担を軽減させることができる。
HDDを記憶媒体としキャッシュを設けたストレージ装置の一例を示す。 NANDで構成されたストレージシステムの一例を示す。 小容量のNANDを制御するモジュールを多段に接続したストレージ装置の一例を示す。 本実施形態に係るストレージ装置の構成の一例を示す。 (A)はPCIeのパケットのフォーマットを示し、(B)はTLPヘッダ41のフォーマットを示し、(C)は各メモリモジュール内のローカルメモリアドレスの指定のために40bit確保した場合のアドレスフィールド45の様子を説明するための図である。 本実施形態に係るストレージ装置においてメモリモジュール間の接続の構成を示す図である。 本実施形態において、パケットがメモリコントローラからメモリモジュール内のNANDに送信される様子を説明するための図である。 メモリコントローラがパケットの宛先経路を特定するためのルートマップのデータ構造の一例を示す。 アクセス要求を受信したときのメモリコントローラの動作フローを示す。 (A)は本実施形態に係るストレージ装置で送受信されるパケットの一例を示し、(B)は本実施形態におけるパケットのアドレスフィールドに格納されるデータ構造を示す。 メモリモジュールの構成の一例を示す。 ポート対応表の一例を示す。 NANDコントローラの転送処理の様子を説明するための図(その1)である。 NANDコントローラの転送処理の様子を説明するための図(その2)である。 下位ポートの異常を通知するためのパケットの構成の一例を示す。 エラーが発生したことを通知するための応答通知パケットの構成の一例を示す。 内部エラーが発生した場合のNANDコントローラの動作を説明するための図である。 メモリモジュール間の経路で異常が発生した場合の、パケットが迂回路を通るように設定される様子について説明するための図である。 左迂回フラグが設定されたパケットが転送される様子を説明するための図である。 右迂回フラグが設定されたパケットが転送される様子を説明するための図である。 上位ポートからパケットを受信した際のメモリモジュールの動作フローを示す。 下位ポートからパケットを受信した際のメモリモジュールの動作フローを示す。 下位ポートの異常を検出した際のメモリモジュールの動作フローを示す。 複数のメモリモジュールでRAIDを組んだ接続構成の一例を示す。 メモリモジュールの切り替え後の構成の一例を示す。 本実施形態に係るメモリコントローラ及びNANDコントローラのハードウェア構成の一例を示す。
図4は、本実施形態に係るストレージ装置の構成の一例を示す。
ストレージ装置401は、制御装置402と、複数のメモリ装置403を含む。制御装置402は、通信情報の宛先までの経路を示す経路情報であって、通信情報の宛先に到達するまでに通過する中継先の宛先を含む経路情報を付加した通信情報を送信する。メモリ装置403は、通信情報を受信し、通信情報の宛先が自装置宛ではない場合、通信情報の経路情報に含まれる中継先の宛先を用いて、次の中継先へ、通信情報を送信する。
制御装置402は、第1の記憶部404と、第1の送信部405とを含む。
第1の記憶部404は、通信情報の宛先までの経路を示す経路情報であって、通信情報の宛先に到達するまでに通過する中継先の宛先を含む経路情報を付加した通信情報を記憶する。
第1の送信部405は、通信情報のペイロード部に経路情報を付加して、通信情報を送信する。
メモリ装置403のそれぞれは、受信部406、第2の記憶部407、判定部408、第1の設定部409、第2の送信部410、検出部411、第2の設定部412、及び異常通知生成部413を含む。
受信部406は、ペイロード部に経路情報が付加された通信情報を受信する。
第2の記憶部407は、自装置に接続される他のメモリ装置の識別情報と他のメモリ装置に接続されるポート番号とが対応付けられた情報である対応情報を記憶する。
判定部408は、経路情報に基づいて通信情報が自装置宛であるか否かを判定する。
第1の設定部409は、通信情報が自装置宛ではないと判定された場合、経路情報に含まれる次の中継先の識別情報に対応するポート番号を対応情報から取得し、取得したポート番号を通信情報のヘッダ部に設定する。
第2の送信部410は、ヘッダ部に設定されたポート番号に対応するポートから通信情報を送信する。また、第2の送信部410は、通信情報に迂回情報が設定されている場合、通信情報を送信するポートを変更する。また、第2の送信部410は、通信情報に迂回情報が設定されている場合、迂回情報及び受信部406が通信情報を受信したポートに応じて、通信情報を送信するポートを変更する。第2の送信部410は、通信情報に異常情報が格納されている場合、通信情報を送信するポートを変更する。
検出部411は、次の中継先または次の中継先への経路に異常が発生したことを検出する。
第2の設定部412は、異常が検出された場合、通信情報のペイロード部に通信情報を迂回させるための迂回情報を設定する。
異常通知生成部413は、異常が検出された場合、通信情報を生成し、生成した通信情報のペイロード部に異常が発生したことを示す異常情報を付加する。
制御装置402及び複数のメモリ装置403は、二分木の各ノードに幅優先探索の順で識別情報が振られたときに、識別情報の差が1であり、同一の親ノードを持たない葉ノード間が接続されるグラフにおいて、各ノードにメモリ装置をそれぞれ割り当て、二分木の根ノードに制御装置を割り当てたときに構成される接続形態で接続される。
本実施形態では、ストレージ装置にメモリモジュール群を多段に接続可能とするために、汎用プロトコルを用いる。これにより、メモリモジュール群を多段に接続するために独自のプロトコルを定義する作業を削減できる。
本実施形態では汎用プロトコルとして、PCI Express(以下、PCIeと記す)の汎用プロトコルを用いる。尚、PCIeはIP(intellectual property)としてパッケージされた物が各ベンダーから出ているためプロトコルとして装置に組み込みやすいという側面がある。
PCIeの汎用プロトコルは、図3の例のようにメモリモジュールを多段に接続する構成に適したプロトコルではない。これは、PCIeの汎用プロトコルの構成に因るものである。次に、図5を参照してPCIeの汎用プロトコルの構成を説明し、PCIeの汎用プロトコルは多段接続に適さないプロトコルである理由を説明する。
図5(A)は、PCIeのパケットのフォーマットを示す図である。図5の例は、PCIeのトランザクションレイヤのパケットを示しており、以下の説明ではこのパケットをTLP(transaction layer packet)と記す。TLPは、TLPヘッダ41(TLP Header)、データペイロード42、TLPダイジェスト(TLP Digest)43の3つのフィールドを含む。
TLPヘッダ41は、コマンドタイプやアドレスなどの情報が格納される。データペイロード42はTLPのうち、TLPヘッダ41及びTLPダイジェスト43等の管理情報を除いた正味のデータが格納される。TLPダイジェスト43は、オプションのフィールドであり、誤り検出またはリカバリのためのデータが格納される。
図5(B)は、TLPヘッダ41のフォーマットを示す。TLPヘッダ41は、図5(B)に示すように、上位8バイト(予約領域を含む)の制御情報フィールド44と、下位8バイト(予約領域を含む)のアドレスフィールド45を含む。制御情報フィールド44には例えば、フォーマット、タイプ、長さ等の情報が含まれる。
アドレスフィールド45は、パケットの宛先のアドレスが格納される。ここで、図3のように多段にメモリモジュールを接続する場合において、各メモリモジュールが1TB(terabyte)程度のメモリ容量を有する場合、各メモリモジュール内のローカルのメモリアドレスを指定するために必要なアドレスフィールド45は40bit程度になる。
図5(C)は、各メモリモジュール内のローカルメモリアドレスの指定のために40bit確保した場合のアドレスフィールド45の様子を説明するための図である。図5(C)の上位アドレスフィールド46には、ストレージ装置のメモリモジュールの接続構成において、アクセス対象となるメモリモジュールがどれかを特定するためのアドレス情報(以下、メモリモジュールアドレスと記す)が格納される。メモリモジュールアドレスは、具体的には例えば、各メモリモジュール内に含まれるスイッチのポートの番号がByte単位で表される。下位アドレスフィールド47には、上位アドレスフィールド46で示されるメモリモジュールにおいて、そのメモリモジュールに接続されるNANDの領域のアドレスを指定するためのアドレス情報(以下、ローカルアドレスと記す)が格納される。
下位アドレスフィールド47が40bit確保されると、上位アドレスフィールド46はアドレスフィールド45の残りの24bitが確保されることになる。その場合、上位アドレスフィールド46には3ポート分の情報しか確保できない。このため、メモリモジュールの最大連結数は3個程度となる。このように、PCIeの汎用プロトコルはメモリモジュールの多段接続に適さない。
PCIeの汎用プロトコルにおいて、パケットの種別は、メモリリード、メモリライトなどが定められている。
本実施形態では、メモリコントローラとNANDとの間のアクセスを、メモリライト(Memory.Wt.)のパケットのやり取りを基本として行う。すなわち、メモリリード要求についても、本実施形態においては、メモリライトのパケットを基本としたパケットを用いる。これにより、多段に接続されたメモリモジュールの構成においてPCIeに準拠した構成が実現可能となる。
ここで、PCIeの汎用プロトコルでは、種別がメモリライトのパケットを受け取ったときの応答については規定されていない。よって、PCIeの汎用プロトコルでは書き込みデータのターゲットへの送達は保証されないが、本実施形態においては、メモリライトのパケットを受け取った場合にメモリモジュールは応答パケットを返す。これにより、書き込みデータのターゲットへの送達の保証が可能となる。パケットの応答動作については後ほど説明する。
次に、本実施形態に係るストレージ装置におけるメモリモジュールの接続の構成について説明する。図6は、本実施形態に係るストレージ装置においてメモリモジュール間の接続の構成の一例を示す図である。
図6に示すように、ストレージ装置における接続構成は、メモリコントローラ61を頂点(根)とし、頂点以外の各ノードをメモリモジュール62とする木構造(二分木)のような接続構成となる。ここで、各ノードにあたるメモリモジュール62は一意の識別番号をもち、識別番号は頂点であるメモリコントローラ61から幅優先探索の順に振られる。ただし、接続構成は木構造とは異なり、木構造の最底辺に位置する葉ノードにあたるメモリモジュール62は、隣接する葉ノードにあたるメモリモジュール62に接続される。言い換えると、木構造の最底辺に位置する葉ノードにあたるメモリモジュール62は、以下の条件をもつメモリモジュールに接続される。接続対象のメモリモジュールの条件はすなわち、識別番号の差が1であり、最底辺に位置し、且つ同一の親ノードをもたないメモリモジュールであることである。すなわち、図6の例では、MM8とMM9が接続され、MM10とMM11が接続され、・・・というように接続される。ここで、各ノードはPCIeにより接続される。
尚、メモリコントローラ61に直接接続されるメモリモジュールは2以上であってもよい。ただしその場合も、メモリコントローラ61に直接接続されるメモリモジュールを頂点とする部分木は二分木の構成となる。
以下の説明では、メモリモジュール62間の接続構成に関する説明においては、メモリモジュール62を単にノードと記す場合がある。
図6に示すように、本実施形態における各メモリモジュール62は、他のメモリモジュール62と接続される3つのポートを有する。ポート1(PT.1)は、親ノードに接続され、ポート2(PT.2)及びポート3(PT.3)は、子ノードまたは深さのレベルが等しいノードに接続される。具体的には、最底辺のノード以外の内部ノードにおいては、ポート2は子ノードのうち番号の若い方のノードに接続し、ポート3は子ノードのうち番号の大きい方のノードに接続される。また、着目するノードをノードAとすると、最底辺ノードにおいては、ノードAのポート2は、最底辺のノードのうち識別番号がノードAより1小さいノードに接続される。または、ノードAのポート3は、最底辺のノードのうち識別番号がノードAより1大きいノードに接続される。ここで、最底辺のノードは、同一の親ノードをもつノードに対しては接続されないので、ポート2またはポート3のうちどちらか一方、またはどちらのポートも接続されない構成となる。例えば、MM8はポート3を介してMM9と接続され、MM9はポート2を介してMM8に接続される。また、MM7のポート2及びポート3は接続されない。
以下の説明では、親ノードに接続するポート1を上位ポート、子ノードまたは深さのレベルが等しいノードに接続するポート2及びポート3を下位ポートと記す場合がある。
尚、メモリコントローラ61は、制御装置402に対応する。また、メモリモジュール62は、メモリ装置403に対応する。
次に、パケットがメモリコントローラ61からメモリモジュール62内のNANDに送信される様子を説明する。
図7は、本実施形態において、パケットがメモリコントローラからメモリモジュール内のNANDに送信される様子を説明するための図である。図7の例は、メモリコントローラ61からMM15にパケットが送信される例を示している。
メモリコントローラ61は、各メモリモジュール62に至る経路を予め記録したルートマップ80をメモリコントローラ61の記憶部に格納している。そして、メモリコントローラ61はルートマップ80を用いてパケットの宛先経路を特定し、経路情報82をパケットのデータペイロードに埋め込んで送信する。経路情報82については、詳しくは後ほど説明するが、メモリコントローラ61から宛先のメモリモジュール62までの経路上に位置するメモリモジュール62の識別番号(以下、NIDと記すことがある)を順番に並べた情報である。
図7の例において、MM7及びMM15がパケットを受信した場合の動作を説明する。MM7はパケットを受信すると、パケットに埋め込まれた経路情報82を確認する。そして、MM7は、経路情報82の途中に自身のNID、すなわち、MM7があることを確認すると、MM7の次に記されたNIDのメモリモジュール62であるMM15に対して、パケットを回送する。MM15は、MM7からパケットを受信すると、パケットに埋め込まれた経路情報82を参照する。そして、MM15は、自身のNIDであるMM15が経路情報82の最後に記されていることを確認する。すると、MM15は受信したパケットがMM15宛のパケットであると認識する。
図8は、メモリコントローラがパケットの宛先経路を特定するためのルートマップのデータ構造の一例を示す。
ルートマップ80は、宛先情報81と経路情報82のデータ項目を含む。宛先情報81は、ストレージ装置に含まれるメモリモジュール62の識別番号で示された宛先のメモリモジュール62を示す情報である。経路情報82は、宛先情報81で示されるメモリモジュール62(以下、宛先メモリモジュールと記す)に対するメモリコントローラ61からの経路情報82が格納される。経路情報82は、メモリコントローラ61から宛先メモリモジュールに至る経路上に位置するメモリモジュール62の識別番号(NID)を、メモリコントローラ61側から順に並べたものである。尚、経路情報82の末尾に記されるNIDは、宛先メモリモジュールのNIDとなる。尚、経路情報82は、メモリコントローラ61から宛先メモリモジュールに至る経路が判別できるものであれば、図8の例に限定されない。
次に、メモリコントローラ61がホストからのアクセス要求を受信したときの、パケットの送信動作について説明する。図9は、アクセス要求を受信したときのメモリコントローラの動作フローを示す。
メモリコントローラ61は、アクセス要求とともにアクセス対象のアドレスを受信する(S91)と、アクセス対象のアドレスがどのメモリモジュール62に含まれるNANDの領域かを特定する。そして、メモリコントローラ61は、ルートマップ80を参照し、特定した宛先メモリモジュールに対応する経路情報82を取得する(S92)。次に、メモリコントローラ61は、S92で取得した経路情報82をパケットに埋め込んで、経路情報82に記された最初のメモリモジュール62にパケットを送信する(S93)。
本実施形態においては、メモリコントローラ61はパケットを送信する際に、経路情報82をパケットに埋め込むが、次に、本実施形態にかかるストレージ装置で送受信されるパケットの構成を説明する。図10(A)は、本実施形態に係るストレージ装置で送受信されるパケットの一例を示す。
パケットは、図5に示したPCIeのパケット(TLP)と同様に、TLPヘッダ41、データペイロード42、TLPダイジェスト43の3つのフィールドを含む。
TLPヘッダ41の構成は図5に示したTLPと同様であるが、アドレスフィールド45に格納されるデータは異なる。
図10(B)は、本実施形態におけるパケットのアドレスフィールド45に格納されるデータの構造を示す。アドレスフィールド45には、上位側にMM間回送用制御情報105が含まれ、下位側にNANDアドレス情報106が含まれる。
MM間回送用制御情報105は、上位ポートからパケットを受信したメモリモジュール62が下位ポートからパケットを転送するために使用される制御情報である。具体的には、MM間回送用制御情報105は、メモリモジュール62に含まれるPCIeスイッチがパケットを転送する際の、パケットの出力ポートの番号が格納される。MM間回送用制御情報105が使用される様子は後ほど説明する。
NANDアドレス情報106は、メモリモジュール62が内蔵するNANDアドレス情報が設定される。この情報は、図5(C)における下位アドレスフィールド47の情報と同様である。
データペイロード42は、パケット識別子フラグ101、迂回フラグ102、経路情報103、及びNAND書き込みデータ104が含まれる。
パケット識別子フラグ101は、当該パケットが正常パケットか応答パケットか異常通知パケットかを示す識別子の情報である。
正常パケットは、メモリコントローラ61がアクセス要求を受信した際に宛先アドレスに対して送信するパケットであり、そのようなパケットである場合に、パケット識別子フラグには正常パケットを示す識別子が設定される。
応答パケットは、アクセス対象のメモリモジュール62がパケットを受信して、そのパケットに対して応答する際に送信されるパケットであり、そのようなパケットである場合に、パケット識別子フラグには、応答パケットを示す識別子が設定される。
異常通知パケットは、メモリモジュール62が他のメモリモジュール62と接続されるポートのリンクダウンを検出した場合に送信されるパケットであり、そのようなパケットである場合に、パケット識別子フラグには、異常通知パケットを示す識別子が設定される。
迂回フラグ102は、パケット回送経路上に障害が発生したときに、パケットを迂回させるために設定されるフラグである。迂回フラグ102は、左迂回フラグと右迂回フラグとを含む。詳しくは後ほど説明するが、本実施形態では、障害が発生した経路に応じて、左迂回フラグまたは右迂回フラグの値が設定される。
経路情報103は、パケットが回送される経路を示した情報である。経路情報103には、メモリコントローラ61がルートマップ80を参照して取得した経路情報82が格納される。
NAND書き込みデータ104には、実際にNANDに書き込まれるデータが格納される。
TLPダイジェスト43は図5に示したTLPと同様である。
以下の説明において、パケットとは図10を参照して説明したフォーマットのパケットを指す。
次にメモリモジュール62の構成と動作について説明する。図11は、メモリモジュールの構成の一例を示す。メモリモジュール62は、PCIeスイッチ111、NANDコントローラ112、及びNAND113を含む。
PCIeスイッチ111は、データの転送処理を行う。図11に示すように、PCIeスイッチは4つのポートを有する。ポート1、ポート2、及びポート3は、図6において説明したものである。ポート1(PT.1)は、メモリモジュール62が接続されるネットワークにおいて親ノードに接続され、ポート2(PT.2)及びポート3(PT.3)は、子ノードまたは兄弟ノードに接続されるものである。ポート0はNANDコントローラ112に接続される。
PCIeスイッチ111は、ポート1に接続されたメモリモジュール62もしくはメモリコントローラ61からパケットを受信すると、受信したパケットをポート0からNANDコントローラ112に転送する。また、PCIeスイッチ111は、ポート2またはポート3からパケットを受信すると、受信したパケットをポート1から親ノードに転送する。
さらにPCIeスイッチ111は、NANDコントローラ112からポート0を介してパケットを受信すると、パケットのパケット識別子フラグ101及びMM間回送用制御情報105を参照して、いずれのポートからパケットを出力するかを決定する。そして、PCIeスイッチ111は、決定したポートからパケットを出力する。
具体的には、PCIeスイッチ111は、NANDコントローラ112からパケットを受信すると、先ず、受信したパケットのパケット識別子フラグ101を参照する。
パケット識別子フラグ101が応答パケットを示す識別子に設定されている場合、PCIeスイッチ111は受信したパケットをポート1から出力し、パケットを親ノードに転送する。
パケット識別子フラグ101が異常通知パケットを示す識別子に設定されている場合、PCIeスイッチは受信したパケットをポート1から出力し、パケットを親ノードに転送する。
パケット識別子フラグが正常パケットを示す値に設定されている場合、PCIeスイッチ111は、MM間回送用制御情報105を参照し、MM間回送用制御情報105の値がポート2を示す情報であった場合、受信したパケットをポート2から出力する。また、MM間回送用制御情報105の値がポート3を示す情報であった場合、PCIeスイッチ111は、受信したパケットをポート3から出力する。
次に、NANDコントローラ112について説明する。NANDコントローラ112は、パケットの転送処理、下位ポートの異常通知処理、内部エラー通知処理の機能を持つ。
パケットの転送処理では、NANDコントローラ112は、受信したパケットが自身のノード宛か他のノード宛かを判定し、自身のノード宛の場合は受信したパケットを内部処理し、他のノード宛の場合は受信したパケットを他ノードに転送する処理を行う。尚、以下の説明では、着目するノードそれ自体を自ノードと記し、着目するノード以外のノードを他ノードと記す。
下位ポートの異常通知処理では、NANDコントローラ112は、PCIeスイッチ111の下位ポートの異常(例えばリンクダウン)が検出された場合、異常を検出したことを通知するパケットを生成し、メモリコントローラ61宛に送信する。ここで、PCIeスイッチ111のポートがリンクダウンする場合とは、例えば、メモリモジュール62が接続する経路に障害が発生した場合、または自ノードの下位ポートが直接接続する他ノードがダウンした場合が考えられる。
内部エラー通知処理では、NANDコントローラ112は、内部エラーが発生した場合、エラーが発生したことを通知するパケットを生成し、メモリコントローラ61宛に送信する。内部エラーが発生する場合としては、例えば、内部のNANDに書き込みを行う際にNANDに障害が発生し書き込みエラー等が発生する場合や、パケットを他のノードに転送する際に自ノードのPCIeスイッチに障害が発生しパケットを転送できない場合等が考えられる。
次に、NANDコントローラ112の転送処理について詳細に説明する。
転送処理のために、NANDコントローラ112は、自ノードが属するネットワークにおける自ノードの位置関係を把握するための情報を持つ。NANDコントローラ112は、PCIeスイッチ111のポート番号に対応付けられたNIDを用いてネットワークにおける自ノードの位置関係を把握する。すなわち、NANDコントローラ112は、ポート1、ポート2、及びポート3に接続されるメモリモジュール62のNIDの情報をポート対応表として持つ。
図12にポート対応表の一例を示す。ポート対応表120は、ポート番号121、及び接続メモリモジュール識別情報122のデータ項目を含む。ポート番号121は、メモリモジュール62のPCIeスイッチ111のポートの番号が格納される。接続メモリモジュール識別情報122は、ポート番号121に接続されるメモリモジュール62の識別情報が格納される。図12に示すポート対応表120は、図7のMM3が持つポート対応表の例を示しており、ポート1がNID(MM1)のメモリモジュール62に、ポート2がNID(MM7)のメモリモジュール62に、ポート3がNID(MM8)のメモリモジュール62にそれぞれ接続されていることを示す情報が格納されている。
図13及び図14は、NANDコントローラの転送処理の様子を説明するための図である。
図13に示すように、パケットの転送処理において、NANDコントローラ112は、先ず、受信したパケットに含まれる経路情報103を参照して、そのパケットの宛先が自ノードか否かを判定する。
具体的には、NANDコントローラ112は、受信したパケットに含まれる経路情報103の最後のノードが自ノードか否かを判定する。最後のノードが自ノードである場合、NANDコントローラ112は、パケットの宛先は自ノードであると判定する。最後のノードが自ノードでない場合、NANDコントローラ112は、パケットの宛先は他ノードであると判定する。
受信したパケットの宛先が他ノードであると判定した場合、NANDコントローラ112は、次の宛先メモリモジュールを特定し、特定したNIDのメモリモジュール62に、受信したパケットを転送する。
次の宛先メモリモジュールの特定では、具体的には、NANDコントローラ112は、受信したパケットに含まれる経路情報103において、自ノードの次に記されたノードを転送先ノードであると判定する。例えば、図9のMM7宛てのパケットをMM3が受信した場合、MM3のNANDコントローラ112は、経路情報103において自ノードのNIDの次に記されたNIDであるMM7を転送先ノードであると判定する。
転送先ノードを特定すると、NANDコントローラ112は、ポート対応表120を参照して、転送先ノードに対応するポートの番号を取得する。
次に、NANDコントローラ112は、取得したポート番号を示す情報を、受信したパケットのMM間回送用制御情報105に設定する。
そして、NANDコントローラ112は、設定したパケットをPCIeスイッチ111に転送する。このパケットを受信したPCIeスイッチ111は、MM間回送用制御情報105に設定されたポート番号からパケットを送信する。
ここで、MM間回送用制御情報105は、本実施形態では、パケットの転送先ポートがポート2かポート3のいずれかを示す情報が格納される。よって、MM間回送用制御情報は例えば、1ビットのブール値であってもよく、このようにすることで、TLPヘッダ41のアドレスフィールド45において、各メモリモジュール62内のローカルメモリアドレスの指定のための領域を広く確保することができる。
尚、図13に示すように、下位ポート(ポート2またはポート3)から受信したパケットはNANDコントローラ112を介することなく、上位ポート(ポート1)から送信される。
また、図13に示すように、受信したパケットの宛先が自ノードであると判定した場合、NANDコントローラ112は、受信したパケットを内部に取り込む。そして、NANDコントローラ112は、例えば、受信したパケットが書き込みアクセスの場合、パケットの書き込みデータ104の内容をNANDアドレス情報106で示されるアドレスに書き込む。また、NANDコントローラ112は、図14に示すように、宛先ノードにパケットが到達したことを通知するためのパケット(以下、応答パケットと記す)を生成して、メモリコントローラ61に対して応答する。応答パケットは、書き込み処理が終了した時点で生成されるようにしてもよい。読み込みアクセスの場合は、応答パケットに読み込み対照のデータが格納される。
応答パケットの送信処理では、具体的には、NANDコントローラ112は、先ず新たにパケットを生成し、生成したパケットのパケット識別子フラグ101に応答パケットを示す識別子を設定する。そして、NANDコントローラ112は生成したパケットをPCIeスイッチ111に転送する。PCIeスイッチ111に転送されたパケットは、応答パケット受信時の処理動作に従ってポート1から親ノードに出力され、最終的にメモリコントローラ61に到達する。パケットを受信すると、メモリコントローラ61は異常が発生したことを異常の内容と併せてホストに通知する。
次に、NANDコントローラ112の下位ポートの異常通知処理について説明する。
NANDコントローラ112は、下位ポートの異常(例えばリンクダウン)を検出した場合、ポート異常をメモリコントローラ61に通知するためのパケットを生成し、メモリコントローラ61宛に送信する。
図15に下位ポートの異常を通知するためのパケット(以下、異常通知パケットと記す)の構成の一例を示す。異常通知パケットは、基本的には、図10に示したパケットと同様の構成となるが、異常の内容を格納するための異常内容情報107のフィールドがデータペイロード42に確保される。また、パケット識別子フラグ101に異常通知パケットを示す識別子が設定される。尚、迂回フラグ102、経路情報103、及び書き込みデータ104には値は設定されない。
次に、下位ポートの異常通知を検出した際のNANDコントローラ112の動作について説明する。
下位ポートの異常を検出すると、NANDコントローラ112は、新たにパケットを生成し、生成したパケットのパケット識別子フラグ101に異常通知パケットを示す識別子を設定する。また、NANDコントローラ112は、検出した異常の内容を示す情報を異常内容情報107のフィールドに格納する。異常の内容を示す情報としては、リンクダウンしたポートの番号やリンクダウンしたポートに接続されているメモリモジュール62の情報が格納される。そして、NANDコントローラ112は生成したパケットをPCIeスイッチ111に転送する。PCIeスイッチ111に転送されたパケットは、異常通知パケット受信時の処理動作に従ってポート1から親ノードに出力され、最終的にメモリコントローラ61に到達する。パケットを受信すると、メモリコントローラ61は異常が発生したことを異常の内容と併せてホストに通知する。
次に、NANDコントローラ112の内部エラー通知処理について説明する。
NANDコントローラ112は、親ノードからパケットを受信した際に、内部エラーを検出すると、受信したパケットに対する応答パケットにエラーが発生した旨の情報を格納して応答通知パケットを送信する。
図16は、エラーが発生したことを通知するための応答通知パケット(以下、異常応答通知パケットと記す)の構成の一例を示す。異常応答通知パケットは、基本的には、図10に示したパケットと同様の構成となるが、異常が発生したことを示す応答ステータス情報108と、異常が発生したノードの情報が格納される応答ノード情報109のフィールドがデータペイロード42に確保される。尚、迂回フラグ102、経路情報103、及び書き込みデータ104には値は設定されない。
図17は、内部エラーが発生した場合のNANDコントローラの動作を説明するための図である。図17の例では、メモリモジュール62が親ノードからパケットを受信して、パケットを下位ポートから送信する際にPCIeスイッチ111でエラーが発生した場合の例である。
自ノード内部のエラーを検出すると、NANDコントローラ112は、新たにパケットを生成し、生成したパケットのパケット識別子フラグ101に応答通知パケットを示す識別子を設定する。また、NANDコントローラ112は、応答ステータス情報108に異常を検出したことを示す情報を格納する。応答ステータス情報108は、異常が発生したか否かを判定するためのものであるので、2値のフラグであってよい。また、NANDコントローラ112は、応答ノード情報109に自ノードの識別番号(NID)を格納する。
そして、NANDコントローラ112は生成したパケットをPCIeスイッチ111に転送する。PCIeスイッチ111に転送されたパケットはポート1から出力され、最終的にメモリコントローラ61に到達する。パケットを受信すると、メモリコントローラ61は異常が発生したことをホストに通知する。
内部エラーが発生するケースは図17で示した場合に限定されない。例えば、自ノードが管理するNANDに対するデータの書き込み処理時に、書き込みエラーが発生した場合等が考えられる。
尚、異常応答通知パケットは、親ノードから受信したパケットに対する応答時に送付されるとしたが、エラーを検出したタイミングで異常応答通知パケットを生成し、メモリコントローラ61に宛てて送付してもよい。
本実施形態においては、メモリモジュール62間の経路(PCIeリンク)で異常が発生した場合、パケットは迂回経路を通って宛先のメモリモジュール62に届けられるようにしてもよい。図18は、メモリモジュール間の経路で異常が発生した場合の、パケットが迂回路を通るように設定される様子について説明するための図である。
図18の例では、正常時には、メモリコントローラ61からMM5までの経路は、MM0、MM1、MM3、MM5の経路となる。図18の例において、MM1とMM3の間の経路で障害が発生した場合、MM1は、MM3と接続されるポートのリンクダウンを検出し、異常通知パケットをメモリコントローラ61に送信する。
また、このときMM1はメモリコントローラ61からMM5宛てのパケットを受信すると、迂回経路をとるようにしてMM5にパケットを送信する。図18の例の場合、MM1はパケットを受信すると、MM4、MMx1、MMz1、MMy1、MM5の経路でパケットをMM5に届ける。
このように、メモリモジュール62間の経路で異常が発生した場合にパケットが迂回経路を介して宛先メモリモジュールに到達するようにするために、異常を検出したメモリモジュール62は受信したパケットに対して迂回フラグ102の設定を行う。迂回フラグ102には右迂回フラグと左迂回フラグがあるが、どちらの迂回フラグが設定されるかは、異常を検出したポートに応じて決まる。すなわち、異常を検出したポートが、ポート2(子ノードに接続するポートのうち、識別番号が若いノードに接続されるポート)である場合、NANDコントローラ112は左迂回フラグをたてる(設定する)。また、異常を検出したポートが、ポート3(子ノードに接続するポートのうち、識別番号が大きいノードに接続されるポート)である場合、NANDコントローラ112は右迂回フラグをたてる(設定する)。左迂回フラグを設定すると、メモリモジュール62は、ポート3(障害の発生していない方の下位ポート)からパケットを送信する。また、右迂回フラグを設定すると、メモリモジュール62は、ポート2(障害の発生していない方の下位ポート)からパケットを送信する。
尚、メモリコントローラ61とメモリモジュール62の間の経路に異常が発生した場合も、メモリモジュール61は、メモリモジュール62と同様に迂回フラグを設定し、パケットを送信してもよい。
左迂回フラグが設定されたパケットを上位ポートから受信すると、メモリモジュール62は、ポート2(子ノードに接続するポートのうち、識別番号が若いノードに接続されるポート)から、受信したパケットを送信する。また、右迂回フラグが設定されたパケットを上位ポートから受信すると、メモリモジュール62は、ポート3(子ノードに接続するポートのうち、識別番号が大きいノードに接続されるポート)から、受信したパケットを送信する。
尚、図18の例では、メモリモジュール間の経路で異常が発生した場合の例を示したが、メモリモジュール62自体に異常が発生し、経路情報103で示される経路でパケットが到達不能となる場合も図18と同様の動作となる。
次に、左迂回フラグが設定されたパケットが転送される様子と、右迂回フラグが設定されたパケットが転送される様子を図19及び図20を参照して説明する。
図19は、左迂回フラグが設定されたパケットが転送される様子を説明するための図である。
図19はMM1とMM3の間の経路で障害が発生した場合の例である。障害が発生した、MM1とMM3の間の経路は、MM1のポート2に接続されているため、MM1は上位ノードからパケットを受信するとそのパケットに左迂回フラグを設定する。そして、MM1は障害の発生していない下位ポートであるポート3からMM4に対してパケットを転送する。
MM1から転送されたパケットを上位ポートで受信したMM4は、受信したパケットに左迂回フラグまたは右迂回フラグが設定されているか否かを確認する。図19の例の場合、MM4は、受信したパケットに左迂回フラグが設定されていることを確認する。するとMM4は、左迂回フラグに従って、ポート2からパケットを送信する。同様に、上位ポートでパケットを受信したMMn1及びMMn2は、左迂回フラグに従って、ポート2からパケットを送信する。
MMn2から転送されたパケットを下位ポートで受信したMMn3は、パケットの経路情報103を参照して、パケットの宛先を確認する。すなわち、MMn3は、受信したパケットの経路情報103を参照し、末尾に記されたNIDが自ノードのNIDと一致するか否かを確認する。図19の例の場合、パケットの宛先はMM3であるので、経路情報103に記載される末尾のNIDは、MM3のNIDとなる。よって、MMn3は、受信したパケットの宛先が他ノードであることを確認する。すると、MMn3は上位ポートからパケットを送信する。MM5もMMn3と同様の動作となる。
MM5から転送されたパケットを下位ポートで受信したMM3は、パケットの経路情報103を参照して、パケットの宛先を確認する。すなわち、MM3は、受信したパケットの経路情報103を参照し、末尾に記されたNIDが自ノードのNIDと一致するか否かを確認する。図19の例では、MM3は、パケットの宛先が自ノードであることを確認し、パケットを内部で処理する。
図20は、右迂回フラグが設定されたパケットが転送される様子を説明するための図である。
図20はMM1とMM4の間の経路で障害が発生した場合の例である。障害が発生した、MM1とMM4の間の経路は、MM1のポート3に接続されているため、MM1は上位ノードからパケットを受信するとそのパケットに右迂回フラグを設定する。そして、MM1は障害の発生していない下位ポートであるポート2からMM3に対してパケットを転送する。
MM1から転送されたパケットを上位ポートで受信したMM3は、受信したパケットに左迂回フラグまたは右迂回フラグが設定されているか否かを確認する。図20の例の場合、MM3は、受信したパケットに右迂回フラグが設定されていることを確認する。するとMM3は、右迂回フラグに従って、ポート3からパケットを送信する。同様に、上位ポートでパケットを受信したMM5及びMMn3は、右迂回フラグに従って、ポート3からパケットを送信する。
MMn3から転送されたパケットを下位ポートで受信したMMn2は、パケットの経路情報103を参照して、パケットの宛先を確認する。すなわち、MMn2は、受信したパケットの経路情報103を参照し、末尾に記されたNIDが自ノードのNIDと一致するか否かを確認する。図20の例の場合、パケットの宛先はMM4であるので、経路情報103に記載される末尾のNIDは、MM4のNIDとなる。よって、MMn2は、受信したパケットの宛先が他ノードであることを確認する。すると、MMn2は上位ポートからパケットを送信する。MMn1もMMn2と同様の動作となる。
MMn1から転送されたパケットを下位ポートで受信したMM4は、パケットの経路情報103を参照して、パケットの宛先を確認する。すなわち、MM4は、受信したパケットの経路情報103を参照し、末尾に記されたNIDが自ノードのNIDと一致するか否かを確認する。図20の例では、MM4は、パケットの宛先が自ノードであることを確認し、パケットを内部で処理する。
尚、図13等における説明において下位ポートから受信したパケットはNANDコントローラ112を介さずにポート1から回送されると説明したが、経路迂回を行う場合は図19及び図20で説明したように、NANDコントローラ112における処理が発生する。そのため、下位ポートから受信したパケットは、ポート0から一旦NANDコントローラ112に転送されて、NANDコントローラ112で自ノード宛のパケットか否かの判定処理がなされることとなる。
図19及び図20で説明したように迂回フラグを用いてパケットを迂回させることで、パケットの送信経路上に異常が発生した場合でも、汎用プロトコルを用いてパケットを迂回させて宛先ノードにパケットを届けることができる。
次に、パケットを受信した際のメモリモジュール62の動作フローを図21及び図22を参照して説明する。
図21は、上位ポートからパケットを受信した際のメモリモジュールの動作フローを示す。
メモリモジュール62は上位ポートからパケットを受信すると(S201)、受信したパケットに左迂回フラグまたは右迂回フラグが設定されているか否かを確認する(S202)。左迂回フラグまたは右迂回フラグが設定されている場合(S202でYes)、メモリモジュール62は、迂回フラグに従って、下位ポートのうちどちらのポートからパケットを送信するかを特定し、特定したポートからパケットを送信する(S203)。
S202において、受信したパケットに左迂回フラグも右迂回フラグも設定されていない場合(S202でNo)、メモリモジュール62はパケットの経路情報103を検索する(S204)。そして、メモリモジュール62は、経路情報103に記された末尾のNIDが自ノードのNIDと一致するか否かを確認する(S205)。経路情報103に記された末尾のNIDが自ノードのNIDと一致する場合(S205でYes)、メモリモジュール62は自ノードが管理するNANDに受信したパケットのデータを書き込む(S206)。メモリモジュール62は、パケットの書き込みが終了したら、応答パケットを生成し、メモリコントローラ61に通知する。
S205において、経路情報103に記された末尾のNIDが自ノードのNIDと一致しない場合(S205でNo)、メモリモジュール62は、経路情報103において、自ノードのNIDの次に記載されたNIDを取得する。そして、メモリモジュール62は、ポート対応表120を参照して、取得したNIDに対応するポート番号を取得する(S207)。
次に、メモリモジュール62は、S207で取得したポート番号のポートが正常か否かを判定する(S208)。ポートに異常がある場合(S208でNo)、異常のあるポート番号に応じて、メモリモジュール62はパケットに左迂回フラグまたは右迂回フラグを設定する(S209)。そして、メモリモジュール62は迂回フラグを設定したパケットを正常な下位ポートから回送する(S210)。
S208においてポートに異常がない場合(S208でYes)、メモリモジュール62は、アドレスフィールド45の書換えを行う(S211)。すなわち、メモリモジュール62は、ヘッダ部のアドレスフィールドのMM間回送用制御情報105に、S207で取得したポート番号を設定する。そして、メモリモジュール62は、S211で設定したMM間回送用制御情報105の情報に基いて、パケットを下位ポートから回送する(S212)。
尚、S208では、S207で取得したポート番号のポートに接続されたノードが正常か否かを判定する処理としてもよい。また、S208において、初めてノード異常が検出された場合には、メモリモジュール62は、異常応答通知パケットを生成して、メモリコントローラ61に宛てて、ポート1から生成した異常応答通知パケットを送信してもよい。
図22は、異常発生時にパケットの迂回を行う場合において、下位ポートからパケットを受信した際のメモリモジュールの動作フローを示す。
メモリモジュール62は下位ポートからパケットを受信すると(S221)、受信したパケットのパケット識別子フラグ101の値に正常パケットを示す識別子が設定されているか否かを確認する(S222)。
S222において、受信したパケットのパケット識別子フラグ101に正常パケットを示す識別子が設定されていない場合(S222でNo)、メモリモジュール62は、パケットを上位ポートから親ノードに送信する(S227)。
S222において、受信したパケットのパケット識別子フラグ101に正常パケットを示す識別子が設定されている場合(S222でYes)、受信したパケットの迂回フラグ102に左迂回フラグまたは右迂回フラグが設定されているか否かを確認する(S223)。
S223において、受信したパケットに左迂回フラグも右迂回フラグも設定されていない場合(S223でNo)、メモリモジュール62は、パケットを上位ポートから親ノードに送信する(S227)。
S223において、受信したパケットに左迂回フラグまたは右迂回フラグが設定されている場合(S223でYes)、メモリモジュール62はパケットの経路情報103を検索する(S224)。そして、メモリモジュール62は、経路情報103に記された末尾のNIDが自ノードのNIDと一致するか否かを確認する(S225)。
経路情報103に記された末尾のNIDが自ノードのNIDと一致する場合(S225でYes)、メモリモジュール62は自ノードが管理するNANDメモリに受信したパケットのデータを書き込む(S226)。メモリモジュール62は、パケットの書き込みが終了したら、応答パケットを生成し、メモリコントローラ61に通知する。
S225において、経路情報103に記された末尾のNIDが自ノードのNIDと一致しない場合(S225でNo)、メモリモジュール62は、パケットを上位ポートから親ノードに送信する(S227)。
尚、図21及び図22は、書き込みアクセス時のパケットを例としたため、S206、S226において、データの書き込みを行うとしたが、読み込みアクセス時のパケットの場合は、データの読み込みを行うこととなる。
図23は、下位ポートの異常を検出した際のメモリモジュールの動作フローを示す。
メモリモジュール62は下位ポートの異常を検知すると(S231)、異常通知パケットを生成する(S232)。そして、メモリモジュール62は、生成した異常通知パケットを上位ポートからメモリコントローラ61に宛てて送信する(S233)。
メモリモジュール62で発生する障害に備えて、複数のメモリモジュール62でRAID(Redundant Arrays of Inexpensive Disks)を組むことにより、ストレージ装置の信頼性や可用性を向上させることができる。図24は、複数のメモリモジュールでRAIDを組んだ接続構成の一例を示す。
図24は、MM3、MM7、MM8でRAIDグループが構成され、MM1は、RAIDに含まれるメモリモジュールに障害が発生した場合のスペアとなっている例である。RAIDを構成するメモリモジュール62の情報(以下、RIAD構成情報と記す)はメモリコントローラ61が持つ。RAID構成情報は、例えば、RAIDを構成するメモリモジュール62の識別情報の組、及び、そのRAIDに対応するスペアのメモリモジュール62の識別情報等が含まれる。ここで、RAIDは種々のメモリモジュール62で構成するように設定でき、例えば、MM4、MM9、MM10でRAIDを構成し、MM1はスペアのメモリモジュール62とすることなどができる。
次に、メモリモジュール62で障害が発生した場合の動作を説明する。メモリモジュール(MM7)で発生した障害を検知すると、MM7またはMM3は、異常通知パケットまたは異常応答通知パケットをメモリコントローラ61に宛てて送信する。
メモリコントローラ61は異常通知パケットまたは異常応答通知パケットを受信すると、異常内容情報107または応答ノード情報109を参照し、どのメモリモジュール62に障害が発生したのかを特定する。図24の例では、メモリコントローラ61は、異常が発生したノードはMM7であると特定する。そして、メモリコントローラ61は、RAID構成情報を参照し、障害が発生したメモリモジュール62に対応するスペアのメモリモジュール62の識別情報を取得する。図24の例では、メモリコントローラ61は、スペアのメモリモジュールの識別情報はMM1であることを取得する。そして、メモリコントローラ61は、障害が発生したメモリモジュール62から取得した識別情報のメモリモジュールに切り替えを行う。
図25は、メモリモジュールの切り替え後の構成の一例を示す。図25では、MM1がRAIDグループにアサインされ、MM1、MM3、MM8で新たにRAIDグループが構成されている。メモリモジュール切り替えの命令も、図10で示したパケットのデータペイロード42に切り替え命令を埋め込むことで、汎用プロトコルでのRAIDグループの切り替えを行うことができる。
メモリモジュール62の切り替え動作は、構成するRAIDの種類に応じて異なるが、例えば、パリティ情報などから障害が発生したノードに記憶されたデータを復元してスペアノードに書き込む方法等、種々の方法が採られる。尚、RAIDの構成の切り替えの際には、メモリコントローラ61は障害が発生したメモリモジュール62のアドレスがスペアのメモリモジュール62に対応するように設定変更をする処理等も行われる。
図26は、本実施形態に係るメモリコントローラ61、及びNANDコントローラ112のハードウェア構成の一例を示す。メモリコントローラ61、NANDコントローラ112は、図26に示すように、プロセッサ261、メモリ262、通信インターフェース263、入出力部264を含む。なお、プロセッサ261、メモリ262、通信インターフェース263、入出力部264は、例えば、バス265を介して互いに接続されている。
プロセッサ261は、メモリ262を利用して上述のフローチャートの手順を記述したプログラムを実行する。プロセッサ261は、第1の送信部405、受信部406、判定部408、第1の設定部409、第2の送信部410、検出部411、第2の設定部412、及び異常通知生成部413の機能の一部または全てを提供する。
メモリ262は、例えば半導体メモリであり、RAM(Random Access Memory)領域およびROM(Read Only Memory)領域を含んで構成される。メモリコントローラ61においては、ルートマップ80、及びRAID構成情報はメモリ262に記憶される。NANDコントローラ112においては、自ノードの識別情報、及びポート対応表はメモリ262に記憶される。メモリ262は、第1の記憶部404、及び第2の記憶部407の一部またはすべての機能を提供する。
通信インターフェース263は、プロセッサ261の指示に従ってネットワークを介してパケットを送受信する。通信インターフェース263はメモリコントローラ61においては、PCIeで接続されるポート及びホストと接続するインターフェースに対応する。NANDコントローラ112においては、通信インターフェース263は、PCIeで接続されるポートに対応する。
入出力部264は、メモリコントローラ61においては、ルートマップ80を設定するためのデバイスに相当する。また、入出力部264は、NANDコントローラ112においては、識別番号及びポート対応表120を設定するためのデバイスに相当する。尚、入出力部264はなくてもよい。
実施形態を実現するための情報処理プログラムは、例えば、下記の形態でメモリコントローラ61またはNANDコントローラ112に提供される。
(1)メモリ262に予めインストールされている。
(2)ネットワークを介してホストから提供される。
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
本実施形態では、汎用プロトコルはPCIeに限定されず、他の汎用プロトコルとしてもよい。
上記実施形態に関し、更に以下の付記を開示する。
(付記1)
通信情報の宛先までの経路を示す経路情報であって、通信情報の宛先に到達するまでに通過する中継先の宛先を含む該経路情報を付加した該通信情報を送信する制御装置と、
前記通信情報を受信し、前記通信情報の宛先が自装置宛ではない場合、前記通信情報の前記経路情報に含まれる中継先の宛先を用いて、次の中継先へ、前記通信情報を送信するメモリ装置と、
を備えることを特徴とするストレージ装置。
(付記2)
前記制御装置は、
前記経路情報を記憶する第1の記憶部と、
前記通信情報のペイロード部に前記経路情報を付加して、該通信情報を送信する第1の送信部と、
を備える
ことを特徴とする付記1に記載のストレージ装置。
(付記3)
前記メモリ装置は、
ペイロード部に前記経路情報が付加された前記通信情報を受信する受信部と、
自装置に接続される他の前記メモリ装置の識別情報と前記他のメモリ装置に接続されるポート番号とが対応付けられた情報である対応情報を記憶する第2の記憶部と、
前記経路情報に基づいて前記通信情報が自装置宛であるか否かを判定する判定部と、
前記通信情報が自装置宛ではないと判定された場合、前記経路情報に含まれる次の中継先の識別情報に対応するポート番号を前記対応情報から取得し、取得した前記ポート番号を前記通信情報のヘッダ部に設定する第1の設定部と、
前記ヘッダ部に設定された前記ポート番号に対応するポートから前記通信情報を送信する第2の送信部と、
を備える
ことを特徴とする付記1または2に記載のストレージ装置。
(付記4)
前記メモリ装置は、さらに、
前記次の中継先または前記次の中継先への経路に異常が発生したことを検出する検出部と、
前記異常が検出された場合、前記通信情報のペイロード部に前記通信情報を迂回させるための迂回情報を設定する第2の設定部と、
を備え、
前記第2の送信部は、前記通信情報に前記迂回情報が設定されている場合、前記通信情報を送信するポートを変更する
ことを特徴とする付記3に記載のストレージ装置。
(付記5)
前記第2の送信部は、前記通信情報に前記迂回情報が設定されている場合、前記迂回情報及び前記受信部が前記通信情報を受信したポートに応じて、前記通信情報を送信するポートを変更する
ことを特徴とする付記3または4に記載のストレージ装置。
(付記6)
前記メモリ装置は、さらに、
前記異常が検出された場合、前記通信情報を生成し、生成した該通信情報のペイロード部に前記異常が発生したことを示す異常情報を格納する異常通知生成部
を備え、
前記第2の送信部は、前記通信情報に前記異常情報が格納されている場合、前記通信情報を送信するポートを変更する
ことを特徴とする付記3〜5のうちいずれか1項に記載のストレージ装置。
(付記7)
前記制御装置及び複数の前記メモリ装置は、
二分木の各ノードに幅優先探索の順で識別番号が振られたときに、該識別番号の差が1であり、同一の親ノードを持たない葉ノード間が接続されるグラフにおいて、前記二分木の根ノードに前記制御装置を割り当て、前記根ノード以外の各前記ノードに前記メモリ装置をそれぞれ割り当てたときに構成される接続形態で接続される
ことを特徴とする付記1〜6のうちいずれか1項に記載のストレージ装置。
(付記8)
前記通信情報は、PCI Express規格に準拠している
ことを特徴とする請求項1〜7のうちいずれか1項に記載のストレージ装置。
(付記9)
通信情報の宛先までの経路を示す経路情報であって、通信情報の宛先に到達するまでに通過する中継先の宛先を含む該経路情報を付加した該通信情報を送信する
ことを特徴とする制御装置。
(付記10)
通信情報の宛先までの経路を示す経路情報であって、通信情報の宛先に到達するまでに通過する中継先の宛先を含む該経路情報が付加された通信情報を受信する受信部と、
前記通信情報の宛先が前記自装置宛ではない場合、前記通信情報の前記経路情報に含まれる中継先の宛先を用いて、次の中継先へ、前記通信情報を送信する送信部とを
有することを特徴とするメモリ装置。
(付記11)
制御装置は、通信情報の宛先までの経路を示す経路情報であって、通信情報の宛先に到達するまでに通過する中継先の宛先を含む該経路情報を付加した該通信情報を送信し、
メモリ装置は、
前記通信情報を受信し、前記通信情報の宛先が前記自装置宛ではない場合、前記通信情報の前記経路情報に含まれる中継先の宛先を用いて、次の中継先へ、前記通信情報を送信する
ことを特徴とする制御方法。
(付記12)
前記制御装置は、
前記経路情報を前記通信情報のペイロード部に付加して、該通信情報を送信し、
前記メモリ装置は、
前記ペイロード部に前記経路情報が付加された前記通信情報を受信し、
前記経路情報に基づいて前記通信情報が前記複数のメモリ装置のうちの第1のメモリ装置宛であるか否かを判定し、
前記通信情報が自装置宛ではないと判定された場合、前記経路情報から次の中継先の識別情報を取得し、
取得された前記識別情報に対応するポート番号を、自装置に接続される他のメモリ装置の識別情報と他のメモリ装置に接続されるポート番号とが対応付けられた情報である対応情報から取得し、
取得された前記ポート番号を前記通信情報のヘッダ部に設定し、
前記ヘッダ部に設定された前記ポート番号に対応するポートから前記通信情報を送信する
ことを特徴とする付記11に記載の制御方法。
41 TLPヘッダ
42 データペイロード
43 TLPダイジェスト
44 制御情報フィールド
45 アドレスフィールド
46 上位アドレスフィールド
47 下位アドレスフィールド
61 メモリコントローラ
62 メモリモジュール
80 ルートマップ
81 宛先情報
82 経路情報
101 パケット識別子フラグ
102 迂回フラグ
103 経路情報
104 書き込みデータ
105 MM間回送用制御情報
106 NANDアドレス情報
107 異常内容情報
108 応答ステータス情報
109 応答ノード情報
111 PCIeスイッチ
112 NANDコントローラ
113 NAND
120 ポート対応表
121 ポート番号
122 接続メモリモジュール識別情報
261 プロセッサ
262 メモリ
263 通信インターフェース
264 入出力部
265 バス
401 ストレージ装置
402 制御装置
403 メモリ装置
404 第1の記憶部
405 第1の送信部
406 受信部
407 第2の記憶部
408 判定部
409 第1の設定部
410 第2の送信部
411 検出部
412 第2の設定部
413 異常通知生成部

Claims (6)

  1. 通信情報の宛先までの経路を示す経路情報であって、通信情報の宛先に到達するまでに通過する中継先の宛先を含む該経路情報を付加した該通信情報を送信する制御装置と、
    前記通信情報を受信し、前記通信情報の宛先が自装置宛ではない場合、前記通信情報の前記経路情報に含まれる中継先の宛先を用いて、次の中継先へ、前記通信情報を送信するメモリ装置と、
    を備えることを特徴とするストレージ装置。
  2. 前記制御装置は、
    前記経路情報を記憶する第1の記憶部と、
    前記通信情報のペイロード部に前記経路情報を付加して、該通信情報を送信する第1の送信部と、
    を備える
    ことを特徴とする請求項1に記載のストレージ装置。
  3. 前記メモリ装置は、
    ペイロード部に前記経路情報が埋め込まれた前記通信情報を受信する受信部と、
    自装置に接続される他の前記メモリ装置の識別情報と前記他のメモリ装置に接続されるポート番号とが対応付けられた情報である対応情報を記憶する第2の記憶部と、
    前記通信情報が自装置宛ではない場合、前記経路情報に含まれる次の中継先の識別情報に対応するポート番号を前記対応情報から取得し、取得した前記ポート番号を前記通信情報のヘッダ部に設定する第1の設定部と、
    前記ヘッダ部に設定された前記ポート番号に対応するポートから前記通信情報を送信する第2の送信部と、
    を備える
    ことを特徴とする請求項1または2に記載のストレージ装置。
  4. 前記メモリ装置は、さらに、
    前記次の転送先または前記次の転送先への経路に異常が発生したことを検出する検出部と、
    前記異常が検出された場合、前記通信情報のペイロード部に前記通信情報を迂回させるための迂回情報を設定する第2の設定部と、
    を備え、
    前記第2の送信部は、前記通信情報に前記迂回情報が設定されている場合、前記通信情報を送信するポートを変更する
    ことを特徴とする請求項3に記載のストレージ装置。
  5. 前記第2の送信部は、前記通信情報に前記迂回情報が設定されている場合、前記迂回情報及び前記受信部が前記通信情報を受信したポートに応じて、前記通信情報を送信するポートを変更する
    ことを特徴とする請求項3または4に記載のストレージ装置。
  6. 通信情報の宛先までの経路を示す経路情報であって、通信情報の宛先に到達するまでに通過する中継先の宛先を含む該経路情報が付加された通信情報を受信する受信部と、
    前記通信情報の宛先が前記自装置宛ではない場合、前記通信情報の前記経路情報に含まれる中継先の宛先を用いて、次の中継先へ、前記通信情報を送信する送信部とを
    有することを特徴とするメモリ装置。
JP2013070261A 2013-03-28 2013-03-28 ストレージ装置 Active JP6070357B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013070261A JP6070357B2 (ja) 2013-03-28 2013-03-28 ストレージ装置
US14/219,068 US9424892B2 (en) 2013-03-28 2014-03-19 Storage device to which memory device are connectable in multiple stages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013070261A JP6070357B2 (ja) 2013-03-28 2013-03-28 ストレージ装置

Publications (2)

Publication Number Publication Date
JP2014194610A true JP2014194610A (ja) 2014-10-09
JP6070357B2 JP6070357B2 (ja) 2017-02-01

Family

ID=51622062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013070261A Active JP6070357B2 (ja) 2013-03-28 2013-03-28 ストレージ装置

Country Status (2)

Country Link
US (1) US9424892B2 (ja)
JP (1) JP6070357B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11966634B2 (en) 2021-12-02 2024-04-23 Kioxia Corporation Information processing system and memory system

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6901831B2 (ja) * 2015-05-26 2021-07-14 株式会社半導体エネルギー研究所 メモリシステム、及び情報処理システム
US20170111286A1 (en) * 2015-10-15 2017-04-20 Kabushiki Kaisha Toshiba Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
CN106713183B (zh) * 2015-10-30 2020-03-17 新华三技术有限公司 网络设备的接口板以及该网络设备和报文转发方法
JP7080863B2 (ja) * 2019-08-02 2022-06-06 株式会社日立製作所 ストレージ装置
CN113498600B (zh) * 2020-01-22 2022-11-25 华为技术有限公司 一种基于PCIe的数据传输方法及装置
EP4080845A4 (en) * 2020-01-22 2023-01-11 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR DATA TRANSMISSION ON PCIE BASE

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03195235A (ja) * 1989-12-25 1991-08-26 Mitsubishi Electric Corp パケット交換網のルーチング制御方式
JPH0628244A (ja) * 1992-07-10 1994-02-04 Fujitsu Ltd 記憶装置及びこれを用いた情報処理システム
JPH07239835A (ja) * 1994-02-25 1995-09-12 Hitachi Ltd 並列計算機のネットワーク内データ転送制御方式
JP2000278351A (ja) * 1998-06-12 2000-10-06 Yazaki Corp 通信網および通信装置
WO2006021988A1 (ja) * 2004-08-24 2006-03-02 Mitsubishi Denki Kabushiki Kaisha 中継装置及びネットワーク
US20060206655A1 (en) * 2004-12-10 2006-09-14 Chappell Christopher L Packet processing in switched fabric networks
JP2007258932A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd パケット伝送システム
JP2008278424A (ja) * 2007-05-07 2008-11-13 Nec Access Technica Ltd リピータ通信機、集中管理端末および通信システム
JP2009187483A (ja) * 2008-02-08 2009-08-20 Hitachi Ltd ストレージサブシステム及びこれの制御方法
JP2011193707A (ja) * 2010-03-17 2011-09-29 Hitachi Consumer Electronics Co Ltd 無線通信システム、これに用いられる送電装置
JP2012103926A (ja) * 2010-11-10 2012-05-31 Toshiba Corp 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032266A (en) * 1996-04-05 2000-02-29 Hitachi, Ltd. Network system having function of changing route upon failure
JP2006195821A (ja) * 2005-01-14 2006-07-27 Fujitsu Ltd 情報処理システムの制御方法、情報処理システム、ダイレクトメモリアクセス制御装置、プログラム
JP4391954B2 (ja) * 2005-02-18 2009-12-24 富士通株式会社 ファイル制御システムおよびファイル制御装置
JP4658122B2 (ja) * 2005-04-01 2011-03-23 富士通株式会社 Dmaコントローラ、ノード、データ転送制御方法、及びプログラム
US8112655B2 (en) 2005-04-21 2012-02-07 Violin Memory, Inc. Mesosynchronous data bus apparatus and method of data transmission
WO2008120325A1 (ja) 2007-03-28 2008-10-09 Fujitsu Limited スイッチ、情報処理装置およびアドレス変換方法
US9123409B2 (en) 2009-06-11 2015-09-01 Micron Technology, Inc. Memory device for a hierarchical memory architecture
JP2012018639A (ja) 2010-07-09 2012-01-26 Toshiba Corp メモリシステムおよび不揮発性半導体メモリ
US8792506B2 (en) * 2010-11-01 2014-07-29 Indian Institute Of Technology Bombay Inter-domain routing in an n-ary-tree and source-routing based communication framework

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03195235A (ja) * 1989-12-25 1991-08-26 Mitsubishi Electric Corp パケット交換網のルーチング制御方式
JPH0628244A (ja) * 1992-07-10 1994-02-04 Fujitsu Ltd 記憶装置及びこれを用いた情報処理システム
JPH07239835A (ja) * 1994-02-25 1995-09-12 Hitachi Ltd 並列計算機のネットワーク内データ転送制御方式
JP2000278351A (ja) * 1998-06-12 2000-10-06 Yazaki Corp 通信網および通信装置
WO2006021988A1 (ja) * 2004-08-24 2006-03-02 Mitsubishi Denki Kabushiki Kaisha 中継装置及びネットワーク
US20060206655A1 (en) * 2004-12-10 2006-09-14 Chappell Christopher L Packet processing in switched fabric networks
JP2007258932A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd パケット伝送システム
JP2008278424A (ja) * 2007-05-07 2008-11-13 Nec Access Technica Ltd リピータ通信機、集中管理端末および通信システム
JP2009187483A (ja) * 2008-02-08 2009-08-20 Hitachi Ltd ストレージサブシステム及びこれの制御方法
JP2011193707A (ja) * 2010-03-17 2011-09-29 Hitachi Consumer Electronics Co Ltd 無線通信システム、これに用いられる送電装置
JP2012103926A (ja) * 2010-11-10 2012-05-31 Toshiba Corp 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11966634B2 (en) 2021-12-02 2024-04-23 Kioxia Corporation Information processing system and memory system

Also Published As

Publication number Publication date
US20140298086A1 (en) 2014-10-02
JP6070357B2 (ja) 2017-02-01
US9424892B2 (en) 2016-08-23

Similar Documents

Publication Publication Date Title
JP6070357B2 (ja) ストレージ装置
US9734086B2 (en) Apparatus, system, and method for a device shared between multiple independent hosts
US9684560B2 (en) Apparatus, system, and method to increase data integrity in a redundant storage system
KR101455016B1 (ko) 고가용성 솔리드 스테이트 드라이브를 제공하는 방법 및 장치
US20190235777A1 (en) Redundant storage system
US20210294699A1 (en) Control plane method and apparatus for providing erasure code protection across multiple storage devices
TWI237171B (en) Tree based memory structure
JP5902137B2 (ja) ストレージシステム
CN102223394A (zh) 远程直接存储设备访问
CN101477480B (zh) 内存控制方法、装置及内存读写系统
JP6005533B2 (ja) 記憶装置および記憶方法
US20150006953A1 (en) System and method of a hardware shadow for a network element
WO2019047026A1 (zh) 数据迁移的方法、系统及智能网卡
US11531498B2 (en) Peer storage device messaging over control bus
JP2018060419A (ja) ストレージ制御装置およびストレージ装置
US8522075B2 (en) Storage system having storage devices for storing data and control devices for controlling the storage devices
CN112104729A (zh) 一种存储系统及其缓存方法
JP6269163B2 (ja) 中継装置、ストレージ装置、および中継プログラム
US10956245B1 (en) Storage system with host-directed error scanning of solid-state storage devices
US10506042B2 (en) Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
US20200334103A1 (en) Storage system, drive housing thereof, and parity calculation method
US20190028542A1 (en) Method and device for transmitting data
US10248357B2 (en) Data storage system with hardware-based message routing
WO2023046129A1 (zh) 计算机设备、处理数据的方法及计算机系统
CN114822631A (zh) 一种基于mram主存的混合型nvme ssd存储系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160927

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161110

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: 20161206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161219

R150 Certificate of patent or registration of utility model

Ref document number: 6070357

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150