JPH0728701A - 計算機システム - Google Patents
計算機システムInfo
- Publication number
- JPH0728701A JPH0728701A JP5175118A JP17511893A JPH0728701A JP H0728701 A JPH0728701 A JP H0728701A JP 5175118 A JP5175118 A JP 5175118A JP 17511893 A JP17511893 A JP 17511893A JP H0728701 A JPH0728701 A JP H0728701A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage device
- data block
- address
- cache memory
- 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)【要約】
【構成】主記憶装置14上の第一の領域のデータを主記
憶装置14の第二の領域に転送する場合、読み込み命令
111により、主記憶装置14上の第一の領域のデータ
をキャッシュメモリ13に転送し、転送されたキャッシ
ュメモリ13上の領域のアドレスをデータブロックレジ
スタ12にセットする。次に、書き込み命令112によ
り、データブロックレジスタ12が指すキャッシュメモ
リ13上の領域のデータを主記憶装置上の第二の領域に
転送する。 【効果】従来使用していたキャッシュメモリ上のデータ
ブロックを必要としないため、キャッシュミス発生回数
の上限を転送元データをキャッシュメモリ上に転送する
回数に抑えることができ、この結果、データ転送処理を
高速に実行できる。
憶装置14の第二の領域に転送する場合、読み込み命令
111により、主記憶装置14上の第一の領域のデータ
をキャッシュメモリ13に転送し、転送されたキャッシ
ュメモリ13上の領域のアドレスをデータブロックレジ
スタ12にセットする。次に、書き込み命令112によ
り、データブロックレジスタ12が指すキャッシュメモ
リ13上の領域のデータを主記憶装置上の第二の領域に
転送する。 【効果】従来使用していたキャッシュメモリ上のデータ
ブロックを必要としないため、キャッシュミス発生回数
の上限を転送元データをキャッシュメモリ上に転送する
回数に抑えることができ、この結果、データ転送処理を
高速に実行できる。
Description
【0001】
【産業上の利用分野】本発明はキャッシュメモリを有す
る計算機システムに関する。
る計算機システムに関する。
【0002】
【従来の技術】最近の電子計算機に用いられる中央演算
処理装置(以下、CPU)は、アーキテクチャの改良、
VLSI化等の集積及び実装技術によって、ますます高
性能化,高速度化の傾向にある。また、このような電子
計算機に用いられる主記憶装置においても同様であり、
さらに、使用される記憶素子の集積技術により大容量化
の傾向にある。
処理装置(以下、CPU)は、アーキテクチャの改良、
VLSI化等の集積及び実装技術によって、ますます高
性能化,高速度化の傾向にある。また、このような電子
計算機に用いられる主記憶装置においても同様であり、
さらに、使用される記憶素子の集積技術により大容量化
の傾向にある。
【0003】しかし、CPUの動作速度は主記憶装置の
それと比べると数倍も速く、両者の間には性能上大きな
ギャップが存在している。そのため、CPUと主記憶装
置を直接接続すると、システム全体の性能が低下するこ
とが知られている。
それと比べると数倍も速く、両者の間には性能上大きな
ギャップが存在している。そのため、CPUと主記憶装
置を直接接続すると、システム全体の性能が低下するこ
とが知られている。
【0004】そこで、一般的には、CPUと主記憶装置
の間に、主記憶装置よりも高速アクセス可能なキャッシ
ュメモリを配置し、CPUと主記憶装置の動作速度のギ
ャップを補う工夫がなされている。
の間に、主記憶装置よりも高速アクセス可能なキャッシ
ュメモリを配置し、CPUと主記憶装置の動作速度のギ
ャップを補う工夫がなされている。
【0005】図2は従来の計算機システムの構成を示す
ブロック図である。図2において、キャッシュメモリ1
2は、主記憶装置14上のデータの一部を一時的に保持
するようにしたもので、保持したデータの主記憶装置1
4上のアドレスを記録するアドレスタグ装置133を有
している。キャッシュメモリ12にCPU11からのデ
ータアクセス要求があると、データブロック決定装置1
31は、要求されたデータのアドレスから要求データを
含む領域(以下、データブロック)のデータを保持する
データ記憶装置134上の領域(データブロック)を決
定する。アドレス判定装置132は、データブロック決
定装置により求められたデータブロックに現在保持さ
れ、アドレスタグ装置133に記録されているデータの
アドレスタグを、要求されたデータアドレスと比較し、
要求されたデータがデータ記憶装置134上にあるかど
うかを判定する。
ブロック図である。図2において、キャッシュメモリ1
2は、主記憶装置14上のデータの一部を一時的に保持
するようにしたもので、保持したデータの主記憶装置1
4上のアドレスを記録するアドレスタグ装置133を有
している。キャッシュメモリ12にCPU11からのデ
ータアクセス要求があると、データブロック決定装置1
31は、要求されたデータのアドレスから要求データを
含む領域(以下、データブロック)のデータを保持する
データ記憶装置134上の領域(データブロック)を決
定する。アドレス判定装置132は、データブロック決
定装置により求められたデータブロックに現在保持さ
れ、アドレスタグ装置133に記録されているデータの
アドレスタグを、要求されたデータアドレスと比較し、
要求されたデータがデータ記憶装置134上にあるかど
うかを判定する。
【0006】要求されたデータがデータ記憶装置134
上にある場合(キャッシュヒット)、CPU11はデー
タ記憶装置134上のデータを高速にアクセスできる。
要求されたデータがデータ記憶装置134上にない場合
(キャッシュミス)は、データ転送装置135が主記憶
装置14から要求データ含むデータブロックをデータブ
ロック決定装置131で求められたデータブロックに転
送し(ムーブイン)、そのデータブロックに転送された
データの主記憶装置14上のアドレスをアドレスタグ装
置133上に記憶し、その後CPU21がデータ記憶装
置134上に記憶された要求データをアクセスする。
上にある場合(キャッシュヒット)、CPU11はデー
タ記憶装置134上のデータを高速にアクセスできる。
要求されたデータがデータ記憶装置134上にない場合
(キャッシュミス)は、データ転送装置135が主記憶
装置14から要求データ含むデータブロックをデータブ
ロック決定装置131で求められたデータブロックに転
送し(ムーブイン)、そのデータブロックに転送された
データの主記憶装置14上のアドレスをアドレスタグ装
置133上に記憶し、その後CPU21がデータ記憶装
置134上に記憶された要求データをアクセスする。
【0007】図4はCPUからのデータアクセス要求が
あったときの基本的なデータアクセス処理フローを示し
ている。CPUからのアクセス要求がデータ読み込みの
場合、まず、データブロック決定装置131がアクセス
アドレスからデータ記憶装置134上の使用すべきデー
タブロックを決定する(ステップ301)。次に、対象
データブロックに保持されているデータが、CPU21
が要求したデータを含むデータであるかを、アドレスタ
グ記憶装置133に記憶されているアドレスタグとCP
Uの要求アドレスから判定する(ステップ302)。要
求データが対象データブロック上に存在していないと
き、対象データブロックに何らかのデータがあるか判定
し(ステップ303)、対象データブロック上に要求さ
れたデータでないデータがある場合、そのデータを主記
憶装置上に書き戻す必要があるかチェックし(ステップ
304)、書き戻す必要があれば、主記憶装置上に書き
戻す(ムーブアウト)。次に主記憶装置から要求された
データを含むデータブロックをデータ記憶装置134上
の対象データブロックにムーブインする。次に、ムーブ
インしたデータの主記憶装置上のアドレスをアドレスタ
グ記憶装置に記憶する。CPUはデータ記憶装置上に保
持されたデータを読み込む(ステップ401)。また、
CPUからのアクセス要求がデータ書き込み要求である
場合も同様であり、CPUはデータ記憶装置上に保持さ
れたデータに対して書き込みを行う(ステップ60
2)。
あったときの基本的なデータアクセス処理フローを示し
ている。CPUからのアクセス要求がデータ読み込みの
場合、まず、データブロック決定装置131がアクセス
アドレスからデータ記憶装置134上の使用すべきデー
タブロックを決定する(ステップ301)。次に、対象
データブロックに保持されているデータが、CPU21
が要求したデータを含むデータであるかを、アドレスタ
グ記憶装置133に記憶されているアドレスタグとCP
Uの要求アドレスから判定する(ステップ302)。要
求データが対象データブロック上に存在していないと
き、対象データブロックに何らかのデータがあるか判定
し(ステップ303)、対象データブロック上に要求さ
れたデータでないデータがある場合、そのデータを主記
憶装置上に書き戻す必要があるかチェックし(ステップ
304)、書き戻す必要があれば、主記憶装置上に書き
戻す(ムーブアウト)。次に主記憶装置から要求された
データを含むデータブロックをデータ記憶装置134上
の対象データブロックにムーブインする。次に、ムーブ
インしたデータの主記憶装置上のアドレスをアドレスタ
グ記憶装置に記憶する。CPUはデータ記憶装置上に保
持されたデータを読み込む(ステップ401)。また、
CPUからのアクセス要求がデータ書き込み要求である
場合も同様であり、CPUはデータ記憶装置上に保持さ
れたデータに対して書き込みを行う(ステップ60
2)。
【0008】このように、CPUは高速アクセスができ
るキャッシュメモリにアクセスし、アクセスされるデー
タがキャッシュメモリ上に存在しているときには高速に
データアクセスができる。
るキャッシュメモリにアクセスし、アクセスされるデー
タがキャッシュメモリ上に存在しているときには高速に
データアクセスができる。
【0009】また、データを書き込む際に、キャッシュ
メモリ上のデータブロックに含まれるデータを全て書き
替える場合には、キャッシュメモリ上のデータブロック
に書き込み先データを転送することなしに、直接対象デ
ータブロックに書き込みを行い、アドレスタグを更新す
る方法も提案されている。
メモリ上のデータブロックに含まれるデータを全て書き
替える場合には、キャッシュメモリ上のデータブロック
に書き込み先データを転送することなしに、直接対象デ
ータブロックに書き込みを行い、アドレスタグを更新す
る方法も提案されている。
【0010】なお、データ書き込み方法として、キャッ
シュメモリ上のデータブロックを入れ替えるときに主記
憶装置上にデータを書き戻すスワップ方式について述べ
たが、他の方式としてキャッシュメモリ上のデータブロ
ックに書き込むと同時に主記憶装置上のデータにも書き
込みを行うストアスルー方式がある。ストアスルー方式
では、キャッシュメモリ上のデータを追い出すときに、
主記憶装置へのデータの書き込みが不要であるため、図
4における処理303,304,305は不要である。
シュメモリ上のデータブロックを入れ替えるときに主記
憶装置上にデータを書き戻すスワップ方式について述べ
たが、他の方式としてキャッシュメモリ上のデータブロ
ックに書き込むと同時に主記憶装置上のデータにも書き
込みを行うストアスルー方式がある。ストアスルー方式
では、キャッシュメモリ上のデータを追い出すときに、
主記憶装置へのデータの書き込みが不要であるため、図
4における処理303,304,305は不要である。
【0011】
【発明が解決しようとする課題】上記のようなキャッシ
ュメモリを用いることで、キャッシュヒット時には、C
PUは高速にデータにアクセスすることができ、プログ
ラムを高速に実行可能となる。しかし、キャッシュミス
時には主記憶装置からキャッシュメモリ上にデータを転
送する必要があり、プログラムの実行に時間がかかる。
ュメモリを用いることで、キャッシュヒット時には、C
PUは高速にデータにアクセスすることができ、プログ
ラムを高速に実行可能となる。しかし、キャッシュミス
時には主記憶装置からキャッシュメモリ上にデータを転
送する必要があり、プログラムの実行に時間がかかる。
【0012】そのため、上記のようなキャッシュメモリ
を有する計算機システムにおいて、主記憶装置上の第一
の領域にあるデータを主記憶装置上の第二の領域に転送
するデータ転送処理を行う場合、以下のような問題点が
ある。
を有する計算機システムにおいて、主記憶装置上の第一
の領域にあるデータを主記憶装置上の第二の領域に転送
するデータ転送処理を行う場合、以下のような問題点が
ある。
【0013】(1)データ転送処理では、転送元データ
がキャッシュメモリ上にない場合、キャッシュメモリ上
にムーブインし、次に、転送先領域のデータがキャッシ
ュメモリ上にない場合、転送先である領域のデータをキ
ャッシュメモリ上にムーブインし、その後、キャッシュ
メモリ上の転送元データを、キャッシュメモリ上の転送
先領域に転送する。このように、転送元アドレスのデー
タと転送先アドレスのデータをキャッシュメモリ上に一
時的に保持する必要があり、転送するデータ量が大きい
ほどキャッシュミスを起こしやすい。そのため、データ
転送処理に時間がかかる。
がキャッシュメモリ上にない場合、キャッシュメモリ上
にムーブインし、次に、転送先領域のデータがキャッシ
ュメモリ上にない場合、転送先である領域のデータをキ
ャッシュメモリ上にムーブインし、その後、キャッシュ
メモリ上の転送元データを、キャッシュメモリ上の転送
先領域に転送する。このように、転送元アドレスのデー
タと転送先アドレスのデータをキャッシュメモリ上に一
時的に保持する必要があり、転送するデータ量が大きい
ほどキャッシュミスを起こしやすい。そのため、データ
転送処理に時間がかかる。
【0014】(2)プログラムがアクセスするアドレス
によっては主記憶装置上の転送元領域と転送先領域がキ
ャッシュメモリ上の同じデータブロックを使用する場合
が生じ、この場合、転送元データをムーブインした後、
転送先アドレスのデータをムーブインする際に、必ず、
キャッシュミスが発生する。さらに、データを転送する
単位がキャッシュメモリ上のデータブロックより小さい
場合、プログラムのアクセスパターンによって、転送元
データを読み込む時、転送先領域に書き込む時にキャッ
シュミスが発生し、一つのデータブロックを処理中に複
数のキャッシュミスが発生する。そのため、このような
同一のデータブロックを使用する場合のデータ転送は、
異なるデータブロックを用いる場合より、時間がかかる
ことがある。
によっては主記憶装置上の転送元領域と転送先領域がキ
ャッシュメモリ上の同じデータブロックを使用する場合
が生じ、この場合、転送元データをムーブインした後、
転送先アドレスのデータをムーブインする際に、必ず、
キャッシュミスが発生する。さらに、データを転送する
単位がキャッシュメモリ上のデータブロックより小さい
場合、プログラムのアクセスパターンによって、転送元
データを読み込む時、転送先領域に書き込む時にキャッ
シュミスが発生し、一つのデータブロックを処理中に複
数のキャッシュミスが発生する。そのため、このような
同一のデータブロックを使用する場合のデータ転送は、
異なるデータブロックを用いる場合より、時間がかかる
ことがある。
【0015】これら問題点を解決するために、プログラ
ムが、キャッシュメモリ上の、どのデータブロックを、
どのような順序でアクセスするかを、完全に把握し、プ
ログラム開発時に考慮することは困難である。
ムが、キャッシュメモリ上の、どのデータブロックを、
どのような順序でアクセスするかを、完全に把握し、プ
ログラム開発時に考慮することは困難である。
【0016】本発明の目的は、上述の如き従来技術にお
ける問題点を解消し、高速なデータ転送を可能とする計
算機システムを提供することにある。
ける問題点を解消し、高速なデータ転送を可能とする計
算機システムを提供することにある。
【0017】
【課題を解決するための手段】本発明は、上記目的を達
成するため、キャッシュメモリを有する計算機システム
において、主記憶装置上の指定された領域のデータを前
記キャッシュメモリへ転送し、転送された前記キャッシ
ュメモリ上の領域のアドレスを返す手段と、前記キャッ
シュメモリ上の指定された領域のデータを前記主記憶装
置の指定された領域に転送する手段を設ける。
成するため、キャッシュメモリを有する計算機システム
において、主記憶装置上の指定された領域のデータを前
記キャッシュメモリへ転送し、転送された前記キャッシ
ュメモリ上の領域のアドレスを返す手段と、前記キャッ
シュメモリ上の指定された領域のデータを前記主記憶装
置の指定された領域に転送する手段を設ける。
【0018】
【作用】本発明の計算機システムにおいて、主記憶装置
上の第一の領域から第二の領域にデータを転送する際、
まず、主記憶装置上の第一の領域のデータがキャッシュ
メモリ上に存在するか(キャッシュヒットか)どうかを
調べる。
上の第一の領域から第二の領域にデータを転送する際、
まず、主記憶装置上の第一の領域のデータがキャッシュ
メモリ上に存在するか(キャッシュヒットか)どうかを
調べる。
【0019】次に、キャッシュヒットでない(キャッシ
ュミス)とき、第一の領域のデータが転送されるキャッ
シュメモリ上の領域に、いま、存在するデータを主記憶
装置上に書き戻す必要があるかどうか調べる。
ュミス)とき、第一の領域のデータが転送されるキャッ
シュメモリ上の領域に、いま、存在するデータを主記憶
装置上に書き戻す必要があるかどうか調べる。
【0020】次に、キャッシュメモリ上に存在するデー
タを主記憶装置上に書き戻す必要があるなら、そのデー
タを主記憶装置上に書き戻す。
タを主記憶装置上に書き戻す必要があるなら、そのデー
タを主記憶装置上に書き戻す。
【0021】次に、主記憶装置上の第一の領域のデータ
を、前述した主記憶装置上の指定された領域のデータを
キャッシュメモリへ転送し、転送されたキャッシュメモ
リ上の領域のアドレスを返す手段により、キャッシュメ
モリ上に転送し、キャッシュメモリ上の転送された領域
を記憶する。
を、前述した主記憶装置上の指定された領域のデータを
キャッシュメモリへ転送し、転送されたキャッシュメモ
リ上の領域のアドレスを返す手段により、キャッシュメ
モリ上に転送し、キャッシュメモリ上の転送された領域
を記憶する。
【0022】次に、前述したキャッシュメモリ上の指定
された領域のデータを主記憶装置の指定された領域に転
送する手段により、上記処理で記憶したキャッシュメモ
リ上の領域のデータを主記憶装置上の第二の領域に転送
する。
された領域のデータを主記憶装置の指定された領域に転
送する手段により、上記処理で記憶したキャッシュメモ
リ上の領域のデータを主記憶装置上の第二の領域に転送
する。
【0023】このように、本発明の計算機システムによ
れば、主記憶装置上の第一の領域のデータを主記憶装置
上の第二の領域に転送するデータ転送処理を、主記憶装
置上の転送元領域を一時的に保持するキャッシュメモリ
上の領域だけを用いることで実現できる。この結果、従
来の問題点を解消し、高速なデータ転送が実現できる。
れば、主記憶装置上の第一の領域のデータを主記憶装置
上の第二の領域に転送するデータ転送処理を、主記憶装
置上の転送元領域を一時的に保持するキャッシュメモリ
上の領域だけを用いることで実現できる。この結果、従
来の問題点を解消し、高速なデータ転送が実現できる。
【0024】
【実施例】図1は、同実施例のシステム構成を示したブ
ロック図である。図1において、11はCPU、12は
データ記憶装置132のデータブロックのアドレスを有
するデータブロックレジスタ、14は主記憶装置、13
1はCPU11から要求されたデータアドレスから要求
データが保持されるデータブロックを決定するデータブ
ロック決定装置、134は主記憶装置14のデータを一
時的に保持するデータ記憶装置、133はデータ記憶装
置134が保持したデータの主記憶装置14上のアドレ
スを記憶するアドレスタグ記憶装置、135はデータ記
憶装置134と主記憶装置14の間のデータ転送を行う
データ転送装置、132は、CPUから要求されたデー
タアドレスと、このデータアドレスからデータブロック
決定装置131が決定したデータ記憶装置134上のデ
ータブロックに記憶されているデータの主記憶装置上の
アドレスを比較し、キャッシュヒット/ミスを判定する
アドレス判定装置、13は、データブロック決定装置1
31とアドレス判定装置132とアドレスタグ記憶装置
133とデータ記憶装置134とデータ転送装置135
を有するキャッシュメモリ、111は後述する読み込み
命令、112は後述する書き込み命令を示している。
ロック図である。図1において、11はCPU、12は
データ記憶装置132のデータブロックのアドレスを有
するデータブロックレジスタ、14は主記憶装置、13
1はCPU11から要求されたデータアドレスから要求
データが保持されるデータブロックを決定するデータブ
ロック決定装置、134は主記憶装置14のデータを一
時的に保持するデータ記憶装置、133はデータ記憶装
置134が保持したデータの主記憶装置14上のアドレ
スを記憶するアドレスタグ記憶装置、135はデータ記
憶装置134と主記憶装置14の間のデータ転送を行う
データ転送装置、132は、CPUから要求されたデー
タアドレスと、このデータアドレスからデータブロック
決定装置131が決定したデータ記憶装置134上のデ
ータブロックに記憶されているデータの主記憶装置上の
アドレスを比較し、キャッシュヒット/ミスを判定する
アドレス判定装置、13は、データブロック決定装置1
31とアドレス判定装置132とアドレスタグ記憶装置
133とデータ記憶装置134とデータ転送装置135
を有するキャッシュメモリ、111は後述する読み込み
命令、112は後述する書き込み命令を示している。
【0025】CPU11は、データブロック決定装置1
31にアクセス要求をだし、アドレス判定装置131の
結果によりキャッシュヒットである場合に、データ記憶
装置134のデータをアクセスし、キャッシュミスの場
合はデータ記憶装置上に要求データが転送されるまで停
止し、要求データがデータ記憶装置134上に転送され
てからデータ記憶装置134上の転送されたデータをア
クセスするようになっている。
31にアクセス要求をだし、アドレス判定装置131の
結果によりキャッシュヒットである場合に、データ記憶
装置134のデータをアクセスし、キャッシュミスの場
合はデータ記憶装置上に要求データが転送されるまで停
止し、要求データがデータ記憶装置134上に転送され
てからデータ記憶装置134上の転送されたデータをア
クセスするようになっている。
【0026】主記憶装置14は、プログラムが使用する
データ及びそのプログラム自体が格納されている。さら
に、主記憶装置はキャッシュメモリ上のデータ記憶装置
の管理単位であるデータブロックと同じ大きさのブロッ
クに分けられており、主記憶装置とキャッシュメモリの
間のデータの転送はこの単位で実行されるようになって
いる。
データ及びそのプログラム自体が格納されている。さら
に、主記憶装置はキャッシュメモリ上のデータ記憶装置
の管理単位であるデータブロックと同じ大きさのブロッ
クに分けられており、主記憶装置とキャッシュメモリの
間のデータの転送はこの単位で実行されるようになって
いる。
【0027】読み込み命令111では、読み込むデータ
ブロックに含まれるデータのアドレスを指定するように
なっている。読み込み命令が発行されると、読み込み命
令で指定されたアドレス(CPUが要求するアドレス)
のデータを含む主記憶装置のデータブロックをデータ記
憶装置134に転送し、データを保持したデータ記憶装
置134上のデータブロックのアドレスをデータブロッ
クレジスタ12にセットするようになっている。
ブロックに含まれるデータのアドレスを指定するように
なっている。読み込み命令が発行されると、読み込み命
令で指定されたアドレス(CPUが要求するアドレス)
のデータを含む主記憶装置のデータブロックをデータ記
憶装置134に転送し、データを保持したデータ記憶装
置134上のデータブロックのアドレスをデータブロッ
クレジスタ12にセットするようになっている。
【0028】書き込み命令112では、主記憶装置上の
アドレスを指定するようになっている。データブロック
レジスタが指すデータブロックのデータをCPUが要求
した主記憶装置14上のアドレスに書き込み、CPUが
要求したアドレスの古いデータがデータ記憶装置134
に残っている場合に、そのデータを無効にするようにな
っている。
アドレスを指定するようになっている。データブロック
レジスタが指すデータブロックのデータをCPUが要求
した主記憶装置14上のアドレスに書き込み、CPUが
要求したアドレスの古いデータがデータ記憶装置134
に残っている場合に、そのデータを無効にするようにな
っている。
【0029】データブロックレジスタ12は、読み込み
命令111によって、データを転送されたデータ記憶装
置134上のデータブロックのアドレスがセットされる
ようになっている。
命令111によって、データを転送されたデータ記憶装
置134上のデータブロックのアドレスがセットされる
ようになっている。
【0030】データブロック決定装置131は、CPU
が要求したデータアドレスから処理対象となるデータを
含むデータブロックが転送されるデータ記憶装置134
上のデータブロックを求めるようになっている。
が要求したデータアドレスから処理対象となるデータを
含むデータブロックが転送されるデータ記憶装置134
上のデータブロックを求めるようになっている。
【0031】アドレス判定装置132は、CPUからの
アクセス要求アドレスと、この要求アドレスからデータ
ブロック決定装置131で求められるデータブロックの
データの主記憶装置14上のアドレスを比較し、キャッ
シュヒット/ミスを判定するようになっている。
アクセス要求アドレスと、この要求アドレスからデータ
ブロック決定装置131で求められるデータブロックの
データの主記憶装置14上のアドレスを比較し、キャッ
シュヒット/ミスを判定するようになっている。
【0032】アドレスタグ記憶装置133は、データ記
憶装置134に保持しているデータの主記憶装置14上
のアドレスをタグデータとして記憶するようになってお
り、CPUがアクセス要求をだすと、要求アドレスから
データブロック決定装置が決定したデータブロックのデ
ータの主記憶装置上のアドレスをアドレス判定装置に渡
すようになっている。また、対応するデータブロックの
有効/無効を示す無効フラグとデータブロックのデータ
が書き換えられたことを示すダーティフラグをデータ記
憶装置上のデータブロックごとに持っている。無効フラ
グは対応するデータブロックにデータが何もない時と対
応するデータブロックが無効化された時にセットされ、
対応するデータブロックにデータが転送されたときにオ
フされるようになっている。また、ダーティフラグは対
応するデータブロックのデータが書き換えられた時にセ
ットされ、データブロックのデータが新たに転送された
ときにはオフされるようになっている。
憶装置134に保持しているデータの主記憶装置14上
のアドレスをタグデータとして記憶するようになってお
り、CPUがアクセス要求をだすと、要求アドレスから
データブロック決定装置が決定したデータブロックのデ
ータの主記憶装置上のアドレスをアドレス判定装置に渡
すようになっている。また、対応するデータブロックの
有効/無効を示す無効フラグとデータブロックのデータ
が書き換えられたことを示すダーティフラグをデータ記
憶装置上のデータブロックごとに持っている。無効フラ
グは対応するデータブロックにデータが何もない時と対
応するデータブロックが無効化された時にセットされ、
対応するデータブロックにデータが転送されたときにオ
フされるようになっている。また、ダーティフラグは対
応するデータブロックのデータが書き換えられた時にセ
ットされ、データブロックのデータが新たに転送された
ときにはオフされるようになっている。
【0033】データ記憶装置134は、データ転送主記
憶装置14上のデータを一時的に保持するようになって
おり、保持したデータの主記憶装置上のアドレスはアド
レスタグ記憶装置にタグデータとして記憶されるように
なっている。
憶装置14上のデータを一時的に保持するようになって
おり、保持したデータの主記憶装置上のアドレスはアド
レスタグ記憶装置にタグデータとして記憶されるように
なっている。
【0034】データ転送装置135は、アドレス判定装
置でキャッシュミスと判定された場合に、現在データ記
憶装置上のデータブロックに保持されているデータを主
記憶装置上に書き戻す必要があるなら、そのデータを書
き戻し、次に、CPUが要求したアドレスのデータを含
むデータブロックをデータ記憶装置上のデータブロック
に転送する。さらに、書き込み命令112が発行された
場合にはデータブロックレジスタが指すデータブロック
を内容を指定された主記憶装置上のアドレスに書き戻す
ようにもなっている。なお、データ転送の単位はデータ
記憶装置上のデータブロックの大きさである。
置でキャッシュミスと判定された場合に、現在データ記
憶装置上のデータブロックに保持されているデータを主
記憶装置上に書き戻す必要があるなら、そのデータを書
き戻し、次に、CPUが要求したアドレスのデータを含
むデータブロックをデータ記憶装置上のデータブロック
に転送する。さらに、書き込み命令112が発行された
場合にはデータブロックレジスタが指すデータブロック
を内容を指定された主記憶装置上のアドレスに書き戻す
ようにもなっている。なお、データ転送の単位はデータ
記憶装置上のデータブロックの大きさである。
【0035】図3は、読み込み命令111と書き込み命
令112の動作を示すフローチャートである。以下、図
3に基づいて、本実施例の読み込み命令111と書き込
み命令112の動作を説明する。
令112の動作を示すフローチャートである。以下、図
3に基づいて、本実施例の読み込み命令111と書き込
み命令112の動作を説明する。
【0036】読み込む命令111が発行されると、以下
のように要求されたアドレスのデータブロックがデータ
記憶装置に転送されるようになっている。。
のように要求されたアドレスのデータブロックがデータ
記憶装置に転送されるようになっている。。
【0037】<ステップ301>まず、読み込み命令で
指定されるアドレスから、データブロック決定装置によ
り、転送先となるデータ記憶装置上のデータブロックを
求める。
指定されるアドレスから、データブロック決定装置によ
り、転送先となるデータ記憶装置上のデータブロックを
求める。
【0038】<ステップ302>次に、当該データブロ
ックのデータが読み込み命令で指定されたデータである
かどうかを、アドレスタグ記憶装置に記憶されているタ
グデータと読み込み命令で指定されたアドレスをアドレ
ス判定装置が比較し、キャッシュヒット/ミスを判定す
る。キャッシュヒットの場合、ステップ308の処理
に、キャッシュミスの場合、ステップ303の処理に進
む。
ックのデータが読み込み命令で指定されたデータである
かどうかを、アドレスタグ記憶装置に記憶されているタ
グデータと読み込み命令で指定されたアドレスをアドレ
ス判定装置が比較し、キャッシュヒット/ミスを判定す
る。キャッシュヒットの場合、ステップ308の処理
に、キャッシュミスの場合、ステップ303の処理に進
む。
【0039】<ステップ303>次に、当該データブロ
ックに、読み込み命令で指定されたアドレスのデータを
含むデータブロック以外のデータが記憶されているかど
うかをアドレスタグ記憶装置のタグデータから判定し、
他のデータが存在する場合、ステップ304に、他のデ
ータが存在しない場合ステップ306に進む。
ックに、読み込み命令で指定されたアドレスのデータを
含むデータブロック以外のデータが記憶されているかど
うかをアドレスタグ記憶装置のタグデータから判定し、
他のデータが存在する場合、ステップ304に、他のデ
ータが存在しない場合ステップ306に進む。
【0040】<ステップ304>次に、当該データブロ
ックのデータを主記憶装置に書き戻す必要があるかどう
か判定する。その結果、書き戻す必要があれば、<ステ
ップ305>に、書き戻す必要がない場合、ステップ3
06に進む。当ステップは、本実施例のデータ書き込み
方式がストアスルー方式である場合は不要である。
ックのデータを主記憶装置に書き戻す必要があるかどう
か判定する。その結果、書き戻す必要があれば、<ステ
ップ305>に、書き戻す必要がない場合、ステップ3
06に進む。当ステップは、本実施例のデータ書き込み
方式がストアスルー方式である場合は不要である。
【0041】<ステップ305>次に、データ転送装置
が当該データブロックのデータを主記憶装置に書き戻
す。当ステップはステップ304と同様にストアスルー
方式の場合には不要である。
が当該データブロックのデータを主記憶装置に書き戻
す。当ステップはステップ304と同様にストアスルー
方式の場合には不要である。
【0042】<ステップ306>次に、データ転送装置
が、読み込み命令で指定されたアドレスのデータを含む
主記憶装置上のデータブロックを、データブロック決定
装置が決定したデータ記憶装置上のデータブロックに転
送する。
が、読み込み命令で指定されたアドレスのデータを含む
主記憶装置上のデータブロックを、データブロック決定
装置が決定したデータ記憶装置上のデータブロックに転
送する。
【0043】<ステップ307>次に、ステップ306
において転送されたデータブロックの主記憶装置上のア
ドレスをアドレスタグ記憶装置のタグデータとして記憶
する。さらに、無効フラブをクリアし、ダーティフラグ
をクリアする。
において転送されたデータブロックの主記憶装置上のア
ドレスをアドレスタグ記憶装置のタグデータとして記憶
する。さらに、無効フラブをクリアし、ダーティフラグ
をクリアする。
【0044】<ステップ308>次に、ステップ306
において転送されたデータブロックのデータ記憶装置上
のアドレスをデータブロックレジスタにセットする。
において転送されたデータブロックのデータ記憶装置上
のアドレスをデータブロックレジスタにセットする。
【0045】また、書き込み命令112が発行される
と、以下のように要求されたアドレスのデータブロック
が主記憶装置に転送されるようになっている。。
と、以下のように要求されたアドレスのデータブロック
が主記憶装置に転送されるようになっている。。
【0046】<ステップ309>まず、書き込み命令に
おいて指定された主記憶装置上のアドレスに、データブ
ロックレジスタが指すデータ記憶装置上のデータブロッ
クのデータをデータ転送装置が転送する。
おいて指定された主記憶装置上のアドレスに、データブ
ロックレジスタが指すデータ記憶装置上のデータブロッ
クのデータをデータ転送装置が転送する。
【0047】<ステップ310>次に、転送先の主記憶
装置上のデータブロックがデータ記憶装置上に存在して
いるかを判定する。存在しない場合、何もせず、書き込
み命令112の処理は終了する。存在する場合、次のス
テップ311に進む。
装置上のデータブロックがデータ記憶装置上に存在して
いるかを判定する。存在しない場合、何もせず、書き込
み命令112の処理は終了する。存在する場合、次のス
テップ311に進む。
【0048】<ステップ311>次に、該当するデータ
ブロックを無効にするために、アドレスタグ記憶装置上
の該当データブロックの無効フラグをセットする。
ブロックを無効にするために、アドレスタグ記憶装置上
の該当データブロックの無効フラグをセットする。
【0049】次に、このように構成した実施例における
データ転送処理の動作を説明する。
データ転送処理の動作を説明する。
【0050】主記憶装置上のデータブロックAのデータ
を、データブロックBに転送する場合、プログラムで
は、読み込み命令111(以下、bload)と書き込み命令
112(以下、bwrite)を使用し、 bload a bwrite b と記述する(aはデータブロックAのアドレス、bはデ
ータブロックBのアドレス)。
を、データブロックBに転送する場合、プログラムで
は、読み込み命令111(以下、bload)と書き込み命令
112(以下、bwrite)を使用し、 bload a bwrite b と記述する(aはデータブロックAのアドレス、bはデ
ータブロックBのアドレス)。
【0051】bload が発行されると、データブロック決
定装置131により、データ記憶装置134上のデータ
ブロックAのデータを記憶するデータブロックA′が決
定され、データブロックA′にデータブロックAのデー
タが既に転送されているかを、アドレスタグ記憶装置1
33のデータブロックA′に対応するタグデータとアド
レスaを比較することでアドレス判定装置132が判定
する。
定装置131により、データ記憶装置134上のデータ
ブロックAのデータを記憶するデータブロックA′が決
定され、データブロックA′にデータブロックAのデー
タが既に転送されているかを、アドレスタグ記憶装置1
33のデータブロックA′に対応するタグデータとアド
レスaを比較することでアドレス判定装置132が判定
する。
【0052】キャッシュヒットであればデータブロック
レジスタ12にデータブロックA′のアドレスをセット
する。一方、キャッシュミスと判定され、データブロッ
クA′のデータを主記憶装置上に書き戻す必要があれ
ば、データ転送装置135により、主記憶装置上にデー
タを書き戻す。そして、データブロックA′にデータブ
ロックAのデータをデータ転送装置135により転送
し、データブロックA′に対応するアドレスタグ記憶装
置に転送したデータの主記憶装置上のアドレスをセット
する。そして、データブロックレジスタ12にデータブ
ロックA′のアドレスをセットする。
レジスタ12にデータブロックA′のアドレスをセット
する。一方、キャッシュミスと判定され、データブロッ
クA′のデータを主記憶装置上に書き戻す必要があれ
ば、データ転送装置135により、主記憶装置上にデー
タを書き戻す。そして、データブロックA′にデータブ
ロックAのデータをデータ転送装置135により転送
し、データブロックA′に対応するアドレスタグ記憶装
置に転送したデータの主記憶装置上のアドレスをセット
する。そして、データブロックレジスタ12にデータブ
ロックA′のアドレスをセットする。
【0053】bloadの実行後、bwrite が発行されると、
データブロックレジスタがデータブロックA′を指して
おり、このデータブロックA′のデータをデータ転送装
置135が主記憶装置14上のデータブロックBに転送
する。そして、転送先アドレスbが使用するデータ記憶
装置134上のデータブロックB′をデータブロック決
定装置131によって求め、データブロックB′にデー
タブロックBの古いデータが存在するかどうかを判定
し、存在するならば、データブロックB′のデータを無
効化する。無効化は、データブロックB′に対応するア
ドレスタグ記憶装置133上の無効フラグをセットする
ことでなされる。
データブロックレジスタがデータブロックA′を指して
おり、このデータブロックA′のデータをデータ転送装
置135が主記憶装置14上のデータブロックBに転送
する。そして、転送先アドレスbが使用するデータ記憶
装置134上のデータブロックB′をデータブロック決
定装置131によって求め、データブロックB′にデー
タブロックBの古いデータが存在するかどうかを判定
し、存在するならば、データブロックB′のデータを無
効化する。無効化は、データブロックB′に対応するア
ドレスタグ記憶装置133上の無効フラグをセットする
ことでなされる。
【0054】このように、データブロックAからデータ
ブロックBへのデータの転送はbload,bwrite を発行す
ることで実現できる。この転送処理中にキャッシュミス
が発生するのは、bload を発行し、データブロックAの
データ(転送元データ)をデータ記憶装置134上のデ
ータブロックに転送するときだけである。
ブロックBへのデータの転送はbload,bwrite を発行す
ることで実現できる。この転送処理中にキャッシュミス
が発生するのは、bload を発行し、データブロックAの
データ(転送元データ)をデータ記憶装置134上のデ
ータブロックに転送するときだけである。
【0055】また、上記では、主記憶装置14上の一つ
のデータブロックのデータを主記憶装置上の他のデータ
ブロックに転送するデータ転送処理を説明したが、主記
憶装置14上の連続した複数のデータブロックのデータ
を連続した複数のデータブロックに転送するデータ転送
処理についても、上記に示した方法を転送するデータブ
ロック数だけ繰り返して行うことで実現できる。さら
に、主記憶装置14上の転送元データブロックから主記
憶装置14上の複数のデータブロックにデータを転送す
るデータ転送処理についても、書き込み命令112を繰
り返し発行することで実現できる。これらのデータ転送
処理において発生するキャッシュミス回数の上限は、転
送元のデータブロックのデータをキャッシュメモリ上に
転送する回数に等しい。
のデータブロックのデータを主記憶装置上の他のデータ
ブロックに転送するデータ転送処理を説明したが、主記
憶装置14上の連続した複数のデータブロックのデータ
を連続した複数のデータブロックに転送するデータ転送
処理についても、上記に示した方法を転送するデータブ
ロック数だけ繰り返して行うことで実現できる。さら
に、主記憶装置14上の転送元データブロックから主記
憶装置14上の複数のデータブロックにデータを転送す
るデータ転送処理についても、書き込み命令112を繰
り返し発行することで実現できる。これらのデータ転送
処理において発生するキャッシュミス回数の上限は、転
送元のデータブロックのデータをキャッシュメモリ上に
転送する回数に等しい。
【0056】なお、本発明は、上記実施例にのみ限定さ
れず、要旨を変更しない範囲で適宜変形して実施でき
る。例えば、上述した実施例では、読み込み命令111
によってデータが転送されたキャッシュメモリ上のデー
タブロックのアドレスを記憶する手段としてデータブロ
ックレジスタを用意したが、このレジスタはキャッシュ
メモリ上のデータブロックのアドレスを記憶する専用の
レジスタであっても、計算機システムにおいてプログラ
ム実行のために使用されている汎用レジスタであっても
良い。
れず、要旨を変更しない範囲で適宜変形して実施でき
る。例えば、上述した実施例では、読み込み命令111
によってデータが転送されたキャッシュメモリ上のデー
タブロックのアドレスを記憶する手段としてデータブロ
ックレジスタを用意したが、このレジスタはキャッシュ
メモリ上のデータブロックのアドレスを記憶する専用の
レジスタであっても、計算機システムにおいてプログラ
ム実行のために使用されている汎用レジスタであっても
良い。
【0057】
【発明の効果】本発明によれば、データ転送処理におい
て、転送先データブロックのデータを書き込むために従
来使用していたキャッシュメモリ上のデータブロックを
必要としないため、キャッシュミス発生回数の上限を転
送元データをキャッシュメモリ上に転送する回数に抑え
ることができる。この結果、データ転送処理を高速に実
行できる。
て、転送先データブロックのデータを書き込むために従
来使用していたキャッシュメモリ上のデータブロックを
必要としないため、キャッシュミス発生回数の上限を転
送元データをキャッシュメモリ上に転送する回数に抑え
ることができる。この結果、データ転送処理を高速に実
行できる。
【0058】更に、転送先データブロックのデータを書
き込むために従来使用していたキャッシュメモリ上のデ
ータブロックを必要としないため、システム全体のキャ
ッシュミス発生確率を下げる効果もある。
き込むために従来使用していたキャッシュメモリ上のデ
ータブロックを必要としないため、システム全体のキャ
ッシュミス発生確率を下げる効果もある。
【図1】本発明の一実施例のシステム構成を示すブロッ
ク図。
ク図。
【図2】従来技術のシステム構成を示すブロック図。
【図3】図1の実施例の処理手順を示すフローチャート
図。
図。
【図4】図2の従来技術の処理手順を示すフローチャー
ト図。
ト図。
11…CPU、12…データブロックレジスタ、13…
キャッシュメモリ、14…主記憶装置、111…読み込
み命令、112…書き込み命令、131…データブロッ
ク決定装置、132…アドレス判定装置、133…アド
レスタグ記憶装置、134…データ記憶装置、135…
データ転送装置。
キャッシュメモリ、14…主記憶装置、111…読み込
み命令、112…書き込み命令、131…データブロッ
ク決定装置、132…アドレス判定装置、133…アド
レスタグ記憶装置、134…データ記憶装置、135…
データ転送装置。
Claims (3)
- 【請求項1】キャッシュメモリを有する計算機システム
において、主記憶装置上の指定された領域のデータを前
記キャッシュメモリへ転送する手段と、転送された前記
キャッシュメモリ上の領域のアドレスを記憶する手段を
有することを特徴とする計算機システム。 - 【請求項2】請求項1において、前記キャッシュメモリ
上の指定された領域のデータを前記主記憶装置の指定さ
れた領域に転送する手段を有する計算機システム。 - 【請求項3】請求項2において、前記キャッシュメモリ
上のデータを前記主記憶装置上の複数の領域に転送する
計算機システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5175118A JPH0728701A (ja) | 1993-07-15 | 1993-07-15 | 計算機システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5175118A JPH0728701A (ja) | 1993-07-15 | 1993-07-15 | 計算機システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0728701A true JPH0728701A (ja) | 1995-01-31 |
Family
ID=15990594
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5175118A Pending JPH0728701A (ja) | 1993-07-15 | 1993-07-15 | 計算機システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0728701A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7483114B2 (en) | 2003-10-20 | 2009-01-27 | Lg Display Co., Ltd. | Liquid crystal display device, substrate bonding apparatus, and method for fabricating liquid crystal display device using the same |
| US9333798B2 (en) | 2010-12-21 | 2016-05-10 | Mitsubishi Heavy Industries, Ltd. | Vehicle wheel, running wheel, vehicle and method of assembling and disassembling vehicle wheel |
-
1993
- 1993-07-15 JP JP5175118A patent/JPH0728701A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7483114B2 (en) | 2003-10-20 | 2009-01-27 | Lg Display Co., Ltd. | Liquid crystal display device, substrate bonding apparatus, and method for fabricating liquid crystal display device using the same |
| US9333798B2 (en) | 2010-12-21 | 2016-05-10 | Mitsubishi Heavy Industries, Ltd. | Vehicle wheel, running wheel, vehicle and method of assembling and disassembling vehicle wheel |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3259969B2 (ja) | キャッシュメモリ制御装置 | |
| EP0077452B1 (en) | Data promotion in storage subsystems | |
| CN101446923B (zh) | 一种响应于指令而清洗高速缓冲存储器线的装置和方法 | |
| KR100204741B1 (ko) | 제1및 제2캐시 메모리 사용방법 | |
| EP0077453A2 (en) | Storage subsystems with arrangements for limiting data occupancy in caches thereof | |
| JP2004533079A (ja) | マルチプロセッサシステムにおける推測的な格納を容易にする方法および装置 | |
| JPS5960552A (ja) | 周辺デ−タ記憶システム | |
| US6748496B1 (en) | Method and apparatus for providing cacheable data to a peripheral device | |
| JP2005520222A (ja) | マルチプロセッサシステムにおける推測的な格納を容易にするl2ディレクトリの利用 | |
| CN1127693C (zh) | 保持指令、数据高速缓存之间相关性的方法和设备 | |
| CN101617298A (zh) | 用于dma、任务终止和同步操作的缓存一致保持 | |
| JPH05324468A (ja) | 階層化キャッシュメモリ | |
| JPH04336641A (ja) | 処理システムにおける使用のためのデータキャッシュおよび方法 | |
| US8214597B2 (en) | Cache tentative read buffer | |
| JPH0728701A (ja) | 計算機システム | |
| CN110688155A (zh) | 一种访问不可缓存区域的存储指令的合并方法 | |
| JP3006204B2 (ja) | 情報処理装置 | |
| JP2000347941A (ja) | キャッシュメモリ装置 | |
| JP3564343B2 (ja) | キャッシュバイパス時のデータ転送装置と方法 | |
| JP3081635B2 (ja) | キャッシュメモリの無効化処理装置および無効化制御方法 | |
| US7840757B2 (en) | Method and apparatus for providing high speed memory for a processing unit | |
| JPH11149409A (ja) | メモリコントローラおよびコンピュータシステム | |
| JPH08335188A (ja) | ソフトウェア制御可能なキャッシュメモリ装置 | |
| JPH01125639A (ja) | ディスクキャッシュ制御方式 | |
| JPH10320278A (ja) | メモリコントローラ及びコンピュータシステム |