【課題を解決するための手段】
【0006】
本発明の実施形態は、LLCとDRAM Bankとの間の協調パーティショニングポリシーであって、ポリシーをワーキングセットの特性と組み合わせる、協調パーティショニングポリシーを提供するメモリリソース最適化方法および装置を提供しており、プロセスまたはスレッドがメモリリソース共有時に互いに相互に影響を及ぼしてしまう問題を解決することを可能としている、その結果、コンピュータの全体的な性能を改善している。
【0007】
前述の目的を達成するために、以下の技術的解決手法を本発明の実施形態において使用している。
【0008】
第1の態様によれば、メモリリソース最適化方法を提供しており、方法は、
ワーキングセット内の各プログラムの性能データを取得するステップと、各プログラムの性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とを、プリセット閾値と比較することによって、各プログラムをカテゴリ分類するステップであって、各プログラムの性能データは、割り振られているラストレベルキャッシュ(LLC)リソースの容量に伴い各プログラムのプリセット性能指標が変化する際に生じる変動である、ステップと、
ワーキングセット内の各プログラムのカテゴリ分類およびプリセット決定ポリシーを踏まえて、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択するステップであって、ページカラーリングベースパーティショニングポリシーは、LLCとダイナミックランダムアクセスメモリバンク(DRAM Bank)との両方にページカラーリングベースパーティショニングを行うためのページカラーリングベース協調パーティショニングポリシーを含む、ステップと、
ワーキングセットに対応するページカラーリングベースパーティショニングポリシーをオペレーティングシステムカーネルに書き込むステップであって、オペレーティングシステムカーネルが対応するページカラーリングベースパーティショニング処理を行う、ステップとを含む。
【0009】
第1の態様に準拠している、第1の実施様態においては、ワーキングセット内の各プログラムの性能データを取得するステップは、
ページカラーリング技術を使用してN個の部分にLLCリソースをパーティショニングし、LLCリソースの最大容量の1/Nを1レベルとし、最初に各プログラムにLLCリソースの最大容量を割り振り、容量がLLCリソースの最大容量の1/Nに低減されるまで各調整において1レベルずつ各プログラムに割り振られているLLCリソースの容量を低減するステップと、
調整プロセスにおいて割り振られているLLCリソースの容量に伴い各プログラムのプリセット性能指標が変化する際に生じる変動を監視し、変動を各プログラムの性能データとして使用するステップであって、プリセット性能指標は各プログラムのスピードアップ率である、ステップとを含む。
【0010】
第1の態様または第1の態様の第1の可能な実施様態に準拠している、第2の可能な実施様態においては、各プログラムの性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とを、プリセット閾値と比較することによって、各プログラムをカテゴリ分類するステップは、
各プログラムのメモリアクセス周波数を得るために、各プログラムが実行プロセスのプリセット段階中にメインメモリにアクセスする回数をカウントするステップと、
各プログラムの性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とを、プリセット閾値と比較するステップであって、プリセット閾値は、第1の閾値、第2の閾値、および第3の閾値を含み、第1の閾値および第2の閾値は、性能データ閾値であり、第3の閾値は、メモリアクセス周波数閾値である、ステップと、
プログラムの性能データが第1の閾値より大きい場合には、プログラムを高デマンドタイプとしてカテゴリ分類するステップと、
プログラムの性能データが第1の閾値未満であるとともに第2の閾値より大きい場合には、プログラムを中デマンドタイプとしてカテゴリ分類するステップ、または、
プログラムの性能データが第2の閾値未満であるとともにメモリアクセス周波数が第3の閾値より大きい場合には、プログラムを低デマンド-集中タイプとしてカテゴリ分類するステップとを含む。
【0011】
第1の態様に準拠している、第3の可能な実施様態においては、
プリセット決定ポリシーはオペレーティングシステムカーネル内のパーティショニングポリシー決定木であり、パーティショニングポリシー決定木をアルゴリズム形式でオペレーティングシステムカーネル内に実装しており、ワーキングセット内の各プログラムのカテゴリ分類およびプリセット決定ポリシーを踏まえて、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択するステップは
、
オペレーティングシステムカーネルにワーキングセット内の各プログラムのカテゴリ分類を入力し、ワーキングセット内の各プログラムのカテゴリを踏まえて、対応するノードを求めてオペレーティングシステムカーネル内のパーティショニングポリシー決定木を探索して、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを決定するステップを含む。
【0012】
第1の態様の第3の可能な実施様態に準拠している、第4の可能な実施様態においては、ページカラーリングベースパーティショニングポリシーは、ページカラーリングベース協調パーティショニングポリシーとページカラーリングベース非協調パーティショニングポリシーとを含み、
ページカラーリングベース協調パーティショニングポリシーは、重複インデックスアドレスビットO-ビットをページカラーリングベースパーティショニングインデックスビットとして使用するパーティショニングポリシーであり、O-ビットは、物理ページフレーム内のLLCのインデックスビットとDRAM Bankのインデックスビットとの重複アドレスビットであるとともに、LLCとDRAM Bankとの両方に対してページカラーリングベースパーティショニングにインデックスを付けるために使用され、
ページカラーリングベース協調パーティショニングポリシーは、
O-ビットをパーティショニングインデックスビットとして使用し、LLCとDRAM Bankとを同数の等分の部分にパーティショニングする、カテゴリAマルチレベルメモリ協調パーティショニングポリシー(A-MMCP)と、
O-ビットおよびDRAM Bankのインデックスビットをパーティショニングインデックスビットとして使用し、LLCとDRAM Bankとを異なる数の等分の部分にパーティショニングし、DRAM Bankのパーティショニングされた等分の部分の数はLLCのパーティショニングされた等分の部分の数より大きい、カテゴリBマルチレベルメモリ協調パーティショニングポリシー(B-MMCP)と、
O-ビットおよびLLCのインデックスビットをパーティショニングインデックスビットとして使用し、LLCとDRAM Bankとを異なる数の等分の部分にパーティショニングし、DRAM Bankのパーティショニングされた等分の部分の数はLLCのパーティショニングされた等分の部分の数未満である、カテゴリCマルチレベルメモリ協調パーティショニングポリシー(C-MMCP)とを含み、
ページカラーリングベース
非協調パーティショニングポリシーは、O-ビットを使用しないパーティショニングポリシーであり、
LLCのインデックスビットを使用してLLCではカラーリングベースパーティショニングが行われ、DRAM Bankではカラーリングベースパーティショニングが行われない、Cache-Onlyポリシーと、
DRAM Bankのインデックスビットを使用してDRAM Bankではカラーリングベースパーティショニングが行われ、LLCではカラーリングベースパーティショニングが行われない、Bank-Onlyポリシーとを含む。
【0013】
第1の態様の第3の可能な実施様態または第1の態様の第4の可能な実施様態に準拠している、第5の可能な実施様態においては、ワーキングセット内の各プログラムのカテゴリを踏まえて、対応するノードを求めてオペレーティングシステムカーネル内のパーティショニングポリシー決定木を探索して、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを決定するステップは、
ワーキングセット内の各プログラムが属している各カテゴリが高デマンドタイプである場合には、Bank-Onlyポリシーを選択するステップと、
ワーキングセット内の各プログラムが属しているカテゴリ内に低デマンド-集中タイプが存在する場合にはワーキングセット内のプログラムの数をさらに決定し、プログラムの数がプロセッサのコアの数のN以下である場合にはA-MMCPを選択し、さもなければC-MMCPを選択するステップ、または、
ワーキングセット内の各プログラムが属しているカテゴリ内に中デマンドタイプが存在するとともに低デマンド-集中タイプが存在しない場合にはワーキングセット内のプログラムの数をさらに決定し、プログラムの数がプロセッサのコアの数のN以下である場合にはA-MMCPを選択し、さもなければB-MMCPを選択するステップとを含む。
【0014】
第2の態様によれば、メモリリソース最適化装置を提供しており、装置は、
ワーキングセット内の各プログラムの性能データを取得し、各プログラムの性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とを、プリセット閾値と比較することによって、各プログラムをカテゴリ分類するように構成される、フロントエンドユニットであって、各プログラムの性能データは、割り振られているラストレベルキャッシュ(LLC)リソースの容量に伴い各プログラムのプリセット性能指標が変化する際に生じる変動である、フロントエンドユニットと、
ワーキングセット内の各プログラムのカテゴリ分類およびプリセット決定ポリシーを踏まえて、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択するように構成される、決定ユニットであって、ページカラーリングベースパーティショニングポリシーは、LLCとダイナミックランダムアクセスメモリバンク(DRAM Bank)との両方にページカラーリングベースパーティショニングを行うためのページカラーリングベース協調パーティショニングポリシーを含む、決定ユニットと、
ワーキングセットに対応するページカラーリングベースパーティショニングポリシーをオペレーティングシステムカーネルに書き込むように構成される、パーティショニングユニットであって、オペレーティングシステムカーネルが対応するページカラーリングベースパーティショニング処理を行う、パーティショニングユニットとを備える。
【0015】
第2の態様に準拠している、第1の実施様態においては、フロントエンドユニットは、データ収集ユニットを備え、データ収集ユニットは、
ページカラーリング技術を使用してN個の部分にLLCリソースをパーティショニングし、LLCリソースの最大容量の1/Nを1レベルとし、最初に各プログラムにLLCリソースの最大容量を割り振り、容量がLLCリソースの最大容量の1/Nに低減されるまで各調整において1レベルずつ各プログラムに割り振られているLLCリソースの容量を低減し、
調整プロセスにおいて割り振られているLLCリソースの容量に伴い、各プログラムのプリセット性能指標であって、各プログラムのスピードアップ率である、プリセット性能指標が変化する際に生じる変動を監視し、変動を各プログラムの性能データとして使用するように特に構成される。
【0016】
第2の態様または第2の態様の第1の可能な実施様態に準拠している、第2の可能な実施様態においては、フロントエンドユニットは、カテゴリ分類ユニットをさらに備え、カテゴリ分類ユニットは、
各プログラムのメモリアクセス周波数を得るために、各プログラムが実行プロセスのプリセット段階中にメインメモリにアクセスする回数をカウントし、
各プログラムの性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とを、プリセット閾値であって、第1の閾値、第2の閾値、および第3の閾値を含み、第1の閾値および第2の閾値が性能データ閾値であり、第3の閾値がメモリアクセス周波数閾値である、プリセット閾値と比較し、
プログラムの性能データが第1の閾値より大きい場合には、プログラムを高デマンドタイプとしてカテゴリ分類する、
プログラムの性能データが第1の閾値未満であるとともに第2の閾値より大きい場合には、プログラムを中デマンドタイプとしてカテゴリ分類する、または、
プログラムの性能データが第2の閾値未満であるとともにメモリアクセス周波数が第3の閾値より大きい場合には、プログラムを低デマンド-集中タイプとしてカテゴリ分類するように特に構成される。
【0017】
第2の態様に準拠している、第3の可能な実施様態においては、プリセット決定ポリシーはオペレーティングシステムカーネル内のパーティショニングポリシー決定木であり、パーティショニングポリシー決定木をアルゴリズム形式でオペレーティングシステムカーネル内に実装しており、決定ユニットは、
オペレーティングシステムカーネルにワーキングセット内の各プログラムのカテゴリ分類を入力し、ワーキングセット内の各プログラムのカテゴリを踏まえて、対応するノードを求めてオペレーティングシステムカーネル内のパーティショニングポリシー決定木を探索して、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを決定するように特に構成される。
【0018】
第2の態様の第3の可能な実施様態に準拠している、第4の可能な実施様態においては、ページカラーリングベースパーティショニングポリシーは、ページカラーリングベース協調パーティショニングポリシーとページカラーリングベース非協調パーティショニングポリシーとを含み、
ページカラーリングベース協調パーティショニングポリシーは、重複インデックスアドレスビットO-ビットをページカラーリングベースパーティショニングインデックスビットとして使用するパーティショニングポリシーであり、O-ビットは、物理ページフレーム内のLLCのインデックスビットとDRAM Bankのインデックスビットとの重複アドレスビットであるとともに、LLCとDRAM Bankとの両方に対してページカラーリングベースパーティショニングにインデックスを付けるために使用され、
ページカラーリングベース協調パーティショニングポリシーは、
O-ビットをパーティショニングインデックスビットとして使用し、LLCとDRAM Bankとを同数の等分の部分にパーティショニングする、カテゴリAマルチレベルメモリ協調パーティショニングポリシー(A-MMCP)と、
O-ビットおよびDRAM Bankのインデックスビットをパーティショニングインデックスビットとして使用し、LLCとDRAM Bankとを異なる数の等分の部分にパーティショニングし、DRAM Bankのパーティショニングされた等分の部分の数はLLCのパーティショニングされた等分の部分の数より大きい、カテゴリBマルチレベルメモリ協調パーティショニングポリシー(B-MMCP)と、
O-ビットおよびLLCのインデックスビットをパーティショニングインデックスビットとして使用し、LLCとDRAM Bankとを異なる数の等分の部分にパーティショニングし、DRAM Bankのパーティショニングされた等分の部分の数はLLCのパーティショニングされた等分の部分の数未満である、カテゴリCマルチレベルメモリ協調パーティショニングポリシー(C-MMCP)とを含み、
ページカラーリングベース
非協調パーティショニングポリシーは、O-ビットを使用しないパーティショニングポリシーであり、
LLCのインデックスビットを使用してLLCではカラーリングベースパーティショニングが行われ、DRAM Bankではカラーリングベースパーティショニングが行われない、Cache-Onlyポリシーと、
DRAM Bankのインデックスビットを使用してDRAM Bankではカラーリングベースパーティショニングが行われ、LLCではカラーリングベースパーティショニングが行われない、Bank-Onlyポリシーとを含む。
【0019】
第2の態様の第3の可能な実施様態または第2の態様の第4の可能な実施様態に準拠している、第5の可能な実施様態においては、決定ユニットはさらに、
ワーキングセット内の各プログラムが属している各カテゴリが高デマンドタイプである場合には、Bank-Onlyポリシーを選択し、
ワーキングセット内の各プログラムが属しているカテゴリ内に低デマンド-集中タイプが存在する場合にはワーキングセット内のプログラムの数をさらに決定し、プログラムの数がプロセッサのコアの数のN以下である場合にはA-MMCPを選択し、さもなければC-MMCPを選択する、または、
ワーキングセット内の各プログラムが属しているカテゴリ内に中デマンドタイプが存在するとともに低デマンド-集中タイプが存在しない場合にはワーキングセット内のプログラムの数をさらに決定し、プログラムの数がプロセッサのコアの数のN以下である場合にはA-MMCPを選択し、さもなければB-MMCPを選択するように特に構成される。
【0020】
本発明の実施形態において提供したメモリリソース最適化方法および装置によれば、ページカラーリング技術を使用してLLCリソースをパーティショニングし、ワーキングセット内の各プログラムの性能データを取得し、メモリアクセス周波数を踏まえて各プログラムのカテゴリを取得し、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを各プログラムのカテゴリに従って選択し、ページカラーリングベースパーティショニングポリシーをオペレーティングシステムカーネルに書き込み、対応する
ページカラーリングベースパーティショニング処理を完了する。このように、LLCとDRAM Bankとの間の協調パーティショニングポリシーはワーキングセットの特性を踏まえて実装されており、メモリリソースについてのプロセスまたはスレッドの相互干渉を低減することおよび除去さえすることも可能としており、それによって、コンピュータの全体的な性能を改善している。
【0021】
本発明の実施形態におけるまたは従来技術における技術的解決手法をより明確に記載するために、実施形態または従来技術を記載するために必要となる添付の図面を以下に簡単に紹介する。以下の記載における添付の図面が本発明の一部の実施形態を示しているにすぎず、当業者が創造的努力なしにこれらの添付の図面から他の図面をさらに導出し得ることは明らかであろう。