JP2009211649A - キャッシュシステム、その制御方法、及び、プログラム - Google Patents

キャッシュシステム、その制御方法、及び、プログラム Download PDF

Info

Publication number
JP2009211649A
JP2009211649A JP2008056608A JP2008056608A JP2009211649A JP 2009211649 A JP2009211649 A JP 2009211649A JP 2008056608 A JP2008056608 A JP 2008056608A JP 2008056608 A JP2008056608 A JP 2008056608A JP 2009211649 A JP2009211649 A JP 2009211649A
Authority
JP
Japan
Prior art keywords
cache
logical
program
cpu
core
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008056608A
Other languages
English (en)
Inventor
Hidenori Iijima
英則 飯島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008056608A priority Critical patent/JP2009211649A/ja
Publication of JP2009211649A publication Critical patent/JP2009211649A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】ユーザが期待するキャッシュ構成でプログラム実施が可能なキャッシュシステムを提供する。
【解決手段】CPUキャッシュ機構305は、マルチコアプロセッサ30内の複数のCPUコア301〜304に共有される。キャッシュ特性取得部101は、キャッシュ特性テーブル群10が保持するプログラムのキャッシュ特性を記述したキャッシュ特性テーブルを参照して、プログラムのキャッシュ特性を取得する。論理キャッシュ設定部104は、プログラム特性に応じたCPUキャッシュを、マルチコアプロセッサに設定する
【選択図】図1

Description

本発明は、キャッシュシステム、その制御方法、及び、プログラムに関し、更に詳しくは、複数のCPUコアを有するマルチコアプロセッサのCPUキャッシュメモリを制御するキャッシュシステム、制御方法、及び、プログラムに関する。
複数のCPUコアを備えるマルチコアプロセッサがある。特許文献1には、マルチコアプロセッサを用いた計算機システムが記載されている。マルチコアプロセッサは、物理プロセッサであり、OSの下で複数の論理プロセッサとして機能する。物理プロセッサ内の演算器や、キャッシュメモリなどの機構は、論理プロセッサ間で競合して使用され、或いは、共有される。特許文献1では、新しいプロセスに論理プロセッサを割り当てる際には、そのプロセスと、割当て済みプロセスとに依存関係があるか否かを調べる。依存関係がない場合は、新たなプロセスと、割当て済みプロセスとが、キャッシュメモリを共有しないように、新たなプロセスを別の物理プロセッサ上の論理プロセッサに割り当てる。
特開2006−24180号公報
プロセッサが単一のコアを有するシングルコアにおけるキャッシュの利用方法について、これまでに種々の提案がなされている。例えば、各プログラムにおいて、キャッシュ操作の頻度に応じてプログラムの各ライン単位に優先順位を決め、優先順位が高いラインは優先的にキャッシュに乗せるなどする方法などが提案されている。しかし、近年急速に普及しているマルチコア技術を用いたプロセッサについて、各コアに対してキャッシュ領域を効率的に割り当てる方法の提案は少ない。特許文献1は、依存関係にないプロセスを、同一物理プロセッサ上の論理プロセッサに割り当てないようにしてキャッシュの共有を防ぐものであり、ユーザが期待するキャッシュ構成でプログラムの実施が可能となるものではない。
本発明は、ユーザが期待するキャッシュ構成でプログラム実施が可能なキャッシュシステム、制御方法、及び、プログラムを提供することを目的とする。
上記目的を達成するために、本発明のキャッシュシステムは、複数のCPUコアが、単一のCPUキャッシュメモリを共有するマルチコアプロセッサのキャッシュ設定を行うキャッシュシステムであって、プログラムのキャッシュ特性を記述したキャッシュ特性テーブルを参照して、プログラムのキャッシュ特性を取得するキャッシュ特性取得部と、前記取得されたキャッシュ特性に応じたCPUキャッシュを前記マルチコアプロセッサに設定する論理キャッシュ設定部とを有することを特徴とする。
本発明のキャッシュシステム制御方法は、コンピュータを用い、複数のCPUコアが、単一のCPUキャッシュメモリを共有するマルチコアプロセッサのキャッシュ設定を行うキャッシュシステムを制御する方法であって、前記コンピュータが、プログラムのキャッシュ特性を記述したキャッシュ特性テーブルを参照して、プログラムのキャッシュ特性を取得するステップと、前記コンピュータが、前記取得されたキャッシュ特性に応じたCPUキャッシュを前記マルチコアプロセッサに設定するステップとを有することを特徴とする。
本発明のプログラムは、コンピュータに、複数のCPUコアが、単一のCPUキャッシュメモリを共有するマルチコアプロセッサのキャッシュ設定を行うキャッシュシステムを制御する処理を実行させるプログラムであって、前記コンピュータに、プログラムのキャッシュ特性を記述したキャッシュ特性テーブルを参照して、プログラムのキャッシュ特性を取得する処理と、前記取得されたキャッシュ特性に応じたCPUキャッシュを前記マルチコアプロセッサに設定する処理とを実行させることを特徴とする。
本発明のキャッシュシステム、制御方法、及び、プログラムは、ユーザが期待するキャッシュ構成でプログラム実施することができる。
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図1は、本発明の第1実施形態のキャッシュシステムを示している。キャッシュシステムは、キャッシュ特性取得部101、論理キャッシュテーブル選択部(プロセッサ選択部)102、論理キャッシュ再構成部103、及び、論理キャッシュ設定部104を有する。これら各部の機能は、オペレーティングシステム(OS)100の機能として実装される。また、各部の機能は、コンピュータ上で、所定のプログラムを実行することで実現される。
以下では、システムが、4つのマルチコアプロセッサ30〜33を有する場合を説明する。各マルチコアプロセッサは、複数のCPUコア(図1では4つのCPUコア301〜304)と、CPUキャッシュ機構305と、CPUキャッシュ最適化機構306とを有する。CPUキャッシュ機構305は、複数のCPUコア301〜304で共有可能なキャッシュ機構である。CPUキャッシュ最適化機構306は、CPUキャッシュ機構305のパラメータ設定を行う。パラメータとしては、例えば、各CPUコアに対するキャッシュメモリの割当て量や、キャッシュ方法(リプレース方法)の指定などを考える。キャッシュシステム(OS100)は、各マルチコアプロセッサ内のCPUキャッシュ機構305に、プログラム特性に応じたキャッシュ設定を行う。
OS100は、キャッシュ特性テーブル群10を保持する。キャッシュ特性テーブル群10は、複数のキャッシュ特性テーブルを有する。各キャッシュ特性テーブルは、ユーザが期待する、各プログラムに固有のキャッシュ特性を保持する。キャッシュ特性テーブルは、マルチコアプロセッサが備えているCPUキャッシュ最適化機構306に設定可能なパラメータを格納するエントリを含む。設定可能なパラメータには、現にシステムに存在しているマルチコアプロセッサ30〜33にて設定できるパラメータだけでなく、将来使用することを想定している他のマルチコアプロセッサに設定可能なパラメータを含んでいてもよい。
図2に、キャッシュ特性テーブル群10を示す。キャッシュ特性テーブル群10は、複数のキャッシュ特性テーブル(図2では、キャッシュ特性テーブル11〜14)を有する。キャッシュ特性テーブル11〜14は、OS100上で実行されるプログラムA〜Dに対応している。図3に、キャッシュ特性テーブルのデータ例を示す。この例では、キャッシュ特性テーブルは、キャッシュ容量、更新手法、プリフェッチタイミング、その他の情報を格納するエントリを含む。
キャッシュ容量のエントリには、例えば、キャッシュが有効なプログラムに対しては、多めの容量が格納され、キャッシュがそれほど有効でないプログラムに対しては、少なめの容量が格納される。また、更新手法のエントリには、特定のリプレース方法を採用したときに実行効率が向上するプログラムに対して、そのリプレース方式を採用する旨の情報が格納される。キャッシュ特性テーブルの各エントリは、プログラム特性に合わせて管理者により設定される。或いは、OS100が、複数のパラメータにてプログラム実行を行い、実行効率が最もよかったものを選択し、そのパラメータを、自動設定してもよい。
図1に戻り、OS100は、4つのマルチコアプロセッサ30〜33のそれぞれに対応して、4つの論理キャッシュテーブル20〜23を保持する。論理キャッシュテーブル20は、マルチコアプロセッサに含まれるCPUコアに対応した論理キャッシュ(図1では、論理キャッシュ201〜204)を有する。各論理キャッシュは、マルチコアプロセッサ内の各CPUコアに対応しており、それぞれ、各CPUコアに設定するCPUキャッシュの設定値を保持する。
図4に、論理キャッシュテーブルのデータ例を示す。論理キャッシュ201〜204は、それぞれ、更新方法、容量、及び、コア番号のエントリを含む。コア番号は、論理キャッシュと、物理プロセッサ(マルチコアプロセッサ)内のCPUコアとの対応関係を決定するエントリである。論理キャッシュ201〜204は、コア番号を変更することにより、CPUコア301〜304との対応関係を動的に変更することが可能である。
更新方法は、コア番号で示されるCPUコアに設定するキャッシュのリプレース方法を指定する情報を格納するエントリである。容量は、CPUコア番号で示されるCPUコアに対するCPUキャッシュメモリの割当て量を格納するエントリである。論理キャッシュ201〜204は、上記以外にも、CPUキャッシュ最適化機構306にて操作可能なパラメータがあるときは、そのパラメータ用のエントリを有する。
キャッシュ特性取得部101は、キャッシュ特性テーブル群10から、プログラムに対応するキャッシュ特性テーブルを取得する。論理キャッシュテーブル選択部102は、プログラム起動時に、論理キャッシュテーブル20〜23と、キャッシュ特性取得部101が取得したキャッシュ特性とを参照して、プログラム実行中の各CPUコアのキャッシュの状態、及び、これから実行するプログラムのキャッシュ特性を考慮して、論理キャッシュテーブル20〜23のうちの何れかを選択する。例えば、キャッシュ特性テーブルに、より多くのキャッシュ容量を割り当てる旨の情報が含まれるプログラムに対しては、4つの論理キャッシュテーブル20〜23の中から、CPUコアに対して確保できるキャッシュ容量が最大となる論理キャッシュテーブルを選択する。
論理キャッシュテーブル20〜23は、マルチコアプロセッサ30〜33に対応しているので、論理キャッシュテーブルを選択することは、プログラムを実行するマルチコアプロセッサを選択していることと同義である。なお、プログラム実行に際して、プログラムを実行するマルチコアプロセッサが事前に決定している場合は、論理キャッシュテーブル選択部102は、キャッシュ特性テーブルを参照することなく、そのマルチコアプロセッサに対応する論理キャッシュテーブルを選択する。
論理キャッシュ再構成部103は、論理キャッシュテーブルに、プログラムのキャッシュ特性に応じたキャッシュ設定を適用する。このとき、論理キャッシュ再構成部103は、キャッシュ特性に応じたキャッシュが実現できるように、論理キャッシュテーブル選択部102にて選択された論理キャッシュテーブル内の論理キャッシュの再構成を行う。この論理キャッシュの再構成では、例えば、これからプログラムを実行するCPUコアに対し、キャッシュ特性テーブルにて指定される容量のキャッシュメモリが確保できるか否かを調べる。確保できないときは、他のCPUコアに対応する論理キャッシュを参照し、プログラム実行中のCPUコアに対して、キャッシュ特性テーブルにて指定される容量以上のキャッシュメモリが割り当てられているか否かを調べる。必要容量以上のキャッシュメモリが割り当てられているCPUコアがある場合は、そのCPUコアに対応する論理キャッシュを変更してキャッシュメモリの割当て量を削減し、余分な割当て領域を開放させる。このようにすることで、キャッシュ特性に応じたキャッシュ容量を確保できる。なお、論理キャッシュ再構成部103は、論理キャッシュの再構成を行わなくても、キャッシュ特性テーブルにて示されるキャッシュが実現可能なときは、再構成を行う必要はない。
論理キャッシュの再構成では、マルチコアプロセッサ内の各CPUコアに対して、CPUキャッシュメモリの基本割当て量を設定しておき、最低限、その基本割当て量が確保されるようにすることができる。例えば、あるCPUコアについて、CPUキャッシュメモリの割当て量が、基本割当て量を下回った場合は、他のCPUコアに割り当てたCPUキャッシュメモリ領域を強制的に開放させ、その領域を、基本割当て量を下回るCPUコアに割り当てる。このようにすることで、大量のキャッシュメモリが必要なプログラムが実行される際に、そのプログラムを実行するCPUコアとは異なるCPUコアで、割り当てられたキャッシュメモリの容量が極端に少なくなることを避けることができる。
また、論理キャッシュ再構成部103は、実行していたプログラムが終了することなどにより、マルチコアプロセッサ上で未使用のキャッシュ領域が生じたときは、未使用となったキャッシュ領域を、プログラム実行中のCPUコアに割り当てる処理を行う。この処理では、同一のマルチコアプロセッサ内で動作しているプログラムのうちで、より多くのCPUキャッシュを必要とするプログラムを実行しているCPUコアに、より多くのCPUキャッシュを割り当てるように、論理キャッシュを再構成することが好ましい。
論理キャッシュ設定部104は、論理キャッシュテーブル20〜23を、対応するマルチコアプロセッサ30〜33に送り、各マルチコアプロセッサにおけるCPUキャッシュの構成を決定する。より詳細には、例えばマルチコアプロセッサ30に対して、論理キャッシュテーブル20内の論理キャッシュ201〜204の内容をCPUキャッシュ最適化機構306に送り、CPUキャッシュ最適化機構306によりCPUキャッシュ機構305を制御することで、論理キャッシュ201〜204の内容で、各CPUコア301〜304のCPUキャッシュを実現する。
図5に、動作手順を示す。事前に、各プログラムに対して、キャッシュ特性テーブルに特性値を設定しておく。OS100は、プログラムの実行が割り当てられると、キャッシュ特性テーブル群10から、実行されるプログラムに対応するキャッシュ特性テーブルを取得する(ステップS1)。論理キャッシュテーブル選択部102は、キャッシュ特性テーブルと、論理キャッシュテーブル20〜23とを参照し、論理キャッシュテーブルの何れかを選択する(ステップS2)。ステップS2では、論理キャッシュテーブル選択部102は、例えば、ステップS1で取得されたキャッシュ特性テーブルの特性値を、有利な条件で実現可能なマルチコアプロセッサに対応する論理キャッシュテーブルを選択する。ここでは、論理キャッシュテーブル20が選択されたとする。
論理キャッシュ再構成部103は、ステップS2で選択された論理キャッシュテーブル20に、ステップS1で取得されたキャッシュ特性テーブルの内容を適用し、論理キャッシュテーブル20を再構成する(ステップS3)。ここでは、新たにプログラムを実行するCPUコアが、論理キャッシュ201に対応するCPUコアであるとする。論理キャッシュ再構成部103は、ステップS3で、論理キャッシュ201にステップS1で取得されたキャッシュ特性テーブルの内容を適用し、プログラム実行中のCPUコアに対応する論理キャッシュ202〜204との調整を取る。この調整では、論理キャッシュ再構成部103は、多くのキャッシュメモリの容量を必要とするプログラムを実行するCPUコアに対して、より多くのキャッシュメモリ容量が割り当てられるように、論理キャッシュを再構成する。
論理キャッシュ設定部104は、ステップS3で再構成された論理キャッシュテーブルの情報をマルチコアプロセッサ30に送信する(ステップS4)。マルチコアプロセッサ30は、論理キャッシュテーブルの情報を受け取ると、CPUキャッシュ最適化機構306及びCPUキャッシュ機構305により、論理キャッシュテーブル20の内容に従ったキャッシュを実現する。マルチコアプロセッサ30は、実行が割り当てられたプログラムを、論理キャッシュ201に対応するCPUコアで実行する。OS100は、別のプログラムを実行する際には、上記と同様な手順で、そのプログラムに対応するキャッシュ特性テーブルを取得し、論理キャッシュテーブル20〜23の何れかを選択し、選択した論理キャッシュテーブルの再構成を行う。このようにすることで、プログラムを実行するマルチコアプロセッサにて、実行プログラムのキャッシュ特性に応じたキャッシュを実現できる。
本実施形態では、各プログラムのキャッシュ特性に基づいて、OS100がマルチコアプロセッサにおける共有キャッシュ機構のパラメータを決定する。これにより、実行するプログラムのキャッシュ特性に応じて、CPUコアが使用するCPUキャッシュメモリの構成を、プログラム実行開始時に、動的に変更することができる。マルチコアプロセッサにて、プログラムのキャッシュ特性に応じたキャッシュを実現することで、プログラムごとに、ユーザが期待するキャッシュ構成でプログラムを実行することができる。
例えば、より多くCPUキャッシュを要求するキャッシュ特性を持つプログラムAと、最低限のCPUキャッシュしか使わないプログラムBとを、同一のマルチコアプロセッサで実行することを考える。この場合、論理キャッシュ再構成部103は、プログラムAを実行するCPUコアに対応する論理キャッシュに、CPUキャッシュ領域をCPUコア3個分+αだけ使用する旨の情報を書き込む。また、プログラムBを実行するCPUコアに対応する論理キャッシュに、CPUキャッシュ領域をCPUコア1個分−αだけ使用する旨の情報を書き込む。この場合、キャッシュの効果が期待できるプログラムAを実行するCPUコアにより多くのキャッシュメモリを割り当てることで、効率的なプログラム実行が期待できる。一方、キャッシュが有効ではないとわかっているプログラムBを実行するCPUコアに対しては、必要最低限のCPUキャッシュメモリを割り当てることで、他のCPUコアが使用可能なCPUキャッシュを増やすことができ、自CPUコアでは余分なCPUキャッシュを分け与えることができる。
また、本実施形態では、論理キャッシュテーブル選択部102により、実行するプログラムのキャッシュ特性テーブルの内容と、各論理キャッシュテーブルの内容とに基づいて、論理キャッシュテーブル、つまりは、プログラムを実行するマルチコアプロセッサを選択する。論理キャッシュテーブル選択部102が、キャッシュ特性テーブルの内容を、有利な条件で実行できる論理キャッシュテーブルを選択することで、マルチプロセッサシステムで、CPUキャッシュを有効に利用するために物理プロセッサをスケジュールすることが可能である。例えば、実プロセッサ(マルチコアプロセッサ)が4つあり、4つのプログラムがそれぞれ別々の実プロセッサ上で動作している場合を考える。次に実行されるプログラムは、CPUキャッシュを多く使用する特性を持つプログラムであるとする。この場合、各実プロセッサに対応する論理キャッシュテーブル上で、最も多くのキャッシュメモリを確保できる物理プロセッサを選択することで、キャッシュの有効利用を図ることができる。
続いて、本発明の第2実施形態について説明する。本実施形態の構成は、図1に示す第1実施形態の構成と同様である。本実施形態では、キャッシュ特性を2つのタイプのみに固定し、全てのプログラムを、2つのタイプのいずれかに所属させる。例えば、キャッシュ特性を、より多くのキャッシュメモリを必要とするプログラムが属する第1の分類と、キャッシュメモリが少なくてよいプログラムが属する第2の分類との2つに分類する。このとき、OSについてのキャッシュ特性は、何れか一方の特性を利用することとする。
本実施形態では、論理キャッシュ再構成部103は、事前に用意された論理キャッシュのテンプレートを用いて、キャッシュ特性に応じたキャッシュ設定を行う。論理キャッシュのテンプレートは、マルチコアプロセッサ内の各CPUコアで実行中/これから実行するプログラムの分類の各組み合わせに対して、論理キャッシュテーブル内の各論理キャッシュに設定すべき設定値を、テンプレート化して保持するものである。この論理キャッシュテンプレートは、全ての物理プロセッサで共通に使用することができる。
例えば、管理者は、4つのCPUコア301〜304(図1)の全てで第1の分類のプログラムを実行する場合に論理キャッシュ201〜204のそれぞれに対して設定すべき設定値を、論理キャッシュテンプレートとして作成する。また、4つのCPUコア301〜304のうちの1つで第1の分類のプログラムを実行し、残り3つで第2の分類のプログラムを実行する場合に、論理キャッシュ201〜204のそれぞれに対して設定すべき設定値を、論理キャッシュテンプレートとして作成する。論理キャッシュテンプレートにおける組み合わせには、プログラム実行なしという状態を追加してもよい。
キャッシュ特性取得部101は、新たに実行するプログラムのキャッシュ特性が、第1の分類に属するか、或いは、第2の分類に属するかを判別する。論理キャッシュテーブル選択部102は、プログラム実行が可能なマルチコアプロセッサに対応する論理キャッシュテーブルを選択する。論理キャッシュ再構成部103は、新たにプログラム実行を行うマルチコアプロセッサ内の各CPUコアで実行中のプログラムのキャッシュ特性の分類と、新たに実行するプログラムのキャッシュ特性の分類とに基づいて、論理キャッシュテンプレートから、該当する組み合わせのテンプレートを取得し、これを論理キャッシュテーブルに適用することで、論理キャッシュテーブルを再構成する。論理キャッシュ設定部104は、テンプレートが適用された論理キャッシュテーブルを、マルチコアプロセッサに送信し、テンプレートに従ったキャッシュを実現させる。
本実施形態では、各プログラムのキャッシュ特性を2つのタイプの対照的なキャッシュ特性に簡素化して分類する。システム運用に際しては、2つのタイプを組み合わせた論理キャッシュの全ての組み合わせのテンプレートを事前に作成しておく。プログラム実行時には、各CPUコアで実行されるプログラムのキャッシュ特性の組み合わせが、同じ組み合わせとなる論理キャッシュテンプレートの情報を参照し、既に計算されているテンプレートの情報を、該当する物理プロセッサに通知する。このようにすることで、プログラム実行のたびに、論理キャッシュテーブル内の論理キャッシュの設定値を計算する必要がなくなる。このため、第1実施形態のように各プログラムのキャッシュ特性を細かく記載する場合に比して、OSの論理キャッシュの最適化の計算コストを抑えつつ、実プロセッサ上のCPUキャッシュメモリの有効利用を図ることができる。
本発明の第3実施形態について説明する。本実施形態の構成は、図1に示す第1実施形態における構成と同様である。本実施形態では、プログラムのキャッシュ特性をNタイプに分類する。第2実施形態と同様に、論理キャッシュテンプレートに、各CPUコアで実行されるプログラムの分類のすべての組み合わせに対する論理キャッシュの設定値のテンプレートを保持しておく。プログラム実行時には、プログラムが実行されるマルチコアプロセッサ内の各CPUコアで実行されるプログラムのキャッシュ特性の分類に従って、論理キャッシュテンプレートから、該当する組み合わせのテンプレートを取得し、マルチコアプロセッサに送信する。
上記第2実施形態では、キャッシュ特性の分類が2分類であるので、CPUキャッシュの利用が大雑把すぎることが考えられる。本実施形態では、N通りのタイプの組み合わせのテンプレートを事前に用意する事により、ユーザに都合の良い組み合わせを選択し、利用することが可能となる。
なお、図1では、マルチコアプロセッサが有するCPUキャッシュ機構及びCPUキャッシュ最適化機構に対して論理キャッシュを適用することについて説明したが、キャッシュシステムが、複数のマルチコアプロセッサで共有可能なキャッシュ機構、及び、該キャッシュ機構の最適化を行う最適化機構を有する場合は、そのキャッシュ機構に対して、キャッシュ特性に応じた論理キャッシュの適用を行ってもよい。例えば、より多くのキャッシュを必要とするプログラムが実行しているマルチコアプロセッサに対して、より多くのキャッシュメモリを割り当てる。このようにすることで、マルチコアプロセッサの実行効率を上げることができる。
上記各実施形態のキャッシュシステムは、個人が使用するノートPCなどに適用可能である。この場合、ユーザが使用するアプリケーション用のCPUキャッシュメモリを、バックグラウンドプログラムであるOSや、ウィルスチェックソフトが奪うことを抑止できるので、ユーザアプリの実行性能を上げることが可能となり、ユーザプログラムのスループットを考慮したノートPCが実現可能である。また、上記各実施形態のキャッシュシステムは、また、HPC(High Performance Computing)の領域に適用可能である。HPC領域では、マルチプロセッサシステム上で、OSがユーザプログラムをプロセッサ上のCPUコアに振り分ける際に、十分にCPUキャッシュメモリを確保できるプロセッサに割り当てることが可能となり、プログラムのスループットの向上を考えたシステムを構築することができる。
以上、本発明をその好適な実施形態に基づいて説明したが、本発明のキャッシュシステム、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
本発明の第1実施形態のキャッシュシステムを示すブロック図。 キャッシュ特性テーブル群を示すブロック図。 キャッシュ特性テーブルを示すブロック図。 論理キャッシュテーブルを示すブロック図。 動作手順を示すフローチャート。
符号の説明
10:キャッシュ特性テーブル群
20〜23:論理キャッシュテーブル
30〜33:マルチコアプロセッサ
100:OS
101:キャッシュ特性取得部
102:論理キャッシュテーブル選択部
103:論理キャッシュ再構成部
104:論理キャッシュ設定部
201〜204:論理キャッシュ
301〜304:CPUコア
305:CPUキャッシュ機構
306:CPUキャッシュ最適化機構

Claims (17)

  1. 複数のCPUコアが、単一のCPUキャッシュメモリを共有するマルチコアプロセッサのキャッシュ設定を行うキャッシュシステムであって、
    プログラムのキャッシュ特性を記述したキャッシュ特性テーブルを参照して、プログラムのキャッシュ特性を取得するキャッシュ特性取得部と、
    前記取得されたキャッシュ特性に応じたCPUキャッシュを前記マルチコアプロセッサに設定する論理キャッシュ設定部とを有するキャッシュシステム。
  2. 前記マルチコアプロセッサに対応した論理キャッシュテーブルであって、前記複数のCPUコアに対応し、それぞれが、各CPUコアに設定するCPUキャッシュの設定値を保持する複数の論理キャッシュを有する論理キャッシュテーブルに、前記キャッシュ特性に応じたキャッシュ設定を適用する論理キャッシュ再構成部を更に備え、
    前記論理キャッシュ設定部は、各論理キャッシュの内容を、対応するCPUコアに設定することで、前記マルチコアプロセッサにおけるCPUキャッシュの構成を変更する、請求項1に記載のキャッシュシステム。
  3. 前記論理キャッシュ再構成部は、プログラム実行中のCPUコアに対応する論理キャッシュを、前記キャッシュ特性に応じたキャッシュ設定が適用可能となるように調整した上で、前記キャッシュ特性に応じたキャッシュ設定を適用する、請求項2に記載のキャッシュシステム。
  4. 前記マルチコアプロセッサを複数有しており、前記論理キャッシュテーブルと、前記キャッシュ特性取得部が取得したキャッシュ特性とに応じて、前記複数のマルチコアプロセッサの中から、プログラムを実行させるマルチコアプロセッサを選択するプロセッサ選択部を更に備え、
    前記論理キャッシュ再構成部は、前記プロセッサ選択部が選択したマルチコアプロセッサに対応する論理キャッシュテーブルに、前記キャッシュ特性に応じたキャッシュ設定を適用する、請求項2又は3に記載のキャッシュシステム。
  5. 前記プロセッサ選択部は、前記論理キャッシュテーブルを参照して、前記複数のマルチコアプロセッサの中から、前記キャッシュ特性にて示される必要容量以上のキャッシュメモリの容量を確保可能なマルチコアプロセッサを、プログラム実行を行うマルチコアプロセッサとして選択する、請求項4に記載のキャッシュシステム。
  6. 前記論理キャッシュ再構成部は、プログラム実行開始時に、実行するプログラムのキャッシュ特性に応じて、前記プロセッサ選択部にて選択されたマルチコアプロセッサにおけるCPUキャッシュの構成を、動的に変化させる、請求項4又は5に記載のキャッシュシステム。
  7. 前記プログラムのキャッシュ特性は、第1の分類と第2の分類とに分類されており、前記論理キャッシュ再構成部は、各CPUコアで実行されるプログラムのキャッシュ特性の分類の各組み合わせについて、前記論理キャッシュに設定すべき設定値をテンプレート化して保持する論理キャッシュテンプレートを参照し、各CPUコアで実行されるプログラムのキャッシュ特性の組み合わせに応じて、前記テンプレート化された設定値を選択的に利用することで、前記論理キャッシュテーブルに、前記キャッシュ特性に応じたキャッシュ設定を適用する、請求項2に記載のキャッシュシステム。
  8. 前記プログラムのキャッシュ特性は、第1〜第N(Nは2以上の整数)の分類に分類されており、前記論理キャッシュ再構成部は、各CPUコアで実行されるプログラムのキャッシュ特性の分類の各組み合わせについて、前記論理キャッシュに設定すべき設定値をテンプレート化して保持する論理キャッシュテンプレートを参照し、各CPUコアで実行されるプログラムのキャッシュ特性の組み合わせに応じて、前記テンプレート化された設定値を選択的に利用することで、前記論理キャッシュテーブルに、前記キャッシュ特性に応じたキャッシュ設定を適用する、請求項2に記載のキャッシュシステム。
  9. コンピュータを用い、複数のCPUコアが、単一のCPUキャッシュメモリを共有するマルチコアプロセッサのキャッシュ設定を行うキャッシュシステムを制御する方法であって、
    前記コンピュータが、プログラムのキャッシュ特性を記述したキャッシュ特性テーブルを参照して、プログラムのキャッシュ特性を取得するステップと、
    前記コンピュータが、前記取得されたキャッシュ特性に応じたCPUキャッシュを前記マルチコアプロセッサに設定するステップとを有するキャッシュシステム制御方法。
  10. 前記コンピュータが、マルチコアプロセッサに対応した論理キャッシュテーブルであって、前記複数のCPUコアに対応し、それぞれが、各CPUコアに設定するCPUキャッシュの設定値を保持する複数の論理キャッシュを有する論理キャッシュテーブルに、前記キャッシュ特性に応じたキャッシュ設定を適用するステップを更に有し、
    前記CPUキャッシュを設定するステップでは、前記コンピュータは、各論理キャッシュの内容を、対応するCPUコアに設定することで、前記マルチコアプロセッサにおけるCPUキャッシュの構成を変更する、請求項9に記載のキャッシュシステム制御方法。
  11. 前記論理キャッシュテーブルにキャッシュ特性に応じたキャッシュ設定を適用するステップでは、前記コンピュータは、プログラム実行中のCPUコアに対応する論理キャッシュを、前記キャッシュ特性に応じたキャッシュ設定が適用可能となるように調整した上で、前記キャッシュ特性に応じたキャッシュ設定を適用する、請求項10に記載のキャッシュシステム制御方法。
  12. 前記コンピュータが、複数のマルチコアプロセッサの中から、前記論理キャッシュテーブルと、取得したキャッシュ特性とに応じて、前記プログラムを実行させるマルチコアプロセッサを選択するステップを更に有し、
    前記論理キャッシュテーブルにキャッシュ特性に応じたキャッシュ設定を適用するステップでは、前記コンピュータは、前記選択するステップで選択したマルチコアプロセッサに対応する論理キャッシュテーブルに、前記キャッシュ特性に応じたキャッシュ設定を適用する、請求項10又は11記載のキャッシュシステム制御方法。
  13. 前記選択するステップでは、前記コンピュータは、前記論理キャッシュテーブルを参照して、前記複数のマルチコアプロセッサの中から、前記取得したキャッシュ特性にて示される必要容量以上のキャッシュメモリの容量を確保可能なマルチコアプロセッサを、前記プログラム実行を行うマルチコアプロセッサとして選択する、請求項12に記載のキャッシュシステム制御方法。
  14. 前記コンピュータは、プログラム実行開始時に、該実行するプログラムのキャッシュ特性を取得し、該取得したプログラムのキャッシュ特性に応じて、前記選択するステップで選択したマルチコアプロセッサにおけるCPUキャッシュの構成を、動的に変化させる、請求項12又は13に記載のキャッシュシステム制御方法。
  15. 前記プログラムのキャッシュ特性は、第1の分類と第2の分類とに分類されており、前記論理キャッシュテーブルにキャッシュ特性に応じたキャッシュ設定を適用するステップでは、前記コンピュータは、各CPUコアで実行されるプログラムのキャッシュ特性の分類の各組み合わせについて、前記論理キャッシュに設定すべき設定値をテンプレート化して保持する論理キャッシュテンプレートを参照し、各CPUコアで実行されるプログラムのキャッシュ特性の組み合わせに応じて、前記テンプレート化された設定値を選択的に利用することで、前記論理キャッシュテーブルに、前記キャッシュ特性に応じたキャッシュ設定を適用する、請求項10に記載のキャッシュシステム制御方法。
  16. 前記プログラムのキャッシュ特性は、第1〜第N(Nは2以上の整数)の分類に分類されており、前記論理キャッシュテーブルにキャッシュ特性に応じたキャッシュ設定を適用するステップでは、前記コンピュータは、各CPUコアで実行されるプログラムのキャッシュ特性の分類の各組み合わせについて、前記論理キャッシュに設定すべき設定値をテンプレート化して保持する論理キャッシュテンプレートを参照し、各CPUコアで実行されるプログラムのキャッシュ特性の組み合わせに応じて、前記テンプレート化された設定値を選択的に利用することで、前記論理キャッシュテーブルに、前記キャッシュ特性に応じたキャッシュ設定を適用する、請求項10に記載のキャッシュシステム制御方法。
  17. コンピュータに、複数のCPUコアが、単一のCPUキャッシュメモリを共有するマルチコアプロセッサのキャッシュ設定を行うキャッシュシステムを制御する処理を実行させるプログラムであって、前記コンピュータに、プログラムのキャッシュ特性を記述したキャッシュ特性テーブルを参照して、プログラムのキャッシュ特性を取得する処理と、
    前記取得されたキャッシュ特性に応じたCPUキャッシュを前記マルチコアプロセッサに設定する処理とを実行させるプログラム。
JP2008056608A 2008-03-06 2008-03-06 キャッシュシステム、その制御方法、及び、プログラム Pending JP2009211649A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008056608A JP2009211649A (ja) 2008-03-06 2008-03-06 キャッシュシステム、その制御方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008056608A JP2009211649A (ja) 2008-03-06 2008-03-06 キャッシュシステム、その制御方法、及び、プログラム

Publications (1)

Publication Number Publication Date
JP2009211649A true JP2009211649A (ja) 2009-09-17

Family

ID=41184696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008056608A Pending JP2009211649A (ja) 2008-03-06 2008-03-06 キャッシュシステム、その制御方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP2009211649A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9734075B2 (en) 2013-08-13 2017-08-15 Fujitsu Limited Cache memory control program, processor incorporating cache memory, and cache memory control method
US9892046B2 (en) 2014-11-28 2018-02-13 Samsung Electronics Co., Ltd. Cache allocation based on quality-of-service information
JP2022539285A (ja) * 2019-06-28 2022-09-08 中▲興▼通▲訊▼股▲ふぇん▼有限公司 キャッシュの割当方法と装置、記憶媒体、電子装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9734075B2 (en) 2013-08-13 2017-08-15 Fujitsu Limited Cache memory control program, processor incorporating cache memory, and cache memory control method
US9892046B2 (en) 2014-11-28 2018-02-13 Samsung Electronics Co., Ltd. Cache allocation based on quality-of-service information
US10503647B2 (en) 2014-11-28 2019-12-10 Samsung Electronics Co., Ltd. Cache allocation based on quality-of-service information
JP2022539285A (ja) * 2019-06-28 2022-09-08 中▲興▼通▲訊▼股▲ふぇん▼有限公司 キャッシュの割当方法と装置、記憶媒体、電子装置
JP7205033B2 (ja) 2019-06-28 2023-01-17 セインチップス テクノロジー カンパニーリミテッド キャッシュの割当方法と装置、記憶媒体、電子装置

Similar Documents

Publication Publication Date Title
US7093258B1 (en) Method and system for managing distribution of computer-executable program threads between central processing units in a multi-central processing unit computer system
US9563474B2 (en) Methods for managing threads within an application and devices thereof
JP6138774B2 (ja) コンピュータにより実行される方法及びコンピュータシステム
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
US20160202999A1 (en) A Computing Platform, A Reconfigurable Hardware Device And A Method for Simultaneously Executing Processes On Dynamically Reconfigurable Hardware Device, Such As An FPGA, As Well As Instruction Set Processors, Such As A CPU, And A Related Computer Readable Medium
JP6370218B2 (ja) メモリ管理方法、コンピュータシステム、コンピュータプログラム及び記憶媒体
JP5980916B2 (ja) コンピュータにより実行される方法及びコンピュータシステム
JP4185103B2 (ja) 実行可能プログラムをスケジューリングするためのシステム及び方法
WO2016092856A1 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラムを記憶する記憶媒体
KR20110075297A (ko) 병렬도를 고려한 병렬 처리 장치 및 방법
KR100731983B1 (ko) 저전력 무선 디바이스 프로세서용 하드와이어드 스케줄러및 스케줄링 방법
JP6778130B2 (ja) 仮想計算機システムおよびそのリソース割当て方法
US20140115601A1 (en) Data processing method and data processing system
CN113032102A (zh) 资源重调度方法、装置、设备和介质
JP2009211649A (ja) キャッシュシステム、その制御方法、及び、プログラム
JP4409568B2 (ja) 帯域制御プログラム及びマルチプロセッサシステム
US8484642B2 (en) Processor core selection based at least in part upon at least one inter-dependency
Yan et al. Heterogeneous cores for mapreduce processing: Opportunity or challenge?
US20090293060A1 (en) Method for job scheduling with prediction of upcoming job combinations
JP6156379B2 (ja) スケジューリング装置、及び、スケジューリング方法
KR101558807B1 (ko) 호스트 프로세서와 협업 프로세서 간에 협업 처리를 위한 프로세서 스케줄링 방법 및 그 방법을 수행하는 호스트 프로세서
US11392415B2 (en) Electronic devices and methods for 5G and B5G multi-core load balancing
Walters et al. Enabling interactive jobs in virtualized data centers
WO2016122596A1 (en) Checkpoint-based scheduling in cluster
US11928511B2 (en) Systems and methods for prioritizing memory allocation for isolated computing workspaces executing on information handling systems