(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2017-146965(P2017-146965A)
(43)【公開日】2017年8月24日
(54)【発明の名称】メモリ装置、メモリシステム及び方法
(51)【国際特許分類】
G06F 11/20 20060101AFI20170728BHJP
G06F 11/14 20060101ALI20170728BHJP
【FI】
G06F11/20 669
G06F11/14 664
G06F11/14 641D
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【全頁数】16
(21)【出願番号】特願2017-15664(P2017-15664)
(22)【出願日】2017年1月31日
(31)【優先権主張番号】62/297,014
(32)【優先日】2016年2月18日
(33)【優先権主張国】US
(31)【優先権主張番号】15/136,775
(32)【優先日】2016年4月22日
(33)【優先権主張国】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ETHERNET
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
(74)【代理人】
【識別番号】110000051
【氏名又は名称】特許業務法人共生国際特許事務所
(72)【発明者】
【氏名】マラディ,クリシュナ ティ
(72)【発明者】
【氏名】ゼン 宏 忠
【テーマコード(参考)】
5B027
5B034
【Fターム(参考)】
5B027CC04
5B034BB11
5B034CC02
5B034DD05
5B034DD06
(57)【要約】
【課題】データ持続のためのメモリ装置、メモリシステム及び方法を提供する。
【解決手段】メモリ装置はデータを格納するための複数の揮発性メモリを含む。また、メモリ装置は、ホストコンピュータから受信した作業負荷に関連したデータを格納するように構成された不揮発性メモリバッファと、前記データを前記複数の揮発性メモリ及び前記不揮発性メモリバッファに格納し、前記データを遠隔ノードに複製するように構成されたメモリコントローラを含む。前記不揮発性メモリバッファは前記遠隔ノードによって設定された承認ビットを含むテーブル内に前記データを格納するように構成される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
データを格納するための複数の揮発性メモリと、
ホストコンピュータから受信した作業負荷に関連したデータを格納するように構成された不揮発性メモリバッファと、
前記データを前記複数の揮発性メモリ及び前記不揮発性メモリバッファに格納し、前記データを遠隔ノードに複製するように構成されたメモリコントローラと、を有し、
前記不揮発性メモリバッファは、前記遠隔ノードによって設定された承認ビットを含むテーブル内に前記データを格納するように構成されることを特徴とするメモリ装置。
【請求項2】
前記不揮発性メモリバッファは、バッテリーによって駆動されるDRAMまたはキャパシターによってバックアップされるDRAMであることを特徴とする請求項1に記載のメモリ装置。
【請求項3】
前記不揮発性メモリバッファは、相変化RAM(PCM)、抵抗性RAM(ReRAM)、及び磁気ランダムアクセスメモリ(MRAM)のうちのいずれか1つであることを特徴とする請求項1に記載のメモリ装置。
【請求項4】
前記メモリ装置と前記遠隔ノードは、伝送制御プロトコル(TCP/IP)ネットワークを通じて互いに接続され、前記遠隔ノードは、TCP/IPパケット内で前記承認ビットを前記メモリ装置に送信することを特徴とする請求項1に記載のメモリ装置。
【請求項5】
前記メモリ装置と前記遠隔ノードは、リモートダイレクトメモリアクセス(RDMA)を通じて互いに接続され、前記ホストコンピュータは、前記遠隔ノードのデータ複製状態をポーリングし前記メモリ装置の不揮発性メモリバッファ内の前記データと関連した前記承認ビットを更新することを特徴とする請求項1に記載のメモリ装置。
【請求項6】
前記テーブルは、複数のデータ項目を含み、各データ項目は、論理ブロックアドレス(LBA)、有効ビット、承認ビット、優先ビット、及び前記データを含むことを特徴とする請求項1に記載のメモリ装置。
【請求項7】
前記メモリ装置及び前記遠隔ノードのマッピング情報は、前記ホストコンピュータ内に格納されることを特徴とする請求項1に記載のメモリ装置。
【請求項8】
前記不揮発性メモリバッファは前記ホストコンピュータによって頻繁に要求されるデータを格納し、前記メモリコントローラは前記不揮発性メモリバッファから要求頻度の少ないデータをフラッシュすることを特徴とする請求項1に記載のメモリ装置。
【請求項9】
ホストコンピュータと、
ネットワークを通じて互いに接続された複数のメモリ装置と、を有し、
前記複数のメモリ装置は、各々、
データを格納するための複数の揮発性メモリと、
ホストコンピュータから受信した作業負荷に関連したデータを格納するように構成された不揮発性メモリバッファと、
前記データを前記複数の揮発性メモリ及び前記不揮発性メモリバッファに格納し、前記データを遠隔ノードに複製するように構成されたメモリコントローラと、を含み、
前記不揮発性メモリバッファは、前記遠隔ノードによって設定された承認ビットを含むテーブル内に前記データを格納するように構成されることを特徴とするメモリシステム。
【請求項10】
前記不揮発性メモリバッファは、バッテリーによって駆動されるDRAMまたはキャパシターによってバックアップされるDRAMであることを特徴とする請求項9に記載のメモリシステム。
【請求項11】
前記不揮発性メモリバッファは、相変化RAM(PCM)、抵抗性RAM(ReRAM)、及び磁気ランダムアクセスメモリ(MRAM)のうちのいずれか1つであることを特徴とする請求項9に記載のメモリシステム。
【請求項12】
前記テーブルは、複数のデータ項目を含み、各データ項目は、論理ブロックアドレス(LBA)、有効ビット、承認ビット、優先ビット、及び前記データを含むことを特徴とする請求項9に記載のメモリシステム。
【請求項13】
メモリ装置が、ホストコンピュータからデータ及び論理ブロックアドレス(LBA)を含むデータ書込み要求を受信する段階と、
前記LBAに基づいてメモリ装置の複数の揮発性メモリの中の1つに前記データを書き込む段階と、
前記メモリ装置の不揮発性メモリバッファ内に前記データ書込み要求に対するデータ項目を生成する段階と、を有し、
前記データ項目は、前記LBA、有効ビット、承認ビット、及び前記データを含み、
前記データ項目の有効ビットを設定する段階と、
前記データを遠隔ノードに複製する段階と、
前記遠隔ノードへの正常なデータ複製を示す承認を受信する段階と、
前記承認に基づいて前記データ項目の承認ビットを更新する段階と、
前記データ項目の有効ビットを更新する段階と、をさらに有することを特徴とする方法。
【請求項14】
メモリ装置が、前記ホストコンピュータからの前記データに対するデータ読出し要求を受信する段階と、
前記データが前記メモリ装置からローカルに利用可能であるか否かを判断する段階と、
ローカルに利用可能である場合、前記メモリ装置に格納された前記データを前記ホストコンピュータに伝送する段階と、をさらに有することを特徴とする請求項13に記載の方法。
【請求項15】
前記不揮発性メモリバッファに格納された前記データは、前記ホストコンピュータに伝送されることを特徴とする請求項14に記載の方法。
【請求項16】
メモリ装置が、前記ホストコンピュータからの前記データに対するデータ読出し要求を受信する段階と、
前記データが前記メモリ装置からローカルに利用可能であるか否かを判断する段階と、
ローカルに利用不可能な場合、前記複製されたデータを格納する遠隔ノードを認識する段階と、
前記遠隔ノードに格納されたデータを前記ホストコンピュータに伝送する段階と、
前記メモリ装置の前記揮発性メモリ及び前記不揮発性メモリバッファの中の1つに格納された前記データを更新する段階と、をさらに有することを特徴とする請求項13に記載の方法。
【請求項17】
前記メモリ装置が障害から復旧モードに入ることを決定する段階と、
前記データの読出し要求に対する前記複製されたデータを格納する遠隔ノードを認識する段階と、
前記遠隔ノードからの前記データを伝送する段階と、
前記遠隔ノードからの前記データを前記メモリ装置に複製する段階と、をさらに含むことを特徴とする請求項13に記載の方法。
【請求項18】
前記遠隔ノードからTCP/IPパケットに前記承認ビットを受信する段階をさらに有することを特徴とする請求項13に記載の方法。
【請求項19】
前記メモリ装置と前記遠隔ノードは、リモートダイレクトメモリアクセス(RDMA)を通じて互いに通信し、前記方法は、前記遠隔ノードのデータ複製状態をポーリングし、前記メモリ装置の前記不揮発性メモリバッファ内で前記データと関連した前記承認ビットを更新する段階をさらに有することを特徴とする請求項13に記載の方法。
【請求項20】
前記不揮発性メモリバッファは、バッテリー駆動されるか、キャパシターにバックアップされるか、或いは相変化RAM(PCM)、抵抗性RAM(ReRAM)、及び磁気ランダムアクセスメモリ(MRAM)を含むグループから選択されることを特徴とする請求項13に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はコンピュータ用メモリシステムに関し、より具体的には、データ持続のためのメモリ装置、メモリシステム及び方法に関する。
【背景技術】
【0002】
データベース、仮想デスクトップコンピュータ基盤構造、及びデータ分析のようなデータ集約アプリケーション対象のコンピュータシステムは、ストレージ結合(storage−bound)であり、大規模データトランザクションレート(largedata transaction rates)を持続する。これらのシステムの作業負荷(workloads)は永続性を有することを必要とし、したがってデータは頻繁に不揮発性データストレージ装置(例えば、ソリッドステートドライブ(SSD)装置)にコミット(commit)される。より高い水準のデータ持続を得るために、これらのコンピュータシステムはストレージ装置プール(pool)内で他のノードにデータを複製することができる。多重ノードに複製されたデータはデータのより速い可用性をデータ要求側に対して保証し、電源障害からノードのより速やかな復旧を保証することができる。
【0003】
しかし、不揮発性データストレージ装置に対するデータのコミットメント(commitment)はデータアクセス性能を抑圧(throttle)することになる。なぜならば、不揮発性データ格納装置に対するアクセス速度は揮発性メモリ(例えばDRAM)のアクセス速度より数十倍以上遅いためである。性能問題を取り扱うために、幾つかのシステムはデータレイテンシを減らし電源障害から復旧するためのデータを複製するためにインメモリデータセット(in−memory data sets)を使用する。しかし、インメモリデータセットは典型的に永続性及び信頼性がない。ネットワークを通じてデータ複製は本質的なレイテンシを有し、揮発性メモリの速い速度を十分に活用できないようにする。
【0004】
DRAMに加えて、他のシステムは不揮発性ランダムアクセスメモリ(NVRAM)を使用する。不揮発性ランダムアクセスメモリは、永続性あるデータ格納を完遂する間に速やかなデータコミットメントを遂行するために、バッテリーによって駆動されるかキャパシターによってバックアップされる。しかし、これらのシステムは大規模データセットを有するアプリケーションを実行することを必要とし、そのようなシステムを構成する費用は、電源遮断期間の間にNVRAMに電力を提供するための大きなバッテリー又はキャパシターのための費用によって高くなる。
【0005】
そのようなトレード・オフを除去するために、相変化RAM(phase−change RAM:PCM)、抵抗性RAM(resistive RAM:ReRAM)、及び磁気ランダムアクセスメモリ(magnetic random access memory:MRAM)のような新しい種類のメモリがDRAMと比較できる程度の速度及び性能を備え、不揮発で速やかなデータコミットメントを与えるために導入された。しかし、これらのシステムはライト経路及び永続性の挑戦に直面している。また、新しい種類のメモリの具現はDRAMやフラッシュメモリのような主要なメモリ技術を置き換えるために大規模の製造投資を引き起こす。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許第7,124,244号公報
【特許文献2】米国特許第8,868,828号公報
【特許文献3】米国特許公開第2006/01184736号明細書
【特許文献4】米国特許公開第2010/0125704号明細書
【特許文献5】米国特許公開第2005/024360928号明細書
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、上記従来のメモリシステムにおける問題点に鑑みてなされたものであって、本発明が解決しようとする技術的課題は、データ持続のためのメモリ装置、メモリシステム及び方法を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するためになされた本発明の一実施形態に係るメモリ装置は、データを格納するための複数の揮発性メモリを含む。また、メモリ装置はホストコンピュータから受信した作業負荷に関連したデータを格納するように構成された不揮発性メモリバッファ及び前記データを前記複数の揮発性メモリ及び前記不揮発性メモリバッファに格納し、前記データを遠隔ノードに複製するように構成されたメモリコントローラを含む。前記不揮発性メモリバッファは前記遠隔ノードによって設定された承認ビットを含むテーブル内に前記データを格納するように構成されることを特徴とする。
【0009】
上記目的を達成するためになされた本発明の他の実施形態に係るメモリシステムは、ホストコンピュータ及びネットワークを通じて互いに連結された複数のメモリ装置を含む。前記複数のメモリ装置は各々、データを格納するための複数の揮発性メモリと、ホストコンピュータから受信した作業負荷に関連したデータを格納するように構成された不揮発性メモリバッファと、前記データを前記複数の揮発性メモリ及び前記不揮発性メモリバッファに格納し、前記データを遠隔ノードに複製するように構成されたメモリコントローラと、を含む。前記不揮発性メモリバッファは前記遠隔ノードによって設定された承認ビットを含むテーブル内に前記データを格納するように構成されることを特徴とする。
【0010】
上記目的を達成するためになされた本発明のその他の実施形態に係るデータを複製する方法は、メモリ装置がホストコンピュータからデータ及び論理ブロックアドレス(LBA)を含むデータ書込み要求を受信する段階と、前記LBAに基づいてメモリ装置の複数の揮発性メモリの中の1つに前記データを書き込む段階と、前記メモリ装置の不揮発性メモリバッファ内に前記データ書込み要求に対するデータ項目を生成する段階と、を含む。前記データ項目はLBA、有効ビット、承認ビット、及び前記データを含む。前記方法は、前記データ項目の有効ビットを設定する段階と、前記データを遠隔ノードに複製する段階と、前記遠隔ノードへの正常なデータ複製を示す承認を受信する段階と、前記承認に基づいて前記データ項目の承認ビットを更新する段階と、前記データ項目の有効ビットを更新する段階と、をさらに有することを特徴とする。
【0011】
具現の多様な新規詳細及びイベントの組合せを含んで、前記及び他の望ましい特徴は添付図面を参照してさらに具体的に説明されることであり、請求項で示す。ここに開示する特別なシステム及び方法は、これに限定しようとするものではなく、図示の目的のみに示すことを理解すべきである。これは本分野の当業者に理解できることであって、ここに開示する原理及び特徴は本発明の技術的思想の範囲を逸脱すること無く、多様であり、かつ多くの実施形態に適用することができる。
【発明の効果】
【0012】
本発明の実施形態によれば、データ持続のためのメモリ装置、システム及び方法が具現される。
【図面の簡単な説明】
【0013】
【
図1】本発明の一実施形態によるメモリシステムを例示的に示すブロック図である。
【
図2】本発明の一実施形態によるRAMバッファの例示的データ構造を示す図である。
【
図3】本発明の一実施形態による書込み要求に対する例示的データの流れを説明するためのフローチャートである。
【
図4】本発明の一実施形態によるデータ読出し要求に対する例示的データの流れを説明するためのフローチャートである。
【
図5】本発明の一実施形態によるデータ読出し要求に対する例示的データの流れを説明するためのフローチャートである。
【発明を実施するための形態】
【0014】
本発明に開示する各々の特徴及び指針は、データ持続のためのDRAM装置を提供するメモリシステム及び方法を提供するために、個別に或いは他の特徴及び指針と共に活用することができる。数多い付加的な特徴及び指針を活用する代表的な実施形態は、個別に及び結合して、添付された図面を参照して詳細に説明される。これらの詳細な説明は本発明の指針の局面を実施する詳細を当業者に教えるための意図に過ぎなく、請求項の範囲を制限するものではない。したがって、詳細な説明内で開示する特徴の組合せは広い意味で指針を実施するのに必ずしも必要とせず、代わりに本発明の指針の特別な代表的な例を開示するのに単に教示するものである。
【0015】
以下の説明で、説明のためだけに、特定な名称が本発明の開示の徹底した理解を提供するために言及される。しかし、これらの特定な詳細が本発明の開示の指針を実施するために必ずしも必要としないことは当業者に明白である。
【0016】
本明細書の詳細な説明の一部はアルゴリズム及びコンピュータメモリ内のデータビット上の動作の記号的表現の形態に示される。これらのアルゴリズム的な説明及び表現は本分野に熟練した他の者にその作業の実体を効率的に伝達するためにデータ処理分野に熟練した者によって使用される。アルゴリズムはここでは、一般的に所望の結果につながる段階の一貫性あるシーケンスであると看做される。段階は物理量の物理的操作を要求するものである。一般に、必須なことではないが、この物理量は格納、伝達、結合、比較、及びその他の操作可能な電気的或いは磁気的信号の形態を取る。これらの信号をビット、値、要素、シンボル、特性、用語(terms)、数、又はこれに類似のものとして引用することは主に普遍的な使用のために便利であることが判明している。
【0017】
しかし、これらの全て及び類似な用語は適切な物理的用語と関連し、これらの量に対して適用される単なる便利なラベルであることを留意しなければならない。以下の論議から明確なものであって、別に特別に言及しない限り、処理、コンピューティング、計算、決定、表示、その他これに類似のもののような用語を活用する全般的な説明の論議は、コンピュータシステムや類似の電子コンピューティング装置、伝送装置または表示装置の動作及び処理を言及することと理解されなければならない。コンピュータシステムや類似の電子コンピューティング装置はデータを操作し、コンピュータシステムのレジスター及びメモリ内に物理的(電子的)な量として表現されたデータを、レジスター、メモリ、又はその他の情報ストレージ内で物理量として類似に表現された他のデータに変換する。
【0018】
本発明の実施形態で開示するアルゴリズムは、本質的に特別なコンピュータや他の装置に関連されたことではない。多様な汎用システム、コンピュータサーバー、又はパーソナルコンピュータが本発明の技術的な思想にしたがってプログラムを有して使用され、要求される方法段階を遂行するためにさらに特別化された装置を構成することが便利であることが分かる。これらの多様なシステムのために要求される構造は以下の説明から明確になる。多様なプログラミング言語がここに開示する本発明の技術的思想を実現するために使用されることが理解されるべきである。
【0019】
また、代表的な実施形態の多様な特徴と従属請求項は、本発明の技術的思想の付加的な有用な実施形態を提供するために特別に明示的に列挙しない方式に結合することができる。また、すべての値の範囲やグループ個体の表示は請求された本発明の主題を制限する意図のために限らず、元の開示の目的のために、すべての可能な中間値や中間固体を開示する。図面に示される構成要素の次元及び形状は、本発明がどのようにして実施されるかを理解させるために設計され、実施形態で示される次元及び形状を限定しようとする意図ではないこことに注目しなければならない。
【0020】
本発明の実施形態はバッテリー駆動(又はキャパシターバックアップ(capacitor−backed))される不揮発性メモリバッファを含むメモリ装置を開示する。不揮発性メモリバッファは本発明の実施形態でRAMバッファと称する。メモリ装置は複数のメモリ装置(ノード)を含むデータストレージシステム内のノードになり得る。複数のノードは複製されたデータを格納するためにネットワークを通じて互いに接続することができる。RAMバッファはノードに対してデータ複製を完了するために一定の期間データをホールドすることができる。本発明のメモリ装置は低費用システムアーキテクチャを有し、DRAMのような性能及び信頼性あるデータ処理(transactions)を要求するデータ集中アプリケーションを実行することができる。データ処理の信頼性はACID即ち、原子性(atomicity)、一貫性(consistency)、独立性(isolation)、及び永続性(durability)を充足することを意味する。
【0021】
図1は本発明の一実施形態によるメモリシステムを例示的に示すブロック図である。メモリシステム100は複数のメモリ装置(110a、110b)を含む。任意の数のメモリ装置110が本発明の開示の範囲を逸脱せずに、本発明のメモリシステム内に含まれることが理解されるべきである。メモリ装置110の各々は中央処理装置(CPU)111及びメモリコントローラ112を含む。メモリコントローラ112は1つ以上のレギュラーDRAMモジュール(例えば、121a_1−121a_n、121b_1−121b_m)及びRAMバッファ122を制御するように構成される。
【0022】
メモリ装置110a、110bの各々は図示しないホストコンピュータシステムのDIMMソケット内へ挿入されるように構成されたハイブリッドデュアルインラインメモリモジュール(DIMM)である。ホストコンピュータシステムはメモリ装置(110a、110b)を認識できないこともあり得る。又はホストコンピュータシステムはメモリ装置(110a、110b)を、RAMバッファ122を含むハイブリッドDIMMモジュールとして認識することができる。
【0023】
幾つかの実施形態による、メモリ装置110a、110bの構造(architecture)及び構成要素は同一であるか、或いは異なってもよい。例えば、メモリ装置110aのRAMバッファ122aがキャパシターバックアップ(capacitor−backed)である一方、メモリ装置110bのRAMバッファ122bはバッテリー駆動(battery−powered)であってもよい。メモリ装置110a、110bの中の1つに関する本発明の例示は明示的に異なるように言及しない限り、本発明の開示の範囲を逸脱することなく一般的に相互交換することができることに注目しなければならない。
【0024】
メモリ装置110a、110bはネットワークを通じて互いに接続され、互いにデータを複製する。一実施形態で、ホストコンピュータ(図示せず)はデータをメモリ装置110aにコミット(commit)するアプリケーションを実行する。
RAMバッファ122a、122bはキャパシター、バッテリー、或いはその他の格納された電源(図示せず)によってバックアップされる。一部の実施形態で、RAMバッファ122a、122bはデータ保有のためにキャパシターやバッテリーを要しない不揮発性メモリに置き換えることができる。そのような不揮発性メモリの例はここに限定されるものではないが、相変化RAM(PCM)、抵抗性RAM(ReRAM)、及び磁気ランダムアクセスメモリ(MRAM)を含む。
【0025】
一実施形態によるメモリシステム100は企業やデータセンターで使用される。メモリシステム100内に複製されたデータはメモリシステム100を障害(例えば、パワー切れやデータの偶然な削除)から復旧するのに使用することができる。一般的に2以上のメモリ装置(又はモジュール)に対するデータ複製は、単一メモリ装置(又はモジュール)に対するデータ複製に比べてさらに強力なデータ持続性(persistence)を提供する。しかし、複製されたメモリ装置に対するデータアクセスや複製されたメモリ装置からのデータ復旧はネットワークを通じてデータを複製するので、レイテンシ(latency)を随伴する。これはデータに永続性のない短時間ウィンドー(short time window)をもたらすことになる。例えば、データが格納されたメモリ装置で電源障害(power failure)が発生してそのデータにアクセスできないが、そのデータはデータ複製ノードから未だ復旧されない場合である。この場合に、メモリシステム100はホストコンピュータシステムに対するデータコミット承認(data commit acknowledgement)が発生するのを防ぐことが必要である。
【0026】
メモリ装置110で、レギュラーDRAMモジュール121_1−121_nはRAMバッファ122と接続される。RAMバッファ122は対応するメモリ装置110にコミットされたデータトランザクションでデータを複製する。本発明のメモリシステム100は遠隔メモリ装置でデータ複製を提供することができ、システム性能の犠牲無しでデータ永続性を改善することができる。
【0027】
図2は本発明の一実施形態によるRAMバッファの例示的データ構造を示す図である。データはRAMバッファに表形式(tabular format)に格納される。データテーブルの各行(row)は論理ブロックアドレス(LBA)201、有効ビット202、承認ビット203、優先ビット204、及びデータ205を含む。ホストコンピュータから受信し、作業負荷と関連するデータ205はLBA201、有効ビット202、承認ビット203、及び優先ビット204と共にRAMバッファに格納される。優先ビット204は選択的である。
【0028】
LBA201はデータの論理ブロックアドレスを示す。有効ビット202はデータが有効であることを示す。デフォルト(default)として、新規データの有効ビットは設定される。データが遠隔ノードに正常に複製された後、データの有効ビットは遠隔ノードによって設定解除(unset)される。
【0029】
承認ビット203はデフォルトとして設定解除され、データが遠隔ノードに正常に複製されたことを示すために遠隔ノードによって設定される。優先ビット204は対応するデータの優先度を示す。いくつかのデータは下位優先度を有する他のデータより上位優先度を有することができる。幾つかの実施形態で、重要データを含むデータは高い優先度を有し、遠隔ノードに複製される。
図2のテーブル内のデータ項目(行)は先入先出法(FIFO)に基づいて初期に格納される。これらのデータ項目は上位優先度のデータをテーブル内の上部に位置させ、下位優先度の他のデータよりさらに早く複製するために、優先ビット204に基づいて再配列され得る。データ205はデータ項目の実際データを含む。
【0030】
一実施形態による、RAMバッファはFIFOバッファである。データ項目は優先ビット204に基づいて再配列される。RAMバッファ内に格納されたデータ項目の一部は、データが遠隔ノードに複製され、遠隔ノードによって承認されて新しいデータ項目のための空間(space)を作る時まで、RAMバッファに一時的に残存している。遠隔ノードに正常に複製されたデータ項目は有効ビット202を設定解除(unset)し、承認ビット203を設定(set)する。有効ビット202及び承認ビット203と、さらに優先ビット204の値に基づいて(頻繁に要求されるデータは優先ビット設定を有するので)、メモリコントローラ112はRAMバッファ内のデータ項目を維持するか、或いは消去(flush)するかを決定する。
【0031】
図3は本発明の一実施形態による書込み要求に対する例示的データの流れを説明するためのフローチャートである。
図1を参照すると、図示しないホストコンピュータのメモリドライバーは、接続されたメモリ装置の中で1つ、例えばメモリ装置110aにデータ書込みコマンドをコミットする(段階S301)。メモリ装置110aはデータを1つ以上のDRAM121a_1−121a_n及びRAMバッファ122aに初期的にコミットする(段階S302)。データ書込みコマンドはLBA201とLBA201に書き込むためのデータ205を含む。データ書込みコマンドは、またデータ複製に対する優先度を決定する優先ビット204を含む。一実施形態で、DRAM121及びRAMバッファ122に対する初期データコミット(commit)はメモリ装置110aのために構成されるストレージアドレス空間内にマッピングされる。
【0032】
RAMバッファ122aにデータをコミットする際、メモリ装置110aはRAMバッファ122a内の対応するデータ項目の有効ビット202を設定する(段階S303)。ホストコンピュータのメモリドライバーはホストシステムのシステム構成に依存して、多様なプロトコルで、データをメモリ装置110aにコミットする。例えば、メモリドライバーはデータ書込みコマンドを含むTCP/IP(Transmission Control Protocol/Internet Protocol)パケットを伝送するか、或いはリモートダイレクトメモリアクセス(RDMA:remote direct memory access)要求を発行することができる。幾つかの実施形態で、RDMA要求はSCSI RDMA Protocol(SRP)、ソケットダイレクトプロトコル(Socket Direct Protocol(SDP))、又は native RDMA protocolのようなインフィニバンドプロトコル(Infiniband protocol)上のRDMAである。他の実施形態で、RDMA要求はConverged Ethernet(ROCE)上のRMDA或いはインターネットワイドエリアRDMAプロトコル(Internet Wide Area RDMA Protocol(iWARP))のようなイーサーネットプロトコルを通じたRDMAである。多様なデータ通信プロトコルが本発明の技術的思想を逸脱することなく、メモリ装置110aとホストコンピュータとの間に使用されることが理解されるべきである。
【0033】
一実施形態によるホストコンピュータは特定の遠隔ノード(例えば、メモリ装置110b)にデータを複製するために、データ複製コマンドをメモリ装置110aに発行することができる。これに応答して、メモリ装置110aはネットワークを通じて遠隔ノード(例えば、メモリ装置110b)のRAMバッファ(例えば、122b)にデータをコピーすることができる。
【0034】
他の実施形態によるホストコンピュータのメモリドライバーは、メモリ装置110が遠隔ノードに対してデータ複製のために意図されたRAMバッファ122を含むことを認知せずに、メモリ装置110にデータ書込みコマンドをコミットすることができる。この場合、メモリ装置110aは遠隔ノードにデータを自発的に複製し、コミットされたデータに対する複製されたデータが遠隔ノードで利用可能であることを示すメッセージをホストコンピュータに伝送する。メモリ装置と遠隔ノードとの間のマッピング情報は、ホストコンピュータが障害からメモリ装置を復旧するためにデータを再格納できる遠隔ノードを認識するように、ホストコンピュータ内に維持される。
【0035】
メモリ装置110aはデータを遠隔ノード(本実施形態ではメモリ装置110b)に複製する(段階S304)。RAMバッファ122a内のデータ項目の中の選択的な優先ビット204はより頻繁に要求されるデータ、要求頻度の少ない重要なデータ、又は上位ストレージトラフィックの場合のそれほど重要でないデータを優先化する。例えば、メモリ装置110aのRAMバッファ122aはホストコンピュータから受信したデータに対する多重項目(ROW0−ROWn)を同時に含むことができる。メモリ装置110aは下位優先度を有する他のデータを置いて最も高い優先度を有するデータを遠隔ノードに複製する。幾つかの実施形態で、優先ビット204はホストコンピュータによって要求されたデータの重要度や頻度を示すのに使用することができる。
【0036】
通信プロトコルに基づいて、メモリ装置110a或いは複製されたデータを格納する遠隔ノード110bは、RAMバッファ122a内のデータ項目に対する有効ビット202と、対応する承認ビット203を更新する(段階S305)。TCP/IP基盤システムで、遠隔ノード110bは承認メッセージをメモリ装置110aに送り、メモリ装置110aは承認ビット203を更新し、対応するデータ項目に対する有効ビット202を設定解除する(段階S306)。
【0037】
一実施形態で、遠隔ノード110bは要求されたトランザクションの完了をマークするために承認メッセージをホストコンピュータに直接送ることができる。この場合、ホストコンピュータは対応するデータ項目に対するRAMバッファ122a内の承認ビット203を設定解除するためにメモリ装置110にコマンドを送る。RDMA基盤システムで、ホストシステムのメモリドライバーはキュー完了(queue completion)の状態をポーリングし、対応してRAMバッファ122の有効ビット202を更新する。この場合に対応するデータの承認ビット203は更新されない。
【0038】
一実施形態による、ホストコンピュータからのデータ書込みコマンドは存在するLBAの項目、例えばLBA内に格納された再書込みデータにアドレッシングされ得る。この場合、メモリ装置110aはDRAM及びRAMバッファ122aの両方に存在するデータ項目を更新し、有効ビット202を設定し、続けて遠隔ノード110b内の対応するデータ項目を更新する。遠隔ノード110bはメモリ装置110a或いはホストコンピュータに承認メッセージを送り、RAMバッファ112a内の対応するデータ項目の有効ビット202は新規データ書込みと類似な方法で設定解除される。
【0039】
図4は本発明の一実施形態によるデータ読出し要求に対する例示的データの流れを説明するためのフローチャートである。メモリ装置110aはホストコンピュータからデータ要求を受信し(段階S401)、データがローカルに利用可能か否かを判断し、要求されたデータをローカル(locally)或いは遠隔に提供することを決定する(段階S402)。データがローカルに利用可能であれば、これは一般的な場合であるが、メモリ装置110aは要求されたデータをローカルDRAM或いはローカルRAMバッファ122aから提供する(段階S403)。例えば、電源障害によってデータがローカルに利用可能でない場合、ホストコンピュータは要求されたデータを格納する遠隔ノード110bを認識する(段階S404)。
【0040】
幾つかの実施形態で、メモリ装置110aは電源障害から復旧されるが、データは消失されるか、或いは破損されるかもしれない。この場合、メモリ装置110aは要求されたデータを格納する遠隔ノード110bを認識する。遠隔ノード110bは要求されたデータをホストコンピュータに直接提供する(段階S405)。要求されたデータの提供の後に、遠隔ノード110bは要求されたデータをメモリ装置110aに送り、(電源障害イベントから復旧する時)、メモリ装置110aはしたがってDRAMとRAMバッファ122a内の対応するデータを更新する(段階S406)。
【0041】
一実施形態で、メモリ装置110aはホストコンピュータ内に格納され、維持されたマッピングテーブルのローカルコピーを格納する。要求されたデータがDRAM或いはRAMバッファ122a内でローカルに利用不可能であれば、メモリ装置110aはマッピングテーブルのローカルコピーを参照することによって要求されたデータを提供する遠隔ノード110bを認識する。ホストコンピュータ及びメモリ装置110aは、マッピング情報に更新が存在するときにマッピングテーブルを共通的に更新する。
【0042】
他の実施形態で、メモリ装置110aは要求されたデータがDRAM或いはRAMバッファ122a内でローカルに利用可能であるか否かを判断し利用不可能である場合、メモリ装置110aはホストコンピュータにマッピング情報を要求することができる。これに応答して、ホストコンピュータはメモリ装置110aに遠隔ノード110bの識別を示すメッセージを返送する。ホストコンピュータから受信したマッピング情報を利用して、メモリ装置110aは要求されたデータを提供する遠隔ノード110bを認識する。これは、メモリ装置110aがマッピングテーブルのローカルコピーを格納しない場合やメモリ装置110aに格納されたマッピングテーブルのローカルコピーが消失されるか、或いは破損された際、有用である。
【0043】
その他の実施形態で、メモリ装置110aは要求されたデータがローカルに利用不可能であることを示す承認メッセージをホストコンピュータに送る。応答として、ホストコンピュータはマッピング情報に基づいてデータ要求を直接遠隔ノード110bに送る。
【0044】
幾つかの実施形態で、メモリ装置110aは多重データブロックにデータ読出し要求を処理することができる。例えば、ホストコンピュータからのデータ読出し要求は遠隔ノード110bからのペンディング承認(pending acknowledgement)を有するデータ項目を含むことができる。これはデータが遠隔ノード110bに未だ複製されないことを示す。この場合、メモリ装置110aは要求されたデータがローカルに利用可能である限り、要求されたデータをローカルに提供し、遠隔ノード110bは、メモリ装置110aが要求されたデータを提供した後、対応するデータ項目に対する承認ビット203を更新する。ローカルデータが利用不可能であるか、或いは破損された場合、遠隔ノード110bはホストコンピュータにデータを提供し(直接或いはメモリ装置110aを経由して)、メモリ装置110aはRAMバッファ122a内の対応するデータ項目を遠隔ノード110bから受信したデータと同期化する。
【0045】
図5は本発明の一実施形態によるデータ読出し要求に対する例示的データの流れを説明するためのフローチャートである。電源障害のイベントの際、メモリ装置110aは復旧モードに入る(段階S501)。この場合、メモリ装置110aのDRAM内に格納されたローカルデータは消失されるか、或いは破損されるかもしれない。メモリ装置110aが電源障害から復旧する間に、ホストコンピュータは、複製データを格納し要求されたデータを提供できる遠隔ノード110bを認識する(段階S502)。遠隔ノード110bは要求されたデータをホストコンピュータに直接、或いはメモリ装置110aを通じて提供する(段階S503)。
【0046】
復旧の時、メモリ装置110aは要求されたデータを含む遠隔ノード110bからのデータを複製し、速やかなデータ復旧を助けるためにブロック毎のデマンド基盤(per−block demand basis)でローカルDRAM内に複製されたデータをキャッシング(caching)する(段階S504)。遠隔ノード110bからのデータ複製承認がペンディング中であれば、データ項目は未完成としてマークされ、有効ビット202はRAMバッファ122a内に設定として維持される。この場合、RAMバッファ122a内のデータはシステムストレージまたはメモリ装置110の低容量フラッシュメモリにフラッシュ(flush)される。復旧の際、メモリ装置110aは一般的な復旧シナリオと類似の方法でデータを再格納(restore)する。
【0047】
一実施形態によるメモリ装置110のRAMバッファ122のデータサイズ(size)はメモリ装置に対して予想されるトランザクションの量に基づいて決定すれることができる。RAMバッファ122のサイジングは不必要な費用を発生させることなくシステム性能を得るのに重要である。小さいデータサイズのRAMバッファ122はデータをホールドする未処理(outstanding)の項目の数が制限される反面、大きいデータサイズのRAMバッファ122は、例えばRAMバッファに対する大形のバッテリーやキャパシターによって費用を増加させ得る。
【0048】
他の実施形態によるRAMバッファのサイズはネットワークレイテンシに対する従属性に基づいて決定される。例えば、TCP/IPに対して50usのネットワーク往復タイムを有し、500nsごとにページをコミットする性能保証するシステムのために、RAMバッファ122は4KBのデータを有する100項目をホールドするようにサイジングすることができる。RAMバッファ122の全体サイズは1MB未満になる。RDMA基盤システムで、ネットワークレイテンシは10usより小さい。なぜならば、メモリ装置110が高速ネットワークファブリック(fabric)上にあるためである。この場合、小さいデータサイズのRAMバッファ122が使用され得る。
【0049】
本発明のメモリシステムの構造及びメモリ装置内に含まれたRAMバッファのサイズは、多様な条件とシステムの要件、例えば、ただしこれに限定されるものではないが、特別な使用ケースシナリオ、読出し書込み比率、メモリ装置の数、レイテンシ重要度、データ重要性、及び複製の程度を考慮してさらに最適化され得る。
【0050】
一実施形態によるメモリ装置は、データを格納するための複数の揮発性メモリと、ホストコンピュータから受信した作業負荷に関連したデータを格納するように構成された不揮発性メモリバッファ、及び前記データを前記複数の揮発性メモリ及び前記不揮発性メモリバッファの全てに格納し、前記データを遠隔ノードに複製するように構成されたメモリコントローラを含む。前記不揮発性メモリバッファは前記遠隔ノードによって設定された承認ビットを含むテーブル内に前記データを格納するように構成される。
【0051】
前記不揮発性メモリバッファはバッテリーによって駆動されるDRAMであるか、或いはキャパシターによってバックアップされるDRAMである。
前記不揮発性メモリバッファは相変化RAM(PCM)、抵抗性RAM(ReRAM)、及び磁気ランダムアクセスメモリ(MRAM)のうちのいずれか1つである。
前記メモリ装置と前記遠隔ノードは伝送制御プロトコル(TCP/IP)ネットワークを通じて互いに接続されており、前記遠隔ノードはTCP/IPパケット内で前記承認ビットを前記メモリ装置に送信することができる。
【0052】
前記メモリ装置と前記遠隔ノードはリモートダイレクトメモリアクセス(RDMA)を通じて互いに接続されており、前記ホストコンピュータは前記遠隔ノードのデータ複製状態をポーリングし、前記メモリ装置の前記不揮発性メモリバッファ内の前記データと関連した前記承認ビットを更新することができる。
前記テーブルは複数のデータ項目を含み、各データ項目は論理ブロックアドレス(LBA)、有効ビット、承認ビット、優先ビット、及び前記データを含むことができる。
【0053】
前記メモリ装置及び前記遠隔ノードのマッピング情報は前記ホストコンピュータ内に格納される。
前記不揮発性メモリバッファは前記ホストコンピュータによって頻繁に要求されるデータを格納し、前記メモリコントローラは前記不揮発性メモリバッファから要求頻度の少ないデータをフラッシュすることができる。
【0054】
他の実施形態による、メモリシステムは、ホストコンピュータ、及びネットワークを通じて互いに接続された複数のメモリ装置を含む。前記複数のメモリ装置は各々、データを格納するための複数の揮発性メモリ、ホストコンピュータから受信した作業負荷に関連したデータを格納するように構成された不揮発性メモリバッファ、及び前記データを前記複数の揮発性メモリ及び前記不揮発性メモリバッファに格納し、前記データを遠隔ノードに複製するように構成されたメモリコントローラを含む。前記不揮発性メモリバッファは前記遠隔ノードによって設定された承認ビットを含むテーブル内に前記データを格納するように構成される。
【0055】
前記不揮発性メモリバッファはバッテリーによって駆動されるか、或いはキャパシターによってバックアップされ得る。
前記不揮発性メモリバッファは相変化RAM(PCM)、抵抗性RAM(ReRAM)、及び磁気ランダムアクセスメモリ(MRAM)のいずれか1つである。
前記テーブルは複数のデータ項目を含み、各データ項目は論理ブロックアドレス(LBA)、有効ビット、承認ビット、優先ビット、及び前記データを含むことができる。
【0056】
本発明のその他の実施形態によるデータを複製する方法は、ホストコンピュータからデータ及び論理ブロックアドレス(LBA)を含むデータ書込み要求を受信し、前記LBAに基づいてメモリ装置の複数の揮発性メモリの中の1つに前記データを書き込み、前記メモリ装置の不揮発性メモリバッファ内に前記データ書込み要求に対するデータ項目を生成することを含む。前記データ項目はLBA、有効ビット、承認ビット、及び前記データを含む。前記方法は、また前記データ項目の有効ビットを設定し、前記データを遠隔ノードに複製し、前記遠隔ノードへの正常なデータ複製を示す承認を受信し、前記承認に基づいて前記データ項目の承認ビットを更新し、前記データ項目の有効ビットを更新することを含む。
【0057】
前記方法は前記ホストコンピュータからの前記データに対するデータ読出し要求を受信し、前記データが前記メモリ装置からローカルに利用可能であるか否かを判断し利用可能である場合、前記メモリ装置に格納された前記データを前記ホストコンピュータに伝送することをさらに含むことができる。
前記不揮発性メモリバッファに格納された前記データは前記ホストコンピュータに伝送され得る。
【0058】
前記方法は前記ホストコンピュータからの前記データに対するデータ読出し要求を受信し、前記データが前記メモリ装置からローカルに利用可能であるか否かを判断し利用不可能である場合、前記複製されたデータを格納する前記遠隔ノードを認識し、前記遠隔ノードに格納されたデータを前記ホストコンピュータに伝送し、前記メモリ装置の前記揮発性メモリの中の1つ及び前記不揮発性メモリバッファに格納された前記データを更新することをさらに含むことができる。
【0059】
前記方法は、前記メモリ装置が障害から復旧モードに入ることを決定し、前記データの読出し要求に対する前記遠隔ノードを認識し、前記遠隔ノードからの前記データを伝送し、前記遠隔ノードからの前記データを前記メモリ装置に複製することをさらに含むことができる。
前記方法は前記遠隔ノードからTCP/IPパケットに前記承認ビットを受信することをさらに含むことができる。
【0060】
前記メモリ装置と前記遠隔ノードはリモートダイレクトメモリアクセス(RDMA)を通じて互いに通信し、前記方法は前記遠隔ノードのデータ複製状態をポーリングし、前記メモリ装置の前記不揮発性メモリバッファ内の前記データと関連した前記承認ビットを更新することをさらに含むことができる。
前記不揮発性メモリバッファはバッテリー駆動されるか、キャパシターにバックアップされるか、或いは相変化RAM(PCM)、抵抗性RAM(ReRAM)、及び磁気ランダムアクセスメモリ(MRAM)を含むグループから選択されることができる。
【0061】
以上で例示的な実施形態がシステムを具現する多様な実施形態とデータ持続のためのDRAM装置を提供するための方法を示すために詳述した。開示した例示的実施形態からの多様な変更及び発展が本分野の通常の技術を有する者に思い浮かぶことができる。本発明の範囲内に意図される発明の技術的思想は以下のクレームで言及される。
【符号の説明】
【0062】
110、110a、110b メモリ装置(遠隔ノード)
111 中央処理装置(CPU)
112、112a、112b メモリコントローラ
121a_1〜121a_n、121b_1〜121b_m レギュラーDRAMモジュール
122、122a、122b RAMバッファ