JP2018133038A - Information processing device, control device, control method, and program - Google Patents
Information processing device, control device, control method, and program Download PDFInfo
- Publication number
- JP2018133038A JP2018133038A JP2017028075A JP2017028075A JP2018133038A JP 2018133038 A JP2018133038 A JP 2018133038A JP 2017028075 A JP2017028075 A JP 2017028075A JP 2017028075 A JP2017028075 A JP 2017028075A JP 2018133038 A JP2018133038 A JP 2018133038A
- Authority
- JP
- Japan
- Prior art keywords
- data
- store
- row
- ways
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本発明は、情報処理装置、制御装置、制御方法及びプログラムに関する。 The present invention relates to an information processing device, a control device, a control method, and a program.
キャッシュメモリの制御に関連して幾つかの技術が提案されている。
例えば、特許文献1には、ストアバッファ部からストアデータを追い出す制御が簡単になるストア制御装置が示されている。このストア制御装置は、プロセッサからブロック単位のストアデータを受け取ってストアバッファ部に格納し、連続する複数のブロックであるライン単位でストアバッファ部から主記憶装置へストアデータを追い出す。ストアデータを追い出す際、ストア制御装置は、ライン内の全てのブロックがストアバッファ部内に存在するウェイ(way)を優先してストアデータを追い出す。
Several techniques have been proposed in connection with cache memory control.
For example,
このようなストア制御装置で、ウェイの数が不足する場合にも対応することができれば更に好ましい。
この点に関して、特許文献2には、セットアソシアティブ方式でセット数及びウェイ数を変更可能なキャッシュシステムが示されている。このキャッシュシステムは、i組のmウェイnセットのキャッシュアレイを備え、セットの選択とウェイの選択とを制御することで、セット数及びウェイ数を変更する。i、m、nは、いずれも2の乗数であってもよい。
It is more preferable that such a store control apparatus can cope with a case where the number of ways is insufficient.
In this regard,
特許文献2に記載のキャッシュシステムのようにウェイの数を変更可能な場合に、ウェイの数を変更するか否かの判定を自動的に行えることが更に好ましい。
More preferably, when the number of ways can be changed as in the cache system described in
本発明は、上述の課題を解決することのできる情報処理装置、制御装置、制御方法及びプログラムを提供することを目的としている。 An object of the present invention is to provide an information processing apparatus, a control apparatus, a control method, and a program that can solve the above-described problems.
本発明の第1の態様によれば、情報処理装置は、セットアソシアティブ方式でデータを記憶する記憶部と、前記セットアソシアティブ方式の行毎に前記行に含まれる記憶領域のうち少なくとも1つの領域にデータが格納されたか否かを示す使用履歴フラグと、前記行毎に前記行でデータの追い出しが行われたか否かを示すリプレースフラグと、前記使用履歴フラグの値及び前記リプレースフラグの値に基づいて、前記セットアソシアティブ方式におけるウェイの数を増やすか否かを決定するウェイ拡張指示部と、前記ウェイ拡張指示部が前記ウェイの数を増やすことに決定した場合、前記ウェイの数を増やすウェイ拡張部と、を備える。 According to the first aspect of the present invention, an information processing device stores in at least one area of a storage unit that stores data by a set associative method and a storage area included in the row for each row of the set associative method. Based on a use history flag indicating whether data has been stored, a replace flag indicating whether data has been evicted in each row for each row, a value of the use history flag, and a value of the replace flag A way extension instruction unit that determines whether or not to increase the number of ways in the set associative method, and a way extension that increases the number of ways when the way extension instruction unit determines to increase the number of ways. A section.
本発明の第2の態様によれば、制御装置は、セットアソシアティブ方式でデータを記憶する記憶部の前記セットアソシアティブ方式の行毎に、前記行に含まれる記憶領域のうち少なくとも1つの領域にデータが格納されたか否かを示す使用履歴フラグの値と、前記行毎に、前記行でデータの追い出しが行われたか否かを示すリプレースフラグの値とに基づいて、前記セットアソシアティブ方式におけるウェイの数を増やすか否かを決定するウェイ拡張指示部と、前記ウェイ拡張指示部が前記ウェイの数を増やすことに決定した場合、前記ウェイの数を増やすウェイ拡張部と、を備える。 According to the second aspect of the present invention, the control device stores data in at least one of the storage areas included in the row for each row of the set associative method of the storage unit that stores data in the set associative method. Of the way in the set associative method based on the value of the use history flag indicating whether or not the data has been stored and the value of the replace flag indicating whether or not data has been evicted in the row for each row. A way expansion instructing unit that determines whether or not to increase the number, and a way expansion unit that increases the number of ways when the way expansion instructing unit determines to increase the number of ways.
本発明の第3の態様によれば、制御方法は、セットアソシアティブ方式でデータを記憶する記憶部の前記セットアソシアティブ方式の行毎に、前記行に含まれる記憶領域のうち少なくとも1つの領域にデータが格納されたか否かを示す使用履歴フラグの値と、前記行毎に、前記行でデータの追い出しが行われたか否かを示すリプレースフラグの値とに基づいて、前記セットアソシアティブ方式におけるウェイの数を増やすか否かを決定し、前記ウェイの数を増やすことに決定した場合、前記ウェイの数を増やすことを含む。 According to the third aspect of the present invention, the control method includes data stored in at least one of the storage areas included in the row for each row of the set associative method of the storage unit that stores data by the set associative method. Of the way in the set associative method based on the value of the use history flag indicating whether or not the data has been stored and the value of the replace flag indicating whether or not data has been evicted in the row for each row. It is determined whether or not to increase the number, and when it is determined to increase the number of ways, the method includes increasing the number of ways.
本発明の第4の態様によれば、プログラムは、セットアソシアティブ方式でデータを記憶する記憶部を制御するコンピュータに、前記セットアソシアティブ方式の行毎に、前記行に含まれる記憶領域のうち少なくとも1つの領域にデータが格納されたか否かを示す使用履歴フラグの値と、前記行毎に、前記行でデータの追い出しが行われたか否かを示すリプレースフラグの値とに基づいて、前記セットアソシアティブ方式におけるウェイの数を増やすか否かを決定させ、前記ウェイの数を増やすことに決定した場合、前記ウェイの数を増やさせるためのプログラムである。 According to the fourth aspect of the present invention, there is provided a program for controlling a storage unit that stores data by a set associative method, to store at least one of storage areas included in the row for each row of the set associative method. The set associative based on a value of a use history flag indicating whether data is stored in one area and a value of a replace flag indicating whether data is evicted in the row for each row. This is a program for determining whether to increase the number of ways in the system and increasing the number of ways when it is determined to increase the number of ways.
この発明によれば、ウェイの数を変更可能な場合に、ウェイの数を変更するか否かの判定を自動的に行うことができる。 According to the present invention, when the number of ways can be changed, it is possible to automatically determine whether or not to change the number of ways.
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本発明の実施形態に係る情報処理装置の構成例を示す概略構成図である。図1に示すように、情報処理装置10は、中央処理装置(Central Processing Unit)1と、マージ回路2と、ストアバッファ3と、エントリフル検出回路4と、追い出し制御回路5と、主記憶装置6と、を備える。
Hereinafter, although embodiment of this invention is described, the following embodiment does not limit the invention concerning a claim. In addition, not all the combinations of features described in the embodiments are essential for the solving means of the invention.
FIG. 1 is a schematic configuration diagram illustrating a configuration example of an information processing apparatus according to an embodiment of the present invention. As shown in FIG. 1, the
中央処理装置1は、マージ回路2及び主記憶装置6と接続されている。中央処理装置1は、ストアリクエスト及びストアデータをマージ回路2へ出力する。ストアリクエストは、ストアデータの主記憶装置6への書き込みを要求する命令である。
また、中央処理装置1は、マージ回路2を介して主記憶装置6へロードリクエストを出力し主記憶装置6よりロードデータを受け取る。ロードリクエストは、主記憶装置6からのデータの読み出しを要求する命令である。ロードデータは、ロードリクエストに応じて主記憶装置6から読み出されたデータである。
以下では、ストアリクエストとロードリクエストとを総称してリクエストと表記する。
The
Further, the
Hereinafter, store requests and load requests are collectively referred to as requests.
中央処理装置1がストアリクエストにて出力するストアデータのデータ長は、主記憶装置6がロードリクエストに応じて出力するロードデータのデータ長よりも短い。以下では、中央処理装置1が出力するストアデータのデータ長が8バイト(B)であり、主記憶装置6が出力するロードデータのデータ長が128バイトである場合を例に説明する。但し、中央処理装置1が出力するストアデータのデータ長、主記憶装置6が出力するロードデータのデータ長のいずれも、特定のデータ長に限定されない。中央処理装置1が出力するストアデータのデータ長が、主記憶装置6が出力するロードデータのデータ長よりも短ければよい。さらに、主記憶装置6が出力するロードデータのデータ長が、中央処理装置1が出力するストアデータのデータ長の整数倍であることが好ましいが、これに限らない。
以下では、データ長が、主記憶装置6が出力するロードデータのデータ長であるデータをラインと称する。また、ラインのデータ長をライン長と称する。
The data length of the store data that the
Hereinafter, data whose data length is the data length of the load data output from the
図2は、中央処理装置1が出力するリクエスト(ストアリクエスト及びロードリクエスト)のデータ構造の例を示す図である。図2に示すように、中央処理装置1が出力するリクエストは、コマンドとアドレスとを含む。
コマンドは、主記憶装置6に対して指示する動作を示す。具体的には、コマンドは、ロード又はストアの何れかの動作指示を示す。
FIG. 2 is a diagram illustrating an example of a data structure of requests (store request and load request) output from the
The command indicates an operation instructed to the
アドレスは、主記憶装置6におけるアドレスを示す。ロードリクエストの場合、アドレス欄には主記憶装置6がロードデータを読み出すべき位置を示すアドレスが格納される。ストアデータの場合、アドレス欄には、主記憶装置6がストアデータを格納すべき位置を示すアドレスが格納される。
リクエストのアドレスは、上位アドレス、中位アドレス、下位アドレスの3つに分けることができる。
The address indicates an address in the
The request address can be divided into an upper address, a middle address, and a lower address.
後述するように、ストアバッファ3はセットアソシアティブ(Set Associative)方式でストアデータを記憶しており、中位アドレスは、セットアソシアティブにおけるインデックス(Index)として用いられる。すなわち、中位アドレスは、セットアソシアティブにおける行と一対一に対応付けられる。
上位アドレスは、セットアソシアティブにおけるタグ(Tag)として用いられる。すなわち、上位アドレスは、セットアソシアティブで1つの行にウェイ(Way)の数だけ含まれる記憶領域を区別するために用いられる。
As will be described later, the
The upper address is used as a tag in the set associative. That is, the upper address is used for distinguishing storage areas that are included in the number of ways in one row by set associative.
上位アドレスと中位アドレスとの組み合わせで、主記憶装置6の記憶領域における位置をライン単位で指定することができ、下位アドレスは、ライン内での位置を示す。
ストアバッファ3及び主記憶装置6は、データをライン単位で処理するため、下位アドレスを無視する。一方、上記のように、中央処理装置1はラインよりも小さい単位でストアデータを出力する。マージ回路2は、中央処理装置1が出力したストアデータをラインにマージ(Merge)する際、ストアデータをライン上で位置合わせするために下位アドレスを用いる。
A position in the storage area of the
Since the
マージ回路2は、中央処理装置1及びストアバッファ3と接続されている。マージ回路2は、中央処理装置1が出力したリクエストをストアバッファ3へ出力する。
中央処理装置1がストアリクエストを出力した場合、マージ回路2は、ストアデータをストアバッファ3が記憶しているデータにマージする。
ここで、ストアバッファ3および主記憶装置6がライン単位でデータの入出力を行うのに対し、上記のようにストアデータはライン長よりも短い。そこで、ストアデータを格納すべきアドレスを含むラインをストアバッファ3が記憶している場合、マージ回路2は、このラインをストアバッファ3から読み出す。そして、マージ回路2は、読み出したラインのうち、ストアリクエストのアドレスで指定される位置にストアデータを書き込む。マージ回路2は、ストアデータを書き込んだラインをストアバッファ3へのストアリクエストにて出力し、ストアバッファ3は、マージ回路2へ読み出したラインをマージ回路2が出力したラインに置き換える(上書きする)。
The
When the
Here, the
図3は、マージ回路2の構成例を示す概略構成図である。図3の例で、マージ回路2は、シフタ201と、マージャ202とを備える。
シフタ201は、ライン内のアドレスを示す下位アドレスに従ってストアデータのシフト処理を行う。これにより、シフタ201は、中央処理装置1が出力したストアデータのラインにおける位置合わせを行う。
FIG. 3 is a schematic configuration diagram showing a configuration example of the
The
マージャ202は、ライン単位のストアデータ内の該当領域のデータを更新する。すなわち、マージャ202は、シフタ201による位置合わせに基づいて、中央処理装置1が出力したストアデータを、ストアバッファ3が記憶しているライン単位のストアデータにマージする。
マージャ202は、マージされたライン単位のストアデータをストアバッファ3へ出力する。ストアバッファ3は、マージャ202が出力したライン単位のストアデータを、マージ前のストアデータ読出元の記憶領域へ上書きする。
The
The
図4は、マージ処理されたストアデータの例を示す図である。図4の例で、中央処理装置1は、ストアリクエストと共に8バイトのストアデータを出力する。これに対して主記憶装置6は、主記憶装置6自らの記憶領域を128バイト毎に分割したラインを、データの入出力を行う際の単位としている。
中央処理装置1が主記憶装置6に対して24バイトのデータのストアを要求する場合、中央処理装置1は、この24バイトのデータを、図4のストアデータ1、2及び3のように8バイト毎に分割し、3つのストアリクエストを出力する。このストアデータ1、2及び3は元々連続するデータであり、主記憶装置6において同一のラインに格納されるべきデータとなる。
FIG. 4 is a diagram illustrating an example of store data that has undergone merge processing. In the example of FIG. 4, the
When the
仮に、ストアバッファ3が中央処理装置1からストアリクエストを受け取る毎に、主記憶装置6からライン単位でデータを読み出し、ストアリクエストを反映させたライン単位のデータを書き戻すと、主記憶装置6からのデータ読出と、主記憶装置6へのデータ書込とを、それぞれ3回行う必要がある。
これに対し、ストアバッファ3が、主記憶装置6からライン単位でデータを読み出し、図4に示すように、中央処理装置1からの3つのストアリクエストを全て反映させたデータを生成し、生成したデータを書き戻すようにすれば、主記憶装置6からのデータ読出と、主記憶装置6へのデータ書込とが、それぞれ1回で済む。そこで、ストアバッファ3は、主記憶装置6から読み出したデータに中央処理装置1からのストアリクエストを反映させた後、直ちに主記憶装置6へストアリクエストの出力を行わずにストアバッファ3自らに一旦蓄える。同一ラインのストアの場合、マージ回路2がマージ処理を行う。ストアバッファ3は、追い出しの要因となる事象が発生した場合に主記憶装置6にストアリクエストを出力する。
If, every time the
On the other hand, the
ストアバッファ3は、マージ回路2、エントリフル検出回路4、追い出し制御回路5及び主記憶装置6と接続されている。ストアバッファ3は、主記憶装置6のキャッシュメモリとして機能し、主記憶装置6へのストアデータをセットアソシアティブ方式で記憶する。
ロードリクエストを取得した場合、ストアバッファ3は、ロードリクエストとストアバッファ3内のストアリクエストとのアドレス比較を行う。アドレスが一致した場合、ストアバッファ3は、一致したアドレスのストアデータを読み出してストアリクエストと共に主記憶装置6へ出力する。また、ストアバッファ3は、ストアデータを読み出してマージ回路2へ出力し、マージ回路2の出力であるマージ後のストアデータをストアバッファ3の元の格納場所へ格納する。更に、ストアバッファ3は、ストアバッファ3内のデータ格納状況を示すエントリ情報をエントリフル検出回路4へ出力する。また、ストアバッファ3は、追い出し制御回路5の指示に従ってストアデータを主記憶装置6へ出力する。
The
When the load request is acquired, the
図5は、ストアバッファ3の構成例を示す概略構成図である。図5において、ストアバッファ3は、アドレスアレイ301と、データアレイ302と、アドレス差替回路303と、アドレス選択回路304と、レジスタ305と、エントリ選択回路306と、アレイ制御回路307及び308と、使用履歴フラグレジスタ309と、リプレース(Replace)フラグレジスタ310と、ウェイ拡張指示回路311とを備える。
FIG. 5 is a schematic configuration diagram illustrating a configuration example of the
アドレスアレイ301と、データアレイ302との組み合わせは、セットアソシアティブ方式の記憶装置を構成し、ストアリクエスト及びストアデータを一時的に記憶する。アドレスアレイ301及びデータアレイ302は、記憶部の例に該当する。
アドレスアレイ301は、ストアリクエストのアドレス及びストアデータのマージ状態を記憶する。
The combination of the
The
図6は、アドレスアレイ301が記憶するデータのデータ構造の例を示す図である。図6に示すように、アドレスアレイ301は、アドレス+有効バイト情報の形式のデータを記憶する。
ここで有効バイト情報とは、ライン単位のストアデータのうちマージ済みの部分の位置を8バイト単位で示す情報である。ここでの8バイトは、中央処理装置1からのストアデータのデータ長の例である。
FIG. 6 is a diagram illustrating an example of a data structure of data stored in the
Here, the valid byte information is information indicating the position of the merged portion of the store data in units of lines in units of 8 bytes. Here, 8 bytes is an example of the data length of the store data from the
例えばマージ回路2がストアバッファ3における128バイトのストアデータに対して8バイト単位でマージを行う場合、有効バイト情報として16(=128÷8)ビットを用いてマージ済みの8バイトを「1」で示す。ここでの128バイトは、ライン長の例である。
有効バイト情報が16ビット全て「1」である場合、ラインのマージ完了を表す。ラインのマージが完了している場合、マスキング等の処理を行う必要無しにこのラインを主記憶装置6に格納させることができる。
For example, when the
When the valid byte information is “1” for all 16 bits, it indicates completion of line merging. When the merging of the lines is completed, the lines can be stored in the
アドレスアレイ301の記憶領域は、m行×n列(m、nは正整数)の領域に分割され、1つの領域に1つのアドレスが格納される。アドレスアレイ301の各行はストアリクエストにおける中位アドレス値と1対1に対応付けられており、ストアリクエストのアドレスは、その中位アドレス値に応じた行の記憶領域に格納される。各行はn個のアドレス格納領域を有するので、アドレスアレイ301は、中位アドレス値が同一かつ上位アドレスが異なるアドレスをn個まで記憶し得る。
以下では、アドレスアレイ301の各行、及び、データアレイ302の各行をエントリと称する。
The storage area of the
Hereinafter, each row of the
アドレスアレイ301の領域のうち、有効なアドレス値が格納されていない領域には、アドレス値と区別可能な値が格納される。アドレス値と区別可能な値として、例えばマイナスの整数値を用いることができるが、これに限らない。アドレス値と区別可能な値により、その領域が空き領域であることが示される。ここでいう空き領域は、新たなデータを書込可能な領域である。
In the area of the
なお、ストアバッファ3は、主記憶装置6のラインに合わせてライン単位でデータの書込および読出を行う。このため、ストアバッファ3は、ストアリクエストの下位アドレスを無視する。すなわち、ストアバッファ3は、上位アドレス値および中位アドレス値が同一であれば、下位アドレス値が異なっていても同一のアドレス値として扱い、データの読出等の処理を行う。
The
データアレイ302は、ストアデータを記憶する。
データアレイ302の記憶領域も、アドレスアレイ301と同様に、m行×n列の領域に分割されている。データアレイ302の、各行はアドレスアレイ301の各行と1対1に対応付けられ、データアレイ302の各列はアドレスアレイの各列と1対1に対応付けられている。これにより、アドレスアレイ301とデータアレイ302とでnウェイ(way)セットアソシアティブ方式の記憶装置を構成する。
The
Similarly to the
アドレス差替回路303は、追い出し制御回路5が出力した追い出し指示信号を受けると、リクエストに示されるアドレスから追い出し指示信号に示されるアドレスへの差し替えを行う。
アドレス選択回路304は、アドレスアレイ301がウェイ毎に出力したアドレス値の何れかを、リクエストに示されるアドレスに基づいて選択する。アドレス選択回路304は、選択したアドレスに基づいて主記憶装置6に対するストアリクエストを生成し、主記憶装置6へ出力する。
When the
The
レジスタ305は、ロードリクエストを一時的に記憶する。ロードリクエストと同一アドレスのエントリがアドレスアレイ301から追い出された際に、レジスタ305がロードリクエストを一時的に待たせることによりロードリクエストがストアリクエストを追い越すことを防止する。
エントリ選択回路306は、マージ回路2が出力したリクエスト、及び、追い出し制御回路5が出力した追い出し指示信号を受けて、ストアバッファ3の各部を制御する。
The
The
アレイ制御回路307及び308は、それぞれアドレスアレイ301及びデータアレイ302に対するストアリクエスト(アドレス値およびストアデータ)の読み出し及び書き込みの制御を行う。
具体的には、アレイ制御回路307は、リクエスト又は追い出し指示信号に含まれるアドレス値を読み出し、中位アドレス値に基づいてアドレスアレイ301の該当行を選択する。アレイ制御回路308は、リクエスト又は追い出し指示信号に含まれるアドレス値を読み出し、中位アドレス値に基づいてデータアレイ302の該当行を選択する。
Specifically, the
ストアリクエストを読み出す場合、アレイ制御回路307は、選択した行の各領域のアドレス値を出力するようアドレスアレイ301を制御する。また、アレイ制御回路308は、選択した行の各領域のストアデータを出力するようデータアレイ302を制御する。
ストアリクエストを書き込む場合、アレイ制御回路307は、選択した行の領域のうち空き領域を選択し、選択した空き領域に図6に示されるデータを書き込む。また、アレイ制御回路308は、データアレイ302の領域のうち、アドレスを書き込んだアドレスアレイ301の領域と同じ行かつ同じ列の領域に、マージ回路2から出力されたストアデータを書き込む。
When reading a store request, the
When writing a store request, the
また、アレイ制御回路307は、アドレスアレイ301の行毎に、格納されているアドレスの数を計数し、計数結果と当該行を示すアドレス値とを含むエントリ情報を生成する。アレイ制御回路307は、生成したエントリ情報をエントリフル検出回路4へ出力する。アレイ制御回路307は、例えば所定周期毎にエントリ情報を生成し、エントリフル検出回路4へ出力する。
The
また、アレイ制御回路307及び308は、アドレスアレイ301及びデータアレイ302の記憶領域の構成制御を行う。具体的には、アレイ制御回路307及び308は、使用履歴フラグレジスタ309及びリプレースフラグレジスタ310の各情報に基づいて、アドレスアレイ301及びデータアレイ302の使用状態を判定する。アレイ制御回路307及び308は、判定結果に基づいてセットアソシアティブメモリにおける行数及び列数の変更を行う。例えば、アレイ制御回路307及び308は、m行×n列の記憶領域を(m/2)行×2n列などに読み替える。これにより、各アレイを2nウェイでm/2行の領域を持つ記憶領域として扱うことができる。
また、アレイ制御回路307及び308は、ウェイ拡張部の例に該当し、ウェイの数を増加させる。具体的には、アレイ制御回路307及び308は、ある行のウェイを、他のある行の既存のウェイに後続するウェイと読み替えることで、ウェイの数を増加させる。
The
The
使用履歴フラグレジスタ309は、アドレスアレイ301の行毎に1ビットのレジスタを有する。使用履歴フラグレジスタ309は、アドレスアレイ301の1つの行のn個の格納領域のいずれかにデータが格納された場合、対応するレジスタの値を「1」にする。一方、アドレスアレイ301の1つの行のn個の格納領域のいずれも使用されていない場合、使用履歴フラグレジスタ309は、対応するレジスタの値を「0」にする。
The usage
リプレースフラグレジスタ310は、アドレスアレイ301の行毎に1ビットのレジスタを有する。リプレースフラグレジスタ310は、アドレスアレイ301の1つの行のn個の格納領域が全てエントリで満たされた状態で中央処理装置1からストアリクエストが出力されてエントリの追い出しが発生した場合に、対応するレジスタの値を「1」にする。それ以外の場合、リプレースフラグレジスタ310は、レジスタの値を「0」にする。
The replace
ウェイ拡張指示回路311は使用履歴フラグレジスタ309及びリプレースフラグレジスタ310の各フラグを入力として、ウェイ拡張指示信号を生成しアレイ制御回路307及び308へ送出する。ウェイ拡張指示回路311は、ウェイ拡張指示部の例に該当する。
アレイ制御回路307及び308はウェイ拡張指示回路311よりウェイ拡張指示信号を受け付けると、アドレスアレイ301及びデータアレイ302の記憶領域を予め設定された行数及び列数に読み替えて各エントリを制御する。例えば、アレイ制御回路307及び308は、上記のようにm行×n列の記憶領域を(m/2)行×2n列などに読み替える。
アドレスアレイ301及びデータアレイ302を制御する各部が、制御装置として構成されて情報処理装置10に組み込まれていてもよい。特に、ウェイ拡張指示回路311と、アレイ制御回路307及び308とが制御装置に含まれて構成されていてもよい。
The way
When the
Each unit that controls the
エントリフル検出回路4は、ストアバッファ3及び追い出し制御回路5と接続されている。エントリフル検出回路4は、ストアバッファ3よりエントリ情報を受け取ってエントリフルの判定を行う。エントリフルと判定した場合、エントリフル検出回路4は、エントリフル情報を追い出し制御回路5へ出力する。
後述するように、ここでいうエントリは、ストアバッファ3が備えるセットアソシアティブ方式の記憶装置の行である。ここでいうエントリ情報は、セットアソシアティブ方式の記憶装置の1つの行に格納されているアドレスの数を示す情報である。ここでのアドレスの数は、1つの行に格納されているライン単位のストアデータの数を示す。ここでのエントリフルは、1つの行に含まれるウェイ数分の記憶領域のいずれにもデータが格納されていることである。
The entry full detection circuit 4 is connected to the
As will be described later, the entry here is a row of a set associative storage device included in the
図7は、エントリフル検出回路4の構成例を示す図である。図7の例で、エントリフル検出回路4は、レジスタ401と、比較回路402とを備える。
レジスタ401は、ストアバッファ3のウェイ数(アドレスアレイ301の列数)を予め記憶している。
比較回路402は、ストアバッファ3が出力するエントリ情報に示される、アドレスアレイ301の各行に記憶されているアドレス数(ストアリクエスト数)と、レジスタ401の記憶するウェイ数とを比較する。アドレス数がウェイ数より多い行を検出した場合、比較回路402は、エントリフル信号として、エントリフルを示す「1」と、当該行を示すアドレス値とを出力する。
FIG. 7 is a diagram illustrating a configuration example of the entry full detection circuit 4. In the example of FIG. 7, the entry full detection circuit 4 includes a
The
The
追い出し制御回路5は、ストアバッファ3及びエントリフル検出回路4と接続されている。追い出し制御回路5は、エントリフル検出回路4が出力したエントリフル情報に基づいてストアデータの追い出し判定を行う。ここでいう追い出し判定は、ストアバッファ3から主記憶装置6へデータを出力する必要があるか否かの判定である。ストアバッファ3のエントリがフルの状態で中央処理装置1がさらにストアリクエストを出力した場合、このストアリクエストをストアバッファ3に格納するための空きを作る必要がある。この空きを作るためのストアバッファ3から主記憶装置6へのデータの出力をデータの追い出しと称する。この追い出しを行う必要があるか否かの判定を追い出し判定と称する。
追い出しが必要と判定した場合、追い出し制御回路5は、追い出し指示信号をストアバッファ3へ出力する。
The
When it is determined that eviction is necessary, the
図8は、追い出し制御回路5が追い出し指示信号を生成する際の生成規則の例を示す図である。図8の例で、追い出し制御回路5は、取得したエントリフル情報がエントリフルを示す場合、追い出し制御回路5は、追い出し指示信号の値を「1」+アドレス値にする。この値の「1」は、追い出しが必要であることを示す。アドレス値は、追い出しの対象となるデータを示す。
一方、取得したエントリフル情報がエントリフルでないことを示す場合、追い出し制御回路5は、追い出し指示信号の値を「0」にする。追い出し指示信号の値「0」は、追い出しが不要であること示す。
FIG. 8 is a diagram illustrating an example of a generation rule when the
On the other hand, when the acquired entry full information indicates that the entry is not full, the
主記憶装置6は、中央処理装置1及びストアバッファ3と接続されている。主記憶装置6は、ストアバッファ3が出力したリクエストに従ってデータの入出力を行う。
ストアバッファ3がロードリクエストを出力した場合、主記憶装置6は、リクエスト内のアドレス情報に従ってロードデータを読み出して中央処理装置1へ出力する。ストアバッファ3がストアリクエストを出力した場合、主記憶装置6は、リクエスト内のアドレス情報に従ってストアデータを保持する。具体的には、主記憶装置6は、主記憶装置6自らの記憶領域のうちリクエスト内のアドレス情報が示す記憶領域にストアデータを記憶する。
The
When the
次に、情報処理装置10の動作について説明する。
図9は、ロード時における情報処理装置10の動作の第1例を示す図である。図9は、ロードリクエストが示すアドレスに該当するデータをストアバッファ3が記憶していない場合の例を示している。
図9の処理で、中央処理装置1がロードリクエストを出力し、マージ回路2は、このロードリクエストをそのままストアバッファ3へ転送する(シーケンスS111)。
Next, the operation of the
FIG. 9 is a diagram illustrating a first example of the operation of the
In the process of FIG. 9, the
ロードリクエストを取得したストアバッファ3は、ロードリクエストのアドレスとストアバッファ内のストアリクエストのアドレスとを比較し、ストアデータの追い出し要否を判定する(シーケンスS112)。
図5を参照して説明したように、ストアバッファ3はnウェイ(nは1,2,4,8等の整数)のセットアソシアティブ方式のキャッシュ構成を成している。追い出し要否の判定で、ストアバッファ3は、ロードリクエスト内の中位アドレスを参照してアドレスアレイ301の行を特定し、各ウェイからストアリクエストを読み出す。ストアバッファ3は、読み出したストアリクエストのアドレスがロードリクエスト内の上位アドレスと一致するか否かを判定する。図9の例では、ストアバッファ3は、アドレスが一致せず追い出しは不要であると判定している。
The
As described with reference to FIG. 5, the
追い出し不要と判定したストアバッファ3は、ロードリクエストをそのまま主記憶装置6へ送出する(シーケンスS113)。
主記憶装置6は受け取ったロードリクエスト内のアドレスに対応するロードデータを読み出して中央処理装置1へ出力する(シーケンスS114)。
シーケンスS114の後、図9の処理を終了する。
The
The
After the sequence S114, the process of FIG. 9 ends.
図10は、ロード時における情報処理装置10の動作の第2例を示す図である。図10は、ロードリクエストが示すアドレスに該当するデータをストアバッファ3が記憶している場合の例を示している。
図10のシーケンスS121は、図9のシーケンスS111と同様である。
FIG. 10 is a diagram illustrating a second example of the operation of the
The sequence S121 in FIG. 10 is the same as the sequence S111 in FIG.
ロードリクエストを取得したストアバッファ3は、図9のシーケンスS112の場合と同様、ストアデータの追い出し要否を判定する(シーケンスS122)。
図10の例では、ストアバッファ3は、アドレスが一致して追い出しが必要であると判定している。
The
In the example of FIG. 10, the
追い出し必要と判定したストアバッファ3は、ロードリクエストをレジスタ305に待避させる(シーケンスS123)。そして、ストアバッファ3は、シーケンスS122で一致すると判定したアドレスのストアリクエスト及びストアデータを読み出して主記憶装置6へ出力する(シーケンスS124)。主記憶装置6は、ストアリクエストに従ってストアデータを記憶する(シーケンスS125)。
The
その後、ストアバッファ3は、待避していたロードリクエストを主記憶装置6へ転送する(シーケンスS126)。主記憶装置6は、ロードリクエストに従ってロードデータを読み出し中央処理装置1へ出力する(シーケンスS127)。
このように、ストアバッファ3が主記憶装置6へストアリクエストを出力してストアを実行させた後にロードリクエストを主記憶装置6へ出力することで、ストアリクエストを後続のロードリクエストが追い越すことを抑止することができる。
シーケンスS127の後、図10の処理を終了する。
Thereafter,
In this way, the
After the sequence S127, the process of FIG.
図11は、ストアバッファ3がストアデータを記憶する場合の情報処理装置10の処理手順の例を示す図である。
図11の処理で、中央処理装置1はストアリクエストをマージ回路2へ出力する(シーケンスS211)。
ストアリクエストを取得したマージ回路2は、ストアリクエストが示すアドレスに該当するライン単位のストアデータをストアバッファ3から読み出す(シーケンスS212)。
FIG. 11 is a diagram illustrating an example of a processing procedure of the
In the process of FIG. 11, the
The
そして、マージ回路2は、ストアバッファ3から読み出したライン単位のストアデータに、ストアリクエストのストアデータをマージする(シーケンスS213)。
マージ回路2は、マージされたライン単位のストアデータとアドレスとを併せたストアリクエストをストアバッファ3へ出力する(シーケンスS214)。ストアバッファ3は、マージ回路2からのストアリクエストを、シーケンスS212でストアデータを読み出されたストアリクエストに上書きする(シーケンスS215)。
また、ストアバッファ3は、データを書き込んだ領域に対応する使用履歴フラグの値を「1」にする(シーケンスS216)。
シーケンスS216の後、図11の処理を終了する。
Then, the
The
Further, the
After sequence S216, the process in FIG. 11 is terminated.
なお、ストアバッファ3がマージ可能なストアデータを記憶していない場合、マージ回路2は、中央処理装置1からのストアデータをライン単位のストアデータに整形する。マージ回路2は、整形したストアデータとアドレスとを併せたストアリクエストをストアバッファ3に記憶させる。そして、ストアバッファ3は、データを書き込んだ領域に対応する使用履歴フラグの値を「1」にする。
If the
図12は、ストアバッファ3がストアリクエストの追い出し処理を行う場合の情報処理装置10の処理手順の例を示す図である。
図12の例で、ストアバッファ3がエントリフル検出回路4へエントリ情報を出力する(シーケンスS221)。エントリフル検出回路4は、ストアバッファ3からのエントリ情報に基づいて、エントリフルか否かを判定する(シーケンスS222)。図12の例では、エントリフル検出回路4は、エントリフルを検出している。すなわち、エントリフル検出回路4は、エントリフルであると判定している。
FIG. 12 is a diagram illustrating an example of a processing procedure of the
In the example of FIG. 12, the
エントリフルと判定したエントリフル検出回路4は、エントリフル信号を追い出し制御回路5へ出力する(シーケンスS223)。
エントリフル信号を取得した追い出し制御回路5は、追い出し判定を行う(シーケンスS224)。図12の例では、追い出し制御回路5は、追い出しが必要と判定している。追い出しが必要と判定した追い出し制御回路5は、追い出し指示信号をストアバッファ3へ出力する(シーケンスS225)。
The entry full detection circuit 4 determined to be entry full outputs an entry full signal to the eviction control circuit 5 (sequence S223).
The
ストアバッファ3は、追い出し指示信号に従ってストアデータの追い出しを行う(シーケンスS226)。ストアバッファ3はストアデータをライン単位で格納しており、追い出し指示信号に従って主記憶装置6へストアデータをライン単位で出力する。
具体的には、ストアバッファ3、ストアリクエスト内の中位アドレスを参照してアドレスアレイ301の行を特定する。ストアバッファ3は、特定された行の各ウェイから読み出したアドレスがストアリクエスト内の上位アドレスと一致するか比較を行う。ストアバッファ3は、データアレイ302から読み出したライン単位のストアデータのうち一致したアドレスに対応するものを出力する。通常は、ストアバッファ3は、ストアリクエストに示される中位アドレス及び上位アドレスに該当するストアデータを読み出す。一方、追い出し指示信号を取得した場合、ストアバッファ3のアドレス差替回路303が追い出し指示信号に示されるアドレスに差し替える。ストアバッファ3は、差し替えられたアドレスに対応するストアデータを読み出す。
The
Specifically, the row of the
ストアデータの追い出しを行ったストアバッファ3は、データを追い出した領域に対応するリプレースフラグの値を「1」にする(シーケンスS227)。
ストアバッファ3から追い出されたストアリクエストを取得した主記憶装置6は、取得したストアリクエスト内のアドレスに対応する領域に行単位のストアデータを記憶する(シーケンスS228)。
シーケンスS228の後、図12の処理を終了する。
The
The
After the sequence S228, the process of FIG.
ストアバッファ3が追い出すストアリクエストを選択する方式として、既存のいろいろな方式を用いることができる。例えば、ストアバッファ3が、FIFO(First-In First-Out)でストアリクエストの追い出しを行うようにしてもよい。この場合、追い出し指示信号を受けたストアバッファ3は、追い出し指示信号が示す行に格納しているストアリクエストのうち、最も古いストアリクエストを追い出す。ストアバッファ3は、ストアリクエストを追い出した空き領域に後続のストアリクエストを格納する。
Various existing methods can be used as a method for selecting a store request to be expelled by the
図13は、ストアバッファ3がアドレスアレイ301及びデータアレイ302のウェイを拡張する処理手順の例を示す図である。
図13の処理で、ウェイ拡張指示回路311は、使用履歴フラグレジスタ309から使用履歴フラグを読み出し(シーケンスS231)、リプレースフラグレジスタ310からリプレースフラグを読み出す(シーケンスS232)。
FIG. 13 is a diagram illustrating an example of a processing procedure in which the
In the process of FIG. 13, the way
そして、ウェイ拡張指示回路311は、使用履歴フラグ及びリプレースフラグに基づいて、ウェイを拡張するか否かを決定する(シーケンスS233)。ここでのウェイ拡張は、ウェイの数を増やすことである。ここでのウェイの数は、セットアソシアティブにおける列数に対応しており、ウェイを拡張するすると列数が増加する。図13の例では、ウェイ拡張指示回路311は、ウェイを拡張することに決定している。
Then, the way
ウェイの拡張をすることに決定したウェイ拡張指示回路311は、ウェイ拡張指示をアレイ制御回路307、308のそれぞれに出力する。
ウェイ拡張指示を受けたアレイ制御回路307及び308は、アドレスアレイ及びデータアレイのウェイを拡張する(シーケンスS235)。
シーケンスS235の後図13の処理を終了する。
The way
Upon receiving the way expansion instruction, the
After sequence S235, the process of FIG.
図14は、使用履歴フラグ及びリプレースフラグの値の第1例を示す図である。図14の例で、アドレスアレイ301は、ウェイ拡張前の状態にある。また、図14の例でアドレスアレイ301の行数(Indexの数)は8、列数(Wayの数)は4になっている。データアレイ302の行数、列数は、アドレスアレイ301の行数、列数と同数に設定されるので、データアレイ302もウェイ拡張前の状態にある。
FIG. 14 is a diagram illustrating a first example of values of the use history flag and the replace flag. In the example of FIG. 14, the
図14の例で、領域A11に含まれる各行のリプレースフラグの値は、いずれも「1」となっている。リプレースフラグの値「1」は、該当行でストアリクエストの格納領域(空きウェイ)が不足して追い出しが行われたことを示している。一方、領域A12に含まれる各行の使用履歴フラグの値は「0」になっている。使用履歴フラグの値「0」は、対応する行の格納領域が使われていないことを示している。 In the example of FIG. 14, the value of the replace flag in each row included in the area A11 is “1”. The value “1” of the replace flag indicates that the store request storage area (empty way) is insufficient in the corresponding row and the eviction is performed. On the other hand, the value of the use history flag of each row included in the area A12 is “0”. The use history flag value “0” indicates that the storage area of the corresponding row is not used.
このように領域A11に含まれる各行では、ストアリクエストの格納領域が不足し、領域A12に含まれる各行では、ストアリクエストの格納領域が未使用のまま残っている。
そこで、ストアバッファ3は、領域A11の行と領域A12の行とを纏める。
例えば、ウェイ拡張指示回路311は、図14に示す使用履歴フラグ及びリプレースフラグの状態を検出すると、ウェイ拡張指示信号を生成してアレイ制御回路307及び308へ出力する。アレイ制御回路307及び308はウェイ拡張指示回路311からウェイ拡張指示信号を取得すると、アドレスアレイ301及びデータアレイ302の行数(Indexの数)を4にし、列数(Wayの数)を8にする。そのために、アレイ制御回路307及び308は、領域A12の各行のウェイ0〜ウェイ3を、領域A11の各行のウェイ4〜ウェイ7として扱う。
As described above, the storage area for the store request is insufficient in each row included in the area A11, and the storage area for the store request remains unused in each line included in the area A12.
Therefore, the
For example, when detecting the state of the use history flag and the replace flag shown in FIG. 14, the way
図15は、ウェイ拡張後のアドレスアレイ301の構成の第1例を示す図である。
図15に示すアドレスアレイ301では、領域A11の1つの行と領域A12の1つの行とが結合され(1つの行に纏められ)、ウェイの数が2倍に増加している。特に、リプレースフラグの値が「1」になっている行と使用履歴フラグの値が「0」になっている行とが結合されている。ストアバッファ3は、データアレイ302の構成についてもアドレスアレイと同様に変更する。
ウェイの数が増えることで、図15の例のアドレスアレイ301では、1行当たりのストアリクエストの格納領域の数を増やすことができ、ストアリクエストの追い出しを行う回数が減少することが期待される。
FIG. 15 is a diagram illustrating a first example of the configuration of the
In the
As the number of ways increases, the
ストアバッファ3は、例えば、リプレースフラグの値が「1」の行数が所定の閾値以上かつ、使用履歴フラグの値が「0」の行数が所定の閾値以上である場合に、データアレイの行数を半分にし、列数を2倍にする変更を行う。変更の方法として、例えば特開2005−293300に示されている方法など公知の方法を用いることができる。
例えば、ストアバッファ3は、中位アドレスの先頭ビットを上位アドレスに含めることで、アレイの行数を半分にし、列数を倍にする。
このように、情報処理装置10では、使用履歴フラグとリプレースフラグとを用いてウェイの数を調整することで、空き領域を減らしてストアバッファ3の利用効率を向上させることができる。ストアバッファの利用効率が向上することで、ストアデータを効率的に圧縮することができ、主記憶装置6へのアクセス効率を向上させることができる。
For example, when the number of rows whose replace flag value is “1” is equal to or greater than a predetermined threshold and the number of rows whose use history flag value is “0” is equal to or greater than a predetermined threshold, the
For example, the
As described above, the
図16は、使用履歴フラグ及びリプレースフラグの値の第2例を示す図である。図16の例で、アドレスアレイ301は、ウェイ拡張前の状態にある。また、図16の例でアドレスアレイ301の行数は8、列数は4になっている。データアレイ302の行数、列数は、アドレスアレイ301の行数、列数と同数に設定されるので、データアレイ302もウェイ拡張前の状態にある。
FIG. 16 is a diagram illustrating a second example of values of the use history flag and the replace flag. In the example of FIG. 16, the
図16の例で、領域A21に含まれる行のリプレースフラグの値は「1」となっている。一方、領域A22に含まれる行の使用履歴フラグの値は「0」になっている。
リプレースフラグ及び使用履歴フラグの値から、領域A21に含まれる行ではストアリクエストの格納領域が不足し、領域A22に含まれる行では、ストアリクエストの格納領域が未使用のまま残っている。
そこで、ストアバッファ3は、領域A21の行と領域A22の行とを纏める。
In the example of FIG. 16, the value of the replace flag in the row included in the area A21 is “1”. On the other hand, the value of the use history flag of the row included in the area A22 is “0”.
From the values of the replacement flag and the usage history flag, the storage area for the store request is insufficient in the line included in the area A21, and the storage area for the store request remains unused in the line included in the area A22.
Therefore, the
図17は、ウェイ拡張後のアドレスアレイ301の構成の第2例を示す図である。
図17の例では、ある1つの行(Index)のみウェイ拡張を行っている点で、図15の場合と異なる。
アドレスアレイ301の状態を図16の状態から図17の状態にするために、例えば、ウェイ拡張指示回路311の判定条件を
(1)ある行の使用履歴フラグの値とリプレースフラグの値とが共に「1」、且つ、
(2)他のある行のウェイが全て空きである場合
とする。ウェイ拡張指示回路311は、この条件が成立した場合に、ウェイ拡張指示信号を出力する。
FIG. 17 is a diagram illustrating a second example of the configuration of the
The example of FIG. 17 is different from the case of FIG. 15 in that way extension is performed for only one certain row (Index).
In order to change the state of the
(2) Assume that all other ways in a row are empty. The way
ウェイ拡張指示回路311は、ウェイ拡張指示信号と対象インデックス番号とをアレイ制御回路307及び308へ出力する。アレイ制御回路307及び308は、対象インデックスのみウェイの読み変えを行う。
このように、ある1つのインデックスのみウェイ拡張を行うことで、情報処理装置10では、一部の行のみでウェイが不足している場合、及び、一部の行のみで空きがある場合にもウェイ拡張を行い、ストアバッファ3の利用効率を向上させることができる。また、1つの行に纏めた行以外はウェイの数が4のままである点で、行内の領域を検索する負荷が比較的小さくて済む。
The way
In this way, by performing way expansion on only one certain index, the
以上のように、使用履歴フラグレジスタ309の使用履歴フラグは、アドレスアレイ301及びデータアレイ302におけるセットアソシアティブ方式の行毎に、その行に含まれる記憶領域のうち少なくとも1つの領域にデータが格納されたか否かを示す。また、リプレースフラグレジスタ310のリプレースフラグは、行毎にその行でデータの追い出しが行われたか否かを示す。ウェイ拡張指示回路311は、使用履歴フラグの値及びリプレースフラグの値に基づいて、セットアソシアティブ方式におけるウェイの数を増やすか否かを決定する。アレイ制御回路307及び308は、ウェイ拡張指示回路311がウェイの数を増やすことに決定した場合、ウェイの数を増やす。
このように、情報処理装置10では、使用履歴フラグ及びリプレースフラグを参照してウェイの数を増やすか否かを自動的に判定することができる。また、情報処理装置10が、使用履歴フラグ及びリプレースフラグを備えることで、領域が不足している行及び領域が使用されていない行を検出することができる。領域が不足している行と領域が使用されていない行とを1つの行に纏めることで、ヒット率を高めデータの追い出しを行う回数を減らすことができる。また、領域が不足している行と領域が使用されていない行とを1つの行に纏めることで、メモリアクセス効率を高めることができる。
As described above, the usage history flag of the usage history flag register 309 stores data in at least one of the storage areas included in the row for each row of the set associative method in the
Thus, the
また、アレイ制御回路307及び308は、セットアソシアティブ方式の行数(インデックス数)を半分にし、ウェイの数(列数)を2倍にする。これにより、行毎のウェイの数を同数に保つことができる。行毎のウェイの数が同数であることで、アレイ制御回路307及び308は、比較的簡単な処理でアドレスアレイ301及びデータアレイ302を制御することができる。
Further, the
また、アレイ制御回路307及び308は、セットアソシアティブ方式の行のうち、使用履歴フラグが、領域にデータが格納されたことを示す行と、リプレースフラグが、データの追い出しが行われたことを示す行とを1つの行に纏める。
このようにある1つのインデックスのみウェイ拡張を行うことで、情報処理装置10では、一部の行のみでウェイが不足している場合、及び、一部の行のみで空きがある場合にもウェイ拡張を行い、ストアバッファ3の利用効率を向上させることができる。また、1つに纏めた行以外はウェイの数が4のままである点で、行内の領域を検索する負荷が比較的小さくて済む。
In addition, the
By performing way expansion on only one index in this way, the
次に、図18及び図19を参照して、本発明の最小構成について説明する。
図18は、本発明に係る情報処理装置の最小構成の例を示す図である。図18に示す情報処理装置20は、記憶部21と、使用履歴フラグ22と、リプレースフラグ23と、ウェイ拡張指示部24と、ウェイ拡張部25とを備える。
かかる構成にて、記憶部21は、セットアソシアティブ方式でデータを記憶する。使用履歴フラグ22は、セットアソシアティブ方式の行毎にその行に含まれる記憶領域のうち少なくとも1つの領域にデータが格納されたか否かを示す。リプレースフラグ23は、行毎にその行でデータの追い出しが行われたか否かを示す。ウェイ拡張指示部24は、使用履歴フラグ22の値及びリプレースフラグ23の値に基づいて、セットアソシアティブ方式におけるウェイの数を増やすか否かを決定する。ウェイ拡張部25は、ウェイ拡張指示部24がウェイの数を増やすことに決定した場合、ウェイの数を増やす。
Next, the minimum configuration of the present invention will be described with reference to FIGS.
FIG. 18 is a diagram showing an example of the minimum configuration of the information processing apparatus according to the present invention. The
With this configuration, the
これにより、情報処理装置20では、使用履歴フラグ22及びリプレースフラグ23を参照してウェイの数を増やすか否かを自動的に判定することができる。また、情報処理装置20が、使用履歴フラグ22及びリプレースフラグ23を備えることで、領域が不足している行及び領域が使用されていない行を検出することができる。領域が不足している行と領域が使用されていない行とを1つの行に纏めることで、ヒット率を高めデータの追い出しを行う回数を減らすことができる。また、領域が不足している行と領域が使用されていない行とを1つの行に纏めることで、メモリアクセス効率を高めることができる。
Thereby, the
図19は、本発明に係る制御装置の最小構成の例を示す図である。図19に示す制御装置30は、ウェイ拡張指示部31と、ウェイ拡張部32とを備える。
かかる構成にて、ウェイ拡張指示部31は、セットアソシアティブ方式でデータを記憶する記憶部におけるセットアソシアティブ方式の行毎に、その行に含まれる記憶領域のうち少なくとも1つの領域にデータが格納されたか否かを示す使用履歴フラグの値と、行毎に、その行でデータの追い出しが行われたか否かを示すリプレースフラグの値とに基づいて、セットアソシアティブ方式におけるウェイの数を増やすか否かを決定する。ウェイ拡張部32は、ウェイ拡張指示部31がウェイの数を増やすことに決定した場合、ウェイの数を増やす。
FIG. 19 is a diagram showing an example of the minimum configuration of the control device according to the present invention. The
With this configuration, the way
これにより、制御装置30では、使用履歴フラグ及びリプレースフラグ23を参照してウェイの数を増やすか否かを自動的に判定することができる。また、制御装置30が、使用履歴フラグ及びリプレースフラグを参照することで、領域が不足している行及び領域が使用されていない行を検出することができる。領域が不足している行と領域が使用されていない行とを1つの行に纏めることで、ヒット率を高めデータの追い出しを行う回数を減らすことができる。また、領域が不足している行と領域が使用されていない行とを1つの行に纏めることで、メモリアクセス効率を高めることができる。
Thereby, the
なお、情報処理装置10及び20と、制御装置30との全部または一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
Note that a program for realizing all or part of the
The “computer-readable recording medium” refers to a storage device such as a flexible medium, a magneto-optical disk, a portable medium such as a ROM and a CD-ROM, and a hard disk incorporated in a computer system. The program may be a program for realizing a part of the functions described above, and may be a program capable of realizing the functions described above in combination with a program already recorded in a computer system.
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。 The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes designs and the like that do not depart from the gist of the present invention.
1 中央処理装置
2 マージ回路
3 ストアバッファ
4 エントリフル検出回路
5 追い出し制御回路
6 主記憶装置
10 情報処理装置
201 シフタ
202 マージャ
301 アドレスアレイ
302 データアレイ
303 アドレス差替回路
304 アドレス選択回路
305 レジスタ
306 エントリ選択回路
307、308 アレイ制御回路
309 使用履歴フラグレジスタ
310 リプレースフラグレジスタ
311 ウェイ拡張指示回路
401 レジスタ
402 比較回路
DESCRIPTION OF
Claims (6)
前記セットアソシアティブ方式の行毎に前記行に含まれる記憶領域のうち少なくとも1つの領域にデータが格納されたか否かを示す使用履歴フラグと、
前記行毎に前記行でデータの追い出しが行われたか否かを示すリプレースフラグと、
前記使用履歴フラグの値及び前記リプレースフラグの値に基づいて、前記セットアソシアティブ方式におけるウェイの数を増やすか否かを決定するウェイ拡張指示部と、
前記ウェイ拡張指示部が前記ウェイの数を増やすことに決定した場合、前記ウェイの数を増やすウェイ拡張部と、
を備える情報処理装置。 A storage unit for storing data in a set associative manner;
A usage history flag indicating whether data is stored in at least one of the storage areas included in the row for each row of the set associative method;
A replace flag indicating whether or not data has been evicted in the row for each row;
A way expansion instruction unit for determining whether to increase the number of ways in the set associative method based on the value of the use history flag and the value of the replace flag;
If the way extension instruction unit decides to increase the number of ways, a way extension unit that increases the number of ways;
An information processing apparatus comprising:
請求項1または請求項2に記載の情報処理装置。 In the set associative method line, the way extension unit indicates that the use history flag indicates that data has been stored in the area, and the replace flag indicates that the data has been evicted. Combine the lines shown in one line
The information processing apparatus according to claim 1 or 2.
前記ウェイ拡張指示部が前記ウェイの数を増やすことに決定した場合、前記ウェイの数を増やすウェイ拡張部と、
を備える制御装置。 For each row of the set associative method of the storage unit that stores data in the set associative method, a value of a use history flag indicating whether or not data is stored in at least one of the storage areas included in the row; A way expansion instruction unit that determines whether or not to increase the number of ways in the set associative method based on the value of a replacement flag indicating whether or not data has been evicted in the row for each row;
If the way extension instruction unit decides to increase the number of ways, a way extension unit that increases the number of ways;
A control device comprising:
前記ウェイの数を増やすことに決定した場合、前記ウェイの数を増やす、
制御方法。 For each row of the set associative method of the storage unit that stores data in the set associative method, a value of a use history flag indicating whether or not data is stored in at least one of the storage areas included in the row; For each row, based on the value of a replacement flag indicating whether or not data has been evicted in the row, determine whether to increase the number of ways in the set associative method,
If you decide to increase the number of ways, increase the number of ways,
Control method.
前記セットアソシアティブ方式の行毎に、前記行に含まれる記憶領域のうち少なくとも1つの領域にデータが格納されたか否かを示す使用履歴フラグの値と、前記行毎に、前記行でデータの追い出しが行われたか否かを示すリプレースフラグの値とに基づいて、前記セットアソシアティブ方式におけるウェイの数を増やすか否かを決定させ、
前記ウェイの数を増やすことに決定した場合、前記ウェイの数を増やさせる、
ためのプログラム。 To the computer that controls the storage unit that stores data in the set associative method,
For each row of the set associative method, a value of a use history flag indicating whether or not data is stored in at least one of the storage areas included in the row, and data is expelled in the row for each row. And whether to increase the number of ways in the set associative method based on the value of the replacement flag indicating whether or not
If you decide to increase the number of ways, increase the number of ways,
Program for.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017028075A JP2018133038A (en) | 2017-02-17 | 2017-02-17 | Information processing device, control device, control method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017028075A JP2018133038A (en) | 2017-02-17 | 2017-02-17 | Information processing device, control device, control method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018133038A true JP2018133038A (en) | 2018-08-23 |
Family
ID=63249703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017028075A Pending JP2018133038A (en) | 2017-02-17 | 2017-02-17 | Information processing device, control device, control method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018133038A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7553477B2 (en) | 2019-05-24 | 2024-09-18 | テキサス インスツルメンツ インコーポレイテッド | Method and apparatus for facilitating write miss caching in a cache system - Patents.com |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04315235A (en) * | 1991-04-12 | 1992-11-06 | Fuji Xerox Co Ltd | Cache data replace method and cache data replace device for cache memory |
JPH06149679A (en) * | 1992-11-13 | 1994-05-31 | Yokogawa Electric Corp | Cache memory device |
JPH10269143A (en) * | 1997-03-25 | 1998-10-09 | Mitsubishi Electric Corp | Cache parameter controlling method for disk cache unit, and disk cache unit |
JPH10275113A (en) * | 1997-03-31 | 1998-10-13 | Nec Corp | Storage device |
JP2005293300A (en) * | 2004-03-31 | 2005-10-20 | Nec Corp | Set associative cache system and control method of cache memory |
JP2008535067A (en) * | 2005-03-23 | 2008-08-28 | クゥアルコム・インコーポレイテッド | Global correction indicator to reduce power consumption in cache miss |
US20150052310A1 (en) * | 2013-08-16 | 2015-02-19 | SK Hynix Inc. | Cache device and control method thereof |
US20150212947A1 (en) * | 2014-01-27 | 2015-07-30 | Via Technologies, Inc. | Dynamic cache enlarging by counting evictions |
JP2016130893A (en) * | 2015-01-13 | 2016-07-21 | 富士通株式会社 | Cache control method and cache controller |
JP2017503299A (en) * | 2014-12-14 | 2017-01-26 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | Multimode set associative cache memory that is dynamically configurable to selectively select one or more of the sets depending on the mode |
-
2017
- 2017-02-17 JP JP2017028075A patent/JP2018133038A/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04315235A (en) * | 1991-04-12 | 1992-11-06 | Fuji Xerox Co Ltd | Cache data replace method and cache data replace device for cache memory |
JPH06149679A (en) * | 1992-11-13 | 1994-05-31 | Yokogawa Electric Corp | Cache memory device |
JPH10269143A (en) * | 1997-03-25 | 1998-10-09 | Mitsubishi Electric Corp | Cache parameter controlling method for disk cache unit, and disk cache unit |
JPH10275113A (en) * | 1997-03-31 | 1998-10-13 | Nec Corp | Storage device |
JP2005293300A (en) * | 2004-03-31 | 2005-10-20 | Nec Corp | Set associative cache system and control method of cache memory |
JP2008535067A (en) * | 2005-03-23 | 2008-08-28 | クゥアルコム・インコーポレイテッド | Global correction indicator to reduce power consumption in cache miss |
US20150052310A1 (en) * | 2013-08-16 | 2015-02-19 | SK Hynix Inc. | Cache device and control method thereof |
US20150212947A1 (en) * | 2014-01-27 | 2015-07-30 | Via Technologies, Inc. | Dynamic cache enlarging by counting evictions |
JP2017503299A (en) * | 2014-12-14 | 2017-01-26 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | Multimode set associative cache memory that is dynamically configurable to selectively select one or more of the sets depending on the mode |
JP2016130893A (en) * | 2015-01-13 | 2016-07-21 | 富士通株式会社 | Cache control method and cache controller |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7553477B2 (en) | 2019-05-24 | 2024-09-18 | テキサス インスツルメンツ インコーポレイテッド | Method and apparatus for facilitating write miss caching in a cache system - Patents.com |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4972316A (en) | Method of handling disk sector errors in DASD cache | |
JP5622155B2 (en) | Cache memory and control method thereof | |
JP6269048B2 (en) | Data arrangement control program, data arrangement control method, and data arrangement control apparatus | |
US8180965B2 (en) | System and method for cache access prediction | |
CN108984130A (en) | A kind of the caching read method and its device of distributed storage | |
Canim et al. | Buffered Bloom Filters on Solid State Storage. | |
CN114036077B (en) | Data processing method and related device | |
JP6402647B2 (en) | Data arrangement program, data arrangement apparatus, and data arrangement method | |
US20030225974A1 (en) | Method and apparatus for improving the efficiency of cache memories using chained metrics | |
JP5447523B2 (en) | Data processing apparatus, data recording method, and data recording program | |
JP2018133038A (en) | Information processing device, control device, control method, and program | |
JP5650441B2 (en) | Arithmetic device, cache device, control method thereof, and computer program | |
CN113392043A (en) | Cache data replacement method, device, equipment and storage medium | |
CN104123243A (en) | Data caching system and method | |
US11853618B2 (en) | Method, electronic device, and computer product for RAID reconstruction | |
JP5522731B2 (en) | Store merge apparatus, information processing apparatus, store merge method and program | |
JP6224684B2 (en) | Store merge apparatus, information processing apparatus, store control method, and computer program | |
JP3301359B2 (en) | List management system, method and storage medium | |
CN110658999B (en) | Information updating method, device, equipment and computer readable storage medium | |
CN107506156B (en) | Io optimization method of block device | |
JP5453500B2 (en) | Store control device, information processing device, and store control method | |
JPS63278158A (en) | Associated cashe memory | |
US20210073128A1 (en) | Storage controller, storage array device, data depositing method, and storage medium | |
WO2014147840A1 (en) | Access control program, disk device, and access control method | |
WO2010089799A1 (en) | Cache memory system, computer system, and cache memory access method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200110 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201215 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210215 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20210803 |