JP5453500B2 - Store control device, information processing device, and store control method - Google Patents

Store control device, information processing device, and store control method Download PDF

Info

Publication number
JP5453500B2
JP5453500B2 JP2012195637A JP2012195637A JP5453500B2 JP 5453500 B2 JP5453500 B2 JP 5453500B2 JP 2012195637 A JP2012195637 A JP 2012195637A JP 2012195637 A JP2012195637 A JP 2012195637A JP 5453500 B2 JP5453500 B2 JP 5453500B2
Authority
JP
Japan
Prior art keywords
store
way
entry
information
buffer unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012195637A
Other languages
Japanese (ja)
Other versions
JP2014052754A (en
Inventor
孝士 長田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2012195637A priority Critical patent/JP5453500B2/en
Publication of JP2014052754A publication Critical patent/JP2014052754A/en
Application granted granted Critical
Publication of JP5453500B2 publication Critical patent/JP5453500B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ストア制御装置、情報処理装置、および、ストア制御方法に関する。   The present invention relates to a store control device, an information processing device, and a store control method.

ストアバッファの制御に関する技術の一例が特許文献1に記載されている。この技術は、ストアバッファからストアデータを追い出す制御のために、タイマ、ライトバッファに格納されているデータの数を示す回路等を設けている。   An example of a technique related to the control of the store buffer is described in Patent Document 1. This technique is provided with a timer, a circuit indicating the number of data stored in the write buffer, and the like for controlling the storage data to be purged from the store buffer.

特開2012−43202号公報JP 2012-43202 A

上述した特許文献1記載の技術は、タイマ、ライトバッファに格納されているデータの数を示す回路等を設けているため、ライトバッファからストアデータを追い出す制御が複雑であるという課題をもつ。   The technique described in Patent Document 1 described above has a problem that the control for expelling store data from the write buffer is complicated because a timer and a circuit indicating the number of data stored in the write buffer are provided.

本発明の目的は、上記課題を解決したストア制御装置、情報処理装置、および、ストア制御方法を提供することである。   The objective of this invention is providing the store control apparatus, information processing apparatus, and store control method which solved the said subject.

本発明のストア制御装置は、ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数wayを含むストアバッファ部と、前記ストアバッファ部のライン内のすべてのブロックが前記ストアバッファ部内に存在するwayを優先してストアデータを追い出す制御を行うストアバッファ制御部とを含む。   The store control device of the present invention receives a store request accompanied by block-unit store data, stores a store buffer unit including a plurality of ways for storing store data in units of lines including a plurality of blocks, and a line in the store buffer unit. All blocks include a store buffer control unit that performs control for expelling store data in preference to the way existing in the store buffer unit.

本発明のストア制御方法は、ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数wayを含むストアバッファ部に対し、ライン内のすべてのブロックが前記ストアバッファ部内に存在するwayを優先してストアデータを追い出す。   The store control method of the present invention receives a store request accompanied by block-unit store data, and stores all the blocks in a line with respect to a store buffer unit including a plurality of ways for storing store data in units of lines including a plurality of blocks. The store data is expelled giving priority to the way existing in the store buffer section.

本発明の効果は、ライトバッファからストアデータを追い出す制御が簡単になることである。   The effect of the present invention is that the control for expelling store data from the write buffer is simplified.

本発明の第1の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 1st Embodiment of this invention. 本発明の第1の実施の形態の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the 1st Embodiment of this invention. 本発明の第2の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 2nd Embodiment of this invention. ストアバッファ部の構成を示すブロック図である。It is a block diagram which shows the structure of a store buffer part. ストアバッファ部の構成を示すブロック図である。It is a block diagram which shows the structure of a store buffer part. エントリ情報の内容を示す説明図である。It is explanatory drawing which shows the content of entry information. エントリフル検出回路の構成を示すブロック図である。It is a block diagram which shows the structure of an entry full detection circuit. 追い出し制御回路の構成を示すブロック図である。It is a block diagram which shows the structure of a eviction control circuit. 追い出し制御回路の論理を示す説明図である。It is explanatory drawing which shows the logic of a eviction control circuit. マージ回路の構成を示すブロック図である。It is a block diagram which shows the structure of a merge circuit. リクエストの内容を示す説明図である。It is explanatory drawing which shows the content of a request. 本発明の第2の実施の形態の動作を示す概略フローチャートである。It is a schematic flowchart which shows the operation | movement of the 2nd Embodiment of this invention. 追い出し動作の一例を示す説明図である。It is explanatory drawing which shows an example of eviction operation. 本発明の第3の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 3rd Embodiment of this invention. リクエストの内容を示す説明図である。It is explanatory drawing which shows the content of a request. エントリ情報の内容を示す説明図である。It is explanatory drawing which shows the content of entry information. ストアバッファ部の構成を示すブロック図である。It is a block diagram which shows the structure of a store buffer part. ストアバッファ部の構成を示すブロック図である。It is a block diagram which shows the structure of a store buffer part.

次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。図1は、第1の実施の形態の構成を示すブロック図である。図1を参照すると、第1の実施の形態のストア制御装置100は、ストアバッファ部101、および、ストアバッファ制御部102を含む。   Next, a first embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram showing the configuration of the first embodiment. Referring to FIG. 1, the store control apparatus 100 according to the first embodiment includes a store buffer unit 101 and a store buffer control unit 102.

ストアバッファ制御部102は、プロセッサ、および、ストアバッファ部101と接続される。ストアバッファ制御部102は、ストアバッファ部101の制御を行う。ストアバッファ部101は、ストアバッファ制御部102、および、主記憶装置と接続される。ストアバッファ部101は、プロセッサから主記憶装置にストアされる(書き込まれる)ストアデータを一時的に格納する。   The store buffer control unit 102 is connected to the processor and the store buffer unit 101. The store buffer control unit 102 controls the store buffer unit 101. The store buffer unit 101 is connected to the store buffer control unit 102 and the main storage device. The store buffer unit 101 temporarily stores store data stored (written) in the main memory from the processor.

ストアバッファ制御部102は、プロセッサからリクエストによりブロック単位(連続する複数バイト)のストアデータを受け取り、ストアバッファ部101に格納する。また、ストアバッファ制御部102は、ストアバッファ部101からライン単位(連続する複数ブロック)のストアデータを取り出し(追い出し)、主記憶装置へ出力させる。   The store buffer control unit 102 receives store data in units of blocks (a plurality of consecutive bytes) in response to a request from the processor, and stores it in the store buffer unit 101. Further, the store buffer control unit 102 takes out (purges) store data in units of lines (a plurality of continuous blocks) from the store buffer unit 101 and outputs the stored data to the main storage device.

また、ストアバッファ部101のラインに少なくとも1つのブロックが存在する場合に、リクエストによりプロセッサからのそのラインに対応するストアデータ(ブロック単位)を受け取ると、マージして格納する。また、マージが少なくとも1回発生すると、そのラインは、マージ中と呼ぶ。また、ラインのすべてのブロックが存在していると、そのラインは、マージ完了と呼ぶ。   Further, when at least one block exists in a line of the store buffer unit 101, when store data (block unit) corresponding to the line is received from the processor by a request, the data is merged and stored. Also, if merging occurs at least once, the line is called merging. If all the blocks of a line exist, the line is called merge complete.

ストアバッファの方式として、複数のway(ウェイ)を備える方式(たとえば、セットアソシアティブ方式等)が適用される。ここで、各wayに格納される情報の単位をエントリと称する。   As a store buffer system, a system having a plurality of ways (for example, a set associative system) is applied. Here, the unit of information stored in each way is referred to as an entry.

次に、第1の実施の形態の動作について図面を参照して説明する。図2は、第1の実施の形態の動作を示すフローチャートである。図2を参照すると、ストアデータを主記憶装置に追い出す契機が発生すると(ステップS1/Y)、ストアバッファ制御部102は、ライン内のすべてのブロックがストアバッファ部101内に存在する(すなわち、マージ完了の)wayを優先してストアデータを追い出す指示を出力する(ステップS2)。   Next, the operation of the first embodiment will be described with reference to the drawings. FIG. 2 is a flowchart showing the operation of the first embodiment. Referring to FIG. 2, when an opportunity to drive store data to the main storage device occurs (step S1 / Y), the store buffer control unit 102 indicates that all blocks in the line exist in the store buffer unit 101 (that is, An instruction for expelling the store data with priority given to the way of merge completion is output (step S2).

ここで、契機とは、たとえば、ストアバッファ部101のリクエストのアドレス(中位)に対応するすべてのwayのエントリ(ライン)にストアデータが格納されており、新たなストアデータをいずれかのwayのエントリ(ライン)に格納する場合等である。   Here, the trigger is, for example, that store data is stored in all the way entries (lines) corresponding to the address (middle) of the request in the store buffer unit 101, and the new store data is stored in any way. This is the case of storing in the entry (line).

次に、ストアバッファ部101は、ストアバッファ制御部102からの指示にしたがい、ストアデータを追い出して主記憶装置に出力する(ステップS3)。   Next, the store buffer unit 101 evicts the store data and outputs it to the main storage device according to the instruction from the store buffer control unit 102 (step S3).

次に、第1の実施の形態の効果について説明する。   Next, the effect of the first embodiment will be described.

第1の実施の形態は、ライン内のすべてのブロックがストアバッファ部101内に存在する(マージ完了の)wayから優先してストアデータを追い出す構成である。   In the first embodiment, store data is expelled preferentially from a way in which all blocks in a line exist in the store buffer unit 101 (merge completion).

したがって、第1の実施の形態は、たとえば、特許文献1記載の技術のタイマ、ライトバッファに格納されているデータの数を示す回路等が不要となり、追い出しの制御が簡単になるという効果をもつ。   Therefore, the first embodiment has an effect that, for example, the timer of the technique described in Patent Document 1 and a circuit indicating the number of data stored in the write buffer are unnecessary, and the control of the eviction is simplified. .

したがって、また、第1の実施の形態は、たとえば、追い出しアルゴリズムに、LRU(Least Recently Used)を用いる構成に比べて、ハードウェア量が減少するという効果をもつ。   Therefore, the first embodiment has an effect that the amount of hardware is reduced as compared with, for example, a configuration using LRU (Least Recently Used) for the eviction algorithm.

また、第1の実施の形態は、主記憶装置114へのアクセスの回数を減少させ、ストアバッファ部101を効率的に利用できるという効果をもつ。   Further, the first embodiment has an effect that the number of accesses to the main storage device 114 can be reduced and the store buffer unit 101 can be used efficiently.

その理由は、マージ完了のラインには、新たなマージが発生する確率が低いので、マージ完了のラインを追い出し、マージの発生する確率の高いラインをストアバッファ部101に格納する構成をとるからである。   The reason is that the merge completion line has a low probability that a new merge will occur, so the merge completion line is expelled and a line with a high probability of merge is stored in the store buffer unit 101. is there.

次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。図3は、第2の実施の形態の構成を示すブロック図である。図3を参照すると、第2の実施の形態の情報処理装置110は、プロセッサ111、ストア制御装置100、および、主記憶装置114を含む。   Next, a second embodiment of the present invention will be described in detail with reference to the drawings. FIG. 3 is a block diagram showing the configuration of the second embodiment. Referring to FIG. 3, the information processing apparatus 110 according to the second embodiment includes a processor 111, a store control apparatus 100, and a main storage device 114.

ストア制御装置100は、第1の実施の形態のストア制御装置100の一例であり、ストアバッファ部101、および、ストアバッファ制御部102を含む。ストアバッファ制御部102は、マージ回路112、エントリフル検出回路115、および、追い出し制御回路116を含む。   The store control apparatus 100 is an example of the store control apparatus 100 according to the first embodiment, and includes a store buffer unit 101 and a store buffer control unit 102. Store buffer control unit 102 includes merge circuit 112, entry full detection circuit 115, and eviction control circuit 116.

プロセッサ111は、マージ回路112、および、主記憶装置114と接続される。プロセッサ111は、リクエスト(ロード、ストア)、および、主記憶装置114に書き込むためのストアデータをマージ回路112へ出力する。また、プロセッサ111は、主記憶装置114からロードデータ(読み出しデータ)を受け取る。   The processor 111 is connected to the merge circuit 112 and the main storage device 114. The processor 111 outputs a request (load, store) and store data to be written to the main storage device 114 to the merge circuit 112. Further, the processor 111 receives load data (read data) from the main storage device 114.

マージ回路112は、プロセッサ111、および、ストアバッファ部101と接続される。マージ回路112は、プロセッサ111からのリクエスト、および、ストアデータをストアバッファ部101へ出力する。また、マージ回路112は、ストアバッファ部101からのライン単位のストアデータとプロセッサ111からのストアデータとのマージ処理を行いストアバッファ部101へ出力する。   The merge circuit 112 is connected to the processor 111 and the store buffer unit 101. The merge circuit 112 outputs a request from the processor 111 and store data to the store buffer unit 101. In addition, the merge circuit 112 performs a merge process on the store data in units of lines from the store buffer unit 101 and the store data from the processor 111 and outputs the merged data to the store buffer unit 101.

ストアバッファ部101は、マージ回路112、主記憶装置114、エントリフル検出回路115、および、追い出し制御回路116と接続される。ストアバッファ部101は、ロードリクエストのアドレスと、ストアバッファ部101内のストアリクエストのアドレスとを比較し、一致した場合に、対応するストアデータを追い出し(読み出し)、ストアリクエストと共に主記憶装置114へ出力する。   The store buffer unit 101 is connected to the merge circuit 112, the main storage device 114, the entry full detection circuit 115, and the eviction control circuit 116. The store buffer unit 101 compares the address of the load request with the address of the store request in the store buffer unit 101. If they match, the store buffer unit 101 evicts (reads) the corresponding store data and sends it to the main storage device 114 together with the store request. Output.

また、ストアバッファ部101は、ストアデータを読み出してマージ回路112に出力し、マージ回路112の出力であるマージ後のストアデータを元の格納場所(元のエントリ)に格納する。   Further, the store buffer unit 101 reads out the store data, outputs it to the merge circuit 112, and stores the merged store data, which is the output of the merge circuit 112, in the original storage location (original entry).

また、ストアバッファ部101は、エントリ情報(エントリ内の情報)の一部、および、最新way番号をエントリフル検出回路115へ出力し、追い出し制御回路116の指示にしたがいストアデータを主記憶装置114へ出力する。   Further, the store buffer unit 101 outputs a part of entry information (information in the entry) and the latest way number to the entry full detection circuit 115, and stores the store data in accordance with an instruction from the eviction control circuit 116. Output to.

主記憶装置114は、プロセッサ111、および、ストアバッファ部101と接続される。主記憶装置114は、ストアバッファ部101からのリクエストにしたがい、データの読み出し(ロード)、および、書き込み(ストア)を行う。主記憶装置114は、読み出したデータをロードデータとしてプロセッサ111に出力する。   The main storage device 114 is connected to the processor 111 and the store buffer unit 101. The main storage device 114 reads (loads) and writes (stores) data in accordance with a request from the store buffer unit 101. The main storage device 114 outputs the read data to the processor 111 as load data.

エントリフル検出回路115は、ストアバッファ部101、および、追い出し制御回路116と接続される。エントリフル検出回路115は、ストアバッファ部101からエントリ情報の一部を受け取ってエントリフルの判定を行い、エントリフル情報、エントリ情報の一部、および、最新way番号を追い出し制御回路116へ出力する。   The entry full detection circuit 115 is connected to the store buffer unit 101 and the eviction control circuit 116. The entry full detection circuit 115 receives part of the entry information from the store buffer unit 101, determines entry full, and outputs the entry full information, part of the entry information, and the latest way number to the eviction control circuit 116. .

追い出し制御回路116は、ストアバッファ部101、および、エントリフル検出回路115と接続される。追い出し制御回路116は、エントリフル検出回路115からのエントリフル情報とエントリ情報の一部とに基づきストアデータの追い出し判定を行い、追い出し指示、および、追い出しway番号をストアバッファ部101に出力する。   The eviction control circuit 116 is connected to the store buffer unit 101 and the entry full detection circuit 115. The eviction control circuit 116 performs store data eviction determination based on the entry full information from the entry full detection circuit 115 and part of the entry information, and outputs a eviction instruction and an eviction way number to the store buffer unit 101.

次に、ストアバッファ部101の詳細な構成について説明する。図4、図5は、ストアバッファ部101の構成を示すブロック図である。図4、図5において、丸で囲まれた同一の数字の部分は接続される。   Next, a detailed configuration of the store buffer unit 101 will be described. 4 and 5 are block diagrams showing the configuration of the store buffer unit 101. FIG. 4 and 5, the same numeral portions surrounded by a circle are connected.

図4、図5を参照すると、ストアバッファ部101は、アドレスアレイ301、データアレイ302、エントリ選択回路303、エントリ情報更新回路304、レジスタ305、セレクタ306、セレクタ307、セレクタ308、比較回路309、アドレスアレイ制御回路310、および、データアレイ制御回路311を含む。   4 and 5, the store buffer unit 101 includes an address array 301, a data array 302, an entry selection circuit 303, an entry information update circuit 304, a register 305, a selector 306, a selector 307, a selector 308, a comparison circuit 309, An address array control circuit 310 and a data array control circuit 311 are included.

ストアバッファ部101は、マージ回路112からリクエスト、および、ストアデータを、追い出し制御回路116から、追い出し指示、および、追い出しway番号を受け取る。   The store buffer unit 101 receives a request and store data from the merge circuit 112, and a eviction instruction and eviction way number from the eviction control circuit 116.

アドレスアレイ301は、エントリ情報を格納する。図6は、エントリ情報の内容を示す説明図である。図6を参照すると、エントリ情報は、エントリ有効情報、マージ完了情報、マージ中情報、アドレス(上位)、および、有効ブロック情報を含む。   The address array 301 stores entry information. FIG. 6 is an explanatory diagram showing the contents of entry information. Referring to FIG. 6, the entry information includes entry valid information, merge completion information, merging information, an address (upper order), and valid block information.

エントリ有効情報は、当該エントリが有効であるかどうかを示す、すなわち、データアレイ302のエントリに有効なストアデータが存在するかどうかを示す。有効ブロック情報は、当該データアレイ302のラインのうち、有効なブロックを示す。   The entry valid information indicates whether the entry is valid, that is, whether valid store data exists in the entry of the data array 302. The valid block information indicates a valid block among the lines of the data array 302.

マージ中情報は、セットされていると、当該エントリのデータアレイ302内のストアデータにマージが発生したことを示す。マージ完了情報は、セットされていると、当該エントリのデータアレイ302内のラインのすべてのブロックが有効であることを示す。すなわち、当該エントリの有効ブロック情報がすべてのブロックの有効を示す場合に、マージ完了情報が、セットされている。   When the merge information is set, it indicates that merge has occurred in the store data in the data array 302 of the entry. The merge completion information, when set, indicates that all blocks in the line in the data array 302 of the entry are valid. That is, merge completion information is set when the valid block information of the entry indicates the validity of all blocks.

以下の説明において、わかりやすくするために、エントリ有効情報、マージ完了情報、および、マージ中情報は、‘1’にセットされている場合に、それぞれ、エントリが有効、マージが完了、および、マージ中であることを示すとする。   In the following description, for the sake of clarity, when the entry valid information, merge completion information, and merging information are set to “1”, the entry is valid, the merge is completed, and the merge is performed. Let's say that it is in the middle.

また、アドレスアレイ301は、リクエストに含まれるアドレス(中位)(以降、indexと呼ぶ)ごとに最新way番号を格納する。また、アドレスアレイ301は、indexに対応するすべてのwayのエントリ情報の一部、および、最新way番号をエントリフル検出回路115に出力する。最新way番号は、最近に、アクセス(登録、追い出しを伴う格納、マージ)されたwayを示す。   The address array 301 stores the latest way number for each address (middle) (hereinafter referred to as an index) included in the request. Further, the address array 301 outputs a part of the entry information of all the ways corresponding to the index and the latest way number to the entry full detection circuit 115. The latest way number indicates the way that was recently accessed (registered, stored with eviction, merged).

また、アドレスアレイ301は、indexに対応するすべてのwayのエントリ情報をエントリ選択回路303に出力する。また、アドレスアレイ301は、indexに対応するすべてのwayのエントリ情報内のアドレス(上位)、および、エントリ有効情報を比較回路309に出力する。   In addition, the address array 301 outputs all way entry information corresponding to the index to the entry selection circuit 303. Further, the address array 301 outputs addresses (upper ranks) and entry valid information in the entry information of all ways corresponding to the index to the comparison circuit 309.

データアレイ302は、アドレスアレイ301のエントリに対応する格納位置(エントリ)にストアデータを格納する。また、データアレイ302は、indexに対応するすべてのwayのストアデータをセレクタ307、および、セレクタ308に出力する。   The data array 302 stores store data in a storage position (entry) corresponding to the entry of the address array 301. Further, the data array 302 outputs all way store data corresponding to the index to the selector 307 and the selector 308.

比較回路309は、indexに対応するすべてのwayのエントリ情報内のアドレス(上位)と、リクエストに含まれるアドレス上位とを比較し、一致するかどうかを示す比較結果を出力する。なお、比較回路309は、エントリ情報内のエントリ有効情報が有効を示していなければ、比較結果を不一致とする。   The comparison circuit 309 compares the address (upper order) in the entry information of all the ways corresponding to the index and the higher address order included in the request, and outputs a comparison result indicating whether or not they match. Note that the comparison circuit 309 determines that the comparison results do not match unless the entry valid information in the entry information indicates validity.

セレクタ307は、エントリ情報更新回路304の制御にしたがってストアデータを選択し、主記憶装置114に出力する。セレクタ308は、比較回路309からの比較結果にしたがって一致を示すwayのストアデータを選択し、マージ回路112に出力する。   The selector 307 selects store data under the control of the entry information update circuit 304 and outputs it to the main storage device 114. The selector 308 selects way store data indicating a match according to the comparison result from the comparison circuit 309, and outputs it to the merge circuit 112.

エントリ選択回路303は、ロードリクエストの場合には、比較回路309の比較結果にしたがって、追い出すwayのエントリ情報を選択する。また、エントリ選択回路303は、ストアリクエストの場合には、追い出し制御回路116からの追い出し指示、および、追い出しway番号にしたがって、追い出すwayのエントリ情報を選択する。また、エントリ選択回路303は、エントリ情報更新回路304に、エントリ情報、追い出し指示、追い出しway番号等を出力する。   In the case of a load request, the entry selection circuit 303 selects way entry information to be expelled according to the comparison result of the comparison circuit 309. Further, in the case of a store request, the entry selection circuit 303 selects entry information of the way to be ejected according to the eviction instruction from the eviction control circuit 116 and the eviction way number. Further, the entry selection circuit 303 outputs entry information, an eviction instruction, an eviction way number, and the like to the entry information update circuit 304.

エントリ情報更新回路304は、ロードリクエストの場合には、エントリ選択回路303からの追い出し対象のエントリのエントリ情報を更新し、セレクタ307の選択信号を生成する。エントリ情報更新回路304は、ストアリクエストの場合には、比較回路309からの比較結果、エントリ選択回路303からのエントリ情報、および、追い出し指示にしたがって、エントリの登録、マージ、または、追い出しの判定を行い、エントリ情報、および、最新way番号を更新する。また、エントリ情報更新回路304は、セレクタ307の選択信号を生成する。   In the case of a load request, the entry information update circuit 304 updates the entry information of the entry to be evicted from the entry selection circuit 303, and generates a selection signal for the selector 307. In the case of a store request, the entry information update circuit 304 determines entry registration, merging, or eviction according to the comparison result from the comparison circuit 309, the entry information from the entry selection circuit 303, and the eviction instruction. And update the entry information and the latest way number. The entry information update circuit 304 generates a selection signal for the selector 307.

アドレスアレイ制御回路310は、アドレスアレイ301のエントリ情報更新回路304により指定されたwayに対し、更新された(または、新規の)エントリ情報、および、更新された最新way番号を格納する。データアレイ制御回路311は、エントリ情報更新回路304の出力にしたがい、指定されたwayのエントリにストアデータを格納、または、更新する。   The address array control circuit 310 stores the updated (or new) entry information and the updated latest way number for the way specified by the entry information update circuit 304 of the address array 301. The data array control circuit 311 stores or updates the store data in the entry of the designated way according to the output of the entry information update circuit 304.

レジスタ305は、ロードリクエストを一時的に退避(格納)する。セレクタ306は、ロードリクエストによる追い出しが発生した場合に、追い出し対象のエントリ情報を選択し、主記憶装置114に出力し、さらに、レジスタ305から退避されているロードリクエストを主記憶装置114に出力する。   The register 305 temporarily saves (stores) the load request. The selector 306 selects entry information to be evicted and outputs it to the main storage device 114 when the egress by the load request occurs, and further outputs the load request saved from the register 305 to the main storage device 114. .

次に、エントリフル検出回路115の詳細な構成について説明する。図7は、エントリフル検出回路115の構成を示すブロック図である。図7を参照すると、エントリフル検出回路115は、ストアバッファ部101のアドレスアレイ301から、indexに対応する全wayのエントリ情報内のエントリ有効情報、マージ完了情報、および、マージ中情報を受け取る。また、エントリフル検出回路115は、ストアバッファ部101のアドレスアレイ301から、indexに対応する最新way番号を受け取る。   Next, a detailed configuration of the entry full detection circuit 115 will be described. FIG. 7 is a block diagram showing a configuration of the entry full detection circuit 115. Referring to FIG. 7, the entry full detection circuit 115 receives, from the address array 301 of the store buffer unit 101, entry valid information, merge completion information, and merging information in all way entry information corresponding to indexes. Further, the entry full detection circuit 115 receives the latest way number corresponding to the index from the address array 301 of the store buffer unit 101.

エントリフル検出回路115は、論理積回路401により、全wayのエントリ有効情報がすべて有効であることを示すエントリフル情報を生成し、追い出し制御回路116に出力する。また、エントリフル検出回路115は、受け取った全wayのエントリ情報内のマージ完了情報、および、マージ中情報と、最新way番号とを追い出し制御回路116に出力する。   The entry full detection circuit 115 uses the logical product circuit 401 to generate entry full information indicating that all pieces of entry valid information are valid and outputs the entry full information to the eviction control circuit 116. Further, the entry full detection circuit 115 outputs merge completion information, merging information, and latest way number in the received entry information of all ways to the eviction control circuit 116.

次に、追い出し制御回路116の詳細な構成について説明する。図8は、追い出し制御回路116の構成を示すブロック図である。図9は、追い出し制御回路116の論理を示す説明図である。図9において、「−」は、‘0’、‘1’どちらでもよいことを示す。   Next, a detailed configuration of the eviction control circuit 116 will be described. FIG. 8 is a block diagram showing a configuration of the eviction control circuit 116. FIG. 9 is an explanatory diagram showing the logic of the eviction control circuit 116. In FIG. 9, “−” indicates that either “0” or “1” may be used.

図8、図9を参照すると、追い出し制御回路116は、エントリフル検出回路115からエントリフル情報、マージ完了情報(全wayの)、マージ中情報(全wayの)、および、最新way番号を受け取る。追い出し制御回路116は、エンコード回路601、エンコード回路602、エンコード回路603、および、セレクタ604を含む。   8 and 9, the eviction control circuit 116 receives entry full information, merge completion information (for all ways), merging information (for all ways), and the latest way number from the entry full detection circuit 115. . The eviction control circuit 116 includes an encoding circuit 601, an encoding circuit 602, an encoding circuit 603, and a selector 604.

エンコード回路601は、マージ完了情報が、‘1’であるwayのway番号を生成する。ただし、‘1’であるマージ完了情報が複数存在する場合には、最新way番号の次のway番号から順次検索し、マージ完了情報が、‘1’であるwayのway番号を生成する。次のway番号とは、最新way番号に1を加算した番号である。ただし、最新way番号が、最大のway番号(=N)であると、次のway番号は、最小のway番号(=0)である。   The encoding circuit 601 generates the way number of the way whose merge completion information is “1”. However, when there are a plurality of merge completion information of “1”, the search is sequentially performed from the next way number of the latest way number, and the way number of the way whose merge completion information is “1” is generated. The next way number is a number obtained by adding 1 to the latest way number. However, if the latest way number is the maximum way number (= N), the next way number is the minimum way number (= 0).

エンコード回路602は、マージ中情報が、‘1’であるwayのway番号を生成する。ただし、‘1’であるマージ中情報が複数存在する場合には、最新way番号の次のway番号から順次検索し、マージ中情報が、‘1’であるwayのway番号を生成する。   The encoding circuit 602 generates the way number of the way whose merge information is “1”. However, when there are a plurality of information being merged with ‘1’, the search is sequentially performed from the way number next to the latest way number, and a way number with the ‘1’ being merged is generated.

エンコード回路603は、最新way番号の次のway番号を生成する。   The encoding circuit 603 generates a way number next to the latest way number.

セレクタ604は、‘1’であるマージ完了情報が1つでも存在すれば、エンコード回路601からのway番号を、追い出しway番号として選択する。また、セレクタ604は、‘1’であるマージ完了情報が存在せず、‘1’であるマージ中情報が1つでも存在すれば、エンコード回路602からのway番号を、追い出しway番号として選択する。また、セレクタ604は、‘1’であるマージ完了情報も、‘1’であるマージ中情報も存在しない場合に、エンコード回路603からのway番号を、追い出しway番号として選択する。   The selector 604 selects the way number from the encoding circuit 601 as the eviction way number if there is even one merge completion information of “1”. The selector 604 selects the way number from the encoding circuit 602 as the eviction way number if there is no merge completion information of “1” and there is at least one merged information of “1”. . The selector 604 selects the way number from the encoding circuit 603 as the eviction way number when neither the merge completion information “1” nor the merging information “1” exists.

追い出し制御回路116は、ストアバッファ部101に、セレクタ604からの追い出しway番号を出力し、また、エントリフル検出回路115からのエントリフル情報を追い出し指示として出力する。   The eviction control circuit 116 outputs the eviction way number from the selector 604 to the store buffer unit 101, and outputs the entry full information from the entry full detection circuit 115 as an eviction instruction.

次に、マージ回路112の詳細な構成について説明する。図10は、マージ回路112の構成を示すブロック図である。図10を参照すると、マージ回路112は、プロセッサ111からリクエスト、および、ブロック単位のストアデータを受け取り、ストアバッファ部101からライン単位のストアデータを受け取る。   Next, a detailed configuration of the merge circuit 112 will be described. FIG. 10 is a block diagram showing a configuration of the merge circuit 112. Referring to FIG. 10, the merge circuit 112 receives a request and block-unit store data from the processor 111, and receives line-unit store data from the store buffer unit 101.

マージ回路112は、デコード回路510、ブロック単位のセレクタ500、セレクタ501、・・・、および、セレクタ50Nを含む。   The merge circuit 112 includes a decode circuit 510, a block-unit selector 500, a selector 501,..., And a selector 50N.

セレクタ500〜セレクタ50Nは、リクエスト内のアドレス(下位)により示される個数存在する。たとえば、アドレス(下位)が4ビットであれば、ブロック単位のセレクタは16個である。   The number of selectors 500 to 50N is indicated by the address (lower order) in the request. For example, if the address (lower order) is 4 bits, there are 16 selectors in block units.

デコード回路510は、リクエスト内のアドレス(下位)により指定されたブロックのみプロセッサ111からのストアデータを選択し、他のブロックに関しては、ストアバッファ部101からのストアデータを選択する選択信号を生成する。   The decode circuit 510 selects store data from the processor 111 only for the block specified by the address (lower order) in the request, and generates a selection signal for selecting store data from the store buffer unit 101 for the other blocks. .

セレクタ500〜セレクタ50Nは、選択信号にしたがいストアデータを選択する。たとえば、アドレス(下位)=‘0001’とすると、16個のうち、1番目(0オリジン)のセレクタ501のみが、プロセッサ111からのストアデータを選択する。   The selectors 500 to 50N select store data according to the selection signal. For example, if the address (lower order) = '0001', only the first (0 origin) selector 501 out of 16 selects store data from the processor 111.

そして、マージ回路112は、選択したライン単位のストアデータ、および、プロセッサ111からのリクエストをストアバッファ部101に出力する。   Then, the merge circuit 112 outputs the selected line-unit store data and the request from the processor 111 to the store buffer unit 101.

次に、本発明の第2の実施の形態の動作について図面を参照して説明する。説明をわかりやすくするために、以下、1ラインを128[B](バイト)、1ブロックを8[B](バイト)とする。すなわち、1ライン=16ブロックとする。以下の説明において、ストアバッファ部101にラインが存在するとは、そのラインに属する少なくとも1ブロックのストアデータが存在することを意味する。   Next, the operation of the second exemplary embodiment of the present invention will be described with reference to the drawings. In order to make the explanation easy to understand, suppose that one line is 128 [B] (bytes) and one block is 8 [B] (bytes). That is, 1 line = 16 blocks. In the following description, the presence of a line in the store buffer unit 101 means that there is at least one block of store data belonging to the line.

また、ストアバッファ部101は、たとえば、way−0〜way−N(Nは1,3,7等の整数)を持つN+1wayのセットアソシアティブ方式のキャッシュ構成であるとして説明する。   The store buffer unit 101 will be described as having an N + 1 way set associative cache configuration having, for example, way-0 to way-N (N is an integer such as 1, 3, 7, etc.).

ここで、リクエストの詳細について説明する。図11は、リクエストの内容を示す説明図である。図11を参照すると、リクエストは、コマンド、アドレス(上位)、アドレス(中位)、アドレス(下位)、および、優先指定情報を含む。   Here, the details of the request will be described. FIG. 11 is an explanatory diagram showing the contents of a request. Referring to FIG. 11, the request includes a command, an address (upper order), an address (middle order), an address (lower order), and priority designation information.

コマンドは、ロードリクエスト、ストアリクエスト等の種別を示す。アドレス(上位)は、ストアバッファ部101のアドレスアレイ301のエントリ情報の一部となる。アドレス(中位)は、アドレスアレイ301、および、データアレイ302を索引するindexである。   The command indicates a type such as a load request or a store request. The address (upper order) becomes a part of the entry information of the address array 301 of the store buffer unit 101. The address (middle level) is an index that indexes the address array 301 and the data array 302.

アドレス(下位)は、8[B]単位であり、ロード/ストアデータが、ライン内のどのブロックに該当するのかを示す。優先指定情報は、リクエスト内のアドレスで指定されるエントリを優先的に追い出すことを指示する。ストア制御装置100は、ストアリクエストの優先指定情報がオンであると、当該ライン内のブロックがすべて存在するかどうかにかかわらず、エントリフル情報を‘1’にセットする。   The address (lower order) is a unit of 8 [B] and indicates which block in the line the load / store data corresponds to. The priority designation information instructs to preferentially evict the entry designated by the address in the request. When the priority designation information of the store request is ON, the store control apparatus 100 sets the entry full information to “1” regardless of whether all the blocks in the line exist.

図12は、第2の実施の形態の動作を示す概略フローチャートである。図12を参照すると、ストア制御装置100は、ロードリクエストを受け取ると(ステップS11/ロード)、リクエスト内のアドレスに対応するラインがストアバッファ部101に存在するかどうかを調べる(ステップS12)。これは、ブロック単位ではなく、ライン単位の存在を調べる。   FIG. 12 is a schematic flowchart showing the operation of the second embodiment. Referring to FIG. 12, upon receiving a load request (step S11 / load), the store control apparatus 100 checks whether a line corresponding to the address in the request exists in the store buffer unit 101 (step S12). This checks for the existence of line units, not block units.

当該ラインが存在する場合(ステップS12/Y)、ストア制御装置100は、ストアバッファ部101内の当該ラインのストアデータを主記憶装置114に出力し(追い出し)、当該エントリを削除する(ステップS13)。次に、ストア制御装置100は、受け取ったロードリクエストを主記憶装置114に出力する(ステップS14)。   When the line exists (step S12 / Y), the store control device 100 outputs the store data of the line in the store buffer unit 101 to the main storage device 114 (evicts), and deletes the entry (step S13). ). Next, the store control device 100 outputs the received load request to the main storage device 114 (step S14).

当該ラインが存在しない場合(ステップS12/N)、ストア制御装置100は、受け取ったロードリクエストを主記憶装置114に出力する(ステップS14)。   If the line does not exist (step S12 / N), the store control device 100 outputs the received load request to the main storage device 114 (step S14).

ストア制御装置100は、ストアリクエストを受け取ると(ステップS11/ストア)、リクエスト内のアドレスに対応するラインがストアバッファ部101に存在するかどうかを調べる(ステップS15)。   Upon receiving the store request (step S11 / store), the store control apparatus 100 checks whether or not a line corresponding to the address in the request exists in the store buffer unit 101 (step S15).

当該ラインが存在する場合(ステップS15/Y)、ストア制御装置100は、ストアリクエストに付随するストアデータを当該ラインのストアデータとマージしてストアバッファ部101に格納する(ステップS16)。   When the line exists (step S15 / Y), the store control apparatus 100 merges the store data accompanying the store request with the store data of the line and stores it in the store buffer unit 101 (step S16).

当該ラインが存在しない場合(ステップS15/N)、ストア制御装置100は、リクエスト内のアドレス(index)に対応するすべてのwayにラインが存在するか(すなわち、エントリフルか)どうかを調べる(ステップS17)。   When the line does not exist (step S15 / N), the store control apparatus 100 checks whether or not the line exists in all ways corresponding to the address (index) in the request (that is, entry is full) (step S15 / N). S17).

エントリフルでなければ(ステップS17/N)、ストア制御装置100は、空いているwayのエントリにストアデータを格納(登録)する(ステップS18)。   If the entry is not full (step S17 / N), the store control apparatus 100 stores (registers) the store data in an empty way entry (step S18).

エントリフルであると(ステップS17/Y)、ストア制御装置100は、追い出し制御回路116の論理に基づいて、ストアリクエストと共に、1つのwayのエントリのストアデータ(ライン単位)を主記憶装置114に出力する(追い出す)(ステップS19)。次に、ストア制御装置100は、追い出し対象のエントリに受け取ったリクエストに付随するストアデータを格納する(ステップS20)。   If the entry is full (step S17 / Y), the store control device 100 stores the store data (in line units) of one way entry into the main storage device 114 together with the store request based on the logic of the eviction control circuit 116. Output (purge) (step S19). Next, the store control apparatus 100 stores the store data accompanying the received request in the entry to be evicted (step S20).

次に、ロードリクエストに対する動作について、さらに詳細に説明する。   Next, the operation for the load request will be described in more detail.

プロセッサ111からのロードリクエストは、マージ回路112を経由してストアバッファ部101で受け取られる。マージ回路112は、ロードリクエストを、そのままストアバッファ部101に出力する。   A load request from the processor 111 is received by the store buffer unit 101 via the merge circuit 112. The merge circuit 112 outputs the load request to the store buffer unit 101 as it is.

ストアバッファ部101は、ロードリクエスト内のアドレス(中位)(index)によりアドレスアレイ301を索引し、すべてのwayの対応するエントリからエントリ情報を読み出す。次に、ストアバッファ部101は、比較回路309により、読み出したエントリ情報内のアドレス(上位)がロードリクエスト内のアドレス(上位)と一致するかどうかの比較を行う。   The store buffer unit 101 indexes the address array 301 by an address (index) in the load request, and reads entry information from corresponding entries of all ways. Next, the store buffer unit 101 uses the comparison circuit 309 to compare whether the address (upper) in the read entry information matches the address (upper) in the load request.

アドレス(上位)が一致しなければ、ストアバッファ部101は、セレクタ306を経由してロードリクエストをそのまま主記憶装置114に出力する。   If the addresses (upper ranks) do not match, the store buffer unit 101 outputs the load request via the selector 306 to the main storage device 114 as it is.

アドレス(上位)が一致し、かつ、エントリ有効情報が有効を示していると、ストアバッファ部101は、ロードリクエストをレジスタ305に格納(待避)する。   If the addresses (upper ranks) match and the entry valid information indicates valid, the store buffer unit 101 stores (saves) the load request in the register 305.

次に、ストアバッファ部101は、エントリ選択回路303により、比較回路309で一致が検出されたwayのエントリ情報を選択する。   Next, the store buffer unit 101 uses the entry selection circuit 303 to select the entry information of the way whose match is detected by the comparison circuit 309.

また、ストアバッファ部101は、ロードリクエスト内のアドレス(中位)(index)によりデータアレイ302を索引し、すべてのwayの対応するエントリからストアデータを読み出す。そして、ストアバッファ部101は、セレクタ307により、比較回路309で一致が検出されたwayのストアデータを選択する。   Further, the store buffer unit 101 indexes the data array 302 by the address (middle) (index) in the load request, and reads the store data from the corresponding entries of all ways. Then, the store buffer unit 101 uses the selector 307 to select the store data of the way whose match is detected by the comparison circuit 309.

次に、ストアバッファ部101は、ストアコマンドを生成する。ストアバッファ部101は、ストアコマンド、エントリ選択回路303からのエントリ情報内のアドレス(上位)、有効ブロック情報、ロードリクエストからのアドレス(中位)をストアリクエストとして、セレクタ306を経由で主記憶装置114に出力する。また、そのとき、ストアバッファ部101は、セレクタ307からのストアデータ(128[B])を主記憶装置114に出力する。   Next, the store buffer unit 101 generates a store command. The store buffer unit 101 uses the store command, the address (upper) in the entry information from the entry selection circuit 303, the valid block information, and the address (middle) from the load request as a store request via the selector 306 to the main storage device. To 114. At that time, the store buffer unit 101 outputs the store data (128 [B]) from the selector 307 to the main storage device 114.

次に、ストアバッファ部101は、主記憶装置114に出力したエントリ情報をエントリ情報更新回路304により削除する。すなわち、エントリ情報更新回路304は、当該エントリのエントリ情報のエントリ有効情報を無効を示すようにリセットする。そして、当該エントリは、空きとなる。このとき、エントリ情報更新回路304は、最新way番号を更新しない。また、エントリ情報更新回路304は、当該有効ブロック情報をすべてのブロックが無効を示す値にする。   Next, the store buffer unit 101 uses the entry information update circuit 304 to delete the entry information output to the main storage device 114. That is, the entry information update circuit 304 resets the entry valid information of the entry information of the entry so as to indicate invalidity. The entry becomes empty. At this time, the entry information update circuit 304 does not update the latest way number. Further, the entry information update circuit 304 sets the valid block information to a value indicating that all blocks are invalid.

また、ストアバッファ部101は、レジスタ305に格納しておいたロードリクエストをセレクタ306経由で主記憶装置114に出力する。主記憶装置114は受け取ったロードリクエスト内のアドレスに対応するロードデータ(128[B])を読み出してプロセッサ111に出力する。   Further, the store buffer unit 101 outputs the load request stored in the register 305 to the main storage device 114 via the selector 306. The main storage device 114 reads the load data (128 [B]) corresponding to the address in the received load request and outputs it to the processor 111.

次に、ストアリクエストに対する動作について、さらに詳細に説明する。   Next, the operation for the store request will be described in more detail.

まず、リクエストで指定されたラインのストアデータがエントリに存在せず、indexで示されるエントリに空きがある場合について説明する。この場合、追い出し、マージは実施されない。   First, a case where the store data of the line specified by the request does not exist in the entry and the entry indicated by the index has a vacancy will be described. In this case, no eviction or merging is performed.

ストアバッファ制御部102のマージ回路112は、ストアリクエストをそのまま、出力する。また、マージ回路112は、リクエスト内のアドレス(下位)により指定されたブロックのみプロセッサ111からのストアデータを選択し、他のブロックに関しては、ストアバッファ部101からのストアデータを選択し、128[B]として出力する。   The merge circuit 112 of the store buffer control unit 102 outputs the store request as it is. In addition, the merge circuit 112 selects store data from the processor 111 only for the block designated by the address (lower order) in the request, and selects store data from the store buffer unit 101 for other blocks. B].

ストアバッファ部101は、ストアリクエスト内のアドレス(中位)(index)によりアドレスアレイ301を索引し、すべてのwayの対応するエントリからエントリ情報を読み出す。次に、ストアバッファ部101は、比較回路309により、読み出したエントリ情報内のアドレス(上位)がストアリクエスト内のアドレス(上位)と一致するかどうかの比較を行う。   The store buffer unit 101 indexes the address array 301 by an address (index) in the store request and reads entry information from corresponding entries of all ways. Next, the store buffer unit 101 uses the comparison circuit 309 to compare whether the address (upper order) in the read entry information matches the address (upper order) in the store request.

この場合、アドレス(上位)が一致しないので、ストアバッファ部101のエントリ選択回路303は、追い出し制御回路116からの追い出し指示が、追い出しを示しているかどうかを調べる。この場合、追い出し指示は、追い出しを示していない(すなわち、空きエントリが存在する)。したがって、エントリ情報更新回路304は、エントリ選択回路303からの各wayのエントリ有効情報を参照し、ストアデータを格納(登録)するwayを示す格納way番号(空きである)を生成する。   In this case, since the addresses (upper ranks) do not match, the entry selection circuit 303 of the store buffer unit 101 checks whether or not the eviction instruction from the eviction control circuit 116 indicates eviction. In this case, the eviction instruction does not indicate eviction (that is, there is an empty entry). Therefore, the entry information update circuit 304 refers to the entry valid information of each way from the entry selection circuit 303 and generates a storage way number (empty) indicating the way to store (register) the store data.

また、エントリ情報更新回路304は、エントリ有効情報を有効を示す値(‘1’)にし、マージ完了情報をマージ完了でない値(‘0’)に、マージ中情報を、マージ中でない値(‘0’)にする。また、エントリ情報更新回路304は、有効ブロック情報をリクエストからのアドレス(下位)から生成し、格納way番号を最新way番号とする。   Further, the entry information update circuit 304 sets the entry valid information to a value (“1”) indicating validity, the merge completion information to a value that is not merge completion (“0”), and the information that is being merged to a value that is not being merged (“ 0 '). The entry information update circuit 304 generates valid block information from the address (lower order) from the request, and sets the storage way number as the latest way number.

そして、エントリ情報更新回路304は、リクエストからのアドレス(上位)、格納way番号、エントリ有効情報、マージ完了情報、マージ中情報、有効ブロック情報、および、最新way番号を出力する。   Then, the entry information update circuit 304 outputs the address (upper order), the storage way number, the entry valid information, the merge completion information, the merging information, the valid block information, and the latest way number from the request.

アドレスアレイ制御回路310は、エントリ情報更新回路304の出力にしたがい、アドレスアレイ301のindexに対応した最新way番号の更新を行う。また、アドレスアレイ制御回路310は、アドレスアレイ301のindexに対応し、かつ、格納way番号で指定されたwayのエントリに対し、エントリ情報の登録を行う。   The address array control circuit 310 updates the latest way number corresponding to the index of the address array 301 in accordance with the output of the entry information update circuit 304. The address array control circuit 310 registers entry information for the way entry corresponding to the index of the address array 301 and designated by the storage way number.

また、データアレイ制御回路311は、エントリ情報更新回路304の出力にしたがい、アドレスアレイ301のindexに対応し、かつ、格納way番号で指定されたwayのエントリに対し、マージ回路112からのストアデータの登録(格納)を行う。   Further, the data array control circuit 311 stores the store data from the merge circuit 112 for the entry of the way corresponding to the index of the address array 301 and designated by the storage way number in accordance with the output of the entry information update circuit 304. Registration (storage).

なお、ストアリクエスト登録の際に、リクエスト内の優先指定情報が優先を指定する値(‘1’)の場合には、マージ完了情報を‘1’に、マージ中情報を‘0’にして登録する。これにより、追い出し動作の際に、このエントリが優先的に追い出される。   When registering a store request, if the priority designation information in the request is a value ('1') that designates priority, the merge completion information is set to '1' and the merge in progress information is set to '0'. To do. As a result, this entry is preferentially evicted during the evicting operation.

次に、ストアリクエストで指定されたラインのストアデータがエントリに存在する場合について説明する。この場合、追い出しは実施されず、マージは実施される。   Next, a case where the store data of the line specified by the store request exists in the entry will be described. In this case, eviction is not performed and merging is performed.

ストアバッファ制御部102のストアバッファ部101は、ストアリクエスト内のアドレス(中位)(index)によりアドレスアレイ301を索引し、すべてのwayの対応するエントリからエントリ情報を読み出す。次に、ストアバッファ部101は、比較回路309により、読み出したエントリ情報内のアドレス(上位)がストアリクエスト内のアドレス(上位)と一致するかどうかの比較を行う。   The store buffer unit 101 of the store buffer control unit 102 indexes the address array 301 according to the address (middle) (index) in the store request, and reads the entry information from the corresponding entries of all ways. Next, the store buffer unit 101 uses the comparison circuit 309 to compare whether the address (upper order) in the read entry information matches the address (upper order) in the store request.

この場合、アドレス(上位)が一致する。セレクタ308は、比較回路309の出力にしたがい、データアレイ302の一致が検出されたwayからのストアデータを選択し、マージ回路112に出力する。   In this case, the addresses (upper order) match. In accordance with the output of the comparison circuit 309, the selector 308 selects the store data from the way in which the coincidence of the data array 302 is detected, and outputs it to the merge circuit 112.

マージ回路112は、ストアリクエストをそのまま、出力する。また、マージ回路112は、リクエスト内のアドレス(下位)により指定されたブロックのみプロセッサ111からのストアデータを選択し、他のブロックに関しては、セレクタ308からのストアデータを選択し、128[B]として出力する。   The merge circuit 112 outputs the store request as it is. Further, the merge circuit 112 selects store data from the processor 111 only for the block designated by the address (lower order) in the request, and selects store data from the selector 308 for other blocks, and 128 [B]. Output as.

また、エントリ情報更新回路304は、比較回路309の出力にしたがって、アドレス(上位)が一致したwayの番号を格納way番号として生成する。この格納way番号で示されるwayにストアデータが格納(マージ)される。   Further, the entry information update circuit 304 generates, as the storage way number, the number of the way whose address (upper order) matches according to the output of the comparison circuit 309. Store data is stored (merged) in the way indicated by the storage way number.

また、エントリ情報更新回路304は、エントリ有効情報をそのままの値(‘1’)にし、マージ中情報を、マージ中の値(‘1’)にする。エントリ情報更新回路304は、リクエストからのアドレス(下位)から生成した有効ブロック情報をいままでの有効ブロック情報にマージする。   Further, the entry information update circuit 304 sets the entry valid information as it is ('1'), and sets the merging information to the merging value ('1'). The entry information update circuit 304 merges the valid block information generated from the address (lower order) from the request with the valid block information so far.

また、エントリ情報更新回路304は、マージした有効ブロック情報がすべてのブロックの有効を示すと、マージ完了情報をマージ完了の値(‘1’)にする。また、エントリ情報更新回路304は、格納way番号を最新way番号とする。   Further, the entry information update circuit 304 sets the merge completion information to the merge completion value ('1') when the merged effective block information indicates the validity of all the blocks. Further, the entry information update circuit 304 sets the storage way number as the latest way number.

そして、エントリ情報更新回路304は、リクエストからのアドレス(上位)、格納way番号、エントリ有効情報、マージ完了情報、マージ中情報、有効ブロック情報、および、最新way番号を出力する。   Then, the entry information update circuit 304 outputs the address (upper order), the storage way number, the entry valid information, the merge completion information, the merging information, the valid block information, and the latest way number from the request.

アドレスアレイ制御回路310は、エントリ情報更新回路304の出力にしたがい、アドレスアレイ301のindexに対応し、かつ、格納way番号で指定されたwayのエントリに対し、エントリ情報の格納(更新)、および、最新way番号の更新を行う。   The address array control circuit 310 stores (updates) entry information for the entry of the way corresponding to the index of the address array 301 and designated by the storage way number in accordance with the output of the entry information update circuit 304, and The latest way number is updated.

また、データアレイ制御回路311は、エントリ情報更新回路304の出力にしたがい、アドレスアレイ301のindexに対応し、かつ、格納way番号で指定されたwayのエントリに対し、マージ回路112からのストアデータの格納(更新)を行う。   Further, the data array control circuit 311 stores the store data from the merge circuit 112 for the entry of the way corresponding to the index of the address array 301 and designated by the storage way number in accordance with the output of the entry information update circuit 304. Is stored (updated).

なお、リクエスト内の優先指定情報が優先を指定する値(‘1’)の場合には、マージ完了情報を‘1’に、マージ中情報をそのままにして登録する。これにより、追い出し動作の際に、このエントリが優先的に追い出される。   If the priority designation information in the request is a value (“1”) that designates priority, the merge completion information is registered as “1” and the information being merged is left as it is. As a result, this entry is preferentially evicted during the evicting operation.

次に、ストアリクエストで指定されたラインのストアデータがエントリに存在せず、indexで示されるエントリに空きがない場合について説明する。この場合、追い出しが実施され、マージは実施されない。   Next, a case where the store data of the line specified by the store request does not exist in the entry and the entry indicated by the index has no space will be described. In this case, eviction is performed and merging is not performed.

ストアバッファ部101は、ストアリクエスト内のアドレス(中位)(index)によりアドレスアレイ301を索引し、すべてのwayの対応するエントリからエントリ情報を読み出し出力する。   The store buffer unit 101 indexes the address array 301 by an address (index) in the store request, and reads and outputs entry information from corresponding entries of all ways.

ストアバッファ制御部102のエントリフル検出回路115は、ストアバッファ部101のアドレスアレイ301からのエントリ有効情報に基づき、エントリフル情報を生成し出力する。この場合、すべてのwayのエントリ有効情報が有効を示すので、エントリフル情報は、エントリフルを示す。また、エントリフル検出回路115は、マージ完了情報、マージ中情報、および、最新way番号を出力する。   The entry full detection circuit 115 of the store buffer control unit 102 generates and outputs entry full information based on entry valid information from the address array 301 of the store buffer unit 101. In this case, since the entry valid information of all ways indicates validity, the entry full information indicates entry full. The entry full detection circuit 115 outputs merge completion information, merging information, and the latest way number.

次に、ストアバッファ制御部102の追い出し制御回路116は、マージ完了情報、マージ中情報、最新way番号に基づいて、追い出しway番号を生成し出力する。追い出しway番号の生成の論理は、前述の図8、図9の説明のとおりである。   Next, the eviction control circuit 116 of the store buffer control unit 102 generates and outputs an eviction way number based on the merge completion information, the merging information, and the latest way number. The logic for generating the eviction way number is as described above with reference to FIGS.

ここで、追い出し動作の一例について図面を参照して詳細に説明する。図13は、追い出し動作の一例を示す説明図である。図中、マージ未とは、マージ完了でも、マージ中でもないことを示す。   Here, an example of the eviction operation will be described in detail with reference to the drawings. FIG. 13 is an explanatory diagram showing an example of the eviction operation. In the figure, “unmerged” indicates that merging is neither completed nor merged.

図13を参照すると、index=‘00’のエントリに関しては、マージ完了情報が‘1’であるのは、way−0のみである。したがって、way−0のエントリが追い出されるエントリである。   Referring to FIG. 13, for the entry with index = “00”, the merge completion information is “1” only in way-0. Therefore, the entry of way-0 is an entry to be evicted.

また、index=‘01’のエントリに関しては、マージ完了情報が‘1’であるエントリは存在しない。マージ中情報が、‘1’であるエントリは、way−0、way−1、way−3、way−4、way−5、および、way−6の複数存在する。最新way番号は、‘1’であり、way−1を示す。したがって、way−1の次のway−2、way−3と順次検索され、マージ中情報が‘1’であるway−3のエントリが追い出されるエントリとなる。   Further, for the entry with index = “01”, there is no entry whose merge completion information is “1”. There are multiple entries whose information during merge is ‘1’ such as way-0, way-1, way-3, way-4, way-5, and way-6. The latest way number is '1', indicating way-1. Therefore, the search is sequentially performed in the way-2 and way-3 next to the way-1, and the entry of the way-3 whose merge information is “1” becomes an entry to be evicted.

さらに、追い出し制御回路116は、エントリフル情報がエントリフルを示すと、追い出しを指示する追い出し指示を出力する。   Further, when the entry full information indicates entry full, the eviction control circuit 116 outputs an eviction instruction for instructing eviction.

また、ストアバッファ部101は、比較回路309により、読み出したエントリ情報内のアドレス(上位)がストアリクエスト内のアドレス(上位)と一致するかどうかの比較を行う。   Further, the store buffer unit 101 uses the comparison circuit 309 to compare whether the address (upper order) in the read entry information matches the address (upper order) in the store request.

この場合、アドレス(上位)が一致しないので、ストアバッファ部101のエントリ選択回路303は、追い出し制御回路116からの追い出し指示が、追い出しを示しているかどうかを調べる。この場合、追い出し指示は、追い出しを示している(すなわち、空きエントリが存在しない)。   In this case, since the addresses (upper ranks) do not match, the entry selection circuit 303 of the store buffer unit 101 checks whether or not the eviction instruction from the eviction control circuit 116 indicates eviction. In this case, the eviction instruction indicates eviction (that is, there is no empty entry).

そして、エントリ選択回路303は、追い出し制御回路116からの追い出しway番号で指定されたwayのエントリ情報を選択する。   Then, the entry selection circuit 303 selects the entry information of the way specified by the eviction way number from the eviction control circuit 116.

また、ストアバッファ部101は、ロードリクエスト内のアドレス(中位)(index)によりデータアレイ302を索引し、すべてのwayの対応するエントリからストアデータを読み出す。そして、ストアバッファ部101は、セレクタ307により、追い出しway番号で指定されたwayのストアデータを選択する。追い出し制御回路116で生成された追い出しway番号は、エントリ選択回路303を経由し、エントリ情報更新回路304に受け取られる。エントリ情報更新回路304は、この場合、追い出しway番号に基づいてセレクタ307の選択信号を生成する。   Further, the store buffer unit 101 indexes the data array 302 by the address (middle) (index) in the load request, and reads the store data from the corresponding entries of all ways. Then, the store buffer unit 101 uses the selector 307 to select the store data of the way specified by the eviction way number. The eviction way number generated by the eviction control circuit 116 is received by the entry information update circuit 304 via the entry selection circuit 303. In this case, the entry information update circuit 304 generates a selection signal for the selector 307 based on the eviction way number.

次に、ストアバッファ部101は、ストアコマンドを生成する。そして、ストアバッファ部101は、ストアコマンド、エントリ選択回路303からのエントリ情報内のアドレス(上位)、有効ブロック情報、ストアリクエストからのアドレス(中位)をストアリクエストとして、セレクタ306を経由で主記憶装置114に出力する。また、そのとき、ストアバッファ部101は、セレクタ307からのストアデータ(128[B])を主記憶装置114に出力する。   Next, the store buffer unit 101 generates a store command. Then, the store buffer unit 101 uses the store command, the address (upper) in the entry information from the entry selection circuit 303, the valid block information, and the address (middle) from the store request as a store request via the selector 306. The data is output to the storage device 114. At that time, the store buffer unit 101 outputs the store data (128 [B]) from the selector 307 to the main storage device 114.

次に、エントリ情報更新回路304は、エントリ選択回路303からの追い出しway番号を格納way番号として生成する。また、エントリ情報更新回路304は、エントリ有効情報を有効を示す値(‘1’)にし、マージ完了情報をマージ完了でない値(‘0’)に、マージ中情報を、マージ中でない値(‘0’)にする。また、エントリ情報更新回路304は、有効ブロック情報をリクエストからのアドレス(下位)から生成し、格納way番号を最新way番号とする。   Next, the entry information update circuit 304 generates the eviction way number from the entry selection circuit 303 as a storage way number. Further, the entry information update circuit 304 sets the entry valid information to a value (“1”) indicating validity, the merge completion information to a value that is not merge completion (“0”), and the information that is being merged to a value that is not being merged (“ 0 '). The entry information update circuit 304 generates valid block information from the address (lower order) from the request, and sets the storage way number as the latest way number.

そして、エントリ情報更新回路304は、リクエストからのアドレス(上位)、格納way番号、エントリ有効情報、マージ完了情報、マージ中情報、有効ブロック情報、および、最新way番号を出力する。   Then, the entry information update circuit 304 outputs the address (upper order), the storage way number, the entry valid information, the merge completion information, the merging information, the valid block information, and the latest way number from the request.

アドレスアレイ制御回路310は、エントリ情報更新回路304の出力にしたがい、アドレスアレイ301のindexに対応し、かつ、格納way番号で指定されたwayのエントリに対し、エントリ情報の格納、および、最新way番号の更新を行う。   The address array control circuit 310 stores the entry information for the way entry corresponding to the index of the address array 301 and designated by the storage way number, and the latest way according to the output of the entry information update circuit 304. Update the number.

また、データアレイ制御回路311は、エントリ情報更新回路304の出力にしたがい、アドレスアレイ301のindexに対応し、かつ、格納way番号で指定されたwayのエントリに対し、マージ回路112からのストアデータの格納を行う。   Further, the data array control circuit 311 stores the store data from the merge circuit 112 for the entry of the way corresponding to the index of the address array 301 and designated by the storage way number in accordance with the output of the entry information update circuit 304. Store.

なお、リクエスト内の優先指定情報が優先を指定する値(‘1’)の場合には、マージ完了情報を‘1’に、マージ中情報を‘0’にして格納する。   If the priority designation information in the request is a value ('1') that designates priority, the merge completion information is stored as '1' and the information being merged is stored as '0'.

第2の実施の形態においては、パイプライン方式の制御のために、適宜、情報を格納するパイプラインステージ対応のレジスタを設ける構成が可能である。また、ストア制御装置100と主記憶装置114との間にキャッシュを設ける構成が可能である。   In the second embodiment, a configuration corresponding to a pipeline stage for storing information can be appropriately provided for pipeline control. Further, a configuration in which a cache is provided between the store control device 100 and the main storage device 114 is possible.

次に、第2の実施の形態の効果について説明する。   Next, the effect of the second embodiment will be described.

第2の実施の形態は、第1の実施の形態のストア制御装置100を含み、マージ完了情報、マージ中情報、および、最新way番号から追い出しwayを決定する構成である。したがって、第1の実施の形態と同一の効果をもつ。   The second embodiment includes the store control device 100 of the first embodiment, and is configured to determine the eviction way from the merge completion information, the merging information, and the latest way number. Therefore, it has the same effect as the first embodiment.

また、第2の実施の形態は、マージ完了情報、または、マージ完了情報のセットされたwayが複数存在する場合には、最新way番号の次のway番号から順次検索し、マージ完了情報、または、マージ中情報がセットされているwayを追い出し対象のwayとする構成である。したがって、最近アクセスのあったwayが追い出し対象にならない。よって、第2の実施の形態は、後続のリクエストによるマージの可能性が向上し、主記憶装置114に対するストア動作が減少し、性能が向上するという効果をもつ。   In the second embodiment, when there are a plurality of ways in which merge completion information or merge completion information is set, the search is sequentially performed from the next way number of the latest way number, and merge completion information or In this configuration, the way in which the merging information is set is set as the evacuation target way. Therefore, a way that has been accessed recently is not a target for eviction. Therefore, the second embodiment has the effect that the possibility of merging by subsequent requests is improved, the store operation for the main storage device 114 is reduced, and the performance is improved.

次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。図14は、第3の実施の形態の構成を示すブロック図である。   Next, a third embodiment of the present invention will be described in detail with reference to the drawings. FIG. 14 is a block diagram illustrating a configuration of the third embodiment.

図14を参照すると、プロセッサ111は、ストア制御装置100に対し、コア障害情報を出力する。ストア制御装置100のストアバッファ部101は、コア障害情報を受け取る。図15は、リクエストの内容を示す説明図である。図15を参照すると、第3の実施の形態のリクエストは、第2の実施の形態のリクエストにコア番号が追加されている。   Referring to FIG. 14, the processor 111 outputs core failure information to the store control device 100. The store buffer unit 101 of the store control apparatus 100 receives core failure information. FIG. 15 is an explanatory diagram showing the contents of a request. Referring to FIG. 15, in the request of the third embodiment, a core number is added to the request of the second embodiment.

図16は、エントリ情報の内容を示す説明図である。図16を参照すると、第3の実施の形態のエントリ情報は、第2の実施の形態のエントリ情報にコア番号が追加されている。図17、図18は、第3の実施の形態のストアバッファ部101の構成を示すブロック図である。図17、図18において、丸で囲まれた同一の数字の部分は接続される。図17、図18を参照すると、第2の実施の形態に追い出し指示差し替え回路320が追加されている。   FIG. 16 is an explanatory diagram showing the contents of entry information. Referring to FIG. 16, in the entry information of the third embodiment, a core number is added to the entry information of the second embodiment. 17 and 18 are block diagrams illustrating the configuration of the store buffer unit 101 according to the third embodiment. In FIG. 17 and FIG. 18, the same numeral portions surrounded by circles are connected. Referring to FIGS. 17 and 18, a purge instruction replacement circuit 320 is added to the second embodiment.

以下、第2の実施の形態と相異する動作について説明する。   Hereinafter, an operation different from that of the second embodiment will be described.

プロセッサ111は、複数のコアで構成されており、それぞれのコアがリクエストを出力する。それぞれのコアは、リクエストに固有のコア番号を含めて出力する。   The processor 111 is composed of a plurality of cores, and each core outputs a request. Each core outputs a core number unique to the request.

ストア制御装置100は、リクエスト内のコア番号をエントリ情報に含めてストアバッファ部101のアドレスアレイ301に格納する。   The store control device 100 includes the core number in the request in the entry information and stores it in the address array 301 of the store buffer unit 101.

プロセッサ111は、コアに障害が発生すると、コア障害情報に障害が発生したコアを示すコア番号を含めて出力する。ストアバッファ部101は、ストアリクエストにより、追い出しが発生すると、コア障害情報で示されるコア番号を含むエントリを優先して追い出し対象とする。   When a failure occurs in the core, the processor 111 outputs the core failure information including the core number indicating the core in which the failure has occurred. When eviction occurs due to a store request, the store buffer unit 101 preferentially selects an entry including the core number indicated by the core failure information as a eviction target.

詳細には、追い出し指示差し替え回路320は、アドレスアレイ301からのすべてのwayのエントリ情報内のコア番号、プロセッサ111からのコア障害情報を受け取る。そして、追い出し指示差し替え回路320は、追い出し制御回路116から追い出し指示、追い出しway番号を受け取ると、コア障害情報で示されるコア番号とエントリ情報内のコア番号とを比較する。   Specifically, the eviction instruction replacement circuit 320 receives the core number in the entry information of all ways from the address array 301 and the core fault information from the processor 111. Upon receiving the eviction instruction and the eviction way number from the eviction control circuit 116, the eviction instruction replacement circuit 320 compares the core number indicated by the core failure information with the core number in the entry information.

比較で一致した場合、追い出し指示差し替え回路320は、その一致したコア番号を含むエントリ情報を格納しているwayを示す番号を追い出しway番号とする。比較で一致しない場合、追い出し指示差し替え回路320は、追い出し制御回路116からの追い出しway番号を、そのまま、追い出しway番号とする。   If they match in the comparison, the eviction instruction replacement circuit 320 sets the number indicating the way storing the entry information including the matched core number as the eviction way number. If they do not match in the comparison, the eviction instruction replacement circuit 320 sets the eviction way number from the eviction control circuit 116 as the eviction way number as it is.

追い出し指示差し替え回路320は、追い出し指示、および、追い出しway番号をエントリ選択回路303に出力する。以降の動作は、第2の実施の形態と同一である。   The eviction instruction replacement circuit 320 outputs the eviction instruction and the eviction way number to the entry selection circuit 303. Subsequent operations are the same as those in the second embodiment.

次に、第3の実施の形態の効果について説明する。   Next, the effect of the third embodiment will be described.

第3の実施の形態は、第2の実施の形態の構成を含むので、第2の実施の形態と同一の効果をもつ。   Since the third embodiment includes the configuration of the second embodiment, the third embodiment has the same effect as the second embodiment.

また、第3の実施の形態は、障害の発生したコアに対応するストアデータを優先して追い出す構成である。したがって、障害の発生したコアのエントリ情報、ストアデータを長期間、ストアバッファ部101に格納することがなく、ストアバッファ部101を効率的に利用できるという効果をもつ。   In the third embodiment, store data corresponding to a failed core is preferentially driven out. Therefore, the entry information and store data of the failed core are not stored in the store buffer unit 101 for a long time, and the store buffer unit 101 can be used efficiently.

上記の実施の形態の一部、または、全部は、以下の付記のようにも記載されうるが、以下には限られない。   A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

[付記1]
ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数wayを含むストアバッファ部と、
前記ストアバッファ部のライン内のすべてのブロックが前記ストアバッファ部内に存在するwayを優先してストアデータを追い出す制御を行うストアバッファ制御部と、
を含むことを特徴とするストア制御装置。
[Appendix 1]
A store buffer unit including a plurality of ways for receiving a store request with store data in units of blocks and storing the store data in units of lines including a plurality of blocks;
A store buffer control unit for controlling all blocks in the line of the store buffer unit to expel store data in preference to the way existing in the store buffer unit;
A store control device comprising:

[付記2]
前記ストアバッファ部のライン内のすべてのブロックが存在するwayが複数存在する場合、最新way番号の次のway番号から順次検索し、ライン内のすべてのブロックが存在するwayを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする付記1のストア制御装置。
[Appendix 2]
When there are a plurality of ways in which all the blocks in the line of the store buffer section exist, search is performed sequentially from the way number next to the latest way number, and the store data giving priority to the way in which all the blocks in the line exist The store control device according to appendix 1, further comprising the store buffer control unit that performs control to drive out the data.

[付記3]
前記ストアバッファ部のライン内のすべてのブロックが存在するwayが存在しない場合、マージが実施されたブロックが存在するwayを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする付記2のストア制御装置。
[Appendix 3]
Including the store buffer control unit that performs control to expel store data in preference to the way in which the merged block exists when all the blocks in the line of the store buffer unit do not exist. The store control device according to supplementary note 2, which is characterized.

[付記4]
前記ストアバッファ部のライン内のすべてのブロックが存在するwayが存在せず、マージが実施されたブロックが存在するwayが複数存在する場合、最新way番号の次のway番号から順次検索し、マージが実施されたブロックが存在するwayを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする付記3のストア制御装置。
[Appendix 4]
If there is no way in which all the blocks in the line of the store buffer part exist and there are multiple ways in which a merged block exists, the search is sequentially performed from the way number next to the latest way number and merged. The store control apparatus according to appendix 3, including the store buffer control unit that performs control for expelling store data with priority given to a way in which a block in which the block is implemented exists.

[付記5]
優先指定情報を含むストアリクエストを受け取ると、ストアデータを前記ストアバッファ部に格納し、そのストアデータを格納したライン内のすべてのブロックが前記ストアバッファ部内に存在するとして制御を行う前記ストアバッファ制御部を含むことを特徴とする付記4のストア制御装置。
[Appendix 5]
Upon receiving a store request including priority specification information, store data is stored in the store buffer unit, and control is performed so that all the blocks in the line storing the store data exist in the store buffer unit. The store control device according to appendix 4, wherein the store control device includes a section.

[付記6]
コア番号を含むリクエストを受け取ると、コア番号を前記ストアバッファ部に格納し、コア障害情報を受け取ると、コア障害情報に含まれるコア番号と、前記ストアバッファ部内のコア番号の一致を調べ、一致したコア番号を含むwayのストアデータを優先して追い出す制御を行うことを特徴とする付記5のストア制御装置。
[Appendix 6]
When a request including a core number is received, the core number is stored in the store buffer unit, and when core failure information is received, a match between the core number included in the core failure information and the core number in the store buffer unit is checked and matched. The store control apparatus according to appendix 5, wherein the store control of the way including the core number is preferentially driven out.

[付記7]
付記1、2、3、4、5、または、6の前記ストア制御装置と、
ブロック単位のストアデータを伴うストアリクエストを前記ストア制御装置に出力するプロセッサと、
前記ストア制御装置から追い出されたストアデータを格納する主記憶装置と、
を含むことを特徴とする情報処理装置。
[Appendix 7]
Additional store controller according to appendix 1, 2, 3, 4, 5 or 6;
A processor that outputs a store request with store data in units of blocks to the store controller;
A main storage device for storing store data evicted from the store control device;
An information processing apparatus comprising:

[付記8]
ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数wayを含むストアバッファ部に対し、ライン内のすべてのブロックが前記ストアバッファ部内に存在するwayを優先してストアデータを追い出すことを特徴とするストア制御方法。
[Appendix 8]
A store buffer unit that receives a store request with store data in units of blocks and stores the store data in units of lines including a plurality of blocks, and a store buffer unit that includes a plurality of ways, all the blocks in the line exist in the store buffer unit Store control method characterized by expelling store data in preference to

[付記9]
前記ストアバッファ部のライン内のすべてのブロックが存在するwayが複数存在する場合、最新way番号の次のway番号から順次検索し、ライン内のすべてのブロックが存在するwayを優先してストアデータを追い出すことを特徴とする付記8のストア制御方法。
[Appendix 9]
When there are a plurality of ways in which all the blocks in the line of the store buffer section exist, search is performed sequentially from the way number next to the latest way number, and the store data giving priority to the way in which all the blocks in the line exist The store control method according to appendix 8, wherein the store control method is performed.

[付記10]
前記ストアバッファ部のライン内のすべてのブロックが存在するwayが存在しない場合、マージが実施されたブロックが存在するwayから優先してストアデータを追い出すことを特徴とする付記9のストア制御方法。
[Appendix 10]
The store control method according to appendix 9, wherein when there is no way in which all the blocks in the line of the store buffer unit exist, store data is expelled in preference to the way in which the merged block exists.

[付記11]
前記ストアバッファ部のライン内のすべてのブロックが存在するwayが存在せず、マージが実施されたブロックが存在するwayが複数存在する場合、最新way番号の次のway番号から順次検索し、マージが実施されたブロックが存在するwayを優先してストアデータを追い出すことを特徴とする付記10のストア制御方法。
[Appendix 11]
If there is no way in which all the blocks in the line of the store buffer part exist and there are multiple ways in which a merged block exists, the search is sequentially performed from the way number next to the latest way number and merged. The store control method according to appendix 10, wherein the store data is expelled preferentially to the way in which the block in which the block is executed exists.

[付記12]
優先指定情報を含むストアリクエストを受け取ると、ストアデータを前記ストアバッファ部に格納し、そのストアデータを格納したライン内のすべてのブロックが前記ストアバッファ部内に存在するとして処理することを特徴とする付記11のストア制御方法。
[Appendix 12]
When a store request including priority designation information is received, store data is stored in the store buffer unit, and all blocks in a line storing the store data are processed as existing in the store buffer unit. The store control method according to attachment 11.

[付記13]
コア番号を含むリクエストを受け取ると、コア番号を前記ストアバッファ部に格納し、コア障害情報を受け取ると、コア障害情報に含まれるコア番号と、前記ストアバッファ部内のコア番号の一致を調べ、一致したコア番号を含むwayのストアデータを優先して追い出す付記12のストア制御方法。
[Appendix 13]
When a request including a core number is received, the core number is stored in the store buffer unit, and when core failure information is received, a match between the core number included in the core failure information and the core number in the store buffer unit is checked and matched. The store control method according to appendix 12, wherein the way store data including the core number is preferentially driven out.

100 ストア制御装置
101 ストアバッファ部
102 ストアバッファ制御部
110 情報処理装置
111 プロセッサ
112 マージ回路
114 主記憶装置
115 エントリフル検出回路
116 追い出し制御回路
301 アドレスアレイ
302 データアレイ
303 エントリ選択回路
304 エントリ情報更新回路
305 レジスタ
306 セレクタ
307 セレクタ
308 セレクタ
309 比較回路
310 アドレスアレイ制御回路
311 データアレイ制御回路
320 追い出し指示差し替え回路
401 論理積回路
500 セレクタ
501 セレクタ
50N セレクタ
510 デコード回路
601 エンコード回路
602 エンコード回路
603 エンコード回路
604 セレクタ
DESCRIPTION OF SYMBOLS 100 Store control apparatus 101 Store buffer part 102 Store buffer control part 110 Information processing apparatus 111 Processor 112 Merge circuit 114 Main memory 115 Entry full detection circuit 116 Ejection control circuit 301 Address array 302 Data array 303 Entry selection circuit 304 Entry information update circuit 305 register 306 selector 307 selector 308 selector 309 comparison circuit 310 address array control circuit 311 data array control circuit 320 eviction instruction replacement circuit 401 logical product circuit 500 selector 501 selector 50N selector 510 decode circuit 601 encode circuit 602 encode circuit 603 encode circuit 604 selector

Claims (10)

ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数wayを含むストアバッファ部と、
前記ストアバッファ部のライン内のすべてのブロックが前記ストアバッファ部内に存在するwayを優先してストアデータを追い出す制御を行うストアバッファ制御部と、
を含むことを特徴とするストア制御装置。
A store buffer unit including a plurality of ways for receiving a store request with store data in units of blocks and storing the store data in units of lines including a plurality of blocks;
A store buffer control unit for controlling all blocks in the line of the store buffer unit to expel store data in preference to the way existing in the store buffer unit;
A store control device comprising:
前記ストアバッファ部のライン内のすべてのブロックが存在するwayが複数存在する場合、最新way番号の次のway番号から順次検索し、ライン内のすべてのブロックが存在するwayを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする請求項1のストア制御装置。   When there are a plurality of ways in which all the blocks in the line of the store buffer section exist, search is performed sequentially from the way number next to the latest way number, and the store data giving priority to the way in which all the blocks in the line exist The store control device according to claim 1, further comprising the store buffer control unit that performs control to drive out the data. 前記ストアバッファ部のライン内のすべてのブロックが存在するwayが存在しない場合、マージが実施されたブロックが存在するwayを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする請求項2のストア制御装置。   Including the store buffer control unit that performs control to expel store data in preference to the way in which the merged block exists when all the blocks in the line of the store buffer unit do not exist. The store control device according to claim 2, wherein 前記ストアバッファ部のライン内のすべてのブロックが存在するwayが存在せず、マージが実施されたブロックが存在するwayが複数存在する場合、最新way番号の次のway番号から順次検索し、マージが実施されたブロックが存在するwayを優先してストアデータを追い出す制御を行う前記ストアバッファ制御部を含むことを特徴とする請求項3のストア制御装置。   If there is no way in which all the blocks in the line of the store buffer part exist and there are multiple ways in which a merged block exists, the search is sequentially performed from the way number next to the latest way number and merged. 4. The store control apparatus according to claim 3, further comprising: the store buffer control unit that performs control for expelling store data in preference to a way in which a block in which the block is executed is present. 優先指定情報を含むストアリクエストを受け取ると、ストアデータを前記ストアバッファ部に格納し、そのストアデータを格納したライン内のすべてのブロックが前記ストアバッファ部内に存在するとして制御を行う前記ストアバッファ制御部を含むことを特徴とする請求項4のストア制御装置。   Upon receiving a store request including priority specification information, store data is stored in the store buffer unit, and control is performed so that all the blocks in the line storing the store data exist in the store buffer unit. The store control device according to claim 4, further comprising a storage unit. コア番号を含むリクエストを受け取ると、コア番号を前記ストアバッファ部に格納し、コア障害情報を受け取ると、コア障害情報に含まれるコア番号と、前記ストアバッファ部内のコア番号の一致を調べ、一致したコア番号を含むwayのストアデータを優先して追い出す制御を行うことを特徴とする請求項5のストア制御装置。   When a request including a core number is received, the core number is stored in the store buffer unit, and when core failure information is received, a match between the core number included in the core failure information and the core number in the store buffer unit is checked and matched. 6. The store control apparatus according to claim 5, wherein control is performed to preferentially expel way store data including the core number. 請求項1、2、3、4、5、または、6の前記ストア制御装置と、
ブロック単位のストアデータを伴うストアリクエストを前記ストア制御装置に出力するプロセッサと、
前記ストア制御装置から追い出されたストアデータを格納する主記憶装置と、
を含むことを特徴とする情報処理装置。
The store control device according to claim 1, 2, 3, 4, 5, or 6,
A processor that outputs a store request with store data in units of blocks to the store controller;
A main storage device for storing store data evicted from the store control device;
An information processing apparatus comprising:
ブロック単位のストアデータを伴うストアリクエストを受け取り、ストアデータを複数のブロックを含むライン単位で格納する複数wayを含むストアバッファ部に対し、ライン内のすべてのブロックが前記ストアバッファ部内に存在するwayを優先してストアデータを追い出すことを特徴とするストア制御方法。   A store buffer unit that receives a store request with store data in units of blocks and stores the store data in units of lines including a plurality of blocks, and a store buffer unit that includes a plurality of ways, all the blocks in the line exist in the store buffer unit Store control method characterized by expelling store data in preference to 前記ストアバッファ部のライン内のすべてのブロックが存在するwayが複数存在する場合、最新way番号の次のway番号から順次検索し、ライン内のすべてのブロックが存在するwayを優先してストアデータを追い出すことを特徴とする請求項8のストア制御方法。   When there are a plurality of ways in which all the blocks in the line of the store buffer section exist, search is performed sequentially from the way number next to the latest way number, and the store data giving priority to the way in which all the blocks in the line exist The store control method according to claim 8, wherein the store control method is performed. 前記ストアバッファ部のライン内のすべてのブロックが存在するwayが存在しない場合、マージが実施されたブロックが存在するwayから優先してストアデータを追い出すことを特徴とする請求項9のストア制御方法。   10. The store control method according to claim 9, wherein when there is no way in which all the blocks in the line of the store buffer unit exist, store data is expelled in preference to the way in which the merged block exists. .
JP2012195637A 2012-09-06 2012-09-06 Store control device, information processing device, and store control method Active JP5453500B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012195637A JP5453500B2 (en) 2012-09-06 2012-09-06 Store control device, information processing device, and store control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012195637A JP5453500B2 (en) 2012-09-06 2012-09-06 Store control device, information processing device, and store control method

Publications (2)

Publication Number Publication Date
JP2014052754A JP2014052754A (en) 2014-03-20
JP5453500B2 true JP5453500B2 (en) 2014-03-26

Family

ID=50611214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012195637A Active JP5453500B2 (en) 2012-09-06 2012-09-06 Store control device, information processing device, and store control method

Country Status (1)

Country Link
JP (1) JP5453500B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6224684B2 (en) * 2015-12-14 2017-11-01 Necプラットフォームズ株式会社 Store merge apparatus, information processing apparatus, store control method, and computer program
JP7184632B2 (en) 2018-12-25 2022-12-06 ルネサスエレクトロニクス株式会社 semiconductor equipment

Also Published As

Publication number Publication date
JP2014052754A (en) 2014-03-20

Similar Documents

Publication Publication Date Title
US8745334B2 (en) Sectored cache replacement algorithm for reducing memory writebacks
KR102421311B1 (en) Storage circuit responding to tag matching commands
KR100962057B1 (en) Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US7856532B2 (en) Cache logic, data processing apparatus including cache logic, and a method of operating cache logic
TWI533201B (en) Cache control to reduce transaction roll back
US9720847B2 (en) Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed
JP4920378B2 (en) Information processing apparatus and data search method
JP4574712B2 (en) Arithmetic processing apparatus, information processing apparatus and control method
US20110167224A1 (en) Cache memory, memory system, data copying method, and data rewriting method
US7716423B2 (en) Pseudo LRU algorithm for hint-locking during software and hardware address translation cache miss handling modes
US9934152B1 (en) Method and apparatus to use hardware alias detection and management in a virtually indexed physically tagged cache
JP2018005395A (en) Arithmetic processing device, information processing device and method for controlling arithmetic processing device
US20140164712A1 (en) Data processing apparatus and control method thereof
EP2782016A1 (en) Cache memory device, information processing device, and cache memory control method
US20150149728A1 (en) Semiconductor device and operating method thereof
CN115617712A (en) LRU replacement algorithm based on set associative Cache
KR20080089622A (en) Memory access control apparatus and memory access control method
JP4009304B2 (en) Cache memory and cache memory control method
JP5453500B2 (en) Store control device, information processing device, and store control method
JP6468121B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP2010102623A (en) Cache memory and control method therefor
CN111008039B (en) Apparatus and method for providing decoded instruction
JP2014186579A (en) Cache memory, cache memory controller and the cache memory control method thereof
JP3953903B2 (en) Cache memory device and reference history bit error detection method
JP3808837B2 (en) Cache memory system

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140106

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5453500

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350