JPH02191051A - Data processor - Google Patents
Data processorInfo
- Publication number
- JPH02191051A JPH02191051A JP1012653A JP1265389A JPH02191051A JP H02191051 A JPH02191051 A JP H02191051A JP 1012653 A JP1012653 A JP 1012653A JP 1265389 A JP1265389 A JP 1265389A JP H02191051 A JPH02191051 A JP H02191051A
- Authority
- JP
- Japan
- Prior art keywords
- request
- cache
- address
- data
- stage
- 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.)
- Granted
Links
- 238000012546 transfer Methods 0.000 claims abstract description 54
- 238000012545 processing Methods 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 12
- 238000003672 processing method Methods 0.000 claims 2
- 230000000717 retained effect Effects 0.000 claims 2
- 108010037490 Peptidyl-Prolyl Cis-Trans Isomerase NIMA-Interacting 4 Proteins 0.000 description 12
- 102100031653 Peptidyl-prolyl cis-trans isomerase NIMA-interacting 4 Human genes 0.000 description 12
- 238000000034 method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 5
- 101100316860 Autographa californica nuclear polyhedrosis virus DA18 gene Proteins 0.000 description 4
- 101000629361 Homo sapiens Paraplegin Proteins 0.000 description 4
- 102100027006 Paraplegin Human genes 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 101001098529 Homo sapiens Proteinase-activated receptor 1 Proteins 0.000 description 2
- 101001073409 Homo sapiens Retrotransposon-derived protein PEG10 Proteins 0.000 description 2
- 101000713169 Homo sapiens Solute carrier family 52, riboflavin transporter, member 2 Proteins 0.000 description 2
- 102100035844 Retrotransposon-derived protein PEG10 Human genes 0.000 description 2
- 102100036862 Solute carrier family 52, riboflavin transporter, member 2 Human genes 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 101000603877 Homo sapiens Nuclear receptor subfamily 1 group I member 2 Proteins 0.000 description 1
- 101001098560 Homo sapiens Proteinase-activated receptor 2 Proteins 0.000 description 1
- 101000713170 Homo sapiens Solute carrier family 52, riboflavin transporter, member 1 Proteins 0.000 description 1
- 102100036863 Solute carrier family 52, riboflavin transporter, member 1 Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000011835 quiches Nutrition 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【発明の詳細な説明】
玖■±芳
本発明はデータ処理装置に関し、特にキャッシュメモリ
を有するデータ処理装置に関するものである。DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a data processing device, and more particularly to a data processing device having a cache memory.
従来技術
キャッシュミスヒツトしたリクエストに応答して、主メ
モリにデータのブロック転送要求が行われるが、この場
合後続のリクエストの処理は以下の3通りのケースがあ
って、各ケースに応じて処理が夫々異なっている。Conventional technology In response to a cache miss request, a data block transfer request is made to the main memory. In this case, there are three cases in which subsequent requests are processed, and the processing is performed according to each case. Each one is different.
■後続リクエストがキャツシュヒツトの場合;この場合
は、データの順序性を保証するために、後続リクエスト
の処理は、先行するりクエストのブロック転送処理が終
了するまで待たされる。(2) When the subsequent request is a cash request: In this case, in order to guarantee the order of data, the processing of the subsequent request is waited until the block transfer process of the preceding request is completed.
■後続のリクエストがキャッシュミスヒラ1−シかつブ
ロック転送要求を行なったブロックにヒツトする場合:
この場合は、先行するりクエストのブロック中に所望の
データが存在するために、後続のりクエストの処理は先
行するリクエストのブロック転送処理が終了するまで待
たされる。■When the subsequent request hits the block for which the block transfer request was made and there is a cache miss: In this case, since the desired data exists in the block of the preceding request, the subsequent request cannot be processed. is made to wait until the block transfer processing of the preceding request is completed.
■後続のリクエストがキャッシュミスヒットしかつブロ
ック転送要求を行なったブロックにもミスヒツトする場
合;
この場合は、先行するブロック転送要求を行なっなリク
エストに連続して後続のリクエストのブロック転送要求
を行なうことができる。■If the subsequent request misses the cache and also misses the block for which the block transfer request was made; In this case, do not make the preceding block transfer request, and make the block transfer request of the subsequent request immediately after the request. Can be done.
従来のこの種のデータ処理装置では、上記3通りの状態
を検出して後続のリクエストの処理を行っており、■の
場合には後続リクエストの処理を直ちに行うことができ
るか、この場合も■、■と同様に後続リクエストの処理
を先行するリクエストのブロック転送要求が終了するま
で待たすタイプと、先行するリクエストのアドレス情報
をキヤッシュディレクトリに登録した後で、後続のリク
エストによって再びキャッシュディレクトリの索引から
やり直し、キャッシュミス検出を行い、その後に後続の
リクエストに対して主メモリにデータブロック転送要求
を行うタイプのものとがある。Conventional data processing devices of this type detect the above three conditions and process subsequent requests. , Similar to ■, there is a type in which processing of the subsequent request waits until the block transfer request of the preceding request is completed, and after registering the address information of the preceding request in the cache directory, the subsequent request reindexes the cache directory. There is a type that starts over from scratch, detects a cache miss, and then requests a data block transfer to the main memory in response to a subsequent request.
上述した従来のデータ処理装置では、後続リクエストに
ついて直ちに処理できるにもかかわらず待たされたり、
また先行するりクエストがキャッシュミスヒツトした場
合には、そのアドレス情報をキャッシュディレクトリに
登録した後に、必す後続のリクエストによってキャッシ
ュディレクトリの索引を行なって後続のリクエストの状
態をチエツクしなければならないという欠点がある。With the conventional data processing device described above, subsequent requests may be made to wait even though they can be processed immediately, or
Also, if a preceding quest misses the cache, the address information must be registered in the cache directory, and then the cache directory must be indexed by the subsequent request to check the status of the subsequent request. There are drawbacks.
最近の大型計算機では、その処理の高速化のために、1
つの処理を複数段のステージに分割して、処理の並列化
を図るパイプライン処理方式が一般的であり、各ステー
ジの遅延時間によって決定されるマシンサイクルを減少
させるために、パイプラインステージは増加傾向にある
。In recent large-scale computers, in order to speed up the processing, 1
Pipeline processing is common, in which one process is divided into multiple stages to parallelize the process.In order to reduce the machine cycle, which is determined by the delay time of each stage, the number of pipeline stages increases. There is a tendency.
従って、キャッシュディレクトリを索引するステージと
キャッシュのヒツトミスヒツトを判定するステージとが
同一ステージとはならず、複数のステージに分割される
場合かあり、またこのような高速なマシンサイクルで動
作する装置では、キャッシュのミスヒツトを検出した信
号で直接、後続のリクエストの動作を制御することは困
難であり、そのためにキャッシュのミスヒツトを検出し
たステージの次のステージで後続のリクエストの制御を
行なわなければならない。Therefore, the stage for indexing the cache directory and the stage for determining cache hits and misses may not be the same stage, but may be divided into multiple stages, and in devices that operate at such high speed machine cycles, It is difficult to directly control the operation of subsequent requests using a signal that detects a cache mishit, so subsequent requests must be controlled at the stage following the stage that detected a cache mishit.
そのなめに、先行するりクエストでキャッシュのミスヒ
ツトが検出された場合には、キャッシュディレクトリを
索引するステージからキャッシュのヒツトミスヒツトを
判定するステージまでに複数の後続のリクエストが保持
される状態となる。Therefore, if a cache miss is detected in a preceding request, a plurality of subsequent requests will be held between the stage of indexing the cache directory and the stage of determining a cache hit or miss.
このような状態で、先行するりクエストのアドレス情報
をキャッシュディレクトリに登録した後に、後続のリク
エストでキャッシュディレクトリを索引してキャッシュ
のヒツトミスヒツト状態をチエツクするためには、上記
の各ステージに保持されている後続のリクエストの退避
及び後続のリクエストによるキャッシュディレクトリの
索引のためのパイプラインステージの管理や、退避され
た後続のリクエストの各パイプラインステージへの回復
などの非常に複雑な制御と、相当なハードウェア量の投
資が必要になるという欠点がある。In such a state, after registering the address information of the preceding request in the cache directory, in order to index the cache directory in the subsequent request and check the hit-miss status of the cache, the address information held in each of the above stages is required. Management of pipeline stages for evacuation of subsequent requests and indexing of cache directories by subsequent requests, and restoration of ejected subsequent requests to each pipeline stage requires very complex control and considerable The disadvantage is that it requires investment in hardware.
発明の目的
本発明の目的は、キャッシュミスヒツトしたりクエスト
に続く後のリクエストの処理性能を向上させ得るように
したデータ処理装置を提供することである。OBJECTS OF THE INVENTION An object of the present invention is to provide a data processing device that can improve the processing performance of subsequent requests following a quest or a cache miss.
発明の構成
本発明によれは、主メモリの内容の一部写しをブロック
単位で保持するキャッシュメモリを有するデータ処理装
置であって、第1リクエストがキャッシュミスヒツトの
場合に、そのリクエスト情報を保持する保持手段と、前
記第1リクエストに続く第2のリクエストのリクエスト
情報内のアドレスと、前記保持手段に保持されているリ
クエスト情報内のアドレスとを比較する比較手段と、前
記第2リクエストがキャッシュミスヒツトの場合でかつ
前記比較手段の比較結果が不一致を示す場合に、前記第
2リクエストに応答して前記主メモリからのデータブロ
ック転送要求をなす手段とを有することを特徴とするデ
ータ処理装置が得られる。Structure of the Invention According to the present invention, there is provided a data processing device having a cache memory that holds a partial copy of the contents of the main memory in units of blocks, wherein when the first request is a cache miss, the request information is held. a holding means for comparing an address in the request information of a second request following the first request with an address in the request information held in the holding means; and means for requesting data block transfer from the main memory in response to the second request in the case of a mishit and when the comparison result of the comparison means indicates a mismatch. is obtained.
更に、本発明によれば、主メモリの内容の一部写しをブ
ロック単位で保持するキャッシュメモリと、前記キャッ
シュメモリの保持内容のディレクトリを記録するキャッ
シュディレクトリ手段と、前記キャッシュディレクトリ
手段の索引結果によりキャツシュヒツト状態を判定する
キャツシュヒツト判定手段とを含み、リクエストに応答
して前記キャッシュディレクトリ手段を索引する第1ス
テージと、この索引結果を用いて前記キャツシュヒツト
判定手段によりキャツシュヒツト状態を判定する第2ス
テージとを有するパイプライン処理方式のデータ処理装
置であって、キャッシュミスヒツトが判定されたリクエ
ストのリクエスト情報を保持するキャッシュミスヒツト
リクエスト保持手段と、このリクエストに続く後続リク
エストのリクエスト情報を前記第1及び第2ステージで
夫々保持する手段と、前記第2ステージでリクエスト情
報が保持されるリクエストに対する前記キャッシュディ
レクトリの索引結果を保持する索引結果保持手段と、前
記第2ステージで保持されているリクエスト情報内のア
ドレスと、前記キャッシュミスヒツトリクエスト保持手
段に保持されているリクエスト情報内のアドレスとを比
較する比較手段と、前記索引結果保持手段の内容がキャ
ッシュミスヒットを示しておりかつ前記比較手段の比較
結果が不一致を示している場合、前記第2ステージで保
持されているリクエストに応答して前記主メモリからの
データブロック転送要求をなす手段とを有することを特
徴とするデータ処理装置が得られる。Further, according to the present invention, there is provided a cache memory for holding a partial copy of the contents of the main memory in units of blocks, a cache directory means for recording a directory of the contents held in the cache memory, and an index result of the cache directory means. a first stage for indexing the cache directory means in response to a request; and a second stage for determining the cache hit status by the cache hit determination means using the index result. A pipeline processing type data processing device comprising: a cache miss request holding unit that holds request information of a request for which a cache miss has been determined; and a cache miss request holding unit that holds request information of a subsequent request following this request; an index result holding means for holding an index result of the cache directory for a request whose request information is held in the second stage; a comparison means for comparing the address with an address in the request information held in the cache miss request holding means, and a comparison result of the comparison means when the contents of the index result holding means indicate a cache miss; There is obtained a data processing apparatus characterized in that the data processing apparatus includes means for making a data block transfer request from the main memory in response to the request held in the second stage when the second stage indicates a mismatch.
更にはまた、本発明によれば、主メモリの内容の一部写
しをブロック単位で保持するキャッシュメモリと、前記
キャッシュメモリの保持内容のディレクトリを記録する
キャッシュディレクトリ手段と、前記キャッシュディレ
クトリ手段の索引結果によりキャツシュヒツト状態を判
定するキャツシュヒツト判定手段とを含み、リクエスト
に応答して前記キャッシュディレクトリ手段を索引する
第1ステージと、この索引結果を用いて前記キャツシュ
ヒツト判定手段によりキャツシュヒツト状態を判定する
第2ステージとを有するパイプライン処理方式のデータ
処理装置であって、キャッシミスヒットが判定されたリ
クエストのリクエスト情報を保持するキャッシュミスヒ
ツトリクエスト保持手段と、このキャッシュミスヒット
が判定されたリクエストのキャッシュ登録コンパートメ
ント情報を保持する手段と、このリクエストに続く後続
リクエストのリクエスト情報を前記第1及び第2ステー
ジ夫々で保持する手段と、前記第2ステージでリクエス
ト情報が保持されるリクエストに対する前記キャッシュ
ディレクトリの索引結果を保持する索引結果保持手段と
、前記第2ステージで保持されているリクエスト情報内
のアドレスと、前記キャッシュミスヒツトリクエスト保
持手段に保持されているリクエスト情報内のアドレスと
を比較する比較手段と、前記索引結果保持手段の内容が
キャッシュミスヒットを示しておりかつ前記比較手段の
比較結果か不一致を示している場合、前記キャッシュミ
スヒツトが判定されたリクエストに応答して前記主メモ
リからブロックデータを読出して前記キャッシュメモリ
に登録し、しかる後に前記第2ステージに保持されてい
るリクエスト情報内のアドレスと前記キャッシュミスヒ
ツトが判定されたリクエストの前記キャッシュ登録コン
パートメント情報とにより、前記第2ステ・−ジに保持
されているリクエストの所望のデータを前記キャッシュ
メモリから読出してリクエスト要求元へ送出する手段と
を有するとを特徴とするデータ処理装置が得られる。Furthermore, according to the present invention, there is provided a cache memory for holding a partial copy of the contents of the main memory in units of blocks, a cache directory means for recording a directory of contents held in the cache memory, and an index for the cache directory means. a first stage that indexes the cache directory means in response to a request, and a second stage that uses the index result to determine the cache hit status by the cache hit determination means using the index result; a pipeline processing type data processing device comprising: a cache miss request holding means for holding request information of a request for which a cache miss has been determined; and a cache registration compartment for the request for which a cache miss has been determined. means for holding information, means for holding request information of subsequent requests following this request in each of the first and second stages, and an index result of the cache directory for the request whose request information is held in the second stage. an index result holding means for holding an index result holding means; a comparison means for comparing an address in the request information held in the second stage with an address in the request information held in the cache miss request holding means; When the content of the index result holding means indicates a cache miss and the comparison result of the comparison means indicates a mismatch, block data is retrieved from the main memory in response to the request for which the cache miss has been determined. The second stage is read out and registered in the cache memory, and then the address in the request information held in the second stage and the cache registration compartment information of the request for which the cache miss has been determined are used in the second stage. There is obtained a data processing apparatus characterized in that the data processing apparatus comprises means for reading desired data of a request held in the cache memory from the cache memory and sending it to the request source.
火隻囮 次に、本発明について図面を参照して説明する。fire ship decoy Next, the present invention will be explained with reference to the drawings.
第1図は本発明の一実施例のブロック図である図におい
て、LARlは要求元からのリクエストアドレスを受け
る論理アドレスレジスタ、TLB2は論理アドレスから
実アドレスへのアドレス変換を行なうアドレス変換バッ
ファ、AA3,4はキャッシュディレクトリであるアド
レスアレイである。FIG. 1 is a block diagram of an embodiment of the present invention. In the diagram, LARl is a logical address register that receives a request address from a request source, TLB2 is an address translation buffer that converts an address from a logical address to a real address, and AA3 is a block diagram of an embodiment of the present invention. , 4 is an address array which is a cache directory.
比較器5はLARlとTLB2の出力を比較する比較器
、比較器6.7はTLB2の出力とAA3.4の出力を
それぞれ比較する比較器である。Comparator 5 is a comparator that compares the outputs of LARl and TLB2, and comparator 6.7 is a comparator that compares the outputs of TLB2 and AA3.4, respectively.
反転回路8.9は比較器6,7の出力をそれぞれ反転す
る反転回路、アンド回路10は反転回路8゜9の出力の
論理積をとるアンド回路、FFIIはアンド回路10の
出力を受けるフリップフロップ、FF12,13は比較
器6,7の出力を夫々受けるフリップフロップである。An inverting circuit 8.9 is an inverting circuit that inverts the outputs of the comparators 6 and 7, an AND circuit 10 is an AND circuit that takes the logical product of the outputs of the inverting circuit 8.9, and FFII is a flip-flop that receives the output of the AND circuit 10. , FF12 and FF13 are flip-flops that receive the outputs of comparators 6 and 7, respectively.
PAR14はアドレス変換後の実アドレスを受ける実ア
ドレスレジスタ、DAl、5.16はキャッシュのデー
タを保持するキャッシュデータアレイ、CMAR17は
キャッシュをミスしたリクエストの実アドレスを保持す
るキャッシュミスアドレスレジスタ、■ビット18はC
MAR14に有効な情報が保持されていることを表示す
るフラグレジスタである。PAR14 is a real address register that receives the real address after address conversion, DAl, 5.16 is a cache data array that holds cache data, CMAR17 is a cache miss address register that holds the real address of a request that misses the cache, ■ bit 18 is C
This is a flag register that indicates that valid information is held in the MAR 14.
比較器19は、CMAR17に保持されている実アドレ
スのブロック外アドレスと、PAR14に保持されてい
る実アドレスのブロック外アドレスとを比較する比較器
、ナンド回路20は、■ビット18の出力と比較器1つ
の出力との論理積をとってその値を反転して出力するナ
ンド回路、アンド回路21はこのナンド回路20とFF
11の出力との論理積をとるアンド回路である。The comparator 19 compares the real address outside the block held in the CMAR 17 with the real address outside the block held in the PAR 14, and the NAND circuit 20 compares the output of the bit 18. The AND circuit 21, which is a NAND circuit that performs an AND with the output of one device, inverts the value, and outputs it, is connected to the NAND circuit 20 and the FF.
This is an AND circuit that performs logical product with the output of No. 11.
セレクタ22はDA15.16の出力を選択する選択回
路、DAR23はセレクタ22で選択されたキャッシュ
の読出しデータを受けるデータアレイ読出しレジスタ、
MAR24はPAR14から出力される実アドレスを受
けて、主メモリにデータのブロック転送要求のアドレス
を送出するメモリアドレスレジスタ、反転回路25はF
F11の出力を反転させる反転回路である。The selector 22 is a selection circuit that selects the output of DA15.16, and the DAR23 is a data array read register that receives read data from the cache selected by the selector 22.
MAR24 is a memory address register that receives the real address output from PAR14 and sends an address for a data block transfer request to the main memory.
This is an inverting circuit that inverts the output of F11.
LARlに保持される論理アドレスはセグメント部S、
ページ部P、ページ内アドレスLから構成されており、
S及びPかTLB2によって実アドレスに変換され、L
と合わせて実アドレスが生成される。このTLB2はS
及びPの一部分でアドレスされ、S及びPの残りの部分
がキ一部としてTLB2へ登録され、また論理アドレス
に対応する実アドレスがデータ部としてTLB2の同一
アドレスに登録される。The logical address held in LARl is the segment part S,
It consists of a page part P, an address L within the page,
S and P are converted to real addresses by TLB2, and L
A real address is also generated. This TLB2 is S
The remaining parts of S and P are registered as part of key in TLB2, and the real address corresponding to the logical address is registered as a data part at the same address in TLB2.
AA3,4はブロックを単位としてデータを登録するキ
ャッシュデータアレイのブロックアドレスを管理するキ
ャッシュディレクトリである。本実施例では、キャッシ
ュのブロックは64バイトであるとする。AA3,4は
LARlのLのうちの下位6ビツト(ブロック内アドレ
ス)を無視した上位のブロック外アドレス部でアドレス
され、残りのS、P部がアドレス変換を受けた実アドレ
スがキ一部として登録される。AA3 and AA4 are cache directories that manage block addresses of cache data arrays in which data is registered in units of blocks. In this embodiment, a cache block is assumed to be 64 bytes. AA3 and AA4 are addressed by the upper outside block address part ignoring the lower 6 bits (intra-block address) of L of LARl, and the remaining S and P parts are addressed by the real address that has undergone address conversion as a key part. be registered.
DA15.16はキャッシュディレクトリと対応するア
ドレス位置にブロックを単位としたデータをデータ部と
して登録するキャッシュデータアレイである。キャッシ
ュデータアレイからは、リクエスト要求元が要求するデ
ータの単位でデータが読出される。本実施例ではこのデ
ータの単位は8バイトであるとする。DA15.16 is a cache data array in which data in units of blocks is registered as a data portion at an address position corresponding to a cache directory. Data is read from the cache data array in units of data requested by the request source. In this embodiment, the unit of this data is assumed to be 8 bytes.
DA15.16はPAR14のLに対応する実アドレス
のうちの下位3ビツト(8バイト内アドレス)を無視し
た上位の8バイト外アドレス部でアドレスされ、対応す
る8バイトデータがそれぞれ読出される。DA15 and DA16 are addressed by the upper 8-byte external address part of the real address corresponding to L of PAR14, ignoring the lower 3 bits (address within 8 bytes), and the corresponding 8-byte data are read out.
本実施例のキャッシュ構成はAA3とDA15とが、A
A4とD A 16とがそれぞれ対応する2レベルキヤ
ツシユ構成である。即ち、AA3,4を同時に索引し、
DA15及びDA16のうちのいずれに所望のデータが
登録されているかを決定し、DA15,16から読出さ
れたデータを選択してリクエスト要求元に送出する。A
A3,4の索引によって、所望のデータがDA15.1
6のいずれにも存在しないことが検出される(以下ギヤ
ッシュミスと言う)と、対応する実アドレスを主メモリ
に送出して、主メモリにデータのブロック転送を要求す
る。主メモリから読出されたブロックはキャッシュに登
録されると共に、要求データをリクエスト要求元へ送出
する。In the cache configuration of this embodiment, AA3 and DA15 are
This is a two-level cache configuration in which A4 and DA16 correspond to each other. That is, index AA3 and 4 at the same time,
It is determined which of the DA15 and DA16 the desired data is registered in, and the data read from the DA15 and DA16 is selected and sent to the request source. A
The desired data is found in DA15.1 by the index of A3 and 4.
If it is detected that the address does not exist in any of 6 (hereinafter referred to as a gear miss), the corresponding real address is sent to the main memory, and a block transfer of data is requested from the main memory. The block read from the main memory is registered in the cache, and the requested data is sent to the request source.
次に第1図の動作について詳細に説明する。演算部から
要求されたメモリアクセス論理アドレスはLARlに受
付けられ、LARlのアドレスの一部でTLB2及びA
A3,4がアドレスされる。Next, the operation shown in FIG. 1 will be explained in detail. The memory access logical address requested from the arithmetic unit is accepted by LARl, and part of the address of LARl is stored in TLB2 and A.
A3 and 4 are addressed.
TLB2のアドレスはS及びPの一部であり、残りのS
及びPか比較器5で’T’ L B 2から読出された
キ一部と比較される。比較の結果一致した場合は、TL
B2のデータ部すなわち実アドレスがPAR14にセッ
トされる。LARlのLはアドレス変換を受けずそのま
まPAR14にセットされ、LARlに受付けられた論
理アドレスの実アドレスへのアドレス変換が終了する。The address of TLB2 is part of S and P, and the remaining S
and P is compared with the part read from 'T' L B 2 in comparator 5. If the comparison results match, the TL
The data portion of B2, ie, the real address, is set in PAR14. The L of LARl is set in PAR14 as it is without undergoing address translation, and the address translation of the logical address accepted by LARl into a real address is completed.
比較の結果不一致の場合は、−膜内によく知られている
ようにメモリ上のアドレス変換テーブル等を索引して論
理アドレスから実アドレスへの変換を行ない、結果か7
r’ L B 2に登録されて、実アドレスがPAR1
4にセットされアドレス変換が終了する。If the comparison results in a mismatch, - as is well known in the film, an address conversion table on the memory is indexed and the logical address is converted to a real address, and the result is 7.
It is registered in r' L B 2 and the real address is PAR1.
It is set to 4 and address translation ends.
AA3.4のアドレスはLARIのLのうちのブロック
外アドレス部であり、AA3.4に登録されている実ア
ドレスが比較器6,7にそれぞれ供給される。同時に、
TLB2のデータ部から読出された実アドレスが比較器
6.7の相方に供給される。比較器6.7は比較の結果
一致の場合は論理1を出力し、不一致の場合は論理0を
出力する。The address of AA3.4 is the out-of-block address part of L of LARI, and the real addresses registered in AA3.4 are supplied to comparators 6 and 7, respectively. at the same time,
The real address read from the data section of TLB2 is supplied to a partner of comparator 6.7. Comparator 6.7 outputs logic 1 if the comparison results in a match, and outputs logic 0 if there is a mismatch.
今、比較器6で一致が検出されたとする。比較器6,7
の比較結果はそれぞれ1.2.1.3にセットされると
共に、反転回路8.9に供給される。Suppose now that comparator 6 detects a match. Comparators 6, 7
The comparison results are set to 1, 2, 1, and 3, respectively, and are supplied to the inverting circuit 8.9.
FF12,13はそれぞれ論理】、論理0にセットされ
る。反転回路8.9は比較器6.7の出力を反転させて
、それぞれ論理0.論理1を出力し、アンド回路10に
出力する。FFs 12 and 13 are set to logic] and logic 0, respectively. The inverting circuit 8.9 inverts the output of the comparator 6.7 to a logic 0.0, respectively. It outputs a logic 1 and outputs it to the AND circuit 10.
アンド回[10は反転回路8.9の出力の論理積をとり
、その結果をFFIIにセットする。従って、F F
1.1は論理0がセットされる。このFF1lはキャツ
シュヒツトミスを示し、ヒツトの場合は論理0が、ミス
の場合は論理1が夫々セットされる。同時に実アドレス
がPARl 4にセットされると、PARl4のLに対
応する実アドレスのうちの8バイト外アドレスでDAl
、5.16かアドレスされ、DAl5,16から8バイ
トデータが同時に読出されてセレクタ22に供給される
。AND circuit [10 performs the logical product of the outputs of the inverting circuit 8.9 and sets the result to FFII. Therefore, F F
1.1 is set to logic 0. This FF1l indicates a cash hit miss; logic 0 is set in the case of a hit, and logic 1 is set in the case of a miss. At the same time, when the real address is set to PARl4, DAl is set at an address outside 8 bytes of the real address corresponding to L of PARl4
, 5.16 are addressed, and 8-byte data is simultaneously read from DAl5 and DAl16 and supplied to the selector 22.
FF12.13の出力である論理1.論理0はセレクタ
22に供給され、その結果セレクタ22ではDAl5か
ら読出された8バイトデータか有効となり、これが選択
されてDAR23に供給される。Logic 1. which is the output of FF12.13. The logic 0 is supplied to the selector 22, and as a result, the 8-byte data read from the DAl5 becomes valid in the selector 22, which is selected and supplied to the DAR23.
FF11の出力である論理0は反転回路25で反転され
て論理1が出力され、DAR23に供給されてDAR2
3にセットされたDAl5からの読出しデータが有効デ
ータとしてリクエスト要求元に送出される。The logic 0 that is the output of the FF11 is inverted by the inverting circuit 25 and a logic 1 is output, which is supplied to the DAR 23 and output from the DAR 2.
The read data from DAl5 set to 3 is sent to the request source as valid data.
PARl4にセットされた実アドレスはCMAR17,
MAR24に供給されるが、FFIIの論理Oかアンド
回路21に供給され、このアンド回路は論理積の結果と
して論理Oを出力し、それぞれ■ピッ1〜18.
結果Vビット18はCMAR17の内容が有効でないこ
とを表示する論理0にセットされ、またMAR24の内
容は無効にされ、主メモリに対しては何の゛動作指示も
行なわれない。The real address set in PARl4 is CMAR17,
The logic O of the FFII is supplied to the MAR 24, but the logic O of the FFII is also supplied to the AND circuit 21, which outputs the logic O as a result of the logical product, and the pins 1 to 18, respectively. As a result, V bit 18 is set to a logic zero indicating that the contents of CMAR 17 are not valid, and the contents of MAR 24 are invalidated and no operations are directed to main memory.
比較器7で一致が検出された場合にも、同様にしてDA
l6から読出された8バイトデータが有効データとして
DAR23を通してリクエスト要求元に出力される。Similarly, when a match is detected by the comparator 7, the DA
The 8-byte data read from l6 is output as valid data to the request source through DAR23.
次に、本発明の特徴的動作である連続するリクエスト1
.2が共にキャッシュをミスする場合の動作について詳
細に説明する。リクセスト1の論理アドレスがLARl
に受付けられると、TLB2でアドレス変換が行なわれ
実アドレスがPARl4にセットされる。AA3,4の
索引ではキャッシュミスが検出される。即ち、比較器6
,7は共に比較結果不一致を示す論理0を出力してFF
12、13に共に論理0をセットする。反転回路8 9
は比較器6.7の出力を夫々反転させて共に論理1を出
力し、アンド回路10は論理積の結果としてキャッシュ
ミスを示す論理1を出力してFFIIに論理1をセット
する。Next, continuous request 1, which is the characteristic operation of the present invention,
.. 2 both miss the cache will be described in detail. The logical address of request 1 is LARl
When the address is accepted, TLB2 performs address translation and the real address is set in PARl4. A cache miss is detected in the indexes of AA3 and AA4. That is, comparator 6
, 7 both output logic 0 indicating that the comparison result does not match, and the FF
Both 12 and 13 are set to logic 0. Inverting circuit 8 9
inverts the outputs of the comparators 6 and 7 and outputs a logic 1, and the AND circuit 10 outputs a logic 1 indicating a cache miss as a result of the logical product, and sets the logic 1 in FFII.
この時、同時にリクエスト2の理論アドレスがLARl
に受付けられる。PARl4にリクエスト1の実アドレ
スがセットされると、DA1516がアドレスされる,
この時、FFIIが論理1を出力していることにより、
反転回路25では反転結果としてDAR23の内容を無
効とする論理0を出力し、DAl5.16からの読出し
データはいずれも無効となり、DAR23からリクエス
ト要求元へのデータ転送は抑止される。At this time, the theoretical address of request 2 is LARl.
will be accepted. When the real address of request 1 is set in PARl4, DA1516 is addressed.
At this time, since FFII is outputting logic 1,
The inversion circuit 25 outputs a logic 0 that invalidates the contents of the DAR 23 as the inversion result, all read data from the DAl 5.16 becomes invalid, and data transfer from the DAR 23 to the request source is inhibited.
PARl4とCMAR17とブロック外アドレスが比較
器19で比較されるか、今、■ビット18はCMAR1
7の内容が無効であることを示す論理0を出力しており
、それがナンド回路20に供給されているために、ナン
ド回路20の出力は強制的に論理1となってアンド回路
21に供給される。その結果アンド回路21ではFF1
1の出力がそのまま有効となり、キャッシュミスを示ず
論理1が出力されてVビット18及びMAR24に供給
される。PARl4, CMAR17, and the out-of-block address are compared in comparator 19, and now ■ bit 18 is CMAR1
7 is invalid, and since this is supplied to the NAND circuit 20, the output of the NAND circuit 20 is forced to become a logic 1 and is supplied to the AND circuit 21. be done. As a result, in the AND circuit 21, FF1
The output of 1 remains valid, indicating a cache miss, and a logic 1 is output and supplied to the V bit 18 and MAR 24.
PARl 4のリクエスト1の実アドレスはCMAR1
7にセットされ、■ビット18は、CMAR17の内容
が有効であること表示する論理1にセットされる。同時
にPARl4のリクエスト1の実アドレスはMAR24
にセットされ、アンド回路21の論理1の出力により、
その内容が有効となり、主メモリにリクエスト1のデー
タのブロック転送要求が送出される。The real address of request 1 of PARl 4 is CMAR1
bit 18 is set to a logic 1 indicating that the contents of CMAR17 are valid. At the same time, the real address of request 1 of PARl4 is MAR24
is set to , and the logic 1 output of the AND circuit 21 causes
The contents become valid, and a block transfer request for the data of request 1 is sent to the main memory.
キャッシュミスしたリクエスト1の実アドレスがCMA
R,17及びMAR24にセットされるのと同時に、後
続のリクエスト2がTLB2で実アドレスに変換されて
PARl4にセットされる。The real address of request 1 that caused a cache miss is CMA
At the same time as being set in R,17 and MAR24, the subsequent request 2 is translated into a real address by TLB2 and set in PAR14.
さらに、AA3.4を索引した結果がFF111213
にそれぞれセットされる。リクエスト1の場合と同様に
、リクエスト2もAA3,4をミスヒツトし、FF1l
、12.13にはそれぞれ論理1.論理0.論理Oがセ
ットされる。従って、PARl 4にセットされたリク
エスト2の実アドレスによって、DA15.16から読
出されたデータはいずれも無効となり、DAR23から
リクエスト要求元へのデータ転送は抑止される。Furthermore, the result of indexing AA3.4 is FF111213
are set respectively. Similar to request 1, request 2 also misses AA3 and 4, and FF1l
, 12.13 have logic 1. Logic 0. Logic O is set. Therefore, the real address of request 2 set in PARl 4 invalidates any data read from DA 15.16, and data transfer from DAR 23 to the request source is inhibited.
この時、同時にリクエスト1の実アドレスを保持するC
MAR17のブロック外アドレスとPARl4にセット
されたリクエスト2の実アドレスのブロック外アドレス
とが比較される。■ビット18は論理1を出力している
ために、ナンド回路20では比較器19の出力結果を反
転させた結果がそのまま有効となって出力されアンド回
路21に供給される。At this time, the C that holds the real address of request 1 at the same time
The out-of-block address of MAR17 and the out-of-block address of the real address of request 2 set in PARl4 are compared. (2) Since the bit 18 outputs a logic 1, the NAND circuit 20 inverts the output result of the comparator 19 and outputs it as valid and supplied to the AND circuit 21.
比較の結果、一致の場合は比較器19は論理1を出力し
、ナンド回路20で反転を受けて論理0がアンド回路2
1に供給される。この場合は、ブロック外アドレスが一
致している場合であり、リクエスト2の要求データは先
行して主メモリにデータのブロック転送を要求したリク
エスト1のブロック中に存在していること示しており、
リクエスト2に対する主メモリへのデータのブロック転
送要求は抑止される。As a result of the comparison, if there is a match, the comparator 19 outputs a logic 1, which is inverted by the NAND circuit 20 and a logic 0 is output from the AND circuit 2.
1. In this case, the out-of-block addresses match, indicating that the requested data of request 2 exists in the block of request 1, which previously requested a block transfer of data to the main memory.
The request for request 2 to transfer a block of data to the main memory is suppressed.
つまり、ナンド回路20からアンド回路21へ供給され
る論理0によって、キャッシュミスを示すFF11の出
力の論理1が、アンド回路21による論理積の結果とし
て、キャッシュをヒツトした場合と同様の論理0かアン
ド回路21から出力されることにより、リクエスト2の
実アドレスを受けるMAR24の内容が無効化されて、
主メモリへのデータのブロック転送要求は抑止される。In other words, due to the logic 0 supplied from the NAND circuit 20 to the AND circuit 21, the logic 1 output from the FF 11 indicating a cache miss is changed to a logic 0, which is the same as when the cache is hit, as a result of the AND circuit 21. By outputting from the AND circuit 21, the contents of the MAR 24 that receives the real address of request 2 are invalidated,
Requests to transfer blocks of data to main memory are suppressed.
比較器1つでの比較の結果が不一致の場合は、比較器1
つは論理0を出力し、ナンド回路20で反転を受けて論
理1がアンド回路21に供給される。この場合は、ブロ
ック外アドレスが不一致の場合であり、リクエスト2の
要求データは先行して主メモリにデータのブロック転送
を要求したリクエスト1のブロック中には存在していな
いことを示しており、AA3,4をミスしている場合に
は、そのまま主メモリにデータのブロック転送要求を行
なうことが可能である。If the comparison result with one comparator is inconsistent, comparator 1
One outputs a logic 0, which is inverted by a NAND circuit 20 and a logic 1 is supplied to an AND circuit 21. In this case, the out-of-block addresses do not match, indicating that the requested data of request 2 does not exist in the block of request 1, which previously requested a block transfer of data to the main memory. If AA3 and AA4 are missed, a data block transfer request can be directly made to the main memory.
今、ナンド回路20からアンド回路21へ論理1が供給
されていることにより、キャッシュのミスを示ずFFI
Iの出力の論理1と論理積がとられ、その結果としてア
ンド回路21から主メモリにデータのブロック転送要求
を行う許可信号が出力されてMAR24に供給される。Now, since a logic 1 is being supplied from the NAND circuit 20 to the AND circuit 21, there is no cache miss and the FFI
The logical product of the output of I and the logic 1 is taken, and as a result, a permission signal is outputted from the AND circuit 21 to request a data block transfer to the main memory, and is supplied to the MAR 24.
MAR24にはPARl4にセットされているリクエス
ト2の実アドレスがセットされ、主メモリに対してリク
エスト2のデータのブロック転送要求が先行するりクエ
スト1のデータのブロック転送要求に連続して送出され
る。The real address of request 2 set in PARl4 is set in MAR24, and a block transfer request for request 2 data is sent to the main memory in advance or in succession to a block transfer request for quest 1 data. .
この様に、先行して主メモリにデータのブロック転送を
要求したリクエストのリクエスト情報を保持し、この保
持されたリクエストのブロック外アドレスと後続のリク
エストのブロック外アドレスとを比較することにより、
後続のリクエストかキャッシュをミスしており、かつ先
行して主メモリにデータのブロック転送を要求したブロ
ック中に所望のデータが存在しているか否かを高速に検
出することにより、システムの処理性能を向上できるの
である。In this way, by holding the request information of the request that previously requested a block transfer of data to the main memory and comparing the out-of-block address of this held request with the out-of-block address of the subsequent request,
The processing performance of the system is improved by quickly detecting whether the desired data exists in the block for which a subsequent request misses the cache and the block of data previously requested to be transferred to the main memory. can be improved.
第2図は本発明の他の実施例のブロック図である。図に
おいて、PARl4はキャッシュディレクトリを索引す
るための実アドレスを受ける実アドレスレジスタ、3.
4はキャッシュディレクトリであるアドレスアレイ、比
較器6,7はPAR14とAA3,4の出力をそれぞれ
比較する比較器である。FIG. 2 is a block diagram of another embodiment of the invention. In the figure, PARl4 is a real address register that receives a real address for indexing the cache directory; 3.
4 is an address array that is a cache directory, and comparators 6 and 7 are comparators that compare the outputs of PAR 14 and AA 3 and 4, respectively.
FF12,13は比較器6.7の比較結果、即ちキャッ
シュディレクトリの索引結果を受けるフリップフロップ
、PAR27はキャッシュデータアレイを索引するため
の実アドレスをPAR14から受ける実アドレスレジス
タ、DA]、5.16は主メモリのデータの写しを保持
するキャッシュデータアレイである。FF12 and FF13 are flip-flops that receive the comparison result of the comparator 6.7, that is, the cache directory index result; PAR27 is a real address register that receives the real address for indexing the cache data array from PAR14, DA], 5.16 is a cache data array that holds a copy of the data in main memory.
反転回路8,9はFF12,13の出力をそれぞれ反転
する反転回路、アンド回路10は反転回路8,9の出力
の論理積をとるアンド回路である。The inverting circuits 8 and 9 are inverting circuits that invert the outputs of the FFs 12 and 13, respectively, and the AND circuit 10 is an AND circuit that performs a logical product of the outputs of the inverting circuits 8 and 9.
MAR24はキャッシュミスした場合の実アドレスをP
AR27から受けて主メモリにデータのブロック転送要
求のアドレスを送出するメモリアドレスレジスタ、セレ
クタ22はDA15.16の出力データをFF12,1
3の出力結果に従って選択する選択回路、DAR23は
セレクタ22によって選択されたキャッシュからの読出
しデータを受けるデータアレイ読出しレジスタである。MAR24 sets the real address in case of cache miss as P
A memory address register that receives the address of the data block transfer request from the AR27 and sends it to the main memory.The selector 22 transfers the output data of the DA15.16 to the FF12,1
DAR 23 is a data array read register that receives read data from the cache selected by selector 22.
FF11はアンド回路10の出力を受けるフリップフロ
ップ、CMAR17はキャッシュミスヒツトしたリクエ
ストの実アドレスを保持するキャッシュミスヒツトアド
レスレジスタ、■ビット18はCMAR17に有効な情
報が保持されていることを表示するフラグレジスタ、比
較器19はCMAR17に保持されている実アドレスの
ブロック外アドレスと、PAR27に保持されている実
アドレスのブロック外アドレスを比較する比較器である
。FF11 is a flip-flop that receives the output of the AND circuit 10, CMAR17 is a cache miss address register that holds the actual address of a request that has a cache miss, and ■Bit 18 is a flag that indicates that valid information is held in CMAR17. The register and comparator 19 are comparators that compare the real address outside the block held in the CMAR 17 and the real address outside the block held in the PAR 27.
ナンド回路20はVビット18の出力と比較器19の出
力の論理積をとってその値を反転して出力するナンド回
路、アンド回路21はナンド回路20とアンド回路10
の出力の論理積をとるアンド回路、パイプライン周期制
御回路26は各パイプラインの同期制御を司る回路であ
る。The NAND circuit 20 is a NAND circuit that takes the logical product of the output of the V bit 18 and the output of the comparator 19, inverts the value, and outputs it, and the AND circuit 21 is a combination of the NAND circuit 20 and the AND circuit 10.
The pipeline cycle control circuit 26, which is an AND circuit that takes the logical product of the outputs of the pipeline period control circuit 26, is a circuit that controls the synchronization of each pipeline.
ステージ1はキャッシュディレクトリの索引を行なうス
テージであり、ステージ2はキャッシュデータアレイの
索引とキャツシュヒツト、ミスヒットを判定するステー
ジである。Stage 1 is a stage for indexing the cache directory, and stage 2 is a stage for determining cache data array indexes, cache hits, and miss hits.
キャッシュが索引される場合、AA3.4が同時に索引
され、DA15,1.6のうちのいずれに所望のデータ
が登録されているかを決定して、DA15,1.6から
読出されたデータを選択してリクエスト要求元に送出す
る。AA3.4の索引によって、所望のデータがDA1
5,16のいずれにも存在しないことが検出されると、
対応する実アドレスを主メモリに送出して、主メモリに
データのブロック転送を要求する。主メモリから読出さ
れたブロックはキャッシュに登録されると共に、要求デ
ータをリクエスト要求元へ送出する。When the cache is indexed, AA3.4 is indexed at the same time, it is determined in which of DA15 and 1.6 the desired data is registered, and the data read from DA15 and 1.6 is selected. and sends it to the request source. The desired data is located in DA1 by the AA3.4 index.
If it is detected that it does not exist in either 5 or 16,
Sends the corresponding real address to main memory to request a block transfer of data from main memory. The block read from the main memory is registered in the cache, and the requested data is sent to the request source.
以上のように本実施例では、キャッシュは2コンパート
メント構成を取っているが、実際には4コンパートメン
トから16コンパートメント構成を取るキャッシュが一
般である。As described above, in this embodiment, the cache has a two-compartment configuration, but in reality, caches generally have a four-compartment to 16-compartment configuration.
次に、第2図の動作について詳細に説明する。Next, the operation shown in FIG. 2 will be explained in detail.
リクエスト要求元から送出されたメモリアクセスの論理
アドレスは、第1図に示した様な既知構成のアドレス変
換制御部によって実アドレスに変換されて、PAR14
にセラl−される。PAR14に実アドレスがセットさ
れると、実アドレスのブロック外アドレス部の下位のセ
ットアドレス部でAA3,4が索引され、同時にブロッ
ク外アドレスの残りのキーアドレス部が比較器6.7に
供給されてAA3,4から読出されたキーアドレス部と
の比較が行なわれる。The logical address for memory access sent from the request source is converted into a real address by an address conversion control unit with a known configuration as shown in FIG.
Sera l- is carried out. When the real address is set in PAR14, AA3 and AA4 are indexed in the lower set address part of the out-of-block address part of the real address, and at the same time, the remaining key address part of the out-of-block address is supplied to the comparator 6.7. Then, a comparison is made with the key address part read from AA3 and AA4.
比較器6.7は比較の結果か一致の場合は論理1を出力
し、不一致の場合は論理Oを出力してその値をFF12
,13にそれぞれセットする。この時同時に、PAR1
4の実アドレスはPAR27にセットされる。Comparator 6.7 outputs logic 1 if the comparison result is a match, and outputs logic O if it does not match, and sends the value to FF12.
, 13, respectively. At this time, PAR1
The real address of 4 is set in PAR27.
今、比較器6側で一致が検出され、FF12゜13にそ
れぞれ論理1、論理Oがセットされたとする。DA15
,16ではPAR27によってアドレスされ、その索引
結果として夫々8バイトデータが読出されてセレクタ2
2に供給される。そしてFF12,13の値に従ってD
A15の8バイトデータが選択されてDAR23にセッ
トされる。Assume now that a match is detected on the comparator 6 side and logic 1 and logic O are set in FFs 12 and 13, respectively. DA15
, 16 are addressed by PAR 27, and 8-byte data is read out as the index result and sent to selector 2.
2. Then, D according to the values of FF12 and FF13.
The 8-byte data of A15 is selected and set in DAR23.
一方間時に、FF12,13の出力は反転回路89に出
力され、それぞれ反転を受けた結果がアンド回路10に
供給される。今の場合は、それぞれ論理O1論理1が供
給され、よってアンド回路lOからは論理0が出力され
る。アンド回路10の出力はキャツシュヒツト、ミスヒ
ツトを示しており、ヒツトの場合は論理0を、ミスヒツ
トの場合は論理1を夫々出力する。この出力はFF11
にセットされ、リクエスト要求元にDAR23のデータ
が有効か無効かのフラグとして供給される。今の場合は
、キャツシュヒツトの場合であるから、DAR23のデ
ータと共にFF11から論理Oが供給される。On the other hand, the outputs of the FFs 12 and 13 are outputted to the inverting circuit 89, and the respective inverted results are supplied to the AND circuit 10. In this case, logic O1 and logic 1 are respectively supplied, so that logic 0 is output from AND circuit IO. The output of the AND circuit 10 indicates a hit or a miss; a logic 0 is output in the case of a hit, and a logic 1 is output in the case of a miss. This output is FF11
, and is supplied to the request source as a flag indicating whether the data in the DAR 23 is valid or invalid. In this case, since it is a cash hit case, a logic O is supplied from the FF 11 along with the data of the DAR 23.
PAR27にセットされた実アドレスは、CMARl7
、MAR,24にも供給されるが、アンド回路10の出
力の論理Oがアンド回路21に供給されているため、ア
ンド回路21は論理0を出力して、■ビット18及びM
AR24に供給する。The real address set in PAR27 is CMARl7.
, MAR, 24, but since the logic O of the output of the AND circuit 10 is supplied to the AND circuit 21, the AND circuit 21 outputs logic 0, and bits 18 and M
Supply to AR24.
その結果、■ビット18はCMARl7の内容が有効で
ないことを表示する論理0にセットされ、またMAR2
4の内容は無効化され、主メモリに対しては何の動作指
示も行なわれない。As a result, ■ bit 18 is set to logic 0 indicating that the contents of CMAR17 are not valid, and MAR2
The contents of 4 are invalidated, and no operation instruction is given to the main memory.
次に、本実施例の特徴的動作である連続するりクエスト
1,2が共にキャッシュをミスする場合の動作について
詳細に説明する。リクエスト1はキャッシュをミスする
ために、リクエスト1の実アドレスがPAR27にセッ
トされたタイミングでFF12,13には共に論理Oが
セットされる。Next, the characteristic operation of this embodiment, which is the operation when consecutive quests 1 and 2 both miss the cache, will be described in detail. Since request 1 misses the cache, logical O is set in both FFs 12 and 13 at the timing when the real address of request 1 is set in PAR 27.
この時、同時に後続のリクエスト2かPAR14にセッ
トされる。At this time, the subsequent request 2 or PAR14 is set at the same time.
以下、ステージ2でのリクエスト1のミスヒツト動作に
ついて説明する。アンド回路10ではキャッシュミスヒ
ツトを検出して論理1を出力し、アンド回路21.FF
IIに供給する。FFIIからはDAR23中のデータ
が無効であることがリクエスト要求元に通知される。The mishit operation of request 1 in stage 2 will be described below. AND circuit 10 detects a cache miss and outputs logic 1, and AND circuit 21 . FF
Supply to II. The FFII notifies the request source that the data in the DAR 23 is invalid.
今、■ビット18は0にセットされているため、ナンド
回路20はアンド回路21へ論理1を出力する。その結
果、アンド回路21はアンド回路10の出力の論理1と
の論理積の結果として論理1を出力し、MAR24とv
ビット18に供給する。Since the ■ bit 18 is now set to 0, the NAND circuit 20 outputs a logic 1 to the AND circuit 21. As a result, the AND circuit 21 outputs a logic 1 as a result of the logical product of the output of the AND circuit 10 and the logic 1, and the MAR 24 and v
Supply bit 18.
従って、キャッシュミスヒツトを起こしたPAR27の
リクエスト1の実アドレスはMAR24に有効アドレス
としてセットされ、主メモリにリクエスト1のデータの
ブロック転送要求が送出される。また、PAR27のリ
クエスト1の実アドレスはCMARl 7にセラ1〜さ
れ、同時にVビット18も論理1にセットされてCMA
Rl7のアドレスが有効であることを表示する。Therefore, the real address of request 1 in PAR 27 that caused the cache miss is set as a valid address in MAR 24, and a block transfer request for the data of request 1 is sent to the main memory. Also, the real address of request 1 of PAR27 is set to CMAR17, and at the same time, V bit 18 is also set to logic 1 and CMAR1 is set to logic 1.
Indicates that the address of Rl7 is valid.
ところで、あるリクエストでキャッシュのミスヒツトが
起きた場合には、後続のリクエストは各パイプラインス
テージ上で同期的に停止させなければならない。そのた
めには、キャッシュのミスヒツトが検出されたアンド回
路10の出力を直接使用できればよいのであるが、各パ
イプラインステージを同期させる制御信号は、図示して
はいないが、非常に複雑な論理を取った後に生成される
。By the way, if a cache miss occurs in a certain request, subsequent requests must be stopped synchronously at each pipeline stage. To do this, it would be sufficient to directly use the output of the AND circuit 10 that detected the cache miss, but the control signals for synchronizing each pipeline stage require very complex logic (not shown). generated after
そのために、本実施例のように非常に高速なマシンサイ
クルで動作する装置では、アンド回路10の出力を直接
使用していたのでは、その制御信号の遅延時間か間にあ
わなくなる。Therefore, in a device operating at a very high speed machine cycle like the present embodiment, if the output of the AND circuit 10 were directly used, the delay time of the control signal would not be enough.
従って本実施例では、アンド回路10の出力はパイプラ
イン同期制御回F#126に供給され、同回路26内で
パイプライン同期制御信号を生成し、同回路26中の図
示されてはいないフリップフロップで同制御信号を受け
た後各パイプラインステージに供給される。Therefore, in this embodiment, the output of the AND circuit 10 is supplied to the pipeline synchronization control circuit F#126, which generates a pipeline synchronization control signal, and the flip-flop (not shown) in the circuit 26 generates a pipeline synchronization control signal. After receiving the same control signal, it is supplied to each pipeline stage.
従って、リクエスト1でキャッシュミスヒツトが起こる
場合に、同期制御回路26からパイプライン同期制御信
号が発せられたタイミングでは、リクエスト1の実アド
レスはすでにCMARl7及びMAR24にセットされ
ており、後続のリクエスト2の実アドレスはPAR27
に、さらに新たな後続のリクエスト3の実アドレスはP
AR14に夫々セットされている。Therefore, when a cache miss occurs in request 1, the real address of request 1 has already been set in CMARl7 and MAR24 at the timing when the pipeline synchronization control signal is issued from the synchronization control circuit 26, and the real address of request 1 is already set in CMARl7 and MAR24, and subsequent request 2 The real address is PAR27
, the real address of the new subsequent request 3 is P
Each is set in AR14.
この状態で、リクエスト2かキャッシュをミスヒツトし
ておりかつ先行して出されたリクエスト1のブロックデ
ータ中にも所望のデータか存在しないことを検出するた
めに、従来技術を使用する場合を考える。まず、リクエ
スト1のアドレス情報を対応するAA3または4に登録
した後でPARl4に保持されているリクエスト3の実
アドレスをどこかに退避させなければならない。そして
その後でPAR27のリクエスト2の実アドレスをPA
R,14に移し、AA3.4の再索引を行なう。そして
キャッシュミスヒツトが検出されると、リクエスト2の
実アドレスをPAR27,MAR24を経由して主メモ
リに供給し、その後でリクエスト3の実アドレスをPA
Rl 4に回復させなければならない。In this state, let us consider a case where the conventional technique is used to detect that request 2 misses the cache and desired data does not exist in the block data of request 1 issued previously. First, after registering the address information of request 1 in the corresponding AA3 or AA4, the real address of request 3 held in PAR14 must be saved somewhere. Then, the real address of request 2 of PAR27 is PA
R, 14 and performs re-indexing of AA3.4. When a cache miss is detected, the real address of request 2 is supplied to the main memory via PAR27 and MAR24, and then the real address of request 3 is supplied to the PA
Must be restored to Rl 4.
また、リクエスト2かキャツシュヒツトした場合には、
主メモリにブロック転送要求を行なえないために、リク
エスト2は先行するリクエストのブロック転送処理が終
了した後で、その処理を再開させなければならす、この
場合には退避させたリクエスト3との間で新たなリクエ
スト再開回復処理が必要になる。Also, if request 2 or catshhit is made,
Since a block transfer request cannot be made to the main memory, request 2 must restart its processing after the block transfer processing of the preceding request is completed. New request restart recovery processing is required.
このように、本実施例の装置に従来技術を用いるのは、
非常な制御の複雑さと相当のハードウェア量を必要とし
好ましくない。In this way, the use of the conventional technology in the device of this embodiment is as follows:
This is undesirable because it requires great control complexity and a considerable amount of hardware.
本発明によれば、この場合には、後続のリクエスト2及
びリクエスト3はステージ2及びリクエスト3に保持し
たままで制御が可能となる。According to the present invention, in this case, subsequent requests 2 and 3 can be controlled while being held in stages 2 and 3.
次に本発明の制御動作について述べる。今、パイプライ
ン同期制御信号により後続のリクエスト2及びリクエス
ト3の実アドレスはPAR27及びPARl4で保持さ
れており、リクエスト2による3、4の索引結果はFF
12,13で保持されている。Next, the control operation of the present invention will be described. Now, the real addresses of subsequent requests 2 and 3 are held in PAR27 and PAR14 by the pipeline synchronization control signal, and the index results of 3 and 4 by request 2 are FF
12 and 13 are held.
まず、CMAR17に保持されている、先行して主メモ
リにブロック転送要求を行なったリクエスト1の実アド
レスのブロック外アドレスとPAR27に保持されてい
るリクエスト2の実アドレスのブロック外アドレスとか
比較器19で比較される。リクエスト2の実アドレスは
先行して出されたリクエスト1のブロックアドレスに不
一致のケースであるから、比較器19は不一致を示す論
理Oを出力し、ナンド回路20に供給する。従って、ナ
ンド回路20は論理1を出力してアンド回路21に供給
する。First, the comparator 19 compares the out-of-block address of the real address of request 1 that previously made a block transfer request to the main memory held in the CMAR 17 and the out-of-block address of the real address of request 2 held in the PAR 27. are compared. Since the real address of request 2 does not match the block address of request 1 issued previously, comparator 19 outputs a logic O indicating a mismatch and supplies it to NAND circuit 20 . Therefore, the NAND circuit 20 outputs a logic 1 and supplies it to the AND circuit 21.
リクエスト2はキャッシュミスヒツトするケースである
ので、リクエスト2によるAA3,4の索引結果を保持
するFF12,13にはそれぞれ論理0か保持されてお
り、アンドゲート10はキッシュをミスしたことを示す
論理1を出力してアントゲ−1・21に供給する。よっ
てアンドゲート21は論理1を出力してMAR24に出
力する。Since request 2 is a case of a cache miss, the FFs 12 and 13 that hold the index results of AA3 and 4 by request 2 each hold a logic 0, and the AND gate 10 holds a logic 0 indicating that the quiche has been missed. It outputs 1 and supplies it to Antogame 1/21. Therefore, the AND gate 21 outputs a logic 1 and outputs it to the MAR 24.
このアンドゲート21の論理1の信号は、リクエスト2
かキャッシュをミスしておりかつ先行して出されたリク
エスト1のブロックデータ中にも所望のデータが存在し
ていないことを示しており、リクエスト2の主メモリへ
のブロック転送要求を連続して発行可能であることを示
している。The logic 1 signal of this AND gate 21 is the request 2
This indicates that the request 1 has missed the cache and the desired data does not exist in the block data of request 1 issued previously, and the block transfer request to the main memory of request 2 is Indicates that it can be issued.
従って、PAR27中のリクエスト2の実アドレスはM
A R,24で受付りられて、主メモリへブロック転
送要求か発せられる。リクエスト1とリクエスト2のブ
ロック転送の処理中は、DA15゜16からのデータは
使用されず、リクエスト1゜2のブロックデータがDA
15または16に登録される時に同時に、所望のデータ
がDAR23を通してリクエスト要求元に送出される。Therefore, the real address of request 2 in PAR27 is M
It is accepted at AR, 24, and a block transfer request is issued to the main memory. During the processing of block transfers for request 1 and request 2, data from DA15゜16 is not used, and block data from request 1゜2 is transferred to DA.
15 or 16, the desired data is simultaneously sent to the request source through the DAR 23.
そしてリクエスト1.リクエスト2のブロック転送処理
中にリクエスト1とリクエスト2のアドレス情報が図示
されていない別パスで対応するAA3または4に登録さ
れる。リクエスト1とリクエスト2のブロック転送処理
中の間は、後続のリクエスト3はPARl4中で待たさ
れる。And request 1. During the block transfer process of request 2, the address information of requests 1 and 2 is registered in the corresponding AA 3 or 4 through separate paths (not shown). While request 1 and request 2 are undergoing block transfer processing, subsequent request 3 is kept waiting in PAR14.
尚、CMAR17とPAR27のブロック外アドレスが
一致することが比較器1つで検出された場合、即ち先行
して出されたリクエスト1のブロックデータ中にリクエ
スト2の所望のデータか存在していることが検出された
場合には、比較器19は論理1を出力するため、ナンド
回路20は論理Oを出力してアンド回路21の出力が論
理Oとなり、その結果、リクエスト2の主メモリに対す
るブロック転送要求は送出されたい。そして、リクエス
ト1のブロックデータが主メモリより転送されてきて、
リクエスト1の所望のデータがリクエスト要求元に送出
され、ブロックデータがDA15または16に登録され
た後、このフロックデ−タが登録された側のDAか索引
されてリクエスト2の所望のデータが読出され、リクエ
スト要求元に送出される。そしてこの処理が終了するま
では一連のキャッシュミスヒツト処理中として扱われる
。Note that if one comparator detects that the out-of-block addresses of CMAR17 and PAR27 match, that is, the desired data of request 2 exists in the block data of request 1 issued previously. is detected, the comparator 19 outputs a logic 1, the NAND circuit 20 outputs a logic O, and the output of the AND circuit 21 becomes a logic O. As a result, the block transfer of request 2 to the main memory The request should be sent. Then, the block data of request 1 is transferred from the main memory,
After the desired data of request 1 is sent to the request source and the block data is registered in DA 15 or 16, the DA on which this block data is registered is indexed and the desired data of request 2 is read out. , is sent to the request source. Until this processing is completed, it is treated as a series of cache miss processing.
この様に、本実施例では、先行して主メモリにデータの
ブロック転送を要求したリクエストのリクエスト情報を
保持し、この保持されたリクエストのブロック外アドレ
スと後続のリクエストのブロック外アドレスとを比較す
ることにより、後続のリクエストがキャッシュをミスし
ておりかつ先行して主メモリにデータのブロック転送を
要求したブロック中に所望のデータが存在しているか否
かの検出を極めて簡mに行なうことができ、各パイプラ
イン上に保持されている後続のリクエストの、退避及び
回復動作のような非常に複雑な制御を行なうことなしに
、そのままの状態で処理可能となるのである。In this way, in this embodiment, the request information of the request that previously requested a block transfer of data to the main memory is held, and the out-of-block address of this held request is compared with the out-of-block address of the subsequent request. By doing this, it is possible to extremely easily detect whether a subsequent request misses the cache and whether or not desired data exists in a block that has previously requested a block transfer of data to main memory. This allows subsequent requests held on each pipeline to be processed as they are without performing very complex control such as saving and restoring operations.
第3図は本発明の別の実線例を示ず11772図であり
、第2図と同等部分は同一符号により示している、第2
図の例と異なる部分について説明すると、0MR28は
キャッシュミスヒツトしたリクエストのキャッシュ登録
コンパートメント情報を保持するキャッシュミスヒツト
コンパートメントレジスタであり、セレクト29.30
はFFI2.13の出力とCMR,28の夫々対応する
信号との選択を行う選択器である。これ等セレクタ29
.30の出力によりセレクタ22が制御されるようにな
っている。FIG. 3 is a diagram 11772 which does not show another solid line example of the present invention, and parts equivalent to those in FIG. 2 are indicated by the same reference numerals.
To explain the differences from the example in the figure, 0MR28 is a cache miss compartment register that holds cache registration compartment information for requests that have cache misses, and select 29.30
is a selector that selects between the output of FFI 2.13 and the corresponding signals of CMR, 28. These selector 29
.. The selector 22 is controlled by the output of the selector 30.
次に、本実施例の制御動作について述べる。今、後続の
リクエスト2はキャッシュミスヒツ゛トし、かつ先行す
るリクエストか要求するブロックデータ中にも所望のデ
ータが存在しない場合を考える。Next, the control operation of this embodiment will be described. Now, let us consider a case where the subsequent request 2 misses the cache and the desired data does not exist in the block data requested by the preceding request.
そして現在、パイプライン同期制御信号によって後続の
リクエスト2及びリクエスト3の実アドレスはPAR2
7及び14で夫々保持されており、リクエスト2による
AA3.4の索引結果はFF12.13で保持されてい
るとする。And now, due to the pipeline synchronization control signal, the real addresses of subsequent requests 2 and 3 are set to PAR2.
7 and 14, respectively, and the index result of AA3.4 based on request 2 is held in FF12.13.
ます、CMAR17に保持されている、先行して主メモ
リにブロック転送要求を行なったりクエス1〜1の実ア
ドレスのブロック外アドレスと、PAR27に保持され
ているリクエスト2の実アドレスのブロック外アドレス
とか比較器19で比較される。リクエスト2の実アドレ
スは先行して出されたリクエスト1のブロックアドレス
に不一致のケースであるから、比較器19は不一致を示
す論理Oを出力し、ナンド回路20に供給する。従って
ナンド回路20は論理1を出力してアンド回路21に供
給する。First, a block transfer request is made to the main memory in advance, which is held in CMAR17. A comparator 19 compares them. Since the real address of request 2 does not match the block address of request 1 issued previously, comparator 19 outputs a logic O indicating a mismatch and supplies it to NAND circuit 20 . Therefore, the NAND circuit 20 outputs a logic 1 and supplies it to the AND circuit 21.
リクエスト2はキャッシュをミスヒツトするケースであ
るので、リフニス)・2によるAA3,4の索引結果を
保持するFF12,13には、それぞれ論理Oが保持さ
れており、アンドゲート10はキャッシュをミスしたこ
とを示す論理1を出力してアンドゲート21に供給する
。よってアンドゲート21は論理1を出力してMAR2
4に出力する。Since request 2 is a case of a cache miss, FF12 and FF13 that hold the index results of AA3 and 4 by Rifnis).2 each hold logic O, and AND gate 10 indicates that the cache has been missed. A logic 1 indicating this is output and supplied to the AND gate 21. Therefore, AND gate 21 outputs logic 1 and MAR2
Output to 4.
このアンドゲート21の論理1の信号はリクエスト2が
キャッシュをミスしておりかつ先行して出されたリクエ
スト1のブロックデータ中にも所望のデータが存在して
いないことを示しており、リクエスト2の主メモリへの
ブロック転送要求を連続して発行可能であることを示し
ている。The logic 1 signal of this AND gate 21 indicates that request 2 has missed the cache and that the desired data does not exist in the block data of request 1 that was issued previously. This indicates that it is possible to issue block transfer requests to main memory in succession.
従って、PAR27中のリクエスト2の実アドレスはM
AR24で受付けられて、主メモリへブロック転送要求
が発せられる。リクエスト1とリクエスト2のブロック
データの転送の処理中は、FF12,13及びアンド回
路10の出力信号等は無効な信号として扱われ、DAi
5.16からのデータは使用されず、リクエスト1.2
のブロックデータがDA15または16に登録される時
に同時に所望のデータがDAR23を通してリクエスト
要求元に送出される。Therefore, the real address of request 2 in PAR27 is M
It is accepted by the AR 24 and a block transfer request is issued to the main memory. During the process of transferring the block data of request 1 and request 2, the output signals of FFs 12 and 13 and the AND circuit 10 are treated as invalid signals, and the DAi
Data from 5.16 is not used, request 1.2
When the block data is registered in the DA 15 or 16, the desired data is simultaneously sent to the request source through the DAR 23.
そして、リクエスト1.リクエスト2のブロック転送処
理中にリクエスト1とリクエスト2のアドレス情報が対
応するAA3または4に登録される。リクエスト1とリ
クエスト2のブロックデータの転送の処理中の間は、後
続のリクエスト3はPAR14中で待たされる。And request 1. During the block transfer process of request 2, the address information of request 1 and request 2 is registered in the corresponding AA3 or AA4. While the transfer of block data of requests 1 and 2 is being processed, the subsequent request 3 is kept waiting in the PAR 14.
次に、後続のリクエスト2がキャッシュにはミスヒット
し、一方先行するリクエスト1が要求するブロックデー
タ中に所望のデータが存在する場合を考える。そして、
今CMAR17とPAR27のブロック外アドレスか一
致することが比較器19で検出されたとする。即ちこの
場合には、比較器19は論理1を出力し、かつVビット
18が論理1を出力しているために、ナンド回路20は
論理0を出力してアンド回路21に供給する。そしてア
ンド回路21は論理0を出力し、その結果リクエスト2
の主メモリに対するブロック転送要求は送出されず、リ
クエスト1の要求したブロックデータの処理が終了する
までリクエスト2の処理はPAR27上で待たされる。Next, consider a case where the subsequent request 2 misses the cache, but the desired data is present in the block data requested by the preceding request 1. and,
Suppose now that the comparator 19 detects that the out-of-block addresses of CMAR17 and PAR27 match. That is, in this case, since the comparator 19 outputs a logic 1 and the V bit 18 outputs a logic 1, the NAND circuit 20 outputs a logic 0 and supplies it to the AND circuit 21. Then, the AND circuit 21 outputs logic 0, and as a result, request 2
A block transfer request to the main memory is not sent, and the processing of request 2 is made to wait on the PAR 27 until the processing of the block data requested by request 1 is completed.
そして、主メモリからリクエスト1の要求したブロック
データが転送されてくるまでの間に、゛図示されていな
いキャッシュリプレースメントアルゴリズム回路によっ
て決定された、リクエスト1のブロックデータのキャッ
シュ登録コンパートメント情報が0MR28にセットさ
れる。このキャッシュ登録コンパートメント情報は2ビ
ツトからなる情報であり、論理1で書込むべきキャッシ
ュのコンパートメントを表示し、それぞれのビットは各
々DA15.16に対応する。従って、そのビットの組
合せは「10」及びroIJI、か存在しない。Then, until the block data requested by request 1 is transferred from the main memory, the cache registration compartment information of the block data of request 1 determined by a cache replacement algorithm circuit (not shown) is set to 0MR28. be done. This cache registration compartment information is information consisting of 2 bits, and indicates the compartment of the cache to be written to with a logic 1, and each bit corresponds to DA15.16. Therefore, the bit combination "10" and roIJI does not exist.
リクエスト1が要求したブロックデータか主メモリより
転送されてきて、DA15もしくは16に登録され、リ
クエスト1の所望のデータがリクエスト要求元に送出さ
れるとPAR27で待機中のリクエスト2の処理が開始
される。When the block data requested by request 1 is transferred from the main memory and registered in DA 15 or 16, and the desired data of request 1 is sent to the request source, processing of request 2 that is waiting in PAR 27 is started. Ru.
リクエスト2の所望のデータはリクエスト1か主メモリ
に要求したブロックデータ中に存在するのであるから、
即ちリクエスト1とリクエスト2は同一のブロックアド
レスを有している。従って、リクエスト2でDA15.
16を索引して、0MR28で指示されたコンパートメ
ントのDA15もしくは16から読出されたデータは、
リクエスト2が所望するデータである。Since the desired data of request 2 exists in request 1 or the block data requested from main memory,
That is, request 1 and request 2 have the same block address. Therefore, in request 2, DA15.
16 and the data read from DA15 or 16 of the compartment indicated by 0MR28 is
Request 2 is the desired data.
今、アンドゲート10はキャッシュミスヒツトを示す論
理1を出力しているため、セレクタ29゜30ではCM
R,28の出力が有効となり、リクエスト2の所望する
データがDAR23に読出されてリクエスト要求元へ転
送される。このリクエスト2の処理か終了するまでは、
一連のキャッシュミスヒツト処理中として扱われる。Now, the AND gate 10 is outputting a logic 1 indicating a cache miss, so the selectors 29 and 30 are outputting CM
The output of R, 28 becomes valid, and the desired data of request 2 is read out to DAR 23 and transferred to the request source. Until this request 2 is processed or finished,
It is treated as a series of cache misses being processed.
尚、後続するリクエスト2がキャッシュにヒツトした場
合には、アンドゲート10はキャッシュにヒツトしたこ
とを示す論理Oを出力するため、アンドゲート21の出
力もOとなり、リクエスト2の主メモリに対するブロッ
ク転送要求は送出されたい。Note that when the subsequent request 2 hits the cache, the AND gate 10 outputs a logic O indicating that it hits the cache, so the output of the AND gate 21 also becomes O, and the block transfer of request 2 to the main memory is performed. The request should be sent.
リクエスト2はリクエスト1のキャッシュミスヒツト処
理が終了するまでの間、PAR27で待たされる。この
間リクエスト2のAA3,4の索引結果もFF12.1
3で保持され続ける。ただし、リクエスト1のキャッシ
ュミスヒツト処理が終了するまでの間は、FF12,1
3及び10の出力はキャッシュの制御に関しては無効化
される。Request 2 is kept waiting in the PAR 27 until the cache miss processing of request 1 is completed. During this time, the index results for AA3 and 4 of request 2 are also FF12.1
It continues to be held at 3. However, until the cache miss processing of request 1 is completed, FF12, 1
Outputs 3 and 10 are disabled for cache control.
リクエスト1が要求したブロックデータがDA15もし
くは16に登録され、リクエスト1の所望のデータがリ
クエスト要求元へ送出されると、リクエスト1のキャッ
シュミスヒツト処理が終了してリクエスト2の処理が再
開される。この時、FF12.13及びアンドゲート1
0によるキャッシュ制御情報が有効となり、セレクタ2
9.30はFF12.13の出力を選択する。そしてリ
クエスト2の所望のデータかDA15Lしくは16から
DAR23に読出されてリクエスト要求元へ送出される
。When the block data requested by request 1 is registered in the DA 15 or 16 and the desired data of request 1 is sent to the request source, the cache miss processing of request 1 is completed and the processing of request 2 is resumed. . At this time, FF12.13 and AND gate 1
The cache control information based on 0 becomes valid, and selector 2
9.30 selects the output of FF12.13. Then, the desired data of request 2 is read out from the DA 15L or 16 to the DAR 23 and sent to the request source.
以上説明したように、本実施例では、先行して主メモリ
にデータのブロック転送を要求したリクエストのリクエ
スト情報及びキャッシュの登録コンパートメント情報を
保持しているので、後続のリクエストの状態の検出を極
めて簡単に行なうことができ、各パイプライン上に保持
されている後続のリクエストの退避及び回復動作のよう
な非常に複雑な制御を行なうことなしに、そのままの状
態で処理できるのである。As explained above, in this embodiment, since the request information and cache registration compartment information of the request that previously requested a block transfer of data to the main memory are held, it is extremely easy to detect the status of the subsequent request. This is easy to do, and can be processed as is without very complex control such as saving and restoring subsequent requests held on each pipeline.
几呪凶羞1
軟土の如く、本発明によれば、後続のリクストがAヤッ
シュミスでかつ先行して主メモリにデータのブロック転
送要求をしたブロック中に所望とするデータが存在して
いるか否かの検出を容易に高速に行えるので、システム
の処理性能が向上するという効果がある。According to the present invention, the following request is an A-yash miss, and whether or not the desired data exists in the block that was previously requested to transfer data to the main memory. This has the effect of improving the processing performance of the system because it can be detected easily and quickly.
第1図〜第3図は本発明の各実施例のブロック図である
。
主要部分の符号の説明
1・・・・・・論理アドレスレジスタ
34・・・・・・アドレスアレイ
5.6,7.19・・・・・・比較器
14.27・・・・・・実アドレスレジスタ15.16
・・・・・・データアレイ
17・・・・・・キャッシュミスアドレスレジスタ
18・・・・・・フラグレジスタ
23・・・・・・データアレイ読出レジスタ
24・・・・・・メモリアドレスレジスタ26・・・・
・・パイプライン同期制御回路
28・・・・・・キャッシュミスヒツトコンパートメン
トレジスタ1 to 3 are block diagrams of each embodiment of the present invention. Explanation of symbols of main parts 1...Logical address register 34...Address array 5.6, 7.19...Comparator 14.27...Real Address register 15.16
... Data array 17 ... Cache miss address register 18 ... Flag register 23 ... Data array read register 24 ... Memory address register 26・・・・・・
... Pipeline synchronization control circuit 28 ... Cache miss compartment register
Claims (3)
するキャッシュメモリを有するデータ処理装置であって
、第1リクエストがキャッシュミスヒットの場合に、そ
のリクエスト情報を保持する保持手段と、前記第1リク
エストに続く第2のリクエストのリクエスト情報内のア
ドレスと、前記保持手段に保持されているリクエスト情
報内のアドレスとを比較する比較手段と、前記第2リク
エストがキャッシュミスヒットの場合でかつ前記比較手
段の比較結果が不一致を示す場合に、前記第2リクエス
トに応答して前記主メモリからのデータブロック転送要
求をなす手段とを有することを特徴とするデータ処理装
置。(1) A data processing device having a cache memory that holds a partial copy of the contents of the main memory in units of blocks, wherein when the first request is a cache miss, a holding unit that holds the request information; a comparison means for comparing an address in the request information of a second request following the first request with an address in the request information held in the holding means; and means for requesting data block transfer from the main memory in response to the second request when the comparison result of the comparing means indicates a mismatch.
するキャッシュメモリと、前記キャッシュメモリの保持
内容のディレクトリを記録するキャッシュディレクトリ
手段と、前記キャッシュディレクトリ手段の索引結果に
よりキャッシュヒット状態を判定するキャッシュヒット
判定手段とを含み、リクエストに応答して前記キャッシ
ュディレクトリ手段を索引する第1ステージと、この索
引結果を用いて前記キャッシュヒット判定手段によりキ
ャッシュヒット状態を判定する第2ステージとを有する
パイプライン処理方式のデータ処理装置であって、キャ
ッシュミスヒットが判定されたリクエストのリクエスト
情報を保持するキャッシュミスヒットリクエスト保持手
段と、このリクエストに続く後続リクエストのリクエス
ト情報を前記第1及び第2ステージで夫々保持する手段
と、前記第2ステージでリクエスト情報が保持されるリ
クエストに対する前記キャッシュディレクトリの索引結
果を保持する索引結果保持手段と、前記第2ステージで
保持されているリクエスト情報内のアドレスと、前記キ
ャッシュミスヒットリクエスト保持手段に保持されてい
るリクエスト情報内のアドレスとを比較する比較手段と
、前記索引結果保持手段の内容がキャッシュミスヒット
を示しておりかつ前記比較手段の比較結果が不一致を示
している場合、前記第2ステージで保持されているリク
エストに応答して前記主メモリからのデータブロック転
送要求をなす手段とを有することを特徴とするデータ処
理装置。(2) A cache memory that holds a partial copy of the contents of the main memory in block units, a cache directory means that records a directory of the contents held in the cache memory, and a cache hit state determined based on the index result of the cache directory means. a first stage that indexes the cache directory means in response to a request; and a second stage that uses the index result to determine a cache hit state by the cache hit determination means. The data processing device employs a pipeline processing method, and includes a cache miss request holding unit that holds request information of a request for which a cache miss hit has been determined, and a cache miss request holding unit that holds request information of a subsequent request following this request. means for holding each stage, index result holding means for holding an index result of the cache directory for a request whose request information is held at the second stage, and an address in the request information held at the second stage. and a comparison means for comparing the address in the request information held in the cache miss request holding means, and the contents of the index result holding means indicate a cache miss and the comparison result of the comparison means is and means for requesting data block transfer from the main memory in response to the request held in the second stage if a mismatch is indicated.
するキャッシュメモリと、前記キャッシュメモリの保持
内容のディレクトリを記録するキャッシュディレクトリ
手段と、前記キャッシュディレクトリ手段の索引結果に
よりキャッシュヒット状態を判定するキャッシュヒット
判定手段とを含み、リクエストに応答して前記キャッシ
ュディレクトリ手段を索引する第1ステージと、この索
引結果を用いて前記キャッシュヒット判定手段によりキ
ャッシュヒット状態を判定する第2ステージとを有する
パイプライン処理方式のデータ処理装置であって、キャ
ッシミスヒットが判定されたリクエストのリクエスト情
報を保持するキャッシュミスヒットリクエスト保持手段
と、このキャッシュミスヒットが判定されたリクエスト
のキャッシュ登録コンパートメント情報を保持する手段
と、このリクエストに続く後続リクエストのリクエスト
情報を前記第1及び第2ステージ夫々で保持する手段と
、前記第2ステージでリクエスト情報が保持されるリク
エストに対する前記キャッシュディレクトリの索引結果
を保持する索引結果保持手段と、前記第2ステージで保
持されているリクエスト情報内のアドレスと、前記キャ
ッシュミスヒットリクエスト保持手段に保持されている
リクエスト情報内のアドレスとを比較する比較手段と、
前記索引結果保持手段の内容がキャッシュミスヒットを
示しておりかつ前記比較手段の比較結果が不一致を示し
ている場合、前記キャッシュミスヒットが判定されたリ
クエストに応答して前記主メモリからブロックデータを
読出して前記キャッシュメモリに登録し、しかる後に前
記第2ステージに保持されているリクエスト情報内のア
ドレスと前記キャッシュミスヒットが判定されたリクエ
ストの前記キャッシュ登録コンパートメント情報とによ
り、前記第2ステージに保持されているリクエストの所
望のデータを前記キャッシュメモリから読出してリクエ
スト要求元へ送出する手段とを有するとを特徴とするデ
ータ処理装置。(3) A cache memory that holds a partial copy of the contents of the main memory in units of blocks, a cache directory means that records a directory of the contents held in the cache memory, and a cache hit state determined based on the index result of the cache directory means. a first stage that indexes the cache directory means in response to a request; and a second stage that uses the index result to determine a cache hit state by the cache hit determination means. A data processing device using a pipeline processing method, comprising a cache miss request holding means for holding request information of a request for which a cache miss has been determined, and cache registration compartment information for the request for which a cache miss has been determined. means for holding request information of a subsequent request following this request in each of the first and second stages; and holding an index result of the cache directory for the request whose request information is held in the second stage. index result holding means, comparison means for comparing an address in the request information held in the second stage and an address in the request information held in the cache miss request holding means;
If the contents of the index result holding means indicate a cache miss and the comparison result of the comparison means indicates a mismatch, block data is retrieved from the main memory in response to the request for which the cache miss has been determined. is read out and registered in the cache memory, and then retained in the second stage based on the address in the request information retained in the second stage and the cache registration compartment information of the request for which the cache miss has been determined. A data processing device comprising means for reading desired data of a request being made from the cache memory and sending it to a request source.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1012653A JPH0740246B2 (en) | 1989-01-20 | 1989-01-20 | Data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1012653A JPH0740246B2 (en) | 1989-01-20 | 1989-01-20 | Data processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02191051A true JPH02191051A (en) | 1990-07-26 |
JPH0740246B2 JPH0740246B2 (en) | 1995-05-01 |
Family
ID=11811324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1012653A Expired - Fee Related JPH0740246B2 (en) | 1989-01-20 | 1989-01-20 | Data processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0740246B2 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5335335A (en) * | 1976-09-13 | 1978-04-01 | Nec Corp | Buffer storage |
-
1989
- 1989-01-20 JP JP1012653A patent/JPH0740246B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5335335A (en) * | 1976-09-13 | 1978-04-01 | Nec Corp | Buffer storage |
Also Published As
Publication number | Publication date |
---|---|
JPH0740246B2 (en) | 1995-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR880000299B1 (en) | Cash apparatus | |
US4394731A (en) | Cache storage line shareability control for a multiprocessor system | |
US20030023814A1 (en) | Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy | |
JPH0137773B2 (en) | ||
JPH0658660B2 (en) | Tightly coupled computer system | |
JPH03108042A (en) | Multiple virtual space address system and computer system | |
CA1300279C (en) | Central processor unit for digital data processing system including cache management mechanism | |
JPH03135641A (en) | Microprocessor | |
EP0669579B1 (en) | Coherence index generation for use by an input/output adapter | |
JPH0551937B2 (en) | ||
JPH04354039A (en) | Address converter | |
JPH02191051A (en) | Data processor | |
US6298355B1 (en) | Computer system | |
JPH02302853A (en) | Improved type cash access method and apparatus | |
JPH0552539B2 (en) | ||
EP0302926B1 (en) | Control signal generation circuit for arithmetic and logic unit for digital processor | |
JP3293872B2 (en) | Cache matching method | |
JPH03257643A (en) | Information processor | |
JPH01226056A (en) | Address converter | |
CA1300275C (en) | Destination control logic for arithmetic and logic unit for digital data processor | |
JPH02114346A (en) | Tlb entry control system | |
JPH01161553A (en) | Address converting buffer controlling system | |
JPH0816477A (en) | Multiprocessor system | |
JPH0454259B2 (en) | ||
JPH04190440A (en) | Address conversion control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |