JP6260456B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP6260456B2
JP6260456B2 JP2014112574A JP2014112574A JP6260456B2 JP 6260456 B2 JP6260456 B2 JP 6260456B2 JP 2014112574 A JP2014112574 A JP 2014112574A JP 2014112574 A JP2014112574 A JP 2014112574A JP 6260456 B2 JP6260456 B2 JP 6260456B2
Authority
JP
Japan
Prior art keywords
cache
memory
core group
control unit
access request
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.)
Active
Application number
JP2014112574A
Other languages
English (en)
Other versions
JP2015228060A (ja
Inventor
明日美 小野
明日美 小野
周史 山村
周史 山村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014112574A priority Critical patent/JP6260456B2/ja
Publication of JP2015228060A publication Critical patent/JP2015228060A/ja
Application granted granted Critical
Publication of JP6260456B2 publication Critical patent/JP6260456B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は,演算処理装置及び演算処理装置の制御方法に関する。
演算処理装置(またはCPU(CPU: Central Processing Unitと称する)は,単数または複数のCPUコアと,それらのCPUコアが利用するキャッシュメモリとを有する。CPUコアは内部に一次キャッシュメモリを有し,上記のキャッシュメモリは,CPUコアが利用する二次キャッシュメモリ(以下L2キャッシュメモリと称する)である。
大規模な演算処理装置は,仮想化技術により,CPUコアに複数の仮想マシン(以下VM(Virtual Machine)と称する)を生成し,複数の仮想マシンがそれぞれキャッシュメモリを共有する。また,CPUコアは,複数のプロセスを処理する場合,複数のプロセスがそれぞれキャッシュメモリを共有する。あるいは,複数のCPUコアがそれぞれキャッシュメモリを共有する。このようにキャッシュメモリの共有の単位には,複数のCPUコア,複数のプロセス,複数のVMなどのメモリアクセス要求元がある。
一方,キャッシュメモリは,複数のウェイ構造を有し,共通のインデックスに対して複数のキャッシュブロックを登録可能にし,キャッシュメモリの容量を増大させる。ウェイ数が大きくなれば,同じインデックスに対して利用できるキャッシュブロック数が増大し,キャッシュメモリの利用効率が向上する。
近年の演算処理装置において,メモリアクセス要求を発行する複数の要求元(例えば,複数のCPUコア,複数のプロセス,複数のVM)に対応して,キャッシュメモリの最大ウェイ数を設定可能にすることで,キャッシュメモリを異なるサイズで分割して複数の要求元別に割り当てるキャッシュ分割制御が提案されている。例えば,以下の特許文献などである。
このキャッシュ分割制御によれば,各要求元が利用できる最大ウェイ数を設定可能にし,メモリアクセス要求,例えばロード要求に応答してデータをキャッシュメモリに登録する際にキャッシュミスした場合,現時点で要求元に割り当てられているウェイ数と予め設定している最大ウェイ数とを比較し,現在の割当済みウェイ数が最大ウェイ数に達していなければ,他の要求元に割当済みのキャッシュブロックをリプレースして現要求元のデータを格納し,達していれば,現要求元に割当済みのキャッシュブロックをリプレースしてデータを格納する。
そして,各要求元が利用できる最大ウェイ数の設定は,例えば,CPUコアからの最大ウェイ数を設定する特殊命令により行われ,もしくはメモリアクセス要求に最大ウェイ数を付加して行われる。最大ウェイ数が設定された後に,キャッシュメモリへのデータの登録処理が発生したときに,上記のリプレース処理によりリプレースされたキャッシュブロックにデータが格納され,各要求元に割り当てるキャッシュメモリのサイズを最大ウェイ数未満に維持するよう制御される。このように,キャッシュ分割制御による分割されたキャッシュサイズを動的に変更して,複数の要求元に対して限られた容量のキャッシュメモリを効率的に利用する。
特開2009−163450号公報 特開2011−18196号公報 特開2012−203729号公報 特開2002−140234号公報 特開2007−299423号公報
大規模な情報処理装置では,複数の演算処理装置で構成した演算処理装置システムを搭載する。各演算処理装置は複数のCPUコアとそれらで共有されるキャッシュメモリとを有し,各演算処理装置がそれぞれが管理するメインメモリにアクセスし,それぞれが有するキャッシュメモリにデータを登録する。したがって,各演算処理装置が,それぞれの複数のメモリアクセス要求元(例えば複数のVMなど)に対して,それぞれのキャッシュメモリの最大ウェイ数を設定してキャッシュ分割制御を行う。
しかしながら,第1の演算処理装置は,第2の演算処理装置内のキャッシュ分割制御に必要な要求元とその最大ウェイ数を含むキャッシュ分割情報を設定することができない。これを可能にするためには,キャッシュ分割情報を設定するための特殊な命令を新たに導入して,第1の演算処理装置がその特殊な命令を実行する必要がある。その結果,特殊な命令を処理できるように演算処理装置の構成を大幅に変更する必要がある。さらに,特殊な命令を処理することにより演算処理装置間に新たなバストランザクションが発生するので,通常のメモリアクセス要求によるレイテンシが悪化する。
そこで,1つの実施の形態の目的は,演算処理装置間でキャッシュ分割情報の設定をすることができる演算処理装置及び演算処理装置の制御方法を提供することにある。
実施の形態の第1の側面は,複数のコアと,第1のキャッシュ制御部と第1のキャッシュメモリとを含む第1のキャッシュとを有し,前記第1のキャッシュ制御部が,第1のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第1のキャッシュメモリを分割するキャッシュ分割制御を行う第1のコアグループと,
複数のコアと,第2のキャッシュ制御部と第2のキャッシュメモリとを含む第2のキャッシュとを有し,前記第2のキャッシュ制御部が,第2のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第2のキャッシュメモリを分割するキャッシュ分割制御を行う第2のコアグループと,
前記第1,第2のコアグループ間に設けられメモリアクセス要求が送信されるコアグループ間バスとを有し,
前記第1のコアグループのメモリアクセス要求元が,前記第2のコアグループが管理するメインメモリへのメモリアクセス要求を前記第2のキャッシュ分割情報を付加して発行した場合,前記第2のコアグループの第2のキャッシュ制御部が,前記発行されたメモリアクセス要求に応答して,前記付加された第2のキャッシュ分割情報を登録する演算処理装置である。
第1の側面によれば,演算処理装置間でキャッシュ分割情報の設定をすることができる。
本実施の形態における演算処理装置の構成を示す図である。 本実施の形態における演算処理装置の構成を示す図である。 本実施の形態におけるキャッシュL2_CACHEのより詳細な構成を示す図である。 データをキャッシュ登録する場合のリプレース制御部によるリプレース処理のフローチャート図である。 本実施の形態における最大ウェイ数を設定可能なメモリアクセス要求のフォーマットの一例を示す図である。 本実施の形態における最大ウェイ数付きメモリアクセス要求の処理を示すシーケンス図である。 キャッシュ登録指示付きIOストア要求のフォーマットを示す図である。 本実施の形態によるキャッシュ分割情報付きメモリアクセス要求により他のコアグループ内に最大ウェイ数を設定する例と,専用の最大ウェイ数設定要求により他のコアグループ内に最大ウェイ数を設定する比較例との比較を示す図である。
図1は,本実施の形態における演算処理装置の構成を示す図である。図1において,第1のコアグループLOCAL_CPU_0は,第1のメインメモリM_MEM_0を管理するCPUである。また,第2のコアグループHOME_CPU_1は,第2のメインメモリM_MEM_1を管理するCPUである。第1,第2のコアグループは,それぞれ異なるCPUチップの場合もあれば,単一のCPUチップ内に設けられた異なるCPUユニットの場合もある。本実施の形態では,異なるCPUチップで構成される演算処理装置の場合と,単一のCPUチップで構成される演算処理装置の場合のいずれにも適用できる。以下,異なるCPUチップの実施例と単一のCPUチップの実施例を区別することなく,2つのCPUをそれぞれを第1,第2のコアグループと称する。
第1のコアグループLOCAL_CPU_0は,複数,例えば4つのCPUコアCORE-00〜CORE-03と,それらのCPUコアに共通に設けられたキャッシュL2_CACHEと,IOバスIO_BUSを介して接続される外部のハードディスクHDDなどとの入出力を制御するIOデバイスIO_DEVICEと,リモートバッファR_BUFとを有する。そして,第1のコアグループLOCAL_CPU_0は,メインメモリM_MEM_0を管理し,そのメモリアクセスを制御する。CPUコアCORE-00〜CORE-03は,それぞれコアグループ内バスBUS_1を介してキャッシュL2_CACHEにメモリアクセス要求を発行し,キャッシュL2_CACHEがメモリアクセス要求を処理し,キャッシュミスした場合にメインメモリM_MEM_0へのメモリアクセスを制御する。
第2のコアグループLOCAL_CPU_1も,第1のコアグループLOCAL_CPU_0と同様の構成を有し,複数,例えば4つのCPUコアCORE-10〜CORE-13と,それらのCPUコアに共通に設けられたキャッシュL2_CACHEと,外部のハードディスクHDDなどとの入出力を制御するIOデバイスIO_DEVICEと,リモートバッファR_BUFとを有する。そして,第2のコアグループLOCAL_CPU_1は,メインメモリM_MEM_1を管理し,そのメモリアクセスを制御する。CPUコアCORE-10〜CORE-13は,それぞれコアグループ内バスBUS_1を介してキャッシュL2_CACHEにメモリアクセス要求を発行し,キャッシュL2_CACHEがメモリアクセス要求を処理し,キャッシュミスした場合にメインメモリM_MEM_1へのメモリアクセスを制御する。
第1のコアグループLOCAL_CPU_0と第2のコアグループHOME_CPU_1との間は,コアグループ間バスBUS_0で接続され,コアグループが互いに発行した相手のコアグループが管理するメインメモリへのメモリアクセス要求が,コアグループ間バスBUS_0を経由してバストランザクションにより送信される。
上記の第1のコアグループLOCAL_CPU_0はメインメモリM_MEM_0を管理しそのメモリアクセスを制御するとは,具体的には次のような管理,制御である。メインメモリM_MEM_0内のデータに対するメモリアクセス要求(ロード要求またはストア要求)は,第1のコアグループLOCAL_CPU_0内のメモリアクセスコントローラ(図示せず)が実行する。また,第1のコアグループLOCAL_CPU_0は,メインメモリM_MEM_0へのロード要求が発生し,メインメモリM_MEM_0のデータが第2のコアグループHOME_CPU_1により持ち出された場合には,その事実をメインメモリ内またはキャッシュ制御部内のディレクトリに記憶する。そして,その後メインメモリM_MEM_0内のデータに対して書き込みが発生した場合,ディレクトリをチェックし,そのデータを持ち出している第2のコアグループHOME_CPU_1のキャッシュメモリ内のデータを無効化した上で,書き込みを実行する。これにより,データのコヒーレンシを保つことができる。
図1では,第1のコアグループをメモリアクセス要求発行元のCPUとしてローカルCPUと称し,第2のコアグループをメモリアクセス要求発行元からアクセスされるCPUとしてホームCPUと称する。第1のコアグループと第2のコアグループが逆の関係になる場合もある。
図2は,本実施の形態における演算処理装置の構成を示す図である。図2には,第1,第2のコアグループ内のキャッシュL2_CACHE_0, L2_CACHE_1の構成が示され,さらに,各コアに生成されている仮想マシンVMが示されている。但し,コアグループ内バスBUS_1やIOデバイスは省略されている。
第1のコアグループLOCAL_CPU_0内のキャッシュL2_CACHE_0は,コアなどが発行したメモリアクセス要求などの各種要求を格納する要求ポート群R_PORTを有する。要求ポート群R_PORTは,メモリのデータを読み出すロード要求を格納するムーブインポートMIPと,キャッシュメモリ内のデータをメインメモリM_MEM_0に書き出す要求を格納するムーブアウトポートMOPと,メインメモリ内のデータをキャッシュメモリに予め格納するプリフェッチ要求を格納するプリフェッチポートPFPと,第2のコアグループHOME_CPU1からの要求を格納するリモート要求ポートR_RPとを有する。
キャッシュL2_CAHCE_0は,要求ポート群R_PORT内の要求を所定の優先度アルゴリズムで選択してキャッシュ制御部CC0に入力または投入する要求制御部RC0と,入力または投入された要求を処理するキャッシュ制御部CC0と,キャッシュメモリを構成するデータメモリD_RAMとタグメモリTAGとを有する。キャッシュ制御部CC0は,パイプライン構成でありキャッシュパイプラインとも称される。さらに,キャッシュL2_CACHE_0は,キャッシュミスした場合の処理を行うムーブインバッファMIBと,メインメモリM_MEM_0の読み出し及び書き込みを含むメモリアクセスを制御するメモリアクセスコントローラMACと,第2のコアグループHOME_CPU1と接続されるコアグループ間バスB_00への要求などを一時的に格納するリモートバッファR_BUFを有する。
図2の例では,4つのコアCORE_00〜CORE_03内にそれぞれ仮想マシンVMが生成されている。メモリアクセスの要求元として,コア,プロセス,仮想マシンの例があり,キャッシュ分割制御によりメモリアクセス要求元に対応してキャッシュメモリの分割を制御することを説明した。本実施の形態では,そのメモリアクセスの要求元の一例として,仮想マシンVMを例にして以下説明する。但し,キャッシュ分割制御によるキャッシュメモリの分割領域は,一般にセクタIDによって区別して管理される。その場合,メモリアクセス要求元にセクタIDが対応付けられる。
図2によれば,コアCORE_00内には仮想マシンVM_00が,コアCORE_01内には仮想マシンVM_01が,コアCORE_02内には仮想マシンVM_02が,コアCORE_03内には仮想マシンVM_03がそれぞれ生成されている。そして,各仮想マシンVM_00〜VM_03に対して,最大キャッシュブロック数を示す最大ウェイ数MAX_Wが,一例として2,0,4,2と設定されていることが示されている。この最大ウェイ数MAX_Wの設定は,例えばソフトウェイアにより行われる。
キャッシュL2_CACHE_0は,キャッシュ制御部CC0の一部として,キャッシュ分割制御におけるキャッシュブロックのリプレース制御を行うリプレース制御部RPC0を有する。そして,リプレース制御部RPCOは,各仮想マシンVMに対して設定された最大ウェイ数MAX_Wを有する最大ウェイ数テーブル(最大キャッシュブロック数)を有する。図2の例では,仮想マシンVM00,VM03に対しては,最大ウェイ数MAX_Wが「2」,「2」と設定され,仮想マシンVM01,VM02に対しては,最大ウェイ数MAX_Wが初期値の「0」のままになっている。初期値「0」の場合は,最大ウェイ数は無限大としてキャッシュ分割制御が行われるものとする。
図2において,第2のコアグループHOME_CPU1内の構成は,第1のコアグループLOCAL_CPU_0内の構成と同等である。但し,異なる構成は,第2のコアグループHOME_CPU1内の各コアCORE_10〜CORE_13には,それぞれ仮想マシンVM_10〜VM_13が生成され,最大ウェイ数MAX_Wはそれぞれ「0」のままになっている。また,それに対応して,リプレース制御部RPC1内の最大ウェイ数テーブル内も各仮想マシンに設定された最大ウェイ数MAX_Wもそれぞれ「0」のままになっている。
そして,コアグループ間バスBUS_0は,前述のとおり,リモートバッファR_BUFとリモート要求ポートR_RPとの間に設けられるとともに,ムーブインバッファMIB間にも設けられる。
図3は,本実施の形態におけるキャッシュL2_CACHEのより詳細な構成を示す図である。第1,第2のコアグループのキャッシュL2_CACHEは,前述のとおり同等の構成であるので,図3では,第1のコアグループLOCAL_CPU_0内のキャッシュL2_CACHE_0を示した。
図3において,キャッシュメモリを構成するタグメモリTAG_RAMとデータメモリD_RAMは,セットアソシエイティブ方式の構成であり,共通のインデックスに対して複数のキャッシュブロックのタグ値とデータを登録できる複数ウェイ構成である。具体的には,例えば32ウェイで構成されている。そして,図3のデータメモリD_RAMに示されるように,キャッシュメモリが,4つの仮想マシンVM00〜VM03に対応して4つのセクタ00〜03に分割して割り当てられている。図示されていないが,タグメモリTAG_RAMもそれに対応して4つのセクタに分割されている。したがって,この例では,キャッシュメモリの4つのセクタ00〜03が,それぞれ4つの仮想マシンVM00〜VM03に割り当てられている。
図3の例では,例えば,仮想マシンVM00に対しては2つのウェイ(ウェイ番号0,1)が割り当てられ,VM01には7つのウェイ(ウェイ番号2〜8)が,VM02には2つのウェイ(ウェイ番号9,10)が,そして,VM03には21のウェイ(ウェイ番号11〜31)が割り当てられている。
一方,キャッシュ制御部CC0のキャッシュ分割制御を行うリプレース制御部RPC0は,仮想マシンVMのID00〜03に対応して設定された最大ウェイ数MAX_Wを登録する最大ウェイ数テーブルMW_TBLと,リプレースすべきウェイを選択するリプレースウェイ選択部RP_Wとを有する。リプレース制御部RPCOによるリプレース制御については,後述する。
キャッシュL2_CACHE_0の他に,図3には,4つのコアCORE_00〜CORE_03と要求ポート群R_PORTとを接続するコアグループ内バスBUS_1が示されている。このように,4つのコアCORE_00〜CORE_03内の仮想マシンVMは,それぞれ,メモリアクセス要求やムーブアウト要求やプリフェッチ要求を,コアグループ内バスBUS_1を介して対応する要求ポートMIP,MOP,PFPに発行する。
次に,キャッシュ制御部によるキャッシュ分割制御について説明する。前提として,第1のコアグループLOCAL_CPU_0内のコアCOREに生成されている仮想マシンVMは,キャッシュ分割情報を付加したメモリアクセス要求を発行して,キャッシュ制御部CC0のリプレース制御部RPC0内の最大ウェイ数テーブルMW_TLBに最大ウェイ数を設定する。例えば,コアCORE_02に生成されている仮想マシンVM_02が,メモリアクセス要求としてメインメモリM_MEM_0のアドレスに対するロード要求を発行する。このロード要求には,メインメモリM_MEM_0内のロード先のアドレスと要求元の仮想マシンVMのIDが含まれるとともに,最大ウェイ数の情報も含まれる。
コアCORE_02が発行したロード要求は,コアグループ内バスBUS_1を介してムーブインポートMIPに格納され,要求制御部RCOがムーブインポートMIP内のロード要求のエントリを選択して,キャッシュ制御部CC0に入力する。キャッシュ制御部CC0は,このロード要求のエントリに応答して,キャッシュヒット判定や,キャッシュヒットの場合のコアCORE_02へのデータ応答や,キャッシュミスヒットの場合のメインメモリM_MEM_0へのリード要求などに加えて,ロード要求に付加されている仮想マシンのIDと最大ウェイ数とを含むキャッシュ分割情報に基づいて,リプレース制御部RPC0内の最大ウェイ数テーブルMW_TBLに,その仮想マシンのIDに対応して最大ウェイ数を設定する。
事前に仮想マシンのIDに対応して最大ウェイ数が設定されている状態で,次に,同じ仮想マシンVM_02が例えばロード要求を発行する。そのロード要求に応答して,キャッシュ制御部CC0がキャッシュミス判定をした場合,キャッシュミス制御部CC0は,ムーブインバッファMIBにそのエントリを登録し,メモリアクセスコントローラMACを介してメインメモリM_MEM_0に読み出し要求を行い,データ応答を受信する。それに応答して,ムーブインバッファMIBに登録した前述のエントリが読み出したデータと共に,再度キャッシュ制御部CC0に入力される。
この場合,キャッシュ制御部CC0は,メインメモリから読み出したデータとそのタグ情報を,データメモリD_RAMとキャッシュメモリを構成するタグメモリTAG_RAMに登録する。このキャッシュメモリへのデータ登録の際に,リプレース制御部RP0がどのウェイにデータとタグ情報を登録するかのリプレースウェイの選択を行う。
図4は,データをキャッシュ登録する場合のリプレース制御部によるリプレース処理のフローチャート図である。キャッシュ制御部CC0は,前述のようにムーブインバッファMIBに登録したキャッシュ登録のエントリに応答して(S30),リプレース制御部RPC0にキャッシュ登録すべきウェイの選択処理を要求する。リプレース制御部RPC0内のリプレースウェイ選択部RP_Wは,仮想マシンVM_02に割り当てられている現在のウェイ数が最大ウェイ数テーブルMW_TBLに設定されている最大ウェイ数MAX_WAYと等しいか否か,つまり最大ウェイ数MAX_WAYに達しているか否かをチェックする(S32)。現在のウェイ数が最大ウェイ数MAX_WAYと等しい場合は(S34のYES),仮想マシンVM_02に割り当てられているウェイのうち,例えばLRUアルゴリズムにより,最も最近使われなかった,つまり使われてから最も長い時間が経過したデータとタグを格納しているウェイを選択する(S36)。一方,現在のウェイ数が最大ウェイ数MAX_WAYと等しくない場合は(S34のNO),仮想マシンVM_02以外の仮想マシンに割り当てられているウェイのうち,例えばLRUアルゴリズムにより,最も最近使われなかった,つまり使われてから最も長い時間が経過したデータとタグを格納しているウェイを選択する(S38)。
そして,リプレース制御部RP0は,選択したウェイをキャッシュ制御部CC0に回答する。そして,キャッシュ制御部CC0は,選択されたウェイのデータをメインメモリM_MEM_0に書き戻すとともに,選択されたウェイにキャッシュ登録対象のデータとタグ情報を登録する。
第2のコアグループHOME_CPU_1内のコアCOREに生成されている仮想マシンVMが,キャッシュ分割情報を付加したメモリアクセス要求を発行して,キャッシュ制御部CC1のリプレース制御部RPC1内の最大ウェイ数テーブルMW_TLBに最大ウェイ数を設定する処理も,上記と同様である。さらに,その設定した最大ウェイ数に基づいて,キャッシュ登録の際にリプレース制御部RPC1が登録すべきウェイを選択する処理も,上記と同様である。
以上のように,第1のコアグループLOCAL_CPU_0内のコアCOREに生成されている仮想マシンVMは,メインメモリM_MEM_0へのメモリアクセス要求にキャッシュ分割情報(仮想マシンIDと最大ウェイ数)を付加して発行することで,第1のコアグループLOCAL_CPU_0内のキャッシュL2_CACHE_0のリプレース制御部RPC0に最大ウェイ数を設定することができる。それにより,設定した最大ウェイ数に基づいて,キャッシュL2_CACHE_0内のキャッシュ制御部CC0のリプレース制御部RPC0がキャッシュ登録すべきウェイを選択する。これにより,第1のコアグループLOCAL_CPU_0内のキャッシュ制御部CC0が,第1のコアグループLOCAL_CPU_0内の仮想マシンVMにキャッシュメモリの分割領域を割り当てるキャッシュ分割制御を行う。
同様に,第2のコアグループHOME_CPU_1内のコアCOREに生成されている仮想マシンVMは,メインメモリM_MEM_1へのメモリアクセス要求にキャッシュ分割情報(仮想マシンIDと最大ウェイ数)を付加して発行することで,第2のコアグループHOME_CPU_1内のキャッシュL2_CACHE_1内のキャッシュ制御部CC1のリプレース制御部RPC1に最大ウェイ数を設定することができる。それにより,設定した最大ウェイ数に基づいて,キャッシュL2_CACHE_1のリプレース制御部RPC1がキャッシュ登録すべきウェイを選択する。これにより,第2のコアグループHOME_CPU_1内のキャッシュ制御部CC0が,第2のコアグループHOME_CPU_1内の仮想マシンVMにキャッシュメモリの分割領域を割り当てるキャッシュ分割制御を行う。
上記のように,第1,第2のコアグループ内の仮想マシンは,キャッシュ分割情報を付加したメモリアクセス要求を発行することで,同じコアグループ内のキャッシュのリプレース制御部RPC0,RPC1に最大ウェイ数を設定し,その後,キャッシュ制御部はキャッシュ登録の際にキャッシュ分割制御を行う。上記と同様に,メモリアクセス要求であるストア要求に最大ウェイ数を含むキャッシュ分割情報を付加して最大ウェイ数を設定することもできる。
一方,第1のコアグループLOCAL_CPU_0であるローカルCPU内の仮想マシンが,第2のコアグループHOME_CPU_1であるホームCPUが管理するメインメモリM_MEM_1にメモリアクセス要求を行うことがある。例えば,メモリアクセス要求がロード要求の場合で説明すると,第1のコアグループLOCAL_CPU_0内の仮想マシンがメインメモリM_MEM_1へのロード要求を発行すると,ロード要求を入力した第1のコアグループ内のキャッシュ制御部CC0が,キャッシュミス判定して,そのロード要求をリモートバッファR_BUFとコアグループ間バスBUS_0を介して,第2のコアグループHOME_CPU_1のリモート要求ポートR_RPに格納する。このロード要求に応答して,第2のコアグループHOME_CPU_1のキャッシュ制御部CC1は,キャッシュミス判定した場合に,メモリアクセスコントローラMACによりメインメモリM_MEM_1へのリード要求を実行させてデータを取得し,ムーブインバッファMIBとコアグループ間バスBUS_0を介して,第1のコアグループLOCAL_CPU_0内のムーブインバッファMIBにデータ応答する。このデータ応答されたデータは,ムーブインバッファMIBからキャッシュ制御部CC0に再投入され,キャッシュ制御部CC0がデータとタグ情報をキャッシュ登録する。
上記のロード要求において,第1のコアグループ内の仮想マシンが第2のコアグループが管理するメインメモリにロード要求する場合,第2のコアグループ内のキャッシュメモリにロード要求のデータを登録することはない。したがって,第1のコアグループ内の仮想マシンが,第2のコアグループ内のキャッシュ制御部CC1のリプレース制御部RPC1に最大ウェイ数を設定する必要性はない。
一方,メモリアクセス要求がストア命令の場合は,第1のコアグループ内のキャッシュメモリにストアデータを書き込み,その後キャッシュ制御によりそのデータのキャッシュブロックが追い出されるときに,第2のコアグループが管理するメインメモリにデータの書き戻しが行われる。この場合も,第1のコアグループ内の仮想マシンが,第2のコアグループ内のキャッシュ制御部CC1のリプレース制御部RPC1に最大ウェイ数を設定する必要性はない。
しかしながら,近年,仮想マシンからの要求ではなく,IOデバイスIO_DEVICEからのIOストア要求に応答して,メモリアクセスコントローラMACが外部のストレージ装置HDDなどから転送されたデータを,DMA(Direct Memory Access)処理によりメインメモリに書き込む際に,キャッシュメモリにもデータを登録することが行われるようになった。いわゆる,キャッシュインジェクション処理である。キャッシュインジェクションのメリットは,IOストア要求に後発行されるロード要求に応答して,キャッシュ制御部がキャッシュメモリ内のデータをデータ応答することができ,ロード要求のレイテンシを短くすることができることにある。
そして,第1のコアグループLOCAL_CPU_0内の仮想マシンが要求するDMA要求に応答して,第2のコアグループHOME_CPU_1のIOデバイスIO_DEVICEがIOストア要求を発行し,それに応答して,キャッシュ制御部CC1がメモリアクセスコントローラMACにIOストア要求を処理させる場合にも,上記のキャッシュインジェクション処理が行われる。つまり,キャッシュインジェクション処理により,第2のコアグループHOME_CPU_1内のキャッシュ制御部CC1がそのキャッシュメモリ内に,第1のコアグループLOCAL_CPU_0内の仮想マシンが起点となったIOストア要求のデータを登録する。
この場合,第1コアグループ内の仮想マシンが要求したIOストア要求のデータが第2のコアグループ内のキャッシュメモリに登録される。そのため,そのキャッシュ制御部CC1は,第1のコアグループ内の仮想マシンに対する最大ウェイ数を予め設定しておく必要がある。その理由は,最大ウェイ数の初期値は無限大であるため,最大ウェイ数が設定されてない状態で,キャッシュ制御部CC1がキャッシュインジェクションにより外部からダウンロードしたデータをそのキャッシュメモリに登録すると,キャッシュメモリ内の多くのキャッシュブロックにデータが登録され,第2コアグループ内の仮想マシンのデータが追い出されるからである。その結果,本来のキャッシュ分割制御ができなくなる。
そこで,本実施の形態では,以下に説明するとおり,第1のコアグループ内の仮想マシンが,第2のコアグループ内のキャッシュ制御部CC1のリプレース制御部RPC1に最大ウェイ数を設定できるように改良されている。本実施の形態によれば,第1のコアグループLOCAL_CPU_0内の仮想マシンVMが,第2のコアグループHOME_CPU_1が管理するメインメモリM_MEM_1へのメモリアクセス要求をキャッシュ分割情報を付加して発行すると,そのメモリアクセス要求に応答して,第2のコアグループHOME_CPU_1内のキャッシュ制御部CC1がリプレース制御部RPC1内の最大ウェイ数テーブルに最大ウェイ数を設定する。メモリアクセス要求に付加するキャッシュ分割情報は,前述のとおり,最大ウェイ数とキャッシュメモリの分割領域のセクタ番号とを有する。このセクタ番号は,前述の例では,キャッシュメモリの割当を要求している仮想マシンVMのID番号である。但し,仮想マシンVMのID番号以外に,例えばキャッシュメモリの割当を要求するプロセスIDや,コアIDでもよい。キャッシュ分割制御がどのように行われるかに依存する。
ローカルCPUである第1のコアグループ内の仮想マシンが,リモートCPUである第2のコアグループが管理するメインメモリM_MEM_1へのメモリアクセス要求にキャッシュ分割情報を付加して発行することで,最大ウェイ数を設定可能にする。このようにメモリアクセス要求により他のコアグループ内の最大ウェイ数を設定可能にすることで,他のコアグループ内の最大ウェイ数設定のための特別の要求を定義する必要がない。また,通常のメモリアクセス要求以外に最大ウェイ数設定のための要求を利用する場合は,コアグループ間バスBUS_0のトラフィック量が増大し,通常のメモリアクセス要求のレイテンシが悪化する。したがって,本実施の形態によれば,コアグループ間バスBUS_0のトラフィック量を増やすことなく,異なるコアグループ内のキャッシュ制御部に最大ウェイ数を設定することができる。
図5は,本実施の形態における最大ウェイ数を設定可能なメモリアクセス要求のフォーマットの一例を示す図である。最大ウェイ数を設定可能なメモリアクセス要求は,メインメモリのデータを読み出すロード要求と,メインメモリにデータを書き込むストア要求とが含まれる。この最大ウェイ数設定可能なメモリアクセス要求は,プリフェッチ要求やムーブアウト要求が含まれても良い。
図5のメモリアクセス要求は,64ビットのヘッダHEADERと,16組のデータブロックDATA#0-15とを有する。ロード要求やプリフェッチ要求の場合は,ヘッダHEADERだけあればよく,データブロックDATA#0-16が含まれていなくても良い。図5に示した64ビットのヘッダHEADERの例は,ビット0−6は未使用であり,ビット7−46にアドレスADDRESSを,ビット47−53にオペランドコードOP_CODEを,ビット54−57に仮想マシンのID(VM_ID)を,ビット58−63に最大ウェイ数MAX_WAYをそれぞれ含む。
未使用の7ビットは,キャッシュブロックのサイズ128ビット=2に対応する。また,アドレスADDRESS内のビット7−15の情報がキャッシュメモリの検索用インデックスに利用される。また,アドレスADDRESS内のビット16の情報がメモリインタリーブビットとして利用される。つまり,このメモリインタリーブビットが「0」のデータは,第1のコアグループLOCAL_CPU_0が管理するメインメモリM_MEM_0に記憶され,メモリインタリーブビットが「1」のデータは,第2のコアグループHOME_CPU_1が管理するメインメモリM_MEM_1に記憶される。したがって,アドレスADDRESS内のビット7−15のビット数9はOS(Operation System)が管理するページ領域のサイズ2に対応する。さらに,アドレスADDRESS内のビット17−46の上位アドレスが,キャッシュメモリのタグメモリTAGに登録されるタグ情報に利用される。
オペレーションコードOP_CODEにより,ロード要求とストア要求が区別される。仮想マシンのID情報は全ての要求に含まれるが,最大ウェイ数MAX_WAYは,最大ウェイ数を設定したい場合に含まれるようにすればよく,必ずしも全ての要求に含まれる必要はない。
図6は,本実施の形態における最大ウェイ数付きメモリアクセス要求の処理を示すシーケンス図である。一例として,ローカルCPU(メモリアクセス要求発行元CPU)である第1のコアグループLOCAL_CPU_0内のコアCORE_2の仮想マシンVM_02が,第2のコアグループHOME_CPU_1がホームCPUとして管理するメインメモリM_MEM_1へのロード要求を発行し,ムーブインポートMIPに発行する(S1)。このロード要求には,前述のとおり,仮想マシンIDと最大ウェイ数MAX_WAYが付加されている。
そして,要求制御部RO0は,そのロード要求をキャッシュ制御部CC0に入力する。キャッシュ制御部CC0は,そのロード要求に応答して,キャッシュタグを検索しキャッシュミス判定し(S3),ムーブインバッファMIBにロード要求のエントリを登録し,リモートバッファR_BUFにロード要求を格納する(S5)。また,キャッシュ制御部CC0は,メモリインタリーブビットが「1」であるため,リプレース制御部RPC0内の最大ウェイ数テーブルMW_TABLEにロード要求の最大ウェイ数を設定しない(S4)。但し,キャッシュ制御部CC0は,メモリインタリーブビットにかかわらず最大ウェイ数を設定するようにしてもよい。
リモートバッファR_BUFに格納された最大ウェイ数付きロード要求は,コアグループ間バスBUS_0を経由するバストランザクションとして,第2のコアグループHOME_CPU_1内のリモート要求ポートR_RPに伝播する(S11)。
第2コアグループ内の要求制御部RC1がリモート要求ポートR_RP内のロード要求をキャッシュ制御部CC1に出力する(S12)。それに応答して,キャッシュ制御部CC1は,ロード要求のメモリインタリーブビットが「1」であるため,リプレース制御部RPC1内の最大ウェイ数テーブルMW_TABLEにロード要求の最大ウェイ数を設定する(S14)。また,キャッシュ制御部CC1は,ロード要求に応答して,キャッシュメモリのタグを検索しキャッシュミス判定し(S13),ムーブインバッファMIBにエントリを登録し,メモリアクセスコントローラMACにメインメモリM_MEM_1へのリード処理を行わせ,ロード要求のデータを読み出す(S16)。
メモリアクセスコントローラMACは,読み出したデータを,ムーブインバッファMIBに応答し,ムーブインバッファMIBは,その読み出しデータを登録したエントリと共に,コアグループ間バスBUS_0を経由して,第1のコアグループHOME_CPU_1内のムーブインバッファMIBのエントリにデータ応答する(S17)。このとき,第1のコアグループの仮想マシンVM_02からのロード要求であるため,前述のように,第2のコアグループHOME_CPU_1内のキャッシュ制御部CC1は,読み出しデータをキャッシュ登録することはせず,したがって,設定した最大ウェイ数に基づくキャッシュ分割制御を行うこともない。
第1のコアグループLOCAL_CPU_1内のムーブインバッファMIBは,データ応答に応答して,登録したエントリをキャッシュ制御部CC0に入力し(S22),キャッシュ制御部CC0はキャッシュメモリのタグメモリTAG_RAMにタグ情報を登録し,データメモリD_RAMにリードデータを登録する(S23,S25)。そして,キャッシュ制御部CC0はリードデータが要求元の仮想マシンVM_02にデータ応答する(S26)。
上記の通り,第1のコアグループLOCAL_CPU_0内の仮想マシンVM_02がメインメモリM_MEM_1に対するロード要求にキャッシュ分割情報を付加して発行することで,第2のコアグループHOME_CPU_1内のキャッシュ制御部CC1のリプレース制御部RPC1に仮想マシンVM_02の最大ウェイ数を設定することができる。このロード要求に応答して,第2のコアグループ内のキャッシュ制御部CC1は,キャッシュメモリにキャッシュ登録を行わず,さらに,設定した最大ウェイ数に基づくキャッシュ分割制御によるキャッシュブロックのリプレース制御も行わない。
上記の例では,他のコアグループが管理するメインメモリ宛のロード要求に最大ウェイ数を付加して発行することで,他のコアグループに最大ウェイ数の設定を行っている。しかし,ロード要求に限定されず,他のコアグループが管理するメインメモリ宛のストア要求に最大ウェイ数を付加して発行することで,他のコアグループに最大ウェイ数の設定を行うようにしてもよい。
図1,2の演算処理装置または演算処理装置システムでは,コアCOREではないIOでバイスが,コアCOREとは非同期に,そのコアCOREの仮想マシンVMが近い将来使用すると予想されるデータを外部からダウンロードしメインメモリにストアすると共にキャッシュメモリに登録するキャッシュ登録付きIOストア要求を発行する。キャッシュ登録指示付きIOストア要求は,メインメモリにストアせずにキャッシュメモリにだけ入力データを登録する要求でもよい。
図7は,キャッシュ登録指示付きIOストア要求のフォーマットを示す図である。図5のロード,ストア要求のヘッダHEADERと同様に,IOストア要求のフォーマットは,ビット0−6は不使用,ビット7−26にアドレスADDRESSが,ビット47−53にオペレーションコードが,ビット54−57にIOストア要求元の仮想マシンVMのID(VM_ID)が割り当てられる。ビット58−63は未使用である。
図6で説明した第1のコアグループ内の仮想マシンVM_02がロード要求により第2のコアグループ内のキャッシュ制御部CC1のリプレース制御部RPC1に最大ウェイ数を設定した後に,同じ仮想マシンVM_02によるDMA要求に応答して,IOデバイスが仮想マシンVM_02と非同期でキャッシュ登録指示付きIOストア要求を発行する場合の処理を説明する。このIOストア要求には,図7のとおり,IOストア先のメインメモリのアドレスが含まれる。以下の例は,第2のコアグループHOME_CPU_1が管理するメインメモリM_MEM_1が,IOストア先のメインメモリとして指定される。
第1のコアグループ内の仮想マシンVM_02が発行するDMA要求に応答して,第2コアグループ内のIOデバイスが,キャッシュ登録指示付きIOストア要求を発行する。このIOストア要求は,第2のコアグループ内のムーブインポートMIBからキャッシュ制御部CC1に入力され,それに応答して,キャッシュ制御部CC1はメモリアクセスコントローラMACにIOデバイスが入力するデータをメインメモリM_MEM_1に書き込む処理を行わせる。そして,メモリアクセスコントローラMACは,それと共に,キャッシュ制御部CC1にそのデータをキャッシュ登録させ,実質的に入力データがキャッシュメモリにプリフェッチ済みにされた状態にする。メモリアクセスコントローラMACは,メインメモリM_MEM_1にデータを書き込むことなく,キャッシュ制御部CC1にキャッシュ登録させるようにしてもよい。
このキャッシュ制御部CC1によるIOデバイスが入力するデータのキャッシュ登録において,キャッシュ制御部CC1は,先に設定済みの仮想マシンVM_02の最大ウェイ数に基づいて,キャッシュメモリのキャッシュブロック,つまりウェイのリプレース制御を行う。リプレース制御は,図4で説明したとおりである。キャッシュ制御部CC1のリプレース制御部RPC1には仮想マシンVM_02の最大ウェイ数が設定済みであるので,キャッシュ登録指示付きIOストア要求によるキャッシュ登録処理でのリプレース制御は適切に行われ,大容量の入力データにより既にキャッシュ登録されている第2コアグループ内の仮想マシンのデータの大部分がキャッシュメモリから追い出されることはない。
そして,キャッシュ登録指示付きIOストア要求が処理された後に,第1コアグループ内の仮想マシンVM_02がそのIOストアされたデータについてロード要求を発行すると,前述と同様にロード要求は第1コアグループ内のキャッシュ制御部CC0から第2コアグループ内のキャッシュ制御部CC1に転送され,キャッシュ制御部CC1はキャッシュヒットを検出し,キャッシュメモリ内にプリフェッチされているデータを第1コアグループ内のムーブインバッファMIBに応答する。したがって,仮想マシンVM_02が発行したロード要求のレイテンシは短くなる。
本実施の形態では,第1のコアグループ内の仮想マシンVMが,第2のコアグループが管理するメインメモリ宛のメモリアクセス要求により,第2のコアグループ内のキャッシュ制御部CC1のリプレース制御部RPC1に最大ウェイ数を設定する。したがって,最大ウェイ数設定のための特別の要求が発行されないので,コアグループ間バスBUS_0のトラフィック量の増大を抑制することができる。また,特別の要求を処理することによるキャッシュ制御部CC1のビジー率の悪化を抑制することができる。
図8は,本実施の形態によるキャッシュ分割情報付きメモリアクセス要求により他のコアグループ内に最大ウェイ数を設定する例と,専用の最大ウェイ数設定要求により他のコアグループ内に最大ウェイ数を設定する比較例との比較を示す図である。本実施の形態ではキャッシュ分割情報付きロード要求によりキャッシュ分割情報が更新され,比較例では専用の最大ウェイ数設定要求によりキャッシュ分割情報が更新される。
例えば,10回に1回の割合でキャッシュ分割情報を更新するトランザクションが発生したと仮定して,性能比較を行う。更に,図8に示されるように,ロード要求の割合が20%,キャッシュミス率が4%(キャッシュヒット率が96%),キャッシュヒットレイテンシが20サイクル,キャッシュミスレイテンシが200サイクルと仮定する。また,プログラムの命令数が100であり,ロード要求が発行されるロード命令以外の命令は1サイクルで実行が完了すると仮定する。そして,専用の最大ウェイ数設定要求を採用した場合は,コアグループ間バスBUS_0を競合する要求が増えるので,キャッシュミスレイテンシが例えば10%悪化して,220サイクルになると仮定する。本実施の形態のように専用の最大ウェイ数設定要求を採用しない場合は,図8に示されるとおり,キャッシュミスレイテンシは200サイクルと仮定する。
上記の仮定に基づいて計算すると,本実施の形態のように通常のロード要求により最大ウェイ数を設定する例と,専用の最大ウェイ数設定要求を採用する比較例において,100のプログラム命令の実行に要するサイクル数は,図8に示されるとおりである。
まず,本実施の形態の例の場合の100のプログラム命令の実行に要するサイクル数は,ロード命令以外の数(100-20)が1サイクル,ロード命令の数20のうちキャッシュミス率4%200サイクル,キャッシュヒット率96%が20サイクルを要するので,それらを加算すると,次のとおりである。
(100-20) ×1[cycle]+20×4%×200[cycle]+20×96%×20[cycle]=624[cycle]
一方,専用の最大ウェイ数設定要求を採用する比較例の場合の100のプログラム命令の実行に要するサイクル数は,キャッシュミスの場合に220サイクルを要するので,同じように加算すると,次の通りである。
(100-20) ×1[cycle]+20×4%×220[cycle]+20×96%×20[cycle]=640[cycle]
実際には,比較例の場合,ホームCPUである第2のコアグループ内のパイプライン制御部のビジー率もコアグループ間バスと同様に10%悪化するので,ホームCPU上で動作する仮想マシンの性能は,上記の数式以上に悪化することが予想される。
上記の通り,比較例に対して,本実施の形態は他のコアグループが管理するメインメモリへのロード要求やストア要求にキャッシュ分割情報を付加して,他のコアグループ内のキャッシュ制御部に最大ウェイ数を設定するので,全体の動作効率を高くすることができる。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
複数のコアと,第1のキャッシュ制御部と第1のキャッシュメモリとを含む第1のキャッシュとを有し,前記第1のキャッシュ制御部が,第1のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第1のキャッシュメモリを分割するキャッシュ分割制御を行う第1のコアグループと,
複数のコアと,第2のキャッシュ制御部と第2のキャッシュメモリとを含む第2のキャッシュとを有し,前記第2のキャッシュ制御部が,第2のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第2のキャッシュメモリを分割するキャッシュ分割制御を行う第2のコアグループと,
前記第1,第2のコアグループ間に設けられメモリアクセス要求が送信されるコアグループ間バスとを有し,
前記第1のコアグループのメモリアクセス要求元が,前記第2のコアグループが管理するメインメモリへのメモリアクセス要求を前記第2のキャッシュ分割情報を付加して発行した場合,前記第2のコアグループの第2のキャッシュ制御部が,前記発行されたメモリアクセス要求に応答して,前記付加された第2のキャッシュ分割情報を登録する演算処理装置。
(付記2)
前記第2のコアグループの第2のキャッシュ制御部が,前記第2のキャッシュ分割情報を登録した後,当該登録した第2のキャッシュ分割情報に基づいて前記第2のキャッシュメモリに対し前記キャッシュ分割制御を行う付記1に記載の演算処理装置。
(付記3)
前記第2のコアグループの第2のキャッシュ制御部が,前記第2のキャッシュ分割情報を登録した後,外部から入力されるデータを前記第2のキャッシュメモリに登録するキャッシュインジェクション要求に応答して,前記登録した第2のキャッシュ分割情報に基づいて前記第2のキャッシュメモリに対し前記キャッシュ分割制御を行い,前記キャッシュ分割制御で選択されたキャッシュブロック内に前記入力されるデータを登録する付記1に記載の演算処理装置。
(付記4)
前記第2のコアグループの第2のキャッシュ制御部が,前記第1のコアグループのメモリアクセス要求元が発行したメモリアクセス要求に応答して,前記第2のキャッシュメモリにデータを登録せずに,前記第1のコアグループ内の前記メモリアクセス要求元にデータ応答する付記1に記載の演算処理装置。
(付記5)
前記第2のコアグループの第2のキャッシュ制御部が,前記第1のコアグループのメモリアクセス要求元が発行したメモリアクセス要求に応答して,前記第2のコアグループが管理するメインメモリへのアクセス制御を行い,前記第2のキャッシュメモリにアクセスしたデータを登録せずに,前記第1のコアグループ内の前記メモリアクセス要求元にデータ応答する付記1に記載の演算処理装置。
(付記6)
前記データ応答に応答して,前記第1のキャッシュ制御部は前記第1のキャッシュメモリに前記データ応答のデータを登録する付記4または5に記載の演算処理装置。
(付記7)
前記キャッシュ分割情報は,前記メモリアクセス要求元と,前記メモリアクセス要求元に割り当てられる最大キャッシュブロック数とを有し,
前記キャッシュ分割制御は,キャッシュメモリにデータを登録するときに,前記メモリアクセス要求元に割り当てられている現キャッシュブロック数が前記最大キャッシュブロック数に達するまで,他のメモリアクセス要求元に割り当てられているキャッシュブロックを前記メモリアクセス要求元に割り当てて前記データを登録する付記1に記載の演算処理装置。
(付記8)
複数のコアとキャッシュメモリとを有する第2の演算処理装置とバスを介して接続される第1の演算処理装置であって,
複数のコアと,
第1のキャッシュ制御部と第1のキャッシュメモリとを含む第1のキャッシュとを有し,
前記第1のキャッシュ制御部が,第1のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第1のキャッシュメモリを分割するキャッシュ分割制御を行い,
前記第2の演算処理装置のメモリアクセス要求元が,前記第1の演算処理装置が管理するメインメモリへのメモリアクセス要求を前記第1のキャッシュ分割情報を付加して発行した場合,前記第1のキャッシュ制御部が,前記発行されたメモリアクセス要求に応答して,前記付加された第1のキャッシュ分割情報を登録する演算処理装置。
(付記9)
複数のコアと,第1のキャッシュ制御部と第1のキャッシュメモリとを含む第1のキャッシュとを有し,前記第1のキャッシュ制御部が,第1のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第1のキャッシュメモリを分割するキャッシュ分割制御を行う第1のコアグループと,
複数のコアと,第2のキャッシュ制御部と第2のキャッシュメモリとを含む第2のキャッシュとを有し,前記第2のキャッシュ制御部が,第2のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第2のキャッシュメモリを分割するキャッシュ分割制御を行う第2のコアグループと,
前記第1,第2のコアグループ間に設けられメモリアクセス要求が送信されるコアグループ間バスとを有する演算処理装置の制御方法であって,
前記第1のコアグループのメモリアクセス要求元が,前記第2のコアグループが管理するメインメモリへのメモリアクセス要求を前記第2のキャッシュ分割情報を付加して発行した場合,前記第2のコアグループの第2のキャッシュ制御部が,前記発行されたメモリアクセス要求に応答して,前記付加された第2のキャッシュ分割情報を登録する工程を有する演算処理装置の制御方法。
(付記10)
前記第2のコアグループの第2のキャッシュ制御部が,前記第2のキャッシュ分割情報を登録した後,外部から入力されるデータを前記第2のキャッシュメモリに登録するキャッシュインジェクション要求に応答して,前記登録した第2のキャッシュ分割情報に基づいて前記第2のキャッシュメモリに対し前記キャッシュ分割制御を行い,前記キャッシュ分割制御で選択されたキャッシュブロック内に前記入力されるデータを登録する工程を有する付記9に記載の演算処理装置の制御方法。
(付記11)
前記キャッシュ分割情報は,前記メモリアクセス要求元と,前記メモリアクセス要求元に割り当てられる最大キャッシュブロック数とを有し,
前記キャッシュ分割制御は,キャッシュメモリにデータを登録するときに,前記メモリアクセス要求元に割り当てられている現キャッシュブロック数が前記最大キャッシュブロック数に達するまで,他のメモリアクセス要求元に割り当てられているキャッシュブロックを前記メモリアクセス要求元に割り当てて前記データを登録する付記9に記載の演算処理装置の制御方法。
LOCAL_CPU_0:第1のコアグループ,他の演算処理装置
HOME_CPU_1:第2のコアグループ,演算処理装置
CORE:コア
L2_CACHE:L2キャッシュ,キャッシュ
RC0,RC1:要求制御部
CC0,CC1:キャッシュ制御部
RPC0,RPC1:リプレース制御部
MW_TBL:最大キャッシュブロック数テーブル,最大ウェイ数テーブル
RP_W:リプレースウェイ選択部
D_RAM:データメモリ(キャッシュメモリ)
TAG_RAM:タグメモリ(キャッシュメモリ)
BUS_0:コアグループ間バス
BUS_1:コアグループ内バス
BUS_2:メモリアクセスバス
M_MEM_0,M_MEM_2:メインメモリ
MIB:キャッシュミス制御部,ムーブインバッファ
MAC:メモリアクセス制御部
R_BUF:リモートバッファ
R_PORT:要求ポート(メモリアクセス要求格納部)
MIP:ムーブインポート(メモリアクセス要求格納部)
MOP:ムーブアウトポート
PFP:プリフェッチポート
R_RP:リモートリクエストポート

Claims (8)

  1. 複数のコアと,第1のキャッシュ制御部と第1のキャッシュメモリとを含む第1のキャッシュとを有し,前記第1のキャッシュ制御部が,第1のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第1のキャッシュメモリを分割するキャッシュ分割制御を行う第1のコアグループと,
    複数のコアと,第2のキャッシュ制御部と第2のキャッシュメモリとを含む第2のキャッシュとを有し,前記第2のキャッシュ制御部が,第2のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第2のキャッシュメモリを分割するキャッシュ分割制御を行う第2のコアグループと,
    前記第1,第2のコアグループ間に設けられメモリアクセス要求が送信されるコアグループ間バスとを有し,
    前記第1のコアグループのメモリアクセス要求元が,前記第2のコアグループが管理するメインメモリへのメモリアクセス要求を前記第2のキャッシュ分割情報を付加して発行した場合,前記第2のコアグループの第2のキャッシュ制御部が,前記発行されたメモリアクセス要求に応答して,前記付加された第2のキャッシュ分割情報を登録する演算処理装置。
  2. 前記第2のコアグループの第2のキャッシュ制御部が,前記第2のキャッシュ分割情報を登録した後,当該登録した第2のキャッシュ分割情報に基づいて前記第2のキャッシュメモリに対し前記キャッシュ分割制御を行う請求項1に記載の演算処理装置。
  3. 前記第2のコアグループの第2のキャッシュ制御部が,前記第2のキャッシュ分割情報を登録した後,外部から入力されるデータを前記第2のキャッシュメモリに登録するキャッシュインジェクション要求に応答して,前記登録した第2のキャッシュ分割情報に基づいて前記第2のキャッシュメモリに対し前記キャッシュ分割制御を行い,前記キャッシュ分割制御で選択されたキャッシュブロック内に前記入力されるデータを登録する請求項1に記載の演算処理装置。
  4. 前記第2のコアグループの第2のキャッシュ制御部が,前記第1のコアグループのメモリアクセス要求元が発行したメモリアクセス要求に応答して,前記第2のキャッシュメモリにデータを登録せずに,前記第1のコアグループ内の前記メモリアクセス要求元にデータ応答する請求項1に記載の演算処理装置。
  5. 前記第2のコアグループの第2のキャッシュ制御部が,前記第1のコアグループのメモリアクセス要求元が発行したメモリアクセス要求に応答して,前記第2のコアグループが管理するメインメモリへのアクセス制御を行い,前記第2のキャッシュメモリにアクセスしたデータを登録せずに,前記第1のコアグループ内の前記メモリアクセス要求元にデータ応答する請求項1に記載の演算処理装置。
  6. 前記キャッシュ分割情報は,前記メモリアクセス要求元と,前記メモリアクセス要求元に割り当てられる最大キャッシュブロック数とを有し,
    前記キャッシュ分割制御は,キャッシュメモリにデータを登録するときに,前記メモリアクセス要求元に割り当てられている現キャッシュブロック数が前記最大キャッシュブロック数に達するまで,他のメモリアクセス要求元に割り当てられているキャッシュブロックを前記メモリアクセス要求元に割り当てて前記データを登録する請求項1に記載の演算処理装置。
  7. 複数のコアとキャッシュメモリとを有する第2の演算処理装置とバスを介して接続される第1の演算処理装置であって,
    複数のコアと,
    第1のキャッシュ制御部と第1のキャッシュメモリとを含む第1のキャッシュとを有し,
    前記第1のキャッシュ制御部が,第1のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第1のキャッシュメモリを分割するキャッシュ分割制御を行い,
    前記第2の演算処理装置のメモリアクセス要求元が,前記第1の演算処理装置が管理するメインメモリへのメモリアクセス要求を前記第1のキャッシュ分割情報を付加して発行した場合,前記第1のキャッシュ制御部が,前記発行されたメモリアクセス要求に応答して,前記付加された第1のキャッシュ分割情報を登録する演算処理装置。
  8. 複数のコアと,第1のキャッシュ制御部と第1のキャッシュメモリとを含む第1のキャッシュとを有し,前記第1のキャッシュ制御部が,第1のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第1のキャッシュメモリを分割するキャッシュ分割制御を行う第1のコアグループと,
    複数のコアと,第2のキャッシュ制御部と第2のキャッシュメモリとを含む第2のキャッシュとを有し,前記第2のキャッシュ制御部が,第2のキャッシュ分割情報に基づいて,メモリアクセス要求元に対応して前記第2のキャッシュメモリを分割するキャッシュ分割制御を行う第2のコアグループと,
    前記第1,第2のコアグループ間に設けられメモリアクセス要求が送信されるコアグループ間バスとを有する演算処理装置の制御方法であって,
    前記第1のコアグループのメモリアクセス要求元が,前記第2のコアグループが管理するメインメモリへのメモリアクセス要求を前記第2のキャッシュ分割情報を付加して発行した場合,前記第2のコアグループの第2のキャッシュ制御部が,前記発行されたメモリアクセス要求に応答して,前記付加された第2のキャッシュ分割情報を登録する工程を有する演算処理装置の制御方法。
JP2014112574A 2014-05-30 2014-05-30 演算処理装置及び演算処理装置の制御方法 Active JP6260456B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014112574A JP6260456B2 (ja) 2014-05-30 2014-05-30 演算処理装置及び演算処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014112574A JP6260456B2 (ja) 2014-05-30 2014-05-30 演算処理装置及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2015228060A JP2015228060A (ja) 2015-12-17
JP6260456B2 true JP6260456B2 (ja) 2018-01-17

Family

ID=54885515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014112574A Active JP6260456B2 (ja) 2014-05-30 2014-05-30 演算処理装置及び演算処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP6260456B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0740248B2 (ja) * 1988-08-16 1995-05-01 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン キャッシュ制御装置
JPH0944401A (ja) * 1995-07-27 1997-02-14 Nec Ibaraki Ltd キャッシュ制御装置
JP2010198129A (ja) * 2009-02-23 2010-09-09 Toshiba Corp キャッシュシステム
JP5413001B2 (ja) * 2009-07-09 2014-02-12 富士通株式会社 キャッシュメモリ

Also Published As

Publication number Publication date
JP2015228060A (ja) 2015-12-17

Similar Documents

Publication Publication Date Title
US10802987B2 (en) Computer processor employing cache memory storing backless cache lines
JP5413001B2 (ja) キャッシュメモリ
US7461209B2 (en) Transient cache storage with discard function for disposable data
US8412907B1 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
US8185692B2 (en) Unified cache structure that facilitates accessing translation table entries
JP7340326B2 (ja) メンテナンス動作の実行
US20100325374A1 (en) Dynamically configuring memory interleaving for locality and performance isolation
JP5226010B2 (ja) 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路
Bock et al. Concurrent page migration for mobile systems with OS-managed hybrid memory
KR20210058877A (ko) 외부 메모리 기반 변환 색인 버퍼
US7721047B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
WO2024066195A1 (zh) 缓存管理方法及装置、缓存装置、电子装置和介质
JP6042170B2 (ja) キャッシュ制御装置及びキャッシュ制御方法
KR20230028145A (ko) 상호 연결된 장치들 간의 데이터 전송을 위한 시스템, 방법 및 장치
US20090083496A1 (en) Method for Improved Performance With New Buffers on NUMA Systems
JPWO2010024071A1 (ja) キャッシュメモリ、そのシステム、その利用方法及びその利用プログラム
US20080301324A1 (en) Processor device and instruction processing method
JP7264806B2 (ja) キャッシュエントリでメモリアクセス要求のペンデンシを識別するシステム及び方法
JP6260456B2 (ja) 演算処理装置及び演算処理装置の制御方法
US11003591B2 (en) Arithmetic processor, information processing device and control method of arithmetic processor
US9606917B2 (en) Arithmetic processing apparatus and method for controlling same
JP5445701B1 (ja) フラッシュ制御装置、フラッシュ制御方法、及び、キャッシュメモリ装置
US20090164732A1 (en) Cache memory system and cache memory control method
US11669450B2 (en) Computer including cache used in plural different data sizes and control method of computer
US10977176B2 (en) Prefetching data to reduce cache misses

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171026

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171127

R150 Certificate of patent or registration of utility model

Ref document number: 6260456

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150