JPH03144750A - キャッシュメモリ制御方式 - Google Patents

キャッシュメモリ制御方式

Info

Publication number
JPH03144750A
JPH03144750A JP1281939A JP28193989A JPH03144750A JP H03144750 A JPH03144750 A JP H03144750A JP 1281939 A JP1281939 A JP 1281939A JP 28193989 A JP28193989 A JP 28193989A JP H03144750 A JPH03144750 A JP H03144750A
Authority
JP
Japan
Prior art keywords
cache
replace
cache memory
mono
data
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
Application number
JP1281939A
Other languages
English (en)
Inventor
Takahiro Amano
天野 孝弘
Hidenori Kanazawa
秀則 金澤
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.)
PFU Ltd
Original Assignee
PFU 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 PFU Ltd filed Critical PFU Ltd
Priority to JP1281939A priority Critical patent/JPH03144750A/ja
Publication of JPH03144750A publication Critical patent/JPH03144750A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 キャッシュメモリのキャッシュデータをサブブロック単
位で管理するキャッシュコントローラを備えるキャッシ
ュメモリシステムのキャッシュメモリ制御方式に関し、 キャッシュメモリに対応したソフトウェアによるチュー
ニングに代わり、キャッシュメモリの各種機能の設定を
ハードウェアで実現することにより、キャッシュメモリ
システムの処理能力の最適化を図ることを目的とし、 キャッシュメモリ内のキャッシュデータをサブブロック
単位で管理するキャッシュコントローラのキャッシュメ
モリ制御方式であって、前記キャッシュデータのリプレ
ース動作を、前記サブブロック単位で行うマルチリプレ
ースか、前記サブブロック内の個々のデータの有効・無
効を管理するバリッドビット単位で行うモノリプレース
か、の何れかを選択するリプレース選択手段、を具備す
るように構成する。
〔産業上の利用分野〕
本発明は、キャッシュメモリのキャッシュデー夕をサブ
ブロック単位で管理するキャッシュコントローラにおけ
るキャッシュメモリ制御方式に関し、特に、マルチリプ
レース・リプレースとモノリプレース・リプレースの2
つのリプレース方式を備えたキャッシュメモリ・システ
ム、若しくはコードキャッシュやデータキャッシュの有
効・無効を独立に制御できる、あるいは、サブブロック
単位若しくはバリッドビット単位での管理を切り換える
ことができる、キャッシュメモリ・システムにおけるキ
ャッシュメモリの最適化制御方式に関する。
〔従来の技術〕
キャッシュメモリを備えたシステムでは、キャッシュメ
モリへのアクセスがミスヒツトとなった場合、メインメ
モリからデータをリードし、キャッシュメモリの内容を
更新するリプレース処理を行う。
このリプレースの方式にはリードミスヒツトとなったデ
ータのみをリプレースする方式(以降、モノリプレース
と称する)と、リードミスヒツトとなったデータを含む
任意のデータ領域をリプレースする方式(以降、マルチ
リプレースと称する)がある。
さらに、マルチリプレースには、メインメモリとキャッ
シュメモリとの間の転送において、通常のメモリシーケ
ンスで行うシングルリプレースと、バーストリプレース
の2通りがある。そして、バーストリプレースには4デ
ータ毎にメモリシーケンスを実行(D−RAMのニブル
モードを使用)する方式と、任意長のデータを1回のメ
モリシーケン・スで実行(D−RAMのベージモードを
使用)する方式と、メモリインクリーブによる方式等が
ある。バースト転送によるマルチリプレースは、モノリ
プレースに比べ1データ毎の転送時間が短くて済み高速
に処理を行う点からは有効な方式である。
第8.9図はモノリプレースの説明図である。
第8図において、サブブロック部のキャッシュタグメモ
リに対しリードアクセスがあった場合にモノリプレース
ではリードミスヒツトとなった部分だけをリプレースし
、残りのエリア(サブブロックを構成しているバリッド
ビット)のデータはすべて無効とする。
第9図において、続くリードアクセスがミスヒツトとな
り、このときのアドレスがタグアドレスと一致した場合
は、該当する部分以外の無効化を行わずリプレースのみ
を行う。
第10図はマルチリプレースの説明図である。
図示のように、マルチリプレースではリードミスヒツト
となった部分を含むエリア〈サブブロック〉を全てリプ
レースする。
〔発明が解決しようとする課題〕 モノリプレースはリプレース完了後、若しくはフェッチ
バイパス制御によってリプレースの完了を待たず直ちに
、CPUが稼働状態に移行することができる。しかし、
マルチリプレースでは転送が完了するまで、CPUを待
機状態(一般にはウェイト状態)にさせなければならな
い問題がある。
一方、フェッチバイパス制御によってミスヒツトとなっ
たデータのみをCPUに対して有効とする方法もあるが
、それ以降のデータについては、やはり待機状態に移行
させる必要があった。
これら2つのリプレース方式の内、何れが有利かはマル
チリプレースの語数、マルチリプレースのサイクルタイ
ム、マルチリプレースシステムでのヒツト率、及びモノ
リプレースのサイクルタイム、モノリプレースシステム
でのヒツト率等の各種要因により左右される。換言すれ
ば、プログラムの内容に依存するといえるもので、従来
のシステムではこれらをダイレクトに切り換えることは
不可能であり、システムで固定的にモノリプレース若し
くはマルチリプレースの何れかを選択している。
これと類似した問題がキャッジ具メモリの有効無効の制
御にもある。一般にキャッシュへのアクセスが最も高速
であるのは当然であるが、キャッシュを介さないメイン
メモリへのアクセスと、リプレースによるアクセスを比
較した場合では、ヒットとミスヒツトの判定によるオー
バーヘッド力あるため、後者の方がサイクルタイムが大
きくなる。つまり、ヒツト率が十分に高くないとキャッ
シュを使用しても十分にメリットが生じなくなるまた、
ヒツト率を予測することは不可能であるため、キャッシ
ュの有効と無効(コードキャッシュとデータキャッシュ
に分割されていた場合も含み)をダイレクトに制御する
ことができず、−船釣にはそれらの有効・無効はシステ
ムで固定的であった。しかし、ヒツト率は前述のように
プログラムの内容に依存するため、コード、即ち、プロ
グラム部分に関してはアドレスがリニアに進んでいくこ
とが十分に期待できるが、データ部分に関しては離散的
に格納されている可能性があり、煩雑にリプレースが行
われるような事象も生じる。
そのため、キャッシュを無効にした方が高速に処理でき
る場合も想定される。しかし、従来のシステムではこれ
を行うことができなかった。
本発明の目的は、従来のキャッシュメモリに対応したソ
フトウェアによるチューニングに代わりキャッシュメモ
リの各種機能の設定をハードウェアにて実現するもので
あり、これによりキャッシュメモリシステムの処理能力
の最適化を可能とするキャッシュメモリ制御方式を提供
することにある。
〔課題を解決するための手段〕
第1図は本発明の原理構成図である。図示のように、本
発明の基本は、キャッシュメモリ(2)内のキャッシュ
データをサブブロック単位で管理するキャッシュコント
ローラ(1)のキャッシュメモリ制御方式であって、前
記キャッシュデータのリプレース動作を、前記サブブロ
ック単位で行うマルチリプレースか、前記サブブロック
内の個々のデータの有効・無効を管理するバリッドビッ
ト単位で行うモノリプレースか、の何れかを選択するr
Jプレース選択手段、を具備することを特徴とするもの
で、 前記リプレース選択手段は、キャッシュデータのヒツト
率をカウントする計測手段と、前記ヒツト率と、前記マ
ルチリプレースのサイクルタイムと、前記モノリプレー
スのサイクルタイムとにより算出されるメモリサイクル
の期待値に基づき、マルチリプレースとモノリプレース
の何れが有利かを判定する判定手段と、前記判定手段の
判定結果に基づき有利な方のリプレースに切り換える切
換手段とを備える。
〔作 用〕
本発明では、ヒツト率をカウントするユニットを用意し
、このプログラムの内容によって動的に変化するヒツト
率と、設計の際に判明するマルチリプレース時に必要と
されるサイクル数と、モノリプレース時に必要とされる
サイクル数とから、プロセッサの必要とするデータ1語
(バス幅が32ビツトであれば32ビツト)当たりに必
要な転送時間を計算し、マルチリプレース時とモノリプ
レース時で1語当たりの転送時間数を有効とするリプレ
ース制御を実現し、キャッシュメモリシステムのパフォ
ーマンスの最適化を行う。
この時、マルチリプレースによるリプレースと、モノリ
プレースによるリプレースに切り換える時期には3つの
タイプがある。
マルチリプレースの有効・無効を判定し、有効であれば
マルチリプレースを行い、無効であればミスヒツトとな
ったデータのみをリプレースするモノリプレースに切り
換えることによりシステムのパフォーマンスを最適化す
る。
そして、この最適化の結果を保存し、次回のプログラム
ロード時にこの保存していたデータを読み出し、プログ
ラム実行前にキャッシュメモリの制御方法を更新するこ
とにより性能向上を図る。
又、キャッシュメモリをコードとデータに分割し、プロ
グラムの実行毎にそれぞれのキャッジ)のヒツト数とミ
スヒツト数とリプレース時間をモニタする。そしてモニ
タの結果、コードキャッシュを使用するか否か、データ
キャッシュを使用するか否かをヒツト数とミスヒツト数
(リプレース回数)とリプレース時間により有効計算を
行い、キャッシュ動作の有効性を判定しプログラムのス
テークスとして保存する。次回からはプログラムのロー
ド時にこのステータスを読込み、キャッシュ制御レジス
タにセットすることにより処理の最適化を行う。
〔実施例〕
第2図は本発明の第1の実施例キャッシュコントローラ
の構成図である。図中、キャッシュ・システムはキャッ
シュ・コントローラ1とキャラ−シュ・メモリ2により
構成され、キャッシュ・コントローラ1はアドレス・タ
グ11、セット・インデックス12、サブブロック・イ
ンデックス13、デコーダ14、キャッシュ・ディレク
トリ15、バリッド・ビット16、セット・デコーダ1
7、コンパレータ18により構成される。
アドレス・タグ11はキャッシュアクセス時にキャツシ
ュヒツト/ミスヒツトを判定するための入力データとな
る。
セット・インデックス12はディレクトリメモリのレベ
ルに含まれるセットの1つを指定する。
サブブロック・インデックス■3はブロック内のサブブ
ロックを指定する。
デコーダ14はバリッドビットからアドレスを再構成す
る。
キャッシュ・ディレクトリ15はアドレス・タグを記憶
している部分であり、入力されるアドレス・タグと比較
する。
バリッド・ビット16はサブブロック内のデータの有効
・無効を示すものである。
セット・デコーダ17はセット・インデックスからキャ
ッシュ・ディレクトリの任意の部分を選択するものであ
る。
コンパレータ18はCPUから出力されるアドレスの内
、セット・インデックスに対応するアドレスを基に出力
されるアドレス・タグとサブブロック・インデックスと
CPUから出力されるアドレスからセット・インデック
スを除いた部分を比較し、一致、不一致の結果を出力す
る。
キャッシュ・メモリ2はキャッシュ・コントローラ1の
コンパレータ部18から出力される一致・不一致の結果
を出力イネーブル(OE)及び書込みイネーブル(WE
)として得てメモリの入出力を制御する。
次に、第1の実施例におけるキャッシュ・システムの有
効・無効の判定例を以下に説明する。
メモリサイクルの期待値Tは、 T2C・Ca+(1−α) −C,−−−(1)ここで
、 αはヒツト率、 Coはキャツシュヒツト時のメモリサイクル数、Crは
キャラシンミスヒツト時のメモリサイクル数、である。
この場合、ヒツト率αは、モノリプレース時とマルチリ
プレース時で異なるため、それぞれ、α1α、とする。
モノリプレース時は、 T、=α、−co+(1−α、 )  −C,、−−(
2)マルチリプレース時は、 Tb”αt、−co+(1−α、)・Crb  ・・(
3)次に、モノリプレースとマルチリプレースのトレー
ドオフのターニングポイントは下記の式となる。
T−= Tb         ・・・ (4)メモリ
アクセスに期待値が小さい方が高速処理が可能であるか
ら、仮数Rを導入して下式のように表す。
’R=  T、/T、   ・・・ (5)この場合、 R<1のときはマルチリプレースが有効、R>1のとき
はモノリプレースが有効、R=1のときは性能に差がな
い。
(2)、(3)式を(5)式に代入すると、また、一般
にはモノリプレースよりマルチリプレースの方がヒツト
率が高いので、 α3≦ α、   ・・・ (7) となる。例えば、 キャツシュヒツト時 →2サイクル モノリプレース時→1語 3サイクル マルチリプレース時→8語 19サイクルとすると、(
6)式にこれらを代入して、となり、α、=90%とす
ると、R=1とするためには(8)式にR=Lα、=0
.9を代入して、(9)式より、α、=0.9941と
なる。従って、約99%のヒツト率が必要になる。
即ち、モノリプレースにおけるヒツト率が90%のとき
、マルチリプレースにおけるヒツト率が99%以下であ
れば、モノリプレース方式の方が有利なことがわかる。
従って、この結果をもとにキャッシュメモリの制御を行
うことになる。
第2図は本発明の実施例システム構成図である。
図中、3はヒツト率カウンタ、4はメインメモリ、^0
D10八T^はアドレス/データバスである。
このシステムは2ウエイ・セット・アソシアティブによ
るキャッシュメモリを想定しており、CPU、キャッシ
ュコントローラ1、キャッシュメモリ2、ヒツト率カウ
ンタ3、メインメモリ4、アドレス/データバスから構
成される。
また、キャッシュコントローラ1とヒツト率カウンタ3
0間に制御線11〜i3が設けられ、11はキャッシュ
アクセス、12はキャツシュヒツト、13はリプレース
セレクト用である。
さらに、キャッシュコントローラ1とキャッシュメモリ
20間に制御線14〜17が設けられ、14はバンク1
の出力イネーブル、15はバンク1の書込みイネーブル
、16はバンク2の出力イネーブル、17はバンク2の
書込みイネーブル用である。
「キャッシュアクセス」はCPUからキャッシュメモリ
にアクセスがあったことを示す。
「キャツシュヒツト」はキャッシュメモリへのアクセス
がヒツトした場合に出力され、ミスヒツトの場合は出力
されない。「キャッシュアクセス」と「キャツシュヒツ
トjによりキャッシュへのヒツト率が計算可能である。
「リプレースセレクト」はマルチリプレースを行うか、
モノリプレースを行うかをキャッシュコントローラに通
知する信号である。
「バンク1出カイネーブル」、「バンク1書込みイネー
ブル」はキャッシュメモリのバンク1へのアウトプット
とライト信号である。
「バンク2出カイネーブル」、「バンク2書込みイネー
ブル」はキャッシュメモリのバンク2へのアウトプット
とライト信号である。
この実施例におけるキャッシュシステムの有効・無効の
判定例を以下に示す。
マルチリプレース方式のキャッシュメモリ・システムに
おけるメモリサイクルの期待値T、は、(1)式より、 TI、=α・Co + (−1−α)−C,−−−(l
[)キャッシュメモリへのアクセスを行わない場合のメ
モリアクセスをTとすると、キャッシュメモリのアクテ
ィブ、インアクティブのターニングポイントは下式とな
る。
T=T、               ・ ・ ・ 
(2)メモリアクセスの期待値が小さい方が高速処理が
可能であるから、仮数Rを導入して下式のように表す。
R=T、/T   ・・・ (2) この場合、 R<1のときはキャッシュの使用により性能向上が可能
であり、 R>1のときはキャッシュメモリを無効化した方が処理
の高速化に寄与する割合が高く、R=1のときは性能に
差がない。
(10S(2)式を(至)式に代入すると、例えば、 キャッシュバイパス時 →4サイクル キャツシュヒツト時 → 2サイクル マルチリプレ一ス時→8言吾 19サイクルとすると、
0式にこれらを代入して、 19−17・α。
R=                ・ ・ ・aυ
となり、R=1とするためには、 051式より、α、=0.8823  となる。従って
、約99%のヒツト率が必要になる。
即ち、約88%のヒツト率が分岐点と言える。
従って、フードキャッシュ、データキャッシュのそれぞ
れが88%を境にして、キャッシュメモリの有効・無効
をコントロールすることにより、システム全体の処理の
高速化を実現することができる。
分岐点に関してシステム設計時に算出されるため、ハー
ドウェアで備えるべき機能は、ヒツト、ミスヒツトを計
数するカウンタと、この結果を元にヒツト率を計算する
除算機構と、除算の結果と分岐点を比較するコンパレー
タとである。
処理実行中にキャッシュメモリの有効判定機構を作動さ
せ、この結果を動的にフィードバックすることによりプ
ログラム動作環境の動的チューニングを行うことができ
システムの最適化を図ることができる。
第4図は本発明の他の実施例システム構成図である。図
中、I14〜17.18〜113は制御線である。制御
線14〜17は第3図と同様である。
第3図と相違する部分はキャッシュコントローラとヒツ
ト率カウンタの間の「キャッシュアクセス」「キャツシ
ュヒツト」及び「リプレースセレクト」が、 「キャッシュコード・フェッチアクセス」、「キャッシ
ュコード・フェッチヒツトJ1「リプレースコード・フ
ェッチセレクト」、「キャッシュデータ・リードアクセ
ス」、「キャッシュデータ・リードヒツト」、及び「リ
プレースデータ・リードセレクト」となることである。
「キャッシュコード・フェッチアクセス」はCPUから
キャッシュメモリへコードフェッチアクセスがあったこ
とを示す。
「キャッシュコード・フェッチヒツト」はキャッシュメ
モリへのコードフェッチアクセスがヒツトした場合に出
力され、ミスヒツトの場合は出力されない。「キャッシ
ュコード・フェッチアクセス」とこの「キャッシュコー
ド・フェッチヒツト」により、コードフェッチアクセス
時のキャラシンへのヒツト率が計算できる。
「リプレースコード・フェッチセレクト」はコードフェ
ッチミスヒツトにより起動されるリプレースを、マルチ
リプレースで行うか、モノリプレースで行うか、キャッ
シュコントローラに通知スる信号である。
「キャッシュデータ・リードアクセス」はCPUからキ
ャッシュメモリへのデータリードアクセスがあったこと
を示す。
「キャッシュデータ・リードヒツト」はキャッシュメモ
リへのデータリードアクセスがヒツトした場合に出力さ
れ、ミスヒツトの場合は出力されない。「キャッシュデ
ータ・リードアクセス」とこの「キャッシュデータ・リ
ードヒツト」によって、コードリード時のキャッシュへ
のヒツト率が計算できる。
「リプレースデータ・リードセレクト」はデータリード
ミスヒツトにより起動されるリプレースを、マルチリプ
レースで行うか、モノリプレースで行うか、キャッシュ
コントローラに通知する信号である。
次に、この実施例におけるキャッシュシステムの有効・
無効の判定例を以下に説明する。
ここではシステムをコードフェッチとデータリードに分
割し、独立に制御を行う形態となっている。まず、コー
ドフェッチアクセスについて計算を行う。
マルチリプレース方式のキャッシュメモリシステムにお
けるコードフェッチ・メモリサイクルの期待値Tcfb
は、 αcfはヒツト率、 Cafeはキャツシュヒツト時のメモリサイクル数、 Ccfrはキャッシュミスヒツト時のメモリサイクル数
、である。
TCfb  =αct−Cct0+  (1−αcr)
  ・Ccfr・   (1Φ となる。
キャッシュメモリへのアクセスを行わない場合のメモリ
アクセスをT。Fとすると、キャッシュメモリのアクテ
ィブ、インアクティブのターニングポイントは、下式に
より計算される。
7c、=  Tcfb       ・・・ G′r)
メモリアクセスの期待値が小さい方が高速処理が可能で
あるから、仮数Rc fを導入して下式のように表す。
Rcr=  Tcrb /Tcr  ・・・ 0秒とす
る。
コードフェッチアクセスに関して、 Rcr<1のときはキャッシュメモリの使用により性能
向上が可能であり、 Rcr>1のときはキャッシュメモリを無効化した方が
処理の高速化に寄与する割合が高く、Rc、=1のとき
は性能に差がない。
α0、OD式をαの式に代入すると、 ・ ・ ・αつ 実際値を挿入した計算は前述と同様である。
次に、データリードアクセスも同様な計算を行う。
マルチリプレース方式のキャフシンメモリシステムにお
けるデータリード・メモリサイクルの期待値Tcfl+
は、 α、rはヒツト率、 Cdroはキャツシュヒツト時のメモリサイクル数、 Cdrrはキャッシュミスヒツト時のメモリサイクル数
、である。
Tdrb”αar−Cdre + (1−αdr)  
・Cdrr・(20〉 となる。
キャッシュメモリへのアクセスを行わない場合のメモリ
アクセスをTdrとすると、キャッシュメモリのアクテ
ィブ、インアクティブのターニングポイントは、下式に
より計算される。
Tdr=  Tdrb       ・・・ (21)
メモリアクセスの期待値が小さい方が高速処理が可能で
あるから、仮数Rdrを導入して下式のように表す。
Rdr=Tdrb/Tdr・・・(22)とする。
データリードアクセスに関して、 Rdr<1のときはキャッシュメモリの使用により性能
向上が可能であり、 Rar>1のときはキャッシュメモリを無効化した方が
処理の高速化に寄与する割合が高く、R,、=1のとき
は性能に差がない。
(20)、(21)を(22〉式に代入すると、・ ・
 ・ ・(23) 実際値を挿入した計算は前述と同様である。
コードフェッチ、データリードもそれぞれの分岐点に関
してはシステム設計時に算出されるため、ハードウェア
で備えるべき機能は、ヒツト、ミスヒツトを計数するカ
ウンタと、この結果を元にヒツト率を計算する除算機構
と、除算の結果を分岐点と比較するコンパレータである
処理実行中にキャッシュメモリの有効判定機構を作動さ
せ、この結果を動的にフィードバックすることにより、
プログラム動作環境の動的チューニングを行うことがで
きシステムの最適化を図ることが可能となる。
第5図はキャッシュメモリの制御の更新処理を行うフロ
ーチャートである。
タスクの実行に先立ち、補助記憶装置よりプログラムを
読込み、主記憶上に展開する。これは、通常のタスクの
起動手順である(ステップ1)。
プログラムの読込みと同時にキャッシュ制御情報を読み
込む(ステップ2)。
ステップ2でキャッシュ制御情報が存在していれば、制
御情報をセットし、キャッシュ制御を有効とする(ステ
ップ3)。
ステップ2でキャッシュ制御情報が存在しない場合は、
キャッシュ制御を初期化する(ステップ4)。全てのリ
プレースをマルチリプレースで行うように制御する。タ
スク実行中のヒツト率によりこの転送方式が自動で変更
される場合がある。
次に、タスクが起動され、主記憶上に展開されているプ
ログラムの実行が開始される(ステップ5〉。
次に、タスクの終了が監視される(ステップ6〉終了し
ていればヒツト率、リプレース方式等、キャッシュ制御
に必要な情報を読み込む(ステップ7)。
読み込まれたキャッシュ制御情報は、プログラムの実行
時の1つの情報として、補助記憶装置に記録される(ス
テップ8)。次回のタスク起動のときは、キャッシュ制
御情報がすでに記憶されているので、これをキャッシュ
制御機構に設定することにより動作環境の最適化が図ら
れる。
第6図はモノリプレースとマルチリプレースの切換シス
テムの構成例である。
システムはCPU、キャッシュコントローラ1、キャッ
シュメモリ2、ヒツト率カウンタ3及びメインメモリ4
により構成される。
ヒツト率カウンタ3はCPUによりバスアクセスを監視
し、かつ、キャッシュコントローラ2からヒツト・ミス
ヒツト信号により、ヒツト率をモニタする。ヒツト率と
、予め設定されているモノリプレースのサイクルタイム
、マルチリプレースにおけるサイクルタイムからモノリ
プレースとマルチリプレースとの優劣を判定し、リプレ
ース方式切換信号を発行する。
キャッシュコントローラ1は、制御線114を介して送
出されるヒツト率カウンタ3からのリプレース方式切換
信号によって、モノリプレースとマルチリプレースの制
御を動的に行う。モノリプレースがセレクトされた場合
は、CPUから出力されたアドレスのタグアドレス部と
、タグアドレスに格納されている情報が一致した場合は
、サブブロックの該当する部分のみリプレースする。一
致しなかった場合はリプレース更新アルゴリズムにより
セレクトされたサブブロックのうち該当する部分をリプ
レースし、他の部分の情報は全て無効化する。
第7図はコードキャッシュ及びデータキャッシュのオン
/オフ制御システムの構成図である。
このシステムはCPU、キャッシュコントローラ1、キ
ャッシュメモリ2、コード用ヒツト率カウンタ3−1、
データ用ヒツト率カウンタ3−2、メインメモリ4によ
り構成される。
115〜J18は制御線である。
コード用ヒツト率カウンタ3−1は制御線115を介し
てCPUによるコードアクセスをコードアクセス信号に
より監視し、かつ、キャッシュコントローラからのヒツ
ト/ミスヒツト信号により、コードアクセス時のヒツト
率をモニタする。ヒツト率と、予め設定されているノン
キャッシュアクセス時のサイクルタイム、キャッシュミ
スヒツト時のサイクルタイム、キャツシュヒツト時のサ
イクルタイムから、キャッシュ動作の有効・無効を判定
し、制御線l17を介して「C−イネーブル」を発行す
る。
データ用ヒツト率カウンタ3−2は制御線116を介し
てCPUによるデータアクセスをデータアクセス信号に
より監視し、かつ、キャッシュコントローラからのヒツ
ト/ミスヒツト信号により、データアクセス時のヒツト
率をモニタする。ヒツト率と、予め設定されているノン
キャッシュアクセス時のサイクルタイム、キャッシュミ
スヒツト時のサイクルタイム、キャツシュヒツト時のサ
イクルタイムから、キャッシュ動作の有効・無効を判定
し、制御線118を介して「D−イネーブル」を発行す
る。
キャッシュコントローラlは、コード用ヒツト率カウン
タ3−1からの「C−イネーブル」と、データ用ヒツト
率カウンタ3−2からの「D−イネーブル」により、キ
ャッシュ動作のオン/オフを制御する。この制御自体は
従来方式と同様に、キャッシュコントローラのチップセ
レクト等をオン/オフすることにより実現することがで
きる。
〔発明の効果〕
以上説明したように、本発明によれば、ソフトウェアに
よるチコーニングに代わり、キャッシュメモリの各種機
能の設定をハードウェアで実現することにより、キャッ
シュメモリシステムの処理能力の最適化を可能にする。
【図面の簡単な説明】
第1r!lJは本発明の原理構成図、 第2図はキャッシュコントローラ構成国、第3図は本発
明の一実施例システム構成国、第4図は本発明の他の実
施例システム構成国、第5図はキャッシュメモリ制御の
更新処理フローチャート、 第6図はマルチリプレースとモノリプレースの切換シス
テム構成図、 第7図はコードキャッシュとデータキャッシュのオン/
オフ制御システム構戒図、 第8.9図はモノリプレース説明図、及び第10図はマ
ルチリプレース説明図である。 (符号の説明) 1・・・キャッシュコントローラ、 2°゛″キヤツシユメモリ、 3・・・ヒツト率カウンタ、 3−1・・・コード用ヒツト率カウンタ、3−2・・・
データ用ヒツト率カウンタ、4・・・メインメモリ。

Claims (1)

  1. 【特許請求の範囲】 1、キャッシュメモリ(2)内のキャッシュデータをサ
    ブブロック単位で管理するキャッシュコントローラ(1
    )のキャッシュメモリ制御方式であって、前記キャッシ
    ュデータのリプレース動作を、前記サブブロック単位で
    行うマルチリプレースか、前記サブブロック内の個々の
    データの有効・無効を管理するバリッドビット単位で行
    うモノリプレースか、の何れかを選択するリプレース選
    択手段、を具備することを特徴とするキャッシュメモリ
    制御方式。 2、前記リプレース選択手段は、 キャッシュデータのヒット率をカウントするヒット率計
    測手段と、 前記ヒット率と、前記マルチリプレースのサイクルタイ
    ムと、前記モノリプレースのサイクルタイムとにより算
    出されるメモリサイクルの期待値に基づき、マルチリプ
    レースとモノリプレースの何れが有利かを判定する判定
    手段と、 前記判定手段の判定結果に基づき有利な方のリプレース
    に切り換える切換手段と、 を具備する請求項1に記載のキャッシュメモリ制御方式
    。 3、前記判定は、モノリプレースにおけるキャッシュヒ
    ットとキャッシュミスヒットのメモリサイクルの期待値
    及びマルチリプレースにおけるキャッシュヒットとキャ
    ッシュミスヒットのメモリサイクルの期待値の比から算
    出された仮数の、整数「1」との大小関係で行われる請
    求項2に記載のキャッシュメモリ制御方式。 4、前記キャッシュメモリのコードキャッシュ部分とデ
    ータキャッシュ部分を独立に制御可能なキャッシュメモ
    リ制御方式であって、 前記コードキャッシュ部分と前記データキャッシュ部分
    のリプレース動作を、前記サブブロック単位で行うマル
    チリプレースか、前記サブブロック内の個々のデータの
    有効・無効を管理するバリッドビット単位で行うモノリ
    プレースか、の何れかを選択するリプレース選択手段、 を具備することを特徴とするキャッシュメモリ制御方式
    。 5、前記リプレース選択手段は、 コードのヒット率と、データのヒット率をカウントする
    2つ計測手段と、 前記各々のヒット率と、前記マルチリプレース若しくは
    モノリプレースのコードフェッチにおけるサイクルタイ
    ム及び前記マルチリプレース若しくはモノリプレースの
    データリードのサイクルタイムとにより算出されるメモ
    リサイクルの期待値に基づき、各々、マルチリプレース
    とモノリプレースの何れが有利かを判定する判定手段と
    、前記判定手段の判定結果に基づき有利な方のリプレー
    スに切り換える切換手段と、 を具備する請求項4に記載のキャッシュメモリ制御方式
    。 6、前記判定は、マルチリプレース若しくはモノリプレ
    ースのコードフェッチにおけるキャッシュヒットとキャ
    ッシュミスヒットのメモリサイクルの期待値及びマルチ
    リプレース若しくはモノリプレースのデータリードにお
    けるメモリサイクルの期待値の比から算出された仮数の
    、整数「1」との大小関係で行われる請求項5に記載の
    キャッシュメモリ制御方式。 7、前記判定されたマルチリプレース若しくはモノリプ
    レースの何れか最適なデータを保存し、次回のプログラ
    ムロード時に、前記保存データを読み出し、プログラム
    の実行前にキャッシュメモリの制御方法の更新を行う請
    求項2〜6の何れかに記載のキャッシュメモリ制御方式
    。 8、キャッシュメモリの制御方式であって、前記キャッ
    シュメモリの動作をイネーブルあるいはディセーブルす
    るリプレース選択手段を具備する事を特徴とするキャッ
    シュメモリ制御方式。 9、前記リプレース選択手段は、キャッシュデータのヒ
    ット率をカウントするヒット率カウント手段と、 前記ヒット率と、前記マルチリプレースのサイクルタイ
    ムまたは前記モノリプレースのサイクルタイムとにより
    算出されるメモリサイクルの期待値に基づき、キャッシ
    ュの有効・無効の何れが有利かを判定する判定手段と、 前記判定手段に基づき、キャッシュの有効・無効の何れ
    か有利な方を選択し、切り換える切換手段を具備する請
    求項8に記載のキャッシュメモリ制御方式。 10、前記キャッシュメモリの無効化制御が可能なキャ
    ッシュメモリ制御方式であって、 前記キャッシュメモリのリプレース動作を、前記サブブ
    ロック単位で行うマルチリプレースか、前記個々のデー
    タの有効・無効を管理するバリッドビット単位で行うモ
    ノリプレースか、の何れかを選択するリプレース選択手
    段、 を具備することを特徴とするキャッシュメモリ制御方式
JP1281939A 1989-10-31 1989-10-31 キャッシュメモリ制御方式 Pending JPH03144750A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1281939A JPH03144750A (ja) 1989-10-31 1989-10-31 キャッシュメモリ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1281939A JPH03144750A (ja) 1989-10-31 1989-10-31 キャッシュメモリ制御方式

Publications (1)

Publication Number Publication Date
JPH03144750A true JPH03144750A (ja) 1991-06-20

Family

ID=17646027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1281939A Pending JPH03144750A (ja) 1989-10-31 1989-10-31 キャッシュメモリ制御方式

Country Status (1)

Country Link
JP (1) JPH03144750A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012095957A1 (ja) * 2011-01-12 2012-07-19 富士通株式会社 キャッシュメモリ装置,キャッシュメモリの制御装置,情報処理装置,キャッシュメモリの制御方法,及びキャッシュメモリ装置の閾値決定プログラム
JP2015532496A (ja) * 2012-10-18 2015-11-09 ゼットティーイー コーポレーションZte Corporation キャッシュのキャッシュライン長を調整する方法及び装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012095957A1 (ja) * 2011-01-12 2012-07-19 富士通株式会社 キャッシュメモリ装置,キャッシュメモリの制御装置,情報処理装置,キャッシュメモリの制御方法,及びキャッシュメモリ装置の閾値決定プログラム
JP5494834B2 (ja) * 2011-01-12 2014-05-21 富士通株式会社 キャッシュメモリ装置,キャッシュメモリの制御装置,情報処理装置,キャッシュメモリの制御方法,及びキャッシュメモリ装置の閾値決定プログラム
JP2015532496A (ja) * 2012-10-18 2015-11-09 ゼットティーイー コーポレーションZte Corporation キャッシュのキャッシュライン長を調整する方法及び装置

Similar Documents

Publication Publication Date Title
TW382672B (en) Computer system and method for controlling the same
US4445174A (en) Multiprocessing system including a shared cache
US5748932A (en) Cache memory system for dynamically altering single cache memory line as either branch target entry or prefetch instruction queue based upon instruction sequence
US5897655A (en) System and method for cache replacement within a cache set based on valid, modified or least recently used status in order of preference
US4701844A (en) Dual cache for independent prefetch and execution units
US5793941A (en) On-chip primary cache testing circuit and test method
US4484267A (en) Cache sharing control in a multiprocessor
JPH10232827A (ja) 先取りキャッシュ書戻しの方法と装置
US6535958B1 (en) Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US20200250098A1 (en) Cache access detection and prediction
JPH04242848A (ja) 走行モード別キャッシュメモリ制御方式
US7346741B1 (en) Memory latency of processors with configurable stride based pre-fetching technique
KR100308675B1 (ko) 캐쉬어드레스발생방법
US11036639B2 (en) Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays
US6484237B1 (en) Unified multilevel memory system architecture which supports both cache and addressable SRAM
JP3431878B2 (ja) マルチスレッド・プロセッサの命令キャッシュ
KR19990006478A (ko) 멀티 사이클 데이터 캐쉬 판독을 위한 데이터 레지스터
JPH03144750A (ja) キャッシュメモリ制御方式
US6934810B1 (en) Delayed leaky write system and method for a cache memory
JPH05216765A (ja) 階層バッファ記憶装置
US7062607B2 (en) Filtering basic instruction segments in a processor front-end for power conservation
JPH08328959A (ja) ディスクキャッシュ制御装置
JP3284508B2 (ja) データ先読み制御装置
JPH0477344B2 (ja)
JP2923273B2 (ja) データ処理システム