JPH02236748A - Store buffer - Google Patents

Store buffer

Info

Publication number
JPH02236748A
JPH02236748A JP1059259A JP5925989A JPH02236748A JP H02236748 A JPH02236748 A JP H02236748A JP 1059259 A JP1059259 A JP 1059259A JP 5925989 A JP5925989 A JP 5925989A JP H02236748 A JPH02236748 A JP H02236748A
Authority
JP
Japan
Prior art keywords
store
request
address
output
cache memory
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
JP1059259A
Other languages
Japanese (ja)
Inventor
Hitoshi Takagi
均 高木
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 Corp
Original Assignee
NEC Corp
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 Corp filed Critical NEC Corp
Priority to JP1059259A priority Critical patent/JPH02236748A/en
Publication of JPH02236748A publication Critical patent/JPH02236748A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To improve the throughput of an information processor as a whole by issuing a request to affect a store request in which the fact that no store address in a store buffer is included in a block address is confirmed on a cache memory while performing block loading when mis-caching occurs. CONSTITUTION:When a read request to the cache memory at a state where the store request is held at the entry of the store buffer 33 is issued, a comparison means 16 compares an address relating to the store request held at the entry with the address relating to the read request in block unit. When the mis-caching occurs in the read request, a set means sets a storable display means corresponding to the entry in which the output of the comparison means displays anticoincidence. When data loading from a main storage to the cache memory is performed, a request generating means 32 generates the request to affect the store request on the cache memory. Thereby, it is possible to heighten the performance of the information processor by preventing the residence of the store request in the store buffer for a long time occurring.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置において使用されるキャッシュ・
メモリ装置におけるストア・バッファに関する. 〔従来の技術〕 今日の情報処理装置の多くは、メモリ・アクセスタイム
の向上を図るため、キャッシュ・メモリ装置を採用して
いる.また、そのうち、パイプライン処理方式を採用し
ているものの多くは、ストア要求にかかるアドレスとデ
ータを一時的にキャッシュ・メモリとは独立に保持して
おくストア・バッファと呼ばれる記憶手段を有する.ス
トア・バンファが必要な理由は、一つには、ストア要求
は、メモリ・リード要求よりも低い優先度が与えられて
おり、待ち合わせを行わなければならないこと、もう一
つには、ストア・アドレスの生成とストア・データ作成
の時間的なずれを調整するためである. ストア・バッファに蓄えられたストア要求はメモリ・リ
ード要求の間をぬってキャッシュ・メモリへ反映される
ことになる. もし、後続のメモリ・リード要求が未だキャッシュ・メ
モリへ反映していないストア・バッファ中のストア要求
のデータを必要とする場合、そのメモリ・リード要求に
対するデータとして、キャッシュ・メモリ中の古いデー
タを返すことは避けなければならない.このため、メモ
リ・リード要求゛に応答してキャッシュ・メモリを読み
出す際、そのメモリ・アドレスとストア・バッファ中の
ストア要求のアドレスとを比較し、もし、リード・アド
レスとストア・アドレスの一致を検出したら、リード動
作を一時中止して、ストア・バッファ中のストア要求の
キャッシュ・メモリへの反映を行う.ストア・バッファ
内のキャッシュ・メモリへの反映可能な要求(アドレス
とデータが揃っているストア要求)の処理が終了した時
点で、先のリード要求の処理を再試行し、命令の実行上
の矛盾が生じないように制御する. このように、ストア・バッファ内のストア要求のキャッ
シュ・メモリへの反映は以下の状態にキャッシュ・メモ
リがなった時である. (1)リード要求がない. (2)リード・アドレスとストア・バッファ内にあるス
トア・アドレスが一致した場合。
[Detailed Description of the Invention] [Industrial Application Field] The present invention relates to a cache used in an information processing device.
Concerning store buffers in memory devices. [Prior Art] Many of today's information processing devices employ cache memory devices to improve memory access time. Additionally, many of these that employ a pipeline processing method have a storage means called a store buffer that temporarily holds addresses and data related to store requests, independent of the cache memory. The reason why a store buffer is necessary is that store requests are given a lower priority than memory read requests and must be waited for, and the second reason is that store requests are given lower priority than memory read requests and must be waited for. This is to adjust the time lag between the generation of data and the creation of store data. Store requests stored in the store buffer are reflected in the cache memory between memory read requests. If a subsequent memory read request requires store request data in the store buffer that has not yet been reflected in the cache memory, the old data in the cache memory is used as data for that memory read request. Giving back should be avoided. Therefore, when reading the cache memory in response to a memory read request, the memory address is compared with the address of the store request in the store buffer, and if the read address and store address match, When detected, the read operation is temporarily stopped and the store request in the store buffer is reflected in the cache memory. When processing of a request that can be reflected in the cache memory in the store buffer (a store request for which the address and data are complete) is completed, the processing of the previous read request is retried, and any discrepancies in instruction execution are resolved. control so that this does not occur. In this way, the store request in the store buffer is reflected in the cache memory when the cache memory is in the following state. (1) There is no read request. (2) When the read address and the store address in the store buffer match.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

ところが、今日の情報処理装置では、一つの命令に対し
て、必ず命令の読み出しがあり、少なくとも六割程のオ
ペランド読み出しがあるため、リード要求が無くなると
いうことは殆どなく、ストア・バッファ内のストア要求
は、キャッシュ・メモリへの反映のタイミングをリード
・アドレスとストア・アドレスの比較一致に期待してい
るのが現状である. しかし、ストア・バッファの容量は通常4語乃至16語
程であり、リード・アドレスとストア・アドレスの一致
が長い期間無い場合、この容量一杯にストア要求が格納
されてしまうと、後続のストア命令が実行出来なくなる
.すると、リード要求も無くなってしまい、自然とスト
ア要求のキャッシュ・メモリへの反映が可能な状態とな
る.これは、命令実行の中断を引き起こすのみならず、
命令供給も中断することになる.従って、ストア・バッ
ファ一杯にストア要求が格納されないうちに、そのスト
ア要求を処理し得るようにすることが望まれる. ところで、メモリ・リード要求のアドレスに対する写し
がキャッシュ・メモリ中に存在しない場合(キャッシュ
・ミス)、後続の要求を止めて主記憶装置からキャッシ
ュ・メモリへデータのロード(ブロックロード)を行う
必要がある.この時、後続のリード要求は無いので前記
(1)の条件が成立し、ストア要求のキャッシュ・メモ
リへの反映は可能な筈であるが、ブロックロ一ド中のキ
ャソシュ・メモリのブロックへのストア要求があると、
ストア要求のキャッシュ・メモリへの反映後にブロック
ロードによるキャッシュ・メモリへの書き込みが起こり
、矛盾が生じる可能性がある.このため、従来はブロッ
クロード中にはストア要求のキャッシュ・メモリへの反
映を禁止する制限を設けている.それ故、ストア要求の
処理が一層遅延し、キャッシュ・ミスが多く発生するよ
うな局所性が低いアプリケーションでは特に上述のよう
な命令の実行および取り出しの中断が起こる可能性が高
く、性能低下の一因となっている.本発明はこのような
事情に鑑みて為されたものであり、その目的は、ブロッ
クロード中におけるストア要求のキャッシュ・メモリへ
の反映を可能とすることにより、ストア要求がストア・
バッファに長く留まるのを極力防止して情報処理装置の
性能を高めることにある. 〔問題点を解決するための手段〕 本発明は上記の目的を達成するために、ストア要求を直
ちにキャッシュ・メモリへ反映させず一時バッファリン
グする複数エントリを含むストア・バッファにおいて、
前記ストア・バッファのエントリに保持された各ストア
要求にかかるアドレスと前記キ中ツシェ・メモリへのリ
ード要求にかかるアドレスとを前記キャッシュ・メモリ
において予め定められた語数の管理単位であるブロック
単位で比較する比較手段と、前記リード要求がキャッシ
ュ・ミスを起こした時、前記比較手段の出力が不一致を
表示したエントリに対応するストア可能表示手段をセッ
トするセット手段と、前記キャッシュ・ミスを契機とす
る主記憶から前記キャッシュ・メモリへのデータ・ロー
ドの終了時、前記ストア可能表示手段の全てをリセット
するリセット手段と、主記憶から前記キャツシュ・メモ
リへのデータ・ロード中に、前記ストア可能表示手段が
セットされているエントリのストア要求を前記キャッシ
ュ・メモリへ反映する要求を発生する要求発生手段とを
有している. (作用〕 本発明のストア・バッファにおいては、ストア・バッフ
ァ中のエントリにストア要求が保持された状態でキャッ
シュ・メモリへのリード要求があると、比較手段が、そ
のエントリに保持されたストア要求にかかるアドレスと
そのリード要求にかかるアドレスとをブロック単位で比
較し、前記リード要求がキャッシュ・ミスを起こした場
合にセット手段が、前記比較手段の出力が不一致を表示
したエントリに対応するストア可能表示手段をセットし
、前記キャッシュ・ミスを契機として主記憶からキャッ
シュ・メモリへのデータ・ロードが行われると、要求発
生手段が、ストア可能表示手段がセットされているエン
トリのストア要求をキャッシュ・メモリへ反映する要求
を発生する.また、前記のデータ・ロードが終了すると
、リセット手段がストア可能表示手段の全てをリセット
してストア可能表示手段を初期の状態に戻す.〔実施例
〕 次に、本発明の実施例について図面を参照して詳細に説
明する. 第1図を参照すると、本発明の一実施例のストア・バッ
ファ33は、キャッシュ・ストア・アドレス・バッファ
(以下CSABと称す)1と、キャッシュ・ストア・デ
ータ・バッファ(以下csDBと称す)2と、アドレス
・セット・ポインタ(以下ASと称す)3と、アドレス
・リード・ポインタ(以下ARと称す)4と、データ・
セット・ポインタ(以下DSと称す)5と、データ・リ
ード・ポインタ(以下DRと称す)6七、非危険フラグ
群(以下NHFと称す》7と、要求発生回路(以下RG
と称す)32とを含んでいる.各々、次のような構成お
よび機能を持つ. ・AS3 ストア要求のアドレスを次に格納すべきCSABlのエ
ントリを指すポインタである.・AR4 現在までストア要求の反映が完了したCSABlのエン
トリの次のエントリを指すポインタである. ・CSAB 1 命令処理部から送出されるストア要求のアドレスを保持
する複数のエントリ(本実施例では例えば4個とする)
を有し、この複数のエントリにアドレスを保持すること
によりストア要求のアドレスのバッファリングを行う.
また、各エントリに保持されたアドレスとキャッシュ・
メモリへのリード要求のアドレスとを全ビットおよびブ
ロック単位で比較する比較手段,当該リード要求がキャ
ッシュ・ミスを起こしたことがキャッシュ・ミス信号C
ACMrSで通知された時、前記比較手段の出力が不一
敗を示すエントリに対応するNHF7のフラグに論理値
″1”をセットするセット手段などを有する. 第2図を参照すると、CSAB 1は、AS3の出力を
デコードするデコーダ203,AR4の出力をデコード
するデコーダ204,命令処理部からのストア要求のア
ドレスを一時保持するマスタラッチ群205.4個のラ
ッチから構成されるス.レープラッチ群206,スレー
ブラッチ群206の各ラッチの出力とリード要求アドレ
スとを比較する比較器207〜210,デコーダ204
のデコード結果に応じてスレーブランチ群206の全ラ
ッチの出力から1つの出力を選沢して後述するアドレス
・セレクタ9および主記憶装置へストア要求にかかるア
ドレスを出力するアドレス・セレクタ211,キャッシ
ュ・ミス信号CACM I Sと各比較器207〜21
0の出力とを入力とし、NHFT中の対応するフラグの
セット信号を発生ずるゲート212〜215とを含んで
いる.また第3図を参照すると、各々の比較器207〜
210は、スレーブランチ群206の対応するラッチの
出力に含まれるブロックアドレスとリード要求アドレス
の内のブロックアドレスとを比較する比較器301と、
各々に含まれるブロック内アドレスの比較を行う比較器
302と、比較器301と比較器302の出力の論理積
をとるアンドゲート303で構成されている.ラッチさ
れたストア要求アドレスとリード要求アドレスとのブロ
ックアドレスが等しい場合には比較器301の出力が論
理値“1”となり、これが第2図のゲート212〜21
5に加えられる。また、両アドレスが完全に等しい場合
にはアンドゲート303の出力が論理値“1”となる。
However, in today's information processing devices, there is always an instruction read for each instruction, and at least 60% of the operands are read, so read requests almost never disappear, and the store in the store buffer Currently, the request is reflected in the cache memory based on a comparison between the read address and the store address. However, the capacity of the store buffer is usually about 4 to 16 words, and if the read address and store address do not match for a long period of time, if the store request is stored to the full capacity, the subsequent store command cannot be executed. Then, there will be no more read requests, and it will naturally become possible for store requests to be reflected in the cache memory. This not only causes an interruption in instruction execution, but also
The supply of instructions will also be interrupted. Therefore, it is desirable to be able to process store requests before the store buffer is full. By the way, if a copy of the address of a memory read request does not exist in the cache memory (cache miss), it is necessary to stop subsequent requests and load data from the main memory to the cache memory (block load). be. At this time, since there is no subsequent read request, the condition (1) above is satisfied, and it should be possible to reflect the store request in the cache memory. When a store request is made,
After the store request is reflected in the cache memory, a block load is written to the cache memory, which may cause a conflict. For this reason, conventionally there is a restriction that prohibits store requests from being reflected in cache memory during block loading. Therefore, in low-locality applications where store requests are delayed further and cache misses occur frequently, the above-mentioned instruction execution and retrieval interruptions are likely to occur, leading to performance degradation. This is the cause. The present invention has been made in view of the above circumstances, and its purpose is to enable store requests to be reflected in the cache memory during block loading.
The purpose is to improve the performance of information processing equipment by preventing it from staying in the buffer for as long as possible. [Means for Solving the Problems] In order to achieve the above object, the present invention provides a store buffer including a plurality of entries in which a store request is not immediately reflected in the cache memory but is temporarily buffered.
The address associated with each store request held in the entry of the store buffer and the address associated with the read request to the cache memory are divided into blocks, which are management units of a predetermined number of words, in the cache memory. a comparison means for comparing; a setting means for setting a storable display means corresponding to an entry for which an output of the comparison means indicates a mismatch when the read request causes a cache miss; reset means for resetting all of the storable indication means when loading data from the main memory to the cache memory; and request generation means for generating a request to reflect in the cache memory a store request for an entry to which the means is set. (Operation) In the store buffer of the present invention, when there is a read request to the cache memory while a store request is held in an entry in the store buffer, the comparison means reads the store request held in the entry. and the address related to the read request in block units, and when the read request causes a cache miss, the setting means can store the entry corresponding to the entry for which the output of the comparing means indicates a mismatch. When the display means is set and data is loaded from the main memory to the cache memory triggered by the cache miss, the request generation means caches the store request for the entry for which the store possible display means is set. A request to reflect the data to the memory is generated.Furthermore, when the data loading is completed, the reset means resets all of the storable display means and returns the storable display means to the initial state.[Example] Next , an embodiment of the present invention will be described in detail with reference to the drawings. Referring to FIG. 1, the store buffer 33 of one embodiment of the present invention is a cache store address buffer (hereinafter referred to as CSAB). 1, a cache store data buffer (hereinafter referred to as csDB) 2, an address set pointer (hereinafter referred to as AS) 3, an address read pointer (hereinafter referred to as AR) 4, and a data
A set pointer (hereinafter referred to as DS) 5, a data read pointer (hereinafter referred to as DR) 6, a non-hazardous flag group (hereinafter referred to as NHF) 7, and a request generation circuit (hereinafter referred to as RG).
32). Each has the following configuration and functions. - This is a pointer that points to the entry in CSABl where the address of the AS3 store request should be stored next. - AR4 This is a pointer pointing to the next entry of the CSABl entry for which the store request has been reflected up to now.・CSAB 1 Multiple entries (for example, 4 entries in this embodiment) that hold addresses of store requests sent from the instruction processing unit
The address of the store request is buffered by holding the address in these multiple entries.
Also, the address and cache information held in each entry are
A comparison means that compares the address of a read request to memory in all bits and block units, and a cache miss signal C indicates that the read request has caused a cache miss.
It has a setting means for setting a logical value "1" to a flag of NHF7 corresponding to an entry indicating that the output of the comparison means is undefeated when notified by ACMrS. Referring to FIG. 2, CSAB 1 includes a decoder 203 that decodes the output of AS3, a decoder 204 that decodes the output of AR4, and a master latch group 205.4 latches that temporarily holds the address of a store request from the instruction processing unit. consisting of s. Comparators 207 to 210 and a decoder 204 that compare the output of each latch of the slave latch group 206 and the slave latch group 206 with the read request address
An address selector 211 selects one output from all the latches of the slave branch group 206 according to the decoding result and outputs the address associated with the store request to the address selector 9 and the main memory, which will be described later. Miss signal CACMIS and each comparator 207 to 21
It includes gates 212 to 215 which take the output of 0 as input and generate a signal to set the corresponding flag in the NHFT. Also, referring to FIG. 3, each comparator 207 to
210 is a comparator 301 that compares the block address included in the output of the corresponding latch of the slave branch group 206 and the block address among the read request addresses;
It consists of a comparator 302 that compares addresses within each block included in each block, and an AND gate 303 that takes the AND of the outputs of the comparators 301 and 302. When the block addresses of the latched store request address and read request address are equal, the output of the comparator 301 becomes a logical value "1", which is applied to the gates 212 to 21 in FIG.
Added to 5. Further, when both addresses are completely equal, the output of the AND gate 303 becomes a logical value "1".

このアンドゲート303の出力は“ストア・チェック゛
に利用される.再び、第1図に戻って、ストア・バッフ
ァ33中の残りの要素を説明する。
The output of this AND gate 303 is used for "store check". Returning to FIG. 1 again, the remaining elements in the store buffer 33 will be explained.

・NHF7 CSAB l中のエントリに1対lで対応するフラグを
含む.各フラグには、CSABIの対応するエントリに
保持されたアドレスとリード要求アドレスとが同一ブロ
ックでないとき、キャッシュ・ミスのタイミングで第2
図のゲート212〜215の出力により論理値“1”が
セットされる。
・Contains flags that correspond to entries in NHF7 CSAB 1 on a one-to-one basis. Each flag contains a second flag at the timing of a cache miss when the address held in the corresponding entry in CSABI and the read request address are not in the same block.
A logic value "1" is set by the outputs of the gates 212 to 215 in the figure.

また、キャッシュ・ミスを契機として実行されるブロッ
クロードの最後のリプライ(LRPLY)でNHF7の
全フラグはリセットされる。なお、第2図を参照すると
、NHF7は、各エントリ対応のフラグ群7゛と、デコ
ーダ204の出力に従ってフラグ群7′の全フラグの出
力から1つを選択してNHFoutとして出力するセレ
クタ222とで構成されている. ・CSDB2 命令処理部から送出されるストア要求のデータを保持す
る複数のエントリ(本実施例では4個)を有し、この複
数のエントリにデータを保持することによりストア要求
のデータのバッファリングを行う. ・DS5 ストア要求のデータを次に格納すべきCSDB2のエン
トリを指すポインタである. ・DR6 現在までストア要求の反映が完了したCSDB2のエン
トリの次のエントリを指すポインタである。
Further, all flags of the NHF7 are reset at the last reply (LRPLY) of a block load executed in response to a cache miss. Note that, referring to FIG. 2, the NHF 7 has a flag group 7' corresponding to each entry, and a selector 222 that selects one from the output of all flags of the flag group 7' according to the output of the decoder 204 and outputs it as NHFout. It is made up of.・CSDB2 Has multiple entries (four in this embodiment) that hold the data of store requests sent from the instruction processing unit, and buffers the data of store requests by holding data in these multiple entries. conduct. - DS5 This is a pointer to the entry in CSDB2 where the store request data should be stored next. - DR6 This is a pointer pointing to the next entry of the CSDB2 entry for which the store request has been reflected up to now.

・RG32 DS5の出力,AR4の出力,ブロックロ一ド中か否か
を示すブロックロード中信号OBLおよびNHF7の出
力NHFoutを入力とし、ストア要求ST,REQお
よびストア終了信号ST,ENDを発生する.特に、本
実施例では主記憶からキャッシュ・メモリへのデータ・
ロード中に、論理値“1″を表示しているNHF7のフ
ラグがあれば、そのフラグ対応のCSAB 1のエント
リのストア要求をキャッシュ・メモリへ反映する為にス
トア・リクエストST.REQが出される。通常のスト
ア要求とブロックロード中のストア要求を発する、この
RG32の構成例を第4図に示す。
- RG32 Inputs the output of DS5, the output of AR4, the block loading signal OBL indicating whether or not a block is being loaded, and the output NHFout of NHF7, and generates store requests ST, REQ and store end signals ST, END. In particular, in this embodiment, data is transferred from main memory to cache memory.
During loading, if there is a flag of NHF7 displaying the logical value "1", a store request ST. REQ is issued. FIG. 4 shows an example of the configuration of this RG 32, which issues a normal store request and a store request during block loading.

第4図においては、AR4の出力値とDS5の出力値と
を比較する比較器40l.ブロックロード中信号OBL
を抑止入力とし、非ブロックロード中に比較器401が
AR<DSを検出したときゲ−ト404を介してストア
要求ST.REQを発生するゲー}402,比較器40
1がAR<DSを検出したとき第1図のNHF7の出力
NHFoutが″1″の期間、ストア要求ST,REQ
をゲート404を介して発生するゲート403で構成さ
れる.なお、比較器401がAR−DSを検出すると、
ストア終了信号ST,ENDが発生される.再び第1図
を参照すると、ストア・バンファ33以外の第1図に示
される部分はキャッシュ・メモリ装置の他の構成要素で
ある.すなわち他の構成要素として、ステータス・セレ
クタ(以下SAXと称す)8,アドレス・セレクタ(以
下AAXと称す)9.データ・セレクタ(以下DAX,
DCXと称す)10,30.ステータス・レジスタ(以
下SAR,SBR,SCRと称す)11.1B,26.
アドレス・レジスタ(以下AAR,ABR,ACRと称
す)12.19.27.データ・レジスタ(以下DAR
,DBR,DCRと称す)13,21.2B,プライオ
ア・デコーダ(以下PRIOR,DECと称す)14.
アドレス部AADおよび有効ビット部Vから構成される
アドレス・アレイ(以下AAと称す)l5,比較器16
,ANDゲート17.23,24,  ヒット・レジス
タ(以下AHRと称す)20,ステータス・デコーダ(
以下SDECと称す)22.データ・アレイ(以下DA
と称す)25,デコーダ29.31(以下RDECと称
す)が、当該キャッシュ・メモリ装置に含まれている.
各々は次のような構成および機能を有する. ・ SAX8 RDEC3 1からのAA更新要求,ストア・バッファ
33からのストア要求ST.REQ,ストア終了信号S
T.END.命令処理部からのリード要求,主記憶装置
からのブロックロ一ド要求にかかる各ステータスを入力
とし、PRIOR,DEC14から出力される選択信号
SELO〜SEL3に従ってその1つを選択して出力す
る。
In FIG. 4, a comparator 40l. which compares the output value of AR4 and the output value of DS5. Block loading signal OBL
is set as an inhibit input, and when the comparator 401 detects AR<DS during non-block loading, a store request ST. game that generates REQ}402, comparator 40
1 detects AR<DS, the store requests ST, REQ are executed while the output NHFout of NHF7 in FIG. 1 is "1".
A gate 403 generates a signal through a gate 404. Note that when the comparator 401 detects AR-DS,
Store end signals ST and END are generated. Referring again to FIG. 1, the parts shown in FIG. 1 other than the store buffer 33 are other components of the cache memory device. That is, other components include a status selector (hereinafter referred to as SAX) 8, an address selector (hereinafter referred to as AAX) 9. Data selector (hereinafter referred to as DAX)
(referred to as DCX)10,30. Status register (hereinafter referred to as SAR, SBR, SCR) 11.1B, 26.
Address register (hereinafter referred to as AAR, ABR, ACR) 12.19.27. Data register (hereinafter referred to as DAR)
, DBR, DCR) 13, 21.2B, Prior decoder (hereinafter referred to as PRIOR, DEC) 14.
Address array (hereinafter referred to as AA) 15 consisting of address section AAD and valid bit section V, comparator 16
, AND gates 17, 23, 24, hit register (hereinafter referred to as AHR) 20, status decoder (
(hereinafter referred to as SDEC)22. Data array (hereinafter referred to as DA)
) 25 and decoder 29.31 (hereinafter referred to as RDEC) are included in the cache memory device.
Each has the following configuration and functions. - AA update request from SAX8 RDEC3 1, store request ST. from store buffer 33. REQ, store end signal S
T. END. Each status related to a read request from the instruction processing section and a block load request from the main memory is input, and one of them is selected and output according to selection signals SELO to SEL3 output from PRIOR and DEC14.

・AAX 9 ACR27からのAA更新アドレス.ストア・バッファ
33からのストア要求アドレス.命令処理部からのリー
ド要求アドレス,主記憶装置からのブロックロード・ア
ドレスを入力とし、選択信号SELO〜SEL3に従っ
てその1つを選択して出力する. ・DAX 1 0 ストア・バッファ33からのストア・データ,主記憶装
置からのロード・データを人力とし、選択信号SELI
,SEL3に従ってその1つを選択して出力する. ・ SARII SAX8の出力を保持するレジスタ ・AAR 1 2 AAX9の出力を保持するレジスタ ・DAR 1 3 DAX1 0の出力を保持するレジスタ・PRIOR,
DECl4 STBHIT信号,RD.REQ信号, MM.REQ
信号,ST.REQ信号,OBL信号.UPD.REQ
信号,RSM,REQ信号を入力とし、SAX8,AA
X9,DAXIOに選択信号SELO〜SEL3を出力
する.第5図にPRIOR.DEC14の構成例を示す
.なお、第5図において、RSM.REQ信号はストア
・バッファ・ヒットでストア・バッファ内のストア要求
が掃出された後、SCR26,ACR27に待たされて
いたリクエストを再開する為のリクエストであり、RD
EC3 1で生成される.また、MM.REQ信号はブ
ロックロード時に主記憶から読出したデータをDA25
に書くためのリクエストであり、図示しない主記憶アク
セス制御部から加えられる. ・AA15 アドレス部AADと有効ビット部■とで構成され、AA
R 1 2に保持されたアドレスの下位(ブロック内ア
ドレス)をアドレス入力とし、その上位(ブロックアド
レス)をアドレス部AADのデータ入力とし、SARI
Iの出力におけるAA更新要求信号UPDATEを有効
ビット部Vのデータ入力並びにライトイネーブルWEと
する.・比較器l6 AAR 1 2に保持されたアドレスの上位(ブロック
アドレス)とAA15のアドレス部AADの出力Dou
t(ブロックアドレスのコピー)との一致を検出する. ・アンドゲートl7 比較器l6の出力とAA15の有効ビット部Vの出力と
の論理積をとる. ・SBR1B SARIIの出力を保持するレジスタ ・ABR19 AAR 1 2の出力を保持するレジスタ・AHR20 アンドゲート17の出力を保持するレジスタ・DBR2
1 DAR 1 3の出力を保持するレジスタ・SDEC2
 2 SBR l Bの出力およびAHR20の出力(CAC
HIT)を入力とするデコーダ ・アンドゲート23 SBR 1 8の出力におけるLoad信号とAHR2
0の出力との論理積をとり、DA25のライトイネーブ
ル信号を生成する。
- AA update address from AAX 9 ACR27. Store request address from store buffer 33. The read request address from the instruction processing section and the block load address from the main memory are input, and one of them is selected and output according to selection signals SELO to SEL3.・DAX 1 0 Store data from the store buffer 33 and load data from the main storage device are manually input, and the selection signal SELI
, select one of them according to SEL3 and output it. - Register that holds the output of SARII SAX8 - Register that holds the output of AAR 1 2 AAX9 - Register that holds the output of DAR 1 3 DAX1 0 - PRIOR,
DECl4 STBHIT signal, RD. REQ signal, MM. REQ
Signal, ST. REQ signal, OBL signal. UPD. REQ
signal, RSM, REQ signal as input, SAX8, AA
Output selection signals SELO to SEL3 to X9 and DAXIO. Figure 5 shows PRIOR. An example of the configuration of DEC14 is shown below. In addition, in FIG. 5, RSM. The REQ signal is a request to restart the request that was kept waiting in the SCR 26 and ACR 27 after the store request in the store buffer is purged due to a store buffer hit.
Generated by EC3 1. Also, MM. The REQ signal sends data read from the main memory to the DA25 when loading a block.
This is a request to write to a file, and is added from the main memory access control unit (not shown).・AA15 Consists of an address part AAD and a valid bit part ■.
The lower part of the address held in R12 (intra-block address) is used as the address input, the higher part (block address) is used as the data input of the address section AAD, and the SARI
The AA update request signal UPDATE at the output of I is used as the data input of the valid bit section V and the write enable WE.・The upper address (block address) held in the comparator l6 AAR 1 2 and the output Dou of the address section AAD of AA15
Detects a match with t (copy of block address).・AND gate l7 Performs the AND of the output of the comparator l6 and the output of the valid bit section V of AA15.・SBR1B Register that holds the output of SARII ・ABR19 Register that holds the output of AAR 1 2 ・AHR20 Register that holds the output of AND gate 17 ・DBR2
1 Register/SDEC2 that holds the output of DAR 1 3
2 SBR l B output and AHR20 output (CAC
The Load signal at the output of the decoder and gate 23 SBR 1 8 which inputs HIT) and AHR2
A logical product is performed with the output of 0 to generate a write enable signal for the DA25.

・アンドゲート24 SBR1 8の出力におけるRead信号とAHR20
の出力との論理積をとり、DCX30の1つの選択信号
を生成する. ・DA25 DBR2 1の出力をデータ入力とし、ABRI9の下
位アドレス(ブロック内アドレス)をアドレス入力とし
、アンドゲート23の出力をライトイネーブルとするレ
ジスタの集まりである。なお、このDA25とAA15
とでキャッシュ・メモリの主要部が構成され、本実施例
の場合、その方式はダイレクト・マッピング方式である
・Read signal at the output of AND gate 24 SBR1 8 and AHR20
, and generates one selection signal for DCX30.・DA25 DBR2 This is a group of registers that uses the output of 1 as a data input, the lower address (intra-block address) of ABRI9 as an address input, and the output of the AND gate 23 as a write enable. In addition, this DA25 and AA15
This constitutes the main part of the cache memory, and in the case of this embodiment, the method is a direct mapping method.

・SCR26 SDEC22の出力を保持するレジスタ。その出力は、
命令処理部または主記憶装置,デコーダ29.31へ送
出される. ・ACR27 ABR19の出力を保持し、主記憶装置あるいはAAX
9へ出力するレジスタ ・DCX30 DA25の出力およびDBR21の出力を入力とし、ア
ンドゲート24の出力およびSBR 1 8の出力にお
けるFirst  Reply信号に従って1つの入力
を選択して出力する. ・DCR28 DCX30の出力を保持し、命令処理部へ出力するレジ
スタ ・デコーダ29 SCR26の出力をデコードして、OBL信号,STB
HIT信号,LRPLY信号を生成する.・デコーダ3
1 SCR26の出力をデコードして、AA更新要求をSA
X8に出力する. 次に、本実施例の動作を、各場合に分けて以下説明する
. rリード動作1 命令処理部からのリード要求については、メモリ・リー
ド要求であるステータスがSAX8を通じてSARII
に送り込まれる.同時に要求アドレスが、AAX9を通
じて、AAR12に格納される.次のサイクル(Aサイ
クルと呼ぶ)で、AAR12の下位アドレス(ブロック
内アドレス)によりAA15が読み出され、そのアドレ
ス部AADの出力とAAR12の上位アドレス(ブロッ
クアドレス)との比較が比較316で行われる。
・SCR26 A register that holds the output of SDEC22. Its output is
It is sent to the instruction processing unit, main memory, or decoder 29.31.・ACR27 Holds the output of ABR19 and stores it in the main memory or AAX
The register DCX30 outputs to 9. The output of DA25 and the output of DBR21 are input, and one input is selected and output according to the First Reply signal at the output of AND gate 24 and the output of SBR18.・DCR28 Register decoder 29 that holds the output of DCX30 and outputs it to the instruction processing unit Decodes the output of SCR26 and outputs the OBL signal and STB
Generate HIT signal and LRPLY signal.・Decoder 3
1 Decodes the output of SCR26 and sends the AA update request to SA.
Output to X8. Next, the operation of this embodiment will be explained separately for each case. r Read operation 1 For a read request from the instruction processing unit, the status, which is a memory read request, is sent to SARII via SAX8.
sent to. At the same time, the requested address is stored in AAR12 via AAX9. In the next cycle (referred to as A cycle), AA15 is read by the lower address (intra-block address) of AAR12, and the output of the address section AAD is compared with the upper address (block address) of AAR12 in comparison 316. be exposed.

比較器16の出力は、AAlS内の、アドレス部AAD
と同時にAAR12の下位アドレスによって読み出され
る有効ビット部Vの有効ビットとアンドゲート17で論
理積が取られ、AHR20へその出力が格納される. 次のサイクル(Bサイクルと呼ぶ)以降の動作は、AH
R20の出力により、次の二つに分けられる. i)AHR− ”1’のとき(キャッシュ・ヒットCA
CHIT): AサイクルでAAR12からABR19へ移動したリー
ド要求アドレスの下位アドレス(ブロック内アドレス)
によりDA2 5がアドレンシングされる,AHR20
の出力とSBR 1 8の出力におけるRead信号と
の論理積(゛1”)がアンドゲート24で取られ、DC
X30のDA25側が選沢され、DA25の出力は、D
CR2Bに格納される.同じBサイクルで、SBR18
の出力はAHR20の出力により、SDEC22により
、キャッシュ・ヒット、リブライ可能の旨変換され、S
CR26へ収められる.次のサイクル(Cサイクルと呼
ぶ)では、SCR26の出力に基づき、デコーダ29か
ら命令処理部へリプライ信号LRFLYが返されると共
にDCR2Bの出力が読み出しデータとして命令処理部
へ送られる. ii)AHR−“0”のとき(キャッシュ・ミスCAC
MIS): AHR2Qの出力とSBR l Bの出力をもって、S
DEC22においてキャッシュ・ミスと判断される,D
A25の出力データはアンドゲート24の出力が論理値
“O”のため、DCR28には格納されない,ABR1
9に保持されたアドレスはACR27へ移送される.次
のCサイクルで、SCR26の出力により、主記憶装置
へACR27に収められたアドレスを持って、ブロック
ロ一ド要求がなされる.キャッシュ・ミスを起こしたリ
クエストおよびアドレスは、以後、SCR26,ACR
27に留まり、プaツクロードの終了まで保持される,
AAR12およびABRl9に収められた後続のリクエ
ストはキャンセルされ、ブロックロード終了後、命令処
理部によりキャッシュ・メモリ装置へ再送出される. デコーダ29はSCR26の出力からブロックロ一ド中
信号OBLを生成する. 主記憶装置へのブロックロ一ド要求が送出されると同時
に、SCR26にあるキャッシュ・ミスを起こしたリー
ド要求のステータスから、RDEC3 1によりAA更
新要求が新たに発生され、このAA更新要求がSAX8
を通じてSARIIに格納される.同時に、ACR27
に保持されていたリード要求にかかるアドレスはAAX
9を通じrAAR1 2に格納される.A八更新要求が
SARIIに格納されると、そのAA更新要求信号UP
DATEにより、AAI5のライトイネーブル信号WE
とAA15の有効ビット部Vの入力信号が作成される.
これらにより、AAl5には、AAR l 2の下位で
示されるアドレスに、AAR12の上位アドレスである
ブロックアドレスおよび有効を示す有効ビットが書き込
まれる.この動作をもって、AA更新要求に対する動作
は終了する. さて、主記憶装置へ送出されたブロックロ一ド要求は、
主記憶装置内で、キャッシェ・メモリのブロックを構成
する語数分の要求に分解される.例えば、本実施例では
、1ブロックは8語から構成されているとすると、計8
回のブロックロ一ド要求が主記憶装置からキャッシェ・
メモリ装置へ返ってくる.この返ってきたブロックロー
ド要求はSAX8を経由して、SAR1lに格納される
.同時に、ロードするアドレスも主記憶装置からAAX
9を経由してAARl2に格納される.また、ロードす
るデータはDAX1 0を経由して、DAR l 3に
格納される. ブロックロ一ドにおけるAサイクルは、AAR12に格
納されたブロック内アドレスにより、AA15を索引す
る.先のAA更新動作により、該当するブロックアドレ
スが存在するので、結果としてAHR20には論理値″
1”が格納される.同時にステータスはSARIIから
SBR1Bへ移動し、アドレスはAAR12からABR
19へ、また、データはDAR1 3からDBR2 1
へ移動する. Bサイクルでは、ABR19の下位アドレス(ブロック
内アドレス)でDA25をアドレッシングし、SBR1
Bの出力から得られたLoad信号とAHR20の出力
との論理積をとるアンドゲート23の出力が論理値″1
″になることにより、DBR2 1に保持されたデータ
をDA25に書き込む動作が行われる. 最初のブロックロ一ド要求時には、SBRI8の出力に
よって、その旨が認識され、First  Reply
信号により、DBR2 1の出力がDCX301”選択
され、DCR28へ格納される.同時に、SCR26に
SBR1Bの出力が入力され、次のCサイクルで命令処
理部へリプライが返却される.この時にもデコーダ29
のOBL信号はブロックロード中を示す論理値″l″に
なっている. 最後のブロックロ一ド要求が主記憶装置から返って来る
と、BサイクルでSBR1Bの出力がSDEC22で再
開要求に変換され、待たされていた、キャッシュ・ミス
を起こしたリード要求が再開する. rストア動作1 命令処理部からのストア要求にかかるアドレスは、スト
ア・バッファ33のCSAB 1に入力され、その時点
でAS3が示すエントリに格納される.その後、AS3
は次のエントリを示すように増加される.命令処理部で
命令の実行が終わると、ストア要求にかかるデータがス
トア・バッファ33のCSDB2に入力され、その時点
でDS5が示すエントリに格納される,DS5はこの後
、次のエントリを指すよう増加される. ストア要求のキャッシュ・メモリへの反映は、ブロック
ロード中でない時には次のように行われる.RG32の
第4図に示す比較器401において、現在までストア要
求の反映が完了したCSAB1のエントリの次のエント
リを指すAR4の値と現在アドレスとデータが揃ってい
るエントリの次のエントリを指しているDS5の値とを
比較して、AR<DSが成り立てばゲート402で生成
したストア要求ST,REQをキャッシュ・メモリへ即
ちSAX8へ送出する.そのストア要求がキャッシュ・
メモリ側で受け付けられれば、AR4とDR6とを1つ
次のエントリを指すように増加させる.以上の動作は第
6図に示されている.なお、第6図におイテ、D,A,
OFI,OF2,E,Wは、命令実行のバイブラインの
各ステージであり、Dは命令のデコードステージ、Aは
オペランドのアドレスを計算するステージ、OFIはオ
ペランドを読出す第1のステージでAA15を索引する
ステージである.OF2はオペランドを読出す第2のス
テージでDA25を読出すステージである.EはDA2
5から読出したオペランドの演算を行うステージ、Wは
演算結果をストア・バッファに書込むステージである.
その後の「データ登録」は、ストア・バッファから読出
した演算結果をAA15に送るステージである,OFI
,OF2,Hの各ステージが、それぞれ上述したリード
動作のA,B,Cの各サイクルに相当する.次に、スト
ア・バンファ33内のストア要求アドレスとメモリ・リ
ード要求アドレスとが一致した場合の動作について述べ
る. ストア・アドレスとリード・アドレスの一致チェックを
“ストア・チェック”と呼ぶ.ストア・チェックはリー
ド要求がABR19のステージにある時に、ABR19
の内容とCSAB 1の各エントリの内容とを第2図の
比較器207〜210で比較する.この時、全アドレス
・ビットについてのチェックが行われる.即ち、第3図
のアンドゲート303の出力が使用される. 一致が検出されると、ABR19にあるアドレスに対応
するリード要求(ステータスはSBR 18にある)は
、ストア・バッファ・ヒット(STBHIT)という状
態になる,SBR1Bのステータスは、SDEC22に
よりSTBHITというステータスに変換され、ストア
・バッファ33からのストア要求がキャッシュ・メモリ
に反映されるまで、SCR26,ACR27のステージ
にリード要求にかかるステータス,アドレスは保持され
る.後続のAAR l 2,ABR l 9にある要求
はキャンセルされ、ACR27にある要求が再開された
後、命令処理部から再送出される。STBH ITとい
う状態はデコーダ29でSCR26の出力をもって認識
される. さて、STBHITにより、リード要求が抑止されると
、ストア・バッファ33からのストア要求がキャッシュ
・メモリに受け付けられる.即ち、SAX8を通してス
トア要求にかかるステータスがSARIIに格納され、
そのアドレスがAAX9を通してAAR1 2に格納さ
れる。そして以後、このストア要求によるキャッシュ・
メモリへの書き込みが前述と同様に行われる. ストア・バッファ33中のRG32は、AR4がDS5
に等しくなるまでストア要求を出し続け、AR−DSの
関係が成立すると、ストア終了(ST.END)という
信号を発する.この信号をもって、Cステージに留まっ
ていたリード要求は再開し、後続の要求も順次受け付け
られる.次に、キャッシュ・ミス時におけるストア・チ
ェックについて述べる.キャッシュ・ミスとストア・バ
ッファ・ヒットが同時に生じたら、ストア・バッファ・
ヒットを優先させる.そして、ストア要求反映後の再開
でCACMI Sとさせ、矛盾が無いようにしている. 本発明の特徴であるブロックロ一ド中のストア要求の反
映を可能とするため、CACMI S時には、CACM
I Sを起こしたリード・アドレスとストア・バッファ
33中のストア・アドレスとの比較がCSAB 1の比
較器207〜210で行われる.これは、比較器207
〜210の構成例を示した第3図の比較器301におい
て、各々のブロック・アドレスのみについてチェックさ
れる.即ち、その時点でストア・バッファ33にあるス
トア要求アドレスが、CACMI Sを起こしたアドレ
スを含むブロック内に存在するか否かがチェックされる
. ストア・バッファ33の或るエントリのストア・アドレ
スが一敗を見なかった場合には、第2図中の不一敗を検
出した比較器207の出力を入力とするゲート212〜
215の出力によって、そのエントリに対応するNHF
7のフラグに論理値“ビがセットされる.一敗した場合
には論理値“0″のままにされる.このフラグは、AS
3とAR4ではさまれたエントリの全てについて行われ
る. キャッシュ・ミスを契機としてブロックロ一ドが始まる
と、リード要求が抑止されるので、キャッシュ・メモリ
側はストア要求を受け付けることができる.この時、ス
トア・バッファ33の各エントリに対するストア要求は
、そのエントリに対するNHF7のフラグが論理値“1
”となうていることを確認して、第4図のRG32のゲ
ート403から発せられる,NHF7のフラグが論理値
″O”となっているエントリが発見されると、ゲート4
03からのストア要求はそれ以後、抑止される.そして
、このようにして出されたストア要求は前述と同様に処
理され、NHF7の全フラグは最後のブロックロード要
求でLRPLY信号によって全て論理値“0″にリセッ
トされる.〔発明の効果〕 以上説明したように、本発明は、キャッシュ・ミス時、
ストア・バッファ内のストア・アドレスがキャッシュ・
ミスによりブロックロードされるブロック・アドレスに
含まれているか否かをチェックし、含まれていないこと
をi1認したストア要求について、そのキャッシュ・メ
モリへの反映をブロックロード中に要求することにより
、ストア・バッファからキャッシュ・メモリへのストア
要求の反映がブロックロ一ド中に可能となるため、スト
ア要求の速やかなる処理が可能となり、命令実行の中断
を減少させ、情報処理装置の全体的な処理能力を高める
ことができる.
The output of the comparator 16 is the address part AAD in AAlS.
At the same time, the AND gate 17 performs a logical product with the valid bit of the valid bit section V read out by the lower address of the AAR 12, and the output is stored in the AHR 20. The operation after the next cycle (called B cycle) is AH
Depending on the output of R20, it can be divided into the following two types. i) AHR - When “1” (cache hit CA
CHIT): Lower address of the read request address moved from AAR12 to ABR19 in A cycle (intra-block address)
DA2 5 is addressed by, AHR20
The AND gate 24 takes the logical product (“1”) of the output of the SBR18 and the Read signal at the output of the SBR18, and the DC
The DA25 side of X30 is selected, and the output of DA25 is D
Stored in CR2B. In the same B cycle, SBR18
The output of the AHR 20 is converted by the SDEC 22 to indicate a cache hit and can be rewritten, and the S
It can be stored in CR26. In the next cycle (referred to as C cycle), a reply signal LRFLY is returned from the decoder 29 to the instruction processing section based on the output of the SCR 26, and the output of the DCR 2B is sent to the instruction processing section as read data. ii) When AHR is “0” (cache miss CAC
MIS): With the output of AHR2Q and the output of SBR lB,
DEC22 determines that it is a cache miss.
The output data of A25 is not stored in the DCR28 because the output of the AND gate 24 is a logical value "O", ABR1
The address held in 9 is transferred to ACR 27. In the next C cycle, a block load request is made to the main memory by the output of the SCR 26 with the address stored in the ACR 27. The request and address that caused the cache miss will be sent to SCR26 and ACR from now on.
27 and is held until the end of the pack load,
Subsequent requests stored in AAR12 and ABR19 are canceled, and after block loading is completed, the instruction processing unit resends them to the cache memory device. A decoder 29 generates a block loading signal OBL from the output of the SCR 26. At the same time as the block load request to the main storage device is sent, a new AA update request is generated by the RDEC 3 1 based on the status of the read request that caused the cache miss in the SCR 26, and this AA update request is sent to the SAX8
It is stored in SARII through. At the same time, ACR27
The address related to the read request held in AAX
9 and stored in rAAR12. When the A8 update request is stored in SARII, the AA update request signal UP
DATE causes the AAI5 write enable signal WE to
The input signal for the valid bit part V of AA15 is created.
As a result, the block address, which is the upper address of AAR12, and the valid bit indicating validity are written to the address indicated in the lower order of AAR12 in AAl5. With this operation, the operation for the AA update request ends. Now, the block load request sent to main storage is
In main memory, requests are broken down into requests for the number of words that make up a block of cache memory. For example, in this embodiment, if one block is composed of 8 words, a total of 8 words
block load requests from main memory to the cache.
Returns to memory device. This returned block load request is stored in SAR1l via SAX8. At the same time, the address to be loaded is also changed from the main memory to AAX.
9 and stored in AARl2. Furthermore, the data to be loaded is stored in DAR 1 3 via DAX 1 0. The A cycle in the block load indexes the AA15 using the intra-block address stored in the AAR12. Due to the previous AA update operation, the corresponding block address exists, so as a result, AHR20 has a logical value "
1" is stored. At the same time, the status moves from SARII to SBR1B, and the address moves from AAR12 to ABR.
19, and the data is from DAR1 3 to DBR2 1
Move to. In the B cycle, DA25 is addressed with the lower address (intra-block address) of ABR19, and SBR1
The output of the AND gate 23, which takes the logical product of the Load signal obtained from the output of B and the output of the AHR 20, has a logic value of "1".
'', the data held in DBR21 is written to DA25. At the time of the first block load request, this is recognized by the output of SBRI8, and the First Reply is sent.
The output of DBR21 is selected by the signal DCX301" and stored in DCR28. At the same time, the output of SBR1B is input to SCR26, and a reply is returned to the instruction processing section in the next C cycle. At this time as well, the decoder 29
The OBL signal has a logical value of "l" indicating that the block is being loaded. When the last block load request is returned from the main memory, the output of SBR1B is converted into a restart request by the SDEC 22 in the B cycle, and the awaited read request that caused the cache miss is restarted. rStore Operation 1 The address associated with the store request from the instruction processing unit is input to CSAB 1 of the store buffer 33, and is stored in the entry indicated by AS3 at that point. After that, AS3
is incremented to indicate the next entry. When the instruction processing unit finishes executing the instruction, the data related to the store request is input to CSDB2 of the store buffer 33, and is stored in the entry indicated by DS5 at that point.DS5 then points to the next entry. Increased. A store request is reflected in the cache memory as follows when a block is not being loaded. In the comparator 401 shown in FIG. 4 of RG32, the value of AR4 points to the entry next to the entry in CSAB1 for which the store request has been reflected until now, and the value of AR4 points to the entry next to the entry for which the current address and data are complete. If AR<DS holds true, the store requests ST and REQ generated by the gate 402 are sent to the cache memory, that is, to the SAX8. If the store request is cached
If it is accepted on the memory side, AR4 and DR6 are increased to point to the next entry. The above operation is shown in Figure 6. In addition, ite, D, A,
OFI, OF2, E, and W are the stages of the instruction execution byline, D is the instruction decoding stage, A is the operand address calculation stage, and OFI is the first stage of reading the operand, and AA15 is This is the indexing stage. OF2 is the second stage for reading out the operand and is the stage for reading out DA25. E is DA2
5 is a stage in which operations are performed on the operands read out, and W is a stage in which the operation results are written to the store buffer.
The subsequent "data registration" is a stage in which the calculation results read from the store buffer are sent to the AA15.
, OF2, and H correspond to cycles A, B, and C of the read operation described above, respectively. Next, the operation when the store request address in the store buffer 33 and the memory read request address match will be described. A match check between the store address and read address is called a "store check." Store check is executed at ABR19 stage when read request is at ABR19 stage.
and the contents of each entry in CSAB 1 are compared by comparators 207 to 210 in FIG. At this time, all address bits are checked. That is, the output of AND gate 303 in FIG. 3 is used. If a match is detected, the read request corresponding to the address in ABR19 (status is in SBR 18) will be placed in a state of Store Buffer Hit (STBHIT), and the status of SBR1B will be changed to a status of STBHIT by SDEC22. The status and address related to the read request are held in the SCR 26 and ACR 27 stages until the store request from the store buffer 33 is converted and reflected in the cache memory. The subsequent requests in AAR l 2 and ABR l 9 are canceled, and after the request in ACR 27 is restarted, it is sent again from the instruction processing unit. The state STBH IT is recognized by the decoder 29 from the output of the SCR 26. Now, when the read request is suppressed by STBHIT, the store request from the store buffer 33 is accepted by the cache memory. That is, the status related to the store request is stored in SARII through SAX8,
The address is stored in AAR12 through AAX9. Then, from now on, the cache due to this store request will be
Writing to memory is performed in the same way as described above. RG32 in the store buffer 33 is
The store request continues to be issued until the value becomes equal to ST. With this signal, the read request that has remained in the C stage is restarted, and subsequent requests are accepted in sequence. Next, we will discuss the store check at the time of a cache miss. If a cache miss and a store buffer hit occur at the same time, the store buffer
Prioritize hits. Then, after the store request is reflected, it is restarted with CACMIS to ensure that there are no inconsistencies. In order to make it possible to reflect store requests during block loading, which is a feature of the present invention, when CACMIS
Comparators 207 to 210 of CSAB 1 compare the read address that caused the IS with the store address in the store buffer 33. This is the comparator 207
In the comparator 301 of FIG. 3, which shows an example of the configuration of .about.210, only each block address is checked. That is, it is checked whether the store request address in the store buffer 33 at that time exists in the block that includes the address that caused the CACMIS. If the store address of a certain entry in the store buffer 33 does not fail, the gates 212 to
The output of 215 determines the NHF corresponding to that entry.
The logical value “B” is set in the flag of 7. If there is one defeat, the logical value “0” remains. This flag is
This is done for all entries between 3 and AR4. When a block load starts due to a cache miss, read requests are suppressed, so the cache memory side can accept store requests. At this time, the store request for each entry in the store buffer 33 is made when the flag of NHF7 for that entry is set to a logical value of "1".
”, and if an entry is found in which the flag of NHF7, which is issued from gate 403 of RG32 in FIG.
Store requests from 03 will be suppressed from then on. Then, the store request issued in this manner is processed in the same manner as described above, and all flags of NHF7 are reset to the logical value "0" by the LRPLY signal at the last block load request. [Effects of the Invention] As explained above, the present invention has the following advantages:
The store address in the store buffer is cached.
By checking whether or not the store request is included in the block address to be block loaded due to a mistake, and requesting that the store request is not included in the block address, it is requested to be reflected in the cache memory during the block load. Since store requests can be reflected from the store buffer to cache memory during block loading, store requests can be processed quickly, reducing interruptions in instruction execution and improving the overall performance of information processing equipment. Processing capacity can be increased.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の一実施例のストア・バッファを含むキ
ャッシェ・メモリ装置の要部ブロック図、第2図はキャ
ッシュ・ストア・アドレス・バッファ(CSAB)1お
よび非危険フラグ群(NHF)7の構成例を示すブロッ
ク図、 第3図は比較器207〜210の構成例を示すブロック
図、 第4図は要求発生回路(RG)32の構成例を示すブロ
ック図、 第5図はプライオア・デコーダ(PRIOR.DEC)
14の構成例を示すブロック図および、第6図はストア
命令の動作を示したタイムチャートである. 図において、 1・・・キャッシュ・ストア・アドレス・バッファ(C
SAB) 2・・・キャッシュ・ストア・データ・バッファ(CS
DB) 3・・・アドレス・セット・ポインタ(AS)4・・・
アドレス・リード・ポインタ(AR)5・・・データ・
セット・ポインタ(DS)6・・・データ・リード・ポ
インタ(DR)7・・・非危険フラグ(NHF) 8・・・ステータス・セレクタ(SAX)9・・・アド
レス・セレクタ(AAX)10・・・データ・セレクタ
(DAX)11・・・ステータス・レジスタ(SAR)
12・・・アドレス・レジスタ(AAR)13・・・デ
ータ・レジスタ(DAR)l4・・・ブライオア・デコ
ーダ(PR[OR.DEC) 15・・・アドレス・アレイ(AA) 16・・・比較器 17・・・アンドゲート 18・・・ステータス・レジスタ(SBR)l9・・・
アドレス・レジスタ(ABR)20・・・ヒット・レジ
スタ(AHR)21・・・データ・レジスタ(DBR)
22・・・ステータス・デコーダ(SDEC)23.2
4・・・アンドゲート 25・・・データ・アレイ(DA) 26・・・ステータス・レジスタ(SCR)27・・・
アドレス・レジスタ(ACR)28・・・データ・レジ
スタ(DCR)29・・・デコーダ 30・・・アドレス・セレクタ(DCX)31・・・デ
コーダ(RDEC) 32・・・要求発生回路(RG) 33・・・ストア・バッファ 203,204・・・デコーダ 205・・・マスク・ラッチ群 206・・・スレーブ・ラッチ群 207〜210・・・比較器 211・・・アドレス・セレクタ 212〜215・・・ゲート 222・・・セレクタ 301,302・・・比較器 303・・・アンドゲート 401・・・比較器 402〜404・・・ゲート 501〜505・・・ゲート
FIG. 1 is a block diagram of a main part of a cache memory device including a store buffer according to an embodiment of the present invention, and FIG. 2 shows a cache store address buffer (CSAB) 1 and a non-hazardous flag group (NHF) 7. 3 is a block diagram showing an example of the structure of the comparators 207 to 210, FIG. 4 is a block diagram showing an example of the structure of the request generation circuit (RG) 32, and FIG. Decoder (PRIOR.DEC)
14 is a block diagram showing an example of the configuration, and FIG. 6 is a time chart showing the operation of a store instruction. In the figure, 1... Cache store address buffer (C
SAB) 2...Cache store data buffer (CS
DB) 3... Address set pointer (AS) 4...
Address read pointer (AR) 5...Data
Set pointer (DS) 6...Data read pointer (DR) 7...Non-hazardous flag (NHF) 8...Status selector (SAX) 9...Address selector (AAX) 10... ...Data selector (DAX) 11...Status register (SAR)
12... Address register (AAR) 13... Data register (DAR) l4... Brior decoder (PR[OR.DEC) 15... Address array (AA) 16... Comparator 17...AND gate 18...Status register (SBR) l9...
Address register (ABR) 20...Hit register (AHR) 21...Data register (DBR)
22...Status decoder (SDEC) 23.2
4...AND gate 25...Data array (DA) 26...Status register (SCR) 27...
Address register (ACR) 28...Data register (DCR) 29...Decoder 30...Address selector (DCX) 31...Decoder (RDEC) 32...Request generation circuit (RG) 33 ...Store buffers 203, 204...Decoder 205...Mask latch group 206...Slave latch group 207-210...Comparator 211...Address selectors 212-215... Gate 222... Selector 301, 302... Comparator 303... AND gate 401... Comparator 402-404... Gate 501-505... Gate

Claims (1)

【特許請求の範囲】 ストア要求を直ちにキャッシュ・メモリへ反映させず一
時バッファリングする複数エントリを含むストア・バッ
ファにおいて、 前記ストア・バッファのエントリに保持された各ストア
要求にかかるアドレスと前記キャッシュ・メモリへのリ
ード要求にかかるアドレスとを前記キャッシュ・メモリ
において予め定められた語数の管理単位であるブロック
単位で比較する比較手段と、 前記リード要求がキャッシュ・ミスを起こした時、前記
比較手段の出力が不一致を表示したエントリに対応する
ストア可能表示手段をセットするセット手段と、 前記キャッシュ・ミスを契機とする主記憶から前記キャ
ッシュ・メモリへのデータ・ロードの終了時、前記スト
ア可能表示手段の全てをリセットするリセット手段と、 主記憶から前記キャッシュ・メモリへのデータ・ロード
中に、前記ストア可能表示手段がセットされているエン
トリのストア要求を前記キャッシュ・メモリへ反映する
要求を発生する要求発生手段とを具備したことを特徴と
するストア・バッファ。
[Scope of Claims] In a store buffer including a plurality of entries in which store requests are temporarily buffered without being immediately reflected in the cache memory, an address related to each store request held in an entry of the store buffer and an address of the cache memory are stored. Comparing means for comparing an address related to a read request to memory in units of blocks, which are management units of a predetermined number of words in the cache memory; and when the read request causes a cache miss, the comparing means a setting means for setting a storeable display means corresponding to an entry whose output indicates a mismatch; and a set means for setting a storeable display means at the end of data loading from the main memory to the cache memory triggered by the cache miss; and generating a request to reflect a store request for an entry set in the store possible display means to the cache memory during data loading from the main memory to the cache memory. A store buffer comprising a request generating means.
JP1059259A 1989-03-10 1989-03-10 Store buffer Pending JPH02236748A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1059259A JPH02236748A (en) 1989-03-10 1989-03-10 Store buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1059259A JPH02236748A (en) 1989-03-10 1989-03-10 Store buffer

Publications (1)

Publication Number Publication Date
JPH02236748A true JPH02236748A (en) 1990-09-19

Family

ID=13108201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1059259A Pending JPH02236748A (en) 1989-03-10 1989-03-10 Store buffer

Country Status (1)

Country Link
JP (1) JPH02236748A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100849A (en) * 1991-10-04 1993-04-23 Fujitsu Ltd Buffer memory control system
JPH06224910A (en) * 1993-01-27 1994-08-12 Nec Corp Lan connection system
US6374334B1 (en) 1994-07-04 2002-04-16 Fujitsu Limited Data processing apparatus with a cache controlling device
JP2010191638A (en) * 2009-02-17 2010-09-02 Fujitsu Semiconductor Ltd Cache device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100849A (en) * 1991-10-04 1993-04-23 Fujitsu Ltd Buffer memory control system
JPH06224910A (en) * 1993-01-27 1994-08-12 Nec Corp Lan connection system
US6374334B1 (en) 1994-07-04 2002-04-16 Fujitsu Limited Data processing apparatus with a cache controlling device
JP2010191638A (en) * 2009-02-17 2010-09-02 Fujitsu Semiconductor Ltd Cache device

Similar Documents

Publication Publication Date Title
US12505015B2 (en) Pipelined read-modify-write operations in cache memory
US5652858A (en) Method for prefetching pointer-type data structure and information processing apparatus therefor
US5479629A (en) Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address
US7447844B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced on a fixed schedule
US5051894A (en) Apparatus and method for address translation of non-aligned double word virtual addresses
US4648033A (en) Look-aside buffer LRU marker controller
JPH0520197A (en) Memory management system and microprocessor
JPH02236748A (en) Store buffer
US5012410A (en) Data processor with instruction cache memory
JP3733604B2 (en) Cache memory
JP3100807B2 (en) Cache memory device
JPH02308349A (en) Buffer storage control system
US20200097294A1 (en) Method for managing the supply of information, such as instructions, to a microprocessor, and a corresponding system
JP3241679B2 (en) Cache read method for large data transfer processing request from processor
JP2011150486A (en) Data processing apparatus
JP3614946B2 (en) Memory buffer device
JP3078293B2 (en) Storage controller
JPH05189318A (en) Information processor
JPH06103477B2 (en) Parallel cache memory
JPH1185613A (en) Cache memory
JP3729832B2 (en) Cache memory device
JP3287239B2 (en) Hierarchical cache memory and its state transition control method
JP2001344152A (en) Cache memory device
JPH04248645A (en) Cache memory
JPS62226348A (en) Main memory and concurrently main memory control device