JPH07334421A - Cache memory controller - Google Patents

Cache memory controller

Info

Publication number
JPH07334421A
JPH07334421A JP6127454A JP12745494A JPH07334421A JP H07334421 A JPH07334421 A JP H07334421A JP 6127454 A JP6127454 A JP 6127454A JP 12745494 A JP12745494 A JP 12745494A JP H07334421 A JPH07334421 A JP H07334421A
Authority
JP
Japan
Prior art keywords
request
address
cache memory
store
tlb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6127454A
Other languages
Japanese (ja)
Inventor
Masako Muraki
雅子 村木
Atsushi Tanaka
田中  敦
Yaoko Nakagawa
八穂子 中川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6127454A priority Critical patent/JPH07334421A/en
Publication of JPH07334421A publication Critical patent/JPH07334421A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To avoid access competition between an address array and a TLB by a small physical quantity in pipeline processing. CONSTITUTION:A stage control part 100 for managing the stage control of a pipeline equally sets up the stages of respective requests for accessing the address array 2 and the TLB 3. When a storage request is generated, the array 2 and the TLB 3 are referred to on a stage C e.g. and request information, a logical address, an address array reference result, and a real address found by the TLB 3 are registered in one of plural storage fetching queues 9. Then, a cache memory 1 is accessed based upon the registered contents of the queue 9 on a stage F, e.g. and data are written. Also, at the time of generating a fetch request, the array 2 and the TLB 3 are referred to on the stage C, and when a hit is detected, data are read out from the memory 1.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、情報処理装置における
キャッシュメモリ制御装置に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a cache memory control device in an information processing device.

【0002】[0002]

【従来の技術】情報処理装置においては、一般にメモリ
アクセスを高速に行うために、小容量、高速アクセスの
キャッシュメモリ(バッファメモリ)を備えている。こ
のキャッシュメモリは一定または任意の大きさのブロッ
クに分割され、主記憶装置のデータの一部を保持してい
る。このキャッシュメモリに対応してアドレスアレイが
あり、キャッシュメモリのブロックが保持するデータの
主記憶装置上の実アドレスを登録している。
2. Description of the Related Art Generally, an information processing apparatus is provided with a small capacity, high speed access cache memory (buffer memory) for high speed memory access. This cache memory is divided into blocks of a fixed size or an arbitrary size, and holds a part of the data in the main storage device. There is an address array corresponding to this cache memory, and the real address on the main memory of the data held by the block of the cache memory is registered.

【0003】また、仮想アドレス方式をとるデ−タ処理
装置は、論理アドレスとそれに対する実アドレスとの変
換対を保持するアドレス変換バッファ(以後TLBと呼
ぶ)を備える。
Further, the data processing device adopting the virtual address system is provided with an address translation buffer (hereinafter referred to as TLB) which holds a translation pair of a logical address and a real address for the logical address.

【0004】キャッシュメモリ制御装置では、論理アド
レスによるアクセス要求があると、TLBにより実アド
レスを求めると共にアドレスアレイをアクセスして該当
デ−タブロックの主記憶アドレスの登録の有無を検出
し、登録されていすれば、キャッシュメモリにアクセス
する。
When there is an access request by a logical address, the cache memory control unit obtains a real address from the TLB and accesses the address array to detect whether or not the main memory address of the corresponding data block is registered and register it. If so, the cache memory is accessed.

【0005】一方、制御方式によりデ−タ処理装置の処
理速度を向上させる方法の1つに、パイプライン方式が
ある。パイプライン方式は命令の処理シーケンスを複数
のステージに分け、各命令においてこれらのステージを
オーバーラップさせて処理することにより、複数命令の
並列処理を実現するものである。ストアリクエストおよ
びフェッチリクエストによりキャッシュメモリをアクセ
スする場合、仮にこれらストアおよびフェッチリクエス
トのパイプライン動作において、キャッシュメモリをア
クセスするステージが同じ、言い替えればこのキャッシ
ュメモリのアドレスアレイおよびTLBを参照するステ
ージが同じで、且つ1サイクルに2命令以上がデコード
されない場合、ある時刻に、ストアリクエストとフェッ
チリクエストが同時にキャッシュメモリ即ちアドレスア
レイをアクセスすることはない。しかし、ストアリクエ
ストおよびフェッチリクエストのキャッシュメモリをア
クセスするステージが異なれば、ある時刻に、この2つ
のリクエストが同時にキャッシュメモリおよびアドレス
アレイ、TLBをアクセスする場合がある。
On the other hand, one of the methods for improving the processing speed of the data processing apparatus by the control method is the pipeline method. The pipeline method realizes parallel processing of a plurality of instructions by dividing a processing sequence of instructions into a plurality of stages and overlapping each stage in each instruction for processing. When the cache memory is accessed by a store request and a fetch request, the stages of accessing the cache memory are the same in the pipeline operation of the store and fetch requests, in other words, the stages of referring to the address array and TLB of this cache memory are the same. If two or more instructions are not decoded in one cycle, the store request and the fetch request do not simultaneously access the cache memory, that is, the address array at a certain time. However, if the stages for accessing the cache memory of the store request and the fetch request are different, the two requests may simultaneously access the cache memory, the address array, and the TLB at a certain time.

【0006】この場合の一例を図3に示す。すなわち、
フェッチリクエストのアドレスアレイ、TLB参照をC
ステージで、ストアリクエストのアドレスアレイ、TL
B参照をFステージで行うと仮定した場合、図3に示す
ように、パイプライン処理の過程で先行するストアリク
エストと後続フェッチリクエストとでアドレスアレ
イ、TLBの参照が競合する。
An example of this case is shown in FIG. That is,
Address array of fetch request, TLB reference to C
At stage, address array of store request, TL
Assuming that the B reference is performed in the F stage, as shown in FIG. 3, the reference of the address array and the TLB conflict between the preceding store request and the subsequent fetch request in the pipeline process.

【0007】このように、ストアリクエストとフェッチ
リクエストとのキャッシュメモリ、アドレスアレイ、T
LBアクセスの競合が発生した場合、どちらかのアクセ
スを待たせなければならない。これに対し、従来は、例
えば特開昭59−048879号公報に示されるよう
に、ストアリクエスト用、フェッチリクエスト用の専用
アドレス・アレイ、TLBを持つことにより、ストアリ
クエストとフェッチリクエストとのアドレスアレイ、T
LBの競合を回避しているものもある。
Thus, the cache memory for the store request and the fetch request, the address array, the T
When the LB access conflict occurs, either access must be made to wait. On the other hand, conventionally, as shown in, for example, Japanese Patent Laid-Open No. 59-048879, by having a dedicated address array for store requests and fetch requests, and a TLB, an address array for store requests and fetch requests is provided. , T
Some avoid LB competition.

【0008】[0008]

【発明が解決しようとする課題】上述の従来技術におい
ては、ストアリクエスト用、フェッチリクエスト用の専
用アドレスアレイ、TLBを設けるため、ストアリクエ
ストとフェッチリクエストとのアドレスアレイ、TLB
の競合を回避できる反面、物量が増大するという問題が
ある。
In the above-mentioned prior art, since the dedicated address array and TLB for the store request and the fetch request are provided, the address array of the store request and the fetch request, the TLB.
However, there is a problem in that the quantity increases.

【0009】本発明の目的は、ストアリクエスト用、フ
ェッチリクエスト用の専用アドレスアレイを持たずに、
アドレスアレイのアクセス競合を回避することができる
キャッシュメモリ制御装置を提供することにある。
An object of the present invention is to provide a dedicated address array for store requests and fetch requests,
An object of the present invention is to provide a cache memory control device capable of avoiding access conflict of an address array.

【0010】[0010]

【課題を解決するための手段】本発明では、メモリリク
エスト発生時に、当該リクエストのアドレス、アドレス
アレイの参照結果、当該リクエストの属性を示す情報を
登録する数面のキュー(以下、ストアフェッチキューと
呼ぶ)を設け、当該リクエストの実際のキャッシュメモ
リアクセスステージに合わせて、当該キューに登録され
ている情報に基づいてキャッシュメモリをアクセスする
ことを特徴とするものである。
According to the present invention, when a memory request occurs, several queues (hereinafter referred to as a store fetch queue) that register the address of the request, the reference result of the address array, and the information indicating the attribute of the request. Is provided, and the cache memory is accessed based on the information registered in the queue in accordance with the actual cache memory access stage of the request.

【0011】[0011]

【作用】キャッシュメモリへのアクセスのためにアドレ
スアレイを参照する全てのリクエストについて、各々ア
ドレスアレイ参照ステージを一番早いパイプラインステ
ージで行うものに合わせる。例えばストアリクエストと
フェッチリクエストにおいては、一般にフェッチリクエ
ストのアドレスアレイ参照ステージの方が早いので、こ
のステージにストアリクエストのアドレスアレイ参照ス
テージも合わせる。そして、ストアリクエスト発生時
に、ストアリクエストのアドレス、アドレスアレイ参照
結果などの情報をストアフェッチキューに登録し、該ス
トアリクエスト本来のキャッシュメモリアクセスステー
ジに合わせて、当該キューの情報をもとにキャッシュメ
モリをアクセスする。これにより、ストアリクエストと
フェッチリクエストなどのアドレスアレイのアクセス競
合を回避し、アドレスアレイ参照から数ステージ後にス
トアクリエストなどのキャッシュメモリのアクセスが可
能となる。
With respect to all the requests that refer to the address array for accessing the cache memory, the address array reference stage is adapted to the one performed at the earliest pipeline stage. For example, in a store request and a fetch request, the address array reference stage of the fetch request is generally faster, so the address array reference stage of the store request is also adjusted to this stage. Then, when a store request occurs, information such as the address of the store request and the address array reference result is registered in the store fetch queue, and the cache memory is based on the information of the queue according to the cache memory access stage of the original store request. To access. As a result, access conflicts of the address array such as a store request and a fetch request can be avoided, and the cache memory such as the store request can be accessed several stages after the address array reference.

【0012】更に、ストアフェッチキューは高々数面を
備えるだけでよく、ストアリクエスト用、フェッチリク
エスト用の専用アドレスアレイ、TLBなどを設ける場
合に比べ、少ない物量にてストアリクエストとフェッチ
リクエストなどのアドレスアレイ、TLBのアクセスの
競合を避けることが可能となる。
Further, the store fetch queue need only have at most several faces, and compared with the case where a dedicated address array for store requests and fetch requests, TLB, etc. are provided, the address of store requests and fetch requests, etc. can be reduced with a smaller quantity. It is possible to avoid access conflict between the array and TLB.

【0013】[0013]

【実施例】以下、本発明の一実施例を図面を参照して説
明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings.

【0014】図1に本発明の一実施例のブロック図を示
す。図において、1は主記憶装置の一部のデータブロッ
クを保持しているキャッシュメモリ、2はキャッシュメ
モリが保持するデータブロックの主記憶装置上の実アド
レスを登録しているアドレスアレイ、3は論理アドレス
とそれに対する実アドレスとの変換対を保持するアドレ
ス変換バッファ(TLB)、4はキャッシュメモリ1の
ヒット検出回路である。キャッシュメモリ1の下位に
は、物理アドレスにて参照を行う2レベルのキャッシュ
メモリ(中間バッファ)もしくは主記憶装置が存在する
が、図1では省略してある。
FIG. 1 shows a block diagram of an embodiment of the present invention. In the figure, 1 is a cache memory that holds a part of the data blocks of the main memory, 2 is an address array that registers the real addresses of the data blocks held by the cache memory in the main memory, and 3 is a logical An address translation buffer (TLB) 4 which holds a translation pair of an address and a real address for the address is a hit detection circuit of the cache memory 1. Below the cache memory 1, there is a two-level cache memory (intermediate buffer) or main storage device that refers by physical address, but it is omitted in FIG.

【0015】5はリクエスト情報を保持するレジスタ、
6は一般にはリクエスト論理アドレスを保持し、例外的
にブロックパージアドレスを保持するレジスタである。
7はキャッシュメモリ1のアドレスレジスタ、8はキャ
ッシュメモリのストアデータレジスタである。
5 is a register for holding request information,
A register 6 generally holds a request logical address and exceptionally holds a block purge address.
Reference numeral 7 is an address register of the cache memory 1, and 8 is a store data register of the cache memory.

【0016】9はn面(nは2以上の任意の整数)のス
トアフェッチキューであり、アドレスアレイ2、TBL
3の参照結果等を保持する。10はストアフェッチキュ
ー9内のエンキュー論理アドレスとレジスタ6のリクエ
スト論理アドレスを比較する比較回路である。11はス
トアフェッチキュー9内の論理アドレスあるいは実アド
レスのいずれを選択し、また、ストアリクエストのアク
セスがキャッシュメモリの書き込み単位を跨がるなどす
る場合にアドレス加算を行うためのセレクタ/加算回路
である。12はセレクタ/加算回路11の出力論理アド
レスあるいはリクエスト論理アドレスのいずれかを選択
するセレクタ、13はリクエスト論理アドレスとブロッ
クパージアドレスのいずれかを選択するセレクタであ
る。
Reference numeral 9 is a store fetch queue of n-side (n is an arbitrary integer of 2 or more), and the address array 2 and TBL
The reference result of 3 and the like are retained. Reference numeral 10 is a comparison circuit for comparing the enqueue logical address in the store fetch queue 9 with the request logical address of the register 6. Reference numeral 11 denotes a selector / adder circuit for selecting a logical address or a real address in the store fetch queue 9, and for performing address addition when the access of the store request crosses the write unit of the cache memory. is there. Reference numeral 12 is a selector for selecting either the output logical address of the selector / adder circuit 11 or the request logical address, and 13 is a selector for selecting either the request logical address or the block purge address.

【0017】100はステージ制御部であり、パイプラ
イン処理のステージ制御を司る。図1の各部の動作タイ
ミングは、このステージ制御部100のパイプラインス
テージ制御信号によって制御される。
A stage control unit 100 controls the stage of pipeline processing. The operation timing of each unit in FIG. 1 is controlled by the pipeline stage control signal of the stage control unit 100.

【0018】図2にストアフェッチキュー9の内容の詳
細を記述する。すなわち、ストアフェッチキュー9に
は、キャッシュメモリ1をアクセスするストアリクエス
トの論理アドレス101、TLB3の参照により求まる
実アドレス102、アドレスアレイ2の参照結果すなわ
ちヒット検出回路4の検出結果103、リクエスト情報
(本実施例ではストアリクエスト)104、該ストアフ
ェッチキューの有効ビット105が保持される。
The details of the contents of the store fetch queue 9 are described in FIG. That is, in the store fetch queue 9, the logical address 101 of the store request for accessing the cache memory 1, the real address 102 obtained by referring to the TLB 3, the reference result of the address array 2, that is, the detection result 103 of the hit detection circuit 4, and the request information ( In this embodiment, the store request) 104 and the valid bit 105 of the store fetch queue are held.

【0019】本実施例では、基本的なパイプラインステ
ージがA→B→C→D→E→Fと進んでいき、フェッチ
リクエストはCステージでキャッシュメモリ1のデータ
を読みだし、ストアリクエストはFステージでキャッシ
ュメモリ1にデータを書き込むものと仮定する。このキ
ャッシュメモリ1をアクセスするためには、レジスタ6
のリクエスト論理アドレスでアドレスアレイ2、TLB
3を参照しなければならないが、このアドレスアレイ2
とTLB3の参照ステージを、フェッチリクエストおよ
びストアクリエストともに(一般にはアドレスアレイ、
TLBを参照する全てのリクエストにおいて)Cステー
ジで行うとする。本実施例のパイプライン処理例を図4
に示す。以下、図4を例に図1の動作を説明する。
In this embodiment, the basic pipeline stage progresses in the order of A → B → C → D → E → F, the fetch request reads the data of the cache memory 1 in the C stage, and the store request F. It is assumed that data is written in the cache memory 1 at the stage. To access the cache memory 1, the register 6
Request logical address of address array 2, TLB
3 should be referred to, but this address array 2
And the reference stage of TLB3 for both fetch requests and store requests (generally address array,
Suppose that it is performed in the C stage (for all requests that refer to TLB). An example of pipeline processing of this embodiment is shown in FIG.
Shown in. The operation of FIG. 1 will be described below with reference to FIG.

【0020】先行ストアリクエストは、ステージBで
リクエスト情報、リクエストアドレス(リクエスト論理
アドレス)のレジスタ5、6へ設定をおえ、Cステージ
でレジスタ6の論理アドレスによりアドレスアレイ2、
TLB3を参照した後、このストアリクエストの論理
アドレス、リクエスト情報、TLB3の参照によって求
まる実アドレス、ヒット検出回路4のアドレスアレイ参
照結果をn面あるストアフェッチキュー9の1つに登録
する。その後、この先行ストアリクエストは、Fステ
ージにて、ストアフェッチキュー9の登録内容のアドレ
スアレイ参照結果(H)103に、該先行ストアリクエ
ストがアクセスするメモリ領域がキャッシュメモリ内の
ブロックに存在していることが示されていれば(例え
ば、H=1)、そのストアフェッチキュー登録内容の論
理アドレス(LA)101を、セレクタ/加算回路11
およびセレクタ12を経由してレジスタ7に設定してキ
ャッシュメモリ1をアクセスし、該キャッシュメモリ1
にレジスタ8のデータを書き込む。また、ストアフェッ
チキュー登録内容のアドレスアレイ参照結果(H)10
3に、ストアリクエストがアクセスするメモリ領域が
キャッシュメモリ1内のブロックに存在していないこと
が示されているか(例えば、H=0)、または、このキ
ャッシュメモリ1がストアスルー方式を採用している場
合は、下位のメモリ装置(主記憶装置または2レベルの
キャッシュメモリ装置)に対し、セレクタ/加算回路1
1は、ストアフェッチキュー登録内容の実アドレス(P
A)102とリクエスト情報(C)104とを送出す
る。
The preceding store request is set in the register 5 and 6 of request information and request address (request logical address) in stage B, and in stage C the address array 2 is set by the logical address of register 6.
After referring to TLB3, the logical address of this store request, request information, the real address obtained by referring to TLB3, and the address array reference result of the hit detection circuit 4 are registered in one of the n-side store fetch queues 9. After that, in the F stage, the preceding store request shows that the memory array accessed by the preceding store request exists in the block in the cache memory in the address array reference result (H) 103 of the registered contents of the store fetch queue 9. If it is indicated (for example, H = 1), the logical address (LA) 101 of the contents registered in the store fetch queue is set to the selector / adder circuit 11
And the cache memory 1 is accessed by setting it in the register 7 via the selector 12.
The data of the register 8 is written in. In addition, the address array reference result (H) 10 of the contents registered in the store fetch queue
3 shows that the memory area accessed by the store request does not exist in the block in the cache memory 1 (for example, H = 0), or the cache memory 1 uses the store-through method. If it is present, the selector / adder circuit 1 is added to the lower memory device (main memory device or 2-level cache memory device).
1 is the real address (P
A) 102 and request information (C) 104 are transmitted.

【0021】後続フェッチリクエスト、、でも、
それぞれステージBまでリクエスト情報、リクエストア
ドレス(リクエスト論理アドレス)のレジスタ5、6へ
設定をおえ、Cステージでアドレスアレイ2、TLB3
を参照する。そして、キャッシュメモリ1に当該データ
が存在する場合、すなわち、ヒット検出回路4がヒット
(H=1)を検出した場合、該Cステージで当該リクエ
ストアドレスをセレクタ12を経由してレジスタ7に設
定してキャッシュメモリ1をアクセスし、該キャッシュ
メモリ1からデータを読み出す。もし、キャッシュメモ
リ1内に当該データが存在しない場合は、主記憶装置ま
たは2レベルのキャッシュメモリからデータを読み出す
こととなる。このフェッチリクエストの動作は、従来と
変るところがない。
Subsequent fetch request, but
Request information and request address (request logical address) registers 5 and 6 are set up to stage B, respectively, and address array 2 and TLB 3 are set at stage C.
Refer to. When the data is present in the cache memory 1, that is, when the hit detection circuit 4 detects a hit (H = 1), the request address is set in the register 7 via the selector 12 at the C stage. To access the cache memory 1 and read data from the cache memory 1. If the data does not exist in the cache memory 1, the data is read from the main storage device or the two-level cache memory. The operation of this fetch request is the same as the conventional one.

【0022】本実施例では、図4に示すように、キャッ
シュメモリの参照ステージが遅いストアリクエストのア
ドレスアレイ、TLB参照をフェッチリクエストと同じ
Cステージとすることにより、フェッチリクエストとス
トアリクエストとのアドレスアレイ、TLB参照の競合
を回避できる。
In this embodiment, as shown in FIG. 4, the address array of the store request whose reference stage of the cache memory is late, and the TLB reference is set to the same C stage as the fetch request, so that the addresses of the fetch request and the store request are Array and TLB reference conflicts can be avoided.

【0023】次に、データアクセスの競合が発生した場
合のメモリアクセスの順序保証について述べる。このデ
ータアクセス競合のうち、先行ストアリクエストと後続
オペランドフェッチリクエストとのデータ競合はOSC
(オペランドストアコンフリクト)、先行ストアリクエ
ストと後続命令フェッチリクエストとのデータ競合はP
SC(プログラムストアコンフリクト)と呼ばれてい
る。
Next, the guarantee of the order of memory access in the event of a data access conflict will be described. Among these data access conflicts, the data conflict between the preceding store request and the subsequent operand fetch request is OSC.
(Operand store conflict), the data conflict between the preceding store request and the subsequent instruction fetch request is P
It is called SC (Program Store Conflict).

【0024】図4において、例えば後続フェッチリクエ
ストがCステージでアドレスアレイ2、TLB3を参
照したとする。この時、先行ストアリクエストとデー
タアクセスの競合が発生していないかを検出するため、
レジスタ6のフェットリクエスト論理アドレスとストア
フェッチキュー9の登録内容との比較を比較回路10で
行う。ここで、先行ストアリクエストと後続フェッチ
リクエストとのデータアクセスの競合が発生していれ
ば、先行ストアリクエストがキャッシュメモリ1にデ
ータ書き込みを終了するまで(図4では、T5サイクル
終了まで)、後続フェッチリクエストを抑止する。こ
れにより、メモリアクセスの順序保証が保たれる。先行
ストアリクエストとのデータアクセスの競合が発生せ
ず、キャッシュメモリ1に当該データが存在すれば、該
フェッチリクエストについて、該Cステージ(T3サ
イクル)でキャッシュメモリ1からデータが読みだされ
ることになる。
In FIG. 4, it is assumed that the subsequent fetch request refers to the address array 2 and TLB 3 at the C stage. At this time, in order to detect whether there is a conflict between the preceding store request and data access,
The comparison circuit 10 compares the fet request logical address of the register 6 with the registered content of the store fetch queue 9. If there is a data access conflict between the preceding store request and the subsequent fetch request, the subsequent fetch is performed until the preceding store request finishes writing the data in the cache memory 1 (until the end of T5 cycle in FIG. 4). Suppress the request. As a result, the order guarantee of memory access is maintained. If the data access conflict with the preceding store request does not occur and the data exists in the cache memory 1, the data is read from the cache memory 1 in the C stage (T3 cycle) for the fetch request. Become.

【0025】次に、マルチプロセッサ構成において、ス
トアリクエストがアドレスアレイ2、TLB3を参照し
てからキャッシュメモリ1に書き込む間に、他の命令処
理装置からの主記憶アクセスにより生ずる自命令処理装
置へのキャッシュメモリブロックのパージ要求が発生す
る場合について説明する。この時、ストアリクエストと
キャッシュメモリ1のパージ領域が等しい場合、このキ
ャッシュメモリのパージ要求をストアリクエストのキャ
ッシュメモリ書き込み前に行うと、ストアフェッチキュ
ー9に登録されているキャッシュメモリへの書き込み領
域はキャッシュメモリ上には存在しなくなってしまう。
このため、ストアリクエストは書き込むべきメモリ領域
がキャッシュメモリ1上に無いにも関わらずデータを書
き込んでしまい、不当なデータ書き込みや書き込みデー
タの消滅を引き起こす。このため、セレクタ13を経由
してレジスタ6に設定されるキャッシュメモリのパージ
要求アドレスとストアフェッチキュー9内のまだキャッ
シュメモリに書き込みを行っていないストアリクエスト
とを比較回路10で比較し、データアクセス競合を検出
した場合、ストアフェッチキュー9の該当登録内容のア
ドレスアレイ参照結果(H)103をキャッシュメモリ
1に存在しない状態(例えばH=0)に変更させる。こ
れにより、キャッシュメモリへの不当な書き込みが防止
できる。
Next, in the multiprocessor configuration, while the store request refers to the address array 2 and the TLB 3 and then writes to the cache memory 1, the instruction to the own instruction processing device generated by the main memory access from another instruction processing device is sent. A case where a cache memory block purge request occurs will be described. At this time, if the store request and the purge area of the cache memory 1 are the same, if this cache memory purge request is made before writing the cache memory of the store request, the write area to the cache memory registered in the store fetch queue 9 becomes It no longer exists in the cache memory.
Therefore, in the store request, data is written even though the memory area to be written does not exist in the cache memory 1, causing improper data writing and disappearance of written data. Therefore, the comparison circuit 10 compares the purge request address of the cache memory, which is set in the register 6 via the selector 13, with the store request in the store fetch queue 9 which is not yet written in the cache memory to access the data. When a conflict is detected, the address array reference result (H) 103 of the corresponding registered contents of the store fetch queue 9 is changed to a state that does not exist in the cache memory 1 (for example, H = 0). As a result, it is possible to prevent improper writing to the cache memory.

【0026】このように、ストアフェッチキュー9は、
ストアリクエストとフェッチリクエストとのアドレスア
レイ2、TLB3のアクセス競合の回避だけでなく、ス
トアリクエストの情報が登録されてからキャッシュメモ
リ1への書き込み処理が終了するまで、後続のフェッチ
リクエストや他の命令処理装置からのキャッシュメモリ
パージを含む全てのキャッシュメモリアクセスとのデー
タ競合を検出することで、データの一致保証も可能にし
ている。
In this way, the store fetch queue 9 is
In addition to avoiding access conflict between the store request and the fetch request in the address array 2 and the TLB 3, subsequent fetch requests and other instructions are executed after the store request information is registered until the write processing to the cache memory 1 is completed. By detecting data conflicts with all cache memory accesses including cache memory purge from the processing device, it is possible to guarantee data matching.

【0027】次に、ストアリクエストのアクセスがキャ
ッシュメモリ1の書き込み単位を跨り、さらに、そのス
トアリクエストの書き込み領域がキャッシュメモリ1の
ブロック単位内で、かつページ内である場合、キャッシ
ュメモリ1に対し2回のアクセス、つまり書き込み単位
ごとの2つのアドレスを供給する必要がある場合につい
て説明する。本実施例では、この書き込み単位ごとのア
ドレスを、ストアフェッチキュー9に登録されているア
ドレス(論理アドレス(LA)101)にセレクタ/加
算回路11でキャッシュメモリ1の書き込み単位分を加
算させることにより、アドレスアレイ2を2度参照する
こと無く、セレクタ12、レジスタ7経由でキャッシュ
メモリ1へ書き込み単位ごとのアドレスを供給すること
ができる。
Next, when the access of the store request crosses the write unit of the cache memory 1 and the write area of the store request is within the block unit of the cache memory 1 and within the page, the cache memory 1 is accessed. The case where it is necessary to supply two accesses, that is, two addresses for each write unit will be described. In this embodiment, the selector / adder circuit 11 adds the address of each write unit to the address (logical address (LA) 101) registered in the store fetch queue 9 by the write unit of the cache memory 1. , The address for each write unit can be supplied to the cache memory 1 via the selector 12 and the register 7 without referring to the address array 2 twice.

【0028】以上、実施例では、仮想アドレス方式をと
るデータ処理装置を想定し、キャッシュメモリは論理ア
ドレスにて参照されるとしたが、本発明はこれに限る必
要はなく、キャッシュメモリは実アドレスで参照されて
もよく、TLBは存在しなくてもよい。つまり、TLB
が存在しない場合でも、ストアリクエストとフェッチリ
クエストとのアドレスアレイのアクセス競合が考えられ
る。本発明では、ストアフェッチキューを持つことによ
り、このアドレスアレイのアクセス競合が回避できる。
As described above, in the embodiment, it is assumed that the cache memory is referred to by the logical address on the assumption that the data processing device adopts the virtual address method. , And the TLB may not be present. That is, TLB
Even when there is no, there is a possible access conflict in the address array between the store request and the fetch request. In the present invention, by having the store fetch queue, access conflict of this address array can be avoided.

【0029】また、実施例では、ストアリクエストとフ
ェットリクエストとのアドレスアレイ、TLBのアクセ
ス競合を想定し、ストアフェッチキューに、ストアリク
エストのアドレス、アドレスアレイ等の参照結果などを
登録するとしたが、アドレスアレイ、TLBのアクセス
競合の発生はストアリクエストとフェッチリクエストと
の間に限らない。したがって、ストアフェッチキューへ
の登録は、一般的にはリクエストの種類、パイプライン
のステージ制御の状態(例えば、待ち合わせ発生等)な
どにもとづいて、所望リクエストについて行われること
になる。
In the embodiment, the address array of the store request and the fet request and the access conflict of the TLB are assumed, and the address of the store request, the reference result of the address array, etc. are registered in the store fetch queue. The occurrence of access conflict between the address array and the TLB is not limited to the store request and the fetch request. Therefore, registration in the store fetch queue is generally performed for a desired request based on the type of request, the state of pipeline stage control (for example, waiting occurrence, etc.).

【0030】[0030]

【発明の効果】以上説明したように、本発明によれば、
ストアリクエストとフェッチリクエストなどのアドレス
アレイ参照による競合を、ストアリクエスト用、フェッ
チリクエスト用の専用アドレスアレイを設けることな
く、物量の小さいキューを数面持つことにより可能とな
る。また、このキューにより、キャッシュメモリに対す
るアクセスが終了するまでそのリクエストの情報がスタ
ックされているため、先行リクエストと後続リクエスト
または他の命令プロセッサからのリクエストとの競合の
検出を行うこともでき、データの一致保証が可能とな
る。
As described above, according to the present invention,
Contention by address array reference such as a store request and a fetch request can be achieved by providing several queues with a small physical quantity without providing a dedicated address array for store requests and fetch requests. This queue also stacks the information of the request until the access to the cache memory is completed, so it is possible to detect the conflict between the preceding request and the subsequent request or the request from another instruction processor. It is possible to guarantee the agreement.

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

【図1】本発明の一実施例を示すキャッシュメモリ制御
装置のブロック図である。
FIG. 1 is a block diagram of a cache memory control device showing an embodiment of the present invention.

【図2】本発明の実施例におけるストアフェッチキュー
の登録内容を示す図である。
FIG. 2 is a diagram showing registered contents of a store fetch queue in the embodiment of the present invention.

【図3】従来のパイプライン処理の動作例を示す図であ
る。
FIG. 3 is a diagram illustrating an operation example of conventional pipeline processing.

【図4】本発明におけるパイプライン処理の動作例を示
す図である。
FIG. 4 is a diagram showing an operation example of pipeline processing in the present invention.

【符号の説明】[Explanation of symbols]

1 キャッシュメモリ 2 アドレスアレイ 3 アドレス変換バッファ 4 ヒット検出回路 5、6、7、8 レジスタ 9 ストアフェッチキュー 100 ステージ制御部 1 cache memory 2 address array 3 address conversion buffer 4 hit detection circuit 5, 6, 7, 8 register 9 store fetch queue 100 stage control unit

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】 主記憶装置の一部データブロックを保持
するキャッシュメモリと、該キャッシュメモリに保持さ
れているデータブロックの主記憶装置のアドレスを登録
しているアドレスアレイを有し、メモリリクエストがあ
るとアドレスアレイを参照して該当アドレスが登録され
ていればキャッシュメモリをアクセスするキャッシュメ
モリ制御装置において、 メモリリクエストのアドレス、当該リクエストのアドレ
スアレイ参照結果、当該リクエストの属性を示す情報を
登録するキューイング手段を設け、メモリリクエストの
キャッシュメモリアクセスステージに合わせて、前記キ
ューイング手段に登録されている情報に基づいてキャッ
シュメモリをアクセスすることを特徴とするキャッシュ
メモリ制御装置。
1. A cache memory for holding a partial data block of a main memory device, and an address array for registering an address of the main memory device of the data block held in the cache memory are provided. If so, the address is referred to, and if the corresponding address is registered, the cache memory controller that accesses the cache memory registers the address of the memory request, the address array reference result of the request, and information indicating the attribute of the request. A cache memory control device comprising queuing means, wherein the cache memory is accessed based on information registered in the queuing means in accordance with a cache memory access stage of a memory request.
JP6127454A 1994-06-09 1994-06-09 Cache memory controller Pending JPH07334421A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6127454A JPH07334421A (en) 1994-06-09 1994-06-09 Cache memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6127454A JPH07334421A (en) 1994-06-09 1994-06-09 Cache memory controller

Publications (1)

Publication Number Publication Date
JPH07334421A true JPH07334421A (en) 1995-12-22

Family

ID=14960332

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6127454A Pending JPH07334421A (en) 1994-06-09 1994-06-09 Cache memory controller

Country Status (1)

Country Link
JP (1) JPH07334421A (en)

Similar Documents

Publication Publication Date Title
JP3144794B2 (en) Multiprocessor system
US5313602A (en) Multiprocessor system and method of control over order of transfer of data between buffer storages
JPH0410102B2 (en)
JP3505728B2 (en) Storage controller
JPH07334421A (en) Cache memory controller
JP2004005710A (en) Information processor
JPH06230963A (en) Memory access controller
JPH0552539B2 (en)
JPH06149669A (en) System and device for transferring cache data
JPH03271859A (en) Information processor
JP2778623B2 (en) Prefetch control device
JPH086853A (en) Storage control method
JPH0679296B2 (en) Multiple virtual address space access method and data processing device
JPH06131239A (en) Main storage access control system
JP2001022581A (en) Data processor and computer readable storage medium
JPH03100842A (en) Information processor
JPH02259945A (en) Storing processing system
JPH1055303A (en) Memory system
JPH07219845A (en) Cache memory control system
JP2000194554A (en) Arithmetic processor
JPS63147248A (en) Information processor containing buffer memory
JPH01129334A (en) Data control system for cache memory
JPS63172354A (en) Memory control system
JPH02254551A (en) Operand read system
JPH0228737A (en) Buffer storage control system