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

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

Info

Publication number
JP2019114013A
JP2019114013A JP2017246376A JP2017246376A JP2019114013A JP 2019114013 A JP2019114013 A JP 2019114013A JP 2017246376 A JP2017246376 A JP 2017246376A JP 2017246376 A JP2017246376 A JP 2017246376A JP 2019114013 A JP2019114013 A JP 2019114013A
Authority
JP
Japan
Prior art keywords
address
lock
cache
matrix
processing unit
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.)
Granted
Application number
JP2017246376A
Other languages
English (en)
Other versions
JP7144670B2 (ja
Inventor
裕美 吉田
Hiromi Yoshida
裕美 吉田
紀光 向井
Norimitsu Mukai
紀光 向井
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 Advanced Engineering Ltd
Original Assignee
Fujitsu Advanced Engineering 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 Advanced Engineering Ltd filed Critical Fujitsu Advanced Engineering Ltd
Priority to JP2017246376A priority Critical patent/JP7144670B2/ja
Publication of JP2019114013A publication Critical patent/JP2019114013A/ja
Application granted granted Critical
Publication of JP7144670B2 publication Critical patent/JP7144670B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】キャッシュヒット率を向上させ、リード速度を向上させることを課題とする。【解決手段】演算処理装置は、演算サイクル区間毎に、演算のためにリードする各アドレスのリード回数を集計し、リード回数に応じて、演算サイクル区間毎にキャッシュロックするアドレスを決定するロックアドレス決定部(131)と、演算サイクル区間毎のリード要求のアドレスが演算サイクル区間毎のキャッシュロックするアドレスである場合には、リード要求のアドレスのデータをキャッシュメモリ(142)のロック領域に格納し、演算サイクル区間毎のリード要求のアドレスが演算サイクル区間毎のキャッシュロックするアドレスでない場合には、リード要求のアドレスのデータをキャッシュメモリの非ロック領域に格納するキャッシュメモリ制御部(134,135)と、リード要求に応じて、キャッシュメモリに格納されたデータを基に演算を行う演算部(124)を有する。【選択図】図1

Description

本発明は、演算処理装置及び演算処理装置の制御方法に関する。
計算機システムに備えられた複数の処理手段から記憶装置へのアクセス要求に応じて、キャッシュメモリを制御するキャッシュ制御装置が知られている(特許文献1参照)。配分手段は、複数の処理手段のそれぞれに対応する複数の占有領域及び複数の処理手段が共有して利用する共有領域に、キャッシュメモリの記憶領域を配分する。検索手段は、複数の処理手段のそれぞれから入力されるアクセス要求に応じて、対応する占有領域と共有領域とに対して該当するデータの検索処理を行う。第1の順位操作手段は、検索結果に応じて、該当する占有領域と共有領域とからなる領域に格納されたデータの置き換え優先順位を操作する。置き換え手段は、該当するデータが存在しない旨の検索結果の入力に応じて、該当する占有領域と共有領域とからなる連続した領域における置き換え優先順位に従ってデータの置き換え処理を行う。
また、主記憶に記憶され、複数のデータアドレスの組み合わせで特定されるデータの処理に適したキャッシュメモリシステムが知られている(特許文献2参照)。第1のキャッシュメモリバンクは、複数のデータアドレスの組み合わせの第1の部分からなるブロックアドレスでそれぞれが特定され残りの第2の部分からなるブロック内アドレスでそれぞれを構成するデータが特定されるデータブロックのコピーをそれぞれ記憶するための複数の記憶領域を有する。第2のキャッシュメモリバンクは、複数のデータアドレスの組み合わせの第1の部分からなるブロックアドレスでそれぞれが特定され残りの第2の部分からなるブロック内アドレスでそれぞれを構成するデータが特定されるデータブロックのコピーをそれぞれ記憶するための複数の記憶領域を有する。予測アドレス生成回路は、特定のデータアドレスの組み合わせに対応する現ブロックアドレスから予め定められた規則に従って予測ブロックアドレスを決定する。キャッシュコンパレータは、現ブロックアドレス、及び予測アドレス生成回路が決定した予測ブロックアドレスが第1及び第2のキャッシュメモリバンクにヒットしたかミスヒットしたかを決定する。制御ブロックは、キャッシュコンパレータの判定結果に従って、主記憶及び第1及び第2のキャッシュメモリバンクを制御する。
また、メインメモリから読み出されたデータを一時的に保管するキャッシュメモリが知られている(特許文献3参照)。アドレス記憶手段は、複数の記憶領域を有し、各記憶領域にメインメモリのアクセスに使用されるアドレス情報の少なくとも一部を記憶する。データ記憶手段は、アドレス記憶手段の複数の記憶領域に対応する複数の記憶領域を有し、各記憶領域にアドレス情報に対応するデータを記憶する。判別手段は、アドレス情報が与えられたとき、そのアドレス情報に基づいてアドレス記憶手段の記憶内容を参照することにより、そのアドレス情報に対応するデータがデータ記憶手段に記憶されているか否かを判別する。読み出し手段は、データ記憶手段に対応のデータが記憶されていることを判別手段が判別したことに応答して、その対応のデータをデータ記憶手段から読み出して外部へ導出する。書き換え手段は、データ記憶手段に対応のデータが存在していないことを判別手段が判別したことに応答して、アドレス記憶手段及びデータ記憶手段の書き換えを行う。選択手段は、アドレス記憶手段の複数の記憶領域のいずれか及びデータ記憶手段の対応する記憶領域を選択する。書き込み手段は、選択手段により選択されたアドレス記憶手段の記憶領域及びデータ記憶手段の記憶領域に、それぞれアドレス情報及びデータを書き込む。設定手段は、選択手段により選択されたアドレス記憶手段の記憶領域及びデータ記憶手段の記憶領域に対して、書き換え手段による書き換えから解除されることを示す解除情報を設定する。制御手段は、設定手段により設定された解除情報に従って書き換え手段に作用し、アドレス記憶手段及びデータ記憶手段において解除情報が設定されている記憶領域を書き換え手段による書き換えの対象から除外するように制御する。
特開平8−147218号公報 特開平9−50399号公報 特開平2−89145号公報
キャッシュメモリでは、キャッシュメモリにデータが記憶されている場合には、キャッシュヒットし、リード速度が向上する。しかし、キャッシュメモリにデータが記憶されていない場合には、キャッシュミスし、リード速度が向上しない。演算の種類によっては、キャッシュヒット率が低くなり、リード速度の向上が妨げられる。
1つの側面では、本発明の目的は、キャッシュヒット率を向上させ、リード速度を向上させることができる演算処理装置及び演算処理装置の制御方法を提供することである。
演算処理装置は、ロック領域と非ロック領域を含むキャッシュメモリと、演算サイクル区間毎に、演算のためにリードする各アドレスのリード回数を集計し、前記リード回数に応じて、前記演算サイクル区間毎にキャッシュロックするアドレスを決定するロックアドレス決定部と、前記演算サイクル区間毎のリード要求のアドレスが前記演算サイクル区間毎のキャッシュロックするアドレスである場合には、前記リード要求のアドレスのデータを前記キャッシュメモリのロック領域に格納し、前記演算サイクル区間毎のリード要求のアドレスが前記演算サイクル区間毎のキャッシュロックするアドレスでない場合には、前記リード要求のアドレスのデータを前記キャッシュメモリの非ロック領域に格納し、前記キャッシュメモリからの追い出しを行う場合には、前記キャッシュメモリのロック領域からの追い出しを行わず、前記キャッシュメモリの非ロック領域からの追い出しを行うキャッシュメモリ制御部と、前記リード要求に応じて、前記キャッシュメモリに格納されたデータを基に演算を行う演算部とを有する。
1つの側面では、キャッシュヒット率を向上させ、リード速度を向上させることができる。
図1は、本実施形態による情報処理装置の構成例を示すブロック図である。 図2(A)は情報処理装置の演算対象の行列を示す図であり、図2(B)は行列の例を示す図である。 図3(A)は行列の具体例を示す図であり、図3(B)は外部メモリに格納されるデータを示す図である。 図4は、演算処理装置が演算する演算サイクルと演算処理装置がリードする結果格納領域のアドレスとの関係を示すグラフである。 図5は、演算処理装置が演算する演算サイクルと演算処理装置がリードする結果格納領域のアドレスとの他の関係を示すグラフである。 図6は、演算処理装置が演算する演算サイクルと演算処理装置がリードする結果格納領域のアドレスとの他の関係を示すグラフである。 図7は、情報処理装置の制御方法を示すフローチャートである。
図1は、本実施形態による情報処理装置100の構成例を示すブロック図である。情報処理装置100は、アプリケーション処理部101と、外部メモリ102と、演算処理装置103とを有する。アプリケーション処理部101は、例えば、中央演算処理装置(CPU)である。外部メモリ102は、例えば、メインメモリである。演算処理装置103は、例えば、FPGA(field-programmable gate array)等のアクセラレータである。外部メモリ102は、インデック情報格納領域111と、演算データ格納領域112と、結果格納領域113とを有する。
演算処理装置103は、制御部121と、内蔵メモリ122と、演算処理部123と、演算器アレイ124とを有する。制御部121は、キャッシュロック情報生成処理部131と、有効/無効情報生成処理部132と、有効/無効切替処理部133と、リード処理部134と、ライト処理部135とを有する。内蔵メモリ122は、キャッシュロック情報格納領域141と、キャッシュデータ格納領域142とを有する。キャッシュロック情報格納領域141は、キャッシュロック情報151と、有効/無効情報152とを格納する。キャッシュデータ格納領域142は、ロック領域161と、非ロック領域162とを有する。
例えば、外部メモリ102は、ダイナミックランダムアクセスメモリ(DRAM)であり、内蔵メモリ122は、スタティックランダムアクセスメモリ(SRAM)である。内蔵メモリ122は、外部メモリ102に対して、アクセス速度が速い。キャッシュデータ格納領域142は、外部メモリ102に記憶されているデータのうちの一部のデータを格納することにより、データのリード速度を向上させることができる。演算処理部123は、スケジューラである。
図2(A)は、情報処理装置100の演算対象の行列を示す図である。行列Aは、例えば、n行n列の正方行列である。行列xは、例えば、n行1列の行列である。行列bは、例えば、n行1列の行列である。行列bは、行列Aと行列xとの積を示す行列である。行列bの要素b1〜bnは、次式で表される。
1=A11×x1+A12×x2+A13×x3+・・・+A1n×xn
2=A21×x1+A22×x2+A23×x3+・・・+A2n×xn
3=A31×x1+A32×x2+A33×x3+・・・+A3n×xn
・・・
n=An1×x1+An2×x2+An3×x3+・・・+Ann×xn
ここで、行列Aと行列bが既知の行列である。情報処理装置100は、例えば、共役勾配法(CG法)により、行列Aと行列bを基に行列xの解を算出する。具体的には、まず、情報処理装置100は、行列xに初期解を代入する。次に、情報処理装置100は、行列Aと行列xとの積を演算する。次に、情報処理装置100は、その演算結果の行列と行列bとの差が小さくなるように、行列xの各要素を更新し、行列Aと行列xとの積を演算する。情報処理装置100は、行列xの各要素が収束するまで、上記の行列の積の演算サイクルを繰り返す。nは膨大な数であるため、繰り返す演算サイクル数も膨大な数となる。この繰り返し演算により、情報処理装置100は、行列xの解を算出することができる。このように、情報処理装置100は、連立方程式の解を算出することができる。
図2(B)は、行列Aと行列xと行列bの例を示す図である。説明の簡単のため、nが8の場合の行列Aと行列xと行列bを示す。行列Aは、対称正方行列であり、かつ疎行列である。疎行列は、要素のほとんどが0である行列である。外部メモリ102は、行列Aの要素のうちの0でない要素を列番号と共に記憶する。演算処理装置103は、次式のように、行列Aの要素のうちの0でない要素と行列xの要素を用いて、行列Aと行列xとの積の演算を行う。
1=A11×x1+A14×x4
2=A23×x3+A28×x8
3=A32×x2+A35×x5
・・・
8=A82×x2+A87×x7
外部メモリ102は、行列xの全要素を記憶している。したがって、演算処理装置103は、上記の演算を行う場合、外部メモリ102に対して、行列xの要素をシーケンシャルアクセスによるリードではなく、ランダムアクセスによるリードを行うことになる。その結果、演算処理装置103は、通常のキャッシュメモリを用いた場合、キャッシュヒット率が低いものとなる。そこで、演算処理装置103は、キャッシュメモリとして、ロック領域161と非ロック領域162を設けることにより、キャッシュヒット率を向上させ、リード速度を向上させる。
図3(A)は行列Aと行列bの具体例を示す図であり、図3(B)は外部メモリ102に格納されるデータD1〜D4を示す図である。行列Aは、対称正方行列、かつ疎行列である。なお、行列Aは、対称行列でなくてもよい。行列Aの要素と行列bの要素の値は、既知の値である。演算処理装置103は、行列Aと行列bを基に行列xの解を算出する。外部メモリ102は、データD1〜D4を記憶する。行列bは、データD4により表される。データD4は、行列bの各要素の値{0.0,1.9,2.5,−6.3}である。
行列Aは、例えば、CRS形式のデータD1〜D3により表される。行列Aは、対称行列であるので、左下の三角形と右上の三角形に分割した場合、左下の三角形内の要素値と右上の三角形内の要素値が対象になっている。そこで、外部メモリ102は、左下の三角形内の要素値のうちの0でない要素値(矩形で囲んだ要素値)を記憶する。
データD3は、その左下の三角形内の要素値のうちの0でない要素値を、ラスタスキャンの順番で並べた要素値を示す。ラスタスキャンは、まず、第1行の左から右に向けてスキャンし、次に、第2行の左から右に向けてスキャンし、同様に、行番号を順次増やしながら、各行のスキャンを繰り返す。
データD2は、データD3の各要素値の列番号(0から始まる列番号)を並べたものである。例えば、データD3の要素値「1.2」は、データD2の列番号「0」に対応する。データD3の要素値「1.15」は、データD2の列番号「1」に対応する。
データD1は、行列Aの各行において、0でない要素値のうちの先頭の要素値の列番号(0から始まる列番号)を並べたものである。例えば、第1行において、0でない要素値のうちの先頭の要素値「1.2」の列番号は0である。第2行において、0でない要素値のうちの先頭の要素値「1.15」の列番号は1である。
図1のインデックス情報格納領域111は、データD1及びD2を格納する。図1の演算データ格納領域112は、データD3及びD4を格納する。図1の結果格納領域113は、行列xの要素値を格納する。
図4は、演算処理装置103が演算する演算サイクルと演算処理装置103がリードする結果格納領域113のアドレスとの関係を示すグラフである。演算処理装置103は、行列xの解を求めるための行列演算を行い、全演算サイクルが終了すると、行列xの解が確定する。上記のように、行列Aが疎行列である場合には、演算処理装置103は、結果格納領域113に格納されている行列xの要素をランダムにリードする。そのため、行列A及び行列bの要素のキャッシュヒット率は比較的高いが、行列xの要素のキャッシュヒット率は比較的低い。
複数の演算サイクル区間Tは、全演算サイクルを演算サイクル区間T毎に分割した区間である。キャッシュロック情報生成処理部131は、ロックアドレス決定部であり、演算サイクル区間T毎に、演算のためにリードする各アドレスのリード回数を集計し、そのリード回数に応じて、演算サイクル区間T毎にキャッシュロックするアドレスを決定する。この際、キャッシュロック情報生成処理部131は、インデック情報格納領域111に格納されているデータD1及びD2を基に、演算サイクル区間T毎の演算のためにリードするアドレスを得る。具体的には、キャッシュロック情報生成処理部131は、演算サイクル区間T毎に、リード回数が多いランキングのアドレスのうちの上位の所定数のアドレス401をキャッシュロックするアドレスとして決定する。上位の所定数のアドレス401は、その演算サイクル区間Tではリード回数が多いので、キャッシュデータ格納領域142から追い出さないことが好ましい。キャッシュロック情報生成処理部131は、演算サイクル区間T毎に、キャッシュロックするアドレス401をキャッシュロック情報151として、キャッシュロック情報格納領域141にライトする。
キャッシュデータ格納領域142は、キャッシュメモリであり、ロック領域161と非ロック領域162を含む。ロック領域161には、演算サイクル区間T毎に、キャッシュロックするアドレス401のデータが格納される。非ロック領域162には、演算サイクル区間T毎に、キャッシュロックするアドレス401以外のアドレスのデータが格納される。ロック領域161は、キャッシュの追い出しが許可されていない領域である。非ロック領域162は、キャッシュの追い出しが許可されている領域である。リード処理部134は、キャッシュメモリ制御部であり、キャッシュデータ格納領域142の制御を行う。
演算処理部123は、スケジューラであり、演算サイクルの制御を行う。演算処理部123は、キャッシュデータ格納領域142にリード要求(アドレスを含む)を発行し、リード要求のアドレスに対応するデータがキャッシュデータ格納領域142に格納されている場合には、リード要求のアドレスに対応するデータをキャッシュデータ格納領域142からリードする。
リード要求のアドレスに対応するデータがキャッシュデータ格納領域142に格納されていない場合、演算処理部123は、リード処理部134に対して、リード要求を発行する。リード処理部134は、キャッシュロック情報151を参照し、リード要求のアドレスが演算サイクル区間T毎のキャッシュロックするアドレスである場合には、リード要求のアドレスのデータを外部メモリ102からリードし、そのリードしたデータをロック領域161に格納する。また、リード処理部134は、キャッシュロック情報151を参照し、リード要求のアドレスが演算サイクル区間T毎のキャッシュロックするアドレスでない場合には、リード要求のアドレスのデータを外部メモリ102からリードし、そのリードしたデータを非ロック領域162に格納する。その後、演算処理部123は、リード要求のアドレスのデータをロック領域161又は非ロック領域162からリードする。
演算処理部123は、演算器アレイ124に対して、そのリードしたデータを用いた演算を指示する。演算器アレイ124は、行列Aと行列xと行列bのデータを用いて、演算を行い、更新後の行列xのデータを出力する。演算処理部123は、その更新後の行列xのデータをキャッシュデータ格納領域142に書き戻す。
上記の処理が、1演算サイクルである。演算処理部123は、全演算サイクルが終了するまで、更新後の行列xのデータを用いて、上記の演算サイクルを繰り返す。リード処理部134は、外部メモリ102からデータをリードし、そのリードしたデータをキャッシュデータ格納領域142にライトする。この際、キャッシュデータ格納領域142が満杯である場合、リード処理部134は、キャッシュデータ格納領域142からのキャッシュの追い出しを行う。リード処理部134は、キャッシュデータ格納領域142からの追い出しを行う場合には、ロック領域161からの追い出しを行わず、非ロック領域162からの追い出しを行う。キャッシュロックするアドレス401のデータは、その演算サイクル区間Tにおいてリード回数が多く、ロック領域161に格納されているので、追い出しが行われない。これにより、キャッシュヒット率が向上し、リード速度を向上させることができる。
全演算サイクルの演算が終了すると、行列xの解が確定する。ライト処理部135は、キャッシュデータ格納領域142に格納されている行列xの要素を外部メモリ102の結果格納領域113に書き戻す。その後、アプリケーション処理部101は、結果格納領域113から行列xの要素をリードする。
図5は、演算処理装置103が演算する演算サイクルと演算処理装置103がリードする結果格納領域113のアドレスとの他の関係を示すグラフである。領域501は、演算サイクル区間T毎に、リード回数が多いアドレスに偏向がなく、リード回数が多いアドレスが多すぎる。領域501では、キャッシュロックするアドレス401が多くなりすぎ、ロック領域161が溢れてしまい、キャッシュロック機能のメリットを活かすことができない。そこで、キャッシュロック情報生成処理部131は、領域501のように、演算サイクル区間T毎に、リード回数が第1の閾値より多いアドレスの数が、第2の閾値より多い場合、そのアドレスをキャッシュロックするアドレスにはしない。
これに対し、領域502は、演算サイクル区間T毎に、リード回数が多いアドレスに偏向があり、リード回数が多いアドレスが少ない。領域502では、キャッシュロックするアドレス401が少ないので、キャッシュロック機能のメリットを活かすことができる。そこで、キャッシュロック情報生成処理部131は、領域502のように、演算サイクル区間T毎に、リード回数が第1の閾値より多いアドレスの数が、第2の閾値より少ない場合、上記のように、リード回数が多いランキングのアドレスのうちの上位の所定数のアドレス401をキャッシュロックするアドレスとして決定する。
図6は、演算処理装置103が演算する演算サイクルと演算処理装置103がリードする結果格納領域113のアドレスとの他の関係を示すグラフである。期間601は、複数の演算サイクル区間Tを含み、リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスが変化しない期間である。期間T2は、1個の演算サイクル区間Tであり、演算サイクル区間Tの途中で、リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスが変化する期間である。期間603は、複数の演算サイクル区間Tを含み、リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスが変化しない期間である。
有効/無効情報生成処理部132は、ロックアドレス決定部であり、キャッシュロック機能の有効/無効を決定する。有効/無効情報生成処理部132は、期間602のように、演算サイクル区間Tの途中で、リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスが変化する場合には、その演算サイクル区間Tのキャッシュロック機能を無効にする有効/無効情報152を生成する。また、有効/無効情報生成処理部132は、期間601及び603のように、演算サイクル区間Tの途中で、リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスが変化しない場合には、その演算サイクル区間Tのキャッシュロック機能を有効にする有効/無効情報152を生成する。そして、有効/無効情報生成処理部132は、その演算サイクル区間T毎のキャッシュロック機能の有効/無効情報152をキャッシュロック情報格納領域141にライトする。
有効/無効切替処理部133は、有効/無効情報152を参照し、リード処理部134に対して、キャッシュロック機能の有効又は無効を切り替える。リード処理部134は、キャッシュロック機能が有効である演算サイクル区間Tでは、リード要求のアドレスに応じてロック領域161又は非ロック領域162にデータを格納する。また、リード処理部134は、キャッシュロック機能が無効である演算サイクル区間Tでは、非ロック領域162にデータを格納する。
有効/無効切替処理部133は、期間602では、キャッシュロック機能を無効にすることにより、不要なキャッシュロックを防止することができる。
図7は、情報処理装置100の制御方法を示すフローチャートである。ステップS701では、アプリケーション処理部101は、制御部121を介して、データD1及びD2をインデックス情報格納領域111にライトし、データD3及びD4を演算データ格納領域112にライトする。次に、アプリケーション処理部101は、制御部121に対して、行列xの解を算出するための演算開始を指示する。すると、制御部121は、行列xの初期解を生成し、その生成した行列xの初期解を結果格納領域113にライトする。
次に、ステップS702では、キャッシュロック情報生成処理部131は、インデックス情報格納領域111に格納されているデータD1及びD2を基に、演算サイクル区間T毎の演算のためにリードするアドレスを得る。次に、キャッシュロック情報生成処理部131は、演算サイクル区間T毎に、演算のためにリードする各アドレスのリード回数を集計し、リード回数に応じて、演算サイクル区間T毎にキャッシュロックするアドレスを決定する。具体的には、キャッシュロック情報生成処理部131は、図4のように、演算サイクル区間T毎に、リード回数が多いランキングのアドレスのうちの上位の所定数のアドレス401をキャッシュロックするアドレスとして決定する。また、キャッシュロック情報生成処理部131は、図5のように、演算サイクル区間T毎に、リード回数が第1の閾値より多いアドレスの数が、第2の閾値より少ない場合、リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスをキャッシュロックするアドレスとして決定する。キャッシュロックするアドレスの対象は、例えば、行列xの要素のアドレスであるが、この限りではない。次に、キャッシュロック情報生成処理部131は、その決定した演算サイクル区間T毎のキャッシュロックするアドレスを、キャッシュロック情報151としてキャッシュロック情報格納領域141にライトする。
次に、ステップS703では、有効/無効情報生成処理部132は、図6の期間602ように、演算サイクル区間Tの途中で、リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスが変化する場合には、その演算サイクル区間Tのキャッシュロック機能を無効にする有効/無効情報152を生成する。また、有効/無効情報生成処理部132は、図6の期間601及び603のように、演算サイクル区間Tの途中で、リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスが変化しない場合には、その演算サイクル区間Tのキャッシュロック機能を有効にする有効/無効情報152を生成する。次に、有効/無効情報生成処理部132は、その生成した演算サイクル区間T毎の有効/無効情報152をキャッシュロック情報格納領域141にライトする。
次に、ステップS704では、制御部121は、演算処理部123を起動する。演算処理部123は、行列A及び行列bを基に行列xの解を算出するための演算制御を開始する。演算処理部123は、ステップS705〜S711を1演算サイクルとして、所定回数の演算サイクルの処理を繰り返す。
ステップS705は、演算処理部123は、当該演算サイクルに必要なデータのリード要求(アドレスを含む)をキャッシュデータ格納領域142に発行し、リード要求のアドレスに対応するデータがキャッシュデータ格納領域142に格納されている場合には、リード要求のアドレスに対応するデータをキャッシュデータ格納領域142からリードする。
リード要求のアドレスに対応するデータがキャッシュデータ格納領域142に格納されていない場合、演算処理部123は、リード処理部134に対して、リード要求を発行する。有効/無効切替処理部133は、キャッシュロック情報格納領域141に格納されている演算サイクル区間T毎の有効/無効情報152を参照し、演算サイクル区間T毎のキャッシュロック機能の有効又は無効を指示する。
次に、ステップS706では、リード処理部134は、キャッシュロック機能が有効である場合には、ステップS707に進み、キャッシュロック機能が無効である場合には、ステップS709に進む。
ステップS707では、リード処理部134は、キャッシュロック情報格納領域141に格納されている演算サイクル区間T毎のキャッシュロック情報151を参照し、リード要求のアドレスが当該演算サイクル区間Tのキャッシュロックするアドレスであるか否かを判定する。リード処理部134は、リード要求のアドレスがキャッシュロックするアドレスである場合には、ステップS708に進み、リード要求のアドレスがキャッシュロックするアドレスでない場合には、ステップS709に進む。
ステップS708では、リード処理部134は、リード要求のアドレスのデータを外部メモリ102からリードし、そのリードしたデータをロック領域161に格納する。演算処理部123は、リード要求のアドレスのデータをロック領域161からリードし、ステップS710に進む。ロック領域161には、当該演算サイクル区間Tにおいて使用頻度が高い行列xの要素が格納される。
ステップS709では、リード処理部134は、リード要求のアドレスのデータを外部メモリ102からリードし、そのリードしたデータを非ロック領域162に格納する。なお、キャッシュロック機能が無効である場合には、ロック領域161も非ロック領域162として利用される。演算処理部123は、リード要求のアドレスのデータを非ロック領域162からリードし、ステップS710に進む。非ロック領域161には、行列x、行列A又は行列bの要素が格納される。
ステップS710では、演算処理部123は、演算器アレイ124に対して、そのリードしたデータと、そのデータを用いた演算命令を出力する。演算器アレイ124は、行列Aと行列xと行列bのデータを用いて、演算を行い、更新後の行列xのデータを出力する。
次に、ステップS711では、演算処理部123は、その更新後の行列xのデータをキャッシュデータ格納領域142にライトする。又は、演算処理部123は、ライト処理部135を介して、その更新後の行列xのデータを結果格納領域113にライトする。
次に、ステップS712では、演算処理部123は、全演算サイクルの演算が終了したか否かを判定する。演算処理部123は、全演算サイクルの処理が終了していない場合には、ステップS705に戻り、次の演算サイクルの処理を繰り返す。また、演算処理部123は、全演算サイクルの処理が終了した場合には、ステップS713に進む。
ステップS713では、キャッシュデータ格納領域142は、行列xの解を格納している。ライト処理部135は、演算処理部123の指示により、キャッシュデータ格納領域142に格納されている行列xの解をリードし、その行列xの解を結果格納領域113にライトする。
次に、ステップS714では、アプリケーション処理部101は、結果格納領域113に格納されている行列xの解を読み出し、行列xの解を取得する。
以上のように、演算処理装置103は、ロック領域161及び非ロック領域162を用いることにより、キャッシュヒット率を向上させ、リード速度を向上させることができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
100 情報処理装置
101 アプリケーション処理部
102 外部メモリ
103 演算処理装置
111 インデック情報格納領域
112 演算データ格納領域
113 結果格納領域
121 制御部
122 内蔵メモリ
123 演算処理部
124 演算器アレイ
131 キャッシュロック情報生成処理部
132 有効/無効情報生成処理部
133 有効/無効切替処理部
134 リード処理部
135 ライト処理部
141 キャッシュロック情報格納領域
142 キャッシュデータ格納領域
151 キャッシュロック情報
152 有効/無効情報
161 ロック領域
162 非ロック領域

Claims (11)

  1. ロック領域と非ロック領域を含むキャッシュメモリと、
    演算サイクル区間毎に、演算のためにリードする各アドレスのリード回数を集計し、前記リード回数に応じて、前記演算サイクル区間毎にキャッシュロックするアドレスを決定するロックアドレス決定部と、
    前記演算サイクル区間毎のリード要求のアドレスが前記演算サイクル区間毎のキャッシュロックするアドレスである場合には、前記リード要求のアドレスのデータを前記キャッシュメモリのロック領域に格納し、前記演算サイクル区間毎のリード要求のアドレスが前記演算サイクル区間毎のキャッシュロックするアドレスでない場合には、前記リード要求のアドレスのデータを前記キャッシュメモリの非ロック領域に格納し、前記キャッシュメモリからの追い出しを行う場合には、前記キャッシュメモリのロック領域からの追い出しを行わず、前記キャッシュメモリの非ロック領域からの追い出しを行うキャッシュメモリ制御部と、
    前記リード要求に応じて、前記キャッシュメモリに格納されたデータを基に演算を行う演算部と
    を有することを特徴とする演算処理装置。
  2. 前記ロックアドレス決定部は、前記演算サイクル区間毎に、前記リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスを前記キャッシュロックするアドレスとして決定することを特徴とする請求項1に記載の演算処理装置。
  3. 前記ロックアドレス決定部は、前記演算サイクル区間毎に、前記リード回数が第1の閾値より多いアドレスの数が、第2の閾値より少ない場合、前記リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスを前記キャッシュロックするアドレスとして決定することを特徴とする請求項2に記載の演算処理装置。
  4. 前記ロックアドレス決定部は、前記演算サイクル区間の途中で、前記リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスが変化する場合には、前記演算サイクル区間のキャッシュロック機能を無効にし、前記演算サイクル区間の途中で、前記リード回数が多いランキングのアドレスのうちの上位の所定数のアドレスが変化しない場合には、前記演算サイクル区間のキャッシュロック機能を有効にし、
    前記キャッシュメモリ制御部は、前記キャッシュロック機能が有効である演算サイクル区間では、前記リード要求のアドレスに応じて前記キャッシュメモリのロック領域又は非ロック領域にデータを格納し、前記キャッシュロック機能が無効である演算サイクル区間では、前記ロック領域も非ロック領域として利用され、前記キャッシュメモリの非ロック領域にデータを格納することを特徴とする請求項2又は3に記載の演算処理装置。
  5. 前記演算部は、連立方程式の解を算出することを特徴とする請求項1〜4のいずれか1項に記載の演算処理装置。
  6. 前記演算部は、行列の積を演算することを特徴とする請求項1〜5のいずれか1項に記載の演算処理装置。
  7. 前記演算部は、第1の行列と第2の行列の積が第3の行列である場合に、前記第1の行列と前記第3の行列を基に前記第2の行列の解を算出することを特徴とする請求項1〜6のいずれか1項に記載の演算処理装置。
  8. 前記第1の行列は、疎行列であることを特徴とする請求項7に記載の演算処理装置。
  9. 前記第1の行列は、対称正方行列であることを特徴とする請求項8に記載の演算処理装置。
  10. 前記ロックアドレス決定部は、前記第1の行列の中の0でない要素の列番号を基に、演算サイクル区間毎の演算のためにリードするアドレスを得ることを特徴とする請求項8又は9に記載の演算処理装置。
  11. 演算サイクル区間毎に、演算のためにリードする各アドレスのリード回数を集計し、前記リード回数に応じて、前記演算サイクル区間毎にキャッシュロックするアドレスを決定し、
    前記演算サイクル区間毎のリード要求のアドレスが前記演算サイクル区間毎のキャッシュロックするアドレスである場合には、前記リード要求のアドレスのデータをキャッシュメモリのロック領域に格納し、
    前記演算サイクル区間毎のリード要求のアドレスが前記演算サイクル区間毎のキャッシュロックするアドレスでない場合には、前記リード要求のアドレスのデータを前記キャッシュメモリの非ロック領域に格納し、
    前記キャッシュメモリからの追い出しを行う場合には、前記キャッシュメモリのロック領域からの追い出しを行わず、前記キャッシュメモリの非ロック領域からの追い出しを行い、
    前記リード要求に応じて、前記キャッシュメモリに格納されたデータを基に演算を行うことを特徴とする演算処理装置の制御方法。
JP2017246376A 2017-12-22 2017-12-22 演算処理装置及び演算処理装置の制御方法 Active JP7144670B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017246376A JP7144670B2 (ja) 2017-12-22 2017-12-22 演算処理装置及び演算処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017246376A JP7144670B2 (ja) 2017-12-22 2017-12-22 演算処理装置及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2019114013A true JP2019114013A (ja) 2019-07-11
JP7144670B2 JP7144670B2 (ja) 2022-09-30

Family

ID=67223729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017246376A Active JP7144670B2 (ja) 2017-12-22 2017-12-22 演算処理装置及び演算処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP7144670B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023013649A1 (ja) * 2021-08-06 2023-02-09 株式会社エヌエスアイテクス データキャッシュ装置およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0869418A (ja) * 1994-08-26 1996-03-12 Omron Corp キャッシュメモリ制御システム、コンパイラ制御システムおよびコンピュータ・システム
JP2004192403A (ja) * 2002-12-12 2004-07-08 Fuji Xerox Co Ltd キャッシュメモリのデータ管理方法、及び情報処理装置
JP2005301387A (ja) * 2004-04-07 2005-10-27 Matsushita Electric Ind Co Ltd キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US20160117254A1 (en) * 2014-10-22 2016-04-28 Netapp, Inc. Cache optimization technique for large working data sets

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0869418A (ja) * 1994-08-26 1996-03-12 Omron Corp キャッシュメモリ制御システム、コンパイラ制御システムおよびコンピュータ・システム
JP2004192403A (ja) * 2002-12-12 2004-07-08 Fuji Xerox Co Ltd キャッシュメモリのデータ管理方法、及び情報処理装置
JP2005301387A (ja) * 2004-04-07 2005-10-27 Matsushita Electric Ind Co Ltd キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US20160117254A1 (en) * 2014-10-22 2016-04-28 Netapp, Inc. Cache optimization technique for large working data sets

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023013649A1 (ja) * 2021-08-06 2023-02-09 株式会社エヌエスアイテクス データキャッシュ装置およびプログラム

Also Published As

Publication number Publication date
JP7144670B2 (ja) 2022-09-30

Similar Documents

Publication Publication Date Title
US10176057B2 (en) Multi-lock caches
TWI524348B (zh) 用於複合式非揮發性儲存裝置之資料遷移
US9535848B2 (en) Using cuckoo movement for improved cache coherency
US10409728B2 (en) File access predication using counter based eviction policies at the file and page level
US9229869B1 (en) Multi-lock caches
CN110795363B (zh) 一种存储介质的热页预测方法和页面调度方法
JP2015001908A (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
CN110532200B (zh) 一种基于混合内存架构的内存系统
JP2014059871A (ja) キャッシュ構造へのアクセスを制御するための装置
CN107315694B (zh) 一种缓存一致性管理方法及节点控制器
US20150039836A1 (en) Methods and apparatus related to data processors and caches incorporated in data processors
US10366011B1 (en) Content-based deduplicated storage having multilevel data cache
CN109564549A (zh) 数据高速缓存区域预取器
US20180113815A1 (en) Cache entry replacement based on penalty of memory access
Nisa et al. Parallel ccd++ on gpu for matrix factorization
CN108628770B (zh) 用于高性能高速缓存的基于近期最少使用的热跟踪机制增强
CN108021514A (zh) 一种缓存替换的方法和设备
CN110036376A (zh) 无分配高速缓存策略
US20170052890A1 (en) Operation processing device and method for controlling operation processing device
KR20230026413A (ko) 조합된 캐시 정책 테스트에 기초한 캐시용 캐시 정책 구성
JP2019114013A (ja) 演算処理装置及び演算処理装置の制御方法
US6931493B2 (en) Implementation of an LRU and MRU algorithm in a partitioned cache
KR20200088391A (ko) 공통 메모리 페이지로부터 메모리로의 캐시 라인들의 린싱
US11899642B2 (en) System and method using hash table with a set of frequently-accessed buckets and a set of less frequently-accessed buckets
Aksu et al. Graph aware caching policy for distributed graph stores

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180615

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210803

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20210830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220411

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220829

R150 Certificate of patent or registration of utility model

Ref document number: 7144670

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150