JP6488962B2 - キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム - Google Patents

キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム Download PDF

Info

Publication number
JP6488962B2
JP6488962B2 JP2015189567A JP2015189567A JP6488962B2 JP 6488962 B2 JP6488962 B2 JP 6488962B2 JP 2015189567 A JP2015189567 A JP 2015189567A JP 2015189567 A JP2015189567 A JP 2015189567A JP 6488962 B2 JP6488962 B2 JP 6488962B2
Authority
JP
Japan
Prior art keywords
instruction sequence
acquired
memory
execution
cache
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
JP2015189567A
Other languages
English (en)
Other versions
JP2017068328A (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.)
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 JP2015189567A priority Critical patent/JP6488962B2/ja
Publication of JP2017068328A publication Critical patent/JP2017068328A/ja
Application granted granted Critical
Publication of JP6488962B2 publication Critical patent/JP6488962B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

本発明は、プロセッサからアクセスされたデータがキャッシュメモリにない場合に、メインメモリのデータとの置き換えを行う際の制御技術に関する。
コンピュータシステムにおいて、通常、プロセッサからキャッシュメモリへのアクセス要求に対して、要求されたデータがキャッシュメモリに存在しない場合、メインメモリからデータが読み出されると共に、そのデータがキャッシュメモリのあるブロックに格納される。このとき、キャッシュメモリ中のいずれかのブロックを選択し、そのブロックのデータとメインメモリのデータを置き換える(以降、「キャッシュ制御」とも称する)必要がある。このデータを置き換える際の規則を、以降、「キャッシュポリシー」、「キャッシュ制御方式」または「制御規則」とも称する。
上記のようなデータの置き換えを行う一般的なキャッシュポリシーとして、例えば、最近最も使われていないデータを最初に捨てるLeast Recently Used(LRU)や、使われる頻度が最も少ないデータを最初に捨てるLeast Frequently Used(LFU)などがある。
しかしながら、上記のようなキャッシュポリシーでは、例えばループを含むプログラムにおいて、ループで使用される中間結果やインデックスが、長時間に亘ってアクセスされるものであっても、他のデータアクセスに比べてアクセス頻度が低い場合、キャッシュから捨てられてしまうことがある。このような場合、データをメインメモリからキャッシュに読み出すという動作が度々生じるので、プログラムの実行効率が悪化する。
このような問題に対し、例えばセクタキャッシュでは、ユーザがプログラムに関する知識を有することを前提に、プログラム中に挿入する指示行などによりキャッシュポリシーを事前に指定することができる。
また、一般的に考えられる方法として、メモリアクセスに関するトレースを行う試験実行を行い、その結果に基づいてキャッシュポリシーを動的に変更する方法が考えられる。
また、例えば、特許文献1には、命令毎にキャッシュポリシーを選択できる技術が開示されている。
また、特許文献2には、実行するプログラムに対して、適応的に置換規則を切り換えることにより、単一の置換規則を採用した場合よりも平均的にプログラムの実行速度を高める技術が開示されている。
特開昭63−008851号公報 特開2003−280987号公報
上述したように、プログラムの実行効率が悪化することを防ぐために、キャッシュポリシーを事前に指定することが考えられるが、この場合は、ユーザがプログラムに関する知識を有している必要がある。
また、プログラムの実行効率の悪化を防ぐ他の方法として、メモリアクセスに関するトレースを行うことが考えられるが、この方法では、事前のプログラム実行が必要となる。特許文献1に記載の技術についても、事前のキャッシュ制御方式の指定が必要である。
また、特許文献2に記載の技術では、アクセス要求あったときにキャッシュ制御方式の変更に関する処理を行うので、プログラムの実行効率が低下することが考えられる。
本願発明は、上記課題を鑑みてなされたものであり、プログラムに関する知識や事前準備を要することなく、またプログラムの実行効率を低下させることなく、キャッシュ制御を行うことが可能なキャッシュ制御装置等を提供することを主要な目的とする。
本発明の第1のキャッシュ制御装置は、通信可能な演算装置から取得した該演算装置のプロセッサのコンテキスト情報から命令列の実行位置を取得し、予め取得されたアドレス情報に基づいて、自装置のメモリに展開された前記命令列の前記実行位置に相当する位置以降を実行すると共に、実行した前記命令列のアクセス履歴を記録するシミュレーション手段と、前記記録されたアクセス履歴に基づいて、前記演算装置におけるキャッシュメモリの制御規則を決定する決定手段とを備える。
本発明の第1のキャッシュ制御方法は、通信可能な演算装置から取得した該演算装置のプロセッサのコンテキスト情報から命令列の実行位置を取得し、予め取得されたアドレス情報に基づいて、自装置のメモリに展開された前記命令列の前記実行位置に相当する位置以降を実行すると共に、実行した前記命令列のアクセス履歴を記録し、前記記録されたアクセス履歴に基づいて、前記演算装置におけるメモリの制御規則を決定する。
なお同目的は、上記の各構成を有するキャッシュ制御方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
本願発明によれば、プログラムに関する知識や事前準備を要することなく、またプログラムの実行効率を低下させることなく、キャッシュ制御を行うことができるという効果が得られる。
本発明の第1の実施形態に係るキャッシュ制御システムの構成を示すブロック図である。 本発明の第1の実施形態に係るキャッシュ制御システムの処理を示すフローチャートである。 本発明の第1の実施形態に係るキャッシュ制御装置のループ情報の一例を示す図である。 本発明の第1の実施形態に係るキャッシュ制御装置のシミュレーション部の処理を示すフローチャートである。 本発明の第1の実施形態に係るキャッシュ制御装置のシミュレーション部により記録された、アクセスされたメモリのアドレスの履歴を時系列に示す図である。 本発明の第2の実施形態に係るキャッシュ制御装置の構成を示すブロック図である。 各実施形態に係るキャッシュ制御装置のハードウエア構成を例示する図である。
以下、本発明の実施形態について図面を参照して詳細に説明する。
第1の実施形態
図1は、本発明の第1の実施形態に係るキャッシュ制御システム10の構成を示すブロック図である。科学技術計算など、大規模な演算を高速に行う必要があるHPC(High−Performance Computing)分野では、ホストマシンに格納されているプログラムを、演算に特化したアクセラレータで実行するシステムがある。本実施形態では、このようなシステムにおけるキャッシュ制御について説明する。
図1に示すように、第1の実施形態に係るキャッシュ制御システム10は、ホストマシン100と、そのホストマシン100と通信可能に接続されたアクセラレータ200とを備える。
ホストマシン100は、通常のスカラ型スーパーコンピュータであり、PCIe(Peripheral Component Interconnect express)などのインタフェースを備える。
アクセラレータ200は、ベクトルプロセッサなどHPC向けの高速演算が行えるCPU(Central Processing Unit)を備え、PCIeなどのインタフェースで通常のサーバに接続できる。
ホストマシン100は、プログラム実行管理部110、シミュレーション部120、キャッシュポリシー管理部130、実行形式記憶部140、メモリ150およびインタフェース160を備える。
プログラム実行管理部110は、アクセラレータ200の資源やプロセスの動作を監視および管理する機能を持つ。プログラム実行管理部110はまた、プログラムを実行する際、実行形式記憶部140から実行形式ファイルをメモリ150に読み出してアクセラレータ200のメモリ220に転送すると共に、アクセラレータ200上にプロセスを生成する機能を持つ。この際、プログラム実行管理部110は、ホストマシン100のメモリ150に読み出したイメージのアドレスと、アクセラレータ200のメモリ220に展開されたイメージのアドレスを管理し、アクセラレータ200に生成されたプロセスの実行位置のアドレスとホストマシン100のメモリ150におけるアドレスとを変換する機能を持つ。
また、プログラム実行管理部110は、アクセラレータ200のCPUが停止する際に生成される割り込みを受信すると共に、キャッシュポリシー管理部130に通知する機能を持つ。
シミュレーション部120は、ホストマシン100のメモリ150に展開されたプログラムの実行形式ファイルのイメージを解析する。そして、シミュレーション部120は、実行形式記憶部140のループ情報141(詳細は後述する)に基づいてシミュレーションを行う区間を決定するとともに、アクセラレータ200で動作する命令列の動作を再現する機能を持つ。この際、シミュレーション部120は、メモリアクセスを行う命令についてそのアドレス(メモリのアクセス履歴)を時系列に記録する。また、シミュレーション部120は、演算命令に関しては、ベクトル演算など通常の演算命令については実行せず、ループのインデックスや配列の添え字を格納する変数として指定されたアドレスに関わる演算命令のみを実行する。
キャッシュポリシー管理部130は、シミュレーション部120により取得された、アクセスされたメモリのアドレスの記録を解析し、ループ実行におけるキャッシュポリシー(制御規則)を決定する機能を持つ。メモリのアクセス履歴からキャッシュポリシーを決定する例として、ここでは、連続的、あるいは一定間隔で固定的にアクセスされるアドレス領域についてはデータを保持したままにし、シーケンシャルにアクセスされるアドレス領域についてはLRU(あるいはFIFO(First In, First Out))といった判断方法を採るものとする。
実行形式記憶部140は、HDD(Hard Disk Drive)などの記憶媒体であり、プログラムの実行形式ファイルを格納する。実行形式ファイルは、アクセラレータ200で実行可能なバイナリファイルであり、コンパイル時に、コンパイラによりループの入口および出口に相当する位置に、キャッシュ制御用のフック関数が挿入されているものとする。また、実行形式記憶部140は、ループの入口に相当する位置(オフセットなど)と、最外ループのループ長、ループ内で使われているインデックスのシンボル、アドレスに関する情報(オフセットなど)を含むループ情報141を格納する。
アクセラレータ200は、キャッシュポリシー制御部210、メモリ220およびインタフェース230を備える。メモリ220には、ユーザプロセス221が格納され、アクセラレータ200のCPUによりユーザプロセス221が実行される。ユーザプロセス221は、プログラム実行管理部110によりアクセラレータ200に生成された、ユーザプログラムのプロセスである。
キャッシュポリシー制御部210は、指定されたループのキャッシュポリシーを、ホストマシン100のキャッシュポリシー管理部130に問い合わせ、その結果得られたキャッシュポリシーを、ループ実行時のキャッシュ制御に適用する機能を持つ。本実施形態では、特定のアドレス領域についてデータを保持したままにするか、LRU(あるいはFIFO)とするかを選択できるものとする。
図2は、キャッシュ制御システム10の処理を示すフローチャートである。図2を参照して、キャッシュ制御システム10の動作について説明する。
まず、ホストマシン100におけるプログラムのコンパイル時の動作について説明する。プログラムのコンパイル時、ホストマシン100が備えるコンパイラは、プログラムに含まれるループの入口および出口に相当する位置に、キャッシュポリシー制御部210を起動するフック関数を挿入する。
またこの際、コンパイラは、ループ入口位置のアドレス情報と、最外ループのループ長、ループ内で使われている全てのインデックスのアドレスに関する情報を取得し、ループ情報141として実行形式記憶部140に格納する。
図3は、ループ情報141の一例を示す図である。図3に示すように、ループ情報141は、例えば、入口アドレス情報、ループ長、インデックスアドレス情報を含む。インデックスアドレス情報は、例えば、最外ループのものから順に記録する。なお、ループ情報141として格納するループは全てのループを対象としてもよい。あるいは、高速化のため、コンパイラによる自動ベクトル化対象として選ばれる、ループ内に関数呼び出しや分岐が無く、ベクトル実行のコストを相殺するのに十分なループ長を持つループがコンパイラにより選択されてもよい。
以降、図2を参照して、プログラムの実行開始以降のキャッシュ制御システム10の動作について説明する。
プログラムの実行開始時、ホストマシン100のプログラム実行管理部110は、実行形式記憶部140から実行形式ファイルをメモリ150に読み出し、インタフェース160を介してアクセラレータ200に転送する。アクセラレータ200では、インタフェース230を介して実行形式ファイルがメモリ220に格納される。これにより、プログラム実行管理部110は、アクセラレータ200のメモリ220上にユーザプロセス221を生成する(S301)。この際、プログラム実行管理部110は、ホストマシン100のメモリ150上のアドレス空間とアクセラレータ200のメモリ220上のアドレス空間とのマッピングを保持する(S302)。これにより、プログラム実行管理部110は、アクセラレータ200のメモリ220上のアドレスとホストマシン100のメモリ150上のアドレス空間とを変換できる。
続いて、プログラム実行管理部110は、システムコールの実行やコンテクストスイッチなどにより、アクセラレータ200のCPUが停止したことを検知したとする(S303においてYes)。このとき、プログラム実行管理部110は、キャッシュポリシー管理部130に、その旨を通知する。
キャッシュポリシー管理部130は、プログラム実行管理部110を介してアクセラレータ200のレジスタ値の取得を要求する(S304)。キャッシュポリシー管理部130は、レジスタ値を取得すると、それをシミュレーション部120に通知すると共に、シミュレーションの実行を指示する(S305)。
図4は、シミュレーション部120の処理を示すフローチャートである。図4を参照して、シミュレーション部120の動作について説明する。
シミュレーション部120は、シミュレーションの実行指示を受けると(S401においてYes)、キャッシュポリシー管理部130から取得したレジスタ値からプログラム(ユーザプロセス21)の実行位置を取得する(S402)。また、シミュレーション部120は、実行形式記憶部140からループ情報141を読み出すと共に、ループ情報141に含まれている各ループの入口位置のアドレスを算出する(S403)。
シミュレーション部120は、上記取得されたアクセラレータ200における実行位置に相当する、メモリ150に展開された実行形式ファイルのイメージにおける実行位置を算出し、その位置から、次の分岐またはジャンプ命令までの間にループの入口があるか否かを判断する(S404)。ループの入口が無い場合は、処理を終了する。
ループの入口がある場合、シミュレーション部120は、シミュレーションの実行を決定する。まず、シミュレーション部120は、読み出したループ情報141から、各インデックスのアドレスを算出する(S405)。
そして、シミュレーション部120は、メモリ150における上記実行位置からループの入口までの命令のうち、上記インデックスのアドレスに対して更新を行う命令のみを実行する。これにより、各インデックスの初期値の推定値を得る(S406)。
ループの入口以降については、シミュレーション部120は、インデックスのアドレスに対する演算命令を実行し、配列のベクトル演算等については実行しない(S407)。
ループの繰り返し数については、シミュレーション部120は、ループ情報141からループ長を取得し、これより十分少ない値を選ぶ。具体的には、ループ長からの割合、あるいは、設定可能な定数を上限として選択しても良い。
シミュレーション部120は、ループ情報141に最初に記録されたインデックスの値、すなわち最外ループの繰り返し数が、上記の値になるまでループを繰り返す。この繰り返しの間、シミュレーション部120は、メモリアクセスがあるロード・ストア命令について、アクセスするアドレス全てを時系列に記録する(S408)。
図5は、シミュレーション部120により記録された、アクセスされたメモリのアドレスの履歴(メモリアクセス履歴)を時系列に示す図である。図5では、横軸を時間、縦軸をアドレスとし、アクセスされるアドレスを時系列で示している。図5において、符号30で示すのは、連続的にアクセスされたアドレスであり、例えば中間結果を保存する変数が格納されたアドレスが考えられる。また、符号40、41、42で示すのは、一定間隔で固定的にアクセスされたアドレスであり、例えば、インデックスを保存するアドレスが考えられる。また、符号45で示すのは、シーケンシャルにアクセスされたアドレスであり、例えば配列のアドレス領域などが考えられる。
上記繰り返し数分のループの繰り返しが終了すると(S409でYes)、シミュレーション部120は、ループ情報141に格納される次のループに関して、同様にメモリアクセス履歴の記録を行う。シミュレーション部120は、ループ情報141に格納される全ループに関してメモリアクセス履歴の記録が終了すると(S410でYes)、各ループに関するメモリアクセス履歴をキャッシュポリシー管理部130に通知する(S411)。
続いて、図2のS306に示すように、キャッシュポリシー管理部130は、シミュレーション部120から受け取った各ループのメモリアクセス履歴に基づいて、キャッシュの各アドレス領域へのアクセスに対するキャッシュポリシーを、ループごとに決定する(S307)。
ここでは、キャッシュポリシー管理部130は、そのループに関して、連続的あるいは一定間隔で固定的にアクセスされる変数が格納されるアドレス領域については保持したままにし、シーケンシャルにアクセスされる配列のアドレス領域についてはLRU(あるいはFIFO)を選択するというキャッシュポリシーを決定してもよい。キャッシュポリシー管理部130は、決定したキャッシュポリシーと、そのキャッシュポリシーを適用するループの入口位置のアドレスとを対応付けて格納する。
ここで、アクセラレータ200におけるユーザプロセス221実行中に、キャッシュポリシー制御部210がループの入口に設定されたフック関数により起動されたとする。キャッシュポリシー制御部210は、現在適用されているキャッシュポリシーを退避すると共に、インタフェース230、160を介してキャッシュポリシー管理部130に対してループの入口位置のアドレスをキーに、キャッシュポリシーを問い合わせる。
キャッシュポリシー管理部130は、上記問い合わせを受けると(S308においてYes)、インタフェース160を介して、アクセラレータ200に、受け取ったキーに対応するキャッシュポリシーを読み出すと共に通知する(S309)。キャッシュポリシー制御部210は、インタフェース230を介してキャッシュポリシーを受け取り、そのキャッシュポリシーが上記のループの実行に適用されるように制御する。以降、アクセラレータ200では、そのループが、取得したキャッシュポリシーにしたがって実行される。
上記ループの実行後、そのループの出口に設定されたフック関数により、キャッシュポリシー制御部210が起動されたとする。キャッシュポリシー制御部210は、上記適用していたキャッシュポリシーを、退避していたデフォルトのキャッシュポリシー(LRUなど)に戻す。これにより、ループごとに、その実行に適したキャッシュポリシーを適用することができる。
以上のように、本第1の実施形態によれば、ホストマシン100は、アクセラレータ200に転送してアクセラレータ200にて実行するプログラムのコンパイル時に、そのプログラムに含まれるループ情報を抽出して保持しておく。アクセラレータ200のCPUが停止する際に、ホストマシン100のキャッシュポリシー管理部130は、アクセラレータ200のコンテキスト情報を取得する。そして、シミュレーション部120は、コンテキスト情報から実行位置を解析して、アクセラレータ200で動作する命令列の動作を実行(再現)すると共に、メモリアクセスを行う命令についてアクセスするアドレスの履歴を記録する。キャッシュポリシー管理部130は、記録されたアドレスの履歴に基づいて、上記命令列の実行にあたり最適なキャッシュポリシーを決定する。
上記構成を採用することにより、本第1の実施形態によれば、アクセラレータ200におけるプログラムの実行に先行するループ区間を、ホストマシン100で実行することにより、アクセラレータ200の資源利用に影響することなくアクセラレータ200においてアクセスするメモリのアドレスを先行して取得できる。そして、そのアドレスの履歴に基づいて、アクセラレータ200での実行に先行して、動的にキャッシュポリシーを決定できる。したがって、本第1の実施形態によれば、アクセラレータ200において高速演算を行うようなプログラムの実行において、そのプログラムに適したキャッシュポリシーを動的に適用できるので、プログラムに関する知見や、事前準備を要することなく、かつプログラムの実行効率を低下させることなく、キャッシュミスを低減できるという効果が得られる。
なお、上記のように取得したメモリアクセス履歴を、メモリプリフェッチに関する参考情報として適用することもできる。すなわち、ループを実行する際、上記シミュレーション部120によるシミュレーションにより得られたメモリアクセス履歴から、アクセスされるメモリ領域をホストマシン100からアクセラレータ200のメモリ220に、先行して転送する。これにより、アクセラレータ200においてデータ転送にかかるレイテンシを見かけ上低減できる。
第2の実施形態
図6は、第2の実施形態に係るキャッシュ制御装置500の構成を示すブロック図である。上述の第1の実施形態に係るホストマシン100は、キャッシュ制御装置500を基本としている。
キャッシュ制御装置500は、シミュレーション部510および決定部520を備える。
シミュレーション部510は、通信可能な演算装置から取得した該演算装置のプロセッサのコンテキスト情報から命令列の実行位置を取得し、予め取得されたアドレス情報に基づいて、自装置のメモリに展開された命令列の実行位置に相当する位置以降を実行すると共に、実行した命令列のアクセス履歴を記録する。
決定部520は、記録されたアクセス履歴に基づいて、演算装置におけるキャッシュメモリの制御規則を決定する。
上記演算装置は、上記第1の実施形態に係るアクセラレータを含む。
上記構成を採用することにより、本第2の実施形態によれば、プログラムに関する知識や事前準備を要することなく、またプログラムの実行効率を低下させることなく、キャッシュ制御を行うことができるという効果が得られる。
なお、図1に示したホストマシン100およびアクセラレータ200の各部は、図7に例示するハードウエア資源において実現される。すなわち、図7に示す構成は、CPU50、RAM(Random Access Memory)51、ROM(Read Only Memory)52、外部接続インタフェース53および記憶装置54を備え、それらはバス55により接続されている。
図1に示したホストマシン100における各ブロックに示す機能、すなわち、少なくともプログラム実行管理部110、シミュレーション部120、キャッシュポリシー管理部130、およびアクセラレータ200における各ブロックに示す機能、すなわち、少なくともキャッシュポリシー制御部210は、図7に示すCPU50がROM52または記憶装置54に記憶された各種ソフトウエア・プログラム(コンピュータ・プログラム)を、RAM51に読み出して実行することにより、実現されてもよい。あるいは、図1に示した上記機能は、一部または全部を、ハードウエアとして実現してもよい。
また、各実施形態を例に説明した本発明は、ホストマシン100またはアクセラレータ200に対して、上記説明した機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、CPU50がRAM51に読み出して実行することによって達成される。
係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ(一時記憶媒体)またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
10 キャッシュ制御システム
100 ホストマシン
110 プログラム実行管理部
120 シミュレーション部
130 キャッシュポリシー管理部
140 実行形式記憶部
141 ループ情報
150、220 メモリ
160、230 インタフェース
200 アクセラレータ
210 キャッシュポリシー制御部
221 ユーザプロセス
50 CPU
51 RAM
52 ROM
53 外部接続インタフェース
54 記憶装置
55 バス

Claims (9)

  1. 通信可能な演算装置から取得した該演算装置のプロセッサのコンテキスト情報から命令列の実行位置を取得し、予め取得されたアドレス情報に基づいて、自装置のメモリに展開された前記命令列の前記実行位置に相当する位置以降を実行すると共に、実行した前記命令列のアクセス履歴を記録するシミュレーション手段と、
    前記記録されたアクセス履歴に基づいて、前記演算装置におけるキャッシュメモリの制御規則を決定する決定手段と
    を備えたキャッシュ制御装置。
  2. 前記シミュレーション手段は、前記実行した前記命令列のうち前記メモリにアクセスを行う命令列がアクセスしたアドレスを前記アクセス履歴として記録する
    請求項1記載のキャッシュ制御装置。
  3. 前記シミュレーション手段は、自装置の前記メモリに展開された前記命令列のうち、前記予め取得されたアドレス情報に基づいて、ループで使用される変数を格納するアドレスに関わる命令列のみを実行する
    請求項1または請求項2記載のキャッシュ制御装置。
  4. 前記アドレス情報として、前記命令列のコンパイルの際に、ループに関する前記命令列の位置情報および変数が予め取得される
    請求項1乃至請求項3のいずれか1項記載のキャッシュ制御装置。
  5. 前記コンテキスト情報は、前記演算装置から前記プロセッサが停止する通知に応じて取得される
    請求項1乃至請求項4のいずれか1項記載のキャッシュ制御装置。
  6. 前記決定手段は、前記アクセス履歴に記録されたアドレスが、連続的または一定間隔で固定的にアクセスされるアドレスであるか、シーケンシャルにアクセスされるアドレスかに基づいて、前記実行された命令列に対する前記制御規則を決定する
    請求項1乃至請求項5のいずれか1項記載のキャッシュ制御装置。
  7. プロセッサを備えた演算装置と、
    前記演算装置から取得した該演算装置のプロセッサのコンテキスト情報から命令列の実行位置を取得し、予め取得されたアドレス情報に基づいて、自装置のメモリに展開された前記命令列の前記実行位置に相当する位置以降を実行すると共に、実行した前記命令列のアクセス履歴を記録するシミュレーション手段と、前記記録されたアクセス履歴に基づいて、前記演算装置におけるキャッシュメモリの制御規則を決定する決定手段とを備えたキャッシュ制御装置とを備え、
    前記演算装置は、前記命令列の実行中に前記キャッシュ制御装置から前記制御規則を取得すると共に、当該取得した前記制御規則にしたがって前記命令列を実行する
    キャッシュ制御システム。
  8. 通信可能な演算装置から取得した該演算装置のプロセッサのコンテキスト情報から命令列の実行位置を取得し、予め取得されたアドレス情報に基づいて、自装置のメモリに展開された前記命令列の前記実行位置に相当する位置以降を実行すると共に、実行した前記命令列のアクセス履歴を記録し、
    前記記録されたアクセス履歴に基づいて、前記演算装置におけるメモリの制御規則を決定する
    キャッシュ制御方法。
  9. 通信可能な演算装置から取得した該演算装置のプロセッサのコンテキスト情報から命令列の実行位置を取得し、予め取得されたアドレス情報に基づいて、自装置のメモリに展開された前記命令列の前記実行位置に相当する位置以降を実行すると共に、実行した前記命令列のアクセス履歴を記録する処理と、
    前記記録されたアクセス履歴に基づいて、前記演算装置におけるメモリの制御規則を決定する処理と
    を、コンピュータに実行させるキャッシュ制御プログラム。
JP2015189567A 2015-09-28 2015-09-28 キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム Active JP6488962B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015189567A JP6488962B2 (ja) 2015-09-28 2015-09-28 キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015189567A JP6488962B2 (ja) 2015-09-28 2015-09-28 キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム

Publications (2)

Publication Number Publication Date
JP2017068328A JP2017068328A (ja) 2017-04-06
JP6488962B2 true JP6488962B2 (ja) 2019-03-27

Family

ID=58494887

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015189567A Active JP6488962B2 (ja) 2015-09-28 2015-09-28 キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム

Country Status (1)

Country Link
JP (1) JP6488962B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102472330B1 (ko) * 2021-11-15 2022-11-30 삼성전자주식회사 컨텍스트 기반 프리페치를 수행하는 분산 메모리 시스템의 구동 방법 및 이를 수행하는 메모리 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04326142A (ja) * 1991-04-25 1992-11-16 Hitachi Ltd キャッシュ記憶装置の性能評価方法
JPH08263372A (ja) * 1995-03-28 1996-10-11 Hitachi Ltd キャッシュミス情報の収集とチューニングを行う装置
JP2000207224A (ja) * 1999-01-14 2000-07-28 Hitachi Ltd ソフトウェアプリフェッチ方法
JP3964705B2 (ja) * 2002-03-25 2007-08-22 川崎マイクロエレクトロニクス株式会社 適応置換制御機能を有するセット・アソシアティブ方式のキャッシュシステム及びキャッシュ制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102472330B1 (ko) * 2021-11-15 2022-11-30 삼성전자주식회사 컨텍스트 기반 프리페치를 수행하는 분산 메모리 시스템의 구동 방법 및 이를 수행하는 메모리 시스템

Also Published As

Publication number Publication date
JP2017068328A (ja) 2017-04-06

Similar Documents

Publication Publication Date Title
US8225070B2 (en) Information processing apparatus and cache memory control method
US9032417B2 (en) Information processing apparatus and information processing apparatus control method
US9626294B2 (en) Performance-driven cache line memory access
JPH0371354A (ja) メモリ・アクセス要求処理方法及び装置
JP5776688B2 (ja) 情報処理装置及びタスク切り替え方法
JP5093509B2 (ja) Cpuエミュレーションシステム、cpuエミュレーション方法及びcpuエミュレーションプログラム
JP2019525330A (ja) キャッシュテスト領域に基づくプリフェッチデータに対するキャッシュ転送ポリシーの選択
JP2015505623A (ja) ステージング・エリアを管理するためのコンピュータ実施プロセス、コンピュータ・プログラム製品、装置
JP6244949B2 (ja) 情報処理装置、制御方法、および制御プログラム
CN108694078B (zh) 计算资源和用于处理中断的系统和方法
WO2018179873A1 (ja) アクセラレータを有する計算機のためのライブラリ、およびアクセラレータ
JP7038656B2 (ja) キャッシュへのアクセス
JP6488962B2 (ja) キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム
US20140297956A1 (en) Arithmetic processing apparatus, information processing apparatus and control method of arithmetic processing apparatus
CN112470122B (zh) 具有提前返回预测的分支目标缓冲器
US9858204B2 (en) Cache device, cache system, and cache method
JP5254710B2 (ja) データ転送装置、データ転送方法およびプロセッサ
JP2009199367A (ja) 計算機システム、i/oスケジューラ及びi/oスケジューリング方法
JP5500274B1 (ja) キャッシュメモリ、キャッシュメモリの検索方法、情報処理装置、およびプログラム
JP2020140284A (ja) ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム
JP3998686B2 (ja) Cpu使用時間カウント方法及びこのcpu使用時間を用いるジョブ制御装置
JP6239212B1 (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
JP2011008315A (ja) キャッシュ制御方法
JP5949330B2 (ja) 情報処理装置、情報処理方法
CN117222982A (zh) 加速器控制系统、加速器控制方法和加速器控制程序

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190124

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: 20190129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190211

R150 Certificate of patent or registration of utility model

Ref document number: 6488962

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150