JP2018133038A - Information processing device, control device, control method, and program - Google Patents

Information processing device, control device, control method, and program Download PDF

Info

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
Application number
JP2017028075A
Other languages
Japanese (ja)
Inventor
孝士 長田
Takashi Osada
孝士 長田
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 Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2017028075A priority Critical patent/JP2018133038A/en
Publication of JP2018133038A publication Critical patent/JP2018133038A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To automatically determine whether to change the number of ways when the number of ways is changeable.SOLUTION: An information processing device comprises: a storage part for storing data in a set associative system; a use history flag indicating whether or not the data are stored in at least one region among storage regions included in each line of the set associative system; a replacement flag indicating whether or not the removal of the data has been performed in each line; a way extension instruction part for determining whether to increase the number of ways in the set associative system on the basis of the value of the use history flag and the value of the replacement flag; and a way extension part for increasing the number of ways when the way extension instruction part determines to increase the number of ways.SELECTED DRAWING: Figure 5

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, Patent Document 1 discloses a store control device that makes it easy to control store data from a store buffer unit. The store control device receives store data in units of blocks from the processor, stores the data in the store buffer unit, and drives store data from the store buffer unit to the main storage device in units of lines that are a plurality of continuous blocks. When expelling store data, the store control device expells store data with priority given to ways in which all blocks in the line exist in the store buffer unit.

このようなストア制御装置で、ウェイの数が不足する場合にも対応することができれば更に好ましい。
この点に関して、特許文献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, Patent Document 2 discloses a cache system that can change the number of sets and the number of ways by a set associative method. This cache system includes i sets of m ways and n sets of cache arrays, and changes the number of sets and the number of ways by controlling selection of sets and selection of ways. i, m, and n may all be multipliers of 2.

特開2014−052754号公報JP 2014-052754 A 特開2005−293300号公報JP-A-2005-293300

特許文献2に記載のキャッシュシステムのようにウェイの数を変更可能な場合に、ウェイの数を変更するか否かの判定を自動的に行えることが更に好ましい。   More preferably, when the number of ways can be changed as in the cache system described in Patent Document 2, it is possible to automatically determine whether to change the number of ways.

本発明は、上述の課題を解決することのできる情報処理装置、制御装置、制御方法及びプログラムを提供することを目的としている。   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.

本発明の実施形態に係る情報処理装置の構成例を示す概略構成図である。It is a schematic block diagram which shows the structural example of the information processing apparatus which concerns on embodiment of this invention. 同実施形態に係る中央処理装置が出力するリクエストのデータ構造の例を示す図である。It is a figure which shows the example of the data structure of the request which the central processing unit which concerns on the same embodiment outputs. 同実施形態に係るマージ回路の構成例を示す概略構成図である。It is a schematic block diagram which shows the structural example of the merge circuit which concerns on the same embodiment. 同実施形態に係るマージ処理されたストアデータの例を示す図である。It is a figure which shows the example of the store data by which the merge process which concerns on the same embodiment was carried out. 同実施形態に係るストアバッファの構成例を示す概略構成図である。It is a schematic block diagram which shows the structural example of the store buffer which concerns on the embodiment. 同実施形態に係るアドレスアレイが記憶するデータのデータ構造の例を示す図である。It is a figure which shows the example of the data structure of the data which the address array which concerns on the same embodiment memorize | stores. 同実施形態に係るエントリフル検出回路の構成例を示す図である。It is a figure which shows the structural example of the entry full detection circuit based on the embodiment. 同実施形態に係る追い出し制御回路が追い出し指示信号を生成する際の生成規則の例を示す図である。It is a figure which shows the example of the production | generation rule at the time of the eviction control circuit concerning the same embodiment producing | generating an eviction instruction signal. 同実施形態に係るロード時における情報処理装置の動作の第1例を示す図である。It is a figure which shows the 1st example of operation | movement of the information processing apparatus at the time of the load which concerns on the embodiment. 同実施形態に係るロード時における情報処理装置の動作の第2例を示す図である。It is a figure showing the 2nd example of operation of an information processor at the time of loading concerning the embodiment. 同実施形態に係るストアバッファがストアデータを記憶する場合の情報処理装置の処理手順の例を示す図である。It is a figure which shows the example of the process sequence of the information processing apparatus in case the store buffer which concerns on the embodiment memorize | stores store data. 同実施形態に係るストアバッファがストアリクエストの追い出し処理を行う場合の情報処理装置の処理手順の例を示す図である。It is a figure which shows the example of the process sequence of information processing apparatus in case the store buffer which concerns on the embodiment performs the eviction process of a store request. 同実施形態に係るストアバッファがアドレスアレイ及びデータアレイのウェイを拡張する処理手順の例を示す図である。It is a figure which shows the example of the process sequence which the store buffer based on the embodiment expands the way of an address array and a data array. 同実施形態に係る使用履歴フラグ及びリプレースフラグの値の第1例を示す図である。It is a figure which shows the 1st example of the value of the use log | history flag which concerns on the embodiment, and a replacement flag. 同実施形態に係るウェイ拡張後のアドレスアレイの構成の第1例を示す図である。It is a figure which shows the 1st example of a structure of the address array after way expansion concerning the embodiment. 同実施形態に係る使用履歴フラグ及びリプレースフラグの値の第2例を示す図である。It is a figure which shows the 2nd example of the value of a use log | history flag and a replacement flag which concerns on the embodiment. 同実施形態に係るウェイ拡張後のアドレスアレイの構成の第2例を示す図である。It is a figure which shows the 2nd example of a structure of the address array after way expansion concerning the embodiment. 本発明に係る情報処理装置の最小構成の例を示す図である。It is a figure which shows the example of the minimum structure of the information processing apparatus which concerns on this invention. 本発明に係る制御装置の最小構成の例を示す図である。It is a figure which shows the example of the minimum structure of the control apparatus which concerns on this invention.

以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図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 information processing apparatus 10 includes a central processing unit 1, a merge circuit 2, a store buffer 3, an entry full detection circuit 4, an eviction control circuit 5, and a main storage device. 6.

中央処理装置1は、マージ回路2及び主記憶装置6と接続されている。中央処理装置1は、ストアリクエスト及びストアデータをマージ回路2へ出力する。ストアリクエストは、ストアデータの主記憶装置6への書き込みを要求する命令である。
また、中央処理装置1は、マージ回路2を介して主記憶装置6へロードリクエストを出力し主記憶装置6よりロードデータを受け取る。ロードリクエストは、主記憶装置6からのデータの読み出しを要求する命令である。ロードデータは、ロードリクエストに応じて主記憶装置6から読み出されたデータである。
以下では、ストアリクエストとロードリクエストとを総称してリクエストと表記する。
The central processing unit 1 is connected to the merge circuit 2 and the main storage device 6. The central processing unit 1 outputs a store request and store data to the merge circuit 2. The store request is an instruction for requesting writing of store data to the main storage device 6.
Further, the central processing unit 1 outputs a load request to the main storage device 6 via the merge circuit 2 and receives load data from the main storage device 6. The load request is an instruction for requesting reading of data from the main storage device 6. The load data is data read from the main storage device 6 in response to the load request.
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 central processing unit 1 outputs in response to the store request is shorter than the data length of the load data that the main storage device 6 outputs in response to the load request. In the following, an example will be described in which the data length of the store data output from the central processing unit 1 is 8 bytes (B) and the data length of the load data output from the main storage device 6 is 128 bytes. However, neither the data length of the store data output from the central processing unit 1 nor the data length of the load data output from the main storage device 6 is limited to a specific data length. The data length of the store data output from the central processing unit 1 only needs to be shorter than the data length of the load data output from the main storage device 6. Furthermore, it is preferable that the data length of the load data output from the main storage device 6 is an integral multiple of the data length of the store data output from the central processing unit 1, but the present invention is not limited to this.
Hereinafter, data whose data length is the data length of the load data output from the main storage device 6 is referred to as a line. The data length of the line is referred to as the line length.

図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 central processing unit 1. As shown in FIG. 2, the request output from the central processing unit 1 includes a command and an address.
The command indicates an operation instructed to the main storage device 6. Specifically, the command indicates a load or store operation instruction.

アドレスは、主記憶装置6におけるアドレスを示す。ロードリクエストの場合、アドレス欄には主記憶装置6がロードデータを読み出すべき位置を示すアドレスが格納される。ストアデータの場合、アドレス欄には、主記憶装置6がストアデータを格納すべき位置を示すアドレスが格納される。
リクエストのアドレスは、上位アドレス、中位アドレス、下位アドレスの3つに分けることができる。
The address indicates an address in the main storage device 6. In the case of a load request, an address indicating a position where the main storage device 6 should read the load data is stored in the address column. In the case of store data, an address indicating a position where the main storage device 6 should store the store data is stored in the address column.
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 store buffer 3 stores store data by the set associative method, and the intermediate address is used as an index in the set associative. That is, the intermediate address is associated with the row in the set associative one-on-one.
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 main storage device 6 can be designated in units of lines by a combination of the upper address and the middle address, and the lower address indicates a position in the line.
Since the store buffer 3 and the main storage device 6 process the data in units of lines, the lower address is ignored. On the other hand, as described above, the central processing unit 1 outputs store data in units smaller than a line. The merge circuit 2 uses the lower address to align the store data on the line when the store data output from the central processing unit 1 is merged into the line.

マージ回路2は、中央処理装置1及びストアバッファ3と接続されている。マージ回路2は、中央処理装置1が出力したリクエストをストアバッファ3へ出力する。
中央処理装置1がストアリクエストを出力した場合、マージ回路2は、ストアデータをストアバッファ3が記憶しているデータにマージする。
ここで、ストアバッファ3および主記憶装置6がライン単位でデータの入出力を行うのに対し、上記のようにストアデータはライン長よりも短い。そこで、ストアデータを格納すべきアドレスを含むラインをストアバッファ3が記憶している場合、マージ回路2は、このラインをストアバッファ3から読み出す。そして、マージ回路2は、読み出したラインのうち、ストアリクエストのアドレスで指定される位置にストアデータを書き込む。マージ回路2は、ストアデータを書き込んだラインをストアバッファ3へのストアリクエストにて出力し、ストアバッファ3は、マージ回路2へ読み出したラインをマージ回路2が出力したラインに置き換える(上書きする)。
The merge circuit 2 is connected to the central processing unit 1 and the store buffer 3. The merge circuit 2 outputs the request output from the central processing unit 1 to the store buffer 3.
When the central processing unit 1 outputs a store request, the merge circuit 2 merges the store data with the data stored in the store buffer 3.
Here, the store buffer 3 and the main storage device 6 input / output data in line units, whereas the store data is shorter than the line length as described above. Therefore, when the store buffer 3 stores a line including the address where the store data is to be stored, the merge circuit 2 reads this line from the store buffer 3. Then, the merge circuit 2 writes the store data at the position specified by the address of the store request in the read line. The merge circuit 2 outputs the line in which the store data has been written by a store request to the store buffer 3, and the store buffer 3 replaces (overwrites) the line read to the merge circuit 2 with the line output by the merge circuit 2. .

図3は、マージ回路2の構成例を示す概略構成図である。図3の例で、マージ回路2は、シフタ201と、マージャ202とを備える。
シフタ201は、ライン内のアドレスを示す下位アドレスに従ってストアデータのシフト処理を行う。これにより、シフタ201は、中央処理装置1が出力したストアデータのラインにおける位置合わせを行う。
FIG. 3 is a schematic configuration diagram showing a configuration example of the merge circuit 2. In the example of FIG. 3, the merge circuit 2 includes a shifter 201 and a merger 202.
The shifter 201 shifts store data according to a lower address indicating an address in the line. As a result, the shifter 201 performs alignment on the line of the store data output from the central processing unit 1.

マージャ202は、ライン単位のストアデータ内の該当領域のデータを更新する。すなわち、マージャ202は、シフタ201による位置合わせに基づいて、中央処理装置1が出力したストアデータを、ストアバッファ3が記憶しているライン単位のストアデータにマージする。
マージャ202は、マージされたライン単位のストアデータをストアバッファ3へ出力する。ストアバッファ3は、マージャ202が出力したライン単位のストアデータを、マージ前のストアデータ読出元の記憶領域へ上書きする。
The merger 202 updates the data in the corresponding area in the store data for each line. That is, the merger 202 merges the store data output from the central processing unit 1 with the store data in units of lines stored in the store buffer 3 based on the alignment by the shifter 201.
The merger 202 outputs the merged line-unit store data to the store buffer 3. The store buffer 3 overwrites the store data in units of lines output from the merger 202 in the storage area from which the store data is read before merging.

図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 central processing unit 1 outputs 8-byte store data together with the store request. On the other hand, the main storage device 6 uses a line obtained by dividing the storage area of the main storage device 6 every 128 bytes as a unit for data input / output.
When the central processing unit 1 requests the main storage device 6 to store 24 bytes of data, the central processing unit 1 uses the 24 bytes of data as 8 stored data 1, 2 and 3 in FIG. Divide into bytes and output 3 store requests. The store data 1, 2 and 3 are originally continuous data and are data to be stored in the same line in the main storage device 6.

仮に、ストアバッファ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 store buffer 3 receives a store request from the central processing unit 1, data is read from the main storage device 6 in units of lines, and data in units of lines reflecting the store request is written back, the main storage device 6 Data reading and data writing to the main memory 6 must be performed three times.
On the other hand, the store buffer 3 reads the data from the main storage device 6 in line units, and generates and generates data reflecting all three store requests from the central processing unit 1 as shown in FIG. If data is written back, data reading from the main storage device 6 and data writing to the main storage device 6 are each performed once. Therefore, the store buffer 3 reflects the store request from the central processing unit 1 on the data read from the main storage device 6 and then immediately outputs the store request to the store buffer 3 itself without outputting the store request to the main storage device 6. store. In the case of stores on the same line, the merge circuit 2 performs a merge process. The store buffer 3 outputs a store request to the main storage device 6 when an event that causes eviction occurs.

ストアバッファ3は、マージ回路2、エントリフル検出回路4、追い出し制御回路5及び主記憶装置6と接続されている。ストアバッファ3は、主記憶装置6のキャッシュメモリとして機能し、主記憶装置6へのストアデータをセットアソシアティブ方式で記憶する。
ロードリクエストを取得した場合、ストアバッファ3は、ロードリクエストとストアバッファ3内のストアリクエストとのアドレス比較を行う。アドレスが一致した場合、ストアバッファ3は、一致したアドレスのストアデータを読み出してストアリクエストと共に主記憶装置6へ出力する。また、ストアバッファ3は、ストアデータを読み出してマージ回路2へ出力し、マージ回路2の出力であるマージ後のストアデータをストアバッファ3の元の格納場所へ格納する。更に、ストアバッファ3は、ストアバッファ3内のデータ格納状況を示すエントリ情報をエントリフル検出回路4へ出力する。また、ストアバッファ3は、追い出し制御回路5の指示に従ってストアデータを主記憶装置6へ出力する。
The store buffer 3 is connected to the merge circuit 2, the entry full detection circuit 4, the eviction control circuit 5, and the main storage device 6. The store buffer 3 functions as a cache memory of the main storage device 6 and stores store data to the main storage device 6 by a set associative method.
When the load request is acquired, the store buffer 3 performs address comparison between the load request and the store request in the store buffer 3. If the addresses match, the store buffer 3 reads the store data at the matched address and outputs it to the main storage device 6 together with the store request. Further, the store buffer 3 reads the store data and outputs it to the merge circuit 2, and stores the merged store data that is the output of the merge circuit 2 in the original storage location of the store buffer 3. Further, the store buffer 3 outputs entry information indicating the data storage status in the store buffer 3 to the entry full detection circuit 4. Further, the store buffer 3 outputs store data to the main storage device 6 in accordance with an instruction from the eviction control circuit 5.

図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 store buffer 3. In FIG. 5, the store buffer 3 includes an address array 301, a data array 302, an address replacement circuit 303, an address selection circuit 304, a register 305, an entry selection circuit 306, array control circuits 307 and 308, A use history flag register 309, a replace flag register 310, and a way expansion instruction circuit 311 are provided.

アドレスアレイ301と、データアレイ302との組み合わせは、セットアソシアティブ方式の記憶装置を構成し、ストアリクエスト及びストアデータを一時的に記憶する。アドレスアレイ301及びデータアレイ302は、記憶部の例に該当する。
アドレスアレイ301は、ストアリクエストのアドレス及びストアデータのマージ状態を記憶する。
The combination of the address array 301 and the data array 302 constitutes a set associative storage device, and temporarily stores store requests and store data. The address array 301 and the data array 302 correspond to examples of storage units.
The address array 301 stores the address of the store request and the merge state of the store data.

図6は、アドレスアレイ301が記憶するデータのデータ構造の例を示す図である。図6に示すように、アドレスアレイ301は、アドレス+有効バイト情報の形式のデータを記憶する。
ここで有効バイト情報とは、ライン単位のストアデータのうちマージ済みの部分の位置を8バイト単位で示す情報である。ここでの8バイトは、中央処理装置1からのストアデータのデータ長の例である。
FIG. 6 is a diagram illustrating an example of a data structure of data stored in the address array 301. As shown in FIG. 6, the address array 301 stores data in the format of address + valid byte information.
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 central processing unit 1.

例えばマージ回路2がストアバッファ3における128バイトのストアデータに対して8バイト単位でマージを行う場合、有効バイト情報として16(=128÷8)ビットを用いてマージ済みの8バイトを「1」で示す。ここでの128バイトは、ライン長の例である。
有効バイト情報が16ビット全て「1」である場合、ラインのマージ完了を表す。ラインのマージが完了している場合、マスキング等の処理を行う必要無しにこのラインを主記憶装置6に格納させることができる。
For example, when the merge circuit 2 merges the 128-byte store data in the store buffer 3 in units of 8 bytes, the merged 8 bytes are set to “1” using 16 (= 128 ÷ 8) bits as valid byte information. It shows with. 128 bytes here is an example of a line length.
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 main storage device 6 without performing a process such as masking.

アドレスアレイ301の記憶領域は、m行×n列(m、nは正整数)の領域に分割され、1つの領域に1つのアドレスが格納される。アドレスアレイ301の各行はストアリクエストにおける中位アドレス値と1対1に対応付けられており、ストアリクエストのアドレスは、その中位アドレス値に応じた行の記憶領域に格納される。各行はn個のアドレス格納領域を有するので、アドレスアレイ301は、中位アドレス値が同一かつ上位アドレスが異なるアドレスをn個まで記憶し得る。
以下では、アドレスアレイ301の各行、及び、データアレイ302の各行をエントリと称する。
The storage area of the address array 301 is divided into areas of m rows × n columns (m and n are positive integers), and one address is stored in one area. Each row of the address array 301 is associated with the intermediate address value in the store request on a one-to-one basis, and the address of the store request is stored in the storage area of the row corresponding to the intermediate address value. Since each row has n address storage areas, the address array 301 can store up to n addresses having the same intermediate address value and different upper addresses.
Hereinafter, each row of the address array 301 and each row of the data array 302 are referred to as entries.

アドレスアレイ301の領域のうち、有効なアドレス値が格納されていない領域には、アドレス値と区別可能な値が格納される。アドレス値と区別可能な値として、例えばマイナスの整数値を用いることができるが、これに限らない。アドレス値と区別可能な値により、その領域が空き領域であることが示される。ここでいう空き領域は、新たなデータを書込可能な領域である。   In the area of the address array 301, a value that can be distinguished from the address value is stored in an area in which a valid address value is not stored. As a value that can be distinguished from the address value, for example, a negative integer value can be used, but is not limited thereto. A value distinguishable from the address value indicates that the area is a free area. The empty area here is an area where new data can be written.

なお、ストアバッファ3は、主記憶装置6のラインに合わせてライン単位でデータの書込および読出を行う。このため、ストアバッファ3は、ストアリクエストの下位アドレスを無視する。すなわち、ストアバッファ3は、上位アドレス値および中位アドレス値が同一であれば、下位アドレス値が異なっていても同一のアドレス値として扱い、データの読出等の処理を行う。   The store buffer 3 writes and reads data in units of lines in accordance with the lines of the main storage device 6. For this reason, the store buffer 3 ignores the lower address of the store request. That is, if the upper address value and the middle address value are the same, the store buffer 3 treats the same address value even if the lower address value is different, and performs processing such as data reading.

データアレイ302は、ストアデータを記憶する。
データアレイ302の記憶領域も、アドレスアレイ301と同様に、m行×n列の領域に分割されている。データアレイ302の、各行はアドレスアレイ301の各行と1対1に対応付けられ、データアレイ302の各列はアドレスアレイの各列と1対1に対応付けられている。これにより、アドレスアレイ301とデータアレイ302とでnウェイ(way)セットアソシアティブ方式の記憶装置を構成する。
The data array 302 stores store data.
Similarly to the address array 301, the storage area of the data array 302 is also divided into areas of m rows × n columns. Each row of the data array 302 has a one-to-one correspondence with each row of the address array 301, and each column of the data array 302 has a one-to-one correspondence with each column of the address array. As a result, the address array 301 and the data array 302 constitute an n-way set associative storage device.

アドレス差替回路303は、追い出し制御回路5が出力した追い出し指示信号を受けると、リクエストに示されるアドレスから追い出し指示信号に示されるアドレスへの差し替えを行う。
アドレス選択回路304は、アドレスアレイ301がウェイ毎に出力したアドレス値の何れかを、リクエストに示されるアドレスに基づいて選択する。アドレス選択回路304は、選択したアドレスに基づいて主記憶装置6に対するストアリクエストを生成し、主記憶装置6へ出力する。
When the address replacement circuit 303 receives the eviction instruction signal output from the eviction control circuit 5, the address replacement circuit 303 replaces the address indicated in the request with the address indicated in the eviction instruction signal.
The address selection circuit 304 selects one of the address values output by the address array 301 for each way based on the address indicated in the request. The address selection circuit 304 generates a store request for the main storage device 6 based on the selected address and outputs it to the main storage device 6.

レジスタ305は、ロードリクエストを一時的に記憶する。ロードリクエストと同一アドレスのエントリがアドレスアレイ301から追い出された際に、レジスタ305がロードリクエストを一時的に待たせることによりロードリクエストがストアリクエストを追い越すことを防止する。
エントリ選択回路306は、マージ回路2が出力したリクエスト、及び、追い出し制御回路5が出力した追い出し指示信号を受けて、ストアバッファ3の各部を制御する。
The register 305 temporarily stores the load request. When an entry having the same address as the load request is evicted from the address array 301, the register 305 temporarily waits for the load request to prevent the load request from overtaking the store request.
The entry selection circuit 306 controls each part of the store buffer 3 in response to the request output from the merge circuit 2 and the eviction instruction signal output from the eviction control circuit 5.

アレイ制御回路307及び308は、それぞれアドレスアレイ301及びデータアレイ302に対するストアリクエスト(アドレス値およびストアデータ)の読み出し及び書き込みの制御を行う。
具体的には、アレイ制御回路307は、リクエスト又は追い出し指示信号に含まれるアドレス値を読み出し、中位アドレス値に基づいてアドレスアレイ301の該当行を選択する。アレイ制御回路308は、リクエスト又は追い出し指示信号に含まれるアドレス値を読み出し、中位アドレス値に基づいてデータアレイ302の該当行を選択する。
Array control circuits 307 and 308 control reading and writing of store requests (address values and store data) to the address array 301 and the data array 302, respectively.
Specifically, the array control circuit 307 reads the address value included in the request or eviction instruction signal, and selects the corresponding row of the address array 301 based on the intermediate address value. The array control circuit 308 reads the address value included in the request or eviction instruction signal, and selects the corresponding row of the data array 302 based on the intermediate address value.

ストアリクエストを読み出す場合、アレイ制御回路307は、選択した行の各領域のアドレス値を出力するようアドレスアレイ301を制御する。また、アレイ制御回路308は、選択した行の各領域のストアデータを出力するようデータアレイ302を制御する。
ストアリクエストを書き込む場合、アレイ制御回路307は、選択した行の領域のうち空き領域を選択し、選択した空き領域に図6に示されるデータを書き込む。また、アレイ制御回路308は、データアレイ302の領域のうち、アドレスを書き込んだアドレスアレイ301の領域と同じ行かつ同じ列の領域に、マージ回路2から出力されたストアデータを書き込む。
When reading a store request, the array control circuit 307 controls the address array 301 to output the address value of each area of the selected row. Further, the array control circuit 308 controls the data array 302 so as to output store data of each area of the selected row.
When writing a store request, the array control circuit 307 selects a free area from the selected row area and writes the data shown in FIG. 6 in the selected free area. In addition, the array control circuit 308 writes the store data output from the merge circuit 2 in the same row and the same column area as the address array 301 area in which the address is written in the data array 302 area.

また、アレイ制御回路307は、アドレスアレイ301の行毎に、格納されているアドレスの数を計数し、計数結果と当該行を示すアドレス値とを含むエントリ情報を生成する。アレイ制御回路307は、生成したエントリ情報をエントリフル検出回路4へ出力する。アレイ制御回路307は、例えば所定周期毎にエントリ情報を生成し、エントリフル検出回路4へ出力する。   The array control circuit 307 counts the number of stored addresses for each row of the address array 301, and generates entry information including the count result and an address value indicating the row. The array control circuit 307 outputs the generated entry information to the entry full detection circuit 4. The array control circuit 307 generates entry information, for example, at predetermined intervals and outputs the entry information to the entry full detection circuit 4.

また、アレイ制御回路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 array control circuits 307 and 308 control the configuration of the storage areas of the address array 301 and the data array 302. Specifically, the array control circuits 307 and 308 determine the usage state of the address array 301 and the data array 302 based on the information in the usage history flag register 309 and the replacement flag register 310. The array control circuits 307 and 308 change the number of rows and the number of columns in the set associative memory based on the determination result. For example, the array control circuits 307 and 308 replace the storage area of m rows × n columns with (m / 2) rows × 2n columns. Thereby, each array can be handled as a storage area having an area of m / 2 rows in 2n ways.
The array control circuits 307 and 308 correspond to an example of a way expansion unit and increase the number of ways. Specifically, the array control circuits 307 and 308 increase the number of ways by replacing a way in one row with a way that follows an existing way in another row.

使用履歴フラグレジスタ309は、アドレスアレイ301の行毎に1ビットのレジスタを有する。使用履歴フラグレジスタ309は、アドレスアレイ301の1つの行のn個の格納領域のいずれかにデータが格納された場合、対応するレジスタの値を「1」にする。一方、アドレスアレイ301の1つの行のn個の格納領域のいずれも使用されていない場合、使用履歴フラグレジスタ309は、対応するレジスタの値を「0」にする。   The usage history flag register 309 has a 1-bit register for each row of the address array 301. The usage history flag register 309 sets the value of the corresponding register to “1” when data is stored in any of the n storage areas of one row of the address array 301. On the other hand, when none of the n storage areas in one row of the address array 301 is used, the usage history flag register 309 sets the value of the corresponding register to “0”.

リプレースフラグレジスタ310は、アドレスアレイ301の行毎に1ビットのレジスタを有する。リプレースフラグレジスタ310は、アドレスアレイ301の1つの行のn個の格納領域が全てエントリで満たされた状態で中央処理装置1からストアリクエストが出力されてエントリの追い出しが発生した場合に、対応するレジスタの値を「1」にする。それ以外の場合、リプレースフラグレジスタ310は、レジスタの値を「0」にする。   The replace flag register 310 has a 1-bit register for each row of the address array 301. The replace flag register 310 corresponds to a case where a store request is output from the central processing unit 1 and entry eviction occurs in a state where n storage areas of one row of the address array 301 are all filled with entries. Set the register value to "1". In other cases, the replace flag register 310 sets the value of the register to “0”.

ウェイ拡張指示回路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 expansion instruction circuit 311 receives the flags of the use history flag register 309 and the replace flag register 310 as input, generates a way expansion instruction signal, and sends it to the array control circuits 307 and 308. The way expansion instruction circuit 311 corresponds to an example of a way expansion instruction unit.
When the array control circuits 307 and 308 receive the way expansion instruction signal from the way expansion instruction circuit 311, the storage areas of the address array 301 and the data array 302 are replaced with the preset number of rows and columns to control each entry. For example, the array control circuits 307 and 308 replace the memory area of m rows × n columns with (m / 2) rows × 2n columns as described above.
Each unit that controls the address array 301 and the data array 302 may be configured as a control device and incorporated in the information processing apparatus 10. In particular, the way expansion instruction circuit 311 and the array control circuits 307 and 308 may be included in the control device.

エントリフル検出回路4は、ストアバッファ3及び追い出し制御回路5と接続されている。エントリフル検出回路4は、ストアバッファ3よりエントリ情報を受け取ってエントリフルの判定を行う。エントリフルと判定した場合、エントリフル検出回路4は、エントリフル情報を追い出し制御回路5へ出力する。
後述するように、ここでいうエントリは、ストアバッファ3が備えるセットアソシアティブ方式の記憶装置の行である。ここでいうエントリ情報は、セットアソシアティブ方式の記憶装置の1つの行に格納されているアドレスの数を示す情報である。ここでのアドレスの数は、1つの行に格納されているライン単位のストアデータの数を示す。ここでのエントリフルは、1つの行に含まれるウェイ数分の記憶領域のいずれにもデータが格納されていることである。
The entry full detection circuit 4 is connected to the store buffer 3 and the eviction control circuit 5. The entry full detection circuit 4 receives entry information from the store buffer 3 and determines entry full. If it is determined that the entry is full, the entry full detection circuit 4 outputs entry full information to the eviction control circuit 5.
As will be described later, the entry here is a row of a set associative storage device included in the store buffer 3. The entry information here is information indicating the number of addresses stored in one row of the set associative storage device. The number of addresses here indicates the number of store data in units of lines stored in one row. The entry full here means that data is stored in any of the storage areas corresponding to the number of ways included in one row.

図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 register 401 and a comparison circuit 402.
The register 401 stores in advance the number of ways in the store buffer 3 (the number of columns in the address array 301).
The comparison circuit 402 compares the number of addresses (store request number) stored in each row of the address array 301 indicated by the entry information output from the store buffer 3 with the number of ways stored in the register 401. When a line having more addresses than the number of ways is detected, the comparison circuit 402 outputs “1” indicating entry full and an address value indicating the line as an entry full signal.

追い出し制御回路5は、ストアバッファ3及びエントリフル検出回路4と接続されている。追い出し制御回路5は、エントリフル検出回路4が出力したエントリフル情報に基づいてストアデータの追い出し判定を行う。ここでいう追い出し判定は、ストアバッファ3から主記憶装置6へデータを出力する必要があるか否かの判定である。ストアバッファ3のエントリがフルの状態で中央処理装置1がさらにストアリクエストを出力した場合、このストアリクエストをストアバッファ3に格納するための空きを作る必要がある。この空きを作るためのストアバッファ3から主記憶装置6へのデータの出力をデータの追い出しと称する。この追い出しを行う必要があるか否かの判定を追い出し判定と称する。
追い出しが必要と判定した場合、追い出し制御回路5は、追い出し指示信号をストアバッファ3へ出力する。
The eviction control circuit 5 is connected to the store buffer 3 and the entry full detection circuit 4. The eviction control circuit 5 performs store data eviction determination based on the entry full information output by the entry full detection circuit 4. The eviction determination here is a determination as to whether or not it is necessary to output data from the store buffer 3 to the main storage device 6. When the central processing unit 1 further outputs a store request while the entry of the store buffer 3 is full, it is necessary to make a space for storing the store request in the store buffer 3. The output of data from the store buffer 3 to the main storage device 6 to create this empty space is called data eviction. The determination of whether or not it is necessary to perform the eviction is referred to as an eviction determination.
When it is determined that eviction is necessary, the eviction control circuit 5 outputs an eviction instruction signal to the store buffer 3.

図8は、追い出し制御回路5が追い出し指示信号を生成する際の生成規則の例を示す図である。図8の例で、追い出し制御回路5は、取得したエントリフル情報がエントリフルを示す場合、追い出し制御回路5は、追い出し指示信号の値を「1」+アドレス値にする。この値の「1」は、追い出しが必要であることを示す。アドレス値は、追い出しの対象となるデータを示す。
一方、取得したエントリフル情報がエントリフルでないことを示す場合、追い出し制御回路5は、追い出し指示信号の値を「0」にする。追い出し指示信号の値「0」は、追い出しが不要であること示す。
FIG. 8 is a diagram illustrating an example of a generation rule when the eviction control circuit 5 generates an eviction instruction signal. In the example of FIG. 8, when the acquired entry full information indicates entry full, the eviction control circuit 5 sets the value of the eviction instruction signal to “1” + address value. This value “1” indicates that eviction is necessary. The address value indicates data to be evicted.
On the other hand, when the acquired entry full information indicates that the entry is not full, the eviction control circuit 5 sets the value of the eviction instruction signal to “0”. The value “0” of the eviction instruction signal indicates that eviction is unnecessary.

主記憶装置6は、中央処理装置1及びストアバッファ3と接続されている。主記憶装置6は、ストアバッファ3が出力したリクエストに従ってデータの入出力を行う。
ストアバッファ3がロードリクエストを出力した場合、主記憶装置6は、リクエスト内のアドレス情報に従ってロードデータを読み出して中央処理装置1へ出力する。ストアバッファ3がストアリクエストを出力した場合、主記憶装置6は、リクエスト内のアドレス情報に従ってストアデータを保持する。具体的には、主記憶装置6は、主記憶装置6自らの記憶領域のうちリクエスト内のアドレス情報が示す記憶領域にストアデータを記憶する。
The main storage device 6 is connected to the central processing unit 1 and the store buffer 3. The main storage device 6 inputs and outputs data according to the request output from the store buffer 3.
When the store buffer 3 outputs a load request, the main storage device 6 reads the load data according to the address information in the request and outputs it to the central processing unit 1. When the store buffer 3 outputs a store request, the main storage device 6 holds store data according to the address information in the request. Specifically, the main storage device 6 stores the store data in the storage area indicated by the address information in the request among the storage areas of the main storage apparatus 6 itself.

次に、情報処理装置10の動作について説明する。
図9は、ロード時における情報処理装置10の動作の第1例を示す図である。図9は、ロードリクエストが示すアドレスに該当するデータをストアバッファ3が記憶していない場合の例を示している。
図9の処理で、中央処理装置1がロードリクエストを出力し、マージ回路2は、このロードリクエストをそのままストアバッファ3へ転送する(シーケンスS111)。
Next, the operation of the information processing apparatus 10 will be described.
FIG. 9 is a diagram illustrating a first example of the operation of the information processing apparatus 10 during loading. FIG. 9 shows an example where the store buffer 3 does not store data corresponding to the address indicated by the load request.
In the process of FIG. 9, the central processing unit 1 outputs a load request, and the merge circuit 2 transfers this load request as it is to the store buffer 3 (sequence S111).

ロードリクエストを取得したストアバッファ3は、ロードリクエストのアドレスとストアバッファ内のストアリクエストのアドレスとを比較し、ストアデータの追い出し要否を判定する(シーケンスS112)。
図5を参照して説明したように、ストアバッファ3はnウェイ(nは1,2,4,8等の整数)のセットアソシアティブ方式のキャッシュ構成を成している。追い出し要否の判定で、ストアバッファ3は、ロードリクエスト内の中位アドレスを参照してアドレスアレイ301の行を特定し、各ウェイからストアリクエストを読み出す。ストアバッファ3は、読み出したストアリクエストのアドレスがロードリクエスト内の上位アドレスと一致するか否かを判定する。図9の例では、ストアバッファ3は、アドレスが一致せず追い出しは不要であると判定している。
The store buffer 3 that has acquired the load request compares the address of the load request with the address of the store request in the store buffer, and determines whether or not the store data needs to be evicted (sequence S112).
As described with reference to FIG. 5, the store buffer 3 has an n-way (n is an integer such as 1, 2, 4, 8, etc.) set associative cache configuration. When determining whether or not the eviction is necessary, the store buffer 3 refers to the middle address in the load request, identifies the row of the address array 301, and reads the store request from each way. The store buffer 3 determines whether or not the read store request address matches the upper address in the load request. In the example of FIG. 9, the store buffer 3 determines that the addresses do not match and eviction is unnecessary.

追い出し不要と判定したストアバッファ3は、ロードリクエストをそのまま主記憶装置6へ送出する(シーケンスS113)。
主記憶装置6は受け取ったロードリクエスト内のアドレスに対応するロードデータを読み出して中央処理装置1へ出力する(シーケンスS114)。
シーケンスS114の後、図9の処理を終了する。
The store buffer 3 determined not to be purged sends the load request to the main storage device 6 as it is (sequence S113).
The main storage device 6 reads out the load data corresponding to the address in the received load request and outputs it to the central processing unit 1 (sequence S114).
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 information processing apparatus 10 during loading. FIG. 10 shows an example in which the store buffer 3 stores data corresponding to the address indicated by the load request.
The sequence S121 in FIG. 10 is the same as the sequence S111 in FIG.

ロードリクエストを取得したストアバッファ3は、図9のシーケンスS112の場合と同様、ストアデータの追い出し要否を判定する(シーケンスS122)。
図10の例では、ストアバッファ3は、アドレスが一致して追い出しが必要であると判定している。
The store buffer 3 that has acquired the load request determines whether or not the store data should be evicted (sequence S122), as in the case of the sequence S112 in FIG.
In the example of FIG. 10, the store buffer 3 determines that the addresses match and needs to be evicted.

追い出し必要と判定したストアバッファ3は、ロードリクエストをレジスタ305に待避させる(シーケンスS123)。そして、ストアバッファ3は、シーケンスS122で一致すると判定したアドレスのストアリクエスト及びストアデータを読み出して主記憶装置6へ出力する(シーケンスS124)。主記憶装置6は、ストアリクエストに従ってストアデータを記憶する(シーケンスS125)。   The store buffer 3 that has been determined to be evicted saves the load request in the register 305 (sequence S123). Then, the store buffer 3 reads out the store request and store data at the address determined to match in the sequence S122 and outputs them to the main storage device 6 (sequence S124). The main storage device 6 stores the store data according to the store request (sequence S125).

その後、ストアバッファ3は、待避していたロードリクエストを主記憶装置6へ転送する(シーケンスS126)。主記憶装置6は、ロードリクエストに従ってロードデータを読み出し中央処理装置1へ出力する(シーケンスS127)。
このように、ストアバッファ3が主記憶装置6へストアリクエストを出力してストアを実行させた後にロードリクエストを主記憶装置6へ出力することで、ストアリクエストを後続のロードリクエストが追い越すことを抑止することができる。
シーケンスS127の後、図10の処理を終了する。
Thereafter, store buffer 3 transfers the saved load request to main storage device 6 (sequence S126). The main storage device 6 reads the load data in accordance with the load request and outputs it to the central processing unit 1 (sequence S127).
In this way, the store buffer 3 outputs a store request to the main storage device 6 to execute the store, and then outputs the load request to the main storage device 6 to prevent the subsequent load request from overtaking the store request. can do.
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 information processing apparatus 10 when the store buffer 3 stores store data.
In the process of FIG. 11, the central processing unit 1 outputs a store request to the merge circuit 2 (sequence S211).
The merge circuit 2 that has acquired the store request reads out store data in units of lines corresponding to the address indicated by the store request from the store buffer 3 (sequence S212).

そして、マージ回路2は、ストアバッファ3から読み出したライン単位のストアデータに、ストアリクエストのストアデータをマージする(シーケンスS213)。
マージ回路2は、マージされたライン単位のストアデータとアドレスとを併せたストアリクエストをストアバッファ3へ出力する(シーケンスS214)。ストアバッファ3は、マージ回路2からのストアリクエストを、シーケンスS212でストアデータを読み出されたストアリクエストに上書きする(シーケンスS215)。
また、ストアバッファ3は、データを書き込んだ領域に対応する使用履歴フラグの値を「1」にする(シーケンスS216)。
シーケンスS216の後、図11の処理を終了する。
Then, the merge circuit 2 merges the store data of the store request with the store data in units of lines read from the store buffer 3 (sequence S213).
The merge circuit 2 outputs a store request that combines the merged line-unit store data and address to the store buffer 3 (sequence S214). The store buffer 3 overwrites the store request from the merge circuit 2 with the store request from which the store data has been read in sequence S212 (sequence S215).
Further, the store buffer 3 sets the value of the use history flag corresponding to the area where the data is written to “1” (sequence S216).
After sequence S216, the process in FIG. 11 is terminated.

なお、ストアバッファ3がマージ可能なストアデータを記憶していない場合、マージ回路2は、中央処理装置1からのストアデータをライン単位のストアデータに整形する。マージ回路2は、整形したストアデータとアドレスとを併せたストアリクエストをストアバッファ3に記憶させる。そして、ストアバッファ3は、データを書き込んだ領域に対応する使用履歴フラグの値を「1」にする。   If the store buffer 3 does not store store data that can be merged, the merge circuit 2 shapes the store data from the central processing unit 1 into store data in units of lines. The merge circuit 2 stores in the store buffer 3 a store request that combines the shaped store data and the address. Then, the store buffer 3 sets the value of the use history flag corresponding to the area where the data is written to “1”.

図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 information processing apparatus 10 when the store buffer 3 performs a store request eviction process.
In the example of FIG. 12, the store buffer 3 outputs entry information to the entry full detection circuit 4 (sequence S221). The entry full detection circuit 4 determines whether the entry is full based on the entry information from the store buffer 3 (sequence S222). In the example of FIG. 12, the entry full detection circuit 4 detects entry full. That is, the entry full detection circuit 4 determines that the entry is full.

エントリフルと判定したエントリフル検出回路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 eviction control circuit 5 that has acquired the entry full signal performs the eviction determination (sequence S224). In the example of FIG. 12, the eviction control circuit 5 determines that eviction is necessary. The eviction control circuit 5 that has determined that eviction is necessary outputs an eviction instruction signal to the store buffer 3 (sequence S225).

ストアバッファ3は、追い出し指示信号に従ってストアデータの追い出しを行う(シーケンスS226)。ストアバッファ3はストアデータをライン単位で格納しており、追い出し指示信号に従って主記憶装置6へストアデータをライン単位で出力する。
具体的には、ストアバッファ3、ストアリクエスト内の中位アドレスを参照してアドレスアレイ301の行を特定する。ストアバッファ3は、特定された行の各ウェイから読み出したアドレスがストアリクエスト内の上位アドレスと一致するか比較を行う。ストアバッファ3は、データアレイ302から読み出したライン単位のストアデータのうち一致したアドレスに対応するものを出力する。通常は、ストアバッファ3は、ストアリクエストに示される中位アドレス及び上位アドレスに該当するストアデータを読み出す。一方、追い出し指示信号を取得した場合、ストアバッファ3のアドレス差替回路303が追い出し指示信号に示されるアドレスに差し替える。ストアバッファ3は、差し替えられたアドレスに対応するストアデータを読み出す。
The store buffer 3 evoke store data in accordance with the eviction instruction signal (sequence S226). The store buffer 3 stores store data in units of lines, and outputs the store data in units of lines to the main storage device 6 in accordance with the eviction instruction signal.
Specifically, the row of the address array 301 is specified by referring to the middle address in the store buffer 3 and the store request. The store buffer 3 compares whether the address read from each way in the specified row matches the upper address in the store request. The store buffer 3 outputs the data corresponding to the matched address among the line-unit store data read from the data array 302. Normally, the store buffer 3 reads store data corresponding to the middle address and the upper address indicated in the store request. On the other hand, when the eviction instruction signal is acquired, the address replacement circuit 303 of the store buffer 3 replaces the address indicated by the eviction instruction signal. The store buffer 3 reads store data corresponding to the replaced address.

ストアデータの追い出しを行ったストアバッファ3は、データを追い出した領域に対応するリプレースフラグの値を「1」にする(シーケンスS227)。
ストアバッファ3から追い出されたストアリクエストを取得した主記憶装置6は、取得したストアリクエスト内のアドレスに対応する領域に行単位のストアデータを記憶する(シーケンスS228)。
シーケンスS228の後、図12の処理を終了する。
The store buffer 3 that has purged store data sets the value of the replace flag corresponding to the area from which data has been purged to “1” (sequence S227).
The main storage device 6 that has acquired the store request evicted from the store buffer 3 stores the store data in units of rows in the area corresponding to the address in the acquired store request (sequence S228).
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 store buffer 3. For example, the store buffer 3 may evict store requests by FIFO (First-In First-Out). In this case, the store buffer 3 that has received the eviction instruction signal expels the oldest store request among the store requests stored in the row indicated by the eviction instruction signal. The store buffer 3 stores a subsequent store request in an empty area from which the store request has been evicted.

図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 store buffer 3 extends the way of the address array 301 and the data array 302.
In the process of FIG. 13, the way extension instruction circuit 311 reads the use history flag from the use history flag register 309 (sequence S231), and reads the replace flag from the replace flag register 310 (sequence S232).

そして、ウェイ拡張指示回路311は、使用履歴フラグ及びリプレースフラグに基づいて、ウェイを拡張するか否かを決定する(シーケンスS233)。ここでのウェイ拡張は、ウェイの数を増やすことである。ここでのウェイの数は、セットアソシアティブにおける列数に対応しており、ウェイを拡張するすると列数が増加する。図13の例では、ウェイ拡張指示回路311は、ウェイを拡張することに決定している。   Then, the way extension instruction circuit 311 determines whether or not to extend the way based on the use history flag and the replace flag (sequence S233). The way expansion here is to increase the number of ways. The number of ways here corresponds to the number of columns in the set associative, and the number of columns increases when the way is expanded. In the example of FIG. 13, the way expansion instruction circuit 311 has decided to expand the way.

ウェイの拡張をすることに決定したウェイ拡張指示回路311は、ウェイ拡張指示をアレイ制御回路307、308のそれぞれに出力する。
ウェイ拡張指示を受けたアレイ制御回路307及び308は、アドレスアレイ及びデータアレイのウェイを拡張する(シーケンスS235)。
シーケンスS235の後図13の処理を終了する。
The way extension instruction circuit 311 that has decided to extend the way outputs a way extension instruction to each of the array control circuits 307 and 308.
Upon receiving the way expansion instruction, the array control circuits 307 and 308 extend the way of the address array and the data array (sequence S235).
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 address array 301 is in a state before way expansion. In the example of FIG. 14, the number of rows (number of indexes) of the address array 301 is 8, and the number of columns (number of ways) is 4. Since the number of rows and columns of the data array 302 are set to be the same as the number of rows and columns of the address array 301, the data array 302 is also in a state before the way expansion.

図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 store buffer 3 collects the row of the area A11 and the row of the area A12.
For example, when detecting the state of the use history flag and the replace flag shown in FIG. 14, the way expansion instruction circuit 311 generates a way expansion instruction signal and outputs it to the array control circuits 307 and 308. When the array control circuits 307 and 308 obtain the way expansion instruction signal from the way expansion instruction circuit 311, the number of rows (number of indexes) of the address array 301 and the data array 302 is set to 4, and the number of columns (number of ways) is set to 8. To do. Therefore, the array control circuits 307 and 308 treat the ways 0 to 3 of each row in the area A12 as the ways 4 to 7 of each row of the area A11.

図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 address array 301 after way expansion.
In the address array 301 shown in FIG. 15, one row of the area A11 and one row of the area A12 are combined (combined into one row), and the number of ways is doubled. In particular, a line whose replace flag value is “1” and a line whose use history flag value is “0” are combined. The store buffer 3 changes the configuration of the data array 302 in the same manner as the address array.
As the number of ways increases, the address array 301 in the example of FIG. 15 can increase the number of store request storage areas per row, and the number of store request evictions is expected to decrease. .

ストアバッファ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 store buffer 3 Change the number of rows to half and the number of columns to double. As a changing method, for example, a known method such as a method disclosed in JP-A-2005-293300 can be used.
For example, the store buffer 3 includes the first bit of the middle address in the upper address, thereby halving the number of rows in the array and doubling the number of columns.
As described above, the information processing apparatus 10 can improve the use efficiency of the store buffer 3 by reducing the number of ways by using the usage history flag and the replace flag to reduce the number of ways. By improving the use efficiency of the store buffer, the store data can be efficiently compressed, and the access efficiency to the main storage device 6 can be improved.

図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 address array 301 is in a state before way expansion. In the example of FIG. 16, the address array 301 has 8 rows and 4 columns. Since the number of rows and columns of the data array 302 are set to be the same as the number of rows and columns of the address array 301, the data array 302 is also in a state before the way expansion.

図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 store buffer 3 collects the row of the area A21 and the row of the area A22.

図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 address array 301 after way expansion.
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 address array 301 from the state of FIG. 16 to the state of FIG. 17, for example, the determination condition of the way expansion instruction circuit 311 is (1) “1” and
(2) Assume that all other ways in a row are empty. The way expansion instruction circuit 311 outputs a way expansion instruction signal when this condition is satisfied.

ウェイ拡張指示回路311は、ウェイ拡張指示信号と対象インデックス番号とをアレイ制御回路307及び308へ出力する。アレイ制御回路307及び308は、対象インデックスのみウェイの読み変えを行う。
このように、ある1つのインデックスのみウェイ拡張を行うことで、情報処理装置10では、一部の行のみでウェイが不足している場合、及び、一部の行のみで空きがある場合にもウェイ拡張を行い、ストアバッファ3の利用効率を向上させることができる。また、1つの行に纏めた行以外はウェイの数が4のままである点で、行内の領域を検索する負荷が比較的小さくて済む。
The way expansion instruction circuit 311 outputs the way expansion instruction signal and the target index number to the array control circuits 307 and 308. The array control circuits 307 and 308 change the way only for the target index.
In this way, by performing way expansion on only one certain index, the information processing apparatus 10 also has a case where there are a shortage of ways in only some rows and a case where there is a vacancy in only some rows. Way expansion can be performed to improve the utilization efficiency of the store buffer 3. In addition, the number of ways remains other than the lines combined into one line, and the load for searching the area in the line can be relatively small.

以上のように、使用履歴フラグレジスタ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 address array 301 and the data array 302. Indicates whether or not Further, the replace flag in the replace flag register 310 indicates whether or not data has been evicted in each row. The way expansion instruction circuit 311 determines 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. The array control circuits 307 and 308 increase the number of ways when the way expansion instruction circuit 311 determines to increase the number of ways.
Thus, the information processing apparatus 10 can automatically determine whether or not to increase the number of ways with reference to the use history flag and the replace flag. In addition, the information processing apparatus 10 includes the use history flag and the replace flag, so that it is possible to detect a line where the area is insufficient and a line where the area is not used. By combining the lines with insufficient area and the lines where the area is not used into one line, it is possible to increase the hit rate and reduce the number of times data is expelled. Further, the memory access efficiency can be improved by combining the lines having insufficient areas and the lines in which the areas are not used into one line.

また、アレイ制御回路307及び308は、セットアソシアティブ方式の行数(インデックス数)を半分にし、ウェイの数(列数)を2倍にする。これにより、行毎のウェイの数を同数に保つことができる。行毎のウェイの数が同数であることで、アレイ制御回路307及び308は、比較的簡単な処理でアドレスアレイ301及びデータアレイ302を制御することができる。   Further, the array control circuits 307 and 308 halve the number of set associative rows (number of indexes) and double the number of ways (number of columns). Thereby, the number of ways per line can be kept the same. Since the number of ways per row is the same, the array control circuits 307 and 308 can control the address array 301 and the data array 302 with a relatively simple process.

また、アレイ制御回路307及び308は、セットアソシアティブ方式の行のうち、使用履歴フラグが、領域にデータが格納されたことを示す行と、リプレースフラグが、データの追い出しが行われたことを示す行とを1つの行に纏める。
このようにある1つのインデックスのみウェイ拡張を行うことで、情報処理装置10では、一部の行のみでウェイが不足している場合、及び、一部の行のみで空きがある場合にもウェイ拡張を行い、ストアバッファ3の利用効率を向上させることができる。また、1つに纏めた行以外はウェイの数が4のままである点で、行内の領域を検索する負荷が比較的小さくて済む。
In addition, the array control circuits 307 and 308 indicate that the use history flag in the set associative line indicates that the data is stored in the area, and the replace flag indicates that the data has been evicted. Combine lines into a single line.
By performing way expansion on only one index in this way, the information processing apparatus 10 can also execute ways even when there are insufficient ways in only some rows and when there are vacancies in only some rows. The use efficiency of the store buffer 3 can be improved by expanding. In addition, the number of ways remains except for one line, so that the load for searching for an area in the line can be relatively small.

次に、図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 information processing apparatus 20 illustrated in FIG. 18 includes a storage unit 21, a use history flag 22, a replace flag 23, a way expansion instruction unit 24, and a way expansion unit 25.
With this configuration, the storage unit 21 stores data using the set associative method. The usage history flag 22 indicates whether data is stored in at least one of the storage areas included in the row for each set associative method. The replace flag 23 indicates whether or not data has been evicted in each row. The way expansion instruction unit 24 determines whether to increase the number of ways in the set associative method based on the value of the usage history flag 22 and the value of the replace flag 23. The way expansion unit 25 increases the number of ways when the way expansion instruction unit 24 determines to increase the number of ways.

これにより、情報処理装置20では、使用履歴フラグ22及びリプレースフラグ23を参照してウェイの数を増やすか否かを自動的に判定することができる。また、情報処理装置20が、使用履歴フラグ22及びリプレースフラグ23を備えることで、領域が不足している行及び領域が使用されていない行を検出することができる。領域が不足している行と領域が使用されていない行とを1つの行に纏めることで、ヒット率を高めデータの追い出しを行う回数を減らすことができる。また、領域が不足している行と領域が使用されていない行とを1つの行に纏めることで、メモリアクセス効率を高めることができる。   Thereby, the information processing apparatus 20 can automatically determine whether or not to increase the number of ways with reference to the use history flag 22 and the replace flag 23. Further, since the information processing apparatus 20 includes the use history flag 22 and the replace flag 23, it is possible to detect a line where the area is insufficient and a line where the area is not used. By combining the lines with insufficient area and the lines where the area is not used into one line, it is possible to increase the hit rate and reduce the number of times data is expelled. Further, the memory access efficiency can be improved by combining the lines having insufficient areas and the lines in which the areas are not used into one line.

図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 control device 30 illustrated in FIG. 19 includes a way expansion instruction unit 31 and a way expansion unit 32.
With this configuration, the way extension instruction unit 31 stores data in at least one of the storage areas included in the row for each row of the set associative method in the storage unit that stores data in the set associative method. Whether or not to increase the number of ways in the set associative method based on the value of the usage history flag indicating whether or not and the value of the replace flag indicating whether or not data has been evicted in each row. To decide. When the way expansion instruction unit 31 determines to increase the number of ways, the way expansion unit 32 increases the number of ways.

これにより、制御装置30では、使用履歴フラグ及びリプレースフラグ23を参照してウェイの数を増やすか否かを自動的に判定することができる。また、制御装置30が、使用履歴フラグ及びリプレースフラグを参照することで、領域が不足している行及び領域が使用されていない行を検出することができる。領域が不足している行と領域が使用されていない行とを1つの行に纏めることで、ヒット率を高めデータの追い出しを行う回数を減らすことができる。また、領域が不足している行と領域が使用されていない行とを1つの行に纏めることで、メモリアクセス効率を高めることができる。   Thereby, the control device 30 can automatically determine whether or not to increase the number of ways with reference to the use history flag and the replace flag 23. In addition, the control device 30 can detect a line where the area is insufficient and a line where the area is not used by referring to the use history flag and the replace flag. By combining the lines with insufficient area and the lines where the area is not used into one line, it is possible to increase the hit rate and reduce the number of times data is expelled. Further, the memory access efficiency can be improved by combining the lines having insufficient areas and the lines in which the areas are not used into one line.

なお、情報処理装置10及び20と、制御装置30との全部または一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
Note that a program for realizing all or part of the information processing devices 10 and 20 and the control device 30 is recorded on a computer-readable recording medium, and the program recorded on the recording medium is read into a computer system. The processing of each unit may be performed by executing. Here, the “computer system” includes an OS and hardware such as peripheral devices.
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 SYMBOLS 1 Central processing unit 2 Merge circuit 3 Store buffer 4 Entry full detection circuit 5 Ejection control circuit 6 Main memory device 10 Information processing device 201 Shifter 202 Merger 301 Address array 302 Data array 303 Address replacement circuit 304 Address selection circuit 305 Register 306 Entry Selection circuit 307, 308 Array control circuit 309 Usage history flag register 310 Replace flag register 311 Way expansion instruction circuit 401 Register 402 Comparison circuit

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:
前記ウェイ拡張部は、前記セットアソシアティブ方式の行数を半分にし、前記ウェイの数を2倍にする、請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the way extension unit halves the number of rows in the set associative method and doubles the number of ways. 前記ウェイ拡張部は、前記セットアソシアティブ方式の行のうち、前記使用履歴フラグが、前記領域にデータが格納されたことを示す行と、前記リプレースフラグが、前記データの追い出しが行われたことを示す行とを1つの行に纏める、
請求項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.
セットアソシアティブ方式でデータを記憶する記憶部の前記セットアソシアティブ方式の行毎に、前記行に含まれる記憶領域のうち少なくとも1つの領域にデータが格納されたか否かを示す使用履歴フラグの値と、前記行毎に、前記行でデータの追い出しが行われたか否かを示すリプレースフラグの値とに基づいて、前記セットアソシアティブ方式におけるウェイの数を増やすか否かを決定するウェイ拡張指示部と、
前記ウェイ拡張指示部が前記ウェイの数を増やすことに決定した場合、前記ウェイの数を増やすウェイ拡張部と、
を備える制御装置。
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:
セットアソシアティブ方式でデータを記憶する記憶部の前記セットアソシアティブ方式の行毎に、前記行に含まれる記憶領域のうち少なくとも1つの領域にデータが格納されたか否かを示す使用履歴フラグの値と、前記行毎に、前記行でデータの追い出しが行われたか否かを示すリプレースフラグの値とに基づいて、前記セットアソシアティブ方式におけるウェイの数を増やすか否かを決定し、
前記ウェイの数を増やすことに決定した場合、前記ウェイの数を増やす、
制御方法。
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.
JP2017028075A 2017-02-17 2017-02-17 Information processing device, control device, control method, and program Pending JP2018133038A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (10)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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