特許第6143277号(P6143277)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 華為技術有限公司の特許一覧

<>
  • 特許6143277-メモリリソース最適化方法および装置 図000002
  • 特許6143277-メモリリソース最適化方法および装置 図000003
  • 特許6143277-メモリリソース最適化方法および装置 図000004
  • 特許6143277-メモリリソース最適化方法および装置 図000005
  • 特許6143277-メモリリソース最適化方法および装置 図000006
  • 特許6143277-メモリリソース最適化方法および装置 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6143277
(24)【登録日】2017年5月19日
(45)【発行日】2017年6月7日
(54)【発明の名称】メモリリソース最適化方法および装置
(51)【国際特許分類】
   G06F 12/08 20160101AFI20170529BHJP
   G06F 12/02 20060101ALI20170529BHJP
【FI】
   G06F12/08 523B
   G06F12/08 543B
   G06F12/02 510A
   G06F12/08 523C
【請求項の数】16
【全頁数】24
(21)【出願番号】特願2016-525869(P2016-525869)
(86)(22)【出願日】2014年10月22日
(65)【公表番号】特表2016-540290(P2016-540290A)
(43)【公表日】2016年12月22日
(86)【国際出願番号】CN2014089194
(87)【国際公開番号】WO2015058695
(87)【国際公開日】20150430
【審査請求日】2016年5月31日
(31)【優先権主張番号】201310503238.1
(32)【優先日】2013年10月23日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
(74)【代理人】
【識別番号】100146835
【弁理士】
【氏名又は名称】佐伯 義文
(74)【代理人】
【識別番号】100140534
【弁理士】
【氏名又は名称】木内 敬二
(72)【発明者】
【氏名】▲劉▼ 磊
(72)【発明者】
【氏名】▲呉▼ 承勇
(72)【発明者】
【氏名】▲フェン▼ ▲シャオ▼兵
【審査官】 後藤 彰
(56)【参考文献】
【文献】 米国特許出願公開第2013/0275649(US,A1)
【文献】 特開2000−339220(JP,A)
【文献】 特開2006−318477(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/08
(57)【特許請求の範囲】
【請求項1】
メモリリソース最適化方法であって、
ワーキングセット内の各プログラムの性能データを取得するステップと、
各プログラムの前記性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とに従い、各プログラムをカテゴリ分類するステップであって、各プログラムの前記性能データは、割り振られているラストレベルキャッシュ(LLC)のリソースの容量に伴い各プログラムのプリセット性能指標が変化する際に生じる変動である、ステップと、
前記ワーキングセット内の各プログラムのカテゴリ分類およびプリセット決定ポリシーを踏まえて、前記ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択するステップであって、前記ページカラーリングベースパーティショニングポリシーは、前記LLCとダイナミックランダムアクセスメモリバンク(DRAM Bank)との両方にページカラーリングベースパーティショニングを行うためのページカラーリングベース協調パーティショニングポリシーを含む、ステップと、
前記ワーキングセットに対応する前記ページカラーリングベースパーティショニングポリシーをオペレーティングシステムカーネルに書き込むステップであって、前記オペレーティングシステムカーネルが対応するページカラーリングベースパーティショニング処理を行う、ステップとを含む、方法。
【請求項2】
ワーキングセット内の各プログラムの性能データを取得するステップは、
N個の部分に前記LLCリソースをパーティショニングし、前記LLCリソースの最大容量の1/Nを1レベルとし、最初に各プログラムに前記LLCリソースの前記最大容量を割り振り、前記容量が前記LLCリソースの前記最大容量の1/Nに低減されるまで各調整において1レベルずつ各プログラムに割り振られている前記LLCリソースの前記容量を低減するステップと、
調整プロセスにおいて前記割り振られているLLCリソースの前記容量に伴い各プログラムの前記プリセット性能指標が変化する際に生じる変動を監視し、前記変動を各プログラムの前記性能データとして使用するステップであって、前記プリセット性能指標は各プログラムのスピードアップ率である、ステップとを含む、請求項1に記載の方法。
【請求項3】
前記ページカラーリングベース協調パーティショニングポリシーは、重複インデックスアドレスビット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)とを含む、請求項1または2に記載の方法。
【請求項4】
各プログラムの前記性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とに従い、各プログラムをカテゴリ分類するステップは、
各プログラムの前記メモリアクセス周波数を得るために、各プログラムが実行プロセスのプリセット段階中にメインメモリにアクセスする回数をカウントするステップと、
各プログラムの前記性能データをプリセット性能データ閾値と比較するステップであって、前記性能データ閾値は第1の閾値および第2の閾値を含み、前記第1の閾値は前記第2の閾値より大きい、ステップと、
プログラムの性能データが前記第1の閾値より大きい場合には、前記プログラムを高デマンドタイプとしてカテゴリ分類するステップと、
プログラムの性能データが前記第1の閾値未満であるとともに前記第2の閾値より大きい場合には、前記プログラムを中デマンドタイプとしてカテゴリ分類するステップ、または、
プログラムの性能データが前記第2の閾値未満であるとともに前記プログラムのメモリアクセス周波数がプリセットメモリアクセス周波数閾値より大きい場合には、前記プログラムを低デマンド-集中タイプとしてカテゴリ分類するステップとを含む、請求項3に記載の方法。
【請求項5】
前記ワーキングセット内の各プログラムのカテゴリ分類およびプリセット決定ポリシーを踏まえて、前記ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択するステップは、
前記ワーキングセット内の各プログラムが属しているカテゴリ内に前記低デマンド-集中タイプが存在する場合には前記ワーキングセット内のプログラムの数をさらに決定し、前記プログラムの数がプロセッサのコアの数のN以下である場合には前記A-MMCPを選択し、さもなければ前記C-MMCPを選択するステップ、または、
前記ワーキングセット内の各プログラムが属しているカテゴリ内に前記中デマンドタイプが存在するとともに低デマンド-集中タイプが存在しない場合には前記ワーキングセット内のプログラムの数をさらに決定し、前記プログラムの数がプロセッサのコアの数のN以下である場合には前記A-MMCPを選択し、さもなければ前記B-MMCPを選択するステップを含む、請求項4に記載の方法。
【請求項6】
前記ページカラーリングベースパーティショニングポリシーは、ページカラーリングベース非協調パーティショニングポリシーをさらに含み、前記ページカラーリングベース非協調パーティショニングポリシーは、前記O-ビットを使用しないパーティショニングポリシーであり、前記ページカラーリングベース非協調パーティショニングポリシーは、
前記LLCの前記インデックスビットを使用して前記LLCではページカラーリングベースパーティショニングが行われ、前記DRAM Bankではカラーリングベースパーティショニングが行われない、Cache-Onlyポリシーと、
前記DRAM Bankの前記インデックスビットを使用して前記DRAM Bankではカラーリングベースパーティショニングが行われ、前記LLCではカラーリングベースパーティショニングが行われない、Bank-Onlyポリシーとを含み、
前記ワーキングセット内の各プログラムのカテゴリ分類およびプリセット決定ポリシーを踏まえて、前記ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択するステップは、
前記ワーキングセット内の各プログラムが属している各カテゴリが前記高デマンドタイプである場合には、前記Bank-Onlyポリシーを選択するステップをさらに含む、請求項4に記載の方法。
【請求項7】
前記プリセット決定ポリシーは前記オペレーティングシステムカーネル内のパーティショニングポリシー決定木であり、前記パーティショニングポリシー決定木をアルゴリズム形式で前記オペレーティングシステムカーネル内に実装しており、
前記ワーキングセット内の各プログラムのカテゴリ分類およびプリセット決定ポリシーを踏まえて、前記ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択するステップは、
前記オペレーティングシステムカーネルに前記ワーキングセット内の各プログラムの前記カテゴリ分類を入力し、前記ワーキングセット内の各プログラムのカテゴリを踏まえて、対応するノードを求めて前記オペレーティングシステムカーネル内の前記パーティショニングポリシー決定木を探索して、前記ワーキングセットに対応する前記ページカラーリングベースパーティショニングポリシーを決定するステップを含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
メモリリソース最適化装置であって、
ワーキングセット内の各プログラムの性能データを取得するように構成される、データ収集ユニットと、
各プログラムの前記性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とに従い、各プログラムをカテゴリ分類するように構成される、カテゴリ分類ユニットであって、各プログラムの前記性能データは、割り振られているラストレベルキャッシュ(LLC)のリソースの容量に伴い各プログラムのプリセット性能指標が変化する際に生じる変動である、カテゴリ分類ユニットと、
前記ワーキングセット内の各プログラムのカテゴリ分類およびプリセット決定ポリシーを踏まえて、前記ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択するように構成される、決定ユニットであって、前記ページカラーリングベースパーティショニングポリシーは、前記LLCとダイナミックランダムアクセスメモリバンク(DRAM Bank)との両方にページカラーリングベースパーティショニングを行うためのページカラーリングベース協調パーティショニングポリシーを含む、決定ユニットと、
前記ワーキングセットに対応する前記ページカラーリングベースパーティショニングポリシーをオペレーティングシステムカーネルに書き込むように構成される、パーティショニングユニットであって、前記オペレーティングシステムカーネルが対応するページカラーリングベースパーティショニング処理を行う、パーティショニングユニットとを備える、装置。
【請求項9】
前記データ収集ユニットは、
N個の部分に前記LLCリソースをパーティショニングし、前記LLCリソースの最大容量の1/Nを1レベルとし、最初に各プログラムに前記LLCリソースの前記最大容量を割り振り、前記容量が前記LLCリソースの前記最大容量の1/Nに低減されるまで各調整において1レベルずつ各プログラムに割り振られている前記LLCリソースの前記容量を低減し、
調整プロセスにおいて前記割り振られているLLCリソースの前記容量に伴い、各プログラムの前記プリセット性能指標であって、各プログラムのスピードアップ率である、プリセット性能指標が変化する際に生じる変動を監視し、前記変動を各プログラムの前記性能データとして使用するように特に構成される、請求項8に記載の装置。
【請求項10】
前記ページカラーリングベース協調パーティショニングポリシーは、重複インデックスアドレスビット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)とを含む、請求項8または9に記載の装置。
【請求項11】
前記カテゴリ分類ユニットは、
各プログラムの前記メモリアクセス周波数を得るために、各プログラムが実行プロセスのプリセット段階中にメインメモリにアクセスする回数をカウントし、
各プログラムの前記性能データをプリセット性能データ閾値であって、第1の閾値および第2の閾値を含み、前記第1の閾値が前記第2の閾値より大きい、性能データ閾値と比較し、
プログラムの性能データが前記第1の閾値より大きい場合には、前記プログラムを高デマンドタイプとしてカテゴリ分類する、
プログラムの性能データが前記第1の閾値未満であるとともに前記第2の閾値より大きい場合には、前記プログラムを中デマンドタイプとしてカテゴリ分類する、または、
プログラムの性能データが前記第2の閾値未満であるとともに前記プログラムのメモリアクセス周波数がプリセットメモリアクセス周波数閾値より大きい場合には、前記プログラムを低デマンド-集中タイプとしてカテゴリ分類するように特に構成される、請求項10に記載の装置。
【請求項12】
前記決定ユニットは、
前記ワーキングセット内の各プログラムが属しているカテゴリ内に前記低デマンド-集中タイプが存在する場合には前記ワーキングセット内のプログラムの数をさらに決定し、前記プログラムの数がプロセッサのコアの数のN以下である場合には前記A-MMCPを選択し、さもなければ前記C-MMCPを選択する、または、
前記ワーキングセット内の各プログラムが属しているカテゴリ内に前記中デマンドタイプが存在するとともに低デマンド-集中タイプが存在しない場合には前記ワーキングセット内のプログラムの数をさらに決定し、前記プログラムの数がプロセッサのコアの数のN以下である場合には前記A-MMCPを選択し、さもなければ前記B-MMCPを選択するように特に構成される、請求項11に記載の装置。
【請求項13】
前記ページカラーリングベースパーティショニングポリシーは、ページカラーリングベース非協調パーティショニングポリシーをさらに含み、前記ページカラーリングベース非協調パーティショニングポリシーは、前記O-ビットを使用しないパーティショニングポリシーであり、前記ページカラーリングベース非協調パーティショニングポリシーは、
前記LLCの前記インデックスビットを使用して前記LLCではカラーリングベースパーティショニングが行われ、前記DRAM Bankではカラーリングベースパーティショニングが行われない、Cache-Onlyポリシーと、
前記DRAM Bankの前記インデックスビットを使用して前記DRAM Bankではカラーリングベースパーティショニングが行われ、前記LLCではカラーリングベースパーティショニングが行われない、Bank-Onlyポリシーとを含み、
前記決定ユニットは、前記ワーキングセット内の各プログラムが属している各カテゴリが前記高デマンドタイプである場合には、前記Bank-Onlyポリシーを選択するようにさらに構成される、請求項11に記載の装置。
【請求項14】
前記プリセット決定ポリシーは前記オペレーティングシステムカーネル内のパーティショニングポリシー決定木であり、前記パーティショニングポリシー決定木をアルゴリズム形式で前記オペレーティングシステムカーネル内に実装しており、
前記決定ユニットは、
前記オペレーティングシステムカーネルに前記ワーキングセット内の各プログラムの前記カテゴリ分類を入力し、前記ワーキングセット内の各プログラムのカテゴリを踏まえて、対応するノードを求めて前記オペレーティングシステムカーネル内の前記パーティショニングポリシー決定木を探索して、前記ワーキングセットに対応する前記ページカラーリングベースパーティショニングポリシーを決定するように特に構成される、請求項8から13のいずれか一項に記載の装置。
【請求項15】
割り振られているラストレベルキャッシュLLCと、ダイナミックランダムアクセスメモリバンク(DRAM Bank)と、前記LLCおよび前記DRAM Bankに接続されているプロセッサとを備えるコンピュータシステムであって、前記プロセッサは、命令が実行されるコンピュータを起動し、請求項1から7のいずれか一項に記載の方法を実行するように構成される、コンピュータシステム。
【請求項16】
プログラムコードが記憶されているコンピュータ可読記憶媒体を備えるコンピュータプログラムであって、前記プログラムコードに含まれている命令が、請求項1から7のいずれか一項に記載の方法を実行するために使用される、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ分野に関し、詳細には、メモリリソース最適化方法および装置に関する。
【背景技術】
【0002】
今日、マルチコア高性能コンピュータ(Multi-core High Performance Computer)は、より広範囲にわたって適用されている。さらに、プロセッサの計算ユニット(コア)の数が増大し続けるに伴い、複数のコア間のメモリアクセスの競合現象が問題をさらに複雑化している。並列実行の任意の期間中に、異なるコアからのメモリアクセス要求がグローバルメモリリソースへのメモリアクセスに対して競合をする場合があり、メモリコントローラ(Memory Controller、MC)、帯域幅(Bandwidth)、およびダイナミックランダムアクセスメモリバンク(DRAM Bank)などのリソースについてのコンフリクトをさらにもたらすことになり、結果として、リソースの利用に影響を及ぼすことになる。
【0003】
メインメモリへのアクセスを一例として使用する。通常は、単一のトランジスタがストレージユニットとして使用され、N*Mストレージユニットがストレージマトリクスを形成し、いくつかのストレージマトリクスがバンク(Bank)を構成する。各Bankは、行バッファ(Row-Buffer)を有しており、データにアクセスしようとする際には、データを行バッファに移行した後のみにターゲット行にあるデータを読み出すことができる。最新のDRAMシステムは複数のBankを通常は使用しており、それぞれのメモリアクセス要求が同時に独立して処理される。しかしながら、異なるプロセスまたはスレッドからの2つのメモリアクセス要求が同一のDRAM Bankの異なる行にアクセスする場合には、DRAM Bankではコンフリクト(または、行バッファコンフリクトと称する)が生じ得るし、メモリアクセス遅延が増大することになる。キャッシュ(Cache)は、計算ユニットとメインメモリとの間のギャップを緩和するために使用される。キャッシュがメインメモリよりも計算ユニットに近接しているため、キャッシュは、より容易に計算性能に影響を及ぼす。既存のプロセッサは、複数のコア間でラストレベルキャッシュ(Last Level Cache、LLC)を共有する構造を基本的に用いている。しかしながら、LLCも、複数の並列プログラムまたはスレッド間で激しく競合することになる。適切な管理ポリシーを使用していない場合には、深刻な性能低下を引き起こすことは非常に容易である。
【0004】
従来技術では、LLCまたはDRAM Bankをページカラーリング(Page-Coloring)を使用してパーティショニングしている。ページカラーリングベースLLCパーティショニングに関しては、物理アドレスにおいてキャッシュセット(Cache Set)のインデックスビットにページカラーリングを行う方式でキャッシュリソースをいくつかの独立した部分にパーティショニングし、それらの部分を個々に異なるスレッドに割り当てる。したがって、キャッシュの共有によるスレッド間競合はなくなる。LLCパーティショニングと同様に、DRAM Bankのインデックスビットも物理アドレスに反映することができ、DRAM Bankもこれらのアドレスビットに従ってカラーリングを行うことによりいくつかの独立したグループにパーティショニングすることができる、したがって、DRAM Bankにおけるプログラム間競合はなくなる。いくつかのワーキングセットについては、比較的良好な性能向上効果を達成することができる。
【0005】
しかしながら、従来のページカラーリング技術をあるレベルにおけるリソースをパーティショニングするために使用している場合には、別のレベルにおけるリソースの使用に悪影響が生じる。例えば、LLCパーティショニングに関連する動作はDRAM Bankリソースの性能向上に制約があり、同様に、DRAM Bankパーティショニングに関連する動作もLLCリソースの性能に影響を及ぼす。加えて、最新のコンピュータシステムの実行は様々なワーキングセットを必要とするので、あるレベルにおけるリソースに関する既存のページカラーリングベースパーティショニング機構では異なるワーキングセットの特性に調和させることが困難となり、結果として、最適なパーティショニング効果を達成することができず、コンピュータの全体的な性能向上は制限されることになる。
【発明の概要】
【課題を解決するための手段】
【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】
本発明の実施形態におけるまたは従来技術における技術的解決手法をより明確に記載するために、実施形態または従来技術を記載するために必要となる添付の図面を以下に簡単に紹介する。以下の記載における添付の図面が本発明の一部の実施形態を示しているにすぎず、当業者が創造的努力なしにこれらの添付の図面から他の図面をさらに導出し得ることは明らかであろう。
【図面の簡単な説明】
【0022】
図1】本発明の実施形態による、メモリリソース最適化方法の概略フローチャートである。
図2】本発明の実施形態による、別のメモリリソース最適化方法の概略フローチャートである。
図3】本発明の実施形態による、プログラムカテゴリ分類効果の概略図である。
図4】本発明の実施形態による、メモリリソース最適化装置の概略構造図1である。
図5】本発明の実施形態による、メモリリソース最適化装置の概略構造図2である。
図6】本発明の実施形態による、メモリリソース最適化装置の概略構造図3である。
【発明を実施するための形態】
【0023】
本発明の実施形態における添付の図面を参照して、本発明の実施形態における技術的解決手法を以下に明確かつ完全に記載する。記載した実施形態が本発明の実施形態のすべてではなく一部にすぎないことは明らかであろう。創造的努力なしに本発明の実施形態に基づいて当業者によって得られる他の実施形態のすべては、本発明の保護範囲に含まれるものとする。
【0024】
本発明の実施形態は、メモリリソース最適化方法を提供する。図1に示したように、方法は以下のことを含む。
【0025】
S101: ワーキングセット内の各プログラムの性能データを取得し、各プログラムの性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とを、プリセット閾値と比較することによって、各プログラムをカテゴリ分類する、ここで、各プログラムの性能データは、割り振られているラストレベルキャッシュ(LLC)リソースの容量に伴い各プログラムのプリセット性能指標が変化する際に生じる変動である。
【0026】
S102: ワーキングセット内の各プログラムのカテゴリ分類およびプリセット決定ポリシーを踏まえて、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択する、ここで、ページカラーリングベースパーティショニングポリシーは、LLCとダイナミックランダムアクセスメモリバンク(DRAM Bank)との両方にページカラーリングベースパーティショニングを行うためのページカラーリングベース協調パーティショニングポリシーを含む。
【0027】
S103: ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを対応するページカラーリングベースパーティショニング処理を行うオペレーティングシステムカーネルに書き込む。
【0028】
本発明の本実施形態において提供したメモリリソース最適化方法によれば、ワーキングセット内の各プログラムの性能データを取得し、メモリアクセス周波数を踏まえて各プログラムのカテゴリを取得し、ワーキングセットのページカラーリングベースパーティショニングポリシーを各プログラムのカテゴリに従って選択し、ページカラーリングベースパーティショニングポリシーをオペレーティングシステムカーネルに書き込み、対応するページカラーリングベースパーティショニング処理を完了する。このように、LLCとDRAM Bankとの間の協調パーティショニングポリシーはワーキングセットの特性を踏まえて実装されており、メモリリソースについてのプロセスまたはスレッドの相互干渉を低減することおよび除去さえすることも可能としており、それによって、コンピュータの全体的な性能を改善している。
【0029】
当業者が本発明の実施形態によって提供される技術的解決手法をより明確に理解することができるようにするために、本発明の実施形態によって提供される別のメモリリソース最適化方法を、具体的な例を使用して詳細に以下に記載する。図2に示したように、方法は以下のことを含む。
【0030】
S201: ワーキングセット内の各プログラムの性能データを取得する。
【0031】
具体的には、ページカラーリング技術を使用してLLCリソースをパーティショニングし、LLCリソースがN個の部分にパーティショニングされ、LLCリソースの最大容量の1/Nを1レベルとする。LLCリソースの最大容量が最初に各プログラムに割り振られ、各プログラムに割り振られているLLCリソースの容量がLLCリソースの最大容量の1/Nに低減されるまで各プログラムに割り振られているLLCリソースの容量は各調整において1レベルずつ低減され、調整プロセスにおいて割り振られているLLCリソースの容量に伴い各プログラムのプリセット性能指標が変化する際に生じる変動を監視し、変動を各プログラムの性能データとして使用する。
【0032】
一例として、クアッドコアプロセッサにおいては、Nは8であってもよく、LLCリソースの最大容量の1/8を1レベルとし、ワーキングセット内の各プログラムに割り振られているLLCリソースの容量が調整され、各プログラムに割り振られているLLCリソースの容量がLLCリソースの最大容量の1/8に低減されるまでワーキングセット内の各プログラムに割り振られているLLCリソースの容量は各調整において1レベルずつ低減され、前述の調整プロセスにおいて割り振られているLLCリソースの容量に伴い各プログラムのプリセット性能指標が変化する際に生じる変動を監視する。
【0033】
各プログラムのプリセット性能指標は、正規化スピードアップ率であってもよく、全ての調整プロセスにおいて割り振られているLLCリソースの容量に伴い各プログラムの正規化スピードアップ率が変化する際に生じる変動を取得し、変動を各プログラムの性能データとして使用する。
【0034】
S202: ワーキングセット内の各プログラムの、統計収集により得られた、メモリアクセス周波数を踏まえて、各プログラムが属しているカテゴリを決定する。
【0035】
具体的には、ハードウェア性能カウンタは、各プログラムのメモリアクセス周波数を得るために、各プログラムがプリセット段階中にまたは実行プロセスの期間中にメインメモリにアクセスする回数をカウントするために使用される。
【0036】
その後、各プログラムが属しているカテゴリが、各プログラムの性能データおよび各プログラムのメモリアクセス周波数を踏まえ、プリセット閾値に従って、決定される。
【0037】
プリセット閾値は、第1の閾値、第2の閾値、および第3の閾値を含む、ここで、第1の閾値および第2の閾値は性能データ閾値であり、第3の閾値はメモリアクセス周波数閾値である。
【0038】
一例として、性能データは、各プログラムに割り振られているLLCリソースの容量に伴い各プログラムの正規化スピードアップ率が変化する際に生じる変動である。各プログラムに割り振られているLLCの容量が、調整され、LLCの最大容量からLLCの最大容量の1/Nまで低減され、クアッドコアコンピュータを例とし、Nが8であるプロセスにおいては、図3に示したように、各プログラムに割り振られているLLCリソースの容量に伴い各プログラムの正規化スピードアップ率が変化する曲線が得られる。したがって、主なカテゴリ分類方式は以下の通りであることが分かっていただけよう。
プログラムの正規化スピードアップ率が第1の閾値より大きい場合には、LLCリソースの容量が低減する際のそのようなプログラムの性能における低下は非常に大きい、すなわち、そのようなプログラムの性能は割り振られているLLCリソースの容量により大きく影響を受けると理解でき、そのようなプログラムを高デマンドタイプ031としてカテゴリ分類する、
プログラムの正規化スピードアップ率が第1の閾値未満であるとともに第2の閾値より大きい場合には、LLCリソースの容量が低減する際のそのようなプログラムの性能における低下は中程度である、すなわち、そのようなプログラムの性能は割り振られているLLCリソースの容量により中程度の影響を受けると理解でき、そのようなプログラムを中デマンドタイプ032としてカテゴリ分類する、または、
プログラムの正規化スピードアップ率が第2の閾値未満であるとともにメモリアクセス周波数が第3の閾値より大きい場合には、LLCリソースの容量が低減する際のそのようなプログラムの性能の変動範囲は非常に小さく、プログラムのメモリアクセス周波数が高い、すなわち、そのようなプログラムの性能は割り振られているLLCリソースの容量により比較的わずかに影響を受けると理解でき、プログラムは低デマンドタイプ033となる、しかしながら、そのようなプログラムの性能はメインメモリの容量により大きく影響を受けるため、プログラムはメモリアクセス集中タイプとなる、したがって、そのようなプログラムを低デマンド-集中タイプ(low demand and intensive type)としてカテゴリ分類する。
【0039】
さらに、一例として、前述の高デマンドタイプ031は、ラストレベルキャッシュフィッティング(LLC Fitting、LLCF)およびラストレベルキャッシュフレンドリ(LLC Friendly、LLCFR)を特に含んでいてもよいし、前述の中デマンドタイプ032は、ラストレベルキャッシュスイング(LLC Swing、LLCS)を特に含んでいてもよいし、前述の低デマンドタイプ033は、コアキャッシュフィッティング(Core Cache Fitting、CCF)およびLLCスラッシング(LLC Thrashing、LLCT)を特に含んでいてもよい。
【0040】
S203: ワーキングセット内の各プログラムが属しているカテゴリに従ってワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択する。
【0041】
具体的には、ワーキングセット内の各プログラムが属しているカテゴリがオペレーティングシステムカーネルに書き込まれ、その後、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーがプリセット決定ポリシーに従って選択される。
【0042】
ワーキングセット内の各プログラムが属しているカテゴリが、/proc機構を使用してオペレーティングシステムカーネルに書き込まれてもよい。プリセット決定ポリシーはオペレーティングシステムカーネル内のパーティショニングポリシー決定木であってもよく、パーティショニングポリシー決定木をアルゴリズム形式でオペレーティングシステムカーネル内に実装している。
【0043】
具体的には、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを決定するために、ワーキングセット内の各プログラムのカテゴリ分類がオペレーティングシステムカーネルに書き込まれ、オペレーティングシステムカーネル内のパーティショニングポリシー決定木がワーキングセット内の各プログラムのカテゴリを踏まえて対応するノードを求めて探索される。ページカラーリングベースパーティショニングポリシーは、ページカラーリングベース協調パーティショニングポリシーと、ページカラーリングベース非協調パーティショニングポリシーとを含む。
【0044】
ページカラーリングベース協調パーティショニングポリシーは、重複インデックスアドレスビットO-ビットをページカラーリングベースパーティショニングインデックスビットとして使用するパーティショニングポリシーであり、O-ビットは、物理ページフレーム内のLLCのインデックスビットとDRAM Bankのインデックスビットとの重複アドレスビットであるとともに、LLCとDRAM Bankとの両方に対してページカラーリングベースパーティショニングにインデックスを付けるために使用される。
【0045】
ページカラーリングベース協調パーティショニングポリシーは、
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)とを含む。
【0046】
ページカラーリングベース協調パーティショニングポリシーは、O-ビットを使用しないパーティショニングポリシーであり、
LLCのインデックスビットを使用してLLCではカラーリングベースパーティショニングが行われ、DRAM Bankではカラーリングベースパーティショニングが行われない、Cache-Onlyポリシーと、
DRAM Bankのインデックスビットを使用してDRAM Bankではカラーリングベースパーティショニングが行われ、LLCではカラーリングベースパーティショニングが行われない、Bank-Onlyポリシーとを含む。
【0047】
一例として、LLCとDRAM Bankとの重複インデックスアドレスビットO-ビットは、物理ページフレーム内の第14および第15ビットであってもよく、4つのカラー、すなわち、00、01、10、および11が、2つのインデックスビットを使用してパーティショニングにより得られ得る。さらに、LLCの第16、第17、および第18インデックスビットならびにDRAM Bankの第21および第22インデックスビットも物理ページフレーム内に存在する。
【0048】
A-MMCPにおいては、カラーリングベースパーティショニングは、O-ビット、すなわち、第14および第15ビットのみを使用して行われ、LLCは、4等分の部分にパーティショニングされ得るし、DRAM Bankは、4等分の部分にパーティショニングされ得る。
【0049】
B-MMCPにおいては、カラーリングベースパーティショニングは、O-ビットおよびDRAM Bankのインデックスビットのうちの1ビット、すなわち、第14、第15、および第21ビットを使用して行われ、LLCは、4等分の部分にパーティショニングされ得るし、DRAM Bankは、8等分の部分にパーティショニングされ得る。
【0050】
C-MMCPにおいては、カラーリングベースパーティショニングは、O-ビットおよびLLCのインデックスビットのうちの1ビット、すなわち、第14、第15、および第16ビットを使用して行われ、LLCは、8等分の部分にパーティショニングされ得るし、DRAM Bankは、4等分の部分にパーティショニングされ得る。
【0051】
具体的には、パーティショニングポリシー決定木をアルゴリズム形式でオペレーティングシステムカーネル内に実装していることは、
ワーキングセット内の各プログラムが属している各カテゴリが高デマンドタイプ031である場合には、Bank-Onlyポリシーが選択され、
ワーキングセット内の各プログラムが属しているカテゴリ内に低デマンド-集中タイプが存在する場合にはワーキングセット内のプログラムの数がさらに決定され、プログラムの数がプロセッサのコアの数のN以下である場合にはA-MMCPが選択され、さもなければC-MMCPが選択される、または、
ワーキングセット内の各プログラムが属しているカテゴリ内に中デマンドタイプ032が存在するとともに低デマンド-集中タイプが存在していない場合にはワーキングセット内のプログラムの数がさらに決定され、プログラムの数がプロセッサのコアの数のN以下である場合にはA-MMCPが選択され、さもなければB-MMCPが選択されることを含む。
【0052】
S204: ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを対応するページカラーリングベースパーティショニング処理を行うオペレーティングシステムカーネルに書き込む。
【0053】
具体的には、選択されたページカラーリングベースパーティショニングポリシーが、/proc機構を使用してオペレーティングシステムカーネルに書き込まれてもよいし、オペレーティングシステム内のバディシステム(Buddy System)が、メモリ割り振り機構を調整して、カラーリングベースパーティショニング演算を完了する。
【0054】
一例として、バディシステムにおける管理機構および検索機構は、カラーリングに必要とされるページについて管理および検索を完了してもよいし、バディシステムは、メモリ割り振り機構を調整して、メモリ割り振り機構が様々なパーティショニングポリシー間で切り替えることができるようにしてもよい。
【0055】
本発明の本実施形態において提供したメモリリソース最適化方法によれば、ページカラーリング技術を使用してLLCリソースをパーティショニングし、ワーキングセット内の各プログラムの性能データを取得し、メモリアクセス周波数を踏まえて各プログラムのカテゴリを取得し、ワーキングセットのページカラーリングベースパーティショニングポリシーを各プログラムのカテゴリに従って選択し、ページカラーリングベースパーティショニングポリシーをオペレーティングシステムカーネルに書き込み、対応するページカラーリングベースパーティショニング処理を完了する。このように、LLCとDRAM Bankとの間の協調パーティショニングポリシーはワーキングセットの特性を踏まえて実装されており、メモリリソースについてのプロセスまたはスレッドの相互干渉を低減することおよび除去さえすることも可能としており、それによって、コンピュータの全体的な性能を改善している。
【0056】
本発明の実施形態は、メモリリソース最適化装置00を提供する。図4に示したように、装置は、
ワーキングセット内の各プログラムの性能データを取得し、各プログラムの性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とを、プリセット閾値と比較することによって、各プログラムをカテゴリ分類するように構成される、フロントエンドユニット001であって、各プログラムの性能データは、割り振られているラストレベルキャッシュ(LLC)リソースの容量に伴い各プログラムのプリセット性能指標が変化する際に生じる変動である、フロントエンドユニット001と、
ワーキングセット内の各プログラムのカテゴリ分類およびプリセット決定ポリシーを踏まえて、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択するように構成される、決定ユニット002であって、ページカラーリングベースパーティショニングポリシーは、LLCとダイナミックランダムアクセスメモリバンク(DRAM Bank)との両方にページカラーリングベースパーティショニングを行うためのページカラーリングベース協調パーティショニングポリシーを含む、決定ユニット002と、
ワーキングセットに対応するページカラーリングベースパーティショニングポリシーをオペレーティングシステムカーネルに書き込むように構成される、パーティショニングユニット003であって、オペレーティングシステムカーネルが対応するページカラーリングベースパーティショニング処理を行う、パーティショニングユニット003とを備える。
【0057】
図5に示したように、フロントエンドユニット001は、データ収集ユニット0011と、カテゴリ分類ユニット0012とを備えていてもよい。
【0058】
必要に応じて、データ収集ユニット0011は、ページカラーリング技術を使用してN個の部分にLLCリソースをパーティショニングし、LLCリソースの最大容量の1/Nを1レベルとし、最初に各プログラムにLLCリソースの最大容量を割り振り、容量がLLCリソースの最大容量の1/Nに低減されるまで各調整において1レベルずつ各プログラムに割り振られているLLCリソースの容量を低減し、
調整プロセスにおいて割り振られているLLCリソースの容量に伴い、各プログラムのプリセット性能指標であって、各プログラムのスピードアップ率である、プリセット性能指標が変化する際に生じる変動を監視し、変動を各プログラムの性能データとして使用するように構成される。
【0059】
必要に応じて、カテゴリ分類ユニット0012は、各プログラムのメモリアクセス周波数を得るために、各プログラムが実行プロセスのプリセット段階中にメインメモリにアクセスする回数をカウントし、
各プログラムの性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とを、プリセット閾値であって、第1の閾値、第2の閾値、および第3の閾値を含み、第1の閾値および第2の閾値が性能データ閾値であり、第3の閾値がメモリアクセス周波数閾値である、プリセット閾値と比較し、
プログラムの性能データが第1の閾値より大きい場合には、プログラムを高デマンドタイプとしてカテゴリ分類する、
プログラムの性能データが第1の閾値未満であるとともに第2の閾値より大きい場合には、プログラムを中デマンドタイプとしてカテゴリ分類する、または、
プログラムの性能データが第2の閾値未満であるとともにメモリアクセス周波数が第3の閾値より大きい場合には、プログラムを低デマンド-集中タイプとしてカテゴリ分類するように構成される。
【0060】
必要に応じて、プリセット決定ポリシーはオペレーティングシステムカーネル内のパーティショニングポリシー決定木であり、パーティショニングポリシー決定木をアルゴリズム形式でオペレーティングシステムカーネル内に実装しており、決定ユニット002は、
ワーキングセット内の各プログラムのカテゴリ分類をオペレーティングシステムカーネルに書き込み、ワーキングセット内の各プログラムのカテゴリを踏まえて、対応するノードを求めてオペレーティングシステムカーネル内のパーティショニングポリシー決定木を探索して、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを決定するように特に構成される。
【0061】
必要に応じて、ページカラーリングベースパーティショニングポリシーは、ページカラーリングベース協調パーティショニングポリシーと、ページカラーリングベース非協調パーティショニングポリシーとを含み、具体的には、
ページカラーリングベース協調パーティショニングポリシーは、重複インデックスアドレスビット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ポリシーとを含む。
【0062】
必要に応じて、決定ユニット002はさらに、
ワーキングセット内の各プログラムが属している各カテゴリが高デマンドタイプである場合には、Bank-Onlyポリシーを選択し、
ワーキングセット内の各プログラムが属しているカテゴリ内に低デマンド-集中タイプが存在する場合にはワーキングセット内のプログラムの数をさらに決定し、プログラムの数がプロセッサのコアの数のN以下である場合にはA-MMCPを選択し、さもなければC-MMCPを選択する、または、
ワーキングセット内の各プログラムが属しているカテゴリ内に中デマンドタイプが存在するとともに低デマンド-集中タイプが存在しない場合にはワーキングセット内のプログラムの数をさらに決定し、プログラムの数がプロセッサのコアの数のN以下である場合にはA-MMCPを選択し、さもなければB-MMCPを選択するように特に構成される。
【0063】
本発明の本実施形態において提供したメモリリソース最適化装置によれば、ページカラーリング技術を使用してLLCリソースをパーティショニングし、ワーキングセット内の各プログラムの性能データを取得し、メモリアクセス周波数を踏まえて各プログラムのカテゴリを取得し、ワーキングセットのページカラーリングベースパーティショニングポリシーを各プログラムのカテゴリに従って選択し、ページカラーリングベースパーティショニングポリシーをオペレーティングシステムカーネルに書き込み、対応するページカラーリングベースパーティショニング処理を完了する。このように、LLCとDRAM Bankとの間の協調パーティショニングポリシーはワーキングセットの特性を踏まえて実装されており、メモリリソースについてのプロセスまたはスレッドの相互干渉を低減することおよび除去さえすることも可能としており、それによって、コンピュータの全体的な性能を改善している。
【0064】
本発明の実施形態はさらには、メモリリソース最適化装置01を提供する。図6に示したように、メモリリソース最適化装置01は、
バス011、ならびにバス011に接続されているプロセッサ012、メモリ013、およびインターフェース014を備える、ここで、インターフェース014は、外部デバイスと通信するように構成される。
【0065】
メモリ013は、命令を記憶するように構成される。プロセッサ012は、命令を実行するように構成され、ワーキングセット内の各プログラムの性能データを取得し、各プログラムの性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とを、プリセット閾値と比較することによって、各プログラムをカテゴリ分類するように構成される、ここで、各プログラムの性能データは、割り振られているラストレベルキャッシュ(LLC)リソースの容量に伴い各プログラムのプリセット性能指標が変化する際に生じる変動である。
【0066】
プロセッサ012は、命令を実行し、ワーキングセット内の各プログラムのカテゴリ分類およびプリセット決定ポリシーを踏まえて、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを選択するようにさらに構成される、ここで、ページカラーリングベースパーティショニングポリシーは、LLCとダイナミックランダムアクセスメモリバンク(DRAM Bank)との両方にページカラーリングベースパーティショニングを行うためのページカラーリングベース協調パーティショニングポリシーを含む。
【0067】
プロセッサ012は、命令を実行し、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを対応するページカラーリングベースパーティショニング処理を行うオペレーティングシステムカーネルに書き込むようにさらに構成される。
【0068】
本発明の本実施形態においては、必要に応じて、プロセッサ012は、命令を実行し、ページカラーリング技術を使用してN個の部分にLLCリソースをパーティショニングし、LLCリソースの最大容量の1/Nを1レベルとし、最初に各プログラムにLLCリソースの最大容量を割り振り、容量がLLCリソースの最大容量の1/Nに低減されるまで各調整において1レベルずつ各プログラムに割り振られているLLCリソースの容量を低減し、
調整プロセスにおいて割り振られているLLCリソースの容量に伴い、各プログラムのプリセット性能指標であって、各プログラムのスピードアップ率である、プリセット性能指標が変化する際に生じる変動を監視し、変動を各プログラムの性能データとして使用するように特に構成されてもよい。
【0069】
本発明の本実施形態においては、必要に応じて、プロセッサ012は、命令を実行し、各プログラムのメモリアクセス周波数を得るために、各プログラムが実行プロセスのプリセット段階中にメインメモリにアクセスする回数をカウントし、
各プログラムの性能データと、各プログラムの、統計収集により得られた、メモリアクセス周波数とを、プリセット閾値であって、第1の閾値、第2の閾値、および第3の閾値を含み、第1の閾値および第2の閾値が性能データ閾値であり、第3の閾値がメモリアクセス周波数閾値である、プリセット閾値と比較し、
プログラムの性能データが第1の閾値より大きい場合には、プログラムを高デマンドタイプとしてカテゴリ分類する、
プログラムの性能データが第1の閾値未満であるとともに第2の閾値より大きい場合には、プログラムを中デマンドタイプとしてカテゴリ分類する、または、
プログラムの性能データが第2の閾値未満であるとともにメモリアクセス周波数が第3の閾値より大きい場合には、プログラムを低デマンド-集中タイプとしてカテゴリ分類するように特に構成されてもよい。
【0070】
本発明の本実施形態においては、必要に応じて、プリセット決定ポリシーはオペレーティングシステムカーネル内のパーティショニングポリシー決定木であり、パーティショニングポリシー決定木をアルゴリズム形式でオペレーティングシステムカーネル内に実装している。プロセッサ012は、命令を実行し、
ワーキングセット内の各プログラムのカテゴリ分類をオペレーティングシステムカーネルに書き込み、ワーキングセット内の各プログラムのカテゴリを踏まえて、対応するノードを求めてオペレーティングシステムカーネル内のパーティショニングポリシー決定木を探索して、ワーキングセットに対応するページカラーリングベースパーティショニングポリシーを決定するように特に構成されてもよい。
【0071】
本発明の本実施形態においては、必要に応じて、ページカラーリングベースパーティショニングポリシーは、ページカラーリングベース協調パーティショニングポリシーと、ページカラーリングベース非協調パーティショニングポリシーとを含み、具体的には、
ページカラーリングベース協調パーティショニングポリシーは、重複インデックスアドレスビット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ポリシーとを含む。
【0072】
本発明の本実施形態においては、必要に応じて、プロセッサ012は、命令を実行し、
ワーキングセット内の各プログラムが属している各カテゴリが高デマンドタイプである場合には、Bank-Onlyポリシーを選択し、
ワーキングセット内の各プログラムが属しているカテゴリ内に低デマンド-集中タイプが存在する場合にはワーキングセット内のプログラムの数をさらに決定し、プログラムの数がプロセッサのコアの数のN以下である場合にはA-MMCPを選択し、さもなければC-MMCPを選択する、または、
ワーキングセット内の各プログラムが属しているカテゴリ内に中デマンドタイプが存在するとともに低デマンド-集中タイプが存在しない場合にはワーキングセット内のプログラムの数をさらに決定し、プログラムの数がプロセッサのコアの数のN以下である場合にはA-MMCPを選択し、さもなければB-MMCPを選択するように特に構成されてもよい。
【0073】
本発明の本実施形態において提供したメモリリソース最適化装置によれば、ページカラーリング技術を使用してLLCリソースをパーティショニングし、ワーキングセット内の各プログラムの性能データを取得し、メモリアクセス周波数を踏まえて各プログラムのカテゴリを取得し、ワーキングセットのページカラーリングベースパーティショニングポリシーを各プログラムのカテゴリに従って選択し、ページカラーリングベースパーティショニングポリシーをオペレーティングシステムカーネルに書き込み、対応するページカラーリングベースパーティショニング処理を完了する。このように、LLCとDRAM Bankとの間の協調パーティショニングポリシーはワーキングセットの特性を踏まえて実装されており、メモリリソースについてのプロセスまたはスレッドの相互干渉を低減することおよび除去さえすることも可能としており、それによって、コンピュータの全体的な性能を改善している。
【0074】
本出願において提供したいくつかの実施形態においては、開示した装置および方法を他の様式で実装し得ることを理解されたい。例えば、記載した装置の実施形態は、例示的なものにすぎない。例えば、モジュール分割は、論理的な機能分割にすぎず、実際の実施形態においては他の分割様式が存在し得る。加えて、図示または記載したモジュール間の接続は、いくつかのインターフェースを使用して実装されてもよく、電子的に、機械的に、または他の形式で実施されてもよい。
【0075】
モジュールは、物理的に別個のものであってもなくてもよいし、物理ユニットであってもなくてもよい。一部またはすべてのモジュールは、実施形態の解決手法の目的を達成するために実際の要件に従って選択されてもよい。
【0076】
加えて、本発明の実施形態における機能モジュールは1つの処理モジュールに統合されてもよいし、またはモジュールの各々が物理的に単独で存在してもよいし、または2つ以上のモジュールは1つのモジュールに統合される。統合されたモジュールは、ハードウェアの形式で実装されてもよいし、またはソフトウェア機能モジュールを加えたハードウェアの形式で実装されてもよい。
【0077】
前述の統合されたモジュールがソフトウェア機能ユニットの形式で実装される場合には、統合されたユニットは、コンピュータ可読記憶媒体に記憶されていてもよい。ソフトウェア機能モジュールは、記憶媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイスであり得る)に命令して本発明の実施形態に記載の方法のステップの一部を実行するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、リードオンリーメモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスク、または光ディスクなどの、プログラムコードを記憶することができる任意のメディアを含む。
【0078】
前述の記載は、本発明の特定の実施様態にすぎず、本発明の保護範囲を限定することを意図していない。本発明に開示の技術的範囲において当業者が容易に想到する任意の変形または置換は、本発明の保護範囲に含まれるものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
【符号の説明】
【0079】
00 メモリリソース最適化装置
01 メモリリソース最適化装置
001 フロントエンドユニット
002 決定ユニット
003 パーティショニングユニット
0011 データ収集ユニット
0012 カテゴリ分類ユニット
011 バス
012 プロセッサ
013 メモリ
014 インターフェース
図1
図2
図3
図4
図5
図6