JP6191240B2 - 変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム - Google Patents
変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム Download PDFInfo
- Publication number
- JP6191240B2 JP6191240B2 JP2013112017A JP2013112017A JP6191240B2 JP 6191240 B2 JP6191240 B2 JP 6191240B2 JP 2013112017 A JP2013112017 A JP 2013112017A JP 2013112017 A JP2013112017 A JP 2013112017A JP 6191240 B2 JP6191240 B2 JP 6191240B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- variable
- program
- hit
- determination
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Description
[第1実施形態]
第1の実施の形態の構成を説明する。
図1に示すように、第1の実施の形態に係るプロファイルデータ取得システムは、複数の計算機10s0、10s1、…10sNを備えている。これらの計算機は互いに独立して稼働する。これらの計算機10s0、10s1、…10sNは、ネットワーク14を介してデータベース12に接続されている。計算機10s0、10s1、…10sNは同一の構成であるので、以下計算機10s0のみを説明する。
プロファイルデータ取得システムは、開示の技術の変数更新システムの一例である。計算機10s0、10s1、…10sNは、開示の技術の変数更新装置の一例である。
第1の実施の形態の技術では、主メモリ及びキャッシュメモリへのアクセスをシミュレーションする。即ち、第1の実施の形態の技術は、主メモリ及びキャッシュメモリに現実にアクセスすると共にヒット又はミスを計算することにより、プロファイルデータを取得する技術ではない。
記憶領域404sは、開示の技術の記憶部の一例である。4つのブロック170A0〜170A3は、開示の技術の記憶ブロックの一例である。
ステップ94、100、106の処理は、開示の技術における判定部が実行する判定の内容の一例である。
ステップ116〜124の処理は、開示の技術の判断部の判断の内容の一例である。ステップ126〜132の処理は、開示の技術の第2の処理の一例である。ステップ134の処理は、開示の技術の第1の処理の一例である。
ステップ144〜150の処理は、開示の技術の記憶ブロックを書き換える内容の一例である。
第1に、キャッシュメモリのキャッシュセット数分の計算機を使用することに限定されずに、例えば、次のようにしてもよい。1つの計算機で、キャッシュメモリのキャッシュセット毎のプロファイルデータ取得処理を実行してもよい。また、例えば、2つの計算機を用いて、一方の計算機で、セット番号が奇数のキャッシュセットのプロファイルデータ取得処理を実行し、他方の計算機で、セット番号が偶数のキャッシュセットのプロファイルデータ取得処理を実行してもよい。このような変形例が可能な理由は次の通りである。即ち、各キャッシュセットに対応する各プロファイルデータ取得プログラムは、キャッシュセット番号sで識別される。よって、あるキャッシュセットのプロファイルデータを取得したい場合には、当該キャッシュセット番号sにより識別されるプロファイルデータ取得プログラムのみが選択されることが可能である。選択されたプロファイルデータ取得プログラムを実行することにより、当該キャッシュセットのプロファイルデータを取得することができる。
以上の変形例はすべて後述する他の全ての実施の形態にも適用される。
次に、第2の実施の形態を説明する。
第2の実施の形態の構成は、第1の実施の形態の構成と同様であるのでその説明を省略する。なお、第2の実施の形態では、データベース12に、後述する条件判定の結果を保存したファイルが記憶されている点で第1の実施の形態の構成と相違する。
次に、第2の実施の形態の作用を説明する。第2の実施の形態の作用は、第1の実施の形態の作用とほぼ同様であるので、異なる部分のみ説明する。
次に、第3の実施の形態を説明する。
第3の実施の形態の構成は、第1の実施の形態の構成とほぼ同様であるので、異なる部分のみ説明する。
第3の実施の形態では、複数段、例えば、2段のキャッシュを用いることを想定する点で第1の実施の形態及び第2の実施の形態と異なる。即ち、図11に示すように、第3の実施の形態は、2段のキャッシュメモリ170(L1)、172(L2)を備えることを想定する。第1のキャッシュメモリ170のセットは4個であるのに対し、第2のセットは16個である。従って、第3の実施の形態では、タグ記憶領域も複数段、即ち、2段となっている。よって、あるキャッシュセットに対応する計算機のメモリ34には、1段のキャッシュセットに対応して1個の記憶領域が、2段のキャッシュセットに対応して4つの記憶領域が設けられている。
4つのブロック172A00〜172A30の処理は、開示の技術の対応記憶部の一例である。
第3の実施の形態におけるプロファイルデータを取得したい元のプログラムは、第1の実施の形態の元のプログラム(図2(A)参照)と同じであるので、その説明を省略する。第3の実施の形態のプロファイルデータ取得プログラムも、第1の実施の形態のプログラムプロファイルデータ取得プログラム(図5及び図6参照)とほぼ同様であるので、異なる部分のみを説明する。第3の実施の形態のプロファイルデータ取得処理の一例は、図12に示されているように、プロファイルデータ取得処理(図6)のステップ134の後に次の処理が実行される。即ち、ステップ164で、ACCESSプログラム実行部94Aは、主要メモリのアドレス(address)を用いて、第2段のキャッシュメモリ172(L2)についてヒット又はミスをカウントするカウント処理を実行する。
ステップ206g0〜212g0の処理は、開示の技術の記憶判断部の判断の一例である。ステップ214g0〜222g0の処理は、開示の技術の第3の処理の一例である。ステップ222g0の処理は、開示の技術の第4の処理の一例である。
第2段のキャッシュメモリの全てのブロックでミスが生じた場合、HIT_Pは−1のままであるので、図12のステップ136が肯定され、ステップ144で、第1段のキャッシュメモリのブロックのタグ情報の書き換えが行われる。
まず、第3の実施の形態は、第1の実施の形態の効果を有する。
変数HIT_C_L20及び変数MISS_C_L20の双方をインクリメントすることに限定されず、例えば、変数HIT_C_L20及び変数MISS_C_L20の何れか一方をカウントしてもよい。そして、例えば、変数HIT_C_L20のみインクリメントされた場合には、図12のステップ134に基づく変数MISS_Cの最終値から、変数HIT_C_L20の最終値を減算して、変数MISS_C_L20の最終値を計算する。また、変数MISS_C_L20のみインクリメントされた場合には、図12のステップ134に基づく変数MISS_Cの最終値から、変数MISS_C_L20の最終値を減算して変数HIT_C_L20の最終値を計算する。
次に、第4の実施の形態を説明する。
第4の実施の形態の構成は、第1の実施の形態の構成と同様であるので、その説明を省略する。
次に、第4の実施の形態の作用を説明する。第4の実施の形態は、各配列毎にヒットミスがカウントされて、プロファイルデータが取得される。
第4の実施の形態のプロファイルデータを取得したい元のプログラムは第1の実施の形態(図2(A))と同じである。第4の実施の形態のプロファイルデータ取得プログラムも、第1の実施の形態のプロファイルデータ取得プログラム(図2(C)参照)とほぼ同様である。第4の実施の形態のプロファイルデータ取得処理の一例は、図18及び図19にフローチャートで示されている。図18及び図19に示されている処理は、第1の実施の形態のプロファイルデータ取得処理(図5と図6)とほぼ同様であるので、異なる部分のみを説明する。
ステップ254、258、262の処理は、開示の技術の配列ミス変数を更新する内容の一例である。
まず、第4の実施は、第1の実施の形態の効果を有する。
次に、第5の実施の形態を説明する。
第5の実施の形態の構成は、第1の実施の形態の構成と同様であるので、その説明を省略する。なお、第5の実施の形態のデータベース12には、例えば、配列Xにおいていくつか先のデータを読み出すプリフェッチ(prefetch)命令を配置する位置及びそのパラメータの情報が記憶されている。ここで、プリフェッチ命令を配置する位置としては、図20(A)における元のプログラムP005に示すように、例えば、第3番目のデータソースの位置である。また、パラメータとしては、どの位先のデータを主メモリから読み出すのかを示す。例えば、64個先のメモリ領域のデータである。
ステップ274の処理は、本開示の技術における非判定データについて予め判定を行うことの一例である。
ステップ302〜308の処理は、開示の技術のヒット判断部の判断の内容の一例である。ステップ310〜316の処理は、開示の技術の予め記憶ヒット変数を更新することの一例である。
ステップ318の処理は、開示の技術の非判定データに対応するアドレス情報を記憶部に予め記憶させる内容の一例である。
まず、第5の実施の形態は、第1の実施の形態の効果を有する。
また、第5の実施の形態は、プリフェッチによって、ヒットが生じた総数をキャッシュセット毎に取得するので、プリフェッチ命令を配置する位置やパラメータを指定した結果、ヒットの総数が向上したのか等のプリフェッチの検証をすることができる。
次に、第6の実施の形態を説明する。
第6の実施の形態は、第1の実施の形態とほぼ同様であるので、図24を参照して、異なる部分のみ説明する。第6の実施の形態では、各計算機10s0〜10sNを管理する管理装置600がネットワーク14を介して各計算機10s0〜10sNに接続されている。管理装置600の構成は各計算機10s0〜10sNと同様である。
なお、第6の実施の形態のシステムは、開示の技術のプログラム変更検証システムの一例である。管理装置600は、開示の技術の管理装置の一例である。
ステップ330で、管理装置は各計算機10s0〜10sNに指示することにより、前述した第1の実施の形態〜第4の実施の形態の何れかにおけるプロファイルデータ取得処理を実行させることにより、プロファイルデータを取得する。ステップ332で、計算部333Aは、取得したプロファイルデータに基づいて、キャッシュメモリのキャッシュセットの全体のキャッシュミスの総数Sの計算をする。ステップ334で、集合生成部335Aは、取得したプロファイルデータに基づいて、キャッシュミスが頻繁に、例えば30パーセント(その他、35パーセント、40パーセントでもよい)以上発生しているキャッシュセットの集合Pを生成する。ステップ336で、計算部333Aは、取得したプロファイルデータに基づいて、集合Pにおけるキャッシュミスの総数Mpを計算する。
ステップ334、336、346、348、350、352、354は、開示の技術の管理装置の行う内容の一例である。
第6の実施の形態では、プリフェッチ命令の挿入する位置及びパラメータを種々変えて各々の場合のプロファイルデータを、上記第1〜第4の実施の形態の何れかの方法で、取得している。従って、どの位置にどのくらいのパラメータでプリフェッチ命令を挿入するとミスが改善するのかを検証することができる。よって、プリフェッチ命令の挿入する位置及びパラメータの候補が多数存在しても、候補のしぼり込みにかかる時間を大幅に短縮することができる。
記憶領域であるキャッシュセットを複数個備えたキャッシュメモリのキャッシュセットの何れかに各々対応する主メモリの複数のメモリ領域の何れかに各々対応付けられた複数のデータの各データを判定対象データとして、当該判定対象データに対応するキャッシュセットが、予め選択されたキャッシュセットであるか否かを判定する判定部と、
前記予め選択されたキャッシュセットに対応して設けられ、当該選択されたキャッシュセットに対応するメモリ領域のアドレス情報を記憶する記憶部と、
前記判定部により前記対応するキャッシュセットが前記予め選択されたキャッシュセットであると判定された場合、(1)前記判定対象データに対応する前記メモリ領域のアドレス情報が前記記憶部に記憶されていることを示すヒット、及び、(2)前記判定対象データに対応する前記メモリ領域のアドレス情報が前記記憶部に記憶されていないことを示すミス、の何れが生じたかを判断する判断部と、
前記判断部によりミスが生じたと判断された場合に、ミスの回数を示すミス変数を更新しかつ前記記憶部に前記アドレス情報を記憶させる第1の処理、及び、前記ヒットが生じたと判断された場合に、ヒットの回数を示すヒット変数を更新する第2の処理の少なくとも一方を行う処理部と、
を備えた変数更新装置。
前記複数のデータは、少なくとも1つの配列のデータである、付記1に記載の変数更新装置。
前記キャッシュセットは複数のブロックを有し、
前記記憶部は、前記複数のブロックに対応する複数の記憶ブロックを有し、
前記処理部は、前記判定対象データに対応する前記メモリ領域のアドレス情報を含めて、前記記憶ブロックの個数分のアドレス情報が古い順に記憶されるように、前記複数の記憶ブロックを書き換える
付記1に記載の変数更新装置。
前記複数のデータは、複数の配列のデータであり、
前記判定部は、前記複数の配列各々の各データを前記判定対象データとして、前記判定を行う付記1〜付記3の何れか1項に記載の変数更新装置。
前記判定部は、前記複数の配列の内の1つの配列の判定対象データの値が他の配列の判定対象データの値より大きい場合に、更に他の配列の前記判定対象データについて前記判定をする付記4に記載の変数更新装置。
各々が前記記憶部に対応して設けられかつ前記アドレス情報を記憶する複数の対応記憶部を更に備え、
前記ミスが生じたと判断された場合に、前記複数の対応記憶部の何れかに、前記アドレス情報が記憶されているか否かを判断する記憶判断部を更に備え、
前記処理部は、前記記憶判断部により、前記複数の対応記憶部の何れかに前記アドレス情報が記憶されていると判断された場合に、当該判断がされた回数を示す対応ヒット変数を更新する第3の処理、及び、前記複数の対応記憶部の全てに前記アドレス情報が記憶されていないと判断された場合に、当該判断がされた回数を示す対応ミス変数を更新する第4の処理の少なくとも一方を行う
付記2〜付記5の何れか1項に記載の変数更新装置。
前記複数の配列の各々に対応して、ヒットの回数を示す配列ヒット変数と、ミスの回数を示す配列ミス変数とが定められ、
前記処理部は、前記複数の配列の何れかでヒットが生じた場合、当該配列に対応する配列ヒット変数を更新し、前記複数の配列の何れかでミスが生じた場合、当該配列に対応する配列ミス変数を更新する
付記4〜付記6の何れか1項に記載の変数更新装置。
前記判定部は、前記複数の配列各々の各データについて所定の順番に前記判定をすると共に、前記複数の配列の内の選択された配列について、前記順番では前記判定されない各非判定データについて予め前記判定を行い、
前記処理部は、前記選択された配列について、前記ミスが生じた場合、前記非判定データデータに対応する前記アドレス情報を前記記憶部に予め記憶させる、
付記4〜付記7の何れか1項に記載の変数更新装置。
前記ヒットが生じたと判断された場合、前記記憶部に予め記憶されかつ前記非判定データに対応する前記アドレス情報に基づいて前記ヒットが生じたか否かを判断するヒット判断部を更に備え、
前記記憶部に予め記憶されかつ前記非判定データに対応する前記アドレス情報に基づいて前記ヒットが生じた回数を示す予め記憶ヒット変数が定められ、
前記処理部は、前記ヒット判断部により前記非判定データに対応する前記アドレス情報に基づいて前記ヒットが生じたと判断された場合に、前記予め記憶ヒット変数を更新する
付記8に記載の変数更新装置。
前記ミス変数の値を表示する表示部を更に備えた付記1〜付記9に記載の変数更新装置。
前記キャッシュセットの個数分の付記1〜付記10の何れか1項に記載の複数の変数更新装置を備え、
前記複数の変数更新装置の各々は、各キャッシュセットに対応して設けられ、
前記複数の変数更新装置の各々の前記判定部は、自装置に対応するキャッシュセットを前記予め選択されたキャッシュセットとして前記判定を行い、
前記複数の変数更新装置の各々の前記判定部が前記判定を行う少なくとも一部の期間が重なる
変数更新システム。
記憶領域であるキャッシュセットを複数個備えたキャッシュメモリのキャッシュセットの何れかに各々対応する主メモリの複数のメモリ領域の何れかに各々対応付けられた複数のデータの各データを判定対象データとして、当該判定対象データに対応するキャッシュセットが、予め選択されたキャッシュセットであるか否かを判定し、
前記対応するキャッシュセットが前記予め選択されたキャッシュセットであると判定された場合、(1)前記判定対象データに対応する前記メモリ領域のアドレス情報が、前記予め選択されたキャッシュセットに対応して設けられた記憶部に記憶されていることを示すヒット、及び、(2)前記判定対象データに対応する前記メモリ領域のアドレス情報が前記記憶部に記憶されていないことを示すミス、の何れが生じたかを判断し、
前記判断部によりミスが生じたと判断された場合に、ミスの回数を示すミス変数を更新しかつ前記記憶部に前記アドレス情報を記憶させる第1の処理、及び、前記ヒットが生じたと判断された場合に、ヒットの回数を示すヒット変数を更新する第2の処理の少なくとも一方を行う
ことを含む変数更新方法。
コンピュータに、
記憶領域であるキャッシュセットを複数個備えたキャッシュメモリのキャッシュセットの何れかに各々対応する主メモリの複数のメモリ領域の何れかに各々対応付けられた複数のデータの各データを判定対象データとして、当該判定対象データに対応するキャッシュセットが、予め選択されたキャッシュセットであるか否かを判定し、
前記対応するキャッシュセットが前記予め選択されたキャッシュセットであると判定された場合、(1)前記判定対象データに対応する前記メモリ領域のアドレス情報が、前記予め選択されたキャッシュセットに対応して設けられた記憶部に記憶されていることを示すヒット、及び、(2)前記判定対象データに対応する前記メモリ領域のアドレス情報が前記記憶部に記憶されていないことを示すミス、の何れが生じたかを判断し、
前記判断部によりミスが生じたと判断された場合に、ミスの回数を示すミス変数を更新しかつ前記記憶部に前記アドレス情報を記憶させる第1の処理、及び、前記ヒットが生じたと判断された場合に、ヒットの回数を示すヒット変数を更新する第2の処理の少なくとも一方を行う
ことを含む処理を実行させるための変数更新プログラム。
前記複数のデータは、複数の配列のデータであり、
前記コンピュータに、
前記複数の配列各々の各データについて所定の順番に前記判定をすると共に、前記複数の配列の内の選択された配列について、前記順番では前記判定されない各非判定データについて予め前記判定を行い、
前記選択された配列について、前記ミスが生じた場合、前記非判定データに対応する前記アドレス情報を前記記憶部に予め記憶させる
ことを含む処理を更に実行させるための付記13に記載の変数更新プログラム。
コンピュータに、
記憶領域であるキャッシュセットを複数個備えたキャッシュメモリのキャッシュセットの何れかに各々対応する主メモリの複数のメモリ領域の何れかに各々対応付けられた複数のデータを用いる元のプログラムを、付記13に記載の変数更新プログラムに変換することを含む処理を実行させるための変換プログラム。
コンピュータに、
記憶領域であるキャッシュセットを複数個備えたキャッシュメモリのキャッシュセットの何れかに各々対応する主メモリの複数のメモリ領域の何れかに各々対応付けられた複数のデータを用いる元のプログラムを、付記14に記載の変数更新プログラムに変換することを含む処理を実行させるための変換プログラム。
キャッシュセットの個数分設けられた付記1〜付記7の何れか1項に記載の複数の変数更新装置であって、前記複数の変数更新装置各々は、各キャッシュセットに対応して設けられ、前記複数の変数更新装置各々の前記判定部は、自装置に対応するキャッシュセットを前記予め選択されたキャッシュセットとして前記判定をする、前記複数の変数更新装置と、
前記複数の変数更新装置各々により得られたミス変数又はヒット変数の値に基づいて、前記ミスが所定の割合以上生じているキャッシュセットを検出し、
前記検出された前記キャッシュセットに対応する前記ミス変数の第1の総数を計算し、
どのくらい先のデータを前記記憶部に予め記憶するかを定める各々異なる複数の候補の内の選択された候補について、当該候補に基づく前記先のデータについて予め前記判定がされるように、前記複数のデータに対応する元のプログラムを変更し、
前記変更されたプログラムを、付記16に記載の変換プログラムにより変数更新プログラムに変換し、
前記検出されたキャッシュセットに対応する前記変数更新装置に対し、前記変換により得られた前記変数更新プログラムを実行させて、前記ヒット変数及び前記ミス変数の少なくとも一方の値を取得し、
前記取得された前記値の第2の総数を計算し、
前記計算された前記第2の総数が前記計算された前記第1の総数以上か否かを判断し、
前記第2の総数が前記第1の総数以上かであると判断された場合には、前記複数の候補の内の前記選択された候補とは異なる別の候補について、前記変更を行う管理装置と、
を備えたプログラム変更検証システム。
61A 集合作成部
62A ソースコード分類部
63A プログラム文作成部
91A アドレス計算部
92A セット番号計算部
93A セット番号判断部
94A ACCESSプログラム実行部
Claims (12)
- 記憶領域であるキャッシュセットを複数個備えたキャッシュメモリのキャッシュセットの何れかに各々対応する主メモリの複数のメモリ領域の何れかに各々対応付けられた複数のデータの各データを判定対象データとして、当該判定対象データに対応するキャッシュセットが、予め選択されたキャッシュセットであるか否かを判定する判定部と、
前記予め選択されたキャッシュセットに対応して設けられ、当該選択されたキャッシュセットに対応するメモリ領域のアドレス情報を記憶する記憶部と、
前記判定部により前記対応するキャッシュセットが前記予め選択されたキャッシュセットであると判定された場合、(1)前記判定対象データに対応する前記メモリ領域のアドレス情報が前記記憶部に記憶されていることを示すヒット、及び、(2)前記判定対象データに対応する前記メモリ領域のアドレス情報が前記記憶部に記憶されていないことを示すミス、の何れが生じたかを判断する判断部と、
前記判断部によりミスが生じたと判断された場合に、ミスの回数を示すミス変数を更新しかつ前記記憶部に前記アドレス情報を記憶させる第1の処理、及び、前記ヒットが生じたと判断された場合に、ヒットの回数を示すヒット変数を更新する第2の処理の少なくとも一方を行う処理部と、
を備えた変数更新装置。 - 各々が前記記憶部に対応して設けられかつ前記アドレス情報を記憶する複数の対応記憶部を更に備え、
前記ミスが生じたと判断された場合に、前記複数の対応記憶部の何れかに、前記アドレス情報が記憶されているか否かを判断する記憶判断部を更に備え、
前記処理部は、前記記憶判断部により、前記複数の対応記憶部の何れかに前記アドレス情報が記憶されていると判断された場合に、当該判断がされた回数を示す対応ヒット変数を更新する第3の処理、及び、前記複数の対応記憶部の全てに前記アドレス情報が記憶されていないと判断された場合に、当該判断がされた回数を示す対応ミス変数を更新する第4の処理の少なくとも一方を行う
請求項1に記載の変数更新装置。 - 前記複数のデータは、複数の配列のデータを含み、
前記複数の配列の各々に対応して、ヒットの回数を示す配列ヒット変数と、ミスの回数を示す配列ミス変数とが定められ、
前記処理部は、前記複数の配列の何れかでヒットが生じた場合、当該配列に対応する配列ヒット変数を更新し、前記複数の配列の何れかでミスが生じた場合、当該配列に対応する配列ミス変数を更新する
請求項1又は請求項2に記載の変数更新装置。 - 前記複数のデータは、複数の配列のデータを含み、
前記判定部は、前記複数の配列各々の各データについて所定の順番に前記判定をすると共に、前記複数の配列の内の選択された配列について、前記順番では前記判定されない各非判定データについて予め前記判定を行い、
前記処理部は、前記選択された配列について、前記ミスが生じた場合、前記非判定データに対応する前記アドレス情報を前記記憶部に予め記憶させる、
請求項1又は請求項2に記載の変数更新装置。 - 前記ヒットが生じたと判断された場合、前記記憶部に予め記憶されかつ前記非判定データに対応する前記アドレス情報に基づいて前記ヒットが生じたか否かを判断するヒット判断部を更に備え、
前記記憶部に予め記憶されかつ前記非判定データに対応する前記アドレス情報に基づいて前記ヒットが生じた回数を示す予め記憶ヒット変数が定められ、
前記処理部は、前記ヒット判断部により前記非判定データに対応する前記アドレス情報に基づいて前記ヒットが生じたと判断された場合に、前記予め記憶ヒット変数を更新する
請求項4に記載の変数更新装置。 - 前記キャッシュセットの個数分の請求項1〜請求項5の何れか1項に記載の複数の変数更新装置を備え、
前記複数の変数更新装置の各々は、各キャッシュセットに対応して設けられ、
前記複数の変数更新装置の各々の前記判定部は、自装置に対応するキャッシュセットを前記予め選択されたキャッシュセットとして前記判定を行い、
前記複数の変数更新装置の各々の前記判定部が前記判定を行う少なくとも一部の期間が重なる
変数更新システム。 - 記憶領域であるキャッシュセットを複数個備えたキャッシュメモリのキャッシュセットの何れかに各々対応する主メモリの複数のメモリ領域の何れかに各々対応付けられた複数のデータの各データを判定対象データとして、当該判定対象データに対応するキャッシュセットが、予め選択されたキャッシュセットであるか否かを判定し、
前記対応するキャッシュセットが前記予め選択されたキャッシュセットであると判定された場合、(1)前記判定対象データに対応する前記メモリ領域のアドレス情報が、前記予め選択されたキャッシュセットに対応して設けられた記憶部に記憶されていることを示すヒット、及び、(2)前記判定対象データに対応する前記メモリ領域のアドレス情報が前記記憶部に記憶されていないことを示すミス、の何れが生じたかを判断し、
前記ミスが生じたと判断された場合に、ミスの回数を示すミス変数を更新しかつ前記記憶部に前記アドレス情報を記憶させる第1の処理、及び、前記ヒットが生じたと判断された場合に、ヒットの回数を示すヒット変数を更新する第2の処理の少なくとも一方を行う
ことを含む変数更新方法。 - コンピュータに、
記憶領域であるキャッシュセットを複数個備えたキャッシュメモリのキャッシュセットの何れかに各々対応する主メモリの複数のメモリ領域の何れかに各々対応付けられた複数のデータの各データを判定対象データとして、当該判定対象データに対応するキャッシュセットが、予め選択されたキャッシュセットであるか否かを判定し、
前記対応するキャッシュセットが前記予め選択されたキャッシュセットであると判定された場合、(1)前記判定対象データに対応する前記メモリ領域のアドレス情報が、前記予め選択されたキャッシュセットに対応して設けられた記憶部に記憶されていることを示すヒット、及び、(2)前記判定対象データに対応する前記メモリ領域のアドレス情報が前記記憶部に記憶されていないことを示すミス、の何れが生じたかを判断し、
前記ミスが生じたと判断された場合に、ミスの回数を示すミス変数を更新しかつ前記記憶部に前記アドレス情報を記憶させる第1の処理、及び、前記ヒットが生じたと判断された場合に、ヒットの回数を示すヒット変数を更新する第2の処理の少なくとも一方を行う
ことを含む処理を実行させるための変数更新プログラム。 - 前記複数のデータは、複数の配列のデータであり、
前記コンピュータに、
前記複数の配列各々の各データについて所定の順番に前記判定をすると共に、前記複数の配列の内の選択された配列について、前記順番では前記判定されない各非判定データについて予め前記判定を行い、
前記選択された配列について、前記ミスが生じた場合、前記非判定データに対応する前記アドレス情報を前記記憶部に予め記憶させる
ことを含む処理を更に実行させるための請求項8に記載の変数更新プログラム。 - コンピュータに、
記憶領域であるキャッシュセットを複数個備えたキャッシュメモリのキャッシュセットの何れかに各々対応する主メモリの複数のメモリ領域の何れかに各々対応付けられた複数のデータを用いる元のプログラムを、請求項8に記載の変数更新プログラムに変換することを含む処理を実行させるための変換プログラム。 - コンピュータに、
記憶領域であるキャッシュセットを複数個備えたキャッシュメモリのキャッシュセットの何れかに各々対応する主メモリの複数のメモリ領域の何れかに各々対応付けられた複数のデータを用いる元のプログラムを、請求項9に記載の変数更新プログラムに変換することを含む処理を実行させるための変換プログラム。 - キャッシュセットの個数分設けられた請求項1〜請求項3の何れか1項に記載の複数の変数更新装置であって、前記複数の変数更新装置各々は、各キャッシュセットに対応して設けられ、前記複数の変数更新装置各々の前記判定部は、自装置に対応するキャッシュセットを前記予め選択されたキャッシュセットとして前記判定をする、前記複数の変数更新装置と、
前記複数の変数更新装置各々により得られたミス変数又はヒット変数の値に基づいて、前記ミスが所定の割合以上生じているキャッシュセットを検出し、
前記検出された前記キャッシュセットに対応する前記ミス変数の第1の総数を計算し、
どのくらい先のデータを前記記憶部に予め記憶するかを定める各々異なる複数の候補の内の選択された候補について、当該候補に基づく前記先のデータについて予め前記判定がされるように、前記複数のデータに対応する元のプログラムを変更し、
前記変更されたプログラムを、請求項11に記載の変換プログラムにより変数更新プログラムに変換し、
前記検出されたキャッシュセットに対応する前記変数更新装置に対し、前記変換により得られた前記変数更新プログラムを実行させて、前記ヒット変数及び前記ミス変数の少なくとも一方の値を取得し、
前記取得された前記値の第2の総数を計算し、
前記計算された前記第2の総数が前記計算された前記第1の総数以上か否かを判断し、
前記第2の総数が前記第1の総数以上かであると判断された場合には、前記複数の候補の内の前記選択された候補とは異なる別の候補について、前記変更を行う管理装置と、
を備えたプログラム変更検証システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013112017A JP6191240B2 (ja) | 2013-05-28 | 2013-05-28 | 変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム |
US14/244,927 US9280475B2 (en) | 2013-05-28 | 2014-04-04 | Variable updating device and variable updating method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013112017A JP6191240B2 (ja) | 2013-05-28 | 2013-05-28 | 変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014232369A JP2014232369A (ja) | 2014-12-11 |
JP6191240B2 true JP6191240B2 (ja) | 2017-09-06 |
Family
ID=51986499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013112017A Expired - Fee Related JP6191240B2 (ja) | 2013-05-28 | 2013-05-28 | 変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9280475B2 (ja) |
JP (1) | JP6191240B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6981087B2 (ja) | 2017-08-03 | 2021-12-15 | 富士通株式会社 | 情報処理装置、方法、及びプログラム |
CN109491873B (zh) * | 2018-11-05 | 2022-08-02 | 阿里巴巴(中国)有限公司 | 缓存监控方法、介质、装置和计算设备 |
JP7230719B2 (ja) | 2019-07-19 | 2023-03-01 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
JP2024024463A (ja) * | 2022-08-09 | 2024-02-22 | 富士通株式会社 | 情報処理プログラム、情報処理方法、および情報処理装置 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5434992A (en) * | 1992-09-04 | 1995-07-18 | International Business Machines Corporation | Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace |
US6138213A (en) * | 1997-06-27 | 2000-10-24 | Advanced Micro Devices, Inc. | Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line |
US6532521B1 (en) * | 1999-06-30 | 2003-03-11 | International Business Machines Corporation | Mechanism for high performance transfer of speculative request data between levels of cache hierarchy |
JP3954248B2 (ja) | 1999-08-12 | 2007-08-08 | 富士通株式会社 | 情報処理装置の試験方法 |
US6820173B1 (en) * | 2001-02-23 | 2004-11-16 | Nvidia Corporation | Data prefetcher with predictor capabilities |
JP4047788B2 (ja) | 2003-10-16 | 2008-02-13 | 松下電器産業株式会社 | コンパイラ装置およびリンカ装置 |
US8356142B1 (en) * | 2003-11-12 | 2013-01-15 | Nvidia Corporation | Memory controller for non-sequentially prefetching data for a processor of a computer system |
US7353339B2 (en) * | 2003-12-24 | 2008-04-01 | Intel Corporation | Adaptive caching |
US7836259B1 (en) * | 2004-04-02 | 2010-11-16 | Advanced Micro Devices, Inc. | Prefetch unit for use with a cache memory subsystem of a cache memory hierarchy |
JP2007206806A (ja) * | 2006-01-31 | 2007-08-16 | Matsushita Electric Ind Co Ltd | キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ |
US7493451B2 (en) * | 2006-06-15 | 2009-02-17 | P.A. Semi, Inc. | Prefetch unit |
US7917702B2 (en) * | 2007-07-10 | 2011-03-29 | Qualcomm Incorporated | Data prefetch throttle |
JP2009020696A (ja) | 2007-07-11 | 2009-01-29 | Toshiba Corp | 情報処理装置及びシステム |
JP4829191B2 (ja) * | 2007-08-30 | 2011-12-07 | 株式会社東芝 | キャッシュシステム |
US8146064B2 (en) * | 2008-04-04 | 2012-03-27 | International Business Machines Corporation | Dynamically controlling a prefetching range of a software controlled cache |
JP5298826B2 (ja) * | 2008-12-17 | 2013-09-25 | 日本電気株式会社 | キャッシュメモリ及びプリフェッチ方法 |
JP5569312B2 (ja) * | 2010-10-01 | 2014-08-13 | 富士通セミコンダクター株式会社 | メモリアクセス判定回路、メモリアクセス判定方法、キャッシュ制御装置および電子機器 |
JP5609657B2 (ja) * | 2011-01-11 | 2014-10-22 | 富士通株式会社 | 半導体集積回路の低電力設計支援装置及びその方法 |
US9304927B2 (en) * | 2012-08-27 | 2016-04-05 | Oracle International Corporation | Adaptive stride prefetcher |
JP2014115851A (ja) * | 2012-12-10 | 2014-06-26 | Canon Inc | データ処理装置及びその制御方法 |
US20140189204A1 (en) * | 2012-12-28 | 2014-07-03 | Hitachi, Ltd. | Information processing apparatus and cache control method |
JP2014186397A (ja) * | 2013-03-21 | 2014-10-02 | Fujitsu Ltd | キャッシュメモリ装置、情報処理装置及びキャッシュメモリ制御方法 |
JP2015118638A (ja) * | 2013-12-19 | 2015-06-25 | キヤノン株式会社 | 情報処理装置及びその制御方法、プログラム |
US9471510B2 (en) * | 2013-12-20 | 2016-10-18 | Netapp, Inc. | System and method for cache monitoring in storage systems |
-
2013
- 2013-05-28 JP JP2013112017A patent/JP6191240B2/ja not_active Expired - Fee Related
-
2014
- 2014-04-04 US US14/244,927 patent/US9280475B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20140359214A1 (en) | 2014-12-04 |
JP2014232369A (ja) | 2014-12-11 |
US9280475B2 (en) | 2016-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740247B2 (en) | Method for accessing entry in translation lookaside buffer TLB and processing chip | |
JP6191240B2 (ja) | 変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム | |
US10740248B2 (en) | Methods and systems for predicting virtual address | |
US8707156B2 (en) | Render engine for spreadsheet | |
US10481914B2 (en) | Predicting detected branches as taken when cumulative weight values in a weight table selected by history register bits exceed a threshold value | |
US20150026414A1 (en) | Stride prefetching across memory pages | |
CN106843842B (zh) | 一种应用程序配置文件的更新方法及装置 | |
US20160306632A1 (en) | Branch prediction | |
KR930006381B1 (ko) | 미스히트에 대한 갱신과 다음 어드레스의 미스히트의 판정을 동시에 행하는 캐시메모리장치 | |
CN104063254A (zh) | 电能表在线升级方法 | |
CN103593406A (zh) | 一种静态资源标识处理方法及装置 | |
WO2015033551A1 (ja) | ストアマージ処理装置、ストアマージ処理システム、ストアマージ処理方法、及び、記憶媒体 | |
CN106599247A (zh) | LSM‑tree结构中数据文件的合并方法及装置 | |
CN105930136A (zh) | 处理器和指令码生成设备 | |
JP6234639B2 (ja) | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム | |
CN107577775A (zh) | 一种读取数据方法、装置、电子设备及可读存储介质 | |
US9489309B2 (en) | Method and system for dynamic cache partitioning using address remapping | |
JP6812826B2 (ja) | 格納方法、格納装置及び格納プログラム | |
US8589899B2 (en) | Optimization system, optimization method, and compiler program | |
US7966474B2 (en) | System, method and computer program product for translating storage elements | |
CN111324553B (zh) | 在嵌入式系统上实现虚拟地址空间的方法 | |
JP2007272681A (ja) | キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法 | |
CN104866285A (zh) | 可编程序控制器 | |
CN111341374A (zh) | 存储器的测试方法、装置及可读存储器 | |
CN108255692B (zh) | 信息处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161213 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170208 |
|
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: 20170711 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170724 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6191240 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |