JPH04145552A - Cache storage device - Google Patents
Cache storage deviceInfo
- Publication number
- JPH04145552A JPH04145552A JP2268912A JP26891290A JPH04145552A JP H04145552 A JPH04145552 A JP H04145552A JP 2268912 A JP2268912 A JP 2268912A JP 26891290 A JP26891290 A JP 26891290A JP H04145552 A JPH04145552 A JP H04145552A
- Authority
- JP
- Japan
- Prior art keywords
- address
- write
- read
- array
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000000872 buffer Substances 0.000 claims abstract description 55
- 238000003491 array Methods 0.000 claims abstract description 14
- 230000000717 retained effect Effects 0.000 claims 6
- 239000012536 storage buffer Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 8
- 230000010365 information processing Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、キャッシュ記憶を有する情報処理装置に関す
る。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to an information processing device having cache memory.
従来の複数のカラムと複数のレベルからなるセットアソ
シアティブ方式によるキャッシュ記憶方式について説明
する。キャッシュ記憶は、情報処理装置のデータ読出し
をより高速く行なう丸めに設叶られた高速・小容量の記
憶装置であって、主記憶装置内のデータの一部を貯える
働きをする。A conventional cache storage method using a set associative method consisting of multiple columns and multiple levels will be explained. Cache storage is a high-speed, small-capacity storage device designed to read data faster in an information processing device, and serves to store a portion of the data in the main storage device.
その際、主記憶装置とキャッシュ記憶はある一定の大き
さのブロックに区切られておシ、キャッシュ記憶のデー
タが、主記憶装置上のどの場所のものであるかを覚えて
おく小容量のメモリを有し、これをアドレス・アレイと
呼ぶ、従って、情報処理装置がキャッシュ記憶装置金ア
クセスする場合には、そのデータの主記憶上のアドレス
によってアドレス・アレイを索引し、求めるデータのキ
ャッシュ記憶装置内での有無を調べ、存在する場合には
そのデータのキャッシュ記憶装置内でのアドレスを求め
る。即ちアドレス・アレイによって、主記憶装置アドレ
スをキャッシュ記憶装置内アドレスに変換しているわけ
でおる。また、従来のストアバッファは、演算装置よシ
演算結果即ち書込みデータが出力されるまでその書込み
アドレスを保持しておいて、書込みデータが揃うとその
書込みアドレスでアドレス・アレイを索引してキャッシ
ュのレベルを決定し、書込みデータ全データ・アレイに
書く、という動作をする。つまり、キーッシュ記憶から
の読出しも、ストアバッファからキャッシュ記憶への書
込みも同一のアドレス・アレイを索引するので、読出し
および書込みが競合した場合は、どちらかを待たせなけ
ればならなかった。At that time, the main memory and cache memory are divided into blocks of a certain size, and a small memory is used to remember which location on the main memory the cache memory data is from. This is called an address array. Therefore, when an information processing device accesses a cache storage device, it indexes the address array by the address on the main memory of the data and identifies the cache storage device of the desired data. If the data exists, the address of the data in the cache storage device is determined. That is, the address array converts the main memory address into an address within the cache memory. In addition, conventional store buffers hold the write address until the operation result, that is, the write data, is output from the arithmetic unit, and when the write data is complete, the address array is indexed by the write address and the cache is stored. The level is determined and the write data is written to all data arrays. In other words, since reading from keyed storage and writing from store buffer to cache storage both index the same address array, if reading and writing conflict, one or the other must wait.
上述した従来のキャッシュ記憶装置は、読出しのときも
、ストアバッファから書込むときも同じアドレス・アレ
イを索引するため、読出しと書込みを同時に行なうこと
はできず高速処理の妨げとなっていた。The conventional cache storage device described above indexes the same address array both when reading and when writing from the store buffer, so reading and writing cannot be performed simultaneously, which hinders high-speed processing.
第1の発明のキャッシュ記憶装置は、読出しまたは書込
みアドレスを保持するアドレス回路と、キャッシュ記憶
内に登録されているデータのアドレスを記憶して、前記
アドレス回路に、保持されるアドレスを供給すると、本
アドレスの目的とするデータブロックが登録されていれ
ばキャッシュ記憶内でのレベルを出力するアドレス・ア
レイと、前記アドレス回路に保持される書込みアドレス
と、該書込みアドレスを前記アドレス・アレイに供給し
て得られたレベルの組を複数組貯えるとともにデータを
貯えるストアバッファと、一度に読み書きするデータ幅
で分割され、各々がアドレス・レジスタとレベル毎の書
込みを指示するライトイネーブルレジスタを有するデー
タ・アレイと、前記アドレス回路に保持されている読出
しアドレスと、前記ストアバッファの出力でおる書込み
アドレスとを比較することによって、読出しを行ないた
い分割されたデータ・アレイと、書込みを行ないたい分
割されたデータ・アレイとが同一か否かを判定する手段
と、その判定結果が否であれば、前記アドレス回路に保
持されている読出しアドレスを、読出しを行ないたい分
割されたデータ・アレイのアドレスレジスタに供給する
と共に、前記ストアバッファから出力された書込みアド
レスおよびレベルを書込みを行ないたい分割されたデー
タ・アレイのアドレスレジスタとライトイネーブルレジ
スタに供給して、異なる分割されたデータアレイ間で同
時に読出しと書込みの動作を指示する手段と、上記判定
結果が同一であれば読出しを優先させる動作を指示する
手段を備える。The cache storage device of the first invention includes an address circuit that holds a read or write address, and an address of data registered in the cache storage, and when the address circuit is supplied with the address to be held, An address array that outputs the level in the cache memory if the target data block of this address is registered, a write address held in the address circuit, and the write address is supplied to the address array. A data array that is divided by the data width to be read and written at once, and each has an address register and a write enable register that instructs writing for each level. By comparing the read address held in the address circuit with the write address output from the store buffer, the divided data array to be read and the divided data to be written are determined.・Means for determining whether or not the arrays are the same, and if the determination result is negative, supplying the read address held in the address circuit to the address register of the divided data array to be read. At the same time, the write address and level output from the store buffer are supplied to the address register and write enable register of the divided data array to be written, thereby simultaneously reading and writing between different divided data arrays. The apparatus includes means for instructing an operation, and means for instructing an operation to give priority to reading if the determination results are the same.
第2の発明のキャッシュ記憶装置は、第1の発明のアド
レス回路と、アドレスアレイと、分割されたデータ・ア
レイと、ストアバッファと、前記ストアバッファの出力
である書込みアドレスおよびレベルを、書込みを行ない
たい分割データアレイに供給する手段と、前記アドレス
回路に保持される読出しアドレスを、前記ストアバッフ
ァの出力が供給されていない全ての分割データ・アレイ
に供給する手段と、前記読出してドレスで読出しを行な
いたい分割データ・アレイに該アドレスを供給でき九か
否か全判定する手段と、該判定結果が否でなければ分割
データ・アレイから読出したデータを演算装置へ送り、
該判定結果が否であれば、否でなくなるまで同じ読出し
アドレスを分割データ・アレイに供給し続ける手段を備
える。A cache storage device according to a second invention includes the address circuit according to the first invention, an address array, a divided data array, a store buffer, and a write address and level output from the store buffer. means for supplying the read address held in the address circuit to all the divided data arrays to which the output of the store buffer is not supplied; means for fully determining whether or not the address can be supplied to the divided data array to which the desired operation is to be performed; and if the determination result is negative, sending the data read from the divided data array to the arithmetic unit;
If the determination result is negative, means is provided to continue supplying the same read address to the divided data array until the determination result is no longer negative.
第3の発明のキャッシュ記憶装置は、第1の発明のアド
レス回路と、アドレス・アレイと、ストアバッファと、
レベル毎に分割されて、各々がアドレスレジスタを有し
て、レベル毎に書込みを指示することのできる分割デー
タ・アレイと、前記アドレス回路に保持されている読出
しアドレスによって索引されたアドレス・アレイの出力
と、前記ストアバッファの出力である書込みレベルとを
比軟することによって、読出しを行ないたいレベルと書
込みを行ないたいレベルとが同一か否か全判定する手段
と、その判定結果が否であれば、前記アドレス回路に保
持されている読出しアドレスを、読出しを行ないたいレ
ベルの分割データ・アレイのアドレスレジスタに供給す
ると共に、前記ストアバッファから出力された書込みア
ドレスを、書込みを行ないたいレベルの分割データ・ア
レイのアドレスレジスタに供給して書込み動作を行なわ
せ、異なる分割されたデータ・アレイ間で同時に読出し
と書込みの動作を指示する手段と、上記判定結果が同一
であれば読出しを優先させる動作を指示する手段を備え
る。A cache storage device according to a third invention includes the address circuit according to the first invention, an address array, a store buffer,
A divided data array that is divided into levels, each having an address register, and capable of instructing writing for each level, and an address array indexed by read addresses held in the address circuit. Means for fully determining whether or not the level at which reading is desired and the level at which writing is desired are the same by comparing the output and the writing level which is the output of the store buffer, and whether or not the judgment result is negative. For example, the read address held in the address circuit is supplied to the address register of the divided data array of the level to be read, and the write address output from the store buffer is supplied to the divided data array of the level to be written. Means for supplying data to the address register of the data array to perform a write operation, instructing simultaneous read and write operations between different divided data arrays, and operation for giving priority to read if the above judgment results are the same. shall be provided with means for instructing.
第4の発明のキャッシュ記憶装置は、第3の発明のアド
レス回路と、アドレスアレイと、ストアバッファと、分
割データ・アレイと、前記ストアバッファの出力である
書込みアドレスを、書込みを行ないたいレベルの分割デ
ータ・アレイに供給する手段と、前記アドレス回路に保
持される読出しアドレスを、前記ストアバッファの出力
が供給されていない全てのレベルの分割データ・アレイ
に供給する手段と、前記脱出しアドレスで読出し全行な
いたい分割データ・アレイに該アドレスを供給できたか
否かを判定する手段と、該判定結果が否でなければ分割
データ・アレイから読出したデータ全演算装置へ送り、
該判定結果が否であれば、否でなくなるまで同じ読出し
アドレスを分割データ・アレイに供給し続ける手段を備
える。A cache storage device according to a fourth aspect of the invention includes the address circuit, an address array, a store buffer, a divided data array, and a write address that is an output of the store buffer at a level at which writing is desired. means for supplying the read address held in the address circuit to the divided data array of all levels to which the output of the store buffer is not supplied; means for determining whether or not the address has been supplied to the divided data array for which all read operations are to be performed, and if the determination result is negative, transmitting the data read from the divided data array to the entire arithmetic unit;
If the determination result is negative, means is provided to continue supplying the same read address to the divided data array until the determination result is no longer negative.
次に、本発明について図面を参照して説明する。 Next, the present invention will be explained with reference to the drawings.
第1図は本発明の第1の実施例を示すブロック図である
。レジスタ4は、先行制御装置から出力されるキャッシ
ュ記憶装置の読出しまたは書込みアドレス金受取って保
持するアドレス回路である。FIG. 1 is a block diagram showing a first embodiment of the present invention. The register 4 is an address circuit that receives and holds the read or write address money of the cache storage device output from the advance control device.
アドレスアレイ1は、このキャッシュ記憶のチータブロ
ックの、主記憶上でのアドレスを記憶しておくメモリで
あシ、アドレス・アレイ(AddressArray)
と呼ばれるものである。アドレスアレイ1は、レジスタ
4の出力の一部で索引され出力されるアドレスと、レジ
スタ4の出力の残夛の部分とを比較器5,6で比較する
ことにより、このキャッシュ記憶装置に目的とするチー
タブロックが存在するか、存在するとすればレベルOと
レベル1のどちらに属するかを示し、その結果をレジス
タ4の出力と共にレジスタ7にセットする。バッファ8
は、先行制御装置から、キャッシュ記憶に対して書込み
要求が出されたとき、レジスタ4の内容でアドレスアレ
イを索引してセットされたレジスタ7の内容を貯えてお
くバッファである。バッファ9は、演算装置から演算結
果を受けとって、キャッシュ記憶に書込むまでの間デー
タを貯えておくバッファである。レジスタ10.レジス
タ11はそれぞれバッファ8.バッファ9の内容t−順
番に受は取って保持するレジスタでオシ、バッファ8.
9、レジスタ10.11でストアバッファを構成してい
る。Address array 1 is a memory that stores the address of the cheater block in the cache memory on the main memory.
It is called. Address array 1 uses comparators 5 and 6 to compare the address indexed and output by a portion of the output of register 4 with the remainder of the output of register 4, thereby determining the purpose of the cache storage device. It indicates whether a cheater block exists, and if so, whether it belongs to level O or level 1, and sets the result in register 7 together with the output of register 4. Buffer 8
is a buffer that stores the contents of the register 7 that is set by indexing the address array using the contents of the register 4 when a write request is issued to the cache memory from the preceding control device. The buffer 9 is a buffer that receives the calculation results from the calculation device and stores the data until it is written into the cache memory. Register 10. Each register 11 has a buffer 8 . Contents of buffer 9 t - A register that receives and holds data in order, buffer 8 .
9. Registers 10 and 11 constitute a store buffer.
第1のデータアレイ2.第2データアレイ3は、主記憶
と同じサイズのブロックに分割されているキャッシュ記
憶部であってデータ・アレイ(Dataλrray)と
呼ばれるものである。レジスタ13゜レジスタ16は、
それぞれ第1のデータアレイ2゜第2のデータアレイ3
のアドレスおよびレベルO。First data array2. The second data array 3 is a cache storage section divided into blocks of the same size as the main memory, and is called a data array (Dataλrray). Register 13° Register 16 is
First data array 2 and second data array 3, respectively.
address and level O.
レベル1のライトイネーブルを保持するレジスタである
。レジスタ14.レジスタ18は、それぞれ第1のデー
タアレイ2.第2のデータアレイ3への書込みデータを
保持するレジスタである。セレクタ12.セレクタ15
は、それぞれ第1のデータアレイ2.第2のデータアレ
イ3のアドレスおよびライトイネーブルレジスタである
レジスタ13、レジスタ16へ送るデータを、レジスタ
4の出力か、レジスタ10の出力かを切換えて、第1の
データアレイ2.第2のデータアレイ3の読出しまたは
書込みアドレスを決め、読出しサイクルか書込みサイク
ルかを決めるセレクタである。This is a register that holds level 1 write enable. Register 14. The registers 18 are respectively connected to the first data array 2. This is a register that holds write data to the second data array 3. Selector 12. Selector 15
are the first data array 2., respectively. The data to be sent to the registers 13 and 16, which are the address and write enable registers of the second data array 3, is switched between the output of the register 4 and the output of the register 10. It is a selector that determines the read or write address of the second data array 3 and determines whether it is a read cycle or a write cycle.
セレクタ18.セレクタ19は、それぞれ第1のデータ
アレイ2.第2のデータアレイ1のレベル0とレベル1
のデータを、レジスタ7にセットされているレベルによ
って切換えてセレクタ20に供給するためのセレクタで
ある。セレクタ20はレジスタ7にセットされている読
出しアドレスのLSB(Least 51gn1fic
ant Bit)によッテ、セレクタ18の出力か、セ
レクタ19の出力かを切換えてレジスタ21に供給する
だめのセレクタでおる。レジスタ21は、セレクタ20
の出力を受は取って、演算装置へ送るためのレジスタで
ある。Selector 18. The selectors 19 respectively select the first data array 2. Level 0 and Level 1 of the second data array 1
This is a selector for switching the data according to the level set in the register 7 and supplying it to the selector 20. The selector 20 selects the LSB (Least 51gn1fic) of the read address set in the register 7.
This selector is used to switch between the output of the selector 18 and the output of the selector 19 and supply it to the register 21 depending on the output of the selector 18 or the output of the selector 19. The register 21 is the selector 20
The receiver is a register for receiving the output of and sending it to the arithmetic unit.
ゲート22〜25は、レジスタ4に保持される読出しア
ドレスのLSBと、レジスタ10に保持される書込みア
ドレスのLSBとの関係によって、第1のデータアレイ
2.第2のデータアレイ3の読出し、書込み動作を制御
するゲートである。The gates 22 to 25 control the first data array 2 . This is a gate that controls read and write operations of the second data array 3.
次にこのキャッシュ記憶装置の動作を詳しく説明する。Next, the operation of this cache storage device will be explained in detail.
先行制御装置よシ、キャッシュ記憶の書込み要求が出さ
れると、レジスタ4に書込みアドレスが保持されて、さ
らにレジスタ4からの出力はアドレスアレイ1を索引し
た結果と共にレジスタ7に:セットされる。その次にレ
ジスタ7の内容線バッファ8に移されて、演算装置よシ
演算結果がバッファ9に書かれるまで貯えられる。演算
装置より演算結果がバッファ9に格納されてキャッシュ
記憶へ書込みが可能な状態になると、書込みアドレスと
書込みデータは、バッファ8.バッファ9よシそれぞれ
レジスタlO,レジスタ11に移される。When the advance controller issues a write request to the cache memory, the write address is held in register 4, and the output from register 4 is set in register 7 together with the result of indexing address array 1. The data is then transferred to the content line buffer 8 of the register 7 and stored until the arithmetic operation result is written to the buffer 9 by the arithmetic unit. When the arithmetic result is stored in the buffer 9 by the arithmetic device and becomes ready to be written to the cache memory, the write address and the write data are stored in the buffer 8. Buffer 9 is transferred to register 10 and register 11, respectively.
先行制御装置より、キャッシュ記憶の読出し要求が出さ
れると、レジスタ4に読出しアドレスが保持される。レ
ジスタ4の挽出しアドレスのLSBは信号線104でゲ
ート22へ、レジスタ10の書込みアドレスのLSBは
信号11105でゲート24へ送られる。ゲート22.
24は、入力信号の論理をそのままと、反転した論理を
出力する。ゲート23は、読出しアドレスのLSBが「
1」で書込みアドレスのLSBが「0」のときに「1」
を出力し、このときセレクタ12の出力は書込みアドレ
スとなり、第1のデータアレイ2は書込み動作を行なう
。ゲート25は、読出レアドレスのLSBがrOJで書
込みアドレスのLSBが11」のときに「1」を出力し
、このときセレクタ15の出力は書込みアドレスとなシ
、第2のデータアレイ3は書込み動作全行なう。When the advance control device issues a read request from the cache memory, the read address is held in the register 4. The LSB of the read address of register 4 is sent to gate 22 on signal line 104, and the LSB of the write address of register 10 is sent to gate 24 on signal 11105. Gate 22.
24 outputs the logic of the input signal as it is and the inverted logic. The gate 23 is configured such that the LSB of the read address is “
1” and the LSB of the write address is “0”
At this time, the output of the selector 12 becomes a write address, and the first data array 2 performs a write operation. The gate 25 outputs "1" when the LSB of the read array address is rOJ and the LSB of the write address is 11. At this time, the output of the selector 15 is not a write address, and the second data array 3 is not a write address. Do all the movements.
以上の説明でわかるように、書込みアドレスのLSBが
読出しアドレスのLSBと同じでないときだけ書込みを
行ないたい方のデータアレイが書込み動作を行なうこと
ができ、一方読出しを行ないたい方のデータアレイには
いつでも読出しアドレスが供給できて、演算装置に読出
したデータをでめる。レジスタ4.アドレスアレイ1.
比較器5.6.レジスタ7、バッファ8.バッファ9゜
レジスタ10,11.第1のデータアレイ2.第2のデ
ータアレイ3.レジスタ13.レジスタ16レジスタ1
4.17.セレクタ12,15.セレクタ18.19,
20.レジスタ21につめては第1図の説明と同じであ
る。As can be seen from the above explanation, the data array to which you wish to write can perform a write operation only when the LSB of the write address is not the same as the LSB of the read address, while the data array to which you wish to read can perform the write operation. A read address can be supplied at any time, and the read data can be stored in the arithmetic unit. Register 4. Address array 1.
Comparator 5.6. Register 7, buffer 8. Buffer 9° register 10, 11 . First data array2. Second data array3. Register 13. register 16 register 1
4.17. Selectors 12, 15. selector 18.19,
20. The contents of the register 21 are the same as those described in FIG.
ゲート26は、レジスタ10に保持される書込みアドレ
スのLSBが「0」のとき、セレクタ12の出力が書込
みアドレスになるように指示し、「1」のときセレクタ
15の出力が書込みアドレスになるように指示するゲー
トである。比較器28は、読出しアドレスのLSBと書
込みアドレスのLSBが一致するかどうか全検出する回
路で、致した場合はレジスタ29t rljにセットす
る。The gate 26 instructs the output of the selector 12 to become the write address when the LSB of the write address held in the register 10 is "0", and instructs the output of the selector 15 to become the write address when it is "1". It is a gate that instructs. The comparator 28 is a circuit that detects whether the LSB of the read address and the LSB of the write address match, and if they match, it is set in the register 29trlj.
セレクタ27は、レジスタ4に保持されている読出しア
ドレスと、レジスタ7に保持されている読出しアドレス
とを、レジスタ29の出力で切換えるセレクタであシ、
セレクタ27の出力でおる読出しアドレスとレジスタ1
0の出力である書込みアドレスのLSBが異なる場合は
レジスタ29は「0」のままで、レジスタ4の出力を選
択するが、読出しアドレスと書込みアドレスのLSBが
同じだった場合は、レジスタ29は「1」となってレジ
スタ7の出力全選択し、レジスタ29が「0」となるま
でこの状態が続く。The selector 27 is a selector that switches between the read address held in the register 4 and the read address held in the register 7 using the output of the register 29;
Read address and register 1 output from selector 27
If the LSB of the write address, which is an output of 0, is different, the register 29 remains "0" and the output of register 4 is selected. However, if the LSB of the read address and the write address are the same, the register 29 remains "0". This state continues until the register 29 becomes "0" and all the outputs of the register 7 are selected.
以上の説明でわかるように、書込みアドレスのLSBで
示される書込みを行ないたいデータ・アレイには常に書
込みアドレスが供給されて書込み動作が行われ、読出し
ケ行ないたいデータ・アレイが書込み動作のため読出し
アドレスを供給できかかったときは、供給できるまで読
出しアドレスを保持し続けるという動作を行なうことで
、読出しアドレスのLSBと書込みアドレスのLSBと
が同じでなければ読出し動作と書込み動作を同時に行な
うことができる。As can be seen from the above explanation, the write address is always supplied to the data array to be written indicated by the LSB of the write address and a write operation is performed, and the data array to be read is read out for the write operation. When an address cannot be supplied, the read address is held until it can be supplied, so that read and write operations can be performed at the same time unless the LSB of the read address and the LSB of the write address are the same. can.
第3図は本発明の第3の実施例を示すブロック図でおる
。レジスタ4.アドレスアレイ1.比較!5 、6 、
レジスタ7、バック丁8,9.レジスタ10,11,1
4,17.セレクタ18.レジスタ21については第1
図の説明と同じである。第1のデータ・アレイ2.第2
のデータ・アレイ3は、第1図と異なシ、レベル毎の分
割となっており、レベル02>;第1のデータ・アレイ
2.レベル1が第2のデータ・アレイ3である。それに
伴って、レジスタ13,16も第1図と異なシ、ライト
イネーブルは各データ・アレイに対して1ビツトだけと
なっている。セレクタ12.15も同様でるる。ゲート
30は、比較器5の反転出力とレジスタ10のレベルO
のビ、ットの論理積をとることにより、書込みを行ない
たいレベルが、読出しを行ないたいレベルと同じでなけ
れば、セレクタ12の出力を書込みアドレスとして、第
1のデータ・アレイ2に書込み動作を行わせることを指
示するゲートである。ゲート31も同様である。FIG. 3 is a block diagram showing a third embodiment of the present invention. Register 4. Address array 1. Compare! 5, 6,
Register 7, back 8, 9. Register 10, 11, 1
4,17. Selector 18. For register 21, the first
It is the same as the explanation of the figure. First data array2. Second
The data array 3 is different from FIG. 1 in that it is divided into levels: level 02>; first data array 2. Level 1 is the second data array 3. Accordingly, the registers 13 and 16 are also different from those in FIG. 1, and the write enable is only one bit for each data array. The same goes for selectors 12 and 15. Gate 30 connects the inverted output of comparator 5 and the level O of register 10.
By taking the AND of the bits, if the desired level for writing is not the same as the level for reading, a write operation is performed to the first data array 2 using the output of the selector 12 as the write address. This is a gate that instructs the user to perform the following steps. The same applies to the gate 31.
以上の説明でわかるように、書込みを行ないたいレベル
と読出しを行ないたいレベルとが同じでないときだけ書
込みt行ない丸いデータ・アレイに書込み動作を行なう
ことができ、一方読出しを行ないたいデータ・アレイに
はいつでS!!出しアドレスが供給できて、演算装置K
m出したデータを送ることができる。As can be seen from the above explanation, a write operation can be performed on a round data array only when the level to which one wishes to write is not the same as the level from which one wishes to read; When is S! ! The outgoing address can be supplied and the arithmetic unit K
You can send the data you have generated.
第4図は、本発明の第4の実施例を示すブロック図でめ
る。レジスタ4.アドレスアレイl、比較器5,6.レ
ジスタ7、バッファ8,9.レジスタ10,11.セレ
クタ12,15.レジスタ13.14,16117.第
1のデータ・アレイ2、第2のデータ・アレイ3.セレ
クタ18.レジスタ21については第3図の説明と岡じ
である。セレクタ12は、レジスタ10のレベルOのビ
ットが「1」のとき書込みアドレスを出力してデータ・
アレイ2に書込み動作を行わせる。セレクタ15も同様
でおる。ゲー132,33.34は、読出しを行ないた
いレベルと書込みt行ないたいレベルが一致するかどう
かを検出するゲートで、一致した場合はレジスタ29t
−rlJにセットする。セレクタ27はレジスタ4に保
持されている読出しアドレスと、レジスタ7に保持され
ている読出しアドレスとを、レジスタ29の出力で切換
えるセレクタであシ、セレクタ27の出力である読出し
アドレスでアドレスアレイ1を索引した結果比較器5,
6から出力される読出し1行ないたいレベルト、レジス
タIOK保持される書込みを行ないたいレベルが異なる
場合はレジスタ29は「0」のままでレジスタ4t−選
択するが、読出しを行ないたいレベルと書込みを行ない
たいレベルが同じだった場合は、レジスタ29は「1」
となってレジスタ7を選択し、レジスタ29がrOJと
なるまでこの状態が続く。FIG. 4 is a block diagram showing a fourth embodiment of the present invention. Register 4. Address array l, comparators 5, 6 . Register 7, buffers 8, 9 . Registers 10, 11. Selectors 12, 15. Registers 13.14, 16117. first data array 2, second data array 3. Selector 18. The register 21 is the same as the explanation in FIG. The selector 12 outputs the write address when the level O bit of the register 10 is "1" and reads the data.
Cause array 2 to perform a write operation. The same applies to the selector 15. Gates 132, 33, and 34 are gates that detect whether or not the level at which reading is desired matches the level at which writing is desired. If they match, the register 29t is
- Set to rlJ. The selector 27 is a selector that switches between the read address held in the register 4 and the read address held in the register 7 using the output of the register 29. indexed result comparator 5,
If the level at which you want to read one line output from 6 and the level at which you want to write held in register IOK are different, leave register 29 at "0" and select register 4t, but the level at which you want to read and write is different. If the desired levels are the same, register 29 is set to "1".
This selects register 7, and this state continues until register 29 becomes rOJ.
以上の説明でわかるように、書込みを行ないたいレベル
のデータ・アレイには常に書込みアドレスが供給されて
書込み動作が行われ、読出しを行ないたいレベルのデー
タ・アレイが書込み動作のため読出しアドレスを供給で
きなかったときは、供給できるまで読出しアドレスを保
持し続けるという動作を行なうことで、読出しレベルと
書込みレベルが同じでなければ読出し動作と書込み動作
を同時に行なうことができる6
〔発明の効果〕
以上説明したように本発明は、キャッシュ記憶への書込
みアドレスをストアバッファに登録する際に1その書込
みアドレスでアドレスアレイを索引して得られた書込み
レベルを同時に登録して、ストアバッファからデータ・
アレイへの書込み時にアドレスアレイを索引する必要を
なくシ、かつ、データ・アレイをアドレスまたはレベル
で分割して分割されたデータ・アレイが独立に読み書き
できる機能を有することで、読出し丸い分割データ・ア
レイと書込みたい分割データ・アレイが異なれば、読出
し動作と書込み動作が同時にできるという効果がある。As you can see from the above explanation, the data array at the level you want to write to is always supplied with a write address for a write operation, and the data array at the level you want to read is always supplied with a read address for a write operation. If this is not possible, by continuing to hold the read address until it can be supplied, it is possible to perform read and write operations at the same time unless the read and write levels are the same.6 [Effects of the Invention] As described above, in the present invention, when registering a write address to cache memory in a store buffer, 1) the write level obtained by indexing the address array with the write address is simultaneously registered, and the data is read from the store buffer.
By eliminating the need to index the address array when writing to the array, and by having the function to divide the data array by address or level and read and write the divided data arrays independently, it is possible to read round divided data. If the array and the divided data array to be written are different, there is an advantage that read and write operations can be performed simultaneously.
をof
第1図は本発明の第1の実施例を示すブロック図、第2
図は本発明の第2の実施例を示すブロック図、第3図は
本発明の第3の実施例を示すブロック図、第4図は本発
明の第4の実施例を示すフロック図である。
1・・・アドレスアレイ、2・・・第1のデータ・アレ
イ、3・・・第2のデータ・アレイ、 4,7,10゜
11.13,14,16,17,21.29・・・レジ
スタ、5.6.28−・・比較器、8,9・・・バッフ
ァ、12゜15.18,19,20.27・・・セレク
タ、22,23゜24.25,26,30,31,32
,33.34・・・ゲート。
代理人 弁理士 内 原 晋
第1図
ニ富f場−Ljl
清算執冨FIG. 1 is a block diagram showing a first embodiment of the present invention;
FIG. 3 is a block diagram showing a second embodiment of the invention, FIG. 3 is a block diagram showing a third embodiment of the invention, and FIG. 4 is a block diagram showing a fourth embodiment of the invention. . 1... Address array, 2... First data array, 3... Second data array, 4, 7, 10° 11.13, 14, 16, 17, 21.29...・Register, 5.6.28 - Comparator, 8, 9... Buffer, 12° 15.18, 19, 20.27... Selector, 22, 23° 24.25, 26, 30, 31, 32
,33.34...Gate. Agent Patent Attorney Susumu Uchihara Diagram 1 Nitomi Fba-Ljl Liquidator Tomi
Claims (1)
アティブ方式のキャッシュ記憶装置において、読出しま
たは書込みアドレスを保持するアドレス回路と、キャッ
シュ記憶内に登録されているデータのアドレスを記憶し
て前記アドレス回路に保持されるアドレスを供給すると
前記保持されたアドレスの目的とするデータ・ブロック
が前記キャッシュ記憶内に登録されていれば前記キャッ
シュ記憶内でのレベルを出力するアドレス・アレイと、
前記アドレス回路に保持される書込みアドレスおよび該
書込みアドレスを前記アドレス・アレイに供給して得ら
れたレベルの組を複数組並びに前記書込みアドレスに対
応した書込みデータを一時貯えるストアバッファと、一
度に読み書きするデータ幅で分割され、各々がアドレス
・レジスタおよびレベル毎の書込みを指示するライトイ
ネーブルレジスタを有し、前記ストアバッファからの書
込みデータを格納するデータ・アレイと、前記アドレス
回路に保持されている読出しアドレスと前記ストア・バ
ッファの出力である書込みアドレスとを比較し読出しを
行う分割されたデータ・アレイと書込みを行う分割され
たデータ・アレイとが同一か否かを判定する手段と、前
記判定結果が否であれば、前記アドレス回路に保持され
ている読出しアドレスを読出しを行う前記分割されたデ
ータ・アレイのアドレスレジスタに供給すると共に、前
記ストアバッファから出力された書込みアドレスおよび
レベルを書込みを行う前記分割されたデータ・アレイの
アドレスレジスタとライトイネーブルレジスタに供給し
て異なる前記分割されたゼータアレイ間で同時に読出し
と書込みの動作を指示する手段と、前記判定結果が同一
であれば読出しを優先させる動作を指示する手段を備え
ることを特徴とするキャッシュ記憶装置。 2、複数のカラムと複数のレベルから成るセットアソシ
アティブ方式のキャッシュ記憶装置において、読出しま
たは書込みアドレスを保持するアドレス回路と、キャッ
シュ記憶内に登録されているデータのアドレスを記憶し
て前記アドレス回路に保持されるアドレスを供給すると
前記保持されたアドレスの目的とするデータ・ブロック
が前記キャッシュ記憶内に登録されていれば前記キャッ
シュ記憶内でのレベルを出力するアドレス・アレイと、
前記アドレス回路に保持される書込みアドレスおよび該
書込みアドレスを前記アドレス・アレイに供給して得ら
れたレベルの組を複数組並びに前記書込みアドレスに対
応した書込みデータを一時貯えるストアバッファと、一
度に読み書きするデータ幅で分割され、各々がアドレス
・レジスタおよびレベル毎の書込みを指示するライトイ
ネーブルレジスタを有し、前記ストアバッファからの書
込みデータを格納するデータ・アレイと、前記ストアバ
ッファの出力である書込みアドレスおよびレベルを、書
込みを行う前記分割されたデータ・アレイに供給する手
段と、前記アドレス回路に保持される読出しアドレスを
前記ストアバッファの出力が供給されていない全ての前
記分割されたデータ・アレイに供給する手段と、前記読
出しアドレスで読出しを行う分割データ・アレイに該読
出しアドレスを供給できたか否かを判定する手段と、該
判定結果が否でなければ前記分割データ・アレイから読
出したデータを演算装置へ送り、該判定結果が否であれ
ば、否でなくなるまで同じ読出しアドレスを前記分割デ
ータ・アレイに供給し続ける手段を備えることを特徴と
する、キャッシュ記憶装置。 3、複数のカラムと複数のレベルから成るセットアソシ
アティブ方式のキャッシュ記憶装置において、読出しま
たは書込みアドレスを保持するアドレス回路と、キャッ
シュ記憶内に登録されているデータのアドレスを記憶し
て前記アドレス回路に保持されるアドレスを供給すると
前記保持されたアドレスの目的とするデータ・ブロック
が前記キャッシュ記憶内に登録されていれば前記キャッ
シュ記憶内でのレベルを出力するアドレス・アレイと、
前記アドレス回路に保持される書込みアドレスおよび該
書込みアドレスを前記アドレス・アレイに供給して得ら
れたレベルの組を複数組並びに前記書込みアドレスに対
応した書込みデータを一時貯えるストアバッファと、レ
ベル毎に分割されて、各々がアドレスレジスタを有して
、レベル毎に独立して指示に従い書込み動作し前記スト
アバッファからの書込みデータを格納する分割データ・
アレイと、前記アドレス回路に保持されている読出しア
ドレスによって索引された前記アドレス・アレイの出力
と、前記ストアバッファの出力である書込みレベルとを
比較し、読出しを行うレベルと書込みを行うレベルとが
同一か否かを判定する手段と、前記判定結果が否であれ
ば、前記アドレス回路に保持されている読出しアドレス
を、読出しを行うレベルの前記分割データアレイのアド
レスレジスタに供給すると共に、前記ストアバッファか
ら出力された書込みアドレスを、書込みを行うレベルの
前記分割データアレイのアドレスレジスタに供給して書
込み動作を行なわせ、異なる前記分割されたデータアレ
イ間で同時に読出しと書込みの動作を指示する手段と、
前記判定結果が同一であれば読出しを優先させる動作を
指示する手段を備えることを特徴とするキャッシュ記憶
装置。 4、複数のカラムと複数のレベルから成るセットアソシ
アティブ方式のキャッシュ記憶装置において、読出しま
たは書込みアドレスを保持するアドレス回路と、キャッ
シュ記憶内に登録されているデータのアドレスを記憶し
て前記アドレス回路に保持されるアドレスを供給すると
前記保持されたアドレスの目的とするデータ・ブロック
が前記キャッシュ記憶内に登録されていれば前記キャッ
シュ記憶内でのレベルを出力するアドレス・アレイと、
前記アドレス回路に保持される書込みアドレスおよび該
書込みアドレスを前記アドレス・アレイに供給して得ら
れたレベルの組を複数組並びに前記書込みアドレスに対
応した書込みデータを一時貯えるストアバッファと、レ
ベル毎に分割されて各々がアドレスレジスタを有して、
レベル毎に独立して指示に従い書込み動作し前記ストア
バッファからの書込みデータを格納する分割データ・ア
レイと、前記ストアバッファの出力である書込みアドレ
スを、書込みを行うレベルの前記分割データ・アレイに
供給する手段と、前記アドレス回路に保持される読出し
アドレスを、前記ストアバッファの出力が供給されてい
ない全てのレベルの前記分割データ・アレイに供給する
手段と、前記読出しアドレスで読出しを行う前記分割デ
ータ・アレイに該アドレスを供給できたか否かを判定す
る手段と、該判定結果が否でなければ前記分割データ・
アレイから読出したデータを演算装置へ送り、該判定結
果が否であれば、否でなくなるまで同じ読出しアドレス
を前記分割データアレイに供給し続ける手段を備えるこ
とを特徴とするキャッシュ記憶装置。[Claims] 1. A set-associative cache storage device comprising multiple columns and multiple levels, including an address circuit that holds read or write addresses and an address circuit that stores addresses of data registered in the cache storage. an address array that, when an address held in the address circuit is supplied to the address circuit, outputs a level in the cache memory if a target data block of the held address is registered in the cache memory;
A plurality of sets of a write address held in the address circuit and a level obtained by supplying the write address to the address array, a store buffer for temporarily storing write data corresponding to the write address, and a store buffer for temporarily storing write data corresponding to the write address; each having an address register and a write enable register for instructing writing for each level, and a data array for storing write data from the store buffer, and a data array held in the address circuit. means for comparing a read address and a write address that is an output of the store buffer to determine whether the divided data array to be read and the divided data array to be written are the same; If the result is negative, the read address held in the address circuit is supplied to the address register of the divided data array to be read, and the write address and level output from the store buffer are written. means for simultaneously instructing read and write operations between the different divided zeta arrays by supplying the address register and write enable register of the divided data array; and if the determination result is the same, read is given priority; A cache storage device comprising means for instructing an operation to be performed. 2. In a set-associative cache storage device consisting of multiple columns and multiple levels, there is an address circuit that holds a read or write address, and an address circuit that stores the address of data registered in the cache storage and stores it in the address circuit. an address array that, when supplied with a retained address, outputs a level in the cache memory if a target data block of the retained address is registered in the cache memory;
A plurality of sets of a write address held in the address circuit and a level obtained by supplying the write address to the address array, a store buffer for temporarily storing write data corresponding to the write address, and a store buffer for temporarily storing write data corresponding to the write address; each having an address register and a write enable register for instructing writing for each level; a data array that stores write data from the store buffer; and a data array that stores write data from the store buffer; means for supplying addresses and levels to said divided data arrays for writing; and means for supplying read addresses held in said address circuit to all said divided data arrays to which the output of said store buffer is not supplied. means for determining whether or not the read address has been supplied to the divided data array that performs reading at the read address; and if the determination result is negative, the data read from the divided data array; A cache storage device, comprising means for sending a read address to an arithmetic unit and, if the determination result is negative, continuing to supply the same read address to the divided data array until the determination result is no longer negative. 3. In a set-associative cache storage device consisting of multiple columns and multiple levels, there is an address circuit that holds a read or write address, and an address circuit that stores the address of data registered in the cache storage and stores it in the address circuit. an address array that, when supplied with a retained address, outputs a level in the cache memory if a target data block of the retained address is registered in the cache memory;
a plurality of sets of write addresses held in the address circuit and levels obtained by supplying the write addresses to the address array; a store buffer for temporarily storing write data corresponding to the write addresses; and a store buffer for temporarily storing write data corresponding to the write addresses; Divided data is divided, each having an address register, writes independently according to instructions for each level, and stores write data from the store buffer.
The output of the address array indexed by the read address held in the address circuit is compared with the write level that is the output of the store buffer, and the level for reading and the level for writing are determined. means for determining whether they are the same or not; and if the determination result is negative, supplying the read address held in the address circuit to the address register of the divided data array at the level to be read; Means for supplying the write address output from the buffer to the address register of the divided data array at the writing level to perform a write operation, and simultaneously instructing read and write operations between different divided data arrays. and,
A cache storage device characterized by comprising means for instructing an operation to give priority to reading if the determination results are the same. 4. In a set-associative cache storage device consisting of multiple columns and multiple levels, there is an address circuit that holds a read or write address, and an address circuit that stores the address of data registered in the cache storage and stores it in the address circuit. an address array that, when supplied with a retained address, outputs a level in the cache memory if a target data block of the retained address is registered in the cache memory;
a plurality of sets of write addresses held in the address circuit and levels obtained by supplying the write addresses to the address array; a store buffer for temporarily storing write data corresponding to the write addresses; and a store buffer for temporarily storing write data corresponding to the write addresses; divided, each having an address register,
A divided data array that performs write operations independently according to instructions for each level and stores write data from the store buffer, and supplies a write address that is the output of the store buffer to the divided data array of the level that performs writing. means for supplying the read address held in the address circuit to the divided data arrays of all levels to which the output of the store buffer is not supplied, and the divided data read at the read address;・Means for determining whether or not the address could be supplied to the array, and if the determination result is negative, the divided data.
A cache storage device characterized by comprising means for sending data read from the array to an arithmetic unit and, if the determination result is negative, continuing to supply the same read address to the divided data array until the determination result is no longer negative.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2268912A JPH04145552A (en) | 1990-10-05 | 1990-10-05 | Cache storage device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2268912A JPH04145552A (en) | 1990-10-05 | 1990-10-05 | Cache storage device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04145552A true JPH04145552A (en) | 1992-05-19 |
Family
ID=17464998
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2268912A Pending JPH04145552A (en) | 1990-10-05 | 1990-10-05 | Cache storage device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04145552A (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04199243A (en) * | 1990-11-26 | 1992-07-20 | Nec Corp | Cache storage device |
| JPH04199242A (en) * | 1990-11-26 | 1992-07-20 | Nec Corp | Cache storage device |
| US6374334B1 (en) | 1994-07-04 | 2002-04-16 | Fujitsu Limited | Data processing apparatus with a cache controlling device |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5694567A (en) * | 1979-12-28 | 1981-07-31 | Fujitsu Ltd | Busy control system for buffer memory |
| JPS59213084A (en) * | 1983-05-16 | 1984-12-01 | Fujitsu Ltd | Buffer store control system |
-
1990
- 1990-10-05 JP JP2268912A patent/JPH04145552A/en active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5694567A (en) * | 1979-12-28 | 1981-07-31 | Fujitsu Ltd | Busy control system for buffer memory |
| JPS59213084A (en) * | 1983-05-16 | 1984-12-01 | Fujitsu Ltd | Buffer store control system |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04199243A (en) * | 1990-11-26 | 1992-07-20 | Nec Corp | Cache storage device |
| JPH04199242A (en) * | 1990-11-26 | 1992-07-20 | Nec Corp | Cache storage device |
| US6374334B1 (en) | 1994-07-04 | 2002-04-16 | Fujitsu Limited | Data processing apparatus with a cache controlling device |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2646854B2 (en) | Microprocessor | |
| EP0125855B1 (en) | Buffer-storage control system | |
| JPH04145552A (en) | Cache storage device | |
| JPS6113268B2 (en) | ||
| JP2636485B2 (en) | Cache storage | |
| JPH0232436A (en) | Buffer memory | |
| JP2591928B2 (en) | Cache storage circuit | |
| JP3190661B2 (en) | Information processing system | |
| JPS62145341A (en) | Cache memory system | |
| JPH04199242A (en) | Cache storage device | |
| JPH0520192A (en) | Cache memory store system | |
| JPH04199243A (en) | Cache storage device | |
| JPH04241051A (en) | Cache device | |
| JPH06314238A (en) | Buffer storage device | |
| JPH03257643A (en) | Information processor | |
| JPH0511331B2 (en) | ||
| JPH011044A (en) | memory access control device | |
| JPH02141847A (en) | Address conversion buffer control system | |
| JPH04125747A (en) | Cache memory controller | |
| JPS6398047A (en) | Cache memory | |
| JPS61165144A (en) | Memory access controlling system | |
| JPH06309227A (en) | Cache memory device | |
| JPH058458B2 (en) | ||
| JPH04267446A (en) | Cache memory control device | |
| JPS6116350A (en) | Buffer storage device of information processor |