JPH03241426A - キャッシュメモリシステム - Google Patents

キャッシュメモリシステム

Info

Publication number
JPH03241426A
JPH03241426A JP2039271A JP3927190A JPH03241426A JP H03241426 A JPH03241426 A JP H03241426A JP 2039271 A JP2039271 A JP 2039271A JP 3927190 A JP3927190 A JP 3927190A JP H03241426 A JPH03241426 A JP H03241426A
Authority
JP
Japan
Prior art keywords
data
cache
cache memory
instruction
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2039271A
Other languages
English (en)
Other versions
JP2555461B2 (ja
Inventor
Michio Morioka
道雄 森岡
Kozaburo Kurita
公三郎 栗田
Hideo Sawamoto
沢本 英雄
Yoshiki Kobayashi
芳樹 小林
Takao Kobayashi
隆夫 小林
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.)
Hitachi Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Engineering Co Ltd
Hitachi 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 Hitachi Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Engineering Co Ltd
Priority to JP2039271A priority Critical patent/JP2555461B2/ja
Publication of JPH03241426A publication Critical patent/JPH03241426A/ja
Application granted granted Critical
Publication of JP2555461B2 publication Critical patent/JP2555461B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ処理装置のキャッシュメモリシステム
に係り、特に、命令用、データ用等の複数のキャッシュ
メモリからなるキャッシュメモリシステムにおいて、デ
ータの一致保証に好適なキャッシュメモリ制御方式に関
する。
〔従来の技術〕
(1)背景 プロセッサの性能向上のためパイプライン方式が高度化
している。パイプライン方式は、1つの命令の実行に必
要な処理、例えば、命令フェッチ。
デコード、アドレス計算、データフェッチ、演算などの
処理をそれぞれ独立なステージとし、ステージ間で次々
に命令を実行することにより高性能化を図る手段である
。パイプラインの高度化にともない、従来、命令とデー
タとを単一のキャッシュメモリに格納していた方式から
、これらを分離する命令・データ分割キャッシュメモリ
方式が不可欠になりつつある。命令キャッシュとデータ
キャッシュとを分割することにより、命令フェッチとデ
ータフェッチ・ストアとの競合を避け、パイプラインを
効率よく動作させることが可能となる。
このような命令・データ分割キャッシュメモリ方式で新
たに問題となるのは、命令・データストア競合の制御で
ある。すなわち、汎用計算機では、データストアによっ
て命令を変更する場合がある。
今、命令フェッチは命令キャッシュ、データフェッチ・
ストアはデータキャッシュと完全に分割したとする。こ
の場合、データストアによる命令変更は、データキャッ
シュのみを変更し、命令キャッシュには古いデータが残
ったままとなる。命令フェッチがこの古い命令を読み出
して実行すると、正常な動作が保証されない。
このため、データストアによる変更要求があった場合は
、命令・データストア競合制御により、命令キャッシュ
とデータキャッシュの内容を常に一致させて最新情報と
する制御が必要となる。ここで注意すべき点としては、
データストアによる変更要求があれば、即座に命令キャ
ッシュとデータキャッシュの一致を保証しなければなら
ないことである。これは、データストアによる命令変更
の後すぐに変更された命令をフェッチする場合でも正常
な動作を保証する必要があるからである。
(2)従来方式 命令・データストア競合制御で最も簡単な方式は、デー
タストアによる変更要求があれば、命令キャッシュとデ
ータキャッシュの両者を即座に変更する方式である。こ
うすれば、データストアによる命令変更に続いて当該命
令のフェッチが要求されても正常な動作を保証できる。
しかし、この方式では、命令キャッシュにおいて、命令
フェッチとデータストアのアクセスが競合し、パイプラ
イン動作の障害となる。
この問題を解決する従来方式は、特開昭60−1517
49に開示されている。すなわち、データストア要求が
発行された場合、即座に命令キャッシュを変更せず、そ
の要求を多段の命令変更バッファに蓄積する。そして、
命令キャッシュがアクセスされていない時に、命令変更
バッファの内容に従って命令キャッシュを更新する方式
である。
本方式によれば、命令フェッチとデータストアとが競合
することなく、パイプラインをスムーズに動作させるこ
とができる。
〔発明が解決しようとする課題〕
上記従来技術によっても依然としていくつかの問題が残
る。第1に、データストアが連続する場合を考慮すると
、4段から8段程度の命令変更バッファが必要となるこ
とである。このため、ハード量が増大する問題がある。
第2に、データストアによる命令変更に続いて当該命令
のフェッチが発行された時に、命令変更が命令変更バッ
ファに残っていて命令キャッシュに反映されない場合が
ある。このため、命令変更バッファの全てのエントリに
比較器を設け、要求されている命令が、命令変更バッフ
ァに残っていないかどうかを検出する機構が不可欠とな
る。これらの機構は、ハード量増大の要因になるととも
に、命令変更バッファの管理が複雑になる問題がある。
本発明の目的は、従来方式のような命令変更バッファを
設けることなく、命令・データ分離キャッシュメモリ方
式における命令・データストア競合の制御を実現するキ
ャッシュメモリシステムを提供することである。
〔課題を解決するための手段〕 本発明は、上記目的を達成するために、命令キャッシュ
メモリとデータキャッシュメモリとを分離したキャッシ
ュメモリ方式において、命令およびデータキャッシュメ
モリに存在する全ての情報を識別するキャッシュデータ
識別手段を設け、−方のキャッシュに要求するデータが
存在しない場合、主メモリから要求データを読み出し、
新規に登録するとともに、前記キャッシュデータ識別手
段により他方のキャッシュに該当するデータが存在する
かどうかを検出し、存在すればこれを無効化し、これに
よって命令キャッシュとデータキャッシュに同一のデー
タが登録されることを禁止する排他制御を行なう方式を
提案するものである。
本発明は、また、上記目的を達成するために、前記キャ
ッシュデータ識別手段に加え、データキャッシュメモリ
の全ての登録データに当該データが命令キャッシュに存
在するかどうかを示す共有ビットを設け、データキャッ
シュに要求するデータが存在しない場合、主メモリから
要求データを読み出し、新規に登録するとともに、前記
キャッシュデータ識別手段により命令キャッシュに該当
するデータが存在するかどうかを検出し、存在すればデ
ータキャッシュの登録データの共有ビットを「1」とし
、これによって命令キャッシュとデータキャッシュに同
一のデータが登録されたことを示す方式を提案するもの
である。
〔作用〕
上記第1の手段によれば、データストアが発行され、対
象データがデータキャッシュに存在する場合は、命令キ
ャッシュへの変更は不要となる。
これは、命令キャッシュと、データキャッシュに同一の
データが存在しないことが保証されているためである。
対象データがデータキャッシュに存在しない場合には、
プログラムの実行を中断し、前記キャッシュデータ識別
手段により命令キャッシュに該当するデータが存在する
かどうかを検出し、存在すればこれを更新する。データ
ストアにおいては、8割から9割の割合で対象データが
データキャッシュに存在するため、プログラム実行を中
断しての命令キャッシュ更新はほとんど発生しない。
上記第2の手段によれば、データストアが発行され、対
象データがデータキャッシュに存在する場合、対象デー
タの共有ビットが「O」であれば、命令キャッシュへの
変更は不要となる。これは、この共有ビットにより命令
キャッシュとデータキャッシュに同一のデータが存在し
ないことが保証されているためである。また、共有ビッ
トがrlJであるかまたは対象データがデータキャッシ
ュに存在しない場合は、プログラムの実行を中断し。
前記キャッシュデータ識別手段により命令キャッシュに
該当するデータが存在するかどうかを検出し、存在すれ
ばこれを更新する。データストアにおいては、8割から
9割の割合で対象データがデータキャッシュに存在し、
かつ、命令キャッシュとデータキャッシュで共有される
データが非常に少ないため、プログラム実行を中断して
の命令キャッシュ更新はほとんど発生しない。
これら第1.第2の手段によれば、従来方式の命令変更
バッファを設けることなく、命令・データストア競合を
制御でき、パイプライン動作への障害を極力抑えること
が可能となる。
〔実施例〕
以下、第1図〜第4図を参照して、本発明の第1実施例
を詳細に説明する。第1図は本発明を適用するデータ処
理装置の一例を示している。図において、複数のプロセ
ッサ100が共有バス500を介して、主記憶装置20
0を共有している。
共有バス500には、ファイルを蓄積する固定ディスク
装置1300や、外部入出力装置とのデータ転送を行な
う入出カプロセッサ400が接続される。
プロセッサ100(他も同様)内部の命令フェッチユニ
ットIUIIOは、プログラムの実行に必要な命令を主
記憶装置200からフェッチする機能を持つ、フェッチ
された命令は、命令実行ユニットEU140に転送され
る。命令実行ユニット140では、命令の意味を解釈し
て必要なデータを主記憶装置I200からフェッチした
後、演算を実行する。命令アドレス変換装置121は、
命令フェッチユニット110が送出する論理アドレスを
物理アドレスに変換する。命令キャッシュメモリ122
は、主記憶装置200に記憶される命令のコピーを高速
なメモリに蓄えている。命令アドレス変換装置121に
よって変換された物理アドレスにより命令キャッシュメ
モリ122が検索され、要求する命令が命令キャッシュ
122内に存在すれば、短時間で要求命令がフェッチさ
れる。
要求する命令が存在しない場合は、主記憶装置200か
ら該当する命令が命令キャッシュメモリ122に転送さ
れ、新規登録されるとともに、命令フェッチユニット1
10に要求命令が供給される。
データアドレス変換装置151は、命令実行ユニット1
40が送出する論理アドレスを物理アドレスに変換する
。データキャッシュメモリ152は、主記憶装置200
に記憶されるデータのコピーを高速なメモリに蓄えてい
る。データアドレス変換装置151によって変換された
物理アドレスによりデータキャッシュメモリ152が検
索され、要求するデータがデータキャッシュ152内に
存在すれば、短時間で要求データがフェッチされる。
要求するデータが存在しない場合は、主記憶装置!!2
00から該当するデータがデータキャッシュメモリ15
2に転送され、新規登録されるとともに、命令実行ユニ
ット140に要求データが供給される。キャッシュデー
タ識別装置130は、命令キャッシュとデータキャッシ
ュに格納されている全てのデータを識別できるメモリで
あり、命令キャッシュとデータキャッシュ間の干渉制御
に用いられる。
第2図は、命令キャッシュ120.データキャッシュ1
50.キャッシュデータ識別装置130の構成を示す図
である。
まず、命令キャッシュ120の構成要素について説明す
る。令命アドレス変換装置1100は、論理アドレス情
報1101とこれに対応する物理アドレス情報1工02
とを対で保持する連想メモリである。命令キャッシュメ
モリは、命令そのものを保持する命令記憶部1300と
、当該命令に対応する物理アドレス情報を保持する命令
ディレクトリ部1200とを含んでいる。本実施例にお
いて、命令ディレクトリ部1200は、ワード方向に4
つの部分に分割され、それぞれクラス0(1201)、
クラス1 (1202) 、クラス2(1203)、ク
ラス3 (1204)と呼ばれる。
各クラスには、物理アドレスのビット<0−19>が保
持される。また、対応するデータが有効か無効かを示す
Vビット1205を有する。
データキャッシュメモリ150の構成要素であるデータ
アドレス変換装置1400.データ記憶部1600.デ
ータディレクトリ部1500は、命令キャッシュメモリ
120の構成要素と同じであるので説明は省略する。
キャッシュデータ識別装置130は、命令ディレクトリ
1200のコピーである命令識別ディレクトリl 70
0と、データディレクトリ1500のコピーであるデー
タ識別ディレクトリ1800とを含んでいる。命令・デ
ータ識別ディレクトリは、4つのクラスを並列にアクセ
スし、比較器により一致検証する構成となっている。
次に、各構成要素のアクセス方法を示す。命令アドレス
変換装置1100は命令論理アドレス1oooのビット
(11−19)によって検索される。読み出された論理
アドレス情報1101は、命令論理アドレスのビット<
0−10>と比較され一致すれば、物理アドレス情報1
102が命令キャッシュに渡される。命令ディレクトリ
部1200と命令記憶部1300は、命令論理アドレス
のビット(18−31>をインデクスアドレスとして用
いる。このうちビット(18−19)はアドレス変換に
依存して変化する部分であり、ビット<20−31>は
、アドレス変換の対象とならない部分である。ビット(
18−19>により、令命ディレクトリ部と命令記憶部
の4つのクラスの1つが選択され、ビット<20−31
>によって、クラス内のエントリーが選択される。命令
ディレクトリ1200から読み出された物理アドレス情
報は、命令アドレス変換装置1100からの物理アドレ
ス情報1102と比較され、一致検出される。
データアドレス変換装置1400、データディレクトリ
部1500、データ記憶部1600のアクセス方法に関
しては、命令の場合と同じであるので、説明を省略する
命令論理アドレス1000のビット〈20−31〉、ま
たはデータ論理アドレス1005のビット<20−31
)がセレクト1902によって選択され、キャッシュデ
ータ識別装置130の命令識別ディレクトリ1700に
おいて、インデクスアドレスとして用いられる。命令識
別ディレクトリ1700の4つのクラス1701−17
04から読み出された物理アドレス情報は、命令アドレ
ス変換装置1100の物理アドレス情報1102または
データアドレス変換装置1400の物理アドレス情報1
402からセレクタ1901が選択した結果と比較され
、一致検証される。データ識別ディレクトリ1800の
アクセス方式もこれと同じである。
次に、第2図、第3図、第4図を参照して、命令実行ユ
ニットがデータキャッシュメモリをアクセスする処理を
説明する。第3図はデータフェッチ時の処理フローを示
し、第4図はデータストア時の処理フローを示している
。なお、命令フェッチユニットによる命令キャッシュメ
モリのアクセス処理は、データフェッチの処理と同等に
なるため、説明を省略する。
(1)データフェッチのヒツト時 命令実行ユニットからデータフェッチ要求があるとデー
タ論理アドレスが1005にセットされる。データ論理
アドレスのビット<0−19>は、データアドレス変換
装置11400により物理アドレスのビット<0−19
>に変換される。これと並行して、データディレクトリ
部1500およびデータ記憶部1600から、データ論
理アドレスのビット(18−31)がインデクスアドレ
スとして読み出される。この時、データ論理アドレスの
ビット<18−19>でクラスが選択され、ビット(2
0−31>でクラス内のエントリが選択される。データ
ディレクトリ部1500から読み出された情報は、比較
器1506により、データアドレス変換装fi1400
の出力である物理アドレスと比較される。比較した結果
が一致すれば、ゲート1601が制御され、データ記憶
部から読み出されたデータが命令実行ユニットに転送さ
れる。
(2)データフェッチのミスヒツト時 データキャッシュの一致検証の動作は前述の場合と同様
である。一致検証の結果ミスヒツトであれば、物理アド
レスが主記憶装!200に転送され、要求データを含む
一定サイズのデータ(これをブロックと呼ぶ)の転送を
要求する。主記憶装置1200からデータが転送されて
来るまでに以下の処理を行なう。データ論理アドレスの
ビット(20−31>がセレクタ1902により選択さ
れ、命令識別ディレクトリ1700とデータ識別ディレ
クトリ1800が同時に読み出される。読み出された情
報は、比較器↓706または1806により、データア
ドレス変換装置1400より出力される物理アドレス情
報1402と比較される。命令識別ディレクトリ170
0で一致が検出された場合、エンコーダ1706により
、比較器1706の結果から該当データが存在する命令
キャッシュのクラスアドレス1708が生成される。
このクラスアドレスとデータ論理アドレスのビット<2
O−31)を結合したものを、命令キャッシュの無効化
アドレスとする。無効化アドレスは、セレクタ1903
により選択され、命令ディレクトリ部1200を検索し
、対応するエントリVビットをrQJとすることにより
無効化する。
データキャッシュに関しても、データ論理アドレスのビ
ット(18−19)で指定されたクラス以外のクラスに
該当データが存在する可能性があるため、これを検出す
る必要がある。すなわち。
データ識別ディレクトリ1800で一致が検出された場
合も、同様に、エンコーダ1807により、比較器18
06の結果から該当データが存在するデータキャッシュ
のクラスアドレス1808が生成される。このクラスア
ドレスとデータ論理アドレスのビット<20−31>を
結合したものを。
データキャッシュの無効化アドレスとする。p#、効化
アドレスは、セレクト1904により選択されてデータ
ディレクトリ部1500を検索し、対応するエントリの
Vビットを「O」とすることにより無効化する。
以上の2つの無効化処理により、命令キャッシュ、デー
タキャッシュを含めて、データの2重登録を回避できる
主記憶装置200に要求していたデータが転送されてく
ると、これをデータ論理アドレスのビット<18−31
>に従って、データキャッシュメモリに登録する。同時
に、要求データを命令実行ユニットに転送する。
(3)データストアのヒツト時 データストア時には、データ論理アドレスが1005に
、ストアデータが1602にセットされる。データ論理
アドレスのビット(0−19)は、データアドレス変換
装置1400により物理アドレスのビット<0−19>
に変換される。これと並行して、データディレクトリ部
1500が、データ論理アドレスのビット<18−31
>をインデクスアドレスとして読み出す。この時、デー
タ論理アドレスのビット(18−19)でクラスが選択
され、ビット<20−31>によってクラス内のエント
リが選択される。データディレクトリ部から読み出され
た情報は、データアドレス変換装置1400の出力であ
る物理アドレスと比較器1506により比較される。比
較した結果一致すれば、ストアデータ1602がデータ
記憶部1600の対応するエントリに書き込まれる。こ
の時には、命令キャッシュの変更またはデータキャッシ
ュの他のクラスの変更は不要である。なぜなら、命令キ
ャッシュ、データキャッシュにおいて2重登録されない
ことが保証されており、かつ論理アドレスに対応するク
ラスがヒツトしたと言うことは、命令キャッシュまたは
データキャッシュの他のクラスには該当データが存在し
ないことの証明となるからである。
(4)データストアのミスヒツト時 データキャッシュの一致検証の動作は前述の場合と同様
である。一致検証の結果ミスヒツトであれば、プロセッ
サの実行を中断し、キャッシュ識別装置130の検索を
行なう。すなわち、データ論理アドレスのビット(20
−31>がセレクタ1902により選択され、命令識別
ディレクトリ1700とデータ識別ディレクトリ180
0とが同時に読み出される。読み出された情報は、比較
器1706または1806により、データアドレス変換
装置1400から出力される物理アドレス情報1402
と比較される。命令識別ディレクトリ1700で一致が
検出された場合、比較器1706の結果からエンコーダ
1706により該当データが存在する命令キャッシュの
クラスアドレス1708が生成される。このクラスアド
レスとデータ論理アドレスのビット(20−31>を結
合したものを、命令キャッシュの変更アドレスとする。
変更アドレスは、セレクタ1903により選択されて、
命令記憶部1300をアクセスし、対応するエントリに
ストアデータ1602を書き込む。
同様に、データ識別ディレクトリ1800で一致が検出
された場合、比較器1806の結果からエンコーダ18
07により該当データが存在するデータキャッシュのク
ラスアドレス1808が生成される。当該クラスアドレ
スとデータ論理アドレスのビット<20−31>を結合
したものを、データキャッシュの変更アドレスとする。
変更アドレスは、セレクタ1904により選択されてデ
ータ記憶部1600をアクセスし、対応するエントリに
ストアデータ1602を書き込む。
以上の2つの変更を終了した後、プロセッサの実行を再
開する。
次に、第5図〜第7図を参照して、本発明の第2実施例
を詳細に説明する。なお、本発明を適用するデータ処理
装置自体は、例えば第1図に示したものである。その詳
細は既に説明しであるので、省略する。
第5図は、第2実施例の命令キャッシュ、データキャッ
シュ、キャッシュデータ識別装置の構成を示す図である
。第1実施例と異なる部分は、データディレクトリ15
00の各エントリに、対応するデータが命令キャッシュ
にも存在するかどうかを示す共有ビット1507を追加
した点である。
次に、第5図、第6図、第7図を参照して、命令実行ユ
ニットがデータキャッシュメモリをアクセスする処理を
説明する。第6図はデータフェッチ時の処理フローを示
し、第7図はデータストア時の処理フローを示している
。命令フェッチユニットによる命令キャッシュメモリの
アクセス処理は、データフェッチの処理と同等になるた
め、説明を省略する。
(1)データフェッチのヒツト時 命令実行ユニットからデータフェッチ要求があるとデー
タ論理アドレスが1005にセットされる。データ論理
アドレスのビット<0−19)は、データアドレス変換
装置1400により物理アドレスのビット<0−19>
に変換される。これと並行して、データディレクトリ部
1500およびデータ記憶部1600から、データ論理
アドレスのビット<18=31>がインデクスアドレス
として読み出される。この時、データ論理アドレスのビ
ット<18−19>でクラスが選択され、ビット<20
−31>でクラス内のエントリが選択される。データデ
ィレクトリ1500部から読み出された情報は、比較器
1506により、データアドレス変換装置1400の出
力である物理アドレスと比較される。比較した結果が一
致すれば、ゲート1601が制御され、データ記憶部か
ら読み出されたデータが命令実行ユニットに転送される
(2)データフェッチのミスヒツト時 データキャッシュの一致検証の動作は前述の場合と同様
である。一致検証の結果ミスヒツトであれば、物理アド
レスが主記憶装置200に転送され、要求データを含む
一定サイズのデータ(これをブロックと呼ぶ)の転送を
要求する。主記憶装置200からデータが転送されて来
るまでに以下の処理を行なう。データ論理アドレスのビ
ットく20−31>がセレクタ1902により選択され
、命令識別ディレクトリ1700とデータ識別ディレク
トリ1800が同時に読み出される。読み出された情報
は、比較器1706または1806により、データアド
レス変換装置1400により出力される物理アドレス情
報1402と比較される。
命令識別ディレクトリ1700で一致が検出された場合
、新規に登録するデータキャッシュのエントリの共有ビ
ットを「1」として登録する。また、命令識別ディレク
トリで一致が検出されなかった場合は、新規に登録する
データキャッシュのエントリの共有ビットを「0」とし
て登録する。
データ識別ディレクトリ1800で一致が検出された場
合、エンコーダ1807により、比較器1806の結果
から該当データが存在するデータキャッシュのクラスア
ドレス1808が生成される。このクラスアドレスとデ
ータ論理アドレスのビット<20−31>を結合したも
のを、データキャッシュの無効化アドレスとする。無効
化アドレスは、セレクタ1904により選択されてデー
タディレクトリ部1500を検索し、対応するエントリ
のvビットをrQJとすることにより無効化する。
主記憶装置200に要求していたデータが転送されてく
ると、これをデータ論理アドレスのビット<18−31
>に従って、データキャッシュメモリに登録する。同時
に、要求データを命令実行ユニットに転送する。
(3)データストアのヒツト時 データストア時には、データ論理アドレスが1005に
、ストアデータが1602にセットされる。
データ論理アドレスのビット<0−19>は。
データアドレス変換装置1400により物理アドレスの
ビット<0−19>に変換される。これと並行して、デ
ータディレクトリ部1500が、データ論理アドレスの
ビット(18−31>をインデクスアドレスとして読み
出す、この時、データ論理アドレスのビット(18−1
9>でクラスが選択され、ビット<20−31>によっ
てクラス内のエントリが選択される。データディレクト
リ部から読み出された情報は、データアドレス変換装置
1400の出力である物理アドレスと比較器1506に
より比較される。比較した結果が一致し、かつ対応する
共有ビットが「0」であれば、ストアデータ1602が
データ記憶部1600の対応するエントリに書き込まれ
るだけで処理は終了する。この時には、命令キャッシュ
の変更またはデータキャッシュの他のクラスの変更は不
要である。これは、共有ビットにより命令キャッシュに
は該当データが存在しないことが保証されるからである
また、比較結果が一致し、かつ、対応する共有ビットが
rlJであれば、ストアデータ1602がデータ記憶部
1600の対応するエントリに書き込まれるとともに、
プロセッサの実行を中断し、キャッシュ識別装置130
を検索する。すなわち、データ論理アドレスのビット<
20−31>がセレクタ1902により選択され、命令
識別ディレクトリ1700とデータ識別ディレクトリ1
800とが同時に読み出される。読み出された情報は、
比較器1706または1806により、データアドレス
変換装置1400から出力される物理アドレス情報14
02と比較される。命令識別ディレクトリ1700で一
致が検出された場合、比較器1706の結果からエンコ
ーダ1706により該当データが存在する命令キャッシ
ュのクラスアドレス1708が生成される。該クラスア
ドレスとデータ論理アドレスのビット<20−31>を
結合したものを、命令キャッシュの変更アドレスとする
。変更アドレスは、セレクタ1903により選択されて
命令記憶部1300をアクセスし、対応するエントリに
ストアデータ1602を書き込む。
以上の変更を終了した後、プロセッサの実行を再開する
(4)データストアのミスヒント時 データキャッシュの一致検証の動作は前述の場合と同様
である。一致検証の結果ミスヒツトであれば、プロセッ
サの実行を中断し、キャッシュ識別装置1!130の検
索を行なう。すなわち、データ論理アドレスのビット(
20−31>がセレクタ1902により選択され、命令
識別ディレクトリ1700とデータ識別ディレクトリ1
800とが同時に読み出される。読み出された情報は、
比較器1706または1806により、データアドレス
変換装置より出力される物理アドレス情報14o2と比
較される。命令識別ディレクトリ1700で一致が検出
された場合、比較器1706の結果からエンコーダ17
06により該当データが存在する命令キャッシュのクラ
スアドレス1708が生成される。このクラスアドレス
とデータ論理アドレスのビット<20−31>を結合し
たものを、命令キャッシュの変更アドレスとする。変更
アドレスは、セレクタ1903により選択されて、命令
記憶部1300をアクセスし、対応するエントリにスト
アデータ1602を書き込む。
同様にデータ識別ディレクトリ1800で一致が検出さ
れた場合、比較器1806の結果からエンコーダ180
7により該当データが存在するデータキャッシュのクラ
スアドレス1808が生成される。当該クラスアドレス
とデータ論理アドレスのビット<20−31>を結合し
たものを、データキャッシュの変更アドレスとする。変
更アドレスは、セレクタ1904により選択されてデー
タ記憶部1600をアクセスし、対応するエントリにス
トアデータ1602を書き込む。
以上の2つの変更を終了した後、プロセッサの実行を再
開する。
〔発明の効果〕
本発明によれば、データキャッシュメモリあるいは命令
キャッシュメモリがミスヒツトした場合のみ、または、
ヒツトしても共有されているデータについてのみ、命令
キャッシュとデータキャッシュの一致保証制御をすれば
よい。キャッシュメモリのヒツト率は8割から9割と高
く、かつ、命令キャッシュとデータキャッシュで共有さ
れるブタが非常に少ないため、プログラム実行を中断し
ての一致保証制御はほとんど発生しない。
したがって、従来方式の命令変更バッファを設けること
なく、少量のハードウェアで命令・データキャッシュの
一致制御を実現でき、しかもパイプライン動作への障害
を極力抑えることが可能となる。
【図面の簡単な説明】
第1図は本発明を適用するデータ処理装置の一例の全体
構造を示すブロック図、第2図は本発明第1実施例の命
令キャッシュ、データキャッシュ。 キャッシュデータ識別装置の構成を示す図。第3図は第
2図実施例のデータフェッチ時の処理フローを示す図、
第4図はデータストア時の処理フローを示す図、第5図
は本発明第2実施例の命令キャッシュ、データキャッシ
ュ、キャッシュデータ識別装置の構成を示す図、第6図
はデータフェッチ時の処理フローを示す図、第7図はデ
ータストア時の処理フローを示す図である。 100・・・プロセッサ、110・・・命令フェッチユ
ニット、120・・・命令キャッシュ、121・・・命
令アドレス変換装置、122・・・命令キャッシュメモ
リ、130・・・キャッシュデータ識別装置。 140・・・命令実行ユニット、150・・・データキ
ャッシュ、151・・・データアドレス変簡装置。 152・・・データキャッシュメモリ、200・・・主
記憶装置、300・・・固定ディスク、400・・・人
出カプロセッサ、500・・・共通バス、1000・・
・命令論理アドレス、1005・・・データ論理アドレ
ス、1100・・・命令アドレス変換装置、1200・
・・命令ディレクトリ部、1300・・・命令記憶部、
1400・・・データアドレス変換装置、1500・・
・データディレクトリ部。 1507・・・共有ビット、1600・・・データ記憶
部、1700・・・命令識別ディレクトリ、1800・
・・データ識別ディレクトリ。

Claims (1)

  1. 【特許請求の範囲】 1、主記憶装置のデータの一部を格納する複数のキャッ
    シュメモリと、当該複数のキャッシュメモリに存在する
    すべてのデータを識別するキャッシュデータ識別手段と
    を備えたキャッシュメモリシステムにおいて、 前記キャッシュメモリに要求するデータが存在しない場
    合のみ前記キャッシュデータ識別手段により他のキャッ
    シュメモリに該当データが格納されているか否かを検出
    する手段と、 該当データが存在すれば当該データを無効化し複数のキ
    ャッシュメモリへの同一データの登録を禁止する排他的
    制御手段と を備えたことを特徴とするキャッシュメモリシステム。 2、請求項1に記載のキャッシュメモリシステムにおい
    て、 前記キャッシュメモリに更新したいデータが存在しない
    場合のみ前記キャッシュデータ識別手段により他のキャ
    ッシュメモリに該当データが格納されているか否かを検
    出する手段と、該当データが存在すれば当該データを更
    新する手段と を備えたことを特徴とするキャッシュメモリシステム。 3、主記憶装置の命令の一部を格納する命令キャッシュ
    メモリと、主記憶装置のデータの一部を格納するデータ
    キャッシュメモリと、前記命令キャッシュメモリおよび
    データキャッシュメモリに存在するすべての情報を識別
    するキャッシュデータ識別手段とを備えたキャッシュメ
    モリシステムにおいて、 前記命令キャッシュメモリまたはデータキャッシュメモ
    リに要求するデータが存在しない場合のみ前記キャッシ
    ュデータ識別手段により他のキャッシュメモリに該当デ
    ータが格納されているか否かを検出する手段と、 該当データが存在すれば当該データを無効化し前記命令
    キャッシュメモリとデータキャッシュメモリとの間で同
    一データの登録を禁止する排他的制御手段と を備えたことを特徴とするキャッシュメモリシステム。 4、請求項3に記載のキャッシュメモリシステムにおい
    て、 前記データキャッシュメモリに更新したいデータが存在
    しない場合のみ前記キャッシュデータ識別手段により命
    令キャッシュメモリに該当データが格納されているか否
    かを検出する手段と、 該当データが存在すれば当該データを更新する手段と を備えたことを特徴とするキャッシュメモリシステム。 5、主記憶装置の命令の一部を格納する命令キャッシュ
    メモリと、主記憶装置のデータの一部を格納するデータ
    キャッシュメモリと、前記命令キャッシュメモリおよび
    データキャッシュメモリに存在するすべての情報を識別
    するキャッシュデータ識別手段とを備えたキャッシュメ
    モリシステムにおいて、 前記データキャッシュメモリに、格納する基本データ単
    位ごとに当該データが前記命令キャッシュメモリに存在
    するか否かを示す共有データ識別情報を格納する領域を
    設け、 前記命令キャッシュメモリまたはデータキャッシュメモ
    リに要求するデータが存在しない場合のみ前記キャッシ
    ュデータ識別手段により他のキャッシュメモリに該当デ
    ータが格納されているか否かを検出する手段と、 該当データが存在すれば前記共有データ識別情報を更新
    する手段と を備えたことを特徴とするキャッシュメモリシステム。 6、請求項5に記載のキャッシュメモリシステムにおい
    て、 前記データキャッシュメモリに更新したいデータが存在
    しない場合または前記共有データ識別情報により同一デ
    ータが命令キャッシュメモリにも存在することが検出さ
    れた場合のみ前記キャッシュデータ識別手段により命令
    キャッシュメモリに該当データが格納されているか否か
    を検出する手段と、 該当データが存在すれば当該データを更新する手段と を備えたことを特徴とするキャッシュメモリシステム。 7、請求項1〜6項のいずれか一項に記載されたキャッ
    シュメモリシステムを備えたコンピュータ。
JP2039271A 1990-02-20 1990-02-20 キャッシュメモリシステム Expired - Fee Related JP2555461B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2039271A JP2555461B2 (ja) 1990-02-20 1990-02-20 キャッシュメモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2039271A JP2555461B2 (ja) 1990-02-20 1990-02-20 キャッシュメモリシステム

Publications (2)

Publication Number Publication Date
JPH03241426A true JPH03241426A (ja) 1991-10-28
JP2555461B2 JP2555461B2 (ja) 1996-11-20

Family

ID=12548490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2039271A Expired - Fee Related JP2555461B2 (ja) 1990-02-20 1990-02-20 キャッシュメモリシステム

Country Status (1)

Country Link
JP (1) JP2555461B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63193246A (ja) * 1987-01-22 1988-08-10 ナショナル・セミコンダクター・コーポレーション 集積キャッシュ・メモリと外部メモリの間の一貫性を保つ方法と装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63193246A (ja) * 1987-01-22 1988-08-10 ナショナル・セミコンダクター・コーポレーション 集積キャッシュ・メモリと外部メモリの間の一貫性を保つ方法と装置

Also Published As

Publication number Publication date
JP2555461B2 (ja) 1996-11-20

Similar Documents

Publication Publication Date Title
US5490261A (en) Interlock for controlling processor ownership of pipelined data for a store in cache
US5664148A (en) Cache arrangement including coalescing buffer queue for non-cacheable data
US4847753A (en) Pipelined computer
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US7472253B1 (en) System and method for managing table lookaside buffer performance
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
US20150186293A1 (en) High-performance cache system and method
JPH0658650B2 (ja) 仮想計算機システム
US8074029B2 (en) Processor equipped with a pre-fetch function and pre-fetch control method
US11775445B2 (en) Translation support for a virtual cache
US10810134B2 (en) Sharing virtual and real translations in a virtual cache
US7549035B1 (en) System and method for reference and modification tracking
JPH0822415A (ja) 入力/出力アダプタにより使用されるコヒーレンス・インデックス生成
US5623626A (en) Logical cache memory for multi-processor system
JP3360933B2 (ja) 情報処理システムにおける記憶制御方法および記憶制御装置
US20030088636A1 (en) Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system
JP3973129B2 (ja) キャッシュメモリ装置及びそれを用いた中央演算処理装置
US11379152B2 (en) Epoch-based determination of completion of barrier termination command
JPH0756808A (ja) データキャッシュバッファ及び記憶方法
JPH03241426A (ja) キャッシュメモリシステム
US5426749A (en) Buffer control system using synonymic line address to retrieve second tag portion for fetch and store accesses while first tag portion is invalidated
JP3709586B2 (ja) 階層記憶システムにおけるデバイスアクセス方法
US7546439B1 (en) System and method for managing copy-on-write faults and change-protection
JPH08161226A (ja) データ先読み制御方法,キャッシュ制御装置およびデータ処理装置
JPS63189943A (ja) 分岐予測制御方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees