(57)【要約】パッシブ可変抵抗メモリ（ＰＶＲＭ）内のデータを更新するための方法及び装置が提供される。一例では、ＰＶＲＭ内に記憶されたデータを更新するための方法が開示される。本方法は、キャッシュ階層内の複数のメモリブロックのうちのメモリブロックを、当該メモリブロックを無効にすることなく更新するステップを含む。更新されたメモリブロックは、キャッシュ階層からライトスルーバッファにコピーすることができる。加えて、本方法は、更新されたメモリブロックをＰＶＲＭへ書き込み、それによってＰＶＲＭ内のデータを更新するステップを含む。【選択図】図１
2014512609.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリブロックを含むキャッシュ階層と、
前記キャッシュ階層に動作可能に接続されたライトスルーバッファと、
前記ライトスルーバッファに動作可能に接続されたパッシブ可変抵抗メモリ（ＰＶＲＭ）と、
前記キャッシュ階層に動作可能に接続されたプロセッサであって、前記キャッシュ階層内の前記複数のメモリブロックのうちのメモリブロックを、当該メモリブロックを無効にすることなく更新するように動作可能なプロセッサと、を備え、
前記キャッシュ階層は、前記プロセッサの前記メモリブロックの更新に応じて、前記更新されたメモリブロックを前記ライトスルーバッファにコピーするように動作可能であり、
前記ライトスルーバッファは、前記更新されたメモリブロックを前記ＰＶＲＭに書き込むように動作可能である、
装置。
【請求項２】
前記ＰＶＲＭは、相変化メモリ、スピントルクトランスファ磁気抵抗メモリ及びメモリスタメモリのうち少なくとも１つを含む、請求項１に記載の装置。
【請求項３】
前記ＰＶＲＭは、オンダイインタフェースを介して前記ライトスルーバッファに動作可能に接続されており、前記ライトスルーバッファは、前記更新されたメモリブロックを、前記オンダイインタフェースを介して前記ＰＶＲＭに書き込むように動作可能である、請求項１に記載の装置。
【請求項４】
前記オンダイインタフェースは、ダブルデータレートインタフェースを含む、請求項３に記載の装置。
【請求項５】
前記プロセッサは、少なくとも１つのＦＥＮＣＥ命令を実行するように動作可能であり、少なくとも１つのＦＥＮＣＥ命令の各々は、前記ライトスルーバッファに対して、前記ライトスルーバッファが前記更新されたメモリブロックを前記ＰＶＲＭへ書き込んだときに前記プロセッサに通知させる、請求項１に記載の装置。
【請求項６】
少なくとも１つの追加のプロセッサを備え、
前記プロセッサと、少なくとも１つの追加のプロセッサの各々とは、前記プロセッサによる少なくとも１つのＦＥＮＣＥ命令の各々の実行後に、前記ＰＶＲＭ内のデータの一致したグローバルビューを有する、請求項５に記載の装置。
【請求項７】
前記キャッシュ階層は、レベル１キャッシュ、レベル２キャッシュ及びレベル３キャッシュのうち少なくとも１つを備える、請求項１に記載の装置。
【請求項８】
前記ＰＶＲＭは、バイトアドレス指定可能である、請求項１に記載の装置。
【請求項９】
パッシブ可変抵抗メモリ（ＰＶＲＭ）内のデータを更新するための方法であって、
キャッシュ階層内の複数のメモリブロックのうちのメモリブロックを、当該メモリブロックを無効にすることなく更新するステップと、
前記更新されたメモリブロックを、前記キャッシュ階層からライトスルーバッファにコピーするステップと、
前記更新されたメモリブロックを前記ＰＶＲＭへ書き込み、それによって前記ＰＶＲＭ内の前記データを更新するステップと、
を含む方法。
【請求項１０】
前記ＰＶＲＭは、相変化メモリ、スピントルクトランスファ磁気抵抗メモリ及びメモリスタメモリのうち少なくとも１つを含む、請求項９に記載の方法。
【請求項１１】
前記プロセッサが、少なくとも１つのＦＥＮＣＥ命令を実行するステップと、
前記ＦＥＮＣＥ命令に基づいて、前記更新されたメモリブロックが前記ＰＶＲＭに書き込まれたときに前記プロセッサに通知するステップと、
を含む、請求項９に記載の方法。
【請求項１２】
前記キャッシュ階層は、レベル１キャッシュ、レベル２キャッシュ及びレベル３キャッシュのうち少なくとも１つを備える、請求項９に記載の方法。
【請求項１３】
前記ＰＶＲＭは、バイトアドレス指定可能である、請求項９に記載の方法。
【請求項１４】
複数のメモリブロックを含むキャッシュ階層と、
パッシブ可変抵抗メモリ（ＰＶＲＭ）と、
前記キャッシュ階層及び前記ＰＶＲＭに動作可能に接続されたＰＶＲＭコントローラと、
前記ＰＶＲＭコントローラに動作可能に接続されたプロセッサであって、前記複数のメモリブロックのうちどの少なくとも１つのメモリブロックを前記キャッシュ階層から前記ＰＶＲＭにコピーするかを識別する制御情報を、前記ＰＶＲＭコントローラに送信するように動作可能なプロセッサと、を備え、
前記ＰＶＲＭコントローラは、前記制御情報に応じて、前記少なくとも１つの識別されたメモリブロックを、前記キャッシュ階層から前記ＰＶＲＭにコピーするように動作可能である、
装置。
【請求項１５】
前記ＰＶＲＭは、相変化メモリ、スピントルクトランスファ磁気抵抗メモリ及びメモリスタメモリのうち少なくとも１つを含む、請求項１４に記載の装置。
【請求項１６】
前記プロセッサは、完了通知情報を取得するように動作可能であり、前記完了通知情報は、前記少なくとも１つの識別されたメモリブロックが前記キャッシュ階層から前記ＰＶＲＭにコピーされたことを前記プロセッサに通知するように作用する、請求項１４に記載の装置。
【請求項１７】
前記プロセッサは、前記ＰＶＲＭコントローラと関連付けられたステータスビットをポーリングすることによって、前記完了通知情報を取得するように動作可能であり、前記ステータスビットは、前記少なくとも１つの識別されたメモリブロックが前記キャッシュ階層から前記ＰＶＲＭにコピーされたか否かを示す、請求項１６に記載の装置。
【請求項１８】
前記プロセッサは、前記少なくとも１つの識別されたメモリブロックが前記キャッシュ階層から前記ＰＶＲＭにコピーされたことを示すプロセッサ割り込み信号を、前記ＰＶＲＭコントローラから受信することによって、前記完了通知情報を取得するように動作可能である、請求項１６に記載の装置。
【請求項１９】
前記ＰＶＲＭは、オンダイインタフェースを介して前記キャッシュ階層に動作可能に接続されており、前記ＰＶＲＭコントローラは、前記少なくとも１つの識別されたメモリブロックを、前記オンダイインタフェースを介して前記キャッシュ階層から前記ＰＶＲＭにコピーするように動作可能である、請求項１４に記載の装置。
【請求項２０】
前記オンダイインタフェースは、ダブルデータレートインタフェースを含む、請求項１９に記載の装置。
【請求項２１】
前記キャッシュ階層は、レベル１キャッシュ、レベル２キャッシュ及びレベル３キャッシュのうち少なくとも１つを備える、請求項１４に記載の装置。
【請求項２２】
パッシブ可変抵抗メモリ（ＰＶＲＭ）内のデータを更新するための方法であって、
プロセッサが、キャッシュ階層内の複数のメモリブロックのうちどの少なくとも１つのメモリブロックを前記キャッシュ階層から前記ＰＶＲＭにコピーするかを識別する制御情報を、ＰＶＲＭコントローラに送信するステップと、
前記制御情報に応じて、前記少なくとも１つの識別されたメモリブロックを前記キャッシュ階層からＰＶＲＭ内の永続的なファイルシステムにコピーし、それによって前記ＰＶＲＭ内の前記データを更新するステップと、
を含む方法。
【請求項２３】
前記ＰＶＲＭは、相変化メモリ、スピントルクトランスファ磁気抵抗メモリ及びメモリスタメモリのうち少なくとも１つを含む、請求項２２に記載の方法。
【請求項２４】
前記プロセッサが完了通知情報を取得するステップを含み、
前記完了通知情報は、前記少なくとも１つの識別されたメモリブロックが前記キャッシュ階層から前記ＰＶＲＭにコピーされたことを前記プロセッサに通知するように作用する、請求項２２に記載の方法。
【請求項２５】
前記完了通知情報を取得するステップは、
前記プロセッサが、前記ＰＶＲＭコントローラと関連付けられたステータスビットであって、前記少なくとも１つの識別されたメモリブロックが前記キャッシュ階層から前記ＰＶＲＭにコピーされたか否かを示すステータスビットをポーリングするステップと、
前記プロセッサが、前記少なくとも１つの識別されたメモリブロックが前記キャッシュ階層から前記ＰＶＲＭにコピーされたことを示すプロセッサ割り込み信号を、前記ＰＶＲＭコントローラから受信するステップと、
のうち少なくとも１つのステップを含む、請求項２４に記載の方法。
【請求項２６】
前記少なくとも１つの識別されたメモリブロックを前記キャッシュ階層から前記ＰＶＲＭにコピーするステップは、前記少なくとも１つの識別されたメモリブロックを、オンダイインタフェースを介して前記キャッシュ階層から前記ＰＶＲＭにコピーするステップを含む、請求項２０に記載の方法。
【請求項２７】
前記オンダイインタフェースは、ダブルデータレートインタフェースを含む、請求項２６に記載の方法。
【請求項２８】
前記キャッシュ階層は、レベル１キャッシュ、レベル２キャッシュ及びレベル３キャッシュのうち少なくとも１つを備える、請求項２２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、メモリ内に記憶されたデータを更新するための方法及び装置に関する。
【背景技術】
【０００２】
従来のコンピューティングシステムは、揮発性メモリと従来の不揮発性メモリとの間の異なる特性及びトレードオフを活用するように設計されている。例えば、揮発性メモリ（例えば、ＤＲＡＭ、ＳＲＡＭなど）は、比較的高速アクセスのバイトアドレス指定能力を提供する。しかしながら、揮発性メモリは、その名称が示すように、電力損失又はパワーサイクルの後に状態情報を失う。逆に、従来の不揮発性メモリ（例えば、フラッシュ、ハードディスクなど）は、電力損失又はパワーサイクルの後に状態情報を保持する。しかしながら、従来の不揮発性メモリは、多くの欠点に悩まされる。例えば、従来の不揮発性メモリは、典型的に、ブロックベースの更新を必要とする。つまり、従来の不揮発性メモリ内の単一の値を更新するためには、メモリブロック内の全ての値を更新することが度々必要になる。当業者に理解されるように、このことは、待ち時間を増大させ、コンピューティング資源を不必要に独占する可能性がある。
【０００３】
したがって、従来のコンピューティングシステムでは、揮発性メモリ及び従来の不揮発性メモリの両方でデータを保存する。例として、例えばＣＰＵによって頻繁にアクセスされるデータは、迅速なアクセスのためにＣＰＵを有するオンチップにしばしば記憶される揮発性メモリ（例えば、ＳＲＡＭ）内に一時的に記憶される（すなわち、キャッシュされる）場合がある。しかしながら、揮発性メモリは、電力損失又はパワーサイクルの際にその状態情報を失うため、揮発性メモリベースのキャッシュ（例えば、ファイルシステムデータ）の一部の更新は、永続的ストレージのために不揮発性メモリ（例えば、ハードディスク、フラッシュなど）内に最終的に複製されなければならない。不揮発性メモリ内に記憶されたデータの更新は、典型的に、例えばＰＣＩ−Ｅｘｐｒｅｓｓ（ＰＣＩ−Ｅ）等の比較的遅いブロックベースのインタフェースにわたって行われる。しかしながら、従来の不揮発性メモリは、そもそもアクセスするのが比較的遅いため、ＰＣＩ−Ｅインタフェースの使用は、従来のコンピューティングシステムの全メモリアクセス時間を大幅に低下させない。つまり、永続的ストレージは、比較的遅いアクセス時間を有する不揮発性タイプのメモリで従来通りに実装されている。例えば、ハードディスクに記憶されたデータは、アクセスするのに数ミリ秒かかる場合があるが、フラッシュメモリに記憶されたデータは、アクセスするのに数マイクロ秒かかる場合がある。したがって、従来の永続的ストレージ更新機構（すなわち、永続的ストレージの更新を容易にするハードウェア及び／又はソフトウェア）は、性能に重大な影響を及ぼさずに、それに対応して遅いインタフェース（例えば、ＰＣＩ−Ｅ及び他の同等に遅いインタフェース）を用いる。
【０００４】
しかしながら、例えばハードディスク及び／又はフラッシュより実質的に早いアクセス時間を示す新たなタイプのストレージが現れている。これらの新たなストレージのタイプは、（フラッシュ等のメモリタイプにおけるブロックベースのアドレス指定能力と比較して）バイトアクセス指定能力と、不揮発性との両方を示す。したがって、これらの新たなタイプのストレージによって与えられるより早いアクセス時間を生かすために、それに対応した早い永続的ストレージ更新機構を利用することが重要である。既存の永続的ストレージ更新機構は、あまりに遅いため、これらの新たなタイプのストレージによって与えられるより早いアクセス時間を生かせず、したがって、これらの新たなタイプのストレージとともに使用するのに適さない。
【０００５】
一方、既存のメインメモリ更新機構（すなわち、メインメモリの更新を容易にするハードウェア及び／又はソフトウェア）は、これらの新たなタイプのストレージに対する好適なアクセス時間を提供する場合があるが、これらの更新機構は、ソフトウェア（例えば、オペレーティングシステム）にライトバック完了の可視性を提供することができない。ライトバック完了の可視性をソフトウェアに提供する能力がないことは、コンピューティングデバイスのファイルシステム（例えば、オペレーティングシステムによって実装されるファイルシステム）内の非一貫性につながる可能性がある。
【０００６】
当該技術分野において既知であるように、コンピューティングデバイスのオペレーティングシステム（ＯＳ）は、コンピューティングデバイスのストレージ構成要素（例えば、ＤＲＡＭ、ハードディスク、フラッシュなど）上のファイルとして保存されたデータを整理、管理及びソートするように設計されたファイルシステムを実装することができる。ファイルシステムは、ストレージ構成要素の物理セクタ（例えば、メモリの５１２ビット物理セクタ）をファイル及びディレクトリに整理し、且つ、どのセクタがどのファイルに属するか、どのセクタが使用されていないかを追跡するのに責任がある。大部分のファイルシステムは、「メモリブロック」と呼ばれる固定サイズユニットのデータをアドレス指定する。一貫性及び耐久性を維持するために、これらの用語が当該技術分野において既知であるように、ファイルシステムは、書き込みがいつ永続的ストレージに達するかを把握しなければならず、特定の書き込み間の順序付けを定義することができなければならない。例えば、当該技術分野において既知であるように、シャドウページングファイルシステムは、データファイルが、新しいデータファイルを指し示すようにｉノードファイルを更新する前に更新されることを確実にしなければならない。しかしながら、データファイルがライトバックされる前にｉノードファイルのライトバックが生じる場合、永続的ストレージは一貫するようにならない。したがって、ソフトウェアによって指定されるライトバックの順序付けを維持することが、ハードウェアにとって重要である。
【０００７】
多くの既存のメインメモリ更新機構は、永続的ストレージライトバック可視性をソフトウェアに提供しない。他の既存のメインメモリ更新機構は、ライトバック可視性をソフトウェアに提供する場合があるが、極めて遅い。必要な順序付け制約を提供するために使用することができる書き込みポリシーが存在するが、これらの既存ポリシーは、上述した新たなタイプのストレージとともに使用するには不十分である。
【０００８】
例えば、順序付け制約の問題に対する従来の解決法の１つは、ライトバックメモリ（ＷＢ）を使用することである。ＷＢメモリは、この名称が示すように、ダーティキャッシュブロック（すなわち、キャッシュ内に存在する間に書き込まれるキャッシュブロック）がキャッシュ階層から追い出されるときに、メインメモリに対する書き込みのみ行う。このようなシステムのキャッシュコヒーレンスプロトコルは、メインメモリが実際に延滞データを記憶しているとしても、全てのプロセッサ（例えば、ＣＰＵ及び／又はＧＰＵ）がＷＢブロックの一致したビュー（ｃｏｎｓｉｓｔｅｎｔ  ｖｉｅｗ）を参照することを確実にする。
【０００９】
このように、ＷＢメモリを用いたシステムは、キャッシュフラッシュ又は非一時的ストア命令を使用してデータをメインメモリに退避させることによって、必要な順序付け制約を提供することができる。例えば、ＣＦＬＵＳＨ  ｘ８６命令は、キャッシュ階層内の指定されたキャッシュラインアドレスの全てのコピーを無効にし、ダーティな場合には、ブロックをメインメモリに書き込む。一方、ｘ８６非一時的ストア命令は、データをキャッシュブロックに書き込み、次いで、キャッシュブロックメインメモリを無効にする。これらの命令の種類の両方は、他のメモリオペレーションに対して弱く順序付けされ、したがって、ＭＦＥＮＣＥ又はＳＦＥＮＣＥ命令は、他のメモリオペレーションに対してそれらを順序付けるように挿入されなければならない。この解決法と関連付けられる１つの欠点は、キャッシュラインを無効にするためにＣＦＬＵＳＨ命令が使用されるとき、これによって、そのラインへの任意の後続のアクセスに対して、キャッシュをミスさせ、且つ、メインメモリにアクセスさせることである。あるデータがかなり頻繁に更新されている状況では、このことは大幅な性能低下につながる場合がある。本明細書では、データは、例えばコマンド／命令又は任意の他の好適な情報を含んでもよい。
【００１０】
ＷＢメモリを使用する代わりに、キャッシュ不可（Ｕｎｃａｃｈａｂｌｅ：ＵＣ）メモリが使用され得る。ＷＢメモリに勝るＵＣメモリの１つの利点は、ＵＣメモリアクセスが再順序付けされず、更新メインメモリに直接書き込むことである。したがって、ＵＣは、ＭＦＥＮＣＥ命令を必要とせずに、必要な順序付け制約を提供する。しかしながら、キャッシングを可能にしないことによって、全てのＵＣメモリアクセスがメインメモリまで直接進み、且つ、全てのＵＣ読み取りが書き込みバッファをフラッシュすることを必要とし、したがって、帯域幅需要を実質的に増加させ、上述したＷＢ／ＣＦＬＵＳＨ解決法と比較してさらに大きな性能低下を引き起こす。
【００１１】
別の解決法は、ライトコンバイン（Ｗｒｉｔｅ−Ｃｏｍｂｉｎｉｎｇ：ＷＣ）メモリを使用することを含む。ＷＣメモリは、ＵＣメモリに類似しているが、これによって、書き込みが結合され、書き込みが相互にバラバラに実行されることを可能にする。さらに、ＷＣ読み取りは、推測で実行される。しかしながら、ＷＣメモリは、さらにキャッシュ不可であり、したがって、全てのアクセスは、性能低下につながるメインメモリまで進まなければならない。
【００１２】
さらに別の解決法は、ライトスルー（Ｗｒｉｔｅ−Ｔｈｒｏｕｇｈ：ＷＴ）メモリを使用することを含む。ＷＢメモリと同様に、ＷＴメモリは、キャッシュすることができる。また、ＷＴメモリへの書き込みは、メインメモリに直接書き込むことであり、したがって、ＣＦＬＵＳＨ命令の必要性を排除する。しかしながら、ＷＴ解決法は、全てのＷＴメモリ書き込みがメインメモリまで進まなければならないため、相当な帯域幅を依然として必要とする。要するに、従来のメインメモリ更新機構は、不揮発性、バイトアドレス指定能力及び早いアクセス時間で示される新たなメモリタイプの多くの利点を活用することができない。
【００１３】
したがって、これらの新たなメモリタイプの、より早いアクセス時間、バイトアドレス指定能力及び不揮発性を活用するように設計される方法並びに装置に対する必要性が存在する。
【００１４】
下記の図面が添付されるとき、以下の説明を考慮して、本開示はさらに容易に理解されるであろう。類似の参照番号は、類似の要素を表す。
【図面の簡単な説明】
【００１５】
【図１】本開示によるパッシブ可変抵抗メモリ（ＰＶＲＭ）内のデータを更新するための装置の一例を概して図示するブロック図である。
【図２】本開示によるＰＶＲＭ内のデータを更新するための装置の別の例を概して図示するブロック図である。
【図３】本開示によるＰＶＲＭ内のデータを更新するための装置のさらに別の例を概して図示するブロック図である。
【図４】ＰＶＲＭ内のデータを更新するための方法の一例を示すフローチャートである。
【図５】ＰＶＲＭ内のデータを更新するための方法の別の例を示すフローチャートである。
【図６】ＰＶＲＭ内のデータを更新するための方法のさらに別の例を示すフローチャートである。
【図７】ＰＶＲＭ内のデータを更新するための方法のさらに別の例を示すフローチャートである。
【発明の概要】
【００１６】
本開示は、ＰＶＲＭ内のデータを更新するための方法及び装置を提供する。一例では、ＰＶＲＭ内のデータを更新するための方法が開示される。この例では、本方法は、キャッシュ階層内の複数のメモリブロックのうちのメモリブロックを、当該メモリブロックを無効にせずに更新することを含む。一例では、複数のメモリブロックのうちのメモリブロックは、プロセッサによって実行される、分離したライトスルーを有する非無効化ストア命令（ＮＩＳＩＤＷ）に基づいて更新される。更新されたメモリブロックは、キャッシュ階層からライトスルーバッファにコピーされ得る。本方法は、更新されたメモリブロックをＰＶＲＭへ書き込み、それによってＰＶＲＭ内のデータを更新することをさらに含む。一例では、ＰＶＲＭは、以下のＰＶＲＭの種類のうち少なくとも１つであってもよい：相変化メモリ、スピントルクトランスファ磁気抵抗メモリ及び／又はメモリスタメモリ。
【００１７】
別の例では、本方法は、少なくとも１つのＦＥＮＣＥ命令をプロセッサによって実行することをさらに含むことができる。プロセッサは、更新されたメモリブロックがＦＥＮＣＥ命令に基づいてＰＶＲＭに書き込まれたときに、通知されることができる。さらに別の例では、キャッシュ階層は、レベル１キャッシュ、レベル２キャッシュ及びレベル３キャッシュのうち少なくとも１つを含むことができる。さらに別の例では、ＰＶＲＭは、バイトアドレス指定可能である。
【００１８】
また、本開示は、例えば上記方法を実行するのに用いられる関連装置を提供する。一例では、本装置は、複数のメモリブロックを含むキャッシュ階層と、前記キャッシュ階層に動作可能に接続されたライトスルーバッファと、前記ライトスルーバッファに動作可能に接続されたＰＶＲＭと、前記キャッシュ階層に動作可能に接続されたプロセッサとを含む。この例では、プロセッサは、キャッシュ階層内の複数のメモリブロックのうちのメモリブロックを、当該メモリブロックを無効にせずに更新するように動作可能である。これは、例えば、少なくとも１つのＮＩＳＩＤＷを実行するプロセッサによって達成されてもよい。この例を続けると、キャッシュ階層は、プロセッサのメモリブロックの更新に応じて、更新されたメモリブロックをライトスルーバッファにコピーするように動作可能である。ライトスルーバッファは、更新されたメモリブロックをＰＶＲＭに書き込むように動作可能である。このように、ＰＶＲＭ内に記憶されたデータを更新することができる。
【００１９】
本装置の一例では、ＰＶＲＭは、例えばダブルデータレートインタフェース等のオンダイインタフェースを介してライトスルーバッファに動作可能に接続されており、ライトスルーバッファが、更新されたメモリブロックを、オンダイインタフェースを介してＰＶＲＭに書き込むように動作可能であるようにする。別の例では、プロセッサは、少なくとも１つのＦＥＮＣＥ命令を実行するように動作可能である。各ＦＥＮＣＥ命令は、更新されたメモリブロックをライトスルーバッファがＰＶＲＭに書き込んだときに、ライトスルーバッファがプロセッサに通知するように作用する。さらに別の例では、本装置は、少なくとも１つの追加のプロセッサを含む。この例では、プロセッサ及び少なくとも１つの追加のプロセッサは、プロセッサによる少なくとも１つのＦＥＮＣＥ命令の各々の実行後、ＰＶＲＭ内のデータの一致したグローバルビュー（ｇｌｏｂａｌ  ｖｉｅｗ）を有する。
【００２０】
また、本開示は、ＰＶＲＭ内のデータを更新するための別の方法を提供する。一例では、本方法は、キャッシュ階層内の複数のメモリブロックのうちキャッシュ階層からＰＶＲＭにコピーする少なくとも１つのメモリブロックを識別する制御情報を、プロセッサによってＰＶＲＭコントローラに送信することを含む。また、少なくとも１つの識別されたメモリブロックは、制御情報に応じて、キャッシュ階層からＰＶＲＭにコピーされてもよい。このようにして、ＰＶＲＭ内に記憶されたデータが更新されてもよい。
【００２１】
一例では、少なくとも１つの識別されたメモリブロックをキャッシュ階層からＰＶＲＭにコピーすることは、識別されたメモリブロックを、例えばダブルデータレートインタフェース等のオンダイインタフェースを介してコピーすることを含む。一例では、ＰＶＲＭは、以下のＰＶＲＭの種類のうち少なくとも１つであってもよい：相変化メモリ、スピントルクトランスファ磁気抵抗メモリ及び／又はメモリスタメモリ。
【００２２】
一例では、本方法はまた、プロセッサによって、完了通知情報を取得することを含む。完了通知情報は、少なくとも１つの識別されたメモリブロックがキャッシュ階層からＰＶＲＭにコピーされたことを、プロセッサに通知するように作用する。完了通知情報は、いくつかの方法で取得することができる。一例では、完了通知情報は、プロセッサが、ＰＶＲＭコントローラと関連付けられたステータスビットをポーリングすることによって取得される。この例では、ステータスビットは、少なくとも１つの識別されたメモリブロックがキャッシュ階層からＰＶＲＭにコピーされたか否かを示す。別の例では、完了通知情報は、少なくとも１つの識別されたメモリブロックがキャッシュ階層からＰＶＲＭにコピーされたことを示すプロセッサ割り込み信号を、プロセッサがＰＶＲＭコントローラから受信することによって取得される。さらに別の例では、キャッシュ階層は、レベル１キャッシュ、レベル２キャッシュ及びレベル３キャッシュのうち少なくとも１つを含むことができる。
【００２３】
本開示はまた、例えば上記方法を実行するのに用いられる関連装置を提供する。一例では、本装置は、複数のメモリブロックを含むキャッシュ階層と、ＰＶＲＭと、前記キャッシュ階層及びＰＶＲＭに動作可能に接続されたＰＶＲＭコントローラと、前記ＰＶＲＭコントローラに動作可能に接続されたプロセッサとを含む。この例では、プロセッサは、複数のメモリブロックのうちキャッシュ階層からＰＶＲＭにコピーする少なくとも１つのメモリブロックを識別する制御情報を、ＰＶＲＭコントローラに送信するように動作可能である。この例を続けると、ＰＶＲＭコントローラは、制御情報に応じて、少なくとも１つの識別されたメモリブロックをキャッシュ階層からＰＶＲＭにコピーするように動作可能である。
【００２４】
一例では、プロセッサは、少なくとも１つの識別されたメモリブロックがキャッシュ階層からＰＶＲＭにコピーされたことをプロセッサに通知するように動作可能な完了通知情報を取得するように動作可能である。完了通知情報は、例えば、上述の技術（例えば、ステータスビットをポーリングすること及び／又はプロセッサ割り込み信号を介して）のうち何れかを用いて取得されてもよい。さらに別の例では、ＰＶＲＭは、例えばダブルデータレートインタフェース等のオンダイインタフェースを介してキャッシュ階層に動作可能に接続されており、ＰＶＲＭコントローラは、少なくとも１つの識別されたメモリブロックを、オンダイインタフェースを介してキャッシュ階層からＰＶＲＭにコピーするように動作可能である。
【００２５】
他の利点の中では、開示される方法及び装置は、ＰＶＲＭと、新たなＮＩＳＩＤＷ（分離されたライトスルーを有する非無効化ストア命令）とに適合するアクセス速度を有する、新たな永続的ストレージ更新機構を提供する。新たな永続的ストレージ更新機構を含むコンピューティングシステムでＮＩＳＩＤＷを実行することは、永続的ストレージ（例えば、ＰＶＲＭ）の状態の一致したビューを維持するために、ライトバック完了の可視性をソフトウェアに提供する。さらに、ＮＩＳＩＤＷは、更新されたメモリブロックを無効にせずに、キャッシュ階層及びＰＶＲＭを更新することができる。他の利点は、当業者によって認識されるであろう。
【発明を実施するための形態】
【００２６】
実施形態の以下の説明は、単なる例示にすぎず、本開示、その適用又は使用を何等制限するものではない。図１は、本開示によるパッシブ可変抵抗メモリ（ＰＶＲＭ）１０８内のデータを更新するための装置１００（すなわち、新たな永続的ストレージ更新機構）の一例を示す。一例では、ＰＶＲＭは、相変化メモリ、スピントルクトランスファ磁気抵抗メモリ、メモリスタメモリ又は不揮発性パッシブ可変抵抗メモリの任意の他の好適な形態のうち何れか１つを含んでもよい。装置１００は、例えば、パーソナルコンピュータ（例えば、デスクトップ若しくはラップトップコンピュータ）、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話、タブレット（例えば、Ａｐｐｌｅ（登録商標）のｉＰａｄ（登録商標））、１つ以上のネットワーク化されたコンピューティングデバイス（例えば、それぞれの個々のコンピューティングデバイスが装置１００の１つ以上の機能を実装する、サーバーコンピュータ若しくは類似のもの）、カメラ又は任意の他の好適な電子デバイス内に存在する。装置１００は、プロセッサ１１２を含む。プロセッサ１１２は、１つ以上のマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ又はストレージ構成要素内に記憶される実行可能な命令の制御下で動作するこれらの組み合わせを備えてもよい。一例では、プロセッサ１１２は、中央処理装置（ＣＰＵ）である。
【００２７】
ＰＶＲＭは、電荷の代わりに抵抗の形態で状態を記憶する任意のメモリ技術を記載するために使用される広義語である。つまり、ＰＶＲＭ技術は、電荷を使用してビットの状態を記憶する電荷ベースのメモリ技術とは対照的に、ビットの状態を記憶するセルの抵抗を使用する。ＰＶＲＭは、スイッチとして機能するように、例えばトランジスタ等の任意の能動型半導体デバイスを必要としないという事実により、パッシブであるとみなされる。これらのタイプのメモリは、電力損失又はパワーサイクルの後に状態情報を保持するという事実により、「不揮発性」であると言われる。パッシブ可変抵抗メモリは、抵抗不揮発性ランダムアクセスメモリ（ＲＮＶＲＡＭ又はＲＲＡＭ）としても知られている。
【００２８】
ＰＶＲＭの例としては、強誘電体ＲＡＭ（ＦｅＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、メモリスタ、相変化メモリ（ＰＣＭ）及びスピントルクトランスファＭＲＡＭ（ＳＴＴ−ＭＲＡＭ）が挙げられるが、これらに限定されない。これらの技術の何れかが本明細書で開示される装置１００等の装置とともに使用するのに好適であってもよいが、ＰＣＭ、メモリスタ及びＳＴＴ−ＭＲＡＭは、特に良好な適合を提供すると考えられ、したがってさらに詳細に後述される。
【００２９】
相変化メモリ（ＰＣＭ）は、状態を記憶するように、相変化材料（概してカルコゲニド）の性質に依存するＰＶＲＭ技術である。熱ヒート相変化材料のストレージデバイス内に電流を注入することによって、書き込みが実施される。電流の突然の遮断によって材料を、高抵抗性を有する非晶質状態にフリーズさせる一方で、電流の遅く緩やかな減少は、材料内の結晶の形成をもたらす。結晶状態は、非晶質状態よりも低い抵抗を有し、したがって１又は０値がセルの抵抗性に対応する。変化した電流減少傾斜度は、中間状態を生成することができ、電位マルチレベルセルを可能にする。ＰＣＭストレージエレメントは、加熱エレメントと、電極間のカルコゲニドとからなるが、ＰＣＭセルは、ストレージエレメントと、アクセストランジスタとからなっている。
【００３０】
メモリスタは、「第４の回路素子」と一般に称され、他の３つは、レジスタ、キャパシタ及びインダクタである。メモリスタは、端子間を通過した電荷の量に依存する抵抗を有する、実質的な二端子可変レジスタである。したがって、メモリスタの抵抗は、それを通って進む電流の量によって変化し、その抵抗は、電流が停止されるときでさえ記憶される。メモリスタの一例は、「ＥＬＥＣＴＲＩＣＡＬＬＹ  ＡＣＴＵＡＴＥＤ  ＳＷＩＴＣＨ」という発明の名称を有する、対応する米国特許出願公開第２００８／００９０３３７号に開示されており、これは参照により本明細書に組み込まれる。
【００３１】
スピントルクトランスファ磁気抵抗ＲＡＭ（ＳＴＴ−ＭＲＡＭ）は、ＭＲＡＭの第二世代版であり、この原版は、国際半導体技術ロードマップ（ＩＴＲＳ）によって「原型」であると見なされている。ＭＲＡＭは、磁気トンネル接合（ＭＴＪ）の形態で情報を記憶し、２つの強磁性材料を薄い絶縁材料層で分離させる。記憶値は、１つの層がその対応層の方向と整列し又は向かい合うように切り替わるときに変更され、次いで接点の抵抗に影響する。原型ＭＲＡＭは、この変化を生じさせるために、適切な磁場を必要としていた。このことは、困難であって非効率的であり、非実用的に高い書き込みエネルギーをもたらした。ＳＴＴ−ＭＲＡＭは、スピン偏極電流を使用し、外部磁場を必要とせずに極性を逆にする。したがって、ＳＴＴ技術は、確実且つ適切に強化された磁場を生成することの困難な側面を排除することに加え、書き込みエネルギーを減少させる。しかしながら、ＳＴＴ−ＭＲＡＭは、ＰＣＭのように、アクセストランジスタを必要とし、したがって、そのセルサイズスケーリングは、トランジスタスケーリングに依存する。
【００３２】
何れの場合でも、プロセッサ１１２は、オンダイバス等の好適な通信チャネルを介してプロセッサコア１２６に動作可能に接続された命令キャッシュ１２２を含む。命令キャッシュ１２２は、１つ以上の非無効化ストア命令１１４及び／又はＦＥＮＣＥ命令１２４等のように、プロセッサ１１２のプロセッサコア１２６によって実行することができる命令を記憶するように動作可能である。本明細書に記載される実施形態に関して使用されるとき、ＦＥＮＣＥ命令は、例えば任意のｘ８６ＦＥＮＣＥ命令（例えば、ＭＦＥＮＣＥ、ＳＦＥＮＣＥ、ＬＦＥＮＣＥなど）を含むことができる。一例では、ＦＥＮＣＥ命令は、ライトスルーバッファ１０６等のライトスルーバッファが空になるまで完了しない新たなＦＥＮＣＥ命令（すなわち、ｘ８６ＩＳＡに含まれないプロプライエタリＦＥＮＣＥ命令）を含むことができる。装置１００はまた、キャッシュ階層１０２を含む。
【００３３】
キャッシュ階層１０２は、あらゆる好適な値のキャッシュレベルを含むことができる。例えば、一実施形態では、キャッシュ階層１０２は、レベル１キャッシュのみを含むことができる。しかしながら、キャッシュ階層１０２は、いくつかの異なるキャッシュレベル（例えば、レベル１キャッシュ、レベル２キャッシュ及びレベル３キャッシュ）を同様に含んでもよいことが認識される。キャッシュ階層１０２は、当該技術分野において既知であるように、例えば１つ以上のオンダイ又はオフダイバス等の１つ以上の好適な通信チャネルを介してプロセッサ１１２に動作可能に接続される。キャッシュ階層１０２は、例えば、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥ−ＰＲＯＭ）、ＰＶＲＭなどの揮発性／不揮発性メモリ構成要素の任意の組み合わせを備えることができる。例えば、一実施形態では、キャッシュ階層１０２は、ＳＲＡＭ（スタティックランダムアクセスメモリ）及び／又はＤＲＡＭ（ダイナミックランダムアクセスメモリ）を備えてもよい。キャッシュ階層１０２は、例えばメモリブロック１１６（「ブロックＢ」と表示される）及び更新されたメモリブロック１１８（「ブロックＡ」と表示される）等の複数のメモリブロック１０４を含む。本明細書に記載される実施形態に関して使用されるとき、メモリブロックは、永続的ストレージ更新機構（すなわち、装置１００の構成要素）が転送する最小隣接バイトのグループを指す。現代のコンピューティングシステムの場合、メモリブロックは、典型的に６４〜１２８バイトである。
【００３４】
装置１００はまた、ライトスルーバッファ１０６を含む。ライトスルーバッファ１０６は、当該技術分野において既知であるように、１つ以上の好適な通信チャネル（例えば、バス、オンダイインタフェース、オフダイインタフェースなど）を介して、キャッシュ階層１０２及びプロセッサ１１２に動作可能に接続されている。ライトスルーバッファ１１６は、例えば、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥ−ＰＲＯＭ）、ＰＶＲＭなどの揮発性／不揮発性メモリ構成要素の任意の組み合わせを備えることができる。最後に、装置１００は、ダブルデータレート（ＤＤＲ）インタフェース等のオンダイインタフェース１２０を介してライトスルーバッファ１０６に動作可能に接続されたＰＶＲＭ１０８を含む。
【００３５】
ＰＶＲＭ１０８は、例えばファイル、コマンド／命令又は任意の他の好適な情報を表すデータ等のデータを含む。ＰＶＲＭ１０８は、更新されたメモリブロック１１８等の１つ以上のメモリブロックを記憶するように動作可能である。
【００３６】
一例では、装置１００は、以下のように動作する。プロセッサ１１２上で作動する記憶されたソフトウェア（例えば、記憶されたコンピュータプログラム）は、プロセッサに、分離されたライトスルーを有する非無効化ストア命令１１４（ＮＩＳＩＤＷ）を生じさせる。ＮＩＳＩＤＷ１１４が、分離されたライトスルー１３２を有する書き込み要求１３０の中に移動される場合には、ＮＩＳＩＤＷ１１４は、プロセッサ１１２の命令キャッシュ１２２からプロセッサのコア１２６に通信される。例えば、書き込み要求１３０は、更新されるデータを含むメモリ内のアドレスと、メモリ内で当該アドレスのデータがとるべき新たな値とを識別してもよい。次に、分離されたライトスルー１３２を有する書き込み要求１３０は、キャッシュ階層１０２に発行される。さらに、キャッシュ階層１０２は、例えば、レベル１キャッシュ（例えば、プロセッサダイ上のＳＲＡＭ、ＤＲＡＭ、ＰＶＲＭなど）を含んでもよい。
【００３７】
書き込み要求１３０がキャッシュ階層１０２にヒットする場合（すなわち、更新が求められる特定のメモリブロックがキャッシュ階層１０２内に存在する場合）、適切なメモリブロックは、所望の値で更新される。例えば、図１の参照を続けると、更新されたブロックＡが、更新されたメモリブロック１１８を構成するように、書き込み要求１３０は、「ブロックＡ」を更新してもよい。更新されたメモリブロック１１８を示すためにブロックＡが使用されるが、あらゆる数の異なるメモリブロックが所望に応じて更新されてもよいことが認識される。しかしながら、ＮＩＳＩＤＷの名称が示すように、キャッシュ階層１０２への書き込み要求１３０は、更新されるメモリブロックを無効にしない。むしろ、更新されたメモリブロック１１８のコピーは、更新後にキャッシュ階層１０２内に維持される。このように、書き込み要求１３０は、適切なメモリブロックが更新されると、プロセッサ１１２の観点から完了する。したがって、ＰＶＲＭ１０８への任意の後続ライトスルー１３２は、以下でさらに詳細に述べられるように、それらが別個のライトスルーバッファ１０６内でバッファリングされることを可能にする他の書き込みに対して結合され、且つ、バラバラに発行されてもよい。したがって、これらのライトスルー１３２は、バラバラに発行することができない既存のＷＴメモリライトスルーと同一の帯域幅負荷を生成することがない。
【００３８】
続いて、キャッシュ階層１０２は、書き込みオペレーションが成功裏に完了したことを示す確認信号１３６を、プロセッサ１１２へ戻してもよい。プロセッサコア１２６は、確認信号１３６を受信すると、命令シーケンスにおいて次の命令を実行し続けてもよい。キャッシュ階層１０２が信号１３６をプロセッサ１１２へ戻すのと同時又はほぼ同時に、キャッシュ階層１０２は、分離されたライトスルー１３２をライトスルーバッファ１０６に発行してもよい。分離されたライトスルー１３２は、書き込み要求１３０と実質的に同一のデータを含む。つまり、分離されたライトスルー１３２は、例えば、更新されるデータを含むメモリ内のアドレスと、メモリ内の当該アドレスのデータがとるべき新たな値を識別してもよい。図１を参照すると、この概念は、キャッシュ階層１０２から（及びキャッシュ階層１０２によって）ライトスルーバッファ１０６にコピーされる、更新されたメモリブロック１１８を示すことによって説明される。
【００３９】
次に、ライトスルーバッファ１０６は、オンダイインタフェース１２０がＰＶＲＭ書き込み要求１３４を消費可能であるときに、更新されたメモリブロック１１８（すなわち、更新されたメモリブロック１１８を表す転送データ）をＰＶＲＭ１０８に書き込むことができる。つまり、一例では、ライトスルーバッファ１０６は、ＰＶＲＭ１０８内のストレージに指定される複数のメモリブロックを表すデータを含んでもよい。このような状況では、ライトスルーバッファ１０６は、バッファ１０６内に存在する他のメモリブロックに書き込む必要があるため、特定のメモリブロック（例えば、更新されたメモリブロック１１８）に対応する所定のＰＶＲＭ書き込み要求１３４を速やかに消費することができなくてもよい。ライトスルーバッファ１０６は、所望に応じて、例えば、先入れ先出し（ＦＩＦＯ）無効化方式又はバラバラな順序の無効化方式等の当該技術分野において既知である任意の好適な無効化方式を実装してもよいことが認識される。このように、ＰＶＲＭ１０８内に記憶されたデータは、所定のメモリブロック（例えば、更新されたメモリブロック１１８）のライトスルーバッファ１０６の書き込み後に更新されると特徴付けられてもよい。
【００４０】
特に、ライトスルーバッファ１０６は、オンダイインタフェース１２０を介してＰＶＲＭ１０８に動作可能に接続されている。オンダイインタフェース１２０は、オフダイインタフェースとは対照的に、従来の不揮発性ＲＡＭと比較してＰＶＲＭ１０８の比較的早いアクセス時間を最適化するために本開示に利用される。オンダイインタフェースは、例えば、ＤＤＲインタフェース、ＤＤＲ２インタフェース、ＤＤＲ３インタフェース又は当該技術分野において既知である任意の他の好適なオンダイインタフェースを備えてもよい。ＰＶＲＭ１０８の高速アクセスは、より遅い（例えば、オフダイ）インタフェースが使用される予定である場合には、軽減されるであろう。
【００４１】
ＰＶＲＭ１０８を更新する前述のプロセスは、ＦＥＮＣＥ命令１２４が発行されるまで、所望に応じて多くの更新を続けてもよい。当該技術分野において既知であるように、ＦＥＮＣＥ命令１２４は、ＦＥＮＣＥ命令１２４の前後に発行されるメモリオペレーション（例えば、読み取り／書き込み）の順序付け制約をプロセッサ（例えば、プロセッサ１１２）に強制させる命令のクラスである。つまり、ＦＥＮＣＥ命令１２４は、ＦＥＮＣＥ命令１２４より前に発行された、メモリに対する全てのストアの直列化オペレーション（例えば、書き込み要求１３０／分離されたライトスルー１３２）を実行する。この直列化オペレーションによって、ＦＥＮＣＥ命令１２４に続く任意のロード／ストア命令が全体的に可視となる前に、プログラム順序内のＦＥＮＣＥ命令１２４に先行するあらゆるストア命令が全体的に可視となることを確実にする。このように、ソフトウェア（例えば、ファイルシステムを実装するＯＳ）は、ストレージの状態を決定するためにオペレーションが何を完全に完了したか把握している。したがって、クラッシュが発生した場合、ソフトウェアは、所定のオペレーションが成功するか又はリプレイされる必要があるか把握している。つまり、本開示のＦＥＮＣＥ命令１２４は、ストレージの状態の一致したビューを維持するように、ＰＶＲＭ１０８への更新の可視性を確実にする。このように、装置１００は、メモリオペレーションが複数の命令のスレッドにわたって再順序付けされるときに発生することが既知である並列プログラム及びデバイスドライバの予測不可能な挙動を防ぐことができる。
【００４２】
装置１００では、ＦＥＮＣＥ命令１２４は、ストレージの状態の一致したビューを維持するためにソフトウェアにＰＶＲＭ更新の可視性を提供するように、１つの論理命令のグループ（例えば、書き込み要求１３０）の終わりで信号に発行される。所望されるとき（例えば、論理命令のグループの終わりで）、ＦＥＮＣＥ命令１２４は、ライトスルーバッファ１０６が空であるとき（すなわち、ライトスルーバッファがメモリブロックの全てをＰＶＲＭ１０８へ書き込んだとき）、ライトスルーバッファ１０６がプロセッサ１１２に通知することを要求して、プロセッサ１１２によってライトスルーバッファ１０６に発行される。ライトスルーバッファ１０６が空であるとき、ライトスルーバッファ１０６は通知情報１２８をプロセッサ１１２に送信する。通知情報１２８は、ライトスルーバッファ１０６が空であることをプロセッサ１１２に通知するように作用する。通知情報１２８の受信後、プロセッサ１１２上で作動するソフトウェアは、例えば、特定のメモリブロック（例えば、更新されたメモリブロック１１８）の最新版がＰＶＲＭ１０８内に位置していることを他の装置構成要素（例えば、プロセッサ１１２に加えて１つ以上の他のプロセッサ）に通知するように、ファイルシステムの状態をプロセッサに更新させることができるので、このプロセスは有利である。このように、プロセッサ１１２と、追加のプロセッサ（図示せず）の各々とは、プロセッサ１１２による少なくとも１つのＦＥＮＣＥ命令１２４の各々の実行後、ＰＶＲＭ１０８内に記憶されたデータのユニバーサルビュー（ｕｎｉｖｅｒｓａｌ  ｖｉｅｗ）を有する。
【００４３】
書き込み要求１３０がキャッシュ階層１０２にヒットする状況を中心に上記論述が展開されたが、いくつかの状況では書き込み要求１３０がキャッシュ階層１０２をミスすることが認識される。このような状況では、キャッシュ階層１０２（例えば、階層内のレベル１キャッシュ）は、書き込み要求１３０が更新するように求めたメモリブロックに対応する排他読み出し要求（ｒｅａｄ−ｅｘｃｌｕｓｉｖｅ  ｒｅｑｕｅｓｔ）を発行してもよい。排他読み出し要求は、問題のブロックを含むメモリの部分（例えば、別のキャッシュ及び／又はＰＶＲＭ１０８自体）によって反応され、キャッシュ階層１０２（例えば、レベル１キャッシュ）独占許可及びブロックのデータを認める。独占許可が認められた時点で、このプロセスは、書き込み要求１３０が最初にキャッシュ階層１０２にヒットしたかのように進む。
【００４４】
このように、図１に示される装置１００は、ＰＶＲＭ１０８内のデータのバイト粒度の細かい（ｂｙｔｅ−ｇｒａｎｕｌａｒ）更新を提供する。装置１００のアーキテクチャは、オンダイインタフェース１２０と共に、ストレージの状態の一致したビューを維持するために、ＰＶＲＭ更新の可視性をソフトウェアに提供しながら、ＰＶＲＭ１０８と関連付けられるバイトアドレス指定可能な特質及び早いアクセス時間を活用する。
【００４５】
図４は、本開示によるＰＶＲＭ内のデータを更新するための方法の一例を示すフローチャートである。図４に開示される方法は、例えば、図１に示された装置１００によって行われてもよい。ステップ４００では、キャッシュ階層内の複数のメモリブロックのうちのメモリブロックは、当該メモリブロックを無効にせずに更新される。一例では、複数のメモリブロックのうちのメモリブロックは、プロセッサによって実行されるＮＩＳＩＤＷに基づいて更新される。ステップ４０２では、更新されたメモリブロックは、キャッシュ階層からライトスルーバッファにコピーされる。ステップ４０４では、更新されたメモリブロックは、ＰＶＲＭへ書き込まれ、それによってＰＶＲＭ内のデータが更新される。
【００４６】
図５は、本開示によるＰＶＲＭ内のデータを更新するための方法の別の例を示すフローチャートである。図５に開示される方法は、例えば、図１に示された装置１００によって行われてもよい。ステップ４００〜４０４は、図４に関して上述されたように行われる。ステップ５００では、少なくとも１つのＦＥＮＣＥ命令が、プロセッサによって実行される。ステップ５０２では、プロセッサは、更新されたメモリブロックがＦＥＮＣＥ命令に基づいてＰＶＲＭへ書き込まれたときに通知される。
【００４７】
図２は、本開示によるＰＶＲＭ１０８内のデータを更新するために使用することができる、装置１００（すなわち、新たな永続的ストレージ更新機構）の別の例を示す。図１に関して上述された装置１００の構成要素は、ＰＶＲＭ１０８内のデータのバイトアドレス指定可能な更新を達成するのが必要な構成要素を表している。しかしながら、図２に関する以下の論述を考慮して明らかとなるように、装置１００はまた、ＰＶＲＭ１０８内のデータに対して、大規模データファイルを更新し及び／又はバッチ更新を容易にするための構成要素を含む。換言すれば、図１に示された構成要素及び図２に示された構成要素は、細粒（ｆｉｎｅ−ｇｒａｉｎｅｄ）の永続的ストレージ更新機構（例えば、図１参照）及び粗粒（ｃｏａｒｓｅ−ｇｒａｉｎｅｄ）の永続的ストレージ更新機構（例えば、図２参照）を提供するために同一の装置１００に共存する。
【００４８】
図２に示された装置１００は、図１に関して上述されたプロセッサ１１２等のプロセッサ１１２を含む。プロセッサ１１２は、図１に関して上述されたキャッシュ階層１０２等のキャッシュ階層１０２に動作可能に接続されている。キャッシュ階層１０２は、個々のメモリブロック１１６（例えば、ブロックＡ、ブロックＢなど）からなる複数のメモリブロック１０４を含む。個々のメモリブロック１１６の何れかは、図１に関して上記で論述された、更新されたメモリブロック１１８等の更新されたメモリブロック１１８であってもよい。つまり、複数のメモリブロック１０４の何れか又は全ては、例えば、図１に示された書き込み要求１３０等の書き込み要求１３０によって予め更新されてもよい。キャッシュ階層１０２は、上述したオンダイインタフェース１２０等のオンダイインタフェース１２０を介してＰＶＲＭコントローラ２００に動作可能に接続されている。
【００４９】
ＰＶＲＭコントローラ２００は、例えば、ＰＶＲＭ１０８まで若しくはそれから進むデータの流れ、又は当該技術分野において既知である任意の他の好適な種類のメモリコントローラを管理することができるデジタル回路を備えてもよい。一例では、ＰＶＲＭコントローラ２００は、プロセッサ１１２と同一のマイクロプロセッサダイ上に統合されてもよい。何れの場合も、ＰＶＲＭコントローラ２００は、当該技術分野において既知であるように、直接メモリアクセス（ＤＭＡ）エンジンとして機能してもよい。このように、ＰＶＲＭコントローラ２００は、費用のかかるメモリオペレーション（例えば、大規模なコピー又は分散収集オペレーション）をプロセッサ１１２から開放するのに用いられてもよく、結果として、プロセッサ１１２は、他のタスクを実施するように利用可能となる。ＰＶＲＭコントローラ２００は、バス等の当該技術分野において既知である好適な通信チャネルを介して、ＰＶＲＭ１０８に動作可能に接続されている。ＰＶＲＭ１０８は、上記に提供されたその構成要素の論述に従って作動する。
【００５０】
図２に示された装置１００は、以下のように動作する。プロセッサ１１２は、制御情報２０２をＰＶＲＭコントローラ２００に送信することができる。制御情報２０２は、どの個々のメモリブロック１１６が、キャッシュ階層１０２からＰＶＲＭ１０８にコピーされるべきかを識別する。ＰＶＲＭコントローラ２００は、制御情報２０２の受信に応じて、識別されたメモリブロック２１０をキャッシュ階層１０２からＰＶＲＭ１０８にコピーするように動作可能であり、それによってＰＶＲＭ１０８内のデータを更新する。しかしながら、一実施形態では、ＰＶＲＭコントローラ２００は、識別されたメモリブロック２１０をコピーするだけよりも、ＰＶＲＭ１０８への識別されたメモリブロック２１０を無効にしてもよいことが認識される。
【００５１】
それにもかかわらず、一例では、ＰＶＲＭコントローラ２００は、複数のメモリブロック１０４のうちどの個々のメモリブロック１１６がＰＶＲＭ１０８にコピーされ／無効にされるべきか示す１つ以上のキャッシュプローブ２０８を、キャッシュ階層１０２に送信するように動作可能である。この例では、キャッシュ階層１０２は、キャッシュプローブ２０８の受信に応じて、識別されたメモリブロック２１０を表すデータを、ＰＶＲＭ１０８に転送するように動作可能である。例えば、図２の参照を続けると、ＰＶＲＭ１０８は、識別されたメモリブロック２１０を含むように示されている。このように、プロセッサ１１２は、他のオペレーションを実施するように解放されるが、ＰＶＲＭコントローラ２００は、１つ以上の個々のメモリブロック１１６を、キャッシュ階層１０２からＰＶＲＭ１０８にコピーすること／無効にすることを管理する。
【００５２】
識別されたメモリブロック２１０がＰＶＲＭ１０８内の永続的ストレージに転送された時点で、プロセッサは、完了通知情報２０４を取得することができる。完了通知情報２０４は、少なくとも１つの識別されたメモリブロック２１０がキャッシュ階層１０２からＰＶＲＭ１０８にコピーされ／無効にされたことを、プロセッサ１１２に通知するように作用する。一例では、プロセッサ１１２は、ＰＶＲＭコントローラ２００と関連付けられるステータスビット２０６をポーリングすることによって、完了通知情報２０４を取得するように動作可能である。本明細書に記載される実施形態に関して使用されるとき、「ポーリングする」とは、ステータスビット２０６を連続的にサンプリングする（例えば、読み取る）こと、ステータスビット２０６を定期的にサンプリングすること、イベントに応じてステータスビットをサンプリングすることなどを含んでよい。ステータスビット２０６は、ポーリングの方法にかかわらず、例えば、少なくとも１つの識別されたメモリブロック２１０がキャッシュ階層１０２からＰＶＲＭ１０８にコピーされ／無効にされたか否かを示すことができる。別の例では、プロセッサ１１２は、少なくとも１つの識別されたメモリブロック２１０がキャッシュ階層１０２からＰＶＲＭ１０８にコピーされ／無効にされたことを示すプロセッサ割り込み信号をＰＶＲＭコントローラ２００から受信することによって、完了通知情報２０４を取得することができる。このように、図２に示された装置１００の構成要素は、他のオペレーションを実施するようにプロセッサ１１２へ同時に解放しながら、キャッシュ階層１０２からＰＶＲＭ１０８内の長期ストレージへのデータの大規模転送を容易にすることができる。
【００５３】
図３は、本開示によるＰＶＲＭ１０８内のデータを更新するために使用することができる、装置１００のさらに別の例を示す。図３は、図２の粗粒の更新機構を本質的に図示するが、ライトスルーバッファ１０６等のライトスルーバッファ１０６を含めて図１に関して上述される。図３に示された装置１００の例では、ライトスルーバッファ１０６は、キャッシュ階層１０２からコピーされ／無効にされたがＰＶＲＭ１０８にまだ達していない、識別されたメモリブロック２１０の一時ストレージとして使用されてもよい。したがって、ライトスルーバッファ１０６は、識別されたメモリブロック２１０の、キャッシュ階層１０２からＰＶＲＭ１０８への流れを管理するために使用されてもよい。別の言い方をすれば、ライトスルーバッファ１０６は、識別されたメモリブロック２１０をオンダイインタフェース１２０が消費し得るよりも早く、メモリブロック２１０がＰＶＲＭ１０８への転送を予定されるときに生じ得るボトルネックシナリオを防ぐために利用されてもよい。
【００５４】
図６は、本開示によるＰＶＲＭ内のデータを更新するための方法の一例を示すフローチャートである。図６に開示される方法は、例えば、図２及び／又は図３に示された装置１００によって行われてもよい。ステップ６００では、プロセッサは、制御情報をＰＶＲＭコントローラに送信する。この制御情報は、キャッシュ階層内の複数のメモリブロックのうち、どの少なくとも１つのメモリブロックをキャッシュ階層からＰＶＲＭにコピーするかを識別する。ステップ６０２では、少なくとも１つの識別されたメモリブロックが、制御情報に応じてキャッシュ階層からＰＶＲＭにコピーされ、それによってＰＶＲＭ内のデータが更新される。
【００５５】
図７は、本開示によるＰＶＲＭ内のデータを更新するための方法の別の例を示すフローチャートである。図７に開示される方法は、例えば、図２及び／又は図３に示された装置１００によって行われてもよい。ステップ６００〜６０２は、上記に提供されたそれらのステップの論述に従って行われる。ステップ７００では、プロセッサは、完了通知情報を取得する。この完了通知情報は、少なくとも１つの識別されたメモリブロックがキャッシュ階層からＰＶＲＭにコピーされたことをプロセッサに通知するように作用する。
【００５６】
一例では、それぞれのＰＶＲＭメモリセル（例えば、１ビット）は、任意の好適な設計のメモリスタであってもよい。メモリスタが２つの金属接点（例えば、白金ワイヤ）間にメモリ領域（例えば、ＴｉＯ２層）を含むため、メモリスタは、それぞれのメモリセルの抵抗を非破壊的に読み取る交流電流を有するクロスポイントアレイ型（すなわち、クロスワイヤペア）でアクセスされ得る。クロスバーは、１つの平行なワイヤの組のそれぞれのワイヤを、第１の組と交差する第２の平行なワイヤの組のあらゆる部材に接続することができる、メモリ領域のアレイである（通常、２つのワイヤの組が互いに垂直であるが、これは必要条件ではない）。本明細書で開示されるメモリスタは、広範な材料蒸着及び加工技法を使用して製造されてもよい。一例が、「ＥＬＥＣＴＲＩＣＡＬＬＹ  ＡＣＴＵＡＴＥＤ  ＳＷＩＴＣＨ」と称する米国特許出願公開第２００８／００９０３３７号に開示されている。
【００５７】
この例では、最初に、下部電極は、フォトリソグラフィ若しくは電子ビームリソグラフィ等の従来の技法を使用して、又はインプリントリソグラフィ等のより進歩した技法によって製造される。これは、例えば、クロスワイヤペアの底面ワイヤであってもよい。下部電極の材料は、金属又は半導体材料であってもよく、好ましくは白金であってもよい。
【００５８】
この例では、製造されるメモリスタの次の構成要素は、非共有結合界面層であり、より高い印加電圧でスイッチングをより遅くして、より大きな機械的強度が必要とされる場合には省かれてもよい。この場合、いくつかの不活性材料層が蒸着される。これは、ラングミュア−ブロジェット（ＬＢ）プロセスによって形成される分子単層であり得るし、又は自己組織化単分子膜（ＳＡＭ）であり得る。一般に、この界面層は、弱いファンデルワールス結合のみを、下部電極及びメモリ領域の一次層に形成することができる。又は、この界面層は、冷却された基板上に蒸着された薄い氷の層であってもよい。氷を形成する材料は、アルゴン等の不活性ガスであってもよく、又はＣＯ２等の種であってもよい。この場合、氷は、下部電極と一次層との間の強い化学結合を防ぐ犠牲層であり、氷を昇華させるように処理シーケンスで遅れて基板を加熱することによってシステムから失われる。当業者は、下部電極と一次層との間で弱く結合された界面を形成する他の方法を容易に想起することができる。
【００５９】
次に、一次層の材料が蒸着される。これは、クヌーセンセルからの蒸発、るつぼからの電子ビーム蒸発、ターゲットからのスパッタリング、又は反応性前駆体からの化学蒸気若しくはビーム成長の様々な形態を含む、多種多様な従来の物理的且つ化学的技法によってなされる。この薄膜は、厚さ１〜３０ナノメートル（ｎｍ）の範囲であってもよく、これはドーパントを含まないように成長してもよい。この薄膜は、一次層の厚さに応じて、イオン注入によるドーピング又は一次層からのイオン放出による脱ドーピングを達成するように、イオンが材料に流れ込むことのできる速度を向上させるために、ナノ結晶質、ナノ多孔性又は非晶質であってもよい。蒸着速度及び基板温度等の適切な成長条件は、初期の絶縁又は低伝導一次層に所望される化学組成及び局所原子構造を達成するように選択されてもよい。
【００６０】
次の層は、上述した技法の何れかによって蒸着されてもよい、ドーパント源層又は一次層に対する二次層である。この材料は、一次層に適切なドーパント種を提供するように選択される。この二次層は、例えば２つの材料が第３の材料を形成するように互いに化学的且つ不可逆的に反応すべきではない、一次層と化学的に適合するように選択される。一次及び二次層として使用することができる１対の材料の一例は、それぞれＴｉＯ２及びＴｉＯ２−ｘである。ＴｉＯ２は、約３．２ｅＶバンドギャップを有する半導体である。これも弱いイオン導電体である。ＴｉＯ２の薄い膜は、トンネル障壁を生成し、ＴｉＯ２−ｘは、ＴｉＯ２をドープし、且つ、それを伝導性にさせるように、理想的な酸素空孔の源を形成する。
【００６１】
最後に、上部電極は、下部電極が生成されたのと類似の方法で二次層の上に製造される。これは、例えば、クロスワイヤペアのトップワイヤであってもよい。下部電極の材料は、金属又は半導体材料、好ましくは白金であってもよい。メモリセルがクロスポイントアレイ型である場合には、エッチングプロセスは、メモリセルを絶縁するために、トップワイヤの下ではない蒸着されたメモリ領域材料を除去する必要があってもよい。しかしながら、任意の他の好適な材料蒸着及び加工技法は、パッシブ可変抵抗メモリのためのメモリスタを製造するために使用されてもよいことが理解される。
【００６２】
他の利点の中で、開示された方法及び装置は、ＰＶＲＭと、新たな分離されたライトスルーを有する非無効化ストア命令（ＮＩＳＩＤＷ）とに適合するアクセス速度を有する新たな永続的ストレージ更新機構を提供する。新たな永続的ストレージ更新機構を含むコンピューティングシステムでＮＩＳＩＤＷを実行することは、永続的ストレージ（例えば、ＰＶＲＭ）の状態の一致したビューを維持するために、ライトバック完了の可視性をソフトウェアに提供する。さらに、ＮＩＳＩＤＷは、更新されたメモリブロックを無効にせずに、キャッシュ階層及びＰＶＲＭを更新することができる。他の利点は、当業者によって認識されるであろう。
【００６３】
また、例えば、ＣＤ−ＲＯＭ、ＲＡＭ、他のＲＯＭの形態、ハードドライブ、分散型メモリなどではあるがこれらに限定されない、コンピュータ可読メモリ上に記憶される実行可能な命令に基づいて集積回路を生成する、集積回路設計システム（例えば、ワークステーション）が既知である。ハードウェア記述言語又は任意の他の好適な言語などではあるがこれらに限定されない、任意の好適な言語によって、命令が表されてもよい。したがって、本明細書に記載される装置は、このようなシステムによって集積回路として生産されてもよい。例えば、集積回路は、プロセッサによって、少なくとも１つの分離されたライトスルーを有する非無効化ストア命令（ＮＩＳＩＤＷ）を実行し、ＮＩＳＩＤＷに基づいて、キャッシュ階層内の複数のメモリブロックのうちのメモリブロックを、当該メモリブロックを無効にせずに更新し、更新されたメモリブロックをキャッシュ階層からライトスルーバッファにコピーし、且つ、更新されたメモリブロックをＰＶＲＭへ書き込み、それによってＰＶＲＭ内のデータを更新するように動作可能である集積回路を、実行されたときに集積回路設計システムが生成するようにする、コンピュータ可読媒体上に記憶される命令を使用して生成されてもよい。本明細書に記載される他のオペレーションを実施するロジックを有する集積回路もまた、適切に生産されてもよい。
【００６４】
本明細書に記載される上記の詳細な説明及び例は、単に例示及び説明するためのものであって、限定するためのものではないように提示されている。したがって、本開示は、上記に開示された基礎となる原理の趣旨及び範囲に包含されるありとあらゆる修正、変更又は均等物に及ぶことが企図される。
【図１】
2014512609.tif 000003
【図２】
2014512609.tif 000004
【図３】
2014512609.tif 000005
【図４】
2014512609.tif 000006
【図５】
2014512609.tif 000007
【図６】
2014512609.tif 000008
【図７】
2014512609.tif 000009
【国際調査報告】
2014512609.tif 000010
2014512609.tif 000011
2014512609.tif 000012
2014512609.tif 000013
2014512609.tif 000014