(57)【要約】【課題】  障害のある領域のアプリケーションプログラムのチェックポイント状態を、動作可能な領域で実行されるアプリケーションプログラムのバックアップコピーに提供する。【解決手段】  本発明にかかるシステムは、永続メモリユニットに取り付けられたネットワークインターフェースを含む。永続メモリユニットは、主プロセスからチェックポイントデータを受信し、バックアッププロセスで使用されるようにチェックポイントデータへのアクセスを提供し、主プロセスが障害の場合に、復旧能力をサポートする。ネットワークインターフェースは、永続メモリユニットの仮想アドレスと物理アドレスとの間のアドレス変換情報を提供する。【選択図】図１Ａ
2005182781.tif 000002
【特許請求の範囲】
【請求項１】
外部ネットワーク（１１２）に対するネットワークインターフェース（１１４）と、
前記ネットワークインターフェース（１１４）に接続された永続メモリユニット（１０２）と
を備えるチェックポイント状態情報を記憶するシステム（１００）であって、
前記永続メモリユニット（１０２）は、ネットワークインターフェース（１０８、１１０）を通じて、主プロセス（１１６）からの直接メモリ書き込みコマンドを介して前記チェックポイントデータを受信し、バックアッププロセス（１２２）からの直接メモリ読み出しコマンドを介して前記チェックポイントデータ（１２０）へのアクセスを提供するように構成され、
前記バックアッププロセスは、前記主プロセス（１１６）の障害の場合に復旧能力を提供する
システム。
【請求項２】
前記ネットワークインターフェース（１０８）に、アドレスコンテキスト情報を提供するように構成された永続メモリマネージャ（１４０）
をさらに備える請求項１に記載のシステム。
【請求項３】
前記永続メモリユニット（１０２）は、前記チェックポイントデータ（１２０）を別のプロセッサ（１０６）に送信するように構成され、
前記バックアッププロセス（１２２）は、前記別のプロセッサ（１０６）によって実行される
請求項１に記載のシステム。
【請求項４】
前記主プロセス（１１６）の障害時に、前記永続メモリユニット（１０２）は、前記バックアッププロセス（１２２）から要求があると、前記チェックポイントデータを提供する
請求項１に記載のシステム。
【請求項５】
前記永続メモリユニット（１０２）は、連続的な時間間隔で前記プロセッサ（１０４）から送信された複数の組のチェックポイントデータを記憶するように構成される
請求項１に記載のシステム。
【請求項６】
前記永続メモリユニット（１０２）は、前記バックアッププロセス（１２２）から要求があると、前記複数の組のチェックポイントデータ（１２０）を一度に提供する
請求項５に記載のシステム。
【請求項７】
前記主プロセス（１１６）は、前記バックアッププロセス（１２２）とは独立に、前記チェックポイントデータ（１２０）を、前記永続メモリユニット（１０２）に提供する
請求項１に記載のシステム。
【請求項８】
前記永続メモリユニット（１０２）は、リモートダイレクトメモリアクセスが可能なシステムエリアネットワーク（１１２）の一部として構成される
請求項１に記載のシステム。
【請求項９】
前記永続メモリユニット（１０２）は、リモートプロセッサ（１０４、１０６）からの要求を認証し、認証したリモートプロセッサ（１０４、１０６）にアクセス情報を提供する
アドレス保護／変換表（１４２）で構成される、請求項１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バックアッププロセスのチェックポイント状態の永続メモリデバイスに関する。
【背景技術】
【０００２】
コンピュータの障害、さらにはコンピュータ上で実行されるアプリケーションプログラムの障害は、多くの場合、かなりの量のデータおよび中間計算値を失うことになる可能性がある。
障害の原因は、ハードウェアが関係している可能性もあれば、ソフトウェアが関係している可能性もあるが、いずれの場合も、結果は、費用を要するものとなる可能性があり、特に、データ操作が中途で中断された場合に費用の要するものとなる可能性がある。
大きなソフトウェアアプリケーションの場合、障害は、障害前のアプリケーションの状態のステータスを再生するのに多大な労力を必要とするおそれがある。
【０００３】
一般に、チェックポイントおよび復旧の技法は、正常な実行中にプロセス状態を定期的に保存し、その後、保存された状態を、障害に続くバックアッププロセスに復旧させる。
このように、復旧されたチェックポイントからのアプリケーションプロセスによって行われる進行に対して、失われた作業の量が最小限に抑えられる。
【０００４】
従来、コンピュータは、コンピュータのプロセッサに接続されたシステムメモリまたは磁気テープや磁気ディスク等の他の入出力（Ｉ／Ｏ）ストレージデバイスのいずれかにチェックポイントデータを記憶していた。
Ｉ／Ｏストレージデバイスは、ＰＣＩ（本来の名称は周辺機器相互接続）等のＩ／Ｏバスを通じて、または、ファイバチャネル（Fiber Channel）、インフィニバンド（Infiniband）、サーバネット（ServerNet）、イーサネット（登録商標）等のネットワークを通じてシステムに取り付けることができる。
Ｉ／Ｏストレージデバイスは、アクセス時間が１ミリ秒よりも多くかかり、通常、低速である。
それらＩ／Ｏストレージデバイスは、小型コンピュータ用周辺機器インターフェース（ＳＣＳＩ）プロトコルや伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）等の特別なＩ／Ｏプロトコルを利用し、通常、ブロック交換デバイスとして動作する（例えば、データは、固定サイズのデータブロックで読み書きされる）。
これらのタイプのストレージＩ／Ｏデバイスの特徴は、これらのデバイスが電力を失ったり、再起動されたりした時に、事前に記憶された情報を保持するように永続的であるということである。
さらに、Ｉ／Ｏストレージデバイスは、いくつかのプロセッサが障害になった後であっても、共有Ｉ／Ｏネットワークを通じて複数のプロセッサからアクセスすることができる。
【０００５】
本明細書で使用される際に、用語「永続」とは、メモリの内容を失うことなく、パワーリセットに耐えることができるコンピュータメモリストレージデバイスを指す。
永続メモリデバイスは、ソフトウェアアプリケーションを起動または再起動するデータを記憶するのに使用されてきた。
単純なシステムでは、永続メモリデバイスは、静的であり、ソフトウェアが実行されるに伴い変更されることはない。
ソフトウェア環境の初期状態は、永続メモリに記憶される。
コンピュータへの電力障害または他の或る障害の場合、ソフトウェアはその実行を初期状態から再起動する。
この手法に関する１つの問題は、すべての中間計算値を再計算しなければならないということである。
この問題は、特に、大量のユーザデータをこのプロセス中に再ロードしなければならない場合に厄介なものになる可能性がある。
ユーザデータの一部またはすべてがもはや利用可能でない場合には、障害前の状態を再構成できない場合がある。
【０００６】
システムメモリは、一般に、システムバスを通じてプロセスに接続され、この場合、このようなメモリは、保証アクセス時間が数十ナノ秒で測定され、比較的高速である。
さらに、システムメモリには、バイトレベルの粒度で直接アクセスすることができる。
しかしながら、システムメモリは、通常、揮発性であり、電力が失われたり、このようなメモリを組み込んだシステムが再起動されたりすると、その内容が失われるようになる。
また、システムメモリは、通例、プロセッサと同じ障害領域内にあり、プロセッサに障害が生じると、この付属メモリにも障害が生じ、もはやアクセスすることができないようになる。
電力が失われたり、このようなメモリを組み込んだシステムが再起動されたりすると、メモリのレイアウトを記述するメタデータも失われる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来技術のシステムは、バッテリバックアップされたダイナミックランダムアクセスメモリ（ＢＢＤＲＡＭ）、ソリッドステートディスク、およびネットワーク付属揮発性メモリを使用していた。
従来のＢＢＤＲＡＭは、例えば、本来の永続メモリを上回るいくつかの性能の利点を有する場合がある。
しかしながら、ＢＢＤＲＡＭには、グローバルにアクセスすることができない。
さらに、付属のＣＰＵと同じ障害領域内にあるＢＢＤＲＡＭは、ＣＰＵの障害またはオペレーティングシステムのクラッシュの場合にアクセス不能にされる。
したがって、電力障害または再ブート後にシステムを素早く再起動できるように、ＢＢＤＲＡＭは、すべてのシステムメモリが永続的である状況で使用されることが多い。
ＢＢＤＲＡＭは、長い停電期間中は、依然として揮発性であり、バッテリが消耗する前にその内容を記憶するように代替的な手段を提供しなければならない。
重要なことは、ＢＢＤＲＡＭのこの使用は、非常に制限的であり、例えば、ネットワーク接続型永続メモリの用途に使用するように修正することはできない。
【０００８】
バッテリバックアップされたソリッドステートディスク（ＤＤＳＳＤ）も、他の実施態様に対して提案されてきた。
これらのＢＢＳＳＤは、永続メモリを提供するが、機能的には、ディスクドライブをエミュレーションするものである。
この手法の重大な欠点は、Ｉ／Ｏアダプタを通じてこれらのデバイスにアクセスすることに関連して、待ち時間が追加されることである。
この待ち時間は、ホストコンピュータのオペレーティングシステムを迂回しないディスク、さらにはＢＢＳＳＤによって使用されるブロック指向型ストレージモデルおよびファイル指向型ストレージモデルに固有のものである。
いくつかの欠点をなくすようにソリッドステートディスクを修正することは可能であるが、性能がＩ／Ｏプロトコルおよび当該Ｉ／Ｏプロトコルに関連したデバイスドライバによって制限されるので、固有の待ち時間はなくすことができない。
ＢＢＤＲＡＭと同様に、障害のある領域のアプリケーションプログラムのチェックポイント状態を、動作可能な領域で実行されるアプリケーションプログラムのバックアップコピーに提供する技術を追加する必要がある。
【課題を解決するための手段】
【０００９】
いくつかの実施の形態では、システムは、永続メモリユニットに取り付けられたネットワークインターフェースを含む。
永続メモリユニットは、主プロセスからチェックポイントデータを受信するように構成され、バックアッププロセスで使用されるようにチェックポイントデータへのアクセスを提供して、主プロセスが障害の場合に、復旧能力をサポートするように構成される。
ネットワークインターフェースは、永続メモリユニットの仮想アドレスと物理アドレスとの間のアドレス変換情報を提供するように構成される。
他の実施の形態では、永続メモリユニットは、チェックポイント状態に対する複数の更新を記憶することができる。
チェックポイント状態、および、もしあればチェックポイント状態に対する更新は、バックアッププロセスによって定期的に取り出すこともできるし、主プロセスの障害時に一度に取り出すこともできる。
【００１０】
さらに別の実施の形態では、主プロセスの動作状態を復旧する方法は、永続メモリユニットの仮想アドレスを永続メモリユニットの物理アドレスにマッピングすること、および永続メモリユニットにおいて、主プロセスの動作状態に関するチェックポイントデータを受信することを含む。
いくつかの実施の形態では、チェックポイントデータは、バックアッププロセスに提供される。
さらに別の実施の形態では、アドレスに関するコンテキスト情報が、主プロセスおよびバックアッププロセスに提供される。
【００１１】
別の実施の形態では、主プロセスが障害の場合に、永続メモリユニットは、バックアッププロセスにチェックポイントデータを提供する。
あるいは、さらに別の実施の形態では、永続メモリユニットは、連続的な時間間隔でプロセッサから送信された複数の組のチェックポイントデータを記憶するように構成することもできるし、複数の組のチェックポイントデータをバックアッププロセスに一度に提供するように構成することもできる。
【００１２】
本開示が関係する技術分野の当業者は、本開示を理解することによって、これらの実施の形態および他の実施の形態を理解することになる。
【００１３】
この明細書に組み込まれてこの明細書の一部を形成する添付図面は、本発明の実施の形態を示すものであり、その説明と共に、本発明の原理を説明するのに役立つものである。
【発明を実施するための最良の形態】
【００１４】
従来技術のシステムは、永続メモリを、待ち時間が比較的長いブロック指向型アーキテクチャおよびファイル指向型Ｉ／Ｏアーキテクチャのコンテキストにおいてのみ使用していたのに対して、本教示は、従来のＩ／Ｏストレージデバイスのように永続的ではあるが、粒度が細かく待ち時間の短いシステムメモリのようにアクセスすることができるメモリを説明する。
本教示によるシステムによって、アプリケーションプログラムは、１つまたは複数のチェックポイント状態を記憶することが可能になり、主アプリケーションプログラムの実行を妨げるハードウェア障害またはソフトウェア障害の場合には、そのアプリケーションのバックアップコピーがこれらのチェックポイント状態にアクセスすることができる。
【００１５】
図１に示すように、ネットワーク接続型永続メモリを使用するシステム１００は、ネットワーク接続型永続メモリユニット（ＮＰＭＵ（network-attached persistent memory unit））１０２およびリモートダイレクトメモリアクセス（ＲＤＭＡ）が可能なシステムエリアネットワーク（ＳＡＮ（system area network））等のＳＡＮ１１２を含む。
ＮＰＭＵ１０２には、１つまたは複数のプロセッサノード１０４、１０６が、対応するネットワークインターフェース（ＮＩ）１０８、１１０を通じてアクセスすることができる。
ＲＤＭＡは、ＮＩ１０８、１１０、および１１４の特徴として実施することができ、それによって、プロセッサノード１０４、１０６は、ＮＰＭＵ１０２のメモリに情報を直接記憶することができ、ＮＰＭＵ１０２のメモリの情報を直接取り出すことができる。
ＮＰＭＵ１０２へまたはＭＰＭＵ１０２から直接データを転送することによって、プロセッサノード１０４、１０６のメモリとオペレーティングシステム１４４、１４６のカーネルＩ／Ｏプロセスとの間でデータをコピーする必要がなくなる。
このように、ＲＤＭＡ能力によって、主プロセス１１６とバックアッププロセス１２２との間、および、メモリ転送をハンドリング中のオペレーティングシステム１４４、１４６間のＳＡＮ１１２を介したコンテキスト切り換えの回数が削減される。
【００１６】
ＳＡＮ１１２は、ネットワークインターフェース（ＮＩ）１１４を介してＮＰＭＵ１０２にアクセスする。
ＮＰＭＵ１０２は、ストレージＩ／Ｏの耐久性および復旧可能性を、システムメモリの高速アクセスおよび細かな粒度でのアクセスと組み合わせる。
ストレージのように、ＮＰＭＵ１０２のコンテンツは、電力の喪失またはシステムの再起動を耐え抜くことができる。
リモートメモリのように、ＳＡＮ１１２を横切ってＮＰＭＵ１０２にアクセスすることができる。
一方、直接接続されたメモリとは異なり、１つまたは複数のプロセッサノード１０４、１０６に障害が生じた後であっても、ＮＰＭＵ１０２に継続してアクセスすることができる。
【００１７】
プロセッサノード１０４上で実行されている主プロセス１１６は、リモートコマンド、例えば書き込みコマンドを起動して、ＮＰＭＵ１０２のチェックポイント状態１２０のデータを送信することができる。
また、主プロセス１１６は、チェックポイント状態１２０のデータを定期的に提供することもできる。
プロセッサノード１０６上で実行されているバックアッププロセス１２２は、主プロセス１１６の障害の場合に、主プロセス１１６の機能を実行するように構成される。
また、バックアッププロセス１２２は、読み出しコマンド等のリモート読み出しオペレーションおよびリモート書き込みオペレーションをＮＰＭＵ１０２に対して起動し、定期的にかつ／または主プロセス１１６の障害時にチェックポイント状態１２０にアクセスすることもできる。
【００１８】
例えば、プロセッサノード１０４によって起動された書き込みオペレーションにおいて、データをＮＰＭＵ１０２に記憶するのに成功すると、そのデータは、耐久性のあるものとなり、プロセッサノード１０４、１０６の停電または障害を耐え抜くことになる。
特に、電力が長期間切断された後、または、プロセッサノード１０４、１０６のオペレーティングシステムが再ブートされた後であっても、ＮＰＭＵ１０２が正確に機能し続ける限り、メモリのコンテンツは維持される。
ＮＰＭＵ１０２は、データ転送オペレーションに加えて、さまざまな管理コマンドに対して応答するように構成することもできる。
【００１９】
いくつかの実施の形態では、プロセッサノード１０４、１０６は、少なくとも１つの中央処理装置（ＣＰＵ）およびシステムメモリを含み、ＣＰＵがオペレーティングシステム１４４、１４６を実行するように構成されるコンピュータシステムである。
プロセッサノード１０４、１０６は、さらに、主プロセス１１６およびバックアッププロセス１１８等の任意のタイプのアプリケーションプログラムの１つまたは複数を実行するように構成することもできる。
システム１００は、２つのプロセッサノード１０４、１０６と共に示されるが、追加されたプロセッサノード（図示せず）が、ネットワークインターフェース１０８、１１０、１１４を介してネットワーク（図示せず）により、ＳＡＮ１１２、さらにはプロセッサノード１０４、１０６と通信することもできる。
【００２０】
いくつかの実施の形態では、ＳＡＮ１１２は、複数のネットワークインターフェースユニット（ＮＩ）を接続する、ＲＤＭＡが可能なネットワークである。
このＮＩは、ＮＩ１０８、１１０、１１４等であり、オペレーティングシステム１４４、１４６に通知することなく、２つのプロセッサノード１０４、１０６の間、または、プロセッサノード１０４、１０６とＮＰＭＵ１０２等のデバイスとの間でバイトレベルのメモリオペレーションを実行することができる。
この場合、ＳＡＮ１１２は、仮想／物理アドレス変換を実行して、連続したネットワーク仮想アドレス空間を不連続な物理アドレス空間にマッピングするように構成される。
このタイプのアドレス変換によって、ＮＰＭＵ１０２の動的管理が可能になる。
ＲＤＭＡ能力を有する市販のＳＡＮ１１２には、サーバネット、ギガネット（GigaNet）、インフィニバンド、および仮想インターフェースアーキテクチャ（Virtual Interface Architecture）に準拠したすべてのＳＡＮが含まれるが、これらに限定されるものではない。
【００２１】
プロセッサノード１０４、１０６は、一般的に、各ＮＩ１０８、１１０を通じてＳＡＮ１１２に取り付けられるが、多くの変形が可能である。
しかしながら、より一般的には、プロセッサノードは、読み出しオペレーションおよび書き込みオペレーションを通信する装置に接続されることだけが必要である。
例えば、この実施の形態の別の実施態様では、プロセッサノード１０４、１０６は、マザーボード上に、ＳＡＮ１１２の代わりにデータバス、例えばＰＣＩバスを利用するさまざまなＣＰＵを含む。
本教示は、必要に応じて、より大きな実施態様またはより小さな実施態様を収容するように拡大縮小できることに留意されたい。
【００２２】
ネットワークインターフェース（ＮＩ）１０８、１１０、１１４は、ＮＰＭＵ１０２に通信接続されて、ＮＰＭＵ１０２と共に含まれる永続メモリへのアクセスを可能にする。
このタイプの永続メモリを含めて、図１Ａのさまざまなコンポーネントに対して、任意の適切な技術を利用することができる。
したがって、図１Ａの実施の形態は、永続メモリを実現する特定の技術に限定されるものではない。
実際には、複数のメモリ技術をふさわしいものとすることができ、これらのメモリ技術には、あらゆる種類の磁気ランダムアクセスメモリ（ＭＲＡＭ）、磁気抵抗ランダムアクセスメモリ（ＭＲＲＡＭ）、ポリマ強誘電体ランダムアクセスメモリ（ＰＦＲＡＭ）、オボニクスユニファイドメモリ（ＯＵＭ（ovonics unified memory））、ＢＢＤＲＡＭ、およびフラッシュメモリが含まれる。
システム１００は、情報ブロック全体を転送するＢＢＳＳＤと比較して、バイトレベルメモリアクセスを含む高粒度のメモリアクセスを可能にするように構成することができる。
【００２３】
とりわけ、メモリアクセスの粒度は、システム１００の必要に応じて調整することができる。
ＮＰＭＵ１０２におけるメモリのアクセス速度も、システム１００用に実施されるデータ通信方式の転送レートをサポートするのに十分高速であるべきである。
【００２４】
永続情報は、使用されている永続メモリがデータを保持できる程度に提供されることに留意すべきである。
例えば、多くの用途では、永続メモリは、電力が失われた時間量に関係なく、データを記憶するように要求される場合があるのに対して、別の用途では、永続メモリは、数分または数時間の間だけ必要とされる場合がある。
【００２５】
１つまたは複数の独立した間接アドレス指定メモリ領域を作成するメモリ管理機能をシステム１００に設けることができる。
さらに、電力の喪失またはプロセッサ障害後のメモリ復旧用にＮＰＭＵメタデータを設けることもできる。
メタデータには、例えば、ＮＰＭＵ１０２内の保護されたメモリ領域のコンテンツおよびレイアウトが含まれ得る。
このように、ＮＰＭＵ１０２は、データだけでなく、データの使用方法も記憶する。
必要があれば、ＮＰＭＵ１０２は、メタデータをバックアッププロセス１２２に提供して、システム１００が、主プロセス１１６に関連した電力障害またはシステム障害から復旧することを可能にすることができる。
【００２６】
図１Ａに示すシステム１００の実施の形態では、チェックポイント状態１２０に対する各更新は、チェックポイント状態１２０用に現在記憶されている情報の一部またはすべてを上書きすることができる。
チェックポイント状態１２０のコピーは１つしかないので、主プロセス１１６が障害になるまで、バックアッププロセス１２２はアイドルの状態にしておくことができ、その後、チェックポイント状態１２０を読み出して、主プロセス１１６が実行していた機能を継続することができる。
図１Ｂは、ＮＰＭＵ１０２からチェックポイント状態１２０にアクセスする方法の一実施の形態の図である。
図示するように、主プロセス１１６は、チェックポイント状態１２０の開始アドレスにデータを書き込み、バックアッププロセス１２２は、チェックポイント状態１２０の開始からデータを読み出す。
このような実施の形態では、チェックポイント状態１２０のコピーは１つだけ保持する必要がある。
【００２７】
図１Ｃは、チェックポイント状態１２０に関連付けられた複数のチェックポイント更新エリア１２８〜１３２で構成されたＮＰＭＵ１０２の別の実施の形態を示している。
チェックポイント状態１２０は、主プロセス１１６のすべてのバックアップ状態を含むことができる。
チェックポイント状態１２０に対する各更新は、先に書き込まれた情報の最後に追加することができ、それによって、ＮＰＭＵ１０２の重なり合わない更新エリア１２８〜１３２にチェックポイント状態１２０に対する一連の更新を作成することができる。
チェックポイント状態１２０が比較的大きい場合には、更新エリア１２８〜１３２は、情報がチェックポイントされる（checkpointed）ごとに、主プロセス１１６が完全なチェックポイント状態１２０を書き込む必要をなくすという利点を提供する。
【００２８】
例えば、主プロセス１１６は、初期化中、大きなデータブロックで読み出すことができ、別のオペレーション段階では、データのさまざまなセグメントを更新することができる。
最初のチェックポイント状態１２０は、すべてのデータのバックアップを含むことができる一方、更新エリア１２８〜１３２は、セグメントが更新されるにつれて、データの小さなセグメントを記憶するのに使用することができる。
バックアッププロセス１２２は、次に、チェックポイント状態１２０で自身を初期化することができ、それに続く更新エリア１２８〜１３２からのデータを、書き込まれた順序で適用することができる。
さらに、バックアッププロセス１２２は、主プロセス１１６がチェックポイント状態１２０および更新エリア１２８〜１３２からのデータで自身の初期化を開始できなくなるまで待つ必要はない。
このことは、チェックポイント状態１２０および更新エリア１２８〜１３２に利用可能なストレージ空間の量をオーバーフローする可能性がある場合に特に当てはまる。
また、このことは、主プロセス１１６が障害になった後、バックアッププロセス１２２が主プロセス１１６の状態を再現するのに、要求される時間よりも多くの時間量を要する場合にも当てはまる。
【００２９】
図１Ｄは、図１ＣのＮＰＭＵ１０２のチェックポイント状態１２０にアクセスする方法の一実施の形態の図である。
図示するように、主プロセス１１６は、チェックポイント状態１２０のアドレス、および、データがＮＰＭＵ１０２に最後に書き込まれたアドレスに続く更新エリア（図示せず）にデータを追加する。
バックアッププロセス１２２は、主プロセス１１６が書き込んだ最後のエリアの開始から終了までのデータを読み出す。
このような実施の形態では、本明細書でさらに説明するように、チェックポイント状態１２０に対する最も近時の更新の開始位置および終了位置をバックアッププロセス１２２に提供する機構が設けられる。
【００３０】
バックアッププロセス１２２がチェックポイント状態１２０および更新エリア１２８〜１３２を定期的に読み出そうと、主プロセス１１６に障害が生じた時に読み出すそうと、バックアッププロセス１２２は、主プロセス１１６を引き継ぐ前に、チェックポイント状態１２０および更新エリア１２８〜１３２の前に読み出されていないあらゆる部分を読み出すことができる。
【００３１】
ＮＰＭＵ１０２を利用することによって、主プロセス１１６は、バックアッププロセス１２２の同一性、位置、または動作状態にかかわらず、チェックポイント状態１２０を記憶することが可能になる。
バックアッププロセス１２２は、ＮＰＭＵ１０２にアクセスできるどのリモートシステムにも作成することができる。
主プロセス１１６は、バックアッププロセス１２２がメッセージを受信した旨を知らせるのを待つ必要なく、必要があればいつでも、チェックポイント状態１２０および／または更新エリア１２８〜１３２を書き込むことができる。
さらに、ＮＰＭＵ１０２によって、
（１）主プロセス１１６が障害になった時、または、
（２）主プロセス１１６が、ＮＰＭＵ１０２のオーバーフローを回避するために、チェックポイント状態１２０および／または更新エリア１２８〜１３２から情報を定期的に読み出すことができなくなった時、
のいずれかにのみバックアッププロセス１２２を実行する必要があるので、利用可能な情報技術（ＩＴ）資源の効率的な使用が可能になる。
それとは対照的に、従来の既知のいくつかのチェックポイント技法は、主プロセスとバックアッププロセスとの間のメッセージの受け渡しを利用して、チェックポイント情報を通信する。
したがって、主プロセスは、バックアッププロセスの同一性および位置に関する情報を必要としていた。
さらに、バックアッププロセスは、主プロセスと同期してチェックポイントメッセージを受信するために、従来の既知のシステムで動作しなければならなかった。
【００３２】
さらに、ＮＰＭＵ１０２は、ハードウェアで実施することができ、それによって、読み出しオペレーションおよび書き込みオペレーションに高速アクセスを提供することができる。
他の従来の既知のチェックポイント技法は、磁気媒体または光媒体にチェックポイント情報を記憶し、この媒体は、ＮＰＭＵ１０２よりもはるかに多くのアクセス時間を必要とする。
【００３３】
図２は、通信リンク２０６を介してＮＩ１１４に通信接続された不揮発性メモリ２０２を使用するＮＰＭＵ１０２の一実施の形態を示している。
不揮発性メモリ２０２は、例えば、ＭＲＡＭまたはフラッシュメモリとすることができる。
ＮＩ１１４は、通常、それ自身の要求を起動しないが、その代わり、ＮＩ１１４は、通信リンク２１０を介してＳＡＮ１１２から管理コマンドを受信し、要求された管理オペレーションを実行する。
具体的には、ＮＰＭＵ２００は、受信要求を変換することができ、次いで、要求されたオペレーションを実行することができる。
コマンド処理のさらに詳細な内容は後述する。
通信リンク２０６、２１０は、有線通信および／または無線通信用に構成することができる。
ＳＡＮ１１２は、ＮＩ１１４と図１Ａのプロセッサノード１０４、１０６等の他のノードとの間の任意の適切な通信／処理基盤とすることができる。
例えば、ＳＡＮ１１２は、ローカルエリアネットワークおよび／またはインターネット等のワイドエリアネットワークとすることができる。
【００３４】
図３は、バッテリ３０４を有する揮発性メモリ３０２および不揮発性２次ストア３１０の組み合わせを使用するＮＰＭＵ１０２の別の実施の形態を示している。
この実施の形態では、電力障害になると、揮発性メモリ３０２内のデータが、不揮発性２次ストア３１０に保存できるまで、バッテリ３０４の電力を使用して維持される。
不揮発性２次ストアは、例えば、磁気ディスクまたは低速のフラッシュメモリとすることができる。
揮発性メモリ３０２から不揮発性２次メモリストア３１０へのデータの転送は、外部からの介入も、バッテリ３０４以外からの別の電力もなく行うことができる。
したがって、バッテリ３０４が完全に放電される前に、必要なあらゆるタスクは通常完了する。
図示するように、ＮＰＭＵ１２０は、内蔵オペレーティングシステムを実行するオプションのＣＰＵ３０６を含む。
したがって、バックアップタスク（すなわち、揮発性メモリ３０２から不揮発性２次メモリストア３１０へのデータ転送）は、ＣＰＵ３０６上で実行されているソフトウェアによって実行することができる。
ＮＩ１１４は、ＣＰＵ３０６上で実行されているソフトウェアの制御の下で要求を起動する。
ＣＰＵ３０６は、ネットワークから管理コマンドを受信することができ、要求された管理オペレーションを実行することができる。
【００３５】
資源割り当ておよび資源共有を容易にするように、ＮＰＭＵ１０２のさまざまな実施の形態を管理することができる。
いくつかの実施の形態では、ＮＰＭＵ１０２は、図１Ａに示すように、永続メモリマネージャ（ＰＭＭ（persistent memory manager））１４０によって管理される。
ＰＭＭ１４０は、ＮＰＭＵ１０２の内部に配置することもできるし、外部に配置することもできる。
ＰＭＭ１４０がＮＰＭＵ１０２の内部にある場合、プロセッサノード１０４、１０６は、ＳＡＮ１１２およびネットワークインターフェース（ＮＩ）１１４を介してＰＭＭ１４０と通信し、ＮＰＭＵ１０２の永続メモリの領域の割り当てや割り当て解除等の要求された管理タスクを実行することもできるし、永続メモリの既存の領域を使用することもできる。
ＰＭＭ１４０がＮＰＭＵ１０２の外部にある場合、プロセッサノード１０４、１０６は、ＮＰＭＵ１０２に要求を発行することができ、ＮＰＭＵ１０２は、ＮＩ１１４、ＳＡＮ１１２、およびＰＭＭ１４０に関連付けられたＮＩ１４１とインターフェースすることができる。
さらに代替的なものとして、プロセッサノード１０４、１０６は、ＮＩ１０８、１１０のそれぞれ、ならびにＳＡＮ１１２およびＮＩ１４１を介してＰＭＭ１４０と直接通信することができる。
ＰＭＭ１４０は、その後、適切なコマンドをＮＰＭＵ１０２に発行して、要求された管理タスクを実行することができる。
【００３６】
ＮＰＭＵ１０２は、耐久性があり、永続データの自己記述体（self-describing body）を保持することができるので、既存の永続メモリ領域に関係したメタデータをＮＰＭＵ１０２に記憶できることに留意されたい。
ＰＭＭ１４０は、ＮＰＭＵ１０２のメタデータをＮＰＭＵ１０２に記憶された永続データと一貫性のあるものに維持する管理タスクを実行することができる。
このように、ＮＰＭＵの記憶データは、常に、ＮＰＭＵの記憶メタデータを使用して解釈でき、それによって、起こり得るシステムのシャットダウンまたは障害後に復旧することができる。
したがって、ＮＰＭＵ１０２は、操作されるデータだけでなく、このようなデータの処理状態も永続的に保持する。
したがって、復旧の必要があり次第、ＮＰＭＵ１０２を使用するシステム１００は、電力障害またはオペレーティングシステムのクラッシュが発生したメモリ状態から復旧して、当該メモリ状態からオペレーションを継続することができる。
【００３７】
図１Ａを参照して説明したように、ＳＡＮ１１２は、基本的なメモリ管理および仮想メモリのサポートを提供する。
このような実施の形態では、ＰＭＭ１４０は、リモート読み出しオペレーションおよびリモート書き込みオペレーションを可能にするようにＮＩ１１４の論理をプログラミングすることができると同時に、ＳＡＮ１１２の選択された1組のエンティティを除くすべてのものによる認可されていないアクセスまたは不注意によるアクセスから永続メモリを保護することができる。
さらに、図４に示すように、ＮＰＭＵ１０２は、仮想／物理アドレス変換をサポートすることができる。
例えば、永続メモリ（ＰＭ）仮想アドレス４０２〜４１６等の連続した仮想アドレス空間は、不連続な永続メモリ物理アドレス４１８〜４４８にマッピングまたは変換することができる。
ＰＭ仮想アドレスは、ベースアドレスを基準にＮ増分アドレスを通じて参照することができる。
一方、このようなＰＭ仮想アドレスは、不連続なＰＭ物理アドレスに対応することもできる。
【００３８】
図示するように、ＰＭ仮想アドレス４０２は、実際には、ＰＭ物理アドレス４３６等に対応することができる。
したがって、ＮＰＭＵ１０２は、ＰＭ仮想アドレス空間からＰＭ物理アドレス空間への適切な変換およびその逆の変換を提供することができる。
このように、この変換メカニズムによって、ＮＰＭＵ１０２は、連続した仮想アドレスの範囲をプロセッサノード１０４、１０６に提示することが可能になる一方、依然として、ＮＰＭＵの物理メモリの動的管理が可能である。
これは、ＮＰＭＵ１０２のデータの永続的性質のために重要となり得る。
構成の変更により、特定のＮＰＭＵ１０２にアクセスするプロセスの個数、あるいは、プロセスの各割り当てのサイズが時間の経過と共に変化する場合がある。
このアドレス変換メカニズムによって、ＮＰＭＵ１０２は、データを失うことなく、このような変化に容易に対応することが可能になる。
さらに、このアドレス変換メカニズムによって、プロセッサノード１０４、１０６に、割り当てに先立って今後のメモリのニーズを予想させることもなく、プロセッサノード１０４、１０６に、悲観的な割り当てを通じて永続メモリ容量を浪費させることもないことにより、永続メモリ容量の容易でかつ効率的な使用が可能になる。
【００３９】
図１Ａを再び参照して、その本来のアクセス妥当性確認／変換ブロック転送エンジン（Ａ  ＶＴ／ＢＴＥ（access validation and translation block transfer engine））モードで動作するサーバネットＳＡＮは、単一のアドレス空間のＳＡＮ１１２の例である。
このようなＳＡＮにおける各ターゲットは、プロセッサノード１０４、１０６等の、ＳＡＮ１１２に要求を発行したすべてのコンポーネントに同じ平坦なネットワーク仮想アドレス空間を提示する。
ターゲットは、ネットワーク仮想アドレスの範囲をページの粒度でＰＭ仮想アドレスの範囲からＰＭ物理アドレスの範囲にマッピングすることができる。
ネットワークＰＭ仮想アドレスの範囲は、単一のイニシエータ（例えば、プロセッサノード１０４）に排他的に割り当てることができ、複数のＰＭ仮想アドレスが同じ物理ページを指し示すことができる。
【００４０】
プロセッサノード１０４が、ＮＰＭＵ１０２の永続メモリの領域をオープンする（すなわち、割り当てて、次に、使用を開始する）ようにＰＭＭ１４０に要求すると、ＰＭＭ１４０は、プロセッサノード１０４が適切な領域にアクセスできるようにＮＰＭＵのＮＩ１１４をプログラミングすることができる。
このプログラミングは、ネットワーク仮想アドレスのブロックを割り当て、それらの仮想アドレスを物理メモリにおける１組の物理ページにマッピング（すなわち、変換）するものである。
ＰＭ仮想アドレスの範囲は、ＰＭ物理アドレスのどれだけ多くのページがアクセスされるかにかかわらず、連続的なものとすることができる。
しかしながら、物理ページは、ＰＭ物理メモリ内のいずれかの場所とすることができる。
変換の設定に成功すると、ＮＰＭＵ１０２は、連続したブロックのＰＭ仮想アドレスを要求側プロセッサノード１０４に通知することができる。
一旦オープンすると、プロセッサノード１０４は、読み出しオペレーションまたは書き込みオペレーションをＮＰＭＵ１０２に発行することによって、ＮＰＭＵメモリページにアクセスすることができる。
また、ＮＰＭＵ１０２は、プロセッサノード１０４によって提供されたデータへのアクセスを要求する後続の要求側プロセッサノード１０６にも、対応するメモリの仮想アドレスを通知することができる。
ＰＭＭ１４０は、仮想アドレスを、メモリの対応する物理アドレスに変換して、チェックポイント状態１２０および／または更新エリア１２８〜１３２等の要求された情報をプロセッサ１０６のバックアッププロセス１２２に提供することができる。
【００４１】
いくつかの実施の形態では、バックアッププロセス１２２は、チェックポイント状態１２０および／または更新エリア１２８〜１３２の位置に関する情報で構成することができる。
他の実施の形態では、バックアッププロセス１２２は、実行時に、チェックポイント状態１２０および更新エリア１２８〜１３２の位置をＰＭＭ１４０、ＮＰＭＵ１０２、および／または主プロセス１１６に要求するメッセージを発行することができる。
ＰＭＭ１４０、ＮＰＭＵ１０２、および／または主プロセス１１６は、次に、ＮＰＭＵ１０２のチェックポイント状態１２０および更新エリア１２８〜１３２の要求された位置を有する応答メッセージを発行する。
いくつかの実施の形態では、ＰＭＭ１４０は、最新の情報がチェックポイント状態１２０にあろうと、更新エリア１２８〜１３２にあろうと、チェックポイント状態１２０に対する最新の更新の開始アドレスおよび終了アドレスに関する情報を記録する。
最も近時のチェックポイント状態１２０および更新エリア１２８〜１３２の開始アドレスおよび終了アドレスは、その後、バックアッププロセス１２２からの要求時に提供することができる。
ＮＰＭＵ１０２のメモリ資源のアクセス許可は、変換／保護表（ＴＰＴ（Translation and Protection table））１４２に保持することができる。
このＴＰＴ１４２は、ＮＰＭＵ１０２内に示されている。
ＰＭＭ１４０は、永続メモリの領域の生成時またはオープン時に、適切な許可を有するＴＰＴ１４２のエントリを生成することができる。
例えば、主プロセス１１６は、書き込み許可により領域を作成するようにＰＭＭ１４０に要求する。
その後、バックアッププロセス１２２は、読み出し許可によりその領域をオープンする。
【００４２】
主プロセス１１６およびバックアッププロセス１２２は、それらの各ＮＩを通じてＰＭＭ１４０と通信し、ＮＰＭＵ１０２にアクセスすることができる。
プロセッサ１０４、１０６の各オペレーティングシステム（ＯＳ）１４４、１４６は、ＮＩ１０８、１１０へのアクセスを管理するだけでなく、そのＮＩ１０８、１１０を通じて生成された接続に関するコンテキスト情報も保持する。
アクセス権および接続コンテキストに関する情報は、各プロセッサ１０４、１０６が記憶することができる。
【００４３】
主プロセス１１６およびバックアッププロセッサ１２２は、ＮＰＭＵ１０２の領域をオープンまたは作成する要求をＰＭＭ１４０に送信するために、それらの各オペレーティングシステム１４４、１４６から許可を得なければならない。
ＰＭＭ１４０は、ＴＰＴ１４２に適切なエントリを設定して、許可されたアクセス権を要求側に返す。
【００４４】
アクセス権が得られた後にのみ、各オペレーティングシステム１４４、１４６は、主プロセス１１６またはバックアッププロセス１２２が、それらのオープンした領域内において、ＮＰＭＵ１０２からの物理メモリのコンテンツを書き込みまたは読み出すことを可能にする。
アクセス権はＮＩ１１４によって実施され、ＮＩ１１４は、ＮＰＭＵ１０２においてＰＭＭ１４０によって保持されたＴＰＴ１４２のエントリから自身の状態を構成する。
【００４５】
いくつかの実施の形態では、主プロセス１１６またはバックアッププロセス１２２は、ＮＰＭＵ１０２との接続を確立することを選択し、次いで、その接続を介して書き込み要求または読み出し要求を送信すると、アクセス権は、その接続に「バインド」することができ、各要求と共に繰り返す必要はない。
主プロセス１１６およびバックアッププロセス１２２が、最初に接続を確立することなく、要求をＮＰＭＵ１０２に送信することを選択すると、各要求は、アクセス権に含まれる認証情報を含むことができる。
【００４６】
ＮＰＭＵ１０２は、ＰＭＭ１４０を直接認証することができる。
さまざまな実施方式を利用することができる。
いくつかの実施の形態では、特定のＮＰＭＵ１２０がＳＡＮ１１２に最初に接続されると、ＰＭＭ１４０は、一定のＮＰＭＵ１０２の所有権を取得する。
このような状況では、ＰＭＭ１４０は、ＴＰＴ１４２への書き込み許可を自身に認めるように、ＮＰＭＵ１０２のＴＰＴ１４２を初期化する。
他の実施の形態は、パスワードベースの認証を利用することができる。
この場合、ＮＰＭＵ１０２は、ＰＭＭ１４０にのみ知られている予め構成されたパスワードを使用して、ＰＭＭ１４０からの要求の正当性を確認する。
証明書ベースの認証を含めて、さまざまな他の方式が可能であり、この証明書ベースの認証では、ＳＡＮ１１２が、サードパーティの認証サービスをサポートして、通信するエンティティを相互に認証することが必要とされる。
【００４７】
次に、例えば図１Ａに示すような本手法のさらなる機能を理解することができる。
例えば、プロセッサノード１０４は、ＰＭＭ１４０と通信してメモリ領域をオープンすると、その後、ＰＭＭ１４０を通過することなく、ＮＰＭＵ１０２のメモリに直接アクセスすることができる。
例えば、リモート読み出しコマンドは、開始ネットワーク仮想アドレスおよびオフセットならびに（複数のアドレス空間の場合の）コンテキスト識別子を提供する。
適切なオペレーションでは、このアドレス範囲は、ＰＭＭ１４０が割り当てた範囲内にあるべきである。
プロセッサノード１０４は、ノード１０４におけるローカル物理メモリ位置へのポインタを含むリモート読み出しコマンドをＮＩ１０８に提供する。
次に、要求側プロセッサノード１０４のＮＩ１０８は、そのリモート読み出しコマンドを、ＳＡＮ１１２を介してＮＰＭＵ１０２のＮＩ１１４に送信する。
ＮＩ１１４は、その領域に関連付けられた変換表を使用して、開始ネットワーク仮想アドレスをＮＰＭＵ１０２内の物理アドレスに変換する。
次に、ＮＩ１１４によって、ＮＰＭＵ１０２は、変換された物理アドレスから開始するデータを読み出し側プロセッサノードに返す。
連続したＰＭ仮想アドレスの物理ページは、必ずしも、連続したＰＭ物理アドレスに変換されるとは限らないので、たとえＮＰＭＵ１０２がページ境界に到達しても、ＮＩ１１４はアドレスを変換し続ける。
読み出しコマンドが完了すると、ＮＩ１０８は、読み出し転送に、完了した印をつける。
さらに、あらゆる待機プロセスが、通知を受けることができ、続いて、処理を受けることができる。
【００４８】
永続メモリへのリモート書き込みも同様である。
プロセッサノード１０４は、ＮＰＭＵ１０２の開始ＰＭネットワーク仮想アドレスおよびオフセットならびに（複数のアドレス空間の場合の）コンテキスト識別子を提供する。
上記と同様に、ＰＭネットワーク仮想アドレス範囲は、割り当てられた範囲内に含まれなければならない。
また、プロセッサノード１０４は、送信されるデータの物理アドレスへのポインタも提供する。
次に、プロセッサノード１０４のＮＩ１０８は、ＮＰＭＵ１０２のＮＩ１１４にリモート書き込みコマンドを発行し、データの送信を開始する。
ＮＩ１１４は、その領域に関連付けられた変換表を使用して、開始アドレスをＮＰＭＵ１０２の物理アドレスに変換する。
また、ＮＰＭＵ１０２は、変換された物理アドレスから開始するアドレスにデータを記憶する。
連続したＰＭネットワーク仮想アドレスの物理ページは、必ずしも、連続したＰＭ物理アドレスに変換されるとは限らないので、たとえＮＰＭＵ１０２がページ境界に到達しても、ＮＩ１１４はアドレスを変換し続ける。
書き込みコマンドが完了すると、ＮＩ１０８は、書き込み転送に、完了した印をつける。
その後、あらゆる待機プロセスは、通知を受けることができ、続いて、処理を受けることができる。
【００４９】
本教示によるＮＰＭＵ１０２の一実施の形態の待ち時間試験では、８０マイクロ秒内に十分入るメモリアクセスを達成することができたことに留意すべきである。
ＮＰＭＵ１０２の性能は、８００マイクロ秒以上を要する代替的なＩ／Ｏオペレーションと比べても非常に有利である。
実際には、Ｉ／Ｏオペレーションの待ち時間は、当該Ｉ／Ｏオペレーションの必要な割り込みを含めて回避されるので、この結果は可能である。
したがって、本教示によるＮＰＭＵは、システムメモリの細かな粒度のアクセスを伴った永続ストレージを有する。
【００５０】
いくつかの実施の形態では、プロセッサユニット１０４、１０６、ＮＰＭＵ１０２、およびＰＭＭ１４０は、図５に示すようなコンピュータシステム５００上で実施することができる。
このコンピュータシステム５００は、通常、さまざまなコンポーネントを通信接続するデータバス５０２で構成される。
図５に示すように、中央処理装置（ＣＰＵ）５０４は、バス５０２に接続されて、オペレーティングシステム５０６や１つまたは複数のアプリケーションプログラム５０８等の情報および命令を処理する。
例えば、オペレーティングシステム５０６は、オペレーティングシステム１４４または１４６（図１Ａ）を表すことができ、アプリケーションプログラム５０８は、主プロセス１１６またはバックアッププロセス１２２（図１Ａ）を含むことができる。
【００５１】
ランダムアクセスメモリ（ＲＡＭ）５０９等のコンピュータ可読揮発性メモリもバス５０２に接続して、ＣＰＵ５０４によって実行される情報および命令をロードすることができる。
さらに、コンピュータ可読読み出し専用メモリ（ＲＯＭ）５１０もバス５０２に接続して、ＣＰＵ５０４がアクセスできる静的な情報および命令を記憶することができる。
磁気ディスク媒体や光ディスク媒体等のデータストレージデバイス５１２もバス５０２に接続して、大量の情報および命令を記憶することができる。
英数字キーおよびファンクションキーを含む英数字入力デバイス５１４およびマウス等のカーソル制御デバイス５１６をバス５０２に接続して、ユーザがＣＰＵ５０４に情報およびコマンドを入力することを可能にすることができる。
【００５２】
１つまたは複数の通信ポート５１８をシステム５００に含めて、例えば、プリンタ等のさまざまな周辺デバイス、ＳＡＮ１１２等の外部ネットワーク、およびプロセッサノード１０４、１０６（図１Ａ）等の他の処理システムとの通信を可能にすることができる。
通信ポート５１８をネットワークインターフェース（ＮＩ）５２０にも接続して、外部ネットワークとの通信を可能にすることもできる。
ＮＩ５２０は、例えば、図１ＡのＮＩ１０８、１１４、１４１、または１１０を表すことができる。
【００５３】
表示装置５２２をバス５０２に接続して、システム５００のユーザに情報を表示することができる。
表示装置５２２は、液晶デバイス、陰極線管、またはユーザが認識可能なグラフィック画像および英数字を生成するのに適した他の表示デバイスとすることができる。
英数字入力デバイス５１４およびカーソル制御デバイス５１６によって、コンピュータユーザは、表示装置５２２上における可視的なシンボル（ポインタ）の２次元移動を信号で動的に送ることが可能になる。
【００５４】
いくつかの実施の形態では、コンピュータシステム５００のコンポーネントは、相互に通信することもできるし、適切なインターフェースリンクを介して他の外部ネットワークと通信することもできる。
適切なインターフェースリンクは、Ｔ１、ＩＳＤＮ、ケーブル線、携帯電話ネットワークもしくは衛星ネットワークを通じた無線接続、またはローカルエリアネットワークにわたるイーサネットやトークンリング等のローカルデータ搬送システムのいずれか１つや組み合わせ等である。
ハイパーテキスト転送プロトコル（ＨＴＴＰ）や伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）等の任意の適切な通信プロトコルを利用して、外部ネットワークの他のコンポーネントと通信することができる。
さらに、コンピュータシステム５００は、任意の適切な計算デバイスに組み込むこともでき、任意の適切な計算デバイスには、個人情報端末（ＰＤＡ）、表示エリアを有する電話、ネットワーク機器、デスクトップ、ラップトップ、Ｘウィンドウ端末、またはこのような他の計算デバイスが含まれる。
【００５５】
論理命令は、コンピュータ可読媒体に記憶することもできるし、電子信号の形でアクセスすることもできる。
本明細書で説明した論理モジュール、処理システム、および回路機構は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、他の適切なデバイス等のハードウェア、ソフトウェア、および／またはファームウェアの任意の適切な組み合わせを使用して実施することができる。
論理モジュールは、単独で実施することもできるし、他のシステムコンポーネントの１つに含めることもできる。
同様に、他のコンポーネントは、個別のディスクリートコンポーネントとして本明細書で開示されている。
しかしながら、これらのコンポーネントは、必要に応じて、より大きなまたは異なるソフトウェアモジュール、論理モジュール、集積回路、または電気アセンブリを形成するように組み合わせることができる。
【００５６】
本開示はさまざまな実施の形態を説明したが、これらの実施の形態は、例示として理解されるべきであり、特許請求の範囲を限定するものではない。
説明した実施の形態の多くの変形、変更、追加、および改良が可能である。
例えば、当業者は、本明細書で開示した構造および方法を提供するのに必要なプロセスを容易に実施する。
また、本明細書で開示した実施の形態の変形および変更も、添付した特許請求の範囲内に含めつつ行うことができる。
個々のモジュールの機能および機能の組み合わせは、任意の適切な機能とすることができる。
特許請求の範囲の範囲では、特に指定しない限り、数詞を伴わず単数形としても捉えることができる構成要素は、同構成要素の１または複数のものを指す。
【図面の簡単な説明】
【００５７】
【図１Ａ】チェックポイント状態情報を記憶できるネットワーク接続型永続メモリユニット（ＮＰＭＵ）を含むシステムの一実施の形態のブロック図である。
【図１Ｂ】図１ＡのＮＰＭＵからのチェックポイント状態情報にアクセスする一方法の一実施の形態の図である。
【図１Ｃ】複数の組のチェックポイント状態情報を記憶できるネットワーク接続型永続メモリユニット（ＮＰＭＵ）を含むシステムの一実施の形態のブロック図である。
【図１Ｄ】図１ＣのＮＰＭＵからのチェックポイント状態情報にアクセスする別の方法の一実施の形態の図である。
【図２】ネットワーク接続型永続メモリユニット（ＮＰＭＵ）の一実施の形態のブロック図である。
【図３】バッテリバックアップを使用したネットワーク接続型永続メモリユニット（ＮＰＭＵ）の一実施の形態のブロック図である。
【図４】永続メモリ仮想アドレス空間から永続メモリ物理アドレス空間へのマッピングを示すブロック図である。
【図５】ネットワーク接続型永続メモリユニット（ＮＰＭＵ）を実施できる例示のコンピュータシステムのブロック図である。
【符号の説明】
【００５８】
１０２・・・永続メモリ，
１２０・・・チェックポイント状態，
１４２・・・アドレス変換／保護表，
１０４、１０６・・・プロセッサ，
１１６・・・主プロセス，
１２０・・・チェックポイント状態，
１２２・・・バックアッププロセス，
１４４、１４６・・・オペレーティングシステム，
２０２・・・不揮発性メモリ，
３０２・・・揮発性メモリ，
３０４・・・バッテリ，
３０６・・・プロセッサ，
３１０・・・不揮発性２次ストレージ，
５０６・・・オペレーティングシステム，
５０８・・・アプリケーションプログラム，
５１２・・・データストレージ，
５１４・・・英数字入力，
５１６・・・カーソル制御部，
５１８・・・通信ポート，
５２２・・・表示装置，
【図１Ａ】
2005182781.tif 000003
【図１Ｂ】
2005182781.tif 000004
【図１Ｃ】
2005182781.tif 000005
【図１Ｄ】
2005182781.tif 000006
【図２】
2005182781.tif 000007
【図３】
2005182781.tif 000008
【図４】
2005182781.tif 000009
【図５】
2005182781.tif 000010