(57)【特許請求の範囲】
【請求項１】
メモリシステムにおいて使用される方法であって、
前記メモリシステムの第１メモリの第１の複数のページを、前記メモリシステムの第２メモリの第２の複数のページとスワップすることであって、前記第１メモリは、第１レイテンシを有しており、前記第２メモリは、第２レイテンシを有しており、前記第１レイテンシは、前記第２レイテンシよりも短い、ことと、
ページテーブルを更新し、トランスレーションルックアサイドバッファシュートダウンをトリガして、前記第１の複数のページの各々の仮想アドレスを、前記第２メモリ内の対応する物理アドレスに関連付け、前記第２の複数のページの各々の仮想アドレスを、前記第１メモリ内の対応する物理アドレスに関連付けることと、を含み、
前記スワップすることは、
前記第１の複数のページを、前記第１メモリからステージングバッファにコピーすることと、
前記第２の複数のページを、前記第２メモリから前記ステージングバッファにコピーすることと、
前記第１の複数のページの前記ステージングバッファへのコピーの間に、前記ステージングバッファ内の前記第１の複数のページのうち第１ページへの書き込み命令に応じて、前記第１ページのコピーにデータを書き込み、前記第１メモリ内の前記第１ページに前記データを書き込むことと、を含む、
方法。
【請求項２】
前記スワップすることは、
前記第１の複数のページの各々の第１リダイレクション状態及び前記第２の複数のページの各々の第２リダイレクション状態を更新して、前記第１の複数のページ及び前記第２の複数のページの各々が前記ステージングバッファにコピーされていることを示すことをさらに含み、
前記書き込むことは、前記第１ページの前記第１リダイレクション状態に基づいている、
請求項１の方法。
【請求項３】
前記スワップすることは、
前記第１の複数のページを、前記ステージングバッファから前記第２メモリにコピーすることと、
前記第２の複数のページを、前記ステージングバッファから前記第１メモリにコピーすることと、
前記第１の複数のページの各々の第１リダイレクション状態及び前記第２の複数のページの各々の第２リダイレクション状態を更新して、前記第１の複数のページ及び前記第２の複数のページの各々が前記ステージングバッファからコピーされていることを示すことと、をさらに含む、
請求項１の方法。
【請求項４】
前記スワップすることは、
前記ステージングバッファからの前記第１の複数のページのコピーの間に、前記第１ページへの第２書き込み命令に応じて、前記第１ページのコピーを前記ステージングバッファに書き込むことをさらに含む、
請求項３の方法。
【請求項５】
前記スワップすることは、
前記第１の複数のページの各々の前記第１リダイレクション状態及び前記第２の複数のページの各々の前記第２リダイレクション状態を更新して、前記ステージングバッファからの前記第１の複数のページ及び前記第２の複数のページのコピーが完了したときに前記ステージングバッファを解放することをさらに含む、
請求項３又は４の方法。
【請求項６】
前記メモリシステムの個々のページに対するメモリアクセスの頻度をカウントして、メモリアクセス情報を生成することと、
前記メモリアクセス情報に基づいて、前記第１メモリにおいて最も低いメモリアクセス頻度を有する前記第１メモリ内の複数のページを、前記第１の複数のページとして識別することと、
前記メモリアクセス情報に基づいて、前記第２メモリにおいて最も高いメモリアクセス頻度を有する前記第２メモリ内の複数のページを、前記第２の複数のページとして識別することと、をさらに含み、
前記最も高いメモリアクセス頻度は、前記最も低いメモリアクセス頻度よりも大きい、
請求項１、２、３、４又は５の方法。
【請求項７】
第３の複数のページを、前記メモリシステムの前記第２メモリから前記メモリシステムの前記第１メモリ内の第１の複数の未使用ページに移行することと、
前記ページテーブルを更新し、第２トランスレーションルックアサイドバッファシュートダウンをトリガして、前記第３の複数のページの各々の仮想アドレスを、前記第１メモリ内の対応する物理アドレスに関連付けることと、をさらに含む、
請求項１、２、３、４、５又は６の方法。
【請求項８】
メモリシステムの第１メモリのＮ個の第１ページを、前記メモリシステムの第２メモリのＮ個の第２ページとスワップするように構成されたマイグレーション制御ロジックであって、前記第１メモリは、第１レイテンシを有しており、前記第２メモリは、第２レイテンシを有しており、前記第１レイテンシは、前記第２レイテンシよりも短い、マイグレーション制御ロジックと、
前記メモリシステムの全てのページについての仮想‐物理アドレス変換を記憶するように構成されたページテーブルと、
前記メモリシステムのページについて最近使用された仮想‐物理アドレス変換を記憶するように構成されたトランスレーションルックアサイドバッファと、
少なくとも２×Ｎ個のページのサイズを有するステージングバッファであって、前記マイグレーション制御ロジックは、メモリシステムの前記第１メモリのＮ個の第１ページを前記ステージングバッファにコピーするように構成されており、前記メモリシステムの前記第２メモリのＮ個の第２ページを前記ステージングバッファにコピーするように構成されている、ステージングバッファと、
前記Ｎ個の第１ページの前記ステージングバッファへのコピーの間に、前記第１ページへの書き込み命令に応じて、前記ステージングバッファ内の前記Ｎ個の第１ページのうち第１ページのコピーにデータを書き込み、前記第１メモリ内の前記第１ページに前記データを書き込むように構成されたメモリコントローラと、を備え、
前記マイグレーション制御ロジックは、前記ページテーブルを更新し、トランスレーションルックアサイドバッファシュートダウンをトリガして、前記Ｎ個の第１ページの各々の仮想アドレスを、前記第２メモリ内の対応する物理アドレスに関連付け、前記Ｎ個の第２ページの各々の仮想アドレスを、前記第１メモリ内の対応する物理アドレスに関連付けるように構成されており、Ｎは、１よりも大きい整数である、
装置。
【請求項９】
前記Ｎ個の第１ページのコピー及び前記Ｎ個の第２ページのコピーが前記ステージングバッファにコピーされているかどうかを示す、前記第１メモリの前記Ｎ個の第１ページの第１リダイレクション状態及び前記第２メモリの前記Ｎ個の第２ページの第２リダイレクション状態を記憶するように構成されたリダイレクション状態ストレージをさらに備え、
前記マイグレーション制御ロジックは、前記第１リダイレクション状態及び前記第２リダイレクション状態を更新して、前記Ｎ個の第１ページ及び前記Ｎ個の第２ページが前記ステージングバッファにコピーされていることを示すように構成されている、
請求項８の装置。
【請求項１０】
前記メモリコントローラは、前記ステージングバッファから前記第２メモリへの前記Ｎ個の第１ページのコピーの間に、前記第１ページへの第２書き込み命令に応じて、前記ステージングバッファ内の前記第１ページのコピーにデータを書き込むように構成されている、
請求項８又は９の装置。
【請求項１１】
前記メモリシステムの個々のページに対するメモリアクセス頻度カウントを記憶するように構成されたメモリアクセス情報ストレージと、
前記メモリシステム及び前記メモリアクセス情報ストレージに接続されたメモリバスと、
前記メモリバス及び前記メモリアクセス情報ストレージに接続されたプロファイリングロジックであって、前記メモリシステムの個々のページに対するメモリアクセスの頻度をカウントし、前記個々のページに対するメモリアクセスの頻度を前記メモリアクセス情報ストレージに記憶するように構成されたプロファイリングロジックと、をさらに備え、
前記マイグレーション制御ロジックは、前記メモリアクセス情報ストレージの内容に基づいて、前記第１メモリ内のＮ個の最低頻度ページを前記Ｎ個の第１ページとして識別し、前記メモリアクセス情報ストレージの前記内容に基づいて、前記第２メモリ内のＮ個の最高頻度ページを前記Ｎ個の第２ページとして識別するように構成されている、
請求項８、９又は１０の装置。
【請求項１２】
前記プロファイリングロジックは、
前記メモリシステムの個々のページに対応する複数のカウンタの個々のカウンタを含む、複数のカウンタと、
前記第１メモリ内の前記Ｎ個の最低頻度ページを識別し、前記第２メモリ内の前記Ｎ個の最高頻度ページを識別するロジックであって、前記Ｎ個の最高頻度ページの各々は、前記Ｎ個の最低頻度ページの各々のメモリアクセス頻度よりも大きいメモリアクセス頻度を有する、ロジックと、を備える、
請求項１１の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
典型的なコンピューティングシステムでは、メモリシステムは、任意のデータ単位にアクセスする場合にプロセッサが経験する低レイテンシを目標として設計される。概して、レイテンシが異なるメモリ部分を有するメモリシステム（例えば、ノンユニフォームメモリアクセス（ＮＵＭＡ）メモリシステム又はマルチレベルメモリシステム）は、ページマイグレーション技術を用いて、個々のメモリアクセスに応じてメインメモリの一部の内容を、メインメモリのより低いレイテンシ部分に移動させることによって、メモリアクセスのレイテンシを低減する。概して、これらの技術は、ソフトウェアに依存しており、オペレーティングシステムのインターセプトを必要とするか、マイグレーション中にかなりのオーバヘッドを生じさせる。
【０００２】
例示的なノンユニフォームメモリアクセス（ＮＵＭＡ）メモリシステムは、プロセッサと、少なくとも２つのレベルのダイナミックランダムアクセスメモリ（ＤＲＡＭ）又は他のメモリと、を含み、第２レベルのメモリの帯域幅は、第１レベルのメモリの帯域幅よりも低く、第２レベルのメモリのレイテンシは、第１レベルのメモリのレイテンシよりも高い。例示的なＮＵＭＡメモリシステムでは、第１レベルのメモリは、インパッケージメモリであり、第２レベルのメモリは、オフパッケージメモリである。従来のページマイグレーション技術は、より頻繁にアクセスされるデータを、プロセッサに最も近い第１レベルのメモリに記憶し、メモリレイテンシを低減し、最も頻繁にアクセスされるデータに利用可能な帯域幅を増加させることによって、性能を向上させる。しかしながら、従来のページマイグレーション技術は、かなりのオーバヘッド（例えば、ページコピー、キャッシュ無効化、トランスレーションルックアサイドバッファ（ＴＬＢ）シュートダウン、及び、ページテーブル更新）を必要とする。本明細書で言及するように、ＴＬＢシュートダウンは、プロセッサの動作を中断してＴＬＢ一貫性動作（TLB consistency operations）を実行するコヒーレンシトランザクションである。複数のプロセッサを含むシステムでは、各プロセッサは、共有メモリに対するＴＬＢを含み、一貫したＴＬＢエントリを維持するために対応するＴＬＢシュートダウンを実行する。ＴＬＢシュートダウンを必要とする動作を実行するプロセッサは、一貫性のためにＴＬＢシュートダウンを実行する必要がある他のプロセッサの各々に割り込みを送信する。ハードウェア又はソフトウェアに実装される場合があるこのオーバヘッドは、大きい場合があり、メモリを頻繁に移行するワークロードの性能にかなりの影響を及ぼす可能性がある。したがって、改善されたページマイグレーション技術が望まれている。
【発明の概要】
【課題を解決するための手段】
【０００３】
少なくとも１つの実施形態では、メモリシステムにおいて使用される方法は、メモリシステムの第１メモリの第１の複数のページを、メモリシステムの第２メモリの第２の複数のページとスワップすることを含む。第１メモリは、第１レイテンシを有しており、第２メモリは、第２レイテンシを有している。第１レイテンシは、第２レイテンシよりも短い。方法は、ページテーブルを更新し、トランスレーションルックアサイドバッファシュートダウンをトリガして、第１の複数のページの各々の仮想アドレスを、第２メモリ内の対応する物理アドレスに関連付け、第２の複数のページの各々の仮想アドレスを、第１メモリ内の対応する物理アドレスに関連付けることを含む。スワップすることは、第１の複数のページを、第１メモリからステージングバッファにコピーすることを含んでもよい。方法は、第２の複数のページを、メモリシステムの第２メモリからステージングバッファにコピーすることを含んでもよい。方法は、第１の複数のページのステージングバッファへのコピーの間に、ステージングバッファ内の複数のページのうち第１ページへの書き込み命令に応じて、第１ページのコピーにデータを書き込み、第１メモリ内の第１ページにデータを書き込むことを含んでもよい。スワップすることは、第１の複数のページを、ステージングバッファから第２メモリにコピーすることを含んでもよい。スワップすることは、第２の複数のページを、ステージングバッファから第１メモリにコピーすることを含んでもよい。スワップすることは、第１の複数のページの各々の第１リダイレクション状態及び第２の複数のページの各々の第２リダイレクション状態を更新して、第１の複数のページ及び第２の複数のページの各々がステージングバッファからコピーされていることを示すことを含んでもよい。方法は、第３の複数のページを、メモリシステムの第２メモリからメモリシステムの第１メモリ内の第１の複数の未使用ページに移行することを含んでもよい。方法は、ページテーブルを更新し、第２トランスレーションルックアサイドバッファシュートダウンをトリガして、第３の複数のページの各々の仮想アドレスを、第１メモリ内の対応する物理アドレスに関連付けることを含んでもよい。
【０００４】
少なくとも１つの実施形態では、装置は、メモリシステムの第１メモリのＮ個の第１ページを、メモリシステムの第２メモリのＮ個の第２ページとスワップするように構成されたマイグレーション制御ロジックを含む。第１メモリは、第１レイテンシを有しており、第２メモリは、第２レイテンシを有している。第１レイテンシは、第２レイテンシよりも短い。装置は、メモリシステムの全てのページについての仮想‐物理アドレス変換を記憶するように構成されたページテーブルを含む。装置は、メモリシステムのページについて最近使用された仮想‐物理アドレス変換を記憶するように構成されたトランスレーションルックアサイドバッファを含む。また、マイグレーション制御ロジックは、ページテーブルを更新し、トランスレーションルックアサイドバッファシュートダウンをトリガして、Ｎ個の第１ページの各々の仮想アドレスを、第２メモリ内の対応する物理アドレスに関連付け、Ｎ個の第２ページの各々の仮想アドレスを、第１メモリ内の対応する物理アドレスに関連付けるように構成されている。ここで、Ｎは、１よりも大きい整数である。装置は、少なくとも２×Ｎ個のページのサイズを有するステージングバッファを含んでもよい。マイグレーション制御ロジックは、メモリシステムの第１メモリのＮ個の第１ページをステージングバッファにコピーするように構成されてもよい。マイグレーション制御ロジックは、メモリシステムの第２メモリのＮ個の第２ページをステージングバッファにコピーするように構成されてもよい。装置は、Ｎ個の第１ページのステージングバッファへのコピーの間に、第１ページへの書き込み命令に応じて、ステージングバッファ内のＮ個の第１ページのうち第１ページのコピーにデータを書き込み、第１メモリ内の第１ページにデータを書き込むように構成されたメモリコントローラを含んでもよい。
【０００５】
少なくとも１つの実施形態では、メモリシステム内のページマイグレーションの方法は、第１の複数のページを、メモリシステムの第２メモリからメモリシステムの第１メモリ内の第１の複数の未使用ページに移行することを含む。第１メモリは、第１レイテンシを有しており、第２メモリは、第２レイテンシを有している。第１レイテンシは、第２レイテンシよりも短い。方法は、ページテーブルを更新し、トランスレーションルックアサイドバッファシュートダウンをトリガして、第１の複数のページの各々の仮想アドレスを、第１メモリ内の対応する物理アドレスに関連付けることを含んでもよい。方法は、第１メモリの第２の複数のページを、メモリシステムの第２メモリの第３の複数のページとスワップすることを含んでもよい。方法は、ページテーブルを更新し、別のトランスレーションルックアサイドバッファシュートダウンをトリガして、第２の複数のページの各々の仮想アドレスを、第２メモリ内の対応する物理アドレスに関連付け、第３の複数のページの各々の仮想アドレスを、第１メモリ内の対応する物理アドレスに関連付けることを含んでもよい。
【０００６】
本発明は、添付の図面を参照することによってより良く理解され、その多数の目的、特徴及び利点が当業者に明らかになる。
【図面の簡単な説明】
【０００７】
【図１】ノンユニフォームメモリアクセス処理システムの機能ブロック図である。
【図２】メモリシステムの一部の機能ブロック図である。
【図３】本発明の少なくとも１つの実施形態と一致する、オーバヘッドが低減したページマイグレーションシステムを含む処理システムの機能ブロック図である。
【図４】例示的なメモリ部分の機能ブロック図である。
【図５】本発明の少なくとも１つの実施形態と一致する、ステージングバッファを用いる、オーバヘッドが低減したページマイグレーションシステムの例示的な情報及び制御フロー示す図である。
【図６】本発明の少なくとも１つの実施形態と一致する、オーバヘッドが低減したページマイグレーションシステムの例示的な情報及び制御フローを示す図である。
【発明を実施するための形態】
【０００８】
異なる図面で同じ符号を使用している場合、類似又は同一のアイテムを示している。
【０００９】
低減したオーバヘッドでページマイグレーションを実行するメモリシステムは、実際のページマイグレーションが開始される前に、高レイテンシメモリからの複数のページ及び低レイテンシメモリからの複数のページを、ステージングバッファにコピーする。ステージングバッファは、複数のページの同時マイグレーションを可能にする（例えば、高レイテンシメモリと低レイテンシメモリとの間でスワップされる最大Ｎ個のページであり、Ｎは１よりも大きい整数）のに十分な大きさ（例えば、ステージングバッファは、２×Ｎ個のページのサイズを有しており、Ｎは１よりも大きい整数である）であり、そうでなければ複数の異なるＴＬＢシュートダウン又は他のコヒーレンシトランザクションを１つのイベントに統合することによってマイグレーションオーバヘッドを低減し、これにより、ページマイグレーションの性能への影響を軽減する。本明細書で言及するように、ページは、固定長の連続したメモリブロックであり、ページテーブル内の単一のエントリによって記述され、仮想メモリオペレーティングシステムにおけるアドレス変換のためのデータの最小単位である。
【００１０】
図１を参照すると、システム１００は、相互接続ネットワーク１２０を使用して相互に通信する複数の処理ノード（例えば、ノード１０２、ノード１０４及びノード１０６）を含む例示的なノンユニフォームメモリアクセス処理システムである。各ノードは、１つ以上のプロセッサと、対応するメモリ部分（例えば、メモリ部分１１０、メモリ部分１１２及びメモリ部分１１４）と、メモリシステム１０８と、を含む。各ノードは、別のノードのメモリよりも高速にノード内のメモリ部分にアクセスすることができる。処理ノードは、複数のキャッシュがメモリシステム１０８の同じ位置の内容を含む場合、プロセッサ間通信を使用して、メモリシステム１０８内のメモリイメージのコヒーレンシを維持する。システム１００は、メモリコントローラ（図示省略）に関連する高速スタティックランダムアクセスメモリ（ＲＡＭ）内のプローブフィルタ又は他の適切な技術を使用して、キャッシュコヒーレンシポリシを実装する。
【００１１】
図２を参照すると、メモリ部分１１０の実施形態は、１つ以上のメモリ集積回路（例えば、１つ以上のダイナミックＲＡＭ（ＤＲＡＭ）集積回路）を含む。少なくとも１つの実施形態では、メモリシステムは、並列にアクセスされる（例えば、デュアルインラインメモリモジュール（ＤＩＭＭ）として構成されている）複数のメモリ集積回路を含む。各メモリ集積回路は、他のメモリ集積回路のデータインタフェースと組み合わされて、より広帯域のデータインタフェース（例えば、６４ビットデータインタフェース）を形成するデータインタフェース（例えば、８ビットデータインタフェース）を含んでもよい。各メモリ集積回路は、並列にアクセス可能な複数の独立したメモリバンクを含んでもよい。各メモリバンクは、複数の行及び列を含む、ＤＲＡＭセルの二次元アレイを含んでもよい。メモリの位置は、バンク、行及び列フィールドを含むメモリアドレスを使用してアクセスされてもよい。メモリシステム１０８の少なくとも１つの実施形態では、バンク内の１つの行のみが一度にアクセスされてもよく、行データが当該バンク専用の行バッファに記憶されてもよい。アクティベートコマンド（activate command）は、データの行を、メモリアレイから行バッファに移動させる。行が行バッファに入ると、読み出し又は書き込みコマンドは、関連するメモリアドレスとの間でデータを読み書きしてもよい。よって、メモリコマンドのレイテンシは、対応する行が、関連するメモリバンクの行バッファにあるか否かに部分的に依存する。
【００１２】
メモリアドレスの内容が行バッファに存在する（つまり、メモリアドレスが行バッファにヒットする）場合、メモリコントローラは、読み出し又は書き込みコマンドをメモリバンクに発行するだけでよく、一実施形態では、メモリバンクは、ｔＣＬの読み出しメモリアクセスレイテンシ又はｔＷＬの書き込みメモリアクセスレイテンシを有する。メモリアドレスの内容が行バッファに存在しない（つまり、メモリアドレスが行バッファにミスする）場合、メモリコントローラは、行バッファをプリチャージし、データの行を行バッファに移動させるアクティベートコマンドを発行し、読み出し又は書き込みコマンドをメモリバンクに発行する必要がある。一実施形態では、メモリバンクは、ｔＲＣＤ＋ｔＣＬ＋ｔＲＰの関連する読み出しメモリアクセスレイテンシ、又は、ｔＲＣＤ＋ｔＷＬ＋ｔＲＰの書き込みメモリアクセスレイテンシを有し、ｔＲＣＤは、アクティブコマンド行アドレスストローブと列アドレスストローブとの間の必要な遅延時間であり、ｔＲＰは、行プリチャージレイテンシである。
【００１３】
図３を参照すると、ノード１０２は、１つ以上のプロセッサを含む。例えば、ノード１０２は、複数のコア（例えば、コア０、コア１、コア２、…、コアＮ）を含むが、ノード１０２の他の実施形態は、プロセッサユニット（例えば、中央処理装置及びグラフィックス処理ユニット、中央処理装置、グラフィックス処理ユニット、又は、他のプロセッサを含む少なくとも１つのアクセラレーテッド処理ユニットであり、コプロセッサ又は固定機能処理ハードウェアを含んでもよい）の他の組み合わせを統合する。ディレクトリ１３２は、ディレクトリベースのキャッシュコヒーレンスポリシを使用して、ノード１０２及びメモリシステム１０８のキャッシュのコヒーレンスを維持するのに使用されるキャッシュディレクトリ用のストレージを含む。ディレクトリ１３２は、高速スタティックランダムアクセスメモリ又は他の適切な技術を使用して実装される。図３は、メモリ部分１１０に含まれるページテーブル１５２を示している。しかしながら、他の実施形態では、ページテーブル１５２は、メモリシステム１０８の別の部分に含まれてもよいし、別個の構造として含まれてもよいことに留意されたい。
【００１４】
図４に示すように、メモリ部分１１０は、集積回路上、マルチチップモジュール内、又は、ノード１０２の部分を有するプリント回路基板上でノード１０２の部分と集積されてもよいし、ノード１０２の部分の最上部上に垂直に積み重ねられてもよい。メモリをプロセッサの最上部上に垂直に積み重ねることは、メモリ帯域幅を増加させ、アクセスエネルギーを低減させ、これらの両方は、性能及びエネルギー効率にとって重要である。しかしながら、プロセッサの最上部上に垂直に積み重ねることができるメモリの制限された容量のために、十分な総メモリ容量を提供するために、他のノードに含まれ得る外部オフパッケージメモリも必要とされる。プロセッサインメモリの実装は、１つ以上のメモリダイ内の処理ロジックとして、又は、１つ以上のメモリダイも含むスタック４０２内の別個のロジックダイとして、ノード１０２の部分を少なくとも含む。ホスト４１０及び４つのプロセッサインメモリデバイスがインタポーザ４１２上に形成される。図２及び図４のメモリ部分は単なる例示であり、本明細書で説明する教示は、他のメモリアーキテクチャを有するメモリ部分を含むシステムに適用され得ることに留意されたい。
【００１５】
図３を参照すると、オーバヘッドが低減したページマイグレーション技術は、ステージングバッファ１５４を使用して、異なるレベルのメモリ間で１つ以上のページを移行しながら、メモリ位置への連続したアクセスを提供する。オーバヘッドが低減したページマイグレーション技術のいくつかの実施形態では、オーバヘッドが低減したページマイグレーション技術は、マイグレーションページの１つのセットを使用するが、他の実施形態では、複数のマイグレーションページ及び／又は追加のレベルのメモリ（例えば、Ｎ個の第１レベルのページ）が使用される。オーバヘッドが低減したページマイグレーション技術は、メモリバス上のメモリアクセスをプロファイルし、メモリ内のページの少なくとも一部（例えば、メモリ内のＱ個のページのうちＰ個のページであり、Ｐ及びＱは整数であり、Ｐ≦Ｑである）に対するメモリアクセス頻度値を維持するプロファイリングロジック１４４を含む。少なくとも１つの実施形態では、プロファイリングロジック１４４は、メモリ内の各ページに対するメモリアクセス頻度値を維持する。例えば、プロファイリングロジック１４４は、メモリシステム１０８内の各ページに対するカウント値を記憶する所定のメモリ位置（例えば、スタティックランダムアクセスメモリ内）を使用して実装されたハードウェアカウンタを使用する。メモリアクセス情報の記憶構造と、プロファイリングロジック１４４及びマイグレーション制御ロジック１４８の実施態様及びポリシと、は単なる例示であって、本明細書の教示と一致する他のデータ構造、実装態様及びポリシが使用されてもよいことに留意されたい。
【００１６】
プロファイリングロジック１４４は、ノード１０２のプロセッサがメモリシステム１０８内の対応するページを読み書きする毎に、頻度値をインクリメントする。アクセスされているページが、Ｐ＜Ｑを有するプロファイリングロジック１４４の実施形態によって現在追跡されていない場合、置換ポリシ（例えば、最も長く使用されていない（least-recently used）置換ポリシ）が使用され、別のページに対する既存のカウントエントリがエビクトされ、アクセスされているページに対する新たなカウントエントリが挿入される。少なくとも１つの実施形態では、プロファイリングロジック１４４は、ページ毎のアクセス頻度値を定期的にクリア又は左にシフトして、履歴バイアスを低減する。マイグレーション制御ロジック１４８は、例えば、線形スキャン又は他の適切な技術を使用して、メモリの或るレベルにおける各ページのメモリアクセス頻度値を定期的に比較する。マイグレーション制御ロジック１４８は、その比較をバックグラウンドで（すなわち、ノード１０２のプロセッサのプログラム実行を中断させることなく）実行する。よって、比較は、ノード１０２のプロセッサのプログラム実行のクリティカルパスにはない。マイグレーション制御ロジック１４８は、比較に基づいて、ページマイグレーションの候補を識別する。例えば、マイグレーション制御ロジック１４８は、最低のアクセス頻度を有するＮ個の第１レベルのページであって、頻度が、１つ以上の他の高レイテンシメモリ内の最高頻度のメモリアクセスページの最高のメモリアクセス頻度Ｎ未満である、ページを、ページマイグレーションの候補として識別する。メモリアクセス頻度の差の閾値が使用されてもよい。例えば、第１レベルのページのアクセス頻度が、第２レベルのページのアクセス頻度よりも少ない少なくともＬ回のアクセス（Ｌは、０よりも大きい整数）のアクセス頻度を有する場合、第２レベルのページは、第１レベルのメモリへのマイグレーションの候補である。所定の閾値を、実行時に静的又は動的に決定することができる。
【００１７】
マイグレーション制御ロジック１４８は、低レイテンシメモリと１つ以上の高レイテンシメモリとの間でスワッピングするページを識別した後、メモリシステム１０８、リダイレクションテーブル１５０、ＴＬＢ１５１、ページテーブル１５２及びステージングバッファ１５４に、ステージングバッファ１５４を使用して候補ページの物理位置をスワップさせる制御信号及びメモリコマンドを生成する。マイグレーション制御ロジック１４８は、ページマイグレーションの候補を識別した後、高レイテンシメモリ内のターゲットページを、低レイテンシメモリ内の同じ数のビクティムページとスワップする。マイグレーションは、バックグラウンドで行われる実際のページマイグレーションの前に、これらの候補の各々をステージングバッファ１５４にコピーすることを含む。コピーすることは、ノード１０２のプロセッサのプログラム実行に如何なる割り込みも生じさせない。ページをステージングバッファ１５４にコピーする間、データは、元のメモリ位置からアクセス可能であり続ける。マイグレーション制御ロジック１４８は、一貫性を維持するために、これらのページへの書き込み動作に冗長性をもたらす。例えば、メモリコントローラ１４２は、従来の書き込み動作と一貫して、元のメモリ位置への書き込み動作を処理するが、マイグレーション制御ロジック１４８は、データを、ステージングバッファ１５４内のページのコピーにも書き込む。
【００１８】
マイグレーション制御ロジック１４８は、ステージングバッファ１５４へのコピーが完了した後、リダイレクションテーブル１５０を使用して、これらの２つのページへの全ての読み出し及び書き込みアクセスをステージングバッファ１５４にリダイレクトする。リダイレクションテーブル１５０は、何れのページがステージングバッファ１５４内でアクティブコピーを有しているかを示す。したがって、メモリコントローラ１４２は、メモリアクセスに応じて、任意のターゲットメモリデバイスにアクセスする前に、リダイレクションテーブル１５０を最初にチェックして、ステージングバッファ１５４内の対応するページにアクセスするか否かを決定する。少なくとも１つの実施形態では、リダイレクションテーブル１５０及びメモリ動作のターゲットアドレスとの比較を使用するのではなく、リダイレクション情報は、例えば、ページレベルの仮想‐物理アドレスマッピング情報と共にエントリ毎にＴＬＢ１５１内の追加ビットを割り当てることによって、ＴＬＢ１５１に組み込まれてもよい。追加ビットは、対応するＴＬＢエントリに関連するターゲットページが、ステージングバッファ１５４内にアクティブコピーを有しているかどうかを示す。
【００１９】
マイグレーション制御ロジック１４８は、候補ページのステージングバッファ１５４へのコピーが完了した後、これらのページを、ステージングバッファ１５４から新たな物理メモリ位置にコピーする。ステージングバッファ１５４からのコピーの間、メモリ読み出し要求が、対応する候補メモリ部分の代わりに候補ページアクセスステージングバッファ１５４に対して行われ、メモリ書き込み要求が、ステージングバッファ１５４及び対応する候補メモリ部分の両方に書き込みを行う。ステージングバッファ１５４からのコピーが完了すると、マイグレーションが完了し、マイグレーション制御ロジック１４８は、ステージングバッファ１５４及びリダイレクションテーブル１５０内の対応するエントリの割り当てを解除するか、ＴＬＢ１５１内の対応するリダイレクションビットをクリアする。また、マイグレーション制御ロジック１４８は、ＴＬＢシュートダウンを発行し、マイグレーションに関与するページの新たな物理位置に応じて、更新された仮想‐物理アドレス変換を用いてＴＬＢ１５１及びページテーブル１５２を更新する。さらに、マイグレーション制御ロジック１４８は、キャッシュ無効化及び他の一貫性動作をトリガする。マイグレーション制御ロジック１４８は、全ての候補ページに亘るページマイグレーションのタイミングを調整し、これにより、これらのページが同時に移行し、これらの移行されたページの全てに対して単一のＴＬＢシュートダウンイベントが行われる。
【００２０】
図３及び図５を参照すると、少なくとも１つの実施形態では、プロファイリングロジック１４４及びマイグレーション制御ロジック１４８は、システム１００に例示的な情報及び制御フロー６００を生成させるための様々な制御信号を提供する。プロファイリングロジック１４４及びマイグレーション制御ロジック１４８の実施態様は、情報及び制御フロー６００と一貫した命令を実行するように構成された特定用途向け回路又は汎用処理ロジックを含む。マイグレーション制御ロジック１４８は、プロファイリングロジック１４４に記憶されたメモリアクセス情報を検索して、最も低いメモリアクセス頻度（例えば、頻度Ｆ１）を有する最低レイテンシメモリ（例えば、メモリ部分１１０）内のページを識別し、高レイテンシメモリ内のページの最も高いアクセス頻度（例えば、頻度Ｆ２）を有する高レイテンシメモリ（例えば、メモリ部分１１２，１１４又は１１６）内のページを識別する（６０４）。マイグレーション制御ロジック１４８は、頻度Ｆ１を頻度Ｆ２と比較する（６０６）。一実施形態では、頻度Ｆ１が頻度Ｆ２よりも小さい場合、対応するページは、マイグレーションの適切な候補である。マイグレーション制御ロジック１４８がマイグレーションのためのＮ個の適切な候補を識別することができない場合、メモリアクセス情報のプロファイリングが継続され（６０２）、マイグレーション制御ロジック１４８は、少なくともＮ個の適切なマイグレーション候補について、プロファイリングロジック１４４に記憶されたメモリアクセス情報を定期的に検索し続ける。本明細書で説明する条件がＮページよりも少ないページによって満たされる場合、Ｎページよりも少ないページがスワップされてもよいことに留意されたい。マイグレーション制御ロジック１４８がマイグレーションのための適切な候補を識別することができない場合、メモリアクセス情報のプロファイリングが継続され（６０２）、マイグレーション制御ロジック１４８は、適切なマイグレーション候補について、プロファイリングロジック１４４に記憶されたメモリアクセス情報を定期的に検索し続ける。
【００２１】
マイグレーション制御ロジック１４８は、マイグレーションの候補を識別することに成功した後、最低レイテンシメモリ内の最も少ない頻度でアクセスされたデータ（すなわち、Ｎ個のページを含む候補データＤ１）の最低レイテンシメモリ内の候補ページの物理位置（すなわち、物理位置Ｐ１）と、高レイテンシメモリ内の最も頻繁にアクセスされたデータ（すなわち、候補データＤ２）の高レイテンシメモリ内の物理位置（すなわち、物理位置Ｐ２）と、のスワップを開始する（６０８）。スワップは、リダイレクションテーブル１５０又はＴＬＢ１５１内の対応するエントリを書き込み、これらの物理位置に記憶されたページが移行されていることを示す（６１０）ことを含む。また、マイグレーション制御ロジック１４８は、これらの物理位置における候補ページへの任意の書き込みを可能にして、ステージングバッファ１５４内の対応するコピーへの冗長な書き込みを生じさせる（６１０）。マイグレーション制御ロジック１４８は、候補データＤ１を最低レイテンシメモリの物理位置Ｐ１からステージングバッファ１５４にコピーし、候補データＤ２を高レイテンシメモリの物理位置Ｐ２からステージングバッファ１５４にコピーする（６１２）。
【００２２】
マイグレーション制御ロジック１４８は、候補ページがステージングバッファ１５４にコピーされた後、これらの物理位置における候補ページへの任意の書き込みを可能にして、ステージングバッファ１５４内の対応するコピーへの書き込みを生じさせるように、リダイレクションテーブル１５０を更新する（６１４）。マイグレーション制御ロジック１４８は、候補データＤ１をステージングバッファ１５４から物理位置Ｐ２にコピーし、候補データＤ２をステージングバッファ１５４から物理位置Ｐ１にコピーする（６１４）。マイグレーション制御ロジック１４８は、候補データがステージングバッファ１５４から適切な物理位置にコピーされた後、リダイレクションテーブル１５０又はＴＬＢ１５１内の対応するエントリをクリアして、これらの物理位置に記憶されたページのマイグレーションの完了を示す（６１６）。また、マイグレーション制御ロジック１４８は、ステージングバッファ１５４への冗長な書き込みを無効にし、一貫性動作（例えば、ＴＬＢシュートダウン、ページテーブル１５２内の対応するエントリへの更新、及び、キャッシュ無効化）をトリガする（６１６）。図５の情報及び制御フローは単なる例示に過ぎず、データ依存性を維持する他の情報及び制御フローは、本明細書で説明するオーバヘッドが低減したページマイグレーション技術と一致することに留意されたい。結果として、１回の一貫性動作によって、複数のページマイグレーションに影響されるＴＬＢが更新されるので、複数のページマイグレーションに亘る一貫性動作のコストを償却することによって、システム性能を向上させる。
【００２３】
図３及び図６を参照すると、少なくとも１つの実施形態では、メモリ部分１１０は、ページマイグレーションのために最初に確保され得る未使用メモリ空間を有してもよい（例えば、例示的な情報及び制御フロー７００を参照）。最低レイテンシメモリ内の不十分な物理位置（物理位置Ｐ１）が未使用であり、ページマイグレーションに利用可能である場合（７０３）、マイグレーション制御ロジックは、上述した例示的な情報及び制御フロー６００の６０４に進む。十分な未使用メモリ空間が、１つ以上のページマイグレーションシナリオに対して、最低レイテンシメモリ内で利用可能である場合（７０３）、ステージングバッファ１５４は未使用である。マイグレーション制御ロジック１４８は、プロファイリングロジック１４４に記憶されたメモリアクセス情報を検索して、最も高いアクセス頻度（例えば、頻度Ｆ２）を有する高レイテンシメモリ（例えば、メモリ部分１１２，１１４又は１１６）内のページを識別する（７０４）。一実施形態では、頻度Ｆ２が所定の閾値ＴＨＲＥＳＨよりも大きい場合（７０６）、対応するページは、マイグレーションの適切な候補である。マイグレーション制御ロジック１４８が、マイグレーションのためのＮ個の適切な候補を識別することができない場合（７０６）、メモリアクセス情報のプロファイリングが継続され（６０２）、マイグレーション制御ロジック１４８は、少なくともＮ個の適切なマイグレーション候補について、プロファイリングロジック１４４に記憶されたメモリアクセス情報を定期的に検索し続ける。本明細書で説明する条件がＮページよりも少ないページで満たされる場合、Ｎページよりも少ないページが移行されてもよいことに留意されたい。マイグレーション制御ロジック１４８がマイグレーションのための適切な候補を識別することができない場合、メモリアクセス情報のプロファイリングが継続され（６０２）、マイグレーション制御ロジック１４８は、適切なマイグレーション候補について、プロファイリングロジック１４４に記憶されたメモリアクセス情報を定期的に検索し続ける。
【００２４】
マイグレーション制御ロジック１４８は、マイグレーションの候補を識別することに成功した後、最も低いレイテンシメモリ内の利用可能な未使用の物理位置（すなわち、物理位置Ｐ１）と共に、高レイテンシメモリ内の頻繁にアクセスされるデータ（すなわち、候補データＤ２）の高レイテンシメモリ内の候補ページの物理位置（すなわち、物理位置Ｐ２）のマイグレーションを開始する（７０８）。マイグレーションは、これらの物理位置に記憶されたページが移行されていることを示すように、リダイレクションテーブル１５０又はＴＬＢ１５１内の対応するエントリを書き込む（７１０）ことを含む。また、マイグレーション制御ロジック１４８は、高レイテンシメモリ（Ｐ２）のこれらの物理位置における候補ページへの任意の書き込みを可能にし、最低レイテンシメモリ（Ｐ１）内の対応するコピーへの冗長な書き込みを生じさせる（７１０）。マイグレーション制御ロジック１４８は、候補データＤ２を、高レイテンシメモリの物理位置Ｐ２から最低レイテンシメモリ内の物理位置Ｐ１にコピーする（７１２）。
【００２５】
マイグレーション制御ロジック１４８は、候補データがスワップされた後、リダイレクションテーブル１５０又はＴＬＢ１５１内の対応するエントリをクリアして、これらの物理位置に記憶されたページのマイグレーションの完了を示す（７１６）。また、マイグレーション制御ロジック１４８は、冗長な書き込みを無効にし、一貫性動作（例えば、ＴＬＢシュートダウン、ページテーブル１５２内の対応するエントリへの更新、及び、キャッシュ無効化）をトリガする（７１６）。図６の情報及び制御フローは単なる例示に過ぎず、データ依存性を維持する他の情報及び制御フローが、本明細書で説明するオーバヘッドが低減したページマイグレーション技術と一致することに留意されたい。結果として、１回の一貫性動作によって、Ｎ個のページマイグレーションに影響されるＴＬＢが更新されるので、複数のページマイグレーションに亘る一貫性動作のコストを償却することによって、システム性能を向上させる。
【００２６】
したがって、オーバヘッドが低減したページマイグレーションについての技術が説明されている。回路及び物理構造を、本発明の実施形態を説明する際に概して仮定したが、現代の半導体設計及び製造において、物理構造及び回路が、後続の設計、シミュレーション、検査、又は、製造段階での使用に適したコンピュータ可読記述形式で具現化可能であることがよく認識されるであろう。例示的な構成において別個のコンポーネントとして示される構造及び機能は、組み合わされた構造又はコンポーネントとして実装されてもよい。本発明の様々な実施形態は、本明細書に記載され、添付の特許請求の範囲に定義されるように、回路、回路システム、関連する方法、並びに、このような回路、システム及び方法の符号化（例えば、ＶＨＳＩＣハードウェア記述言語（ＶＨＤＬ）、Ｖｅｒｉｌｏｇ、ＧＤＳＩＩデータ、電子設計データ交換用フォーマット（ＥＤＩＦ）、及び／又は、Ｇｅｒｂｅｒファイル等）を有する有形のコンピュータ可読媒体を含むことが意図されている。また、コンピュータ可読媒体は、本発明を実施するために使用することができる命令及びデータを記憶してもよい。命令／データは、ハードウェア、ソフトウェア、ファームウェア、又は、これらの組み合わせに関連してもよい。
【００２７】
本明細書に示す本発明の説明は例示的なものであり、以下の特許請求の範囲に示す本発明の範囲を限定することを意図するものではない。例えば、本発明は、メモリのページが移行される実施形態において説明されてきたが、当業者は、本明細書の教示が他の固定領域サイズで利用可能であることを理解するであろう。また、本明細書に記載された技術は、マルチレベルメモリシステム（すなわち、キャッシュ階層と同様のデバイス階層を使用するメモリシステム）及びノンユニフォームメモリアクセスメモリシステムで利用することができる。本明細書で開示される実施形態の変形及び修正は、以下の特許請求の範囲に示される本発明の範囲から逸脱することなく、本明細書に示された説明に基づいて行うことができる。
【図１】
0006928123.tif 000002
【図２】
0006928123.tif 000003
【図３】
0006928123.tif 000004
【図４】
0006928123.tif 000005
【図５】
0006928123.tif 000006
【図６】
0006928123.tif 000007