JPS6022376B2 - キャッシュメモリ制御装置 - Google Patents
キャッシュメモリ制御装置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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining 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)
Description
【発明の詳細な説明】
本発明はキャッシュメモリ制御装置に関する。
一般に情報処理装置においては、その処理速度を向上す
るために、中央処理装置(以下CPU)と主記憶装置と
の間に、主記憶装置に記憶されている情報の一部を一時
的に記憶し、主記憶装置に代りそれよりも高速でCPU
との間で情報の授受を行なうキャッシュメモリを装備し
ている。キャッシュメモリは複数のセレタターと称する
部分に区分され、各セクターはさらに各々が複数の語か
らなるブロックに分けられている。CPUが、メモリア
ドレスを指定して必要な情報をキャッシュメモIJ‘こ
要求すると、キャッシュメモリ制御回路は、その指定さ
れたアドレスのデータが現在キャッシュメモリ中に有効
に存在しているか否かをチェックし、もし有効に存在し
ている場合(ヒットする場合)にはこのデータをCPU
に供給し、もし有効に存在していない場合(キャッシュ
ミスヒットの場合)には、この指定されたアドレスのデ
ータを含むブロックを主記憶装置よりキャッシュメモリ
に転送して格納するとともに(この場合のキャッシュ格
納アドレスは上位の桁を無視し、キャッシュ内のアドレ
スを指定するのに必要な下位の桁だけで定まるアドレス
である。したがって、下位の桁の内容が同じ、それまで
キャッシュのこのアドレスに格納されていた古いデ−夕
は、この新らしいデータのために書き換えられ、キャッ
シュから造出されたことになる)、指定されたアドレス
のデータをCPUに供給する。こうして、以後同じデー
タ(またはこのデータと同じブロックに属するデータ)
がCPUから要求された場合には、高速でそれに応ぜら
れるように準備しておく。以上から明らかなように、限
られた容量のキャツシュメモリをなるべく有効に利用す
るためには、キャッシュのヒットする確率をできるだけ
高くすることが必要である。
るために、中央処理装置(以下CPU)と主記憶装置と
の間に、主記憶装置に記憶されている情報の一部を一時
的に記憶し、主記憶装置に代りそれよりも高速でCPU
との間で情報の授受を行なうキャッシュメモリを装備し
ている。キャッシュメモリは複数のセレタターと称する
部分に区分され、各セクターはさらに各々が複数の語か
らなるブロックに分けられている。CPUが、メモリア
ドレスを指定して必要な情報をキャッシュメモIJ‘こ
要求すると、キャッシュメモリ制御回路は、その指定さ
れたアドレスのデータが現在キャッシュメモリ中に有効
に存在しているか否かをチェックし、もし有効に存在し
ている場合(ヒットする場合)にはこのデータをCPU
に供給し、もし有効に存在していない場合(キャッシュ
ミスヒットの場合)には、この指定されたアドレスのデ
ータを含むブロックを主記憶装置よりキャッシュメモリ
に転送して格納するとともに(この場合のキャッシュ格
納アドレスは上位の桁を無視し、キャッシュ内のアドレ
スを指定するのに必要な下位の桁だけで定まるアドレス
である。したがって、下位の桁の内容が同じ、それまで
キャッシュのこのアドレスに格納されていた古いデ−夕
は、この新らしいデータのために書き換えられ、キャッ
シュから造出されたことになる)、指定されたアドレス
のデータをCPUに供給する。こうして、以後同じデー
タ(またはこのデータと同じブロックに属するデータ)
がCPUから要求された場合には、高速でそれに応ぜら
れるように準備しておく。以上から明らかなように、限
られた容量のキャツシュメモリをなるべく有効に利用す
るためには、キャッシュのヒットする確率をできるだけ
高くすることが必要である。
また、前記キャッシュメモリ制御回路において、キャッ
シュヒットノミスヒットを判定したあとではじめてキャ
ッシュメモリがアクセスされるためヒット/ミスヒット
判定回路での時間短縮も必要となる(スループツトの改
善)。このような目的のために、キャッシュメモリを命
令専用と、オペランド専用とに区別し、CPUからの要
求が命令の議出しである場合には命令用キャッシュメモ
リ制御回路に要求を出し、オペランドの議出しである場
合にはオペランド用キャッシュメモリ制御回路に要求を
出すという方式が従来より知られている。また一方、情
報処理装置の処理速度を向上するため、先行制御を行う
パイプライン処理方式が知られている。
シュヒットノミスヒットを判定したあとではじめてキャ
ッシュメモリがアクセスされるためヒット/ミスヒット
判定回路での時間短縮も必要となる(スループツトの改
善)。このような目的のために、キャッシュメモリを命
令専用と、オペランド専用とに区別し、CPUからの要
求が命令の議出しである場合には命令用キャッシュメモ
リ制御回路に要求を出し、オペランドの議出しである場
合にはオペランド用キャッシュメモリ制御回路に要求を
出すという方式が従来より知られている。また一方、情
報処理装置の処理速度を向上するため、先行制御を行う
パイプライン処理方式が知られている。
これは以下のような方式である。各命令を、例えば、A
,P,C,8およびWの5つのステップに分割する。ス
テップAでは命令のデコードと、命令で使用されている
オペランドのアドレスの計算(間接指定やインデックス
指定されているオペランドのアドレスを計算する)を行
う。ステップPでは論理アドレスを実アドレスに変換す
る(プログラムは一般に論理アドレスを用いて書かれて
いる)。ステップCではオペランドの議出しを行う。も
しこの命令が、メモリアドレスから謙出すべきオペラン
ドを含む場合には、ステップPで得られた実アドレスを
用いてキャッシュメモIJ‘こ要求を出し、前述のよう
にして供聯合されるデータ(オペランド)を演算回路の
オペランドレジスタに格納する。ステップEでは、前記
オペランドを用いてこの命令で指定された演算を行なう
。そして、ステップWでは、こうして得られた結果をこ
の命令で指定された場所(例えば汎用レジスタまたはメ
モリアドレス等)に格納する。この場合に、もし、指定
された格納場所が、あるメモリアドレスである場合には
、キャッシュメモリ制御回路に格納要求を出し、もしこ
の格納を指定されたメモリアドレスのデータがキャッシ
ュに有効に存在する場合にはそのデータを書き換え更新
する。それとともに主記憶装置に格納要求を出しこのメ
モリアドレスの内容を更新する。一方、上記A,P,C
,EおよびWの各ステップに対応して、この各ステップ
を処理するためのハードウェアを別々に設ける。
,P,C,8およびWの5つのステップに分割する。ス
テップAでは命令のデコードと、命令で使用されている
オペランドのアドレスの計算(間接指定やインデックス
指定されているオペランドのアドレスを計算する)を行
う。ステップPでは論理アドレスを実アドレスに変換す
る(プログラムは一般に論理アドレスを用いて書かれて
いる)。ステップCではオペランドの議出しを行う。も
しこの命令が、メモリアドレスから謙出すべきオペラン
ドを含む場合には、ステップPで得られた実アドレスを
用いてキャッシュメモIJ‘こ要求を出し、前述のよう
にして供聯合されるデータ(オペランド)を演算回路の
オペランドレジスタに格納する。ステップEでは、前記
オペランドを用いてこの命令で指定された演算を行なう
。そして、ステップWでは、こうして得られた結果をこ
の命令で指定された場所(例えば汎用レジスタまたはメ
モリアドレス等)に格納する。この場合に、もし、指定
された格納場所が、あるメモリアドレスである場合には
、キャッシュメモリ制御回路に格納要求を出し、もしこ
の格納を指定されたメモリアドレスのデータがキャッシ
ュに有効に存在する場合にはそのデータを書き換え更新
する。それとともに主記憶装置に格納要求を出しこのメ
モリアドレスの内容を更新する。一方、上記A,P,C
,EおよびWの各ステップに対応して、この各ステップ
を処理するためのハードウェアを別々に設ける。
各命令を処理するのに、1つの命令の上記5つのステッ
プが全部完了してから次の命令の処理に進むという方法
ではなくて、第1図に示すように、1つづつステップの
ズレた連続した命令を並列に処理することにより、前記
各ハードウェアの遊休時間をなくし、処理速度の向上を
はかる。さて、上述の説明において、例えば、第1図の
命令13が演算結果をあるメモリアドレスに格納する型
の命令であるとし、また命令15があるメモリアドレス
からオペランドを読み出す型の命令であると仮定すると
、命令13のステップWと命令15のステップCとが時
間的に重なることになるが、前者はキャッシュアクセス
を行なってキャッシュにデータを格納するプロセスであ
り、後者はキャッシュアクセスを行なってキャッシュよ
りデータを読み出すプロセスであるため、両者は競合し
、同じ期間に両者を同時に実行することはできない。
プが全部完了してから次の命令の処理に進むという方法
ではなくて、第1図に示すように、1つづつステップの
ズレた連続した命令を並列に処理することにより、前記
各ハードウェアの遊休時間をなくし、処理速度の向上を
はかる。さて、上述の説明において、例えば、第1図の
命令13が演算結果をあるメモリアドレスに格納する型
の命令であるとし、また命令15があるメモリアドレス
からオペランドを読み出す型の命令であると仮定すると
、命令13のステップWと命令15のステップCとが時
間的に重なることになるが、前者はキャッシュアクセス
を行なってキャッシュにデータを格納するプロセスであ
り、後者はキャッシュアクセスを行なってキャッシュよ
りデータを読み出すプロセスであるため、両者は競合し
、同じ期間に両者を同時に実行することはできない。
そこで、従来はこのような事態が起ると、一般に、キャ
ッシュへの格納を優先して行ない(すなわち、前記命令
13のステップWを優先して行ない)、それがすんでか
らキャッシュよりの読み出しを行なう。従ってこのよう
な型の命令の組合せがおこることにパイプラインの流れ
は第2図に示すように乱され、それだけ処理効率を低下
する結果となる。一方、また、場合によっては、メモリ
アドレスに書込みを行なわない命令(例えば、結果を汎
用レジスタに書き込む命令)のステップWとメモリアド
レスから講出しを行なわない命令(例えば汎用レジスタ
の内容だけをオペランドとして使用する命令)のステッ
プCとが同じ期間に重なる可能性もある。この期間には
前記のメモリアクセスは全く行なわれないことになり、
これは対応するハードウェアの遊休期間となる。例えば
、第2図において、メモリアクセスを行なわない命令の
ステップCおよびステップWを、カツコをつけて示して
あるが、命令1,ステップWと命令らのステップCとは
ともにメモリアクセスを行なわないため、この期間が対
応するハードウェアの遊休期間となる。この遊休期間を
巧に利用して上に述べたパイプラインの流れの乱れを軽
減する一方法として下記が考えられる。すなわち、適当
な深さをもつ先入れ先出し制御(FIFO)のキャッシ
ュストア用アドレスバッファ回路とキャッシュストア用
データバッファ回路とを設けて、前述の、演算結果をメ
モリアドレスに格納する型の命令が現れた場合には、そ
のメモリアドレスとそれに対応する格納データとを、そ
れぞれ前記キャッシュストア用アドレスバッファ回路と
前記キャッシュストア用データバッファ回路とに一時格
納しておき、前述のようにキャッシュアクセスまたは主
記憶装置アクセスを行なうハードウェアの遊休時間が生
じた期間を利用して、前記バッファ回路から、指定のメ
モリアドレスに格納するようにすると、前述のパイプラ
インの流れの乱れを軽減することができる。しかしなが
ら、パイプライン方式では、前述のように、先行命令が
完了しないうちに後続命令のオペランドの先取りを行な
うために、下記のような問題が生ずる。
ッシュへの格納を優先して行ない(すなわち、前記命令
13のステップWを優先して行ない)、それがすんでか
らキャッシュよりの読み出しを行なう。従ってこのよう
な型の命令の組合せがおこることにパイプラインの流れ
は第2図に示すように乱され、それだけ処理効率を低下
する結果となる。一方、また、場合によっては、メモリ
アドレスに書込みを行なわない命令(例えば、結果を汎
用レジスタに書き込む命令)のステップWとメモリアド
レスから講出しを行なわない命令(例えば汎用レジスタ
の内容だけをオペランドとして使用する命令)のステッ
プCとが同じ期間に重なる可能性もある。この期間には
前記のメモリアクセスは全く行なわれないことになり、
これは対応するハードウェアの遊休期間となる。例えば
、第2図において、メモリアクセスを行なわない命令の
ステップCおよびステップWを、カツコをつけて示して
あるが、命令1,ステップWと命令らのステップCとは
ともにメモリアクセスを行なわないため、この期間が対
応するハードウェアの遊休期間となる。この遊休期間を
巧に利用して上に述べたパイプラインの流れの乱れを軽
減する一方法として下記が考えられる。すなわち、適当
な深さをもつ先入れ先出し制御(FIFO)のキャッシ
ュストア用アドレスバッファ回路とキャッシュストア用
データバッファ回路とを設けて、前述の、演算結果をメ
モリアドレスに格納する型の命令が現れた場合には、そ
のメモリアドレスとそれに対応する格納データとを、そ
れぞれ前記キャッシュストア用アドレスバッファ回路と
前記キャッシュストア用データバッファ回路とに一時格
納しておき、前述のようにキャッシュアクセスまたは主
記憶装置アクセスを行なうハードウェアの遊休時間が生
じた期間を利用して、前記バッファ回路から、指定のメ
モリアドレスに格納するようにすると、前述のパイプラ
インの流れの乱れを軽減することができる。しかしなが
ら、パイプライン方式では、前述のように、先行命令が
完了しないうちに後続命令のオペランドの先取りを行な
うために、下記のような問題が生ずる。
例えば、今、先行命令が演算結果をある×番地のメモリ
アドレスに格納する命令であると仮定し、それに続く後
続命令が同じX番地の内容をその1つのオペランドとし
て使用する命令であったと仮定する。この場合には、先
行命令による×番地への演算結果の格納が完了してから
後続命令のX番地からのオペランド読出しが行なわれる
必要がある。従って、上に述べた、バッファ回路を用い
て一時データを格納し遊休期間を利用してこれを指定さ
れたメモリアドレスに格納するという方式は、この事実
を無視して無条件に用いることはできない。特に、最初
に述べたように、キャッシュのヒット率を高めるために
、キャッシュメモリを命令専用とオペランド専用とに区
別して使用する場合には、従来の装置では解決できない
複雑な問題が発生する。本発明の目的はこのような問題
を除去し前記バッファ回路挿入による効果を発揮するキ
ャッシュメモリ制御装置を提供するにある。本発明の制
御装置は主記憶装置と中央処理装置とキャッシュメモリ
とを含む情報処理装置用キャッシュメモリ制御装置であ
って、前記主記憶装置に記憶されている命令情報の一部
を一時的に記憶し前記主記憶装置の代りに前記中央処理
装置との間で命令情報の授受を行なう命令用キャッシュ
メモリと、前記主記憶装置に記憶されているオペランド
情報の一部を一時的に記憶し前記主記憶装置の代りに前
記中央処理装置との間でオペランド情報の授受を行なう
オペランド用キャッシュメモリと、前記中央処理装置か
ら前記主記憶装置へのストア要求に応答してストアアド
レス情報とストアデータ情報とをそれぞれ受けとり一時
的に記憶しストア要求を発生するキャッシュストアバッ
ファ回路と、前記中央処理装置からの命令読出し要求ア
ドレス情報と前記キャッシュストアバッファ回路に一時
的に記憶されている全てのアドレス情報とを比較し一致
アドレス情報が検出されると命令アドレス一致検出情報
を発生する命令アドレス一致検出回路と、前記中央処理
装置からのオペランド論出し要求アドレス情報と前記キ
ャッシュストアバッファ回路に一時的に記憶されている
全てのアドレス情報とを比較し一致アドレス情報が検出
されるとオペランドアドレス一致検出情報を発生するオ
ペランドアドレス一致検出回路と、前記中央処理装置か
らの命令議出し要求に応答して前記命令用キャッシュメ
モリにその要求アドレスが存在するか否かをチェックし
要求アドレスがあれば該命令用キャッシュメモリから要
求アドレスの命令情報を読み出し要求アドレスがなけれ
ば前記主記憶装置から前記要求アドレスの命令情報を読
み出し前記命令用キャッシュメモリに託臆するよう制御
し、前記キャッシュストアバッファ回路からのストア要
求に応答して前記命令用キャッシュメモIJ‘こ該スト
アアドレスが存在するか否かチヱックし要求アドレスが
あれば前記ストアバッファ回路からのストア情報を該命
令用キャッシュメモリの要求アドレスにストアするよう
制御し、前記命令アドレス一致検出情報が発生した場合
には前記キャッシュストアバッファ回路からのストア要
求を優先して処理するように制御する命令用キャッシュ
メモリ制御回路と、前記中央処理装置からのオペランド
講出し要求に応答して前記オペランド用キャッシュメモ
リにその要求アドレスが存在するか否かをチェックし要
求アドレスがあれば該オペランド用キャッシュメモリか
ら要求アドレスのオペランド情報を読み出し要求アドレ
スがなければ前記主記憶装置から前記要求アドレスのオ
ペランド情報を読み出し前記オペランド用キャッシュメ
モリに記憶するよう制御し、前記キャッシュストアバッ
ファ回路からのストア要求に応答して前記オペランド用
キャッシュメモリに該ストアアドレスが存在するか否か
をチェックし要求アドレスがあれば前記ストアバッファ
回路からのストア情報を該オペランド用キャッシュメモ
リの要求アドレスにストアするよう制御し、前記オペラ
ンドアドレスー敦検出情報が発生した場合には前記キャ
ッシュストアバッファ回路からのストア要求を優先して
処理するように制御するオペランド用キャッシュメモリ
制御回路とを含んでいる。
アドレスに格納する命令であると仮定し、それに続く後
続命令が同じX番地の内容をその1つのオペランドとし
て使用する命令であったと仮定する。この場合には、先
行命令による×番地への演算結果の格納が完了してから
後続命令のX番地からのオペランド読出しが行なわれる
必要がある。従って、上に述べた、バッファ回路を用い
て一時データを格納し遊休期間を利用してこれを指定さ
れたメモリアドレスに格納するという方式は、この事実
を無視して無条件に用いることはできない。特に、最初
に述べたように、キャッシュのヒット率を高めるために
、キャッシュメモリを命令専用とオペランド専用とに区
別して使用する場合には、従来の装置では解決できない
複雑な問題が発生する。本発明の目的はこのような問題
を除去し前記バッファ回路挿入による効果を発揮するキ
ャッシュメモリ制御装置を提供するにある。本発明の制
御装置は主記憶装置と中央処理装置とキャッシュメモリ
とを含む情報処理装置用キャッシュメモリ制御装置であ
って、前記主記憶装置に記憶されている命令情報の一部
を一時的に記憶し前記主記憶装置の代りに前記中央処理
装置との間で命令情報の授受を行なう命令用キャッシュ
メモリと、前記主記憶装置に記憶されているオペランド
情報の一部を一時的に記憶し前記主記憶装置の代りに前
記中央処理装置との間でオペランド情報の授受を行なう
オペランド用キャッシュメモリと、前記中央処理装置か
ら前記主記憶装置へのストア要求に応答してストアアド
レス情報とストアデータ情報とをそれぞれ受けとり一時
的に記憶しストア要求を発生するキャッシュストアバッ
ファ回路と、前記中央処理装置からの命令読出し要求ア
ドレス情報と前記キャッシュストアバッファ回路に一時
的に記憶されている全てのアドレス情報とを比較し一致
アドレス情報が検出されると命令アドレス一致検出情報
を発生する命令アドレス一致検出回路と、前記中央処理
装置からのオペランド論出し要求アドレス情報と前記キ
ャッシュストアバッファ回路に一時的に記憶されている
全てのアドレス情報とを比較し一致アドレス情報が検出
されるとオペランドアドレス一致検出情報を発生するオ
ペランドアドレス一致検出回路と、前記中央処理装置か
らの命令議出し要求に応答して前記命令用キャッシュメ
モリにその要求アドレスが存在するか否かをチェックし
要求アドレスがあれば該命令用キャッシュメモリから要
求アドレスの命令情報を読み出し要求アドレスがなけれ
ば前記主記憶装置から前記要求アドレスの命令情報を読
み出し前記命令用キャッシュメモリに託臆するよう制御
し、前記キャッシュストアバッファ回路からのストア要
求に応答して前記命令用キャッシュメモIJ‘こ該スト
アアドレスが存在するか否かチヱックし要求アドレスが
あれば前記ストアバッファ回路からのストア情報を該命
令用キャッシュメモリの要求アドレスにストアするよう
制御し、前記命令アドレス一致検出情報が発生した場合
には前記キャッシュストアバッファ回路からのストア要
求を優先して処理するように制御する命令用キャッシュ
メモリ制御回路と、前記中央処理装置からのオペランド
講出し要求に応答して前記オペランド用キャッシュメモ
リにその要求アドレスが存在するか否かをチェックし要
求アドレスがあれば該オペランド用キャッシュメモリか
ら要求アドレスのオペランド情報を読み出し要求アドレ
スがなければ前記主記憶装置から前記要求アドレスのオ
ペランド情報を読み出し前記オペランド用キャッシュメ
モリに記憶するよう制御し、前記キャッシュストアバッ
ファ回路からのストア要求に応答して前記オペランド用
キャッシュメモリに該ストアアドレスが存在するか否か
をチェックし要求アドレスがあれば前記ストアバッファ
回路からのストア情報を該オペランド用キャッシュメモ
リの要求アドレスにストアするよう制御し、前記オペラ
ンドアドレスー敦検出情報が発生した場合には前記キャ
ッシュストアバッファ回路からのストア要求を優先して
処理するように制御するオペランド用キャッシュメモリ
制御回路とを含んでいる。
次に本発明を図面を参照して詳細に説明する。
第3図は本発明の一実施例を示すブロック図である。参
照数字1は中央処理装置(以後CPU)を示す。
照数字1は中央処理装置(以後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に
与える。
はこのオペランドアドレスをオペランドアドレス出力ラ
イン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に
与える。
また前記命令用一致検出回路61のもう一方の入力には
、CPUIが命令をメモリアドレスから読み出す要求を
出す場合に、読み出すべき命令のメモリアドレスが供給
され、もしこのメモリアドレスが前記アドレスバッファ
回路41に格納されているいずれかのメモリアドレスと
一致する場合には前記検出回路61は一致検出信号を命
令用キャッシュメモリ制御回路21に与える。これらの
一致検出信号が与えられた場合の前記回路20および2
1の動作については後述することにして、最初は、これ
らの一致検出信号がない場合の動作について説明する。
さて、前記アドレスバッファ回路40および41からの
格納要求情報とその出力とは、それぞれのアドレスバッ
ファ出力ライン80および81を介し、それぞれの前記
オペランド用キャッシュメモリ制御回路20および前記
命令用キャッシュメモリ制御回路21に供給されている
。
、CPUIが命令をメモリアドレスから読み出す要求を
出す場合に、読み出すべき命令のメモリアドレスが供給
され、もしこのメモリアドレスが前記アドレスバッファ
回路41に格納されているいずれかのメモリアドレスと
一致する場合には前記検出回路61は一致検出信号を命
令用キャッシュメモリ制御回路21に与える。これらの
一致検出信号が与えられた場合の前記回路20および2
1の動作については後述することにして、最初は、これ
らの一致検出信号がない場合の動作について説明する。
さて、前記アドレスバッファ回路40および41からの
格納要求情報とその出力とは、それぞれのアドレスバッ
ファ出力ライン80および81を介し、それぞれの前記
オペランド用キャッシュメモリ制御回路20および前記
命令用キャッシュメモリ制御回路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へ
の格納処理が別になされるようになっている。
データを格納するような型の命令が現われた場合には、
その命令のしかるべきステップにおいて、メモリアドレ
スは前記バッファ回路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へ
の格納処理が別になされるようになっている。
すなわち、前記回路40,41および回路50,51に
一時格納されているデータは、もともと主記憶装置4の
指定されたメモリアドレスに書き込むためのデータであ
り、上述の第3のアドレスバッファ回路と第3のデータ
バッファ回路とは、主記憶装置4に対する池回路からの
アクセスの空き時間を利用して、前記データを主記憶装
置4に格納するために、そのデータを一時格納しておく
バッファである。このように、主記憶装置4への格納に
対しては、独立したルートが別に設けられているので、
前記キャッシュメモリ30に格納すべきメモリアドレス
が有効に存在しない場合には、とくにこれに対して特別
な処理を行なう必要はない。さて、上に述べたオペラン
ド用キャッシュメモリ301こ対するのと全く同じ形の
処理が命令用キャッシュメモリ31に対しても行なわれ
る。
一時格納されているデータは、もともと主記憶装置4の
指定されたメモリアドレスに書き込むためのデータであ
り、上述の第3のアドレスバッファ回路と第3のデータ
バッファ回路とは、主記憶装置4に対する池回路からの
アクセスの空き時間を利用して、前記データを主記憶装
置4に格納するために、そのデータを一時格納しておく
バッファである。このように、主記憶装置4への格納に
対しては、独立したルートが別に設けられているので、
前記キャッシュメモリ30に格納すべきメモリアドレス
が有効に存在しない場合には、とくにこれに対して特別
な処理を行なう必要はない。さて、上に述べたオペラン
ド用キャッシュメモリ301こ対するのと全く同じ形の
処理が命令用キャッシュメモリ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からの一致検出信号が存在しない
場合の動作であるが、何れかの一致検出信号がある場合
には下記のようになる。
分がデータをもっている場合には、前記バッファ出力ラ
イン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からの一致検出信号が存在しない
場合の動作であるが、何れかの一致検出信号がある場合
には下記のようになる。
今、前述のようにCPU1からのオペランド謙出し要求
があり、そのオペランドのメモリアドレスが、前記オペ
ランド用アドレスバッファ回路40の中に格納されてい
るあるデータ(アドレス)と一致したとすると、前述オ
ペランド用一致検出回路60は一致検出信号をオペラン
ド用キャッシュメモリ制御回路2川こ与える。
があり、そのオペランドのメモリアドレスが、前記オペ
ランド用アドレスバッファ回路40の中に格納されてい
るあるデータ(アドレス)と一致したとすると、前述オ
ペランド用一致検出回路60は一致検出信号をオペラン
ド用キャッシュメモリ制御回路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)の可能なバッファ回路を用い、かつ制御方式を
わずかに変更するだけで、これらを一つのバッファ回路
にまとめることもできる。
要求を優先して受付け、前記一致がおこったアドレスま
での前記回路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)の可能なバッファ回路を用い、かつ制御方式を
わずかに変更するだけで、これらを一つのバッファ回路
にまとめることもできる。
また、オペランド用データバッファ回路50と命令用デ
ータバッファ回路51とさらに主記憶装置用の第3のデ
ータバッファ回路とに対しても全く同様にして一つのバ
ッファ回路にまとめることもできる。また、上の実施例
では、一致検出回路60または61で一致が検出された
場合に、その一致が検出されたアドレスに対応するデー
タまでを他に優先してFIFOでキャッシュメモリ30
または31に書き込むように制御したが、このかわりに
、一致がおこったアドレスのデータだけを他に優先して
キャッシュメモ川こ書き込むように制御することもでき
る。
ータバッファ回路51とさらに主記憶装置用の第3のデ
ータバッファ回路とに対しても全く同様にして一つのバ
ッファ回路にまとめることもできる。また、上の実施例
では、一致検出回路60または61で一致が検出された
場合に、その一致が検出されたアドレスに対応するデー
タまでを他に優先してFIFOでキャッシュメモリ30
または31に書き込むように制御したが、このかわりに
、一致がおこったアドレスのデータだけを他に優先して
キャッシュメモ川こ書き込むように制御することもでき
る。
このように制御すると、一般に、構成は複雑になるが処
理速度は改善される。以上述べたように、本発明を用い
ることにより、オペランド用キャッシュメモリと命令用
キャッシュメモリとを別々に装備しキャッシュのヒット
率およびスルーブットを高めかつパイプライン方式の先
行制御を行なうCPUをもつ情報処理装置のパイプライ
ンの流れの乱れによる時間損失を改善しかつ先行制御に
よるオペランドの先取りや命令の先取りの結果生ずる問
題を解決したキャッシュメモリ制御装置を提供すること
ができる。
理速度は改善される。以上述べたように、本発明を用い
ることにより、オペランド用キャッシュメモリと命令用
キャッシュメモリとを別々に装備しキャッシュのヒット
率およびスルーブットを高めかつパイプライン方式の先
行制御を行なうCPUをもつ情報処理装置のパイプライ
ンの流れの乱れによる時間損失を改善しかつ先行制御に
よるオペランドの先取りや命令の先取りの結果生ずる問
題を解決したキャッシュメモリ制御装置を提供すること
ができる。
これにより情報処理装置の処理効率が改善できるという
効果がある。
効果がある。
第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図
めの図および第3図は本発明の一実施例を示す図である
。 第3図において、1……中央処理装置 (CPU)、2・・・・・・オペランドアドレス出力ラ
イン、3・・・・・・ストアデータ出力ライン、4・・
・・・・主記憶装置、5・・・・・・命令議出し要求ラ
イン、20・・・・・・オペランド用キャッシュメモリ
制御回路、21…・・・命令用キャッシュメモリ、30
・・・・・・オペランド用キャッシュメモリ、31・・
・・・・命令用キャッシュメモリ、40……オペランド
用アドレスバッファ回路、41・…・・命令用アドレス
バッファ回路、50・・・・・・オペランド用データバ
ッファ回路、51・・・…命令用データバッファ回路、
60・・・・・・オペランド用アドレス一致検出回路、
61・・・・・・命令用アドレス一致検出回路、70・
・・・・・オペランド用アドレス比較ライン、71・・
・・・・命令用アドレス比較ライン、80……オペラン
ド用アドレスバッファ出力ライン、81・・・・・・命
令用アドレスバッファ出力ライン溝′図 第2図 第3図
Claims (1)
- 1 主記憶装置と中央処理装置とキヤツシユメモリとを
含む情報処理装置用のキヤツシユメモリ制御装置におい
て、 前記主記憶装置に記憶されている命令情報の一部
を一時的に記憶し前記主記憶装置の代りに前記中央処理
装置との間で命令情報の授受を行なう命令用キヤツシユ
メモリと、 前記主記憶装置に記憶されているオペラン
ド情報の一部を一時的に記憶し前記主記憶装置の代りに
前記中央処理装置との間でオペランド情報の授受を行な
うオペランド用キヤツシユメモリと、前記中央処理装置
から前記主記憶装置へのストア要求に応答してストアア
ドレス情報とストアデータ情報とをそれぞれ受け取り一
時的に記憶しストア要求を発生するキヤツシユストアバ
ツフア回路と、 前記中央処理装置からの命令読出し要
求アドレス情報と前記キヤツシユストアバツフア回路に
一時的に記憶されている全てのアドレス情報とを比較し
一致アドレス情報が検出されると命令アドレス一致検出
情報を発生する命令アドレス一致検出回路と、 前記中
央処理装置からのオペランド読出し要求アドレス情報と
前記キヤツシユストアバツフア回路に一時的に記憶され
ている全てのアドレス情報とを比較し一致アドレス情報
が検出されるとオペランドアドレス一致検出情報を発生
するオペランドアドレス一致検出回路と、 前記中央処
理装置からの命令読出し要求に応答して前記命令用キヤ
ツシユメモリにその要求アドレスが存在するか否かをチ
エツクし要求アドレスがあれば該命令用キヤツシユメモ
リから要求アドレスの命令情報を読み出し要求アドレス
がなければ前記主記憶装置から前記要求アドレスの命令
情報を読み出し前記命令用キヤツシユメモリに記憶する
よう制御し、 前記キヤツシユストアバツフア回路から
のストア要求に応答して前記命令用キヤツシユメモリに
該ストアアドレスが存在するか否かをチエツクし要求ア
ドレスがあれば前記ストアバツフア回路からのストア情
報を該命令用キヤツシユメモリの要求アドレスにストア
するよう制御し、 前記命令アドレス一致検出情報が発
生した場合には前記キヤツシユストアバツフア回路から
のストア要求を優先して処理するように制御する命令用
キヤツシユメモリ制御回路と、 前記中央処理装置から
のオペランド読出し要求に応答して前記オペランド用キ
ヤツシユメモリにその要求アドレスが存在するか否かを
チエツクし要求アドレスがあれば該オペランド用キヤツ
シユメモリから要求アドレスのオペランド情報を読み出
し要求アドレスがなければ前記主記憶装置から前記要求
アドレスのオペランド情報を読み出し前記オペランド用
キヤツシユメモリに記憶するよう制御し、 前記キヤツ
シユストアバツフア回路からのストア要求に応答して前
記オペランド用キヤツシユメモリに該ストアアドレスが
存在するか否かをチエツクし要求アドレスがあれば前記
ストアバツフア回路からのストア情報を該オペランド用
キヤツシユメモリの要求アドレスにストアするよう制御
し、 前記オペランドアドレス一致検出情報が発生した
場合には前記キヤツシユストアバツフア回路からのスト
ア要求を優先して処理するように制御するオペランド用
キヤツシユメモリ制御回路とを含むことを特徴とするキ
ヤツシユメモリ制御装置。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP55118627A JPS6022376B2 (ja) | 1980-08-28 | 1980-08-28 | キャッシュメモリ制御装置 |
| 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 (fr) | 1980-08-22 | 1981-08-21 | Agencement d'antememoires comprenant une antememoire tampon en combinaison avec une paire d'antememoires |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP55118627A JPS6022376B2 (ja) | 1980-08-28 | 1980-08-28 | キャッシュメモリ制御装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS5744279A JPS5744279A (en) | 1982-03-12 |
| JPS6022376B2 true JPS6022376B2 (ja) | 1985-06-01 |
Family
ID=14741207
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP55118627A Expired JPS6022376B2 (ja) | 1980-08-22 | 1980-08-28 | キャッシュメモリ制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6022376B2 (ja) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS60123936A (ja) * | 1983-12-07 | 1985-07-02 | Fujitsu Ltd | バッフア記憶制御方式 |
| 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 (ja) | 1994-07-04 | 2001-05-08 | 富士通株式会社 | データ処理装置 |
| JP2006242338A (ja) * | 2005-03-04 | 2006-09-14 | Jms Co Ltd | コネクタ及び接続構造 |
| GB2426082B (en) * | 2005-05-09 | 2007-08-15 | Sony Comp Entertainment Europe | Memory caching in data processing |
-
1980
- 1980-08-28 JP JP55118627A patent/JPS6022376B2/ja not_active Expired
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 (ja) | 情報処理装置 | |
| US5594884A (en) | Cache memory system having a plurality of ports | |
| JPS6324428A (ja) | キヤツシユメモリ | |
| US5313602A (en) | Multiprocessor system and method of control over order of transfer of data between buffer storages | |
| JPH02239331A (ja) | データ処理システム及びその命令実行を促進する方法 | |
| JPH0410102B2 (ja) | ||
| JPS5829187A (ja) | キヤツシユメモリ制御装置 | |
| US5724548A (en) | System including processor and cache memory and method of controlling the cache memory | |
| JPH1063574A (ja) | キャッシュメモリ付プロセッサ | |
| JP2000047942A (ja) | キャッシュメモリ制御装置及びその制御方法 | |
| JPH0210450A (ja) | キヤツシユメモリの先行フエツチ制御方式 | |
| JP2703255B2 (ja) | キャッシュメモリ書込み装置 | |
| JPH08272608A (ja) | パイプライン処理装置 | |
| JPS6135583B2 (ja) | ||
| JPH04340145A (ja) | キャッシュメモリ装置 | |
| JPH0646381B2 (ja) | 命令取出し装置 | |
| JPH0148571B2 (ja) | ||
| JPH01251248A (ja) | スタックデータ構造用キャッシュ制御方式 | |
| JPH07152650A (ja) | キャッシュ制御装置 | |
| JPS581247A (ja) | 命令先取り制御方法 | |
| JP2588547B2 (ja) | マルチcpuシステム | |
| JPH08166905A (ja) | キャッシュメモリ制御方法 | |
| JPH01129334A (ja) | キャッシュメモリのデータ制御方式 |