IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アーム・リミテッドの特許一覧

<>
  • 特表-持続性メモリクリーニング 図1
  • 特表-持続性メモリクリーニング 図2
  • 特表-持続性メモリクリーニング 図3
  • 特表-持続性メモリクリーニング 図4
  • 特表-持続性メモリクリーニング 図5A
  • 特表-持続性メモリクリーニング 図5B
  • 特表-持続性メモリクリーニング 図6
  • 特表-持続性メモリクリーニング 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-01-31
(54)【発明の名称】持続性メモリクリーニング
(51)【国際特許分類】
   G06F 12/0804 20160101AFI20220124BHJP
   G06F 12/1027 20160101ALI20220124BHJP
   G06F 11/14 20060101ALI20220124BHJP
【FI】
G06F12/0804 100
G06F12/1027
G06F11/14 641D
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021521981
(86)(22)【出願日】2019-10-16
(85)【翻訳文提出日】2021-04-22
(86)【国際出願番号】 GB2019052947
(87)【国際公開番号】W WO2020089589
(87)【国際公開日】2020-05-07
(31)【優先権主張番号】16/178,681
(32)【優先日】2018-11-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】500395107
【氏名又は名称】アーム・リミテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】特許業務法人浅村特許事務所
(72)【発明者】
【氏名】ラッシング、アンドリュー ジョセフ
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205MM01
5B205MM36
5B205MM51
5B205RR04
5B205UU31
5B205WW16
(57)【要約】
電力が提供されている間にデータを記憶する揮発性記憶回路を備えるデータ処理装置が提供されている。持続性記憶回路は、電力の非存在下でデータを記憶し、転送回路は、揮発性記憶回路から持続性記憶回路にデータを転送する。転送回路は、一次電源が揮発性記憶回路に対して利用不可能になることに応じて、揮発性記憶回路から持続性記憶回路にデータを転送するように構成されている。転送回路は、データのサブセットのインジケーションを含む明示的な要求に応じて、揮発性記憶回路から持続性記憶回路にデータのサブセットを転送するように構成されている。
【選択図】図2
【特許請求の範囲】
【請求項1】
データ処理装置であって、
電力が提供されている間にデータを記憶する揮発性記憶回路と、
電力の非存在下でデータを記憶する持続性記憶回路と、
前記揮発性記憶回路から前記持続性記憶回路にデータを転送する転送回路と、を備え、
前記転送回路が、一次電源が前記揮発性記憶回路に対して利用不可能となることに応じて、前記揮発性記憶回路から前記持続性記憶回路に前記データを転送するように構成されており、
前記転送回路が、前記データのサブセットのインジケーションを含む明示的な要求に応じて、前記揮発性記憶回路から前記持続性記憶回路に前記データの前記サブセットを転送するように構成されている、データ処理装置。
【請求項2】
更なる揮発性記憶回路を備え、
前記転送回路が、前記更なる揮発性記憶回路を検索することなく、前記揮発性記憶回路からの前記データの前記サブセットを検索するように構成されている、請求項1に記載のデータ処理装置。
【請求項3】
前記データの前記サブセットがアドレス識別子によって示されている、請求項1又は2に記載のデータ処理装置。
【請求項4】
前記データの前記サブセットが、
仮想マシン識別子、
アプリケーション空間識別子、又は
メモリロケーションの使用モード、の少なくとも1つによって示されている、請求項1~3のいずれか一項に記載のデータ処理装置。
【請求項5】
前記使用モードが、仮想メモリアドレスに関連して定義されている、請求項4に記載のデータ処理装置。
【請求項6】
前記使用モードが、少なくとも部分的な物理メモリアドレスに関連して定義されている、請求項4又は5に記載のデータ処理装置。
【請求項7】
前記使用モードが、ページテーブルエントリ又は相互接続ルーティング回路によって定義されている、請求項4~6のいずれか一項に記載のデータ処理装置。
【請求項8】
前記揮発性記憶回路及び前記持続性記憶回路が、メモリ階層の一部を含む、請求項1~7のいずれか一項に記載のデータ処理装置。
【請求項9】
前記揮発性記憶回路が、前記メモリ階層内のラストレベルキャッシュ又はそれ以上のものである、請求項8に記載のデータ処理装置。
【請求項10】
前記一次電源が前記揮発性記憶回路に対して利用不可能となることに応じて、前記揮発性記憶回路に電力を供給するバックアップエネルギー源を備える、請求項1~9のいずれか一項に記載のデータ処理装置。
【請求項11】
命令ストリームを実行する処理回路、を備え、
前記処理回路が、処理回路信号を前記転送回路に送信して、前記データの前記サブセットを示すように構成されている、請求項1~10のいずれか一項に記載のデータ処理装置。
【請求項12】
前記持続性記憶回路が、前記処理回路から前記処理回路信号を受信するように構成されており、データがアクセスされることになる前記持続性記憶回路内のロケーションを示す、請求項11に記載のデータ処理装置。
【請求項13】
前記持続性記憶回路が、前記転送回路から転送回路信号を受信するように構成されており、データがアクセスされることになる前記持続性記憶回路内のロケーションを示す、請求項1~11のいずれか一項に記載のデータ処理装置。
【請求項14】
前記転送回路信号が、データが書き込まれることになる前記持続性記憶回路内の前記ロケーションを示す、請求項13に記載のデータ処理装置。
【請求項15】
前記処理回路が、前記データの前記サブセットが前記揮発性記憶回路から前記持続性記憶回路に転送されている間に、前記命令ストリームを実行し続けるように構成されている、請求項11~14のいずれか一項に記載のデータ処理装置。
【請求項16】
方法であって、
一次電源が前記揮発性記憶回路に対して利用不可能となることに応じて、揮発性記憶回路から持続性記憶回路にデータを転送することと、
前記揮発性記憶回路内の前記データのサブセットのインジケーションを含む明示的な要求を受信することと、
前記明示的な要求に応じて、前記揮発性記憶回路から前記持続性記憶回路に前記データの前記サブセットを転送することと、を含む、方法。
【請求項17】
データ処理装置であって、
電力が提供されている間にデータを記憶する手段と、
電力の非存在下でデータを記憶する手段と、
前記電力の非存在下で前記データを記憶する手段に電力が提供されている間に、前記データを記憶する手段からデータを転送する手段と、を備え、
前記データを転送する手段が、一次電源が電力が供給されている間に前記データを記憶する手段に対して利用不可能となることに応じて、電力が供給されている間に前記データを記憶する手段から、前記電力の非存在下で前記データを記憶する手段にデータを転送するものであり、
前記データを転送する手段がまた、前記データの前記サブセットのインジケーションを含む明示的な要求に応じて、電力が供給されている間に前記データを記憶する手段から、前記電力の非存在下で前記データを記憶する手段に前記データのサブセットを転送するものである、データ処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理に関する。より具体的には、データ記憶装置に関する。
【背景技術】
【0002】
揮発性記憶回路では、データは、その回路に電力が供給されている限りでのみ保持される。対照的に、持続性記憶回路は、たとえ電力が供給されていない間であってもデータを記憶することができる。データ処理装置では、記憶装置の両方の形態を使用することができる。しかしながら、持続性記憶装置は揮発性記憶装置よりも遅い傾向があるため、データを損失又は破損する可能性のある揮発性記憶装置に保持されるかどうか、又はデータを損失又は破損する可能性は低いが待ち時間が増大することになる持続性記憶装置に保持されるかどうかに関して、トレードオフが存在する。データは、同時に両方の記憶装置の形態で記憶することができる。しかしながら、コヒーレンシ/一貫性を提供することは、特に関与する大量のデータが存在する場合に、記憶回路間の帯域幅の増大につながる。
【発明の概要】
【0003】
第1の例示的構成から見て、提供されるデータ処理装置は、電力が提供されている間にデータを記憶する揮発性記憶回路と、電力の非存在下でデータを記憶する持続性記憶回路と、揮発性記憶回路から持続性記憶回路にデータを転送する転送回路と、を備え、転送回路は、一次電源が揮発性記憶回路に対して利用不可能となることに応じて、揮発性記憶回路から持続性記憶回路にデータを転送するように構成されており、転送回路は、データのサブセットのインジケーションを含む明示的な要求に応じて、揮発性記憶回路から持続性記憶回路にデータのサブセットを転送するように構成されている。
【0004】
第2の例示的構成から見て、提供される方法は、一次電源が揮発性記憶回路に対して利用不可能となることに応じて、揮発性記憶回路から持続性記憶回路にデータを転送することと、揮発性記憶回路内のデータのサブセットのインジケーションを含む明示的な要求を受信することと、明示的な要求に応じて、揮発性記憶回路から持続性記憶回路にデータのサブセットを転送することと、を含む。
【0005】
第3の例示的構成から見て、提供されるデータ処理装置は、電力が提供されている間にデータを記憶する手段と、電力の非存在下でデータを記憶する手段と、電力の非存在下でデータを記憶する手段に電力が提供されている間に、データを記憶する手段からデータを転送する手段と、を備え、データを転送する手段は、電力が供給されている間に一次電源がデータを記憶する手段に対して利用不可能となることに応じて、電力が供給されている間にデータを記憶する手段から、電力の非存在下でデータを記憶する手段にデータを転送するものであり、データを転送する手段はまた、データのサブセットのインジケーションを含む明示的な要求に応じて、電力が供給されている間にデータを記憶する手段から、電力の非存在下でデータを記憶する手段にデータのサブセットを転送するものである。
【図面の簡単な説明】
【0006】
添付図面に示されるそれらの実施形態を参照して、あくまで一例として本発明を更に説明する。
図1】いくつかの実施形態による装置を概略的に示す。
図2】いくつかの実施形態による装置を概略的に示す。
図3】持続性記憶回路のバイトアドレス指定可能な性質を示す。
図4】いくつかの実施形態による装置を概略的に示す。
図5A】いくつかの実施形態による、使用モードを指定するためのページテーブルエントリ(PTE)及び相互接続ルーティングテーブルの使用例を示す。
図5B】いくつかの実施形態による、使用モードを指定するためのページテーブルエントリ(PTE)及び相互接続ルーティングテーブルの使用例を示す。
図6】いくつかの実施形態による転送プロセスのオフロードを示す。
図7】いくつかの実施形態によるデータ処理の方法を示す。
【発明を実施するための形態】
【0007】
添付図面を参照して実施形態を検討する前に、以下の実施形態の説明を行う。
【0008】
いくつかの態様によれば、提供されるデータ処理装置は、電力が提供されている間にデータを記憶する揮発性記憶回路と、電力の非存在下でデータを記憶する持続性記憶回路と、揮発性記憶回路から持続性記憶回路にデータを転送する転送回路と、を備え、転送回路は、一次電源が揮発性記憶回路に対して利用不可能となることに応じて、揮発性記憶回路から持続性記憶回路にデータを転送するように構成されており、転送回路は、データのサブセットのインジケーションを含む明示的な要求に応じて、揮発性記憶回路から持続性記憶回路にデータのサブセットを転送するように構成されている。
【0009】
データ処理装置内では、持続点が定義される。この持続点の前に記憶されたデータは、電力損失の場合に失われる傾向がある。持続点を過ぎると、たとえ電源障害の場合であっても、持続性記憶媒体にマッピングされたデータを保持させるアクションがとられる。これは、持続性記憶装置に保持されているデータによって達成され得る。あるいは、データは、一次電源障害の場合に、データを持続性記憶装置に転送するのに十分な時間を提供するために二次電源を使用する、揮発性記憶装置に保持することができる。二次電源は専用電源であってもよく、又は更には障害中の一次電源のキャパシタンスであってもよい。データ処理装置内では、深い持続点もまた定義され、これはそれ自体が持続点を超えている(例えば、深い持続点を過ぎた全てのものは持続点も過ぎている)。深い持続点は、一次電源の障害の場合に、データがより強く「保証」され続ける点を定義する。これには、ホストプロセッサクラッシュなどの一次電源の障害、又はバッテリバックアップ障害を超えるシナリオに対する絶縁を含むことができる。例えば、持続点は1つの保証レベルを提供し得、深い持続点は、より高い保証レベルを提供し得る。したがって、深い持続点は、持続性記憶回路自体の開始を定義することができる。そのようなシステム内では、データが深い持続点で記憶されるようにデータを制御することが可能である。これは、データが失われることを抑制するのに特に重要であり、より強い「保証」がデータの安全性に必要とされる、ジャーナル(ジャーナル付きファイルシステム内の)又はデータベースメンテナンスレコードなどの特に価値のあるデータに対して重要であり得る。したがって、データのサブセットが深い持続点(例えば、持続性記憶回路)を過ぎて転送されることを(例えば、電力損失などのイベントに対する応答ではなく、実行時の動作の結果として)明示的に要求することが可能である。データのサブセットが指定される(例えば、データがフィルタリングされている)ため、揮発性記憶装置内の全てのデータを持続性記憶装置に転送する必要がないことによって、帯域幅を保存することができる。
【0010】
いくつかの実施形態では、更なる揮発性記憶回路は、転送回路は、更なる揮発性記憶回路を検索することなく、揮発性記憶回路からのデータのサブセットを検索するように構成されている。その結果、データの識別又は分析が行われる範囲を制限することが可能である。例えば、いくつかの実施形態では、データのサブセットを転送する明示的な要求は、「持続点」の後ろにある揮発性記憶回路への検索を制限するためのインジケーションを追加的に行うことができる。持続性の「保証」又は約束がCPU(又は他のデバイス)によって以前に要求され、かつ、持続点の後ろに存在する揮発性記憶回路の一部分によって確認応答されたデータのサブセットを転送することにのみ関心があるため、他の場所を検索する必要はなく、例えば、特に持続点を超える上流の揮発性キャッシュのスヌーピング又は検索を制限することができる。
【0011】
いくつかの実施形態では、データのサブセットは、アドレス識別子によって示される。アドレス識別子は、持続性記憶装置に転送される1つ以上の指定されたロケーションに関して提供され得る。これは、例えば、オフセットと共の、又は範囲の一部としての、開始点であり得る。
【0012】
いくつかの実施形態では、データのサブセットは、仮想マシン識別子、アプリケーション空間識別子、又はメモリロケーションの使用モードのうちの少なくとも1つによって示される。特定の仮想マシンによって使用されるメモリを表すために、仮想マシン識別子(VMID)を使用することができる。対照的に、特定のアプリケーションによって使用されるメモリを識別するために、アプリケーション空間識別子(ASID)を使用することができる。使用モードは、メモリがどのように使用されているかを示す。例えば、持続性媒体によって実際にバックアップされたメモリは、更新が持続性として実際に確認応答されることを更新を強制しないか又は保証しないことによって、揮発性記憶装置として使用することができる。したがって、この特定の例では、使用モードは、記憶装置が持続性記憶装置によってバックアップされているが、使用モードが揮発性記憶装置であるという事実を反映することになる。
【0013】
いくつかの実施形態では、使用モードは、仮想メモリアドレスに関連して定義される。例えば、特定の仮想メモリアドレスは、持続性な方法で使用されるメモリの領域であるものとして示され得る。これは、例えば、単一のビットで表すことができる。
【0014】
いくつかの実施形態では、使用モードは、少なくとも部分的な物理メモリアドレスに関連して定義される。例えば、特定の物理メモリアドレスは、持続性な方法で使用されるメモリの領域であるものとして示され得る。一部の物理アドレスは、仮想から物理への変換が多数のステップで生じる場合に発生し得る。例えば、仮想アドレスは、その後に物理アドレスに変換される、少なくとも部分的な物理アドレス(例えば、中間アドレス)に変換することができる。
【0015】
いくつかの実施形態では、使用モードは、ページテーブルエントリ又は相互接続ルーティング回路によって定義される。ページテーブルエントリは、例えば、仮想アドレスから(少なくとも部分的に)物理アドレスに変換するために、トランスレーションルックアサイドバッファ及び/又はページウォーキング回路で使用される。相互接続ルーティング回路は、例えばその要求のアドレスに基づいて特定の要求を送信すべきハードウェアの部分を判定するために使用される。これらの例のいずれかでは、使用モードを表すために新しいフィールドを追加することができる。
【0016】
いくつかの実施形態では、揮発性記憶回路及び持続性記憶回路は、メモリ階層の一部を含む。メモリ階層には、典型的に、より小さくより高速な上位レベルキャッシュと、より大きくより低速な下位レベルキャッシュが含まれる。頻繁にはアクセスされないデータ又は最近アクセスされていないデータがメモリ階層の下位レベルに記憶され、最近アクセスされたデータがメモリ階層の上位レベルに記憶されるように、キャッシュ間でデータを転送することができる。そのような階層では、SCMなどの持続性記憶装置によって、より下位レベルをバックアップすることができる。
【0017】
いくつかの実施形態では、揮発性記憶回路は、メモリ階層内のラストレベルキャッシュ又はそれ以上のものである。ラストレベルキャッシュ(LLC)は、キャッシュの形態をとるメモリ階層内の最後の記憶回路と見なすことができる。階層の次の(より下位の)レベルは、そのようなストレージクラスメモリ(SCM)のバッキングストアである。そのようなキャッシュは、多数のプロセッサ間で共有され得る。しかしながら、これは義務的ではない。
【0018】
いくつかの実施形態では、データ処理装置は、一次電源が揮発性記憶回路に対して利用不可能となることに応じて、揮発性記憶回路に電力を供給するバックアップエネルギー源を備える。バックアップエネルギー源は、持続点を過ぎた揮発性記憶装置の全てが、一次電源が利用不可能となる場合に持続性記憶装置に転送される、最悪ケースシナリオを取り扱うのに十分な容量を有するように選択されている。バックアップエネルギー源は、必ずしもエネルギー供給源である必要はないことに留意されたい。障害中の一次電源のキャパシタンスが関連データの全てを転送するのに十分である場合、これはバックアップエネルギー源自体として機能することができる。
【0019】
いくつかの実施形態では、データ処理装置は、命令ストリームを実行する処理回路を備え、ここで処理回路は、信号を転送回路に送信してデータのサブセットを示すように構成されている。したがって、揮発性記憶装置から持続性記憶装置に転送されるデータに関する信号は、命令を実行するCPUなどの処理回路によって開始され得る。
【0020】
いくつかの実施形態では、持続性記憶回路は、処理回路から信号を受信するように構成されており、データがアクセスされることになる持続性記憶回路内のロケーションを示す。持続性記憶回路は、持続性記憶回路内に記憶された個々のバイトがデバイスドライバを使用することなくアドレス指定され得るという点で、アドレス指定可能なバイトであり得る。これは、(潜在的に4kBのデータを記憶する)データのブロックが、個々のバイトではなく一度に記憶又はアクセスされる他の形態の記憶装置とは対照的である。バイトアドレス指定可能記憶装置を有することの結果として、CPUと記憶回路自体との間の待ち時間は、デバイスドライバが仲介として機能するのに必要とされる状況よりも改善することができる。
【0021】
いくつかの実施形態では、持続性記憶回路は、転送回路から信号を受信するように構成されており、データがアクセスされることになる持続性記憶回路内のロケーションを示す。
【0022】
いくつかの実施形態では、信号は、データが書き込まれることなる持続性記憶回路内のロケーションを示す。
【0023】
いくつかの実施形態では、処理回路は、データのサブセットが揮発性記憶回路から持続性記憶回路に転送されている間に、命令ストリームを実行し続けるように構成されている。これにより、データが揮発性記憶装置から持続性記憶装置に転送されている間に、処理回路が動作し続けることが可能になる。したがって、転送を実行する作業は、処理回路から「オフロード」される。
【0024】
ここで、特定の実施形態を、図面を参照して説明する。
【0025】
図1は、いくつかの実施形態による装置100を示している。装置は、命令ストリームを実行する中央処理装置(CPU)110を含む。これらの命令の実行中、CPU110は、キャッシュ120及びストレージクラスメモリ(SCM)150の形態の1つ以上の記憶回路を使用することができる。
【0026】
装置100内には、電源190が設けられている。電源190は、CPU120、及び記憶回路120、150のそれぞれに電力供給する。電源190から電力が供給される限り、各記憶回路にアクセスすることができる。しかしながら、キャッシュ120は「揮発性」であり、その結果、記憶された任意のデータは、電力が供給されなくなると失われ得る。キャッシュ120は、バックアップバッテリ170を備えている。電力が失われた場合、このキャッシュ120は、記憶されたデータをSCM150に転送するように設計されている。このようにして、たとえキャッシュが揮発性記憶装置である場合であっても、電力障害の場合に、記憶されたデータを保持するための約束又は保証を提供することによって、持続性な方法で機能することが可能であり得る。したがって、これらのキャッシュは、持続点160の後ろに存在する。将来の持続性の約束又は保証を与えられて持続性であるとマークされ、キャッシュ120に記憶されたデータは、たとえ電力障害の場合であって保存される。
【0027】
しかしながら、そのような持続性データが常に保存されることは保証されない。例えば、バッテリバックアップ170が電源190と同時に障害となった場合、又は以前に障害となっており問題としてのフラグが立てられていなかった場合には、キャッシュ120に記憶されたデータがSCM150に転送されることは不可能になる。したがって、状況によっては、より強い約束又は保証が望ましい場合がある。これは、データベースメンテナンスレコード又はジャーナルファイルシステム内のジャーナルなどの、より重要なデータを有する場合であり得る。したがって、本装置100はまた、データ連続性のはるかに強い約束又は保証が提供される、深い持続点170を定義する。実際に、この実施例では、深い持続点170は、SCM150の境界に設定される。その結果、この実施例では、深い持続点170を越えて記憶されるデータは、常に持続的に記憶される。
【0028】
上記の段落では、電力障害が発生する状況について説明した。しかしながら、発生し得る他の形態の障害が存在することを理解されたい。例えば、電力スパイク、回路内のわずかなエラー又は欠陥、及び特定の形態の攻撃(例えば、DRAMの場合のローハマー)は、記憶回路内の個々のビットを反転させ得る。これは、ECCなどの技術によって緩和することができる。しかしながら、この方法で、全てのエラーが修復されるか、又は完全に抑制され得るわけではない。その結果、これらのエラーが発生し得る範囲を制限するために、深い持続点170でデータが記憶されることが望ましい場合がある。
【0029】
電力障害が生じたときに、持続点160を過ぎて揮発性記憶回路から持続性記憶回路まで自動的に転送されているデータに加えて、CPU110は、キャッシュ120に記憶されたデータのサブセットを持続性記憶回路150に能動的にプッシュすることもまた可能である。この技術を、図4を参照してより詳細に説明する。
【0030】
図2は、いくつかの実施形態による装置100を示している。この装置は、この装置がレベル1キャッシュ120、レベル2キャッシュ130,レベル3キャッシュ140、及びストレージクラスメモリ(SCM)150の形態の記憶回路を含むメモリ階層195を含むことを除いて、図1を参照して示される装置と同様である。レベル1キャッシュ120などのメモリ階層195の上部に向けたそれらの回路は、SCM150などの階層195の底部におけるそれらの記憶回路よりも小さくかつより速い。
【0031】
レベル1キャッシュ120、レベル2キャッシュ130、及びレベル3キャッシュ140は、「揮発性」媒体から構成されており、その結果、記憶されている任意のデータは、それらが電力を供給されなくなると失われ得る。レベル2キャッシュ130及びレベル3キャッシュ140には、バックアップバッテリ170、175が設けられている。電力が失われた場合、これらのキャッシュ130、140は、記憶されたデータをSCM150に転送するように設計されている。このようにして、たとえレベル2キャッシュ130及びレベル3キャッシュ140が揮発性記憶装置であっても、電力障害の場合に記憶されたデータを保持するための約束又は保証を提供することによって、持続性な方法で機能することが可能であり得る。したがって、これら2つのキャッシュは、持続点160の後ろに存在する。(持続点160の前にある)レベル1キャッシュ120は、そのようなメカニズムを提供しない。この階層195内で、レベル3キャッシュ140は、ラストレベルキャッシュ(LLC)として記述される。LLCは、階層195で生じる最後のキャッシュである。
【0032】
図2は、メモリ階層195に関して説明されている本技術を例示しているが、データ書き込みがバッファされる他のロケーションにも適用可能であることに留意されたい。例えば、レベル3キャッシュ140とSCM150との間に位置し得る相互接続及びメモリコントローラに適用可能である。
【0033】
図3は、SCM150の挙動を示している。特に、図3は、SCM150がどのようにバイトアドレス指定可能記憶装置として使用され得るかを示している。バイトアドレス指定可能記憶装置により、CPU110などのプロセッサが、記憶回路150内の特定のバイトに書き込み又は記憶する命令を実行することが可能である。さらに、揮発性記憶装置から持続性記憶装置にデータをコピーする転送回路、又はSCM150は、記憶回路内の特定のバイトにアクセスするための書き込みを発行することができる。この書き込みは、記憶回路150によって直接解釈される。換言すれば、CPU110からの書き込みを解釈するために、及びそのデバイスドライバによってその記憶回路に発行される更なる信号のために、デバイスドライバが提供される必要はない。この1つの結果は、データが必ずしもブロックベースでブロックにアクセスされる必要はないことである。特に、バイトアドレス指定可能でない記憶回路は、多数のバイトが同時にアクセスされなければならないようにブロック配向される傾向がある。デバイスドライバはしたがって、多くの場合、記憶回路とCPUとの間のバッファ又は仲介として機能し、必要なブロックを引き寄せ、ブロック上のアクセスを実行して所望のバイトに影響を及ぼし、次いでブロックを記憶装置に戻す。しかしながら、バッファからのそのようなローディング及び保存は、記憶回路とCPUとの間の変換を必要とするため、時間がかかり得る。その結果、ブロックベース記憶装置は、バイトアドレス指定可能記憶装置よりも遅くなる傾向がある。当然のことながら、これは、バイトのグループで同時に動作する任意の記憶回路が、「ブロックベース記憶装置」と言えるわけではない。その代わりに、差別化要因は、デバイスドライバの存在と見なすことができる。
【0034】
図3の実施例では、バイト0x0101への読み出し命令の形態でCPU110によって発行される読み出し命令は、記憶回路150にバイト0x0101に記憶されているデータに応答させることが示されている。この実施例では、データは、デバイスドライバを必要とせずにCPU110に戻される10010011である。
【0035】
図4は、いくつかの実施形態による装置300を示している。装置300は、揮発性記憶回路130及び持続性記憶回路150と共に、命令ストリームを実行するCPU110を更に含む。回路300は、持続点160を更に含む。しかしながら、この実施例では、持続点は、CPU110のすぐ下に設定される。物理的観点から揮発性媒体から構成される揮発性記憶回路130は、持続点160を下回り、バックアップバッテリ175によって支持されている。この実施例では、バックアップバッテリ175が使用されるが、いくつかの状況では、障害中の主電源190のキャパシタンスは、揮発性記憶回路130から持続性記憶回路150に必要なデータを転送するために十分であり得ることを理解されたい。そのような場合、バックアップバッテリ175は必要とされなくてもよい。深い持続点170は、持続性記憶回路150の境界にあるように設定されている。
【0036】
この実施例では、転送回路320は、電源190が故障した場合及び故障したときに、揮発性記憶回路から持続性記憶回路150に関連データを転送する責任を負う。加えて、この実施例では、持続性記憶回路150は相互接続回路330を介してアクセスされる。したがって、持続性記憶回路150は、CPU110を含む多数の異なるCPUにアクセス可能な記憶回路であり得る。加えて、CPU110は、トランスレーションルックアサイドバッファ(TLB)310を含む。TLB310は、仮想メモリアドレスを物理メモリアドレスに変換する責任を負う。TLB310は、変換を実行するために、又はそのような変換の結果を記憶するために、ページウォーキング回路と組み合わせて機能し得る。
【0037】
この実施例では、CPU110は、揮発性記憶回路130から転送されるデータのサブセットを示す記述子を構築することができる。記述子は、仮想マシン識別子(VMID)、アプリケーション空間識別子(ASID)、使用モード、及びアドレスなどの1つ以上の識別子を示すことができる。次いで、CPUは、記述子を使用して転送回路320を管理し、それによって一致しているデータを転送する、オフロード回路340を呼び出す。記述子内の1つ以上の識別子と一致する、揮発性記憶回路130内に記憶されているデータのサブセットは次いで、持続性記憶回路150に転送される。この実施形態では、転送回路320を管理するオフロード回路340への転送を完了するタスクをオフロードすることによって、転送プロセスがCPU110と非同期的に発生する。したがって、CPU110は、転送が行われる間、命令を実行し続けることができる。次いで、揮発性記憶回路130に記憶されているデータのサブセットは、主電源190からの電力損失がないにもかかわらず、深い持続点170にプッシュされる。そのような動作は、データのサブセットをより良好に保護するためにとられ得る。その結果、例えば、バックアップ電源が問題を解決できない複数の電力障害又はハードウェアエラーの結果として、このデータが破損又は失われる可能性がより低くなる。揮発性記憶回路130に記憶されたデータのサブセットは識別子を介して指定されているため、揮発性記憶回路130内の全てのデータが、深い持続点170にプッシュされる必要はない。したがって、これにより、揮発性記憶回路130に記憶されたデータの全てが転送回路320によって持続性記憶回路150に転送される状況とは対照的に、帯域幅消費を低減することができる。
【0038】
転送されるデータのサブセットを示す記述子は、データのサブセットのルックアップ又は検索が持続点160の後ろに存在する揮発性記憶装置のみに制約され得るかどうかを通信するオプションを追加的に有し得る。このオプションは、データのサブセットが持続点160に既に以前にプッシュされており、したがって最終的に(電力障害時に)持続性となったことが保証又は約束されたことが既知の場合に使用することができる。
【0039】
いくつかの実施形態では、転送はコピーの形態をとる。結果として、データは、その現在の形態で保存されているが、更に揮発性記憶回路130内に記憶し続けることによって、迅速にアクセスし続けることができる。これにより、待ち時間を低減するためのステップを更に取りながら、データのコピーを保存する。しかしながら、揮発性記憶回路130内にのみ記憶されているデータに対する将来の修正により、持続性記憶回路150にプッシュされたデータと比較して、損失のリスクが増大する。
【0040】
これらの実施例では、持続点160及び深い持続点170は、特定の記憶回路の境界に設定されることに留意されたい。しかしながら、他の実施形態では、持続点160は、記憶回路の一部をカバーするように設定され得る。例えば、揮発性記憶回路130の一部のみが、バックアップバッテリ175によってバックアップされ得る。
【0041】
図5Aは、TLBの一例を示している。図5Aでは、テーブルの各行は、仮想アドレス、仮想アドレスが変換される物理アドレス、メモリロケーションが持続性な方法で使用されることを意図しているかどうかを示すタイプ(又は、他の実施形態では、メモリが持続性であるべきロケーション)、仮想アドレスに関連付けられた仮想マシン識別子、及び仮想アドレスに関連付けられたアプリケーション空間識別子、を含む。検討されるように、「クリーン」命令又はオフロードコマンドで提供される識別子により、持続性記憶回路150に転送される、要求された識別子と一致するそれらのPTE属性を有するメモリの領域に関連付けられた揮発性記憶装置内に、データが生成される。クリーン命令でCPU110によって提供される識別子は、仮想アドレス又は物理アドレスに関連し得ることを理解されたい。
【0042】
図5Bは、デバイス間の要求をルーティングするために使用される、相互接続ルーティング回路330のテーブルに使用され得るテーブルを示している。そのようなテーブルは、その要求のアドレスに基づいて、要求が発行されることになる特定のデバイスを示すために使用される。したがって、テーブルの列には、アドレス列、ハードウェアの一部を識別するハードウェアID列、及び前述のタイプ列が含まれる。
【0043】
これらの実施例では、メモリの特定のバイトに対して個々のエントリが提供される。しかしながら、テーブルのエントリは、あるいは、特定のアドレス/バイト範囲(仮想又は物理のいずれか)を識別することができる。
【0044】
図6は、いくつかの実施形態による、クリーンプロセスがどのように実行されるかを示すフローチャート500を示している。プロセスは、CPUが命令ストリームを実行するステップ510において開始する。これらの命令の実行中のある時点において、ステップ520でのCPU110は、クリーン信号/コマンド/記述子をオフロード回路340に発行する。この実施例では、記述子は、特定のVMIDを指定する。この時点において、2つの動作が同時に発生する。ステップ530において、CPUは、命令ストリーム内の命令を実行し続ける。その間、ステップ540において、オフロード回路340は、転送回路320によって、ステップ520で発行されたクリーン信号で指定されたVMIDと一致する揮発性記憶回路130内のエントリを、揮発性記憶回路130から持続性記憶回路150へ(すなわち、深い持続点を過ぎて)転送させる。ステップ550において、転送が完了したかどうかが判定される。もしそうでない場合、ステップ530及び540は継続する。転送が完了した場合、ステップ560において、プロセスは、CPU110を中断して転送が行われることを示すことによって終了する。これにより、割り込みが発生するか、又は確認応答信号がCPU110に返送される結果となり得る。
【0045】
したがって、転送回路320を使用してデータエントリが揮発性記憶回路から持続性記憶回路150に転送されるのと同時にCPU110が命令を実行することができることが、前述の説明からである。したがって、CPU110が動作を継続的に監督する必要はない。さらに、特定の識別子が提供され得るため、揮発性記憶回路130から持続性記憶回路150に保存される多数のアドレスを個別に発行するために、CPU110が、動作を監督するソフトウェアの使用により時間がかかり、CPU110に他の命令を同時に実行させることができなくなる可能性があるソフトウェアを使用する必要はない。
【0046】
図7は、例えば転送回路320によって実行され得る、いくつかの実施形態によるデータ処理の方法を示すフローチャート600を示している。プロセスは、通知が受信されるステップ610において開始する。ステップ620において、一次電力障害が発生したかどうかが判定される。すなわち、通知が、一次電源が利用不可能になっているという通知であるかどうかが判定される。もしそうであれば、転送回路320は、持続性であるようにマークされた揮発性記憶回路130内にあるデータを持続性記憶回路150に転送させる。次いで、プロセスはステップ610に戻る。ステップ620において通知によって一次電力障害が示されていない場合、ステップ640において、データの転送に対する明示的な要求が行われているかどうかが判定される。もしそうであれば、ステップ650において、明示的な要求に示されるデータのサブセットが持続性記憶回路150で転送される。このプロセスは、CPU110が転送される個々のアドレスのそれぞれ及び全てを指示することを必要とせずに行われてもよく、したがって図6を参照して説明されている他の命令を示すためにCPU110を解放する。転送を実行した後、プロセスはプロセス610に戻る。ステップ640において明示的な要求が発行されない場合、受信されている通知のための適切なハンドラがステップ660において実行され、その後プロセスはステップ610に戻る。
【0047】
したがって、上記の段落では、持続点160及び深い持続点170の両方がどのように動作することができるかを説明している。転送回路320は、一次電力障害に応じて、持続点160から深い持続点170までデータを転送させる。CPU110はまた、機密又は非常に重要なデータを深い持続点にプッシュさせることができる。これにより、そのデータに対するより良好なセキュリティを提供し、その損失又は破損に対してより良好なセーフガードを提供する。深い持続点170にプッシュされるデータのサブセットのみを指定することによって、全てのデータが転送された場合に必要とされる帯域幅の使用を低減することが可能である。
【0048】
本出願において、「~ように構成される(configured to)」という用語は、装置の要素が、定義された動作を実行することができる構成を有することを意味するために使用される。このコンテキストにおいて、「構成」は、ハードウェア又はソフトウェアの相互接続の構成又は方法を意味する。例えば、装置は、定義された動作を提供する専用ハードウェアを有してもよく、又はプロセッサ若しくは他の処理デバイスは、機能を実行するようにプログラムされてもよい。「構成されている」は、定義された動作を提供するために、装置要素を任意の方法で変更する必要を意味しない。
【0049】
本発明の例示的な実施形態が添付の図面を参照して本明細書で詳細に説明されてきたが、本発明はそれらの正確な実施形態に限定されず、添付の特許請求の範囲によって定義される本発明の範囲及び精神から逸脱することなく、当業者によって様々な変更、追加、及び修正を行うことができることを理解されたい。例えば、従属請求項の特徴の様々な組み合わせは、本発明の範囲から逸脱することなく、独立請求項の特徴によって作製され得る。
図1
図2
図3
図4
図5A
図5B
図6
図7
【国際調査報告】