(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-12
(54)【発明の名称】メモリ物理アドレスマッピングの動的再分割
(51)【国際特許分類】
G06F 12/02 20060101AFI20240905BHJP
G06F 11/10 20060101ALI20240905BHJP
G06F 12/06 20060101ALI20240905BHJP
【FI】
G06F12/02 570A
G06F11/10 648
G06F12/06 540A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024517033
(86)(22)【出願日】2022-09-20
(85)【翻訳文提出日】2024-04-11
(86)【国際出願番号】 US2022044099
(87)【国際公開番号】W WO2023055610
(87)【国際公開日】2023-04-06
(32)【優先日】2021-09-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(71)【出願人】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ジョセフ グレイトハウス
(72)【発明者】
【氏名】アラン スミス
(72)【発明者】
【氏名】フランシスコ デュラン
(72)【発明者】
【氏名】フェリックス クーリング
(72)【発明者】
【氏名】アンソニー アサロ
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160AB26
5B160HA01
5B160HA05
5B160MM01
(57)【要約】
物理メモリアドレスマッピングの動的再分割のためのシステム及び方法は、1つ以上のメモリデバイスの1つ以上の物理メモリロケーションに記憶されたデータを別のメモリデバイス又は大容量記憶デバイスに再配置することと、物理メモリアドレスと1つ以上のメモリデバイスの物理メモリロケーションとの間の新しいマッピングを含むように、1つ以上の対応する物理メモリマップを再分割することと、次いで、新しい物理アドレスマッピングによって判定された物理メモリロケーションにおいて1つ以上のメモリデバイス上に、再配置されたデータを再度読み込むことと、を含む。物理メモリアドレスマッピングのそのような動的再分割は、処理システムがリブートされることを必要とせず、処理システムのインターリービング再構成及び誤り訂正符号(ECC)再構成と併せて様々な用途を有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
方法であって、
処理システムの第1のメモリデバイスのメモリブロックの第1のセットを識別するインジケータを受信したことに応じて、前記第1のメモリデバイスのメモリブロックの第1のセットからのデータを、第2のメモリデバイス又は大容量記憶デバイスのうち選択された何れかに再配置することと、
前記第1のメモリデバイスのメモリブロックの第1のセットに関連付けられた少なくとも1つの物理メモリマップを再分割して、メモリブロックの第2のセットへの前記第1のデータの再配置を表す少なくとも1つの再分割された物理メモリマップを生成することと、
前記少なくとも1つの再分割された物理メモリマップに基づいて、前記第1のデータを前記メモリブロックの第2のセットに記憶することと、を含む、
方法。
【請求項2】
前記少なくとも1つの物理メモリマップを再分割することは、前記処理システムのシステム構成の変更に関連して実行される、
請求項1の方法。
【請求項3】
前記システム構成の変更は、前記処理システムの誤り訂正符号(ECC)構成の変更に対応しており、前記ECC構成は、ECCデータを記憶するために予約されているECCメモリブロックを識別する、
請求項2の方法。
【請求項4】
前記システム構成の変更は、前記処理システムのインターリービング構成の変更に対応しており、前記インターリービング構成は、少なくとも1つのインターリービングパターンを定義し、それに従って、データは、少なくとも前記メモリブロックの第1のセットに記憶される、
請求項2の方法。
【請求項5】
前記少なくとも1つの物理メモリマップを再分割することは、第1の物理アドレスに対して前記少なくとも1つの物理メモリマップによって定義されたマッピングを変更することを含み、
前記少なくとも1つの物理メモリマップは、前記第1の物理アドレスを前記メモリブロックの第1のセットの第1のメモリブロックにマッピングし、
前記少なくとも1つの再分割された物理メモリマップは、前記第1の物理アドレスを前記メモリブロックの第2のセットの第2のメモリブロックにマッピングする、
請求項1~4の何れかの方法。
【請求項6】
前記少なくとも1つの物理メモリマップを再分割することは、前記第1のメモリデバイスを含む前記処理システムのリブートを必要とせずに実行される、
請求項1~4の何れかの方法。
【請求項7】
処理システムであって、
少なくとも第1のメモリデバイスに結合可能な少なくとも1つのプロセッサを備え、
前記プロセッサは、命令を実行するように構成されており、
前記命令は、
前記第1のメモリデバイスのメモリブロックの第1のセットからの第1のデータを、前記メモリブロックの第1のセットを識別するインジケータに応じて再配置することと、
前記第1のメモリデバイスのメモリブロックの第1のセットに関連付けられた少なくとも1つの物理メモリマップを再分割して、前記第1のメモリデバイスのメモリブロックの第2のセットへの前記第1のデータの再配置を表す少なくとも1つの再分割された物理メモリマップを生成することと、
前記少なくとも1つの再分割された物理メモリマップに基づいて、前記第1のデータを複数のメモリデバイスの前記メモリブロックの第2のセットに記憶することと、
を前記少なくとも1つのプロセッサに行わせる、
処理システム。
【請求項8】
前記命令は、前記処理システムのシステム構成の変更に関連して前記少なくとも1つの物理メモリマップを再分割することを前記少なくとも1つのプロセッサに行わせる、
請求項7の処理システム。
【請求項9】
前記システム構成の変更は、前記処理システムの誤り訂正符号(ECC)構成の変更に対応しており、前記ECC構成は、ECCデータを記憶するために予約されている前記複数のメモリデバイスのECCメモリブロックを識別する、
請求項8の処理システム。
【請求項10】
前記システム構成の変更は、前記処理システムのインターリービング構成の変更に対応しており、前記インターリービング構成は、少なくとも1つのインターリービングパターンを定義し、それに従って、データは、前記複数のメモリデバイスのメモリブロックに記憶され、前記メモリブロックは、少なくとも前記メモリブロックの第1のセットを含む、
請求項8の処理システム。
【請求項11】
前記インターリービング構成の変更は、第1のインターリービングパターンを第2のインターリービングパターンと置換することに対応しており、前記少なくとも1つの再分割された物理メモリマップは、前記第2のインターリービングパターンを反映する、
請求項10の処理システム。
【請求項12】
前記命令は、前記少なくとも1つの物理メモリマップを再分割するために、第1の物理アドレスに対して前記少なくとも1つの物理メモリマップによって定義されたマッピングを変更することを前記少なくとも1つのプロセッサに行わせ、
前記少なくとも1つの物理メモリマップは、前記第1の物理アドレスを前記メモリブロックの第1のセットの第1のメモリブロックにマッピングし、
前記少なくとも1つの再分割された物理メモリマップは、前記第1の物理アドレスを前記メモリブロックの第2のセットの第2のメモリブロックにマッピングする、
請求項7~11の何れかの処理システム。
【請求項13】
前記第1のメモリデバイス及び第2のメモリデバイスと、
大容量記憶デバイスと、を備え、
前記命令は、前記第1のデータを、前記複数のメモリデバイスの第2のメモリデバイス又は前記大容量記憶デバイスのうち選択された何れかに再配置することを前記少なくとも1つのプロセッサに行わせる、
請求項7~11の何れかの処理システム。
【請求項14】
前記命令は、前記処理システムのリブートを必要とせずに、前記少なくとも1つの物理メモリマップを再分割することを前記少なくとも1つのプロセッサに行わせる、
請求項7~11の何れかの処理システム。
【請求項15】
システムであって、
少なくとも1つのプロセッサを備え、
前記少なくとも1つのプロセッサは、少なくとも第1のメモリデバイスに結合可能であって、命令を実行するように構成されており、
前記命令は、
前記第1のメモリデバイスの第1のメモリブロックからの第1のデータを、少なくとも前記第1のメモリブロックを識別するインジケータに応じて転送することと、
前記第1のメモリブロックに関連付けられた物理メモリマップを再分割して、前記システムのリブートを必要とせずに、前記第1のメモリデバイスの第2のメモリブロックへの前記第1のデータの再配置を表す再分割された物理メモリマップを生成することと、
前記再分割された物理メモリマップに基づいて、前記第1のデータを前記第2のメモリブロックに記憶することと、
を前記少なくとも1つのプロセッサに行わせる、
システム。
【請求項16】
前記命令は、前記システムのシステム構成の変更に関連して前記物理メモリマップを再分割することを前記少なくとも1つのプロセッサに行わせる、
請求項15のシステム。
【請求項17】
前記システム構成の変更は、前記システムの誤り訂正符号(ECC)構成の変更に対応しており、前記ECC構成は、ECCデータを記憶するために予約されている複数のメモリデバイスのECCメモリブロックを識別する、
請求項16のシステム。
【請求項18】
前記システム構成の変更は、前記システムのインターリービング構成の変更に対応しており、前記インターリービング構成は、少なくとも1つのインターリービングパターンを定義し、それに従って、データは、前記第1のメモリブロック及び前記第2のメモリブロックを含む複数のメモリブロックに記憶される、
請求項16のシステム。
【請求項19】
前記命令は、前記物理メモリマップを再分割するために、第1の物理アドレスに対して前記物理メモリマップによって定義されたマッピングを変更することを前記少なくとも1つのプロセッサに行わせ、
前記物理メモリマップは、前記第1の物理アドレスを前記第1のメモリブロックに関連付け、
前記再分割された物理メモリマップは、前記第1の物理アドレスを前記第2のメモリブロックに関連付ける、
請求項15のシステム。
【請求項20】
前記第1のメモリデバイス及び第2のメモリデバイスと、
大容量記憶デバイスと、を備え、
前記命令は、前記第1のデータを、前記第2のメモリデバイス又は前記大容量記憶デバイスのうち選択された何れかに再配置することを前記少なくとも1つのプロセッサに行わせる、
請求項15のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
全体的な処理効率を改善するために、処理システムは、通常、マルチチャネルダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)等のマルチチャネル高帯域幅メモリを採用する。例えば、そのようなマルチチャネルメモリは、多くの場合、複数のメモリダイがシステム内のホストプロセッサによって並列にアクセス可能となるように、処理システム内に実装される。このマルチチャネルの並列アクセスは、通常、システムが所定の期間内に読み出すか又は書き込むことができるデータの量を増加させ、低減された処理遅延を可能にし、それによって、システム性能を向上させる。
【0002】
典型的には、データがDRAM等のメモリデバイスに書き込まれる方式は、物理アドレスをメモリデバイスのメモリの対応する物理ブロックにマッピングする、システムの物理アドレスマッピングによって定義される。従来のシステムでは、1つ以上のメモリデバイスと関連付けられた物理アドレスマッピングを変更するために、システムがリブートされなければならない。しかしながら、リブートは、典型的には、時間がかかり、ブートエラー又はシステム監視のための帯域内機構の中断のリスクがあり、これらは、高性能処理システムにおいて特に懸念される。
【発明の概要】
【課題を解決するための手段】
【0003】
以下の実施例は、個々に又は組み合わせて、本明細書で説明される実施形態及び実施態様の更なるコンテキストを提供し得る。
【0004】
実施例1.方法であって、
処理システムの第1のメモリデバイスのメモリブロックの第1のセットからの第1のデータを、第1のメモリデバイスのメモリブロックの第1のセットを識別するインジケータを受信することに応じて、第2のメモリデバイス又は大容量記憶デバイスのうち選択された何れかに再配置することと、
メモリブロックの第2のセットへの第1のデータの再配置を表す少なくとも1つの再分割された物理メモリマップを生成するために、第1のメモリデバイスのメモリブロックの第1のセットと関連付けられた少なくとも1つの物理メモリマップを再分割することと、
少なくとも1つの再分割された物理メモリマップに基づいて、メモリブロックの第2のセットに第1のデータを記憶することと、を含む、方法。
【0005】
実施例2.少なくとも1つの物理メモリマップを再分割することは、処理システムのシステム構成の変更と関連して実行される、実施例1の方法。
【0006】
実施例3.システム構成の変更は、処理システムの誤り訂正符号(error correcting code、ECC)構成の変更に対応し、ECC構成は、ECCデータを記憶するために予約されているECCメモリブロックを識別する、実施例2の方法。
【0007】
実施例4.システム構成の変更は、処理システムのインターリービング構成の変更に対応し、インターリービング構成は、少なくとも1つのインターリービングパターンを定義し、それに従って、データは、少なくともメモリブロックの第1のセット上に記憶されることになる、実施例2の方法。
【0008】
実施例5.少なくとも1つの物理メモリマップを再分割することは、
第1の物理アドレスに対して少なくとも1つの物理メモリマップによって定義されたマッピングを変更することを含み、少なくとも1つの物理メモリマップは、第1の物理アドレスをメモリブロックの第1のセットの第1のメモリブロックにマッピングし、少なくとも1つの再分割された物理メモリマップは、第1の物理アドレスをメモリブロックの第2のセットの第2のメモリブロックにマッピングする、実施例1~4の何れかの方法。
【0009】
実施例6.少なくとも1つの物理メモリマップを再分割することは、第1のメモリデバイスを含む処理システムのリブートを必要とせずに実行される、実施例1~5の何れかの方法。
【0010】
実施例7.処理システムであって、
少なくとも第1のメモリデバイスに結合可能な少なくとも1つのプロセッサを備え、
プロセッサは、命令を実行するように構成されており、
命令は、
第1のメモリデバイスのメモリブロックの第1のセットからの第1のデータを、メモリブロックの第1のセットを識別するインジケータに応じて再配置することと、
第1のメモリデバイスのメモリブロックの第2のセットへの第1のデータの再配置を表す少なくとも1つの再分割された物理メモリマップを生成するために、第1のメモリデバイスのメモリブロックの第1のセットと関連付けられた少なくとも1つの物理メモリマップを再分割することと、
少なくとも1つの再分割された物理メモリマップに基づいて、複数のメモリデバイスのメモリブロックの第2のセットに第1のデータを記憶するように、少なくとも1つのプロセッサを操作することと、を含む、処理システム。
【0011】
実施例8.命令は、処理システムのシステム構成の変更と関連して少なくとも1つの物理メモリマップを再分割するように少なくとも1つのプロセッサを操作することを含む、実施例7の処理システム。
【0012】
実施例9.システム構成の変更は、処理システムの誤り訂正符号(ECC)構成の変更に対応し、ECC構成は、ECCデータを記憶するために予約されている複数のメモリデバイスのECCメモリブロックを識別する、実施例8の処理システム。
【0013】
実施例10.システム構成の変更は、処理システムのインターリービング構成の変更に対応し、インターリービング構成は、少なくとも1つのインターリービングパターンを定義し、それに従って、データは、複数のメモリデバイスのメモリブロック上に記憶されることになり、メモリブロックは、少なくともメモリブロックの第1のセットを含む、実施例8の処理システム。
【0014】
実施例11.インターリービング構成の変更は、第1のインターリービングパターンを第2のインターリービングパターンと置換することに対応し、少なくとも1つの再分割された物理メモリマップは、第2のインターリービングパターンを反映する、実施例10の処理システム。
【0015】
実施例12.命令は、少なくとも1つの物理メモリマップを再分割するために、第1の物理アドレスに対して少なくとも1つの物理メモリマップによって定義されたマッピングを変更するように、少なくとも1つのプロセッサを操作することを含み、少なくとも1つの物理メモリマップは、第1の物理アドレスをメモリブロックの第1のセットの第1のメモリブロックにマッピングし、少なくとも1つの再分割された物理メモリマップは、第1の物理アドレスをメモリブロックの第2のセットの第2のメモリブロックにマッピングする、実施例7~11の何れかの処理システム。
【0016】
実施例13.
第1のメモリデバイス及び第2のメモリデバイスと、
大容量記憶デバイスと、を更に備え、
命令は、第1のデータを、複数のメモリデバイスの第2のメモリデバイス又は大容量記憶デバイスのうち選択された何れかに再配置するように少なくとも1つのプロセッサを操作することを含む、実施例7~11の何れかの処理システム。
【0017】
実施例14.命令は、処理システムのリブートを必要とせずに、少なくとも1つの物理メモリマップを再分割するように少なくとも1つのプロセッサを操作することを含む、実施例7~13の何れかの処理システム。
【0018】
実施例15.システムであって、
少なくとも1つのプロセッサを備え、
少なくとも1つのプロセッサは、少なくとも第1のメモリデバイスに結合可能であり、且つ、命令を実行するように構成されており、
命令は、
第1のメモリデバイスの第1のメモリブロックからの第1のデータを、少なくとも第1のメモリブロックを識別するインジケータに応じて転送することと、
システムのリブートを必要とせずに、第1のメモリデバイスの第2のメモリブロックへの第1のデータの再配置を表す再分割された物理メモリマップを生成するために、第1のメモリブロックと関連付けられた物理メモリマップを再分割することと、
再分割された物理メモリマップに基づいて、第1のデータを第2のメモリブロックに記憶するように、少なくとも1つのプロセッサを操作することと、を含む、システム。
【0019】
実施例16.命令は、システムのシステム構成の変更と関連して物理メモリマップを再分割するように、少なくとも1つのプロセッサを更に操作することを含む、実施例15のシステム。
【0020】
実施例17.システム構成の変更は、システムの誤り訂正符号(ECC)構成の変更に対応し、ECC構成は、ECCデータを記憶するために予約されている複数のメモリデバイスのECCメモリブロックを識別する、実施例16のシステム。
【0021】
実施例18.システム構成の変更は、システムのインターリービング構成の変更に対応し、インターリービング構成は、少なくとも1つのインターリービングパターンを定義し、それに従って、データは、第1のメモリブロック及び第2のメモリブロックを含む複数のメモリブロック上に記憶されることになる、実施例16のシステム。
【0022】
実施例19.命令は、物理メモリマップを再分割するために、第1の物理アドレスに対して物理メモリマップによって定義されたマッピングを変更するように、少なくとも1つのプロセッサを操作することを含み、物理メモリマップは、第1の物理アドレスを第1のメモリブロックと関連付け、再分割された物理メモリマップは、第1の物理アドレスを第2のメモリブロックと関連付ける、実施例15のシステム。
【0023】
実施例20.
第1のメモリデバイス及び第2のメモリデバイスと、
大容量記憶デバイスと、を更に備え、
命令は、第1のデータを、第2のメモリデバイス又は大容量記憶デバイスのうち選択された何れかに再配置するように、少なくとも1つのプロセッサを操作することを含む、実施例15のシステム。
【0024】
本開示は、添付の図面を参照することによってより良好に理解され、その多くの特徴及び利点が当業者に明らかになる。異なる図面における同じ符号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0025】
【
図1】いくつかの実施形態による、動的物理アドレスマップを採用する処理システムのブロック図である。
【
図2】いくつかの実施形態による、メモリ物理アドレスマッピングを動的に再分割する方法を例示するフロー図である。
【
図3】いくつかの実施形態による、メモリデバイスにわたってデータを記憶するために使用される細粒度インターリービングパターンを例示するブロック図である。
【
図4】いくつかの実施形態による、メモリデバイスにわたってデータを記憶するために使用される粗粒度インターリービングパターンを例示するブロック図である。
【
図5】いくつかの実施形態による、1つ以上のメモリデバイスに対するメモリ物理アドレスマッピングを動的に再分割し、1つ以上のメモリデバイスのインターリービング構成を修正する方法を例示するフロー図である。
【
図6】いくつかの実施形態による、誤り訂正符号(ECC)をECC構成ごとに記憶するために予約されたメモリブロックを有するメモリデバイスを例示するブロック図である。
【
図7】いくつかの実施形態による、1つ以上のメモリデバイスに対するメモリ物理アドレスマッピングを動的に再分割し、1つ以上のメモリデバイスと関連付けられたECC構成を修正する方法を例示するフロー図である。
【
図8】いくつかの実施形態による、処理システムの複数のメモリデバイスの細粒度ベースの動的再分割を例示するブロック図である。
【
図9】いくつかの実施形態による、所定のメモリデバイス内のメモリブロックの一部のみに対するメモリ物理アドレスマッピングを動的に再分割するための方法を例示するフロー図である。
【発明を実施するための形態】
【0026】
マルチチャネルDRAM等のメモリデバイスの物理アドレスマッピングの再分割は、従来、関連付けられた処理システムのリブート時(すなわち、「ブート時」)にのみ実行される。本コンテキストでは、ブート時における1つ以上のメモリデバイスの物理アドレスマッピングの再分割は、「静的」再分割と呼ばれる。本開示の実施形態は、システムの少なくとも一部のリブートが必要とされない、1つ以上のメモリデバイスの物理アドレスマッピングの「動的」再分割に関する。そのような動的再分割は、いくつかの実施形態では、1つ以上のメモリデバイスの所定のメモリブロック又はメモリブロックのセットに記憶されたデータの少なくとも一部を再配置し、新しい分割スキームに従って、それらのメモリブロックと関連付けられた物理アドレスマッピングを再分割し、次いで、新しい分割スキームに準拠する配置で、再配置されたデータをメモリデバイス上に再度移動させることによって実行される。動的再分割は、処理システムのリブートを必要とせずに実行され、これは、従来の静的再分割によって必要とされるリブートプロセスによって生じるシステムダウンタイムを低減又は除去する。
【0027】
例えば、オペレーティングシステム(operating system、OS)データ及びページテーブルデータ等の「クリティカル」データは、多くの場合、処理システムのメモリデバイスに記憶されているため、処理システムをリブートすることなく、そのようなメモリデバイスを再分割しようと試みることは、従来の処理システムでは誤り又は他の不安定性につながり得る。しかしながら、本開示の実施形態では、所定のメモリデバイス内の「クリティカル」メモリロケーション(例えば、クリティカルデータを記憶しているものとして識別されたメモリロケーション)が識別され、これらのメモリロケーションに対して動的再分割が無効化され、これは、動的再分割中にクリティカルデータが失われないことを保証することを助ける。そのようなクリティカルデータを失うリスクは、クリティカルメモリロケーションに対する動的再分割を無効化することによって軽減されるか又は完全に回避されるため、そのようなクリティカルデータを記憶しているメモリデバイスは、リブートを必要とせずに動的に再分割され得る。したがって、本明細書で説明される動的再分割スキームは、メモリデバイスの物理アドレスマッピングの再分割を容易にし、いくつかの実施形態では、作業負荷ごとにそのような再分割を容易にする。
【0028】
処理システムは、典型的には、複数のメモリセルを含むDRAM等の1つ以上のメモリデバイスを含み、メモリセルの隣接するグループは、メモリブロックと呼ばれる。典型的には、そのような処理システムのメモリコントローラ(例えば、メモリ管理ユニット(memory management unit、MMU))は、物理アドレスマップが所定の物理アドレスを処理システムのメモリデバイス内の特定の物理ロケーションと関連付けるように、処理システムの1つ以上のメモリデバイスの1つ以上のメモリブロック内の物理アドレスと物理ロケーション(例えば、メモリブロック)との間のマッピングを定義する物理アドレスマップを維持する。処理システム内の物理アドレスと物理メモリロケーションとの間の関連付けは、本明細書では、処理システムの「物理アドレスマッピング」又は「物理メモリアドレスマッピング」と呼ばれることがある。物理アドレスマップを修正することが望ましい場合があり、そのような修正は、いくつかの実施形態では、処理システムの再構成と併せて実行される。物理アドレスマップの修正は、本明細書では物理アドレスマップの再分割と呼ばれる。様々な例によると、所定の処理システムの1つ以上のメモリデバイスに対する物理アドレスマップは、メモリデバイスと関連付けられたインターリービング構成を修正する場合、メモリデバイスと関連付けられた誤り訂正符号(ECC)構成を修正する場合、又は、処理システムに対する冗長モード(例えば、デュアルモジュール冗長モード又はトリプルモジュール冗長モード)を有効化若しくは無効化する場合に再分割される。本明細書で使用される場合、物理アドレスマッピングは、仮想アドレスと物理アドレスとの間のマッピングを指すのではなく、処理システムの物理アドレスと物理メモリロケーションとの間のマッピングを指すことを理解されたい。
【0029】
いくつかの事例では、所定のメモリデバイスに記憶された「クリティカル」データ(例えば、OSデータ又はページテーブルデータ)等のデータは、処理システムの動作を中断せずに再配置されることができない。したがって、本明細書で説明するいくつかの実施形態では、物理アドレスマップの動的再分割は、メモリデバイスのメモリブロックの少なくとも一部に対して無効化され、これは、そのようなメモリブロックに記憶されたデータが、対応するメモリデバイスの物理アドレスマップの動的再分割中に再配置されないことを意味する。一例として、処理システムの物理アドレスマップを動的に再分割する場合、メモリブロックの第1のセットにおける1つ以上のメモリデバイス上に記憶された第1のデータは、別のメモリデバイス又は記憶デバイスに再配置されるのに適格であると識別され、次いで、いくつかの実施形態では、動的再分割がメモリブロックの第1のセットに対して有効化される場合、新しい物理アドレスマッピングに従って1つ以上のメモリデバイス上に再読み込みされる。対照的に、メモリブロックの第2のセットにおける1つ以上のメモリデバイス上に記憶された第2のデータは、動的再分割がメモリブロックの第2のセットに対して無効化されている場合、動的再分割のために別のメモリデバイス又は記憶デバイス上に再配置されることができない。
【0030】
図1は、1つ以上のメモリデバイスに対する物理アドレスマッピングの動的再分割のために構成された処理システム100を示している。処理システム100は、コア104を有する1つ以上のプロセッサ102と、1つ以上のメモリ管理ユニット(MMU)106と、メモリデバイス108(例えば、DRAMデバイス、ダイレクトマップ不揮発性メモリデバイス、相変化メモリデバイス、任意のコンピュートエクスプレスリンク(Compute Express Link、CXL)アタッチドメモリデバイス等)と、1つ以上の大容量記憶デバイス110と、を備える。示されるように、プロセッサ102は、2つのMMU106-1、106-2を介してメモリデバイス108に通信可能に結合されている。
【0031】
MMU106の各々は、プロセッサ102によって提供されるメモリアクセス要求にサービスし、メモリデバイス108への読み出し/書き込みアクセスを提供し、メモリアクセス要求において提供される物理メモリアドレスを、メモリデバイス108の1つ以上の対応するメモリデバイスの物理メモリロケーション(例えば、メモリブロック)に変換する。そのようなメモリアクセス要求において提供される物理メモリアドレスを変換するために、各MMU106は、メモリデバイス108内の物理メモリアドレスと物理メモリロケーションとの間の関連付けを定義する1つ以上の物理メモリマップ112を維持する。いくつかの場合、物理メモリマップ112のうち1つ以上は、処理システム100の構成の変更に対応するように修正されるか又は別様に再分割される。
【0032】
従来、処理システムの1つ以上のメモリに対して物理メモリマップを再分割するために、物理メモリマップは、ブート時に再分割されなければならず、したがって、対応する処理システムがリブートされることを必要とする。しかしながら、処理システムを、その物理メモリマップが修正又は別様に再分割される毎にリブートしなければならないことは、典型的には、過度の時間(例えば、サーバ又はスーパーコンピュータ等のより複雑な処理システムの場合、最大数分)を要し、そのような処理システムを監視するための帯域内機構における中断又は誤りを引き起こすリスクがあるため、望ましくない。
【0033】
本例では、処理システム100は、プロセッサ102が、MMU106と関連して、物理メモリマップ112のうち1つ以上を動的に、すなわち、システムリブートの必要性を回避する様式で再分割させるように構成されている。いくつかの実施形態では、プロセッサ102は、プロセッサ102が動的再分割インジケータ118を受信又は別様に検出することに応じて、物理メモリマップ112を動的に再分割させる。例示のために、動的再分割インジケータ118がアサートされてもよく、物理メモリマップ112の動的再分割に対する手動(すなわち、ユーザ開始)の又は自動化された要求に応じて、物理メモリマップ112のうち1つ以上の全て又は一部に対して動的再分割が実行されるべきであることを示す。例えば、そのような自動化された要求は、処理システム100の再構成(本明細書では「システム再構成」とも呼ばれる)が実行されるべきであることをプロセッサ102が判定することに応じて生成され、再構成は、データに対応する物理アドレスを変更せずに、メモリデバイス108のうち1つ以上の物理ロケーションにわたってデータが記憶される方式の再編成を必要とする。すなわち、システム再構成は、物理メモリマップ112によって定義された既存の物理アドレスマッピングを変更する(本明細書では、物理メモリアドレスマップ112を「再分割する」と呼ばれることもある)ために、物理メモリマップ112のうち1つ以上の全て又は一部が修正されることを必要とする。本明細書では、「物理アドレス」及び「物理メモリアドレス」という用語は、メモリデバイスの特定の物理メモリロケーションを指すか又は別様にそれと関連付けられるアドレスを指すために互換的に使用される。例えば、そのようなシステム再構成は、以下でより詳細に説明されるように、処理システム100のECC構成に対する変更、及び、処理システム100のインターリービング構成に対する変更を含む。
【0034】
一例では、処理システム100は、メモリデバイス108の特定の物理メモリロケーションをECCの記憶のために予約されているものとして定義するECC構成データ114(例えば、大容量記憶デバイス110のうち1つ以上に記憶される)を含む。典型的には、ECCは、他のデータ内のソフトの誤り(典型的には、例えば、放射線衝突、信号雑音等によって引き起こされるデータ破損に対応する)が検出され、いくつかの事例では、訂正されることを可能にするために、他のデータと関連して記憶される冗長情報である。例えば、リードソロモン符号又はハミング符号等のブロック符号は、メモリデバイス108に対する誤り検出及び訂正を提供するためのECCとして使用可能である。いくつかの実施形態では、ECC構成データ114は、メモリデバイス108のうち1つ以上に対するECCの有無を定義し、これは、メモリブロックがそれらのメモリデバイス内のECCのために予約されているかどうかを判定する。例えば、処理システム100が、ECCを有効化若しくは無効化するように、又は、メモリデバイス108のうち1つ以上の選択されたメモリデバイスのために使用されるECCスキームを変更するように再構成される場合に、ECC構成データ114は、ECCが選択されたメモリデバイスに対して有効化若しくは無効化されること、又は、選択されたメモリデバイスで実装されるECCスキームが変更されることを示すように更新され、ECC構成が変更されることになる選択されたメモリデバイスを識別する動的再分割インジケータが生成される。処理システム100のECC構成におけるそのような変更は、本明細書では「ECC再構成」と呼ばれる。次いで、プロセッサ102は、選択されたメモリデバイスのメモリロケーションの一部又は全部に記憶されたデータを、1つ以上の他のメモリデバイス(すなわち、選択されたメモリデバイスではない)か、大容量記憶デバイス110(例えば、1つ以上のハードディスクドライブ、ソリッドステートドライブ、フラッシュメモリ等を含む)のうち1つ以上か、又は、その両方に一時的に再配置させる。いくつかの実施形態では、所定のメモリデバイス108のメモリロケーションのサブセットのみがECC再構成によって影響され、十分な他のメモリロケーションが利用可能である(すなわち、現在データを記憶しておらず、事実上「空」である)場合、再配置されたデータは、同じメモリデバイス108上の他の利用可能なメモリロケーションのサブセットに移動される。ECC再構成によって影響されるメモリロケーションからのデータのこの再配置は、物理メモリマップ112の動的再分割の一部と見なされる。
【0035】
データが再配置されるメモリデバイス108のメモリロケーションと関連付けられた物理アドレスマッピングは、典型的には、動的再分割及びECC再構成の一部として再分割されることに留意されたい。例えば、所定のメモリデバイス108に対してECCを有効化する場合、プロセッサ102は、ECCデータを記憶するために予約されるべき1つ以上のメモリロケーションを判定し(例えば、更新されたECC構成データ114、動的再分割インジケータ、又は、両方において定義されるような)、これらのロケーションに現在記憶されている任意のデータは、上述したように一時的に再配置される。別の例として、所定のメモリデバイス108についてECCを無効化する場合、プロセッサ102は、ECCデータを記憶するために現在予約されているが(例えば、更新されたECC構成データ114、動的再分割インジケータ、又は、両方において定義されるような)、ECC再構成後にECCデータを記憶するためにもはや使用されない所定のメモリデバイスの1つ以上のメモリロケーションを判定し、これらのロケーションに現在記憶されている任意のデータが削除される。
【0036】
いくつかの実施形態では、所定のメモリデバイス108に対するECCを無効化した後、メモリデバイス108は、ECCデータを削除することによって引き起こされる空のメモリの「ギャップ」が一緒にグループ化されるように、メモリデバイス108の物理メモリロケーションに記憶されたデータを再配置するためにフラグメント解消される。一例として、所定のメモリデバイス108の物理メモリアドレスA及びBの2つの論理的に隣接するセットが考慮され、各セットA及びBは、8つのデータページ(それぞれ、物理メモリアドレスA0、A1、A2、A3、A4、A5、A6、A7及びB0、B1、B2、B3、B4、B5、B6、B7によって示される)と、1つのECCページ(それぞれ、物理メモリアドレスAecc及びBeccによって示される)と、を含む。本例では、セットA及びBの物理メモリアドレスと関連付けられたデータは、A0、A1、A2、A3、A4、A5、A6、A7、Aecc、B0、B1、B2、B3、B4、B5、B6、B7、Beccの順序でシーケンシャルメモリブロックのセットに記憶される(例えば、所定のインターリービングパターンに従って)。ここで、Aecc及びBeccは、最初に、それぞれ、セットA及びセットBに対するECCデータを記憶する。本例では、メモリデバイス108に対してECCを無効化するためにECC再構成を実行すると、物理メモリロケーションAecc及びBeccと関連付けられた物理メモリロケーション(メモリブロック)に記憶されたECCデータが削除され、メモリデバイス108は、フラグメント解消され、その物理アドレスマッピングは、物理メモリアドレスと関連付けられたデータがシーケンシャルメモリブロックのセットに記憶される順序が、A0、A1、A2、A3、A4、A5、A6、A7、B0、B1、B2、B3、B4、B5、B6、B7、Aecc、Beccとなるように、本明細書で説明される動的再分割技術と関連して修正される。このようにして、データが削除された物理メモリアドレスAecc及びBecc(ECCが所定のメモリ108に対して無効化されることに起因して)は、シーケンシャルメモリブロックのセットの「端」で隣接する物理メモリロケーション(メモリブロック)内にグループ化されて、ECCを無効にする際にシーケンシャルメモリブロックのセットにおける「ギャップ」(すなわち、空のメモリブロック)の発生を低減する。このようにして異なる物理メモリロケーションにシフトされた物理メモリアドレスに記憶されたデータは、上述したように、ECC再構成中に一時的に再配置される。
【0037】
別の例として、所定のメモリデバイス108で実装されるECCスキームを変更する場合、ECCデータを記憶するために割り当てられたメモリ空間の量は、典型的には変化することになり、その結果、所定のメモリデバイス108の物理アドレスマッピングに対する変化をもたらす場合がある。例えば、所定のメモリデバイス108のECC再構成を実行して、メモリデバイス108によって使用されるECCスキームを、8ページごとのデータが9ページ目のECCデータを使用してECC符号化される8/9ECC符号化から、128ページごとのデータが129及び130ページ目のECCデータを使用してECC符号化される128/130ECC符号化スキームに変更する場合に、所定のメモリデバイス108に記憶されたデータの一部又は全部は、新しいECC符号化スキームに適応するように再配置され、その結果、所定のメモリデバイス108の対応するメモリアドレス及び物理メモリロケーションに対する物理メモリアドレスマッピングに対する修正をもたらし、そのようなデータは、上述したようにECC再構成中に再配置される。
【0038】
動的再分割のためにデータが再配置されるメモリロケーションを識別した後、プロセッサ102は、新しいECC構成に従って物理メモリマップ112を再分割する。従来、任意のタイプのシステム再構成の一部として物理メモリマップ112を再分割することは、処理システム100がリブートされることを必要とすることになる。しかしながら、本例では、物理メモリマップ112を動的に再分割することによって、ECC再構成が、処理システム100のリブートを必要とせずに実行される。
【0039】
別の例では、処理システム100は、インターリービング構成データ116(例えば、基本入力/出力システム(basic input/output system、BIOS)様構造又はテーブルの一部として記憶され、次いで、処理システム100のアクティブ動作中にオンチップ構成レジスタに読み込まれる)を含み、これは、何れの物理メモリアドレスがメモリデバイス108にわたって分散されるべきかに従って、インターリービングパターン(例えば、粗粒度インターリービングパターン、細粒度インターリービングパターン、又は、これらの組み合わせ)を定義する。そのようなインターリービングパターンの例は、
図3、
図4及び
図8と併せて以下でより詳細に説明される。いくつかの実施形態では、処理システム100のインターリービング構成は、既存のインターリービングパターンが新しいインターリービングパターンと置換されるように、再分割される。インターリービングパターンのそのような変更は、本明細書では「インターリービング再構成」と呼ばれることがある。
【0040】
例えば、プロセッサ102は、インターリービング構成データ116を修正させ、対応する動的再分割インジケータ118を生成させる1つ以上の手動又は自動要求に応じて、処理システム100のインターリービング再構成を実行することになる。一例として、メモリデバイス108のサブセットが細粒度インターリービング構成から粗粒度インターリービング構成に切り替えられるようにインターリービング構成を変更するための手動又は自動要求は、プロセッサ102に、メモリデバイス108のサブセットを動的再分割のために選択されるものとして定義する、対応する動的再分割インジケータ118を生成させる。次いで、プロセッサ102は、メモリデバイス108のサブセット上に記憶されたデータを、1つ以上の他のメモリデバイス108(すなわち、動的再分割のために選択されたメモリデバイスのサブセット内にないメモリデバイス108のうち1つ以上)、大容量記憶デバイス110、又は、これらの組み合わせに一時的に再配置させる。次いで、プロセッサ102は、物理メモリマップ112内で識別され、且つ、動的再分割のために選択されたメモリデバイス108のサブセットと関連付けられた物理アドレスが、再分割された物理メモリマップ112内で細粒度インターリービング構成から粗粒度インターリービング構成に再マッピングされるように、物理メモリマップ112を再分割する。本例では、物理メモリマップ112を再分割することは、有利には、物理メモリマップ112が再分割される時点で、物理メモリマップ112を修正するか又は別様に再分割することによって典型的に影響されることになる任意のデータが、影響されるメモリブロックから外れて既に再配置されているため、処理システム100がリブートされることを要求しない。次いで、プロセッサ102は、再配置されたデータを、粗粒度インターリービング構成(ここでは、再分割された物理メモリマップ112の新しい物理アドレスマッピングで表されている)に従ってメモリデバイス108上に再度読み込む。また、プロセッサ102は、メモリデバイス108のサブセットが細粒度インターリービング構成ではなく、粗粒度インターリービング構成にあることを示すように、インターリービング構成データ116を修正する。
【0041】
更に、いくつかの実施形態では、物理メモリマップ112の動的再分割を伴うインターリービング再構成は、特定のインターリービングパターンが適用されるいくつかのメモリデバイス108によって実行される。一例では、プロセッサ102は、メモリデバイス108を、メモリデバイス108の全てにわたって単一の細粒度インターリービングパターンが適用されるグローバル細粒度インターリービングパターンから、メモリデバイス108がドメイン120、122、124、126等の異なるドメインに論理的に編成され、且つ、それぞれの細粒度インターリービングパターンが各ドメイン内のメモリデバイス108に適用されるドメインレベル細粒度インターリービングパターンのセットに再構成させる。そのようなインターリービング再構成を実行する場合、プロセッサ102は、メモリデバイス108に記憶されたデータを、他のメモリデバイス、大容量記憶デバイス110のうち1つ以上、又は、これらの組み合わせに一時的に再配置させ、次いで、新しいドメインレベル細粒度インターリービングパターンに従って物理メモリマップ112を再分割し、次いで、新しいドメインレベル細粒度インターリービングパターンに従って、再配置されたデータをメモリデバイス108上に読み込み、インターリービング構成データ116を更新して、新しいドメインレベル細粒度インターリービングパターンがメモリデバイス108に適用されることを示す。
【0042】
いくつかの実施形態では、グローバル細粒度インターリービング構成からドメインレベル細粒度インターリービング構成のセットに遷移するためのインターリービング再構成は、プロセッサ102が、プロセッサ102のコア104のうち1つ以上によって処理される不均一メモリアクセス(non-uniform memory access、NUMA)認識作業負荷を識別することに応じて、プロセッサ102によって実行される。例えば、いくつかの作業負荷は、いくつかの実施形態では、処理システム100によって採用されるNUMA構成を活用するか又は別様に認識する。本例では、そのような作業負荷は、「NUMA認識」作業負荷と称される。そのようなNUMA認識作業負荷は、典型的には、データが使用されることになる予想される頻度と、対応する作業負荷を実行するプロセッサコアに対する物理メモリロケーションの近接性と、に基づいて、特定の物理メモリロケーションにデータを配置するように最適化される。例えば、NUMA認識作業負荷を実行する場合により頻繁に使用されると予想されるデータは、NUMA認識作業負荷を実行するプロセッサコア104に物理的により近いメモリデバイス108(すなわち、それらのプロセッサコア104と同じドメイン内にあるメモリデバイス108)に記憶されるが、一方で、NUMA認識作業負荷を実行する場合にあまり頻繁に使用されないと予想されるデータは、NUMA認識作業負荷を実行するプロセッサコア104から物理的に更に遠いメモリデバイス108(すなわち、プロセッサコア104のドメインとは異なるドメイン内にあるメモリデバイス108)に記憶される。
【0043】
いくつかの実施形態では、所定のメモリデバイスの1つ以上のメモリロケーション(すなわち、メモリブロック)は、処理システム100の動作に重要であるデータ(例えば、OSデータ、ページテーブルデータ等)のために予約される。そのようなメモリロケーションは、本明細書では「クリティカルメモリロケーション」又は「クリティカルメモリブロック」と呼ばれることがある。いくつかの実施形態では、そこに記憶されたデータを一時的に再配置することは、処理システム100の動作を不安定化するリスクがあるため、動的再分割は、そのようなクリティカルメモリロケーションに対して無効化される。例えば、動的再分割中に、OSデータを記憶しているクリティカルメモリロケーションのデータが突然再配置された場合、これは、結果的に、処理システムが、対応するOSソフトウェアを適切に実行するために、OSデータが典型的に必要とされるため、処理システムの予期せぬシャットダウン又は処理システムの機能を別様に阻害し得る誤りをもたらす可能性が高い。
【0044】
別の例として、クリティカルデータを記憶する1つ以上のクリティカルメモリロケーションを含むメモリデバイス108-1を考え、物理メモリアドレスマッピングの動的再分割は、そのようなクリティカルメモリロケーションに対して無効化される。メモリデバイス108と関連付けられた物理メモリマップ112の動的再分割を実行する場合に、クリティカルメモリロケーション(例えば、ユーザデータ又はジョブデータを記憶する)ではないメモリデバイス108-1のメモリロケーションの第1のサブセットのメモリロケーションのみが、動的再分割に適格であるとして識別され、そこに記憶されたデータの対応する一時的再配置に適格であるとして識別される(すなわち、第1のサブセットのメモリロケーションに対して動的再分割が有効化される)。対照的に、クリティカルメモリロケーションを含む、メモリデバイス108-1のメモリロケーションの第2のサブセットのメモリロケーションは、動的再分割に適格ではないものとして識別され、そこに記憶されたデータの対応する一時的再配置に適格ではないものとして識別される(すなわち、動的再分割は、第2のサブセットのメモリロケーションに対して無効化される)。
【0045】
先の例で提供されたように、クリティカルメモリロケーションに対する物理メモリアドレスマッピングの動的再分割を無効化することによって、処理システム100の動作の失敗の関連するリスクが軽減されるか又は完全に回避される。
【0046】
図2は、処理システムのための物理メモリアドレスマッピングを動的に再分割する方法200を例示する。例示の容易さのため、方法200は、
図1の処理システム100及びその構成コンポーネント及びモジュールにおける例示的な実装に関して説明される。
【0047】
ブロック202では、プロセッサ102は、動的再分割指標(指示)118の一実施形態等の動的再分割指標(指示)を受信する。いくつかの実施形態では、動的再分割指標は、ECC再構成又はインターリービング再構成等のように、プロセッサ102によって実行されるより広範なシステム再構成の一部として生成される。いくつかの実施形態では、動的再分割指標は、ここでは201-1として示されるメモリデバイスのサブセット、及び、物理メモリマップ112の動的再分割に関与することになる各識別されたメモリデバイス内の1つ以上のメモリブロックを識別する。メモリデバイスのサブセット201-1は、いくつかの実施形態では、
図1のメモリデバイス108の第1のサブセットの例示的な実施形態に対応する。識別されたメモリブロックに記憶されたデータは、動的再分割中に一時的に再配置されることになる。
【0048】
ブロック204では、動的再分割指標で識別されるメモリデバイス201-1のメモリブロックに記憶されたデータは、別のメモリデバイス又は大容量記憶デバイスに一時的に再配置される。いくつかの実施形態では、このデータを再配置すると、メモリデバイス201-1の識別されたメモリブロックが消去される(例えば、識別されたメモリブロックの各々にバイナリゼロを書き込むことによって)。他の実施形態では、データを再配置することは、メモリデバイス201-1からデータを消去することなく、別のメモリデバイス又は大容量記憶デバイスにデータをコピーすることによって実行される。
【0049】
ブロック206では、メモリデバイス201-1の識別されたメモリブロックからの再配置されたデータは、大容量記憶デバイス110のうち1つ以上、又は、ここでは201-2として示されるメモリデバイスのサブセットに記憶される。メモリデバイス201-2のサブセットは、いくつかの実施形態では、メモリデバイスのサブセット201-1が対応するメモリデバイス108の第1のサブセットとは異なる
図1のメモリデバイス108の第2のサブセットの例示的な実施形態に対応する。すなわち、いくつかの実施形態では、メモリデバイス201-2は、動的再分割指標で識別されなかったメモリデバイス108のうち1つ以上に対応する。
【0050】
ブロック208では、プロセッサ102は、処理システム100を再構成させる。様々な例によると、システム再構成は、ECC再構成、インターリービング再構成又は処理システム100の物理メモリアドレスマッピング(すなわち、物理メモリマップ112で定義されたマッピング)が再分割されることを必要とするシステムの別の再構成のうち1つ以上を含む。
【0051】
ブロック210では、物理メモリマップ112において定義された1つ以上の物理アドレスマッピングが、システム再構成に従って再分割される。例えば、システム再構成がインターリービング再構成である場合、物理アドレスを物理メモリブロックにマッピングするために使用される既存のインターリービングパターン(以下の
図3及び
図4を参照して説明される例示的な細粒度及び粗粒度インターリービングパターン等)は、新しいインターリービングパターン(以下の
図3及び
図4を参照して説明される例示的な細粒度及び粗粒度のインターリービングパターン等)に変更され、物理メモリマップ112において定義される物理アドレスマッピングのうち1つ以上は、新しいインターリービングパターンに対応するように修正される。例えば、システム再構成がECC再構成である場合、物理メモリマップ112において定義される物理アドレスマッピングのうち1つ以上は、メモリデバイス201-1のうち1つ以上に対して、ECCが有効化若しくは無効化されること、又は、ECCスキームが変更されることに対応するように修正される。ブロック210で再分割される物理アドレスマッピングは、動的再分割指標で識別されたメモリブロックに対応し、そこから、ブロック204でデータが再配置される。
【0052】
ブロック212では、物理メモリマップ112において定義された物理アドレスマッピングが再分割された後、大容量記憶デバイス110又はメモリデバイス201-2のうち1つ以上に記憶された再配置されたデータは、再分割された物理アドレスマッピングに従ってメモリデバイス201-1上に再度読み込まれる。いくつかの実施形態では、ブロック212で、再配置されたデータをメモリデバイス201-1に再度移動させる代わりに、再配置されたデータは、代わりに、メモリデバイス201-2に記憶されたままであり、メモリデバイス201-1は、新しいメモリ割り当てを除いて空のままである。いくつかの実施形態では、再配置されたデータは、再構成プロセス中ではなく、機会を捉えてメモリデバイス201-2からメモリデバイス201-1上に再度移動される。本例では、物理メモリマップ112を再分割することは、有利には、処理システム100がリブートされることを必要としない。ブロック214では、メモリデバイス201-1は、新しい物理アドレスマッピングに従って以前に再配置されたデータを記憶する。
【0053】
図3は、
図1の処理システム100等の処理システム内の4つのメモリデバイスにアクセスするための細粒度インターリービングパターンを例示する
図300である。本例では、細粒度インターリービングパターンは、メモリデバイス108-1、108-2、108-3、108-4に適用される。経路302は、細粒度インターリービングパターンに従って、メモリデバイス108-1~108-4のメモリブロック304等のメモリブロックにデータが書き込まれる順序を表す。例示された細粒度インターリービングパターンは、例えば、インターリービング構成データ116の実施形態において定義されるインターリービング構成の一例である。いくつかの実施形態では、処理システム100の物理メモリアドレスマッピングの動的再分割は、処理システム100のインターリービング構成を、本例の細粒度インターリービングパターン又は別の同様の細粒度インターリービングパターンに又はそこから変更することと併せて実行される。
【0054】
例えば、メモリデバイス108-1~108-4における記憶のためにデータが送信される場合、データは、ブロックに分割され、隣接するブロックは、メモリデバイス108-1~108-4に連続的に記憶される。ここで、データの「隣接する」ブロックは、隣接する物理メモリアドレスに記憶されることになるデータセット(例えば、ファイル)のデータの順序付けられたアレイ内のデータの隣接する区分を指す。一例として、処理システム100によって記憶され、且つ、データの順序付けられたアレイとして配置されるデータファイルは、データのブロックに論理的に分割され、データのブロックは、データの第1のブロックが第1の物理メモリアドレスに記憶され、データの第1のブロックと隣接するデータの第2のブロックが、第1の物理メモリアドレスと隣接する第2のメモリアドレスに記憶されるように、隣接する物理メモリアドレスの範囲にわたる記憶のために指定されている。処理システム100が第1及び第2の物理メモリアドレスに対して細粒度インターリービングパターンを実施するように構成されている場合、データの第1のブロック及びデータの第2のブロックは、隣接するデータブロックであるにもかかわらず、且つ、隣接する物理メモリアドレスに記憶されているにもかかわらず、細粒度インターリービングパターンに従ってメモリデバイス108のそれぞれ異なるメモリデバイスに記憶される。
【0055】
例えば、メモリの5つのブロックを満たすことになるデータの5つの隣接するブロックがメモリデバイス108-1~108-4に記憶されることになる場合、データの5つのブロックは、それぞれ、メモリデバイス108-1の第1のメモリブロックに、メモリデバイス108-2の第1のメモリブロックに、メモリデバイス108-3の第1のメモリブロックに、メモリデバイス108-4の第1のメモリブロックに、メモリデバイス108-1の第2のメモリブロックに連続して記憶される。概して、細粒度インターリービングは、同様のアクセス速度でメモリデバイス108-1~108-4の全てにアクセスすることができるプロセッサによるメモリデバイスへの迅速なアクセスを提供する。
【0056】
図4は、ここでは
図1の処理システム100の実施形態に対応する、処理システム内の4つのメモリデバイスにアクセスするための粗粒度インターリービングパターンを例示する
図400である。本例では、粗粒度インターリービングパターンは、メモリデバイス108-1、108-2、108-3、108-4に適用される。経路402は、粗粒度インターリービングパターンに従って、メモリデバイス108-1~108-4のメモリブロック404等のメモリブロックにデータが書き込まれる順序を表す。例示された粗粒度インターリービングパターンは、例えば、インターリービング構成データ116の実施形態において定義されるインターリービング構成の一例である。いくつかの実施形態では、処理システム100の物理メモリアドレスマッピングの動的再分割は、処理システム100のインターリービング構成を、本例の粗粒度インターリービングパターン又は別の同様の粗粒度インターリービングパターンに、又は、そこから変更することと併せて実行される。
【0057】
例えば、メモリデバイス108-1~108-4における記憶のためにデータが送信される場合、データは、ブロックに分割され、隣接するブロックは、メモリデバイス108-1~108-4の各々を連続的に満たすように記憶される。すなわち、プロセッサ102は、例えば、次のメモリデバイス108-2にデータを記憶する前に、所定のメモリデバイス108-1をデータで完全に満たす。典型的には、粗粒度インターリービングは、同様のアクセス速度で複数のメモリデバイスに並列にアクセスすることができないプロセッサにとって有利である。
【0058】
図5は、処理システムのインターリービング構成を修正することと併せて、処理システムのための物理メモリアドレスマッピングを動的に再分割する方法500を例示する。例示の容易さのため、方法500は、
図1の処理システム100及びその構成コンポーネント及びモジュールにおける例示的な実装に関して説明される。
【0059】
ブロック502では、プロセッサ102は、動的再分割指標118の一実施形態等の動的再分割指標を受信する。本例では、動的再分割指標は、プロセッサ102によって実行されることになるインターリービング再構成の一部として生成される。ここで、動的再分割指標は、メモリデバイス108のメモリデバイスの第1のサブセット、及び、物理メモリマップ112の動的再分割に関与することになる各識別されたメモリデバイス内の1つ以上のメモリブロックを識別する。識別されたメモリブロックに記憶されたデータは、動的再分割中に一時的に再配置されることになる。
【0060】
ブロック504では、動的再分割指標において識別されるメモリデバイスの第1のサブセットのメモリブロックに記憶されたデータは、大容量記憶デバイス110の1つ以上の大容量記憶デバイス、動的再分割指標において識別されなかったメモリデバイス108のメモリデバイスの第2のサブセットの1つ以上のメモリデバイス、又は、これらの組み合わせに一時的に再配置される。いくつかの実施形態では、このデータを再配置すると、メモリデバイス108の第1のサブセットの識別されたメモリブロックが消去される(例えば、識別されたメモリブロックの各々にバイナリゼロを書き込むことによって)。
【0061】
ブロック506では、プロセッサ102は、処理システム100のインターリービング構成を再構成させる。例えば、プロセッサ102は、何れの物理メモリアドレスがメモリデバイス108のうち1つ以上のメモリブロックにわたって(すなわち、本例では、動的再分割インジケータにおいて識別されたメモリデバイスの第1のサブセットの識別されたメモリブロックにわたって)分散されるべきかに従って、1つ以上のインターリービングパターンを定義するインターリービング構成データ116を更新する。
【0062】
ブロック508では、物理メモリマップ112において定義された1つ以上の物理アドレスマッピングが、更新されたインターリービング構成に従って再分割される。いくつかの実施形態では、物理アドレスを物理メモリブロックにマッピングするために使用される既存のインターリービングパターンは、新しいインターリービングパターンに変更され、物理メモリマップ112において定義された物理アドレスマッピングのうち1つ以上は、新しいインターリービングパターンに対応するように修正される。ブロック508で再分割される物理アドレスマッピングは、動的再分割指標で識別されたメモリブロックに対応し、そこから、ブロック504でデータが再配置される。本例では、物理メモリマップ112を再分割することは、有利には、処理システム100がリブートされることを必要としない。
【0063】
ブロック510では、物理メモリマップ112において定義された物理アドレスマッピングが再分割された後、再配置されたデータは、再分割された物理アドレスマッピングに対応する(すなわち、新しいインターリービングパターンに対応する)パターンで、メモリデバイス108のメモリデバイスの第1のサブセット上に再度読み込まれる。いくつかの実施形態では、ブロック510では、再配置されたデータをメモリデバイスの第1のサブセット上に再度移動させる代わりに、再配置されたデータは、代わりに、メモリデバイスの第2のサブセットに記憶されたままであり、メモリデバイスの第1のサブセットは、新しいメモリ割り当てを除いて空のままである。いくつかの実施形態では、再配置されたデータは、再構成プロセス中ではなく、機会を捉えてメモリデバイスの第2のサブセットからメモリデバイスの第1のサブセットに再度移動される。
【0064】
図6は、ここでは
図1の処理システム100の実施形態に対応する、処理システム内の4つのメモリデバイスのためのECC有効化構成を例示するブロック図である。本例では、処理システム100のECC構成(ECC構成データ114において指定され得る)は、メモリデバイス108-1、108-2、108-3、108-4をECC有効化させる。すなわち、メモリデバイス108-1~108-4のメモリブロック602は、ユーザデータ、ジョブデータ、オペレーティングシステムデータ等のデータを記憶するために利用可能であるが、一方で、メモリデバイス108-1~108-4のメモリブロック604は、メモリブロック602に記憶されたデータの誤りを検出し訂正するために使用されるECCデータを排他的に記憶するために予約される。いくつかの実施形態では、処理システム100のECC再構成が実行され(例えば、プロセッサ102によって)、これは、ECCデータを記憶するために予約されるメモリデバイス108-1~108-4のメモリブロックの数を変更する。いくつかの実施形態では、そのようなECC再構成は、メモリデバイス108-1~108-4のためのECCを無効化し、その結果、メモリブロック604は、もはやECCデータを記憶するために予約されず、代わりに、他のタイプのデータを記憶するために利用可能にされる。上述したように、メモリデバイス108のうち1つ以上のECC構成を変更することは、典型的には、物理メモリマップ112が再分割されることを必要とする。
【0065】
図7は、処理システムのECC構成を修正することと併せて、処理システムのための物理メモリアドレスマッピングを動的に再分割する方法700を示す。方法700は、
図1の処理システム100及びその構成コンポーネント及びモジュールにおける例示的な実装に関して説明される。
【0066】
ブロック702では、プロセッサ102は、動的再分割指標118の一実施形態等の動的再分割指標を受信する。本例では、動的再分割指標は、プロセッサ102によって実行されることになるECC再構成の一部として生成される。ここで、動的再分割指標は、メモリデバイス108のメモリデバイスの第1のサブセット、及び、物理メモリマップ112の動的再分割に関与することになる各識別されたメモリデバイス内の1つ以上のメモリブロックを識別する。識別されたメモリブロックに記憶されたデータは、動的再分割中に一時的に再配置されることになる。
【0067】
ブロック704では、動的再分割指標において識別されるメモリデバイスの第1のサブセットのメモリブロックに記憶されたデータは、大容量記憶デバイス110の1つ以上の大容量記憶デバイス、動的再分割指標において識別されなかったメモリデバイス108のメモリデバイスの第2のサブセットの1つ以上のメモリデバイス、又は、これらの組み合わせに一時的に再配置される。いくつかの実施形態では、このデータを再配置すると、メモリデバイス108の第1のサブセットの識別されたメモリブロックが消去される(例えば、識別されたメモリブロックの各々にバイナリゼロを書き込むことによって)。
【0068】
ブロック706では、プロセッサ102は、処理システム100のECC構成を再構成させる。例えば、プロセッサ102は、メモリデバイス108の何れのメモリブロックがECCデータを記憶するために予約されているかを定義するECC構成データ114を更新する。いくつかの実施形態では、ECC構成データ114に対する更新は、ECCデータを記憶するために、メモリデバイスの識別された第1のセットの新しいメモリブロックを予約することを伴う。いくつかの実施形態では、ECC構成データに対する更新は、メモリデバイスの識別された第1のセットのメモリブロックの1つ以上の既存の予約をキャンセルし、そのようなメモリブロックをECCデータ以外のデータを記憶するために利用可能にすることを伴う。
【0069】
ブロック708では、物理メモリマップ112において定義された1つ以上の物理アドレスマッピングが、更新されたECC構成に従って再分割される(例えば、上記の例に説明されるように)。ブロック708で再分割される物理アドレスマッピングは、動的再分割指標で識別されたメモリブロックに対応し、そこから、ブロック704でデータが再配置される。本例では、物理メモリマップ112を再分割することは、有利には、処理システム100がリブートされることを必要としない。
【0070】
ブロック710では、物理メモリマップ112において定義された物理アドレスマッピングが再分割された後、再配置されたデータは、再分割された物理アドレスマッピングに対応する(すなわち、ECC構成に対応する)パターンで、メモリデバイス108のメモリデバイスの第1のサブセット上に再度読み込まれる。いくつかの実施形態では、ブロック710では、再配置されたデータをメモリデバイスの第1のサブセット上に再度移動させる代わりに、再配置されたデータは、代わりに、メモリデバイスの第2のサブセットに記憶されたままであり、メモリデバイスの第1のサブセットは、新しいメモリ割り当てを除いて空のままである。いくつかの実施形態では、再配置されたデータは、再構成プロセス中ではなく、機会を捉えてメモリデバイスの第2のサブセットからメモリデバイスの第1のサブセット上に再度移動される。
【0071】
いくつかの実施形態では、所定のメモリデバイスの1つ以上のメモリブロックは、OSデータ又はページテーブルデータ等のクリティカルデータのために予約され、動的に再分割されることができない。
図8は、
図1の処理システム100の実施形態に対応する例を例示するブロック図であり、メモリデバイス108の全てに対する物理アドレスマッピングが動的に再分割され、メモリデバイス108の各々におけるメモリブロックのサブセットは、クリティカルデータストレージのために予約されているため、動的再分割から省略されている。
【0072】
本例に示されるように、動的再分割の前に、メモリデバイス108は、第1のインターリービング構成801にあり、そのようなデータは、経路804によって表される細粒度インターリービングパターンに従って、メモリデバイス108-1~108-8のメモリブロック802等のメモリブロックに記憶されることになる。ここで、メモリブロック823の第1のセットは、ジョブデータ又はユーザデータ等の非クリティカルデータを記憶するために指定されるが、一方で、メモリブロック824の第2のセットは、OSデータ又はページテーブルデータ等のクリティカルデータを記憶するために指定される。したがって、物理メモリアドレスの動的再配置は、メモリブロックの第1のセット823及びそれらの対応する物理メモリアドレスに対して有効化され、メモリブロックの第2のセット824及びそれらの対応する物理メモリアドレスに対して無効化される。
【0073】
例えば、プロセッサ102がメモリデバイス108の動的再分割を実行して、メモリデバイス108のインターリービング構成を第1のインターリービング構成801から第2のインターリービング構成806に変更する場合、メモリブロックの第1のセット823に記憶されたデータ(例えば、非クリティカルデータ)のみが再配置されるが、一方で、メモリブロックの第2のセット824に記憶されたデータ(例えば、クリティカルデータ)は再配置されない。物理メモリアドレスの動的再分割がメモリブロックの第2のセット824に対して無効化されるため、メモリブロックの第2のセット824において適用されるインターリービングパターンは、そのような動的再分割中に変化しない。
【0074】
メモリブロックの第1のセット823上に記憶されたデータは、1つ以上の他のメモリデバイス、大容量記憶デバイス110のうち1つ以上、又は、これらの組み合わせに再配置される(例えば、プロセッサ102によって)。次いで、プロセッサ102は、物理メモリマップ112を再分割し、第2のインターリービング構成806内のメモリブロックの第1のセット823において適用されることになる新しいインターリービングパターンに従って、インターリービング構成データ116を修正する。本例では、物理メモリマップ112を再分割することは、有利には、処理システム100がリブートされることを必要としない。次いで、一時的に再配置されたデータは、第2のインターリービング構成806に従って、メモリブロックの第1のセット823に記憶される。
【0075】
本例では、プロセッサは、メモリブロックの第1のセット823をドメイン816、818、820、822(各々が、例えば、ドメイン120、122、124、126にそれぞれ対応する)に論理的に分割する。第2のインターリービング構成806では、細粒度インターリービングパターンが、ドメイン816、818、820、822の各々において適用される。すなわち、第1の経路808に対応する第1の細粒度インターリービングパターンが、メモリブロックの第1のセット823に含まれるメモリデバイス108-1及び108-2のメモリブロックにおいて適用される。第2の経路810に対応する第2の細粒度インターリービングパターンが、メモリブロックの第1のセット823に含まれるメモリデバイス108-3及び108-4のメモリブロックにおいて適用される。第3の経路812に対応する第3の細粒度インターリービングパターンが、メモリブロックの第1のセット823に含まれるメモリデバイス108-5及び108-6のメモリブロックにおいて適用される。第4の経路814に対応する第4の細粒度インターリービングパターンが、メモリブロックの第1のセット823に含まれるメモリデバイス108-7及び108-8のメモリブロックにおいて適用される。メモリブロックの第2のセット823は、動的に再分割されなかったため、それらの対応するインターリービングパターンは、第2のインターリービング構成806において変更されないままである。このようにしてクリティカルメモリブロックに対する物理メモリアドレスマッピングの動的再分割を無効化することによって、処理システム100の動作の失敗の関連するリスクが軽減されるか又は完全に回避される。
【0076】
図9は、所定のメモリデバイス内のメモリブロックの一部のみが再配置される物理メモリアドレスマッピングを動的に再分割する方法900を例示する。方法900は、
図1の処理システム100及びその構成コンポーネント及びモジュールにおける例示的な実装に関して説明される。
【0077】
ブロック902では、プロセッサ102は、動的再分割指標118の一実施形態等の動的再分割指標を受信する。本例では、動的再分割指標は、プロセッサ102によって実行されることになるインターリービング再構成の一部として生成される。ここで、動的再分割指標は、物理メモリマップ112の動的再分割に関与することになるメモリデバイス108のうちメモリデバイスのメモリブロックの第1のセットに対応する物理アドレスのセットを識別する。本例では、メモリデバイスは、動的再分割指標において識別されないメモリブロックの第2のセットを含む。いくつかの実施形態では、メモリブロックの第2のセットの1つ以上のメモリブロックは、クリティカルデータを記憶するために予約され、そのようなメモリブロックと関連付けられた物理メモリアドレスの動的再分割は、無効化される。物理アドレスの識別されたセットと関連付けられたメモリブロックの第1のセットに記憶されたデータは、動的再分割中に一時的に再配置されることになる。
【0078】
ブロック904では、メモリブロックの第1のセットに記憶されたデータは、大容量記憶デバイス110の1つ以上の大容量記憶デバイス、メモリデバイス108の1つ以上の他のメモリデバイス、又は、これらの組み合わせに一時的に再配置される。いくつかの実施形態では、このデータを再配置すると、メモリブロックの第1のセットのメモリブロックが消去される(例えば、メモリブロックの第1のセットのメモリブロックの各々にバイナリゼロを書き込むことによって)。メモリブロックの第2のセットに記憶されたデータは、物理メモリアドレスマッピングの動的再構成がメモリブロックの第2のセットに対して実行されないため、ブロック904で再配置されない。
【0079】
ブロック906では、プロセッサ102は、処理システム100を再構成させる。様々な例によると、システム再構成は、ECC再構成、インターリービング再構成、又は、処理システム100の物理メモリアドレスマッピング(すなわち、物理メモリマップ112で定義されたマッピング)が再分割されることを必要とするシステムの別の再構成のうち1つ以上を含む。
【0080】
ブロック908では、物理メモリマップ112において定義された1つ以上の物理アドレスマッピングが、システム再構成に従って再分割される。例えば、システム再構成がインターリービング再構成である場合、物理アドレスをメモリブロックの第1のセットにマッピングするために使用される既存のインターリービングパターンは、新しいインターリービングパターンに変更され、物理メモリマップ112において定義された物理アドレスマッピングのうち1つ以上は、新しいインターリービングパターンに対応するように修正される。例えば、システム再構成がECC再構成である場合、物理メモリマップ112において定義される物理アドレスマッピングのうち1つ以上は、メモリブロックの第1のセットのうち1つ以上に対して、ECCが有効化若しくは無効化されること、又は、ECCスキームが変更されることに対応するように修正される。ブロック908で再分割される物理アドレスマッピングは、動的再分割指標で識別された物理アドレスに対応する。本例では、物理メモリマップ112を再分割することは、有利には、処理システム100がリブートされることを必要としない。ブロック910では、物理メモリマップ112において定義された物理アドレスマッピングが再分割された後、再配置されたデータは、再分割された物理アドレスマッピングに従って、メモリデバイスのメモリブロックの第1のセット上に再度読み込まれる。
【0081】
いくつかの実施形態では、上記の装置及び技術は、
図1を参照して上述した処理システム100等の1つ以上の集積回路(integrated circuit、IC)デバイス(集積回路パッケージ又はマイクロチップとも称される)を含むシステムに実装される。電子設計自動化(electronic design automation、EDA)及びコンピュータ支援設計(computer aided design、CAD)ソフトウェアツールは、これらのICデバイスの設計及び製造に使用することができる。これらの設計ツールは、典型的には、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計するか又は適応させるためのプロセスの少なくとも一部を実行するために、1つ以上のICデバイスの回路を表すコードで動作するようにコンピュータシステムを操作するための、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含み得る。設計ツール又は製造ツールを表すソフトウェア命令は、典型的には、コンピューティングシステムにアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ICデバイスの設計又は製造の1つ以上の段階を表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶され、そこからアクセスされる。
【0082】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体(例えば、システムRAM又はROM)はコンピューティングシステムに内蔵されてもよいし、コンピュータ可読記憶媒体(例えば、磁気ハードドライブ)はコンピューティングシステムに固定的に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)はコンピューティングシステムに着脱可能に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、ネットワークアクセス可能ストレージ(NAS))は有線又は無線ネットワークを介してコンピュータシステムに結合されてもよい。
【0083】
いくつかの実施形態では、上述した技術の特定の態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装される。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶されるか、別の方法で明確に具体化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、命令及び特定のデータを含んでもよく、当該命令及び特定のデータは、1つ以上のプロセッサによって実行されると、上述した技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する。非一時的なコンピュータ可読記憶媒体は、例えば、磁気又は光ディスク記憶デバイス、フラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス(単数又は複数)等を含み得る。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈され若しくは別の方法で実行可能な他の命令形式で実装可能である。
【0084】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0085】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【手続補正書】
【提出日】2024-05-22
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
処理システムの第1のメモリデバイスのメモリブロックの第1のセットを識別するインジケータを受信したことに応じて、前記第1のメモリデバイスのメモリブロックの第1のセットからのデータを、第2のメモリデバイス又は大容量記憶デバイスのうち選択された何れかに再配置することと、
前記第1のメモリデバイスのメモリブロックの第1のセットに関連付けられた少なくとも1つの物理メモリマップを再分割して、メモリブロックの第2のセットへの前記第1のデータの再配置を表す少なくとも1つの再分割された物理メモリマップを生成することと、
前記少なくとも1つの再分割された物理メモリマップに基づいて、前記第1のデータを前記メモリブロックの第2のセットに記憶することと、を含む、
方法。
【請求項2】
前記少なくとも1つの物理メモリマップを再分割することは、前記処理システムのシステム構成の変更に関連して実行される、
請求項1の方法。
【請求項3】
前記システム構成の変更は、前記処理システムの誤り訂正符号(ECC)構成の変更に対応しており、前記ECC構成は、ECCデータを記憶するために予約されているECCメモリブロックを識別する、
請求項2の方法。
【請求項4】
前記システム構成の変更は、前記処理システムのインターリービング構成の変更に対応しており、前記インターリービング構成は、少なくとも1つのインターリービングパターンを定義し、それに従って、データは、少なくとも前記メモリブロックの第1のセットに記憶される、
請求項2の方法。
【請求項5】
前記少なくとも1つの物理メモリマップを再分割することは、第1の物理アドレスに対して前記少なくとも1つの物理メモリマップによって定義されたマッピングを変更することを含み、
前記少なくとも1つの物理メモリマップは、前記第1の物理アドレスを前記メモリブロックの第1のセットの第1のメモリブロックにマッピングし、
前記少なくとも1つの再分割された物理メモリマップは、前記第1の物理アドレスを前記メモリブロックの第2のセットの第2のメモリブロックにマッピングする、
請求項1~4の何れかの方法。
【請求項6】
前記少なくとも1つの物理メモリマップを再分割することは、前記第1のメモリデバイスを含む前記処理システムのリブートを必要とせずに実行される、
請求項1~4の何れかの方法。
【請求項7】
処理システムであって、
少なくとも第1のメモリデバイスに結合可能な少なくとも1つのプロセッサを備え、
前記プロセッサは、命令を実行するように構成されており、
前記命令は、
前記第1のメモリデバイスのメモリブロックの第1のセットからの第1のデータを、前記メモリブロックの第1のセットを識別するインジケータに応じて再配置することと、
前記第1のメモリデバイスのメモリブロックの第1のセットに関連付けられた少なくとも1つの物理メモリマップを再分割して、前記第1のメモリデバイスのメモリブロックの第2のセットへの前記第1のデータの再配置を表す少なくとも1つの再分割された物理メモリマップを生成することと、
前記少なくとも1つの再分割された物理メモリマップに基づいて、前記第1のデータを複数のメモリデバイスの前記メモリブロックの第2のセットに記憶することと、
を前記少なくとも1つのプロセッサに行わせる、
処理システム。
【請求項8】
前記命令は、前記処理システムのシステム構成の変更に関連して前記少なくとも1つの物理メモリマップを再分割することを前記少なくとも1つのプロセッサに行わせる、
請求項7の処理システム。
【請求項9】
前記システム構成の変更は、前記処理システムの誤り訂正符号(ECC)構成の変更に対応しており、前記ECC構成は、ECCデータを記憶するために予約されている前記複数のメモリデバイスのECCメモリブロックを識別する、
請求項8の処理システム。
【請求項10】
前記システム構成の変更は、前記処理システムのインターリービング構成の変更に対応しており、前記インターリービング構成は、少なくとも1つのインターリービングパターンを定義し、それに従って、データは、前記複数のメモリデバイスのメモリブロックに記憶され、前記メモリブロックは、少なくとも前記メモリブロックの第1のセットを含む、
請求項8の処理システム。
【請求項11】
前記インターリービング構成の変更は、第1のインターリービングパターンを第2のインターリービングパターンと置換することに対応しており、前記少なくとも1つの再分割された物理メモリマップは、前記第2のインターリービングパターンを反映する、
請求項10の処理システム。
【請求項12】
前記命令は、前記少なくとも1つの物理メモリマップを再分割するために、第1の物理アドレスに対して前記少なくとも1つの物理メモリマップによって定義されたマッピングを変更することを前記少なくとも1つのプロセッサに行わせ、
前記少なくとも1つの物理メモリマップは、前記第1の物理アドレスを前記メモリブロックの第1のセットの第1のメモリブロックにマッピングし、
前記少なくとも1つの再分割された物理メモリマップは、前記第1の物理アドレスを前記メモリブロックの第2のセットの第2のメモリブロックにマッピングする、
請求項7~11の何れかの処理システム。
【請求項13】
前記第1のメモリデバイス及び第2のメモリデバイスと、
大容量記憶デバイスと、を備え、
前記命令は、前記第1のデータを、前記複数のメモリデバイスの第2のメモリデバイス又は前記大容量記憶デバイスのうち選択された何れかに再配置することを前記少なくとも1つのプロセッサに行わせる、
請求項7~11の何れかの処理システム。
【請求項14】
前記命令は、前記処理システムのリブートを必要とせずに、前記少なくとも1つの物理メモリマップを再分割することを前記少なくとも1つのプロセッサに行わせる、
請求項7~11の何れかの処理システム。
【国際調査報告】