JPS6022376B2 - Cache memory control device - Google Patents

Cache memory control device

Info

Publication number
JPS6022376B2
JPS6022376B2 JP55118627A JP11862780A JPS6022376B2 JP S6022376 B2 JPS6022376 B2 JP S6022376B2 JP 55118627 A JP55118627 A JP 55118627A JP 11862780 A JP11862780 A JP 11862780A JP S6022376 B2 JPS6022376 B2 JP S6022376B2
Authority
JP
Japan
Prior art keywords
address
instruction
information
cache memory
operand
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.)
Expired
Application number
JP55118627A
Other languages
Japanese (ja)
Other versions
JPS5744279A (en
Inventor
弘行 西村
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
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP55118627A priority Critical patent/JPS6022376B2/en
Priority to US06/294,121 priority patent/US4467414A/en
Priority to FR8116082A priority patent/FR2489021B1/en
Publication of JPS5744279A publication Critical patent/JPS5744279A/en
Publication of JPS6022376B2 publication Critical patent/JPS6022376B2/en
Expired 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
    • 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/0855Overlapped cache accessing, e.g. pipeline
    • 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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency

Description

【発明の詳細な説明】 本発明はキャッシュメモリ制御装置に関する。[Detailed description of the invention] The present invention relates to a cache memory control device.

一般に情報処理装置においては、その処理速度を向上す
るために、中央処理装置(以下CPU)と主記憶装置と
の間に、主記憶装置に記憶されている情報の一部を一時
的に記憶し、主記憶装置に代りそれよりも高速でCPU
との間で情報の授受を行なうキャッシュメモリを装備し
ている。キャッシュメモリは複数のセレタターと称する
部分に区分され、各セクターはさらに各々が複数の語か
らなるブロックに分けられている。CPUが、メモリア
ドレスを指定して必要な情報をキャッシュメモIJ‘こ
要求すると、キャッシュメモリ制御回路は、その指定さ
れたアドレスのデータが現在キャッシュメモリ中に有効
に存在しているか否かをチェックし、もし有効に存在し
ている場合(ヒットする場合)にはこのデータをCPU
に供給し、もし有効に存在していない場合(キャッシュ
ミスヒットの場合)には、この指定されたアドレスのデ
ータを含むブロックを主記憶装置よりキャッシュメモリ
に転送して格納するとともに(この場合のキャッシュ格
納アドレスは上位の桁を無視し、キャッシュ内のアドレ
スを指定するのに必要な下位の桁だけで定まるアドレス
である。したがって、下位の桁の内容が同じ、それまで
キャッシュのこのアドレスに格納されていた古いデ−夕
は、この新らしいデータのために書き換えられ、キャッ
シュから造出されたことになる)、指定されたアドレス
のデータをCPUに供給する。こうして、以後同じデー
タ(またはこのデータと同じブロックに属するデータ)
がCPUから要求された場合には、高速でそれに応ぜら
れるように準備しておく。以上から明らかなように、限
られた容量のキャツシュメモリをなるべく有効に利用す
るためには、キャッシュのヒットする確率をできるだけ
高くすることが必要である。
Generally, in an information processing device, in order to improve its processing speed, some of the information stored in the main memory is temporarily stored between the central processing unit (hereinafter referred to as CPU) and the main memory. , which replaces main memory and is faster than the CPU
It is equipped with a cache memory that exchanges information between the computer and the computer. The cache memory is divided into a plurality of sections called selectors, and each sector is further divided into blocks each consisting of a plurality of words. When the CPU specifies a memory address and requests necessary information from the cache memory IJ', the cache memory control circuit checks whether the data at the specified address currently exists validly in the cache memory. If it exists validly (hit), this data is sent to the CPU.
If it does not exist validly (in case of a cache miss), the block containing the data at the specified address is transferred from the main memory to the cache memory and stored (in this case). A cache storage address is an address that ignores the upper digits and is determined only by the lower digits necessary to specify the address in the cache.Therefore, if the contents of the lower digits are the same, until then it is stored at this address in the cache. The old data that had been stored is rewritten for this new data and created from the cache), and the data at the specified address is supplied to the CPU. In this way, from now on the same data (or data belonging to the same block as this data)
When a request is made by the CPU, preparations are made to respond to the request at high speed. As is clear from the above, in order to use the limited cache memory capacity as effectively as possible, it is necessary to make the cache hit probability as high as possible.

また、前記キャッシュメモリ制御回路において、キャッ
シュヒットノミスヒットを判定したあとではじめてキャ
ッシュメモリがアクセスされるためヒット/ミスヒット
判定回路での時間短縮も必要となる(スループツトの改
善)。このような目的のために、キャッシュメモリを命
令専用と、オペランド専用とに区別し、CPUからの要
求が命令の議出しである場合には命令用キャッシュメモ
リ制御回路に要求を出し、オペランドの議出しである場
合にはオペランド用キャッシュメモリ制御回路に要求を
出すという方式が従来より知られている。また一方、情
報処理装置の処理速度を向上するため、先行制御を行う
パイプライン処理方式が知られている。
Furthermore, in the cache memory control circuit, since the cache memory is accessed only after determining a cache hit/no-miss hit, it is also necessary to shorten the time in the hit/miss hit determination circuit (improving throughput). For this purpose, the cache memory is divided into instruction-only cache memory and operand-only cache memory, and when a request from the CPU is for issuing an instruction, a request is sent to the instruction cache memory control circuit, and the cache memory is for issuing an instruction. A conventionally known method is to issue a request to the operand cache memory control circuit when the request is issued. On the other hand, in order to improve the processing speed of an information processing device, a pipeline processing method that performs advance control is known.

これは以下のような方式である。各命令を、例えば、A
,P,C,8およびWの5つのステップに分割する。ス
テップAでは命令のデコードと、命令で使用されている
オペランドのアドレスの計算(間接指定やインデックス
指定されているオペランドのアドレスを計算する)を行
う。ステップPでは論理アドレスを実アドレスに変換す
る(プログラムは一般に論理アドレスを用いて書かれて
いる)。ステップCではオペランドの議出しを行う。も
しこの命令が、メモリアドレスから謙出すべきオペラン
ドを含む場合には、ステップPで得られた実アドレスを
用いてキャッシュメモIJ‘こ要求を出し、前述のよう
にして供聯合されるデータ(オペランド)を演算回路の
オペランドレジスタに格納する。ステップEでは、前記
オペランドを用いてこの命令で指定された演算を行なう
。そして、ステップWでは、こうして得られた結果をこ
の命令で指定された場所(例えば汎用レジスタまたはメ
モリアドレス等)に格納する。この場合に、もし、指定
された格納場所が、あるメモリアドレスである場合には
、キャッシュメモリ制御回路に格納要求を出し、もしこ
の格納を指定されたメモリアドレスのデータがキャッシ
ュに有効に存在する場合にはそのデータを書き換え更新
する。それとともに主記憶装置に格納要求を出しこのメ
モリアドレスの内容を更新する。一方、上記A,P,C
,EおよびWの各ステップに対応して、この各ステップ
を処理するためのハードウェアを別々に設ける。
This method is as follows. Each instruction, for example, A
, P, C, 8 and W. In step A, the instruction is decoded and the address of the operand used in the instruction is calculated (the address of the operand that is indirectly specified or indexed is calculated). Step P converts the logical address into a real address (programs are generally written using logical addresses). In step C, an operand is proposed. If this instruction includes an operand to be retrieved from the memory address, issue a cache memory IJ' request using the real address obtained in step P, and retrieve the data (operand) to be combined as described above. ) is stored in the operand register of the arithmetic circuit. In step E, the operation specified by this instruction is performed using the operand. Then, in step W, the result thus obtained is stored in the location specified by this instruction (for example, a general-purpose register or memory address). In this case, if the specified storage location is a certain memory address, a storage request is issued to the cache memory control circuit, and if the data at the specified memory address is validly present in the cache. If so, the data is rewritten and updated. At the same time, it issues a storage request to the main memory and updates the contents of this memory address. On the other hand, the above A, P, C
, E, and W, separate hardware is provided for processing each step.

各命令を処理するのに、1つの命令の上記5つのステッ
プが全部完了してから次の命令の処理に進むという方法
ではなくて、第1図に示すように、1つづつステップの
ズレた連続した命令を並列に処理することにより、前記
各ハードウェアの遊休時間をなくし、処理速度の向上を
はかる。さて、上述の説明において、例えば、第1図の
命令13が演算結果をあるメモリアドレスに格納する型
の命令であるとし、また命令15があるメモリアドレス
からオペランドを読み出す型の命令であると仮定すると
、命令13のステップWと命令15のステップCとが時
間的に重なることになるが、前者はキャッシュアクセス
を行なってキャッシュにデータを格納するプロセスであ
り、後者はキャッシュアクセスを行なってキャッシュよ
りデータを読み出すプロセスであるため、両者は競合し
、同じ期間に両者を同時に実行することはできない。
Instead of processing each instruction by completing all five steps of one instruction before proceeding to the processing of the next instruction, as shown in Figure 1, the steps are shifted one by one. By processing consecutive instructions in parallel, the idle time of each piece of hardware is eliminated and processing speed is improved. Now, in the above explanation, it is assumed that instruction 13 in FIG. 1 is an instruction that stores an operation result at a certain memory address, and instruction 15 is an instruction that reads an operand from a certain memory address. Then, step W of instruction 13 and step C of instruction 15 overlap in time, but the former is a process of accessing the cache and storing data in the cache, and the latter is a process of accessing the cache and storing data from the cache. Since it is a process of reading data, the two conflict and cannot be executed simultaneously in the same period.

そこで、従来はこのような事態が起ると、一般に、キャ
ッシュへの格納を優先して行ない(すなわち、前記命令
13のステップWを優先して行ない)、それがすんでか
らキャッシュよりの読み出しを行なう。従ってこのよう
な型の命令の組合せがおこることにパイプラインの流れ
は第2図に示すように乱され、それだけ処理効率を低下
する結果となる。一方、また、場合によっては、メモリ
アドレスに書込みを行なわない命令(例えば、結果を汎
用レジスタに書き込む命令)のステップWとメモリアド
レスから講出しを行なわない命令(例えば汎用レジスタ
の内容だけをオペランドとして使用する命令)のステッ
プCとが同じ期間に重なる可能性もある。この期間には
前記のメモリアクセスは全く行なわれないことになり、
これは対応するハードウェアの遊休期間となる。例えば
、第2図において、メモリアクセスを行なわない命令の
ステップCおよびステップWを、カツコをつけて示して
あるが、命令1,ステップWと命令らのステップCとは
ともにメモリアクセスを行なわないため、この期間が対
応するハードウェアの遊休期間となる。この遊休期間を
巧に利用して上に述べたパイプラインの流れの乱れを軽
減する一方法として下記が考えられる。すなわち、適当
な深さをもつ先入れ先出し制御(FIFO)のキャッシ
ュストア用アドレスバッファ回路とキャッシュストア用
データバッファ回路とを設けて、前述の、演算結果をメ
モリアドレスに格納する型の命令が現れた場合には、そ
のメモリアドレスとそれに対応する格納データとを、そ
れぞれ前記キャッシュストア用アドレスバッファ回路と
前記キャッシュストア用データバッファ回路とに一時格
納しておき、前述のようにキャッシュアクセスまたは主
記憶装置アクセスを行なうハードウェアの遊休時間が生
じた期間を利用して、前記バッファ回路から、指定のメ
モリアドレスに格納するようにすると、前述のパイプラ
インの流れの乱れを軽減することができる。しかしなが
ら、パイプライン方式では、前述のように、先行命令が
完了しないうちに後続命令のオペランドの先取りを行な
うために、下記のような問題が生ずる。
Therefore, conventionally, when such a situation occurs, storage in the cache is generally performed with priority (that is, step W of instruction 13 is performed with priority), and after that is completed, reading from the cache is performed. . Therefore, when such a combination of instructions occurs, the flow of the pipeline is disturbed as shown in FIG. 2, resulting in a corresponding decrease in processing efficiency. On the other hand, in some cases, step W of an instruction that does not write to a memory address (for example, an instruction that writes a result to a general-purpose register) and an instruction that does not read from a memory address (for example, only the contents of a general-purpose register are used as an operand). There is also a possibility that step C of the command used) overlaps in the same period. During this period, the above memory access will not be performed at all,
This is the idle period of the corresponding hardware. For example, in FIG. 2, instructions step C and step W that do not perform memory access are shown in brackets, but instruction 1, step W, and step C of the instructions do not perform memory access. , this period becomes the idle period of the corresponding hardware. The following can be considered as a method for effectively utilizing this idle period to reduce the above-mentioned turbulence in the pipeline flow. In other words, if a first-in-first-out (FIFO) cache store address buffer circuit and a cache store data buffer circuit with appropriate depth are provided, and an instruction of the type described above that stores an operation result in a memory address appears. , the memory address and the corresponding stored data are temporarily stored in the cache store address buffer circuit and the cache store data buffer circuit, respectively, and the memory address and the corresponding stored data are temporarily stored in the cache store address buffer circuit and the cache store data buffer circuit, respectively. By using the idle time of the hardware that performs this to store data from the buffer circuit to a designated memory address, the above-mentioned disturbance in the pipeline flow can be reduced. However, in the pipeline system, as described above, the following problems occur because the operands of the subsequent instruction are prefetched before the preceding instruction is completed.

例えば、今、先行命令が演算結果をある×番地のメモリ
アドレスに格納する命令であると仮定し、それに続く後
続命令が同じX番地の内容をその1つのオペランドとし
て使用する命令であったと仮定する。この場合には、先
行命令による×番地への演算結果の格納が完了してから
後続命令のX番地からのオペランド読出しが行なわれる
必要がある。従って、上に述べた、バッファ回路を用い
て一時データを格納し遊休期間を利用してこれを指定さ
れたメモリアドレスに格納するという方式は、この事実
を無視して無条件に用いることはできない。特に、最初
に述べたように、キャッシュのヒット率を高めるために
、キャッシュメモリを命令専用とオペランド専用とに区
別して使用する場合には、従来の装置では解決できない
複雑な問題が発生する。本発明の目的はこのような問題
を除去し前記バッファ回路挿入による効果を発揮するキ
ャッシュメモリ制御装置を提供するにある。本発明の制
御装置は主記憶装置と中央処理装置とキャッシュメモリ
とを含む情報処理装置用キャッシュメモリ制御装置であ
って、前記主記憶装置に記憶されている命令情報の一部
を一時的に記憶し前記主記憶装置の代りに前記中央処理
装置との間で命令情報の授受を行なう命令用キャッシュ
メモリと、前記主記憶装置に記憶されているオペランド
情報の一部を一時的に記憶し前記主記憶装置の代りに前
記中央処理装置との間でオペランド情報の授受を行なう
オペランド用キャッシュメモリと、前記中央処理装置か
ら前記主記憶装置へのストア要求に応答してストアアド
レス情報とストアデータ情報とをそれぞれ受けとり一時
的に記憶しストア要求を発生するキャッシュストアバッ
ファ回路と、前記中央処理装置からの命令読出し要求ア
ドレス情報と前記キャッシュストアバッファ回路に一時
的に記憶されている全てのアドレス情報とを比較し一致
アドレス情報が検出されると命令アドレス一致検出情報
を発生する命令アドレス一致検出回路と、前記中央処理
装置からのオペランド論出し要求アドレス情報と前記キ
ャッシュストアバッファ回路に一時的に記憶されている
全てのアドレス情報とを比較し一致アドレス情報が検出
されるとオペランドアドレス一致検出情報を発生するオ
ペランドアドレス一致検出回路と、前記中央処理装置か
らの命令議出し要求に応答して前記命令用キャッシュメ
モリにその要求アドレスが存在するか否かをチェックし
要求アドレスがあれば該命令用キャッシュメモリから要
求アドレスの命令情報を読み出し要求アドレスがなけれ
ば前記主記憶装置から前記要求アドレスの命令情報を読
み出し前記命令用キャッシュメモリに託臆するよう制御
し、前記キャッシュストアバッファ回路からのストア要
求に応答して前記命令用キャッシュメモIJ‘こ該スト
アアドレスが存在するか否かチヱックし要求アドレスが
あれば前記ストアバッファ回路からのストア情報を該命
令用キャッシュメモリの要求アドレスにストアするよう
制御し、前記命令アドレス一致検出情報が発生した場合
には前記キャッシュストアバッファ回路からのストア要
求を優先して処理するように制御する命令用キャッシュ
メモリ制御回路と、前記中央処理装置からのオペランド
講出し要求に応答して前記オペランド用キャッシュメモ
リにその要求アドレスが存在するか否かをチェックし要
求アドレスがあれば該オペランド用キャッシュメモリか
ら要求アドレスのオペランド情報を読み出し要求アドレ
スがなければ前記主記憶装置から前記要求アドレスのオ
ペランド情報を読み出し前記オペランド用キャッシュメ
モリに記憶するよう制御し、前記キャッシュストアバッ
ファ回路からのストア要求に応答して前記オペランド用
キャッシュメモリに該ストアアドレスが存在するか否か
をチェックし要求アドレスがあれば前記ストアバッファ
回路からのストア情報を該オペランド用キャッシュメモ
リの要求アドレスにストアするよう制御し、前記オペラ
ンドアドレスー敦検出情報が発生した場合には前記キャ
ッシュストアバッファ回路からのストア要求を優先して
処理するように制御するオペランド用キャッシュメモリ
制御回路とを含んでいる。
For example, suppose now that the preceding instruction is an instruction that stores the result of an operation at a memory address at a certain address X, and that the subsequent instruction that follows it is an instruction that uses the contents of the same address X as one of its operands. . In this case, it is necessary to read the operand from address X of the subsequent instruction after the storage of the operation result at address X by the preceding instruction is completed. Therefore, the above-mentioned method of storing temporary data using a buffer circuit and using the idle period to store it in a designated memory address cannot be used unconditionally by ignoring this fact. . In particular, as mentioned at the beginning, when the cache memory is used separately for instructions and operands in order to increase the cache hit rate, complex problems occur that cannot be solved by conventional devices. SUMMARY OF THE INVENTION An object of the present invention is to provide a cache memory control device that eliminates such problems and exhibits the effects of inserting the buffer circuit. The control device of the present invention is a cache memory control device for an information processing device including a main storage device, a central processing unit, and a cache memory, and temporarily stores part of instruction information stored in the main storage device. However, instead of the main memory, there is an instruction cache memory that exchanges instruction information with the central processing unit, and a cache memory that temporarily stores part of the operand information stored in the main memory. an operand cache memory that exchanges operand information with the central processing unit in place of a storage device; and store address information and store data information in response to a store request from the central processing unit to the main storage device. a cache store buffer circuit that receives and temporarily stores the respective information, and generates a store request; and a cache store buffer circuit that receives and temporarily stores the instruction read request address information from the central processing unit and all address information temporarily stored in the cache store buffer circuit. an instruction address match detection circuit that generates instruction address match detection information when matching address information is detected; and an instruction address match detection circuit that generates instruction address match detection information when matching address information is detected; an operand address match detection circuit that compares all address information stored in the cache and generates operand address match detection information when matching address information is detected; and an operand address match detection circuit that generates operand address match detection information when matching address information is detected; Check whether the requested address exists in the memory, and if the requested address exists, read the instruction information of the requested address from the instruction cache memory; if the requested address does not exist, read the instruction information of the requested address from the main storage device. The instruction cache memory IJ' is controlled to be stored in the instruction cache memory, and in response to a store request from the cache store buffer circuit, the instruction cache memory IJ' checks whether or not the store address exists. Control is performed to store the store information from the store buffer circuit at the requested address of the instruction cache memory, and when the instruction address match detection information occurs, the store request from the cache store buffer circuit is processed with priority. an instruction cache memory control circuit that controls the operation of the operand cache memory; and in response to an operand offer request from the central processing unit, checks whether or not the requested address exists in the operand cache memory; The operand information of the requested address is read from the operand cache memory, and if there is no requested address, the operand information of the requested address is read from the main storage device and controlled to be stored in the operand cache memory, and the operand information from the cache store buffer circuit is controlled to be read. In response to a store request, it is checked whether or not the store address exists in the operand cache memory, and if the requested address exists, the store information from the store buffer circuit is stored at the requested address in the operand cache memory. and an operand cache memory control circuit that performs control so that a store request from the cache store buffer circuit is processed with priority when the operand address-atsushi detection information is generated.

次に本発明を図面を参照して詳細に説明する。Next, the present invention will be explained in detail with reference to the drawings.

第3図は本発明の一実施例を示すブロック図である。参
照数字1は中央処理装置(以後CPU)を示す。
FIG. 3 is a block diagram showing one embodiment of the present invention. Reference number 1 indicates a central processing unit (hereinafter referred to as CPU).

ある命令のオペランドアドレスの計算がすむとCPUI
はこのオペランドアドレスをオペランドアドレス出力ラ
イン2を介して出力する。CPUIは前記ライン2を介
して制御情報もともに出力し、この命令が演算結果をあ
るメモリアドレスに格納するような種類の命令である場
合には、前記出力されたオペランドアドレスはオペラン
ド用アドレスバッファ回路40および命令用アドレスバ
ッファ回路41に全く並行して格納される。また前記バ
ッファ回路40および41に格納されたメモリアドレス
に格納すべき演算結果のデータが得られると、CPU1
は制御情報と共にそれをストアデータ出力ライン3を介
して出力し、該データはオペランド用データバッファ回
路50および命令用データバッファ回路51に全く並行
して格納される。前記バッファ回路40,41,50お
よび51は、すべて同じ深さをもつ先入れ先出制御(F
『0)のバッファ回路で、前記回路40と41および前
記回路50と51とは、ともに全く同じ構成をもつてい
る。前記メモリアドレスとそれに対応するデータとは、
前記バッファ回路40,41および50,51の対応す
る場所(同じバッファアドレス)に格納される(すなわ
ち回路40に格納されたメモリアドレスに対応するデー
タは回路50の対応するバッファアドレスに格納され、
回路41に格納された(同じ)メモリアドレスに対応す
るデータは回路51の対応するバッファアドレスに格納
される。回路40と41および回路50と51とは全く
同じデータが全く同じ時点で書きこまれるが、あとの説
明で明らかになるように、論出しをそれぞれ独立に行な
うために別のバッファ回路に分けたものである)。さら
に、前記回路40および回路41の中に格納されている
すべての内容(前記メモリアドレス)は、それぞれから
のアドレス比較ライン70および71を介し、それぞれ
オペランド用アドレス一致検出回路60および命令用ア
ドレス一致検出回路61のそれぞれの一方の入力端子に
供給されている。前記オペランド用一致検出回路60の
もう一方の入力には、CPUIがオペランドをメモリア
ドレスから読み出すための読出し要求を出す場合にその
メモリアドレスが供給され、かくして、前記オペランド
用アドレスバッファ回路40の中に格納されている前記
いずれかのメモリアドレスと前記読出し要求メモリアド
レスとが一致した場合には、前記検出回路6川ま一致検
出信号をオペランド用キャッシュメモリ制御回路20に
与える。
After calculating the operand address of a certain instruction, the CPU
outputs this operand address via operand address output line 2. The CPU also outputs control information via the line 2, and if this instruction is a type of instruction that stores the operation result in a certain memory address, the output operand address is stored in the operand address buffer circuit. 40 and instruction address buffer circuit 41 in parallel. Further, when the data of the calculation result to be stored in the memory addresses stored in the buffer circuits 40 and 41 is obtained, the CPU 1
outputs it along with control information via the store data output line 3, and the data is stored in the operand data buffer circuit 50 and the instruction data buffer circuit 51 in parallel. The buffer circuits 40, 41, 50 and 51 are first-in-first-out control (F1) all having the same depth.
In the buffer circuit "0", the circuits 40 and 41 and the circuits 50 and 51 have exactly the same configuration. The memory address and its corresponding data are:
Data stored in corresponding locations (same buffer address) of the buffer circuits 40, 41 and 50, 51 (i.e., data corresponding to a memory address stored in the circuit 40 is stored in a corresponding buffer address of the circuit 50,
Data corresponding to the (same) memory address stored in the circuit 41 is stored in the corresponding buffer address of the circuit 51. Exactly the same data is written to circuits 40 and 41 and circuits 50 and 51 at exactly the same time, but as will become clear later in the explanation, they are divided into separate buffer circuits in order to perform argumentation independently. ). Furthermore, all contents (the memory addresses) stored in said circuit 40 and circuit 41 are transmitted via address comparison lines 70 and 71 from respectively to address match detection circuit 60 for operands and address match for instructions. The signal is supplied to one input terminal of each of the detection circuits 61 . The other input of the operand match detection circuit 60 is supplied with a memory address when the CPUI issues a read request for reading an operand from a memory address, and thus a memory address is supplied to the operand address buffer circuit 40. If any of the stored memory addresses and the read request memory address match, the detection circuit 6 provides a match detection signal to the operand cache memory control circuit 20.

また前記命令用一致検出回路61のもう一方の入力には
、CPUIが命令をメモリアドレスから読み出す要求を
出す場合に、読み出すべき命令のメモリアドレスが供給
され、もしこのメモリアドレスが前記アドレスバッファ
回路41に格納されているいずれかのメモリアドレスと
一致する場合には前記検出回路61は一致検出信号を命
令用キャッシュメモリ制御回路21に与える。これらの
一致検出信号が与えられた場合の前記回路20および2
1の動作については後述することにして、最初は、これ
らの一致検出信号がない場合の動作について説明する。
さて、前記アドレスバッファ回路40および41からの
格納要求情報とその出力とは、それぞれのアドレスバッ
ファ出力ライン80および81を介し、それぞれの前記
オペランド用キャッシュメモリ制御回路20および前記
命令用キャッシュメモリ制御回路21に供給されている
Further, the other input of the instruction match detection circuit 61 is supplied with the memory address of the instruction to be read when the CPUI issues a request to read the instruction from the memory address. If it matches any memory address stored in the instruction cache memory control circuit 21, the detection circuit 61 provides a match detection signal to the instruction cache memory control circuit 21. The circuits 20 and 2 when these coincidence detection signals are applied
The operation in step 1 will be described later, but first, the operation in the absence of these coincidence detection signals will be explained.
Now, the storage request information and its output from the address buffer circuits 40 and 41 are transmitted to the operand cache memory control circuit 20 and the instruction cache memory control circuit through the address buffer output lines 80 and 81, respectively. 21.

かくして、前述のように、メモリアドレスに演算結果の
データを格納するような型の命令が現われた場合には、
その命令のしかるべきステップにおいて、メモリアドレ
スは前記バッファ回路40および41に、また、演算結
果のデータは前記回路50および51にそれぞれ遅滞な
く格納され、従来の装置で見られるような議出しおよび
格納のためのメモリアクセスの競合によっておこるパイ
プラインの流れの乱れを回避することができる。こうし
て前記回路40,41,50および51に内容が格納さ
れると前記回路40および41は格納要求情報をそれぞ
れの前記出力ライン80および81を介しそれぞれの前
記制御回路20および前記制御回路21に供給する。一
方、前記回路20は、前記出力ライン2を介して、CP
UIからある命令のオペランド読出し要求を受け、その
とき、前記一致検出信号が無い場合には、この議出し要
求を前記回路40からの前記格納要求に優先して受付け
る(前記バッファ回路40および50が、格納すべきデ
ータを一時格納しているので、その結果格納要求を保留
して、議出し要求を優先して受付けることが可能となり
、従って、前述のようにパイプラインの流れの乱れを回
避することができる)。こうして読出し要求を受付ける
と、前記回路20は、前記ライン2を介して供給される
メモリアドレスのデータを、オペランド用キャッシュメ
モリ30から読み出しCPUIに供給する(このとき指
定されたメモリアドレスが前記キャッシュメモリ30に
有効に存在しない場合には、前記回路20は、そのメモ
リアドレスのデータを含むブロックを主記憶装置4から
読み出し前記キャッシュメモリ30に格納し、それとと
もに、指定されたメモリアドレスのデータをCPUIに
供給するように制御する)。CPUIから前記議出し要
求がなく、前記回路40からの前記格納要求がある場合
には、前記回路20は、この格納要求を受付け、前記ラ
イン80を介して読み出されるアドレスデータで指定さ
れる、前記キャッシュメモリ30のメモリアドレスに、
このアドレスデータに対応する、前記回路5川こ格納さ
れているデータを1つ読み出して格納する。このとき、
もし前記キャッシュメモリ30の中に、このメモリアド
レスが有効に存在しない場合には、これらのデータは前
記バッファ回路40および50から読み拾てられるだけ
でよい。それは下記の理由による。すなわち、特に図示
していないが、前記アドレスバッファ回路40,41お
よび前記データバッファ回路50,51と同じ深さをも
ちそれぞれと全く同じ内容が書き込まれる第3のアドレ
スバッファ回路および、第3のデータバッファ回路が別
に設けられており、前記メモリアドレスに格納すべきデ
ー外ま、現在説明しているキャッシュメモリ(オペラン
ド用キャッシュメモリ30および命令用キャッシュメモ
リ31)への格納処理と全く独立して、主記憶装置4へ
の格納処理が別になされるようになっている。
Thus, as mentioned above, when an instruction appears that stores the result of an operation at a memory address,
At the appropriate step of the instruction, the memory address is stored in the buffer circuits 40 and 41, and the data of the operation result is stored in the circuits 50 and 51, respectively, without delay, so that the memory address is stored without delay in the buffer circuits 40 and 41, and the data of the operation result is stored in the circuits 50 and 51, respectively. Disturbances in the pipeline flow caused by memory access conflicts can be avoided. When the contents are thus stored in the circuits 40, 41, 50 and 51, the circuits 40 and 41 supply storage request information to the respective control circuits 20 and 21 via the respective output lines 80 and 81. do. On the other hand, the circuit 20 outputs CP via the output line 2.
When a request to read an operand of a certain instruction is received from the UI, and there is no coincidence detection signal at that time, this read request is received with priority over the storage request from the circuit 40 (the buffer circuits 40 and 50 , Since the data to be stored is temporarily stored, it is possible to suspend storage requests and receive proposals with priority, thus avoiding the disruption of the pipeline flow as described above. be able to). When the read request is accepted in this way, the circuit 20 reads the data at the memory address supplied via the line 2 from the operand cache memory 30 and supplies it to the CPUI (at this time, the specified memory address is 30, the circuit 20 reads the block containing the data at the memory address from the main memory 4 and stores it in the cache memory 30, and at the same time, the circuit 20 reads the block containing the data at the specified memory address from the CPU 30. ). If there is no request for the table from the CPUI and there is a request for storage from the circuit 40, the circuit 20 accepts the storage request and stores the data specified by the address data read out via the line 80. At the memory address of the cache memory 30,
One piece of data stored in the circuit 5 corresponding to this address data is read out and stored. At this time,
If this memory address is not validly present in the cache memory 30, these data only need to be read from the buffer circuits 40 and 50. This is due to the following reasons. That is, although not particularly illustrated, a third address buffer circuit having the same depth as the address buffer circuits 40, 41 and the data buffer circuits 50, 51 and into which exactly the same contents are written, and third data. A buffer circuit is provided separately, and in addition to the data to be stored at the memory address, it is completely independent of the storage process in the cache memory (operand cache memory 30 and instruction cache memory 31) that is currently being explained. Storage processing in the main storage device 4 is performed separately.

すなわち、前記回路40,41および回路50,51に
一時格納されているデータは、もともと主記憶装置4の
指定されたメモリアドレスに書き込むためのデータであ
り、上述の第3のアドレスバッファ回路と第3のデータ
バッファ回路とは、主記憶装置4に対する池回路からの
アクセスの空き時間を利用して、前記データを主記憶装
置4に格納するために、そのデータを一時格納しておく
バッファである。このように、主記憶装置4への格納に
対しては、独立したルートが別に設けられているので、
前記キャッシュメモリ30に格納すべきメモリアドレス
が有効に存在しない場合には、とくにこれに対して特別
な処理を行なう必要はない。さて、上に述べたオペラン
ド用キャッシュメモリ301こ対するのと全く同じ形の
処理が命令用キャッシュメモリ31に対しても行なわれ
る。
That is, the data temporarily stored in the circuits 40, 41 and 50, 51 is originally data to be written to a designated memory address of the main storage device 4, and is stored in the third address buffer circuit and the third address buffer circuit described above. The data buffer circuit No. 3 is a buffer that temporarily stores the data in order to store the data in the main storage device 4 by utilizing the free time of access from the storage circuit to the main storage device 4. . In this way, a separate independent route is provided for storage in the main storage device 4, so
If there is no valid memory address to be stored in the cache memory 30, there is no need to perform any special processing on this address. Now, exactly the same type of processing as that for the operand cache memory 301 described above is performed for the instruction cache memory 31.

すなわち、前記命令用アドレスバッファ回路41は、自
分がデータをもっている場合には、前記バッファ出力ラ
イン81を介して格納要求を命令用キャッシュメモリ制
御回路21に与える。前記回路21は、もう一方では、
CPUIから命令論出し要求ライン5を介し、命令読出
し要求を受けている。この要求が受付けられ、かつ、前
記回路61からの一致検出信号がない場合には、前記回
路21は、前記ライン5で指定されるメモリアドレスの
内容を命令用キャッシュメモリ31から読み出してCP
UIに供給する(このとき、もし指定されたメモリアド
レスのデータが前記キャッシュメモIJ31に有効に存
在しない場合には、主記憶装置4から読み出して供給す
るが、その方法は前述のオペランド用キャッシュメモリ
30の場合と同様である)。CPUIから命令読出しの
要求がなく、前記回路41からの格納要求がある場合に
は、前記回路21は、前記回路41から格納すべきメモ
リアドレスを読み出し、もしそのメモリアドレスが前記
命令用キャッシュメモリ31に有効に存在する場合には
、該メモリアドレスのデータを、前記命令用データバッ
ファ回路51から読み出したデー外こよって書き換える
。しかし、もし前記格納すべきメモリアドレスが前記キ
ャッシュメモリ31に有効に存在しない場合には、前記
バッファ回路41および51の対応するデータを1つ読
み捨てるだけとする。さて、以上は前記アドレス一致検
出回路60および61からの一致検出信号が存在しない
場合の動作であるが、何れかの一致検出信号がある場合
には下記のようになる。
That is, when the instruction address buffer circuit 41 has data, it provides a storage request to the instruction cache memory control circuit 21 via the buffer output line 81. The circuit 21, on the other hand,
An instruction read request is received from the CPU via the instruction read request line 5. If this request is accepted and there is no match detection signal from the circuit 61, the circuit 21 reads out the contents of the memory address specified in the line 5 from the instruction cache memory 31 and sends it to the CP.
(At this time, if the data at the specified memory address does not exist effectively in the cache memo IJ31, it is read from the main storage device 4 and supplied to the UI. 30). When there is no instruction read request from the CPUI and there is a storage request from the circuit 41, the circuit 21 reads a memory address to be stored from the circuit 41, and if the memory address is stored in the instruction cache memory 31, If the data exists in the memory address effectively, the data at the memory address is rewritten by using the data read out from the instruction data buffer circuit 51. However, if the memory address to be stored does not exist effectively in the cache memory 31, only one piece of the corresponding data in the buffer circuits 41 and 51 is read and discarded. Now, the above is the operation when there is no coincidence detection signal from the address coincidence detection circuits 60 and 61, but when there is any coincidence detection signal, the operation is as follows.

今、前述のようにCPU1からのオペランド謙出し要求
があり、そのオペランドのメモリアドレスが、前記オペ
ランド用アドレスバッファ回路40の中に格納されてい
るあるデータ(アドレス)と一致したとすると、前述オ
ペランド用一致検出回路60は一致検出信号をオペラン
ド用キャッシュメモリ制御回路2川こ与える。
Now, if there is an operand request from the CPU 1 as described above, and the memory address of the operand matches certain data (address) stored in the operand address buffer circuit 40, then the operand The operand match detection circuit 60 provides a match detection signal to the operand cache memory control circuit 2.

これを受けると前記回路20は前記回路40からの格納
要求を優先して受付け、前記一致がおこったアドレスま
での前記回路40に格納されているアドレスと前記回路
50の中に格納されている対応するデータとを順次(F
IFO制御で)読み出し、前者で指定されるメモリアド
レスに後者のデータを格納する。この場合に、もし指定
されたあるメモリアドレスがキャッシュメモリ30の中
に有効に存在しない場合には、前述のようにそのメモリ
アドレスに対応するデー外ま読み捨てるだけでよい。こ
うして一致が起ったメモリアドレスまでの格納要求を処
理してから前記回路20は前記CPUIからの読出し要
求を受付ける。このように制御することによって、先行
命令がオペランド用キャッシュメモリ30のあるメモリ
アドレスを更新する場合に、後続命令が該メモリアドレ
スのデータをオペランドとして使用するような事態が発
生すると、オペランドの先取りや格納すべきデータの一
時保留等の動作に関係なく後続命令は必らず先行命令に
よって更新されたデータをオペランドとして使用するこ
とになるので誤動作を起すことがない。上に述べたオペ
ランド用キャッシュメモリ30に対する処理は、命令用
キャッシュメモリ31に対しても全く同様に行なわれる
。すなわち、CPUIが命令読出し要求ライン5を介し
て命令の読出し要求を行ない、この命令を読み出すべき
指定されたメモリアドレスが、命令用アドレスバッファ
回路41に格納されているいずれかのデータと一致した
場合には、命令用アドレス一致検出回路61は一致検出
信号を命令用キャッシュメモリ制御回路21に与える。
これを受けると前記回路21は前記回路41からの格納
要求を優先して受付け、前記一致がおこったアドレスま
での前記回路41に格納されているアドレスと前記回路
51の中に格納されている対応するデータとを順次(F
IFO制御で)読み出し、命令用キャッシュメモリ31
の前者で指定されるメモリアドレスに後者のデータを格
納する。この場合に、もし指定されたあるメモリアドレ
スがキャッシュメモリ31の中に有効に存在しない場合
には、前述のように、そのメモリアドレスに対応するデ
ータを読み拾てるだけにする。こうして、一致が起った
メモリアドレスまでの前記回路41からの格納要求を処
理してから、前記回路21は前記CPUIからの命令議
出し要求を受付ける。このように制御することにより、
命令用キャッシュメモリ31のあるメモリアドレスを更
新する命令のすぐあとで、CPUIが該メモリアドレス
のデータ(命令)を命令として読み出すような場合に、
キャッシュメモリ31に格納しておくという処理がある
にもか)わらず、必らず先行命令で更新された命令が命
令用キャッシュメモリ31より読み出されてCPUIに
供給されることになるので誤動作を起すことがない。な
お、以上に述べた実施例においては、オペランド用アド
レスバッファ回路40と命令アドレスバッファ回路41
とさらに主記憶装置用の第3のアドレスバッファ回路と
を別々のバッファ回路としたが、二重議出し(twor
ead)の可能なバッファ回路を用い、かつ制御方式を
わずかに変更するだけで、これらを一つのバッファ回路
にまとめることもできる。
Upon receiving this, the circuit 20 receives the storage request from the circuit 40 with priority, and corresponds the address stored in the circuit 40 up to the address where the match occurred and the address stored in the circuit 50. sequentially (F
(IFO control) and stores the latter data in the memory address specified by the former. In this case, if a specified memory address does not exist validly in the cache memory 30, it is only necessary to read out the data corresponding to that memory address as described above. After processing the storage request up to the memory address where the match occurred, the circuit 20 accepts the read request from the CPUI. By controlling in this manner, when a preceding instruction updates a certain memory address in the operand cache memory 30 and a subsequent instruction uses data at that memory address as an operand, the operand is not prefetched or Regardless of operations such as temporary suspension of data to be stored, subsequent instructions always use the data updated by the preceding instruction as operands, so no malfunction occurs. The processing for the operand cache memory 30 described above is performed in exactly the same way for the instruction cache memory 31. That is, when the CPU makes an instruction read request via the instruction read request line 5, and the specified memory address from which this instruction is to be read matches any data stored in the instruction address buffer circuit 41. In this case, the instruction address coincidence detection circuit 61 provides a coincidence detection signal to the instruction cache memory control circuit 21.
Upon receiving this, the circuit 21 receives the storage request from the circuit 41 with priority, and corresponds the address stored in the circuit 41 up to the address where the match occurred and the address stored in the circuit 51. sequentially (F
(by IFO control), instruction cache memory 31
The latter data is stored in the memory address specified by the former. In this case, if a specified memory address does not exist validly in the cache memory 31, only the data corresponding to that memory address can be read as described above. After processing the storage request from the circuit 41 up to the memory address where the match occurred, the circuit 21 accepts an instruction issuing request from the CPUI. By controlling in this way,
Immediately after an instruction to update a memory address in the instruction cache memory 31, when the CPU reads data (instruction) at the memory address as an instruction,
Even though there is a process of storing the instruction in the cache memory 31), the instruction updated by the preceding instruction is always read out from the instruction cache memory 31 and supplied to the CPU, resulting in malfunction. It never happens. In the embodiment described above, the operand address buffer circuit 40 and the instruction address buffer circuit 41
Furthermore, the third address buffer circuit for the main memory device was made into a separate buffer circuit, but
It is also possible to combine these into one buffer circuit by using a buffer circuit capable of (ead) and by slightly changing the control method.

また、オペランド用データバッファ回路50と命令用デ
ータバッファ回路51とさらに主記憶装置用の第3のデ
ータバッファ回路とに対しても全く同様にして一つのバ
ッファ回路にまとめることもできる。また、上の実施例
では、一致検出回路60または61で一致が検出された
場合に、その一致が検出されたアドレスに対応するデー
タまでを他に優先してFIFOでキャッシュメモリ30
または31に書き込むように制御したが、このかわりに
、一致がおこったアドレスのデータだけを他に優先して
キャッシュメモ川こ書き込むように制御することもでき
る。
Further, the operand data buffer circuit 50, the instruction data buffer circuit 51, and the third data buffer circuit for the main memory device can also be combined into one buffer circuit in exactly the same manner. Further, in the above embodiment, when a match is detected by the match detection circuit 60 or 61, data up to the address corresponding to the address where the match was detected is given priority over other data and stored in the cache memory 30 in the FIFO.
Or, instead of this, it is also possible to control so that only the data at the address where a match occurs is written in the cache memo 31 with priority over others.

このように制御すると、一般に、構成は複雑になるが処
理速度は改善される。以上述べたように、本発明を用い
ることにより、オペランド用キャッシュメモリと命令用
キャッシュメモリとを別々に装備しキャッシュのヒット
率およびスルーブットを高めかつパイプライン方式の先
行制御を行なうCPUをもつ情報処理装置のパイプライ
ンの流れの乱れによる時間損失を改善しかつ先行制御に
よるオペランドの先取りや命令の先取りの結果生ずる問
題を解決したキャッシュメモリ制御装置を提供すること
ができる。
Controlling in this manner generally improves processing speed, although the configuration becomes more complex. As described above, by using the present invention, an information processing system having a CPU that is equipped with operand cache memory and instruction cache memory separately, increases the cache hit rate and throughput, and performs pipelined advance control. It is possible to provide a cache memory control device that improves time loss due to disturbances in the pipeline flow of the device and solves problems caused by preemption of operands or instructions by advance control.

これにより情報処理装置の処理効率が改善できるという
効果がある。
This has the effect of improving the processing efficiency of the information processing device.

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

第1図、第2図はパイプライン方式の処理を説明するた
めの図および第3図は本発明の一実施例を示す図である
。 第3図において、1……中央処理装置 (CPU)、2・・・・・・オペランドアドレス出力ラ
イン、3・・・・・・ストアデータ出力ライン、4・・
・・・・主記憶装置、5・・・・・・命令議出し要求ラ
イン、20・・・・・・オペランド用キャッシュメモリ
制御回路、21…・・・命令用キャッシュメモリ、30
・・・・・・オペランド用キャッシュメモリ、31・・
・・・・命令用キャッシュメモリ、40……オペランド
用アドレスバッファ回路、41・…・・命令用アドレス
バッファ回路、50・・・・・・オペランド用データバ
ッファ回路、51・・・…命令用データバッファ回路、
60・・・・・・オペランド用アドレス一致検出回路、
61・・・・・・命令用アドレス一致検出回路、70・
・・・・・オペランド用アドレス比較ライン、71・・
・・・・命令用アドレス比較ライン、80……オペラン
ド用アドレスバッファ出力ライン、81・・・・・・命
令用アドレスバッファ出力ライン溝′図 第2図 第3図
FIGS. 1 and 2 are diagrams for explaining pipeline processing, and FIG. 3 is a diagram showing an embodiment of the present invention. In FIG. 3, 1... central processing unit (CPU), 2... operand address output line, 3... store data output line, 4...
...Main storage device, 5...Instruction issue request line, 20...Operand cache memory control circuit, 21...Instruction cache memory, 30
... Operand cache memory, 31...
... Instruction cache memory, 40... Operand address buffer circuit, 41... Instruction address buffer circuit, 50... Operand data buffer circuit, 51... Instruction data buffer circuit,
60... Operand address match detection circuit,
61... Instruction address match detection circuit, 70.
...Address comparison line for operand, 71...
...Address comparison line for instruction, 80...Address buffer output line for operand, 81...Address buffer output line groove for instruction Fig. 2 Fig. 3

Claims (1)

【特許請求の範囲】[Claims] 1 主記憶装置と中央処理装置とキヤツシユメモリとを
含む情報処理装置用のキヤツシユメモリ制御装置におい
て、 前記主記憶装置に記憶されている命令情報の一部
を一時的に記憶し前記主記憶装置の代りに前記中央処理
装置との間で命令情報の授受を行なう命令用キヤツシユ
メモリと、 前記主記憶装置に記憶されているオペラン
ド情報の一部を一時的に記憶し前記主記憶装置の代りに
前記中央処理装置との間でオペランド情報の授受を行な
うオペランド用キヤツシユメモリと、前記中央処理装置
から前記主記憶装置へのストア要求に応答してストアア
ドレス情報とストアデータ情報とをそれぞれ受け取り一
時的に記憶しストア要求を発生するキヤツシユストアバ
ツフア回路と、 前記中央処理装置からの命令読出し要
求アドレス情報と前記キヤツシユストアバツフア回路に
一時的に記憶されている全てのアドレス情報とを比較し
一致アドレス情報が検出されると命令アドレス一致検出
情報を発生する命令アドレス一致検出回路と、 前記中
央処理装置からのオペランド読出し要求アドレス情報と
前記キヤツシユストアバツフア回路に一時的に記憶され
ている全てのアドレス情報とを比較し一致アドレス情報
が検出されるとオペランドアドレス一致検出情報を発生
するオペランドアドレス一致検出回路と、 前記中央処
理装置からの命令読出し要求に応答して前記命令用キヤ
ツシユメモリにその要求アドレスが存在するか否かをチ
エツクし要求アドレスがあれば該命令用キヤツシユメモ
リから要求アドレスの命令情報を読み出し要求アドレス
がなければ前記主記憶装置から前記要求アドレスの命令
情報を読み出し前記命令用キヤツシユメモリに記憶する
よう制御し、 前記キヤツシユストアバツフア回路から
のストア要求に応答して前記命令用キヤツシユメモリに
該ストアアドレスが存在するか否かをチエツクし要求ア
ドレスがあれば前記ストアバツフア回路からのストア情
報を該命令用キヤツシユメモリの要求アドレスにストア
するよう制御し、 前記命令アドレス一致検出情報が発
生した場合には前記キヤツシユストアバツフア回路から
のストア要求を優先して処理するように制御する命令用
キヤツシユメモリ制御回路と、 前記中央処理装置から
のオペランド読出し要求に応答して前記オペランド用キ
ヤツシユメモリにその要求アドレスが存在するか否かを
チエツクし要求アドレスがあれば該オペランド用キヤツ
シユメモリから要求アドレスのオペランド情報を読み出
し要求アドレスがなければ前記主記憶装置から前記要求
アドレスのオペランド情報を読み出し前記オペランド用
キヤツシユメモリに記憶するよう制御し、 前記キヤツ
シユストアバツフア回路からのストア要求に応答して前
記オペランド用キヤツシユメモリに該ストアアドレスが
存在するか否かをチエツクし要求アドレスがあれば前記
ストアバツフア回路からのストア情報を該オペランド用
キヤツシユメモリの要求アドレスにストアするよう制御
し、 前記オペランドアドレス一致検出情報が発生した
場合には前記キヤツシユストアバツフア回路からのスト
ア要求を優先して処理するように制御するオペランド用
キヤツシユメモリ制御回路とを含むことを特徴とするキ
ヤツシユメモリ制御装置。
1. In a cache memory control device for an information processing device including a main memory, a central processing unit, and a cache memory, a part of instruction information stored in the main memory is temporarily stored in the main memory. an instruction cache memory that exchanges instruction information with the central processing unit instead of the main storage device; and an instruction cache memory that temporarily stores part of the operand information stored in the main storage device Instead, an operand cache memory exchanges operand information with the central processing unit, and stores address information and store data information in response to a store request from the central processing unit to the main storage unit. a cache buffer circuit that receives, temporarily stores, and generates a store request; address information for instruction read requests from the central processing unit; and all address information temporarily stored in the cache buffer circuit. an instruction address match detection circuit that compares the address information and generates instruction address match detection information when matching address information is detected; an operand address match detection circuit that compares all stored address information and generates operand address match detection information when matching address information is detected; and an operand address match detection circuit that generates operand address match detection information when matching address information is detected; Checks whether the requested address exists in the instruction cache memory, and if the requested address exists, reads the instruction information of the requested address from the instruction cache memory. If the requested address does not exist, reads the requested address from the main memory. Controls reading of instruction information and storing it in the instruction cache memory, and checks whether the store address exists in the instruction cache memory in response to a store request from the cache buffer circuit. If there is a requested address, the store information from the store buffer circuit is controlled to be stored at the requested address of the cache memory for the instruction, and if the instruction address match detection information is generated, the store information is stored from the cache memory from the cache memory for the instruction. an instruction cache memory control circuit that controls to give priority to processing of store requests; and a control circuit that controls whether or not the requested address exists in the operand cache memory in response to an operand read request from the central processing unit. If there is a requested address, the operand information of the requested address is read from the cache memory for the operand. If there is no requested address, the operand information of the requested address is read from the main storage device and stored in the cache memory for the operand. In response to a store request from the cache buffer circuit, it is checked whether the store address exists in the operand cache memory, and if the requested address is present, the store information from the store buffer circuit is stored. is controlled to be stored at the requested address of the cache memory for the operand, and when the operand address match detection information is generated, the store request from the cache buffer circuit is controlled to be processed with priority. 1. A cache memory control device comprising: an operand cache memory control circuit.
JP55118627A 1980-08-22 1980-08-28 Cache memory control device Expired JPS6022376B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP55118627A JPS6022376B2 (en) 1980-08-28 1980-08-28 Cache memory control device
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
JP55118627A JPS6022376B2 (en) 1980-08-28 1980-08-28 Cache memory control device

Publications (2)

Publication Number Publication Date
JPS5744279A JPS5744279A (en) 1982-03-12
JPS6022376B2 true JPS6022376B2 (en) 1985-06-01

Family

ID=14741207

Family Applications (1)

Application Number Title Priority Date Filing Date
JP55118627A Expired JPS6022376B2 (en) 1980-08-22 1980-08-28 Cache memory control device

Country Status (1)

Country Link
JP (1) JPS6022376B2 (en)

Families Citing this family (6)

* 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
DE3802025C1 (en) * 1988-01-25 1989-07-20 Otto 7750 Konstanz De Mueller
US5123097A (en) * 1989-01-05 1992-06-16 Bull Hn Information Systems Inc. Apparatus and method for simultaneous execution of a write instruction and a succeeding read instruction in a data processing system with a store through cache strategy
JP3164732B2 (en) 1994-07-04 2001-05-08 富士通株式会社 Data processing device
JP2006242338A (en) * 2005-03-04 2006-09-14 Jms Co Ltd Connector and connection structure
GB2426082B (en) * 2005-05-09 2007-08-15 Sony Comp Entertainment Europe Memory caching in data processing

Also Published As

Publication number Publication date
JPS5744279A (en) 1982-03-12

Similar Documents

Publication Publication Date Title
US4593354A (en) Disk cache system
US5293618A (en) Method for controlling access to a shared file and apparatus therefor
JPH04306748A (en) Information processor
EP0067657A2 (en) Computer system
JPS6324428A (en) Cache memory
US5313602A (en) Multiprocessor system and method of control over order of transfer of data between buffer storages
JPS6022376B2 (en) Cache memory control device
JPS5829187A (en) Cache memory controller
JPH0410102B2 (en)
US5724548A (en) System including processor and cache memory and method of controlling the cache memory
JPH1063574A (en) Processor with cache memory
JP2000047942A (en) Device and method for controlling cache memory
JPH0210450A (en) Prefetch control system for cache memory
JPS6135583B2 (en)
JP2703255B2 (en) Cache memory writing device
JPH04340145A (en) Cache memory device
JPH0148571B2 (en)
JPH01251248A (en) Cache control system for stack data structure
JPS581247A (en) Cntrolling method for instruction advance-fetch
JPH07152650A (en) Cache control unit
JPH01129334A (en) Data control system for cache memory
JP2588547B2 (en) Multi CPU system
JPS5842546B2 (en) Store control method
JPH02259945A (en) Storing processing system
JPS61239339A (en) System for controlling transfer of page data