JPH04199243A - Cache storage device - Google Patents
Cache storage deviceInfo
- Publication number
- JPH04199243A JPH04199243A JP2318009A JP31800990A JPH04199243A JP H04199243 A JPH04199243 A JP H04199243A JP 2318009 A JP2318009 A JP 2318009A JP 31800990 A JP31800990 A JP 31800990A JP H04199243 A JPH04199243 A JP H04199243A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- read
- array
- write
- 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
- 230000015654 memory Effects 0.000 claims abstract description 33
- 238000003491 array Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本発明は情報処理装置に使用されるキャッシュ記憶装置
に関する。The present invention relates to a cache storage device used in an information processing device.
従来のキャッシュ記憶を持つキャッシュ記憶装置につい
て説明する。
周知のように、キャッシュ記憶装置は情報処理装置のデ
ータ読出しをより高速に行うために設けられている、高
速、小容量の記憶装置であり、主記憶装置内のデータの
一部を貯える働きをする。
その際、主記憶装置とキャッシュ記憶は、ある一定の大
きさのブロックに区切られており、キャッシュ記憶のデ
ータが主記憶装置上のどの場所のものであるかを覚えて
おくだめの小容量のメモリを持っている。このメモリは
アドレス・アレイと呼ばれる。
従って、情報処理装置がキャッシュ記憶装置をアクセス
する場合には、そのデータの主記憶装置上のアドレスに
よってアドレス・アレイを索引し、求めるデータのキャ
ッシュ記憶装置内での有無を調べる。キャッシュ記憶装
置内に求めるデータが存在する場合には、そのデータの
キャッシュ記憶装置内でのアドレスを求める。即ち、ア
ドレス・アレイによって、主記憶装置のアドレスをキャ
ッシュ記憶装置内のアドレスに変換しているわけである
。
ところで、従来は、キャッシュ記憶からの読出しも書込
みも同一のアドレス・アレイを索引しており、読出し及
び書込み要求が競合した場合には、どちらかの要求を待
たせなければならなかった。A cache storage device having conventional cache storage will be explained. As is well known, a cache storage device is a high-speed, small-capacity storage device that is provided to speed up data reading by an information processing device, and has the function of storing part of the data in the main storage device. do. At this time, the main memory and cache memory are divided into blocks of a certain size, and a small capacity block is used to remember which location on the main memory the data in cache memory belongs to. have memory. This memory is called an address array. Therefore, when an information processing device accesses a cache storage device, it indexes the address array using the address of the data on the main storage device to check whether the desired data exists in the cache storage device. If the desired data exists in the cache storage device, the address of the data in the cache storage device is determined. That is, the address array converts addresses in the main memory to addresses in the cache memory. By the way, in the past, the same address array was indexed for both reading and writing from cache storage, and when reading and writing requests conflicted, one of the requests had to wait.
上述した従来のキャッシュ記憶装置は、アドレス・アレ
イか1つしかないため、読出しおよび書込み要求が同時
に発生したらどちらかの要求を待たせる必要があった。
従って、本発明の目的は、読出しおよび書込み要求が同
時に発生しても分割されたデータ・アレイがが異なれば
それらの要求を同時に行えるようにしたキャッシュ記憶
装置を提供することにある。The conventional cache storage device described above has only one address array, so if read and write requests occur simultaneously, it is necessary to make one of the requests wait. SUMMARY OF THE INVENTION Accordingly, it is an object of the present invention to provide a cache storage device that allows read and write requests to be performed simultaneously even if they are generated in different divided data arrays.
本発明によるキャッシュ記憶装置は、主記憶装置に記憶
されたデータを一時的に貯えるキャッシュ記憶を有する
キャッシュ記憶装置であって、前記キャッシュ記憶は、
一度に読出すかまたは書込むデータ幅もしくは該データ
幅の複数倍のデータ幅で分割され、その各々がアドレス
レジスタを有するデータ・アレイから成り、前記キャッ
シュ記憶の読出しアドレスを保持する読出しアドレス回
路と、前記キャッシュ記憶の書込みアドレスを保持する
書込みアドレス回路と、前記キャッシュ記憶内に登録さ
れているデータのアドレスを記憶し、前記読出しアドレ
スが供給され、該読出しアドレスの目的とするデータ・
ブロックが登録されていれば、前記キャッシュ記憶内で
のアドレスを出力する第1のアドレス・アレイと、該第
1のアドレス・アレイの写しであって、前記書込みアド
レスが供給され、該書込みアドレスの目的とするデータ
・ブロックが登録されていれば、前記キャッシュ記憶内
でのアドレスを出力する第2のアドレス・アレイと、前
記読出しアドレスと前記書込みアドレスとを比較するこ
とによって、読出し行ないたい分割されたデータ・アレ
イと書込みを行ないたい分割されたデータ・アレイとが
同一が否かを判定する判定手段と、該判定手段による判
定結果に基づいて前記データ・アレイに対する読出しと
書込みの動作を制御するキャッシュ制御手段とを備える
ことを特徴とする。A cache storage device according to the present invention is a cache storage device having a cache storage for temporarily storing data stored in a main storage device, the cache storage comprising:
a read address circuit comprising a data array divided by a data width to be read or written at once or a data width multiple times the data width, each having an address register, and holding a read address of the cache memory; A write address circuit holds a write address of the cache memory, and a write address circuit stores an address of data registered in the cache memory, and is supplied with the read address and writes the target data of the read address.
If the block is registered, a first address array outputting an address in the cache memory and a copy of the first address array provided with the write address; If the target data block is registered, the partitioned data block to be read is determined by comparing the read address and the write address with a second address array that outputs the address in the cache memory. determining means for determining whether the divided data array to be written is the same as the divided data array to which data is to be written; and controlling read and write operations for the data array based on the determination result by the determining means. The method is characterized by comprising a cache control means.
前記キャッシュ制御手段は、前記判定手段による判定結
果が否であれば、前記読出しアドレスを前記第1のアド
レス・アレイおよび前記読出しアドレスに対応した分割
されたデータ・アレイに供給すると共に、前記書込みア
ドレスを前記第2のアドレス・アレイ及び前記書込みア
ドレスに対応した分割されたデータ・アレイに供給して
、異なる分割されたデータ・アレイ間で当時に読出しと
書込みの動作を指示し、前記判定手段による判定結果が
同一であれば、読出しを優先させる動作を指示する。If the judgment result by the judgment means is negative, the cache control means supplies the read address to the first address array and the divided data array corresponding to the read address, and also supplies the read address to the first address array and the divided data array corresponding to the read address. is supplied to the second address array and the divided data array corresponding to the write address to instruct read and write operations between different divided data arrays at that time, and If the determination results are the same, an operation that gives priority to reading is instructed.
次に、本発明ついて図面を参照して説明する。
第1図を参照すると、本発明の一実施例によるキャッシ
ュ記憶装置は、命令やオペランドの先取りを行なう先行
制御装置が出力する仮想アドレスを受取るレジスタ(V
AAR)13を有する。このレジスタ13は、後述する
キャッシュ記憶の読出しアドレスを保持する読出しアド
レス回路として働く。
アドレス変換バッファ(TLB)1はレジスタ〕3に保
持された仮想アドレスから実アドレスを索引するための
メモリである。
第1及び第2のアドレス・アレイ(AAI及びAA2)
2及び3は、このキャッシュ記憶のデータ・ブロックの
主記憶装置上でのアドレスを記憶しておくメモリである
。
第1のアドレス・アレイ2は、レジスタ13に保持され
た仮想アドレスの一部であって、アドレス変換バッファ
1によるアドレス変換の際に影響を受けない実アドレス
部の一部で索引され実アドレスを出力する。この実アド
レスとアドレス変換バッフアコから出力された実アドレ
スとは比較器4で比較される。この比較結果は、キャッ
シュ制御回路20に対して、このキャッシュ記憶装置に
目的とするデータ・ブロックが存在するかどうかの判定
結果を示す。
第1のバッファ10は、先行制御装置からキャッシュ記
憶に対して書込み要求が出されたとき、仮想アドレスが
アドレス変換バッファ1によって変換された実アドレス
を貯えておくバッファである。
第1のバッファ10の出力はレジスタ〕2に保持される
。このレジスタ12はキャッシュ記憶の書込みアドレス
を保持する書込みアドレス回路として働く。
レジスタ12に保持された実アドレスと第2のアドレス
・アレイ3から出力される実アドレスとは比較器5で比
較される。この比較結果は、キャッシュ制御回路20に
対して、このキャッシュ記憶装置に目的とするデータ・
ブロックが存在するかどうかの判定結果を示す。
第2のバッファ11は、演算装置から演算結果を受けと
って、キャッシュ記憶に書込むまでの間、データを貯え
ておくバッファである。
第O及び第1のデータ・アレイ(DAO及びDA、 1
. ) 8及び9は、アドレスの最下位ビットLSBか
“0“のとき第0のデータ・アレイ8を、“]“のとき
第1のデータ争アレイ9をアクセスするように分割され
ているキャッシュ記憶である。
換言すれば、キャッシュ記憶をアクセスするアドレスが
偶数のとき第0のデータ・アレイ8を、奇数のとき第1
のデータ・アレイ9をアクセスするように分割されてい
る。
レジスタ14及び16は、それぞれ第0及び第1のデー
タ・アレイ10及び1]のアドレスを保持するレジスタ
である。
レジスタ15及び17は、それぞれ第0及び第1のデー
タ・アレイ10及び11への書込みデータを保持するレ
ジスタである。
第1及び第2のセレクタ6及び7は、それぞれレジスタ
14及び16へ送るアドレスをアドレス変換バッファ1
の出力かレジスタ12の出力かを切り換えて、第O及び
第1のデータ・アレイ8及び9の読出しまたは書込みの
アドレスを決めるセレクタである。
第3のセレクタ18は、第0及び第1のデータ・アレイ
8及び9から読出したデータのどちらかを選択してレジ
スタ]9に供給するためのセレクタである。
次に、第2.3.4図を参照しながら、第1図に示され
たキャッシュ記憶装置の動作について詳しく説明する。
第2図は第1図のキャッシュ制御回路20の動作を示す
真理値表である。
ケース1の実行待ちでは、レジスタ13及びレジスタ1
2側に有効なアドレスが存在せず、第0及び第1のデー
タ・アレイ8及び9への読出し、書込みの要求が何もな
いことを示している。このとき、第1及び第2のセレク
タ6及び7は、アドレス変換バッファ1側でもレジスタ
12側でもどちらを選んでもよい。このような“0”ま
たは“1゛のどちらでもよい状態を×°で表している。
第1ステージとは、レジスタ13または12からレジス
タ14.16までの1マシンサイクルで動作する部分を
指す。同様に、第2ステージとは、レジスタ14.16
からレジスタ19までの1マシンサイクルで動作する部
分をいう。
ケース1の実行待ちの動作の第2ステージでは、書込み
許可信号WEがWE−0であり、第0または第1のデー
タ・アレイ8または9は読出しサイクルとなる。また、
第3のセレクタ20は不定−×である。
次に、ケース2の読出し要求の場合の動作について説明
する。レジスタ13に有効なアドレスが存在してそのL
SB−0であるとする。これは、即ち、先行制御装置よ
りキャッシュ記憶に対して読出し要求があり、その必要
なデータが第0のデータ・アレイ8に存在することを意
味している。
また、このとき、レジスタ12には有効なアドレスがな
い、すなわち、キャッシュ記憶に対する書込み要求がな
いことを示している。
このとき、第1ステージでは、第1のセレクタ6に“0
“側を選択させ、即ち、アドレス変換バッファ1の出力
を第0のデータ・アレイ8のアドレスとする。
続いて、第2ステージでは、第0のデータ・アレイ8、
第1のデータ・アレイ9共にWE−0として読出しサイ
クルとし、第3のセレクタ18に“0“側を選択させ、
即ち、第Oのデータ・アレイ8の出力をレジスタ19に
読出して、先行制御装置もしくは演算装置へ送るという
動作をする。
次に、ケース3の書込み要求の場合の動作について説明
する。レジスタ12に有効なアドレスが存在してそのL
SB−0であり、レジスタ13に有効なアドレスが存在
しないとする。これは、即ち、先行制御装置よりキャッ
シュ記憶に対する要求はなく、第1のバッファ10から
出力された書込み要求が存在することを意味する。
このとき、第1ステージでは、第1のセレクタ6に“1
“側を選択させ、即ち、レジスタ12の出力を第0のデ
ータ・アレイ8のアドレスとする。
続いて、第2ステージでは、第0のデータ・アレイ8の
WE−1、第1のデータ・アレイ9のWE−0として、
第0のデータ・アレイ8を書込みサイクル、第1のデー
タ・アレイ9を読出しサイクルとし、第2のバッファ1
1に貯えられている演算結果をレジスタ15を経由して
、第0のデータ・アレイ8に書込むという動作をする。
次に、第3図をも参照して、ケース4の読出し及び書込
み要求が同時に発生したが、そのアドレスのLSBが異
なる場合の動作について説明する。
レジスタ13のLSB−0,レジスタ12のLSB■1
であるとする。
このとき、第1ステージでは、第1のセレクタ6に“0
”側を選択させ、即ち、アドレス変換バッファ1の出力
を第0のデータ・バッファ8のアドレスに、第2のセレ
クタ7に“1゛側を選択させ、即ち、レジスタ12の出
力を第1のデータ・バッファ9のアドレスにする。
第2ステージで、第0のデータ・アレイ8を読出しサイ
クル、第1のデータ・アレイ9を書込みサイクルにする
ことで、先行制御装置からの読出し要求と、第1のバッ
ファ10に貯えられている書込み要求とを同時に実行す
ることができる。
次に、第4図をも参照して、ケース5の読出しおよび書
込み要求が同時に発生し、かつそのアドレスのLSBが
同一である場合の動作について説明する。レジスタ13
のLSB−0,レジスタ12のLSB−0であるとする
。
このときは、読出し要求を先に動作させる。その第1ス
テージで第1のセレクタ6にアドレス変換バッファ]側
を選択させ、第2ステージで第0のデータ・アレイ8、
第1のデータ・アレイ9共に読出しサイクル、第3のセ
レクタ]8に第Oのデータ・アレイ8側を選択させ、第
0のデータ・アレイ8の読出し動作を終える。
読出し、要求の第2ステージが動作すると同時に、第1
ステージは、待たされた書込み要求を動作させる。即ち
、第1のセレクタ6にレジスタ12側を選択させ、第O
のデータ・アレイ8のアドレスとする。そし5て、次の
マシンサイクルで、第2ステージ、すなわち、第0のデ
ータ・アレイ8が書込みサイクルとなって、書込み要求
の動作を終了する。
第5図に第1図のキャッシュ制御回路の内部の論理回路
を示す。第5図において、ブロック内のへの記号はAN
Dゲート、0の記号はORゲート、Nの記号はインバー
タ、Fの記号はマシンクロックに同期して左側の信号の
状態を内部に取り込み、右側の信号に出力するフリップ
・フロップをそれぞれ示す。
信号201はレジスタ131ζ保持されたアドレスか有
効であって、第1のアドレス・アレイ2かヒツト、即ち
、第Oのデータ・アレイ8または第]のデータ・アレイ
9を読出すことを小ず仁”号である。従って、信号20
2は第00データ・アレイ8または第1のデータ・アレ
イ0への読出し要求がないか第1のデータ・アレイ9の
読出し要求があることを示す。また、信号203は第0
3データ・アレイ8または第1のデータ・ア!フイC)
・・、の読出し要求かないか第0のデータ・アレイ8の
読出し要求かあることを示す。
信号204はレジスタ〕2に保持上れたアドレスか有効
であって、第2のアドレス・アレイ3かヒツト、即ち、
第0のデータ・アレイ8または第1のデータ◆アし・イ
9への書込み要求かあるご1↓2を示す信号である。従
って、信号205は第〔−)のデータ・アレイ8・\の
書込み要求があること示す。
また、信号2・〕6は第1のデータ・了レイ9への書込
み要求かあること示す。
その結果、信号105は第0のデータ・アレイ8への書
込みを実行することを示し、第1のセレクタ6に書込み
アドレス側を選択させると共に、次のマシンサイクルで
信号107を“1 “、即ち、第0のデータ・アレイ8
のWE−1として書込み動作を終える。
信号106.108についても同様である。
信号20ニアは第1のデータ・アレイ9の読出し要求が
あることを示し、信号109で第3のセレクタ18に第
1のデータ・アレイ9を選択させることによって、第1
のデータ・アレイ9の出力をレジスタ1つを経由して演
算装置や先行制御装置へ送る。Next, the present invention will be explained with reference to the drawings. Referring to FIG. 1, a cache storage device according to an embodiment of the present invention includes a register (V
AAR) 13. This register 13 functions as a read address circuit that holds a read address of cache storage, which will be described later. An address translation buffer (TLB) 1 is a memory for indexing a real address from a virtual address held in a register [3]. First and second address arrays (AAI and AA2)
Memories 2 and 3 store the addresses of the data blocks of this cache storage on the main storage device. The first address array 2 is a part of the virtual address held in the register 13, and is indexed by a part of the real address part that is not affected by the address translation by the address translation buffer 1. Output. A comparator 4 compares this real address with the real address output from the address translation buffer. This comparison result indicates to the cache control circuit 20 the result of determination as to whether or not the target data block exists in this cache storage device. The first buffer 10 is a buffer that stores a real address whose virtual address is translated by the address translation buffer 1 when a write request is issued to the cache memory from the preceding control device. The output of the first buffer 10 is held in register 2. This register 12 functions as a write address circuit that holds the write address of the cache memory. A comparator 5 compares the real address held in the register 12 and the real address output from the second address array 3. This comparison result tells the cache control circuit 20 whether the cache storage device has the target data or not.
Indicates the result of determining whether a block exists. The second buffer 11 is a buffer that stores data until it receives the calculation result from the calculation device and writes it to the cache memory. Oth and first data array (DAO and DA, 1
.. ) 8 and 9 are cache memories divided so that when the least significant bit LSB of the address is "0", the 0th data array 8 is accessed, and when it is "]", the first data array 9 is accessed. It is. In other words, when the address accessing the cache memory is an even number, the 0th data array 8 is accessed, and when the address is an odd number, the 0th data array 8 is accessed.
data array 9 is accessed. Registers 14 and 16 are registers that hold addresses of the 0th and 1st data arrays 10 and 1, respectively. Registers 15 and 17 are registers that hold write data to the 0th and first data arrays 10 and 11, respectively. The first and second selectors 6 and 7 send addresses to the address translation buffer 1 to be sent to the registers 14 and 16, respectively.
This is a selector that determines read or write addresses for the O-th and first data arrays 8 and 9 by switching between the output of the register 12 and the output of the register 12. The third selector 18 is a selector for selecting one of the data read from the 0th and first data arrays 8 and 9 and supplying the selected data to the register]9. Next, the operation of the cache storage device shown in FIG. 1 will be explained in detail with reference to FIG. 2.3.4. FIG. 2 is a truth table showing the operation of the cache control circuit 20 of FIG. 1. When waiting for execution in case 1, register 13 and register 1
There is no valid address on the 2nd side, indicating that there are no requests for reading or writing to the 0th and 1st data arrays 8 and 9. At this time, the first and second selectors 6 and 7 may select either the address conversion buffer 1 side or the register 12 side. Such a state that can be either "0" or "1" is represented by x°. The first stage refers to the portion from register 13 or 12 to register 14 and 16 that operates in one machine cycle. Similarly, the second stage is register 14.16
This refers to the part that operates in one machine cycle from register 19 to register 19. In the second stage of the pending operation in case 1, the write enable signal WE is WE-0 and the 0th or first data array 8 or 9 is in a read cycle. Also,
The third selector 20 is undefined -x. Next, the operation in case of a read request in case 2 will be explained. If there is a valid address in register 13 and its L
Assume that it is SB-0. This means that there is a read request from the preceding control device to the cache storage, and that the necessary data exists in the 0th data array 8. Also, at this time, there is no valid address in the register 12, ie, there is no write request to the cache memory. At this time, in the first stage, the first selector 6 is set to “0”.
In other words, the output of the address translation buffer 1 is the address of the 0th data array 8.Subsequently, in the second stage, the 0th data array 8,
Both the first data array 9 is set as WE-0 in a read cycle, the third selector 18 is made to select the "0" side,
That is, the output of the O-th data array 8 is read into the register 19 and sent to the preceding control device or arithmetic device. Next, the operation in case of a write request in case 3 will be explained. If there is a valid address in register 12 and its L
Assume that the address is SB-0 and there is no valid address in the register 13. This means that there is no request for cache storage from the preceding controller, but there is a write request output from the first buffer 10. At this time, in the first stage, the first selector 6 is set to “1”.
In other words, the output of the register 12 is set as the address of the 0th data array 8.Subsequently, in the second stage, WE-1 of the 0th data array 8, the first data As WE-0 of array 9,
The 0th data array 8 is a write cycle, the 1st data array 9 is a read cycle, and the 2nd buffer 1 is a write cycle.
The operation is to write the operation result stored in 1 to the 0th data array 8 via the register 15. Next, with reference also to FIG. 3, the operation in case 4 where read and write requests occur simultaneously but the LSBs of the addresses are different will be described. LSB-0 of register 13, LSB 1 of register 12
Suppose that At this time, in the first stage, the first selector 6 is set to “0”.
” side, that is, the output of the address conversion buffer 1 is set to the address of the 0th data buffer 8, and the second selector 7 is set to the “1” side, that is, the output of the register 12 is set to the address of the 0th data buffer 8. Make it the address of data buffer 9. In the second stage, by making the 0th data array 8 a read cycle and the 1st data array 9 a write cycle, the read request from the preceding control device and the data stored in the first buffer 10 are processed. Write requests can be executed simultaneously. Next, referring also to FIG. 4, the operation in case 5 where read and write requests occur simultaneously and the LSBs of the addresses are the same will be described. register 13
Assume that the LSB-0 of the register 12 is the LSB-0 of the register 12. At this time, the read request is activated first. In the first stage, the first selector 6 selects the address translation buffer] side, and in the second stage, the 0th data array 8,
A read cycle is performed for both the first data array 9, the third selector 8 is made to select the O-th data array 8 side, and the read operation of the 0-th data array 8 is completed. At the same time that the second stage of the read request operates, the first
The stage acts on the awaited write request. That is, the first selector 6 is made to select the register 12 side, and the
Let this be the address of data array 8 of . Then, in the next machine cycle, the second stage, ie, the 0th data array 8, becomes a write cycle and completes the write request operation. FIG. 5 shows the internal logic circuit of the cache control circuit of FIG. In Figure 5, the symbol in the block is AN
The D gate, the symbol 0 represents an OR gate, the symbol N represents an inverter, and the symbol F represents a flip-flop that synchronizes with the machine clock and takes in the state of the left signal and outputs it as the right signal. The signal 201 indicates that the address held in the register 131ζ is valid and indicates that the first address array 2 or the first address array 2 or the data array 8 or the data array 9 is to be read out. ”.Therefore, signal 20
2 indicates that there is no read request to the 00th data array 8 or the first data array 0, or that there is a read request to the first data array 9. Also, the signal 203 is the 0th
3 data array 8 or first data a! Fi C)
. . , or there is a read request for the 0th data array 8. Signal 204 indicates that the address held in register 2 is valid and that second address array 3 is a hit, i.e.
This signal indicates that there is a write request to the 0th data array 8 or the first data array 9. Therefore, signal 205 indicates that there is a write request for the [-)th data array 8.\. Further, the signals 2 and 6 indicate that there is a request to write to the first data relay 9. As a result, the signal 105 indicates that writing to the 0th data array 8 is to be executed, causes the first selector 6 to select the write address side, and sets the signal 107 to "1", that is, in the next machine cycle. , 0th data array 8
The write operation ends as WE-1. The same applies to signals 106 and 108. The signal 20 near indicates that there is a request to read the first data array 9, and the signal 109 causes the third selector 18 to select the first data array 9.
The output of the data array 9 is sent to the arithmetic unit or advance control unit via one register.
以上説明したように、本発明はキャッシュ記憶のアドレ
ス・アレイを2紹持って、読出しおよび書込み時の参照
を同時にできるようにし、かつ、データ・アレイをその
アドレスで複数に分けて各々独立して読出し、または書
込みサイクルが動作できるようにすることによって、キ
ャッシュ記憶への読出しまたは書込みの動作が分割され
たデータ・アレイか異なれば、同時に実行できるという
効果がある。As explained above, the present invention has two address arrays for cache storage so that reference can be made simultaneously during reading and writing, and the data array is divided into a plurality of parts based on the addresses, each of which can be read and written independently. The advantage of allowing read or write cycles to operate is that read or write operations to cache storage can be performed simultaneously on different partitioned data arrays.
第1図は本発明の一実施例によるキャッシュ記憶装置を
示すブロック図、第2図は第1図のキャッシュ制御回路
の動作を示す真理値表、第3ズは第2図のケース4の読
出しおよび書込み要求のアドレスが競合1.なか−)だ
場合の動作を示すタイ、′・チャート、第4図は第2図
のケース5の読出しおよび書込み要求のアドレスが競合
した場合の動作を示すタイムチャート、第5図は第1図
のキャッシュ制御回路の詳細を示す回路図である。
1・・・アドレス変換バッファ(TLB) 、2・第1
のアドレス争アレイ(AAI) 、3・第2のアドレス
争アレイ(AA2) 、4.5・比較器、67・・セレ
クタ、8・・第0のデータ・アレイ(1)7\O)、9
・・・第1のデータ・アレイ(DAl、、:1.10・
・・第1のバッファ、〕1・第2 (”)バ、7ア、】
2〜17・・・レジスタ、18・・・セレクタ、19・
・・レジスタ、20・・・キャッシュ制御回路。
演算表置へ 矢行制御罠Iへ
第3図FIG. 1 is a block diagram showing a cache storage device according to an embodiment of the present invention, FIG. 2 is a truth table showing the operation of the cache control circuit in FIG. and write request address conflict 1. Figure 4 is a time chart showing the operation when the read and write request addresses conflict in case 5 of Figure 2. Figure 5 is the time chart of Figure 1. FIG. 3 is a circuit diagram showing details of the cache control circuit of FIG. 1...Address translation buffer (TLB), 2.1st
Address contention array (AAI), 3. Second address contention array (AA2), 4.5. Comparator, 67.. Selector, 8.. 0th data array (1) 7\O), 9
...first data array (DAl,, :1.10.
...1st buffer,] 1, 2nd ('') b, 7 a,]
2 to 17...Register, 18...Selector, 19.
...Register, 20...Cache control circuit. To calculation table To arrow control trap I Fig. 3
Claims (1)
ャッシュ記憶を有するキャッシュ記憶装置において、 前記キャッシュ記憶は、一度に読出すかまたは書込むデ
ータ幅もしくは該データ幅の複数倍のデータ幅で分割さ
れ、その各々がアドレスレジスタを有するデータ・アレ
イから成り、 前記キャッシュ記憶の読出しアドレスを保持する読出し
アドレス回路と、 前記キャッシュ記憶の書込みアドレスを保持する書込み
アドレス回路と、 前記キャッシュ記憶内に登録されているデータのアドレ
スを記憶し、前記読出しアドレスが供給され、該読出し
アドレスの目的とするデータ・ブロックが登録されてい
れば、前記キャッシュ記憶内でのアドレスを出力する第
1のアドレス・アレイと、 該第1のアドレス・アレイの写しであって、前記書込み
アドレスが供給され、該書込みアドレスの目的とするデ
ータ・ブロックが登録されていれば、前記キャッシュ記
憶内でのアドレスを出力する第2のアドレス・アレイと
、 前記読出しアドレスと前記書込みアドレスとを比較する
ことによって、読出し行ないたい分割されたデータ・ア
レイと書込みを行ないたい分割されたデータ・アレイと
が同一が否かを判定する判定手段と、 該判定手段による判定結果に基づいて前記データ・アレ
イに対する読出しと書込みの動作を制御するキャッシュ
制御手段と を備えることを特徴とするキャッシュ記憶装置。 2、前記キャッシュ制御手段は、前記判定手段による判
定結果が否であれば、前記読出しアドレスを前記第1の
アドレス・アレイおよび前記読出しアドレスに対応した
分割されたデータ・アレイに供給すると共に、前記書込
みアドレスを前記第2のアドレス・アレイ及び前記書込
みアドレスに対応した分割されたデータ・アレイに供給
して、異なる分割されたデータ・アレイ間で当時に読出
しと書込みの動作を指示し、前記判定手段による判定結
果が同一であれば、読出しを優先させる動作を指示する
請求項1記載のキャッシュ記憶装置。[Scope of Claims] 1. A cache storage device having a cache memory for temporarily storing data stored in a main memory, wherein the cache memory has a data width or a plurality of data widths to be read or written at one time. a read address circuit that holds a read address of the cache memory; a write address circuit that holds a write address of the cache memory; and a write address circuit that holds a write address of the cache memory; A first step that stores the address of data registered in the cache memory, and outputs the address in the cache memory if the read address is supplied and a data block targeted by the read address is registered. 1 address array, and a copy of the first address array in the cache memory if the write address is supplied and the data block targeted by the write address is registered. By comparing the read address and the write address with the second address array that outputs the address, it is determined whether the divided data array to be read from and the divided data array to be written to are the same. 1. A cache storage device comprising: determination means for determining whether or not the data has been received; and cache control means for controlling read and write operations for the data array based on the determination result by the determination means. 2. If the judgment result by the judgment means is negative, the cache control means supplies the read address to the first address array and the divided data array corresponding to the read address, and supplying a write address to the second address array and the divided data array corresponding to the write address to direct read and write operations between the different divided data arrays; 2. The cache storage device according to claim 1, wherein if the determination results by the means are the same, an operation is instructed to give priority to reading.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2318009A JPH04199243A (en) | 1990-11-26 | 1990-11-26 | Cache storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2318009A JPH04199243A (en) | 1990-11-26 | 1990-11-26 | Cache storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04199243A true JPH04199243A (en) | 1992-07-20 |
Family
ID=18094472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2318009A Pending JPH04199243A (en) | 1990-11-26 | 1990-11-26 | Cache storage device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04199243A (en) |
Citations (4)
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 storage device access control method |
JPH04130940A (en) * | 1990-09-21 | 1992-05-01 | Nec Corp | Cache memory device |
JPH04145552A (en) * | 1990-10-05 | 1992-05-19 | Nec Corp | Cache storage device |
-
1990
- 1990-11-26 JP JP2318009A patent/JPH04199243A/en active Pending
Patent Citations (4)
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 storage device access control method |
JPH04130940A (en) * | 1990-09-21 | 1992-05-01 | Nec Corp | Cache memory device |
JPH04145552A (en) * | 1990-10-05 | 1992-05-19 | Nec Corp | Cache storage device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0029517B1 (en) | Store-in-cache mode data processing apparatus | |
JP2646854B2 (en) | Microprocessor | |
JP3666689B2 (en) | Virtual address translation method | |
JPS5821353B2 (en) | Channel-to-memory writing device | |
JPS59213084A (en) | Buffer storage device access control method | |
US4774687A (en) | Advanced store-in system for a hierarchy memory device | |
US5452418A (en) | Method of using stream buffer to perform operation under normal operation mode and selectively switching to test mode to check data integrity during system operation | |
JPH0519176B2 (en) | ||
JPH0438014B2 (en) | ||
US6292867B1 (en) | Data processing system | |
JPS5953631B2 (en) | storage controller | |
JP2636485B2 (en) | Cache storage | |
JPH04199243A (en) | Cache storage device | |
JPH01229345A (en) | Data processor | |
JPH04199242A (en) | Cache storage device | |
JPH0836525A (en) | Multiple access cache storage | |
JP3600830B2 (en) | Processor | |
JPS5928289A (en) | Buffer storage controlling system | |
JPH0215150Y2 (en) | ||
JP2703255B2 (en) | Cache memory writing device | |
JP2684752B2 (en) | Extended storage control method | |
JPH02136946A (en) | Cache memory control circuit | |
JPS6045872A (en) | High-speed buffer memory | |
JPH0752410B2 (en) | Cache memory control method | |
JPH1097788A (en) | Information processing device |