JPS5829187A - Cache memory controller - Google Patents

Cache memory controller

Info

Publication number
JPS5829187A
JPS5829187A JP56126581A JP12658181A JPS5829187A JP S5829187 A JPS5829187 A JP S5829187A JP 56126581 A JP56126581 A JP 56126581A JP 12658181 A JP12658181 A JP 12658181A JP S5829187 A JPS5829187 A JP S5829187A
Authority
JP
Japan
Prior art keywords
address
cache memory
instruction
operand
information
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
Application number
JP56126581A
Other languages
Japanese (ja)
Other versions
JPS6126702B2 (en
Inventor
Hiroyuki Nishimura
西村 弘行
Mikiya Akagi
赤木 三樹也
Hideki Nishimura
英樹 西村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric Co 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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Priority to JP56126581A priority Critical patent/JPS5829187A/en
Priority to US06/294,121 priority patent/US4467414A/en
Priority to FR8116082A priority patent/FR2489021B1/en
Publication of JPS5829187A publication Critical patent/JPS5829187A/en
Publication of JPS6126702B2 publication Critical patent/JPS6126702B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To prevent the competition between an operand readout request and an instruction readout request and also between a storage request and the readout request, by providing a specific cache storage buffer circuit and a coincidence detection circuit. CONSTITUTION:Cache storage buffer circuits 40 and 50 are provided, which receive storage address information and storage data information with a storage request from a CPU11 to a main storage device 12 independently, store the information tentatively and generate a buffer storage request to an instruction cache memory 31, an operand cache memory 30 and the main storage device 12 when the storage address information and the storage data information to be outputted exist. Further, an instruction address coincidence detection circuit 60 is provided, which compares the instruction readout request address information from the CPU11 with all the address information tentatively stored in the said buffer circuit 40 and generates instruction address coincidence detection information when the coincident address is detected.

Description

【発明の詳細な説明】 本発明は中央処理装置(以下、 C!PUと呼ぶ)及び
主記憶装置の間に設けられるキャッジ−メモリ及びこの
キャッシュメモリを制御する制御回路とを含むキャッシ
ュメモリ制御装置に関する。
DETAILED DESCRIPTION OF THE INVENTION The present invention provides a cache memory control device including a cache memory provided between a central processing unit (hereinafter referred to as C!PU) and a main memory, and a control circuit for controlling the cache memory. Regarding.

一般に、この種のキャッシュメモリ制御装置を有する情
報処理装置は主記憶装置に記憶されている情報の一部を
一時的に記憶し、主記憶装置に代9それよりも高速でC
PUとの間で情報の授受を行なうキャッシュメモリを用
いることにより、高速で情報を処理することができる。
In general, an information processing device having this type of cache memory control device temporarily stores part of the information stored in the main memory, and stores the information in the main memory at a higher speed than that.
By using a cache memory that exchanges information with the PU, information can be processed at high speed.

また、処理速度をより向上させるために、この形式の情
報処理装置ではパイプライン制御によって各命令を処理
している。
Furthermore, in order to further improve processing speed, this type of information processing apparatus processes each instruction by pipeline control.

従来、キャッシュメモリを有する情報処理装置として、
オペランド用のキャッシュメモリと命令用のキャッシュ
メモリとを設け、  CPUからの要求がオペランドの
読み出しのときにはオペランド用キャッシュメモリから
読み出しを行ない、他方、  CPUからの要求が命令
のときには。
Conventionally, as an information processing device having a cache memory,
A cache memory for operands and a cache memory for instructions are provided, and when the request from the CPU is to read an operand, reading is performed from the cache memory for operands, and on the other hand, when the request from the CPU is for an instruction.

命令用キャッシュメモリから読み出しを行なう情報処理
装置が提案されている。
An information processing device that reads from an instruction cache memory has been proposed.

オペランド読出し要求と命令読出し要求とが競合するよ
うな場合に、この提案に係る情報処理装置は各要求をオ
ペランド用及び命令用のキャッシュメモリに分散して出
すことができるため、前述した要求の競合を回避するこ
とができる。しかしながら、パイプライン制御を行なう
情報処理装置では、命令読み出し要求とオペランド読み
出し要求とが競合するだけでなく、格納要求と命令又は
オペランド読み出し要求とがキャッシュメモリにおいて
競合することをも考慮しておく必要がある。
When there is a conflict between an operand read request and an instruction read request, the information processing device according to this proposal can issue each request in a distributed manner to cache memories for operands and for instructions. can be avoided. However, in an information processing device that performs pipeline control, it is necessary to take into account not only competition between instruction read requests and operand read requests, but also competition between storage requests and instruction or operand read requests in the cache memory. There is.

このように、格納要求と読み出し要求とが競合する場合
に対する対策として9本発明者等は複数のエントリを有
するキャッシュストアバッファ回路をオペランド用及び
命令用キャッシュメモリにそれぞれ対応して一組ずつ設
けたキャッシュメモリ制御装置を提案した(特願昭55
−118627号)。この形式のキャッシュメモリ制御
装置は2組のキャッシュバッファストア回路を用いてい
るため、命令に対する格納要求及びオペランドに対する
格納要求とを独立に処理できるという利点を備えている
反面、ハードウェアが多くなるという欠点をも有してい
る。
In this way, as a countermeasure against the case where a storage request and a read request conflict with each other, the present inventors provided one set of cache store buffer circuits each having multiple entries, one for each operand cache memory and one for an instruction cache memory. proposed a cache memory control device (patent application 1982)
-118627). This type of cache memory control device uses two sets of cache buffer store circuits, so it has the advantage of being able to independently process storage requests for instructions and storage requests for operands, but it requires a large amount of hardware. It also has drawbacks.

また1通常プログラムは論理アドレスを用いて書かれて
いるため、キャッシュメモリ制御装置では、この論理ア
ドレスを実アドレスに変換するアドレス変換器が必要で
ある。しかし外から、前述した特許出願では、キャッシ
ュストアバッファ回路を有するキャッシュメモリ制御装
置に適したアドレス変換器について伺等考慮されていな
い。
Furthermore, since a normal program is written using logical addresses, the cache memory control device requires an address converter to convert these logical addresses into real addresses. However, from the outside, the above-mentioned patent application does not consider an address translator suitable for a cache memory control device having a cache store buffer circuit.

本発明の目的は格納要求と読み出し要求との競合並びに
オペランド読出し要求と命令読出し要求との競合をも防
止できるキャッシュメモリ制御装置を!提供することで
ある。
An object of the present invention is to provide a cache memory control device that can prevent conflicts between storage requests and read requests as well as conflicts between operand read requests and instruction read requests! It is to provide.

本発明の他の目的はハードウェアが少なく。Another object of the invention is to use less hardware.

したがって、経済的なキャッシュメモリ制御装置を提供
することである。
Therefore, it is an object of the present invention to provide an economical cache memory control device.

本発明のより他の目的は格納要求と読み出し要求との競
合を防止できる形式のキャッンユメモリ制御装置に適し
たアドレス変換器を提供することである。
Another object of the present invention is to provide an address translator suitable for a cache memory control device of a type that can prevent conflicts between storage requests and read requests.

以下1図面を参照して1本発明の詳細な説明する。The present invention will be described in detail below with reference to the drawings.

第1図を参照すると1本発明の一実施例に係るキャッシ
ュメモリ制御装置は中央処理装置(以下、 CPUと略
称)−11と主記憶装置12との間に設けられている。
Referring to FIG. 1, a cache memory control device according to an embodiment of the present invention is provided between a central processing unit (hereinafter abbreviated as CPU)-11 and a main storage device 12.

このキャッシュメモリ制御装置はオペランド用及び命令
用の第1及び第2のキャッシュメモリ60及び31と、
各キャッシュメモリ30及び61を制御するだめの第1
及び第2のキャッシュメモリ制御回路20及び21とを
それぞれ備えている。CPU 11はある命令のオペラ
ンドアドレスの計算がすむと、このオペランドアドレス
をオペランドアドレス出力ライン24を介して出力する
。更に、  0PU11はこのライン24を介して制御
情報もともに出力し、この命令が演算結果をあるメモリ
アドレスに格納するような種類の命令である場合には、
出力されたオペランドアドレスはアドレスバッファ回路
40に格納される。また、アドレスバッファ回路40に
格納されたメモリアドレスに格納すべき演算結果のデー
タが得られると、  CPU11は制御情報と共にそれ
をストアデータ出力ライン26を介して出力し、該デー
タはオペランドとしてデータバッファ回路50に格納さ
れる。前記バッファ回路40.50は、ともに同じ深さ
をもつ先入れ先出制御(F’IF’0)のバッファ回路
で構成されている。前記メモリアドレスとそれに対応す
るデータとは、前記バッファ回路40及び50の対応す
る場所(同じバッファアドレス)に格納される(すなわ
ち回路40に格納されたメモリアドレスに対応するデー
タは回路50の対応するバッファアドレスに格納される
)。バッファ回路40の中に格納されているすべての内
容(前記メモリアドレス)は、それぞれからのアドレス
れぞれの一方の入力端子に供給されている。
This cache memory control device includes first and second cache memories 60 and 31 for operands and instructions,
The first one that controls each cache memory 30 and 61.
and second cache memory control circuits 20 and 21, respectively. After the CPU 11 has calculated the operand address of a certain instruction, it outputs this operand address via the operand address output line 24. Furthermore, 0PU11 also outputs control information via this line 24, and if this instruction is of a type that stores the calculation result in a certain memory address,
The output operand address is stored in the address buffer circuit 40. Further, when the data of the operation result to be stored in the memory address stored in the address buffer circuit 40 is obtained, the CPU 11 outputs it along with the control information via the store data output line 26, and the data is sent to the data buffer as an operand. stored in circuit 50. The buffer circuits 40 and 50 are first-in, first-out (F'IF'0) buffer circuits having the same depth. The memory address and the data corresponding thereto are stored in corresponding locations (same buffer address) of the buffer circuits 40 and 50 (that is, the data corresponding to the memory address stored in the circuit 40 is stored in the corresponding location of the circuit 50). (stored in the buffer address). All the contents (the memory addresses) stored in the buffer circuit 40 are supplied to one input terminal of each address from each.

第1のアドレス−数構出回路60のもう一方の入力には
、  0PU11がオペランドをメモリアドレスから読
み出すだめの読出し要求を出す場合にそのメモリアドレ
スが供給され、かくして。
The other input of the first address-number construction circuit 60 is supplied with a memory address when the 0PU 11 issues a read request to read an operand from a memory address, thus.

前記アドレスバッファ回路40の中に格納されている前
記いずれかのメモリアドレスと前記読出し要求メモリア
ドレスとが一致した場合には。
If any of the memory addresses stored in the address buffer circuit 40 matches the read request memory address.

前記第1のアドレス−数構出回路60は一致検出信号を
第1及び竺2のキャッシュメモリ制御路60から一致検
出信号を受信すると、第1のキャッシュメモリ制御回路
2oは動作状態となり、他方、第2のキャッシュメモリ
制御回路21は不動作状態になる。また、前記第2の一
致検出回路61のもう一方の入力には、  0PU11
が命令をメモリアドレスから読み出す要求を出す場合に
、読み出すべき命令のメモリアドレスが供給され、もし
このメモリアドレスが前記アドレスバッファ回路40に
格納されているいずれかのメモシアドレスと一致する場
合には第2のアえる。この場合、第2のキャッシュメモ
リ制御回路21が動作状態となり、第1のキャッシュメ
モリ制御回路20は不動作となる。
When the first address-number configuration circuit 60 receives a coincidence detection signal from the first and second cache memory control paths 60, the first cache memory control circuit 2o becomes operational; The second cache memory control circuit 21 becomes inactive. Further, the other input of the second coincidence detection circuit 61 has 0PU11.
When a request is made to read an instruction from a memory address, the memory address of the instruction to be read is supplied, and if this memory address matches any memory address stored in the address buffer circuit 40, The second aeru. In this case, the second cache memory control circuit 21 becomes active, and the first cache memory control circuit 20 becomes inactive.

これらの一致検出信号が与えられた場合の前記回路20
及び21の動作については後述することにして、最初は
、これらの一致検出信号がない場合の動作について説明
する。
The circuit 20 when these coincidence detection signals are given
The operations of and 21 will be described later, but first, the operation when there is no coincidence detection signal will be explained.

さて、前記アドレスバッファ回路40☆←赫からのバッ
ファ格納要求情報とその出力とは。
Now, what is the buffer storage request information from the address buffer circuit 40☆←茫 and its output?

÷mアドレスバッファ出カライン80を介し、十iii
≠前記第1及び第2のキャッシュメモリ制御回路20及
び21に供給されている。
÷m via address buffer output line 80, 1iii
≠Supplied to the first and second cache memory control circuits 20 and 21.

ここで、メモリアドレスに演算結果のデータを格納する
ような型の命令が現われた場合には。
Here, if an instruction of a type that stores operation result data at a memory address appears.

その命令のしかるべきステップにおいて、メモリアドレ
スは前記アドレスバッファ回路40に。
At the appropriate step of the instruction, the memory address is transferred to the address buffer circuit 40.

また、演算結果のデータは前記回路50にそれぞれ遅滞
なく格納され、従来の装置で見られるような読出し及び
格納のだめのメモリアクセスの競合によっておこるパイ
プラインの流れの乱れを回避することができる。こうし
て前記バッファ回路40及び50に内容が格納されると
、前記アドレスバッファ回路40はバッファ格納要求情
報を前記出力ライ/80を介しそれぞれの前記第1及び
第2のキャッシュメモリ制御回路20及び21に供給す
る。
Furthermore, the data resulting from the calculations are stored in the circuits 50 without delay, thereby avoiding disturbances in the pipeline flow caused by conflicting memory accesses for reading and storing, as seen in conventional devices. When the contents are stored in the buffer circuits 40 and 50 in this way, the address buffer circuit 40 sends the buffer storage request information to the first and second cache memory control circuits 20 and 21, respectively, via the output line/80. supply

一方、第1のキャッジ−メモリ制御回路20は、前記出
力ライン24を介して、  CPU11からある命令の
オペランド読出し要求を受け、そのと°き、前記一致検
出信号、が無い場合には、この読出し要求を前記回路4
0からのバッファ倫起格納要求に優先して受付ける。こ
の場合、前記バッファ回路40及び50はCPU11か
らの格納要求に応じて格納すべきデータを一時格納する
ことができるので、その結果、第1のキャッシュメモリ
制御回路20はCPU11からの格納要求をバッファ回
路40及び50で保留して、読出し要求を優先して受付
けることが可能である。従って、  CPU11からの
読出し要求と格納要求とが競合したとしても、パイプラ
インの流れの乱れを回避することができる。こうして読
出し要求を受付けると、前記回路20は、前記ライン2
4を介して供給されるメモリアドレスのデータを。
On the other hand, the first cache-memory control circuit 20 receives a request to read an operand of a certain instruction from the CPU 11 via the output line 24, and if the coincidence detection signal is not present at that time, the first cache-memory control circuit 20 performs the read operation. Request the circuit 4
Buffer storage requests from 0 are accepted with priority. In this case, the buffer circuits 40 and 50 can temporarily store data to be stored in response to a storage request from the CPU 11. As a result, the first cache memory control circuit 20 buffers the storage request from the CPU 11. It is possible to hold the read request in the circuits 40 and 50 and receive the read request with priority. Therefore, even if there is a conflict between a read request and a storage request from the CPU 11, disturbances in the pipeline flow can be avoided. When the read request is accepted in this way, the circuit 20 reads the line 2
The data at the memory address supplied via 4.

第1のキャッシュメモリ30から読み出しCPU11に
供給する(このとき指定されたメモリアドレスが前記キ
ャッシュメモリ60に有効に存在しない場合には、前記
回路20は、そのメモリアドレスのデータを含むブロッ
クを主記憶装置12から読み出し前記第1のキャッシュ
メモリ60に格納し、それとともに、指定されたメモリ
アドレスのデータを0PU11に供給するように制御す
る)。
It is read from the first cache memory 30 and supplied to the CPU 11 (if the specified memory address does not exist effectively in the cache memory 60, the circuit 20 stores the block containing the data at that memory address in the main memory). The data is read from the device 12 and stored in the first cache memory 60, and at the same time, the data at the designated memory address is controlled to be supplied to the 0PU 11).

0PU11から前記読出し要求がなく、前記アドレスバ
ッファ回路40からの前記格納要求がある場合には、前
記第1のキャッシュメモリ制御回路20は、この格納要
求を受付け、前記ライン80を介して読み出されるアド
レスデータで指定される。前記第1のキャッシュメモリ
30のメモリアドレスに、このアドレスデータに対応す
る。前記回路50に格納されているデータを1つ読み出
して格納する。このとき、もし前記第1のキャッシュメ
モリ30の中に、このメモリアドレスが有効に存在しな
い場合には、これらのデータは前記バッファ回路40及
び50から読み捨てられるだけでよい。それは下記の理
による。
If there is no read request from the 0PU 11 and there is a storage request from the address buffer circuit 40, the first cache memory control circuit 20 accepts this storage request and stores the address to be read via the line 80. Specified by data. The memory address of the first cache memory 30 corresponds to this address data. One piece of data stored in the circuit 50 is read out and stored. At this time, if this memory address does not exist validly in the first cache memory 30, these data only need to be read from the buffer circuits 40 and 50 and discarded. This is based on the following principle.

すなわち、特に図示していないが、主記憶装置12には
前記アドレスバッファ回路40及び前記データバッファ
50と同じ深さをもちそれぞれと全く同じ内容が書き込
まれるアドレスノくツファ回路および、データバッファ
回路が別に設けられており、前記メモリアドレスに格納
すべきデータは、現在説明しているキャッシュメモリ(
オペランド用キャッシュメモリ30及び命令用キャッシ
ュメモリ31)への格納処理と全く独立して、主記憶装
置12への格納処理が別になされるようになっているか
らである。すなわち、前記回路40及び回路50に一時
格納されているデータは、もともと主記憶装置12の指
定されたメモリアドレスに書き込むだめのデータであり
、上述の主記憶装置12内の1゛レスバツフア路とデー
タバッファ回路とは、主記憶装置12に対する他回路か
らのアクセスの空き時間を利用して、前記データを主記
憶装置12に格納するために、そのデータを一時格納し
ておくバッファである。このように、主記憶装置12へ
の格納に対しては、独立したルートが別に設けられてい
るので、前記第1のキャッシュメモリ30に格納すべき
メモリアドレスが有効に存在しない場合には、とくにこ
れに対して特別な処理を行なう必要はない。
That is, although not particularly shown, the main memory device 12 includes an address buffer circuit and a data buffer circuit that have the same depth as the address buffer circuit 40 and the data buffer 50 and write exactly the same contents as each. The data to be stored in the memory address is stored separately in the cache memory (
This is because the storage process in the main storage device 12 is performed separately, completely independent of the storage process in the operand cache memory 30 and the instruction cache memory 31). That is, the data temporarily stored in the circuit 40 and the circuit 50 is originally data that should not be written to the designated memory address of the main memory 12, and the data is stored in the 1'res buffer path in the main memory 12 described above. The buffer circuit is a buffer that temporarily stores the data in order to store the data in the main memory device 12 by utilizing the idle time when the main memory device 12 is accessed from other circuits. In this way, since an independent route is separately provided for storage in the main storage device 12, especially when there is no valid memory address to be stored in the first cache memory 30, There is no need to perform any special processing for this.

さて、第1のキャッシュメモリ30に対するのと全く同
じ形の処理が第2のキャッシュメモリ31に対しても行
なわれる。すなわち、アドレスバッファ回路40は、自
分がデータをもっている場合には、前記バッファ出力ラ
イン80を介して格納要求を第2のキャッシュメモリ制
御回路21にも与える。前記回路21は、もう一方では
、  0PU11から命令読出し要求ライン28を介し
、命令読出し要求を受けている。この要求が受付けられ
、かつ、前記第2のアドレス−数構出回路61からの一
致検出信号がない場合には、前記回路21は、前記ライ
ン28で指定されるメモリアドレスの内容を第2のキャ
ラツユメモリ31から読み出してCPU11に供給する
(このとき、もし指定されたメモリアドレスのデータが
前記キャッシュメモリ31に有効に存在しない場合には
、主記憶装置12から読み出して供給するが、その方法
は前述の第1のキャッシュメモリ30の場合と同様であ
る)。0PU11から命令読出しの要求がなく、前記回
路40からの格納要求がある場合には、前記回路21は
Now, exactly the same type of processing as that for the first cache memory 30 is performed for the second cache memory 31 as well. That is, if the address buffer circuit 40 has data, it also sends a storage request to the second cache memory control circuit 21 via the buffer output line 80. On the other hand, the circuit 21 receives an instruction read request from the 0PU 11 via an instruction read request line 28. If this request is accepted and there is no coincidence detection signal from the second address-number construction circuit 61, the circuit 21 converts the contents of the memory address designated by the line 28 into the second address-number configuration circuit 61. It is read from the character memory 31 and supplied to the CPU 11 (at this time, if the data at the specified memory address does not exist effectively in the cache memory 31, it is read from the main memory 12 and supplied; however, the method is the same as in the case of the first cache memory 30 described above). When there is no instruction read request from 0PU11 and there is a storage request from the circuit 40, the circuit 21.

前記回路40から格納すべきメモリアドレスを読み出し
、もしそのメモリアドレスが前記第2のキャッシュメモ
リ31に有効に存在する場合には、該メモリアドレスの
データを、データバッファ回路50から読み出したデー
タによって書き換える。しかし、もし前記格納すべきメ
モリアドレスが前記キャッシュメモリ31に有効に存在
しない場合には、前述した通り、前記バッファ回路40
及び50の対応するデータを1つ読み捨てるだけとする
A memory address to be stored is read from the circuit 40, and if the memory address is validly present in the second cache memory 31, the data at the memory address is rewritten with the data read from the data buffer circuit 50. . However, if the memory address to be stored does not exist effectively in the cache memory 31, as described above, the buffer circuit 40
and 50 corresponding data is simply read and discarded.

さて9以上は前記アドレス−数構出回路60及び61か
らの一致検出信号が存在しない場合の動作であるが、何
れかの一致検出信号がある場合には下記のようになる。
Now, the operation above 9 is the operation when there is no coincidence detection signal from the address-number construction circuits 60 and 61, but when there is any coincidence detection signal, the following occurs.

今、前述のようにCPU11からのオペランド読出し要
求があり、そのオペランドのメモリアドレスが、アドレ
スバッファ回路40の中に格納されているあるデータ(
ブトレス)と一致したとすると、第1の一致検出回路6
0は一致検出信号を第1及び第2のキャッシュメモリ制
御回路20及び21に与える。これを受けると前記回路
20は前記回路40からの格納要求を優先して受付け、
前記一致がおこったアドレスまでの前記回路40に格納
されているアドレスと前記回路50の中に格納されてい
る対応するデータとを順次(FIFO制御で)読み出し
、前者で指定されるメモリアドレスに後者のデータを格
納する。
Now, as mentioned above, there is an operand read request from the CPU 11, and the memory address of the operand is a certain data stored in the address buffer circuit 40 (
buttress), the first coincidence detection circuit 6
0 provides a coincidence detection signal to the first and second cache memory control circuits 20 and 21. Upon receiving this, the circuit 20 receives the storage request from the circuit 40 with priority,
The addresses stored in the circuit 40 up to the address where the match occurred and the corresponding data stored in the circuit 50 are read out sequentially (by FIFO control), and the latter is stored in the memory address specified by the former. Store the data of.

この場合に、もし指定されたあるメモリアドレスがキャ
ッシュメモリ30の中に有効に存在しない場合には、前
述のようにそのメモリアドレスに対応するデータは読み
捨てるだけでよい。
In this case, if a specified memory address does not exist validly in the cache memory 30, the data corresponding to that memory address can simply be read and discarded as described above.

こうして一致が起ったメモリアドレスまでの格納要求を
処理してから前記回路20は前記C!T’U Ifから
の読出し要求を受付ける。このように制御することによ
って、先行命令が第1のキャッシュメモリ30のある゛
メモリアドレスを更新する場合に、後続命令が該メモリ
アドレスのデータをオペランドとして使用するような事
態が発生すると、オペランドの先取りや格納すべきデー
タの一時保留等の動作に関係なく後続命令は必ず先行命
令によって更新されたデータをオペランドとして使用す
ることになるので誤動作を”起すことがない。
After processing the storage request up to the memory address where the match occurred, the circuit 20 processes the C! Accepts read requests from T'U If. By controlling in this way, when a preceding instruction updates a certain memory address in the first cache memory 30 and a subsequent instruction uses data at that memory address as an operand, the operand will be updated. Irrespective of operations such as prefetching or temporary suspension of data to be stored, the subsequent instruction always uses the data updated by the preceding instruction as an operand, so no malfunction occurs.

この場合、第2のキャッシュメモリ制御回路21にも第
1のアドレス−数構出回路60からの一致検出信号が送
られるが、第2のキャッシュメモリ制御回路21は第1
のアドレス−数構出回路60からの入力であることを識
別して動作を停止する。
In this case, the coincidence detection signal from the first address-number construction circuit 60 is also sent to the second cache memory control circuit 21, but the second cache memory control circuit 21
It is recognized that the input is from the address-number construction circuit 60, and the operation is stopped.

同様に、  0PU11が命令読出し要求ライン28を
介して命令の読出し要求を行ない、この命令を読み出す
べき指定されたメモリアドレスが。
Similarly, the 0PU 11 makes a request to read an instruction via the instruction read request line 28, and the specified memory address from which this instruction is to be read.

アドレスバッファ回路40に格納されているいずれかの
データと一致した場合には、第2のアドレス−数構−出
回路61は一致検出信号を第2及び第1のキャッシュメ
モリ制御回路21及び20に与える。これを受けると前
記回路21は前記回路41からの格納要求を優先して受
付け。
If the data matches any of the data stored in the address buffer circuit 40, the second address output circuit 61 sends a match detection signal to the second and first cache memory control circuits 21 and 20. give. Upon receiving this, the circuit 21 accepts the storage request from the circuit 41 with priority.

前記一致が起ったアドレスまでの前記回路40に格納さ
れているアドレスと前記回路50の中に1格納されてい
る対応するデータとを順次(PI°FO制御で)読み出
し、第2のキャッシュメモリ31の前者で指定されるメ
モリアドレスに後者のデータを格納する。この場合に、
もし指定されたあるメモリアドレスがキャッシュメモリ
61の中に有効に存在しない場合には、前述のように、
そのメモリアトじスに対応するデータを読み捨てるだけ
にする。こうして、一致が起ったメモリアドレスまでの
前記回路40からの格納要求を処理してから、前記回路
21は前記CPTJ11からの命令読出し要求を受付け
る。このように制御することにより、第2のキャッシュ
メモリ31のあるメモリアドレスを更新する命令のすぐ
あとで、  CPU11が該メモリアドレスのデータ(
命令)を命令として読み出すような場合に。
The addresses stored in the circuit 40 up to the address where the match occurred and the corresponding data stored in the circuit 50 are sequentially read out (under PI°FO control) and are stored in the second cache memory. The latter data is stored in the memory address specified by the former of 31. In this case,
If a specified memory address does not exist validly in the cache memory 61, as described above,
Just read and discard the data corresponding to that memory address. After processing the storage request from the circuit 40 up to the memory address where the match occurred, the circuit 21 accepts the instruction read request from the CPTJ 11. By controlling in this way, immediately after an instruction to update a certain memory address in the second cache memory 31, the CPU 11 updates the data at the memory address (
command) is read as a command.

キャッシュメモリ31に格納すべき命令を一時保留し前
記回路40及び50に格納しておくという処理があるに
もかかわらず、必ず先行命令で更新された命令が命令用
キャッシュメモリ31より読み出されて0PU11に供
給されることになるので誤動作を起すことがない。
Despite the process of temporarily suspending instructions to be stored in the cache memory 31 and storing them in the circuits 40 and 50, the instruction updated by the preceding instruction is always read out from the instruction cache memory 31. Since it is supplied to 0PU11, no malfunction will occur.

また、この場合にも、前記回路20にも前記−数構出信
号が送られるので、前記回路2oは第1のアドレス−数
構出回路60で一致検出信号が検出された時と同様に動
作を停止する。
Also in this case, since the -number output signal is also sent to the circuit 20, the circuit 2o operates in the same manner as when the first address-number output circuit 60 detects the coincidence detection signal. stop.

また、上の実施例では、−数構出回路6oまたは61で
一致が検出された場合に、その一致が検出されたアドレ
スに対応するデータまでを他に優先してFIFOでキャ
ッシュメモリ3oまたは31に書き込むように制御した
が、このかわりに、一致が起ったアドレスのデータだけ
を他に優先してキャッシュメモリに書き込むように制御
することもできる。このような制御により。
Further, in the above embodiment, when a match is detected in the minus number output circuit 6o or 61, data up to the address corresponding to the address where the match was detected is given priority over others and stored in the cache memory 3o or 31 in the FIFO. Instead of this, it is also possible to control so that only the data at the address where a match occurs is written to the cache memory with priority over others. With such control.

処理速度を更に改善することができる。Processing speed can be further improved.

第2図及び第3図を参照すると9本発明の第2の実施例
に係るキャッシュメモリ制御回路はオペランドの読出し
要求及び格納要求に付随するアドレス情報として、論理
アドレスが与えられる情報処理システムに適用される。
Referring to FIGS. 2 and 3, the cache memory control circuit according to the second embodiment of the present invention is applied to an information processing system in which logical addresses are given as address information accompanying read requests and storage requests of operands. be done.

このため。For this reason.

この実施例は、第2図に示すように、  CPUIIか
らの論理アドレスを実アドレスに変換するアドレス変換
回路90を備えている。一般に、命令読出し要求に伴な
うアドレスも論理アドレスの形で与えられるから、第2
のキャッシュメモリ制御回路21にもアドレス変換回路
を接続する必要があるが、説明を簡略化するために、こ
こでは省略している。尚、第2のアドレス−数構出回路
61には、論理アドレスのままで、命令読出し要求に伴
なうアドレスが与えられている。
As shown in FIG. 2, this embodiment includes an address conversion circuit 90 that converts logical addresses from the CPU II into real addresses. Generally, the address associated with an instruction read request is also given in the form of a logical address, so the second
Although it is necessary to connect an address translation circuit to the cache memory control circuit 21, it is omitted here to simplify the explanation. It should be noted that the second address/number configuration circuit 61 is given an address associated with an instruction read request without changing the logical address.

また1図示されたアドレス変換回路90は単に論理アド
レスを実アドレスに変換するだけでなく、後述するよう
に、論理アドレスの一部又は全部をアドレスバッファ回
路40及び第1のアドレス−数構出回路60に送出する
機能を有し、他方、アドレスバッファ回路40は実アド
レスだけでなく論理アドレスをも格納する機能を有して
いる。ここで、第1及び第2のアドレス一致検出回路6
0及び61はアドレスバッファ回路40内に格納されて
いるアドレスと読出し要求に伴なうアドレスとを論理ア
ドレスの形で比較する。このように、この実施例では、
アドレスバッファ回路40内のアドレスを実アドレスに
変換することなく、アドレス比較を行なっているため、
迅速に一致及び不一致を検出できる。
Further, the address conversion circuit 90 shown in FIG. 1 not only converts a logical address into a real address, but also converts a part or all of the logical address to the address buffer circuit 40 and the first address-number calculation circuit, as will be described later. On the other hand, the address buffer circuit 40 has a function of storing not only real addresses but also logical addresses. Here, the first and second address match detection circuits 6
0 and 61 compare the address stored in the address buffer circuit 40 and the address associated with the read request in the form of logical addresses. Thus, in this example,
Since addresses are compared without converting the addresses in the address buffer circuit 40 into real addresses,
Matches and mismatches can be detected quickly.

第3図を参照して、第2図に示されたアドレス変換回路
90を第1のキャッシュメモリ制御回路20.第1のキ
ャッシュメモリ60.  アドレスバッファ回路50.
及び第1のアドレス一致検出回路60に関連して説明す
る。尚、読出要求及びストア要求は図示しないCPU1
1内の回路で識別されるものとする。
Referring to FIG. 3, the address translation circuit 90 shown in FIG. 2 is connected to the first cache memory control circuit 20. First cache memory 60. Address buffer circuit 50.
and the first address match detection circuit 60. Note that read requests and store requests are made by the CPU 1 (not shown).
It shall be identified by the circuit within 1.

0PU11からの読出要求及びストア要求に付随する論
理アドレスはアドレス変換回路90内の論理アドレスレ
ジスタ91(略称LAT’L )にセットされる。LA
Rにセットされた論理アドレスはアドレス変換KEY部
92を索引し論理アドレスから実アドレスへの対応が登
録されているか否かをチェックする。前記アドレス変換
KEY部(TI、B−KEY部)92に登録されていれ
ば対応するアドレス変換データ部(TLB−DATA部
)93に実ページアドレスが登録され″ており切換回路
27ではTLB−DATA部の出力が切換回路28では
LARのページ内アドレスがそれぞれ選択され実アドレ
スが得られ物理アドレスレジスタ26(略称I’AR)
にセットされる。前記TLB−KEY部92に前記論理
アドレスが登録されていない場合、アドレス変換を行な
ってその結果が前記TLB−KEY部92゜TLB−D
ATA部96に登録される。このアドレス変換アルゴリ
ズムは公知であるので、ここでは説明を省く。
The logical address accompanying the read request and store request from 0PU11 is set in the logical address register 91 (abbreviated as LAT'L) in the address conversion circuit 90. L.A.
The logical address set to R is indexed in the address conversion key section 92 to check whether a correspondence from the logical address to the real address is registered. If it is registered in the address translation KEY section (TI, B-KEY section) 92, the real page address is registered in the corresponding address translation data section (TLB-DATA section) 93, and the switching circuit 27 converts the TLB-DATA The switching circuit 28 selects each address in the page of LAR to obtain the real address, and the output is transferred to the physical address register 26 (abbreviated as I'AR).
is set to If the logical address is not registered in the TLB-KEY section 92, address translation is performed and the result is stored in the TLB-KEY section 92゜TLB-D.
It is registered in the ATA section 96. Since this address translation algorithm is well known, its explanation will be omitted here.

0PU11からストア要求があった場合、前記アドレス
変換回路90から実アドレスを得てアドレスバッファ回
路40内の実アドレス部(略称5TB−RA)45に格
納される。同じタイミングで前記L/191にセットさ
れている論理アドレスは前記アドレスバッファ回路40
内の論理アドレス部(略称5TB−LA)42に格納さ
れる。本実施例では前記回路40はFIFOに構成され
ている。
When there is a store request from the 0PU 11, a real address is obtained from the address conversion circuit 90 and stored in the real address section (abbreviated as 5TB-RA) 45 in the address buffer circuit 40. The logical address set in the L/191 at the same timing is stored in the address buffer circuit 40.
The data is stored in the logical address section (abbreviated as 5TB-LA) 42 within. In this embodiment, the circuit 40 is configured as a FIFO.

前記CPU11からストアデータがデータノくツファ回
路50に与えられると前記CPU11に対するストア動
作は完了したとみなすが、  CPU11はノくイブラ
インによる先行制御を行なっている為、ストア用アドレ
スはストアデータとは独立に前記回路40に格納される
When store data is given to the data buffer circuit 50 from the CPU 11, the store operation for the CPU 11 is considered to have been completed, but since the CPU 11 performs advance control using the memory line, the store address is independent of the store data. is stored in the circuit 40.

読出動作の場合、前記アドレス変換回路90から実アド
レスを得ると共に、それと並行して前記キャッシュメモ
リ制御回路20内のキャッシュメモリ用のディレクトリ
であるアドレスアレイ23を索引してオペランド用キャ
ッシュメモリ30に所望のデータを含む1ブロツクが登
録されているか否かを比較回路24により調べその結果
をアドレスアレイヒツトレジスタ25(略称AHR)に
セットする。通常バッファメモリに登録されている場合
、  FO()ND BLOCK (略称FDB )と
いい、登録されていない場合 N0TFOUNDBLO
CK(略称NF’B )という。前記CPU11からオ
ペランド読出要求があると、前記LAR91にその読出
要求論理アドレスがセットされる。
In the case of a read operation, the real address is obtained from the address conversion circuit 90, and in parallel, the address array 23, which is a directory for the cache memory in the cache memory control circuit 20, is indexed and the desired address is stored in the operand cache memory 30. The comparator circuit 24 checks whether one block containing the data has been registered, and the result is set in the address array hit register 25 (abbreviated as AHR). If it is registered in the normal buffer memory, it is called FO()ND BLOCK (abbreviated as FDB), and if it is not registered, it is called N0TFOUNDBLO.
It is called CK (abbreviated as NF'B). When there is an operand read request from the CPU 11, the read request logical address is set in the LAR 91.

一方、前記LAR91の全アドレス情報または一部は、
第1のアドレス一致検出回路60内のn個の比較回路6
2に接続され前記5TB−LA 42に登録されている
ストア論理アドレスの全部域たは一部と比較され、所望
のデータが前記回路50に格納されているか否かを検出
し、その結果をストアバッファヒツトレジスタ63(略
称5HR)にセットし、該5HR63からは一致検出信
号が切換回路46及び前記回路20に送られ、前記LA
R91にセットされた読出要求に伴なうアドレス情報は
一時的に止められ、前記5TB−RA45のアドレス情
報が前記回路20内のストアバッファ出力アドレスレジ
スタ(SAR)29に送られ前記切換回路28を介して
前記AA23を索引し対応するブロックアドレスがAA
23に登録すれていれば前記AHR24から前記回路3
0内のデ−タアレイ32に前記回路50からのストアデ
ータが前記PAR26で示されるアドレスにストアすべ
く指示が出される。かくして前記回路5oに格納されて
いるストアデータが全てまたは、前記回路60で一致信
号が検出された5TB−LA内のストアアドレスに対応
するストアデータが前記DA32にストアされた後、前
記LAR91で一時的に止められた読出要求論理アドレ
スが前記TLB−KEY部92. TLB−DATA部
93.比較回路94、ゲート回路95を通して前記PA
R26にセットされ、所望のデータが前記AA23に登
録されていれば前記DA32から前記PAR26と前記
AHR25で示される所望データがゲート33を介して
読み出され前記切換回路46を介して前記0PU11に
送られる。
On the other hand, all or part of the address information of the LAR91 is
n comparison circuits 6 in the first address match detection circuit 60
2 and registered in the 5TB-LA 42, it is detected whether the desired data is stored in the circuit 50, and the result is stored. A match detection signal is sent from the 5HR 63 to the switching circuit 46 and the circuit 20, and the LA
The address information associated with the read request set in R91 is temporarily stopped, and the address information of the 5TB-RA 45 is sent to the store buffer output address register (SAR) 29 in the circuit 20, and the switching circuit 28 is sent to the store buffer output address register (SAR) 29 in the circuit 20. AA23 is indexed through the block address AA23 and the corresponding block address is AA23.
23, the circuit 3 is transferred from the AHR 24 to the circuit 3.
An instruction is issued to the data array 32 in 0 to store the store data from the circuit 50 at the address indicated by the PAR 26. In this way, after all the store data stored in the circuit 5o or the store data corresponding to the store address in the 5TB-LA for which the matching signal was detected in the circuit 60 is stored in the DA 32, the data is temporarily stored in the LAR 91. The read request logical address that has been stopped is sent to the TLB-KEY section 92. TLB-DATA section 93. The PA through the comparison circuit 94 and the gate circuit 95
R26 is set, and if desired data is registered in the AA23, the desired data indicated by the PAR26 and the AHR25 is read out from the DA32 via the gate 33 and sent to the 0PU11 via the switching circuit 46. It will be done.

本実施例では特にストアバッファとAAを並列索引して
いてAAの索引結果をレジスタAHRにセットしている
為、ストアバッファの索引を論理アドレスで行なう長所
が生まれる。すなわちストアバッファの索引の結果はレ
ジスタSHRにセットされていてストアバッファ及びバ
ッファメモリのデータの有無をレジスタ(ソリツブフロ
ップかち構成される)の出力で直接判断できる為、ハー
ドウェアにとって論理素子の遅延時間に関し、非常に有
利となり、従って制御もやりやすくなる。
In this embodiment, in particular, the store buffer and AA are indexed in parallel, and the index result of AA is set in the register AHR, so there is an advantage that the store buffer is indexed using logical addresses. In other words, the result of the index of the store buffer is set in the register SHR, and the presence or absence of data in the store buffer and buffer memory can be directly determined from the output of the register (consisting of solid flops). This is very advantageous in terms of time and therefore easier to control.

ところで仮想記憶方式では、異なる論理アドレスに対し
、同じ実アドレスを割り付けることがある。この場合、
1つの論理空間において異なる論理アドレスが同時に同
じ実アドレスを指してはいけ力いという条件が必要であ
る。論理空間の切換、及び主記憶装置のメモリエリアの
ページイン、ページアウトに際しては、アドレス変換バ
ッファの同期化が必要であり、且つ。
By the way, in the virtual memory system, the same real address may be assigned to different logical addresses. in this case,
A condition is required that different logical addresses in one logical space must not point to the same real address at the same time. When switching logical spaces and page-in and page-out of the memory area of the main storage device, it is necessary to synchronize the address translation buffer.

書込要求がストアバッファに存在しないことを確認しな
ければならない。もし、@込要求がストアバッファに保
持されている場合は、すべての書込要求をストアバッフ
ァから掃き出して。
You must ensure that write requests are not present in the store buffer. If @write requests are held in the store buffer, flush all write requests from the store buffer.

情報処理装置内で書込処理が終了した後、論理空間の切
換え、及び主記憶装置のページイン。
After the write process is completed in the information processing device, logical space switching and main storage page-in.

ページアウトが可能と々る。これは9本発明にかかわら
ず通常9行なっていることであり9本発明を実施する為
の制限とはならない。
It is possible to page out. This is something that is normally done regardless of the present invention and is not a limitation for implementing the present invention.

以上述べたように9本発明によれば、アドレスバッファ
回路とデータバッファ回路を一組設け、この−組のバッ
ファ回路を別々に設けられたオペランド用キャッシュメ
モリと命令用キャッシュメモリとを組み合せた構成を備
えている。
As described above, according to the present invention, one set of address buffer circuits and data buffer circuits is provided, and this set of buffer circuits is combined with separately provided operand cache memory and instruction cache memory. It is equipped with

したがって9本発明では、比較的少ないハードウェアで
キャッシュのヒツト率およびスループットを高めかつパ
イプライン方式の先行制御を行ナウCPUをもつ情報処
理装置のパイプラインの流れの乱れによる時間損失を改
善しかつ先行制御によるオペランドの先取りゃ命令の先
取り(7)結果中ずる問題を解決したキャッシュメモリ
制御装置を提供することができる。これにより情報処理
装置の処理効率が改善できるという効果がある。
Therefore, the present invention improves the cache hit rate and throughput with a relatively small amount of hardware, performs pipeline-based advance control, and improves the time loss caused by disturbances in the pipeline flow of an information processing device with a NOW CPU. It is possible to provide a cache memory control device that solves the problem of pre-fetching an instruction (7) where the result is missing due to pre-fetching of an operand due to advance control. This has the effect of improving the processing efficiency of the information processing device.

以下余白Margin below

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

第1図は本発明の一実施例に係るキャッシュメモリ制御
装置のブロック図、第2図は本発明の他の実施例に係る
キャッシュメモリ制御装置のブロック図、及び第3図は
第2図の実施例で使用されるアドレス変換器のブロック
図テある。 、第1図において、11・・・中央処理装置(01)U
)。 24・・・オペランドアドレス出力ライン。 26・・・ストアデータ出力ライン、12・・・主記憶
装置、28・・・命令読出し要求ライン、   20・
・・オペランド用キャッシュメモリ制御回路。 21・・・命令用キャッシュメモリ制御回路。 60・・・オペランド用キャッシュメモリ。 31・・・命令用キャッシュメモリ。 40・・・→−→−#杵榊アドレスバッファ回路。 −゛。 50・・・に−奉≠半揃データバッ7ヶ回路。 +  +   □ 60・・・第1のアドレス一致検出回路。 61・・・第2のアドレス一致検出回路。 70・・・アドレス比較ライン。 80・・・アドレスバッファ出力ライン。 90・・・アドレス変換回路。 92・・・TLB KEY部、  93・・・TLBデ
ータ部。 23・・・アドレスアレイ  略称AA32・・・デー
タアレイ   略称DA42・・・ストアバッファの論
理アドレス部略称5TB−LA 45・・・ストアバッファの実アドレス部略称5TB−
RA 91・・・論理アドレスレジスタ 略称LAR26・・
・物理アドレスレジスタ 略称PAR29・・・ストア
バッファ出力アドレスレジスタ略称5AR 25・・・アトレスアレイヒツトレジスタ略称AHR 63・・・ストアバッファヒツトレジスタ略称5IR 94・・・比較回路 24・・・ 1 62・・・ I 27・・・切換回路1 28・・・切換回路2 46・・・切換回路6 95・・・ANDゲー1 33・・・
FIG. 1 is a block diagram of a cache memory control device according to one embodiment of the present invention, FIG. 2 is a block diagram of a cache memory control device according to another embodiment of the present invention, and FIG. 3 is a block diagram of a cache memory control device according to another embodiment of the present invention. There is a block diagram of an address translator used in the embodiment. , in FIG. 1, 11... central processing unit (01) U
). 24... Operand address output line. 26... Store data output line, 12... Main storage device, 28... Instruction read request line, 20.
・・Cache memory control circuit for operand. 21... Instruction cache memory control circuit. 60... Operand cache memory. 31... Instruction cache memory. 40...→-→-# Kinsakaki address buffer circuit. −゛. 50... ≠ 7 half-complete data buffer circuits. + + □ 60...First address match detection circuit. 61...Second address match detection circuit. 70...Address comparison line. 80...Address buffer output line. 90...Address conversion circuit. 92...TLB KEY section, 93...TLB data section. 23... Address array Abbreviation AA32... Data array Abbreviation DA42... Logical address part of store buffer Abbreviation 5TB-LA 45... Real address part of store buffer Abbreviation 5TB-
RA 91...Logical address register Abbreviation LAR26...
・Physical address register Abbreviation PAR29... Store buffer output address register abbreviation 5AR 25... Address array hit register abbreviation AHR 63... Store buffer hit register abbreviation 5IR 94... Comparison circuit 24... 1 62. ...I 27...Switching circuit 1 28...Switching circuit 2 46...Switching circuit 6 95...AND game 1 33...

Claims (1)

【特許請求の範囲】 1、主記憶装置と中央処理装置との間に設けられたキャ
ッシュメモリ制御装置において、前記主記憶装置に記憶
されている命令情報の一部を−゛時的記憶し、前記主記
憶装置の代りに、前記中央処理装置との間で命令情報の
授受を行なう命令用キャッシュメモリと;前記主記憶装
置に記憶されているオペランド情報の一部を一時的に記
憶し、前記主記憶装置の代りに、前記中央処理装置との
間でオペランド情報の授受を行なウオペランド用キャッ
シュメモリと;前記中央処理装置から前記主記憶装置へ
のストア要求に応答して、前記ストア要求に伴なうスト
アアドレス情報とストアデータ情報とをそれぞれ独立に
受は取り一時的に記憶し、出力すべきストアアドレス情
報とストアデー\夕情報とが揃うと6前記命令用キヤツ
シユメモリ、 +’+II +1t: Aペランド用キ
ャッシュメモリ、前記主記憶装置にパッソアストア要求
を発生するキャッシュストアバッファ回路と;前記中央
処理装置及び前記キャッシュストアバッファ回路とに結
合され、前記中央処理装置からの命令読出し要求アドレ
ス情報と前記キャッシュストアバッファ回路に一時的に
記憶されている全てのアドレス情報とを比較し、一致し
たアドレスが検出されると、命令アドレス一致検出情報
を発生する命令アドレス一致検出回路と;前記中央処理
装置に結合されると共に、前記キャッシュストアバッフ
ァ回路に前記命令アドレス一致検出回路と共通に結合さ
れ、前記中央処理装置からのオペランド読出し要求アド
レス情報と珀記キャッシュストアバッファ回路に一時的
に記憶されている全てのアドレス情報とを比較し、一致
アドレスが検出されると、オペランドアドレス一致検出
情報を発生するオペランドアドレス一致検出回路と;前
記中央処理装置、前記主記憶装置、前記命令用キャッシ
ュメモリ、及び前記キャッシュストアバッファ回路とに
結合された命令用キャッシュメモリ制御部;及び前記中
央処理装置、前記主記憶装置、前記オペランド用キャッ
シュメモリ及び前記キャッシュストアバッファ回路とに
結合されたオペランド用キャッシュメモリ制御部と;を
備え、前記命令用キャッシュメモリ制御部は前記中央処
理装置からの命令読出し要求式応答して前記命令用キャ
ッシュメモリにその要求アドレスが存在するか否かをチ
ェックし、要求アドレスがあれば該命令用キャッシュメ
モリから要求アドレスの命令情報を読み出し、要求アド
レスがなければ前記主記憶装置から前記要求アドレスの
命令情報を読み出し前記命令用キャッシュメモリに記憶
するよう制御し、前記斧ヤッシュストアパッファ回路か
らのストア要求に応答して前記命令用キャッシュメモリ
に該ストアアドレスが存在するか否かをチェックし要求
アドレスがあれば前記ストアバッファ回路からのストア
情報を該命令用キャッシュメモリの要求アドレスにスト
アするよう制御し、前記命令アドレス一致検出情報が発
生した場合、前記オペランド用キャッシュメモリ制御回
路を停止さセタ状態で前記キャッシュストアバッファ回
路からのストア要求を優先して処理するように制御し′
 前記オペランド用キャッシュメモlJ制御! 部は前記中央処理装置からのオペランド読出し要求に応
答して前記オペランド用キャッシュメモリにその要求ア
ドレスが存在するか否かをチェックし要求アドレスがあ
れば該オペランド用キャッシュメモリから要求アドレス
のオペランド情報を読み出し要求アドレスがなければ前
記主記憶装置から前記要求アドレスのオペランド情報を
読み出し前記オペランド用キャッシュメモリに記憶する
よう制御し、前記キャッシュストアバッファ回路からの
ストア要求に応答して前記オペランド用キャッシュメモ
リに該ストアアドレスが存在するか否かをチェックし要
求アドレスがあれば前記ストアバッファ回路からのスト
ア情報を該オペランド用キャッシュメモリの要求アドレ
スにストアするよう制御し、前記オペランドアドレス一
致検出情報が発生した場合、前記命令用キャッシュメモ
リ制御回路を停止させた状態では前、記キャッシュスト
アバッファ回路からのストア要求を優先して処理するよ
うに制御することを特徴とするキャッシュメモリ制御装
置。
[Scope of Claims] 1. In a cache memory control device provided between a main storage device and a central processing unit, a part of instruction information stored in the main storage device is temporarily stored; an instruction cache memory that exchanges instruction information with the central processing unit in place of the main memory; temporarily stores part of the operand information stored in the main memory; an operand cache memory for exchanging operand information with the central processing unit in place of the main storage; in response to a store request from the central processing unit to the main storage; The store address information and store data information associated with the instruction are received and temporarily stored respectively, and when the store address information and store data/event information to be output are complete, the instruction cache memory, + '+II +1t: Cache memory for A perando, a cache store buffer circuit that generates a passoa store request to the main storage device; coupled to the central processing unit and the cache store buffer circuit, which reads instructions from the central processing unit. an instruction address match detection circuit that compares the requested address information with all address information temporarily stored in the cache store buffer circuit, and generates instruction address match detection information when a matching address is detected; coupled to the central processing unit, coupled to the cache store buffer circuit in common with the instruction address match detection circuit, and temporarily transmits operand read request address information from the central processing unit to the cache store buffer circuit. an operand address match detection circuit that compares all stored address information and generates operand address match detection information when a matching address is detected; the central processing unit, the main storage device, and the instruction cache; an instruction cache memory controller coupled to a memory and the cache store buffer circuit; and an operand cache coupled to the central processing unit, the main storage device, the operand cache memory, and the cache store buffer circuit. and a memory control unit; the instruction cache memory control unit checks whether or not the requested address exists in the instruction cache memory in response to an instruction read request from the central processing unit, and reads the requested address. If there is, the instruction information of the requested address is read from the instruction cache memory, and if there is no requested address, the instruction information of the requested address is read from the main storage device and stored in the instruction cache memory, In response to a store request from the store buffer circuit, it is checked whether the store address exists in the instruction cache memory, and if the requested address exists, the store information from the store buffer circuit is transferred to the instruction cache memory. When the instruction address match detection information is generated, the operand cache memory control circuit is stopped and the store request from the cache store buffer circuit is controlled to be processed with priority in the set state. death'
Cache memory lJ control for the operand! In response to an operand read request from the central processing unit, the unit checks whether the requested address exists in the operand cache memory, and if the requested address exists, reads operand information of the requested address from the operand cache memory. If there is no read request address, the operand information of the request address is read from the main storage device and stored in the operand cache memory, and in response to the store request from the cache store buffer circuit, the operand information is stored in the operand cache memory. It is checked whether the store address exists or not, and if there is a request address, the store information from the store buffer circuit is controlled to be stored at the request address of the cache memory for the operand, and the operand address match detection information is generated. In this case, in a state where the instruction cache memory control circuit is stopped, a cache memory control device performs control so that a store request from the cache store buffer circuit is processed with priority.
JP56126581A 1980-08-22 1981-08-14 Cache memory controller Granted JPS5829187A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP56126581A JPS5829187A (en) 1981-08-14 1981-08-14 Cache memory controller
US06/294,121 US4467414A (en) 1980-08-22 1981-08-19 Cashe memory arrangement comprising a cashe buffer in combination with a pair of cache memories
FR8116082A FR2489021B1 (en) 1980-08-22 1981-08-21 ARRANGEMENT OF ANTHEMOIRES COMPRISING A BUFFER ANEMEMORY IN COMBINATION WITH A PAIR OF ANTEMEMORY

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56126581A JPS5829187A (en) 1981-08-14 1981-08-14 Cache memory controller

Publications (2)

Publication Number Publication Date
JPS5829187A true JPS5829187A (en) 1983-02-21
JPS6126702B2 JPS6126702B2 (en) 1986-06-21

Family

ID=14938709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56126581A Granted JPS5829187A (en) 1980-08-22 1981-08-14 Cache memory controller

Country Status (1)

Country Link
JP (1) JPS5829187A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60123936A (en) * 1983-12-07 1985-07-02 Fujitsu Ltd System for controlling buffer storage
JPS60151749A (en) * 1984-01-18 1985-08-09 Nec Corp Information processor
JPS6116350A (en) * 1984-07-02 1986-01-24 Nec Corp Buffer storage device of information processor
JPS6149250A (en) * 1984-08-17 1986-03-11 Fujitsu Ltd Buffer memory control system
JPS61245963A (en) * 1985-04-23 1986-11-01 Toshiba Mach Co Ltd Molten metal supplying device
EP0325677A2 (en) * 1988-01-25 1989-08-02 Otto Müller Circuit and method for controlling an instruction buffer in a data-processing system
JPH0224538Y2 (en) * 1987-10-20 1990-07-05
US6374334B1 (en) 1994-07-04 2002-04-16 Fujitsu Limited Data processing apparatus with a cache controlling device
JP2006318471A (en) * 2005-05-09 2006-11-24 Sony Computer Entertainment Europe Ltd Memory caching in data processing

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63130502U (en) * 1987-02-18 1988-08-26
JP2530511B2 (en) * 1990-06-08 1996-09-04 統冶 石谷 Method of forming an accessory in a structure

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60123936A (en) * 1983-12-07 1985-07-02 Fujitsu Ltd System for controlling buffer storage
JPH0526212B2 (en) * 1983-12-07 1993-04-15 Fujitsu Ltd
JPS60151749A (en) * 1984-01-18 1985-08-09 Nec Corp Information processor
JPS6116350A (en) * 1984-07-02 1986-01-24 Nec Corp Buffer storage device of information processor
JPS6149250A (en) * 1984-08-17 1986-03-11 Fujitsu Ltd Buffer memory control system
JPH0351012B2 (en) * 1984-08-17 1991-08-05 Fujitsu Ltd
JPS61245963A (en) * 1985-04-23 1986-11-01 Toshiba Mach Co Ltd Molten metal supplying device
JPH0224538Y2 (en) * 1987-10-20 1990-07-05
EP0325677A2 (en) * 1988-01-25 1989-08-02 Otto Müller Circuit and method for controlling an instruction buffer in a data-processing system
US6374334B1 (en) 1994-07-04 2002-04-16 Fujitsu Limited Data processing apparatus with a cache controlling device
JP2006318471A (en) * 2005-05-09 2006-11-24 Sony Computer Entertainment Europe Ltd Memory caching in data processing
JP4666511B2 (en) * 2005-05-09 2011-04-06 ソニー コンピュータ エンタテインメント ヨーロッパ リミテッド Memory caching in data processing

Also Published As

Publication number Publication date
JPS6126702B2 (en) 1986-06-21

Similar Documents

Publication Publication Date Title
CA1124888A (en) Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability
JP2646854B2 (en) Microprocessor
JPS6135584B2 (en)
EP0019358B1 (en) Hierarchical data storage system
JPS59165144A (en) Order extractor
JPS6324428A (en) Cache memory
JPS5829187A (en) Cache memory controller
US5339397A (en) Hardware primary directory lock
US6044447A (en) Method and apparatus for communicating translation command information in a multithreaded environment
EP0533427A1 (en) Computer memory control system
US4658356A (en) Control system for updating a change bit
US5996062A (en) Method and apparatus for controlling an instruction pipeline in a data processing system
JPH0756808A (en) Data cache buffer and storage method
JPH01213732A (en) Extended storage system
JP2685455B2 (en) Data processing device
JPS6022376B2 (en) Cache memory control device
JP2976980B2 (en) Cache control method
JPH0667979A (en) Control system for main storage device
JP3284508B2 (en) Data prefetch control device
JPH01251248A (en) Cache control system for stack data structure
JPH0148571B2 (en)
JPS5829186A (en) Information processor
JPS5818710B2 (en) memory system
JPS5842546B2 (en) Store control method
JPS5927994B2 (en) computer system