JPH086853A - 記憶制御方法 - Google Patents
記憶制御方法Info
- Publication number
- JPH086853A JPH086853A JP6139946A JP13994694A JPH086853A JP H086853 A JPH086853 A JP H086853A JP 6139946 A JP6139946 A JP 6139946A JP 13994694 A JP13994694 A JP 13994694A JP H086853 A JPH086853 A JP H086853A
- Authority
- JP
- Japan
- Prior art keywords
- data
- instruction
- buffer
- storage device
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 同一のブロック内に要求命令と要求データが
同時に存在するような場合に、記憶システム全体の性能
を高める記憶制御方法を提供すること。 【構成】 命令フェッチ時において、データ選択手段
(80)は、要求命令が命令キャッシュ(50)内にな
く、命令キャッシュ用バッファ(20)内にもないが、
データキャッシュ用バッファ(21)内に存在する場合
に、該命令を命令処理装置(100)へ出力するように
して命令フェッチを高速化できる。データフェッチの場
合、データ選択手段(81)は、要求データがデータキ
ャッシュ(51)内になく、データキャッシュ用バッフ
ァ(21)内にもないが、命令キャッシュ用バッファ
(20)内に存在する場合に、該データを命令処理装置
(100)へ出力するようにしてデータフェッチを高速
化できる。
同時に存在するような場合に、記憶システム全体の性能
を高める記憶制御方法を提供すること。 【構成】 命令フェッチ時において、データ選択手段
(80)は、要求命令が命令キャッシュ(50)内にな
く、命令キャッシュ用バッファ(20)内にもないが、
データキャッシュ用バッファ(21)内に存在する場合
に、該命令を命令処理装置(100)へ出力するように
して命令フェッチを高速化できる。データフェッチの場
合、データ選択手段(81)は、要求データがデータキ
ャッシュ(51)内になく、データキャッシュ用バッフ
ァ(21)内にもないが、命令キャッシュ用バッファ
(20)内に存在する場合に、該データを命令処理装置
(100)へ出力するようにしてデータフェッチを高速
化できる。
Description
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プロセッサと主記憶装
置との間にキャッシュ記憶装置を有する記憶システムに
おける記憶制御方法に関し、特に、キャッシュ記憶装置
として命令用キャッシュとデータ用キャッシュを別々に
設けるとともに、それぞれに命令キャッシュ用バッファ
とデータキャッシュ用バッファを有する記憶制御方法に
関する。
置との間にキャッシュ記憶装置を有する記憶システムに
おける記憶制御方法に関し、特に、キャッシュ記憶装置
として命令用キャッシュとデータ用キャッシュを別々に
設けるとともに、それぞれに命令キャッシュ用バッファ
とデータキャッシュ用バッファを有する記憶制御方法に
関する。
【0002】
【従来の技術】従来の計算機システムにおいて、プロセ
ッサと主記憶装置との間に主記憶装置より高速かつ小容
量な記憶装置を設けることによって、主記憶装置に対す
るアクセスを高速化することが一般的に行われている。
この場合の高速かつ小容量の記憶装置は一般にキャッシ
ュ記憶装置と呼ばれる(以下、このような記憶装置を単
に「キャッシュ」ともいう)。プロセッサは、必要なデ
ータがキャッシュ内に存在する場合、キャッシュとの間
でデータの授受を行う。キャッシュに存在しない場合
は、キャッシュは主記憶装置との間でデータ(例えば12
8バイト等のブロック単位のデータ)の授受を行う。通
常、キャッシュ記憶装置には、キャッシュ内に必要なデ
ータが存在するかしないかを判定するため、キャッシュ
記憶装置に保持されている有効なブロックの主記憶装置
における実アドレスを記憶するキャッシュ記憶装置用タ
グが備わっている。データ参照時に前記キャッシュ記憶
装置用タグを参照し、登録されているアドレスと命令処
理装置からのアドレスとを比較し、一致した場合、前記
キャッシュ記憶装置内に所望のブロックが存在すること
を表す。この状態をキャッシュヒットと呼ぶ。アドレス
比較の結果、一致しなかった場合はキャッシュ記憶装置
内に所望のブロックが存在しないことを表す。この状態
をキャッシュミスと呼ぶ。以上は主記憶装置とキャッシ
ュから成る2階層メモリの例であるが、この概念は2階
層以上の記憶装置に拡張できる。
ッサと主記憶装置との間に主記憶装置より高速かつ小容
量な記憶装置を設けることによって、主記憶装置に対す
るアクセスを高速化することが一般的に行われている。
この場合の高速かつ小容量の記憶装置は一般にキャッシ
ュ記憶装置と呼ばれる(以下、このような記憶装置を単
に「キャッシュ」ともいう)。プロセッサは、必要なデ
ータがキャッシュ内に存在する場合、キャッシュとの間
でデータの授受を行う。キャッシュに存在しない場合
は、キャッシュは主記憶装置との間でデータ(例えば12
8バイト等のブロック単位のデータ)の授受を行う。通
常、キャッシュ記憶装置には、キャッシュ内に必要なデ
ータが存在するかしないかを判定するため、キャッシュ
記憶装置に保持されている有効なブロックの主記憶装置
における実アドレスを記憶するキャッシュ記憶装置用タ
グが備わっている。データ参照時に前記キャッシュ記憶
装置用タグを参照し、登録されているアドレスと命令処
理装置からのアドレスとを比較し、一致した場合、前記
キャッシュ記憶装置内に所望のブロックが存在すること
を表す。この状態をキャッシュヒットと呼ぶ。アドレス
比較の結果、一致しなかった場合はキャッシュ記憶装置
内に所望のブロックが存在しないことを表す。この状態
をキャッシュミスと呼ぶ。以上は主記憶装置とキャッシ
ュから成る2階層メモリの例であるが、この概念は2階
層以上の記憶装置に拡張できる。
【0003】キャッシュ記憶装置はRAMで構成される
が、一般に、RAMは書き込みと読出しを同時に行うこと
はできない。キャッシュミスを起こし、主記憶装置から
転送されたブロックを書き込み中であるキャッシュに対
して読出しアクセスが発生した場合、キャッシュへの読
出しアクセスはデータブロックの書き込みが終了するま
で受け付けられず、データの読み出しまでに待ち時間を
要し、計算機システムの性能が低下する。例えばブロッ
クの単位が128バイト、主記憶装置―キャッシュ間のデ
ータ幅が32バイトである場合、キャッシュへの書き込み
開始から終了までの4サイクルの間、キャッシュへのア
クセスができない。
が、一般に、RAMは書き込みと読出しを同時に行うこと
はできない。キャッシュミスを起こし、主記憶装置から
転送されたブロックを書き込み中であるキャッシュに対
して読出しアクセスが発生した場合、キャッシュへの読
出しアクセスはデータブロックの書き込みが終了するま
で受け付けられず、データの読み出しまでに待ち時間を
要し、計算機システムの性能が低下する。例えばブロッ
クの単位が128バイト、主記憶装置―キャッシュ間のデ
ータ幅が32バイトである場合、キャッシュへの書き込み
開始から終了までの4サイクルの間、キャッシュへのア
クセスができない。
【0004】この問題を解決するための従来技術として
は、図5に示すように、主記憶装置(10)とキャッシ
ュ(50)の間にキャッシュ用バッファ(20)を設け
る方法がある。このキャッシュ用バッファ(20)は、
例えば1ブロック分の容量を持つレジスタであり、主記
憶装置(10)から要求ブロックが着き次第、転送路
(60)およびデータ選択手段(80)を介して命令処
理装置(100)へ転送することができる。これにより
命令処理装置(100)はキャッシュへの書き込み開始
から終了まで待つことなく、キャッシュ用バッファへブ
ロックが到着した直後に当該ブロック内データへアクセ
スすることが可能になる。キャッシュ用バッファへ転送
されたブロックは、次に発生したキャッシュミスなどの
命令処理装置の空き時間等を利用してキャッシュへ転送
され、その後、主記憶装置から送られてくる新たなブロ
ックを格納する。例えば、特開昭63―101943号
公報「キャッシュムーブイン制御方式」および特開昭6
4―29953号公報「バッファ記憶システムにおける
バッファムーブイン制御装置」には、主記憶装置とキャ
ッシュの間に「ムーブインバッファ」と呼ばれるバッフ
ァを設ける方法が開示されている。この方法によると、
キャッシュミスを起こした命令処理装置は、主記憶装置
から全ブロックが転送されるのを待つことなく、必要な
データがバッファに着き次第、読み出しを行うことがで
きる。バッファへ転送されたデータブロックは次に発生
したキャッシュミス時にキャッシュへ書き込まれる。
は、図5に示すように、主記憶装置(10)とキャッシ
ュ(50)の間にキャッシュ用バッファ(20)を設け
る方法がある。このキャッシュ用バッファ(20)は、
例えば1ブロック分の容量を持つレジスタであり、主記
憶装置(10)から要求ブロックが着き次第、転送路
(60)およびデータ選択手段(80)を介して命令処
理装置(100)へ転送することができる。これにより
命令処理装置(100)はキャッシュへの書き込み開始
から終了まで待つことなく、キャッシュ用バッファへブ
ロックが到着した直後に当該ブロック内データへアクセ
スすることが可能になる。キャッシュ用バッファへ転送
されたブロックは、次に発生したキャッシュミスなどの
命令処理装置の空き時間等を利用してキャッシュへ転送
され、その後、主記憶装置から送られてくる新たなブロ
ックを格納する。例えば、特開昭63―101943号
公報「キャッシュムーブイン制御方式」および特開昭6
4―29953号公報「バッファ記憶システムにおける
バッファムーブイン制御装置」には、主記憶装置とキャ
ッシュの間に「ムーブインバッファ」と呼ばれるバッフ
ァを設ける方法が開示されている。この方法によると、
キャッシュミスを起こした命令処理装置は、主記憶装置
から全ブロックが転送されるのを待つことなく、必要な
データがバッファに着き次第、読み出しを行うことがで
きる。バッファへ転送されたデータブロックは次に発生
したキャッシュミス時にキャッシュへ書き込まれる。
【0005】また、特開平3―22053号公報「ムー
ブ・イン・バッファ制御方式」には、主記憶装置とキャ
ッシュの間に前述したようなバッファを複数個設ける方
法が開示されている。ここではバッファを複数個持つこ
とにより、上記問題点を解決すると同時に、連続したデ
ータ要求が発生しても主記憶装置の応答順に依存するこ
となく演算プロセッサの待ち時間を低減することが可能
となる。なお、命令フェッチとデータフェッチ間のアク
セス競合を低減させるために、上記キャッシュの技術を
データアクセスと命令フェッチにそれぞれに適用し、デ
ータの読み出し時に当該データを含むメモリブロックを
格納するデータ用キャッシュと命令のフェッチ時に当該
命令を含むメモリブロックを格納する命令用キャッシュ
を別々に設けることも従来から知られている。
ブ・イン・バッファ制御方式」には、主記憶装置とキャ
ッシュの間に前述したようなバッファを複数個設ける方
法が開示されている。ここではバッファを複数個持つこ
とにより、上記問題点を解決すると同時に、連続したデ
ータ要求が発生しても主記憶装置の応答順に依存するこ
となく演算プロセッサの待ち時間を低減することが可能
となる。なお、命令フェッチとデータフェッチ間のアク
セス競合を低減させるために、上記キャッシュの技術を
データアクセスと命令フェッチにそれぞれに適用し、デ
ータの読み出し時に当該データを含むメモリブロックを
格納するデータ用キャッシュと命令のフェッチ時に当該
命令を含むメモリブロックを格納する命令用キャッシュ
を別々に設けることも従来から知られている。
【0006】
【発明が解決しようとする課題】上述した主記憶装置と
キャッシュの間にキャッシュ用バッファを設けて演算プ
ロセッサによるアクセスの高速化を図る技術と、命令用
のキャッシュとデータ用のキャッシュを別々に設けてア
クセスの競合を低減する技術を単に組み合わせ、命令キ
ャッシュとデータキャッシュそれぞれにキャッシュ用バ
ッファを設けた場合、従来は命令フェッチの場合は命令
キャッシュ側だけから命令をフェッチし、データフェッ
チの場合はデータキャッシュ側だけからデータをフェッ
チしていたため、次のような問題点がある。すなわち、
命令フェッチ時に要求命令がデータキャッシュ用バッフ
ァ内に存在してもアクセスできず、主記憶装置から要求
命令を含んだブロックを命令キャッシュ用バッファへ転
送した後、命令キャッシュ用バッファへアクセスしなけ
ればならない。また逆に、データフェッチ時に要求デー
タが命令キャッシュ用バッファ内に存在してもアクセス
できず、主記憶装置から要求データを含んだブロックを
データキャッシュ用バッファへ転送した後、データキャ
ッシュ用バッファへアクセスしなければならない。この
ようなケースは、同一のブロック内に要求命令と要求デ
ータが同時に存在するような場合に起こる。本発明の目
的は、上記のような場合に、いちいち主記憶装置からキ
ャッシュ用バッファへのブロック転送を行わず、バッフ
ァ間で転送することにより、階層メモリシステム全体の
性能を高めるようにした記憶制御方法を提供することで
ある。
キャッシュの間にキャッシュ用バッファを設けて演算プ
ロセッサによるアクセスの高速化を図る技術と、命令用
のキャッシュとデータ用のキャッシュを別々に設けてア
クセスの競合を低減する技術を単に組み合わせ、命令キ
ャッシュとデータキャッシュそれぞれにキャッシュ用バ
ッファを設けた場合、従来は命令フェッチの場合は命令
キャッシュ側だけから命令をフェッチし、データフェッ
チの場合はデータキャッシュ側だけからデータをフェッ
チしていたため、次のような問題点がある。すなわち、
命令フェッチ時に要求命令がデータキャッシュ用バッフ
ァ内に存在してもアクセスできず、主記憶装置から要求
命令を含んだブロックを命令キャッシュ用バッファへ転
送した後、命令キャッシュ用バッファへアクセスしなけ
ればならない。また逆に、データフェッチ時に要求デー
タが命令キャッシュ用バッファ内に存在してもアクセス
できず、主記憶装置から要求データを含んだブロックを
データキャッシュ用バッファへ転送した後、データキャ
ッシュ用バッファへアクセスしなければならない。この
ようなケースは、同一のブロック内に要求命令と要求デ
ータが同時に存在するような場合に起こる。本発明の目
的は、上記のような場合に、いちいち主記憶装置からキ
ャッシュ用バッファへのブロック転送を行わず、バッフ
ァ間で転送することにより、階層メモリシステム全体の
性能を高めるようにした記憶制御方法を提供することで
ある。
【0007】
【課題を解決するための手段】本発明(図1参照)は、
上記目的を達成するために、データキャッシュ用バッフ
ァ(21)中に格納されたブロックを命令キャッシュ用
バッファ(20)へ転送する転送路(61b)および転
送路を選択する手段(82)を設けている。このデータ
選択手段(82)は、データキャッシュ用バッファ(2
1)内に要求命令が存在するか否かを判定する手段を有
している。また、命令処理装置(100)へデータキャ
ッシュ用バッファ(21)中の要求命令を転送する転送
路(62b)および転送路を選択する手段(80)を有
している。このデータ選択手段(80)は、命令キャッ
シュ用バッファ(20)内に要求命令が存在するか否
か、およびデータキャッシュ用バッファ(21)内に要
求命令が存在するか否かを判定する手段を有する。
上記目的を達成するために、データキャッシュ用バッフ
ァ(21)中に格納されたブロックを命令キャッシュ用
バッファ(20)へ転送する転送路(61b)および転
送路を選択する手段(82)を設けている。このデータ
選択手段(82)は、データキャッシュ用バッファ(2
1)内に要求命令が存在するか否かを判定する手段を有
している。また、命令処理装置(100)へデータキャ
ッシュ用バッファ(21)中の要求命令を転送する転送
路(62b)および転送路を選択する手段(80)を有
している。このデータ選択手段(80)は、命令キャッ
シュ用バッファ(20)内に要求命令が存在するか否
か、およびデータキャッシュ用バッファ(21)内に要
求命令が存在するか否かを判定する手段を有する。
【0008】さらに、命令キャッシュ用バッファ(2
0)中に格納されたブロックをデータキャッシュ用バッ
ファ(21)へ転送する転送路(61a)および転送路
を選択する手段(83)を設けている。このデータ選択
手段(83)は、命令キャッシュ用バッファ(20)内
に要求データが存在するか否かを判定する手段を有して
いる。また、命令処理装置(100)へ命令キャッシュ
用バッファ(20)中の要求データを転送する転送路
(62a)および転送路を選択する手段(81)を有し
ている。このデータ選択手段(81)は、命令キャッシ
ュ用バッファ(20)内に要求データが存在するか否
か、およびデータキャッシュ用バッファ(21)内に要
求データが存在するか否かを判定する手段を有する。
0)中に格納されたブロックをデータキャッシュ用バッ
ファ(21)へ転送する転送路(61a)および転送路
を選択する手段(83)を設けている。このデータ選択
手段(83)は、命令キャッシュ用バッファ(20)内
に要求データが存在するか否かを判定する手段を有して
いる。また、命令処理装置(100)へ命令キャッシュ
用バッファ(20)中の要求データを転送する転送路
(62a)および転送路を選択する手段(81)を有し
ている。このデータ選択手段(81)は、命令キャッシ
ュ用バッファ(20)内に要求データが存在するか否
か、およびデータキャッシュ用バッファ(21)内に要
求データが存在するか否かを判定する手段を有する。
【0009】
【作用】本発明は、命令フェッチ時に、要求命令が命令
キャッシュ(50)内になく、命令キャッシュ用バッフ
ァ(20)内にもないが、データキャッシュ用バッファ
(21)内に存在する場合に、データ選択手段(80)
により、要求命令を命令処理装置(100)へ出力する
ようにして命令フェッチを高速化できる(図2の命令フ
ェッチ時のCASE3参照)。その他の場合は従来技術
と同様に動作する。また、上記手段において、データフ
ェッチ時に、要求データがデータキャッシュ(51)内
になく、データキャッシュ用バッファ(21)内にもな
いが、命令キャッシュ用バッファ(20)内に存在する
場合に、データ選択手段(81)により、データを命令
処理装置(100)へ出力するようにしてデータフェッ
チを高速化できる(図2のデータフェッチ時のCASE
3参照)。その他の場合は従来技術と同様に動作する。
キャッシュ(50)内になく、命令キャッシュ用バッフ
ァ(20)内にもないが、データキャッシュ用バッファ
(21)内に存在する場合に、データ選択手段(80)
により、要求命令を命令処理装置(100)へ出力する
ようにして命令フェッチを高速化できる(図2の命令フ
ェッチ時のCASE3参照)。その他の場合は従来技術
と同様に動作する。また、上記手段において、データフ
ェッチ時に、要求データがデータキャッシュ(51)内
になく、データキャッシュ用バッファ(21)内にもな
いが、命令キャッシュ用バッファ(20)内に存在する
場合に、データ選択手段(81)により、データを命令
処理装置(100)へ出力するようにしてデータフェッ
チを高速化できる(図2のデータフェッチ時のCASE
3参照)。その他の場合は従来技術と同様に動作する。
【0010】
【実施例】以下、本発明の実施例を詳細に説明する。図
1は本発明の実施例の構成図である。同図において、1
0は主記憶装置、20は命令キャッシュ用バッファ、2
1はデータキャッシュ用バッファ、30は命令キャッシ
ュ用バッファのタグ、31はデータキャッシュ用バッフ
ァのタグ、40は命令キャッシュ用タグ、41はデータ
キャッシュ用タグ、50は命令用キャッシュ、51はデ
ータ用キャッシュ、80〜87はデータ選択手段、60
a〜64bは転送路、70は比較器、100は命令処理
装置である。本実施例において、データキャッシュミス
が起きたとき、主記憶装置(10)から転送路(14
0)を介してブロックデータを転送しデータキャッシュ
用バッファ(21)へ格納する。また、命令処理装置
(100)から送られてきたデータ用アドレスの少なく
とも一部が転送路(121)を介してデータキャッシュ
・バッファ用のタグ(31)へ格納される。これは従来
のデータキャッシュミス時の動作と同じである。
1は本発明の実施例の構成図である。同図において、1
0は主記憶装置、20は命令キャッシュ用バッファ、2
1はデータキャッシュ用バッファ、30は命令キャッシ
ュ用バッファのタグ、31はデータキャッシュ用バッフ
ァのタグ、40は命令キャッシュ用タグ、41はデータ
キャッシュ用タグ、50は命令用キャッシュ、51はデ
ータ用キャッシュ、80〜87はデータ選択手段、60
a〜64bは転送路、70は比較器、100は命令処理
装置である。本実施例において、データキャッシュミス
が起きたとき、主記憶装置(10)から転送路(14
0)を介してブロックデータを転送しデータキャッシュ
用バッファ(21)へ格納する。また、命令処理装置
(100)から送られてきたデータ用アドレスの少なく
とも一部が転送路(121)を介してデータキャッシュ
・バッファ用のタグ(31)へ格納される。これは従来
のデータキャッシュミス時の動作と同じである。
【0011】この状態で命令アクセスが起きたとき、命
令処理装置(100)から転送路(120)を介して送
られてきた命令用要求アドレスの少なくとも一部を、命
令キャッシュ用タグ(40)、命令キャッシュ用バッフ
ァのタグ(30)とともに、データキャッシュ用バッフ
ァのタグ(31)へ、転送路(63a)およびデータ選
択手段(85)を介して入力する。データキャッシュ用
バッファのタグ(31)の出力アドレスと転送路(12
0)の命令用要求アドレスを比較器71で比較し、その
結果、要求命令がデータキャッシュ用バッファ(21)
中に格納されていることが判明(一致)すると、データ
キャッシュ用バッファ(21)中に格納されたブロック
を転送路(61b)、(62b)およびデータ選択手段
(80)を介して命令処理装置(100)へ転送する。
ここでデータ選択手段(80)は、データキャッシュ用
バッファのタグ(31)中に格納されたアドレスと転送
路(120)の命令用要求アドレスを比較器71で比較
し、一致した場合はデータキャッシュ用バッファ(2
1)から命令処理装置(100)へ命令を転送する転送
路(62b)を選択する。
令処理装置(100)から転送路(120)を介して送
られてきた命令用要求アドレスの少なくとも一部を、命
令キャッシュ用タグ(40)、命令キャッシュ用バッフ
ァのタグ(30)とともに、データキャッシュ用バッフ
ァのタグ(31)へ、転送路(63a)およびデータ選
択手段(85)を介して入力する。データキャッシュ用
バッファのタグ(31)の出力アドレスと転送路(12
0)の命令用要求アドレスを比較器71で比較し、その
結果、要求命令がデータキャッシュ用バッファ(21)
中に格納されていることが判明(一致)すると、データ
キャッシュ用バッファ(21)中に格納されたブロック
を転送路(61b)、(62b)およびデータ選択手段
(80)を介して命令処理装置(100)へ転送する。
ここでデータ選択手段(80)は、データキャッシュ用
バッファのタグ(31)中に格納されたアドレスと転送
路(120)の命令用要求アドレスを比較器71で比較
し、一致した場合はデータキャッシュ用バッファ(2
1)から命令処理装置(100)へ命令を転送する転送
路(62b)を選択する。
【0012】また、命令キャッシュ用バッファのタグ
(30)中に格納されたアドレスと転送路(120)の
命令用要求アドレスを比較器72で比較し、一致した場
合は命令キャッシュ用バッファ(20)から命令処理装
置(100)へ命令を転送する転送路(60a)を選択
する。これ以外は命令キャッシュ(50)から命令処理
装置(100)へ命令を転送する転送路を選択する。
(30)中に格納されたアドレスと転送路(120)の
命令用要求アドレスを比較器72で比較し、一致した場
合は命令キャッシュ用バッファ(20)から命令処理装
置(100)へ命令を転送する転送路(60a)を選択
する。これ以外は命令キャッシュ(50)から命令処理
装置(100)へ命令を転送する転送路を選択する。
【0013】データを命令処理装置(100)へ転送し
た後、次のデータキャッシュミスに備えてデータキャッ
シュ用バッファ(21)およびそのタグ(31)を空に
しなければならない。そのため、まず命令キャッシュ用
バッファ(20)内に存在するブロックおよびタグ(3
0)内に存在するブロックのアドレスを命令キャッシュ
(50)およびそのタグ(40)に書き込んだ後、デー
タキャッシュ用バッファ(21)中のブロックおよびそ
のタグ(31)中のブロックアドレスをそれぞれ、命令
キャッシュ用バッファ(20)およびそのタグ(30)
に、転送路(61b)、(64b)およびデータ選択手
段(82)、(84)を介して転送する。
た後、次のデータキャッシュミスに備えてデータキャッ
シュ用バッファ(21)およびそのタグ(31)を空に
しなければならない。そのため、まず命令キャッシュ用
バッファ(20)内に存在するブロックおよびタグ(3
0)内に存在するブロックのアドレスを命令キャッシュ
(50)およびそのタグ(40)に書き込んだ後、デー
タキャッシュ用バッファ(21)中のブロックおよびそ
のタグ(31)中のブロックアドレスをそれぞれ、命令
キャッシュ用バッファ(20)およびそのタグ(30)
に、転送路(61b)、(64b)およびデータ選択手
段(82)、(84)を介して転送する。
【0014】ここでデータ選択手段(82)は、データ
キャッシュ用バッファのタグ(31)中に格納されたア
ドレスと転送路120の命令用要求アドレスを比較器7
1で比較し、一致した場合は命令キャッシュ用バッファ
(20)へデータキャッシュ用バッファ(21)中に格
納されたブロックを転送する転送路(61b)を選択
し、それ以外は主記憶装置(10)からの転送路を選択
する。またデータ選択手段(84)は、データキャッシ
ュ用バッファのタグ(31)中に格納されたアドレスと
転送路120の命令用要求アドレスを比較器71で比較
し、一致した場合は命令キャッシュ用バッファのタグ
(30)へデータキャッシュ用バッファのタグ(31)
中に格納されたブロックアドレスを転送する転送路(6
4b)を選択し、それ以外は命令処理装置(100)か
ら送られてくる命令用要求アドレスまたはデータ用要求
アドレスを選択する。
キャッシュ用バッファのタグ(31)中に格納されたア
ドレスと転送路120の命令用要求アドレスを比較器7
1で比較し、一致した場合は命令キャッシュ用バッファ
(20)へデータキャッシュ用バッファ(21)中に格
納されたブロックを転送する転送路(61b)を選択
し、それ以外は主記憶装置(10)からの転送路を選択
する。またデータ選択手段(84)は、データキャッシ
ュ用バッファのタグ(31)中に格納されたアドレスと
転送路120の命令用要求アドレスを比較器71で比較
し、一致した場合は命令キャッシュ用バッファのタグ
(30)へデータキャッシュ用バッファのタグ(31)
中に格納されたブロックアドレスを転送する転送路(6
4b)を選択し、それ以外は命令処理装置(100)か
ら送られてくる命令用要求アドレスまたはデータ用要求
アドレスを選択する。
【0015】また命令キャッシュミスが起きたとき、主
記憶装置(10)から命令キャッシュ用バッファ(2
0)へ転送路(140)を介してブロックを転送し格納
する。また命令キャッシュ用バッファのタグ(30)へ
命令用アドレスの少なくとも一部が転送路(120)を
介して格納される。これは従来の命令キャッシュミス時
の動作と同じである。この状態でデータアクセスが起き
た時、データキャッシュ用タグ(41)、データキャッ
シュ用バッファのタグ(31)とともに、命令キャッシ
ュバッファ用タグ(30)へ、転送路(121)を介し
てデータ用要求アドレスの少なくとも一部を入力する。
命令キャッシュ用バッファのタグ(30)の出力アドレ
スと転送路121のデータ用要求アドレスを比較器74
で比較し、その結果、要求データが命令キャッシュ用バ
ッファ(20)中に格納されていることが判明(一致)
すると、命令キャッシュ用バッファ(20)中に格納さ
れたブロックを転送路(61a)、(62a)およびデ
ータ選択手段(81)を介して要求データを命令処理装
置(100)へ転送する。ここでデータ選択手段(8
1)は、命令キャッシュ用バッファのタグ(30)中に
格納されたアドレスと転送路121のデータ用要求アド
レスを比較器74で比較し、一致した場合は命令キャッ
シュ用バッファ(20)から命令処理装置(100)へ
データを転送する転送路(62a)を選択する。また、
データキャッシュ用バッファのタグ(31)中に格納さ
れたアドレスと転送路121のデータ用要求アドレスを
比較器75で比較し、一致した場合はデータキャッシュ
用バッファ(21)から命令処理装置(100)へデー
タを転送する転送路(60b)を選択する。これ以外は
データキャッシュ(51)から命令処理装置(100)
へデータを転送する転送路を選択する。
記憶装置(10)から命令キャッシュ用バッファ(2
0)へ転送路(140)を介してブロックを転送し格納
する。また命令キャッシュ用バッファのタグ(30)へ
命令用アドレスの少なくとも一部が転送路(120)を
介して格納される。これは従来の命令キャッシュミス時
の動作と同じである。この状態でデータアクセスが起き
た時、データキャッシュ用タグ(41)、データキャッ
シュ用バッファのタグ(31)とともに、命令キャッシ
ュバッファ用タグ(30)へ、転送路(121)を介し
てデータ用要求アドレスの少なくとも一部を入力する。
命令キャッシュ用バッファのタグ(30)の出力アドレ
スと転送路121のデータ用要求アドレスを比較器74
で比較し、その結果、要求データが命令キャッシュ用バ
ッファ(20)中に格納されていることが判明(一致)
すると、命令キャッシュ用バッファ(20)中に格納さ
れたブロックを転送路(61a)、(62a)およびデ
ータ選択手段(81)を介して要求データを命令処理装
置(100)へ転送する。ここでデータ選択手段(8
1)は、命令キャッシュ用バッファのタグ(30)中に
格納されたアドレスと転送路121のデータ用要求アド
レスを比較器74で比較し、一致した場合は命令キャッ
シュ用バッファ(20)から命令処理装置(100)へ
データを転送する転送路(62a)を選択する。また、
データキャッシュ用バッファのタグ(31)中に格納さ
れたアドレスと転送路121のデータ用要求アドレスを
比較器75で比較し、一致した場合はデータキャッシュ
用バッファ(21)から命令処理装置(100)へデー
タを転送する転送路(60b)を選択する。これ以外は
データキャッシュ(51)から命令処理装置(100)
へデータを転送する転送路を選択する。
【0016】データを命令処理装置(100)へ転送し
た後、次の命令キャッシュミスに備えて命令キャッシュ
用バッファ(20)およびそのタグ(30)を空にしな
ければならない。そのため、まずデータキャッシュ用バ
ッファ(21)内に存在するブロックおよびタグ(3
1)内に存在するブロックのアドレスをデータキャッシ
ュ(51)およびそのタグ(41)に書き込んだ後、命
令キャッシュ用バッファ(20)中のブロックおよびそ
のタグ(30)中のブロックアドレスをそれぞれ、デー
タキャッシュ用バッファ(21)およびそのタグ(3
1)に、転送路(61a)、(64a)およびデータ選
択手段(83)、(85)を介して書き込む。
た後、次の命令キャッシュミスに備えて命令キャッシュ
用バッファ(20)およびそのタグ(30)を空にしな
ければならない。そのため、まずデータキャッシュ用バ
ッファ(21)内に存在するブロックおよびタグ(3
1)内に存在するブロックのアドレスをデータキャッシ
ュ(51)およびそのタグ(41)に書き込んだ後、命
令キャッシュ用バッファ(20)中のブロックおよびそ
のタグ(30)中のブロックアドレスをそれぞれ、デー
タキャッシュ用バッファ(21)およびそのタグ(3
1)に、転送路(61a)、(64a)およびデータ選
択手段(83)、(85)を介して書き込む。
【0017】データ選択手段(83)は、命令キャッシ
ュ・バッファ用タグ(30)中に格納されたアドレスと
転送路121のデータ用要求アドレスを比較器74で比
較し、一致した場合はデータキャッシュ用バッファ(2
1)へ命令キャッシュ用バッファ(20)中に格納され
たブロックを転送する転送路(61a)を選択し、それ
以外は主記憶装置(10)からの転送路を選択する。ま
たデータ選択手段(85)は、命令キャッシュ・バッフ
ァ用タグ(30)中に格納されたアドレスと転送路12
1のデータ用要求アドレスを比較器74で比較し、一致
した場合はデータキャッシュ用バッファのタグ(31)
へ命令キャッシュ用バッファのタグ(30)中に格納さ
れたブロックアドレスを転送する転送路(64a)を選
択し、それ以外は命令処理装置(100)から送られて
くる命令/データ用要求アドレスを選択する。
ュ・バッファ用タグ(30)中に格納されたアドレスと
転送路121のデータ用要求アドレスを比較器74で比
較し、一致した場合はデータキャッシュ用バッファ(2
1)へ命令キャッシュ用バッファ(20)中に格納され
たブロックを転送する転送路(61a)を選択し、それ
以外は主記憶装置(10)からの転送路を選択する。ま
たデータ選択手段(85)は、命令キャッシュ・バッフ
ァ用タグ(30)中に格納されたアドレスと転送路12
1のデータ用要求アドレスを比較器74で比較し、一致
した場合はデータキャッシュ用バッファのタグ(31)
へ命令キャッシュ用バッファのタグ(30)中に格納さ
れたブロックアドレスを転送する転送路(64a)を選
択し、それ以外は命令処理装置(100)から送られて
くる命令/データ用要求アドレスを選択する。
【0018】図2は、上記図1に関連して説明した本発
明の実施例の動作を一覧にして表したものである。図2
(a)は、命令フェッチ時において、各キャッシュおよ
び各バッファがヒットしたか否かとそのときの命令の読
出し元を一覧表で示したものである。CASE1は命令
キャッシュにヒットした場合には該命令キャッシュから
命令をフェッチすることを、CASE2は命令キャッシ
ュがキャッシュミス、命令キャッシュ用バッファがヒッ
トした場合には該命令キャッシュ用バッファから命令を
フェッチすることを、CASE4は命令キャッシュ、命
令キャッシュ用バッファ、データキャッシュ用バッファ
がともにキャッシュミスの場合は主記憶装置から直接フ
ェッチすることを意味している。以上のCASE1、
2、4は従来技術と同じである。同図(a)のCASE
3の場合が本発明の特徴とする動作であり、命令キャッ
シュおよび命令キャッシュ用バッファがキャッシュミス
で、データキャッシュ用バッファがヒットした場合に
は、該データキャッシュ用バッファから命令をフェッチ
することを意味している。
明の実施例の動作を一覧にして表したものである。図2
(a)は、命令フェッチ時において、各キャッシュおよ
び各バッファがヒットしたか否かとそのときの命令の読
出し元を一覧表で示したものである。CASE1は命令
キャッシュにヒットした場合には該命令キャッシュから
命令をフェッチすることを、CASE2は命令キャッシ
ュがキャッシュミス、命令キャッシュ用バッファがヒッ
トした場合には該命令キャッシュ用バッファから命令を
フェッチすることを、CASE4は命令キャッシュ、命
令キャッシュ用バッファ、データキャッシュ用バッファ
がともにキャッシュミスの場合は主記憶装置から直接フ
ェッチすることを意味している。以上のCASE1、
2、4は従来技術と同じである。同図(a)のCASE
3の場合が本発明の特徴とする動作であり、命令キャッ
シュおよび命令キャッシュ用バッファがキャッシュミス
で、データキャッシュ用バッファがヒットした場合に
は、該データキャッシュ用バッファから命令をフェッチ
することを意味している。
【0019】図2(b)は、データフェッチ時におい
て、各キャッシュおよび各バッファがヒットしたか否か
とそのときの命令の読出し元を一覧表で示したものであ
る。CASE1はデータキャッシュにヒットした場合に
は該データキャッシュからデータをフェッチすること
を、CASE2はデータキャッシュがキャッシュミス、
データキャッシュ用バッファがヒットした場合には該デ
ータキャッシュ用バッファからデータをフェッチするこ
とを、CASE4はデータキャッシュ、データキャッシ
ュ用バッファ、命令キャッシュ用バッファがともにキャ
ッシュミスの場合は主記憶装置から直接フェッチするこ
とを意味している。以上のCASE1、2、4は従来技
術と同じである。同図(b)のCASE3の場合が本発
明の特徴とする動作であり、データキャッシュおよびデ
ータキャッシュ用バッファがキャッシュミスで、命令キ
ャッシュ用バッファがヒットした場合には、該命令キャ
ッシュ用バッファから命令をフェッチすることを意味し
ている。
て、各キャッシュおよび各バッファがヒットしたか否か
とそのときの命令の読出し元を一覧表で示したものであ
る。CASE1はデータキャッシュにヒットした場合に
は該データキャッシュからデータをフェッチすること
を、CASE2はデータキャッシュがキャッシュミス、
データキャッシュ用バッファがヒットした場合には該デ
ータキャッシュ用バッファからデータをフェッチするこ
とを、CASE4はデータキャッシュ、データキャッシ
ュ用バッファ、命令キャッシュ用バッファがともにキャ
ッシュミスの場合は主記憶装置から直接フェッチするこ
とを意味している。以上のCASE1、2、4は従来技
術と同じである。同図(b)のCASE3の場合が本発
明の特徴とする動作であり、データキャッシュおよびデ
ータキャッシュ用バッファがキャッシュミスで、命令キ
ャッシュ用バッファがヒットした場合には、該命令キャ
ッシュ用バッファから命令をフェッチすることを意味し
ている。
【0020】次に、上記の動作およびタイミングを図3
を用いて詳細に説明する。以下は要求命令および要求デ
ータが同一ブロック内に存在し、かつキャッシュ内およ
びバッファ内にブロックが存在しないため、従来技術で
は命令キャッシュミスまたはデータキャッシュミスを起
こす場合である。図中の命令は5段のパイプライン処理
(命令アドレスの決定、命令キャッシュ参照、命令解読
/データアドレスの決定、データキャッシュ参照、命令
の実行)により実行されるものとする。命令フェッチに
おいてキャッシュミスを起こし、主記憶装置(10)か
ら当該命令が入っているブロックを命令キャッシュ用バ
ッファ(20)に転送し、再び処理を再開するまで、命
令処理装置が7サイクル空き時間になるものとする。ま
た、ブロックサイズを128バイト、キャッシュへ書き
込むデータ幅を32バイトとする。故にこの定義では、
キャッシュへのブロック書き込みに4サイクルかかるこ
とになる。
を用いて詳細に説明する。以下は要求命令および要求デ
ータが同一ブロック内に存在し、かつキャッシュ内およ
びバッファ内にブロックが存在しないため、従来技術で
は命令キャッシュミスまたはデータキャッシュミスを起
こす場合である。図中の命令は5段のパイプライン処理
(命令アドレスの決定、命令キャッシュ参照、命令解読
/データアドレスの決定、データキャッシュ参照、命令
の実行)により実行されるものとする。命令フェッチに
おいてキャッシュミスを起こし、主記憶装置(10)か
ら当該命令が入っているブロックを命令キャッシュ用バ
ッファ(20)に転送し、再び処理を再開するまで、命
令処理装置が7サイクル空き時間になるものとする。ま
た、ブロックサイズを128バイト、キャッシュへ書き
込むデータ幅を32バイトとする。故にこの定義では、
キャッシュへのブロック書き込みに4サイクルかかるこ
とになる。
【0021】図中の命令は、命令フェッチとデータフェ
ッチが同一ブロックに対して発生し、いずれもキャッシ
ュ(50、51)中およびバッファ(20、21)内に
要求命令およびデータが存在しないものとしている。そ
のため、命令は命令キャッシュミスを起こす(図中のA
01)。命令処理装置が処理を再開するまでの7サイク
ルの間に、前回の命令キャッシュミス時に主記憶装置
(10)から命令キャッシュ用バッファ(20)に格納
された命令ブロックを命令キャッシュ(50)に書き込
む(A02)。書き込み終了後は命令キャッシュ用バッ
ファ(20)中のブロックは無効化され、主記憶装置
(10)からの新たなデータブロックの上書きが行われ
てもよい状態になる。定義した7サイクル後、命令キャ
ッシュ用バッファ(20)に要求命令を含むブロックが
転送され(A04)、命令キャッシュ用バッファのタグ
(30)へ対応する要求アドレスが格納され(A0
3)、命令処理装置が処理を再開する。命令アクセスに
引き続いて起こるデータアクセスでは、データキャッシ
ュ参照のステージにおいて、データキャッシュ用タグ
(41)、データキャッシュバッファ用タグ(31)お
よび命令キャッシュ用バッファのタグ(30)とデータ
用要求アドレスとを比較する。データキャッシュ用タグ
(41)およびデータキャッシュバッファ用タグ(3
1)では一致しないが(A06)、命令キャッシュ用バ
ッファ(20)に要求命令を含むブロックが転送されて
いるため(A04)、命令キャッシュ用バッファのタグ
(30)とで一致する(A05)。次命令以降の命令キ
ャッシュミスに備えて命令キャッシュ用バッファ(2
0)内のブロックを空にする必要があるため、まずデー
タキャッシュ用バッファ(21)内のデータブロックを
データキャッシュ(51)へ転送した後(A07)、命
令キャッシュ用バッファ(20)中のブロックをデータ
キャッシュ用バッファ(21)へ転送する(A08)。
データキャッシュ用バッファに転送されたデータブロッ
クは次命令から利用される。以上の動作が完了するまで
データキャッシュ(51)へのアクセスを禁止する必要
がある。これにより従来例では必要であった主記憶装置
(10)からデータキャッシュ用バッファ(21)への
ブロック転送は不要になる。これにより従来方式と比べ
て命令実行サイクルの短縮が図れる(図中では7サイク
ル短縮)。
ッチが同一ブロックに対して発生し、いずれもキャッシ
ュ(50、51)中およびバッファ(20、21)内に
要求命令およびデータが存在しないものとしている。そ
のため、命令は命令キャッシュミスを起こす(図中のA
01)。命令処理装置が処理を再開するまでの7サイク
ルの間に、前回の命令キャッシュミス時に主記憶装置
(10)から命令キャッシュ用バッファ(20)に格納
された命令ブロックを命令キャッシュ(50)に書き込
む(A02)。書き込み終了後は命令キャッシュ用バッ
ファ(20)中のブロックは無効化され、主記憶装置
(10)からの新たなデータブロックの上書きが行われ
てもよい状態になる。定義した7サイクル後、命令キャ
ッシュ用バッファ(20)に要求命令を含むブロックが
転送され(A04)、命令キャッシュ用バッファのタグ
(30)へ対応する要求アドレスが格納され(A0
3)、命令処理装置が処理を再開する。命令アクセスに
引き続いて起こるデータアクセスでは、データキャッシ
ュ参照のステージにおいて、データキャッシュ用タグ
(41)、データキャッシュバッファ用タグ(31)お
よび命令キャッシュ用バッファのタグ(30)とデータ
用要求アドレスとを比較する。データキャッシュ用タグ
(41)およびデータキャッシュバッファ用タグ(3
1)では一致しないが(A06)、命令キャッシュ用バ
ッファ(20)に要求命令を含むブロックが転送されて
いるため(A04)、命令キャッシュ用バッファのタグ
(30)とで一致する(A05)。次命令以降の命令キ
ャッシュミスに備えて命令キャッシュ用バッファ(2
0)内のブロックを空にする必要があるため、まずデー
タキャッシュ用バッファ(21)内のデータブロックを
データキャッシュ(51)へ転送した後(A07)、命
令キャッシュ用バッファ(20)中のブロックをデータ
キャッシュ用バッファ(21)へ転送する(A08)。
データキャッシュ用バッファに転送されたデータブロッ
クは次命令から利用される。以上の動作が完了するまで
データキャッシュ(51)へのアクセスを禁止する必要
がある。これにより従来例では必要であった主記憶装置
(10)からデータキャッシュ用バッファ(21)への
ブロック転送は不要になる。これにより従来方式と比べ
て命令実行サイクルの短縮が図れる(図中では7サイク
ル短縮)。
【0022】上記の実施例がそのまま実装できるのは、
RISCチップなどワンチップ上に命令用キャッシュおよび
データ用キャッシュが実装できる場合である。ワンチッ
プ上に実装できずに別々のLSIチップ上に命令用キャッ
シュとデータ用キャッシュを実装しなければならない場
合、図1の実施例を実現した場合、データ・キャッシュ
を搭載したチップと命令キャッシュを搭載したチップ間
のインタフェースは大規模なものとなってしまう。そこ
でチップ間インタフェースを減らすため、図4に示した
ように、命令キャッシュ用バッファ(20)に格納され
るブロックのコピーを保持するためのバッファ(23)
をデータキャッシュ(51)が搭載されたチップ1(1
11)上に、また逆に、データキャッシュ用バッファ
(21)に格納されるブロックのコピーを保持するため
のバッファ(22)を命令キャッシュ(50)が搭載さ
れたチップ0(110)上にそれぞれ設ける。このコピ
ー格納バッファおよびそのタグを参照することにより異
なるチップ上のバッファおよびそのタグを参照する必要
がなくなりチップ間のインタフェースを削減することが
できる。また同様の理由により、前記命令キャッシュ用
バッファのコピー格納バッファ用のタグ(33)をチッ
プ1(111)上に、データキャッシュ用バッファのコ
ピー格納バッファ用のタグ(32)をチップ0(11
0)上に、それぞれ設ける。上記構成図を図4に示す。
図4においてデータ選択手段(88)と(84)の両方
が図1におけるデータ選択手段(84)に、また図4の
データ選択手段(89)(85)が図1のデータ選択手
段(85)に対応する。図4の実施例の動作は図1と同
様である。
RISCチップなどワンチップ上に命令用キャッシュおよび
データ用キャッシュが実装できる場合である。ワンチッ
プ上に実装できずに別々のLSIチップ上に命令用キャッ
シュとデータ用キャッシュを実装しなければならない場
合、図1の実施例を実現した場合、データ・キャッシュ
を搭載したチップと命令キャッシュを搭載したチップ間
のインタフェースは大規模なものとなってしまう。そこ
でチップ間インタフェースを減らすため、図4に示した
ように、命令キャッシュ用バッファ(20)に格納され
るブロックのコピーを保持するためのバッファ(23)
をデータキャッシュ(51)が搭載されたチップ1(1
11)上に、また逆に、データキャッシュ用バッファ
(21)に格納されるブロックのコピーを保持するため
のバッファ(22)を命令キャッシュ(50)が搭載さ
れたチップ0(110)上にそれぞれ設ける。このコピ
ー格納バッファおよびそのタグを参照することにより異
なるチップ上のバッファおよびそのタグを参照する必要
がなくなりチップ間のインタフェースを削減することが
できる。また同様の理由により、前記命令キャッシュ用
バッファのコピー格納バッファ用のタグ(33)をチッ
プ1(111)上に、データキャッシュ用バッファのコ
ピー格納バッファ用のタグ(32)をチップ0(11
0)上に、それぞれ設ける。上記構成図を図4に示す。
図4においてデータ選択手段(88)と(84)の両方
が図1におけるデータ選択手段(84)に、また図4の
データ選択手段(89)(85)が図1のデータ選択手
段(85)に対応する。図4の実施例の動作は図1と同
様である。
【0023】
【発明の効果】本発明によれば、主記憶装置からキャッ
シュ記憶装置へのデータ転送回数を削減することがで
き、それによって命令処理装置の待ち時間を減少させ、
メモリシステムの全体的な性能を大幅に向上させること
が可能になった。
シュ記憶装置へのデータ転送回数を削減することがで
き、それによって命令処理装置の待ち時間を減少させ、
メモリシステムの全体的な性能を大幅に向上させること
が可能になった。
【図1】本発明の実施例の構成図である。
【図2】本発明の動作表である。
【図3】本発明の実施例の説明図である。
【図4】本発明の複数チップ上での実施例の構成図であ
る。
る。
【図5】従来例の構成図である。
10:主記憶装置、20:命令キャッシュ用バッファ、
21:データキャッシュ用バッファ、30:命令キャッ
シュ用バッファのタグ、31:データキャッシュ用バッ
ファのタグ、40:命令キャッシュ用タグ、41:デー
タキャッシュ用タグ、50:命令用キャッシュ、51:
データ用キャッシュ、80〜89:データ選択手段、6
0a〜64b:転送路、70:比較器、100:命令処
理装置、110〜111:チップ
21:データキャッシュ用バッファ、30:命令キャッ
シュ用バッファのタグ、31:データキャッシュ用バッ
ファのタグ、40:命令キャッシュ用タグ、41:デー
タキャッシュ用タグ、50:命令用キャッシュ、51:
データ用キャッシュ、80〜89:データ選択手段、6
0a〜64b:転送路、70:比較器、100:命令処
理装置、110〜111:チップ
Claims (6)
- 【請求項1】 命令処理装置から送出された命令用アド
レスの少なくとも一部を入力して、主記憶装置の一部の
ブロックのアドレスとデータを対にして保持する命令用
キャッシュ記憶装置と、命令処理装置から送出されたデ
ータ用アドレスの少なくとも一部を入力して、主記憶装
置の一部のブロックのアドレスとデータを対にして保持
するデータ用キャッシュ記憶装置と、前記主記憶装置か
ら転送された有効なブロックのアドレスとデータを対に
して保持する命令キャッシュ記憶装置用バッファと、前
記主記憶装置から転送された有効なブロックのアドレス
とデータを対にして保持するデータキャッシュ記憶装置
用バッファとを有する記憶システムにおいて、命令読出
し時に、前記データキャッシュ記憶装置用バッファのタ
グと命令処理装置から送出された命令用アドレスとを比
較し、該比較の結果、前記データキャッシュ記憶装置用
バッファ内に読出要求された命令が存在すると判明した
場合に、前記データキャッシュ記憶装置用バッファに格
納されたデータを前記命令キャッシュ記憶装置用バッフ
ァへ転送することを特徴とする記憶制御方法。 - 【請求項2】 命令処理装置から送出された命令用アド
レスの少なくとも一部を入力して、主記憶装置の一部の
ブロックのアドレスとデータを対にして保持する命令用
キャッシュ記憶装置と、命令処理装置から送出されたデ
ータ用アドレスの少なくとも一部を入力して、主記憶装
置の一部のブロックのアドレスとデータを対にして保持
するデータ用キャッシュ記憶装置と、前記主記憶装置か
ら転送された有効なブロックのアドレスとデータを対に
して保持する命令キャッシュ記憶装置用バッファと、前
記主記憶装置から転送された有効なブロックのアドレス
とデータを対にして保持するデータキャッシュ記憶装置
用バッファとを有する記憶システムにおいて、命令読出
し時に、前記データキャッシュ記憶装置用バッファのタ
グと命令処理装置から送出された命令用アドレスとを比
較し、前記データキャッシュ記憶装置用バッファ内に読
出要求された命令が存在すると判明した場合に、前記デ
ータキャッシュ記憶装置用バッファから命令処理装置へ
データを直接転送することを特徴とする記憶制御方法。 - 【請求項3】 請求項1または請求項2いずれかに記載
の記憶制御方法において、さらに、前記データキャッシ
ュ記憶装置用バッファのコピー格納バッファ、およびそ
のタグを記憶するタグ記憶手段を設け、命令読出し時
に、前記データキャッシュ記憶装置用バッファのコピー
格納用バッファのタグと命令処理装置から送出された命
令用アドレスとを比較し、該比較の結果、前記データキ
ャッシュ記憶装置用バッファのコピー格納バッファ内に
読出しデータが存在すると判明した場合に、前記データ
キャッシュ記憶装置用バッファのコピー格納バッファか
ら読出しデータを転送することを特徴とする記憶制御方
法。 - 【請求項4】 命令処理装置から送出された命令用アド
レスの少なくとも一部を入力して、主記憶装置の一部の
ブロックのアドレスとデータを対にして保持する命令用
キャッシュ記憶装置と、命令処理装置から送出されたデ
ータ用アドレスの少なくとも一部を入力して、主記憶装
置の一部のブロックのアドレスとデータを対にして保持
するデータ用キャッシュ記憶装置と、前記主記憶装置か
ら転送された有効なブロックのアドレスとデータを対に
して保持する命令キャッシュ記憶装置用バッファと、前
記主記憶装置から転送された有効なブロックのアドレス
とデータを対にして保持するデータキャッシュ記憶装置
用バッファとを有する記憶システムにおいて、データ読
出し時に前記命令キャッシュ記憶装置用バッファのタグ
と命令処理装置から送出されたデータ用アドレスとを比
較し、該比較の結果、前記命令キャッシュ記憶装置用バ
ッファ内に読出要求されたデータが存在すると判明した
場合に、前記命令キャッシュ記憶装置用バッファから前
記データキャッシュ記憶装置用バッファへデータを転送
することを特徴とする記憶制御方法。 - 【請求項5】 命令処理装置から送出された命令用アド
レスの少なくとも一部を入力して、主記憶装置の一部の
ブロックのアドレスとデータを対にして保持する命令用
キャッシュ記憶装置と、命令処理装置から送出されたデ
ータ用アドレスの少なくとも一部を入力して、主記憶装
置の一部のブロックのアドレスとデータを対にして保持
するデータ用キャッシュ記憶装置と、前記主記憶装置か
ら転送された有効なブロックのアドレスとデータを対に
して保持する命令キャッシュ記憶装置用バッファと、前
記主記憶装置から転送された有効なブロックのアドレス
とデータを対にして保持するデータキャッシュ記憶装置
用バッファとを有する記憶システムにおいて、データ読
出し時に、前記命令キャッシュ記憶装置用バッファのタ
グと命令処理装置から送出されたデータ用アドレスとを
比較し、前記命令キャッシュ記憶装置用バッファ内に読
出しデータが存在すると判明した場合に、前記命令キャ
ッシュ記憶装置用バッファから命令処理装置へブロック
のデータを直接転送することを特徴とする記憶制御方
法。 - 【請求項6】 請求項4または請求項5いずれかに記載
の記憶制御方法において、さらに、前記命令キャッシュ
記憶装置用バッファのコピー格納バッファおよびそのタ
グを記憶するタグ記憶手段を設け、データ読出し時に、
前記命令キャッシュ記憶装置用バッファのコピー格納用
バッファのタグと命令処理装置から送出されたデータ用
アドレスとを比較し、該比較の結果、前記命令キャッシ
ュ記憶装置用バッファのコピー格納バッファ内に読出し
データが存在すると判明した場合に、前記命令キャッシ
ュ記憶装置用バッファのコピー格納バッファから読出し
データを転送することを特徴とする記憶制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6139946A JPH086853A (ja) | 1994-06-22 | 1994-06-22 | 記憶制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6139946A JPH086853A (ja) | 1994-06-22 | 1994-06-22 | 記憶制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH086853A true JPH086853A (ja) | 1996-01-12 |
Family
ID=15257365
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6139946A Pending JPH086853A (ja) | 1994-06-22 | 1994-06-22 | 記憶制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH086853A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6442665B2 (en) | 2000-06-26 | 2002-08-27 | Fujitsu Limited | Data processing device |
| JP2009524168A (ja) * | 2006-01-20 | 2009-06-25 | クゥアルコム・インコーポレイテッド | 効率的なメモリ階層管理 |
-
1994
- 1994-06-22 JP JP6139946A patent/JPH086853A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6442665B2 (en) | 2000-06-26 | 2002-08-27 | Fujitsu Limited | Data processing device |
| JP2009524168A (ja) * | 2006-01-20 | 2009-06-25 | クゥアルコム・インコーポレイテッド | 効率的なメモリ階層管理 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5353426A (en) | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete | |
| US5283883A (en) | Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput | |
| US6496902B1 (en) | Vector and scalar data cache for a vector multiprocessor | |
| JP3729545B2 (ja) | キャッシュメモリへのアクセス | |
| US6496917B1 (en) | Method to reduce memory latencies by performing two levels of speculation | |
| JPS62102344A (ja) | バツフア・メモリ制御方式 | |
| US4737908A (en) | Buffer memory control system | |
| JPH086853A (ja) | 記憶制御方法 | |
| US6374344B1 (en) | Methods and apparatus for processing load instructions in the presence of RAM array and data bus conflicts | |
| JPH05233422A (ja) | メモリ参照要求処理方式 | |
| US6349370B1 (en) | Multiple bus shared memory parallel processor and processing method | |
| JPH09218823A (ja) | キャッシュメモリ制御装置 | |
| EP1426866A1 (en) | A method to reduce memory latencies by performing two levels of speculation | |
| JPH0210450A (ja) | キヤツシユメモリの先行フエツチ制御方式 | |
| JPH08137756A (ja) | アドレス変換バッファ機構 | |
| JPH07114509A (ja) | メモリアクセス装置 | |
| JP2762798B2 (ja) | 命令キャッシュを有するパイプライン構成の情報処理装置 | |
| JPH1185613A (ja) | キャッシュメモリ | |
| JPH05250258A (ja) | キャッシュ制御方式 | |
| JP2003044357A (ja) | キャッシュ先取り方式 | |
| JPH0798673A (ja) | キャッシュメモリを有するデータ処理装置 | |
| JPH02259945A (ja) | ストア処理方式 | |
| JPH06324999A (ja) | マルチプロセッサシステム | |
| JPH10207773A (ja) | バス接続装置 | |
| JPH0322053A (ja) | ムーブ・イン・バッファ制御方式 |